pax_global_header00006660000000000000000000000064143141203020014500gustar00rootroot0000000000000052 comment=af2e27a09b552168c1253c04e8fbf6196b355e29 rxjs-7.5.7/000077500000000000000000000000001431412030200125065ustar00rootroot00000000000000rxjs-7.5.7/.dependency-cruiser.json000066400000000000000000000050461431412030200172540ustar00rootroot00000000000000{ "forbidden": [ { "name": "not-to-spec", "comment": "Don't allow dependencies from outside the spec folder to spec", "severity": "error", "from": { "pathNot": "^spec" }, "to": { "path": "^spec" } }, { "name": "not-to-spec", "comment": "Don't allow dependencies to (typescript/ javascript/ coffeescript) spec files", "severity": "error", "from": {}, "to": { "path": "\\.spec\\.[js|ts|ls|coffee|litcoffee|coffee\\.md]$" } }, { "name": "no-deprecated-core", "comment": "Warn about dependencies on deprecated core modules.", "severity": "warn", "from": {}, "to": { "dependencyTypes": [ "core" ], "path": "^(punycode|domain)$" } }, { "name": "no-deprecated-npm", "comment": "These npm modules are deprecated - find an alternative.", "severity": "warn", "from": {}, "to": { "dependencyTypes": [ "deprecated" ] } }, { "name": "not-to-dev-dep", "severity": "error", "comment": "Don't allow dependencies from src/app/lib to a development only package", "from": { "path": "^(src|app|lib)" }, "to": { "dependencyTypes": [ "npm-dev" ] } }, { "name": "no-non-package-json", "severity": "error", "comment": "Don't allow dependencies to packages not in package.json (except from within node_modules)", "from": { "pathNot": "^node_modules" }, "to": { "dependencyTypes": [ "undetermined", "npm-no-pkg", "npm-unknown" ], "pathNot": "^electron" } }, { "name": "peer-deps-used", "comment": "Error about the use of a peer dependency (peer dependencies are deprecated).", "severity": "error", "from": {}, "to": { "dependencyTypes": [ "npm-peer" ] } }, { "name": "no-duplicate-dep-types", "comment": "Warn if a dependency occurs in your package.json more than once (technically: has more than one dependency type)", "severity": "warn", "from": {}, "to": { "moreThanOneDependencyType": true } }, { "name": "no-circular", "severity": "error", "comment": "Error in case we have circular dependencies", "from": { "path": "^dist/esm5" }, "to": { "circular": true } } ] } rxjs-7.5.7/.dockerignore000066400000000000000000000001241431412030200151570ustar00rootroot00000000000000node_modules npm-debug.log Dockerfile* docker-compose* .dockerignore .git .gitignorerxjs-7.5.7/.eslintignore000066400000000000000000000000431431412030200152060ustar00rootroot00000000000000integration/side-effects/snapshots/rxjs-7.5.7/.eslintrc000066400000000000000000000064111431412030200143340ustar00rootroot00000000000000{ "rules": { "indent": [ 2, 2 ], "quotes": [ 2, "single" ], "linebreak-style": [ 2, "unix" ], "semi": [ 2, "always" ], "no-console": 0, "max-len": [ 1, 140 ], "no-cond-assign": [2, "always"], "no-ex-assign": 2, "curly": 2, "max-depth": [2, 5], "complexity": [1, 8], "prefer-const": 1, "no-trailing-spaces": [2, {"skipBlankLines": false}], "one-var": [2, "never"], "key-spacing": [2, { "beforeColon": false, "afterColon": true }], "new-cap": 0, "new-parens": 2, "no-mixed-spaces-and-tabs": 2, "no-multiple-empty-lines": [1, {"max": 1}], "no-nested-ternary": 2, "no-new-object": 2, "no-spaced-func": 2, "arrow-spacing": [2, {"before": true, "after": true}], "operator-assignment": [2, "always"], "padded-blocks": [2, "never"], "keyword-spacing": [2, {"before": true, "after": true}], "space-before-blocks": [2, "always"], "space-before-function-paren": [2, { "anonymous": "always", "named": "never" }], "array-bracket-spacing": [2, "never"], "computed-property-spacing": [2, "never"], "space-infix-ops": [2, {"int32Hint": true}], "space-unary-ops": [2, { "words": true, "nonwords": false }], "no-delete-var": 2, "no-underscore-dangle": 0, "no-shadow": 2, "no-shadow-restricted-names": 2, "no-undef-init": 2, "no-use-before-define": 2, "yoda": [2, "never"], "consistent-return": 2, "spaced-line-comment": 0, "strict": [2, "never"], "eqeqeq": 2, "guard-for-in": 2, "no-alert": 2, "no-caller": 2, "no-labels": 2, "no-eval": 2, "no-fallthrough": 2, "default-case": 2, "no-iterator": 2, "no-loop-func": 2, "no-multi-str": 2, "no-new": 2, "no-param-reassign": 2, "no-proto": 2, "no-redeclare": 2, "no-return-assign": 2, "no-self-compare": 2, "no-sequences": 2, "vars-on-top": 0, "wrap-iife": [2, "inside"], "valid-typeof": 2, "no-unexpected-multiline": 2, "dot-location": [2, "property"], "no-unreachable": 2, "no-negated-in-lhs": 2, "no-irregular-whitespace": 2, "no-invalid-regexp": 2, "no-func-assign": 2, "no-extra-semi": 2, "no-extra-boolean-cast": 2, "no-empty": 2, "no-duplicate-case": 2, "no-dupe-keys": 2, "no-dupe-args": 2, "no-constant-condition": 2, "comma-style": [2, "last"], "no-lonely-if": 2 }, "globals": { "expectObservable": true, "hot": true, "cold": true }, "parserOptions": { "sourceType": "module", "ecmaVersion": 2015 }, "env": { "browser": true, "node": true, "jasmine": true }, "parser": "@typescript-eslint/parser", "plugins": [ "@typescript-eslint" ] } rxjs-7.5.7/.gitattributes000066400000000000000000000000261431412030200153770ustar00rootroot00000000000000# no eol conversions! rxjs-7.5.7/.github/000077500000000000000000000000001431412030200140465ustar00rootroot00000000000000rxjs-7.5.7/.github/ISSUE_TEMPLATE/000077500000000000000000000000001431412030200162315ustar00rootroot00000000000000rxjs-7.5.7/.github/ISSUE_TEMPLATE/bug_report.yml000066400000000000000000000025431431412030200211300ustar00rootroot00000000000000name: Bug Report description: Bug report for RxJS core behavior. body: - type: textarea id: description attributes: label: Describe the bug description: | A clear and concise description of the behavior. validations: required: true - type: textarea id: expected-behavior attributes: label: Expected behavior description: A clear and concise description of what you expect to happen. validations: required: true - type: textarea id: code attributes: label: Reproduction code description: Code to create a minimal reproduction. render: typescript - type: input id: repro-link attributes: label: Reproduction URL description: Use [Stackblitz](https://stackblitz.com/fork/rxjs) or a git repo to show a minimal reproduction of the issue. Please also paste the example code in the "Reproduction code" section above. - type: input id: version attributes: label: Version validations: required: true - type: textarea id: environment attributes: label: Environment placeholder: Version of runtime environment, build configuration, etc, that can affect behavior of RxJS. - type: textarea id: addition attributes: label: Additional context placeholder: Add any other context about the problem here. rxjs-7.5.7/.github/ISSUE_TEMPLATE/config.yml000066400000000000000000000003461431412030200202240ustar00rootroot00000000000000blank_issues_enabled: false contact_links: - name: Questions, request, issues other than Rx core bugs url: https://github.com/ReactiveX/rxjs/discussions about: For general discussions, or request please use discussions. rxjs-7.5.7/.github/PULL_REQUEST_TEMPLATE.md000066400000000000000000000021111431412030200176420ustar00rootroot00000000000000 **Description:** **BREAKING CHANGE:** **Related issue (if exists):** rxjs-7.5.7/.github/lock.yml000066400000000000000000000012551431412030200155240ustar00rootroot00000000000000# Configuration for lock-threads - https://github.com/dessant/lock-threads # Number of days of inactivity before a closed issue or pull request is locked daysUntilLock: 30 # Issues and pull requests with these labels will not be locked. Set to `[]` to disable exemptLabels: [] # Label to add before locking, such as `outdated`. Set to `false` to disable lockLabel: false # Comment to post before locking. Set to `false` to disable lockComment: false # Limit to only `issues` or `pulls` # only: issues # Optionally, specify configuration settings just for `issues` or `pulls` # issues: # exemptLabels: # - help-wanted # lockLabel: outdated # pulls: # daysUntilLock: 30 rxjs-7.5.7/.github/workflows/000077500000000000000000000000001431412030200161035ustar00rootroot00000000000000rxjs-7.5.7/.github/workflows/ci_main.yml000066400000000000000000000016341431412030200202310ustar00rootroot00000000000000name: CI on: pull_request: types: ['opened', 'reopened', 'synchronize'] jobs: build: runs-on: ubuntu-latest strategy: matrix: node: [ '12', '13', '14', '15', '16' ] name: Node ${{ matrix.node }} build steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: node-version: ${{ matrix.node }} - name: install run: | npm install -g npm@latest npm ci - name: lint run: npm run lint - name: build run: npm run build:package - name: test run: | npm test npm run test:side-effects - name: dtslint run: npm run dtslint - name: api_guardian run: npm run api_guardian - name: import if: ${{ matrix.node == '14' }} run: npm run test:import - name: import if: ${{ matrix.node == '14' || matrix.node == '15' }} run: npm run test:esm rxjs-7.5.7/.github/workflows/ci_ts_latest.yml000066400000000000000000000010361431412030200213030ustar00rootroot00000000000000name: CI (ts@latest) on: pull_request: types: ['opened', 'reopened', 'synchronize'] jobs: build: runs-on: ubuntu-latest strategy: matrix: node: [ '14' ] name: ts@latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: node-version: ${{ matrix.node }} - name: build run: | npm install -g npm@latest npm ci npm install --legacy-peer-deps --no-save typescript@latest tslib@latest @types/node@latest npm run compile rxjs-7.5.7/.github/workflows/rebase.yml000066400000000000000000000016721431412030200200750ustar00rootroot00000000000000on: issue_comment: types: [created] permissions: contents: read name: Automatic Rebase jobs: rebase: permissions: contents: write # for cirrus-actions/rebase to push code to rebase pull-requests: read # for cirrus-actions/rebase to get info about PR name: Rebase if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase') runs-on: ubuntu-latest steps: - uses: actions/checkout@master with: fetch-depth: 0 - name: Automatic Rebase uses: cirrus-actions/rebase@1.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # https://github.community/t5/GitHub-Actions/Workflow-is-failing-if-no-job-can-be-ran-due-to-condition/m-p/38186#M3250 always_job: name: Always run job runs-on: ubuntu-latest steps: - name: Always run run: echo "This job is used to prevent the workflow to fail when all other jobs are skipped." rxjs-7.5.7/.gitignore000066400000000000000000000010631431412030200144760ustar00rootroot00000000000000# Editor-specific .idea/ *.iml *.sublime-project *.sublime-workspace .settings .vscode # Installed libs node_modules/ typings/ # Generated /dist/ /dist-compat/ tmp/ coverage/ img/ spec-js/ spec-build/ .out/ .tmp/ # Import location artifacts /ajax/ /fetch/ /operators/ /testing/ /webSocket/ # Misc npm-debug.log .DS_STORE *.tgz .eslintcache integration/import/**/rx.json integration/import/**/operators.json # The check-side-effects package generates and deletes this file. # If the process is killed, it will be left behind. check-side-effects.tmp-input.js rxjs-7.5.7/.make-helpers.js000066400000000000000000000022211431412030200154740ustar00rootroot00000000000000"use strict"; let fs = require('fs-extra'); let path = require('path'); let klawSync = require('klaw-sync'); function cleanSourceMapRoot(mapRoot, sourcesRoot) { klawSync(mapRoot, {filter: (item) => item.path.endsWith('.js.map')}) .map(f => f.path) .forEach(fName => { const sourceMap = fs.readJsonSync(fName); // Get relative path from map file to source file sourceMap.sources = sourceMap.sources.map(s => { const sRel = path.relative(path.parse(fName).dir, path.resolve(path.join(sourcesRoot, s))); return sRel; }); delete sourceMap.sourceRoot; fs.writeJsonSync(fName, sourceMap); }); } function copySources(rootDir, packageDir, ignoreMissing) { // If we are ignoring missing directories, early return when source doesn't exist if (!fs.existsSync(rootDir)) { if (ignoreMissing) { return; } else { throw "Source root dir does not exist!"; } } // Copy over the CommonJS files fs.copySync(rootDir, packageDir); fs.copySync('./LICENSE.txt', packageDir + 'LICENSE.txt'); fs.copySync('./README.md', packageDir + 'README.md'); } module.exports = { copySources, cleanSourceMapRoot } rxjs-7.5.7/.prettierrc.json000066400000000000000000000005501431412030200156420ustar00rootroot00000000000000{ "trailingComma": "es5", "singleQuote": true, "printWidth": 140, "overrides": [ { "files": ["spec/**/*.ts", "spec-dtslint/**/*.ts"], "options": { "requirePragma": true } }, { "files": ["spec/operators/**/*.ts", "spec/subjects/**/*.ts"], "options": { "requirePragma": false } } ] } rxjs-7.5.7/CHANGELOG.md000066400000000000000000007706101431412030200143320ustar00rootroot00000000000000## [7.5.7](https://github.com/reactivex/rxjs/compare/7.5.6...7.5.7) (2022-09-25) ### Bug Fixes - **schedulers:** improve performance of animationFrameScheduler and asapScheduler ([#7059](https://github.com/reactivex/rxjs/issues/7059)) ([c93aa60](https://github.com/reactivex/rxjs/commit/c93aa60e9f073297d959fa1fff9323e48872d47e)), closes [#7017](https://github.com/reactivex/rxjs/issues/7017) [#7018](https://github.com/reactivex/rxjs/issues/7018) [#6674](https://github.com/reactivex/rxjs/issues/6674) ### Performance Improvements - **animationFrames:** uses fewer Subscription instances ([#7060](https://github.com/reactivex/rxjs/issues/7060)) ([2d57b38](https://github.com/reactivex/rxjs/commit/2d57b38ec9f7ada838ee130ab75cd795b156c182)), closes [#7018](https://github.com/reactivex/rxjs/issues/7018) ## [7.5.6](https://github.com/reactivex/rxjs/compare/7.5.5...7.5.6) (2022-07-11) ### Bug Fixes - **share:** No longer results in a bad-state observable in an edge case where a synchronous source was shared and refCounted, and the result is subscribed to twice in a row synchronously. ([#7005](https://github.com/reactivex/rxjs/issues/7005)) ([5d4c1d9](https://github.com/reactivex/rxjs/commit/5d4c1d9a37b1347217223adb0d9e166fd85f67a9)) - **share & connect:** `share` and `connect` no longer bundle scheduling code by default ([#6873](https://github.com/reactivex/rxjs/issues/6873)) ([9948dc2](https://github.com/reactivex/rxjs/commit/9948dc2f5577eaa4013de234f3552508918518c7)), closes [#6872](https://github.com/reactivex/rxjs/issues/6872) - **exhaustAll:** Result will now complete properly when flattening all synchronous observables. ([#6911](https://github.com/reactivex/rxjs/issues/6911)) ([3c1c6b8](https://github.com/reactivex/rxjs/commit/3c1c6b8303028eebc7af31cfc5e5bad42a5b2da4)), closes [#6910](https://github.com/reactivex/rxjs/issues/6910) - **TypeScript:** Now compatible with TypeScript 4.6 type checks ([#6895](https://github.com/reactivex/rxjs/issues/6895)) ([fce9aa1](https://github.com/reactivex/rxjs/commit/fce9aa12931796892673581761bba1f7ceafabff)) ## [7.5.5](https://github.com/reactivex/rxjs/compare/7.5.4...7.5.5) (2022-03-08) ### Bug Fixes - **package:** add types to exports ([#6802](https://github.com/reactivex/rxjs/issues/6802)) ([3750f75](https://github.com/reactivex/rxjs/commit/3750f75104bb82d870c53c0605c942e41245d79c)) - **package:** add `require` export condition ([#6821](https://github.com/reactivex/rxjs/issues/6821)) ([c8955e4](https://github.com/reactivex/rxjs/commit/c8955e4c6a972135030fdfddc18a7a48337ae9c7)) - **timeout:** no longer will timeout when receiving the first value synchronously ([#6865](https://github.com/reactivex/rxjs/issues/6865)) ([2330c96](https://github.com/reactivex/rxjs/commit/2330c9660b20f2e0cda0c4eeb36bb582b4a85186)), closes [#6862](https://github.com/reactivex/rxjs/issues/6862) ### Performance Improvements - Don't clone observers unless you have to ([#6842](https://github.com/reactivex/rxjs/issues/6842)) ([3289d20](https://github.com/reactivex/rxjs/commit/3289d20ddc3a84d2aede8e3ab9962a8ef5d43c83)) ## [7.5.4](https://github.com/reactivex/rxjs/compare/7.5.3...7.5.4) (2022-02-09) ### Performance Improvements - removed code that would `bind` functions passed with observers to `subscribe`. ([#6815](https://github.com/reactivex/rxjs/issues/6815)) ([fb375a0](https://github.com/reactivex/rxjs/commit/fb375a0c5befd6852cd63d3c310448e42fa9580e)), closes [#6783](https://github.com/reactivex/rxjs/issues/6783) ## [7.5.3](https://github.com/reactivex/rxjs/compare/7.5.2...7.5.3) (2022-02-08) ### Bug Fixes - **subscribe:** allow interop with Monio and other libraries that patch function bind ([0ab91eb](https://github.com/reactivex/rxjs/commit/0ab91eb4c1da914efbf03a2732629914cd3398dc)), closes [#6783](https://github.com/reactivex/rxjs/issues/6783) ## [7.5.2](https://github.com/reactivex/rxjs/compare/7.5.1...7.5.2) (2022-01-11) ### Bug Fixes - operators that ignore input values now use `unknown` rather than `any`, which should resolve issues with eslint no-unsafe-argument ([#6738](https://github.com/reactivex/rxjs/issues/6738)) ([67cb317](https://github.com/reactivex/rxjs/commit/67cb317a7a6b9fdbd3d2e8fdbc2ac9ac7e57179c)), closes [#6536](https://github.com/reactivex/rxjs/issues/6536) - **ajax:** crossDomain flag deprecated and properly reported to consumers ([#6710](https://github.com/reactivex/rxjs/issues/6710)) ([7fd0575](https://github.com/reactivex/rxjs/commit/7fd05756c595dddb288b732b00a90fcfb2a9080a)), closes [#6663](https://github.com/reactivex/rxjs/issues/6663) ## [7.5.1](https://github.com/reactivex/rxjs/compare/7.5.0...7.5.1) (2021-12-28) ### Bug Fixes - export supporting interfaces from top-level `rxjs` site. ([#6733](https://github.com/reactivex/rxjs/issues/6733)) ([299a1e1](https://github.com/reactivex/rxjs/commit/299a1e16f725edfc2e333c430e3a7dfc75dd94e7)) # [7.5.0](https://github.com/reactivex/rxjs/compare/7.4.0...7.5.0) (2021-12-27) ### Bug Fixes - **takeWhile:** Now returns proper types when passed a `Boolean` constructor. ([#6633](https://github.com/reactivex/rxjs/issues/6633)) ([081ca2b](https://github.com/reactivex/rxjs/commit/081ca2ba7290aa3084c1477a6d4bcc573bf478f6)) - **forEach:** properly unsubs after error in next handler ([#6677](https://github.com/reactivex/rxjs/issues/6677)) ([b9ab67d](https://github.com/reactivex/rxjs/commit/b9ab67d21ca9d227fcd1123bf80ab87ca9296af9)), closes [#6676](https://github.com/reactivex/rxjs/issues/6676) - **WebSocketSubject:** handle slow WebSocket close ([#6708](https://github.com/reactivex/rxjs/issues/6708)) ([8cb201c](https://github.com/reactivex/rxjs/commit/8cb201cd42dd751b4185b94fe2d36c6bfda02fe2)), closes [#4650](https://github.com/reactivex/rxjs/issues/4650) [#3935](https://github.com/reactivex/rxjs/issues/3935) - RxJS now supports tslib 2.x, rather than just 2.1.x ([#6692](https://github.com/reactivex/rxjs/issues/6692)) ([0b2495f](https://github.com/reactivex/rxjs/commit/0b2495f72e76627fdd19dd7a670dd74847d6449c)), closes [#6689](https://github.com/reactivex/rxjs/issues/6689) - schedulers will no longer error while rescheduling and unsubscribing during flushes ([e35f589](https://github.com/reactivex/rxjs/commit/e35f589e2ca10ab2d2d69f7e9fe60727edc4c53d)), closes [#6672](https://github.com/reactivex/rxjs/issues/6672) ### Features - **repeat:** now has configurable delay ([#6640](https://github.com/reactivex/rxjs/issues/6640)) ([6b7a534](https://github.com/reactivex/rxjs/commit/6b7a534f579f95f97f47eff74bdea9991ee85712)) # [7.4.0](https://github.com/reactivex/rxjs/compare/7.3.1...7.4.0) (2021-10-06) ### Features - Add es2015 entries to the exports declaration to support Angular ([#6614](https://github.com/reactivex/rxjs/issues/6614)) ([268777b](https://github.com/reactivex/rxjs/commit/268777bc3a4fd0cf76882683b51809771741ddc3)), closes [/github.com/ReactiveX/rxjs/pull/6613#discussion_r716958551](https://github.com//github.com/ReactiveX/rxjs/pull/6613/issues/discussion_r716958551) ## [7.3.1](https://github.com/reactivex/rxjs/compare/7.3.0...7.3.1) (2021-10-01) ### Bug Fixes - **Schedulers:** Throwing a falsy error in a scheduled function no longer results in strange error objects. ([#6594](https://github.com/reactivex/rxjs/issues/6594)) ([c70fcc0](https://github.com/reactivex/rxjs/commit/c70fcc02b4b737709aba559bf36b030a47902ee4)) - scheduling with Rx-provided schedulers will no longer leak action references ([#6562](https://github.com/reactivex/rxjs/issues/6562)) ([ff5a748](https://github.com/reactivex/rxjs/commit/ff5a748b31ee73a6517e2f4220c920c73fbdd1fc)), closes [#6561](https://github.com/reactivex/rxjs/issues/6561) - **forkJoin:** now finalizes sources before emitting ([#6546](https://github.com/reactivex/rxjs/issues/6546)) ([c52ff2e](https://github.com/reactivex/rxjs/commit/c52ff2e3aae19cd0877adb63182c03b79427de96)), closes [#4914](https://github.com/reactivex/rxjs/issues/4914) - **observeOn:** release action references on teardown ([321d205](https://github.com/reactivex/rxjs/commit/321d2052696a7c366786c1ef3be7ad2a98a55f62)) - **types:** update schedule signature overload ([c61e57c](https://github.com/reactivex/rxjs/commit/c61e57c9c64a1525d034aea641f1b846737e1eee)) # [7.3.0](https://github.com/reactivex/rxjs/compare/7.2.0...7.3.0) (2021-07-28) ### Bug Fixes - Expose `Connectable`, the return type of `connectable` ([#6531](https://github.com/reactivex/rxjs/issues/6531)) ([69f5bfa](https://github.com/reactivex/rxjs/commit/69f5bfae0eb2880a3d5cfb34db3a182182b325de)), closes [#6529](https://github.com/reactivex/rxjs/issues/6529) - **AsyncSubject:** properly emits values during reentrant subscriptions ([#6522](https://github.com/reactivex/rxjs/issues/6522)) ([dd8bdf3](https://github.com/reactivex/rxjs/commit/dd8bdf3b18b596155b66029ef16ebabf989360c5)), closes [#6520](https://github.com/reactivex/rxjs/issues/6520) ### Features - **retry:** Now supports configurable delay as a named argument ([#6421](https://github.com/reactivex/rxjs/issues/6421)) ([5f69795](https://github.com/reactivex/rxjs/commit/5f69795f4be035499cf223bf9a3d7352c4975291)) - **tap:** Now supports subscribe, unsubscribe, and finalize handlers ([#6527](https://github.com/reactivex/rxjs/issues/6527)) ([eb26cbc](https://github.com/reactivex/rxjs/commit/eb26cbc4488c9953cdde565b598b1dbdeeeee9ea)) # [7.2.0](https://github.com/reactivex/rxjs/compare/7.1.0...7.2.0) (2021-07-05) ### Bug Fixes - **debounceTime:** unschedule dangling task on unsubscribe before complete ([#6464](https://github.com/reactivex/rxjs/issues/6464)) ([7ab0a4c](https://github.com/reactivex/rxjs/commit/7ab0a4c649b1b54e763a726c4ffdc183b0b45b23)) - **fromEvent:** Types now properly infer when resultSelector is provided ([#6447](https://github.com/reactivex/rxjs/issues/6447)) ([39b9d81](https://github.com/reactivex/rxjs/commit/39b9d818ef6ea033dc8e53800e3a220d56c76b4a)) ### Features - Operators are all exported at the top level, from "rxjs". From here on out, we encourage top-level imports with RxJS. Importing from `rxjs/operators` will be deprecated soon. ([#6488](https://github.com/reactivex/rxjs/issues/6488)) ([512adc2](https://github.com/reactivex/rxjs/commit/512adc25f350660113275d8277d16b7f3eec1d49)), closes [#6242](https://github.com/reactivex/rxjs/issues/6242) # [7.1.0](https://github.com/reactivex/rxjs/compare/7.0.1...7.1.0) (2021-05-21) ### Bug Fixes - returned operator functions from multicast operators `share`, `publish`, `publishReplay` are now referentially transparent. Meaning if you take the result of calling `publishReplay(3)` and pass it to more than one observable's `pipe` method, it will behave the same in each case, rather than having a cumulative effect, which was a regression introduced sometime in version 6. If you required this broken behavior, there is a workaround posted [here](https://github.com/ReactiveX/rxjs/pull/6410#issuecomment-846087374) ([#6410](https://github.com/reactivex/rxjs/issues/6410)) ([e2f2e51](https://github.com/reactivex/rxjs/commit/e2f2e516514bdeb76229e69c639f10f21bccafad)), closes [/github.com/ReactiveX/rxjs/pull/6410#issuecomment-846087374](https://github.com//github.com/ReactiveX/rxjs/pull/6410/issues/issuecomment-846087374) [#5411](https://github.com/reactivex/rxjs/issues/5411) ### Features - All subjects now have an `observed` property. This will allow users to check whether a subject has current subscribers without us allowing access to the `observers` array, which is going to be made private in future versions. ([#6405](https://github.com/reactivex/rxjs/issues/6405)) ([f47425d](https://github.com/reactivex/rxjs/commit/f47425d349475231c0f3542bb6ecef16a63e933a)) - **groupBy:** Support named arguments, support ObservableInputs for duration selector ([#5679](https://github.com/reactivex/rxjs/issues/5679)) ([7a99397](https://github.com/reactivex/rxjs/commit/7a9939773802c4f7948c6d868a8f75facdea9f37)) - **share:** use another observable to control resets ([#6169](https://github.com/reactivex/rxjs/issues/6169)) ([12c3716](https://github.com/reactivex/rxjs/commit/12c3716cecbf01f353c980488bf18845177b37b6)) ## [7.0.1](https://github.com/reactivex/rxjs/compare/7.0.0...7.0.1) (2021-05-12) ### Bug Fixes - **bindCallback:** resulting function now recreated underlying Subject and is reusable once again. ([#6369](https://github.com/reactivex/rxjs/issues/6369)) ([abf2bc1](https://github.com/reactivex/rxjs/commit/abf2bc13e38406717127159c8c373b910223b562)) - **retry:** properly handles retry counts smaller than `1`. ([#6359](https://github.com/reactivex/rxjs/issues/6359)) ([e797bd7](https://github.com/reactivex/rxjs/commit/e797bd70b1368e189df00d697504304a3a5ef1a8)) - **share:** properly closes synchronous "firehose" sources. ([#6370](https://github.com/reactivex/rxjs/issues/6370)) ([2271a91](https://github.com/reactivex/rxjs/commit/2271a9180131a0becdbf789c1429ef741ace4b2f)) - Observable teardowns now properly called if `useDeprecatedSynchronousErrorHandling` is `true`. ([#6365](https://github.com/reactivex/rxjs/issues/6365)) ([e19e104](https://github.com/reactivex/rxjs/commit/e19e104d011233d83bc10c37f1ee0b3ac6e15612)), closes [#6364](https://github.com/reactivex/rxjs/issues/6364) - **Subscription:** properly release parent subscriptions when unsubscribed. ([#6352](https://github.com/reactivex/rxjs/issues/6352)) ([88331d2](https://github.com/reactivex/rxjs/commit/88331d2ecdcf0f81a0712b315ed810d4da7d4b97)), closes [#6351](https://github.com/reactivex/rxjs/issues/6351) [#6351](https://github.com/reactivex/rxjs/issues/6351) - **node**: do not reference DOM-related imports to assist in node usage. ([#6305](https://github.com/reactivex/rxjs/issues/6305)) ([b24818e](https://github.com/reactivex/rxjs/commit/b24818e96775045c7485932bf33349471e8f1363)), closes [#6297](https://github.com/reactivex/rxjs/issues/6297) # [7.0.0](https://github.com/reactivex/rxjs/compare/7.0.0-rc.3...7.0.0) (2021-04-29) ### Bug Fixes - VS code will now properly auto-import operators, et al ([#6276](https://github.com/reactivex/rxjs/issues/6276)) ([f43c728](https://github.com/reactivex/rxjs/commit/f43c72815f9ebe5ee3a8ed11513be0f541c9517d)), closes [#6067](https://github.com/reactivex/rxjs/issues/6067) - **AjaxResponse:** add stricter `type` (`AjaxResponseType`) ([#6279](https://github.com/reactivex/rxjs/issues/6279)) ([839e192](https://github.com/reactivex/rxjs/commit/839e192b7d826d833d7ce941be97c3735bd19c0a)) # [7.0.0-rc.3](https://github.com/reactivex/rxjs/compare/7.0.0-rc.2...7.0.0-rc.3) (2021-04-28) ### Bug Fixes - finalize behaves well with useDeprecatedSynchronousErrorHandling ([#6251](https://github.com/reactivex/rxjs/issues/6251)) ([e4bed2a](https://github.com/reactivex/rxjs/commit/e4bed2a2bad994f05a39246707d4f203412cebbd)), closes [#6250](https://github.com/reactivex/rxjs/issues/6250) - resolve run-time errors when using deprecated sync error handling ([#6272](https://github.com/reactivex/rxjs/issues/6272)) ([35daaf7](https://github.com/reactivex/rxjs/commit/35daaf77d3a9a909a7ec22c362c97ac42a597f79)), closes [#6271](https://github.com/reactivex/rxjs/issues/6271) - resolve issue that made users unable to assert `instanceof AjaxError`. ([#6275](https://github.com/reactivex/rxjs/issues/6275)) ([a7c2d29](https://github.com/reactivex/rxjs/commit/a7c2d297ad6b2f405ac312b38f6360e9a645d890)) ### Features - add config object to connectable ([#6267](https://github.com/reactivex/rxjs/issues/6267)) ([4d98b40](https://github.com/reactivex/rxjs/commit/4d98b40f969d5f55381f9a178ef3c18e6850cf47)) ### BREAKING CHANGES - Our very new creation function, `connectable`, now takes a configuration object instead of just the `Subject` instance. This was necessary to make sure it covered all use cases for what we were trying to replace in the deprecated multicasting operators. Apologies for the late-in-the-game change, but we know it's not widely used yet (it's new in v7), and we want to get it right. # [7.0.0-rc.2](https://github.com/reactivex/rxjs/compare/7.0.0-rc.1...7.0.0-rc.2) (2021-04-20) ### Bug Fixes - **webSocket:** return the correct type for `WebSocketSubject` `multiplex` method([#6232](https://github.com/reactivex/rxjs/issues/6232)) ([33383b8](https://github.com/reactivex/rxjs/commit/33383b884d895fa77866362b8b00fd2e2c3597e6)) ### Reverts - Revert "chore: Add typesVersions to package.json (#6229)" (#6241) ([304f3a7](https://github.com/reactivex/rxjs/commit/304f3a73e67871f9b37f39675e503174d3dcc23a)), closes [#6229](https://github.com/reactivex/rxjs/issues/6229) [#6241](https://github.com/reactivex/rxjs/issues/6241) # [7.0.0-rc.1](https://github.com/reactivex/rxjs/compare/7.0.0-rc.0...7.0.0-rc.1) (2021-04-19) ### Bug Fixes - **TypeScript:** Add typesVersions definition to package.json in order to help VS Code find automatic imports. ([#6067](https://github.com/reactivex/rxjs/issues/6067)) ([659a623](https://github.com/reactivex/rxjs/commit/659a623c94bd6b210e9beb6bb6061be540b05538)) # [7.0.0-rc.0](https://github.com/reactivex/rxjs/compare/7.0.0-beta.15...7.0.0-rc.0) (2021-04-19) ### Bug Fixes - **symbol:** revert unique symbol in [#5874](https://github.com/reactivex/rxjs/issues/5874) ([#6224](https://github.com/reactivex/rxjs/issues/6224)) ([3c49429](https://github.com/reactivex/rxjs/commit/3c49429fadc31ebaddd143d4412907edc50e32be)), closes [#5919](https://github.com/reactivex/rxjs/issues/5919) [#6178](https://github.com/reactivex/rxjs/issues/6178) [#6175](https://github.com/reactivex/rxjs/issues/6175) - forkJoin/combineLatest return Observable if passed any ([#6227](https://github.com/reactivex/rxjs/issues/6227)) ([ce0a2fa](https://github.com/reactivex/rxjs/commit/ce0a2fa975e7c08de2bbf893010f2c25c090b1ca)), closes [#6226](https://github.com/reactivex/rxjs/issues/6226) - **fromEvent:** match targets properly; fix result selector type ([#6208](https://github.com/reactivex/rxjs/issues/6208)) ([8412c73](https://github.com/reactivex/rxjs/commit/8412c739bb47cc45ec3f38327115301b4fcc0118)) - **merge:** single array is not an array of sources ([#6211](https://github.com/reactivex/rxjs/issues/6211)) ([4e900dc](https://github.com/reactivex/rxjs/commit/4e900dc745b5fbd7659b104c49fb0fce4ae84707)) - **pipe:** Ensure that `unknown` is inferred for 9+ arguments. ([#6212](https://github.com/reactivex/rxjs/issues/6212)) ([6fa819b](https://github.com/reactivex/rxjs/commit/6fa819beb91ba99dadd6262d6c13f7ddfd9470c5)) ### Features - add (optional) defaultValue configuration to firstValueFrom and lastValueFrom ([#6204](https://github.com/reactivex/rxjs/issues/6204)) ([df51b04](https://github.com/reactivex/rxjs/commit/df51b04d7ec68a72b3a4b0d69c3bb29264c72611)) # [7.0.0-beta.15](https://github.com/reactivex/rxjs/compare/7.0.0-beta.14...7.0.0-beta.15) (2021-03-31) ### Bug Fixes - **esm:** duplicate directory in export path ([#6194](https://github.com/reactivex/rxjs/issues/6194)) ([aa41462](https://github.com/reactivex/rxjs/commit/aa4146288ec6542754f41ffd260fa4d6936a4d22)) # [7.0.0-beta.14](https://github.com/reactivex/rxjs/compare/7.0.0-beta.13...7.0.0-beta.14) (2021-03-30) ### Bug Fixes - **share:** No longer throws errors for reentrant observables ([#6151](https://github.com/reactivex/rxjs/issues/6151)) ([fc728cd](https://github.com/reactivex/rxjs/commit/fc728cdf2f395620cca347602e66f3d173c057b5)), closes [#6144](https://github.com/reactivex/rxjs/issues/6144) ### Features - **ajax:** Now allows configuration of query string parameters, via a `params` option in the request configuration ([#6174](https://github.com/reactivex/rxjs/issues/6174)) ([980f4d4](https://github.com/reactivex/rxjs/commit/980f4d4bb6a3bc1513a4335ed124f4d11b93d251)) - **esm:** Added exports within package.json to enable scoped package loading. ([#6192](https://github.com/reactivex/rxjs/issues/6192)) ([33a9f06](https://github.com/reactivex/rxjs/commit/33a9f06f2c59c8aef3bb583bdb7d61d08ab597a0)), closes [sveltejs/kit#612](https://github.com/sveltejs/kit/issues/612) [nodejs/node#27408](https://github.com/nodejs/node/issues/27408) - **ReadableStreams:** RxJS now supports conversions for ReadableStreams e.g. `from(readableStream)`. ([#6163](https://github.com/reactivex/rxjs/issues/6163)) ([19d6502](https://github.com/reactivex/rxjs/commit/19d650223cf0e1964e893baca19f264154422a7d)) # [7.0.0-beta.13](https://github.com/reactivex/rxjs/compare/7.0.0-beta.12...7.0.0-beta.13) (2021-03-15) ### Bug Fixes - **fromEvent:** throw if passed invalid target ([#6136](https://github.com/reactivex/rxjs/issues/6136)) ([317ba0c](https://github.com/reactivex/rxjs/commit/317ba0c9254e447385414e2c57e1d81760f88aa6)), closes [#5823](https://github.com/reactivex/rxjs/issues/5823) - remove misused type parameter from static pipe ([#6119](https://github.com/reactivex/rxjs/issues/6119)) ([8dc7d17](https://github.com/reactivex/rxjs/commit/8dc7d1793b4067d9eedc42b28d49ace8296672f5)), closes [#5557](https://github.com/reactivex/rxjs/issues/5557) - **Subscriber:** don't leak destination ([#6116](https://github.com/reactivex/rxjs/issues/6116)) ([5bba36c](https://github.com/reactivex/rxjs/commit/5bba36c6dde5b1b4b7e434104e716b233e5f402c)) - **combineLatest:** POJO signature should match only ObservableInput values ([#6103](https://github.com/reactivex/rxjs/issues/6103)) ([d633494](https://github.com/reactivex/rxjs/commit/d633494dcdcabecda2c64ee84b8b6ceeaa2cb3d8)) - **forkJoin:** POJO signature should match only ObservableInput values ([#6095](https://github.com/reactivex/rxjs/issues/6095)) ([566427e](https://github.com/reactivex/rxjs/commit/566427e88e597589f21b8cfb057dd13d5c61e0f2)) - predicates that return `any` will now behave property with findIndex ([#6097](https://github.com/reactivex/rxjs/issues/6097)) ([c6f73d6](https://github.com/reactivex/rxjs/commit/c6f73d687e6b2142da4cab2a66047cc6dd123bf9)) - remove misused type parameter from isObservable ([#6083](https://github.com/reactivex/rxjs/issues/6083)) ([f16b634](https://github.com/reactivex/rxjs/commit/f16b6341eef85009fc16de13623dc860d8d87778)) - unhandled errors in observers correctly scheduled ([#6118](https://github.com/reactivex/rxjs/issues/6118)) ([c02ceb7](https://github.com/reactivex/rxjs/commit/c02ceb75e3de12fedbe270d5d323f508171f9cfd)) - **defaultIfEmpty:** Allow `undefined` as an argument, require an argument ([4983760](https://github.com/reactivex/rxjs/commit/4983760b9179da27ddfcbf419ac5975cff9447c9)), closes [#6064](https://github.com/reactivex/rxjs/issues/6064) - **elementAt:** Allow `defaultValue` of `undefined`. ([5bc1b3e](https://github.com/reactivex/rxjs/commit/5bc1b3e22deceb5ea5f1882c0f92f061c1c4792d)) - **first:** Allow `defaultValue` of `undefined`. ([62a6bbe](https://github.com/reactivex/rxjs/commit/62a6bbe1c3c51468c57e4e8f754c1c09da2db51b)) - **last:** Allow `defaultValue` of `undefined`. ([ef3e721](https://github.com/reactivex/rxjs/commit/ef3e721f440132cf199f662b6a987349a0a70418)) ### Features - rename and alias `combineLatest` as `combineLatestAll` for consistency ([#6079](https://github.com/reactivex/rxjs/issues/6079)) ([42cee80](https://github.com/reactivex/rxjs/commit/42cee8045594779e8802b370c7244e6bbeeccaa3)), closes [#4590](https://github.com/reactivex/rxjs/issues/4590) ### BREAKING CHANGES - **defaultIfEmpty:** `defaultIfEmpty` requires a value be passed. Will no longer convert `undefined` to `null` for no good reason. # [7.0.0-beta.12](https://github.com/reactivex/rxjs/compare/7.0.0-beta.11...7.0.0-beta.12) (2021-02-27) 5bc8e3361 Fix/6052 ajax responseType should default to "json" (#6056) ### Bug Fixes - **ajax**: `responseType` is now properly defaulted to `"json"` again. ([#6056](https://github.com/reactivex/rxjs/issues/6056)) ([5bc8e3361](https://github.com/reactivex/rxjs/commit/5bc8e3361)) - Corner case resolved where an error thrown in a completion handler might delay teardown if it happened to be after a completing operator like `take`. ([#6062](https://github.com/reactivex/rxjs/issues/6062)) ([a2b9563](https://github.com/reactivex/rxjs/commit/a2b95631be882d2cf0fd87f43804d1ed699591d7)) - **AsyncGenerator support**: consumed async generators are now properly finalized. ([#6062](https://github.com/reactivex/rxjs/issues/6062)) ([a2b9563](https://github.com/reactivex/rxjs/commit/a2b95631be882d2cf0fd87f43804d1ed699591d7)), closes [#5998](https://github.com/reactivex/rxjs/issues/5998) - **throttle:** no longer emits more than necessary in sync/sync trailing case ([#6059](https://github.com/reactivex/rxjs/issues/6059)) ([9da638a](https://github.com/reactivex/rxjs/commit/9da638a70d5abb862439ab4ee6a55368228811b0)), closes [#6058](https://github.com/reactivex/rxjs/issues/6058) # [7.0.0-beta.11](https://github.com/reactivex/rxjs/compare/7.0.0-beta.10...7.0.0-beta.11) (2021-02-24) ### Bug Fixes - **ajax:** now errors on forced abort ([#6041](https://github.com/reactivex/rxjs/issues/6041)) ([d950921](https://github.com/reactivex/rxjs/commit/d95092143c1860eef054d27f2a1e50cb98b0ef58)), closes [#4251](https://github.com/reactivex/rxjs/issues/4251) - **buffer:** closingNotifier completion does not complete resulting observable ([358ae84](https://github.com/reactivex/rxjs/commit/358ae84cb9d59170216e7e0845c192eb3e1dcb51)) - **buffer:** Remaining buffer will correctly be emitted on source close. ([0c667d5](https://github.com/reactivex/rxjs/commit/0c667d596d4a14002ffe9d4db319ed7cd7442ada)), closes [#3990](https://github.com/reactivex/rxjs/issues/3990) [#6035](https://github.com/reactivex/rxjs/issues/6035) - **debounceTime:** improves performance on quick succession of emits ([#6049](https://github.com/reactivex/rxjs/issues/6049)) ([9b70861](https://github.com/reactivex/rxjs/commit/9b708613cb7687647dc43c5e15b821e17ccc23ef)) - **distinctUntilChanged:** Ensure reentrant code is compared properly ([#6014](https://github.com/reactivex/rxjs/issues/6014)) ([0ebcf17](https://github.com/reactivex/rxjs/commit/0ebcf1751a5359072b137ff197789570be4d7ead)) - **share:** Ensure proper memory clean up ([1aa400a](https://github.com/reactivex/rxjs/commit/1aa400a5214325bc843a74602022a7912da20166)) - **window:** final window stays open until source complete ([e8b05ef](https://github.com/reactivex/rxjs/commit/e8b05ef090d33af5b883e8020b8b7a3c4c8fa30e)) - **concat/merge:** operators will finalize inners before moving to the next ([#6010](https://github.com/reactivex/rxjs/issues/6010)) ([5249a23](https://github.com/reactivex/rxjs/commit/5249a23b38bdda4639e9d669afd62a624172f89c)), closes [#3338](https://github.com/reactivex/rxjs/issues/3338) - predicates that return `any` will now behave property in TS ([#5987](https://github.com/reactivex/rxjs/issues/5987)) ([f5ae97d](https://github.com/reactivex/rxjs/commit/f5ae97d49a35b9f99ac59f79dd244a6d8d6c8a7b)), closes [#5986](https://github.com/reactivex/rxjs/issues/5986) - `publish` variants returning `ConnectableObservable` not properly utilizing lift ([#6003](https://github.com/reactivex/rxjs/issues/6003)) ([9acb950](https://github.com/reactivex/rxjs/commit/9acb950aec9efda95eb7492bfc47a33b71ef2e55)) - Resolve issues with deprecated synchronous error handling and chained operators ([#5980](https://github.com/reactivex/rxjs/issues/5980)) ([0ad2802](https://github.com/reactivex/rxjs/commit/0ad2802a5aa9cd19875dc05c1cfb33f0b2f2c153)), closes [#5979](https://github.com/reactivex/rxjs/issues/5979) - `useDeprecatedSynchronousErrorThrowing` honored for flattened sync sources ([#5984](https://github.com/reactivex/rxjs/issues/5984)) ([abd95ce](https://github.com/reactivex/rxjs/commit/abd95ce1aa81a64de81c074a72570a8f0949cd0d)), closes [#5983](https://github.com/reactivex/rxjs/issues/5983) ### Features - **ajax:** Add option for streaming progress ([#6001](https://github.com/reactivex/rxjs/issues/6001)) ([873e52d](https://github.com/reactivex/rxjs/commit/873e52d0d67b0f8470e6290c6fbc35c571464aaf)) - **exhaustAll:** renamed `exhaust` to `exhaustAll` ([#5639](https://github.com/reactivex/rxjs/issues/5639)) ([701c7d4](https://github.com/reactivex/rxjs/commit/701c7d48cf1c3e60941692010254d6a27fc70980)) ### BREAKING CHANGES - **window:** The `windowBoundaries` observable no longer completes the result. It was only ever meant to notify of the window boundary. To get the same behavior as the old behavior, you would need to add an `endWith` and a `skipLast(1)` like so: `source$.pipe(window(notifier$.pipe(endWith(true))), skipLast(1))`. - **buffer:** Final buffered values will now always be emitted. To get the same behavior as the previous release, you can use `endWith` and `skipLast(1)`, like so: `source$.pipe(buffer(notifier$.pipe(endWith(true))), skipLast(1))` - **buffer:** `closingNotifier` completion no longer completes the result of `buffer`. If that is truly a desired behavior, then you should use `takeUntil`. Something like: `source$.pipe(buffer(notifier$), takeUntil(notifier$.pipe(ignoreElements(), endWith(true))))`, where `notifier$` is multicast, although there are many ways to compose this behavior. # [7.0.0-beta.10](https://github.com/reactivex/rxjs/compare/7.0.0-beta.9...7.0.0-beta.10) (2021-01-18) ### Bug Fixes - **combineLatest:** Ensure `EMPTY` is returned if no observables are passed. ([#5963](https://github.com/reactivex/rxjs/issues/5963)) ([157c7e8](https://github.com/reactivex/rxjs/commit/157c7e8068befdfb26a9ba6ca770d38a66966ab5)), closes [#5962](https://github.com/reactivex/rxjs/issues/5962) - **fromEvent:** fixed HasEventTargetAddRemove to support EventTarget types ([#5945](https://github.com/reactivex/rxjs/issues/5945)) ([5f022d7](https://github.com/reactivex/rxjs/commit/5f022d784570684632e6fd5ae247fc259ee34c4b)) ### Features - **connect:** Adds new `connect` operator. ([9d53af0](https://github.com/reactivex/rxjs/commit/9d53af04103dbbb3bae40a4c511e2eebf117be09)) - **connectable:** Adds `connectable` creation method ([f968a79](https://github.com/reactivex/rxjs/commit/f968a791c1b48f3100e925d700e8a0ecd69cc7e5)) - **share:** Make `share` completely configurable. Also adds `SubjectLike`. ([2d600c7](https://github.com/reactivex/rxjs/commit/2d600c75c1065d862a2089dc1cd26007996b1c9d)) - **TestScheduler:** add `expectObservable(a$).toEqual(b$)`. ([3372c72](https://github.com/reactivex/rxjs/commit/3372c72ed77a96e29a613a620e85f93bcf447920)) ### Performance Improvements - ensure same hidden class for OperatorSubscriber ([#5878](https://github.com/reactivex/rxjs/issues/5878)) ([246b449](https://github.com/reactivex/rxjs/commit/246b44902acde3a80e659f362969e6e2f8b19ef2)) ### BREAKING CHANGES - **share:** The TypeScript type `Subscribable` now only supports what is a valid return for `[Symbol.observable]()`. - **share:** The TypeScript type `Observer` no longer incorrectly has an optional `closed` property. # [7.0.0-beta.9](https://github.com/reactivex/rxjs/compare/7.0.0-beta.8...7.0.0-beta.9) (2020-12-07) ### Bug Fixes - **audit:** don't signal on complete ([54cb428](https://github.com/reactivex/rxjs/commit/54cb42823ceec4db469f6155de67993b67ec85be)) - **bufferToggle:** don't signal on complete ([65686ff](https://github.com/reactivex/rxjs/commit/65686ffd23f2d5a5145f2b7c33ea739e9bb808cd)) - **bufferWhen:** don't signal on complete ([a2ba364](https://github.com/reactivex/rxjs/commit/a2ba364ede3c69c7703795a744f57122b49eac40)) - **debounce:** don't signal on complete ([c919c68](https://github.com/reactivex/rxjs/commit/c919c684ad63724f0b55ccc4561f847773d945c8)) - **delayWhen:** no longer emits if duration selector is empty ([#5769](https://github.com/reactivex/rxjs/issues/5769)) ([0872341](https://github.com/reactivex/rxjs/commit/087234146760ab2c67a04f9f0b5494a93affadb7)), closes [#3665](https://github.com/reactivex/rxjs/issues/3665) - **forkJoin:** ensure readonly array argument `forkJoin([a$, b$, c$] as const)` result is correct ([6baec53](https://github.com/reactivex/rxjs/commit/6baec536015253ac96827f2136ede17a324c634e)) - **iif:** No longer allow accidental undefined arguments ([#5829](https://github.com/reactivex/rxjs/issues/5829)) ([23b98b4](https://github.com/reactivex/rxjs/commit/23b98b4e61c3284c81c07a8d810e8c3ec99ddfec)) - **sample:** don't signal on complete ([95e0b70](https://github.com/reactivex/rxjs/commit/95e0b703caaf288657c7d722b9823458280be88b)) - **Symbol.observable:** properly defined as a `unique symbol`. ([#5874](https://github.com/reactivex/rxjs/issues/5874)) ([374138e](https://github.com/reactivex/rxjs/commit/374138e09eb7ceb6f8da556c6c11dea1ba8cdbee)), closes [#5861](https://github.com/reactivex/rxjs/issues/5861) [#4415](https://github.com/reactivex/rxjs/issues/4415) - **throttle:** don't signal on complete ([4af0227](https://github.com/reactivex/rxjs/commit/4af022753d6dd4e94bcfcf0cc6082bb2312a3f02)) - **windowToggle:** don't signal on complete ([9cb56c4](https://github.com/reactivex/rxjs/commit/9cb56c45de289ef5b062f33971996bdb8414cf99)), closes [#5838](https://github.com/reactivex/rxjs/issues/5838) - use empty object type in combineLatest/forkJoin sigs ([#5832](https://github.com/reactivex/rxjs/issues/5832)) ([22aaaa2](https://github.com/reactivex/rxjs/commit/22aaaa2f03dc721f850d9836243773c5310e85e8)) - **withLatestFrom:** allow synchronous source ([#5828](https://github.com/reactivex/rxjs/issues/5828)) ([adbe65e](https://github.com/reactivex/rxjs/commit/adbe65e659bbf17f6ab20a9b30fcca0e4d76af9a)) ### Features - stopped notification handler ([#5750](https://github.com/reactivex/rxjs/issues/5750)) ([cfa267b](https://github.com/reactivex/rxjs/commit/cfa267bc0916ede09c8b14aedcdb69a791055fb6)) - support emoji in marble diagrams ([#5907](https://github.com/reactivex/rxjs/issues/5907)) ([1b4608c](https://github.com/reactivex/rxjs/commit/1b4608cea3a9db96d7a629ad5de0e100145c180e)) - **filter:** improve type inference for filter(Boolean) ([#5831](https://github.com/reactivex/rxjs/issues/5831)) ([d2658fa](https://github.com/reactivex/rxjs/commit/d2658fa32d7a86ac1e0796c452df258fc5470f67)) ### BREAKING CHANGES - **windowToggle:** the observable returned by the windowToggle operator's closing selector must emit a next notification to close the window. Complete notifications no longer close the window. - **bufferToggle:** the observable returned by the bufferToggle operator's closing selector must emit a next notification to close the buffer. Complete notifications no longer close the buffer. - **bufferWhen:** the observable returned by the bufferWhen operator's closing selector must emit a next notification to close the buffer. Complete notifications no longer close the buffer. - **debounce:** the observable returned by the debounce operator's duration selector must emit a next notification to end the duration. Complete notifications no longer end the duration. - **throttle:** the observable returned by the throttle operator's duration selector must emit a next notification to end the duration. Complete notifications no longer end the duration. - **sample:** the sample operator's notifier observable must emit a next notification to effect a sample. Complete notifications no longer effect a sample. - **audit:** the observable returned by the audit operator's duration selector must emit a next notification to end the duration. Complete notifications no longer end the duration. - **Symbol.observable:** `rxjs@7` is only compatible with `@types/node@14.14.3` or higher and `symbol-observable@3.0.0` and higher. Older versions of `@types/node` incorrectly defined `Symbol.observable` and will be in conflict with `rxjs` and `symbol-observable@3.0.0`. - **delayWhen:** `delayWhen` will no longer emit if the duration selector simply completes without a value. Notifiers must notify with a value, not a completion. - **iif:** `iif` will no longer allow result arguments that are `undefined`. This was a bad call pattern that was likely an error in most cases. If for some reason you are relying on this behavior, simply substitute `EMPTY` in place of the `undefined` argument. This ensures that the behavior was intentional and desired, rather than the result of an accidental `undefined` argument. # [7.0.0-beta.8](https://github.com/reactivex/rxjs/compare/7.0.0-beta.7...7.0.0-beta.8) (2020-10-15) ### Bug Fixes - **audit, auditTime:** audit and auditTime emit last value after source completes ([#5799](https://github.com/reactivex/rxjs/issues/5799)) ([643bc85](https://github.com/reactivex/rxjs/commit/643bc85ab17a15a5d96f8bef8f08c3987d16eb40)), closes [#5730](https://github.com/reactivex/rxjs/issues/5730) - No longer allow invalid "Subscribable" type as valid observable source in `from` and others. ([258dddd](https://github.com/reactivex/rxjs/commit/258dddd8a392456e7d0b5ed9a7e294044f7c2518)), closes [#4532](https://github.com/reactivex/rxjs/issues/4532) - **bindNodeCallback:** ensure underlying function is not called twice during subscription ([#5780](https://github.com/reactivex/rxjs/issues/5780)) ([74aa4b2](https://github.com/reactivex/rxjs/commit/74aa4b2ea6685f475329a8b8ecbcebed9adae547)) - **delay:** Now properly handles Date and negative numbers ([#5719](https://github.com/reactivex/rxjs/issues/5719)) ([868c02b](https://github.com/reactivex/rxjs/commit/868c02b47bb6f4ec4cd1d68b5b474731c470f27e)), closes [#5232](https://github.com/reactivex/rxjs/issues/5232) - **delayWhen:** only deprecates when subscriptionDelay presents ([#5797](https://github.com/reactivex/rxjs/issues/5797)) ([43d1731](https://github.com/reactivex/rxjs/commit/43d17311a521234375146029aa5c4709cb221344)) - **every:** index properly increments in predicate ([5686f83](https://github.com/reactivex/rxjs/commit/5686f838fdc3da710d3f1eed1a6381791e3cc644)) - **firstValueFrom:** now unsubscribes from source after first value is received ([#5813](https://github.com/reactivex/rxjs/issues/5813)) ([a321516](https://github.com/reactivex/rxjs/commit/a321516908aa036fb658395a372668a986af2504)), closes [#5811](https://github.com/reactivex/rxjs/issues/5811) - **from:** objects that are thennable that happen to have a subscribe method will no longer error. ([789d6e3](https://github.com/reactivex/rxjs/commit/789d6e3d851d57ab3b4488381f702120fd079737)) - **fromEvent:** now properly types JQuery event targets ([b5aa15a](https://github.com/reactivex/rxjs/commit/b5aa15a7f58377310438aa5957e1516749d36219)) - **mergeScan:** no longer emits state again upon completion. ([#5805](https://github.com/reactivex/rxjs/issues/5805)) ([68c2894](https://github.com/reactivex/rxjs/commit/68c28943b4d2c51068fecbc359a68ca6982307bf)), closes [#5372](https://github.com/reactivex/rxjs/issues/5372) - **throttle:** now supports synchronous duration selectors ([55e953e](https://github.com/reactivex/rxjs/commit/55e953e1f7b915e6c9072bf14a2febd5b8431393)), closes [#5658](https://github.com/reactivex/rxjs/issues/5658) - **throttle:** trailing values will now emit after source completes ([d5fd69c](https://github.com/reactivex/rxjs/commit/d5fd69c123d2232335563eea95c69c07576d079d)) - **timeout:** allows synchronous observable as a source ([84c5c0b](https://github.com/reactivex/rxjs/commit/84c5c0b9d9e0d1791ac2f066c26e462e822d73e1)), closes [#5746](https://github.com/reactivex/rxjs/issues/5746) - **zip:** zip now accepts an array of arguments like its counterparts ([3123b67](https://github.com/reactivex/rxjs/commit/3123b670cca9b77919845333952ef70275ed6e90)) ### Code Refactoring - **count:** Base off of `reduce`. ([98a6d09](https://github.com/reactivex/rxjs/commit/98a6d0991df2a28366ab8f34098109a67257c235)) - **pairs:** Based off of `from` and `Object.entries` ([#5775](https://github.com/reactivex/rxjs/issues/5775)) ([d39f830](https://github.com/reactivex/rxjs/commit/d39f8309c33917cb7070c7432fcd382395e4211e)) ### Features - **ajax:** now supports passing custom XSRF cookies in a custom header ([#5702](https://github.com/reactivex/rxjs/issues/5702)) ([1a2c2e4](https://github.com/reactivex/rxjs/commit/1a2c2e49482a460778ea92c7f6a92e58cc3e87bb)), closes [#4003](https://github.com/reactivex/rxjs/issues/4003) - **switchScan:** add switchScan() operator ([#4442](https://github.com/reactivex/rxjs/issues/4442)) ([73fa910](https://github.com/reactivex/rxjs/commit/73fa910cb62eccbccc4b4249f9b2606095704328)), closes [#2931](https://github.com/reactivex/rxjs/issues/2931) ### BREAKING CHANGES - **mergeScan:** `mergeScan` will no longer emit its inner state again upon completion. - **pairs:** `pairs` will no longer function in IE without a polyfill for `Object.entries`. `pairs` itself is also deprecated in favor of users just using `from(Object.entries(obj))`. - **zip:** Zipping a single array will now have a different result. This is an extreme corner-case, because it is very unlikely that anyone would want to zip an array with nothing at all. The workaround would be to wrap the array in another array `zip([[1,2,3]])`. But again, that's pretty weird. - **count:** No longer passes `source` observable as a third argument to the predicate. That feature was rarely used, and of limited value. The workaround is to simply close over the source inside of the function if you need to access it in there. # [7.0.0-beta.7](https://github.com/reactivex/rxjs/compare/7.0.0-beta.5...7.0.0-beta.7) (2020-09-23) ### Bug Fixes - **multicast:** and other publish variants will handle errors thrown in a selector appropriately ([bde8eda](https://github.com/reactivex/rxjs/commit/bde8eda09310463b05c5ec7d8a1dd1bafe9dba6f)) ### Code Refactoring - **tap:** reduce the size of the implementation ([1222d5a](https://github.com/reactivex/rxjs/commit/1222d5a68faa9d3f3c9ad8f8d5db1440971502bd)) - **Subscriber:** Massively untangle Subscriber and SafeSubscriber ([07902ca](https://github.com/reactivex/rxjs/commit/07902ca99ee828521ce238826f10b55e25fbf554)) ### BREAKING CHANGES - **Subscriber:** `new Subscriber` no longer takes 0-3 arguments. To create a `Subscriber` with 0-3 arguments, use `Subscriber.create`. However, please note that there is little to no reason that you should be creating `Subscriber` references directly, and `Subscriber.create` and `new Subscriber` are both deprecated. # [7.0.0-beta.6](https://github.com/reactivex/rxjs/compare/7.0.0-beta.5...7.0.0-beta.6) (2020-09-23) ### Bug Fixes - **AsyncSubject:** fixed reentrancy issue in complete ([9e00f11](https://github.com/reactivex/rxjs/commit/9e00f11e992d223edf1013d0a44c7cad41b72470)), closes [/github.com/ReactiveX/rxjs/pull/5729/files/30d429cf1b791db15c04a61f6a683e189b53fb3e#r492314703](https://github.com//github.com/ReactiveX/rxjs/pull/5729/files/30d429cf1b791db15c04a61f6a683e189b53fb3e/issues/r492314703) - **delay:** proper handling of absolute time (`Date`) passed as an argument ([8ae89b1](https://github.com/reactivex/rxjs/commit/8ae89b19a095541eb3dfe6e6d9f26367486c435e)) - **fromEvent:** properly teardown for ArrayLike targets ([066de74](https://github.com/reactivex/rxjs/commit/066de7408810864891b9fd16e05c6c8b4ca88087)) - **ReplaySubject:** no longer buffers additional values after it's already stopped ([#5696](https://github.com/reactivex/rxjs/issues/5696)) ([a08232b](https://github.com/reactivex/rxjs/commit/a08232be6dcab74e94cfbb17cc5138050bcd6ddb)) - **scan:** proper indexes when seed is not supplied ([f93fb9c](https://github.com/reactivex/rxjs/commit/f93fb9c1fb7434c97e1d156370756159c5f2b077)), closes [#4348](https://github.com/reactivex/rxjs/issues/4348) [#3879](https://github.com/reactivex/rxjs/issues/3879) - **windowTime:** Passing no creation interval will now properly open new window when old one closes ([cbd0ac0](https://github.com/reactivex/rxjs/commit/cbd0ac0478730ec10172b57210e7d269d1ce62a2)) ### Code Refactoring - **Massive Size Reduction:** reduced the size of all operator implementations as well as other utilities and types ([#5729](https://github.com/reactivex/rxjs/issues/5729)) ([4d3fc23](https://github.com/reactivex/rxjs/commit/fc41e13a1b9a05fc242c1369b4f597c931bd28b5)) ### Features - **onUnhandledError:** configuration point added for unhandled errors ([#5681](https://github.com/reactivex/rxjs/issues/5681)) ([3485dd5](https://github.com/reactivex/rxjs/commit/3485dd5149b731e1103d2d070e3892735cbacef1)) - **skipLast:** counts zero or less will mirror the source ([02e113b](https://github.com/reactivex/rxjs/commit/02e113b3345a9efe8f7c29f8b9c1c0d088aaf726)) ### BREAKING CHANGES - **skipLast:** `skipLast` will no longer error when passed a negative number, rather it will simply return the source, as though `0` was passed. - **map:** `thisArg` will now default to `undefined`. The previous default of `MapSubscriber` never made any sense. This will only affect code that calls map with a `function` and references `this` like so: `source.pipe(map(function () { console.log(this); }))`. There wasn't anything useful about doing this, so the breakage is expected to be very minimal. If anything we're no longer leaking an implementation detail. - **onUnhandledError:** Errors that occur during setup of an observable subscription after the subscription has emitted an error or completed will now throw in their own call stack. Before it would call `console.warn`. This is potentially breaking in edge cases for node applications, which may be configured to terminate for unhandled exceptions. In the unlikely event this affects you, you can configure the behavior to `console.warn` in the new configuration setting like so: `import { config } from 'rxjs'; config.onUnhandledError = (err) => console.warn(err);` # [7.0.0-beta.5](https://github.com/reactivex/rxjs/compare/7.0.0-beta.4...7.0.0-beta.5) (2020-09-03) ### Bug Fixes - **ajax:** Allow XHR to perform body serialization and set content-type where possible ([d8657ed](https://github.com/reactivex/rxjs/commit/d8657ede8d9620ac2a7d61557e1f1d0e89b0b52a)), closes [#2837](https://github.com/reactivex/rxjs/issues/2837) - **ajax:** Do not mutate headers passed as arguments ([0d66ba4](https://github.com/reactivex/rxjs/commit/0d66ba458f07fba51cfc73440d01ef453c24cda7)), closes [#2801](https://github.com/reactivex/rxjs/issues/2801) - **bindCallback:** now emits errors that happen after callback ([2bddd31](https://github.com/reactivex/rxjs/commit/2bddd317fad962ad375de4a04dd528b02479ec5b)) - **bindNodeCallback:** now emits errors that happen after callback ([edc28cf](https://github.com/reactivex/rxjs/commit/edc28cfd13ba3d7fadc24ea3c20ec8ca5a19064d)) - **buffer:** Ensure notifier is subscribed after source ([#5654](https://github.com/reactivex/rxjs/issues/5654)) ([c088b0e](https://github.com/reactivex/rxjs/commit/c088b0eca904ab835b23df629d472003d6a82561)), closes [#2195](https://github.com/reactivex/rxjs/issues/2195) [#1754](https://github.com/reactivex/rxjs/issues/1754) - **catchError:** ensure proper handling of async return for synchronous source error handling ([#5627](https://github.com/reactivex/rxjs/issues/5627)) ([1b29d4b](https://github.com/reactivex/rxjs/commit/1b29d4b6d42e3d6b649f9f2c4bb718f343233d83)), closes [#5115](https://github.com/reactivex/rxjs/issues/5115) - **catchError:** inner synchronous observables will properly terminate ([#5655](https://github.com/reactivex/rxjs/issues/5655)) ([d3fd2fb](https://github.com/reactivex/rxjs/commit/d3fd2fb2bd619b79d0c4afebc3c10299afbca262)) - **errors:** Custom RxJS errors now all have a call stack ([#5686](https://github.com/reactivex/rxjs/issues/5686)) ([9bb046c](https://github.com/reactivex/rxjs/commit/9bb046c744cc1f9438a805849b655946e5793936)), closes [#4250](https://github.com/reactivex/rxjs/issues/4250) - **onErrorResumeNext:** observables always finalized before moving to next source ([#5650](https://github.com/reactivex/rxjs/issues/5650)) ([ff68ad2](https://github.com/reactivex/rxjs/commit/ff68ad2caa3d275a23416984fab5570d3fed9458)) - **package.json:** change homepage setting to official docs site. ([#5669](https://github.com/reactivex/rxjs/issues/5669)) ([e57c402](https://github.com/reactivex/rxjs/commit/e57c402b29288f61fe886b00e51817730bcb320b)) - **repeat:** Ensure teardown happens between repeated synchronous obs… ([#5620](https://github.com/reactivex/rxjs/issues/5620)) ([0ca8a65](https://github.com/reactivex/rxjs/commit/0ca8a65b73aea93172366ca67207b53e3e3e77a8)) - **repeatWhen:** Ensure teardown happens between repeat subscriptions ([#5625](https://github.com/reactivex/rxjs/issues/5625)) ([98356f4](https://github.com/reactivex/rxjs/commit/98356f4ebefdba1f5a14edbd96de1592694a01a8)) - **retry:** Ensure teardown happens before resubscription with synchronous observables ([6f90597](https://github.com/reactivex/rxjs/commit/6f90597e51e038dabd8397b9f066ab4e3d344a5b)), closes [#5620](https://github.com/reactivex/rxjs/issues/5620) - **retryWhen:** Ensure subscription tears down between retries ([#5623](https://github.com/reactivex/rxjs/issues/5623)) ([6752af7](https://github.com/reactivex/rxjs/commit/6752af7c1839baf3cd7ed9d024499de61a2477e9)) - **throttleTime:** ensure the spacing between throttles is always at least the throttled amount ([#5687](https://github.com/reactivex/rxjs/issues/5687)) ([ea84fc4](https://github.com/reactivex/rxjs/commit/ea84fc4dce84e32598701f79d9449be00a05352c)), closes [#3712](https://github.com/reactivex/rxjs/issues/3712) [#4864](https://github.com/reactivex/rxjs/issues/4864) [#2727](https://github.com/reactivex/rxjs/issues/2727) [#4727](https://github.com/reactivex/rxjs/issues/4727) [#4429](https://github.com/reactivex/rxjs/issues/4429) - **zip:** zip operators and functions are now able to zip all iterable sources ([#5688](https://github.com/reactivex/rxjs/issues/5688)) ([02c3a1b](https://github.com/reactivex/rxjs/commit/02c3a1b70c0e96b784a3c5c214c0f89c5ebdd696)), closes [#4304](https://github.com/reactivex/rxjs/issues/4304) - `switchMap` and `exhaustMap` behave correctly with re-entrant code. ([c289688](https://github.com/reactivex/rxjs/commit/c289688f5e1f33ec21306b4d2f5539dd19f963f2)) - **webSocket:** close websocket connection attempt on unsubscribe ([e1a671c](https://github.com/reactivex/rxjs/commit/e1a671cbd7f5a6ce547ed9ee6ce98c22264500f4)), closes [#4446](https://github.com/reactivex/rxjs/issues/4446) ### Code Refactoring - **ajax:** Use simple Observable ([17b9add](https://github.com/reactivex/rxjs/commit/17b9add03a90aec6e708a87c0fc387745f0b9df6)) - **Subscriber:** remove \_unsubscribeAndRecycle ([d879c3f](https://github.com/reactivex/rxjs/commit/d879c3f3ae4b1de5660d1613bb8b300e7194d581)) - **VirtualTimeScheduler:** remove sortActions from public API ([#5657](https://github.com/reactivex/rxjs/issues/5657)) ([a468f88](https://github.com/reactivex/rxjs/commit/a468f881c8c02195b089889486d1a94fab2771e0)) ### Features - **combineLatest:** add N-args signature for observable inputs ([#5488](https://github.com/reactivex/rxjs/issues/5488)) ([fcc47e7](https://github.com/reactivex/rxjs/commit/fcc47e75a4c811199c5071144172f4d06ffc7c70)) - **Subscription:** `add` no longer returns unnecessary Subscription reference ([#5656](https://github.com/reactivex/rxjs/issues/5656)) ([4de604e](https://github.com/reactivex/rxjs/commit/4de604ea66261f597af11918aec53cd94590b30f)) - **Subscription:** `remove` will now remove any teardown by reference ([#5659](https://github.com/reactivex/rxjs/issues/5659)) ([1531152](https://github.com/reactivex/rxjs/commit/15311529fa1b880ed469b6c253cd0be7ff2f98a1)) - **throwError:** now accepts a factory to create the error ([#5647](https://github.com/reactivex/rxjs/issues/5647)) ([dad270a](https://github.com/reactivex/rxjs/commit/dad270afcf496de74b4392024191715d7dbef4f5)), closes [#5617](https://github.com/reactivex/rxjs/issues/5617) - **useDeprecatedNextContext:** Puts deprecated next context behavior behind a flag ([dfdef5d](https://github.com/reactivex/rxjs/commit/dfdef5dcaf52363be59359786aef8bc733197b43)) - support schedulers within run ([#5619](https://github.com/reactivex/rxjs/issues/5619)) ([c63de0d](https://github.com/reactivex/rxjs/commit/c63de0d380a923987aab587720473fad1d205d71)) ### Performance Improvements - **SafeSubscriber:** avoid using `Object.create` ([40a9e77](https://github.com/reactivex/rxjs/commit/40a9e77fe3d75df9161ad0093f54750b70f57245)) ### BREAKING CHANGES - **ajax:** - `ajax` body serialization will now use default XHR behavior in all cases. If the body is a `Blob`, `ArrayBuffer`, any array buffer view (like a byte sequence, e.g. `Uint8Array`, etc), `FormData`, `URLSearchParams`, `string`, or `ReadableStream`, default handling is use. If the `body` is otherwise `typeof` `"object"`, then it will be converted to JSON via `JSON.stringify`, and the `Content-Type` header will be set to `application/json;charset=utf-8`. All other types will emit an error. - The `Content-Type` header passed to `ajax` configuration no longer has any effect on the serialization behavior of the AJAX request. - For TypeScript users, `AjaxRequest` is no longer the type that should be explicitly used to create an `ajax`. It is now `AjaxConfig`, although the two types are compatible, only `AjaxConfig` has `progressSubscriber` and `createXHR`. * **zip:** `zip` operators will no longer iterate provided iterables "as needed", instead the iterables will be treated as push-streams just like they would be everywhere else in RxJS. This means that passing an endless iterable will result in the thread locking up, as it will endlessly try to read from that iterable. This puts us in-line with all other Rx implementations. To work around this, it is probably best to use `map` or some combination of `map` and `zip`. For example, `zip(source$, iterator)` could be `source$.pipe(map(value => [value, iterator.next().value]))`. * **Subscription:** `add` no longer returns an unnecessary Subscription reference. This was done to prevent confusion caused by a legacy behavior. You can now add and remove functions and Subscriptions as teardowns to and from a `Subscription` using `add` and `remove` directly. Before this, `remove` only accepted subscriptions. * **RxJS Error types** Tests that are written with naive expectations against errors may fail now that errors have a proper `stack` property. In some testing frameworks, a deep equality check on two error instances will check the values in `stack`, which could be different. * **Undocumented Behaviors/APIs Removed**: - `unsubscribe` no longer available via the `this` context of observer functions. To reenable, set `config.useDeprecatedNextContext = true` on the rxjs `config` found at `import { config } from 'rxjs';`. Note that enabling this will result in a performance penalty for all consumer subscriptions. - Leaked implementation detail `_unsubscribeAndRecycle` of `Subscriber` has been removed. Just use new `Subscription` objects - Removed an undocumented behavior where passing a negative count argument to `retry` would result in an observable that repeats forever. - An undocumented behavior where passing a negative count argument to `repeat` would result in an observable that repeats forever. - The static `sortActions` method on `VirtualTimeScheduler` is no longer publicly exposed by our TS types. * **throwError:** In an extreme corner case for usage, `throwError` is no longer able to emit a function as an error directly. If you need to push a function as an error, you will have to use the factory function to return the function like so: `throwError(() => functionToEmit)`, in other words `throwError(() => () => console.log('called later'))`. # [7.0.0-beta.4](https://github.com/reactivex/rxjs/compare/7.0.0-beta.1...7.0.0-beta.4) (2020-08-02) ### Bug Fixes - **ajax:** Partial observers passed to `progressSubscriber` will no longer error ([25d279f](https://github.com/reactivex/rxjs/commit/25d279f0b45d07f39bfb87b19bc7e2279df8b542)) - **ajax:** Unparsable responses will no longer prevent full AjaxError from being thrown ([605ee55](https://github.com/reactivex/rxjs/commit/605ee550e5efc266b5dc5d3a9756c7c3b3968a61)) - **animationFrames:** emit the timestamp from the rAF's callback ([#5438](https://github.com/reactivex/rxjs/issues/5438)) ([c980ae6](https://github.com/reactivex/rxjs/commit/c980ae65ee1b585e8ed66a366eb534ac3e50c205)) - Ensure unsubscriptions/teardowns on internal subscribers are idempotent ([#5465](https://github.com/reactivex/rxjs/issues/5465)) ([3e39749](https://github.com/reactivex/rxjs/commit/3e39749a58ca663c17f5f0354b0f27532fb6d319)), closes [#5464](https://github.com/reactivex/rxjs/issues/5464) - **timeout:** defer error creation until timeout occurs ([#5497](https://github.com/reactivex/rxjs/issues/5497)) ([3be9840](https://github.com/reactivex/rxjs/commit/3be98404fafd5a8de758deb4e0d103a7b60aa31e)), closes [#5491](https://github.com/reactivex/rxjs/issues/5491) ### Code Refactoring - **ajax:** Drop support for IE10 and lower ([0eaadd6](https://github.com/reactivex/rxjs/commit/0eaadd60c716050f5e3701d513a028a9cd49085a)) - **Observable:** Update property and method types ([#5572](https://github.com/reactivex/rxjs/issues/5572)) ([144b626](https://github.com/reactivex/rxjs/commit/144b626c3905640b4adeb2b97e722912eff1b264)) ### Features - **combineLatest:** support for observable dictionaries ([#5022](https://github.com/reactivex/rxjs/issues/5022)) ([#5363](https://github.com/reactivex/rxjs/issues/5363)) ([f5278aa](https://github.com/reactivex/rxjs/commit/f5278aa89ea164caf5cf10e77d7bd00eff26fc0f)) - **TestScheduler:** add an animate "run mode" helper ([#5607](https://github.com/reactivex/rxjs/issues/5607)) ([edd6731](https://github.com/reactivex/rxjs/commit/edd67313814bfc32e8a5129d8049e4d4678cd35d)) - **timeout:** One timeout to rule them all ([def1d34](https://github.com/reactivex/rxjs/commit/def1d346b43008bc413a3ac985e1611bbbf62003)) ### BREAKING CHANGES - **ajax:** In an extreme corner-case... If an error occurs, the responseType is `"json"`, we're in IE, and the `responseType` is not valid JSON, the `ajax` observable will no longer emit a syntax error, rather it will emit a full `AjaxError` with more details. - **ajax:** Ajax implementation drops support for IE10 and lower. This puts us in-line with other implementations and helps clean up code in this area - **Observable:** `lift` no longer exposed. It was _NEVER_ documented that end users of the library should be creating operators using `lift`. Lift has a [variety of issues](https://github.com/ReactiveX/rxjs/issues/5431) and was always an internal implementation detail of rxjs that might have been used by a few power users in the early days when it had the most value. The value of `lift`, originally, was that subclassed `Observable`s would compose through all operators that implemented lift. The reality is that feature is not widely known, used, or supported, and it was never documented as it was very experimental when it was first added. Until the end of v7, `lift` will remain on Observable. Standard JavaScript users will notice no difference. However, TypeScript users might see complaints about `lift` not being a member of observable. To workaround this issue there are two things you can do: 1. Rewrite your operators as [outlined in the documentation](https://rxjs.dev/guide/operators), such that they return `new Observable`. or 2. cast your observable as `any` and access `lift` that way. Method 1 is recommended if you do not want things to break when we move to version 8. # [7.0.0-beta.3](https://github.com/reactivex/rxjs/compare/7.0.0-beta.1...7.0.0-beta.3) (2020-07-30) ### Bug Fixes - **perf:** Ensure unsubscriptions/teardowns on internal subscribers are idempotent ([#5465](https://github.com/reactivex/rxjs/issues/5465)) ([3e39749](https://github.com/reactivex/rxjs/commit/3e39749a58ca663c17f5f0354b0f27532fb6d319)), closes [#5464](https://github.com/reactivex/rxjs/issues/5464) - **timeout:** defer error creation until timeout occurs ([#5497](https://github.com/reactivex/rxjs/issues/5497)) ([3be9840](https://github.com/reactivex/rxjs/commit/3be98404fafd5a8de758deb4e0d103a7b60aa31e)), closes [#5491](https://github.com/reactivex/rxjs/issues/5491) ### Code Refactoring - **perf:** Reduce memory pressure by no longer retaining outer values across the majority of operators. ([#5610](https://github.com/reactivex/rxjs/pull/5610)) ([bff1827](https://github.com/ReactiveX/rxjs/commit/bff18272dca23938a5f5b57cec6eb8d8be5bfddf)) - **Observable:** Update property and method types ([#5572](https://github.com/reactivex/rxjs/issues/5572)) ([144b626](https://github.com/reactivex/rxjs/commit/144b626c3905640b4adeb2b97e722912eff1b264)) ### Features - **combineLatest:** support for observable dictionaries ([#5022](https://github.com/reactivex/rxjs/issues/5022)) ([#5363](https://github.com/reactivex/rxjs/issues/5363)) ([f5278aa](https://github.com/reactivex/rxjs/commit/f5278aa89ea164caf5cf10e77d7bd00eff26fc0f)) ### BREAKING CHANGES - **Observable:** `lift` no longer exposed. It was _never_ documented that end users of the library should be creating operators using `lift`. Lift has a [variety of issues](https://github.com/ReactiveX/rxjs/issues/5431) and was always an internal implementation detail of rxjs that might have been used by a few power users in the early days when it had the most value. The value of `lift`, originally, was that subclassed `Observable`s would compose through all operators that implemented lift. The reality is that feature is not widely known, used, or supported, and it was never documented as it was very experimental when it was first added. Until the end of v7, `lift` will remain on Observable. Standard JavaScript users will notice no difference. However, TypeScript users might see complaints about `lift` not being a member of observable. To workaround this issue there are two things you can do: 1. Rewrite your operators as [outlined in the documentation](https://rxjs.dev/guide/operators), such that they return `new Observable`. or 2. cast your observable as `any` and access `lift` that way. It is recommended that operators be implemented in terms of functions that return `(source: Observable) => new Observable(...)`, per the documentation/guide. # [7.0.0-beta.2](https://github.com/reactivex/rxjs/compare/7.0.0-beta.1...7.0.0-beta.2) (2020-07-03) ### Bug Fixes - **dependencies:** Move accidental dependency on `typedoc` to dev-dependencies. ([#5566](https://github.com/reactivex/rxjs/issues/5566)) ([45702bf](https://github.com/ReactiveX/rxjs/commit/45702bf6cd1b4a150f47b2a1d273f1ee31ca2482)) # [7.0.0-beta.1](https://github.com/reactivex/rxjs/compare/7.0.0-beta.0...7.0.0-beta.1) (2020-07-02) ### Bug Fixes - **pluck:** operator breaks with null/undefined inputs. ([#5524](https://github.com/reactivex/rxjs/issues/5524)) ([c5f6550](https://github.com/reactivex/rxjs/commit/c5f65508505cf1f90560e6be76425e09c455bec3)) - **shareReplay:** no longer misses synchronous values from source ([92452cc](https://github.com/reactivex/rxjs/commit/92452cc20021141aa0f047c7e5af569a413143e5)) - **interop:** chain interop/safe subscriber unsubscriptions correctly ([#5472](https://github.com/reactivex/rxjs/issues/5472)) ([98ad0eb](https://github.com/reactivex/rxjs/commit/98ad0eba6bc079851b44951f3963e8aae0abf861)), closes [#5469](https://github.com/reactivex/rxjs/issues/5469) [#5311](https://github.com/reactivex/rxjs/issues/5311) [#2675](https://github.com/reactivex/rxjs/issues/2675) - **finalize:** chain subscriptions for interop with finalize ([#5239](https://github.com/reactivex/rxjs/issues/5239)) ([04ba662](https://github.com/reactivex/rxjs/commit/04ba6621fe9e09238e1796217d04107e52dd36d5)), closes [#5237](https://github.com/reactivex/rxjs/issues/5237) [#5237](https://github.com/reactivex/rxjs/issues/5237) - **animationFrameScheduler:** don't execute rescheduled animation frame and asap actions in flush ([#5399](https://github.com/reactivex/rxjs/issues/5399)) ([33c9c8c](https://github.com/reactivex/rxjs/commit/33c9c8cf7e247d4ad4d7318bfd02e8e5bedb0f40)), closes [#4972](https://github.com/reactivex/rxjs/issues/4972) [#5397](https://github.com/reactivex/rxjs/issues/5397) - **iterables:** errors thrown from iterables now properly propagated ([#5444](https://github.com/reactivex/rxjs/issues/5444)) ([75d4c2f](https://github.com/reactivex/rxjs/commit/75d4c2f33d2e2121b2a316849044ad17ab28dbaf)) - **finalize:** callback will be called after the source observable is torn down. ([0d7b7c1](https://github.com/reactivex/rxjs/commit/0d7b7c14e34eed43fb2ad1386281800fa3ae8aec)), closes [#5357](https://github.com/reactivex/rxjs/issues/5357) - **Notification:** typing improvements ([#5478](https://github.com/reactivex/rxjs/issues/5478)) ([96868ac](https://github.com/reactivex/rxjs/commit/96868ac754c0147a9aa61182185f27224eb7f11a)) - **TestScheduler:** support empty subscription marbles ([#5502](https://github.com/reactivex/rxjs/issues/5502)) ([e65696e](https://github.com/reactivex/rxjs/commit/e65696e2f7f7338659a873f6653026b33b9011a9)), closes [#5499](https://github.com/reactivex/rxjs/issues/5499) - **expand:** now works properly with asynchronous schedulers ([294b27e](https://github.com/reactivex/rxjs/commit/294b27eb6a96e8edee3af35e6aaaef50628376e4)) - **subscribeOn:** allow Infinity as valid delay ([#5500](https://github.com/reactivex/rxjs/issues/5500)) ([cd7d649](https://github.com/reactivex/rxjs/commit/cd7d64901e82fd7fb5e8407f1f30828906fac420)) - **Subject:** resolve issue where Subject constructor errantly allowed an argument ([#5476](https://github.com/reactivex/rxjs/issues/5476)) ([e1d35dc](https://github.com/reactivex/rxjs/commit/e1d35dc258edea0237ef49a31f7b34c058755969)) - **Subject:** no default generic ([e678e81](https://github.com/reactivex/rxjs/commit/e678e81ba80f5bcc27b0e956295ce2fc8dfe4576)) - **defer:** No longer allows `() => undefined` to observableFactory (#5449) ([1ae937a](https://github.com/reactivex/rxjs/commit/1ae937a8e594aef96b93313bb3c68ea910e6f528)), closes [#5449](https://github.com/reactivex/rxjs/issues/5449) - **single:** Corrected behavior for `single(() => false)` on empty observables. (#5325) ([27931bc](https://github.com/reactivex/rxjs/commit/27931bcfd2aa864e277d3e72128c57e807b28bb0)), closes [#5325](https://github.com/reactivex/rxjs/issues/5325) - **take/takeLast**: Properly assert number types at runtime (#5326) ([5efc474](https://github.com/reactivex/rxjs/commit/5efc474161c9196dbdf4803a9cc444a547067549)), closes [#5326](https://github.com/reactivex/rxjs/issues/5326) ### Features - **Observable:** Remove async iteration ([#5492](https://github.com/reactivex/rxjs/issues/5492)) ([8f43e71](https://github.com/reactivex/rxjs/commit/8f43e71f5692119e57a7acc5817c146d0b288e8c)) - **groupBy:** Add typeguards support for groupBy ([#5441](https://github.com/reactivex/rxjs/issues/5441)) ([da382da](https://github.com/reactivex/rxjs/commit/da382da4cdcc6e7ab1ffc6a499f4f7f5ea7de130)) - **raceWith:** add raceWith, the renamed `race` operator ([#5303](https://github.com/reactivex/rxjs/issues/5303)) ([ca7f370](https://github.com/reactivex/rxjs/commit/ca7f370d8379f22526cfb17d40deff53e1358742)) - **fetch:** add selector ([#5306](https://github.com/reactivex/rxjs/issues/5306)) ([99b5af1](https://github.com/reactivex/rxjs/commit/99b5af1af5d169d55d454ff8e27d88105cee4b6f)), closes [#4744](https://github.com/reactivex/rxjs/issues/4744) - **TimestampProvider:** Reduced scheduler footprint for default usage of shareReplay, timeInterval, and timestamp ([#4973](https://github.com/reactivex/rxjs/issues/4973)) ([b2e67e3](https://github.com/reactivex/rxjs/commit/b2e67e3139f0be1fb000ba42bb42c5ba60cc803a)) ### BREAKING CHANGES - `Notification.createNext(undefined)` will no longer return the exact same reference every time. - Type signatures tightened up around `Notification` and `dematerialize`, may uncover issues with invalid types passed to those operators. - Experimental support for `for await` as been removed. Use https://github.com/benlesh/rxjs-for-await instead. - `defer` no longer allows factories to return `void` or `undefined`. All factories passed to defer must return a proper `ObservableInput`, such as `Observable`, `Promise`, et al. To get the same behavior as you may have relied on previously, `return EMPTY` or `return of()` from the factory. - `single` operator will now throw for scenarios where values coming in are either not present, or do not match the provided predicate. Error types have thrown have also been updated, please check documentation for changes. - `take` and will now throw runtime error for arguments that are negative or NaN, this includes non-TS calls like `take()`. - `takeLast` now has runtime assertions that throw `TypeError`s for invalid arguments. Calling takeLast without arguments or with an argument that is `NaN` will throw a `TypeError` - `ReplaySubject` no longer schedules emissions when a scheduler is provided. If you need that behavior, please compose in `observeOn` using `pipe`, for example: `new ReplaySubject(2, 3000).pipe(observeOn(asap))` - `timestamp` operator accepts a `TimestampProvider`, which is any object with a `now` method that returns a number. This means pulling in less code for the use of the `timestamp` operator. This may cause issues with `TestScheduler` run mode. (Issue here: https://github.com/ReactiveX/rxjs/issues/5553) # [7.0.0-beta.0](https://github.com/reactivex/rxjs/compare/7.0.0-alpha.1...7.0.0-beta.0) (2020-04-03) ### Bug Fixes - **mergeMapTo:** remove redundant/unused generic ([#5299](https://github.com/reactivex/rxjs/issues/5299)) ([d67b7da](https://github.com/reactivex/rxjs/commit/d67b7dafbacb3aac8f4dd7f215fe2d2c602f0d36)) - **ajax:** AjaxTimeoutErrorImpl extends AjaxError ([#5226](https://github.com/reactivex/rxjs/issues/5226)) ([a8da8dc](https://github.com/reactivex/rxjs/commit/a8da8dcc899342d3bb6d2d913247d9e734095287)) - **delay:** emit complete notification as soon as possible ([63b8797](https://github.com/reactivex/rxjs/commit/63b8797fbeed09eb675ea64b0b83607cef1367a9)), closes [#4249](https://github.com/reactivex/rxjs/issues/4249) - **endWith:** will properly type N arguments ([#5246](https://github.com/reactivex/rxjs/issues/5246)) ([81ee1f7](https://github.com/reactivex/rxjs/commit/81ee1f72408854f4017615fe7949edf5dd50533b)) - **fetch:** don't leak event listeners added to passed-in signals ([#5305](https://github.com/reactivex/rxjs/issues/5305)) ([d4d6c47](https://github.com/reactivex/rxjs/commit/d4d6c47d8abccc8cbe17e46192fc1eaa42d2d023)) - **TestScheduler:** Subclassing TestScheduler needs RunHelpers ([#5138](https://github.com/reactivex/rxjs/issues/5138)) ([927d5d9](https://github.com/reactivex/rxjs/commit/927d5d90ab5f12a79cd50f7290b4f8df1e83ecfc)) - **pipe:** Special handling for 0-arg case. ([#4936](https://github.com/reactivex/rxjs/issues/4936)) ([290fa51](https://github.com/reactivex/rxjs/commit/290fa51c44881f25f2fe4cf9885028396c7fd74c)) - **pluck:** fix pluck's catch-all signature for better type safety ([#5192](https://github.com/reactivex/rxjs/issues/5192)) ([e0c5b7c](https://github.com/reactivex/rxjs/commit/e0c5b7c790bb9d99fa8bee26c805b5e70c1e456b)) - **pluck:** param type now accepts number and symbol ([9697b69](https://github.com/reactivex/rxjs/commit/9697b695c23c3dcb614e6a70be63a94ffcd86ed9)) - **startWith:** accepts N arguments and returns correct type ([#5247](https://github.com/reactivex/rxjs/issues/5247)) ([150ed8b](https://github.com/reactivex/rxjs/commit/150ed8b75909b0e0bb9dc8928287ebdc47e19c51)) - **combineLatestWith:** and zipWith infer types from n-arguments ([#5257](https://github.com/reactivex/rxjs/issues/5257)) ([3e282a5](https://github.com/reactivex/rxjs/commit/3e282a58b1baf7aa03b17142f858bca09a542adf)) - **race:** support N args in static race and ensure observable returned ([#5286](https://github.com/reactivex/rxjs/issues/5286)) ([6d901cb](https://github.com/reactivex/rxjs/commit/6d901cbb0c0f2aa3fc5a02ef895cc9e9a7a09243)) - **toPromise:** correct toPromise return type ([#5072](https://github.com/reactivex/rxjs/issues/5072)) ([b1c3573](https://github.com/reactivex/rxjs/commit/b1c35738204b5b1a5d325a16e70cdbf25b523976)) - **fromFetch:** don't reassign closed-over parameter in fromFetch ([#5234](https://github.com/reactivex/rxjs/issues/5234)) ([37d2d99](https://github.com/reactivex/rxjs/commit/37d2d99762264ef5faabc0ce4f56d7aab51806dc)), closes [#5233](https://github.com/reactivex/rxjs/issues/5233) [#5233](https://github.com/reactivex/rxjs/issues/5233) ### Features - add `lastValueFrom` and `firstValueFrom` methods ([#5295](https://github.com/reactivex/rxjs/issues/5295)) ([e69b765](https://github.com/reactivex/rxjs/commit/e69b76584d6872b3c55aa1bdf39c8984e9d9b00e)) - RxJS now supports first-class interop with AsyncIterables ([4fa9d01](https://github.com/reactivex/rxjs/commit/4fa9d016a83049d014d77b89c56301e42db16b4d)) - **combineLatestWith:** adds `combineLatestWith` - renamed legacy `combineLatest` operator ([#5251](https://github.com/reactivex/rxjs/issues/5251)) ([6d7b146](https://github.com/reactivex/rxjs/commit/6d7b1469110b405405549c9b6c311d2621738353)) - **retry:** add config to reset error count on successful emission ([#5280](https://github.com/reactivex/rxjs/issues/5280)) ([ab6e9fc](https://github.com/reactivex/rxjs/commit/ab6e9fc32c19c1f14f8f59459db75312e75b9351)) - **zipWith:** add `zipWith` which is just a rename of legacy `zip` operator ([#5249](https://github.com/reactivex/rxjs/issues/5249)) ([86b6a27](https://github.com/reactivex/rxjs/commit/86b6a272fd48c4712adba78963e05bb759ecf4f9)) ### BREAKING CHANGES - **startWith:** `startWith` will return incorrect types when called with more than 7 arguments and a scheduler. Passing scheduler to startWith is deprecated - **toPromise:** toPromise return type now returns `T | undefined` in TypeScript, which is correct, but may break builds. # [7.0.0-alpha.1](https://github.com/reactivex/rxjs/compare/7.0.0-alpha.0...7.0.0-alpha.1) (2019-12-27) ### Bug Fixes - chain subscriptions from observables that belong to other instances of RxJS (e.g. in node_modules) ([#5059](https://github.com/reactivex/rxjs/issues/5059)) ([d7f7078](https://github.com/reactivex/rxjs/commit/d7f7078)) - clear subscription on `shareReplay` completion ([#5044](https://github.com/reactivex/rxjs/issues/5044)) ([35e600f](https://github.com/reactivex/rxjs/commit/35e600f)), closes [#5034](https://github.com/reactivex/rxjs/issues/5034) - **closure:** Annotate next() for ReplaySubject ([#5088](https://github.com/reactivex/rxjs/issues/5088)) ([8687fbd](https://github.com/reactivex/rxjs/commit/8687fbd)) - **closure:** static prop frameTimeFactor being collapsed when compiled with closure. ([39872c9](https://github.com/reactivex/rxjs/commit/39872c9)) - **docs:** remove repetitive op3() in example ([#5043](https://github.com/reactivex/rxjs/issues/5043)) ([e17df33](https://github.com/reactivex/rxjs/commit/e17df33)) - **filter:** Fix overload order for filter to support inferring the generic type ([#5024](https://github.com/reactivex/rxjs/issues/5024)) ([8255365](https://github.com/reactivex/rxjs/commit/8255365)) - **fromFetch:** passing already aborted signal to init aborts fetch ([0e4849a](https://github.com/reactivex/rxjs/commit/0e4849a)) ### Features - **concatWith:** adds concatWith ([#4988](https://github.com/reactivex/rxjs/issues/4988)) ([dc89736](https://github.com/reactivex/rxjs/commit/dc89736)) # [7.0.0-alpha.0](https://github.com/reactivex/rxjs/compare/6.5.2...7.0.0-alpha.0) (2019-09-18) ### Bug Fixes - missing package.json in rxjs/fetch ([#5001](https://github.com/reactivex/rxjs/issues/5001)) ([f4bee07](https://github.com/reactivex/rxjs/commit/f4bee07)) - **filter:** Resolve TS build failures for certain situations where Boolean is the predicate ([77c7dfd](https://github.com/reactivex/rxjs/commit/77c7dfd)) - **pluck:** key union type strictness ([#4585](https://github.com/reactivex/rxjs/issues/4585)) ([bd5ec2d](https://github.com/reactivex/rxjs/commit/bd5ec2d)) - **race:** ignore latter sources after first complete or error ([#4809](https://github.com/reactivex/rxjs/issues/4809)) ([f31c3df](https://github.com/reactivex/rxjs/commit/f31c3df)), closes [#4808](https://github.com/reactivex/rxjs/issues/4808) - **scan/reduce:** Typings correct for mixed seed/value types ([#4858](https://github.com/reactivex/rxjs/issues/4858)) ([b89ebe5](https://github.com/reactivex/rxjs/commit/b89ebe5)) - **scheduled:** import from relative paths ([#4832](https://github.com/reactivex/rxjs/issues/4832)) ([1d37a87](https://github.com/reactivex/rxjs/commit/1d37a87)) - **TS:** Error impls now properly type `this` ([#4978](https://github.com/reactivex/rxjs/issues/4978)) ([7606dc7](https://github.com/reactivex/rxjs/commit/7606dc7)) - **TS:** fix type inference for defaultIfEmpty. ([#4833](https://github.com/reactivex/rxjs/issues/4833)) ([9b5ce2f](https://github.com/reactivex/rxjs/commit/9b5ce2f)) - **types:** add Boolean signature to filter ([#4961](https://github.com/reactivex/rxjs/issues/4961)) ([259853e](https://github.com/reactivex/rxjs/commit/259853e)), closes [#4959](https://github.com/reactivex/rxjs/issues/4959) [/github.com/ReactiveX/rxjs/issues/4959#issuecomment-520629091](https://github.com//github.com/ReactiveX/rxjs/issues/4959/issues/issuecomment-520629091) ### Features - **animationFrames:** Adds an observable of animationFrames ([#5021](https://github.com/reactivex/rxjs/issues/5021)) ([6a4cd68](https://github.com/reactivex/rxjs/commit/6a4cd68)) - **concat:** can infer N types ([6c0cbc4](https://github.com/reactivex/rxjs/commit/6c0cbc4)) - **of:** Update of typings ([e8adbb5](https://github.com/reactivex/rxjs/commit/e8adbb5)) - **rxjs-compat:** removed for v7 ([#4839](https://github.com/reactivex/rxjs/issues/4839)) ([79b1b95](https://github.com/reactivex/rxjs/commit/79b1b95)) - **TestScheduler:** expose `frameTimeFactor` property ([#4977](https://github.com/reactivex/rxjs/issues/4977)) ([8c32ed0](https://github.com/reactivex/rxjs/commit/8c32ed0)) - **TS:** Update to TypeScript 3.5.3 ([741a136](https://github.com/reactivex/rxjs/commit/741a136)) ### BREAKING CHANGES - **concat:** Generic signature changed. Recommend not explicitly passing generics, just let inference do its job. If you must, cast with `as`. - **of:** Generic signature changed, do not specify generics, allow them to be inferred or use `as` - **of:** Use with more than 9 arguments, where the last argument is a `SchedulerLike` may result in the wrong type which includes the `SchedulerLike`, even though the run time implementation does not support that. Developers should be using `scheduled` instead - **TS:** RxJS requires TS 3.5 - **rxjs-compat:** `rxjs/Rx` is no longer a valid import site. - **rxjs-compat:** `rxjs-compat` is not published for v7 (yet) - **race:** `race()` will no longer subscribe to subsequent observables if a provided source synchronously errors or completes. This means side effects that might have occurred during subscription in those rare cases will no longer occur. ## [6.5.3](https://github.com/reactivex/rxjs/compare/6.5.2...6.5.3) (2019-09-03) ### Bug Fixes - **general:** Refactor modules so they don't show side effects in some tools ([#4769](https://github.com/reactivex/rxjs/issues/4769)) ([9829c5e0](https://github.com/reactivex/rxjs/commit/9829c5e0)) - **defer:** restrict allowed factory types ([#4835](https://github.com/reactivex/rxjs/issues/4835)) ([40a22096](https://github.com/reactivex/rxjs/commit/40a22096)) ## [6.5.2](https://github.com/reactivex/rxjs/compare/6.5.0...6.5.2) (2019-05-10) ### Bug Fixes - **endWith:** wrap args - they are not observables - in of before concatenating ([#4735](https://github.com/reactivex/rxjs/issues/4735)) ([986be2f](https://github.com/reactivex/rxjs/commit/986be2f)) - **forkJoin:** test for object literal ([#4741](https://github.com/reactivex/rxjs/issues/4741)) ([c11e1b3](https://github.com/reactivex/rxjs/commit/c11e1b3)), closes [#4737](https://github.com/reactivex/rxjs/issues/4737) [#4737](https://github.com/reactivex/rxjs/issues/4737) - **Notification:** replace const enum ([#4556](https://github.com/reactivex/rxjs/issues/4556)) ([e460eec](https://github.com/reactivex/rxjs/commit/e460eec)), closes [#4538](https://github.com/reactivex/rxjs/issues/4538) - **of:** remove deprecation comment to prevent false positive warning ([#4724](https://github.com/reactivex/rxjs/issues/4724)) ([da69c16](https://github.com/reactivex/rxjs/commit/da69c16)) - **pairwise:** make it recursion-proof ([#4743](https://github.com/reactivex/rxjs/issues/4743)) ([21ab261](https://github.com/reactivex/rxjs/commit/21ab261)) - **scan:** fixed declarations to properly support different return types ([#4598](https://github.com/reactivex/rxjs/issues/4598)) ([126d2b6](https://github.com/reactivex/rxjs/commit/126d2b6)) - **Subscription:** Return Empty when teardown === null ([#4575](https://github.com/reactivex/rxjs/issues/4575)) ([ffc4e68](https://github.com/reactivex/rxjs/commit/ffc4e68)) - **throttleTime:** emit single value with trailing enabled ([#4564](https://github.com/reactivex/rxjs/issues/4564)) ([fd690a6](https://github.com/reactivex/rxjs/commit/fd690a6)), closes [#2859](https://github.com/reactivex/rxjs/issues/2859) [#4491](https://github.com/reactivex/rxjs/issues/4491) - **umd:** export fetch namespace ([#4738](https://github.com/reactivex/rxjs/issues/4738)) ([7926122](https://github.com/reactivex/rxjs/commit/7926122)) - **fromFetch:** don't abort if fetch resolves ([#4742](https://github.com/reactivex/rxjs/issues/4742) ([ed8d771](https://github.com/reactivex/rxjs/commit/ed8d771)) ## [6.5.1](https://github.com/reactivex/rxjs/compare/6.5.0...6.5.1) (2019-04-23) ### Bug Fixes - **Notification:** replace const enum ([#4556](https://github.com/reactivex/rxjs/issues/4556)) ([e460eec](https://github.com/reactivex/rxjs/commit/e460eec)), closes [#4538](https://github.com/reactivex/rxjs/issues/4538) - **throttleTime:** emit single value with trailing enabled ([#4564](https://github.com/reactivex/rxjs/issues/4564)) ([fd690a6](https://github.com/reactivex/rxjs/commit/fd690a6)), closes [#2859](https://github.com/reactivex/rxjs/issues/2859) [#4491](https://github.com/reactivex/rxjs/issues/4491) # [6.5.0](https://github.com/reactivex/rxjs/compare/6.4.0...6.5.0) (2019-04-23) ### Bug Fixes - **docs-app:** remove stopWordFilter from lunr pipeline ([#4536](https://github.com/reactivex/rxjs/issues/4536)) ([9eaebd4](https://github.com/reactivex/rxjs/commit/9eaebd4)) - **dtslint:** disable tests that break in TS@next ([#4705](https://github.com/reactivex/rxjs/issues/4705)) ([ecc73d2](https://github.com/reactivex/rxjs/commit/ecc73d2)) - **index:** export NotificationKind ([#4514](https://github.com/reactivex/rxjs/issues/4514)) ([7125355](https://github.com/reactivex/rxjs/commit/7125355)), closes [#4513](https://github.com/reactivex/rxjs/issues/4513) - **race:** better typings ([#4643](https://github.com/reactivex/rxjs/issues/4643)) ([fb9bc48](https://github.com/reactivex/rxjs/commit/fb9bc48)), closes [#4390](https://github.com/reactivex/rxjs/issues/4390) [#4642](https://github.com/reactivex/rxjs/issues/4642) - **throwIfEmpty:** ensure result is retry-able ([c4f44b9](https://github.com/reactivex/rxjs/commit/c4f44b9)) - **types:** Fixed signature for onErrorResumeNext ([#4603](https://github.com/reactivex/rxjs/issues/4603)) ([4dd0be0](https://github.com/reactivex/rxjs/commit/4dd0be0)) ### Features - **combineLatest:** deprecated rest argument and scheduler signatures ([#4641](https://github.com/reactivex/rxjs/issues/4641)) ([6661c79](https://github.com/reactivex/rxjs/commit/6661c79)), closes [#4640](https://github.com/reactivex/rxjs/issues/4640) - **fromFetch:** We now export a `fromFetch` static observable creation method from `rxjs/fetch`. Mirrors native `fetch` only it's lazy and cancellable via `Observable` interface. ([#4702](https://github.com/reactivex/rxjs/issues/4702)) ([5a1ef86](https://github.com/reactivex/rxjs/commit/5a1ef86)) - **forkJoin:** accepts a dictionary of sources ([#4640](https://github.com/reactivex/rxjs/issues/4640)) ([b5a2ac9](https://github.com/reactivex/rxjs/commit/b5a2ac9)) - **partition:** new `partition` observable creation function. Old `partition` operator is deprecated ([#4419](https://github.com/reactivex/rxjs/issues/4419)) ([#4685](https://github.com/reactivex/rxjs/issues/4685)) ([d5d6980](https://github.com/reactivex/rxjs/commit/d5d6980)) - **scheduled:** Add `scheduled` creation function to use to create scheduled observable of values. Deprecate scheduled versions of `from`, `range`, et al. ([#4595](https://github.com/reactivex/rxjs/issues/4595)) ([f57e1fc](https://github.com/reactivex/rxjs/commit/f57e1fc)) ### Performance Improvements - **Subscription:** improve parent management ([#4526](https://github.com/reactivex/rxjs/issues/4526)) ([06f1a25](https://github.com/reactivex/rxjs/commit/06f1a25)) # [6.4.0](https://github.com/reactivex/rxjs/compare/6.3.3...6.4.0) (2019-01-30) ### Bug Fixes - **ajax:** Fix case-insensitive headers in HTTP request ([#4453](https://github.com/reactivex/rxjs/issues/4453)) ([673bf47](https://github.com/reactivex/rxjs/commit/673bf47)) - **bundle:** closure to not rewrite polyfills for minification ([#4487](https://github.com/reactivex/rxjs/issues/4487)) ([a1fedb9](https://github.com/reactivex/rxjs/commit/a1fedb9)) - **bundle:** don't export `operators` twice ([#4310](https://github.com/reactivex/rxjs/issues/4310)) ([2399f6e](https://github.com/reactivex/rxjs/commit/2399f6e)) - **combineLatest:** improve typings for combineLatest ([#4470](https://github.com/reactivex/rxjs/issues/4470)) ([40c3d9f](https://github.com/reactivex/rxjs/commit/40c3d9f)) - **compat:** remove internal from import locations ([#4498](https://github.com/reactivex/rxjs/issues/4498)) ([a6c0017](https://github.com/reactivex/rxjs/commit/a6c0017)), closes [#4070](https://github.com/reactivex/rxjs/issues/4070) - **endWith:** ability to endWith different types ([#4183](https://github.com/reactivex/rxjs/issues/4183)) ([#4185](https://github.com/reactivex/rxjs/issues/4185)) ([83533d1](https://github.com/reactivex/rxjs/commit/83533d1)) - **fromEventPattern:** improve typings for fromEventPattern ([#4496](https://github.com/reactivex/rxjs/issues/4496)) ([037f53d](https://github.com/reactivex/rxjs/commit/037f53d)) - **Observable:** Fix Observable.subscribe to add operator TeardownLogic to returned Subscription. ([#4434](https://github.com/reactivex/rxjs/issues/4434)) ([f28955f](https://github.com/reactivex/rxjs/commit/f28955f)) - **subscribe:** Deprecate null starting parameter signatures for subscribe ([#4202](https://github.com/reactivex/rxjs/issues/4202)) ([c85ddf6](https://github.com/reactivex/rxjs/commit/c85ddf6)) - **combineLatest:** support passing union types ([ffda319](https://github.com/reactivex/rxjs/commit/ffda319)) - **from:** support passing union types ([eb1d596](https://github.com/reactivex/rxjs/commit/eb1d596)) - **withLatestFrom:** support passing union types ([1e19a24](https://github.com/reactivex/rxjs/commit/1e19a24)) - **zip:** support passing union types ([0d87f52](https://github.com/reactivex/rxjs/commit/0d87f52)) - **multicast:** support returning union types from projection ([e9e9041](https://github.com/reactivex/rxjs/commit/e9e9041)) - **exhaustMap:** support returning union types from projection ([ff1f5dc](https://github.com/reactivex/rxjs/commit/ff1f5dc)) - **merge:** support union type inference for merge operators ([c2ac39c](https://github.com/reactivex/rxjs/commit/c2ac39c)) - **catchError:** support union type returns ([8350622](https://github.com/reactivex/rxjs/commit/8350622)) - **switchMap:** support union type returns ([32d35fd](https://github.com/reactivex/rxjs/commit/32d35fd)) - **defer:** support union types passed ([5aea50e](https://github.com/reactivex/rxjs/commit/5aea50e)) - **race:** Update typings to support proper return types ([#4465](https://github.com/reactivex/rxjs/issues/4465)) ([0042846](https://github.com/reactivex/rxjs/commit/0042846)) - **VirtualTimeScheduler:** rework flush so it won't lose actions ([#4433](https://github.com/reactivex/rxjs/issues/4433)) ([d068bc9](https://github.com/reactivex/rxjs/commit/d068bc9)) - **WebSocketSubject:** fix subject failing to close socket ([#4446](https://github.com/reactivex/rxjs/issues/4446)) ([dcfa52b](https://github.com/reactivex/rxjs/commit/dcfa52b)) ### Features - **shareReplay:** Add configuration object for named arguments, and add argument to support unsubscribing from source observable by `refCount` when all resulting subscriptions have unsubscribed. The default behavior is to leave the source subscription running. - **mergeScan:** Add index to the accumulator function ([#4458](https://github.com/reactivex/rxjs/issues/4458)) ([f5e143d](https://github.com/reactivex/rxjs/commit/f5e143d)), closes [#4441](https://github.com/reactivex/rxjs/issues/4441) - **range:** accept one argument ([#4360](https://github.com/reactivex/rxjs/issues/4360)) ([a388578](https://github.com/reactivex/rxjs/commit/a388578)) - **takeWhile:** add an `inclusive` option to the operator which causes to emit final value ([#4115](https://github.com/reactivex/rxjs/issues/4115)) ([6e7f407](https://github.com/reactivex/rxjs/commit/6e7f407)) ### Performance Improvements - **internal:** optimize Subscription#add() for the common case ([#4489](https://github.com/reactivex/rxjs/issues/4489)) ([bdd201c](https://github.com/reactivex/rxjs/commit/bdd201c)) - **internal:** use strict equality for isObject() ([#4493](https://github.com/reactivex/rxjs/issues/4493)) ([fc84a00](https://github.com/reactivex/rxjs/commit/fc84a00)) - **Subscription:** use `instanceof` to avoid megamorphic LoadIC ([#4499](https://github.com/reactivex/rxjs/issues/4499)) ([065b4e3](https://github.com/reactivex/rxjs/commit/065b4e3)) ## [6.3.3](https://github.com/reactivex/rxjs/compare/6.3.2...6.3.3) (2018-09-25) ### Bug Fixes - **pipe:** align static pipe to Observable pipe rest parameters overl… ([#4112](https://github.com/reactivex/rxjs/issues/4112)) ([8c607e9](https://github.com/reactivex/rxjs/commit/8c607e9)), closes [#4109](https://github.com/reactivex/rxjs/issues/4109) [#4109](https://github.com/reactivex/rxjs/issues/4109) - **RxJS:** each instance of RxJS now has a unique Subscriber symbol ([0972c56](https://github.com/reactivex/rxjs/commit/0972c56)) - **subscribe:** report errors that occur in subscribe after the initial error ([#4089](https://github.com/reactivex/rxjs/issues/4089)) ([9b4b2bc](https://github.com/reactivex/rxjs/commit/9b4b2bc)), closes [#3803](https://github.com/reactivex/rxjs/issues/3803) - **Subscriber:** Can no longer subscribe to itself in a circular manner ([#4106](https://github.com/reactivex/rxjs/issues/4106)) ([e623ec6](https://github.com/reactivex/rxjs/commit/e623ec6)), closes [#4095](https://github.com/reactivex/rxjs/issues/4095) - **Subscriber:** use only local Subscriber instances ([50ee0a7](https://github.com/reactivex/rxjs/commit/50ee0a7)) - **TypeScript:** ensure RxJS builds with TS@next as well ([f03e790](https://github.com/reactivex/rxjs/commit/f03e790)) ## [6.3.2](https://github.com/reactivex/rxjs/compare/6.3.1...6.3.2) (2018-09-04) ### Bug Fixes - **node:** will no longer error mixing RxJS 6.3 and 6.2 ([#4078](https://github.com/reactivex/rxjs/issues/4078)) ([69d9ccf](https://github.com/reactivex/rxjs/commit/69d9ccf)), closes [#4077](https://github.com/reactivex/rxjs/issues/4077) ## [6.3.1](https://github.com/reactivex/rxjs/compare/6.3.0...6.3.1) (2018-08-31) ### Bug Fixes - **mergeMap:** fix nested mergeMaps ([#4072](https://github.com/reactivex/rxjs/issues/4072)) ([0ab701b](https://github.com/reactivex/rxjs/commit/0ab701b)), closes [#4071](https://github.com/reactivex/rxjs/issues/4071) # [6.3.0](https://github.com/reactivex/rxjs/compare/6.2.2...6.3.0) (2018-08-30) ### Bug Fixes - **find:** unsubscribe from source when found ([#3968](https://github.com/reactivex/rxjs/issues/3968)) ([fd01f7b](https://github.com/reactivex/rxjs/commit/fd01f7b)) - convert [@internal](https://github.com/internal) comment to JSDoc ([#3932](https://github.com/reactivex/rxjs/issues/3932)) ([f8a9d6e](https://github.com/reactivex/rxjs/commit/f8a9d6e)) - **AjaxObservable:** notify with error if fails to parse json response ([#3139](https://github.com/reactivex/rxjs/issues/3139)) ([d8231e2](https://github.com/reactivex/rxjs/commit/d8231e2)), closes [#3138](https://github.com/reactivex/rxjs/issues/3138) - **catchError:** stop listening to a synchronous inner-observable when unsubscribed ([456ef33](https://github.com/reactivex/rxjs/commit/456ef33)) - **distinctUntilKeyChanged:** improved key typing with keyof T ([#3988](https://github.com/reactivex/rxjs/issues/3988)) ([4ec4ff1](https://github.com/reactivex/rxjs/commit/4ec4ff1)) - **exhaustMap:** stop listening to a synchronous inner-observable when unsubscribed ([ee1a339](https://github.com/reactivex/rxjs/commit/ee1a339)) - **find:** add undefined to return type ([#3970](https://github.com/reactivex/rxjs/issues/3970)) ([5a6c90f](https://github.com/reactivex/rxjs/commit/5a6c90f)), closes [#3969](https://github.com/reactivex/rxjs/issues/3969) - **IE10:** Remove dependency on Object.setPrototypeOf ([#3967](https://github.com/reactivex/rxjs/issues/3967)) ([5c52a73](https://github.com/reactivex/rxjs/commit/5c52a73)), closes [#3966](https://github.com/reactivex/rxjs/issues/3966) - **mergeAll:** add source subscription to composite before actually subscribing ([#2479](https://github.com/reactivex/rxjs/issues/2479)) ([40852ff](https://github.com/reactivex/rxjs/commit/40852ff)), closes [#2476](https://github.com/reactivex/rxjs/issues/2476) - **mergeScan:** stop listening to a synchronous inner-observable when unsubscribed ([c4002f3](https://github.com/reactivex/rxjs/commit/c4002f3)) - **Observable:** forEach will no longer next values after an error ([b4bad1f](https://github.com/reactivex/rxjs/commit/b4bad1f)) - **Observable:** use more granular Observable exports in compat mode ([#3974](https://github.com/reactivex/rxjs/issues/3974)) ([3f75564](https://github.com/reactivex/rxjs/commit/3f75564)) - **onErrorResumeNext:** stop listening to a synchronous inner-observable when unsubscribed ([1d14277](https://github.com/reactivex/rxjs/commit/1d14277)) - **pipe:** replace rest parameters overload ([#3945](https://github.com/reactivex/rxjs/issues/3945)) ([872b0ec](https://github.com/reactivex/rxjs/commit/872b0ec)), closes [#3841](https://github.com/reactivex/rxjs/issues/3841) - **skipUntil:** stop listening to a synchronous notifier after its first nexted value ([1c257db](https://github.com/reactivex/rxjs/commit/1c257db)) - **startWith:** allow empty type signature and passing a different type ([b7866a0](https://github.com/reactivex/rxjs/commit/b7866a0)) - **subscribable:** make subscribe() signature match Observable ([#4050](https://github.com/reactivex/rxjs/issues/4050)) ([865d8d7](https://github.com/reactivex/rxjs/commit/865d8d7)), closes [#3891](https://github.com/reactivex/rxjs/issues/3891) - **subscriber:** unsubscribe parents on error/complete ([ad8131b](https://github.com/reactivex/rxjs/commit/ad8131b)) - **switchMap:** stop listening to a synchronous inner-observable when unsubscribed ([260d52a](https://github.com/reactivex/rxjs/commit/260d52a)) - **takeUntil:** takeUntil should subscribe to the source if notifier sync completes without emitting ([#4039](https://github.com/reactivex/rxjs/issues/4039)) ([21fd0b4](https://github.com/reactivex/rxjs/commit/21fd0b4)), closes [#3504](https://github.com/reactivex/rxjs/issues/3504) - **testscheduler:** type arguments to Observable creation functions ([#3928](https://github.com/reactivex/rxjs/issues/3928)) ([0e30ef1](https://github.com/reactivex/rxjs/commit/0e30ef1)) ### Features - **delayWhen:** add index to the selector function ([#2473](https://github.com/reactivex/rxjs/issues/2473)) ([0979d31](https://github.com/reactivex/rxjs/commit/0979d31)) - **forEach:** deprecating passing promise constructor ([5178ab9](https://github.com/reactivex/rxjs/commit/5178ab9)) - **TestScheduler:** Add subscription schedule to expectObservable ([#3997](https://github.com/reactivex/rxjs/issues/3997)) ([0d20255](https://github.com/reactivex/rxjs/commit/0d20255)) ## [6.2.2](https://github.com/reactivex/rxjs/compare/6.2.1...6.2.2) (2018-07-13) ### Bug Fixes - **first:** improved type guards for TypeScript ([3e12f7a](https://github.com/reactivex/rxjs/commit/3e12f7a)) - **last:** improved type guards for TypeScript ([3e12f7a](https://github.com/reactivex/rxjs/commit/3e12f7a)) ## [6.2.1](https://github.com/reactivex/rxjs/compare/6.2.0...6.2.1) (2018-06-12) ### Bug Fixes - **ci:** do not trigger postbuild script on PR ([f82c085](https://github.com/reactivex/rxjs/commit/f82c085)) - **delayWhen:** Emit source value if duration selector completes synchronously ([#3664](https://github.com/reactivex/rxjs/issues/3664)) ([2c43af7](https://github.com/reactivex/rxjs/commit/2c43af7)), closes [#3663](https://github.com/reactivex/rxjs/issues/3663) - **docs:** fix broken github links ([#3802](https://github.com/reactivex/rxjs/issues/3802)) ([9f9bf9b](https://github.com/reactivex/rxjs/commit/9f9bf9b)) - **docs:** fix code examples ([#3784](https://github.com/reactivex/rxjs/issues/3784)) ([a95441b](https://github.com/reactivex/rxjs/commit/a95441b)) - **from:** Objects implementing Symbol.observable take precedence over other types ([80ceea0](https://github.com/reactivex/rxjs/commit/80ceea0)) - **fromEvent:** Support React Native and node-compatible event sources. ([#3821](https://github.com/reactivex/rxjs/issues/3821)) ([1969f18](https://github.com/reactivex/rxjs/commit/1969f18)) - **Observable.prototype.pipe:** TS typings now more correct for >8 parameters ([#3789](https://github.com/reactivex/rxjs/issues/3789)) ([ad010ea](https://github.com/reactivex/rxjs/commit/ad010ea)) - **subscribe:** ignore syncError when deprecated ([#3749](https://github.com/reactivex/rxjs/issues/3749)) ([f94560c](https://github.com/reactivex/rxjs/commit/f94560c)) - **Symbol.observable:** make observable declaration readonly ([#3697](https://github.com/reactivex/rxjs/issues/3697)) ([#3773](https://github.com/reactivex/rxjs/issues/3773)) ([e1c203f](https://github.com/reactivex/rxjs/commit/e1c203f)) - **TypeScript:** resolved typings issue for TS 3.0 ([bf2cdeb](https://github.com/reactivex/rxjs/commit/bf2cdeb)) - **typings:** allow bufferCreationInterval null for bufferTime ([#3734](https://github.com/reactivex/rxjs/issues/3734)) ([0bda9cd](https://github.com/reactivex/rxjs/commit/0bda9cd)), closes [#3728](https://github.com/reactivex/rxjs/issues/3728) ### Performance Improvements - remove comments from js-files ([#3760](https://github.com/reactivex/rxjs/issues/3760)) ([bb2c334](https://github.com/reactivex/rxjs/commit/bb2c334)) # [6.2.0](https://github.com/ReactiveX/RxJS/compare/6.1.0...6.2.0) (2018-05-22) ### Bug Fixes - **ajax:** Handle timeouts as errors ([#3653](https://github.com/ReactiveX/RxJS/issues/3653)) ([e4128ea](https://github.com/ReactiveX/RxJS/commit/e4128ea)) - **ajax:** RxJS v6 TimeoutError is missing name property ([576d943](https://github.com/ReactiveX/RxJS/commit/576d943)) - **isObservable:** Fix throwing error when testing isObservable(null) ([#3688](https://github.com/ReactiveX/RxJS/issues/3688)) ([c9acc61](https://github.com/ReactiveX/RxJS/commit/c9acc61)) - **range:** Range should be same for every subscriber ([#3707](https://github.com/ReactiveX/RxJS/issues/3707)) ([9642133](https://github.com/ReactiveX/RxJS/commit/9642133)) - **skipUntil:** fix skipUntil when innerSubscription is null ([#3686](https://github.com/ReactiveX/RxJS/issues/3686)) ([4226432](https://github.com/ReactiveX/RxJS/commit/4226432)) - **TestScheduler:** restore run changes upon error ([27cb9b6](https://github.com/ReactiveX/RxJS/commit/27cb9b6)) - **TimeoutError:** Add name to TimeoutError ([44042d0](https://github.com/ReactiveX/RxJS/commit/44042d0)) - **WebSocketSubject:** Check to see if WebSocket exists in global scope ([#3694](https://github.com/ReactiveX/RxJS/issues/3694)) ([2db0788](https://github.com/ReactiveX/RxJS/commit/2db0788)) ### Features - **endWith:** add new operator endWith ([#3679](https://github.com/ReactiveX/RxJS/issues/3679)) ([537fe7d](https://github.com/ReactiveX/RxJS/commit/537fe7d)) # [6.1.0](https://github.com/ReactiveX/RxJS/compare/6.0.0...6.1.0) (2018-05-03) ### Bug Fixes - **audit:** will not crash if duration is synchronous ([#3608](https://github.com/ReactiveX/RxJS/issues/3608)) ([76b7e27](https://github.com/ReactiveX/RxJS/commit/76b7e27)), closes [#2743](https://github.com/ReactiveX/RxJS/issues/2743) - **delay:** fix memory leak ([#3605](https://github.com/ReactiveX/RxJS/issues/3605)) ([96f05b0](https://github.com/ReactiveX/RxJS/commit/96f05b0)) ### Features - **isObservable:** a new method for checking to see if an object is an RxJS Observable ([edb33e5](https://github.com/ReactiveX/RxJS/commit/edb33e5)) # [6.0.0](https://github.com/ReactiveX/RxJS/compare/6.0.0-uncanny-rc.7...v6.0.0) (2018-04-24) ### Bug Fixes - **websocket:** no longer throws errors in operators applied to it ([#3577](https://github.com/ReactiveX/RxJS/issues/3577)) ([cb38ddf](https://github.com/ReactiveX/RxJS/commit/cb38ddf)) ### Code Refactoring - **webSocket:** rename back to webSocket ala 5.0 ([#3590](https://github.com/ReactiveX/RxJS/issues/3590)) ([d5658fe](https://github.com/ReactiveX/RxJS/commit/d5658fe)) ### Features - **testing:** Add testScheduler.run() helper ([2d5b3b2](https://github.com/ReactiveX/RxJS/commit/2d5b3b2)) - **testing:** testScheduler.run() supports time progression syntax ([9322b7d](https://github.com/ReactiveX/RxJS/commit/9322b7d)) ### BREAKING CHANGES - **webSocket:** UNBREAKING websocket to be named `webSocket` again, just like it was in 5.0. Now you should import from `rxjs/webSocket` # [6.0.0-uncanny-rc.7](https://github.com/ReactiveX/RxJS/compare/6.0.0-ucandoit-rc.6...v6.0.0-uncanny-rc.7) (2018-04-13) ### Bug Fixes - **interop:** functions with `[Symbol.observable]` on them will now be accepted in operators like `mergeMap`, `from`, etc ([#3562](https://github.com/ReactiveX/RxJS/issues/3562)) ([c9570df](https://github.com/ReactiveX/RxJS/commit/c9570df)) - **migrations:** change the version the migration applies to ([#3564](https://github.com/ReactiveX/RxJS/issues/3564)) ([9217a03](https://github.com/ReactiveX/RxJS/commit/9217a03)) - **rxjs:** no longer requires `dom` lib ([#3566](https://github.com/ReactiveX/RxJS/issues/3566)) ([8b33ee2](https://github.com/ReactiveX/RxJS/commit/8b33ee2)) - **throttleTime:** emit throttled values when complete if trailing=true ([#3559](https://github.com/ReactiveX/RxJS/issues/3559)) ([3e846f2](https://github.com/ReactiveX/RxJS/commit/3e846f2)), closes [#3351](https://github.com/ReactiveX/RxJS/issues/3351) - **websocket:** export WebSocketSubject, WebSocketSubjectConfig from rxjs/websocket ([#3557](https://github.com/ReactiveX/RxJS/issues/3557)) ([c365405](https://github.com/ReactiveX/RxJS/commit/c365405)) # [6.0.0-ucandoit-rc.6](https://github.com/ReactiveX/RxJS/compare/6.0.0-uber-rc.5...v6.0.0-ucandoit-rc.6) (2018-04-13) ### Bug Fixes - **migrations:** make sure collection.json is present ([63e10a8](https://github.com/ReactiveX/RxJS/commit/63e10a8)) # [6.0.0-uber-rc.5](https://github.com/ReactiveX/RxJS/compare/6.0.0-turbo-rc.4...6.0.0-uber-rc.5) (2018-04-13) ### Bug Fixes - **migrations:** deploy compiled JS rather than just the TS files. ([9aed72f](https://github.com/ReactiveX/RxJS/commit/9aed72f)) # [6.0.0-turbo-rc.4](https://github.com/ReactiveX/RxJS/compare/6.0.0-terrific-rc.3...6.0.0-turbo-rc.4) (2018-04-12) ### Bug Fixes - **groupBy:** reexporting the GroupedObservable type ([#3556](https://github.com/ReactiveX/RxJS/issues/3556)) ([12d4933](https://github.com/ReactiveX/RxJS/commit/12d4933)), closes [#3551](https://github.com/ReactiveX/RxJS/issues/3551) - **migrations:** build now properly copies migration into package ([#3555](https://github.com/ReactiveX/RxJS/issues/3555)) ([329a145](https://github.com/ReactiveX/RxJS/commit/329a145)) # [6.0.0-terrific-rc.3](https://github.com/ReactiveX/RxJS/compare/6.0.0-tenacious-rc.2...v6.0.0-terrific-rc.3) (2018-04-11) ### Features - **schematics:** add migration schematics for schematics users ([20a2f07](https://github.com/ReactiveX/RxJS/commit/20a2f07)) # [6.0.0-tenacious-rc.2](https://github.com/ReactiveX/RxJS/compare/6.0.0-tactical-rc.1...v6.0.0-tenacious-rc.2) (2018-04-11) ### Bug Fixes - **compat:** fix first & last operators so undefined arguments won't create empty values ([#3542](https://github.com/ReactiveX/RxJS/issues/3542)) ([a327db2](https://github.com/ReactiveX/RxJS/commit/a327db2)) - **node/TS:** eliminate incompatible types to protected properties ([#3544](https://github.com/ReactiveX/RxJS/issues/3544)) ([21dd3bd](https://github.com/ReactiveX/RxJS/commit/21dd3bd)) ### BREAKING CHANGES - **NodeJS** Dropping support for non-LTS versions of Node. # [6.0.0-tactical-rc.1](https://github.com/ReactiveX/RxJS/compare/6.0.0-rc.0...6.0.0-tactical-rc.1) (2018-04-07) Why "tactical"? Because I _TOTALLY MEANT_ to ruin the release names by publishing an amazingly funny April Fool's joke about smooshMap. So this was "tactical". Super tactical. So very tactical. ### Bug Fixes - **closure-compiler:** adds nocollapse to static members ([#3519](https://github.com/ReactiveX/RxJS/issues/3519)) ([8758a5d](https://github.com/ReactiveX/RxJS/commit/8758a5d)) - **closure-compiler:** remove internal flag from \_isScalar ([#3520](https://github.com/ReactiveX/RxJS/issues/3520)) ([b3a657d](https://github.com/ReactiveX/RxJS/commit/b3a657d)) - **closure-compiler:** remove top level throws ([#3518](https://github.com/ReactiveX/RxJS/issues/3518)) ([b069473](https://github.com/ReactiveX/RxJS/commit/b069473)) - **closure-compiler:** removes bad \[@params](https://github.com/params) comments that caused issues ([#3521](https://github.com/ReactiveX/RxJS/issues/3521)) ([09c874c](https://github.com/ReactiveX/RxJS/commit/09c874c)) - **compat:** deprecate Observable.if/throw ([#3527](https://github.com/ReactiveX/RxJS/issues/3527)) ([3116275](https://github.com/ReactiveX/RxJS/commit/3116275)) - **compat:** export TeardownLogic ([#3532](https://github.com/ReactiveX/RxJS/issues/3532)) ([0c76e64](https://github.com/ReactiveX/RxJS/commit/0c76e64)), closes [#3531](https://github.com/ReactiveX/RxJS/issues/3531) - **compat:** remove observable/scalar deep import as it wasn't previously available ([4566001](https://github.com/ReactiveX/RxJS/commit/4566001)) - **Scheduler:** export but deprecate ([#3522](https://github.com/ReactiveX/RxJS/issues/3522)) ([a3e1fb8](https://github.com/ReactiveX/RxJS/commit/a3e1fb8)) - **skipUntil:** properly manages notifier subscription ([889f84a](https://github.com/ReactiveX/RxJS/commit/889f84a)), closes [#1886](https://github.com/ReactiveX/RxJS/issues/1886) - fix type mismatch in NodeStyleEventEmitter ([#3530](https://github.com/ReactiveX/RxJS/issues/3530)) ([3f51ddd](https://github.com/ReactiveX/RxJS/commit/3f51ddd)) - **sourcemaps:** fix mappings for source maps so they will work ([#3523](https://github.com/ReactiveX/RxJS/issues/3523)) ([32e7f75](https://github.com/ReactiveX/RxJS/commit/32e7f75)), closes [#3479](https://github.com/ReactiveX/RxJS/issues/3479) ### Features - **compat:** add Observable extension classes with static create() ([ecd7f68](https://github.com/ReactiveX/RxJS/commit/ecd7f68)) - **compat:** add rxjs/interfaces exports ([ba5c266](https://github.com/ReactiveX/RxJS/commit/ba5c266)) # [6.0.0-rc.0](https://github.com/ReactiveX/RxJS/compare/6.0.0-beta.4...6.0.0-rc.0) (2018-03-31) ### Bug Fixes - **ajax:** properly encode body with form data that includes URLs ([#3502](https://github.com/ReactiveX/RxJS/issues/3502)) ([4455d21](https://github.com/ReactiveX/RxJS/commit/4455d21)), closes [#2399](https://github.com/ReactiveX/RxJS/issues/2399) - **bindNodeCallback:** better type inference ([932bb7a](https://github.com/ReactiveX/RxJS/commit/932bb7a)) - **elementAt:** now allows falsy defaultValues ([13706e7](https://github.com/ReactiveX/RxJS/commit/13706e7)) - **lint_perf:** fix lint issues with newer perf tests ([1013754](https://github.com/ReactiveX/RxJS/commit/1013754)) - **throttle:** now properly trailing throttles for individual values ([#3505](https://github.com/ReactiveX/RxJS/issues/3505)) ([3db18d1](https://github.com/ReactiveX/RxJS/commit/3db18d1)), closes [#2864](https://github.com/ReactiveX/RxJS/issues/2864) ### Features - **takeUntil:** no longer subscribes to source if notifier synchronously emits ([#3504](https://github.com/ReactiveX/RxJS/issues/3504)) ([7b8a3e3](https://github.com/ReactiveX/RxJS/commit/7b8a3e3)), closes [#2189](https://github.com/ReactiveX/RxJS/issues/2189) ### Performance Improvements - **pluck,bufferTime,asObservable:** add performance tests for pluck(), bufferTime() and asObservable() operators ([#2491](https://github.com/ReactiveX/RxJS/issues/2491)) ([24506b3](https://github.com/ReactiveX/RxJS/commit/24506b3)) - **ReplaySubject:** slightly improved performance ([#2677](https://github.com/ReactiveX/RxJS/issues/2677)) ([9fea36d](https://github.com/ReactiveX/RxJS/commit/9fea36d)) ### BREAKING CHANGES - **throttle:** This changes the behavior of throttle, in particular throttling with both leading and trailing behaviors set to true, to more closely match the throttling behavior of lodash and other libraries. Throttling now starts immediately after any emission from the observable, and values will not be double emitted for both leading and trailing values # [6.0.0-beta.4](https://github.com/ReactiveX/RxJS/compare/6.0.0-beta.3...v6.0.0-beta.4) (2018-03-29) ### Bug Fixes - **bindCallback:** add better type overloads ([#3480](https://github.com/ReactiveX/RxJS/issues/3480)) ([037cf34](https://github.com/ReactiveX/RxJS/commit/037cf34)) - **compat:** add IScheduler to compat/Scheduler ([0a67df6](https://github.com/ReactiveX/RxJS/commit/0a67df6)) ### Features - **compat:** add all utilities to internal-compatibility ([a9ecfe7](https://github.com/ReactiveX/RxJS/commit/a9ecfe7)) - **websocket:** Add serializer/deserializer config settings ([#3489](https://github.com/ReactiveX/RxJS/issues/3489)) ([8d44124](https://github.com/ReactiveX/RxJS/commit/8d44124)) ### BREAKING CHANGES - **websocket:** WebSocketSubject will now JSON serialize all messages sent over it by default, to return to the old behavior, pass a config setting of `serializer: x => x` like so: `websocket({ url, serializer: x => x })` # [6.0.0-beta.3](https://github.com/ReactiveX/RxJS/compare/6.0.0-beta.1...6.0.0-beta.3) (2018-03-27) ### Bug Fixes - **build:** update build-optimizer and point to correct sources ([6717a01](https://github.com/ReactiveX/RxJS/commit/6717a01)) - **node:** Subscriber no longer trampled if from another copy of rxjs ([371b658](https://github.com/ReactiveX/RxJS/commit/371b658)) - **Observable:** empty ctor returns valid Observable ([#3464](https://github.com/ReactiveX/RxJS/issues/3464)) ([58b8ebc](https://github.com/ReactiveX/RxJS/commit/58b8ebc)) - **subscribeOn:** add subscribeOn back to the distribution ([d6556f2](https://github.com/ReactiveX/RxJS/commit/d6556f2)) # [6.0.0-beta.2](https://github.com/ReactiveX/RxJS/compare/6.0.0-beta.1...6.0.0-beta.2) (2018-03-24) ### Bug Fixes - **build:** update build-optimizer and point to correct sources ([6717a01](https://github.com/ReactiveX/RxJS/commit/6717a01)) - **Observable:** empty ctor returns valid Observable ([#3464](https://github.com/ReactiveX/RxJS/issues/3464)) ([58b8ebc](https://github.com/ReactiveX/RxJS/commit/58b8ebc)) - **subscribeOn:** add subscribeOn back to the distribution ([d6556f2](https://github.com/ReactiveX/RxJS/commit/d6556f2)) # [6.0.0-beta.1](https://github.com/ReactiveX/RxJS/compare/6.0.0-beta.0...v6.0.0-beta.1) (2018-03-21) ### Bug Fixes - remove duplicate Subscribable interface declaration ([#3450](https://github.com/ReactiveX/RxJS/issues/3450)) ([ac78d89](https://github.com/ReactiveX/RxJS/commit/ac78d89)) - **compat:** add package.json for internal-compatibility package ([#3455](https://github.com/ReactiveX/RxJS/issues/3455)) ([3b306ed](https://github.com/ReactiveX/RxJS/commit/3b306ed)) - **config.useDeprecatedSynchronousErrorThrowing:** reentrant error throwing no longer trapped ([#3449](https://github.com/ReactiveX/RxJS/issues/3449)) ([0892a2d](https://github.com/ReactiveX/RxJS/commit/0892a2d)), closes [#3161](https://github.com/ReactiveX/RxJS/issues/3161) ### Features - **compat:** add interfaces export ([d8f8122](https://github.com/ReactiveX/RxJS/commit/d8f8122)) - **compat:** add rxjs/observable/dom/\* APIs to compatibility package ([d9a618f](https://github.com/ReactiveX/RxJS/commit/d9a618f)) # [6.0.0-beta.0](https://github.com/ReactiveX/RxJS/compare/6.0.0-alpha.3...6.0.0-beta.0) (2018-03-16) ### Bug Fixes - **AjaxObservable:** 1xx,2xx,3xx requests shouldn't error, only 4xx,5xx ([#3438](https://github.com/ReactiveX/RxJS/issues/3438)) ([2128932](https://github.com/ReactiveX/RxJS/commit/2128932)) - **compat:** adjustments to get rxjs-compat to build correctly ([dea6964](https://github.com/ReactiveX/RxJS/commit/dea6964)) - **config:** expose configuration via rxjs exports ([#3441](https://github.com/ReactiveX/RxJS/issues/3441)) ([4287424](https://github.com/ReactiveX/RxJS/commit/4287424)) - **config:** make sure that Promise config is undefined initially ([#3440](https://github.com/ReactiveX/RxJS/issues/3440)) ([469afe8](https://github.com/ReactiveX/RxJS/commit/469afe8)) - **ESM:** Add [operators|ajax|websocket|testing]/package.json for ESM support, fixes [#3227](https://github.com/ReactiveX/RxJS/issues/3227) ([#3356](https://github.com/ReactiveX/RxJS/issues/3356)) ([725dcb4](https://github.com/ReactiveX/RxJS/commit/725dcb4)) - **forkJoin:** fix forkJoin typings for forkJoin(Observable[]) ([#3436](https://github.com/ReactiveX/RxJS/issues/3436)) ([17c7f8f](https://github.com/ReactiveX/RxJS/commit/17c7f8f)) - **fromEvent:** Defines toString to fix Closure compilations ([#3417](https://github.com/ReactiveX/RxJS/issues/3417)) ([1558b43](https://github.com/ReactiveX/RxJS/commit/1558b43)) - **fromEvent:** pass options in unsubscribe ([f1872b0](https://github.com/ReactiveX/RxJS/commit/f1872b0)), closes [#3349](https://github.com/ReactiveX/RxJS/issues/3349) - **publishReplay:** type inference improved ([#3437](https://github.com/ReactiveX/RxJS/issues/3437)) ([dd7c9f1](https://github.com/ReactiveX/RxJS/commit/dd7c9f1)), closes [#3260](https://github.com/ReactiveX/RxJS/issues/3260) - **rxjs:** add exports for symbols/interfaces that were missing ([#3380](https://github.com/ReactiveX/RxJS/issues/3380)) ([1622ee0](https://github.com/ReactiveX/RxJS/commit/1622ee0)) - **rxjs:** make sure esm imports from index.js by default, not Rx.js ([#3316](https://github.com/ReactiveX/RxJS/issues/3316)) ([c2b00f4](https://github.com/ReactiveX/RxJS/commit/c2b00f4)), closes [#3315](https://github.com/ReactiveX/RxJS/issues/3315) - **rxjs:** once again exports custom error types ([#3371](https://github.com/ReactiveX/RxJS/issues/3371)) ([4465a9f](https://github.com/ReactiveX/RxJS/commit/4465a9f)) - **rxjs:** remove types.ts importing from itself. ([#3383](https://github.com/ReactiveX/RxJS/issues/3383)) ([8fd50ad](https://github.com/ReactiveX/RxJS/commit/8fd50ad)) - **spec:** get tests running using compatibility package ([916e968](https://github.com/ReactiveX/RxJS/commit/916e968)) - correct internal module paths to be systemjs compatible ([#3412](https://github.com/ReactiveX/RxJS/issues/3412)) ([35abc9d](https://github.com/ReactiveX/RxJS/commit/35abc9d)) - **Symbol.iterator:** correctly handle case where Symbol constructor itself is not defined ([#3394](https://github.com/ReactiveX/RxJS/issues/3394)) ([6725be1](https://github.com/ReactiveX/RxJS/commit/6725be1)) - **typings:** fixed some cases where multicast and publish would not return a ConnectableObservable ([#3320](https://github.com/ReactiveX/RxJS/issues/3320)) ([ddffecc](https://github.com/ReactiveX/RxJS/commit/ddffecc)) - reexport Symbol.observable typings patch ([4c4d7b0](https://github.com/ReactiveX/RxJS/commit/4c4d7b0)) - remove the root operators.ts because it overshadows operators/package.json ([184b6d4](https://github.com/ReactiveX/RxJS/commit/184b6d4)) ### Code Refactoring - **Observable.if:** remove ts hacks from Observable ([f46f261](https://github.com/ReactiveX/RxJS/commit/f46f261)) - **Rx.ts:** move Rx.ts to internal ([#3400](https://github.com/ReactiveX/RxJS/issues/3400)) ([7ad2119](https://github.com/ReactiveX/RxJS/commit/7ad2119)) ### Features - **ajax:** default to opting into CORS ([#3442](https://github.com/ReactiveX/RxJS/issues/3442)) ([aa3bf57](https://github.com/ReactiveX/RxJS/commit/aa3bf57)), closes [#3273](https://github.com/ReactiveX/RxJS/issues/3273) - **bindCallback:** remove result selector ([2535641](https://github.com/ReactiveX/RxJS/commit/2535641)) - **bindNodeCallback:** remove resultSelector ([26e6e5c](https://github.com/ReactiveX/RxJS/commit/26e6e5c)) - **compat:** add compatability package definition ([40aca82](https://github.com/ReactiveX/RxJS/commit/40aca82)) - **compat:** add concat operator to compatibility layer ([6e84e78](https://github.com/ReactiveX/RxJS/commit/6e84e78)) - **compat:** add legacy reexport compat layer for 'rxjs/Observable' and other top-level symbols ([70e562b](https://github.com/ReactiveX/RxJS/commit/70e562b)) - **compat:** add Rx.ts to rxjs-compat ([df25de1](https://github.com/ReactiveX/RxJS/commit/df25de1)) - **compat:** compatibility mode for combineLatest ([fd86df5](https://github.com/ReactiveX/RxJS/commit/fd86df5)) - **compat:** compatibility mode for merge operator ([ffce980](https://github.com/ReactiveX/RxJS/commit/ffce980)) - **compat:** compatibility mode for zip operator ([9f131d0](https://github.com/ReactiveX/RxJS/commit/9f131d0)) - **compat:** make Rx.ts for compatability layer work as the default for rxjs-compat ([d43a4c2](https://github.com/ReactiveX/RxJS/commit/d43a4c2)) - **compat:** set up correct imports & get build working for rxjs-comapt ([1a0dc97](https://github.com/ReactiveX/RxJS/commit/1a0dc97)) - **deprecated-error-handling-warning:** add console warning when code sets the flag to bad mode ([49be56a](https://github.com/ReactiveX/RxJS/commit/49be56a)) - **error-handling:** add deprecated sync error handling behind a flag ([583cd1d](https://github.com/ReactiveX/RxJS/commit/583cd1d)) - **exhaustMap:** simplify interface ([42589d0](https://github.com/ReactiveX/RxJS/commit/42589d0)) - **first:** simplify interface ([a011338](https://github.com/ReactiveX/RxJS/commit/a011338)) - **forkJoin:** simplify interface ([4d2338b](https://github.com/ReactiveX/RxJS/commit/4d2338b)) - **fromEvent:** remove resultSelector ([197f449](https://github.com/ReactiveX/RxJS/commit/197f449)) - **fromEvent:** will now emit an array when event emits multiple arguments ([51b37fd](https://github.com/ReactiveX/RxJS/commit/51b37fd)) - **fromEventPattern:** removed resultSelector ([6b34f9f](https://github.com/ReactiveX/RxJS/commit/6b34f9f)) - **last:** simplify interface ([3240419](https://github.com/ReactiveX/RxJS/commit/3240419)) - **mergeMap|concatMap|concatMapTo:** simplified the signatures ([d293245](https://github.com/ReactiveX/RxJS/commit/d293245)) - **mergeMapTo:** simplify interface ([582c7be](https://github.com/ReactiveX/RxJS/commit/582c7be)) - **never:** no longer export `never` function ([#3386](https://github.com/ReactiveX/RxJS/issues/3386)) ([53debc8](https://github.com/ReactiveX/RxJS/commit/53debc8)) - **switchMap|switchMapTo:** simplify interface ([959fb6a](https://github.com/ReactiveX/RxJS/commit/959fb6a)) - **Symbol.iterator:** no longer polyfilled ([#3389](https://github.com/ReactiveX/RxJS/issues/3389)) ([6319f3c](https://github.com/ReactiveX/RxJS/commit/6319f3c)) - **Symbol.observable:** is no longer polyfilled ([#3387](https://github.com/ReactiveX/RxJS/issues/3387)) ([4a5aaaf](https://github.com/ReactiveX/RxJS/commit/4a5aaaf)) - **throwIfEmpty:** adds throwIfEmpty operator ([#3368](https://github.com/ReactiveX/RxJS/issues/3368)) ([9b21458](https://github.com/ReactiveX/RxJS/commit/9b21458)) - **typings:** updated typings for combineAll, mergeAll, concatAll, switch, exhaust, zipAll ([#3321](https://github.com/ReactiveX/RxJS/issues/3321)) ([f7e4c02](https://github.com/ReactiveX/RxJS/commit/f7e4c02)) - **umd:** UMD now mirrors export schema for ESM and CJS ([#3426](https://github.com/ReactiveX/RxJS/issues/3426)) ([556c904](https://github.com/ReactiveX/RxJS/commit/556c904)) ### BREAKING CHANGES - **ajax:** will no longer execute a CORS request by default, you must opt-in with the `crossDomain` flag in the config. - **mergeMap|concatMap|concatMapTo:** mergeMap, concatMap and concatMapTo no longer support a result selector, if you need to use a result selector, use the following pattern: `source.mergeMap(x => of(x + x).pipe(map(y => y + x))` (the pattern would be the same for `concatMap`). - **never:** no longer exported. Use the `NEVER` constant instead. - **bindCallback:** removes result selector, use `map` instead: `bindCallback(fn1, fn2)()` becomes `bindCallback(fn1)().pipe(map(fn2))` - **Rx.ts:** importing from `rxjs/Rx` is no longer available. Upcoming backwards compat solution will allow that - **Symbol.iterator:** We are no longer polyfilling `Symbol.iterator`. That would be done by a proper polyfilling library - **Observable.if:** TypeScript users using `Observable.if` will have to cast `Observable` as any to get to `if`. It is a better idea to just use `iif` directly via `import { iif } from 'rxjs';` - **bindNodeCallback:** resultSelector removed, use `map` instead: `bindNodeCallback(fn1, fn2)()` becomes `bindNodeCallback(fn1)().pipe(map(fn2))` - **Symbol.observable:** RxJS will no longer be polyfilling Symbol.observable. That should be done by an actual polyfill library. This is to prevent duplication of code, and also to prevent having modules with side-effects in rxjs. - **fromEvent:** result selector removed, use `map` instead: `fromEvent(target, 'click', fn)` becomes `fromEvent(target, 'click').pipe(map(fn))` - **last:** no longer accepts `resultSelector` argument. To get this same functionality, use `map`. - **first:** no longer supports `resultSelector` argument. The same functionality can be achieved by simply mapping either before or after `first` depending on your use case. - **exhaustMap:** `resultSelector` no longer supported, to get this functionality use: `source.pipe(exhaustMap(x => of(x + x).pipe(map(y => x + y))))` - **switchMap|switchMapTo:** `switchMap` and `switchMapTo` no longer take `resultSelector` arguments, to get the same functionality use `switchMap` and `map` in combination: `source.pipe(switchMap(x => of(x + x).pipe(y => x + y)))`. - **mergeMapTo:** `mergeMapTo` no longer accepts a resultSelector, to get this functionality, you'll want to use `mergeMap` and `map` together: `source.pipe(mergeMap(() => inner).pipe(map(y => x + y)))` - **fromEventPattern:** no longer supports a result selector, use `map` instead: `fromEventPattern(fn1, fn2, fn3)` becomes `fromEventPattern(fn1, fn2).pipe(map(fn3))` # [6.0.0-alpha.4](https://github.com/ReactiveX/RxJS/compare/6.0.0-alpha.3...v6.0.0-alpha.4) (2018-03-13) ### Bug Fixes - **ESM:** Add [operators|ajax|websocket|testing]/package.json for ESM support, fixes [#3227](https://github.com/ReactiveX/RxJS/issues/3227) ([#3356](https://github.com/ReactiveX/RxJS/issues/3356)) ([725dcb4](https://github.com/ReactiveX/RxJS/commit/725dcb4)) - **fromEvent:** Defines toString to fix Closure compilations ([#3417](https://github.com/ReactiveX/RxJS/issues/3417)) ([1558b43](https://github.com/ReactiveX/RxJS/commit/1558b43)) - **fromEvent:** pass options in unsubscribe ([f1872b0](https://github.com/ReactiveX/RxJS/commit/f1872b0)), closes [#3349](https://github.com/ReactiveX/RxJS/issues/3349) - **rxjs:** add exports for symbols/interfaces that were missing ([#3380](https://github.com/ReactiveX/RxJS/issues/3380)) ([1622ee0](https://github.com/ReactiveX/RxJS/commit/1622ee0)) - **rxjs:** make sure esm imports from index.js by default, not Rx.js ([#3316](https://github.com/ReactiveX/RxJS/issues/3316)) ([c2b00f4](https://github.com/ReactiveX/RxJS/commit/c2b00f4)), closes [#3315](https://github.com/ReactiveX/RxJS/issues/3315) - **rxjs:** once again exports custom error types ([#3371](https://github.com/ReactiveX/RxJS/issues/3371)) ([4465a9f](https://github.com/ReactiveX/RxJS/commit/4465a9f)) - **rxjs:** remove types.ts importing from itself. ([#3383](https://github.com/ReactiveX/RxJS/issues/3383)) ([8fd50ad](https://github.com/ReactiveX/RxJS/commit/8fd50ad)) - correct internal module paths to be systemjs compatible ([#3412](https://github.com/ReactiveX/RxJS/issues/3412)) ([35abc9d](https://github.com/ReactiveX/RxJS/commit/35abc9d)) - **Symbol.iterator:** correctly handle case where Symbol constructor itself is not defined ([#3394](https://github.com/ReactiveX/RxJS/issues/3394)) ([6725be1](https://github.com/ReactiveX/RxJS/commit/6725be1)) - **typings:** fixed some cases where multicast and publish would not return a ConnectableObservable ([#3320](https://github.com/ReactiveX/RxJS/issues/3320)) ([ddffecc](https://github.com/ReactiveX/RxJS/commit/ddffecc)) - reexport Symbol.observable typings patch ([4c4d7b0](https://github.com/ReactiveX/RxJS/commit/4c4d7b0)) - remove the root operators.ts because it overshadows operators/package.json ([184b6d4](https://github.com/ReactiveX/RxJS/commit/184b6d4)) ### Code Refactoring - **Observable.if:** remove ts hacks from Observable ([f46f261](https://github.com/ReactiveX/RxJS/commit/f46f261)) - **Rx.ts:** move Rx.ts to internal ([#3400](https://github.com/ReactiveX/RxJS/issues/3400)) ([7ad2119](https://github.com/ReactiveX/RxJS/commit/7ad2119)) ### Features - **bindCallback:** remove result selector ([2535641](https://github.com/ReactiveX/RxJS/commit/2535641)) - **bindNodeCallback:** remove resultSelector ([26e6e5c](https://github.com/ReactiveX/RxJS/commit/26e6e5c)) - **exhaustMap:** simplify interface ([42589d0](https://github.com/ReactiveX/RxJS/commit/42589d0)) - **first:** simplify interface ([a011338](https://github.com/ReactiveX/RxJS/commit/a011338)) - **forkJoin:** simplify interface ([4d2338b](https://github.com/ReactiveX/RxJS/commit/4d2338b)) - **fromEvent:** remove resultSelector ([197f449](https://github.com/ReactiveX/RxJS/commit/197f449)) - **fromEvent:** will now emit an array when event emits multiple arguments ([51b37fd](https://github.com/ReactiveX/RxJS/commit/51b37fd)) - **fromEventPattern:** removed resultSelector ([6b34f9f](https://github.com/ReactiveX/RxJS/commit/6b34f9f)) - **last:** simplify interface ([3240419](https://github.com/ReactiveX/RxJS/commit/3240419)) - **mergeMap|concatMap|concatMapTo:** simplified the signatures ([d293245](https://github.com/ReactiveX/RxJS/commit/d293245)) - **mergeMapTo:** simplify interface ([582c7be](https://github.com/ReactiveX/RxJS/commit/582c7be)) - **never:** no longer export `never` function ([#3386](https://github.com/ReactiveX/RxJS/issues/3386)) ([53debc8](https://github.com/ReactiveX/RxJS/commit/53debc8)) - **switchMap|switchMapTo:** simplify interface ([959fb6a](https://github.com/ReactiveX/RxJS/commit/959fb6a)) - **Symbol.iterator:** no longer polyfilled ([#3389](https://github.com/ReactiveX/RxJS/issues/3389)) ([6319f3c](https://github.com/ReactiveX/RxJS/commit/6319f3c)) - **Symbol.observable:** is no longer polyfilled ([#3387](https://github.com/ReactiveX/RxJS/issues/3387)) ([4a5aaaf](https://github.com/ReactiveX/RxJS/commit/4a5aaaf)) - **throwIfEmpty:** adds throwIfEmpty operator ([#3368](https://github.com/ReactiveX/RxJS/issues/3368)) ([9b21458](https://github.com/ReactiveX/RxJS/commit/9b21458)) - **typings:** updated typings for combineAll, mergeAll, concatAll, switch, exhaust, zipAll ([#3321](https://github.com/ReactiveX/RxJS/issues/3321)) ([f7e4c02](https://github.com/ReactiveX/RxJS/commit/f7e4c02)) - **umd:** UMD now mirrors export schema for ESM and CJS ([#3426](https://github.com/ReactiveX/RxJS/issues/3426)) ([556c904](https://github.com/ReactiveX/RxJS/commit/556c904)) ### BREAKING CHANGES - **Symbol.observable:** RxJS will no longer be polyfilling Symbol.observable. That should be done by an actual polyfill library. This is to prevent duplication of code, and also to prevent having modules with side-effects in rxjs. - **mergeMap|concatMap|concatMapTo:** mergeMap, concatMap and concatMapTo no longer support a result selector, if you need to use a result selector, use the following pattern: `source.mergeMap(x => of(x + x).pipe(map(y => y + x))` (the pattern would be the same for `concatMap`). - **bindCallback:** removes result selector, use `map` instead: `bindCallback(fn1, fn2)()` becomes `bindCallback(fn1)().pipe(map(fn2))` - **Rx.ts:** importing from `rxjs/Rx` is no longer available. Upcoming backwards compat solution will allow that - **Symbol.iterator:** We are no longer polyfilling `Symbol.iterator`. That would be done by a proper polyfilling library - **Observable.if:** TypeScript users using `Observable.if` will have to cast `Observable` as any to get to `if`. It is a better idea to just use `iif` directly via `import { iif } from 'rxjs';` - **bindNodeCallback:** resultSelector removed, use `map` instead: `bindNodeCallback(fn1, fn2)()` becomes `bindNodeCallback(fn1)().pipe(map(fn2))` - **never:** no longer exported. Use the `NEVER` constant instead. - **fromEvent:** result selector removed, use `map` instead: `fromEvent(target, 'click', fn)` becomes `fromEvent(target, 'click').pipe(map(fn))` - **last:** no longer accepts `resultSelector` argument. To get this same functionality, use `map`. - **first:** no longer supports `resultSelector` argument. The same functionality can be achieved by simply mapping either before or after `first` depending on your use case. - **exhaustMap:** `resultSelector` no longer supported, to get this functionality use: `source.pipe(exhaustMap(x => of(x + x).pipe(map(y => x + y))))` - **switchMap|switchMapTo:** `switchMap` and `switchMapTo` no longer take `resultSelector` arguments, to get the same functionality use `switchMap` and `map` in combination: `source.pipe(switchMap(x => of(x + x).pipe(y => x + y)))`. - **mergeMapTo:** `mergeMapTo` no longer accepts a resultSelector, to get this functionality, you'll want to use `mergeMap` and `map` together: `source.pipe(mergeMap(() => inner).pipe(map(y => x + y)))` - **fromEventPattern:** no longer supports a result selector, use `map` instead: `fromEventPattern(fn1, fn2, fn3)` becomes `fromEventPattern(fn1, fn2).pipe(map(fn3))` # [6.0.0-alpha.3](https://github.com/ReactiveX/RxJS/compare/6.0.0-alpha.2...v6.0.0-alpha.3) (2018-02-06) ### Bug Fixes - **animationFrame.spec:** spec description fix ([#3140](https://github.com/ReactiveX/RxJS/issues/3140)) ([ab6c325](https://github.com/ReactiveX/RxJS/commit/ab6c325)) - **debounce:** support scalar selectors ([#3236](https://github.com/ReactiveX/RxJS/issues/3236)) ([1548393](https://github.com/ReactiveX/RxJS/commit/1548393)), closes [#3232](https://github.com/ReactiveX/RxJS/issues/3232) - **forkJoin:** catch and forward selector errors ([#3261](https://github.com/ReactiveX/RxJS/issues/3261)) ([e57bbb7](https://github.com/ReactiveX/RxJS/commit/e57bbb7)), closes [#3216](https://github.com/ReactiveX/RxJS/issues/3216) - **Observable:** expose pipe rest parameter overload ([#3292](https://github.com/ReactiveX/RxJS/issues/3292)) ([7ff5bc3](https://github.com/ReactiveX/RxJS/commit/7ff5bc3)) - **onErrorResumeNext:** no longer holds onto subscriptions too long ([abbbdad](https://github.com/ReactiveX/RxJS/commit/abbbdad)), closes [#3178](https://github.com/ReactiveX/RxJS/issues/3178) - **scheduler:** prevent unwanted clearInterval ([#3226](https://github.com/ReactiveX/RxJS/issues/3226)) ([d7cfb42](https://github.com/ReactiveX/RxJS/commit/d7cfb42)), closes [#3042](https://github.com/ReactiveX/RxJS/issues/3042) - **timer:** multiple subscriptions to timer(Date) behaves correctly ([aafa7ff](https://github.com/ReactiveX/RxJS/commit/aafa7ff)), closes [#3252](https://github.com/ReactiveX/RxJS/issues/3252) - **typings:** correct compilation warnings from missing types in tests ([3aad6bc](https://github.com/ReactiveX/RxJS/commit/3aad6bc)) - **typings:** relax debounce selector type ([c419ab4](https://github.com/ReactiveX/RxJS/commit/c419ab4)), closes [#3164](https://github.com/ReactiveX/RxJS/issues/3164) - **typings:** relax throttle selector type ([#3205](https://github.com/ReactiveX/RxJS/issues/3205)) ([e83fda7](https://github.com/ReactiveX/RxJS/commit/e83fda7)), closes [#3204](https://github.com/ReactiveX/RxJS/issues/3204) - **typings:** the return type of factory of defer should be ObservableInput ([#3211](https://github.com/ReactiveX/RxJS/issues/3211)) ([dc41a5e](https://github.com/ReactiveX/RxJS/commit/dc41a5e)) ### Features - **empty:** empty() returns the same instance ([5c7c749](https://github.com/ReactiveX/RxJS/commit/5c7c749)) - **EMPTY:** observable constant EMPTY now exported ([08fb074](https://github.com/ReactiveX/RxJS/commit/08fb074)) - **never:** always return the same instance ([#3249](https://github.com/ReactiveX/RxJS/issues/3249)) ([d57fa52](https://github.com/ReactiveX/RxJS/commit/d57fa52)) - **rxjs:** move rxjs/create into rxjs ([#3299](https://github.com/ReactiveX/RxJS/issues/3299)) ([6711fe2](https://github.com/ReactiveX/RxJS/commit/6711fe2)) - **throwError:** functional version of throwError ([639236e](https://github.com/ReactiveX/RxJS/commit/639236e)) ### BREAKING CHANGES - **rxjs:** `rxjs/create` items are now exported from `rxjs` - **throwError:** Observable.throw no longer available in TypeScript without a cast - **empty:** `empty()` without a scheduler will return the same instance every time. - **empty:** In TypeScript, `empty()` no longer accepts a generic argument, as it returns `Observable` - **never:** `never()` always returns the same instance - **never:** TypeScript typing for `never()` is now `Observable` and the function no longer requires a generic type. # [6.0.0-alpha.2](https://github.com/ReactiveX/RxJS/compare/6.0.0-alpha.1...6.0.0-alpha.2) (2018-01-14) ### Bug Fixes - **build:** properly outputs subdirectories like `rxjs/operators` ([34fe560](https://github.com/ReactiveX/RxJS/commit/34fe560)) # [6.0.0-alpha.1](https://github.com/ReactiveX/RxJS/compare/5.5.3...v6.0.0-alpha.1) (2018-01-12) ### Bug Fixes - Revert "fix(scheduler): prevent unwanted clearInterval ([#3044](https://github.com/ReactiveX/RxJS/issues/3044))" ([ad5c7c6](https://github.com/ReactiveX/RxJS/commit/ad5c7c6)) - Revert "fix(scheduler): prevent unwanted clearInterval ([#3044](https://github.com/ReactiveX/RxJS/issues/3044))" ([64f9285](https://github.com/ReactiveX/RxJS/commit/64f9285)) - **debounceTime:** synchronous reentrancy of debounceTime no longer swallows the second value ([#3218](https://github.com/ReactiveX/RxJS/issues/3218)) ([598e9ce](https://github.com/ReactiveX/RxJS/commit/598e9ce)), closes [#2748](https://github.com/ReactiveX/RxJS/issues/2748) - **dependency:** move symbol-observable into devdependency ([4400628](https://github.com/ReactiveX/RxJS/commit/4400628)) - **IteratorObservable:** get new iterator for each subscription ([#2497](https://github.com/ReactiveX/RxJS/issues/2497)) ([1bd0a58](https://github.com/ReactiveX/RxJS/commit/1bd0a58)), closes [#2496](https://github.com/ReactiveX/RxJS/issues/2496) - **Observable.toArray:** Fix toArray with multiple subscriptions. ([#3134](https://github.com/ReactiveX/RxJS/issues/3134)) ([3390926](https://github.com/ReactiveX/RxJS/commit/3390926)) - **SystemJS:** avoid node module resolution of pipeable operators ([#3025](https://github.com/ReactiveX/RxJS/issues/3025)) ([0f3cf71](https://github.com/ReactiveX/RxJS/commit/0f3cf71)), closes [#2971](https://github.com/ReactiveX/RxJS/issues/2971) [#2996](https://github.com/ReactiveX/RxJS/issues/2996) [#3011](https://github.com/ReactiveX/RxJS/issues/3011) - **tap:** make next optional ([#3073](https://github.com/ReactiveX/RxJS/issues/3073)) ([e659f0c](https://github.com/ReactiveX/RxJS/commit/e659f0c)), closes [#2534](https://github.com/ReactiveX/RxJS/issues/2534) - **TSC:** Fixing TSC errors. Fixes [#3020](https://github.com/ReactiveX/RxJS/issues/3020) ([01d1575](https://github.com/ReactiveX/RxJS/commit/01d1575)) - **typings:** the return type of project of mergeScan should be ObservableInput ([23fe17d](https://github.com/ReactiveX/RxJS/commit/23fe17d)) ### Chores - **TypeScript:** Bump up typescript to latest ([#3009](https://github.com/ReactiveX/RxJS/issues/3009)) ([2f395da](https://github.com/ReactiveX/RxJS/commit/2f395da)) ### Code Refactoring - **asap:** Remove setImmediate polyfill ([5eb6af7](https://github.com/ReactiveX/RxJS/commit/5eb6af7)) - **distinct:** Remove Set polyfill ([68ee499](https://github.com/ReactiveX/RxJS/commit/68ee499)) - **groupBy:** Remove Map polyfill ([74b5b1a](https://github.com/ReactiveX/RxJS/commit/74b5b1a)) ### Features - **Observable:** unhandled errors are now reported to HostReportErrors ([#3062](https://github.com/ReactiveX/RxJS/issues/3062)) ([cd9626a](https://github.com/ReactiveX/RxJS/commit/cd9626a)) - **reorganize:** move ./interfaces.ts to internal/types.ts ([cfbfaac](https://github.com/ReactiveX/RxJS/commit/cfbfaac)) - **reorganize:** internal utils hidden ([70058cd](https://github.com/ReactiveX/RxJS/commit/70058cd)) - **reorganize:** add `rxjs/create` exports ([c9963bd](https://github.com/ReactiveX/RxJS/commit/c9963bd)) - **reorganize:** ajax observable creator now exported from `rxjs/ajax` ([e971c93](https://github.com/ReactiveX/RxJS/commit/e971c93)) - **reorganize:** all patch operators moved to `internal` directory ([7342401](https://github.com/ReactiveX/RxJS/commit/7342401)) - **reorganize:** export `noop` and `identity` from `rxjs` ([810c4d0](https://github.com/ReactiveX/RxJS/commit/810c4d0)) - **reorganize:** export `Notification` from `rxjs` ([8809b48](https://github.com/ReactiveX/RxJS/commit/8809b48)) - **reorganize:** export schedulers from `rxjs` ([abd3b61](https://github.com/ReactiveX/RxJS/commit/abd3b61)) - **reorganize:** export Subject, ReplaySubject, BehaviorSubject from rxjs ([bd683ca](https://github.com/ReactiveX/RxJS/commit/bd683ca)) - **reorganize:** export the `pipe` utility function from `rxjs` ([4574310](https://github.com/ReactiveX/RxJS/commit/4574310)) - **reorganize:** hid testing implementation details ([b981666](https://github.com/ReactiveX/RxJS/commit/b981666)) - **reorganize:** move observable implementations under internal directory ([2d5c3f8](https://github.com/ReactiveX/RxJS/commit/2d5c3f8)) - **reorganize:** move operator impls under internal directory ([207976f](https://github.com/ReactiveX/RxJS/commit/207976f)) - **reorganize:** move top-level impls under internal directory ([c3bb705](https://github.com/ReactiveX/RxJS/commit/c3bb705)) - **reorganize:** moved symbols to be internal ([80783ab](https://github.com/ReactiveX/RxJS/commit/80783ab)) - **reorganize:** operators all exported from `rxjs/operators` ([b1f8bfe](https://github.com/ReactiveX/RxJS/commit/b1f8bfe)) - **reorganize:** websocket subject creator now exported from `rxjs/websocket` ([5ac62c0](https://github.com/ReactiveX/RxJS/commit/5ac62c0)) ### BREAKING CHANGES - **webSocket:** `webSocket` creator function now exported from `rxjs/websocket` as `websocket`. - **IteratorObservable:** IteratorObservable no longer share iterator between subscription - **utils:** Many internal use utilities like `isArray` are now hidden under `rxjs/internal`, they are implementation details and should not be used. - **testing observables:** `HotObservable` and `ColdObservable`, and other testing support types are no longer exported directly. - **creation functions:** All create functions such as `of`, `from`, `combineLatest` and `fromEvent` should now be imported from `rxjs/create`. - **types and interfaces:** Can no longer explicitly import types from `rxjs/interfaces`, import them from `rxjs` instead - **symbols:** Symbols are no longer exported directly from modules such as `rxjs/symbol/observable` please use `Symbol.observable` and `Symbol.iterator` (polyfills may be required) - **deep imports:** Can no longer deep import top-level types such as `rxjs/Observable`, `rxjs/Subject`, `rxjs/ReplaySubject`, et al. All imports should be done directly from `rxjs`, for example: `import \{ Observable, Subject \} from 'rxjs';` - **schedulers:** Scheduler instances have changed names to be suffixed with `Scheduler`, (e.g. `asap` -> `asapScheduler`) - **operators:** Pipeable operators must now be imported from `rxjs` like so: `import { map, filter, switchMap } from 'rxjs/operators';`. No deep imports. - **ajax:** Ajax observable should be imported from `rxjs/ajax`. - **Observable:** You should no longer deep import custom Observable implementations such as `ArrayObservable` or `ForkJoinObservable`. - **\_throw:** `_throw` is now exported as `throwError` - **if:** `if` is now exported as `iif` - **operators:** Deep imports to `rxjs/operator/*` will no longer work. Again, pipe operators are still where they were. - **error handling:** Unhandled errors are no longer caught and rethrown, rather they are caught and scheduled to be thrown, which causes them to be reported to window.onerror or process.on('error'), depending on the environment. Consequently, teardown after a synchronous, unhandled, error will no longer occur, as the teardown would not exist, and producer interference cannot occur - **distinct:** Using `distinct` requires a `Set` implementation and must be polyfilled in older runtimes - **asap:** Old runtimes must polyfill Promise in order to use ASAP scheduling. - **groupBy:** Older runtimes will require Map to be polyfilled to use `groupBy` - **TypeScript:** IE10 and lower will need to polyfill `Object.setPrototypeOf` - **operators removed:** Operator versions of static observable creators such as `merge`, `concat`, `zip`, `onErrorResumeNext`, and `race` have been removed. Please use the static versions of those operations. e.g. `a.pipe(concat(b, c))` becomes `concat(a, b, c)`. ## [5.5.6](https://github.com/ReactiveX/RxJS/compare/5.5.5...v5.5.6) (2017-12-21) ### Bug Fixes - **Observable:** rethrow errors when syncErrorThrowable and inherit it from destination. Fixes [#2813](https://github.com/ReactiveX/RxJS/issues/2813) ([541b49d](https://github.com/ReactiveX/RxJS/commit/541b49d)) ## [5.5.5](https://github.com/ReactiveX/RxJS/compare/5.5.4...v5.5.5) (2017-12-06) ### Support Added - **Bazel:** Add files to support users that want Bazel builds with RxJS ([12dac3b](https://github.com/ReactiveX/rxjs/commit/12dac3b)) ## [5.5.4](https://github.com/ReactiveX/RxJS/compare/5.5.3...v5.5.4) (2017-12-05) ### Bug Fixes - **scheduler:** resolve regression on angular router with zones ([#3158](https://github.com/ReactiveX/RxJS/issues/3158)) ([520b06a](https://github.com/ReactiveX/RxJS/commit/520b06a)) - **publish:** re-publish after having built with proper version of TypeScript. ([f0ff5bc](https://github.com/ReactiveX/RxJS/commit/f0ff5bc), closes[#3155](https://github.com/ReactiveX/rxjs/issues/3155)) ## [5.5.3](https://github.com/ReactiveX/RxJS/compare/5.5.2...v5.5.3) (2017-12-01) ### Bug Fixes - **concatStatic:** missing exports for mergeStatic and concatStatic ([#2999](https://github.com/ReactiveX/RxJS/issues/2999)) ([cae5f9b](https://github.com/ReactiveX/RxJS/commit/cae5f9b)) - **scheduler:** prevent unwanted clearInterval ([#3044](https://github.com/ReactiveX/RxJS/issues/3044)) ([7d722d4](https://github.com/ReactiveX/RxJS/commit/7d722d4)), closes [#3042](https://github.com/ReactiveX/RxJS/issues/3042) - **SystemJS:** avoid node module resolution of pipeable operators ([#3025](https://github.com/ReactiveX/RxJS/issues/3025)) ([d77e3d7](https://github.com/ReactiveX/RxJS/commit/d77e3d7)), closes [#2971](https://github.com/ReactiveX/RxJS/issues/2971) [#2996](https://github.com/ReactiveX/RxJS/issues/2996) [#3011](https://github.com/ReactiveX/RxJS/issues/3011) - **typings:** fix subscribe overloads ([#3053](https://github.com/ReactiveX/RxJS/issues/3053)) ([1a9fd42](https://github.com/ReactiveX/RxJS/commit/1a9fd42)), closes [#3052](https://github.com/ReactiveX/RxJS/issues/3052) ## [5.5.2](https://github.com/ReactiveX/RxJS/compare/5.5.1...v5.5.2) (2017-10-25) ### Bug Fixes - **package:** fixed import failures in Webpack ([#2987](https://github.com/ReactiveX/RxJS/issues/2987)) ([e16202d](https://github.com/ReactiveX/RxJS/commit/e16202d)) - **typings:** improved type inference for arguments to publishReplay ([#2992](https://github.com/ReactiveX/RxJS/issues/2992)) ([0753ff7](https://github.com/ReactiveX/RxJS/commit/0753ff7)), closes [#2991](https://github.com/ReactiveX/RxJS/issues/2991) - **typings:** ensure TS types for `zip` and `combineLatest` are properly inferred. ([b8e6cf8](https://github.com/ReactiveX/RxJS/commit/b8e6cf8)) - **typings:** publish variants will properly return ConnectableObservable([#2983](https://github.com/ReactiveX/RxJS/issues/2983)) ([d563bfa](https://github.com/ReactiveX/RxJS/commit/d563bfa)) ## [5.5.1](https://github.com/ReactiveX/RxJS/compare/5.5.0...v5.5.1) (2017-10-24) ### Bug Fixes - **build:** Remove `module` and `es2015` keys to avoid resolution conflicts ([5073139](https:/github.com/ReactiveX/RxJS/commit/5073139)) - **ajaxobservable:** fix operator import path ([d9b62ed](https://github.com/ReactiveX/RxJS/commit/d9b62ed)) # [5.5.0](https://github.com/ReactiveX/RxJS/compare/5.5.0-beta.7...v5.5.0) (2017-10-18) ### Bug Fixes - **build:** CJS sourceMaps now inlined into sourcesContent ([39b4af5](https://github.com/ReactiveX/RxJS/commit/39b4af5)), closes [#2934](https://github.com/ReactiveX/RxJS/issues/2934) ### Features - **publishReplay:** add selector function to publishReplay ([#2885](https://github.com/ReactiveX/RxJS/issues/2885)) ([e0efd13](https://github.com/ReactiveX/RxJS/commit/e0efd13)) # [5.5.0-beta.7](https://github.com/ReactiveX/RxJS/compare/5.5.0-beta.5...5.5.0-beta.7) (2017-10-13) (Due to a publish snafu, there is no 5.5.0-beta.6) (womp womp 👎) ### Bug Fixes - **build:** sourceMaps updated to support CJS properly again ([75f7f11](https://github.com/ReactiveX/RxJS/commit/75f7f11)), closes [#2934](https://github.com/ReactiveX/RxJS/issues/2934) - **flatMap:** reexport flatMap as alias of mergeMap ([#2920](https://github.com/ReactiveX/RxJS/issues/2920)) ([9922c02](https://github.com/ReactiveX/RxJS/commit/9922c02)) - **publish:** correct the name and republish to sync packages ([464b115](https://github.com/ReactiveX/RxJS/commit/464b115)) - **shareReplay:** no longer exporting function unnecessarily ([#2928](https://github.com/ReactiveX/RxJS/issues/2928)) ([e159578](https://github.com/ReactiveX/RxJS/commit/e159578)) - **shareReplay:** properly uses `lift` ([#2924](https://github.com/ReactiveX/RxJS/issues/2924)) ([3d9cf87](https://github.com/ReactiveX/RxJS/commit/3d9cf87)), closes [#2921](https://github.com/ReactiveX/RxJS/issues/2921) - **toPromise:** include toPromise in build output ([#2923](https://github.com/ReactiveX/RxJS/issues/2923)) ([f55bfa5](https://github.com/ReactiveX/RxJS/commit/f55bfa5)), closes [#2922](https://github.com/ReactiveX/RxJS/issues/2922) # [5.5.0-beta.5](https://github.com/ReactiveX/RxJS/compare/5.5.0-beta.4...v5.5.0-beta.5) (2017-10-06) ### Bug Fixes - **toPromise:** remove lettable version of toPromise ([031edca](https://github.com/ReactiveX/RxJS/commit/031edca)), closes [#2868](https://github.com/ReactiveX/RxJS/issues/2868) ### Features - **toPromise:** now exists as a permanent method on Observable ([2e49a5c](https://github.com/ReactiveX/RxJS/commit/2e49a5c)) # [5.5.0-beta.4](https://github.com/ReactiveX/RxJS/compare/5.5.0-beta.3...v5.5.0-beta.4) (2017-10-06) ### Bug Fixes - **publish:** fix selector typings ([#2891](https://github.com/ReactiveX/RxJS/issues/2891)) ([9ee234d](https://github.com/ReactiveX/RxJS/commit/9ee234d)), closes [#2889](https://github.com/ReactiveX/RxJS/issues/2889) - **shareReplay:** properly retains history on subscribe ([#2910](https://github.com/ReactiveX/RxJS/issues/2910)) ([accbcd0](https://github.com/ReactiveX/RxJS/commit/accbcd0)), closes [#2908](https://github.com/ReactiveX/RxJS/issues/2908) - **subscribeOn:** remove subscribeOn from reexport to support treesha… ([#2899](https://github.com/ReactiveX/RxJS/issues/2899)) ([fb51a02](https://github.com/ReactiveX/RxJS/commit/fb51a02)) # [5.5.0-beta.3](https://github.com/ReactiveX/RxJS/compare/5.5.0-beta.2...v5.5.0-beta.3) (2017-10-03) ### Bug Fixes - **build:** revert to 5.4.x build output for CJS & add configurable support for ESM ([#2878](https://github.com/ReactiveX/RxJS/issues/2878)) ([167456a](https://github.com/ReactiveX/RxJS/commit/167456a)) - **concatAll:** use higher-order lettable version of concatAll ([60c96ab](https://github.com/ReactiveX/RxJS/commit/60c96ab)) - **mergeAll:** use higher-order lettable version of mergeAll ([f0b703b](https://github.com/ReactiveX/RxJS/commit/f0b703b)) # [5.5.0-beta.2](https://github.com/ReactiveX/RxJS/compare/5.5.0-beta.1...v5.5.0-beta.2) (2017-09-27) ### Bug Fixes - **build:** make CJS references to import X from '../operators' work correctly with SystemJS ([#2874](https://github.com/ReactiveX/RxJS/issues/2874)) ([3dd4cc4](https://github.com/ReactiveX/RxJS/commit/3dd4cc4)) # [5.5.0-beta.1](https://github.com/ReactiveX/RxJS/compare/5.5.0-beta.0...v5.5.0-beta.1) (2017-09-27) ### Bug Fixes - **package:** published from a Linux machine to prevent a strange issue where the Observable directory was not showing up when installed on some Linux environments. - **build:** fix source maps by adding back sources and fixing path ([#2872](https://github.com/ReactiveX/RxJS/issues/2872)) ([daaf424](https://github.com/ReactiveX/RxJS/commit/daaf424)) - **package:** remove src directory and fix typings location ([#2866](https://github.com/ReactiveX/RxJS/issues/2866)) ([c57eea7](https://github.com/ReactiveX/RxJS/commit/c57eea7)) ### Features - **global:** export lettables as Rx.operators ([#2862](https://github.com/ReactiveX/RxJS/issues/2862)) ([ba2f586](https://github.com/ReactiveX/RxJS/commit/ba2f586)), closes [#2861](https://github.com/ReactiveX/RxJS/issues/2861) # [5.5.0-beta.0](https://github.com/ReactiveX/RxJS/compare/5.4.3...5.5.0-beta.0) (2017-09-22) **Important! Checkout the explanation of the new [lettable operators features here](doc/lettable-operators.md)** ### Bug Fixes - **package:** correct errors generated during rollup for UMD generation ([#2839](https://github.com/ReactiveX/RxJS/issues/2839)) ([124cc93](https://github.com/ReactiveX/RxJS/commit/124cc93)) - **partition:** update TypeScript signature to match docs and filter operator ([#2819](https://github.com/ReactiveX/RxJS/issues/2819)) ([755df9b](https://github.com/ReactiveX/RxJS/commit/755df9b)) - **subscribeToResult:** throw error in subscriber with inner observable ([d7bffa9](https://github.com/ReactiveX/RxJS/commit/d7bffa9)), closes [#2618](https://github.com/ReactiveX/RxJS/issues/2618) ### Features - **ajax:** Include the response on instances of AjaxError ([3f6553c](https://github.com/ReactiveX/RxJS/commit/3f6553c)) - **audit:** add higher-order lettable version of audit ([e2daefe](https://github.com/ReactiveX/RxJS/commit/e2daefe)) - **auditTime:** add higher-order lettable version of auditTime ([9e963aa](https://github.com/ReactiveX/RxJS/commit/9e963aa)) - **buffer:** add higher-order lettable version of buffer ([d8ca9de](https://github.com/ReactiveX/RxJS/commit/d8ca9de)) - **bufferCount:** add higher-order lettable version of bufferCount ([0ae2ed5](https://github.com/ReactiveX/RxJS/commit/0ae2ed5)) - **bufferTime:** add higher-order lettable version of bufferTime operator ([0377ca6](https://github.com/ReactiveX/RxJS/commit/0377ca6)) - **bufferToggle:** add higher-order lettable version of bufferToggle ([ea1c3ee](https://github.com/ReactiveX/RxJS/commit/ea1c3ee)) - **bufferWhen:** add higher-order lettable version of bufferWhen ([ec3eceb](https://github.com/ReactiveX/RxJS/commit/ec3eceb)) - **catchError:** add higher-order lettable version of `catch` ([408a2af](https://github.com/ReactiveX/RxJS/commit/408a2af)) - **combineAll:** add higher-order lettable version of combineAll ([97704b3](https://github.com/ReactiveX/RxJS/commit/97704b3)) - **combineLatest:** add higher-order lettable version of combineLatest ([b7154f2](https://github.com/ReactiveX/RxJS/commit/b7154f2)) - **concatMap:** add higher-order lettable version of concatMap ([c4125ff](https://github.com/ReactiveX/RxJS/commit/c4125ff)) - **concatMapTo:** add higher-order lettable version of concatMapTo ([0a6672e](https://github.com/ReactiveX/RxJS/commit/0a6672e)) - **count:** add higher-order lettable version of count ([caf713e](https://github.com/ReactiveX/RxJS/commit/caf713e)) - **debounce:** add higher-order lettable version of debounce ([cb8ce46](https://github.com/ReactiveX/RxJS/commit/cb8ce46)) - **debounceTime:** add higher-order lettable version of debounceTime ([df0d439](https://github.com/ReactiveX/RxJS/commit/df0d439)) - **delay:** add higher-order lettable version of delay ([7efb803](https://github.com/ReactiveX/RxJS/commit/7efb803)) - **delayWhen:** add higher-order lettable version of delayWhen ([cb91c3f](https://github.com/ReactiveX/RxJS/commit/cb91c3f)) - **dematerialize:** add higher-order lettable version of dematerialize ([b5948f9](https://github.com/ReactiveX/RxJS/commit/b5948f9)) - **distinct:** add higher-order lettable version of distinct ([0429a69](https://github.com/ReactiveX/RxJS/commit/0429a69)) - **distinctUntilChanged:** add higher-order lettable version of distinctUntilChanged ([b2725e7](https://github.com/ReactiveX/RxJS/commit/b2725e7)) - **distinctUntilKeyChanged:** add higher-order lettable version of distinctUntilKeyChanged ([9db141c](https://github.com/ReactiveX/RxJS/commit/9db141c)) - **elementAt:** add higher-order lettable version of elementAt ([b8e956b](https://github.com/ReactiveX/RxJS/commit/b8e956b)) - **every:** add higher-order lettable version of every ([13f3503](https://github.com/ReactiveX/RxJS/commit/13f3503)) - **exhaust:** add higher-order lettable version of exhaust ([b145dca](https://github.com/ReactiveX/RxJS/commit/b145dca)) - **exhaustMap:** add higher-order lettable exhaustMap ([b134e0c](https://github.com/ReactiveX/RxJS/commit/b134e0c)) - **expand:** add higher-order lettable expand ([6ec8a19](https://github.com/ReactiveX/RxJS/commit/6ec8a19)) - **filter:** add higher-order lettable version of filter ([2848556](https://github.com/ReactiveX/RxJS/commit/2848556)) - **finalize:** add higher-order lettable version of finally, called finalize ([cfeae9f](https://github.com/ReactiveX/RxJS/commit/cfeae9f)) - **find:** add higher-order lettable version of find ([ff6d5af](https://github.com/ReactiveX/RxJS/commit/ff6d5af)) - **findIndex:** add higher-order lettable findIndex ([40e680e](https://github.com/ReactiveX/RxJS/commit/40e680e)) - **first:** add higher-order lettable first ([33eac1e](https://github.com/ReactiveX/RxJS/commit/33eac1e)) - **groupBy:** add higher-order lettable groupBy ([5281229](https://github.com/ReactiveX/RxJS/commit/5281229)) - **ignoreElements:** add higher-order lettable version of ignoreElements ([68286d4](https://github.com/ReactiveX/RxJS/commit/68286d4)) - **isEmpty:** add higher-order lettable version of isEmpty ([aad1833](https://github.com/ReactiveX/RxJS/commit/aad1833)) - **last:** add higher-order lettable version of last ([bf33b97](https://github.com/ReactiveX/RxJS/commit/bf33b97)) - **lettables:** add higher-order lettable versions of concat, concatAll, mergeAll ([d7e8be7](https://github.com/ReactiveX/RxJS/commit/d7e8be7)) - **map:** add higher-order lettable map operator ([ce40b2d](https://github.com/ReactiveX/RxJS/commit/ce40b2d)) - **mapTo:** add higher-order lettable version of mapTo ([e97530f](https://github.com/ReactiveX/RxJS/commit/e97530f)) - **materialize:** add higher-order lettable materialize operator ([ce42477](https://github.com/ReactiveX/RxJS/commit/ce42477)) - **merge:** add higher-order lettable version of merge ([#2809](https://github.com/ReactiveX/RxJS/issues/2809)) ([3136403](https://github.com/ReactiveX/RxJS/commit/3136403)) - **mergeMap:** add higher-order lettable version of mergeMap ([417efde](https://github.com/ReactiveX/RxJS/commit/417efde)) - **mergeMapTo:** add higher-order lettable version of mergeMapTo ([653b47a](https://github.com/ReactiveX/RxJS/commit/653b47a)) - **mergeScan:** add higher-order lettable version of mergeScan ([fde7205](https://github.com/ReactiveX/RxJS/commit/fde7205)) - **multicast:** add higher-order lettable variant of multicast ([fb6014d](https://github.com/ReactiveX/RxJS/commit/fb6014d)) - **observeOn:** add higher-order lettable version of observeOn ([feb0f5a](https://github.com/ReactiveX/RxJS/commit/feb0f5a)) - **onErrorResumeNext:** add higher-order lettable version of onErrorResumeNext ([badec6a](https://github.com/ReactiveX/RxJS/commit/badec6a)) - **operators:** higher-order lettables of reduce, min, max and defaultIfEmpty added ([9974fc2](https://github.com/ReactiveX/RxJS/commit/9974fc2)) - **package:** rxjs distribution now supports main, module and es2015 keys in package.json ([988e1af](https://github.com/ReactiveX/RxJS/commit/988e1af)) - **pairwise:** add higher-order lettable version of pairwise ([bb21a44](https://github.com/ReactiveX/RxJS/commit/bb21a44)) - **partition:** add higher-order lettable version of partition ([595e588](https://github.com/ReactiveX/RxJS/commit/595e588)) - **pipe:** add pipe method ot Observable ([9f6312d](https://github.com/ReactiveX/RxJS/commit/9f6312d)) - **pipe:** add pipe utility function([42f9daf](https://github.com/ReactiveX/RxJS/commit/42f9daf)) - **pluck:** add higher-order lettable version of pluck ([8ab0914](https://github.com/ReactiveX/RxJS/commit/8ab0914)) - **publish:** add higher-order lettable variant of publish ([4ccf794](https://github.com/ReactiveX/RxJS/commit/4ccf794)) - **publishBehavior:** add higher-order lettable version of publishBehavior ([e911aef](https://github.com/ReactiveX/RxJS/commit/e911aef)) - **publishLast:** add higher-order lettable version of publishLast ([684728c](https://github.com/ReactiveX/RxJS/commit/684728c)) - **publishReplay:** add higher-order lettable version of publishReplay ([2958917](https://github.com/ReactiveX/RxJS/commit/2958917)) - **race:** add higher-order lettable version of race ([e646851](https://github.com/ReactiveX/RxJS/commit/e646851)) - **refCount:** add higher-order lettable version of refCount ([21fba63](https://github.com/ReactiveX/RxJS/commit/21fba63)) - **repeat:** add higher-order lettable version of repeat ([8473fe5](https://github.com/ReactiveX/RxJS/commit/8473fe5)) - **repeatWhen:** add higher-order lettable version of repeatWhen ([1d1cecd](https://github.com/ReactiveX/RxJS/commit/1d1cecd)) - **retry:** add higher-order lettable version of retry ([28e9b13](https://github.com/ReactiveX/RxJS/commit/28e9b13)) - **retryWhen:** add higher-order lettable version of retryWhen ([1290e3c](https://github.com/ReactiveX/RxJS/commit/1290e3c)) - **sample:** add higher-order lettable version of sample ([8c73e6e](https://github.com/ReactiveX/RxJS/commit/8c73e6e)) - **sampleTime:** add higher-order lettable version of sampleTime ([ba6a9ce](https://github.com/ReactiveX/RxJS/commit/ba6a9ce)) - **scan:** add higher-order lettable version of scan ([2cc5d75](https://github.com/ReactiveX/RxJS/commit/2cc5d75)) - **sequenceEqual:** add higher-order lettable version of sequenceEqual ([7cd3165](https://github.com/ReactiveX/RxJS/commit/7cd3165)) - **share:** add higher-order lettable version of share ([f10c42e](https://github.com/ReactiveX/RxJS/commit/f10c42e)) - **shareReplay:** add higher-order lettable version of shareReplay ([e8be197](https://github.com/ReactiveX/RxJS/commit/e8be197)) - **single:** add higher-order lettable version of single ([3bc050a](https://github.com/ReactiveX/RxJS/commit/3bc050a)) - **skip:** add higher-order lettable version of skip ([baed383](https://github.com/ReactiveX/RxJS/commit/baed383)) - **skipLast:** add higher-order lettable version of skipLast ([6e1ff3c](https://github.com/ReactiveX/RxJS/commit/6e1ff3c)) - **skipUntil:** add higher-order lettable version of skipUntil ([6cc2cd6](https://github.com/ReactiveX/RxJS/commit/6cc2cd6)) - **skipWhile:** add higher-order lettable version of skipWhile ([76d8ffa](https://github.com/ReactiveX/RxJS/commit/76d8ffa)) - **subscribeOn:** add higher-order lettable version of subscribeOn ([866af37](https://github.com/ReactiveX/RxJS/commit/866af37)) - **switchAll:** add higher-order lettable version of switch ([2f12572](https://github.com/ReactiveX/RxJS/commit/2f12572)) - **switchMap:** add higher-order lettable version of switchMap ([b6e5b56](https://github.com/ReactiveX/RxJS/commit/b6e5b56)) - **switchMapTo:** add higher-order lettable version of switchMapTo ([2640184](https://github.com/ReactiveX/RxJS/commit/2640184)) - **take:** add higher-order lettable version of take ([089a5a6](https://github.com/ReactiveX/RxJS/commit/089a5a6)) - **takeLast:** add higher-order lettable version of takeLast ([cd7e7dd](https://github.com/ReactiveX/RxJS/commit/cd7e7dd)) - **takeUntil:** add higher-order lettable version of takeUntil ([bb2ddaa](https://github.com/ReactiveX/RxJS/commit/bb2ddaa)) - **takeWhile:** add higher-order lettable version of takeWhile ([f86c862](https://github.com/ReactiveX/RxJS/commit/f86c862)) - **tap:** add higher-order lettable version of do ([f85c60e](https://github.com/ReactiveX/RxJS/commit/f85c60e)) - **throttle:** add higher-order lettable version of throttle ([e4dd1fd](https://github.com/ReactiveX/RxJS/commit/e4dd1fd)) - **throttleTime:** add higher-order lettable version of throttleTime ([34a592d](https://github.com/ReactiveX/RxJS/commit/34a592d)) - **timeInterval:** add higher-order lettable version of timeInterval ([fcad034](https://github.com/ReactiveX/RxJS/commit/fcad034)) - **timeout:** add higher-order lettable version of timeout ([2546750](https://github.com/ReactiveX/RxJS/commit/2546750)) - **timeoutWith:** add higher-order lettable version of timeoutWith ([bd7f5ed](https://github.com/ReactiveX/RxJS/commit/bd7f5ed)) - **timestamp:** add higher-order lettable version of timestamp ([a780bf2](https://github.com/ReactiveX/RxJS/commit/a780bf2)) - **toArray:** add higher-order lettable version of toArray ([82480cf](https://github.com/ReactiveX/RxJS/commit/82480cf)) - **toArray:** add higher-order lettable version of toArray ([a03a50c](https://github.com/ReactiveX/RxJS/commit/a03a50c)) - **toPromise:** add higher-order lettable version of toPromise ([1627da2](https://github.com/ReactiveX/RxJS/commit/1627da2)) - **window:** add higher-order lettable version of window ([9f6373e](https://github.com/ReactiveX/RxJS/commit/9f6373e)) - **windowCount:** add higher-order lettable version of windowCount ([2a9e54c](https://github.com/ReactiveX/RxJS/commit/2a9e54c)) - **windowTime:** add higher-order lettable version of windowTime ([29ffa1b](https://github.com/ReactiveX/RxJS/commit/29ffa1b)) - **windowToggle:** add higher-order lettable version of windowToggle ([81ec389](https://github.com/ReactiveX/RxJS/commit/81ec389)) - **windowWhen:** add higher-order lettable version of windowWhen ([0b73208](https://github.com/ReactiveX/RxJS/commit/0b73208)) - **withLatestFrom:** add higher-order lettable version of withLatestFrom ([509c97c](https://github.com/ReactiveX/RxJS/commit/509c97c)) - **zip:** add higher-order lettable version of zip ([8a9b9b2](https://github.com/ReactiveX/RxJS/commit/8a9b9b2)) - **zipAll:** add higher-order lettable version of zipAll ([f6bd51f](https://github.com/ReactiveX/RxJS/commit/f6bd51f)) ## [5.4.3](https://github.com/ReactiveX/RxJS/compare/5.4.2...v5.4.3) (2017-08-10) ### Bug Fixes - **compilation:** compiles under typescript 2.4.2 ([#2780](https://github.com/ReactiveX/RxJS/issues/2780)) ([d2a32f9](https://github.com/ReactiveX/RxJS/commit/d2a32f9)) - **exports:** add exports for missing static operators: generate, ([08c4196](https://github.com/ReactiveX/RxJS/commit/08c4196)) ## [5.4.2](https://github.com/ReactiveX/RxJS/compare/5.4.1...v5.4.2) (2017-07-05) ### Bug Fixes - **Notification:** Don't reference `this` from static methods. ([9f8e375](https://github.com/ReactiveX/RxJS/commit/9f8e375)) - **Subject:** lift signature is now appropriate for stricter TypeScript 2.4 checks ([#2722](https://github.com/ReactiveX/RxJS/issues/2722)) ([9804de7](https://github.com/ReactiveX/RxJS/commit/9804de7)) ## [5.4.1](https://github.com/ReactiveX/RxJS/compare/5.4.0...v5.4.1) (2017-06-14) ### Bug Fixes - **ajax:** Only set timeout & responseType if request is asynchronous ([#2486](https://github.com/ReactiveX/RxJS/issues/2486)) ([380fbcf](https://github.com/ReactiveX/RxJS/commit/380fbcf)) - **audit:** will now properly mirror source if durations are Observable.empty() ([#2595](https://github.com/ReactiveX/RxJS/issues/2595)) ([6ded82e](https://github.com/ReactiveX/RxJS/commit/6ded82e)) - **elementAt:** will now properly unsubscribe when it completes or errors ([#2501](https://github.com/ReactiveX/RxJS/issues/2501)) ([a400cab](https://github.com/ReactiveX/RxJS/commit/a400cab)) - **ErrorObservable:** will now propagate errors properly when used in a `catch` after `fromPromise`. ([#2552](https://github.com/ReactiveX/RxJS/issues/2552)) ([cf88a20](https://github.com/ReactiveX/RxJS/commit/cf88a20)) - **groupBy:** group duration notifiers will now properly unsubscribe and clean up ([#2662](https://github.com/ReactiveX/RxJS/issues/2662)) ([ab92083](https://github.com/ReactiveX/RxJS/commit/ab92083)), closes [#2660](https://github.com/ReactiveX/RxJS/issues/2660) [#2661](https://github.com/ReactiveX/RxJS/issues/2661) - **Observable:** errors thrown in observer/handlers without an operator applied will no longer be swallowed ([#2626](https://github.com/ReactiveX/RxJS/issues/2626)) ([c250afc](https://github.com/ReactiveX/RxJS/commit/c250afc)), closes [#2565](https://github.com/ReactiveX/RxJS/issues/2565) - **reduce:** type definitions overloads for TypeScript are now in proper order ([#2523](https://github.com/ReactiveX/RxJS/issues/2523)) ([ccc0647](https://github.com/ReactiveX/RxJS/commit/ccc0647)) - **Schedulers:** Fix issue where canceling an asap or animationFrame action early could throw ([#2638](https://github.com/ReactiveX/RxJS/issues/2638)) ([fc39043](https://github.com/ReactiveX/RxJS/commit/fc39043)) # [5.4.0](https://github.com/ReactiveX/RxJS/) (2017-05-09) ### Features - **shareReplay:** adds `shareReplay` variant of `publishReplay` ([#2443](https://github.com/ReactiveX/RxJS/issues/2443)) ([5a2266a](https://github.com/ReactiveX/RxJS/commit/5a2266a)) - **skipLast:** add skipLast operator ([#2316](https://github.com/ReactiveX/RxJS/issues/2316)) ([4ffbbe5](https://github.com/ReactiveX/RxJS/commit/4ffbbe5)), closes [#1404](https://github.com/ReactiveX/RxJS/issues/1404) - **TypeScript:** fromPromise accepts PromiseLike object ([#2505](https://github.com/ReactiveX/RxJS/issues/2505)) ([ade1fd5](https://github.com/ReactiveX/RxJS/commit/ade1fd5)) ## [5.3.3](https://github.com/ReactiveX/RxJS/compare/5.3.1...5.3.3) (2017-05-09) ### Bug Fixes - **delayWhen:** correctly handle synchronous duration observable ([#2589](https://github.com/ReactiveX/RxJS/issues/2589)) ([695f280](https://github.com/ReactiveX/RxJS/commit/695f280)), closes [#2587](https://github.com/ReactiveX/RxJS/issues/2587) - **race:** allow TypeScript support for array of observables other than rest param ([#2548](https://github.com/ReactiveX/RxJS/issues/2548)) ([ace553c](https://github.com/ReactiveX/RxJS/commit/ace553c)) - **Subscriber:** do not call complete with undefined value param ([#2559](https://github.com/ReactiveX/RxJS/issues/2559)) ([3d63de2](https://github.com/ReactiveX/RxJS/commit/3d63de2)) **(NOTE: 5.3.2 was a broken release and was removed)** ## [5.3.1](https://github.com/ReactiveX/RxJS/compare/5.3.0...v5.3.1) (2017-05-02) ### Bug Fixes - **AsyncAction:** rescheduling an action with the same delay before it has executed will now schedule appropriately. ([#2580](https://github.com/ReactiveX/RxJS/issues/2580)) ([281760e](https://github.com/ReactiveX/RxJS/commit/281760e)) - **closure:** make root.ts work with closure ([#2546](https://github.com/ReactiveX/RxJS/issues/2546)) ([0ecf55d](https://github.com/ReactiveX/RxJS/commit/0ecf55d)) - **tests:** add missing babel-polyfill to package.json ([b277ce9](https://github.com/ReactiveX/RxJS/commit/b277ce9)), closes [#2261](https://github.com/ReactiveX/RxJS/issues/2261) - **withLatestFrom:** change from hot to cold observable in marble test ([0c65446](https://github.com/ReactiveX/RxJS/commit/0c65446)), closes [#2526](https://github.com/ReactiveX/RxJS/issues/2526) # [5.3.0](https://github.com/ReactiveX/RxJS/compare/5.2.0...v5.3.0) (2017-04-03) ### Bug Fixes - **catch:** return type is now the union of input types ([#2478](https://github.com/ReactiveX/RxJS/issues/2478)) ([840def0](https://github.com/ReactiveX/RxJS/commit/840def0)) - **forEach:** fix a temporal dead zone issue in forEach. ([#2474](https://github.com/ReactiveX/RxJS/issues/2474)) ([e9e9801](https://github.com/ReactiveX/RxJS/commit/e9e9801)) - **multicast:** Ensure ConnectableObservables returned by multicast are state-isolated. ([aaa9e6b](https://github.com/ReactiveX/RxJS/commit/aaa9e6b)) - **reduce:** proper TypeScript signature overload ordering ([#2382](https://github.com/ReactiveX/RxJS/issues/2382)) ([f6a4951](https://github.com/ReactiveX/RxJS/commit/f6a4951)), closes [#2338](https://github.com/ReactiveX/RxJS/issues/2338) - **SafeSubscriber:** SafeSubscriber shouldn't mutate incoming Observers. ([a1778e0](https://github.com/ReactiveX/RxJS/commit/a1778e0)) - **timeout:** Cancels scheduled timeout, if no longer needed ([3e9d529](https://github.com/ReactiveX/RxJS/commit/3e9d529)), closes [#2134](https://github.com/ReactiveX/RxJS/issues/2134) [#2244](https://github.com/ReactiveX/RxJS/issues/2244) [#2355](https://github.com/ReactiveX/RxJS/issues/2355) [#2347](https://github.com/ReactiveX/RxJS/issues/2347) [#2353](https://github.com/ReactiveX/RxJS/issues/2353) [#2254](https://github.com/ReactiveX/RxJS/issues/2254) [#2372](https://github.com/ReactiveX/RxJS/issues/2372) [#1301](https://github.com/ReactiveX/RxJS/issues/1301) - **zipAll:** complete when the source is empty ([712fece](https://github.com/ReactiveX/RxJS/commit/712fece)) ### Features - **delayWhen:** add index to the selector function ([5d6291e](https://github.com/ReactiveX/RxJS/commit/5d6291e)) - **symbol exports:** symbols now also exported without `$$` prefix to work with Babel UMD exporting ([#2435](https://github.com/ReactiveX/RxJS/issues/2435)) ([747bef6](https://github.com/ReactiveX/RxJS/commit/747bef6)), closes [#2415](https://github.com/ReactiveX/RxJS/issues/2415) ### Performance Improvements - **bufferCount:** optimize bufferCount operator ([#2359](https://github.com/ReactiveX/RxJS/issues/2359)) ([28d0883](https://github.com/ReactiveX/RxJS/commit/28d0883)) ### April Fools - **smooth:** `smooth()` was never really a thing. Sorry, folks. :D # [5.2.0](https://github.com/ReactiveX/RxJS/compare/5.1.1...v5.2.0) (2017-02-21) ### Bug Fixes - **ajax:** will set `withCredentials` after `open` on XHR for IE10 ([#2332](https://github.com/ReactiveX/RxJS/issues/2332)) ([0ab1d3b](https://github.com/ReactiveX/RxJS/commit/0ab1d3b)) - **bindCallback:** emit undefined when callback is without arguments ([915a2a8](https://github.com/ReactiveX/RxJS/commit/915a2a8)) - **bindNodeCallback:** emit undefined when callback has no success arguments ([8b81fc6](https://github.com/ReactiveX/RxJS/commit/8b81fc6)), closes [#2254](https://github.com/ReactiveX/RxJS/issues/2254) - **bindNodeCallback:** errors thrown in callback will be scheduled if a scheduler is provided ([#2344](https://github.com/ReactiveX/RxJS/issues/2344)) ([82ec4f1](https://github.com/ReactiveX/RxJS/commit/82ec4f1)) - **concat:** will now return Observable when given a single object implementing Symbol.observable ([#2387](https://github.com/ReactiveX/RxJS/issues/2387)) ([f5d035a](https://github.com/ReactiveX/RxJS/commit/f5d035a)) - **ErrorObservable:** remove type constraint to error value ([2f951cd](https://github.com/ReactiveX/RxJS/commit/2f951cd)), closes [#2395](https://github.com/ReactiveX/RxJS/issues/2395) - **forkJoin:** add type signature for single observable with selector ([7983b91](https://github.com/ReactiveX/RxJS/commit/7983b91)), closes [#2347](https://github.com/ReactiveX/RxJS/issues/2347) - **merge:** return Observable when called with single lowerCaseO ([85752eb](https://github.com/ReactiveX/RxJS/commit/85752eb)) - **mergeAll:** introduce variant support for mergeMap ([656f2b3](https://github.com/ReactiveX/RxJS/commit/656f2b3)), closes [#2372](https://github.com/ReactiveX/RxJS/issues/2372) - **single:** predicate function receives indices starting at 0 ([#2396](https://github.com/ReactiveX/RxJS/issues/2396)) ([c81882f](https://github.com/ReactiveX/RxJS/commit/c81882f)) - **subscribeToResult:** accept array-like as result ([14685ba](https://github.com/ReactiveX/RxJS/commit/14685ba)) ### Features - **webSocket:** Add binaryType to config object ([86acbd1](https://github.com/ReactiveX/RxJS/commit/86acbd1)), closes [#2353](https://github.com/ReactiveX/RxJS/issues/2353) - **windowTime:** maxWindowSize parameter in windowTime operator ([381be3f](https://github.com/ReactiveX/RxJS/commit/381be3f)), closes [#1301](https://github.com/ReactiveX/RxJS/issues/1301) ## [5.1.1](https://github.com/ReactiveX/RxJS/compare/5.1.0...v5.1.1) (2017-02-13) ### Bug Fixes - **bindCallback:** input function context can now be properly set via output function ([#2319](https://github.com/ReactiveX/RxJS/issues/2319)) ([cb91c76](https://github.com/ReactiveX/RxJS/commit/cb91c76)) - **bindNodeCallback:** input function context can now be properly set via output function ([#2320](https://github.com/ReactiveX/RxJS/issues/2320)) ([3ec315d](https://github.com/ReactiveX/RxJS/commit/3ec315d)) - **Subscription:** fold ChildSubscription logic into Subscriber to prevent operators from leaking ChildSubscriptions. ([#2360](https://github.com/ReactiveX/RxJS/issues/2360)) ([22e4c17](https://github.com/ReactiveX/RxJS/commit/22e4c17)), closes [#2244](https://github.com/ReactiveX/RxJS/issues/2244) [#2355](https://github.com/ReactiveX/RxJS/issues/2355) # [5.1.0](https://github.com/ReactiveX/RxJS/compare/5.0.3...v5.1.0) (2017-02-01) ### Bug Fixes - **catch:** update the catch operator to dispose inner subscriptions if the catch subscription is di ([#2271](https://github.com/ReactiveX/RxJS/issues/2271)) ([8a1e089](https://github.com/ReactiveX/RxJS/commit/8a1e089)) - **combineLatest:** Don't mutate array of observables passed to ([#2276](https://github.com/ReactiveX/RxJS/issues/2276)) ([9b73c46](https://github.com/ReactiveX/RxJS/commit/9b73c46)) - **ISubscription:** update type definition of ISubscription::closed ([#2249](https://github.com/ReactiveX/RxJS/issues/2249)) ([0c304a2](https://github.com/ReactiveX/RxJS/commit/0c304a2)) - **Observable:** Ensure the generic type of the Observer passed to Observable's initializer function is the same. ([51a0bc1](https://github.com/ReactiveX/RxJS/commit/51a0bc1)), closes [#2166](https://github.com/ReactiveX/RxJS/issues/2166) - **Observable:** errors thrown during subscription are now properly sent down error channel ([#2313](https://github.com/ReactiveX/RxJS/issues/2313)) ([d4a9aac](https://github.com/ReactiveX/RxJS/commit/d4a9aac)), closes [#1833](https://github.com/ReactiveX/RxJS/issues/1833) - **reduce:** index will properly start at 1 if no seed is provided, to match native Array reduce behavior ([30a4ca4](https://github.com/ReactiveX/RxJS/commit/30a4ca4)), closes [#2290](https://github.com/ReactiveX/RxJS/issues/2290) - **repeatWhen:** resulting observable will wait for the source to complete, even if a hot notifier completes first. ([#2209](https://github.com/ReactiveX/RxJS/issues/2209)) ([c65a098](https://github.com/ReactiveX/RxJS/commit/c65a098)), closes [#2054](https://github.com/ReactiveX/RxJS/issues/2054) - **Subject:** ensure subject properly throws ObjectUnsubscribedError when unsubscribed then resubscribed to ([#2318](https://github.com/ReactiveX/RxJS/issues/2318)) ([41489eb](https://github.com/ReactiveX/RxJS/commit/41489eb)) - **TestScheduler:** helper methods return proper types, `HotObservable` and `ColdObservable` instead of Observable ([#2305](https://github.com/ReactiveX/RxJS/issues/2305)) ([758aae9](https://github.com/ReactiveX/RxJS/commit/758aae9)) - **windowTime:** ensure windows created when only a timespan is passed are closed and cleaned up properly. ([#2278](https://github.com/ReactiveX/RxJS/issues/2278)) ([d4533c4](https://github.com/ReactiveX/RxJS/commit/d4533c4)) ### Features - **fromEventPattern:** support optional removeHandler ([86960c2](https://github.com/ReactiveX/RxJS/commit/86960c2)) - **fromEventPattern:** support pass signal from addHandler to removeHandler ([01d0622](https://github.com/ReactiveX/RxJS/commit/01d0622)) ## [5.0.3](https://github.com/ReactiveX/RxJS/compare/5.0.2...v5.0.3) (2017-01-05) ### Bug Fixes - **observeOn:** seal memory leak involving old notifications ([9664a38](https://github.com/ReactiveX/RxJS/commit/9664a38)), closes [#2244](https://github.com/ReactiveX/RxJS/issues/2244) - **Subscription:** `add` will return Subscription that `remove`s itself when unsubscribed ([375d4a5](https://github.com/ReactiveX/RxJS/commit/375d4a5)) - **TypeScript:** interfaces that accepted `Scheduler` now accept `IScheduler` interface ([a0d28a8](https://github.com/ReactiveX/RxJS/commit/a0d28a8)) ## [5.0.2](https://github.com/ReactiveX/RxJS/compare/5.0.1...v5.0.2) (2016-12-23) ### Bug Fixes - **ajax:** upload progress is now set correctly ([#2200](https://github.com/ReactiveX/RxJS/issues/2200)) ([1a83041](https://github.com/ReactiveX/RxJS/commit/1a83041)) - **groupBy:** Fix groupBy to dispose of outer subscription. ([#2201](https://github.com/ReactiveX/RxJS/issues/2201)) ([2269618](https://github.com/ReactiveX/RxJS/commit/2269618)) ## [5.0.1](https://github.com/ReactiveX/RxJS/compare/5.0.0...v5.0.1) (2016-12-13) ### Bug Fixes - **TypeScript:** pin to TypeScript 2.0.x, fix errors with Error subclassing ([300504c](https://github.com/ReactiveX/RxJS/commit/300504c)) # [5.0.0](https://github.com/ReactiveX/RxJS/compare/5.0.0-rc.5...v5.0.0) (2016-12-13) ### Bug Fixes - **race:** unsubscribe raced observables with immediate scheduler ([#2158](https://github.com/ReactiveX/RxJS/issues/2158)) ([7dd533b](https://github.com/ReactiveX/RxJS/commit/7dd533b)) - **SubscribeOnObservable:** Add the source subscription to the action disposable so the source will ([64e3815](https://github.com/ReactiveX/RxJS/commit/64e3815)) # [5.0.0-rc.5](https://github.com/ReactiveX/RxJS/compare/5.0.0-rc.4...v5.0.0-rc.5) (2016-12-07) ### Bug Fixes - **AjaxObservable:** catch XHR send failures to observer ([#2159](https://github.com/ReactiveX/RxJS/issues/2159)) ([128fb9c](https://github.com/ReactiveX/RxJS/commit/128fb9c)) - **distinctKey:** Removed accidental leftover reference of `distinctKey` ([9fd8096](https://github.com/ReactiveX/RxJS/commit/9fd8096)), closes [#2161](https://github.com/ReactiveX/RxJS/issues/2161) - **errors:** Better error message when you return non-observable things, ([#2152](https://github.com/ReactiveX/RxJS/issues/2152)) ([86a909c](https://github.com/ReactiveX/RxJS/commit/86a909c)), closes [#215](https://github.com/ReactiveX/RxJS/issues/215) - **event:** uses `Object.prototype.toString.call` on objects ([#2143](https://github.com/ReactiveX/RxJS/issues/2143)) ([e036e79](https://github.com/ReactiveX/RxJS/commit/e036e79)) - **typings:** type guard support for `last`, `first`, `find` and `filter`. ([5f2e849](https://github.com/ReactiveX/RxJS/commit/5f2e849)) ### Features - **timeout:** remove `errorToSend` argument, always throw TimeoutError ([#2172](https://github.com/ReactiveX/RxJS/issues/2172)) ([98ea3d2](https://github.com/ReactiveX/RxJS/commit/98ea3d2)) ### BREAKING CHANGES - timeout: `timeout` no longer accepts the `errorToSend` argument related #2141 # [5.0.0-rc.4](https://github.com/ReactiveX/RxJS/compare/5.0.0-rc.3...v5.0.0-rc.4) (2016-11-19) ### Bug Fixes - **partition:** handles `thisArg` as expected ([#2138](https://github.com/ReactiveX/RxJS/issues/2138)) ([6cf7296](https://github.com/ReactiveX/RxJS/commit/6cf7296)) - **timeout:** throw traceable TimeoutError ([#2132](https://github.com/ReactiveX/RxJS/issues/2132)) ([9ebc46b](https://github.com/ReactiveX/RxJS/commit/9ebc46b)) # [5.0.0-rc.3](https://github.com/ReactiveX/RxJS/compare/5.0.0-rc.2...v5.0.0-rc.3) (2016-11-15) ### Bug Fixes - **typings:** You no longer have to install the type definition for chai ([#2112](https://github.com/ReactiveX/rxjs/issues/2112)) ### Features - **filter:** support type guards without casting ([68b7922](https://github.com/ReactiveX/RxJS/commit/68b7922)) - **find:** support type guards without casting ([9058bf6](https://github.com/ReactiveX/RxJS/commit/9058bf6)) - **first:** support type guards without casting ([3aa1988](https://github.com/ReactiveX/RxJS/commit/3aa1988)) - **last:** support type guards without casting ([07ecd5e](https://github.com/ReactiveX/RxJS/commit/07ecd5e)) # [5.0.0-rc.2](https://github.com/ReactiveX/RxJS/compare/5.0.0-rc.1...v5.0.0-rc.2) (2016-11-05) ### Bug Fixes - **AjaxObservable:** remove needless type param R from AjaxObservable.getJSON() ([#2069](https://github.com/ReactiveX/RxJS/issues/2069)) ([0c3d4a4](https://github.com/ReactiveX/RxJS/commit/0c3d4a4)) - **bufferCount:** will behave as expected when `startBufferEvery` is less than `bufferSize` ([#2076](https://github.com/ReactiveX/RxJS/issues/2076)) ([d13dbb4](https://github.com/ReactiveX/RxJS/commit/d13dbb4)), closes [#2062](https://github.com/ReactiveX/RxJS/issues/2062) - **build_docs:** fix doc building ([#1974](https://github.com/ReactiveX/RxJS/issues/1974)) ([1bbbe8b](https://github.com/ReactiveX/RxJS/commit/1bbbe8b)) - **ErrorObservable:** Add generic error type for ErrorObservable. ([#2071](https://github.com/ReactiveX/RxJS/issues/2071)) ([9df86ba](https://github.com/ReactiveX/RxJS/commit/9df86ba)) - **first:** will now only emit one value in recursive cases ([#2100](https://github.com/ReactiveX/RxJS/issues/2100)) ([a047e7a](https://github.com/ReactiveX/RxJS/commit/a047e7a)), closes [#2098](https://github.com/ReactiveX/RxJS/issues/2098) - **fromEvent:** Throw if event target is invalid ([#2107](https://github.com/ReactiveX/RxJS/issues/2107)) ([147ce3e](https://github.com/ReactiveX/RxJS/commit/147ce3e)) - **IteratorObservable:** clarify the return type of IteratorObservable.create() ([#2070](https://github.com/ReactiveX/RxJS/issues/2070)) ([4f0f865](https://github.com/ReactiveX/RxJS/commit/4f0f865)) - **IteratorObservable:** Observables `from` generators will now finalize when subscription ends ([22d286a](https://github.com/ReactiveX/RxJS/commit/22d286a)), closes [#1938](https://github.com/ReactiveX/RxJS/issues/1938) - **multicast:** fix a bug that caused multicast to omit messages after termination ([#2021](https://github.com/ReactiveX/RxJS/issues/2021)) ([44fbc14](https://github.com/ReactiveX/RxJS/commit/44fbc14)) - **Notification:** `materialize` output will now match Rx4 ([#2106](https://github.com/ReactiveX/RxJS/issues/2106)) ([c83bab9](https://github.com/ReactiveX/RxJS/commit/c83bab9)), closes [#2105](https://github.com/ReactiveX/RxJS/issues/2105) - **Object.assign:** stop polyfilling Object assign ([#2080](https://github.com/ReactiveX/RxJS/issues/2080)) ([b5f8ab3](https://github.com/ReactiveX/RxJS/commit/b5f8ab3)) - **Observable/Ajax:** mount properties to origin readystatechange fn ([#2025](https://github.com/ReactiveX/RxJS/issues/2025)) ([76a9abb](https://github.com/ReactiveX/RxJS/commit/76a9abb)) - **operator/do:** fix typings ([9a40297](https://github.com/ReactiveX/RxJS/commit/9a40297)) - **reduce/scan:** both scan/reduce operators now accepts `undefined` itself as a valid seed ([#2050](https://github.com/ReactiveX/RxJS/issues/2050)) ([fee7585](https://github.com/ReactiveX/RxJS/commit/fee7585)), closes [#2047](https://github.com/ReactiveX/RxJS/issues/2047) - **ReplaySubject:** observer now subscribed prior to running subscription function ([#2046](https://github.com/ReactiveX/RxJS/issues/2046)) ([fea08e9](https://github.com/ReactiveX/RxJS/commit/fea08e9)), closes [#2044](https://github.com/ReactiveX/RxJS/issues/2044) - **sample:** source is now subscribed to before the notifier ([ffe99e8](https://github.com/ReactiveX/RxJS/commit/ffe99e8)), closes [#2075](https://github.com/ReactiveX/RxJS/issues/2075) - **Symbol.iterator:** will not polyfill Symbol iterator unless Symbol exists ([#2082](https://github.com/ReactiveX/RxJS/issues/2082)) ([1138c99](https://github.com/ReactiveX/RxJS/commit/1138c99)) - **typings:** fixed Subject.lift to have the same shape as Observable.lift ([b07f597](https://github.com/ReactiveX/RxJS/commit/b07f597)) - **WebSocketSubject.prototype.multiplex:** no longer nulls out socket after first unsubscribe ([#2039](https://github.com/ReactiveX/RxJS/issues/2039)) ([a5e9cfe](https://github.com/ReactiveX/RxJS/commit/a5e9cfe)), closes [#2037](https://github.com/ReactiveX/RxJS/issues/2037) ### Features - **distinct:** remove `distinctKey`, `distinct` signature change and perf improvements ([#2049](https://github.com/ReactiveX/RxJS/issues/2049)) ([89612b2](https://github.com/ReactiveX/RxJS/commit/89612b2)), closes [#2009](https://github.com/ReactiveX/RxJS/issues/2009) - **groupBy:** Adds subjectSelector argument to groupBy ([#2023](https://github.com/ReactiveX/RxJS/issues/2023)) ([f94ceb9](https://github.com/ReactiveX/RxJS/commit/f94ceb9)) - **typescript:** remove dependency to 3rd party es2015 definition ([#2027](https://github.com/ReactiveX/RxJS/issues/2027)) ([4c31974](https://github.com/ReactiveX/RxJS/commit/4c31974)), closes [#2016](https://github.com/ReactiveX/RxJS/issues/2016) ### BREAKING CHANGES - Notification: `Notification.prototype.exception` is now `Notification.prototype.error` to match Rx4 semantics - Symbol.iterator: RxJS will no longer polyfill `Symbol.iterator` if `Symbol` does not exist. This may break code that inadvertently relies on this behavior - Object.assign: RxJS will no longer polyfill `Object.assign`. It does not require `Object.assign` to function, however, your code may be inadvertently relying on this polyfill. - AjaxObservable: Observable.ajax.getJSON() now only supports a single type parameter, `getJSON(url: string, headers?: Object): Observable`. The extra type parameter it accepted previously was superfluous. - distinct: `distinctKey` has been removed. Use `distinct` - distinct: `distinct` operator has changed, first argument is an optional `keySelector`. The custom `compare` function is no longer supported. # [5.0.0-rc.1](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.12...v5.0.0-rc.1) (2016-10-11) ### Bug Fixes - **AjaxObservable:** Fix for [#1921](https://github.com/ReactiveX/RxJS/issues/1921) exposed AjaxObservable unsubscription error calling xhr.abort(). ([4d23f87](https://github.com/ReactiveX/RxJS/commit/4d23f87)) - **AnonymousSubject:** is now exposed on Rx namespace ([0a6f049](https://github.com/ReactiveX/RxJS/commit/0a6f049)), closes [#2002](https://github.com/ReactiveX/RxJS/issues/2002) - **bufferTime:** no errors with take after bufferTime with maxBufferSize ([ecec640](https://github.com/ReactiveX/RxJS/commit/ecec640)), closes [#1944](https://github.com/ReactiveX/RxJS/issues/1944) - **docs:** Fix esdoc for Observable.merge spread argument ([b794e9b](https://github.com/ReactiveX/RxJS/commit/b794e9b)) - **Observer:** fix Observable#subscribe() signature to suggest correct usable ([459d2a2](https://github.com/ReactiveX/RxJS/commit/459d2a2)) - **operator:** Fix take to complete when the source is re-entrant. ([86615cb](https://github.com/ReactiveX/RxJS/commit/86615cb)) - **root:** find global context (window/self/global) in a more safe way ([a098132](https://github.com/ReactiveX/RxJS/commit/a098132)), closes [#1930](https://github.com/ReactiveX/RxJS/issues/1930) - **schedulers:** Queue, Asap, and AnimationFrame Schedulers should be Async if delay > 0 ([d5c682c](https://github.com/ReactiveX/RxJS/commit/d5c682c)) - **util/toSubscriber:** Supplies the Subscriber constructor with emptyObserver as destination if no ([8e7e4e3](https://github.com/ReactiveX/RxJS/commit/8e7e4e3)) - **WebSocketSubject:** ensure all internal state properly reset when socket is nulled out ([62d242e](https://github.com/ReactiveX/RxJS/commit/62d242e)), closes [#1863](https://github.com/ReactiveX/RxJS/issues/1863) ### Features - **cache:** remove `cache` operator ([1b23ace](https://github.com/ReactiveX/RxJS/commit/1b23ace)) - **ES2015:** stop publishing `rxjs-es`, ES2015 output no longer included in `@reactivex/rxjs` package under `/dist/es6` ([6be9968](https://github.com/ReactiveX/RxJS/commit/6be9968)), closes [#1671](https://github.com/ReactiveX/RxJS/issues/1671) - **filter:** Observable.filter() can take type guard as the predicate function ([d62fbf0](https://github.com/ReactiveX/RxJS/commit/d62fbf0)) - **find:** Observable.find() can take type guard as the predicate function ([b952718](https://github.com/ReactiveX/RxJS/commit/b952718)) - **first:** Observable.first() can take type guard as the predicate function ([f99ca49](https://github.com/ReactiveX/RxJS/commit/f99ca49)) - **last:** Observable.last() can take type guard as the predicate function ([76a8a57](https://github.com/ReactiveX/RxJS/commit/76a8a57)) - **operators:** Use lift in the operators that don't currently use lift. ([68af9ef](https://github.com/ReactiveX/RxJS/commit/68af9ef)) - **TypeScript:** update TypeScript to v2.0 ([3478b0b](https://github.com/ReactiveX/RxJS/commit/3478b0b)) ### BREAKING CHANGES - **cache:** The .cache() operator has been removed, pending further discussion ([1b23ace](https://github.com/ReactiveX/RxJS/commit/1b23ace)) - ES2015: `rxjs-es` is no longer being published - ES2015: `@reactivex/rxjs` no longer has `/dist/es6` output related #2016 related #1992 - package.json: TypeScript definitions are now for TS 2.0 and higher Even if we use getter for class, they are marked with `readonly` properties in d.ts. - operators: Removes MulticastObservable subclass in favor of a MulticastOperator. # [5.0.0-beta.12](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.11...v5.0.0-beta.12) (2016-09-09) ### Bug Fixes - **ajaxObservable:** remove implicit dependency to map operator patch ([1744ae9](https://github.com/ReactiveX/RxJS/commit/1744ae9)), closes [#1874](https://github.com/ReactiveX/RxJS/issues/1874) - **AjaxObservable:** return null value from JSON.Parse (#1904) ([6ba374e](https://github.com/ReactiveX/RxJS/commit/6ba374e)) - **catch:** removed unneeded overload for catch ([dd0e586](https://github.com/ReactiveX/RxJS/commit/dd0e586)) - **max:** do not return comparer values ([f454e93](https://github.com/ReactiveX/RxJS/commit/f454e93)), closes [#1892](https://github.com/ReactiveX/RxJS/issues/1892) - **min:** do not return comparer values ([222fd17](https://github.com/ReactiveX/RxJS/commit/222fd17)), closes [#1892](https://github.com/ReactiveX/RxJS/issues/1892) - **operators:** export reserved name operators on prototype ([34c39dd](https://github.com/ReactiveX/RxJS/commit/34c39dd)), closes [#1924](https://github.com/ReactiveX/RxJS/issues/1924) - **VirtualTimeScheduler:** remove default maxFrame limit ([1de86f1](https://github.com/ReactiveX/RxJS/commit/1de86f1)), closes [#1889](https://github.com/ReactiveX/RxJS/issues/1889) - **WebSocketSubject:** pass constructor errors onto observable ([49c7d67](https://github.com/ReactiveX/RxJS/commit/49c7d67)) ### Features - **operator:** Add repeatWhen operator ([c288d88](https://github.com/ReactiveX/RxJS/commit/c288d88)) - **sequenceEqual:** adds sequenceEqual operator ([3c30293](https://github.com/ReactiveX/RxJS/commit/3c30293)), closes [#1882](https://github.com/ReactiveX/RxJS/issues/1882) # [5.0.0-beta.11](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.10...v5.0.0-beta.11) (2016-08-09) ### Bug Fixes - **ajaxObservable:** only set default Content-Type header when no body is sent (#1830) ([5a895e8](https://github.com/ReactiveX/RxJS/commit/5a895e8)) - **AjaxObservable:** drop resultSelector support in ajax method ([7a77437](https://github.com/ReactiveX/RxJS/commit/7a77437)), closes [#1783](https://github.com/ReactiveX/RxJS/issues/1783) - **AsyncSubject:** do not allow change value after complete ([801f282](https://github.com/ReactiveX/RxJS/commit/801f282)), closes [#1800](https://github.com/ReactiveX/RxJS/issues/1800) - **BoundNodeCallbackObservable:** cast to `any` to access to private field in `source` ([54f342f](https://github.com/ReactiveX/RxJS/commit/54f342f)) - **catch:** accept selector returns ObservableInput ([e55c62d](https://github.com/ReactiveX/RxJS/commit/e55c62d)), closes [#1857](https://github.com/ReactiveX/RxJS/issues/1857) - **combineLatest:** emit unique array instances with the default projection ([2e30fd1](https://github.com/ReactiveX/RxJS/commit/2e30fd1)) - **Observable.from:** standardise arguments (remove map/context) ([aa30af2](https://github.com/ReactiveX/RxJS/commit/aa30af2)) - **schedulers:** fix asap and animationFrame schedulers to execute across async boundaries. (#182 ([548ec2a](https://github.com/ReactiveX/RxJS/commit/548ec2a)), closes [(#1820](https://github.com/(/issues/1820) [#1814](https://github.com/ReactiveX/RxJS/issues/1814) - **subscribeToResult:** update subscription to iterables ([5d6339a](https://github.com/ReactiveX/RxJS/commit/5d6339a)) - **WebSocketSubject:** prevent early close (#1831) ([848a527](https://github.com/ReactiveX/RxJS/commit/848a527)), closes [(#1831](https://github.com/(/issues/1831) ### Features - **fromEvent:** Pass through event listener options (#1845) ([8f0dc01](https://github.com/ReactiveX/RxJS/commit/8f0dc01)) - **PairsObservable:** add PairsObservable creation method ([26bafff](https://github.com/ReactiveX/RxJS/commit/26bafff)), closes [#1804](https://github.com/ReactiveX/RxJS/issues/1804) ### BREAKING CHANGES - Observable.from: - Observable.from no longer supports the optional map function and associated context argument. This change has been reflected in the related constructors and their properties have been standardised. - AjaxObservable: ajax.\*() method no longer support resultSelector, encourage to use `map` instead # [5.0.0-beta.10](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.9...v5.0.0-beta.10) (2016-07-06) ### Bug Fixes - **AjaxObservable:** ignore content-type for formdata (#1746) ([43d05e7](https://github.com/ReactiveX/RxJS/commit/43d05e7)) - **AjaxObservable:** support withCredentials for CORS request ([8084572](https://github.com/ReactiveX/RxJS/commit/8084572)), closes [#1732](https://github.com/ReactiveX/RxJS/issues/1732) [#1711](https://github.com/ReactiveX/RxJS/issues/1711) - **babel:** fix an issue where babel could not compile `Scheduler.async` (#1807) ([12c5c74](https://github.com/ReactiveX/RxJS/commit/12c5c74)), closes [(#1807](https://github.com/(/issues/1807) [#1806](https://github.com/ReactiveX/RxJS/issues/1806) - **bufferTime:** handle closing context when synchronously unsubscribed ([4ce4433](https://github.com/ReactiveX/RxJS/commit/4ce4433)), closes [#1763](https://github.com/ReactiveX/RxJS/issues/1763) - **multicast:** Fixes multicast with selector to create a new source connection per subscriber. ([c3ac852](https://github.com/ReactiveX/RxJS/commit/c3ac852)), closes [(#1774](https://github.com/(/issues/1774) - **Subject:** allow optional next value in type definition ([3e0c6d9](https://github.com/ReactiveX/RxJS/commit/3e0c6d9)), closes [#1728](https://github.com/ReactiveX/RxJS/issues/1728) - **WebSocketSubject:** respect WebSocketCtor, support source/destination arguments in constructor. (#179 ([cd8cdd0](https://github.com/ReactiveX/RxJS/commit/cd8cdd0)), closes [#1745](https://github.com/ReactiveX/RxJS/issues/1745) [#1784](https://github.com/ReactiveX/RxJS/issues/1784) # [5.0.0-beta.9](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.8...v5.0.0-beta.9) (2016-06-14) ### Bug Fixes - **cache:** get correct caching behavior (#1765) ([cb0b806](https://github.com/ReactiveX/RxJS/commit/cb0b806)), closes [#1628](https://github.com/ReactiveX/RxJS/issues/1628) - **ConnectableObservable:** fix ConnectableObservable connection handling issue ([41ce80c](https://github.com/ReactiveX/RxJS/commit/41ce80c)) - **typings:** make HotObservable.\_subscribe protected ([1c3d6ea](https://github.com/ReactiveX/RxJS/commit/1c3d6ea)) - **WebSocketSubject:** WebSocketSubject will now chain operators properly (#1752) ([bf54db4](https://github.com/ReactiveX/RxJS/commit/bf54db4)), closes [#1745](https://github.com/ReactiveX/RxJS/issues/1745) - **window:** don't track internal window subjects as subscriptions. ([f3357b9](https://github.com/ReactiveX/RxJS/commit/f3357b9)) ### Performance Improvements - **fromEventPattern:** ~3x improvement in speed ([3dc1c00](https://github.com/ReactiveX/RxJS/commit/3dc1c00)) # [5.0.0-beta.8](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.7...v5.0.0-beta.8) (2016-05-22) ### Bug Fixes - **AnonymousSubject:** allow anonymous observers as destination ([0e2c28b](https://github.com/ReactiveX/RxJS/commit/0e2c28b)) - **combineLatest:** rxjs/observable/combineLatest is now properly exported ([21fab73](https://github.com/ReactiveX/RxJS/commit/21fab73)), closes [#1722](https://github.com/ReactiveX/RxJS/issues/1722) - **ConnectableObservable:** fix race conditions in ConnectableObservable and refCount. ([d1412bc](https://github.com/ReactiveX/RxJS/commit/d1412bc)) - **Rx:** remove kitchenSink and DOM, let Rx export all ([f5090b4](https://github.com/ReactiveX/RxJS/commit/f5090b4)), closes [#1650](https://github.com/ReactiveX/RxJS/issues/1650) - **ScalarObservable:** set \_isScalar to false when initialized with a scheduler ([5037b3a](https://github.com/ReactiveX/RxJS/commit/5037b3a)) - **Subject:** correct Subject behaviors to be more like Rx4 ([ba9ef2b](https://github.com/ReactiveX/RxJS/commit/ba9ef2b)) - **subscriptions:** fixes bug that tracked subscriber subscriptions twice. ([29ff794](https://github.com/ReactiveX/RxJS/commit/29ff794)) ### Features - **bufferTime:** add `maxBufferSize` optional argument ([cf45540](https://github.com/ReactiveX/RxJS/commit/cf45540)), closes [#1295](https://github.com/ReactiveX/RxJS/issues/1295) - **multicast:** subjectfactory allows selectors ([32fa3a4](https://github.com/ReactiveX/RxJS/commit/32fa3a4)) - **onErrorResumeNext:** add onErrorResumeNext operator ([51e022b](https://github.com/ReactiveX/RxJS/commit/51e022b)), closes [#1665](https://github.com/ReactiveX/RxJS/issues/1665) - **publish:** support optional selectors ([0e5991d](https://github.com/ReactiveX/RxJS/commit/0e5991d)), closes [#1629](https://github.com/ReactiveX/RxJS/issues/1629) ### Performance Improvements - **combineLatest:** avoid splice and indexOf ([33599cd](https://github.com/ReactiveX/RxJS/commit/33599cd)) ### BREAKING CHANGES - Subject: Subjects no longer duck-type as Subscriptions - Subject: Subjects will no longer throw when re-subscribed to if they are not unsubscribed - Subject: Subjects no longer automatically unsubscribe when completed or errored BREAKING CHANGE: Minor scheduling changes to groupBy to ensure proper emission ordering - Rx: `Rx.kitchenSink` and `Rx.DOM` are removed, `Rx` export everything. # [5.0.0-beta.7](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.6...v5.0.0-beta.7) (2016-04-27) ### Bug Fixes - **race:** handle observables completes immediately ([abac3d1](https://github.com/ReactiveX/RxJS/commit/abac3d1)), closes [#1615](https://github.com/ReactiveX/RxJS/issues/1615) - **scan:** accumulator passes current index ([a3ec896](https://github.com/ReactiveX/RxJS/commit/a3ec896)), closes [#1614](https://github.com/ReactiveX/RxJS/issues/1614) ### Features - **Observable.generate:** add generate static creation method ([c03434c](https://github.com/ReactiveX/RxJS/commit/c03434c)) # [5.0.0-beta.6](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.5...v5.0.0-beta.6) (2016-04-12) ### Bug Fixes - **AjaxObservable:** support json responseType on IE ([bba13d8](https://github.com/ReactiveX/RxJS/commit/bba13d8)), closes [#1381](https://github.com/ReactiveX/RxJS/issues/1381) - **bufferToggle:** accepts closing selector returns promise ([b1c575c](https://github.com/ReactiveX/RxJS/commit/b1c575c)) - **bufferToggle:** accepts promise as openings ([3d22c7a](https://github.com/ReactiveX/RxJS/commit/3d22c7a)) - **bufferToggle:** handle closingSelector completes immediately ([02239fb](https://github.com/ReactiveX/RxJS/commit/02239fb)) - **typings:** explicitly export typings for arguments to functions that destructure configuration objects ([ef305af](https://github.com/ReactiveX/RxJS/commit/ef305af)) ### Features - **UnsubscriptionError:** add messages from inner errors to output message ([dd01279](https://github.com/ReactiveX/RxJS/commit/dd01279)), closes [#1590](https://github.com/ReactiveX/RxJS/issues/1590) ### Performance Improvements - **DeferSubscriber:** split up 'tryDefer()' into a method to call a factory function. ([566f46b](https://github.com/ReactiveX/RxJS/commit/566f46b)) # [5.0.0-beta.5](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.4...v5.0.0-beta.5) (2016-04-05) ### Bug Fixes - **take:** make 'take' unsubscribe when it reaches the total ([9858aa3](https://github.com/ReactiveX/RxJS/commit/9858aa3)) ### BREAKING CHANGES - Operator: `Operator.prototype.call` has been refactored to include both the destination Subscriber, and the source Observable the Operator is now responsible for describing it's own subscription process. ([26423f4](https://github.com/ReactiveX/rxjs/pull/1570/commits/26423f4)) # [5.0.0-beta.4](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.3...v5.0.0-beta.4) (2016-03-29) ### Bug Fixes - **AjaxObservable:** enhance compatibility ([0ac7e1e](https://github.com/ReactiveX/RxJS/commit/0ac7e1e)) - **Observable.if:** accept promise as source ([147166e](https://github.com/ReactiveX/RxJS/commit/147166e)) - **mergeMap:** allow concurrent to be set as the second argument for mergeMap and mergeMapTo ([c003468](https://github.com/ReactiveX/RxJS/commit/c003468)) - **observable:** ensure the subscriber chain is complete before calling this.\_subscribe ([1631224](https://github.com/ReactiveX/RxJS/commit/1631224)) - **Symbol:** fixed issue where \$\$observable is not defined ([e66b2d8](https://github.com/ReactiveX/RxJS/commit/e66b2d8)) - **Observable.using:** accepts factory returns promise ([f8d7d1b](https://github.com/ReactiveX/RxJS/commit/f8d7d1b)) - **windowToggle:** handle closingSelector completes immediately ([c755587](https://github.com/ReactiveX/RxJS/commit/c755587)), closes [#1487](https://github.com/ReactiveX/RxJS/issues/1487) ### Features - **ajax:** add FormData support in AjaxObservable and add percent encoding for parameters ([1f6119c](https://github.com/ReactiveX/RxJS/commit/1f6119c)) - **Subscription:** `add()` now returns a Subscription reference ([a3f4552](https://github.com/ReactiveX/RxJS/commit/a3f4552)) - **timestamp:** add timestamp operator ([80b1646](https://github.com/ReactiveX/RxJS/commit/80b1646)), closes [#1515](https://github.com/ReactiveX/RxJS/issues/1515) ### Performance Improvements - **forkJoin:** improve forkJoin perf slightly by removing unnecessary context tracking ([280b985](https://github.com/ReactiveX/RxJS/commit/280b985)) ### BREAKING CHANGES - Observable: `Observable.fromArray` was removed since it's deprecated on RxJS 4. You should use `Observable.from` instead. # [5.0.0-beta.3](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.2...v5.0.0-beta.3) (2016-03-21) ### Bug Fixes - **AjaxObservable:** update type definition for AjaxObservable ([3f5c269](https://github.com/ReactiveX/RxJS/commit/3f5c269)), closes [#1382](https://github.com/ReactiveX/RxJS/issues/1382) - **deferObservable:** accepts factory returns promise ([0cb44e1](https://github.com/ReactiveX/RxJS/commit/0cb44e1)) - **do:** fix do operator to invoke observer message handlers in the right context. ([67a2f25](https://github.com/ReactiveX/RxJS/commit/67a2f25)) - **exhaustMap:** remove innersubscription when it completes ([7ca0859](https://github.com/ReactiveX/RxJS/commit/7ca0859)) - **forEach:** ensure that teardown logic is called when nextHandler throws ([c50f528](https://github.com/ReactiveX/RxJS/commit/c50f528)), closes [#1411](https://github.com/ReactiveX/RxJS/issues/1411) - **forkJoin:** accepts observables emitting null or undefined ([6279d6b](https://github.com/ReactiveX/RxJS/commit/6279d6b)), closes [#1362](https://github.com/ReactiveX/RxJS/issues/1362) - **forkJoin:** dispose the inner subscriptions when the outer subscription is disposed ([c7bf30c](https://github.com/ReactiveX/RxJS/commit/c7bf30c)) - **FutureAction:** add support for periodic scheduling with setInterval instead of setTimeout ([c4f5408](https://github.com/ReactiveX/RxJS/commit/c4f5408)) - **Observable:** introduce Subscribable interface that will be used instead of Observable in input ([2256e7b](https://github.com/ReactiveX/RxJS/commit/2256e7b)) - **Observable.prototype.forEach:** removed thisArg to match es-observable spec ([d5f1bcd](https://github.com/ReactiveX/RxJS/commit/d5f1bcd)) - **package.json:** install typings only after packages are installed ([a48d796](https://github.com/ReactiveX/RxJS/commit/a48d796)) - **Schedulers:** ensure schedulers can be reused after error in execution ([202b79a](https://github.com/ReactiveX/RxJS/commit/202b79a)) - **takeLast:** fix takeLast behavior to emit correct order ([73eb658](https://github.com/ReactiveX/RxJS/commit/73eb658)), closes [#1407](https://github.com/ReactiveX/RxJS/issues/1407) - **typings:** set map function parameter for Observable.from as optional ([efa4dc3](https://github.com/ReactiveX/RxJS/commit/efa4dc3)) ### Features - **AsyncScheduler:** add AsyncScheduler implementation ([4486c1f](https://github.com/ReactiveX/RxJS/commit/4486c1f)) - **if:** add static Observable.if creation operator. ([f7ff7ec](https://github.com/ReactiveX/RxJS/commit/f7ff7ec)) - **let:** adds the let operator to Rx.KitchenSink ([dca6504](https://github.com/ReactiveX/RxJS/commit/dca6504)) - **using:** add static Observable.using creation operator. ([6c76593](https://github.com/ReactiveX/RxJS/commit/6c76593)) ### BREAKING CHANGES - Observable.prototype.forEach: thisArg removed to match es-observable spec # [5.0.0-beta.2](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.1...v5.0.0-beta.2) (2016-02-10) ### Bug Fixes - **ajax:** fixes error in Chrome accessing responseText when responseType isn't text. ([f3e2f73](https://github.com/ReactiveX/RxJS/commit/f3e2f73)) - **benchpress:** fix issues with benchmarks ([16894bb](https://github.com/ReactiveX/RxJS/commit/16894bb)) - **every:** remove eager predicate calls ([74c2c44](https://github.com/ReactiveX/RxJS/commit/74c2c44)) - **forkJoin:** fix forkJoin to complete if sources Array is empty. ([412b13b](https://github.com/ReactiveX/RxJS/commit/412b13b)) - **groupBy:** does not emit on unsubscribed group ([6d08705](https://github.com/ReactiveX/RxJS/commit/6d08705)) - **groupBy:** fix groupBy to use lift(), supports composability ([815cfae](https://github.com/ReactiveX/RxJS/commit/815cfae)), closes [#1085](https://github.com/ReactiveX/RxJS/issues/1085) - **merge/concat:** passed scalar observables will now complete properly ([c01b92f](https://github.com/ReactiveX/RxJS/commit/c01b92f)), closes [#1150](https://github.com/ReactiveX/RxJS/issues/1150) - **MergeMapSubscriber:** clarify type definitions for MergeMapSubscriber's members ([4ee5f02](https://github.com/ReactiveX/RxJS/commit/4ee5f02)) - **Observable.forEach:** errors thrown in nextHandler reject returned promise ([c5ead88](https://github.com/ReactiveX/RxJS/commit/c5ead88)), closes [#1184](https://github.com/ReactiveX/RxJS/issues/1184) - **Observer:** fix typing to allow observation via partial observables with PartialObservable and lift ([603c9eb](https://github.com/ReactiveX/RxJS/commit/603c9eb)) - **windowTime:** does not emit on unsubscribed window ([595f4ef](https://github.com/ReactiveX/RxJS/commit/595f4ef)) ### Features - **cache:** add cache operator ([4308a04](https://github.com/ReactiveX/RxJS/commit/4308a04)) - **delayWhen:** add delayWhen operator ([17122f9](https://github.com/ReactiveX/RxJS/commit/17122f9)) - **distinct:** add distinct operator ([94a034d](https://github.com/ReactiveX/RxJS/commit/94a034d)) - **distinctKey:** add distinctKey operator ([fe4d57f](https://github.com/ReactiveX/RxJS/commit/fe4d57f)) - **from:** allow Observable.from to handle array-like objects ([7245005](https://github.com/ReactiveX/RxJS/commit/7245005)) - **MapPolyfill:** implement clear interface ([e3fbd05](https://github.com/ReactiveX/RxJS/commit/e3fbd05)) - **operator:** adds inspect and inspectTime operators ([54f957b](https://github.com/ReactiveX/RxJS/commit/54f957b)) - **OuterSubscriber:** notifyNext passes innersubscriber when next emits ([1df8928](https://github.com/ReactiveX/RxJS/commit/1df8928)), closes [#1250](https://github.com/ReactiveX/RxJS/issues/1250) - **Subject:** implement asObservable ([aca3dd0](https://github.com/ReactiveX/RxJS/commit/aca3dd0)), closes [#1108](https://github.com/ReactiveX/RxJS/issues/1108) - **takeLast:** adds takeLast operator. ([3583cd3](https://github.com/ReactiveX/RxJS/commit/3583cd3)) ### Performance Improvements - **catch:** remove tryCatch/errorObject for custom tryCatching, 1.3M -> 1.5M ops/sec ([35caf74](https://github.com/ReactiveX/RxJS/commit/35caf74)) - **combineLatest:** remove tryCatch/errorObject, 156k -> 221k ops/sec ([1c7d639](https://github.com/ReactiveX/RxJS/commit/1c7d639)) - **count:** remove tryCatch/errorObject for custom tryCatching, 1.84M -> 1.97M ops/sec ([869718d](https://github.com/ReactiveX/RxJS/commit/869718d)) - **debounce:** remove tryCatch/errorObject for custom tryCatching ([90bf3f1](https://github.com/ReactiveX/RxJS/commit/90bf3f1)) - **distinct:** increase perf from 60% of Rx4 to 1000% Rx4 ([d026c41](https://github.com/ReactiveX/RxJS/commit/d026c41)) - **do:** remove tryCatch/errorObject use, 104k -> 263k ops/sec improvement ([ccba39d](https://github.com/ReactiveX/RxJS/commit/ccba39d)) - **every:** remove tryCatch/errorObject (~1.8x improvement) ([14afeb6](https://github.com/ReactiveX/RxJS/commit/14afeb6)) - **exhaustMap:** remove tryCatch/errorObject (~10% improvement) ([a55f459](https://github.com/ReactiveX/RxJS/commit/a55f459)) - **filter:** remove tryCatch/errorObject for 2x perf improvement ([086c4bf](https://github.com/ReactiveX/RxJS/commit/086c4bf)) - **find:** remove tryCatch/errorObject (~2x improvement) ([aa35b2a](https://github.com/ReactiveX/RxJS/commit/aa35b2a)) - **first:** remove tryCatch/errorObject for custom tryCatching, 970k ops -> 1.27M ops/sec ([d8c835a](https://github.com/ReactiveX/RxJS/commit/d8c835a)) - **groupBy:** remove tryCatch/errorObject for custom tryCatching, 38% faster. ([40c43f7](https://github.com/ReactiveX/RxJS/commit/40c43f7)) - **last:** remove tryCatch/errorObject for custom tryCatching, 960k -> 1.38M ops/sec ([243ace3](https://github.com/ReactiveX/RxJS/commit/243ace3)) - **map:** 2x increase from removing tryCatch/errorObject ([231f729](https://github.com/ReactiveX/RxJS/commit/231f729)) - **mergeMap:** extra 1x factor gains from custom tryCatch member function ([c4ce2fb](https://github.com/ReactiveX/RxJS/commit/c4ce2fb)) - **mergeMapTo:** remove tryCatch/errorObject (~2x improvement) ([42bcced](https://github.com/ReactiveX/RxJS/commit/42bcced)) - **reduce:** remove tryCatch/errorObject, optimize calls, 2-3x perf improvement ([6186d46](https://github.com/ReactiveX/RxJS/commit/6186d46)) - **scan:** remove tryCatch/errorObject for custom tryCatcher 1.75x improvement ([338135d](https://github.com/ReactiveX/RxJS/commit/338135d)) - **single:** remove tryCatch/errorObject (~2.5x improvement) ([2515cfb](https://github.com/ReactiveX/RxJS/commit/2515cfb)) - **skipWhile:** remove tryCatch/errorObject (~1.6x improvement) ([cf002db](https://github.com/ReactiveX/RxJS/commit/cf002db)) - **Subscriber:** double performance adding tryOrUnsub to Subscriber ([4e75466](https://github.com/ReactiveX/RxJS/commit/4e75466)) - **switchMap:** remove tryCatch/errorObject ~20% improvement ([ec0199f](https://github.com/ReactiveX/RxJS/commit/ec0199f)) - **switchMapTo:** remove tryCatch/errorObject (~2x improvement) ([c8cf72a](https://github.com/ReactiveX/RxJS/commit/c8cf72a)) - **takeWhile:** remove tryCatch/errorObject (~6x improvement) ([ef6c3c3](https://github.com/ReactiveX/RxJS/commit/ef6c3c3)) - **withLatestFrom:** remove tryCatch/errorObject, 92k -> 107k (16% improvement) ([e4ccb44](https://github.com/ReactiveX/RxJS/commit/e4ccb44)) - **zip:** extra 1x-2x factor gains from custom tryCatch member function ([a1b0e52](https://github.com/ReactiveX/RxJS/commit/a1b0e52)) ### BREAKING CHANGES - Subject: Subject.create arguments have been swapped to match Rx 4 signature. `Subject.create(observable, observer)` is now `Subject.create(observer, observable)` - Observable patching: Patch files for static observable methods such as `of` and `from` can now be found in `rxjs/add/observable/of`, `rxjs/add/observable/from`, etc. - Observable modules: Observable modules for subclassed Observables like `PromiseObservable`, `ArrayObservable` are now in appropriately named files like `rxjs/observable/PromiseObservable` and `rxjs/observable/ArrayObservable` as opposed to `rxjs/observable/fromPromise` and `rxjs/observable/fromArray`, since they're not patching, they simply house the Observable implementations. # [5.0.0-beta.1](https://github.com/ReactiveX/RxJS/compare/5.0.0-beta.0...v5.0.0-beta.1) (2016-01-13) ### Bug Fixes - **ajax:** ensure post sending values ([7aae0a3](https://github.com/ReactiveX/RxJS/commit/7aae0a3)) - **ajax:** ensure that headers are set properly ([1100bdd](https://github.com/ReactiveX/RxJS/commit/1100bdd)) - **ajax:** ensure XHR props are set after open ([4a6a579](https://github.com/ReactiveX/RxJS/commit/4a6a579)) - **ajax:** ensure XHR send is being called ([c569e3e](https://github.com/ReactiveX/RxJS/commit/c569e3e)) - **ajax:** remove unnecessary onAbort handling ([ed8240e](https://github.com/ReactiveX/RxJS/commit/ed8240e)) - **ajax:** response properly based off responseType ([b2a27a2](https://github.com/ReactiveX/RxJS/commit/b2a27a2)) - **ajax:** should no longer succeed on 300 status ([4d4fa32](https://github.com/ReactiveX/RxJS/commit/4d4fa32)) - **animationFrame:** req/cancel animationFrame has to be called within the context of root. ([30a11ee](https://github.com/ReactiveX/RxJS/commit/30a11ee)) - **debounceTime:** align value emit behavior as same as RxJS4 ([5ee11e0](https://github.com/ReactiveX/RxJS/commit/5ee11e0)), closes [#1081](https://github.com/ReactiveX/RxJS/issues/1081) - **distinctUntilChanged:** implement optional keySelector ([f6a897c](https://github.com/ReactiveX/RxJS/commit/f6a897c)) - **fromEvent:** added spread operator for emitters that pass multiple arguments ([3f8eabb](https://github.com/ReactiveX/RxJS/commit/3f8eabb)) - **fromObservable:** expand compatibility for iterating string source ([8f7924f](https://github.com/ReactiveX/RxJS/commit/8f7924f)), closes [#1147](https://github.com/ReactiveX/RxJS/issues/1147) - **Immediate:** update setImmediate compatibility on IE ([39e6c0e](https://github.com/ReactiveX/RxJS/commit/39e6c0e)), closes [#1163](https://github.com/ReactiveX/RxJS/issues/1163) - **inspect:** remove inspect and inspectTime operators ([17341a4](https://github.com/ReactiveX/RxJS/commit/17341a4)) - **Readme:** update link to bundle on npmcdn ([44a8ca7](https://github.com/ReactiveX/RxJS/commit/44a8ca7)) - **ReplaySubject:** Fix case-sensitive import. ([de31f32](https://github.com/ReactiveX/RxJS/commit/de31f32)) - **ScalarObservable:** fix issue where scalar map fired twice ([c18c42e](https://github.com/ReactiveX/RxJS/commit/c18c42e)), closes [#1142](https://github.com/ReactiveX/RxJS/issues/1142) [#1140](https://github.com/ReactiveX/RxJS/issues/1140) - **scheduling:** Fixes bugs in scheduled actions. ([e050f01](https://github.com/ReactiveX/RxJS/commit/e050f01)) - **Subscriber:** errors in nextHandler no longer propagate to errorHandler ([f42eed2](https://github.com/ReactiveX/RxJS/commit/f42eed2)), closes [#1135](https://github.com/ReactiveX/RxJS/issues/1135) - **WebSocketSubject:** ensure error codes passed to WebSocket close method ([3b1655e](https://github.com/ReactiveX/RxJS/commit/3b1655e)) - **WebSocketSubject:** ensure WebSocketSubject can be resubscribed ([861a0c1](https://github.com/ReactiveX/RxJS/commit/861a0c1)) - **WebSocketSubject:** resultSelector and protocols specifications work properly ([580f69a](https://github.com/ReactiveX/RxJS/commit/580f69a)) ### Features - **ajax:** add resultSelector and improve perf ([6df755f](https://github.com/ReactiveX/RxJS/commit/6df755f)) - **ajax:** adds ajax methods from rx-dom. ([2ca4236](https://github.com/ReactiveX/RxJS/commit/2ca4236)) - **bindNodeCallback:** add Observable.bindNodeCallback ([497bb0d](https://github.com/ReactiveX/RxJS/commit/497bb0d)), closes [#736](https://github.com/ReactiveX/RxJS/issues/736) - **Observable:** add let to allow fluent style query building ([5a2014c](https://github.com/ReactiveX/RxJS/commit/5a2014c)) - **Observable:** add pairwise operator ([1432e59](https://github.com/ReactiveX/RxJS/commit/1432e59)) - **Operator:** Expose the Operator interface to library consumers ([29aa3af](https://github.com/ReactiveX/RxJS/commit/29aa3af)) - **pluck:** add pluck operator ([8026906](https://github.com/ReactiveX/RxJS/commit/8026906)), closes [#1134](https://github.com/ReactiveX/RxJS/issues/1134) - **race:** add race operator ([ee3b593](https://github.com/ReactiveX/RxJS/commit/ee3b593)) - **scheduler:** adds animationFrame scheduler. ([e637b78](https://github.com/ReactiveX/RxJS/commit/e637b78)) - **WebSocketSubject:** add basic WebSocketSubject implementation ([58cd806](https://github.com/ReactiveX/RxJS/commit/58cd806)) - **WebSocketSubject.multiplex:** add multiplex operator to WebSocketSubject ([904d617](https://github.com/ReactiveX/RxJS/commit/904d617)) ### BREAKING CHANGES - inspect: `inspect` and `inspectTime` were removed. Use `withLatestFrom` instead. - Subscriber/Observable: errors thrown in nextHandlers by consumer code will no longer propagate to the errorHandler. # [5.0.0-beta.0](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.14...v5.0.0-beta.0) (2015-12-15) ### Bug Fixes - **micro-perf:** rename immediate to queue scheduler ([fe56b28](https://github.com/ReactiveX/RxJS/commit/fe56b28)), closes [#1040](https://github.com/ReactiveX/RxJS/issues/1040) - **micro-perf:** use the current scheduler on current-thread tests ([3dff5eb](https://github.com/ReactiveX/RxJS/commit/3dff5eb)) - **operators:** emit declarations for patch modules ([676f82d](https://github.com/ReactiveX/RxJS/commit/676f82d)) - **test:** make explicit unsubscription for observable ([7f67b09](https://github.com/ReactiveX/RxJS/commit/7f67b09)) - **test:** make explicit unsubscription for observable ([65e65e2](https://github.com/ReactiveX/RxJS/commit/65e65e2)) - **window:** fix window() to dispose window Subjects ([5168f73](https://github.com/ReactiveX/RxJS/commit/5168f73)) - **windowCount:** fix windowCount to dispose window Subjects ([f29ee29](https://github.com/ReactiveX/RxJS/commit/f29ee29)) - **windowTime:** fix windowTime to dispose window Subjects ([b73e260](https://github.com/ReactiveX/RxJS/commit/b73e260)) - **windowToggle:** fix windowToggle to dispose window Subjects ([15ff3f7](https://github.com/ReactiveX/RxJS/commit/15ff3f7)) - **windowWhen:** fix windowWhen to dispose window Subjects ([91c1941](https://github.com/ReactiveX/RxJS/commit/91c1941)) ### Features - **inspect:** added inspect operator ([f9944ae](https://github.com/ReactiveX/RxJS/commit/f9944ae)) - **inspectTime:** add inspectTime operator ([6835dcd](https://github.com/ReactiveX/RxJS/commit/6835dcd)) - **sample:** readd `sample` operator ([e93bffc](https://github.com/ReactiveX/RxJS/commit/e93bffc)) - **sampleTime:** reimplement `sampleTime` with RxJS 4 behavior ([6b77e69](https://github.com/ReactiveX/RxJS/commit/6b77e69)) - **TestScheduler:** add createTime() parser to return number ([cb8cf6b](https://github.com/ReactiveX/RxJS/commit/cb8cf6b)) ### BREAKING CHANGES - sampleTime: `sampleTime` now has the same behavior `sample(number, scheduler)` did in RxJS 4 - sample: `sample` behavior returned to RxJS 4 behavior - inspectTime: `sampleTime` is now `inspectTime` - inspect: RxJS 5 `sample` behavior is now `inspect` - extended operators: All extended operators are now under the same operator directory as all others. This means that `import "rxjs/add/operator/extended/min"` is now `import "rxjs/add/operator/min"` # [5.0.0-alpha.14](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.13...v5.0.0-alpha.14) (2015-12-09) ### Bug Fixes - **every:** handle thisArg for scalar and array observables ([eae4b00](https://github.com/ReactiveX/RxJS/commit/eae4b00)) - **SymbolShim:** ensure for function even if Symbol already exists ([e942776](https://github.com/ReactiveX/RxJS/commit/e942776)), closes [#999](https://github.com/ReactiveX/RxJS/issues/999) - **SymbolShim:** Symbol polyfill is a function ([1f57157](https://github.com/ReactiveX/RxJS/commit/1f57157)), closes [#988](https://github.com/ReactiveX/RxJS/issues/988) - **timeoutWith:** fix to avoid unnecessary inner subscription ([6e63752](https://github.com/ReactiveX/RxJS/commit/6e63752)) ### Features - **count:** remove thisArg ([878a1fd](https://github.com/ReactiveX/RxJS/commit/878a1fd)) - **distinctUntilChanged:** remove thisArg ([bfc52d6](https://github.com/ReactiveX/RxJS/commit/bfc52d6)) - **exhaust:** rename switchFirst operators to exhaust ([9b565c9](https://github.com/ReactiveX/RxJS/commit/9b565c9)), closes [#915](https://github.com/ReactiveX/RxJS/issues/915) - **finally:** remove thisArg ([d4b02fc](https://github.com/ReactiveX/RxJS/commit/d4b02fc)) - **forEach:** add thisArg ([14ffce6](https://github.com/ReactiveX/RxJS/commit/14ffce6)), closes [#878](https://github.com/ReactiveX/RxJS/issues/878) - **single:** remove thisArg ([43af805](https://github.com/ReactiveX/RxJS/commit/43af805)) ### BREAKING CHANGES - exhaust: switchFirst is now exhaust - exhaust: switchFirstMap is now exhaustMap - forEach: Observable.prototype.forEach argument order changed to accommodate thisArg. Optional PromiseCtor argument moved to third arg from second # [5.0.0-alpha.13](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.12...v5.0.0-alpha.13) (2015-12-08) ### Bug Fixes - **Observable:** fix circular dependency issue. ([b7672f4](https://github.com/ReactiveX/RxJS/commit/b7672f4)) - **bufferToggle:** fix unsubscriptions of closing Observable ([439b641](https://github.com/ReactiveX/RxJS/commit/439b641)) - **expand:** accept scheduler parameter ([79e9084](https://github.com/ReactiveX/RxJS/commit/79e9084)), closes [#841](https://github.com/ReactiveX/RxJS/issues/841) - **publish:** make script generate correct package names ([10563d3](https://github.com/ReactiveX/RxJS/commit/10563d3)) - **repeat:** preserve Subscriber chain in repeat() ([d9a7328](https://github.com/ReactiveX/RxJS/commit/d9a7328)) - **retry:** preserve Subscriber chain in retry() ([b429dac](https://github.com/ReactiveX/RxJS/commit/b429dac)) - **retryWhen:** preserve Subscriber chain in retryWhen() ([c9cb958](https://github.com/ReactiveX/RxJS/commit/c9cb958)) ### Features - **AsapScheduler:** rename NextTickScheduler to AsapScheduler ([3255fb3](https://github.com/ReactiveX/RxJS/commit/3255fb3)), closes [#838](https://github.com/ReactiveX/RxJS/issues/838) - **BehaviorSubject:** add getValue method to access value ([33b387b](https://github.com/ReactiveX/RxJS/commit/33b387b)), closes [#758](https://github.com/ReactiveX/RxJS/issues/758) - **BehaviorSubject:** now throws when getValue is called after unsubscription ([1ddf116](https://github.com/ReactiveX/RxJS/commit/1ddf116)) - **ObjectUnsubscribedError:** add ObjectUnsubscribed error class ([39836af](https://github.com/ReactiveX/RxJS/commit/39836af)) - **Observable:** subscribe accepts objects with rxSubscriber symbol ([b7672f4](https://github.com/ReactiveX/RxJS/commit/b7672f4)) - **QueueScheduler:** rename ImmediateScheduler to QueueScheduler ([66eb537](https://github.com/ReactiveX/RxJS/commit/66eb537)) - **Rx.Symbol.rxSubscriber:** add rxSubscriber symbol ([d4f1670](https://github.com/ReactiveX/RxJS/commit/d4f1670)) - **Subject:** add rxSubscriber symbol ([d2e4257](https://github.com/ReactiveX/RxJS/commit/d2e4257)) - **Subscriber:** add rxSubscriber symbol ([7bda360](https://github.com/ReactiveX/RxJS/commit/7bda360)) - **switchFirstMap:** rename switchMapFirst to switchFirstMap ([eddd4dc](https://github.com/ReactiveX/RxJS/commit/eddd4dc)) ### BREAKING CHANGES - AsapScheduler: `Rx.Scheduler.nextTick` (Rx 4's "default" scheduler) is now `Rx.Scheduler.asap` - QueueScheduler: `Rx.Scheduler.immediate` (Rx 4's "currentThread" scheduler) is now `Rx.Scheduler.queue` related #838 - switchFirstMap: `switchMapFirst` is now `switchFirstMap` # [5.0.0-alpha.12](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.10...v5.0.0-alpha.12) (2015-12-04) ### Bug Fixes - **AsyncSubject:** emit value when it's subscribed after complete ([ed0eaf6](https://github.com/ReactiveX/RxJS/commit/ed0eaf6)) - **bindCallback:** only call function once even while scheduled ([8637d47](https://github.com/ReactiveX/RxJS/commit/8637d47)), closes [#881](https://github.com/ReactiveX/RxJS/issues/881) - **bufferToggle:** fix disposal of subscriptions when errors occur ([a20325c](https://github.com/ReactiveX/RxJS/commit/a20325c)) - **catch:** fix catch to dispose old subscriptions ([280f7ed](https://github.com/ReactiveX/RxJS/commit/280f7ed)), closes [#763](https://github.com/ReactiveX/RxJS/issues/763) - **catch:** fix catch() to preserve Subscriber chain ([e1447ac](https://github.com/ReactiveX/RxJS/commit/e1447ac)) - **concat:** accept scheduler parameter ([8859702](https://github.com/ReactiveX/RxJS/commit/8859702)) - **ConnectableObservable:** fix ConnectableObservable connectability and refCounting ([aef9578](https://github.com/ReactiveX/RxJS/commit/aef9578)), closes [#678](https://github.com/ReactiveX/RxJS/issues/678) - **debounce:** Fix debounce to unsubscribe duration Observables ([dea7847](https://github.com/ReactiveX/RxJS/commit/dea7847)) - **expand:** fix expand's concurrency behavior ([01f86e5](https://github.com/ReactiveX/RxJS/commit/01f86e5)) - **expand:** terminate recursive call when destination completes ([3b8cf94](https://github.com/ReactiveX/RxJS/commit/3b8cf94)) - **Observable:** Subjects no longer wrapped in Subscriber ([5cb0f2b](https://github.com/ReactiveX/RxJS/commit/5cb0f2b)), closes [#825](https://github.com/ReactiveX/RxJS/issues/825) [#748](https://github.com/ReactiveX/RxJS/issues/748) - **Observer:** anonymous observers now allow missing handlers ([a11c763](https://github.com/ReactiveX/RxJS/commit/a11c763)), closes [#723](https://github.com/ReactiveX/RxJS/issues/723) - **operators:** Remove shareReplay and shareBehavior ([536a6a6](https://github.com/ReactiveX/RxJS/commit/536a6a6)), closes [#710](https://github.com/ReactiveX/RxJS/issues/710) - **publish:** copy readme and license, remove scripts ([439a2f3](https://github.com/ReactiveX/RxJS/commit/439a2f3)), closes [#845](https://github.com/ReactiveX/RxJS/issues/845) - **throttleTime:** fix and rename throttleTime operator ([3b0c1f3](https://github.com/ReactiveX/RxJS/commit/3b0c1f3)) - **TimerObservable:** accepts absolute date for dueTime ([e284fb8](https://github.com/ReactiveX/RxJS/commit/e284fb8)), closes [#648](https://github.com/ReactiveX/RxJS/issues/648) ### Features - **AsyncSubject:** add AsyncSubject ([34c05fe](https://github.com/ReactiveX/RxJS/commit/34c05fe)) - **bindCallback:** remove thisArg ([feea9a1](https://github.com/ReactiveX/RxJS/commit/feea9a1)) - **bindCallback:** rename fromCallback to bindCallback ([305d66d](https://github.com/ReactiveX/RxJS/commit/305d66d)), closes [#876](https://github.com/ReactiveX/RxJS/issues/876) - **callback:** Add Observable.fromCallback ([9f751e7](https://github.com/ReactiveX/RxJS/commit/9f751e7)) - **combineLatest:** accept array of observable as parameter ([2edd92c](https://github.com/ReactiveX/RxJS/commit/2edd92c)), closes [#594](https://github.com/ReactiveX/RxJS/issues/594) - **forkJoin:** accept array of observable as parameter ([d45f672](https://github.com/ReactiveX/RxJS/commit/d45f672)) - **mergeScan:** support concurrency parameter for mergeScan ([fe0eb37](https://github.com/ReactiveX/RxJS/commit/fe0eb37)), closes [#868](https://github.com/ReactiveX/RxJS/issues/868) - **usage:** add auto-patching operators ([1ab3508](https://github.com/ReactiveX/RxJS/commit/1ab3508)), closes [#860](https://github.com/ReactiveX/RxJS/issues/860) - **skipWhile:** add skipWhile operator ([a2244e0](https://github.com/ReactiveX/RxJS/commit/a2244e0)) - **switchFirst:** add switchFirst and switchMapFirst ([71e3dd1](https://github.com/ReactiveX/RxJS/commit/71e3dd1)) - **publishLast:** add publishLast operator ([9bef228](https://github.com/ReactiveX/RxJS/commit/9bef228)), closes [#883](https://github.com/ReactiveX/RxJS/issues/883) - **takeWhile:** add takeWhile operator ([48e53ea](https://github.com/ReactiveX/RxJS/commit/48e53ea)), closes [#695](https://github.com/ReactiveX/RxJS/issues/695) - **takeWhile:** remove thisArg ([b5219a4](https://github.com/ReactiveX/RxJS/commit/b5219a4)) - **throttle:** add throttle operator with durationSelector ([c3bf3e7](https://github.com/ReactiveX/RxJS/commit/c3bf3e7)), closes [#496](https://github.com/ReactiveX/RxJS/issues/496) ### Performance Improvements - **ReplaySubject:** fix memory leak of growing buffer ([0a73b4d](https://github.com/ReactiveX/RxJS/commit/0a73b4d)), closes [#578](https://github.com/ReactiveX/RxJS/issues/578) # [5.0.0-alpha.11](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.10...v5.0.0-alpha.11) (2015-12-01) ### Bug Fixes - **catch:** fix catch to dispose old subscriptions ([280f7ed](https://github.com/ReactiveX/RxJS/commit/280f7ed)), closes [#763](https://github.com/ReactiveX/RxJS/issues/763) - **concat:** accept scheduler parameter ([8859702](https://github.com/ReactiveX/RxJS/commit/8859702)) - **ConnectableObservable:** fix ConnectableObservable connectability and refCounting ([aef9578](https://github.com/ReactiveX/RxJS/commit/aef9578)), closes [#678](https://github.com/ReactiveX/RxJS/issues/678) - **debounce:** Fix debounce to unsubscribe duration Observables ([dea7847](https://github.com/ReactiveX/RxJS/commit/dea7847)) - **expand:** fix expand's concurrency behavior ([01f86e5](https://github.com/ReactiveX/RxJS/commit/01f86e5)) - **expand:** terminate recursive call when destination completes ([3b8cf94](https://github.com/ReactiveX/RxJS/commit/3b8cf94)) - **Observer:** anonymous observers now allow missing handlers ([a11c763](https://github.com/ReactiveX/RxJS/commit/a11c763)), closes [#723](https://github.com/ReactiveX/RxJS/issues/723) - **operators:** Remove shareReplay and shareBehavior ([536a6a6](https://github.com/ReactiveX/RxJS/commit/536a6a6)), closes [#710](https://github.com/ReactiveX/RxJS/issues/710) - **test:** make explicit unsubscription for observable ([505f5b7](https://github.com/ReactiveX/RxJS/commit/505f5b7)) - **throttleTime:** fix and rename throttleTime operator ([3b0c1f3](https://github.com/ReactiveX/RxJS/commit/3b0c1f3)) - **TimerObservable:** accepts absolute date for dueTime ([e284fb8](https://github.com/ReactiveX/RxJS/commit/e284fb8)), closes [#648](https://github.com/ReactiveX/RxJS/issues/648) ### Features - **callback:** Add Observable.fromCallback ([9f751e7](https://github.com/ReactiveX/RxJS/commit/9f751e7)) - **combineLatest:** accept array of observable as parameter ([2edd92c](https://github.com/ReactiveX/RxJS/commit/2edd92c)), closes [#594](https://github.com/ReactiveX/RxJS/issues/594) - **forkJoin:** accept array of observable as parameter ([d45f672](https://github.com/ReactiveX/RxJS/commit/d45f672)) - **operator:** add skipWhile operator ([a2244e0](https://github.com/ReactiveX/RxJS/commit/a2244e0)) - **operator:** add switchFirst and switchMapFirst ([71e3dd1](https://github.com/ReactiveX/RxJS/commit/71e3dd1)) - **takeWhile:** add takeWhile operator ([48e53ea](https://github.com/ReactiveX/RxJS/commit/48e53ea)), closes [#695](https://github.com/ReactiveX/RxJS/issues/695) - **throttle:** add throttle operator with durationSelector ([c3bf3e7](https://github.com/ReactiveX/RxJS/commit/c3bf3e7)), closes [#496](https://github.com/ReactiveX/RxJS/issues/496) ### Performance Improvements - **ReplaySubject:** fix memory leak of growing buffer ([0a73b4d](https://github.com/ReactiveX/RxJS/commit/0a73b4d)), closes [#578](https://github.com/ReactiveX/RxJS/issues/578) # [5.0.0-alpha.10](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.9...v5.0.0-alpha.10) (2015-11-10) ### Bug Fixes - **Immediate:** set immediate should no longer throw in Chrome ([a3de7d9](https://github.com/ReactiveX/RxJS/commit/a3de7d9)), closes [#690](https://github.com/ReactiveX/RxJS/issues/690) # [5.0.0-alpha.9](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.8...v5.0.0-alpha.9) (2015-11-10) ### Bug Fixes - **util:** incorrect Symbol.iterator for es6-shim ([15bf32c](https://github.com/ReactiveX/RxJS/commit/15bf32c)) ### Features - **forkJoin:** accept promise, resultselector as parameter of forkJoin ([190f349](https://github.com/ReactiveX/RxJS/commit/190f349)), closes [#507](https://github.com/ReactiveX/RxJS/issues/507) # [5.0.0-alpha.8](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.7...v5.0.0-alpha.8) (2015-11-06) ### Bug Fixes - **concat:** handle a given scheduler correctly ([8745216](https://github.com/ReactiveX/RxJS/commit/8745216)) - **package.json:** loosen the engines/npm semver range to prevent false warnings ([df791c6](https://github.com/ReactiveX/RxJS/commit/df791c6)) - **skipUntil:** unsubscribe source when it completes ([8a4162b](https://github.com/ReactiveX/RxJS/commit/8a4162b)), closes [#577](https://github.com/ReactiveX/RxJS/issues/577) - **take:** deal with total <= 0 and add tests ([c5cc06f](https://github.com/ReactiveX/RxJS/commit/c5cc06f)) - **windowWhen:** fix windowWhen with regard to unsubscriptions ([8174947](https://github.com/ReactiveX/RxJS/commit/8174947)) ### Features - **mergeScan:** add new mergeScan operator. ([0ebb5bd](https://github.com/ReactiveX/RxJS/commit/0ebb5bd)) - **multicast:** support both Subject and subjectFactory arguments ([f779027](https://github.com/ReactiveX/RxJS/commit/f779027)) ### BREAKING CHANGES - **publish:** reverted to RxJS 4 behavior - **publishBehavior:** reverted to RxJS 4 behavior - **publishReplay:** reverted to RxJS 4 behavior - **shareBehavior:** removed - **shareReplay:** removed # [5.0.0-alpha.7](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.6...v5.0.0-alpha.7) (2015-10-27) ### Bug Fixes - **NextTickAction:** fix unsubscription behavior ([3d8264c](https://github.com/ReactiveX/RxJS/commit/3d8264c)), closes [#582](https://github.com/ReactiveX/RxJS/issues/582) - **buffer:** cleanup notifier subscription when unsubscribed ([1b30aa9](https://github.com/ReactiveX/RxJS/commit/1b30aa9)) - **delay:** accepts absolute time delay ([b109100](https://github.com/ReactiveX/RxJS/commit/b109100)) - **mergeMapTo:** mergeMapTo result should complete ([6f9859e](https://github.com/ReactiveX/RxJS/commit/6f9859e)) - **operator:** update type definitions for union types ([9d90c75](https://github.com/ReactiveX/RxJS/commit/9d90c75)), closes [#581](https://github.com/ReactiveX/RxJS/issues/581) - **repeat:** fix inner subscription semantics for repeat ([f67a596](https://github.com/ReactiveX/RxJS/commit/f67a596)), closes [#554](https://github.com/ReactiveX/RxJS/issues/554) - **switchMapTo:** reimplement switchMapTo to pass tests ([d4789cd](https://github.com/ReactiveX/RxJS/commit/d4789cd)) - **takeUntil:** unsubscribe notifier when it completes ([9415196](https://github.com/ReactiveX/RxJS/commit/9415196)) ### Features - **operator:** add max operator ([7fda036](https://github.com/ReactiveX/RxJS/commit/7fda036)) - **operator:** add min operator ([79cb6cf](https://github.com/ReactiveX/RxJS/commit/79cb6cf)) - **shareBehavior:** add shareBehavior and its tests ([97ff1ec](https://github.com/ReactiveX/RxJS/commit/97ff1ec)) # [5.0.0-alpha.6](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.5...v5.0.0-alpha.6) (2015-10-17) ### Bug Fixes - **retryWhen:** fix internal unsubscriptions ([5aff5e8](https://github.com/ReactiveX/RxJS/commit/5aff5e8)) - **scan:** scan now behaves like RxJS 4 scan ([27f9c09](https://github.com/ReactiveX/RxJS/commit/27f9c09)) # [5.0.0-alpha.5](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.4...v5.0.0-alpha.5) (2015-10-16) ### Bug Fixes - **bufferToggle:** fix bugs in order to pass tests ([949fa31](https://github.com/ReactiveX/RxJS/commit/949fa31)) - **mergeAll:** fix mergeAll micro performance tests to use mapTo instead of map. ([616e86e](https://github.com/ReactiveX/RxJS/commit/616e86e)) - **package:** correct typings path ([a501b06](https://github.com/ReactiveX/RxJS/commit/a501b06)) - **repeat:** add additional resubscription behavior ([4f9f33b](https://github.com/ReactiveX/RxJS/commit/4f9f33b)), closes [#516](https://github.com/ReactiveX/RxJS/issues/516) - **retry:** fix internal unsubscriptions for retry ([cc92f45](https://github.com/ReactiveX/RxJS/commit/cc92f45)), closes [#546](https://github.com/ReactiveX/RxJS/issues/546) - **windowToggle:** fix window closing and unsubscription semantics ([0cb21e6](https://github.com/ReactiveX/RxJS/commit/0cb21e6)) # [5.0.0-alpha.4](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.3...5.0.0-alpha.4) (2015-10-15) ### Bug Fixes - **Subject:** fix missing unsubscribe call ([9dd27d6](https://github.com/ReactiveX/RxJS/commit/9dd27d6)) - **Subscriber:** avoid implicit any ([08faaa9](https://github.com/ReactiveX/RxJS/commit/08faaa9)) - **bufferWhen:** onComplete of closings determine buffers ([5d28a38](https://github.com/ReactiveX/RxJS/commit/5d28a38)) - **fromEvent:** make selector argument optional in fromEvent static method ([71d90b4](https://github.com/ReactiveX/RxJS/commit/71d90b4)) - **skipUntil:** update skipUntil behavior with error, completion ([6f0d98f](https://github.com/ReactiveX/RxJS/commit/6f0d98f)), closes [#518](https://github.com/ReactiveX/RxJS/issues/518) - **windowCount:** fix windowCount window opening times ([908ae56](https://github.com/ReactiveX/RxJS/commit/908ae56)), closes [#273](https://github.com/ReactiveX/RxJS/issues/273) ### Features - **operator:** add debounce operator ([a1e652f](https://github.com/ReactiveX/RxJS/commit/a1e652f)), closes [#493](https://github.com/ReactiveX/RxJS/issues/493) - **operator:** add debounceTime operator ([dd2ba40](https://github.com/ReactiveX/RxJS/commit/dd2ba40)) ### Performance Improvements - **ScalarObservable:** add fast-path for mapping scalar observables ([7b0d3dc](https://github.com/ReactiveX/RxJS/commit/7b0d3dc)) - **count:** fast-path for counting over scalars ([c35a120](https://github.com/ReactiveX/RxJS/commit/c35a120)) - **filter:** add fast-path for filtering scalar observables ([e2e8954](https://github.com/ReactiveX/RxJS/commit/e2e8954)) - **reduce:** add fast-path for reducing over scalar observables ([4c65136](https://github.com/ReactiveX/RxJS/commit/4c65136)) - **scan:** fast-path for scanning scalars ([0201b92](https://github.com/ReactiveX/RxJS/commit/0201b92)) - **skip:** fast-path for skip over scalar observable ([9b49936](https://github.com/ReactiveX/RxJS/commit/9b49936)) - **take:** add fast-path for take over scalars ([33053b1](https://github.com/ReactiveX/RxJS/commit/33053b1)) # [5.0.0-alpha.3](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.2...5.0.0-alpha.3) (2015-10-13) ### Bug Fixes - **Observable:** fix type signature of some static operators ([e5364de](https://github.com/ReactiveX/RxJS/commit/e5364de)) - **Subject.create:** ensure operator property not required for Observable subscription ([2259de2](https://github.com/ReactiveX/RxJS/commit/2259de2)), closes [#483](https://github.com/ReactiveX/RxJS/issues/483) - **TestScheduler:** stop sorting actual results ([51db0b8](https://github.com/ReactiveX/RxJS/commit/51db0b8)), closes [#422](https://github.com/ReactiveX/RxJS/issues/422) - **benchpress:** update benchpress dependencies and config ([8513eaa](https://github.com/ReactiveX/RxJS/commit/8513eaa)), closes [#348](https://github.com/ReactiveX/RxJS/issues/348) - **buffer:** change behavior of buffer to more closely match RxJS 4 ([b66592d](https://github.com/ReactiveX/RxJS/commit/b66592d)) - **combineLatest:** fix type signature ([a3e6deb](https://github.com/ReactiveX/RxJS/commit/a3e6deb)) - **defer:** fix type signature ([11327b9](https://github.com/ReactiveX/RxJS/commit/11327b9)) - **empty:** fix type signature ([893cb7e](https://github.com/ReactiveX/RxJS/commit/893cb7e)) - **fromPromise:** fix type signature ([17415fa](https://github.com/ReactiveX/RxJS/commit/17415fa)) - **groupBy:** durationSelector cannot keep source alive ([57e4207](https://github.com/ReactiveX/RxJS/commit/57e4207)) - **groupBy:** fix bugs related to group resets ([23a7574](https://github.com/ReactiveX/RxJS/commit/23a7574)) - **groupBy:** fix bugs with groupBy ([86992c6](https://github.com/ReactiveX/RxJS/commit/86992c6)) - **interval:** fix signature type ([9c238c0](https://github.com/ReactiveX/RxJS/commit/9c238c0)) - **operator:** startWith operator accepts scheduler, multiple values ([d1d339a](https://github.com/ReactiveX/RxJS/commit/d1d339a)) - **operators:** reorder signature of resultSelectors ([fc1724d](https://github.com/ReactiveX/RxJS/commit/fc1724d)) - **range:** fix type signature ([9237d0b](https://github.com/ReactiveX/RxJS/commit/9237d0b)) - **timeout:** fix absolute timeout behavior ([8ec06cf](https://github.com/ReactiveX/RxJS/commit/8ec06cf)) - **timeout:** update behavior of timeout, timeoutWith ([16bd691](https://github.com/ReactiveX/RxJS/commit/16bd691)) - **timer:** fix type signature ([fffb96c](https://github.com/ReactiveX/RxJS/commit/fffb96c)) - **window:** handle closingNotifier errors/completes ([42beff1](https://github.com/ReactiveX/RxJS/commit/42beff1)) ### Features - **TestScheduler:** support unsubscription marbles ([ffb0bb9](https://github.com/ReactiveX/RxJS/commit/ffb0bb9)) - **count:** add predicate support in count() ([42d1add](https://github.com/ReactiveX/RxJS/commit/42d1add)), closes [#425](https://github.com/ReactiveX/RxJS/issues/425) - **dematerialize:** add dematerialize operator ([0a8b074](https://github.com/ReactiveX/RxJS/commit/0a8b074)), closes [#475](https://github.com/ReactiveX/RxJS/issues/475) - **do:** do will now handle an observer as an argument ([c1a4994](https://github.com/ReactiveX/RxJS/commit/c1a4994)), closes [#476](https://github.com/ReactiveX/RxJS/issues/476) - **first:** add resultSelector ([3c20fcc](https://github.com/ReactiveX/RxJS/commit/3c20fcc)), closes [#417](https://github.com/ReactiveX/RxJS/issues/417) - **last:** add resultSelector argument ([5a4896c](https://github.com/ReactiveX/RxJS/commit/5a4896c)), closes [#418](https://github.com/ReactiveX/RxJS/issues/418) - **operator:** add every operator ([d11f32e](https://github.com/ReactiveX/RxJS/commit/d11f32e)) - **operator:** add timeInterval operator ([6cc0615](https://github.com/ReactiveX/RxJS/commit/6cc0615)) - **share:** add the share operator ([c36f2be](https://github.com/ReactiveX/RxJS/commit/c36f2be)), closes [#439](https://github.com/ReactiveX/RxJS/issues/439) - **shareReplay:** add the shareReplay() operator ([65c84ea](https://github.com/ReactiveX/RxJS/commit/65c84ea)) ### Performance Improvements - **ReplaySubject:** remove unnecessary computation ([488ac2e](https://github.com/ReactiveX/RxJS/commit/488ac2e)) ### BREAKING CHANGES - **operators with resultSelectors** (mergeMap, concatMap, switchMap, etc): The function signature of resultSelectors used to be (innerValue, outerValue, innerIndex, outerIndex) but this commits changes it to be (outerValue, innerValue, outerIndex, innerIndex), to match signatures in RxJS 4. # [5.0.0-alpha.2](https://github.com/ReactiveX/RxJS/compare/5.0.0-alpha.1...5.0.0-alpha.2) (2015-09-30) ### Bug Fixes - **concat:** let observable concat instead of merge ([c17e832](https://github.com/ReactiveX/RxJS/commit/c17e832)) ### Features - **operator:** add find, findIndex operator ([7c6cc9d](https://github.com/ReactiveX/RxJS/commit/7c6cc9d)) - **operator:** add first operator ([274c233](https://github.com/ReactiveX/RxJS/commit/274c233)) - **operator:** add ignoreElements operator ([fe1a952](https://github.com/ReactiveX/RxJS/commit/fe1a952)) - **zip:** zip now supports never-ending iterables ([a5684ba](https://github.com/ReactiveX/RxJS/commit/a5684ba)), closes [#397](https://github.com/ReactiveX/RxJS/issues/397) # [5.0.0-alpha.1](https://github.com/ReactiveX/RxJS/compare/0.0.0-prealpha.3...5.0.0-alpha.1) (2015-09-23) ### Bug Fixes - **Promises:** escape promise error trap ([c69088a](https://github.com/ReactiveX/RxJS/commit/c69088a)) - **TestScheduler:** ensure TestScheduler subscribes to expectations before hot subjects ([b9b2ba5](https://github.com/ReactiveX/RxJS/commit/b9b2ba5)) - **TestScheduler:** properly schedule actions added dynamically ([069ede4](https://github.com/ReactiveX/RxJS/commit/069ede4)) - **buffer:** do not emit empty buffer when completes ([252fccb](https://github.com/ReactiveX/RxJS/commit/252fccb)) - **bufferTime:** inner intervals will now clean up properly ([4ef41b0](https://github.com/ReactiveX/RxJS/commit/4ef41b0)) - **expand:** Fix expand to stay open until the source Observable completes. ([20ef785](https://github.com/ReactiveX/RxJS/commit/20ef785)) - **expand:** fix expand operator to match Rx3 ([67f9623](https://github.com/ReactiveX/RxJS/commit/67f9623)) - **last:** emit value matches with predicate instead of result of predicate ([0f635ee](https://github.com/ReactiveX/RxJS/commit/0f635ee)) - **merge:** fix issues with async in merge ([7a15304](https://github.com/ReactiveX/RxJS/commit/7a15304)) - **mergeAll:** merge all will properly handle async observables ([43b63cc](https://github.com/ReactiveX/RxJS/commit/43b63cc)) - **package:** specify supported npm version ([f72e622](https://github.com/ReactiveX/RxJS/commit/f72e622)) - **switchAll:** switch all will properly handle async observables ([c2e2d29](https://github.com/ReactiveX/RxJS/commit/c2e2d29)) - **switchAll/switchLatest:** inner subscriptions should now properly unsub ([38a45f8](https://github.com/ReactiveX/RxJS/commit/38a45f8)), closes [#302](https://github.com/ReactiveX/RxJS/issues/302) ### Features - **combineLatest:** supports promises, iterables, lowercase-o observables and Observables ([ce76e4e](https://github.com/ReactiveX/RxJS/commit/ce76e4e)) - **config:** add global configuration of Promise capability ([e7eb5d7](https://github.com/ReactiveX/RxJS/commit/e7eb5d7)), closes [#115](https://github.com/ReactiveX/RxJS/issues/115) - **expand:** now handles promises, iterables and lowercase-o observables ([c5239e9](https://github.com/ReactiveX/RxJS/commit/c5239e9)) - **mergeAll:** now supports promises, iterables and lowercase-o observables ([4c16aa6](https://github.com/ReactiveX/RxJS/commit/4c16aa6)) - **operator:** add elementAt operator ([cd562c4](https://github.com/ReactiveX/RxJS/commit/cd562c4)) - **operator:** add isEmpty operator ([80f72c5](https://github.com/ReactiveX/RxJS/commit/80f72c5)) - **operator:** add last operator ([d841b11](https://github.com/ReactiveX/RxJS/commit/d841b11)), closes [#304](https://github.com/ReactiveX/RxJS/issues/304) [#306](https://github.com/ReactiveX/RxJS/issues/306) - **operator:** add single operator ([49484a2](https://github.com/ReactiveX/RxJS/commit/49484a2)) - **switch:** add promise, iterable and array support ([24fdd34](https://github.com/ReactiveX/RxJS/commit/24fdd34)) - **withLatestFrom:** default array output, handle other types ([cb393dc](https://github.com/ReactiveX/RxJS/commit/cb393dc)) - **zip:** supports promises, iterables and lowercase-o observables ([d332a0e](https://github.com/ReactiveX/RxJS/commit/d332a0e)) # [0.0.0-prealpha.3](https://github.com/ReactiveX/RxJS/compare/0.0.0-prealpha.2...0.0.0-prealpha.3) (2015-09-11) ### Bug Fixes - **root:** use self as the root object when available ([0428a85](https://github.com/ReactiveX/RxJS/commit/0428a85)) # [0.0.0-prealpha.2](https://github.com/ReactiveX/RxJS/compare/0.0.0-prealpha.1...0.0.0-prealpha.2) (2015-09-11) ### Bug Fixes - **bufferCount:** set default value for skip argument, do not emit empty buffer at the end ([2c1a9dc](https://github.com/ReactiveX/RxJS/commit/2c1a9dc)) - **windowCount:** set default value for skip argument, do not emit empty buffer at the end ([a513dbb](https://github.com/ReactiveX/RxJS/commit/a513dbb)) ### Features - **Observable:** add static create method ([e0d27ba](https://github.com/ReactiveX/RxJS/commit/e0d27ba)), closes [#255](https://github.com/ReactiveX/RxJS/issues/255) - **TestScheduler:** add TestScheduler ([b23daf1](https://github.com/ReactiveX/RxJS/commit/b23daf1)), closes [#270](https://github.com/ReactiveX/RxJS/issues/270) - **VirtualTimeScheduler:** add VirtualTimeScheduler ([96f9386](https://github.com/ReactiveX/RxJS/commit/96f9386)), closes [#269](https://github.com/ReactiveX/RxJS/issues/269) - **operator:** add sample and sampleTime ([9e62789](https://github.com/ReactiveX/RxJS/commit/9e62789)), closes [#178](https://github.com/ReactiveX/RxJS/issues/178) # [0.0.0-prealpha.1](https://github.com/ReactiveX/RxJS/compare/0441dea...0.0.0-prealpha.1) (2015-09-02) ### Bug Fixes - **combineLatest:** check for limits higher than total observable count ([81e5dfb](https://github.com/ReactiveX/RxJS/commit/81e5dfb)) - **rx:** add hack to export global until better global build exists ([1a543b0](https://github.com/ReactiveX/RxJS/commit/1a543b0)) - **subscription-ref:** add setter for isDisposed ([6fe5427](https://github.com/ReactiveX/RxJS/commit/6fe5427)) - **take:** complete on limit reached ([801a711](https://github.com/ReactiveX/RxJS/commit/801a711)) ### Features - **benchpress:** add benchpress config and flatmap spec ([0441dea](https://github.com/ReactiveX/RxJS/commit/0441dea)) - **catch:** add catch operator, related to #141, closes #130 ([94b4c01](https://github.com/ReactiveX/RxJS/commit/94b4c01)), closes [#130](https://github.com/ReactiveX/RxJS/issues/130) - **from:** let from handle any "observablesque" ([526d4c3](https://github.com/ReactiveX/RxJS/commit/526d4c3)), closes [#156](https://github.com/ReactiveX/RxJS/issues/156) [#236](https://github.com/ReactiveX/RxJS/issues/236) - **index:** add index module which requires commonjs build ([379d2d1](https://github.com/ReactiveX/RxJS/commit/379d2d1)), closes [#117](https://github.com/ReactiveX/RxJS/issues/117) - **observable:** add Observable.all (forkJoin) ([44a4ee1](https://github.com/ReactiveX/RxJS/commit/44a4ee1)) - **operator:** Add count operator. ([30dd894](https://github.com/ReactiveX/RxJS/commit/30dd894)) - **operator:** Add distinctUntilChanged and distinctUntilKeyChanged ([f9ba4da](https://github.com/ReactiveX/RxJS/commit/f9ba4da)) - **operator:** Add do operator. ([7d9b52b](https://github.com/ReactiveX/RxJS/commit/7d9b52b)) - **operator:** Add expand operator. ([47b178b](https://github.com/ReactiveX/RxJS/commit/47b178b)) - **operator:** Add minimal delay operator. ([7851885](https://github.com/ReactiveX/RxJS/commit/7851885)) - **operator:** add buffer operators: buffer, bufferWhen, bufferTime, bufferCount, and bufferTog ([9f8347f](https://github.com/ReactiveX/RxJS/commit/9f8347f)), closes [#207](https://github.com/ReactiveX/RxJS/issues/207) - **operator:** add debounce ([f03adaf](https://github.com/ReactiveX/RxJS/commit/f03adaf)), closes [#193](https://github.com/ReactiveX/RxJS/issues/193) - **operator:** add defaultIfEmpty ([c80688b](https://github.com/ReactiveX/RxJS/commit/c80688b)) - **operator:** add finally ([526e4c9](https://github.com/ReactiveX/RxJS/commit/526e4c9)) - **operator:** add fromEventPattern creator function ([1095d4c](https://github.com/ReactiveX/RxJS/commit/1095d4c)) - **operator:** add groupBy ([1e13aea](https://github.com/ReactiveX/RxJS/commit/1e13aea)), closes [#165](https://github.com/ReactiveX/RxJS/issues/165) - **operator:** add materialize. closes #132 ([6d9f6ae](https://github.com/ReactiveX/RxJS/commit/6d9f6ae)), closes [#132](https://github.com/ReactiveX/RxJS/issues/132) - **operator:** add publishBehavior operator and spec ([249ab8d](https://github.com/ReactiveX/RxJS/commit/249ab8d)) - **operator:** add publishReplay operator and spec ([a0c47d6](https://github.com/ReactiveX/RxJS/commit/a0c47d6)) - **operator:** add retry ([4451db5](https://github.com/ReactiveX/RxJS/commit/4451db5)) - **operator:** add retryWhen operator. closes #129 ([65eb50e](https://github.com/ReactiveX/RxJS/commit/65eb50e)), closes [#129](https://github.com/ReactiveX/RxJS/issues/129) - **operator:** add skipUntil ([ef2620e](https://github.com/ReactiveX/RxJS/commit/ef2620e)), closes [#180](https://github.com/ReactiveX/RxJS/issues/180) - **operator:** add throttle ([1d735b9](https://github.com/ReactiveX/RxJS/commit/1d735b9)), closes [#191](https://github.com/ReactiveX/RxJS/issues/191) - **operator:** add timeout and timeoutWith ([bb440ad](https://github.com/ReactiveX/RxJS/commit/bb440ad)), closes [#244](https://github.com/ReactiveX/RxJS/issues/244) - **operator:** add toPromise operator. closes #159 ([361a53b](https://github.com/ReactiveX/RxJS/commit/361a53b)), closes [#159](https://github.com/ReactiveX/RxJS/issues/159) - **operator:** add window operators: window, windowWhen, windowTime, windowCount, windowToggle ([9f5d510](https://github.com/ReactiveX/RxJS/commit/9f5d510)), closes [#195](https://github.com/ReactiveX/RxJS/issues/195) - **operator:** add withLatestFrom ([322218a](https://github.com/ReactiveX/RxJS/commit/322218a)), closes [#209](https://github.com/ReactiveX/RxJS/issues/209) - **operator:** implement startWith(). ([1f36d99](https://github.com/ReactiveX/RxJS/commit/1f36d99)) rxjs-7.5.7/CODE_OF_CONDUCT.md000066400000000000000000000063201431412030200153060ustar00rootroot00000000000000# Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting Ben Lesh (ben@benlesh.com), Tracy Lee (tracy@thisdot.co) or OJ Kwon (kwon.ohjoong@gmail.com). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org rxjs-7.5.7/CONTRIBUTING.md000066400000000000000000000250141431412030200147410ustar00rootroot00000000000000# Contributing to RxJS [Read and abide by the Code of Conduct](CODE_OF_CONDUCT.md)! Even if you don't read it, it still applies to you. Ignorance is not an exemption. Contents - [Contributing to RxJS](#contributing-to-rxjs) - [Submitting a Pull Request (PR)](#submitting-a-pull-request-pr) - [After your pull request is merged](#after-your-pull-request-is-merged) - [Coding Style Guidelines](#coding-style-guidelines) - [Documentation](#documentation) - [Unit Tests](#unit-tests) - [CI Tests](#ci-tests) - [Performance Tests](#performance-tests) - [Macro](#macro) - [Micro](#micro) - [Commit Message Guidelines](#commit-message-guidelines) - [Commit Message Format](#commit-message-format) - [Revert](#revert) - [Type](#type) - [Scope](#scope) - [Subject](#subject) - [Body](#body) - [Footer](#footer) --- - Related documents - [Creating Operators](docs_app/content/guide/operators.md#creating-custom-operators) - [Writing Marble Tests](docs_app/content/guide/testing/marble-testing.md) --- (This document is a work in progress and is subject to change) ## Submitting a Pull Request (PR) Before you submit your Pull Request (PR) consider the following guidelines: - Search [GitHub](https://github.com/ReactiveX/RxJS/pulls) for an open or closed PR that relates to your submission. You don't want to duplicate effort. - Make your changes in a new git branch: ```shell git checkout -b my-fix-branch master ``` - Create your patch, following [code style guidelines](#coding-style-guidelines), and **including appropriate test cases**. - Run the full test suite and ensure that all tests pass. - Commit your changes using a descriptive commit message that follows our [commit message guidelines](#commit-message-guidelines). Adherence to these conventions is necessary because release notes are automatically generated from these messages. ```shell git commit -a ``` Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files. - Push your branch to GitHub: ```shell git push origin my-fix-branch ``` - In GitHub, send a pull request to `RxJS:master`. - If we suggest changes then: - Make the required updates. - Re-run the test suites to ensure tests are still passing. - Re-run performance tests to make sure your changes didn't hurt performance. - Rebase your branch and force push to your GitHub repository (this will update your Pull Request): ```shell git rebase master -i git push -f ``` - When updating your feature branch with the requested changes, please do not overwrite the commit history, but rather contain the changes in new commits. This is for the sake of a clearer and easier review process. That's it! Thank you for your contribution! ### After your pull request is merged After your pull request is merged, you can safely delete your branch and pull the changes from the main (upstream) repository: - Delete the remote branch on GitHub either through the GitHub web UI or your local shell as follows: ```shell git push origin --delete my-fix-branch ``` - Check out the master branch: ```shell git checkout master -f ``` - Delete the local branch: ```shell git branch -D my-fix-branch ``` - Update your master with the latest upstream version: ```shell git pull --ff upstream master ``` ## Coding Style Guidelines - Please use proper types and generics throughout your code. - 2 space indentation only - favor readability over terseness (TBD): For now, try to follow the style that exists elsewhere in the source, and use your best judgment. ## Documentation - The documentation is auto-generated directly from the source code. - In short: From the source code we generate JSON documents, describing each operator, function ... and render this JSON within an Angular application - The folder `docs_app` contains everything you need for building and developing the docs - The [Documentation README](docs_app/README.md) will support you - After a PR is merged to master the docs will be published to https://rxjs.dev/ ## Unit Tests Unit tests are located under the [spec directory](/spec). Unit tests over synchronous operators and operations can be written in a standard [chai](https://www.chaijs.com/) style. Unit tests written against any asynchronous operator should be written in [Marble Test Style outlined in detail here](docs_app/content/guide/testing/marble-testing.md). Each operator under test must be in its own file to cover the following cases: - Never - Empty - Single/Multiple Values - Error in the sequence - Never ending sequences - Early disposal in sequences If the operator accepts a function as an argument from the user/developer (for example `filter(fn)` or `zip(a, fn)`), then it must cover the following cases: - Success with all values in the callback - Success with the context, if any allowed in the operator signature - If an error is thrown ### CI Tests - Using [Travis](https://travis-ci.org/) on your forked version of RxJS will allow running CI tests on that fork before submitting a PR to master - Simply create a `Travis` account and add your fork as a new project - [Sauce Labs](https://saucelabs.com/) setup will allow performing automated browser tests on the fork. Since `saucelabs` doesn't perform browser tests on a PR, this will help verify test results before PR's are checked into master. - In your `Travis` repo configuration, set the environment variables SAUCE_USERNAME and SAUCE_ACCESS_KEY to your `saucelabs` account ([reference](https://cloud.githubusercontent.com/assets/1210596/12679038/b9ba4eb6-c656-11e5-8c9b-b063c9a3f9dc.png)) - As master runs both of these tests per each check in, it'd be welcome to setup those test before creating your PR ## Performance Tests One of the primary goals of this library is (and will continue to be) great performance. As such, we've employed a variety of performance testing techniques. - DON'T labor over minute variations in ops/sec or milliseconds, there will always be variance in perf test results. - DON'T alter a performance test unless absolutely necessary. Performance tests may be compared to previous results from previous builds. - DO run tests multiple times and make sure the margins of error are low - DO run tests in your feature branches and compare them to master - DO add performance tests for all new operators - DO add performance tests that you feel are missing from other operators - DO add additional performance tests for all worthy code paths. If you develop an operator with special handling for scalar observables, please add tests for those scenarios ### Macro [Macro performance tests](perf/macro) are best written for scenarios where many object instance allocations (or deallocations) are occurring. Operators that create a lot of child subscriptions or operators that emit new objects like Observables and Subjects are definitely worth creating macro performance tests for. Other scenarios for macro performance testing may include common end-to-end scenarios from real-world apps. If you have a situation in your app where you feel RxJS is performing poorly, please [submit an issue](https://github.com/ReactiveX/rxjs/issues/) and include a minimal code example showing your performance issues. We would love to solve perf for your real-world problems and add those tests to our perf test battery. Macro performance tests can be run by hosting the root directory with any web server (we use [http-server](https://www.npmjs.com/package/http-server)), then running: ```sh npm run build_all protractor protractor.conf.js ``` ### Micro [Micro performance tests](perf/micro) really only serve to test operations per second. They're quick and easy to develop, and provide a reasonable look into the relative performance of our operators versus prior versions. All operators should have corresponding micro performance tests. Micro performance test can be run with: ```sh npm run build_all node perf/micro ``` If you wish to run a single micro performance test, you can do so by providing a single argument with the name of the perf test file(s): ```sh node perf/micro zip ``` ## Commit Message Guidelines We have very precise rules over how our git commit messages can be formatted. This leads to **more readable messages** that are easy to follow when looking through the **project history**. But also, we use the git commit messages to **generate the RxJS change log**. Helper script `npm run commit` provides command line based wizard to format commit message easily. ### Commit Message Format Each commit message consists of a **header**, a **body** and a **footer**. The header has a special format that includes a **type**, a **scope** and a **subject**: ``` ():
``` The **header** is mandatory and the **scope** of the header is optional. Any line of the commit message cannot be longer than 100 characters! This allows the message to be easier to read on GitHub as well as in various git tools. ### Revert If the commit reverts a previous commit, it should begin with `revert:`, followed by the header of the reverted commit. In the body it should say: `This reverts commit .`, where the hash is the SHA of the commit being reverted. ### Type Must be one of the following: - **feat**: A new feature - **fix**: A bug fix - **docs**: Documentation only changes - **style**: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) - **refactor**: A code change that neither fixes a bug nor adds a feature - **perf**: A code change that improves performance - **test**: Adding missing tests - **chore**: Changes to the build process or auxiliary tools and libraries such as documentation generation ### Scope The scope could be anything specifying the place of the commit change. For example `Observable`, `Subject`, `switchMap`, etc. ### Subject The subject contains succinct description of the change: - use the imperative, present tense: "change" not "changed" nor "changes" - don't capitalize first letter - no dot (.) at the end ### Body Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes". The body should include the motivation for the change and contrast this with previous behavior. ### Footer The footer should contain any information about **Breaking Changes** and is also the place to reference GitHub issues that this commit **Closes**. **Breaking Changes** should start with the word `BREAKING CHANGE:` with a space or two newlines. The rest of the commit message is then used for this. rxjs-7.5.7/Dockerfile000066400000000000000000000002221431412030200144740ustar00rootroot00000000000000FROM node:lts # Create app directory WORKDIR /rxjs COPY . . WORKDIR /rxjs/docs_app RUN npm run setup EXPOSE 4200 CMD ["npm", "start:docker"]rxjs-7.5.7/LICENSE.txt000066400000000000000000000254701431412030200143410ustar00rootroot00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. rxjs-7.5.7/README.md000066400000000000000000000073721431412030200137760ustar00rootroot00000000000000# RxJS Logo RxJS: Reactive Extensions For JavaScript ![CI](https://github.com/reactivex/rxjs/workflows/CI/badge.svg) [![npm version](https://badge.fury.io/js/rxjs.svg)](http://badge.fury.io/js/rxjs) [![Join the chat at https://gitter.im/Reactive-Extensions/RxJS](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Reactive-Extensions/RxJS?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) # The Roadmap from RxJS 7 to 8 Curious what's next for RxJS? Follow along with [Issue 6367](https://github.com/ReactiveX/rxjs/issues/6367). # RxJS 7 ### FOR 6.X PLEASE GO TO [THE 6.x BRANCH](https://github.com/ReactiveX/rxjs/tree/6.x) Reactive Extensions Library for JavaScript. This is a rewrite of [Reactive-Extensions/RxJS](https://github.com/Reactive-Extensions/RxJS) and is the latest production-ready version of RxJS. This rewrite is meant to have better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface. [Apache 2.0 License](LICENSE.txt) - [Code of Conduct](CODE_OF_CONDUCT.md) - [Contribution Guidelines](CONTRIBUTING.md) - [Maintainer Guidelines](docs_app/content/maintainer-guidelines.md) - [API Documentation](https://rxjs.dev/) ## Versions In This Repository - [master](https://github.com/ReactiveX/rxjs/commits/master) - This is all of the current work, which is against v7 of RxJS right now - [6.x](https://github.com/ReactiveX/rxjs/tree/6.x) - This is the branch for version 6.X Most PRs should be made to **master**. ## Important By contributing or commenting on issues in this repository, whether you've read them or not, you're agreeing to the [Contributor Code of Conduct](CODE_OF_CONDUCT.md). Much like traffic laws, ignorance doesn't grant you immunity. ## Installation and Usage ### ES6 via npm ```shell npm install rxjs ``` It's recommended to pull in the Observable creation methods you need directly from `'rxjs'` as shown below with `range`. If you're using RxJS version 7.2 or above, you can pull in any operator you need from the same spot, `'rxjs'`. ```ts import { range, filter, map } from 'rxjs'; range(1, 200) .pipe( filter(x => x % 2 === 1), map(x => x + x) ) .subscribe(x => console.log(x)); ``` If you're using RxJS version below 7.2, you can pull in any operator you need from one spot, under `'rxjs/operators'`. ```ts import { range } from 'rxjs'; import { filter, map } from 'rxjs/operators'; range(1, 200) .pipe( filter(x => x % 2 === 1), map(x => x + x) ) .subscribe(x => console.log(x)); ``` ### CDN For CDN, you can use [unpkg](https://unpkg.com/): [https://unpkg.com/rxjs@^7/dist/bundles/rxjs.umd.min.js](https://unpkg.com/rxjs@%5E7/dist/bundles/rxjs.umd.min.js) The global namespace for rxjs is `rxjs`: ```js const { range } = rxjs; const { filter, map } = rxjs.operators; range(1, 200) .pipe( filter(x => x % 2 === 1), map(x => x + x) ) .subscribe(x => console.log(x)); ``` ## Goals - Smaller overall bundles sizes - Provide better performance than preceding versions of RxJS - To model/follow the [Observable Spec Proposal](https://github.com/zenparsing/es-observable) to the observable - Provide more modular file structure in a variety of formats - Provide more debuggable call stacks than preceding versions of RxJS ## Building/Testing - `npm run compile` build everything - `npm test` run tests - `npm run dtslint` run dtslint tests ## Adding documentation We appreciate all contributions to the documentation of any type. All of the information needed to get the docs app up and running locally as well as how to contribute can be found in the [documentation directory](./docs_app). rxjs-7.5.7/api_guard/000077500000000000000000000000001431412030200144415ustar00rootroot00000000000000rxjs-7.5.7/api_guard/dist/000077500000000000000000000000001431412030200154045ustar00rootroot00000000000000rxjs-7.5.7/api_guard/dist/types/000077500000000000000000000000001431412030200165505ustar00rootroot00000000000000rxjs-7.5.7/api_guard/dist/types/ajax/000077500000000000000000000000001431412030200174735ustar00rootroot00000000000000rxjs-7.5.7/api_guard/dist/types/ajax/index.d.ts000066400000000000000000000040171431412030200213760ustar00rootroot00000000000000export declare const ajax: AjaxCreationMethod; export interface AjaxConfig { async?: boolean; body?: any; createXHR?: () => XMLHttpRequest; crossDomain?: boolean; headers?: Readonly>; includeDownloadProgress?: boolean; includeUploadProgress?: boolean; method?: string; password?: string; progressSubscriber?: PartialObserver; queryParams?: string | URLSearchParams | Record | [string, string | number | boolean | string[] | number[] | boolean[]][]; responseType?: XMLHttpRequestResponseType; timeout?: number; url: string; user?: string; withCredentials?: boolean; xsrfCookieName?: string; xsrfHeaderName?: string; } export declare type AjaxDirection = 'upload' | 'download'; export interface AjaxError extends Error { request: AjaxRequest; response: any; responseType: XMLHttpRequestResponseType; status: number; xhr: XMLHttpRequest; } export declare const AjaxError: AjaxErrorCtor; export interface AjaxRequest { async: boolean; body?: any; crossDomain: boolean; headers: Readonly>; method: string; password?: string; responseType: XMLHttpRequestResponseType; timeout: number; url: string; user?: string; withCredentials: boolean; } export declare class AjaxResponse { readonly loaded: number; readonly originalEvent: ProgressEvent; readonly request: AjaxRequest; readonly response: T; readonly responseHeaders: Record; readonly responseType: XMLHttpRequestResponseType; readonly status: number; readonly total: number; readonly type: AjaxResponseType; readonly xhr: XMLHttpRequest; constructor( originalEvent: ProgressEvent, xhr: XMLHttpRequest, request: AjaxRequest, type?: AjaxResponseType); } export interface AjaxTimeoutError extends AjaxError { } export declare const AjaxTimeoutError: AjaxTimeoutErrorCtor; rxjs-7.5.7/api_guard/dist/types/fetch/000077500000000000000000000000001431412030200176415ustar00rootroot00000000000000rxjs-7.5.7/api_guard/dist/types/fetch/index.d.ts000066400000000000000000000004071431412030200215430ustar00rootroot00000000000000export declare function fromFetch(input: string | Request, init: RequestInit & { selector: (response: Response) => ObservableInput; }): Observable; export declare function fromFetch(input: string | Request, init?: RequestInit): Observable; rxjs-7.5.7/api_guard/dist/types/index.d.ts000066400000000000000000001622451431412030200204630ustar00rootroot00000000000000export declare const animationFrame: AnimationFrameScheduler; export declare function animationFrames(timestampProvider?: TimestampProvider): Observable<{ timestamp: number; elapsed: number; }>; export declare const animationFrameScheduler: AnimationFrameScheduler; export interface ArgumentOutOfRangeError extends Error { } export declare const ArgumentOutOfRangeError: ArgumentOutOfRangeErrorCtor; export declare const asap: AsapScheduler; export declare const asapScheduler: AsapScheduler; export declare const async: AsyncScheduler; export declare const asyncScheduler: AsyncScheduler; export declare class AsyncSubject extends Subject { complete(): void; next(value: T): void; } export declare function audit(durationSelector: (value: T) => ObservableInput): MonoTypeOperatorFunction; export declare function auditTime(duration: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export interface BasicGroupByOptions { connector?: () => SubjectLike; duration?: (grouped: GroupedObservable) => ObservableInput; element?: undefined; } export declare class BehaviorSubject extends Subject { get value(): T; constructor(_value: T); getValue(): T; next(value: T): void; } export declare function bindCallback(callbackFunc: (...args: any[]) => void, resultSelector: (...args: any[]) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; export declare function bindCallback(callbackFunc: (...args: [...A, (...res: R) => void]) => void, schedulerLike?: SchedulerLike): (...arg: A) => Observable; export declare function bindNodeCallback(callbackFunc: (...args: any[]) => void, resultSelector: (...args: any[]) => any, scheduler?: SchedulerLike): (...args: any[]) => Observable; export declare function bindNodeCallback(callbackFunc: (...args: [...A, (err: any, ...res: R) => void]) => void, schedulerLike?: SchedulerLike): (...arg: A) => Observable; export declare function buffer(closingNotifier: Observable): OperatorFunction; export declare function bufferCount(bufferSize: number, startBufferEvery?: number | null): OperatorFunction; export declare function bufferTime(bufferTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction; export declare function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, scheduler?: SchedulerLike): OperatorFunction; export declare function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, maxBufferSize: number, scheduler?: SchedulerLike): OperatorFunction; export declare function bufferToggle(openings: ObservableInput, closingSelector: (value: O) => ObservableInput): OperatorFunction; export declare function bufferWhen(closingSelector: () => ObservableInput): OperatorFunction; export declare function catchError>(selector: (err: any, caught: Observable) => O): OperatorFunction>; export declare const combineAll: typeof combineLatestAll; export declare function combineLatest(arg: T): Observable; export declare function combineLatest(sources: []): Observable; export declare function combineLatest(sources: readonly [...ObservableInputTuple]): Observable; export declare function combineLatest(sources: readonly [...ObservableInputTuple], resultSelector: (...values: A) => R, scheduler: SchedulerLike): Observable; export declare function combineLatest(sources: readonly [...ObservableInputTuple], resultSelector: (...values: A) => R): Observable; export declare function combineLatest(sources: readonly [...ObservableInputTuple], scheduler: SchedulerLike): Observable; export declare function combineLatest(...sources: [...ObservableInputTuple]): Observable; export declare function combineLatest(...sourcesAndResultSelectorAndScheduler: [...ObservableInputTuple, (...values: A) => R, SchedulerLike]): Observable; export declare function combineLatest(...sourcesAndResultSelector: [...ObservableInputTuple, (...values: A) => R]): Observable; export declare function combineLatest(...sourcesAndScheduler: [...ObservableInputTuple, SchedulerLike]): Observable; export declare function combineLatest(sourcesObject: { [K in any]: never; }): Observable; export declare function combineLatest>>(sourcesObject: T): Observable<{ [K in keyof T]: ObservedValueOf; }>; export declare function combineLatestAll(): OperatorFunction, T[]>; export declare function combineLatestAll(): OperatorFunction; export declare function combineLatestAll(project: (...values: T[]) => R): OperatorFunction, R>; export declare function combineLatestAll(project: (...values: Array) => R): OperatorFunction; export declare function combineLatestWith(...otherSources: [...ObservableInputTuple]): OperatorFunction>; export interface CompleteNotification { kind: 'C'; } export interface CompletionObserver { closed?: boolean; complete: () => void; error?: (err: any) => void; next?: (value: T) => void; } export declare function concat(...inputs: [...ObservableInputTuple]): Observable; export declare function concat(...inputsAndScheduler: [...ObservableInputTuple, SchedulerLike]): Observable; export declare function concatAll>(): OperatorFunction>; export declare function concatMap>(project: (value: T, index: number) => O): OperatorFunction>; export declare function concatMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>; export declare function concatMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; export declare function concatMapTo>(observable: O): OperatorFunction>; export declare function concatMapTo>(observable: O, resultSelector: undefined): OperatorFunction>; export declare function concatMapTo>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; export declare function concatWith(...otherSources: [...ObservableInputTuple]): OperatorFunction; export declare const config: GlobalConfig; export declare function connect>(selector: (shared: Observable) => O, config?: ConnectConfig): OperatorFunction>; export declare function connectable(source: ObservableInput, config?: ConnectableConfig): Connectable; export interface Connectable extends Observable { connect(): Subscription; } export declare class ConnectableObservable extends Observable { protected _connection: Subscription | null; protected _refCount: number; protected _subject: Subject | null; source: Observable; protected subjectFactory: () => Subject; constructor(source: Observable, subjectFactory: () => Subject); protected _teardown(): void; connect(): Subscription; protected getSubject(): Subject; refCount(): Observable; } export interface ConnectConfig { connector: () => SubjectLike; } export declare type Cons = ((arg: X, ...rest: Y) => any) extends (...args: infer U) => any ? U : never; export declare function count(predicate?: (value: T, index: number) => boolean): OperatorFunction; export declare function debounce(durationSelector: (value: T) => ObservableInput): MonoTypeOperatorFunction; export declare function debounceTime(dueTime: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export declare function defaultIfEmpty(defaultValue: R): OperatorFunction; export declare function defer>(observableFactory: () => R): Observable>; export declare function delay(due: number | Date, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export declare function delayWhen(delayDurationSelector: (value: T, index: number) => Observable, subscriptionDelay: Observable): MonoTypeOperatorFunction; export declare function delayWhen(delayDurationSelector: (value: T, index: number) => Observable): MonoTypeOperatorFunction; export declare function dematerialize>(): OperatorFunction>; export declare function distinct(keySelector?: (value: T) => K, flushes?: Observable): MonoTypeOperatorFunction; export declare function distinctUntilChanged(comparator?: (previous: T, current: T) => boolean): MonoTypeOperatorFunction; export declare function distinctUntilChanged(comparator: (previous: K, current: K) => boolean, keySelector: (value: T) => K): MonoTypeOperatorFunction; export declare function distinctUntilKeyChanged(key: keyof T): MonoTypeOperatorFunction; export declare function distinctUntilKeyChanged(key: K, compare: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction; export declare function elementAt(index: number, defaultValue?: D): OperatorFunction; export declare function empty(scheduler?: SchedulerLike): Observable; export declare const EMPTY: Observable; export interface EmptyError extends Error { } export declare const EmptyError: EmptyErrorCtor; export declare function endWith(scheduler: SchedulerLike): MonoTypeOperatorFunction; export declare function endWith(...valuesAndScheduler: [...A, SchedulerLike]): OperatorFunction>; export declare function endWith(...values: A): OperatorFunction>; export interface ErrorNotification { error: any; kind: 'E'; } export interface ErrorObserver { closed?: boolean; complete?: () => void; error: (err: any) => void; next?: (value: T) => void; } export declare function every(predicate: BooleanConstructor): OperatorFunction extends never ? false : boolean>; export declare function every(predicate: BooleanConstructor, thisArg: any): OperatorFunction extends never ? false : boolean>; export declare function every(predicate: (this: A, value: T, index: number, source: Observable) => boolean, thisArg: A): OperatorFunction; export declare function every(predicate: (value: T, index: number, source: Observable) => boolean): OperatorFunction; export declare const exhaust: typeof exhaustAll; export declare function exhaustAll>(): OperatorFunction>; export declare function exhaustMap>(project: (value: T, index: number) => O): OperatorFunction>; export declare function exhaustMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>; export declare function exhaustMap(project: (value: T, index: number) => ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction; export declare function expand>(project: (value: T, index: number) => O, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction>; export declare function expand>(project: (value: T, index: number) => O, concurrent: number | undefined, scheduler: SchedulerLike): OperatorFunction>; export declare type FactoryOrValue = T | (() => T); export declare type Falsy = null | undefined | false | 0 | -0 | 0n | ''; export declare function filter(predicate: (this: A, value: T, index: number) => value is S, thisArg: A): OperatorFunction; export declare function filter(predicate: (value: T, index: number) => value is S): OperatorFunction; export declare function filter(predicate: BooleanConstructor): OperatorFunction>; export declare function filter(predicate: (this: A, value: T, index: number) => boolean, thisArg: A): MonoTypeOperatorFunction; export declare function filter(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction; export declare function finalize(callback: () => void): MonoTypeOperatorFunction; export declare function find(predicate: BooleanConstructor): OperatorFunction>; export declare function find(predicate: (this: A, value: T, index: number, source: Observable) => value is S, thisArg: A): OperatorFunction; export declare function find(predicate: (value: T, index: number, source: Observable) => value is S): OperatorFunction; export declare function find(predicate: (this: A, value: T, index: number, source: Observable) => boolean, thisArg: A): OperatorFunction; export declare function find(predicate: (value: T, index: number, source: Observable) => boolean): OperatorFunction; export declare function findIndex(predicate: BooleanConstructor): OperatorFunction; export declare function findIndex(predicate: BooleanConstructor, thisArg: any): OperatorFunction; export declare function findIndex(predicate: (this: A, value: T, index: number, source: Observable) => boolean, thisArg: A): OperatorFunction; export declare function findIndex(predicate: (value: T, index: number, source: Observable) => boolean): OperatorFunction; export declare function first(predicate?: null, defaultValue?: D): OperatorFunction; export declare function first(predicate: BooleanConstructor): OperatorFunction>; export declare function first(predicate: BooleanConstructor, defaultValue: D): OperatorFunction | D>; export declare function first(predicate: (value: T, index: number, source: Observable) => value is S, defaultValue?: S): OperatorFunction; export declare function first(predicate: (value: T, index: number, source: Observable) => value is S, defaultValue: D): OperatorFunction; export declare function first(predicate: (value: T, index: number, source: Observable) => boolean, defaultValue?: D): OperatorFunction; export declare function firstValueFrom(source: Observable, config: FirstValueFromConfig): Promise; export declare function firstValueFrom(source: Observable): Promise; export declare const flatMap: typeof mergeMap; export declare function forkJoin(arg: T): Observable; export declare function forkJoin(scheduler: null | undefined): Observable; export declare function forkJoin(sources: readonly []): Observable; export declare function forkJoin(sources: readonly [...ObservableInputTuple]): Observable; export declare function forkJoin(sources: readonly [...ObservableInputTuple], resultSelector: (...values: A) => R): Observable; export declare function forkJoin(...sources: [...ObservableInputTuple]): Observable; export declare function forkJoin(...sourcesAndResultSelector: [...ObservableInputTuple, (...values: A) => R]): Observable; export declare function forkJoin(sourcesObject: { [K in any]: never; }): Observable; export declare function forkJoin>>(sourcesObject: T): Observable<{ [K in keyof T]: ObservedValueOf; }>; export declare function from>(input: O): Observable>; export declare function from>(input: O, scheduler: SchedulerLike | undefined): Observable>; export declare function fromEvent(target: HasEventTargetAddRemove | ArrayLike>, eventName: string): Observable; export declare function fromEvent(target: HasEventTargetAddRemove | ArrayLike>, eventName: string, resultSelector: (event: T) => R): Observable; export declare function fromEvent(target: HasEventTargetAddRemove | ArrayLike>, eventName: string, options: EventListenerOptions): Observable; export declare function fromEvent(target: HasEventTargetAddRemove | ArrayLike>, eventName: string, options: EventListenerOptions, resultSelector: (event: T) => R): Observable; export declare function fromEvent(target: NodeStyleEventEmitter | ArrayLike, eventName: string): Observable; export declare function fromEvent(target: NodeStyleEventEmitter | ArrayLike, eventName: string): Observable; export declare function fromEvent(target: NodeStyleEventEmitter | ArrayLike, eventName: string, resultSelector: (...args: any[]) => R): Observable; export declare function fromEvent(target: NodeCompatibleEventEmitter | ArrayLike, eventName: string): Observable; export declare function fromEvent(target: NodeCompatibleEventEmitter | ArrayLike, eventName: string): Observable; export declare function fromEvent(target: NodeCompatibleEventEmitter | ArrayLike, eventName: string, resultSelector: (...args: any[]) => R): Observable; export declare function fromEvent(target: JQueryStyleEventEmitter | ArrayLike>, eventName: string): Observable; export declare function fromEvent(target: JQueryStyleEventEmitter | ArrayLike>, eventName: string, resultSelector: (value: T, ...args: any[]) => R): Observable; export declare function fromEventPattern(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void): Observable; export declare function fromEventPattern(addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void, resultSelector?: (...args: any[]) => T): Observable; export declare function generate(initialState: S, condition: ConditionFunc, iterate: IterateFunc, resultSelector: ResultFunc, scheduler?: SchedulerLike): Observable; export declare function generate(initialState: S, condition: ConditionFunc, iterate: IterateFunc, scheduler?: SchedulerLike): Observable; export declare function generate(options: GenerateBaseOptions): Observable; export declare function generate(options: GenerateOptions): Observable; export interface GlobalConfig { Promise?: PromiseConstructorLike; onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null; onUnhandledError: ((err: any) => void) | null; useDeprecatedNextContext: boolean; useDeprecatedSynchronousErrorHandling: boolean; } export declare function groupBy(key: (value: T) => K, options: BasicGroupByOptions): OperatorFunction>; export declare function groupBy(key: (value: T) => K, options: GroupByOptionsWithElement): OperatorFunction>; export declare function groupBy(key: (value: T) => value is K): OperatorFunction | GroupedObservable>>; export declare function groupBy(key: (value: T) => K): OperatorFunction>; export declare function groupBy(key: (value: T) => K, element: void, duration: (grouped: GroupedObservable) => Observable): OperatorFunction>; export declare function groupBy(key: (value: T) => K, element?: (value: T) => R, duration?: (grouped: GroupedObservable) => Observable): OperatorFunction>; export declare function groupBy(key: (value: T) => K, element?: (value: T) => R, duration?: (grouped: GroupedObservable) => Observable, connector?: () => Subject): OperatorFunction>; export interface GroupByOptionsWithElement { connector?: () => SubjectLike; duration?: (grouped: GroupedObservable) => ObservableInput; element: (value: T) => E; } export interface GroupedObservable extends Observable { readonly key: K; } export declare type Head = ((...args: X) => any) extends (arg: infer U, ...rest: any[]) => any ? U : never; export declare function identity(x: T): T; export declare function ignoreElements(): OperatorFunction; export declare function iif(condition: () => boolean, trueResult: ObservableInput, falseResult: ObservableInput): Observable; export interface InteropObservable { [Symbol.observable]: () => Subscribable; } export declare function interval(period?: number, scheduler?: SchedulerLike): Observable; export declare function isEmpty(): OperatorFunction; export declare function isObservable(obj: any): obj is Observable; export declare function last(predicate: BooleanConstructor): OperatorFunction>; export declare function last(predicate: BooleanConstructor, defaultValue: D): OperatorFunction | D>; export declare function last(predicate?: null, defaultValue?: D): OperatorFunction; export declare function last(predicate: (value: T, index: number, source: Observable) => value is S, defaultValue?: S): OperatorFunction; export declare function last(predicate: (value: T, index: number, source: Observable) => boolean, defaultValue?: D): OperatorFunction; export declare function lastValueFrom(source: Observable, config: LastValueFromConfig): Promise; export declare function lastValueFrom(source: Observable): Promise; export declare function map(project: (value: T, index: number) => R): OperatorFunction; export declare function map(project: (this: A, value: T, index: number) => R, thisArg: A): OperatorFunction; export declare function mapTo(value: R): OperatorFunction; export declare function mapTo(value: R): OperatorFunction; export declare function materialize(): OperatorFunction & ObservableNotification>; export declare function max(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction; export declare function merge(...sources: [...ObservableInputTuple]): Observable; export declare function merge(...sourcesAndConcurrency: [...ObservableInputTuple, number?]): Observable; export declare function merge(...sourcesAndScheduler: [...ObservableInputTuple, SchedulerLike?]): Observable; export declare function merge(...sourcesAndConcurrencyAndScheduler: [...ObservableInputTuple, number?, SchedulerLike?]): Observable; export declare function mergeAll>(concurrent?: number): OperatorFunction>; export declare function mergeMap>(project: (value: T, index: number) => O, concurrent?: number): OperatorFunction>; export declare function mergeMap>(project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number): OperatorFunction>; export declare function mergeMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction; export declare function mergeMapTo>(innerObservable: O, concurrent?: number): OperatorFunction>; export declare function mergeMapTo>(innerObservable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction; export declare function mergeScan(accumulator: (acc: R, value: T, index: number) => ObservableInput, seed: R, concurrent?: number): OperatorFunction; export declare function mergeWith(...otherSources: [...ObservableInputTuple]): OperatorFunction; export declare function min(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction; export interface MonoTypeOperatorFunction extends OperatorFunction { } export declare function multicast(subject: Subject): UnaryFunction, ConnectableObservable>; export declare function multicast>(subject: Subject, selector: (shared: Observable) => O): OperatorFunction>; export declare function multicast(subjectFactory: () => Subject): UnaryFunction, ConnectableObservable>; export declare function multicast>(subjectFactory: () => Subject, selector: (shared: Observable) => O): OperatorFunction>; export declare function never(): Observable; export declare const NEVER: Observable; export interface NextNotification { kind: 'N'; value: T; } export interface NextObserver { closed?: boolean; complete?: () => void; error?: (err: any) => void; next: (value: T) => void; } export declare function noop(): void; export interface NotFoundError extends Error { } export declare const NotFoundError: NotFoundErrorCtor; export declare class Notification { readonly error?: any; readonly hasValue: boolean; readonly kind: 'N' | 'E' | 'C'; readonly value?: T | undefined; constructor(kind: 'C'); constructor(kind: 'E', value: undefined, error: any); constructor(kind: 'N', value?: T); accept(next: (value: T) => void, error: (err: any) => void, complete: () => void): void; accept(next: (value: T) => void, error: (err: any) => void): void; accept(next: (value: T) => void): void; accept(observer: PartialObserver): void; do(next: (value: T) => void, error: (err: any) => void, complete: () => void): void; do(next: (value: T) => void, error: (err: any) => void): void; do(next: (value: T) => void): void; observe(observer: PartialObserver): void; toObservable(): Observable; static createComplete(): Notification & CompleteNotification; static createError(err?: any): Notification & ErrorNotification; static createNext(value: T): Notification & NextNotification; } export declare enum NotificationKind { NEXT = "N", ERROR = "E", COMPLETE = "C" } export interface ObjectUnsubscribedError extends Error { } export declare const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor; export declare const observable: string | symbol; export declare class Observable implements Subscribable { operator: Operator | undefined; source: Observable | undefined; constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic); forEach(next: (value: T) => void): Promise; forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise; lift(operator?: Operator): Observable; pipe(): Observable; pipe(op1: OperatorFunction): Observable; pipe(op1: OperatorFunction, op2: OperatorFunction): Observable; pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable; pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction): Observable; pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction): Observable; pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction): Observable; pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction): Observable; pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction): Observable; pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction): Observable; pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction, ...operations: OperatorFunction[]): Observable; subscribe(observer?: Partial>): Subscription; subscribe(next: (value: T) => void): Subscription; subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription; toPromise(): Promise; toPromise(PromiseCtor: typeof Promise): Promise; toPromise(PromiseCtor: PromiseConstructorLike): Promise; static create: (...args: any[]) => any; } export declare type ObservableInput = Observable | InteropObservable | AsyncIterable | PromiseLike | ArrayLike | Iterable | ReadableStreamLike; export declare type ObservableInputTuple = { [K in keyof T]: ObservableInput; }; export declare type ObservableLike = InteropObservable; export declare type ObservableNotification = NextNotification | ErrorNotification | CompleteNotification; export declare type ObservedValueOf = O extends ObservableInput ? T : never; export declare type ObservedValuesFromArray = ObservedValueUnionFromArray; export declare type ObservedValueTupleFromArray = { [K in keyof X]: ObservedValueOf; }; export declare type ObservedValueUnionFromArray = X extends Array> ? T : never; export declare function observeOn(scheduler: SchedulerLike, delay?: number): MonoTypeOperatorFunction; export interface Observer { complete: () => void; error: (err: any) => void; next: (value: T) => void; } export declare function of(value: null): Observable; export declare function of(value: undefined): Observable; export declare function of(scheduler: SchedulerLike): Observable; export declare function of(...valuesAndScheduler: [...A, SchedulerLike]): Observable>; export declare function of(): Observable; export declare function of(): Observable; export declare function of(value: T): Observable; export declare function of(...values: A): Observable>; export declare function onErrorResumeNext(sources: [...ObservableInputTuple]): Observable; export declare function onErrorResumeNext(...sources: [...ObservableInputTuple]): Observable; export interface Operator { call(subscriber: Subscriber, source: any): TeardownLogic; } export interface OperatorFunction extends UnaryFunction, Observable> { } export declare function pairs(arr: readonly T[], scheduler?: SchedulerLike): Observable<[string, T]>; export declare function pairs>(obj: O, scheduler?: SchedulerLike): Observable<[keyof O, O[keyof O]]>; export declare function pairs(iterable: Iterable, scheduler?: SchedulerLike): Observable<[string, T]>; export declare function pairs(n: number | bigint | boolean | ((...args: any[]) => any) | symbol, scheduler?: SchedulerLike): Observable<[never, never]>; export declare function pairwise(): OperatorFunction; export declare type PartialObserver = NextObserver | ErrorObserver | CompletionObserver; export declare function partition(source: ObservableInput, predicate: (this: A, value: T, index: number) => value is U, thisArg: A): [Observable, Observable>]; export declare function partition(source: ObservableInput, predicate: (value: T, index: number) => value is U): [Observable, Observable>]; export declare function partition(source: ObservableInput, predicate: (this: A, value: T, index: number) => boolean, thisArg: A): [Observable, Observable]; export declare function partition(source: ObservableInput, predicate: (value: T, index: number) => boolean): [Observable, Observable]; export declare function pipe(): typeof identity; export declare function pipe(fn1: UnaryFunction): UnaryFunction; export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction; export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction; export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction): UnaryFunction; export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction): UnaryFunction; export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction): UnaryFunction; export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction): UnaryFunction; export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction): UnaryFunction; export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction): UnaryFunction; export declare function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction, fn4: UnaryFunction, fn5: UnaryFunction, fn6: UnaryFunction, fn7: UnaryFunction, fn8: UnaryFunction, fn9: UnaryFunction, ...fns: UnaryFunction[]): UnaryFunction; export declare function pluck(k1: K1): OperatorFunction; export declare function pluck(k1: K1, k2: K2): OperatorFunction; export declare function pluck(k1: K1, k2: K2, k3: K3): OperatorFunction; export declare function pluck(k1: K1, k2: K2, k3: K3, k4: K4): OperatorFunction; export declare function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5): OperatorFunction; export declare function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6): OperatorFunction; export declare function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6, ...rest: string[]): OperatorFunction; export declare function pluck(...properties: string[]): OperatorFunction; export declare function publish(): UnaryFunction, ConnectableObservable>; export declare function publish>(selector: (shared: Observable) => O): OperatorFunction>; export declare function publishBehavior(initialValue: T): UnaryFunction, ConnectableObservable>; export declare function publishLast(): UnaryFunction, ConnectableObservable>; export declare function publishReplay(bufferSize?: number, windowTime?: number, timestampProvider?: TimestampProvider): MonoTypeOperatorFunction; export declare function publishReplay>(bufferSize: number | undefined, windowTime: number | undefined, selector: (shared: Observable) => O, timestampProvider?: TimestampProvider): OperatorFunction>; export declare function publishReplay>(bufferSize: number | undefined, windowTime: number | undefined, selector: undefined, timestampProvider: TimestampProvider): OperatorFunction>; export declare const queue: QueueScheduler; export declare const queueScheduler: QueueScheduler; export declare function race(inputs: [...ObservableInputTuple]): Observable; export declare function race(...inputs: [...ObservableInputTuple]): Observable; export declare function raceWith(...otherSources: [...ObservableInputTuple]): OperatorFunction; export declare function range(start: number, count?: number): Observable; export declare function range(start: number, count: number | undefined, scheduler: SchedulerLike): Observable; export interface ReadableStreamLike { getReader(): ReadableStreamDefaultReaderLike; } export declare function reduce(accumulator: (acc: A | V, value: V, index: number) => A): OperatorFunction; export declare function reduce(accumulator: (acc: A, value: V, index: number) => A, seed: A): OperatorFunction; export declare function reduce(accumulator: (acc: A | S, value: V, index: number) => A, seed: S): OperatorFunction; export declare function refCount(): MonoTypeOperatorFunction; export declare function repeat(countOrConfig?: number | RepeatConfig): MonoTypeOperatorFunction; export declare function repeatWhen(notifier: (notifications: Observable) => Observable): MonoTypeOperatorFunction; export declare class ReplaySubject extends Subject { constructor(_bufferSize?: number, _windowTime?: number, _timestampProvider?: TimestampProvider); next(value: T): void; } export declare function retry(count?: number): MonoTypeOperatorFunction; export declare function retry(config: RetryConfig): MonoTypeOperatorFunction; export interface RetryConfig { count?: number; delay?: number | ((error: any, retryCount: number) => ObservableInput); resetOnSuccess?: boolean; } export declare function retryWhen(notifier: (errors: Observable) => Observable): MonoTypeOperatorFunction; export declare function sample(notifier: Observable): MonoTypeOperatorFunction; export declare function sampleTime(period: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export declare function scan(accumulator: (acc: A | V, value: V, index: number) => A): OperatorFunction; export declare function scan(accumulator: (acc: A, value: V, index: number) => A, seed: A): OperatorFunction; export declare function scan(accumulator: (acc: A | S, value: V, index: number) => A, seed: S): OperatorFunction; export declare function scheduled(input: ObservableInput, scheduler: SchedulerLike): Observable; export declare class Scheduler implements SchedulerLike { now: () => number; constructor(schedulerActionCtor: typeof Action, now?: () => number); schedule(work: (this: SchedulerAction, state?: T) => void, delay?: number, state?: T): Subscription; static now: () => number; } export interface SchedulerAction extends Subscription { schedule(state?: T, delay?: number): Subscription; } export interface SchedulerLike extends TimestampProvider { schedule(work: (this: SchedulerAction, state: T) => void, delay: number, state: T): Subscription; schedule(work: (this: SchedulerAction, state?: T) => void, delay: number, state?: T): Subscription; schedule(work: (this: SchedulerAction, state?: T) => void, delay?: number, state?: T): Subscription; } export declare function sequenceEqual(compareTo: Observable, comparator?: (a: T, b: T) => boolean): OperatorFunction; export interface SequenceError extends Error { } export declare const SequenceError: SequenceErrorCtor; export declare function share(): MonoTypeOperatorFunction; export declare function share(options: ShareConfig): MonoTypeOperatorFunction; export interface ShareConfig { connector?: () => SubjectLike; resetOnComplete?: boolean | (() => Observable); resetOnError?: boolean | ((error: any) => Observable); resetOnRefCountZero?: boolean | (() => Observable); } export declare function shareReplay(config: ShareReplayConfig): MonoTypeOperatorFunction; export declare function shareReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export interface ShareReplayConfig { bufferSize?: number; refCount: boolean; scheduler?: SchedulerLike; windowTime?: number; } export declare function single(predicate: BooleanConstructor): OperatorFunction>; export declare function single(predicate?: (value: T, index: number, source: Observable) => boolean): MonoTypeOperatorFunction; export declare function skip(count: number): MonoTypeOperatorFunction; export declare function skipLast(skipCount: number): MonoTypeOperatorFunction; export declare function skipUntil(notifier: Observable): MonoTypeOperatorFunction; export declare function skipWhile(predicate: BooleanConstructor): OperatorFunction extends never ? never : T>; export declare function skipWhile(predicate: (value: T, index: number) => true): OperatorFunction; export declare function skipWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction; export declare function startWith(value: null): OperatorFunction; export declare function startWith(value: undefined): OperatorFunction; export declare function startWith(...valuesAndScheduler: [...A, SchedulerLike]): OperatorFunction>; export declare function startWith(...values: A): OperatorFunction>; export declare class Subject extends Observable implements SubscriptionLike { closed: boolean; hasError: boolean; isStopped: boolean; get observed(): boolean; observers: Observer[]; thrownError: any; constructor(); asObservable(): Observable; complete(): void; error(err: any): void; lift(operator: Operator): Observable; next(value: T): void; unsubscribe(): void; static create: (...args: any[]) => any; } export interface SubjectLike extends Observer, Subscribable { } export interface Subscribable { subscribe(observer: Partial>): Unsubscribable; } export declare type SubscribableOrPromise = Subscribable | Subscribable | PromiseLike | InteropObservable; export declare function subscribeOn(scheduler: SchedulerLike, delay?: number): MonoTypeOperatorFunction; export declare class Subscriber extends Subscription implements Observer { protected destination: Subscriber | Observer; protected isStopped: boolean; constructor(destination?: Subscriber | Observer); protected _complete(): void; protected _error(err: any): void; protected _next(value: T): void; complete(): void; error(err?: any): void; next(value?: T): void; unsubscribe(): void; static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber; } export declare class Subscription implements SubscriptionLike { closed: boolean; constructor(initialTeardown?: (() => void) | undefined); add(teardown: TeardownLogic): void; remove(teardown: Exclude): void; unsubscribe(): void; static EMPTY: Subscription; } export interface SubscriptionLike extends Unsubscribable { readonly closed: boolean; unsubscribe(): void; } export declare function switchAll>(): OperatorFunction>; export declare function switchMap>(project: (value: T, index: number) => O): OperatorFunction>; export declare function switchMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>; export declare function switchMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; export declare function switchMapTo>(observable: O): OperatorFunction>; export declare function switchMapTo>(observable: O, resultSelector: undefined): OperatorFunction>; export declare function switchMapTo>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; export declare function switchScan>(accumulator: (acc: R, value: T, index: number) => O, seed: R): OperatorFunction>; export declare type Tail = ((...args: X) => any) extends (arg: any, ...rest: infer U) => any ? U : never; export declare function take(count: number): MonoTypeOperatorFunction; export declare function takeLast(count: number): MonoTypeOperatorFunction; export declare function takeUntil(notifier: ObservableInput): MonoTypeOperatorFunction; export declare function takeWhile(predicate: BooleanConstructor, inclusive: true): MonoTypeOperatorFunction; export declare function takeWhile(predicate: BooleanConstructor, inclusive: false): OperatorFunction>; export declare function takeWhile(predicate: BooleanConstructor): OperatorFunction>; export declare function takeWhile(predicate: (value: T, index: number) => value is S): OperatorFunction; export declare function takeWhile(predicate: (value: T, index: number) => value is S, inclusive: false): OperatorFunction; export declare function takeWhile(predicate: (value: T, index: number) => boolean, inclusive?: boolean): MonoTypeOperatorFunction; export declare function tap(observer?: Partial>): MonoTypeOperatorFunction; export declare function tap(next: (value: T) => void): MonoTypeOperatorFunction; export declare function tap(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): MonoTypeOperatorFunction; export declare type TeardownLogic = Subscription | Unsubscribable | (() => void) | void; export declare function throttle(durationSelector: (value: T) => ObservableInput, config?: ThrottleConfig): MonoTypeOperatorFunction; export interface ThrottleConfig { leading?: boolean; trailing?: boolean; } export declare function throttleTime(duration: number, scheduler?: SchedulerLike, config?: import("./throttle").ThrottleConfig): MonoTypeOperatorFunction; export declare function throwError(errorFactory: () => any): Observable; export declare function throwError(error: any): Observable; export declare function throwError(errorOrErrorFactory: any, scheduler: SchedulerLike): Observable; export declare function throwIfEmpty(errorFactory?: () => any): MonoTypeOperatorFunction; export declare function timeInterval(scheduler?: SchedulerLike): OperatorFunction>; export interface TimeInterval { interval: number; value: T; } export declare function timeout, M = unknown>(config: TimeoutConfig & { with: (info: TimeoutInfo) => O; }): OperatorFunction>; export declare function timeout(config: Omit, 'with'>): OperatorFunction; export declare function timeout(first: Date, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export declare function timeout(each: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export interface TimeoutConfig = ObservableInput, M = unknown> { each?: number; first?: number | Date; meta?: M; scheduler?: SchedulerLike; with?: (info: TimeoutInfo) => O; } export interface TimeoutError extends Error { info: TimeoutInfo | null; } export declare const TimeoutError: TimeoutErrorCtor; export interface TimeoutInfo { readonly lastValue: T | null; readonly meta: M; readonly seen: number; } export declare function timeoutWith(dueBy: Date, switchTo: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; export declare function timeoutWith(waitFor: number, switchTo: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; export declare function timer(due: number | Date, scheduler?: SchedulerLike): Observable<0>; export declare function timer(startDue: number | Date, intervalDuration: number, scheduler?: SchedulerLike): Observable; export declare function timer(dueTime: number | Date, unused: undefined, scheduler?: SchedulerLike): Observable<0>; export declare function timestamp(timestampProvider?: TimestampProvider): OperatorFunction>; export interface Timestamp { timestamp: number; value: T; } export interface TimestampProvider { now(): number; } export declare function toArray(): OperatorFunction; export declare type TruthyTypesOf = T extends Falsy ? never : T; export interface UnaryFunction { (source: T): R; } export interface Unsubscribable { unsubscribe(): void; } export interface UnsubscriptionError extends Error { readonly errors: any[]; } export declare const UnsubscriptionError: UnsubscriptionErrorCtor; export declare function using>(resourceFactory: () => Unsubscribable | void, observableFactory: (resource: Unsubscribable | void) => T | void): Observable>; export declare type ValueFromArray = A extends Array ? T : never; export declare type ValueFromNotification = T extends { kind: 'N' | 'E' | 'C'; } ? T extends NextNotification ? T extends { value: infer V; } ? V : undefined : never : never; export declare class VirtualAction extends AsyncAction { protected active: boolean; protected index: number; protected scheduler: VirtualTimeScheduler; protected work: (this: SchedulerAction, state?: T) => void; constructor(scheduler: VirtualTimeScheduler, work: (this: SchedulerAction, state?: T) => void, index?: number); protected _execute(state: T, delay: number): any; protected recycleAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay?: number): TimerHandle | undefined; protected requestAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay?: number): TimerHandle; schedule(state?: T, delay?: number): Subscription; } export declare class VirtualTimeScheduler extends AsyncScheduler { frame: number; index: number; maxFrames: number; constructor(schedulerActionCtor?: typeof AsyncAction, maxFrames?: number); flush(): void; static frameTimeFactor: number; } export declare function window(windowBoundaries: Observable): OperatorFunction>; export declare function windowCount(windowSize: number, startWindowEvery?: number): OperatorFunction>; export declare function windowTime(windowTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction>; export declare function windowTime(windowTimeSpan: number, windowCreationInterval: number, scheduler?: SchedulerLike): OperatorFunction>; export declare function windowTime(windowTimeSpan: number, windowCreationInterval: number | null | void, maxWindowSize: number, scheduler?: SchedulerLike): OperatorFunction>; export declare function windowToggle(openings: ObservableInput, closingSelector: (openValue: O) => ObservableInput): OperatorFunction>; export declare function windowWhen(closingSelector: () => ObservableInput): OperatorFunction>; export declare function withLatestFrom(...inputs: [...ObservableInputTuple]): OperatorFunction; export declare function withLatestFrom(...inputs: [...ObservableInputTuple, (...value: [T, ...O]) => R]): OperatorFunction; export declare function zip(sources: [...ObservableInputTuple]): Observable; export declare function zip(sources: [...ObservableInputTuple], resultSelector: (...values: A) => R): Observable; export declare function zip(...sources: [...ObservableInputTuple]): Observable; export declare function zip(...sourcesAndResultSelector: [...ObservableInputTuple, (...values: A) => R]): Observable; export declare function zipAll(): OperatorFunction, T[]>; export declare function zipAll(): OperatorFunction; export declare function zipAll(project: (...values: T[]) => R): OperatorFunction, R>; export declare function zipAll(project: (...values: Array) => R): OperatorFunction; export declare function zipWith(...otherInputs: [...ObservableInputTuple]): OperatorFunction>; rxjs-7.5.7/api_guard/dist/types/operators/000077500000000000000000000000001431412030200205665ustar00rootroot00000000000000rxjs-7.5.7/api_guard/dist/types/operators/index.d.ts000066400000000000000000000766661431412030200225140ustar00rootroot00000000000000export declare function audit(durationSelector: (value: T) => ObservableInput): MonoTypeOperatorFunction; export declare function auditTime(duration: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export interface BasicGroupByOptions { connector?: () => SubjectLike; duration?: (grouped: GroupedObservable) => ObservableInput; element?: undefined; } export declare function buffer(closingNotifier: Observable): OperatorFunction; export declare function bufferCount(bufferSize: number, startBufferEvery?: number | null): OperatorFunction; export declare function bufferTime(bufferTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction; export declare function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, scheduler?: SchedulerLike): OperatorFunction; export declare function bufferTime(bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, maxBufferSize: number, scheduler?: SchedulerLike): OperatorFunction; export declare function bufferToggle(openings: ObservableInput, closingSelector: (value: O) => ObservableInput): OperatorFunction; export declare function bufferWhen(closingSelector: () => ObservableInput): OperatorFunction; export declare function catchError>(selector: (err: any, caught: Observable) => O): OperatorFunction>; export declare const combineAll: typeof combineLatestAll; export declare function combineLatest(sources: [...ObservableInputTuple], project: (...values: [T, ...A]) => R): OperatorFunction; export declare function combineLatest(sources: [...ObservableInputTuple]): OperatorFunction; export declare function combineLatest(...sourcesAndProject: [...ObservableInputTuple, (...values: [T, ...A]) => R]): OperatorFunction; export declare function combineLatest(...sources: [...ObservableInputTuple]): OperatorFunction; export declare function combineLatestAll(): OperatorFunction, T[]>; export declare function combineLatestAll(): OperatorFunction; export declare function combineLatestAll(project: (...values: T[]) => R): OperatorFunction, R>; export declare function combineLatestAll(project: (...values: Array) => R): OperatorFunction; export declare function combineLatestWith(...otherSources: [...ObservableInputTuple]): OperatorFunction>; export declare function concat(...sources: [...ObservableInputTuple]): OperatorFunction; export declare function concat(...sourcesAndScheduler: [...ObservableInputTuple, SchedulerLike]): OperatorFunction; export declare function concatAll>(): OperatorFunction>; export declare function concatMap>(project: (value: T, index: number) => O): OperatorFunction>; export declare function concatMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>; export declare function concatMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; export declare function concatMapTo>(observable: O): OperatorFunction>; export declare function concatMapTo>(observable: O, resultSelector: undefined): OperatorFunction>; export declare function concatMapTo>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; export declare function concatWith(...otherSources: [...ObservableInputTuple]): OperatorFunction; export declare function connect>(selector: (shared: Observable) => O, config?: ConnectConfig): OperatorFunction>; export interface ConnectConfig { connector: () => SubjectLike; } export declare function count(predicate?: (value: T, index: number) => boolean): OperatorFunction; export declare function debounce(durationSelector: (value: T) => ObservableInput): MonoTypeOperatorFunction; export declare function debounceTime(dueTime: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export declare function defaultIfEmpty(defaultValue: R): OperatorFunction; export declare function delay(due: number | Date, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export declare function delayWhen(delayDurationSelector: (value: T, index: number) => Observable, subscriptionDelay: Observable): MonoTypeOperatorFunction; export declare function delayWhen(delayDurationSelector: (value: T, index: number) => Observable): MonoTypeOperatorFunction; export declare function dematerialize>(): OperatorFunction>; export declare function distinct(keySelector?: (value: T) => K, flushes?: Observable): MonoTypeOperatorFunction; export declare function distinctUntilChanged(comparator?: (previous: T, current: T) => boolean): MonoTypeOperatorFunction; export declare function distinctUntilChanged(comparator: (previous: K, current: K) => boolean, keySelector: (value: T) => K): MonoTypeOperatorFunction; export declare function distinctUntilKeyChanged(key: keyof T): MonoTypeOperatorFunction; export declare function distinctUntilKeyChanged(key: K, compare: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction; export declare function elementAt(index: number, defaultValue?: D): OperatorFunction; export declare function endWith(scheduler: SchedulerLike): MonoTypeOperatorFunction; export declare function endWith(...valuesAndScheduler: [...A, SchedulerLike]): OperatorFunction>; export declare function endWith(...values: A): OperatorFunction>; export declare function every(predicate: BooleanConstructor): OperatorFunction extends never ? false : boolean>; export declare function every(predicate: BooleanConstructor, thisArg: any): OperatorFunction extends never ? false : boolean>; export declare function every(predicate: (this: A, value: T, index: number, source: Observable) => boolean, thisArg: A): OperatorFunction; export declare function every(predicate: (value: T, index: number, source: Observable) => boolean): OperatorFunction; export declare const exhaust: typeof exhaustAll; export declare function exhaustAll>(): OperatorFunction>; export declare function exhaustMap>(project: (value: T, index: number) => O): OperatorFunction>; export declare function exhaustMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>; export declare function exhaustMap(project: (value: T, index: number) => ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R): OperatorFunction; export declare function expand>(project: (value: T, index: number) => O, concurrent?: number, scheduler?: SchedulerLike): OperatorFunction>; export declare function expand>(project: (value: T, index: number) => O, concurrent: number | undefined, scheduler: SchedulerLike): OperatorFunction>; export declare function filter(predicate: (this: A, value: T, index: number) => value is S, thisArg: A): OperatorFunction; export declare function filter(predicate: (value: T, index: number) => value is S): OperatorFunction; export declare function filter(predicate: BooleanConstructor): OperatorFunction>; export declare function filter(predicate: (this: A, value: T, index: number) => boolean, thisArg: A): MonoTypeOperatorFunction; export declare function filter(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction; export declare function finalize(callback: () => void): MonoTypeOperatorFunction; export declare function find(predicate: BooleanConstructor): OperatorFunction>; export declare function find(predicate: (this: A, value: T, index: number, source: Observable) => value is S, thisArg: A): OperatorFunction; export declare function find(predicate: (value: T, index: number, source: Observable) => value is S): OperatorFunction; export declare function find(predicate: (this: A, value: T, index: number, source: Observable) => boolean, thisArg: A): OperatorFunction; export declare function find(predicate: (value: T, index: number, source: Observable) => boolean): OperatorFunction; export declare function findIndex(predicate: BooleanConstructor): OperatorFunction; export declare function findIndex(predicate: BooleanConstructor, thisArg: any): OperatorFunction; export declare function findIndex(predicate: (this: A, value: T, index: number, source: Observable) => boolean, thisArg: A): OperatorFunction; export declare function findIndex(predicate: (value: T, index: number, source: Observable) => boolean): OperatorFunction; export declare function first(predicate?: null, defaultValue?: D): OperatorFunction; export declare function first(predicate: BooleanConstructor): OperatorFunction>; export declare function first(predicate: BooleanConstructor, defaultValue: D): OperatorFunction | D>; export declare function first(predicate: (value: T, index: number, source: Observable) => value is S, defaultValue?: S): OperatorFunction; export declare function first(predicate: (value: T, index: number, source: Observable) => value is S, defaultValue: D): OperatorFunction; export declare function first(predicate: (value: T, index: number, source: Observable) => boolean, defaultValue?: D): OperatorFunction; export declare const flatMap: typeof mergeMap; export declare function groupBy(key: (value: T) => K, options: BasicGroupByOptions): OperatorFunction>; export declare function groupBy(key: (value: T) => K, options: GroupByOptionsWithElement): OperatorFunction>; export declare function groupBy(key: (value: T) => value is K): OperatorFunction | GroupedObservable>>; export declare function groupBy(key: (value: T) => K): OperatorFunction>; export declare function groupBy(key: (value: T) => K, element: void, duration: (grouped: GroupedObservable) => Observable): OperatorFunction>; export declare function groupBy(key: (value: T) => K, element?: (value: T) => R, duration?: (grouped: GroupedObservable) => Observable): OperatorFunction>; export declare function groupBy(key: (value: T) => K, element?: (value: T) => R, duration?: (grouped: GroupedObservable) => Observable, connector?: () => Subject): OperatorFunction>; export interface GroupByOptionsWithElement { connector?: () => SubjectLike; duration?: (grouped: GroupedObservable) => ObservableInput; element: (value: T) => E; } export declare function ignoreElements(): OperatorFunction; export declare function isEmpty(): OperatorFunction; export declare function last(predicate: BooleanConstructor): OperatorFunction>; export declare function last(predicate: BooleanConstructor, defaultValue: D): OperatorFunction | D>; export declare function last(predicate?: null, defaultValue?: D): OperatorFunction; export declare function last(predicate: (value: T, index: number, source: Observable) => value is S, defaultValue?: S): OperatorFunction; export declare function last(predicate: (value: T, index: number, source: Observable) => boolean, defaultValue?: D): OperatorFunction; export declare function map(project: (value: T, index: number) => R): OperatorFunction; export declare function map(project: (this: A, value: T, index: number) => R, thisArg: A): OperatorFunction; export declare function mapTo(value: R): OperatorFunction; export declare function mapTo(value: R): OperatorFunction; export declare function materialize(): OperatorFunction & ObservableNotification>; export declare function max(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction; export declare function merge(...sources: [...ObservableInputTuple]): OperatorFunction; export declare function merge(...sourcesAndConcurrency: [...ObservableInputTuple, number]): OperatorFunction; export declare function merge(...sourcesAndScheduler: [...ObservableInputTuple, SchedulerLike]): OperatorFunction; export declare function merge(...sourcesAndConcurrencyAndScheduler: [...ObservableInputTuple, number, SchedulerLike]): OperatorFunction; export declare function mergeAll>(concurrent?: number): OperatorFunction>; export declare function mergeMap>(project: (value: T, index: number) => O, concurrent?: number): OperatorFunction>; export declare function mergeMap>(project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number): OperatorFunction>; export declare function mergeMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction; export declare function mergeMapTo>(innerObservable: O, concurrent?: number): OperatorFunction>; export declare function mergeMapTo>(innerObservable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction; export declare function mergeScan(accumulator: (acc: R, value: T, index: number) => ObservableInput, seed: R, concurrent?: number): OperatorFunction; export declare function mergeWith(...otherSources: [...ObservableInputTuple]): OperatorFunction; export declare function min(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction; export declare function multicast(subject: Subject): UnaryFunction, ConnectableObservable>; export declare function multicast>(subject: Subject, selector: (shared: Observable) => O): OperatorFunction>; export declare function multicast(subjectFactory: () => Subject): UnaryFunction, ConnectableObservable>; export declare function multicast>(subjectFactory: () => Subject, selector: (shared: Observable) => O): OperatorFunction>; export declare function observeOn(scheduler: SchedulerLike, delay?: number): MonoTypeOperatorFunction; export declare function onErrorResumeNext(sources: [...ObservableInputTuple]): OperatorFunction; export declare function onErrorResumeNext(...sources: [...ObservableInputTuple]): OperatorFunction; export declare function pairwise(): OperatorFunction; export declare function partition(predicate: (value: T, index: number) => boolean, thisArg?: any): UnaryFunction, [Observable, Observable]>; export declare function pluck(k1: K1): OperatorFunction; export declare function pluck(k1: K1, k2: K2): OperatorFunction; export declare function pluck(k1: K1, k2: K2, k3: K3): OperatorFunction; export declare function pluck(k1: K1, k2: K2, k3: K3, k4: K4): OperatorFunction; export declare function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5): OperatorFunction; export declare function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6): OperatorFunction; export declare function pluck(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6, ...rest: string[]): OperatorFunction; export declare function pluck(...properties: string[]): OperatorFunction; export declare function publish(): UnaryFunction, ConnectableObservable>; export declare function publish>(selector: (shared: Observable) => O): OperatorFunction>; export declare function publishBehavior(initialValue: T): UnaryFunction, ConnectableObservable>; export declare function publishLast(): UnaryFunction, ConnectableObservable>; export declare function publishReplay(bufferSize?: number, windowTime?: number, timestampProvider?: TimestampProvider): MonoTypeOperatorFunction; export declare function publishReplay>(bufferSize: number | undefined, windowTime: number | undefined, selector: (shared: Observable) => O, timestampProvider?: TimestampProvider): OperatorFunction>; export declare function publishReplay>(bufferSize: number | undefined, windowTime: number | undefined, selector: undefined, timestampProvider: TimestampProvider): OperatorFunction>; export declare function race(otherSources: [...ObservableInputTuple]): OperatorFunction; export declare function race(...otherSources: [...ObservableInputTuple]): OperatorFunction; export declare function raceWith(...otherSources: [...ObservableInputTuple]): OperatorFunction; export declare function reduce(accumulator: (acc: A | V, value: V, index: number) => A): OperatorFunction; export declare function reduce(accumulator: (acc: A, value: V, index: number) => A, seed: A): OperatorFunction; export declare function reduce(accumulator: (acc: A | S, value: V, index: number) => A, seed: S): OperatorFunction; export declare function refCount(): MonoTypeOperatorFunction; export declare function repeat(countOrConfig?: number | RepeatConfig): MonoTypeOperatorFunction; export declare function repeatWhen(notifier: (notifications: Observable) => Observable): MonoTypeOperatorFunction; export declare function retry(count?: number): MonoTypeOperatorFunction; export declare function retry(config: RetryConfig): MonoTypeOperatorFunction; export interface RetryConfig { count?: number; delay?: number | ((error: any, retryCount: number) => ObservableInput); resetOnSuccess?: boolean; } export declare function retryWhen(notifier: (errors: Observable) => Observable): MonoTypeOperatorFunction; export declare function sample(notifier: Observable): MonoTypeOperatorFunction; export declare function sampleTime(period: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export declare function scan(accumulator: (acc: A | V, value: V, index: number) => A): OperatorFunction; export declare function scan(accumulator: (acc: A, value: V, index: number) => A, seed: A): OperatorFunction; export declare function scan(accumulator: (acc: A | S, value: V, index: number) => A, seed: S): OperatorFunction; export declare function sequenceEqual(compareTo: Observable, comparator?: (a: T, b: T) => boolean): OperatorFunction; export declare function share(): MonoTypeOperatorFunction; export declare function share(options: ShareConfig): MonoTypeOperatorFunction; export interface ShareConfig { connector?: () => SubjectLike; resetOnComplete?: boolean | (() => Observable); resetOnError?: boolean | ((error: any) => Observable); resetOnRefCountZero?: boolean | (() => Observable); } export declare function shareReplay(config: ShareReplayConfig): MonoTypeOperatorFunction; export declare function shareReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export interface ShareReplayConfig { bufferSize?: number; refCount: boolean; scheduler?: SchedulerLike; windowTime?: number; } export declare function single(predicate: BooleanConstructor): OperatorFunction>; export declare function single(predicate?: (value: T, index: number, source: Observable) => boolean): MonoTypeOperatorFunction; export declare function skip(count: number): MonoTypeOperatorFunction; export declare function skipLast(skipCount: number): MonoTypeOperatorFunction; export declare function skipUntil(notifier: Observable): MonoTypeOperatorFunction; export declare function skipWhile(predicate: BooleanConstructor): OperatorFunction extends never ? never : T>; export declare function skipWhile(predicate: (value: T, index: number) => true): OperatorFunction; export declare function skipWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction; export declare function startWith(value: null): OperatorFunction; export declare function startWith(value: undefined): OperatorFunction; export declare function startWith(...valuesAndScheduler: [...A, SchedulerLike]): OperatorFunction>; export declare function startWith(...values: A): OperatorFunction>; export declare function subscribeOn(scheduler: SchedulerLike, delay?: number): MonoTypeOperatorFunction; export declare function switchAll>(): OperatorFunction>; export declare function switchMap>(project: (value: T, index: number) => O): OperatorFunction>; export declare function switchMap>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction>; export declare function switchMap>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; export declare function switchMapTo>(observable: O): OperatorFunction>; export declare function switchMapTo>(observable: O, resultSelector: undefined): OperatorFunction>; export declare function switchMapTo>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R): OperatorFunction; export declare function switchScan>(accumulator: (acc: R, value: T, index: number) => O, seed: R): OperatorFunction>; export declare function take(count: number): MonoTypeOperatorFunction; export declare function takeLast(count: number): MonoTypeOperatorFunction; export declare function takeUntil(notifier: ObservableInput): MonoTypeOperatorFunction; export declare function takeWhile(predicate: BooleanConstructor, inclusive: true): MonoTypeOperatorFunction; export declare function takeWhile(predicate: BooleanConstructor, inclusive: false): OperatorFunction>; export declare function takeWhile(predicate: BooleanConstructor): OperatorFunction>; export declare function takeWhile(predicate: (value: T, index: number) => value is S): OperatorFunction; export declare function takeWhile(predicate: (value: T, index: number) => value is S, inclusive: false): OperatorFunction; export declare function takeWhile(predicate: (value: T, index: number) => boolean, inclusive?: boolean): MonoTypeOperatorFunction; export declare function tap(observer?: Partial>): MonoTypeOperatorFunction; export declare function tap(next: (value: T) => void): MonoTypeOperatorFunction; export declare function tap(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): MonoTypeOperatorFunction; export declare function throttle(durationSelector: (value: T) => ObservableInput, config?: ThrottleConfig): MonoTypeOperatorFunction; export interface ThrottleConfig { leading?: boolean; trailing?: boolean; } export declare function throttleTime(duration: number, scheduler?: SchedulerLike, config?: import("./throttle").ThrottleConfig): MonoTypeOperatorFunction; export declare function throwIfEmpty(errorFactory?: () => any): MonoTypeOperatorFunction; export declare function timeInterval(scheduler?: SchedulerLike): OperatorFunction>; export declare function timeout, M = unknown>(config: TimeoutConfig & { with: (info: TimeoutInfo) => O; }): OperatorFunction>; export declare function timeout(config: Omit, 'with'>): OperatorFunction; export declare function timeout(first: Date, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export declare function timeout(each: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; export interface TimeoutConfig = ObservableInput, M = unknown> { each?: number; first?: number | Date; meta?: M; scheduler?: SchedulerLike; with?: (info: TimeoutInfo) => O; } export interface TimeoutInfo { readonly lastValue: T | null; readonly meta: M; readonly seen: number; } export declare function timeoutWith(dueBy: Date, switchTo: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; export declare function timeoutWith(waitFor: number, switchTo: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; export declare function timestamp(timestampProvider?: TimestampProvider): OperatorFunction>; export declare function toArray(): OperatorFunction; export declare function window(windowBoundaries: Observable): OperatorFunction>; export declare function windowCount(windowSize: number, startWindowEvery?: number): OperatorFunction>; export declare function windowTime(windowTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction>; export declare function windowTime(windowTimeSpan: number, windowCreationInterval: number, scheduler?: SchedulerLike): OperatorFunction>; export declare function windowTime(windowTimeSpan: number, windowCreationInterval: number | null | void, maxWindowSize: number, scheduler?: SchedulerLike): OperatorFunction>; export declare function windowToggle(openings: ObservableInput, closingSelector: (openValue: O) => ObservableInput): OperatorFunction>; export declare function windowWhen(closingSelector: () => ObservableInput): OperatorFunction>; export declare function withLatestFrom(...inputs: [...ObservableInputTuple]): OperatorFunction; export declare function withLatestFrom(...inputs: [...ObservableInputTuple, (...value: [T, ...O]) => R]): OperatorFunction; export declare function zip(otherInputs: [...ObservableInputTuple]): OperatorFunction>; export declare function zip(otherInputsAndProject: [...ObservableInputTuple], project: (...values: Cons) => R): OperatorFunction; export declare function zip(...otherInputs: [...ObservableInputTuple]): OperatorFunction>; export declare function zip(...otherInputsAndProject: [...ObservableInputTuple, (...values: Cons) => R]): OperatorFunction; export declare function zipAll(): OperatorFunction, T[]>; export declare function zipAll(): OperatorFunction; export declare function zipAll(project: (...values: T[]) => R): OperatorFunction, R>; export declare function zipAll(project: (...values: Array) => R): OperatorFunction; export declare function zipWith(...otherInputs: [...ObservableInputTuple]): OperatorFunction>; rxjs-7.5.7/api_guard/dist/types/testing/000077500000000000000000000000001431412030200202255ustar00rootroot00000000000000rxjs-7.5.7/api_guard/dist/types/testing/index.d.ts000066400000000000000000000033431431412030200221310ustar00rootroot00000000000000export interface RunHelpers { animate: (marbles: string) => void; cold: typeof TestScheduler.prototype.createColdObservable; expectObservable: typeof TestScheduler.prototype.expectObservable; expectSubscriptions: typeof TestScheduler.prototype.expectSubscriptions; flush: typeof TestScheduler.prototype.flush; hot: typeof TestScheduler.prototype.createHotObservable; time: typeof TestScheduler.prototype.createTime; } export declare class TestScheduler extends VirtualTimeScheduler { assertDeepEqual: (actual: any, expected: any) => boolean | void; readonly coldObservables: ColdObservable[]; readonly hotObservables: HotObservable[]; constructor(assertDeepEqual: (actual: any, expected: any) => boolean | void); createColdObservable(marbles: string, values?: { [marble: string]: T; }, error?: any): ColdObservable; createHotObservable(marbles: string, values?: { [marble: string]: T; }, error?: any): HotObservable; createTime(marbles: string): number; expectObservable(observable: Observable, subscriptionMarbles?: string | null): { toBe(marbles: string, values?: any, errorValue?: any): void; toEqual: (other: Observable) => void; }; expectSubscriptions(actualSubscriptionLogs: SubscriptionLog[]): { toBe: subscriptionLogsToBeFn; }; flush(): void; run(callback: (helpers: RunHelpers) => T): T; static frameTimeFactor: number; static parseMarbles(marbles: string, values?: any, errorValue?: any, materializeInnerObservables?: boolean, runMode?: boolean): TestMessage[]; static parseMarblesAsSubscriptions(marbles: string | null, runMode?: boolean): SubscriptionLog; } rxjs-7.5.7/api_guard/dist/types/webSocket/000077500000000000000000000000001431412030200204765ustar00rootroot00000000000000rxjs-7.5.7/api_guard/dist/types/webSocket/index.d.ts000066400000000000000000000017541431412030200224060ustar00rootroot00000000000000export declare function webSocket(urlConfigOrSource: string | WebSocketSubjectConfig): WebSocketSubject; export declare class WebSocketSubject extends AnonymousSubject { constructor(urlConfigOrSource: string | WebSocketSubjectConfig | Observable, destination?: Observer); lift(operator: Operator): WebSocketSubject; multiplex(subMsg: () => any, unsubMsg: () => any, messageFilter: (value: T) => boolean): Observable; unsubscribe(): void; } export interface WebSocketSubjectConfig { WebSocketCtor?: { new (url: string, protocols?: string | string[]): WebSocket; }; binaryType?: 'blob' | 'arraybuffer'; closeObserver?: NextObserver; closingObserver?: NextObserver; deserializer?: (e: MessageEvent) => T; openObserver?: NextObserver; protocol?: string | Array; resultSelector?: (e: MessageEvent) => T; serializer?: (value: T) => WebSocketMessage; url: string; } rxjs-7.5.7/docs_app/000077500000000000000000000000001431412030200142765ustar00rootroot00000000000000rxjs-7.5.7/docs_app/.browserslistrc000066400000000000000000000006551431412030200173740ustar00rootroot00000000000000# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. # For additional information regarding the format and rule options, please see: # https://github.com/browserslist/browserslist#queries # You can see what browsers were selected by your queries by running: # npx browserslist > 0.5% last 2 versions Firefox ESR not dead not IE 9-11 # For IE 9-11 support, remove 'not'.rxjs-7.5.7/docs_app/.firebaserc000066400000000000000000000001741431412030200164060ustar00rootroot00000000000000{ "targets": { "rxjs-dev": { "hosting": { "stable": [ "rxjs-dev" ] } } } }rxjs-7.5.7/docs_app/.gitignore000066400000000000000000000012611431412030200162660ustar00rootroot00000000000000# See http://help.github.com/ignore-files/ for more about ignoring files. # compiled output /dist /out-tsc /src/generated /tmp # dependencies /node_modules # IDEs and editors /.idea .project .classpath .c9/ *.launch .settings/ *.sublime-workspace # IDE - VSCode .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json # misc /.angular/cache /.sass-cache /connect.lock /coverage /libpeerconnection.log debug.log npm-debug.log testem.log /typings yarn-error.log # e2e /e2e/*.js /e2e/*.map protractor-results*.txt # System Files .DS_Store Thumbs.db # copied dependencies src/assets/js/lunr* assets/images/svgs/* !assets/images/svgs/.gitkeeprxjs-7.5.7/docs_app/README.md000066400000000000000000000136621431412030200155650ustar00rootroot00000000000000# RxJS documentation project Everything in this folder is part of the documentation project. This includes - the web site for displaying the documentation - the dgeni configuration for converting source files to rendered files that can be viewed in the web site. ## Developer tasks We use `npm` to manage the dependencies and to run build tasks. You should run all these tasks from the `rxjs/docs_app` folder. Here are the most important tasks you might need to use: - `npm install` - install all the dependencies. - `npm run setup` - install all the dependencies and run dgeni on the docs. - `npm run build` - create a production build of the application (after installing dependencies, etc). - `npm start` - run a development web server that watches the files; then builds the doc-viewer and reloads the page, as necessary. - `npm run serve-and-sync` - run both the `docs-watch` and `start` in the same console. - `npm run lint` - check that the doc-viewer code follows our style rules. - `npm test` - watch all the source files, for the doc-viewer, and run all the unit tests when any change. - `npm test -- --watch=false` - run all the unit tests once. - `npm run e2e` - run all the e2e tests for the doc-viewer. - `npm run docs` - generate all the docs from the source files. - `npm run docs-watch` - watch the RxJS source and the docs files and run a short-circuited doc-gen for the docs that changed (don't work properly at the moment). - `npm run docs-lint` - check that the doc gen code follows our style rules. - `npm run docs-test` - run the unit tests for the doc generation code. ## Using ServiceWorker locally Running `npm run start` (even when explicitly targeting production mode) does not set up the ServiceWorker. If you want to test the ServiceWorker locally, you can use `npm run build` and then serve the files in `dist/` with `npm run http-server -- dist -p 4200`. ## Running on Docker The docs app (rxjs.dev) can run as a docker container. In order to run the docs app on docker, use the following commands (**run from the rxjs folder**): - `docker build -t rxjs-docs:6.4.1 .` - building the rxjs docs app image - `docker run -p :4200 rxjs-docs:6.4.1` - starting the container, listening on __ for your choice. The container will run the documentation app with the script `start:docker` with the **stable configuration** and with 0.0.0.0 host support. - Saving the image for later offline usage is available by building the container and then using `sudo docker save rxjs-docs:6.4.1 > .tar` and loading it afterwards with `sudo docker load < .tar`. > tested on ubuntu 18.04.2 with Docker 18.09.4 ## Guide to authoring There are two types of content in the documentation: - **API docs**: descriptions of the modules, classes, interfaces, etc that make up RxJS. API docs are generated directly from the source code. The source code is contained in TypeScript files, located in the `rxjs/src` folder. Each API item may have a preceding comment, which contains JSDoc style tags and content. The content is written in markdown. - **Other content**: guides, tutorials, and other marketing material. All other content is written using markdown in text files, located in the `rxjs/docs_app/content` folder. More specifically, there are sub-folders that contain particular types of content: guides, tutorial and marketing. ### Generating the complete docs The main task for generating the docs is `npm run docs`. This will process all the source files (API and other), extracting the documentation and generating JSON files that can be consumed by the doc-viewer. ### Partial doc generation for editors Full doc generation can take up to one minute. That's too slow for efficient document creation and editing. You can make small changes in a smart editor that displays formatted markdown: > In VS Code, _Cmd-K, V_ opens markdown preview in side pane; _Cmd-B_ toggles left sidebar You also want to see those changes displayed properly in the doc viewer with a quick, edit/view cycle time. For this purpose, use the `npm run docs-watch` task, which watches for changes to source files and only re-processes the files necessary to generate the docs that are related to the file that has changed. Since this task takes shortcuts, it is much faster (often less than 1 second) but it won't produce full fidelity content. For example, links to other docs and code examples may not render correctly. This is most particularly noticed in links to other docs and in the embedded examples, which may not always render correctly. The general setup is as follows: - Open a terminal, ensure the dependencies are installed; run an initial doc generation; then start the doc-viewer: ```bash npm run setup npm run start ``` - Open a second terminal and start watching the docs ```bash npm run docs-watch ``` > Alternatively, try the consolidated `serve-and-sync` command that builds, watches and serves in the same terminal window ```bash npm run serve-and-sync ``` - Open a browser at https://localhost:4200/ and navigate to the document on which you want to work. You can automatically open the browser by using `npm start -- -o` in the first terminal. - Make changes to the page's associated doc or example files. Every time a file is saved, the doc will be regenerated, the app will rebuild and the page will reload. - If you get a build error complaining about examples or any other odd behavior, be sure to consult the [Authors Style Guide](https://angular.io/guide/docs-style-guide). ## Disclaimer Starting the new documentation, we worked closely together with the Angular team and therefore adapted their way of generating docs. This leads to the effect, that there may be some references to angular (e.g. variable names, file names ...). Don't be confused by this, this shouldn't bother you. Thanks to the Angular Team for their support. Anyway RxJS will always be an independent project, which aims to work closely with other technologies and frameworks! rxjs-7.5.7/docs_app/angular.json000066400000000000000000000155211431412030200166260ustar00rootroot00000000000000{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects": { "site": { "root": "", "sourceRoot": "src", "projectType": "application", "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "outputPath": "dist", "index": "src/index.html", "main": "src/main.ts", "tsConfig": "src/tsconfig.app.json", "namedChunks": true, "polyfills": "src/polyfills.ts", "assets": [ "src/img", "src/assets", "src/generated", "src/app/search/search-worker.js", "src/pwa-manifest.json", "src/google385281288605d160.html", { "glob": "custom-elements.min.js", "input": "node_modules/@webcomponents/custom-elements", "output": "/assets/js" }, { "glob": "native-shim.js", "input": "node_modules/@webcomponents/custom-elements/src", "output": "/assets/js" } ], "styles": [ "src/styles.scss" ], "scripts": [], "vendorChunk": true, "extractLicenses": false, "buildOptimizer": false, "sourceMap": true, "optimization": false }, "configurations": { "fast": { "budgets": [ { "type": "anyComponentStyle", "maximumWarning": "6kb" } ] }, "next": { "budgets": [ { "type": "anyComponentStyle", "maximumWarning": "6kb" } ], "optimization": true, "outputHashing": "all", "sourceMap": false, "namedChunks": false, "extractLicenses": true, "vendorChunk": false, "buildOptimizer": true, "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.next.ts" } ], "serviceWorker": true }, "stable": { "budgets": [ { "type": "anyComponentStyle", "maximumWarning": "6kb" } ], "optimization": true, "outputHashing": "all", "sourceMap": false, "namedChunks": false, "extractLicenses": true, "vendorChunk": false, "buildOptimizer": true, "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.stable.ts" } ], "serviceWorker": true }, "archive": { "budgets": [ { "type": "anyComponentStyle", "maximumWarning": "6kb" } ], "optimization": true, "outputHashing": "all", "sourceMap": false, "namedChunks": false, "extractLicenses": true, "vendorChunk": false, "buildOptimizer": true, "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.archive.ts" } ], "serviceWorker": true }, "production": { "budgets": [ { "type": "anyComponentStyle", "maximumWarning": "6kb" } ], "optimization": true, "outputHashing": "all", "sourceMap": false, "namedChunks": false, "extractLicenses": true, "vendorChunk": false, "buildOptimizer": true, "serviceWorker": true } }, "defaultConfiguration": "" }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", "options": { "browserTarget": "site:build" }, "configurations": { "fast": { "browserTarget": "site:build:fast" }, "next": { "browserTarget": "site:build:next" }, "stable": { "browserTarget": "site:build:stable" }, "archive": { "browserTarget": "site:build:archive" }, "production": { "browserTarget": "site:build:production" } } }, "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", "options": { "browserTarget": "site:build" } }, "test": { "builder": "@angular-devkit/build-angular:karma", "options": { "main": "src/test.ts", "karmaConfig": "src/karma.conf.js", "polyfills": "src/polyfills.ts", "tsConfig": "src/tsconfig.spec.json", "scripts": [], "styles": [ "src/styles.scss" ], "assets": [ "src/img", "src/assets", "src/generated", "src/app/search/search-worker.js", "src/pwa-manifest.json", "src/google385281288605d160.html", { "glob": "custom-elements.min.js", "input": "node_modules/@webcomponents/custom-elements", "output": "/assets/js" }, { "glob": "native-shim.js", "input": "node_modules/@webcomponents/custom-elements/src", "output": "/assets/js" } ] } } } }, "site-e2e": { "root": "e2e", "sourceRoot": "e2e", "projectType": "application", "architect": { "e2e": { "builder": "@angular-devkit/build-angular:protractor", "options": { "protractorConfig": "tests/e2e/protractor.conf.js", "devServerTarget": "site:serve" } } } } }, "defaultProject": "site", "schematics": { "@schematics/angular:component": { "inlineStyle": true, "prefix": "aio", "style": "scss" }, "@schematics/angular:directive": { "prefix": "aio" } } } rxjs-7.5.7/docs_app/content/000077500000000000000000000000001431412030200157505ustar00rootroot00000000000000rxjs-7.5.7/docs_app/content/6-to-7-change-summary.md000066400000000000000000000534631431412030200221540ustar00rootroot00000000000000# RxJS 6.x to 7.x Detailed Change List This document contains a detailed list of changes between RxJS 6.x and RxJS 7.x, presented in the order they can be found when diffing the TypeScript APIs in various module files. ## module `rxjs` ### Breaking changes #### AsyncSubject - `_subscribe` method is no longer `public` and is now `protected`. - no longer has its own implementation of the `error` method inherited from `Subject`. #### BehaviorSubject - `_subscribe` method is no longer `public` and is now `protected`. - `value` property is a getter `get value()` instead of `readonly value`, and can no longer be forcibly set. #### bindCallback - Generic signatures have changed. Do not explicitly pass generics. #### combineLatest - Generic signatures have changed. Do not explicitly pass generics. #### concat - Generic signatures have changed. Do not explicitly pass generics. #### ConnectableObservable - `_isComplete` is no longer a property. - `_subscribe` method is no longer `public` and is now `protected`. #### defer - Generic argument no longer extends `void`. - `defer` no longer allows factories to return void or undefined. All factories passed to `defer` must return a proper `ObservableInput`, such as `Observable`, `Promise`, et al. To get the same behavior as you may have relied on previously, `return EMPTY` or `return of()` from the factory. #### forkJoin - Generic signatures have changed. Do not explicitly pass generics. #### fromEvent - The `fromEvent` signatures have been changed and there are now separate signatures for each type of target - DOM, Node, jQuery, etc. That means that an attempt to pass options - like `{ once: true }` - to a target that does not support an options argument will result in a TypeScript error. #### GroupedObservable - No longer publicly exposes `_subscribe` - `key` properly is `readonly`. - No longer publicly exposes `constructor`. #### iif - Generic signatures have changed. Do not explicitly pass generics. - `iif` will no longer allow result arguments that are `undefined`. This was a bad call pattern that was likely an error in most cases. If for some reason you are relying on this behavior, simply substitute `EMPTY` in place of the `undefined` argument. This ensures that the behavior was intentional and desired, rather than the result of an accidental `undefined` argument. #### isObservable - No longer has a generic and returns `Observable`, you must cast the result. #### merge - Generic signatures have changed. Do not explicitly pass generics. #### Notification - The `error` property is now `readonly`. - The `hasValue` property is now `readonly`. - The `kind` property is now `readonly`. - The `value` property is now `readonly` and may be `undefined`. - `constructor` signature now only allows valid construction. For example `new Notification('C', 'some_value')` will be an error in TypeScript. #### Observable - `_isScalar` property removed. - `_subscribe` method is no longer `public` and is now marked `@internal`. - `_trySubscribe` method is no longer `public` and is now `@internal`. - `pipe` method calls with `9` or more arguments will now return `Observable` rather than `Observable<{}>`. - `toPromise` method now correctly returns `Promise` instead of `Promise`. This is a correction without a runtime change, because if the observable does not emit a value before completion, the promise will resolve with `undefined`. - `static if` and `static throw` properties are no longer defined. They were unused in version 6. - `lift`, `source`, and `operator` properties are still **deprecated**, and should not be used. They are implementation details, and will very likely be renamed or missing in version 8. #### of - Generic signatures have changed. Do not explicitly pass generics. #### onErrorResumeNext - Generic signatures have changed. Do not explicitly pass generics. #### pairs - Generic signatures have changed. Do not explicitly pass generics. - `pairs` will no longer function in IE without a polyfill for `Object.entries`. `pairs` itself is also deprecated in favor of users just using `from(Object.entries(obj))`. #### partition - Generic signatures have changed. Do not explicitly pass generics. #### pipe - Calls with `9` or more arguments will now return `(arg: A) => unknown` rather than `(arg: A) => {}`. #### race - Generic signatures have changed. Do not explicitly pass generics. - `race` will no longer subscribe to subsequent observables if a provided source synchronously errors or completes. This means side effects that might have occurred during subscription in those rare cases will no longer occur. #### ReplaySubject - `_getNow` method has been removed. - `_subscribe` method is no longer `public` and is now `protected`. #### Subscribable - `subscribe` will accept `Partial>` now. All overloads with functions as arguments have been removed. This is because `Subscribable` is intended to map to the basic observable contract from the TC39 proposal and the return type of a call to `[Symbol.observable]()`. #### SubscribableOrPromise - See notes on `Subscribable` above. #### Subscriber - `destination` property must now be a `Subscriber` or full `Observer`. - `syncErrorThrowable` property has been removed. - `syncErrorThrown` property has been removed. - `syncErrorValue` property has been removed. - `_unsubscribeAndRecycle` method has been removed. #### Subscription - `_parentOrParents` property has been removed. - `add` method returns `void` and no longer returns a `Subscription`. Returning `Subscription` was an old behavior from the early days of version 5. If you add a function to a subscription (i.e. `subscription.add(fn)`), you can remove that function directly by calling `remove` with the same function instance. (i.e. `subscription.remove(fn)`). Previously, you needed to get the returned `Subscription` object and pass _that_ to `remove`. In version 6 and lower, the `Subscription` returned by calling `add` with another `Subscription` was always the same subscription you passed in. (meaning `subscription.add(subs1).add(subs2)` was an antipattern and the same as `subscription.add(subs1); subs1.add(subs2);`. #### VirtualAction - The static `sortActions` method has been removed. #### zip - Generic signatures have changed. Do not explicitly pass generics. - Zipping a single array will now have a different result. This is an extreme corner-case, because it is very unlikely that anyone would want to zip an array with nothing at all. The workaround would be to wrap the array in another array `zip([[1,2,3]])`. But again, that's pretty weird. --- ### New Features #### animationFrames - A new method for creating a stream of animation frames. Each event will carry with it a high-resolution timestamp, and an elapsed time since observation was started. #### config ##### onUnhandledError - A handler for dealing with errors that make it all the way down to the "end" of the observation chain when there is no error handler in the observer. Useful for doing things like logging unhandled errors in RxJS observable chains. ##### onStoppedNotification - A handler for edge cases where a subscriber within RxJS is notified after it has already "stopped", that is, a point in time where it has received an error or complete, but hasn't yet finalized. This is mostly useful for logging purposes. ##### useDeprecatedNextContext - In RxJS 6, a little used feature allowed users to access the `subscriber` directly as `this` within a call to the `next` handler. The problem with this is it incurred heavy performance penalties. That behavior has been changed (because it wasn't really documented and it was barely ever used) to not change the `this` context of any user-provided subscription handlers. If you need to get that feature back, you can switch it on with this flag. Note this behavior will be removed completely in version 8. #### connectable - This is the new means for creating a `ConnectableObservable`, and really is a replacement for non-selector usage of `multicast` and `publish` variants. Simply pass your source observable to `connectable` with the `Subject` you'd like to connect through. #### firstValueFrom - A better, more tree-shakable replacement for `toPromise()` (which is now deprecated). This function allows the user to convert any `Observable` in to a `Promise` that will resolve when the source observable emits its first value. If the source observable closes without emitting a value, the returned promise will reject with an `EmptyError`, or it will resolve with a configured `defaultValue`. For more information, see the [deprecation guide](/deprecations/to-promise). #### lastValueFrom - A better, more tree-shakable replacement for `toPromise()` (which is now deprecated). This function allows the user to convert any `Observable` in to a `Promise` that will resolve when the source observable emits the last value. If the source observable closes without emitting a value, the returned promise will reject with an `EmptyError`, or it will resolve with a configured `defaultValue`. For more information, see the [deprecation guide](/deprecations/to-promise). #### ObservableInput - This is just a type, but it's important. This type defines the allowed types that can be passed to almost every API within RxJS that accepts an Observable. It has always accepted `Observable`, `Promise`, `Iterable`, and `ArrayLike`. Now it will also accept `AsyncIterable` and `ReadableStream`. ##### AsyncIterable - `AsyncIterables` such as those defined by `IxJS` or by async generators (`async function*`), may now be passed to any API that accepts an observable, and can be converted to an `Observable` directly using `from`. ##### ReadableStream - `ReadableStream` such as those returned by `fetch`, et al, can be passed to any API that accepts an observable, and can be converted to `Observable` directly using `from`. #### ReplaySubject - A [bug was fixed](https://github.com/ReactiveX/rxjs/pull/5696) that prevented a completed or errored `ReplaySubject` from accumulating values in its buffer when resubscribed to another source. This breaks some uses - like [this StackOverflow answer](https://stackoverflow.com/a/54957061) - that depended upon the buggy behavior. #### Subscription - Now allows adding and removing of functions directly via `add` and `remove` methods. #### throwError - Now accepts an `errorFactory` of `() => any` to defer the creation of the error until the time it will be emitted. It is recommended to use this method, as Errors created in most popular JavaScript runtimes will retain all values in the current scope for debugging purposes. ## module `rxjs/operators` ### Breaking Changes #### audit - The observable returned by the `audit` operator's duration selector must emit a next notification to end the duration. Complete notifications no longer end the duration. - `audit` now emits the last value from the source when the source completes. Previously, `audit` would mirror the completion without emitting the value. #### auditTime - `auditTime` now emits the last value from the source when the source completes, after the audit duration elapses. Previously, `auditTime` would mirror the completion without emitting the value and without waiting for the audit duration to elapse. #### buffer - `buffer` now subscribes to the source observable before it subscribes to the closing notifier. Previously, it subscribed to the closing notifier first. - Final buffered values will now always be emitted. To get the same behavior as the previous release, you can use `endWith` and `skipLast(1)`, like so: `source$.pipe(buffer(notifier$.pipe(endWith(true))), skipLast(1))` - `closingNotifier` completion no longer completes the result of `buffer`. If that is truly a desired behavior, then you should use `takeUntil`. Something like: `source$.pipe(buffer(notifier$), takeUntil(notifier$.pipe(ignoreElements(), endWith(true))))`, where `notifier$` is multicast, although there are many ways to compose this behavior. #### bufferToggle - The observable returned by the `bufferToggle` operator's closing selector must emit a next notification to close the buffer. Complete notifications no longer close the buffer. #### bufferWhen - The observable returned by the `bufferWhen` operator's closing selector must emit a next notification to close the buffer. Complete notifications no longer close the buffer. #### combineLatest - Generic signatures have changed. Do not explicitly pass generics. #### concat - Generic signatures have changed. Do not explicitly pass generics. - Still deprecated, use the new `concatWith`. #### concatAll - Generic signatures have changed. Do not explicitly pass generics. #### concatMapTo - Generic signatures have changed. Do not explicitly pass generics. #### count - No longer passes `source` observable as a third argument to the predicate. That feature was rarely used, and of limited value. The workaround is to simply close over the source inside of the function if you need to access it in there. #### debounce - The observable returned by the `debounce` operator's duration selector must emit a next notification to end the duration. Complete notifications no longer end the duration. #### debounceTime - The `debounceTime` implementation is more efficient and no longer schedules an action for each received next notification. However, because the implementation now uses the scheduler's concept of time, any tests using Jasmine's `clock` will need to ensure that [`jasmine.clock().mockDate()`](https://jasmine.github.io/api/edge/Clock.html#mockDate) is called after `jasmine.clock().install()` - because Jasmine does not mock `Date.now()` by default. #### defaultIfEmpty - Generic signatures have changed. Do not explicitly pass generics. - `defaultIfEmpty` requires a value be passed. Will no longer convert `undefined` to `null` for no good reason. #### delayWhen - `delayWhen` will no longer emit if the duration selector simply completes without a value. Notifiers must notify with a value, not a completion. #### endWith - Generic signatures have changed. Do not explicitly pass generics. #### expand - Generic signatures have changed. Do not explicitly pass generics. #### finalize - `finalize` will now unsubscribe from its source _before_ it calls its callback. That means that `finalize` callbacks will run in the order in which they occur in the pipeline: `source.pipe(finalize(() => console.log(1)), finalize(() => console.log(2)))` will log `1` and then `2`. Previously, callbacks were called in the reverse order. #### map - `thisArg` will now default to `undefined`. The previous default of `MapSubscriber` never made any sense. This will only affect code that calls map with a `function` and references `this` like so: `source.pipe(map(function () { console.log(this); }))`. There wasn't anything useful about doing this, so the breakage is expected to be very minimal. If anything we're no longer leaking an implementation detail. #### merge - Generic signatures have changed. Do not explicitly pass generics. - Still deprecated, use the new `mergeWith`. #### mergeAll - Generic signatures have changed. Do not explicitly pass generics. #### mergeScan - `mergeScan` will no longer emit its inner state again upon completion. #### pluck - Generic signatures have changed. Do not explicitly pass generics. #### race - Generic signatures have changed. Do not explicitly pass generics. #### reduce - Generic signatures have changed. Do not explicitly pass generics. #### sample - The `sample` operator's notifier observable must emit a next notification to effect a sample. Complete notifications no longer effect a sample. #### scan - Generic signatures have changed. Do not explicitly pass generics. #### single - The `single` operator will now throw for scenarios where values coming in are either not present, or do not match the provided predicate. Error types have thrown have also been updated, please check documentation for changes. #### skipLast - `skipLast` will no longer error when passed a negative number, rather it will simply return the source, as though `0` was passed. #### startWith - Generic signatures have changed. Do not explicitly pass generics. #### switchAll - Generic signatures have changed. Do not explicitly pass generics. #### switchMapTo - Generic signatures have changed. Do not explicitly pass generics. #### take - `take` and will now throw runtime error for arguments that are negative or NaN, this includes non-TS calls like `take()`. #### takeLast - `takeLast` now has runtime assertions that throw `TypeError`s for invalid arguments. Calling takeLast without arguments or with an argument that is `NaN` will throw a `TypeError`. #### throttle - The observable returned by the `throttle` operator's duration selector must emit a next notification to end the duration. Complete notifications no longer end the duration. #### throwError - In an extreme corner case for usage, `throwError` is no longer able to emit a function as an error directly. If you need to push a function as an error, you will have to use the factory function to return the function like so: `throwError(() => functionToEmit)`, in other words `throwError(() => () => console.log('called later'))`. #### window - The `windowBoundaries` observable no longer completes the result. It was only ever meant to notify of the window boundary. To get the same behavior as the old behavior, you would need to add an `endWith` and a `skipLast(1)` like so: `source$.pipe(window(notifier$.pipe(endWith(true))), skipLast(1))`. #### windowToggle - The observable returned by the `windowToggle` operator's closing selector must emit a next notification to close the window. Complete notifications no longer close the window. #### withLatestFrom - Generic signatures have changed. Do not explicitly pass generics. #### zip - Generic signatures have changed. Do not explicitly pass generics. - Still deprecated, use the new `zipWith`. - `zip` operators will no longer iterate provided iterables "as needed", instead the iterables will be treated as push-streams just like they would be everywhere else in RxJS. This means that passing an endless iterable will result in the thread locking up, as it will endlessly try to read from that iterable. This puts us in-line with all other Rx implementations. To work around this, it is probably best to use `map` or some combination of `map` and `zip`. For example, `zip(source$, iterator)` could be `source$.pipe(map(value => [value, iterator.next().value]))`. ### New Features #### connect - New operator to cover the use cases of `publish` variants that use a `selector`. Wherein the selector allows the user to define multicast behavior prior to connection to the source observable for the multicast. #### share - Added functionality to allow complete configuration of what type of `Subject` is used to multicast, and when that subject is reset. #### timeout - Added more configuration options to `timeout`, so it could be used to timeout just if the first item doesn't arrive quickly enough, or it could be used as a timeout between each item. Users may also pass a `Date` object to define an absolute time for a timeout for the first time to arrive. Adds additional information to the timeout error, and the ability to pass along metadata with the timeout for identification purposes. #### zipWith, concatWith, mergeWith, raceWith - Simply renamed versions of the operators `zip`, `concat`, `merge`, and `race`. So we can deprecate those old names and use the new names without collisions. ## module `rxjs/ajax` ### Breaking Changes #### ajax - `ajax` body serialization will now use default XHR behavior in all cases. If the body is a `Blob`, `ArrayBuffer`, any array buffer view (like a byte sequence, e.g. `Uint8Array`, etc), `FormData`, `URLSearchParams`, `string`, or `ReadableStream`, default handling is use. If the `body` is otherwise `typeof` `"object"`, then it will be converted to JSON via `JSON.stringify`, and the `Content-Type` header will be set to `application/json;charset=utf-8`. All other types will emit an error. - The `Content-Type` header passed to `ajax` configuration no longer has any effect on the serialization behavior of the AJAX request. - For TypeScript users, `AjaxRequest` is no longer the type that should be explicitly used to create an `ajax`. It is now `AjaxConfig`, although the two types are compatible, only `AjaxConfig` has `progressSubscriber` and `createXHR`. - Ajax implementation drops support for IE10 and lower. This puts us in-line with other implementations and helps clean up code in this area #### AjaxRequest - `AjaxRequest` is no longer used to type the configuration argument for calls to `ajax`. The new type is `AjaxConfig`. This was done to disambiguate two very similar types with different use cases. `AjaxRequest` is still there, but properties have changed, and it is used to show what final request information was send as part of an event response. ### New Features #### AjaxResponse - Now includes `responseHeaders`. - Now includes event `type` and `total` numbers for examining upload and download progress (see `includeUploadProgress` and `includeDownloadProgress`). #### includeUploadProgress - A flag to make a request that will include streaming upload progress events in the returned observable. #### includeDownloadProgress - A flag to make a request that will include streaming upload progress events in the returned observable. #### queryParams - Configuration for setting query parameters in the URL of the request to be made. #### XSRF (CSRF) additions: - `xsrfCookieName` and `xsrfHeaderName` were added for cross-site request forgery prevention capabilities. ## module `rxjs/fetch` No changes. ## module `rxjs/testing` ### New Features #### TestScheduler expectObservable().toEqual() - A new means of comparing the equality of to observables. If all emissions are the same, and at the same time, then they are equal. This is primarily useful for refactoring operator chains and making sure that they are equivalent. rxjs-7.5.7/docs_app/content/blackLivesMatter.md000066400000000000000000000052161431412030200215320ustar00rootroot00000000000000

BLACK LIVES MATTER

We stand in solidarity with the Black Lives Matter movement. We believe that technologists must not be silent in the fight to end racial inequality.

We ask you to stand with us and help educate your team members and those in your network on how to help dismantle a system that oppresses Black people. Find a list of starting resources here:

  • Let's get to the root of racial injustice by Megan Ming Francis
  • What Leaders can do for Black Employees by Dr. Akilah Cadet
  • Hey Employers: Do Black Lives Matter? by Pariss Athena
  • Algorithms of Oppression by Safiya Umoja Noble
  • Rage Inside The Machine by Robert Smith
  • Technically Wrong by Sara Wachter-Boettcher

In solidarity, we ask you to consider financially supporting efforts such as Black Lives Matter, The Equal Justice Initiative or local charity organizations.

rxjs-7.5.7/docs_app/content/code-of-conduct.md000066400000000000000000000063201431412030200212440ustar00rootroot00000000000000# Contributor Covenant Code of Conduct ## Our Pledge In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. ## Our Standards Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language * Being respectful of differing viewpoints and experiences * Gracefully accepting constructive criticism * Focusing on what is best for the community * Showing empathy towards other community members Examples of unacceptable behavior by participants include: * The use of sexualized language or imagery and unwelcome sexual attention or advances * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment * Publishing others' private information, such as a physical or electronic address, without explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. ## Scope This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting Ben Lesh (ben@benlesh.com), Tracy Lee (tracy@thisdot.co) or OJ Kwon (kwon.ohjoong@gmail.com). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org rxjs-7.5.7/docs_app/content/deprecations/000077500000000000000000000000001431412030200204305ustar00rootroot00000000000000rxjs-7.5.7/docs_app/content/deprecations/array-argument.md000066400000000000000000000014421431412030200237110ustar00rootroot00000000000000# Array Arguments To unify the API surface of `forkJoin` and `combineLatest` we deprecated some signatures. Since that it is recommended to either pass an Object or an Array to these operators.
This deprecation was introduced in RxJS 6.5.
## Operators affected by this Change - [combineLatest](/api/index/function/combineLatest) - [forkJoin](/api/index/function/forkJoin) ## How to Refactor We deprecated the signatures, where just pass all Observables directly as parameters to these operators. ```ts import {forkJoin, from} from 'rxjs'; const odd$ = from([1,3,5]); const even$ = from([2,4,6]); // deprecated forkJoin(odd$, even$); // suggested change forkJoin([odd$, even$]); // or forkJoin({odd: odd$, even: even$}) ```rxjs-7.5.7/docs_app/content/deprecations/breaking-changes.md000066400000000000000000000240311431412030200241420ustar00rootroot00000000000000# Breaking Changes in Version 7 ## General - **TS:** RxJS requires TS 4.2 - **rxjs-compat:** `rxjs-compat` is not published for v7 - **toPromise:** toPromise return type now returns `T | undefined` in TypeScript, which is correct, but may break builds. - **Subscription:** `add` no longer returns an unnecessary Subscription reference. This was done to prevent confusion caused by a legacy behavior. You can now add and remove functions and Subscriptions as teardowns to and from a `Subscription` using `add` and `remove` directly. Before this, `remove` only accepted subscriptions. - **Observable:** `lift` no longer exposed. It was _NEVER_ documented that end users of the library should be creating operators using `lift`. Lift has a [variety of issues](https://github.com/ReactiveX/rxjs/issues/5431) and was always an internal implementation detail of rxjs that might have been used by a few power users in the early days when it had the most value. The value of `lift`, originally, was that subclassed `Observable`s would compose through all operators that implemented lift. The reality is that feature is not widely known, used, or supported, and it was never documented as it was very experimental when it was first added. Until the end of v7, `lift` will remain on Observable. Standard JavaScript users will notice no difference. However, TypeScript users might see complaints about `lift` not being a member of observable. To workaround this issue there are two things you can do: 1. Rewrite your operators as [outlined in the documentation](https://rxjs.dev/guide/operators), such that they return `new Observable`. or 2. cast your observable as `any` and access `lift` that way. Method 1 is recommended if you do not want things to break when we move to version 8. - **Subscriber:** `new Subscriber` no longer takes 0-3 arguments. To create a `Subscriber` with 0-3 arguments, use `Subscriber.create`. However, please note that there is little to no reason that you should be creating `Subscriber` references directly, and `Subscriber.create` and `new Subscriber` are both deprecated. - **onUnhandledError:** Errors that occur during setup of an observable subscription after the subscription has emitted an error or completed will now throw in their own call stack. Before it would call `console.warn`. This is potentially breaking in edge cases for node applications, which may be configured to terminate for unhandled exceptions. In the unlikely event this affects you, you can configure the behavior to `console.warn` in the new configuration setting like so: `import { config } from 'rxjs'; config.onUnhandledError = (err) => console.warn(err);` - **RxJS Error types** Tests that are written with naive expectations against errors may fail now that errors have a proper `stack` property. In some testing frameworks, a deep equality check on two error instances will check the values in `stack`, which could be different. - `unsubscribe` no longer available via the `this` context of observer functions. To reenable, set `config.useDeprecatedNextContext = true` on the rxjs `config` found at `import { config } from 'rxjs';`. Note that enabling this will result in a performance penalty for all consumer subscriptions. - Leaked implementation detail `_unsubscribeAndRecycle` of `Subscriber` has been removed. Just use new `Subscription` objects - The static `sortActions` method on `VirtualTimeScheduler` is no longer publicly exposed by our TS types. - `Notification.createNext(undefined)` will no longer return the exact same reference every time. - Type signatures tightened up around `Notification` and `dematerialize`, may uncover issues with invalid types passed to those operators. - Experimental support for `for await` as been removed. Use https://github.com/benlesh/rxjs-for-await instead. - `ReplaySubject` no longer schedules emissions when a scheduler is provided. If you need that behavior, please compose in `observeOn` using `pipe`, for example: `new ReplaySubject(2, 3000).pipe(observeOn(asap))` - **rxjs-compat:** `rxjs/Rx` is no longer a valid import site. ## Operators ### concat - **concat:** Generic signature changed. Recommend not explicitly passing generics, just let inference do its job. If you must, cast with `as`. - **of:** Generic signature changed, do not specify generics, allow them to be inferred or use `as` ### count - **count:** No longer passes `source` observable as a third argument to the predicate. That feature was rarely used, and of limited value. The workaround is to simply close over the source inside of the function if you need to access it in there. ### defer - `defer` no longer allows factories to return `void` or `undefined`. All factories passed to defer must return a proper `ObservableInput`, such as `Observable`, `Promise`, et al. To get the same behavior as you may have relied on previously, `return EMPTY` or `return of()` from the factory. ### map - **map:** `thisArg` will now default to `undefined`. The previous default of `MapSubscriber` never made any sense. This will only affect code that calls map with a `function` and references `this` like so: `source.pipe(map(function () { console.log(this); }))`. There wasn't anything useful about doing this, so the breakage is expected to be very minimal. If anything we're no longer leaking an implementation detail. ### mergeScan - **mergeScan:** `mergeScan` will no longer emit its inner state again upon completion. ### of - **of:** Use with more than 9 arguments, where the last argument is a `SchedulerLike` may result in the wrong type which includes the `SchedulerLike`, even though the run time implementation does not support that. Developers should be using `scheduled` instead ### pairs - **pairs:** `pairs` will no longer function in IE without a polyfill for `Object.entries`. `pairs` itself is also deprecated in favor of users just using `from(Object.entries(obj))`. ### race - **race:** `race()` will no longer subscribe to subsequent observables if a provided source synchronously errors or completes. This means side effects that might have occurred during subscription in those rare cases will no longer occur. ### repeat - An undocumented behavior where passing a negative count argument to `repeat` would result in an observable that repeats forever. ### retry - Removed an undocumented behavior where passing a negative count argument to `retry` would result in an observable that repeats forever. ### single - `single` operator will now throw for scenarios where values coming in are either not present, or do not match the provided predicate. Error types have thrown have also been updated, please check documentation for changes. ### skipLast - **skipLast:** `skipLast` will no longer error when passed a negative number, rather it will simply return the source, as though `0` was passed. ### startWith - **startWith:** `startWith` will return incorrect types when called with more than 7 arguments and a scheduler. Passing scheduler to startWith is deprecated ### take - `take` and will now throw runtime error for arguments that are negative or NaN, this includes non-TS calls like `take()`. ### takeLast - `takeLast` now has runtime assertions that throw `TypeError`s for invalid arguments. Calling takeLast without arguments or with an argument that is `NaN` will throw a `TypeError` ### throwError - **throwError:** In an extreme corner case for usage, `throwError` is no longer able to emit a function as an error directly. If you need to push a function as an error, you will have to use the factory function to return the function like so: `throwError(() => functionToEmit)`, in other words `throwError(() => () => console.log('called later'))`. ### timestamp - `timestamp` operator accepts a `TimestampProvider`, which is any object with a `now` method that returns a number. This means pulling in less code for the use of the `timestamp` operator. This may cause issues with `TestScheduler` run mode. (see [Issue here](https://github.com/ReactiveX/rxjs/issues/5553)) ### zip - **zip:** Zipping a single array will now have a different result. This is an extreme corner-case, because it is very unlikely that anyone would want to zip an array with nothing at all. The workaround would be to wrap the array in another array `zip([[1,2,3]])`. But again, that's pretty weird. - **zip:** `zip` operators will no longer iterate provided iterables "as needed", instead the iterables will be treated as push-streams just like they would be everywhere else in RxJS. This means that passing an endless iterable will result in the thread locking up, as it will endlessly try to read from that iterable. This puts us in-line with all other Rx implementations. To work around this, it is probably best to use `map` or some combination of `map` and `zip`. For example, `zip(source$, iterator)` could be `source$.pipe(map(value => [value, iterator.next().value]))`. ## ajax - `ajax` body serialization will now use default XHR behavior in all cases. If the body is a `Blob`, `ArrayBuffer`, any array buffer view (like a byte sequence, e.g. `Uint8Array`, etc), `FormData`, `URLSearchParams`, `string`, or `ReadableStream`, default handling is use. If the `body` is otherwise `typeof` `"object"`, then it will be converted to JSON via `JSON.stringify`, and the `Content-Type` header will be set to `application/json;charset=utf-8`. All other types will emit an error. - The `Content-Type` header passed to `ajax` configuration no longer has any effect on the serialization behavior of the AJAX request. - For TypeScript users, `AjaxRequest` is no longer the type that should be explicitly used to create an `ajax`. It is now `AjaxConfig`, although the two types are compatible, only `AjaxConfig` has `progressSubscriber` and `createXHR`. - **ajax:** In an extreme corner-case... If an error occurs, the responseType is `"json"`, we're in IE, and the `responseType` is not valid JSON, the `ajax` observable will no longer emit a syntax error, rather it will emit a full `AjaxError` with more details. - **ajax:** Ajax implementation drops support for IE10 and lower. This puts us in-line with other implementations and helps clean up code in this area rxjs-7.5.7/docs_app/content/deprecations/index.md000066400000000000000000000012171431412030200220620ustar00rootroot00000000000000# Deprecations and Breaking Changes While the core team always tries to limit changes, sometimes we have to deprecate APIs or do breaking changes for various reasons. This section aims to describe some of the deprecations and breaking changes we did more in detail. Some of the changes are to extensive to describe them appropriately in a changelog. Additionally, we can provide code examples in the documentation, to make required changes more comprehensible and therefore lower migration efforts. Do notice that this is not a complete list, please see the [changelog](https://github.com/ReactiveX/rxjs/blob/master/CHANGELOG.md) for the complete list.rxjs-7.5.7/docs_app/content/deprecations/multicasting.md000066400000000000000000000273741431412030200234720ustar00rootroot00000000000000# Multicasting In version 7, the multicasting APIs were simplified to just a few functions: - [connectable](/api/index/function/connectable) - [connect](/api/operators/connect) - [share](/api/operators/share) And [shareReplay](/api/operators/shareReplay) - which is a thin wrapper around the now highly-configurable [share](/api/operators/share) operator. Other APIs that relate to multicasting are now deprecated.
These deprecations were introduced in RxJS 7.0 and will become breaking in RxJS 8.
## APIs affected by this Change - [ConnectableObservable](/api/index/class/ConnectableObservable) - [multicast](/api/operators/multicast) - [publish](/api/operators/publish) - [publishBehavior](/api/operators/publishBehavior) - [publishLast](/api/operators/publishLast) - [publishReplay](/api/operators/publishReplay) - [refCount](/api/operators/refCount) ## How to refactor ### ConnectableObservable Instead of creating a [ConnectableObservable](/api/index/class/ConnectableObservable) instance, call the [connectable](/api/index/function/connectable) function to obtain a connectable observable. ```ts import { ConnectableObservable, timer, Subject } from 'rxjs'; // deprecated const tick$ = new ConnectableObservable( timer(1_000), () => new Subject()); tick$.connect(); ``` ```ts import { connectable, timer, Subject } from 'rxjs'; // suggested refactor const tick$ = connectable(timer(1_000), { connector: () => new Subject() }); tick$.connect(); ``` In situations in which the `refCount` method is used, the [share](/api/operators/share) operator can be used instead. ```ts import { ConnectableObservable, timer, Subject } from 'rxjs'; // deprecated const tick$ = new ConnectableObservable( timer(1_000), () => new Subject() ).refCount(); ``` ```ts import { timer, share, Subject } from 'rxjs'; // suggested refactor const tick$ = timer(1_000).pipe( share({ connector: () => new Subject() }) ); ``` ### multicast Where [multicast](/api/operators/multicast) is called with a subject factory, can be replaced with [connectable](/api/index/function/connectable). ```ts import { timer, multicast, Subject, ConnectableObservable } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( multicast(() => new Subject()) ) as ConnectableObservable; ``` ```ts import { connectable, timer, Subject } from 'rxjs'; // suggested refactor const tick$ = connectable(timer(1_000), { connector: () => new Subject() }); ``` Where [multicast](/api/operators/multicast) is called with a subject instance, it can be replaced with [connectable](/api/index/function/connectable) and a local subject instance. ```ts import { timer, multicast, Subject, ConnectableObservable } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( multicast(new Subject()) ) as ConnectableObservable; ``` ```ts import { connectable, timer, Subject } from 'rxjs'; // suggested refactor const tick$ = connectable(timer(1_000), { connector: () => new Subject(), resetOnDisconnect: false }); ``` Where [multicast](/api/operators/multicast) is used in conjunction with [refCount](/api/operators/refCount), it can be replaced with [share](/api/index/function/connectable). ```ts import { timer, multicast, Subject, refCount } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( multicast(() => new Subject()), refCount() ); ``` ```ts import { timer, share, Subject } from 'rxjs'; // suggested refactor const tick$ = timer(1_000).pipe( share({ connector: () => new Subject() }) ); ``` Where [multicast](/api/operators/multicast) is used with a selector, it can be replaced with [connect](/api/index/function/connect). ```ts import { timer, multicast, Subject, combineLatest } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( multicast( () => new Subject(), (source) => combineLatest([source, source]) ) ); ``` ```ts import { timer, connect, combineLatest, Subject } from 'rxjs'; // suggested refactor const tick$ = timer(1_000).pipe( connect((source) => combineLatest([source, source]), { connector: () => new Subject() }) ); ``` ### publish If you're using [publish](/api/operators/publish) to create a [ConnectableObservable](/api/index/class/ConnectableObservable), you can use [connectable](/api/index/function/connectable) instead. ```ts import { timer, publish, ConnectableObservable } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( publish() ) as ConnectableObservable; ``` ```ts import { connectable, timer, Subject } from 'rxjs'; // suggested refactor const tick$ = connectable(timer(1_000), { connector: () => new Subject(), resetOnDisconnect: false }); ``` And if [refCount](/api/operators/refCount) is being applied to the result of [publish](/api/operators/publish), you can use [share](/api/operators/share) to replace both. ```ts import { timer, publish, refCount } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( publish(), refCount() ); ``` ```ts import { timer, share } from 'rxjs'; // suggested refactor const tick$ = timer(1_000).pipe( share({ resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }) ); ``` If [publish](/api/operators/publish) is being called with a selector, you can use the [connect](/api/operators/connect) operator instead. ```ts import { timer, publish, combineLatest } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( publish((source) => combineLatest([source, source])) ); ``` ```ts import { timer, connect, combineLatest } from 'rxjs'; // suggested refactor const tick$ = timer(1_000).pipe( connect((source) => combineLatest([source, source])) ); ``` ### publishBehavior If you're using [publishBehavior](/api/operators/publishBehavior) to create a [ConnectableObservable](/api/index/class/ConnectableObservable), you can use [connectable](/api/index/function/connectable) and a [BehaviorSubject](api/index/class/BehaviorSubject) instead. ```ts import { timer, publishBehavior, ConnectableObservable } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( publishBehavior(0) ) as ConnectableObservable; ``` ```ts import { connectable, timer, BehaviorSubject } from 'rxjs'; // suggested refactor const tick$ = connectable(timer(1_000), { connector: () => new BehaviorSubject(0), resetOnDisconnect: false }); ``` And if [refCount](/api/operators/refCount) is being applied to the result of [publishBehavior](/api/operators/publishBehavior), you can use the [share](/api/operators/share) operator - with a [BehaviorSubject](api/index/class/BehaviorSubject) connector - to replace both. ```ts import { timer, publishBehavior, refCount } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( publishBehavior(0), refCount() ); ``` ```ts import { timer, share, BehaviorSubject } from 'rxjs'; // suggested refactor const tick$ = timer(1_000).pipe( share({ connector: () => new BehaviorSubject(0), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }) ); ``` ### publishLast If you're using [publishLast](/api/operators/publishLast) to create a [ConnectableObservable](/api/index/class/ConnectableObservable), you can use [connectable](/api/index/function/connectable) and an [AsyncSubject](api/index/class/AsyncSubject) instead. ```ts import { timer, publishLast, ConnectableObservable } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( publishLast() ) as ConnectableObservable; ``` ```ts import { connectable, timer, AsyncSubject } from 'rxjs'; // suggested refactor const tick$ = connectable(timer(1_000), { connector: () => new AsyncSubject(), resetOnDisconnect: false }); ``` And if [refCount](/api/operators/refCount) is being applied to the result of [publishLast](/api/operators/publishLast), you can use the [share](/api/operators/share) operator - with an [AsyncSubject](api/index/class/AsyncSubject) connector - to replace both. ```ts import { timer, publishLast, refCount } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( publishLast(), refCount() ); ``` ```ts import { timer, share, AsyncSubject } from 'rxjs'; // suggested refactor const tick$ = timer(1_000).pipe( share({ connector: () => new AsyncSubject(), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }) ); ``` ### publishReplay If you're using [publishReplay](/api/operators/publishReplay) to create a [ConnectableObservable](/api/index/class/ConnectableObservable), you can use [connectable](/api/index/function/connectable) and a [ReplaySubject](api/index/class/ReplaySubject) instead. ```ts import { timer, publishReplay, ConnectableObservable } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( publishReplay(1) ) as ConnectableObservable; ``` ```ts import { connectable, timer, ReplaySubject } from 'rxjs'; // suggested refactor const tick$ = connectable(timer(1_000), { connector: () => new ReplaySubject(1), resetOnDisconnect: false }); ``` And if [refCount](/api/operators/refCount) is being applied to the result of [publishReplay](/api/operators/publishReplay), you can use the [share](/api/operators/share) operator - with a [ReplaySubject](api/index/class/ReplaySubject) connector - to replace both. ```ts import { timer, publishReplay, refCount } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( publishReplay(1), refCount() ); ``` ```ts import { timer, share, ReplaySubject } from 'rxjs'; // suggested refactor const tick$ = timer(1_000).pipe( share({ connector: () => new ReplaySubject(1), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }) ); ``` If [publishReplay](/api/operators/publishReplay) is being called with a selector, you can use the [connect](/api/operators/connect) operator - with a [ReplaySubject](api/index/class/ReplaySubject) connector - instead. ```ts import { timer, publishReplay, combineLatest } from 'rxjs'; // deprecated const tick$ = timer(1_000).pipe( publishReplay(1, undefined, (source) => combineLatest([source, source])) ); ``` ```ts import { timer, connect, combineLatest, ReplaySubject } from 'rxjs'; // suggested refactor const tick$ = timer(1_000).pipe( connect((source) => combineLatest([source, source]), { connector: () => new ReplaySubject(1) }) ); ``` ### refCount Instead of applying the [refCount](/api/operators/refCount) operator to the [ConnectableObservable](/api/index/class/ConnectableObservable) obtained from a [multicast](/api/operators/multicast) or [publish](/api/operators/publish) operator, use the [share](/api/operators/share) operator to replace both. The properties passed to [share](/api/operators/share) will depend upon the operators that are being replaced. The refactors for using [refCount](/api/operators/refCount) with [multicast](/api/operators/multicast), [publish](/api/operators/publish), [publishBehavior](/api/operators/publishBehavior), [publishLast](/api/operators/publishLast) and [publishReplay](/api/operators/publishReplay) are detailed above. rxjs-7.5.7/docs_app/content/deprecations/resultSelector.md000066400000000000000000000025751431412030200240020ustar00rootroot00000000000000# ResultSelector Parameter Some operator supported a resultSelector argument that acted as mapping function on the result of that operator. The same behavior can be reproduced with the `map` operator, therefore this argument became deprecated.
This deprecation was introduced in RxJS 6.0 and will become breaking with RxJS 8.
There were two reasons for actually deprecating those parameters: 1. It increases the bundle size of every operator 2. In some scenarios values had to be retained in memory causing a general memory pressure ## Operators affected by this Change - [concatMap](/api/operators/concatMap) - [concatMapTo](/api/operators/concatMapTo) - [exhaustMap](/api/operators/exhaustMap) - [mergeMap](/api/operators/mergeMap) - [mergeMapTo](/api/operators/mergeMapTo) - [switchMap](/api/operators/switchMap) - [swithMapTo](/api/operators/swithMapTo) ## How to Refactor Instead of using the `resultSelector` Argument, you can leverage the [`map`](/api/operators/map) operator on the inner Observable: ```ts import { fromEvent, switchMap, interval, map } from 'rxjs'; // deprecated fromEvent(document, 'click').pipe( switchMap((x) => interval(1000), (_, x) => x + 1) ); // suggested change fromEvent(document, 'click').pipe( switchMap((x) => interval(1000).pipe(map((x) => x + 1))) ); ``` rxjs-7.5.7/docs_app/content/deprecations/scheduler-argument.md000066400000000000000000000061041431412030200245510ustar00rootroot00000000000000# Scheduler Argument To limit the API surface of some operators, but also prepare for a [major refactoring in V8](https://github.com/ReactiveX/rxjs/pull/4583), we agreed on deprecating the `scheduler` argument from many operators. It solely deprecates those methods where this argument is rarely used. So `time` related operators, like [`interval`](https://rxjs.dev/api/index/function/interval) are not affected by this deprecation. To support this transition the [scheduled creation function](/api/index/function/scheduled) was added.
This deprecation was introduced in RxJS 6.5 and will become breaking with RxJS 8.
## Operators affected by this Change - [from](/api/index/function/from) - [of](/api/index/function/of) - [merge](/api/index/function/merge) - [concat](/api/index/function/concat) - [startWith](/api/operators/startWith) - [endWith](/api/operators/endWith) - [combineLatest](/api/index/function/combineLatest) ## How to Refactor If you use any other operator from the list above and using the `scheduler` argument, you have to three potential refactoring options. ### Refactoring of `of` and `from` `scheduled` is kinda copying the behavior of `from`. Therefore if you used `from` with a `scheduler` argument, you can just replace them. For the `of` creation function you need to this Observable with `scheduled` and instead of passing the `scheduler` argument to `of` pass it to `scheduled`. Following code example demonstrate this process. ```ts import { of, asyncScheduler, scheduled } from 'rxjs'; // Deprecated approach of(1, 2, 3, asyncScheduler).subscribe((x) => console.log(x)); // suggested approach scheduled([1, 2, 3], asyncScheduler).subscribe((x) => console.log(x)); ``` ### Refactoring of `merge`, `concat`, `combineLatest`, `startWith` and `endWith` In case you used to pass a scheduler argument to one of these operators you probably had code like this: ```ts import { concat, of, asyncScheduler } from 'rxjs'; concat(of('hello '), of('World'), asyncScheduler).subscribe((x) => console.log(x)); ``` To work around this deprecation you can leverage the [`scheduled`](/api/index/function/scheduled) function. ```ts import { scheduled, of, asyncScheduler, concatAll } from 'rxjs'; scheduled([of('hello '), of('World')], asyncScheduler) .pipe(concatAll()) .subscribe((x) => console.log(x)); ``` You can apply this pattern to refactor deprecated usage of `concat`, `startWith` and `endWith` but do notice that you will want to use [mergeAll](/api/operators/mergeAll) to refactor the deprecated usage of `merge`. With `combineLatest`, you will want to use [combineLatestAll](/api/operators/combineLatestAll) E.g. code that used to look like this: ```ts import { combineLatest, of, asyncScheduler } from 'rxjs'; combineLatest(of('hello '), of('World'), asyncScheduler).subscribe(console.log); ``` would become: ```ts import { scheduled, of, asyncScheduler, combineLatestAll } from 'rxjs'; scheduled([of('hello '), of('World')], asyncScheduler) .pipe(combineLatestAll()) .subscribe((x) => console.log(x)); ``` rxjs-7.5.7/docs_app/content/deprecations/subscribe-arguments.md000066400000000000000000000044511431412030200247420ustar00rootroot00000000000000# Subscribe Arguments You might have seen that we deprecated some signatures of the `subscribe` method, which might have caused some confusion. The `subscribe` method itself is not deprecated. This deprecation also affects the [`tap` operator](../../api/operators/tap), as tap supports the same signature as the `subscribe` method. This is to get ready for a future where we may allow configuration of `subscribe` via the second argument, for things like `AbortSignal` or the like (imagine `source$.subscribe(fn, { signal })`, etc). This deprecation is also because 2-3 function arguments can contribute to harder-to-read code. For example someone could name functions poorly and confuse the next reader: `source$.subscribe(doSomething, doSomethingElse, lol)` With that signature, you have to know unapparent details about `subscribe`, where using a partial observer solves that neatly: `source$.subscribe({ next: doSomething, error: doSomethingElse, complete: lol })`.
This deprecation was introduced in RxJS 6.4.
In short we deprecated all signatures where you specified an anonymous `error` or `complete` callback and passed an empty function to one of the callbacks before. ## What Signature is affected **We have deprecated all signatures of `subscribe` that take more than 1 argument.** We deprecated signatures for just passing the `complete` callback. ```ts import { of } from 'rxjs'; // deprecated of([1,2,3]).subscribe(null, null, console.info); // difficult to read // suggested change of([1,2,3]).subscribe({complete: console.info}); ``` Similarly, we also deprecated signatures for solely passing the `error` callback. ```ts import { throwError } from 'rxjs'; // deprecated throwError('I am an error').subscribe(null, console.error); // suggested change throwError('I am an error').subscribe({error: console.error}); ``` Do notice, in general it is recommended only to use the anonymous function if you only specify the `next` callback otherwise we recommend to pass an `Observer` ```ts import { of } from 'rxjs'; // recommended of([1,2,3]).subscribe((v) => console.info(v)); // also recommended of([1,2,3]).subscribe({ next: (v) => console.log(v), error: (e) => console.error(e), complete: () => console.info('complete') }) ``` rxjs-7.5.7/docs_app/content/deprecations/to-promise.md000066400000000000000000000102501431412030200230460ustar00rootroot00000000000000# Conversion to Promises The similarity between Observables and Promises is that both [collections](/guide/observable) may produce values over time, but the difference is that Observables may produce none or more than one value, while Promises produce only one value when resolved successfully. ## Issues For this reason, in RxJS 7, the return type of the Observable's [`toPromise()`](/api/index/class/Observable#toPromise) method has been fixed to better reflect the fact that Observables can yield zero values. This may be a **breaking change** to some projects as the return type was changed from `Promise` to `Promise`. Also, `toPromise()` method name was never indicating what emitted value a Promise will resolve with because Observables can produce multiple values over time. When converting to a Promise, you might want to choose which value to pick - either the first value that has arrived or the last one. To fix all these issues, we decided to deprecate `toPromise()`, and to introduce the two new helper functions for conversion to Promises. ## Use one of the two new functions As a replacement to the deprecated `toPromise()` method, you should use one of the two built in static conversion functions {@link firstValueFrom} or {@link lastValueFrom}. ### `lastValueFrom` The `lastValueFrom` is almost exactly the same as `toPromise()` meaning that it will resolve with the last value that has arrived when the Observable completes, but with the difference in behavior when Observable completes without emitting a single value. When Observable completes without emitting, `toPromise()` will successfully resolve with `undefined` (thus the return type change), while the `lastValueFrom` will reject with the {@link EmptyError}. Thus, the return type of the `lastValueFrom` is `Promise`, just like `toPromise()` had in RxJS 6. #### Example ```ts import { interval, take, lastValueFrom } from 'rxjs'; async function execute() { const source$ = interval(2000).pipe(take(10)); const finalNumber = await lastValueFrom(source$); console.log(`The final number is ${finalNumber}`); } execute(); // Expected output: // "The final number is 9" ``` ### `firstValueFrom` However, you might want to take the first value as it arrives without waiting an Observable to complete, thus you can use `firstValueFrom`. The `firstValueFrom` will resolve a Promise with the first value that was emitted from the Observable and will immediately unsubscribe to retain resources. The `firstValueFrom` will also reject with an {@link EmptyError} if the Observable completes with no values emitted. #### Example ```ts import { interval, firstValueFrom } from 'rxjs'; async function execute() { const source$ = interval(2000); const firstNumber = await firstValueFrom(source$); console.log(`The first number is ${firstNumber}`); } execute(); // Expected output: // "The first number is 0" ``` Both functions will return a Promise that rejects if the source Observable errors. The Promise will reject with the same error that the Observable has errored with. ## Use default value If you don't want Promises created by `lastValueFrom` or `firstValueFrom` to reject with {@link EmptyError} if there were no emissions before completion, you can use the second parameter. The second parameter is expected to be an object with `defaultValue` parameter. The value in the `defaultValue` will be used to resolve a Promise when source Observable completes without emitted values. ```ts import { firstValueFrom, EMPTY } from 'rxjs'; const result = await firstValueFrom(EMPTY, { defaultValue: 0 }); console.log(result); // Expected output: // 0 ``` ## Warning Only use `lastValueFrom` function if you _know_ an Observable will eventually complete. The `firstValueFrom` function should be used if you _know_ an Observable will emit at least one value _or_ will eventually complete. If the source Observable does not complete or emit, you will end up with a Promise that is hung up, and potentially all of the state of an async function hanging out in memory. To avoid this situation, look into adding something like {@link timeout}, {@link take}, {@link takeWhile}, or {@link takeUntil} amongst others. rxjs-7.5.7/docs_app/content/file-not-found.md000066400000000000000000000005031431412030200211160ustar00rootroot00000000000000@description

Page Not Found

We're sorry. The page you are looking for cannot be found.

rxjs-7.5.7/docs_app/content/guide/000077500000000000000000000000001431412030200170455ustar00rootroot00000000000000rxjs-7.5.7/docs_app/content/guide/core-semantics.md000066400000000000000000000107611431412030200223100ustar00rootroot00000000000000# RxJS Core Semantics Starting in version 8, all RxJS operators that are provided in the core library MUST meet the following semantics. In the current version, version 7, all operators SHOULD meet the following semantics (as guidelines). If they do not, we need to track the issue on [GitHub](https://github.com/ReactiveX/rxjs/issues). ## Purpose The purpose of these semantics is provide predictable behavior for the users of our library, and to ensure consistent behavior between our many different operators. It should be noted that at the time of this writing, we don't always adhere to these semantic guidelines. This document is to serve as a goalpost for upcoming changes and work as much as it is to help describe the library. This is also a "living document" and is subject to change. ## General Design Guidelines **Functions such as operators, constructors, and creation functions, should use named parameters in cases where there is more than 1 argument, and arguments after the first are non-obvious.** The primary use case should be streamlined to work without configuration. For example, `fakeFlattenMap(n => of(n))` is fine, but `fakeFlattenMap(n => of(n), 1)` is less readable than `fakeFlattenMap(n => of(n), { maxConcurrent: 1 })`. Other things, like `of(1, 2, 3)` are obvious enough that named parameters don't make sense. ## Operators - MUST be a function that returns an [operator function](https://rxjs.dev/api/index/interface/OperatorFunction). That is `(source: Observable) => Observable`. - The returned operator function MUST be [referentially transparent](https://en.wikipedia.org/wiki/Referential_transparency). That is to say, that if you capture the return value of the operator (e.g. `const double => map(x => x + x)`), you can use that value to operate on any many observables as you like without changing any underlying state in the operator reference. (e.g. `a$.pipe(double)` and `b$.pipe(double)`). - The observable returned by the operator function MUST subscribe to the source. - If the operation performed by the operator can tell it not change anything about the output of the source, it MUST return the reference to the source. For example `take(Infinity)` or `skip(0)`. - Operators that accept a "notifier", that is another observable source that is used to trigger some behavior, must accept any type that can be converted to an `Observable` with `from`. For example `takeUntil`. - Operators that accept "notifiers" (as described above), MUST ONLY recognized next values from the notifier as "notifications". Emitted completions may not be used a source of notification. - "Notifiers" provided directly to the operator MUST be subscribed to _before_ the source is subscribed to. "Notifiers" created via factory function provided to the operator SHOULD be subscribed to at the earliest possible moment. - The observable returned by the operator function is considered to be the "consumer" of the source. As such, the consumer MUST unsubscribe from the source as soon as it knows it no longer needs values before proceeding to do _any_ action. - Events that happen after the completion of a source SHOULD happen after the source finalizes. This is to ensure that finalization always happens in a predictable time frame relative to the event. - `Error` objects MUST NOT be retained longer than necessary. This is a possible source of memory pressure. - `Promise` references MUST NOT be retained longer than necessary. This is a possible source of memory pressure. - IF they perform a related operation to a creation function, they SHOULD share the creation function's name only with the suffix `With`. (e.g. `concat` and `concatWith`). - SHOULD NOT have "result selectors". This is a secondary argument that provides the ability to "map" values after performing the primary operation of the operator. ## Creation Functions - Names MUST NOT end in `With`. That is reserved for the operator counter parts of creation functions. - MAY have "result selectors". This is a secondary argument that provides the ability to "map" values before they're emitted from the resulting observable. - IF the creation function accepts a "result selector", it must not accept "n-arguments" ahead of that result selector. Instead, it should accept an array or possibly an object. (bad: `combineThings(sourceA$, sourceB$, (a, b) => a + b)`, good: `combineThings([sourceA$, sourceB$], (a, b) => a + b)`. In this case, it may be okay to provide the result selector as a second argument, rather than as a named parameter, as the use should be fairly obvious. rxjs-7.5.7/docs_app/content/guide/glossary-and-semantics.md000066400000000000000000000337511431412030200237670ustar00rootroot00000000000000# RxJS: Glossary And Semantics When discussing and documenting observables, it's important to have a common language and a known set of rules around what is going on. This document is an attempt to standardize these things so we can try to control the language in our docs, and hopefully other publications about RxJS, so we can discuss reactive programming with RxJS on consistent terms. While not all of the documentation for RxJS reflects this terminology, it is a goal of the team to ensure it does, and to ensure the language and names around the library use this document as a source of truth and unified language. ## Major Entities There are high level entities that are frequently discussed. It's important to define them separately from other lower-level concepts, because they relate to the nature of observable. ### Consumer The code that is subscribing to the observable. This is whoever is being _notified_ of [nexted](#next) values, and [errors](#error) or [completions](#complete). ### Producer Any system or thing that is the source of values that are being pushed out of the observable subscription to the consumer. This can be a wide variety of things, from a `WebSocket` to a simple iteration over an `Array`. The producer is most often created during the [subscribe](#subscribe) action, and therefor "owned" by a [subscription](#subscription) in a 1:1 way, but that is not always the case. A producer may be shared between many subscriptions, if it is created outside of the [subscribe](#subscribe) action, in which case it is one-to-many, resulting in a [multicast](#multicast). ### Subscription A contract where a [consumer](#consumer) is [observing](#observation) values pushed by a [producer](#producer). The subscription (not to be confused with the `Subscription` class or type), is an ongoing process that amounts to the function of the observable from the Consumer's perspective. Subscription starts the moment a [subscribe](#subscribe) action is initiated, even before the [subscribe](#subscribe) action is finished. ### Observable The primary type in RxJS. At its highest level, an observable represents a template for connecting an [Observer](#observer), as a [consumer](#consumer), to a [producer](#producer), via a [subscribe](#subscribe) action, resulting in a [subscription](#subscription). ### Observer The manifestation of a [consumer](#consumer). A type that may have some (or all) handlers for each type of [notification](#notification): [next](#next), [error](#error), and [complete](#complete). Having all three types of handlers generally gets this to be called an "observer", where if it is missing any of the notification handlers, it may be called a ["partial observer"](#partial-observer). ## Major Actions There are specific actions and events that occur between major entities in RxJS that need to be defined. These major actions are the highest level events that occur within various parts in RxJS. ### Subscribe The act of a [consumer](#consumer) requesting an Observable set up a [subscription](#subscription) so that it may [observe](#observation) a [producer](#producer). A subscribe action can occur with an observable via many different mechanisms. The primary mechanism is the [`subscribe` method](/api/index/class/Observable#subscribe) on the [Observable class](/api/index/class/Observable). Other mechanisms include the [`forEach` method](/api/index/class/Observable#forEach), functions like [`lastValueFrom`](/api/index/function/lastValueFrom), and [`firstValueFrom`](/api/index/function/firstValueFrom), and the deprecated [`toPromise` method](/api/index/class/Observable#forEach). ### Finalization The act of cleaning up resources used by a producer. This is guaranteed to happen on `error`, `complete`, or if unsubscription occurs. This is not to be confused with [unsubscription](#unsubscription), but it does always happen during unsubscription. ### Unsubscription The act of a [consumer](#consumer) telling a [producer](#producer) is is no longer interested in receiving values. Causes [Finalization](#finalization) ### Observation A [consumer](#consumer) reacting to [next](#next), [error](#error), or [complete](#complete) [notifications](#notification). This can only happen _during_ [subscription](#subscription). ### Observation Chain When an [observable](#observable) uses another [observable](#observable) as a [producer](#producer), an "observation chain" is set up. That is a chain of [observation](#observation) such that multiple [observers](#observer) are [notifying](#notification) each other in a unidirectional way toward the final [consumer](#consumer). ### Next A value has been pushed to the [consumer](#consumer) to be [observed](#observation). Will only happen during [subscription](#subscription), and cannot happen after [error](#error), [complete](#error), or [unsubscription](#unsubscription). Logically, this also means it cannot happen after [finalization](#finalization). ### Error The [producer](#producer) has encountered a problem and is notifying the [consumer](#consumer). This is a notification that the [producer](#producer) will no longer send values and will [finalize](#finalization). This cannot occur after [complete](#complete), any other [error](#error), or [unsubscription](#unsubscription). Logically, this also means it cannot happen after [finalization](#finalization). ### Complete The [producer](#producer) is notifying the [consumer](#consumer) that it is done [nexting](#Next) values, without error, will send no more values, and it will [finalize](#finalization). [Completion](#complete) cannot occur after an [error](#error), or [unsubscribe](#unsubscription). [Complete](#complete) cannot be called twice. [Complete](#complete), if it occurs, will always happen before [finalization](#finalization). ### Notification The act of a [producer](#producer) pushing [nexted](#next) values, [errors](#error) or [completions](#complete) to a [consumer](#consumer) to be [observed](#observation). Not to be confused with the [`Notification` type](/api/index/class/Notification), which is notification manifested as a JavaScript object. ## Major Concepts Some of what we discuss is conceptual. These are mostly common traits of behaviors that can manifest in observables or in push-based reactive systems. ### Multicast The act of one [producer](#producer) being [observed](#observation) by **many** [consumers](#consumer). ### Unicast The act of one [producer](#producer) being [observed](#observation) **only one** [consumer](#consumer). An observable is "unicast" when it only connects one [producer](#producer) to one [consumer](#consumer). Unicast doesn't necessarily mean ["cold"](#cold). ### Cold An observable is "cold" when it creates a new [producer](#producer) during [subscribe](#subscribe) for every new [subscription](#subscription). As a result, a "cold" observables are _always_ [unicast](#unicast), being one [producer](#producer) [observed](#observation) by one [consumer](#consumer). Cold observables can be made [hot](#hot) but not the other way around. ### Hot An observable is "hot", when its [producer](#producer) was created outside of the context of the [subscribe](#subscribe) action. This means that the "hot" observable is almost always [multicast](#multicast). It is possible that a "hot" observable is still _technically_ unicast, if it is engineered to only allow one [subscription](#subscription) at a time, however, there is no straightforward mechanism for this in RxJS, and the scenario is a unlikely. For the purposes of discussion, all "hot" observables can be assumed to be [multicast](#multicast). Hot observables cannot be made [cold](#cold). ### Push [Observables](#observable) are a push-based type. That means rather than having the [consumer](#consumer) call a function or perform some other action to get a value, the [consumer](#consumer) receives values as soon as the [producer](#producer) has produced them, via a registered [next](#next) handler. ### Pull Pull-based systems are the opposite of [push](#push)-based. In a pull-based type or system, the [consumer](#consumer) must request each value the [producer](#producer) has produced manually, perhaps long after the [producer](#producer) has actually done so. Examples of such systems are [Functions](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function) and [Iterators](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) ## Minor Entities ### Operator A factory function that creates an [operator function](#operator-function). Examples of this in rxjs are functions like [`map`](/api/operators/map) and [`mergeMap`](/api/operators/mergeMap), which are generally passed to [`pipe`](/api/index/class/Observable#pipe). The result of calling many operators, and passing their resulting [operator functions](#operator-function) into pipe on an observable [source](#source) will be another [observable](#observable), and will generally not result in [subscription](#subscription). ### Operator Function A function that takes an [observable](#observable), and maps it to a new [observable](#observable). Nothing more, nothing less. Operator functions are created by [operators](#operator). If you were to call an rxjs operator like [map](/api/operators/map) and put the return value in a variable, the returned value would be an operator function. ### Operation An action taken while handling a [notification](#notification), as set up by an [operator](#operator) and/or [operator function](#operator-function). In RxJS, a developer can chain several [operator functions](#operator-function) together by calling [operators](#operator) and passing the created [operator functions](#operator-function) to the [`pipe`](/api/index/class/Observable#pipe) method of [`Observable`](/api/index/class/Observable), which results in a new [observable](#observable). During [subscription](#subscription) to that observable, operations are performed in an order dictated by the [observation chain](#observation-chain). ### Stream A "stream" or "streaming" in the case of observables, refers to the collection of [operations](#operation), as they are processed during a [subscription](#subscription). This is not to be confused with node [Streams](https://nodejs.org/api/stream.html), and the word "stream", on its own, should be used _sparingly_ in documentation and articles. Instead, prefer [observation chain](#observation-chain), [operations](#operation), or [subscription](#subscription). "Streaming" is less ambiguous, and is fine to use given this defined meaning. ### Source A [observable](#observable) or [valid observable input](#observable-inputs) having been converted to an observable, that will supply values to another [observable](#observable), either as the result of an [operator](#operator) or other function that creates one observable as another. This [source](#source), will be the [producer](#producer) for the resulting [observable](#observable) and all of its [subscriptions](#subscriptions). Sources may generally be any type of observable. ### Observable Inputs A "observable input" ([defined as a type here](/api/index/type-alias/ObservableInput)), is any type that can easily converted to an [Observable](#observable). Observable Inputs may sometimes be referred to as "valid observable sources". ### Notifier An [observable](#observable) that is being used to notify another [observable](#observable) that it needs to perform some action. The action should only occur on a [next notification](#next), and never on [error](#error) or [complete](#complete). Generally, notifiers are used with specific operators, such as [`takeUntil`](/api/operators/takeUntil), [`buffer`](/api/operators/buffer), or [`delayWhen`](/api/operators/delayWhen). A notifier may be passed directly, or it may be returned by a callback. ### Inner Source One, of possibly many [sources](#source), which are [subscribed](#subscribe) to automatically within a single [subscription](#subscription) to another observable. Examples of an "inner source" include the [observable inputs](#observable-inputs) returned by the mapping function in a [mergeMap](/api/operators/mergeMap) [operator](#operator). (e.g. `source.pipe(mergeMap(value => createInnerSource(value))))`, were `createInnerSource` returns any valid [observable input](#observable-inputs)). ### Partial Observer An [observer](#observer) that lacks all necessary [notification](#notification) handlers. Generally these are supplied by user-land [consumer](#consumer) code. A "full observer" or "observer" would simply be an observer than had all [notification](#notification) handlers. ## Other Concepts ### Unhandled Errors An "unhandled error" is any [error](#error) that is not handled by a [consumer](#consumer)-provided function, which is generally provided during the [subscribe](#subscribe) action. If no error handler was provided, RxJS will assume the error is "unhandled" and rethrow the error on a new callstack or prevent ["producer interference"](#producer-interface) ### Producer Interference [Producer](#producer) interference happens when an error is allowed to unwind the callstack the RxJS callstack during [notification](#notification). When this happens, the error could break things like for-loops in [upstream](#upstream-and-downstream) [sources](#source) that are [notifying](#notification) [consumers](#consumer) during a [multicast](#multicast). That would cause the other [consumers](#consumer) in that [multicast](#multicast) to suddenly stop receiving values without logical explanation. As of version 6, RxJS goes out of its way to prevent producer interference by ensuring that all unhandled errors are thrown on a separate callstack. ### Upstream And Downstream The order in which [notifications](#notification) are processed by [operations](#operation) in a [stream](#stream) have a directionality to them. "Upstream" refers to an [operation](#operation) that was already processed before the current [operation](#operation), and "downstream" refers to an [operation](#operation) that _will_ be processed _after_ the current [operation](#operation). See also: [Streaming](#stream). rxjs-7.5.7/docs_app/content/guide/higher-order-observables.md000066400000000000000000000037641431412030200242650ustar00rootroot00000000000000# Higher-order Observables Observables most commonly emit ordinary values like strings and numbers, but surprisingly often, it is necessary to handle Observables *of* Observables, so-called higher-order Observables. For example, imagine you have an Observable emitting strings that are the URLs of files you want to fetch. The code might look like this: ```ts const fileObservable = urlObservable.pipe( map(url => http.get(url)), ); ``` `http.get()` returns an Observable for each URL. Now you have an Observable *of* Observables, a higher-order Observable. But how do you work with a higher-order Observable? Typically, by _flattening_: by converting a higher-order Observable into an ordinary Observable. For example: ```ts const fileObservable = urlObservable.pipe( concatMap(url => http.get(url)), ); ``` The Observable returned in the `concatMap` function is usually referred to as a so-called "inner" Observable, while in this context the `urlObservable` is the so-called "outer" Observable. The [`concatMap()`](/api/operators/concatMap) operator subscribes to each "inner" Observable, buffers all further emissions of the "outer" Observable, and copies all the emitted values until the inner Observable completes, and continues processing the values of the "outer Observable". All of the values are in that way concatenated. Other useful flattening operators are * [`mergeMap()`](/api/operators/mergeMap) — subscribes to each inner Observable as it arrives, then emits each value as it arrives * [`switchMap()`](/api/operators/switchMap) — subscribes to the first inner Observable when it arrives, and emits each value as it arrives, but when the next inner Observable arrives, unsubscribes to the previous one, and subscribes to the new one. * [`exhaustMap()`](/api/operators/exhaustMap) — subscribes to the first inner Observable when it arrives, and emits each value as it arrives, discarding all newly arriving inner Observables until that first one completes, then waits for the next inner Observable. rxjs-7.5.7/docs_app/content/guide/importing.md000066400000000000000000000136071431412030200214060ustar00rootroot00000000000000# Importing instructions There are different ways you can {@link guide/installation install} RxJS. Using/importing RxJS depends on the used RxJS version, but also depends on the used installation method. [Pipeable operators](https://v6.rxjs.dev/guide/v6/pipeable-operators) were introduced in RxJS version 5.5. This enabled all operators to be exported from a single place. This new export site was introduced with RxJS version 6 where all pipeable operators could have been imported from `'rxjs/operators'`. For example, `import { map } from 'rxjs/operators'`. ## New in RxJS v7.2.0 **With RxJS v7.2.0, most operators have been moved to `{@link api#index 'rxjs'}` export site. This means that the preferred way to import operators is from `'rxjs'`, while `'rxjs/operators'` export site has been deprecated.** For example, instead of using: ```ts import { map } from 'rxjs/operators'; ``` **the preferred way** is to use: ```ts import { map } from 'rxjs'; ``` Although the old way of importing operators is still active, it will be removed in one of the next major versions. Click {@link #how-to-migrate here to see} how to migrate. ## Export sites RxJS v7 exports 6 different locations out of which you can import what you need. Those are: - `{@link api#index 'rxjs'}` - for example: `import { of } from 'rxjs';` - `{@link api#operators 'rxjs/operators'}` - for example: `import { map } from 'rxjs/operators';` - `{@link api#ajax 'rxjs/ajax'}` - for example: `import { ajax } from 'rxjs/ajax';` - `{@link api#fetch 'rxjs/fetch'}` - for example: `import { fromFetch } from 'rxjs/fetch';` - `{@link api#webSocket 'rxjs/webSocket'}` - for example: `import { webSocket } from 'rxjs/webSocket';` - `{@link api#testing 'rxjs/testing'}` - for example: `import { TestScheduler } from 'rxjs/testing';` ### How to migrate? While nothing has been removed from `'rxjs/operators'`, it is strongly recommended doing the operator imports from `'rxjs'`. Almost all operator function exports have been moved to `'rxjs'`, but only a couple of old and deprecated operators have stayed in the `'rxjs/operators'`. Those operator functions are now mostly deprecated and most of them have their either static operator substitution or are kept as operators, but have a new name so that they are different to their static creation counter-part (usually ending with `With`). Those are: | `'rxjs/operators'` Operator | Replace With Static Creation Operator | Replace With New Operator Name | | ------------------------------------------------------- | ------------------------------------- | ------------------------------ | | [`combineLatest`](/api/operators/combineLatest) | {@link combineLatest} | {@link combineLatestWith} | | [`concat`](/api/operators/concat) | {@link concat} | {@link concatWith} | | [`merge`](/api/operators/merge) | {@link merge} | {@link mergeWith} | | [`onErrorResumeNext`](/api/operators/onErrorResumeNext) | {@link onErrorResumeNext} | - | | [`partition`](/api/operators/partition) | {@link partition} | - | | [`race`](/api/operators/race) | {@link race} | {@link raceWith} | | [`zip`](/api/operators/zip) | {@link zip} | {@link zipWith} | For example, the old and deprecated way of using [`merge`](/api/operators/merge) from `'rxjs/operators'` is: ```ts import { merge } from 'rxjs/operators'; a$.pipe(merge(b$)).subscribe(); ``` But this should be avoided and replaced with one of the next two examples. For example, this could be replaced by using a static creation {@link merge} function: ```ts import { merge } from 'rxjs'; merge(a$, b$).subscribe(); ``` Or it could be written using a pipeable {@link mergeWith} operator: ```ts import { mergeWith } from 'rxjs'; a$.pipe(mergeWith(b$)).subscribe(); ``` Depending on the preferred style, you can choose which one to follow, they are completely equal. Since a new way of importing operators is introduced with RxJS v7.2.0, instructions will be split to prior and after this version. ### ES6 via npm If you've installed RxJS using {@link guide/installation#es6-via-npm ES6 via npm} and installed version is: #### v7.2.0 or later Import only what you need: ```ts import { of, map } from 'rxjs'; of(1, 2, 3).pipe(map((x) => x + '!!!')); // etc ``` To import the entire set of functionality: ```ts import * as rxjs from 'rxjs'; rxjs.of(1, 2, 3).pipe(rxjs.map((x) => x + '!!!')); // etc; ``` To use with a globally imported bundle: ```js const { of, map } = rxjs; of(1, 2, 3).pipe(map((x) => x + '!!!')); // etc ``` If you installed RxJS version: #### v7.1.0 or older Import only what you need: ```ts import { of } from 'rxjs'; import { map } from 'rxjs/operators'; of(1, 2, 3).pipe(map((x) => x + '!!!')); // etc ``` To import the entire set of functionality: ```ts import * as rxjs from 'rxjs'; import * as operators from 'rxjs'; rxjs.of(1, 2, 3).pipe(operators.map((x) => x + '!!!')); // etc; ``` To use with a globally imported bundle: ```js const { of } = rxjs; const { map } = rxjs.operators; of(1, 2, 3).pipe(map((x) => x + '!!!')); // etc ``` ### CDN If you installed a library {@link guide/installation#cdn using CDN}, the global namespace for rxjs is `rxjs`. #### v7.2.0 or later ```js const { range, filter, map } = rxjs; range(1, 200) .pipe( filter((x) => x % 2 === 1), map((x) => x + x) ) .subscribe((x) => console.log(x)); ``` #### v7.1.0 or older ```js const { range } = rxjs; const { filter, map } = rxjs.operators; range(1, 200) .pipe( filter((x) => x % 2 === 1), map((x) => x + x) ) .subscribe((x) => console.log(x)); ``` rxjs-7.5.7/docs_app/content/guide/installation.md000066400000000000000000000047201431412030200220730ustar00rootroot00000000000000# Installation Instructions Here are different ways you can install RxJS: ## ES2015 via npm ```shell npm install rxjs ``` By default, RxJS 7.x will provide different variants of the code based on the consumer: * When RxJS 7.x is used on Node.js regardless of whether it is consumed via `require` or `import`, CommonJS code targeting ES5 will be provided for execution. * When RxJS 7.4+ is used via a bundler targeting a browser (or other non-Node.js platform) ES module code targeting ES5 will be provided by default with the option to use ES2015 code. 7.x versions prior to 7.4.0 will only provide ES5 code. If the target browsers for a project support ES2015+ or the bundle process supports down-leveling to ES5 then the bundler can optionally be configured to allow the ES2015 RxJS code to be used instead. You can enable support for using the ES2015 RxJS code by configuring a bundler to use the `es2015` custom export condition during module resolution. Configuring a bundler to use the `es2015` custom export condition is specific to each bundler. If you are interested in using this option, please consult the documentation of your bundler for additional information. However, some general information can be found here: - https://webpack.js.org/guides/package-exports/#conditions-custom - https://github.com/rollup/plugins/blob/node-resolve-v11.0.0/packages/node-resolve/README.md#exportconditions To import only what you need, please {@link guide/importing#es6-via-npm check out this} guide. ## CommonJS via npm If you receive an error like error TS2304: Cannot find name 'Promise' or error TS2304: Cannot find name 'Iterable' when using RxJS you may need to install a supplemental set of typings. 1. For typings users: ```shell typings install es6-shim --ambient ``` 2. If you're not using typings the interfaces can be copied from /es6-shim/es6-shim.d.ts. 3. Add type definition file included in tsconfig.json or CLI argument. ## All Module Types (CJS/ES6/AMD/TypeScript) via npm To install this library via npm version 3, use the following command: ```shell npm install @reactivex/rxjs ``` If you are using npm version 2, you need to specify the library version explicitly: ```shell npm install @reactivex/rxjs@7.3.0 ``` ## CDN For CDN, you can use [unpkg](https://unpkg.com/): [https://unpkg.com/rxjs@^7/dist/bundles/rxjs.umd.min.js](https://unpkg.com/rxjs@%5E7/dist/bundles/rxjs.umd.min.js) To import what you need, please {@link guide/importing#cdn check out this} guide. rxjs-7.5.7/docs_app/content/guide/observable.md000066400000000000000000000377511431412030200215300ustar00rootroot00000000000000# Observable Observables are lazy Push collections of multiple values. They fill the missing spot in the following table: | | Single | Multiple | | -------- | ----------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | | **Pull** | [`Function`](https://developer.mozilla.org/en-US/docs/Glossary/Function) | [`Iterator`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) | | **Push** | [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) | [`Observable`](/api/index/class/Observable) | **Example.** The following is an Observable that pushes the values `1`, `2`, `3` immediately (synchronously) when subscribed, and the value `4` after one second has passed since the subscribe call, then completes: ```ts import { Observable } from 'rxjs'; const observable = new Observable((subscriber) => { subscriber.next(1); subscriber.next(2); subscriber.next(3); setTimeout(() => { subscriber.next(4); subscriber.complete(); }, 1000); }); ``` To invoke the Observable and see these values, we need to _subscribe_ to it: ```ts import { Observable } from 'rxjs'; const observable = new Observable((subscriber) => { subscriber.next(1); subscriber.next(2); subscriber.next(3); setTimeout(() => { subscriber.next(4); subscriber.complete(); }, 1000); }); console.log('just before subscribe'); observable.subscribe({ next(x) { console.log('got value ' + x); }, error(err) { console.error('something wrong occurred: ' + err); }, complete() { console.log('done'); }, }); console.log('just after subscribe'); ``` Which executes as such on the console: ```none just before subscribe got value 1 got value 2 got value 3 just after subscribe got value 4 done ``` ## Pull versus Push _Pull_ and _Push_ are two different protocols that describe how a data _Producer_ can communicate with a data _Consumer_. **What is Pull?** In Pull systems, the Consumer determines when it receives data from the data Producer. The Producer itself is unaware of when the data will be delivered to the Consumer. Every JavaScript Function is a Pull system. The function is a Producer of data, and the code that calls the function is consuming it by "pulling" out a _single_ return value from its call. ES2015 introduced [generator functions and iterators](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function*) (`function*`), another type of Pull system. Code that calls `iterator.next()` is the Consumer, "pulling" out _multiple_ values from the iterator (the Producer). | | Producer | Consumer | | -------- | ------------------------------------------ | ------------------------------------------- | | **Pull** | **Passive:** produces data when requested. | **Active:** decides when data is requested. | | **Push** | **Active:** produces data at its own pace. | **Passive:** reacts to received data. | **What is Push?** In Push systems, the Producer determines when to send data to the Consumer. The Consumer is unaware of when it will receive that data. Promises are the most common type of Push system in JavaScript today. A Promise (the Producer) delivers a resolved value to registered callbacks (the Consumers), but unlike functions, it is the Promise which is in charge of determining precisely when that value is "pushed" to the callbacks. RxJS introduces Observables, a new Push system for JavaScript. An Observable is a Producer of multiple values, "pushing" them to Observers (Consumers). - A **Function** is a lazily evaluated computation that synchronously returns a single value on invocation. - A **generator** is a lazily evaluated computation that synchronously returns zero to (potentially) infinite values on iteration. - A **Promise** is a computation that may (or may not) eventually return a single value. - An **Observable** is a lazily evaluated computation that can synchronously or asynchronously return zero to (potentially) infinite values from the time it's invoked onwards. For more info about what to use when converting Observables to Promises, please refer to [this guide](/deprecations/to-promise). ## Observables as generalizations of functions Contrary to popular claims, Observables are not like EventEmitters nor are they like Promises for multiple values. Observables _may act_ like EventEmitters in some cases, namely when they are multicasted using RxJS Subjects, but usually they don't act like EventEmitters. Observables are like functions with zero arguments, but generalize those to allow multiple values. Consider the following: ```ts function foo() { console.log('Hello'); return 42; } const x = foo.call(); // same as foo() console.log(x); const y = foo.call(); // same as foo() console.log(y); ``` We expect to see as output: ```none "Hello" 42 "Hello" 42 ``` You can write the same behavior above, but with Observables: ```ts import { Observable } from 'rxjs'; const foo = new Observable((subscriber) => { console.log('Hello'); subscriber.next(42); }); foo.subscribe((x) => { console.log(x); }); foo.subscribe((y) => { console.log(y); }); ``` And the output is the same: ```none "Hello" 42 "Hello" 42 ``` This happens because both functions and Observables are lazy computations. If you don't call the function, the `console.log('Hello')` won't happen. Also with Observables, if you don't "call" it (with `subscribe`), the `console.log('Hello')` won't happen. Plus, "calling" or "subscribing" is an isolated operation: two function calls trigger two separate side effects, and two Observable subscribes trigger two separate side effects. As opposed to EventEmitters which share the side effects and have eager execution regardless of the existence of subscribers, Observables have no shared execution and are lazy. Subscribing to an Observable is analogous to calling a Function. Some people claim that Observables are asynchronous. That is not true. If you surround a function call with logs, like this: ```ts console.log('before'); console.log(foo.call()); console.log('after'); ``` You will see the output: ```none "before" "Hello" 42 "after" ``` And this is the same behavior with Observables: ```ts console.log('before'); foo.subscribe((x) => { console.log(x); }); console.log('after'); ``` And the output is: ```none "before" "Hello" 42 "after" ``` Which proves the subscription of `foo` was entirely synchronous, just like a function. Observables are able to deliver values either synchronously or asynchronously. What is the difference between an Observable and a function? **Observables can "return" multiple values over time**, something which functions cannot. You can't do this: ```ts function foo() { console.log('Hello'); return 42; return 100; // dead code. will never happen } ``` Functions can only return one value. Observables, however, can do this: ```ts import { Observable } from 'rxjs'; const foo = new Observable((subscriber) => { console.log('Hello'); subscriber.next(42); subscriber.next(100); // "return" another value subscriber.next(200); // "return" yet another }); console.log('before'); foo.subscribe((x) => { console.log(x); }); console.log('after'); ``` With synchronous output: ```none "before" "Hello" 42 100 200 "after" ``` But you can also "return" values asynchronously: ```ts import { Observable } from 'rxjs'; const foo = new Observable((subscriber) => { console.log('Hello'); subscriber.next(42); subscriber.next(100); subscriber.next(200); setTimeout(() => { subscriber.next(300); // happens asynchronously }, 1000); }); console.log('before'); foo.subscribe((x) => { console.log(x); }); console.log('after'); ``` With output: ```none "before" "Hello" 42 100 200 "after" 300 ``` Conclusion: - `func.call()` means "_give me one value synchronously_" - `observable.subscribe()` means "_give me any amount of values, either synchronously or asynchronously_" ## Anatomy of an Observable Observables are **created** using `new Observable` or a creation operator, are **subscribed** to with an Observer, **execute** to deliver `next` / `error` / `complete` notifications to the Observer, and their execution may be **disposed**. These four aspects are all encoded in an Observable instance, but some of these aspects are related to other types, like Observer and Subscription. Core Observable concerns: - **Creating** Observables - **Subscribing** to Observables - **Executing** the Observable - **Disposing** Observables ### Creating Observables The `Observable` constructor takes one argument: the `subscribe` function. The following example creates an Observable to emit the string `'hi'` every second to a subscriber. ```ts import { Observable } from 'rxjs'; const observable = new Observable(function subscribe(subscriber) { const id = setInterval(() => { subscriber.next('hi'); }, 1000); }); ``` Observables can be created with `new Observable`. Most commonly, observables are created using creation functions, like `of`, `from`, `interval`, etc. In the example above, the `subscribe` function is the most important piece to describe the Observable. Let's look at what subscribing means. ### Subscribing to Observables The Observable `observable` in the example can be _subscribed_ to, like this: ```ts observable.subscribe((x) => console.log(x)); ``` It is not a coincidence that `observable.subscribe` and `subscribe` in `new Observable(function subscribe(subscriber) {...})` have the same name. In the library, they are different, but for practical purposes you can consider them conceptually equal. This shows how `subscribe` calls are not shared among multiple Observers of the same Observable. When calling `observable.subscribe` with an Observer, the function `subscribe` in `new Observable(function subscribe(subscriber) {...})` is run for that given subscriber. Each call to `observable.subscribe` triggers its own independent setup for that given subscriber. Subscribing to an Observable is like calling a function, providing callbacks where the data will be delivered to. This is drastically different to event handler APIs like `addEventListener` / `removeEventListener`. With `observable.subscribe`, the given Observer is not registered as a listener in the Observable. The Observable does not even maintain a list of attached Observers. A `subscribe` call is simply a way to start an "Observable execution" and deliver values or events to an Observer of that execution. ### Executing Observables The code inside `new Observable(function subscribe(subscriber) {...})` represents an "Observable execution", a lazy computation that only happens for each Observer that subscribes. The execution produces multiple values over time, either synchronously or asynchronously. There are three types of values an Observable Execution can deliver: - "Next" notification: sends a value such as a Number, a String, an Object, etc. - "Error" notification: sends a JavaScript Error or exception. - "Complete" notification: does not send a value. "Next" notifications are the most important and most common type: they represent actual data being delivered to a subscriber. "Error" and "Complete" notifications may happen only once during the Observable Execution, and there can only be either one of them. These constraints are expressed best in the so-called _Observable Grammar_ or _Contract_, written as a regular expression: ```none next*(error|complete)? ``` In an Observable Execution, zero to infinite Next notifications may be delivered. If either an Error or Complete notification is delivered, then nothing else can be delivered afterwards. The following is an example of an Observable execution that delivers three Next notifications, then completes: ```ts import { Observable } from 'rxjs'; const observable = new Observable(function subscribe(subscriber) { subscriber.next(1); subscriber.next(2); subscriber.next(3); subscriber.complete(); }); ``` Observables strictly adhere to the Observable Contract, so the following code would not deliver the Next notification `4`: ```ts import { Observable } from 'rxjs'; const observable = new Observable(function subscribe(subscriber) { subscriber.next(1); subscriber.next(2); subscriber.next(3); subscriber.complete(); subscriber.next(4); // Is not delivered because it would violate the contract }); ``` It is a good idea to wrap any code in `subscribe` with `try`/`catch` block that will deliver an Error notification if it catches an exception: ```ts import { Observable } from 'rxjs'; const observable = new Observable(function subscribe(subscriber) { try { subscriber.next(1); subscriber.next(2); subscriber.next(3); subscriber.complete(); } catch (err) { subscriber.error(err); // delivers an error if it caught one } }); ``` ### Disposing Observable Executions Because Observable Executions may be infinite, and it's common for an Observer to want to abort execution in finite time, we need an API for canceling an execution. Since each execution is exclusive to one Observer only, once the Observer is done receiving values, it has to have a way to stop the execution, in order to avoid wasting computation power or memory resources. When `observable.subscribe` is called, the Observer gets attached to the newly created Observable execution. This call also returns an object, the `Subscription`: ```ts const subscription = observable.subscribe((x) => console.log(x)); ``` The Subscription represents the ongoing execution, and has a minimal API which allows you to cancel that execution. Read more about the [`Subscription` type here](./guide/subscription). With `subscription.unsubscribe()` you can cancel the ongoing execution: ```ts import { from } from 'rxjs'; const observable = from([10, 20, 30]); const subscription = observable.subscribe((x) => console.log(x)); // Later: subscription.unsubscribe(); ``` When you subscribe, you get back a Subscription, which represents the ongoing execution. Just call `unsubscribe()` to cancel the execution. Each Observable must define how to dispose resources of that execution when we create the Observable using `create()`. You can do that by returning a custom `unsubscribe` function from within `function subscribe()`. For instance, this is how we clear an interval execution set with `setInterval`: ```ts import { Observable } from 'rxjs'; const observable = new Observable(function subscribe(subscriber) { // Keep track of the interval resource const intervalId = setInterval(() => { subscriber.next('hi'); }, 1000); // Provide a way of canceling and disposing the interval resource return function unsubscribe() { clearInterval(intervalId); }; }); ``` Just like `observable.subscribe` resembles `new Observable(function subscribe() {...})`, the `unsubscribe` we return from `subscribe` is conceptually equal to `subscription.unsubscribe`. In fact, if we remove the ReactiveX types surrounding these concepts, we're left with rather straightforward JavaScript. ```ts function subscribe(subscriber) { const intervalId = setInterval(() => { subscriber.next('hi'); }, 1000); return function unsubscribe() { clearInterval(intervalId); }; } const unsubscribe = subscribe({ next: (x) => console.log(x) }); // Later: unsubscribe(); // dispose the resources ``` The reason why we use Rx types like Observable, Observer, and Subscription is to get safety (such as the Observable Contract) and composability with Operators. rxjs-7.5.7/docs_app/content/guide/observer.md000066400000000000000000000031701431412030200212170ustar00rootroot00000000000000# Observer **What is an Observer?** An Observer is a consumer of values delivered by an Observable. Observers are simply a set of callbacks, one for each type of notification delivered by the Observable: `next`, `error`, and `complete`. The following is an example of a typical Observer object: ```ts const observer = { next: x => console.log('Observer got a next value: ' + x), error: err => console.error('Observer got an error: ' + err), complete: () => console.log('Observer got a complete notification'), }; ``` To use the Observer, provide it to the `subscribe` of an Observable: ```ts observable.subscribe(observer); ``` Observers are just objects with three callbacks, one for each type of notification that an Observable may deliver. Observers in RxJS may also be *partial*. If you don't provide one of the callbacks, the execution of the Observable will still happen normally, except some types of notifications will be ignored, because they don't have a corresponding callback in the Observer. The example below is an `Observer` without the `complete` callback: ```ts const observer = { next: x => console.log('Observer got a next value: ' + x), error: err => console.error('Observer got an error: ' + err), }; ``` When subscribing to an `Observable`, you may also just provide the next callback as an argument, without being attached to an `Observer` object, for instance like this: ```ts observable.subscribe(x => console.log('Observer got a next value: ' + x)); ``` Internally in `observable.subscribe`, it will create an `Observer` object using the callback argument as the `next` handler. rxjs-7.5.7/docs_app/content/guide/operators.md000066400000000000000000000366511431412030200214200ustar00rootroot00000000000000# RxJS Operators RxJS is mostly useful for its _operators_, even though the Observable is the foundation. Operators are the essential pieces that allow complex asynchronous code to be easily composed in a declarative manner. ## What are operators? Operators are **functions**. There are two kinds of operators: **Pipeable Operators** are the kind that can be piped to Observables using the syntax `observableInstance.pipe(operator())`. These include, [`filter(...)`](/api/operators/filter), and [`mergeMap(...)`](/api/operators/mergeMap). When called, they do not _change_ the existing Observable instance. Instead, they return a _new_ Observable, whose subscription logic is based on the first Observable. A Pipeable Operator is a function that takes an Observable as its input and returns another Observable. It is a pure operation: the previous Observable stays unmodified. A Pipeable Operator is essentially a pure function which takes one Observable as input and generates another Observable as output. Subscribing to the output Observable will also subscribe to the input Observable. **Creation Operators** are the other kind of operator, which can be called as standalone functions to create a new Observable. For example: `of(1, 2, 3)` creates an observable that will emit 1, 2, and 3, one right after another. Creation operators will be discussed in more detail in a later section. For example, the operator called [`map`](/api/operators/map) is analogous to the Array method of the same name. Just as `[1, 2, 3].map(x => x * x)` will yield `[1, 4, 9]`, the Observable created like this: ```ts import { of, map } from 'rxjs'; of(1, 2, 3) .pipe(map((x) => x * x)) .subscribe((v) => console.log(`value: ${v}`)); // Logs: // value: 1 // value: 4 // value: 9 ``` will emit `1`, `4`, `9`. Another useful operator is [`first`](/api/operators/first): ```ts import { of, first } from 'rxjs'; of(1, 2, 3) .pipe(first()) .subscribe((v) => console.log(`value: ${v}`)); // Logs: // value: 1 ``` Note that `map` logically must be constructed on the fly, since it must be given the mapping function to. By contrast, `first` could be a constant, but is nonetheless constructed on the fly. As a general practice, all operators are constructed, whether they need arguments or not. ## Piping Pipeable operators are functions, so they _could_ be used like ordinary functions: `op()(obs)` — but in practice, there tend to be many of them convolved together, and quickly become unreadable: `op4()(op3()(op2()(op1()(obs))))`. For that reason, Observables have a method called `.pipe()` that accomplishes the same thing while being much easier to read: ```ts obs.pipe(op1(), op2(), op3(), op4()); ``` As a stylistic matter, `op()(obs)` is never used, even if there is only one operator; `obs.pipe(op())` is universally preferred. ## Creation Operators **What are creation operators?** Distinct from pipeable operators, creation operators are functions that can be used to create an Observable with some common predefined behavior or by joining other Observables. A typical example of a creation operator would be the `interval` function. It takes a number (not an Observable) as input argument, and produces an Observable as output: ```ts import { interval } from 'rxjs'; const observable = interval(1000 /* number of milliseconds */); ``` See the list of all static creation operators [here](#creation-operators-list). ## Higher-order Observables Observables most commonly emit ordinary values like strings and numbers, but surprisingly often, it is necessary to handle Observables _of_ Observables, so-called higher-order Observables. For example, imagine you had an Observable emitting strings that were the URLs of files you wanted to see. The code might look like this: ```ts const fileObservable = urlObservable.pipe(map((url) => http.get(url))); ``` `http.get()` returns an Observable (of string or string arrays probably) for each individual URL. Now you have an Observable _of_ Observables, a higher-order Observable. But how do you work with a higher-order Observable? Typically, by _flattening_: by (somehow) converting a higher-order Observable into an ordinary Observable. For example: ```ts const fileObservable = urlObservable.pipe( map((url) => http.get(url)), concatAll() ); ``` The [`concatAll()`](/api/operators/concatAll) operator subscribes to each "inner" Observable that comes out of the "outer" Observable, and copies all the emitted values until that Observable completes, and goes on to the next one. All of the values are in that way concatenated. Other useful flattening operators (called [_join operators_](#join-operators)) are - [`mergeAll()`](/api/operators/mergeAll) — subscribes to each inner Observable as it arrives, then emits each value as it arrives - [`switchAll()`](/api/operators/switchAll) — subscribes to the first inner Observable when it arrives, and emits each value as it arrives, but when the next inner Observable arrives, unsubscribes to the previous one, and subscribes to the new one. - [`exhaustAll()`](/api/operators/exhaustAll) — subscribes to the first inner Observable when it arrives, and emits each value as it arrives, discarding all newly arriving inner Observables until that first one completes, then waits for the next inner Observable. Just as many array libraries combine [`map()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) and [`flat()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat) (or `flatten()`) into a single [`flatMap()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flatMap), there are mapping equivalents of all the RxJS flattening operators [`concatMap()`](/api/operators/concatMap), [`mergeMap()`](/api/operators/mergeMap), [`switchMap()`](/api/operators/switchMap), and [`exhaustMap()`](/api/operators/exhaustMap). ## Marble diagrams To explain how operators work, textual descriptions are often not enough. Many operators are related to time, they may for instance delay, sample, throttle, or debounce value emissions in different ways. Diagrams are often a better tool for that. _Marble Diagrams_ are visual representations of how operators work, and include the input Observable(s), the operator and its parameters, and the output Observable. In a marble diagram, time flows to the right, and the diagram describes how values ("marbles") are emitted on the Observable execution. Below you can see the anatomy of a marble diagram. Throughout this documentation site, we extensively use marble diagrams to explain how operators work. They may be really useful in other contexts too, like on a whiteboard or even in our unit tests (as ASCII diagrams). ## Categories of operators There are operators for different purposes, and they may be categorized as: creation, transformation, filtering, joining, multicasting, error handling, utility, etc. In the following list you will find all the operators organized in categories. For a complete overview, see the [references page](/api). ### Creation Operators - [`ajax`](/api/ajax/ajax) - [`bindCallback`](/api/index/function/bindCallback) - [`bindNodeCallback`](/api/index/function/bindNodeCallback) - [`defer`](/api/index/function/defer) - [`empty`](/api/index/function/empty) - [`from`](/api/index/function/from) - [`fromEvent`](/api/index/function/fromEvent) - [`fromEventPattern`](/api/index/function/fromEventPattern) - [`generate`](/api/index/function/generate) - [`interval`](/api/index/function/interval) - [`of`](/api/index/function/of) - [`range`](/api/index/function/range) - [`throwError`](/api/index/function/throwError) - [`timer`](/api/index/function/timer) - [`iif`](/api/index/function/iif) ### Join Creation Operators These are Observable creation operators that also have join functionality -- emitting values of multiple source Observables. - [`combineLatest`](/api/index/function/combineLatest) - [`concat`](/api/index/function/concat) - [`forkJoin`](/api/index/function/forkJoin) - [`merge`](/api/index/function/merge) - [`partition`](/api/index/function/partition) - [`race`](/api/index/function/race) - [`zip`](/api/index/function/zip) ### Transformation Operators - [`buffer`](/api/operators/buffer) - [`bufferCount`](/api/operators/bufferCount) - [`bufferTime`](/api/operators/bufferTime) - [`bufferToggle`](/api/operators/bufferToggle) - [`bufferWhen`](/api/operators/bufferWhen) - [`concatMap`](/api/operators/concatMap) - [`concatMapTo`](/api/operators/concatMapTo) - [`exhaust`](/api/operators/exhaust) - [`exhaustMap`](/api/operators/exhaustMap) - [`expand`](/api/operators/expand) - [`groupBy`](/api/operators/groupBy) - [`map`](/api/operators/map) - [`mapTo`](/api/operators/mapTo) - [`mergeMap`](/api/operators/mergeMap) - [`mergeMapTo`](/api/operators/mergeMapTo) - [`mergeScan`](/api/operators/mergeScan) - [`pairwise`](/api/operators/pairwise) - [`partition`](/api/operators/partition) - [`pluck`](/api/operators/pluck) - [`scan`](/api/operators/scan) - [`switchScan`](/api/operators/switchScan) - [`switchMap`](/api/operators/switchMap) - [`switchMapTo`](/api/operators/switchMapTo) - [`window`](/api/operators/window) - [`windowCount`](/api/operators/windowCount) - [`windowTime`](/api/operators/windowTime) - [`windowToggle`](/api/operators/windowToggle) - [`windowWhen`](/api/operators/windowWhen) ### Filtering Operators - [`audit`](/api/operators/audit) - [`auditTime`](/api/operators/auditTime) - [`debounce`](/api/operators/debounce) - [`debounceTime`](/api/operators/debounceTime) - [`distinct`](/api/operators/distinct) - [`distinctUntilChanged`](/api/operators/distinctUntilChanged) - [`distinctUntilKeyChanged`](/api/operators/distinctUntilKeyChanged) - [`elementAt`](/api/operators/elementAt) - [`filter`](/api/operators/filter) - [`first`](/api/operators/first) - [`ignoreElements`](/api/operators/ignoreElements) - [`last`](/api/operators/last) - [`sample`](/api/operators/sample) - [`sampleTime`](/api/operators/sampleTime) - [`single`](/api/operators/single) - [`skip`](/api/operators/skip) - [`skipLast`](/api/operators/skipLast) - [`skipUntil`](/api/operators/skipUntil) - [`skipWhile`](/api/operators/skipWhile) - [`take`](/api/operators/take) - [`takeLast`](/api/operators/takeLast) - [`takeUntil`](/api/operators/takeUntil) - [`takeWhile`](/api/operators/takeWhile) - [`throttle`](/api/operators/throttle) - [`throttleTime`](/api/operators/throttleTime) ### Join Operators Also see the [Join Creation Operators](#join-creation-operators) section above. - [`combineLatestAll`](/api/operators/combineLatestAll) - [`concatAll`](/api/operators/concatAll) - [`exhaustAll`](/api/operators/exhaustAll) - [`mergeAll`](/api/operators/mergeAll) - [`switchAll`](/api/operators/switchAll) - [`startWith`](/api/operators/startWith) - [`withLatestFrom`](/api/operators/withLatestFrom) ### Multicasting Operators - [`multicast`](/api/operators/multicast) - [`publish`](/api/operators/publish) - [`publishBehavior`](/api/operators/publishBehavior) - [`publishLast`](/api/operators/publishLast) - [`publishReplay`](/api/operators/publishReplay) - [`share`](/api/operators/share) ### Error Handling Operators - [`catchError`](/api/operators/catchError) - [`retry`](/api/operators/retry) - [`retryWhen`](/api/operators/retryWhen) ### Utility Operators - [`tap`](/api/operators/tap) - [`delay`](/api/operators/delay) - [`delayWhen`](/api/operators/delayWhen) - [`dematerialize`](/api/operators/dematerialize) - [`materialize`](/api/operators/materialize) - [`observeOn`](/api/operators/observeOn) - [`subscribeOn`](/api/operators/subscribeOn) - [`timeInterval`](/api/operators/timeInterval) - [`timestamp`](/api/operators/timestamp) - [`timeout`](/api/operators/timeout) - [`timeoutWith`](/api/operators/timeoutWith) - [`toArray`](/api/operators/toArray) ### Conditional and Boolean Operators - [`defaultIfEmpty`](/api/operators/defaultIfEmpty) - [`every`](/api/operators/every) - [`find`](/api/operators/find) - [`findIndex`](/api/operators/findIndex) - [`isEmpty`](/api/operators/isEmpty) ### Mathematical and Aggregate Operators - [`count`](/api/operators/count) - [`max`](/api/operators/max) - [`min`](/api/operators/min) - [`reduce`](/api/operators/reduce) ## Creating custom operators ### Use the `pipe()` function to make new operators If there is a commonly used sequence of operators in your code, use the `pipe()` function to extract the sequence into a new operator. Even if a sequence is not that common, breaking it out into a single operator can improve readability. For example, you could make a function that discarded odd values and doubled even values like this: ```ts import { pipe, filter, map } from 'rxjs'; function discardOddDoubleEven() { return pipe( filter((v) => !(v % 2)), map((v) => v + v) ); } ``` (The `pipe()` function is analogous to, but not the same thing as, the `.pipe()` method on an Observable.) ### Creating new operators from scratch It is more complicated, but if you have to write an operator that cannot be made from a combination of existing operators (a rare occurrence), you can write an operator from scratch using the Observable constructor, like this: ```ts import { Observable, of } from 'rxjs'; function delay(delayInMillis: number) { return (observable: Observable) => new Observable((subscriber) => { // this function will be called each time this // Observable is subscribed to. const allTimerIDs = new Set(); let hasCompleted = false; const subscription = observable.subscribe({ next(value) { // Start a timer to delay the next value // from being pushed. const timerID = setTimeout(() => { subscriber.next(value); // after we push the value, we need to clean up the timer timerID allTimerIDs.delete(timerID); // If the source has completed, and there are no more timers running, // we can complete the resulting observable. if (hasCompleted && allTimerIDs.size === 0) { subscriber.complete(); } }, delayInMillis); allTimerIDs.add(timerID); }, error(err) { // We need to make sure we're propagating our errors through. subscriber.error(err); }, complete() { hasCompleted = true; // If we still have timers running, we don't want to complete yet. if (allTimerIDs.size === 0) { subscriber.complete(); } }, }); // Return the finalization logic. This will be invoked when // the result errors, completes, or is unsubscribed. return () => { subscription.unsubscribe(); // Clean up our timers. for (const timerID of allTimerIDs) { clearTimeout(timerID); } }; }); } // Try it out! of(1, 2, 3).pipe(delay(1000)).subscribe(console.log); ``` Note that you must 1. implement all three Observer functions, `next()`, `error()`, and `complete()` when subscribing to the input Observable. 2. implement a "finalization" function that cleans up when the Observable completes (in this case by unsubscribing and clearing any pending timeouts). 3. return that finalization function from the function passed to the Observable constructor. Of course, this is only an example; the [`delay()`](/api/operators/delay) operator already exists. rxjs-7.5.7/docs_app/content/guide/overview.md000066400000000000000000000110431431412030200212340ustar00rootroot00000000000000# Introduction RxJS is a library for composing asynchronous and event-based programs by using observable sequences. It provides one core type, the [Observable](./guide/observable), satellite types (Observer, Schedulers, Subjects) and operators inspired by `Array` methods (`map`, `filter`, `reduce`, `every`, etc) to allow handling asynchronous events as collections. Think of RxJS as Lodash for events. ReactiveX combines the [Observer pattern](https://en.wikipedia.org/wiki/Observer_pattern) with the [Iterator pattern](https://en.wikipedia.org/wiki/Iterator_pattern) and [functional programming with collections](http://martinfowler.com/articles/collection-pipeline/#NestedOperatorExpressions) to fill the need for an ideal way of managing sequences of events. The essential concepts in RxJS which solve async event management are: - **Observable:** represents the idea of an invokable collection of future values or events. - **Observer:** is a collection of callbacks that knows how to listen to values delivered by the Observable. - **Subscription:** represents the execution of an Observable, is primarily useful for cancelling the execution. - **Operators:** are pure functions that enable a functional programming style of dealing with collections with operations like `map`, `filter`, `concat`, `reduce`, etc. - **Subject:** is equivalent to an EventEmitter, and the only way of multicasting a value or event to multiple Observers. - **Schedulers:** are centralized dispatchers to control concurrency, allowing us to coordinate when computation happens on e.g. `setTimeout` or `requestAnimationFrame` or others. ## First examples Normally you register event listeners. ```ts document.addEventListener('click', () => console.log('Clicked!')); ``` Using RxJS you create an observable instead. ```ts import { fromEvent } from 'rxjs'; fromEvent(document, 'click').subscribe(() => console.log('Clicked!')); ``` ### Purity What makes RxJS powerful is its ability to produce values using pure functions. That means your code is less prone to errors. Normally you would create an impure function, where other pieces of your code can mess up your state. ```ts let count = 0; document.addEventListener('click', () => console.log(`Clicked ${++count} times`)); ``` Using RxJS you isolate the state. ```ts import { fromEvent, scan } from 'rxjs'; fromEvent(document, 'click') .pipe(scan((count) => count + 1, 0)) .subscribe((count) => console.log(`Clicked ${count} times`)); ``` The **scan** operator works just like **reduce** for arrays. It takes a value which is exposed to a callback. The returned value of the callback will then become the next value exposed the next time the callback runs. ### Flow RxJS has a whole range of operators that helps you control how the events flow through your observables. This is how you would allow at most one click per second, with plain JavaScript: ```ts let count = 0; let rate = 1000; let lastClick = Date.now() - rate; document.addEventListener('click', () => { if (Date.now() - lastClick >= rate) { console.log(`Clicked ${++count} times`); lastClick = Date.now(); } }); ``` With RxJS: ```ts import { fromEvent, throttleTime, scan } from 'rxjs'; fromEvent(document, 'click') .pipe( throttleTime(1000), scan((count) => count + 1, 0) ) .subscribe((count) => console.log(`Clicked ${count} times`)); ``` Other flow control operators are [**filter**](../api/operators/filter), [**delay**](../api/operators/delay), [**debounceTime**](../api/operators/debounceTime), [**take**](../api/operators/take), [**takeUntil**](../api/operators/takeUntil), [**distinct**](../api/operators/distinct), [**distinctUntilChanged**](../api/operators/distinctUntilChanged) etc. ### Values You can transform the values passed through your observables. Here's how you can add the current mouse x position for every click, in plain JavaScript: ```ts let count = 0; const rate = 1000; let lastClick = Date.now() - rate; document.addEventListener('click', (event) => { if (Date.now() - lastClick >= rate) { count += event.clientX; console.log(count); lastClick = Date.now(); } }); ``` With RxJS: ```ts import { fromEvent, throttleTime, map, scan } from 'rxjs'; fromEvent(document, 'click') .pipe( throttleTime(1000), map((event) => event.clientX), scan((count, clientX) => count + clientX, 0) ) .subscribe((count) => console.log(count)); ``` Other value producing operators are [**pluck**](../api/operators/pluck), [**pairwise**](../api/operators/pairwise), [**sample**](../api/operators/sample) etc. rxjs-7.5.7/docs_app/content/guide/scheduler.md000066400000000000000000000206741431412030200213560ustar00rootroot00000000000000# Scheduler **What is a Scheduler?** A scheduler controls when a subscription starts and when notifications are delivered. It consists of three components. - **A Scheduler is a data structure.** It knows how to store and queue tasks based on priority or other criteria. - **A Scheduler is an execution context.** It denotes where and when the task is executed (e.g. immediately, or in another callback mechanism such as setTimeout or process.nextTick, or the animation frame). - **A Scheduler has a (virtual) clock.** It provides a notion of "time" by a getter method `now()` on the scheduler. Tasks being scheduled on a particular scheduler will adhere only to the time denoted by that clock. A Scheduler lets you define in what execution context will an Observable deliver notifications to its Observer. In the example below, we take the usual simple Observable that emits values `1`, `2`, `3` synchronously, and use the operator `observeOn` to specify the `async` scheduler to use for delivering those values. ```ts import { Observable, observeOn, asyncScheduler } from 'rxjs'; const observable = new Observable((observer) => { observer.next(1); observer.next(2); observer.next(3); observer.complete(); }).pipe( observeOn(asyncScheduler) ); console.log('just before subscribe'); observable.subscribe({ next(x) { console.log('got value ' + x); }, error(err) { console.error('something wrong occurred: ' + err); }, complete() { console.log('done'); }, }); console.log('just after subscribe'); ``` Which executes with the output: ```none just before subscribe just after subscribe got value 1 got value 2 got value 3 done ``` Notice how the notifications `got value...` were delivered after `just after subscribe`, which is different to the default behavior we have seen so far. This is because `observeOn(asyncScheduler)` introduces a proxy Observer between `new Observable` and the final Observer. Let's rename some identifiers to make that distinction obvious in the example code: ```ts import { Observable, observeOn, asyncScheduler } from 'rxjs'; const observable = new Observable((proxyObserver) => { proxyObserver.next(1); proxyObserver.next(2); proxyObserver.next(3); proxyObserver.complete(); }).pipe( observeOn(asyncScheduler) ); const finalObserver = { next(x) { console.log('got value ' + x); }, error(err) { console.error('something wrong occurred: ' + err); }, complete() { console.log('done'); }, }; console.log('just before subscribe'); observable.subscribe(finalObserver); console.log('just after subscribe'); ``` The `proxyObserver` is created in `observeOn(asyncScheduler)`, and its `next(val)` function is approximately the following: ```ts const proxyObserver = { next(val) { asyncScheduler.schedule( (x) => finalObserver.next(x), 0 /* delay */, val /* will be the x for the function above */ ); }, // ... }; ``` The `async` Scheduler operates with a `setTimeout` or `setInterval`, even if the given `delay` was zero. As usual, in JavaScript, `setTimeout(fn, 0)` is known to run the function `fn` earliest on the next event loop iteration. This explains why `got value 1` is delivered to the `finalObserver` after `just after subscribe` happened. The `schedule()` method of a Scheduler takes a `delay` argument, which refers to a quantity of time relative to the Scheduler's own internal clock. A Scheduler's clock need not have any relation to the actual wall-clock time. This is how temporal operators like `delay` operate not on actual time, but on time dictated by the Scheduler's clock. This is specially useful in testing, where a _virtual time Scheduler_ may be used to fake wall-clock time while in reality executing scheduled tasks synchronously. ## Scheduler Types The `async` Scheduler is one of the built-in schedulers provided by RxJS. Each of these can be created and returned by using static properties of the `Scheduler` object. | Scheduler | Purpose | | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `null` | By not passing any scheduler, notifications are delivered synchronously and recursively. Use this for constant-time operations or tail recursive operations. | | `queueScheduler` | Schedules on a queue in the current event frame (trampoline scheduler). Use this for iteration operations. | | `asapScheduler` | Schedules on the micro task queue, which is the same queue used for promises. Basically after the current job, but before the next job. Use this for asynchronous conversions. | | `asyncScheduler` | Schedules work with `setInterval`. Use this for time-based operations. | | `animationFrameScheduler` | Schedules task that will happen just before next browser content repaint. Can be used to create smooth browser animations. | ## Using Schedulers You may have already used schedulers in your RxJS code without explicitly stating the type of schedulers to be used. This is because all Observable operators that deal with concurrency have optional schedulers. If you do not provide the scheduler, RxJS will pick a default scheduler by using the principle of least concurrency. This means that the scheduler which introduces the least amount of concurrency that satisfies the needs of the operator is chosen. For example, for operators returning an observable with a finite and small number of messages, RxJS uses no Scheduler, i.e. `null` or `undefined`. For operators returning a potentially large or infinite number of messages, `queue` Scheduler is used. For operators which use timers, `async` is used. Because RxJS uses the least concurrency scheduler, you can pick a different scheduler if you want to introduce concurrency for performance purpose. To specify a particular scheduler, you can use those operator methods that take a scheduler, e.g., `from([10, 20, 30], asyncScheduler)`. **Static creation operators usually take a Scheduler as argument.** For instance, `from(array, scheduler)` lets you specify the Scheduler to use when delivering each notification converted from the `array`. It is usually the last argument to the operator. The following static creation operators take a Scheduler argument: - `bindCallback` - `bindNodeCallback` - `combineLatest` - `concat` - `empty` - `from` - `fromPromise` - `interval` - `merge` - `of` - `range` - `throw` - `timer` **Use `subscribeOn` to schedule in what context will the `subscribe()` call happen.** By default, a `subscribe()` call on an Observable will happen synchronously and immediately. However, you may delay or schedule the actual subscription to happen on a given Scheduler, using the instance operator `subscribeOn(scheduler)`, where `scheduler` is an argument you provide. **Use `observeOn` to schedule in what context will notifications be delivered.** As we saw in the examples above, instance operator `observeOn(scheduler)` introduces a mediator Observer between the source Observable and the destination Observer, where the mediator schedules calls to the destination Observer using your given `scheduler`. **Instance operators may take a Scheduler as argument.** Time-related operators like `bufferTime`, `debounceTime`, `delay`, `auditTime`, `sampleTime`, `throttleTime`, `timeInterval`, `timeout`, `timeoutWith`, `windowTime` all take a Scheduler as the last argument, and otherwise operate by default on the `asyncScheduler`. Other instance operators that take a Scheduler as argument: `cache`, `combineLatest`, `concat`, `expand`, `merge`, `publishReplay`, `startWith`. Notice that both `cache` and `publishReplay` accept a Scheduler because they utilize a ReplaySubject. The constructor of a ReplaySubjects takes an optional Scheduler as the last argument because ReplaySubject may deal with time, which only makes sense in the context of a Scheduler. By default, a ReplaySubject uses the `queue` Scheduler to provide a clock. rxjs-7.5.7/docs_app/content/guide/subject.md000066400000000000000000000310101431412030200210210ustar00rootroot00000000000000# Subject **What is a Subject?** An RxJS Subject is a special type of Observable that allows values to be multicasted to many Observers. While plain Observables are unicast (each subscribed Observer owns an independent execution of the Observable), Subjects are multicast. A Subject is like an Observable, but can multicast to many Observers. Subjects are like EventEmitters: they maintain a registry of many listeners. **Every Subject is an Observable.** Given a Subject, you can `subscribe` to it, providing an Observer, which will start receiving values normally. From the perspective of the Observer, it cannot tell whether the Observable execution is coming from a plain unicast Observable or a Subject. Internally to the Subject, `subscribe` does not invoke a new execution that delivers values. It simply registers the given Observer in a list of Observers, similarly to how `addListener` usually works in other libraries and languages. **Every Subject is an Observer.** It is an object with the methods `next(v)`, `error(e)`, and `complete()`. To feed a new value to the Subject, just call `next(theValue)`, and it will be multicasted to the Observers registered to listen to the Subject. In the example below, we have two Observers attached to a Subject, and we feed some values to the Subject: ```ts import { Subject } from 'rxjs'; const subject = new Subject(); subject.subscribe({ next: (v) => console.log(`observerA: ${v}`), }); subject.subscribe({ next: (v) => console.log(`observerB: ${v}`), }); subject.next(1); subject.next(2); // Logs: // observerA: 1 // observerB: 1 // observerA: 2 // observerB: 2 ``` Since a Subject is an Observer, this also means you may provide a Subject as the argument to the `subscribe` of any Observable, like the example below shows: ```ts import { Subject, from } from 'rxjs'; const subject = new Subject(); subject.subscribe({ next: (v) => console.log(`observerA: ${v}`), }); subject.subscribe({ next: (v) => console.log(`observerB: ${v}`), }); const observable = from([1, 2, 3]); observable.subscribe(subject); // You can subscribe providing a Subject // Logs: // observerA: 1 // observerB: 1 // observerA: 2 // observerB: 2 // observerA: 3 // observerB: 3 ``` With the approach above, we essentially just converted a unicast Observable execution to multicast, through the Subject. This demonstrates how Subjects are the only way of making any Observable execution be shared to multiple Observers. There are also a few specializations of the `Subject` type: `BehaviorSubject`, `ReplaySubject`, and `AsyncSubject`. ## Multicasted Observables A "multicasted Observable" passes notifications through a Subject which may have many subscribers, whereas a plain "unicast Observable" only sends notifications to a single Observer. A multicasted Observable uses a Subject under the hood to make multiple Observers see the same Observable execution. Under the hood, this is how the `multicast` operator works: Observers subscribe to an underlying Subject, and the Subject subscribes to the source Observable. The following example is similar to the previous example which used `observable.subscribe(subject)`: ```ts import { from, Subject, multicast } from 'rxjs'; const source = from([1, 2, 3]); const subject = new Subject(); const multicasted = source.pipe(multicast(subject)); // These are, under the hood, `subject.subscribe({...})`: multicasted.subscribe({ next: (v) => console.log(`observerA: ${v}`), }); multicasted.subscribe({ next: (v) => console.log(`observerB: ${v}`), }); // This is, under the hood, `source.subscribe(subject)`: multicasted.connect(); ``` `multicast` returns an Observable that looks like a normal Observable, but works like a Subject when it comes to subscribing. `multicast` returns a `ConnectableObservable`, which is simply an Observable with the `connect()` method. The `connect()` method is important to determine exactly when the shared Observable execution will start. Because `connect()` does `source.subscribe(subject)` under the hood, `connect()` returns a Subscription, which you can unsubscribe from in order to cancel the shared Observable execution. ### Reference counting Calling `connect()` manually and handling the Subscription is often cumbersome. Usually, we want to _automatically_ connect when the first Observer arrives, and automatically cancel the shared execution when the last Observer unsubscribes. Consider the following example where subscriptions occur as outlined by this list: 1. First Observer subscribes to the multicasted Observable 2. **The multicasted Observable is connected** 3. The `next` value `0` is delivered to the first Observer 4. Second Observer subscribes to the multicasted Observable 5. The `next` value `1` is delivered to the first Observer 6. The `next` value `1` is delivered to the second Observer 7. First Observer unsubscribes from the multicasted Observable 8. The `next` value `2` is delivered to the second Observer 9. Second Observer unsubscribes from the multicasted Observable 10. **The connection to the multicasted Observable is unsubscribed** To achieve that with explicit calls to `connect()`, we write the following code: ```ts import { interval, Subject, multicast } from 'rxjs'; const source = interval(500); const subject = new Subject(); const multicasted = source.pipe(multicast(subject)); let subscription1, subscription2, subscriptionConnect; subscription1 = multicasted.subscribe({ next: (v) => console.log(`observerA: ${v}`), }); // We should call `connect()` here, because the first // subscriber to `multicasted` is interested in consuming values subscriptionConnect = multicasted.connect(); setTimeout(() => { subscription2 = multicasted.subscribe({ next: (v) => console.log(`observerB: ${v}`), }); }, 600); setTimeout(() => { subscription1.unsubscribe(); }, 1200); // We should unsubscribe the shared Observable execution here, // because `multicasted` would have no more subscribers after this setTimeout(() => { subscription2.unsubscribe(); subscriptionConnect.unsubscribe(); // for the shared Observable execution }, 2000); ``` If we wish to avoid explicit calls to `connect()`, we can use ConnectableObservable's `refCount()` method (reference counting), which returns an Observable that keeps track of how many subscribers it has. When the number of subscribers increases from `0` to `1`, it will call `connect()` for us, which starts the shared execution. Only when the number of subscribers decreases from `1` to `0` will it be fully unsubscribed, stopping further execution. `refCount` makes the multicasted Observable automatically start executing when the first subscriber arrives, and stop executing when the last subscriber leaves. Below is an example: ```ts import { interval, Subject, multicast, refCount } from 'rxjs'; const source = interval(500); const subject = new Subject(); const refCounted = source.pipe(multicast(subject), refCount()); let subscription1, subscription2; // This calls `connect()`, because // it is the first subscriber to `refCounted` console.log('observerA subscribed'); subscription1 = refCounted.subscribe({ next: (v) => console.log(`observerA: ${v}`), }); setTimeout(() => { console.log('observerB subscribed'); subscription2 = refCounted.subscribe({ next: (v) => console.log(`observerB: ${v}`), }); }, 600); setTimeout(() => { console.log('observerA unsubscribed'); subscription1.unsubscribe(); }, 1200); // This is when the shared Observable execution will stop, because // `refCounted` would have no more subscribers after this setTimeout(() => { console.log('observerB unsubscribed'); subscription2.unsubscribe(); }, 2000); // Logs // observerA subscribed // observerA: 0 // observerB subscribed // observerA: 1 // observerB: 1 // observerA unsubscribed // observerB: 2 // observerB unsubscribed ``` The `refCount()` method only exists on ConnectableObservable, and it returns an `Observable`, not another ConnectableObservable. ## BehaviorSubject One of the variants of Subjects is the `BehaviorSubject`, which has a notion of "the current value". It stores the latest value emitted to its consumers, and whenever a new Observer subscribes, it will immediately receive the "current value" from the `BehaviorSubject`. BehaviorSubjects are useful for representing "values over time". For instance, an event stream of birthdays is a Subject, but the stream of a person's age would be a BehaviorSubject. In the following example, the BehaviorSubject is initialized with the value `0` which the first Observer receives when it subscribes. The second Observer receives the value `2` even though it subscribed after the value `2` was sent. ```ts import { BehaviorSubject } from 'rxjs'; const subject = new BehaviorSubject(0); // 0 is the initial value subject.subscribe({ next: (v) => console.log(`observerA: ${v}`), }); subject.next(1); subject.next(2); subject.subscribe({ next: (v) => console.log(`observerB: ${v}`), }); subject.next(3); // Logs // observerA: 0 // observerA: 1 // observerA: 2 // observerB: 2 // observerA: 3 // observerB: 3 ``` ## ReplaySubject A `ReplaySubject` is similar to a `BehaviorSubject` in that it can send old values to new subscribers, but it can also _record_ a part of the Observable execution. A `ReplaySubject` records multiple values from the Observable execution and replays them to new subscribers. When creating a `ReplaySubject`, you can specify how many values to replay: ```ts import { ReplaySubject } from 'rxjs'; const subject = new ReplaySubject(3); // buffer 3 values for new subscribers subject.subscribe({ next: (v) => console.log(`observerA: ${v}`), }); subject.next(1); subject.next(2); subject.next(3); subject.next(4); subject.subscribe({ next: (v) => console.log(`observerB: ${v}`), }); subject.next(5); // Logs: // observerA: 1 // observerA: 2 // observerA: 3 // observerA: 4 // observerB: 2 // observerB: 3 // observerB: 4 // observerA: 5 // observerB: 5 ``` You can also specify a _window time_ in milliseconds, besides of the buffer size, to determine how old the recorded values can be. In the following example we use a large buffer size of `100`, but a window time parameter of just `500` milliseconds. ```ts import { ReplaySubject } from 'rxjs'; const subject = new ReplaySubject(100, 500 /* windowTime */); subject.subscribe({ next: (v) => console.log(`observerA: ${v}`), }); let i = 1; setInterval(() => subject.next(i++), 200); setTimeout(() => { subject.subscribe({ next: (v) => console.log(`observerB: ${v}`), }); }, 1000); // Logs // observerA: 1 // observerA: 2 // observerA: 3 // observerA: 4 // observerA: 5 // observerB: 3 // observerB: 4 // observerB: 5 // observerA: 6 // observerB: 6 // ... ``` ## AsyncSubject The AsyncSubject is a variant where only the last value of the Observable execution is sent to its observers, and only when the execution completes. ```js import { AsyncSubject } from 'rxjs'; const subject = new AsyncSubject(); subject.subscribe({ next: (v) => console.log(`observerA: ${v}`), }); subject.next(1); subject.next(2); subject.next(3); subject.next(4); subject.subscribe({ next: (v) => console.log(`observerB: ${v}`), }); subject.next(5); subject.complete(); // Logs: // observerA: 5 // observerB: 5 ``` The AsyncSubject is similar to the [`last()`](/api/operators/last) operator, in that it waits for the `complete` notification in order to deliver a single value. ## Void subject Sometimes the emitted value doesn't matter as much as the fact that a value was emitted. For instance, the code below signals that one second has passed. ```ts const subject = new Subject(); setTimeout(() => subject.next('dummy'), 1000); ``` Passing a dummy value this way is clumsy and can confuse users. By declaring a _void subject_, you signal that the value is irrelevant. Only the event itself matters. ```ts const subject = new Subject(); setTimeout(() => subject.next(), 1000); ``` A complete example with context is shown below: ```ts import { Subject } from 'rxjs'; const subject = new Subject(); // Shorthand for Subject subject.subscribe({ next: () => console.log('One second has passed'), }); setTimeout(() => subject.next(), 1000); ``` Before version 7, the default type of Subject values was `any`. `Subject` disables type checking of the emitted values, whereas `Subject` prevents accidental access to the emitted value. If you want the old behavior, then replace `Subject` with `Subject`. rxjs-7.5.7/docs_app/content/guide/subscription.md000066400000000000000000000031521431412030200221140ustar00rootroot00000000000000# Subscription **What is a Subscription?** A Subscription is an object that represents a disposable resource, usually the execution of an Observable. A Subscription has one important method, `unsubscribe`, that takes no argument and just disposes the resource held by the subscription. In previous versions of RxJS, Subscription was called "Disposable". ```ts import { interval } from 'rxjs'; const observable = interval(1000); const subscription = observable.subscribe(x => console.log(x)); // Later: // This cancels the ongoing Observable execution which // was started by calling subscribe with an Observer. subscription.unsubscribe(); ``` A Subscription essentially just has an `unsubscribe()` function to release resources or cancel Observable executions. Subscriptions can also be put together, so that a call to an `unsubscribe()` of one Subscription may unsubscribe multiple Subscriptions. You can do this by "adding" one subscription into another: ```ts import { interval } from 'rxjs'; const observable1 = interval(400); const observable2 = interval(300); const subscription = observable1.subscribe(x => console.log('first: ' + x)); const childSubscription = observable2.subscribe(x => console.log('second: ' + x)); subscription.add(childSubscription); setTimeout(() => { // Unsubscribes BOTH subscription and childSubscription subscription.unsubscribe(); }, 1000); ``` When executed, we see in the console: ```none second: 0 first: 0 second: 1 first: 1 second: 2 ``` Subscriptions also have a `remove(otherSubscription)` method, in order to undo the addition of a child Subscription. rxjs-7.5.7/docs_app/content/guide/testing/000077500000000000000000000000001431412030200205225ustar00rootroot00000000000000rxjs-7.5.7/docs_app/content/guide/testing/marble-testing.md000066400000000000000000000437301431412030200237700ustar00rootroot00000000000000# Testing RxJS Code with Marble Diagrams
This guide refers to usage of marble diagrams when using the new testScheduler.run(callback). Some details here do not apply to using the TestScheduler manually, without using the run() helper.
We can test our _asynchronous_ RxJS code _synchronously_ and deterministically by virtualizing time using the TestScheduler. **Marble diagrams** provide a visual way for us to represent the behavior of an Observable. We can use them to assert that a particular Observable behaves as expected, as well as to create [hot and cold Observables](https://medium.com/@benlesh/hot-vs-cold-observables-f8094ed53339) we can use as mocks. > At this time, the TestScheduler can only be used to test code that uses RxJS schedulers - `AsyncScheduler`, etc. If the code consumes a Promise, for example, it cannot be reliably tested with `TestScheduler`, but instead should be tested more traditionally. See the [Known Issues](#known-issues) section for more details. ```ts import { TestScheduler } from 'rxjs/testing'; import { throttleTime } from 'rxjs'; const testScheduler = new TestScheduler((actual, expected) => { // asserting the two objects are equal - required // for TestScheduler assertions to work via your test framework // e.g. using chai. expect(actual).deep.equal(expected); }); // This test runs synchronously. it('generates the stream correctly', () => { testScheduler.run((helpers) => { const { cold, time, expectObservable, expectSubscriptions } = helpers; const e1 = cold(' -a--b--c---|'); const e1subs = ' ^----------!'; const t = time(' ---| '); // t = 3 const expected = '-a-----c---|'; expectObservable(e1.pipe(throttleTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); ``` ## API The callback function you provide to `testScheduler.run(callback)` is called with `helpers` object that contains functions you'll use to write your tests.
When the code inside this callback is being executed, any operator that uses timers/AsyncScheduler (like delay, debounceTime, etc.,) will automatically use the TestScheduler instead, so that we have "virtual time". You do not need to pass the TestScheduler to them, like in the past.
```ts testScheduler.run((helpers) => { const { cold, hot, expectObservable, expectSubscriptions, flush, time, animate } = helpers; // use them }); ``` Although `run()` executes entirely synchronously, the helper functions inside your callback function do not! These functions **schedule assertions** that will execute either when your callback completes or when you explicitly call `flush()`. Be wary of calling synchronous assertions, for example `expect`, from your testing library of choice, from within the callback. See [Synchronous Assertion](#synchronous-assertion) for more information on how to do this. - `cold(marbleDiagram: string, values?: object, error?: any)` - creates a "cold" observable whose subscription starts when the test begins. - `hot(marbleDiagram: string, values?: object, error?: any)` - creates a "hot" observable (like a subject) that will behave as though it's already "running" when the test begins. An interesting difference is that `hot` marbles allow a `^` character to signal where the "zero frame" is. That is the point at which the subscription to observables being tested begins. - `expectObservable(actual: Observable, subscriptionMarbles?: string).toBe(marbleDiagram: string, values?: object, error?: any)` - schedules an assertion for when the TestScheduler flushes. Give `subscriptionMarbles` as parameter to change the schedule of subscription and unsubscription. If you don't provide the `subscriptionMarbles` parameter it will subscribe at the beginning and never unsubscribe. Read below about subscription marble diagram. - `expectSubscriptions(actualSubscriptionLogs: SubscriptionLog[]).toBe(subscriptionMarbles: string)` - like `expectObservable` schedules an assertion for when the testScheduler flushes. Both `cold()` and `hot()` return an observable with a property `subscriptions` of type `SubscriptionLog[]`. Give `subscriptions` as parameter to `expectSubscriptions` to assert whether it matches the `subscriptionsMarbles` marble diagram given in `toBe()`. Subscription marble diagrams are slightly different than Observable marble diagrams. Read more below. - `flush()` - immediately starts virtual time. Not often used since `run()` will automatically flush for you when your callback returns, but in some cases you may wish to flush more than once or otherwise have more control. - `time()` - converts marbles into a number indicating number of frames. It can be used by operators expecting a specific timeout. It measures time based on the position of the complete (`|`) signal: ```ts testScheduler.run((helpers) => { const { time, cold } = helpers; const source = cold('---a--b--|'); const t = time(' --| '); // --| const expected = ' -----a--b|'; const result = source.pipe(delay(t)); expectObservable(result).toBe(expected); }); ``` - `animate()` - specifies when requested animation frames will be 'painted'. `animate` accepts a marble diagram and each value emission in the diagram indicates when a 'paint' occurs - at which time, any queued `requestAnimationFrame` callbacks will be executed. Call `animate` at the beginning of your test and align the marble diagrams so that it's clear when the callbacks will be executed: ```ts testScheduler.run((helpers) => { const { animate, cold } = helpers; animate(' ---x---x---x---x'); const requests = cold('-r-------r------'); /* ... */ const expected = ' ---a-------b----'; }); ``` ## Marble syntax In the context of TestScheduler, a marble diagram is a string containing special syntax representing events happening over virtual time. Time progresses by _frames_. The first character of any marble string always represents the _zero frame_, or the start of time. Inside of `testScheduler.run(callback)` the frameTimeFactor is set to 1, which means one frame is equal to one virtual millisecond. How many virtual milliseconds one frame represents depends on the value of `TestScheduler.frameTimeFactor`. For legacy reasons the value of `frameTimeFactor` is 1 _only_ when your code inside the `testScheduler.run(callback)` callback is running. Outside of it, it's set to 10. This will likely change in a future version of RxJS so that it is always 1. > IMPORTANT: This syntax guide refers to usage of marble diagrams when using the new `testScheduler.run(callback)`. The semantics of marble diagrams when using the TestScheduler manually are different, and some features like the new time progression syntax are not supported. - `' '` whitespace: horizontal whitespace is ignored, and can be used to help vertically align multiple marble diagrams. - `'-'` frame: 1 "frame" of virtual time passing (see above description of frames). - `[0-9]+[ms|s|m]` time progression: the time progression syntax lets you progress virtual time by a specific amount. It's a number, followed by a time unit of `ms` (milliseconds), `s` (seconds), or `m` (minutes) without any space between them, e.g. `a 10ms b`. See [Time progression syntax](#time-progression-syntax) for more details. - `'|'` complete: The successful completion of an observable. This is the observable producer signaling `complete()`. - `'#'` error: An error terminating the observable. This is the observable producer signaling `error()`. - `[a-z0-9]` e.g. `'a'` any alphanumeric character: Represents a value being emitted by the producer signaling `next()`. Also consider that you could map this into an object or an array like this: ```ts const expected = '400ms (a-b|)'; const values = { a: 'value emitted', b: 'another value emitted', }; expectObservable(someStreamForTesting).toBe(expected, values); // This would work also const expected = '400ms (0-1|)'; const values = [ 'value emitted', 'another value emitted' ]; expectObservable(someStreamForTesting).toBe(expected, values); ``` - `'()'` sync groupings: When multiple events need to be in the same frame synchronously, parentheses are used to group those events. You can group next'd values, a completion, or an error in this manner. The position of the initial `(` determines the time at which its values are emitted. While it can be counter-intuitive at first, after all the values have synchronously emitted time will progress a number of frames equal to the number of ASCII characters in the group, including the parentheses. e.g. `'(abc)'` will emit the values of a, b, and c synchronously in the same frame and then advance virtual time by 5 frames, `'(abc)'.length === 5`. This is done because it often helps you vertically align your marble diagrams, but it's a known pain point in real-world testing. [Learn more about known issues](#known-issues). - `'^'` subscription point: (hot observables only) shows the point at which the tested observables will be subscribed to the hot observable. This is the "zero frame" for that observable, every frame before the `^` will be negative. Negative time might seem pointless, but there are in fact advanced cases where this is necessary, usually involving ReplaySubjects. ### Time progression syntax The new time progression syntax takes inspiration from the CSS duration syntax. It's a number (integer or floating point) immediately followed by a unit; ms (milliseconds), s (seconds), m (minutes). e.g. `100ms`, `1.4s`, `5.25m`. When it's not the first character of the diagram it must be padded a space before/after to disambiguate it from a series of marbles. e.g. `a 1ms b` needs the spaces because `a1msb` will be interpreted as `['a', '1', 'm', 's', 'b']` where each of these characters is a value that will be next()'d as-is. **NOTE**: You may have to subtract 1 millisecond from the time you want to progress because the alphanumeric marbles (representing an actual emitted value) _advance time 1 virtual frame_ themselves already, after they emit. This can be counter-intuitive and frustrating, but for now it is indeed correct. ```ts const input = ' -a-b-c|'; const expected = '-- 9ms a 9ms b 9ms (c|)'; // Depending on your personal preferences you could also // use frame dashes to keep vertical alignment with the input. // const input = ' -a-b-c|'; // const expected = '------- 4ms a 9ms b 9ms (c|)'; // or // const expected = '-----------a 9ms b 9ms (c|)'; const result = cold(input).pipe( concatMap((d) => of(d).pipe( delay(10) )) ); expectObservable(result).toBe(expected); ``` ### Examples `'-'` or `'------'`: Equivalent to {@link NEVER}, or an observable that never emits or errors or completes. `|`: Equivalent to {@link EMPTY}, or an observable that never emits and completes immediately. `#`: Equivalent to {@link throwError}, or an observable that never emits and errors immediately. `'--a--'`: An observable that waits 2 "frames", emits value `a` on frame 2 and then never completes. `'--a--b--|'`: On frame 2 emit `a`, on frame 5 emit `b`, and on frame 8, `complete`. `'--a--b--#'`: On frame 2 emit `a`, on frame 5 emit `b`, and on frame 8, `error`. `'-a-^-b--|'`: In a hot observable, on frame -2 emit `a`, then on frame 2 emit `b`, and on frame 5, `complete`. `'--(abc)-|'`: on frame 2 emit `a`, `b`, and `c`, then on frame 8, `complete`. `'-----(a|)'`: on frame 5 emit `a` and `complete`. `'a 9ms b 9s c|'`: on frame 0 emit `a`, on frame 10 emit `b`, on frame 9,011 emit `c`, then on frame 9,012 `complete`. `'--a 2.5m b'`: on frame 2 emit `a`, on frame 150,003 emit `b` and never complete. ## Subscription marbles The `expectSubscriptions` helper allows you to assert that a `cold()` or `hot()` Observable you created was subscribed/unsubscribed to at the correct point in time. The `subscriptionMarbles` parameter to `expectObservable` allows your test to defer subscription to a later virtual time, and/or unsubscribe even if the observable being tested has not yet completed. The subscription marble syntax is slightly different to conventional marble syntax. - `'-'` time: 1 frame time passing. - `[0-9]+[ms|s|m]` time progression: the time progression syntax lets you progress virtual time by a specific amount. It's a number, followed by a time unit of `ms` (milliseconds), `s` (seconds), or `m` (minutes) without any space between them, e.g. `a 10ms b`. See [Time progression syntax](#time-progression-syntax) for more details. - `'^'` subscription point: shows the point in time at which a subscription happens. - `'!'` unsubscription point: shows the point in time at which a subscription is unsubscribed. There should be **at most one** `^` point in a subscription marble diagram, and **at most one** `!` point. Other than that, the `-` character is the only one allowed in a subscription marble diagram. ### Examples `'-'` or `'------'`: no subscription ever happened. `'--^--'`: a subscription happened after 2 "frames" of time passed, and the subscription was not unsubscribed. `'--^--!-'`: on frame 2 a subscription happened, and on frame 5 was unsubscribed. `'500ms ^ 1s !'`: on frame 500 a subscription happened, and on frame 1,501 was unsubscribed. Given a hot source, test multiple subscribers that subscribe at different times: ```ts testScheduler.run(({ hot, expectObservable }) => { const source = hot('--a--a--a--a--a--a--a--'); const sub1 = ' --^-----------!'; const sub2 = ' ---------^--------!'; const expect1 = ' --a--a--a--a--'; const expect2 = ' -----------a--a--a-'; expectObservable(source, sub1).toBe(expect1); expectObservable(source, sub2).toBe(expect2); }); ``` Manually unsubscribe from a source that will never complete: ```ts it('should repeat forever', () => { const testScheduler = createScheduler(); testScheduler.run(({ expectObservable }) => { const foreverStream$ = interval(1).pipe(mapTo('a')); // Omitting this arg may crash the test suite. const unsub = '------!'; expectObservable(foreverStream$, unsub).toBe('-aaaaa'); }); }); ``` ## Synchronous Assertion Sometimes, we need to assert changes in state _after_ an observable stream has completed - such as when a side effect like `tap` updates a variable. Outside of Marbles testing with TestScheduler, we might think of this as creating a delay or waiting before making our assertion. For example: ```ts let eventCount = 0; const s1 = cold('--a--b|', { a: 'x', b: 'y' }); // side effect using 'tap' updates a variable const result = s1.pipe(tap(() => eventCount++)); expectObservable(result).toBe('--a--b|', { a: 'x', b: 'y' }); // flush - run 'virtual time' to complete all outstanding hot or cold observables flush(); expect(eventCount).toBe(2); ``` In the above situation we need the observable stream to complete so that we can test the variable was set to the correct value. The TestScheduler runs in 'virtual time' (synchronously), but doesn't normally run (and complete) until the testScheduler callback returns. The flush() method manually triggers the virtual time so that we can test the local variable after the observable completes. --- ## Known issues ### RxJS code that consumes Promises cannot be directly tested If you have RxJS code that uses asynchronous scheduling - e.g. Promises, etc. - you can't reliably use marble diagrams _for that particular code_. This is because those other scheduling methods won't be virtualized or known to TestScheduler. The solution is to test that code in isolation, with the traditional asynchronous testing methods of your testing framework. The specifics depend on your testing framework of choice, but here's a pseudo-code example: ```ts // Some RxJS code that also consumes a Promise, so TestScheduler won't be able // to correctly virtualize and the test will always be really asynchronous. const myAsyncCode = () => from(Promise.resolve('something')); it('has async code', (done) => { myAsyncCode().subscribe((d) => { assertEqual(d, 'something'); done(); }); }); ``` On a related note, you also can't currently assert delays of zero, even with `AsyncScheduler`, e.g. `delay(0)` is like saying `setTimeout(work, 0)`. This schedules a new ["task" aka "macrotask"](https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/), so it's asynchronous, but without an explicit passage of time. ### Behavior is different outside of `testScheduler.run(callback)` The `TestScheduler` has been around since v5, but was actually intended for testing RxJS itself by the maintainers, rather than for use in regular user apps. Because of this, some of the default behaviors and features of the TestScheduler did not work well (or at all) for users. In v6 we introduced the `testScheduler.run(callback)` method which allowed us to provide new defaults and features in a non-breaking way, but it's still possible to [use the TestScheduler outside](https://github.com/ReactiveX/rxjs/blob/7113ae4b451dd8463fae71b68edab96079d089df/docs_app/content/guide/testing/internal-marble-tests.md) of `testScheduler.run(callback)`. It's important to note that if you do so, there are some major differences in how it will behave. - `TestScheduler` helper methods have more verbose names, like `testScheduler.createColdObservable()` instead of `cold()`. - The testScheduler instance is _not_ automatically used by operators that use `AsyncScheduler`, e.g. `delay`, `debounceTime`, etc., so you have to explicitly pass it to them. - There is NO support for time progression syntax e.g. `-a 100ms b-|`. - 1 frame is 10 virtual milliseconds by default. i.e. `TestScheduler.frameTimeFactor = 10`. - Each whitespace `' '` equals 1 frame, same as a hyphen `'-'`. - There is a hard maximum number of frames set at 750 i.e. `maxFrames = 750`. After 750 they are silently ignored. - You must explicitly flush the scheduler. While at this time usage of the TestScheduler outside of `testScheduler.run(callback)` has not been officially deprecated, it is discouraged because it is likely to cause confusion. rxjs-7.5.7/docs_app/content/images/000077500000000000000000000000001431412030200172155ustar00rootroot00000000000000rxjs-7.5.7/docs_app/content/images/marketing/000077500000000000000000000000001431412030200211765ustar00rootroot00000000000000rxjs-7.5.7/docs_app/content/images/marketing/home/000077500000000000000000000000001431412030200221265ustar00rootroot00000000000000rxjs-7.5.7/docs_app/content/images/marketing/home/Rx_Logo-512-512.png000066400000000000000000001331751431412030200250310ustar00rootroot00000000000000‰PNG  IHDRôxÔúgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“ pHYs%%IR$ð€IDATxÚíwxSW¶öeS\ÀUÂ…bãn™™ôdf¾ w2“©I §“:CfÒI%u”†-éìsŒ Á¦šHÕPL3Šé`À`Œñ1½c¯ïIF*§ëH^ïó¬çÞç^’Øâ輿½Þµ÷ÖhP( …B¡P( …B¡P( …B¡P( …B¡P( …B¡P( …B¡P( …B¡P(ù1h ¡ ÐXº€ÆÒ¥VcèÞ]Ø 4åÝ@£ ±•!Ôñ¿ã§†B¡P(”ê ÞÊÆzžJ(¹ÕÑ/žÔÍbµÌÄæxæ(«eN±Zæ<«¥/²Zæ «e±ZfQ‹Ž.aã‹v6k™¦f³œ§¿hÑ2³Ùxf=«e¶h™*VKW4늾bµÌ[¬–65kÉ3-Ñå½ì€€€B¡P(”’²hò»4ÇRYl<=ªYËìcµÌVË€2E_dµÌžfmÑ×§t£î;’T C(þ­ P( %Ó*ÿl“Íj«e޲Z¦M9Ó÷ZWšuÌ%VÇloÑ2?°ñEù-::4€ …B¡øª>™îÑ¢eþËj™ÍZz“}å TG[´Ì{ì]ßöÄ¿M …B¡|¯ô»6ëŠ šµÌ¥3|OuµEW´ !uT_üÛE¡P(êFãmÖ2FVË\ ãwWK§éðo…B¡P(Fsª×èh6¾hg{Ù;‹š2ŠÿÎ  P(ªSŠM“Ãê謖¹ÜÌߥ®5ëè¹V|> ( …ê4jÉ(ûÕ2×:¡ñw,]QK‹¶è]È·tÁ§…B¡PÁ½ò§G©hŸZª¡%Žù;Æ( … Nó×14{¯µ›ýý„>ø¤ P(*xÌ_˼ƒmnó¬–y Ÿ …B´À`mÑ2•hþ¼ª§Ga$€B¡P¨À]ù똡¡ Ü6ÏXñ® …BœZtôãt›Ÿ”µÿ¸¶x>M( …R½@!ÍZf4¶ý%œ Ð1ãñÉB¡P(”ªÕ¬-šŒ¦-ÇI‚ôl|ºP( ¥JH/{ ÍZÖúçP( ¥.óÏ.O`µÌ94iÙkî@¡P(”*Ô”[Áj™ãhÎJ#Ìl !ŒB¡P(? r-Ý›µL³øjÔ1°;ñzU÷¡¡ºk쵬/ úÛªª?©÷+:ɹ „ †PƒázT±ä[ºÔ +ïf}nâÍÖ|KDͰŽj µÝÁ`€GáB¡P(NbµÌÏhÞ¾k»Xׇ†U}iø© ³Sl5.Àø4œjb ÓhøÆ^“ÐPi¯Éöª@_ùvÝ0e½aJ*½yJ*½wêrtj*}jj }nz*Ý4-•ž–Jž–JŸžJŸ˜‘B³3Rèó–rÙ’BÎYRH£%…þ.…ÔÍìOŽÌL!'¿K!Çfö§g}ŸBõÃ'…B¡PnÌŸ¼…æ~½÷¶™üʾ4,íGÃ÷©4LN#PžN Â¥Æ¦g/!æ?y ßÚkJª­¦:Õ4—šžJÃŒ[YRH‡šéTßõïP×¾ïOïù.…~×’ZØË¢±t±j ]5Æ¢ÉïbÐBA£ 1à`" …BuŒõ¬–iíŒFLÇÀÎDVô¥¡ª? ߥÒ0:ƒÀè _gãTåé7€7ów€ ̾·×,Gõ£ÏÌîG›ÓÞ?»Ó2»}|N?ºnn_ºzn_fâÜdúÞªÞÅñ³’FÆZûn®¹­¼~SP(*ˆÔÏüšÕÒW;‹ÙïHd`y?f§Ò01@i2{v*®æ?ÖÉüÇû0ÿIê1ø¡ ³jN_æö¥an_sû˜g«¶ù}É•}ÈÅ}È…}ÈîÉdò¼dSz¹¦¼Ûœ8c¤­s€ó( Pªë?ñfVË VÃ?Ô›õÉ4ÌK±µï‹3mU’I 4Ófþ¥Ìßð5ÿ‰>Ì²ÒæßvkþsÝ›?,èÓ±ª’ üx½Ú~L&—&‘³ “éúEÉÔ°9qÆHÐhBʱ[€B¡Pêä[º°Zº6 n cÓ eÚjTæuó/–Øü}åþÎæ_)±ùÏä`þ³\Ì6óŸïÆüìhþ°Ð^‹œ+‰\]”D.ü”DÎÿ”Dïÿ)‰¢%RY‹tæpüÆ¡P(”JÄÆ3‚¡¥¿9™†9)6c¦3 0öòdþΫ1­)†þ¦ Çü¿ç`þs8šóO²ÕOnj±­Ú'‘5‹“é<Ðh0.@¡P(©YǪéïM°MåOL'@²( YÐYÍŸq2ÿQ™üZÿ|ͼȡ?ÿšÇ–ÿ|ï-O«~·æ¿ØM-I$°$‘Y’@}¸8µ°~Q(JÉ•¿¶èVËÔÐßædªú“Ae7}çrgþr·þ¥6ÿ©nÌß\3Ã~ü[þ¾Wý×ÿºù·×ÒDÒº4‘ì]–H[žDþoa2ƒw# P(”\+ÛÕ¾aú›’iø!…À¨L›é;Êù{Zý‹mý{4ÿtaC\'þýiþbZþ^Vý®æK ,s®ËÈyk"Y¶´7)\¬£óP(Jó§_Ó/ʤÀ”EÙ^žÌßÓê_‰Ö¿\ÿr™¿¼_ÔªŸŸñw(«½–%ËËÈik]´<þxH …Bñ5ÿÞEw°Zæ‚MO ³R0™³lÆï(góÝúÏôë_Õæ/㪩;ó÷büÖË«w{±Ë{“ÏWô&ï,ˆ; P(Ê«NèŠdµôE5™þÁÞ ,ïKCY…Y¶âmþÿD·þeú›ÎqèOó—(ï´êfü°Â©Vê¬Ô‘k+tä§•qL~ËQ(ÊE'£˜(5™u¦   ÛVÎæ/ëêß­)'þ}íó—Ëü…´üù¶ûy?¬Ôøùz]\Õ›þ~•Ž~²&w P(”æD“Àj™CjXíÏK!@e™ad¶­œÍ¿P ùsü“¢õ/•ùûZý«Åü•^õû2þ•½Ýš>ü¬#°Ê¹´ViɵÕZzÏÏñ¦¿¬Š3FâÅ(ªÓ©E7JÏj™Óþ4þšd¦ ðU¶¾ÊîhþÞVÿf«µ¶þ9™ªÍ_ª–?—U¿Xã_åÞøaµ½ª+žœYO ÷¦ß„o ü+ݨ'Y-sŦߠc`Y_Ûÿ—Ù¶r69VÿR þ iýKqÒŸ§¡?_ýx;äÇùK1éÏÛü¹äüB_ÛÑø]L¿C­‰'°&Ž\^O~þ9Šü ß(*(ÅÆ1¬–ióG›N c–>Ï6ÃÙævóWÛê_ÈÔ¿¹Gó0ôÇÑüç‹4¹WýBŒŸ“é;ÕÚëÕ¶6žì]G=o   „°Ú¢%J]–TŸg›ÛËaþ~_ý üS´õ/tâ_­æÏcÕïn¸OŒñ{1}XO`]Õ¡ÖÇ‘¦êXãøö@¡Pkþù–.¬®h«eZ•2þ­I4ŒM§Àc†ÏœÌ_«©ÿÔhþs$0¹Zþ^Ûý¿/ÓwS×ÖÇQµkcÍ੃(*WþÌZ¿7ó—kõïkÛŸÿ¸þÉÓú¶×_ æ¿L€ù{k÷û4~éLßM7€‚õ±Ôåuqdn%D¡PªWm®¡;«eV*aü[’h¨H§àvã÷bWÿ|Žü•cðo¼€Õ¿Tæïkèï·úñöçcþ¼Wý ¾WýR¿ ÃwSb)ØK]Ýkþ¯-F¡PªÔɪ«cš•0þòt >Í1ÃÿìålþŸ¹˜¿3øsõ/tÛ×=ÿJ¶þy™_éÌ_ª–¿·C|”4~fï­š×ÇPocG…B©F-qÌ0¹·ù9Œÿ“3|’cnn«J±ìŸÏê_ŠÁ?±­ÿ©Âso{ýÅü=­ú=eüb_€é»«Öõ±Ô’Z¡;¾}P(”âªëo¸ùDs+«e6Ë=Õ?mi7~góÔտ܃²çþ>&þÝ]é«”ù‹Êú½¬úÝÿ:ŽÆ/á·WM,51íu±&Ö|¾P(”":Õwtt³Ž.aµÌAVK_•óŸïS|ìdüBVÿJ€ØÕ¿Ô{þåný«Âüå\õ‹4~)VúNFCmtªšhêÀ†hÓo-šü.ø†B¡P²‹¶h2«eÎÊó/èOà‹l³Gó÷mõ/¨õ/Uîïë”?gûûÝü9¬úù´úŘ¾/£w[±Ä©¨æM±dnD¡P’èLbQæImÑO¬–9/·ñ¯K¦Á”EÁÇ9æöò´úÿ®þ½þÉÕúç3ñïn»×C~¤2GËÿgæïOãçløLÞsmº^'­ý 7ãÛ …BñVS<Ö¢eJ›uL«e®*qzß×é|ädüîàSÞÃÒnýãrêŸÕy†°m^[ÿVÿâr÷ÿR›?Ÿa?)Wý\Cœ0Óçcø›øÕ‘UqÆH|›¡P(Ÿ!ô¸ŽIe㙕J]ÜÓ c`^æ˜}š¿Z‡ÿ¤^ýË=øÇwêŸkîÏyâ_.óçÙò»êcü\ ß“±oæWg7Ç’‘ÕÉtÌ1ó%¶þùuõ/ðÄ?×Á?±­.¹?¯¡?‰Í_HÞ/vÕϧÕÏÇô›}ŒïÚC.nŽ!6ÇKM$‡oC*ÈT«1toŠ/‹8ÅDˆ3&²½é\6þKs<ý*«+²´h™Í¬–>Îjé‹þ¸ÏQNÁ9føÀÉü?â`þjþóçê_ŠÁ?©rOC¾&þ9Ÿð'Öü][þVý’¿Óbò¿ð¯+¿ÄºMQô½øÖD¡D!ÒŠoªO¦{4Å"NF1Qǵ¦¬vÔoNè˜al|Ñ8V[´šÕ2õ¬–9׬e.)y—ú©ÿe›ÛÍÿ«9†ÿ‚eõ?U¦Õ?×Ö¿¯Ü_IóçÛòçÔî—Àø}š¾£ßË­œþ™Æ­½FGãÛ…ReÛ^r\[¤;®-ÈêÈÝÍñô³ÍZú»f³ƒÕ³Oæ_ö犞KíL¤dP0"Ç #\Ì_žöÿÃ…ÙÒ¯þGØê_éÖ¿í~bÌÿg‰ÍŸkÎÏwµïËôÅ<ßÚmˆo[J%¦iÅ7I*mÑ lÖ’gZâ‹–±ñL‹’½T5·?÷sLð¾‹ù‹mÿûkø¯È[û_æÕ¿ÐmÞöü—"Më_ŠÜ_ió_ÇÅüù®ø%2}o†½Uú:µ5†¹ß¾(”ߌßÊÆ>¬Žü»9ž™Ëjéö¼>àLß±ê§2Ìíæï ¤\ý)ÃðŸ¯Õ‰WÿÞ¶ýIßú÷°ß_jóOoþ®Ã~R®ú¿ÓߪdÅÐ'·Ä’gpÇ ¥ÄJ_c=IűZÆÐ¢eö6ë˜Kjoçs©9ý ¼—c‚÷rLVÿJµÿý2ü—!”Zý ü“!÷t¶?_óÚòçÓîçiü¾LŸ¯iosT ²ÿ3^þ½ç·ÄÃŽ8&ßÔ(”Ä:Õkt4«%°Z¦šÕÒçÝð¯OøÛVýów)‡ÿ>óÃðߤ4›Y«fõ/Ѷ?oþðmý úS»ù{Ëùù¿Ó÷dòÛE”7@púo/7àÑÂ(”x‹/ëÝ¢õ8«ev)uØŽRµ°³Mð®óWªýÏåä?¾«ÿïRiXŸLáÞ××} üÔŸ†ÉiþYýóü£¥ú—¡õïOó³ê÷eübLß›Ñ×ÊT^Àà̦ˆâx|ƒ£PWüMñ¦Þl<3–Õ2‚Éøê¨H3Ã;9Í_Šö¿?öþ—dR0'…ÀædšÓï¸7Õ}h˜™J{þKï¾Îü÷×êßo­Çû*eþ\Úý|Œ_ˆá×ú¹œ àʶê`m|Y¾ÑQ(_?@È©¿Ž>Õ« ºEËü¶EËlTÛ¾|±µ9‰†²ðNŽÉ'ø»ýïkøof*wÓ÷T:j’iø±? ãÒƒeõ/]ë_ ó_ÉÓü%kù{[õ 4~×¶>_Ãß!Qñ„³µÑ£úâ…òbþV|ÓÙÞÅñ'âè'Y-},˜ŒŸÕ20;…‚·sðNޱÝüolÿ›üÚþ÷µ÷L?÷¥á˜NžÏhk KûÑ0y€zVÿ\·ýy=ðGæÖ¿?Í¿†ƒù{Ëø9?OÓßá‡òñ3]«¡víH)í‡o{ÊÅüÏD–Æ‚¦¼«-z›Õ2ç‚­å?*à oço€÷8äÿRNÿ mÿÿB 6‰VôsÛŸÀÀª¾4XR¹ ÿ‰9õÿ¶?σ®þHÕúç³ÝO1óçjü±âŒ»L†¿“CI ×vÄÐ[k†•wÃ7? ¥ÑhšâM½AcéÒOO¶A¿MI4|˜c„·:˜¿QPûÿ#…ÛÿE™,é×q˜Ï_Uß›ÍÉ4Tõ§EïûçsÛŸÐÁ?Å[ÿÌÿgw‡üð4¡-.í~_mþí˜þÎhK8 4ÖæºãÛÕ©Wþ-ºQzÐXº4ëè’`ØÏï\?ö£à­\c{9¯þßQcûßnþt&‹ûÉ׿[:¶'Ò°¤ŸÍà_ý{9ñÏÛà×Öÿ’$‰‡þÜœðç/óküœVônŒz— å xÀÀÙÚx¢:§Øø¢Ç@£ ±µýé«ÁÔò“fî`þo¹iÿ¿«²ö¿Úÿ†Šg€c`·Ž•I4ÌLá¿úŸ.Ùê_¾Á?¾¹?ó÷6íÏÉü¥Zõ‹0~>†¿;šÀî(‘Å 8ÀÀ)Du:5§?lÕº6ë˜?6ë‚g›ßŽD 3MîÍ?—[û„Œgÿ{jÿÿÔ?€ŒßšchŽf 9Šújt¶U¹"«ƒJýImþ’®ú?Ãmô"¡€ ´m¦¬{ÓŠoBg@æŸoémÕº²1e}X-Ó,æ_݇Àˆ w1_íÿ÷üØþÿ&‚ƒ½ô3³@´½zÙ+’†æH{Ò°%ž†%IüÏü—mõ/eë_àПÌ_ ã—Âð÷Dû.!ÿ^0ÐZMžF‡@µŽk‹Ô'Ó=X-³5XÌ¿ª7sMðf®oàÚþ—¨,3lL¦ûsc€õ ín«14¬H°· }ÿ(A¹…0 ¼w¨æ±d4 Ý¥zµh™§ÖüÓ(x5×äü•ÿ»Ýþg€9)$øÌ_‚íBÛÿ{í°;ކvó¯#°-ŽÀV;üO`³–ÀºÞV&ÚLÞãê_âÁ?±¹¿»³ý¥0Q«~žÆ/—á ]¿“ˆnÀaŒPª«eâ6¿’t ^Ñ›ÚÀsþoRMþÏdRРc‚¸¶ÿ#¤oÿs€:[ÕhmŸl&ïsõÏcðOŽÖ¿GóUÆü½ ÷9óy[éó5îCJ xê ìxŒPêÍÿ ¡¬–9hæÿE–^Ñ›n€\î€\Ïÿ—²ý¿ºœæ/&ÿ&ÿwmÿo‹#°5ÞZ›ìP£#°AK`ƒÎëtÖh ¬L `µ›>§Õ¿ËàŸØÖ¿ÚÍßÛŠ_ŒéŠ”¾øÂ€;ð ð„€–])Å»0@©N§ãé4VË\ 4óÙÉü]@ì \ùa–9xÍ_ÁížÚÿ»Ü¬þ¹ÀZ-5:«{XÕÛfðËD®þ¹NýóÍý=™ÿæ/hÕ/ÂøÝöa ‹/ð½Qܺ®Ÿõ®”’…è8(U­þ›µÌPVË´Šùn7ÿ—]VÿJ ŠÍÿ-©$è@éíBÛÿ´Ö;wtªu6óÿ9áz7€ë¶?o«!­.æ¿Yóç’ñs1~®†_I >BXq> àmXS$pÃÃt9:J%!l<=*pÌßÔnþ/»kÿûikþíy·ÿñmÿ·€öFX‘ nÛŸÁ?Þ­̟˪ßyëã¿Áì=ùÅ x—n€€H 6†¬³ä[º ¡p‡ùÿWoä þtÍÿ·&Ñ«ý/Ñö?×Õÿió×ö¿R«®­>¹¿»}þ²˜¿ã?Ô“»é‘±8Ànè£~ÿíýè@(ÀÚ@1gà3ø–J±ý¯þöÿ*™Vÿ\ÿøæþ’›?Gã¯ãaüœL?\Ââ Þ@ Ž#8æøÌÔÆØwï¤wÑ…Pþ€mbþ® ~PÙ€°ý/_û_0¸iÿK5ùï³õ'}ë_ˆù{ÚÛÏkÕïÃø¹þQ Š ø¡Ý¡°;¥ô+t"”f4!¬–Ù­Vóÿ̃ùË?(ñ@Ùžþw"‚†¦H;„+¿ýϵý¿"Áý©¢VÿR´þEæþ¾Ì_hËŸ—ñË`ø¼@ÈŽ¿«])Å&t$”òC€Zú€ZÍÿ?Næ/$ÿ3(õ@Ÿ+Hµý/BÚíΫÿM:î ØêßÛàŸ€Ö¿\æÏ§ÝÏÅø¹wC8†0%|€€¯n€PØéjcÉHt%”‚`mÖ5©Íü nÌ_-€bÎÿÊ!À8™óÿ^ÊåÿžVÿV>ûþE¬þ½µþ…æþ·üp5¾«~ç­{îŒß§Ù{1øc^ÊÛ?ÇÜ€ßn€”°=†š†Î„’ßü Ê&’>j:討ÿe™à%½Ñ+â €A´ýoÎv'€kþÏçÌ)Wÿ5Wÿ|sOæïIÌ_ ñó1z¾Å¸€€”àc{ h„”ÌoéÂj‹h5™Ia¦†éœàU}`œø™,ìO:gû?RÚÓÿÚ NºüEÂçþûsõ/¤õßñnzï­ÿ½Íÿ°7ó÷aü> ¿‡È® D{‡·Q@ ÚXêkt)”œíÿ®¬–9¤3“vÝü9€l;¤üÜ^ãÓ(Üþ§ÒíK…ÞøÇsß¿˜Á?¾­æÍÏü}®ú}dü¿‡ÌåÄt”‚€í1Ä‚N…’E'ã™_«åà1ifø·ÞèäØÀç@±€Ÿg›Álw¨¹ýÏcûŸ»Õ¿¯á?%WÿRµþå4oÆ/d¥ßÈ£øÂ_öx€ïQm1dºJr±:f¼LdF ÿÖ;Àx€ØJœø¹Sm ¦9Ûÿ\ÛÿÇ"hhˆôÏö?w·þ¹kÿß°õÏ«ÿí ýùšöjþ|Wûn=ÌQ´—²ÿ>@ÀC@/ïÀ· `ïôŒAÇBI ñÌaÈ¢¾þe7Wð÷©?Ï6ÃÙf˜“BpûŸBÛÿ\WÿîÀçê_Îá?™VÿžZÿ’™¿'ãwgþ\Lßaôá"Ë\`À H¶ò ôÒ€-1oDIZæª? dC2 /:™?Wx…3¨k€LYTpnÿë%mþïXýŒ–7ÿ_šè»ý/ÅðßÕÿ/Wÿ\†þ:˜/næ/ժߛéYnÀ p툀.ó®Q@­ØG s¡¤¿™Ç¶D^Í5J*Øàí@gø2›‚šdómÿsZý/OàÑþç0ü'÷ê›—Õ¿óÔ?ßÜ_ró÷eüš>' pé p1Àe@H`&£{¡Žè˜vóÑÅü•Û(Ïo€Î0eÁö¿€íÛÿâ`µŽÀ’DþÃ?K=ü§À꟫ùß°Õ/‚‚Ãv(ˆ p0Âö?Û«>‚ÀÑ0Êëªÿºñó3ý¦pšÂ8ß΀7‡xB€§(€Ã@ ãYX ACÑ1ðI–©Ýü_t³úçº0Ðv8ÀWÙf8Ø·ÿùsûŸcõ/Eû_ÈðŸØÕ?穞¹ûŠ6’À¾žvFQ°9š‚u±¬Ž3Ãê83¬¥`K»{RPgï 4pXñ{5|7ÆÞNà /å 8€Bà) ¸aW¿.l!+ÑÅP$ÝÜÁüÿÅølô÷Žð]*Áö¿Lí_Ûÿª]Wÿ2µÿ¹¬þ7J4ù¿+Úf"bZÿ#)8Ø“ÀÞž6ÅP°Dg†©}LP:ÀÆ|~; ŸßBAaz!”¦aj,ÕšaK/ „8F ¡uÝü}¿«áŸpº JP…sëpíp…€‡õä"ºðK,ù 01•‚œÌßȵПw8Ìߨ,3ÓAû_äö?WóWbûßòíÿiÚÿB†ÿ¤Zýó5ÿ= l‹¢à'*2)øän^»Ó ÿùUÛzõ–BøXo„ŠþFX¢5ÃŽž ·™§7ó÷fúî ‘Sù€¯ ÀŽø€¯Q€·@Ž;œÁpK,½㔪`Q_/芀Z·~™MµÀÈl3üˆG{lÿ3ÑþwdÿKÔÖþ—qõïóv¿H ö÷¤`c,3’Mðù]Eðò-…ßµþûëB0daf’ ~‰&p8Ò½ùw0~)LßKupÏ) @lÀgGÀ@`K,™‚ކR%lK¤á•\#/€²[?õq€' ²pÀÓö¿Hi·ÿ9¯þ÷ÇJZ›Á;Ì©ŸÛÿ|†ÿÜNþK°ú?IÁ^jb)˜Ü×#þTÊÙø]ëݼB˜Ü×[b(8ICc8ñhür˜¾OðÐ p$®’tlŽ!t5”ªàˆŽ·³MnÍ_Ê-€¯«t  ûüÿ:ŒÌ6Ã÷6 À·ÿ¹]ý'*Ûþç=ü'ñêßµõ '-ÑLO6Áû,lþí[–>&ØEàhÄuÓm7~Íß4ùwæ8Frv~‰!°)–¢³¡¸Ày¹ÍâËL3<¯7úul4)²ÐÙüGf›¡ › œ.€*¶ÿ]_ýóÍÿ«!Ûÿ$mÿóþ“bõïîÀŸºH»{Qðc‚ ¿%ÚüõIv!üÔ›‚ƒö(@éU?'ž†¹F¾º»xv¶8C@ õºÊ« jïM¬–9-§YLH¥ày½Q•ð®È3>‘&¥Üþ'sþ_Ýûºù ÎÿnÿóÝ÷Ïwõ_דÀ†83”eQð_™¿Ï™€_ÀèTl‰!Щã—\£)»|b€_ ™Zút9”gaµL£\F±¢i7® †3”Úè …Yl „Ó¤ýߺë`u1)ó¡ÓÿîÚÿ¼‡ÿ®þFR°§ føà7Œdæï¨÷s á§3Ž´å徭€p/ÐÃ=p¤îp‰6ÇØM.mÍN‡òì‘kèïå\£Oø— ×-€Rote”º·ʼýÏuõ/åö¿U '©$ÿ—¨ý/võ°'mÑLìgâ5ñϧ ðMìéEAS„ú Ã³é¹@€·@ž]€½"»[\! –:ù–.èt(·jÑÍ“cèïÃ,Só R¤Æ-€ów@a Ô¼-0€ÛÿK“øµÿåÎÿ¥jÿ‹Ù÷_דÀú8 ¨l³äæï(*Ý›c)hT1p…ÎQ€.€ëŽ¡Ã€¾bû³U‡g ÜwtÌZ©M¢,Í Ïy0ÿ@9H øŒ:€1‹‚= 4¶ÿ=´ÿ…€ëêßù¿”í.Ãû£¼¯þGÚþ+µf0ÜNËÿË.„êxJ•snŸÑ0Æ- àÛ5°CÀÆX2ÝÕA‹¥ «eÎJi ûxNoô;(}Ÿ3¾âãÒ‰z@@ûßqB[S¤8Úþ_štcûßù¿ÃÄ´ÿø€ý‘–êÌðámòu>È)„Z "H@€WpdèH8ºIØK`S õOt=”ë ÀI©Ìak" ÿÉ5JAqÇ3œÛÿ0©1 PÙö?çÕ;ènÇê_Íù¿œí×Sÿœ¯úÝIÁR>¸U>‘S˵f8¡þ€+ÜØ usèHµ`‹›À7µmêS’ˆ®‡²íÐhB¤€²Lð¬^^x…¼Å”=Èý +˜²(ØžD«÷ô¿Èÿ×é,IJäÿ\ÿáÔþïå»ý_aûÿ­ÐRðɯ)ÙàãœBX­¥ !20 Â9F>º®çptìÄ^‡€šXrÆ`0„¢û¡4 ©"€q©<£7¶Àó@ªSý gów€¯Õ´+ Oÿ[é¼úO?¨tþÏ«ýÏaøÏyõ_aûßׯ𡠣P6(È,„šX"|0ÂG)8àm Ðm@ªÀÇ¡@\`c,šj7¢pD¬1¬K¦a¨ÞÈ ^T5øï O`΢À¢†c‚¹¶ÿ#¥mÿ‹Éÿ×ë®›¿œ€ëÜÀ†8ió)Ûÿ‡]`KcRŒðß_Ëå)&ØMàx„ÓäX2À€÷(€@ö Ö÷ÀÆëµ°³À kWVËÔ‰Ýò7,×(Ôq °{Pê O@eQðs_·ÿÙÍKüõ¿ãŸŸì•hûŸËl&ÿGp;Ø[†@ò®íGíéIÁ‰fþ+£äæ?<¯æ$™áPOÛ;NÆ)²"äÝè« 4pÝ àq; ˆAÀvˆ¡`Sÿ"<.¸3ëTÆèTVË\c ¦ 3 Í <xWaø‚˜Ü•EÁ^n ” ý(І]ѶÚMÃŽÖêlµFGCuo–'ø)™ÀOÉ4ü”LÃâdf÷£an_æö%0¯/ù} ,èc«“mµÐ^‹’ ,J²¿£‹ØàvP$Hÿsþwmÿ;ÚÓ# TÇR`J—LFXGÁ±H;"%.¹»‡ÝÅbçx ¶@M Õ¶õwSð¤ÀΪ³\Œ),ïClæD0Bap=È”dúg ¾7»¥e`w<klµ¶7 k{Ó`M¢¡ª ?&Ó°Ð^ÓR¯×ôTf¤Ð`I!í5Ó^ßõ¿^ß÷'0«?Yýhø¡ŸÍüçp€En`1à³@ì ù¿¯öÿ‘›9ÕGØÝ‹À¬$¼«—nàm}ÌN6Ãþ^Ä÷)€‘2U„Œ]×c®s¢Îp™°ÔÄRõ8ÐÛÿµµÝ[tL¨Ö¿¾£ù‹5ßð± €dQ0‘Çù‡{3°3±c­ìK·×Ï}iXØŸ†Y©4ÌJ¡á{M'0.ÀøtãÓL°×Ä4¾±×¤4T a²½¾µ×”T¦Ú‹/|ï³=€Ýü«D€\;ÜŠ1ù¿·ö¿ކ8A`SŒÆõ7Âk¿¯,€q)&Øêë" ®-ÿž´mÞ¤C)^wÈ1lˆ¥Æ£#v60@(«eN€Ï2Í7¬þÕj¾€Ë1À¾€dQ03•ÀœSÐ0u ÓìU”I`T&b{•d(Í$PšA ,ƒÀh§ú:ƒÀ{•§¨p*_0I˜)ø ÄìPjkþÄŽ„8A`u¬ÊRðê@áæÿÊÀ(`„uññu /ÓïÅp«žòÆ¢c7»ÄÌH¯ürKù'èŠ ¡ÍZ¦IˆùÏêOÁÓóJÞð–Šï(ä Ž¢3 0Nžæ NæÏ¦¨–pO;tòì;(*ÿ¿ÎPk†ŠþFxK@ð–¾*RL°6ž‚Ñ´÷Ö¿7Ãæjü®%ˆ‰<Έ8@ôNØKÁî'æÅ¡3v5§—ÞÅj™6!­ÿ몀`½ÀÙü¹@‘’`7®0Ìr}y€§À$·Ê´€Ï`]/nù¿s«ÚaZuá6FS`I2AAF!¼>Ð7¼>°FfÂw}L°9–‚úH"Ìü{Š0_Ý€b1s|%Ú à ëcÉ(tÆÎ2¨-Z#dõoÌ0ÃÓyîàY Ø/ú*˜ÀÉü¥€¹ž ™ð<@®-€bwðtÛþ÷ÇÂ4ô PN`W$«cÍ`éc‚â&ø_–Þ͵mížWïæ€!Ë£˜à»>&XOÁ¾([æß$d«Ÿ7órÚí²UAb€× ‹¸îðb©¶)Å ;v‚ö?«¥[ùš¿µ§ìæ¯fô‹€¤€Ò€€ë;¼ÀA|vìŽ7xÄ 48€ÃÈÂŽ `o/¶ÄP°:ž‚Å: ªÍP•h†%½)¨Ž§`{ zhˆ°­úO„aÿîŒÜÉðY—ò Gí1‡C¤ä³@àV@×çõì–w…£K±Ø[Æ¿%¤õÿ¢Þ(ð&@þ €Q<`Œ0™Ì ž·Š®·Ju€èѯÿõa×Û×#kt˜Y G#h8Iàp ‡#i8ÜÓvˆÓ±HÛ¿œŒßÛêß‹ù·›~ŒK¹‚W|À=4„ ô´@ìV@â(ºd°®þBX-ÓÈ*PðdÞu€H7º*c€ï5$×@OpH4†wly#ÐAàDáfø\ §ó¹~Õ ãzJ¸›à5(ìVÖÇ™Ï[Y»¢[¡Î<4ã¾æ¿6™†'òŒvófPô@ž‡)y€Ç=Ýï8*šÂlF(x¢žËêßÙüc½˜Üõû)XOq@O »\O”öó±gܬ5€nœ{ÿÏñ€w³Mœà¹µ^ì è,¢(LL£•€~Ò€Ò§*}Ÿ-€‡¹@ ‚Ãà_Oów× ;ñ€(e`]u¥6·,]3ˆtzðÌ×øšÿäT žÈ3* ÿ @ø€wH¡Á€ ô)€Ûbå9@ p ÀI ^Vÿ®&ïTî Àc@Ú “¬‹¥¶á1ÁA¢Ë‹vg±Zfóß“@à zc@À[FE@Ñc€=$#ÔI=ˆm¸MnpÓþw»ú÷|A•Ï.€»@a8Êã0 Õ€ *Åø=ÜÒÝW ûþÓK÷ñ]ýd˜ÛÍ?°À( |€PŒ ¬UvJõþ_ù¿·ö¿—+ªÝÎ0PÄQ—jó-Ý…úNUÕÞ›žº{Ô³èÀþü2+–ï©k“ixÜÉüd€þÒÀ¢€_Nøâ}_SL°_e°NgNã?/ý¹´ô默Љý1ø7¬¦«eX¾«ÿw²Mª€W€qj®ŒäXKÕB…zм©5qCô×^úÓè§Ñ‘•4ÿª½7 ™úŸÙŸ‚ÇóŒ*sÆìëeû3ÌNEÙ+˜`@ç‰$˜À!@ Ž‚µqä >`HnÁú!ú‚koçOÈAgVÂü-Õ=„˜ÿÏé ÀÈl ²(ø*ËvFÀ—ö?û…Ó¿ËñïþÔM¹ÞIàøù>rªÏ²)ø<›‚/²¯ƒFQ¦­°ÐyfT9ØÓÄðÜàí,oTú€MB ž@íC–O…úQ±¡*yˆ¾àÚ}A³AÄLŠ‹ùç[º°Zæ¬Ë~*S)x,@.pô¥Ý?wùsŸgÛþÙϲ;^-ì ¸@€s}èTä˜à£|–m†‚,3˜3)(É  "À ؇•Þ Ü6À:ÀÓA@Aw {XOÚ ¶V°y?¬/X=D_Cr Žªz¢SË ú|KVKbþ{hx,ψ 8LßqòßWNà\_x© € |c‚rL0Â¥>Î6ÁYf0eRPšA`<îˆm€ª=H®“cxžØIŽÞ"Ô>dyR¨7 ûóè'‡è ÀV#·¡[K¬Ÿ(tåÏj`ÒÌ"às»ádÙnø+°×H{y© @L7À8>Çgõi¶Œ™Œ²$ýI€ÛyÌT}pOÆsÀÄú0O«ÿÿ]¤†Û7òû³¾&ž@u<¹ l p^yMØ}Á ÖàqÃR‰M+ÎaµÌy¡æ¿&ùúê_­ ¶m€ŸÚMdöõ¾B—’ >Ë‘?p@pÔGv (K'P9 ø ÐîØÏã.€#b@ÊÀ] ÊÇm€®×»3ÿžŒ2×÷èØ9ñypäPç ¢U°÷M„<¬/hºÞ(€'ï¡ïD÷©“½™ABþœëãLÇ“?·O:–XP"øHÂn€£Þµ×;9&0d™¡(ƒ‚ñi䆻”€Ÿ:ÈppcÝq LäV@]ïWwèŽÿw·æ/ñêŸó`n[Ý@/n°3Ú6Ê;M8@œoXŸ^Ò&Ô«†?R‘;D_pÞ Îž˜‡..PÍñÌ|ù¹qõOàQ'ó|þ(àÿåØVúf§myæ,€'x'ÇfÛæƤ“๠P ×G»€}"€ÓN€0‘ƒ€Þº==yTÇŽ@»é{2~Oæ/rõïšÿóÚàî €H§r€žÀÓ`Ì[¹ÀZ¨Ö’¶½U{oÚ¢/ØêÜ¢/XN.¤í¯e>aµL«ów¬þƒ ¤º è³l3]ä¡|@€Ý€@\!ÀQïg› 0Ó åi”äð#XÂVÊ›x@­Ø%ü>è© à ø”§w„íù¿è-€½”;ÀÖsØ8hâÝ ôáÜ‚—]Î+| ÏÊ_WT …ùÏïGÁ£y…ª_üaŽ¾È¦€Ê$í'ïQ^Šo7 3Eîêý ŒO£:lôs•€Þ7Àj`‹ lçn·ö”y'€\]oq€¯ê)ù iÿ»½@ྠ¬Ò‘Ã`.B¼Ë’oé2D_pÆ.¾ö×â›ÐÙ}T®¥;«-¢Å¿£þ“cìôà€€sÌ02‹’i;f—Î$@å„B@gŠ\ëí\#|˜c*à SR|Àõ.€Ô°LAØ(Äl<èf@t à øt¼¿ÈÖ?¯ö¿À@®°Kä›Åm´™¿´ä"X,]„úØ}Á/®]€!úÂÍxý°µd”3éïnõŸŸW()<€ðaŽ ²¨ösõ%( ŒFHØ xÛþwóV®>É6Á×iX샀¾ ªHâ+¸€›­€|à†³bømÜÄÎÈpç®@OÆ¥8þ³á¬þÅìÿ—pPìÑ m€ókÿú­àÃ|ë ߸ `ˆ~ä4tzwæŸVV"•ñ;¯þàÑ €·]`DŽ ¾Ì¦`”ý"Q. 䌾ÒHàÜŽ ð^ŽŒ™f˜”Jl÷ð€E\ ‘èÜ€»³6p= (Æ;Tð…!%ÁÏÆ»ý/0ÿ÷ûްÚWWõ&fa+ön3t8À¹†ç‹AÇwÎû3FfµÌ5)Íß±úï¬ðe6EöKsF¹T‘ €‘€¸n€£>Í6AÅ fõ#Ü@¥Ç«i'€ ÂdìÈý\œWÿ\ÚÿbîPb‡3œVé¨V1·>œWpÊ} p#º¾cÒ?žyÕÒ¥^ý¿d_ý €§U oz€O³MÀ¸\›[ì䄌øA€£+`Ê0ÃÌþê¥Î<(pÀ/]©@@Ÿ儷Õ?×é.íGûkÀjíõïÄ–!³´"æ<@ ýÍ(}çöauÌx©WþŽÕÿ?íæ¯<Ï^’ ÞÏ1•EÙ®ÈÍ$Pb/o€‘€"·€í-7õE– ¾M¡w‡ùs'—A@Yb×a@©»b@@†ŸÁãêŸçðŸTûÿ¥¼À VêÈ%Aþf€P—\gvv^ó·Z»6k‹6ImüŽz3ÛÈW1¼Æ¾Ì6CYRGñ„€" D$0RÁHà#wEtõa¶ ƧR’¬Ôa@rÊxè4…ËÎ0à©dúozüç°úÔþç°ÿŸkþ/Ë  Ø¿mB·Ñ\ò m yWgmûo–Ëü×$x$¯PxFeðAŽ ˜L Fgö’ ä˜ ÀH€? Ï5»9F(M3Ãü>p€Œƒ€{£¸àk7Ÿ.€ó,€¬ `yoýóØû/Uû_`þ/ã`;¬Ô‘V¡[÷>z~òCô! ¯`§F£ élæ_$GÛßQfš<@!gxJ"x‘#¸Þè ðU¶¾Î ðµ“ù;ªÌ0ìHÀÊÒÌ0?Yš³¸nTbPè€è€ã,€lQ€ŸÀñ;¹›ü—zõ¯tû_èÀ`<8d é/Cô×<@Àµ‡õ_ý½óLûk‹ÊÄžëÏeõ¯V&¼Ÿc†Q™ŒÉ íå0¾H`¸½ÞÌ5•n†9}„Ÿ ùN)çdŠ: zíø) PÊüÃå_ý jÿ Üÿ/× ®¬úíøH¡ž7h¡ë}A‹—(àÂk¯ ?o pVþ¶?³Hš98ÀuÐnþŸe™at:òtÒ¾jô³GÈçOª Þ˵MøW¤ÛŠ+( \‡ù#|¥à…B ¼iïQéf˜Ñ—âµ@ð  Ds\·úŠ„ò‰|š¿ëÔ¿‡Sÿ¼eÿb‡ÿ¸Lÿ Ýÿï6ÿç6耫b`HîÈïPÐ6D_h®­…îÁeþ食”ÛøY-õ:žÖÂÃ*€óÇÀÿ²Í0.ÀØôëà0ÀHàM§"oäšàóL3XúRŠJy߀s€oàfW@ A€PóçÚú3üçëð¹Ûÿ\`Eo+t䊨 ¯`›€!ú‚Ö¯Þ˜£ ó?9hʯåøs®ý)x8<&¼ ˜2)—NÚË*D@FÁ ¼‘kºöF®éÊ™f˜sO…Ú„ J5 $pw(Ð.§@žÐ®Î-‚í[ý¼š?ÏÜßÓê¿§ÈÕ¿íùòXÞ›º(n  ž´ Î-x"(Ìÿòó²X-sR ógµ ü;Ç( (y%°'x]o‚Ò Æ§ŸF:@À8€‘@`Dïá¹Æ¶á¹…§‡çq'óÄÄ7¾¿cݬ±õõ§c4æâ“ýj‡/̵&ÐÖå ¤Mö%ˆ”œ÷ùó2­Á« †ÿµÿùÝè.ÿ‡å½‰X8Å`ˆ¾ µÜ0/,°Où+¯éÖ¬eÎ)eþKúvótx'× cÒ LH³•'è,‘@¡‚‘ÀÿŒÞ—®pyx®±ù­\ãê‘ O¬2®Šä’Uî3¯þꌒSËuä ¯9çHxôÖèÉ­ œ"€ã¿}"ÜæïmõïkøËÙÿBÚÿë¶ÿWÚÙÚ›\qä}è}ÁEŽp-ÿ¶Â^¾×ŸùF)ógµ |žn Hp…€÷sÌ0>†‰i¶â RF% Fæ >”©ðvŽ©ííœÂMoå,~êÛžµ–ZÁƒC‡Çlº}ݳWô&|€ßbžgxêð€cB ÀM7@)pþïy2~¯™¿/óç0øçuò_äê_®éníË{“k¢òp-°»À`}Áýbýªó𖍤ùïI íû(ÝÀ?e©oü4Û ß¤ÑŠ+H²DFâ!àØ»9¦¯&¾ùC”ÔßÛÓwfl¼¯rÚÏ:®ґ6¥b)»ÞføDÜ Àý9ÎÝ%@ ƒñûZõ‹4¡­OÙ¿jÚÿñ>Ûÿ°<\µ @_ÐÊ`ˆ¾ qذònºßŸÙ¢$”¥šSàj»ðÓl3T aÒZ0`$œ‘Àû9Æ³ïæšfÑŽKSdpwõ~;ž›S±JGNñÙ($; èiÀã¹ÎQ€ÐÃ3Ü®0!üÒ çs«ßëªßÝ>CbZÿ^'ÿ}¬þ¥þÜþï­b¾W?7yð}Á1ŽpzÐ C×À›ú£ïUÒüY-Oå*R^D2(¨@w(© #ÀŒÞË1µ½—cnù§Š·,†Z¿ì †úú>Zöáºô’ ÕZÒæm; Ô1ß.€\Qg£¹€à]L¿ãªß»ù7p4ÿúHß­­þåjÿ;À%±ß©ÁúŠk ð°~äÐÀüÓ@H³ŽiRÒüçõ¥\ŽSìj¹ÐÓa@$ƒ‚Éh˜ì•h˜”Ft$À¨(øRÁHàcÝ€÷sŒ­ïç—Myåû~jº!¬qÜýÆ[*欉§ÏòjxÆ‚»^Nôˆ.‘€Gp…7ÕÞ±µïüψ5~^æ!Ìüùîû3üWÃaõ/¨ýo€Ób¿GCôœÎh?0ÿ:&püÑ1ÅJ¯þ?O7 uÜ@gPðí¾µ€;5ÈÒH [þHàSé#s†;GMY2úçTUC~ÕÞ›j[Ê×ÄS×ÅQm|’« Àe P àÖ ¸¾`à¸'sçaönß)ëWÂü… þùsõ/ ýËÈe<!ƒõ‡xÌ\’;² Âÿ›Ê½º²Zæ²?†ÿ‰N$LI¥aÊ[¹‚@ EÅ>@@NP$ïôÀÖ²©ºâ‡'½T3¯& öýÖW×÷¨{}Ñã5Š[d¸#`/Ÿ(@B«ÑuÅïÍøE˜?ßÜ_Hë_Ôê_Þö?XˆÙ!Cô <†è .&v4k™J¥WÿS̼@Éã€=HgP05•¶˜ä0¸H õÃ\óªqÏN»ÏjµÞ ëîi»¹¥bóº8êêú8ªK ÀuPHÀÓ@ ¯yÁà \f¤‚F/«}®Æßî{Úß›ùónýs8õ÷êŸçðß:«7Óÿ¸*j‘l€f¾`ÐÔ݃!”ÕÒ•€gz5ü/»ùOK¥aª½|AFA d›7~?b~ª&Ug­»¹îÕªÁëc©mb;‚€.€·Y¾Q€¯y¾Àµp8:n€€W…q4ýAÅëª_óºï_ÎÕ?—ö¿5@õ#%€S< mH^á¿-Kõ®þ3Ê^UÚü«“‰‡;•Õ{Ãü5•`$àÿHà3‘ÀÇ9æ¶O²Í¾ÿ¨ênM'Q½imúÖ[*lˆ¥®ÉÙðH t<Â@;Ø¡Àc‘ ß«é{0þ†pyÌ_ªÖÿ¶XWÿ>†ÿVyþkºç¬7K0ØÄ`ˆ~äeU«¥) Tš) €I§`z* ÓÀ0PÏ…BuZ?Í1ï™õÁ‚DŽ'ƒöï½i‡oˆ57y”© °WÀP ð>`À+x(.ÿ>·Ææþç>Âsà¯=÷÷aþbÿäZý þ³@‹ßaPÐúŸû¿Öªøsï?Pò4@×A@&‚)4ÌH¡¥‡#1A È |šcnû4Û|`îG  ØãÄ릦À>É2ƒ%…€%…†Œ'ø,×¼£rè´¡±uÇ:8t~ö¦X²Î]@ª(ÀÝ<€ àÙ ð RAA˜wÓ÷iü2˜¿Ü¿½õÏñÔ?9WÿÞÚÿþor¦D€+†è —©³Å—V|«e®úsï¿°­€òälþ®0#•VM$0#Ñ‘€!Û|¶èÏ µóœ ë{l»¥â»Íqä’k€o dÀpêpWð Š‹éû2~®æï-ójþ\[ÿ|öý‹Ùú·ÒÍêY‘,ƒfþ0D_PoÉWá«£ßPÒüëuŒÏK‰Ã€|íx'Û3]Ìߨ)¨ÀH@P7Àtû¨ÙÖ‰â„:»ö½Zõ‡­)%—~‘! øÄÞ`€+xüç|ü÷Ü¿·Uÿ!/«~¡æ/Wë_Ì꿚ÇêefÉB©žqpmˆ¾`›ºÚÿ!¬–9áÏ£å![ßÈ1Á´3í%5J$PÜ‘@ÛçÙTÃÜ¥ uK«-æ-áû‡Yzm‰#øD|!€Kà >»£™ À]7€+ð1u„‹ñsXõ+fþ|[ÿ^ÿ¤Zý¯¸aõ_Z)å3-ZËËkÔuE0«eΨ©ýïÏ­€Ãr01•j7® k$æÿH LÂH€öo$p™º£øÓκ¥Ïߪ3Xo®M)5m‹!ǹÎðNÝ ÀŽÈeøá7þ·½­øÝ­ú•0ÿí\Zÿÿ¤^ý/K — iOá —ˇ•w^àÒþ÷8 `tß÷'íÅ0Po$PMôÌ´[ІUÐ0@hý«?Ú™R²µ6†\S<Å® à<àŠðbú6)ŒßŸæïqõ'Íä¿›“ÿФ~vEÀ…Aƒ ê9:ܾUSû_γžö…üІYým%`$àÿH€¹½ÄZm©îÖ«Â]–꟞ójm,ÙWCZùBÀ^ 8ÀU濾?óß#ÂüÝ ýñmýsüã³ïßÃꟕ#â;0x ñ>ƒš¶7k™&þ#õY|·~’i†ÙýhøÁ^b!#uDYæ+SŸ1R£Ñ`Ë?@`àÐS³?­!ÇwÄ6ÎÀ£À¸À€P(¨ç`ø®¦ïÉøÝ­ú¥4>CbÌ_hëßÛê¿Á0O–a;Ñ;rŠjf컚Õpø¿¶¾žc‚™ýi˜Ýö  ÐVÁLêš)‹Zk-©ÎB[ L5Vn ?2tNþŽòùŽh²og4¹²ËËaA\ ÀW7€+ ø‚ŸåáßÇÕôù¿£åÏg«Ÿ ¡?¾­®ƒæõ%œ P"o:i$P|{ñ&¨…îh‰¹3]k –î_ù·ÝÑT½·n€7„–7Óçbüž²~¾«~¡æ/&÷çÒú÷tãßÚ;+vȽòoò w=œW(6¸VS£¢ä¾ ðõ,£d öVÀôF˜Ý—Àü>öêË0pJD×! #L[çîwø’8£šÛFí;Nùûô?%n|*ÏߤPPÕ‡À{9@@j3øVÁH \½‘@뾉v‡òXº4}¸ì…ºË÷F“Cû¢H›¯®€;ð¼ËÿŸ‹éó1~®æ¿]Bó•ûsüÛ¹óƒ%±J?Kç6ˆ€‘¬z¶Z ‹œßírî0¦›áÇdU}ˆ(¶H`\àEWvÌÚñ'´6”°)þèSsLûû•ÛEÚE®ú‚o@ ¶öó0}.Æ¿›ƒñs9áOJó÷tÚßÖÿÊÞäÚºÛ+~ð—>’WxÖ¹;-è,}Á¹‰Ý>ÊÆÓ‡Õ²ýO®¯æ˜`a2íå 0Pw$PzgÉŽ]?îÊDCIÔ m(\Õ÷è?,¯î‹¢¶í&ç¸tøÂ¯Þ›á»Nõ{4~7í~.-Ñæ/tèσù{hý·­Ô‘“û?²þΟÏË#y…çqÐ`dUÏ‘Àg†X~§–ír >«7Â÷} ,L¾^¾@#õEew”Xð?”Ü:I­î×ð€Å²7ŠÝEšöE‘³îºîf¼V”o£w5}çÕ>ãç³ê÷”÷+iþ[ÿ6¶üZ qù#y…ç$€ã¯ýµø&U=ô¬–©“Úü÷$Т¦%¥€±),J"°(ÙVRCFÂ#n pqêàÉ¢5¡üÑ!86re|Ãßgüy_45c_iÜE.íãiæB ß›é‹1þíͳæ/4÷_¥#×¶<4ók= !çNpx‘h’[pTUz‹Ž~Ü_·ÿɵàñ<#¼Ÿi‚Ÿ’ˆ D@€²‘T‘Àhq‘Àå)ƒ§Ü†V„R‹ œ¿*²ñé9îï_bÙEêöE‘Sû¢H«³wgø|Lß—ñ‹^õË`þZÿç÷¾ñÓûPªº:÷ýa–^ä68GÒb:êz°m7žPKþ/Å à3z#,H&ðSá?öQ0H‘?˜ìH CÒH mêÊ{ÑvPj¨Ú{SÓ‡Ö_yÀR¾'ŠìßcÛv¸7š´î&mžLž‹ÙûZíó1þíê6ÿ¶š[+›Vý?¨­U噯•wûg^a³'à mÐUU¿ ÏlPKþ/Tö§`qÅI×!@ŠnWø¡?F""‹ÓOìƒ 8(°Z»žœ¸9ªá£¥ýýÝrÛÞhúåݽèªÝQäÄî(Òº;Š´q2ýhÏ«}>ÆïmÕÏÛü}Mûó4ÿõi%ö¼¶ðïõ–zÕ_×mÐBÿ™WxêŸ.~$.«îdµÌfµäÿbw|™n†%‰¤\A#UGç§>2oòC_· ¼¦[ãй)ûŽ}bW=sW9´;Š\ödø\Mß“ñóYõ»û¹;ÞW ù·­‹£Zׯ“Öµñ¤m˽•#k cÔºÒ÷¤‡]pG~^a›+€Áú‚sj€ýjÉÿÅ þ+×UI–$Q€‘€_"‹Óþö´ T§€½ÅU7|úû„ÃL¿cGys—í äk;£ÉÅ1äôŽrbG4iÚMšvÄ3bŒ_hËŸ§ù_]g>¿.Ž:¶õ÷ßü4¿{'?™î‘ŸW°Ò1‡&2 8¥º_ðÄ­ã`µÌ5µäÿB'÷£ÚÍß[$05°#«–Á•CÑP(Û5È`€PÐ@ˆ³Z4–.µ±ôCµ1ô§µ1dgm is_ãçiþmnÌ¿Íaþ5Ša烖aAüW’?°`^¾“‰è\Vå–æf-s\-ù¿9€/ÓͰ4‘ÀRÛ à sí g$à€€©òG•‹Úf>4¹_û(OH°XºÔj»×ÓÕ=N|¸2aïßåî{Ðò—Z^Ýsï¤ [cɹ-VýžÌsJ1ìz`Æ‘]Z2wžÖ¿Á0/loqÕM`. ]:Ãg¯±tÉÏ+<äð‘QÀUU«-ªUKþÏ^Ì5ÁI¤<€XP"˜ÙÉ"™Mš‰¯s ¥Z¸ed|~^áeçøYDpI•±›^vR-ù?ßAÀ ý)X–H`Y¢pÀH@ùH`Âí%Ûñõ‚B¡T ú¿?êâ;"¢€óªü%O ŸŸ*ö<€²T³,àmðýLS»ùs…Œü L¸½äXgi!¢P¨ÀÕcyæ‡Í+l“šUû‹6ëŠ>¯g<­/„…‰–% @L7 ³F•F> àD­%°¶¡P¨N©Çò ÷Û†Í;€(`°¾ Qµ¿iSnY«¥/ 1ÿz#©ùs‰F¥šÁš@Àš`‡€ù `‘ ) ¸B€?"-•[Âñ½‚B¡Ô®§s ÒË3^p€]€fUÿÂ-:¦FT'EàÍ,#,O °Üb `I’ü‘€æ(x¡"W°¾»ð/øZA¡PÑþ×›æ>fßj.œPõͦÍ:¦PLL1Ë ®1ÀwÉ,ïM8CFþ¾{°²_)(*TS^ÓíѰ¤QžÏ1ÂÏ:bl‘€)¨zzúñU‚B¡MO 4N}Üéšy.à³ [P¥ú_ò-=šµÌ%ºÀôd ~Ö· g$°#A‘À”[Kçâk…B¢žÌ+ø£' ,¨ ˆ_žÕ2U\`D¦Qvx#Ó«µVÙË`$ ŽH`âr_!(*p ð‹'œ@Š(`H^ጀøåOÆÑ÷úã@O5#™‚ÕZ" 0P,¸ôóçGã+…BªžÈ+\ë ⣀‚ÝñËC¾¥ «e®øë@çz=ÃÕZÕvàÁ ÌV0˜&Q7`ú­¥&|} P¨@Õm·•w{"Ïxî‰<#xëðŽç4VË4øëÀ«ÿ$ ªãI;ð© `© Íï‘@3¾>P(T ë©4CÏ'òŒ—À5 xÔw°3`›/˜ÑŸ’ÕüßÈ(„5ñÖÄÄKJD ;I$°ä™Y±øú@¡P¬§šn}ÒÉüù@€×.€¾psÀ|'o_ªôÀ®5® ÖÅQ¢!#ù#Ë-¥³ñÕB¡]Oæx2ÏOrQÀú€ùÀ`eµÌ)íx.»ÖÅQíµÖ`$ ŠH íº: _(*5ì¶ò°§òŒçž²À“º^¢€]²z¶Ô ±ñÌúÍ{rýÜ#þ;EúWÞîsÀ9ðs<ëãlå  ¨'˜’JŸƒ!_(*¡Ïä™F:ãøÚ@¡PÁ g²FÆÍ3¶9×(àqßQÀE‹¥¶»ä] ƒ¥û}Á%»ž—š.BX-s^É’MPCñ†Œà+…B‹žÊ+̪¿G—,è"õÏüPnáÎþ)éו€ÕqÔÄP¢ @ÎHÀ ýØGÁH …[7`í{ ÿ_(*h:¹…¿s £€KRÿ¼2D_p¬ýâ<ýÈVÉ?VË´¹9ÌDš6ÆP°1Æ7È ¬P0øIÁHÀ?ôÝ Ø‰÷œ¢P(”?@oÜ6To„¡ú@lŸW°IêŸ÷é{迸xè5éÏðp)05ÑÔ\A@h$à€€U:ŒøBÀ’'¾ˆ¯  ,4ÈÐõ½ñÌ3¼øío¥^ýÖrƒÔ[²•ÚøDNÁ æ/`$ a$Пރ¯  lzVo<ñŒÞϸ‘QÀI©;¦Cï.ºË¶†•‡Iú¡œlQ ©FØM †O °#I#…NNÃW … &½˜[ö¬ÞÏ:€—.ÀS|¢€Æ:©ÞÁúÂÍî|ôé»™·d9¶NO2æÊ+ˆé¬QQ$°DÁH`n{Ñtèøª@¡PÁ¦r ÷œÞxÅÒF¦ÙRþ¬/ýiLºg/y9àà‰œØKlC`S4%ªÐÙ"*…"Ùy¥Ÿá«…B™B^È5>«7^}Ω À5 ð4>(éê?wä/~z@­€î€J3I ¤asŒÍü 6ÄÉ ¸BÀr/òC$py³aéoð]B¡‚IÏé =¯7¶=¯7‚¤ŠË3žö€t¹üË,Ë¢/¸â¥ÀJºÀH}À7ÉføÅ΀‘€š"&IÉ…B¡ü¬¡Íá/è-Ïëà¾འP8YÊÉü!¹»}øéEI@‰C€ÖÅø%†¸…ŒÔ ,ýû·øº@¡PÁ¤çs ­ów"£€+ù¿¢“¤úY‡ý¹&ØCDAFòFËÿ:é+|] P¨`‘Á`}Qo<ù¢Þ/ú¡QÀyÆKOþÚ”.ög}æw¥äîp ÄÛå€%: jíà 0ð[$жoÂz<ü…B>¸¯4öE½ñª¸BŸ(àé<ã¾ü|qÛñ,kD~^Áå:™?—(@²Û›ÎeµÌUg˜ÑŸ’ jcH‡Û ð 8  &VþHÀV*x¡„‘@K}u}|e P¨`Ñ‹y…¿w6™¢€Cˆ2âê “ŸWØöϼBð.¾zU²ƒ€šµôd¹îx;Ý;¢‰l°)#±‘À¢œ’Uøº@¡PÁ¤ë›]@T wœùc†äçîÈÏ+„|7à®H2¸7­ø&VË’ Jû™`g4 À'Ä`$ E$PóâìwðuB¡‚E¯¥ßôo½±õßn@ª(`hžþ}w‘¨³Sòó ‰Ãü=A€‡( U’«e»;X*˜•`†]vØM`GŒ Ý€hŒDt®¿îWøÊ@¡PÁ¢éÍð/ & `Þœõ1?ç£y…Gu¾£€‘WEÏ´è˜bwæ/%l‰!°;šÀ.{íŒ& ˆ€"s 5 aøÊ@¡PÁ¢azãÿÖÁQ2EWjæ w>¦7½öhž±íѼBWD ¶¤•=àÉü¥€² awi/gØ)”ˆÖ) XŒº€Àâì’møº@¡PÁ…;‡9€LQ€à€Þ¸o¬î±<ãåGóŒ`«ŽÀ! ¸ldè*è?!-:¦Fnøx€±¸ƒ€ @‰H`F°é…9âë…B‹þkúõKz#¸€(ày/QÀ‡ùÿ$äç3 ¡åî~,Ï9Ï.ÀeÁOáÍüY-TšI4Œîk‚=ÑÄ#`$à÷HàrÝDëÍøÊ@¡PÁ¢ÿèûÀ8GyÆó"†ðBË+<ÒxCÀApê“ouwõ¯kÈ4Š€E: öFØM¼‚F~Š’ÈaÉö’¢P(”ŸõZZqÏÿèm/éà $šø^ÈÏ—ŸoéòØ@Ó²ÇóŒmp…_Q€ø‚BØxæ°/ó— 6ÄQ°/ŠÀ>€‘€r‘ÀO‰äs|e P¨`ÑËzã†ÿêð;pøÎ|øX¥^ÈÏ÷Ø@Ó¿·Ý;€(ÀoéÎÝüBØxz—Õ¿ðdNA»ù;j¯P"ب`$°Zå‘@õ_'Ý‚¯   z)Ïô·ÿêà€ÿxéˆŒŽ 9ýï¹ç 7?‘glñ|!€W€½eü(.Æ/¼“n„ý½ˆG3p@€¢‘€äŒ$>=ðê–w…ãk…Bº ÏM¼ù¿zãyp]€yB~Æ'óLí׃÷.·(€óøüÐÙãºò— ˜~&8ЋÀ~{¹‚€ØHÀÛb1ç@äÖ( ¥½’gœélþÎ uPòêwY|¾ý†ù§Ãü]€+¸tZ5 ·ù­-³™ùK“’là 0ðg$@äü¡P(”zòŠÞtÚð…p–ïà4õöÔ¸'õ…—Ÿto]ŽQ·m€§úŽŽv½éK•¥Š;`‰–‚ºž„3`$ x$° ß(*Ðõܯ™¨—õ¦«/ëMà ÄF¯ÜÅŒçó³@ÈSyÆOåáI{q_[É+8Ïé`µÌJ¾æ/ÅA@›blPד@]/ß €‘€w:Xugù7øê@¡Pßþכ潬7£¸DÄEç¾5Tõäó³½þ§1÷Ùo „§|¯(@_àûB6žþ «eÚü{’ör€€\è‘€Véä°ñŸ3|u P¨@Öð{è¯èM¸€˜(À¦Ñ|~6‹ÅÒehž±åéëWóêx‹òó [¼·4Âj™z!æ/^Í(ì| @ÉHÀ:Q$кϼZ¯ ЫÿÓ‚Wô&xÅ dŠZ?yd¯mÓC󌷺v$ˆNúhý"BÍ_,¼›n¼œ!ÀW$°7H#µê‰NZ,"n’B¡P(?Ë0ÈÐõU½éü«¹6à O <ÁgøïÍ?þ—óµÁO»€'@€ÕOxYýBY-sÖ_PÔׇÜFüæäŠ–%¼…B´^Ë-üÕkz¼šk+WpB£€Wï)Êçús7®Šª7¶:Ýxˆþ󧯞WÿñÌ?Ř¿X(ïc‚C‘EЇŒäˆ¨ øú@¡P¬×óL?¾¦7dŒΗ—×tãús=›gÜêrm0H´|eR¬‡Õ?„4k™}b`I"æëÌíÀ¤ˆøB€"‘@œü‘€+xËË3J‡àë…BîêŸÊy]oj{Ý äŠþ¥7¸þ\Ãÿ8æù·zéŽô…'@ã!Ž€AÖ®¬–9/ª“…À²xªxƒŒNm}äûT|… P¨@”Ac}=×tàõ\8@Æ(àb™ÁÁåçúÖhM~Nol}ÖéÖÀ¡> @P0иÊãÑ¢cžkþb`wO‡#mŤŽv`$à ØÍoþ…¯ ˆz#Çôõ¹&p€+H.âò3º>¯7ssm°G 4Žòøƒ9õOj¨ P!0>X–@Îï3¯Öâk…B$èM§ÞÈ5;8 hùìŒßrù™^½»è1w×{ІЋ ½HQõ:Fð5ÀGì 0à<»mGfíŒÅ× … 4½™mºõ\S[𢢀<ãvN‘„Áú¼¾ð7·Jt€€¦[eV+ ÞK3‘Òê#å\! X"WÛ X‘@.ì­Ú{¾JP(TÀ@®iÇ›vówFmäùi}|ý<ƒ¥ûszã w×sxÎ\2 2tõ :f>«e®ø‰­\@@*Ø\‘Àz# „µZ­]ñU‚B¡Ëü _žkWjÀ¹ ð’Þ¸Æ×Ï!/æÒ/èmî® –# x4ÏxÉ`ðòþ>“T+æ`çz=‹ÿ•ÀÆþF8ê #É#:|• P¨@R~¾¥Ë[¹FÖÞºB¢h£ž›~‡¯ŸéýûË~ó‚ÞxÑËÕÁrDm^À,•Fdò€±I&8N¼BFþ‹VêÈ| P¨@ÒÛ¹Æioåá­\#p1QÀ0½q¯Ç}öv•½léý¯<ãO×Ë´ú<’˜Õ­‘>O7ñ€qI&h#Ð`‡)» ˆ¶ ±áë…BŠÞÐÿä0È´1ÏMëïíç±”/îõ¢ÞxÐ˵ÁÜ @PP¸ÓçÆjécR€ã€§$˜àX±A@˜ô0‘G¨‰•?p‚€¶-C¦?ƒ¯ (z+§p¼3\‡Y¢€CÞ~{î¿ÖÛÕÁRDOyê 4Vzý°À¡¬–9é/XKÁ±0"¢ås›bT ´m~Øw¶…B¡PjÐðœÂÜ·sW]@Hð*‡.ýüÔ{½v#î¦+þåýÚ`Ÿ]1ó#òÇû>ÆM/;ã¯Ã€VÆ\w D$°OÁH`‹/ˆQU$жߴ6_+(Jí²ä[º¼“c<ñ¶ówÞ”$ (<âíçù<°ëm>® –< p‚€ ůUùÞÂ}îÙyÏKq"  ´€‘€,‘Àµ£dE|µ P(µëÝlÓ¼wrŒðv®­|AŸ(ÀLü¨ênO?KÙë3óo½ñš·kƒ…D¼. Xxªª¸ŠÛ.'ãé7üqÀÊX Žõ ¶  H œÛ[¼¶'¾ZP(”šeømIâ;9¦Kï䘀 ðŠÜÌ ¿‡ñxêß÷ÔÒ~/é½\¤T°óx¬wq<«eZÅÀS¹…¼ 1œ†Æpš3`$ !øìP͵–ÚîøzA¡Pj„¼›kÚònŽ à€™¢€¶%ÕynAÄ¡ÿÕr¹6Xö(` ñkî¢BX-sV鳎Û 1œ¶™¾ôH`»‚‘Ài#F°@|Å P(µêƒ¬‘ïå˜.^;È|òç1=ÈrK¼]¤d`ø×·É¼>HVËŒ Tš‰78ª1œ†Æ0Z²Hà‚‘À.#ÊEÁbA@¡PªÕ{¹¦åïå˜à]{9C€ôQ€™uw°„ ¿‹™ïó QÀ ÒD×|NtƒÎÝ7ù)¥·:@‡n€@ÀH@ÒHàXï@¡PªÔGzÒç½Ó•÷rLp#½B€(`ÔóÓr÷s ¿›Åá %£€c¼?ÌZKm÷æxæ¨XÒ‡ßN€¦0Ú3`$àçH€ªG@¡PjÔ°ÛÊ»½Ÿk:â0gxGÀ<€¯S_Õ›¶¹û9Þ¹»è}.I\¢€§òL;}¨çî˜Ø[Ì0à/‰4?§¡)Œ†¦p €‘€#z _5(Jmz?Ǽôý3¼ïdˆ.Ïûº:Éõgøâ‘‰ótH?£€/Ÿ›’/øƒeµt­[ŸÊ)€4œp@€·n€š#hù#( Ä“(Jm‘m2"Ç ðâ£ÃŸÊ'Ü`þù•)/ëM­\. R$ ¸WkÊkº þpO?ò]º×H3Bs8mƒ€à‡HÀu½ä°-V-‘€yî@¡Pê‘Á`ý ‡b¯€g( 8YSÓÑP¿2NÿŠÞtò~×+4ˆþ[t¤˜Õ2mrîp@wŠD=1è±Ô®:kÝÍøÊA¡PêYý›û Û|mDŽ\!@Ž(`VÁÒ?8ÿ÷©‡Çõ{5×t‘ë…AJGÃî¦'‹þ DhÀu'€3tŒÔ ìkÜÒޝ ¥½ŸZØëƒó™rÌðäŒ ÷W¬sþïÌ·Ä¿¦7pm°RQ@Û˜ªr$ù°[2Ê~'¤ ÀõNw€‘€ª"‹P(”:ôaŽy•Ãü!@¦(à°sëßøðø_×›.q½+ÀOQÀ.Þûÿ½‰gó€z# ‚)ðë…B¢#r…B©Aåš_ý(Ç ºoQÀ{¢€Ëß­ÉŽnøwúÛ빦kÞN ôGp#ΗôC?;dz¶àßÙ…¢#i @\$`>x …ò³ Éç˜Ï9À;ˆ‹ÞÊ5‚ù‘ ¯¶Çwzã\Óo§Jˆ½0¨èïïüÃg3ÊVó€ÏÓM’@ D|D{1ˆ¡â](ÊŸ*þkqÏsÌÇ>Î1ÃGöòRDÃsõ¶íÏoæšþõF®©MÀ…AŠGÏéW rlÛ+teµÌ>0£?%`$àŸH &–4á. å/B>Ê1}ýqŽå 2DûWN®IÐh4šá¹¦aoæšZù^ô²$ È3-•ï/"ßÒ…Õ2§¥ä ø%8ÝPÓ†¯! å—Öš¡}õï 2D­¥ÏLÿ‡F£Ñ Ï)|è­\ã%Þù1 0 ©Èõ/ãä-ãúIy"àë…¼ 3F|!@ºH€œì P(?é“óÜO\Ì_Š(À Ï5¶}x3sxnáÚá¹Æ6¾wøykàVEþBX-cà #2}Ÿ(Ô  þHà4Ìà …R^g›?ú$Ç îÀ[𠻆ûè(x‚€rÿ§L&Âj™#R$šÃihŽ?p@@}¤ü‘€+¸‚Àå#sõ†ê|¡P(%õi.õçsÌmðâ£É. ¼$< 8 áÞ_j6/ŒÕ2¤˜ È \iøru?|¡P(¥ôQ6ÕïÓóUgó÷rDo ¼0ÈQ@a“âI§þðíýRÌH È 4˜ÖÜŠ¯$ ¥„Æå‹ù4Ç|æS7毎(ÀÈ; xEæ(àùÜÂ)~ùËjN/%v@*ÀH@–H ußÐYz|-¡P(¹US^ÓÍcnø_Ž>µPe+{ÐTl¨êé·¿´fmÑ&1s’€D‘€Âå°?J•‘@ë¾Á–ÛðÕ„B¡äh ÄkZnÈ1ƒ!Ç |!à#¶@põÅÜÂ'ýþ—Çj™­Bçv÷"òB@¸wÀHÀ{$°çÁÿÁ× …’SŸe›¿t˜¿þ'  UðŽJ¢Pm0Býþ—Ch³–iòOåz¾`u% 8CFÂ!à—z¾žP(”\õÇòß}–m†Ï²¯€.÷(À¬Š(@‚ ƒvHzóŸ5<0/LȽ«ã)hޤeƒŒÄE¿ÄP›ñ…B¡äз¯Uõü<Û|ùs7 –(àm•FÿÒ—«ê/³åßæ±ZæŠ+ÌëKù€H۟쀑¯nÀ¦rœîÄF¡P()dÉ·tù<Û|âól38À]@Î(@è…A|O ”# (~íûdÕý¥²ie7l¬×yÞ87Á|‚%"Ãþˆ¢e‰Ž7ÕÖFàë …BI©/³MK¾°›¿äQÀ.ÕþŲڢ¶¾žå~;àÄ>.ਈŽ* ìS0ØÒΞ˜¼#_W(J*™îõΗÙTëÙfpb£€ƒ; h{ïþ1Rí_®ý¸à-\®ö*‰üqz Ê"¶ã#W߃¯, %…JïsÏWÙæ¶/³)ø2›¾]€O1 اú¿daã™ü’H»€²¾&Ï –H ¬sGuCgÇ× …«ñŽÏ™m¾øU¶¾Ê6·€œQÀG*‰^—( xýžQ¿ ˆ¿l0Ôvw üwöÛG¤¡¹'㔈$œ ¶H`ÿ–ðÕ…B¡ÄÈj°v™mj™m†‘Nà 0 p Ï+zñX]x|vŸfíâ ²T³{èÅØÊD¨w. Ð#íÞA྾P(”d™·8Ìß® wða G¹…3î/¾å–^¬–nuü+«ð:ôb ¹§ ÀÑ ðÃ…BrF»„GgÏ8§ÃW …âÝ Ö@Haµ© ›‚‚l  G`|œe:À<üÍo?È1×úó wïf¾íQ¹a^Ø}Áå‰)f`ã÷€‘€Z"¶†—| _}(®ü™L²ƒÎ$@g¯à. 0©0 ø0‡ª/VÞ«|XM·r¨¥JF.Ðj0B;ÍÃ4X_0J3Ù® ö ø=Ø?°b)¾þP¨Î«%.Ñ1™d“I€ñäš//)]k¡-=>È¥–ñ9%Pê(àÓ?•¿Ý©¨çž›xóYÆU¬–öŠc0Pg$Ð5 aøD¡:eÛ¿kQ&9á0H JF_ÞY²»ÆRÓË’oénhÖ~c:'ç)>¢€ƒAwè Éýêñà«€‘€¿.ºÌŽÞx7¾ Q¨Î%ƒÁZ”A--Ê$Pä|!@làEÙæ Åÿ˜ü+«ÁÚU£ÑhFÞRoЛ~œc^ÅeW€•¾8¥_§|¸þšV|Ó/‰ô%^£þÓ›#äP)$°;Š@ý?fŒÅ×! Õyôã{?fg’Ó£2 ŒrÊEÒÌ|œcj]@[o×h4ygÀ×ÚOsLìÇ9æ“嘯|(à ¢€eú!›×‡Ús`$ÐÂŒ¢­(T-ÀBÆß^²vtѸ@€ÜQ@¡°(àtùƒß€.οß÷#æ§~’m^ô©€»>”! øè.f>u®1@<ó '‚Hà„‚‘Àa‰#ãÿ]8 ŸV*8dµZ»~Aö9ÌßeN u Ã…A—LwŒ*ª)¯éæúû †PCŽy•TpJ Kàü–E[ÂñÉsÑ9m‘ŽÕ2­œ!#¿Dú”œÄ§… |-ýh^Ò˜ Òòu¯€/ȸƒ€ö.@–yiUqÕMî~¿òa5Ý 9æþ½0¨C í›7¾ÿ=>yntfȬXVË´ñŒü \<3ßoð‰E¡Wóž² “A®É 0Æ ¨& ÈòØØ7ïƒEãHÐ@ˆÃü]ÏP* p…€î*úŸ­(T€™¿B'ÜZRU‘N Ü^RB€Ì§î7¢ê~_[çFÿ}JôçY¦9í[E^,U0yøìÿ‡O ¯Ô¼%œÕÑ—@'Šüq¡\:=fÃßð‰E¡Cµ†ÚîcÓɺŠtŽ*O'Pžq#ø# 0{ˆè;Š×­µ6ËïHÝQôûϳͬ·Sÿ'ÄF_Þ_ÎàÈ=X% ‚1Pàô@¾Ý€Ã93ðiE¡Ô¯EC+ÃǦ“#cÌßäŽè,Â' ¸bÊ¢Î<‰ð™–7ÞVüþÙæs’\$ò”@—(·üñÑ…—õ[$®ÒH 9Ö¦|bQ(õÊ2h\Úø4rv\:±öº¡ àÿ(à’9‹Ú5êÎQ†….½j ×߯¦¼¦ÛÈló"_ù+ XȬLÀ§§šuÌrI ˜"0ÕE­'þ»ð?ø´¢Pê„LH§Þ›F.O#0>_? 0Ÿ§²©Ÿç¾2÷;—ìä})Î*ãªÈ‘Ùæƒ#}¤Tà åÏN{ŸD:;Är¯dD‘@“‚‘À! PדÆö ¥2U­ ŸN~žFÀQãÓl0Î ¸‹ÆøêdŽZéLªþ‡—ø¤ªÊýþ}.šÿñüì‘ÙæÝr\,E`¸³È‚O¢Pzµ@VK_”0ð º­-_U#å¢P*ÑŒÛK~ûM}bb ®à dŒ®0™äZÙ%Õ‹G,´·xïMbÇñƒ¿¹¿ ›:áþ|Š7HŒÈ15Z,–.ø4Š{Û¸u’€·n@ FB àHnE>­(”Um¨Ž©Àìú&nû&†‰öºD_ûŽ®g’ÓÅ™äBq&¹0*“œûúŽ’Ss^™ó'‹ÅÒ@ºýïåƒÊã ³¨c\/ ò¤./*Y‘‚O¤HÕZj»7k™&E!#!‘@Û™);^Ä'…òC· dÁ•C+Sés•h˜4€†oÒlå 2D×J2È…ÒLº²3Îè5sIDATòþÊp«ÁQm©îQ[[Û]Žß•¾cÔ£…YÔE®wx¸0HÖ(à›WæàQ¿RéämãÿOP*ˆè‘ÀÑœ±+ðiE¡”Õ–Ê-á“ÐÖÉèk“ÐW+З'  /M@_ü&>7ÑV—&¤‘«ÒÈ5—( m\:¹:6\s€³åédߘ4Rûu&½eLÙ4&Úóu9úuÕ<:ƒ>my¨²`öÐ^_º*w¿¥¦Wµîf¹OƒÁj̦~àwa¥È<€s èáIâS)uϬ—”ˆƒ>¸x~ùÁ¿ªíÙix`^~ƒPAß°BW0@(„X,–.ÕÃ-=,ù–U­ºiÞåa³î¯ÔV¤’ŒñäWߤ™LìoêM'Ó=,šü.U-¾É’oé5oؼ0ë CWw%LÞ“æ¼:'Ñ”EðuT°?¢gø ‡þd€e¿‘¤ŠT|z ‘@ã_- Ôöì4GÒ{.¼g}¿E(T€A @ÈØ?Œ}œE]ðuaQÏ ƒúó³2 4h‡ÁbéÂj™ã²C€$‘Ý™#Z¨®ï¡2€æHzLôß …Bñ|ç ´äŽ’iR\¬ÀÖÀ+µyf¸jØmåÝ|Ý‘ÐjÉ=L"èÙi# ñoU=79cOÚ?skPAP¨ ‘Õ`½™d‘U/ ò|!ek>2Ñ`õËâÂñ>3äºvùGAO„¬–9ïwÀHÀÔ‚U=«í3³¼åø¼O$•n­§¢ñ‹B©ð2éáIÿ"YÔOùŠ •®0ƒ'Fùó3{%kdì¹Æýþ‚eÛ¹£ŸU ¼E± x‰.5ýmæójyfØ¿~ŸÜáóN*;M€÷ P*’ÅbéRr{ñ]¬HP:ø›ÿú ”ò5–.ÃsMÃßÌ5]z3ÇØ9.e„Êv.@°Ÿ¨`$p(’ÚÕ¸¨1\ ÏLÝ ‰77GÒל?ëS¿„[Q(•hÖfiéLº^̵ÁJG_Þ9jF£ñK¤hÈ5tžkš=<רúf®©ÕøðØäNó°°™¥* ð…€k 9c T‘ôE×ÏúÔï*§á«…òãw tìÿ•¿Îd’Vï)p½0èË;Š6úë3‘WýV®qùð\cÛð\# Ï5þÒ©f›@!~éø‚Œ\A åì7¿äª#én>ëÖ“¿ùOìB¡ü 5ÌšþE™Ôæ"þ×»…¥¢€/ï5ÛO†òVŽiòð\có[¹Fh¯œÂ—:ÝÃæ•üÙ/€‘¯nÀ‘Äâejx^š{ÑÇ<|Îν´èOø:F¡[õ‡Lpò£2É™Qnn dxtÄ@€ ( ×ô“?Ìß0ÈÐõ½qÁÛÎÆo/ËGó’:åƒÔ¢eöú0ð ‡#È•³_­ý?ÿsØ tµž}iÑËøjF¡äUMyMXù%+œo ôxm°(ô1 ( È6¯ö.…¼™Í$¼“S¸ó#¸€ãöa:qûøL¿ßH@… 5GÈ Ž 7B­Éh‰b*½~Ö4œyéÇðBɳêŸóäŒß—fRÍž® VypTé•ÿ°ÛÊ»½—m|÷SË;9&p€3|õçrªS?XÍ:f¹ß!#vhwáä܉¿[nóë èKæ^L“×®K}ùÌ¿—dàë…’Nµ×÷w{ÉǵÁ¥Nà jŒ>Ë1_VòK¾¥Ë{¹Æ/ßË1î~7ÛtíÝ8ÀvÍÙÙ¹Éò¯U7±Zæ‚* €k$Õ)#åàç£2›{1K}ÂV8}ñÜK …¯mJ¼æa¦QggµÌ¶€‚€Î \kÌ­(òçsÂö¤ßàô‡ÓmçþóãŸñ›…B S eAVÎ 0:ƒ@™½œ!€O@gD¬ÕjíªÄç5þ½9‘ïçPßÏ1Ÿ{ßÉü!à'x;×ÓG̽Ÿ4»ê“鬖iU`$à)¸tr„u¿ž‘‘äͽ˜6ŸÝ;`}éÇ/ð›…BñèÈ„~;h,õu9ýµÝüÝB€ú£¶¦¼¦›ŸWÈ{¿5FŽÈ1WÈ1·¾Ÿc†÷sLð¾è¦Z|Ú\WxZfj DÂ"Ýõ~º-ðDù¿æ^ÌUNeû pw ÅQ?˜=&ƒ¬“A`LWí¦  Î(Àܬˆùk äÝlSú‡¹æ]#rÌm#rÌ0"Ç \  ìéi¿Á'ÎåÃdµÌIU@D'dˆŽåŒñ˹ÕoéÑÜ‹YÇù³µ}/¾² ~ÃP(ß+„~s{É{åéä‚Ãü=A@™%(§zêŒÌ¦6É=í!æ?–>Ê5×|c¾øAŽuÌà% `Á¡øä¹èdúè ªŒnˆŽ„“+'ß³>«ø‹Ê¼%¼¹Ó̹Ër¬®¶øwø C¡:.º¾ òÅŠt²¯"@¹½\ P¢rǨr›ÿ¯V&|œk®ù(Ç Ú˼AÀ»9&øòOCñéó@V¬–Ù¢ZÀHÀ¹pøüʃ ?¡'b苼àÊé÷?÷Ò¢wð[†Bi4KÞ˜£›NUM'PáT| ÀQ€§ ƒ˜;Š-rš¿mÕ?öÍsÌ—>Î1ÃGöò 7D‡;Õ¹ÿ|u敨0èÇr*æ(ý|´üjÜ ·€Õ“[gåÔ=•Çñ[†ê¬ÚXVVyké²qéäâ¸tcíå b£€b£€ñƒ'.çg6²Æ}œC­û(ÇÜöqŽå ¸w]€/þøõ | }ˆÕ2ÛU )ð­-ÍýRQ@|eÑ\pŨNÝS ø-Cu&ÕYën¶ ª(šFÚÆ§ŸF`\º­Ätü´Ž\ù¦œ«~êOåc?É1·~âdü®À# ¨Ã'‘Ë*ïýš^l±_!,LðÙÌßñ‰äÚPÖ‡Õ2ׂT 8  IÀ麒í°nRìÙè_vÒ#XõäÞQiÉ»ó8T°jáÓ–´oÒèMߤÑmÓhp€ nºB¢¥æ\¢€µUÅU²¼o däE/~šc>élü¾€CpÅb°tǧ’W@W¨‚)>ÐÚ|wå<¥ž‹ó-ÿŠfZ=~ž|@*¡ô0Ô@7ü¶¡‚dÅßÅúœõæIiLá¤ôåIhø&ÍV®à( H\pzÔ%ÏËícþæ÷†sýÿW»¾àèî…íÞ³BY-³?` X"[[†-Tdj ÍœñÚYá% jïMøCz»ÿÛTrß·èºÊt[å&ÙËÞ @åQ@}ùÊÈñ¹Y)kœ!‡ú¹ÃÕÁvà ž¢€­½ñ  f-ó߀ŒZÏ—lú«ÏÅ©ßKyípÜèT,B*µæEwU¦QC¿@/›<€¾6y “ÐPi/×.€;Pyp ê5é[þ5å5ÝŒwŒúÆc:ïtmp;xƒ>]ÃÅ»ñ)JµÃjº©æ¶@Œ¸D°äH¬ìÏEyM76š9뵫 Èñ:ƒõfüÖ¡A5o[㦤’õSRi˜’J·}k7~çrí‰*üì‘#ïûФ~žm>ßáÚ`/ & X1jm:>­"t\?VÇÆ3-ñÞ! X#㽋—€d¿…‹M-kñÙQáÿ¹ƒaóÂð[‡R«¬ÏM¼yj*ýòÔTúäÔT¦Ú¦  á[7 t dk ».@ñÅ‹kk¥½‚|þçG™Mmr¹5°œ@Š(Àpç¨_ð‰•@-Ú¢7h;qçd"÷3qþ£å;tT¤‰àD8}áä=ßÁoJ5P€ë kש©tÁÔTúÌ4»ñ;×”Txƒ±Q@¹2Q@kåC•OJùù †Ð¯²Í}•m¾â|kàç> @lPS^ƒ‹ I¾iÑ1M JDª‹ZO>>Ç ë3qâD$Ç´úì¦ûÌ®¾»²Y‰N åÍøü~ì+3Rè†é©ôéé©4Ls*WðÚ6v­NÊϹ½ô•‘Ùæ³Ž ƒ·zêHPª˜†O°”+¾[Æ'²ZæJÀB€‘€º.º|jØùr>ç^]4ÒÑM‘8 plÜŽg ü±àùþ×%OZRH“%…ÀŒf¤Ð0=ÕV\ Т€qÿW1@º[òÊþ0þþ‘ÙÔYw·:wäŠðÆ?9¢ýxÀ€T‘€ŠOt ?[¼)G¶eSSÇ´ù„Q€SÕ÷‹£pµo}Ùñ]òúÌr|f ‹S9C€'Ð(àð¼WæÝ#ÅgXk©í^vßØÇ 2©#®9€+HŒvú3øDË$VËT4H Ð l‚ñ»"åzξ²h&Ç´ùžÕ99uö¥E_à·%‡~4±ÿ÷)ô†ïú“+3S8Êâøt„D”‹ÚÆÜQR.ÅJyÕœ]‘÷#Æ,꬯kƒˆŽb×PFÕßC÷`µÌÕ€‡€øNr¡Pc7“…rí³€–8fŸ¬QÀõ;Úðˆ’Jß§Pýfõ'Ë¿ïO®}ן€£¤mA ú˜××V˜Û×M€c0S†( R–(€ZºpøÂA+~ „Œ½«HW”I¦0™äŠ· ƒ(7`òrDžŸþ~ü•±i „Õ2 A#hmJ(µJ §š1­ý³R p:Bxnÿ þ<_£Ñh¬ƒ ]éÌÚEÉäÛEÉäÜÂd?:U•Ýü! C oàFã¼uÒÉù¹C-Ï úl :*“~£(“w=!á~m°ÈyQ@®i+~3üÝ869¨¢¾‘@TàFÇJWÁ¦cñR= Wv°w³qÌ)%£§ß÷,üq1n 2­úíøÈÅÉä‹’È—?%‘õ?%‘†EIäâ¢$‹’ ,´—38Àü¾n @…QÀ¤4Áó§þ¾â»úêú$¾ŸmiÖÈØ’,ò¿âLrZäµÁ¼!@l`È1_±–Y#ð¢Š( Èt qˆÚŽ'”®‚ª½=¥z.«_uÛ1‘7 p\+|¹%±ìüF®¬ƒ ]WÆ1 ?%2¿]œDÖ,N"g'XœDà'§rÆ(`l:©÷V,«™ÇûÒ›Ò¬ÒØ’Lb.Í$\${à\»£î¯(Æo‹ZÚstuVËœ JþH ­1Œ^Å~+´Ü:þ´Û( JÞ(À |¬ ¨?>ÜôðÌ/Vd³Ëé]Ëȶ%‰Ô¾¥‰äÄ’Dr~I"¹²$ÑfüÀ:DÉB¢: ¢€i÷V¬¬µÔrÍùC,K—Ñi¦{Ë2ÈÖ² r©,ƒ´ñ½6X¹(€Ó<Ày‹ÅÒ¿E*ÒÙ¡³´¬–¾´ä‘@c8Ynê6In»¼¦!›£/pŠä‚€púÐÙ¿Zâñ›©.-M¦“¬‰d™54.K mË,K °,ÑVK ,q).äQÀå HÝô{ÇŽÝR¹%Ü;XiB4Mˆu¡ky÷uuøë r…ï]£T¸ƒ€ ÿ¿I*Tóíãî Êy€Î <5ì§û%‰Ìkîb㘫þ‰Úë܉ÄÒÇåØöˆr2§n ¬]×f–|¾RGÎý¬#VêÈù:rrEo²cyo²my9·<€Õ^ËœË8€œQÀ2GS…E-Ó}ÝßÝçn0º.üóä„Ò¬‘±i¤¤"ƒ¬.O#»¿Î ÇdSc2HÛ_Çû¾0H0Èÿ±b1~ãT=À˜ƒ:G$pæäs_“âY8uïäõ~œn<ÿþ2Ü.ÄÑÄÛôÎÿ»Á`ƒ!Ô 1„‚ÆZ£)ïV]ØkM,“]Ý›¾s•–LY¥%«t¤u•ŽÀÏ:+íµ¢7åŽJ°•7Xʱ ðSGߤÑm žšñK¾¥»Á`—LÇŒK#ïO£+Ç¥“_Æ¥“ËcÓÉÕŠtr±"´Éump‘z¢€6„ùÀ€€_‚‚;¸râ7•P ÝE™JMK/v@ÙY?GŽºÒ’3v#`vèVµƒ*·>ŽZ¿!†Ú¿!–Ú´!Îüãú8óòõqÔœuqæ•ë⨚uqÔîõñÔuqÔ©µñäôšxrnM<¹ROÚªµªµV9ÊíÐûFàÓT©0 ˜â+ ¸>°bY1!œF®J}aP EU_.Åß@Љ÷æD²Z掂unjm<µñÖØ«:ÞÕNà +œ! ?ø# ˜¥’(ÀÝPà8§úº+`´J¢€BQ@é}3ñ@:ußäƒ:A$ÐN¶]š¼+S̳pî¹~ÍÆ1—U8~×Vö®ÉŸãNµýÿ}óÛ ±ÔÚvˆãÕN°Ú ¬ôËÜ@€ÜQÀ<_Q€  ƒd‰xT¡’(@¢ ƒ.à73Ð2E „°é¥: s$AŸ>ýŸE‹yNÞ;ùg•Dí¿ëñ0ú˜·„ã·Õ¥pïäç7ÄRçœ»Þ ÀcÀ] ã,UIð½£¹. ârGî `eñÊ;ñ[ ƒE¬Ž™‘@kóÝ•£aïÞ›= ;ú5(kRQà€«ì=“Ì8\ÔQ{þ;?u},u$˜£€ù2G3T”p0nð7ñÛè e¶tîH ­1¡d9Xö :r÷òÔm6Ç1—Dm ŒvK¤ÓïØt±`MüÆ^××Þ¹!ÖÜÔ™¢€¹’EҜؙ£æŽQõø- 0X»²Z¦¹SA@°Dn àx8ýË™÷– š ¸ðáòáj‹œ~¿&öŽ }ð{]'FoÈÜkÞ¥D°\†(`‘¯( 2Q€y€@‰äÚ¸mŽ4“¡T “ßÕ2W/pÌ4uØ*HZØ{*?…èÆ÷Y8óÌœ*\äñwì8÷píx8½ñä[+nÁo­M5å5Ý6¦ÿ{C,uÙø# X’$Ç)Ș}EYüøÑOùøÍ 2µüñÛ¼ >.8˜#sM½K§A9ï I4§î\ãçS=Eíu"gì:¨Å-ƒv…l¿wÒ'b©«(ua?¢€ *‰è,": ?dÒWøu Ö–bæèÌ >.¸3FôšSOþp¯XèÀ9; ìè ¿¿:¢§mô¡SOÎÆo®MûžúáíõqÔ%ÎQ@|pD³ýLîDQsGq~Ë‚½Ï|Ùé è#º¡9±ìe>'í]ÞÚœÅ(;¥Ò(ÀÐN_9®-.ƒ!¿½Mƒ¹zÈú8j§,Q@oµD„wð] ÿ­rDãÓùC€J¢€3`üŽýP mgÀÒN Á \hŠ`¦ŸyfV,×gáʼ½·²qôE¿GáÞC¢¡1Œ†ÆälSvÅûx€FSg­»yË-寯‹£.ÊX1 = àzaÜQÀ²/–e¢;v0X»²ñ茮݀˜ÀÃÉÁã½K 0Ñz3—gáÒômÿ`㘠jŠšÂÝAÆŽõ Ç[þ9çük4{‡þðæº8ê×(À`Ð9£€ U~‰ß¦N¦Ú|KwVËlCÊH õx8½þ¸˜Ó™—¦n™eN©< €ÆíÇz— AMM· i£ ëâÈi¿F‰òEsdަ©$ øÚQÀ¨;Š¿E7ì¬/aåÝZ´ÌÞN JD~‹àx8}¨±ýû>Aðü+ bc˜#ªˆ½F€c=¨æF]É“øMÖhvžÖ]u\-QÀâ Ž*ýˆ…—(ûéôkéÎÆ3‡;5ˆT|¡ÐñpúZc]}\?v ¯üüÜ«‹F²ÑÌÙ‰œkwƒ~lv§ïêYj»oHõʺ8êj G ÜE}7 §Æ( “º¶eì–dt@”æÄÿ›œÀÆ3-"#µ^(d?i¯!‚T´üeê@¨ûëÏ¿ºè¯l4sZÐ)þ‰lF® #Ù¿Ì´:ùŽý¯üxߺ82{¯(@ÄQ@e¢€IiÊÌH´-üh!^òƒº®–[ÇéÔ Y$@«9¸ÖN?FϾ´ð/;¯,úÍœWmN»ëÀ±0 ¶:Ô’?¯o§îìY›"¶þ~ÒKkãÉ®QÀÏAÌTI0VQ@åÊWÐñP_!-e? øŽš;€ÆpúÚñpÒr¼wñ§¿ZýwwÏÃÙWŽe£™ËO%£€0ŽQ@˜„8Af7 ›Ö™¿×G&íŒ]ŸVúéÚxÒ¼QQÇ( ìÎâ•èv(Oʦ•.Eè‘4†ÓmatS£®xü9Kmo×çáâ«‹R𣙳~÷1ž¢€v8Nàh8i=N¶xá§ÄÎüÝ>üÅêëÓJ©5ñä"§ ƒüTa 8 å¥ ÀdQGñ°”ÏN›V¶!ÀG$á4 §/7ô wϪ g+·è;t^^øjG€£á¤íH8™ù–N}¿ÀÞת''¥Ž–ù1 {aÐt. ’# 3Àd’¶šy5aèp(ù!te3Ê"ÑéÞ#„8Öƒ´ÏKœ¸9ª}& `õsÍÑÌuF´÷( #À‘práh™8+tÝóÚ¿WÇ“s’DØ¡ ¬L`‘! øF%Q€3¬øbE :ŠO'  «e!tªHÃh‡‘lÊWriò®L½4eÇßš£6€£g€#ää‘òy}¾¥G§ýŽ×4„6­¾>½ä´”QÀÒ Ž¦øŠ¨/ XðêÜGÐÑPü_eµÌ~€ ‰"¸Eáí aÔåãÙåߟš²5úüèš/ÜGŒ*¢€FnQ€ lõäj}ÙÚ;¾S¿$OŒ_¹áÖò÷VéÈŒä½0H©(`T&éƒ+)t2”X8…Ði#8F 1Œ9®+9yò¯ÿ$MG"Ú!ê#Œ¤·ê[Щ¯Þ[µ÷¦ÏÎ~f•Ž\årJ ?¢yN ¤¹0h¼€S…F·—lFCIZ»²Z¦Í_@$4‘@»¡6†¿CÀñpþ[=Díp8’ÀáHÒv0‚¬:i~÷Ô“óoMç¼}º¦Vÿ~ÃmWVêÈ5wó~‰úð¾â(ÀŒ½½äÞœ‰’î…`±tÁ8 ¸. 8CÀ‰žA8CŠ$p°'ƒ‘t}CnùïÀ`íÚyg ÛþO–¶îŽŠjˆæËÌPIP.0 (K§Ï[,xQJr¨íÞœQz Í#GÝ2ƒŒQ€Ú!ÀV'ö¤7xbŽ®3¯¬ì0pÇÚ;*V-ïM®_@: A.àv?”¬/6­l犽DM‘t0Fî ê"É…º^Ô®ƒÉ%ó¿:§S.VèZ?®:fËss +3Š/+yJ RQ€­þŠ¾Î gë~¸¾}…’M-e5hü 8Œõx­xpB†(àˆ§(Àz8ЋÀ^äü¾^dÿ¡cWÀ°šn~qZ7ÑzóöæýªúŽ ëÒDÒêö”À$9. â|—Â@­QÀת‡wÞ-­(å¿ì!lzÙ.4~Œ®ÏÐÊ(GÎ) €ºŽû{ØENî‹"Û ¬XxÒ`ÅUX{l]jÊkºí>/iã#–õÖÌç.@Ûâ$ÒúS¹òS¹úSuõ§$rmQi]”l«…ÉäÚÂdҪąAþˆ&HŒI'WV~¸0Ÿ6”â-@6½ì0š>FíÛ‡< ¨äû¯C€£ZöD“•ûSËî „Ø ß£D„Z Ö®5ÃjºYY»Öæ[ºo¹¿2|Õƒs"«þZu“Á`­VÓmm¾eκGgŒ]“o)Y›o™½öQË‘ŸÿR Kï®ðÌöc0Y( <\]:|^>Q(¿µýNýaò&4ýà‹Nˆˆš"iUGǤlÕ`O4¹¼;Š4ìŠ"‡vGS‡÷ý~B|cˆYpX»Z Ö®[ÞY¾ôαO,èC®z:%0£€ñéü  <´Î2)Ÿ ”ßuò•Y-ӆƑ@‡¹¥. ’9 8Ì= h¯½ÑöDØe¯^äâ®R³+š®ÚMÍß;èÛäÎzÎ'Ã×@¬]WÝ?iúÂdr~a29úc29üc2Õüc2¹ØY£€ò cÓIëœÇ'âS‚R žÖŸÕ2Ðô1èp^€’§ª+ €=®E`W´­vF“ ;bȺ1¤bG ™¾£IQÝ ‰7;  ØcGC( ¡µù–ˆŸ’™÷~J¢fþ”Lj%‘#‹’È)Á»únàé  Ûÿ¯uÞ?¦¤£ã Ô÷¥~­ê¦f-Ó„¦ß‰#w[#:QàœÀ;íµ#æzÕÆ¶6†ÔÕÆÐ{¶ÇƒÛbÈ¡=÷V^Ýÿ€åìIÆ6\ 3!uÏYoÞøÈÌ û®€«Kȶ%‰dß’DR·8‰\œDN.N"פÙà¿ ƒäŠƦŸF®Í~£$”š!À`íÊjéZ4ýN ¸n '~?%𘔧 :vÜA@{m³×ÖX[cÉå­±¤eK,9³%–\ü%†\ØC®nŽ!°çÁ™Óv?05Ë:ÈÚÕ’oéèu]mwøžZÀöçjjºº:þ™ö²Z»‚ÕÚjl[ÁbéRk¨íK0B5Æ:ÈеnÐÄ›·þ}JôêŒÖ~Jà¹å d¿5l²&–õ¦f,M W.K ‡–%’«KýxaŸ(`¦ Q@¥À(`\: i¤mÖß+õè0¨€hï±Zæ ~G¼· 8ᯠƒ¼wŸ(6 èΰ½#´×–X¿ÄØjs ͱäêæXêÔ¦XꨭHãÆhêÄÆhª®&†l­‰¡¶oˆ¡vÖÄQ{ÖÇR{6ÄQÇÖÇ™›ÖÇRÍëâ¨3ëcÉÉuqÔžuqÔÒuqÔ²µñ¤fM<ÙYOöWÇ‘ƒ«ãÉ/Õ:R³ZKU¯Š'ëWéÈšU:zËϽ »RGήԑs®w,—á®_QÀ‚ Œ&ØþLÛì¿Oþ : *p ÀZw3›>º ?¸#Ǫ»)\D$ sp\†(à¼Q€WØâ`s,M±6:*†‚1ÔÄP°!öÆZg«u®O`m<5öªŽ'P­µÕ*Gy»6¸7ÿ»Ä\ˆQÀ¤4ß0Ñög®Íþ[å]è(¨Àƒ&¤9½ìk4ü Â%ˆ0 àÜ› `“¨ñëÜÔZ'¨v‚€ÕNà|\ÌQÀT ¢G§`Îß'ý: * ufÐÔ8VËlFÃÇHÀõB¡önF£€ZîQÀàÔp»QÀJ?FULJkÿ3móÿ^ùgt T0þ‚†‘€«ñ¶w< 8è+ ˆ Ü(` QÀ2?F¾ @©(ÀaüŽ?7ïßÞ‡n N°Xº°é£„tb$ŒÂÕ # EN ”( ØÛI¢€¾¢€•D‚N ”& ¨pýÏL@¿}›‡. r€.'o·;óDÇyDÇÂ4©, 8ŠQ¿(@Ç? Xª’(à{¢€)nºßèøgV½÷ï‹ê<:7xæHVËœAÃ÷c$¡ÞH 1ŒÀ ¢€Æ Ž6ËTc3DSþì”Túüª÷æD¢# :XÃÚžl<ƒ× Ë ô ÜH@l7 ˜£€m¾¢€þQÀ† Žä¹0ˆ_0e@Ç?75•¯VÞ Õy#„²é¥x|°Ü‘@dàFbºÎp\† ƒ|Eu*‰6q è …£€éö?çèLO¥›jÊkÐüQ(9ußäñZa¹#:`#1C‚rEGdˆv«$ XdQÀ|?EÓRiwÀp²ÖRÛßü(”“ξ/ ßæ(”ÀÁ–ô²'°€‘€·HÀaÐÇù‡ Q@}¤2ùêlõc°:À£€Ù<¢€ïRˆýb![uø³ýÈÙzKu|‹£P"uîo–Þ¬–9ކ¤‘@„4‘€ãV¿ã2DÇdˆöGÝþˆ6J(G@øGýmÆïø³?ôë׿ , Å77 %U7@!Íñô³l<Ó‚¦‘€·HÀxÝ(Qp£Ù£€Å~ˆfõ#þœ+,þ[%okJ.¸­¼Ïì@à D$p4Ü=ÈDnP#C°*P¢€¾ž£€ú˜Ó—ÀûŸs f÷£Ï¯û÷Üà…R Т+ú ïÎ …¤Œœú¸Ÿ¢€C=ù_(QÀ:_Q€6°¢×­³ûÑ0·¯kÇà:Øþ,i©)¯ Ã73 ¥ šY"X-sM#_sî@€Ë)Çd¸0Ht Ñ)þˆ~(`n?æ÷½Þ-˜ßÇ=Tå–k˜×€æBùCVƒµ+«¥ñ>N 4òŒf}4œ@c M^·zï4¨$ pp‹¸DóúÒ° íϸF.pqÅ_* pØ…ò»N úö±fs M?ø"2DÎ+öcÞà"£€_0 ¸! ˜ß—À}:þ9Wp£[ Öd|ë¢Pjš 0Ôvo‰gV¢éc$À5p6í†p¨6 ã *ûÿ}Q²ç?ë ‹rJVâ?JÅjx`^ϬGÓÇH€o7àH£×A€SÄQ@ ÿ(`­J¢o-Jö¸@@ÛºGgâÛ… µ¤—–³Zæ?F|! >ÂÑà¹0耀 ƒT¸›ð¬T( p˜¾§®8ºÇüó]øFE¡L_YÐÕ2»Ñø1à²Uðˆ‡ü‘rýß#q ä @‰(qà0}.¾#PÍÖ{*po? سzê¾oMØ è¼‘—Ó}AÀáHÛÿ<®|°·“D+|E<¶.qús¾º. к(‘ü`É·tÁ·' , `©îÁf”YX-ÓŠæß #0q‘€ó*¾Â0 , ÐñÜûÒÄÿ gH$Ç–f”üß–(Têôð…iÍñLš'zˆœüp¤}x0\ù(`· QÀæ‹–&ÚþoV7ÿO àÚ'Q3À`À ªS€Ààéo6ëè‹hþA „) 8¯æ9u@ ¶(`[¬€ ƒ|Dü8 À+(p†êêÏw½ ߈(Tg‹¬Ö®-·Ž›Îj™ Á 8æšÂ幫ž×»|£€:•D›T,·›ýŠÞ×w xÚ>È–&’{_«º ß„(T'ÖÅ‚5ýÙôÑ{X-Ã"Q$ ãVA. à0u ÔGú7 Ø.s°^¢(`eïë0à +9B€¸¶úð͇B¡®wÞ[Éj‹hÜ1ࣃ‘_p®C=½ÿ9±§ÊÈ|Jàjíåèx‚!Ý€¥‰de=]Ýßv(ʭν±DÇjé% H ¸‡Ù;ÿO9N T[°Ækã)·—Uón@]ýåŸ3q_? …⦳Í|· b$ u$p°§÷¿»Úß‹À~_Q@”º¢€õÎå#&ð‚! 7¹R}GÅâSóEã …Bñ‹¬u7Ÿl™b6ìÈ „w¾HÀêzy?Àaþ\º;cøo äÔÄ:•8ðÕ) ®ƒ]U[fÀ· …ë›zŸ}húK¬–®EžHà¸?"žÜ»! Ú}@LСà6ÇØCÁ¦hª=pW¾@ÀW7@d$°¦6ß‚ÆB¡dˆ[þËj™£¬–¹‚‘€ÐHÀh‘€/ð8ǵn`»‡N€»¹€@ †À¦hï xwzvË#ßáÅ=(J掀ºœyhæÿcµÌ~ìŒzb$ E$Àvø€×Ý»"!@ªH`Ãm_ã[ …B) VèzzðÌÿ±Zæt§œ"ˆÄH@l7@(é( ø‚€µé%¨š8|¡P(ÿ@Õޛξ¾èqVËüÒ)AÀ`$”‘€+( ´­O/™u’Ù…o ¥9óÆâßuÊaÁÎr¡#>"½F[U ¬µw6 (Y\k¨íŽo ¥j7®JdÓËVtª“1ÀH@†H`}jñ/u&ko|« P¨€Ò¥éÛœùÃä_X-s¦ÓCF ð€€šÅ»¾\Ýß"(*°ãÚÚîg_«ÊaµÌÏ¢+€‘@@Eµê‰Ú6¦ojübE ¾5P(TðÁ]ݣ嶱_³Zæ*F € Œ.o»¥|îɉ8܇B¡:T­íyjðŒGYmQ-Fê<=°9BþHÀõ‘òG>OT>8¹÷ïÓß„y aøF@¡PRç?\™Ð|û¸;›µÌ·¬–9‹‘@pEhÇHÀnüǽ²è‚ß~ …rtY»6똂npk$…‘@FmÛ~]±÷haõoð[ŽB¡PÞ@€®îqú“ç°Zæ2Î`$ ‘@ÛæªzïàéÀ¡ø­F¡P(> PÓkÔ©[ÇþÕ2[ƒâ´AŒ‹°?J±HàìÖXzûŽ[*f× «é†ß` …’BϾ¾ðÿØô²:VË´b$ ÞH ±ÓEtý¶8òNðya Ál…B¡äƒª½7}}áØô²-¬–9@à‘À #Ãþˆ¢½F­µ1äJm 5ÿï&eà@ …Bù§3ræ•%-·ÛŒ‘F2F­;£É±í±¤ðÈ}“b1×G¡P(5Á@]ÝÍç>ZNØ[Ç·_U|ŠÕ2ç0ÀH@x$@5ïŽ¦Ë šÖ¿a( 0 çD²:fl‹–ž¬êí… ¨)¸º;Š\¨ûÝäaPŽÃ|( Ø@`.ð΢pö–q_4k‹Î;™oF~ˆ8B€‘À¾(Ò¶/Š´îë_|ùØSs?ÃcyQ(*¨ÀÒåäs?DK£s[´E{íQAFÊEþ¸PÈ­u=ɵ½Hkýo+-'Þ[‰™> …BuFè kדßg6ØA Õ¯·v–H L¶HàÒ¡rþ`OÒælþõ¹ë_]”–Úîøä£P(ª#Ô4„œ¸9êìS³sØôÒuv hóË-†Á „+ \8IÞ?Açž41 ^«º Êkºà*…B¡Pü:] jïMµK÷“Îø=ÏŒW‚%“%h=A.×Góõäìñ¿YCqÕM¸7…B¡P²AA½¥ºÇù÷V%ž2ó+6½ì4FÜçšø_(t©¡9ÓF. 'çÂɹ¦?[&Âk6³GÃG¡P(”ÿ  ºº@yM·3o[ãN ¶ü·YGï´ŸIpšÕ2Dw‚?¸ÐNŸ9Öƒœ=Öƒœ9FN7ßUùÃ…üyI`0„‚B±•B¡P¨@é„h4  ,–.§ù.ýÔ&ÿ«YGجevÙ¡àç#ã½C€Ê#¶ôµô•¦0úbS}åx8}íxbéhö/–{ ßÒ¥ý \Õ£P(*¨A£q †•w;;xæ –[ÇîtmNÐÊÆ1mlÓÊÆ2—ÙX¦™e®( ?NŸh§›mEZšÃéóîþì©{*žºßòÑÙ¡³´Î&B¡P(”7H°µ¾m¦i.{_«º ò-]À`íZ3¬¼ ²v…ÛÊ»lÚr˸l }@†H ¹%gìW§ÿ<ó™3÷Ïx4qü`0Ø~F«ýǽõ( …B¡P( …B¡P( …B¡P( …B¡P( …B¡P( …B¡P¨ Óÿæl¿&èOx¢%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/content/images/marketing/home/rxjs-live-london.svg000066400000000000000000000220241431412030200260610ustar00rootroot00000000000000 LONDON rxjs-7.5.7/docs_app/content/images/marketing/home/rxjs-live.svg000066400000000000000000000206271431412030200246010ustar00rootroot00000000000000rxjs-7.5.7/docs_app/content/license.md000066400000000000000000000021561431412030200177200ustar00rootroot00000000000000@title @description The MIT License Copyright (c) 2014-2018 Google, Inc., RxJS Team Members and Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. rxjs-7.5.7/docs_app/content/maintainer-guidelines.md000066400000000000000000000055521431412030200225560ustar00rootroot00000000000000# Maintainer Guidelines These are guidelines for maintainers of this repository as (mostly) [gifted to us by](https://github.com/ReactiveX/RxJS/issues/121#issue-97747542) His Beardliness, @jeffbcross. They are words to live by for those that are tasked with reviewing and merging pull requests and otherwise shepherding the community. As the roster of trusted maintainers grows, we'll expect these guidelines to stay pretty much the same (but suggestions are always welcome). ### The ~~10~~ 6 Commandments * __[Code of Conduct](../CODE_OF_CONDUCT.md)__. We should be setting a good example and be welcoming to all. We should be listening to all feedback from everyone in our community and respect their viewpoints and opinions. * __Be sure PRs meet [Contribution Guidelines](../CONTRIBUTING.md)__. It's important we keep our code base and repository consistent. The best way to do this is to know and enforce the contribution guidelines. * __Clean, flat commit history__. We never click the green merge button on PRs, but instead we pull down the PR branch and rebase it against master then replace master with the PR branch. See [example gist](https://gist.github.com/jeffbcross/307c6da45d26e29030ef). This reduces noise in the commit history, removing all of the merge commits, and keeps history flat. The flat history is beneficial to tools/scripts that analyze commit ancestry. * __Always green master__. Failing master builds tend to cascade into other broken builds, and frustration among other contributors who have rebased against a broken master. Much of our deployment and other infrastructure is based on the assumption that master is always green, nothing should be merged before Travis has confirmed that a PR is green, even for seemingly insignificant changes. Nothing should be merged into a red master, and whomever broke it should drop everything and fix it right away. Fixes should be submitted as a PR and verified as green instead of immediately merging to master. * __No force pushes to master__. Only in rare circumstances should a force push to master be made, and other maintainers should be notified beforehand. The most common situation for a justified force push is when a commit has been pushed with an invalid message. The force push should be made as soon as possible to reduce side effects. * __Small, logical commits__. A PR should be focused on a single problem, though that problem may be reasonable to be broken into a few logical commits. For example, a global renaming may be best to be broken into a single commit that renames all files, and then a commit that renames symbols within files. This makes the review process simpler easier, so the diff of the meaty commit (where symbols are renamed) can be easily understood than if both were done in the same commit, in which case github would just show a deleted file and an added file. rxjs-7.5.7/docs_app/content/marketing/000077500000000000000000000000001431412030200177315ustar00rootroot00000000000000rxjs-7.5.7/docs_app/content/marketing/announcements.json000066400000000000000000000005141431412030200235010ustar00rootroot00000000000000[ { "startDate": "2019-12-20", "endDate": "2020-03-20", "message": "RxJS Live Conference in London
March 19th-20th, 2020", "imageUrl": "generated/images/marketing/home/rxjs-live-london.svg", "linkUrl": "https://www.rxjs.live/london" } ]rxjs-7.5.7/docs_app/content/marketing/api.html000066400000000000000000000000771431412030200213740ustar00rootroot00000000000000

API List

rxjs-7.5.7/docs_app/content/marketing/contributors.json000066400000000000000000000125451431412030200233700ustar00rootroot00000000000000{ "ben": { "name": "Ben Lesh", "role": "Developer", "github": "https://github.com/benlesh", "picture": "https://avatars2.githubusercontent.com/u/1540597", "twitter": "https://twitter.com/BenLesh", "website": "http://www.benlesh.com", "group": "Core Team" }, "paul": { "name": "Paul Taylor", "role": "Developer", "github": "https://github.com/trxcllnt", "picture": "https://avatars2.githubusercontent.com/u/178183", "twitter": "https://twitter.com/trxcllnt", "website": "http://graphistry.com", "group": "Core Team" }, "oj": { "name": "OJ Kwon", "role": "Developer", "github": "https://github.com/kwonoj", "picture": "https://avatars1.githubusercontent.com/u/1210596", "twitter": "https://twitter.com/_ojkwon", "group": "Core Team" }, "david": { "name": "David Driscoll", "role": "Developer", "github": "https://github.com/david-driscoll", "picture": "https://avatars0.githubusercontent.com/u/1269157", "twitter": "https://twitter.com/david_dotnet", "website": "http://david-driscoll.github.io", "group": "Core Team" }, "tracy": { "name": "Tracy Lee", "role": "Developer", "github": "https://github.com/ladyleet", "picture": "https://avatars0.githubusercontent.com/u/8270563", "twitter": "https://twitter.com/ladyleet", "website": "http://thisdot.co", "group": "Core Team" }, "nic": { "name": "Nicholas Jamieson", "group": "Core Team", "github": "https://github.com/cartant", "picture": "https://avatars0.githubusercontent.com/u/3878593", "twitter": "https://twitter.com/ncjamieson", "website": "http://cartant.com", "role": "Developer" }, "tracy-lee": { "name": "Tracy Lee", "role": "Developer", "github": "https://github.com/ladyleet", "picture": "https://avatars0.githubusercontent.com/u/8270563", "twitter": "https://twitter.com/ladyleet", "website": "http://thisdot.co", "group": "Learning Team" }, "ashwin": { "name": "Ashwin Sureshkumar", "role": "Developer", "github": "https://github.com/ashwin-sureshkumar", "picture": "https://avatars0.githubusercontent.com/u/4744080", "twitter": "https://twitter.com/Sureshkumar_Ash", "website": "https://t.co/XduklnxpK3", "group": "Learning Team" }, "brian": { "name": "Brian Troncone", "role": "Developer", "github": "https://github.com/btroncone", "picture": "https://avatars3.githubusercontent.com/u/5085101", "twitter": "http://twitter.com/btroncone", "group": "Learning Team" }, "sumit": { "name": "Sumit Arora", "role": "Developer", "github": "https://github.com/sumitarora", "picture": "https://avatars3.githubusercontent.com/u/198247", "twitter": "https://twitter.com/arorasumit", "website": "http://www.arorasumit.com/", "group": "Learning Team" }, "jen": { "name": "Jen Luker", "role": "Developer, A11y", "github": "https://github.com/knitcodemonkey", "picture": "https://avatars0.githubusercontent.com/u/1584489", "twitter": "https://twitter.com/knitcodemonkey", "website": "http://jenluker.com", "group": "Learning Team" }, "jan": { "name": "Jan-Niklas Wortmann", "role": "Developer", "github": "https://github.com/JWO719", "picture": "https://avatars3.githubusercontent.com/u/6104311", "twitter": "https://twitter.com/niklas_wortmann", "group": "Learning Team" }, "matthew": { "name": "Matthew Podwysocki", "role": "Developer", "github": "https://github.com/mattpodwysocki", "picture": "https://avatars0.githubusercontent.com/u/49051", "twitter": "https://twitter.com/mattpodwysocki", "group": "Alumn" }, "andre": { "name": "André Staltz", "role": "Developer", "github": "https://github.com/staltz", "picture": "https://avatars0.githubusercontent.com/u/90512", "twitter": "https://twitter.com/andrestaltz", "website": "http://staltz.com", "group": "Alumn" }, "jay": { "name": "Jay Phelps", "role": "Developer", "github": "https://github.com/jayphelps", "picture": "https://avatars0.githubusercontent.com/u/762949", "twitter": "https://twitter.com/_jayphelps", "website": "http://jayphelps.com", "group": "Alumn" }, "nat": { "name": "Natalie Smith", "role": "Developer", "github": "https://github.com/natmegs", "picture": "https://avatars0.githubusercontent.com/u/19582796", "twitter": "https://twitter.com/natalie_megan", "website": "http://nataliesmith.ca/", "group": "Contributors" }, "cedric": { "name": "Cédric Soulas", "role": "Developer", "github": "https://github.com/cedricss", "picture": "https://avatars0.githubusercontent.com/u/802010", "twitter": "https://twitter.com/CedricSoulas", "website": "http://reactive.how/", "group": "Contributors" }, "jason": { "name": "Jason Aden", "role": "Developer", "github": "https://github.com/jasonaden", "picture": "https://avatars1.githubusercontent.com/u/516168", "twitter": "https://twitter.com/jasonaden1", "group": "Contributors" }, "jan-niklas": { "name": "Jan-Niklas Wortmann", "role": "Developer", "github": "https://github.com/JWO719", "picture": "https://avatars3.githubusercontent.com/u/6104311", "twitter": "https://twitter.com/niklas_wortmann", "group": "Core Team" } } rxjs-7.5.7/docs_app/content/marketing/index.html000066400000000000000000000052411431412030200217300ustar00rootroot00000000000000
RxJS logo

RxJS

Reactive Extensions Library for JavaScript
Get Started API Docs

Version 7 released!

Here are a some of the benefits of running on the latest version

  • ~50% smaller
  • Improved typings
  • More consistent APIs
  • and much more...

If you want to know more about the breaking changes, click here...

Reactive Extensions Library for JavaScript

RxJS is a library for reactive programming using Observables, to make it easier to compose asynchronous or callback-based code. This project is a rewrite of Reactive-Extensions/RxJS with better performance, better modularity, better debuggable call stacks, while staying mostly backwards compatible, with some breaking changes that reduce the API surface


When participating in our community, you must follow our

Code of Conduct
rxjs-7.5.7/docs_app/content/marketing/operator-decision-tree.html000066400000000000000000000000711431412030200252000ustar00rootroot00000000000000rxjs-7.5.7/docs_app/content/marketing/team.html000066400000000000000000000000571431412030200215470ustar00rootroot00000000000000 rxjs-7.5.7/docs_app/content/navigation.json000066400000000000000000000054531431412030200210110ustar00rootroot00000000000000{ "TopBar": [ { "url": "guide/overview", "title": "Overview" }, { "url": "api", "title": "Reference" }, { "url": "team", "title": "Team" } ], "TopBarNarrow": [], "SideNav": [ { "url": "guide/overview", "title": "Overview", "tooltip": "RxJS Overview", "children": [ { "url": "guide/observable", "title": "Observables" }, { "url": "guide/observer", "title": "Observer" }, { "url": "guide/operators", "title": "Operators" }, { "url": "guide/subscription", "title": "Subscription" }, { "url": "guide/subject", "title": "Subjects" }, { "url": "guide/scheduler", "title": "Scheduler" }, { "url": "guide/testing/marble-testing", "title": "Marble Testing" } ] }, { "url": "guide/installation", "title": "Installation", "tooltip": "Installation" }, { "url": "guide/importing", "title": "Importing", "tooltip": "RxJS Importing" }, { "url": "api", "title": "Reference", "tooltip": "RxJS Reference" }, { "url": "guide/glossary-and-semantics", "title": "Glossary", "tooltip": "Glossary and Semantics" }, { "tooltip": "Operator Decision Tree", "url": "operator-decision-tree", "title": "Operator Decision Tree" }, { "title": "Deprecations & Breaking Changes", "children": [ { "url": "deprecations/breaking-changes", "title": "Breaking Changes" }, { "url": "deprecations/scheduler-argument", "title": "Scheduler Argument" }, { "url": "deprecations/subscribe-arguments", "title": "Subscribe Arguments" }, { "url": "deprecations/resultSelector", "title": "ResultSelector Arguments" }, { "url": "deprecations/array-argument", "title": "Array Arguments" }, { "url": "deprecations/multicasting", "title": "Multicasting" }, { "url": "deprecations/to-promise", "title": "Conversion to Promises" } ] }, { "url": "6-to-7-change-summary", "title": "Detailed Change List", "tooltip": "Detailed Change List" }, { "url": "code-of-conduct", "title": "Code of Conduct", "tooltip": "Code of Conduct" } ], "docVersions": [ { "title": "stable", "url": "https://rxjs.dev/" }, { "title": "v6", "url": "https://v6.rxjs.dev/" } ] } rxjs-7.5.7/docs_app/database.rules.json000066400000000000000000000001171431412030200200650ustar00rootroot00000000000000{ "rules": { ".read": "auth != null", ".write": "auth != null" } } rxjs-7.5.7/docs_app/firebase.json000066400000000000000000000030471431412030200167550ustar00rootroot00000000000000{ "database": { "rules": "database.rules.json" }, "hosting": { "public": "dist", "target": "stable", "cleanUrls": true, "redirects": [ ////////////////////////////////////////////////////////////////////////////////////////////// // README: // Redirects must also be handled by the ServiceWorker. If you add a redirect rule here, // make sure it is compatible with the configuration in `ngsw-config.json`. ////////////////////////////////////////////////////////////////////////////////////////////// // Strip off the `.html` extension, because Firebase will not do this automatically any more // (unless the new URL points to an existing file, which is not necessarily the case here). { "type": 301, "source": "/:somePath*/:file.html", "destination": "/:somePath*/:file" }, { "type": 301, "source": "/:topLevelFile.html", "destination": "/:topLevelFile" }, { "type": 301, "source": "/guide/v6/migration", "destination": "https://v6.rxjs.dev/guide/v6/migration" }, { "type": 301, "source": "/guide/v6/pipeable-operators", "destination": "https://v6.rxjs.dev/guide/v6/pipeable-operators" } ], "rewrites": [ { "source": "**/!(*.*)", "destination": "/index.html" } ], "headers": [ { "source": "/", "headers": [ { "key": "Link", "value": ";rel=preload;as=fetch,;rel=preload;as=fetch" } ] } ] } } rxjs-7.5.7/docs_app/ngsw-config.json000066400000000000000000000036401431412030200174150ustar00rootroot00000000000000{ "index": "/index.html", "assetGroups": [ { "name": "app-shell", "installMode": "prefetch", "updateMode": "prefetch", "resources": { "files": [ "/index.html", "/pwa-manifest.json", "/app/search/search-worker.js", "/assets/images/favicons/favicon.ico", "/assets/js/*.js", "/*.css", "/*.js" ], "urls": [ "https://fonts.googleapis.com/**", "https://fonts.gstatic.com/s/**", "https://maxcdn.bootstrapcdn.com/**" ] } }, { "name": "assets-eager", "installMode": "prefetch", "updateMode": "prefetch", "resources": { "files": [ "/assets/images/**", "/generated/images/marketing/**", "!/assets/images/favicons/**", "!/**/_unused/**", "!/assets/images/marble-diagrams/**" ] } }, { "name": "assets-lazy", "installMode": "lazy", "updateMode": "prefetch", "resources": { "files": [ "/assets/images/favicons/**", "!/**/_unused/**" ] } }, { "name": "docs-index", "installMode": "prefetch", "updateMode": "prefetch", "resources": { "files": [ "/generated/*.json", "/generated/docs/*.json", "/generated/docs/api/api-list.json", "/generated/docs/app/search-data.json" ] } }, { "name": "docs-lazy", "installMode": "lazy", "updateMode": "lazy", "resources": { "files": [ "/generated/docs/**/*.json", "/generated/images/**", "!/**/_unused/**" ] } }, { "name": "marble-diagrams", "installMode": "lazy", "updateMode": "lazy", "resources": { "files": [ "/assets/images/marble-diagrams/**" ] } } ] } rxjs-7.5.7/docs_app/package-lock.json000066400000000000000000070127301431412030200175240ustar00rootroot00000000000000{ "name": "rxjs.dev", "version": "1.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "rxjs.dev", "version": "1.0.0", "hasInstallScript": true, "license": "MIT", "dependencies": { "@angular/animations": "^13.1.1", "@angular/cdk": "^13.1.1", "@angular/common": "^13.1.1", "@angular/compiler": "^13.1.1", "@angular/core": "^13.1.1", "@angular/elements": "^13.1.1", "@angular/forms": "^13.1.1", "@angular/material": "^13.1.1", "@angular/platform-browser": "^13.1.1", "@angular/platform-browser-dynamic": "^13.1.1", "@angular/router": "^13.1.1", "@angular/service-worker": "^13.1.1", "@stackblitz/sdk": "^1.5.3", "@webcomponents/custom-elements": "^1.5.0", "eyes.selenium": "^3.7.0", "rxjs": "^7.5.1", "tslib": "^2.3.1", "zone.js": "~0.11.4" }, "devDependencies": { "@angular-devkit/build-angular": "~13.1.2", "@angular/cli": "^13.1.2", "@angular/compiler-cli": "^13.1.1", "@jsdevtools/rehype-inline-svg": "^1.1.1", "@swirly/parser": "^0.17.6", "@swirly/renderer-node": "^0.17.6", "@swirly/types": "^0.17.6", "@types/jasmine": "~3.6.0", "@types/jasminewd2": "^2.0.3", "@types/node": "^12.11.1", "@types/svgo": "^1.3.3", "archiver": "^3.0.0", "canonical-path": "^1.0.0", "chalk": "^2.1.0", "cjson": "^0.5.0", "codelyzer": "^6.0.0", "concurrently": "^5.3.0", "cross-spawn": "^6.0.5", "css-selector-parser": "^1.3.0", "dgeni": "^0.4.14", "dgeni-packages": "^0.29.1", "entities": "^1.1.1", "eslint": "^5.16.0", "eslint-plugin-jasmine": "^2.2.0", "firebase-tools": "^9.3.0", "fs-extra": "^8.0.1", "globby": "^9.2.0", "hast-util-is-element": "^1.0.3", "hast-util-to-string": "^1.0.2", "html": "^1.0.0", "http-server": "^0.12.3", "ignore": "^5.1.2", "image-size": "^0.7.4", "jasmine": "^3.4.0", "jasmine-core": "~3.6.0", "jasmine-marbles": "^0.5.0", "jasmine-spec-reporter": "~5.0.0", "jasmine-ts": "^0.3.0", "jsdom": "^15.1.1", "karma": "~6.3.16", "karma-chrome-launcher": "~3.1.0", "karma-cli": "^2.0.0", "karma-coverage-istanbul-reporter": "~3.0.2", "karma-jasmine": "~4.0.0", "karma-jasmine-html-reporter": "^1.5.0", "lighthouse": "^7.0.1", "lodash": "^4.17.20", "lunr": "^2.1.0", "protractor": "~7.0.0", "rehype-slug": "^2.0.3", "remark": "^12.0.1", "remark-html": "^13.0.2", "rimraf": "^2.6.1", "semver": "^6.1.1", "shelljs": "^0.8.3", "svgo": "^1.3.2", "svgson": "^4.1.0", "swirly-parser": "^0.13.6", "swirly-renderer-node": "^0.13.6", "swirly-types": "^0.13.6", "tree-kill": "^1.2.2", "ts-node": "^8.2.0", "tslint": "~6.1.0", "typescript": "4.5.4", "uglify-js": "^3.6.0", "unist-util-filter": "^1.0.2", "unist-util-source": "^1.0.5", "unist-util-visit": "^1.4.1", "unist-util-visit-parents": "^2.1.2", "vrsource-tslint-rules": "^6.0.0", "watchr": "^4.1.0", "xregexp": "^4.0.0", "yamljs": "^0.3.0", "yargs": "^13.2.4" }, "engines": { "node": ">=10.9" } }, "node_modules/@ampproject/remapping": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-1.0.2.tgz", "integrity": "sha512-SncaVxs+E3EdoA9xJgHfWPxZfowAgeIsd71VpqCKP6KNKm6s7zSqqvUc70UpKUFsrV3dAmy6qxHoIj5NG+3DiA==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "1.0.0", "sourcemap-codec": "1.4.8" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@angular-devkit/architect": { "version": "0.1301.2", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1301.2.tgz", "integrity": "sha512-v8e6OF80Ezo5MTHtFcq1AZJH+Wq+hN9pMZ1iLGkODIfKIW9zx6aPhx0JY0b7sZkfNVL8ay8JA8f339eBMnOE9A==", "dev": true, "dependencies": { "@angular-devkit/core": "13.1.2", "rxjs": "6.6.7" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-devkit/architect/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/@angular-devkit/architect/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@angular-devkit/build-angular": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.1.2.tgz", "integrity": "sha512-0FeDqfjWJjgIU42T3136RNYb7Yv2as6Z8rAnfUlX6RjRGZf98+6ZQZ80yREgrLkm7L8G1qWJc1sn3NyVMDwf9A==", "dev": true, "dependencies": { "@ampproject/remapping": "1.0.2", "@angular-devkit/architect": "0.1301.2", "@angular-devkit/build-webpack": "0.1301.2", "@angular-devkit/core": "13.1.2", "@babel/core": "7.16.0", "@babel/generator": "7.16.0", "@babel/helper-annotate-as-pure": "7.16.0", "@babel/plugin-proposal-async-generator-functions": "7.16.4", "@babel/plugin-transform-async-to-generator": "7.16.0", "@babel/plugin-transform-runtime": "7.16.4", "@babel/preset-env": "7.16.4", "@babel/runtime": "7.16.3", "@babel/template": "7.16.0", "@discoveryjs/json-ext": "0.5.6", "@ngtools/webpack": "13.1.2", "ansi-colors": "4.1.1", "babel-loader": "8.2.3", "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.9.1", "cacache": "15.3.0", "circular-dependency-plugin": "5.2.2", "copy-webpack-plugin": "10.0.0", "core-js": "3.19.3", "critters": "0.0.15", "css-loader": "6.5.1", "esbuild-wasm": "0.14.2", "glob": "7.2.0", "https-proxy-agent": "5.0.0", "inquirer": "8.2.0", "jsonc-parser": "3.0.0", "karma-source-map-support": "1.4.0", "less": "4.1.2", "less-loader": "10.2.0", "license-webpack-plugin": "4.0.0", "loader-utils": "3.2.0", "mini-css-extract-plugin": "2.4.5", "minimatch": "3.0.4", "open": "8.4.0", "ora": "5.4.1", "parse5-html-rewriting-stream": "6.0.1", "piscina": "3.1.0", "postcss": "8.4.4", "postcss-import": "14.0.2", "postcss-loader": "6.2.1", "postcss-preset-env": "6.7.0", "regenerator-runtime": "0.13.9", "resolve-url-loader": "4.0.0", "rxjs": "6.6.7", "sass": "1.44.0", "sass-loader": "12.4.0", "semver": "7.3.5", "source-map-loader": "3.0.0", "source-map-support": "0.5.21", "stylus": "0.55.0", "stylus-loader": "6.2.0", "terser": "5.10.0", "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.3.1", "webpack": "5.65.0", "webpack-dev-middleware": "5.2.2", "webpack-dev-server": "4.6.0", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.0.0" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "optionalDependencies": { "esbuild": "0.14.2" }, "peerDependencies": { "@angular/compiler-cli": "^13.0.0 || ^13.1.0-next", "@angular/localize": "^13.0.0 || ^13.1.0-next", "@angular/service-worker": "^13.0.0 || ^13.1.0-next", "karma": "^6.3.0", "ng-packagr": "^13.0.0 || ^13.1.0-next", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", "typescript": ">=4.4.3 <4.6" }, "peerDependenciesMeta": { "@angular/localize": { "optional": true }, "@angular/service-worker": { "optional": true }, "karma": { "optional": true }, "ng-packagr": { "optional": true }, "protractor": { "optional": true }, "tailwindcss": { "optional": true } } }, "node_modules/@angular-devkit/build-angular/node_modules/acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, "optional": true, "peer": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/@angular-devkit/build-angular/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@angular-devkit/build-angular/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@angular-devkit/build-angular/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/@angular-devkit/build-angular/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/@angular-devkit/build-angular/node_modules/core-js": { "version": "3.19.3", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.3.tgz", "integrity": "sha512-LeLBMgEGSsG7giquSzvgBrTS7V5UL6ks3eQlUSbN8dJStlLFiRzUm5iqsRyzUB8carhfKjkJ2vzKqE6z1Vga9g==", "dev": true, "hasInstallScript": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/@angular-devkit/build-angular/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/@angular-devkit/build-angular/node_modules/inquirer": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", "dev": true, "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", "rxjs": "^7.2.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "engines": { "node": ">=8.0.0" } }, "node_modules/@angular-devkit/build-angular/node_modules/inquirer/node_modules/rxjs": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.1.tgz", "integrity": "sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==", "dev": true, "dependencies": { "tslib": "^2.1.0" } }, "node_modules/@angular-devkit/build-angular/node_modules/loader-utils": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", "dev": true, "engines": { "node": ">= 12.13.0" } }, "node_modules/@angular-devkit/build-angular/node_modules/regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/@angular-devkit/build-angular/node_modules/rxjs/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@angular-devkit/build-angular/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/@angular-devkit/build-angular/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/@angular-devkit/build-angular/node_modules/terser": { "version": "5.10.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "dev": true, "dependencies": { "commander": "^2.20.0", "source-map": "~0.7.2", "source-map-support": "~0.5.20" }, "bin": { "terser": "bin/terser" }, "engines": { "node": ">=10" }, "peerDependencies": { "acorn": "^8.5.0" }, "peerDependenciesMeta": { "acorn": { "optional": true } } }, "node_modules/@angular-devkit/build-webpack": { "version": "0.1301.2", "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1301.2.tgz", "integrity": "sha512-Xk0k0tMcLOy2HI1/YrfWeLUrtKvk7/E7fhG3XoozT/pXBQgiZGoPuCt34HNPDkx3WNSedzvh5DNv8kPlILfjIw==", "dev": true, "dependencies": { "@angular-devkit/architect": "0.1301.2", "rxjs": "6.6.7" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { "webpack": "^5.30.0", "webpack-dev-server": "^4.0.0" } }, "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@angular-devkit/core": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.1.2.tgz", "integrity": "sha512-uXVesIRiCL/Nv+RSV8JM4j8IoZiGCGnqV2FOJ1hvH7DPxIjhjPMdG/B54xMydZpeASW3ofuxeORyAXxFIBm8Zg==", "dev": true, "dependencies": { "ajv": "8.8.2", "ajv-formats": "2.1.1", "fast-json-stable-stringify": "2.1.0", "magic-string": "0.25.7", "rxjs": "6.6.7", "source-map": "0.7.3" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { "chokidar": "^3.5.2" }, "peerDependenciesMeta": { "chokidar": { "optional": true } } }, "node_modules/@angular-devkit/core/node_modules/ajv": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/@angular-devkit/core/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/@angular-devkit/core/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/@angular-devkit/core/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@angular-devkit/schematics": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.1.2.tgz", "integrity": "sha512-ayYbHGU8QpMGx8ZyhKOBupz+Zfv/2H1pNQErahYV3qg7hA9hfjTGmNmDQ4iw0fiT04NajjUxuomlKsCsg7oXDw==", "dev": true, "dependencies": { "@angular-devkit/core": "13.1.2", "jsonc-parser": "3.0.0", "magic-string": "0.25.7", "ora": "5.4.1", "rxjs": "6.6.7" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-devkit/schematics/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/@angular-devkit/schematics/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/@angular/animations": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-13.1.1.tgz", "integrity": "sha512-6ECC9Dn5gmV4U1cz1pRJ2p5lo0BET2CjG1RbhTaZR8lOsoMsmlV/JdBAp8eyYTiGii3MLS6Q2P/hN/YG2SRGQQ==", "dependencies": { "tslib": "^2.3.0" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0" }, "peerDependencies": { "@angular/core": "13.1.1" } }, "node_modules/@angular/cdk": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-13.1.1.tgz", "integrity": "sha512-66PyWg+zKdxTe3b1pc1RduT8hsMs/hJ0aD0JX0pSEWVq7O0OJWJ5f0z+Mk03T9tAERA3NK1GifcKEDq5k7R2Zw==", "dependencies": { "tslib": "^2.3.0" }, "optionalDependencies": { "parse5": "^5.0.0" }, "peerDependencies": { "@angular/common": "^13.0.0 || ^14.0.0-0", "@angular/core": "^13.0.0 || ^14.0.0-0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/cli": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.1.2.tgz", "integrity": "sha512-jEsQWzHgODFpppWGb49jfqlN8YYhphsKY3MPHlrjmd05qWgKItUGSgA46hSoDqjaJKVUN9koUnJBFCc9utERYA==", "dev": true, "hasInstallScript": true, "dependencies": { "@angular-devkit/architect": "0.1301.2", "@angular-devkit/core": "13.1.2", "@angular-devkit/schematics": "13.1.2", "@schematics/angular": "13.1.2", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.1", "debug": "4.3.3", "ini": "2.0.0", "inquirer": "8.2.0", "jsonc-parser": "3.0.0", "npm-package-arg": "8.1.5", "npm-pick-manifest": "6.1.1", "open": "8.4.0", "ora": "5.4.1", "pacote": "12.0.2", "resolve": "1.20.0", "semver": "7.3.5", "symbol-observable": "4.0.0", "uuid": "8.3.2" }, "bin": { "ng": "bin/ng.js" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular/cli/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@angular/cli/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/@angular/cli/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/@angular/cli/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/@angular/cli/node_modules/debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/@angular/cli/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/@angular/cli/node_modules/inquirer": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", "dev": true, "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", "rxjs": "^7.2.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "engines": { "node": ">=8.0.0" } }, "node_modules/@angular/cli/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/@angular/cli/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/@angular/cli/node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/@angular/common": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.1.1.tgz", "integrity": "sha512-FQwRZ1XgTH2PbPjBmq2jAZzETVNX9yWQt21MuNGtokC7V4eS0NYlFIDbhy3UPWCzRgd3+P7P4+HdX15VxCjf9g==", "dependencies": { "tslib": "^2.3.0" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0" }, "peerDependencies": { "@angular/core": "13.1.1", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.1.1.tgz", "integrity": "sha512-WS+BB4h2LOBAGQ+P+RcKDw43Z7yAB5m1RY2/MAI+qI339V97WlWEQXxSMvBhCuzJnww1SSZfHMADaB54Jdjx2g==", "dependencies": { "tslib": "^2.3.0" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0" } }, "node_modules/@angular/compiler-cli": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-13.1.1.tgz", "integrity": "sha512-ycdXN2urBZepbXn2xx1oxF1i6g0Dq/Rb8ySQeELdL9qr6hiZF9fkvIwd91d8uhFG2PvoM4O8/U/3x4yA2bXzew==", "dev": true, "dependencies": { "@babel/core": "^7.8.6", "canonical-path": "1.0.0", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", "dependency-graph": "^0.11.0", "magic-string": "^0.25.0", "reflect-metadata": "^0.1.2", "semver": "^7.0.0", "sourcemap-codec": "^1.4.8", "tslib": "^2.3.0", "yargs": "^17.2.1" }, "bin": { "ng-xi18n": "bundles/src/bin/ng_xi18n.js", "ngc": "bundles/src/bin/ngc.js", "ngcc": "bundles/ngcc/main-ngcc.js" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0" }, "peerDependencies": { "@angular/compiler": "13.1.1", "typescript": ">=4.4.2 <4.6" } }, "node_modules/@angular/compiler-cli/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@angular/compiler-cli/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "node_modules/@angular/compiler-cli/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/@angular/compiler-cli/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/@angular/compiler-cli/node_modules/dependency-graph": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", "dev": true, "engines": { "node": ">= 0.6.0" } }, "node_modules/@angular/compiler-cli/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/@angular/compiler-cli/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/@angular/compiler-cli/node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/@angular/compiler-cli/node_modules/yargs": { "version": "17.3.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", "dev": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.0.0" }, "engines": { "node": ">=12" } }, "node_modules/@angular/compiler-cli/node_modules/yargs-parser": { "version": "21.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/@angular/core": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.1.1.tgz", "integrity": "sha512-oLGKgzUbHqte/q7EokOJWUiXAtBjwuZM6c9Or2a7WDJNeImQilxk5qy91RPSbP8FhOBysebqAayrfiCYexlShg==", "dependencies": { "tslib": "^2.3.0" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0" }, "peerDependencies": { "rxjs": "^6.5.3 || ^7.4.0", "zone.js": "~0.11.4" } }, "node_modules/@angular/elements": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/elements/-/elements-13.1.1.tgz", "integrity": "sha512-d9tDTvyz5ZK30H1RwE54EbFSMZ2nA5uRWJMWdD4AImSM72v+gQR2pNmt1Wp+cZ1K34i5LJdg1FhMqvfUTjQGZQ==", "dependencies": { "tslib": "^2.3.0" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0" }, "peerDependencies": { "@angular/core": "13.1.1", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/forms": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-13.1.1.tgz", "integrity": "sha512-wtYzRHPv4mf1Vsi4GEal5qcI2wjqUW+lu8Fsd2Aoe8NqkwtY3fq+iWEP/4pnvmH0RlC+3QbNNV/01D5UKolvgg==", "dependencies": { "tslib": "^2.3.0" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0" }, "peerDependencies": { "@angular/common": "13.1.1", "@angular/core": "13.1.1", "@angular/platform-browser": "13.1.1", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/material": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/material/-/material-13.1.1.tgz", "integrity": "sha512-kKWZBhnzuBYAVO1nrkqEaVTCJ2onEWs+tzAJDIlmbo9USiQyVCnFXx+rs86m4kRUxeAAZ9mcW5BGJr6oy5ClCA==", "dependencies": { "tslib": "^2.3.0" }, "peerDependencies": { "@angular/animations": "^13.0.0 || ^14.0.0-0", "@angular/cdk": "13.1.1", "@angular/common": "^13.0.0 || ^14.0.0-0", "@angular/core": "^13.0.0 || ^14.0.0-0", "@angular/forms": "^13.0.0 || ^14.0.0-0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/platform-browser": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.1.1.tgz", "integrity": "sha512-jk9MGwnaVc98wmw5dRBicduI/a8dHtUzaAi1dV003fUWldS9a5FBuj/ym7DJubaD5Njl8l79SFbjrP9aAsqM5A==", "dependencies": { "tslib": "^2.3.0" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0" }, "peerDependencies": { "@angular/animations": "13.1.1", "@angular/common": "13.1.1", "@angular/core": "13.1.1" }, "peerDependenciesMeta": { "@angular/animations": { "optional": true } } }, "node_modules/@angular/platform-browser-dynamic": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.1.1.tgz", "integrity": "sha512-ujHJMhJk93hjLx/SQ67y7xiGh2UDL+toVi3OlorWvnYGgPR26ufyL+J73BA+RAKHSP2WPiXU+/87vSz8r+BEgA==", "dependencies": { "tslib": "^2.3.0" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0" }, "peerDependencies": { "@angular/common": "13.1.1", "@angular/compiler": "13.1.1", "@angular/core": "13.1.1", "@angular/platform-browser": "13.1.1" } }, "node_modules/@angular/router": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.1.1.tgz", "integrity": "sha512-rlz5BBgNX+G2vVu2Gb5avx3LL08i7R/xZO7zPwh0HhXz/Vp8XFlWwaqAGb6Hgat772K2uCxF1/JBLQCUBY2MNQ==", "dependencies": { "tslib": "^2.3.0" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0" }, "peerDependencies": { "@angular/common": "13.1.1", "@angular/core": "13.1.1", "@angular/platform-browser": "13.1.1", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/service-worker": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-13.1.1.tgz", "integrity": "sha512-R/Qkl4zC6OmSUN+pRrQaWAwZnW09wKaAPOAMfuLCUZjjBzRi2ClP8UdjhCe0Aq3Vmq9TYoagDM0JHNFevCFoMQ==", "dependencies": { "tslib": "^2.3.0" }, "bin": { "ngsw-config": "ngsw-config.js" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0" }, "peerDependencies": { "@angular/common": "13.1.1", "@angular/core": "13.1.1" } }, "node_modules/@apidevtools/json-schema-ref-parser": { "version": "9.0.7", "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.7.tgz", "integrity": "sha512-QdwOGF1+eeyFh+17v2Tz626WX0nucd1iKOm6JUTUvCZdbolblCOOQCxGrQPY0f7jEhn36PiAWqZnsC2r5vmUWg==", "dev": true, "dependencies": { "@jsdevtools/ono": "^7.1.3", "call-me-maybe": "^1.0.1", "js-yaml": "^3.13.1" } }, "node_modules/@applitools/eyes-common-legacy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@applitools/eyes-common-legacy/-/eyes-common-legacy-1.0.1.tgz", "integrity": "sha512-DTjtjOyLJx6WutApKNrVQ0dRX4FbxKQ4ABeHvy0IFGe3XoXpaPvuR9/Qxh8FU0VH1vOF75dRpdrsvJRukNYnVQ==", "dependencies": { "dateformat": "^3.0.3", "png-async": "^0.9.4" }, "engines": { "node": ">=8.9.0" } }, "node_modules/@applitools/eyes-sdk-core-legacy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@applitools/eyes-sdk-core-legacy/-/eyes-sdk-core-legacy-1.0.1.tgz", "integrity": "sha512-DdVjtmK3sPOUewx993XoWM/ZQW+ivDgMBnRRjBeMz7YcKDPykYsnWx2KESf60H4EkdpCTMJrHoovNaAA93+dbg==", "dependencies": { "@applitools/eyes-common-legacy": "1.0.1", "request": "^2.88.0" }, "engines": { "node": ">=8.9.0" } }, "node_modules/@assemblyscript/loader": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", "dev": true }, "node_modules/@babel/code-frame": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "dependencies": { "@babel/highlight": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { "version": "7.16.4", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.0", "@babel/generator": "^7.16.0", "@babel/helper-compilation-targets": "^7.16.0", "@babel/helper-module-transforms": "^7.16.0", "@babel/helpers": "^7.16.0", "@babel/parser": "^7.16.0", "@babel/template": "^7.16.0", "@babel/traverse": "^7.16.0", "@babel/types": "^7.16.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", "semver": "^6.3.0", "source-map": "^0.5.0" }, "engines": { "node": ">=6.9.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/babel" } }, "node_modules/@babel/core/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/@babel/generator": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", "dev": true, "dependencies": { "@babel/types": "^7.16.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/generator/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", "dev": true, "dependencies": { "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", "dev": true, "dependencies": { "@babel/helper-explode-assignable-expression": "^7.16.7", "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", "dev": true, "dependencies": { "@babel/compat-data": "^7.16.4", "@babel/helper-validator-option": "^7.16.7", "browserslist": "^4.17.5", "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz", "integrity": "sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-member-expression-to-functions": "^7.16.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/@babel/helper-annotate-as-pure": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz", "integrity": "sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "regexpu-core": "^4.7.1" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/@babel/helper-annotate-as-pure": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-module-imports": "^7.12.13", "@babel/helper-plugin-utils": "^7.13.0", "@babel/traverse": "^7.13.0", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", "semver": "^6.1.2" }, "peerDependencies": { "@babel/core": "^7.4.0-0" } }, "node_modules/@babel/helper-environment-visitor": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-explode-assignable-expression": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "dev": true, "dependencies": { "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name/node_modules/@babel/template": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-get-function-arity": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", "@babel/helper-simple-access": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", "@babel/traverse": "^7.16.7", "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms/node_modules/@babel/template": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.7.tgz", "integrity": "sha512-C3o117GnP/j/N2OWo+oepeWbFEKRfNaay+F1Eo5Mj3A1SRjyx+qaFhm23nlipub7Cjv2azdUUiDH+VlpdwUFRg==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-wrap-function": "^7.16.7", "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator/node_modules/@babel/helper-annotate-as-pure": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-replace-supers": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-member-expression-to-functions": "^7.16.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/traverse": "^7.16.7", "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", "dev": true, "dependencies": { "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.7.tgz", "integrity": "sha512-7a9sABeVwcunnztZZ7WTgSw6jVYLzM1wua0Z4HIXm9S3/HC96WKQTkFgGEaj5W06SHHihPJ6Le6HzS5cGOQMNw==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.16.7", "@babel/template": "^7.16.7", "@babel/traverse": "^7.16.7", "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", "dev": true, "dependencies": { "@babel/template": "^7.16.7", "@babel/traverse": "^7.16.7", "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers/node_modules/@babel/template": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.7.tgz", "integrity": "sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-proposal-optional-chaining": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.13.0" } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { "version": "7.16.4", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz", "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.16.4", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-class-properties": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-class-static-block": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.12.0" } }, "node_modules/@babel/plugin-proposal-dynamic-import": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-json-strings": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-numeric-separator": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", "dev": true, "dependencies": { "@babel/compat-data": "^7.16.4", "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-optional-catch-binding": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-optional-chaining": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-private-methods": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.7.tgz", "integrity": "sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw==", "dev": true, "dependencies": { "@babel/helper-create-class-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-create-class-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-proposal-private-property-in-object/node_modules/@babel/helper-annotate-as-pure": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz", "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.16.0", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.16.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-classes": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-classes/node_modules/@babel/helper-annotate-as-pure": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dev": true, "dependencies": { "@babel/types": "^7.16.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-destructuring": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", "dev": true, "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-function-name": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-literals": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.7.tgz", "integrity": "sha512-h2RP2kE7He1ZWKyAlanMZrAbdv+Acw1pA8dQZhE025WJZE2z0xzFADAinXA9fxd5bn7JnM+SdOGcndGx1ARs9w==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-simple-access": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-systemjs": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.7.tgz", "integrity": "sha512-kFy35VwmwIQwCjwrAQhl3+c/kr292i4KdLPKp5lPH03Ltc51qnFlIADoyPxc/6Naz3ok3WdYKg+KK6AH+D4utg==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-transform-new-target": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-object-super": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-parameters": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-property-literals": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", "dev": true, "dependencies": { "regenerator-transform": "^0.14.2" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-runtime": { "version": "7.16.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.4.tgz", "integrity": "sha512-pru6+yHANMTukMtEZGC4fs7XPwg35v8sj5CIEmE+gEkFljFiVJxEWxx/7ZDkTK+iZRYo1bFXBtfIN95+K3cJ5A==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.16.0", "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.4.0", "babel-plugin-polyfill-regenerator": "^0.3.0", "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-spread": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-template-literals": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/preset-env": { "version": "7.16.4", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz", "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==", "dev": true, "dependencies": { "@babel/compat-data": "^7.16.4", "@babel/helper-compilation-targets": "^7.16.3", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", "@babel/plugin-proposal-async-generator-functions": "^7.16.4", "@babel/plugin-proposal-class-properties": "^7.16.0", "@babel/plugin-proposal-class-static-block": "^7.16.0", "@babel/plugin-proposal-dynamic-import": "^7.16.0", "@babel/plugin-proposal-export-namespace-from": "^7.16.0", "@babel/plugin-proposal-json-strings": "^7.16.0", "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", "@babel/plugin-proposal-numeric-separator": "^7.16.0", "@babel/plugin-proposal-object-rest-spread": "^7.16.0", "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", "@babel/plugin-proposal-optional-chaining": "^7.16.0", "@babel/plugin-proposal-private-methods": "^7.16.0", "@babel/plugin-proposal-private-property-in-object": "^7.16.0", "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-transform-arrow-functions": "^7.16.0", "@babel/plugin-transform-async-to-generator": "^7.16.0", "@babel/plugin-transform-block-scoped-functions": "^7.16.0", "@babel/plugin-transform-block-scoping": "^7.16.0", "@babel/plugin-transform-classes": "^7.16.0", "@babel/plugin-transform-computed-properties": "^7.16.0", "@babel/plugin-transform-destructuring": "^7.16.0", "@babel/plugin-transform-dotall-regex": "^7.16.0", "@babel/plugin-transform-duplicate-keys": "^7.16.0", "@babel/plugin-transform-exponentiation-operator": "^7.16.0", "@babel/plugin-transform-for-of": "^7.16.0", "@babel/plugin-transform-function-name": "^7.16.0", "@babel/plugin-transform-literals": "^7.16.0", "@babel/plugin-transform-member-expression-literals": "^7.16.0", "@babel/plugin-transform-modules-amd": "^7.16.0", "@babel/plugin-transform-modules-commonjs": "^7.16.0", "@babel/plugin-transform-modules-systemjs": "^7.16.0", "@babel/plugin-transform-modules-umd": "^7.16.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", "@babel/plugin-transform-new-target": "^7.16.0", "@babel/plugin-transform-object-super": "^7.16.0", "@babel/plugin-transform-parameters": "^7.16.3", "@babel/plugin-transform-property-literals": "^7.16.0", "@babel/plugin-transform-regenerator": "^7.16.0", "@babel/plugin-transform-reserved-words": "^7.16.0", "@babel/plugin-transform-shorthand-properties": "^7.16.0", "@babel/plugin-transform-spread": "^7.16.0", "@babel/plugin-transform-sticky-regex": "^7.16.0", "@babel/plugin-transform-template-literals": "^7.16.0", "@babel/plugin-transform-typeof-symbol": "^7.16.0", "@babel/plugin-transform-unicode-escapes": "^7.16.0", "@babel/plugin-transform-unicode-regex": "^7.16.0", "@babel/preset-modules": "^0.1.5", "@babel/types": "^7.16.0", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.4.0", "babel-plugin-polyfill-regenerator": "^0.3.0", "core-js-compat": "^3.19.1", "semver": "^6.3.0" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/preset-modules": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/runtime": { "version": "7.16.3", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", "dev": true, "dependencies": { "regenerator-runtime": "^0.13.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { "version": "7.13.10", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz", "integrity": "sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg==", "dev": true, "dependencies": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "node_modules/@babel/template": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.0", "@babel/parser": "^7.16.0", "@babel/types": "^7.16.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.7.tgz", "integrity": "sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", "@babel/generator": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7", "debug": "^4.1.0", "globals": "^11.1.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse/node_modules/@babel/generator": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.7.tgz", "integrity": "sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg==", "dev": true, "dependencies": { "@babel/types": "^7.16.7", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/@babel/types": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz", "integrity": "sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@csstools/convert-colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", "dev": true, "engines": { "node": ">=4.0.0" } }, "node_modules/@dabh/diagnostics": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", "dev": true, "dependencies": { "colorspace": "1.1.x", "enabled": "2.0.x", "kuler": "^2.0.0" } }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", "dev": true, "engines": { "node": ">=10.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", "espree": "^7.3.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/@eslint/eslintrc/node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/@eslint/eslintrc/node_modules/espree": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.11.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "dependencies": { "type-fest": "^0.20.2" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/eslintrc/node_modules/ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@gar/promisify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==", "dev": true }, "node_modules/@google-cloud/paginator": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.5.tgz", "integrity": "sha512-N4Uk4BT1YuskfRhKXBs0n9Lg2YTROZc6IMpkO/8DIHODtm5s3xY8K5vVBo23v/2XulY3azwITQlYWgT4GdLsUw==", "dev": true, "dependencies": { "arrify": "^2.0.0", "extend": "^3.0.2" }, "engines": { "node": ">=10" } }, "node_modules/@google-cloud/precise-date": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@google-cloud/precise-date/-/precise-date-2.0.3.tgz", "integrity": "sha512-+SDJ3ZvGkF7hzo6BGa8ZqeK3F6Z4+S+KviC9oOK+XCs3tfMyJCh/4j93XIWINgMMDIh9BgEvlw4306VxlXIlYA==", "dev": true, "engines": { "node": ">=10.4.0" } }, "node_modules/@google-cloud/projectify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.0.1.tgz", "integrity": "sha512-ZDG38U/Yy6Zr21LaR3BTiiLtpJl6RkPS/JwoRT453G+6Q1DhlV0waNf8Lfu+YVYGIIxgKnLayJRfYlFJfiI8iQ==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/@google-cloud/promisify": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.3.tgz", "integrity": "sha512-d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/@google-cloud/pubsub": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.10.0.tgz", "integrity": "sha512-XM/Fc6/W/LYzGH2pnhGLDR5E6JNZFMfzyUFP5bWgC4FK1KqIZ4g6hrnCCO38G4JfH2i1IuSQuefPF7FrZZo9tw==", "dev": true, "dependencies": { "@google-cloud/paginator": "^3.0.0", "@google-cloud/precise-date": "^2.0.0", "@google-cloud/projectify": "^2.0.0", "@google-cloud/promisify": "^2.0.0", "@opentelemetry/api": "^0.12.0", "@opentelemetry/tracing": "^0.12.0", "@types/duplexify": "^3.6.0", "@types/long": "^4.0.0", "arrify": "^2.0.0", "extend": "^3.0.2", "google-auth-library": "^7.0.0", "google-gax": "^2.9.2", "is-stream-ended": "^0.1.4", "lodash.snakecase": "^4.1.1", "p-defer": "^3.0.0" }, "engines": { "node": ">=10" } }, "node_modules/@google-cloud/pubsub/node_modules/google-auth-library": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.0.3.tgz", "integrity": "sha512-6wJNYqY1QUr5I2lWaUkkzOT2b9OCNhNQrdFOt/bsBbGb7T7NCdEvrBsXraUm+KTUGk2xGlQ7m9RgUd4Llcw8NQ==", "dev": true, "dependencies": { "arrify": "^2.0.0", "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", "fast-text-encoding": "^1.0.0", "gaxios": "^4.0.0", "gcp-metadata": "^4.2.0", "gtoken": "^5.0.4", "jws": "^4.0.0", "lru-cache": "^6.0.0" }, "engines": { "node": ">=10" } }, "node_modules/@grpc/grpc-js": { "version": "1.2.12", "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.2.12.tgz", "integrity": "sha512-+gPCklP1eqIgrNPyzddYQdt9+GvZqPlLpIjIo+TveE+gbtp74VV1A2ju8ExeO8ma8f7MbpaGZx/KJPYVWL9eDw==", "dev": true, "dependencies": { "@types/node": ">=12.12.47", "google-auth-library": "^6.1.1", "semver": "^6.2.0" }, "engines": { "node": "^8.13.0 || >=10.10.0" } }, "node_modules/@grpc/proto-loader": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.6.tgz", "integrity": "sha512-DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ==", "dev": true, "dependencies": { "lodash.camelcase": "^4.3.0", "protobufjs": "^6.8.6" }, "engines": { "node": ">=6" } }, "node_modules/@humanwhocodes/config-array": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.0", "debug": "^4.1.1", "minimatch": "^3.0.4" }, "engines": { "node": ">=10.10.0" } }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", "dev": true }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { "p-locate": "^4.1.0" }, "engines": { "node": ">=8" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { "p-limit": "^2.2.0" }, "engines": { "node": ">=8" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/@jridgewell/resolve-uri": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz", "integrity": "sha512-9oLAnygRMi8Q5QkYEU4XWK04B+nuoXoxjRvRxgjuChkLZFBja0YPSgdZ7dZtwhncLBcQe/I/E+fLuk5qxcYVJA==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jsdevtools/ono": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", "dev": true }, "node_modules/@jsdevtools/rehype-inline-svg": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@jsdevtools/rehype-inline-svg/-/rehype-inline-svg-1.1.4.tgz", "integrity": "sha512-gwP4qL24RPW0FxG/MyHuiZAAF02KYiCu7LnVQWtsYOHPIQJ14HeDROOLr4ANviauYeoXM8dmtufRyguxF00xeg==", "dev": true, "dependencies": { "rehype-parse": "^7.0.1", "svgo": "^1.3.2", "unified": "^9.2.0" }, "engines": { "node": ">=10" } }, "node_modules/@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "dependencies": { "call-me-maybe": "^1.0.1", "glob-to-regexp": "^0.3.0" }, "engines": { "node": ">=4" } }, "node_modules/@ngtools/webpack": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.1.2.tgz", "integrity": "sha512-F/KraxCCUjSn5nWVEQSuyVfnoE9j/bTcpIb+6e38/Hq/saPfsUoNiRjWlTAxCD44vHbMuVkJ/ZRZT6hdICAslw==", "dev": true, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" }, "peerDependencies": { "@angular/compiler-cli": "^13.0.0 || ^13.1.0-next", "typescript": ">=4.4.3 <4.6", "webpack": "^5.30.0" } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" }, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" }, "engines": { "node": ">= 8" } }, "node_modules/@npmcli/fs": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", "integrity": "sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==", "dev": true, "dependencies": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/@npmcli/fs/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/@npmcli/git": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^1.3.2", "lru-cache": "^6.0.0", "mkdirp": "^1.0.4", "npm-pick-manifest": "^6.1.1", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^2.0.2" } }, "node_modules/@npmcli/git/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" } }, "node_modules/@npmcli/git/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/@npmcli/git/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/@npmcli/installed-package-contents": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", "dev": true, "dependencies": { "npm-bundled": "^1.1.1", "npm-normalize-package-bin": "^1.0.1" }, "bin": { "installed-package-contents": "index.js" }, "engines": { "node": ">= 10" } }, "node_modules/@npmcli/move-file": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "dev": true, "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" }, "engines": { "node": ">=10" } }, "node_modules/@npmcli/move-file/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" } }, "node_modules/@npmcli/move-file/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@npmcli/node-gyp": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", "dev": true }, "node_modules/@npmcli/promise-spawn": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", "dev": true, "dependencies": { "infer-owner": "^1.0.4" } }, "node_modules/@npmcli/run-script": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^1.0.2", "@npmcli/promise-spawn": "^1.3.2", "node-gyp": "^8.2.0", "read-package-json-fast": "^2.0.1" } }, "node_modules/@npmcli/run-script/node_modules/are-we-there-yet": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "dev": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" }, "engines": { "node": ">=10" } }, "node_modules/@npmcli/run-script/node_modules/gauge": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.0.tgz", "integrity": "sha512-F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw==", "dev": true, "dependencies": { "ansi-regex": "^5.0.1", "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.1", "signal-exit": "^3.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.2" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/@npmcli/run-script/node_modules/node-gyp": { "version": "8.4.1", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", "dev": true, "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", "graceful-fs": "^4.2.6", "make-fetch-happen": "^9.1.0", "nopt": "^5.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", "semver": "^7.3.5", "tar": "^6.1.2", "which": "^2.0.2" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { "node": ">= 10.12.0" } }, "node_modules/@npmcli/run-script/node_modules/npmlog": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.0.tgz", "integrity": "sha512-03ppFRGlsyUaQFbGC2C8QWJN/C/K7PsfyD9aQdhVKAQIH4sQBc8WASqFBP7O+Ut4d2oo5LoeoboB3cGdBZSp6Q==", "dev": true, "dependencies": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", "gauge": "^4.0.0", "set-blocking": "^2.0.0" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/@npmcli/run-script/node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/@npmcli/run-script/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@npmcli/run-script/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/@npmcli/run-script/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/@opentelemetry/api": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-0.12.0.tgz", "integrity": "sha512-Dn4vU5GlaBrIWzLpsM6xbJwKHdlpwBQ4Bd+cL9ofJP3hKT8jBXpBpribmyaqAzrajzzl2Yt8uTa9rFVLfjDAvw==", "dev": true, "dependencies": { "@opentelemetry/context-base": "^0.12.0" }, "engines": { "node": ">=8.0.0" } }, "node_modules/@opentelemetry/context-base": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.12.0.tgz", "integrity": "sha512-UXwSsXo3F3yZ1dIBOG9ID8v2r9e+bqLWoizCtTb8rXtwF+N5TM7hzzvQz72o3nBU+zrI/D5e+OqAYK8ZgDd3DA==", "dev": true, "engines": { "node": ">=8.0.0" } }, "node_modules/@opentelemetry/core": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-0.12.0.tgz", "integrity": "sha512-oLZIkmTNWTJXzo1eA4dGu/S7wOVtylsgnEsCmhSJGhrJVDXm1eW/aGuNs3DVBeuxp0ZvQLAul3/PThsC3YrnzA==", "dev": true, "dependencies": { "@opentelemetry/api": "^0.12.0", "@opentelemetry/context-base": "^0.12.0", "semver": "^7.1.3" }, "engines": { "node": ">=8.5.0" } }, "node_modules/@opentelemetry/core/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/@opentelemetry/resources": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.12.0.tgz", "integrity": "sha512-8cYvIKB68cyupc7D6SWzkLtt13mbjgxMahL4JKCM6hWPyiGSJlPFEAey4XFXI5LLpPZRYTPHLVoLqI/xwCFZZA==", "dev": true, "dependencies": { "@opentelemetry/api": "^0.12.0", "@opentelemetry/core": "^0.12.0" }, "engines": { "node": ">=8.0.0" } }, "node_modules/@opentelemetry/semantic-conventions": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.12.0.tgz", "integrity": "sha512-BuCcDW0uLNYYTns0/LwXkJ8lp8aDm7kpS+WunEmPAPRSCe6ciOYRvzn5reqJfX93rf+6A3U2SgrBnCTH+0qoQQ==", "dev": true, "engines": { "node": ">=8.0.0" } }, "node_modules/@opentelemetry/tracing": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@opentelemetry/tracing/-/tracing-0.12.0.tgz", "integrity": "sha512-2TUGhTGkhgnxTciHCNAILPSeyXageJewRqfP9wOrx65sKd/jgvNYoY8nYf4EVWVMirDOxKDsmYgUkjdQrwb2dg==", "deprecated": "Package renamed to @opentelemetry/sdk-trace-base", "dev": true, "dependencies": { "@opentelemetry/api": "^0.12.0", "@opentelemetry/context-base": "^0.12.0", "@opentelemetry/core": "^0.12.0", "@opentelemetry/resources": "^0.12.0", "@opentelemetry/semantic-conventions": "^0.12.0" }, "engines": { "node": ">=8.0.0" } }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=", "dev": true }, "node_modules/@protobufjs/base64": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", "dev": true }, "node_modules/@protobufjs/codegen": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", "dev": true }, "node_modules/@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=", "dev": true }, "node_modules/@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", "dev": true, "dependencies": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" } }, "node_modules/@protobufjs/float": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=", "dev": true }, "node_modules/@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=", "dev": true }, "node_modules/@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=", "dev": true }, "node_modules/@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=", "dev": true }, "node_modules/@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=", "dev": true }, "node_modules/@schematics/angular": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.1.2.tgz", "integrity": "sha512-OMbuOsnzUFjIGeo99NYwIPwjX6udJAiT5Sj5K7QZZYj66HuAqNBMV57J8GPA56edx5mOHZZApWMjXLlOxRXbJA==", "dev": true, "dependencies": { "@angular-devkit/core": "13.1.2", "@angular-devkit/schematics": "13.1.2", "jsonc-parser": "3.0.0" }, "engines": { "node": "^12.20.0 || ^14.15.0 || >=16.10.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", "yarn": ">= 1.13.0" } }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/@socket.io/base64-arraybuffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", "dev": true, "engines": { "node": ">= 0.6.0" } }, "node_modules/@stackblitz/sdk": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/@stackblitz/sdk/-/sdk-1.5.3.tgz", "integrity": "sha512-4fCa1YGdGXiWsCEsFQN+O6RP4JibmEMO58S9wzbFSko6lu1zLqkTBomRt1LCF7TImWeJaSSMDMqin58bey+N9Q==" }, "node_modules/@swirly/parser": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/parser/-/parser-0.17.6.tgz", "integrity": "sha512-Z6OrvKwmKsbxPbOc4fmSLowuho9Tt7m7SGsG4tkEIls61zvOb0P+XEvcTX3fEtUtuDL5CLMDRqfy4fV/J73SSQ==", "dev": true, "dependencies": { "@swirly/parser-rxjs": "^0.17.6" }, "engines": { "node": ">=10" }, "funding": { "type": "github", "url": "https://github.com/sponsors/timdp" } }, "node_modules/@swirly/parser-rxjs": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/parser-rxjs/-/parser-rxjs-0.17.6.tgz", "integrity": "sha512-cmJdSFokjNQHrdJjvs1oXwsNQfMbDeYdkq8WmHFq5AbK1kM5MT/RrDnyoRm6CLqrcqO6b/CBlJqjDIaPXL7KIg==", "dev": true, "engines": { "node": ">=10" }, "funding": { "type": "github", "url": "https://github.com/sponsors/timdp" } }, "node_modules/@swirly/renderer": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/renderer/-/renderer-0.17.6.tgz", "integrity": "sha512-pp4g9VevkYUPh+wwuOSPPblVHLtw3UcoF/OfAG0BbaC6DcHLsDEOk2CCZuidUb3ozvwo1fdHZKeWbs+ceXckOg==", "dev": true, "dependencies": { "@swirly/theme-default-light": "^0.17.6", "simple-sha1": "^3.1.0" }, "engines": { "node": ">=10" }, "funding": { "type": "github", "url": "https://github.com/sponsors/timdp" } }, "node_modules/@swirly/renderer-node": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/renderer-node/-/renderer-node-0.17.6.tgz", "integrity": "sha512-eUkgp/zB5k7HaUO1T2KLyfihZpCTgJ3h9clnNGNUqL/lewqe2v1q/oqLXDJKhfSsefH9C+x/J2+hNFKo2kmYMg==", "dev": true, "dependencies": { "@swirly/renderer": "^0.17.6", "xmldom": "^0.5.0" }, "engines": { "node": ">=10" }, "funding": { "type": "github", "url": "https://github.com/sponsors/timdp" } }, "node_modules/@swirly/theme-default-base": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/theme-default-base/-/theme-default-base-0.17.6.tgz", "integrity": "sha512-HbFMyL9xZjIzDhWzhAHoU7slfkET2euyLCB7lzOlRprPzfjatMTmCL30ji+Z6wRdQEITsrERCwiy5hfyo+rQEQ==", "dev": true, "engines": { "node": ">=10" }, "funding": { "type": "github", "url": "https://github.com/sponsors/timdp" } }, "node_modules/@swirly/theme-default-light": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/theme-default-light/-/theme-default-light-0.17.6.tgz", "integrity": "sha512-KS6CmOcBqAVkJpx+K0rsNSSKGONrWsz7o7xT6Z4gOw0IFGwc/6/xjxvXGrMttbqutkGVv1vZEbl+wrAGDQ84WA==", "dev": true, "dependencies": { "@swirly/theme-default-base": "^0.17.6" }, "engines": { "node": ">=10" }, "funding": { "type": "github", "url": "https://github.com/sponsors/timdp" } }, "node_modules/@swirly/types": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/types/-/types-0.17.6.tgz", "integrity": "sha512-BHAEL95TTC1Trn2xHl5zJFyPDiDdGSo2GM32SLu1KC000vunjFPRvOVnfA8f9WflJz/It46ZiMaXl4a6g8F9ag==", "dev": true, "engines": { "node": ">=10" }, "funding": { "type": "github", "url": "https://github.com/sponsors/timdp" } }, "node_modules/@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", "dev": true, "dependencies": { "defer-to-connect": "^1.0.1" }, "engines": { "node": ">=6" } }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/@types/archiver": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-5.1.0.tgz", "integrity": "sha512-baFOhanb/hxmcOd1Uey2TfFg43kTSmM6py1Eo7Rjbv/ivcl7PXLhY0QgXGf50Hx/eskGCFqPfhs/7IZLb15C5g==", "dev": true, "dependencies": { "@types/glob": "*" } }, "node_modules/@types/component-emitter": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", "dev": true }, "node_modules/@types/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", "dev": true }, "node_modules/@types/cors": { "version": "2.8.12", "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", "dev": true }, "node_modules/@types/duplexify": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz", "integrity": "sha512-5zOA53RUlzN74bvrSGwjudssD9F3a797sDZQkiYpUOxW+WHaXTCPz4/d5Dgi6FKnOqZ2CpaTo0DhgIfsXAOE/A==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/eslint": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", "dev": true, "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "node_modules/@types/eslint-scope": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", "dev": true, "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "node_modules/@types/estree": { "version": "0.0.50", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", "dev": true }, "node_modules/@types/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", "dev": true, "dependencies": { "@types/minimatch": "*", "@types/node": "*" } }, "node_modules/@types/hast": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.1.tgz", "integrity": "sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q==", "dev": true, "dependencies": { "@types/unist": "*" } }, "node_modules/@types/http-proxy": { "version": "1.17.8", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/jasmine": { "version": "3.6.9", "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.9.tgz", "integrity": "sha512-B53NIwMj/AO0O+xfSWLYmKB0Mo6TYxfv2Mk8/c1T2w/e38t55iaPR6p7pHXTTtqfTmevPK3i8T1YweYFTZlxDw==", "dev": true }, "node_modules/@types/jasminewd2": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", "dev": true, "dependencies": { "@types/jasmine": "*" } }, "node_modules/@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "node_modules/@types/long": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==", "dev": true }, "node_modules/@types/mdast": { "version": "3.0.10", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", "dev": true, "dependencies": { "@types/unist": "*" } }, "node_modules/@types/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", "dev": true }, "node_modules/@types/node": { "version": "12.20.7", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz", "integrity": "sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==", "dev": true }, "node_modules/@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, "node_modules/@types/parse5": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==", "dev": true }, "node_modules/@types/q": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", "dev": true }, "node_modules/@types/retry": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", "dev": true }, "node_modules/@types/selenium-webdriver": { "version": "3.0.17", "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", "dev": true }, "node_modules/@types/svgo": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.5.tgz", "integrity": "sha512-y9Pw8IK50OqFRDpdI9Is29KlWiENVW9FDvlTmGHelvTfR2brYFJbsClvulZfeq6YKacFrDsG9a39w0kJZdHLaw==", "dev": true }, "node_modules/@types/unist": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==", "dev": true }, "node_modules/@types/vfile": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/vfile/-/vfile-3.0.2.tgz", "integrity": "sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==", "dev": true, "dependencies": { "@types/node": "*", "@types/unist": "*", "@types/vfile-message": "*" } }, "node_modules/@types/vfile-message": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-2.0.0.tgz", "integrity": "sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==", "deprecated": "This is a stub types definition. vfile-message provides its own type definitions, so you do not need this installed.", "dev": true, "dependencies": { "vfile-message": "*" } }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dev": true, "dependencies": { "@webassemblyjs/helper-numbers": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", "@webassemblyjs/wasm-gen": "1.11.1" } }, "node_modules/@webassemblyjs/ieee754": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", "@webassemblyjs/helper-wasm-section": "1.11.1", "@webassemblyjs/wasm-gen": "1.11.1", "@webassemblyjs/wasm-opt": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", "@webassemblyjs/wast-printer": "1.11.1" } }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", "@webassemblyjs/ieee754": "1.11.1", "@webassemblyjs/leb128": "1.11.1", "@webassemblyjs/utf8": "1.11.1" } }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", "@webassemblyjs/wasm-gen": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1" } }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", "@webassemblyjs/ieee754": "1.11.1", "@webassemblyjs/leb128": "1.11.1", "@webassemblyjs/utf8": "1.11.1" } }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" } }, "node_modules/@webcomponents/custom-elements": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@webcomponents/custom-elements/-/custom-elements-1.5.0.tgz", "integrity": "sha512-c+7jPQCs9h/BYVcZ2Kna/3tsl3A/9EyXfvWjp5RiTDm1OpTcbZaCa1z4RNcTe/hUtXaqn64JjNW1yrWT+rZ8gg==" }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, "node_modules/a-sync-waterfall": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", "dev": true }, "node_modules/abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dev": true, "dependencies": { "event-target-shim": "^5.0.0" }, "engines": { "node": ">=6.5" } }, "node_modules/accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, "dependencies": { "mime-types": "~2.1.24", "negotiator": "0.6.2" }, "engines": { "node": ">= 0.6" } }, "node_modules/acorn": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/acorn-globals": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", "dev": true, "dependencies": { "acorn": "^6.0.1", "acorn-walk": "^6.0.1" } }, "node_modules/acorn-import-assertions": { "version": "1.7.6", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz", "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==", "dev": true, "peerDependencies": { "acorn": "^8" } }, "node_modules/acorn-jsx": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/adjust-sourcemap-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, "dependencies": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" }, "engines": { "node": ">=8.9" } }, "node_modules/adm-zip": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", "dev": true, "engines": { "node": ">=0.3.0" } }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "dependencies": { "debug": "4" }, "engines": { "node": ">= 6.0.0" } }, "node_modules/agentkeepalive": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz", "integrity": "sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw==", "dev": true, "dependencies": { "debug": "^4.1.0", "depd": "^1.1.2", "humanize-ms": "^1.2.1" }, "engines": { "node": ">= 8.0.0" } }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "dependencies": { "ajv": "^8.0.0" }, "peerDependencies": { "ajv": "^8.0.0" }, "peerDependenciesMeta": { "ajv": { "optional": true } } }, "node_modules/ajv-formats/node_modules/ajv": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "peerDependencies": { "ajv": "^6.9.1" } }, "node_modules/ambi": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ambi/-/ambi-3.2.0.tgz", "integrity": "sha512-nj5sHLPFd7u2OLmHdFs4DHt3gK6edpNw35hTRIKyI/Vd2Th5e4io50rw1lhmCdUNO2Mm4/4FkHmv6shEANAWcw==", "dev": true, "dependencies": { "editions": "^2.1.0", "typechecker": "^4.3.0" }, "engines": { "node": ">=0.8" } }, "node_modules/ansi-align": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "dev": true, "dependencies": { "string-width": "^3.0.0" } }, "node_modules/ansi-align/node_modules/ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/ansi-align/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "node_modules/ansi-align/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/ansi-align/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/ansi-align/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, "engines": { "node": ">=6" } }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "dependencies": { "type-fest": "^0.21.3" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true, "engines": [ "node >= 0.8.0" ], "bin": { "ansi-html": "bin/ansi-html" } }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { "color-convert": "^1.9.0" }, "engines": { "node": ">=4" } }, "node_modules/ansicolors": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", "dev": true }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" }, "engines": { "node": ">= 8" } }, "node_modules/app-root-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", "dev": true, "engines": { "node": ">= 6.0.0" } }, "node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "node_modules/archiver": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", "dev": true, "dependencies": { "archiver-utils": "^2.1.0", "async": "^2.6.3", "buffer-crc32": "^0.2.1", "glob": "^7.1.4", "readable-stream": "^3.4.0", "tar-stream": "^2.1.0", "zip-stream": "^2.1.2" }, "engines": { "node": ">= 6" } }, "node_modules/archiver-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", "dev": true, "dependencies": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", "lodash.defaults": "^4.2.0", "lodash.difference": "^4.5.0", "lodash.flatten": "^4.4.0", "lodash.isplainobject": "^4.0.6", "lodash.union": "^4.6.0", "normalize-path": "^3.0.0", "readable-stream": "^2.0.0" }, "engines": { "node": ">= 6" } }, "node_modules/archiver/node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/are-we-there-yet": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "optional": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" } }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/aria-query": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", "dev": true, "dependencies": { "ast-types-flow": "0.0.7", "commander": "^2.11.0" } }, "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, "node_modules/array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, "node_modules/array-union": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/arrify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/as-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/as-array/-/as-array-2.0.0.tgz", "integrity": "sha1-TwSAXYf4/OjlEbwhCPjl46KH1Uc=", "dev": true }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "dev": true }, "node_modules/asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dependencies": { "safer-buffer": "~2.1.0" } }, "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "engines": { "node": ">=0.8" } }, "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/ast-types": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", "dev": true, "dependencies": { "tslib": "^2.0.1" }, "engines": { "node": ">=4" } }, "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", "dev": true }, "node_modules/astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "dev": true, "dependencies": { "lodash": "^4.17.14" } }, "node_modules/async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", "dev": true }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true, "bin": { "atob": "bin/atob.js" }, "engines": { "node": ">= 4.5.0" } }, "node_modules/autoprefixer": { "version": "9.8.6", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", "dev": true, "dependencies": { "browserslist": "^4.12.0", "caniuse-lite": "^1.0.30001109", "colorette": "^1.2.1", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", "postcss": "^7.0.32", "postcss-value-parser": "^4.1.0" }, "bin": { "autoprefixer": "bin/autoprefixer" }, "funding": { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" } }, "node_modules/autoprefixer/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/autoprefixer/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/autoprefixer/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "engines": { "node": "*" } }, "node_modules/aws4": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "node_modules/axe-core": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.3.tgz", "integrity": "sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/axobject-query": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", "dev": true, "dependencies": { "ast-types-flow": "0.0.7" } }, "node_modules/babel-loader": { "version": "8.2.3", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", "dev": true, "dependencies": { "find-cache-dir": "^3.3.1", "loader-utils": "^1.4.0", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, "engines": { "node": ">= 8.9" }, "peerDependencies": { "@babel/core": "^7.0.0", "webpack": ">=2" } }, "node_modules/babel-loader/node_modules/json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "node_modules/babel-loader/node_modules/loader-utils": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^1.0.1" }, "engines": { "node": ">=4.0.0" } }, "node_modules/babel-loader/node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "dependencies": { "semver": "^6.0.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "dev": true, "dependencies": { "object.assign": "^4.1.0" } }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-instrument": "^5.0.4", "test-exclude": "^6.0.0" }, "engines": { "node": ">=8" } }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", "dev": true, "dependencies": { "@babel/compat-data": "^7.13.11", "@babel/helper-define-polyfill-provider": "^0.3.0", "semver": "^6.1.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", "dev": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.3.0", "core-js-compat": "^3.18.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-regenerator": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", "dev": true, "dependencies": { "@babel/helper-define-polyfill-provider": "^0.3.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "node_modules/base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/base/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/base/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/base/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/base/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true, "engines": { "node": "^4.5.0 || >= 5.9" } }, "node_modules/basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "dev": true, "dependencies": { "safe-buffer": "5.1.2" }, "engines": { "node": ">= 0.8" } }, "node_modules/basic-auth-connect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=", "dev": true }, "node_modules/basic-auth/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dependencies": { "tweetnacl": "^0.14.3" } }, "node_modules/big-integer": { "version": "1.6.48", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==", "dev": true, "engines": { "node": ">=0.6" } }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/bignumber.js": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", "dev": true, "engines": { "node": "*" } }, "node_modules/binary": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", "dev": true, "dependencies": { "buffers": "~0.1.1", "chainsaw": "~0.1.0" }, "engines": { "node": "*" } }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, "optional": true, "dependencies": { "file-uri-to-path": "1.0.0" } }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "node_modules/bl/node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ], "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "node_modules/bl/node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/blakejs": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=", "dev": true }, "node_modules/blocking-proxy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", "dev": true, "dependencies": { "minimist": "^1.2.0" }, "bin": { "blocking-proxy": "built/lib/bin.js" }, "engines": { "node": ">=6.9.x" } }, "node_modules/body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "dev": true, "dependencies": { "bytes": "3.1.0", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", "http-errors": "1.7.2", "iconv-lite": "0.4.24", "on-finished": "~2.3.0", "qs": "6.7.0", "raw-body": "2.4.0", "type-is": "~1.6.17" }, "engines": { "node": ">= 0.8" } }, "node_modules/body-parser/node_modules/bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/body-parser/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/body-parser/node_modules/qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", "dev": true, "engines": { "node": ">=0.6" } }, "node_modules/bonjour": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, "dependencies": { "array-flatten": "^2.1.0", "deep-equal": "^1.0.1", "dns-equal": "^1.0.0", "dns-txt": "^2.0.2", "multicast-dns": "^6.0.1", "multicast-dns-service-types": "^1.1.0" } }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, "node_modules/boxen": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "dev": true, "dependencies": { "ansi-align": "^3.0.0", "camelcase": "^5.3.1", "chalk": "^3.0.0", "cli-boxes": "^2.2.0", "string-width": "^4.1.0", "term-size": "^2.1.0", "type-fest": "^0.8.1", "widest-line": "^3.1.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/boxen/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/boxen/node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=8" } }, "node_modules/boxen/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/boxen/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/boxen/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/boxen/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/boxen/node_modules/type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, "node_modules/browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, "node_modules/browserslist": { "version": "4.19.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", "dev": true, "dependencies": { "caniuse-lite": "^1.0.30001286", "electron-to-chromium": "^1.4.17", "escalade": "^3.1.1", "node-releases": "^2.0.1", "picocolors": "^1.0.0" }, "bin": { "browserslist": "cli.js" }, "engines": { "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/browserslist" } }, "node_modules/browserstack": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", "dev": true, "dependencies": { "https-proxy-agent": "^2.2.1" } }, "node_modules/browserstack/node_modules/agent-base": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, "dependencies": { "es6-promisify": "^5.0.0" }, "engines": { "node": ">= 4.0.0" } }, "node_modules/browserstack/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/browserstack/node_modules/https-proxy-agent": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "dependencies": { "agent-base": "^4.3.0", "debug": "^3.1.0" }, "engines": { "node": ">= 4.5.0" } }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true, "engines": { "node": "*" } }, "node_modules/buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", "dev": true }, "node_modules/buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "node_modules/buffer-indexof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", "dev": true }, "node_modules/buffer-indexof-polyfill": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", "dev": true, "engines": { "node": ">=0.10" } }, "node_modules/buffers": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", "dev": true, "engines": { "node": ">=0.2.0" } }, "node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/cacache": { "version": "15.3.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, "dependencies": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "glob": "^7.1.4", "infer-owner": "^1.0.4", "lru-cache": "^6.0.0", "minipass": "^3.1.1", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.2", "mkdirp": "^1.0.3", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", "ssri": "^8.0.1", "tar": "^6.0.2", "unique-filename": "^1.1.1" }, "engines": { "node": ">= 10" } }, "node_modules/cacache/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" } }, "node_modules/cacache/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", "get-value": "^2.0.6", "has-value": "^1.0.0", "isobject": "^3.0.1", "set-value": "^2.0.0", "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "dev": true, "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", "keyv": "^3.0.0", "lowercase-keys": "^2.0.0", "normalize-url": "^4.1.0", "responselike": "^1.0.2" }, "engines": { "node": ">=8" } }, "node_modules/cacheable-request/node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "dependencies": { "pump": "^3.0.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cacheable-request/node_modules/lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/cacheable-request/node_modules/normalize-url": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", "dev": true }, "node_modules/camel-case": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "dependencies": { "no-case": "^2.2.0", "upper-case": "^1.1.1" } }, "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/caniuse-lite": { "version": "1.0.30001298", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001298.tgz", "integrity": "sha512-AcKqikjMLlvghZL/vfTHorlQsLDhGRalYf1+GmWCf5SCMziSGjRYQW/JEksj14NaYHIR6KIhrFAy0HV5C25UzQ==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/browserslist" } }, "node_modules/canonical-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", "dev": true }, "node_modules/canonicalize": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.5.tgz", "integrity": "sha512-mAjKJPIyP0xqqv6IAkvso07StOmz6cmGtNDg3pXCSzXVZOqka7StIkAhJl/zHOi4M2CgpYfD6aeRWbnrmtvBEA==", "dev": true }, "node_modules/cardinal": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", "dev": true, "dependencies": { "ansicolors": "~0.3.2", "redeyed": "~2.1.0" }, "bin": { "cdl": "bin/cdl.js" } }, "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "node_modules/catharsis": { "version": "0.8.11", "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", "dev": true, "dependencies": { "lodash": "^4.17.14" }, "engines": { "node": ">= 8" } }, "node_modules/ccount": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/chainsaw": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", "dev": true, "dependencies": { "traverse": ">=0.3.0 <0.4" }, "engines": { "node": "*" } }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" }, "engines": { "node": ">=4" } }, "node_modules/change-case": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.0.tgz", "integrity": "sha1-bJyONfh5CHCoK2sHRb6MPL75sIE=", "dev": true, "dependencies": { "camel-case": "^3.0.0", "constant-case": "^2.0.0", "dot-case": "^2.1.0", "header-case": "^1.0.0", "is-lower-case": "^1.1.0", "is-upper-case": "^1.1.0", "lower-case": "^1.1.1", "lower-case-first": "^1.0.0", "no-case": "^2.2.0", "param-case": "^2.1.0", "pascal-case": "^2.0.0", "path-case": "^2.1.0", "sentence-case": "^2.1.0", "snake-case": "^2.1.0", "swap-case": "^1.1.0", "title-case": "^2.1.0", "upper-case": "^1.1.1", "upper-case-first": "^1.1.0" } }, "node_modules/character-entities": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-entities-html4": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-entities-legacy": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-reference-invalid": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "node_modules/charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", "dev": true, "engines": { "node": "*" } }, "node_modules/chokidar": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "node_modules/chokidar/node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/chrome-launcher": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.4.tgz", "integrity": "sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==", "dev": true, "dependencies": { "@types/node": "*", "escape-string-regexp": "^1.0.5", "is-wsl": "^2.2.0", "lighthouse-logger": "^1.0.0", "mkdirp": "^0.5.3", "rimraf": "^3.0.2" } }, "node_modules/chrome-launcher/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true, "engines": { "node": ">=6.0" } }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "node_modules/circular-dependency-plugin": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", "dev": true, "engines": { "node": ">=6.0.0" }, "peerDependencies": { "webpack": ">=4.0.1" } }, "node_modules/cjson": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.5.0.tgz", "integrity": "sha1-oPSGAeAWFk37LG2JHjgMlsramDk=", "dev": true, "dependencies": { "json-parse-helpfulerror": "^1.0.3" }, "engines": { "node": ">= 0.3.0" } }, "node_modules/class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/class-utils/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-color": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz", "integrity": "sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==", "dev": true, "dependencies": { "ansi-regex": "^2.1.1", "d": "1", "es5-ext": "^0.10.46", "es6-iterator": "^2.0.3", "memoizee": "^0.4.14", "timers-ext": "^0.1.5" } }, "node_modules/cli-color/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "dependencies": { "restore-cursor": "^3.1.0" }, "engines": { "node": ">=8" } }, "node_modules/cli-spinners": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", "dev": true, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-table": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz", "integrity": "sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==", "dev": true, "dependencies": { "colors": "1.0.3" }, "engines": { "node": ">= 0.2.0" } }, "node_modules/cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, "engines": { "node": ">= 10" } }, "node_modules/cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" } }, "node_modules/cliui/node_modules/ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/cliui/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "node_modules/cliui/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/cliui/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/cliui/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, "engines": { "node": ">=6" } }, "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true, "engines": { "node": ">=0.8" } }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", "shallow-clone": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "dependencies": { "mimic-response": "^1.0.0" } }, "node_modules/clonedeep": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/clonedeep/-/clonedeep-2.0.0.tgz", "integrity": "sha1-jOygd39He78x/oyHGq9jo5C7wnI=", "dev": true }, "node_modules/coa": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", "dev": true, "dependencies": { "@types/q": "^1.5.1", "chalk": "^2.4.1", "q": "^1.1.2" }, "engines": { "node": ">= 4.0" } }, "node_modules/code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/codelyzer": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", "dev": true, "dependencies": { "@angular/compiler": "9.0.0", "@angular/core": "9.0.0", "app-root-path": "^3.0.0", "aria-query": "^3.0.0", "axobject-query": "2.0.2", "css-selector-tokenizer": "^0.7.1", "cssauron": "^1.4.0", "damerau-levenshtein": "^1.0.4", "rxjs": "^6.5.3", "semver-dsl": "^1.0.1", "source-map": "^0.5.7", "sprintf-js": "^1.1.2", "tslib": "^1.10.0", "zone.js": "~0.10.3" }, "peerDependencies": { "@angular/compiler": ">=2.3.1 <12.0.0 || ^11.0.0-next || ^11.1.0-next || ^11.2.0-next", "@angular/core": ">=2.3.1 <12.0.0 || ^11.0.0-next || ^11.1.0-next || ^11.2.0-next", "tslint": "^5.0.0 || ^6.0.0" } }, "node_modules/codelyzer/node_modules/@angular/compiler": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", "dev": true, "peerDependencies": { "tslib": "^1.10.0" } }, "node_modules/codelyzer/node_modules/@angular/core": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", "dev": true, "peerDependencies": { "rxjs": "^6.5.3", "tslib": "^1.10.0", "zone.js": "~0.10.2" } }, "node_modules/codelyzer/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/codelyzer/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/codelyzer/node_modules/sprintf-js": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", "dev": true }, "node_modules/codelyzer/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/codelyzer/node_modules/zone.js": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==", "dev": true }, "node_modules/collapse-white-space": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { "color-name": "1.1.3" } }, "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "node_modules/color-string": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", "dev": true, "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, "node_modules/color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true, "bin": { "color-support": "bin.js" } }, "node_modules/colorette": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", "dev": true }, "node_modules/colors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true, "engines": { "node": ">=0.1.90" } }, "node_modules/colorspace": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", "dev": true, "dependencies": { "color": "3.0.x", "text-hex": "1.0.x" } }, "node_modules/colorspace/node_modules/color": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", "dev": true, "dependencies": { "color-convert": "^1.9.1", "color-string": "^1.5.2" } }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dependencies": { "delayed-stream": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, "node_modules/comma-separated-tokens": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "node_modules/compare-semver": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/compare-semver/-/compare-semver-1.1.0.tgz", "integrity": "sha1-fAp5onu4C2xplERfgpWCWdPQIVM=", "dev": true, "dependencies": { "semver": "^5.0.1" } }, "node_modules/compare-semver/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, "node_modules/compress-commons": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", "dev": true, "dependencies": { "buffer-crc32": "^0.2.13", "crc32-stream": "^3.0.1", "normalize-path": "^3.0.0", "readable-stream": "^2.3.6" }, "engines": { "node": ">= 6" } }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "dependencies": { "mime-db": ">= 1.43.0 < 2" }, "engines": { "node": ">= 0.6" } }, "node_modules/compression": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", "compressible": "~2.0.16", "debug": "2.6.9", "on-headers": "~1.0.2", "safe-buffer": "5.1.2", "vary": "~1.1.2" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/compression/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "engines": [ "node >= 0.8" ], "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" } }, "node_modules/concurrently": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-5.3.0.tgz", "integrity": "sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ==", "dev": true, "dependencies": { "chalk": "^2.4.2", "date-fns": "^2.0.1", "lodash": "^4.17.15", "read-pkg": "^4.0.1", "rxjs": "^6.5.2", "spawn-command": "^0.0.2-1", "supports-color": "^6.1.0", "tree-kill": "^1.2.2", "yargs": "^13.3.0" }, "bin": { "concurrently": "bin/concurrently.js" }, "engines": { "node": ">=6.0.0" } }, "node_modules/concurrently/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/concurrently/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/concurrently/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, "dependencies": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", "make-dir": "^3.0.0", "unique-string": "^2.0.0", "write-file-atomic": "^3.0.0", "xdg-basedir": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/configstore/node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "dependencies": { "semver": "^6.0.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" }, "engines": { "node": ">= 0.10.0" } }, "node_modules/connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true, "engines": { "node": ">=0.8" } }, "node_modules/connect/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/connect/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "node_modules/constant-case": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", "dev": true, "dependencies": { "snake-case": "^2.1.0", "upper-case": "^1.1.1" } }, "node_modules/content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", "dev": true, "dependencies": { "safe-buffer": "5.1.2" }, "engines": { "node": ">= 0.6" } }, "node_modules/content-disposition/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, "dependencies": { "safe-buffer": "~5.1.1" } }, "node_modules/convert-source-map/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, "node_modules/copy-anything": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", "dev": true, "dependencies": { "is-what": "^3.12.0" } }, "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/copy-webpack-plugin": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.0.0.tgz", "integrity": "sha512-tuCVuFMBbRsb7IH0q1CUb50/Skv+7a6c7DJ+xi4fAbOzNLTYVMUTPnf8uGvKPtmqTvzYBrfEFo7YgP4TsUWmtg==", "dev": true, "dependencies": { "fast-glob": "^3.2.7", "glob-parent": "^6.0.1", "globby": "^12.0.2", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, "engines": { "node": ">= 12.20.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.1.0" } }, "node_modules/copy-webpack-plugin/node_modules/ajv": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "node_modules/copy-webpack-plugin/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { "is-glob": "^4.0.3" }, "engines": { "node": ">=10.13.0" } }, "node_modules/copy-webpack-plugin/node_modules/globby": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-12.0.2.tgz", "integrity": "sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ==", "dev": true, "dependencies": { "array-union": "^3.0.1", "dir-glob": "^3.0.1", "fast-glob": "^3.2.7", "ignore": "^5.1.8", "merge2": "^1.4.1", "slash": "^4.0.0" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/copy-webpack-plugin/node_modules/schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/copy-webpack-plugin/node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/core-js-compat": { "version": "3.20.2", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.2.tgz", "integrity": "sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg==", "dev": true, "dependencies": { "browserslist": "^4.19.1", "semver": "7.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/core-js-compat/node_modules/semver": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/core-js-pure": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.9.1.tgz", "integrity": "sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A==", "dev": true, "hasInstallScript": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "node_modules/cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, "dependencies": { "object-assign": "^4", "vary": "^1" }, "engines": { "node": ">= 0.10" } }, "node_modules/corser": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", "dev": true, "engines": { "node": ">= 0.4.0" } }, "node_modules/cosmiconfig": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" }, "engines": { "node": ">=10" } }, "node_modules/cosmiconfig/node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/crc": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", "dev": true, "dependencies": { "buffer": "^5.1.0" } }, "node_modules/crc-32": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", "dev": true, "dependencies": { "exit-on-epipe": "~1.0.1", "printj": "~1.1.0" }, "bin": { "crc32": "bin/crc32.njs" }, "engines": { "node": ">=0.8" } }, "node_modules/crc/node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ], "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "node_modules/crc32-stream": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", "dev": true, "dependencies": { "crc": "^3.4.4", "readable-stream": "^3.4.0" }, "engines": { "node": ">= 6.9.0" } }, "node_modules/crc32-stream/node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/critters": { "version": "0.0.15", "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.15.tgz", "integrity": "sha512-AE7hkXb3eZUbEvS1SKZa+OU4o2kUOXtzVeE/2E/mjU/0mV1wpBT1HfUCWVRS4zwvkBNJ0AQYsVjAoFm+kIhfdw==", "dev": true, "dependencies": { "chalk": "^4.1.0", "css-select": "^4.1.3", "parse5": "^6.0.1", "parse5-htmlparser2-tree-adapter": "^6.0.1", "postcss": "^8.3.7", "pretty-bytes": "^5.3.0" } }, "node_modules/critters/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/critters/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/critters/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/critters/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/critters/node_modules/css-select": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", "dev": true, "dependencies": { "boolbase": "^1.0.0", "css-what": "^5.1.0", "domhandler": "^4.3.0", "domutils": "^2.8.0", "nth-check": "^2.0.1" }, "funding": { "url": "https://github.com/sponsors/fb55" } }, "node_modules/critters/node_modules/css-what": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", "dev": true, "engines": { "node": ">= 6" }, "funding": { "url": "https://github.com/sponsors/fb55" } }, "node_modules/critters/node_modules/dom-serializer": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", "dev": true, "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, "node_modules/critters/node_modules/domelementtype": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/fb55" } ] }, "node_modules/critters/node_modules/domhandler": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", "dev": true, "dependencies": { "domelementtype": "^2.2.0" }, "engines": { "node": ">= 4" }, "funding": { "url": "https://github.com/fb55/domhandler?sponsor=1" } }, "node_modules/critters/node_modules/domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/critters/node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/critters/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/critters/node_modules/nth-check": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "dev": true, "dependencies": { "boolbase": "^1.0.0" }, "funding": { "url": "https://github.com/fb55/nth-check?sponsor=1" } }, "node_modules/critters/node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "node_modules/critters/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/cross-env": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", "dev": true, "dependencies": { "cross-spawn": "^6.0.5" }, "bin": { "cross-env": "dist/bin/cross-env.js", "cross-env-shell": "dist/bin/cross-env-shell.js" }, "engines": { "node": ">=4.0" } }, "node_modules/cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" }, "engines": { "node": ">=4.8" } }, "node_modules/cross-spawn/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", "dev": true, "engines": { "node": "*" } }, "node_modules/crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/csp_evaluator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.0.1.tgz", "integrity": "sha512-9L57/vkuwH1tJv9Sw9t13xKGKyRR7OKn/pizcLCHK/83WH+sqRav0JCFBmBLmpurQAcz5usU3efS1rabOPV/qA==", "dev": true }, "node_modules/css": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", "dev": true, "dependencies": { "inherits": "^2.0.4", "source-map": "^0.6.1", "source-map-resolve": "^0.6.0" } }, "node_modules/css-blank-pseudo": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", "dev": true, "dependencies": { "postcss": "^7.0.5" }, "bin": { "css-blank-pseudo": "cli.js" }, "engines": { "node": ">=6.0.0" } }, "node_modules/css-blank-pseudo/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/css-blank-pseudo/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/css-blank-pseudo/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/css-has-pseudo": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", "dev": true, "dependencies": { "postcss": "^7.0.6", "postcss-selector-parser": "^5.0.0-rc.4" }, "bin": { "css-has-pseudo": "cli.js" }, "engines": { "node": ">=6.0.0" } }, "node_modules/css-has-pseudo/node_modules/cssesc": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true, "bin": { "cssesc": "bin/cssesc" }, "engines": { "node": ">=4" } }, "node_modules/css-has-pseudo/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "dependencies": { "cssesc": "^2.0.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" }, "engines": { "node": ">=4" } }, "node_modules/css-has-pseudo/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/css-has-pseudo/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/css-loader": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", "postcss": "^8.2.15", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.1.0", "semver": "^7.3.5" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.0.0" } }, "node_modules/css-loader/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/css-prefers-color-scheme": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", "dev": true, "dependencies": { "postcss": "^7.0.5" }, "bin": { "css-prefers-color-scheme": "cli.js" }, "engines": { "node": ">=6.0.0" } }, "node_modules/css-prefers-color-scheme/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/css-prefers-color-scheme/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/css-prefers-color-scheme/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/css-select": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", "dev": true, "dependencies": { "boolbase": "^1.0.0", "css-what": "^3.2.1", "domutils": "^1.7.0", "nth-check": "^1.0.2" } }, "node_modules/css-select-base-adapter": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", "dev": true }, "node_modules/css-selector-parser": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==", "dev": true }, "node_modules/css-selector-tokenizer": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", "fastparse": "^1.1.2" } }, "node_modules/css-tree": { "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", "dev": true, "dependencies": { "mdn-data": "2.0.4", "source-map": "^0.6.1" }, "engines": { "node": ">=8.0.0" } }, "node_modules/css-tree/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/css-what": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", "dev": true, "engines": { "node": ">= 6" }, "funding": { "url": "https://github.com/sponsors/fb55" } }, "node_modules/css/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/css/node_modules/source-map-resolve": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", "dev": true, "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0" } }, "node_modules/cssauron": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", "dev": true, "dependencies": { "through": "X.X.X" } }, "node_modules/cssdb": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", "dev": true }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, "bin": { "cssesc": "bin/cssesc" }, "engines": { "node": ">=4" } }, "node_modules/csso": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, "dependencies": { "css-tree": "^1.1.2" }, "engines": { "node": ">=8.0.0" } }, "node_modules/csso/node_modules/css-tree": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", "dev": true, "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" }, "engines": { "node": ">=8.0.0" } }, "node_modules/csso/node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true }, "node_modules/csso/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", "dev": true }, "node_modules/cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "dependencies": { "cssom": "~0.3.6" }, "engines": { "node": ">=8" } }, "node_modules/cssstyle/node_modules/cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true }, "node_modules/csv-streamify": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/csv-streamify/-/csv-streamify-3.0.4.tgz", "integrity": "sha1-TLYUxX4/KZzKF7Y/3LStFnd39Ho=", "dev": true, "dependencies": { "through2": "2.0.1" }, "bin": { "csv-streamify": "cli.js" }, "engines": { "node": ">=0.12.0" } }, "node_modules/csv-streamify/node_modules/process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, "node_modules/csv-streamify/node_modules/readable-stream": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", "isarray": "~1.0.0", "process-nextick-args": "~1.0.6", "string_decoder": "~0.10.x", "util-deprecate": "~1.0.1" } }, "node_modules/csv-streamify/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "node_modules/csv-streamify/node_modules/through2": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=", "dev": true, "dependencies": { "readable-stream": "~2.0.0", "xtend": "~4.0.0" } }, "node_modules/custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", "dev": true }, "node_modules/cycle": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "dev": true, "dependencies": { "es5-ext": "^0.10.50", "type": "^1.0.1" } }, "node_modules/damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", "dev": true }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dependencies": { "assert-plus": "^1.0.0" }, "engines": { "node": ">=0.10" } }, "node_modules/data-uri-to-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/data-urls": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", "dev": true, "dependencies": { "abab": "^2.0.0", "whatwg-mimetype": "^2.2.0", "whatwg-url": "^7.0.0" } }, "node_modules/date-fns": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.19.0.tgz", "integrity": "sha512-X3bf2iTPgCAQp9wvjOQytnf5vO5rESYRXlPIVcgSbtT5OTScPcsf9eZU+B/YIkKAtYr5WeCii58BgATrNitlWg==", "dev": true, "engines": { "node": ">=0.11" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/date-fns" } }, "node_modules/date-format": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "engines": { "node": "*" } }, "node_modules/debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true, "engines": { "node": ">=0.10" } }, "node_modules/decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "dependencies": { "mimic-response": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", "dev": true, "dependencies": { "is-arguments": "^1.0.4", "is-date-object": "^1.0.1", "is-regex": "^1.0.4", "object-is": "^1.0.1", "object-keys": "^1.1.1", "regexp.prototype.flags": "^1.2.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "engines": { "node": ">=4.0.0" } }, "node_modules/deep-freeze": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", "dev": true }, "node_modules/deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "node_modules/deep-rename-keys": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz", "integrity": "sha1-7eeFN9emaivmFRfir5Vtf1ij8dg=", "dev": true, "dependencies": { "kind-of": "^3.0.2", "rename-keys": "^1.1.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/deep-rename-keys/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, "dependencies": { "execa": "^5.0.0" }, "engines": { "node": ">= 10" } }, "node_modules/defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "dependencies": { "clone": "^1.0.2" } }, "node_modules/defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "dependencies": { "object-keys": "^1.0.12" }, "engines": { "node": ">= 0.4" } }, "node_modules/define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/define-property/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/define-property/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/define-property/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/degenerator": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-2.2.0.tgz", "integrity": "sha512-aiQcQowF01RxFI4ZLFMpzyotbQonhNpBao6dkI8JPk5a+hmSjR5ErHp2CQySmQe8os3VBqLCIh87nDBgZXvsmg==", "dev": true, "dependencies": { "ast-types": "^0.13.2", "escodegen": "^1.8.1", "esprima": "^4.0.0" }, "engines": { "node": ">= 6" } }, "node_modules/del": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "dev": true, "dependencies": { "globby": "^11.0.1", "graceful-fs": "^4.2.4", "is-glob": "^4.0.1", "is-path-cwd": "^2.2.0", "is-path-inside": "^3.0.2", "p-map": "^4.0.0", "rimraf": "^3.0.2", "slash": "^3.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/del/node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/del/node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/del/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "engines": { "node": ">=0.4.0" } }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true }, "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/dependency-graph": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", "dev": true, "engines": { "node": ">= 0.6.0" } }, "node_modules/destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, "node_modules/details-element-polyfill": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/details-element-polyfill/-/details-element-polyfill-2.4.0.tgz", "integrity": "sha512-jnZ/m0+b1gz3EcooitqL7oDEkKHEro659dt8bWB/T/HjiILucoQhHvvi5MEOAIFJXxxO+rIYJ/t3qCgfUOSU5g==", "dev": true }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, "node_modules/dgeni": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/dgeni/-/dgeni-0.4.14.tgz", "integrity": "sha512-/zUB1tLlu0/E5Pr/cl2fyKJqmPQoiO1KwahN4QmqS8QAYaHDT6X5ld/vYeO6dpqNlR7TZWXWzpfAnwR3R9scyQ==", "dev": true, "dependencies": { "canonical-path": "~0.0.2", "clonedeep": "^2.0.0", "dependency-graph": "^0.7.0", "di": "0.0.1", "fast-deep-equal": "^3.1.3", "objectdiff": "^1.1.0", "validate.js": "^0.12.0", "winston": "^2.1.1", "yargs": "^16.2.0" }, "bin": { "dgeni": "lib/gen-docs.js" } }, "node_modules/dgeni-packages": { "version": "0.29.1", "resolved": "https://registry.npmjs.org/dgeni-packages/-/dgeni-packages-0.29.1.tgz", "integrity": "sha512-lZvCv1G7Ngjf5Lp+oqbnJWKVe4UBnPsmqHRprsu3EMoLyzSW1kQdFl72B+r2cCALeQXGhNeDyAIGrJnAQs/roA==", "dev": true, "dependencies": { "canonical-path": "^1.0.0", "catharsis": "^0.8.1", "change-case": "3.0.0", "dgeni": "^0.4.14", "eslint": "^7.17.0", "espree": "^7.3.1", "estraverse": "^4.1.0", "glob": "^7.0.5", "htmlencode": "^0.0.4", "htmlparser2": "^3.7.3", "lodash.difference": "^4.5.0", "lodash.template": "^4.5.0", "marked": "^0.7.0", "minimatch": "^3.0.2", "mkdirp": "^1.0.3", "nunjucks": "^3.2.2", "rehype": "^8.0.0", "semver": "^5.2.0", "source-map-support": "^0.4.15", "spdx-license-list": "^2.1.0", "typescript": "~3.2.2", "urlencode": "^1.1.0" }, "engines": { "node": ">=12.0.0", "yarn": ">=0.17.9" }, "peerDependencies": { "dgeni": "^0.4.0" } }, "node_modules/dgeni-packages/node_modules/@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/dgeni-packages/node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/dgeni-packages/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/dgeni-packages/node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/dgeni-packages/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/dgeni-packages/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/dgeni-packages/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/dgeni-packages/node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/dgeni-packages/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dgeni-packages/node_modules/eslint": { "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "dependencies": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", "espree": "^7.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.1.2", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", "regexpp": "^3.1.0", "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { "node": "^10.12.0 || >=12.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/dgeni-packages/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" }, "engines": { "node": ">=8.0.0" } }, "node_modules/dgeni-packages/node_modules/eslint-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "dependencies": { "eslint-visitor-keys": "^1.1.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/mysticatea" } }, "node_modules/dgeni-packages/node_modules/eslint-utils/node_modules/eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/dgeni-packages/node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/dgeni-packages/node_modules/eslint/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/dgeni-packages/node_modules/espree": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/dgeni-packages/node_modules/espree/node_modules/eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/dgeni-packages/node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "dependencies": { "flat-cache": "^3.0.4" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/dgeni-packages/node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "dependencies": { "flatted": "^3.1.0", "rimraf": "^3.0.2" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/dgeni-packages/node_modules/flatted": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", "dev": true }, "node_modules/dgeni-packages/node_modules/globals": { "version": "13.11.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "dependencies": { "type-fest": "^0.20.2" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dgeni-packages/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/dgeni-packages/node_modules/hast-util-from-parse5": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz", "integrity": "sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==", "dev": true, "dependencies": { "ccount": "^1.0.3", "hastscript": "^5.0.0", "property-information": "^5.0.0", "web-namespaces": "^1.1.2", "xtend": "^4.0.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/dgeni-packages/node_modules/hastscript": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", "dev": true, "dependencies": { "comma-separated-tokens": "^1.0.0", "hast-util-parse-selector": "^2.0.0", "property-information": "^5.0.0", "space-separated-tokens": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/dgeni-packages/node_modules/ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/dgeni-packages/node_modules/is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ], "engines": { "node": ">=4" } }, "node_modules/dgeni-packages/node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/dgeni-packages/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/dgeni-packages/node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/dgeni-packages/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" } }, "node_modules/dgeni-packages/node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.3" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/dgeni-packages/node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/dgeni-packages/node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/dgeni-packages/node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/mysticatea" } }, "node_modules/dgeni-packages/node_modules/rehype": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/rehype/-/rehype-8.0.0.tgz", "integrity": "sha512-fqcYo/q4Xka0ZvS6abiHtZsN7/TauTzTZQfXqtWACo9Qz76Vv/8uzhOizAfDBjVPhbnDl3xPIMRArUdcV/xFaA==", "dev": true, "dependencies": { "rehype-parse": "^6.0.0", "rehype-stringify": "^6.0.0", "unified": "^7.0.0" } }, "node_modules/dgeni-packages/node_modules/rehype-parse": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz", "integrity": "sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==", "dev": true, "dependencies": { "hast-util-from-parse5": "^5.0.0", "parse5": "^5.0.0", "xtend": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/dgeni-packages/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/dgeni-packages/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/dgeni-packages/node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/dgeni-packages/node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/dgeni-packages/node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/dgeni-packages/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/dgeni-packages/node_modules/source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "dependencies": { "source-map": "^0.5.6" } }, "node_modules/dgeni-packages/node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dgeni-packages/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/dgeni-packages/node_modules/table": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", "dev": true, "dependencies": { "ajv": "^8.0.1", "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10.0.0" } }, "node_modules/dgeni-packages/node_modules/table/node_modules/ajv": { "version": "8.6.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/dgeni-packages/node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { "prelude-ls": "^1.2.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/dgeni-packages/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dgeni-packages/node_modules/typescript": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { "node": ">=4.2.0" } }, "node_modules/dgeni-packages/node_modules/unified": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz", "integrity": "sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", "@types/vfile": "^3.0.0", "bail": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^1.1.0", "trough": "^1.0.0", "vfile": "^3.0.0", "x-is-string": "^0.1.0" } }, "node_modules/dgeni-packages/node_modules/unist-util-stringify-position": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", "dev": true }, "node_modules/dgeni-packages/node_modules/vfile": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz", "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==", "dev": true, "dependencies": { "is-buffer": "^2.0.0", "replace-ext": "1.0.0", "unist-util-stringify-position": "^1.0.0", "vfile-message": "^1.0.0" } }, "node_modules/dgeni-packages/node_modules/vfile-message": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", "dev": true, "dependencies": { "unist-util-stringify-position": "^1.1.1" } }, "node_modules/dgeni-packages/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/dgeni/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/dgeni/node_modules/canonical-path": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-0.0.2.tgz", "integrity": "sha1-4x65N6jJPuKgHfGDl5RyGQKHRXQ=", "dev": true }, "node_modules/dgeni/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "node_modules/dgeni/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/dgeni/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/dgeni/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/dgeni/node_modules/y18n": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/dgeni/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" }, "engines": { "node": ">=10" } }, "node_modules/dgeni/node_modules/yargs-parser": { "version": "20.2.7", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", "dev": true }, "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { "node": ">=0.3.1" } }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { "path-type": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", "dev": true }, "node_modules/dns-packet": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, "dependencies": { "ip": "^1.1.0", "safe-buffer": "^5.0.1" } }, "node_modules/dns-txt": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "dev": true, "dependencies": { "buffer-indexof": "^1.0.0" } }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { "esutils": "^2.0.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true, "dependencies": { "custom-event": "~1.0.0", "ent": "~2.2.0", "extend": "^3.0.0", "void-elements": "^2.0.0" } }, "node_modules/dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dev": true, "dependencies": { "domelementtype": "^2.0.1", "entities": "^2.0.0" } }, "node_modules/dom-serializer/node_modules/domelementtype": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/fb55" } ] }, "node_modules/dom-serializer/node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } }, "node_modules/domelementtype": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, "node_modules/domexception": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", "dev": true, "dependencies": { "webidl-conversions": "^4.0.2" } }, "node_modules/domhandler": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "dependencies": { "domelementtype": "1" } }, "node_modules/domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "dependencies": { "dom-serializer": "0", "domelementtype": "1" } }, "node_modules/dot-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", "dev": true, "dependencies": { "no-case": "^2.2.0" } }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "dependencies": { "is-obj": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/dotenv": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, "dependencies": { "readable-stream": "^2.0.2" } }, "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, "node_modules/eachr": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/eachr/-/eachr-3.3.0.tgz", "integrity": "sha512-yKWuGwOE283CTgbEuvqXXusLH4VBXnY2nZbDkeWev+cpAXY6zCIADSPLdvfkAROc0t8S4l07U1fateCdEDuuvg==", "dev": true, "dependencies": { "editions": "^2.2.0", "typechecker": "^4.9.0" }, "engines": { "node": ">=0.10" }, "funding": { "url": "https://bevry.me/fund" } }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "node_modules/ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", "dev": true, "dependencies": { "safe-buffer": "^5.0.1" } }, "node_modules/ecstatic": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz", "integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==", "deprecated": "This package is unmaintained and deprecated. See the GH Issue 259.", "dev": true, "dependencies": { "he": "^1.1.1", "mime": "^1.6.0", "minimist": "^1.1.0", "url-join": "^2.0.5" }, "bin": { "ecstatic": "lib/ecstatic.js" } }, "node_modules/ecstatic/node_modules/url-join": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=", "dev": true }, "node_modules/editions": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz", "integrity": "sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==", "dev": true, "dependencies": { "errlop": "^2.0.0", "semver": "^6.3.0" }, "engines": { "node": ">=0.8" }, "funding": { "url": "https://bevry.me/fund" } }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, "node_modules/electron-to-chromium": { "version": "1.4.38", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.38.tgz", "integrity": "sha512-WhHt3sZazKj0KK/UpgsbGQnUUoFeAHVishzHFExMxagpZgjiGYSC9S0ZlbhCfSH2L2i+2A1yyqOIliTctMx7KQ==", "dev": true }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/enabled": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", "dev": true }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "optional": true, "dependencies": { "iconv-lite": "^0.6.2" } }, "node_modules/encoding/node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "dependencies": { "once": "^1.4.0" } }, "node_modules/engine.io": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", "dev": true, "dependencies": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.0.3", "ws": "~8.2.3" }, "engines": { "node": ">=10.0.0" } }, "node_modules/engine.io-parser": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", "dev": true, "dependencies": { "@socket.io/base64-arraybuffer": "~1.0.2" }, "engines": { "node": ">=10.0.0" } }, "node_modules/engine.io/node_modules/cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/engine.io/node_modules/ws": { "version": "8.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/enhanced-resolve": { "version": "5.8.3", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" }, "engines": { "node": ">=10.13.0" } }, "node_modules/enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "dependencies": { "ansi-colors": "^4.1.1" }, "engines": { "node": ">=8.6" } }, "node_modules/ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", "dev": true }, "node_modules/entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true }, "node_modules/errlop": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/errlop/-/errlop-2.2.0.tgz", "integrity": "sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==", "dev": true, "engines": { "node": ">=0.8" }, "funding": { "url": "https://bevry.me/fund" } }, "node_modules/errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "optional": true, "dependencies": { "prr": "~1.0.1" }, "bin": { "errno": "cli.js" } }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-abstract": { "version": "1.18.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.2", "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.2", "is-string": "^1.0.5", "object-inspect": "^1.9.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", "string.prototype.trimstart": "^1.0.4", "unbox-primitive": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es5-ext": { "version": "0.10.53", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", "dev": true, "dependencies": { "es6-iterator": "~2.0.3", "es6-symbol": "~3.1.3", "next-tick": "~1.0.0" } }, "node_modules/es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "dependencies": { "d": "1", "es5-ext": "^0.10.35", "es6-symbol": "^3.1.1" } }, "node_modules/es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "dev": true }, "node_modules/es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "dependencies": { "es6-promise": "^4.0.3" } }, "node_modules/es6-symbol": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", "dev": true, "dependencies": { "d": "^1.0.1", "ext": "^1.1.2" } }, "node_modules/es6-weak-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "dev": true, "dependencies": { "d": "1", "es5-ext": "^0.10.46", "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.1" } }, "node_modules/esbuild": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.2.tgz", "integrity": "sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg==", "dev": true, "hasInstallScript": true, "optional": true, "bin": { "esbuild": "bin/esbuild" }, "optionalDependencies": { "esbuild-android-arm64": "0.14.2", "esbuild-darwin-64": "0.14.2", "esbuild-darwin-arm64": "0.14.2", "esbuild-freebsd-64": "0.14.2", "esbuild-freebsd-arm64": "0.14.2", "esbuild-linux-32": "0.14.2", "esbuild-linux-64": "0.14.2", "esbuild-linux-arm": "0.14.2", "esbuild-linux-arm64": "0.14.2", "esbuild-linux-mips64le": "0.14.2", "esbuild-linux-ppc64le": "0.14.2", "esbuild-netbsd-64": "0.14.2", "esbuild-openbsd-64": "0.14.2", "esbuild-sunos-64": "0.14.2", "esbuild-windows-32": "0.14.2", "esbuild-windows-64": "0.14.2", "esbuild-windows-arm64": "0.14.2" } }, "node_modules/esbuild-android-arm64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.2.tgz", "integrity": "sha512-hEixaKMN3XXCkoe+0WcexO4CcBVU5DCSUT+7P8JZiWZCbAjSkc9b6Yz2X5DSfQmRCtI/cQRU6TfMYrMQ5NBfdw==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "android" ] }, "node_modules/esbuild-darwin-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.2.tgz", "integrity": "sha512-Uq8t0cbJQkxkQdbUfOl2wZqZ/AtLZjvJulR1HHnc96UgyzG9YlCLSDMiqjM+NANEy7/zzvwKJsy3iNC9wwqLJA==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "darwin" ] }, "node_modules/esbuild-darwin-arm64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.2.tgz", "integrity": "sha512-619MSa17sr7YCIrUj88KzQu2ESA4jKYtIYfLU/smX6qNgxQt3Y/gzM4s6sgJ4fPQzirvmXgcHv1ZNQAs/Xh48A==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "darwin" ] }, "node_modules/esbuild-freebsd-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.2.tgz", "integrity": "sha512-aP6FE/ZsChZpUV6F3HE3x1Pz0paoYXycJ7oLt06g0G9dhJKknPawXCqQg/WMyD+ldCEZfo7F1kavenPdIT/SGQ==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "freebsd" ] }, "node_modules/esbuild-freebsd-arm64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.2.tgz", "integrity": "sha512-LSm98WTb1QIhyS83+Po0KTpZNdd2XpVpI9ua5rLWqKWbKeNRFwOsjeiuwBaRNc+O32s9oC2ZMefETxHBV6VNkQ==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "freebsd" ] }, "node_modules/esbuild-linux-32": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.2.tgz", "integrity": "sha512-8VxnNEyeUbiGflTKcuVc5JEPTqXfsx2O6ABwUbfS1Hp26lYPRPC7pKQK5Dxa0MBejGc50jy7YZae3EGQUQ8EkQ==", "cpu": [ "ia32" ], "dev": true, "optional": true, "os": [ "linux" ] }, "node_modules/esbuild-linux-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.2.tgz", "integrity": "sha512-4bzMS2dNxOJoFIiHId4w+tqQzdnsch71JJV1qZnbnErSFWcR9lRgpSqWnTTFtv6XM+MvltRzSXC5wQ7AEBY6Hg==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "linux" ] }, "node_modules/esbuild-linux-arm": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.2.tgz", "integrity": "sha512-PaylahvMHhH8YMfJPMKEqi64qA0Su+d4FNfHKvlKes/2dUe4QxgbwXT9oLVgy8iJdcFMrO7By4R8fS8S0p8aVQ==", "cpu": [ "arm" ], "dev": true, "optional": true, "os": [ "linux" ] }, "node_modules/esbuild-linux-arm64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.2.tgz", "integrity": "sha512-RlIVp0RwJrdtasDF1vTFueLYZ8WuFzxoQ1OoRFZOTyJHCGCNgh7xJIC34gd7B7+RT0CzLBB4LcM5n0LS+hIoww==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "linux" ] }, "node_modules/esbuild-linux-mips64le": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.2.tgz", "integrity": "sha512-Fdwrq2roFnO5oetIiUQQueZ3+5soCxBSJswg3MvYaXDomj47BN6oAWMZgLrFh1oVrtWrxSDLCJBenYdbm2s+qQ==", "cpu": [ "mips64el" ], "dev": true, "optional": true, "os": [ "linux" ] }, "node_modules/esbuild-linux-ppc64le": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.2.tgz", "integrity": "sha512-vxptskw8JfCDD9QqpRO0XnsM1osuWeRjPaXX1TwdveLogYsbdFtcuiuK/4FxGiNMUr1ojtnCS2rMPbY8puc5NA==", "cpu": [ "ppc64" ], "dev": true, "optional": true, "os": [ "linux" ] }, "node_modules/esbuild-netbsd-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.2.tgz", "integrity": "sha512-I8+LzYK5iSNpspS9eCV9sW67Rj8FgMHimGri4mKiGAmN0pNfx+hFX146rYtzGtewuxKtTsPywWteHx+hPRLDsw==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "netbsd" ] }, "node_modules/esbuild-openbsd-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.2.tgz", "integrity": "sha512-120HgMe9elidWUvM2E6mMf0csrGwx8sYDqUIJugyMy1oHm+/nT08bTAVXuwYG/rkMIqsEO9AlMxuYnwR6En/3Q==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "openbsd" ] }, "node_modules/esbuild-sunos-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.2.tgz", "integrity": "sha512-Q3xcf9Uyfra9UuCFxoLixVvdigo0daZaKJ97TL2KNA4bxRUPK18wwGUk3AxvgDQZpRmg82w9PnkaNYo7a+24ow==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "sunos" ] }, "node_modules/esbuild-wasm": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.2.tgz", "integrity": "sha512-Rs8NjWoo1UdsVjhxT2o6kLCX9Sh65pyd3/h4XeJ3jjQNM6NgL+/CSowuJgvOIjDAXMLXpc6fdGnyZQDil9IUJA==", "dev": true, "bin": { "esbuild": "bin/esbuild" }, "engines": { "node": ">=8" } }, "node_modules/esbuild-windows-32": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.2.tgz", "integrity": "sha512-TW7O49tPsrq+N1sW8mb3m24j/iDGa4xzAZH4wHWwoIzgtZAYPKC0hpIhufRRG/LA30bdMChO9pjJZ5mtcybtBQ==", "cpu": [ "ia32" ], "dev": true, "optional": true, "os": [ "win32" ] }, "node_modules/esbuild-windows-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.2.tgz", "integrity": "sha512-Rym6ViMNmi1E2QuQMWy0AFAfdY0wGwZD73BnzlsQBX5hZBuy/L+Speh7ucUZ16gwsrMM9v86icZUDrSN/lNBKg==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "win32" ] }, "node_modules/esbuild-windows-arm64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.2.tgz", "integrity": "sha512-ZrLbhr0vX5Em/P1faMnHucjVVWPS+m3tktAtz93WkMZLmbRJevhiW1y4CbulBd2z0MEdXZ6emDa1zFHq5O5bSA==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "win32" ] }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/escodegen": { "version": "1.14.3", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "dev": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1" }, "bin": { "escodegen": "bin/escodegen.js", "esgenerate": "bin/esgenerate.js" }, "engines": { "node": ">=4.0" }, "optionalDependencies": { "source-map": "~0.6.1" } }, "node_modules/escodegen/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/eslint": { "version": "5.16.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "ajv": "^6.9.1", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", "eslint-scope": "^4.0.3", "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", "espree": "^5.0.1", "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", "glob": "^7.1.2", "globals": "^11.7.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "inquirer": "^6.2.2", "js-yaml": "^3.13.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", "lodash": "^4.17.11", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", "optionator": "^0.8.2", "path-is-inside": "^1.0.2", "progress": "^2.0.0", "regexpp": "^2.0.1", "semver": "^5.5.1", "strip-ansi": "^4.0.0", "strip-json-comments": "^2.0.1", "table": "^5.2.3", "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { "node": "^6.14.0 || ^8.10.0 || >=9.10.0" } }, "node_modules/eslint-plugin-jasmine": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-2.10.1.tgz", "integrity": "sha1-VzO3CedR9LxA4x4cFpib0s377Jc=", "dev": true, "engines": { "node": ">=4", "npm": ">=2" } }, "node_modules/eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" }, "engines": { "node": ">=4.0.0" } }, "node_modules/eslint-utils": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "dependencies": { "eslint-visitor-keys": "^1.1.0" }, "engines": { "node": ">=6" } }, "node_modules/eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "dependencies": { "restore-cursor": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/cli-width": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "node_modules/eslint/node_modules/figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/eslint/node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/eslint/node_modules/inquirer": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "dependencies": { "ansi-escapes": "^3.2.0", "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^2.0.0", "lodash": "^4.17.12", "mute-stream": "0.0.7", "run-async": "^2.2.0", "rxjs": "^6.4.0", "string-width": "^2.1.0", "strip-ansi": "^5.1.0", "through": "^2.3.6" }, "engines": { "node": ">=6.0.0" } }, "node_modules/eslint/node_modules/inquirer/node_modules/ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/eslint/node_modules/inquirer/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/eslint/node_modules/inquirer/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, "engines": { "node": ">=6" } }, "node_modules/eslint/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, "node_modules/eslint/node_modules/onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "dependencies": { "mimic-fn": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" }, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/eslint/node_modules/string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" }, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "dependencies": { "ansi-regex": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/espree": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", "dev": true, "dependencies": { "acorn": "^6.0.7", "acorn-jsx": "^5.0.0", "eslint-visitor-keys": "^1.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" }, "engines": { "node": ">=4" } }, "node_modules/esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "dependencies": { "estraverse": "^5.1.0" }, "engines": { "node": ">=0.10" } }, "node_modules/esquery/node_modules/estraverse": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { "estraverse": "^5.2.0" }, "engines": { "node": ">=4.0" } }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "dependencies": { "d": "1", "es5-ext": "~0.10.14" } }, "node_modules/event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/eventemitter-asyncresource": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", "dev": true }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true, "engines": { "node": ">=0.8.x" } }, "node_modules/events-listener": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/events-listener/-/events-listener-1.1.0.tgz", "integrity": "sha512-Kd3EgYfODHueq6GzVfs/VUolh2EgJsS8hkO3KpnDrxVjU3eq63eXM2ujXkhPP+OkeUOhL8CxdfZbQXzryb5C4g==", "dev": true }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/execa/node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/execa/node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/execa/node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/execa/node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { "path-key": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/execa/node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/execa/node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/execa/node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/execa/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/exegesis": { "version": "2.5.6", "resolved": "https://registry.npmjs.org/exegesis/-/exegesis-2.5.6.tgz", "integrity": "sha512-e+YkH/zZTN2njiwrV8tY6tHGDsFu3LyR/YbrqdWvDZaAJ5YGWaBYyd3oX/Y26iGqQc+7jLEKLDTv2UPzjAYL8w==", "dev": true, "dependencies": { "@apidevtools/json-schema-ref-parser": "^9.0.3", "ajv": "^6.12.2", "body-parser": "^1.18.3", "content-type": "^1.0.4", "deep-freeze": "0.0.1", "events-listener": "^1.1.0", "glob": "^7.1.3", "json-ptr": "^1.3.1", "json-schema-traverse": "^0.4.1", "lodash": "^4.17.11", "openapi3-ts": "^1.2.0", "promise-breaker": "^5.0.0", "pump": "^3.0.0", "qs": "^6.6.0", "raw-body": "^2.3.3", "semver": "^7.0.0" }, "engines": { "node": ">=6.0.0", "npm": ">5.0.0" } }, "node_modules/exegesis-express": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/exegesis-express/-/exegesis-express-2.0.0.tgz", "integrity": "sha512-NKvKBsBa2OvU+1BFpWbz3PzoRMhA9q7/wU2oMmQ9X8lPy/FRatADvhlkGO1zYOMgeo35k1ZLO9ZV0uIs9pPnXg==", "dev": true, "dependencies": { "exegesis": "^2.0.0" }, "engines": { "node": ">=6.0.0", "npm": ">5.0.0" } }, "node_modules/exegesis/node_modules/qs": { "version": "6.10.1", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", "dev": true, "dependencies": { "side-channel": "^1.0.4" }, "engines": { "node": ">=0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/exegesis/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/exit-code": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/exit-code/-/exit-code-1.0.2.tgz", "integrity": "sha1-zhZYEcnxF69qX4gpQLlq5/muzDQ=", "dev": true }, "node_modules/exit-on-epipe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", "dev": true, "engines": { "node": ">=0.8" } }, "node_modules/expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "posix-character-classes": "^0.1.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/expand-brackets/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/expand-brackets/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/expand-brackets/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/expand-brackets/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "dev": true, "dependencies": { "accepts": "~1.3.7", "array-flatten": "1.1.1", "body-parser": "1.19.0", "content-disposition": "0.5.3", "content-type": "~1.0.4", "cookie": "0.4.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "~1.1.2", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "~1.1.2", "fresh": "0.5.2", "merge-descriptors": "1.0.1", "methods": "~1.1.2", "on-finished": "~2.3.0", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.5", "qs": "6.7.0", "range-parser": "~1.2.1", "safe-buffer": "5.1.2", "send": "0.17.1", "serve-static": "1.14.1", "setprototypeof": "1.1.1", "statuses": "~1.5.0", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, "engines": { "node": ">= 0.10.0" } }, "node_modules/express/node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/express/node_modules/qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", "dev": true, "engines": { "node": ">=0.6" } }, "node_modules/express/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/ext": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", "dev": true, "dependencies": { "type": "^2.0.0" } }, "node_modules/ext/node_modules/type": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", "dev": true }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "node_modules/extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extend-shallow/node_modules/is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "dependencies": { "is-plain-object": "^2.0.4" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extendr": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/extendr/-/extendr-3.5.0.tgz", "integrity": "sha512-7zpVbnnZy91J4k916ZGwpys56DEgJc/prTXDiqCYe/Mud5pqdVsSc9mG/U6sz3lQEvHs81i8Zi7whsFwifhZyw==", "dev": true, "dependencies": { "editions": "^2.2.0", "typechecker": "^4.7.0" }, "engines": { "node": ">=0.12" }, "funding": { "type": "cooperative", "url": "https://bevry.me/fund" } }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" }, "engines": { "node": ">=4" } }, "node_modules/extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", "expand-brackets": "^2.1.4", "extend-shallow": "^2.0.1", "fragment-cache": "^0.2.1", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extglob/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extglob/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extglob/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extglob/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extglob/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extract-opts": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-3.4.0.tgz", "integrity": "sha512-M7Y+1cJDkzOWqvGH5F/V2qgkD6+uitW3NV9rQGl+pLSVuXZ4IDDQgxxMeLPKcWUyfypBWczIILiroSuhXG7Ytg==", "dev": true, "dependencies": { "eachr": "^3.2.0", "editions": "^2.2.0", "typechecker": "^4.9.0" }, "engines": { "node": ">=0.10" }, "funding": { "url": "https://bevry.me/fund" } }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "engines": [ "node >=0.6.0" ] }, "node_modules/eyes": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "dev": true, "engines": { "node": "> 0.1.90" } }, "node_modules/eyes.selenium": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/eyes.selenium/-/eyes.selenium-3.9.1.tgz", "integrity": "sha512-/yJWPzSZPo0EIoNIEVq/T8+BhU3bcKynCx2A8CrVQ9rSrMymTkByYUVId4BnUD8RQy3Bb3b70uiwdn5ji+StVQ==", "dependencies": { "@applitools/eyes-common-legacy": "1.0.1", "@applitools/eyes-sdk-core-legacy": "1.0.1" }, "engines": { "node": ">=8.9.0" }, "peerDependencies": { "selenium-webdriver": "< 4.0.0" } }, "node_modules/fast-crc32c": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-crc32c/-/fast-crc32c-2.0.0.tgz", "integrity": "sha512-LIREwygxtxzHF11oLJ4xIVKu/ZWNgrj/QaGvaSD8ZggIsgCyCtSYevlrpWVqNau57ZwezV8K1HFBSjQ7FcRbTQ==", "dev": true, "optionalDependencies": { "sse4_crc32": "^6.0.1" } }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { "version": "3.2.9", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.9.tgz", "integrity": "sha512-MBwILhhD92sziIrMQwpqcuGERF+BH99ei2a3XsGJuqEKcSycAL+w0HWokFenZXona+kjFr82Lf71eTxNRC06XQ==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" }, "engines": { "node": ">=8.6.0" } }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "node_modules/fast-safe-stringify": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", "dev": true }, "node_modules/fast-text-encoding": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==", "dev": true }, "node_modules/fast-url-parser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", "dev": true, "dependencies": { "punycode": "^1.3.2" } }, "node_modules/fast-url-parser/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, "node_modules/fastparse": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "dev": true }, "node_modules/fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "dependencies": { "reusify": "^1.0.4" } }, "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, "dependencies": { "websocket-driver": ">=0.5.1" }, "engines": { "node": ">=0.8.0" } }, "node_modules/fecha": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz", "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==", "dev": true }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/file-entry-cache": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "dependencies": { "flat-cache": "^2.0.1" }, "engines": { "node": ">=4" } }, "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, "optional": true }, "node_modules/filesize": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==", "dev": true, "engines": { "node": ">= 0.4.0" } }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "on-finished": "~2.3.0", "parseurl": "~1.3.3", "statuses": "~1.5.0", "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, "node_modules/finalhandler/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, "node_modules/find-cache-dir/node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "dependencies": { "semver": "^6.0.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "dependencies": { "locate-path": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/firebase-tools": { "version": "9.8.0", "resolved": "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.8.0.tgz", "integrity": "sha512-UhOnT8csgc1jlS1GYz0IxTHwB9BYoxj+TSy4aIKj8a44OzsXVSiT6lOhLIYHZFLVdjqkLi08i1+07JoOVTmtTA==", "dev": true, "dependencies": { "@google-cloud/pubsub": "^2.7.0", "@types/archiver": "^5.1.0", "abort-controller": "^3.0.0", "archiver": "^5.0.0", "body-parser": "^1.19.0", "chokidar": "^3.0.2", "cjson": "^0.3.1", "cli-color": "^1.2.0", "cli-table": "^0.3.1", "commander": "^4.0.1", "configstore": "^5.0.1", "cors": "^2.8.5", "cross-env": "^5.1.3", "cross-spawn": "^7.0.1", "csv-streamify": "^3.0.4", "dotenv": "^6.1.0", "exegesis": "^2.5.6", "exegesis-express": "^2.0.0", "exit-code": "^1.0.2", "express": "^4.16.4", "fast-crc32c": "^2.0.0", "filesize": "^6.1.0", "fs-extra": "^0.23.1", "glob": "^7.1.2", "google-auth-library": "^6.1.3", "inquirer": "~6.3.1", "js-yaml": "^3.13.1", "jsonschema": "^1.0.2", "JSONStream": "^1.2.1", "jsonwebtoken": "^8.5.1", "leven": "^3.1.0", "lodash": "^4.17.19", "marked": "^0.7.0", "marked-terminal": "^3.3.0", "minimatch": "^3.0.4", "morgan": "^1.10.0", "node-fetch": "^2.6.1", "open": "^6.3.0", "ora": "^3.4.0", "plist": "^3.0.1", "portfinder": "^1.0.23", "progress": "^2.0.3", "proxy-agent": "^4.0.0", "request": "^2.87.0", "rimraf": "^3.0.0", "semver": "^5.7.1", "superstatic": "^7.1.0", "tar": "^4.3.0", "tcp-port-used": "^1.0.1", "tmp": "0.0.33", "triple-beam": "^1.3.0", "tweetsodium": "0.0.5", "universal-analytics": "^0.4.16", "unzipper": "^0.10.10", "update-notifier": "^4.1.0", "uuid": "^3.0.0", "winston": "^3.0.0", "winston-transport": "^4.4.0", "ws": "^7.2.3" }, "bin": { "firebase": "lib/bin/firebase.js" }, "engines": { "node": ">= 10.13" } }, "node_modules/firebase-tools/node_modules/ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/firebase-tools/node_modules/ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/firebase-tools/node_modules/archiver": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz", "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", "dev": true, "dependencies": { "archiver-utils": "^2.1.0", "async": "^3.2.0", "buffer-crc32": "^0.2.1", "readable-stream": "^3.6.0", "readdir-glob": "^1.0.0", "tar-stream": "^2.2.0", "zip-stream": "^4.1.0" }, "engines": { "node": ">= 10" } }, "node_modules/firebase-tools/node_modules/async": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", "dev": true }, "node_modules/firebase-tools/node_modules/chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, "node_modules/firebase-tools/node_modules/cjson": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.3.3.tgz", "integrity": "sha1-qS2ceG5b+bkwgGMp7gXV0yYbSvo=", "dev": true, "dependencies": { "json-parse-helpfulerror": "^1.0.3" }, "engines": { "node": ">= 0.3.0" } }, "node_modules/firebase-tools/node_modules/cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "dependencies": { "restore-cursor": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/firebase-tools/node_modules/cli-width": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "node_modules/firebase-tools/node_modules/commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/firebase-tools/node_modules/compress-commons": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.0.tgz", "integrity": "sha512-ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA==", "dev": true, "dependencies": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.1", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" }, "engines": { "node": ">= 10" } }, "node_modules/firebase-tools/node_modules/crc32-stream": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", "dev": true, "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" }, "engines": { "node": ">= 10" } }, "node_modules/firebase-tools/node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/firebase-tools/node_modules/figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=4" } }, "node_modules/firebase-tools/node_modules/fs-extra": { "version": "0.23.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.23.1.tgz", "integrity": "sha1-ZhHbpq3yq43Jxp+rN83fiBgVfj0=", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^2.1.0", "path-is-absolute": "^1.0.0", "rimraf": "^2.2.8" } }, "node_modules/firebase-tools/node_modules/fs-extra/node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "node_modules/firebase-tools/node_modules/fs-minipass": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "dev": true, "dependencies": { "minipass": "^2.6.0" } }, "node_modules/firebase-tools/node_modules/inquirer": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", "dev": true, "dependencies": { "ansi-escapes": "^3.2.0", "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^2.0.0", "lodash": "^4.17.11", "mute-stream": "0.0.7", "run-async": "^2.2.0", "rxjs": "^6.4.0", "string-width": "^2.1.0", "strip-ansi": "^5.1.0", "through": "^2.3.6" }, "engines": { "node": ">=6.0.0" } }, "node_modules/firebase-tools/node_modules/inquirer/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/firebase-tools/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/firebase-tools/node_modules/is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/firebase-tools/node_modules/is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/firebase-tools/node_modules/jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "dev": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/firebase-tools/node_modules/log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "dependencies": { "chalk": "^2.0.1" }, "engines": { "node": ">=4" } }, "node_modules/firebase-tools/node_modules/mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/firebase-tools/node_modules/minipass": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", "dev": true, "dependencies": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } }, "node_modules/firebase-tools/node_modules/minizlib": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", "dev": true, "dependencies": { "minipass": "^2.9.0" } }, "node_modules/firebase-tools/node_modules/mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, "node_modules/firebase-tools/node_modules/onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "dependencies": { "mimic-fn": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/firebase-tools/node_modules/open": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", "dev": true, "dependencies": { "is-wsl": "^1.1.0" }, "engines": { "node": ">=8" } }, "node_modules/firebase-tools/node_modules/ora": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", "dev": true, "dependencies": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-spinners": "^2.0.0", "log-symbols": "^2.2.0", "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1" }, "engines": { "node": ">=6" } }, "node_modules/firebase-tools/node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/firebase-tools/node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/firebase-tools/node_modules/restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "dependencies": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" }, "engines": { "node": ">=4" } }, "node_modules/firebase-tools/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/firebase-tools/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/firebase-tools/node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/firebase-tools/node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/firebase-tools/node_modules/string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" }, "engines": { "node": ">=4" } }, "node_modules/firebase-tools/node_modules/string-width/node_modules/strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "dependencies": { "ansi-regex": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/firebase-tools/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, "engines": { "node": ">=6" } }, "node_modules/firebase-tools/node_modules/strip-ansi/node_modules/ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/firebase-tools/node_modules/tar": { "version": "4.4.19", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", "dev": true, "dependencies": { "chownr": "^1.1.4", "fs-minipass": "^1.2.7", "minipass": "^2.9.0", "minizlib": "^1.3.3", "mkdirp": "^0.5.5", "safe-buffer": "^5.2.1", "yallist": "^3.1.1" }, "engines": { "node": ">=4.5" } }, "node_modules/firebase-tools/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/firebase-tools/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/firebase-tools/node_modules/winston": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", "dev": true, "dependencies": { "@dabh/diagnostics": "^2.0.2", "async": "^3.1.0", "is-stream": "^2.0.0", "logform": "^2.2.0", "one-time": "^1.0.0", "readable-stream": "^3.4.0", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", "winston-transport": "^4.4.0" }, "engines": { "node": ">= 6.4.0" } }, "node_modules/firebase-tools/node_modules/ws": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", "dev": true, "engines": { "node": ">=8.3.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/firebase-tools/node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/firebase-tools/node_modules/zip-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", "dev": true, "dependencies": { "archiver-utils": "^2.1.0", "compress-commons": "^4.1.0", "readable-stream": "^3.6.0" }, "engines": { "node": ">= 10" } }, "node_modules/flat-arguments": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/flat-arguments/-/flat-arguments-1.0.2.tgz", "integrity": "sha1-m6p4Ct8FAfKC1ybJxqA426ROp28=", "dev": true, "dependencies": { "array-flatten": "^1.0.0", "as-array": "^1.0.0", "lodash.isarguments": "^3.0.0", "lodash.isobject": "^3.0.0" } }, "node_modules/flat-arguments/node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, "node_modules/flat-arguments/node_modules/as-array": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/as-array/-/as-array-1.0.0.tgz", "integrity": "sha1-KKbu6qVynx9OyiBH316d4avaDtE=", "dev": true, "dependencies": { "lodash.isarguments": "2.4.x", "lodash.isobject": "^2.4.1", "lodash.values": "^2.4.1" } }, "node_modules/flat-arguments/node_modules/as-array/node_modules/lodash.isarguments": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-2.4.1.tgz", "integrity": "sha1-STGpwIJTrfCRrnyhkiWKlzh27Mo=", "dev": true }, "node_modules/flat-arguments/node_modules/as-array/node_modules/lodash.isobject": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", "dev": true, "dependencies": { "lodash._objecttypes": "~2.4.1" } }, "node_modules/flat-arguments/node_modules/lodash.isobject": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", "dev": true }, "node_modules/flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "dependencies": { "flatted": "^2.0.0", "rimraf": "2.6.3", "write": "1.0.3" }, "engines": { "node": ">=4" } }, "node_modules/flat-cache/node_modules/rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "node_modules/flatmap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/flatmap/-/flatmap-0.0.3.tgz", "integrity": "sha1-Hxik2TgVLUlZZfnJWNkjqy3WabQ=", "dev": true }, "node_modules/flatted": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, "node_modules/flatten": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", "dev": true }, "node_modules/fn.name": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", "dev": true }, "node_modules/follow-redirects": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", "dev": true, "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], "engines": { "node": ">=4.0" }, "peerDependenciesMeta": { "debug": { "optional": true } } }, "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "engines": { "node": "*" } }, "node_modules/form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" }, "engines": { "node": ">= 0.12" } }, "node_modules/forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "dependencies": { "map-cache": "^0.2.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" }, "engines": { "node": ">=6 <7 || >=8" } }, "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "dependencies": { "minipass": "^3.0.0" }, "engines": { "node": ">= 8" } }, "node_modules/fs-monkey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", "dev": true }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/fstream": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", "mkdirp": ">=0.5 0", "rimraf": "2" }, "engines": { "node": ">=0.6" } }, "node_modules/ftp": { "version": "0.3.10", "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "dev": true, "dependencies": { "readable-stream": "1.1.x", "xregexp": "2.0.0" }, "engines": { "node": ">=0.8.0" } }, "node_modules/ftp/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "node_modules/ftp/node_modules/readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", "isarray": "0.0.1", "string_decoder": "~0.10.x" } }, "node_modules/ftp/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "node_modules/ftp/node_modules/xregexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", "dev": true, "engines": { "node": "*" } }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "node_modules/gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "dependencies": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.0", "object-assign": "^4.1.0", "signal-exit": "^3.0.0", "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" } }, "node_modules/gauge/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/gauge/node_modules/is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "optional": true, "dependencies": { "number-is-nan": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/gauge/node_modules/string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "optional": true, "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/gauge/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "optional": true, "dependencies": { "ansi-regex": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/gaxios": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.2.0.tgz", "integrity": "sha512-Ms7fNifGv0XVU+6eIyL9LB7RVESeML9+cMvkwGS70xyD6w2Z80wl6RiqiJ9k1KFlJCUTQqFFc8tXmPQfSKUe8g==", "dev": true, "dependencies": { "abort-controller": "^3.0.0", "extend": "^3.0.2", "https-proxy-agent": "^5.0.0", "is-stream": "^2.0.0", "node-fetch": "^2.3.0" }, "engines": { "node": ">=10" } }, "node_modules/gaxios/node_modules/is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/gcp-metadata": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz", "integrity": "sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw==", "dev": true, "dependencies": { "gaxios": "^4.0.0", "json-bigint": "^1.0.0" }, "engines": { "node": ">=10" } }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "engines": { "node": ">=8.0.0" } }, "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "dependencies": { "pump": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/get-uri": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", "dev": true, "dependencies": { "@tootallnate/once": "1", "data-uri-to-buffer": "3", "debug": "4", "file-uri-to-path": "2", "fs-extra": "^8.1.0", "ftp": "^0.3.10" }, "engines": { "node": ">= 6" } }, "node_modules/get-uri/node_modules/file-uri-to-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dependencies": { "assert-plus": "^1.0.0" } }, "node_modules/github-slugger": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", "dev": true, "dependencies": { "emoji-regex": ">=6.0.0 <=6.1.1" } }, "node_modules/github-slugger/node_modules/emoji-regex": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz", "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=", "dev": true }, "node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { "is-glob": "^4.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/glob-slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/glob-slash/-/glob-slash-1.0.0.tgz", "integrity": "sha1-/lLvpDMjP3Si/mTHq7m8hIICq5U=", "dev": true }, "node_modules/glob-slasher": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/glob-slasher/-/glob-slasher-1.0.1.tgz", "integrity": "sha1-dHoOW7IiZC7hDT4FRD4QlJPLD44=", "dev": true, "dependencies": { "glob-slash": "^1.0.0", "lodash.isobject": "^2.4.1", "toxic": "^1.0.0" } }, "node_modules/glob-to-regexp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", "dev": true }, "node_modules/global-dirs": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", "dev": true, "dependencies": { "ini": "1.3.7" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/global-dirs/node_modules/ini": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", "dev": true }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/globby": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", "dev": true, "dependencies": { "@types/glob": "^7.1.1", "array-union": "^1.0.2", "dir-glob": "^2.2.2", "fast-glob": "^2.2.6", "glob": "^7.1.3", "ignore": "^4.0.3", "pify": "^4.0.1", "slash": "^2.0.0" }, "engines": { "node": ">=6" } }, "node_modules/globby/node_modules/@nodelib/fs.stat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/globby/node_modules/array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "dependencies": { "array-uniq": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/globby/node_modules/braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", "extend-shallow": "^2.0.1", "fill-range": "^4.0.0", "isobject": "^3.0.1", "repeat-element": "^1.1.2", "snapdragon": "^0.8.1", "snapdragon-node": "^2.0.1", "split-string": "^3.0.2", "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/globby/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/globby/node_modules/dir-glob": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "dev": true, "dependencies": { "path-type": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/globby/node_modules/fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", "dev": true, "dependencies": { "@mrmlnc/readdir-enhanced": "^2.2.1", "@nodelib/fs.stat": "^1.1.2", "glob-parent": "^3.1.0", "is-glob": "^4.0.0", "merge2": "^1.2.3", "micromatch": "^3.1.10" }, "engines": { "node": ">=4.0.0" } }, "node_modules/globby/node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/globby/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/globby/node_modules/glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "dependencies": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" } }, "node_modules/globby/node_modules/glob-parent/node_modules/is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "dependencies": { "is-extglob": "^2.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/globby/node_modules/ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/globby/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "dependencies": { "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/globby/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/globby/node_modules/micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "braces": "^2.3.1", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "extglob": "^2.0.4", "fragment-cache": "^0.2.1", "kind-of": "^6.0.2", "nanomatch": "^1.2.9", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/globby/node_modules/path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "dependencies": { "pify": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/globby/node_modules/path-type/node_modules/pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/globby/node_modules/slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/globby/node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/google-auth-library": { "version": "6.1.6", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.6.tgz", "integrity": "sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==", "dev": true, "dependencies": { "arrify": "^2.0.0", "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", "fast-text-encoding": "^1.0.0", "gaxios": "^4.0.0", "gcp-metadata": "^4.2.0", "gtoken": "^5.0.4", "jws": "^4.0.0", "lru-cache": "^6.0.0" }, "engines": { "node": ">=10" } }, "node_modules/google-gax": { "version": "2.11.2", "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.11.2.tgz", "integrity": "sha512-PNqXv7Oi5XBMgoMWVxLZHUidfMv7cPHrDSDXqLyEd6kY6pqFnVKC8jt2T1df4JPSc2+VLPdeo6L7X9mbdQG8Xw==", "dev": true, "dependencies": { "@grpc/grpc-js": "~1.2.0", "@grpc/proto-loader": "^0.5.1", "@types/long": "^4.0.0", "abort-controller": "^3.0.0", "duplexify": "^4.0.0", "fast-text-encoding": "^1.0.3", "google-auth-library": "^7.0.2", "is-stream-ended": "^0.1.4", "node-fetch": "^2.6.1", "protobufjs": "^6.10.2", "retry-request": "^4.0.0" }, "bin": { "compileProtos": "build/tools/compileProtos.js" }, "engines": { "node": ">=10" } }, "node_modules/google-gax/node_modules/duplexify": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz", "integrity": "sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA==", "dev": true, "dependencies": { "end-of-stream": "^1.4.1", "inherits": "^2.0.3", "readable-stream": "^3.1.1", "stream-shift": "^1.0.0" } }, "node_modules/google-gax/node_modules/google-auth-library": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.0.3.tgz", "integrity": "sha512-6wJNYqY1QUr5I2lWaUkkzOT2b9OCNhNQrdFOt/bsBbGb7T7NCdEvrBsXraUm+KTUGk2xGlQ7m9RgUd4Llcw8NQ==", "dev": true, "dependencies": { "arrify": "^2.0.0", "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", "fast-text-encoding": "^1.0.0", "gaxios": "^4.0.0", "gcp-metadata": "^4.2.0", "gtoken": "^5.0.4", "jws": "^4.0.0", "lru-cache": "^6.0.0" }, "engines": { "node": ">=10" } }, "node_modules/google-gax/node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/google-p12-pem": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.0.3.tgz", "integrity": "sha512-wS0ek4ZtFx/ACKYF3JhyGe5kzH7pgiQ7J5otlumqR9psmWMYc+U9cErKlCYVYHoUaidXHdZ2xbo34kB+S+24hA==", "dev": true, "dependencies": { "node-forge": "^0.10.0" }, "bin": { "gp12-pem": "build/src/bin/gp12-pem.js" }, "engines": { "node": ">=10" } }, "node_modules/got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", "dev": true, "dependencies": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", "cacheable-request": "^6.0.0", "decompress-response": "^3.3.0", "duplexer3": "^0.1.4", "get-stream": "^4.1.0", "lowercase-keys": "^1.0.1", "mimic-response": "^1.0.1", "p-cancelable": "^1.0.0", "to-readable-stream": "^1.0.0", "url-parse-lax": "^3.0.0" }, "engines": { "node": ">=8.6" } }, "node_modules/graceful-fs": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "node_modules/gtoken": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.2.1.tgz", "integrity": "sha512-OY0BfPKe3QnMsY9MzTHTSKn+Vl2l1CcLe6BwDEQj00mbbkl5nyQ/7EUREstg4fQNZ8iYE7br4JJ7TdKeDOPWmw==", "dev": true, "dependencies": { "gaxios": "^4.0.0", "google-p12-pem": "^3.0.3", "jws": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "engines": { "node": ">=4" } }, "node_modules/har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "deprecated": "this library is no longer supported", "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" }, "engines": { "node": ">=6" } }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "dependencies": { "function-bind": "^1.1.1" }, "engines": { "node": ">= 0.4.0" } }, "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/has-ansi/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/has-values/node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "dependencies": { "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/has-values/node_modules/kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/hast-util-from-parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", "dev": true, "dependencies": { "@types/parse5": "^5.0.0", "hastscript": "^6.0.0", "property-information": "^5.0.0", "vfile": "^4.0.0", "vfile-location": "^3.2.0", "web-namespaces": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-has-property": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz", "integrity": "sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-is-element": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-parse-selector": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-sanitize": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-3.0.2.tgz", "integrity": "sha512-+2I0x2ZCAyiZOO/sb4yNLFmdwPBnyJ4PBkVTUMKMqBwYNA+lXSgOmoRXlJFazoyid9QPogRRKgKhVEodv181sA==", "dev": true, "dependencies": { "xtend": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-to-html": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-6.1.0.tgz", "integrity": "sha512-IlC+LG2HGv0Y8js3wqdhg9O2sO4iVpRDbHOPwXd7qgeagpGsnY49i8yyazwqS35RA35WCzrBQE/n0M6GG/ewxA==", "dev": true, "dependencies": { "ccount": "^1.0.0", "comma-separated-tokens": "^1.0.1", "hast-util-is-element": "^1.0.0", "hast-util-whitespace": "^1.0.0", "html-void-elements": "^1.0.0", "property-information": "^5.2.0", "space-separated-tokens": "^1.0.0", "stringify-entities": "^2.0.0", "unist-util-is": "^3.0.0", "xtend": "^4.0.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-to-string": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz", "integrity": "sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hast-util-whitespace": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz", "integrity": "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hastscript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", "dev": true, "dependencies": { "@types/hast": "^2.0.0", "comma-separated-tokens": "^1.0.0", "hast-util-parse-selector": "^2.0.0", "property-information": "^5.0.0", "space-separated-tokens": "^1.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/hdr-histogram-js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.1.tgz", "integrity": "sha512-uPZxl1dAFnjUFHWLZmt93vUUvtHeaBay9nVNHu38SdOjMSF/4KqJUqa1Seuj08ptU1rEb6AHvB41X8n/zFZ74Q==", "dev": true, "dependencies": { "@assemblyscript/loader": "^0.10.1", "base64-js": "^1.2.0", "pako": "^1.0.3" } }, "node_modules/hdr-histogram-percentiles-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", "dev": true }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, "bin": { "he": "bin/he" } }, "node_modules/header-case": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", "dev": true, "dependencies": { "no-case": "^2.2.0", "upper-case": "^1.1.3" } }, "node_modules/home-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/home-dir/-/home-dir-1.0.0.tgz", "integrity": "sha1-KRfrRL3JByztqUJXlUOEfjAX/k4=", "dev": true }, "node_modules/hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "engines": { "node": ">=10" } }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", "readable-stream": "^2.0.1", "wbuf": "^1.1.0" } }, "node_modules/html": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/html/-/html-1.0.0.tgz", "integrity": "sha1-pUT6nqVJK/s6LMqCEKEL57WvH2E=", "dev": true, "dependencies": { "concat-stream": "^1.4.7" }, "bin": { "html": "bin/html.js" } }, "node_modules/html-encoding-sniffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "dev": true, "dependencies": { "whatwg-encoding": "^1.0.1" } }, "node_modules/html-entities": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", "dev": true }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "node_modules/html-void-elements": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/htmlencode": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz", "integrity": "sha1-9+LWr74YqHp45jujMI51N2Z0Dj8=", "dev": true }, "node_modules/htmlparser2": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "dev": true, "dependencies": { "domelementtype": "^1.3.1", "domhandler": "^2.3.0", "domutils": "^1.5.1", "entities": "^1.1.1", "inherits": "^2.0.1", "readable-stream": "^3.1.1" } }, "node_modules/htmlparser2/node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", "dev": true }, "node_modules/http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dev": true, "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.1", "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" }, "engines": { "node": ">= 0.6" } }, "node_modules/http-errors/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "node_modules/http-link-header": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-0.8.0.tgz", "integrity": "sha1-oitBoMmx4tj6wb8baXxr1TLV9eQ=", "dev": true }, "node_modules/http-parser-js": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", "dev": true }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" }, "engines": { "node": ">=8.0.0" } }, "node_modules/http-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "dependencies": { "@tootallnate/once": "1", "agent-base": "6", "debug": "4" }, "engines": { "node": ">= 6" } }, "node_modules/http-proxy-middleware": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz", "integrity": "sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg==", "dev": true, "dependencies": { "@types/http-proxy": "^1.17.5", "http-proxy": "^1.18.1", "is-glob": "^4.0.1", "is-plain-obj": "^3.0.0", "micromatch": "^4.0.2" }, "engines": { "node": ">=12.0.0" } }, "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/http-server": { "version": "0.12.3", "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz", "integrity": "sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==", "dev": true, "dependencies": { "basic-auth": "^1.0.3", "colors": "^1.4.0", "corser": "^2.0.1", "ecstatic": "^3.3.2", "http-proxy": "^1.18.0", "minimist": "^1.2.5", "opener": "^1.5.1", "portfinder": "^1.0.25", "secure-compare": "3.0.1", "union": "~0.5.0" }, "bin": { "hs": "bin/http-server", "http-server": "bin/http-server" }, "engines": { "node": ">=6" } }, "node_modules/http-server/node_modules/basic-auth": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/http-server/node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, "engines": { "node": ">=0.1.90" } }, "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" }, "engines": { "node": ">=0.8", "npm": ">=1.3.7" } }, "node_modules/https-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "dependencies": { "agent-base": "6", "debug": "4" }, "engines": { "node": ">= 6" } }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "engines": { "node": ">=10.17.0" } }, "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "dev": true, "dependencies": { "ms": "^2.0.0" } }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, "engines": { "node": ">=0.10.0" } }, "node_modules/icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/ignore-walk": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", "dev": true, "dependencies": { "minimatch": "^3.0.4" }, "engines": { "node": ">=10" } }, "node_modules/ignorefs": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/ignorefs/-/ignorefs-1.4.1.tgz", "integrity": "sha512-1whgvOsPWFZRNA/5OFhIk56C9Y39+/CYaRVNvsZZkLymacOSqqdSU53xk8CP3G2u5gz2PX6RLxqKPcsIpDriog==", "dev": true, "dependencies": { "editions": "^2.2.0", "ignorepatterns": "^1.4.0" }, "engines": { "node": ">=0.12" }, "funding": { "url": "https://bevry.me/fund" } }, "node_modules/ignorepatterns": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ignorepatterns/-/ignorepatterns-1.4.0.tgz", "integrity": "sha512-YPBIFRB25iZD0WiLxmToe80+QU+mZI+bUlEh3Ze/4gbhlXHdQFk0SwAFQtPOiBAoDv3FvhtSTDUCD9DKFsHTRA==", "dev": true, "dependencies": { "editions": "^2.2.0" }, "engines": { "node": ">=0.12" }, "funding": { "url": "https://bevry.me/fund" } }, "node_modules/image-size": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==", "dev": true, "bin": { "image-size": "bin/image-size.js" }, "engines": { "node": ">=6.9.0" } }, "node_modules/image-ssim": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz", "integrity": "sha1-g7Qsei5uS4VQVHf+aRf128VkIOU=", "dev": true }, "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" }, "node_modules/immutable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", "dev": true }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true, "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, "node_modules/infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/ini": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/inquirer": { "version": "7.3.3", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "engines": { "node": ">=8.0.0" } }, "node_modules/inquirer/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/inquirer/node_modules/chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/inquirer/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/inquirer/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/inquirer/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/inquirer/node_modules/rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/inquirer/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/inquirer/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/install-artifact-from-github": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/install-artifact-from-github/-/install-artifact-from-github-1.2.0.tgz", "integrity": "sha512-3OxCPcY55XlVM3kkfIpeCgmoSKnMsz2A3Dbhsq0RXpIknKQmrX1YiznCeW9cD2ItFmDxziA3w6Eg8d80AoL3oA==", "dev": true, "optional": true, "bin": { "install-from-cache": "bin/install-from-cache.js", "save-to-github-cache": "bin/save-to-github-cache.js" } }, "node_modules/interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/intl": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", "integrity": "sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94=", "dev": true }, "node_modules/intl-messageformat": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz", "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==", "dev": true, "dependencies": { "intl-messageformat-parser": "^1.8.1" } }, "node_modules/intl-messageformat-parser": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", "deprecated": "We've written a new parser that's 6x faster and is backwards compatible. Please use @formatjs/icu-messageformat-parser", "dev": true }, "node_modules/intl-pluralrules": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/intl-pluralrules/-/intl-pluralrules-1.2.2.tgz", "integrity": "sha512-SBdlNCJAhTA0I0uHg2dn7I+c6BCvSVk6zJ/01ozjwJK7BvKms9RH3w3Sd/Ag24KffZ/Yx6KJRCKAc7eE8TZLNg==", "dev": true }, "node_modules/invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, "node_modules/ip-regex": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-accessor-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-alphanumeric": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-alphanumerical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "dev": true, "dependencies": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "node_modules/is-bigint": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/is-boolean-object": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", "dev": true, "dependencies": { "call-bind": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "node_modules/is-callable": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "dependencies": { "ci-info": "^2.0.0" }, "bin": { "is-ci": "bin.js" } }, "node_modules/is-core-module": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", "dev": true, "dependencies": { "has": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "dependencies": { "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-data-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-decimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-descriptor/node_modules/kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-docker": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", "dev": true, "bin": { "is-docker": "cli.js" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-hexadecimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-installed-globally": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, "dependencies": { "global-dirs": "^2.0.1", "is-path-inside": "^3.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", "dev": true }, "node_modules/is-lower-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", "dev": true, "dependencies": { "lower-case": "^1.1.0" } }, "node_modules/is-negative-zero": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-npm": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "dependencies": { "isobject": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-promise": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", "dev": true }, "node_modules/is-regex": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-symbols": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-stream-ended": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==", "dev": true }, "node_modules/is-string": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, "dependencies": { "has-symbols": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-upper-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", "dev": true, "dependencies": { "upper-case": "^1.1.0" } }, "node_modules/is-url": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", "dev": true }, "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, "node_modules/is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-word-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "dependencies": { "is-docker": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", "dev": true }, "node_modules/is2": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.6.tgz", "integrity": "sha512-+Z62OHOjA6k2sUDOKXoZI3EXv7Fb1K52jpTBLbkfx62bcUeSsrTBLhEquCRDKTx0XE5XbHcG/S2vrtE3lnEDsQ==", "dev": true, "dependencies": { "deep-is": "^0.1.3", "ip-regex": "^4.1.0", "is-url": "^1.2.4" }, "engines": { "node": ">=v0.10.0" } }, "node_modules/is2/node_modules/ip-regex": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "node_modules/isbinaryfile": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", "dev": true, "engines": { "node": ">= 8.0.0" }, "funding": { "url": "https://github.com/sponsors/gjtorikian/" } }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", "dev": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" }, "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-report/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-report/node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "dependencies": { "semver": "^6.0.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/istanbul-lib-report/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-source-maps": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", "dev": true, "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^2.0.5", "make-dir": "^2.1.0", "rimraf": "^2.6.3", "source-map": "^0.6.1" }, "engines": { "node": ">=6" } }, "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/istanbul-lib-source-maps/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-reports": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/jasmine": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.7.0.tgz", "integrity": "sha512-wlzGQ+cIFzMEsI+wDqmOwvnjTvolLFwlcpYLCqSPPH0prOQaW3P+IzMhHYn934l1imNvw07oCyX+vGUv3wmtSQ==", "dev": true, "dependencies": { "glob": "^7.1.6", "jasmine-core": "~3.7.0" }, "bin": { "jasmine": "bin/jasmine.js" } }, "node_modules/jasmine-core": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", "dev": true }, "node_modules/jasmine-marbles": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jasmine-marbles/-/jasmine-marbles-0.5.0.tgz", "integrity": "sha512-hkSYy7VJpcxaKE48s/CasVpGyheElp5ZegguFi5kpYAaUWsyOko6RnMZS1kv14ThMtlJVNqCW5z16f1q6HqbEg==", "dev": true, "dependencies": { "lodash": "^4.5.0" }, "peerDependencies": { "rxjs": "^6.4.0" } }, "node_modules/jasmine-spec-reporter": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", "dev": true, "dependencies": { "colors": "1.4.0" } }, "node_modules/jasmine-spec-reporter/node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, "engines": { "node": ">=0.1.90" } }, "node_modules/jasmine-ts": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/jasmine-ts/-/jasmine-ts-0.3.0.tgz", "integrity": "sha512-K5joodjVOh3bnD06CNXC8P5htDq/r0Rhjv66ECOpdIGFLly8kM7V+X/GXcd9kv+xO+tIq3q9Y8B5OF6yr/iiDw==", "dev": true, "dependencies": { "yargs": "^8.0.2" }, "bin": { "jasmine-ts": "lib/index.js" }, "engines": { "node": ">= 5.12" }, "peerDependencies": { "jasmine": ">= 2.0", "ts-node": ">=3.2.0 <8", "typescript": ">=2.4.1" } }, "node_modules/jasmine-ts/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/jasmine-ts/node_modules/camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/jasmine-ts/node_modules/cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "dependencies": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wrap-ansi": "^2.0.0" } }, "node_modules/jasmine-ts/node_modules/cliui/node_modules/string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/jasmine-ts/node_modules/get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, "node_modules/jasmine-ts/node_modules/is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "dependencies": { "number-is-nan": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/jasmine-ts/node_modules/require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "node_modules/jasmine-ts/node_modules/string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" }, "engines": { "node": ">=4" } }, "node_modules/jasmine-ts/node_modules/string-width/node_modules/ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/jasmine-ts/node_modules/string-width/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/jasmine-ts/node_modules/string-width/node_modules/strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "dependencies": { "ansi-regex": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/jasmine-ts/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/jasmine-ts/node_modules/wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "dependencies": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/jasmine-ts/node_modules/wrap-ansi/node_modules/string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "dependencies": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/jasmine-ts/node_modules/y18n": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", "dev": true }, "node_modules/jasmine-ts/node_modules/yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "dev": true, "dependencies": { "camelcase": "^4.1.0", "cliui": "^3.2.0", "decamelize": "^1.1.1", "get-caller-file": "^1.0.1", "os-locale": "^2.0.0", "read-pkg-up": "^2.0.0", "require-directory": "^2.1.1", "require-main-filename": "^1.0.1", "set-blocking": "^2.0.0", "string-width": "^2.0.0", "which-module": "^2.0.0", "y18n": "^3.2.1", "yargs-parser": "^7.0.0" } }, "node_modules/jasmine-ts/node_modules/yargs-parser": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "dev": true, "dependencies": { "camelcase": "^4.1.0" } }, "node_modules/jasmine/node_modules/jasmine-core": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.7.1.tgz", "integrity": "sha512-DH3oYDS/AUvvr22+xUBW62m1Xoy7tUlY1tsxKEJvl5JeJ7q8zd1K5bUwiOxdH+erj6l2vAMM3hV25Xs9/WrmuQ==", "dev": true }, "node_modules/jasminewd2": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", "dev": true, "engines": { "node": ">= 6.9.x" } }, "node_modules/jest-worker": { "version": "27.2.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, "engines": { "node": ">= 10.13.0" } }, "node_modules/jest-worker/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", "dev": true }, "node_modules/join-path": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/join-path/-/join-path-1.1.1.tgz", "integrity": "sha1-EFNaEm0ky9Zff/zfFe8uYxB2tQU=", "dev": true, "dependencies": { "as-array": "^2.0.0", "url-join": "0.0.1", "valid-url": "^1" } }, "node_modules/jpeg-js": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz", "integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==", "dev": true }, "node_modules/js-library-detector": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.4.0.tgz", "integrity": "sha512-NB2sYpmgqiTd7PNNhgp6bnEZmjvTUdAbzxABvYXWLpTL/t158T6mPnD8uYNd0FDP73YWyMrTYDvPxqdvCTbv2g==", "dev": true }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "node_modules/jsdom": { "version": "15.2.1", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz", "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==", "dev": true, "dependencies": { "abab": "^2.0.0", "acorn": "^7.1.0", "acorn-globals": "^4.3.2", "array-equal": "^1.0.0", "cssom": "^0.4.1", "cssstyle": "^2.0.0", "data-urls": "^1.1.0", "domexception": "^1.0.1", "escodegen": "^1.11.1", "html-encoding-sniffer": "^1.0.2", "nwsapi": "^2.2.0", "parse5": "5.1.0", "pn": "^1.1.0", "request": "^2.88.0", "request-promise-native": "^1.0.7", "saxes": "^3.1.9", "symbol-tree": "^3.2.2", "tough-cookie": "^3.0.1", "w3c-hr-time": "^1.0.1", "w3c-xmlserializer": "^1.1.2", "webidl-conversions": "^4.0.2", "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^7.0.0", "ws": "^7.0.0", "xml-name-validator": "^3.0.0" }, "engines": { "node": ">=8" }, "peerDependencies": { "canvas": "^2.5.0" }, "peerDependenciesMeta": { "canvas": { "optional": true } } }, "node_modules/jsdom/node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/jsdom/node_modules/parse5": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", "dev": true }, "node_modules/jsdom/node_modules/tough-cookie": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", "dev": true, "dependencies": { "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" }, "engines": { "node": ">=6" } }, "node_modules/jsdom/node_modules/ws": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", "dev": true, "engines": { "node": ">=8.3.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true, "bin": { "jsesc": "bin/jsesc" }, "engines": { "node": ">=4" } }, "node_modules/json-bigint": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", "dev": true, "dependencies": { "bignumber.js": "^9.0.0" } }, "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "node_modules/json-parse-helpfulerror": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=", "dev": true, "dependencies": { "jju": "^1.1.0" } }, "node_modules/json-ptr": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/json-ptr/-/json-ptr-1.3.2.tgz", "integrity": "sha512-tFH40YQ+lG7mgYYM1kGZOhQngO4SbOEHZJlA4W+NtetWZ20EUU3BPU+30uWRKumuAJoSo5eqrsXD2h72ioS8ew==", "dev": true, "dependencies": { "tslib": "^2.0.0" } }, "node_modules/json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "node_modules/json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "dependencies": { "minimist": "^1.2.5" }, "bin": { "json5": "lib/cli.js" }, "engines": { "node": ">=6" } }, "node_modules/jsonc-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", "dev": true }, "node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/jsonld": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-4.0.1.tgz", "integrity": "sha512-ltEqMQB37ZxZnsgmI+9rqHYkz1M6PqUykuS1t2aQNuH1oiLrUDYz5nyVkHQDgjFd7CFKTIWeLiNhwdwFrH5o5A==", "dev": true, "dependencies": { "canonicalize": "^1.0.1", "lru-cache": "^5.1.1", "object.fromentries": "^2.0.2", "rdf-canonize": "^2.0.1", "request": "^2.88.0", "semver": "^6.3.0" }, "engines": { "node": ">=6" } }, "node_modules/jsonld/node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { "yallist": "^3.0.2" } }, "node_modules/jsonld/node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/jsonlint-mod": { "version": "1.7.6", "resolved": "https://registry.npmjs.org/jsonlint-mod/-/jsonlint-mod-1.7.6.tgz", "integrity": "sha512-oGuk6E1ehmIpw0w9ttgb2KsDQQgGXBzZczREW8OfxEm9eCQYL9/LCexSnh++0z3AiYGcXpBgqDSx9AAgzl/Bvg==", "dev": true, "dependencies": { "chalk": "^2.4.2", "JSV": "^4.0.2", "underscore": "^1.9.1" }, "bin": { "jsonlint": "lib/cli.js" }, "engines": { "node": ">= 0.6" } }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true, "engines": [ "node >= 0.2.0" ] }, "node_modules/jsonschema": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==", "dev": true, "engines": { "node": "*" } }, "node_modules/JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "dependencies": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" }, "bin": { "JSONStream": "bin.js" }, "engines": { "node": "*" } }, "node_modules/jsonwebtoken": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", "dev": true, "dependencies": { "jws": "^3.2.2", "lodash.includes": "^4.3.0", "lodash.isboolean": "^3.0.3", "lodash.isinteger": "^4.0.4", "lodash.isnumber": "^3.0.3", "lodash.isplainobject": "^4.0.6", "lodash.isstring": "^4.0.1", "lodash.once": "^4.0.0", "ms": "^2.1.1", "semver": "^5.6.0" }, "engines": { "node": ">=4", "npm": ">=1.4.28" } }, "node_modules/jsonwebtoken/node_modules/jwa": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", "dev": true, "dependencies": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "node_modules/jsonwebtoken/node_modules/jws": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", "dev": true, "dependencies": { "jwa": "^1.4.1", "safe-buffer": "^5.0.1" } }, "node_modules/jsonwebtoken/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "engines": [ "node >=0.6.0" ], "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" } }, "node_modules/JSV": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=", "dev": true, "engines": { "node": "*" } }, "node_modules/jszip": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "set-immediate-shim": "~1.0.1" } }, "node_modules/jwa": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", "dev": true, "dependencies": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "node_modules/jws": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", "dev": true, "dependencies": { "jwa": "^2.0.0", "safe-buffer": "^5.0.1" } }, "node_modules/karma": { "version": "6.3.16", "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.16.tgz", "integrity": "sha512-nEU50jLvDe5yvXqkEJRf8IuvddUkOY2x5Xc4WXHz6dxINgGDrgD2uqQWeVrJs4hbfNaotn+HQ1LZJ4yOXrL7xQ==", "dev": true, "dependencies": { "body-parser": "^1.19.0", "braces": "^3.0.2", "chokidar": "^3.5.1", "colors": "1.4.0", "connect": "^3.7.0", "di": "^0.0.1", "dom-serialize": "^2.2.1", "glob": "^7.1.7", "graceful-fs": "^4.2.6", "http-proxy": "^1.18.1", "isbinaryfile": "^4.0.8", "lodash": "^4.17.21", "log4js": "^6.4.1", "mime": "^2.5.2", "minimatch": "^3.0.4", "mkdirp": "^0.5.5", "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", "socket.io": "^4.2.0", "source-map": "^0.6.1", "tmp": "^0.2.1", "ua-parser-js": "^0.7.30", "yargs": "^16.1.1" }, "bin": { "karma": "bin/karma" }, "engines": { "node": ">= 10" } }, "node_modules/karma-chrome-launcher": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", "dev": true, "dependencies": { "which": "^1.2.1" } }, "node_modules/karma-cli": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-2.0.0.tgz", "integrity": "sha512-1Kb28UILg1ZsfqQmeELbPzuEb5C6GZJfVIk0qOr8LNYQuYWmAaqP16WpbpKEjhejDrDYyYOwwJXSZO6u7q5Pvw==", "dev": true, "dependencies": { "resolve": "^1.3.3" }, "bin": { "karma": "bin/karma" }, "engines": { "node": ">= 6" } }, "node_modules/karma-coverage-istanbul-reporter": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^3.0.6", "istanbul-reports": "^3.0.2", "minimatch": "^3.0.4" }, "funding": { "url": "https://github.com/sponsors/mattlewis92" } }, "node_modules/karma-jasmine": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", "dev": true, "dependencies": { "jasmine-core": "^3.6.0" }, "engines": { "node": ">= 10" }, "peerDependencies": { "karma": "*" } }, "node_modules/karma-jasmine-html-reporter": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", "dev": true, "peerDependencies": { "jasmine-core": ">=3.5", "karma": ">=0.9", "karma-jasmine": ">=1.1" } }, "node_modules/karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, "dependencies": { "source-map-support": "^0.5.5" } }, "node_modules/karma/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/karma/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "node_modules/karma/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/karma/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/karma/node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, "engines": { "node": ">=0.1.90" } }, "node_modules/karma/node_modules/mime": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", "dev": true, "bin": { "mime": "cli.js" }, "engines": { "node": ">=4.0.0" } }, "node_modules/karma/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/karma/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/karma/node_modules/tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "dependencies": { "rimraf": "^3.0.0" }, "engines": { "node": ">=8.17.0" } }, "node_modules/karma/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/karma/node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/karma/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" }, "engines": { "node": ">=10" } }, "node_modules/karma/node_modules/yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "dev": true, "dependencies": { "json-buffer": "3.0.0" } }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/klona": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/kuler": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", "dev": true }, "node_modules/latest-version": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "dev": true, "dependencies": { "package-json": "^6.3.0" }, "engines": { "node": ">=8" } }, "node_modules/lazystream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", "dev": true, "dependencies": { "readable-stream": "^2.0.5" }, "engines": { "node": ">= 0.6.3" } }, "node_modules/lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "dependencies": { "invert-kv": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/less": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", "dev": true, "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", "tslib": "^2.3.0" }, "bin": { "lessc": "bin/lessc" }, "engines": { "node": ">=6" }, "optionalDependencies": { "errno": "^0.1.1", "graceful-fs": "^4.1.2", "image-size": "~0.5.0", "make-dir": "^2.1.0", "mime": "^1.4.1", "needle": "^2.5.2", "source-map": "~0.6.0" } }, "node_modules/less-loader": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", "dev": true, "dependencies": { "klona": "^2.0.4" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "less": "^3.5.0 || ^4.0.0", "webpack": "^5.0.0" } }, "node_modules/less/node_modules/image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", "dev": true, "optional": true, "bin": { "image-size": "bin/image-size.js" }, "engines": { "node": ">=0.10.0" } }, "node_modules/less/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/license-webpack-plugin": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.0.tgz", "integrity": "sha512-b9iMrROrw2fTOJBZ57h0xJfT5/1Cxg4ucYbtpWoukv4Awb2TFPfDDFVHNM8w6SYQpVfB13a5tQJxgGamqwrsyw==", "dev": true, "dependencies": { "webpack-sources": "^3.0.0" }, "peerDependenciesMeta": { "webpack": { "optional": true }, "webpack-sources": { "optional": true } } }, "node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dependencies": { "immediate": "~3.0.5" } }, "node_modules/lighthouse": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-7.3.0.tgz", "integrity": "sha512-c3loU7ptP8TAlR+bBhc+5ClALx/YVRSh8m5KPiDZQ7wNYxRnhZjDDz6rLzd5gLDhjVwhjMv1APypZegDOFkKOQ==", "dev": true, "dependencies": { "axe-core": "4.1.3", "chrome-launcher": "^0.13.4", "configstore": "^5.0.1", "csp_evaluator": "^1.0.1", "cssstyle": "1.2.1", "details-element-polyfill": "^2.4.0", "http-link-header": "^0.8.0", "inquirer": "^7.3.3", "intl": "^1.2.5", "intl-messageformat": "^4.4.0", "intl-pluralrules": "^1.0.3", "jpeg-js": "^0.4.1", "js-library-detector": "^6.4.0", "jsonld": "^4.0.1", "jsonlint-mod": "^1.7.6", "lighthouse-logger": "^1.2.0", "lighthouse-stack-packs": "^1.4.0", "lodash.get": "^4.4.2", "lodash.isequal": "^4.5.0", "lodash.set": "^4.3.2", "lookup-closest-locale": "6.0.4", "metaviewport-parser": "0.2.0", "open": "^6.4.0", "parse-cache-control": "1.0.1", "ps-list": "^7.2.0", "raven": "^2.2.1", "rimraf": "^2.6.1", "robots-parser": "^2.0.1", "semver": "^5.3.0", "speedline-core": "^1.4.3", "third-party-web": "^0.12.2", "update-notifier": "^4.1.0", "ws": "3.3.2", "yargs": "^16.1.1", "yargs-parser": "^20.2.4" }, "bin": { "chrome-debug": "lighthouse-core/scripts/manual-chrome-launcher.js", "lighthouse": "lighthouse-cli/index.js" }, "engines": { "node": ">=12.13.0" } }, "node_modules/lighthouse-logger": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz", "integrity": "sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==", "dev": true, "dependencies": { "debug": "^2.6.8", "marky": "^1.2.0" } }, "node_modules/lighthouse-logger/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/lighthouse-logger/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/lighthouse-stack-packs": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.4.0.tgz", "integrity": "sha512-wdv94WUjaqUwtW8DOapng45Yah62c5O5geNVeoSQlnoagfbTO/YbiwNlfzDIF1xNKRkPlsfr/oWHhXsaHXDivg==", "dev": true }, "node_modules/lighthouse/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/lighthouse/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "node_modules/lighthouse/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/lighthouse/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/lighthouse/node_modules/cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true }, "node_modules/lighthouse/node_modules/cssstyle": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.1.tgz", "integrity": "sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A==", "dev": true, "dependencies": { "cssom": "0.3.x" } }, "node_modules/lighthouse/node_modules/is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/lighthouse/node_modules/open": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", "dev": true, "dependencies": { "is-wsl": "^1.1.0" }, "engines": { "node": ">=8" } }, "node_modules/lighthouse/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/lighthouse/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/lighthouse/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/lighthouse/node_modules/ws": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.2.tgz", "integrity": "sha512-t+WGpsNxhMR4v6EClXS8r8km5ZljKJzyGhJf7goJz9k5Ye3+b5Bvno5rjqPuIBn5mnn5GBb7o8IrIWHxX1qOLQ==", "dev": true, "dependencies": { "async-limiter": "~1.0.0", "safe-buffer": "~5.1.0", "ultron": "~1.1.0" } }, "node_modules/lighthouse/node_modules/y18n": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/lighthouse/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" }, "engines": { "node": ">=10" } }, "node_modules/lighthouse/node_modules/yargs-parser": { "version": "20.2.7", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "node_modules/listenercount": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", "dev": true }, "node_modules/load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", "pify": "^2.0.0", "strip-bom": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/load-json-file/node_modules/parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "dependencies": { "error-ex": "^1.2.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/load-json-file/node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", "dev": true, "engines": { "node": ">=6.11.5" } }, "node_modules/loader-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" }, "engines": { "node": ">=8.9.0" } }, "node_modules/locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "node_modules/lodash._isnative": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz", "integrity": "sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw=", "dev": true }, "node_modules/lodash._objecttypes": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz", "integrity": "sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE=", "dev": true }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "dev": true }, "node_modules/lodash._shimkeys": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", "integrity": "sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM=", "dev": true, "dependencies": { "lodash._objecttypes": "~2.4.1" } }, "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, "node_modules/lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", "dev": true }, "node_modules/lodash.difference": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", "dev": true }, "node_modules/lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", "dev": true }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, "node_modules/lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", "dev": true }, "node_modules/lodash.isarguments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", "dev": true }, "node_modules/lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=", "dev": true }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", "dev": true }, "node_modules/lodash.isinteger": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=", "dev": true }, "node_modules/lodash.isnumber": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=", "dev": true }, "node_modules/lodash.isobject": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", "dev": true, "dependencies": { "lodash._objecttypes": "~2.4.1" } }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", "dev": true }, "node_modules/lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", "dev": true }, "node_modules/lodash.keys": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", "dev": true, "dependencies": { "lodash._isnative": "~2.4.1", "lodash._shimkeys": "~2.4.1", "lodash.isobject": "~2.4.1" } }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", "dev": true }, "node_modules/lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, "node_modules/lodash.snakecase": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=", "dev": true }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, "node_modules/lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "dev": true, "dependencies": { "lodash._reinterpolate": "^3.0.0", "lodash.templatesettings": "^4.0.0" } }, "node_modules/lodash.templatesettings": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", "dev": true, "dependencies": { "lodash._reinterpolate": "^3.0.0" } }, "node_modules/lodash.toarray": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", "dev": true }, "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, "node_modules/lodash.union": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", "dev": true }, "node_modules/lodash.values": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz", "integrity": "sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ=", "dev": true, "dependencies": { "lodash.keys": "~2.4.1" } }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/log-symbols/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/log4js": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", "dev": true, "dependencies": { "date-format": "^4.0.3", "debug": "^4.3.3", "flatted": "^3.2.4", "rfdc": "^1.3.0", "streamroller": "^3.0.2" }, "engines": { "node": ">=8.0" } }, "node_modules/log4js/node_modules/debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/log4js/node_modules/flatted": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true }, "node_modules/logform": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", "dev": true, "dependencies": { "colors": "^1.2.1", "fast-safe-stringify": "^2.0.4", "fecha": "^4.2.0", "ms": "^2.1.1", "triple-beam": "^1.3.0" } }, "node_modules/logform/node_modules/colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, "engines": { "node": ">=0.1.90" } }, "node_modules/long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", "dev": true }, "node_modules/longest-streak": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/lookup-closest-locale": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.0.4.tgz", "integrity": "sha512-bWoFbSGe6f1GvMGzj17LrwMX4FhDXDwZyH04ySVCPbtOJADcSRguZNKewoJ3Ful/MOxD/wRHvFPadk/kYZUbuQ==", "dev": true }, "node_modules/lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, "node_modules/lower-case-first": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", "dev": true, "dependencies": { "lower-case": "^1.1.2" } }, "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/lru-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", "dev": true, "dependencies": { "es5-ext": "~0.10.2" } }, "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", "dev": true }, "node_modules/magic-string": { "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", "dev": true, "dependencies": { "sourcemap-codec": "^1.4.4" } }, "node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" }, "engines": { "node": ">=6" } }, "node_modules/make-dir/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "node_modules/make-fetch-happen": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, "dependencies": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^6.0.0", "minipass": "^3.1.3", "minipass-collect": "^1.0.2", "minipass-fetch": "^1.3.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.2", "promise-retry": "^2.0.1", "socks-proxy-agent": "^6.0.0", "ssri": "^8.0.0" }, "engines": { "node": ">= 10" } }, "node_modules/make-fetch-happen/node_modules/socks-proxy-agent": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", "dev": true, "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.1", "socks": "^2.6.1" }, "engines": { "node": ">= 10" } }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "dependencies": { "object-visit": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/markdown-escapes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/markdown-table": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", "dev": true, "dependencies": { "repeat-string": "^1.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/marked": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", "dev": true, "bin": { "marked": "bin/marked" }, "engines": { "node": ">=0.10.0" } }, "node_modules/marked-terminal": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.3.0.tgz", "integrity": "sha512-+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A==", "dev": true, "dependencies": { "ansi-escapes": "^3.1.0", "cardinal": "^2.1.1", "chalk": "^2.4.1", "cli-table": "^0.3.1", "node-emoji": "^1.4.1", "supports-hyperlinks": "^1.0.1" }, "peerDependencies": { "marked": "^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0" } }, "node_modules/marked-terminal/node_modules/ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/marky": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.1.tgz", "integrity": "sha512-md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ==", "dev": true }, "node_modules/md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", "dev": true, "dependencies": { "charenc": "0.0.2", "crypt": "0.0.2", "is-buffer": "~1.1.6" } }, "node_modules/mdast-util-compact": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz", "integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==", "dev": true, "dependencies": { "unist-util-visit": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-compact/node_modules/unist-util-is": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-compact/node_modules/unist-util-visit": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-compact/node_modules/unist-util-visit-parents": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-definitions": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", "dev": true, "dependencies": { "unist-util-visit": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-definitions/node_modules/unist-util-is": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-definitions/node_modules/unist-util-visit": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-definitions/node_modules/unist-util-visit-parents": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-hast": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.2.0.tgz", "integrity": "sha512-JoPBfJ3gBnHZ18icCwHR50orC9kNH81tiR1gs01D8Q5YpV6adHNO9nKNuFBCJQ941/32PT1a63UF/DitmS3amQ==", "dev": true, "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", "mdast-util-definitions": "^4.0.0", "mdurl": "^1.0.0", "unist-builder": "^2.0.0", "unist-util-generated": "^1.0.0", "unist-util-position": "^3.0.0", "unist-util-visit": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-hast/node_modules/unist-util-is": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-hast/node_modules/unist-util-visit": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdast-util-to-hast/node_modules/unist-util-visit-parents": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", "dev": true }, "node_modules/mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", "dev": true }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "dependencies": { "mimic-fn": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/mem/node_modules/mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/memfs": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", "dev": true, "dependencies": { "fs-monkey": "1.0.3" }, "engines": { "node": ">= 4.0.0" } }, "node_modules/memoizee": { "version": "0.4.15", "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", "dev": true, "dependencies": { "d": "^1.0.1", "es5-ext": "^0.10.53", "es6-weak-map": "^2.0.3", "event-emitter": "^0.3.5", "is-promise": "^2.2.2", "lru-queue": "^0.1.0", "next-tick": "^1.1.0", "timers-ext": "^0.1.7" } }, "node_modules/memoizee/node_modules/next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "dev": true }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/metaviewport-parser": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.2.0.tgz", "integrity": "sha1-U1w84cz2IjpQJf3cahw2UF9+fbE=", "dev": true }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { "braces": "^3.0.1", "picomatch": "^2.2.3" }, "engines": { "node": ">=8.6" } }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "bin": { "mime": "cli.js" }, "engines": { "node": ">=4" } }, "node_modules/mime-db": { "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.34", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "dependencies": { "mime-db": "1.51.0" }, "engines": { "node": ">= 0.6" } }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/mini-css-extract-plugin": { "version": "2.4.5", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.5.tgz", "integrity": "sha512-oEIhRucyn1JbT/1tU2BhnwO6ft1jjH1iCX9Gc59WFMg0n5773rQU0oyQ0zzeYFFuBfONaRbQJyGoPtuNseMxjA==", "dev": true, "dependencies": { "schema-utils": "^4.0.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.0.0" } }, "node_modules/mini-css-extract-plugin/node_modules/ajv": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "node_modules/minipass": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/minipass-collect": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, "dependencies": { "minipass": "^3.0.0" }, "engines": { "node": ">= 8" } }, "node_modules/minipass-fetch": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, "dependencies": { "minipass": "^3.1.0", "minipass-sized": "^1.0.3", "minizlib": "^2.0.0" }, "engines": { "node": ">=8" }, "optionalDependencies": { "encoding": "^0.1.12" } }, "node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "dependencies": { "minipass": "^3.0.0" }, "engines": { "node": ">= 8" } }, "node_modules/minipass-json-stream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "dev": true, "dependencies": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" } }, "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "dependencies": { "minipass": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/minipass-sized": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "dependencies": { "minipass": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" }, "engines": { "node": ">= 8" } }, "node_modules/mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/mixin-deep/node_modules/is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "dependencies": { "is-plain-object": "^2.0.4" }, "engines": { "node": ">=0.10.0" } }, "node_modules/mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "dependencies": { "minimist": "^1.2.5" }, "bin": { "mkdirp": "bin/cmd.js" } }, "node_modules/morgan": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", "dev": true, "dependencies": { "basic-auth": "~2.0.1", "debug": "2.6.9", "depd": "~2.0.0", "on-finished": "~2.3.0", "on-headers": "~1.0.2" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/morgan/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/morgan/node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/morgan/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/multicast-dns": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, "dependencies": { "dns-packet": "^1.3.1", "thunky": "^1.0.2" }, "bin": { "multicast-dns": "cli.js" } }, "node_modules/multicast-dns-service-types": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, "node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "node_modules/nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", "dev": true, "optional": true }, "node_modules/nanoid": { "version": "3.1.30", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", "dev": true, "bin": { "nanoid": "bin/nanoid.cjs" }, "engines": { "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "fragment-cache": "^0.2.1", "is-windows": "^1.0.2", "kind-of": "^6.0.2", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/nash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/nash/-/nash-3.0.0.tgz", "integrity": "sha512-M5SahEycXUmko3zOvsBkF6p94CWLhnyy9hfpQ9Qzp+rQkQ8D1OaTlfTl1OBWktq9Fak3oDXKU+ev7tiMaMu+1w==", "dev": true, "dependencies": { "async": "^1.3.0", "flat-arguments": "^1.0.0", "lodash": "^4.17.5", "minimist": "^1.1.0" } }, "node_modules/nash/node_modules/async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "node_modules/needle": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", "dev": true, "optional": true, "dependencies": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" }, "bin": { "needle": "bin/needle" }, "engines": { "node": ">= 4.4.x" } }, "node_modules/needle/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "optional": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, "node_modules/netmask": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=", "dev": true, "engines": { "node": ">= 0.4.0" } }, "node_modules/next-tick": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, "node_modules/nice-napi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "!win32" ], "dependencies": { "node-addon-api": "^3.0.0", "node-gyp-build": "^4.2.2" } }, "node_modules/nice-napi/node_modules/node-addon-api": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true, "optional": true }, "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "node_modules/no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "dependencies": { "lower-case": "^1.1.1" } }, "node_modules/node-addon-api": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", "dev": true, "optional": true }, "node_modules/node-emoji": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", "dev": true, "dependencies": { "lodash.toarray": "^4.4.0" } }, "node_modules/node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", "dev": true, "engines": { "node": "4.x || >=6.0.0" } }, "node_modules/node-forge": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", "dev": true, "engines": { "node": ">= 6.0.0" } }, "node_modules/node-gyp": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", "dev": true, "optional": true, "dependencies": { "env-paths": "^2.2.0", "glob": "^7.1.4", "graceful-fs": "^4.2.3", "nopt": "^5.0.0", "npmlog": "^4.1.2", "request": "^2.88.2", "rimraf": "^3.0.2", "semver": "^7.3.2", "tar": "^6.0.2", "which": "^2.0.2" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { "node": ">= 10.12.0" } }, "node_modules/node-gyp-build": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", "dev": true, "optional": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", "node-gyp-build-test": "build-test.js" } }, "node_modules/node-gyp/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "optional": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/node-gyp/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "optional": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/node-gyp/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "optional": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/node-releases": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, "node_modules/nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, "dependencies": { "abbrev": "1" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { "node": ">=6" } }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } }, "node_modules/normalize-package-data/node_modules/hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "dev": true }, "node_modules/normalize-package-data/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/npm-bundled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", "dev": true, "dependencies": { "npm-normalize-package-bin": "^1.0.1" } }, "node_modules/npm-install-checks": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", "dev": true, "dependencies": { "semver": "^7.1.1" }, "engines": { "node": ">=10" } }, "node_modules/npm-install-checks/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/npm-normalize-package-bin": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true }, "node_modules/npm-package-arg": { "version": "8.1.5", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "dev": true, "dependencies": { "hosted-git-info": "^4.0.1", "semver": "^7.3.4", "validate-npm-package-name": "^3.0.0" }, "engines": { "node": ">=10" } }, "node_modules/npm-package-arg/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/npm-packlist": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", "dev": true, "dependencies": { "glob": "^7.1.6", "ignore-walk": "^4.0.1", "npm-bundled": "^1.1.1", "npm-normalize-package-bin": "^1.0.1" }, "bin": { "npm-packlist": "bin/index.js" }, "engines": { "node": ">=10" } }, "node_modules/npm-pick-manifest": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", "dev": true, "dependencies": { "npm-install-checks": "^4.0.0", "npm-normalize-package-bin": "^1.0.1", "npm-package-arg": "^8.1.2", "semver": "^7.3.4" } }, "node_modules/npm-pick-manifest/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/npm-registry-fetch": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "dev": true, "dependencies": { "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", "minipass-fetch": "^1.3.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.0.0", "npm-package-arg": "^8.0.0" }, "engines": { "node": ">=10" } }, "node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "dependencies": { "path-key": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, "dependencies": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", "gauge": "~2.7.3", "set-blocking": "~2.0.0" } }, "node_modules/nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "dev": true, "dependencies": { "boolbase": "~1.0.0" } }, "node_modules/num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/nunjucks": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz", "integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==", "dev": true, "dependencies": { "a-sync-waterfall": "^1.0.0", "asap": "^2.0.3", "commander": "^5.1.0" }, "bin": { "nunjucks-precompile": "bin/precompile" }, "engines": { "node": ">= 6.9.0" }, "peerDependencies": { "chokidar": "^3.3.0" }, "peerDependenciesMeta": { "chokidar": { "optional": true } } }, "node_modules/nunjucks/node_modules/commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, "node_modules/oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "engines": { "node": "*" } }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" }, "engines": { "node": ">=0.10.0" } }, "node_modules/object-copy/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/object-copy/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-is": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "dependencies": { "isobject": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", "has-symbols": "^1.0.1", "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.fromentries": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.18.0-next.2", "has": "^1.0.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.getownpropertydescriptors": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.18.0-next.2" }, "engines": { "node": ">= 0.8" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "dependencies": { "isobject": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/object.values": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.18.0-next.2", "has": "^1.0.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/objectdiff": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/objectdiff/-/objectdiff-1.1.0.tgz", "integrity": "sha1-jXoVvmy4Zw34pJDMa+EqTwXqgvQ=", "dev": true, "engines": { "node": ">=0.2.0" } }, "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, "node_modules/omit-deep": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/omit-deep/-/omit-deep-0.3.0.tgz", "integrity": "sha1-IcivNJm8rdKWUaIyy8rLxSRF6+w=", "dev": true, "dependencies": { "is-plain-object": "^2.0.1", "unset-value": "^0.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/omit-deep/node_modules/has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", "isobject": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/omit-deep/node_modules/has-value/node_modules/isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "dependencies": { "isarray": "1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/omit-deep/node_modules/has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/omit-deep/node_modules/unset-value": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-0.1.2.tgz", "integrity": "sha1-UGgQuGfyfCpabpsEgzYx9t5Y0xA=", "dev": true, "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true, "dependencies": { "ee-first": "1.1.1" }, "engines": { "node": ">= 0.8" } }, "node_modules/on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dependencies": { "wrappy": "1" } }, "node_modules/one-time": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", "dev": true, "dependencies": { "fn.name": "1.x.x" } }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/open": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "dev": true, "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/openapi3-ts": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-1.4.0.tgz", "integrity": "sha512-8DmE2oKayvSkIR3XSZ4+pRliBsx19bSNeIzkTPswY8r4wvjX86bMxsORdqwAwMxE8PefOcSAT2auvi/0TZe9yA==", "dev": true }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, "bin": { "opener": "bin/opener-bin.js" } }, "node_modules/optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "dependencies": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", "word-wrap": "~1.2.3" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/ora": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "is-unicode-supported": "^0.1.0", "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ora/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/ora/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/ora/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/ora/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/ora/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/ora/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "dependencies": { "execa": "^0.7.0", "lcid": "^1.0.0", "mem": "^1.1.0" }, "engines": { "node": ">=4" } }, "node_modules/os-locale/node_modules/cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "dependencies": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, "node_modules/os-locale/node_modules/execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "dependencies": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/os-locale/node_modules/get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/os-locale/node_modules/lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "dependencies": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" } }, "node_modules/os-locale/node_modules/yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "engines": { "node": ">=0.10.0" } }, "node_modules/p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/p-defer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "dependencies": { "p-try": "^2.0.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "dependencies": { "p-limit": "^2.0.0" }, "engines": { "node": ">=6" } }, "node_modules/p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "dependencies": { "aggregate-error": "^3.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-retry": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", "dev": true, "dependencies": { "@types/retry": "^0.12.0", "retry": "^0.13.1" }, "engines": { "node": ">=8" } }, "node_modules/p-retry/node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/pac-proxy-agent": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz", "integrity": "sha512-ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q==", "dev": true, "dependencies": { "@tootallnate/once": "1", "agent-base": "6", "debug": "4", "get-uri": "3", "http-proxy-agent": "^4.0.1", "https-proxy-agent": "5", "pac-resolver": "^4.1.0", "raw-body": "^2.2.0", "socks-proxy-agent": "5" }, "engines": { "node": ">= 6" } }, "node_modules/pac-resolver": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.1.0.tgz", "integrity": "sha512-d6lf2IrZJJ7ooVHr7BfwSjRO1yKSJMaiiWYSHcrxSIUtZrCa4KKGwcztdkZ/E9LFleJfjoi1yl+XLR7AX24nbQ==", "dev": true, "dependencies": { "degenerator": "^2.2.0", "ip": "^1.1.5", "netmask": "^1.0.6" }, "engines": { "node": ">= 6" } }, "node_modules/package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "dev": true, "dependencies": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", "registry-url": "^5.0.0", "semver": "^6.2.0" }, "engines": { "node": ">=8" } }, "node_modules/pacote": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.2.tgz", "integrity": "sha512-Ar3mhjcxhMzk+OVZ8pbnXdb0l8+pimvlsqBGRNkble2NVgyqOGE3yrCGi/lAYq7E7NRDMz89R1Wx5HIMCGgeYg==", "dev": true, "dependencies": { "@npmcli/git": "^2.1.0", "@npmcli/installed-package-contents": "^1.0.6", "@npmcli/promise-spawn": "^1.2.0", "@npmcli/run-script": "^2.0.0", "cacache": "^15.0.5", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", "infer-owner": "^1.0.4", "minipass": "^3.1.3", "mkdirp": "^1.0.3", "npm-package-arg": "^8.0.1", "npm-packlist": "^3.0.0", "npm-pick-manifest": "^6.0.0", "npm-registry-fetch": "^11.0.0", "promise-retry": "^2.0.1", "read-package-json-fast": "^2.0.1", "rimraf": "^3.0.2", "ssri": "^8.0.1", "tar": "^6.1.0" }, "bin": { "pacote": "lib/bin.js" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16" } }, "node_modules/pacote/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" } }, "node_modules/pacote/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, "node_modules/param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "dev": true, "dependencies": { "no-case": "^2.2.0" } }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "dependencies": { "callsites": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/parent-module/node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=", "dev": true }, "node_modules/parse-entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "dev": true, "dependencies": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", "character-reference-invalid": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.0", "is-hexadecimal": "^1.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" }, "engines": { "node": ">=4" } }, "node_modules/parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/parse5": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", "devOptional": true }, "node_modules/parse5-html-rewriting-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", "dev": true, "dependencies": { "parse5": "^6.0.1", "parse5-sax-parser": "^6.0.1" } }, "node_modules/parse5-html-rewriting-stream/node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "node_modules/parse5-htmlparser2-tree-adapter": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", "dev": true, "dependencies": { "parse5": "^6.0.1" } }, "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "node_modules/parse5-sax-parser": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", "dev": true, "dependencies": { "parse5": "^6.0.1" } }, "node_modules/parse5-sax-parser/node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/pascal-case": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", "dev": true, "dependencies": { "camel-case": "^3.0.0", "upper-case-first": "^1.1.0" } }, "node_modules/pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/path-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", "dev": true, "dependencies": { "no-case": "^2.2.0" } }, "node_modules/path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", "dev": true }, "node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "engines": { "node": ">=0.10.0" } }, "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, "node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "dependencies": { "pinkie": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/piscina": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.1.0.tgz", "integrity": "sha512-KTW4sjsCD34MHrUbx9eAAbuUSpVj407hQSgk/6Epkg0pbRBmv4a3UX7Sr8wxm9xYqQLnsN4mFOjqGDzHAdgKQg==", "dev": true, "dependencies": { "eventemitter-asyncresource": "^1.0.0", "hdr-histogram-js": "^2.0.1", "hdr-histogram-percentiles-obj": "^3.0.0" }, "optionalDependencies": { "nice-napi": "^1.0.2" } }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { "find-up": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { "p-locate": "^4.1.0" }, "engines": { "node": ">=8" } }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { "p-limit": "^2.2.0" }, "engines": { "node": ">=8" } }, "node_modules/pkg-dir/node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/plist": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==", "dev": true, "dependencies": { "base64-js": "^1.5.1", "xmlbuilder": "^9.0.7" }, "engines": { "node": ">=6" } }, "node_modules/pn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", "dev": true }, "node_modules/png-async": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/png-async/-/png-async-0.9.4.tgz", "integrity": "sha512-B//AXX9TkneKfgtOpT1mdUnnhk2BImGD+a98vImsMU8uo1dBeHyW/kM2erWZ/CsYteTPU/xKG+t6T62heHkC3A==" }, "node_modules/portfinder": { "version": "1.0.28", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", "dev": true, "dependencies": { "async": "^2.6.2", "debug": "^3.1.1", "mkdirp": "^0.5.5" }, "engines": { "node": ">= 0.12.0" } }, "node_modules/portfinder/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss": { "version": "8.4.4", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", "dev": true, "dependencies": { "nanoid": "^3.1.30", "picocolors": "^1.0.0", "source-map-js": "^1.0.1" }, "engines": { "node": "^10 || ^12 || >=14" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-attribute-case-insensitive": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", "dev": true, "dependencies": { "postcss": "^7.0.2", "postcss-selector-parser": "^6.0.2" } }, "node_modules/postcss-attribute-case-insensitive/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-attribute-case-insensitive/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-attribute-case-insensitive/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-color-functional-notation": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", "dev": true, "dependencies": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-color-functional-notation/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-color-functional-notation/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-color-functional-notation/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-color-gray": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", "dev": true, "dependencies": { "@csstools/convert-colors": "^1.4.0", "postcss": "^7.0.5", "postcss-values-parser": "^2.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-color-gray/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-color-gray/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-color-gray/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-color-hex-alpha": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", "dev": true, "dependencies": { "postcss": "^7.0.14", "postcss-values-parser": "^2.0.1" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-color-hex-alpha/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-color-hex-alpha/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-color-hex-alpha/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-color-mod-function": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", "dev": true, "dependencies": { "@csstools/convert-colors": "^1.4.0", "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-color-mod-function/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-color-mod-function/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-color-mod-function/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-color-rebeccapurple": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", "dev": true, "dependencies": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-color-rebeccapurple/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-color-rebeccapurple/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-color-rebeccapurple/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-custom-media": { "version": "7.0.8", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", "dev": true, "dependencies": { "postcss": "^7.0.14" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-custom-media/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-custom-media/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-custom-media/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-custom-properties": { "version": "8.0.11", "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", "dev": true, "dependencies": { "postcss": "^7.0.17", "postcss-values-parser": "^2.0.1" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-custom-properties/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-custom-properties/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-custom-properties/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-custom-selectors": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", "dev": true, "dependencies": { "postcss": "^7.0.2", "postcss-selector-parser": "^5.0.0-rc.3" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-custom-selectors/node_modules/cssesc": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true, "bin": { "cssesc": "bin/cssesc" }, "engines": { "node": ">=4" } }, "node_modules/postcss-custom-selectors/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "dependencies": { "cssesc": "^2.0.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" }, "engines": { "node": ">=4" } }, "node_modules/postcss-custom-selectors/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-custom-selectors/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-dir-pseudo-class": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", "dev": true, "dependencies": { "postcss": "^7.0.2", "postcss-selector-parser": "^5.0.0-rc.3" }, "engines": { "node": ">=4.0.0" } }, "node_modules/postcss-dir-pseudo-class/node_modules/cssesc": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true, "bin": { "cssesc": "bin/cssesc" }, "engines": { "node": ">=4" } }, "node_modules/postcss-dir-pseudo-class/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "dependencies": { "cssesc": "^2.0.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" }, "engines": { "node": ">=4" } }, "node_modules/postcss-dir-pseudo-class/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-dir-pseudo-class/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-double-position-gradients": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", "dev": true, "dependencies": { "postcss": "^7.0.5", "postcss-values-parser": "^2.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-double-position-gradients/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-double-position-gradients/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-double-position-gradients/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-env-function": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", "dev": true, "dependencies": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-env-function/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-env-function/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-env-function/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-focus-visible": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", "dev": true, "dependencies": { "postcss": "^7.0.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-focus-visible/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-focus-visible/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-focus-visible/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-focus-within": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", "dev": true, "dependencies": { "postcss": "^7.0.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-focus-within/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-focus-within/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-focus-within/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-font-variant": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", "dev": true, "dependencies": { "postcss": "^7.0.2" } }, "node_modules/postcss-font-variant/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-font-variant/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-font-variant/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-gap-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", "dev": true, "dependencies": { "postcss": "^7.0.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-gap-properties/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-gap-properties/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-gap-properties/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-image-set-function": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", "dev": true, "dependencies": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-image-set-function/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-image-set-function/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-image-set-function/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-import": { "version": "14.0.2", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", "dev": true, "dependencies": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" }, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "postcss": "^8.0.0" } }, "node_modules/postcss-initial": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz", "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==", "dev": true, "dependencies": { "postcss": "^7.0.2" } }, "node_modules/postcss-initial/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-initial/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-initial/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-lab-function": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", "dev": true, "dependencies": { "@csstools/convert-colors": "^1.4.0", "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-lab-function/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-lab-function/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-lab-function/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-loader": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", "dev": true, "dependencies": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", "semver": "^7.3.5" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "postcss": "^7.0.0 || ^8.0.1", "webpack": "^5.0.0" } }, "node_modules/postcss-loader/node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/postcss-logical": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", "dev": true, "dependencies": { "postcss": "^7.0.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-logical/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-logical/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-logical/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-media-minmax": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", "dev": true, "dependencies": { "postcss": "^7.0.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-media-minmax/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-media-minmax/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-media-minmax/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", "dev": true, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-modules-local-by-default": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", "dev": true, "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.1.0" }, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-modules-scope": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.4" }, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, "dependencies": { "icss-utils": "^5.0.0" }, "engines": { "node": "^10 || ^12 || >= 14" }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-nesting": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", "dev": true, "dependencies": { "postcss": "^7.0.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-nesting/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-nesting/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-nesting/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-overflow-shorthand": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", "dev": true, "dependencies": { "postcss": "^7.0.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-overflow-shorthand/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-overflow-shorthand/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-overflow-shorthand/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-page-break": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", "dev": true, "dependencies": { "postcss": "^7.0.2" } }, "node_modules/postcss-page-break/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-page-break/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-page-break/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-place": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", "dev": true, "dependencies": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-place/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-place/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-place/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-preset-env": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", "dev": true, "dependencies": { "autoprefixer": "^9.6.1", "browserslist": "^4.6.4", "caniuse-lite": "^1.0.30000981", "css-blank-pseudo": "^0.1.4", "css-has-pseudo": "^0.10.0", "css-prefers-color-scheme": "^3.1.1", "cssdb": "^4.4.0", "postcss": "^7.0.17", "postcss-attribute-case-insensitive": "^4.0.1", "postcss-color-functional-notation": "^2.0.1", "postcss-color-gray": "^5.0.0", "postcss-color-hex-alpha": "^5.0.3", "postcss-color-mod-function": "^3.0.3", "postcss-color-rebeccapurple": "^4.0.1", "postcss-custom-media": "^7.0.8", "postcss-custom-properties": "^8.0.11", "postcss-custom-selectors": "^5.1.2", "postcss-dir-pseudo-class": "^5.0.0", "postcss-double-position-gradients": "^1.0.0", "postcss-env-function": "^2.0.2", "postcss-focus-visible": "^4.0.0", "postcss-focus-within": "^3.0.0", "postcss-font-variant": "^4.0.0", "postcss-gap-properties": "^2.0.0", "postcss-image-set-function": "^3.0.1", "postcss-initial": "^3.0.0", "postcss-lab-function": "^2.0.1", "postcss-logical": "^3.0.0", "postcss-media-minmax": "^4.0.0", "postcss-nesting": "^7.0.0", "postcss-overflow-shorthand": "^2.0.0", "postcss-page-break": "^2.0.0", "postcss-place": "^4.0.1", "postcss-pseudo-class-any-link": "^6.0.0", "postcss-replace-overflow-wrap": "^3.0.0", "postcss-selector-matches": "^4.0.0", "postcss-selector-not": "^4.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-preset-env/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-preset-env/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-preset-env/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-pseudo-class-any-link": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", "dev": true, "dependencies": { "postcss": "^7.0.2", "postcss-selector-parser": "^5.0.0-rc.3" }, "engines": { "node": ">=6.0.0" } }, "node_modules/postcss-pseudo-class-any-link/node_modules/cssesc": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true, "bin": { "cssesc": "bin/cssesc" }, "engines": { "node": ">=4" } }, "node_modules/postcss-pseudo-class-any-link/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "dependencies": { "cssesc": "^2.0.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" }, "engines": { "node": ">=4" } }, "node_modules/postcss-pseudo-class-any-link/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-pseudo-class-any-link/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-replace-overflow-wrap": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", "dev": true, "dependencies": { "postcss": "^7.0.2" } }, "node_modules/postcss-replace-overflow-wrap/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-replace-overflow-wrap/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-replace-overflow-wrap/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-selector-matches": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "postcss": "^7.0.2" } }, "node_modules/postcss-selector-matches/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-selector-matches/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-selector-matches/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-selector-not": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "postcss": "^7.0.2" } }, "node_modules/postcss-selector-not/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-selector-not/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/postcss-selector-not/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/postcss-selector-parser": { "version": "6.0.6", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", "dev": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" }, "engines": { "node": ">=4" } }, "node_modules/postcss-value-parser": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", "dev": true }, "node_modules/postcss-values-parser": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", "dev": true, "dependencies": { "flatten": "^1.0.2", "indexes-of": "^1.0.1", "uniq": "^1.0.1" }, "engines": { "node": ">=6.14.4" } }, "node_modules/postcss/node_modules/source-map-js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/printj": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", "dev": true, "bin": { "printj": "bin/printj.njs" }, "engines": { "node": ">=0.8" } }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/promise-breaker": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/promise-breaker/-/promise-breaker-5.0.0.tgz", "integrity": "sha512-mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==", "dev": true }, "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" }, "engines": { "node": ">=10" } }, "node_modules/property-information": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", "dev": true, "dependencies": { "xtend": "^4.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/protobufjs": { "version": "6.10.2", "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.2.tgz", "integrity": "sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==", "dev": true, "hasInstallScript": true, "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", "@protobufjs/codegen": "^2.0.4", "@protobufjs/eventemitter": "^1.1.0", "@protobufjs/fetch": "^1.1.0", "@protobufjs/float": "^1.0.2", "@protobufjs/inquire": "^1.1.0", "@protobufjs/path": "^1.1.2", "@protobufjs/pool": "^1.1.0", "@protobufjs/utf8": "^1.1.0", "@types/long": "^4.0.1", "@types/node": "^13.7.0", "long": "^4.0.0" }, "bin": { "pbjs": "bin/pbjs", "pbts": "bin/pbts" } }, "node_modules/protobufjs/node_modules/@types/node": { "version": "13.13.48", "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.48.tgz", "integrity": "sha512-z8wvSsgWQzkr4sVuMEEOvwMdOQjiRY2Y/ZW4fDfjfe3+TfQrZqFKOthBgk2RnVEmtOKrkwdZ7uTvsxTBLjKGDQ==", "dev": true }, "node_modules/protractor": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", "dev": true, "dependencies": { "@types/q": "^0.0.32", "@types/selenium-webdriver": "^3.0.0", "blocking-proxy": "^1.0.0", "browserstack": "^1.5.1", "chalk": "^1.1.3", "glob": "^7.0.3", "jasmine": "2.8.0", "jasminewd2": "^2.1.0", "q": "1.4.1", "saucelabs": "^1.5.0", "selenium-webdriver": "3.6.0", "source-map-support": "~0.4.0", "webdriver-js-extender": "2.1.0", "webdriver-manager": "^12.1.7", "yargs": "^15.3.1" }, "bin": { "protractor": "bin/protractor", "webdriver-manager": "bin/webdriver-manager" }, "engines": { "node": ">=10.13.x" } }, "node_modules/protractor/node_modules/@types/q": { "version": "0.0.32", "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", "dev": true }, "node_modules/protractor/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "dependencies": { "array-uniq": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", "has-ansi": "^2.0.0", "strip-ansi": "^3.0.0", "supports-color": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" } }, "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { "ansi-regex": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/protractor/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/protractor/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/protractor/node_modules/del": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "dependencies": { "globby": "^5.0.0", "is-path-cwd": "^1.0.0", "is-path-in-cwd": "^1.0.0", "object-assign": "^4.0.1", "pify": "^2.0.0", "pinkie-promise": "^2.0.0", "rimraf": "^2.2.8" }, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/protractor/node_modules/globby": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "dependencies": { "array-union": "^1.0.1", "arrify": "^1.0.0", "glob": "^7.0.3", "object-assign": "^4.0.1", "pify": "^2.0.0", "pinkie-promise": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, "node_modules/protractor/node_modules/is-path-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/is-path-in-cwd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "dependencies": { "is-path-inside": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/is-path-inside": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "dependencies": { "path-is-inside": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/jasmine": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", "dev": true, "dependencies": { "exit": "^0.1.2", "glob": "^7.0.6", "jasmine-core": "~2.8.0" }, "bin": { "jasmine": "bin/jasmine.js" } }, "node_modules/protractor/node_modules/jasmine-core": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", "dev": true }, "node_modules/protractor/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { "p-locate": "^4.1.0" }, "engines": { "node": ">=8" } }, "node_modules/protractor/node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { "p-limit": "^2.2.0" }, "engines": { "node": ">=8" } }, "node_modules/protractor/node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/protractor/node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/q": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", "dev": true, "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" } }, "node_modules/protractor/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/protractor/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "dependencies": { "source-map": "^0.5.6" } }, "node_modules/protractor/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/protractor/node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/protractor/node_modules/webdriver-manager": { "version": "12.1.8", "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", "dev": true, "dependencies": { "adm-zip": "^0.4.9", "chalk": "^1.1.1", "del": "^2.2.0", "glob": "^7.0.3", "ini": "^1.3.4", "minimist": "^1.2.0", "q": "^1.4.1", "request": "^2.87.0", "rimraf": "^2.5.2", "semver": "^5.3.0", "xml2js": "^0.4.17" }, "bin": { "webdriver-manager": "bin/webdriver-manager" }, "engines": { "node": ">=6.9.x" } }, "node_modules/protractor/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=8" } }, "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { "ansi-regex": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/protractor/node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" }, "engines": { "node": ">=8" } }, "node_modules/protractor/node_modules/yargs-parser": { "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" }, "engines": { "node": ">=6" } }, "node_modules/proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", "dev": true, "dependencies": { "forwarded": "~0.1.2", "ipaddr.js": "1.9.1" }, "engines": { "node": ">= 0.10" } }, "node_modules/proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-4.0.1.tgz", "integrity": "sha512-ODnQnW2jc/FUVwHHuaZEfN5otg/fMbvMxz9nMSUQfJ9JU7q2SZvSULSsjLloVgJOiv9yhc8GlNMKc4GkFmcVEA==", "dev": true, "dependencies": { "agent-base": "^6.0.0", "debug": "4", "http-proxy-agent": "^4.0.0", "https-proxy-agent": "^5.0.0", "lru-cache": "^5.1.1", "pac-proxy-agent": "^4.1.0", "proxy-from-env": "^1.0.0", "socks-proxy-agent": "^5.0.0" }, "engines": { "node": ">=6" } }, "node_modules/proxy-agent/node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { "yallist": "^3.0.2" } }, "node_modules/proxy-agent/node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true, "optional": true }, "node_modules/ps-list": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-7.2.0.tgz", "integrity": "sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "node_modules/psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "engines": { "node": ">=6" } }, "node_modules/pupa": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", "dev": true, "dependencies": { "escape-goat": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true, "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" } }, "node_modules/qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "dev": true, "engines": { "node": ">=0.9" } }, "node_modules/qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "engines": { "node": ">=0.6" } }, "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", "dev": true, "engines": { "node": ">=0.4.x" } }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/raven": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/raven/-/raven-2.6.4.tgz", "integrity": "sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw==", "dev": true, "dependencies": { "cookie": "0.3.1", "md5": "^2.2.1", "stack-trace": "0.0.10", "timed-out": "4.0.1", "uuid": "3.3.2" }, "bin": { "raven": "bin/raven" }, "engines": { "node": ">= 4.0.0" } }, "node_modules/raven/node_modules/cookie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/raven/node_modules/uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true, "bin": { "uuid": "bin/uuid" } }, "node_modules/raw-body": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "dev": true, "dependencies": { "bytes": "3.1.0", "http-errors": "1.7.2", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, "engines": { "node": ">= 0.8" } }, "node_modules/raw-body/node_modules/bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "bin": { "rc": "cli.js" } }, "node_modules/rc/node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, "node_modules/rdf-canonize": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", "dev": true, "dependencies": { "semver": "^6.3.0", "setimmediate": "^1.0.5" }, "engines": { "node": ">=6" } }, "node_modules/re2": { "version": "1.15.9", "resolved": "https://registry.npmjs.org/re2/-/re2-1.15.9.tgz", "integrity": "sha512-AXWEhpMTBdC+3oqbjdU07dk0pBCvxh5vbOMLERL6Y8FYBSGn4vXlLe8cYszn64Yy7H8keVMrgPzoSvOd4mePpg==", "dev": true, "hasInstallScript": true, "optional": true, "dependencies": { "install-artifact-from-github": "^1.2.0", "nan": "^2.14.2", "node-gyp": "^7.1.2" } }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", "dev": true, "dependencies": { "pify": "^2.3.0" } }, "node_modules/read-cache/node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/read-package-json-fast": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", "dev": true, "dependencies": { "json-parse-even-better-errors": "^2.3.0", "npm-normalize-package-bin": "^1.0.1" }, "engines": { "node": ">=10" } }, "node_modules/read-pkg": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", "dev": true, "dependencies": { "normalize-package-data": "^2.3.2", "parse-json": "^4.0.0", "pify": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/read-pkg-up": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "dependencies": { "find-up": "^2.0.0", "read-pkg": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "dependencies": { "locate-path": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "dependencies": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "dependencies": { "p-try": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/p-locate": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "dependencies": { "p-limit": "^1.1.0" }, "engines": { "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/path-type": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "dependencies": { "pify": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/read-pkg-up/node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/read-pkg-up/node_modules/read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "dependencies": { "load-json-file": "^2.0.0", "normalize-package-data": "^2.3.2", "path-type": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/read-pkg/node_modules/pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/readdir-cluster": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/readdir-cluster/-/readdir-cluster-1.3.0.tgz", "integrity": "sha512-vrIC5KfqjSXPu9hePdRiOrn6cutYCV35p7aohth9Xc402pkgeih1ewLuEcDTzjrJL2q/BnwW/a1aEum7c0AJOA==", "dev": true, "dependencies": { "editions": "^2.2.0" }, "engines": { "node": ">=0.12" }, "funding": { "url": "https://bevry.me/fund" } }, "node_modules/readdir-glob": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.1.tgz", "integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==", "dev": true, "dependencies": { "minimatch": "^3.0.4" } }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { "picomatch": "^2.2.1" }, "engines": { "node": ">=8.10.0" } }, "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "dependencies": { "resolve": "^1.1.6" }, "engines": { "node": ">= 0.10" } }, "node_modules/redeyed": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", "dev": true, "dependencies": { "esprima": "~4.0.0" } }, "node_modules/reflect-metadata": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", "dev": true }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, "node_modules/regenerate-unicode-properties": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", "dev": true, "dependencies": { "regenerate": "^1.4.2" }, "engines": { "node": ">=4" } }, "node_modules/regenerator-runtime": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "dev": true }, "node_modules/regenerator-transform": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" } }, "node_modules/regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/regex-parser": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", "dev": true }, "node_modules/regexp.prototype.flags": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true, "engines": { "node": ">=6.5.0" } }, "node_modules/regexpu-core": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", "dev": true, "dependencies": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^9.0.0", "regjsgen": "^0.5.2", "regjsparser": "^0.7.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", "dev": true, "dependencies": { "rc": "^1.2.8" }, "engines": { "node": ">=6.0.0" } }, "node_modules/registry-url": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", "dev": true, "dependencies": { "rc": "^1.2.8" }, "engines": { "node": ">=8" } }, "node_modules/regjsgen": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", "dev": true }, "node_modules/regjsparser": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", "dev": true, "dependencies": { "jsesc": "~0.5.0" }, "bin": { "regjsparser": "bin/parser" } }, "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true, "bin": { "jsesc": "bin/jsesc" } }, "node_modules/rehype-parse": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz", "integrity": "sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==", "dev": true, "dependencies": { "hast-util-from-parse5": "^6.0.0", "parse5": "^6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/rehype-parse/node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "node_modules/rehype-slug": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-2.0.3.tgz", "integrity": "sha512-7hgS91klce+p/1CrgMjV/JKyVmEevTM3YMkFtxF29twydKBSYVcy2x44z74SgCnzANj8H8N0g0O8F1OH1/OXJA==", "dev": true, "dependencies": { "github-slugger": "^1.1.1", "hast-util-has-property": "^1.0.0", "hast-util-is-element": "^1.0.0", "hast-util-to-string": "^1.0.0", "unist-util-visit": "^1.1.0" } }, "node_modules/rehype-stringify": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-6.0.1.tgz", "integrity": "sha512-JfEPRDD4DiG7jet4md7sY07v6ACeb2x+9HWQtRPm2iA6/ic31hCv1SNBUtpolJASxQ/D8gicXiviW4TJKEMPKQ==", "dev": true, "dependencies": { "hast-util-to-html": "^6.0.0", "xtend": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/remark/-/remark-12.0.1.tgz", "integrity": "sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw==", "dev": true, "dependencies": { "remark-parse": "^8.0.0", "remark-stringify": "^8.0.0", "unified": "^9.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-html": { "version": "13.0.2", "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-13.0.2.tgz", "integrity": "sha512-LhSRQ+3RKdBqB/RGesFWkNNfkGqprDUCwjq54SylfFeNyZby5kqOG8Dn/vYsRoM8htab6EWxFXCY6XIZvMoRiQ==", "dev": true, "dependencies": { "hast-util-sanitize": "^3.0.0", "hast-util-to-html": "^7.0.0", "mdast-util-to-hast": "^10.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-html/node_modules/hast-util-to-html": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-7.1.3.tgz", "integrity": "sha512-yk2+1p3EJTEE9ZEUkgHsUSVhIpCsL/bvT8E5GzmWc+N1Po5gBw+0F8bo7dpxXR0nu0bQVxVZGX2lBGF21CmeDw==", "dev": true, "dependencies": { "ccount": "^1.0.0", "comma-separated-tokens": "^1.0.0", "hast-util-is-element": "^1.0.0", "hast-util-whitespace": "^1.0.0", "html-void-elements": "^1.0.0", "property-information": "^5.0.0", "space-separated-tokens": "^1.0.0", "stringify-entities": "^3.0.1", "unist-util-is": "^4.0.0", "xtend": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-html/node_modules/stringify-entities": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz", "integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==", "dev": true, "dependencies": { "character-entities-html4": "^1.0.0", "character-entities-legacy": "^1.0.0", "xtend": "^4.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/remark-html/node_modules/unist-util-is": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-parse": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", "dev": true, "dependencies": { "ccount": "^1.0.0", "collapse-white-space": "^1.0.2", "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0", "is-whitespace-character": "^1.0.0", "is-word-character": "^1.0.0", "markdown-escapes": "^1.0.0", "parse-entities": "^2.0.0", "repeat-string": "^1.5.4", "state-toggle": "^1.0.0", "trim": "0.0.1", "trim-trailing-lines": "^1.0.0", "unherit": "^1.0.4", "unist-util-remove-position": "^2.0.0", "vfile-location": "^3.0.0", "xtend": "^4.0.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-stringify": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz", "integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==", "dev": true, "dependencies": { "ccount": "^1.0.0", "is-alphanumeric": "^1.0.0", "is-decimal": "^1.0.0", "is-whitespace-character": "^1.0.0", "longest-streak": "^2.0.1", "markdown-escapes": "^1.0.0", "markdown-table": "^2.0.0", "mdast-util-compact": "^2.0.0", "parse-entities": "^2.0.0", "repeat-string": "^1.5.4", "state-toggle": "^1.0.0", "stringify-entities": "^3.0.0", "unherit": "^1.0.4", "xtend": "^4.0.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/remark-stringify/node_modules/stringify-entities": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz", "integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==", "dev": true, "dependencies": { "character-entities-html4": "^1.0.0", "character-entities-legacy": "^1.0.0", "xtend": "^4.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/rename-keys": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/rename-keys/-/rename-keys-1.2.0.tgz", "integrity": "sha512-U7XpAktpbSgHTRSNRrjKSrjYkZKuhUukfoBlXWXUExCAqhzh1TU3BDRAfJmarcl5voKS+pbKU9MvyLWKZ4UEEg==", "dev": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true, "engines": { "node": ">=0.10" } }, "node_modules/replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" }, "engines": { "node": ">= 6" } }, "node_modules/request-promise-core": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", "dev": true, "dependencies": { "lodash": "^4.17.19" }, "engines": { "node": ">=0.10.0" }, "peerDependencies": { "request": "^2.34" } }, "node_modules/request-promise-native": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", "dev": true, "dependencies": { "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" }, "engines": { "node": ">=0.12.0" }, "peerDependencies": { "request": "^2.34" } }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, "node_modules/resolve": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "dependencies": { "is-core-module": "^2.2.0", "path-parse": "^1.0.6" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true }, "node_modules/resolve-url-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", "dev": true, "dependencies": { "adjust-sourcemap-loader": "^4.0.0", "convert-source-map": "^1.7.0", "loader-utils": "^2.0.0", "postcss": "^7.0.35", "source-map": "0.6.1" }, "engines": { "node": ">=8.9" }, "peerDependencies": { "rework": "1.0.1", "rework-visit": "1.0.0" }, "peerDependenciesMeta": { "rework": { "optional": true }, "rework-visit": { "optional": true } } }, "node_modules/resolve-url-loader/node_modules/postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "dependencies": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "engines": { "node": ">=6.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/postcss/" } }, "node_modules/resolve-url-loader/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/resolve-url-loader/node_modules/supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "dependencies": { "lowercase-keys": "^1.0.0" } }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { "node": ">=8" } }, "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, "engines": { "node": ">=0.12" } }, "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/retry-request": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.1.3.tgz", "integrity": "sha512-QnRZUpuPNgX0+D1xVxul6DbJ9slvo4Rm6iV/dn63e048MvGbUZiKySVt6Tenp04JqmchxjiLltGerOJys7kJYQ==", "dev": true, "dependencies": { "debug": "^4.1.1" }, "engines": { "node": ">=8.10.0" } }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rfdc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "dev": true }, "node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "node_modules/robots-parser": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-2.3.0.tgz", "integrity": "sha512-RvuCITckrHM9k8DxCCU9rqWpuuKRfVX9iHG751dC3/EdERxp9gJATxYYdYOT3L0T+TAT4+27lENisk/VbHm47A==", "dev": true }, "node_modules/router": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/router/-/router-1.3.5.tgz", "integrity": "sha512-kozCJZUhuSJ5VcLhSb3F8fsmGXy+8HaDbKCAerR1G6tq3mnMZFMuSohbFvGv1c5oMFipijDjRZuuN/Sq5nMf3g==", "dev": true, "dependencies": { "array-flatten": "3.0.0", "debug": "2.6.9", "methods": "~1.1.2", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "setprototypeof": "1.2.0", "utils-merge": "1.0.1" }, "engines": { "node": ">= 0.8" } }, "node_modules/router/node_modules/array-flatten": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==", "dev": true }, "node_modules/router/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/router/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/router/node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, "node_modules/rsvp": { "version": "4.8.5", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", "dev": true, "engines": { "node": "6.* || >= 7.*" } }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, "engines": { "node": ">=0.12.0" } }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ], "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/rusha": { "version": "0.8.13", "resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.13.tgz", "integrity": "sha1-mghOe4YLF7/zAVuSxnpqM2GRUTo=", "dev": true }, "node_modules/rxjs": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.1.tgz", "integrity": "sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "dependencies": { "ret": "~0.1.10" } }, "node_modules/safefs": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/safefs/-/safefs-4.2.0.tgz", "integrity": "sha512-1amPBO92jw/hWS+gH/u7z7EL7YxaJ8WecBQl49tMQ6Y6EQfndxNNKwlPqDOcwpUetdmK6nKLoVdjybVScRwq5A==", "dev": true, "dependencies": { "editions": "^2.2.0", "graceful-fs": "^4.2.3" }, "engines": { "node": ">=0.12" }, "funding": { "type": "cooperative", "url": "https://bevry.me/fund" } }, "node_modules/safeps": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/safeps/-/safeps-7.0.1.tgz", "integrity": "sha1-FXPMsJy/AeAckFIr68bIsicL8hk=", "dev": true, "dependencies": { "editions": "^1.3.3", "extract-opts": "^3.3.1", "safefs": "^4.1.0", "taskgroup": "^5.0.0", "typechecker": "^4.3.0" }, "engines": { "node": ">=0.8" } }, "node_modules/safeps/node_modules/editions": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", "dev": true, "engines": { "node": ">=0.8" } }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0" }, "bin": { "sass": "sass.js" }, "engines": { "node": ">=8.9.0" } }, "node_modules/sass-loader": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", "dev": true, "dependencies": { "klona": "^2.0.4", "neo-async": "^2.6.2" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "fibers": ">= 3.1.0", "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", "sass": "^1.3.0", "webpack": "^5.0.0" }, "peerDependenciesMeta": { "fibers": { "optional": true }, "node-sass": { "optional": true }, "sass": { "optional": true } } }, "node_modules/saucelabs": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", "dev": true, "dependencies": { "https-proxy-agent": "^2.2.1" }, "engines": { "node": "*" } }, "node_modules/saucelabs/node_modules/agent-base": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, "dependencies": { "es6-promisify": "^5.0.0" }, "engines": { "node": ">= 4.0.0" } }, "node_modules/saucelabs/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/saucelabs/node_modules/https-proxy-agent": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "dependencies": { "agent-base": "^4.3.0", "debug": "^3.1.0" }, "engines": { "node": ">= 4.5.0" } }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "node_modules/saxes": { "version": "3.1.11", "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", "dev": true, "dependencies": { "xmlchars": "^2.1.1" }, "engines": { "node": ">=8" } }, "node_modules/scandirectory": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scandirectory/-/scandirectory-3.0.1.tgz", "integrity": "sha1-Jd0gFCfDPM5Pj0Cy838tA9B4V7o=", "dev": true, "dependencies": { "editions": "^1.3.1", "ignorefs": "^1.1.1", "readdir-cluster": "^1.1.0" }, "engines": { "node": ">=0.8" } }, "node_modules/scandirectory/node_modules/editions": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", "dev": true, "engines": { "node": ">=0.8" } }, "node_modules/schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", "ajv-keywords": "^3.5.2" }, "engines": { "node": ">= 8.9.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/secure-compare": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", "dev": true }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", "dev": true }, "node_modules/selenium-webdriver": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dependencies": { "jszip": "^3.1.3", "rimraf": "^2.5.4", "tmp": "0.0.30", "xml2js": "^0.4.17" }, "engines": { "node": ">= 6.9.0" } }, "node_modules/selenium-webdriver/node_modules/tmp": { "version": "0.0.30", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", "dependencies": { "os-tmpdir": "~1.0.1" }, "engines": { "node": ">=0.4.0" } }, "node_modules/selfsigned": { "version": "1.10.11", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "dev": true, "dependencies": { "node-forge": "^0.10.0" } }, "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true, "bin": { "semver": "bin/semver.js" } }, "node_modules/semver-diff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "dev": true, "dependencies": { "semver": "^6.3.0" }, "engines": { "node": ">=8" } }, "node_modules/semver-dsl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", "dev": true, "dependencies": { "semver": "^5.3.0" } }, "node_modules/semver-dsl/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "dev": true, "dependencies": { "debug": "2.6.9", "depd": "~1.1.2", "destroy": "~1.0.4", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "~1.7.2", "mime": "1.6.0", "ms": "2.1.1", "on-finished": "~2.3.0", "range-parser": "~1.2.1", "statuses": "~1.5.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/send/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/send/node_modules/ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true }, "node_modules/sentence-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", "dev": true, "dependencies": { "no-case": "^2.2.0", "upper-case-first": "^1.1.2" } }, "node_modules/serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", "http-errors": "~1.6.2", "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/serve-index/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/serve-index/node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", "statuses": ">= 1.4.0 < 2" }, "engines": { "node": ">= 0.6" } }, "node_modules/serve-index/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, "node_modules/serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", "dev": true, "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.17.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "node_modules/set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", "engines": { "node": ">=0.10.0" } }, "node_modules/set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/set-value/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", "dev": true }, "node_modules/setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", "dev": true }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "dependencies": { "kind-of": "^6.0.2" }, "engines": { "node": ">=8" } }, "node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "dependencies": { "shebang-regex": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/shelljs": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", "dev": true, "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", "rechoir": "^0.6.2" }, "bin": { "shjs": "bin/shjs" }, "engines": { "node": ">=4" } }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "node_modules/simple-sha1": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/simple-sha1/-/simple-sha1-3.1.0.tgz", "integrity": "sha512-ArTptMRC1v08H8ihPD6l0wesKvMfF9e8XL5rIHPanI7kGOsSsbY514MwVu6X1PITHCTB2F08zB7cyEbfc4wQjg==", "dev": true, "dependencies": { "queue-microtask": "^1.2.2", "rusha": "^0.8.13" } }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "dev": true, "dependencies": { "is-arrayish": "^0.3.1" } }, "node_modules/simple-swizzle/node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "dependencies": { "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" }, "engines": { "node": ">=6" } }, "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/smart-buffer": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", "dev": true, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" } }, "node_modules/snake-case": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", "dev": true, "dependencies": { "no-case": "^2.2.0" } }, "node_modules/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "map-cache": "^0.2.2", "source-map": "^0.5.6", "source-map-resolve": "^0.5.0", "use": "^3.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", "snapdragon-util": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-node/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-node/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-node/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "dependencies": { "kind-of": "^3.2.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-util/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/snapdragon/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/snapdragon/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/socket.io": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", "dev": true, "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", "debug": "~4.3.2", "engine.io": "~6.1.0", "socket.io-adapter": "~2.3.3", "socket.io-parser": "~4.0.4" }, "engines": { "node": ">=10.0.0" } }, "node_modules/socket.io-adapter": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", "dev": true }, "node_modules/socket.io-parser": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", "dev": true, "dependencies": { "@types/component-emitter": "^1.2.10", "component-emitter": "~1.3.0", "debug": "~4.3.1" }, "engines": { "node": ">=10.0.0" } }, "node_modules/socket.io/node_modules/debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, "node_modules/sockjs/node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/socks": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", "dev": true, "dependencies": { "ip": "^1.1.5", "smart-buffer": "^4.1.0" }, "engines": { "node": ">= 10.13.0", "npm": ">= 3.0.0" } }, "node_modules/socks-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", "dev": true, "dependencies": { "agent-base": "6", "debug": "4", "socks": "^2.3.3" }, "engines": { "node": ">= 6" } }, "node_modules/source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/source-map-js": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-loader": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.0.tgz", "integrity": "sha512-GKGWqWvYr04M7tn8dryIWvb0s8YM41z82iQv01yBtIylgxax0CwvSy6gc2Y02iuXwEfGWRlMicH0nvms9UZphw==", "dev": true, "dependencies": { "abab": "^2.0.5", "iconv-lite": "^0.6.2", "source-map-js": "^0.6.2" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.0.0" } }, "node_modules/source-map-loader/node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", "urix": "^0.1.0" } }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-url": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, "node_modules/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, "node_modules/space-separated-tokens": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/spawn-command": { "version": "0.0.2-1", "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", "dev": true }, "node_modules/spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", "dev": true }, "node_modules/spdx-license-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-2.1.0.tgz", "integrity": "sha1-N4j/tcgLJK++goOTTp5mhOpqIY0=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/spdy-transport": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", "hpack.js": "^2.1.6", "obuf": "^1.1.2", "readable-stream": "^3.0.6", "wbuf": "^1.7.3" } }, "node_modules/spdy-transport/node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/speedline-core": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz", "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==", "dev": true, "dependencies": { "@types/node": "*", "image-ssim": "^0.2.0", "jpeg-js": "^0.4.1" }, "engines": { "node": ">=8.0" } }, "node_modules/split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "dependencies": { "extend-shallow": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "node_modules/sse4_crc32": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/sse4_crc32/-/sse4_crc32-6.0.1.tgz", "integrity": "sha512-FUTYXpLroqytNKWIfHzlDWoy9E4tmBB/RklNMy6w3VJs+/XEYAHgbiylg4SS43iOk/9bM0BlJ2EDpFAGT66IoQ==", "dev": true, "hasInstallScript": true, "optional": true, "dependencies": { "bindings": "^1.3.0", "node-addon-api": "^1.3.0" }, "engines": { "node": ">=4" } }, "node_modules/sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", "dashdash": "^1.12.0", "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, "bin": { "sshpk-conv": "bin/sshpk-conv", "sshpk-sign": "bin/sshpk-sign", "sshpk-verify": "bin/sshpk-verify" }, "engines": { "node": ">=0.10.0" } }, "node_modules/ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, "dependencies": { "minipass": "^3.1.1" }, "engines": { "node": ">= 8" } }, "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "dev": true }, "node_modules/stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", "dev": true, "engines": { "node": "*" } }, "node_modules/state-toggle": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/static-extend/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "node_modules/streamroller": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", "dev": true, "dependencies": { "date-format": "^4.0.3", "debug": "^4.1.1", "fs-extra": "^10.0.0" }, "engines": { "node": ">=8.0" } }, "node_modules/streamroller/node_modules/fs-extra": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" }, "engines": { "node": ">=12" } }, "node_modules/streamroller/node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/streamroller/node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, "engines": { "node": ">= 10.0.0" } }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/string-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", "dev": true, "dependencies": { "strip-ansi": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/string-length/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/string-length/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/string.prototype.trimend": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/stringify-entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-2.0.0.tgz", "integrity": "sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==", "dev": true, "dependencies": { "character-entities-html4": "^1.0.0", "character-entities-legacy": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.2", "is-hexadecimal": "^1.0.0" } }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/stylus": { "version": "0.55.0", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.55.0.tgz", "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", "dev": true, "dependencies": { "css": "^3.0.0", "debug": "~3.1.0", "glob": "^7.1.6", "mkdirp": "~1.0.4", "safer-buffer": "^2.1.2", "sax": "~1.2.4", "semver": "^6.3.0", "source-map": "^0.7.3" }, "bin": { "stylus": "bin/stylus" }, "engines": { "node": "*" } }, "node_modules/stylus-loader": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", "dev": true, "dependencies": { "fast-glob": "^3.2.7", "klona": "^2.0.4", "normalize-path": "^3.0.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "stylus": ">=0.52.4", "webpack": "^5.0.0" } }, "node_modules/stylus/node_modules/debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/stylus/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" } }, "node_modules/stylus/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/superstatic": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/superstatic/-/superstatic-7.1.0.tgz", "integrity": "sha512-yBU8iw07nM3Bu4jFc8lnKwLey0cj61OaGmFJZcYC2X+kEpXVmXzERJ3OTAHZAESe1OTeNIuWadt81U5IULGGAA==", "dev": true, "dependencies": { "basic-auth-connect": "^1.0.0", "chalk": "^1.1.3", "compare-semver": "^1.0.0", "compression": "^1.7.0", "connect": "^3.6.2", "destroy": "^1.0.4", "fast-url-parser": "^1.1.3", "fs-extra": "^8.1.0", "glob-slasher": "^1.0.1", "home-dir": "^1.0.0", "is-url": "^1.2.2", "join-path": "^1.1.1", "lodash": "^4.17.19", "mime-types": "^2.1.16", "minimatch": "^3.0.4", "morgan": "^1.8.2", "nash": "^3.0.0", "on-finished": "^2.2.0", "on-headers": "^1.0.0", "path-to-regexp": "^1.8.0", "router": "^1.3.1", "rsvp": "^4.8.5", "string-length": "^1.0.0", "update-notifier": "^4.1.1" }, "bin": { "superstatic": "bin/server" }, "engines": { "node": ">= 8.6.0" }, "optionalDependencies": { "re2": "^1.15.8" } }, "node_modules/superstatic/node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/superstatic/node_modules/ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/superstatic/node_modules/chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "dependencies": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", "has-ansi": "^2.0.0", "strip-ansi": "^3.0.0", "supports-color": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/superstatic/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "node_modules/superstatic/node_modules/path-to-regexp": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, "dependencies": { "isarray": "0.0.1" } }, "node_modules/superstatic/node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "dependencies": { "ansi-regex": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/superstatic/node_modules/supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/supports-hyperlinks": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", "dev": true, "dependencies": { "has-flag": "^2.0.0", "supports-color": "^5.0.0" }, "engines": { "node": ">=4" } }, "node_modules/supports-hyperlinks/node_modules/has-flag": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/svgo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", "dev": true, "dependencies": { "chalk": "^2.4.1", "coa": "^2.0.2", "css-select": "^2.0.0", "css-select-base-adapter": "^0.1.1", "css-tree": "1.0.0-alpha.37", "csso": "^4.0.2", "js-yaml": "^3.13.1", "mkdirp": "~0.5.1", "object.values": "^1.1.0", "sax": "~1.2.4", "stable": "^0.1.8", "unquote": "~1.1.1", "util.promisify": "~1.0.0" }, "bin": { "svgo": "bin/svgo" }, "engines": { "node": ">=4.0.0" } }, "node_modules/svgson": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/svgson/-/svgson-4.1.0.tgz", "integrity": "sha512-DodISxHtdLKUghDYA+PGK4Qq350+CbBAkdvGLkBFSmWd9WKSg4dijgjB1IiRPTmsUCd+a7KYe+ILHtklYgQyzQ==", "dev": true, "dependencies": { "deep-rename-keys": "^0.2.1", "omit-deep": "0.3.0", "xml-reader": "2.4.3" } }, "node_modules/swap-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", "dev": true, "dependencies": { "lower-case": "^1.1.1", "upper-case": "^1.1.1" } }, "node_modules/swirly-parser": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-parser/-/swirly-parser-0.13.10.tgz", "integrity": "sha512-EJvfYAHI10WDL60mpltu/lpNHtY77Elj2waAr8LPDwKreohk9B9XJ+m8V33i0iIKLsmDksIFl4l0RRVAQx7t7g==", "deprecated": "please use @swirly/parser instead", "dev": true, "dependencies": { "swirly-parser-rxjs": "^0.13.10" }, "engines": { "node": ">=10" } }, "node_modules/swirly-parser-rxjs": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-parser-rxjs/-/swirly-parser-rxjs-0.13.10.tgz", "integrity": "sha512-6wmdclC0zscSWjIKPgXkO5JurM/mVtV2tmzr1+j2ZEKiB4gKLV0QKSb4qGu87GtVYuzFjN4H4aCDH99Suq2GMA==", "deprecated": "please use @swirly/parser-rxjs instead", "dev": true, "engines": { "node": ">=10" } }, "node_modules/swirly-renderer": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-renderer/-/swirly-renderer-0.13.10.tgz", "integrity": "sha512-RSgdb9wE1SKcae49O8UjYaU8ayZWv6u/zRfkARGbuouYj2rXLceHyKAHBu9OAg4tRkyKZ1ioyxKFenHNeQE3rA==", "deprecated": "please use @swirly/renderer instead", "dev": true, "dependencies": { "simple-sha1": "^3.0.1", "swirly-theme-default-light": "^0.13.10" }, "engines": { "node": ">=10" } }, "node_modules/swirly-renderer-node": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-renderer-node/-/swirly-renderer-node-0.13.10.tgz", "integrity": "sha512-YL9umzpv8Nl9xAwxr1z+0CTqo94TcQFgRbzr/RJL1t6RG+b51q0x/O0oKG/jxIH9hnr6H3PJbzJwNrrwfHVsrQ==", "deprecated": "please use @swirly/renderer-node instead", "dev": true, "dependencies": { "swirly-renderer": "^0.13.10", "xmldom": "^0.3.0" }, "engines": { "node": ">=10" } }, "node_modules/swirly-renderer-node/node_modules/xmldom": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.3.0.tgz", "integrity": "sha512-z9s6k3wxE+aZHgXYxSTpGDo7BYOUfJsIRyoZiX6HTjwpwfS2wpQBQKa2fD+ShLyPkqDYo5ud7KitmLZ2Cd6r0g==", "deprecated": "Deprecated due to CVE-2021-21366 resolved in 0.5.0", "dev": true, "engines": { "node": ">=10.0.0" } }, "node_modules/swirly-theme-default-base": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-theme-default-base/-/swirly-theme-default-base-0.13.10.tgz", "integrity": "sha512-s1g9llE+fVdHemufzXcAM2p95OLCuwQ6/AB8tSAD9CStr0mZXWd6lPVGNw0i7T77bRe7TZirs/OeOq5gr2VgIw==", "deprecated": "please use @swirly/theme-default-base instead", "dev": true, "engines": { "node": ">=10" } }, "node_modules/swirly-theme-default-light": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-theme-default-light/-/swirly-theme-default-light-0.13.10.tgz", "integrity": "sha512-2EXGLtcFKJHWN8snOQXqon0d3h2tS6Pu4v2TnLp7GdYU2ggEzqEKCfHWm5uEuW/j/HxBevlOBbdU0bZA1YRxJg==", "deprecated": "please use @swirly/theme-default-light instead", "dev": true, "dependencies": { "swirly-theme-default-base": "^0.13.10" }, "engines": { "node": ">=10" } }, "node_modules/swirly-types": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-types/-/swirly-types-0.13.10.tgz", "integrity": "sha512-omsVUaHqCTcJV+kPt2iebg2XA4al2109MG6wkS/R2tBH1U1mv0TIaPeBSfbCctrt3EJKbazkJjY0axe1Fb1m1A==", "deprecated": "please use @swirly/types instead", "dev": true, "engines": { "node": ">=10" } }, "node_modules/symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "dev": true, "engines": { "node": ">=0.10" } }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, "node_modules/table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "dependencies": { "ajv": "^6.10.2", "lodash": "^4.17.14", "slice-ansi": "^2.1.0", "string-width": "^3.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/table/node_modules/ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/table/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "node_modules/table/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/table/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/table/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, "engines": { "node": ">=6" } }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/tar": { "version": "6.1.11", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^3.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "engines": { "node": ">= 10" } }, "node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" }, "engines": { "node": ">=6" } }, "node_modules/tar-stream/node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" } }, "node_modules/taskgroup": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/taskgroup/-/taskgroup-5.5.0.tgz", "integrity": "sha512-YFkdc6HU+p3xO2lZ1MWdx7R7EbrLF/bpXv5k9635bTzdgOLNbmnsDg5alSpZost+PYMk40d6ZDAJHBHNHiiLvw==", "dev": true, "dependencies": { "ambi": "3.2.0", "eachr": "^3.2.0", "editions": "^2.2.0", "extendr": "^3.5.0", "safeps": "7.0.1", "unbounded": "^1.2.0" }, "engines": { "node": ">=0.8" }, "funding": { "type": "cooperative", "url": "https://bevry.me/fund" } }, "node_modules/tcp-port-used": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", "dev": true, "dependencies": { "debug": "4.3.1", "is2": "^2.0.6" } }, "node_modules/term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/terser": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", "dev": true, "dependencies": { "commander": "^2.20.0", "source-map": "~0.7.2", "source-map-support": "~0.5.19" }, "bin": { "terser": "bin/terser" }, "engines": { "node": ">=10" } }, "node_modules/terser-webpack-plugin": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", "dev": true, "dependencies": { "jest-worker": "^27.0.2", "p-limit": "^3.1.0", "schema-utils": "^3.0.0", "serialize-javascript": "^6.0.0", "source-map": "^0.6.1", "terser": "^5.7.0" }, "engines": { "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^5.1.0" } }, "node_modules/terser-webpack-plugin/node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" }, "engines": { "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/terser-webpack-plugin/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" }, "engines": { "node": ">=8" } }, "node_modules/text-hex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", "dev": true }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "node_modules/third-party-web": { "version": "0.12.3", "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.12.3.tgz", "integrity": "sha512-wnPlVUKzet4hnejKMEsVj5eIL0V2PLzgjJ3fLyGo9GV1pUOMa0NjeIzJNJ0pTEUL2GJAqlFKxo8EYML27SF/ng==", "dev": true }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, "node_modules/timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/timers-ext": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", "dev": true, "dependencies": { "es5-ext": "~0.10.46", "next-tick": "1" } }, "node_modules/title-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", "dev": true, "dependencies": { "no-case": "^2.2.0", "upper-case": "^1.0.3" } }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "dependencies": { "os-tmpdir": "~1.0.2" }, "engines": { "node": ">=0.6.0" } }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "dependencies": { "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/to-object-path/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { "is-number": "^7.0.0" }, "engines": { "node": ">=8.0" } }, "node_modules/toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "dev": true, "engines": { "node": ">=0.6" } }, "node_modules/tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" }, "engines": { "node": ">=0.8" } }, "node_modules/toxic": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toxic/-/toxic-1.0.1.tgz", "integrity": "sha512-WI3rIGdcaKULYg7KVoB0zcjikqvcYYvcuT6D89bFPz2rVR0Rl0PK6x8/X62rtdLtBKIE985NzVf/auTtGegIIg==", "dev": true, "dependencies": { "lodash": "^4.17.10" } }, "node_modules/tr46": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "dev": true, "dependencies": { "punycode": "^2.1.0" } }, "node_modules/traverse": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", "dev": true, "engines": { "node": "*" } }, "node_modules/tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, "bin": { "tree-kill": "cli.js" } }, "node_modules/trim": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", "dev": true }, "node_modules/trim-trailing-lines": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/triple-beam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", "dev": true }, "node_modules/trough": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/ts-node": { "version": "8.10.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", "dev": true, "dependencies": { "arg": "^4.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", "yn": "3.1.1" }, "bin": { "ts-node": "dist/bin.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js", "ts-script": "dist/bin-script-deprecated.js" }, "engines": { "node": ">=6.0.0" }, "peerDependencies": { "typescript": ">=2.7" } }, "node_modules/tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "node_modules/tslint": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", "chalk": "^2.3.0", "commander": "^2.12.1", "diff": "^4.0.1", "glob": "^7.1.1", "js-yaml": "^3.13.1", "minimatch": "^3.0.4", "mkdirp": "^0.5.3", "resolve": "^1.3.2", "semver": "^5.3.0", "tslib": "^1.13.0", "tsutils": "^2.29.0" }, "bin": { "tslint": "bin/tslint" }, "engines": { "node": ">=4.8.0" }, "peerDependencies": { "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" } }, "node_modules/tslint/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/tslint/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "dependencies": { "tslib": "^1.8.1" }, "peerDependencies": { "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" } }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dependencies": { "safe-buffer": "^5.0.1" }, "engines": { "node": "*" } }, "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "node_modules/tweetsodium": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/tweetsodium/-/tweetsodium-0.0.5.tgz", "integrity": "sha512-T3aXZtx7KqQbutTtBfn+P5By3HdBuB1eCoGviIrRJV2sXeToxv2X2cv5RvYqgG26PSnN5m3fYixds22Gkfd11w==", "dev": true, "dependencies": { "blakejs": "^1.1.0", "tweetnacl": "^1.0.1" } }, "node_modules/tweetsodium/node_modules/tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", "dev": true }, "node_modules/type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", "dev": true }, "node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "dependencies": { "prelude-ls": "~1.1.2" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" }, "engines": { "node": ">= 0.6" } }, "node_modules/typechecker": { "version": "4.11.0", "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.11.0.tgz", "integrity": "sha512-lz39Mc/d1UBcF/uQFL5P8L+oWdIn/stvkUgHf0tPRW4aEwGGErewNXo2Nb6We2WslWifn00rhcHbbRWRcTGhuw==", "dev": true, "dependencies": { "editions": "^2.2.0" }, "engines": { "node": ">=0.8" }, "funding": { "url": "https://bevry.me/fund" } }, "node_modules/typed-assert": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.8.tgz", "integrity": "sha512-5NkbXZUlmCE73Fs7gvkp1XXJWHYetPkg60QnQ2NXQmBYNFxbBr2zA8GCtaH4K2s2WhOmSlgiSTmrjrcm5tnM5g==", "dev": true }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "dependencies": { "is-typedarray": "^1.0.0" } }, "node_modules/typescript": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { "node": ">=4.2.0" } }, "node_modules/ua-parser-js": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", "dev": true, "funding": [ { "type": "opencollective", "url": "https://opencollective.com/ua-parser-js" }, { "type": "paypal", "url": "https://paypal.me/faisalman" } ], "engines": { "node": "*" } }, "node_modules/uglify-js": { "version": "3.13.2", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.2.tgz", "integrity": "sha512-SbMu4D2Vo95LMC/MetNaso1194M1htEA+JrqE9Hk+G2DhI+itfS9TRu9ZKeCahLDNa/J3n4MqUJ/fOHMzQpRWw==", "dev": true, "bin": { "uglifyjs": "bin/uglifyjs" }, "engines": { "node": ">=0.8.0" } }, "node_modules/ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", "dev": true }, "node_modules/unbounded": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/unbounded/-/unbounded-1.3.0.tgz", "integrity": "sha512-RWVCkvcoItljlNTz0iTdBQU6bDj+slVLNaWN7d6DXgH02FfYrz8ytcJ4OPW8b0HqmCehwufJHOIzjHWrQUXBvg==", "dev": true, "dependencies": { "editions": "^2.2.0" }, "engines": { "node": ">=0.8" }, "funding": { "url": "https://bevry.me/fund" } }, "node_modules/unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has-bigints": "^1.0.1", "has-symbols": "^1.0.2", "which-boxed-primitive": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/underscore": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", "dev": true }, "node_modules/unherit": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", "dev": true, "dependencies": { "inherits": "^2.0.0", "xtend": "^4.0.0" }, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/unicode-match-property-value-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/unified": { "version": "9.2.1", "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz", "integrity": "sha512-juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA==", "dev": true, "dependencies": { "bail": "^1.0.0", "extend": "^3.0.0", "is-buffer": "^2.0.0", "is-plain-obj": "^2.0.0", "trough": "^1.0.0", "vfile": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unified/node_modules/is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ], "engines": { "node": ">=4" } }, "node_modules/union": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", "dev": true, "dependencies": { "qs": "^6.4.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, "node_modules/unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "dependencies": { "unique-slug": "^2.0.0" } }, "node_modules/unique-slug": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4" } }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "dependencies": { "crypto-random-string": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/unist-builder": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-filter": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unist-util-filter/-/unist-util-filter-1.0.2.tgz", "integrity": "sha512-AIJXJNzI8bLStKz3UDt4IX7/GSfO0NeV/plrd5td4VfB0SBlYil7pGzaeBHI8/KXzTWPaPtIbpGK53jYd1kG9A==", "dev": true, "dependencies": { "flatmap": "0.0.3", "unist-util-is": "^3.0.0" } }, "node_modules/unist-util-generated": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-is": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", "dev": true }, "node_modules/unist-util-position": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-remove-position": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", "dev": true, "dependencies": { "unist-util-visit": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-remove-position/node_modules/unist-util-is": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-remove-position/node_modules/unist-util-visit": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-remove-position/node_modules/unist-util-visit-parents": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-source": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/unist-util-source/-/unist-util-source-1.0.5.tgz", "integrity": "sha512-pBMvoNtsqVUS8+ifluSBWD5HgrRVqh0cVjTA2zZrQnWRU3ChNNRUx4uOgSIisgV0OiP4cZB1VN8QE9C5czT7cw==", "dev": true, "dependencies": { "vfile-location": "^2.0.1" } }, "node_modules/unist-util-source/node_modules/vfile-location": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-stringify-position": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dev": true, "dependencies": { "@types/unist": "^2.0.2" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/unist-util-visit": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", "dev": true, "dependencies": { "unist-util-visit-parents": "^2.0.0" } }, "node_modules/unist-util-visit-parents": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", "dev": true, "dependencies": { "unist-util-is": "^3.0.0" } }, "node_modules/universal-analytics": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", "dev": true, "dependencies": { "debug": "^4.1.1", "request": "^2.88.2", "uuid": "^3.0.0" } }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, "engines": { "node": ">= 4.0.0" } }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", "dev": true }, "node_modules/unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/unset-value/node_modules/has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", "isobject": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "dependencies": { "isarray": "1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/unset-value/node_modules/has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/unzipper": { "version": "0.10.11", "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", "dev": true, "dependencies": { "big-integer": "^1.6.17", "binary": "~0.3.0", "bluebird": "~3.4.1", "buffer-indexof-polyfill": "~1.0.0", "duplexer2": "~0.1.4", "fstream": "^1.0.12", "graceful-fs": "^4.2.2", "listenercount": "~1.0.1", "readable-stream": "~2.3.6", "setimmediate": "~1.0.4" } }, "node_modules/unzipper/node_modules/bluebird": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", "dev": true }, "node_modules/update-notifier": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", "dev": true, "dependencies": { "boxen": "^4.2.0", "chalk": "^3.0.0", "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", "is-installed-globally": "^0.3.1", "is-npm": "^4.0.0", "is-yarn-global": "^0.3.0", "latest-version": "^5.0.0", "pupa": "^2.0.1", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/yeoman/update-notifier?sponsor=1" } }, "node_modules/update-notifier/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/update-notifier/node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=8" } }, "node_modules/update-notifier/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/update-notifier/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/update-notifier/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/update-notifier/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "dev": true }, "node_modules/upper-case-first": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", "dev": true, "dependencies": { "upper-case": "^1.1.1" } }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, "node_modules/url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, "dependencies": { "punycode": "1.3.2", "querystring": "0.2.0" } }, "node_modules/url-join": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz", "integrity": "sha1-HbSK1CLTQCRpqH99l73r/k+x48g=", "dev": true }, "node_modules/url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "dependencies": { "prepend-http": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/url/node_modules/punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true }, "node_modules/urlencode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/urlencode/-/urlencode-1.1.0.tgz", "integrity": "sha1-HyuibwE8hfATP3o61v8nMK33y7c=", "dev": true, "dependencies": { "iconv-lite": "~0.4.11" } }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/util.promisify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", "dev": true, "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.2", "has-symbols": "^1.0.1", "object.getownpropertydescriptors": "^2.1.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true, "engines": { "node": ">= 0.4.0" } }, "node_modules/uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "bin": { "uuid": "bin/uuid" } }, "node_modules/v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "node_modules/valid-url": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", "dev": true }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "node_modules/validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "dependencies": { "builtins": "^1.0.3" } }, "node_modules/validate.js": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/validate.js/-/validate.js-0.12.0.tgz", "integrity": "sha512-/x2RJSvbqEyxKj0RPN4xaRquK+EggjeVXiDDEyrJzsJogjtiZ9ov7lj/svVb4DM5Q5braQF4cooAryQbUwOxlA==", "dev": true }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "engines": [ "node >=0.6.0" ], "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "node_modules/vfile": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", "unist-util-stringify-position": "^2.0.0", "vfile-message": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/vfile-location": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", "dev": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/vfile-message": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" } }, "node_modules/vfile/node_modules/is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ], "engines": { "node": ">=4" } }, "node_modules/void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/vrsource-tslint-rules": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/vrsource-tslint-rules/-/vrsource-tslint-rules-6.0.0.tgz", "integrity": "sha512-pmcnJdIVziZTk1V0Cqehmh3gIabBRkBYXkv9vx+1CZDNEa41kNGUBFwQLzw21erYOd2QnD8jJeZhBGqnlT1HWw==", "dev": true, "peerDependencies": { "tslint": "*", "typescript": "*" } }, "node_modules/w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "dev": true, "dependencies": { "browser-process-hrtime": "^1.0.0" } }, "node_modules/w3c-xmlserializer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", "dev": true, "dependencies": { "domexception": "^1.0.1", "webidl-conversions": "^4.0.2", "xml-name-validator": "^3.0.0" } }, "node_modules/watchpack": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" }, "engines": { "node": ">=10.13.0" } }, "node_modules/watchpack/node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, "node_modules/watchr": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/watchr/-/watchr-4.1.0.tgz", "integrity": "sha512-ShaYIRazXv+4FjHNcjd6H8oyWcJnLh3M7Gle/7ZVj8WoMqBXU0xotCwxPFjEe8j92nozdBz0Q2hOrnp+U+55FA==", "dev": true, "dependencies": { "eachr": "^3.2.0", "editions": "^2.1.0", "extendr": "^3.2.2", "ignorefs": "^1.1.1", "safefs": "^4.1.0", "scandirectory": "^3.0.1", "taskgroup": "^5.0.1" }, "engines": { "node": ">=0.12" } }, "node_modules/wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "dependencies": { "minimalistic-assert": "^1.0.0" } }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "dependencies": { "defaults": "^1.0.3" } }, "node_modules/web-namespaces": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", "dev": true, "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/webdriver-js-extender": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", "dev": true, "dependencies": { "@types/selenium-webdriver": "^3.0.0", "selenium-webdriver": "^3.0.1" }, "engines": { "node": ">=6.9.x" } }, "node_modules/webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", "dev": true }, "node_modules/webpack": { "version": "5.65.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz", "integrity": "sha512-Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.50", "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", "acorn": "^8.4.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.8.3", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.4", "json-parse-better-errors": "^1.0.2", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.3.1", "webpack-sources": "^3.2.2" }, "bin": { "webpack": "bin/webpack.js" }, "engines": { "node": ">=10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependenciesMeta": { "webpack-cli": { "optional": true } } }, "node_modules/webpack-dev-middleware": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.2.2.tgz", "integrity": "sha512-DjZyYrsHhkikAFNvSNKrpnziXukU1EChFAh9j4LAm6ndPLPW8cN0KhM7T+RAiOqsQ6ABfQ8hoKIs9IWMTjov+w==", "dev": true, "dependencies": { "colorette": "^2.0.10", "memfs": "^3.2.2", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { "webpack": "^4.0.0 || ^5.0.0" } }, "node_modules/webpack-dev-middleware/node_modules/ajv": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "node_modules/webpack-dev-middleware/node_modules/colorette": { "version": "2.0.16", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/webpack-dev-middleware/node_modules/schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/webpack-dev-server": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.6.0.tgz", "integrity": "sha512-oojcBIKvx3Ya7qs1/AVWHDgmP1Xml8rGsEBnSobxU/UJSX1xP1GPM3MwsAnDzvqcVmVki8tV7lbcsjEjk0PtYg==", "dev": true, "dependencies": { "ansi-html-community": "^0.0.8", "bonjour": "^3.5.0", "chokidar": "^3.5.2", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^1.6.0", "default-gateway": "^6.0.3", "del": "^6.0.0", "express": "^4.17.1", "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.0", "ipaddr.js": "^2.0.1", "open": "^8.0.9", "p-retry": "^4.5.0", "portfinder": "^1.0.28", "schema-utils": "^4.0.0", "selfsigned": "^1.10.11", "serve-index": "^1.9.1", "sockjs": "^0.3.21", "spdy": "^4.0.2", "strip-ansi": "^7.0.0", "url": "^0.11.0", "webpack-dev-middleware": "^5.2.1", "ws": "^8.1.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { "node": ">= 12.13.0" }, "peerDependencies": { "webpack": "^4.37.0 || ^5.0.0" }, "peerDependenciesMeta": { "webpack-cli": { "optional": true } } }, "node_modules/webpack-dev-server/node_modules/ajv": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/webpack-dev-server/node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, "peerDependencies": { "ajv": "^8.8.2" } }, "node_modules/webpack-dev-server/node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/webpack-dev-server/node_modules/colorette": { "version": "2.0.16", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, "node_modules/webpack-dev-server/node_modules/ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "dev": true, "engines": { "node": ">= 10" } }, "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/webpack-dev-server/node_modules/schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" }, "engines": { "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/webpack-dev-server/node_modules/strip-ansi": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, "dependencies": { "ansi-regex": "^6.0.1" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/webpack-merge": { "version": "5.8.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", "wildcard": "^2.0.0" }, "engines": { "node": ">=10.0.0" } }, "node_modules/webpack-sources": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", "dev": true, "engines": { "node": ">=10.13.0" } }, "node_modules/webpack-subresource-integrity": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.0.0.tgz", "integrity": "sha512-x9514FpLRydO+UAQ8DY4aLtCjxmdLkuQVcDFN1kGzuusREYJ1B0rzk/iIlWiL6dnvrhEGFj2+UsdxDkP8Z4UKg==", "dev": true, "dependencies": { "typed-assert": "^1.0.8" }, "engines": { "node": ">= 12" }, "peerDependencies": { "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", "webpack": "^5.12.0" }, "peerDependenciesMeta": { "html-webpack-plugin": { "optional": true } } }, "node_modules/webpack/node_modules/acorn": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" }, "engines": { "node": ">=8.0.0" } }, "node_modules/webpack/node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" }, "engines": { "node": ">= 10.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" }, "engines": { "node": ">=0.8.0" } }, "node_modules/websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, "dependencies": { "iconv-lite": "0.4.24" } }, "node_modules/whatwg-mimetype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", "dev": true }, "node_modules/whatwg-url": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "dev": true, "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", "webidl-conversions": "^4.0.2" } }, "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "which": "bin/which" } }, "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "node_modules/wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "dependencies": { "string-width": "^1.0.2 || 2" } }, "node_modules/wide-align/node_modules/ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/wide-align/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/wide-align/node_modules/string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" }, "engines": { "node": ">=4" } }, "node_modules/wide-align/node_modules/strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "dependencies": { "ansi-regex": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, "dependencies": { "string-width": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, "node_modules/winston": { "version": "2.4.5", "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", "dev": true, "dependencies": { "async": "~1.0.0", "colors": "1.0.x", "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", "stack-trace": "0.0.x" }, "engines": { "node": ">= 0.10.0" } }, "node_modules/winston-transport": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", "dev": true, "dependencies": { "readable-stream": "^2.3.7", "triple-beam": "^1.2.0" }, "engines": { "node": ">= 6.4.0" } }, "node_modules/winston/node_modules/async": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", "dev": true }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" }, "engines": { "node": ">=6" } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/wrap-ansi/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/wrap-ansi/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/wrap-ansi/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, "engines": { "node": ">=6" } }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/write": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "dependencies": { "mkdirp": "^0.5.1" }, "engines": { "node": ">=4" } }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", "typedarray-to-buffer": "^3.1.5" } }, "node_modules/ws": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.0.tgz", "integrity": "sha512-IHVsKe2pjajSUIl4KYMQOdlyliovpEPquKkqbwswulszzI7r0SfQrxnXdWAEqOlDCLrVSJzo+O1hAwdog2sKSQ==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/x-is-string": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", "dev": true }, "node_modules/xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/xml-lexer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/xml-lexer/-/xml-lexer-0.2.2.tgz", "integrity": "sha1-UYGTpKozTVj8fSSLVJB5uJkH4EY=", "dev": true, "dependencies": { "eventemitter3": "^2.0.0" } }, "node_modules/xml-lexer/node_modules/eventemitter3": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=", "dev": true }, "node_modules/xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, "node_modules/xml-reader": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/xml-reader/-/xml-reader-2.4.3.tgz", "integrity": "sha1-n4EMr3xCWlqvuEixxFEDyecddTA=", "dev": true, "dependencies": { "eventemitter3": "^2.0.0", "xml-lexer": "^0.2.2" } }, "node_modules/xml-reader/node_modules/eventemitter3": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=", "dev": true }, "node_modules/xml2js": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "dependencies": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" }, "engines": { "node": ">=4.0.0" } }, "node_modules/xml2js/node_modules/xmlbuilder": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "engines": { "node": ">=4.0" } }, "node_modules/xmlbuilder": { "version": "9.0.7", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, "node_modules/xmldom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz", "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==", "dev": true, "engines": { "node": ">=10.0.0" } }, "node_modules/xregexp": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.4.1.tgz", "integrity": "sha512-2u9HwfadaJaY9zHtRRnH6BY6CQVNQKkYm3oLtC9gJXXzfsbACg5X5e4EZZGVAH+YIfa+QA9lsFQTTe3HURF3ag==", "dev": true, "dependencies": { "@babel/runtime-corejs3": "^7.12.1" } }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, "engines": { "node": ">=0.4" } }, "node_modules/y18n": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/yamljs": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", "dev": true, "dependencies": { "argparse": "^1.0.7", "glob": "^7.0.5" }, "bin": { "json2yaml": "bin/json2yaml", "yaml2json": "bin/yaml2json" } }, "node_modules/yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^13.1.2" } }, "node_modules/yargs-parser": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "node_modules/yargs/node_modules/ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/yargs/node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "node_modules/yargs/node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/yargs/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/yargs/node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, "engines": { "node": ">=6" } }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/zip-stream": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz", "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==", "dev": true, "dependencies": { "archiver-utils": "^2.1.0", "compress-commons": "^2.1.1", "readable-stream": "^3.4.0" }, "engines": { "node": ">= 6" } }, "node_modules/zip-stream/node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/zone.js": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz", "integrity": "sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==", "dependencies": { "tslib": "^2.0.0" } } }, "dependencies": { "@ampproject/remapping": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-1.0.2.tgz", "integrity": "sha512-SncaVxs+E3EdoA9xJgHfWPxZfowAgeIsd71VpqCKP6KNKm6s7zSqqvUc70UpKUFsrV3dAmy6qxHoIj5NG+3DiA==", "dev": true, "requires": { "@jridgewell/resolve-uri": "1.0.0", "sourcemap-codec": "1.4.8" } }, "@angular-devkit/architect": { "version": "0.1301.2", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1301.2.tgz", "integrity": "sha512-v8e6OF80Ezo5MTHtFcq1AZJH+Wq+hN9pMZ1iLGkODIfKIW9zx6aPhx0JY0b7sZkfNVL8ay8JA8f339eBMnOE9A==", "dev": true, "requires": { "@angular-devkit/core": "13.1.2", "rxjs": "6.6.7" }, "dependencies": { "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "@angular-devkit/build-angular": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.1.2.tgz", "integrity": "sha512-0FeDqfjWJjgIU42T3136RNYb7Yv2as6Z8rAnfUlX6RjRGZf98+6ZQZ80yREgrLkm7L8G1qWJc1sn3NyVMDwf9A==", "dev": true, "requires": { "@ampproject/remapping": "1.0.2", "@angular-devkit/architect": "0.1301.2", "@angular-devkit/build-webpack": "0.1301.2", "@angular-devkit/core": "13.1.2", "@babel/core": "7.16.0", "@babel/generator": "7.16.0", "@babel/helper-annotate-as-pure": "7.16.0", "@babel/plugin-proposal-async-generator-functions": "7.16.4", "@babel/plugin-transform-async-to-generator": "7.16.0", "@babel/plugin-transform-runtime": "7.16.4", "@babel/preset-env": "7.16.4", "@babel/runtime": "7.16.3", "@babel/template": "7.16.0", "@discoveryjs/json-ext": "0.5.6", "@ngtools/webpack": "13.1.2", "ansi-colors": "4.1.1", "babel-loader": "8.2.3", "babel-plugin-istanbul": "6.1.1", "browserslist": "^4.9.1", "cacache": "15.3.0", "circular-dependency-plugin": "5.2.2", "copy-webpack-plugin": "10.0.0", "core-js": "3.19.3", "critters": "0.0.15", "css-loader": "6.5.1", "esbuild": "0.14.2", "esbuild-wasm": "0.14.2", "glob": "7.2.0", "https-proxy-agent": "5.0.0", "inquirer": "8.2.0", "jsonc-parser": "3.0.0", "karma-source-map-support": "1.4.0", "less": "4.1.2", "less-loader": "10.2.0", "license-webpack-plugin": "4.0.0", "loader-utils": "3.2.0", "mini-css-extract-plugin": "2.4.5", "minimatch": "3.0.4", "open": "8.4.0", "ora": "5.4.1", "parse5-html-rewriting-stream": "6.0.1", "piscina": "3.1.0", "postcss": "8.4.4", "postcss-import": "14.0.2", "postcss-loader": "6.2.1", "postcss-preset-env": "6.7.0", "regenerator-runtime": "0.13.9", "resolve-url-loader": "4.0.0", "rxjs": "6.6.7", "sass": "1.44.0", "sass-loader": "12.4.0", "semver": "7.3.5", "source-map-loader": "3.0.0", "source-map-support": "0.5.21", "stylus": "0.55.0", "stylus-loader": "6.2.0", "terser": "5.10.0", "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.3.1", "webpack": "5.65.0", "webpack-dev-middleware": "5.2.2", "webpack-dev-server": "4.6.0", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.0.0" }, "dependencies": { "acorn": { "version": "8.7.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true, "optional": true, "peer": true }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "core-js": { "version": "3.19.3", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.19.3.tgz", "integrity": "sha512-LeLBMgEGSsG7giquSzvgBrTS7V5UL6ks3eQlUSbN8dJStlLFiRzUm5iqsRyzUB8carhfKjkJ2vzKqE6z1Vga9g==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "inquirer": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", "rxjs": "^7.2.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { "rxjs": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.1.tgz", "integrity": "sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==", "dev": true, "requires": { "tslib": "^2.1.0" } } } }, "loader-utils": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", "dev": true }, "regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" }, "dependencies": { "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "terser": { "version": "5.10.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", "source-map-support": "~0.5.20" } } } }, "@angular-devkit/build-webpack": { "version": "0.1301.2", "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1301.2.tgz", "integrity": "sha512-Xk0k0tMcLOy2HI1/YrfWeLUrtKvk7/E7fhG3XoozT/pXBQgiZGoPuCt34HNPDkx3WNSedzvh5DNv8kPlILfjIw==", "dev": true, "requires": { "@angular-devkit/architect": "0.1301.2", "rxjs": "6.6.7" }, "dependencies": { "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "@angular-devkit/core": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.1.2.tgz", "integrity": "sha512-uXVesIRiCL/Nv+RSV8JM4j8IoZiGCGnqV2FOJ1hvH7DPxIjhjPMdG/B54xMydZpeASW3ofuxeORyAXxFIBm8Zg==", "dev": true, "requires": { "ajv": "8.8.2", "ajv-formats": "2.1.1", "fast-json-stable-stringify": "2.1.0", "magic-string": "0.25.7", "rxjs": "6.6.7", "source-map": "0.7.3" }, "dependencies": { "ajv": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "@angular-devkit/schematics": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.1.2.tgz", "integrity": "sha512-ayYbHGU8QpMGx8ZyhKOBupz+Zfv/2H1pNQErahYV3qg7hA9hfjTGmNmDQ4iw0fiT04NajjUxuomlKsCsg7oXDw==", "dev": true, "requires": { "@angular-devkit/core": "13.1.2", "jsonc-parser": "3.0.0", "magic-string": "0.25.7", "ora": "5.4.1", "rxjs": "6.6.7" }, "dependencies": { "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "@angular/animations": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-13.1.1.tgz", "integrity": "sha512-6ECC9Dn5gmV4U1cz1pRJ2p5lo0BET2CjG1RbhTaZR8lOsoMsmlV/JdBAp8eyYTiGii3MLS6Q2P/hN/YG2SRGQQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/cdk": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-13.1.1.tgz", "integrity": "sha512-66PyWg+zKdxTe3b1pc1RduT8hsMs/hJ0aD0JX0pSEWVq7O0OJWJ5f0z+Mk03T9tAERA3NK1GifcKEDq5k7R2Zw==", "requires": { "parse5": "^5.0.0", "tslib": "^2.3.0" } }, "@angular/cli": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.1.2.tgz", "integrity": "sha512-jEsQWzHgODFpppWGb49jfqlN8YYhphsKY3MPHlrjmd05qWgKItUGSgA46hSoDqjaJKVUN9koUnJBFCc9utERYA==", "dev": true, "requires": { "@angular-devkit/architect": "0.1301.2", "@angular-devkit/core": "13.1.2", "@angular-devkit/schematics": "13.1.2", "@schematics/angular": "13.1.2", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.1", "debug": "4.3.3", "ini": "2.0.0", "inquirer": "8.2.0", "jsonc-parser": "3.0.0", "npm-package-arg": "8.1.5", "npm-pick-manifest": "6.1.1", "open": "8.4.0", "ora": "5.4.1", "pacote": "12.0.2", "resolve": "1.20.0", "semver": "7.3.5", "symbol-observable": "4.0.0", "uuid": "8.3.2" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "inquirer": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", "rxjs": "^7.2.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" } }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true } } }, "@angular/common": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.1.1.tgz", "integrity": "sha512-FQwRZ1XgTH2PbPjBmq2jAZzETVNX9yWQt21MuNGtokC7V4eS0NYlFIDbhy3UPWCzRgd3+P7P4+HdX15VxCjf9g==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.1.1.tgz", "integrity": "sha512-WS+BB4h2LOBAGQ+P+RcKDw43Z7yAB5m1RY2/MAI+qI339V97WlWEQXxSMvBhCuzJnww1SSZfHMADaB54Jdjx2g==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler-cli": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-13.1.1.tgz", "integrity": "sha512-ycdXN2urBZepbXn2xx1oxF1i6g0Dq/Rb8ySQeELdL9qr6hiZF9fkvIwd91d8uhFG2PvoM4O8/U/3x4yA2bXzew==", "dev": true, "requires": { "@babel/core": "^7.8.6", "canonical-path": "1.0.0", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", "dependency-graph": "^0.11.0", "magic-string": "^0.25.0", "reflect-metadata": "^0.1.2", "semver": "^7.0.0", "sourcemap-codec": "^1.4.8", "tslib": "^2.3.0", "yargs": "^17.2.1" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "dependency-graph": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", "dev": true }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yargs": { "version": "17.3.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.1.tgz", "integrity": "sha512-WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==", "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.0.0" } }, "yargs-parser": { "version": "21.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", "dev": true } } }, "@angular/core": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.1.1.tgz", "integrity": "sha512-oLGKgzUbHqte/q7EokOJWUiXAtBjwuZM6c9Or2a7WDJNeImQilxk5qy91RPSbP8FhOBysebqAayrfiCYexlShg==", "requires": { "tslib": "^2.3.0" } }, "@angular/elements": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/elements/-/elements-13.1.1.tgz", "integrity": "sha512-d9tDTvyz5ZK30H1RwE54EbFSMZ2nA5uRWJMWdD4AImSM72v+gQR2pNmt1Wp+cZ1K34i5LJdg1FhMqvfUTjQGZQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/forms": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-13.1.1.tgz", "integrity": "sha512-wtYzRHPv4mf1Vsi4GEal5qcI2wjqUW+lu8Fsd2Aoe8NqkwtY3fq+iWEP/4pnvmH0RlC+3QbNNV/01D5UKolvgg==", "requires": { "tslib": "^2.3.0" } }, "@angular/material": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/material/-/material-13.1.1.tgz", "integrity": "sha512-kKWZBhnzuBYAVO1nrkqEaVTCJ2onEWs+tzAJDIlmbo9USiQyVCnFXx+rs86m4kRUxeAAZ9mcW5BGJr6oy5ClCA==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.1.1.tgz", "integrity": "sha512-jk9MGwnaVc98wmw5dRBicduI/a8dHtUzaAi1dV003fUWldS9a5FBuj/ym7DJubaD5Njl8l79SFbjrP9aAsqM5A==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser-dynamic": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.1.1.tgz", "integrity": "sha512-ujHJMhJk93hjLx/SQ67y7xiGh2UDL+toVi3OlorWvnYGgPR26ufyL+J73BA+RAKHSP2WPiXU+/87vSz8r+BEgA==", "requires": { "tslib": "^2.3.0" } }, "@angular/router": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.1.1.tgz", "integrity": "sha512-rlz5BBgNX+G2vVu2Gb5avx3LL08i7R/xZO7zPwh0HhXz/Vp8XFlWwaqAGb6Hgat772K2uCxF1/JBLQCUBY2MNQ==", "requires": { "tslib": "^2.3.0" } }, "@angular/service-worker": { "version": "13.1.1", "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-13.1.1.tgz", "integrity": "sha512-R/Qkl4zC6OmSUN+pRrQaWAwZnW09wKaAPOAMfuLCUZjjBzRi2ClP8UdjhCe0Aq3Vmq9TYoagDM0JHNFevCFoMQ==", "requires": { "tslib": "^2.3.0" } }, "@apidevtools/json-schema-ref-parser": { "version": "9.0.7", "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.7.tgz", "integrity": "sha512-QdwOGF1+eeyFh+17v2Tz626WX0nucd1iKOm6JUTUvCZdbolblCOOQCxGrQPY0f7jEhn36PiAWqZnsC2r5vmUWg==", "dev": true, "requires": { "@jsdevtools/ono": "^7.1.3", "call-me-maybe": "^1.0.1", "js-yaml": "^3.13.1" } }, "@applitools/eyes-common-legacy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@applitools/eyes-common-legacy/-/eyes-common-legacy-1.0.1.tgz", "integrity": "sha512-DTjtjOyLJx6WutApKNrVQ0dRX4FbxKQ4ABeHvy0IFGe3XoXpaPvuR9/Qxh8FU0VH1vOF75dRpdrsvJRukNYnVQ==", "requires": { "dateformat": "^3.0.3", "png-async": "^0.9.4" } }, "@applitools/eyes-sdk-core-legacy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@applitools/eyes-sdk-core-legacy/-/eyes-sdk-core-legacy-1.0.1.tgz", "integrity": "sha512-DdVjtmK3sPOUewx993XoWM/ZQW+ivDgMBnRRjBeMz7YcKDPykYsnWx2KESf60H4EkdpCTMJrHoovNaAA93+dbg==", "requires": { "@applitools/eyes-common-legacy": "1.0.1", "request": "^2.88.0" } }, "@assemblyscript/loader": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", "dev": true }, "@babel/code-frame": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", "dev": true, "requires": { "@babel/highlight": "^7.16.7" } }, "@babel/compat-data": { "version": "7.16.4", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", "dev": true }, "@babel/core": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", "dev": true, "requires": { "@babel/code-frame": "^7.16.0", "@babel/generator": "^7.16.0", "@babel/helper-compilation-targets": "^7.16.0", "@babel/helper-module-transforms": "^7.16.0", "@babel/helpers": "^7.16.0", "@babel/parser": "^7.16.0", "@babel/template": "^7.16.0", "@babel/traverse": "^7.16.0", "@babel/types": "^7.16.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", "semver": "^6.3.0", "source-map": "^0.5.0" }, "dependencies": { "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/generator": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", "dev": true, "requires": { "@babel/types": "^7.16.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, "dependencies": { "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/helper-annotate-as-pure": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", "dev": true, "requires": { "@babel/types": "^7.16.0" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", "dev": true, "requires": { "@babel/helper-explode-assignable-expression": "^7.16.7", "@babel/types": "^7.16.7" } }, "@babel/helper-compilation-targets": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", "dev": true, "requires": { "@babel/compat-data": "^7.16.4", "@babel/helper-validator-option": "^7.16.7", "browserslist": "^4.17.5", "semver": "^6.3.0" } }, "@babel/helper-create-class-features-plugin": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.7.tgz", "integrity": "sha512-kIFozAvVfK05DM4EVQYKK+zteWvY85BFdGBRQBytRyY3y+6PX0DkDOn/CZ3lEuczCfrCxEzwt0YtP/87YPTWSw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-member-expression-to-functions": "^7.16.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7" }, "dependencies": { "@babel/helper-annotate-as-pure": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dev": true, "requires": { "@babel/types": "^7.16.7" } } } }, "@babel/helper-create-regexp-features-plugin": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz", "integrity": "sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "regexpu-core": "^4.7.1" }, "dependencies": { "@babel/helper-annotate-as-pure": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dev": true, "requires": { "@babel/types": "^7.16.7" } } } }, "@babel/helper-define-polyfill-provider": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-module-imports": "^7.12.13", "@babel/helper-plugin-utils": "^7.13.0", "@babel/traverse": "^7.13.0", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", "semver": "^6.1.2" } }, "@babel/helper-environment-visitor": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", "dev": true, "requires": { "@babel/types": "^7.16.7" } }, "@babel/helper-explode-assignable-expression": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", "dev": true, "requires": { "@babel/types": "^7.16.7" } }, "@babel/helper-function-name": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz", "integrity": "sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==", "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.16.7", "@babel/template": "^7.16.7", "@babel/types": "^7.16.7" }, "dependencies": { "@babel/template": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" } } } }, "@babel/helper-get-function-arity": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz", "integrity": "sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==", "dev": true, "requires": { "@babel/types": "^7.16.7" } }, "@babel/helper-hoist-variables": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", "dev": true, "requires": { "@babel/types": "^7.16.7" } }, "@babel/helper-member-expression-to-functions": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.7.tgz", "integrity": "sha512-VtJ/65tYiU/6AbMTDwyoXGPKHgTsfRarivm+YbB5uAzKUyuPjgZSgAFeG87FCigc7KNHu2Pegh1XIT3lXjvz3Q==", "dev": true, "requires": { "@babel/types": "^7.16.7" } }, "@babel/helper-module-imports": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", "dev": true, "requires": { "@babel/types": "^7.16.7" } }, "@babel/helper-module-transforms": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz", "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", "@babel/helper-simple-access": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", "@babel/traverse": "^7.16.7", "@babel/types": "^7.16.7" }, "dependencies": { "@babel/template": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" } } } }, "@babel/helper-optimise-call-expression": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", "dev": true, "requires": { "@babel/types": "^7.16.7" } }, "@babel/helper-plugin-utils": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", "dev": true }, "@babel/helper-remap-async-to-generator": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.7.tgz", "integrity": "sha512-C3o117GnP/j/N2OWo+oepeWbFEKRfNaay+F1Eo5Mj3A1SRjyx+qaFhm23nlipub7Cjv2azdUUiDH+VlpdwUFRg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-wrap-function": "^7.16.7", "@babel/types": "^7.16.7" }, "dependencies": { "@babel/helper-annotate-as-pure": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dev": true, "requires": { "@babel/types": "^7.16.7" } } } }, "@babel/helper-replace-supers": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-member-expression-to-functions": "^7.16.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/traverse": "^7.16.7", "@babel/types": "^7.16.7" } }, "@babel/helper-simple-access": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz", "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==", "dev": true, "requires": { "@babel/types": "^7.16.7" } }, "@babel/helper-skip-transparent-expression-wrappers": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", "dev": true, "requires": { "@babel/types": "^7.16.0" } }, "@babel/helper-split-export-declaration": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", "dev": true, "requires": { "@babel/types": "^7.16.7" } }, "@babel/helper-validator-identifier": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", "dev": true }, "@babel/helper-validator-option": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", "dev": true }, "@babel/helper-wrap-function": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.7.tgz", "integrity": "sha512-7a9sABeVwcunnztZZ7WTgSw6jVYLzM1wua0Z4HIXm9S3/HC96WKQTkFgGEaj5W06SHHihPJ6Le6HzS5cGOQMNw==", "dev": true, "requires": { "@babel/helper-function-name": "^7.16.7", "@babel/template": "^7.16.7", "@babel/traverse": "^7.16.7", "@babel/types": "^7.16.7" }, "dependencies": { "@babel/template": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" } } } }, "@babel/helpers": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.7.tgz", "integrity": "sha512-9ZDoqtfY7AuEOt3cxchfii6C7GDyyMBffktR5B2jvWv8u2+efwvpnVKXMWzNehqy68tKgAfSwfdw/lWpthS2bw==", "dev": true, "requires": { "@babel/template": "^7.16.7", "@babel/traverse": "^7.16.7", "@babel/types": "^7.16.7" }, "dependencies": { "@babel/template": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7" } } } }, "@babel/highlight": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.7.tgz", "integrity": "sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.7.tgz", "integrity": "sha512-sR4eaSrnM7BV7QPzGfEX5paG/6wrZM3I0HDzfIAK06ESvo9oy3xBuVBxE3MbQaKNhvg8g/ixjMWo2CGpzpHsDA==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-proposal-optional-chaining": "^7.16.7" } }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.16.4", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz", "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.16.4", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", "dev": true, "requires": { "@babel/helper-create-class-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-proposal-class-static-block": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.7.tgz", "integrity": "sha512-dgqJJrcZoG/4CkMopzhPJjGxsIe9A8RlkQLnL/Vhhx8AA9ZuaRwGSlscSh42hazc7WSrya/IK7mTeoF0DP9tEw==", "dev": true, "requires": { "@babel/helper-create-class-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-dynamic-import": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-proposal-export-namespace-from": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.7.tgz", "integrity": "sha512-3O0Y4+dw94HA86qSg9IHfyPktgR7q3gpNVAeiKQd+8jBKFaU5NQS1Yatgo4wY+UFNuLjvxcSmzcsHqrhgTyBUA==", "dev": true, "requires": { "@babel/compat-data": "^7.16.4", "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.16.7" } }, "@babel/plugin-proposal-optional-catch-binding": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.7.tgz", "integrity": "sha512-7twV3pzhrRxSwHeIvFE6coPgvo+exNDOiGUMg39o2LiLo1Y+4aKpfkcLGcg1UHonzorCt7SNXnoMyCnnIOA8Sw==", "dev": true, "requires": { "@babel/helper-create-class-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-proposal-private-property-in-object": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-create-class-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "dependencies": { "@babel/helper-annotate-as-pure": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dev": true, "requires": { "@babel/types": "^7.16.7" } } } }, "@babel/plugin-proposal-unicode-property-regex": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-syntax-class-static-block": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-export-namespace-from": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5" } }, "@babel/plugin-transform-arrow-functions": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-async-to-generator": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz", "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.16.0", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.16.0" } }, "@babel/plugin-transform-block-scoped-functions": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-block-scoping": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-classes": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-optimise-call-expression": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", "globals": "^11.1.0" }, "dependencies": { "@babel/helper-annotate-as-pure": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dev": true, "requires": { "@babel/types": "^7.16.7" } } } }, "@babel/plugin-transform-computed-properties": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-destructuring": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.7.tgz", "integrity": "sha512-VqAwhTHBnu5xBVDCvrvqJbtLUa++qZaWC0Fgr2mqokBlulZARGyIvZDoqbPlPaKImQ9dKAcCzbv+ul//uqu70A==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-dotall-regex": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-duplicate-keys": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-exponentiation-operator": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", "dev": true, "requires": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-for-of": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-function-name": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-literals": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-member-expression-literals": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-modules-amd": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", "dev": true, "requires": { "@babel/helper-module-transforms": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.7.tgz", "integrity": "sha512-h2RP2kE7He1ZWKyAlanMZrAbdv+Acw1pA8dQZhE025WJZE2z0xzFADAinXA9fxd5bn7JnM+SdOGcndGx1ARs9w==", "dev": true, "requires": { "@babel/helper-module-transforms": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-simple-access": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-module-transforms": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", "dev": true, "requires": { "@babel/helper-module-transforms": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.7.tgz", "integrity": "sha512-kFy35VwmwIQwCjwrAQhl3+c/kr292i4KdLPKp5lPH03Ltc51qnFlIADoyPxc/6Naz3ok3WdYKg+KK6AH+D4utg==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.16.7" } }, "@babel/plugin-transform-new-target": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-object-super": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-replace-supers": "^7.16.7" } }, "@babel/plugin-transform-parameters": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-property-literals": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-regenerator": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", "dev": true, "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-runtime": { "version": "7.16.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.4.tgz", "integrity": "sha512-pru6+yHANMTukMtEZGC4fs7XPwg35v8sj5CIEmE+gEkFljFiVJxEWxx/7ZDkTK+iZRYo1bFXBtfIN95+K3cJ5A==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.16.0", "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.4.0", "babel-plugin-polyfill-regenerator": "^0.3.0", "semver": "^6.3.0" } }, "@babel/plugin-transform-shorthand-properties": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-spread": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" } }, "@babel/plugin-transform-sticky-regex": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-template-literals": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-typeof-symbol": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-unicode-escapes": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/plugin-transform-unicode-regex": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.16.7", "@babel/helper-plugin-utils": "^7.16.7" } }, "@babel/preset-env": { "version": "7.16.4", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz", "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==", "dev": true, "requires": { "@babel/compat-data": "^7.16.4", "@babel/helper-compilation-targets": "^7.16.3", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", "@babel/plugin-proposal-async-generator-functions": "^7.16.4", "@babel/plugin-proposal-class-properties": "^7.16.0", "@babel/plugin-proposal-class-static-block": "^7.16.0", "@babel/plugin-proposal-dynamic-import": "^7.16.0", "@babel/plugin-proposal-export-namespace-from": "^7.16.0", "@babel/plugin-proposal-json-strings": "^7.16.0", "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", "@babel/plugin-proposal-numeric-separator": "^7.16.0", "@babel/plugin-proposal-object-rest-spread": "^7.16.0", "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", "@babel/plugin-proposal-optional-chaining": "^7.16.0", "@babel/plugin-proposal-private-methods": "^7.16.0", "@babel/plugin-proposal-private-property-in-object": "^7.16.0", "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-transform-arrow-functions": "^7.16.0", "@babel/plugin-transform-async-to-generator": "^7.16.0", "@babel/plugin-transform-block-scoped-functions": "^7.16.0", "@babel/plugin-transform-block-scoping": "^7.16.0", "@babel/plugin-transform-classes": "^7.16.0", "@babel/plugin-transform-computed-properties": "^7.16.0", "@babel/plugin-transform-destructuring": "^7.16.0", "@babel/plugin-transform-dotall-regex": "^7.16.0", "@babel/plugin-transform-duplicate-keys": "^7.16.0", "@babel/plugin-transform-exponentiation-operator": "^7.16.0", "@babel/plugin-transform-for-of": "^7.16.0", "@babel/plugin-transform-function-name": "^7.16.0", "@babel/plugin-transform-literals": "^7.16.0", "@babel/plugin-transform-member-expression-literals": "^7.16.0", "@babel/plugin-transform-modules-amd": "^7.16.0", "@babel/plugin-transform-modules-commonjs": "^7.16.0", "@babel/plugin-transform-modules-systemjs": "^7.16.0", "@babel/plugin-transform-modules-umd": "^7.16.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", "@babel/plugin-transform-new-target": "^7.16.0", "@babel/plugin-transform-object-super": "^7.16.0", "@babel/plugin-transform-parameters": "^7.16.3", "@babel/plugin-transform-property-literals": "^7.16.0", "@babel/plugin-transform-regenerator": "^7.16.0", "@babel/plugin-transform-reserved-words": "^7.16.0", "@babel/plugin-transform-shorthand-properties": "^7.16.0", "@babel/plugin-transform-spread": "^7.16.0", "@babel/plugin-transform-sticky-regex": "^7.16.0", "@babel/plugin-transform-template-literals": "^7.16.0", "@babel/plugin-transform-typeof-symbol": "^7.16.0", "@babel/plugin-transform-unicode-escapes": "^7.16.0", "@babel/plugin-transform-unicode-regex": "^7.16.0", "@babel/preset-modules": "^0.1.5", "@babel/types": "^7.16.0", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.4.0", "babel-plugin-polyfill-regenerator": "^0.3.0", "core-js-compat": "^3.19.1", "semver": "^6.3.0" } }, "@babel/preset-modules": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" } }, "@babel/runtime": { "version": "7.16.3", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { "version": "7.13.10", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz", "integrity": "sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg==", "dev": true, "requires": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, "@babel/template": { "version": "7.16.0", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", "dev": true, "requires": { "@babel/code-frame": "^7.16.0", "@babel/parser": "^7.16.0", "@babel/types": "^7.16.0" } }, "@babel/traverse": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.7.tgz", "integrity": "sha512-8KWJPIb8c2VvY8AJrydh6+fVRo2ODx1wYBU2398xJVq0JomuLBZmVQzLPBblJgHIGYG4znCpUZUZ0Pt2vdmVYQ==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", "@babel/generator": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", "@babel/helper-function-name": "^7.16.7", "@babel/helper-hoist-variables": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", "@babel/parser": "^7.16.7", "@babel/types": "^7.16.7", "debug": "^4.1.0", "globals": "^11.1.0" }, "dependencies": { "@babel/generator": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.7.tgz", "integrity": "sha512-/ST3Sg8MLGY5HVYmrjOgL60ENux/HfO/CsUh7y4MalThufhE/Ff/6EibFDHi4jiDCaWfJKoqbE6oTh21c5hrRg==", "dev": true, "requires": { "@babel/types": "^7.16.7", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/types": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.7.tgz", "integrity": "sha512-E8HuV7FO9qLpx6OtoGfUQ2cjIYnbFwvZWYBS+87EwtdMvmUPJSwykpovFB+8insbpF0uJcpr8KMUi64XZntZcg==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", "to-fast-properties": "^2.0.0" } }, "@csstools/convert-colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", "dev": true }, "@dabh/diagnostics": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", "dev": true, "requires": { "colorspace": "1.1.x", "enabled": "2.0.x", "kuler": "^2.0.0" } }, "@discoveryjs/json-ext": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", "dev": true }, "@eslint/eslintrc": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.1.1", "espree": "^7.3.0", "globals": "^13.9.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "dependencies": { "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "espree": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" } }, "globals": { "version": "13.11.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true } } }, "@gar/promisify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz", "integrity": "sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==", "dev": true }, "@google-cloud/paginator": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.5.tgz", "integrity": "sha512-N4Uk4BT1YuskfRhKXBs0n9Lg2YTROZc6IMpkO/8DIHODtm5s3xY8K5vVBo23v/2XulY3azwITQlYWgT4GdLsUw==", "dev": true, "requires": { "arrify": "^2.0.0", "extend": "^3.0.2" } }, "@google-cloud/precise-date": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@google-cloud/precise-date/-/precise-date-2.0.3.tgz", "integrity": "sha512-+SDJ3ZvGkF7hzo6BGa8ZqeK3F6Z4+S+KviC9oOK+XCs3tfMyJCh/4j93XIWINgMMDIh9BgEvlw4306VxlXIlYA==", "dev": true }, "@google-cloud/projectify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-2.0.1.tgz", "integrity": "sha512-ZDG38U/Yy6Zr21LaR3BTiiLtpJl6RkPS/JwoRT453G+6Q1DhlV0waNf8Lfu+YVYGIIxgKnLayJRfYlFJfiI8iQ==", "dev": true }, "@google-cloud/promisify": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-2.0.3.tgz", "integrity": "sha512-d4VSA86eL/AFTe5xtyZX+ePUjE8dIFu2T8zmdeNBSa5/kNgXPCx/o/wbFNHAGLJdGnk1vddRuMESD9HbOC8irw==", "dev": true }, "@google-cloud/pubsub": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.10.0.tgz", "integrity": "sha512-XM/Fc6/W/LYzGH2pnhGLDR5E6JNZFMfzyUFP5bWgC4FK1KqIZ4g6hrnCCO38G4JfH2i1IuSQuefPF7FrZZo9tw==", "dev": true, "requires": { "@google-cloud/paginator": "^3.0.0", "@google-cloud/precise-date": "^2.0.0", "@google-cloud/projectify": "^2.0.0", "@google-cloud/promisify": "^2.0.0", "@opentelemetry/api": "^0.12.0", "@opentelemetry/tracing": "^0.12.0", "@types/duplexify": "^3.6.0", "@types/long": "^4.0.0", "arrify": "^2.0.0", "extend": "^3.0.2", "google-auth-library": "^7.0.0", "google-gax": "^2.9.2", "is-stream-ended": "^0.1.4", "lodash.snakecase": "^4.1.1", "p-defer": "^3.0.0" }, "dependencies": { "google-auth-library": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.0.3.tgz", "integrity": "sha512-6wJNYqY1QUr5I2lWaUkkzOT2b9OCNhNQrdFOt/bsBbGb7T7NCdEvrBsXraUm+KTUGk2xGlQ7m9RgUd4Llcw8NQ==", "dev": true, "requires": { "arrify": "^2.0.0", "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", "fast-text-encoding": "^1.0.0", "gaxios": "^4.0.0", "gcp-metadata": "^4.2.0", "gtoken": "^5.0.4", "jws": "^4.0.0", "lru-cache": "^6.0.0" } } } }, "@grpc/grpc-js": { "version": "1.2.12", "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.2.12.tgz", "integrity": "sha512-+gPCklP1eqIgrNPyzddYQdt9+GvZqPlLpIjIo+TveE+gbtp74VV1A2ju8ExeO8ma8f7MbpaGZx/KJPYVWL9eDw==", "dev": true, "requires": { "@types/node": ">=12.12.47", "google-auth-library": "^6.1.1", "semver": "^6.2.0" } }, "@grpc/proto-loader": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.6.tgz", "integrity": "sha512-DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ==", "dev": true, "requires": { "lodash.camelcase": "^4.3.0", "protobufjs": "^6.8.6" } }, "@humanwhocodes/config-array": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.0", "debug": "^4.1.1", "minimatch": "^3.0.4" } }, "@humanwhocodes/object-schema": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz", "integrity": "sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==", "dev": true }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" }, "dependencies": { "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" } }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" } }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true } } }, "@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true }, "@jridgewell/resolve-uri": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-1.0.0.tgz", "integrity": "sha512-9oLAnygRMi8Q5QkYEU4XWK04B+nuoXoxjRvRxgjuChkLZFBja0YPSgdZ7dZtwhncLBcQe/I/E+fLuk5qxcYVJA==", "dev": true }, "@jsdevtools/ono": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", "dev": true }, "@jsdevtools/rehype-inline-svg": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@jsdevtools/rehype-inline-svg/-/rehype-inline-svg-1.1.4.tgz", "integrity": "sha512-gwP4qL24RPW0FxG/MyHuiZAAF02KYiCu7LnVQWtsYOHPIQJ14HeDROOLr4ANviauYeoXM8dmtufRyguxF00xeg==", "dev": true, "requires": { "rehype-parse": "^7.0.1", "svgo": "^1.3.2", "unified": "^9.2.0" } }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "dev": true, "requires": { "call-me-maybe": "^1.0.1", "glob-to-regexp": "^0.3.0" } }, "@ngtools/webpack": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.1.2.tgz", "integrity": "sha512-F/KraxCCUjSn5nWVEQSuyVfnoE9j/bTcpIb+6e38/Hq/saPfsUoNiRjWlTAxCD44vHbMuVkJ/ZRZT6hdICAslw==", "dev": true, "requires": {} }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, "@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "@npmcli/fs": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.0.tgz", "integrity": "sha512-VhP1qZLXcrXRIaPoqb4YA55JQxLNF3jNR4T55IdOJa3+IFJKNYHtPvtXx8slmeMavj37vCzCfrqQM1vWLsYKLA==", "dev": true, "requires": { "@gar/promisify": "^1.0.1", "semver": "^7.3.5" }, "dependencies": { "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } } } }, "@npmcli/git": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", "dev": true, "requires": { "@npmcli/promise-spawn": "^1.3.2", "lru-cache": "^6.0.0", "mkdirp": "^1.0.4", "npm-pick-manifest": "^6.1.1", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^2.0.2" }, "dependencies": { "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "@npmcli/installed-package-contents": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", "dev": true, "requires": { "npm-bundled": "^1.1.1", "npm-normalize-package-bin": "^1.0.1" } }, "@npmcli/move-file": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", "dev": true, "requires": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" }, "dependencies": { "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } } } }, "@npmcli/node-gyp": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", "dev": true }, "@npmcli/promise-spawn": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", "dev": true, "requires": { "infer-owner": "^1.0.4" } }, "@npmcli/run-script": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", "dev": true, "requires": { "@npmcli/node-gyp": "^1.0.2", "@npmcli/promise-spawn": "^1.3.2", "node-gyp": "^8.2.0", "read-package-json-fast": "^2.0.1" }, "dependencies": { "are-we-there-yet": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", "dev": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" } }, "gauge": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.0.tgz", "integrity": "sha512-F8sU45yQpjQjxKkm1UOAhf0U/O0aFt//Fl7hsrNVto+patMHjs7dPI9mFOGUKbhrgKm0S3EjW3scMFuQmWSROw==", "dev": true, "requires": { "ansi-regex": "^5.0.1", "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.2", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.1", "signal-exit": "^3.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.2" } }, "node-gyp": { "version": "8.4.1", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", "dev": true, "requires": { "env-paths": "^2.2.0", "glob": "^7.1.4", "graceful-fs": "^4.2.6", "make-fetch-happen": "^9.1.0", "nopt": "^5.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", "semver": "^7.3.5", "tar": "^6.1.2", "which": "^2.0.2" } }, "npmlog": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.0.tgz", "integrity": "sha512-03ppFRGlsyUaQFbGC2C8QWJN/C/K7PsfyD9aQdhVKAQIH4sQBc8WASqFBP7O+Ut4d2oo5LoeoboB3cGdBZSp6Q==", "dev": true, "requires": { "are-we-there-yet": "^2.0.0", "console-control-strings": "^1.1.0", "gauge": "^4.0.0", "set-blocking": "^2.0.0" } }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "@opentelemetry/api": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-0.12.0.tgz", "integrity": "sha512-Dn4vU5GlaBrIWzLpsM6xbJwKHdlpwBQ4Bd+cL9ofJP3hKT8jBXpBpribmyaqAzrajzzl2Yt8uTa9rFVLfjDAvw==", "dev": true, "requires": { "@opentelemetry/context-base": "^0.12.0" } }, "@opentelemetry/context-base": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.12.0.tgz", "integrity": "sha512-UXwSsXo3F3yZ1dIBOG9ID8v2r9e+bqLWoizCtTb8rXtwF+N5TM7hzzvQz72o3nBU+zrI/D5e+OqAYK8ZgDd3DA==", "dev": true }, "@opentelemetry/core": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-0.12.0.tgz", "integrity": "sha512-oLZIkmTNWTJXzo1eA4dGu/S7wOVtylsgnEsCmhSJGhrJVDXm1eW/aGuNs3DVBeuxp0ZvQLAul3/PThsC3YrnzA==", "dev": true, "requires": { "@opentelemetry/api": "^0.12.0", "@opentelemetry/context-base": "^0.12.0", "semver": "^7.1.3" }, "dependencies": { "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } } } }, "@opentelemetry/resources": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-0.12.0.tgz", "integrity": "sha512-8cYvIKB68cyupc7D6SWzkLtt13mbjgxMahL4JKCM6hWPyiGSJlPFEAey4XFXI5LLpPZRYTPHLVoLqI/xwCFZZA==", "dev": true, "requires": { "@opentelemetry/api": "^0.12.0", "@opentelemetry/core": "^0.12.0" } }, "@opentelemetry/semantic-conventions": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-0.12.0.tgz", "integrity": "sha512-BuCcDW0uLNYYTns0/LwXkJ8lp8aDm7kpS+WunEmPAPRSCe6ciOYRvzn5reqJfX93rf+6A3U2SgrBnCTH+0qoQQ==", "dev": true }, "@opentelemetry/tracing": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@opentelemetry/tracing/-/tracing-0.12.0.tgz", "integrity": "sha512-2TUGhTGkhgnxTciHCNAILPSeyXageJewRqfP9wOrx65sKd/jgvNYoY8nYf4EVWVMirDOxKDsmYgUkjdQrwb2dg==", "dev": true, "requires": { "@opentelemetry/api": "^0.12.0", "@opentelemetry/context-base": "^0.12.0", "@opentelemetry/core": "^0.12.0", "@opentelemetry/resources": "^0.12.0", "@opentelemetry/semantic-conventions": "^0.12.0" } }, "@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=", "dev": true }, "@protobufjs/base64": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", "dev": true }, "@protobufjs/codegen": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", "dev": true }, "@protobufjs/eventemitter": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=", "dev": true }, "@protobufjs/fetch": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", "dev": true, "requires": { "@protobufjs/aspromise": "^1.1.1", "@protobufjs/inquire": "^1.1.0" } }, "@protobufjs/float": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=", "dev": true }, "@protobufjs/inquire": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=", "dev": true }, "@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=", "dev": true }, "@protobufjs/pool": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=", "dev": true }, "@protobufjs/utf8": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=", "dev": true }, "@schematics/angular": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.1.2.tgz", "integrity": "sha512-OMbuOsnzUFjIGeo99NYwIPwjX6udJAiT5Sj5K7QZZYj66HuAqNBMV57J8GPA56edx5mOHZZApWMjXLlOxRXbJA==", "dev": true, "requires": { "@angular-devkit/core": "13.1.2", "@angular-devkit/schematics": "13.1.2", "jsonc-parser": "3.0.0" } }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", "dev": true }, "@socket.io/base64-arraybuffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", "dev": true }, "@stackblitz/sdk": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/@stackblitz/sdk/-/sdk-1.5.3.tgz", "integrity": "sha512-4fCa1YGdGXiWsCEsFQN+O6RP4JibmEMO58S9wzbFSko6lu1zLqkTBomRt1LCF7TImWeJaSSMDMqin58bey+N9Q==" }, "@swirly/parser": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/parser/-/parser-0.17.6.tgz", "integrity": "sha512-Z6OrvKwmKsbxPbOc4fmSLowuho9Tt7m7SGsG4tkEIls61zvOb0P+XEvcTX3fEtUtuDL5CLMDRqfy4fV/J73SSQ==", "dev": true, "requires": { "@swirly/parser-rxjs": "^0.17.6" } }, "@swirly/parser-rxjs": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/parser-rxjs/-/parser-rxjs-0.17.6.tgz", "integrity": "sha512-cmJdSFokjNQHrdJjvs1oXwsNQfMbDeYdkq8WmHFq5AbK1kM5MT/RrDnyoRm6CLqrcqO6b/CBlJqjDIaPXL7KIg==", "dev": true }, "@swirly/renderer": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/renderer/-/renderer-0.17.6.tgz", "integrity": "sha512-pp4g9VevkYUPh+wwuOSPPblVHLtw3UcoF/OfAG0BbaC6DcHLsDEOk2CCZuidUb3ozvwo1fdHZKeWbs+ceXckOg==", "dev": true, "requires": { "@swirly/theme-default-light": "^0.17.6", "simple-sha1": "^3.1.0" } }, "@swirly/renderer-node": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/renderer-node/-/renderer-node-0.17.6.tgz", "integrity": "sha512-eUkgp/zB5k7HaUO1T2KLyfihZpCTgJ3h9clnNGNUqL/lewqe2v1q/oqLXDJKhfSsefH9C+x/J2+hNFKo2kmYMg==", "dev": true, "requires": { "@swirly/renderer": "^0.17.6", "xmldom": "^0.5.0" } }, "@swirly/theme-default-base": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/theme-default-base/-/theme-default-base-0.17.6.tgz", "integrity": "sha512-HbFMyL9xZjIzDhWzhAHoU7slfkET2euyLCB7lzOlRprPzfjatMTmCL30ji+Z6wRdQEITsrERCwiy5hfyo+rQEQ==", "dev": true }, "@swirly/theme-default-light": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/theme-default-light/-/theme-default-light-0.17.6.tgz", "integrity": "sha512-KS6CmOcBqAVkJpx+K0rsNSSKGONrWsz7o7xT6Z4gOw0IFGwc/6/xjxvXGrMttbqutkGVv1vZEbl+wrAGDQ84WA==", "dev": true, "requires": { "@swirly/theme-default-base": "^0.17.6" } }, "@swirly/types": { "version": "0.17.6", "resolved": "https://registry.npmjs.org/@swirly/types/-/types-0.17.6.tgz", "integrity": "sha512-BHAEL95TTC1Trn2xHl5zJFyPDiDdGSo2GM32SLu1KC000vunjFPRvOVnfA8f9WflJz/It46ZiMaXl4a6g8F9ag==", "dev": true }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", "dev": true, "requires": { "defer-to-connect": "^1.0.1" } }, "@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, "@types/archiver": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@types/archiver/-/archiver-5.1.0.tgz", "integrity": "sha512-baFOhanb/hxmcOd1Uey2TfFg43kTSmM6py1Eo7Rjbv/ivcl7PXLhY0QgXGf50Hx/eskGCFqPfhs/7IZLb15C5g==", "dev": true, "requires": { "@types/glob": "*" } }, "@types/component-emitter": { "version": "1.2.11", "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", "dev": true }, "@types/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", "dev": true }, "@types/cors": { "version": "2.8.12", "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", "dev": true }, "@types/duplexify": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz", "integrity": "sha512-5zOA53RUlzN74bvrSGwjudssD9F3a797sDZQkiYpUOxW+WHaXTCPz4/d5Dgi6FKnOqZ2CpaTo0DhgIfsXAOE/A==", "dev": true, "requires": { "@types/node": "*" } }, "@types/eslint": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", "dev": true, "requires": { "@types/estree": "*", "@types/json-schema": "*" } }, "@types/eslint-scope": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", "dev": true, "requires": { "@types/eslint": "*", "@types/estree": "*" } }, "@types/estree": { "version": "0.0.50", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", "dev": true }, "@types/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", "dev": true, "requires": { "@types/minimatch": "*", "@types/node": "*" } }, "@types/hast": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.1.tgz", "integrity": "sha512-viwwrB+6xGzw+G1eWpF9geV3fnsDgXqHG+cqgiHrvQfDUW5hzhCyV7Sy3UJxhfRFBsgky2SSW33qi/YrIkjX5Q==", "dev": true, "requires": { "@types/unist": "*" } }, "@types/http-proxy": { "version": "1.17.8", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", "dev": true, "requires": { "@types/node": "*" } }, "@types/jasmine": { "version": "3.6.9", "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.9.tgz", "integrity": "sha512-B53NIwMj/AO0O+xfSWLYmKB0Mo6TYxfv2Mk8/c1T2w/e38t55iaPR6p7pHXTTtqfTmevPK3i8T1YweYFTZlxDw==", "dev": true }, "@types/jasminewd2": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", "dev": true, "requires": { "@types/jasmine": "*" } }, "@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "@types/long": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==", "dev": true }, "@types/mdast": { "version": "3.0.10", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", "dev": true, "requires": { "@types/unist": "*" } }, "@types/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA==", "dev": true }, "@types/node": { "version": "12.20.7", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.7.tgz", "integrity": "sha512-gWL8VUkg8VRaCAUgG9WmhefMqHmMblxe2rVpMF86nZY/+ZysU+BkAp+3cz03AixWDSSz0ks5WX59yAhv/cDwFA==", "dev": true }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, "@types/parse5": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==", "dev": true }, "@types/q": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", "dev": true }, "@types/retry": { "version": "0.12.1", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==", "dev": true }, "@types/selenium-webdriver": { "version": "3.0.17", "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", "dev": true }, "@types/svgo": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/svgo/-/svgo-1.3.5.tgz", "integrity": "sha512-y9Pw8IK50OqFRDpdI9Is29KlWiENVW9FDvlTmGHelvTfR2brYFJbsClvulZfeq6YKacFrDsG9a39w0kJZdHLaw==", "dev": true }, "@types/unist": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.3.tgz", "integrity": "sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==", "dev": true }, "@types/vfile": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/vfile/-/vfile-3.0.2.tgz", "integrity": "sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==", "dev": true, "requires": { "@types/node": "*", "@types/unist": "*", "@types/vfile-message": "*" } }, "@types/vfile-message": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-2.0.0.tgz", "integrity": "sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==", "dev": true, "requires": { "vfile-message": "*" } }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dev": true, "requires": { "@webassemblyjs/helper-numbers": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, "@webassemblyjs/floating-point-hex-parser": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", "dev": true }, "@webassemblyjs/helper-api-error": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", "dev": true }, "@webassemblyjs/helper-buffer": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", "dev": true }, "@webassemblyjs/helper-numbers": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, "requires": { "@webassemblyjs/floating-point-hex-parser": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", "dev": true }, "@webassemblyjs/helper-wasm-section": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", "@webassemblyjs/wasm-gen": "1.11.1" } }, "@webassemblyjs/ieee754": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", "dev": true }, "@webassemblyjs/wasm-edit": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", "@webassemblyjs/helper-wasm-section": "1.11.1", "@webassemblyjs/wasm-gen": "1.11.1", "@webassemblyjs/wasm-opt": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", "@webassemblyjs/wast-printer": "1.11.1" } }, "@webassemblyjs/wasm-gen": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", "@webassemblyjs/ieee754": "1.11.1", "@webassemblyjs/leb128": "1.11.1", "@webassemblyjs/utf8": "1.11.1" } }, "@webassemblyjs/wasm-opt": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-buffer": "1.11.1", "@webassemblyjs/wasm-gen": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1" } }, "@webassemblyjs/wasm-parser": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/helper-api-error": "1.11.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.1", "@webassemblyjs/ieee754": "1.11.1", "@webassemblyjs/leb128": "1.11.1", "@webassemblyjs/utf8": "1.11.1" } }, "@webassemblyjs/wast-printer": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, "requires": { "@webassemblyjs/ast": "1.11.1", "@xtuc/long": "4.2.2" } }, "@webcomponents/custom-elements": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@webcomponents/custom-elements/-/custom-elements-1.5.0.tgz", "integrity": "sha512-c+7jPQCs9h/BYVcZ2Kna/3tsl3A/9EyXfvWjp5RiTDm1OpTcbZaCa1z4RNcTe/hUtXaqn64JjNW1yrWT+rZ8gg==" }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, "@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, "@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, "a-sync-waterfall": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", "dev": true }, "abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", "dev": true }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dev": true, "requires": { "event-target-shim": "^5.0.0" } }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, "requires": { "mime-types": "~2.1.24", "negotiator": "0.6.2" } }, "acorn": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true }, "acorn-globals": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", "dev": true, "requires": { "acorn": "^6.0.1", "acorn-walk": "^6.0.1" } }, "acorn-import-assertions": { "version": "1.7.6", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz", "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==", "dev": true, "requires": {} }, "acorn-jsx": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true, "requires": {} }, "acorn-walk": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", "dev": true }, "adjust-sourcemap-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", "dev": true, "requires": { "loader-utils": "^2.0.0", "regex-parser": "^2.2.11" } }, "adm-zip": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", "dev": true }, "agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "requires": { "debug": "4" } }, "agentkeepalive": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.0.tgz", "integrity": "sha512-0PhAp58jZNw13UJv7NVdTGb0ZcghHUb3DrZ046JiiJY/BOaTTpbwdHq2VObPCBV8M2GPh7sgrJ3AQ8Ey468LJw==", "dev": true, "requires": { "debug": "^4.1.0", "depd": "^1.1.2", "humanize-ms": "^1.2.1" } }, "aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "requires": { "ajv": "^8.0.0" }, "dependencies": { "ajv": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true } } }, "ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, "requires": {} }, "ambi": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ambi/-/ambi-3.2.0.tgz", "integrity": "sha512-nj5sHLPFd7u2OLmHdFs4DHt3gK6edpNw35hTRIKyI/Vd2Th5e4io50rw1lhmCdUNO2Mm4/4FkHmv6shEANAWcw==", "dev": true, "requires": { "editions": "^2.1.0", "typechecker": "^4.3.0" } }, "ansi-align": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "dev": true, "requires": { "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "ansi-escapes": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { "type-fest": "^0.21.3" } }, "ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" } }, "ansicolors": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", "dev": true }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "app-root-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", "dev": true }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "archiver": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", "dev": true, "requires": { "archiver-utils": "^2.1.0", "async": "^2.6.3", "buffer-crc32": "^0.2.1", "glob": "^7.1.4", "readable-stream": "^3.4.0", "tar-stream": "^2.1.0", "zip-stream": "^2.1.2" }, "dependencies": { "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } } } }, "archiver-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", "dev": true, "requires": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", "lodash.defaults": "^4.2.0", "lodash.difference": "^4.5.0", "lodash.flatten": "^4.4.0", "lodash.isplainobject": "^4.0.6", "lodash.union": "^4.6.0", "normalize-path": "^3.0.0", "readable-stream": "^2.0.0" } }, "are-we-there-yet": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "optional": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" } }, "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, "aria-query": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", "dev": true, "requires": { "ast-types-flow": "0.0.7", "commander": "^2.11.0" } }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, "array-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", "dev": true }, "array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, "array-union": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", "dev": true }, "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "arrify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", "dev": true }, "as-array": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/as-array/-/as-array-2.0.0.tgz", "integrity": "sha1-TwSAXYf4/OjlEbwhCPjl46KH1Uc=", "dev": true }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "dev": true }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { "safer-buffer": "~2.1.0" } }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, "ast-types": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", "dev": true, "requires": { "tslib": "^2.0.1" } }, "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", "dev": true }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, "async": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "dev": true, "requires": { "lodash": "^4.17.14" } }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", "dev": true }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, "autoprefixer": { "version": "9.8.6", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", "dev": true, "requires": { "browserslist": "^4.12.0", "caniuse-lite": "^1.0.30001109", "colorette": "^1.2.1", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", "postcss": "^7.0.32", "postcss-value-parser": "^4.1.0" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "axe-core": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.1.3.tgz", "integrity": "sha512-vwPpH4Aj4122EW38mxO/fxhGKtwWTMLDIJfZ1He0Edbtjcfna/R3YB67yVhezUMzqc3Jr3+Ii50KRntlENL4xQ==", "dev": true }, "axobject-query": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", "dev": true, "requires": { "ast-types-flow": "0.0.7" } }, "babel-loader": { "version": "8.2.3", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", "dev": true, "requires": { "find-cache-dir": "^3.3.1", "loader-utils": "^1.4.0", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, "dependencies": { "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { "minimist": "^1.2.0" } }, "loader-utils": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^1.0.1" } }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" } } } }, "babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "dev": true, "requires": { "object.assign": "^4.1.0" } }, "babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-instrument": "^5.0.4", "test-exclude": "^6.0.0" } }, "babel-plugin-polyfill-corejs2": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", "dev": true, "requires": { "@babel/compat-data": "^7.13.11", "@babel/helper-define-polyfill-provider": "^0.3.0", "semver": "^6.1.1" } }, "babel-plugin-polyfill-corejs3": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", "dev": true, "requires": { "@babel/helper-define-polyfill-provider": "^0.3.0", "core-js-compat": "^3.18.0" } }, "babel-plugin-polyfill-regenerator": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", "dev": true, "requires": { "@babel/helper-define-polyfill-provider": "^0.3.0" } }, "bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", "dev": true }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, "base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true }, "basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", "dev": true, "requires": { "safe-buffer": "5.1.2" }, "dependencies": { "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true } } }, "basic-auth-connect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=", "dev": true }, "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { "tweetnacl": "^0.14.3" } }, "big-integer": { "version": "1.6.48", "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==", "dev": true }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, "bignumber.js": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", "dev": true }, "binary": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", "dev": true, "requires": { "buffers": "~0.1.1", "chainsaw": "~0.1.0" } }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, "optional": true, "requires": { "file-uri-to-path": "1.0.0" } }, "bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "requires": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" }, "dependencies": { "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } } } }, "blakejs": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=", "dev": true }, "blocking-proxy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", "dev": true, "requires": { "minimist": "^1.2.0" } }, "body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "dev": true, "requires": { "bytes": "3.1.0", "content-type": "~1.0.4", "debug": "2.6.9", "depd": "~1.1.2", "http-errors": "1.7.2", "iconv-lite": "0.4.24", "on-finished": "~2.3.0", "qs": "6.7.0", "raw-body": "2.4.0", "type-is": "~1.6.17" }, "dependencies": { "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "dev": true }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", "dev": true } } }, "bonjour": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, "requires": { "array-flatten": "^2.1.0", "deep-equal": "^1.0.1", "dns-equal": "^1.0.0", "dns-txt": "^2.0.2", "multicast-dns": "^6.0.1", "multicast-dns-service-types": "^1.1.0" } }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", "dev": true }, "boxen": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "dev": true, "requires": { "ansi-align": "^3.0.0", "camelcase": "^5.3.1", "chalk": "^3.0.0", "cli-boxes": "^2.2.0", "string-width": "^4.1.0", "term-size": "^2.1.0", "type-fest": "^0.8.1", "widest-line": "^3.1.0" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } } }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { "fill-range": "^7.0.1" } }, "browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, "browserslist": { "version": "4.19.1", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", "dev": true, "requires": { "caniuse-lite": "^1.0.30001286", "electron-to-chromium": "^1.4.17", "escalade": "^3.1.1", "node-releases": "^2.0.1", "picocolors": "^1.0.0" } }, "browserstack": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", "dev": true, "requires": { "https-proxy-agent": "^2.2.1" }, "dependencies": { "agent-base": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, "requires": { "es6-promisify": "^5.0.0" } }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" } }, "https-proxy-agent": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "requires": { "agent-base": "^4.3.0", "debug": "^3.1.0" } } } }, "buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", "dev": true }, "buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", "dev": true }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "buffer-indexof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", "dev": true }, "buffer-indexof-polyfill": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", "dev": true }, "buffers": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", "dev": true }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "builtins": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", "dev": true }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, "cacache": { "version": "15.3.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", "dev": true, "requires": { "@npmcli/fs": "^1.0.0", "@npmcli/move-file": "^1.0.1", "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "glob": "^7.1.4", "infer-owner": "^1.0.4", "lru-cache": "^6.0.0", "minipass": "^3.1.1", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.2", "mkdirp": "^1.0.3", "p-map": "^4.0.0", "promise-inflight": "^1.0.1", "rimraf": "^3.0.2", "ssri": "^8.0.1", "tar": "^6.0.2", "unique-filename": "^1.1.1" }, "dependencies": { "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } } } }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", "get-value": "^2.0.6", "has-value": "^1.0.0", "isobject": "^3.0.1", "set-value": "^2.0.0", "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" } }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "dev": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", "keyv": "^3.0.0", "lowercase-keys": "^2.0.0", "normalize-url": "^4.1.0", "responselike": "^1.0.2" }, "dependencies": { "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { "pump": "^3.0.0" } }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true }, "normalize-url": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "dev": true } } }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" } }, "call-me-maybe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", "dev": true }, "camel-case": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { "no-case": "^2.2.0", "upper-case": "^1.1.1" } }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "caniuse-lite": { "version": "1.0.30001298", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001298.tgz", "integrity": "sha512-AcKqikjMLlvghZL/vfTHorlQsLDhGRalYf1+GmWCf5SCMziSGjRYQW/JEksj14NaYHIR6KIhrFAy0HV5C25UzQ==", "dev": true }, "canonical-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", "dev": true }, "canonicalize": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.5.tgz", "integrity": "sha512-mAjKJPIyP0xqqv6IAkvso07StOmz6cmGtNDg3pXCSzXVZOqka7StIkAhJl/zHOi4M2CgpYfD6aeRWbnrmtvBEA==", "dev": true }, "cardinal": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", "dev": true, "requires": { "ansicolors": "~0.3.2", "redeyed": "~2.1.0" } }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, "catharsis": { "version": "0.8.11", "resolved": "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz", "integrity": "sha512-a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==", "dev": true, "requires": { "lodash": "^4.17.14" } }, "ccount": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", "dev": true }, "chainsaw": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", "dev": true, "requires": { "traverse": ">=0.3.0 <0.4" } }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "change-case": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.0.tgz", "integrity": "sha1-bJyONfh5CHCoK2sHRb6MPL75sIE=", "dev": true, "requires": { "camel-case": "^3.0.0", "constant-case": "^2.0.0", "dot-case": "^2.1.0", "header-case": "^1.0.0", "is-lower-case": "^1.1.0", "is-upper-case": "^1.1.0", "lower-case": "^1.1.1", "lower-case-first": "^1.0.0", "no-case": "^2.2.0", "param-case": "^2.1.0", "pascal-case": "^2.0.0", "path-case": "^2.1.0", "sentence-case": "^2.1.0", "snake-case": "^2.1.0", "swap-case": "^1.1.0", "title-case": "^2.1.0", "upper-case": "^1.1.1", "upper-case-first": "^1.1.0" } }, "character-entities": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", "dev": true }, "character-entities-html4": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz", "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==", "dev": true }, "character-entities-legacy": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", "dev": true }, "character-reference-invalid": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "dev": true }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "charenc": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", "dev": true }, "chokidar": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", "dev": true, "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", "fsevents": "~2.3.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "dependencies": { "fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, "optional": true } } }, "chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, "chrome-launcher": { "version": "0.13.4", "resolved": "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.4.tgz", "integrity": "sha512-nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==", "dev": true, "requires": { "@types/node": "*", "escape-string-regexp": "^1.0.5", "is-wsl": "^2.2.0", "lighthouse-logger": "^1.0.0", "mkdirp": "^0.5.3", "rimraf": "^3.0.2" }, "dependencies": { "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } } } }, "chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "circular-dependency-plugin": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", "dev": true, "requires": {} }, "cjson": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.5.0.tgz", "integrity": "sha1-oPSGAeAWFk37LG2JHjgMlsramDk=", "dev": true, "requires": { "json-parse-helpfulerror": "^1.0.3" } }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } } } }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, "cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true }, "cli-color": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz", "integrity": "sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==", "dev": true, "requires": { "ansi-regex": "^2.1.1", "d": "1", "es5-ext": "^0.10.46", "es6-iterator": "^2.0.3", "memoizee": "^0.4.14", "timers-ext": "^0.1.5" }, "dependencies": { "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true } } }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { "restore-cursor": "^3.1.0" } }, "cli-spinners": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", "dev": true }, "cli-table": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz", "integrity": "sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==", "dev": true, "requires": { "colors": "1.0.3" } }, "cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", "shallow-clone": "^3.0.0" } }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { "mimic-response": "^1.0.0" } }, "clonedeep": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/clonedeep/-/clonedeep-2.0.0.tgz", "integrity": "sha1-jOygd39He78x/oyHGq9jo5C7wnI=", "dev": true }, "coa": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", "dev": true, "requires": { "@types/q": "^1.5.1", "chalk": "^2.4.1", "q": "^1.1.2" } }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", "dev": true }, "codelyzer": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", "dev": true, "requires": { "@angular/compiler": "9.0.0", "@angular/core": "9.0.0", "app-root-path": "^3.0.0", "aria-query": "^3.0.0", "axobject-query": "2.0.2", "css-selector-tokenizer": "^0.7.1", "cssauron": "^1.4.0", "damerau-levenshtein": "^1.0.4", "rxjs": "^6.5.3", "semver-dsl": "^1.0.1", "source-map": "^0.5.7", "sprintf-js": "^1.1.2", "tslib": "^1.10.0", "zone.js": "~0.10.3" }, "dependencies": { "@angular/compiler": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", "dev": true, "requires": {} }, "@angular/core": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", "dev": true, "requires": {} }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "sprintf-js": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", "dev": true }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "zone.js": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==", "dev": true } } }, "collapse-white-space": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", "dev": true }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" } }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "color-string": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", "dev": true, "requires": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, "color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true }, "colorette": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", "dev": true }, "colors": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", "dev": true }, "colorspace": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", "dev": true, "requires": { "color": "3.0.x", "text-hex": "1.0.x" }, "dependencies": { "color": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", "dev": true, "requires": { "color-convert": "^1.9.1", "color-string": "^1.5.2" } } } }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { "delayed-stream": "~1.0.0" } }, "comma-separated-tokens": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", "dev": true }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "compare-semver": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/compare-semver/-/compare-semver-1.1.0.tgz", "integrity": "sha1-fAp5onu4C2xplERfgpWCWdPQIVM=", "dev": true, "requires": { "semver": "^5.0.1" }, "dependencies": { "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, "compress-commons": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", "dev": true, "requires": { "buffer-crc32": "^0.2.13", "crc32-stream": "^3.0.1", "normalize-path": "^3.0.0", "readable-stream": "^2.3.6" } }, "compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "requires": { "mime-db": ">= 1.43.0 < 2" } }, "compression": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, "requires": { "accepts": "~1.3.5", "bytes": "3.0.0", "compressible": "~2.0.16", "debug": "2.6.9", "on-headers": "~1.0.2", "safe-buffer": "5.1.2", "vary": "~1.1.2" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true } } }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" } }, "concurrently": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-5.3.0.tgz", "integrity": "sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ==", "dev": true, "requires": { "chalk": "^2.4.2", "date-fns": "^2.0.1", "lodash": "^4.17.15", "read-pkg": "^4.0.1", "rxjs": "^6.5.2", "spawn-command": "^0.0.2-1", "supports-color": "^6.1.0", "tree-kill": "^1.2.2", "yargs": "^13.3.0" }, "dependencies": { "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, "requires": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", "make-dir": "^3.0.0", "unique-string": "^2.0.0", "write-file-atomic": "^3.0.0", "xdg-basedir": "^4.0.0" }, "dependencies": { "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" } } } }, "connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, "requires": { "debug": "2.6.9", "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", "dev": true }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", "dev": true }, "constant-case": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", "dev": true, "requires": { "snake-case": "^2.1.0", "upper-case": "^1.1.1" } }, "content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", "dev": true, "requires": { "safe-buffer": "5.1.2" }, "dependencies": { "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true } } }, "content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", "dev": true }, "convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" }, "dependencies": { "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true } } }, "cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", "dev": true }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, "copy-anything": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", "dev": true, "requires": { "is-what": "^3.12.0" } }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, "copy-webpack-plugin": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.0.0.tgz", "integrity": "sha512-tuCVuFMBbRsb7IH0q1CUb50/Skv+7a6c7DJ+xi4fAbOzNLTYVMUTPnf8uGvKPtmqTvzYBrfEFo7YgP4TsUWmtg==", "dev": true, "requires": { "fast-glob": "^3.2.7", "glob-parent": "^6.0.1", "globby": "^12.0.2", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, "dependencies": { "ajv": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, "ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.3" } }, "glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "requires": { "is-glob": "^4.0.3" } }, "globby": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-12.0.2.tgz", "integrity": "sha512-lAsmb/5Lww4r7MM9nCCliDZVIKbZTavrsunAsHLr9oHthrZP1qi7/gAnHOsUs9bLvEt2vKVJhHmxuL7QbDuPdQ==", "dev": true, "requires": { "array-union": "^3.0.1", "dir-glob": "^3.0.1", "fast-glob": "^3.2.7", "ignore": "^5.1.8", "merge2": "^1.4.1", "slash": "^4.0.0" } }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" } }, "slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", "dev": true } } }, "core-js-compat": { "version": "3.20.2", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.2.tgz", "integrity": "sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg==", "dev": true, "requires": { "browserslist": "^4.19.1", "semver": "7.0.0" }, "dependencies": { "semver": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", "dev": true } } }, "core-js-pure": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.9.1.tgz", "integrity": "sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A==", "dev": true }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cors": { "version": "2.8.5", "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, "requires": { "object-assign": "^4", "vary": "^1" } }, "corser": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/corser/-/corser-2.0.1.tgz", "integrity": "sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c=", "dev": true }, "cosmiconfig": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" }, "dependencies": { "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } } } }, "crc": { "version": "3.8.0", "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", "dev": true, "requires": { "buffer": "^5.1.0" }, "dependencies": { "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "requires": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } } } }, "crc-32": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", "dev": true, "requires": { "exit-on-epipe": "~1.0.1", "printj": "~1.1.0" } }, "crc32-stream": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", "dev": true, "requires": { "crc": "^3.4.4", "readable-stream": "^3.4.0" }, "dependencies": { "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } } } }, "critters": { "version": "0.0.15", "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.15.tgz", "integrity": "sha512-AE7hkXb3eZUbEvS1SKZa+OU4o2kUOXtzVeE/2E/mjU/0mV1wpBT1HfUCWVRS4zwvkBNJ0AQYsVjAoFm+kIhfdw==", "dev": true, "requires": { "chalk": "^4.1.0", "css-select": "^4.1.3", "parse5": "^6.0.1", "parse5-htmlparser2-tree-adapter": "^6.0.1", "postcss": "^8.3.7", "pretty-bytes": "^5.3.0" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "css-select": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", "dev": true, "requires": { "boolbase": "^1.0.0", "css-what": "^5.1.0", "domhandler": "^4.3.0", "domutils": "^2.8.0", "nth-check": "^2.0.1" } }, "css-what": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", "dev": true }, "dom-serializer": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", "dev": true, "requires": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" } }, "domelementtype": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", "dev": true }, "domhandler": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", "dev": true, "requires": { "domelementtype": "^2.2.0" } }, "domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "requires": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" } }, "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "nth-check": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", "dev": true, "requires": { "boolbase": "^1.0.0" } }, "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "cross-env": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", "dev": true, "requires": { "cross-spawn": "^6.0.5" } }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" }, "dependencies": { "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "crypt": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", "dev": true }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, "csp_evaluator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/csp_evaluator/-/csp_evaluator-1.0.1.tgz", "integrity": "sha512-9L57/vkuwH1tJv9Sw9t13xKGKyRR7OKn/pizcLCHK/83WH+sqRav0JCFBmBLmpurQAcz5usU3efS1rabOPV/qA==", "dev": true }, "css": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", "dev": true, "requires": { "inherits": "^2.0.4", "source-map": "^0.6.1", "source-map-resolve": "^0.6.0" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-resolve": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", "dev": true, "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0" } } } }, "css-blank-pseudo": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", "dev": true, "requires": { "postcss": "^7.0.5" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "css-has-pseudo": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", "dev": true, "requires": { "postcss": "^7.0.6", "postcss-selector-parser": "^5.0.0-rc.4" }, "dependencies": { "cssesc": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "postcss-selector-parser": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { "cssesc": "^2.0.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "css-loader": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", "dev": true, "requires": { "icss-utils": "^5.1.0", "postcss": "^8.2.15", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.1.0", "semver": "^7.3.5" }, "dependencies": { "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } } } }, "css-prefers-color-scheme": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", "dev": true, "requires": { "postcss": "^7.0.5" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "css-select": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", "dev": true, "requires": { "boolbase": "^1.0.0", "css-what": "^3.2.1", "domutils": "^1.7.0", "nth-check": "^1.0.2" } }, "css-select-base-adapter": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", "dev": true }, "css-selector-parser": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.4.1.tgz", "integrity": "sha512-HYPSb7y/Z7BNDCOrakL4raGO2zltZkbeXyAd6Tg9obzix6QhzxCotdBl6VT0Dv4vZfJGVz3WL/xaEI9Ly3ul0g==", "dev": true }, "css-selector-tokenizer": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", "dev": true, "requires": { "cssesc": "^3.0.0", "fastparse": "^1.1.2" } }, "css-tree": { "version": "1.0.0-alpha.37", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", "dev": true, "requires": { "mdn-data": "2.0.4", "source-map": "^0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "css-what": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", "dev": true }, "cssauron": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", "dev": true, "requires": { "through": "X.X.X" } }, "cssdb": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==", "dev": true }, "cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, "csso": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, "requires": { "css-tree": "^1.1.2" }, "dependencies": { "css-tree": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", "dev": true, "requires": { "mdn-data": "2.0.14", "source-map": "^0.6.1" } }, "mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", "dev": true }, "cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "requires": { "cssom": "~0.3.6" }, "dependencies": { "cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true } } }, "csv-streamify": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/csv-streamify/-/csv-streamify-3.0.4.tgz", "integrity": "sha1-TLYUxX4/KZzKF7Y/3LStFnd39Ho=", "dev": true, "requires": { "through2": "2.0.1" }, "dependencies": { "process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", "dev": true }, "readable-stream": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", "isarray": "~1.0.0", "process-nextick-args": "~1.0.6", "string_decoder": "~0.10.x", "util-deprecate": "~1.0.1" } }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "through2": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=", "dev": true, "requires": { "readable-stream": "~2.0.0", "xtend": "~4.0.0" } } } }, "custom-event": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", "dev": true }, "cycle": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=", "dev": true }, "d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "dev": true, "requires": { "es5-ext": "^0.10.50", "type": "^1.0.1" } }, "damerau-levenshtein": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", "dev": true }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { "assert-plus": "^1.0.0" } }, "data-uri-to-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", "dev": true }, "data-urls": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", "dev": true, "requires": { "abab": "^2.0.0", "whatwg-mimetype": "^2.2.0", "whatwg-url": "^7.0.0" } }, "date-fns": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.19.0.tgz", "integrity": "sha512-X3bf2iTPgCAQp9wvjOQytnf5vO5rESYRXlPIVcgSbtT5OTScPcsf9eZU+B/YIkKAtYr5WeCii58BgATrNitlWg==", "dev": true }, "date-format": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.3.tgz", "integrity": "sha512-7P3FyqDcfeznLZp2b+OMitV9Sz2lUnsT87WaTat9nVwqsBkTzPG3lPLNwW3en6F4pHUiWzr6vb8CLhjdK9bcxQ==", "dev": true }, "dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==" }, "debug": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", "dev": true, "requires": { "ms": "2.1.2" } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { "mimic-response": "^1.0.0" } }, "deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", "dev": true, "requires": { "is-arguments": "^1.0.4", "is-date-object": "^1.0.1", "is-regex": "^1.0.4", "object-is": "^1.0.1", "object-keys": "^1.1.1", "regexp.prototype.flags": "^1.2.0" } }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "deep-freeze": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", "dev": true }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "deep-rename-keys": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz", "integrity": "sha1-7eeFN9emaivmFRfir5Vtf1ij8dg=", "dev": true, "requires": { "kind-of": "^3.0.2", "rename-keys": "^1.1.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, "requires": { "execa": "^5.0.0" } }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { "clone": "^1.0.2" } }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { "object-keys": "^1.0.12" } }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "degenerator": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-2.2.0.tgz", "integrity": "sha512-aiQcQowF01RxFI4ZLFMpzyotbQonhNpBao6dkI8JPk5a+hmSjR5ErHp2CQySmQe8os3VBqLCIh87nDBgZXvsmg==", "dev": true, "requires": { "ast-types": "^0.13.2", "escodegen": "^1.8.1", "esprima": "^4.0.0" } }, "del": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", "dev": true, "requires": { "globby": "^11.0.1", "graceful-fs": "^4.2.4", "is-glob": "^4.0.1", "is-path-cwd": "^2.2.0", "is-path-inside": "^3.0.2", "p-map": "^4.0.0", "rimraf": "^3.0.2", "slash": "^3.0.0" }, "dependencies": { "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", "slash": "^3.0.0" } }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } } } }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true }, "dependency-graph": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", "dev": true }, "destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, "details-element-polyfill": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/details-element-polyfill/-/details-element-polyfill-2.4.0.tgz", "integrity": "sha512-jnZ/m0+b1gz3EcooitqL7oDEkKHEro659dt8bWB/T/HjiILucoQhHvvi5MEOAIFJXxxO+rIYJ/t3qCgfUOSU5g==", "dev": true }, "detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, "dgeni": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/dgeni/-/dgeni-0.4.14.tgz", "integrity": "sha512-/zUB1tLlu0/E5Pr/cl2fyKJqmPQoiO1KwahN4QmqS8QAYaHDT6X5ld/vYeO6dpqNlR7TZWXWzpfAnwR3R9scyQ==", "dev": true, "requires": { "canonical-path": "~0.0.2", "clonedeep": "^2.0.0", "dependency-graph": "^0.7.0", "di": "0.0.1", "fast-deep-equal": "^3.1.3", "objectdiff": "^1.1.0", "validate.js": "^0.12.0", "winston": "^2.1.1", "yargs": "^16.2.0" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "canonical-path": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-0.0.2.tgz", "integrity": "sha1-4x65N6jJPuKgHfGDl5RyGQKHRXQ=", "dev": true }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "y18n": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", "dev": true }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } }, "yargs-parser": { "version": "20.2.7", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", "dev": true } } }, "dgeni-packages": { "version": "0.29.1", "resolved": "https://registry.npmjs.org/dgeni-packages/-/dgeni-packages-0.29.1.tgz", "integrity": "sha512-lZvCv1G7Ngjf5Lp+oqbnJWKVe4UBnPsmqHRprsu3EMoLyzSW1kQdFl72B+r2cCALeQXGhNeDyAIGrJnAQs/roA==", "dev": true, "requires": { "canonical-path": "^1.0.0", "catharsis": "^0.8.1", "change-case": "3.0.0", "dgeni": "^0.4.14", "eslint": "^7.17.0", "espree": "^7.3.1", "estraverse": "^4.1.0", "glob": "^7.0.5", "htmlencode": "^0.0.4", "htmlparser2": "^3.7.3", "lodash.difference": "^4.5.0", "lodash.template": "^4.5.0", "marked": "^0.7.0", "minimatch": "^3.0.2", "mkdirp": "^1.0.3", "nunjucks": "^3.2.2", "rehype": "^8.0.0", "semver": "^5.2.0", "source-map-support": "^0.4.15", "spdx-license-list": "^2.1.0", "typescript": "~3.2.2", "urlencode": "^1.1.0" }, "dependencies": { "@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "eslint": { "version": "7.32.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", "dev": true, "requires": { "@babel/code-frame": "7.12.11", "@eslint/eslintrc": "^0.4.3", "@humanwhocodes/config-array": "^0.5.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "enquirer": "^2.3.5", "escape-string-regexp": "^4.0.0", "eslint-scope": "^5.1.1", "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^2.0.0", "espree": "^7.3.1", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.1.2", "globals": "^13.6.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", "regexpp": "^3.1.0", "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", "table": "^6.0.9", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } } } }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "eslint-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" }, "dependencies": { "eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } } }, "eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, "espree": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", "dev": true, "requires": { "acorn": "^7.4.0", "acorn-jsx": "^5.3.1", "eslint-visitor-keys": "^1.3.0" }, "dependencies": { "eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true } } }, "file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dev": true, "requires": { "flat-cache": "^3.0.4" } }, "flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", "dev": true, "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" } }, "flatted": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", "dev": true }, "globals": { "version": "13.11.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz", "integrity": "sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==", "dev": true, "requires": { "type-fest": "^0.20.2" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "hast-util-from-parse5": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz", "integrity": "sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA==", "dev": true, "requires": { "ccount": "^1.0.3", "hastscript": "^5.0.0", "property-information": "^5.0.0", "web-namespaces": "^1.1.2", "xtend": "^4.0.1" } }, "hastscript": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz", "integrity": "sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==", "dev": true, "requires": { "comma-separated-tokens": "^1.0.0", "hast-util-parse-selector": "^2.0.0", "property-information": "^5.0.0", "space-separated-tokens": "^1.0.0" } }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.3" } }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true }, "rehype": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/rehype/-/rehype-8.0.0.tgz", "integrity": "sha512-fqcYo/q4Xka0ZvS6abiHtZsN7/TauTzTZQfXqtWACo9Qz76Vv/8uzhOizAfDBjVPhbnDl3xPIMRArUdcV/xFaA==", "dev": true, "requires": { "rehype-parse": "^6.0.0", "rehype-stringify": "^6.0.0", "unified": "^7.0.0" } }, "rehype-parse": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-6.0.2.tgz", "integrity": "sha512-0S3CpvpTAgGmnz8kiCyFLGuW5yA4OQhyNTm/nwPopZ7+PI11WnGl1TTWTGv/2hPEe/g2jRLlhVVSsoDH8waRug==", "dev": true, "requires": { "hast-util-from-parse5": "^5.0.0", "parse5": "^5.0.0", "xtend": "^4.0.0" } }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { "source-map": "^0.5.6" } }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "table": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/table/-/table-6.7.1.tgz", "integrity": "sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==", "dev": true, "requires": { "ajv": "^8.0.1", "lodash.clonedeep": "^4.5.0", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.0", "strip-ansi": "^6.0.0" }, "dependencies": { "ajv": { "version": "8.6.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } } } }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { "prelude-ls": "^1.2.1" } }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, "typescript": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", "dev": true }, "unified": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz", "integrity": "sha512-lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==", "dev": true, "requires": { "@types/unist": "^2.0.0", "@types/vfile": "^3.0.0", "bail": "^1.0.0", "extend": "^3.0.0", "is-plain-obj": "^1.1.0", "trough": "^1.0.0", "vfile": "^3.0.0", "x-is-string": "^0.1.0" } }, "unist-util-stringify-position": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz", "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==", "dev": true }, "vfile": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-3.0.1.tgz", "integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==", "dev": true, "requires": { "is-buffer": "^2.0.0", "replace-ext": "1.0.0", "unist-util-stringify-position": "^1.0.0", "vfile-message": "^1.0.0" } }, "vfile-message": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz", "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==", "dev": true, "requires": { "unist-util-stringify-position": "^1.1.1" } }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", "dev": true }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { "path-type": "^4.0.0" } }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", "dev": true }, "dns-packet": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, "requires": { "ip": "^1.1.0", "safe-buffer": "^5.0.1" } }, "dns-txt": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "dev": true, "requires": { "buffer-indexof": "^1.0.0" } }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" } }, "dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true, "requires": { "custom-event": "~1.0.0", "ent": "~2.2.0", "extend": "^3.0.0", "void-elements": "^2.0.0" } }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dev": true, "requires": { "domelementtype": "^2.0.1", "entities": "^2.0.0" }, "dependencies": { "domelementtype": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", "dev": true }, "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true } } }, "domelementtype": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, "domexception": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", "dev": true, "requires": { "webidl-conversions": "^4.0.2" } }, "domhandler": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { "domelementtype": "1" } }, "domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { "dom-serializer": "0", "domelementtype": "1" } }, "dot-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", "dev": true, "requires": { "no-case": "^2.2.0" } }, "dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "requires": { "is-obj": "^2.0.0" } }, "dotenv": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", "dev": true }, "duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", "dev": true, "requires": { "readable-stream": "^2.0.2" } }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, "eachr": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/eachr/-/eachr-3.3.0.tgz", "integrity": "sha512-yKWuGwOE283CTgbEuvqXXusLH4VBXnY2nZbDkeWev+cpAXY6zCIADSPLdvfkAROc0t8S4l07U1fateCdEDuuvg==", "dev": true, "requires": { "editions": "^2.2.0", "typechecker": "^4.9.0" } }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "ecdsa-sig-formatter": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", "dev": true, "requires": { "safe-buffer": "^5.0.1" } }, "ecstatic": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/ecstatic/-/ecstatic-3.3.2.tgz", "integrity": "sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog==", "dev": true, "requires": { "he": "^1.1.1", "mime": "^1.6.0", "minimist": "^1.1.0", "url-join": "^2.0.5" }, "dependencies": { "url-join": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz", "integrity": "sha1-WvIvGMBSoACkjXuCxenC4v7tpyg=", "dev": true } } }, "editions": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/editions/-/editions-2.3.1.tgz", "integrity": "sha512-ptGvkwTvGdGfC0hfhKg0MT+TRLRKGtUiWGBInxOm5pz7ssADezahjCUaYuZ8Dr+C05FW0AECIIPt4WBxVINEhA==", "dev": true, "requires": { "errlop": "^2.0.0", "semver": "^6.3.0" } }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, "electron-to-chromium": { "version": "1.4.38", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.38.tgz", "integrity": "sha512-WhHt3sZazKj0KK/UpgsbGQnUUoFeAHVishzHFExMxagpZgjiGYSC9S0ZlbhCfSH2L2i+2A1yyqOIliTctMx7KQ==", "dev": true }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "dev": true }, "enabled": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", "dev": true }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, "encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "optional": true, "requires": { "iconv-lite": "^0.6.2" }, "dependencies": { "iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } } } }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { "once": "^1.4.0" } }, "engine.io": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", "integrity": "sha512-rqs60YwkvWTLLnfazqgZqLa/aKo+9cueVfEi/dZ8PyGyaf8TLOxj++4QMIgeG3Gn0AhrWiFXvghsoY9L9h25GA==", "dev": true, "requires": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", "@types/node": ">=10.0.0", "accepts": "~1.3.4", "base64id": "2.0.0", "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.0.3", "ws": "~8.2.3" }, "dependencies": { "cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", "dev": true }, "ws": { "version": "8.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", "dev": true, "requires": {} } } }, "engine.io-parser": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", "dev": true, "requires": { "@socket.io/base64-arraybuffer": "~1.0.2" } }, "enhanced-resolve": { "version": "5.8.3", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", "dev": true, "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "enquirer": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "requires": { "ansi-colors": "^4.1.1" } }, "ent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", "dev": true }, "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, "env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true }, "err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true }, "errlop": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/errlop/-/errlop-2.2.0.tgz", "integrity": "sha512-e64Qj9+4aZzjzzFpZC7p5kmm/ccCrbLhAJplhsDXQFs87XTsXwOpH4s1Io2s90Tau/8r2j9f4l/thhDevRjzxw==", "dev": true }, "errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, "optional": true, "requires": { "prr": "~1.0.1" } }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "es-abstract": { "version": "1.18.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "dev": true, "requires": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "get-intrinsic": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.2", "is-callable": "^1.2.3", "is-negative-zero": "^2.0.1", "is-regex": "^1.1.2", "is-string": "^1.0.5", "object-inspect": "^1.9.0", "object-keys": "^1.1.1", "object.assign": "^4.1.2", "string.prototype.trimend": "^1.0.4", "string.prototype.trimstart": "^1.0.4", "unbox-primitive": "^1.0.0" } }, "es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, "es5-ext": { "version": "0.10.53", "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", "dev": true, "requires": { "es6-iterator": "~2.0.3", "es6-symbol": "~3.1.3", "next-tick": "~1.0.0" } }, "es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { "d": "1", "es5-ext": "^0.10.35", "es6-symbol": "^3.1.1" } }, "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "dev": true }, "es6-promisify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { "es6-promise": "^4.0.3" } }, "es6-symbol": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", "dev": true, "requires": { "d": "^1.0.1", "ext": "^1.1.2" } }, "es6-weak-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", "dev": true, "requires": { "d": "1", "es5-ext": "^0.10.46", "es6-iterator": "^2.0.3", "es6-symbol": "^3.1.1" } }, "esbuild": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.2.tgz", "integrity": "sha512-l076A6o/PIgcyM24s0dWmDI/b8RQf41uWoJu9I0M71CtW/YSw5T5NUeXxs5lo2tFQD+O4CW4nBHJXx3OY5NpXg==", "dev": true, "optional": true, "requires": { "esbuild-android-arm64": "0.14.2", "esbuild-darwin-64": "0.14.2", "esbuild-darwin-arm64": "0.14.2", "esbuild-freebsd-64": "0.14.2", "esbuild-freebsd-arm64": "0.14.2", "esbuild-linux-32": "0.14.2", "esbuild-linux-64": "0.14.2", "esbuild-linux-arm": "0.14.2", "esbuild-linux-arm64": "0.14.2", "esbuild-linux-mips64le": "0.14.2", "esbuild-linux-ppc64le": "0.14.2", "esbuild-netbsd-64": "0.14.2", "esbuild-openbsd-64": "0.14.2", "esbuild-sunos-64": "0.14.2", "esbuild-windows-32": "0.14.2", "esbuild-windows-64": "0.14.2", "esbuild-windows-arm64": "0.14.2" } }, "esbuild-android-arm64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.2.tgz", "integrity": "sha512-hEixaKMN3XXCkoe+0WcexO4CcBVU5DCSUT+7P8JZiWZCbAjSkc9b6Yz2X5DSfQmRCtI/cQRU6TfMYrMQ5NBfdw==", "dev": true, "optional": true }, "esbuild-darwin-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.2.tgz", "integrity": "sha512-Uq8t0cbJQkxkQdbUfOl2wZqZ/AtLZjvJulR1HHnc96UgyzG9YlCLSDMiqjM+NANEy7/zzvwKJsy3iNC9wwqLJA==", "dev": true, "optional": true }, "esbuild-darwin-arm64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.2.tgz", "integrity": "sha512-619MSa17sr7YCIrUj88KzQu2ESA4jKYtIYfLU/smX6qNgxQt3Y/gzM4s6sgJ4fPQzirvmXgcHv1ZNQAs/Xh48A==", "dev": true, "optional": true }, "esbuild-freebsd-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.2.tgz", "integrity": "sha512-aP6FE/ZsChZpUV6F3HE3x1Pz0paoYXycJ7oLt06g0G9dhJKknPawXCqQg/WMyD+ldCEZfo7F1kavenPdIT/SGQ==", "dev": true, "optional": true }, "esbuild-freebsd-arm64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.2.tgz", "integrity": "sha512-LSm98WTb1QIhyS83+Po0KTpZNdd2XpVpI9ua5rLWqKWbKeNRFwOsjeiuwBaRNc+O32s9oC2ZMefETxHBV6VNkQ==", "dev": true, "optional": true }, "esbuild-linux-32": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.2.tgz", "integrity": "sha512-8VxnNEyeUbiGflTKcuVc5JEPTqXfsx2O6ABwUbfS1Hp26lYPRPC7pKQK5Dxa0MBejGc50jy7YZae3EGQUQ8EkQ==", "dev": true, "optional": true }, "esbuild-linux-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.2.tgz", "integrity": "sha512-4bzMS2dNxOJoFIiHId4w+tqQzdnsch71JJV1qZnbnErSFWcR9lRgpSqWnTTFtv6XM+MvltRzSXC5wQ7AEBY6Hg==", "dev": true, "optional": true }, "esbuild-linux-arm": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.2.tgz", "integrity": "sha512-PaylahvMHhH8YMfJPMKEqi64qA0Su+d4FNfHKvlKes/2dUe4QxgbwXT9oLVgy8iJdcFMrO7By4R8fS8S0p8aVQ==", "dev": true, "optional": true }, "esbuild-linux-arm64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.2.tgz", "integrity": "sha512-RlIVp0RwJrdtasDF1vTFueLYZ8WuFzxoQ1OoRFZOTyJHCGCNgh7xJIC34gd7B7+RT0CzLBB4LcM5n0LS+hIoww==", "dev": true, "optional": true }, "esbuild-linux-mips64le": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.2.tgz", "integrity": "sha512-Fdwrq2roFnO5oetIiUQQueZ3+5soCxBSJswg3MvYaXDomj47BN6oAWMZgLrFh1oVrtWrxSDLCJBenYdbm2s+qQ==", "dev": true, "optional": true }, "esbuild-linux-ppc64le": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.2.tgz", "integrity": "sha512-vxptskw8JfCDD9QqpRO0XnsM1osuWeRjPaXX1TwdveLogYsbdFtcuiuK/4FxGiNMUr1ojtnCS2rMPbY8puc5NA==", "dev": true, "optional": true }, "esbuild-netbsd-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.2.tgz", "integrity": "sha512-I8+LzYK5iSNpspS9eCV9sW67Rj8FgMHimGri4mKiGAmN0pNfx+hFX146rYtzGtewuxKtTsPywWteHx+hPRLDsw==", "dev": true, "optional": true }, "esbuild-openbsd-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.2.tgz", "integrity": "sha512-120HgMe9elidWUvM2E6mMf0csrGwx8sYDqUIJugyMy1oHm+/nT08bTAVXuwYG/rkMIqsEO9AlMxuYnwR6En/3Q==", "dev": true, "optional": true }, "esbuild-sunos-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.2.tgz", "integrity": "sha512-Q3xcf9Uyfra9UuCFxoLixVvdigo0daZaKJ97TL2KNA4bxRUPK18wwGUk3AxvgDQZpRmg82w9PnkaNYo7a+24ow==", "dev": true, "optional": true }, "esbuild-wasm": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.2.tgz", "integrity": "sha512-Rs8NjWoo1UdsVjhxT2o6kLCX9Sh65pyd3/h4XeJ3jjQNM6NgL+/CSowuJgvOIjDAXMLXpc6fdGnyZQDil9IUJA==", "dev": true }, "esbuild-windows-32": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.2.tgz", "integrity": "sha512-TW7O49tPsrq+N1sW8mb3m24j/iDGa4xzAZH4wHWwoIzgtZAYPKC0hpIhufRRG/LA30bdMChO9pjJZ5mtcybtBQ==", "dev": true, "optional": true }, "esbuild-windows-64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.2.tgz", "integrity": "sha512-Rym6ViMNmi1E2QuQMWy0AFAfdY0wGwZD73BnzlsQBX5hZBuy/L+Speh7ucUZ16gwsrMM9v86icZUDrSN/lNBKg==", "dev": true, "optional": true }, "esbuild-windows-arm64": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.2.tgz", "integrity": "sha512-ZrLbhr0vX5Em/P1faMnHucjVVWPS+m3tktAtz93WkMZLmbRJevhiW1y4CbulBd2z0MEdXZ6emDa1zFHq5O5bSA==", "dev": true, "optional": true }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, "escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", "dev": true }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "escodegen": { "version": "1.14.3", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "dev": true, "requires": { "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true } } }, "eslint": { "version": "5.16.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "ajv": "^6.9.1", "chalk": "^2.1.0", "cross-spawn": "^6.0.5", "debug": "^4.0.1", "doctrine": "^3.0.0", "eslint-scope": "^4.0.3", "eslint-utils": "^1.3.1", "eslint-visitor-keys": "^1.0.0", "espree": "^5.0.1", "esquery": "^1.0.1", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", "glob": "^7.1.2", "globals": "^11.7.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "inquirer": "^6.2.2", "js-yaml": "^3.13.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.3.0", "lodash": "^4.17.11", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "natural-compare": "^1.4.0", "optionator": "^0.8.2", "path-is-inside": "^1.0.2", "progress": "^2.0.0", "regexpp": "^2.0.1", "semver": "^5.5.1", "strip-ansi": "^4.0.0", "strip-json-comments": "^2.0.1", "table": "^5.2.3", "text-table": "^0.2.0" }, "dependencies": { "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { "restore-cursor": "^2.0.0" } }, "cli-width": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "inquirer": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", "dev": true, "requires": { "ansi-escapes": "^3.2.0", "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^2.0.0", "lodash": "^4.17.12", "mute-stream": "0.0.7", "run-async": "^2.2.0", "rxjs": "^6.4.0", "string-width": "^2.1.0", "strip-ansi": "^5.1.0", "through": "^2.3.6" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, "onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { "mimic-fn": "^1.0.0" } }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" } }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" } }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" } }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "eslint-plugin-jasmine": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-2.10.1.tgz", "integrity": "sha1-VzO3CedR9LxA4x4cFpib0s377Jc=", "dev": true }, "eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" } }, "eslint-utils": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", "dev": true, "requires": { "acorn": "^6.0.7", "acorn-jsx": "^5.0.0", "eslint-visitor-keys": "^1.0.0" } }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } }, "esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { "estraverse": "^5.2.0" }, "dependencies": { "estraverse": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } }, "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, "event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { "d": "1", "es5-ext": "~0.10.14" } }, "event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "dev": true }, "eventemitter-asyncresource": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", "dev": true }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, "events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "dev": true }, "events-listener": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/events-listener/-/events-listener-1.1.0.tgz", "integrity": "sha512-Kd3EgYfODHueq6GzVfs/VUolh2EgJsS8hkO3KpnDrxVjU3eq63eXM2ujXkhPP+OkeUOhL8CxdfZbQXzryb5C4g==", "dev": true }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", "human-signals": "^2.1.0", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.1", "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" }, "dependencies": { "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { "path-key": "^3.0.0" } }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "exegesis": { "version": "2.5.6", "resolved": "https://registry.npmjs.org/exegesis/-/exegesis-2.5.6.tgz", "integrity": "sha512-e+YkH/zZTN2njiwrV8tY6tHGDsFu3LyR/YbrqdWvDZaAJ5YGWaBYyd3oX/Y26iGqQc+7jLEKLDTv2UPzjAYL8w==", "dev": true, "requires": { "@apidevtools/json-schema-ref-parser": "^9.0.3", "ajv": "^6.12.2", "body-parser": "^1.18.3", "content-type": "^1.0.4", "deep-freeze": "0.0.1", "events-listener": "^1.1.0", "glob": "^7.1.3", "json-ptr": "^1.3.1", "json-schema-traverse": "^0.4.1", "lodash": "^4.17.11", "openapi3-ts": "^1.2.0", "promise-breaker": "^5.0.0", "pump": "^3.0.0", "qs": "^6.6.0", "raw-body": "^2.3.3", "semver": "^7.0.0" }, "dependencies": { "qs": { "version": "6.10.1", "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", "dev": true, "requires": { "side-channel": "^1.0.4" } }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } } } }, "exegesis-express": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/exegesis-express/-/exegesis-express-2.0.0.tgz", "integrity": "sha512-NKvKBsBa2OvU+1BFpWbz3PzoRMhA9q7/wU2oMmQ9X8lPy/FRatADvhlkGO1zYOMgeo35k1ZLO9ZV0uIs9pPnXg==", "dev": true, "requires": { "exegesis": "^2.0.0" } }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, "exit-code": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/exit-code/-/exit-code-1.0.2.tgz", "integrity": "sha1-zhZYEcnxF69qX4gpQLlq5/muzDQ=", "dev": true }, "exit-on-epipe": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", "dev": true }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "posix-character-classes": "^0.1.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "dev": true, "requires": { "accepts": "~1.3.7", "array-flatten": "1.1.1", "body-parser": "1.19.0", "content-disposition": "0.5.3", "content-type": "~1.0.4", "cookie": "0.4.0", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "~1.1.2", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "finalhandler": "~1.1.2", "fresh": "0.5.2", "merge-descriptors": "1.0.1", "methods": "~1.1.2", "on-finished": "~2.3.0", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.5", "qs": "6.7.0", "range-parser": "~1.2.1", "safe-buffer": "5.1.2", "send": "0.17.1", "serve-static": "1.14.1", "setprototypeof": "1.1.1", "statuses": "~1.5.0", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, "dependencies": { "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "qs": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", "dev": true }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true } } }, "ext": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", "dev": true, "requires": { "type": "^2.0.0" }, "dependencies": { "type": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", "dev": true } } }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "^2.0.4" } } } }, "extendr": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/extendr/-/extendr-3.5.0.tgz", "integrity": "sha512-7zpVbnnZy91J4k916ZGwpys56DEgJc/prTXDiqCYe/Mud5pqdVsSc9mG/U6sz3lQEvHs81i8Zi7whsFwifhZyw==", "dev": true, "requires": { "editions": "^2.2.0", "typechecker": "^4.7.0" } }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" } }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", "expand-brackets": "^2.1.4", "extend-shallow": "^2.0.1", "fragment-cache": "^0.2.1", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "extract-opts": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/extract-opts/-/extract-opts-3.4.0.tgz", "integrity": "sha512-M7Y+1cJDkzOWqvGH5F/V2qgkD6+uitW3NV9rQGl+pLSVuXZ4IDDQgxxMeLPKcWUyfypBWczIILiroSuhXG7Ytg==", "dev": true, "requires": { "eachr": "^3.2.0", "editions": "^2.2.0", "typechecker": "^4.9.0" } }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "eyes": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=", "dev": true }, "eyes.selenium": { "version": "3.9.1", "resolved": "https://registry.npmjs.org/eyes.selenium/-/eyes.selenium-3.9.1.tgz", "integrity": "sha512-/yJWPzSZPo0EIoNIEVq/T8+BhU3bcKynCx2A8CrVQ9rSrMymTkByYUVId4BnUD8RQy3Bb3b70uiwdn5ji+StVQ==", "requires": { "@applitools/eyes-common-legacy": "1.0.1", "@applitools/eyes-sdk-core-legacy": "1.0.1" } }, "fast-crc32c": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-crc32c/-/fast-crc32c-2.0.0.tgz", "integrity": "sha512-LIREwygxtxzHF11oLJ4xIVKu/ZWNgrj/QaGvaSD8ZggIsgCyCtSYevlrpWVqNau57ZwezV8K1HFBSjQ7FcRbTQ==", "dev": true, "requires": { "sse4_crc32": "^6.0.1" } }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { "version": "3.2.9", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.9.tgz", "integrity": "sha512-MBwILhhD92sziIrMQwpqcuGERF+BH99ei2a3XsGJuqEKcSycAL+w0HWokFenZXona+kjFr82Lf71eTxNRC06XQ==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" } }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fast-safe-stringify": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", "dev": true }, "fast-text-encoding": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==", "dev": true }, "fast-url-parser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", "dev": true, "requires": { "punycode": "^1.3.2" }, "dependencies": { "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true } } }, "fastparse": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", "dev": true }, "fastq": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { "reusify": "^1.0.4" } }, "faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, "requires": { "websocket-driver": ">=0.5.1" } }, "fecha": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz", "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==", "dev": true }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { "flat-cache": "^2.0.1" } }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, "optional": true }, "filesize": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==", "dev": true }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "on-finished": "~2.3.0", "parseurl": "~1.3.3", "statuses": "~1.5.0", "unpipe": "~1.0.0" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "find-cache-dir": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" }, "dependencies": { "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" } } } }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { "locate-path": "^3.0.0" } }, "firebase-tools": { "version": "9.8.0", "resolved": "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.8.0.tgz", "integrity": "sha512-UhOnT8csgc1jlS1GYz0IxTHwB9BYoxj+TSy4aIKj8a44OzsXVSiT6lOhLIYHZFLVdjqkLi08i1+07JoOVTmtTA==", "dev": true, "requires": { "@google-cloud/pubsub": "^2.7.0", "@types/archiver": "^5.1.0", "abort-controller": "^3.0.0", "archiver": "^5.0.0", "body-parser": "^1.19.0", "chokidar": "^3.0.2", "cjson": "^0.3.1", "cli-color": "^1.2.0", "cli-table": "^0.3.1", "commander": "^4.0.1", "configstore": "^5.0.1", "cors": "^2.8.5", "cross-env": "^5.1.3", "cross-spawn": "^7.0.1", "csv-streamify": "^3.0.4", "dotenv": "^6.1.0", "exegesis": "^2.5.6", "exegesis-express": "^2.0.0", "exit-code": "^1.0.2", "express": "^4.16.4", "fast-crc32c": "^2.0.0", "filesize": "^6.1.0", "fs-extra": "^0.23.1", "glob": "^7.1.2", "google-auth-library": "^6.1.3", "inquirer": "~6.3.1", "js-yaml": "^3.13.1", "jsonschema": "^1.0.2", "JSONStream": "^1.2.1", "jsonwebtoken": "^8.5.1", "leven": "^3.1.0", "lodash": "^4.17.19", "marked": "^0.7.0", "marked-terminal": "^3.3.0", "minimatch": "^3.0.4", "morgan": "^1.10.0", "node-fetch": "^2.6.1", "open": "^6.3.0", "ora": "^3.4.0", "plist": "^3.0.1", "portfinder": "^1.0.23", "progress": "^2.0.3", "proxy-agent": "^4.0.0", "request": "^2.87.0", "rimraf": "^3.0.0", "semver": "^5.7.1", "superstatic": "^7.1.0", "tar": "^4.3.0", "tcp-port-used": "^1.0.1", "tmp": "0.0.33", "triple-beam": "^1.3.0", "tweetsodium": "0.0.5", "universal-analytics": "^0.4.16", "unzipper": "^0.10.10", "update-notifier": "^4.1.0", "uuid": "^3.0.0", "winston": "^3.0.0", "winston-transport": "^4.4.0", "ws": "^7.2.3" }, "dependencies": { "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "archiver": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz", "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", "dev": true, "requires": { "archiver-utils": "^2.1.0", "async": "^3.2.0", "buffer-crc32": "^0.2.1", "readable-stream": "^3.6.0", "readdir-glob": "^1.0.0", "tar-stream": "^2.2.0", "zip-stream": "^4.1.0" } }, "async": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", "dev": true }, "chownr": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", "dev": true }, "cjson": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.3.3.tgz", "integrity": "sha1-qS2ceG5b+bkwgGMp7gXV0yYbSvo=", "dev": true, "requires": { "json-parse-helpfulerror": "^1.0.3" } }, "cli-cursor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { "restore-cursor": "^2.0.0" } }, "cli-width": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "commander": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true }, "compress-commons": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.0.tgz", "integrity": "sha512-ofaaLqfraD1YRTkrRKPCrGJ1pFeDG/MVCkVVV2FNGeWquSlqw5wOrwOfPQ1xF2u+blpeWASie5EubHz+vsNIgA==", "dev": true, "requires": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.1", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" } }, "crc32-stream": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", "dev": true, "requires": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" } }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "fs-extra": { "version": "0.23.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.23.1.tgz", "integrity": "sha1-ZhHbpq3yq43Jxp+rN83fiBgVfj0=", "dev": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^2.1.0", "path-is-absolute": "^1.0.0", "rimraf": "^2.2.8" }, "dependencies": { "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { "glob": "^7.1.3" } } } }, "fs-minipass": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", "dev": true, "requires": { "minipass": "^2.6.0" } }, "inquirer": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", "dev": true, "requires": { "ansi-escapes": "^3.2.0", "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^2.0.0", "lodash": "^4.17.11", "mute-stream": "0.0.7", "run-async": "^2.2.0", "rxjs": "^6.4.0", "string-width": "^2.1.0", "strip-ansi": "^5.1.0", "through": "^2.3.6" }, "dependencies": { "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" } } } }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true }, "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true }, "jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "dev": true, "requires": { "graceful-fs": "^4.1.6" } }, "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { "chalk": "^2.0.1" } }, "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true }, "minipass": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", "dev": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } }, "minizlib": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", "dev": true, "requires": { "minipass": "^2.9.0" } }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, "onetime": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { "mimic-fn": "^1.0.0" } }, "open": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", "dev": true, "requires": { "is-wsl": "^1.1.0" } }, "ora": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", "dev": true, "requires": { "chalk": "^2.4.2", "cli-cursor": "^2.1.0", "cli-spinners": "^2.0.0", "log-symbols": "^2.2.0", "strip-ansi": "^5.2.0", "wcwidth": "^1.0.1" } }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" } }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" }, "dependencies": { "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" } } } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true } } }, "tar": { "version": "4.4.19", "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", "dev": true, "requires": { "chownr": "^1.1.4", "fs-minipass": "^1.2.7", "minipass": "^2.9.0", "minizlib": "^1.3.3", "mkdirp": "^0.5.5", "safe-buffer": "^5.2.1", "yallist": "^3.1.1" } }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } }, "winston": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", "dev": true, "requires": { "@dabh/diagnostics": "^2.0.2", "async": "^3.1.0", "is-stream": "^2.0.0", "logform": "^2.2.0", "one-time": "^1.0.0", "readable-stream": "^3.4.0", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", "winston-transport": "^4.4.0" } }, "ws": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", "dev": true, "requires": {} }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "zip-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", "dev": true, "requires": { "archiver-utils": "^2.1.0", "compress-commons": "^4.1.0", "readable-stream": "^3.6.0" } } } }, "flat-arguments": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/flat-arguments/-/flat-arguments-1.0.2.tgz", "integrity": "sha1-m6p4Ct8FAfKC1ybJxqA426ROp28=", "dev": true, "requires": { "array-flatten": "^1.0.0", "as-array": "^1.0.0", "lodash.isarguments": "^3.0.0", "lodash.isobject": "^3.0.0" }, "dependencies": { "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, "as-array": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/as-array/-/as-array-1.0.0.tgz", "integrity": "sha1-KKbu6qVynx9OyiBH316d4avaDtE=", "dev": true, "requires": { "lodash.isarguments": "2.4.x", "lodash.isobject": "^2.4.1", "lodash.values": "^2.4.1" }, "dependencies": { "lodash.isarguments": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-2.4.1.tgz", "integrity": "sha1-STGpwIJTrfCRrnyhkiWKlzh27Mo=", "dev": true }, "lodash.isobject": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", "dev": true, "requires": { "lodash._objecttypes": "~2.4.1" } } } }, "lodash.isobject": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", "dev": true } } }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { "flatted": "^2.0.0", "rimraf": "2.6.3", "write": "1.0.3" }, "dependencies": { "rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { "glob": "^7.1.3" } } } }, "flatmap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/flatmap/-/flatmap-0.0.3.tgz", "integrity": "sha1-Hxik2TgVLUlZZfnJWNkjqy3WabQ=", "dev": true }, "flatted": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, "flatten": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", "dev": true }, "fn.name": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", "dev": true }, "follow-redirects": { "version": "1.13.3", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", "dev": true }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, "forwarded": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { "map-cache": "^0.2.2" } }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, "fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "requires": { "minipass": "^3.0.0" } }, "fs-monkey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", "dev": true }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fstream": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", "dev": true, "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", "mkdirp": ">=0.5 0", "rimraf": "2" } }, "ftp": { "version": "0.3.10", "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "dev": true, "requires": { "readable-stream": "1.1.x", "xregexp": "2.0.0" }, "dependencies": { "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", "isarray": "0.0.1", "string_decoder": "~0.10.x" } }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, "xregexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", "dev": true } } }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "optional": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", "has-unicode": "^2.0.0", "object-assign": "^4.1.0", "signal-exit": "^3.0.0", "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wide-align": "^1.1.0" }, "dependencies": { "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true, "optional": true }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "optional": true, "requires": { "number-is-nan": "^1.0.0" } }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "optional": true, "requires": { "ansi-regex": "^2.0.0" } } } }, "gaxios": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.2.0.tgz", "integrity": "sha512-Ms7fNifGv0XVU+6eIyL9LB7RVESeML9+cMvkwGS70xyD6w2Z80wl6RiqiJ9k1KFlJCUTQqFFc8tXmPQfSKUe8g==", "dev": true, "requires": { "abort-controller": "^3.0.0", "extend": "^3.0.2", "https-proxy-agent": "^5.0.0", "is-stream": "^2.0.0", "node-fetch": "^2.3.0" }, "dependencies": { "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true } } }, "gcp-metadata": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz", "integrity": "sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw==", "dev": true, "requires": { "gaxios": "^4.0.0", "json-bigint": "^1.0.0" } }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1" } }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" } }, "get-uri": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", "dev": true, "requires": { "@tootallnate/once": "1", "data-uri-to-buffer": "3", "debug": "4", "file-uri-to-path": "2", "fs-extra": "^8.1.0", "ftp": "^0.3.10" }, "dependencies": { "file-uri-to-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", "dev": true } } }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { "assert-plus": "^1.0.0" } }, "github-slugger": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.3.0.tgz", "integrity": "sha512-gwJScWVNhFYSRDvURk/8yhcFBee6aFjye2a7Lhb2bUyRulpIoek9p0I9Kt7PT67d/nUlZbFu8L9RLiA0woQN8Q==", "dev": true, "requires": { "emoji-regex": ">=6.0.0 <=6.1.1" }, "dependencies": { "emoji-regex": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.1.1.tgz", "integrity": "sha1-xs0OwbBkLio8Z6ETfvxeeW2k+I4=", "dev": true } } }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, "glob-slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/glob-slash/-/glob-slash-1.0.0.tgz", "integrity": "sha1-/lLvpDMjP3Si/mTHq7m8hIICq5U=", "dev": true }, "glob-slasher": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/glob-slasher/-/glob-slasher-1.0.1.tgz", "integrity": "sha1-dHoOW7IiZC7hDT4FRD4QlJPLD44=", "dev": true, "requires": { "glob-slash": "^1.0.0", "lodash.isobject": "^2.4.1", "toxic": "^1.0.0" } }, "glob-to-regexp": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", "dev": true }, "global-dirs": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", "dev": true, "requires": { "ini": "1.3.7" }, "dependencies": { "ini": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", "dev": true } } }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "globby": { "version": "9.2.0", "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz", "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==", "dev": true, "requires": { "@types/glob": "^7.1.1", "array-union": "^1.0.2", "dir-glob": "^2.2.2", "fast-glob": "^2.2.6", "glob": "^7.1.3", "ignore": "^4.0.3", "pify": "^4.0.1", "slash": "^2.0.0" }, "dependencies": { "@nodelib/fs.stat": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { "array-uniq": "^1.0.1" } }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", "extend-shallow": "^2.0.1", "fill-range": "^4.0.0", "isobject": "^3.0.1", "repeat-element": "^1.1.2", "snapdragon": "^0.8.1", "snapdragon-node": "^2.0.1", "split-string": "^3.0.2", "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "dir-glob": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", "dev": true, "requires": { "path-type": "^3.0.0" } }, "fast-glob": { "version": "2.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", "dev": true, "requires": { "@mrmlnc/readdir-enhanced": "^2.2.1", "@nodelib/fs.stat": "^1.1.2", "glob-parent": "^3.1.0", "is-glob": "^4.0.0", "merge2": "^1.2.3", "micromatch": "^3.1.10" } }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { "is-extglob": "^2.1.0" } } } }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "braces": "^2.3.1", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "extglob": "^2.0.4", "fragment-cache": "^0.2.1", "kind-of": "^6.0.2", "nanomatch": "^1.2.9", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { "pify": "^3.0.0" }, "dependencies": { "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true } } }, "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" } } } }, "google-auth-library": { "version": "6.1.6", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.6.tgz", "integrity": "sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==", "dev": true, "requires": { "arrify": "^2.0.0", "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", "fast-text-encoding": "^1.0.0", "gaxios": "^4.0.0", "gcp-metadata": "^4.2.0", "gtoken": "^5.0.4", "jws": "^4.0.0", "lru-cache": "^6.0.0" } }, "google-gax": { "version": "2.11.2", "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-2.11.2.tgz", "integrity": "sha512-PNqXv7Oi5XBMgoMWVxLZHUidfMv7cPHrDSDXqLyEd6kY6pqFnVKC8jt2T1df4JPSc2+VLPdeo6L7X9mbdQG8Xw==", "dev": true, "requires": { "@grpc/grpc-js": "~1.2.0", "@grpc/proto-loader": "^0.5.1", "@types/long": "^4.0.0", "abort-controller": "^3.0.0", "duplexify": "^4.0.0", "fast-text-encoding": "^1.0.3", "google-auth-library": "^7.0.2", "is-stream-ended": "^0.1.4", "node-fetch": "^2.6.1", "protobufjs": "^6.10.2", "retry-request": "^4.0.0" }, "dependencies": { "duplexify": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.1.tgz", "integrity": "sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA==", "dev": true, "requires": { "end-of-stream": "^1.4.1", "inherits": "^2.0.3", "readable-stream": "^3.1.1", "stream-shift": "^1.0.0" } }, "google-auth-library": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-7.0.3.tgz", "integrity": "sha512-6wJNYqY1QUr5I2lWaUkkzOT2b9OCNhNQrdFOt/bsBbGb7T7NCdEvrBsXraUm+KTUGk2xGlQ7m9RgUd4Llcw8NQ==", "dev": true, "requires": { "arrify": "^2.0.0", "base64-js": "^1.3.0", "ecdsa-sig-formatter": "^1.0.11", "fast-text-encoding": "^1.0.0", "gaxios": "^4.0.0", "gcp-metadata": "^4.2.0", "gtoken": "^5.0.4", "jws": "^4.0.0", "lru-cache": "^6.0.0" } }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } } } }, "google-p12-pem": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.0.3.tgz", "integrity": "sha512-wS0ek4ZtFx/ACKYF3JhyGe5kzH7pgiQ7J5otlumqR9psmWMYc+U9cErKlCYVYHoUaidXHdZ2xbo34kB+S+24hA==", "dev": true, "requires": { "node-forge": "^0.10.0" } }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", "dev": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", "cacheable-request": "^6.0.0", "decompress-response": "^3.3.0", "duplexer3": "^0.1.4", "get-stream": "^4.1.0", "lowercase-keys": "^1.0.1", "mimic-response": "^1.0.1", "p-cancelable": "^1.0.0", "to-readable-stream": "^1.0.0", "url-parse-lax": "^3.0.0" } }, "graceful-fs": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "gtoken": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.2.1.tgz", "integrity": "sha512-OY0BfPKe3QnMsY9MzTHTSKn+Vl2l1CcLe6BwDEQj00mbbkl5nyQ/7EUREstg4fQNZ8iYE7br4JJ7TdKeDOPWmw==", "dev": true, "requires": { "gaxios": "^4.0.0", "google-p12-pem": "^3.0.3", "jws": "^4.0.0" } }, "handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" } }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { "function-bind": "^1.1.1" } }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { "ansi-regex": "^2.0.0" }, "dependencies": { "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true } } }, "has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", "dev": true }, "has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, "requires": { "has-symbols": "^1.0.2" } }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" } }, "has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true }, "hast-util-from-parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", "dev": true, "requires": { "@types/parse5": "^5.0.0", "hastscript": "^6.0.0", "property-information": "^5.0.0", "vfile": "^4.0.0", "vfile-location": "^3.2.0", "web-namespaces": "^1.0.0" } }, "hast-util-has-property": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-1.0.4.tgz", "integrity": "sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==", "dev": true }, "hast-util-is-element": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==", "dev": true }, "hast-util-parse-selector": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", "dev": true }, "hast-util-sanitize": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-3.0.2.tgz", "integrity": "sha512-+2I0x2ZCAyiZOO/sb4yNLFmdwPBnyJ4PBkVTUMKMqBwYNA+lXSgOmoRXlJFazoyid9QPogRRKgKhVEodv181sA==", "dev": true, "requires": { "xtend": "^4.0.0" } }, "hast-util-to-html": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-6.1.0.tgz", "integrity": "sha512-IlC+LG2HGv0Y8js3wqdhg9O2sO4iVpRDbHOPwXd7qgeagpGsnY49i8yyazwqS35RA35WCzrBQE/n0M6GG/ewxA==", "dev": true, "requires": { "ccount": "^1.0.0", "comma-separated-tokens": "^1.0.1", "hast-util-is-element": "^1.0.0", "hast-util-whitespace": "^1.0.0", "html-void-elements": "^1.0.0", "property-information": "^5.2.0", "space-separated-tokens": "^1.0.0", "stringify-entities": "^2.0.0", "unist-util-is": "^3.0.0", "xtend": "^4.0.1" } }, "hast-util-to-string": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz", "integrity": "sha512-eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==", "dev": true }, "hast-util-whitespace": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-1.0.4.tgz", "integrity": "sha512-I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==", "dev": true }, "hastscript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", "dev": true, "requires": { "@types/hast": "^2.0.0", "comma-separated-tokens": "^1.0.0", "hast-util-parse-selector": "^2.0.0", "property-information": "^5.0.0", "space-separated-tokens": "^1.0.0" } }, "hdr-histogram-js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.1.tgz", "integrity": "sha512-uPZxl1dAFnjUFHWLZmt93vUUvtHeaBay9nVNHu38SdOjMSF/4KqJUqa1Seuj08ptU1rEb6AHvB41X8n/zFZ74Q==", "dev": true, "requires": { "@assemblyscript/loader": "^0.10.1", "base64-js": "^1.2.0", "pako": "^1.0.3" } }, "hdr-histogram-percentiles-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", "dev": true }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "header-case": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", "dev": true, "requires": { "no-case": "^2.2.0", "upper-case": "^1.1.3" } }, "home-dir": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/home-dir/-/home-dir-1.0.0.tgz", "integrity": "sha1-KRfrRL3JByztqUJXlUOEfjAX/k4=", "dev": true }, "hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, "hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { "inherits": "^2.0.1", "obuf": "^1.0.0", "readable-stream": "^2.0.1", "wbuf": "^1.1.0" } }, "html": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/html/-/html-1.0.0.tgz", "integrity": "sha1-pUT6nqVJK/s6LMqCEKEL57WvH2E=", "dev": true, "requires": { "concat-stream": "^1.4.7" } }, "html-encoding-sniffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "dev": true, "requires": { "whatwg-encoding": "^1.0.1" } }, "html-entities": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", "dev": true }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "html-void-elements": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", "dev": true }, "htmlencode": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz", "integrity": "sha1-9+LWr74YqHp45jujMI51N2Z0Dj8=", "dev": true }, "htmlparser2": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "dev": true, "requires": { "domelementtype": "^1.3.1", "domhandler": "^2.3.0", "domutils": "^1.5.1", "entities": "^1.1.1", "inherits": "^2.0.1", "readable-stream": "^3.1.1" }, "dependencies": { "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } } } }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", "dev": true }, "http-errors": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dev": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.1", "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" }, "dependencies": { "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true } } }, "http-link-header": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-0.8.0.tgz", "integrity": "sha1-oitBoMmx4tj6wb8baXxr1TLV9eQ=", "dev": true }, "http-parser-js": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.5.tgz", "integrity": "sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==", "dev": true }, "http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" } }, "http-proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, "requires": { "@tootallnate/once": "1", "agent-base": "6", "debug": "4" } }, "http-proxy-middleware": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.1.tgz", "integrity": "sha512-cfaXRVoZxSed/BmkA7SwBVNI9Kj7HFltaE5rqYOub5kWzWZ+gofV2koVN1j2rMW7pEfSSlCHGJ31xmuyFyfLOg==", "dev": true, "requires": { "@types/http-proxy": "^1.17.5", "http-proxy": "^1.18.1", "is-glob": "^4.0.1", "is-plain-obj": "^3.0.0", "micromatch": "^4.0.2" }, "dependencies": { "is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true } } }, "http-server": { "version": "0.12.3", "resolved": "https://registry.npmjs.org/http-server/-/http-server-0.12.3.tgz", "integrity": "sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA==", "dev": true, "requires": { "basic-auth": "^1.0.3", "colors": "^1.4.0", "corser": "^2.0.1", "ecstatic": "^3.3.2", "http-proxy": "^1.18.0", "minimist": "^1.2.5", "opener": "^1.5.1", "portfinder": "^1.0.25", "secure-compare": "3.0.1", "union": "~0.5.0" }, "dependencies": { "basic-auth": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=", "dev": true }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true } } }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" } }, "https-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", "dev": true, "requires": { "agent-base": "6", "debug": "4" } }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, "humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", "dev": true, "requires": { "ms": "^2.0.0" } }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, "requires": {} }, "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, "ignore-walk": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", "dev": true, "requires": { "minimatch": "^3.0.4" } }, "ignorefs": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/ignorefs/-/ignorefs-1.4.1.tgz", "integrity": "sha512-1whgvOsPWFZRNA/5OFhIk56C9Y39+/CYaRVNvsZZkLymacOSqqdSU53xk8CP3G2u5gz2PX6RLxqKPcsIpDriog==", "dev": true, "requires": { "editions": "^2.2.0", "ignorepatterns": "^1.4.0" } }, "ignorepatterns": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/ignorepatterns/-/ignorepatterns-1.4.0.tgz", "integrity": "sha512-YPBIFRB25iZD0WiLxmToe80+QU+mZI+bUlEh3Ze/4gbhlXHdQFk0SwAFQtPOiBAoDv3FvhtSTDUCD9DKFsHTRA==", "dev": true, "requires": { "editions": "^2.2.0" } }, "image-size": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==", "dev": true }, "image-ssim": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/image-ssim/-/image-ssim-0.2.0.tgz", "integrity": "sha1-g7Qsei5uS4VQVHf+aRf128VkIOU=", "dev": true }, "immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" }, "immutable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", "dev": true }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", "dev": true }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", "dev": true }, "inquirer": { "version": "7.3.3", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "rxjs": { "version": "6.6.7", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "install-artifact-from-github": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/install-artifact-from-github/-/install-artifact-from-github-1.2.0.tgz", "integrity": "sha512-3OxCPcY55XlVM3kkfIpeCgmoSKnMsz2A3Dbhsq0RXpIknKQmrX1YiznCeW9cD2ItFmDxziA3w6Eg8d80AoL3oA==", "dev": true, "optional": true }, "interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, "intl": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", "integrity": "sha1-giRKIZDE5Bn4Nx9ao02qNCDiq94=", "dev": true }, "intl-messageformat": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/intl-messageformat/-/intl-messageformat-4.4.0.tgz", "integrity": "sha512-z+Bj2rS3LZSYU4+sNitdHrwnBhr0wO80ZJSW8EzKDBowwUe3Q/UsvgCGjrwa+HPzoGCLEb9HAjfJgo4j2Sac8w==", "dev": true, "requires": { "intl-messageformat-parser": "^1.8.1" } }, "intl-messageformat-parser": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/intl-messageformat-parser/-/intl-messageformat-parser-1.8.1.tgz", "integrity": "sha512-IMSCKVf0USrM/959vj3xac7s8f87sc+80Y/ipBzdKy4ifBv5Gsj2tZ41EAaURVg01QU71fYr77uA8Meh6kELbg==", "dev": true }, "intl-pluralrules": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/intl-pluralrules/-/intl-pluralrules-1.2.2.tgz", "integrity": "sha512-SBdlNCJAhTA0I0uHg2dn7I+c6BCvSVk6zJ/01ozjwJK7BvKms9RH3w3Sd/Ag24KffZ/Yx6KJRCKAc7eE8TZLNg==", "dev": true }, "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, "ip-regex": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", "dev": true }, "ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", "dev": true }, "is-alphanumeric": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz", "integrity": "sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ=", "dev": true }, "is-alphanumerical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "dev": true, "requires": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" } }, "is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, "requires": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" } }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-bigint": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", "dev": true }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { "binary-extensions": "^2.0.0" } }, "is-boolean-object": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", "dev": true, "requires": { "call-bind": "^1.0.0" } }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-callable": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", "dev": true }, "is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { "ci-info": "^2.0.0" } }, "is-core-module": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "is-date-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, "is-decimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "dev": true }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "is-docker": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", "dev": true }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-hexadecimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "dev": true }, "is-installed-globally": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, "requires": { "global-dirs": "^2.0.1", "is-path-inside": "^3.0.1" } }, "is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true }, "is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", "dev": true }, "is-lower-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", "dev": true, "requires": { "lower-case": "^1.1.0" } }, "is-negative-zero": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", "dev": true }, "is-npm": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", "dev": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "is-number-object": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", "dev": true }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true }, "is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true }, "is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true }, "is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "^3.0.1" } }, "is-promise": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", "dev": true }, "is-regex": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", "dev": true, "requires": { "call-bind": "^1.0.2", "has-symbols": "^1.0.1" } }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-stream-ended": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==", "dev": true }, "is-string": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", "dev": true }, "is-symbol": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, "requires": { "has-symbols": "^1.0.1" } }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, "is-upper-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", "dev": true, "requires": { "upper-case": "^1.1.0" } }, "is-url": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", "dev": true }, "is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, "is-whitespace-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", "dev": true }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, "is-word-character": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", "dev": true }, "is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "requires": { "is-docker": "^2.0.0" } }, "is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", "dev": true }, "is2": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.6.tgz", "integrity": "sha512-+Z62OHOjA6k2sUDOKXoZI3EXv7Fb1K52jpTBLbkfx62bcUeSsrTBLhEquCRDKTx0XE5XbHcG/S2vrtE3lnEDsQ==", "dev": true, "requires": { "deep-is": "^0.1.3", "ip-regex": "^4.1.0", "is-url": "^1.2.4" }, "dependencies": { "ip-regex": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", "dev": true } } }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, "istanbul-lib-instrument": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", "dev": true, "requires": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.2.0", "semver": "^6.3.0" } }, "istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", "supports-color": "^7.1.0" }, "dependencies": { "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" } }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "istanbul-lib-source-maps": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", "dev": true, "requires": { "debug": "^4.1.1", "istanbul-lib-coverage": "^2.0.5", "make-dir": "^2.1.0", "rimraf": "^2.6.3", "source-map": "^0.6.1" }, "dependencies": { "istanbul-lib-coverage": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", "dev": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "istanbul-reports": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", "dev": true, "requires": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, "jasmine": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.7.0.tgz", "integrity": "sha512-wlzGQ+cIFzMEsI+wDqmOwvnjTvolLFwlcpYLCqSPPH0prOQaW3P+IzMhHYn934l1imNvw07oCyX+vGUv3wmtSQ==", "dev": true, "requires": { "glob": "^7.1.6", "jasmine-core": "~3.7.0" }, "dependencies": { "jasmine-core": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.7.1.tgz", "integrity": "sha512-DH3oYDS/AUvvr22+xUBW62m1Xoy7tUlY1tsxKEJvl5JeJ7q8zd1K5bUwiOxdH+erj6l2vAMM3hV25Xs9/WrmuQ==", "dev": true } } }, "jasmine-core": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", "dev": true }, "jasmine-marbles": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jasmine-marbles/-/jasmine-marbles-0.5.0.tgz", "integrity": "sha512-hkSYy7VJpcxaKE48s/CasVpGyheElp5ZegguFi5kpYAaUWsyOko6RnMZS1kv14ThMtlJVNqCW5z16f1q6HqbEg==", "dev": true, "requires": { "lodash": "^4.5.0" } }, "jasmine-spec-reporter": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", "dev": true, "requires": { "colors": "1.4.0" }, "dependencies": { "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true } } }, "jasmine-ts": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/jasmine-ts/-/jasmine-ts-0.3.0.tgz", "integrity": "sha512-K5joodjVOh3bnD06CNXC8P5htDq/r0Rhjv66ECOpdIGFLly8kM7V+X/GXcd9kv+xO+tIq3q9Y8B5OF6yr/iiDw==", "dev": true, "requires": { "yargs": "^8.0.2" }, "dependencies": { "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true }, "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1", "wrap-ansi": "^2.0.0" }, "dependencies": { "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } } } }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", "dev": true }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" } } } }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" } }, "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" }, "dependencies": { "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", "strip-ansi": "^3.0.0" } } } }, "y18n": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", "dev": true }, "yargs": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", "dev": true, "requires": { "camelcase": "^4.1.0", "cliui": "^3.2.0", "decamelize": "^1.1.1", "get-caller-file": "^1.0.1", "os-locale": "^2.0.0", "read-pkg-up": "^2.0.0", "require-directory": "^2.1.1", "require-main-filename": "^1.0.1", "set-blocking": "^2.0.0", "string-width": "^2.0.0", "which-module": "^2.0.0", "y18n": "^3.2.1", "yargs-parser": "^7.0.0" } }, "yargs-parser": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "dev": true, "requires": { "camelcase": "^4.1.0" } } } }, "jasminewd2": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", "dev": true }, "jest-worker": { "version": "27.2.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.2.0.tgz", "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, "dependencies": { "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", "dev": true }, "join-path": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/join-path/-/join-path-1.1.1.tgz", "integrity": "sha1-EFNaEm0ky9Zff/zfFe8uYxB2tQU=", "dev": true, "requires": { "as-array": "^2.0.0", "url-join": "0.0.1", "valid-url": "^1" } }, "jpeg-js": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz", "integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==", "dev": true }, "js-library-detector": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/js-library-detector/-/js-library-detector-6.4.0.tgz", "integrity": "sha512-NB2sYpmgqiTd7PNNhgp6bnEZmjvTUdAbzxABvYXWLpTL/t158T6mPnD8uYNd0FDP73YWyMrTYDvPxqdvCTbv2g==", "dev": true }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "jsdom": { "version": "15.2.1", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-15.2.1.tgz", "integrity": "sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==", "dev": true, "requires": { "abab": "^2.0.0", "acorn": "^7.1.0", "acorn-globals": "^4.3.2", "array-equal": "^1.0.0", "cssom": "^0.4.1", "cssstyle": "^2.0.0", "data-urls": "^1.1.0", "domexception": "^1.0.1", "escodegen": "^1.11.1", "html-encoding-sniffer": "^1.0.2", "nwsapi": "^2.2.0", "parse5": "5.1.0", "pn": "^1.1.0", "request": "^2.88.0", "request-promise-native": "^1.0.7", "saxes": "^3.1.9", "symbol-tree": "^3.2.2", "tough-cookie": "^3.0.1", "w3c-hr-time": "^1.0.1", "w3c-xmlserializer": "^1.1.2", "webidl-conversions": "^4.0.2", "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^7.0.0", "ws": "^7.0.0", "xml-name-validator": "^3.0.0" }, "dependencies": { "acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, "parse5": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", "dev": true }, "tough-cookie": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", "dev": true, "requires": { "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } }, "ws": { "version": "7.4.4", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", "dev": true, "requires": {} } } }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, "json-bigint": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", "dev": true, "requires": { "bignumber.js": "^9.0.0" } }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "json-parse-helpfulerror": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=", "dev": true, "requires": { "jju": "^1.1.0" } }, "json-ptr": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/json-ptr/-/json-ptr-1.3.2.tgz", "integrity": "sha512-tFH40YQ+lG7mgYYM1kGZOhQngO4SbOEHZJlA4W+NtetWZ20EUU3BPU+30uWRKumuAJoSo5eqrsXD2h72ioS8ew==", "dev": true, "requires": { "tslib": "^2.0.0" } }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "jsonc-parser": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", "dev": true }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { "graceful-fs": "^4.1.6" } }, "jsonld": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-4.0.1.tgz", "integrity": "sha512-ltEqMQB37ZxZnsgmI+9rqHYkz1M6PqUykuS1t2aQNuH1oiLrUDYz5nyVkHQDgjFd7CFKTIWeLiNhwdwFrH5o5A==", "dev": true, "requires": { "canonicalize": "^1.0.1", "lru-cache": "^5.1.1", "object.fromentries": "^2.0.2", "rdf-canonize": "^2.0.1", "request": "^2.88.0", "semver": "^6.3.0" }, "dependencies": { "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { "yallist": "^3.0.2" } }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true } } }, "jsonlint-mod": { "version": "1.7.6", "resolved": "https://registry.npmjs.org/jsonlint-mod/-/jsonlint-mod-1.7.6.tgz", "integrity": "sha512-oGuk6E1ehmIpw0w9ttgb2KsDQQgGXBzZczREW8OfxEm9eCQYL9/LCexSnh++0z3AiYGcXpBgqDSx9AAgzl/Bvg==", "dev": true, "requires": { "chalk": "^2.4.2", "JSV": "^4.0.2", "underscore": "^1.9.1" } }, "jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, "jsonschema": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==", "dev": true }, "JSONStream": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "requires": { "jsonparse": "^1.2.0", "through": ">=2.2.7 <3" } }, "jsonwebtoken": { "version": "8.5.1", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", "dev": true, "requires": { "jws": "^3.2.2", "lodash.includes": "^4.3.0", "lodash.isboolean": "^3.0.3", "lodash.isinteger": "^4.0.4", "lodash.isnumber": "^3.0.3", "lodash.isplainobject": "^4.0.6", "lodash.isstring": "^4.0.1", "lodash.once": "^4.0.0", "ms": "^2.1.1", "semver": "^5.6.0" }, "dependencies": { "jwa": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", "dev": true, "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "jws": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", "dev": true, "requires": { "jwa": "^1.4.1", "safe-buffer": "^5.0.1" } }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" } }, "JSV": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz", "integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=", "dev": true }, "jszip": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", "requires": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "set-immediate-shim": "~1.0.1" } }, "jwa": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", "dev": true, "requires": { "buffer-equal-constant-time": "1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "jws": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", "dev": true, "requires": { "jwa": "^2.0.0", "safe-buffer": "^5.0.1" } }, "karma": { "version": "6.3.16", "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.16.tgz", "integrity": "sha512-nEU50jLvDe5yvXqkEJRf8IuvddUkOY2x5Xc4WXHz6dxINgGDrgD2uqQWeVrJs4hbfNaotn+HQ1LZJ4yOXrL7xQ==", "dev": true, "requires": { "body-parser": "^1.19.0", "braces": "^3.0.2", "chokidar": "^3.5.1", "colors": "1.4.0", "connect": "^3.7.0", "di": "^0.0.1", "dom-serialize": "^2.2.1", "glob": "^7.1.7", "graceful-fs": "^4.2.6", "http-proxy": "^1.18.1", "isbinaryfile": "^4.0.8", "lodash": "^4.17.21", "log4js": "^6.4.1", "mime": "^2.5.2", "minimatch": "^3.0.4", "mkdirp": "^0.5.5", "qjobs": "^1.2.0", "range-parser": "^1.2.1", "rimraf": "^3.0.2", "socket.io": "^4.2.0", "source-map": "^0.6.1", "tmp": "^0.2.1", "ua-parser-js": "^0.7.30", "yargs": "^16.1.1" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, "mime": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", "dev": true }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", "dev": true, "requires": { "rimraf": "^3.0.0" } }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } }, "yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true } } }, "karma-chrome-launcher": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", "dev": true, "requires": { "which": "^1.2.1" } }, "karma-cli": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-2.0.0.tgz", "integrity": "sha512-1Kb28UILg1ZsfqQmeELbPzuEb5C6GZJfVIk0qOr8LNYQuYWmAaqP16WpbpKEjhejDrDYyYOwwJXSZO6u7q5Pvw==", "dev": true, "requires": { "resolve": "^1.3.3" } }, "karma-coverage-istanbul-reporter": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^3.0.6", "istanbul-reports": "^3.0.2", "minimatch": "^3.0.4" } }, "karma-jasmine": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", "dev": true, "requires": { "jasmine-core": "^3.6.0" } }, "karma-jasmine-html-reporter": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", "dev": true, "requires": {} }, "karma-source-map-support": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, "requires": { "source-map-support": "^0.5.5" } }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "dev": true, "requires": { "json-buffer": "3.0.0" } }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "klona": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", "dev": true }, "kuler": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", "dev": true }, "latest-version": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "dev": true, "requires": { "package-json": "^6.3.0" } }, "lazystream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", "dev": true, "requires": { "readable-stream": "^2.0.5" } }, "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { "invert-kv": "^1.0.0" } }, "less": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", "dev": true, "requires": { "copy-anything": "^2.0.1", "errno": "^0.1.1", "graceful-fs": "^4.1.2", "image-size": "~0.5.0", "make-dir": "^2.1.0", "mime": "^1.4.1", "needle": "^2.5.2", "parse-node-version": "^1.0.1", "source-map": "~0.6.0", "tslib": "^2.3.0" }, "dependencies": { "image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", "dev": true, "optional": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true } } }, "less-loader": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", "dev": true, "requires": { "klona": "^2.0.4" } }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" } }, "license-webpack-plugin": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.0.tgz", "integrity": "sha512-b9iMrROrw2fTOJBZ57h0xJfT5/1Cxg4ucYbtpWoukv4Awb2TFPfDDFVHNM8w6SYQpVfB13a5tQJxgGamqwrsyw==", "dev": true, "requires": { "webpack-sources": "^3.0.0" } }, "lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "requires": { "immediate": "~3.0.5" } }, "lighthouse": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/lighthouse/-/lighthouse-7.3.0.tgz", "integrity": "sha512-c3loU7ptP8TAlR+bBhc+5ClALx/YVRSh8m5KPiDZQ7wNYxRnhZjDDz6rLzd5gLDhjVwhjMv1APypZegDOFkKOQ==", "dev": true, "requires": { "axe-core": "4.1.3", "chrome-launcher": "^0.13.4", "configstore": "^5.0.1", "csp_evaluator": "^1.0.1", "cssstyle": "1.2.1", "details-element-polyfill": "^2.4.0", "http-link-header": "^0.8.0", "inquirer": "^7.3.3", "intl": "^1.2.5", "intl-messageformat": "^4.4.0", "intl-pluralrules": "^1.0.3", "jpeg-js": "^0.4.1", "js-library-detector": "^6.4.0", "jsonld": "^4.0.1", "jsonlint-mod": "^1.7.6", "lighthouse-logger": "^1.2.0", "lighthouse-stack-packs": "^1.4.0", "lodash.get": "^4.4.2", "lodash.isequal": "^4.5.0", "lodash.set": "^4.3.2", "lookup-closest-locale": "6.0.4", "metaviewport-parser": "0.2.0", "open": "^6.4.0", "parse-cache-control": "1.0.1", "ps-list": "^7.2.0", "raven": "^2.2.1", "rimraf": "^2.6.1", "robots-parser": "^2.0.1", "semver": "^5.3.0", "speedline-core": "^1.4.3", "third-party-web": "^0.12.2", "update-notifier": "^4.1.0", "ws": "3.3.2", "yargs": "^16.1.1", "yargs-parser": "^20.2.4" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true }, "cssstyle": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.1.tgz", "integrity": "sha512-7DYm8qe+gPx/h77QlCyFmX80+fGaE/6A/Ekl0zaszYOubvySO2saYFdQ78P29D0UsULxFKCetDGNaNRUdSF+2A==", "dev": true, "requires": { "cssom": "0.3.x" } }, "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true }, "open": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", "dev": true, "requires": { "is-wsl": "^1.1.0" } }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "ws": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.2.tgz", "integrity": "sha512-t+WGpsNxhMR4v6EClXS8r8km5ZljKJzyGhJf7goJz9k5Ye3+b5Bvno5rjqPuIBn5mnn5GBb7o8IrIWHxX1qOLQ==", "dev": true, "requires": { "async-limiter": "~1.0.0", "safe-buffer": "~5.1.0", "ultron": "~1.1.0" } }, "y18n": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", "dev": true }, "yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } }, "yargs-parser": { "version": "20.2.7", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", "dev": true } } }, "lighthouse-logger": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/lighthouse-logger/-/lighthouse-logger-1.2.0.tgz", "integrity": "sha512-wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==", "dev": true, "requires": { "debug": "^2.6.8", "marky": "^1.2.0" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "lighthouse-stack-packs": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/lighthouse-stack-packs/-/lighthouse-stack-packs-1.4.0.tgz", "integrity": "sha512-wdv94WUjaqUwtW8DOapng45Yah62c5O5geNVeoSQlnoagfbTO/YbiwNlfzDIF1xNKRkPlsfr/oWHhXsaHXDivg==", "dev": true }, "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, "listenercount": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", "dev": true }, "load-json-file": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", "pify": "^2.0.0", "strip-bom": "^3.0.0" }, "dependencies": { "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { "error-ex": "^1.2.0" } }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true } } }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", "dev": true }, "loader-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" } }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "lodash._isnative": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz", "integrity": "sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw=", "dev": true }, "lodash._objecttypes": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz", "integrity": "sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE=", "dev": true }, "lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", "dev": true }, "lodash._shimkeys": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", "integrity": "sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM=", "dev": true, "requires": { "lodash._objecttypes": "~2.4.1" } }, "lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", "dev": true }, "lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, "lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", "dev": true }, "lodash.difference": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", "dev": true }, "lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", "dev": true }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, "lodash.includes": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", "dev": true }, "lodash.isarguments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", "dev": true }, "lodash.isboolean": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=", "dev": true }, "lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", "dev": true }, "lodash.isinteger": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=", "dev": true }, "lodash.isnumber": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=", "dev": true }, "lodash.isobject": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", "dev": true, "requires": { "lodash._objecttypes": "~2.4.1" } }, "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", "dev": true }, "lodash.isstring": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", "dev": true }, "lodash.keys": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", "dev": true, "requires": { "lodash._isnative": "~2.4.1", "lodash._shimkeys": "~2.4.1", "lodash.isobject": "~2.4.1" } }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, "lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", "dev": true }, "lodash.set": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", "integrity": "sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=", "dev": true }, "lodash.snakecase": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=", "dev": true }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, "lodash.template": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "dev": true, "requires": { "lodash._reinterpolate": "^3.0.0", "lodash.templatesettings": "^4.0.0" } }, "lodash.templatesettings": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", "dev": true, "requires": { "lodash._reinterpolate": "^3.0.0" } }, "lodash.toarray": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", "dev": true }, "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", "dev": true }, "lodash.union": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", "dev": true }, "lodash.values": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz", "integrity": "sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ=", "dev": true, "requires": { "lodash.keys": "~2.4.1" } }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "requires": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "log4js": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.1.tgz", "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", "dev": true, "requires": { "date-format": "^4.0.3", "debug": "^4.3.3", "flatted": "^3.2.4", "rfdc": "^1.3.0", "streamroller": "^3.0.2" }, "dependencies": { "debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" } }, "flatted": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", "dev": true } } }, "logform": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", "dev": true, "requires": { "colors": "^1.2.1", "fast-safe-stringify": "^2.0.4", "fecha": "^4.2.0", "ms": "^2.1.1", "triple-beam": "^1.3.0" }, "dependencies": { "colors": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true } } }, "long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", "dev": true }, "longest-streak": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", "dev": true }, "lookup-closest-locale": { "version": "6.0.4", "resolved": "https://registry.npmjs.org/lookup-closest-locale/-/lookup-closest-locale-6.0.4.tgz", "integrity": "sha512-bWoFbSGe6f1GvMGzj17LrwMX4FhDXDwZyH04ySVCPbtOJADcSRguZNKewoJ3Ful/MOxD/wRHvFPadk/kYZUbuQ==", "dev": true }, "lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, "lower-case-first": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", "dev": true, "requires": { "lower-case": "^1.1.2" } }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { "yallist": "^4.0.0" } }, "lru-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", "dev": true, "requires": { "es5-ext": "~0.10.2" } }, "lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", "dev": true }, "magic-string": { "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", "dev": true, "requires": { "sourcemap-codec": "^1.4.4" } }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "requires": { "pify": "^4.0.1", "semver": "^5.6.0" }, "dependencies": { "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "make-fetch-happen": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, "requires": { "agentkeepalive": "^4.1.3", "cacache": "^15.2.0", "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^6.0.0", "minipass": "^3.1.3", "minipass-collect": "^1.0.2", "minipass-fetch": "^1.3.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.2", "promise-retry": "^2.0.1", "socks-proxy-agent": "^6.0.0", "ssri": "^8.0.0" }, "dependencies": { "socks-proxy-agent": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", "dev": true, "requires": { "agent-base": "^6.0.2", "debug": "^4.3.1", "socks": "^2.6.1" } } } }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { "object-visit": "^1.0.0" } }, "markdown-escapes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", "dev": true }, "markdown-table": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz", "integrity": "sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==", "dev": true, "requires": { "repeat-string": "^1.0.0" } }, "marked": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", "dev": true }, "marked-terminal": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.3.0.tgz", "integrity": "sha512-+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A==", "dev": true, "requires": { "ansi-escapes": "^3.1.0", "cardinal": "^2.1.1", "chalk": "^2.4.1", "cli-table": "^0.3.1", "node-emoji": "^1.4.1", "supports-hyperlinks": "^1.0.1" }, "dependencies": { "ansi-escapes": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", "dev": true } } }, "marky": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/marky/-/marky-1.2.1.tgz", "integrity": "sha512-md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ==", "dev": true }, "md5": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", "dev": true, "requires": { "charenc": "0.0.2", "crypt": "0.0.2", "is-buffer": "~1.1.6" } }, "mdast-util-compact": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz", "integrity": "sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==", "dev": true, "requires": { "unist-util-visit": "^2.0.0" }, "dependencies": { "unist-util-is": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true }, "unist-util-visit": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" } }, "unist-util-visit-parents": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" } } } }, "mdast-util-definitions": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", "dev": true, "requires": { "unist-util-visit": "^2.0.0" }, "dependencies": { "unist-util-is": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true }, "unist-util-visit": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" } }, "unist-util-visit-parents": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" } } } }, "mdast-util-to-hast": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.2.0.tgz", "integrity": "sha512-JoPBfJ3gBnHZ18icCwHR50orC9kNH81tiR1gs01D8Q5YpV6adHNO9nKNuFBCJQ941/32PT1a63UF/DitmS3amQ==", "dev": true, "requires": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", "mdast-util-definitions": "^4.0.0", "mdurl": "^1.0.0", "unist-builder": "^2.0.0", "unist-util-generated": "^1.0.0", "unist-util-position": "^3.0.0", "unist-util-visit": "^2.0.0" }, "dependencies": { "unist-util-is": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true }, "unist-util-visit": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" } }, "unist-util-visit-parents": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" } } } }, "mdn-data": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", "dev": true }, "mdurl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", "dev": true }, "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", "dev": true }, "mem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { "mimic-fn": "^1.0.0" }, "dependencies": { "mimic-fn": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", "dev": true } } }, "memfs": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", "dev": true, "requires": { "fs-monkey": "1.0.3" } }, "memoizee": { "version": "0.4.15", "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", "dev": true, "requires": { "d": "^1.0.1", "es5-ext": "^0.10.53", "es6-weak-map": "^2.0.3", "event-emitter": "^0.3.5", "is-promise": "^2.2.2", "lru-queue": "^0.1.0", "next-tick": "^1.1.0", "timers-ext": "^0.1.7" }, "dependencies": { "next-tick": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", "dev": true } } }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, "metaviewport-parser": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/metaviewport-parser/-/metaviewport-parser-0.2.0.tgz", "integrity": "sha1-U1w84cz2IjpQJf3cahw2UF9+fbE=", "dev": true }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", "dev": true }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.2.3" } }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true }, "mime-db": { "version": "1.51.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" }, "mime-types": { "version": "2.1.34", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", "requires": { "mime-db": "1.51.0" } }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, "mini-css-extract-plugin": { "version": "2.4.5", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.5.tgz", "integrity": "sha512-oEIhRucyn1JbT/1tU2BhnwO6ft1jjH1iCX9Gc59WFMg0n5773rQU0oyQ0zzeYFFuBfONaRbQJyGoPtuNseMxjA==", "dev": true, "requires": { "schema-utils": "^4.0.0" }, "dependencies": { "ajv": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, "ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.3" } }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" } } } }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "minipass": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, "requires": { "yallist": "^4.0.0" } }, "minipass-collect": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, "requires": { "minipass": "^3.0.0" } }, "minipass-fetch": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", "minipass-sized": "^1.0.3", "minizlib": "^2.0.0" } }, "minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "requires": { "minipass": "^3.0.0" } }, "minipass-json-stream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "dev": true, "requires": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" } }, "minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "requires": { "minipass": "^3.0.0" } }, "minipass-sized": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "requires": { "minipass": "^3.0.0" } }, "minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "^2.0.4" } } } }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "morgan": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", "dev": true, "requires": { "basic-auth": "~2.0.1", "debug": "2.6.9", "depd": "~2.0.0", "on-finished": "~2.3.0", "on-headers": "~1.0.2" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "multicast-dns": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, "requires": { "dns-packet": "^1.3.1", "thunky": "^1.0.2" } }, "multicast-dns-service-types": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, "mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", "dev": true, "optional": true }, "nanoid": { "version": "3.1.30", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", "dev": true }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "fragment-cache": "^0.2.1", "is-windows": "^1.0.2", "kind-of": "^6.0.2", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" } }, "nash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/nash/-/nash-3.0.0.tgz", "integrity": "sha512-M5SahEycXUmko3zOvsBkF6p94CWLhnyy9hfpQ9Qzp+rQkQ8D1OaTlfTl1OBWktq9Fak3oDXKU+ev7tiMaMu+1w==", "dev": true, "requires": { "async": "^1.3.0", "flat-arguments": "^1.0.0", "lodash": "^4.17.5", "minimist": "^1.1.0" }, "dependencies": { "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true } } }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "needle": { "version": "2.9.1", "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", "dev": true, "optional": true, "requires": { "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" }, "dependencies": { "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "optional": true, "requires": { "ms": "^2.1.1" } } } }, "negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", "dev": true }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, "netmask": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=", "dev": true }, "next-tick": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, "nice-napi": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "dev": true, "optional": true, "requires": { "node-addon-api": "^3.0.0", "node-gyp-build": "^4.2.2" }, "dependencies": { "node-addon-api": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true, "optional": true } } }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "no-case": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { "lower-case": "^1.1.1" } }, "node-addon-api": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", "dev": true, "optional": true }, "node-emoji": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", "dev": true, "requires": { "lodash.toarray": "^4.4.0" } }, "node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", "dev": true }, "node-forge": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", "dev": true }, "node-gyp": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", "dev": true, "optional": true, "requires": { "env-paths": "^2.2.0", "glob": "^7.1.4", "graceful-fs": "^4.2.3", "nopt": "^5.0.0", "npmlog": "^4.1.2", "request": "^2.88.2", "rimraf": "^3.0.2", "semver": "^7.3.2", "tar": "^6.0.2", "which": "^2.0.2" }, "dependencies": { "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "optional": true, "requires": { "glob": "^7.1.3" } }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "optional": true, "requires": { "lru-cache": "^6.0.0" } }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "optional": true, "requires": { "isexe": "^2.0.0" } } } }, "node-gyp-build": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz", "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==", "dev": true, "optional": true }, "node-releases": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", "dev": true }, "nopt": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", "dev": true, "requires": { "abbrev": "1" } }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" }, "dependencies": { "hosted-git-info": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "dev": true }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, "npm-bundled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", "dev": true, "requires": { "npm-normalize-package-bin": "^1.0.1" } }, "npm-install-checks": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", "dev": true, "requires": { "semver": "^7.1.1" }, "dependencies": { "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } } } }, "npm-normalize-package-bin": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true }, "npm-package-arg": { "version": "8.1.5", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", "dev": true, "requires": { "hosted-git-info": "^4.0.1", "semver": "^7.3.4", "validate-npm-package-name": "^3.0.0" }, "dependencies": { "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } } } }, "npm-packlist": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", "dev": true, "requires": { "glob": "^7.1.6", "ignore-walk": "^4.0.1", "npm-bundled": "^1.1.1", "npm-normalize-package-bin": "^1.0.1" } }, "npm-pick-manifest": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", "dev": true, "requires": { "npm-install-checks": "^4.0.0", "npm-normalize-package-bin": "^1.0.1", "npm-package-arg": "^8.1.2", "semver": "^7.3.4" }, "dependencies": { "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } } } }, "npm-registry-fetch": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz", "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==", "dev": true, "requires": { "make-fetch-happen": "^9.0.1", "minipass": "^3.1.3", "minipass-fetch": "^1.3.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.0.0", "npm-package-arg": "^8.0.0" } }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { "path-key": "^2.0.0" } }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "dev": true, "optional": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", "gauge": "~2.7.3", "set-blocking": "~2.0.0" } }, "nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "dev": true, "requires": { "boolbase": "~1.0.0" } }, "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "nunjucks": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.3.tgz", "integrity": "sha512-psb6xjLj47+fE76JdZwskvwG4MYsQKXUtMsPh6U0YMvmyjRtKRFcxnlXGWglNybtNTNVmGdp94K62/+NjF5FDQ==", "dev": true, "requires": { "a-sync-waterfall": "^1.0.0", "asap": "^2.0.3", "commander": "^5.1.0" }, "dependencies": { "commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true } } }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "object-inspect": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", "dev": true }, "object-is": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { "isobject": "^3.0.0" } }, "object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", "has-symbols": "^1.0.1", "object-keys": "^1.1.1" } }, "object.fromentries": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz", "integrity": "sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.18.0-next.2", "has": "^1.0.3" } }, "object.getownpropertydescriptors": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.18.0-next.2" } }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { "isobject": "^3.0.1" } }, "object.values": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.18.0-next.2", "has": "^1.0.3" } }, "objectdiff": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/objectdiff/-/objectdiff-1.1.0.tgz", "integrity": "sha1-jXoVvmy4Zw34pJDMa+EqTwXqgvQ=", "dev": true }, "obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, "omit-deep": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/omit-deep/-/omit-deep-0.3.0.tgz", "integrity": "sha1-IcivNJm8rdKWUaIyy8rLxSRF6+w=", "dev": true, "requires": { "is-plain-object": "^2.0.1", "unset-value": "^0.1.1" }, "dependencies": { "has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", "isobject": "^2.0.0" }, "dependencies": { "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" } } } }, "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true }, "unset-value": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-0.1.2.tgz", "integrity": "sha1-UGgQuGfyfCpabpsEgzYx9t5Y0xA=", "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" } } } }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true, "requires": { "ee-first": "1.1.1" } }, "on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { "wrappy": "1" } }, "one-time": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", "dev": true, "requires": { "fn.name": "1.x.x" } }, "onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "open": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "dev": true, "requires": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" } }, "openapi3-ts": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-1.4.0.tgz", "integrity": "sha512-8DmE2oKayvSkIR3XSZ4+pRliBsx19bSNeIzkTPswY8r4wvjX86bMxsORdqwAwMxE8PefOcSAT2auvi/0TZe9yA==", "dev": true }, "opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", "word-wrap": "~1.2.3" } }, "ora": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, "requires": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.5.0", "is-interactive": "^1.0.0", "is-unicode-supported": "^0.1.0", "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "os-locale": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { "execa": "^0.7.0", "lcid": "^1.0.0", "mem": "^1.1.0" }, "dependencies": { "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" } }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" } }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true } } }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, "p-defer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", "dev": true }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { "p-limit": "^2.0.0" } }, "p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "requires": { "aggregate-error": "^3.0.0" } }, "p-retry": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", "dev": true, "requires": { "@types/retry": "^0.12.0", "retry": "^0.13.1" }, "dependencies": { "retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true } } }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "pac-proxy-agent": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-4.1.0.tgz", "integrity": "sha512-ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q==", "dev": true, "requires": { "@tootallnate/once": "1", "agent-base": "6", "debug": "4", "get-uri": "3", "http-proxy-agent": "^4.0.1", "https-proxy-agent": "5", "pac-resolver": "^4.1.0", "raw-body": "^2.2.0", "socks-proxy-agent": "5" } }, "pac-resolver": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.1.0.tgz", "integrity": "sha512-d6lf2IrZJJ7ooVHr7BfwSjRO1yKSJMaiiWYSHcrxSIUtZrCa4KKGwcztdkZ/E9LFleJfjoi1yl+XLR7AX24nbQ==", "dev": true, "requires": { "degenerator": "^2.2.0", "ip": "^1.1.5", "netmask": "^1.0.6" } }, "package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "dev": true, "requires": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", "registry-url": "^5.0.0", "semver": "^6.2.0" } }, "pacote": { "version": "12.0.2", "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.2.tgz", "integrity": "sha512-Ar3mhjcxhMzk+OVZ8pbnXdb0l8+pimvlsqBGRNkble2NVgyqOGE3yrCGi/lAYq7E7NRDMz89R1Wx5HIMCGgeYg==", "dev": true, "requires": { "@npmcli/git": "^2.1.0", "@npmcli/installed-package-contents": "^1.0.6", "@npmcli/promise-spawn": "^1.2.0", "@npmcli/run-script": "^2.0.0", "cacache": "^15.0.5", "chownr": "^2.0.0", "fs-minipass": "^2.1.0", "infer-owner": "^1.0.4", "minipass": "^3.1.3", "mkdirp": "^1.0.3", "npm-package-arg": "^8.0.1", "npm-packlist": "^3.0.0", "npm-pick-manifest": "^6.0.0", "npm-registry-fetch": "^11.0.0", "promise-retry": "^2.0.1", "read-package-json-fast": "^2.0.1", "rimraf": "^3.0.2", "ssri": "^8.0.1", "tar": "^6.1.0" }, "dependencies": { "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } } } }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, "param-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "dev": true, "requires": { "no-case": "^2.2.0" } }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { "callsites": "^3.0.0" }, "dependencies": { "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true } } }, "parse-cache-control": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=", "dev": true }, "parse-entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "dev": true, "requires": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", "character-reference-invalid": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.0", "is-hexadecimal": "^1.0.0" } }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" } }, "parse-node-version": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", "dev": true }, "parse5": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", "devOptional": true }, "parse5-html-rewriting-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", "dev": true, "requires": { "parse5": "^6.0.1", "parse5-sax-parser": "^6.0.1" }, "dependencies": { "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true } } }, "parse5-htmlparser2-tree-adapter": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", "dev": true, "requires": { "parse5": "^6.0.1" }, "dependencies": { "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true } } }, "parse5-sax-parser": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", "dev": true, "requires": { "parse5": "^6.0.1" }, "dependencies": { "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true } } }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, "pascal-case": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", "dev": true, "requires": { "camel-case": "^3.0.0", "upper-case-first": "^1.1.0" } }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", "dev": true, "requires": { "no-case": "^2.2.0" } }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", "dev": true }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", "dev": true }, "picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { "pinkie": "^2.0.0" } }, "piscina": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.1.0.tgz", "integrity": "sha512-KTW4sjsCD34MHrUbx9eAAbuUSpVj407hQSgk/6Epkg0pbRBmv4a3UX7Sr8wxm9xYqQLnsN4mFOjqGDzHAdgKQg==", "dev": true, "requires": { "eventemitter-asyncresource": "^1.0.0", "hdr-histogram-js": "^2.0.1", "hdr-histogram-percentiles-obj": "^3.0.0", "nice-napi": "^1.0.2" } }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { "find-up": "^4.0.0" }, "dependencies": { "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" } }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" } }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true } } }, "plist": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz", "integrity": "sha512-ksrr8y9+nXOxQB2osVNqrgvX/XQPOXaU4BQMKjYq8PvaY1U18mo+fKgBSwzK+luSyinOuPae956lSVcBwxlAMg==", "dev": true, "requires": { "base64-js": "^1.5.1", "xmlbuilder": "^9.0.7" } }, "pn": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", "dev": true }, "png-async": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/png-async/-/png-async-0.9.4.tgz", "integrity": "sha512-B//AXX9TkneKfgtOpT1mdUnnhk2BImGD+a98vImsMU8uo1dBeHyW/kM2erWZ/CsYteTPU/xKG+t6T62heHkC3A==" }, "portfinder": { "version": "1.0.28", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", "dev": true, "requires": { "async": "^2.6.2", "debug": "^3.1.1", "mkdirp": "^0.5.5" }, "dependencies": { "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" } } } }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "postcss": { "version": "8.4.4", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.4.tgz", "integrity": "sha512-joU6fBsN6EIer28Lj6GDFoC/5yOZzLCfn0zHAn/MYXI7aPt4m4hK5KC5ovEZXy+lnCjmYIbQWngvju2ddyEr8Q==", "dev": true, "requires": { "nanoid": "^3.1.30", "picocolors": "^1.0.0", "source-map-js": "^1.0.1" }, "dependencies": { "source-map-js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.1.tgz", "integrity": "sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==", "dev": true } } }, "postcss-attribute-case-insensitive": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", "dev": true, "requires": { "postcss": "^7.0.2", "postcss-selector-parser": "^6.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-color-functional-notation": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", "dev": true, "requires": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-color-gray": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", "dev": true, "requires": { "@csstools/convert-colors": "^1.4.0", "postcss": "^7.0.5", "postcss-values-parser": "^2.0.0" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-color-hex-alpha": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", "dev": true, "requires": { "postcss": "^7.0.14", "postcss-values-parser": "^2.0.1" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-color-mod-function": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", "dev": true, "requires": { "@csstools/convert-colors": "^1.4.0", "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-color-rebeccapurple": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", "dev": true, "requires": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-custom-media": { "version": "7.0.8", "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", "dev": true, "requires": { "postcss": "^7.0.14" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-custom-properties": { "version": "8.0.11", "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", "dev": true, "requires": { "postcss": "^7.0.17", "postcss-values-parser": "^2.0.1" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-custom-selectors": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", "dev": true, "requires": { "postcss": "^7.0.2", "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { "cssesc": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "postcss-selector-parser": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { "cssesc": "^2.0.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-dir-pseudo-class": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", "dev": true, "requires": { "postcss": "^7.0.2", "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { "cssesc": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "postcss-selector-parser": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { "cssesc": "^2.0.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-double-position-gradients": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", "dev": true, "requires": { "postcss": "^7.0.5", "postcss-values-parser": "^2.0.0" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-env-function": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", "dev": true, "requires": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-focus-visible": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-focus-within": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-font-variant": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-gap-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-image-set-function": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", "dev": true, "requires": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-import": { "version": "14.0.2", "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", "dev": true, "requires": { "postcss-value-parser": "^4.0.0", "read-cache": "^1.0.0", "resolve": "^1.1.7" } }, "postcss-initial": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.4.tgz", "integrity": "sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-lab-function": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", "dev": true, "requires": { "@csstools/convert-colors": "^1.4.0", "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-loader": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", "dev": true, "requires": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", "semver": "^7.3.5" }, "dependencies": { "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" } } } }, "postcss-logical": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-media-minmax": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", "dev": true, "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", "dev": true, "requires": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.1.0" } }, "postcss-modules-scope": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.4" } }, "postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, "requires": { "icss-utils": "^5.0.0" } }, "postcss-nesting": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-overflow-shorthand": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-page-break": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-place": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", "dev": true, "requires": { "postcss": "^7.0.2", "postcss-values-parser": "^2.0.0" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-preset-env": { "version": "6.7.0", "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", "dev": true, "requires": { "autoprefixer": "^9.6.1", "browserslist": "^4.6.4", "caniuse-lite": "^1.0.30000981", "css-blank-pseudo": "^0.1.4", "css-has-pseudo": "^0.10.0", "css-prefers-color-scheme": "^3.1.1", "cssdb": "^4.4.0", "postcss": "^7.0.17", "postcss-attribute-case-insensitive": "^4.0.1", "postcss-color-functional-notation": "^2.0.1", "postcss-color-gray": "^5.0.0", "postcss-color-hex-alpha": "^5.0.3", "postcss-color-mod-function": "^3.0.3", "postcss-color-rebeccapurple": "^4.0.1", "postcss-custom-media": "^7.0.8", "postcss-custom-properties": "^8.0.11", "postcss-custom-selectors": "^5.1.2", "postcss-dir-pseudo-class": "^5.0.0", "postcss-double-position-gradients": "^1.0.0", "postcss-env-function": "^2.0.2", "postcss-focus-visible": "^4.0.0", "postcss-focus-within": "^3.0.0", "postcss-font-variant": "^4.0.0", "postcss-gap-properties": "^2.0.0", "postcss-image-set-function": "^3.0.1", "postcss-initial": "^3.0.0", "postcss-lab-function": "^2.0.1", "postcss-logical": "^3.0.0", "postcss-media-minmax": "^4.0.0", "postcss-nesting": "^7.0.0", "postcss-overflow-shorthand": "^2.0.0", "postcss-page-break": "^2.0.0", "postcss-place": "^4.0.1", "postcss-pseudo-class-any-link": "^6.0.0", "postcss-replace-overflow-wrap": "^3.0.0", "postcss-selector-matches": "^4.0.0", "postcss-selector-not": "^4.0.0" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-pseudo-class-any-link": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", "dev": true, "requires": { "postcss": "^7.0.2", "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { "cssesc": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", "dev": true }, "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "postcss-selector-parser": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "dev": true, "requires": { "cssesc": "^2.0.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-replace-overflow-wrap": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", "dev": true, "requires": { "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-selector-matches": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", "dev": true, "requires": { "balanced-match": "^1.0.0", "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-selector-not": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", "dev": true, "requires": { "balanced-match": "^1.0.0", "postcss": "^7.0.2" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-selector-parser": { "version": "6.0.6", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", "dev": true, "requires": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "postcss-value-parser": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", "dev": true }, "postcss-values-parser": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", "dev": true, "requires": { "flatten": "^1.0.2", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, "pretty-bytes": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", "dev": true }, "printj": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", "dev": true }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "promise-breaker": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/promise-breaker/-/promise-breaker-5.0.0.tgz", "integrity": "sha512-mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==", "dev": true }, "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, "promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, "requires": { "err-code": "^2.0.2", "retry": "^0.12.0" } }, "property-information": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", "dev": true, "requires": { "xtend": "^4.0.0" } }, "protobufjs": { "version": "6.10.2", "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.2.tgz", "integrity": "sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==", "dev": true, "requires": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", "@protobufjs/codegen": "^2.0.4", "@protobufjs/eventemitter": "^1.1.0", "@protobufjs/fetch": "^1.1.0", "@protobufjs/float": "^1.0.2", "@protobufjs/inquire": "^1.1.0", "@protobufjs/path": "^1.1.2", "@protobufjs/pool": "^1.1.0", "@protobufjs/utf8": "^1.1.0", "@types/long": "^4.0.1", "@types/node": "^13.7.0", "long": "^4.0.0" }, "dependencies": { "@types/node": { "version": "13.13.48", "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.48.tgz", "integrity": "sha512-z8wvSsgWQzkr4sVuMEEOvwMdOQjiRY2Y/ZW4fDfjfe3+TfQrZqFKOthBgk2RnVEmtOKrkwdZ7uTvsxTBLjKGDQ==", "dev": true } } }, "protractor": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", "dev": true, "requires": { "@types/q": "^0.0.32", "@types/selenium-webdriver": "^3.0.0", "blocking-proxy": "^1.0.0", "browserstack": "^1.5.1", "chalk": "^1.1.3", "glob": "^7.0.3", "jasmine": "2.8.0", "jasminewd2": "^2.1.0", "q": "1.4.1", "saucelabs": "^1.5.0", "selenium-webdriver": "3.6.0", "source-map-support": "~0.4.0", "webdriver-js-extender": "2.1.0", "webdriver-manager": "^12.1.7", "yargs": "^15.3.1" }, "dependencies": { "@types/q": { "version": "0.0.32", "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", "dev": true }, "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { "array-uniq": "^1.0.1" } }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", "has-ansi": "^2.0.0", "strip-ansi": "^3.0.0", "supports-color": "^2.0.0" } }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" }, "dependencies": { "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } } } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "del": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { "globby": "^5.0.0", "is-path-cwd": "^1.0.0", "is-path-in-cwd": "^1.0.0", "object-assign": "^4.0.1", "pify": "^2.0.0", "pinkie-promise": "^2.0.0", "rimraf": "^2.2.8" } }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "globby": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { "array-union": "^1.0.1", "arrify": "^1.0.0", "glob": "^7.0.3", "object-assign": "^4.0.1", "pify": "^2.0.0", "pinkie-promise": "^2.0.0" } }, "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, "is-path-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", "dev": true }, "is-path-in-cwd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { "is-path-inside": "^1.0.0" } }, "is-path-inside": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { "path-is-inside": "^1.0.1" } }, "jasmine": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", "dev": true, "requires": { "exit": "^0.1.2", "glob": "^7.0.6", "jasmine-core": "~2.8.0" } }, "jasmine-core": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", "dev": true }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" } }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" } }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "q": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", "dev": true }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { "source-map": "^0.5.6" } }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" } }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, "webdriver-manager": { "version": "12.1.8", "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", "dev": true, "requires": { "adm-zip": "^0.4.9", "chalk": "^1.1.1", "del": "^2.2.0", "glob": "^7.0.3", "ini": "^1.3.4", "minimist": "^1.2.0", "q": "^1.4.1", "request": "^2.87.0", "rimraf": "^2.5.2", "semver": "^5.3.0", "xml2js": "^0.4.17" } }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "dependencies": { "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } } } }, "yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { "cliui": "^6.0.0", "decamelize": "^1.2.0", "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" } }, "yargs-parser": { "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } } } }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", "dev": true, "requires": { "forwarded": "~0.1.2", "ipaddr.js": "1.9.1" } }, "proxy-agent": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-4.0.1.tgz", "integrity": "sha512-ODnQnW2jc/FUVwHHuaZEfN5otg/fMbvMxz9nMSUQfJ9JU7q2SZvSULSsjLloVgJOiv9yhc8GlNMKc4GkFmcVEA==", "dev": true, "requires": { "agent-base": "^6.0.0", "debug": "4", "http-proxy-agent": "^4.0.0", "https-proxy-agent": "^5.0.0", "lru-cache": "^5.1.1", "pac-proxy-agent": "^4.1.0", "proxy-from-env": "^1.0.0", "socks-proxy-agent": "^5.0.0" }, "dependencies": { "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { "yallist": "^3.0.2" } }, "yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true } } }, "proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true, "optional": true }, "ps-list": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-7.2.0.tgz", "integrity": "sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==", "dev": true }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "pupa": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", "dev": true, "requires": { "escape-goat": "^2.0.0" } }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, "qjobs": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "dev": true }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "dev": true }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { "safe-buffer": "^5.1.0" } }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true }, "raven": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/raven/-/raven-2.6.4.tgz", "integrity": "sha512-6PQdfC4+DQSFncowthLf+B6Hr0JpPsFBgTVYTAOq7tCmx/kR4SXbeawtPch20+3QfUcQDoJBLjWW1ybvZ4kXTw==", "dev": true, "requires": { "cookie": "0.3.1", "md5": "^2.2.1", "stack-trace": "0.0.10", "timed-out": "4.0.1", "uuid": "3.3.2" }, "dependencies": { "cookie": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", "dev": true }, "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", "dev": true } } }, "raw-body": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "dev": true, "requires": { "bytes": "3.1.0", "http-errors": "1.7.2", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, "dependencies": { "bytes": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "dev": true } } }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "dependencies": { "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true } } }, "rdf-canonize": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-2.0.1.tgz", "integrity": "sha512-/GVELjrfW8G/wS4QfDZ5Kq68cS1belVNJqZlcwiErerexeBUsgOINCROnP7UumWIBNdeCwTVLE9NVXMnRYK0lA==", "dev": true, "requires": { "semver": "^6.3.0", "setimmediate": "^1.0.5" } }, "re2": { "version": "1.15.9", "resolved": "https://registry.npmjs.org/re2/-/re2-1.15.9.tgz", "integrity": "sha512-AXWEhpMTBdC+3oqbjdU07dk0pBCvxh5vbOMLERL6Y8FYBSGn4vXlLe8cYszn64Yy7H8keVMrgPzoSvOd4mePpg==", "dev": true, "optional": true, "requires": { "install-artifact-from-github": "^1.2.0", "nan": "^2.14.2", "node-gyp": "^7.1.2" } }, "read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", "dev": true, "requires": { "pify": "^2.3.0" }, "dependencies": { "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true } } }, "read-package-json-fast": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", "dev": true, "requires": { "json-parse-even-better-errors": "^2.3.0", "npm-normalize-package-bin": "^1.0.1" } }, "read-pkg": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", "dev": true, "requires": { "normalize-package-data": "^2.3.2", "parse-json": "^4.0.0", "pify": "^3.0.0" }, "dependencies": { "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true } } }, "read-pkg-up": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { "find-up": "^2.0.0", "read-pkg": "^2.0.0" }, "dependencies": { "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { "locate-path": "^2.0.0" } }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { "p-locate": "^2.0.0", "path-exists": "^3.0.0" } }, "p-limit": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { "p-try": "^1.0.0" } }, "p-locate": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { "p-limit": "^1.1.0" } }, "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, "path-type": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { "pify": "^2.0.0" } }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "read-pkg": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { "load-json-file": "^2.0.0", "normalize-package-data": "^2.3.2", "path-type": "^2.0.0" } } } }, "readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" }, "dependencies": { "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, "readdir-cluster": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/readdir-cluster/-/readdir-cluster-1.3.0.tgz", "integrity": "sha512-vrIC5KfqjSXPu9hePdRiOrn6cutYCV35p7aohth9Xc402pkgeih1ewLuEcDTzjrJL2q/BnwW/a1aEum7c0AJOA==", "dev": true, "requires": { "editions": "^2.2.0" } }, "readdir-glob": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.1.tgz", "integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==", "dev": true, "requires": { "minimatch": "^3.0.4" } }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { "picomatch": "^2.2.1" } }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { "resolve": "^1.1.6" } }, "redeyed": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", "dev": true, "requires": { "esprima": "~4.0.0" } }, "reflect-metadata": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", "dev": true }, "regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, "regenerate-unicode-properties": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", "dev": true, "requires": { "regenerate": "^1.4.2" } }, "regenerator-runtime": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "dev": true }, "regenerator-transform": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", "dev": true, "requires": { "@babel/runtime": "^7.8.4" } }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" } }, "regex-parser": { "version": "2.2.11", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", "dev": true }, "regexp.prototype.flags": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, "regexpp": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", "dev": true }, "regexpu-core": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", "dev": true, "requires": { "regenerate": "^1.4.2", "regenerate-unicode-properties": "^9.0.0", "regjsgen": "^0.5.2", "regjsparser": "^0.7.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.0.0" } }, "registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", "dev": true, "requires": { "rc": "^1.2.8" } }, "registry-url": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", "dev": true, "requires": { "rc": "^1.2.8" } }, "regjsgen": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", "dev": true }, "regjsparser": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", "dev": true, "requires": { "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true } } }, "rehype-parse": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz", "integrity": "sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==", "dev": true, "requires": { "hast-util-from-parse5": "^6.0.0", "parse5": "^6.0.0" }, "dependencies": { "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", "dev": true } } }, "rehype-slug": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/rehype-slug/-/rehype-slug-2.0.3.tgz", "integrity": "sha512-7hgS91klce+p/1CrgMjV/JKyVmEevTM3YMkFtxF29twydKBSYVcy2x44z74SgCnzANj8H8N0g0O8F1OH1/OXJA==", "dev": true, "requires": { "github-slugger": "^1.1.1", "hast-util-has-property": "^1.0.0", "hast-util-is-element": "^1.0.0", "hast-util-to-string": "^1.0.0", "unist-util-visit": "^1.1.0" } }, "rehype-stringify": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-6.0.1.tgz", "integrity": "sha512-JfEPRDD4DiG7jet4md7sY07v6ACeb2x+9HWQtRPm2iA6/ic31hCv1SNBUtpolJASxQ/D8gicXiviW4TJKEMPKQ==", "dev": true, "requires": { "hast-util-to-html": "^6.0.0", "xtend": "^4.0.0" } }, "remark": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/remark/-/remark-12.0.1.tgz", "integrity": "sha512-gS7HDonkdIaHmmP/+shCPejCEEW+liMp/t/QwmF0Xt47Rpuhl32lLtDV1uKWvGoq+kxr5jSgg5oAIpGuyULjUw==", "dev": true, "requires": { "remark-parse": "^8.0.0", "remark-stringify": "^8.0.0", "unified": "^9.0.0" } }, "remark-html": { "version": "13.0.2", "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-13.0.2.tgz", "integrity": "sha512-LhSRQ+3RKdBqB/RGesFWkNNfkGqprDUCwjq54SylfFeNyZby5kqOG8Dn/vYsRoM8htab6EWxFXCY6XIZvMoRiQ==", "dev": true, "requires": { "hast-util-sanitize": "^3.0.0", "hast-util-to-html": "^7.0.0", "mdast-util-to-hast": "^10.0.0" }, "dependencies": { "hast-util-to-html": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-7.1.3.tgz", "integrity": "sha512-yk2+1p3EJTEE9ZEUkgHsUSVhIpCsL/bvT8E5GzmWc+N1Po5gBw+0F8bo7dpxXR0nu0bQVxVZGX2lBGF21CmeDw==", "dev": true, "requires": { "ccount": "^1.0.0", "comma-separated-tokens": "^1.0.0", "hast-util-is-element": "^1.0.0", "hast-util-whitespace": "^1.0.0", "html-void-elements": "^1.0.0", "property-information": "^5.0.0", "space-separated-tokens": "^1.0.0", "stringify-entities": "^3.0.1", "unist-util-is": "^4.0.0", "xtend": "^4.0.0" } }, "stringify-entities": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz", "integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==", "dev": true, "requires": { "character-entities-html4": "^1.0.0", "character-entities-legacy": "^1.0.0", "xtend": "^4.0.0" } }, "unist-util-is": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true } } }, "remark-parse": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", "dev": true, "requires": { "ccount": "^1.0.0", "collapse-white-space": "^1.0.2", "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0", "is-whitespace-character": "^1.0.0", "is-word-character": "^1.0.0", "markdown-escapes": "^1.0.0", "parse-entities": "^2.0.0", "repeat-string": "^1.5.4", "state-toggle": "^1.0.0", "trim": "0.0.1", "trim-trailing-lines": "^1.0.0", "unherit": "^1.0.4", "unist-util-remove-position": "^2.0.0", "vfile-location": "^3.0.0", "xtend": "^4.0.1" } }, "remark-stringify": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz", "integrity": "sha512-q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==", "dev": true, "requires": { "ccount": "^1.0.0", "is-alphanumeric": "^1.0.0", "is-decimal": "^1.0.0", "is-whitespace-character": "^1.0.0", "longest-streak": "^2.0.1", "markdown-escapes": "^1.0.0", "markdown-table": "^2.0.0", "mdast-util-compact": "^2.0.0", "parse-entities": "^2.0.0", "repeat-string": "^1.5.4", "state-toggle": "^1.0.0", "stringify-entities": "^3.0.0", "unherit": "^1.0.4", "xtend": "^4.0.1" }, "dependencies": { "stringify-entities": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.1.0.tgz", "integrity": "sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg==", "dev": true, "requires": { "character-entities-html4": "^1.0.0", "character-entities-legacy": "^1.0.0", "xtend": "^4.0.0" } } } }, "rename-keys": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/rename-keys/-/rename-keys-1.2.0.tgz", "integrity": "sha512-U7XpAktpbSgHTRSNRrjKSrjYkZKuhUukfoBlXWXUExCAqhzh1TU3BDRAfJmarcl5voKS+pbKU9MvyLWKZ4UEEg==", "dev": true }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", "dev": true }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" } }, "request-promise-core": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", "dev": true, "requires": { "lodash": "^4.17.19" } }, "request-promise-native": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", "dev": true, "requires": { "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" } }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, "resolve": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "resolve-url-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", "dev": true, "requires": { "adjust-sourcemap-loader": "^4.0.0", "convert-source-map": "^1.7.0", "loader-utils": "^2.0.0", "postcss": "^7.0.35", "source-map": "0.6.1" }, "dependencies": { "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { "lowercase-keys": "^1.0.0" } }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, "retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", "dev": true }, "retry-request": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.1.3.tgz", "integrity": "sha512-QnRZUpuPNgX0+D1xVxul6DbJ9slvo4Rm6iV/dn63e048MvGbUZiKySVt6Tenp04JqmchxjiLltGerOJys7kJYQ==", "dev": true, "requires": { "debug": "^4.1.1" } }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, "rfdc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "dev": true }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { "glob": "^7.1.3" } }, "robots-parser": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/robots-parser/-/robots-parser-2.3.0.tgz", "integrity": "sha512-RvuCITckrHM9k8DxCCU9rqWpuuKRfVX9iHG751dC3/EdERxp9gJATxYYdYOT3L0T+TAT4+27lENisk/VbHm47A==", "dev": true }, "router": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/router/-/router-1.3.5.tgz", "integrity": "sha512-kozCJZUhuSJ5VcLhSb3F8fsmGXy+8HaDbKCAerR1G6tq3mnMZFMuSohbFvGv1c5oMFipijDjRZuuN/Sq5nMf3g==", "dev": true, "requires": { "array-flatten": "3.0.0", "debug": "2.6.9", "methods": "~1.1.2", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "setprototypeof": "1.2.0", "utils-merge": "1.0.1" }, "dependencies": { "array-flatten": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==", "dev": true }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true } } }, "rsvp": { "version": "4.8.5", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", "dev": true }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "requires": { "queue-microtask": "^1.2.2" } }, "rusha": { "version": "0.8.13", "resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.13.tgz", "integrity": "sha1-mghOe4YLF7/zAVuSxnpqM2GRUTo=", "dev": true }, "rxjs": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.1.tgz", "integrity": "sha512-KExVEeZWxMZnZhUZtsJcFwz8IvPvgu4G2Z2QyqjZQzUGr32KDYuSxrEYO4w3tFFNbfLozcrKUTvTPi+E9ywJkQ==", "requires": { "tslib": "^2.1.0" } }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { "ret": "~0.1.10" } }, "safefs": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/safefs/-/safefs-4.2.0.tgz", "integrity": "sha512-1amPBO92jw/hWS+gH/u7z7EL7YxaJ8WecBQl49tMQ6Y6EQfndxNNKwlPqDOcwpUetdmK6nKLoVdjybVScRwq5A==", "dev": true, "requires": { "editions": "^2.2.0", "graceful-fs": "^4.2.3" } }, "safeps": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/safeps/-/safeps-7.0.1.tgz", "integrity": "sha1-FXPMsJy/AeAckFIr68bIsicL8hk=", "dev": true, "requires": { "editions": "^1.3.3", "extract-opts": "^3.3.1", "safefs": "^4.1.0", "taskgroup": "^5.0.0", "typechecker": "^4.3.0" }, "dependencies": { "editions": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", "dev": true } } }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sass": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0" } }, "sass-loader": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", "dev": true, "requires": { "klona": "^2.0.4", "neo-async": "^2.6.2" } }, "saucelabs": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", "dev": true, "requires": { "https-proxy-agent": "^2.2.1" }, "dependencies": { "agent-base": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, "requires": { "es6-promisify": "^5.0.0" } }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" } }, "https-proxy-agent": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "requires": { "agent-base": "^4.3.0", "debug": "^3.1.0" } } } }, "sax": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "saxes": { "version": "3.1.11", "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", "dev": true, "requires": { "xmlchars": "^2.1.1" } }, "scandirectory": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/scandirectory/-/scandirectory-3.0.1.tgz", "integrity": "sha1-Jd0gFCfDPM5Pj0Cy838tA9B4V7o=", "dev": true, "requires": { "editions": "^1.3.1", "ignorefs": "^1.1.1", "readdir-cluster": "^1.1.0" }, "dependencies": { "editions": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", "dev": true } } }, "schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "requires": { "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", "ajv-keywords": "^3.5.2" } }, "secure-compare": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz", "integrity": "sha1-8aAymzCLIh+uN7mXTz1XjQypmeM=", "dev": true }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", "dev": true }, "selenium-webdriver": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "requires": { "jszip": "^3.1.3", "rimraf": "^2.5.4", "tmp": "0.0.30", "xml2js": "^0.4.17" }, "dependencies": { "tmp": { "version": "0.0.30", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", "requires": { "os-tmpdir": "~1.0.1" } } } }, "selfsigned": { "version": "1.10.11", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "dev": true, "requires": { "node-forge": "^0.10.0" } }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "semver-diff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "dev": true, "requires": { "semver": "^6.3.0" } }, "semver-dsl": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", "dev": true, "requires": { "semver": "^5.3.0" }, "dependencies": { "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "dev": true, "requires": { "debug": "2.6.9", "depd": "~1.1.2", "destroy": "~1.0.4", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", "http-errors": "~1.7.2", "mime": "1.6.0", "ms": "2.1.1", "on-finished": "~2.3.0", "range-parser": "~1.2.1", "statuses": "~1.5.0" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" }, "dependencies": { "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true } } }, "sentence-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", "dev": true, "requires": { "no-case": "^2.2.0", "upper-case-first": "^1.1.2" } }, "serialize-javascript": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { "randombytes": "^2.1.0" } }, "serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", "http-errors": "~1.6.2", "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", "statuses": ">= 1.4.0 < 2" } }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true } } }, "serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.17.1" } }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", "dev": true }, "setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", "dev": true }, "shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "dev": true, "requires": { "kind-of": "^6.0.2" } }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "shelljs": { "version": "0.8.4", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", "dev": true, "requires": { "glob": "^7.0.0", "interpret": "^1.0.0", "rechoir": "^0.6.2" } }, "side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, "requires": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" } }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, "simple-sha1": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/simple-sha1/-/simple-sha1-3.1.0.tgz", "integrity": "sha512-ArTptMRC1v08H8ihPD6l0wesKvMfF9e8XL5rIHPanI7kGOsSsbY514MwVu6X1PITHCTB2F08zB7cyEbfc4wQjg==", "dev": true, "requires": { "queue-microtask": "^1.2.2", "rusha": "^0.8.13" } }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "dev": true, "requires": { "is-arrayish": "^0.3.1" }, "dependencies": { "is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true } } }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true } } }, "smart-buffer": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", "dev": true }, "snake-case": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", "dev": true, "requires": { "no-case": "^2.2.0" } }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "map-cache": "^0.2.2", "source-map": "^0.5.6", "source-map-resolve": "^0.5.0", "use": "^3.1.0" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "snapdragon-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "socket.io": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", "dev": true, "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", "debug": "~4.3.2", "engine.io": "~6.1.0", "socket.io-adapter": "~2.3.3", "socket.io-parser": "~4.0.4" }, "dependencies": { "debug": { "version": "4.3.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" } } } }, "socket.io-adapter": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==", "dev": true }, "socket.io-parser": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", "dev": true, "requires": { "@types/component-emitter": "^1.2.10", "component-emitter": "~1.3.0", "debug": "~4.3.1" } }, "sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "requires": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" }, "dependencies": { "uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true } } }, "socks": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", "dev": true, "requires": { "ip": "^1.1.5", "smart-buffer": "^4.1.0" } }, "socks-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", "dev": true, "requires": { "agent-base": "6", "debug": "4", "socks": "^2.3.3" } }, "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true }, "source-map-js": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", "dev": true }, "source-map-loader": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.0.tgz", "integrity": "sha512-GKGWqWvYr04M7tn8dryIWvb0s8YM41z82iQv01yBtIylgxax0CwvSy6gc2Y02iuXwEfGWRlMicH0nvms9UZphw==", "dev": true, "requires": { "abab": "^2.0.5", "iconv-lite": "^0.6.2", "source-map-js": "^0.6.2" }, "dependencies": { "iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } } } }, "source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", "urix": "^0.1.0" } }, "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "source-map-url": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, "sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, "space-separated-tokens": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", "dev": true }, "spawn-command": { "version": "0.0.2-1", "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", "dev": true }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", "dev": true }, "spdx-license-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-2.1.0.tgz", "integrity": "sha1-N4j/tcgLJK++goOTTp5mhOpqIY0=", "dev": true }, "spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "requires": { "debug": "^4.1.0", "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" } }, "spdy-transport": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "requires": { "debug": "^4.1.0", "detect-node": "^2.0.4", "hpack.js": "^2.1.6", "obuf": "^1.1.2", "readable-stream": "^3.0.6", "wbuf": "^1.7.3" }, "dependencies": { "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } } } }, "speedline-core": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/speedline-core/-/speedline-core-1.4.3.tgz", "integrity": "sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==", "dev": true, "requires": { "@types/node": "*", "image-ssim": "^0.2.0", "jpeg-js": "^0.4.1" } }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "sse4_crc32": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/sse4_crc32/-/sse4_crc32-6.0.1.tgz", "integrity": "sha512-FUTYXpLroqytNKWIfHzlDWoy9E4tmBB/RklNMy6w3VJs+/XEYAHgbiylg4SS43iOk/9bM0BlJ2EDpFAGT66IoQ==", "dev": true, "optional": true, "requires": { "bindings": "^1.3.0", "node-addon-api": "^1.3.0" } }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", "dashdash": "^1.12.0", "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" } }, "ssri": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", "dev": true, "requires": { "minipass": "^3.1.1" } }, "stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", "dev": true }, "stack-trace": { "version": "0.0.10", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", "dev": true }, "state-toggle": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", "dev": true }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } } } }, "statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, "stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", "dev": true }, "stream-shift": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", "dev": true }, "streamroller": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.2.tgz", "integrity": "sha512-ur6y5S5dopOaRXBuRIZ1u6GC5bcEXHRZKgfBjfCglMhmIf+roVCECjvkEYzNQOXIN2/JPnkMPW/8B3CZoKaEPA==", "dev": true, "requires": { "date-format": "^4.0.3", "debug": "^4.1.1", "fs-extra": "^10.0.0" }, "dependencies": { "fs-extra": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" } }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true } } }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { "safe-buffer": "~5.1.0" }, "dependencies": { "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" } } }, "string-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", "dev": true, "requires": { "strip-ansi": "^3.0.0" }, "dependencies": { "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" } } } }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "string.prototype.trimend": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, "stringify-entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-2.0.0.tgz", "integrity": "sha512-fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==", "dev": true, "requires": { "character-entities-html4": "^1.0.0", "character-entities-legacy": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.2", "is-hexadecimal": "^1.0.0" } }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { "ansi-regex": "^5.0.1" } }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "stylus": { "version": "0.55.0", "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.55.0.tgz", "integrity": "sha512-MuzIIVRSbc8XxHH7FjkvWqkIcr1BvoMZoR/oFuAJDlh7VSaNJzrB4uJ38GRQa+mWjLXODAMzeDe0xi9GYbGwnw==", "dev": true, "requires": { "css": "^3.0.0", "debug": "~3.1.0", "glob": "^7.1.6", "mkdirp": "~1.0.4", "safer-buffer": "^2.1.2", "sax": "~1.2.4", "semver": "^6.3.0", "source-map": "^0.7.3" }, "dependencies": { "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" } }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, "stylus-loader": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", "dev": true, "requires": { "fast-glob": "^3.2.7", "klona": "^2.0.4", "normalize-path": "^3.0.0" } }, "superstatic": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/superstatic/-/superstatic-7.1.0.tgz", "integrity": "sha512-yBU8iw07nM3Bu4jFc8lnKwLey0cj61OaGmFJZcYC2X+kEpXVmXzERJ3OTAHZAESe1OTeNIuWadt81U5IULGGAA==", "dev": true, "requires": { "basic-auth-connect": "^1.0.0", "chalk": "^1.1.3", "compare-semver": "^1.0.0", "compression": "^1.7.0", "connect": "^3.6.2", "destroy": "^1.0.4", "fast-url-parser": "^1.1.3", "fs-extra": "^8.1.0", "glob-slasher": "^1.0.1", "home-dir": "^1.0.0", "is-url": "^1.2.2", "join-path": "^1.1.1", "lodash": "^4.17.19", "mime-types": "^2.1.16", "minimatch": "^3.0.4", "morgan": "^1.8.2", "nash": "^3.0.0", "on-finished": "^2.2.0", "on-headers": "^1.0.0", "path-to-regexp": "^1.8.0", "re2": "^1.15.8", "router": "^1.3.1", "rsvp": "^4.8.5", "string-length": "^1.0.0", "update-notifier": "^4.1.1" }, "dependencies": { "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", "dev": true }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", "has-ansi": "^2.0.0", "strip-ansi": "^3.0.0", "supports-color": "^2.0.0" } }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "path-to-regexp": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", "dev": true, "requires": { "isarray": "0.0.1" } }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { "ansi-regex": "^2.0.0" } }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true } } }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, "supports-hyperlinks": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", "dev": true, "requires": { "has-flag": "^2.0.0", "supports-color": "^5.0.0" }, "dependencies": { "has-flag": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", "dev": true } } }, "svgo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", "dev": true, "requires": { "chalk": "^2.4.1", "coa": "^2.0.2", "css-select": "^2.0.0", "css-select-base-adapter": "^0.1.1", "css-tree": "1.0.0-alpha.37", "csso": "^4.0.2", "js-yaml": "^3.13.1", "mkdirp": "~0.5.1", "object.values": "^1.1.0", "sax": "~1.2.4", "stable": "^0.1.8", "unquote": "~1.1.1", "util.promisify": "~1.0.0" } }, "svgson": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/svgson/-/svgson-4.1.0.tgz", "integrity": "sha512-DodISxHtdLKUghDYA+PGK4Qq350+CbBAkdvGLkBFSmWd9WKSg4dijgjB1IiRPTmsUCd+a7KYe+ILHtklYgQyzQ==", "dev": true, "requires": { "deep-rename-keys": "^0.2.1", "omit-deep": "0.3.0", "xml-reader": "2.4.3" } }, "swap-case": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", "dev": true, "requires": { "lower-case": "^1.1.1", "upper-case": "^1.1.1" } }, "swirly-parser": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-parser/-/swirly-parser-0.13.10.tgz", "integrity": "sha512-EJvfYAHI10WDL60mpltu/lpNHtY77Elj2waAr8LPDwKreohk9B9XJ+m8V33i0iIKLsmDksIFl4l0RRVAQx7t7g==", "dev": true, "requires": { "swirly-parser-rxjs": "^0.13.10" } }, "swirly-parser-rxjs": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-parser-rxjs/-/swirly-parser-rxjs-0.13.10.tgz", "integrity": "sha512-6wmdclC0zscSWjIKPgXkO5JurM/mVtV2tmzr1+j2ZEKiB4gKLV0QKSb4qGu87GtVYuzFjN4H4aCDH99Suq2GMA==", "dev": true }, "swirly-renderer": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-renderer/-/swirly-renderer-0.13.10.tgz", "integrity": "sha512-RSgdb9wE1SKcae49O8UjYaU8ayZWv6u/zRfkARGbuouYj2rXLceHyKAHBu9OAg4tRkyKZ1ioyxKFenHNeQE3rA==", "dev": true, "requires": { "simple-sha1": "^3.0.1", "swirly-theme-default-light": "^0.13.10" } }, "swirly-renderer-node": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-renderer-node/-/swirly-renderer-node-0.13.10.tgz", "integrity": "sha512-YL9umzpv8Nl9xAwxr1z+0CTqo94TcQFgRbzr/RJL1t6RG+b51q0x/O0oKG/jxIH9hnr6H3PJbzJwNrrwfHVsrQ==", "dev": true, "requires": { "swirly-renderer": "^0.13.10", "xmldom": "^0.3.0" }, "dependencies": { "xmldom": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.3.0.tgz", "integrity": "sha512-z9s6k3wxE+aZHgXYxSTpGDo7BYOUfJsIRyoZiX6HTjwpwfS2wpQBQKa2fD+ShLyPkqDYo5ud7KitmLZ2Cd6r0g==", "dev": true } } }, "swirly-theme-default-base": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-theme-default-base/-/swirly-theme-default-base-0.13.10.tgz", "integrity": "sha512-s1g9llE+fVdHemufzXcAM2p95OLCuwQ6/AB8tSAD9CStr0mZXWd6lPVGNw0i7T77bRe7TZirs/OeOq5gr2VgIw==", "dev": true }, "swirly-theme-default-light": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-theme-default-light/-/swirly-theme-default-light-0.13.10.tgz", "integrity": "sha512-2EXGLtcFKJHWN8snOQXqon0d3h2tS6Pu4v2TnLp7GdYU2ggEzqEKCfHWm5uEuW/j/HxBevlOBbdU0bZA1YRxJg==", "dev": true, "requires": { "swirly-theme-default-base": "^0.13.10" } }, "swirly-types": { "version": "0.13.10", "resolved": "https://registry.npmjs.org/swirly-types/-/swirly-types-0.13.10.tgz", "integrity": "sha512-omsVUaHqCTcJV+kPt2iebg2XA4al2109MG6wkS/R2tBH1U1mv0TIaPeBSfbCctrt3EJKbazkJjY0axe1Fb1m1A==", "dev": true }, "symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "dev": true }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, "table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { "ajv": "^6.10.2", "lodash": "^4.17.14", "slice-ansi": "^2.1.0", "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, "tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, "tar": { "version": "6.1.11", "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^3.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "dependencies": { "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true } } }, "tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "requires": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" }, "dependencies": { "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } } } }, "taskgroup": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/taskgroup/-/taskgroup-5.5.0.tgz", "integrity": "sha512-YFkdc6HU+p3xO2lZ1MWdx7R7EbrLF/bpXv5k9635bTzdgOLNbmnsDg5alSpZost+PYMk40d6ZDAJHBHNHiiLvw==", "dev": true, "requires": { "ambi": "3.2.0", "eachr": "^3.2.0", "editions": "^2.2.0", "extendr": "^3.5.0", "safeps": "7.0.1", "unbounded": "^1.2.0" } }, "tcp-port-used": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", "dev": true, "requires": { "debug": "4.3.1", "is2": "^2.0.6" } }, "term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", "dev": true }, "terser": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.1.tgz", "integrity": "sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.7.2", "source-map-support": "~0.5.19" } }, "terser-webpack-plugin": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", "dev": true, "requires": { "jest-worker": "^27.0.2", "p-limit": "^3.1.0", "schema-utils": "^3.0.0", "serialize-javascript": "^6.0.0", "source-map": "^0.6.1", "terser": "^5.7.0" }, "dependencies": { "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "requires": { "yocto-queue": "^0.1.0" } }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "requires": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" } }, "text-hex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", "dev": true }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "third-party-web": { "version": "0.12.3", "resolved": "https://registry.npmjs.org/third-party-web/-/third-party-web-0.12.3.tgz", "integrity": "sha512-wnPlVUKzet4hnejKMEsVj5eIL0V2PLzgjJ3fLyGo9GV1pUOMa0NjeIzJNJ0pTEUL2GJAqlFKxo8EYML27SF/ng==", "dev": true }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, "timers-ext": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", "dev": true, "requires": { "es5-ext": "~0.10.46", "next-tick": "1" } }, "title-case": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", "dev": true, "requires": { "no-case": "^2.2.0", "upper-case": "^1.0.3" } }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" } }, "toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "dev": true }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" } }, "toxic": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toxic/-/toxic-1.0.1.tgz", "integrity": "sha512-WI3rIGdcaKULYg7KVoB0zcjikqvcYYvcuT6D89bFPz2rVR0Rl0PK6x8/X62rtdLtBKIE985NzVf/auTtGegIIg==", "dev": true, "requires": { "lodash": "^4.17.10" } }, "tr46": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "dev": true, "requires": { "punycode": "^2.1.0" } }, "traverse": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", "dev": true }, "tree-kill": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, "trim": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", "dev": true }, "trim-trailing-lines": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", "dev": true }, "triple-beam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", "dev": true }, "trough": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", "dev": true }, "ts-node": { "version": "8.10.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz", "integrity": "sha512-ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==", "dev": true, "requires": { "arg": "^4.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", "yn": "3.1.1" } }, "tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tslint": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", "chalk": "^2.3.0", "commander": "^2.12.1", "diff": "^4.0.1", "glob": "^7.1.1", "js-yaml": "^3.13.1", "minimatch": "^3.0.4", "mkdirp": "^0.5.3", "resolve": "^1.3.2", "semver": "^5.3.0", "tslib": "^1.13.0", "tsutils": "^2.29.0" }, "dependencies": { "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { "tslib": "^1.8.1" }, "dependencies": { "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { "safe-buffer": "^5.0.1" } }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "tweetsodium": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/tweetsodium/-/tweetsodium-0.0.5.tgz", "integrity": "sha512-T3aXZtx7KqQbutTtBfn+P5By3HdBuB1eCoGviIrRJV2sXeToxv2X2cv5RvYqgG26PSnN5m3fYixds22Gkfd11w==", "dev": true, "requires": { "blakejs": "^1.1.0", "tweetnacl": "^1.0.1" }, "dependencies": { "tweetnacl": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", "dev": true } } }, "type": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", "dev": true }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { "prelude-ls": "~1.1.2" } }, "type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true }, "type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "requires": { "media-typer": "0.3.0", "mime-types": "~2.1.24" } }, "typechecker": { "version": "4.11.0", "resolved": "https://registry.npmjs.org/typechecker/-/typechecker-4.11.0.tgz", "integrity": "sha512-lz39Mc/d1UBcF/uQFL5P8L+oWdIn/stvkUgHf0tPRW4aEwGGErewNXo2Nb6We2WslWifn00rhcHbbRWRcTGhuw==", "dev": true, "requires": { "editions": "^2.2.0" } }, "typed-assert": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.8.tgz", "integrity": "sha512-5NkbXZUlmCE73Fs7gvkp1XXJWHYetPkg60QnQ2NXQmBYNFxbBr2zA8GCtaH4K2s2WhOmSlgiSTmrjrcm5tnM5g==", "dev": true }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "requires": { "is-typedarray": "^1.0.0" } }, "typescript": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", "dev": true }, "ua-parser-js": { "version": "0.7.31", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", "dev": true }, "uglify-js": { "version": "3.13.2", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.2.tgz", "integrity": "sha512-SbMu4D2Vo95LMC/MetNaso1194M1htEA+JrqE9Hk+G2DhI+itfS9TRu9ZKeCahLDNa/J3n4MqUJ/fOHMzQpRWw==", "dev": true }, "ultron": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", "dev": true }, "unbounded": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/unbounded/-/unbounded-1.3.0.tgz", "integrity": "sha512-RWVCkvcoItljlNTz0iTdBQU6bDj+slVLNaWN7d6DXgH02FfYrz8ytcJ4OPW8b0HqmCehwufJHOIzjHWrQUXBvg==", "dev": true, "requires": { "editions": "^2.2.0" } }, "unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, "requires": { "function-bind": "^1.1.1", "has-bigints": "^1.0.1", "has-symbols": "^1.0.2", "which-boxed-primitive": "^1.0.2" } }, "underscore": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==", "dev": true }, "unherit": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", "dev": true, "requires": { "inherits": "^2.0.0", "xtend": "^4.0.0" } }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true }, "unicode-match-property-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "requires": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" } }, "unicode-match-property-value-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", "dev": true }, "unicode-property-aliases-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", "dev": true }, "unified": { "version": "9.2.1", "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.1.tgz", "integrity": "sha512-juWjuI8Z4xFg8pJbnEZ41b5xjGUWGHqXALmBZ3FC3WX0PIx1CZBIIJ6mXbYMcf6Yw4Fi0rFUTA1cdz/BglbOhA==", "dev": true, "requires": { "bail": "^1.0.0", "extend": "^3.0.0", "is-buffer": "^2.0.0", "is-plain-obj": "^2.0.0", "trough": "^1.0.0", "vfile": "^4.0.0" }, "dependencies": { "is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true } } }, "union": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/union/-/union-0.5.0.tgz", "integrity": "sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==", "dev": true, "requires": { "qs": "^6.4.0" } }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" } }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "requires": { "imurmurhash": "^0.1.4" } }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "requires": { "crypto-random-string": "^2.0.0" } }, "unist-builder": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", "dev": true }, "unist-util-filter": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unist-util-filter/-/unist-util-filter-1.0.2.tgz", "integrity": "sha512-AIJXJNzI8bLStKz3UDt4IX7/GSfO0NeV/plrd5td4VfB0SBlYil7pGzaeBHI8/KXzTWPaPtIbpGK53jYd1kG9A==", "dev": true, "requires": { "flatmap": "0.0.3", "unist-util-is": "^3.0.0" } }, "unist-util-generated": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", "dev": true }, "unist-util-is": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-3.0.0.tgz", "integrity": "sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==", "dev": true }, "unist-util-position": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", "dev": true }, "unist-util-remove-position": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", "dev": true, "requires": { "unist-util-visit": "^2.0.0" }, "dependencies": { "unist-util-is": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true }, "unist-util-visit": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", "dev": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0", "unist-util-visit-parents": "^3.0.0" } }, "unist-util-visit-parents": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", "dev": true, "requires": { "@types/unist": "^2.0.0", "unist-util-is": "^4.0.0" } } } }, "unist-util-source": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/unist-util-source/-/unist-util-source-1.0.5.tgz", "integrity": "sha512-pBMvoNtsqVUS8+ifluSBWD5HgrRVqh0cVjTA2zZrQnWRU3ChNNRUx4uOgSIisgV0OiP4cZB1VN8QE9C5czT7cw==", "dev": true, "requires": { "vfile-location": "^2.0.1" }, "dependencies": { "vfile-location": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz", "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==", "dev": true } } }, "unist-util-stringify-position": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dev": true, "requires": { "@types/unist": "^2.0.2" } }, "unist-util-visit": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-1.4.1.tgz", "integrity": "sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==", "dev": true, "requires": { "unist-util-visit-parents": "^2.0.0" } }, "unist-util-visit-parents": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz", "integrity": "sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==", "dev": true, "requires": { "unist-util-is": "^3.0.0" } }, "universal-analytics": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", "dev": true, "requires": { "debug": "^4.1.1", "request": "^2.88.2", "uuid": "^3.0.0" } }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, "unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", "dev": true }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", "isobject": "^2.0.0" }, "dependencies": { "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" } } } }, "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true } } }, "unzipper": { "version": "0.10.11", "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", "dev": true, "requires": { "big-integer": "^1.6.17", "binary": "~0.3.0", "bluebird": "~3.4.1", "buffer-indexof-polyfill": "~1.0.0", "duplexer2": "~0.1.4", "fstream": "^1.0.12", "graceful-fs": "^4.2.2", "listenercount": "~1.0.1", "readable-stream": "~2.3.6", "setimmediate": "~1.0.4" }, "dependencies": { "bluebird": { "version": "3.4.7", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", "dev": true } } }, "update-notifier": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", "dev": true, "requires": { "boxen": "^4.2.0", "chalk": "^3.0.0", "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", "is-installed-globally": "^0.3.1", "is-npm": "^4.0.0", "is-yarn-global": "^0.3.0", "latest-version": "^5.0.0", "pupa": "^2.0.1", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "upper-case": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "dev": true }, "upper-case-first": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", "dev": true, "requires": { "upper-case": "^1.1.1" } }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "requires": { "punycode": "^2.1.0" } }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" }, "dependencies": { "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true } } }, "url-join": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz", "integrity": "sha1-HbSK1CLTQCRpqH99l73r/k+x48g=", "dev": true }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { "prepend-http": "^2.0.0" } }, "urlencode": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/urlencode/-/urlencode-1.1.0.tgz", "integrity": "sha1-HyuibwE8hfATP3o61v8nMK33y7c=", "dev": true, "requires": { "iconv-lite": "~0.4.11" } }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.2", "has-symbols": "^1.0.1", "object.getownpropertydescriptors": "^2.1.0" } }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "dev": true }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, "v8-compile-cache": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, "valid-url": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", "dev": true }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "validate-npm-package-name": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", "dev": true, "requires": { "builtins": "^1.0.3" } }, "validate.js": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/validate.js/-/validate.js-0.12.0.tgz", "integrity": "sha512-/x2RJSvbqEyxKj0RPN4xaRquK+EggjeVXiDDEyrJzsJogjtiZ9ov7lj/svVb4DM5Q5braQF4cooAryQbUwOxlA==", "dev": true }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", "dev": true }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "vfile": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", "dev": true, "requires": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", "unist-util-stringify-position": "^2.0.0", "vfile-message": "^2.0.0" }, "dependencies": { "is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true } } }, "vfile-location": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", "dev": true }, "vfile-message": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", "dev": true, "requires": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^2.0.0" } }, "void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", "dev": true }, "vrsource-tslint-rules": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/vrsource-tslint-rules/-/vrsource-tslint-rules-6.0.0.tgz", "integrity": "sha512-pmcnJdIVziZTk1V0Cqehmh3gIabBRkBYXkv9vx+1CZDNEa41kNGUBFwQLzw21erYOd2QnD8jJeZhBGqnlT1HWw==", "dev": true, "requires": {} }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "dev": true, "requires": { "browser-process-hrtime": "^1.0.0" } }, "w3c-xmlserializer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", "dev": true, "requires": { "domexception": "^1.0.1", "webidl-conversions": "^4.0.2", "xml-name-validator": "^3.0.0" } }, "watchpack": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" }, "dependencies": { "glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true } } }, "watchr": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/watchr/-/watchr-4.1.0.tgz", "integrity": "sha512-ShaYIRazXv+4FjHNcjd6H8oyWcJnLh3M7Gle/7ZVj8WoMqBXU0xotCwxPFjEe8j92nozdBz0Q2hOrnp+U+55FA==", "dev": true, "requires": { "eachr": "^3.2.0", "editions": "^2.1.0", "extendr": "^3.2.2", "ignorefs": "^1.1.1", "safefs": "^4.1.0", "scandirectory": "^3.0.1", "taskgroup": "^5.0.1" } }, "wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { "minimalistic-assert": "^1.0.0" } }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "requires": { "defaults": "^1.0.3" } }, "web-namespaces": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", "dev": true }, "webdriver-js-extender": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", "dev": true, "requires": { "@types/selenium-webdriver": "^3.0.0", "selenium-webdriver": "^3.0.1" } }, "webidl-conversions": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", "dev": true }, "webpack": { "version": "5.65.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz", "integrity": "sha512-Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.50", "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", "acorn": "^8.4.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.8.3", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.4", "json-parse-better-errors": "^1.0.2", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", "watchpack": "^2.3.1", "webpack-sources": "^3.2.2" }, "dependencies": { "acorn": { "version": "8.5.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.5.0.tgz", "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", "dev": true }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } } } }, "webpack-dev-middleware": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.2.2.tgz", "integrity": "sha512-DjZyYrsHhkikAFNvSNKrpnziXukU1EChFAh9j4LAm6ndPLPW8cN0KhM7T+RAiOqsQ6ABfQ8hoKIs9IWMTjov+w==", "dev": true, "requires": { "colorette": "^2.0.10", "memfs": "^3.2.2", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "dependencies": { "ajv": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, "ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.3" } }, "colorette": { "version": "2.0.16", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" } } } }, "webpack-dev-server": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.6.0.tgz", "integrity": "sha512-oojcBIKvx3Ya7qs1/AVWHDgmP1Xml8rGsEBnSobxU/UJSX1xP1GPM3MwsAnDzvqcVmVki8tV7lbcsjEjk0PtYg==", "dev": true, "requires": { "ansi-html-community": "^0.0.8", "bonjour": "^3.5.0", "chokidar": "^3.5.2", "colorette": "^2.0.10", "compression": "^1.7.4", "connect-history-api-fallback": "^1.6.0", "default-gateway": "^6.0.3", "del": "^6.0.0", "express": "^4.17.1", "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.0", "ipaddr.js": "^2.0.1", "open": "^8.0.9", "p-retry": "^4.5.0", "portfinder": "^1.0.28", "schema-utils": "^4.0.0", "selfsigned": "^1.10.11", "serve-index": "^1.9.1", "sockjs": "^0.3.21", "spdy": "^4.0.2", "strip-ansi": "^7.0.0", "url": "^0.11.0", "webpack-dev-middleware": "^5.2.1", "ws": "^8.1.0" }, "dependencies": { "ajv": { "version": "8.8.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, "ajv-keywords": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "requires": { "fast-deep-equal": "^3.1.3" } }, "ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "dev": true }, "colorette": { "version": "2.0.16", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, "ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "dev": true }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { "@types/json-schema": "^7.0.9", "ajv": "^8.8.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" } }, "strip-ansi": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", "dev": true, "requires": { "ansi-regex": "^6.0.1" } } } }, "webpack-merge": { "version": "5.8.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "requires": { "clone-deep": "^4.0.1", "wildcard": "^2.0.0" } }, "webpack-sources": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", "dev": true }, "webpack-subresource-integrity": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.0.0.tgz", "integrity": "sha512-x9514FpLRydO+UAQ8DY4aLtCjxmdLkuQVcDFN1kGzuusREYJ1B0rzk/iIlWiL6dnvrhEGFj2+UsdxDkP8Z4UKg==", "dev": true, "requires": { "typed-assert": "^1.0.8" } }, "websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, "requires": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, "whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, "requires": { "iconv-lite": "0.4.24" } }, "whatwg-mimetype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", "dev": true }, "whatwg-url": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "dev": true, "requires": { "lodash.sortby": "^4.7.0", "tr46": "^1.0.1", "webidl-conversions": "^4.0.2" } }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" } }, "which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, "requires": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" } }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { "string-width": "^1.0.2 || 2" }, "dependencies": { "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" } }, "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" } } } }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, "requires": { "string-width": "^4.0.0" } }, "wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, "winston": { "version": "2.4.5", "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz", "integrity": "sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==", "dev": true, "requires": { "async": "~1.0.0", "colors": "1.0.x", "cycle": "1.0.x", "eyes": "0.1.x", "isstream": "0.1.x", "stack-trace": "0.0.x" }, "dependencies": { "async": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz", "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", "dev": true } } }, "winston-transport": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", "dev": true, "requires": { "readable-stream": "^2.3.7", "triple-beam": "^1.2.0" } }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "write": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { "mkdirp": "^0.5.1" } }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", "typedarray-to-buffer": "^3.1.5" } }, "ws": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.0.tgz", "integrity": "sha512-IHVsKe2pjajSUIl4KYMQOdlyliovpEPquKkqbwswulszzI7r0SfQrxnXdWAEqOlDCLrVSJzo+O1hAwdog2sKSQ==", "dev": true, "requires": {} }, "x-is-string": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz", "integrity": "sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=", "dev": true }, "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, "xml-lexer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/xml-lexer/-/xml-lexer-0.2.2.tgz", "integrity": "sha1-UYGTpKozTVj8fSSLVJB5uJkH4EY=", "dev": true, "requires": { "eventemitter3": "^2.0.0" }, "dependencies": { "eventemitter3": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=", "dev": true } } }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, "xml-reader": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/xml-reader/-/xml-reader-2.4.3.tgz", "integrity": "sha1-n4EMr3xCWlqvuEixxFEDyecddTA=", "dev": true, "requires": { "eventemitter3": "^2.0.0", "xml-lexer": "^0.2.2" }, "dependencies": { "eventemitter3": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=", "dev": true } } }, "xml2js": { "version": "0.4.23", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "requires": { "sax": ">=0.6.0", "xmlbuilder": "~11.0.0" }, "dependencies": { "xmlbuilder": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" } } }, "xmlbuilder": { "version": "9.0.7", "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", "dev": true }, "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, "xmldom": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.5.0.tgz", "integrity": "sha512-Foaj5FXVzgn7xFzsKeNIde9g6aFBxTPi37iwsno8QvApmtg7KYrr+OPyRHcJF7dud2a5nGRBXK3n0dL62Gf7PA==", "dev": true }, "xregexp": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.4.1.tgz", "integrity": "sha512-2u9HwfadaJaY9zHtRRnH6BY6CQVNQKkYm3oLtC9gJXXzfsbACg5X5e4EZZGVAH+YIfa+QA9lsFQTTe3HURF3ag==", "dev": true, "requires": { "@babel/runtime-corejs3": "^7.12.1" } }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true }, "y18n": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true }, "yamljs": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.3.0.tgz", "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", "dev": true, "requires": { "argparse": "^1.0.7", "glob": "^7.0.5" } }, "yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { "cliui": "^5.0.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^13.1.2" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, "yargs-parser": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true }, "zip-stream": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz", "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==", "dev": true, "requires": { "archiver-utils": "^2.1.0", "compress-commons": "^2.1.1", "readable-stream": "^3.4.0" }, "dependencies": { "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } } } }, "zone.js": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz", "integrity": "sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==", "requires": { "tslib": "^2.0.0" } } } } rxjs-7.5.7/docs_app/package.json000066400000000000000000000126411431412030200165700ustar00rootroot00000000000000{ "name": "rxjs.dev", "version": "1.0.0", "main": "index.js", "repository": "git@github.com:ReactiveX/rxjs", "author": "RxJS", "license": "MIT", "scripts": { "postinstall": "uglifyjs node_modules/lunr/lunr.js -c -m -o src/assets/js/lunr.min.js --source-map", "ng": "ng", "firebase": "firebase", "start": "ng serve --configuration=fast", "start:docker": "ng serve --configuration=stable --host 0.0.0.0", "setup": "npm install && npm run ~~clean-generated && npm run docs", "prebuild": "npm run setup", "build": "npm run ~~build", "lint": "npm run docs-lint && ng lint && npm run tools-lint", "test": "ng test", "pree2e": "npm run update-webdriver", "e2e": "ng e2e --no-webdriver-update", "e2e-prod": "npm run e2e --environment=dev --target=production", "http-server": "http-server", "test-pwa-score-localhost": "concurrently --kill-others --success first \"http-server dist -p 4200 --silent\" \"npm run test-pwa-score http://localhost:4200 90\"", "test-pwa-score": "node scripts/test-pwa-score", "deploy-production": "scripts/deploy-to-firebase.sh", "payload-size": "scripts/payload.sh", "docs": "npx ts-node -P tsconfig.docs.json ./node_modules/dgeni/lib/gen-docs.js ./tools/transforms/angular.io-package && npm run docs-decision-tree", "docs-watch": "npx ts-node -P tsconfig.docs.json tools/transforms/authors-package/watchr.js", "docs-lint": "eslint --ignore-path=\"tools/transforms/.eslintignore\" tools/transforms", "docs-test": "npx ts-node -P tsconfig.docs.json tools/transforms/test.js", "docs-decision-tree": "ts-node -P tools/decision-tree-generator/tsconfig.json tools/decision-tree-generator/main.ts", "firebase-utils-test": "jasmine-ts tools/firebase-test-utils/*.spec.ts", "tools-lint": "tslint -c \"tools/tslint.json\" \"tools/firebase-test-utils/**/*.ts\"", "tools-test": "./scripts/deploy-to-firebase.test.sh && npm run docs-test && npm run firebase-utils-test", "preserve-and-sync": "npm run docs", "serve-and-sync": "concurrently --kill-others \"npm run docs-watch --watch-only\" \"npm run start\"", "update-webdriver": "webdriver-manager update --standalone false --gecko false $CHROMEDRIVER_VERSION_ARG", "~~build": "ng build --configuration=stable --configuration production --source-map", "~~clean-generated": "node --eval \"require('shelljs').rm('-rf', 'src/generated')\"", "build:marbles": "ts-node -P ./tools/marbles/tsconfig.marbles.json ./tools/marbles/scripts/index.ts" }, "engines": { "node": ">=10.9" }, "private": true, "dependencies": { "@angular/animations": "^13.1.1", "@angular/cdk": "^13.1.1", "@angular/common": "^13.1.1", "@angular/compiler": "^13.1.1", "@angular/core": "^13.1.1", "@angular/elements": "^13.1.1", "@angular/forms": "^13.1.1", "@angular/material": "^13.1.1", "@angular/platform-browser": "^13.1.1", "@angular/platform-browser-dynamic": "^13.1.1", "@angular/router": "^13.1.1", "@angular/service-worker": "^13.1.1", "@stackblitz/sdk": "^1.5.3", "@webcomponents/custom-elements": "^1.5.0", "eyes.selenium": "^3.7.0", "rxjs": "^7.5.1", "tslib": "^2.3.1", "zone.js": "~0.11.4" }, "devDependencies": { "@angular-devkit/build-angular": "~13.1.2", "@angular/cli": "^13.1.2", "@angular/compiler-cli": "^13.1.1", "@jsdevtools/rehype-inline-svg": "^1.1.1", "@swirly/parser": "^0.17.6", "@swirly/renderer-node": "^0.17.6", "@swirly/types": "^0.17.6", "@types/jasmine": "~3.6.0", "@types/jasminewd2": "^2.0.3", "@types/node": "^12.11.1", "@types/svgo": "^1.3.3", "archiver": "^3.0.0", "canonical-path": "^1.0.0", "chalk": "^2.1.0", "cjson": "^0.5.0", "codelyzer": "^6.0.0", "concurrently": "^5.3.0", "cross-spawn": "^6.0.5", "css-selector-parser": "^1.3.0", "dgeni": "^0.4.14", "dgeni-packages": "^0.29.1", "entities": "^1.1.1", "eslint": "^5.16.0", "eslint-plugin-jasmine": "^2.2.0", "firebase-tools": "^9.3.0", "fs-extra": "^8.0.1", "globby": "^9.2.0", "hast-util-is-element": "^1.0.3", "hast-util-to-string": "^1.0.2", "html": "^1.0.0", "http-server": "^0.12.3", "ignore": "^5.1.2", "image-size": "^0.7.4", "jasmine": "^3.4.0", "jasmine-core": "~3.6.0", "jasmine-marbles": "^0.5.0", "jasmine-spec-reporter": "~5.0.0", "jasmine-ts": "^0.3.0", "jsdom": "^15.1.1", "karma": "~6.3.16", "karma-chrome-launcher": "~3.1.0", "karma-cli": "^2.0.0", "karma-coverage-istanbul-reporter": "~3.0.2", "karma-jasmine": "~4.0.0", "karma-jasmine-html-reporter": "^1.5.0", "lighthouse": "^7.0.1", "lodash": "^4.17.20", "lunr": "^2.1.0", "protractor": "~7.0.0", "rehype-slug": "^2.0.3", "remark": "^12.0.1", "remark-html": "^13.0.2", "rimraf": "^2.6.1", "semver": "^6.1.1", "shelljs": "^0.8.3", "svgo": "^1.3.2", "svgson": "^4.1.0", "swirly-parser": "^0.13.6", "swirly-renderer-node": "^0.13.6", "swirly-types": "^0.13.6", "tree-kill": "^1.2.2", "ts-node": "^8.2.0", "tslint": "~6.1.0", "typescript": "4.5.4", "uglify-js": "^3.6.0", "unist-util-filter": "^1.0.2", "unist-util-source": "^1.0.5", "unist-util-visit": "^1.4.1", "unist-util-visit-parents": "^2.1.2", "vrsource-tslint-rules": "^6.0.0", "watchr": "^4.1.0", "xregexp": "^4.0.0", "yamljs": "^0.3.0", "yargs": "^13.2.4" } } rxjs-7.5.7/docs_app/scripts/000077500000000000000000000000001431412030200157655ustar00rootroot00000000000000rxjs-7.5.7/docs_app/scripts/_payload-limits.json000066400000000000000000000002571431412030200217530ustar00rootroot00000000000000{ "aio": { "master": { "uncompressed": { "inline": 1971, "main": 567849, "polyfills": 40272, "prettify": 14886 } } } } rxjs-7.5.7/docs_app/scripts/deploy-to-firebase.sh000066400000000000000000000063431431412030200220210ustar00rootroot00000000000000#!/usr/bin/env bash # WARNING: FIREBASE_TOKEN should NOT be printed. set +x -eu -o pipefail ## Only deploy if this not a PR. PRs are deployed early in `build.sh`. if [[ $TRAVIS_PULL_REQUEST != "false" ]]; then echo "Skipping deploy because this is a PR build." exit 0 fi # Do not deploy if the current commit is not the latest on its branch. readonly LATEST_COMMIT=$(git ls-remote origin $TRAVIS_BRANCH | cut -c1-40) if [[ $TRAVIS_COMMIT != $LATEST_COMMIT ]]; then echo "Skipping deploy because $TRAVIS_COMMIT is not the latest commit ($LATEST_COMMIT)." exit 0 fi # The deployment mode is computed based on the branch we are building if [[ $TRAVIS_BRANCH == master ]]; then readonly deployEnv=next #elif [[ $TRAVIS_BRANCH == $STABLE_BRANCH ]]; then # readonly deployEnv=stable #else # # Extract the major versions from the branches, e.g. the 4 from 4.3.x # readonly majorVersion=${TRAVIS_BRANCH%%.*} # readonly majorVersionStable=${STABLE_BRANCH%%.*} # # # Do not deploy if the major version is not less than the stable branch major version # if [[ !( "$majorVersion" < "$majorVersionStable" ) ]]; then # echo "Skipping deploy of branch \"${TRAVIS_BRANCH}\" to firebase." # echo "We only deploy archive branches with the major version less than the stable branch: \"${STABLE_BRANCH}\"" # exit 0 # fi # # # Find the branch that has highest minor version for the given `$majorVersion` # readonly mostRecentMinorVersion=$( # # List the branches that start with the major version # git ls-remote origin refs/heads/${majorVersion}.*.x | # # Extract the version number # awk -F'/' '{print $3}' | # # Sort by the minor version # sort -t. -k 2,2n | # # Get the highest version # tail -n1 # ) # # # Do not deploy as it is not the latest branch for the given major version # if [[ $TRAVIS_BRANCH != $mostRecentMinorVersion ]]; then # echo "Skipping deploy of branch \"${TRAVIS_BRANCH}\" to firebase." # echo "There is a more recent branch with the same major version: \"${mostRecentMinorVersion}\"" # exit 0 # fi # # readonly deployEnv=archive fi case $deployEnv in next) readonly projectId=rxjs-dev readonly deployedUrl=https://rxjs.dev readonly firebaseToken=$FIREBASE_TOKEN ;; # stable) # readonly projectId=beta-rxjsdocs # readonly deployedUrl=https://beta-rxjsdocs.firebaseapp.com/ # readonly firebaseToken=$FIREBASE_TOKEN # ;; # archive) # readonly projectId=angular-io-${majorVersion} # readonly deployedUrl=https://v${majorVersion}.angular.io/ # readonly firebaseToken=$FIREBASE_TOKEN # ;; esac echo "Git branch : $TRAVIS_BRANCH" echo "Build/deploy mode : $deployEnv" echo "Firebase project : $projectId" echo "Deployment URL : $deployedUrl" if [[ ${1:-} == "--dry-run" ]]; then exit 0 fi # Deploy ( cd "`dirname $0`/.." # Build the app npm run build --env=$deployEnv # Include any mode-specific files cp -rf src/extra-files/$deployEnv/. dist/ # Check payload size # npm run payload-size # Deploy to Firebase firebase use "$projectId" --token "$firebaseToken" firebase deploy --message "Commit: $TRAVIS_COMMIT" --non-interactive --token "$firebaseToken" # Run PWA-score tests # yarn test-pwa-score "$deployedUrl" "$MIN_PWA_SCORE" ) rxjs-7.5.7/docs_app/scripts/deploy-to-firebase.test.sh000066400000000000000000000110701431412030200227700ustar00rootroot00000000000000#!/usr/bin/env bash set +x -eu -o pipefail function check { if [[ $1 == $2 ]]; then echo Pass exit 0 fi echo Fail echo ---- Expected ---- echo "$2" echo ---- Actual ---- echo "$1" exit 1 } ( echo ===== master - skip deploy - pull request actual=$( export TRAVIS_PULL_REQUEST=true `dirname $0`/deploy-to-firebase.sh --dry-run ) expected="Skipping deploy because this is a PR build." check "$actual" "$expected" ) ( echo ===== master - deploy success actual=$( export TRAVIS_PULL_REQUEST=false export TRAVIS_BRANCH=master export TRAVIS_COMMIT=$(git ls-remote origin master | cut -c-40) export FIREBASE_TOKEN=XXXXX `dirname $0`/deploy-to-firebase.sh --dry-run ) expected="Git branch : master Build/deploy mode : next Firebase project : aio-staging Deployment URL : https://next.angular.io/" check "$actual" "$expected" ) ( echo ===== master - skip deploy - commit not HEAD actual=$( export TRAVIS_PULL_REQUEST=false export TRAVIS_BRANCH=master export TRAVIS_COMMIT=DUMMY_TEST_COMMIT `dirname $0`/deploy-to-firebase.sh --dry-run ) expected="Skipping deploy because DUMMY_TEST_COMMIT is not the latest commit ($(git ls-remote origin master | cut -c1-40))." check "$actual" "$expected" ) ( echo ===== stable - deploy success actual=$( export TRAVIS_PULL_REQUEST=false export TRAVIS_BRANCH=4.3.x export STABLE_BRANCH=4.3.x export TRAVIS_COMMIT=$(git ls-remote origin 4.3.x | cut -c-40) export FIREBASE_TOKEN=XXXXX `dirname $0`/deploy-to-firebase.sh --dry-run ) expected="Git branch : 4.3.x Build/deploy mode : stable Firebase project : angular-io Deployment URL : https://angular.io/" check "$actual" "$expected" ) ( echo ===== stable - skip deploy - commit not HEAD actual=$( export TRAVIS_PULL_REQUEST=false export TRAVIS_BRANCH=4.3.x export STABLE_BRANCH=4.3.x export TRAVIS_COMMIT=DUMMY_TEST_COMMIT `dirname $0`/deploy-to-firebase.sh --dry-run ) expected="Skipping deploy because DUMMY_TEST_COMMIT is not the latest commit ($(git ls-remote origin 4.3.x | cut -c1-40))." check "$actual" "$expected" ) ( echo ===== archive - deploy success actual=$( export TRAVIS_PULL_REQUEST=false export TRAVIS_BRANCH=2.4.x export STABLE_BRANCH=4.3.x export TRAVIS_COMMIT=$(git ls-remote origin 2.4.x | cut -c-40) export FIREBASE_TOKEN=XXXXX `dirname $0`/deploy-to-firebase.sh --dry-run ) expected="Git branch : 2.4.x Build/deploy mode : archive Firebase project : angular-io-2 Deployment URL : https://v2.angular.io/" check "$actual" "$expected" ) ( echo ===== archive - skip deploy - commit not HEAD actual=$( export TRAVIS_PULL_REQUEST=false export TRAVIS_BRANCH=2.4.x export STABLE_BRANCH=4.3.x export TRAVIS_COMMIT=DUMMY_TEST_COMMIT export FIREBASE_TOKEN=XXXXX `dirname $0`/deploy-to-firebase.sh --dry-run ) expected="Skipping deploy because DUMMY_TEST_COMMIT is not the latest commit ($(git ls-remote origin 2.4.x | cut -c1-40))." check "$actual" "$expected" ) ( echo ===== archive - skip deploy - major version too high, lower minor actual=$( export TRAVIS_PULL_REQUEST=false export TRAVIS_BRANCH=2.1.x export STABLE_BRANCH=2.2.x export TRAVIS_COMMIT=$(git ls-remote origin 2.1.x | cut -c-40) export FIREBASE_TOKEN=XXXXX `dirname $0`/deploy-to-firebase.sh --dry-run ) expected="Skipping deploy of branch \"2.1.x\" to firebase. We only deploy archive branches with the major version less than the stable branch: \"2.2.x\"" check "$actual" "$expected" ) ( echo ===== archive - skip deploy - major version too high, higher minor actual=$( export TRAVIS_PULL_REQUEST=false export TRAVIS_BRANCH=2.4.x export STABLE_BRANCH=2.2.x export TRAVIS_COMMIT=$(git ls-remote origin 2.4.x | cut -c-40) export FIREBASE_TOKEN=XXXXX `dirname $0`/deploy-to-firebase.sh --dry-run ) expected="Skipping deploy of branch \"2.4.x\" to firebase. We only deploy archive branches with the major version less than the stable branch: \"2.2.x\"" check "$actual" "$expected" ) ( echo ===== archive - skip deploy - minor version too low actual=$( export TRAVIS_PULL_REQUEST=false export TRAVIS_BRANCH=2.1.x export STABLE_BRANCH=4.3.x export TRAVIS_COMMIT=$(git ls-remote origin 2.1.x | cut -c-40) export FIREBASE_TOKEN=XXXXX `dirname $0`/deploy-to-firebase.sh --dry-run ) expected="Skipping deploy of branch \"2.1.x\" to firebase. There is a more recent branch with the same major version: \"2.4.x\"" check "$actual" "$expected" ) rxjs-7.5.7/docs_app/scripts/payload.sh000066400000000000000000000004211431412030200177470ustar00rootroot00000000000000#!/usr/bin/env bash set -eu -o pipefail readonly thisDir=$(cd $(dirname $0); pwd) readonly parentDir=$(dirname $thisDir) # Track payload size functions source ../scripts/ci/payload-size.sh trackPayloadSize "aio" "dist/*.js" true true "${thisDir}/_payload-limits.json" rxjs-7.5.7/docs_app/scripts/publish-docs.sh000066400000000000000000000010011431412030200207050ustar00rootroot00000000000000#!/usr/bin/env bash readonly projectId=rxjs-dev readonly deployedUrl=https://rxjs-dev.firebaseapp.com readonly firebaseToken=$FIREBASE_TOKEN # Deploy ( cd "`dirname $0`/.." # Build the app npm run build --env=stable # Include any mode-specific files cp -rf src/extra-files/$deployEnv/. dist/ # Deploy to Firebase npm run firebase -- login npm run firebase -- use "$projectId" npm run firebase -- deploy --message "Deploy docs automatically" --non-interactive npm run firebase -- logout ) rxjs-7.5.7/docs_app/scripts/test-pwa-score.js000066400000000000000000000060661431412030200212100ustar00rootroot00000000000000#!/bin/env node /** * Usage: * node scripts/test-pwa-score [] * * Fails if the score is below ``. * If `` is defined, the full results will be logged there. * * (Skips HTTPS-related audits, when run for HTTP URL.) */ // Imports const lighthouse = require('lighthouse'); const chromeLauncher = require('lighthouse/chrome-launcher'); const printer = require('lighthouse/lighthouse-cli/printer'); const config = require('lighthouse/lighthouse-core/config/default.js'); // Constants const CHROME_LAUNCH_OPTS = {}; const SKIPPED_HTTPS_AUDITS = ['redirects-http']; const VIEWER_URL = 'https://googlechrome.github.io/lighthouse/viewer/'; // Specify the path and flags for Chrome on Travis if (process.env.TRAVIS) { process.env.LIGHTHOUSE_CHROMIUM_PATH = process.env.CHROME_BIN; CHROME_LAUNCH_OPTS.chromeFlags = ['--no-sandbox']; } // Run _main(process.argv.slice(2)); // Functions - Definitions function _main(args) { const {url, minScore, logFile} = parseInput(args); const isOnHttp = /^http:/.test(url); console.log(`Running PWA audit for '${url}'...`); if (isOnHttp) { skipHttpsAudits(config); } launchChromeAndRunLighthouse(url, {}, config). then(results => processResults(results, logFile)). then(score => evaluateScore(minScore, score)). catch(onError); } function evaluateScore(expectedScore, actualScore) { console.log('Lighthouse PWA score:'); console.log(` - Expected: ${expectedScore} / 100 (or higher)`); console.log(` - Actual: ${actualScore} / 100`); if (actualScore < expectedScore) { throw new Error(`PWA score is too low. (${actualScore} < ${expectedScore})`); } } function launchChromeAndRunLighthouse(url, flags, config) { return chromeLauncher.launch(CHROME_LAUNCH_OPTS).then(chrome => { flags.port = chrome.port; return lighthouse(url, flags, config). then(results => chrome.kill().then(() => results)). catch(err => chrome.kill().then(() => { throw err; }, () => { throw err; })); }); } function onError(err) { console.error(err); process.exit(1); } function parseInput(args) { const url = args[0]; const minScore = Number(args[1]); const logFile = args[2]; if (!url) { onError('Invalid arguments: not specified.'); } else if (isNaN(minScore)) { onError('Invalid arguments: not specified or not a number.'); } return {url, minScore, logFile}; } function processResults(results, logFile) { let promise = Promise.resolve(); if (logFile) { console.log(`Saving results in '${logFile}'...`); console.log(`(LightHouse viewer: ${VIEWER_URL})`); // Remove the artifacts, which are not necessary for the report. // (Saves ~1,500,000 lines of formatted JSON output \o/) results.artifacts = undefined; promise = printer.write(results, 'json', logFile); } return promise.then(() => Math.round(results.score)); } function skipHttpsAudits(config) { console.info(`Skipping HTTPS-related audits (${SKIPPED_HTTPS_AUDITS.join(', ')})...`); config.settings.skipAudits = SKIPPED_HTTPS_AUDITS; } rxjs-7.5.7/docs_app/src/000077500000000000000000000000001431412030200150655ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/000077500000000000000000000000001431412030200156455ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/app.component.spec.ts000066400000000000000000001473311431412030200217400ustar00rootroot00000000000000import { NO_ERRORS_SCHEMA, DebugElement } from '@angular/core'; import { inject, ComponentFixture, TestBed, fakeAsync, tick, flushMicrotasks } from '@angular/core/testing'; import { Title } from '@angular/platform-browser'; import { APP_BASE_HREF } from '@angular/common'; import { HttpClient } from '@angular/common/http'; import { MatProgressBar } from '@angular/material/progress-bar'; import { MatSidenav } from '@angular/material/sidenav'; import { By } from '@angular/platform-browser'; import { of, timer } from 'rxjs'; import { first, mapTo } from 'rxjs/operators'; import { AppComponent } from './app.component'; import { AppModule } from './app.module'; import { DocumentService } from 'app/documents/document.service'; import { DocViewerComponent } from 'app/layout/doc-viewer/doc-viewer.component'; import { Deployment } from 'app/shared/deployment.service'; import { GaService } from 'app/shared/ga.service'; import { LocationService } from 'app/shared/location.service'; import { Logger } from 'app/shared/logger.service'; import { MockLocationService } from 'testing/location.service'; import { MockLogger } from 'testing/logger.service'; import { MockSearchService } from 'testing/search.service'; import { NavigationNode } from 'app/navigation/navigation.service'; import { ScrollService } from 'app/shared/scroll.service'; import { SearchBoxComponent } from 'app/search/search-box/search-box.component'; import { SearchResultsComponent } from 'app/shared/search-results/search-results.component'; import { SearchService } from 'app/search/search.service'; import { SelectComponent } from 'app/shared/select/select.component'; import { TocItem, TocService } from 'app/shared/toc.service'; import { ElementsLoader } from './custom-elements/elements-loader'; const sideBySideBreakPoint = 992; const hideToCBreakPoint = 800; const startedDelay = 100; describe('AppComponent', () => { let component: AppComponent; let fixture: ComponentFixture; let documentService: DocumentService; let docViewer: HTMLElement; let docViewerComponent: DocViewerComponent; let hamburger: HTMLButtonElement; let locationService: MockLocationService; let sidenav: MatSidenav; let tocService: TocService; async function awaitDocRendered() { const newDocPromise = new Promise(resolve => documentService.currentDocument.subscribe(resolve)); const docRenderedPromise = new Promise(resolve => docViewerComponent.docRendered.subscribe(resolve)); await newDocPromise; // Wait for the new document to be fetched. fixture.detectChanges(); // Propagate document change to the view (i.e to `DocViewer`). await docRenderedPromise; // Wait for the `docRendered` event. } function initializeTest(waitForDoc = true) { fixture = TestBed.createComponent(AppComponent); component = fixture.componentInstance; fixture.detectChanges(); component.onResize(sideBySideBreakPoint + 1); // wide by default const de = fixture.debugElement; const docViewerDe = de.query(By.css('aio-doc-viewer')); documentService = de.injector.get(DocumentService); docViewer = docViewerDe.nativeElement; docViewerComponent = docViewerDe.componentInstance; hamburger = de.query(By.css('.hamburger')).nativeElement; locationService = de.injector.get(LocationService); sidenav = de.query(By.directive(MatSidenav)).componentInstance; tocService = de.injector.get(TocService); return waitForDoc && awaitDocRendered(); } describe('with proper DocViewer', () => { beforeEach(async () => { DocViewerComponent.animationsEnabled = false; createTestingModule('a/b'); await initializeTest(); }); afterEach(() => DocViewerComponent.animationsEnabled = true); it('should create', () => { expect(component).toBeDefined(); }); describe('hasFloatingToc', () => { it('should initially be false', () => { const fixture2 = TestBed.createComponent(AppComponent); const component2 = fixture2.componentInstance; expect(component2.hasFloatingToc).toBe(false); }); it('should be false on narrow screens', () => { component.onResize(hideToCBreakPoint - 1); tocService.tocList.next([{}, {}, {}] as TocItem[]); expect(component.hasFloatingToc).toBe(false); tocService.tocList.next([]); expect(component.hasFloatingToc).toBe(false); tocService.tocList.next([{}, {}, {}] as TocItem[]); expect(component.hasFloatingToc).toBe(false); }); it('should be true on wide screens unless the toc is empty', () => { component.onResize(hideToCBreakPoint + 1); tocService.tocList.next([{}, {}, {}] as TocItem[]); expect(component.hasFloatingToc).toBe(true); tocService.tocList.next([]); expect(component.hasFloatingToc).toBe(false); tocService.tocList.next([{}, {}, {}] as TocItem[]); expect(component.hasFloatingToc).toBe(true); }); it('should be false when toc is empty', () => { tocService.tocList.next([]); component.onResize(hideToCBreakPoint + 1); expect(component.hasFloatingToc).toBe(false); component.onResize(hideToCBreakPoint - 1); expect(component.hasFloatingToc).toBe(false); component.onResize(hideToCBreakPoint + 1); expect(component.hasFloatingToc).toBe(false); }); it('should be true when toc is not empty unless the screen is narrow', () => { tocService.tocList.next([{}, {}, {}] as TocItem[]); component.onResize(hideToCBreakPoint + 1); expect(component.hasFloatingToc).toBe(true); component.onResize(hideToCBreakPoint - 1); expect(component.hasFloatingToc).toBe(false); component.onResize(hideToCBreakPoint + 1); expect(component.hasFloatingToc).toBe(true); }); }); describe('isSideBySide', () => { it('should be updated on resize', () => { component.onResize(sideBySideBreakPoint - 1); expect(component.isSideBySide).toBe(false); component.onResize(sideBySideBreakPoint + 1); expect(component.isSideBySide).toBe(true); }); }); describe('onScroll', () => { it('should update `tocMaxHeight` accordingly', () => { component.tocMaxHeight = ''; component.onScroll(); expect(component.tocMaxHeight).toMatch(/^\d+\.\d{2}$/); }); }); describe('SideNav', () => { const navigateTo = (path: string) => { locationService.go(path); component.updateSideNav(); fixture.detectChanges(); }; const resizeTo = (width: number) => { component.onResize(width); fixture.detectChanges(); }; const toggleSidenav = () => { hamburger.click(); fixture.detectChanges(); }; describe('when side-by-side (wide)', () => { beforeEach(() => resizeTo(sideBySideBreakPoint + 1)); // side-by-side it('should open when navigating to a guide page (guide/pipes)', () => { navigateTo('guide/pipes'); expect(sidenav.opened).toBe(true); }); it('should open when navigating to an api page', () => { navigateTo('api/a/b/c/d'); expect(sidenav.opened).toBe(true); }); it('should be closed when navigating to a marketing page (features)', () => { navigateTo('features'); expect(sidenav.opened).toBe(false); }); describe('when manually closed', () => { beforeEach(() => { navigateTo('guide/pipes'); toggleSidenav(); }); it('should be closed', () => { expect(sidenav.opened).toBe(false); }); it('should stay closed when navigating from one guide page to another', () => { navigateTo('guide/bags'); expect(sidenav.opened).toBe(false); }); it('should stay closed when navigating from a guide page to api page', () => { navigateTo('api'); expect(sidenav.opened).toBe(false); }); it('should reopen when navigating to market page and back to guide page', () => { navigateTo('features'); navigateTo('guide/bags'); expect(sidenav.opened).toBe(true); }); }); }); describe('when NOT side-by-side (narrow)', () => { beforeEach(() => resizeTo(sideBySideBreakPoint - 1)); // NOT side-by-side it('should be closed when navigating to a guide page (guide/pipes)', () => { navigateTo('guide/pipes'); expect(sidenav.opened).toBe(false); }); it('should be closed when navigating to an api page', () => { navigateTo('api/a/b/c/d'); expect(sidenav.opened).toBe(false); }); it('should be closed when navigating to a marketing page (features)', () => { navigateTo('features'); expect(sidenav.opened).toBe(false); }); describe('when manually opened', () => { beforeEach(() => { navigateTo('guide/pipes'); toggleSidenav(); }); it('should be open', () => { expect(sidenav.opened).toBe(true); }); it('should close when clicking in gray content area overlay', () => { const sidenavBackdrop = fixture.debugElement.query(By.css('.mat-drawer-backdrop')).nativeElement; sidenavBackdrop.click(); fixture.detectChanges(); expect(sidenav.opened).toBe(false); }); it('should close when navigating to another guide page', () => { navigateTo('guide/bags'); expect(sidenav.opened).toBe(false); }); it('should close when navigating to api page', () => { navigateTo('api'); expect(sidenav.opened).toBe(false); }); it('should close again when navigating to market page', () => { navigateTo('features'); expect(sidenav.opened).toBe(false); }); }); }); describe('when changing side-by-side (narrow --> wide)', () => { const sidenavDocs = ['api/a/b/c/d', 'guide/pipes']; const nonSidenavDocs = ['features', 'about']; sidenavDocs.forEach(doc => { it(`should open when on a sidenav doc (${doc})`, () => { resizeTo(sideBySideBreakPoint - 1); navigateTo(doc); expect(sidenav.opened).toBe(false); resizeTo(sideBySideBreakPoint + 1); expect(sidenav.opened).toBe(true); }); }); nonSidenavDocs.forEach(doc => { it(`should remain closed when on a non-sidenav doc (${doc})`, () => { resizeTo(sideBySideBreakPoint - 1); navigateTo(doc); expect(sidenav.opened).toBe(false); resizeTo(sideBySideBreakPoint + 1); expect(sidenav.opened).toBe(false); }); }); describe('when manually opened', () => { sidenavDocs.forEach(doc => { it(`should remain opened when on a sidenav doc (${doc})`, () => { resizeTo(sideBySideBreakPoint - 1); navigateTo(doc); toggleSidenav(); expect(sidenav.opened).toBe(true); resizeTo(sideBySideBreakPoint + 1); expect(sidenav.opened).toBe(true); }); }); nonSidenavDocs.forEach(doc => { it(`should close when on a non-sidenav doc (${doc})`, () => { resizeTo(sideBySideBreakPoint - 1); navigateTo(doc); toggleSidenav(); expect(sidenav.opened).toBe(true); resizeTo(sideBySideBreakPoint + 1); expect(sidenav.opened).toBe(false); }); }); }); }); describe('when changing side-by-side (wide --> narrow)', () => { const sidenavDocs = ['api/a/b/c/d', 'guide/pipes']; const nonSidenavDocs = ['features', 'about']; sidenavDocs.forEach(doc => { it(`should close when on a sidenav doc (${doc})`, () => { navigateTo(doc); expect(sidenav.opened).toBe(true); resizeTo(sideBySideBreakPoint - 1); expect(sidenav.opened).toBe(false); }); }); nonSidenavDocs.forEach(doc => { it(`should remain closed when on a non-sidenav doc (${doc})`, () => { navigateTo(doc); expect(sidenav.opened).toBe(false); resizeTo(sideBySideBreakPoint - 1); expect(sidenav.opened).toBe(false); }); }); }); }); xdescribe('SideNav version selector', () => { let selectElement: DebugElement; let selectComponent: SelectComponent; async function setupSelectorForTesting(mode?: string) { createTestingModule('a/b', mode); await initializeTest(); component.onResize(sideBySideBreakPoint + 1); // side-by-side selectElement = fixture.debugElement.query(By.directive(SelectComponent)); selectComponent = selectElement.componentInstance; } it('should select the version that matches the deploy mode', async () => { await setupSelectorForTesting(); expect(selectComponent.selected.title).toContain('stable'); await setupSelectorForTesting('next'); expect(selectComponent.selected.title).toContain('next'); await setupSelectorForTesting('archive'); expect(selectComponent.selected.title).toContain('v4'); }); it('should add the current raw version string to the selected version', async () => { await setupSelectorForTesting(); expect(selectComponent.selected.title).toContain(`(v${component.versionInfo.raw})`); await setupSelectorForTesting('next'); expect(selectComponent.selected.title).toContain(`(v${component.versionInfo.raw})`); await setupSelectorForTesting('archive'); expect(selectComponent.selected.title).toContain(`(v${component.versionInfo.raw})`); }); // Older docs versions have an href it('should navigate when change to a version with a url', async () => { await setupSelectorForTesting(); const versionWithUrlIndex = component.docVersions.findIndex(v => !!v.url); const versionWithUrl = component.docVersions[versionWithUrlIndex]; selectElement.triggerEventHandler('change', { option: versionWithUrl, index: versionWithUrlIndex}); expect(locationService.go).toHaveBeenCalledWith(versionWithUrl.url); }); it('should not navigate when change to a version without a url', async () => { await setupSelectorForTesting(); const versionWithoutUrlIndex = component.docVersions.length; const versionWithoutUrl = component.docVersions[versionWithoutUrlIndex] = { title: 'foo' }; selectElement.triggerEventHandler('change', { option: versionWithoutUrl, index: versionWithoutUrlIndex }); expect(locationService.go).not.toHaveBeenCalled(); }); it('should navigate when change to a version with a url that does not end with `/`', async () => { await setupSelectorForTesting(); locationService.urlSubject.next('docs#section-1'); const versionWithoutSlashIndex = component.docVersions.length; const versionWithoutSlashUrl = component.docVersions[versionWithoutSlashIndex] = { url: 'https://next.angular.io', title: 'foo' }; selectElement.triggerEventHandler('change', { option: versionWithoutSlashUrl, index: versionWithoutSlashIndex }); expect(locationService.go).toHaveBeenCalledWith('https://next.angular.io/docs#section-1'); }); }); describe('currentDocument', () => { const navigateTo = async (path: string) => { locationService.go(path); await awaitDocRendered(); }; it('should display a guide page (guide/pipes)', async () => { await navigateTo('guide/pipes'); expect(docViewer.textContent).toMatch(/Pipes/i); }); it('should display the api page', async () => { await navigateTo('api'); expect(docViewer.textContent).toMatch(/API/i); }); it('should display a marketing page', async () => { await navigateTo('features'); expect(docViewer.textContent).toMatch(/Features/i); }); it('should update the document title', async () => { const titleService = TestBed.inject(Title); spyOn(titleService, 'setTitle'); await navigateTo('guide/pipes'); expect(titleService.setTitle).toHaveBeenCalledWith('RxJS - Pipes'); }); it('should update the document title, with a default value if the document has no title', async () => { const titleService = TestBed.inject(Title); spyOn(titleService, 'setTitle'); await navigateTo('no-title'); expect(titleService.setTitle).toHaveBeenCalledWith('RxJS'); }); }); describe('auto-scrolling', () => { const scrollDelay = 500; let scrollService: ScrollService; let scrollSpy: jasmine.Spy; let scrollToTopSpy: jasmine.Spy; let scrollAfterRenderSpy: jasmine.Spy; let removeStoredScrollPositionSpy: jasmine.Spy; beforeEach(() => { scrollService = fixture.debugElement.injector.get(ScrollService); scrollSpy = spyOn(scrollService, 'scroll'); scrollToTopSpy = spyOn(scrollService, 'scrollToTop'); scrollAfterRenderSpy = spyOn(scrollService, 'scrollAfterRender'); removeStoredScrollPositionSpy = spyOn(scrollService, 'removeStoredScrollPosition'); }); it('should not scroll immediately when the docId (path) changes', () => { locationService.go('guide/pipes'); // deliberately not calling `fixture.detectChanges` because don't want `onDocInserted` expect(scrollSpy).not.toHaveBeenCalled(); expect(scrollToTopSpy).not.toHaveBeenCalled(); }); it('should scroll when just the hash changes (# alone)', () => { locationService.go('guide/pipes'); locationService.go('guide/pipes#somewhere'); expect(scrollSpy).toHaveBeenCalled(); }); it('should scroll when just the hash changes (/#)', () => { locationService.go('guide/pipes'); locationService.go('guide/pipes/#somewhere'); expect(scrollSpy).toHaveBeenCalled(); }); it('should scroll again when navigating to the same hash twice in succession', () => { locationService.go('guide/pipes'); locationService.go('guide/pipes#somewhere'); locationService.go('guide/pipes#somewhere'); expect(scrollSpy.calls.count()).toBe(2); }); it('should scroll when navigating to the same path', () => { locationService.go('guide/pipes'); scrollSpy.calls.reset(); locationService.go('guide/pipes'); expect(scrollSpy).toHaveBeenCalledTimes(1); }); it('should scroll when re-nav to the empty path', () => { locationService.go(''); scrollSpy.calls.reset(); locationService.go(''); expect(scrollSpy).toHaveBeenCalledTimes(1); }); it('should call `removeStoredScrollPosition` when call `onDocRemoved` directly', () => { component.onDocRemoved(); expect(removeStoredScrollPositionSpy).toHaveBeenCalled(); }); it('should call `scrollAfterRender` when call `onDocInserted` directly', (() => { component.onDocInserted(); expect(scrollAfterRenderSpy).toHaveBeenCalledWith(scrollDelay); })); it('should call `scrollAfterRender` (via `onDocInserted`) when navigate to a new Doc', fakeAsync(() => { locationService.go('guide/pipes'); tick(1); // triggers the HTTP response for the document fixture.detectChanges(); // passes the new doc to the `DocViewer` flushMicrotasks(); // triggers the `DocViewer` event that calls `onDocInserted` expect(scrollAfterRenderSpy).toHaveBeenCalledWith(scrollDelay); tick(500); // there are other outstanding timers in the AppComponent that are not relevant })); }); describe('click intercepting', () => { it('should intercept clicks on anchors and call `location.handleAnchorClick()`', inject([LocationService], (location: LocationService) => { const el = fixture.nativeElement as Element; el.innerHTML = 'click me'; const anchorElement = el.getElementsByTagName('a')[0]; anchorElement.click(); expect(location.handleAnchorClick).toHaveBeenCalledWith(anchorElement, 0, false, false); })); it('should intercept clicks on elements deep within an anchor tag', inject([LocationService], (location: LocationService) => { const el = fixture.nativeElement as Element; el.innerHTML = '
'; const imageElement = el.getElementsByTagName('img')[0]; const anchorElement = el.getElementsByTagName('a')[0]; imageElement.click(); expect(location.handleAnchorClick).toHaveBeenCalledWith(anchorElement, 0, false, false); })); it('should ignore clicks on elements without an anchor ancestor', inject([LocationService], (location: LocationService) => { const el = fixture.nativeElement as Element; el.innerHTML = '

'; const imageElement = el.getElementsByTagName('img')[0]; imageElement.click(); expect(location.handleAnchorClick).not.toHaveBeenCalled(); })); }); describe('restrainScrolling()', () => { const preventedScrolling = (currentTarget: object, deltaY: number) => { const evt = { deltaY, currentTarget, defaultPrevented: false, preventDefault() { this.defaultPrevented = true; } } as any as WheelEvent; component.restrainScrolling(evt); return evt.defaultPrevented; }; it('should prevent scrolling up if already at the top', () => { const elem = {scrollTop: 0}; expect(preventedScrolling(elem, -100)).toBe(true); expect(preventedScrolling(elem, +100)).toBe(false); expect(preventedScrolling(elem, -10)).toBe(true); }); it('should prevent scrolling down if already at the bottom', () => { const elem = {scrollTop: 100, scrollHeight: 150, clientHeight: 50}; expect(preventedScrolling(elem, +10)).toBe(true); expect(preventedScrolling(elem, -10)).toBe(false); expect(preventedScrolling(elem, +5)).toBe(true); elem.clientHeight -= 10; expect(preventedScrolling(elem, +5)).toBe(false); elem.scrollHeight -= 20; expect(preventedScrolling(elem, +5)).toBe(true); elem.scrollTop -= 30; expect(preventedScrolling(elem, +5)).toBe(false); }); it('should not prevent scrolling if neither at the top nor at the bottom', () => { const elem = {scrollTop: 50, scrollHeight: 150, clientHeight: 50}; expect(preventedScrolling(elem, +100)).toBe(false); expect(preventedScrolling(elem, -100)).toBe(false); }); }); describe('aio-toc', () => { let tocContainer: HTMLElement|null; let toc: HTMLElement|null; const setHasFloatingToc = (hasFloatingToc: boolean) => { component.hasFloatingToc = hasFloatingToc; fixture.detectChanges(); tocContainer = fixture.debugElement.nativeElement.querySelector('.toc-container'); toc = tocContainer && tocContainer.querySelector('aio-toc'); }; xit('should show/hide `` based on `hasFloatingToc`', () => { expect(tocContainer).toBeFalsy(); expect(toc).toBeFalsy(); setHasFloatingToc(true); expect(tocContainer).toBeTruthy(); expect(toc).toBeTruthy(); setHasFloatingToc(false); expect(tocContainer).toBeFalsy(); expect(toc).toBeFalsy(); }); it('should have a non-embedded `` element', () => { setHasFloatingToc(true); expect(toc!.classList.contains('embedded')).toBe(false); }); it('should update the TOC container\'s `maxHeight` based on `tocMaxHeight`', () => { setHasFloatingToc(true); component.tocMaxHeight = '100'; fixture.detectChanges(); expect(tocContainer!.style.maxHeight).toBe('100px'); component.tocMaxHeight = '200'; fixture.detectChanges(); expect(tocContainer!.style.maxHeight).toBe('200px'); }); it('should restrain scrolling inside the ToC container', () => { const restrainScrolling = spyOn(component, 'restrainScrolling'); const evt = new WheelEvent('mousewheel'); setHasFloatingToc(true); expect(restrainScrolling).not.toHaveBeenCalled(); tocContainer!.dispatchEvent(evt); expect(restrainScrolling).toHaveBeenCalledWith(evt); }); it('should not be loaded/registered until necessary', () => { const loader = fixture.debugElement.injector.get(ElementsLoader) as unknown as TestElementsLoader; expect(loader.loadCustomElement).not.toHaveBeenCalled(); setHasFloatingToc(true); expect(loader.loadCustomElement).toHaveBeenCalledWith('aio-toc'); }); }); describe('footer', () => { it('should have version number', () => { const versionEl: HTMLElement = fixture.debugElement.query(By.css('aio-footer')).nativeElement; expect(versionEl.textContent).toContain(TestHttpClient.versionInfo.full); }); }); describe('deployment banner', () => { it('should show a message if the deployment mode is "archive"', async () => { createTestingModule('a/b', 'archive'); await initializeTest(); const banner: HTMLElement = fixture.debugElement.query(By.css('aio-mode-banner')).nativeElement; expect(banner.textContent).toContain('archived documentation for Angular v4'); }); it('should show no message if the deployment mode is not "archive"', async () => { createTestingModule('a/b', 'stable'); await initializeTest(); const banner: HTMLElement = fixture.debugElement.query(By.css('aio-mode-banner')).nativeElement; expect(banner.textContent!.trim()).toEqual(''); }); }); describe('search', () => { describe('initialization', () => { it('should initialize the search worker', inject([SearchService], (searchService: SearchService) => { expect(searchService.initWorker).toHaveBeenCalled(); })); }); describe('click handling', () => { it('should intercept clicks not on the search elements and hide the search results', () => { component.showSearchResults = true; fixture.detectChanges(); // docViewer is a commonly-clicked, non-search element docViewer.click(); expect(component.showSearchResults).toBe(false); }); it('should clear "only" the search query param from the URL', () => { // Mock out the current state of the URL query params locationService.search.and.returnValue({ a: 'some-A', b: 'some-B', search: 'some-C'}); // docViewer is a commonly-clicked, non-search element docViewer.click(); // Check that the query params were updated correctly expect(locationService.setSearch).toHaveBeenCalledWith('', { a: 'some-A', b: 'some-B', search: undefined }); }); it('should not intercept clicks on the searchResults', () => { component.showSearchResults = true; fixture.detectChanges(); const searchResults = fixture.debugElement.query(By.directive(SearchResultsComponent)); searchResults.nativeElement.click(); fixture.detectChanges(); expect(component.showSearchResults).toBe(true); }); it('should not intercept clicks on the searchBox', () => { component.showSearchResults = true; fixture.detectChanges(); const searchBox = fixture.debugElement.query(By.directive(SearchBoxComponent)); searchBox.nativeElement.click(); fixture.detectChanges(); expect(component.showSearchResults).toBe(true); }); it('should not call `locationService.setSearch` when searchResults are not shown', () => { docViewer.click(); expect(locationService.setSearch).not.toHaveBeenCalled(); }); }); describe('keyup handling', () => { it('should grab focus when the / key is pressed', () => { const searchBox: SearchBoxComponent = fixture.debugElement.query(By.directive(SearchBoxComponent)).componentInstance; spyOn(searchBox, 'focus'); window.document.dispatchEvent(new KeyboardEvent('keyup', { 'key': '/' })); fixture.detectChanges(); expect(searchBox.focus).toHaveBeenCalled(); }); it('should set focus back to the search box when the search results are displayed and the escape key is pressed', () => { const searchBox: SearchBoxComponent = fixture.debugElement.query(By.directive(SearchBoxComponent)).componentInstance; spyOn(searchBox, 'focus'); component.showSearchResults = true; window.document.dispatchEvent(new KeyboardEvent('keyup', { 'key': 'Escape' })); fixture.detectChanges(); expect(searchBox.focus).toHaveBeenCalled(); }); }); describe('showing search results', () => { it('should not display search results when query is empty', () => { const searchService = TestBed.inject(SearchService) as Partial as MockSearchService; searchService.searchResults.next({ query: '', results: [] }); fixture.detectChanges(); expect(component.showSearchResults).toBe(false); }); it('should hide the results when a search result is selected', () => { const searchService = TestBed.inject(SearchService) as Partial as MockSearchService; const results = [ { path: 'news', title: 'News', type: 'marketing', keywords: '', titleWords: '', deprecated: false } ]; searchService.searchResults.next({ query: 'something', results }); component.showSearchResults = true; fixture.detectChanges(); const searchResultsComponent = fixture.debugElement.query(By.directive(SearchResultsComponent)); searchResultsComponent.triggerEventHandler('resultSelected', {}); fixture.detectChanges(); expect(component.showSearchResults).toBe(false); }); it('should re-run the search when the search box regains focus', () => { const doSearchSpy = spyOn(component, 'doSearch'); const searchBox = fixture.debugElement.query(By.directive(SearchBoxComponent)); searchBox.triggerEventHandler('onFocus', 'some query'); expect(doSearchSpy).toHaveBeenCalledWith('some query'); }); }); }); describe('archive redirection', () => { it('should redirect to `docs` if deployment mode is `archive` and not at a docs page', () => { createTestingModule('guide/aot-compiler', 'archive'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('tutorial', 'archive'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('tutorial/toh-pt1', 'archive'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('docs', 'archive'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('api', 'archive'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('api/core/getPlatform', 'archive'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); }); it('should not redirect if deployment mode is `next`', () => { createTestingModule('', 'next'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('resources', 'next'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('guide/aot-compiler', 'next'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('tutorial', 'next'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('tutorial/toh-pt1', 'next'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('docs', 'next'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('api', 'next'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('api/core/getPlatform', 'next'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); }); it('should not redirect to `docs` if deployment mode is `stable`', () => { createTestingModule('', 'stable'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('resources', 'stable'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('guide/aot-compiler', 'stable'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('tutorial', 'stable'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('tutorial/toh-pt1', 'stable'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('docs', 'stable'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('api', 'stable'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); createTestingModule('api/core/getPlatform', 'stable'); initializeTest(false); expect(TestBed.inject(LocationService).replace).not.toHaveBeenCalled(); }); }); }); describe('with mocked DocViewer', () => { const getDocViewer = () => { const docViewer = fixture.debugElement.query(By.css('aio-doc-viewer')); return docViewer; }; const triggerDocViewerEvent = (evt: 'docReady' | 'docRemoved' | 'docInserted' | 'docRendered') => getDocViewer().triggerEventHandler(evt, undefined); beforeEach(() => { createTestingModule('a/b'); // Remove the DocViewer for this test and hide the missing component message TestBed.overrideModule(AppModule, { remove: { declarations: [DocViewerComponent] }, add: { schemas: [NO_ERRORS_SCHEMA] } }); }); describe('initial rendering', () => { beforeEach(jasmine.clock().install); afterEach(jasmine.clock().uninstall); it('should initially disable Angular animations until a document is rendered', () => { initializeTest(false); jasmine.clock().tick(1); // triggers the HTTP response for the document expect(component.isStarting).toBe(true); expect(fixture.debugElement.properties['@.disabled']).toBe(true); triggerDocViewerEvent('docInserted'); jasmine.clock().tick(startedDelay); fixture.detectChanges(); expect(component.isStarting).toBe(true); expect(fixture.debugElement.properties['@.disabled']).toBe(true); triggerDocViewerEvent('docRendered'); jasmine.clock().tick(startedDelay); fixture.detectChanges(); expect(component.isStarting).toBe(false); expect(fixture.debugElement.properties['@.disabled']).toBe(false); }); it('should initially add the starting class until a document is rendered', () => { initializeTest(false); jasmine.clock().tick(1); // triggers the HTTP response for the document const sidenavContainer = fixture.debugElement.query(By.css('mat-sidenav-container')).nativeElement; expect(component.isStarting).toBe(true); expect(hamburger.classList.contains('starting')).toBe(true); expect(sidenavContainer.classList.contains('starting')).toBe(true); triggerDocViewerEvent('docInserted'); jasmine.clock().tick(startedDelay); fixture.detectChanges(); expect(component.isStarting).toBe(true); expect(hamburger.classList.contains('starting')).toBe(true); expect(sidenavContainer.classList.contains('starting')).toBe(true); triggerDocViewerEvent('docRendered'); jasmine.clock().tick(startedDelay); fixture.detectChanges(); expect(component.isStarting).toBe(false); expect(hamburger.classList.contains('starting')).toBe(false); expect(sidenavContainer.classList.contains('starting')).toBe(false); }); it('should initially disable animations on the DocViewer for the first rendering', () => { initializeTest(false); jasmine.clock().tick(1); // triggers the HTTP response for the document expect(component.isStarting).toBe(true); expect(docViewer.classList.contains('no-animations')).toBe(true); triggerDocViewerEvent('docInserted'); jasmine.clock().tick(startedDelay); fixture.detectChanges(); expect(component.isStarting).toBe(true); expect(docViewer.classList.contains('no-animations')).toBe(true); triggerDocViewerEvent('docRendered'); jasmine.clock().tick(startedDelay); fixture.detectChanges(); expect(component.isStarting).toBe(false); expect(docViewer.classList.contains('no-animations')).toBe(false); }); }); describe('subsequent rendering', () => { beforeEach(jasmine.clock().install); afterEach(jasmine.clock().uninstall); it('should set the transitioning class on `.app-toolbar` while a document is being rendered', () => { initializeTest(false); jasmine.clock().tick(1); // triggers the HTTP response for the document const toolbar = fixture.debugElement.query(By.css('.app-toolbar')); // Initially, `isTransitioning` is true. expect(component.isTransitioning).toBe(true); expect(toolbar.classes['transitioning']).toBe(true); triggerDocViewerEvent('docRendered'); fixture.detectChanges(); expect(component.isTransitioning).toBe(false); expect(toolbar.classes['transitioning']).toBeFalsy(); // While a document is being rendered, `isTransitioning` is set to true. triggerDocViewerEvent('docReady'); fixture.detectChanges(); expect(component.isTransitioning).toBe(true); expect(toolbar.classes['transitioning']).toBe(true); triggerDocViewerEvent('docRendered'); fixture.detectChanges(); expect(component.isTransitioning).toBe(false); expect(toolbar.classes['transitioning']).toBeFalsy(); }); it('should update the sidenav state as soon as a new document is inserted (but not before)', () => { initializeTest(false); jasmine.clock().tick(1); // triggers the HTTP response for the document jasmine.clock().tick(0); // calls `updateSideNav()` for initial rendering const updateSideNavSpy = spyOn(component, 'updateSideNav'); triggerDocViewerEvent('docReady'); jasmine.clock().tick(0); expect(updateSideNavSpy).not.toHaveBeenCalled(); triggerDocViewerEvent('docInserted'); jasmine.clock().tick(0); expect(updateSideNavSpy).toHaveBeenCalledTimes(1); updateSideNavSpy.calls.reset(); triggerDocViewerEvent('docReady'); jasmine.clock().tick(0); expect(updateSideNavSpy).not.toHaveBeenCalled(); triggerDocViewerEvent('docInserted'); jasmine.clock().tick(0); expect(updateSideNavSpy).toHaveBeenCalledTimes(1); }); }); describe('pageId', () => { const navigateTo = (path: string) => { locationService.go(path); jasmine.clock().tick(1); // triggers the HTTP response for the document triggerDocViewerEvent('docInserted'); jasmine.clock().tick(0); // triggers `updateHostClasses()` fixture.detectChanges(); }; beforeEach(jasmine.clock().install); afterEach(jasmine.clock().uninstall); it('should set the id of the doc viewer container based on the current doc', () => { initializeTest(false); const container = fixture.debugElement.query(By.css('section.sidenav-content')); navigateTo('guide/pipes'); expect(component.pageId).toEqual('guide-pipes'); expect(container.properties['id']).toEqual('guide-pipes'); navigateTo('news'); expect(component.pageId).toEqual('news'); expect(container.properties['id']).toEqual('news'); navigateTo(''); expect(component.pageId).toEqual('home'); expect(container.properties['id']).toEqual('home'); }); it('should not be affected by changes to the query', () => { initializeTest(false); const container = fixture.debugElement.query(By.css('section.sidenav-content')); navigateTo('guide/pipes'); navigateTo('guide/other?search=http'); expect(component.pageId).toEqual('guide-other'); expect(container.properties['id']).toEqual('guide-other'); }); }); describe('hostClasses', () => { const triggerUpdateHostClasses = () => { jasmine.clock().tick(1); // triggers the HTTP response for document triggerDocViewerEvent('docInserted'); jasmine.clock().tick(0); // triggers `updateHostClasses()` fixture.detectChanges(); }; const navigateTo = (path: string) => { locationService.go(path); triggerUpdateHostClasses(); }; beforeEach(jasmine.clock().install); afterEach(jasmine.clock().uninstall); it('should set the css classes of the host container based on the current doc and navigation view', () => { initializeTest(false); navigateTo('guide/pipes'); checkHostClass('page', 'guide-pipes'); checkHostClass('folder', 'guide'); checkHostClass('view', 'SideNav'); navigateTo('features'); checkHostClass('page', 'features'); checkHostClass('folder', 'features'); checkHostClass('view', 'TopBar'); navigateTo(''); checkHostClass('page', 'home'); checkHostClass('folder', 'home'); checkHostClass('view', ''); }); it('should set the css class of the host container based on the open/closed state of the side nav', async () => { initializeTest(false); navigateTo('guide/pipes'); checkHostClass('sidenav', 'open'); sidenav.close(); await waitForSidenavOpenedChange(); fixture.detectChanges(); checkHostClass('sidenav', 'closed'); sidenav.open(); await waitForSidenavOpenedChange(); fixture.detectChanges(); checkHostClass('sidenav', 'open'); async function waitForSidenavOpenedChange() { const promise = new Promise(resolve => sidenav.openedChange.pipe(first()).subscribe(resolve)); await Promise.resolve(); // Wait for `MatSidenav.openedChange.emit()` to be called. jasmine.clock().tick(0); // Notify `MatSidenav.openedChange` observers. // (It is an async `EventEmitter`, thus uses `setTimeout()`.) await promise; } }); it('should set the css class of the host container based on the initial deployment mode', () => { createTestingModule('a/b', 'archive'); initializeTest(false); triggerUpdateHostClasses(); checkHostClass('mode', 'archive'); }); function checkHostClass(type: string, value: string) { const host = fixture.debugElement; const classes: string = host.properties['className']; const classArray = classes.split(' ').filter(c => c.indexOf(`${type}-`) === 0); expect(classArray.length).toBeLessThanOrEqual(1, `"${classes}" should have only one class matching ${type}-*`); expect(classArray).toEqual([`${type}-${value}`], `"${classes}" should contain ${type}-${value}`); } }); describe('progress bar', () => { const SHOW_DELAY = 200; const HIDE_DELAY = 500; const getProgressBar = () => fixture.debugElement.query(By.directive(MatProgressBar)); const initializeAndCompleteNavigation = () => { initializeTest(false); triggerDocViewerEvent('docReady'); tick(HIDE_DELAY); }; it('should initially be hidden', () => { initializeTest(false); expect(getProgressBar()).toBeFalsy(); }); it('should be shown (after a delay) when the path changes', fakeAsync(() => { initializeAndCompleteNavigation(); locationService.urlSubject.next('c/d'); fixture.detectChanges(); expect(getProgressBar()).toBeFalsy(); tick(SHOW_DELAY - 1); fixture.detectChanges(); expect(getProgressBar()).toBeFalsy(); tick(1); fixture.detectChanges(); expect(getProgressBar()).toBeTruthy(); })); it('should not be shown when the URL changes but the path remains the same', fakeAsync(() => { initializeAndCompleteNavigation(); locationService.urlSubject.next('a/b'); tick(SHOW_DELAY); fixture.detectChanges(); expect(getProgressBar()).toBeFalsy(); })); it('should not be shown when re-navigating to the empty path', fakeAsync(() => { initializeAndCompleteNavigation(); locationService.urlSubject.next(''); triggerDocViewerEvent('docReady'); locationService.urlSubject.next(''); tick(SHOW_DELAY); fixture.detectChanges(); expect(getProgressBar()).toBeFalsy(); tick(HIDE_DELAY); // Fire the remaining timer or `fakeAsync()` complains. })); it('should not be shown if the doc is prepared quickly', fakeAsync(() => { initializeAndCompleteNavigation(); locationService.urlSubject.next('c/d'); tick(SHOW_DELAY - 1); triggerDocViewerEvent('docReady'); tick(1); fixture.detectChanges(); expect(getProgressBar()).toBeFalsy(); tick(HIDE_DELAY); // Fire the remaining timer or `fakeAsync()` complains. })); it('should be shown if preparing the doc takes too long', fakeAsync(() => { initializeAndCompleteNavigation(); locationService.urlSubject.next('c/d'); tick(SHOW_DELAY); triggerDocViewerEvent('docReady'); fixture.detectChanges(); expect(getProgressBar()).toBeTruthy(); tick(HIDE_DELAY); // Fire the remaining timer or `fakeAsync()` complains. })); it('should be hidden (after a delay) once the doc has been prepared', fakeAsync(() => { initializeAndCompleteNavigation(); locationService.urlSubject.next('c/d'); tick(SHOW_DELAY); triggerDocViewerEvent('docReady'); fixture.detectChanges(); expect(getProgressBar()).toBeTruthy(); tick(HIDE_DELAY - 1); fixture.detectChanges(); expect(getProgressBar()).toBeTruthy(); tick(1); fixture.detectChanges(); expect(getProgressBar()).toBeFalsy(); })); it('should only take the latest request into account', fakeAsync(() => { initializeAndCompleteNavigation(); locationService.urlSubject.next('c/d'); // The URL changes. locationService.urlSubject.next('e/f'); // The URL changes again before `onDocReady()`. tick(SHOW_DELAY - 1); // `onDocReady()` is triggered (for the last doc), triggerDocViewerEvent('docReady'); // before the progress bar is shown. tick(1); fixture.detectChanges(); expect(getProgressBar()).toBeFalsy(); tick(HIDE_DELAY); // Fire the remaining timer or `fakeAsync()` complains. })); }); }); }); //// test helpers //// function createTestingModule(initialUrl: string, mode: string = 'stable') { const mockLocationService = new MockLocationService(initialUrl); TestBed.resetTestingModule(); TestBed.configureTestingModule({ imports: [ AppModule ], providers: [ { provide: APP_BASE_HREF, useValue: '/' }, { provide: ElementsLoader, useClass: TestElementsLoader }, { provide: GaService, useClass: TestGaService }, { provide: HttpClient, useClass: TestHttpClient }, { provide: LocationService, useFactory: () => mockLocationService }, { provide: Logger, useClass: MockLogger }, { provide: SearchService, useClass: MockSearchService }, { provide: Deployment, useFactory: () => { const deployment = new Deployment(mockLocationService as any); deployment.mode = mode; return deployment; }}, ] }); } class TestElementsLoader { loadContainedCustomElements = jasmine.createSpy('loadContainedCustomElements') .and.returnValue(of(undefined)); loadCustomElement = jasmine.createSpy('loadCustomElement') .and.returnValue(Promise.resolve()); } class TestGaService { locationChanged = jasmine.createSpy('locationChanged'); } class TestHttpClient { static versionInfo = { raw: '4.0.0-rc.6', major: 4, minor: 0, patch: 0, prerelease: [ 'local' ], build: 'sha.73808dd', version: '4.0.0-local', codeName: 'snapshot', isSnapshot: true, full: '4.0.0-local+sha.73808dd', branch: 'master', commitSHA: '73808dd38b5ccd729404936834d1568bd066de81' }; static docVersions: NavigationNode[] = [ { title: 'v2', url: 'https://v2.angular.io' } ]; // tslint:disable:quotemark navJson = { "TopBar": [ { "url": "features", "title": "Features" }, { "url": "no-title", "title": "No Title" }, ], "SideNav": [ { "title": "Core", "tooltip": "Learn the core capabilities of Angular", "children": [ { "url": "guide/pipes", "title": "Pipes", "tooltip": "Pipes transform displayed values within a template." }, { "url": "guide/bags", "title": "Bags", "tooltip": "Pack your bags for a code adventure." } ] }, { "url": "api", "title": "API", "tooltip": "Details of the Angular classes and values." } ], "docVersions": TestHttpClient.docVersions, "__versionInfo": TestHttpClient.versionInfo, }; get(url: string) { let data; if (/navigation\.json/.test(url)) { data = this.navJson; } else { const match = /generated\/docs\/(.+)\.json/.exec(url)!; const id = match[1]!; // Make up a title for test purposes const title = id.split('/').pop()!.replace(/^([a-z])/, (_, letter) => letter.toUpperCase()); const h1 = (id === 'no-title') ? '' : `

${title}

`; const contents = `${h1}

Some heading

`; data = { id, contents }; } // Preserve async nature of `HttpClient`. return timer(1).pipe(mapTo(data)); } } rxjs-7.5.7/docs_app/src/app/app.component.ts000066400000000000000000000446101431412030200210030ustar00rootroot00000000000000import { Component, ElementRef, HostBinding, HostListener, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core'; import { MatSidenav } from '@angular/material/sidenav'; import { CurrentNodes, NavigationService, NavigationNode, VersionInfo } from 'app/navigation/navigation.service'; import { DocumentService, DocumentContents } from 'app/documents/document.service'; import { Deployment } from 'app/shared/deployment.service'; import { LocationService } from 'app/shared/location.service'; import { NotificationComponent } from 'app/layout/notification/notification.component'; import { ScrollService } from 'app/shared/scroll.service'; import { SearchBoxComponent } from 'app/search/search-box/search-box.component'; import { SearchResults } from 'app/search/interfaces'; import { SearchService } from 'app/search/search.service'; import { TocService } from 'app/shared/toc.service'; import { BehaviorSubject, combineLatest, Observable } from 'rxjs'; import { first, map } from 'rxjs/operators'; import { Inject } from '@angular/core'; import { DOCUMENT } from '@angular/common'; const sideNavView = 'SideNav'; @Component({ selector: 'aio-shell', template: `
#BlackLivesMatter Home Home
View on GitHub
`, }) export class AppComponent implements OnInit { currentDocument: DocumentContents; currentDocVersion: NavigationNode; currentNodes: CurrentNodes = {}; currentPath: string; docVersions: NavigationNode[]; dtOn = false; footerNodes: NavigationNode[]; /** * An HTML friendly identifier for the currently displayed page. * This is computed from the `currentDocument.id` by replacing `/` with `-` */ pageId: string; /** * An HTML friendly identifer for the "folder" of the currently displayed page. * This is computed by taking everything up to the first `/` in the `currentDocument.id` */ folderId: string; /** * These CSS classes are computed from the current state of the application * (e.g. what document is being viewed) to allow for fine grain control over * the styling of individual pages. * You will get three classes: * * * `page-...`: computed from the current document id (e.g. events, guide-security, tutorial-toh-pt2) * * `folder-...`: computed from the top level folder for an id (e.g. guide, tutorial, etc) * * `view-...`: computed from the navigation view (e.g. SideNav, TopBar, etc) */ @HostBinding('class') hostClasses = ''; // Disable all Angular animations for the initial render. @HostBinding('@.disabled') isStarting = true; isTransitioning = true; isFetching = false; isSideBySide = false; private isFetchingTimeout: any; private isSideNavDoc = false; private sideBySideWidth = 992; sideNavNodes: NavigationNode[]; topMenuNodes: NavigationNode[]; topMenuNarrowNodes: NavigationNode[]; hasFloatingToc = false; private showFloatingToc = new BehaviorSubject(false); private showFloatingTocWidth = 800; tocMaxHeight: string; private tocMaxHeightOffset = 0; versionInfo: VersionInfo; get isOpened() { return this.isSideBySide && this.isSideNavDoc; } get mode() { return this.isSideBySide ? 'side' : 'over'; } // Search related properties showSearchResults = false; searchResults: Observable; @ViewChildren('searchBox, searchResultsView', { read: ElementRef }) searchElements: QueryList; @ViewChild(SearchBoxComponent, { static: true }) searchBox: SearchBoxComponent; @ViewChild(MatSidenav, { static: true }) sidenav: MatSidenav; @ViewChild(NotificationComponent, { static: true }) notification: NotificationComponent; notificationAnimating = false; constructor( public deployment: Deployment, private documentService: DocumentService, private hostElement: ElementRef, private locationService: LocationService, private navigationService: NavigationService, private scrollService: ScrollService, private searchService: SearchService, private tocService: TocService, @Inject(DOCUMENT) private dom ) {} ngOnInit() { // Do not initialize the search on browsers that lack web worker support if ('Worker' in window) { // Delay initialization by up to 2 seconds this.searchService.initWorker('app/search/search-worker.js', 2000); } this.onResize(window.innerWidth); /* No need to unsubscribe because this root component never dies */ this.documentService.currentDocument.subscribe((doc) => (this.currentDocument = doc)); this.locationService.currentPath.subscribe((path) => { if (path === this.currentPath) { // scroll only if on same page (most likely a change to the hash) this.scrollService.scroll(); } else { // don't scroll; leave that to `onDocRendered` this.currentPath = path; // Start progress bar if doc not rendered within brief time clearTimeout(this.isFetchingTimeout); this.isFetchingTimeout = setTimeout(() => (this.isFetching = true), 200); } }); this.navigationService.currentNodes.subscribe((currentNodes) => { this.currentNodes = currentNodes; }); // Compute the version picker list from the current version and the versions in the navigation map combineLatest( this.navigationService.versionInfo, this.navigationService.navigationViews.pipe(map((views) => views['docVersions'])) ).subscribe(([versionInfo, versions]) => { this.docVersions = [...versions]; // Find the current version - either title matches the current deployment mode // or its title matches the major version of the current version info this.currentDocVersion = this.docVersions.find( (version) => version.title === this.deployment.mode || version.title === `v${versionInfo.major}` )!; this.currentDocVersion.title += ` (v${versionInfo.raw})`; }); this.navigationService.navigationViews.subscribe((views) => { this.footerNodes = views['Footer'] || []; this.sideNavNodes = views['SideNav'] || []; this.topMenuNodes = views['TopBar'] || []; this.topMenuNarrowNodes = views['TopBarNarrow'] || this.topMenuNodes; }); this.navigationService.versionInfo.subscribe((vi) => (this.versionInfo = vi)); const hasNonEmptyToc = this.tocService.tocList.pipe(map((tocList) => tocList.length > 0)); combineLatest(hasNonEmptyToc, this.showFloatingToc).subscribe( ([hasToc, showFloatingToc]) => (this.hasFloatingToc = hasToc && showFloatingToc) ); // Generally, we want to delay updating the shell (e.g. host classes, sidenav state) for the new // document, until after the leaving document has been removed (to avoid having the styles for // the new document applied prematurely). // For the first document, though, (when we know there is no previous document), we want to // ensure the styles are applied as soon as possible to avoid flicker. combineLatest( this.documentService.currentDocument, // ...needed to determine host classes this.navigationService.currentNodes ) // ...needed to determine `sidenav` state .pipe(first()) .subscribe(() => this.updateShell()); } onDocReady() { // About to transition to new view. this.isTransitioning = true; // Stop fetching timeout (which, when render is fast, means progress bar never shown) clearTimeout(this.isFetchingTimeout); // If progress bar has been shown, keep it for at least 500ms (to avoid flashing). setTimeout(() => (this.isFetching = false), 500); } onDocRemoved() { this.scrollService.removeStoredScrollPosition(); } onDocInserted() { // Update the shell (host classes, sidenav state) to match the new document. // This may be called as a result of actions initiated by view updates. // In order to avoid errors (e.g. `ExpressionChangedAfterItHasBeenChecked`), updating the view // (e.g. sidenav, host classes) needs to happen asynchronously. setTimeout(() => this.updateShell()); // Scroll the good position depending on the context this.scrollService.scrollAfterRender(500); } onDocRendered() { if (this.isStarting) { // In order to ensure that the initial sidenav-content left margin // adjustment happens without animation, we need to ensure that // `isStarting` remains `true` until the margin change is triggered. // (Apparently, this happens with a slight delay.) setTimeout(() => (this.isStarting = false), 100); } const head = this.dom.getElementsByTagName('head')[0]; let element: HTMLLinkElement = this.dom.querySelector(`link[rel='canonical']`) || null; if (element === null) { element = this.dom.createElement('link') as HTMLLinkElement; head.appendChild(element); } element.setAttribute('rel', 'canonical'); element.setAttribute('href', `https://rxjs.dev/${this.currentPath}`); this.isTransitioning = false; } onDocVersionChange(versionIndex: number) { const version = this.docVersions[versionIndex]; if (version.url) { this.locationService.go(version.url); } } @HostListener('window:resize', ['$event.target.innerWidth']) onResize(width: number) { this.isSideBySide = width >= this.sideBySideWidth; this.showFloatingToc.next(width > this.showFloatingTocWidth); if (this.isSideBySide && !this.isSideNavDoc) { // If this is a non-sidenav doc and the screen is wide enough so that we can display menu // items in the top-bar, ensure the sidenav is closed. // (This condition can only be met when the resize event changes the value of `isSideBySide` // from `false` to `true` while on a non-sidenav doc.) this.sidenav.toggle(false); } } @HostListener('click', ['$event.target', '$event.button', '$event.ctrlKey', '$event.metaKey', '$event.altKey']) onClick(eventTarget: HTMLElement, button: number, ctrlKey: boolean, metaKey: boolean, altKey: boolean): boolean { // Hide the search results if we clicked outside both the "search box" and the "search results" if (!this.searchElements.some((element) => element.nativeElement.contains(eventTarget))) { this.hideSearchResults(); } // Show developer source view if the footer is clicked while holding the meta and alt keys if (eventTarget.tagName === 'FOOTER' && metaKey && altKey) { this.dtOn = !this.dtOn; return false; } // Deal with anchor clicks; climb DOM tree until anchor found (or null) let target: HTMLElement | null = eventTarget; while (target && !(target instanceof HTMLAnchorElement)) { target = target.parentElement; } if (target instanceof HTMLAnchorElement) { return this.locationService.handleAnchorClick(target, button, ctrlKey, metaKey); } // Allow the click to pass through return true; } setPageId(id: string) { // Special case the home page this.pageId = id === 'index' ? 'home' : id.replace('/', '-'); } setFolderId(id: string) { // Special case the home page this.folderId = id === 'index' ? 'home' : id.split('/', 1)[0]; } notificationDismissed() { this.notificationAnimating = true; // this should be kept in sync with the animation durations in: // - aio/src/styles/2-modules/_notification.scss // - aio/src/app/layout/notification/notification.component.ts setTimeout(() => (this.notificationAnimating = false), 250); this.updateHostClasses(); } updateHostClasses() { const mode = `mode-${this.deployment.mode}`; const sideNavOpen = `sidenav-${this.sidenav.opened ? 'open' : 'closed'}`; const pageClass = `page-${this.pageId}`; const folderClass = `folder-${this.folderId}`; const viewClasses = Object.keys(this.currentNodes) .map((view) => `view-${view}`) .join(' '); const notificationClass = `aio-notification-${this.notification.showNotification}`; const notificationAnimatingClass = this.notificationAnimating ? 'aio-notification-animating' : ''; this.hostClasses = [mode, sideNavOpen, pageClass, folderClass, viewClasses, notificationClass, notificationAnimatingClass].join(' '); } updateShell() { // Update the SideNav state (if necessary). this.updateSideNav(); // Update the host classes. this.setPageId(this.currentDocument.id); this.setFolderId(this.currentDocument.id); this.updateHostClasses(); } updateSideNav() { // Preserve current sidenav open state by default. let openSideNav = this.sidenav.opened; const isSideNavDoc = !!this.currentNodes[sideNavView]; if (this.isSideNavDoc !== isSideNavDoc) { // View type changed. Is it now a sidenav view (e.g, guide or tutorial)? // Open if changed to a sidenav doc; close if changed to a marketing doc. openSideNav = this.isSideNavDoc = isSideNavDoc; } // May be open or closed when wide; always closed when narrow. this.sidenav.toggle(this.isSideBySide && openSideNav); } // Dynamically change height of table of contents container @HostListener('window:scroll') onScroll() { if (!this.tocMaxHeightOffset) { // Must wait until `mat-toolbar` is measurable. const el = this.hostElement.nativeElement as Element; const headerEl = el.querySelector('.app-toolbar'); const footerEl = el.querySelector('footer'); if (headerEl && footerEl) { this.tocMaxHeightOffset = headerEl.clientHeight + footerEl.clientHeight + 24; // fudge margin } } this.tocMaxHeight = (document.body.scrollHeight - window.pageYOffset - this.tocMaxHeightOffset).toFixed(2); } // Restrain scrolling inside an element, when the cursor is over it restrainScrolling(evt: WheelEvent) { const elem = evt.currentTarget as Element; const scrollTop = elem.scrollTop; if (evt.deltaY < 0) { // Trying to scroll up: Prevent scrolling if already at the top. if (scrollTop < 1) { evt.preventDefault(); } } else { // Trying to scroll down: Prevent scrolling if already at the bottom. const maxScrollTop = elem.scrollHeight - elem.clientHeight; if (maxScrollTop - scrollTop < 1) { evt.preventDefault(); } } } // Search related methods and handlers hideSearchResults() { this.showSearchResults = false; const oldSearch = this.locationService.search(); if (oldSearch.search !== undefined) { this.locationService.setSearch('', { ...oldSearch, search: undefined }); } } focusSearchBox() { if (this.searchBox) { this.searchBox.focus(); } } doSearch(query: string) { this.searchResults = this.searchService.search(query); this.showSearchResults = !!query; } @HostListener('document:keyup', ['$event.key', '$event.which']) onKeyUp(key: string, keyCode: number) { // forward slash "/" if (key === '/' || keyCode === 191) { this.focusSearchBox(); } if (key === 'Escape' || keyCode === 27) { // escape key if (this.showSearchResults) { this.hideSearchResults(); this.focusSearchBox(); } } } } rxjs-7.5.7/docs_app/src/app/app.module.ts000066400000000000000000000135631431412030200202710ustar00rootroot00000000000000import { BrowserModule } from '@angular/platform-browser'; import { ErrorHandler, NgModule } from '@angular/core'; import { HttpClientModule } from '@angular/common/http'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { ServiceWorkerModule } from '@angular/service-worker'; import { Location, LocationStrategy, PathLocationStrategy } from '@angular/common'; import { MatButtonModule } from '@angular/material/button'; import { MatIconModule, MatIconRegistry } from '@angular/material/icon'; import { MatProgressBarModule } from '@angular/material/progress-bar'; import { MatSidenavModule } from '@angular/material/sidenav'; import { MatToolbarModule } from '@angular/material/toolbar'; import { AppComponent } from 'app/app.component'; import { CustomIconRegistry, SVG_ICONS } from 'app/shared/custom-icon-registry'; import { Deployment } from 'app/shared/deployment.service'; import { DocViewerComponent } from 'app/layout/doc-viewer/doc-viewer.component'; import { DtComponent } from 'app/layout/doc-viewer/dt.component'; import { ModeBannerComponent } from 'app/layout/mode-banner/mode-banner.component'; import { GaService } from 'app/shared/ga.service'; import { Logger } from 'app/shared/logger.service'; import { LocationService } from 'app/shared/location.service'; import { NavigationService } from 'app/navigation/navigation.service'; import { DocumentService } from 'app/documents/document.service'; import { SearchService } from 'app/search/search.service'; import { TopMenuComponent } from 'app/layout/top-menu/top-menu.component'; import { FooterComponent } from 'app/layout/footer/footer.component'; import { NavMenuComponent } from 'app/layout/nav-menu/nav-menu.component'; import { NavItemComponent } from 'app/layout/nav-item/nav-item.component'; import { ReportingErrorHandler } from 'app/shared/reporting-error-handler'; import { ScrollService } from 'app/shared/scroll.service'; import { ScrollSpyService } from 'app/shared/scroll-spy.service'; import { SearchBoxComponent } from 'app/search/search-box/search-box.component'; import { NotificationComponent } from 'app/layout/notification/notification.component'; import { TocService } from 'app/shared/toc.service'; import { CurrentDateToken, currentDateProvider } from 'app/shared/current-date'; import { WindowToken, windowProvider } from 'app/shared/window'; import { CustomElementsModule } from 'app/custom-elements/custom-elements.module'; import { SharedModule } from 'app/shared/shared.module'; import { SwUpdatesModule } from 'app/sw-updates/sw-updates.module'; import {environment} from '../environments/environment'; // These are the hardcoded inline svg sources to be used by the `` component. // tslint:disable: max-line-length export const svgIconProviders = [ { provide: SVG_ICONS, useValue: { name: 'close', svgSource: '' + '' + '' + '', }, multi: true, }, { provide: SVG_ICONS, useValue: { name: 'error_outline', svgSource: '' + '' + '' + '', }, multi: true, }, { provide: SVG_ICONS, useValue: { name: 'insert_comment', svgSource: '' + '' + '' + '', }, multi: true, }, { provide: SVG_ICONS, useValue: { name: 'keyboard_arrow_right', svgSource: '' + '' + '', }, multi: true, }, { provide: SVG_ICONS, useValue: { name: 'menu', svgSource: '' + '' + '', }, multi: true, }, ]; // tslint:enable: max-line-length @NgModule({ imports: [ BrowserModule, BrowserAnimationsModule, CustomElementsModule, HttpClientModule, MatButtonModule, MatIconModule, MatProgressBarModule, MatSidenavModule, MatToolbarModule, SwUpdatesModule, SharedModule, ServiceWorkerModule.register('/ngsw-worker.js', {enabled: environment.production}), ], declarations: [ AppComponent, DocViewerComponent, DtComponent, FooterComponent, ModeBannerComponent, NavMenuComponent, NavItemComponent, SearchBoxComponent, NotificationComponent, TopMenuComponent, ], providers: [ Deployment, DocumentService, { provide: ErrorHandler, useClass: ReportingErrorHandler }, GaService, Logger, Location, { provide: LocationStrategy, useClass: PathLocationStrategy }, LocationService, { provide: MatIconRegistry, useClass: CustomIconRegistry }, NavigationService, ScrollService, ScrollSpyService, SearchService, svgIconProviders, TocService, { provide: CurrentDateToken, useFactory: currentDateProvider }, { provide: WindowToken, useFactory: windowProvider }, ], bootstrap: [ AppComponent ] }) export class AppModule { } rxjs-7.5.7/docs_app/src/app/custom-elements/000077500000000000000000000000001431412030200207715ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/announcement-bar/000077500000000000000000000000001431412030200242255ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/announcement-bar/announcement-bar.component.spec.ts000066400000000000000000000104241431412030200327640ustar00rootroot00000000000000import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { Logger } from 'app/shared/logger.service'; import { MockLogger } from 'testing/logger.service'; import { AnnouncementBarComponent } from './announcement-bar.component'; const today = new Date(); const lastWeek = changeDays(today, -7); const yesterday = changeDays(today, -1); const tomorrow = changeDays(today, 1); const nextWeek = changeDays(today, 7); describe('AnnouncementBarComponent', () => { let element: HTMLElement; let fixture: ComponentFixture; let component: AnnouncementBarComponent; let httpMock: HttpTestingController; let mockLogger: MockLogger; beforeEach(() => { const injector = TestBed.configureTestingModule({ imports: [HttpClientTestingModule], declarations: [AnnouncementBarComponent], providers: [{ provide: Logger, useClass: MockLogger }] }); httpMock = injector.get(HttpTestingController); mockLogger = injector.get(Logger); fixture = TestBed.createComponent(AnnouncementBarComponent); component = fixture.componentInstance; element = fixture.nativeElement; }); it('should have no announcement when first created', () => { expect(component.announcement).toBeUndefined(); }); describe('ngOnInit', () => { it('should make a single request to the server', () => { component.ngOnInit(); httpMock.expectOne('generated/announcements.json'); }); it('should set the announcement to the first "live" one in the list loaded from `announcements.json`', () => { component.ngOnInit(); const request = httpMock.expectOne('generated/announcements.json'); request.flush([ { startDate: lastWeek, endDate: yesterday, message: 'Test Announcement 0' }, { startDate: tomorrow, endDate: nextWeek, message: 'Test Announcement 1' }, { startDate: yesterday, endDate: tomorrow, message: 'Test Announcement 2' }, { startDate: yesterday, endDate: tomorrow, message: 'Test Announcement 3' } ]); expect(component.announcement.message).toEqual('Test Announcement 2'); }); it('should set the announcement to `undefined` if there are no announcements in `announcements.json`', () => { component.ngOnInit(); const request = httpMock.expectOne('generated/announcements.json'); request.flush([]); expect(component.announcement).toBeUndefined(); }); it('should handle invalid data in `announcements.json`', () => { component.ngOnInit(); const request = httpMock.expectOne('generated/announcements.json'); request.flush('some random response'); expect(component.announcement).toBeUndefined(); expect(mockLogger.output.error).toEqual([ [jasmine.any(Error)] ]); expect(mockLogger.output.error[0][0].message).toMatch(/^generated\/announcements\.json contains invalid data:/); }); it('should handle a failed request for `announcements.json`', () => { component.ngOnInit(); const request = httpMock.expectOne('generated/announcements.json'); request.error(new ErrorEvent('404')); expect(component.announcement).toBeUndefined(); expect(mockLogger.output.error).toEqual([ [jasmine.any(Error)] ]); expect(mockLogger.output.error[0][0].message).toMatch(/^generated\/announcements\.json request failed:/); }); }); describe('rendering', () => { beforeEach(() => { component.announcement = { imageUrl: 'link/to/image', linkUrl: 'link/to/website', message: 'this is an important message', endDate: '2018-03-01', startDate: '2018-02-01' }; fixture.detectChanges(); }); it('should display the message as HTML', () => { expect(element.innerHTML).toContain('this is an important message'); }); it('should display an image', () => { expect(element.querySelector('img')!.src).toContain('link/to/image'); }); it('should display a link', () => { expect(element.querySelector('a')!.href).toContain('link/to/website'); }); }); }); function changeDays(initial: Date, days: number) { return (new Date(initial.valueOf()).setDate(initial.getDate() + days)); } rxjs-7.5.7/docs_app/src/app/custom-elements/announcement-bar/announcement-bar.component.ts000066400000000000000000000052421431412030200320350ustar00rootroot00000000000000import { Component, OnInit } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { catchError, map } from 'rxjs/operators'; import { Logger } from 'app/shared/logger.service'; import { CONTENT_URL_PREFIX } from 'app/documents/document.service'; const announcementsPath = CONTENT_URL_PREFIX + 'announcements.json'; export interface Announcement { imageUrl: string; message: string; linkUrl: string; startDate: string; endDate: string; } /** * Display the latest live announcement. This is used on the homepage. * * The data for the announcements is kept in `aio/content/marketing/announcements.json`. * * The format for that data file looks like: * * ``` * [ * { * "startDate": "2018-02-01", * "endDate": "2018-03-01", * "message": "This is an important announcement", * "imageUrl": "url/to/image", * "linkUrl": "url/to/website" * }, * ... * ] * ``` * * Only one announcement will be shown at any time. This is determined as the first "live" * announcement in the file, where "live" means that its start date is before today, and its * end date is after today. * * **Security Note:** * The `message` field can contain unsanitized HTML but this field should only updated by * verified members of the Angular team. */ @Component({ selector: 'aio-announcement-bar', template: `

Learn More
` }) export class AnnouncementBarComponent implements OnInit { announcement: Announcement; constructor(private http: HttpClient, private logger: Logger) {} ngOnInit() { this.http.get(announcementsPath) .pipe( catchError(error => { this.logger.error(new Error(`${announcementsPath} request failed: ${error.message}`)); return []; }), map(announcements => this.findCurrentAnnouncement(announcements)), catchError(error => { this.logger.error(new Error(`${announcementsPath} contains invalid data: ${error.message}`)); return []; }), ) .subscribe(announcement => this.announcement = announcement); } /** * Get the first date in the list that is "live" now */ private findCurrentAnnouncement(announcements: Announcement[]) { return announcements .filter(announcement => new Date(announcement.startDate).valueOf() < Date.now()) .filter(announcement => new Date(announcement.endDate).valueOf() > Date.now()) [0]; } } rxjs-7.5.7/docs_app/src/app/custom-elements/announcement-bar/announcement-bar.module.ts000066400000000000000000000011461431412030200313170ustar00rootroot00000000000000import { NgModule, Type } from '@angular/core'; import { CommonModule } from '@angular/common'; import { HttpClientModule } from '@angular/common/http'; import { SharedModule } from '../../shared/shared.module'; import { AnnouncementBarComponent } from './announcement-bar.component'; import { WithCustomElementComponent } from '../element-registry'; @NgModule({ imports: [ CommonModule, SharedModule, HttpClientModule ], declarations: [ AnnouncementBarComponent ] }) export class AnnouncementBarModule implements WithCustomElementComponent { customElementComponent: Type = AnnouncementBarComponent; } rxjs-7.5.7/docs_app/src/app/custom-elements/api/000077500000000000000000000000001431412030200215425ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/api/api-list.component.spec.ts000066400000000000000000000221431431412030200265700ustar00rootroot00000000000000import { ComponentFixture, TestBed } from '@angular/core/testing'; import { BehaviorSubject } from 'rxjs'; import { ApiListComponent } from './api-list.component'; import { ApiItem, ApiSection, ApiService } from './api.service'; import { LocationService } from 'app/shared/location.service'; import { Logger } from 'app/shared/logger.service'; import { MockLogger } from 'testing/logger.service'; import { ApiListModule } from './api-list.module'; describe('ApiListComponent', () => { let component: ApiListComponent; let fixture: ComponentFixture; let sections: ApiSection[]; beforeEach(() => { TestBed.configureTestingModule({ imports: [ ApiListModule ], providers: [ { provide: ApiService, useClass: TestApiService }, { provide: Logger, useClass: MockLogger }, { provide: LocationService, useClass: TestLocationService } ] }); fixture = TestBed.createComponent(ApiListComponent); component = fixture.componentInstance; sections = getApiSections(); }); /** * Expectation Utility: Assert that filteredSections has the expected result for this test * @param itemTest - return true if the item passes the match test * * Subscribes to `filteredSections` and performs expectation within subscription callback. */ function expectFilteredResult(label: string, itemTest: (item: ApiItem) => boolean) { component.filteredSections.subscribe(filtered => { filtered = filtered.filter(section => section.items); expect(filtered.length).toBeGreaterThan(0, 'expected something'); expect(filtered.every(section => section.items!.every(itemTest))).toBe(true, label); }); } describe('#filteredSections', () => { beforeEach(() => { fixture.detectChanges(); }); it('should return all complete sections when no criteria', () => { let filtered: ApiSection[]|undefined; component.filteredSections.subscribe(f => filtered = f); expect(filtered).toEqual(sections); }); it('item.show should be true for all queried items', () => { component.setQuery('class'); expectFilteredResult('query: class', item => /class/.test(item.name)); }); it('items should be an array for every item in section when query matches section name', () => { component.setQuery('core'); component.filteredSections.subscribe(filtered => { filtered = filtered.filter(section => Array.isArray(section.items)); expect(filtered.length).toBe(1, 'only one section'); expect(filtered[0].name).toBe('core'); expect(filtered[0].items).toEqual(sections.find(section => section.name === 'core')!.items); }); }); describe('section.items', () => { it('should null if there are no matching items and the section itself does not match', () => { component.setQuery('core'); component.filteredSections.subscribe(filtered => { const commonSection = filtered.find(section => section.name === 'common')!; expect(commonSection.items).toBe(null); }); }); it('should be visible if they have the selected stability status', () => { component.setStatus({value: 'stable', title: 'Stable'}); expectFilteredResult('status: stable', item => item.stability === 'stable'); }); it('should be visible if they have the selected security status', () => { component.setStatus({value: 'security-risk', title: 'Security Risk'}); expectFilteredResult('status: security-risk', item => item.securityRisk); }); it('should be visible if they match the selected API type', () => { component.setType({value: 'class', title: 'Class'}); expectFilteredResult('type: class', item => item.docType === 'class'); }); }); it('should have no sections and no items visible when there is no match', () => { component.setQuery('fizzbuzz'); component.filteredSections.subscribe(filtered => { expect(filtered.some(section => !!section.items)).toBeFalsy(); }); }); }); describe('initial criteria from location', () => { let locationService: TestLocationService; beforeEach(() => { locationService = fixture.componentRef.injector.get(LocationService); }); function expectOneItem(name: string, section: string, type: string, stability: string) { fixture.detectChanges(); component.filteredSections.subscribe(filtered => { filtered = filtered.filter(s => s.items); expect(filtered.length).toBe(1, 'sections'); expect(filtered[0].name).toBe(section, 'section name'); const items = filtered[0].items!; expect(items.length).toBe(1, 'items'); const item = items[0]; const badItem = 'Wrong item: ' + JSON.stringify(item, null, 2); expect(item.docType).toBe(type, badItem); expect(item.stability).toBe(stability, badItem); expect(item.name).toBe(name, badItem); }); } it('should filter as expected for ?query', () => { locationService.query = {query: '_3'}; expectOneItem('class_3', 'core', 'class', 'experimental'); }); it('should filter as expected for ?status', () => { locationService.query = {status: 'deprecated'}; expectOneItem('function_1', 'core', 'function', 'deprecated'); }); it('should filter as expected when status is security-risk', () => { locationService.query = {status: 'security-risk'}; fixture.detectChanges(); expectFilteredResult('security-risk', item => item.securityRisk); }); it('should filter as expected for ?query&status&type', () => { locationService.query = { query: 's_1', status: 'experimental', type: 'class' }; fixture.detectChanges(); expectOneItem('class_1', 'common', 'class', 'experimental'); }); it('should ignore case for ?query&status&type', () => { locationService.query = { query: 'S_1', status: 'ExperiMental', type: 'CLASS' }; fixture.detectChanges(); expectOneItem('class_1', 'common', 'class', 'experimental'); }); }); describe('location path after criteria change', () => { let locationService: TestLocationService; beforeEach(() => { locationService = fixture.componentRef.injector.get(LocationService); }); it('should have query', () => { component.setQuery('foo'); // `setSearch` 2nd param is a query/search params object const search = locationService.setSearch.calls.mostRecent().args[1]; expect(search.query).toBe('foo'); }); it('should keep last of multiple query settings (in lowercase)', () => { component.setQuery('foo'); component.setQuery('fooBar'); const search = locationService.setSearch.calls.mostRecent().args[1]; expect(search.query).toBe('foobar'); }); it('should have query, status, and type', () => { component.setQuery('foo'); component.setStatus({value: 'stable', title: 'Stable'}); component.setType({value: 'class', title: 'Class'}); const search = locationService.setSearch.calls.mostRecent().args[1]; expect(search.query).toBe('foo'); expect(search.status).toBe('stable'); expect(search.type).toBe('class'); }); }); }); ////// Helpers //////// class TestLocationService { query: {[index: string]: string } = {}; setSearch = jasmine.createSpy('setSearch'); search() { return this.query; } } class TestApiService { sectionsSubject = new BehaviorSubject(getApiSections()); sections = this.sectionsSubject.asObservable(); } // tslint:disable:quotemark const apiSections: ApiSection[] = [ { "name": "common", "title": "common", "path": "api/common", "deprecated": false, "items": [ { "name": "class_1", "title": "Class 1", "path": "api/common/class_1", "docType": "class", "stability": "experimental", "securityRisk": false, }, { "name": "class_2", "title": "Class 2", "path": "api/common/class_2", "docType": "class", "stability": "stable", "securityRisk": false, }, { "name": "directive_1", "title": "Directive 1", "path": "api/common/directive_1", "docType": "directive", "stability": "stable", "securityRisk": true, } ] }, { "name": "core", "title": "core", "path": "api/core", "deprecated": false, "items": [ { "name": "class_3", "title": "Class 3", "path": "api/core/class_3", "docType": "class", "stability": "experimental", "securityRisk": false, }, { "name": "function_1", "title": "Function 1", "path": "api/core/function 1", "docType": "function", "stability": "deprecated", "securityRisk": true, }, { "name": "const_1", "title": "Const 1", "path": "api/core/const_1", "docType": "const", "stability": "stable", "securityRisk": false, } ] } ]; function getApiSections() { return apiSections; } rxjs-7.5.7/docs_app/src/app/custom-elements/api/api-list.component.ts000066400000000000000000000134501431412030200256400ustar00rootroot00000000000000/* * API List & Filter Component * * A page that displays a formatted list of the public Angular API entities. * Clicking on a list item triggers navigation to the corresponding API entity document. * Can add/remove API entity links based on filter settings. */ import { Component, ElementRef, OnInit, ViewChild } from '@angular/core'; import { combineLatest, Observable, ReplaySubject } from 'rxjs'; import { LocationService } from 'app/shared/location.service'; import { ApiSection, ApiService } from './api.service'; import { Option } from 'app/shared/select/select.component'; import { map } from 'rxjs/operators'; class SearchCriteria { query? = ''; status? = 'all'; type? = 'all'; } @Component({ selector: 'aio-api-list', template: `
search

{{ section.title }}

  • {{ item.title }} {{ !item.stability || item.stability === 'stable' ? '' : '(' + item.stability + ')' }}
`, }) export class ApiListComponent implements OnInit { filteredSections: Observable; showStatusMenu = false; showTypeMenu = false; private criteriaSubject = new ReplaySubject(1); private searchCriteria = new SearchCriteria(); status: Option; type: Option; // API types types: Option[] = [ { value: 'all', title: 'All' }, { value: 'class', title: 'Class' }, { value: 'const', title: 'Const' }, { value: 'enum', title: 'Enum' }, { value: 'function', title: 'Function' }, { value: 'interface', title: 'Interface' }, { value: 'type-alias', title: 'Type alias' }, ]; statuses: Option[] = [ { value: 'all', title: 'All' }, { value: 'deprecated', title: 'Deprecated' }, { value: 'security-risk', title: 'Security Risk' }, ]; @ViewChild('filter', { static: true }) queryEl: ElementRef; constructor(private apiService: ApiService, private locationService: LocationService) {} ngOnInit() { this.filteredSections = combineLatest(this.apiService.sections, this.criteriaSubject).pipe( map((results) => ({ sections: results[0], criteria: results[1] })), map((results) => results.sections.map((section) => ({ ...section, items: this.filterSection(section, results.criteria) }))) ); this.initializeSearchCriteria(); } // TODO: may need to debounce as the original did // although there shouldn't be any perf consequences if we don't setQuery(query: string) { this.setSearchCriteria({ query: (query || '').toLowerCase().trim() }); } setStatus(status: Option) { this.toggleStatusMenu(); this.status = status; this.setSearchCriteria({ status: status.value }); } setType(type: Option) { this.toggleTypeMenu(); this.type = type; this.setSearchCriteria({ type: type.value }); } toggleStatusMenu() { this.showStatusMenu = !this.showStatusMenu; } toggleTypeMenu() { this.showTypeMenu = !this.showTypeMenu; } //////// Private ////////// private filterSection(section: ApiSection, { query, status, type }: SearchCriteria) { const items = section.items!.filter((item) => { return matchesType() && matchesStatus() && matchesQuery(); function matchesQuery() { return !query || section.name.indexOf(query) !== -1 || item.name.indexOf(query) !== -1; } function matchesStatus() { return status === 'all' || status === item.stability || (status === 'security-risk' && item.securityRisk); } function matchesType() { return type === 'all' || type === item.docType; } }); // If there are no items we still return an empty array if the section name matches and the type is 'package' return items.length ? items : type === 'package' && (!query || section.name.indexOf(query) !== -1) ? [] : null; } // Get initial search criteria from URL search params private initializeSearchCriteria() { const { query, status, type } = this.locationService.search(); const q = (query || '').toLowerCase(); // Hack: can't bind to query because input cursor always forced to end-of-line. this.queryEl.nativeElement.value = q; this.status = this.statuses.find((x) => x.value === status) || this.statuses[0]; this.type = this.types.find((x) => x.value === type) || this.types[0]; this.searchCriteria = { query: q, status: this.status.value, type: this.type.value, }; this.criteriaSubject.next(this.searchCriteria); } private setLocationSearch() { const { query, status, type } = this.searchCriteria; const params = { query: query ? query : undefined, status: status !== 'all' ? status : undefined, type: type !== 'all' ? type : undefined, }; this.locationService.setSearch('API Search', params); } private setSearchCriteria(criteria: SearchCriteria) { this.criteriaSubject.next(Object.assign(this.searchCriteria, criteria)); this.setLocationSearch(); } } rxjs-7.5.7/docs_app/src/app/custom-elements/api/api-list.module.ts000066400000000000000000000012071431412030200251200ustar00rootroot00000000000000import { NgModule, Type } from '@angular/core'; import { CommonModule } from '@angular/common'; import { HttpClientModule } from '@angular/common/http'; import { SharedModule } from '../../shared/shared.module'; import { ApiListComponent } from './api-list.component'; import { ApiService } from './api.service'; import { WithCustomElementComponent } from '../element-registry'; @NgModule({ imports: [ CommonModule, SharedModule, HttpClientModule ], declarations: [ ApiListComponent ], providers: [ ApiService ] }) export class ApiListModule implements WithCustomElementComponent { customElementComponent: Type = ApiListComponent; } rxjs-7.5.7/docs_app/src/app/custom-elements/api/api.service.spec.ts000066400000000000000000000065571431412030200252700ustar00rootroot00000000000000import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { Injector } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { Logger } from 'app/shared/logger.service'; import { ApiService } from './api.service'; describe('ApiService', () => { let injector: Injector; let service: ApiService; let httpMock: HttpTestingController; beforeEach(() => { injector = TestBed.configureTestingModule({ imports: [HttpClientTestingModule], providers: [ ApiService, { provide: Logger, useClass: TestLogger } ] }); service = injector.get(ApiService); httpMock = injector.get(HttpTestingController); }); afterEach(() => httpMock.verify()); it('should not immediately connect to the server', () => { httpMock.expectNone({}); }); it('subscribers should be completed/unsubscribed when service destroyed', () => { let completed = false; service.sections.subscribe( undefined, undefined, () => completed = true ); service.ngOnDestroy(); expect(completed).toBe(true); // Stop `httpMock.verify()` from complaining. httpMock.expectOne({}); }); describe('#sections', () => { it('first subscriber should fetch sections', done => { const data = [ {name: 'a', title: 'A', path: '', items: [], deprecated: false}, {name: 'b', title: 'B', path: '', items: [], deprecated: false}, ]; service.sections.subscribe(sections => { expect(sections).toEqual(data); done(); }); httpMock.expectOne({}).flush(data); }); it('second subscriber should get previous sections and NOT trigger refetch', done => { const data = [ {name: 'a', title: 'A', path: '', items: [], deprecated: false}, {name: 'b', title: 'B', path: '', items: [], deprecated: false}, ]; let subscriptions = 0; service.sections.subscribe(sections => { subscriptions++; expect(sections).toEqual(data); }); service.sections.subscribe(sections => { subscriptions++; expect(sections).toEqual(data); expect(subscriptions).toBe(2); done(); }); httpMock.expectOne({}).flush(data); }); }); describe('#fetchSections', () => { it('should connect to the server w/ expected URL', () => { service.fetchSections(); httpMock.expectOne('generated/docs/api/api-list.json'); }); it('should refresh the #sections observable w/ new content on second call', () => { let call = 0; let data = [ {name: 'a', title: 'A', path: '', items: [], deprecated: false}, {name: 'b', title: 'B', path: '', items: [], deprecated: false}, ]; service.sections.subscribe(sections => { // called twice during this test // (1) during subscribe // (2) after refresh expect(sections).toEqual(data, 'call ' + call++); }); httpMock.expectOne({}).flush(data); // refresh/refetch data = [{name: 'c', title: 'C', path: '', items: [], deprecated: false}]; service.fetchSections(); httpMock.expectOne({}).flush(data); expect(call).toBe(2, 'should be called twice'); }); }); }); class TestLogger { log = jasmine.createSpy('log'); error = jasmine.createSpy('error'); } rxjs-7.5.7/docs_app/src/app/custom-elements/api/api.service.ts000066400000000000000000000051461431412030200243300ustar00rootroot00000000000000import { Injectable, OnDestroy } from '@angular/core'; import { HttpClient, HttpErrorResponse } from '@angular/common/http'; import { ReplaySubject, Subject } from 'rxjs'; import { takeUntil, tap } from 'rxjs/operators'; import { Logger } from 'app/shared/logger.service'; import { DOC_CONTENT_URL_PREFIX } from 'app/documents/document.service'; export interface ApiItem { name: string; title: string; path: string; docType: string; stability: string; securityRisk: boolean; } export interface ApiSection { path: string; name: string; title: string; deprecated: boolean; items: ApiItem[]|null; } @Injectable() export class ApiService implements OnDestroy { private apiBase = DOC_CONTENT_URL_PREFIX + 'api/'; private apiListJsonDefault = 'api-list.json'; private firstTime = true; private onDestroy = new Subject(); private sectionsSubject = new ReplaySubject(1); private _sections = this.sectionsSubject.pipe(takeUntil(this.onDestroy)); /** * Return a cached observable of API sections from a JSON file. * API sections is an array of Angular top modules and metadata about their API documents (items). */ get sections() { if (this.firstTime) { this.firstTime = false; this.fetchSections(); // TODO: get URL for fetchSections by configuration? // makes sectionsSubject hot; subscribe ensures stays alive (always refCount > 0); this._sections.subscribe(sections => this.logger.log('ApiService got API sections') ); } return this._sections.pipe(tap(sections => { sections.forEach(section => { section.deprecated = !!section.items && section.items.every(item => item.stability === 'deprecated'); }); })); } constructor(private http: HttpClient, private logger: Logger) { } ngOnDestroy() { this.onDestroy.next(null); } /** * Fetch API sections from a JSON file. * API sections is an array of Angular top modules and metadata about their API documents (items). * Updates `sections` observable * * @param {string} [src] - Name of the api list JSON file */ fetchSections(src?: string) { // TODO: get URL by configuration? const url = this.apiBase + (src || this.apiListJsonDefault); this.http.get(url) .pipe( takeUntil(this.onDestroy), tap(() => this.logger.log(`Got API sections from ${url}`)), ) .subscribe( sections => this.sectionsSubject.next(sections), (err: HttpErrorResponse) => { // TODO: handle error this.logger.error(err); throw err; // rethrow for now. } ); } } rxjs-7.5.7/docs_app/src/app/custom-elements/code/000077500000000000000000000000001431412030200217035ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/code/code-example.component.spec.ts000066400000000000000000000061131431412030200275510ustar00rootroot00000000000000import { Component, ViewChild } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { CodeExampleComponent } from './code-example.component'; import { CodeExampleModule } from './code-example.module'; import { Logger } from 'app/shared/logger.service'; import { MockLogger } from 'testing/logger.service'; describe('CodeExampleComponent', () => { let hostComponent: HostComponent; let codeExampleComponent: CodeExampleComponent; let fixture: ComponentFixture; beforeEach(() => { TestBed.configureTestingModule({ imports: [ CodeExampleModule ], declarations: [ HostComponent, ], providers: [ { provide: Logger, useClass: MockLogger }, ] }); fixture = TestBed.createComponent(HostComponent); fixture.detectChanges(); hostComponent = fixture.componentInstance; codeExampleComponent = hostComponent.codeExampleComponent; }); it('should be able to capture the code snippet provided in content', () => { expect(codeExampleComponent.aioCode.code.trim()).toBe(`const foo = "bar";`); }); it('should change aio-code classes based on header presence', () => { expect(codeExampleComponent.header).toBe('Great Example'); expect(fixture.nativeElement.querySelector('header')).toBeTruthy(); expect(codeExampleComponent.classes).toEqual({ 'headed-code': true, 'simple-code': false }); codeExampleComponent.header = ''; fixture.detectChanges(); expect(codeExampleComponent.header).toBe(''); expect(fixture.nativeElement.querySelector('header')).toBeFalsy(); expect(codeExampleComponent.classes).toEqual({ 'headed-code': false, 'simple-code': true }); }); it('should set avoidFile class if path has .avoid.', () => { const codeExampleComponentElement: HTMLElement = fixture.nativeElement.querySelector('code-example'); expect(codeExampleComponent.path).toBe('code-path'); expect(codeExampleComponentElement.className.indexOf('avoidFile') === -1).toBe(true); codeExampleComponent.path = 'code-path.avoid.'; fixture.detectChanges(); expect(codeExampleComponentElement.className.indexOf('avoidFile') === -1).toBe(false); }); it('should coerce hidecopy', () => { expect(codeExampleComponent.hidecopy).toBe(false); hostComponent.hidecopy = true; fixture.detectChanges(); expect(codeExampleComponent.hidecopy).toBe(true); hostComponent.hidecopy = 'false'; fixture.detectChanges(); expect(codeExampleComponent.hidecopy).toBe(false); hostComponent.hidecopy = 'true'; fixture.detectChanges(); expect(codeExampleComponent.hidecopy).toBe(true); }); }); @Component({ selector: 'aio-host-comp', template: ` {{code}} ` }) class HostComponent { code = `const foo = "bar";`; header = 'Great Example'; path = 'code-path'; hidecopy: boolean | string = false; @ViewChild(CodeExampleComponent, {static: true}) codeExampleComponent: CodeExampleComponent; } rxjs-7.5.7/docs_app/src/app/custom-elements/code/code-example.component.ts000066400000000000000000000043611431412030200266230ustar00rootroot00000000000000/* tslint:disable component-selector */ import { Component, HostBinding, ElementRef, ViewChild, Input, AfterViewInit } from '@angular/core'; import { CodeComponent } from './code.component'; /** * An embeddable code block that displays nicely formatted code. * Example usage: * * ``` * * // a code block * console.log('do stuff'); * * ``` */ @Component({ selector: 'code-example', template: `
{{header}}
`, }) export class CodeExampleComponent implements AfterViewInit { classes: {}; @Input() language: string; @Input() linenums: string; @Input() region: string; @Input() set header(header: string) { this._header = header; this.classes = { 'headed-code': !!this.header, 'simple-code': !this.header, }; } get header(): string { return this._header; } private _header: string; @Input() set path(path: string) { this._path = path; this.isAvoid = this.path.indexOf('.avoid.') !== -1; } get path(): string { return this._path; } private _path = ''; @Input() set hidecopy(hidecopy: boolean) { // Coerce the boolean value. this._hidecopy = hidecopy != null && `${hidecopy}` !== 'false'; } get hidecopy(): boolean { return this._hidecopy; } private _hidecopy: boolean; @Input('hide-copy') set hyphenatedHideCopy(hidecopy: boolean) { this.hidecopy = hidecopy; } @Input('hideCopy') set capitalizedHideCopy(hidecopy: boolean) { this.hidecopy = hidecopy; } @HostBinding('class.avoidFile') isAvoid = false; @ViewChild('content', { static: true }) content: ElementRef; @ViewChild(CodeComponent, { static: true }) aioCode: CodeComponent; ngAfterViewInit() { this.aioCode.code = this.content.nativeElement.innerHTML; } } rxjs-7.5.7/docs_app/src/app/custom-elements/code/code-example.module.ts000066400000000000000000000010331431412030200260770ustar00rootroot00000000000000import { NgModule, Type } from '@angular/core'; import { CommonModule } from '@angular/common'; import { CodeExampleComponent } from './code-example.component'; import { CodeModule } from './code.module'; import { WithCustomElementComponent } from '../element-registry'; @NgModule({ imports: [ CommonModule, CodeModule ], declarations: [ CodeExampleComponent ], exports: [ CodeExampleComponent ] }) export class CodeExampleModule implements WithCustomElementComponent { customElementComponent: Type = CodeExampleComponent; } rxjs-7.5.7/docs_app/src/app/custom-elements/code/code-tabs.component.spec.ts000066400000000000000000000061771431412030200270610ustar00rootroot00000000000000import { Component, ViewChild, NO_ERRORS_SCHEMA } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { Logger } from 'app/shared/logger.service'; import { MockLogger } from 'testing/logger.service'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { CodeTabsComponent } from './code-tabs.component'; import { CodeTabsModule } from './code-tabs.module'; @Component({ selector: 'aio-host-comp', template: ` Code example 1 Code example 2 `, }) class HostComponent { @ViewChild(CodeTabsComponent, { static: true }) codeTabsComponent: CodeTabsComponent; } describe('CodeTabsComponent', () => { let fixture: ComponentFixture; let hostComponent: HostComponent; let codeTabsComponent: CodeTabsComponent; beforeEach(() => { TestBed.configureTestingModule({ declarations: [HostComponent], imports: [CodeTabsModule, NoopAnimationsModule], schemas: [NO_ERRORS_SCHEMA], providers: [{ provide: Logger, useClass: MockLogger }], }); fixture = TestBed.createComponent(HostComponent); fixture.detectChanges(); hostComponent = fixture.componentInstance; codeTabsComponent = hostComponent.codeTabsComponent; }); it('should get correct tab info', () => { const tabs = codeTabsComponent.tabs; expect(tabs.length).toBe(2); // First code pane expectations expect(tabs[0].class).toBe('class-A'); expect(tabs[0].language).toBe('language-A'); expect(tabs[0].linenums).toBe('linenums-A'); expect(tabs[0].path).toBe('path-A'); expect(tabs[0].region).toBe('region-A'); expect(tabs[0].header).toBe('header-A'); expect(tabs[0].code.trim()).toBe('Code example 1'); // Second code pane expectations expect(tabs[1].class).toBe('class-B'); expect(tabs[1].language).toBe('language-B'); expect(tabs[1].linenums).toBe('default-linenums', 'Default linenums should have been used'); expect(tabs[1].path).toBe('path-B'); expect(tabs[1].region).toBe('region-B'); expect(tabs[1].header).toBe('header-B'); expect(tabs[1].code.trim()).toBe('Code example 2'); }); it('should create the right number of tabs with the right labels and classes', () => { const matTabs = fixture.nativeElement.querySelectorAll('.mat-tab-label'); expect(matTabs.length).toBe(2); expect(matTabs[0].textContent.trim()).toBe('header-A'); expect(matTabs[0].querySelector('.class-A')).toBeTruthy(); expect(matTabs[1].textContent.trim()).toBe('header-B'); expect(matTabs[1].querySelector('.class-B')).toBeTruthy(); }); it('should show the first tab with the right code', () => { const codeContent = fixture.nativeElement.querySelector('aio-code').textContent; expect(codeContent.indexOf('Code example 1') !== -1).toBeTruthy(); }); }); rxjs-7.5.7/docs_app/src/app/custom-elements/code/code-tabs.component.ts000066400000000000000000000052141431412030200261170ustar00rootroot00000000000000/* tslint:disable component-selector */ import { AfterViewInit, Component, ElementRef, Input, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core'; import { CodeComponent } from './code.component'; export interface TabInfo { class: string | null; code: string; language: string | null; linenums: any; path: string; region: string; header: string | null; } /** * Renders a set of tab group of code snippets. * * The innerHTML of the `` component should contain `` elements. * Each `` has the same interface as the embedded `` component. * The optional `linenums` attribute is the default `linenums` for each code pane. */ @Component({ selector: 'code-tabs', template: `
{{ tab.header }} `, }) export class CodeTabsComponent implements OnInit, AfterViewInit { tabs: TabInfo[]; @Input() linenums: string; @ViewChild('content', { static: true }) content: ElementRef; @ViewChildren(CodeComponent) codeComponents: QueryList; ngOnInit() { this.tabs = []; const codeExamples = Array.from(this.content.nativeElement.querySelectorAll('code-pane')); for (const tabContent of codeExamples) { this.tabs.push(this.getTabInfo(tabContent)); } } ngAfterViewInit() { this.codeComponents.toArray().forEach((codeComponent, i) => { codeComponent.code = this.tabs[i].code; }); } /** Gets the extracted TabInfo data from the provided code-pane element. */ private getTabInfo(tabContent: Element): TabInfo { return { class: tabContent.getAttribute('class'), code: tabContent.innerHTML, language: tabContent.getAttribute('language'), linenums: tabContent.getAttribute('linenums') || this.linenums, path: tabContent.getAttribute('path') || '', region: tabContent.getAttribute('region') || '', header: tabContent.getAttribute('header'), }; } } rxjs-7.5.7/docs_app/src/app/custom-elements/code/code-tabs.module.ts000066400000000000000000000012271431412030200254020ustar00rootroot00000000000000import { NgModule, Type } from '@angular/core'; import { CommonModule } from '@angular/common'; import { CodeTabsComponent } from './code-tabs.component'; import { MatCardModule } from '@angular/material/card'; import { MatTabsModule } from '@angular/material/tabs'; import { CodeModule } from './code.module'; import { WithCustomElementComponent } from '../element-registry'; @NgModule({ imports: [ CommonModule, MatCardModule, MatTabsModule, CodeModule ], declarations: [ CodeTabsComponent ], exports: [ CodeTabsComponent ] }) export class CodeTabsModule implements WithCustomElementComponent { customElementComponent: Type = CodeTabsComponent; } rxjs-7.5.7/docs_app/src/app/custom-elements/code/code.component.spec.ts000066400000000000000000000064521431412030200261260ustar00rootroot00000000000000import { Component, ViewChild, NO_ERRORS_SCHEMA } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { Logger } from 'app/shared/logger.service'; import { MockLogger } from 'testing/logger.service'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { CodeTabsComponent } from './code-tabs.component'; import { CodeTabsModule } from './code-tabs.module'; describe('CodeTabsComponent', () => { let fixture: ComponentFixture; let hostComponent: HostComponent; let codeTabsComponent: CodeTabsComponent; beforeEach(() => { TestBed.configureTestingModule({ declarations: [ HostComponent ], imports: [ CodeTabsModule, NoopAnimationsModule ], schemas: [ NO_ERRORS_SCHEMA ], providers: [ { provide: Logger, useClass: MockLogger }, ] }); fixture = TestBed.createComponent(HostComponent); fixture.detectChanges(); hostComponent = fixture.componentInstance; codeTabsComponent = hostComponent.codeTabsComponent; }); it('should get correct tab info', () => { const tabs = codeTabsComponent.tabs; expect(tabs.length).toBe(2); // First code pane expectations expect(tabs[0].class).toBe('class-A'); expect(tabs[0].language).toBe('language-A'); expect(tabs[0].linenums).toBe('linenums-A'); expect(tabs[0].path).toBe('path-A'); expect(tabs[0].region).toBe('region-A'); expect(tabs[0].header).toBe('header-A'); expect(tabs[0].code.trim()).toBe('Code example 1'); // Second code pane expectations expect(tabs[1].class).toBe('class-B'); expect(tabs[1].language).toBe('language-B'); expect(tabs[1].linenums).toBe('default-linenums', 'Default linenums should have been used'); expect(tabs[1].path).toBe('path-B'); expect(tabs[1].region).toBe('region-B'); expect(tabs[1].header).toBe('header-B'); expect(tabs[1].code.trim()).toBe('Code example 2'); }); it('should create the right number of tabs with the right labels and classes', () => { const matTabs = fixture.nativeElement.querySelectorAll('.mat-tab-label'); expect(matTabs.length).toBe(2); expect(matTabs[0].textContent.trim()).toBe('header-A'); expect(matTabs[0].querySelector('.class-A')).toBeTruthy(); expect(matTabs[1].textContent.trim()).toBe('header-B'); expect(matTabs[1].querySelector('.class-B')).toBeTruthy(); }); it('should show the first tab with the right code', () => { const codeContent = fixture.nativeElement.querySelector('aio-code').textContent; expect(codeContent.indexOf('Code example 1') !== -1).toBeTruthy(); }); }); @Component({ selector: 'aio-host-comp', template: ` Code example 1 Code example 2 ` }) class HostComponent { @ViewChild(CodeTabsComponent, {static: true}) codeTabsComponent: CodeTabsComponent; } rxjs-7.5.7/docs_app/src/app/custom-elements/code/code.component.ts000066400000000000000000000165221431412030200251740ustar00rootroot00000000000000import { Component, ElementRef, EventEmitter, Input, OnChanges, Output, ViewChild } from '@angular/core'; import { Logger } from 'app/shared/logger.service'; import { PrettyPrinter } from './pretty-printer.service'; import { CopierService } from 'app/shared/copier.service'; import { MatSnackBar } from '@angular/material/snack-bar'; import { tap } from 'rxjs/operators'; import { StackblitzService } from 'app/shared/stackblitz.service'; import version from '../../../../tools/stackblitz/rxjs.version'; /** * If linenums is not set, this is the default maximum number of lines that * an example can display without line numbers. */ const DEFAULT_LINE_NUMS_COUNT = 10; /** * Formatted Code Block * * Pretty renders a code block, used in the docs and API reference by the code-example and * code-tabs embedded components. * It includes a "copy" button that will send the content to the clipboard when clicked * * Example usage: * * ``` * * * ``` * * * Renders code provided through the `updateCode` method. */ @Component({ selector: 'aio-code', template: `
      
      
      
    
`, }) export class CodeComponent implements OnChanges { ariaLabelCopy = ''; ariaLabelEdit = ''; /** The code to be copied when clicking the copy button, this should not be HTML encoded */ private codeText: string; /** Code that should be formatted with current inputs and displayed in the view. */ set code(code: string) { this._code = code; if (!this._code || !this._code.trim()) { this.showMissingCodeMessage(); } else { this.formatDisplayedCode(); } } get code(): string { return this._code; } _code: string; /** Whether the copy button should be shown. */ @Input() hideCopy: boolean; /** Language to render the code (e.g. javascript, dart, typescript). */ @Input() language: string | null; /** * Whether to display line numbers: * - If false: hide * - If true: show * - If number: show but start at that number */ @Input() linenums: boolean | number | string; /** Path to the source of the code. */ @Input() path: string; /** Region of the source of the code being displayed. */ @Input() region: string; /** Optional header to be displayed above the code. */ @Input() set header(header: string | null) { this._header = header; this.ariaLabelCopy = this.header ? `Copy code snippet from ${this.header}` : ''; this.ariaLabelEdit = this.header ? `Edit code snippet from ${this.header} in StackBlitz` : ''; } get header(): string | null { return this._header; } private _header: string | null; @Output() codeFormatted = new EventEmitter(); /** The element in the template that will display the formatted code. */ @ViewChild('codeContainer', { static: true }) codeContainer: ElementRef; constructor( private snackbar: MatSnackBar, private pretty: PrettyPrinter, private copier: CopierService, private logger: Logger, private stackblitz: StackblitzService ) {} ngOnChanges() { // If some inputs have changed and there is code displayed, update the view with the latest // formatted code. if (this.code) { this.formatDisplayedCode(); } } private formatDisplayedCode() { const leftAlignedCode = leftAlign(this.code); this.setCodeHtml(leftAlignedCode); // start with unformatted code this.codeText = this.getCodeText(); // store the unformatted code as text (for copying) this.pretty .formatCode(leftAlignedCode, this.language ?? '', this.getLinenums(leftAlignedCode)) .pipe(tap(() => this.codeFormatted.emit())) .subscribe( (c) => this.setCodeHtml(c), (err) => { /* ignore failure to format */ } ); } /** Sets the message showing that the code could not be found. */ private showMissingCodeMessage() { const src = this.path ? this.path + (this.region ? '#' + this.region : '') : ''; const srcMsg = src ? ` for\n${src}` : '.'; this.setCodeHtml(`

The code sample is missing${srcMsg}

`); } /** Sets the innerHTML of the code container to the provided code string. */ private setCodeHtml(formattedCode: string) { // **Security:** Code example content is provided by docs authors and as such its considered to // be safe for innerHTML purposes. this.codeContainer.nativeElement.innerHTML = formattedCode; } /** Gets the textContent of the displayed code element. */ private getCodeText() { // `prettify` may remove newlines, e.g. when `linenums` are on. Retrieve the content of the // container as text, before prettifying it. // We take the textContent because we don't want it to be HTML encoded. return this.codeContainer.nativeElement.textContent; } /** Extracts html placed in the `// html: ` comment in the code. */ private getHtmlFromCode(code: string): string { const pattern = new RegExp('// html: (.*)'); const matches = code.match(pattern); return matches ? matches[1] : ''; } /** Copies the code snippet to the user's clipboard. */ doCopy() { const code = this.codeText; const successfullyCopied = this.copier.copyText(code); if (successfullyCopied) { this.logger.log('Copied code to clipboard:', code); this.snackbar.open('Code Copied', '', { duration: 800 }); } else { this.logger.error(new Error(`ERROR copying code to clipboard: "${code}"`)); this.snackbar.open('Copy failed. Please try again!', '', { duration: 800 }); } } editInStackBlitz() { this.stackblitz.openProject({ code: this.codeText, language: this.language ?? '', dependencies: { rxjs: version, }, html: this.getHtmlFromCode(this.codeText), }); } /** Gets the calculated value of linenums (boolean/number). */ getLinenums(code: string) { const linenums = typeof this.linenums === 'boolean' ? this.linenums : this.linenums === 'true' ? true : this.linenums === 'false' ? false : typeof this.linenums === 'string' ? parseInt(this.linenums, 10) : this.linenums; // if no linenums, enable line numbers if more than one line return linenums == null || isNaN(linenums as number) ? (code.match(/\n/g) || []).length > DEFAULT_LINE_NUMS_COUNT : linenums; } } function leftAlign(text: string): string { let indent = Number.MAX_VALUE; const lines = text.split('\n'); lines.forEach((line) => { const lineIndent = line.search(/\S/); if (lineIndent !== -1) { indent = Math.min(lineIndent, indent); } }); return lines .map((line) => line.substr(indent)) .join('\n') .trim(); } rxjs-7.5.7/docs_app/src/app/custom-elements/code/code.module.ts000066400000000000000000000010151431412030200244460ustar00rootroot00000000000000import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { CodeComponent } from './code.component'; import { MatSnackBarModule } from '@angular/material/snack-bar'; import { PrettyPrinter } from './pretty-printer.service'; import { CopierService } from 'app/shared/copier.service'; @NgModule({ imports: [ CommonModule, MatSnackBarModule ], declarations: [ CodeComponent ], exports: [ CodeComponent ], providers: [ PrettyPrinter, CopierService ] }) export class CodeModule { } rxjs-7.5.7/docs_app/src/app/custom-elements/code/pretty-printer.service.ts000066400000000000000000000042551431412030200267300ustar00rootroot00000000000000import { Injectable } from '@angular/core'; import { from as fromPromise, Observable } from 'rxjs'; import { first, map, share } from 'rxjs/operators'; import { Logger } from 'app/shared/logger.service'; type PrettyPrintOne = (code: string, language?: string, linenums?: number | boolean) => string; /** * Wrapper around the prettify.js library */ @Injectable() export class PrettyPrinter { private prettyPrintOne: Observable; constructor(private logger: Logger) { this.prettyPrintOne = fromPromise(this.getPrettyPrintOne()).pipe(share()); } private getPrettyPrintOne(): Promise { const ppo = (window as any).prettyPrintOne; return ppo ? Promise.resolve(ppo) : // `prettyPrintOne` is not on `window`, which means `prettify.js` has not been loaded yet. // Import it; as a side-effect it will add `prettyPrintOne` on `window`. import('assets/js/prettify.js' as any) .then( () => (window as any).prettyPrintOne, err => { const msg = `Cannot get prettify.js from server: ${err.message}`; this.logger.error(new Error(msg)); // return a pretty print fn that always fails. return () => { throw new Error(msg); }; }); } /** * Format code snippet as HTML * @param {string} code - the code snippet to format; should already be HTML encoded * @param {string} [language] - The language of the code to render (could be javascript, html, typescript, etc) * @param {string|number} [linenums] - Whether to display line numbers: * - false: don't display * - true: do display * - number: do display but start at the given number * @returns Observable - Observable of formatted code */ formatCode(code: string, language?: string, linenums?: number | boolean) { return this.prettyPrintOne.pipe( map(ppo => { try { return ppo(code, language, linenums); } catch (err) { const msg = `Could not format code that begins '${code.substr(0, 50)}...'.`; console.error(msg, err); throw new Error(msg); } }), first(), // complete immediately ); } } rxjs-7.5.7/docs_app/src/app/custom-elements/contributor/000077500000000000000000000000001431412030200233435ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/contributor/contributor-list.component.spec.ts000066400000000000000000000071711431412030200321760ustar00rootroot00000000000000import { ReflectiveInjector } from '@angular/core'; import { of } from 'rxjs'; import { ContributorGroup } from './contributors.model'; import { ContributorListComponent } from './contributor-list.component'; import { ContributorService } from './contributor.service'; import { LocationService } from 'app/shared/location.service'; // Testing the component class behaviors, independent of its template // Let e2e tests verify how it displays. describe('ContributorListComponent', () => { let component: ContributorListComponent; let injector: ReflectiveInjector; let contributorService: TestContributorService; let locationService: TestLocationService; let contributorGroups: ContributorGroup[]; beforeEach(() => { injector = ReflectiveInjector.resolveAndCreate([ ContributorListComponent, {provide: ContributorService, useClass: TestContributorService }, {provide: LocationService, useClass: TestLocationService } ]); locationService = injector.get(LocationService); contributorService = injector.get(ContributorService); contributorGroups = contributorService.testContributors; }); it('should select the first group when no query string', () => { component = getComponent(); expect(component.selectedGroup).toBe(contributorGroups[0]); }); it('should select the first group when query string w/o "group" property', () => { locationService.searchResult = { foo: 'GDE' }; component = getComponent(); expect(component.selectedGroup).toBe(contributorGroups[0]); }); it('should select the first group when query group not found', () => { locationService.searchResult = { group: 'foo' }; component = getComponent(); expect(component.selectedGroup).toBe(contributorGroups[0]); }); it('should select the GDE group when query group is "GDE"', () => { locationService.searchResult = { group: 'GDE' }; component = getComponent(); expect(component.selectedGroup).toBe(contributorGroups[1]); }); it('should select the GDE group when query group is "gde" (case insensitive)', () => { locationService.searchResult = { group: 'gde' }; component = getComponent(); expect(component.selectedGroup).toBe(contributorGroups[1]); }); it('should set the query to the "GDE" group when user selects "GDE"', () => { component = getComponent(); component.selectGroup('GDE'); expect(locationService.searchResult['group']).toBe('GDE'); }); it('should set the query to the first group when user selects unknown name', () => { component = getComponent(); component.selectGroup('GDE'); // a legit group that isn't the first component.selectGroup('foo'); // not a legit group name expect(locationService.searchResult['group']).toBe('Angular'); }); //// Test Helpers //// function getComponent(): ContributorListComponent { const comp = injector.get(ContributorListComponent); comp.ngOnInit(); return comp; } interface SearchResult { [index: string]: string; }; class TestLocationService { searchResult: SearchResult = {}; search = jasmine.createSpy('search').and.callFake(() => this.searchResult); setSearch = jasmine.createSpy('setSearch') .and.callFake((label: string, result: SearchResult) => { this.searchResult = result; }); } class TestContributorService { testContributors = getTestData(); contributors = of(this.testContributors); } function getTestData(): ContributorGroup[] { return [ // Not interested in the contributors data in these tests { name: 'Angular', order: 0, contributors: [] }, { name: 'GDE', order: 1, contributors: [] }, ]; } }); rxjs-7.5.7/docs_app/src/app/custom-elements/contributor/contributor-list.component.ts000066400000000000000000000031201431412030200312330ustar00rootroot00000000000000import { Component, OnInit } from '@angular/core'; import { ContributorGroup } from './contributors.model'; import { ContributorService } from './contributor.service'; import { LocationService } from 'app/shared/location.service'; @Component({ selector: `aio-contributor-list`, template: `
{{name}}
` }) export class ContributorListComponent implements OnInit { private groups: ContributorGroup[]; groupNames: string[]; selectedGroup: ContributorGroup; constructor( private contributorService: ContributorService, private locationService: LocationService) { } ngOnInit() { const groupName = this.locationService.search()['group'] || ''; // no need to unsubscribe because `contributors` completes this.contributorService.contributors .subscribe(grps => { this.groups = grps; this.groupNames = grps.map(g => g.name); this.selectGroup(groupName); }); } selectGroup(name: string) { name = name.toLowerCase(); this.selectedGroup = this.groups.find(g => g.name.toLowerCase() === name) || this.groups[0]; this.locationService.setSearch('', {group: this.selectedGroup.name}); } } rxjs-7.5.7/docs_app/src/app/custom-elements/contributor/contributor-list.module.ts000066400000000000000000000012041431412030200305170ustar00rootroot00000000000000import { NgModule, Type } from '@angular/core'; import { CommonModule } from '@angular/common'; import { ContributorListComponent } from './contributor-list.component'; import { ContributorService } from './contributor.service'; import { ContributorComponent } from './contributor.component'; import { WithCustomElementComponent } from '../element-registry'; @NgModule({ imports: [CommonModule], declarations: [ContributorListComponent, ContributorComponent], providers: [ContributorService], }) export class ContributorListModule implements WithCustomElementComponent { customElementComponent: Type = ContributorListComponent; } rxjs-7.5.7/docs_app/src/app/custom-elements/contributor/contributor.component.ts000066400000000000000000000042741431412030200302750ustar00rootroot00000000000000import { Component, Input } from '@angular/core'; import { Contributor } from './contributors.model'; import { CONTENT_URL_PREFIX } from 'app/documents/document.service'; @Component({ selector: 'aio-contributor', template: `

{{person.name}}

View Bio Twitter {{person.name}} GitHub {{person.name}} Personal website {{person.name}}

{{person.name}}

{{person.bio}}

`, }) export class ContributorComponent { @Input() person: Contributor; noPicture = '_no-one.png'; pictureBase = CONTENT_URL_PREFIX + 'images/bios/'; flipCard(person: Contributor) { person.isFlipped = !person.isFlipped; } } rxjs-7.5.7/docs_app/src/app/custom-elements/contributor/contributor.service.spec.ts000066400000000000000000000071531431412030200306630ustar00rootroot00000000000000import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { Injector } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { ContributorService } from './contributor.service'; import { ContributorGroup } from './contributors.model'; describe('ContributorService', () => { let injector: Injector; let contribService: ContributorService; let httpMock: HttpTestingController; beforeEach(() => { injector = TestBed.configureTestingModule({ imports: [HttpClientTestingModule], providers: [ ContributorService ] }); contribService = injector.get(ContributorService); httpMock = injector.get(HttpTestingController); }); afterEach(() => httpMock.verify()); it('should make a single connection to the server', () => { const req = httpMock.expectOne({}); expect(req.request.url).toBe('generated/contributors.json'); }); describe('#contributors', () => { let contribs: ContributorGroup[]; let testData: any; beforeEach(() => { testData = getTestContribs(); httpMock.expectOne({}).flush(testData); contribService.contributors.subscribe(results => contribs = results); }); it('contributors observable should complete', () => { let completed = false; contribService.contributors.subscribe(undefined, undefined, () => completed = true); expect(completed).toBe(true, 'observable completed'); }); it('should reshape the contributor json to expected result', () => { const groupNames = contribs.map(g => g.name).join(','); expect(groupNames).toEqual('Angular,GDE'); }); it('should have expected "GDE" contribs in order', () => { const gde = contribs[1]; const actualAngularNames = gde.contributors.map(l => l.name).join(','); const expectedAngularNames = [testData.jeffcross, testData.kapunahelewong].map(l => l.name).join(','); expect(actualAngularNames).toEqual(expectedAngularNames); }); }); it('should do WHAT(?) if the request fails'); }); function getTestContribs() { return { kapunahelewong: { name: 'Kapunahele Wong', picture: 'kapunahelewong.jpg', website: 'https://github.com/kapunahelewong', twitter: 'kapunahele', bio: 'Kapunahele is a front-end developer and contributor to angular.io', group: 'GDE' }, misko: { name: 'Miško Hevery', picture: 'misko.jpg', twitter: 'mhevery', website: 'http://misko.hevery.com', bio: 'Miško Hevery is the creator of AngularJS framework.', group: 'Angular' }, igor: { name: 'Igor Minar', picture: 'igor-minar.jpg', twitter: 'IgorMinar', website: 'https://google.com/+IgorMinar', bio: 'Igor is a software engineer at Angular.', group: 'Angular' }, kara: { name: 'Kara Erickson', picture: 'kara-erickson.jpg', twitter: 'karaforthewin', website: 'https://github.com/kara', bio: 'Kara is a software engineer on the Angular team at Angular and a co-organizer of the Angular-SF Meetup. ', group: 'Angular' }, jeffcross: { name: 'Jeff Cross', picture: 'jeff-cross.jpg', twitter: 'jeffbcross', website: 'https://twitter.com/jeffbcross', bio: 'Jeff was one of the earliest core team members on AngularJS.', group: 'GDE' }, naomi: { name: 'Naomi Black', picture: 'naomi.jpg', twitter: 'naomitraveller', website: 'http://google.com/+NaomiBlack', bio: 'Naomi is Angular\'s TPM generalist and jack-of-all-trades.', group: 'Angular' } }; } rxjs-7.5.7/docs_app/src/app/custom-elements/contributor/contributor.service.ts000066400000000000000000000043521431412030200277300ustar00rootroot00000000000000import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { ConnectableObservable, Observable } from 'rxjs'; import { map, publishLast } from 'rxjs/operators'; import { Contributor, ContributorGroup } from './contributors.model'; // TODO(andrewjs): Look into changing this so that we don't import the service just to get the const import { CONTENT_URL_PREFIX } from 'app/documents/document.service'; const contributorsPath = CONTENT_URL_PREFIX + 'contributors.json'; const knownGroups = ['Core Team', 'Learning Team', 'Alumn', 'Contributors']; @Injectable() export class ContributorService { contributors: Observable; constructor(private http: HttpClient) { this.contributors = this.getContributors(); } private getContributors() { const contributors = this.http.get<{[key: string]: Contributor}>(contributorsPath).pipe( // Create group map map(contribs => { const contribMap: { [name: string]: Contributor[]} = {}; Object.keys(contribs).forEach(key => { const contributor = contribs[key]; const group = contributor.group; const contribGroup = contribMap[group]; if (contribGroup) { contribGroup.push(contributor); } else { contribMap[group] = [contributor]; } }); return contribMap; }), // Flatten group map into sorted group array of sorted contributors map(cmap => { return Object.keys(cmap).map(key => { const order = knownGroups.indexOf(key); return { name: key, order: order === -1 ? knownGroups.length : order, contributors: cmap[key].sort(compareContributors) } as ContributorGroup; }) .sort(compareGroups); }), publishLast(), ); (contributors as ConnectableObservable).connect(); return contributors; } } function compareContributors(l: Contributor, r: Contributor) { return l.name.toUpperCase() > r.name.toUpperCase() ? 1 : -1; } function compareGroups(l: ContributorGroup, r: ContributorGroup) { return l.order === r.order ? (l.name > r.name ? 1 : -1) : l.order > r.order ? 1 : -1; } rxjs-7.5.7/docs_app/src/app/custom-elements/contributor/contributors.model.ts000066400000000000000000000004271431412030200275520ustar00rootroot00000000000000export class ContributorGroup { name: string; order: number; contributors: Contributor[]; } export class Contributor { group: string; name: string; picture?: string; website?: string; twitter?: string; github?: string; bio?: string; isFlipped ? = false; } rxjs-7.5.7/docs_app/src/app/custom-elements/current-location/000077500000000000000000000000001431412030200242615ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/current-location/current-location.component.spec.ts000066400000000000000000000021211431412030200330470ustar00rootroot00000000000000import { ComponentFixture, TestBed } from '@angular/core/testing'; import { LocationService } from 'app/shared/location.service'; import { MockLocationService } from 'testing/location.service'; import { CurrentLocationComponent } from './current-location.component'; describe('CurrentLocationComponent', () => { let element: HTMLElement; let fixture: ComponentFixture; let locationService: MockLocationService; beforeEach(() => { locationService = new MockLocationService('initial/url'); TestBed.configureTestingModule({ declarations: [ CurrentLocationComponent ], providers: [ { provide: LocationService, useValue: locationService } ] }); fixture = TestBed.createComponent(CurrentLocationComponent); element = fixture.nativeElement; }); it('should render the current location', () => { fixture.detectChanges(); expect(element.textContent).toEqual('initial/url'); locationService.urlSubject.next('next/url'); fixture.detectChanges(); expect(element.textContent).toEqual('next/url'); }); }); rxjs-7.5.7/docs_app/src/app/custom-elements/current-location/current-location.component.ts000066400000000000000000000005741431412030200321300ustar00rootroot00000000000000/* tslint:disable component-selector */ import { Component } from '@angular/core'; import { LocationService } from 'app/shared/location.service'; /** Renders the current location path. */ @Component({ selector: 'current-location', template: '{{ location.currentPath | async }}' }) export class CurrentLocationComponent { constructor(public location: LocationService) { } } rxjs-7.5.7/docs_app/src/app/custom-elements/current-location/current-location.module.ts000066400000000000000000000007221431412030200314060ustar00rootroot00000000000000import { NgModule, Type } from '@angular/core'; import { CommonModule } from '@angular/common'; import { CurrentLocationComponent } from './current-location.component'; import { WithCustomElementComponent } from '../element-registry'; @NgModule({ imports: [ CommonModule ], declarations: [ CurrentLocationComponent ] }) export class CurrentLocationModule implements WithCustomElementComponent { customElementComponent: Type = CurrentLocationComponent; } rxjs-7.5.7/docs_app/src/app/custom-elements/custom-elements.module.ts000066400000000000000000000016451431412030200257570ustar00rootroot00000000000000import { NgModule } from '@angular/core'; import { ROUTES} from '@angular/router'; import { ElementsLoader } from './elements-loader'; import { ELEMENT_MODULE_LOAD_CALLBACKS, ELEMENT_MODULE_LOAD_CALLBACKS_AS_ROUTES, ELEMENT_MODULE_LOAD_CALLBACKS_TOKEN } from './element-registry'; import { LazyCustomElementComponent } from './lazy-custom-element.component'; @NgModule({ declarations: [ LazyCustomElementComponent ], exports: [ LazyCustomElementComponent ], providers: [ ElementsLoader, { provide: ELEMENT_MODULE_LOAD_CALLBACKS_TOKEN, useValue: ELEMENT_MODULE_LOAD_CALLBACKS }, // Providing these routes as a signal to the build system that these modules should be // registered as lazy-loadable. // TODO(andrewjs): Provide first-class support for providing this. { provide: ROUTES, useValue: ELEMENT_MODULE_LOAD_CALLBACKS_AS_ROUTES, multi: true }, ], }) export class CustomElementsModule { } rxjs-7.5.7/docs_app/src/app/custom-elements/element-registry.ts000066400000000000000000000063161431412030200246460ustar00rootroot00000000000000import { InjectionToken, Type } from '@angular/core'; import { LoadChildrenCallback } from '@angular/router'; // Modules containing custom elements must be set up as lazy-loaded routes (loadChildren) // TODO(andrewjs): This is a hack, Angular should have first-class support for preparing a module // that contains custom elements. export const ELEMENT_MODULE_LOAD_CALLBACKS_AS_ROUTES = [ { selector: 'aio-announcement-bar', loadChildren: () => import('./announcement-bar/announcement-bar.module').then(m => m.AnnouncementBarModule) }, { selector: 'aio-api-list', loadChildren: () => import('./api/api-list.module').then(m => m.ApiListModule) }, { selector: 'aio-contributor-list', loadChildren: () => import('./contributor/contributor-list.module').then(m => m.ContributorListModule) }, { selector: 'aio-file-not-found-search', loadChildren: () => import('./search/file-not-found-search.module').then(m => m.FileNotFoundSearchModule) }, { selector: 'aio-resource-list', loadChildren: () => import('./resource/resource-list.module').then(m => m.ResourceListModule) }, { selector: 'aio-toc', loadChildren: () => import('./toc/toc.module').then(m => m.TocModule) }, { selector: 'code-example', loadChildren: () => import('./code/code-example.module').then(m => m.CodeExampleModule) }, { selector: 'code-tabs', loadChildren: () => import('./code/code-tabs.module').then(m => m.CodeTabsModule) }, { selector: 'current-location', loadChildren: () => import('./current-location/current-location.module').then(m => m.CurrentLocationModule) }, { selector: 'expandable-section', loadChildren: () => import('./expandable-section/expandable-section.module').then(m => m.ExpandableSectionModule) }, { selector: 'live-example', loadChildren: () => import('./live-example/live-example.module').then(m => m.LiveExampleModule) }, { selector: 'aio-operator-decision-tree', loadChildren: () => import('./operator-decision-tree/operator-decision-tree.module').then(m => m.OperatorDecisionTreeModule) } ]; /** * Interface expected to be implemented by all modules that declare a component that can be used as * a custom element. */ export interface WithCustomElementComponent { customElementComponent: Type; } /** Injection token to provide the element path modules. */ // export const ELEMENT_MODULE_PATHS_TOKEN = new InjectionToken('aio/elements-map'); /** Map of possible custom element selectors to their lazy-loadable module paths. */ // export const ELEMENT_MODULE_PATHS = new Map Promise>(); // ELEMENT_MODULE_PATHS_AS_ROUTES.forEach(route => { // ELEMENT_MODULE_PATHS.set(route.selector, route.loadChildren); // }); /** Injection token to provide the element path modules. */ export const ELEMENT_MODULE_LOAD_CALLBACKS_TOKEN = new InjectionToken>('aio/elements-map'); /** Map of possible custom element selectors to their lazy-loadable module paths. */ export const ELEMENT_MODULE_LOAD_CALLBACKS = new Map(); ELEMENT_MODULE_LOAD_CALLBACKS_AS_ROUTES.forEach(route => { ELEMENT_MODULE_LOAD_CALLBACKS.set(route.selector, route.loadChildren); }); rxjs-7.5.7/docs_app/src/app/custom-elements/elements-loader.spec.ts000066400000000000000000000243211431412030200253540ustar00rootroot00000000000000import { Compiler, ComponentFactory, ComponentFactoryResolver, ComponentRef, Injector, NgModuleFactory, NgModuleRef, Type, } from '@angular/core'; import { TestBed, fakeAsync, flushMicrotasks } from '@angular/core/testing'; import { ElementsLoader } from './elements-loader'; import { ELEMENT_MODULE_LOAD_CALLBACKS_TOKEN, WithCustomElementComponent } from './element-registry'; interface Deferred { resolve(): void; reject(err: any): void; } describe('ElementsLoader', () => { let elementsLoader: ElementsLoader; let compiler: Compiler; beforeEach(() => { const injector = TestBed.configureTestingModule({ providers: [ ElementsLoader, { provide: ELEMENT_MODULE_LOAD_CALLBACKS_TOKEN, useValue: new Map< string, () => Promise | Type> >([ ['element-a-selector', () => Promise.resolve(new FakeModuleFactory('element-a-module'))], ['element-b-selector', () => Promise.resolve(new FakeModuleFactory('element-b-module'))], ['element-c-selector', () => Promise.resolve(FakeCustomElementModule)] ])}, ] }); elementsLoader = injector.get(ElementsLoader); compiler = injector.get(Compiler); }); describe('loadContainedCustomElements()', () => { let loadCustomElementSpy: jasmine.Spy; beforeEach(() => loadCustomElementSpy = spyOn(elementsLoader, 'loadCustomElement')); it('should attempt to load and register all contained elements', fakeAsync(() => { expect(loadCustomElementSpy).not.toHaveBeenCalled(); const hostEl = document.createElement('div'); hostEl.innerHTML = ` `; elementsLoader.loadContainedCustomElements(hostEl); flushMicrotasks(); expect(loadCustomElementSpy).toHaveBeenCalledTimes(2); expect(loadCustomElementSpy).toHaveBeenCalledWith('element-a-selector'); expect(loadCustomElementSpy).toHaveBeenCalledWith('element-b-selector'); })); it('should attempt to load and register only contained elements', fakeAsync(() => { expect(loadCustomElementSpy).not.toHaveBeenCalled(); const hostEl = document.createElement('div'); hostEl.innerHTML = ` `; elementsLoader.loadContainedCustomElements(hostEl); flushMicrotasks(); expect(loadCustomElementSpy).toHaveBeenCalledTimes(1); expect(loadCustomElementSpy).toHaveBeenCalledWith('element-b-selector'); })); it('should wait for all contained elements to load and register', fakeAsync(() => { const deferreds = returnPromisesFromSpy(loadCustomElementSpy); const hostEl = document.createElement('div'); hostEl.innerHTML = ` `; const log: any[] = []; elementsLoader.loadContainedCustomElements(hostEl).subscribe( v => log.push(`emitted: ${v}`), e => log.push(`errored: ${e}`), () => log.push('completed'), ); flushMicrotasks(); expect(log).toEqual([]); deferreds[0].resolve(); flushMicrotasks(); expect(log).toEqual([]); deferreds[1].resolve(); flushMicrotasks(); expect(log).toEqual(['emitted: undefined', 'completed']); })); it('should fail if any of the contained elements fails to load and register', fakeAsync(() => { const deferreds = returnPromisesFromSpy(loadCustomElementSpy); const hostEl = document.createElement('div'); hostEl.innerHTML = ` `; const log: any[] = []; elementsLoader.loadContainedCustomElements(hostEl).subscribe( v => log.push(`emitted: ${v}`), e => log.push(`errored: ${e}`), () => log.push('completed'), ); flushMicrotasks(); expect(log).toEqual([]); deferreds[0].resolve(); flushMicrotasks(); expect(log).toEqual([]); deferreds[1].reject('foo'); flushMicrotasks(); expect(log).toEqual(['errored: foo']); })); }); describe('loadCustomElement()', () => { let definedSpy: jasmine.Spy; let whenDefinedSpy: jasmine.Spy; let whenDefinedDeferreds: Deferred[]; beforeEach(() => { // `loadCustomElement()` uses the `window.customElements` API. Provide mocks for these tests. definedSpy = spyOn(window.customElements, 'define'); whenDefinedSpy = spyOn(window.customElements, 'whenDefined'); whenDefinedDeferreds = returnPromisesFromSpy(whenDefinedSpy); }); it('should be able to load and register an element', fakeAsync(() => { elementsLoader.loadCustomElement('element-a-selector'); flushMicrotasks(); expect(definedSpy).toHaveBeenCalledTimes(1); expect(definedSpy).toHaveBeenCalledWith('element-a-selector', jasmine.any(Function)); // Verify the right component was loaded/registered. const Ctor = definedSpy.calls.argsFor(0)[1]; expect(Ctor.observedAttributes).toEqual(['element-a-module']); })); it('should wait until the element is defined', fakeAsync(() => { let state = 'pending'; elementsLoader.loadCustomElement('element-b-selector').then(() => state = 'resolved'); flushMicrotasks(); expect(state).toBe('pending'); expect(whenDefinedSpy).toHaveBeenCalledTimes(1); expect(whenDefinedSpy).toHaveBeenCalledWith('element-b-selector'); whenDefinedDeferreds[0].resolve(); flushMicrotasks(); expect(state).toBe('resolved'); })); it('should not load and register the same element more than once', fakeAsync(() => { elementsLoader.loadCustomElement('element-a-selector'); flushMicrotasks(); expect(definedSpy).toHaveBeenCalledTimes(1); definedSpy.calls.reset(); // While loading/registering is still in progress: elementsLoader.loadCustomElement('element-a-selector'); flushMicrotasks(); expect(definedSpy).not.toHaveBeenCalled(); definedSpy.calls.reset(); whenDefinedDeferreds[0].resolve(); // Once loading/registering is already completed: let state = 'pending'; elementsLoader.loadCustomElement('element-a-selector').then(() => state = 'resolved'); flushMicrotasks(); expect(state).toBe('resolved'); expect(definedSpy).not.toHaveBeenCalled(); })); it('should fail if defining the custom element fails', fakeAsync(() => { let state = 'pending'; elementsLoader.loadCustomElement('element-b-selector').catch(e => state = `rejected: ${e}`); flushMicrotasks(); expect(state).toBe('pending'); whenDefinedDeferreds[0].reject('foo'); flushMicrotasks(); expect(state).toBe('rejected: foo'); })); it('should be able to load and register an element again if previous attempt failed', fakeAsync(() => { elementsLoader.loadCustomElement('element-a-selector'); flushMicrotasks(); expect(definedSpy).toHaveBeenCalledTimes(1); definedSpy.calls.reset(); // While loading/registering is still in progress: elementsLoader.loadCustomElement('element-a-selector').catch(() => undefined); flushMicrotasks(); expect(definedSpy).not.toHaveBeenCalled(); whenDefinedDeferreds[0].reject('foo'); flushMicrotasks(); expect(definedSpy).not.toHaveBeenCalled(); // Once loading/registering has already failed: elementsLoader.loadCustomElement('element-a-selector'); flushMicrotasks(); expect(definedSpy).toHaveBeenCalledTimes(1); }) ); it('should be able to load and register an element after compiling its NgModule', fakeAsync(() => { const compilerSpy = spyOn(compiler, 'compileModuleAsync') .and.returnValue(Promise.resolve(new FakeModuleFactory('element-c-module'))); elementsLoader.loadCustomElement('element-c-selector'); flushMicrotasks(); expect(definedSpy).toHaveBeenCalledTimes(1); expect(definedSpy).toHaveBeenCalledWith('element-c-selector', jasmine.any(Function)); expect(compilerSpy).toHaveBeenCalledTimes(1); expect(compilerSpy).toHaveBeenCalledWith(FakeCustomElementModule); })); }); }); // TEST CLASSES/HELPERS class FakeCustomElementModule implements WithCustomElementComponent { customElementComponent: Type; } class FakeComponentFactory extends ComponentFactory { selector: string; componentType: Type; ngContentSelectors: string[]; inputs = [{propName: this.identifyingInput, templateName: this.identifyingInput}]; outputs = []; constructor(private identifyingInput: string) { super(); } create(injector: Injector, projectableNodes?: any[][], rootSelectorOrNode?: string | any, ngModule?: NgModuleRef): ComponentRef { return jasmine.createSpy('ComponentRef') as any; } } class FakeComponentFactoryResolver extends ComponentFactoryResolver { constructor(private modulePath: string) { super(); } resolveComponentFactory(component: Type): ComponentFactory { return new FakeComponentFactory(this.modulePath); } } class FakeModuleRef extends NgModuleRef { injector = jasmine.createSpyObj('injector', ['get']); componentFactoryResolver = new FakeComponentFactoryResolver(this.modulePath); instance: WithCustomElementComponent = new FakeCustomElementModule(); constructor(private modulePath: string) { super(); this.injector.get.and.returnValue(this.componentFactoryResolver); } destroy() {} onDestroy(callback: () => void) {} } class FakeModuleFactory extends NgModuleFactory { moduleType: Type; moduleRefToCreate = new FakeModuleRef(this.modulePath); constructor(private modulePath: string) { super(); } create(parentInjector: Injector | null): NgModuleRef { return this.moduleRefToCreate; } } function returnPromisesFromSpy(spy: jasmine.Spy): Deferred[] { const deferreds: Deferred[] = []; spy.and.callFake(() => new Promise((resolve: any, reject) => deferreds.push({resolve, reject}))); return deferreds; } rxjs-7.5.7/docs_app/src/app/custom-elements/elements-loader.ts000066400000000000000000000107001431412030200244170ustar00rootroot00000000000000import { Compiler, Inject, Injectable, NgModuleFactory, NgModuleRef, Type, } from '@angular/core'; import { ELEMENT_MODULE_LOAD_CALLBACKS_TOKEN, WithCustomElementComponent } from './element-registry'; import { from, Observable, of } from 'rxjs'; import { createCustomElement } from '@angular/elements'; import { LoadChildrenCallback } from '@angular/router'; @Injectable() export class ElementsLoader { /** Map of unregistered custom elements and their respective module paths to load. */ private elementsToLoad: Map; /** Map of custom elements that are in the process of being loaded and registered. */ private elementsLoading = new Map>(); constructor(private moduleRef: NgModuleRef, @Inject(ELEMENT_MODULE_LOAD_CALLBACKS_TOKEN) elementModulePaths: Map, private compiler: Compiler) { this.elementsToLoad = new Map(elementModulePaths); } /** * Queries the provided element for any custom elements that have not yet been registered with * the browser. Custom elements that are registered will be removed from the list of unregistered * elements so that they will not be queried in subsequent calls. */ loadContainedCustomElements(element: HTMLElement): Observable { const unregisteredSelectors = Array.from(this.elementsToLoad.keys()) .filter(s => element.querySelector(s)); if (!unregisteredSelectors.length) { return of(undefined); } // Returns observable that completes when all discovered elements have been registered. const allRegistered = Promise.all(unregisteredSelectors.map(s => this.loadCustomElement(s))); return from(allRegistered.then(() => undefined)); } /** Loads and registers the custom element defined on the `WithCustomElement` module factory. */ loadCustomElement(selector: string): Promise { if (this.elementsLoading.has(selector)) { // The custom element is in the process of being loaded and registered. return this.elementsLoading.get(selector)!; } if (this.elementsToLoad.has(selector)) { // Load and register the custom element (for the first time). const modulePathLoader = this.elementsToLoad.get(selector)!; const loadedAndRegistered = (modulePathLoader() as Promise | Type>) .then(elementModuleOrFactory => { /** * With View Engine, the NgModule factory is created and provided when loaded. * With Ivy, only the NgModule class is provided loaded and must be compiled. * This uses the same mechanism as the deprecated `SystemJsNgModuleLoader` in * in `packages/core/src/linker/system_js_ng_module_factory_loader.ts` * to pass on the NgModuleFactory, or compile the NgModule and return its NgModuleFactory. */ if (elementModuleOrFactory instanceof NgModuleFactory) { return elementModuleOrFactory; } else { return this.compiler.compileModuleAsync(elementModuleOrFactory); } }) .then(elementModuleFactory => { const elementModuleRef = elementModuleFactory.create(this.moduleRef.injector); const injector = elementModuleRef.injector; const CustomElementComponent = elementModuleRef.instance.customElementComponent; const CustomElement = createCustomElement(CustomElementComponent, {injector}); customElements!.define(selector, CustomElement); return customElements.whenDefined(selector); }) .then(() => { // The custom element has been successfully loaded and registered. // Remove from `elementsLoading` and `elementsToLoad`. this.elementsLoading.delete(selector); this.elementsToLoad.delete(selector); }) .catch(err => { // The custom element has failed to load and register. // Remove from `elementsLoading`. // (Do not remove from `elementsToLoad` in case it was a temporary error.) this.elementsLoading.delete(selector); return Promise.reject(err); }); this.elementsLoading.set(selector, loadedAndRegistered); return loadedAndRegistered; } // The custom element has already been loaded and registered. return Promise.resolve(); } } rxjs-7.5.7/docs_app/src/app/custom-elements/expandable-section/000077500000000000000000000000001431412030200245365ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/expandable-section/expandable-section.component.ts000066400000000000000000000007611431412030200326600ustar00rootroot00000000000000/* tslint:disable component-selector */ import { Component, Input } from '@angular/core'; /** Custom element wrapper for the material expansion panel with a title input. */ @Component({ selector: 'aio-expandable-section', template: ` {{ title }} `, }) export class ExpandableSectionComponent { @Input() title; } rxjs-7.5.7/docs_app/src/app/custom-elements/expandable-section/expandable-section.module.ts000066400000000000000000000007651431412030200321470ustar00rootroot00000000000000import { NgModule, Type } from '@angular/core'; import { ExpandableSectionComponent } from './expandable-section.component'; import { WithCustomElementComponent } from '../element-registry'; import { MatExpansionModule } from '@angular/material/expansion'; @NgModule({ imports: [ MatExpansionModule ], declarations: [ ExpandableSectionComponent, ] }) export class ExpandableSectionModule implements WithCustomElementComponent { customElementComponent: Type = ExpandableSectionComponent; } rxjs-7.5.7/docs_app/src/app/custom-elements/lazy-custom-element.component.spec.ts000066400000000000000000000046431431412030200302200ustar00rootroot00000000000000import { ComponentFixture, TestBed } from '@angular/core/testing'; import { Logger } from 'app/shared/logger.service'; import { MockLogger } from 'testing/logger.service'; import { LazyCustomElementComponent } from './lazy-custom-element.component'; import { ElementsLoader } from './elements-loader'; describe('LazyCustomElementComponent', () => { let mockElementsLoader: jasmine.SpyObj; let mockLogger: MockLogger; let fixture: ComponentFixture; beforeEach(() => { mockElementsLoader = jasmine.createSpyObj('ElementsLoader', [ 'loadContainedCustomElements', 'loadCustomElement', ]); const injector = TestBed.configureTestingModule({ declarations: [ LazyCustomElementComponent ], providers: [ { provide: ElementsLoader, useValue: mockElementsLoader }, { provide: Logger, useClass: MockLogger }, ], }); mockLogger = injector.get(Logger); fixture = TestBed.createComponent(LazyCustomElementComponent); }); it('should set the HTML content based on the selector', () => { const elem = fixture.nativeElement; expect(elem.innerHTML).toBe(''); fixture.componentInstance.selector = 'foo-bar'; fixture.detectChanges(); expect(elem.innerHTML).toBe(''); }); it('should load the specified custom element', () => { expect(mockElementsLoader.loadCustomElement).not.toHaveBeenCalled(); fixture.componentInstance.selector = 'foo-bar'; fixture.detectChanges(); expect(mockElementsLoader.loadCustomElement).toHaveBeenCalledWith('foo-bar'); }); it('should log an error (and abort) if the selector is empty', () => { fixture.detectChanges(); expect(mockElementsLoader.loadCustomElement).not.toHaveBeenCalled(); expect(mockLogger.output.error).toEqual([[jasmine.any(Error)]]); expect(mockLogger.output.error[0][0].message).toBe('Invalid selector for \'aio-lazy-ce\': '); }); it('should log an error (and abort) if the selector is invalid', () => { fixture.componentInstance.selector = 'foo-bar>`; this.elementsLoader.loadCustomElement(this.selector); } } rxjs-7.5.7/docs_app/src/app/custom-elements/live-example/000077500000000000000000000000001431412030200233615ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/live-example/live-example.component.spec.ts000066400000000000000000000203771431412030200312640ustar00rootroot00000000000000import { ComponentFixture, TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { Component, DebugElement } from '@angular/core'; import { Location } from '@angular/common'; import { LiveExampleComponent, EmbeddedStackblitzComponent } from './live-example.component'; const defaultTestPath = '/test'; describe('LiveExampleComponent', () => { let liveExampleDe: DebugElement; let liveExampleComponent: LiveExampleComponent; let fixture: ComponentFixture; let testPath: string; //////// test helpers //////// @Component({ selector: 'aio-host-comp', template: `` }) class HostComponent { } class TestLocation { path() { return testPath; } } function getAnchors() { return liveExampleDe.queryAll(By.css('a')).map(de => de.nativeElement as HTMLAnchorElement); } function getHrefs() { return getAnchors().map(a => a.href); } function setHostTemplate(template: string) { TestBed.overrideComponent(HostComponent, {set: {template}}); } function testComponent(testFn: () => void) { fixture = TestBed.createComponent(HostComponent); liveExampleDe = fixture.debugElement.children[0]; liveExampleComponent = liveExampleDe.componentInstance; // Trigger `ngAfterContentInit()`. fixture.detectChanges(); testFn(); } //////// tests //////// beforeEach(() => { TestBed.configureTestingModule({ declarations: [ HostComponent, LiveExampleComponent, EmbeddedStackblitzComponent ], providers: [ { provide: Location, useClass: TestLocation } ] }) // Disable the `, styles: ['iframe { min-height: 400px; }'], }) export class EmbeddedStackblitzComponent implements AfterViewInit { @Input() src: string; @ViewChild('iframe', { static: true }) iframe: ElementRef; ngAfterViewInit() { // DEVELOPMENT TESTING ONLY // this.src = 'https://angular.io/resources/live-examples/quickstart/ts/stackblitz.json'; if (this.iframe) { // security: the `src` is always authored by the documentation team // and is considered to be safe this.iframe.nativeElement.src = this.src; } } } rxjs-7.5.7/docs_app/src/app/custom-elements/live-example/live-example.module.ts000066400000000000000000000007701431412030200276110ustar00rootroot00000000000000import { NgModule, Type } from '@angular/core'; import { CommonModule } from '@angular/common'; import { EmbeddedStackblitzComponent, LiveExampleComponent } from './live-example.component'; import { WithCustomElementComponent } from '../element-registry'; @NgModule({ imports: [ CommonModule ], declarations: [ LiveExampleComponent, EmbeddedStackblitzComponent ] }) export class LiveExampleModule implements WithCustomElementComponent { customElementComponent: Type = LiveExampleComponent; } rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-tree/000077500000000000000000000000001431412030200253545ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-tree/README.md000066400000000000000000000007011431412030200266310ustar00rootroot00000000000000The `operator-decision-tree` module requires `decision-tree-data.json`, which is hosted at `/generated/app`. The JSON is generated via the `docs_app/tools/decision-tree-generator`. # TODO - Consider placing the widget on the home page - or a link on the home page, “Decision Tree†- Manual focus calls when navigating the tree (example: after making a selection, focus on the current sentence) - Drop jasmine-marbles for just the TestSchedulerrxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-tree/fixtures.ts000066400000000000000000000017521431412030200276020ustar00rootroot00000000000000import { OperatorDecisionTree, OperatorTreeNode, OperatorTreeNodeWithOptions } from './interfaces'; export const treeNodeStubWithOptionsA: OperatorTreeNodeWithOptions = { id: 'treeNodeStubWithOptionsA', label: 'someLabelA', options: ['treeNodeStubWithOptionsB'] }; export const treeNodeStubWithOptionsB: OperatorTreeNodeWithOptions = { id: 'treeNodeStubWithOptionsB', label: 'someLabelB', options: ['treeNodeStubNoOptions'] }; export const treeNodeStubNoOptions: OperatorTreeNode = { id: 'treeNodeStubNoOptions', label: 'somelabelNoOptions', path: 'some/path/NoOptions', docType: 'someDocTypeNoOptions' }; export const treeNodeInitialStub = { initial: { id: 'initial', options: ['treeNodeStubWithOptionsA'] } }; export const treeStub: OperatorDecisionTree = { [treeNodeStubWithOptionsA.id]: treeNodeStubWithOptionsA, [treeNodeStubWithOptionsB.id]: treeNodeStubWithOptionsB, [treeNodeStubNoOptions.id]: treeNodeStubNoOptions, ...treeNodeInitialStub }; rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-tree/interfaces.ts000066400000000000000000000007461431412030200300560ustar00rootroot00000000000000export interface OperatorTreeNode { id: string; label?: string; options?: string[]; path?: string; docType?: string; method?: string; } export interface OperatorTreeNodeWithOptions extends OperatorTreeNode { options: string[]; } export interface OperatorDecisionTree { [key: string]: OperatorTreeNode; initial: Required>; error?: any; } export interface State { previousBranchIds: string[]; currentBranchId: string; } operator-decision-tree-data.service.spec.ts000066400000000000000000000021671431412030200355350ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-treeimport { TestBed } from '@angular/core/testing'; import { OperatorDecisionTreeDataService } from './operator-decision-tree-data.service'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { treeStub } from './fixtures'; describe('OperatorDecisionTreeDataService', () => { let service: OperatorDecisionTreeDataService; let httpTestingController: HttpTestingController; beforeEach(() => { TestBed.configureTestingModule({ imports: [HttpClientTestingModule], providers: [OperatorDecisionTreeDataService] }); httpTestingController = TestBed.inject(HttpTestingController); service = TestBed.inject(OperatorDecisionTreeDataService); }); describe('getDecisionTree$', () => { it('should get the decision-tree-data.json', () => { service.getDecisionTree$().subscribe( data => expect(data).toBe(treeStub) ) const req = httpTestingController.expectOne('/generated/docs/app/decision-tree-data.json') expect(req.request.method).toEqual('GET') req.flush(treeStub) httpTestingController.verify(); }); }); }); operator-decision-tree-data.service.ts000066400000000000000000000007131431412030200345770ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-treeimport { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; import { OperatorDecisionTree } from './interfaces'; @Injectable() export class OperatorDecisionTreeDataService { constructor(private http: HttpClient) {} getDecisionTree$(): Observable { return this.http.get( '/generated/docs/app/decision-tree-data.json' ); } } operator-decision-tree.component.scss000066400000000000000000000010421431412030200345530ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-tree@use '@angular/material' as mat; @import '../../../styles/constants'; h2 { max-width: 700px; } button.option { @include mat.elevation-transition; border-radius: 34px; border: 0; cursor: pointer; display: block; margin-bottom: 12px; padding: 0; text-align: left; &:active, &:hover, &:focus { @include mat.elevation(8); mat-card { background-color: $pink; color: $white; } } } mat-card { border-radius: 34px; padding: 12px 24px; transition: all 250ms; } section { margin-bottom: 16px; } operator-decision-tree.component.spec.ts000066400000000000000000000213531431412030200351660ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-treeimport { CommonModule, Location } from '@angular/common'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; import { MatRippleModule } from '@angular/material/core'; import { By } from '@angular/platform-browser'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { ScrollService } from 'app/shared/scroll.service'; import { BehaviorSubject } from 'rxjs'; import { treeNodeStubNoOptions, treeNodeStubWithOptionsA } from './fixtures'; import { OperatorDecisionTreeComponent } from './operator-decision-tree.component'; import { OperatorDecisionTreeService } from './operator-decision-tree.service'; const operatorDecisionTreeServiceStub = { currentSentence$: new BehaviorSubject('Conditioner is better'), options$: new BehaviorSubject([treeNodeStubWithOptionsA]), isBeyondInitialQuestion$: new BehaviorSubject(false), hasError$: new BehaviorSubject(false), selectOption: jasmine.createSpy(), back: jasmine.createSpy(), startOver: jasmine.createSpy() }; describe('OperatorDecisionTreeComponent', () => { let component: OperatorDecisionTreeComponent; let fixture: ComponentFixture; let operatorDecisionTreeService: OperatorDecisionTreeService; let scrollService: ScrollService; let locationService: jasmine.SpyObj; beforeEach(waitForAsync(() => { locationService = jasmine.createSpyObj(['subscribe']); TestBed.configureTestingModule({ imports: [ CommonModule, MatButtonModule, MatCardModule, MatRippleModule, NoopAnimationsModule ], declarations: [OperatorDecisionTreeComponent], providers: [ { provide: OperatorDecisionTreeService, useValue: operatorDecisionTreeServiceStub }, ScrollService, {provide: Location, useValue: locationService } ] }).compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(OperatorDecisionTreeComponent); component = fixture.componentInstance; operatorDecisionTreeService = TestBed.inject(OperatorDecisionTreeService); scrollService = TestBed.inject(ScrollService); fixture.detectChanges(); }); afterEach(() => { operatorDecisionTreeServiceStub.currentSentence$.next( 'Conditioner is better' ); operatorDecisionTreeServiceStub.options$.next([treeNodeStubWithOptionsA]); operatorDecisionTreeServiceStub.isBeyondInitialQuestion$.next(false); operatorDecisionTreeServiceStub.hasError$.next(false); }); it('should create', () => { expect(component).toBeTruthy(); }); describe('in the template', () => { describe('when the OperatorDecisionTreeService.currentSentence$ emits a signal', () => { it('should update what is being displayed as the current sentence', () => { expect( fixture.debugElement.query(By.css('h2')).nativeElement.textContent ).toContain('Conditioner is better'); operatorDecisionTreeServiceStub.currentSentence$.next( 'Shampoo is better' ); fixture.detectChanges(); expect( fixture.debugElement.query(By.css('h2')).nativeElement.textContent ).toContain('Shampoo is better'); }); }); describe('when there are options to choose', () => { it('should have option buttons', () => { expect( fixture.debugElement.queryAll(By.css('button.option')).length ).toBeTruthy(); }); }); describe('when there are no more options to choose', () => { it('should have no option buttons', () => { operatorDecisionTreeServiceStub.options$.next([ treeNodeStubNoOptions as any ]); fixture.detectChanges(); expect( fixture.debugElement.queryAll(By.css('button.option')).length ).toBeFalsy(); }); describe('when there is a method associated with the operator', () => { it('should display a method, docType, label, and a link to the operator path', () => { const node = { ...treeNodeStubNoOptions, method: 'someMethod' }; operatorDecisionTreeServiceStub.options$.next([node as any]); fixture.detectChanges(); const sentence: HTMLParagraphElement = fixture.debugElement.query( By.css('p') ).nativeElement; const link: HTMLAnchorElement = fixture.debugElement .query(By.css('a')) .nativeElement.getAttribute('href'); expect(sentence.textContent).toContain( `You want the ${node.method} of the ${node.docType} ${node.label}.` ); expect(link).toContain(`${node.path}#${node.method}`); }); }); describe('when there is no method associated with the operator', () => { it('should display a docType, label, and a link to the operator path', () => { operatorDecisionTreeServiceStub.options$.next([ treeNodeStubNoOptions as any ]); fixture.detectChanges(); const sentence: HTMLParagraphElement = fixture.debugElement.query( By.css('p') ).nativeElement; const link: HTMLAnchorElement = fixture.debugElement .query(By.css('a')) .nativeElement.getAttribute('href'); expect(sentence.textContent).toContain( `You want the ${treeNodeStubNoOptions.docType} ${ treeNodeStubNoOptions.label }.` ); expect(link).toContain(treeNodeStubNoOptions.path); }); }); }); describe('when there are no errors', () => { it('should not display the error template', () => { expect(fixture.debugElement.query(By.css('div.error'))).toBeNull(); }); }); describe('when there is an error', () => { it('should display the error template', () => { operatorDecisionTreeServiceStub.hasError$.next(true); fixture.detectChanges(); expect(fixture.debugElement.query(By.css('div.error'))).toBeTruthy(); }); }); }); describe('selectOption', () => { describe('when an option is clicked', () => { it('should call the selectOption method', () => { spyOn(component, 'selectOption'); fixture.debugElement .query(By.css('button.option')) .triggerEventHandler('click', null); expect(component.selectOption).toHaveBeenCalled(); }); }); describe('when fired', () => { it('should call the selectOption method on the operatorDecisionTreeService', () => { component.selectOption(treeNodeStubWithOptionsA.id); expect(operatorDecisionTreeService.selectOption).toHaveBeenCalledWith( treeNodeStubWithOptionsA.id ); }); it('should call the scrollToTop method of the scrollService', () => { spyOn(scrollService, 'scrollToTop'); component.selectOption(treeNodeStubWithOptionsA.id); expect(scrollService.scrollToTop).toHaveBeenCalled(); }); }); }); describe('back', () => { describe('when the back button is pressed', () => { it('should should call the back method', () => { spyOn(component, 'back'); operatorDecisionTreeServiceStub.isBeyondInitialQuestion$.next(true); fixture.detectChanges(); fixture.debugElement .query(By.css('button.back')) .triggerEventHandler('click', null); expect(component.back).toHaveBeenCalled(); }); }); describe('when fired', () => { it('should call the back method on the operatorDecisionTreeService', () => { component.back(); expect(operatorDecisionTreeService.back).toHaveBeenCalled(); }); }); }); describe('startOver', () => { describe('when the start-over button is pressed', () => { it('should should call the startOver method', () => { spyOn(component, 'startOver'); operatorDecisionTreeServiceStub.isBeyondInitialQuestion$.next(true); fixture.detectChanges(); fixture.debugElement .query(By.css('button.start-over')) .triggerEventHandler('click', null); expect(component.startOver).toHaveBeenCalled(); }); }); describe('when fired', () => { it('should call the startOver method on the operatorDecisionTreeService', () => { component.startOver(); expect(operatorDecisionTreeService.startOver).toHaveBeenCalled(); }); }); }); describe('ngOnDestroy', () => { it('should call the startOver method', () => { spyOn(component, 'startOver'); component.ngOnDestroy(); expect(component.startOver).toHaveBeenCalled(); }); }); }); operator-decision-tree.component.ts000066400000000000000000000066661431412030200342470ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-treeimport { animate, state, style, transition, trigger } from '@angular/animations'; import { Component, OnDestroy } from '@angular/core'; import { ScrollService } from 'app/shared/scroll.service'; import { Observable } from 'rxjs'; import { OperatorTreeNode } from './interfaces'; import { OperatorDecisionTreeService } from './operator-decision-tree.service'; @Component({ selector: 'aio-operator-decision-tree', template: `

Operator Decision Tree

{{ currentSentence$ | async }}

You want the {{ option.method }} of the {{ option.docType }} {{ option.label }}.

You want the {{ option.docType }} {{ option.label }}.

Oops! There was an issue loading the decision tree.. we're real sorry about that. Please try reloading the page.

You can also try submitting an issue on GitHub.

`, styleUrls: ['./operator-decision-tree.component.scss'], animations: [ trigger('flyIn', [ state('in', style({ transform: 'translateX(0)' })), transition(':enter', [style({ transform: 'translateX(-100%)' }), animate(250)]), ]), ], }) export class OperatorDecisionTreeComponent implements OnDestroy { currentSentence$: Observable = this.operatorDecisionTreeService.currentSentence$; options$: Observable = this.operatorDecisionTreeService.options$; isBeyondInitialQuestion$: Observable = this.operatorDecisionTreeService.isBeyondInitialQuestion$; hasError$: Observable = this.operatorDecisionTreeService.hasError$; constructor(private operatorDecisionTreeService: OperatorDecisionTreeService, private scrollService: ScrollService) {} selectOption(optionId: string): void { this.operatorDecisionTreeService.selectOption(optionId); this.scrollService.scrollToTop(); } back(): void { this.operatorDecisionTreeService.back(); } startOver(): void { this.operatorDecisionTreeService.startOver(); } ngOnDestroy(): void { this.startOver(); } } operator-decision-tree.module.spec.ts000066400000000000000000000006101431412030200344420ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-treeimport { OperatorDecisionTreeModule } from './operator-decision-tree.module'; describe('OperatorDecisionTreeModule', () => { let chooseYourOwnOperatorModule: OperatorDecisionTreeModule; beforeEach(() => { chooseYourOwnOperatorModule = new OperatorDecisionTreeModule(); }); it('should create an instance', () => { expect(chooseYourOwnOperatorModule).toBeTruthy(); }); }); rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-tree/operator-decision-tree.module.ts000066400000000000000000000020711431412030200335730ustar00rootroot00000000000000import { CommonModule } from '@angular/common'; import { NgModule, Type } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; import { MatRippleModule } from '@angular/material/core'; import { ScrollService } from 'app/shared/scroll.service'; import { WithCustomElementComponent } from '../element-registry'; import { OperatorDecisionTreeDataService } from './operator-decision-tree-data.service'; import { OperatorDecisionTreeComponent } from './operator-decision-tree.component'; import { OperatorDecisionTreeService } from './operator-decision-tree.service'; @NgModule({ imports: [CommonModule, MatButtonModule, MatCardModule, MatRippleModule], declarations: [OperatorDecisionTreeComponent], providers: [ OperatorDecisionTreeDataService, OperatorDecisionTreeService, ScrollService ] }) export class OperatorDecisionTreeModule implements WithCustomElementComponent { customElementComponent: Type< OperatorDecisionTreeComponent > = OperatorDecisionTreeComponent; } operator-decision-tree.service.spec.ts000066400000000000000000000150541431412030200346250ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-treeimport { TestBed } from '@angular/core/testing'; import { cold, initTestScheduler, addMatchers } from 'jasmine-marbles'; import { treeNodeInitialStub, treeNodeStubNoOptions, treeNodeStubWithOptionsA, treeNodeStubWithOptionsB, treeStub } from './fixtures'; import { OperatorDecisionTreeDataService } from './operator-decision-tree-data.service'; import { OperatorDecisionTreeService } from './operator-decision-tree.service'; describe('OperatorDecisionTreeService', () => { let service: OperatorDecisionTreeService; const dataServiceStub = { getDecisionTree$: jasmine.createSpy() }; beforeEach(() => { addMatchers(); initTestScheduler(); TestBed.configureTestingModule({ providers: [ OperatorDecisionTreeService, { provide: OperatorDecisionTreeDataService, useValue: dataServiceStub } ] }); }); describe('currentSentence$', () => { const initialSentence = 'Start by choosing an option from the list below.'; beforeEach(() => { dataServiceStub.getDecisionTree$.and.returnValue( cold('x', { x: treeStub }) ); service = TestBed.inject(OperatorDecisionTreeService); }); describe('when it is the initial sequence', () => { it('should emit an initial sentence', () => { spyOn(service, 'selectOption'); expect(service.currentSentence$).toBeObservable( cold('x', { x: initialSentence }) ); expect(service.selectOption).not.toHaveBeenCalled(); }); }); describe('when an option is selected', () => { it('should emit a sentence based on previous chosen labels', () => { service.selectOption(treeNodeStubWithOptionsA.id); expect(service.currentSentence$).toBeObservable( cold('x', { x: `${treeNodeStubWithOptionsA.label}...` }) ); service.selectOption(treeNodeStubWithOptionsB.id); expect(service.currentSentence$).toBeObservable( cold('x', { x: `${treeNodeStubWithOptionsA.label} ${ treeNodeStubWithOptionsB.label }...` }) ); }); describe('and the back method is called', () => { it('should emit the previous sentence', () => { service.selectOption(treeNodeStubWithOptionsA.id); service.selectOption(treeNodeStubWithOptionsB.id); service.back(); expect(service.currentSentence$).toBeObservable( cold('x', { x: `${treeNodeStubWithOptionsA.label}...` }) ); }); }); describe('and the startOver method is called', () => { it('should emit the initial sentence', () => { service.selectOption(treeNodeStubWithOptionsA.id); service.startOver(); expect(service.currentSentence$).toBeObservable( cold('x', { x: initialSentence }) ); }); }); }); }); describe('options$', () => { describe('signals do not get past the filter,', () => { describe('when the tree has an error', () => { it('should never emit', () => { dataServiceStub.getDecisionTree$.and.returnValue(cold('#')); service = TestBed.inject(OperatorDecisionTreeService); expect(service.options$).toBeObservable(cold('-')); }); }); describe('when the current branch has no options', () => { it('should never emit', () => { dataServiceStub.getDecisionTree$.and.returnValue( cold('x', { x: { [treeNodeStubNoOptions.id]: treeNodeStubNoOptions } }) ); service = TestBed.inject(OperatorDecisionTreeService); expect(service.options$).toBeObservable(cold('-')); }); }); describe('when the currentBranchId does not exist in the tree', () => { it('should never emit', () => { dataServiceStub.getDecisionTree$.and.returnValue( cold('x', { x: { foo: treeNodeStubNoOptions } }) ); service = TestBed.inject(OperatorDecisionTreeService); expect(service.options$).toBeObservable(cold('-')); }); }); }); describe('when signals get past the filter', () => { beforeEach(() => { dataServiceStub.getDecisionTree$.and.returnValue( cold('x', { x: treeStub }) ); service = TestBed.inject(OperatorDecisionTreeService); }); describe('when it is the initial sequence', () => { it('should be an array of the tree nodes from the initial options', () => { expect(service.options$).toBeObservable( cold('a', { a: [treeStub[treeNodeInitialStub.initial.options[0]]] }) ); }); }); describe('when an option is selected', () => { describe('and there are additional options', () => { it('should be an array of the new option nodes', () => { service.selectOption(treeNodeStubWithOptionsA.id); expect(service.options$).toBeObservable( cold('a', { a: [treeNodeStubWithOptionsB] }) ); }); }); describe('and there are no additional options', () => { it('should not emit', () => { service.selectOption(treeNodeStubNoOptions.id); expect(service.options$).toBeObservable(cold('-')); }); }); }); }); }); describe('isBeyondInitialQuestion$', () => { beforeEach(() => { dataServiceStub.getDecisionTree$.and.returnValue( cold('x', { x: treeStub }) ); service = TestBed.inject(OperatorDecisionTreeService); }); describe('when not beyond the initial question', () => { it('should be false', () => { spyOn(service, 'selectOption'); expect(service.isBeyondInitialQuestion$).toBeObservable( cold('a', { a: false }) ); expect(service.selectOption).not.toHaveBeenCalled(); }); }); describe('when beyond the initial question', () => { it('should be true', () => { service.selectOption(treeNodeStubWithOptionsA.id); expect(service.isBeyondInitialQuestion$).toBeObservable( cold('a', { a: true }) ); }); }); }); describe('hasError$', () => { describe('when the tree has no error', () => { it('should not emit', () => { dataServiceStub.getDecisionTree$.and.returnValue( cold('x', { x: treeStub }) ); service = TestBed.inject(OperatorDecisionTreeService); expect(service.hasError$).toBeObservable(cold('-')); }); }); }); }); rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-tree/operator-decision-tree.service.ts000066400000000000000000000063031431412030200337500ustar00rootroot00000000000000import { Injectable } from '@angular/core'; import { BehaviorSubject, combineLatest, Observable, of } from 'rxjs'; import { filter, map, mapTo, shareReplay, catchError } from 'rxjs/operators'; import { OperatorDecisionTree, OperatorTreeNode, State } from './interfaces'; import { OperatorDecisionTreeDataService } from './operator-decision-tree-data.service'; import { isInitialDecision, nodeHasOptions, treeIsErrorFree } from './utils'; @Injectable() export class OperatorDecisionTreeService { private initialState: State = { previousBranchIds: ['initial'], currentBranchId: 'initial' }; private state$ = new BehaviorSubject(this.initialState); private tree$: Observable< OperatorDecisionTree > = this.dataService.getDecisionTree$().pipe( catchError(error => of(error)), // This helps if the JSON for some reason fails to get fetched shareReplay() ); currentSentence$: Observable = combineLatest( this.tree$, this.state$ ).pipe( filter(([tree]) => treeIsErrorFree(tree)), map(([tree, { previousBranchIds }]) => isInitialDecision(previousBranchIds) ? 'Start by choosing an option from the list below.' : `${previousBranchIds .map(entityId => { return tree[entityId].label; }) .join(' ')}...`.trim() ) ); options$: Observable<(OperatorTreeNode)[]> = combineLatest( this.tree$, this.state$ ).pipe( filter(([tree, state]) => { return ( treeIsErrorFree(tree) && !!tree[state.currentBranchId] && !!tree[state.currentBranchId].options ); }), map(([tree, state]) => { // Project is currently using TypeScript 2.9.2 // With TS 3.1+ this can be done better if we map to [tree, node] and typeguard with a tuple in a filter // filter((a): a is [OperatorDecisionTree, OperatorTreeNodeWithOptions] => !a[0].error && !!a[1].options) const node = tree[state.currentBranchId]; return nodeHasOptions(node) ? node.options.map(option => tree[option]) : tree['initial'].options.map(option => tree[option]); }) ); isBeyondInitialQuestion$: Observable = this.state$.pipe( map(({ currentBranchId }) => currentBranchId !== 'initial') ); // This helps if the JSON for some reason fails to get fetched hasError$ = this.tree$.pipe( filter(tree => !!tree.error), mapTo(true) ); constructor(private dataService: OperatorDecisionTreeDataService) {} private get snapShot(): State { return this.state$.getValue(); } selectOption(optionId: string): void { this.state$.next({ previousBranchIds: [...this.snapShot.previousBranchIds, optionId], currentBranchId: optionId }); } back(): void { const previousOptionId = this.snapShot.previousBranchIds[ this.snapShot.previousBranchIds.length - 2 ]; if (previousOptionId) { this.state$.next({ previousBranchIds: [ ...this.snapShot.previousBranchIds.slice( 0, this.snapShot.previousBranchIds.length - 1 ) ], currentBranchId: previousOptionId }); } } startOver(): void { this.state$.next(this.initialState); } } rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-tree/utils.spec.ts000066400000000000000000000021551431412030200300200ustar00rootroot00000000000000import { isInitialDecision, treeIsErrorFree, nodeHasOptions } from './utils'; describe('isInitialDecision', () => { describe('when it is an initial decision', () => { it('should be true', () => { expect(isInitialDecision(['initial'])).toBe(true) }); }); describe('when it is not an initial decision', () => { it('should be false', () => { expect(isInitialDecision(['initial', 'foo'])).toBe(false) }); }); }); describe('treeIsErrorFree', () => { describe('when the tree is error free', () => { it('should return true', () => { expect(treeIsErrorFree({})).toBe(true) }); }); describe('when the tree has an error', () => { it('should return false', () => { expect(treeIsErrorFree({error: true})).toBe(false) }); }); }); describe('nodeHasOptions', () => { describe('when node has options', () => { it('should return true', () => { expect(nodeHasOptions({options: ['123']})).toBe(true) }); }); describe('when node has no options', () => { it('should return false', () => { expect(nodeHasOptions({})).toBe(false) }); }); }); rxjs-7.5.7/docs_app/src/app/custom-elements/operator-decision-tree/utils.ts000066400000000000000000000006271431412030200270710ustar00rootroot00000000000000import { OperatorTreeNodeWithOptions } from './interfaces'; export function isInitialDecision(previousBranchIds: string[]): boolean { return ( previousBranchIds.includes('initial') && previousBranchIds.length === 1 ); } export function treeIsErrorFree(tree): boolean { return !tree.error; } export function nodeHasOptions(node): node is OperatorTreeNodeWithOptions { return !!node.options; } rxjs-7.5.7/docs_app/src/app/custom-elements/resource/000077500000000000000000000000001431412030200226205ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/resource/resource-list.component.spec.ts000066400000000000000000000046051431412030200307270ustar00rootroot00000000000000import { ReflectiveInjector } from '@angular/core'; import { PlatformLocation } from '@angular/common'; import { of } from 'rxjs'; import { ResourceListComponent } from './resource-list.component'; import { ResourceService } from './resource.service'; import { Category } from './resource.model'; // Testing the component class behaviors, independent of its template // Let e2e tests verify how it displays. describe('ResourceListComponent', () => { let injector: ReflectiveInjector; let location: TestPlatformLocation; beforeEach(() => { injector = ReflectiveInjector.resolveAndCreate([ ResourceListComponent, {provide: PlatformLocation, useClass: TestPlatformLocation }, {provide: ResourceService, useClass: TestResourceService } ]); location = injector.get(PlatformLocation); }); it('should set the location w/o leading slashes', () => { location.pathname = '////resources'; const component = getComponent(); expect(component.location).toBe('resources'); }); it('href(id) should return the expected href', () => { location.pathname = '////resources'; const component = getComponent(); expect(component.href({id: 'foo'})).toBe('resources#foo'); }); it('should set scroll position to zero when no target element', () => { const component = getComponent(); component.onScroll(undefined); expect(component.scrollPos).toBe(0); }); it('should set scroll position to element.scrollTop when that is defined', () => { const component = getComponent(); component.onScroll({scrollTop: 42}); expect(component.scrollPos).toBe(42); }); it('should set scroll position to element.body.scrollTop when that is defined', () => { const component = getComponent(); component.onScroll({body: {scrollTop: 42}}); expect(component.scrollPos).toBe(42); }); it('should set scroll position to 0 when no target.body.scrollTop defined', () => { const component = getComponent(); component.onScroll({body: {}}); expect(component.scrollPos).toBe(0); }); //// Test Helpers //// function getComponent(): ResourceListComponent { return injector.get(ResourceListComponent); } class TestPlatformLocation { pathname = 'resources'; } class TestResourceService { categories = of(getTestData); } function getTestData(): Category[] { return []; // Not interested in the data in these tests } }); rxjs-7.5.7/docs_app/src/app/custom-elements/resource/resource-list.component.ts000066400000000000000000000041771431412030200300020ustar00rootroot00000000000000import { Component, HostListener, OnInit } from '@angular/core'; import { PlatformLocation } from '@angular/common'; import { Category } from './resource.model'; import { ResourceService } from './resource.service'; @Component({ selector: 'aio-resource-list', template: `

{{ category.title }}

{{ subCategory.title }}

{{ resource.title }}

{{ resource.desc || 'No Description' }}

`, }) export class ResourceListComponent implements OnInit { categories: Category[]; location: string; scrollPos = 0; constructor(location: PlatformLocation, private resourceService: ResourceService) { this.location = location.pathname.replace(/^\/+/, ''); } href(cat: { id: string }) { return this.location + '#' + cat.id; } ngOnInit() { // Not using async pipe because cats appear twice in template // No need to unsubscribe because categories observable completes. this.resourceService.categories.subscribe((cats) => (this.categories = cats)); } @HostListener('window:scroll', ['$event.target']) onScroll(target: any) { this.scrollPos = target ? target.scrollTop || target.body.scrollTop || 0 : 0; } } rxjs-7.5.7/docs_app/src/app/custom-elements/resource/resource-list.module.ts000066400000000000000000000010331431412030200272510ustar00rootroot00000000000000import { NgModule, Type } from '@angular/core'; import { CommonModule } from '@angular/common'; import { ResourceListComponent } from './resource-list.component'; import { ResourceService } from './resource.service'; import { WithCustomElementComponent } from '../element-registry'; @NgModule({ imports: [ CommonModule ], declarations: [ ResourceListComponent ], providers: [ ResourceService ] }) export class ResourceListModule implements WithCustomElementComponent { customElementComponent: Type = ResourceListComponent; } rxjs-7.5.7/docs_app/src/app/custom-elements/resource/resource.model.ts000066400000000000000000000012731431412030200261210ustar00rootroot00000000000000export class Category { id: string; // "education" title: string; // "Education" order: number; // 2 subCategories: SubCategory[]; } export class SubCategory { id: string; // "books" title: string; // "Books" order: number; // 1 resources: Resource[]; } export class Resource { category: string; // "Education" subCategory: string; // "Books" id: string; // "-KLI8vJ0ZkvWhqPembZ7" desc: string; // "This books shows all the steps necessary for the development of SPA" rev: boolean; // true (always true in the original) title: string; // "Practical Angular 2", url: string; // "https://leanpub.com/practical-angular-2" } rxjs-7.5.7/docs_app/src/app/custom-elements/resource/resource.service.spec.ts000066400000000000000000000107201431412030200274070ustar00rootroot00000000000000import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { Injector } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { ResourceService } from './resource.service'; import { Category } from './resource.model'; describe('ResourceService', () => { let injector: Injector; let resourceService: ResourceService; let httpMock: HttpTestingController; beforeEach(() => { injector = TestBed.configureTestingModule({ imports: [HttpClientTestingModule], providers: [ ResourceService ] }); resourceService = injector.get(ResourceService); httpMock = injector.get(HttpTestingController); }); afterEach(() => httpMock.verify()); it('should make a single connection to the server', () => { const req = httpMock.expectOne({}); expect(req.request.url).toBe('generated/resources.json'); }); describe('#categories', () => { let categories: Category[]; let testData: any; beforeEach(() => { testData = getTestResources(); httpMock.expectOne({}).flush(testData); resourceService.categories.subscribe(results => categories = results); }); it('categories observable should complete', () => { let completed = false; resourceService.categories.subscribe(undefined, undefined, () => completed = true); expect(completed).toBe(true, 'observable completed'); }); it('should reshape contributors.json to sorted category array', () => { const actualIds = categories.map(c => c.id).join(','); expect(actualIds).toBe('cat-1,cat-3'); }); it('should convert ids to canonical form', () => { // canonical form is lowercase with dashes for spaces const cat = categories[1]; const sub = cat.subCategories[0]; const res = sub.resources[0]; expect(cat.id).toBe('cat-3', 'category id'); expect(sub.id).toBe('cat3-subcat2', 'subcat id'); expect(res.id).toBe('cat3-subcat2-res1', 'resources id'); }); it('resource knows its category and sub-category titles', () => { const cat = categories[1]; const sub = cat.subCategories[0]; const res = sub.resources[0]; expect(res.category).toBe(cat.title, 'category title'); expect(res.subCategory).toBe(sub.title, 'subcategory title'); }); it('should have expected SubCategories of "Cat 3"', () => { const actualIds = categories[1].subCategories.map(s => s.id).join(','); expect(actualIds).toBe('cat3-subcat2,cat3-subcat1'); }); it('should have expected sorted resources of "Cat 1:SubCat1"', () => { const actualIds = categories[0].subCategories[0].resources.map(r => r.id).join(','); expect(actualIds).toBe('a-a-a,s-s-s,z-z-z'); }); }); it('should do WHAT(?) if the request fails'); }); function getTestResources() { // tslint:disable:quotemark return { "Cat 3": { "order": 3, "subCategories": { "Cat3 SubCat1": { "order": 2, "resources": { "Cat3 SubCat1 Res1": { "desc": "Meetup in Barcelona, Spain. ", "rev": true, "title": "Angular Beers", "url": "http://www.meetup.com/AngularJS-Beers/" }, "Cat3 SubCat1 Res2": { "desc": "Angular Camps in Barcelona, Spain.", "rev": true, "title": "Angular Camp", "url": "http://angularcamp.org/" } } }, "Cat3 SubCat2": { "order": 1, "resources": { "Cat3 SubCat2 Res1": { "desc": "A community index of components and libraries", "rev": true, "title": "Catalog of Angular Components & Libraries", "url": "https://a/b/c" } } }, } }, "Cat 1": { "order": 1, "subCategories": { "Cat1 SubCat1": { "order": 1, "resources": { "S S S": { "desc": "SSS", "rev": true, "title": "Sssss", "url": "http://s/s/s" }, "A A A": { "desc": "AAA", "rev": true, "title": "Aaaa", "url": "http://a/a/a" }, "Z Z Z": { "desc": "ZZZ", "rev": true, "title": "Zzzzz", "url": "http://z/z/z" } } }, }, } }; } rxjs-7.5.7/docs_app/src/app/custom-elements/resource/resource.service.ts000066400000000000000000000046241431412030200264640ustar00rootroot00000000000000import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { ConnectableObservable, Observable } from 'rxjs'; import { map, publishLast } from 'rxjs/operators'; import { Category, Resource, SubCategory } from './resource.model'; import { CONTENT_URL_PREFIX } from 'app/documents/document.service'; const resourcesPath = CONTENT_URL_PREFIX + 'resources.json'; @Injectable() export class ResourceService { categories: Observable; constructor(private http: HttpClient) { this.categories = this.getCategories(); } private getCategories(): Observable { const categories = this.http.get(resourcesPath).pipe( map(data => mkCategories(data)), publishLast(), ); (categories as ConnectableObservable).connect(); return categories; }; } // Extract sorted Category[] from resource JSON data function mkCategories(categoryJson: any): Category[] { return Object.keys(categoryJson).map(catKey => { const cat = categoryJson[catKey]; return { id: makeId(catKey), title: catKey, order: cat.order, subCategories: mkSubCategories(cat.subCategories, catKey) } as Category; }) .sort(compareCats); } // Extract sorted SubCategory[] from JSON category data function mkSubCategories(subCategoryJson: any, catKey: string): SubCategory[] { return Object.keys(subCategoryJson).map(subKey => { const sub = subCategoryJson[subKey]; return { id: makeId(subKey), title: subKey, order: sub.order, resources: mkResources(sub.resources, subKey, catKey) } as SubCategory; }) .sort(compareCats); } // Extract sorted Resource[] from JSON subcategory data function mkResources(resourceJson: any, subKey: string, catKey: string): Resource[] { return Object.keys(resourceJson).map(resKey => { const res = resourceJson[resKey]; res.category = catKey; res.subCategory = subKey; res.id = makeId(resKey); return res as Resource; }) .sort(compareTitles); } function compareCats(l: Category | SubCategory, r: Category | SubCategory) { return l.order === r.order ? compareTitles(l, r) : l.order > r.order ? 1 : -1; } function compareTitles(l: {title: string}, r: {title: string}) { return l.title.toUpperCase() > r.title.toUpperCase() ? 1 : -1; } function makeId(title: string) { return title.toLowerCase().replace(/\s+/g, '-'); } rxjs-7.5.7/docs_app/src/app/custom-elements/search/000077500000000000000000000000001431412030200222365ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/search/file-not-found-search.component.spec.ts000066400000000000000000000037131431412030200316350ustar00rootroot00000000000000import { ComponentFixture, TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { Subject } from 'rxjs'; import { LocationService } from 'app/shared/location.service'; import { MockLocationService } from 'testing/location.service'; import { SearchResults } from 'app/search/interfaces'; import { SearchResultsComponent } from 'app/shared/search-results/search-results.component'; import { SearchService } from 'app/search/search.service'; import { FileNotFoundSearchComponent } from './file-not-found-search.component'; describe('FileNotFoundSearchComponent', () => { let fixture: ComponentFixture; let searchService: SearchService; let searchResultSubject: Subject; beforeEach(() => { TestBed.configureTestingModule({ declarations: [ FileNotFoundSearchComponent, SearchResultsComponent ], providers: [ { provide: LocationService, useValue: new MockLocationService('base/initial-url?some-query') }, SearchService ] }); fixture = TestBed.createComponent(FileNotFoundSearchComponent); searchService = TestBed.inject(SearchService); searchResultSubject = new Subject(); spyOn(searchService, 'search').and.callFake(() => searchResultSubject.asObservable()); fixture.detectChanges(); }); it('should run a search with a query built from the current url', () => { expect(searchService.search).toHaveBeenCalledWith('base initial url'); }); it('should pass through any results to the `aio-search-results` component', () => { const searchResultsComponent = fixture.debugElement.query(By.directive(SearchResultsComponent)).componentInstance; expect(searchResultsComponent.searchResults).toBe(null); const results = { query: 'base initial url', results: []}; searchResultSubject.next(results); fixture.detectChanges(); expect(searchResultsComponent.searchResults).toEqual(results); }); }); rxjs-7.5.7/docs_app/src/app/custom-elements/search/file-not-found-search.component.ts000066400000000000000000000016321431412030200307020ustar00rootroot00000000000000import { Component, OnInit } from '@angular/core'; import { Observable } from 'rxjs'; import { switchMap } from 'rxjs/operators'; import { LocationService } from 'app/shared/location.service'; import { SearchResults } from 'app/search/interfaces'; import { SearchService } from 'app/search/search.service'; @Component({ selector: 'aio-file-not-found-search', template: `

Let's see if any of these search results help...

` }) export class FileNotFoundSearchComponent implements OnInit { searchResults: Observable; constructor(private location: LocationService, private search: SearchService) {} ngOnInit() { this.searchResults = this.location.currentPath.pipe(switchMap(path => { const query = path.split(/\W+/).join(' '); return this.search.search(query); })); } } rxjs-7.5.7/docs_app/src/app/custom-elements/search/file-not-found-search.module.ts000066400000000000000000000010541431412030200301630ustar00rootroot00000000000000import { NgModule, Type } from '@angular/core'; import { CommonModule } from '@angular/common'; import { SharedModule } from '../../shared/shared.module'; import { FileNotFoundSearchComponent } from './file-not-found-search.component'; import { WithCustomElementComponent } from '../element-registry'; @NgModule({ imports: [ CommonModule, SharedModule ], declarations: [ FileNotFoundSearchComponent ] }) export class FileNotFoundSearchModule implements WithCustomElementComponent { customElementComponent: Type = FileNotFoundSearchComponent; } rxjs-7.5.7/docs_app/src/app/custom-elements/toc/000077500000000000000000000000001431412030200215565ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/custom-elements/toc/toc.component.spec.ts000066400000000000000000000423041431412030200256500ustar00rootroot00000000000000import { Component, CUSTOM_ELEMENTS_SCHEMA, DebugElement } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { asapScheduler as asap, BehaviorSubject } from 'rxjs'; import { ScrollService } from 'app/shared/scroll.service'; import { TocItem, TocService } from 'app/shared/toc.service'; import { TocComponent } from './toc.component'; describe('TocComponent', () => { let tocComponentDe: DebugElement; let tocComponent: TocComponent; let tocService: TocService; let page: { listItems: DebugElement[]; tocHeading: DebugElement; tocHeadingButtonEmbedded: DebugElement; tocH1Heading: DebugElement; tocMoreButton: DebugElement; }; function setPage(): typeof page { return { listItems: tocComponentDe.queryAll(By.css('ul.toc-list>li')), tocHeading: tocComponentDe.query(By.css('.toc-heading')), tocHeadingButtonEmbedded: tocComponentDe.query(By.css('button.toc-heading.embedded')), tocH1Heading: tocComponentDe.query(By.css('.h1')), tocMoreButton: tocComponentDe.query(By.css('button.toc-more-items')), }; } beforeEach(() => { TestBed.configureTestingModule({ declarations: [ HostEmbeddedTocComponent, TocComponent ], providers: [ { provide: ScrollService, useClass: TestScrollService }, { provide: TocService, useClass: TestTocService } ], schemas: [CUSTOM_ELEMENTS_SCHEMA] }); }); describe('when embedded in doc body', () => { let fixture: ComponentFixture; beforeEach(() => { fixture = TestBed.createComponent(HostEmbeddedTocComponent); tocComponentDe = fixture.debugElement.children[0]; tocComponent = tocComponentDe.componentInstance; tocService = TestBed.inject(TocService); }); it('should create tocComponent', () => { expect(tocComponent).toBeTruthy(); }); it('should be in embedded state', () => { expect(tocComponent.isEmbedded).toEqual(true); }); it('should not display a ToC initially', () => { expect(tocComponent.type).toEqual('None'); }); describe('(once the lifecycle hooks have run)', () => { beforeEach(() => fixture.detectChanges()); it('should not display anything when no h2 or h3 TocItems', () => { tocService.tocList.next([tocItem('H1', 'h1')]); fixture.detectChanges(); expect(tocComponentDe.children.length).toEqual(0); }); it('should update when the TocItems are updated', () => { tocService.tocList.next([tocItem('Heading A')]); fixture.detectChanges(); expect(tocComponentDe.queryAll(By.css('li')).length).toBe(1); tocService.tocList.next([tocItem('Heading A'), tocItem('Heading B'), tocItem('Heading C')]); fixture.detectChanges(); expect(tocComponentDe.queryAll(By.css('li')).length).toBe(3); }); it('should only display H2 and H3 TocItems', () => { tocService.tocList.next([tocItem('Heading A', 'h1'), tocItem('Heading B'), tocItem('Heading C', 'h3')]); fixture.detectChanges(); const tocItems = tocComponentDe.queryAll(By.css('li')); const textContents = tocItems.map(item => item.nativeNode.textContent.trim()); expect(tocItems.length).toBe(2); expect(textContents.find(text => text === 'Heading A')).toBeFalsy(); expect(textContents.find(text => text === 'Heading B')).toBeTruthy(); expect(textContents.find(text => text === 'Heading C')).toBeTruthy(); expect(setPage().tocH1Heading).toBeFalsy(); }); it('should stop listening for TocItems once destroyed', () => { tocService.tocList.next([tocItem('Heading A')]); fixture.detectChanges(); expect(tocComponentDe.queryAll(By.css('li')).length).toBe(1); tocComponent.ngOnDestroy(); tocService.tocList.next([tocItem('Heading A', 'h1'), tocItem('Heading B'), tocItem('Heading C')]); fixture.detectChanges(); expect(tocComponentDe.queryAll(By.css('li')).length).toBe(1); }); describe('when fewer than `maxPrimary` TocItems', () => { beforeEach(() => { tocService.tocList.next([tocItem('Heading A'), tocItem('Heading B'), tocItem('Heading C'), tocItem('Heading D')]); fixture.detectChanges(); page = setPage(); }); it('should have four displayed items', () => { expect(page.listItems.length).toEqual(4); }); it('should not have secondary items', () => { expect(tocComponent.type).toEqual('EmbeddedSimple'); const aSecond = page.listItems.find(item => item.classes.secondary); expect(aSecond).toBeFalsy('should not find a secondary'); }); it('should not display expando buttons', () => { expect(page.tocHeadingButtonEmbedded).toBeFalsy('top expand/collapse button'); expect(page.tocMoreButton).toBeFalsy('bottom more button'); }); }); describe('when many TocItems', () => { let scrollToTopSpy: jasmine.Spy; beforeEach(() => { fixture.detectChanges(); page = setPage(); const scrollSvc = TestBed.inject(ScrollService); scrollToTopSpy = spyOn(scrollSvc, 'scrollToTop'); }); afterEach(() => fixture.destroy()); it('should have more than 4 displayed items', () => { expect(page.listItems.length).toBeGreaterThan(4); }); it('should not display the h1 item', () => { expect(page.listItems.find(item => item.classes.h1)).toBeFalsy('should not find h1 item'); }); it('should be in "collapsed" (not expanded) state at the start', () => { expect(tocComponent.isCollapsed).toBeTruthy(); }); it('should have "collapsed" class at the start', () => { expect(tocComponentDe.children[0].classes.collapsed).toEqual(true); }); it('should display expando buttons', () => { expect(page.tocHeadingButtonEmbedded).toBeTruthy('top expand/collapse button'); expect(page.tocMoreButton).toBeTruthy('bottom more button'); }); it('should have secondary items', () => { expect(tocComponent.type).toEqual('EmbeddedExpandable'); }); // CSS will hide items with the secondary class when collapsed it('should have secondary item with a secondary class', () => { const aSecondary = page.listItems.find(item => item.classes.secondary); expect(aSecondary).toBeTruthy('should find a secondary'); }); describe('after click tocHeading button', () => { beforeEach(() => { page.tocHeadingButtonEmbedded.nativeElement.click(); fixture.detectChanges(); }); it('should not be "collapsed"', () => { expect(tocComponent.isCollapsed).toEqual(false); }); it('should not have "collapsed" class', () => { expect(tocComponentDe.children[0].classes.collapsed).toBeFalsy(); }); it('should not scroll', () => { scrollToTopSpy = jasmine.createSpy('scrollToTop'); expect(scrollToTopSpy).not.toHaveBeenCalled(); }); it('should be "collapsed" after clicking again', () => { page.tocHeadingButtonEmbedded.nativeElement.click(); fixture.detectChanges(); expect(tocComponent.isCollapsed).toEqual(true); }); it('should not scroll after clicking again', () => { scrollToTopSpy = jasmine.createSpy('scrollToTop'); page.tocHeadingButtonEmbedded.nativeElement.click(); fixture.detectChanges(); expect(scrollToTopSpy).not.toHaveBeenCalled(); }); }); describe('after click tocMore button', () => { beforeEach(() => { page.tocMoreButton.nativeElement.click(); fixture.detectChanges(); }); it('should not be "collapsed"', () => { expect(tocComponent.isCollapsed).toEqual(false); }); it('should not have "collapsed" class', () => { expect(tocComponentDe.children[0].classes.collapsed).toBeFalsy(); }); it('should not scroll', () => { scrollToTopSpy = jasmine.createSpy('scrollToTop'); expect(scrollToTopSpy).not.toHaveBeenCalled(); }); it('should be "collapsed" after clicking again', () => { page.tocMoreButton.nativeElement.click(); fixture.detectChanges(); expect(tocComponent.isCollapsed).toEqual(true); }); it('should be "collapsed" after clicking tocHeadingButton', () => { page.tocMoreButton.nativeElement.click(); fixture.detectChanges(); expect(tocComponent.isCollapsed).toEqual(true); }); it('should scroll after clicking again', () => { scrollToTopSpy = jasmine.createSpy('scrollToTop'); page.tocMoreButton.nativeElement.click(); fixture.detectChanges(); expect(scrollToTopSpy).toHaveBeenCalled(); }); }); }); }); }); describe('when in side panel (not embedded)', () => { let fixture: ComponentFixture; beforeEach(() => { fixture = TestBed.createComponent(HostNotEmbeddedTocComponent); tocComponentDe = fixture.debugElement.children[0]; tocComponent = tocComponentDe.componentInstance; tocService = TestBed.inject(TocService); fixture.detectChanges(); page = setPage(); }); it('should not be in embedded state', () => { expect(tocComponent.isEmbedded).toEqual(false); expect(tocComponent.type).toEqual('Floating'); }); it('should display all items (including h1s)', () => { expect(page.listItems.length).toEqual(getTestTocList().length); }); it('should not have secondary items', () => { expect(tocComponent.type).toEqual('Floating'); const aSecond = page.listItems.find(item => item.classes.secondary); expect(aSecond).toBeFalsy('should not find a secondary'); }); it('should not display expando buttons', () => { expect(page.tocHeadingButtonEmbedded).toBeFalsy('top expand/collapse button'); expect(page.tocMoreButton).toBeFalsy('bottom more button'); }); it('should display H1 title', () => { expect(page.tocH1Heading).toBeTruthy(); }); describe('#activeIndex', () => { it('should keep track of `TocService`\'s `activeItemIndex`', () => { expect(tocComponent.activeIndex).toBeNull(); tocService.activeItemIndex.next(42); fixture.detectChanges(); expect(tocComponent.activeIndex).toBe(42); tocService.activeItemIndex.next(null); fixture.detectChanges(); expect(tocComponent.activeIndex).toBeNull(); }); it('should stop tracking `activeItemIndex` once destroyed', () => { tocService.activeItemIndex.next(42); fixture.detectChanges(); expect(tocComponent.activeIndex).toBe(42); tocComponent.ngOnDestroy(); tocService.activeItemIndex.next(43); fixture.detectChanges(); expect(tocComponent.activeIndex).toBe(42); tocService.activeItemIndex.next(null); fixture.detectChanges(); expect(tocComponent.activeIndex).toBe(42); }); it('should set the `active` class to the active anchor (and only that)', () => { expect(page.listItems.findIndex(By.css('.active'))).toBe(-1); tocComponent.activeIndex = 1; fixture.detectChanges(); expect(page.listItems.filter(By.css('.active')).length).toBe(1); expect(page.listItems.findIndex(By.css('.active'))).toBe(1); tocComponent.activeIndex = null; fixture.detectChanges(); expect(page.listItems.filter(By.css('.active')).length).toBe(0); expect(page.listItems.findIndex(By.css('.active'))).toBe(-1); tocComponent.activeIndex = 0; fixture.detectChanges(); expect(page.listItems.filter(By.css('.active')).length).toBe(1); expect(page.listItems.findIndex(By.css('.active'))).toBe(0); tocComponent.activeIndex = 1337; fixture.detectChanges(); expect(page.listItems.filter(By.css('.active')).length).toBe(0); expect(page.listItems.findIndex(By.css('.active'))).toBe(-1); tocComponent.activeIndex = page.listItems.length - 1; fixture.detectChanges(); expect(page.listItems.filter(By.css('.active')).length).toBe(1); expect(page.listItems.findIndex(By.css('.active'))).toBe(page.listItems.length - 1); }); it('should re-apply the `active` class when the list elements change', () => { const getActiveTextContent = () => page.listItems.find(By.css('.active'))!.nativeElement.textContent.trim(); tocComponent.activeIndex = 1; fixture.detectChanges(); expect(getActiveTextContent()).toBe('Heading one'); tocComponent.tocList = [tocItem('New 1'), tocItem('New 2')]; fixture.detectChanges(); page = setPage(); expect(getActiveTextContent()).toBe('New 2'); tocComponent.tocList.unshift(tocItem('New 0')); fixture.detectChanges(); page = setPage(); expect(getActiveTextContent()).toBe('New 1'); tocComponent.tocList = [tocItem('Very New 1')]; fixture.detectChanges(); page = setPage(); expect(page.listItems.findIndex(By.css('.active'))).toBe(-1); tocComponent.activeIndex = 0; fixture.detectChanges(); expect(getActiveTextContent()).toBe('Very New 1'); }); describe('should scroll the active ToC item into viewport (if not already visible)', () => { let parentScrollTop: number; beforeEach(() => { const hostElem = fixture.nativeElement; const firstItem = page.listItems[0].nativeElement; Object.assign(hostElem.style, { display: 'block', maxHeight: `${hostElem.clientHeight - firstItem.clientHeight}px`, overflow: 'auto', position: 'relative', }); Object.defineProperty(hostElem, 'scrollTop', { get: () => parentScrollTop, set: v => parentScrollTop = v, }); parentScrollTop = 0; }); it('when the `activeIndex` changes', () => { tocService.activeItemIndex.next(0); fixture.detectChanges(); expect(parentScrollTop).toBe(0); tocService.activeItemIndex.next(1); fixture.detectChanges(); expect(parentScrollTop).toBe(0); tocService.activeItemIndex.next(page.listItems.length - 1); fixture.detectChanges(); expect(parentScrollTop).toBeGreaterThan(0); }); it('when the `tocList` changes', () => { const tocList = tocComponent.tocList; tocComponent.tocList = []; fixture.detectChanges(); expect(parentScrollTop).toBe(0); tocService.activeItemIndex.next(tocList.length - 1); fixture.detectChanges(); expect(parentScrollTop).toBe(0); tocComponent.tocList = tocList; fixture.detectChanges(); expect(parentScrollTop).toBeGreaterThan(0); }); it('not after it has been destroyed', () => { const tocList = tocComponent.tocList; tocComponent.ngOnDestroy(); tocService.activeItemIndex.next(page.listItems.length - 1); fixture.detectChanges(); expect(parentScrollTop).toBe(0); tocComponent.tocList = []; fixture.detectChanges(); expect(parentScrollTop).toBe(0); tocComponent.tocList = tocList; fixture.detectChanges(); expect(parentScrollTop).toBe(0); }); }); }); }); }); //// helpers //// @Component({ selector: 'aio-embedded-host', template: '' }) class HostEmbeddedTocComponent {} @Component({ selector: 'aio-not-embedded-host', template: '' }) class HostNotEmbeddedTocComponent {} class TestScrollService { scrollToTop = jasmine.createSpy('scrollToTop'); } class TestTocService { tocList = new BehaviorSubject(getTestTocList()); activeItemIndex = new BehaviorSubject(null); setActiveIndex(index: number|null) { this.activeItemIndex.next(index); if (asap.schedule !== undefined) { asap.flush(); } } } function tocItem(title: string, level = 'h2', href = '', content = title) { return { title, href, level, content }; } function getTestTocList() { return [ tocItem('Title', 'h1', 'fizz/buzz#title', 'Title'), tocItem('Heading one', 'h2', 'fizz/buzz#heading-one-special-id', 'Heading one'), tocItem('H2 Two', 'h2', 'fizz/buzz#h2-two', 'H2 Two'), tocItem('H2 Three', 'h2', 'fizz/buzz#h2-three', 'H2 Three'), tocItem('H3 3a', 'h3', 'fizz/buzz#h3-3a', 'H3 3a'), tocItem('H3 3b', 'h3', 'fizz/buzz#h3-3b', 'H3 3b'), tocItem('H2 4', 'h2', 'fizz/buzz#h2-four', 'H2 four'), ]; } rxjs-7.5.7/docs_app/src/app/custom-elements/toc/toc.component.ts000066400000000000000000000105011431412030200247110ustar00rootroot00000000000000import { AfterViewInit, Component, ElementRef, OnDestroy, OnInit, QueryList, ViewChildren } from '@angular/core'; import { asapScheduler as asap, combineLatest, Subject } from 'rxjs'; import { startWith, subscribeOn, takeUntil } from 'rxjs/operators'; import { ScrollService } from 'app/shared/scroll.service'; import { TocItem, TocService } from 'app/shared/toc.service'; type TocType = 'None' | 'Floating' | 'EmbeddedSimple' | 'EmbeddedExpandable'; @Component({ selector: 'aio-toc', template: `
Contents
`, styles: [], }) export class TocComponent implements OnInit, AfterViewInit, OnDestroy { activeIndex: number | null = null; type: TocType = 'None'; isCollapsed = true; isEmbedded = false; @ViewChildren('tocItem') private items: QueryList; private onDestroy = new Subject(); primaryMax = 4; tocList: TocItem[]; constructor(private scrollService: ScrollService, elementRef: ElementRef, private tocService: TocService) { this.isEmbedded = elementRef.nativeElement.className.indexOf('embedded') !== -1; } ngOnInit() { this.tocService.tocList.pipe(takeUntil(this.onDestroy)).subscribe((tocList) => { this.tocList = tocList; const itemCount = count(this.tocList, (item) => item.level !== 'h1'); this.type = itemCount > 0 ? (this.isEmbedded ? (itemCount > this.primaryMax ? 'EmbeddedExpandable' : 'EmbeddedSimple') : 'Floating') : 'None'; }); } ngAfterViewInit() { if (!this.isEmbedded) { // We use the `asap` scheduler because updates to `activeItemIndex` are triggered by DOM changes, // which, in turn, are caused by the rendering that happened due to a ChangeDetection. // Without asap, we would be updating the model while still in a ChangeDetection handler, which is disallowed by Angular. combineLatest(this.tocService.activeItemIndex.pipe(subscribeOn(asap)), this.items.changes.pipe(startWith(this.items))) .pipe(takeUntil(this.onDestroy)) .subscribe(([index, items]) => { this.activeIndex = index; if (index === null || index >= items.length) { return; } const e = items.toArray()[index].nativeElement; const p = e.offsetParent; const eRect = e.getBoundingClientRect(); const pRect = p.getBoundingClientRect(); const isInViewport = eRect.top >= pRect.top && eRect.bottom <= pRect.bottom; if (!isInViewport) { p.scrollTop += eRect.top - pRect.top - p.clientHeight / 2; } }); } } ngOnDestroy() { this.onDestroy.next(null); } toggle(canScroll = true) { this.isCollapsed = !this.isCollapsed; if (canScroll && this.isCollapsed) { this.toTop(); } } toTop() { this.scrollService.scrollToTop(); } } function count(array: T[], fn: (item: T) => boolean) { return array.reduce((result, item) => (fn(item) ? result + 1 : result), 0); } rxjs-7.5.7/docs_app/src/app/custom-elements/toc/toc.module.ts000066400000000000000000000007341431412030200242030ustar00rootroot00000000000000import { NgModule, Type } from '@angular/core'; import { CommonModule } from '@angular/common'; import { MatIconModule } from '@angular/material/icon'; import { WithCustomElementComponent } from '../element-registry'; import { TocComponent } from './toc.component'; @NgModule({ imports: [ CommonModule, MatIconModule ], declarations: [ TocComponent ] }) export class TocModule implements WithCustomElementComponent { customElementComponent: Type = TocComponent; } rxjs-7.5.7/docs_app/src/app/documents/000077500000000000000000000000001431412030200176465ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/documents/document-contents.ts000066400000000000000000000002551431412030200236710ustar00rootroot00000000000000export interface DocumentContents { /** The unique identifier for this document */ id: string; /** The HTML to display in the doc viewer */ contents: string|null; } rxjs-7.5.7/docs_app/src/app/documents/document.service.spec.ts000066400000000000000000000175321431412030200244340ustar00rootroot00000000000000import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { TestBed } from '@angular/core/testing'; import { Subscription } from 'rxjs'; import { LocationService } from 'app/shared/location.service'; import { MockLocationService } from 'testing/location.service'; import { Logger } from 'app/shared/logger.service'; import { MockLogger } from 'testing/logger.service'; import { DocumentService, DocumentContents, FETCHING_ERROR_ID, FILE_NOT_FOUND_ID } from './document.service'; const CONTENT_URL_PREFIX = 'generated/docs/'; describe('DocumentService', () => { let httpMock: HttpTestingController; function createInjector(initialUrl: string) { return TestBed.configureTestingModule({ imports: [HttpClientTestingModule], providers: [ DocumentService, { provide: LocationService, useFactory: () => new MockLocationService(initialUrl) }, { provide: Logger, useClass: MockLogger }, ] }); } function getServices(initialUrl: string = '') { const injector = createInjector(initialUrl); httpMock = injector.get(HttpTestingController) as HttpTestingController; return { locationService: injector.get(LocationService) as MockLocationService, docService: injector.get(DocumentService) as DocumentService, logger: injector.get(Logger) as MockLogger }; } afterEach(() => httpMock.verify()); describe('currentDocument', () => { it('should fetch a document for the initial location', () => { const { docService } = getServices('initial/doc'); docService.currentDocument.subscribe(); httpMock.expectOne(CONTENT_URL_PREFIX + 'initial/doc.json'); }); it('should emit a document each time the location changes', () => { let latestDocument: DocumentContents|undefined; const doc0 = { contents: 'doc 0', id: 'initial/doc' }; const doc1 = { contents: 'doc 1', id: 'new/doc' }; const { docService, locationService } = getServices('initial/doc'); docService.currentDocument.subscribe(doc => latestDocument = doc); expect(latestDocument).toBeUndefined(); httpMock.expectOne({}).flush(doc0); expect(latestDocument).toEqual(doc0); locationService.go('new/doc'); httpMock.expectOne({}).flush(doc1); expect(latestDocument).toEqual(doc1); }); it('should emit the not-found document if the document is not found on the server', () => { let currentDocument: DocumentContents|undefined; const notFoundDoc = { id: FILE_NOT_FOUND_ID, contents: '

Page Not Found

' }; const { docService, logger } = getServices('missing/doc'); docService.currentDocument.subscribe(doc => currentDocument = doc); // Initial request return 404. httpMock.expectOne({}).flush(null, {status: 404, statusText: 'NOT FOUND'}); expect(logger.output.error).toEqual([ [jasmine.any(Error)] ]); expect(logger.output.error[0][0].message).toEqual(`Document file not found at 'missing/doc'`); // Subsequent request for not-found document. logger.output.error = []; httpMock.expectOne(CONTENT_URL_PREFIX + 'file-not-found.json').flush(notFoundDoc); expect(logger.output.error).toEqual([]); // does not report repeated errors expect(currentDocument).toEqual(notFoundDoc); }); it('should emit a hard-coded not-found document if the not-found document is not found on the server', () => { let currentDocument: DocumentContents|undefined; const hardCodedNotFoundDoc = { contents: 'Document not found', id: FILE_NOT_FOUND_ID }; const nextDoc = { contents: 'Next Doc', id: 'new/doc' }; const { docService, locationService } = getServices(FILE_NOT_FOUND_ID); docService.currentDocument.subscribe(doc => currentDocument = doc); httpMock.expectOne({}).flush(null, { status: 404, statusText: 'NOT FOUND'}); expect(currentDocument).toEqual(hardCodedNotFoundDoc); // now check that we haven't killed the currentDocument observable sequence locationService.go('new/doc'); httpMock.expectOne({}).flush(nextDoc); expect(currentDocument).toEqual(nextDoc); }); it('should use a hard-coded error doc if the request fails (but not cache it)', () => { let latestDocument!: DocumentContents; const doc1 = { contents: 'doc 1' } as DocumentContents; const doc2 = { contents: 'doc 2' } as DocumentContents; const { docService, locationService, logger } = getServices('initial/doc'); docService.currentDocument.subscribe(doc => latestDocument = doc); httpMock.expectOne({}).flush(null, {status: 500, statusText: 'Server Error'}); expect(latestDocument.id).toEqual(FETCHING_ERROR_ID); expect(logger.output.error).toEqual([ [jasmine.any(Error)] ]); expect(logger.output.error[0][0].message) .toEqual(`Error fetching document 'initial/doc': (Http failure response for generated/docs/initial/doc.json: 500 Server Error)`); locationService.go('new/doc'); httpMock.expectOne({}).flush(doc1); expect(latestDocument).toEqual(jasmine.objectContaining(doc1)); locationService.go('initial/doc'); httpMock.expectOne({}).flush(doc2); expect(latestDocument).toEqual(jasmine.objectContaining(doc2)); }); it('should not crash the app if the response is invalid JSON', () => { let latestDocument!: DocumentContents; const doc1 = { contents: 'doc 1' } as DocumentContents; const { docService, locationService } = getServices('initial/doc'); docService.currentDocument.subscribe(doc => latestDocument = doc); httpMock.expectOne({}).flush('this is invalid JSON'); expect(latestDocument.id).toEqual(FETCHING_ERROR_ID); locationService.go('new/doc'); httpMock.expectOne({}).flush(doc1); expect(latestDocument).toEqual(jasmine.objectContaining(doc1)); }); it('should not make a request to the server if the doc is in the cache already', () => { let latestDocument!: DocumentContents; let subscription: Subscription; const doc0 = { contents: 'doc 0' } as DocumentContents; const doc1 = { contents: 'doc 1' } as DocumentContents; const { docService, locationService } = getServices('url/0'); subscription = docService.currentDocument.subscribe(doc => latestDocument = doc); httpMock.expectOne({}).flush(doc0); expect(latestDocument).toEqual(jasmine.objectContaining(doc0)); subscription.unsubscribe(); subscription = docService.currentDocument.subscribe(doc => latestDocument = doc); locationService.go('url/1'); httpMock.expectOne({}).flush(doc1); expect(latestDocument).toEqual(jasmine.objectContaining(doc1)); subscription.unsubscribe(); // This should not trigger a new request. subscription = docService.currentDocument.subscribe(doc => latestDocument = doc); locationService.go('url/0'); httpMock.expectNone({}); expect(latestDocument).toEqual(jasmine.objectContaining(doc0)); subscription.unsubscribe(); // This should not trigger a new request. subscription = docService.currentDocument.subscribe(doc => latestDocument = doc); locationService.go('url/1'); httpMock.expectNone({}); expect(latestDocument).toEqual(jasmine.objectContaining(doc1)); subscription.unsubscribe(); }); }); describe('computeMap', () => { it('should map the "empty" location to the correct document request', () => { const { docService } = getServices(); docService.currentDocument.subscribe(); httpMock.expectOne(CONTENT_URL_PREFIX + 'index.json'); }); it('should map the "folder" locations to the correct document request', () => { const { docService } = getServices('guide'); docService.currentDocument.subscribe(); httpMock.expectOne(CONTENT_URL_PREFIX + 'guide.json'); }); }); }); rxjs-7.5.7/docs_app/src/app/documents/document.service.ts000066400000000000000000000064131431412030200234770ustar00rootroot00000000000000import { Injectable } from '@angular/core'; import { HttpClient, HttpErrorResponse } from '@angular/common/http'; import { AsyncSubject, Observable, of } from 'rxjs'; import { catchError, switchMap, tap } from 'rxjs/operators'; import { DocumentContents } from './document-contents'; export { DocumentContents } from './document-contents'; import { LocationService } from 'app/shared/location.service'; import { Logger } from 'app/shared/logger.service'; export const FILE_NOT_FOUND_ID = 'file-not-found'; export const FETCHING_ERROR_ID = 'fetching-error'; export const CONTENT_URL_PREFIX = 'generated/'; export const DOC_CONTENT_URL_PREFIX = CONTENT_URL_PREFIX + 'docs/'; const FETCHING_ERROR_CONTENTS = (path: string) => `
error_outline

Request for document failed.

We are unable to retrieve the "${path}" page at this time. Please check your connection and try again later.

`; @Injectable() export class DocumentService { private cache = new Map>(); currentDocument: Observable; constructor( private logger: Logger, private http: HttpClient, location: LocationService) { // Whenever the URL changes we try to get the appropriate doc this.currentDocument = location.currentPath.pipe(switchMap(path => this.getDocument(path))); } private getDocument(url: string) { const id = url || 'index'; this.logger.log('getting document', id); if (!this.cache.has(id)) { this.cache.set(id, this.fetchDocument(id)); } return this.cache.get(id)!; } private fetchDocument(id: string): Observable { const requestPath = `${DOC_CONTENT_URL_PREFIX}${id}.json`; const subject = new AsyncSubject(); this.logger.log('fetching document from', requestPath); this.http .get(requestPath, {responseType: 'json'}) .pipe( tap(data => { if (!data || typeof data !== 'object') { this.logger.log('received invalid data:', data); throw Error('Invalid data'); } }), catchError((error: HttpErrorResponse) => { return error.status === 404 ? this.getFileNotFoundDoc(id) : this.getErrorDoc(id, error); }), ) .subscribe(subject); return subject.asObservable(); } private getFileNotFoundDoc(id: string): Observable { if (id !== FILE_NOT_FOUND_ID) { this.logger.error(new Error(`Document file not found at '${id}'`)); // using `getDocument` means that we can fetch the 404 doc contents from the server and cache it return this.getDocument(FILE_NOT_FOUND_ID); } else { return of({ id: FILE_NOT_FOUND_ID, contents: 'Document not found' }); } } private getErrorDoc(id: string, error: HttpErrorResponse): Observable { this.logger.error(new Error(`Error fetching document '${id}': (${error.message})`)); this.cache.delete(id); return of({ id: FETCHING_ERROR_ID, contents: FETCHING_ERROR_CONTENTS(id), }); } } rxjs-7.5.7/docs_app/src/app/layout/000077500000000000000000000000001431412030200171625ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/layout/doc-viewer/000077500000000000000000000000001431412030200212265ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/layout/doc-viewer/doc-viewer.component.spec.ts000066400000000000000000000730741431412030200266070ustar00rootroot00000000000000import { ComponentFixture, TestBed } from '@angular/core/testing'; import { Meta, Title } from '@angular/platform-browser'; import { Observable, asapScheduler, of } from 'rxjs'; import { FILE_NOT_FOUND_ID, FETCHING_ERROR_ID } from 'app/documents/document.service'; import { Logger } from 'app/shared/logger.service'; import { CustomElementsModule } from 'app/custom-elements/custom-elements.module'; import { TocService } from 'app/shared/toc.service'; import { ElementsLoader } from 'app/custom-elements/elements-loader'; import { MockTitle, MockTocService, ObservableWithSubscriptionSpies, TestDocViewerComponent, TestModule, TestParentComponent, MockElementsLoader } from 'testing/doc-viewer-utils'; import { MockLogger } from 'testing/logger.service'; import { DocViewerComponent, NO_ANIMATIONS } from './doc-viewer.component'; describe('DocViewerComponent', () => { let parentFixture: ComponentFixture; let parentComponent: TestParentComponent; let docViewerEl: HTMLElement; let docViewer: TestDocViewerComponent; let metaServiceMock: jasmine.SpyObj const safeFlushAsapScheduler = () => asapScheduler.actions.length && asapScheduler.flush(); beforeEach(() => { metaServiceMock = jasmine.createSpyObj(['updateTag', 'addTag', 'removeTag']); TestBed.configureTestingModule({ imports: [CustomElementsModule, TestModule], providers: [{provide: Meta, useValue: metaServiceMock}] }); parentFixture = TestBed.createComponent(TestParentComponent); parentComponent = parentFixture.componentInstance; parentFixture.detectChanges(); docViewerEl = parentFixture.debugElement.children[0].nativeElement; docViewer = parentComponent.docViewer as any; }); it('should create a `DocViewer`', () => { expect(docViewer).toEqual(jasmine.any(DocViewerComponent)); }); describe('#doc', () => { let renderSpy: jasmine.Spy; const setCurrentDoc = (newDoc: TestParentComponent['currentDoc']) => { parentComponent.currentDoc = newDoc; // set default with id if parameter is not defined parentFixture.detectChanges(); // Run change detection to propagate the new doc to `DocViewer`. safeFlushAsapScheduler(); // Flush `asapScheduler` to trigger `DocViewer#render()`. }; beforeEach(() => renderSpy = spyOn(docViewer, 'render').and.callFake(() => of(undefined))); it('should render the new document', () => { setCurrentDoc({contents: 'foo', id: 'bar'}); expect(renderSpy).toHaveBeenCalledTimes(1); expect(renderSpy.calls.mostRecent().args).toEqual([{id: 'bar', contents: 'foo'}]); setCurrentDoc({contents: null, id: 'baz'}); expect(renderSpy).toHaveBeenCalledTimes(2); expect(renderSpy.calls.mostRecent().args).toEqual([{id: 'baz', contents: null}]); }); it('should unsubscribe from the previous "render" observable upon new document', () => { const obs = new ObservableWithSubscriptionSpies(); renderSpy.and.returnValue(obs); setCurrentDoc({contents: 'foo', id: 'bar'}); expect(obs.subscribeSpy).toHaveBeenCalledTimes(1); expect(obs.unsubscribeSpies[0]).not.toHaveBeenCalled(); setCurrentDoc({contents: 'baz', id: 'qux'}); expect(obs.subscribeSpy).toHaveBeenCalledTimes(2); expect(obs.unsubscribeSpies[0]).toHaveBeenCalledTimes(1); }); it('should ignore falsy document values', () => { setCurrentDoc(null); expect(renderSpy).not.toHaveBeenCalled(); setCurrentDoc(undefined); expect(renderSpy).not.toHaveBeenCalled(); }); }); describe('#ngOnDestroy()', () => { it('should stop responding to document changes', () => { const renderSpy = spyOn(docViewer, 'render').and.callFake(() => of(undefined)); expect(renderSpy).not.toHaveBeenCalled(); docViewer.doc = {contents: 'Some content', id: 'some-id'}; safeFlushAsapScheduler(); expect(renderSpy).toHaveBeenCalledTimes(1); docViewer.ngOnDestroy(); docViewer.doc = {contents: 'Other content', id: 'other-id'}; safeFlushAsapScheduler(); expect(renderSpy).toHaveBeenCalledTimes(1); docViewer.doc = {contents: 'More content', id: 'more-id'}; safeFlushAsapScheduler(); expect(renderSpy).toHaveBeenCalledTimes(1); }); }); describe('#prepareTitleAndToc()', () => { const EMPTY_DOC = ''; const DOC_WITHOUT_H1 = 'Some content'; const DOC_WITH_H1 = '

Features

Some content'; const DOC_WITH_NO_TOC_H1 = '

Features

Some content'; const DOC_WITH_EMBEDDED_TOC = '

Features

Some content'; const DOC_WITH_EMBEDDED_TOC_WITHOUT_H1 = 'Some content'; const DOC_WITH_EMBEDDED_TOC_WITH_NO_TOC_H1 = 'Some content'; const DOC_WITH_HIDDEN_H1_CONTENT = '

linkFeatures

Some content'; let titleService: MockTitle; let tocService: MockTocService; let targetEl: HTMLElement; const getTocEl = () => targetEl.querySelector('aio-toc'); const doPrepareTitleAndToc = (contents: string, docId = '') => { targetEl.innerHTML = contents; return docViewer.prepareTitleAndToc(targetEl, docId); }; const doAddTitleAndToc = (contents: string, docId = '') => { const addTitleAndToc = doPrepareTitleAndToc(contents, docId); return addTitleAndToc(); }; beforeEach(() => { titleService = TestBed.inject(Title) as unknown as MockTitle; tocService = TestBed.inject(TocService) as unknown as MockTocService; targetEl = document.createElement('div'); document.body.appendChild(targetEl); // Required for `innerText` to work as expected. }); afterEach(() => document.body.removeChild(targetEl)); it('should return a function for doing the actual work', () => { const addTitleAndToc = doPrepareTitleAndToc(DOC_WITH_H1); expect(getTocEl()).toBeTruthy(); expect(titleService.setTitle).not.toHaveBeenCalled(); expect(tocService.reset).not.toHaveBeenCalled(); expect(tocService.genToc).not.toHaveBeenCalled(); addTitleAndToc(); expect(titleService.setTitle).toHaveBeenCalledTimes(1); expect(tocService.reset).toHaveBeenCalledTimes(1); expect(tocService.genToc).toHaveBeenCalledTimes(1); }); describe('(title)', () => { it('should set the title if there is an `

` heading', () => { doAddTitleAndToc(DOC_WITH_H1); expect(titleService.setTitle).toHaveBeenCalledWith('RxJS - Features'); }); it('should set the title if there is a `.no-toc` `

` heading', () => { doAddTitleAndToc(DOC_WITH_NO_TOC_H1); expect(titleService.setTitle).toHaveBeenCalledWith('RxJS - Features'); }); it('should set the default title if there is no `

` heading', () => { doAddTitleAndToc(DOC_WITHOUT_H1); expect(titleService.setTitle).toHaveBeenCalledWith('RxJS'); doAddTitleAndToc(EMPTY_DOC); expect(titleService.setTitle).toHaveBeenCalledWith('RxJS'); }); it('should not include hidden content of the `

` heading in the title', () => { doAddTitleAndToc(DOC_WITH_HIDDEN_H1_CONTENT); expect(titleService.setTitle).toHaveBeenCalledWith('RxJS - Features'); }); it('should fall back to `textContent` if `innerText` is not available', () => { const querySelector = targetEl.querySelector; spyOn(targetEl, 'querySelector').and.callFake((selector: string) => { const elem = querySelector.call(targetEl, selector); return elem && Object.defineProperties(elem, { innerText: {value: undefined}, textContent: {value: 'Text Content'}, }); }); doAddTitleAndToc(DOC_WITH_HIDDEN_H1_CONTENT); expect(titleService.setTitle).toHaveBeenCalledWith('RxJS - Text Content'); }); it('should still use `innerText` if available but empty', () => { const querySelector = targetEl.querySelector; spyOn(targetEl, 'querySelector').and.callFake((selector: string) => { const elem = querySelector.call(targetEl, selector); return elem && Object.defineProperties(elem, { innerText: { value: '' }, textContent: { value: 'Text Content' } }); }); doAddTitleAndToc(DOC_WITH_HIDDEN_H1_CONTENT); expect(titleService.setTitle).toHaveBeenCalledWith('RxJS'); }); }); describe('(ToC)', () => { describe('needed', () => { it('should add an embedded ToC element if there is an `

` heading', () => { doPrepareTitleAndToc(DOC_WITH_H1); const tocEl = getTocEl()!; expect(tocEl).toBeTruthy(); expect(tocEl.classList.contains('embedded')).toBe(true); }); it('should not add a second ToC element if there a hard coded one in place', () => { doPrepareTitleAndToc(DOC_WITH_EMBEDDED_TOC); expect(targetEl.querySelectorAll('aio-toc').length).toEqual(1); }); }); describe('not needed', () => { it('should not add a ToC element if there is a `.no-toc` `

` heading', () => { doPrepareTitleAndToc(DOC_WITH_NO_TOC_H1); expect(getTocEl()).toBeFalsy(); }); it('should not add a ToC element if there is no `

` heading', () => { doPrepareTitleAndToc(DOC_WITHOUT_H1); expect(getTocEl()).toBeFalsy(); doPrepareTitleAndToc(EMPTY_DOC); expect(getTocEl()).toBeFalsy(); }); it('should remove ToC a hard coded one', () => { doPrepareTitleAndToc(DOC_WITH_EMBEDDED_TOC_WITHOUT_H1); expect(getTocEl()).toBeFalsy(); doPrepareTitleAndToc(DOC_WITH_EMBEDDED_TOC_WITH_NO_TOC_H1); expect(getTocEl()).toBeFalsy(); }); }); it('should generate ToC entries if there is an `

` heading', () => { doAddTitleAndToc(DOC_WITH_H1, 'foo'); expect(tocService.genToc).toHaveBeenCalledTimes(1); expect(tocService.genToc).toHaveBeenCalledWith(targetEl, 'foo'); }); it('should not generate ToC entries if there is a `.no-toc` `

` heading', () => { doAddTitleAndToc(DOC_WITH_NO_TOC_H1); expect(tocService.genToc).not.toHaveBeenCalled(); }); it('should not generate ToC entries if there is no `

` heading', () => { doAddTitleAndToc(DOC_WITHOUT_H1); doAddTitleAndToc(EMPTY_DOC); expect(tocService.genToc).not.toHaveBeenCalled(); }); it('should always reset the ToC (before generating the new one)', () => { doAddTitleAndToc(DOC_WITH_H1, 'foo'); expect(tocService.reset).toHaveBeenCalledTimes(1); expect(tocService.reset).toHaveBeenCalledBefore(tocService.genToc); expect(tocService.genToc).toHaveBeenCalledWith(targetEl, 'foo'); tocService.genToc.calls.reset(); doAddTitleAndToc(DOC_WITH_NO_TOC_H1, 'bar'); expect(tocService.reset).toHaveBeenCalledTimes(2); expect(tocService.genToc).not.toHaveBeenCalled(); doAddTitleAndToc(DOC_WITHOUT_H1, 'baz'); expect(tocService.reset).toHaveBeenCalledTimes(3); expect(tocService.genToc).not.toHaveBeenCalled(); doAddTitleAndToc(EMPTY_DOC, 'qux'); expect(tocService.reset).toHaveBeenCalledTimes(4); expect(tocService.genToc).not.toHaveBeenCalled(); }); }); }); describe('#render()', () => { let prepareTitleAndTocSpy: jasmine.Spy; let swapViewsSpy: jasmine.Spy; let loadElementsSpy: jasmine.Spy; const doRender = (contents: string | null, id = 'foo') => docViewer.render({contents, id}).toPromise(); beforeEach(() => { const elementsLoader = TestBed.inject(ElementsLoader) as Partial as MockElementsLoader; loadElementsSpy = elementsLoader.loadContainedCustomElements.and.callFake(() => of(undefined)); prepareTitleAndTocSpy = spyOn(docViewer, 'prepareTitleAndToc'); swapViewsSpy = spyOn(docViewer, 'swapViews').and.callFake(() => of(undefined)); }); it('should return an `Observable`', () => { expect(docViewer.render({contents: '', id: ''})).toEqual(jasmine.any(Observable)); }); describe('(contents, title, ToC)', () => { beforeEach(() => swapViewsSpy.and.callThrough()); it('should display the document contents', async () => { const contents = '

Hello,

world!
'; await doRender(contents); expect(docViewerEl.innerHTML).toContain(contents); expect(docViewerEl.textContent).toBe('Hello, world!'); }); it('should display nothing if the document has no contents', async () => { await doRender('Test'); expect(docViewerEl.textContent).toBe('Test'); await doRender(''); expect(docViewerEl.textContent).toBe(''); docViewer.currViewContainer.innerHTML = 'Test'; expect(docViewerEl.textContent).toBe('Test'); await doRender(null); expect(docViewerEl.textContent).toBe(''); }); it('should prepare the title and ToC (before embedding components)', async () => { prepareTitleAndTocSpy.and.callFake((targetEl: HTMLElement, docId: string) => { expect(targetEl.innerHTML).toBe('Some content'); expect(docId).toBe('foo'); }); await doRender('Some content', 'foo'); expect(prepareTitleAndTocSpy).toHaveBeenCalledTimes(1); expect(prepareTitleAndTocSpy).toHaveBeenCalledBefore(loadElementsSpy); }); it('should set the title and ToC (after the content has been set)', async () => { const addTitleAndTocSpy = jasmine.createSpy('addTitleAndToc'); prepareTitleAndTocSpy.and.returnValue(addTitleAndTocSpy); addTitleAndTocSpy.and.callFake(() => expect(docViewerEl.textContent).toBe('Foo content')); await doRender('Foo content'); expect(addTitleAndTocSpy).toHaveBeenCalledTimes(1); addTitleAndTocSpy.and.callFake(() => expect(docViewerEl.textContent).toBe('Bar content')); await doRender('Bar content'); expect(addTitleAndTocSpy).toHaveBeenCalledTimes(2); addTitleAndTocSpy.and.callFake(() => expect(docViewerEl.textContent).toBe('')); await doRender(''); expect(addTitleAndTocSpy).toHaveBeenCalledTimes(3); addTitleAndTocSpy.and.callFake(() => expect(docViewerEl.textContent).toBe('Qux content')); await doRender('Qux content'); expect(addTitleAndTocSpy).toHaveBeenCalledTimes(4); }); it('should remove the "noindex" meta tag if the document is valid', async () => { await doRender('foo', 'bar'); expect(TestBed.inject(Meta).removeTag).toHaveBeenCalledWith('name="robots"'); }); it('should add the "noindex" meta tag if the document is 404', async () => { await doRender('missing', FILE_NOT_FOUND_ID); expect(TestBed.inject(Meta).addTag).toHaveBeenCalledWith({ name: 'robots', content: 'noindex' }); }); it('should add a "noindex" meta tag if the document fetching fails', async () => { await doRender('error', FETCHING_ERROR_ID); expect(TestBed.inject(Meta).addTag).toHaveBeenCalledWith({ name: 'robots', content: 'noindex' }); }); }); describe('(embedding components)', () => { it('should embed components', async () => { await doRender('Some content'); expect(loadElementsSpy).toHaveBeenCalledTimes(1); expect(loadElementsSpy).toHaveBeenCalledWith(docViewer.nextViewContainer); }); it('should attempt to embed components even if the document is empty', async () => { await doRender(''); await doRender(null); expect(loadElementsSpy).toHaveBeenCalledTimes(2); expect(loadElementsSpy.calls.argsFor(0)).toEqual([docViewer.nextViewContainer]); expect(loadElementsSpy.calls.argsFor(1)).toEqual([docViewer.nextViewContainer]); }); it('should unsubscribe from the previous "embed" observable when unsubscribed from', () => { const obs = new ObservableWithSubscriptionSpies(); loadElementsSpy.and.returnValue(obs); const renderObservable = docViewer.render({contents: 'Some content', id: 'foo'}); const subscription = renderObservable.subscribe(); expect(obs.subscribeSpy).toHaveBeenCalledTimes(1); expect(obs.unsubscribeSpies[0]).not.toHaveBeenCalled(); subscription.unsubscribe(); expect(obs.subscribeSpy).toHaveBeenCalledTimes(1); expect(obs.unsubscribeSpies[0]).toHaveBeenCalledTimes(1); }); }); describe('(swapping views)', () => { it('should still swap the views if the document is empty', async () => { await doRender(''); expect(swapViewsSpy).toHaveBeenCalledTimes(1); await doRender(null); expect(swapViewsSpy).toHaveBeenCalledTimes(2); }); it('should pass the `addTitleAndToc` callback', async () => { const addTitleAndTocSpy = jasmine.createSpy('addTitleAndToc'); prepareTitleAndTocSpy.and.returnValue(addTitleAndTocSpy); await doRender('
'); expect(swapViewsSpy).toHaveBeenCalledWith(addTitleAndTocSpy); }); it('should unsubscribe from the previous "swap" observable when unsubscribed from', () => { const obs = new ObservableWithSubscriptionSpies(); swapViewsSpy.and.returnValue(obs); const renderObservable = docViewer.render({contents: 'Hello, world!', id: 'foo'}); const subscription = renderObservable.subscribe(); expect(obs.subscribeSpy).toHaveBeenCalledTimes(1); expect(obs.unsubscribeSpies[0]).not.toHaveBeenCalled(); subscription.unsubscribe(); expect(obs.subscribeSpy).toHaveBeenCalledTimes(1); expect(obs.unsubscribeSpies[0]).toHaveBeenCalledTimes(1); }); }); describe('(on error) should clean up, log the error and recover', () => { let logger: MockLogger; beforeEach(() => { logger = TestBed.inject(Logger) as unknown as MockLogger; }); it('when `prepareTitleAndTocSpy()` fails', async () => { const error = Error('Typical `prepareTitleAndToc()` error'); prepareTitleAndTocSpy.and.callFake(() => { expect(docViewer.nextViewContainer.innerHTML).not.toBe(''); throw error; }); await doRender('Some content', 'foo'); expect(prepareTitleAndTocSpy).toHaveBeenCalledTimes(1); expect(swapViewsSpy).not.toHaveBeenCalled(); expect(docViewer.nextViewContainer.innerHTML).toBe(''); expect(logger.output.error).toEqual([ [jasmine.any(Error)] ]); expect(logger.output.error[0][0].message).toEqual(`[DocViewer] Error preparing document 'foo': ${error.stack}`); expect(TestBed.inject(Meta).addTag).toHaveBeenCalledWith({ name: 'robots', content: 'noindex' }); }); it('when `EmbedComponentsService.embedInto()` fails', async () => { const error = Error('Typical `embedInto()` error'); loadElementsSpy.and.callFake(() => { expect(docViewer.nextViewContainer.innerHTML).not.toBe(''); throw error; }); await doRender('Some content', 'bar'); expect(prepareTitleAndTocSpy).toHaveBeenCalledTimes(1); expect(loadElementsSpy).toHaveBeenCalledTimes(1); expect(swapViewsSpy).not.toHaveBeenCalled(); expect(docViewer.nextViewContainer.innerHTML).toBe(''); expect(logger.output.error).toEqual([ [jasmine.any(Error)] ]); expect(TestBed.inject(Meta).addTag).toHaveBeenCalledWith({ name: 'robots', content: 'noindex' }); }); it('when `swapViews()` fails', async () => { const error = Error('Typical `swapViews()` error'); swapViewsSpy.and.callFake(() => { expect(docViewer.nextViewContainer.innerHTML).not.toBe(''); throw error; }); await doRender('Some content', 'qux'); expect(prepareTitleAndTocSpy).toHaveBeenCalledTimes(1); expect(swapViewsSpy).toHaveBeenCalledTimes(1); expect(docViewer.nextViewContainer.innerHTML).toBe(''); expect(logger.output.error).toEqual([ [jasmine.any(Error)] ]); expect(logger.output.error[0][0].message).toEqual(`[DocViewer] Error preparing document 'qux': ${error.stack}`); expect(TestBed.inject(Meta).addTag).toHaveBeenCalledWith({ name: 'robots', content: 'noindex' }); }); it('when something fails with non-Error', async () => { const error = 'Typical string error'; swapViewsSpy.and.callFake(() => { expect(docViewer.nextViewContainer.innerHTML).not.toBe(''); throw error; }); await doRender('Some content', 'qux'); expect(swapViewsSpy).toHaveBeenCalledTimes(1); expect(docViewer.nextViewContainer.innerHTML).toBe(''); expect(logger.output.error).toEqual([ [jasmine.any(Error)] ]); expect(logger.output.error[0][0].message).toEqual(`[DocViewer] Error preparing document 'qux': ${error}`); expect(TestBed.inject(Meta).addTag).toHaveBeenCalledWith({ name: 'robots', content: 'noindex' }); }); }); describe('(events)', () => { it('should emit `docReady` after loading elements', async () => { const onDocReadySpy = jasmine.createSpy('onDocReady'); docViewer.docReady.subscribe(onDocReadySpy); await doRender('Some content'); expect(onDocReadySpy).toHaveBeenCalledTimes(1); expect(loadElementsSpy).toHaveBeenCalledBefore(onDocReadySpy); }); it('should emit `docReady` before swapping views', async () => { const onDocReadySpy = jasmine.createSpy('onDocReady'); docViewer.docReady.subscribe(onDocReadySpy); await doRender('Some content'); expect(onDocReadySpy).toHaveBeenCalledTimes(1); expect(onDocReadySpy).toHaveBeenCalledBefore(swapViewsSpy); }); it('should emit `docRendered` after swapping views', async () => { const onDocRenderedSpy = jasmine.createSpy('onDocRendered'); docViewer.docRendered.subscribe(onDocRenderedSpy); await doRender('Some content'); expect(onDocRenderedSpy).toHaveBeenCalledTimes(1); expect(swapViewsSpy).toHaveBeenCalledBefore(onDocRenderedSpy); }); }); }); describe('#swapViews()', () => { let oldCurrViewContainer: HTMLElement; let oldNextViewContainer: HTMLElement; const doSwapViews = (cb?: () => void) => docViewer.swapViews(cb).toPromise(); beforeEach(() => { oldCurrViewContainer = docViewer.currViewContainer; oldNextViewContainer = docViewer.nextViewContainer; oldCurrViewContainer.innerHTML = 'Current view'; oldNextViewContainer.innerHTML = 'Next view'; docViewerEl.appendChild(oldCurrViewContainer); expect(docViewerEl.contains(oldCurrViewContainer)).toBe(true); expect(docViewerEl.contains(oldNextViewContainer)).toBe(false); }); [true, false].forEach(animationsEnabled => { describe(`(animationsEnabled: ${animationsEnabled})`, () => { beforeEach(() => DocViewerComponent.animationsEnabled = animationsEnabled); afterEach(() => DocViewerComponent.animationsEnabled = true); [true, false].forEach(noAnimations => { describe(`(.${NO_ANIMATIONS}: ${noAnimations})`, () => { beforeEach(() => docViewerEl.classList[noAnimations ? 'add' : 'remove'](NO_ANIMATIONS)); it('should return an observable', done => { docViewer.swapViews().subscribe(done, done.fail); }); it('should swap the views', async () => { await doSwapViews(); expect(docViewerEl.contains(oldCurrViewContainer)).toBe(false); expect(docViewerEl.contains(oldNextViewContainer)).toBe(true); expect(docViewer.currViewContainer).toBe(oldNextViewContainer); expect(docViewer.nextViewContainer).toBe(oldCurrViewContainer); await doSwapViews(); expect(docViewerEl.contains(oldCurrViewContainer)).toBe(true); expect(docViewerEl.contains(oldNextViewContainer)).toBe(false); expect(docViewer.currViewContainer).toBe(oldCurrViewContainer); expect(docViewer.nextViewContainer).toBe(oldNextViewContainer); }); it('should emit `docRemoved` after removing the leaving view', async () => { const onDocRemovedSpy = jasmine.createSpy('onDocRemoved').and.callFake(() => { expect(docViewerEl.contains(oldCurrViewContainer)).toBe(false); expect(docViewerEl.contains(oldNextViewContainer)).toBe(false); }); docViewer.docRemoved.subscribe(onDocRemovedSpy); expect(docViewerEl.contains(oldCurrViewContainer)).toBe(true); expect(docViewerEl.contains(oldNextViewContainer)).toBe(false); await doSwapViews(); expect(onDocRemovedSpy).toHaveBeenCalledTimes(1); expect(docViewerEl.contains(oldCurrViewContainer)).toBe(false); expect(docViewerEl.contains(oldNextViewContainer)).toBe(true); }); it('should not emit `docRemoved` if the leaving view is already removed', async () => { const onDocRemovedSpy = jasmine.createSpy('onDocRemoved'); docViewer.docRemoved.subscribe(onDocRemovedSpy); docViewerEl.removeChild(oldCurrViewContainer); await doSwapViews(); expect(onDocRemovedSpy).not.toHaveBeenCalled(); }); it('should emit `docInserted` after inserting the entering view', async () => { const onDocInsertedSpy = jasmine.createSpy('onDocInserted').and.callFake(() => { expect(docViewerEl.contains(oldCurrViewContainer)).toBe(false); expect(docViewerEl.contains(oldNextViewContainer)).toBe(true); }); docViewer.docInserted.subscribe(onDocInsertedSpy); expect(docViewerEl.contains(oldCurrViewContainer)).toBe(true); expect(docViewerEl.contains(oldNextViewContainer)).toBe(false); await doSwapViews(); expect(onDocInsertedSpy).toHaveBeenCalledTimes(1); expect(docViewerEl.contains(oldCurrViewContainer)).toBe(false); expect(docViewerEl.contains(oldNextViewContainer)).toBe(true); }); it('should call the callback after inserting the entering view', async () => { const onInsertedCb = jasmine.createSpy('onInsertedCb').and.callFake(() => { expect(docViewerEl.contains(oldCurrViewContainer)).toBe(false); expect(docViewerEl.contains(oldNextViewContainer)).toBe(true); }); const onDocInsertedSpy = jasmine.createSpy('onDocInserted'); docViewer.docInserted.subscribe(onDocInsertedSpy); expect(docViewerEl.contains(oldCurrViewContainer)).toBe(true); expect(docViewerEl.contains(oldNextViewContainer)).toBe(false); await doSwapViews(onInsertedCb); expect(onInsertedCb).toHaveBeenCalledTimes(1); expect(onInsertedCb).toHaveBeenCalledBefore(onDocInsertedSpy); expect(docViewerEl.contains(oldCurrViewContainer)).toBe(false); expect(docViewerEl.contains(oldNextViewContainer)).toBe(true); }); it('should empty the previous view', async () => { await doSwapViews(); expect(docViewer.currViewContainer.innerHTML).toBe('Next view'); expect(docViewer.nextViewContainer.innerHTML).toBe(''); docViewer.nextViewContainer.innerHTML = 'Next view 2'; await doSwapViews(); expect(docViewer.currViewContainer.innerHTML).toBe('Next view 2'); expect(docViewer.nextViewContainer.innerHTML).toBe(''); }); if (animationsEnabled && !noAnimations) { // Only test this when there are animations. Without animations, the views are swapped // synchronously, so there is no need (or way) to abort. it('should abort swapping if the returned observable is unsubscribed from', async () => { docViewer.swapViews().subscribe().unsubscribe(); await doSwapViews(); // Since the first call was cancelled, only one swapping should have taken place. expect(docViewerEl.contains(oldCurrViewContainer)).toBe(false); expect(docViewerEl.contains(oldNextViewContainer)).toBe(true); expect(docViewer.currViewContainer).toBe(oldNextViewContainer); expect(docViewer.nextViewContainer).toBe(oldCurrViewContainer); expect(docViewer.currViewContainer.innerHTML).toBe('Next view'); expect(docViewer.nextViewContainer.innerHTML).toBe(''); }); } else { it('should swap views synchronously when animations are disabled', () => { const cbSpy = jasmine.createSpy('cb'); docViewer.swapViews(cbSpy).subscribe(); expect(cbSpy).toHaveBeenCalledTimes(1); expect(docViewerEl.contains(oldCurrViewContainer)).toBe(false); expect(docViewerEl.contains(oldNextViewContainer)).toBe(true); expect(docViewer.currViewContainer).toBe(oldNextViewContainer); expect(docViewer.nextViewContainer).toBe(oldCurrViewContainer); expect(docViewer.currViewContainer.innerHTML).toBe('Next view'); expect(docViewer.nextViewContainer.innerHTML).toBe(''); }); } }); }); }); }); }); }); rxjs-7.5.7/docs_app/src/app/layout/doc-viewer/doc-viewer.component.ts000066400000000000000000000252501431412030200256470ustar00rootroot00000000000000import { Component, ElementRef, EventEmitter, Input, OnDestroy, Output } from '@angular/core'; import { Title, Meta } from '@angular/platform-browser'; import { asapScheduler, Observable, of, timer } from 'rxjs'; import { catchError, observeOn, switchMap, takeUntil, tap } from 'rxjs/operators'; import { DocumentContents, FILE_NOT_FOUND_ID, FETCHING_ERROR_ID } from 'app/documents/document.service'; import { Logger } from 'app/shared/logger.service'; import { TocService } from 'app/shared/toc.service'; import { ElementsLoader } from 'app/custom-elements/elements-loader'; // Constants export const NO_ANIMATIONS = 'no-animations'; // Initialization prevents flicker once pre-rendering is on const initialDocViewerElement = document.querySelector('aio-doc-viewer'); const initialDocViewerContent = initialDocViewerElement ? initialDocViewerElement.innerHTML : ''; @Component({ selector: 'aio-doc-viewer', template: '' // TODO(robwormald): shadow DOM and emulated don't work here (?!) // encapsulation: ViewEncapsulation.Native }) export class DocViewerComponent implements OnDestroy { // Enable/Disable view transition animations. static animationsEnabled = true; private hostElement: HTMLElement; private void$ = of(undefined); private onDestroy$ = new EventEmitter(); private docContents$ = new EventEmitter(); protected currViewContainer: HTMLElement = document.createElement('div'); protected nextViewContainer: HTMLElement = document.createElement('div'); @Input() set doc(newDoc: DocumentContents) { // Ignore `undefined` values that could happen if the host component // does not initially specify a value for the `doc` input. if (newDoc) { this.docContents$.emit(newDoc); } } // The new document is ready to be inserted into the viewer. // (Embedded components have been loaded and instantiated, if necessary.) @Output() docReady = new EventEmitter(); // The previous document has been removed from the viewer. // (The leaving animation (if any) has been completed and the node has been removed from the DOM.) @Output() docRemoved = new EventEmitter(); // The new document has been inserted into the viewer. // (The node has been inserted into the DOM, but the entering animation may still be in progress.) @Output() docInserted = new EventEmitter(); // The new document has been fully rendered into the viewer. // (The entering animation has been completed.) @Output() docRendered = new EventEmitter(); constructor( elementRef: ElementRef, private logger: Logger, private titleService: Title, private metaService: Meta, private tocService: TocService, private elementsLoader: ElementsLoader) { this.hostElement = elementRef.nativeElement; // Security: the initialDocViewerContent comes from the prerendered DOM and is considered to be secure this.hostElement.innerHTML = initialDocViewerContent; if (this.hostElement.firstElementChild) { this.currViewContainer = this.hostElement.firstElementChild as HTMLElement; } this.docContents$ .pipe( observeOn(asapScheduler), switchMap(newDoc => this.render(newDoc)), takeUntil(this.onDestroy$), ) .subscribe(); } ngOnDestroy() { this.onDestroy$.emit(); } /** * Prepare for setting the window title and ToC. * Return a function to actually set them. */ protected prepareTitleAndToc(targetElem: HTMLElement, docId: string): () => void { const descriptionEl = targetElem.querySelector('.api-body > p:nth-child(2)'); const titleEl = targetElem.querySelector('h1'); const needsToc = !!titleEl && !/no-?toc/i.test(titleEl.className); const embeddedToc = targetElem.querySelector('aio-toc.embedded'); if (needsToc && !embeddedToc) { // Add an embedded ToC if it's needed and there isn't one in the content already. titleEl!.insertAdjacentHTML('afterend', ''); } else if (!needsToc && embeddedToc) { // Remove the embedded Toc if it's there and not needed. embeddedToc.remove(); } return () => { this.tocService.reset(); let title: string|null = ''; let description: string|null = ''; // Only create ToC for docs with an `

` heading. // If you don't want a ToC, add "no-toc" class to `

`. if (titleEl) { title = (typeof titleEl.innerText === 'string') ? titleEl.innerText : titleEl.textContent; if (needsToc) { this.tocService.genToc(targetElem, docId); } } if (descriptionEl) { description = descriptionEl.innerHTML; } const formattedTitle = title ? `RxJS - ${title}` : 'RxJS'; this.addDocumentMetaTags(formattedTitle, description); this.titleService.setTitle(formattedTitle); }; } /** * Add doc content to host element and build it out with embedded components. */ protected render(doc: DocumentContents): Observable { let addTitleAndToc: () => void; this.setNoIndex(doc.id === FILE_NOT_FOUND_ID || doc.id === FETCHING_ERROR_ID); return this.void$.pipe( // Security: `doc.contents` is always authored by the documentation team // and is considered to be safe. tap(() => this.nextViewContainer.innerHTML = doc.contents || ''), tap(() => addTitleAndToc = this.prepareTitleAndToc(this.nextViewContainer, doc.id)), switchMap(() => this.elementsLoader.loadContainedCustomElements(this.nextViewContainer)), tap(() => this.docReady.emit()), switchMap(() => this.swapViews(addTitleAndToc)), tap(() => this.docRendered.emit()), catchError(err => { const errorMessage = (err instanceof Error) ? err.stack : err; this.logger.error(new Error(`[DocViewer] Error preparing document '${doc.id}': ${errorMessage}`)); this.nextViewContainer.innerHTML = ''; this.setNoIndex(true); return this.void$; }), ); } /** * Tell search engine crawlers whether to index this page */ private setNoIndex(val: boolean) { if (val) { this.metaService.addTag({ name: 'robots', content: 'noindex' }); } else { this.metaService.removeTag('name="robots"'); } } /** * Swap the views, removing `currViewContainer` and inserting `nextViewContainer`. * (At this point all content should be ready, including having loaded and instantiated embedded * components.) * * Optionally, run a callback as soon as `nextViewContainer` has been inserted, but before the * entering animation has been completed. This is useful for work that needs to be done as soon as * the element has been attached to the DOM. */ protected swapViews(onInsertedCb = () => {}): Observable { const raf$ = new Observable(subscriber => { const rafId = requestAnimationFrame(() => { subscriber.next(); subscriber.complete(); }); return () => cancelAnimationFrame(rafId); }); // Get the actual transition duration (taking global styles into account). // According to the [CSSOM spec](https://drafts.csswg.org/cssom/#serializing-css-values), // `time` values should be returned in seconds. const getActualDuration = (elem: HTMLElement) => { const cssValue = getComputedStyle(elem).transitionDuration || ''; const seconds = Number(cssValue.replace(/s$/, '')); return 1000 * seconds; }; const animateProp = (elem: HTMLElement, prop: keyof CSSStyleDeclaration, from: string, to: string, duration = 200) => { const animationsDisabled = !DocViewerComponent.animationsEnabled || this.hostElement.classList.contains(NO_ANIMATIONS); if (prop === 'length' || prop === 'parentRule') { // We cannot animate length or parentRule properties because they are readonly return this.void$; } elem.style.transition = ''; return animationsDisabled ? this.void$.pipe(tap(() => elem.style[`${prop}`] = to)) : this.void$.pipe( // In order to ensure that the `from` value will be applied immediately (i.e. // without transition) and that the `to` value will be affected by the // `transition` style, we need to ensure an animation frame has passed between // setting each style. switchMap(() => raf$), tap(() => elem.style[`${prop}`] = from), switchMap(() => raf$), tap(() => elem.style.transition = `all ${duration}ms ease-in-out`), switchMap(() => raf$), tap(() => elem.style[`${prop}`] = to), switchMap(() => timer(getActualDuration(elem))), switchMap(() => this.void$), ); }; const animateLeave = (elem: HTMLElement) => animateProp(elem, 'opacity', '1', '0.1'); const animateEnter = (elem: HTMLElement) => animateProp(elem, 'opacity', '0.1', '1'); let done$ = this.void$; if (this.currViewContainer.parentElement) { done$ = done$.pipe( // Remove the current view from the viewer. switchMap(() => animateLeave(this.currViewContainer)), tap(() => this.currViewContainer.parentElement!.removeChild(this.currViewContainer)), tap(() => this.docRemoved.emit()), ); } return done$.pipe( // Insert the next view into the viewer. tap(() => this.hostElement.appendChild(this.nextViewContainer)), tap(() => onInsertedCb()), tap(() => this.docInserted.emit()), switchMap(() => animateEnter(this.nextViewContainer)), // Update the view references and clean up unused nodes. tap(() => { const prevViewContainer = this.currViewContainer; this.currViewContainer = this.nextViewContainer; this.nextViewContainer = prevViewContainer; this.nextViewContainer.innerHTML = ''; // Empty to release memory. }), ); } private addDocumentMetaTags(title: string, description: string | null): void { this.metaService.updateTag({ name: 'twitter:title', content: title }); this.metaService.updateTag({ name: 'twitter:card', content: 'summary' }); this.metaService.updateTag({ property: 'og:title', content: title }); this.metaService.updateTag({ property: 'og:type', content: 'article' }); if (description) { const formattedDescription = description.replace(/<\/?\w*>/gm, ''); this.metaService.updateTag({ name: 'twitter:description', content: formattedDescription}); this.metaService.updateTag({ property: 'og:description', content: formattedDescription }); } } } rxjs-7.5.7/docs_app/src/app/layout/doc-viewer/dt.component.ts000066400000000000000000000013751431412030200242140ustar00rootroot00000000000000import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core'; import { DocumentContents } from 'app/documents/document.service'; @Component({ selector: 'aio-dt', template: `


` }) export class DtComponent { @Input() on = false; @Input() doc: DocumentContents; @Output() docChange = new EventEmitter(); @ViewChild('dt', { read: ElementRef }) dt: ElementRef; get text() { return this.doc && this.doc.contents; } dtextSet() { this.doc.contents = this.dt.nativeElement.value; this.docChange.emit({ ...this.doc }); } } rxjs-7.5.7/docs_app/src/app/layout/footer/000077500000000000000000000000001431412030200204605ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/layout/footer/footer.component.ts000066400000000000000000000010641431412030200243300ustar00rootroot00000000000000import { Component, Input } from '@angular/core'; import { NavigationNode, VersionInfo } from 'app/navigation/navigation.service'; @Component({ selector: 'aio-footer', template: `

Code licensed under an Apache-2.0 License. Documentation licensed under CC BY 4.0.

Version {{ versionInfo?.full }}.

`, }) export class FooterComponent { @Input() nodes: NavigationNode[]; @Input() versionInfo: VersionInfo; } rxjs-7.5.7/docs_app/src/app/layout/mode-banner/000077500000000000000000000000001431412030200213515ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/layout/mode-banner/mode-banner.component.ts000066400000000000000000000010431431412030200261070ustar00rootroot00000000000000import { Component, Input } from '@angular/core'; import { VersionInfo } from 'app/navigation/navigation.service'; @Component({ selector: 'aio-mode-banner', template: `
This is the archived documentation for Angular v{{version?.major}}. Please visit angular.io to see documentation for the current version of Angular.
` }) export class ModeBannerComponent { @Input() mode: string; @Input() version: VersionInfo; } rxjs-7.5.7/docs_app/src/app/layout/nav-item/000077500000000000000000000000001431412030200207025ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/layout/nav-item/nav-item.component.spec.ts000066400000000000000000000163771431412030200257420ustar00rootroot00000000000000import { ComponentFixture, TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { NO_ERRORS_SCHEMA } from '@angular/core'; import { NavItemComponent } from './nav-item.component'; import { NavigationNode } from 'app/navigation/navigation.model'; describe('NavItemComponent', () => { // Testing the component class behaviors, independent of its template // No dependencies. Just new it and test :) // Let e2e tests verify how it displays. describe('(class-only)', () => { let component: NavItemComponent; let selectedNodes: NavigationNode[]; let setClassesSpy: jasmine.Spy; function initialize(nd: NavigationNode) { component.node = nd; onChanges(); // Angular calls when initializing the component } // Enough to triggers component's ngOnChange method function onChanges() { component.ngOnChanges(); } beforeEach(() => { component = new NavItemComponent(); setClassesSpy = spyOn(component, 'setClasses').and.callThrough(); // Selected nodes is the selected node and its header ancestors selectedNodes = [ { title: 'a' }, // selected node: an item or a header { title: 'parent' }, // selected node's header parent { title: 'grandparent' }, // selected node's header grandparent ]; component.selectedNodes = selectedNodes; }); describe('should have expected classes when initialized', () => { it('with selected node', () => { initialize(selectedNodes[0]); expect(component.classes).toEqual( // selected node should be expanded even if is a header. { 'level-1': true, collapsed: false, expanded: true, selected: true } ); }); it('with selected node ancestor', () => { initialize(selectedNodes[1]); expect(component.classes).toEqual( // ancestor is a header and should be expanded { 'level-1': true, collapsed: false, expanded: true, selected: true } ); }); it('with other than a selected node or ancestor', () => { initialize({ title: 'x' }); expect(component.classes).toEqual( { 'level-1': true, collapsed: true, expanded: false, selected: false } ); }); }); describe('when becomes a non-selected node', () => { // this node won't be the selected node when ngOnChanges() called beforeEach(() => component.node = { title: 'x' }); it('should de-select if previously selected', () => { component.isSelected = true; onChanges(); expect(component.isSelected).toBe(false, 'becomes de-selected'); }); it('should collapse if previously expanded in narrow mode', () => { component.isWide = false; component.isExpanded = true; onChanges(); expect(component.isExpanded).toBe(false, 'becomes collapsed'); }); it('should remain expanded in wide mode', () => { component.isWide = true; component.isExpanded = true; onChanges(); expect(component.isExpanded).toBe(true, 'remains expanded'); }); }); describe('when becomes a selected node', () => { // this node will be the selected node when ngOnChanges() called beforeEach(() => component.node = selectedNodes[0]); it('should select when previously not selected', () => { component.isSelected = false; onChanges(); expect(component.isSelected).toBe(true, 'becomes selected'); }); it('should expand the current node or keep it expanded', () => { component.isExpanded = false; onChanges(); expect(component.isExpanded).toBe(true, 'becomes true'); component.isExpanded = true; onChanges(); expect(component.isExpanded).toBe(true, 'remains true'); }); }); describe('when becomes a selected ancestor node', () => { // this node will be a selected node ancestor header when ngOnChanges() called beforeEach(() => component.node = selectedNodes[2]); it('should select when previously not selected', () => { component.isSelected = false; onChanges(); expect(component.isSelected).toBe(true, 'becomes selected'); }); it('should always expand this header', () => { component.isExpanded = false; onChanges(); expect(component.isExpanded).toBe(true, 'becomes expanded'); component.isExpanded = false; onChanges(); expect(component.isExpanded).toBe(true, 'stays expanded'); }); }); describe('when headerClicked()', () => { // current node doesn't matter in these tests. it('should expand when headerClicked() and previously collapsed', () => { component.isExpanded = false; component.headerClicked(); expect(component.isExpanded).toBe(true, 'should be expanded'); }); it('should collapse when headerClicked() and previously expanded', () => { component.isExpanded = true; component.headerClicked(); expect(component.isExpanded).toBe(false, 'should be collapsed'); }); it('should not change isSelected when headerClicked()', () => { component.isSelected = true; component.headerClicked(); expect(component.isSelected).toBe(true, 'remains selected'); component.isSelected = false; component.headerClicked(); expect(component.isSelected).toBe(false, 'remains not selected'); }); it('should set classes', () => { component.headerClicked(); expect(setClassesSpy).toHaveBeenCalled(); }); }); }); describe('(via TestBed)', () => { let component: NavItemComponent; let fixture: ComponentFixture; beforeEach(() => { TestBed.configureTestingModule({ declarations: [NavItemComponent], schemas: [NO_ERRORS_SCHEMA] }); fixture = TestBed.createComponent(NavItemComponent); component = fixture.componentInstance; component.node = { title: 'x', children: [ { title: 'a' }, { title: 'b', hidden: true}, { title: 'c' } ] }; }); it('should not show the hidden child nav-item', () => { component.ngOnChanges(); // assume component.ngOnChanges ignores arguments fixture.detectChanges(); const children = fixture.debugElement.queryAll(By.directive(NavItemComponent)); expect(children.length).toEqual(2); }); it('should pass the `isWide` property to all displayed child nav-items', () => { component.isWide = true; component.ngOnChanges(); // assume component.ngOnChanges ignores arguments fixture.detectChanges(); let children = fixture.debugElement.queryAll(By.directive(NavItemComponent)); expect(children.length).toEqual(2, 'when IsWide is true'); children.forEach(child => expect(child.componentInstance.isWide).toBe(true)); component.isWide = false; component.ngOnChanges(); fixture.detectChanges(); children = fixture.debugElement.queryAll(By.directive(NavItemComponent)); expect(children.length).toEqual(2, 'when IsWide is false'); children.forEach(child => expect(child.componentInstance.isWide).toBe(false)); }); }); }); rxjs-7.5.7/docs_app/src/app/layout/nav-item/nav-item.component.ts000066400000000000000000000052171431412030200250000ustar00rootroot00000000000000import { Component, Input, OnChanges } from '@angular/core'; import { NavigationNode } from 'app/navigation/navigation.model'; @Component({ selector: 'aio-nav-item', template: `
{{ node.title }}
{{ node.title }}
`, }) export class NavItemComponent implements OnChanges { @Input() isWide = false; @Input() level = 1; @Input() node: NavigationNode; @Input() isParentExpanded = true; @Input() selectedNodes: NavigationNode[] | undefined; isExpanded = false; isSelected = false; classes: { [index: string]: boolean }; nodeChildren: NavigationNode[]; ngOnChanges() { this.nodeChildren = this.node && this.node.children ? this.node.children.filter((n) => !n.hidden) : []; if (this.selectedNodes) { const ix = this.selectedNodes.indexOf(this.node); this.isSelected = ix !== -1; // this node is the selected node or its ancestor this.isExpanded = this.isParentExpanded && (this.isSelected || // expand if selected or ... // preserve expanded state when display is wide; collapse in mobile. (this.isWide && this.isExpanded)); } else { this.isSelected = false; } this.setClasses(); } setClasses() { this.classes = { ['level-' + this.level]: true, collapsed: !this.isExpanded, expanded: this.isExpanded, selected: this.isSelected, }; } headerClicked() { this.isExpanded = !this.isExpanded; this.setClasses(); } } rxjs-7.5.7/docs_app/src/app/layout/nav-menu/000077500000000000000000000000001431412030200207105ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/layout/nav-menu/nav-menu.component.spec.ts000066400000000000000000000012231431412030200257360ustar00rootroot00000000000000import { NavMenuComponent } from './nav-menu.component'; import { NavigationNode } from 'app/navigation/navigation.service'; // Testing the component class behaviors, independent of its template // No dependencies, no life-cycle hooks. Just new it and test :) // Let e2e tests verify how it displays. describe('NavMenuComponent (class-only)', () => { it('should filter out hidden nodes', () => { const component = new NavMenuComponent(); const nodes: NavigationNode[] = [ { title: 'a' }, { title: 'b', hidden: true}, { title: 'c'} ]; component.nodes = nodes; expect(component.filteredNodes).toEqual([ nodes[0], nodes[2] ]); }); }); rxjs-7.5.7/docs_app/src/app/layout/nav-menu/nav-menu.component.ts000066400000000000000000000010711431412030200250060ustar00rootroot00000000000000import { Component, Input } from '@angular/core'; import { CurrentNode, NavigationNode } from 'app/navigation/navigation.service'; @Component({ selector: 'aio-nav-menu', template: ` `, }) export class NavMenuComponent { @Input() currentNode: CurrentNode | undefined; @Input() isWide = false; @Input() nodes: NavigationNode[]; get filteredNodes() { return this.nodes ? this.nodes.filter((n) => !n.hidden) : []; } } rxjs-7.5.7/docs_app/src/app/layout/notification/000077500000000000000000000000001431412030200216505ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/layout/notification/notification.component.spec.ts000066400000000000000000000122621431412030200276430ustar00rootroot00000000000000import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { Component, NO_ERRORS_SCHEMA } from '@angular/core'; import { ComponentFixture, inject, TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { CurrentDateToken } from 'app/shared/current-date'; import { NotificationComponent } from './notification.component'; import { WindowToken } from 'app/shared/window'; describe('NotificationComponent', () => { let component: NotificationComponent; let fixture: ComponentFixture; const token = { localStorage: jasmine.createSpyObj('localStorage', ['getItem', 'setItem']) }; function configTestingModule(now = new Date('2018-01-20')) { TestBed.configureTestingModule({ declarations: [TestComponent, NotificationComponent], imports: [NoopAnimationsModule], providers: [ { provide: WindowToken, useValue: token }, { provide: CurrentDateToken, useValue: now }, ], schemas: [NO_ERRORS_SCHEMA] }); } function createComponent() { fixture = TestBed.createComponent(TestComponent); const debugElement = fixture.debugElement.query(By.directive(NotificationComponent)); component = debugElement.componentInstance; component.ngOnInit(); fixture.detectChanges(); } describe('content projection', () => { it('should display the message text', () => { configTestingModule(); createComponent(); expect(fixture.nativeElement.innerHTML).toContain('Version 6 of Angular Now Available!'); }); it('should render HTML elements', () => { configTestingModule(); createComponent(); const button = fixture.debugElement.query(By.css('.action-button')); expect(button.nativeElement.textContent).toEqual('Learn More'); }); it('should process Angular directives', () => { configTestingModule(); createComponent(); const badSpans = fixture.debugElement.queryAll(By.css('.bad')); expect(badSpans.length).toEqual(0); }); }); it('should call dismiss() when the message link is clicked, if dismissOnContentClick is true', () => { configTestingModule(); createComponent(); spyOn(component, 'dismiss'); component.dismissOnContentClick = true; const message: HTMLSpanElement = fixture.debugElement.query(By.css('.messageholder')).nativeElement; message.click(); expect(component.dismiss).toHaveBeenCalled(); }); it('should not call dismiss() when the message link is clicked, if dismissOnContentClick is false', () => { configTestingModule(); createComponent(); spyOn(component, 'dismiss'); component.dismissOnContentClick = false; const message: HTMLSpanElement = fixture.debugElement.query(By.css('.messageholder')).nativeElement; message.click(); expect(component.dismiss).not.toHaveBeenCalled(); }); it('should call dismiss() when the close button is clicked', () => { configTestingModule(); createComponent(); spyOn(component, 'dismiss'); fixture.debugElement.query(By.css('button')).triggerEventHandler('click', null); fixture.detectChanges(); expect(component.dismiss).toHaveBeenCalled(); }); it('should hide the notification when dismiss is called', () => { configTestingModule(); createComponent(); const setItemSpy: jasmine.Spy = token.localStorage.setItem; setItemSpy.and.returnValue(`aio-notification/1/hide`); expect(component.showNotification).toBe('show'); component.dismiss(); fixture.detectChanges(); expect(component.showNotification).toBe('hide'); }); it('should update localStorage key when dismiss is called', inject([WindowToken], (windowToken: { localStorage: {setItem: () => {}, getItem: () => {}}}) => { configTestingModule(); createComponent(); const setItemSpy: jasmine.Spy = spyOn(windowToken.localStorage, 'setItem'); component.dismiss(); expect(setItemSpy).toHaveBeenCalledWith('aio-notification/survey-january-2018', 'hide'); })); it('should not show the notification if the date is after the expiry date', () => { configTestingModule(new Date('2018-01-23')); createComponent(); expect(component.showNotification).toBe('hide'); }); it('should not show the notification if the there is a "hide" flag in localStorage', inject([WindowToken], (windowToken: { localStorage: { setItem: () => {}, getItem: () => {}}}) => { configTestingModule(); const getItemSpy: jasmine.Spy = spyOn(windowToken.localStorage, 'getItem'); getItemSpy.and.returnValue('hide'); createComponent(); expect(getItemSpy).toHaveBeenCalledWith('aio-notification/survey-january-2018'); expect(component.showNotification).toBe('hide'); })); }); @Component({ template: ` This should not appear Version 6 of Angular Now Available! Learn More ` }) class TestComponent { } rxjs-7.5.7/docs_app/src/app/layout/notification/notification.component.ts000066400000000000000000000046221431412030200267130ustar00rootroot00000000000000import { animate, state, style, trigger, transition } from '@angular/animations'; import { Component, EventEmitter, HostBinding, Inject, Input, OnInit, Output } from '@angular/core'; import { CurrentDateToken } from 'app/shared/current-date'; import { WindowToken } from 'app/shared/window'; const LOCAL_STORAGE_NAMESPACE = 'aio-notification/'; @Component({ selector: 'aio-notification', template: ` `, animations: [ trigger('hideAnimation', [ state('show', style({ height: '*' })), state('hide', style({ height: 0 })), // this should be kept in sync with the animation durations in: // - aio/src/styles/2-modules/_notification.scss // - aio/src/app/app.component.ts : notificationDismissed() transition('show => hide', animate(250)), ]), ], }) export class NotificationComponent implements OnInit { private storage: Storage; @Input() dismissOnContentClick: boolean; @Input() notificationId: string; @Input() expirationDate: string; @Output() dismissed = new EventEmitter(); @HostBinding('@hideAnimation') showNotification: 'show' | 'hide'; constructor(@Inject(WindowToken) window: Window, @Inject(CurrentDateToken) private currentDate: Date) { try { this.storage = window.localStorage; } catch { // When cookies are disabled in the browser, even trying to access // `window.localStorage` throws an error. Use a no-op storage. this.storage = { length: 0, clear: () => undefined, getItem: () => null, key: () => null, removeItem: () => undefined, setItem: () => undefined, }; } } ngOnInit() { const previouslyHidden = this.storage.getItem(LOCAL_STORAGE_NAMESPACE + this.notificationId) === 'hide'; const expired = this.currentDate > new Date(this.expirationDate); this.showNotification = previouslyHidden || expired ? 'hide' : 'show'; } contentClick() { if (this.dismissOnContentClick) { this.dismiss(); } } dismiss() { this.storage.setItem(LOCAL_STORAGE_NAMESPACE + this.notificationId, 'hide'); this.showNotification = 'hide'; this.dismissed.next(null); } } rxjs-7.5.7/docs_app/src/app/layout/top-menu/000077500000000000000000000000001431412030200207265ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/layout/top-menu/top-menu.component.spec.ts000066400000000000000000000020621431412030200257740ustar00rootroot00000000000000import { ComponentFixture, TestBed } from '@angular/core/testing'; import { BehaviorSubject } from 'rxjs'; import { TopMenuComponent } from './top-menu.component'; import { NavigationService, NavigationViews } from 'app/navigation/navigation.service'; describe('TopMenuComponent', () => { let component: TopMenuComponent; let fixture: ComponentFixture; beforeEach(() => { TestBed.configureTestingModule({ declarations: [ TopMenuComponent ], providers: [ { provide: NavigationService, useClass: TestNavigationService } ] }); }); beforeEach(() => { fixture = TestBed.createComponent(TopMenuComponent); component = fixture.componentInstance; fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); }); //// Test Helpers //// class TestNavigationService { navJson = { TopBar: [ {url: 'api', title: 'API' }, {url: 'features', title: 'Features' } ], }; navigationViews = new BehaviorSubject(this.navJson); } rxjs-7.5.7/docs_app/src/app/layout/top-menu/top-menu.component.ts000066400000000000000000000006301431412030200250420ustar00rootroot00000000000000import { Component, Input } from '@angular/core'; import { NavigationNode } from 'app/navigation/navigation.service'; @Component({ selector: 'aio-top-menu', template: `
  • {{ node.title }}
` }) export class TopMenuComponent { @Input() nodes: NavigationNode[]; } rxjs-7.5.7/docs_app/src/app/navigation/000077500000000000000000000000001431412030200200045ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/navigation/navigation.model.ts000066400000000000000000000025051431412030200236140ustar00rootroot00000000000000// Pulled all interfaces out of `navigation.service.ts` because of this: // https://github.com/angular/angular-cli/issues/2034 // Then re-export them from `navigation.service.ts` export interface NavigationNode { url?: string; title: string; tooltip?: string; hidden?: boolean; children?: NavigationNode[]; } export type NavigationResponse = { __versionInfo: VersionInfo } & { [name: string]: NavigationNode[] | VersionInfo }; export interface NavigationViews { [name: string]: NavigationNode[]; } /** * Navigation information about a node at specific URL * url: the current URL * view: 'SideNav' | 'TopBar' | 'Footer' | etc * nodes: the current node and its ancestor nodes within that view */ export interface CurrentNode { url: string; view: string; nodes: NavigationNode[]; } /** * A map of current nodes by view. * This is needed because some urls map to nodes in more than one view. * If a view does not contain a node that matches the current url then the value will be undefined. */ export interface CurrentNodes { [view: string]: CurrentNode; } export interface VersionInfo { raw: string; major: number; minor: number; patch: number; prerelease: string[]; build: string; version: string; codeName: string; isSnapshot: boolean; full: string; branch: string; commitSHA: string; } rxjs-7.5.7/docs_app/src/app/navigation/navigation.service.spec.ts000066400000000000000000000170011431412030200251020ustar00rootroot00000000000000import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; import { Injector } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { CurrentNodes, NavigationService, NavigationViews, NavigationNode, VersionInfo, } from 'app/navigation/navigation.service'; import { LocationService } from 'app/shared/location.service'; import { MockLocationService } from 'testing/location.service'; describe('NavigationService', () => { let injector: Injector; let navService: NavigationService; let httpMock: HttpTestingController; beforeEach(() => { injector = TestBed.configureTestingModule({ imports: [HttpClientTestingModule], providers: [NavigationService, { provide: LocationService, useFactory: () => new MockLocationService('a') }], }); navService = injector.get(NavigationService); httpMock = injector.get(HttpTestingController); }); afterEach(() => httpMock.verify()); describe('navigationViews', () => { it('should make a single connection to the server', () => { const req = httpMock.expectOne({}); expect(req.request.url).toBe('generated/navigation.json'); }); it('should expose the server response', () => { const viewsEvents: NavigationViews[] = []; navService.navigationViews.subscribe(views => viewsEvents.push(views)); expect(viewsEvents).toEqual([]); httpMock.expectOne({}).flush({ TopBar: [{ url: 'a' }] }); expect(viewsEvents).toEqual([{ TopBar: [{ url: 'a' }] }]); }); it('navigationViews observable should complete', () => { navService.navigationViews.subscribe(); // Stop `$httpMock.verify()` from complaining. httpMock.expectOne({}); }); it('should return the same object to all subscribers', () => { let views1: NavigationViews | undefined; navService.navigationViews.subscribe(views => (views1 = views)); let views2: NavigationViews | undefined; navService.navigationViews.subscribe(views => (views2 = views)); httpMock.expectOne({}).flush({ TopBar: [{ url: 'a' }] }); let views3: NavigationViews | undefined; navService.navigationViews.subscribe(views => (views3 = views)); expect(views2).toBe(views1); expect(views3).toBe(views1); // Verify that subsequent subscriptions did not trigger another request. httpMock.expectNone({}); }); it('should do WHAT(?) if the request fails'); }); describe('node.tooltip', () => { let view: NavigationNode[]; const sideNav: NavigationNode[] = [ { title: 'a', tooltip: 'a tip' }, { title: 'b' }, { title: 'c!' }, { url: 'foo' }, ]; beforeEach(() => { navService.navigationViews.subscribe(views => (view = views['sideNav'])); httpMock.expectOne({}).flush({ sideNav }); }); it('should have the supplied tooltip', () => { expect(view[0].tooltip).toEqual('a tip'); }); it('should create a tooltip from title + period', () => { expect(view[1].tooltip).toEqual('b.'); }); it('should create a tooltip from title, keeping its trailing punctuation', () => { expect(view[2].tooltip).toEqual('c!'); }); it('should not create a tooltip if there is no title', () => { expect(view[3].tooltip).toBeUndefined(); }); }); describe('currentNode', () => { let currentNodes: CurrentNodes; let locationService: MockLocationService; const topBarNodes: NavigationNode[] = [{ url: 'features', title: 'Features', tooltip: 'tip' }]; const sideNavNodes: NavigationNode[] = [ { title: 'a', tooltip: 'tip', children: [ { url: 'b', title: 'b', tooltip: 'tip', children: [{ url: 'c', title: 'c', tooltip: 'tip' }, { url: 'd', title: 'd', tooltip: 'tip' }], }, { url: 'e', title: 'e', tooltip: 'tip' }, ], }, { url: 'f', title: 'f', tooltip: 'tip' }, ]; const navJson = { TopBar: topBarNodes, SideNav: sideNavNodes, __versionInfo: {}, }; beforeEach(() => { locationService = (injector.get(LocationService) as any) as MockLocationService; navService.currentNodes.subscribe(selected => (currentNodes = selected)); httpMock.expectOne({}).flush(navJson); }); it('should list the side navigation node that matches the current location, and all its ancestors', () => { locationService.go('b'); expect(currentNodes).toEqual({ SideNav: { url: 'b', view: 'SideNav', nodes: [sideNavNodes[0].children![0], sideNavNodes[0]], }, }); locationService.go('d'); expect(currentNodes).toEqual({ SideNav: { url: 'd', view: 'SideNav', nodes: [sideNavNodes[0].children![0].children![1], sideNavNodes[0].children![0], sideNavNodes[0]], }, }); locationService.go('f'); expect(currentNodes).toEqual({ SideNav: { url: 'f', view: 'SideNav', nodes: [sideNavNodes[1]], }, }); }); it('should be a TopBar selected node if the current location is a top menu node', () => { locationService.go('features'); expect(currentNodes).toEqual({ TopBar: { url: 'features', view: 'TopBar', nodes: [topBarNodes[0]], }, }); }); it('should be a plain object if no navigation node matches the current location', () => { locationService.go('g?search=moo#anchor-1'); expect(currentNodes).toEqual({ '': { url: 'g', view: '', nodes: [], }, }); }); it('should ignore trailing slashes, hashes, and search params on URLs in the navmap', () => { const cnode: CurrentNodes = { SideNav: { url: 'c', view: 'SideNav', nodes: [sideNavNodes[0].children![0].children![0], sideNavNodes[0].children![0], sideNavNodes[0]], }, }; locationService.go('c'); expect(currentNodes).toEqual(cnode, 'location: c'); locationService.go('c#foo'); expect(currentNodes).toEqual(cnode, 'location: c#foo'); locationService.go('c?foo=1'); expect(currentNodes).toEqual(cnode, 'location: c?foo=1'); locationService.go('c#foo?bar=1&baz=2'); expect(currentNodes).toEqual(cnode, 'location: c#foo?bar=1&baz=2'); }); }); describe('versionInfo', () => { const expectedVersionInfo = { raw: '4.0.0' } as VersionInfo; let versionInfo: VersionInfo; beforeEach(() => { navService.versionInfo.subscribe(info => (versionInfo = info)); httpMock.expectOne({}).flush({ __versionInfo: expectedVersionInfo, }); }); it('should extract the version info', () => { expect(versionInfo).toEqual(expectedVersionInfo); }); }); describe('docVersions', () => { let actualDocVersions: NavigationNode[]; let docVersions: NavigationNode[]; let expectedDocVersions: NavigationNode[]; beforeEach(() => { actualDocVersions = []; docVersions = [{ title: 'v4.0.0' }, { title: 'v2', url: 'https://v2.angular.io' }]; expectedDocVersions = docVersions.map(v => ({ ...v, ...{ tooltip: v.title + '.' } })); navService.navigationViews.subscribe(views => (actualDocVersions = views['docVersions'])); }); it('should extract the docVersions', () => { httpMock.expectOne({}).flush({ docVersions }); expect(actualDocVersions).toEqual(expectedDocVersions); }); }); }); rxjs-7.5.7/docs_app/src/app/navigation/navigation.service.ts000066400000000000000000000143011431412030200241510ustar00rootroot00000000000000import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; import { combineLatest, ConnectableObservable, Observable } from 'rxjs'; import { map, publishLast, publishReplay } from 'rxjs/operators'; import { LocationService } from 'app/shared/location.service'; import { CONTENT_URL_PREFIX } from 'app/documents/document.service'; // Import and re-export the Navigation model types import { CurrentNodes, NavigationNode, NavigationResponse, NavigationViews, VersionInfo } from './navigation.model'; export { CurrentNodes, CurrentNode, NavigationNode, NavigationResponse, NavigationViews, VersionInfo } from './navigation.model'; const navigationPath = CONTENT_URL_PREFIX + 'navigation.json'; @Injectable() export class NavigationService { /** * An observable collection of NavigationNode trees, which can be used to render navigational menus */ navigationViews: Observable; /** * The current version of doc-app that we are running */ versionInfo: Observable; /** * An observable of the current node with info about the * node (if any) that matches the current URL location * including its navigation view and its ancestor nodes in that view */ currentNodes: Observable; constructor(private http: HttpClient, private location: LocationService) { const navigationInfo = this.fetchNavigationInfo(); this.navigationViews = this.getNavigationViews(navigationInfo); this.currentNodes = this.getCurrentNodes(this.navigationViews); // The version information is packaged inside the navigation response to save us an extra request. this.versionInfo = this.getVersionInfo(navigationInfo); } /** * Get an observable that fetches the `NavigationResponse` from the server. * We create an observable by calling `http.get` but then publish it to share the result * among multiple subscribers, without triggering new requests. * We use `publishLast` because once the http request is complete the request observable completes. * If you use `publish` here then the completed request observable will cause the subscribed observables to complete too. * We `connect` to the published observable to trigger the request immediately. * We could use `.refCount` here but then if the subscribers went from 1 -> 0 -> 1 then you would get * another request to the server. * We are not storing the subscription from connecting as we do not expect this service to be destroyed. */ private fetchNavigationInfo(): Observable { const navigationInfo = this.http.get(navigationPath) .pipe(publishLast()); (navigationInfo as ConnectableObservable).connect(); return navigationInfo; } private getVersionInfo(navigationInfo: Observable) { const versionInfo = navigationInfo.pipe( map(response => response.__versionInfo), publishLast(), ); (versionInfo as ConnectableObservable).connect(); return versionInfo; } private getNavigationViews(navigationInfo: Observable): Observable { const navigationViews = navigationInfo.pipe( map(response => { const views = Object.assign({}, response); Object.keys(views).forEach(key => { if (key[0] === '_') { delete views[key]; } }); return views as NavigationViews; }), publishLast(), ); (navigationViews as ConnectableObservable).connect(); return navigationViews; } /** * Get an observable of the current nodes (the ones that match the current URL) * We use `publishReplay(1)` because otherwise subscribers will have to wait until the next * URL change before they receive an emission. * See above for discussion of using `connect`. */ private getCurrentNodes(navigationViews: Observable): Observable { const currentNodes = combineLatest( navigationViews.pipe(map(views => this.computeUrlToNavNodesMap(views))), this.location.currentPath, (navMap, url) => { const urlKey = url.startsWith('api/') ? 'api' : url; return navMap.get(urlKey) || { '' : { view: '', url: urlKey, nodes: [] }}; }) .pipe(publishReplay(1)); (currentNodes as ConnectableObservable).connect(); return currentNodes; } /** * Compute a mapping from URL to an array of nodes, where the first node in the array * is the one that matches the URL and the rest are the ancestors of that node. * * @param navigation - A collection of navigation nodes that are to be mapped */ private computeUrlToNavNodesMap(navigation: NavigationViews) { const navMap = new Map(); Object.keys(navigation) .forEach(view => navigation[view] .forEach(node => this.walkNodes(view, navMap, node))); return navMap; } /** * Add tooltip to node if it doesn't have one and have title. * If don't want tooltip, specify `"tooltip": ""` in navigation.json */ private ensureHasTooltip(node: NavigationNode) { const title = node.title; const tooltip = node.tooltip; if (tooltip == null && title ) { // add period if no trailing punctuation node.tooltip = title + (/[a-zA-Z0-9]$/.test(title) ? '.' : ''); } } /** * Walk the nodes of a navigation tree-view, * patching them and computing their ancestor nodes */ private walkNodes( view: string, navMap: Map, node: NavigationNode, ancestors: NavigationNode[] = []) { const nodes = [node, ...ancestors]; const url = node.url; this.ensureHasTooltip(node); // only map to this node if it has a url if (url) { // Strip off trailing slashes from nodes in the navMap - they are not relevant to matching const cleanedUrl = url.replace(/\/$/, ''); if (!navMap.has(cleanedUrl)) { navMap.set(cleanedUrl, {}); } const navMapItem = navMap.get(cleanedUrl)!; navMapItem[view] = { url, view, nodes }; } if (node.children) { node.children.forEach(child => this.walkNodes(view, navMap, child, nodes)); } } } rxjs-7.5.7/docs_app/src/app/search/000077500000000000000000000000001431412030200171125ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/search/interfaces.ts000066400000000000000000000004711431412030200216070ustar00rootroot00000000000000export interface SearchResults { query: string; results: SearchResult[]; } export interface SearchResult { path: string; title: string; type: string; titleWords: string; keywords: string; } export interface SearchArea { name: string; pages: SearchResult[]; priorityPages: SearchResult[]; } rxjs-7.5.7/docs_app/src/app/search/search-box/000077500000000000000000000000001431412030200211455ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/search/search-box/search-box.component.spec.ts000066400000000000000000000105111431412030200265000ustar00rootroot00000000000000import { Component } from '@angular/core'; import { ComponentFixture, fakeAsync, inject, TestBed, tick } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { SearchBoxComponent } from './search-box.component'; import { LocationService } from 'app/shared/location.service'; import { MockLocationService } from 'testing/location.service'; @Component({ template: '' }) class HostComponent { searchHandler = jasmine.createSpy('searchHandler'); focusHandler = jasmine.createSpy('focusHandler'); } describe('SearchBoxComponent', () => { let component: SearchBoxComponent; let host: HostComponent; let fixture: ComponentFixture; beforeEach(() => { TestBed.configureTestingModule({ declarations: [ SearchBoxComponent, HostComponent ], providers: [ { provide: LocationService, useFactory: () => new MockLocationService('') } ] }); }); beforeEach(() => { fixture = TestBed.createComponent(HostComponent); host = fixture.componentInstance; component = fixture.debugElement.query(By.directive(SearchBoxComponent)).componentInstance; fixture.detectChanges(); }); describe('initialisation', () => { it('should get the current search query from the location service', fakeAsync(inject([LocationService], (location: MockLocationService) => { location.search.and.returnValue({ search: 'initial search' }); component.ngOnInit(); expect(location.search).toHaveBeenCalled(); tick(300); expect(host.searchHandler).toHaveBeenCalledWith('initial search'); expect(component.searchBox.nativeElement.value).toEqual('initial search'); }))); }); describe('onSearch', () => { it('should debounce by 300ms', fakeAsync(() => { component.doSearch(); expect(host.searchHandler).not.toHaveBeenCalled(); tick(300); expect(host.searchHandler).toHaveBeenCalled(); })); it('should pass through the value of the input box', fakeAsync(() => { const input = fixture.debugElement.query(By.css('input')); input.nativeElement.value = 'some query (input)'; component.doSearch(); tick(300); expect(host.searchHandler).toHaveBeenCalledWith('some query (input)'); })); it('should only send events if the search value has changed', fakeAsync(() => { const input = fixture.debugElement.query(By.css('input')); input.nativeElement.value = 'some query'; component.doSearch(); tick(300); expect(host.searchHandler).toHaveBeenCalledTimes(1); component.doSearch(); tick(300); expect(host.searchHandler).toHaveBeenCalledTimes(1); input.nativeElement.value = 'some other query'; component.doSearch(); tick(300); expect(host.searchHandler).toHaveBeenCalledTimes(2); })); }); describe('on input', () => { it('should trigger a search', () => { const input = fixture.debugElement.query(By.css('input')); spyOn(component, 'doSearch'); input.triggerEventHandler('input', { }); expect(component.doSearch).toHaveBeenCalled(); }); }); describe('on keyup', () => { it('should trigger a search', () => { const input = fixture.debugElement.query(By.css('input')); spyOn(component, 'doSearch'); input.triggerEventHandler('keyup', { }); expect(component.doSearch).toHaveBeenCalled(); }); }); describe('on focus', () => { it('should trigger the onFocus event', () => { const input = fixture.debugElement.query(By.css('input')); input.nativeElement.value = 'some query (focus)'; input.triggerEventHandler('focus', { }); expect(host.focusHandler).toHaveBeenCalledWith('some query (focus)'); }); }); describe('on click', () => { it('should trigger a search', () => { const input = fixture.debugElement.query(By.css('input')); spyOn(component, 'doSearch'); input.triggerEventHandler('click', { }); expect(component.doSearch).toHaveBeenCalled(); }); }); describe('focus', () => { it('should set the focus to the input box', () => { const input = fixture.debugElement.query(By.css('input')); component.focus(); expect(document.activeElement).toBe(input.nativeElement); }); }); }); rxjs-7.5.7/docs_app/src/app/search/search-box/search-box.component.ts000066400000000000000000000036221431412030200255540ustar00rootroot00000000000000import { Component, OnInit, ViewChild, ElementRef, EventEmitter, Output } from '@angular/core'; import { LocationService } from 'app/shared/location.service'; import { Subject } from 'rxjs'; import { debounceTime, distinctUntilChanged } from 'rxjs/operators'; /** * This component provides a text box to type a search query that will be sent to the SearchService. * * When you arrive at a page containing this component, it will retrieve the `query` from the browser * address bar. If there is a query then this will be made. * * Focussing on the input box will resend whatever query is there. This can be useful if the search * results had been hidden for some reason. * */ @Component({ selector: 'aio-search-box', template: `` }) export class SearchBoxComponent implements OnInit { private searchDebounce = 300; private searchSubject = new Subject(); @ViewChild('searchBox', {static: true}) searchBox: ElementRef; @Output() onSearch = this.searchSubject.pipe(distinctUntilChanged(), debounceTime(this.searchDebounce)); @Output() onFocus = new EventEmitter(); constructor(private locationService: LocationService) { } /** * When we first show this search box we trigger a search if there is a search query in the URL */ ngOnInit() { const query = this.locationService.search()['search']; if (query) { this.query = query; this.doSearch(); } } doSearch() { this.searchSubject.next(this.query); } doFocus() { this.onFocus.emit(this.query); } focus() { this.searchBox.nativeElement.focus(); } private get query() { return this.searchBox.nativeElement.value; } private set query(value: string) { this.searchBox.nativeElement.value = value; } } rxjs-7.5.7/docs_app/src/app/search/search-worker.js000066400000000000000000000061501431412030200222260ustar00rootroot00000000000000'use strict'; /* eslint-env worker */ /* global importScripts, lunr */ var SEARCH_TERMS_URL = '/generated/docs/app/search-data.json'; // NOTE: This needs to be kept in sync with `ngsw-config.json`. importScripts('/assets/js/lunr.min.js'); var index; var pages /* : SearchInfo */ = {}; // interface SearchInfo { // [key: string]: PageInfo; // } // interface PageInfo { // path: string; // type: string, // titleWords: string; // keyWords: string; // } self.onmessage = handleMessage; // Create the lunr index - the docs should be an array of objects, each object containing // the path and search terms for a page function createIndex(addFn) { return lunr(/** @this */function() { this.pipeline.remove(lunr.stopWordFilter); this.ref('path'); this.field('titleWords', {boost: 100}); this.field('headingWords', {boost: 50}); this.field('members', {boost: 40}); this.field('keywords', {boost: 20}); addFn(this); }); } // The worker receives a message to load the index and to query the index function handleMessage(message) { var type = message.data.type; var id = message.data.id; var payload = message.data.payload; switch(type) { case 'load-index': makeRequest(SEARCH_TERMS_URL, function(searchInfo) { index = createIndex(loadIndex(searchInfo)); self.postMessage({type: type, id: id, payload: true}); }); break; case 'query-index': self.postMessage({type: type, id: id, payload: {query: payload, results: queryIndex(payload)}}); break; default: self.postMessage({type: type, id: id, payload: {error: 'invalid message type'}}) } } // Use XHR to make a request to the server function makeRequest(url, callback) { // The JSON file that is loaded should be an array of PageInfo: var searchDataRequest = new XMLHttpRequest(); searchDataRequest.onload = function() { callback(JSON.parse(this.responseText)); }; searchDataRequest.open('GET', url); searchDataRequest.send(); } // Create the search index from the searchInfo which contains the information about each page to be indexed function loadIndex(searchInfo /*: SearchInfo */) { return function(index) { // Store the pages data to be used in mapping query results back to pages // Add search terms from each page to the search index searchInfo.forEach(function(page /*: PageInfo */) { index.add(page); pages[page.path] = page; }); }; } // Query the index and return the processed results function queryIndex(query) { try { if (query.length) { // Add a relaxed search in the title for the first word in the query // E.g. if the search is "ngCont guide" then we search for "ngCont guide titleWords:ngCont*" var titleQuery = 'titleWords:*' + query.split(' ', 1)[0] + '*'; var results = index.search(query + ' ' + titleQuery); // Map the hits into info about each page to be returned as results return results.map(function(hit) { return pages[hit.ref]; }); } } catch(e) { // If the search query cannot be parsed the index throws an error // Log it and recover console.log(e); } return []; } rxjs-7.5.7/docs_app/src/app/search/search.service.spec.ts000066400000000000000000000050161431412030200233210ustar00rootroot00000000000000import { ReflectiveInjector, NgZone } from '@angular/core'; import { fakeAsync, tick } from '@angular/core/testing'; import { of } from 'rxjs'; import { SearchService } from './search.service'; import { WebWorkerClient } from 'app/shared/web-worker'; describe('SearchService', () => { let injector: ReflectiveInjector; let service: SearchService; let sendMessageSpy: jasmine.Spy; let mockWorker: WebWorkerClient; beforeEach(() => { sendMessageSpy = jasmine.createSpy('sendMessage').and.returnValue(of({})); mockWorker = { sendMessage: sendMessageSpy } as any; spyOn(WebWorkerClient, 'create').and.returnValue(mockWorker); injector = ReflectiveInjector.resolveAndCreate([ SearchService, { provide: NgZone, useFactory: () => new NgZone({ enableLongStackTrace: false }) } ]); service = injector.get(SearchService); }); describe('initWorker', () => { it('should create the worker and load the index after the specified delay', fakeAsync(() => { service.initWorker('some/url', 100); expect(WebWorkerClient.create).not.toHaveBeenCalled(); expect(mockWorker.sendMessage).not.toHaveBeenCalled(); tick(100); expect(WebWorkerClient.create).toHaveBeenCalledWith('some/url', jasmine.any(NgZone)); expect(mockWorker.sendMessage).toHaveBeenCalledWith('load-index'); })); }); describe('search', () => { beforeEach(() => { // We must initialize the service before calling connectSearches service.initWorker('some/url', 1000); // Simulate the index being ready so that searches get sent to the worker (service as any).ready = of(true); }); it('should trigger a `loadIndex` synchronously (not waiting for the delay)', () => { expect(mockWorker.sendMessage).not.toHaveBeenCalled(); service.search('some query').subscribe(); expect(mockWorker.sendMessage).toHaveBeenCalledWith('load-index'); }); it('should send a "query-index" message to the worker', () => { service.search('some query').subscribe(); expect(mockWorker.sendMessage).toHaveBeenCalledWith('query-index', 'some query'); }); it('should push the response to the returned observable', () => { const mockSearchResults = { results: ['a', 'b'] }; let actualSearchResults: any; (mockWorker.sendMessage as jasmine.Spy).and.returnValue(of(mockSearchResults)); service.search('some query').subscribe(results => actualSearchResults = results); expect(actualSearchResults).toEqual(mockSearchResults); }); }); }); rxjs-7.5.7/docs_app/src/app/search/search.service.ts000066400000000000000000000045301431412030200223700ustar00rootroot00000000000000/* Copyright 2016 Google Inc. All Rights Reserved. Use of this source code is governed by an MIT-style license that can be found in the LICENSE file at http://angular.io/license */ import { NgZone, Injectable } from '@angular/core'; import { ConnectableObservable, Observable, race, ReplaySubject, timer } from 'rxjs'; import { concatMap, first, publishReplay } from 'rxjs/operators'; import { WebWorkerClient } from 'app/shared/web-worker'; import { SearchResults } from 'app/search/interfaces'; @Injectable() export class SearchService { private ready: Observable; private searchesSubject = new ReplaySubject(1); private worker: WebWorkerClient; constructor(private zone: NgZone) {} /** * Initialize the search engine. We offer an `initDelay` to prevent the search initialisation from delaying the * initial rendering of the web page. Triggering a search will override this delay and cause the index to be * loaded immediately. * * @param workerUrl the url of the WebWorker script that runs the searches * @param initDelay the number of milliseconds to wait before we load the WebWorker and generate the search index */ initWorker(workerUrl: string, initDelay: number) { // Wait for the initDelay or the first search const ready = this.ready = race( timer(initDelay), this.searchesSubject.asObservable().pipe(first()), ) .pipe( concatMap(() => { // Create the worker and load the index this.worker = WebWorkerClient.create(workerUrl, this.zone); return this.worker.sendMessage('load-index'); }), publishReplay(1), ); // Connect to the observable to kick off the timer (ready as ConnectableObservable).connect(); return ready; } /** * Search the index using the given query and emit results on the observable that is returned. * @param query The query to run against the index. * @returns an observable collection of search results */ search(query: string): Observable { // Trigger the searches subject to override the init delay timer this.searchesSubject.next(query); // Once the index has loaded, switch to listening to the searches coming in. return this.ready.pipe(concatMap(() => this.worker.sendMessage('query-index', query))); } } rxjs-7.5.7/docs_app/src/app/shared/000077500000000000000000000000001431412030200171135ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/shared/attribute-utils.spec.ts000066400000000000000000000105321431412030200235560ustar00rootroot00000000000000import { ElementRef } from '@angular/core'; import { AttrMap, getAttrs, getAttrValue, getBoolFromAttribute, boolFromValue } from './attribute-utils'; describe('Attribute Utilities', () => { let testEl: HTMLElement; beforeEach(() => { const div = document.createElement('div'); div.innerHTML = `
`; testEl = div.querySelector('div')!; }); describe('getAttrs', () => { const expectedMap = { a: '', b: 'true', c: 'false', d: 'foo', 'd-e': '' }; it('should get attr map from getAttrs(element)', () => { const actual = getAttrs(testEl); expect(actual).toEqual(expectedMap); }); it('should get attr map from getAttrs(elementRef)', () => { const actual = getAttrs(new ElementRef(testEl)); expect(actual).toEqual(expectedMap); }); }); describe('getAttrValue', () => { let attrMap: AttrMap; beforeEach(() => { attrMap = getAttrs(testEl); }); it('should return empty string for attribute "a"', () => { expect(getAttrValue(attrMap, 'a')).toBe(''); }); it('should return empty string for attribute "A"', () => { expect(getAttrValue(attrMap, 'A')).toBe(''); }); it('should return "true" for attribute "b"', () => { expect(getAttrValue(attrMap, 'b')).toBe('true'); }); it('should return empty string for attribute "d-E"', () => { expect(getAttrValue(attrMap, 'd-E')).toBe(''); }); it('should return empty string for attribute ["d-e"]', () => { expect(getAttrValue(attrMap, ['d-e'])).toBe(''); }); it('should return "foo" for attribute ["d", "d-e"]', () => { // because d will be found before d-e expect(getAttrValue(attrMap, ['d', 'd-e'])).toBe('foo'); }); it('should return empty string for attribute ["d-e", "d"]', () => { // because d-e will be found before d expect(getAttrValue(attrMap, ['d-e', 'd'])).toBe(''); }); it('should return undefined for non-existent attributes', () => { expect(getAttrValue(attrMap, 'x')).toBeUndefined(); expect(getAttrValue(attrMap, '')).toBeUndefined(); expect(getAttrValue(attrMap, ['', 'x'])).toBeUndefined(); }); }); describe('boolFromValue', () => { it('should return true for "" as in present but unassigned attr "a"', () => { expect(boolFromValue('')).toBe(true); }); it('should return false for "false" as in attr "c"', () => { expect(boolFromValue('false')).toBe(false); }); it('should return true for "true" as in attr "b"', () => { expect(boolFromValue('true')).toBe(true); }); it('should return true for something other than "false"', () => { expect(boolFromValue('foo')).toBe(true); }); it('should return true for "False" because case-sensitive', () => { expect(boolFromValue('False')).toBe(true); }); it('should return false by default as in undefined attr "x"', () => { expect(boolFromValue(undefined)).toBe(false); }); it('should return true for undefined value when default is true', () => { expect(boolFromValue(undefined, true)).toBe(true); }); it('should return false for undefined value when default is false', () => { expect(boolFromValue(undefined, false)).toBe(false); }); it('should return true for "" as in unassigned attr "a" even when default is false', () => { // default value is only applied when the attribute is missing expect(boolFromValue('', false)).toBe(true); }); }); // Combines the three utilities for convenience. describe('getBoolFromAttribute', () => { it('should return true for present but unassigned attr "a"', () => { expect(getBoolFromAttribute(testEl, 'a')).toBe(true); }); it('should return true for attr "b" which is "true"', () => { expect(getBoolFromAttribute(testEl, 'b')).toBe(true); }); it('should return false for attr "c" which is "false"', () => { expect(getBoolFromAttribute(testEl, 'c')).toBe(false); }); it('should return true for attributes ["d-e", "d"]', () => { // because d-e will be found before D="foo" expect(getBoolFromAttribute(testEl, ['d-e', 'd'])).toBe(true); }); it('should return false for non-existent attribute "x"', () => { expect(getBoolFromAttribute(testEl, 'x')).toBe(false); }); }); }); rxjs-7.5.7/docs_app/src/app/shared/attribute-utils.ts000066400000000000000000000037021431412030200226260ustar00rootroot00000000000000// Utilities for processing HTML element attributes import { ElementRef } from '@angular/core'; export interface AttrMap { [key: string]: string; } /** * Get attribute map from element or ElementRef `attributes`. * Attribute map keys are forced lowercase for case-insensitive lookup. * @param el The source of the attributes. */ export function getAttrs(el: HTMLElement | ElementRef): AttrMap { const attrs: NamedNodeMap = el instanceof ElementRef ? el.nativeElement.attributes : el.attributes; const attrMap: AttrMap = {}; for (const attr of attrs as any as Attr[] /* cast due to https://github.com/Microsoft/TypeScript/issues/2695 */) { attrMap[attr.name.toLowerCase()] = attr.value; } return attrMap; } /** * Return the attribute that matches `attr`. * @param attr Name of the attribute or a string of candidate attribute names. */ export function getAttrValue(attrs: AttrMap, attr: string | string[]): string | undefined { const key = (typeof attr === 'string') ? attr : attr.find(a => attrs.hasOwnProperty(a.toLowerCase())); return (key === undefined) ? undefined : attrs[key.toLowerCase()]; } /** * Return the boolean state of an attribute value (if supplied) * @param attrValue The string value of some attribute (or undefined if attribute not present). * @param def Default boolean value when attribute is undefined. */ export function boolFromValue(attrValue: string | undefined, def: boolean = false) { return attrValue === undefined ? def : attrValue.trim() !== 'false'; } /** * Return the boolean state of attribute from an element * @param el The source of the attributes. * @param atty Name of the attribute or a string of candidate attribute names. * @param def Default boolean value when attribute is undefined. */ export function getBoolFromAttribute( el: HTMLElement | ElementRef, attr: string | string[], def: boolean = false): boolean { return boolFromValue(getAttrValue(getAttrs(el), attr), def); } rxjs-7.5.7/docs_app/src/app/shared/copier.service.ts000066400000000000000000000035441431412030200224110ustar00rootroot00000000000000import { Injectable } from "@angular/core"; /** * This class is based on the code in the following projects: * * - https://github.com/zenorocha/select * - https://github.com/zenorocha/clipboard.js/ * * Both released under MIT license - © Zeno Rocha */ @Injectable() export class CopierService { private fakeElem: HTMLTextAreaElement|null; /** * Creates a fake textarea element, sets its value from `text` property, * and makes a selection on it. */ createFake(text: string) { const isRTL = document.documentElement.getAttribute('dir') === 'rtl'; // Create a fake element to hold the contents to copy this.fakeElem = document.createElement('textarea'); // Prevent zooming on iOS this.fakeElem.style.fontSize = '12pt'; // Reset box model this.fakeElem.style.border = '0'; this.fakeElem.style.padding = '0'; this.fakeElem.style.margin = '0'; // Move element out of screen horizontally this.fakeElem.style.position = 'absolute'; this.fakeElem.style[ isRTL ? 'right' : 'left' ] = '-9999px'; // Move element to the same position vertically const yPosition = window.pageYOffset || document.documentElement.scrollTop; this.fakeElem.style.top = yPosition + 'px'; this.fakeElem.setAttribute('readonly', ''); this.fakeElem.value = text; document.body.appendChild(this.fakeElem); this.fakeElem.select(); this.fakeElem.setSelectionRange(0, this.fakeElem.value.length); } removeFake() { if (this.fakeElem) { document.body.removeChild(this.fakeElem); this.fakeElem = null; } } copyText(text: string) { try { this.createFake(text); return document.execCommand('copy'); } catch (err) { return false; } finally { this.removeFake(); } } } rxjs-7.5.7/docs_app/src/app/shared/current-date.ts000066400000000000000000000002611431412030200220570ustar00rootroot00000000000000import { InjectionToken } from '@angular/core'; export const CurrentDateToken = new InjectionToken('CurrentDate'); export function currentDateProvider() { return new Date(); } rxjs-7.5.7/docs_app/src/app/shared/custom-icon-registry.spec.ts000066400000000000000000000041651431412030200245300ustar00rootroot00000000000000import { ErrorHandler } from '@angular/core'; import { MatIconRegistry } from '@angular/material/icon'; import { CustomIconRegistry, SvgIconInfo } from './custom-icon-registry'; describe('CustomIconRegistry', () => { it('should get the SVG element for a preloaded icon from the cache', () => { const mockHttp: any = {}; const mockSanitizer: any = {}; const mockDocument: any = {}; const svgSrc = ''; const svgIcons: SvgIconInfo[] = [ { name: 'test_icon', svgSource: svgSrc } ]; const errorHandler = new ErrorHandler(); const registry = new CustomIconRegistry(mockHttp, mockSanitizer, mockDocument, svgIcons, errorHandler); let svgElement: SVGElement|undefined; registry.getNamedSvgIcon('test_icon').subscribe(el => svgElement = el); expect(svgElement).toEqual(createSvg(svgSrc)); }); it('should call through to the MdIconRegistry if the icon name is not in the preloaded cache', () => { const mockHttp: any = {}; const mockSanitizer: any = {}; const mockDocument: any = {}; const svgSrc = ''; const svgIcons: SvgIconInfo[] = [ { name: 'test_icon', svgSource: svgSrc } ]; spyOn(MatIconRegistry.prototype, 'getNamedSvgIcon'); const errorHandler = new ErrorHandler(); const registry = new CustomIconRegistry(mockHttp, mockSanitizer, mockDocument, svgIcons, errorHandler); registry.getNamedSvgIcon('other_icon'); expect(MatIconRegistry.prototype.getNamedSvgIcon).toHaveBeenCalledWith('other_icon', undefined); registry.getNamedSvgIcon('other_icon', 'foo'); expect(MatIconRegistry.prototype.getNamedSvgIcon).toHaveBeenCalledWith('other_icon', 'foo'); }); }); function createSvg(svgSrc: string): SVGElement { const div = document.createElement('div'); div.innerHTML = svgSrc; return div.querySelector('svg')!; } rxjs-7.5.7/docs_app/src/app/shared/custom-icon-registry.ts000066400000000000000000000042421431412030200235730ustar00rootroot00000000000000import { InjectionToken, Inject, Injectable, Optional, ErrorHandler } from '@angular/core'; import { DOCUMENT } from '@angular/common'; import { of } from 'rxjs'; import { MatIconRegistry } from '@angular/material/icon'; import { HttpClient } from '@angular/common/http'; import { DomSanitizer } from '@angular/platform-browser'; /** * Use SVG_ICONS (and SvgIconInfo) as "multi" providers to provide the SVG source * code for the icons that you wish to have preloaded in the `CustomIconRegistry` * For compatibility with the MdIconComponent, please ensure that the SVG source has * the following attributes: * * * `xmlns="http://www.w3.org/2000/svg"` * * `focusable="false"` (disable IE11 default behavior to make SVGs focusable) * * `height="100%"` (the default) * * `width="100%"` (the default) * * `preserveAspectRatio="xMidYMid meet"` (the default) * */ export const SVG_ICONS = new InjectionToken>('SvgIcons'); export interface SvgIconInfo { name: string; svgSource: string; } interface SvgIconMap { [iconName: string]: SVGElement; } /** * A custom replacement for Angular Material's `MdIconRegistry`, which allows * us to provide preloaded icon SVG sources. */ @Injectable() export class CustomIconRegistry extends MatIconRegistry { private preloadedSvgElements: SvgIconMap = {}; constructor(http: HttpClient, sanitizer: DomSanitizer, @Optional() @Inject(DOCUMENT) document, @Inject(SVG_ICONS) svgIcons: SvgIconInfo[], errorHandler: ErrorHandler) { super(http, sanitizer, document, errorHandler); this.loadSvgElements(svgIcons); } getNamedSvgIcon(iconName: string, namespace?: string) { if (this.preloadedSvgElements[iconName]) { return of(this.preloadedSvgElements[iconName].cloneNode(true) as SVGElement); } return super.getNamedSvgIcon(iconName, namespace); } private loadSvgElements(svgIcons: SvgIconInfo[]) { const div = document.createElement('DIV'); svgIcons.forEach(icon => { // SECURITY: the source for the SVG icons is provided in code by trusted developers div.innerHTML = icon.svgSource; this.preloadedSvgElements[icon.name] = div.querySelector('svg')!; }); } } rxjs-7.5.7/docs_app/src/app/shared/deployment.service.spec.ts000066400000000000000000000021331431412030200242320ustar00rootroot00000000000000import { ReflectiveInjector } from '@angular/core'; import { environment } from 'environments/environment'; import { LocationService } from 'app/shared/location.service'; import { MockLocationService } from 'testing/location.service'; import { Deployment } from './deployment.service'; describe('Deployment service', () => { describe('mode', () => { it('should get the mode from the environment', () => { environment.mode = 'foo'; const deployment = getInjector().get(Deployment); expect(deployment.mode).toEqual('foo'); }); it('should get the mode from the `mode` query parameter if available', () => { const injector = getInjector(); const locationService: MockLocationService = injector.get(LocationService); locationService.search.and.returnValue({ mode: 'bar' }); const deployment = injector.get(Deployment); expect(deployment.mode).toEqual('bar'); }); }); }); function getInjector() { return ReflectiveInjector.resolveAndCreate([ Deployment, { provide: LocationService, useFactory: () => new MockLocationService('') } ]); } rxjs-7.5.7/docs_app/src/app/shared/deployment.service.ts000066400000000000000000000010521431412030200233000ustar00rootroot00000000000000import { Injectable } from '@angular/core'; import { LocationService } from 'app/shared/location.service'; import { environment } from 'environments/environment'; /** * Information about the deployment of this application. */ @Injectable() export class Deployment { /** * The deployment mode set from the environment provided at build time; * or overridden by the `mode` query parameter: e.g. `...?mode=archive` */ mode: string = this.location.search()['mode'] || environment.mode; constructor(private location: LocationService) {} }; rxjs-7.5.7/docs_app/src/app/shared/ga.service.spec.ts000066400000000000000000000066461431412030200224560ustar00rootroot00000000000000import { ReflectiveInjector } from '@angular/core'; import { GaService } from 'app/shared/ga.service'; import { WindowToken } from 'app/shared/window'; describe('GaService', () => { let gaService: GaService; let injector: ReflectiveInjector; let gaSpy: jasmine.Spy; let mockWindow: any; beforeEach(() => { gaSpy = jasmine.createSpy('ga'); mockWindow = { ga: gaSpy }; injector = ReflectiveInjector.resolveAndCreate([GaService, { provide: WindowToken, useFactory: () => mockWindow }]); gaService = injector.get(GaService); }); it('should initialize ga with "create" when constructed', () => { const first = gaSpy.calls.first().args; expect(first[0]).toBe('create'); }); describe('#locationChanged(url)', () => { it('should send page to url w/ leading slash', () => { gaService.locationChanged('testUrl'); expect(gaSpy).toHaveBeenCalledWith('set', 'page', '/testUrl'); expect(gaSpy).toHaveBeenCalledWith('send', 'pageview'); }); }); describe('#sendPage(url)', () => { it('should set page to url w/ leading slash', () => { gaService.sendPage('testUrl'); expect(gaSpy).toHaveBeenCalledWith('set', 'page', '/testUrl'); }); it('should send "pageview" ', () => { gaService.sendPage('testUrl'); expect(gaSpy).toHaveBeenCalledWith('send', 'pageview'); }); it('should not send twice with same URL, back-to-back', () => { gaService.sendPage('testUrl'); gaSpy.calls.reset(); gaService.sendPage('testUrl'); expect(gaSpy).not.toHaveBeenCalled(); }); it('should send again even if only the hash changes', () => { // Therefore it is up to caller NOT to call it when hash changes if this is unwanted. // See LocationService and its specs gaService.sendPage('testUrl#one'); expect(gaSpy).toHaveBeenCalledWith('set', 'page', '/testUrl#one'); expect(gaSpy).toHaveBeenCalledWith('send', 'pageview'); gaSpy.calls.reset(); gaService.sendPage('testUrl#two'); expect(gaSpy).toHaveBeenCalledWith('set', 'page', '/testUrl#two'); expect(gaSpy).toHaveBeenCalledWith('send', 'pageview'); }); it('should send same URL twice when other intervening URL', () => { gaService.sendPage('testUrl'); expect(gaSpy).toHaveBeenCalledWith('set', 'page', '/testUrl'); expect(gaSpy).toHaveBeenCalledWith('send', 'pageview'); gaSpy.calls.reset(); gaService.sendPage('testUrl2'); expect(gaSpy).toHaveBeenCalledWith('set', 'page', '/testUrl2'); expect(gaSpy).toHaveBeenCalledWith('send', 'pageview'); gaSpy.calls.reset(); gaService.sendPage('testUrl'); expect(gaSpy).toHaveBeenCalledWith('set', 'page', '/testUrl'); expect(gaSpy).toHaveBeenCalledWith('send', 'pageview'); }); }); describe('sendEvent', () => { it('should send "event" with associated data', () => { gaService.sendEvent('some source', 'some campaign', 'a label', 45); expect(gaSpy).toHaveBeenCalledWith('send', 'event', 'some source', 'some campaign', 'a label', 45); }); }); it('should support replacing the `window.ga` function', () => { const gaSpy2 = jasmine.createSpy('new ga'); mockWindow.ga = gaSpy2; gaSpy.calls.reset(); gaService.sendPage('testUrl'); expect(gaSpy).not.toHaveBeenCalled(); expect(gaSpy2).toHaveBeenCalledWith('set', 'page', '/testUrl'); expect(gaSpy2).toHaveBeenCalledWith('send', 'pageview'); }); }); rxjs-7.5.7/docs_app/src/app/shared/ga.service.ts000066400000000000000000000022061431412030200215110ustar00rootroot00000000000000import { Inject, Injectable } from '@angular/core'; import { environment } from '../../environments/environment'; import { WindowToken } from 'app/shared/window'; @Injectable() /** * Google Analytics Service - captures app behaviors and sends them to Google Analytics (GA). * Presupposes that GA script has been loaded from a script on the host web page. * Associates data with a GA "property" from the environment (`gaId`). */ export class GaService { private previousUrl: string; constructor(@Inject(WindowToken) private window: Window) { this.ga('create', environment['gaId'] , 'auto'); } locationChanged(url: string) { this.sendPage(url); } sendPage(url: string) { // Won't re-send if the url hasn't changed. if (url === this.previousUrl) { return; } this.previousUrl = url; this.ga('set', 'page', '/' + url); this.ga('send', 'pageview'); } sendEvent(source: string, action: string, label?: string, value?: number) { this.ga('send', 'event', source, action, label, value); } ga(...args: any[]) { const gaFn = (this.window as any)['ga']; if (gaFn) { gaFn(...args); } } } rxjs-7.5.7/docs_app/src/app/shared/location.service.spec.ts000066400000000000000000000504021431412030200236640ustar00rootroot00000000000000import { ReflectiveInjector } from '@angular/core'; import { Location, LocationStrategy, PlatformLocation } from '@angular/common'; import { MockLocationStrategy } from '@angular/common/testing'; import { Subject } from 'rxjs'; import { GaService } from 'app/shared/ga.service'; import { SwUpdatesService } from 'app/sw-updates/sw-updates.service'; import { LocationService } from './location.service'; describe('LocationService', () => { let injector: ReflectiveInjector; let location: MockLocationStrategy; let service: LocationService; let swUpdates: MockSwUpdatesService; beforeEach(() => { injector = ReflectiveInjector.resolveAndCreate([ LocationService, Location, { provide: GaService, useClass: TestGaService }, { provide: LocationStrategy, useClass: MockLocationStrategy }, { provide: PlatformLocation, useClass: MockPlatformLocation }, { provide: SwUpdatesService, useClass: MockSwUpdatesService } ]); location = injector.get(LocationStrategy); service = injector.get(LocationService); swUpdates = injector.get(SwUpdatesService); }); describe('currentUrl', () => { it('should emit the latest url at the time it is subscribed to', () => { location.simulatePopState('/initial-url1'); location.simulatePopState('/initial-url2'); location.simulatePopState('/initial-url3'); location.simulatePopState('/next-url1'); location.simulatePopState('/next-url2'); location.simulatePopState('/next-url3'); let initialUrl: string|undefined; service.currentUrl.subscribe(url => initialUrl = url); expect(initialUrl).toEqual('next-url3'); }); it('should emit all location changes after it has been subscribed to', () => { location.simulatePopState('/initial-url1'); location.simulatePopState('/initial-url2'); location.simulatePopState('/initial-url3'); const urls: string[] = []; service.currentUrl.subscribe(url => urls.push(url)); location.simulatePopState('/next-url1'); location.simulatePopState('/next-url2'); location.simulatePopState('/next-url3'); expect(urls).toEqual([ 'initial-url3', 'next-url1', 'next-url2', 'next-url3' ]); }); it('should pass only the latest and later urls to each subscriber', () => { location.simulatePopState('/initial-url1'); location.simulatePopState('/initial-url2'); location.simulatePopState('/initial-url3'); const urls1: string[] = []; service.currentUrl.subscribe(url => urls1.push(url)); location.simulatePopState('/next-url1'); location.simulatePopState('/next-url2'); const urls2: string[] = []; service.currentUrl.subscribe(url => urls2.push(url)); location.simulatePopState('/next-url3'); expect(urls1).toEqual([ 'initial-url3', 'next-url1', 'next-url2', 'next-url3' ]); expect(urls2).toEqual([ 'next-url2', 'next-url3' ]); }); it('should strip leading and trailing slashes', () => { const urls: string[] = []; service.currentUrl.subscribe(u => urls.push(u)); location.simulatePopState('///some/url1///'); location.simulatePopState('///some/url2///?foo=bar'); location.simulatePopState('///some/url3///#baz'); location.simulatePopState('///some/url4///?foo=bar#baz'); expect(urls.slice(-4)).toEqual([ 'some/url1', 'some/url2?foo=bar', 'some/url3#baz', 'some/url4?foo=bar#baz' ]); }); }); describe('currentPath', () => { it('should strip leading and trailing slashes off the url', () => { const paths: string[] = []; service.currentPath.subscribe(p => paths.push(p)); location.simulatePopState('///initial/url1///'); location.simulatePopState('///initial/url2///?foo=bar'); location.simulatePopState('///initial/url3///#baz'); location.simulatePopState('///initial/url4///?foo=bar#baz'); expect(paths.slice(-4)).toEqual([ 'initial/url1', 'initial/url2', 'initial/url3', 'initial/url4' ]); }); it('should not strip other slashes off the url', () => { const paths: string[] = []; service.currentPath.subscribe(p => paths.push(p)); location.simulatePopState('initial///url1'); location.simulatePopState('initial///url2?foo=bar'); location.simulatePopState('initial///url3#baz'); location.simulatePopState('initial///url4?foo=bar#baz'); expect(paths.slice(-4)).toEqual([ 'initial///url1', 'initial///url2', 'initial///url3', 'initial///url4' ]); }); it('should strip the query off the url', () => { let path: string|undefined; service.currentPath.subscribe(p => path = p); location.simulatePopState('/initial/url1?foo=bar'); expect(path).toBe('initial/url1'); }); it('should strip the hash fragment off the url', () => { const paths: string[] = []; service.currentPath.subscribe(p => paths.push(p)); location.simulatePopState('/initial/url1#foo'); location.simulatePopState('/initial/url2?foo=bar#baz'); expect(paths.slice(-2)).toEqual([ 'initial/url1', 'initial/url2' ]); }); it('should emit the latest path at the time it is subscribed to', () => { location.simulatePopState('/initial/url1'); location.simulatePopState('/initial/url2'); location.simulatePopState('/initial/url3'); location.simulatePopState('/next/url1'); location.simulatePopState('/next/url2'); location.simulatePopState('/next/url3'); let initialPath: string|undefined; service.currentPath.subscribe(path => initialPath = path); expect(initialPath).toEqual('next/url3'); }); it('should emit all location changes after it has been subscribed to', () => { location.simulatePopState('/initial/url1'); location.simulatePopState('/initial/url2'); location.simulatePopState('/initial/url3'); const paths: string[] = []; service.currentPath.subscribe(path => paths.push(path)); location.simulatePopState('/next/url1'); location.simulatePopState('/next/url2'); location.simulatePopState('/next/url3'); expect(paths).toEqual([ 'initial/url3', 'next/url1', 'next/url2', 'next/url3' ]); }); it('should pass only the latest and later paths to each subscriber', () => { location.simulatePopState('/initial/url1'); location.simulatePopState('/initial/url2'); location.simulatePopState('/initial/url3'); const paths1: string[] = []; service.currentPath.subscribe(path => paths1.push(path)); location.simulatePopState('/next/url1'); location.simulatePopState('/next/url2'); const paths2: string[] = []; service.currentPath.subscribe(path => paths2.push(path)); location.simulatePopState('/next/url3'); expect(paths1).toEqual([ 'initial/url3', 'next/url1', 'next/url2', 'next/url3' ]); expect(paths2).toEqual([ 'next/url2', 'next/url3' ]); }); }); describe('go', () => { it('should update the location', () => { service.go('some-new-url'); expect(location.internalPath).toEqual('some-new-url'); expect(location.path(true)).toEqual('some-new-url'); }); it('should emit the new url', () => { const urls: string[] = []; service.go('some-initial-url'); service.currentUrl.subscribe(url => urls.push(url)); service.go('some-new-url'); expect(urls).toEqual([ 'some-initial-url', 'some-new-url' ]); }); it('should strip leading and trailing slashes', () => { let url: string|undefined; service.currentUrl.subscribe(u => url = u); service.go('/some/url/'); expect(location.internalPath).toEqual('some/url'); expect(location.path(true)).toEqual('some/url'); expect(url).toBe('some/url'); }); it('should ignore empty URL string', () => { const initialUrl = 'some/url'; const goExternalSpy = spyOn(service, 'goExternal'); let url: string|undefined; service.go(initialUrl); service.currentUrl.subscribe(u => url = u); service.go(''); expect(url).toEqual(initialUrl, 'should not have re-navigated locally'); expect(goExternalSpy).not.toHaveBeenCalled(); }); it('should leave the site for external url that starts with "http"', () => { const goExternalSpy = spyOn(service, 'goExternal'); const externalUrl = 'http://some/far/away/land'; service.go(externalUrl); expect(goExternalSpy).toHaveBeenCalledWith(externalUrl); }); it('should do a "full page navigation" if a ServiceWorker update has been activated', () => { const goExternalSpy = spyOn(service, 'goExternal'); // Internal URL - No ServiceWorker update service.go('some-internal-url'); expect(goExternalSpy).not.toHaveBeenCalled(); expect(location.path(true)).toEqual('some-internal-url'); // Internal URL - ServiceWorker update swUpdates.updateActivated.next('foo'); service.go('other-internal-url'); expect(goExternalSpy).toHaveBeenCalledWith('other-internal-url'); expect(location.path(true)).toEqual('some-internal-url'); }); it('should not update currentUrl for external url that starts with "http"', () => { let localUrl: string|undefined; spyOn(service, 'goExternal'); service.currentUrl.subscribe(url => localUrl = url); service.go('https://some/far/away/land'); expect(localUrl).toBeFalsy('should not set local url'); }); }); describe('search', () => { it('should read the query from the current location.path', () => { location.simulatePopState('a/b/c?foo=bar&moo=car'); expect(service.search()).toEqual({ foo: 'bar', moo: 'car' }); }); it('should cope with an empty query', () => { location.simulatePopState('a/b/c'); expect(service.search()).toEqual({ }); location.simulatePopState('x/y/z?'); expect(service.search()).toEqual({ }); location.simulatePopState('x/y/z?x='); expect(service.search()).toEqual({ x: '' }); location.simulatePopState('x/y/z?x'); expect(service.search()).toEqual({ x: undefined }); }); it('should URL decode query values', () => { location.simulatePopState('a/b/c?query=a%26b%2Bc%20d'); expect(service.search()).toEqual({ query: 'a&b+c d' }); }); it('should URL decode query keys', () => { location.simulatePopState('a/b/c?a%26b%2Bc%20d=value'); expect(service.search()).toEqual({ 'a&b+c d': 'value' }); }); it('should cope with a hash on the URL', () => { spyOn(location, 'path').and.callThrough(); service.search(); expect(location.path).toHaveBeenCalledWith(false); }); }); describe('setSearch', () => { let platformLocation: MockPlatformLocation; beforeEach(() => { platformLocation = injector.get(PlatformLocation); }); it('should call replaceState on PlatformLocation', () => { const params = {}; service.setSearch('Some label', params); expect(platformLocation.replaceState).toHaveBeenCalledWith(jasmine.any(Object), 'Some label', 'a/b/c'); }); it('should convert the params to a query string', () => { const params = { foo: 'bar', moo: 'car' }; service.setSearch('Some label', params); expect(platformLocation.replaceState).toHaveBeenCalledWith(jasmine.any(Object), 'Some label', jasmine.any(String)); const [path, query] = platformLocation.replaceState.calls.mostRecent().args[2].split('?'); expect(path).toEqual('a/b/c'); expect(query).toContain('foo=bar'); expect(query).toContain('moo=car'); }); it('should URL encode param values', () => { const params = { query: 'a&b+c d' }; service.setSearch('', params); const [, query] = platformLocation.replaceState.calls.mostRecent().args[2].split('?'); expect(query).toContain('query=a%26b%2Bc%20d'); }); it('should URL encode param keys', () => { const params = { 'a&b+c d': 'value' }; service.setSearch('', params); const [, query] = platformLocation.replaceState.calls.mostRecent().args[2].split('?'); expect(query).toContain('a%26b%2Bc%20d=value'); }); }); describe('handleAnchorClick', () => { let anchor: HTMLAnchorElement; beforeEach(() => { anchor = document.createElement('a'); spyOn(service, 'go'); }); describe('should try to navigate with go() when anchor clicked for', () => { it('relative local url', () => { anchor.href = 'some/local/url'; const result = service.handleAnchorClick(anchor); expect(service.go).toHaveBeenCalledWith('/some/local/url'); expect(result).toBe(false); }); it('absolute local url', () => { anchor.href = '/some/local/url'; const result = service.handleAnchorClick(anchor); expect(service.go).toHaveBeenCalledWith('/some/local/url'); expect(result).toBe(false); }); it('local url with query params', () => { anchor.href = 'some/local/url?query=xxx&other=yyy'; const result = service.handleAnchorClick(anchor); expect(service.go).toHaveBeenCalledWith('/some/local/url?query=xxx&other=yyy'); expect(result).toBe(false); }); it('local url with hash fragment', () => { anchor.href = 'some/local/url#somefragment'; const result = service.handleAnchorClick(anchor); expect(service.go).toHaveBeenCalledWith('/some/local/url#somefragment'); expect(result).toBe(false); }); it('local url with query params and hash fragment', () => { anchor.href = 'some/local/url?query=xxx&other=yyy#somefragment'; const result = service.handleAnchorClick(anchor); expect(service.go).toHaveBeenCalledWith('/some/local/url?query=xxx&other=yyy#somefragment'); expect(result).toBe(false); }); it('local url with period in a path segment but no extension', () => { anchor.href = 'tut.or.ial/toh-p2'; const result = service.handleAnchorClick(anchor); expect(service.go).toHaveBeenCalled(); expect(result).toBe(false); }); }); describe('should let browser handle anchor click when', () => { it('url is external to the site', () => { anchor.href = 'http://other.com/some/local/url?query=xxx&other=yyy#somefragment'; let result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true); anchor.href = 'some/local/url.pdf'; anchor.protocol = 'ftp'; result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true); }); it('mouse button is not zero (middle or right)', () => { anchor.href = 'some/local/url'; const result = service.handleAnchorClick(anchor, 1, false, false); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true); }); it('ctrl key is pressed', () => { anchor.href = 'some/local/url'; const result = service.handleAnchorClick(anchor, 0, true, false); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true); }); it('meta key is pressed', () => { anchor.href = 'some/local/url'; const result = service.handleAnchorClick(anchor, 0, false, true); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true); }); it('anchor has (non-_self) target', () => { anchor.href = 'some/local/url'; anchor.target = '_blank'; let result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true); anchor.target = '_parent'; result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true); anchor.target = '_top'; result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true); anchor.target = 'other-frame'; result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true); anchor.target = '_self'; result = service.handleAnchorClick(anchor); expect(service.go).toHaveBeenCalledWith('/some/local/url'); expect(result).toBe(false); }); it('zip url', () => { anchor.href = 'tutorial/toh-p2.zip'; const result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true); }); it('image or media url', () => { anchor.href = 'cat-photo.png'; let result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true, 'png'); anchor.href = 'cat-photo.gif'; result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true, 'gif'); anchor.href = 'cat-photo.jpg'; result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true, 'jpg'); anchor.href = 'dog-bark.mp3'; result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true, 'mp3'); anchor.href = 'pet-tricks.mp4'; result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true, 'mp4'); }); it('url has any extension', () => { anchor.href = 'tutorial/toh-p2.html'; const result = service.handleAnchorClick(anchor); expect(service.go).not.toHaveBeenCalled(); expect(result).toBe(true); }); }); }); describe('google analytics - GaService#locationChanged', () => { let gaLocationChanged: jasmine.Spy; beforeEach(() => { const gaService = injector.get(GaService); gaLocationChanged = gaService.locationChanged; // execute currentPath observable so that gaLocationChanged is called service.currentPath.subscribe(); }); it('should call locationChanged with initial URL', () => { const initialUrl = location.path().replace(/^\/+/, ''); // strip leading slashes expect(gaLocationChanged.calls.count()).toBe(1, 'gaService.locationChanged'); const args = gaLocationChanged.calls.first().args; expect(args[0]).toBe(initialUrl); }); it('should call locationChanged when `go` to a page', () => { service.go('some-new-url'); expect(gaLocationChanged.calls.count()).toBe(2, 'gaService.locationChanged'); const args = gaLocationChanged.calls.argsFor(1); expect(args[0]).toBe('some-new-url'); }); it('should call locationChanged with url stripped of hash or query', () => { // Important to keep GA service from sending tracking event when the doc hasn't changed // e.g., when the user navigates within the page via # fragments. service.go('some-new-url#one'); service.go('some-new-url#two'); service.go('some-new-url/?foo="true"'); expect(gaLocationChanged.calls.count()).toBe(4, 'gaService.locationChanged called'); const args = gaLocationChanged.calls.allArgs(); expect(args[1]).toEqual(args[2], 'same url for hash calls'); expect(args[1]).toEqual(args[3], 'same url for query string call'); }); it('should call locationChanged when window history changes', () => { location.simulatePopState('/next-url'); expect(gaLocationChanged.calls.count()).toBe(2, 'gaService.locationChanged'); const args = gaLocationChanged.calls.argsFor(1); expect(args[0]).toBe('next-url'); }); }); }); /// Test Helpers /// class MockPlatformLocation { pathname = 'a/b/c'; replaceState = jasmine.createSpy('PlatformLocation.replaceState'); } class MockSwUpdatesService { updateActivated = new Subject(); } class TestGaService { locationChanged = jasmine.createSpy('locationChanged'); } rxjs-7.5.7/docs_app/src/app/shared/location.service.ts000066400000000000000000000117501431412030200227360ustar00rootroot00000000000000import { Injectable } from '@angular/core'; import { Location, PlatformLocation } from '@angular/common'; import { ReplaySubject } from 'rxjs'; import { map, tap } from 'rxjs/operators'; import { GaService } from 'app/shared/ga.service'; import { SwUpdatesService } from 'app/sw-updates/sw-updates.service'; @Injectable() export class LocationService { private readonly urlParser = document.createElement('a'); private urlSubject = new ReplaySubject(1); private swUpdateActivated = false; currentUrl = this.urlSubject .pipe(map(url => this.stripSlashes(url))); currentPath = this.currentUrl.pipe( map(url => (url.match(/[^?#]*/) || [])[0]), // strip query and hash tap(path => this.gaService.locationChanged(path)), ); constructor( private gaService: GaService, private location: Location, private platformLocation: PlatformLocation, swUpdates: SwUpdatesService) { this.urlSubject.next(location.path(true)); this.location.subscribe(state => { return this.urlSubject.next(state.url || ''); }); swUpdates.updateActivated.subscribe(() => this.swUpdateActivated = true); } // TODO: ignore if url-without-hash-or-search matches current location? go(url: string|null|undefined) { if (!url) { return; } url = this.stripSlashes(url); if (/^http/.test(url) || this.swUpdateActivated) { // Has http protocol so leave the site // (or do a "full page navigation" if a ServiceWorker update has been activated) this.goExternal(url); } else { this.location.go(url); this.urlSubject.next(url); } } goExternal(url: string) { window.location.assign(url); } replace(url: string) { window.location.replace(url); } private stripSlashes(url: string) { return url.replace(/^\/+/, '').replace(/\/+(\?|#|$)/, '$1'); } search() { const search: { [index: string]: string|undefined; } = {}; const path = this.location.path(); const q = path.indexOf('?'); if (q > -1) { try { const params = path.substr(q + 1).split('&'); params.forEach(p => { const pair = p.split('='); if (pair[0]) { search[decodeURIComponent(pair[0])] = pair[1] && decodeURIComponent(pair[1]); } }); } catch (e) { /* don't care */ } } return search; } setSearch(label: string, params: { [key: string]: string|undefined}) { const search = Object.keys(params).reduce((acc, key) => { const value = params[key]; return (value === undefined) ? acc : acc += (acc ? '&' : '?') + `${encodeURIComponent(key)}=${encodeURIComponent(value)}`; }, ''); this.platformLocation.replaceState({}, label, this.platformLocation.pathname + search); } /** * Handle user's anchor click * * @param anchor {HTMLAnchorElement} - the anchor element clicked * @param button Number of the mouse button held down. 0 means left or none * @param ctrlKey True if control key held down * @param metaKey True if command or window key held down * @return false if service navigated with `go()`; true if browser should handle it. * * Since we are using `LocationService` to navigate between docs, without the browser * reloading the page, we must intercept clicks on links. * If the link is to a document that we will render, then we navigate using `Location.go()` * and tell the browser not to handle the event. * * In most apps you might do this in a `LinkDirective` attached to anchors but in this app * we have a special situation where the `DocViewerComponent` is displaying semi-static * content that cannot contain directives. So all the links in that content would not be * able to use such a `LinkDirective`. Instead we are adding a click handler to the * `AppComponent`, whose element contains all the of the application and so captures all * link clicks both inside and outside the `DocViewerComponent`. */ handleAnchorClick(anchor: HTMLAnchorElement, button = 0, ctrlKey = false, metaKey = false) { // Check for modifier keys and non-left-button, which indicate the user wants to control navigation if (button !== 0 || ctrlKey || metaKey) { return true; } // If there is a target and it is not `_self` then we take this // as a signal that it doesn't want to be intercepted. // TODO: should we also allow an explicit `_self` target to opt-out? const anchorTarget = anchor.target; if (anchorTarget && anchorTarget !== '_self') { return true; } if (anchor.getAttribute('download') != null) { return true; // let the download happen } const { pathname, search, hash } = anchor; const relativeUrl = pathname + search + hash; this.urlParser.href = relativeUrl; // don't navigate if external link or has extension if ( anchor.href !== this.urlParser.href || !/\/[^/.]*$/.test(pathname) ) { return true; } // approved for navigation this.go(relativeUrl); return false; } } rxjs-7.5.7/docs_app/src/app/shared/logger.service.spec.ts000066400000000000000000000025051431412030200233340ustar00rootroot00000000000000import { ErrorHandler, ReflectiveInjector } from '@angular/core'; import { Logger } from './logger.service'; describe('logger service', () => { let logSpy: jasmine.Spy; let warnSpy: jasmine.Spy; let logger: Logger; let errorHandler: ErrorHandler; beforeEach(() => { logSpy = spyOn(console, 'log'); warnSpy = spyOn(console, 'warn'); const injector = ReflectiveInjector.resolveAndCreate([ Logger, { provide: ErrorHandler, useClass: MockErrorHandler } ]); logger = injector.get(Logger); errorHandler = injector.get(ErrorHandler); }); describe('log', () => { it('should delegate to console.log', () => { logger.log('param1', 'param2', 'param3'); expect(logSpy).toHaveBeenCalledWith('param1', 'param2', 'param3'); }); }); describe('warn', () => { it('should delegate to console.warn', () => { logger.warn('param1', 'param2', 'param3'); expect(warnSpy).toHaveBeenCalledWith('param1', 'param2', 'param3'); }); }); describe('error', () => { it('should delegate to ErrorHandler', () => { const err = new Error('some error message'); logger.error(err); expect(errorHandler.handleError).toHaveBeenCalledWith(err); }); }); }); class MockErrorHandler implements ErrorHandler { handleError = jasmine.createSpy('handleError'); } rxjs-7.5.7/docs_app/src/app/shared/logger.service.ts000066400000000000000000000007361431412030200224070ustar00rootroot00000000000000import { ErrorHandler, Injectable } from '@angular/core'; import { environment } from '../../environments/environment'; @Injectable() export class Logger { constructor(private errorHandler: ErrorHandler) {} log(value: any, ...rest: any[]) { if (!environment.production) { console.log(value, ...rest); } } error(error: Error) { this.errorHandler.handleError(error); } warn(value: any, ...rest: any[]) { console.warn(value, ...rest); } } rxjs-7.5.7/docs_app/src/app/shared/reporting-error-handler.spec.ts000066400000000000000000000045401431412030200251720ustar00rootroot00000000000000import { ErrorHandler, ReflectiveInjector } from '@angular/core'; import { TestBed } from '@angular/core/testing'; import { WindowToken } from 'app/shared/window'; import { AppModule } from 'app/app.module'; import { ReportingErrorHandler } from './reporting-error-handler'; describe('ReportingErrorHandler service', () => { let handler: ReportingErrorHandler; let superHandler: jasmine.Spy; let onerrorSpy: jasmine.Spy; beforeEach(() => { onerrorSpy = jasmine.createSpy('onerror'); superHandler = spyOn(ErrorHandler.prototype, 'handleError'); const injector = ReflectiveInjector.resolveAndCreate([ { provide: ErrorHandler, useClass: ReportingErrorHandler }, { provide: WindowToken, useFactory: () => ({ onerror: onerrorSpy }) } ]); handler = injector.get(ErrorHandler); }); it('should be registered on the AppModule', () => { handler = TestBed.configureTestingModule({ imports: [AppModule] }).get(ErrorHandler); expect(handler).toEqual(jasmine.any(ReportingErrorHandler)); }); describe('handleError', () => { it('should call the super class handleError', () => { const error = new Error(); handler.handleError(error); expect(superHandler).toHaveBeenCalledWith(error); }); it('should cope with the super handler throwing an error', () => { const error = new Error('initial error'); superHandler.and.throwError('super handler error'); handler.handleError(error); expect(onerrorSpy).toHaveBeenCalledTimes(2); // Error from super handler is reported first expect(onerrorSpy.calls.argsFor(0)[0]).toEqual('super handler error'); expect(onerrorSpy.calls.argsFor(0)[4]).toEqual(jasmine.any(Error)); // Then error from initial exception expect(onerrorSpy.calls.argsFor(1)[0]).toEqual('initial error'); expect(onerrorSpy.calls.argsFor(1)[4]).toEqual(error); }); it('should send an error object to window.onerror', () => { const error = new Error('this is an error message'); handler.handleError(error); expect(onerrorSpy).toHaveBeenCalledWith(error.message, undefined, undefined, undefined, error); }); it('should send an error string to window.onerror', () => { const error = 'this is an error message'; handler.handleError(error); expect(onerrorSpy).toHaveBeenCalledWith(error); }); }); }); rxjs-7.5.7/docs_app/src/app/shared/reporting-error-handler.ts000066400000000000000000000023201431412030200242330ustar00rootroot00000000000000import { ErrorHandler, Inject, Injectable } from '@angular/core'; import { WindowToken } from './window'; /** * Extend the default error handling to report errors to an external service - e.g Google Analytics. * * Errors outside the Angular application may also be handled by `window.onerror`. */ @Injectable() export class ReportingErrorHandler extends ErrorHandler { constructor(@Inject(WindowToken) private window: Window) { super(); } /** * Send error info to Google Analytics, in addition to the default handling. * @param error Information about the error. */ handleError(error: string | Error) { try { super.handleError(error); } catch (e) { this.reportError(e); } this.reportError(error); } private reportError(error: unknown) { if (this.window.onerror) { if (error instanceof Error) { this.window.onerror(error.message, undefined, undefined, undefined, error); } else { if (typeof error === 'object') { try { error = JSON.stringify(error); } catch { // Ignore the error and just let it be stringified. } } this.window.onerror(`${error}`); } } } } rxjs-7.5.7/docs_app/src/app/shared/scroll-spy.service.spec.ts000066400000000000000000000417631431412030200241750ustar00rootroot00000000000000import { Injector, ReflectiveInjector } from '@angular/core'; import { fakeAsync, tick } from '@angular/core/testing'; import { DOCUMENT } from '@angular/common'; import { ScrollService } from 'app/shared/scroll.service'; import { ScrollItem, ScrollSpiedElement, ScrollSpiedElementGroup, ScrollSpyService } from 'app/shared/scroll-spy.service'; describe('ScrollSpiedElement', () => { it('should expose the spied element and index', () => { const elem = {} as Element; const spiedElem = new ScrollSpiedElement(elem, 42); expect(spiedElem.element).toBe(elem); expect(spiedElem.index).toBe(42); }); describe('#calculateTop()', () => { it('should calculate the `top` value', () => { const elem = {getBoundingClientRect: () => ({top: 100})} as Element; const spiedElem = new ScrollSpiedElement(elem, 42); spiedElem.calculateTop(0, 0); expect(spiedElem.top).toBe(100); spiedElem.calculateTop(20, 0); expect(spiedElem.top).toBe(120); spiedElem.calculateTop(0, 10); expect(spiedElem.top).toBe(90); spiedElem.calculateTop(20, 10); expect(spiedElem.top).toBe(110); }); }); }); describe('ScrollSpiedElementGroup', () => { describe('#calibrate()', () => { it('should calculate `top` for all spied elements', () => { const spy = spyOn(ScrollSpiedElement.prototype, 'calculateTop'); const elems = [{}, {}, {}] as Element[]; const group = new ScrollSpiedElementGroup(elems); expect(spy).not.toHaveBeenCalled(); group.calibrate(20, 10); const callInfo = spy.calls.all(); expect(spy).toHaveBeenCalledTimes(3); expect(callInfo[0].object.index).toBe(0); expect(callInfo[1].object.index).toBe(1); expect(callInfo[2].object.index).toBe(2); expect(callInfo[0].args).toEqual([20, 10]); expect(callInfo[1].args).toEqual([20, 10]); expect(callInfo[2].args).toEqual([20, 10]); }); }); describe('#onScroll()', () => { let group: ScrollSpiedElementGroup; let activeItems: (ScrollItem|null)[]; const activeIndices = () => activeItems.map(x => x && x.index); beforeEach(() => { const tops = [50, 150, 100]; spyOn(ScrollSpiedElement.prototype, 'calculateTop').and.callFake( function(this: ScrollSpiedElement, scrollTop: number, topOffset: number) { this.top = tops[this.index]; }); activeItems = []; group = new ScrollSpiedElementGroup([{}, {}, {}] as Element[]); group.activeScrollItem.subscribe(item => activeItems.push(item)); group.calibrate(20, 10); }); it('should emit a `ScrollItem` on `activeScrollItem`', () => { expect(activeItems.length).toBe(0); group.onScroll(20, 140); expect(activeItems.length).toBe(1); group.onScroll(20, 140); expect(activeItems.length).toBe(2); }); it('should emit the lower-most element that is above `scrollTop`', () => { group.onScroll(45, 200); group.onScroll(55, 200); expect(activeIndices()).toEqual([null, 0]); activeItems.length = 0; group.onScroll(95, 200); group.onScroll(105, 200); expect(activeIndices()).toEqual([0, 2]); activeItems.length = 0; group.onScroll(145, 200); group.onScroll(155, 200); expect(activeIndices()).toEqual([2, 1]); activeItems.length = 0; group.onScroll(75, 200); group.onScroll(175, 200); group.onScroll(125, 200); group.onScroll(25, 200); expect(activeIndices()).toEqual([0, 1, 2, null]); }); it('should always emit the lower-most element if scrolled to the bottom', () => { group.onScroll(140, 140); group.onScroll(145, 140); group.onScroll(138.5, 140); group.onScroll(139.5, 140); expect(activeIndices()).toEqual([1, 1, 2, 1]); }); it('should emit null if all elements are below `scrollTop`', () => { group.onScroll(0, 140); expect(activeItems).toEqual([null]); group.onScroll(49, 140); expect(activeItems).toEqual([null, null]); }); it('should emit null if there are no spied elements (even if scrolled to the bottom)', () => { group = new ScrollSpiedElementGroup([]); group.activeScrollItem.subscribe(item => activeItems.push(item)); group.onScroll(20, 140); expect(activeItems).toEqual([null]); group.onScroll(140, 140); expect(activeItems).toEqual([null, null]); group.onScroll(145, 140); expect(activeItems).toEqual([null, null, null]); }); }); }); describe('ScrollSpyService', () => { let injector: Injector; let scrollSpyService: ScrollSpyService; beforeEach(() => { injector = ReflectiveInjector.resolveAndCreate([ { provide: DOCUMENT, useValue: { body: {} } }, { provide: ScrollService, useValue: { topOffset: 50 } }, ScrollSpyService ]); scrollSpyService = injector.get(ScrollSpyService); }); describe('#spyOn()', () => { let getSpiedElemGroups: () => ScrollSpiedElementGroup[]; beforeEach(() => { getSpiedElemGroups = () => (scrollSpyService as any).spiedElementGroups; }); it('should create a `ScrollSpiedElementGroup` when called', () => { expect(getSpiedElemGroups().length).toBe(0); scrollSpyService.spyOn([]); expect(getSpiedElemGroups().length).toBe(1); }); it('should initialize the newly created `ScrollSpiedElementGroup`', () => { const calibrateSpy = spyOn(ScrollSpiedElementGroup.prototype, 'calibrate'); const onScrollSpy = spyOn(ScrollSpiedElementGroup.prototype, 'onScroll'); scrollSpyService.spyOn([]); expect(calibrateSpy).toHaveBeenCalledTimes(1); expect(onScrollSpy).toHaveBeenCalledTimes(1); scrollSpyService.spyOn([]); expect(calibrateSpy).toHaveBeenCalledTimes(2); expect(onScrollSpy).toHaveBeenCalledTimes(2); }); it('should call `onResize()` if it is the first `ScrollSpiedElementGroup`', () => { const actions: string[] = []; const onResizeSpy = spyOn(ScrollSpyService.prototype as any, 'onResize') .and.callFake(() => actions.push('onResize')); const calibrateSpy = spyOn(ScrollSpiedElementGroup.prototype, 'calibrate') .and.callFake(() => actions.push('calibrate')); expect(onResizeSpy).not.toHaveBeenCalled(); expect(calibrateSpy).not.toHaveBeenCalled(); scrollSpyService.spyOn([]); expect(actions).toEqual(['onResize', 'calibrate']); scrollSpyService.spyOn([]); expect(actions).toEqual(['onResize', 'calibrate', 'calibrate']); }); it('should forward `ScrollSpiedElementGroup#activeScrollItem` as `active`', () => { const activeIndices1: (number | null)[] = []; const activeIndices2: (number | null)[] = []; const info1 = scrollSpyService.spyOn([]); const info2 = scrollSpyService.spyOn([]); const spiedElemGroups = getSpiedElemGroups(); info1.active.subscribe(item => activeIndices1.push(item && item.index)); info2.active.subscribe(item => activeIndices2.push(item && item.index)); activeIndices1.length = 0; activeIndices2.length = 0; spiedElemGroups[0].activeScrollItem.next({index: 1} as ScrollItem); spiedElemGroups[0].activeScrollItem.next({index: 2} as ScrollItem); spiedElemGroups[1].activeScrollItem.next({index: 3} as ScrollItem); spiedElemGroups[0].activeScrollItem.next(null); spiedElemGroups[1].activeScrollItem.next({index: 4} as ScrollItem); spiedElemGroups[1].activeScrollItem.next(null); spiedElemGroups[0].activeScrollItem.next({index: 5} as ScrollItem); spiedElemGroups[1].activeScrollItem.next({index: 6} as ScrollItem); expect(activeIndices1).toEqual([1, 2, null, 5]); expect(activeIndices2).toEqual([3, 4, null, 6]); }); it('should remember and emit the last active item to new subscribers', () => { const items = [{index: 1}, {index: 2}, {index: 3}] as ScrollItem[]; let lastActiveItem: ScrollItem|null; const info = scrollSpyService.spyOn([]); const spiedElemGroup = getSpiedElemGroups()[0]; spiedElemGroup.activeScrollItem.next(items[0]); spiedElemGroup.activeScrollItem.next(items[1]); spiedElemGroup.activeScrollItem.next(items[2]); spiedElemGroup.activeScrollItem.next(null); spiedElemGroup.activeScrollItem.next(items[1]); info.active.subscribe(item => lastActiveItem = item); expect(lastActiveItem!).toBe(items[1]); spiedElemGroup.activeScrollItem.next(null); info.active.subscribe(item => lastActiveItem = item); expect(lastActiveItem!).toBeNull(); }); it('should only emit distinct values on `active`', () => { const items = [{index: 1}, {index: 2}] as ScrollItem[]; const activeIndices: (number | null)[] = []; const info = scrollSpyService.spyOn([]); const spiedElemGroup = getSpiedElemGroups()[0]; info.active.subscribe(item => activeIndices.push(item && item.index)); activeIndices.length = 0; spiedElemGroup.activeScrollItem.next(items[0]); spiedElemGroup.activeScrollItem.next(items[0]); spiedElemGroup.activeScrollItem.next(items[1]); spiedElemGroup.activeScrollItem.next(items[1]); spiedElemGroup.activeScrollItem.next(null); spiedElemGroup.activeScrollItem.next(null); spiedElemGroup.activeScrollItem.next(items[0]); spiedElemGroup.activeScrollItem.next(items[1]); spiedElemGroup.activeScrollItem.next(null); expect(activeIndices).toEqual([1, 2, null, 1, 2, null]); }); it('should remove the corresponding `ScrollSpiedElementGroup` when calling `unspy()`', () => { const info1 = scrollSpyService.spyOn([]); const info2 = scrollSpyService.spyOn([]); const info3 = scrollSpyService.spyOn([]); const groups = getSpiedElemGroups().slice(); expect(getSpiedElemGroups()).toEqual(groups); info2.unspy(); expect(getSpiedElemGroups()).toEqual([groups[0], groups[2]]); info1.unspy(); expect(getSpiedElemGroups()).toEqual([groups[2]]); info3.unspy(); expect(getSpiedElemGroups()).toEqual([]); }); }); describe('window resize events', () => { const RESIZE_EVENT_DELAY = 300; let onResizeSpy: jasmine.Spy; beforeEach(() => { onResizeSpy = spyOn(ScrollSpyService.prototype as any, 'onResize'); }); it('should be subscribed to when the first group of elements is spied on', fakeAsync(() => { window.dispatchEvent(new Event('resize')); expect(onResizeSpy).not.toHaveBeenCalled(); scrollSpyService.spyOn([]); onResizeSpy.calls.reset(); window.dispatchEvent(new Event('resize')); expect(onResizeSpy).not.toHaveBeenCalled(); tick(RESIZE_EVENT_DELAY); expect(onResizeSpy).toHaveBeenCalled(); })); it('should be unsubscribed from when the last group of elements is removed', fakeAsync(() => { const info1 = scrollSpyService.spyOn([]); const info2 = scrollSpyService.spyOn([]); onResizeSpy.calls.reset(); window.dispatchEvent(new Event('resize')); tick(RESIZE_EVENT_DELAY); expect(onResizeSpy).toHaveBeenCalled(); info1.unspy(); onResizeSpy.calls.reset(); window.dispatchEvent(new Event('resize')); tick(RESIZE_EVENT_DELAY); expect(onResizeSpy).toHaveBeenCalled(); info2.unspy(); onResizeSpy.calls.reset(); window.dispatchEvent(new Event('resize')); tick(RESIZE_EVENT_DELAY); expect(onResizeSpy).not.toHaveBeenCalled(); })); it(`should only fire every ${RESIZE_EVENT_DELAY}ms`, fakeAsync(() => { scrollSpyService.spyOn([]); onResizeSpy.calls.reset(); window.dispatchEvent(new Event('resize')); tick(RESIZE_EVENT_DELAY - 2); expect(onResizeSpy).not.toHaveBeenCalled(); window.dispatchEvent(new Event('resize')); tick(1); expect(onResizeSpy).not.toHaveBeenCalled(); window.dispatchEvent(new Event('resize')); tick(1); expect(onResizeSpy).toHaveBeenCalledTimes(1); onResizeSpy.calls.reset(); tick(RESIZE_EVENT_DELAY / 2); window.dispatchEvent(new Event('resize')); tick(RESIZE_EVENT_DELAY - 2); expect(onResizeSpy).not.toHaveBeenCalled(); window.dispatchEvent(new Event('resize')); tick(1); expect(onResizeSpy).not.toHaveBeenCalled(); window.dispatchEvent(new Event('resize')); tick(1); expect(onResizeSpy).toHaveBeenCalledTimes(1); })); }); describe('window scroll events', () => { const SCROLL_EVENT_DELAY = 10; let onScrollSpy: jasmine.Spy; beforeEach(() => { onScrollSpy = spyOn(ScrollSpyService.prototype as any, 'onScroll'); }); it('should be subscribed to when the first group of elements is spied on', fakeAsync(() => { window.dispatchEvent(new Event('scroll')); expect(onScrollSpy).not.toHaveBeenCalled(); scrollSpyService.spyOn([]); window.dispatchEvent(new Event('scroll')); expect(onScrollSpy).not.toHaveBeenCalled(); tick(SCROLL_EVENT_DELAY); expect(onScrollSpy).toHaveBeenCalled(); })); it('should be unsubscribed from when the last group of elements is removed', fakeAsync(() => { const info1 = scrollSpyService.spyOn([]); const info2 = scrollSpyService.spyOn([]); window.dispatchEvent(new Event('scroll')); tick(SCROLL_EVENT_DELAY); expect(onScrollSpy).toHaveBeenCalled(); info1.unspy(); onScrollSpy.calls.reset(); window.dispatchEvent(new Event('scroll')); tick(SCROLL_EVENT_DELAY); expect(onScrollSpy).toHaveBeenCalled(); info2.unspy(); onScrollSpy.calls.reset(); window.dispatchEvent(new Event('scroll')); tick(SCROLL_EVENT_DELAY); expect(onScrollSpy).not.toHaveBeenCalled(); })); it(`should only fire every ${SCROLL_EVENT_DELAY}ms`, fakeAsync(() => { scrollSpyService.spyOn([]); window.dispatchEvent(new Event('scroll')); tick(SCROLL_EVENT_DELAY - 2); expect(onScrollSpy).not.toHaveBeenCalled(); window.dispatchEvent(new Event('scroll')); tick(1); expect(onScrollSpy).not.toHaveBeenCalled(); window.dispatchEvent(new Event('scroll')); tick(1); expect(onScrollSpy).toHaveBeenCalledTimes(1); onScrollSpy.calls.reset(); tick(SCROLL_EVENT_DELAY / 2); window.dispatchEvent(new Event('scroll')); tick(SCROLL_EVENT_DELAY - 2); expect(onScrollSpy).not.toHaveBeenCalled(); window.dispatchEvent(new Event('scroll')); tick(1); expect(onScrollSpy).not.toHaveBeenCalled(); window.dispatchEvent(new Event('scroll')); tick(1); expect(onScrollSpy).toHaveBeenCalledTimes(1); })); }); describe('#onResize()', () => { it('should re-calibrate each `ScrollSpiedElementGroup`', () => { scrollSpyService.spyOn([]); scrollSpyService.spyOn([]); scrollSpyService.spyOn([]); const spiedElemGroups: ScrollSpiedElementGroup[] = (scrollSpyService as any).spiedElementGroups; const calibrateSpies = spiedElemGroups.map(group => spyOn(group, 'calibrate')); calibrateSpies.forEach(spy => expect(spy).not.toHaveBeenCalled()); (scrollSpyService as any).onResize(); calibrateSpies.forEach(spy => expect(spy).toHaveBeenCalled()); }); }); describe('#onScroll()', () => { it('should propagate to each `ScrollSpiedElementGroup`', () => { scrollSpyService.spyOn([]); scrollSpyService.spyOn([]); scrollSpyService.spyOn([]); const spiedElemGroups: ScrollSpiedElementGroup[] = (scrollSpyService as any).spiedElementGroups; const onScrollSpies = spiedElemGroups.map(group => spyOn(group, 'onScroll')); onScrollSpies.forEach(spy => expect(spy).not.toHaveBeenCalled()); (scrollSpyService as any).onScroll(); onScrollSpies.forEach(spy => expect(spy).toHaveBeenCalled()); }); it('should first re-calibrate if the content height has changed', () => { const body = injector.get(DOCUMENT).body as any; scrollSpyService.spyOn([]); scrollSpyService.spyOn([]); scrollSpyService.spyOn([]); const spiedElemGroups: ScrollSpiedElementGroup[] = (scrollSpyService as any).spiedElementGroups; const onScrollSpies = spiedElemGroups.map(group => spyOn(group, 'onScroll')); const calibrateSpies = spiedElemGroups.map((group, i) => spyOn(group, 'calibrate') .and.callFake(() => expect(onScrollSpies[i]).not.toHaveBeenCalled())); calibrateSpies.forEach(spy => expect(spy).not.toHaveBeenCalled()); onScrollSpies.forEach(spy => expect(spy).not.toHaveBeenCalled()); // No content height change... (scrollSpyService as any).onScroll(); calibrateSpies.forEach(spy => expect(spy).not.toHaveBeenCalled()); onScrollSpies.forEach(spy => expect(spy).toHaveBeenCalled()); onScrollSpies.forEach(spy => spy.calls.reset()); body.scrollHeight = 100; // Viewport changed... (scrollSpyService as any).onScroll(); calibrateSpies.forEach(spy => expect(spy).toHaveBeenCalled()); onScrollSpies.forEach(spy => expect(spy).toHaveBeenCalled()); }); }); }); rxjs-7.5.7/docs_app/src/app/shared/scroll-spy.service.ts000066400000000000000000000206001431412030200232270ustar00rootroot00000000000000import { Inject, Injectable } from '@angular/core'; import { DOCUMENT } from '@angular/common'; import { fromEvent, Observable, ReplaySubject, Subject } from 'rxjs'; import { auditTime, distinctUntilChanged, takeUntil } from 'rxjs/operators'; import { ScrollService } from 'app/shared/scroll.service'; export interface ScrollItem { element: Element; index: number; } export interface ScrollSpyInfo { active: Observable; unspy: () => void; } /* * Represents a "scroll-spied" element. Contains info and methods for determining whether this * element is the active one (i.e. whether it has been scrolled passed), based on the window's * scroll position. * * @prop {Element} element - The element whose position relative to the viewport is tracked. * @prop {number} index - The index of the element in the original list of element (group). * @prop {number} top - The `scrollTop` value at which this element becomes active. */ export class ScrollSpiedElement implements ScrollItem { top = 0; /* * @constructor * @param {Element} element - The element whose position relative to the viewport is tracked. * @param {number} index - The index of the element in the original list of element (group). */ constructor(public readonly element: Element, public readonly index: number) {} /* * @method * Calculate the `top` value, i.e. the value of the `scrollTop` property at which this element * becomes active. The current implementation assumes that window is the scroll-container. * * @param {number} scrollTop - How much is window currently scrolled (vertically). * @param {number} topOffset - The distance from the top at which the element becomes active. */ calculateTop(scrollTop: number, topOffset: number) { this.top = scrollTop + this.element.getBoundingClientRect().top - topOffset; } } /* * Represents a group of "scroll-spied" elements. Contains info and methods for efficiently * determining which element should be considered "active", i.e. which element has been scrolled * passed the top of the viewport. * * @prop {Observable} activeScrollItem - An observable that emits ScrollItem * elements (containing the HTML element and its original index) identifying the latest "active" * element from a list of elements. */ export class ScrollSpiedElementGroup { activeScrollItem: ReplaySubject = new ReplaySubject(1); private spiedElements: ScrollSpiedElement[]; /* * @constructor * @param {Element[]} elements - A list of elements whose position relative to the viewport will * be tracked, in order to determine which one is "active" at any given moment. */ constructor(elements: Element[]) { this.spiedElements = elements.map((elem, i) => new ScrollSpiedElement(elem, i)); } /* * @method * Calculate the `top` value of each ScrollSpiedElement of this group (based on te current * `scrollTop` and `topOffset` values), so that the active element can be later determined just by * comparing its `top` property with the then current `scrollTop`. * * @param {number} scrollTop - How much is window currently scrolled (vertically). * @param {number} topOffset - The distance from the top at which the element becomes active. */ calibrate(scrollTop: number, topOffset: number) { this.spiedElements.forEach(spiedElem => spiedElem.calculateTop(scrollTop, topOffset)); this.spiedElements.sort((a, b) => b.top - a.top); // Sort in descending `top` order. } /* * @method * Determine which element is the currently active one, i.e. the lower-most element that is * scrolled passed the top of the viewport (taking offsets into account) and emit it on * `activeScrollItem`. * If no element can be considered active, `null` is emitted instead. * If window is scrolled all the way to the bottom, then the lower-most element is considered * active even if it not scrolled passed the top of the viewport. * * @param {number} scrollTop - How much is window currently scrolled (vertically). * @param {number} maxScrollTop - The maximum possible `scrollTop` (based on the viewport size). */ onScroll(scrollTop: number, maxScrollTop: number) { let activeItem: ScrollItem|undefined; if (scrollTop + 1 >= maxScrollTop) { activeItem = this.spiedElements[0]; } else { this.spiedElements.some(spiedElem => { if (spiedElem.top <= scrollTop) { activeItem = spiedElem; return true; } return false; }); } this.activeScrollItem.next(activeItem || null); } } @Injectable() export class ScrollSpyService { private spiedElementGroups: ScrollSpiedElementGroup[] = []; private onStopListening = new Subject(); private resizeEvents = fromEvent(window, 'resize').pipe(auditTime(300), takeUntil(this.onStopListening)); private scrollEvents = fromEvent(window, 'scroll').pipe(auditTime(10), takeUntil(this.onStopListening)); private lastContentHeight: number; private lastMaxScrollTop: number; constructor(@Inject(DOCUMENT) private doc: any, private scrollService: ScrollService) {} /* * @method * Start tracking a group of elements and emitting active elements; i.e. elements that are * currently visible in the viewport. If there was no other group being spied, start listening for * `resize` and `scroll` events. * * @param {Element[]} elements - A list of elements to track. * * @return {ScrollSpyInfo} - An object containing the following properties: * - `active`: An observable of distinct ScrollItems. * - `unspy`: A method to stop tracking this group of elements. */ spyOn(elements: Element[]): ScrollSpyInfo { if (!this.spiedElementGroups.length) { this.resizeEvents.subscribe(() => this.onResize()); this.scrollEvents.subscribe(() => this.onScroll()); this.onResize(); } const scrollTop = this.getScrollTop(); const topOffset = this.getTopOffset(); const maxScrollTop = this.lastMaxScrollTop; const spiedGroup = new ScrollSpiedElementGroup(elements); spiedGroup.calibrate(scrollTop, topOffset); spiedGroup.onScroll(scrollTop, maxScrollTop); this.spiedElementGroups.push(spiedGroup); return { active: spiedGroup.activeScrollItem.asObservable().pipe(distinctUntilChanged()), unspy: () => this.unspy(spiedGroup) }; } private getContentHeight() { return this.doc.body.scrollHeight || Number.MAX_SAFE_INTEGER; } private getScrollTop() { return window && window.pageYOffset || 0; } private getTopOffset() { return this.scrollService.topOffset + 50; } private getViewportHeight() { return this.doc.body.clientHeight || 0; } /* * @method * The size of the window has changed. Re-calculate all affected values, * so that active elements can be determined efficiently on scroll. */ private onResize() { const contentHeight = this.getContentHeight(); const viewportHeight = this.getViewportHeight(); const scrollTop = this.getScrollTop(); const topOffset = this.getTopOffset(); this.lastContentHeight = contentHeight; this.lastMaxScrollTop = contentHeight - viewportHeight; this.spiedElementGroups.forEach(group => group.calibrate(scrollTop, topOffset)); } /* * @method * Determine which element for each ScrollSpiedElementGroup is active. If the content height has * changed since last check, re-calculate all affected values first. */ private onScroll() { if (this.lastContentHeight !== this.getContentHeight()) { // Something has caused the scroll height to change. // (E.g. image downloaded, accordion expanded/collapsed etc.) this.onResize(); } const scrollTop = this.getScrollTop(); const maxScrollTop = this.lastMaxScrollTop; this.spiedElementGroups.forEach(group => group.onScroll(scrollTop, maxScrollTop)); } /* * @method * Stop tracking this group of elements and emitting active elements. If there is no other group * being spied, stop listening for `resize` or `scroll` events. * * @param {ScrollSpiedElementGroup} spiedGroup - The group to stop tracking. */ private unspy(spiedGroup: ScrollSpiedElementGroup) { spiedGroup.activeScrollItem.complete(); this.spiedElementGroups = this.spiedElementGroups.filter(group => group !== spiedGroup); if (!this.spiedElementGroups.length) { this.onStopListening.next(null); } } } rxjs-7.5.7/docs_app/src/app/shared/scroll.service.spec.ts000066400000000000000000000332361431412030200233600ustar00rootroot00000000000000import { ReflectiveInjector } from '@angular/core'; import { Location, LocationStrategy, PlatformLocation, ViewportScroller } from '@angular/common'; import { DOCUMENT } from '@angular/common'; import { MockLocationStrategy, SpyLocation } from '@angular/common/testing'; import { fakeAsync, tick } from '@angular/core/testing'; import { ScrollService, topMargin } from './scroll.service'; describe('ScrollService', () => { const topOfPageElem = {} as Element; let injector: ReflectiveInjector; let document: MockDocument; let platformLocation: MockPlatformLocation; let scrollService: ScrollService; let location: SpyLocation; class MockPlatformLocation { hash: string; } class MockDocument { body = new MockElement(); getElementById = jasmine.createSpy('Document getElementById').and.returnValue(topOfPageElem); querySelector = jasmine.createSpy('Document querySelector'); } class MockElement { getBoundingClientRect = jasmine.createSpy('Element getBoundingClientRect') .and.returnValue({top: 0}); scrollIntoView = jasmine.createSpy('Element scrollIntoView'); } const viewportScrollerStub = jasmine.createSpyObj( 'viewportScroller', ['getScrollPosition', 'scrollToPosition']); beforeEach(() => { injector = ReflectiveInjector.resolveAndCreate([ ScrollService, { provide: Location, useClass: SpyLocation }, { provide: DOCUMENT, useClass: MockDocument }, { provide: PlatformLocation, useClass: MockPlatformLocation }, { provide: ViewportScroller, useValue: viewportScrollerStub }, { provide: LocationStrategy, useClass: MockLocationStrategy } ]); platformLocation = injector.get(PlatformLocation); document = injector.get(DOCUMENT); scrollService = injector.get(ScrollService); location = injector.get(Location); spyOn(window, 'scrollBy'); }); it('should debounce `updateScrollPositonInHistory()`', fakeAsync(() => { const updateScrollPositionInHistorySpy = spyOn(scrollService, 'updateScrollPositionInHistory'); window.dispatchEvent(new Event('scroll')); tick(249); window.dispatchEvent(new Event('scroll')); tick(249); window.dispatchEvent(new Event('scroll')); tick(249); expect(updateScrollPositionInHistorySpy).not.toHaveBeenCalled(); tick(1); expect(updateScrollPositionInHistorySpy).toHaveBeenCalledTimes(1); })); it('should set `scrollRestoration` to `manual` if supported', () => { if (scrollService.supportManualScrollRestoration) { expect(window.history.scrollRestoration).toBe('manual'); } else { expect(window.history.scrollRestoration).toBeUndefined(); } }); describe('#topOffset', () => { it('should query for the top-bar by CSS selector', () => { expect(document.querySelector).not.toHaveBeenCalled(); expect(scrollService.topOffset).toBe(topMargin); expect(document.querySelector).toHaveBeenCalled(); }); it('should be calculated based on the top-bar\'s height + margin', () => { (document.querySelector as jasmine.Spy).and.returnValue({clientHeight: 50}); expect(scrollService.topOffset).toBe(50 + topMargin); }); it('should only query for the top-bar once', () => { expect(scrollService.topOffset).toBe(topMargin); (document.querySelector as jasmine.Spy).calls.reset(); expect(scrollService.topOffset).toBe(topMargin); expect(document.querySelector).not.toHaveBeenCalled(); }); it('should retrieve the top-bar\'s height again after resize', () => { let clientHeight = 50; (document.querySelector as jasmine.Spy).and.callFake(() => ({clientHeight})); expect(scrollService.topOffset).toBe(50 + topMargin); expect(document.querySelector).toHaveBeenCalled(); (document.querySelector as jasmine.Spy).calls.reset(); clientHeight = 100; expect(scrollService.topOffset).toBe(50 + topMargin); expect(document.querySelector).not.toHaveBeenCalled(); window.dispatchEvent(new Event('resize')); expect(scrollService.topOffset).toBe(100 + topMargin); expect(document.querySelector).toHaveBeenCalled(); }); }); describe('#topOfPageElement', () => { it('should query for the top-of-page element by ID', () => { expect(document.getElementById).not.toHaveBeenCalled(); expect(scrollService.topOfPageElement).toBe(topOfPageElem); expect(document.getElementById).toHaveBeenCalled(); }); it('should only query for the top-of-page element once', () => { expect(scrollService.topOfPageElement).toBe(topOfPageElem); (document.getElementById as jasmine.Spy).calls.reset(); expect(scrollService.topOfPageElement).toBe(topOfPageElem); expect(document.getElementById).not.toHaveBeenCalled(); }); it('should return `` if unable to find the top-of-page element', () => { (document.getElementById as jasmine.Spy).and.returnValue(null); expect(scrollService.topOfPageElement).toBe(document.body as any); }); }); describe('#scroll', () => { it('should scroll to the top if there is no hash', () => { platformLocation.hash = ''; const topOfPage = new MockElement(); document.getElementById.and .callFake((id: string) => id === 'top-of-page' ? topOfPage : null); scrollService.scroll(); expect(topOfPage.scrollIntoView).toHaveBeenCalled(); }); it('should not scroll if the hash does not match an element id', () => { platformLocation.hash = 'not-found'; document.getElementById.and.returnValue(null); scrollService.scroll(); expect(document.getElementById).toHaveBeenCalledWith('not-found'); expect(window.scrollBy).not.toHaveBeenCalled(); }); it('should scroll to the element whose id matches the hash', () => { const element = new MockElement(); platformLocation.hash = 'some-id'; document.getElementById.and.returnValue(element); scrollService.scroll(); expect(document.getElementById).toHaveBeenCalledWith('some-id'); expect(element.scrollIntoView).toHaveBeenCalled(); expect(window.scrollBy).toHaveBeenCalled(); }); it('should scroll to the element whose id matches the hash with encoded characters', () => { const element = new MockElement(); platformLocation.hash = '%F0%9F%91%8D'; // 👠document.getElementById.and.returnValue(element); scrollService.scroll(); expect(document.getElementById).toHaveBeenCalledWith('ðŸ‘'); expect(element.scrollIntoView).toHaveBeenCalled(); expect(window.scrollBy).toHaveBeenCalled(); }); }); describe('#scrollToElement', () => { it('should scroll to element', () => { const element: Element = new MockElement() as any; scrollService.scrollToElement(element); expect(element.scrollIntoView).toHaveBeenCalled(); expect(window.scrollBy).toHaveBeenCalledWith(0, -scrollService.topOffset); }); it('should not scroll more than necessary (e.g. for elements close to the bottom)', () => { const element: Element = new MockElement() as any; const getBoundingClientRect = element.getBoundingClientRect as jasmine.Spy; const topOffset = scrollService.topOffset; getBoundingClientRect.and.returnValue({top: topOffset + 100}); scrollService.scrollToElement(element); expect(element.scrollIntoView).toHaveBeenCalledTimes(1); expect(window.scrollBy).toHaveBeenCalledWith(0, 100); getBoundingClientRect.and.returnValue({top: topOffset - 10}); scrollService.scrollToElement(element); expect(element.scrollIntoView).toHaveBeenCalledTimes(2); expect(window.scrollBy).toHaveBeenCalledWith(0, -10); }); it('should scroll all the way to the top if close enough', () => { const element: Element = new MockElement() as any; (window as any).pageYOffset = 25; scrollService.scrollToElement(element); expect(element.scrollIntoView).toHaveBeenCalled(); expect(window.scrollBy).toHaveBeenCalledWith(0, -scrollService.topOffset); (window.scrollBy as jasmine.Spy).calls.reset(); (window as any).pageYOffset = 15; scrollService.scrollToElement(element); expect(element.scrollIntoView).toHaveBeenCalled(); expect(window.scrollBy).toHaveBeenCalledWith(0, -scrollService.topOffset); expect(window.scrollBy).toHaveBeenCalledWith(0, -15); }); it('should do nothing if no element', () => { scrollService.scrollToElement(null); expect(window.scrollBy).not.toHaveBeenCalled(); }); }); describe('#scrollToTop', () => { it('should scroll to top', () => { const topOfPageElement = new MockElement() as any as Element; document.getElementById.and.callFake( (id: string) => id === 'top-of-page' ? topOfPageElement : null ); scrollService.scrollToTop(); expect(topOfPageElement.scrollIntoView).toHaveBeenCalled(); expect(window.scrollBy).toHaveBeenCalledWith(0, -topMargin); }); }); describe('#isLocationWithHash', () => { it('should return true when the location has a hash', () => { platformLocation.hash = 'anchor'; expect(scrollService.isLocationWithHash()).toBe(true); }); it('should return false when the location has no hash', () => { platformLocation.hash = ''; expect(scrollService.isLocationWithHash()).toBe(false); }); }); describe('#needToFixScrollPosition', async () => { it('should return true when popState event was fired after a back navigation if the browser supports ' + 'scrollRestoration`. Otherwise, needToFixScrollPosition() returns false', () => { if (scrollService.supportManualScrollRestoration) { location.go('/initial-url1'); // We simulate a scroll down location.replaceState('/initial-url1', 'hack', {scrollPosition: [2000, 0]}); location.go('/initial-url2'); location.back(); expect(scrollService.poppedStateScrollPosition).toEqual([2000, 0]); expect(scrollService.needToFixScrollPosition()).toBe(true); } else { location.go('/initial-url1'); location.go('/initial-url2'); location.back(); expect(scrollService.poppedStateScrollPosition).toBe(null); expect(scrollService.needToFixScrollPosition()).toBe(false); } }); it('should return true when popState event was fired after a forward navigation if the browser supports ' + 'scrollRestoration`. Otherwise, needToFixScrollPosition() returns false', () => { if (scrollService.supportManualScrollRestoration) { location.go('/initial-url1'); location.go('/initial-url2'); // We simulate a scroll down location.replaceState('/initial-url1', 'hack', {scrollPosition: [2000, 0]}); location.back(); scrollService.poppedStateScrollPosition = [0, 0]; location.forward(); expect(scrollService.poppedStateScrollPosition).toEqual([2000, 0]); expect(scrollService.needToFixScrollPosition()).toBe(true); } else { location.go('/initial-url1'); location.go('/initial-url2'); location.back(); location.forward(); expect(scrollService.poppedStateScrollPosition).toBe(null); expect(scrollService.needToFixScrollPosition()).toBe(false); } }); }); describe('#scrollAfterRender', async () => { let scrollSpy: jasmine.Spy; let scrollToTopSpy: jasmine.Spy; let needToFixScrollPositionSpy: jasmine.Spy; let scrollToPosition: jasmine.Spy; let isLocationWithHashSpy: jasmine.Spy; let getStoredScrollPositionSpy: jasmine.Spy; const scrollDelay = 500; beforeEach(() => { scrollSpy = spyOn(scrollService, 'scroll'); scrollToTopSpy = spyOn(scrollService, 'scrollToTop'); scrollToPosition = spyOn(scrollService, 'scrollToPosition'); needToFixScrollPositionSpy = spyOn(scrollService, 'needToFixScrollPosition'); getStoredScrollPositionSpy = spyOn(scrollService, 'getStoredScrollPosition'); isLocationWithHashSpy = spyOn(scrollService, 'isLocationWithHash'); }); it('should call `scroll` when we navigate to a location with anchor', fakeAsync(() => { needToFixScrollPositionSpy.and.returnValue(false); getStoredScrollPositionSpy.and.returnValue(null); isLocationWithHashSpy.and.returnValue(true); scrollService.scrollAfterRender(scrollDelay); expect(scrollSpy).not.toHaveBeenCalled(); tick(scrollDelay); expect(scrollSpy).toHaveBeenCalled(); })); it('should call `scrollToTop` when we navigate to a location without anchor', fakeAsync(() => { needToFixScrollPositionSpy.and.returnValue(false); getStoredScrollPositionSpy.and.returnValue(null); isLocationWithHashSpy.and.returnValue(false); scrollService.scrollAfterRender(scrollDelay); expect(scrollToTopSpy).toHaveBeenCalled(); tick(scrollDelay); expect(scrollSpy).not.toHaveBeenCalled(); })); it('should call `viewportScroller.scrollToPosition` when we reload a page', fakeAsync(() => { getStoredScrollPositionSpy.and.returnValue([0, 1000]); scrollService.scrollAfterRender(scrollDelay); expect(viewportScrollerStub.scrollToPosition).toHaveBeenCalled(); expect(getStoredScrollPositionSpy).toHaveBeenCalled(); })); it('should call `scrollToPosition` after a popState', fakeAsync(() => { needToFixScrollPositionSpy.and.returnValue(true); getStoredScrollPositionSpy.and.returnValue(null); scrollService.scrollAfterRender(scrollDelay); expect(scrollToPosition).toHaveBeenCalled(); tick(scrollDelay); expect(scrollSpy).not.toHaveBeenCalled(); expect(scrollToTopSpy).not.toHaveBeenCalled(); })); }); }); rxjs-7.5.7/docs_app/src/app/shared/scroll.service.ts000066400000000000000000000165751431412030200224360ustar00rootroot00000000000000import { DOCUMENT, Location, PlatformLocation, PopStateEvent, ViewportScroller } from '@angular/common'; import { Injectable, Inject } from '@angular/core'; import { fromEvent } from 'rxjs'; import { debounceTime } from 'rxjs/operators'; type ScrollPosition = [number, number]; interface ScrollPositionPopStateEvent extends PopStateEvent { // If there is history state, it should always include `scrollPosition`. state?: {scrollPosition: ScrollPosition}; } export const topMargin = 16; /** * A service that scrolls document elements into view */ @Injectable() export class ScrollService { private _topOffset: number | null; private _topOfPageElement: Element; // The scroll position which has to be restored, after a `popstate` event. poppedStateScrollPosition: ScrollPosition | null = null; // Whether the browser supports the necessary features for manual scroll restoration. supportManualScrollRestoration: boolean = !!window && ('scrollTo' in window) && ('scrollX' in window) && ('scrollY' in window) && !!history && ('scrollRestoration' in history); // Offset from the top of the document to bottom of any static elements // at the top (e.g. toolbar) + some margin get topOffset() { if (!this._topOffset) { const toolbar = this.document.querySelector('.app-toolbar'); this._topOffset = (toolbar && toolbar.clientHeight || 0) + topMargin; } return this._topOffset!; } get topOfPageElement() { if (!this._topOfPageElement) { this._topOfPageElement = this.document.getElementById('top-of-page') || this.document.body; } return this._topOfPageElement; } constructor( @Inject(DOCUMENT) private document: any, private platformLocation: PlatformLocation, private viewportScroller: ViewportScroller, private location: Location) { // On resize, the toolbar might change height, so "invalidate" the top offset. fromEvent(window, 'resize').subscribe(() => this._topOffset = null); fromEvent(window, 'scroll') .pipe(debounceTime(250)).subscribe(() => this.updateScrollPositionInHistory()); // Change scroll restoration strategy to `manual` if it's supported if (this.supportManualScrollRestoration) { history.scrollRestoration = 'manual'; // we have to detect forward and back navigation thanks to popState event this.location.subscribe((event: ScrollPositionPopStateEvent) => { // the type is `hashchange` when the fragment identifier of the URL has changed. It allows us to go to position // just before a click on an anchor if (event.type === 'hashchange') { this.scrollToPosition(); } else { // Navigating with the forward/back button, we have to remove the position from the // session storage in order to avoid a race-condition. this.removeStoredScrollPosition(); // The `popstate` event is always triggered by a browser action such as clicking the // forward/back button. It can be followed by a `hashchange` event. this.poppedStateScrollPosition = event.state ? event.state.scrollPosition : null; } }); } } /** * Scroll to the element with id extracted from the current location hash fragment. * Scroll to top if no hash. * Don't scroll if hash not found. */ scroll() { const hash = this.getCurrentHash(); const element: HTMLElement = hash ? this.document.getElementById(hash) : this.topOfPageElement; this.scrollToElement(element); } /** * test if the current location has a hash */ isLocationWithHash(): boolean { return !!this.getCurrentHash(); } /** * When we load a document, we have to scroll to the correct position depending on whether this is a new location, * a back/forward in the history, or a refresh * @param delay before we scroll to the good position */ scrollAfterRender(delay: number) { // If we do rendering following a refresh, we use the scroll position from the storage. const storedScrollPosition = this.getStoredScrollPosition(); if (storedScrollPosition) { this.viewportScroller.scrollToPosition(storedScrollPosition); } else { if (this.needToFixScrollPosition()) { // The document was reloaded following a `popstate` event (triggered by clicking the // forward/back button), so we manage the scroll position. this.scrollToPosition(); } else { // The document was loaded as a result of one of the following cases: // - Typing the URL in the address bar (direct navigation). // - Clicking on a link. // (If the location contains a hash, we have to wait for async layout.) if (this.isLocationWithHash()) { // Delay scrolling by the specified amount to allow time for async layout to complete. setTimeout(() => this.scroll(), delay); } else { // If the location doesn't contain a hash, we scroll to the top of the page. this.scrollToTop(); } } } } /** * Scroll to the element. * Don't scroll if no element. */ scrollToElement(element: Element|null) { if (element) { element.scrollIntoView(); if (window && window.scrollBy) { // Scroll as much as necessary to align the top of `element` at `topOffset`. // (Usually, `.top` will be 0, except for cases where the element cannot be scrolled all the // way to the top, because the viewport is larger than the height of the content after the // element.) window.scrollBy(0, element.getBoundingClientRect().top - this.topOffset); // If we are very close to the top (<20px), then scroll all the way up. // (This can happen if `element` is at the top of the page, but has a small top-margin.) if (window.pageYOffset < 20) { window.scrollBy(0, -window.pageYOffset); } } } } /** Scroll to the top of the document. */ scrollToTop() { this.scrollToElement(this.topOfPageElement); } scrollToPosition() { if (this.poppedStateScrollPosition) { this.viewportScroller.scrollToPosition(this.poppedStateScrollPosition); this.poppedStateScrollPosition = null; } } /** * Update the state with scroll position into history. */ updateScrollPositionInHistory() { if (this.supportManualScrollRestoration) { const currentScrollPosition = this.viewportScroller.getScrollPosition(); if (currentScrollPosition) { this.location.replaceState(this.location.path(true), undefined, {scrollPosition: currentScrollPosition}); window.sessionStorage.setItem('scrollPosition', currentScrollPosition.join(',')); } } } getStoredScrollPosition(): ScrollPosition | null { const position = window.sessionStorage.getItem('scrollPosition'); if (!position) { return null; } const [x, y] = position.split(','); return [+x, +y]; } removeStoredScrollPosition() { window.sessionStorage.removeItem('scrollPosition'); } /** * Check if the scroll position need to be manually fixed after popState event */ needToFixScrollPosition(): boolean { return this.supportManualScrollRestoration && !!this.poppedStateScrollPosition; } /** * Return the hash fragment from the `PlatformLocation`, minus the leading `#`. */ private getCurrentHash() { return decodeURIComponent(this.platformLocation.hash.replace(/^#/, '')); } } rxjs-7.5.7/docs_app/src/app/shared/search-results/000077500000000000000000000000001431412030200220575ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/shared/search-results/search-results.component.spec.ts000066400000000000000000000153551431412030200303360ustar00rootroot00000000000000import { DebugElement } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { SearchResult } from 'app/search/interfaces'; import { SearchResultsComponent } from './search-results.component'; describe('SearchResultsComponent', () => { let component: SearchResultsComponent; let fixture: ComponentFixture; /** Get all text from component element */ function getText() { return fixture.debugElement.nativeElement.textContent; } /** Get a full set of test results. "Take" what you need */ function getTestResults(take?: number) { const results: SearchResult[] = [ { path: 'guide/a', title: 'Guide A' }, { path: 'api/d', title: 'API D' }, { path: 'guide/b', title: 'Guide B' }, { path: 'guide/a/c', title: 'Guide A - C' }, { path: 'api/c', title: 'API C' } ] // fill it out to exceed 10 guide pages .concat('nmlkjihgfe'.split('').map(l => { return { path: 'guide/' + l, title: 'Guide ' + l}; })) // add these empty fields to satisfy interface .map(r => ({...{ keywords: '', titleWords: '', type: '' }, ...r })); return take === undefined ? results : results.slice(0, take); } function compareTitle(l: SearchResult, r: SearchResult) { return l.title!.toUpperCase() > r.title!.toUpperCase() ? 1 : -1; } function setSearchResults(query: string, results: SearchResult[]) { component.searchResults = {query, results}; component.ngOnChanges({}); fixture.detectChanges(); } beforeEach(() => { TestBed.configureTestingModule({ declarations: [ SearchResultsComponent ] }); }); beforeEach(() => { fixture = TestBed.createComponent(SearchResultsComponent); component = fixture.componentInstance; fixture.detectChanges(); }); it('should map the search results into groups based on their containing folder', () => { setSearchResults('', getTestResults(3)); expect(component.searchAreas).toEqual([ { name: 'api', priorityPages: [ { path: 'api/d', title: 'API D', type: '', keywords: '', titleWords: '' } ], pages: [] }, { name: 'guide', priorityPages: [ { path: 'guide/a', title: 'Guide A', type: '', keywords: '', titleWords: '' }, { path: 'guide/b', title: 'Guide B', type: '', keywords: '', titleWords: '' }, ], pages: [] } ]); }); it('should special case results that are top level folders', () => { setSearchResults('', [ { path: 'tutorial', title: 'Tutorial index', type: '', keywords: '', titleWords: '' }, { path: 'tutorial/toh-pt1', title: 'Tutorial - part 1', type: '', keywords: '', titleWords: '' }, ]); expect(component.searchAreas).toEqual([ { name: 'tutorial', priorityPages: [ { path: 'tutorial', title: 'Tutorial index', type: '', keywords: '', titleWords: '' }, { path: 'tutorial/toh-pt1', title: 'Tutorial - part 1', type: '', keywords: '', titleWords: '' }, ], pages: [] } ]); }); it('should put first 5 results for each area into priorityPages', () => { const results = getTestResults(); setSearchResults('', results); expect(component.searchAreas[0].priorityPages).toEqual(results.filter(p => p.path.startsWith('api')).slice(0, 5)); expect(component.searchAreas[1].priorityPages).toEqual(results.filter(p => p.path.startsWith('guide')).slice(0, 5)); }); it('should put the nonPriorityPages into the pages array, sorted by title', () => { const results = getTestResults(); setSearchResults('', results); expect(component.searchAreas[0].pages).toEqual([]); expect(component.searchAreas[1].pages).toEqual(results.filter(p => p.path.startsWith('guide')).slice(5).sort(compareTitle)); }); it('should put a total count in the header of each area of search results', () => { const results = getTestResults(); setSearchResults('', results); fixture.detectChanges(); const headers = fixture.debugElement.queryAll(By.css('h3')); expect(headers.length).toEqual(2); expect(headers[0].nativeElement.textContent).toContain('(2)'); expect(headers[1].nativeElement.textContent).toContain('(13)'); }); it('should put search results with no containing folder into the default area (other)', () => { const results = [ { path: 'news', title: 'News', type: 'marketing', keywords: '', titleWords: '' } ]; setSearchResults('', results); expect(component.searchAreas).toEqual([ { name: 'other', priorityPages: [ { path: 'news', title: 'News', type: 'marketing', keywords: '', titleWords: '' } ], pages: [] } ]); }); it('should omit search results with no title', () => { const results = [ { path: 'news', title: '', type: 'marketing', keywords: '', titleWords: '' } ]; setSearchResults('something', results); expect(component.searchAreas).toEqual([]); }); it('should display "Searching ..." while waiting for search results', () => { fixture.detectChanges(); expect(getText()).toContain('Searching ...'); }); describe('when a search result anchor is clicked', () => { let searchResult: SearchResult; let selected: SearchResult|null; let anchor: DebugElement; beforeEach(() => { component.resultSelected.subscribe((result: SearchResult) => selected = result); selected = null; searchResult = { path: 'news', title: 'News', type: 'marketing', keywords: '', titleWords: '' }; setSearchResults('something', [searchResult]); fixture.detectChanges(); anchor = fixture.debugElement.query(By.css('a')); expect(selected).toBeNull(); }); it('should emit a "resultSelected" event', () => { anchor.triggerEventHandler('click', {button: 0, ctrlKey: false, metaKey: false}); fixture.detectChanges(); expect(selected).toBe(searchResult); }); it('should not emit an event if mouse button is not zero (middle or right)', () => { anchor.triggerEventHandler('click', {button: 1, ctrlKey: false, metaKey: false}); fixture.detectChanges(); expect(selected).toBeNull(); }); it('should not emit an event if the `ctrl` key is pressed', () => { anchor.triggerEventHandler('click', {button: 0, ctrlKey: true, metaKey: false}); fixture.detectChanges(); expect(selected).toBeNull(); }); it('should not emit an event if the `meta` key is pressed', () => { anchor.triggerEventHandler('click', {button: 0, ctrlKey: false, metaKey: true}); fixture.detectChanges(); expect(selected).toBeNull(); }); }); describe('when no query results', () => { it('should display "not found" message', () => { setSearchResults('something', []); expect(getText()).toContain('No results'); }); }); }); rxjs-7.5.7/docs_app/src/app/shared/search-results/search-results.component.ts000066400000000000000000000071431431412030200274010ustar00rootroot00000000000000import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core'; import { SearchResult, SearchResults, SearchArea } from 'app/search/interfaces'; /** * A component to display search results in groups */ @Component({ selector: 'aio-search-results', template: `

Search Results

{{ area.name }} ({{ area.pages.length + area.priorityPages.length }})

  • {{ page.title }}
  • {{ page.title }}

{{ notFoundMessage }}

`, }) export class SearchResultsComponent implements OnChanges { /** * The results to display */ @Input() searchResults: SearchResults | null; /** * Emitted when the user selects a search result */ @Output() resultSelected = new EventEmitter(); readonly defaultArea = 'other'; notFoundMessage = 'Searching ...'; readonly topLevelFolders = ['guide', 'tutorial']; searchAreas: SearchArea[] = []; ngOnChanges() { this.searchAreas = this.searchResults ? this.processSearchResults(this.searchResults) : []; } onResultSelected(page: SearchResult, event: MouseEvent) { // Emit a `resultSelected` event if the result is to be displayed on this page. if (event.button === 0 && !event.ctrlKey && !event.metaKey) { this.resultSelected.emit(page); } } // Map the search results into groups by area private processSearchResults(search: SearchResults) { if (!search) { return []; } this.notFoundMessage = 'No results found.'; const searchAreaMap: { [key: string]: SearchResult[] } = {}; search.results.forEach((result) => { if (!result.title) { return; } // bad data; should fix const areaName = this.computeAreaName(result) || this.defaultArea; const area = (searchAreaMap[areaName] = searchAreaMap[areaName] || []); area.push(result); }); const keys = Object.keys(searchAreaMap).sort((l, r) => (l > r ? 1 : -1)); return keys.map((name) => { let pages: SearchResult[] = searchAreaMap[name]; // Extract the top 5 most relevant results as priorityPages const priorityPages = pages.splice(0, 5); pages = pages.sort(compareResults); return { name, pages, priorityPages }; }); } // Split the search result path and use the top level folder, if there is one, as the area name. private computeAreaName(result: SearchResult) { if (this.topLevelFolders.indexOf(result.path) !== -1) { return result.path; } const [areaName, rest] = result.path.split('/', 2); return rest && areaName; } } function compareResults(l: SearchResult, r: SearchResult) { return l.title.toUpperCase() > r.title.toUpperCase() ? 1 : -1; } rxjs-7.5.7/docs_app/src/app/shared/select/000077500000000000000000000000001431412030200203725ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/shared/select/select.component.spec.ts000066400000000000000000000125271431412030200251620ustar00rootroot00000000000000import { Component, DebugElement } from '@angular/core'; import { ComponentFixture, TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { SelectComponent, Option } from './select.component'; const options = [ { title: 'Option A', value: 'option-a' }, { title: 'Option B', value: 'option-b' } ]; let host: HostComponent; let fixture: ComponentFixture; let element: DebugElement; describe('SelectComponent', () => { beforeEach(() => { TestBed.configureTestingModule({ declarations: [ SelectComponent, HostComponent ], }); }); beforeEach(() => { fixture = TestBed.createComponent(HostComponent); host = fixture.componentInstance; element = fixture.debugElement.query(By.directive(SelectComponent)); }); describe('(initially)', () => { it('should show the button and no options', () => { expect(getButton()).toBeDefined(); expect(getOptionContainer()).toEqual(null); }); }); describe('button', () => { it('should display the label if provided', () => { expect(getButton().textContent!.trim()).toEqual(''); host.label = 'Label:'; fixture.detectChanges(); expect(getButton().textContent!.trim()).toEqual('Label:'); }); it('should contain a symbol `` if hasSymbol is true', () => { expect(getButton().querySelector('span')).toEqual(null); host.showSymbol = true; fixture.detectChanges(); const span = getButton().querySelector('span'); expect(span).not.toEqual(null); expect(span!.className).toContain('symbol'); }); it('should display the selected option, if there is one', () => { host.showSymbol = true; host.selected = options[0]; fixture.detectChanges(); expect(getButton().textContent).toContain(options[0].title); expect(getButton().querySelector('span')!.className).toContain(options[0].value); }); it('should toggle the visibility of the options list when clicked', () => { host.options = options; getButton().click(); fixture.detectChanges(); expect(getOptionContainer()).not.toEqual(null); getButton().click(); fixture.detectChanges(); expect(getOptionContainer()).toEqual(null); }); }); describe('options list', () => { beforeEach(() => { host.options = options; host.showSymbol = true; getButton().click(); // ensure the options are visible fixture.detectChanges(); }); it('should show the corresponding title of each option', () => { getOptions().forEach((li, index) => { expect(li.textContent).toContain(options[index].title); }); }); it('should select the option that is clicked', () => { getOptions()[0].click(); fixture.detectChanges(); expect(host.onChange).toHaveBeenCalledWith({ option: options[0], index: 0 }); expect(getButton().textContent).toContain(options[0].title); expect(getButton().querySelector('span')!.className).toContain(options[0].value); }); it('should select the current option when enter is pressed', () => { const e = new KeyboardEvent('keydown', {bubbles: true, cancelable: true, key: 'Enter'}); getOptions()[0].dispatchEvent(e); fixture.detectChanges(); expect(host.onChange).toHaveBeenCalledWith({ option: options[0], index: 0 }); expect(getButton().textContent).toContain(options[0].title); expect(getButton().querySelector('span')!.className).toContain(options[0].value); }); it('should select the current option when space is pressed', () => { const e = new KeyboardEvent('keydown', {bubbles: true, cancelable: true, key: ' '}); getOptions()[0].dispatchEvent(e); fixture.detectChanges(); expect(host.onChange).toHaveBeenCalledWith({ option: options[0], index: 0 }); expect(getButton().textContent).toContain(options[0].title); expect(getButton().querySelector('span')!.className).toContain(options[0].value); }); it('should hide when an option is clicked', () => { getOptions()[0].click(); fixture.detectChanges(); expect(getOptionContainer()).toEqual(null); }); it('should hide when there is a click that is not on the option list', () => { fixture.nativeElement.click(); fixture.detectChanges(); expect(getOptionContainer()).toEqual(null); }); it('should hide if the escape button is pressed', () => { const e = new KeyboardEvent('keydown', { bubbles: true, cancelable: true, key: 'Escape' }); document.dispatchEvent(e); fixture.detectChanges(); expect(getOptionContainer()).toEqual(null); }); }); }); @Component({ template: ` ` }) class HostComponent { onChange = jasmine.createSpy('onChange'); options: Option[]; selected: Option; label: string; showSymbol: boolean; } function getButton(): HTMLButtonElement { return element.query(By.css('button')).nativeElement; } function getOptionContainer(): HTMLUListElement|null { const de = element.query(By.css('ul')); return de && de.nativeElement; } function getOptions(): HTMLLIElement[] { return element.queryAll(By.css('li')).map(de => de.nativeElement); } rxjs-7.5.7/docs_app/src/app/shared/select/select.component.ts000066400000000000000000000036321431412030200242260ustar00rootroot00000000000000import { Component, ElementRef, EventEmitter, HostListener, Input, Output, OnInit } from '@angular/core'; export interface Option { title: string; value?: any; } @Component({ selector: 'aio-select', template: `
  • {{ option.title }}
`, }) export class SelectComponent implements OnInit { @Input() selected: Option; @Input() options: Option[]; @Output() change = new EventEmitter<{ option: Option; index: number }>(); @Input() showSymbol = false; @Input() label: string; showOptions = false; constructor(private hostElement: ElementRef) {} ngOnInit() { this.label = this.label || ''; } toggleOptions() { this.showOptions = !this.showOptions; } hideOptions() { this.showOptions = false; } select(option: Option, index: number) { this.selected = option; this.change.emit({ option, index }); this.hideOptions(); } @HostListener('document:click', ['$event.target']) onClick(eventTarget: HTMLElement) { // Hide the options if we clicked outside the component if (!this.hostElement.nativeElement.contains(eventTarget)) { this.hideOptions(); } } @HostListener('document:keydown.escape') onKeyDown() { this.hideOptions(); } } rxjs-7.5.7/docs_app/src/app/shared/shared.module.ts000066400000000000000000000007031431412030200222150ustar00rootroot00000000000000import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { SearchResultsComponent } from './search-results/search-results.component'; import { SelectComponent } from './select/select.component'; @NgModule({ imports: [ CommonModule ], exports: [ SearchResultsComponent, SelectComponent ], declarations: [ SearchResultsComponent, SelectComponent ] }) export class SharedModule {} rxjs-7.5.7/docs_app/src/app/shared/stackblitz.service.ts000066400000000000000000000021531431412030200232750ustar00rootroot00000000000000import StackBlitzkSDK from '@stackblitz/sdk'; import { Injectable } from '@angular/core'; import { Project } from '@stackblitz/sdk/typings/interfaces'; interface StackBlitzExampleConfig { code: string; language: string; html?: string; dependencies: { [name: string]: string; } } @Injectable({ providedIn: 'root' }) export class StackblitzService { openProject(config: StackBlitzExampleConfig) { const codeExtension: 'js' | string= { 'ts': 'ts', 'typescript': 'ts' }[config.language] || 'js'; const template: Project['template'] = codeExtension === 'ts' ? 'typescript' : 'javascript'; StackBlitzkSDK.openProject({ files: { 'index.html': config.html || '', [`index.${codeExtension}`]: config.code }, title: 'RxJS example', description: 'RxJS example', template, tags: ['rxjs', 'demo'], dependencies: config.dependencies, settings: { compile: { trigger: 'auto', action: 'refresh', clearConsole: true, }, } }, { devToolsHeight: 50 }); } } rxjs-7.5.7/docs_app/src/app/shared/toc.service.spec.ts000066400000000000000000000301621431412030200226420ustar00rootroot00000000000000import { DOCUMENT } from '@angular/common'; import { ReflectiveInjector } from '@angular/core'; import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; import { Subject } from 'rxjs'; import { ScrollItem, ScrollSpyInfo, ScrollSpyService } from 'app/shared/scroll-spy.service'; import { TocItem, TocService } from './toc.service'; describe('TocService', () => { let injector: ReflectiveInjector; let scrollSpyService: MockScrollSpyService; let tocService: TocService; let lastTocList: TocItem[]; // call TocService.genToc function callGenToc(html = '', docId = 'fizz/buzz'): HTMLDivElement { const el = document.createElement('div'); el.innerHTML = html; tocService.genToc(el, docId); return el; } beforeEach(() => { injector = ReflectiveInjector.resolveAndCreate([ { provide: DomSanitizer, useClass: TestDomSanitizer }, { provide: DOCUMENT, useValue: document }, { provide: ScrollSpyService, useClass: MockScrollSpyService }, TocService, ]); scrollSpyService = injector.get(ScrollSpyService); tocService = injector.get(TocService); tocService.tocList.subscribe(tocList => lastTocList = tocList); }); describe('tocList', () => { it('should emit the latest value to new subscribers', () => { const expectedValue1 = createTocItem('Heading A'); const expectedValue2 = createTocItem('Heading B'); let value1: TocItem[]|undefined; let value2: TocItem[]|undefined; tocService.tocList.next([]); tocService.tocList.subscribe(v => value1 = v); expect(value1).toEqual([]); tocService.tocList.next([expectedValue1, expectedValue2]); tocService.tocList.subscribe(v => value2 = v); expect(value2).toEqual([expectedValue1, expectedValue2]); }); it('should emit the same values to all subscribers', () => { const expectedValue1 = createTocItem('Heading A'); const expectedValue2 = createTocItem('Heading B'); const emittedValues: TocItem[][] = []; tocService.tocList.subscribe(v => emittedValues.push(v)); tocService.tocList.subscribe(v => emittedValues.push(v)); tocService.tocList.next([expectedValue1, expectedValue2]); expect(emittedValues).toEqual([ [expectedValue1, expectedValue2], [expectedValue1, expectedValue2] ]); }); }); describe('activeItemIndex', () => { it('should emit the active heading index (or null)', () => { const indices: (number | null)[] = []; tocService.activeItemIndex.subscribe(i => indices.push(i)); callGenToc(); scrollSpyService.$lastInfo.active.next({index: 42} as ScrollItem); scrollSpyService.$lastInfo.active.next({index: 0} as ScrollItem); scrollSpyService.$lastInfo.active.next(null); scrollSpyService.$lastInfo.active.next({index: 7} as ScrollItem); expect(indices).toEqual([null, 42, 0, null, 7]); }); it('should reset the active index (and unspy) when calling `reset()`', () => { const indices: (number | null)[] = []; tocService.activeItemIndex.subscribe(i => indices.push(i)); callGenToc(); const unspy = scrollSpyService.$lastInfo.unspy; scrollSpyService.$lastInfo.active.next({index: 42} as ScrollItem); expect(unspy).not.toHaveBeenCalled(); expect(indices).toEqual([null, 42]); tocService.reset(); expect(unspy).toHaveBeenCalled(); expect(indices).toEqual([null, 42, null]); }); it('should reset the active index (and unspy) when a new `tocList` is requested', () => { const indices: (number | null)[] = []; tocService.activeItemIndex.subscribe(i => indices.push(i)); callGenToc(); const unspy1 = scrollSpyService.$lastInfo.unspy; scrollSpyService.$lastInfo.active.next({index: 1} as ScrollItem); expect(unspy1).not.toHaveBeenCalled(); expect(indices).toEqual([null, 1]); tocService.genToc(); expect(unspy1).toHaveBeenCalled(); expect(indices).toEqual([null, 1, null]); callGenToc(); const unspy2 = scrollSpyService.$lastInfo.unspy; scrollSpyService.$lastInfo.active.next({index: 3} as ScrollItem); expect(unspy2).not.toHaveBeenCalled(); expect(indices).toEqual([null, 1, null, null, 3]); callGenToc(); scrollSpyService.$lastInfo.active.next({index: 4} as ScrollItem); expect(unspy2).toHaveBeenCalled(); expect(indices).toEqual([null, 1, null, null, 3, null, 4]); }); it('should emit the active index for the latest `tocList`', () => { const indices: (number | null)[] = []; tocService.activeItemIndex.subscribe(i => indices.push(i)); callGenToc(); const activeSubject1 = scrollSpyService.$lastInfo.active; activeSubject1.next({index: 1} as ScrollItem); activeSubject1.next({index: 2} as ScrollItem); callGenToc(); const activeSubject2 = scrollSpyService.$lastInfo.active; activeSubject2.next({index: 3} as ScrollItem); activeSubject2.next({index: 4} as ScrollItem); expect(indices).toEqual([null, 1, 2, null, 3, 4]); }); }); describe('should clear tocList', () => { beforeEach(() => { // Start w/ dummy data from previous usage const expectedValue1 = createTocItem('Heading A'); const expectedValue2 = createTocItem('Heading B'); tocService.tocList.next([expectedValue1, expectedValue2]); expect(lastTocList).not.toEqual([]); }); it('when reset()', () => { tocService.reset(); expect(lastTocList).toEqual([]); }); it('when given undefined doc element', () => { tocService.genToc(undefined); expect(lastTocList).toEqual([]); }); it('when given doc element w/ no headings', () => { callGenToc('

This

and

that

'); expect(lastTocList).toEqual([]); }); it('when given doc element w/ headings other than h1, h2 & h3', () => { callGenToc('

and

that
'); expect(lastTocList).toEqual([]); }); it('when given doc element w/ no-toc headings', () => { // tolerates different spellings/casing of the no-toc class callGenToc(`

one

some one

two

some two

three

some three

four

some four

`); expect(lastTocList).toEqual([]); }); }); describe('when given many headings', () => { let docId: string; let docEl: HTMLDivElement; let headings: NodeListOf; beforeEach(() => { docId = 'fizz/buzz'; docEl = callGenToc(`

Fun with TOC

Heading one

h2 toc 0

H2 Two

h2 toc 1

H2 Three

h2 toc 2

H3 3a

h3 toc 3

H3 3b

h3 toc 4

H4 of h3-3b

an h4

H2 4 repeat

h2 toc 5

H2 4 repeat

h2 toc 6

Skippy

Skip this header

H2 6

h2 toc 7

H3 6a

h3 toc 8

`, docId); headings = docEl.querySelectorAll('h1,h2,h3,h4') as NodeListOf; }); it('should have tocList with expect number of TocItems', () => { // should ignore h4, and the no-toc h2 expect(lastTocList.length).toEqual(headings.length - 2); }); it('should have href with docId and heading\'s id', () => { const tocItem = lastTocList.find(item => item.title === 'Heading one')!; expect(tocItem.href).toEqual(`${docId}#heading-one-special-id`); }); it('should have level "h1" for an

', () => { const tocItem = lastTocList.find(item => item.title === 'Fun with TOC')!; expect(tocItem.level).toEqual('h1'); }); it('should have level "h2" for an

', () => { const tocItem = lastTocList.find(item => item.title === 'Heading one')!; expect(tocItem.level).toEqual('h2'); }); it('should have level "h3" for an

', () => { const tocItem = lastTocList.find(item => item.title === 'H3 3a')!; expect(tocItem.level).toEqual('h3'); }); it('should have title which is heading\'s textContent ', () => { const heading = headings[3]; const tocItem = lastTocList[3]; expect(heading.textContent).toEqual(tocItem.title); }); it('should have "SafeHtml" content which is heading\'s innerHTML ', () => { const heading = headings[3]; const content = lastTocList[3].content; expect((content).changingThisBreaksApplicationSecurity) .toEqual(heading.innerHTML); }); it('should calculate and set id of heading without an id', () => { const id = headings[2].getAttribute('id'); expect(id).toEqual('h2-two'); }); it('should have href with docId and calculated heading id', () => { const tocItem = lastTocList.find(item => item.title === 'H2 Two')!; expect(tocItem.href).toEqual(`${docId}#h2-two`); }); it('should ignore HTML in heading when calculating id', () => { const id = headings[3].getAttribute('id'); const tocItem = lastTocList[3]; expect(id).toEqual('h2-three', 'heading id'); expect(tocItem.href).toEqual(`${docId}#h2-three`, 'tocItem href'); }); it('should avoid repeating an id when calculating', () => { const tocItems = lastTocList.filter(item => item.title === 'H2 4 repeat'); expect(tocItems[0].href).toEqual(`${docId}#h2-4-repeat`, 'first'); expect(tocItems[1].href).toEqual(`${docId}#h2-4-repeat-2`, 'second'); }); }); describe('TocItem for an h2 with links and extra whitespace', () => { let docId: string; let tocItem: TocItem; beforeEach(() => { docId = 'fizz/buzz/'; // An almost-actual

... with extra whitespace callGenToc(`

Setup to develop locally.

`, docId); tocItem = lastTocList[0]; }); it('should have expected href', () => { expect(tocItem.href).toEqual(`${docId}#setup-to-develop-locally`); }); it('should have expected title', () => { expect(tocItem.title).toEqual('Setup to develop locally.'); }); it('should have removed anchor link from tocItem html content', () => { expect((tocItem.content) .changingThisBreaksApplicationSecurity) .toEqual('Setup to develop locally.'); }); it('should have bypassed HTML sanitizing of heading\'s innerHTML ', () => { const domSanitizer: TestDomSanitizer = injector.get(DomSanitizer); expect(domSanitizer.bypassSecurityTrustHtml) .toHaveBeenCalledWith('Setup to develop locally.'); }); }); }); interface TestSafeHtml extends SafeHtml { changingThisBreaksApplicationSecurity: string; getTypeName: () => string; } class TestDomSanitizer { bypassSecurityTrustHtml = jasmine.createSpy('bypassSecurityTrustHtml') .and.callFake((html: string) => { return { changingThisBreaksApplicationSecurity: html, getTypeName: () => 'HTML', } as TestSafeHtml; }); } class MockScrollSpyService { private $$lastInfo: { active: Subject, unspy: jasmine.Spy, } | undefined; get $lastInfo() { if (!this.$$lastInfo) { throw new Error('$lastInfo is not yet defined. You must call `spyOn` first.'); } return this.$$lastInfo; } spyOn(headings: HTMLHeadingElement[]): ScrollSpyInfo { return this.$$lastInfo = { active: new Subject(), unspy: jasmine.createSpy('unspy'), }; } } function createTocItem(title: string, level = 'h2', href = '', content = title) { return { title, href, level, content }; } rxjs-7.5.7/docs_app/src/app/shared/toc.service.ts000066400000000000000000000073161431412030200217160ustar00rootroot00000000000000import { DOCUMENT } from '@angular/common'; import { Inject, Injectable } from '@angular/core'; import { DomSanitizer, SafeHtml } from '@angular/platform-browser'; import { ReplaySubject } from 'rxjs'; import { ScrollSpyInfo, ScrollSpyService } from 'app/shared/scroll-spy.service'; export interface TocItem { content: SafeHtml; href: string; isSecondary?: boolean; level: string; title: string; } @Injectable() export class TocService { tocList = new ReplaySubject(1); activeItemIndex = new ReplaySubject(1); private scrollSpyInfo: ScrollSpyInfo | null = null; constructor( @Inject(DOCUMENT) private document: any, private domSanitizer: DomSanitizer, private scrollSpyService: ScrollSpyService) { } genToc(docElement?: Element, docId = '') { this.resetScrollSpyInfo(); if (!docElement) { this.tocList.next([]); return; } const headings = this.findTocHeadings(docElement); const idMap = new Map(); const tocList = headings.map(heading => ({ content: this.extractHeadingSafeHtml(heading), href: `${docId}#${this.getId(heading, idMap)}`, level: heading.tagName.toLowerCase(), title: (heading.textContent || '').trim(), })); this.tocList.next(tocList); this.scrollSpyInfo = this.scrollSpyService.spyOn(headings); this.scrollSpyInfo.active.subscribe(item => this.activeItemIndex.next(item && item.index)); } reset() { this.resetScrollSpyInfo(); this.tocList.next([]); } // This bad boy exists only to strip off the anchor link attached to a heading private extractHeadingSafeHtml(heading: HTMLHeadingElement) { const div: HTMLDivElement = this.document.createElement('div'); div.innerHTML = heading.innerHTML; const anchorLinks: NodeListOf = div.querySelectorAll('a'); for (let i = 0; i < anchorLinks.length; i++) { const anchorLink = anchorLinks[i]; if (!anchorLink.classList.contains('header-link')) { // this is an anchor that contains actual content that we want to keep // move the contents of the anchor into its parent const parent = anchorLink.parentNode!; while (anchorLink.childNodes.length) { parent.insertBefore(anchorLink.childNodes[0], anchorLink); } } // now remove the anchor anchorLink.remove(); } // security: the document element which provides this heading content // is always authored by the documentation team and is considered to be safe return this.domSanitizer.bypassSecurityTrustHtml(div.innerHTML.trim()); } private findTocHeadings(docElement: Element): HTMLHeadingElement[] { const headings = docElement.querySelectorAll('h1,h2,h3'); const skipNoTocHeadings = (heading: HTMLHeadingElement) => !/(?:no-toc|notoc)/i.test(heading.className); return Array.prototype.filter.call(headings, skipNoTocHeadings); } private resetScrollSpyInfo() { if (this.scrollSpyInfo) { this.scrollSpyInfo.unspy(); this.scrollSpyInfo = null; } this.activeItemIndex.next(null); } // Extract the id from the heading; create one if necessary // Is it possible for a heading to lack an id? private getId(h: HTMLHeadingElement, idMap: Map) { let id = h.id; if (id) { addToMap(id); } else { id = (h.textContent || '').trim().toLowerCase().replace(/\W+/g, '-'); id = addToMap(id); h.id = id; } return id; // Map guards against duplicate id creation. function addToMap(key: string) { const oldCount = idMap.get(key) || 0; const count = oldCount + 1; idMap.set(key, count); return count === 1 ? key : `${key}-${count}`; } } } rxjs-7.5.7/docs_app/src/app/shared/web-worker.ts000066400000000000000000000034371431412030200215560ustar00rootroot00000000000000/* Copyright 2016 Google Inc. All Rights Reserved. Use of this source code is governed by an MIT-style license that can be found in the LICENSE file at http://angular.io/license */ import {NgZone} from '@angular/core'; import {Observable} from 'rxjs'; export interface WebWorkerMessage { type: string; payload: any; id?: number; } export class WebWorkerClient { private nextId = 0; static create(workerUrl: string, zone: NgZone) { return new WebWorkerClient(new Worker(workerUrl), zone); } private constructor(private worker: Worker, private zone: NgZone) { } sendMessage(type: string, payload?: any): Observable { return new Observable(subscriber => { const id = this.nextId++; const handleMessage = (response: MessageEvent) => { const {type: responseType, id: responseId, payload: responsePayload} = response.data as WebWorkerMessage; if (type === responseType && id === responseId) { this.zone.run(() => { subscriber.next(responsePayload); subscriber.complete(); }); } }; const handleError = (error: ErrorEvent) => { // Since we do not check type and id any error from the webworker will kill all subscribers this.zone.run(() => subscriber.error(error)); }; // Wire up the event listeners for this message this.worker.addEventListener('message', handleMessage); this.worker.addEventListener('error', handleError); // Post the message to the web worker this.worker.postMessage({type, id, payload}); // At completion/error unwire the event listeners return () => { this.worker.removeEventListener('message', handleMessage); this.worker.removeEventListener('error', handleError); }; }); } } rxjs-7.5.7/docs_app/src/app/shared/window.ts000066400000000000000000000002361431412030200207730ustar00rootroot00000000000000import { InjectionToken } from '@angular/core'; export const WindowToken = new InjectionToken('Window'); export function windowProvider() { return window; } rxjs-7.5.7/docs_app/src/app/sw-updates/000077500000000000000000000000001431412030200177415ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/app/sw-updates/sw-updates.module.ts000066400000000000000000000002751431412030200236750ustar00rootroot00000000000000import { NgModule } from '@angular/core'; import { SwUpdatesService } from './sw-updates.service'; @NgModule({ providers: [ SwUpdatesService ] }) export class SwUpdatesModule {} rxjs-7.5.7/docs_app/src/app/sw-updates/sw-updates.service.spec.ts000066400000000000000000000164011431412030200247770ustar00rootroot00000000000000import { ApplicationRef, ReflectiveInjector } from '@angular/core'; import { discardPeriodicTasks, fakeAsync, tick } from '@angular/core/testing'; import { SwUpdate } from '@angular/service-worker'; import { Subject } from 'rxjs'; import { Logger } from 'app/shared/logger.service'; import { SwUpdatesService } from './sw-updates.service'; describe('SwUpdatesService', () => { let injector: ReflectiveInjector; let appRef: MockApplicationRef; let service: SwUpdatesService; let swu: MockSwUpdate; let checkInterval: number; // Helpers // NOTE: // Because `SwUpdatesService` uses the `interval` operator, it needs to be instantiated and // destroyed inside the `fakeAsync` zone (when `fakeAsync` is used for the test). Thus, we can't // run `setup()`/`tearDown()` in `beforeEach()`/`afterEach()` blocks. We use the `run()` helper // to call them inside each test's zone. const setup = (isSwUpdateEnabled: boolean) => { injector = ReflectiveInjector.resolveAndCreate([ { provide: ApplicationRef, useClass: MockApplicationRef }, { provide: Logger, useClass: MockLogger }, { provide: SwUpdate, useFactory: () => new MockSwUpdate(isSwUpdateEnabled) }, SwUpdatesService ]); appRef = injector.get(ApplicationRef); service = injector.get(SwUpdatesService); swu = injector.get(SwUpdate); checkInterval = (service as any).checkInterval; }; const finalize = () => service.ngOnDestroy(); const run = (specFn: VoidFunction, isSwUpdateEnabled = true) => () => { setup(isSwUpdateEnabled); specFn(); finalize(); }; it('should create', run(() => { expect(service).toBeTruthy(); })); it('should start checking for updates when instantiated (once the app stabilizes)', run(() => { expect(swu.checkForUpdate).not.toHaveBeenCalled(); appRef.isStable.next(false); expect(swu.checkForUpdate).not.toHaveBeenCalled(); appRef.isStable.next(true); expect(swu.checkForUpdate).toHaveBeenCalled(); })); it('should periodically check for updates', fakeAsync(run(() => { appRef.isStable.next(true); swu.checkForUpdate.calls.reset(); tick(checkInterval); expect(swu.checkForUpdate).toHaveBeenCalledTimes(1); tick(checkInterval); expect(swu.checkForUpdate).toHaveBeenCalledTimes(2); appRef.isStable.next(false); tick(checkInterval); expect(swu.checkForUpdate).toHaveBeenCalledTimes(3); discardPeriodicTasks(); }))); it('should activate available updates immediately', fakeAsync(run(() => { appRef.isStable.next(true); expect(swu.activateUpdate).not.toHaveBeenCalled(); swu.$$availableSubj.next({available: {hash: 'foo'}}); expect(swu.activateUpdate).toHaveBeenCalled(); }))); it('should keep periodically checking for updates even after one is available/activated', fakeAsync(run(() => { appRef.isStable.next(true); swu.checkForUpdate.calls.reset(); tick(checkInterval); expect(swu.checkForUpdate).toHaveBeenCalledTimes(1); swu.$$availableSubj.next({available: {hash: 'foo'}}); tick(checkInterval); expect(swu.checkForUpdate).toHaveBeenCalledTimes(2); tick(checkInterval); expect(swu.checkForUpdate).toHaveBeenCalledTimes(3); discardPeriodicTasks(); }))); it('should emit on `updateActivated` when an update has been activated', run(() => { const activatedVersions: (string|undefined)[] = []; service.updateActivated.subscribe(v => activatedVersions.push(v)); swu.$$availableSubj.next({available: {hash: 'foo'}}); swu.$$activatedSubj.next({current: {hash: 'bar'}}); swu.$$availableSubj.next({available: {hash: 'baz'}}); swu.$$activatedSubj.next({current: {hash: 'qux'}}); expect(activatedVersions).toEqual(['bar', 'qux']); })); describe('when `SwUpdate` is not enabled', () => { const runDeactivated = (specFn: VoidFunction) => run(specFn, false); it('should not check for updates', fakeAsync(runDeactivated(() => { appRef.isStable.next(true); tick(checkInterval); tick(checkInterval); swu.$$availableSubj.next({available: {hash: 'foo'}}); swu.$$activatedSubj.next({current: {hash: 'bar'}}); tick(checkInterval); tick(checkInterval); expect(swu.checkForUpdate).not.toHaveBeenCalled(); }))); it('should not activate available updates', fakeAsync(runDeactivated(() => { swu.$$availableSubj.next({available: {hash: 'foo'}}); expect(swu.activateUpdate).not.toHaveBeenCalled(); }))); it('should never emit on `updateActivated`', runDeactivated(() => { const activatedVersions: (string|undefined)[] = []; service.updateActivated.subscribe(v => activatedVersions.push(v)); swu.$$availableSubj.next({available: {hash: 'foo'}}); swu.$$activatedSubj.next({current: {hash: 'bar'}}); swu.$$availableSubj.next({available: {hash: 'baz'}}); swu.$$activatedSubj.next({current: {hash: 'qux'}}); expect(activatedVersions).toEqual([]); })); }); describe('when destroyed', () => { it('should not schedule a new check for update (after current check)', fakeAsync(run(() => { appRef.isStable.next(true); expect(swu.checkForUpdate).toHaveBeenCalled(); service.ngOnDestroy(); swu.checkForUpdate.calls.reset(); tick(checkInterval); tick(checkInterval); expect(swu.checkForUpdate).not.toHaveBeenCalled(); }))); it('should not schedule a new check for update (after activating an update)', fakeAsync(run(() => { appRef.isStable.next(true); expect(swu.checkForUpdate).toHaveBeenCalled(); service.ngOnDestroy(); swu.checkForUpdate.calls.reset(); swu.$$availableSubj.next({available: {hash: 'foo'}}); swu.$$activatedSubj.next({current: {hash: 'baz'}}); tick(checkInterval); tick(checkInterval); expect(swu.checkForUpdate).not.toHaveBeenCalled(); }))); it('should not activate available updates', fakeAsync(run(() => { service.ngOnDestroy(); swu.$$availableSubj.next({available: {hash: 'foo'}}); expect(swu.activateUpdate).not.toHaveBeenCalled(); }))); it('should stop emitting on `updateActivated`', run(() => { const activatedVersions: (string|undefined)[] = []; service.updateActivated.subscribe(v => activatedVersions.push(v)); swu.$$availableSubj.next({available: {hash: 'foo'}}); swu.$$activatedSubj.next({current: {hash: 'bar'}}); service.ngOnDestroy(); swu.$$availableSubj.next({available: {hash: 'baz'}}); swu.$$activatedSubj.next({current: {hash: 'qux'}}); expect(activatedVersions).toEqual(['bar']); })); }); }); // Mocks class MockApplicationRef { isStable = new Subject(); } class MockLogger { log = jasmine.createSpy('MockLogger.log'); } class MockSwUpdate { $$availableSubj = new Subject<{available: {hash: string}}>(); $$activatedSubj = new Subject<{current: {hash: string}}>(); available = this.$$availableSubj.asObservable(); activated = this.$$activatedSubj.asObservable(); activateUpdate = jasmine.createSpy('MockSwUpdate.activateUpdate') .and.callFake(() => Promise.resolve()); checkForUpdate = jasmine.createSpy('MockSwUpdate.checkForUpdate') .and.callFake(() => Promise.resolve()); constructor(public isEnabled: boolean) {} } rxjs-7.5.7/docs_app/src/app/sw-updates/sw-updates.service.ts000066400000000000000000000040741431412030200240510ustar00rootroot00000000000000import { ApplicationRef, Injectable, OnDestroy } from '@angular/core'; import { SwUpdate } from '@angular/service-worker'; import { concat, interval, NEVER, Observable, Subject } from 'rxjs'; import { first, map, takeUntil, tap } from 'rxjs/operators'; import { Logger } from 'app/shared/logger.service'; /** * SwUpdatesService * * @description * 1. Checks for available ServiceWorker updates once instantiated. * 2. Re-checks every 6 hours. * 3. Whenever an update is available, it activates the update. * * @property * `updateActivated` {Observable} - Emit the version hash whenever an update is activated. */ @Injectable() export class SwUpdatesService implements OnDestroy { private checkInterval = 1000 * 60 * 60 * 6; // 6 hours private onDestroy = new Subject(); updateActivated: Observable; constructor(appRef: ApplicationRef, private logger: Logger, private swu: SwUpdate) { if (!swu.isEnabled) { this.updateActivated = NEVER.pipe(takeUntil(this.onDestroy)); return; } // Periodically check for updates (after the app is stabilized). const appIsStable = appRef.isStable.pipe(first(v => v)); concat(appIsStable, interval(this.checkInterval)) .pipe( tap(() => this.log('Checking for update...')), takeUntil(this.onDestroy), ) .subscribe(() => this.swu.checkForUpdate()); // Activate available updates. this.swu.available .pipe( tap(evt => this.log(`Update available: ${JSON.stringify(evt)}`)), takeUntil(this.onDestroy), ) .subscribe(() => this.swu.activateUpdate()); // Notify about activated updates. this.updateActivated = this.swu.activated.pipe( tap(evt => this.log(`Update activated: ${JSON.stringify(evt)}`)), map(evt => evt.current.hash), takeUntil(this.onDestroy), ); } ngOnDestroy() { this.onDestroy.next(); } private log(message: string) { const timestamp = (new Date).toISOString(); this.logger.log(`[SwUpdates - ${timestamp}]: ${message}`); } } rxjs-7.5.7/docs_app/src/assets/000077500000000000000000000000001431412030200163675ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/assets/.gitkeep000066400000000000000000000000001431412030200200060ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/assets/images/000077500000000000000000000000001431412030200176345ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/assets/images/favicons/000077500000000000000000000000001431412030200214445ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/assets/images/favicons/apple-touch-icon-144x144.png000066400000000000000000000314601431412030200262540ustar00rootroot00000000000000‰PNG  IHDRçFâ¸gAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“2"IDATxÚíyœ]uyÿßÏ÷Ü;[2Y&Ë„E@A-€ mݨB±Uú’JE¤¶E2“°(h…$3“ЪÅ*þªåW+"Jû¨ ¶Ê¾Ùd K¶™!É$™™{¿ßç÷ÇÙ¾çÜ3k&+÷¼^÷5÷Þ9w;çs>Ÿgû>¨ªRßêÛ$7S?õ­ úVP}«¨¾ÕTßêÛĶҞþúæ÷´¯W‘#™üSu“ <„s¿k[ß1X?åS»ÉžìÆ÷Íï9 1¼he×AT Üú½¶u‹^¨Ÿú—1€úæu¿|8v?5¦¥AÔ}Õåmë;V×!ð2P_ûÊSl߯PÝŠpQۚϮ¬Ãàe Þ+?"Ê¿OáÏôæ†jõ£Ó{;7Õá°¨o^÷‰¥Û˜ä×5@ PR£!|œeuÏnuÕ[ú?^‡Ä^ ¾y]¯Á¿Oí˜q¸— l5émP”!Š„ ªˆn]kø¾œ P¬ˆnÕ^QéxѨ‰Q“B³ A¶Ù(}%X_RúØd”Š _£€QÁhÏhµ!;Ix`ˆ¥$Þ0ª£¬6ðÀÃFõ.Q~{Òs/Oƒ|÷Ðü÷!æØðt×§Qaº ï¯/Áóeå¹²²®/0h@#&jT(G·@! ñ$-|¬ÑÁ‰ÿ'ÕðÑs1¸"KÊŠr· ?Çm¿|× ÛêÚÕFsûUÿ-ð<1Û´:¡ì`cIy²!¼=_VúKŠEhvBKÿ¤›$Bà=Ží$£1P¸Oš«øÌ3 xM÷‹Aˆ<ÑZ0ÅCyZ”ÿÐo¿q]ÇCuípÉê^ ˜Ô˜· š0N[œG›w5;~ߨl”Vkhu¾í’‚'È€#Ë>&òÆÄ– …²ädk$’ö‹4ÀÍ*zõ×uþ¤ žž¿Ä˜D¥M Á3ËBI…ÇwNs<ÔìæFl#* H|c7¨‘¬béÊØ=oàñAä¼÷Ëü_³~c ¨ß=¯ßÐq}@Ûß™…Èûù ˜·‚â€f…iUaMƒrÛtËïZ”!QæU…Æä¤zRUÀ>)¨ÒÄ+0š¦^YI—•¯üߌ}¥µÀÍþE¢û"¿]úÚ ÿQÐX@Y°âG¨°¿Q9@E[#AŽf…‡]¹²¢Ü:ÍqÛtG ãàÙ7)`bù H…¾áøvMTêI0.Tàrvx|Û(O8ÃZÄ÷Ú²Þ¤êmÀÅÇõvü¦ ¬$†ÈÉ om_´(´T…'š?˜ay¤Ii³ÂŒÈM! †!!¨Iaš‹¼/ÿD{ûçÙÇ7šßhöl(ñkz‹ßR<–*‰@#¾|I@â9 Š^#èE 7tö¾¬ÔÛ¾âLA.Ïþ.²i~ÜZå'­‹°ÀJêñÄÈ! ˜ðùUxÕPhL?Å€¶š0=ÍA“ólf¥+ˆ”õ˜À“—,d x4T+Z*8ò*ô[ÕEÇôv|ëe  ¾ù+®Gä/ƳoâaU… eå_fU¸¯I™_¦«$Û·k6J³36$>$8,̶á>[ l`MIYS† ²%AhqÐd};eŸ ’®’«µ{Ìà1Ñ¡‹ iLpŒ2¢|“袺ÉaÏYØ»øù— €úÚWÜò¡ñ²N£BkUx°ÅñõÙúŒ²Õ„râÛ6„ÑãUÇnÞ´%àUáìl ¼–FìÔIXE ¿ëÖÐWV6—À 4Y¥ÑEi•„yò1Æ‘“·ð5D ”È@6â§@¨•±ø¾Ô‘z(s° ÑO±¡ã{{=€úævý%¥ò¿Ž'[٠?aùά ó*jTúÒê„m 8n[(lýAè±tU Q £vŒÒ[† Ð×2“¡ÁA£ ÙÇ7¼ýØŽqéßXúvŠXÇD 09àøÆtAÔ:ÿW%“E¯>²·ãœ½@óW¾ˆ°ÏXûY`V”†ø×YUnœa™W…Öè¨RÅó€Vgõ•ØwHØXVªŒ?7¯ ª”-4Z¨ l.A¼T†@öä&ˆÓš}.µ{Ô‹ÿ„Ìc"æ1#Þ1;ù*’¯8*a/¾ïDïvèGŽêí|r¯P_ûŠ7ƒŒé‚Z S%…¯´U¹ušeÿªÐEœC·Ü ÊͰÀ™}¯4l(éø—’HHw: 8E\ø~Õè¤`ÀØbB6Ú„ŸåÈÚ?÷7 ž}|ð˜\p1W[_À@… Š;[î#Göî>‘ì)YÖ£Â;ÆÃºL&HhDO˷׌óÃù(¸-¸ÅF½«}.k“ÉÊUsº{ö9æŒf0Ït$Ìó‹ËSóÁùàZü8PØfÇÙGHù?°O&Ry@5RîÊÏHWb4ç f—ÚmKOxÌ6¢é_ñ(ùŸÚ8E)“вèá9=ßÙK$L¦]n°ÂWgW¸mšå€Jhãèç\r1¢f^,)›‚TZ&$_.ý0•ôo|s¹ïR•l*Br?)¶LBÕg¡ªT5Š D¢›ç}n,m~ *ëá}üÁ¹=ßßãT„Üï–ªðo³ªÜØÚ<†Zû¢˜‡Â­ÅÁóexºA™f…‰`H'e–\d˜ûàÑÈ«Äì“/׈Ù'—žð÷É”8E-¦dÂ×o­f_o›‘ˆÅâç$”êH¤Àóów¾(§=0·û¦=@Õ¢'gV„Û[-ßšUaߪÐ0óŒ&a1[Ý×äP!²›&Â>š}èÇ¡éc…a“®åëyÐÚxŽÉ1’° Ôf7­´_ëIå#ç~¸tàÌ[ÙZMA“äó<à€B0yL&¹2_ÊÂc$'?0wÅ÷÷` £9#]sªÂãMŽ«fW˜eÒÙ¨,žQJ#Itþg[XÕ¤<Ôä˜U•جÛþQïs$gÿx.2ÚWL”.ñ^—aJ!à1° YE¶U™vÊk.ÛwÍß~¦}Õ'o›w×7Î{êì÷î&ãÒ(õH_;–‰íËLF}WÒÓîÛýÕ=•š}»gvU”emª„^”Ž"ScmñA½}ºcÐ(ÓcJY‘÷…g0ÇrF¦A“M5=úo&Zí»ùC–`V¥}¦¥æ½ïç ªã:)BÊD~@3ÑέùÌÝsºÎÝó¼0¥)>Ö‘»úµYUžlPö±‚•‘dJÇ'%d¡gËð³éŽf+”<Ù(E+-â•Mš«ÐR…iÑ­¹ Í]´:ÃiqŽ×‡œ o…FMF=Ï"˜À0ô›ç7Öè}§‡:9N+.–6¤ „Öoæ²0\uלåoÛYšªö.¯ˆï´V ·´VøÏé–+¡ÜŒæ²çŸ‘ö‹Aô«iÊþÇ­†¡@C·;òž,adÙ*T4¼ï°Ã‘\ ÂXõ™)ȘëÈ.B¡½¦`tãÚœ\뿦ò³g>ªÖ! å"ï!+·P¤9$%⹩yP‡¯1ÿùÛ9Ëšï]²m·Pßüàɸ¦çÅÇ×gYfÛÐ Óq—ŒZ^Ä·¶:žn™ÃŠbIe©P*%Zšôœ„ëÃlv¹3£¸ëx5…õ‘ì躭ßX×þ•9Íg.¼KÖo5Cׯúk´'Kcɧ«bGV ŽK"MÊaG;fŠAfˆ˜R&»Ý¹°¾ù+ÎAä겆Ëj.›_ág-–C†$q}¯C¯äT3¥©ñÿÄ7(5[XŠc‹eO¾JQð®=WÒPæ¯v'À+sš‰ûñ™$"½.uÓÓ<ŸrÈD˜Ö°31Ö¡[*HÉDnIøZŒg¯Å6›«¥9UÅ™èB‘ˆiÅ{LE=L‡;åø ‹oØ­m 5Òéëznn¹µ%Œ÷XÙ1_ØÚ:mfZ˜á•©Í.\ÚÜ'! 1’ 2ÖÿÇbÎŒ»”´¨ ¥Ðýò^$1K Áˆ±Q™YÆú¾b¾ý@ÛÒDe>püeÓN9êwõÍë¾ äà6•”į̈2ÝM^eOÁTƒ¿Ùȶ ó_ТB“ÊšæÎI4Þz¯Ùf”MFÙ(Ï•O–-5Xm¨òlÙ1`Bvš¦BÙɈ'dT œ(/Ì4>Dù¥%ñ¨F÷µØ+ü^2ªó–ûÚÒØ[âSñãÝwÑ×Eh?õè+þs—¨~Ïœ¼üG«eM ´Ú ™q½C¢”€YV˜í„ÖhyNàéâÕA´º¢ÎeüÐσƱ.p<ÖX徯*÷6YþÐ`4Žé.d&):øÔˆOtT$WÌ>¡±¬Õð†Eï56À½fªHt¾Ò³îzTÍû>|ÄïÙiê¿¢µ¯}å=*æ½ñše…'›·L³,¨ n‚:1¥æ;Ã~6`¶3”Tp* Ë,ô¼!Ý–_“ ¡|©0-ʺ@y°Ññ?ÓªÜÕReMƒ£Ù 3]èÝ©—î@j¯nÕb’Èì#Ù÷)dõ@”¹³æ¾[¦¢ @Ò”¬Éy¯¹§½'±{†• üÇNPoûÊé"ò[àµ/ÀÁÍÓ,ešŽÿ¢µÀ6Qf:áàJÀ`€j”‹—)ûöe¦(+rùc×¾06CZ[¦«Ðê„*“ –;§WùùŒ*O4:Ê*ÌŠbBã‘4ÍÙ ™“)éI¦Ö+OßÀånZìq&É`©¦ŽÂHš“¼!Ñ„m†DïÝÌ<å˜+.ޡꟿ܈Èÿ‡ûÏÏp Êí-–ùã0œchP”ŠÀÕ€C‡¦©0ì56ð³ÓF% ?ïd| hþ9xi¾‰B3­¡ÑžopürF•ÿžYåÑfM¼9Á®9i¹Â÷„âǪE¡q‡+ü÷Nž“lÍ4þÿ ŒëxåZEäèø½ÿûþ‹¶a«k.=åè+Zv€TJ?E92ÿãJnm±Î’ÏÐv*¨h‚¸ß.@pªH‘õ+MâÅiêÕ©þª$\?Ãñ_×<°ä àMwì×uV>­È'öñ³ ‰]"µv‘_"bÔ„2¯NqQåáñÂ&‚”¡8Ф#xf#åÉâ©8K¬U9wÊÔ»ïŠy"Áú´¬/ý2Í~ÖbYÕ`ÙÏši.B»É(³ðömešTØ$Љù?wŒg´ÆWVúœà"Ô‚ÄEl£ªïdJrp¸ëzíÒUçß ¼5ÿÛßþ|ç³wÌïjäãgÇ‹'Oñû& ‰sTJ¦HML¦„½$IƒÕ,,TÏãŠY’FÂpëd¤ù•­>˜r'rMzÒä€S޾ò-7gR^Çñë:oø][×N·ÈŸoNâYBméA,ãI­hŠ#ñl*‘Ú%ÍNjÁ£À²àÑeMQ\ÙÞ¬ð~Ò@î'þÑ”HżJ`ß|G#ãù®i–Õ%åUÉd•ÔkÚõë9iK‰ÙVè”’†kÑý“­þÕèÙ/.®¾‹>Âå$M<ùAÉØ%Dï°†Ï~þáλ¿›ŠÈëú:×Ä÷ïŸÓý §:'6«4'½qͤeÒ´Wa<Éæ$,>Z³ «a\É}÷ħ—<“ ýK¾šïˆS¹b¿ÜáóÛ/aê*`*…òeàþWhÆ¿a4Ê{7—9`ذ¾ä¼Î¦!Ð\TÄ•z+!Z4¹<Ó/ÞC³öˆð%Mð\tÑ#_îÞQ¹¯cz;›áÁ9]ï7"÷å -ÕAÇ2¯‘¯½h‹=;ç­YóW“Ä€Š~«çÞ‹ÇN‚íwe{6pzîó´ÀÔ0¨>‰è3Qû¹d›î¾;«,³ìȬ—JÊ[·»MØPR‚Ȱu^Zܨ$´Ÿ·y ’H[ï¾£VÒ¢ÐôóØœÿÐ’_±·£{;oŽï?ÚÖý§|@EN2†#Uk‹óGM”Jv±£ÓÜjïo^º|ÙSôE[²'œôÔ’2­‹|Bòˆ)PÛºŽÕ½ V|Qêÿز~ßly®fÝ}éŠ{óôÊ«† ïØjÒ¦ •ѹ$N‚(¾2ïÆÇñ­e" 2’fD°Ž;]É~`ñCK^bn‡õuüw|ÿ±¶ž…"úN£òN„7вßHª±_b9ôÅEbÉzpÍ”¶–ÂÀÁg>Öñ/u(Ln3¢o(*ÂéŸr‰‘;š6e}Ée´ÍÀ‚Šð†-†£Ik6JN¦õ?ÅßÓñš‚(#šéÝ §×a°BÞ–¯ÞŒî¯-Úÿ”…WüÕ© ¿|Єè0«á+©YÛ[ÒöFiðJM_ ”÷ 8ºíF™p/^‘dÌIWóJ>¡êyi ¨†Í–\.ð¨P¾}úç=S‡Áä¶3ŽZfTØ`¢Õ¬žQ âžÍïÚë/?mxLŒ[8)j[ÛáPþÐ([$7` ËCn3 Ã䇕ÍN ”|ûͶo È-'öæšF°Ä8waÛÃ>úf¶¸¦*ÇDOÔH%8O4: 'Å@±©Ó/a'Œ[åÆW6EqŸ´úOjŒ+c6r¾î5[žÔ ÅǰXêǧ=ÕñbÛ ÃѰfW¼s©Äƒé:êÊF%Ø$aϽC'gD‡ÛÜÍ&Û~@à!a¾†ö¯1Þä›LRF鯼ˆ›"„ìf@Ü×êØîíÏâÁ|d"lj23]MÀç€F¤jŸõµ¯hiÃôn1Zƒ¼ƒ‡ ¥¤D!¬7NX%II„y0¼zgÍ1Q\¯î·øÏ·OqƽdÅÝR?ÿ“ß>uÔÒ㹯š3Î)†ßþŸûΊ÷ýó×/†šMF¢BYáÀI1QýFš·y¼*.*ÀRWßIš@àøE“ßþîØ+QÎl—™äx—E’VÁ]xåþê‚Ïñ{aˆ1cÈ×"s¢ F) ?þÓ-(ÌO6ŽATd9»ÈäÆeCmcí¨Séoê0ØòqòQÓóËŠÂ _ŸúÖýKô|úë$?ãUdhBêŸßu(*…ó,°`8œ^0oq äôEåE’äFHæ%ÍÀ@€>T‡Áä·a'ú+|}G8@®‹÷;ý¸+߇5'JT3‘,ä}fÜêÝgśԔ~H´ª…&'™%6ó«’!kÛ$€´=]ž$?@k¼´U'­îÜV‡Áä¶Ž×]ùvAŽLØÝ—0W•oœó†¥¦T ¾·Þ“4Ĉq<:~²ò÷ùåÌAò¯pˆíìj8='ðÝn¨•Hì¥l§7b9/i~.-ÒcuL~³CÁ•ñ9€|‹`½õ[«¯â›ïü*hAqDyò—÷š5íÖì„ÙÕ´'É®ã ^Ë 1’vÕ\\(ÈIšä‡Š¨>Y‡Áä¶Îc—ïo5yF!î`¢—œuܲ÷ª“Oø(üÞ úìDâ@• €4¬H¥"B«ƒéQMt¼”×u>]4]Ú‹·ª—ždÛÚx1#r¹4áÙ:&¹9®6^½¹¿Ôàî½æÁ ~ó©c—δUYÿßú+eÂÓùÌ¿=xÁú‰Ñ5¥3PB¨ŠÒlÃ)<ª)kàå¼çÍÒÊM:6IËÎ5Zì¥gÖב0 ö9òЍåuF4×&G¢(´~ÀUåg"á9Ϻ‰®ò‡Gôî ŸU÷`þ©9Q³Êª„u‹‹–â¸lz"‚óÚ¯Œê¥‘‘4I$Íž¸¾:&7,}£h,*ÞtõƒÜöÑ˯6Âë2CþÈŠrÏ„¤Â5 ?öâ̵a‡¯a‰šy‹DͼÉ{ˆ’ç ¼´ä¹Ñ¢×xÕŠ¸-u8Ll»à¨eŸ+û¤Ro¾‡Ú¯ÜþŸ~öØ¥gáôÓùÆ\~”:ºØïœ€æ¬]´NÑ%ñã!.$œm…m֕㘑L™j>=‘xi’ziã‘4?zMuʦ ½,¶K[v\†ÑD®b¡ÐTrê8vé;‡­ùz`È4Þò8#ÑPà& €¹kÏ{Ü×0ß5Ç ûXa‹IG $ç HóA”‘4›õÒÆ <&sEÃT†Öa1·}ÐüÀ$‹§²¦B úïNeA¥jn¯©‰¦¶û~?¿î¡ó·N@mký ª«« ¨†U׎lljxiq2þÚ’YNÀ%ÅIÕÄðö" ²“š„ï-ÛŽ]¾Äˆ¼¡h °E Ý9ù†]‚QÔ_RŒ±?ÕÎΕ?Žï¾ºbhÔ°Q¦_\–D7ã!²99ËHš?HÖ—4F–4ceZãϲ£Ü,ÏëJƒ‡‚(ÍÀ iÁŸç•å¢ÔQ<È÷· @m¯Rìé.02lhdÌæ^œ°QlÉè’–°Ô‘å%ͨ´Õá1ö&Ãæ§~¶= & 2ù,|>À˜a,áækï¹ wû˜³fÑw·håʰ5¯a]É1¤ÌR¢ˆQÒŠÒA¡—íuxŒ¾}éð®›DÙ7_®‘Ú3±m)¯,?ýÐdbEîª1Cãý‚­ë]PRù÷c†ú "W~„7 æXÒò…öy»HÙKäÀ:DFÞþáÈ®/•“4w.L±=”çéKYhûè³ß|ð‚ŸN€ØðwùÓæW3ÕÐ[ ç[Ô ïÌZð ˆ ?ãžOÈfriáûV‡Iñ¶ìðåg”ªæ1Z3ú²ff"S¾ç¥¹éSáã.ÏçOx´×K Ã<µ®Ìþ’ïצ# TÂÕE˜“¶ýâ5ÐÔ¸ö9 DÆ«90]‡JxŽ]þÇ¢æ5Ùf£q™ª¥6-׋×í# 0Fv§×õ}\;®h÷D¿ôÂç.¨¬.ÛeÕÀë­+Rª‘4ÏKEÒ2å!¡ uØÃsº÷­C&Ýz^ÓýŽ`0¸%Â+µ#! )JìQÍ\´¦l;Çû=&áí7\·ºA«É¸ÆHcHZÆK# æ²™rVI㾩›pûÇÃV¼]_JA’Ô…Y c ôŠ'h)CÅ ÒÕ_½çÂoîP=ü»Ïm|¶ìþÕ(ˆÌ(½ü ¼4ã»ú.Mâáye½§è9´ë$î(²wjf…d=¬«ž5ÐZì•E£C±gLäûL:ÇôáM\µ1ÐØFAJQí/i2º¤‰ŸÕ‚„¬½V9ù垯Ö}zƒ˜[S\ @T“S¼ÇÞöò2'ÑB½@Üz¾àg;@oxaɽЮ²>µä%M&&i ÔÇ~hë~ÙÊØ5‡v_lïä,…ƒÄ 2Ê=ïÒU¯C9MàìZÖŠÝvA`¸\æcý^¥íùQ",GùVÞwOÛñJn|^±«¶¯ «/ÍD³/¼ŠG§zöË 8ß|uWIÅ|G/ŇÐxÕš¡göÕ6¡Wû·/\Õy À\~»¨¼3²KGz„ÞqÐÀiWÞsþ„ËfDU'éް±ÒO¤« Dã—5ð £Nˆ—;Ç£ŽüfÛ.¿5ìÄÎ|åK‹÷úß=¤»±‚œ¦Â×Uh‰çòºh¥¨MjÔV[ã~¦†,úãóZ¬KêÚGÜmU÷ñ'ü¸ÜñvNpûÚÒ‡ÿÍd¾çv1ÐÜΫö¶¯ø‚ _¨¡–è&1ˆâ¾Bá¿dXÒÊ]3¶Pt Œš1‡£õÎ虦N*sÎÞS¤Ê+Èß* ;Õ^#¨ ;)o²¸çq²ZŒ>¤Ê}¹·cU§%šÆ³üˆåa\p½5!+A:"nÔÝ¢w_1x:^ÿå¦î».œr˜J¥[/F)¤Q‰¤%­å‹Ù(‘´ÑF>7öÑ@~Ò;³ë¸9;ïÝäÐÇ?þÄy±Í7k¼¯ë>ª«Ë8s½‹–œ#9/MÒ‘Q¨ô›’}7°±8G/ý u|³C$,‰ ÍíºBKå ÑQôi’’æâ!lÞì++ö¼6u®…V>¸VTÚf÷¿×wr]yX÷¡®#oŽF\¦P$ÿœCMÙõ…Î/,˜_¼pé'«Î\kÄ-é~ðüeSî…eéV/CupdK+õÝ3^š§—–©½V5Kÿ0gyó¨ßÉè ¨Ìp•†_îíàùêkzÎ DV"oF³Ç/`ìN %*qKw¨–ßúÚW>È~Œõ–‘t©çFLÔKa¨\=éÀ‹o-Ú}ÛŠÃŒ“G“÷µr§”‡ßÙöÒ’=^ή=´«äR‡\ì ³âÄÔÄx±àÄ :Õ?÷ÈâšQX—½ü‹ÖÊ%Î›Ž¤êÚ–?²¤o§¨w^÷IbJ·2ÞøØ.²ˆ|›iEsF76TôÒ’B·¾·må8I§¶Ø{ÔqÂÜ-›÷Tð|ûž3è%*òJߦñÝtDÉØ(#OWJ•?ùÜçÿÞ¿/¹üNd…:Ž‹çX¸o,{pÉY;,]´ÍYßq+¢?w|쥕È&dÇ!iA™MC¥›G~{÷­4µ¢ ÁkEͽ­=¯ÚÓ€ó½ƒW|ì_Yqo€üK€y¥ÑâB±šÌ{yü©»ÐÏ?¾¬ýò#»®ä碗)…hlÔKvx ±ðªoïž)}LdîBD-ê|bTI‹¯>T[±ï@Çy5Þa{×\W-oÀª7VÝŒòþ9‹vkûû¯êšòq+æoŽÈN,ÔÌôBž¼õÔ¡—/ú}Ç¥ñ{.=¢»±¸NªrCZUÒaÇ![ zõ—ì¡ð×À‚L,ˆ,ˆ¬ R²ç^öÀ’«Æû½w€úç.oÔ ¼‘Ù“b¢Éž½`ë¢k² êY¤6èѼ”¥¯¾ÑÍÙܱÓÚÈܾoÏÁjÜqy›CÞ¥Â1‰'%!`¬dêÚxdºo,§Lô´ª~Ý®ùô£}_9´ûTù„UÞïÇôÛ,kÄBžóÄçéI³*`ì%í›;¾˜aÄùWÝOEÑÄ-©ãfD?9gó¢ÿ;¿ý®yË^ãÄÌ'8Ã\+ì£"¯¶Â¡N8\á°d„gNž¬ S9Τ,וûRNú„C¯w°V¼Eá6’Ëxf‰W–óÔâ©×®Áóùû—Ü¿Û(döW+lVtFf8¹áÉk4e è½qBµ¤W\üPç„çìpôî³ò:qœ1é7¨ñÒÆQ´ë½8ýXûÖE¼4¿ëCÖ–odD)Kø¼ˆûÛy›;~¸] šÓõ5r³ƒÙ±!²JúÏ®‘Dó³á%›×ÂËwÕNR™rEFÜ>Ò¹p2¿q§´M™óâgÏ~3é6 ’¦@ +GΚ'F^×Ú}À¬u7–ÊöB ¼@SÁW `?UóõÓ{®_ÓÔ}Ðd÷ëz;ºƒ½MÐlu—+~×ôbIc:ñœÉ.Ô‚F~W“‚}Òfil´ÓÙ&ûG“ý;…úæu7aJ¿b{ºµä½4F%ö¸r‹¨;¯}kÇ#½í+þÁTÌEÎŽ"eñêtЊ»ÃÒ}7wÚÉ~íßÎëºT1—kNÆòR†/=ƒ:šx=¯,aœ1¤ ¼ÿüU7Oöwí´ÆMmë;¥:ôfÐþíjØâñG•ùãZ ,¬z®¥ûKsÖž÷9DÿVõu`¤)Póeq汦õœ9Ù¯}üúÎËQw¬¨þ¿Â^Øäà¯àÍNlŒGfÚ&¥fnm²TÊg"ÔéeÛžÊ@©KÝýj•à>`û[¶¸É¹úÖêã=·Ü`ÞoÄ|\«®u¤×Å5II™­áa‡®tðí6wLj4÷¯çu}c+¼ÕFv‘oÿä½2gÀÆ6”Œá•ÅFw.è˜g"„Î}dÑ)Û{ v:€BÏlűˆùЦí~³|ôšñ¥A¬ÅÝW*™‚@ÚÔºö¾”…oi#uµ5ü‹3î;¯ìïœTë;Û»N1gXx¯3ÌõAäÕ6'eEÆLÀÛ' Ááîþ»ßw¼n*Îå.@ïüž#D̯™@¹æTæÒ’«Õ)A ”‚0R]²rˆˆ!gËüÄ ×«è­‡ôu¬™è׿cA÷tkø#§ò.^«ÊÁ*ÌQ(«Pu°É Vhq"&f¡Ñ½²4ÕáçÇ ò´Åñ7vnÝ£ÊY×Á*Á/ÀìÏT´A,’´±ri€uŠ1PŠc©-Ž-åWŒøì Ö0è”;¬èÏUø Þ»híd~ÊmûwèDÞªÊá*îàµN8Ð |™Ò‘Œ‰Ñm#æAµWlõ賞\òÂTÃ]  (Z=GMùVà¸)ÑH Ù±$MCÚ/á ß<¥µHÉxñãÛ*Ѿ¡]³Õ¬蓪¬ULŸÃnv†Í*T\ÜàßÈ4U3Ý s¬qŠÌQa¦æ+ÌUX ‚øF[`Ô²(–÷Y7üú³ž<ÿSyþv9€"›(ý!œVD–‚ùã© ù^™æûM | …6Ö&Uý§­ªÿxBïâµ»Ó1ß«ä¹þÇŸ9&1駦l–ññg%Í‹RgØÈ]šó°\RﯫðMÐk_·¡sÃîx¬÷J¥ŒÔÝr*bNÞÇDª ·««Z ¢Q%ÍxÒ•î7¨p“U®?¶wÑ »û1Þ«”3¸ç‹êŸ„@’€}&x¯—÷1ÊÉY‘¤)lrè/œÈÍUq?:ª·óÅ=帾l”•¸ž&DÞ„ão9X°#¼4T³ C¹Rá~Ð;­ð î8¸¿£oO<–/KØLM8ŽÀ°ápT^  Ìn#wUÅÀv0¤°AUŸ@õ)'ò€ÂC6Ї^±©ã…½áØÕ42¨æ+:O0ÎW¡Í8™‹Ó™ÎIKˆe“ ›A× ô+<ëT^PXݾ弡½ñ8ÕTß¶k3õCPßêªouÕ·:€ê[@õ­¾Mlûÿ¤ðºrýÍ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbtEXtSoftwareAdobe ImageReadyqÉe<IEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/favicons/favicon-128x128.png000066400000000000000000000322221431412030200245330ustar00rootroot00000000000000‰PNG  IHDR€€Ã>aËgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“3„IDATxÚí½w¼dWuçû]kŸª;·ÔÊ$20˜`aÀóD˜Á0Œ1ãÞóÈØ<Þ€í±=cc{ìGóá Ic’±AdäÁ0Bƒ( $BH(uº©êìµÞû„}êÖí[$uCŸÏg÷í[U§nÕ^k¯ð[IÜ£×Oî¥G·à(½Ž2ÀÑë(½~"¯b܃wŸð¦ýz‹Š˜ã*ˆ9¨ƒ ¨€;¨+.î€#Tÿµˆä†¨;¨â½>î AÜ@‰às‘ rFs ~p•¸_ûåõëÅ/Ì™/›zΗ6ô˜6'"Žº¡®€ …Pĵê¤T_ 8ˆTÿWw\ ˜€§+€8¨¤ïš¶EP1Ò³ ÕOw•@éÆÀ‡Ís£×1á#'øÔcÇ@Ó7™˜Výçÿ²>–—È3yðAN¦š§ÒfÝ|ásÀûqßrôˆˆ8l®tâfù ЗÖä^ã:‘@žü!Ê»ppÇQ2¡6€g¢z ÈK÷óÖMhø-×p#ίלtô:’À9 øÈ©v¿#0'ÈÛúŽž3_ØQF8ü „[¾LïÏé;Ìlа9œÁ´ˆž7áúAOÀ]€pDÙ??Ö6€ˆeíOà½hq¾>ñ§<8K»ܪ°+8{–VpJ Ù%\6å~‹Š#â,‚Üìø¾ÀMÀ7ë€oËGàWôÚý¿†Ï#ò@ÆÄ(è9Ìšà8wpcß¹¥€õÑ—†•Xxz}Ï!¸Ówèà ÉéKœ..ÉÃQIžê]‚ü#ðEð/_Ê£ pÈ/ÃCE„÷çäÄ÷ê¤ÏGaE= ×Íßžrn-œ*˜À´ÃŒ%ßp.&fQ¥"nrµ«Ç=ùëT¾yEüæué¹­Oçé’ÍÛ>+ø__öe€Ckò¿ü9ág fLØœ/lˆ\ßwv+ì,ÀqæMÙhÐ##pö3'¾R?î5Ñúä{E|â7àOöûu^.ÈËÅÙ-p ðnðÿ,e€vôD>,‹q0ÒižÂ…sé\äŠã–ž3mœ ›"„JTkõ6B»Hà ’FNþâû©Ý×lçqÃù3G>þçÀwzûw쟀„+}±{‚g·—”Ãßmˆ¼}{É'7Fî p\©lÂtCtiE:¡èJ‚±ÄDªûÆ?ÿ]=Á½µ$ jŽzµ`›Â«ƒÉw€7 ”Ö#»ó}3.sx(8Û¢°) _›5Þº-ò‰M‘%…Ka£5¨`#žkâKvÊus[ é}%;ù6†øÉDé^‚yŠÔ÷x{OÅ,ÿ"7oæý'\<ç ?%°Ù… óˆœìÂýL’Á6…¯Ï—Ìßé;ç„Ršà‹Œ¬8Bàü„ë˜Ó¯xçDï‹øùÿ»F¡7Ï5*G*¡fÌšyÃK8þÇ»~Àx+ò; ÏGä¬}ÛþIÜ—ÀÇ7—|~ÞpcK!dxÚtÁI~¾ãl*…e…`®²þ5ÓýcU@­÷éêsƨŽîòæ~,#|ýÙ¤}ÿz$ý²Ã…ÿú ÇËñ÷ü˜3€œ#È»ΘÀìc{)ÜÔwÎß<äº)ç¸R™óµO»Ì:<`E8cE9q˜<ƒ›zp[áÜ]¤pkà ž«‰Ú嫌F÷Žq˜[ú²ñë×HkwŒJ%¼Ëٵ͑w òDÇÍaY{ÙϓϋP½p½WÆJ1ΔÂU3Æ;¶ Xáä¡¢±ë vàö™rá‘KÂã•S†P¸°"Î CáÁ˰;·pKϹ#ÀžKEúb3±ŠÝg§^ÇØ2öô¿ö*dÔÞhvü^¦ï¢ð+.rމüw>'‡5¬Lx¹COÕ Y'»8 S Cl)ù»ù’àÉÈóB ?½xÌR:õ޳+€Uº¸ùX„ÝîgW{ ¸»ï,†$ú§#õéÏÕƒÓQ ㈯"­Šã)0b‡tŽF•S™'+úÙˆ¿Óñóœû>c¡¦ÃÄæ<Þ4ÉÉ?¦öªó¦m%—ÏDN s1¡xÚ=0ì Î3wÎÝ@áîàtݰR`w‘v7 áäœa °«;¦`Q“$eÔ»z¿ýÖ%¾Vb_=%7éˆÊÐ4ZC øèJ¦Ò4‘'öÀ³äq! ¥£ËYŽÈÐ: ""ã—·RCsèØVýý§+ò•€ˆŽvC…b÷i, âöá(¦=ùßïÙ:äK³Æ©C%Ž8GÒçÏΛpÍ”qWpf'”Dþ±¸ -#”#FeçôˆÿÜåSX(‘…!Ŷ™¯ÇÍ_¬E€Ò‘Uª¥¢²š¡F˜K¼ñ¿žÒ“Þ[DCUÑ•‹ ·N9=—{R¬¿,®^.…{À|)|jcÉG7FN,e5b¶†XÿÆàG=¸~Ê™±ÕãXýï«?»iýT*ÚO®aíŒÓû£â¼óšå’0ß÷ÙgŸùËá´M?-Sáܰcî,”W+ž=!l$‡J‘lµ gˆûo¸êËѣܣ* _w•…cê³¹ÞÛT —lˆ¼ukɱUXw=ú{lÖàKsÆ®àl´u¾¬µ* ·=³j£tIW@’YjB"ÒªÓïÀRIÿÌ­ŸêŸµãÝ2Íô“OþÆôÓNÿ=5èûüž¡Q/Ò$Ž¢*Ï#¸ü„·¸JˆòJÿ•[y1@ˆ²î*J!³µhÝR%p¼{óÍ&̬Á¥ë}n'eöÞZ8o0ú–rúj¬ç)û·N)a¶tæK˜é÷)K¯éY»ÉKÕé×qŸÃ;ѼŽ1Wÿz~÷Ò÷—þúZŠcf™Î(NÛH8}Ó2fɤŸd³G˜PÆ “µG¡Rü¦^+0Mögop ;4 0Þ ,'„‚5o …%ƒæ#[Jî púp5ñÇn8ã°­¾6ëœ4tž¸ ,VÎP!KI›Rzrï j#k„ o$B-ú; Í˜ƒÜ6È‘> ‚ýpá™aãÔ«Š‡ïp™ë±ò77b×ï|™—†ÌôVë¹ ^«“T3)•jbLD1=æ z¾#Š9=WvÆÎÂé„C¡ÆCÁ!tÙ5e›<¡ý_š|bCäøÊâ—8ý£"sC„ÿ5oÜÜS†ê´9¢&]c²ÆûƒI’–´—éZÆ|-»¤¾¯PX¶ÓýÎå+í{ßP^{ײ]sç/Ä.¼Pf{-ukjzÆacÜßœ|Ú@Ä£ŸËè Dã/õMØÝ‡¥à‡,Œ;þ}Ìš¨ W,žª‘ÊŸ…'âÜÛP¸yÊxã¶!óƺz_Œ‹^f<è«§SJwDÌ‚DТR EÆevÎú6>ˆÙ€Ê>é)DÈàÒ›Ï_ü>‚Ì™Ñ Hx¬6k$£Iê=ônàu­¿oèK]ý’žùû¿7ÙÝ7¶/ø!‰$µ¤"Ãâeë±»!æHŒH9çíµ+òžM‘»¶­gµï›YýœvØZ¦JŸe²æ* ñ«'•ˆ2†¸kÝ;Šð‰ ÒSd* ýÐ¥`mò×KöGîíëó:‚þ÷˜š.Vz˜…ŸE}ní8ôÁà"Õ“‘šÌO•Þ[@~jc„/ÎE.™œ\ ñ?„u‘Ü&‚8X¬€=êìÎ^u+ý\˜vaÊ¥a†ƒ¹|-Yµk•“ï^S;{áw²Ô㸥‚…‚Ín½ =*¢>Þ·ª¶GõÍ®ò›5pÑ\làÉýÝì²"|UÕNJ3„R`gIœÅŠøwç¶àü 7‘ú‘{‘;‚±¬‰gçL&RCãD‚Œ¾†ÆË9^qn½| ;êuEäµÛ‡ºñ1 Ê´}Ê]‡Å{Lêf’5™ 0î‹l½Ñ'š;Ká˳‘¯ÎXcøM˜EÀ@œÂ…MžÜEͬ£•ª‚àîIfn¢»Å¹K•Áç–'”Ê1Ã$8¾oã|ÍÇ=—:ö\å‡Ë¨ÃS·ŽÜªFÞ×ó`јüü_þ^•W>r©x×KcPÄ×ô‡ÅËR>ví€Å„ô?Í¥¸8w¦+‚|lC‰Uà$‡,VÄßdʶ˜©¤@ ©}Lc—Z-¤ Õß$‹ÐOÚ1âD`:wçæž³½gœ4NYQf",ï}Ä‹r÷±©p>‚0Ö­6q©Q(ññ"d-‰"£_-ªó·X*xøö¨œ²7ð™xa>ˆÊÅ¡o§ˆ¹Q¬òÙ$ÈåÀæšÑç£ð¿æ"ÿ4mœ\jÒÇûlBʄ짖­Q‰" Ä›ð°U»›ið|i’;ë“b RB˂ô Càû}ã¦)çú)áÁKÓV”¾U™A´y‡ÎjÑ¿êDz÷ñšu=2.hémO NØ:—6ŒfµÏå•ì,O¡“\›‰üFÕew$‚àâß, »¦œ…ž„#xX˵cÖ„Fà£Æn”Àw krÒFýTHiÝg”sS²~)ÖêûŒx¡jÞF¤Açµ´¯Íí‚ú5¡Š¨ûeÏñ§€_r 8K%k.ÿÇO‰Îs ›Á­µ¸ŽŒ0V)m—g˲ŸQ æÄ×6°•ç.xå’º´›žKˆXØôË´aÀ›¬t¾‡Ê³¤k­ÉT«QÝ9K¾Wõ&øHvªsÒPyúÞR¥u7Õ¸tsâBÓÁCÚl[ÏÄG­ü$ FÓ¶+øÏ |æ®wŸ~ü”!þoKñ÷™°i Yµ!nýÿjYö|Nð(mv²ç‰«¾Ú mE!öY)â‡K®)’½"«Ãg'ûhüšPøwVÑWö{Ɔ¬7mm§,JrÏY¨'ƒ¯ð¬K‡{G„wëõFºy¬¡j» ’+h|®«¿ú.°:þWÿw†Ÿâð’ˆÊm£â¼aˆ|e'¿a†Ëß2[ÀÜ[×0×ýøÅ±Ÿ±Yà:u®°Ý…¹‘Ó{&¥ÊêR­IÀTÿeuußXÔÕ79pWáØñífzœ‰oq¡W[ú欘ØÍ®Ü‚ËÕ&ü‹ã{r[Kïö„Ò«œÀt8Žõ‘І˜l_m×ù~0€)’Œ ×Õ™:ß-Œ»œPvÁž…sw¶D¸¥¨R–+·)4„õæ„#‚Up(ž3֯זîUAE[ÑÛÍ·â>˜ ’òêÃkLŠÙw«u隥Ct(›/±# —Ï×L[Ëjö‚î²IªX‰IcœO¼9c K\øGBq;p À =£Ì8M€;‚ó¸ÅÀc”;zÞ„¼™1ò•ÒR1U_\*•P3A“N'톇çL¹-l¡(2”ìÚÏ^GàUgI/ç’i§*½Ø¦ê9²ÙÆ8×=ýû@ ,‚Å÷C…zÞIõ.%åå½WëØÈH?ž®¥_x;]#¹Ò5ðF\Åúÿ ¹³wz°+û6ô”™æ,å$ˆûg" Ä/<©àÏl0néÁÖ²µ ÅDÄyP'é'å6F™P Œ‚úú¨\0k©ÏÍÁ˜ËNô]Áyø’ð %e—úªü¼q —šΦϞ4Öÿ¨— ^‹'ÿfivQ0SÊ( ]ð¨Ì- Û–S üxÎÙ…KçŒËæ"ÇFj5ŠôóÑÇI-möþκêÈ× Q¯® …«ŠÈ­·;ngp¦+Ë®Nû~ü^eÚê™@«3f:öŒÛ$‹ðXæ…Õ*ÁS{–ÏJ±Z¼U!ÄY‡é¡sc‘\ÔéqIÓnê;ŸŸ7¶•¾K[7œ é³»åƒÉpä¶·p¹92””èb#!j‡Ÿ¯[×dçívQ¿Uý!ýé%BŸ†ËŸ œ4™ÈëÝîžjêkÔOá¬EeûP¸yªn»æMmÙH˜VZ¢Ö¾n“ïÉH‰U,?¹³Ž‰£æ¯iªw÷q•Ó1eJ|gZ¸¥ç©,ìH$¾¤ª¨…ÂùÀö’ïO9Ç–Ò¤Ìåà,ÈÏ×€YëCÈu®DâPØÃbø}w)LT'K «^—râÅîÌ †’깤,kKÔZ‡§Œòn?ËT‚äOÆ(Råõ‰ & ØÇEüÛ“ZùR¢éC–³n|»— ç)?r&™Àöpó´ñ¾VØ`ÇPðѪ3qˆáù”:['h¥6Tü+¡JƉÒÃJÎv÷³%æ“'úå)Ø›Á¿{ÔyЊrÊPX,Úä‹ÚåSi3„ôÐ ýriK¡LZ£I’”j5‰kÎÏw­HªL*€ÈÅg&³,V<‹ß)Uæ†ÈP8œ>Ц‘r-ÚÝ+˜7·úÅ›<*ÉñðQ$Ì[†¨¼„ÝZꕳ±+ÀñáIÂ/m2vK¾óafìm¦ý§­ÎEÛ#+NB,Ö®U+£üºdéxY†ó.Œ›KI™Hxø¯Úd/ÉX]¸fq¨Å#T{Tº±" ¤©õÿé+Â@3ÄêC%n”*¨QåÊyj„$î]÷%Oí–Æšîþ÷î,ìïcC)üw.›‡Ëg-Ù‡À#Ç „Û ø«cK®š7¶ …ˬ)ö«Ã1ßré–Ó©CPÿ[ŠXp0}¦Ï¬Q±¦RNÆý >GÞ)›TGMH8ú´ gï ìTg!|!ézàØeaw=¡äŠ-‘SN)›ÀÜQuV\ž¿bÝ¦Ú ¾—[Íù‡>BQ”0W»Ž^θqçdÀyQM:ïÎ+°­f,µ] Võº üXV@ÑHƒzòv•õÒ IÖa%=|BA­ž˜·l/••`ô]î5Â;°u˜’›æÏl|{ÎØ±>ÒjmÒ¬4N0ãùªm.FR¥‚Hü“Ї2êÓ%/ u Z»Óˤõ {€cë¾4,Uë"°¥¦-Cc­m~˜#u½T*!· j/¡î˜çÝ;ìrçú{Š%íHø{KÜÏGášMÆW¶E¾7›cÜo(Xò"+Kò1#Ñbå~'—Úo ÁÞŠ ùtvO³ìëDVKÖµ —ãú¬mñÚ¯ú©µ']3ެóE¬q5¼„PrÉT‚Á-B7ÓõÐSFÛ.Ï÷ußsض"ühÚùÜÖ’K·DÁÙ²TW-ï)㸇å®OÔ,wª²!•øJW!õ¯ÉZ}ç®·ãW |gBà»ó@û–Øžø^=T©ÿ1óヷiÖµ“F%H“)C& FÐû»üÞÌ~ˆýºîpû@Ø­Î玉|}‹qKßÙ:T¶ ²Œ¨ý0dˆ}Ÿh]A-­ë'ö U>-¼FŒg‹dê!á®`L9ãF Ÿ/è›êrŒ%®MÍÒ‘V÷Ô¡3óêö§Œ¨„†3iàõ§iA¨ Áw¹Ú=oªWC)¢I䉟‹0mÂÞ¾¾Õ¸tkäÚYcS)_V)q¡m¿?ŸÓúÛ'J•IÕ€­3S<³4y¼ å¢>Òy½E ¾<îí×!o?OàtW8±T6Ü* Pµ?ŽÁóó&ÈuRhUˆµ…’å¹S×Ëy›:ÍÝì¡wE+«ó†(ôcr !u)ÙWÞDC©pôÀl ³QøÁ´ó/›#?˜3¾?›p“SWV÷Lª{øâDÜ䘡ɟˆ¤ô9ÃSÈ×…¾ú[0yTåSª>6#¨°? ΗeRP/ Ñ ÅW—Ic]vDåÆ~lnÐä y¥š.#*Áº°@»ÒU õÊ4¯:§°¶†§ 6Ge.¦¾Ä2€Å,ôa&©Ð£¡Û¾ÆŽá,IL&©'ò­3Î5›K¾µÑ¸£çÌFØ>LYÐ.Ý÷±Ì³Z¤RÞå²¼[¥ÂOð4AMÿšÀµÃR>V[‰R…–)UM¢à¢°q*¯X‹ÓñøÏŽü¿+Z¼vs„“Káj›~Õiz˜ü½$âµPÊ%#^#^ ^–ýñÐÊ,ºû%¼I)›²OŸŽé´ä„Áj’jǬÀ„]ý4t*½ÊÒŽnUÓI'ŠcE@ J„ïÎÁ÷fऽ3LÖξua±0nž”*ôlq%N\Ñ#úlñ”GÓ7—wIêaÙ”©kö³éרñÞMÕ^ÇÆ á¾.öô©xxìCe ÝúÂŒ¶ûemxÞ?óñm¤-G=LíU6H\Ÿ¤ê!¸5*ó¬ùæV*=q úõ¤ª]üŠ:’/¨Ëµz1M8Y.Åàì nQ¥™Y ©Ðfã@8e¯RØÚY½õ£›‡ ·l*ãÅ52X‘ã}E?,Ùà k\?Qæ5ºš{™¨ìîý\CŒ‰@ZKClø,T¯ÄJذՄå0†Y(eûÖÌÖˆ}dТwk¤®†qvøà@`Ö…ã†J†„Ø ^1 >T¼ˆD •=²Ž~¯kõŠjþàîÇZ†[×N+¦÷w6”°³àGó%+…Ó³ƒ@AWd+z™*¼Š\IÓ?Á;^AFe(ºÚ[·N§«^Û'ú ÃòG{žýвàƒÀm…½«îò¡ã†$X›"¬ÛÕ³3Ÿ7ݲ ª†0k.DØì‚HªC í’Ôœ¢Ìºpì¯Ýeõ@‹Cq Õ™ [ýR±j;Xï_ aE?«Èiy5×èÀÊUƒ.Fò*ª½ŠÈŸî«oÐX˜5i—+Eißè-—ÏxÜ’²;Œ|š‘+Ð’Ð Jòn¾_§6Ð:Í(rúê)ží²*Uz>rDf¯ÎtTŽ»» ?¨’°úîL-†W«Ècënc£ýŒ•vØF3&7›kÜär¹Ôþw*.ô{N½&b€Ý…µ«çìÑ’’åÏ>d`¿:%ÚvÉÜG÷ÉÔ:wõ¸”œ Âh‡fP£? FXcQóî‡tvÎ}ví ¤ÔŠë›»]Rƪ­‰ß¯öN)}²ãý=,WQ€zMb¼æ¤r¬ˆ¿#Ä÷>rA^{<6 UâÐøV!MóGM®bã h7Ž*&v½„Ÿqøø8îr‡éª#h<4Óï³+§7h0µW¸ñ^So ôQ¢;«£€Y?¤&3H´°+)ìƒûܤ± ðíÆêÅ1úSö‰;ûþØÍ¥°§ÉîðÕÍû2»Àj?ÖZFh¦yd^BÝ?_]žî«Ç1aY/½q],ŽPQ &¯rämuS¬ºãYçpu=°ÜÓT`cU · ¸9ýèÏé©V ±¶w2–²¼–Ï- ÅÿòÖÂÿô˜(­+•gwúÚÒ Vè¡X«|šDÑZ=$à芟~Ã84¯hSŽøK„ç£þ6ñãiÆ×esŒ“A{°Sá|ŒWÐ þß ìz[©À¶ xŸ |ýík4wa(ö½¾øwž\ŸZ"©Gî>TBGjÞQ u,¡/»Ê™ 7ŒŠÿ‚*Õ[ŽøƒºþÆ”ðÖihP>²ÑvÒÌ\Qñâr|„·‘ìÆNoKwA±]½)~Mª˜ ›0ŒYcÆÌXJk½ñË NŠ=æœ?æ ÚA ù|õ1"\I6dn Ö®áHMá¹JD±f‰F ·#ÚøËvã]*¼u¼—×YÊnÞ&ÁOB}Iœ·iÕ°5÷ ¤Š¹„Ï‘rnÜ¡\öjþ‡LŽîž’uÂS\"ÆåxÖM,ŒHƒº`pÌÜœŠ’©Ú(b%m^eøï‚/æç¦o¡`k~ÿ>ËãýÂýë‚Í$š'}n®þ?þ’àï ”ò!—ØÈ|¡Z ˆ üCÒã µ†-W’= ûè=>8ûŸ¿§ì%VÃMöO%h–RfD¯!þÆ:V”ÊÌ•‘&%÷©0U˜| ì³­²ãžD?æžPAi1ûÛÔùŽ‹_m&—YÁÅÖ³[¨j-‰áz„ûkÖú>¯±U® SþK¢ŽGˆ­Z×{{DÇÌôß b0Q¾Êg½×»ÑÓ;C¤•QÆ{ ÚiJBÝã·Íí«gg¹°.ÿ¸ñîmV(l(á~{…}go‘âadâX͆\.©oP§dÅÄ÷v h¬…¥øDå1Dý+s9™ŒaòÞJÕB/>yª0,*å²Sº#…à‘3,ê³=êÛã8­Ñ&.®¿¬DÊá«ö8O¢§YBÎÐÃfܺlU“׺zå:¦´iQI Šb¢Â,â‘÷«ëE gŒvDß6_¾g=;Ë_ECÀ3Ýy?Q>-ЫÛí…ÀEŬY1ã3F1c2€êÄKTAåJ?o2ü#ŽBfè¾ìáøéaqE?ª`ÂJ,‘¢$„Qû›6ï ýUD®î˜¢@/¾®"—xYNðÑNkÚ{>L°¥^3([qù˜|[‘—u$¡_øoM+Lek2ˆqÿV‘áà¸]:±%ž«Y_%$ØXΜÿ0¿TÐ[ #ÈŒ Óþa)ØÕI9‚‡âz•O;L¤À6Áׯãr¡À#Äó–z²Jôg[²£½ÜÝ_ŠúŠÂf1~/ õE^ÒÑr•!öf_á{qA°ÅvMfÈr÷—ì—ù«„ÑøçÚ*ágQ9rI‰Ë £Hù©ÕJ»S¸üÈ3îCÚŸƒË;ÄåFqy«Â#F§”BÀ91ÝýSÑl^áýblÔ¨¿#.7"ü¡:;íáÚéè E?¾.ô"Ú3B¶¹ hVàvV¾s¿˜ 7kWq}&x9A~uâ^ðEAÄÞKð«$©3¦[>ƒËìLp…c'Ïä]¸Ü$Q>Œóæ;#nªöùÒÑùŸ»Ÿ÷çâþìyl?èû‚êÅäÅÙ”½;2GP·W`Vb V¥PÕk$²<ðGŒçyojªÏ[wüü$(éæŒ‰%ÀTþÄ„ŸqxÑ`¥Ø C Š ß÷¡L7áé¶M÷ïãòðóÀÿ~ •´!^UC5×4ÈËHù5ÇÇgârŒǻ˩biª½fM/¼j’aUä”áé…YŸdY·+~ È¿.DÞhp?óÕ³óì ­*«¼ð¿`Ê?Jœ¬½ÎÚYÁ¬ì‰ƒç{˜¾—ìïHï& GºLŽË1py¦©\åÑŸb |7ÌïÕgÅл$•3ûh´àA — ¼üÍûB÷Â줤̙À=jé°þ£x]­“G:±ûªée«Ûç·±ze}:=yšÊÈ0koíeÏÂÆõÞXU®CùJ¤R«“iáCæL§7Ï_8Û[•Àºè¡Âɪ\ŽpN¹"xÿ^CüxãaŒ»OäM _rä¬5Aœ>Â6ë1C V…!Àü«p-p3ðMà†ºÝ½*õÚ Tõ7=ß]η`€<^ñG;òTqNV8Ž4QL+£²r'+¼ ;Þ4†HÍ¡‚;XùRð¿œG0=ðcu¯2@¹ñ¿™Ëehø\UÂ.¨:?ø:ÀQQUGK"¼¤m³’1A¬S誆š%mbœêÂÿ‰K3HZ]o3¸ÍÅw‚Üí® š3“iD6šø&7 ›Af]Ø")ñ'$ìÆq\«Î#y’h‹ 4£÷zÑÊŸ1—0#rP‰‘÷:T¼úE¼|¾ÌŒJh¤Á$À‘@ta Tö|·äªîs ž%6gD©Á*ì°a‡Õn]Å8ŽR·ß*¨6×?åÿi;¶¾þ©Ú'ûû•1ôò%»¬žêr°ÕQÊ}q¥M¾Nb|î×”]g ûŒ%mMBé0pïÀªÚÚ­]CltÔ­¯Æá]n­¥»„¹ž‡ñeÞ¹W YÒˆ} ÷_-‰ÊÜÇû†Ú(͵¸=ÿßA¿ÕZáåñ/¥¨ŒÈ¡;±a'ÍíÀb#£oÆXô!Y"«}ûqxÀ5£s袄RU@÷ÍoØ3 yï¡N|½ 9n·ÿ ³Ÿv &X8jç·Ò`hÞÌE T™H9Œ[õÅh~zwÈu‡ ²’íÑÞ2Ö%LÕQµHÅ}úî—+ö@Ç?{Ød—þð€ôHƒÑ$TY[•Ê>pVh¡._º’@Çþ<Æ/’¤G-ÊsU0F%ŒÆ ¦ ¦"ç#†?Æ…á=•ò~˜0@sݼüÅCʺˆ U¯tg N¬üÁÑU`«GÞçÉÔOö|îç{FøžÁtô”) ç™ú/úêVƒ?Ö P[òqìÁàƒÜÙ?ôPÛxBÒÉ–ò'êdZÏ&Ÿåª`•m mw”Ü赚¿92Oá*{„ˆ¿óÞHk=L@¸Éñ`v*øÛ =-NYÇK¨õ¨šb;©%\Ì‹Wéö9 kmX;Q­&vÏRÓí¢ZU鈿؃= á›~/%5¦ Б7ƒÿ†«? øÌAGM+®IJØS:ºzËB‹ø(œ<Î5̤E°TéÔ³jЦAaRµ¦õw¸úýqþǽÌqä\—ºø³\ülðOp@)Už°O/aU·³jåÆ`ãŒØ u„P5¶«m‡º~pp³‹ÌüI¯"͹â(¬š¿ þì ñ÷“†[ì@)ä¨ëv;Óʲ׬¯a£ÇëÞ‡ÒêóÆSZóä…¯~I°òI¥ÅñKïËí<ò ½¾ ¼÷“ÀÎÅý|àõ¸ƒu‹S¤–Ñt5ÉÀœ`Y̬?bUs™¸ü‡3Iµ —Â}?Æ®àÈ¿vƒ_ì)r÷tÁ_œ ²a]•w5©Íü5ºšõDît5¡ÛèªÎ/ãÛ"~q„O_<»Zý80@~-ÿ8°8x*È9ÀÃ7ŠT[PÒcJUöçê—¦ž¿Òú÷´½/\X.WóK]ý3_òü•ÙŒJ†¿ÅùÛt\åxœ‡!üÈ#Ó“(3Ô8P=gíÞ‡`Ù„=¸Ü„ÙõŠ|•oÄ`_q¸ëHÚ¤g½~X­Ï#~à4ŒS¶‚Ì»2«0ƒ3ëV¥y×9Ί K{_¸Û‘H]?n8R7EÜ£×Oî¥G·à(½Ž2ÀÑë(½~"¯ÿ×|wÓ|£ñ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbtEXtSoftwareAdobe ImageReadyqÉe<IEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/favicons/favicon-144x144.png000066400000000000000000000365161431412030200245410ustar00rootroot00000000000000‰PNG  IHDRçFâ¸gAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“<@IDATxÚí½y¸dgUïÿYëÝUgè>=§3@ˆ$!¢@†Èà&QQÉý‰üDñq~þ.Î׫rEP!"à\™ W0†È$‘@!!d éNz|ë(€Ž#ÙÁµÈ%Ò%b¾}pfÖ[ºý®ž1¾Õsn-’´YÔ„Ã~%‘z³–ÔY@POêM«XŒxŠÅPI3©ƒ:=…“Å9Yà镺â|ücÀEÀ%$¬ÐÝ#Ž® ða3s»§–6 &ô î,œË术÷{ÎΉs&Ì;lŠ4 ‘ ,Ú™ä¡ynõœ  “.r¦ºr©$Z¥có„iàÉAd™Tk=Þ 8çªË¹•ÑýàÐÁù1T_ z6îΜúR¸¹ï\´¾ä³óÎ@œcJaKuQ=“6]éÓHƒÎR_ú·6škƒY*©¦&—V¹}åK#Þþ‹€8g!òN„—‚ÿ‰Ã»å(€VW[ä€ÌÁ˜IœP}¹Æ(¯ßW2ÀÖªV–‘'9<ÉáŽÿ–Ãùîú<ù-SWó «¤À6–üÛB$"Üw”¼)ËlšÚ»2`WH·+áäýÊ‚ÁY ¨¨ÀTxÓÉ%•·ì$õŽCÛ@î‚G)ãKž×€§ÊùiK>² ‘Áé.òlÇ_âðV¹ÇhÍß\2ñ ïägVïtÁ¶R¸­çüݦ_œu¶—Âz—–û^ÀÛƒ3g‹Âéᤡ°9¦Ç÷©p[€› çæÜRZ€yƒÙØ–.¹a-™êêzW“À£žÐꤰ¥ÀQŸžiçÄÙ¬È[LøqÃ^äÈ·å [£é^‹æ÷ òÌÕJ‡…Røò¼ñ¦Í#v¨sâHÑÊ2Ñ섇= ¥Â™û•Gí œ¬EREä—ÔՅÚ4‚…XI¬û Hù[d*+wÕëàamãÔàÑNp±±¬ãÖg½c ¸d+‹B‡‹È— {6pÁ‘ ‰‰&«_QÁ…ǯFòl©Àóêm#>´>râHè{º`]{£>v«sú¢ðÀpGákO¡ôñÊnRJ̾n÷ÖEX(sÏ„$WV{ZÚÊÀS«»º2Cml;Õª²¹ßÒí`m=dAÊ,P9ÐK©¸~äJ Yã8y%ðl6!üé1#.™Ü¤©t¦‰ÚNþÔ²’ZB]Ú²¶ïæVoë±ýå€%àc$éWJ’±XÞ.Ó ªŒËr”6xj|iÔšåTXeâÔÒ§ñOª¯}y­£÷sü¥w·M4@jk~Ÿ­.Ó æU,æÕÛF\<9i¤K$É$>«ö¾ök¢7”5컎ú’\IÇÖ¨¤©{òòJis`]ÕÕÍ]ƒ¹OÈ€Ô»öO‡ÃsG©£ ÔÔ¶—Ôê y‰;Û\xîjNŠp×@m²-kþ¨õÓÀ3ïÐÂë·Ž¸h]äþUpp’?!»@9n*œ]!©–¬Q}ÙuÍ®–ñ²(KiSÒ üMãÖ$S[*«Ð€ÊRj£ek:RgÔÒ§ÚA’´ÄÛF§%Àý0<{9ͳßs¨ß¡ªÊðIwôHÔÄ;6•¼w!Ù<º 5éÌÜØƒëúκ(k:n™*Ë’uÀSïþ‘TF{7]£–>z¢KÜ6jËYŒh¡éõûÊöë5-•JŠÕ÷‰Œ)Ë‚—Öös;,8?ÕÓð¾BúˆêD Í™pkߨÑ7fìÈP9éÎ#ᣠ‘·lqB)ô—QAÓTX½ù¾8k©,xÍÒÇÛÿfà1|ü¿ÃPÛ‘oéþ:Æõ¤|#¢Ãž!Åæ¹¿.î³ðäÞÛ~¼8iã…ì+Ç ©Õ\¶IÚˆV«£»!…\¢)òt}×4ï9xru çï ¼0õ5-æº^ÜÖRøÚ¬ñºÍ#6Ea®ö¶²¨lî*OÒÓµ-°9ÂU³Î³Æ¦RXqIÛûªïóŽúòÌ`iZ¡óº–¤”v¨V¤èÈþ’uÏzÐïÍ>ù¤ÇÛö_„ó^Ý>÷ÁÞ¯VE©—ùÚ5°D+×Â2ã|®ü§Äå¯|Âuªr¦Ã¥ÂL×¶*=ÜØ=›KaOpþtˈ’äEùmÍIýèzcQu¶ò‰˜ä}‘Ì}]iQÛ†íD WæùÕ-7 ›f)Ž_ÿWÝ6GÿÔÍÌžus?vê;Ä J_ÕEÆ’Hº©%HÞ*îÅBñ«‰VòÖ†ìUà;ÔšhDåš/òl}®g*¤ÿõ¦’¯÷SFB”qzE[M­Î-w’º¾YoüØ¡ŽiŒ®*KJUJŠ•UnúP@5EçêÈó¾T«C1éeIöKõ®4Aƒ2¸ôÆ;}ɺ§žJo}Û?BOXŸôdXÝ&ÒLšKݹ$“´Á0–áuÑýóFüdþ~wÎP« u—Çb¹6 :'Ö·JåC #>¸>rÒHZ©ÓeLµ…º úä:ç¾#ã!û”ApJIXYÅp¢&3däé¶‘\óae BïɈÌÑ$ÆÜ§»í5íüÎÞÏ s½¿ ›f)¯»“òó7áw ~Ö£!ýÞdŸÚ§|NÝû&§D»±KäÑ:~¬¸-:BÏ„…³/À¼Ë] WYY$ŒŸr2°½Î鹩o¼iSdsL^˜¯BqÉ2ÀÉ¡5ãi_¸`\×O.}OÁ¿%.¹´ÞDÝO&˜ÐsèÅv¹3˸ëLð—$ÖWjÇoÝw¾ošÝw?'æ¯Þñ ¾Ÿ.3E.®&;²2.kyWM;] È«9íPùc:]^ËÔ´¼×©‡Þïˆ;ý(¼{!ruß9&®"N³‚¨ Íq«Pqö‰³G]ÁØŒï¨qKð”ÂZ·c·Z•ñ(Ì[büåèky¢ç±…úžêÏh^²âÓ—EçÏÜØeß°àúr8s‰EEƒ!ê«^«Wa+(ú78/ÀÍQøVßxïBäØ*Þs +’<£™ª²¢¨ò”kW6V@²ªÁdê ˜ø8²\ñJ3ž‚—¢²É„Mz.”.˜,­µw&çç,·õ}¥¸ŠO÷´™”®%ɘ«[^=æ+I:™ ;wGD^0SÈk8 |Ö"¨½Æ£¾Ä†½' ñƒ‘Ï«ûz$\ìð°úmŽÂ×g­‹W&¯k-\Ë¢$»e»)MQF•[îâ­J ò™ªÑ|L/ä¸nÛÒ«®K Üœ› g]ߨ^*'…û ”¾Ã¾J‚‘µÎÐjJ%O™$êL¦mñ$³Ë§À`Šôip•Q1°ô»ä¿?oòVmèíQN;q _ݺ?0Tw_x‰ù—зM)D}` Z­£´ND><¬å\°.r[pÖùê7mö‹³Ñ„SFãb@R<£ Ú©­M §¡¤©$›©¯vÉzL(¾Þ|b}ÉÇ6”\3cô<©¸œ+òUh"Ϩîÿõm9¢7_>ÙãlÈ`É@ÄRð°\\R` þ”M[ â—ï6Ʋ÷Š8êG=bY,»Ö O˜‘O§çm0áÛ}ç£ó‘í«0œëM±(ÎHà¤2pÚ0°Î…aµÝ»ì´æ6:¼SÞi£ÕAƒ.C.­º²¾Ãƨ̘rc߸dCÉl,¹zÎoΧøÏK.Ú8HÜ"hÇÒ(5ó>§"§òj@Zçs<‹#Ø`Á%ŒD¾oÖœ­Q¦æWW$}¯¿M”9wÆ!úikÕ2O} Uq)>ŒsF÷Ç.œ|³pl²—ÐÏ>I¥‡ ”û—š¸© 4yEƒf’¨–F­ÔQÏS"²<šÎó$<ûÁÁaC©,Dá–žñáñ??±_)ø_VlHu¡d,²ÔPÒþkÛ_Û Ë™e…“{–n"K?Ë3G"·yÆêKªç:[ ëLk¦á+ÕKúRø‹B„öËe×ꩌ™ªJOÂK!<¹»‡Ö¹°·p>6Ùh+W+ °G &˜²&&'¬U»ñ¾þ%1ž‘_ƒž _™‹|«H¬ûXuIÓ›çöàœ&™æø9¸½ŽÍÆÛ–ª`%Ov;!Íé\}ÒäÚøTÿñqLöëê'F…¯õŒYëp‚ÕÛ£ð¬;' …›zNaãªOÁ+)˜¼#ij&IÕYuí”yÖ³Òó–}¦VÄé Æ÷ï/Ëgô‹Þ‘>¬i|ø´UÛ„û¹sš¸?ÐDÎpõû€œê° Øj)3eLmHÝ!ÜbÂ7¾lÊ%îþà–:ËIM-¾6ã|nÆ8ÆÆõüîzBYEç³k¹ee±F ¤¸0áCâ< ` ßÎu=kQ5>o+œï]T»WÙ¼IÁ°¬1^çì$bÁj•VI£à`"mº~¸’\d R¢ûÅ{c|†¯5©ën>²Ët}µ.tœ(Np…›]6Šø|îwgäê·£~3.V§t3Q´rž>9 »D9β°°Ë÷Ô}¤Qe³2•÷eÎê䲞Òêïú¯ˆ>«æŽ®ë·gsl—áì“ÔôòGv¥håHÆ…ŽM™f™8V§Ê85ëê Ó2¦ç´2‚¤N¿0ÿ¦cOJ`MÞ[¼h`•ÀMÕœ²"cð…yãK3ƱU’zí€xÔSȼòÜm-à™ ëÄ–x¡%Pàðž±O`kçù;2Å H¦M“”ÇF”ÓºùæMËë-Ÿ•‰u0Ê}n’м!´;„ÕÑæûŽ„'ìVv«/82©«DÝq¢žÁž‚ÒðXéyÞÔrI'zòvìÿ¥ðohO =¡è ÒæQ6”€¥|w÷V`ƒÁEëoö=mxuDG„ïú݆í* C2`+&Ë.HìiZýÂ{{ûn*œÙÎ{îð˜=Ê CaŸfÔC·›Å £ŠW-v¥‘׃û˜8­j½ÿDã[âlèÄ¡Srä”#cvl$Öyð]"ŽÁ3ÎÎG¶GGÄâq Ĥ$>[ÂMÁùNa-íW8n$IvÒ=DN²yvç­Ç¸~.rÜP0õÉ9³)?ø'ÅoB$ÕC»f…+Xì … >ôWÄÈ RêékˆD·Ð4œ¾·SÚªÀ)M£”$±áÖIV©c©'õåhK:Õ Z¸™ÚQìC2/B*1¿/ÀñeêðqÙlâîÖÝC}4'͹­€·m/¹Yáø=ÅJ}$ÏŒ"§"Þª¥Ã!(Ÿ™U–’Z›h”ùèú •*QV8iõ6PÝ`Ê ÅSQ™ÛŸ}±‘À¦˜Æ, ªû½š$×|µž_s4U'Ë4­60¹4ʤ¸_Tx8hK8Û"n¿ðùMÆ?[242Ë–)•$ÖŸ/6¶C•¤Ê’ê•0 Ñp—?Å5H¸ulnõ6PsñßÅÛÆÖ~uN*Ç …AŨCÎ’'i”wúª¾äX¥Y;Ã÷à±®JSpãâµ}ÓŽE`Îàqƒ‚K7×ÍD4Ê"«æ{.Ùù-á„rœæ:ízš£C—犴exÕíBåý.Ža`zw}±Vžk"_ƒJ[Ò{ýßPôÁˆ³¨ãWuügKv†š_xm¤ÑR»(ÇÒ*ÎãFžñhMù´k.š˜{Çþ³ß˜[ç|z³¹<2%‘W!Žc•›{ÆÇ”|y£±y¤l´©¹^]_âgÖ/1=TýE°+X*r}›Œ—jL© V ¾‚Ëpyͤ3ã†Â¼%L³þ}uöœÖù¸Ô*hl8k3^2Û®Ý˹ÕFWØ~Å¡¾0#5ç1{=ŒoÆH–FÛïn}c)ô#\ºeć·”ì,œ­ƒü[”•Á“Þ(¼\:}j ! oÄR~Ô¢>I*B³&[U–f¨NiñHqysºÎI,Ìš4*'ÛKi&Ì4i•bmŒåÆp^*B&jæÝ:?0Û*W,ê‹*{Î~`O`[_U ô:âpÜ@Ø1k¼ï„È—6•Ìœ\*6³J^L`yìþ(gUZö¸•òæ Î *±Ôi&yª(µW¯A…ɯ"íræíˆYK½ #ãör5¸Ä²4Ì<þ“§Üù؈«÷‚w:bX{}õ® BʛاΉ#iwêÝ6”B/—7$•u댳}OAXü¦·¤ñÇ*ã®&­MŠ_úö-í ‹Þløæ:À8Vw‚Á5k$.m8çã Ê96—ãù U¡yü†qüGrnLȇ‹h̓e*­Å¥%ÿërÔÊ0÷Xî¦ àœ KáÆyøä¶’/npzß3bm'AÊ(K9[Cm&$‰¢Ímûm-œXê¸ñ<Í<´ŒM°€_¿z ĸ¤§Ž¬«1aÁÒ,Ò|ºŒRuÚ’LU ª{ûŒ¥Ì•F3¢-½\¸þðŠ9¬Fú–òÝŒÿ³uÈg¶FögÓbÒä°ðÍòÍsûG±/¸ø¥^ê†XòžúñèíFæ ß¹m-ZÒÐ|£ B)Î\æËªSXæI‰ÔÓjÆ#ŠjPY.Y•6‘7;'¨4×ïvq «Ë‡9Xà‡M#aTÀg¶ŸÚ8âÆc¡¶ÓF;ðˆ@ʹWoL­è!wGÅŸçA(Gò‘ä;äLµáÊüÊiðd¹}Ñgçwm­šU–³–<0#õ[7È€`4]2XÖKðÆÞJ)¯Ò4(°‡@`w!pŠ8â\¾ùä¶ÈsNÏ”ãªéÕlPÜx™žoÙlû:8k.„`ïüòaY¼AÅž“ß¡’B4ö+—¹ëê䳞Vú¶˜:|í(<¥LÔ‰ÜUúu¹®½/Í {im•&Mýv+z]¥¸V”ìÞÃnÌV£†¢„è‡$>ä¤þÖ ¥°»_Øj|qSäÚ¹Tæ²­LÉt5pÊžÈoK”ãëîªdOóÏâ|ðg Móª.mSG©%möOÈZ$‰~GÜS§ 4nŽÂ=£ïiT@))Ýó– ”Ó—VOÃÉ$Ór*­1f݉åáqŠêd¸¨©ÊBLi·û5ÍØè­Ò½¯ó˜œªW‘Àl™€sGá|jSäŠÍÆ·Ö¥m³e(M0¶õûý@T—c®'=üjMSR‘±­0[Ø3£É9èo uñ'm;KÆ çÓ>oÊÌÔ!â|-þ ¿< µF;> ŸÖñhXëÔÊJ“LeöhRi±í¥­xÌ Ùy¼kTɸLØ .Ì֕̕ CØÛ‡=3)a¨0Ãä2Ry8#,IÀ˜‰°c>½½ä+Œfœ¾¥ ÑuunÙiÝ[;k™o!fBè»U½ñx•±©Äße.Ç•QΗ¦¹y»qWNIøXQÈ~_KJk¨+E‰/v×§•"'ƒû•Â0‹ç-ã¼*ÏÑÌpn âd<4 ¢ÒXê¥åeÌkÕÿ£Æþê ÕÔ±” ŒÇ&̘²Î ?B48ƒª>}Æa~6"ì.`_Ï›yöÚ|W§$ ŽnX!˜*!*%ðÕçÊØ0T¾_V´ß]œ[æA/Ù™«:âÈ0ü*òëŒÒª¼å½ÇF“óëžK1sØ&u”•ßC0dJ×É6PicC ðÃý«0Rf<5Ê̓˚覌+ßêoùN—Êè®Åzx¬ÿÏóSr•¦QÖ­™tŒÕˆM­¶ ôžA§p¡0ÁÕU£/s»  ^Ä”¼µè©EñþĪÁ7ÌQÝ!¶Þƒ Cá”;•¾­v8…7Æ4oÍVÔ›øPϰü©h>l® î>ç” ^ãàižÇ.Aþy9Å]¬$ÅÊÿ2ÂyzÿtêP96 {5!·7Ag¦8+«´Zúx¦ÒZÑëL¥‰³eµi@%©Óý C¥PCúÏŒ‹8BL†rÕ c °}:/UÓ.¢ÕØ£%½¦‰çäIh5M3 «§•oÁl)·;póú˜Î‰/ï)A†úáœm¯U’6½!EkUV³ðãØ´¦JˆËŽz,å´^ñçȨ|û^ýqjÍ«ÜZƒ°ôµúöT³6š©Ã6.÷©?¸æÒÆs¼:ͧ¤)‹>ÖC•²°ÌB ØP,îgHªÑn–ÂP¡TjNÖí±ÊfqÆ`ï"Ua¦NØ(¢3èù’æžV$ð„ýá}✠1PãiBõøLiM‹ÌÛ’_?Ü^g©×Ú%PýÑ12^¾@ïäï†g_¹.¨ˆ“·kž–Z·i Ír»HÆQç‰^šËIíØ)'˜3g}5Sìž^VŸ§~6ïôGP6žäçŽ/ 2 ¿/.OwÍzt$„åê±µÔ} êøP}OJñ¸^ þ_^ÆLÐæ‘,å­ ˆƒŸ~†ê}.˜×³o/œ‡]ú¼-BãåŒ ìÜ˨÷œm ­K‡¶ÜüiêK`!&Z`‘»ŸQ?d]€u£@1€;ÖÌ9+u~ÎM_eÁZCcºéæ9³žÕ¡YLÚ„IB¿¯!®8a"€.[('ieúæXÎÙì|ãÖ÷•º§ëvu¤dásËÚög^Z­Þju[W¶ZÒ‹ß§j+îÖY`]©Í¨¨{Ë!@©•ãb‚ +=ÉëÛêÀ|®ˆVŽdš$êL=¤©Ò¢ØN‰þf‹+oÁ‰zùñ6»¡,w#Zÿ‹ÊØÉ|>&ÆÿÇ*Mšé3Ú‘D¹Jkyi‰h{ ‰Ï2*¢À¼%—»\ËÄ{’JS§7TzÃÀHíqŽ|¨n¾žNx+–Ó¤ wbUMl¨ê¹¤x’ªpaÚ .¬‹r— –=Ò #+È%"ÞéR+­V{&:Màvi|É$TÍIú s®·Î æ-0oE³V  ¹èË®ùÈ®ë{öQ¡ˆt™^þ¼4•ÌC«*F/-Œ›^ó”@dÒR"3é;‡*ïþHÖgOáãÝQßK–.õ°Þ p½ÂÂd¯¬J|® _ÀÀðj­Z…½òv]ÁÛq çuwÿùºõ¯Tsœ¼KèøÊ*M<ãÒrB6óÒy:¢¿ê>–PÃèâT›r"€ÎÚ×_ñטòÅ=¿*"– Â;c¬eº—VØži»ñµ 3ç>x$ø§'I¶¾ë½Zo9ò EþP2Ò3Û'§qR‹¸ú÷Â_KÔ× ¼€%^Zí¶ ‚‹Ï©M(UêG±Æ&›;feU?JœWã¼¥ë»KVÖêP=ÍÕo¤Qæ¥é˜lõ&/Å_€ÆOçúÑ“4$¸¶ÆÝ‹Àý{çÔ§0/@ ¢"ĽŠåð-„·¢ö*uðR>ŠsN7Mwl`'ï8ôù) öyåÄÄ‘`#OÕñLwJtZ¤uå%˜òÀîI¢EŠ*µ™=Ý·n†§™¬IwOŠ^›žGÔÙ¼C·›Ò³ÐÌY=RÝðØaÜWqô9OÑ] ÏiÏ‘î¾\ýmüì~¢ñUН¾­&çÔŽÉD»É üµ÷ìýMcÓ|Ä„±ä«”@R®zwDþLß]rÆ–Si6ÝÀ¶<Å ëpV|}u}‘‹ÿ9™¸.šÓÙ@hž”×=:%Èš‹‰¨ Xawçþ*ò+Cs¿]ÓŒÞ= »"v#&7ˆúî|Ñ/˜b)ÿ¤”ŸÆôQ“T"sç[ÁFÿ|oÆ^\ëÄreÕS¬ê‚o2ƒ³úÂB-‡«·ìDþÌû3¯Ä)¦é¨F¥5µÌ¾ºèõ¤À£Ê+Ü㟧õxNæïöoÿ?â_lR$ï&5X7‚“Káξ³§H•±u¯h8/Õ¿æø£koBjñ NIDSßÓÄÈJBWcò2«KÎ¥ã¥eö%.;µˆOìI'ÆR`äÍ53‘§ÚHžÆˆ_—µÄVœÕLßp°r”£WOÝN¹J«›®A¥Q«´z&˜ÉVEÝÂ8ˆ4RKìñÀÕ}¢œz±›¦’6—»]… °yÇ- Ç-¦Ò¨¢ |–Ks°mÒ~­¯×Ùž}zéžÓOiÔ—µ&#vÜô¦ã›áE¯|l1ç»Ì„8’$yÆ£:Á\?”kzÁöaMóÂÂê—¸ûïᾸì¬PÑ <ê*-»È ®âAgG=°BÎ(8ª’±óþ¯¸l°QÿÎ`ƒYÜ"wŸ¥dUFcY©´-¥s̶SË™@wXJ{¨³!Â,Bßšˆþ ƒÈUAäÑxûü'Xwÿ·'HˆWØ@qKE •½ðFò·Šï- ^B@ÆîÚlo «ÍWÿï+îñI Z!ð²èu-ʃI¿7Ò¿¯ £Ý潉׹²zÿÇ—ÜhÒQÊ8c`>ÂælŠévßê îôqf<å8Íôb’ZÕÏ<ÃáßÅyCÕ"2‹1O:Íÿ~Ž+'*¾˜ ê¸ó(s½R\~)5¡²?q3bŒ˜Ùê¤q´ÆU"1¾ÎáÆË:3•Æzi¸Ó+õ¼¢ O2I㤆DFbH5lÍ„fnÊãûxªw8ò„µ xf£°Î•9sf=1Ô žHÒ" ¢Wˆóù—•; QÅýlÜ/€”¡a\-Êï{)— ò`‘*N]ê_ù°ª(®afªG_û2Ã->—ÕvÀœf­ Ò¤Vi83£ðî¢ÔY«úØ ‰Ù(p¾ŠrMÆÑ=ÖcøŒ»¬?Rþ|Þ—dÞç¸s‰ƒðuÐæ4I¤!›×DOÉ1rÀÓßù¦¯ô ¿Üývû3}a«FÈeäˆÏÞ|D…¬Ó×<ËÝÏôg]8F=‹ÃV´VãÝ” ª}X:WE·_DýSiš¬sõ_ç7ŠRO´ªößè$›‰G±ø²¸_VUÇ09É#„­éŠàïp÷Ÿž¾æØ <º/Ÿ6[·×+äµm/Îßú>Áˆ„žcf/—Ð{¡çƒÆêXáoÁ¾ü×€Æ31ž¦Â¹T4ÁªXí_Õ™ƒUÓR­’²,Ä¡›¿$º½>¨âÆ).ò<_Žk'Ù{Ó!W* ]‹ø’PÄ}¾J¯µ8ô»¨ú¡qôSz7#²yÕ’(WiyzHž(½\zHÐóÍ\QS¹W`´ïw ö<¼Æ»à);ë×pŽøsnX«rÇÉ8 òƒ8ßßÌG«BÈQÆ©§êN¬75å:Õ€>Mü¯ÃüM¢¼QÄwôП@åyÑå\ÏÆ†Ž{š£iõë~ 1þ…³úR•)Êâ!@’EäG<ô?½æSÉe‘Ú¢Z—æ¢oDâv„? BÒó?x®ßïtÒLÒ«‹Ë•Ž?ü]kŠ0C3M¨s<dSu{p<ðÓNwx`]ñ7ÓÒ¼9…¤z.ϤN®Ê²>׈û;v)ò—‚R\üK0ü­00Âbœº/€*‰9:þډђ6¹Ä‘Lzø’XPz¯1iʲ\˜4Ãüiná–0êƒõ‘eÖÝ ¤ ¤<|çA(çÒÂêY‚ðÃ"áªÑ@þpq1¾ñ_‘ ˾N’…;\ÿHL¿ ò¼åL¾ˆÓC™#Я†TÕ4Âàv¦¸ÿ»æcA™ÌaåÃø¤êvÒUeK‚‡>Ž>ëU6¶7ÿ½XÆûœþn£¿gùu÷¨¶‰Ìng\˺,z½–´Y§¯ú êWãµæöz º{š*kvsJ'9Eàï\¹çùÈ”în•uß—‚yWz.Áë¸øå¸ý¨¹=ødÝK2W]ød»(åDÉäçL“^Ýç´õ¯íwu 1¢Ѹüº{ÔÖ~ îg’Îóšüȵä òqýàh`gÇÒFdÙ×4ØLRã q9_‘kqù]à䉤h¥ffP ‚ ¡rÛ#ò¾ˆ?Ö±'ø5nËÁ’·¸×wUÙXEùd £›ÎÑ™ øçÃÑODsD55[źû4>Á—»Ç‡w’ðȸ4Y—V(¨ê™eé[ÊÒ5°¼*Kÿ[s߉êüŽš~]çÇæ‘<ÒPDèY p¡_Í—.ø9Á¿üYîü%Â'%MeUŸSª³C=ânÓTì¡üÿ&Ìá\ÜWfãW»O$zõlj—w ƒÞ÷ âº’踕ëõki$*Äè¸;… –RÁM¿T +½}¿ÀSžEq>®ÂÇ.®n­C0ã9!†:”ž¢¤ªº×£¾x‡Åà~.r6Îé"œ.ÎÃNB²Z°:çÙÛ‰ y»ººyfê˜æ·K=aÿ†CDÝÜ}J‰a׊ÅïwÕ AzÐ䀲´d%.­‘Ã0:E€P•@tßÚ:=Sê·®xšý<%¸<¥b`ö9\+._nqñÀn7Ýíi®KÝÔm]€õ"l¦3Žla£Àv`ÎqZ›?î¨H'ž©²ªe]ÑF„X=_ŒÑFp÷›ÔaîÍs¸;%P}wàöàïAÂÓD9!;©éÐ4.MRoœ²LóÒƒH«£)‰Éªh%oE#U³­‚Œ®Ì+|/È÷š$/M«Úm—š4N¡èXé&qOÌ[ÿf6‘“@AÕa£æÊLÚ„+¢æ;†>úÿ!U9yŽÚÃDý÷ï®ËrÏë —ò[ß ~¦ ¿tÐöÑxiÍS+õ§–¸®zªNÓ a<{fznN6õ§Ý¹ÖéYZ5hÂØ¦ú¶‹?üñ.|áî¼÷ÐÆ‚Í?ßÅäâ/®:*í ºªÕe­“ÛãCÚ–J§ÄKÓ/HmB«³óÿ!pzdÔ³Ý[:S¾ ±3pûià#m`¯2mvi½~;¢œGžs ’Û2 ¸¤¶ç¥žš^³+Dû£2žbÎ+½GJyÿ½­µé»\ýIàg¿¸åЀHVÌ1ªûQ›þW6¡÷5íäùÅ}B[¥}Mà¿‹ûÉx|%³$÷Îã³ÀgñøRŸ@ôéÀ«\·¤¸±1¾Zq˜.îêÞ×Vó[ÉCÝÞ×è¸Ñ[-ìLXTáýÑy§Ã{–¨í£:¬Ç~àÁÿÑEŽ÷I@’' ý–ѤâFÉjÒ¦ö¾ÏÉ]ó:ÃD²0@õÿ.s¿äÃÞçÂÍ÷åpoP~|øðŸAäQGxtÊE⸩*M2uÇN-×(´JýÐNZˆÁÀ…ËÕý#|ñ~œ1ôÝ ü§å3FyÂé¸<8”е=Wiig–-Ó=¸Èm¸_#æß@äKWxð+Lü&ñ¼éî=óønÐ$@}ñ/djêÇô{À·»²EM¶‰úFCæ©í¢:-1‚íra7ø-;®w—oƒÜàøpŠùt>ÄÝÂçèqÔ?zÐÑã(€ŽGtô8zÐÑãpÿÈ;¼„üJl%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbtEXtSoftwareAdobe ImageReadyqÉe<IEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/favicons/favicon-152x152.png000066400000000000000000000407511431412030200245330ustar00rootroot00000000000000‰PNG  IHDR˜˜ !gAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“@ÛIDATxÚí½y˜WyïÿùžSÝ3šÑh—wƒƒ[H›1K ²I Hòü7—¬ü½ÙÈê˶kHØÌ³ƒc0„ÅÇ0Æ`°±ñ&Ki¦»Îy離úTu÷hF’mÉVé©g4ÝSÕÕUßó.ßw“™qd;²ÝZ›;r ŽlGvd;°#Û‘íÀŽlGvd»cmÅ´7n>îïöë„1:T809d$002afHY$’ F` %t\3ðžXôÀ„b‰$ K+mlÒ=÷-dÇî2ñuÁ×1û‚bÜmÎ¥sš¯ÖZ„õ!òÝžñé…³Ñà`8‹8 ÂEÙá% 3AaÈ@1-eÁÄhQÞŒ ("€Òß+ý3„UŸ 1 '/‡D¬ú¬êkb8 Ã1°’`!{w|[(ÅUë"ÿçÄeËžÙ^DÞÆïý*¶w\ðg«Øá·éÞH?ü˜ÐÝ“ÙÑÛZ|øð)ÐG€¯ï×<²¸;|6; ¹¿EzV%§ýá,ppÒO›÷€}t&ÑÞ} Gl°¶¼Â@z´É} ܳj±Æ³<gãýç„{G–ãè‘û$hë©9¹‡ú8¦^Á\9²Ý‰$ØS€?˜ÒP€“^èå/ì™_ ¡ÝÑ6ᧇþIï?/Ü7˜°!ÀÆë#¬‹ÐKùÀ/¾²ìüC1ó•Úü¸ÜŒüd¦ s½DUÔÀr"öûÇIþ\Ö ]¼ÁŒ%P,9Ø]í»œ±èÒkK‚¡ `˜´¹”ÿÜŒÙÕ8ŒR°t‹¡‚k+€k€¯‘<Ôk@êpñ"åF’Ì p_œOdn_6WQI(ob7®/àú"ýÜá°ö¸¨X‰&¡@£¡'8KjÔYZá¬~B‘å2}ìóÀ|IŽìT†¹“À’;WÑNžö×X¸vyøæŒqU/rMnt°èÀ”$Ùl3!—€"|â‡à$pY²#ª×Ô€+½îb:F0ƒqoÁ½…ž¡tÎ+1> ö1àÀÕGv¨I1çÎ~¢+¹Œ¤þÖ1tÆwûÆå}㊾ñƒ,9c&Šù(6V,z†‘ô©~zFï)û—Ùn+€+1ð («Ë7îü²¤_V¤û¨ÁÛ÷ì8°CÃЗ°§w_‹°.Š]Þøü|䫳‘ïö`Kï­°…,…pr𸱟j’ÏU!¨\ÞR(ÈgêQ–ÒÆÁ¦úx£zð$'Ý‚q6ØëÏÚ€Ý.âk›¤w"U ®H²­ÖqsÏøì|à¢Yãê^¤l* qôÀ1?ü\ÝUª1A&Á¬q:à™5¶—› µÆÎmã®ú¹Qðë¿ÑgöjÄ[îˆQ«C”¦ÐÏãÜ×LîQ˜I¶R”‚lœ¹µäì Æö ¶7¶Z´ÂÞ–Tmp9³ É&SR‹–Ôlý^#¡:àªAXÛw.Ž^Kç±Oïÿ˜: ÓeÀ ŽìÖS‡}ÐÓÍùO ÷vŒíV-émAÌEñéùÈ?n+9{càÇ•bCìHŽFbh L9hÕØ_Wõ™:›l¿)ù$ÍߌídÀª¯µÊ²pÖ|Ö=:SÒåÀóï(AøÛCEGrÿï :Ø º?Î?t|Í„E`!ÂLߘ|h}²³æ£8¾LjÍ&擤Á£q0QÙ] 05¢(âHÒÑQ…õJu1W§ŒÒw2{¬õSj]_µzµÁoö2ƒwØÊÛ<ðT¤Óe<twIýd"å™Jªž[z ÛJ±×ïØTrî|$ Ž)“ÁnL—VQ°—ÄŽ®·”g妩É1µi ê+Wñ_cj´ØüojÉÖ’pªA%²Ï¡«½ÒÙÎûà«GÖòó´øCäŸ l_ÍQXg0Ä×f#oßXrEŽb.Ëë‚’÷¸¬$õî63À÷ ãŸl¡¹˜(šóó;?»jnÌ~32I×V2kKMI«–dÕ¸”miFC? úÉhörÄŸØ8ïd30éÉ’Þ(ضÚÃ"°5¤‡ðÞ %ï_xàÄÒ%ÉÄd;j‡ODÿ]†pÏeqò@[&Já…ø~Ïø~Åäï®Ð8g°.t¼¼ìÉ:«=K› Àl±-¹j•¨êKUAôѱê€Ì˜¤&3–¦6ôÇ~Ú°|êðØš—IE|:ν&¦«R‰·xã_· ùâläèÒ1oÂ&ØVÎ`Ñòƒ{,;´Gœº,¢(IñÅeÛK8a(†‚›½øAa\çáF» JRm6Ø ­[*Í:@ï‚Ë2 *ãØ4¤¹ÔÒ„{“I»û€Î Òÿ2øÃÃ`Kå%—aÞŸˆïŸ½Ú`tâÙ4—Ïgnp]9qèñ´ø\7°1ÂSvx~d¯£a·7nôÖz@{쩎[aÛ²¸W„nòÆõ}¸±ŸÀ¶Ç'{m6* +z™1omj#··\&µºÞì˜3b“×­Q•*4÷̽xt$þ ðÍÃ`¶fÃÿkQ‰3–Š>?yÕ–!QÆ ¥YqpyàÆÂ8~(~í¦‚mC±«0vã^d÷Ê–•¤•á—e8i7,pC_Ü4cìè'P–Î ¦¸¥¦0öcvWNW4 T©pÅ î”ë·Ìö4jTL<ÌÉ]bد€½ýPµÌ¦K°^o­ç: ÓÓW#½rcþCoÚT²>ÂQ¥ˆï.;qÌP<ÿÆ‚ AÜг–„[•}¡ÄØíb غ ›‡bOv)X¾×Aéh®Çe¦‘n6ò}»ÞçDpÕ`ÔdçbêektßDk€×Gz›Áƒ"ö‚ ›°×z®3F)6+ƒkÎ`®ïÜTòo›ÛK±!ȲLµl’DÄwy6”#p­ÉDŒõS½Vƒ†>Ùd³z–}Ên$QÝUam©¤ˆ|'T”ƒËY'fÙ1øØj$żU`ÓHš¥r@½¸¯a? ¶t(I³©‹^kRŽ2~ØÇÑj[IrÍ•âm›KÞº1p\)æ#ìËý^vpt w¦¯5‡ ¬ºI¢˜¿¬Ä¡ e”•ôr@?&à•§1ZF}nЫò£ÚÓÔ(l¤.±’Ô­Õc*YºÖF²EpNOpØãïòókM“Ç­.«Õb)Þ¶iÈ[7Ž-ëb­†lLr©Î~µòÃ~.P³q÷ßHÁÍÌ@ †®W׳Žä©ÀåD+{£¦1¦ßÚ\Z\¹ª´Œ€­ì®f!8I¸dÞéÔ(ÿeÃN¾t(ìàÅ"-+«Wëì%ÿwSÉÑ¥˜P@'Å ?¶>rÒÀ³)À-~²ýÓ[‚ ©oWm¼‡ô2Ø —¢¥…bJ,~]/™U–I[£nä5Qj4vQá°½å®å+#ëáÞâ°Ä»ža´5K„¨œ€db¦FëºdàT|0Úðñ–±Žàæ^¼í¦r-Án͘÷Çתq[)®˜‰¼nSɶ*WÞ:âR«X±Óìõ n,à"ϾٳµLäh`žP©¿`I"•½¢PI§¡{_ºÑ1VýV,<6åZlºZì¾çú»~Ïè¹cüLq­›-^p-ñªØÍËO·åÍ÷ǃ¯Ï·»­ÖýÖ–¦9кE~‚3Lî¥ÑÂÿÊ1z}?Üm 0Û—a`-Ñr °Ñª098ssÉÁQezÐZ%ˆ´ÂûyØhk Wôwl lŠEŸL–Sï¦ë­,óp1Us½Šc*¦„p´ë¯ ¨ž|â5‹ç¹7<Ÿžû®úýð›žo‹Ãgi¶×IQ›uíØ È4Rÿµ‡Ù:tÂn€“…ÃÎQŒ{Dt)“ÄßJjr…|07ÑVnßÕf=ªþm®t¼cÓÏ­‹œ2Hv×þJ«}³áë3Æ%3鋤L‰¢rj°FÕ®²úåÞׄ§Ïvg“¥Õ¾@? lÍïÞaËážáÊçî}õEhqHÜ=@…K­;G±¦†Ä²Ú(ÄÆn¾2.Oy¦o&½ÚB Έòï1Ï)½×ÍÀ53ÆÜ­Ôà`º` %”%IJR•°”DQν([‚øÎLà­JŽ Û·dýÞB„-6ØX¦ßç«n9³UÓ“žçmb|­Z$–úÉÐ ß¼øýÝh¶—Àe™Žs ªŸjÞ‚•V¨¦ÝVXÀÒÝLzñºh\7¸q&0‹ÍܦSi!¶µ»B W„€–¸`¿Ü«_=õ7m,¹É§¶Hk}0+I…n>~—+*ªpT/TÅCLЬPSW‹n~Íõ2`µ½Òü‹Iû÷”î¯wõ´pÜÀ±}w¡X/éוܪ,QÌãßR{UôŸ„+þO4cC)Ο|r.rÂðàP ùÙy-{e,ÊØéŒ[œq“7vøôûg”µ×ibÖ´OÞLÀƒÓÑ)¶vI¿–ËßëýËŽ- ¸Øc·³øñ0èŸeAÈÙÊ•Ë=œµØ`ûXæÜ @g‚1WeüûBH’ä „b&• „¯^ Q𓤭Lœ¬ÝÒ b]ë£XbÁD¡¬‰~ËU¸­öAÛˆkûÐ*RMý]öelíв}üUU÷ù;7ºøg÷ݥݟ^ïÙ[ð'½¿ŸÃ7ÙAXBû0éoÀ½¸.«8¯ g#'GY©k]}ÔnÖÄ¢_©¹–k²R9“ÆB7åKgÜBä¦Ê–™1XˆŽ-¶ØX: ÙćÎöÆI›gk¬¨u*®Š¨$µÔ‰ŸN»oÖ|Ù}رXZ,:ž}|éÏ¼× rþÆò{Ûb¼ÀBñƲÔ{,Ú-*§Ýš%—÷oEzq}‰ë#,Æ{ÖÖÇÉU1ûÚ"°,£¶EÏQѱ!ªáÏr»Ëçé)õ?›l›&fÍ1g)5(®ó¯Î.˜|y]àê^À™Ø m*h xƒÌº÷o%[À¬b|iåEw²,¬j+€Öû¤ÏöÞýrQ8N^ò0pX´3ÓÍtïôý€Ÿ)W½ 3$÷aÐãëKÀlp¼oÃKf"w«ûÕ«ÎXðÀQÁ³%: Äd?aB•tqÙsp6º±µ´2³FuŽN µºµ*¦ye/rUߨĉ˞“–ÅæR,˨ÍÄtÒÔ…dP£dÁ<“Ö­¨ÓlEdÇ óü5ÓÊ*²}ßãG÷`G;Ð6 E)}º—Äèãðî ŠøÑÓ”ŠŠL›—_îœÁ’7>4˜[C´¡¾×‹Jågw-=ë£c cØTõåLÖH¨˜¹á#P¥t”V(%»ÁŽ:‹#˜è 7{ãºù’ËgÄIËŽ»/;¶Å’Œ%MÈtÉHô–ŠÎ5æú6’Ê0§Éöž­NÚ[ BMV±oªó%ªcö8{ئÈû·¸ª¿Õ3w5²°x5îv+Ú`µUêÞ+S \Ìññõ‹f"'–³C¦Q%0pƉ¥ãäÃ!–œ5‘ýüf5µ¦d>“õì%Y¬Œûü–…ªÒôk¤€#U7Í‘za\¸>pù¬q÷%q÷%Ç|h_ä’ 1’ ™Šjyzsu1Q¬­"*³E­Š_6Ò«ð®Šn^cvCqê| Á1ì€K€d:Ÿ&ß»¿¶Øt¬º›æ{/ÇôÔîòêUùñu¡Õ#b_‹rYi?uà¹Ï²ÇUö—&¤·l/ª’þìÂóv˜yK&—÷ž`RÓµlµ:d½.Š­¥–KÅ}zCxáEëÂ}gŒç˜ì+ È2Ú¦k"9Ø'H¶¦pêAV«3'r©D®VʤI¦ìÞCšóò¬·†–º¬âOåÒ¾÷5I°0[ ¨÷G“z£nâ+3/ÎŽ Ú§‹/`II…=p¹à„Ò³Û%ªÀg6®Ëí ©»&9AeZG’Õ*ÓUvY~3c¦2kµ‘¤aüˆÌÞΙ1»vC™@}Õœ½ÈÏFô\Áã›Tok_g“z¦QåOóÓebÑGMsŽ!Z ¨d6§í Ø-•:JW¯Ï5ƒq\Ù$ƒ^™pgXÔl©w©UûÁô"=&ÿê©c„OÍnv6V„ÑuÓ°GÉ‹{ÈR“‡ž=J«Ø£I… #–¾Óˆ·iÖk ê¶: ’uÑ™àeV¦ÿ^Á?Éâ„=Á_OÖë¾ssÞ->!b^ ,6*I퇜K±è2é’=pª‡£¥,ñ|!ã“3icàj%KN’bã1òöõ唆Ù!FöÔu©ÆÚ(ѯNÌçîîk˜ œšúyos&vöŒ/Ì6eÓ½½2"Æ#öô8ièØÙR Ljš½õ4e¼…ÒH•Ž@ÖjôÛ¡2\Þ‡5í‹ñ"œ ü.pQ½²W±}ìù;Éd¿-^duY?èÚfjþïÚ h ðª€E«Ôgúl~§‰ÿ怊êœ?Q¬l¿X?w»*Ùg—Š”›O/b>ÞÜùÎOõ,Xa_ ÀL)Cb’=0àÂ~äòž±1L°C:4Ä’àáK§ Äî*]¡“'/½š ²–mF»íxn—i*ÈÈAö*G¼'„?®;€@å À?šéfö¨ {C„¢:šNY\2«Aã2)díHË€Õ7?Gö^+;w–¥Ì1&® 3áKê¼ Kˆ[ì|Û{È8E,ZMʪ]­ fÒ‰“ªæ³eujÐØ6é&ìrÆÃ÷zî³ì¸Ù'cÞW¶GS,¡‘Ãjõ¤WTDý75{]Ûe5x¢©zãvY’Í.Žß5gŸM9D3’hç:/šÍK<éfœaGUXŒ«Š5l¤ÆòkU—¨ä8h¸A#0¿ï5Hc-½46 ¬ Ÿæä,EQ «ô^!å'}k­Þ¤[µLzyÞÄÍ…ñ•~dcœî ¸Ù§-{¶·`Q#êFÞ¬åzò¿é*³¶Ë4Ee¶šÿŽìº?GñÁ`Ÿ½µÊª³.g ž±“‡ÄçGg‰`Á Ô5 Œ$Sy]Gõu_w•X›¥z7ïÕ€3ëûjÛk>~0ñm£¸ÊÁ·<Ì'@Ú„ ΃¦z¦+xÃÅ 4Å87¦[g\0ùN/²%L7ìnöÉ+9}ѳLÙ ¢Ülg†¤¦Ðµ+¥\%Í2Õšñßc^fÎôg€͇_4sŸšV{ëmWFãµ¥ìµNvrÏô„hz¼‰G:Ç&³ е`znØ×ªÔµKّD• Vïúá'qFQŠ/õŒ=¤|º(Ö‘÷Q§íOmÛt̹‹§n_íG³ª›Å"õØê›xâ΂u!ÑMöhÍAe¢Î&ºUx™m¬ª#D(ê‚èâ}Möqn§-ψWö´ˆÄS‚³ˆâË¡® P&Í:ÿJÒ/dfCc›uÀÕ°ø™j̽Ø$ýìïÌÙ£ ±)Âå.ž1¶É7œcãxšwÙŸ|ÐñÁõd |‹JÌ_Ö‹ÌNQØíŒ§Þâ9i ®-ŒÂ’}ª¥å¤” ›åõ»*o¾éæ—ÝÌTÜÚ‰5VǺ¹.³·ÃlZFuGo$u‘þTÊ`!5±8 Óñ¸¸5t”mæ,Ï,‰60Ç æâU†¾oÆe¶B¦©Ÿê‹eƒ UK‡*DxWÇk¥d na²¶³ýv§rít³K¾Õ‹ìÕ¸ñf$JâI; N¤öá>ož–×ïU ‹Ù€OU¿[%ͼ©ñš”‡r•™¹ðÞ¸´ÄΚѓ#Jw´ÙR?¨öÞ겿ÏÌG¾=ÙV s6ªR/uŠ!š%*µ²7V ®•ƒÝe‰†Ã˜‹Rʲ9øNÇBCnôÆiKŽ_ôÜì­Ý3+eb6š T'Zm—ÙX@{dØ·&ÏÊrø¨~lD¬7c~0ÄÇÀPÙ:‚`!ÂÍ…qî Ì ¾®Þ‡òB§v§¡üt+±ÞŽs5¸ÁW)?ßêJèÓwyú!ULkR.Tö×ò´ŒØ`Óº©Eÿ4•IC¢:‚Ow^׈uÕºsú¤šÃ=²Cu¬Üm¾9`>Šwmˆü Ç”®kÌßÙ¶±ª)M¨_EUÊôûîyÞ‹™ÍDq]aÜàSÎ|þá7yã{÷ß“Øzoã-"ÇB?cäª5ý¯\Þ©™QGWšy„Y8«Œå9F Í(-µpÁظ'274JY+™áθEÁ1CqñºÀçæÛ,Ýp×ì¹øÀñÐãÍvy3Š˜ÆÚ*=yë9èy¬p×_Àĵ>²Ó¥Ô㜖è<|Ñá+ê"ot›g3Œåze-%}5ŒÝUÒÇç*³™uF"Ûn3žãJ‡[níË"”•žíÏæaš5YêÎ ²ºWÛµœ³`¬³Tœœ›+… ‡vIo¥0Ü †#âRÚ”5IåÛ±É-Æ‹á>úŒóÁú}ŸåªWgÞQ§íuœ¶×±ÃGŠÊ8oqS™­)e:.S£«ö2áÅ3rCí£}º€cƒc¦Œ\Ù d\ZwXI.`SLÕSoÝR²SpÔÐoHcŽG:1&í×"Û‰ ó†ŠTmÁ=UA?«^ù̵ÑaXô5Tpý„ÊÕàþ{JØÙ¯FâU|–ËÂ99ÝweÛ³|Z^f¥ÿͲTeÓ5%öšÕH##I®m1[z¾5S²än–‘‡"¸ª~oÞ¸jޤºÐ ÷éxC÷ucë_HvuýÐ\o~€$†aöÍܽlDkFˆyô½(¸ÉY«9È’ÒtŽûìu,º©êsýæ¾jÓN#Ö9oÒá²TeY¬±:«ÎÕdX|…Æj;`XÅËm*á^Áñõ¹È¢3ÖÅ;0¸”ø­Âà¬m%—ÎDŽ:lšÓ#ž×/tºQ^V[eåÐae¡­Vº#nˆNÛ€V¯"å¤ùhƒ½Jåù9E±ÓÙã9qè¸ÙÇV¥O=#VHÊ‹•[Žå/Ó3J9®Ç”Ö^f4[òÒëö'ãfè`CtÜoKg?ð)¿ÍÝÁµq˜šŸu쀋çGê…éK0øŸr1ÎÔa¸,@~1²”b=Ä‚högUû:°{ç¯ÚÈ7YÚ‰x8f¯SŸÛ.Ap%U´…:˜if.¦!è•a;ƒ>'ÌÓn¼Ì¬½ÒÈË`ïŠ*Q‘µî¦È˜1㇖Ä]‡ÖŒŒÑ\›‡©þ󬣆\<8zYÉó›‰Z5·™ÇôÕcÐ,O/‡>\0…w7ë(úlsÒ‹ª›6¯ÒÝsmF~ …zà^7*Ú ²i6q·eǰ©¬ÐO»o•S%ͪQÇux'vj›¾XYXÉ僣*ªÁÉÞÆ¶\Z®¼áû-§ß×ûIõîÆ¿›‡)£å­ÛK.›…ã{­4§INP„Ÿ‰¢Ÿ÷›­•Š;{^: ó!™+AÓH'¬ `eI€ååq©ªv®óà÷Ê8¶tœ0Lõ„ ZUNíêäšj¨UÈjyšÉ¤æiÖµ6˜5ý'V”‡ î·$6–‘/Ì–ìuÆL8 U‘ÝG/‰o¬7ÞrLÉNo„6µ8»®äRÔo¨rk,Ž*ÒÏ ¥ ‡ðÄ»ó¿ªæyLY›Ó›4f÷lI'DbËu]rpÜ@lŠ…‚ÚMB\fPÙ¨ˆÇªŒK5_¢I»©t¾2i–KºŠûñœñýÚj»pÑà®ÇLYpþÆÀ¢[½óp¨xŠëK˜ â [Û‰îRÒØSSïƒ2rÒ²éÇ»6­«:…·s¼`©¡ø×Ô/¯×Ú$XˆXáçðÅ¿¸ÒXVÊÂCÇ Å\„™QÞÐdªZÖf*3÷2k•3uj/³©Ô6ˆØgMo4z]}½ËÁÑCÇé;à?ŒïÎêPÀÑq“‡÷m/¹pSd!ˆ-C±O¦é@ÍïøŽ–©G ß›úÞFœ¹G›tz­¡%#·¼6€õ¸÷ëëUҔ듒j4¦®Z(1/àhb†j©LÓh T­2ÉúÝ6ç•édNdj¶ÇxÒ΂n Üâí•cQ°>Àº¡¸hSÉ·–\×3¶ RÀ^­zu2ÿÚzdÞí¡'ë¾} –<|j[à‹ÛJ®Ÿ16ÅL„¸VñšYñ÷×yÿXÙÊ¥TŠøwÎ<ÃΔqН&§¨Ãòƒ¾5f[ `³¹›3Xˆb˜˜³ö• –‡ˆbe“9Záê¢Ð¶Êd‚—i•¡¯F&C×ÞæO:Öê)Þ¦ÀØ2Lßÿ’õÆmpézc})¶.¥HËà>ÁÌÿL[j¯Ýe=Öd†ÇþÒz,†ÈÏa¼ &`]ÇÙ«jù/Y{—i³]HÛkÖ~cL5tƒ D³&f¢Ø ¹ÑמŸ·Ä¡ÙRõ0‹¦®¯‘Z/³ÕÕå7s»ñv3¹íÖ/‚«¿÷æ¡p.ÙøÒæÈ¥ëÓ#=nX›Åx·i¥¯Cý%APVÅ%‚l(ìefþd"ïPçúšlcMõåi·BU‘½Sè2º„m!õ¿7ÁLTCÝ:kw#¬ =šY‹.—y™M O÷v¨ŒX5F“ 7›¬iÝt›n•z°[hUÑ ‡ÉÌþÖBä¿"n l(Шežï7¾î5NõŒLWq’º'ÎöíIìèóÎÙØœGKU.Ù èW˜û;™þ  ú\ãaô¨G§8£*Ï—•¶×(Ÿæefy`#ö¼®«: †Hy{ÝVÙ¡©›MZ-Î<ÃHsÖWÙ¶ßØùÚÆÈW7F–}Ê_+DÖˆ‡0ÐCÊ gÈ¥…Z7ŒIŽ¼è¹øîÙÇ÷ÿyɶçÕshT¥ý—ROŽ5ªÈP^o¸¿tÎÿ‘Uá†ãÊÔ|/Éo< ˜RWÙ_u[‹º%Ä$/“ÌËŒ»L°±gXÄÕìÿmazÕåûÞÒüË ¥ð¥±Øƒ]ýd.Ô÷V‚}]ÍFó½ æJx¸xsàâ…Èå ‘ÒÁ¦,THB’Bøý1•ZkÇÒ¿S±ð®yF†Œ+ o¿³üû†‡xµ=ËH»©`ÒBú„c?šŸxElÎ?›¨¢à¸ 6qK[]¬wi•7o1+Õè;æ*³. ‰nd{š²uT¦sD·Ÿàš¦Ù¤öÈššîÌ1[Šõ–JëâÀ˜ifån‰]–}5/©ØQ%‘F,R/Í"&¯ü›"_Þ¸f.©¡£‡®©%ŒQ:cÐ7ŠÕš Ù rû[3î’„p}}Íu.zÙ{ÊàÞáŒB£0_·ÅT®Ö]a›>öf…„CE†O2׿xŒãKq|—¨Mê5êÚŠ¯Tf-ÉjÏqLeºQŽØ$•Ùò2|«=ò*ïoPwjA&=1Šý 3&ÖŬuUli"ôŒ Ã|êÏÑpT€ NììK¾š’[µ8¤ü«f¸s¥>ÃÂøA÷»A­ÞÿSÕMË>òÝ %K=£·šPU$"ÝbúýÚ¦R¸&+_lËÉVË@Ö’b&¤x…©¼x¥êµéT­ ¿BO/¸âŸ· w8Þ½PŽ´æíÅc¥2Àd/³Vìx™ãÄl¶’"›Ö$µ*`]zf1¬#•ëŒ8ð„PÐw‘ž¥Ö¾êîH@*3‡$ßÊjô,Uë ‡‰²Ù¥À0ÆŸW—YKÂÁÂPlŒÌ…}q|AF?8ŽÞ]p͆’à¬ê‰¶²UoCz¶ì>(׬;⽜±1V ÑBo ÁìXCNo‘üŠ+ce ÖäÌ”ÿU<ôk§=ƒ¡²OGš‰¼‰‰5ÀS¦Šrb¶V™M\³ËT 2cÛZò(†JÛÊ„`åÔ Fˆ:èÅVÛ$²9 ûÚj;M1Ù¥»,45«QÛõç®Ö8c¶t³ËsÝúØ´pÒ´hàþCÒ&Ë’4GM¯G¹j–Å(])'`sU™z—Ä×µûsŸßJ)Íy0øõ pþ½‡žãKÇM…QúÉ'hj •rµ=ëWKpd’ Ñ ŽãvøÒãíÚk’Ûïõ¦¨3œllÆåX­il$´ËþF½tç™Ùw£E¬Ú×Êä· Y`±ç{Ò°wéiò÷ŠÈÐM¯slDie,šTfMgÔÜX“îG«9o–Rs.ˆ“&öwœ"YÖ‡4ývÈo³j󖥂¥eXî˜ÉTŬt?+ÓËbÕ2Þ©UÄ1)¦8â «T*eÇâ†/â_®ÆŸ °Íà 3^CPòcOÙå¿ñº qaO3qBŒc‚ˆ´ºÛM…œ:£U+Ù‰eª>–³w7lA°k_yY©Çž‰%îxÕܵÏ27tøCPa¨¬¾lédÿÎXÄÑbÏZŠvyÚ$UY°jÕ² ‡].>¦Ø… “dz-„òûx÷ÈYñ¥…q—c9ÓMYãe2Þãêx¥ÚáÅQÓÛÜË b¶÷Fö…}qXë€ùè(Ñ6‡k++¯˜Ú%TÑ’“üyɃTe¸·ûpÅ ¤i¾@Ñ8±ZÇ¥øR³ØK+Ð*ñËýÒt±àŒÞnFàÄ™zMËn%@õ0Ñ\’å^fN]dÄl€bZ`Á%«WI²;úfÎ(†Žþ° T8Þ¤ÏElΪH«R¨SYO t5%¡¦À¹–b©=˜‹—3S¾kµ#þ¦ù>ú©»3Çõ…½òº^6MAЦ4•jµ¯æËÚu’Mü’¬ŸXå08ƒ"òpob¥½Ä\¸“µ8±ªtLºÙQʧ¹M0Þ'ÌFú°Cj…Æ«L‚cÆñüõV0?a_À‚ÙÄ=š#Ü"ûÈe³ñ;¸D¦ª¤} w/S¹'™{™d^f¬Ñã ÓvG`Ö=ƒ; ƪ[u’ÄGw½ÄÑHÖ8üáÿ«ƒk̵ŽíÓ)~Ò Â'm°×`)¢%Kÿß»ÆÞ/¼É­ÈÇ,ºÈq¥½jÑóWõÈ2bgúäÖ†˜UƳä©Òn”Ö**c |qÒ9c•éQÜIÔcå2ª·±ãmÆÒVïeÖ᤼üÌËŒÎý¼d_œ´’ÁLt‡]àý—]úÞU{ƒ H25F¼ WÍ#²^üÉþ· îïüz—^²,–ªEÏ~ßú¾™ÃU¡·0±0 ¯©ÿTÝÜ÷û¦•±ëÅ÷€~ºK嫎9ZwTìڽ̼.MÿˆÏDñ%“®ÉWý[ïðê1Yë$ôò|qÅ ¥ÿŒÞ[Šâ-"¾D²fúˆ"gTHãfubçôE×·WZ3ÄÊeˆ¥¡‚gÉLÕƒÑÛÊ»3¢söŠ1c«Ò*ªAœ•A¿’]ÖbÿµØØ_­æÀОÀžz†ö¢›N9¶ÿ ÊQ½Ï¡—wG¶çg6\Ã碳›³»ÈÛo8Gt¥+uKn·™Q2c?™ÏšŒƒ¤¡´Š==á0®ú1] ñ%ŒN¦ò³¦&u?¦)”ò/«fÀu¸¢5š.Mb})rν’è‹j7™8¹ý·Ä‡¦ŸE\,x²Ç½Ç Èç@jÄaírâ2ƒÿ¶Èg­°óc/~£V.¸§˜éÝrV4÷Õ&Ÿ“A¯ÏS­°ëUI¯0¬Ô¡²½ö£O¾®>Àbν_|dbRP­2Ã(Í£…¬é‡d½îG½/¬! ÝODÂi˜}­EÖ)µ£ÖÏ^w(kè`awYLÃ]÷ú±ìmE‰wÏ fÄú´^µK²%ájÌ]¸9Vƺ TÖ#Ý[Ô_Ða”bö³aù£ög3½øÁæš—E”r›Òß7–Å ÷á5ùİjA¯¨šs_GîÞAV«Ì–ñ¿F/ÓF^fÂAÔ+ø„†Â=Šüœ‹H<ÅŸoήÛ× ¨…ù–,”°èÅîözcX)?!£Ã’÷üʼnÔyGh(*OoÜV¼Þ(xJ¢ŠÑ®Ý¡œ€ÎÇSÏþ¼Vá#ÄöÔÝ{UÆG›Mð»ƒ"èÍP9ü½}ê—Ùe9gæVÙ©‰WÖv™7÷xózpهر/†Ä¬Þ{€³Oû9ö^de+ ,øÛ]=šR»õ¨Ôñyû2;0¶–Æ\Y©Pµ+©»­™´V-ÈžA/¦&Ǿ‚wîRõ”ü~vÛÊ~Îìc¾(ÙÏF,ˆ8p•MêЂþgŒz¯wö•~ÿ³×3ŠÞy°XôÖzÇ>ŠÙ…‚Yñ®ÖtF=­-®Neí³ša.¢sðá´X¥„™!Ò7GÕÀ]@à©‹"j Óë°!"`ºý錔u;𷾄¹ËEÊÙ_ªÚ¯7¹t™*ëU·Ãbš×PFü þÆ¡ç×·¹¶r[תٚYÇyQv6qP-lÙNÐOà|ü]í#‡}…>ùZÃî RxîªÜ¢ZšµØÿ5z™ÕŠ+JÝ»7äwM¥“f¬.–YÀk{}v¹ø° UãŒeB5]WíF|,#ˆ°èÿ)ÿLJg3O¯kw•ô‡û’bÄ:i„Ï(/L£Ûo€¯ ½ð³øžáFÆü³­Ô7,ðÌ&xž>ôÍÆ×iÖÈ÷5ÌIûµKì{ášî^d«˜+7þtÚºAñZW-÷½ ,»’BáÕÝ.&Âý…gÆ|þ) ¿—ôMÏsÙB“2(ÚªRàì¹&ûý"xç°”õ¢>&Ó›Ûò¹ôûö²u3f³½H¾¯ÉwÚÏÝa^váš*dWbÿÝŠ‡$L:p¸ßèý‹f— f—=qô#š1ÔçÚ ç}¦0êzèË2ñ£ÀËßs–úQÖ^`> ªkgeãW€àíõÞ 7pÈ8Ù÷zÉ}Þ¡ÓÛ9ù ™}£3ýƒ–øÖ¾&/Ò  “Ý ||ºõf¾ÛNm[¥4£)ËÅ2+Ì#)nÙ‹þŸ|´«}ä=&1è½ùF’³?´¨7Œ5[@Oü·aO%åEŠÛ6ÐSeö,‡{d{Ì%zÞ×£d¡Q%v5&ùoƒÅ—8—æDq“ýŽ‹ü¦¢/¢â(,K³ð*ÛÕ4chœŸßÿ½(@º‹/د[™«L­ÎËl†8P¡wGoO4Eˆ‹!9!åðrñêæ|Ù0Ó}À] ö”CT[ ž.ã,™¾íŒzd>®5ü¢Úx‚aEë|"Æx¢™½ÄËAÔcu– º ñÂä¸ÚØ¿Úö’¸ÈÏÄ·3ÞL¤èì·Ѻ‚Ö+‡¯Ââ÷«™Ä4/S+{™ÊôîƒæôTy#ìqOJÓ–³gª›;:׿Þo¦—7Ë÷¶ÝÌx裨ïu¶ z¦Ãd#ð`€•P¬§2û€Ì)ÙévèÅ=§ ½sÇôÌÜ«t<Ϫ7.>–Ï`hX)¬dl_[¨(Œi†àiæf®AÚ†ÙÚA¦ŽÊ\1krï…ð\Ä뇃ßœv–Œgµ.'š›þÓÃMáW+×r¹5ë>Å »°˜'u<¦zíà>Àý0·)/ºhД²L•W%'i¸Ifï|Æ¡1Óß R‡ƒr¯²Îu˜Nlª¯®°¿µž¾¾ÖV?+WvŒ€H CÊáã(z_^³=Ö ˜+cÿµ2ÈRw#šûW“‚ìËEÑ›ø‚_‰VœNäØ&ÿl<çâјÿØoƒ½y5œ•3±Á<»”EGÌ*ê±’{•)õîpRS2æòµ£lê\V7jYw^ªq‡õxæ06³½$õ'HüZÓ©(kÝP_^äî¿«Ïýn˜/¡ÇêËÐo Y„¬¼ÈˆÏ9 êÄÜËô¼ÌT¦ÐKq:GØ–¸¶\â4|œ ×^Lãç˜wÒ›ÞUI›}°y[¢gGI»y_íÌ^ÖЖu~œ0ŒìïšJ«*³¤Î—ÈØØß{c½Ð±­qÔSi u•²¤†OôÃ!Åb¤Ø[NÝo€UQ] ‡oÀÊ¿;`ɸœYeO`çÒ1¬»@èrZ.“X®sŒòæ&ƒÒ¹&…’rÉoŽwEÇ?}Ìï{¿]–Ê„".?Î?`ˆ—)=×9ÿÍÁRñ‹Ë噿ìÙûYsJ¯õæþÓE½Õà´•B;Ãᘧ`65†jfÈø.â1Dûÿd,¶ÀbãRg\UÒR•ʀוZWÉxªÎøÿ«æLf—•~NKbv§£¿[ûÜo_€Õl(–»è ¨ßýP™U›ôm…ÓkÝ@ŸZÚ>,>G^?hŽŸîk¤ZNÓ3$}ÕÄk€S§9/IšŽu*˜5µ]ÙßËÂ=1{5±ïk©«iªÒÑ-’Íúu釜ågzVE!74³Gk¹¤Ü°Ä ö½ßþÔQV…:†±_sôœ„3÷íÁr|pâ%r ÓÂSyÇ U6ð<¢.: xøJjSÀ bÆN£Fí×”f¿Ľˆönp«T•µ£@›P—NÖ-ÄçÐê×˲|L v¤•ѸÛõöØH-›ÙC€KÚ)ë3ÏrÌ ïÀËýfÚc†Ã(UÙ³ÓTeЍmXKÏt¦Ï(êÓ ç5ImV%ð‚^€~ðøêw°oì÷$"³_•Ù»€¨“:ÝH¥˜šž *ǼÐ,VÙõ*©¯Ëâ3—Êpþ0Qj28V³¯»m¶›±ø#HŸ=è €Ì7½ÄFÄì •L´ü¢¹aiÞ!gU Á4I–jòVH†~ÜÁW͸?bâýÀ¹Àwr $Û´§ˆ7£ˆa§“Þlðf™Å}§*êîxÛj¦£$6Ê8ÕÉŽ9««°iwn°-ž,ãÙâïÙ[{õ仃ð€oo€là,<Äð6çÏX3Û¿bÖVWdRK¦hưŒ^8ÏÈDÖF²2Ê]6À«ªZÑÓOK¤¯¾á¿€‹€Ë€+€ë Û›µE«Ôb@UÐK&ðñÃ.An f'?fpOÁ¦jô¸„á*'e«Öda5|Z¢%åË-†Wz‰ññÞþ«Z=ññàß üÊAU™Ô’¬!åVfÿ+#> KK±ûªÅŸM°-̉3¯|6“Úl9Æh†‚™‹7GwÈØ-Ónƒå”¤\ij‚yÉÖË´‰¨ ©„E£A­5hröŸâ!o· ö îÄÎ'õL„þ2Xø“Ú‹Ö `Ù#‹áÙ2»Ü|ñçE’uUf…YV£2ƒDF”Ñsj ìÊáªLU’yq¹*ªÆî¹(¶ ¶Öm¬R™~ÝEpTàá¬Ý;­;Qº1ö«7êâ«^‹6e»`D„þ¢¤üÓœ²µƒûT­ÍÌþ‹¿ÈÁ¬ÆÞb¶–f¾ÊË£4k­puè7µø©,4‰sÊ oµ±’Õá ƒv¾—ëœÇå^ M¢.lŒXíGQDûŸÊ?½5ŒzmR(ÿíÄøC`—´/¯.ÈXu%“8—ÓC 2hya•WYwÍ=¿æák¨m&@㡜.;ážü³§“µª{ãýhØs#ú«[»{í!Ú'Dû*1Ü‹¯;¨à­¨Œv2#«ªdò•w50k€æ:,“¤+¶ÕQ¥ÄNBaœÐ™ÐÆ;º[7?iTb„^´½R|¼a¯¿ ŸCyX|f¿Úq0A¶Ÿs¼„¯&a - µŒz£âé¢Òô@ö¸ª¬&ÙMRy ³«z°G꼨Fãx³¯"»¿ÁGoCËúpØìmï¼ã J3¿?ÄlÕ/¶*þ fI¢U¦±¯‹‚3©ã:ÿÏÕX#uÄÄ4g*Ò´éeËô€8Ÿ=3fCj5/xKtöC`ß¼-‹Ù—VZ×ýØ/}ï Ø¹ÊÜâ_WI³ºŸÿc¨D]@LnŠÄ¢£*«Z&¨Û®ÀµÌã, fôK(Ò„Àß4gÏâvhcu8¬ºéö63;â+9¬MáÝ?•™ÆÜ¨i`lf •Æì×~ð¹W9µ‰ò€úx*N®*“×=ê¦Sƒ«¨?ÇÙ§œâ}€×ÜŽäÓa¹-öûX¼?Þ{ëx™û×/çV뉫¦µ×nmé¬m”w_—eNC+W±M]øX*¦Ý葽È~‰ì²Û™Ý$‹OQ (ÍÞ¨>‰;(ÀšíRà¥`'añgÁÞKj«p›³M÷Ÿl“:*ÓY&½Ô‘lY:×Ëôφ=ñ$Œÿ€ƒTÂz+mwŽmv6ÆÙÀ æôD? <X¿ê¥¨µ72nêy«„±ZÅÅj˜k¬3k”ÍЬÓ~ÒĹÝ&>TZ|¿¡÷Úu8Ýø; Àòíjàu˜½Ù6ŒÇ <t¯U9UËșŒËiºeSåŽÕ¬|>*'›ÿSM¾ Ù§¢ø0ðaà†Ãõfß–o7ï€Ê!0î…xð`ÐýHý"¶Œ!f?ûeÄJeÖ½ÿ}ÊóÚkðMÄÅQö_2}Ñ,^8š`xÏĹ³l‚Íf—‚ÞD4Ì3'¸'Æ]I5GƒNŽÅ±±Yb½‰¹ÈFCY©ÙÉnàF;"|q-¦o`ñ ¡¯a\·ºbòuClåmpâ""ç›l«ÐI˜cžÍŠÚ.ÙÒS• m- €[ÌÙ"×9±¸ÓuÀUw†yp2³#0:²¡)ŽlGvd;²Ø‘íÀŽlGvd;²­nû’÷/mð­%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbtEXtSoftwareAdobe ImageReadyqÉe<IEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/favicons/favicon-192x192.png000066400000000000000000000543111431412030200245400ustar00rootroot00000000000000‰PNG  IHDRÀÀRÜlgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“W»IDATxÚí½yœeg]çÿþ<Ϲ·ªºzïΖ„”°AAVÙ® 2?pPQtPDAGІEFQDA  [HBÈžô^U÷<Ï÷÷ÇÙžsî¹·nUw'N^‡TWÝõœïòù~¾›ÌŒc㸻nãl °ql °ql °ql °ql °ql °qlÇ÷‘Mûãm§þïÃEaÁ! ˜àPŒ ç 80 —Ctá‘A$‚„BDNÑ0'\žOysŸ]V<߬ü bœl p®‰û w&f§! xÌ"®6¸Lf_ ŸËœPŒÈŠÏ/¿ 6F\¸eÀWç[£ÕVG*Ž•ÿp&œˆørÕ¿«ÏOñX3œÀ0Šà­øÚf†WñšÃ`W|Ý,–7¥üÿú'3`22À1’Ãa ˆC`¢øf†ÕVTD3PñxÌÅ|f1FXqð†{/q­96­8²…üˆ ú».ú͵+ÀÝŠÀtÒCg›)§QâZLnFº‹ýðJÛ8ŽCp\VXRœû9L¯íD3?{7ð8ä‡ç70®DöFĉ¶oLq6Žà˜;¤S‘>‡üë‘v&¼;SèÕ¸ìFsþ•ˆù ‘ÚP€cÙø?Êœ»ô`Žl Ô<Þ¿ù›eüȆXm(À±xü€¤æŽŽvÀ¢áÞ‰ø`¸!^ p¬OþþŽ 2Ü÷áü×o߈7àè \œ±’*…‡J:ÿ¨„åÌ æ 6EXŒ°9Âæ¨S6ã¾44ÿÄÌŒ¸“Ç]š`Î9…1Õv:ç?€¾¢WÂ>ˆ0œ¶}ÙÁŠà€ªŸÁHšÏþñ–Ì^¿íz`±|9ìöû€›€›Ëÿ~ È)Ùöš¡Úp$ Ð6ä3`!Ö|=fÄA&4x¿,ž¸^é©,ûÀ ÜšÁ^{œ±ÏÇd,;Qdά”[–~1ê—Ê„ù?Y•ˆjtÓ™rW(Á5B_]†Ù¥˜.E\†7DvCz PçßáÞöൾڠ„2¢îëpSfÜäáÖÌØë`ÉA^º…Š’•Š2gi6·ðÎá/~o¥‚4ÙXÏɧ8ì™.@vŠ\/qÒ….V6Døî®ER‹èš¯"éOAß7 Õi¥Ðo.…þ6_ž7®× àV‡J#=g0‹Ó—Â] ±«…YøD°ë2†)ÂïLå¿ ¬æb¢NŸ,ÓyÀyE…öböoþøÆ†8ß-=@iŠ/”AüÒ § ¿•»aÅ^o\:o\5,ÿ– FΘ‹b!Šm¡x%V] .o„U‰"çp„?QžôõJ}ÜŠé<‰ó€?‘q±°w\mfld¦ï6 Xx¹ÐË& ¿•_xk( º®F¾2ùÚи>ƒ‘+”b1‚B¦ZàÛ‚ÞVWXdœ%íü< ö+ŠÜÒç;kàéóºŠGñ܇ =ø=Ä…Nú3лÀnÐǽ’~øŸÓ`ÎÖ(V—ÌG.™7®˜‹ìó°ÄæXUJVBÕ®˜ìZvõXåêжܮþ–àZ¥0VC©^Ï2EðÛÁt .=R¸Gšñz¡·!{ ðU6ÂqHƒÈ¿øÑ>Ál bÉÁ§6E>»ùÚ0Û#œ0R-<6ÉÚw:¥EÇ OG Ù¸¢ÔArñ·ö0AÑHᵦzíÖã‹÷^~&J?ƒñ1a/G|xÃ#Üå ªAv•Ü»‘ÎHaQ`öíA¬Èøäbä?6E®F¼¿$‚’ 4¥€v--¬÷»Ìá§ÄüFoÌÐzŸ)VßUŠÑz 3¥r+>Aø]©ónüI¿ûyh{oþ¸ñk`ïÞP€cßTwQg"=ÖpÏFzR«"› 6qõ0rÁæÀç P¿;¨ø¢µ@Ù˜À²Šõ§Þõü®:­Oš€ÚõÀžIÂïú„=¦Š`cÁ2]ÈÔðÃéw= ø[ƒË@/4â‡lCî$‹^‹À÷‰q:Ø ’Ûº'p¢}±­nßÄg¼wkࣛû])ø]*•©ÉÖ½çt ‘ë(G/O¹„>)„龯̲qEpÉ5˜(ømoÇÀõãt¶Á¿ú(ðÓ`—Û†ÜafþlàG@Çô]2‹2‚âÖØ*~8ïË@wYð;G|x1g{pì jÊ'Ü GQ¦|[fìÌÅ÷ìsÌÁDE¥¦È†o_¯ðWVgw.noØ9â«s“GŽ¡‰¨ 7»ü¯78¨bèÒÃ:·ßsÒ¨ˆnõÍë÷)N(]*%Úàäeåb¯Œ›pónÂþÌXrEÃÌ\™‡è‡_½¥ mz³ó·„¿‚<•i<é‹ê˜À&¸k®GUKW)ƒ7=øf þ ð¯ O}+€¾õ7ܳž«3º¹øò|äu;snw‘ÓF®˜Ä–02}žö¹BH~ôvÏÃ:Fθ%³©Ð`’Z*f 68k¹ Ó÷àÖ¡¸ehÜ>( ÖŠ+z†,øœøë:Þ=@þ?·ž$iÏ…‹ÿ³£ðF§ÕmQ“,õóAÔãsoϸÿ!±Ç¹ÇÆŠƒ•¬J'‚—ÄÁìÂÞ öû¢=2ˆvÁ›u¬opÜoùëçO²ú)k¥ÉõDc  Ž2”yFK/0é¥= xZÄ· à,¦УA÷[ÞŸ7ØÄ·Þ¼#g1ž ª¢§$yÊ›¶äŒÞ“qÿƒŽ[¶&‹?ñƒÅ¶©4qDð]A«nÍa1À¡ÒcÊŠà:×8äc‚¬M»v-?áo•_'Ôg_@=íûy+¾KƒL7À ïôXCWE O@\z\*À˜õøµJ\-ü¹xÏöÀÛ¶åì °%xßÍ(ÄÜgÙñû3ãˆ0–œ_•sc e¼‘Ëô©Ï áÕk[G×3XG€ÕXû>áO<…Ó¸àkR < ñªñlf‰ð«Ñ"àìD/]"é™föî»"$š:-!zÖiNg¯[ø·å¼e[ÎÎ 6G%¶ª®·”aEƽFb>Ö÷Hܳq°lJôBÁ6AmëNÇBÓMt¥I.õä RË_2P^)u:žKpåôh7áôÉã\§­Ó%Þ©Š=\¤œÍß ýê]‘$Ák1®s%ìùûm9oÝž³+86U®8-Œ³ÉÐ'}½…#9CÁl`ýAG…£- 1yj,½@·ï *ivfãy©MuöÀž”EêB¨>%[5nKÞÔnè‰åŒå{š/½ÊÄ= ~á¸Q&2±cVÙ”ïßoÍù¿Ûó:³k]æ‚þ放Úþƒ³â¥õÀŸzÇX‡Vô5ÒO¢.“ÒuŠò¬D® ~{Šè4!ðÕøSSŸÖV!ÔÌC2¥H¨ºúyà$Ä³Ž dÒáœX]*ªskØxóöœ]‰ðc}B¾:‰90¸ÙK²#2þÎÒ8I¥ø?Ö¿³FHÔ@§4¦§Î§k…kè£þ ¤ùƒ±ìq·ù¾„JÖ(XzÖŸ#6KaZ ©œ%´­ÆÊµŸ \P]‡5K| ÃîH$u4G#jÖ¯²=ŸØxýŽÛƒ ØC“ÓŸ–ÆŸÄÍGqíÀ¸9;P¨‹ý­ã:ð§òÕE!ü¹:‚Û²ú6Ð?!¢z ¯¼ ¬ÇĨ„U®sJµ¢uc‹®bÕ‚c”ÀìI‚—Í*ÍÎÊÉz®=஬3½»rñ•¹ÈkvŽØa‹ÚÙ1k"0sVÌø¹lXŒ7±#¡iÛ¥úà˜x…ô©#7ŽËar½NýÕ¾Qµ ¥B'A0t0ÇÉ¡¡‡å­„F©-èucI`›*†š¼B—¦­›uJåêëˆó¦Ç]öÁLÞ ŠÕQSŽÅ ®^ˆÜ0ŒÌÇ»ŠÚž›3ãÕ»Fä‚qö$×4E¨½€Á% ‘ýÞ˜·#äˆÖÀŸÆAXcýK!dýSÚ³ËüŒå:?׬Œ,ÐrNvÏ­ïñ÷Ør^v-OÜ{ÇúÝ‹°pn‚Ð÷œiiµÊʺ®Âº¾‚=õöA¯àý6£‹¤„Ç1Þ9Íòo‹Å_³kÄõ™qb’áí'§Û Ð,øj±„AŸ[ˆ,†õ{>ú³$ŽÅm¥XvÓkŽÔÇüÐ)iNƒæÄú³Pæ™{ðÉÏÉNÝòƒdî}–Çù³w¼({à ÷Pˆ_'Ú˜€OÂ1EH•€ñÒ‹¾I­ï$ž*x«,S«˜±tŒäŸpv8çv`sßZ1‘íÿlñé¹È©¹&O}Õt+?©¥±ø¹°ü.·fÆæ¸ŽŠ¤ÊœwèÏTÐã„ ØYiGêáÿWSâˆ4V:!°ƒËÌŸ{ò‡7ÿÜCþŠ­CâM±åáš=pãÁkÝœ¹‹¶¦!qÝPW5ÚtàÖnØoe Ûßó9ŠîUÇbžàhB ?éõ·qÁæÀ{¶N bFÙ_W¾á&]Œu«ãš•NîÁº°kØŸ”,ŠƒtQ»uq¬Â¦L¤°ñ 77Dÿå][xŽ61|ÀI,<êž q* ?ýàËÝîìÀh]ÂQW›&ž ú¬®ͺÝÛ3”ܯâ²çÙ”»šÝ ³¯WI„–n溲´;W#¶}ÄÖX«¶ŠÐÏR¹ÙbÏ:º=ÀE›Œ³VŒ.‰›ý¡ôÝF–ªÓJê®Â°žFà—JëŸY¿Çc*šfµïœ$¶Ü0Ãö,“ï]ÁF…GÎü9'®ÚƒECs9·îº–thXõƒ¬ß²üå÷HI%÷Æáþ<¿bØÇû.óow(üYU|Ãøê”èœK¿àæüÉŽœý‚Óƒz{w™š¸é+~žôVç2ƒlœ2òì E­c|Îg-Œes°PæʄЊ+ë~¬ø¢¦ªõ eÀ[íX ‹E‚©»ôolrN°œ®Ýw–?u3ºéP±´zÿ +ç wßØÍ‡î®Û6 §[”)ÝÕ ¬ªSJÛ’kÖÓ¤o"çÞ‘›=³Û»¤È×6EV›LwX§Áôrèu‡ãr§u/â|oÞžsñ|äÌ‘30=6áçµX0¶ÄbÔù?müÐGPÑ™§'•[ñ³A>'B¹â(P} øwC{6*écÙ–˜Ô×Lú~«²Y6áyÖ R—òŸq+ñ]l~/4ôhËÛ³|B¼zïoQKšÂÇþ¤vÏp=–©ŽEo`´µCJ¹ îåßù(á5æÊÞ‰ªÁé˜P€zÏú\À#ºÐçó ‘ÿ·5ç¤\«à}ͬ&D]·3À7ÆÛw†Qµ%§SéhI’Ç—Ê´žß[qáªâ²êÌâx#{ŸGÓŒž`ŒeQ'&1 sØ¡@~Õž ÜæÁ+l9¿0Ê3;0:-|ùÖß²£S4Ÿõà/[ ³¦È§rU^ ªÿH»oÆRßw*³ÃÏîù"þ9%)²g`\7ȯ;¶Ï,[«ao“´›E™P¨ªÕ7Ç"ô—ÛrÅ·õZsÖ©Õßç n÷ W|ù¬ŠÖK¡ö‰§ã Ǫ#…èÎøœÉ%ubŠâ‚hUÐÛKà£èì¶åß\z÷åøL°oË#š÷ý¯ÖF©„Þ²^Ü{ÒÏ`êÿšc5F¥™ÜïÙ{ nôQÜžEnDæîà `z,Cût†•³L‹y&òL/r/‚×cAçÖ ©(Þµµ€>'Ö¢«Ã½<•,$û¿2+”ÀϨD“â ­BÕŽ±@k ô§~w/8Ø»ŒÝ|°ð9?Ï€ª/ìËŸÅl¬µ¯Iפí&÷{ÎŒm#ã ›ç"ófHwœLUåyrŽÅ„ðŠ ‡Ãç9ny?¡ÈK¡ô]A\9y×–À®uÄÔ³^l[ÃcÜ„±ˆGƒˆ]ó—íQš>ç0iè—ær›Üä"7xã¦ò¼Å{]ÑÌ.ƒ9sÖ Ùµ;X@Žš§I/˜¥ÎÖ¦ÍZÛïm,0Ö“„{’yñ Ü1p†ùøO†;)_š¬Š¨¦Í¬Ÿå<"Að´k*ÿZÐ/VÕ‚AîŒwmÉQÉÅRïŠJͨ,·jÞºiRQ¥…ñ–(K²»ÅõÀЊ%y‹&¶„"«ŒA ¹mæÝg0žžþeÑŠ´ößo,ØáYý.ì•B½Ù`wtì(û†Çf‚ZgâÍt…ñßÓ‹Txó¥‚Üî#_>7¸x!pù\`Ÿ·ÂKÄÆóØ4!ÑÚ-¦u˜±r"ÍhnSÔ4Ã'Ô83dÌfZåã¥| þmòœµ’±óg9jøÇRÎÞpìÅf÷4ï?‡üw¤_=Rl]ü—MK‡‘]áðߪ£jYÆ¢Á)Ñsbtõ4è¤Î'Íßl^Íf›¼£b‹*Æ(+=Í¢k–nuðå¹È§s.ZqÍÐp&¶FÕpoÒÂ^× °Îž³1¥1z3ºÖB›¤h­*>ëœS„_ž nåkçq]^צx†ê{Xäi,²kNZr,ñ‘’`~„óúÕÁˆl!_×y¤!ÐY’û$Æ®îWÚdpÈï_ l2ëHELqZÈØ‹a¸£DP©¦ñzÃ:Á©¤®¥zuÇÞ]ys¨Õßê˹àšAäÚAd眸ç²ãÞ+Žm¹X.ƒé4·¤Ž,jh}²«Æˆûî×0+b›\H×ûÆÓhKk¨Ë>4fÕWMÓà îµ5ê§ñe[r>V‘F4÷fƒ¿®¹c+…_Ÿ¢§áÝ(vt¿9pé\ä´\ëäñ‹F# 8ãÄà8-xæ¢X’{ ¯Cµ¨#8®;Ü©Z—g66Ña‡‹8ö) útsp˜Šžƒ+òȽ—÷YrìÌ‹"¹e­!·¡ü§ÆúŽýŽfèmU§Yeˆ˜Í~Çc¢µÅ¦wPFÓÝßVC#A<<Â7vE ]&t9è¾Àf[öÿìŽ$•2;*®ô©ÿ΄i+ŠÅ.Ø”×¥ë¹ö¢DgŽ3Ù]–<¬ÿ”14xвã¹#—1¢Z™ëk}&ðk,еT˜mU%PO\Ðûº™˜®ÞQü™ÅÀ{w䟼j.þ¯MQ—¦ÂZQ´-¡ }ÚºdWm­ô;á±#ô]…SGÐE¯GíNРóÝÍÜ©.färD'\ÑúÅ„kÏpö ~~„ŸË×t®KäªS˜¼¹‡LºœÕ }x!°¬~l5 <àŒíÑñ°¥Œ]¹cI=#¯åÛÈHµœN-/‘®-rµ"4Jà&(׸ÇQ¯·(?ctÒóngn÷Üçì7gñ%{`ôñ™À%½° 4}Ð!Ñ96’¥«ÑZC»Öâ Z]mÖô>Ætâ]·-TãÈV‹-ºIÄCeø‰9rÃ.O<÷ŸYr›X.qå¬çzb€07¨Þ÷©D½`ZWÑöXtz}r>ÔÌÏÌ\å±ß§äŽs—2㔇ʭïqÆÉA<ö`†7êYžê xËÄT’Ü¢'ëë:ãû&þ­zŸr«{úžõëÚß8Â)Žð|°on’¯”ö‘‰· f‰Ø›ŒÄ+t,m¬„º#¤V fK¸\Ç:w¿^|‘@œT‘*/Pý.&Ê{†åÍï+f«@K}”éMæí£.3–ÆÊÀp™Af{Jô–[e<º5x•s] vöª7ÐàSs}ŽººÏîwK|÷ºb«ûãfxŒ%ű@µE9Z€VÈO`lº]\ka‰Ò÷!õ²ÏÊÙ„ýgàz;’¥}í—ú<Æ "ñ„èø±h|h S+©{ê*AªÄÔ;¸)ÃÌ\Ç«t^«ö@®´þ•ð»UàÚ´à·èŽ!:û›8ˆûCfÌ +[q0r£éqGbJÛ*yw*èôi˜7Øç‹ç[bOã„à÷€+ŠÉžp c1ˆõdk `mQŸ­«½´¡*O².öïW‚U!‘¥1ˆ­`ñ¿˜t®9¾xÎîXÞifO; g¿fpi‹’´DÀÓÁ¼¥ÀG×£0=ò;ñ„%V?ª-Ü1 z]»ºš±r‰ŽõGí¸ÀÀdËqþØœ‘ɸÍE­N¢<’Adæs= `°bÅM˜xlŠâ+ÃÈ•ƒÈ–R0l [$ V*b<þ`Ɖ¹cŸ³z¶%ôð69à­ûtx2‰u=ÏgVHd Ó‡ ž,ìͳ¥qÚqð*à‘øÀ{E€¯¤JP |j…c)ÈAePó·ÖïÊm6!|Ê竱ü±Gø[(Iê•Ltá/BñkŠÅ½üJVdÏWÉp–ÁŽÃ‹VQF×Êâ5¬\2ŒìuÖ5)sJ®ÿ»yî»,ö:Ã[gWÏtfãV¹WÈÇY¢IÞ€N>`$rȯš‹OÝÆ1t\ˆ/ Šß>">(Ê~Ëàó-O qXÔp+Gì@AmÆ)v,?©W±Ú³%üêî S|]†7˜Ä6ƒ+=|ÑöPÏdЯ ÛÉuN{®Í”s]µ@ò{‘®š¤C™Ó.‹ÌÏ Üæ.9qгÏYa}«¹3eãŠKùï¢w´¾õD¶„¦.êûËi¢Û$2uøjåÁœŒ>þ'd[KÝÌw(©u²K .‘ôr3;3ÀyNzªà±‚…ÔãuÒ£µ4+m‰eO©P:–¿õsZ[•Lƒh1?&¢¯4g¿A9@l`pÑÀ8$ãÄ&vØä|/ª÷8ªÅpÑ;d|FÆ·m6qU¹2‹lé£hȱ×»ƒxâ~_ ™*krb)üE"§\…šàHa‰‚4wʧlˆªªMÊŠÈæ¦(™´VSˆIàÙLyÑì ƒG›·ëgìB¹Ó•!¹9Wü1ðÇÑÙ¢"qÒ€Çx¯¶")µØ1)°[Ò¥d§”kÐÉ5qmtáÙˆ¯rÛ ®Ìà CØn"6Øds52r\ tßÃÇfÙöiÄ`q "E¸|¹Ù'„éd¹´OÙëÙ‘‹›²‚ë·z®f#¥ÎT^ü2ÃZ/i³RAš`«Ï8Š‹iþÞ-Îw)—x‰<ÆOD³ÇÉiåØüUó „œ_˜Û zÎeÆÃAl탬L|ºV¿[ÿSŸ¶"©Š®0³ÿeâ/Í•m™åÛÍGøÔœ8€º¹¤“zyL¼Œ‡e¤¦+@ñ ¯]„é±}WûòAœº†´²à{<þ€çœ%ÇÍYäZ'kØXþÒ¨(AnA"ŠÆë}¹N‚¨ÊÒV7$NDrbã¿ÊóÇeÞ›¸ë=óSo{Œ÷”¶jÞÁ á2œmâÔ c׸) éBžvñ›ÕÂÿƒ ½ÓàÂÚë& ¾í¾-5B2 ñ#óÑã ǃøÏt,Ÿ.Ï"štZ®x†¤3uš¹x¦ vEØfb+ X/•Û]GfÜfŽ[Mvè*°/GtQ”]#›L ­`|>44V¢±%¦…{¸“Å„®BÓ.M™`>Ë’¾é1õj“÷;ãwÒ¿-šøÚ rMf,ö}ˆ²3£ðÆ“÷e,š¸É•<¿Ú38+LY¬þ,ã‚ÊŠWÅj-HÔx‚˜@¶úßµghžÛ—Š–ìsK!R,aÐÝüˆÀ5&»Fèߊ @"O=þÆúEÍd˜"2ß=Mä¶Gøä\9;ƒc4ÿ½å´cÁáÚ«é4h´êüð…Öß ¾‘·zcnŠ¢Ýêï:X@ŸÛ¼5§újxÒäÖ¿i±Z{]¨,Q‡írù.¡J;»xªIy]&u$ ßá“­.¼‡Må #Üâ࣠Eø@Ö98딞7†*Žõ_UûÌÀû ðþAiÁúUƒÈÒ”5¦ûqb.ž°×³$£áj£œDnJ¦5ÿmX¢"µ›`+HÔllh¬»§a‰\‰gcù!œ „üY–sýÆ\I¹úQöͱ|Ïãè(Ùb„m1¾ež“–z¥y§ûIãCyŒ|=@+eñ«7ôeÖñê,¶’_Ýgpð¸}ž“GE©ƒ³¶õï]PÑ3•Ù•@³ñ_7Z&ÎZ+„¬SG”Ô9Çÿpó,dŽÍ™g1óÌg0/XÄ‘•I£ãÈ㬾:.Dv†4¯ß:ïœ íµ( $òý½É³+ÆtjXŒÿ†³+pî¬A4nuÆuÞz`·{ã>ËŽï>àÙã¬ÕÌBbå»S“]Òüíå“Ý<¾ ‚köAUãû8UªNóLÀ. ¯–w=³ Š'nÍEfÛÍŠDâ†'82Їbqù’7þysÁÐÍ'ÐùzX{‰J›‘râ@7<Žk¼OÓiСo£*ã¿0oâê,r‹·Þy߳#‡o šQ|R:%¬£]I˜¤.$²UJ’©¬¨ÒzÛH;c–-ÿoùr˜ÊøŠL÷NÁíspP}YÇú ‡Ãÿ~[äªùȉ¹Æe …OºGe ×M>‘“XâG ™”œÄG)yù뽱ǃž÷Ûïá^+âÜE­£YB1¶B³g9t«¸­•–ž:xVϤ稢G-¾Ìá¾:Ï€9²‰çŒLæÉ8iű)ˆ\¶!ü‡yìâ‹‘OÎîÜãÌM<…¾§o—P³c€Ûs9‚¹9š¬iÓ´lñ*™à±'~¶‚1×g‘ek€ƒÎ8÷`Ɖ¹øÖÀpå0« ÞÄNiBU^«MY÷ý–wÖN­»ª“VÔ5EÖ©ê@¢Ë½ô{ hMä†ÃsF.®ÍrnÌŒaìé-Þ8VÅý»sqù|ä½Û™Á|´iKO3é\c»ä¬ìÚÃìšÖ]Æâ÷WþmäîÝ  ²ƒëËŒª+%]†8ûFßo W;rñ ƒâP%´%«Ršú)I\Mˆ RÜ¡dñZL_»„DKÔ—=â÷ [óò×ê&¾ä˜ÏŒob ‘6ŽÙ®ß®\Ü8„wì DÁÖÀjIÜG` ªø­3ÌšÒÆ_Qш" ¿Rʈâð§‚é;0ë÷qü#:§‘;ûV߯¹{½qîǽ—{}S n…бè`=¶%ñÑÚrL^ÛêÑèMA]•8öEû³õ’:¡ìQ8-ƒW.#ÔòJGð v¯ˆ›‡ðæ]#¨`€VÓ"ßÂûcöPÈøVøYb,ø…˜ûŸóÁYP>nÍ à}O¸q¿"·;ëi,¾Øý—ó±(pÕêË:ñUmSWmÅa\½û Q—%rÖÞÇUµDûs¸¢Zè=iÅá€Ëæ#‰á†Lþ‘¸eh¼ùÄœ=ÞØ=*îËjûG =¹buR/UÜ|‘2a:ZqU„ð“ÀN0Èâ)8Û ì_; Ús[3Ó`¯‡}=ðŠ`g÷]r,9•½±ô¦¦ž_¥7¨º‚?•²ôA¢V1[Zý9–8+cަ–hÙKï8RYÍ<ƒ“òŒM‡ÄWæ#·;XÜ“ÇcRcÀ #qãœñ—§,sÛÀØ•‹8·š‘1ˆîäþ¬Úòw¶Ñ—†öëe'-RéýÍc†Çxq34V÷'êëÀ§Ö¬}”’3°$8 #ë`«ÎxÀ’ãôÜqÈY5z6™\Ü(A ‰ÊH·†7 åÙ¢C'¾¥ÊÒ ­r*éPû§ ü›GªÐÍ€%_ pzð!qùÐøVVvmè@qìÈÅ ™ñæSV¸53v¯Ì¸T@Ð3T J§P(™øM*èõe‰8,ªHã ?Fvfãupïu)ÀøD!;ÁÃ9‡d½ Њƒû,;¶80¨ÇªÔ°§VÒ]͆ÅRXS–ÈÑÂð}HZÿzz]eZ¼STøÛ`ñˆWzîS1àœ%1˜3.k”†wcËï N^_Þyë åè8é +F¹Ï œ~°2¾Þ‚B™ã“™Dô¼²X´ÀKäZeÓ÷.`í1ilrßåq[¸¢Àu¾ü\„{•s+K^TbVÁik2=·¿j£k±D±éOĵøY{$bñÚqÿœÓ‡çŽÜ:´Ž—,núWÛ ¾0—“S(ÆÝMøçc±Dä£;#ÿ²#;Ø™‹˜­Á3š=ãÛÆ–q'Žß DüËvßȹÿo˜;*«F ÛÁ„iæ«Áy›²Ì?Ä2Å­¹äk-—øÿ#±¬¤F'ÑG ‰ÒÌm©¡;ã–¨Þ Ð‰ªÞ3ûŒÏÝwæýöC0y>»8àa>¿{ÇQ°e$æ >¸;çŸN€­9lÉ!_CfVE=G±1tÖñåï?9ʹbTÓ£d§€þ§“5±‹²ƒ«²žÑ¸²©Ø:òHœûòfRCúÕ–œqÆ’ã„Q1¼¶ÄÖ¬®Õ–À§ÎúÆDa|YêPÈJ!©`360·Ë$™_]hw€`pÖÁŒù þ}gä ‡MùñmõN\·Ìï=)çË Æ+ÅZÙÕ¦CAÿÈÉËQÏ’ú7õTq¢w|h~àÉ9¤¼hŽÊ³—[ÚcwÁŠ1Án} PÒ31ËÀe¿_IÝÁrõÏ\Õ,;8yTìȺÙ>³eÒ¤—k sj¼A7²D•ÇØV‚iu­ÏŠ?RÛg9nópRO¾Íñ‘Í›3ÈêÇ—ðoŠÅF Kï?1pÛ¼±«¤ˆ×ÓW*x–Š–`:¹9rÙ¼•êã@ðËû³s$öeÆßïÊùÄÖ€°y¿8´þ Îé']wäJ'fÌ_Êœ>¹ E Ì(û_ªZg“q–EŨ] \»>˜`¦Ç’ëeé~×…dbõa‡N©™S_ ©kecIZSOÐ@¢T T’À¥«éµFùwY"ø*âŠ;CPxckOßã ìqv—÷QE¾cq$¾´-rÁ +\;Ù™—ò0X§ðì÷‡Ü}åêªÈøbÁÒ¾3æ70¶dÆÒ²ûÙx‚ZЧQŒk„]³.ˆ¹.ôûÝ;7gELLjöLE¢ÃÚ‰¯º)½Útrƒ’rˆ˜8;Y“*¯ÜiLdÕ¨S^Ý“8ûz:`æŽ<p€b‘÷÷ìõìuÆ!w׬&­‚ü]+bi`œZÎÅ;qfžÕcPÖkúìúÅz'Á,ðWæ"™ƒ˜»Ó-èUÕ|¨þ‚9> |v1€^€xØjßaEÅ(»­eɰ³FÈ]2F;…D­m&u~ ‰ Hº®ÿi*;»u½6²ÏÙØÓ(ŠÑ ‹ÞÜÉ]Âêçb˲¸|ÁxßîÀ•›]û=Þ&Ô¬ýB=ÞŒÇyUÃs­5ÛµÚëí8¾–•R»¼Âë ¶ö-(WMNè&Эë£AÅ–> ¸`bˆê ÝHÆ–àØ6*”¡ÆtÉŽ*W?I“[ µåz‚ã.K¤ÊT#Q*4‘¡Ðuº“§üÈI)a»ËXýÁî%qëÐ8ÿÔœOoÜs$â‘(…-d3éWª$WQQRŽÈ¤)…6Þ⟓E\æÉWô"ß_åj+EéÜ<ñJD¾>0îÛTB jæhl °9Â’£U½ÙÄÑEb9…D1a‰*oPDúJ¦Å%ª†DV{Œ*Q!«‡cY²`íXªxì×JT½»òbOó§vŸÞ¹f“±cÛ âðÈ(±aÄ #=Õ£“…h®‚ÇŠ%؇}æ +Ü/æ¼Î¹fè4^1 Ü"øÆ4ܹ>ˆWu Œv ƒ(–e KÓC'C¢_Ð¥%èc‰\_öØÚ”™‰o[Ò¥Rqï¼ëӅߨó#ÇU Ù¸bkdS.NØ[ܧ•#é„‘ÿŸif_ ˜òÿÞâ«,+å%è-@Ö…H¼LVÃ^e¸ƒÓ>ÃÚ@ƼÁ–(®óÍBæÍ¡È ìsi-Nç»Np[1F$Š)ä©K¥oЉ*–(:Õ‰’ŠXRt{ŽM*ÑŽ(T‘‹¹ØÄU‹ÆE[s¾¸9pÀEvï+ÌP8 êq?á1Eö¶Ù,êêagÅï\´³ç›ùŠã»ÔÙRÔQÛRû¢V¹Î«%ÂnêÎÒ©þmA¬ ›@iÞŠì_ÝÂhíÄW˜úd’pÕªíŽõd‡&.¨!jC"µk‰ˆÖ-¨Ûc°÷XT­õÕõ[°¸"®^ˆ\°+rÅæÈõÃÈŽÜs‚yâüQ Œ">,¹ß–³ZԅƼ@Ä@áå2GŒz¡s¼°‹õ»sIõÅ«‘Ï«x€ønðß |[ »£ê™9±„Euð’¿õ(ÃçWKÙ\{~§/ã‚öhæ<º‰:µD5$*5Í9n7ŽI¨±v°;CûÀŠ îænž7>³;ð±[æŠÞ‰‡\1Æü(~‚~ élgVçˆ*P 2Ë£Èö×™³]ZÖ“%þ´[#ÔW0פˆô¹Õ>Ëô<€s–Ù[…~·û·ƒÒ·õøÒª /…<éìOK\•K3»Õ‡%üQ§Ð­þ¶“Y¢"°bù‚±¬hcø°ry‰¿öTdÁb(jèo‹|âãó;· M9œžåÅ3×-¯SúãHg[Ðo;W@%Ôwl±8ñÐ&eg‚¸ÄàÒQ‚(tƒœýÇa)@±a7€þ»ÌNJÍ×ɹÈÊã­XxWkw¢i涯¬9…DÓgÖ©#ê²DiÛ¥™4w¬JpÅgŸ+‰€Q¹“ëhTKT±}¥°2×Í_عlkäÖ9cËHœ|Pc½GEöK\²œû?ˆ*înZPR+½À|ÆXÑ+‘Nãè+˜«”@p¡‹,–Èr0»s/Çù7ÔÕÁ©Á±-ÓŸ}™ì!íà¯ë±Ûu<-H”Œ3¯›Û]ó÷KÔZ€1ÎuÛ.¥¢nüX;¹šÌù\€mѱe$üÈ880ö ŠQ’#×6›A-‡7Ϩ®€…P4îcKä‹[#—,KÞ˜bç¡Âoç«þ‰ÙKá¹ûqÄ3ÚŸª·úÔ¬¼ÎÁGü Y£8{¯Q’@ûˆ—V½†SÀ[,>˜ãæ²#òX0–dœ”‹‚øF¡ƒÅj-UCûõB¢Ô='T©W³' †ÐQõ”%ª(¼”*uw’ ×nžb’DÕ ¿-Â\.‚˜Ïż+(ÅÜŒÍ#±ÉŒ•ìÍŒ}®H(fL<œ²c+"Fôª—‹dV°rWmŽ\²#rõbd)ƒ-¹ØV¥ÒÝlr’Ƥã–}1\VŸž‹/dzpuívƒ‰ZqA%·õìÏUOY¡4@Nk‰Úë‘Æj‰ìH$C§aÜ­7³*«Ïí¬è^ˆbÅB›baj£Aî`Ù¡lÞ•çs˜b‹Ä¾aä/<‡d叨‚>4‚yéÿB%DÎa¡ð K¸e‡ä8û6GfZ3ÂD¸~Sà¦M‘áa\P Wü%íh¯m®U„ÇÍ/—8# lCŒõA!'û„¾fhBž,…ä í Ëô<”½-b(ÂY#ÇɉüølÔÒKE¡\5ó?¶jvÚJPýÝ%ûlkHäšüAÍ*ÕåÑ­ƒE‹šc•=ÇSIʲæâ¦XDÄc.  C1ÑiPì&¹³B[ÛiÚG^*ø|ó#±d°lÆ’ƒè ³H°H¬_qªn3C±áÓM°mN:ÔìR^;r1N<èÉ7ml¹µCŒxÈý¢E¾¯2]£Y3‹âÜ —‰Î„Þ$©j•JДLÈÛßiƦ„lõŸ°×!»9=ù_Fpß‘c1Š=n5ŒZOóŬqcÖWÂÐÁùMoo©¥ï³K4‰Ì¶:cËz ª_:uEÌÁ\@.¶/ªŒ°œƒÇB¹L¥¨‘2'Vœ¡¸Æ¬oUb"È Ìgâ&—“[,Q‹fjð—,W3Š~=쑢ؾäAÆÞùâûø8»ð³ì¾Kѽ6 òÛ<­á—TÎ#i‘–(ÚJÐf… ‡þËf ¢Ö¤ÎEk¤½ØàüeÁ™#ÇiÁ±TN‰`ʲŒzx­š  äl|G@ý¼dsŒWçwt`«õ>[@»;{hf>s‰íA, VõZ×±SÍBé+ÎjØ´ÞÀ±ž}£Ò+ÔÁ¡fý#ËÙ|d.8vð,ŒDfWfrmÕȽC=²Ñ.}Næÿ[º^·Ieµ_c|_€9{o$^c$Zs0 7 (_ùáƒ.~ñ¤Üq¿Ç~KþX«h[½°BM*ØYÁM+lu”@±8M¦ÐÇdë»5ì«V¥:ÛnÎXë!g,ZiÍ“û9é<ž™Èœ²wÀöƒb)‹äÞŠñÖ¹‚80”ƒ?˜ýµÄ½•›ú cëloæqIŒK­t^£¸ñmR ¦Í¹ÎLp6ˆEôÙ­¸]ÎŒ®©á™J©¥ñÊžU‘\•K ÏXA]))°«âºTÚÝøäZ¿b^o](áÈÆš¤49j Lì8”•}„A‡ `#‡Ëõj9ž¨Ú×íÕ¿C%âoŒ©«ŒÕîãJ9ÿî"›7Û±v¨àKˆWG=íËî§æÞÝ”ÅBXÒè×&+AÅyT‡Vï¨Ê$\‡*mfü—¥Ô}µi£Œ œYm–\+þßÔŒ\Ü8Zz'pŠ‘}óÍÑß–¶äÚ¼~%ª™ØU‚Ä$hÚÓ)#¤±Ñš2%~¿^Ãhk¹iS`ÇhÊ YË?uÆòÜ>f[ö_ä,ûbYEkã…M‡D‘fó_L´¹jyôŒS¥¢°ü±Ã9+’tum‘ø¶µæ°H1Ø*ׯF˜¾ÀÚdŒTб±Ä¬JêÐ…{ Ò›Rˆ{ò%êùy¬¸…ÊÒ «'ö$óö-EÞ ­é†MU€ ·å«Ä8ÆI¶ôÞ-Ò‹9þ`OVL^©Íxš˜¬5‡.•ÖÜZõý-ª”&Ø®*»ˆF)ÎYkö&ªhúXÓݶqLfˆ\p¸åâ[!éÓÈ¿/5–¤¹Ô™ö¼^(Ôf’„)þ¹tp­þ~ª¼ì¤Õ¹®HNõ›òì%{¶óô\H R]³§Ç“gé¸Ã*Àjõ Ó`ÿ*ó—ôœ£î |}VÒbXN½ò½úõrF6rÌ…Œ€\<ø—X ÛZK$«+=c©hŠÕ_ Ť[ƙȯ‹ÃÑ«×ó¦*Àbð3Z»}ï ¾ûo?§TÚ˜n³Uã‚.,gÖJŒáèm~W2ÚhA"‡xh&È‹¹1›vÏcuLeö@Ä…Àæ±AÞV0û ÝÙN†u„?7¸U°ÛP™ £·`®š27°?ð·=©ÿ©yE6ã ·ÈÞôõa3¦YYbÚÚœÕ T)%$R¹˜l“§é7¦Ê ¤Tj]mªÇe³œŒùçkÊU”—ÿˆOÈ´ºË ÓFÂé[ûuÊcYpà¶’ÍNà‘Æ^ÓÅø…lÄk³CÙ!?ñ\—XXÃ\ËM™]tí œËžZur)+=A=1)ôY…%ò4PÕò;ÑxKš¢é–WWÎûÞYQ c¶±{VTüç;ø¨Á¦.çÑòI¿F •åìßú=Þáà~!üŠê´NU^@ˆÌÅ—XŒ’›¦ÎäÀuC ÿzûìJ.1yÛ­ž§º$Ž‘§Q_[KÔ ‰”ÄÝ&|kb‚ˆ*ùs€/®ü·B 6`6ª8COñÎ}€–eoàÎø½¬«ý(Tpáïà¿F³?žØeÓúŸ¤`ïâÛs¼/íàqò\ää8Wå±§*Àc÷Ïž&p#Ç?ìÄotŠRà’¸ RÑhèw,QgÝêXÛeÉÔ–qÈyhº8+&Þm3Ïó¸?¯Z'SxBG ,…=jÆ8Df߇ø÷^°gô³Bm| ‚a¼9ð"•2Q[þh䣢’9Q›õ)Àíƒ5÷Æ”ñÄ‹ú(•¸ÆÖ‰Úÿ-¦Õ]ÈA{…ì ¾jš+/y{â†õŸ%ø}Ä‹SãÕ{úî_¡Ë^)§WÚ  åì"3;שMvdµ§‰Âã/:Ï-–¼‰!²Ûaf¼Ó1Ž·õœoÝúR*•MdMºê:"@õî‚âm•Öu‚,õÝÎø.‡ÑwJ±˜h±±íq Þ7€MBz±¬S¿3öï†ÀLH‹¯áìÍÙN9^©Èþ¿I‘s»KðºÿuƒÁ9Þêü•uÒa1ª©3;Ü`se?§h+ổ¦<…DUôŒ(-¯®FŽ›Y»÷ ‰ 7©Ÿ4ì?ú´Ì ÑÑŒØÞ8ºâ/Üã…þÎŒí]/™.k•<ÖþZsöžèío,r¡$¼ Ãý'g:ßÊ'&nÇéžæ+ÌÅç§‹%°eÚ{㎄ÖÙX(þã™SñLõeãúX¢$ÏREÅv}x®n‘¹'êwP{V¼•!³ãWøG®ð’ƒ¸®›éôážË›’ ¤µk{F‚¯|Á° ‰úWØÅ1‹(™mïFîEÑé5•Ö¤Y⾂¹4_ x6#‹åÇ`Ä‘«Y¦¦”ÞÐ UŒSÀåë·þÞ}Üc{¥¸ã &²D3ȱHÔuõ2G:E`âù¦øò^…²Þxg|?ðA`ß]MðsW4ÅŸ~PìeAÔpo®?˜í4tØç(vmítE¹ÔÞ(ísp`Eá:‹ºÖK_vƒ•­—5< Î2aQo÷ãUyCÊ1Ö(™ÈtŸÙO ‡ñs+ªSŒ–ʖЬ韕8#„lwÀ}ú°z‚Fëô˜d¯²løØ©F5U„êi•"˜s¡«@"+ êê©tÉ$Š¢VH/´À˸5}~¤­˜;âeˆ§<ï®WT;—ÄÖÜØŸÁþ¬èݹ"fòÓC/ nŠØ«ü”GUÓ?ʉü…5¯ „ ‰éý.ºûE%ÃÍ¤Ú t§C´j~œ^)Å·V=c1tg4!ßdˆ#:%Fþã—bî>}xApµÝn­§sÂùÄøÑU‡Ý$s,”F¹NÝhU%PI•Ö2I£LaõNðÎýY96¡<-‹ä.´çê58ëIÿE¸Ÿ,@¦¡9!w”jA°8*Ú¼$NX.¦|› ܵºšö€¤*“bÕ|rü” þk2Ýdÿo:-Þ¥uý­î@!âÿ,Œ~#›/”âˆeorŠùÍøÞˆ»´7Sx§W :×§å’¼õž £ß›1f¨)¹&yV+Ô ,Qª'Uyu¿è—ƒçÞ£ä™ês%£h#MϘç ̈Á½Ùòá÷Ûh@u7ç®7ä®P†,Íò'äÆ +°-/âƒX¶vÚ ž%Òž„1Á«a…aó˜þÎËý¥zl^m߬IwUÕB «dïs„ŸRys-wÄQJ•tÔoǨÉŒLöGÙÀá³æ\ ä‡{Í?€ÙûO[“"X WjgÏw'QPÍ+-<ìü0Ï^±2Ï­B Ydˆ«ÇŒ”ÿùFQ[tï!êiÀùE–;pW+ª²èU/Å\Ãr#K‰Ç°ä2Ô£*ËÛ”UHp^„:Ï fF梘bÞŠž‰5¨<¶#Þ#xŸŒm]‹ŸæË#¨šêÆ`O©¬òEƒ†³XäÙÑü7‘Q¼†ÃY|§n5EÒs] [^9Wù"Sö&\ö3kÚšÜe‰íŸ5ÔÑšWŠÃ<ûÓàíþÑÙŠ‹Åleæðx\=w¸Tp%Ò™M “½ÓÓç?L9¬¼öY/áŠY›Š¸XÏF3Ͽʾ—ËÔ_$éÕ4(hŒÚËtRÉÞöƒuo‡|Csï·9ýµžQØÄ’F•aѽÑÖÐÉ4Õ–Ü‘9½~ô1 ³¼º ipç}æW²?öÁµÀBÕg4Ù‡{Ò”ï'êÙÇgÚ«õ’²ÑAýÓ0d<Ó×%½Fåæ–Ñ)}N½@û±Â||STøAÎG2+¢j_ÔZ®<Ãgßéœ.vÎÑ=×O2ã)pùèF…ÑKÖ5þ8U‚.$Z/KTf|³à^0¹g×£ÝËIJÒÑãêÿéïš ¼Ö b>øk‹îçŽ×±šâdËÛr.ðI/ÿ‡îå:ÌNßÊÓ>% "*d¿†áXað|V5¿ˆÓ1þ•È;06Ñ%ì¢`hod!Â|ϹX_)ÐøYL/æu˜ýûºïD¢­Z"Í^K¤”\r":ÃG÷–²ZÙBÙçFà ÿ¥â<ÙWê''wN¸×Kú»W… \ é"Áw¥³|&Õ9ŸTe¬˜OŽØ¸èD_n2Læô»Šî¡Ç¹>ÒÃÀgöÞ…}d˜×ø¹® ²#êXÍìEÎôéÃ2Iiâ¬%š’=NëJª{ÀЙþ. î¡DöWË*òA`0¨ÞÃpè¯bî^Ñœ´z_"ãžÏ=Îÿ‰‚ß6xD×zGµË#ºsÿÓx uÜ.gžŒ¹¥¬ÙPt?.¹× í¬¦táVïï½½Ú["3Ó3Á+£#{ùÌ."¼ç_¾êÜêYäIåÕ3ÔäΚ_qï5â÷b"‹ÅX–¸`Ûf&³_±ÀÖúUj%0ÌÜs0ÝGÊŸdp€»xkerw6Ëøqä^œ¥´à­Ó—-õP™Œ—Hµ"·ð;ˆ_/[W‹+¹aާg#÷ƒ³£ÚµGÉ@Áæ÷Ž·Yî>¾œ¯ý{N…@ŠñÈžQ>ú-Ì>yX’úÒIhƸ ~˜çñHï2æÃhŸš×uÜ ½VÒÄô¨d0ÜUf:ç®N“ ‹ñVL·8øSgœUíñêB›6U]’^IêØãË‚…‡˜Ù¯[(“¦õL+—þIpvƒ|­™jcï(Sþ ψÌò‰çº<YvL‹!âO›üç°ÃÜFUîtœUÖyurzVŒ¼ÍÌž+1‡|¿‘ #fL¯Á_œ\fÚÆÇ¾˜NîRϽýXž¬Õ)öý°3~ÈÐi*ÇŽDÙØòsSOÍ~’hMÕ+k~¢YDö‹!Ä?A0ôž<Ä@?MäçœÚž'Ô$ϺsE!¨P_é†vùz÷;ewÊUù¥È~Ÿ½iÝPˆqÿ*ßÓv™J¹­‰äôœR˜Ÿ+oÄe9ø9Ù^|x‰\ö—1ýÜc+ ¢{²Ç™ìùÇ*2㾂ÇJ<¨'™Ø¥r wP1n°5ñ»|+×ÖŽ+D…ê¶Õz½ì÷$ÃK™Ðyþ‹wî<+Òcm”ÝAYUáIñ~Âa_R½Â–׿x|ºäùQ»òrögæÜ÷€~âˆðuUÛåØ$ fjÂoõ8=c§°§;ù(#ÀÏCÌy³d?*ÇSŠÙGšüú¦çÉôhdOûÚzo’µbÌf :Ç_Á®Fî95]héÖΞm*¹„]¦¥(PzšŒlÒYmóøÐ†B߉øÎ®‚u‹z0ÿô‰º|4g¿l™M½‡Íõ#Xø¼9ž}DiÃYÊ«g`‰|ñ”]HŸ•ôsò„eÃÙÊ_áy­\ÂuÓ1vâ ’»¡ÉÌæ½«á[̳Ã2T•—cô"žìŒËû‹ÍšizÝ¿÷ýNõ>c_šÇµ-—ë.6©Fš§Ð‰)ÍôLÎ ×Åt¶ò<¿2ZÉF²Ca¦óØT€£k4z§bø#¹:ŠÐJÃÌ=¥þ¼ÞÄ?"ÍÇè #‹+¿$Þ_×&¡éX¼°ÈIoè_Ítªfü"Å’ÉÈÐÛã€|Y”6ÖB~ƒa÷WQ†^²nIO—JìloX©éOSë÷…Ð[kûKßéjt¶‰ãõB.BÌ쥣Mñcæ…I˜›í<6 º£bþJà-GE ÒZ¢–¬­¼ZÒyfîzCO<ù²!Åö™}¾×|MÑ{¢'ôMÄ+ª ±ZI‘AEWÔfól%+Œt}ȱøt™½¬L@6½ú.±G &Xj×UÓÄÇ“>ž¦Ì™ Öž%€v=QòZÿ³ð»aèCO˜s3ŸÇ®¤Áv ?I´¬Ní |k*¨+Ÿº sÿ$§÷†0Øy耖FŠñ}}VïÒ^êæ~]è&õ,›±¨Î0‚Œ96“1‡/s–Äà â+ÀÎ5¸ÊõY|ë™Ã3 ÉÆ“`­ç%£÷²jugJje çg È–²5Ǿ¬Ê—ŸŽÅÿ8*¥Ý‚ºu¶]–Cšž!¹›bЯ<”ïÍóp†÷úÒX¹ö4/P>ÆÁnÜ»À]‚xôÌ!T)Eóxæqd8bßñëgMœ©«Öù>%°žÀÔZ´|®•ÿÕøclÜ¢Ó?“ Púo7~+‚åá‡ÈÃ^·bø¥µŸÇ¶´sA1<Ù޲1^^­N;sÇ™¹×+†!»}ùP|ähÏ‘ãc-Oà¦+S5宨ÇË„þͧ,8›åDœ ÊX0‘ÙX½>/—ÅS-Ú»j(4 ‹[ôÄÝòçªõ”.tš…l²(hJ‡Ä³C°ÏeËl”ãóµŸw(®Þ~Yüણ®­iëë1Ȥm™ó­Ä VVÂ[€ËäVIPYûíj'T¤Wi¦ 1]|ß,_¨J• ¤b»½ùb˜pšH3ûVnñG£¸ŸE{«Š­°-Ú¶W0­Í Õ3:M=1ƒÔ]V¨ÏÑŽÝÕ®¸ðÒ˜ÛÿS‘ ,ßuœw-(Ž=föhຣ­ø”%Z[K8óîIôG£•°%ȯò:ɲ7%Ë@j kœ+éWËx±ÁöUaQ)ž¯bÚC3ö±TqY0û °ÿÃ_ª ØlŠp¦‚œ@¡®õÐ7 ¢íAºž¨Øl¶4ÊwåhU$ã ðMÃvùQô6ý,Ñz·Ú8-šé”ÑJ$DC³ÄµGPo ê"÷PÔïËÜÍ2½x0˜œG°fm¬YtdæðÀ@†·X »ñjÌÎ;ǰ—ü3Æž.ŽO¡PWp±±Q&mK>Æ(M†BU¸œE½Ïa?K ^Å6ë='Çþq‹,>Ìä>îÛJiåÔ _®Ç’ Ë +S°Ö—%N P3Èׯ²´¥ðø?$ôCÀ^“Þ'ìýÀ¿ßìûL‘´\A T”;AˆÅ›“ôõ%¢}Éa¿½9¼Ý[¹¿ÉN•ØEt[À¶"¶™qвiiF»!¦)•èÌãrD’=®¾¿ öIG\|¸¾C uª5 ň+]Ÿ™+ÒÅh‘+ ]éÌ|÷v¡{ NÂØ\,¬®*CÓõE´6:=J@S_T5Ð8Šñ’ó'VC‹·n(@)MÑrˆÿ7 ;jEö«µ]ÂÌgб"ÑåFæU¬r “ŸgV²BÑšaÉ:¨jtj]ÒÐìF{@hl½å.ºo7™ìVÄ-2–Ì´×à„w…¦ƒEŒ-ˆ`—Тv‚lh®ÌËÁ‡•²Ò.˜«y{ÙXmQ[è›À’ÇdÅõýBnù#ÁêŽ:ÛP€T:„™=[¯Dî%G=.`BAÝŒ#Ü«‡øBÑ”•uÄ6 •J ÖzÐÎHrkâöj†NlØÜLèNÜ£é]p¸Xx¤zfR‰¯UJbõºÝ˜ÅúÚ+¥,{œ:Åv•—IHŽC¡¢°OÑ>¿l£GvPw`;©ã®vH(æ/%Æçõ¾[wx‰³ö8pN„+Ñšf’.š’ ¢»ýÆÒ‚µöÌ^×d¦ÍêõkZ“èY?‹M.[pôd‰;µB… [;¨O~˜Ã›}vÙVï`á¿k*@ƒSÞN ß ÜvÔú¦%ÎÖÁ¹‚%£häXï„´úë¸$Ûš*A_ŽÚ¼;r|Hcå­‚9ú æ\çµ±ö×wX¡.5š*Uf04}$X<7ÇéN$pU€Š±Ï`ñ^Xü÷£ê S®ö&ï5'Î %(t…¹{ƒ–Àº~jtŒfL–ƒ»Á“k.õLk³Væ×MZú ÚR/`=ë$È0Œà°ÿgØã5½ÍgCV9ö㣱øŠ;äjéðk‰ª§¹*6ˆÆ(U„NR*C’z×B5̱¾2„ ¥Ð=Š5­wÀõ~ ¥µBí^c`”ãë!þÈ-<ǃTtÍˈáQ`7ÞJÐ_^Íšç•z§zŒûÈÚŠà—ÐÎn ³³žòäNMO:KS=P¨Éîö v¿è Äò3­Á‡VÌý˜ðfÈìyˆÿq,ˆÎñ¡5]cÇâéÀ_uH¤ÆþV›rfiÙá7ÂU RÉø q,]Õô·>Rß<Û-ÙÀúkoºPz+3'–U§ž§ò™pgA‘[Lñ;y¬ˆÍñ£uϨF`Ïødàö£¤uëd‰ê:¼2èU„`ÆJ¢’êéÖc¥ÆÖÁû R¦oVšöx–ž ¶…lú>ß:ÀŘ‹Æ0–Ë4°‰ÎîmE¢Ž 8ê aÿ,âI`qÔá×XAkŠ ºÓ«‘jHb¡¹Œè+o} + «×é‰ÝÓURm!ž±²§lÚƒÃ>ÖÁù¯!{°ÿX›‘tü*@‘å\‘Åç›Å‡!¾|Ô!Q« ‰Ö³Õ¦ôžz½.9Fî!øÆúÄ´—Vsòm(Tü^µ•w(¤I¬PWð­Xª1ˆÅÏå\¡«<ö àUÇê¨ÔãXZwê"³x,þ,pà¨*ã°æ•¶ãê&”¬vûÅþò•rÕ©©É¬únóJ Á„DV_‚Œñ†— Ux?+ßu„I²?”g‚]Â1<&õî¡•gÿ‡NÀâkº78B,‘Z[m XQY|+÷{å®PŠ˜Xä UÏckR¡vÒ­ …\Gà³ÒÒW^(K_1‚/º+ÈÄÝJÊ›zHÄ_2g§öÖ;B ZÍtå[‰³r«Mýû[û„ª¬÷u©ù™ ¥tg‹úLQšÔiz)û ÌÈbqú âŒ؇ÌÙ 1¾ø|ýA6àŒ !ü–‰Ÿ0ÙéÔŠpt†sÕ2 å³FªtÒîãÊ2÷Á:oÙ— s [þÛ£ú5}{ÉxÝ_=Ï[¬Û#Ûmní£7àNVà›¥"œñuÀè¨è›Ÿ‰Ö°Üu• Žãÿ:ž°Æ[¸4KSn+B½î(…NI Î o!ÞSâ¿ïŠ2p·V€Îq²ÿJ ; ^LO‡Õ‹ ÖÁµKHäh y׌ý=©ò}}¹=JÐb ¼Å·Ã=W‚=×àÝ…·ál(Àøqñ¿qv:fçýó…DJ敦 |,Qê Æ09´*6}¢. ~]Âà¸OàEØ'ãÀN‘Åçפ£Õ7àøÄHÅÓ±ðëÀåG䊧SêºTé½A_\ ÄIY$W ½’n²Ø¡<­‰ €/?mØ ˆ_‘q}BÞ¥ ˜Årß”Ùï€ ö&{-EÏíáC¢¾àkË™¥µvÖIÑnp©aRì@¢Ø@"×cöG’=x°,·7ÛðY…¶–Æ‹AöK2Šøà© ‡­'‡R BÏ$жÚTºbeó¾EkM¨ÀŠþ£iu¬ Q(•ÃDã`ïÅx—Ä¿[²<üx>6àðŽ‹‘]L°ßÄ»“0{¦'"=8{fO`%K”nµAkZíTï>vU¿±UÓ#Šq/¥¯·¦‘}¯7ûxÀ>Œé'ûB~Ü› ¸3Ž€wï,×îz8¦ï@<˜b?×½RØY“¶Úhí[mê$XÚ»oŠ‘¯:¸$:>cÄOú<ز0b9èîxl(ÀÑ;®)N{7æAQ§";Ûà,¹O§ œ‚ØØŽ1W}KÔdú$Š%àv·D¸ÎÌ®‘tµ™]!ã2d_Å´·f†\Wóìn{“6àŽ=®®C|3gŽ…NS´“¢c7âDí”l‹9¶µ#Ô¥›ÍÔ)±Øgb?ØÍB7–Ýp7WcÜÚ}sÛ¸þãžÓlã²lwßcƒÝ86`ãØ86`ãØ86`ãØ86`ãØ86`ãØ86`ãØ8Žóãÿí ðû5]%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbtEXtSoftwareAdobe ImageReadyqÉe<IEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/favicons/favicon-384x384.png000066400000000000000000001521641431412030200245530ustar00rootroot00000000000000‰PNG  IHDR€€¤Çµ¿gAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“€IDATxÚì½y¼,wYçÿþ|«ºÏvÏݲ'„°ï«,‚Š‚â *âÎà2£ã.ãîèÀ(:êˆü\gTD@vd“MÈb0@û’ÈžÜÜíœîªïóû£ª»«ª¿U]}ö{Sß¼:÷œÓÝÕÕµ<Ëçù<ŸGfF·ºÕ­nuëη\wºÕ­nu«sÝêV·ºÕ­Ît«[ÝêV·:Эnu«[Ýê@·ºÕ­nu«sÝêV·ºÕ­Ît«[ÝêV·:Эnu«[Ýê@·ºÕ­nu«sÝêV·ºÕ­Ît«[ÝêV·:Эnu«[Ýê@·ºÕ­nu«sÝêV·ºÕ­Ît«[ÝêV·:Эnu«[ÝÚòoæÍ·ÿ‡{êËøÔA>ßFx\êIz1ðŒž@f(Mñ½É <‡ Éð1:œÌãI±^ŒK… À@ÂÌ0K°¨GäÁ0²% æ"©aÞƒ2ÜÃ;ˆÖ mì ›AAáMÙw#ß–eûâ,Åä}ö¼Îá fûõñéy˜?ÏÇуœç"y»‹Iç#›m™ê¡È`Mf×®÷âóˆÏÊëàoE|%{‡À'ÈE˜÷HࣼGæ³c–(Ê^¡Ø0s0z>I0'ÌÅ8ï!²dpÍbÌ¥+Že¡£©<ÚÉNñd÷÷F$‡™ò¨HÙyÌ>7:¥X¶yðN ÈÀ yá"O DCeGÅ ÒÅ òï°(E^Dæ óÂÉð.ßÏ,"»ÖðÙ÷1‡“1ôL,8‡7ƒH¸Ä#DdC$±C©Ç œe×téXXñzÉÂ$ð ó˜ G.»n"vŽ÷†ÌaJ‰è‘à‰ož¾"ÖHè9‡K]v/ Þ³(Ÿ" ç"¼CKYP31°„žEçׂw£]‰ÔR†–L®õmX"ûø¿¸pk–=ËC‘¬Å˜eç8ZL§ï‚]Xÿô¡çìžèÖi³úÈ]ˆx8f=Ò\tž3 ì37ÛC)»9š¹>Ö ¾bpà“À{€÷_À8A7„®[Ý:õ3€nêËî îû0{.zøøz²èjããBdœ‡8ÜÃg ã“8÷&¤·bö.Р;ÝêV纵£vŸûE¿.ô-ûÙôV‡éq_\|_3~Þ°7aöB°b°}·ºÕ­ÀêŠÀw.ÿŠôgECîûý;¿9(íÜ=û™>‚ôœûÆ ÿ·Ît«[èÖýÌèJßjÒ§dz¦²êõ.ï—÷-æÜ[ÍEï1¹'w5‚nu«sÝÚ ;+ô»¯¿W÷S8÷8\ôF‹¢wíÎ^·ºÕ9€nm|…‹^gqü«œ aõ8+Ñ×Y¿éeÀÙÝiìV·:Эy¿x èÛNEH%£•ò½æÝ§0þ[w:»Õ­Ît«Ýzð>¡‡ßåðàŸó»SÛ­nu [õë>À;÷8Í.Õ§€.¾¹;ÅÝêVçº5½î¼8|š~¿s,ŠßŒÜ¯wL¡nu«sÝ*G¡×—œÖßR¹ß–ô*`i×é¬ÝêV纵›ËŒEÐëȰÿ;Ë·~Ò;‘»¤sÝêVçî¼çÐéo%uº_¨ŽL`3=¤G÷âÞ¥}Ü]zF‡ u«[s®N h×Ùüm%¡Í&Ò¸€Éýæ¾÷t0"“/Ž*? 3¥bA’?ïCç.X_è½ÿXäÄÿ¬Îøˆ¸ÉfÖ»‹°[èÖîXç°Èåý-Œx‘JÙœ§_ÅE?yª—uQ–ûý>`MÙÏCÁ ©`] ƒ\j?‘1!q—ÔÜà6§ÓŸûθ†l“éË‚“À-¹c¸©ðïõÀµdÏûîzíV纵µÑc½ à}s&`†Eï"”ê8~w/ãߎ \ãr¿®,Š?)8ÁÎ8Á1ë. Ëù¿^0Ì-o”oc”(Ï\þõ£Y¹k¸x$ÝXzÈ ò¿È„•ÞcÈ”îP6×à¸2§ñ9àÓÀ€Ï·Ç:ñºnu [÷²ÕÆÚC€ì¥ÀÙŒŒþÈàßÁÑŽ9ãvwDpÌe¿`ËüèýÊ/Lg°\ͧ J¡‘3µÊß*?«pÀƳéL$ÿ9VF§=œïÓƒ'§Ì¦%|¸ÏDZ±sø,ð•îºîV纵 ΂ûÊôjÄÒ®_<}›À7—…Ì7öŒÛ¢ÌøŒãÖòè½o“bîØiT wÑÈ3Ãø¸fEþ5Æò»¦Õh Nnôòî…q/=MaÞ¼¾,㳈.Ía¤nu«sÝjŠ¡i®HPôbïÒÞá ú¹ñ?æàÚ83ö7ÇpclÜá q~o¹Á}V™U Ò®3Ü4ÞÛù‡œÆ”Ã(îcÁø»ŠÃ(½_ãm8¯‡ì‘JõHàM¶†×åïG¼#w G» [¸³/aQ4•(+ ÿ ðŸvªèÛ3X´Œ‘sK ×÷Œ/ÅÆM=ãh”q#ƒE/öY}t_kü™Æñp uÙA]FPÞîô±š2þÕŸ+ߥù”~Ö GVÚ+9¸E¡¯F|µ¿`èàÀ«€÷_것nuàΚŒåõûÀÝnˆ§WàÝßÁ—zž/÷3˜çx4‰ªc`Õg˜yA/Fòša4CÆwý_7ÃQqûÐëËÎFmðþ°ñŸ‘ÝÊnFÏi¼OçÊñTÐS ÀÞM¦çôf2¦Q·ºÕ9€;ñúŸÀ/o‹¿É/€%Ÿ…œ·Gðåžñ™ã–Û÷ÀŠe¯)kÕâïm"x×%” ŸP´Þ`ü2þuÑ~ ãßù¨qÿßtðÞoô1}#âçw1>ˆx𲞄nu«sw¢õ?$ýÖ–#MäðMñ|fÁøb>ß÷Üî2jfl°è'¼û&('øœÕùõ²lÔ57¤Ôè,dÀ«ÆöQËè¾®¸Ô÷|nѸ!6ÖœXN³‚¯«ÁÉ)DÿÔ@?uðLSU5Eß`oMÆßZÿRöRdúÌ*ö6ÐMC†_5ÎBM!äĤeàif<­§è:œ½Ê°—u·I·:pú­_ÛJãïrß"¾Ð÷|fÁøl߸=öx`Éû“ÈbÆ zµ|ý<Û†æ¢o›L£)òwµ0Q=ÞÏ §ÚÏk¨Ñ¹T‘8s?mæño2^¼‚ŽIԭΜòË ýâ'·bc#ç„àŠEã‹ ŸïÃPbÉŒ%/\ xi€(BÑsMôõ ›êöËðK}§¯¬¾Ö  ~O ƒ ÐäUù×f3 ¥&H'døkѯ e`HÂÁcIy¬áž öàÏOšèÔ)ºÕ9€Sf D¼ì©›ÝT/—PøJd|¡^ô\Ûó ¬xÇ¢Ÿcoµ×1sBޤÎXÖáåse ã_·¯.ù×9( œ™'€Ѽ5÷Fû ¦Žéè{ë|Ð3½ôãHorž?1xG'ݭΜ ÆdQüjÐÝ7º‘wÝZ¦½sù¢çò%ÏõQæúˆÅtšïê0õPV }6ï&¦*‘0jgv³—j"ÿ2¼¢I“WÑa´‡4oŠÈ]SÔ_™fm³x lÊAÙ ¯£ãÛ"³oóÒ¿ û3àÉP»Õ­iÈ¡;»¾~^èý5þ#¹…UǼoÙó÷‡Þ¸ê¹)†ý–,cýd¦Ö¦ ï<‘(rv5ŽÃÑn­s¡½ñŸ@OÖ¸ï#ã_÷Ù³ ÷¬h_£^ÅôƒpšUžÏß7† l:cu%kF`õs#Ï#×ßËôàç•îVëV—ìöà ÌîAý‰m¢»7¶Ì¸qpÙ’qùrÊ q®¢é3£o4Ðg@&ÔDÿªñDm>£±³—fÊgÕ1„á :g1‰þUã´Ü¬ì¦ ó@9Õ}UàxÕA='a­Î“¬6@¸øCƒ_üð÷À±îFìVçvò9Ç¢è¿#ýŒóó+zŽèœû¼8æŒË–Œ,{®‰EƒßBn!þ5ƒîÙd¸ÛI©‹à…ß v^‡§Ï(ú#ÿº¢oqßÔ‘i¼bó¨ÆÐ71šŒ¾fûZG‘}æùdEâ_Fü Æ_'º²sÝÚ »/]`Îý.ú™ÎØè¯}¹RÄ‹ž,{>ß϶³êë1wƒÛg+’˜¶ÐQ“ÜCö?*LÏ¢\¶ÝO7#òŸåÈZÂQñÃD¶¡HÖ1*lã"Œ?4øïÀÿ^ÔeèÖö¬àëðz†IOU¥ ڮżÀ{uÏxߊçc‹C¥ˆ¿ÎP¸ñì+k—LoKAcçf¼Ï55A¡Z(Å5Q>Û4{о®Rô­5Ð0þ!T°ÐkÍ…e5ý&¡¹&†RÃd¹|_îü‰‡_ûà/»ÛµsÝÚÜÚÜxØcqñSpº«m mÙ”Øçávïßçùà’稃¯ÒÉ› ál¬ø[5þ!Õ&3¨Ã÷›†¹4¼YÐÏä5=ÿÚ÷̆ZBã`æÐò™|wk2еq‚šh»R½S|N$.4Ü_? <x}ww [Ó«\œÿ{ãÒù"Zîfâ"Ð=Gw¡mce¹ÁYÉeþ}ɸtÙóåž±Ï2fOäÑĺ©ÿ&Ͳj#ÛYIMÃ×TRÇúiAù,âþSÇÀ¦³’¶TOWù´È(BuFÃßÀôTC”ߪÈo ×x°<¯3xâ×éd&:pg…m .Æs7à!À%HDñyòÚ¬šè•î>ͤéÍcüûy#×U=ã]+ž+ yæºá› ³mV›É]³½Ì*0Ïë#g5¥U£ÿª²ç¬¨xžÏkküÛÊcÏKÈAI³¯k÷]ª¯|#è >« <¸®3 8Ý×ÝÇ@<ôPy‚à{ï,OjVš½}Õ¨†¡îÂZ9)œÖ,Z@DMrКùÔxÕp<æ2ü-»–¥æójÈEèG ž <ÏÃó ’ÎLtàtZ?€é[÷­ÎŽÍ·gYžv,|¾g¼q5å3 ™380gg˜bõÆmŽÈZ- £¶ì×`È› ÉÁmš‚|ÿÒ_›müÕ¦“·häm6˧ŽÝ3«—¡Îè7é Õ÷¹ø_*}Ö˜~Ü3€_þ¥3™8•—ž‚ôã÷ž$ÀÚÕµêa ñ–•”÷¬¤ub5ÍN޵¸‰ë›’Ôø{s4)R²ÙYS™ZÂ?óÀ'¡ýŸ’@¨vü6è훽°Ù}Ûãéfd µÆ¿)êo2þ|¿QH›0ú³néþf¼ÅÌ^dð?ÀnèLgçNµõ]’~ xØ^Ø™1Öï᪾ñÏ« Ÿî{–LSœ~×`x]Mô¢M6âÑïCÁè‘QO¦Y!ú˜Ëþ úž0©…ÖõuõûÝlüC¬7£Ù«qrÙ yæjÁ78ã`ªðláŒÊꡯڈßê#ý¶óˆ5çõYݘ¡ÿ"ø6§è×Sã/;±¹ÎìéefÈxâÏ$=v/íÛ²ÏøùïÜ—ðŽ•l×~/"&Ò2moXµú¹žúiÀºË@Þý.Šó‡â.CqØÃ¸¦oÜÐËFo‹`IoB»ýª1þ ÆÉµ(dŠ–™I’§–YKSä?‹âÙùÿf ÛÙó\S#sÞPx†‰¿ö½B? |¡3£؃KXýªÐoaôöJÔ?âõßÁö ¹|ÉèðuðGKã6…_k…0 {eÑ>dj¡à’ã¼!œ3Ìz †Êf/Z> ·Gâ¦Ü7Åp[d S\PØlš ÖÆ°ÖEÎAα۷BùlnªdSMtO«Éx wuM_ .õkj0äVηjø±¸o±ôõ}$5~ ñ‡lg‘¬[˜s­ ½¹oÝ+—åH§ŸW.z^³?áK±ç`êÆ…ˆÍFjõP€J2 '\fÏLà¢ã^qf’9¦XsY„_ÜÞ0ÿ€÷Yƒ»Kœpp[$®ï7EÆQ¦H Ù0š^›Ì¤&ʯÊV7Fæ3œE]äß&³ F©«ÑþiaüK¿Wõµ5Æ¿Ž1Å&®¥YÛÔ£V#Ù8ñT3~İOw&µs»½ö¯=i/Å$Ëy„ÿ–Õ„Ù—2¦ ðàµe7qñýiÑ;ࢡ¸Ïš¸û +6 ŽºÙd˜g²lÌär¥ˆ[â,3øJdÜÃQe˜Ë/4çÛªPÓ×´¡Uþ™°~Úf­èž5NÁU#ÿ s,CX!ƒ€|‚ΧaªWH'IsÀ†jõ7½¯ú9ÎôØÔø÷+d‚sÝêÀîØY¡7"¾v/íÔþTܯ]MøÀrʲÏ4|`v'gS¯¶\Ðý7²‘=Ë ÿC×ÄÝb)Í"ý“íV΋ÅÅý9;ÉœÁ@âH”Õ nŠá–N*û¼ˆ¬øY“Ñ d«ò™¬vÂX¶ÓÌß)Zç -ŸìãšðþÈgVÄ?Kn6WüÕ ‡P79>bE¸?3x²à™ÀÕy=Ý€öÊäѱðý‹`oÿ"Þÿ…¾ç•û¾°àYõj(œjSŸW5kʰþKÖŃóˆÑÃ@p,Úúï;Pöp‡R8œŠ‹pÒà¦<+8ÃWú0pÐO³cäftèªå¨É&XiêÛì/Tgüg‰§Ùø7IiO½ß¦Y`MŸÑöù¶N>T =W³?Oî)úŒg/ëLìéì{ 9Ð ¢ý¢Lß³WŒÿ¨±ë}KžWíOXsY&Rì3à³ ÀuˉŒuÁ9‰xÔ Ç×2§sÒM0úí\^°^Ø·¾‡» ÅÝ=œq[ ·÷àæ~öo’;ª(mé;6(}n¤ð[§ÙzO“ñ¯ãù»y Ÿâ6EmÁ¾6â·vqž¸­øuêÔFMG@Ù!dÇD‡—šìIÀOÓÉMŸ¦ ñ{˜é÷ž­=ú™ŽOdâŸ÷%¼e5;FûütÐ9¯dC›ô}=·8){,â°k2޹­mšçxŒh¦‘‡ó×àÜõlTÕñn^€Ûûp¤'¢Ì˜ôühŒeÓ1«7~u¸¿Ñ<•ŒY[ƒño̤pãXò‘µ›§ÜVßi®&15;*Y@5£²MU? öŒï»RtT¡Ó Úß@‚(þYa«{Áøfó¾ò@Âû—‡~’ÜȬ¤°:ç Ö"q4†ÛúÆ‘¬E5Êkp”F›Q”Ç›CuÆ¿qž±5ŸŸYƪ»¸Áq5~׆î:ƒêcÊ¢L¥Éœ¥ŒÆ NÂ2æÙ¢“û3dÃøiºQ”§‡ð½Þ^00ÏÜMã?*öîOá }ãï¦\ÓËŒD=5o+vŽ:8?ï:sV’É6ì¹TÛê“&3zÎÀÁ¡Fp´G£ 2:euƒ(‡'DûnÞÆã=cJÚ8»0k4þc# yÖÿºô#┎êuf㺂µ?(Jñ}›À>Ê·ïU‰ ŽÀÞ“oè¿ iðtÁÇ:ó{ªg»ofÎú¦Ý´i1Yäú±EãÅn‰C‰ ÓøÚ(qäS1N'œ—Àw‰8œ”¹ü{Áè[1°ôœüi?r ‚ÔeÿîÂþ$s'c8îŒQV[ðd} M£$i¡õSçXþÕÂø+düë"kÐy²zã.µTµùa Õ~°€ ŽkäÄ‹ŽÀ^WxÍzr{ðšÎŸÂ`·a3žŒ¸Ë®ÿ\Âáß–<ÿp0eÁÁ¤M)zóÍ^"kÈZñðä£g%â·7Ê2óÆV}º£†nbS襰šdÇ`ÍeQ’ëYKŠf¡¯þ-ä ëî‡*Õ³ öq-}g¯ƒyÚ†µ™s¨JraÓNBG +cG&ˆÐ²¡WüðœÎ Ÿ²`—Qf¹Gí–më,yñ–})¯ÙŸbƸ«vÞBnóoámx²F¬ÇŸˆ¸d Žî%ã_ ø=•а½sð*”¿)†Ï7Y–-yF0´Ì rx¨—…PÜ3¥ :GÑ7”Í9M¿¶N•t*ºW͸L›Íšb´PÔøúVY$Žê±.8Y9˽^Ƴ-Sç}:p´3ǧ˜°Ým[¹Ü–M¼y_Ê+¤Ä+6ÝSµtóàþ³^{ÂÁñ°“bM§½Î6–3…Qês¼Ù,ø¬ë¹¯\þÂeÿšêÅÔ¬U[s³W­ñ¯1š!f“ñ¯¾Ø>¯ä¸Z6ÒµÍ, À@Õç­ñ+ð{±±%”‘Ù8 ÒSúDï7xŠºîáSËŒ+@»³.FzØN†½ ñºÕ”×îOYòYÓ—iöxÂqè³Áè¬Êe¿Ç ›pdFÿŒ¢ÿêoƒž‰"üc5FȰҦ¬º M^ï,sy³Y晊ȭß¿îYΛ0ÿÐä³b´¬ŠcRÍúо5½-Aÿ/>Wt>£ëÑDÿ‘ò¬UŽiñ¼Iº?p9Ø÷oíÌò)âÒ]$É8Çùµ{=Ë"ÿ7¬&¼vJ?›_ºÙæ‘»‡à•©mž“ˆö¨ñ7æ†|JQ¹+Ž@ä:8Vñ’Uø¨ ËgVÄ•¹cꭦϓ³I¦*LçÛ:d¦7?aðWi>À.ﻓö¬Gó¼a_Ê+÷',šX°FÄgÃðÏ,‡0’–>#ÑÞàú‡ xÉb[m”iš.ñä¢ñ&P,®PE¢Z;eÙÚSiegPt*ÎÊø1#p•S:z~ÔïP̸b¹ÿiØE?´÷ÒÛÎ.À]5?çnwzi¯xñ†Õ”׬&,ô+•±­ÚÖ¿.öžZÅ0|‹|ÉèßÐfMÓ>f +hÚ)„®‚#+×÷Ô´°Bô__ÅýÕA‹ÆŸæÄAÈHÍÃo´×£U,´*PP. À;¥&2g•L@eX)söúAaûÍôtàdgª÷ `wÀÛ)G]4þ¯Î1ÿe=Ë ‘MâmmUgØ=ÄàRà›€Otf{¯d»g®l×ÙïÅû—=/>9Ï¿ôáË4lÓ¡Ù†©’É@7Å{¬`lû·\®¦m`v+E!úŸåˆë ¶µ­’CQ󬂺k-düg‰5²Õ~¬]¤?+3À*ŽˆpQ=“MEù6ý½õï+ìÓoîÕ™íÎlÛ:ÂÇú){ !Ñd˜û<ÒÌéøµÙ6­ôÞž‰›cã–Ø¦é¨»íZy_‰þ§ ¾Ê}ú©Š~PáõIÔP„]w3¨ö?uS50vT)ú–¢üjCZáïÎÊÐOÝ늆¸lÜ…”=põ¹üuÁÉ0åÏsϪf,uN@Uç§z£Tp¦‘5Š=p'.㾑é´bÓ9€Â ßçÅ5=ão&u™Ðšm(š·¹ü¼kÁাÔËäöJôoUŒfNÇ`šï#CÒ£ù¡è?¨ÚTümÊj f@?£¢ïȘÖÍü êýTöÉÑ ù<ÂX\†5Ëg3²å¼UBC&U› ÌȪßÅ`$*ïç\Šû"É}0Â=!sS#g%¦æjnbE·õŒ“‘Íœ±Ð9€ÓÀøï÷âgüÅ¡„ëâl²×<ç½ÑÈoR•1ĸÏ÷“.<>qW3€MtWÂBhF™28q<#ý×õŒÿ™“.Ù–S?kx}#3¨ò³ð‰5f1Tá(§éidÕ¤a²‡|[¡ fMЬ7¥ã2G¥`)VüШʼn\L¤ìáœCQ”·#oî†ØŸˆwN¸zɳœž¾ÍwzàÉ`ž“2þêàÏô=‡ýÆàœY棩 ÌÍalFű%Wõ=7ÄÆÍSÒ‚ßh÷/ßqùmÚn% ÛOÜôD«Rô¯°êg(ú6†àŸ©èŸž^à`Ä„`¦Ôàd’³n1BÎÁ EëIåT!˜<âWÀðá¥:¨8g 4ƒ`ôÆ©~kÎÆõ 7·ƒ+“Cµ€qý@ÞÂ6²ƒ\Aà®s§iä¿`ê¥R.[òJ5cbÞÆÅܪvi^ ˆÐÉ;áàãKžÈv¹'lJ¦sþ  ÚýL(j¼òHt,©)Æ¢zˆ¦õ¹š¿“•æÚLá6…b ).ñ]÷ņþ¥ñ]ö½ªÿ˜ ^E¬¿,¾?>oþøZ¹<ŠÒ«ûp|ªÁ~ÆÀ…‡Î¨ôY5Ù@]Ç5õõ¯y3«Â¿çäNà¾tkC+¾3ùØçᵫž·.§ìOµ)xfÖï›Ñi½VˆÈŒÏ÷[b8˜ÂÚnˆÃÍaüÇ/ Ñ?¡Jÿ mcô·Ñt0‚E¬R£¢ )²mIû¬ã˧‰ ¢sVˆ/X}‰;sùÓ/ý0N;ìøè¡çœ_rðÛõÉåßL?qëÙÄnÊk UžV¹HÃ,R@‹´N)ûÙ[)éSUó??O*uþ!8ª¼ÞÂ÷Á= Þ<øTgÒ»  µÍ:ŠË–<¯]MX2jaͽå­[³>{Áà+‘ñ¡%3í…»cŠþÛnfÔ=ÔŒF' Gëí4~4Ÿ3·ét¯©* SüúñËXŒ.vg,ýݱþáñ6|¦¦fkéõßûð9,Fÿ¾+CW#ãíÂÌ yúx{*|‡©Ì# ÔdG <lS}¥éמ¼XìLúf~Ë㛢3²QŽW÷=/´ì§0ð2ü6æo³ý† ‰ufÆÑ¿²âo낽֚͂ßߤÑ|½êa!¥Ùû;÷MKO½ç?÷v6ZíC/Ê"ÿÒ¾g¿ë¬%âóö]¸ÿeîŒÅ¯(õ™ñß‚f¼¦ó&«q2ªÉ ñ¡ÈÞf@pÍçVOÄ»B'$}ºC@+É^FƒÜðŠý W.ü ±mNŽh+¨˜ýé¾ñé¾±²“}[Pü-FöÔ! a„ý7Ö_l ‘)<×Â#Œú¬¨Ngê­k ѹûXzâE/¶CÜþ>Kßw?¢s–±d0ymfÑ÷‘5Ò»»õvó‰kíÈàÙ[­a4ëzŠKpÔ*» I[»ê˜Ë‚Ü—©¹ŽS<¼Îxºp¿ÝÉHï´‹+ÙHœ«&Þ¸’òÖ•”U«kÂØð|  y`¤ù‹ÏªdÙlà÷¯x.J"=;¦TKÿl‚(Ò< Ž ðú&úçH«~ÝåØ¿Ê‚ÕG÷­¹ÿ ìŸÐ<àR¡WåqÓШ!qõ‰W|úeãˆ?þŽîà ¤†?²NtÖ½3³¨­çÐ%³ýYŒðŸ½ »å$ôw  Th€óTà'ämr)”¾Œ¡£*´3†T†‘' ¿²d)+8G¿î*/ÿ7YFäéÖéçæ>««^|ªïyåjBÏDßZ€-‚j¶FY_Àõ1|hÉó ÇÜßö Ú3LB D¨ÜbyÁÀ…±ÿ¶Ž¹ñ˜ÚlH§é=³>³è<â»@½[Oó+܈/Ÿ³‚ŸµÂÒÃÏ%:´„%žøk'ðVû¬ýõøë¢þÒ Fº1U˜CU½*boUȯøZU†Ê³iÔ™ÓvfÎþƒÔ>Ò%Ûävq$ä¹ÀòÇû=ôÄÂ=Ï wÁ*6Hñ·œ$½òfìØ†~Œ{hÿvû:D»C®òõ§újœ@ãñ®°~`Ú„à “Ïto°¿=ÅæÐ†èÜÚóܰà[¡§òr›;ñ¶[óܼ¼x×r†ûï÷ڲʷ¢Â6šÐ€ÍŸâÇ,y¸9†÷®xœíÎìâ*GôãˆÙ&3 \^wdõ—ÿ}ü\A,­(æÈ ŸaÈøÏ¢äVøÿµá­…\M¦1%ú‚”*ÛK¿| N a-“ Ñr}ùZO±Q$í ýä­ø[N¢sW`µÎ]Áßz‚ôºch!ž}1¸°¡Çf*É …§%!BÙ”fe½stqO1¬äž,ýïT"V…T||ÅóïR$§7€´É‘»” Iwks¥f Ÿ™`ÚËVSb£µGßÉÓ®mØÞ²‡+sãá'ÄÑ-†‚œŸáæÊ òH7gM™AóÈú¸3"²¨ûD‡=æll†C8˺pGÇ|˜{‰,{ÿ(ê \~ÎFPÏpLàž¨¨ZéËÈÄ›‘ùAþóøÞ,´á«`Æ?k"‘;þWY„ïˆ÷޷ɰga™äâ¼Xíc¶ÕŸ­ëT „%H¿tä¡v2}›–ã_Wì.E#vŒ€–ãûØ ýoÉg¿òóvÛzúQƒ· E/EæŽÍÂ\š›ÍH-ë=óÀCóžËìúÖ· ý$ðÿšǵ>½’î{Õȧ»±Ï÷6çÎkòà=ËðãWìO¹5‚Ãs@?ç¸f£ï¨Kø–Ø0Œ(¿£"ËŒvˆ®£€fûÈH»JñÎY`ÀºmBµ%„~f„çÌ#Õnµ˜lÍYƒÚd#$â!É•7¿‘µô-ÑÝö߯ɤÏÐ`-A}w<ýäW¾ÎéEvl€£z-)‡Ð⪫P8ƒ¡v›ó9ª T6WǪÂCSìŸhgü{5»¨¹áMñóDú>YúÑÐ bƒc‘ñÞà ñ Ø\ `Wp=´éÖY·ï›WR>´äÙç7¦¿¿ÛèVï[¯0tf„÷á¸5 q¯õøÝ—9§Fͺ܃ÎhÔõÚÖùH¨ão:ŽzÑ7'—Ý@òᛑç zìØõZØ ñÑo¦8”*ëµÍ¬á´ÌSÄjÂùÙ áØ–½ô;àžÒtžWR±æü·»ì¼s¾1«)aKHcãšNÉT\Ýó¼,‡~z;˜ÆJ—ʬ}úéæuh4½ØðÖlsÛ­Ë8ZQçp\å†zY?Àɥì9N Èe*¡M÷XS底W_7¥ä]­¨ö÷u0Jo‚hjêm  5|N¸í¾%‰ø¡û»ªS÷yíêÎ"'·}4Pͺ &X£oÙÅ(ãk…Ô„ß e¼f5åæÈ8{ƒ _{Ò!Øé‰oÇöÚ@L;Âþ²­ýÞCÈAÎÍTÕÿñóQàúò¹ç@?õQzå·M`û›‹þ'_V¦ÿc¯R[ñ™ý‰xÍ9n\ð¬$§?´©*®ÃÁgé¤)ÃW9–% JÌU䞦%ð™j FLáKžw-{ö{ÑI@ÍÅïág§©¶h§K…õÍ8õ­H‡ cƒSƒŠÃ\͇kÎóe›ßÿÍœ«ÆçÄÝ…=ÇyÃyÆ~ ·ôŒ5wç ‚ºÝ7<†K…óÂ¥Fdžh0 Z/<Cœçñ o¯‹öy¸96^±šŽ Á[q/i ™fE1soO[ø]´ußŶöXjÎÈqË òMò¶ñ{eî«B?Õ;>PÖ<3NÙÚïØjó¶…Æ‡è'’È=2‰$†$†µNÄ¢7L†òâlà~§8´'œœ+vŽš¡Ôã’—z\š¢4u˜~£éKô€7¯x>ß÷;2àå´”ïÌßÝvwß´U_h– ªjœÀN^L¶«ïN¿âåð^âX »½Ï¾µkiDšD¤ÃŸF’¢_Vè÷f–#‡ûø¸‡ûõŸ­lèsðúYñð©¾ñ–•”}^»h÷ftPÇô9URÜ"~o[xL¶:ã°müìMAEš±Áœ&³×î ‹žîɆ0D"±?½­ÏÚ°O:=z7úD¸«N“L`ÚAc.‡¹è9u¯Œr0ä +)·FFß¶× ë8¡E½¯ªJbÕUEdL€Q_@D½.X§«~š,;eb—8†ÐÏP>´àÅ…) úCú.!޲Gä’ÿë";é-z«™ÇðÐ)¼öæ@FûðŸ$û‡¦—LÅ¥K)ïÎ ¿wæûÙiáB†Épõì6ÕÜ4"—Dª(r’M‹«¥ Í²Õ—~Ó4¶½”…ìô¶6’„>°Žân:è¬æº->éÖöõ[šëIàž öZ€cΈû¦ž«VRŒØ„²cZïÿƒOz¿ú¯•óߌ.N'7Rç¶Ì¢ý”àÏ›^¶`p$2Þ´š Üîè· |¹oGãç ›ŒJ¤0e+à È­ŒV:º÷\y¬¢r‡aô=/€>d¿ç3”kEl…C°†Ìckú ¶×9l©ƒØˆÇ©¾§èð-ðšºL`³'²Zq·Í_û›7ò3sçGékÖ#ãìD<ü¶E>xÈzZ7ýµœ¦÷îIJÝóÍüÏËyœó et |R]ô¿¿6ëÄ/¼aÙóѾç€?}Œñ^Eä,£±·ßØ8‰aQö¹Q”µË/˜X0±dbɋ傾qJÓ^Ð7ÑÏ|oe`íVdÚÈÎU>ØÈ¸þcŒ¯ú>h›C.{êZSøÖ|¸¼Íù|ûºŒ¾9¢Çáì½ÜÃÃ1ï_7¾{VÆcÊø”ŒCöÄ—·+k:5ч½æúà^J=m–Ôó¢Áõ¼i%Ã;lçgŒîÍ ~É UîçÉ…6r£×¨ð—é´ZT殲 È6FÛ=ãÉ?בâ‰P>gAìóÙcÅ+ÓSÏ3²tÜMSÀ¦Îé&»¬ðySÙAeÛ­®§My«²ž²)wª~üöÀ=6Ë›©ác·óú)ÞO)ÿmm=yïø©åŒ/𘟰£,Õ‹¸'d'6z–~oï3ë2€ÍD8z¦Gͺò°âÅë÷%|®ï9”žºØÿè^ìåVÆ‚m¥h|ê~Paj®¯ÅšÙ–_ù]9ä4r.#¸ˆ¬Ùn œqLYñ ‡Øïa5+&öû 2JaË$v÷b ·«3ø3MÉQ·m›‚ª˜Ë.ª*:4>ÛÆÂi«ck åhaŸZ!ûv‡.À¸2ˆó¬Ä¤)‹ã:ê2ƒcÀ>d=Ÿôþ‚œawœjöÇí‘åaÀ$=ªÍ[V¼ørÏóöå”%/¢=s8Õú+°÷¾eâu«^ì3Ñ«*{q¬¢C¸Bì?1Ø7j©òžyL9M+‡æQD/=“¢oŽŒÏö=Ÿì§|¬ŸòùžçŽFêåÙZ¶yq`k²‰šo{s½V5PH›kBUäŦŸkkP«ƒ¯ÇüÄH[±Sß*ïÙ–2aVÓJ gkÈš( eš’éÀB/þ‘…ň…Å¿â¸P19q4ö“Qw±ÿ ‘½±ð=ˆôç§bºËÀÀé)À¿ç·5±ÆWR¾+Û\øµ-ÞÖH~yÉÄÁÔqЋ¥|ð‰¯@’Â%.Õôø¨üÞ–“±š'‚)øyÕ‹ªgY‘>n<×ô=_ð\¹èùbßs$Ê ®E›†¤·ô|jc¹n3Öv+B‡0øó^<›:.!ÿ:~pÈøÏùáÅ©_VýšsÛ›UÑ×¾î8”Âaï8Nøüøhy_õ ¹è)˜ËøÇ?aqÿŸ ö·5 K¾Ð3.]JYÜÀM±…âÑ|[ö™8#uöb1¿2} Âi0úl`2hE¸¨©ìÒïý~GxÒVõ¹siÜ·ü÷˜¬`çEæ;\–|d)እ„/ö3þ#¸ÕMEÔŒåPÛtᆠ¡j6P® „³jÏf4¼ß‹>Ë N8¸ºïùå„/'\Õ÷$dRόόð7žÎcckë…è^¡ A5K1R.ŒÁ2ÛàE¹‘÷ùùŒÿ(²: ©¦ûSB0Ob3›Î ³«ŠjóyÅýt^ß§rQ*z©xqR£z[ñ?{_à¢û1‰'8gh§bð§À³æ5Ý.4ß¹œrKdœ¹ÌŸöâ¤Ê ×á4â eM$I "qÔÐ2kÂ<Ȧ²ƒR6`3³Y9 }FÛl€J²›‘¹8=Œ^nonˆã„/öç%â‚ã`’5œ ¦h6‘cæy¯Ñ^"£øÚ¢ÓŸÞüØk Þ mã¤Ä6àÚt«mBH1}‡Œ¯æ‰øEmÑx+µší|96pdb¾î„¸¾— ÁÍÛ€-ߤFšÄÏN#]Šc¸×›“vÚü‘¤gmä}ƒëcø·ÅtÒ”±"~îý^œFã"hªz»UgXÌ4Ö AB¾ùM²µJaêõ[ YåÕ å‰OÙ_Œ¸#2ûÆùqá@œ•jJ(®ŸÛyÏa@g5תžÑ ÕÛAkÃe³¿{+G0/HÞbÛò² rC_32†öÕܬ/ÑG< xÝèog§ŽØÒ,™¼áÊÐ5s_KÂÓ‘ý]MÖŸKúÙ^·K^¼k)Ẹ(øfó¥ç€Ú^°eÞô.iÄ]“‰ñ/ïš ®š …Nœê~Ÿ¢}–©¢À—g« Äjj*šñþü»F¹Ãïû,âúì¢çßV>¸’rS/‹ÀFÌ©ÖQdÔS(7Âjg°B0P&i‚Šª”Ϭ9«¥øMÂËxlvs6½ÏÖ`dCEàÒϪœ75Cn£ž ¥$µ´6Mƒ‘ñÞ=Æûï#ÌGÅq<ÊÁU_2éŠéí$ú †Zb(¶õqŠ8€?’ôS}ó’ÁÍ‘ñž%ßØÑ¹ÓkÝ%ÊDé.I"Îȳ_5~VƒÝÏÀàGŽ@̯ê[¥ŠºB_o]]`Þï¯Ú¿kæÜaœ€ èJ®KqÍ‚ño«)ï_õ\ÓÏ$2ýìL€–†¼®C{é¢Aª3ØAçb6U ¶GئiƒN¨…@õP£3µú„¢Mpgs^ß`÷G)(%UÊ>óÜmCóÈGåíÓ5×Ï=ÿuîæ›Í4ëìM ?Ùhä?ZË^|`ÉóùžgÕob˜èV}£‹9à»$â’¡c1͸þî|ß4D×nÎl Ž~¦Š³²±."ù®&hêOh“ ¨áû©bUTø®ÆÄØ;ƒkûYFpéªçš¾áòçâ–†[5Ž hP¬!’Õ}Vßìd•`!£Yq&f[ l…ñ÷Ugd“c–¯ª“@åH*Ê×tVÔûL9Û9‚þͳ€óL“gÝyÎJGŸ'•æ_:`W6¢ŸÎf\[õØã5€_~z3X0¸-2Þµ”Sîúm ‚¶S=ÒÈ¢þeƒ‹†|†ó§”EØT¾ Jmýh6e2<›[¤}6Ö^Þ¯É'•u‚Ê2¾ u:CX±kª1(TÐtayÉgÇúÚ¾çÆž8w(.Zwˆå4£îù@=£•Üô<:-êVp8!q¸ªSª~}·Wò¦3‡½½~*…Ÿì³–Æ¿!š™Xä†h;ØÐ`í”ØB…-kÎÆ»Â45ÊYå¶EýLCO¡¢o/²@Ý ÉP3 DÛ´Ðvmê3Òü18Öœ±&ÏÁ<˜É×U ›€ó‚ÎÒëÁnÈvýáKöbcØÖ:€ì /˜‹þci3áˆûóY¿_ðômwÚ¾T¸qÉ0â¡#•‘TðlPF“ABm¨¢¢Ì¼ÐŒL *Nÿ¶)ó¿qªhÜ U´ å÷ö-(}»Ð{0ÞdÒÕ™µŒë/¿ŸFþ'ך鮣øâù¦š–ªpÍFäÆKŽ ç*ñ&vf‰û_ÅG»_`Hli6 BÂѶ…SÕè¿Êò©ÖG&+üþÅ!79ãL¯Á÷Ck L®ùÞëçxÇPW=‹Œm’æ.Ð2v[¾ Õ 9Õ«Yá—|£!H¨®«¸_“Õb#WÎË/‘G­dT¬$ä™@uvAí¾¶íów»Y¦WYloò ¥7£ê™L·ø¾.÷¼Øx:ÆÏ‚8‘68¡ºÌ‚ ®vv‡¼Wej`R!PÑ!ŒïÈ X$wšø0˜f 0‡tD]Ä_Äö«lžjä_cü§¶7z{õ9Mî…:gÑ&mÃý/žÇYŸq\ƽÖ÷D¼g9¥_nD½½ÞFÞÜSm­÷P°ï5°)âÒƒ…Þûù­€~V¼¸6ò¼wѳlsRýhÁØ ß¶®lHôýÖc.Hܸ£wŠ c僪€!©J/yüÖÜiZ˧·ö‚rS8¥U•>­ýûkö±îýUGPG‰-üíhDúzçí‡bÒ{#~RŽΰÙ‚^È8 üÉäå¿ñDÒZ•rÖõ2£°9 §.m£úo5šší[¿­ˆÑÛ$k³6t k‡‚\t±;6œãŠÚ«…°kìçfÿTá£JïGMbVºt°æ`M†³):ÎUÍq² Ç7Žkoåc73€D®ø%]ªçnY)øÈ‚çÚØsЫu÷ã¬4}žç×û<S²-”*g ̪Bfáçlžˆ·n8Ì("·iÛT¡_Úô£ŠÅW#~+¼±®ðìqúÆ;ÙæËÜÇζ¸M™X û·&£»ìæb¤/j§*ÝÔÂZÞË™}µóÆV>vÕô?~DžŸÛŠût$ûðùžç“}_šµYx§-T´&X1ñ°µ˜31P¹jl€­jà&O®v©¬ 5Ž…^ë ¡ú­éß5$äZ6ŽÍ†„Ænú+û< ì[¿¬˜è܈øïxÞ¾Óa¯¥.s)—£^½Æ|ec>Y„Š•UØ¦Ö ž«‡zËjS6·mç@ÜÍ 9—ªÃ(~ÕÿºèßlúÔÁGãc¯ÊqnpÞÁ !$ÑývæoE¸6ê6Ÿ³ÑJÿÝÔî²Ó÷îµÀ¦òjïÆ¦ä;AÚšØ,kþúà¢ç+Î8(þ6EûÚäg¯å¼Á‡¯E*À>Ô1y‚Îd~n•8Ílaöàöü—:¥ÎÚÆ±$´‘ƱæñìÆ±ºíO¾§]køçþï¥ø–­¨mÂ% öjL¯ö²?䥒qVéÚ ÌAtE’UU’ƪðPõœ ¡qM·!§`Á:§­°#6ü©Yc½z=Ç@Kã?+˜­ÎÆ2ZÛülðåb¨´êÅGS®\4V§•ˆ¯kgÿydÆ‘ß+`sÐ8zÐ7oÕ-Ü]ðAÁ°9c¼¹ž_ËaŸGœŒ9œf°OѸ5ψ„Ú@"¡ ¾n÷œYðÎŒ}þÍBšA6ÝÐ…öؾ$ìW"ü½Á?¸e·o•#Í+½ø¥4â^‚ÇxXkí™Y“-ÇóGðŒ§ažph\ 'ì’ZÀ·÷¡I`ƒ_|Mè»(ð™óÖjT_“Ý Å cuöi&|T{NõÞâÕ›¸Ã‰£2¢éã×ky™=ÄŒ¯É²³­yìj ,:?ˆxìV݈Ë^|t!åÓ3tl“ΡúÞ5—ÿÇœŒ9èÅš Dü•îÝR´>ŠØ4…k©¢VgêTù|«‰8ƒÅ^+4yU²YTQ tÄrÁ¶œ äñæÔŒò>éGú;à_ ±=#ëW»n^à° ¯’xF ßkpŽ˜ô$˜el̺1š.¸—È•âoé3D+·,T·­J{@PG¿ÅlÉZŒ¿©&¢zeϩȿš)ÌýTB±>a4+ºŽº›²•|›Þ/ ßRüî‰ñ‚§×÷˜Ÿú[F-m¦4fï>-  ¼îÃÝw«Ò‘ug|xÁ“`DôÙÌPÍ ×&gjà©þ>,xxÈZÄ™ŽY!ˆÄÂÌr<Ò/ƒ]}ªýxì(Æ_é_ èA&¾C¦\,«7dA#_¬Yùùj&PÌ‚YåI[!m*fÑ@[@(¡"p Ê ×@!ØоÔÀ<ȪÑÿTfR‚Î4•5©Ÿ™tÖK^$±^܈rÄÃQxjZÛžéMvpí)ï’Ø!ã°Û¢’Æ‚‰OõSnŽŒh‹¾`€Þ>qêd*Y¸Û ƒ}Ê‘q8ÊmÓ5ÊêŠÃÕn“ŒD¨ËvÖþˆø­fLU œ5BU•žlèû'ü‚ý¬Þ~* ÇÞˆK0qp²çb<ÉL?€ø&ÁÅB.¡(}ô¯eÁå¬L€tQ„çJeƒ!/B‰¡ߊ)§†06ø7«w8EÎÿ¬ `AÚg‹9µßIöÙ´ç_NTö/Td·É»RÓWvŸhKä•„{œØšÿv5pÆ"pþV”EƒkcÏgûžx›â‘ñ¿x(¼æH4kŠE·ª#…ìu¸|EŸkf¸m6ÐJKhÞßøº9†ÐW¡®¢ÞŒÉ¿Óä¬÷Ù1Öu'Zù1¾øÄß`Üì» ¾ÕÐ#„\&ç<Áê)d%ˆ¦Øí[É&,Í;«p<!Šgµd/Õ‚=õÍp!C]ÚfKègºgBåý…ZzœEþrëù?¦Räí79x_ÏXÞ‚ÙÉ>â1ôýž¸?6G5Ö̸m+vdÙ‹/ôŒkbÛ–¡ïE#¶&8;_u"&2‘HSÑ­«¹Á5EÔáˆ;t°‹TÑ&úä"6MgŽûƂӛyìfÆ ãÚÍÖ"²bì'úžu«-R­YÌ«‰”×óI^>±jpB#¬¾Øì”ýÏMa˜6Áö)g*C’¥Æ­â…ì¨ËaZU[gž±+Þ,š= kªž0rmÇL˜ü‡<ú!/}ÂÝIðžÅú@BòGôC³Gô¥ÿdè»ûŠIJPùeX¾’m…оš?%ziMÑd š$-jG*ÖÑ?5Mõ ½®6ƒ°¶Q€öišÁü ® Øÿ¯!û×)lXÞÙ3ÖrÛ±WÃ…º:¥3¥)xëV`ÿ·9ãcý”e¯mɌƌÁ#ODœ“ˆ“*Ïë FݵÓšº@]603§¡Y¬%,V’š`ƒZB û\Úï8ýcä)ãéosnxü€ç Hïoò_íñÏK±+‹q/DÜ¡Œ!”x.„å7>Bx¹š%BÙL ßa÷^O˜`‚~fáþ¥ßž«<Šž<öâd9ù½dqúÓ—€k|,*Hžl~6ï²Éîo26ûØÕ ^`.ºÆú l¦?2q]/å˱-Ìï„¢ýâï£QŽ?é¸×Pœ”!SW/…ßVŠº«óLUÆŸ~®œ T'~5QEGcuQþT“Ï ª(„ÇNÖ±‰š¨¢L"Ñ#†ÿA맯wÌuk^G0ºzÞ?Ä¿_ðëÑ}=Ów™ñH _VÆô«U¹‰:ÃØ–Z÷š ”RqV¾²QS8[(ÕªÛ´ö _¾Bû µ«…ñl'_‰³¬ûÎKÿÃMgûZuŽš³3÷.{áZÜ”°þ"À ˜Ìå†Ó.xNVl;n88îà’xøÉ¢¦¿å0F!Ê_t“"mÓ¤«YTѱ#P͸Æc( ÛPIùa6U´nxKµ@ eªhq¿|ä/÷øïqÞ}þô¤wîŽC §•Âó%»H¦oófO”ôh‰³]F AAØìlqÞ[¬©8dˆ­Æø×ª…¶S4þ3÷Oõ¸ÿB Ö&bÿW¤ú©ú0ntpeßs6à\-drN:?˜rÉ^¸ö6¾y'¼Ó `_Ø$@Ê'úžDÖ|áVgcøìÂú"ð§^|»aÀø–T<ß;ûh•îé+…Ú:)!x§:ñªgè3J‘|þ|ZMÉ4e•šûtª˜\1þ~tï·Àýi`ýL꤆ýlû#3A›Žãši(ÙG·ˆ„îzÊÓ@}’q^WʸÿF¶±`pmlÜÙ&Û’ÃØInÈw<â` Ç\…^©†Æ«Ê@V›yRË P0 ·0U´¸o[Ù8VŸÕà©¿"ñ:»¼+ëfàMÙC½»—Oñõ‚G€.(ÔïKFO4ÏÃmÊ ¦ß*ø~‘ÚlVƒ×Ïù[ö)n|*SPs_P¨AÍGþÃx~Tèò¦ãÑ#£~^Ñá˜Ás9<¶)R+‘6i'¹×! ûGfŸÜ(sÅ‹O/&Ü‹„šŒÚšƒGžtÜk]œpÓ³¹Å4¨æÛ—@Q.¹ )g Y -¡*ôã*N@_Põí[Õ ×9)î…iÔ4„>…7ã%^BÇòÙ khðq²ÇŸ˜ì ¦Ge²¯= 8—¹Ô™ƒâKF·-U!¦qþªñFß5Æß÷WÍÆ¼ŠLŒª¦æ/¶uÄà·Óžÿc7ÔP3„&x¸tɸ5†3¼ÍB;Ï·ym—q>vŠ;€ÂA¼l#¶aDUûbÏ8îŒåT-]»¡ðÇ\89îmÚU´xl ´Ï£øÂß\¡.0rU¥Ì6c!-!Ò*î#L†³©¢´Ô 9‹qXõA'0³›ãGÿÜÙÝ=»n½ìíù™; ü½M›?Þ4Šå¼ì\Áýez0Ø}{:[âCå:Ø,ÕÍÚBo ý­­+èÊlâs|ãý†›ààŽm4¤îœpð–ÕëK¾ÝAMÑ™æU.¼·ÉÇÓÝ¿¿6ç\irÅ¥æi]'ÈøTß—4Î7bðKE_Á>_sÌûì„VÏ^ÔT/iÿ—²š±å©^áÒ/Îi­Ëª3BÑxSãXª:$¸™fÍÈ2$»ùx’|kÚÿ;ÛJÉôé¯Þš…,d &w‰Lçñ ôn1î.œvC¨c¬î Ψ‰ü³{ÅN ÷q/ÿàc2}ÄÐ'½³«”n͌݃98{ÐZ‘`ãpH¾e$é®x·7Ú 4-áW!Þ'øêÖø\osç®êR9q~"ŽºB„_ài71«:´½Z„Oe’‚'¥®q¬qJW`}ÓŒ$ÁqU4Ý­Ç“ä[³Ë:ãß­|­Ÿ|25Ã"OŒÃXAZö§Qz·Ø´jÞ]˜Â¦»=Ö%îf¡2Â5Ô"þ‚éZË>ዘÿŠwv è*™»8¬•ï ­‹„ .ÕÂÍáuÒ¡ºìz†8û”Î|Yo]fo‘W+Ð3¸.6nŒ ·¥£nß{ =éXWx¢ÕR•k(d6•âùÜ›³ŠQ6à ÜývªŠ¥®Ö|á3)dEÁ¯i‡6)>£í5 Ê9‘žHÓï˜]Ö|»UdUX›GóÇ9œtê~¿\äíƒ=¸1r,ÍS—É830Ì­Íìfô¿iঠ·hûÞWÇž£2z[pa® sègÁ2g@MD‚Jê0øºß‹Lœâï™ ¨&TQšXBÙªý®Š•ÖÑ9­Œ‹j<¨ÝJûæhj3€0xggú»ugtn‹9íûòH5on¡ ÁJ³C=:mÄvÒøoÚ|ÝÛ ].xØÌ6¸ªç¹=2o²âs𨎋×wÄ6e¼[uÌV¹ñ6]øDôVD.Dð6ê’lß86ÚF›±“Õ#î,̰¨ÒVkÇà——v¦ [wÆÕ³¬Þñºý)·/‡æA¤eX]ì‡q‹.»­s{Æ„K/vÒÃfÿ5—I@TàÀvn'§‚Ž¢ÿ.ˆGŸˆ8élª¹«Jqnl–ª(h*$JUåZV¾æoË`°jƒL•* “Æ1kø.Å CÓzoü©Ä ‡É³®¥ìÂÕØ]u«[§ÍêŸïÁ•V×7ˆš.¬“vac°Ð©ãðAð*¢èÇgô#Ïõ‘oGµjÈ?Føö£O8&pGTÁ÷k¨šm²iº ¡ÐÜÆÃTæi+Ç åŒbÞl@¡Œ¥AK(5{Þ~6{]JlÆb ýuÞãFÂÃz¿UcL·ºuŠdƇ–<.6raÇÀ½'йeS2ü›ÉlÜÈ&3€`­üƒæÜ‘.ª{ߢ‰›#ã˱±°Éð1g<ôdÄO:Nf§*0Œ¢Q:AÙd›¦ŠR› ”+«Eœ~¤ T1@ Ó)” ©¢C_f Y)›1qƒ,ù¯àTX ‹ÀR¨œ¦ãmERƒ59ºþ°nêkÙÇ—á‹=èÛ†²Û³{• ¾(òƒèÜ€mS±¹™ÀQzÜöOµN#?×Çžãnã  fÆ@°ß‹ÇsãîßЄ­j¸”C¶æ™»Õm•d™KÓ·,¨\Uœ8:&TœÀHT®1ý¡fê—U'M¤ceBÞžif_ ~eR©Ùôcôm7¤ØVŒ#íV·vm­zñ•Øx;¼ÑO ù9fç"Îm aÛh–²Ò$d™ÁEï²ØýRÝY“qmdô6!ƒ1Òûyìñˆ»ÄÑhÉ—¦aµÌ!¡Ðd/ âeÙ>”©¢e•PkÌJÙÀ A¹ºÆ±âvÇòÒ‘ý>ŽW;?ÿxk¬¤°8'N@çºuÊ-‰Áå=á‹6Ý#Ôr=(éÛx¾_}=@™ND´ÛÇbsÁ¢Ú·ÿ+fW"=`*å°¬[÷‹=O¼‰¬fÝÁ™ <ò¸Ê<÷1³ˆ×NÔböàu*Û®Ãä«gÜ嵩ùcñvTQ"õyi‚Ö”™@^H{öŠ!Ú൷<Ê”"8áR’œöZj¯îV·öèò‚³ñÎ}Æ¥Ëpf*üqÁT ÎÔ—~ÇÏd1ÔLgå·‘9´õ@f)Oõ.·8~@U i¹ßYn86àx€“_w2✡ãŽÈ¦g¦jÚ)T#z4ëTÕÛ054”EØÌEÇà‘w>V5‹*û¥Q®Œ*jƒ„ô|BRVášo¥… z x Åc½PPö陣ZAÑL˜¸¹ÎºÛ®Áøß8|t÷ÀŒƒ(Ù;A%à ®“2VæUÝ ëú}Ü Ç]Êß ¸GЈ·ÀͲ–O(ºn3x½®\u0m³¶ZB¡VŠIvc/vè­1Û Ñçß—F¤&Ö€ëÊÝÚÕ%²ZÕ'–<ÿ|À#IJß¶. ÷iÂùgŠÃ‰5Gšlk£ÈµøNàîÀ³v͸ÈÏrÿa>8¸ðg¸ xà¡ ïá'}/NÄEüßð#'À4>_›¨°ê&ÌÑ8VÉ|]] ÆSŒÙ ˆPãXIKˆéqˆ%TH$ŽžÛßÁÛmßz–“}¶g¬ç g— tk×€eÙè¥ûSŽæ3~×6ŸŸ#xD¾VØT²ÏdjªÁå#N£ói螸cW! š! ” a^G,ô€["ãvglÄ(pƽ×w_'œ´ò3'@ 䳨¢l& [ˆKÇ;!ªh}6P=Y|ÎñÿŸÝIœäŸ~·4âzï¹Ñ >»Ð:GЭ\Ë^ܧ¼|¿ghpxh›î`Â}§»U›0ƒ³=‚.$»¸=9 y,4/X`‰oèaà¿ø=øÍˆœœ÷OzÎÎ:?[Æáj‰OÉ2q›óqF<§„'Sî»ÿIDz‡Û£0Fḭ̂є®uOÏU3‡&-¡¤v[ÁÁ23¨¢œÌ7„Þ²Aغ[V·oÆÁu#ÖqGq'"Ô­Â}"2´àÊãêžq(‘m ­Òà¡j€}ZABÆu˜­‡6NäqJ‚;+Œ4éÿRšmk¿OÝ9Àu»’˜›y8ObºVè! 9âŒ;œωgÅ_¸ÿIÇš¦¥JÅP3"e¯:uÏ U4”š¬¦Ní奫l¥Éø»iª¨JN MÉK—åþ³/íÖ=¸¬¬;Î4¸¹ï9ÖºµËr;³œÂ¿ò¼kö{‡¹-c?|[Ýd½)´!™a1Ÿ' DqæÀ ³€¹)XÀ§Ñ£½ŸÍc×~?ìÝs×@4˜1ÐÆ ‹û×Åck{BÆQgÍ©!0Ü}Ýq8ÉòUtð§²ËÒ=Ë-©¢ EðÁ*ï4dµhÓ&D dœ=<)TX‰Òª U”£æõ"Ûeɶ8&XFÜ3q|z9›•wXP·¶iE+©xç”÷ìóL·~<ÃЃ}ÕÒÏŸ¦Üü³Ë«¿!„Ä„OâgK£¯+ébàÝ»“D-|iˆÙ¸€ù•hcf)ÅxÐ Ç’WÖù;A‡á™á¤ ºg5(ƒ+¶˜¨&òh”@B¥¾¤-dSTÑÉ Ï(oËÿy„]µ‡2rœÁ=O×öÛc6%Þ­n…#±ÏÄ[¹tÕ³?ѤárëÖS%i†M°&HBCûÃiO”b é´g‘aIü0K£gP@^ »h3_fs`®…)7û‚‘A*'eÜÙÜàšàœDÜeIH"³â‰«ÆµD­œ˜ Ó˜Á‡²Vƒ×-܉ÜH[ PE벉óò/ßkrÍÎLĺ©29êÖV­Ø`Ÿ‡w®¦¼g%3þ½­7þ˜ô5³äªN€igp‡Ä5Ó±²‘"†ëý¸Y?@v7îJßo8ÇÙ ¨HÑp”Ù ”uîÎËÂ:éŒ{œˆ8?‰8*+„ë©YkZ„Z‚TQÊZÿ%ªh1h(·¥Š–ÞGY¢bôÓMlaªh1˜ž1`/÷‘½ˆ²spî ÇJšpå²ï®i¬[›‰üc2ØçmSÞ½jH³–GÛúcâ‘SÂ’³lAÕ<‹«-¶…¾‹O¬nÇïŽéG¦ÏêZDdÛÕob`zL1ëVà^/þ݇œAöÃn €-7¢hzl”¥vC?\³c‹xÎ&k*ÛY ›]É3é¬Qô;qÄÍíyàÜ!œ•ŠA.üfù‘”Ë,éTdÌt†€•ªËŒ¦º‡«qE#[[ø)ÀOMP0c©ÐN«¬JáJUG‘_@¯0;unáãà0âÁÞ¸¶kdzíÝêÖ,ãß÷bñ/g¯sé„ýC‡“mì3úÐU%ÑÓMV„ìP Šñï})‹8ž¦†¦)ÿÕ¤Õ×vXÒÀ¯ŸÚá  µÑù£ø4Å8.›«`dôÏhdt ³GäÔì*g«JÁAB¡4®ËÔƒ•Fk਩Æà ºb0¹üCu[¦ô•©|íèɽ¶ FN3Røä‚ø’ºl [µ¡±èÅþD¼åÌ„wï÷¬&n@m×ÜßÄ=gjý× *¼0Ý×ÓÇŠ-pÒàLÕxñ<ÄÐOK%× OžÜd `¦)_.°;œ•‡«·0þ±e .ˆ«¢Šê¥SžØT”=~]¢ ŒzªtPœH]1xŠÙSɊ߇Ê(ɦ±“TôJ´Õ‚w˳ƒw:t…³è¼©Edââì‹àË}PWîVàþ9Škúž—Ÿá¹®ç9|4Ú‘ú‘Iÿm4EµN†½QrrOÿûñ¡®¯v'½€p¢ÀR~XÌlCp˜üÆ]`Cê:›u3ïÒûÈô‘±;â²¢nÛ›{Ó?ÏJ²å>ãZy6ÀlH(43wÌ*v 9tÎP“H]„*,7é‹T³gb%ï*õ:Ecç¡2ÕÆ»ʼnȸ:6VºÃÝ ÍsÙÃÇVàã+Æyá¢јZ0ñØBí½_¼w#Ù»e¬[ÉŠŠAi>`n¼ÿ*ózšÔø™ìAÀµ;îZàm÷«æ ó˜§5gÜuà8œ*ãWU8+Ý»¦æl *ÛÊœeÄç¯RE©ËjÇW3m$°bÉ4UŒÈëÝN§þ4–¸x½ÇR_ìY' ×Eý,zØ—À'–=—­z¾¸`œ7ÌnŽè'4ñífÜ»ŽÚ Ö*°îˆøÑïñÑŨ@ÖIÇ"ŠE{å‡ÑÏŽ"ûÒ0yeZ›“ƒž!a½þ3Š_èÖÈHÈTAÛƒs†b%k±EݦØ6Eø%Px ѳTÄúóç£b6@ýjªg à<ª¢0{}a_>¹é§rnÀ&ÎHK >´˜pD¶#|åní½‹à3ËÆ[§ŒCCí,Fh<)4Ù¢ŽýS×àÄ탄ˇQ¢42\eò—÷ú3þs5x¬iƒõlÐnî¾rMo·ƒ_üËIµè†‚ƒ^\0Ú‘‰%j¥ 4Íœ**ò“±…m2âvùQ-â*ï·U“X@PÎh9h¦AÑ´°ûŸñþôAÍ×ÉH«Cq!ŽÛSšd]Vpçˆü{g à•xþõ 8k‡MØÂíD¦ý|1ë|o5à³0PÈ98üåJí3SÛñ™e):Ž÷?F\ƒŸ®ì°ú#Ã"‡¹ÞÉl±ä/æØòPpÆ0seÍc¾ÒP55´½0òqDż…Ǫ²Ê–o»`¹Ç‚r…³æX_PE”é¡ôuCè«ÝÃÅïÙ¤hš¿ã–ž~àÆ…ÇIŸÏöŒû;èΰ¼2-ÿøà~ã3œ}ÛÈño\OEZ©m4­ùáMÿN¥wÊ(®dræô‚'@‹®â]uit(z.þáÍl:‘q0gÄÉhÒä5E}¬%*TQËê6ê°«BB¾š d¿gòÒiMD>ÚX]1¸ U´m6PÝ–dhÈ{NWc½ãAÏ;û™œÄJg#OÛ%àð@ÜÞ‡—Ÿp]Rè§;oü36 ûa›q¿Î̲_’…H¯.¾Î'ñeØ7u«füRYóe:h´-Ê6çâòÛ•sêQôK2[®;8m¢¿ÈÄ9ÃŒß;*xº‚‘-ÚüPó–*Ù€ ÕÚPCVˆ%T.º†Ǩöºbpu(ýèÃÛ4Ž…†Ð×Õ¸ia©Ói­9ŽGëó…Eãs«F,X²)vk‡ /ú^|àÜ”O­ÇcqA ¶  '89ä[×S=h×9–ôÏkâÈ®,Ú¬5—"UÀzïYx=04F2TOœÑ°ÝPy¼‹ñTä~0ä½nsY»³ZЇbƒ ‡á u²ËA¬,7îª(„!!›Vaj«RE D÷m ¸Ô t@B¡myÙeˆ[ï âŒT¬ž€ž7`œŒæìÖ<·‚ýCáRã-g§\~8eÉÃj¢]vðúZûYö7Ë$ìŸC;YüÛ †0nÜãWTCÃP#£¶`i:‰ª#‡ïÅgG)\wHŽ9kuBGØóÂQÖï/FÎ>” ðqQ~}±qlNO5ŽÕh ³*U´” ÔPE«tÎj6š_ܤ%4Þ–ìßî,dÉyQì1GàcKðÞ}Æ>3R×e§àòÀ’Ë.ß—rù>ÏÕ Æò11¤n`û8ñýÕ¡]Ñ8Ó¢‘>·SQœ¼=Š=fB‚4u0P%€u¿)§åÏ)ZM=ÀØ B¶5rÐ#œÅøÿLܵ6­j{a(kø8˜Ž¢îÌúŠAt”e Kž²Ž*ÊÆÇB'»Ž*º¡l`žÈr©è«dw®Òèm.X‡;ãš…Œ]¶`Ý€SÊø+“p>ጬxÞr8S…=˜NOBÜ¥õTå¸u÷f[‹‰»4z¯¥ÑØ #à ðO?ÓÓß3‚Ïߌì=À-;ïz“/„×O:ÏÓ›n¶,œ;tìKóÂ+…@þyÅl Ê½ì” ¨8‡bCר(çcÞl¦–P‘h9fꌲüE `RVðµCè­[ÑJ^úè3w:È ¿py¼Ç½×à« wÄm°[{ÿÜõ ö 7õ<ÿpfÂ-=c«¶É)‹[†ü°Œs?fÕÏy³€ÑýÅöö^_ë#»5ÀÊ {¿×@äa)W­94ä#<Ë©8äa¯è*ÏäsO§{§!H«fÿøJõ2$Ùˆ2çýðú%¹úì¢øiU(HØ-òöo¹Øa`ÂŒŸéÚ„ö½–éJŢϢJ£“Éi¸æ:û¿£k!ÍÄë¯8”òÑýžÏ-«zfXo/_($úzO-Beí±ÜÔÔÊÚ?‚(} É`YVêrS›&¦îYNü'˜îcmÓ·…œÄ¦ˆ ñ^»!Ó¼Aä`"Ž@Õ÷WgöŽ®„`¢%T<>n(«Sê+}fâKU–Põýu‡+ÀWu2¡ç¦”F3gò²âO·j/¸®>²pOÏàÌ5qÅ~ãßÎJ¹eÁc‚óá÷ø  ̃OôÆìz!„Q„¢„|*ˆý©Ò^Þøêg{:ä«Ò„ß—«l¿€øû[Æ$Æ_}Ê8€%ŸC5MÙ EŸ ‚`ÖI8 $T8¨sQEGÛ-@Bò6–¡ ’;®ÊìáQFá+†~ªhþ×k;óÓæ§«oC6/ ça*n^‚wœ“rÅã¶>ìKD”Ô÷:GA@’ðþ‡ÂXF…³À{CÆZøEön|n›bᇆÂô§N,Óàl\a»ÖœÜ!³ÏžÀ‡½[¨G]‚‡ÒÉìà)F ÍP‰êY…WŠÅÕü=M3TÉÁÆ¥SæDÚh UX?Ê#SW¡Š:ƒßk¨¢kÉ®é@³—tXÐvÍ…T¬ÇƇÎHøø~Ï‹ÆÁ¡80Ü„0Í.%‰iÊ/–¢„L«0+¨˜•O:vý™|j‘POÈAºi¢ß#Ö£T!·ÇÚhd…šz€qÔãn>E2#²lºòq—ýrb9Õ„.Y3½+¨Ó˜ê¥B4]ž–Ã25Ù@•~Ym+i ©!Lš‘ ŒYBjüØ·«»Ð¶…±òÝ1Ú2¸'ú—ò¼ëœ„ù|æÀ3îSåˆK ìiæõuN6‘s¡™ŽÙ¤ÌcØû {½|fü]Ï*ÊOu¿lS„Îú¡2MMaÊ ¦OüÓ¿’œÀ“ÿÃîpá¹À¦ì;˜ˆù*q£Y*›êÄóüë´„Š,¡ªö~)¨BB„‡Ð Ì¥},f$…l@…‰cªt«aLè­:Ö™¤€Ýš÷ˆ9²Þœ…¡¸aÁxã5®Þç$°°>¡àžzѼ~ÙÕEÛ#›£ú ³d{0"üó°l†þ¤¸ô—Õ :Êd±éŠÍ‚u=ƒ}^ør6}0ãf_„=‚MT5ƒß«°*'݆%DÝɪL+öÔíK(S)žu¨¢utвԬ®ïÌSgü·B¼¸jÑ“ÄÆûöøÜbÊácqXè‚?¯ÓXÄ£¤Bü^3ü½ª0PÍòw½ ìµ|ÏA>ñ‘¹è…ˆ³7ñ‡^ é¦ià;JírzgÝxû8¯4E±i'PÍŠrF9’ ʶ[Äá«´P cHhüÜŒ‰cu3ŠûìÆì"5Îð£#`$yš+ÜËhçfݧ‘Á‚ï gâC« o:sˆ‹^œ›Ä™d³;¥AÈCÞGÏžŽä'N —ŸbE' }>fæ#7–´ú#ocÐÇârÆÏPãÅg7{6;~­í%à¾ÁA_¯ú7ºøVR•ð{¼x*˜z«lÀ&šBc Ÿ@ãØ(hbù¨/µÕšE­6Ž…´€ ®Gvcg®æÍø¡«›Ì0–݃7.ÂñžqÙá!×-xVpôMcá¶Sö( ,¿®Ÿ“ãÂV^(¨*Õ2vÞÞyý³#|o\p|Î=k–`\õï´{îZ¡M‹Anr ïB<¢•P6ýçŒT ›f†…@­Êò±Jd=«Æ§ŽRÂäTÑâ4Ÿ)E™@ãA-¡9¨¢•ïæòÙÊAúgöûàT…]w7¼Õ)n½¶w-øL§ÿç ¹ôÏB C—Õîb;M@´Œ¨ÿÐ/#«Áäë¡ )d‚\­—þŽ(u¸u0éÉÞìêpÿY^ff|cÓTðÍIA¤Ék-Žtf›Ôƒ3S7¡<†`"ƒ³åã­|¬bl5é+°Êªü¢ŠV!¡Ñ{FûéCvà ¡<ÜÌ ¥9 ¡Š ÜXY´Úl¬™l­3Yá ßyágù<^ï¸r_ÊÏpã’géXFuî"ÒSÌïÿ_’cÑ, ÔB<ÿQ¥h»ôG&Ê9^èúþ_ýPXˆ‡Èx‰C‘Ñ<; næG­ó™8‡oÅÔÍÉA;.3x•àÇÛfû}&õ! Kõ­8ý 3¼þ \WËŒHX¢½œ”âÇ1áìj!$Î1ñ—LDãì€j'piýT-ÐnŽ,}×V—M974€÷!½ xò¬×eòâ ×Õ¨ÂùJ”{»Lˆ-Œ‡é˜MTÑy³²Y3$<ÉM™ ³©¢å!ôó&:©ãMÂ>Y–yºûÐQ ÓOaßP]€OïO¹ü`Ê5+žu‡§¿´D˜×—¸÷t¾ «N êdþÃË$»ˆÔ A/qâ1µÑ<ó×¾G×aºz×ÀdB—ý¥¤™` l,䯠4l®›Dä@…i𢨟3]Ã&ªhÛl ©@\m}NÔ 4k )ËT<ÙÀ’m58„¾’ xuÁÿV Ë$G¤ñù= ¿3X2XHÄÕ+ƧÎõOô,¦Y&%§¿R†ë'õÐ$q¿žMú²©i†òAN¡{k4¬Ø›d8ÙÏ/,FÞ$ޝëU©×2›Ñ¼ìe ï›y9ËTc›ÆÔ½àÌÄÑ÷`.7ŠÅÈ>o…5oÓÝrV†„ÚfAñ'bkΪYEi›SZB™h=c ô ™uò6›XC—±œŠž7¼‡ãýLª7>M¾cdYãå }FÆ;ÏM¹nÙXN`ÿ ¯ŸôÎp†~W²…QÄ_+æÐæžÌìÂ_ôzzN¬ée‰×ÓBü\dhG í¥öÖ­ºý7u½û¸$ ô¢TOë7yµDpN K9ŠU<]ä'†×¹¼;·*Τüô Ä!ýjl]&P…”Óc£bË@IË»ê„J˜a¾ W4SymK¨(…Ñ­ù¢á¢Á;ìÁ¥Žýëb1©ÛÞEpb W¦©¾3*BÆ ³„Ûë~7oG¼ñé=á¢õAñ ü0.ú]‹¢ç4±ëwM –EbUQ¸*Óšµ|‘g£Æí(êçŒþî Û.Îu ABÕQŒVx¿/l|Ü8få–øP¢:âÑr«¯¼ë¬UãØÈ1ª£²·‚xòž’8†{)Dì‹<6ŒxÏ0Êîê3OÀzÏqÏ:âH/ãÀÇ;ÈÍ®SeQ¹e×UÞp[ xŒE«Cq¬7/—Ÿ™r"2nX€}yc×íz‘ ‚OÜEBÏ–x™˜ébß5P Ð@dü˜ÀNôZCßî\Ŧ#YuÅs:«'`ò½ô/Þq {Á()\’fXOñ÷ƒÝ«Ö$Ž}^Ü3 ¨ùÑ*6ai,©\f Õ¥Yu¸S7 94ŠÂ]Ñ 4@?Õ±S‘I±qÌ©½ 3þ‘>¹Ç“ͥݟŠ^ ‡ÇèûlHÉÀÙ¤ÓD™ñ]ð°’ˆÕÄ8Ò‡uAâÀÒíÝs‡Ã€5<)†wÐÇMF\ô=²ÌY¹a_NÅ­ Ægö{n^ò|ôPšÍDV&àíP×^«¡H¤zâÌú2¯ÕÚ‚©€ˆcûxÞ5Hù€I’«À¼jvð³Ðˆ¦,À ú={w¯·u³Ž6y.ÄUït¥?é_ê.,œ—fTÐ6—ŠØ¹U¦wê–PU hhNt…m–`œæúü°ˆàvŸð¯ƒ- F6çzn*’‘Ù[=î7åõœ?õÊÀʼnã?Ò©—h†#° ËgL¯ Ìí­mΪDìc'£pm iâXˆ*,WÞ?oãØøó;G@’÷HÆj"¼9–”rxŽžOði)¯GóØbyeYAìý©cÅÁÑNÄXi#­#ãœ`xŒ–f#Dò-E#÷’GøÈCÁÀ R60ÉGãä¢;"PpÆÆN¤]‘kJ¸vŸ'²â]¿FÖݽ-u¿#ٌȺ. ÐöÉåׯÞ—¯î)j¼Jà|[Ë,£)?‘ "ÿIõ’Onå¤ÓÍ9€õ°+ræÿ—)úzœûÚP”µäÅÅÃŒ Z5„‰l,ºT›jŽ„™|ŨjH¨¤%ÔÐ8V› T¢üb6PGmj+ÃX“Ï—<ð¡!ôY4èOg'à 7ïNÅY)Diš4Ê S£ sò›…% R—Áâ̱–ˆã ÆqYéÚq fªÑ瀱f騇Ž7­"Úå×Ë‚âx”e-»âòÌÊöŽ^Hù2[­›ó]NΧu=©@ÁÞ,AúagU{Š‚qÕ,€šL .#©u™AyC·¥Ýæ@R“‹˜¡˜Ÿ4¹waœŠ®î2tœ™w$ölUß‘ Íl¸è4º#ꨢ6ƒ%4Gã˜B¼ÍO%+óSZIDATU傱K¨*Àé óZb—‡ÂçÝõ¤*tRú9A‡LÚb|³eƒƒ22oJ¬(åà!Á²K±Ô!3’ž'u6Ùv ³¬%68äÅ’w¤À±^v­%n4Ñn$ ®ÜÔCbýg䣂äðfŽ¿‘gš-Œ¸mËeâiw9ÖÇ›çÆÕ„a¼Ã™À( \=ôõh6?)ĆÚ ?9.!`Äkuýg Ù@ƒ˜W/yõV¶Í95V<>aÆzmõ0”qn*.:>²rÀ&7C2gФ*K¨ …XB#ƒ<5c ê… ¡`÷0³©¢SX`Å ŒÆVNöm¢þV„Êlÿn;€”¬Ñh_n 3a,Ÿ79´;y‡æxž‚V]ÂâÀ‘šÃ!\/ëýˆSᜑFF"ˆFÕÛ {ä FÃ"ƒCk$Öb8‘Í!õ)†H|:uýè4.á/x‡ùÌ饹eÝ1'0¡ò< ô¿pí!—ænÜ&Vj`\Æ,.?sŠ¥¦´Ú;ÇôV|ô©­¾|¶§ï%·dÎ^g.úm¢è7ŠGo]pF*.LÅ5æ¶þŽåÎj60f U´„Æø=åÁ몜™&H(¨%ÄŒªhh=”!¥†b.L°šŠ3Çyè-@[%a¤>"YwD˜΄õ•»ÁkBÃÝ &Ôçû4º–èÅð•(eÝû±±¿3•kÒ¾íyA’Ý'©ÛÑr>ÒKÍl LSC©dÓÂr£](_š%ˆ¯ŽÚø³AÔ󯊜öءn_ã£x"ýO¯èÞ2¾»ú’‹‡bÕ²¨©( ´‘¨aJz¡˜ ¸iH(ýT"ü&-¡Ú,aô·Â™T@†º.%-%WS3r–œ œܰ›Ñÿ¢‡ý^¬ðð@H#ãn9”äŠNöYI‰ÄÌðWƒ‚³ŽÇDN¬“pê»ú·‡\(ú#Éî=Ky³íøÅºl½n;AJgÀF49¤š}ºÙŒwXM÷òÞt#+–ÝØ?„éB‰Gž:áŒ{ "¥)·9³*RÁñÈ8Îê¢í1Xre–Phˆ|qÂW5hª ß_¤ŠŽYBHÈ*òÒ¥±“EdmjÆ@ ™õeZÚÝh/Sví˜©í¡†;Órùź‰p¦-u–×pBð[†}w]`U7Œ½) ˜ú{ š˜î걤« PC+ó¿ßfC®J¶aÔöKŸH˜tRÒï;YAíÂDœ›ˆ[Ó$J¢­Ë\’ƒ©žo•¹ÿ9v 4V›²œÀô³-®ûB=À¦ØaÍÔÐ)¥ÿ¸]Öög‰Ç¥Cd|Bèû-Š^Z)>`àøØBZúòã «Š£‹Œ>ÀüÄ"7QE (r†²R_BU´¸#Ý R!˜òú"Ut¬3”)î³]²¾Á^ôrfL·º²ÎÄÙÇcÌÑÐsërÊmû N·æÜzÞÝÏdS ¡›˜:MðËäõáz@­ªphv@j•YµPÓT–c¶~òæí:OÛŸ¤>ƒC²ßÞ,ç~Ƥ¿4 6ñ€+ÍÿM€;¢EÝ \ääW#óë4YxªÞìß'„þJâ¡UáÇìÛÒ @X°­VÎ9H ¶—Q•mIÛ,À£› ÷/ÚÆÝ’?¶‰sÖ±;'uÜoñÉþ…Txk²òR–ëÛp6Òr£ÉPUªháBšê°i'`:kñsŠÙ@Ô2(¦¯fÎt7íF;°Œé.6uë”\‰3VŽ¥;"ÌÇΡ&¨QÌJh å³bêÇ–÷®Ý‘è“1·’ΞukWÒî!ã…ˆ…"ðSî¶µÆI[m†¯·™Ö5‹b:5L¾ijF=úþù¦í×8ÙyPÂv„àšÿ;é.}ß’܆qÜeÍ`±eEÇÉl7ÛZHh*§+dN¹C€*Z|Kàý²ºE–PµqläeæÝ#AïØ‘ÄM°?5–}Ö«Ñ­níhú ΑßœjÌt‘«ÉDù¡,¦gßYm mª4ˆQ„¬`üƒÖÝehûu46åmÖXŽDºâ¸<#I_}›K££‘q[Ï84,@ ª`0[ Ùn¤dY>K¡Æ±ÒÇ54޵ÊccvjuLµÎ »×N´bÐ7Xõê˜?ÝÚúëk4û²&ìV¢³t2~…нLe¨d,úØÍÏ2sIBÔífxdhÚà¬,@ØË²ÈwûצÀ‹ÎÙšñÒ= 9ñúµ˜ß^0÷œã.£‚ž¥œ;Y4Ì*VN·À 71;Y1ÐÐ8f53š†Í„ÇŠ´Ñ=5Ô8fÅ!ôâb‹¶_~4{!J¢®ó·[[Ü›è­ES`dèM ¡^AÊט³š[½ˆÊ¢î²£(>ÛÁ´áL!4K¸Þ9 €‚ª b…Oy£—ãXß|/;€¿=skJf ±ŒCë½·. £çuƑ؈5PÛ¾º€ÜD‰sªqÌÓjÆ@0Í.Dõ¥ß&òÒ£D©8zr$3+ÓýH¢‹«¶×«i§wÓ­íÈ-¡·Mt²òg¼Oãz‰É¾Î\MD®Bõ€62uÄ,jö¥ÑOAA¡ïbê'¿í´swÙ¦ÀÇú[}9¼/–½çvg_s[lD® Š9U=­ÈeRã,6âjÇJTQjŒ}Å ÌC¥òžª„tñ‚ÉÀYØN`dS§–:ÚO·¶k¹ ­ØŠ°¼xú¬ønfmÇ jC ¥ÿ@“`\“˜†‘ʨ¶0—ü‘ÿÀNJ,nÊH[¼£‚ÈìŸ†Ž¯¹Í'ñL˜:„œÛBéǦf T#þÒ ¬£Šg T©¢…LeÒ=l÷ÜÎx!Q&úÖ7uÅßníäzð½M‘yñ¶s–ß—(ˆ9Ŀи©o›†*@1ˆÈÛ@±ý±mÆní´°Åm _Öº_¿)²sO:#²\r@™¢`ˆVEUt£Ù@eŒ¦ ¡rã˜*û4ïØÉ)çS¼X ¥:„Þ‰Gm×cdã{°S5©nu àïeúÞQ  -³ÞH«VEž¹†}ÉL·K<04$¦®a³ dql/ZŒÜ‡ÍÜŽèÍ}ÚPÛñ¸¥o¼àÚžq,¦\ qí©™Xã'goÆk+ÏŠÂuNù(C›Žæ•›À”Ã6®À<*no¼ÍÂß‹ÃÐUÜ߯¯œ]<$[õ@™ñ_N…ïŒR·vf½ñªPª·sq‚`vϨdp«“ÙŠ÷TTÕ|ˆ+@o“²ùæ¢~0ßèï²Àvß%·7 ~{7ö&‡ÂoOX;^}dÏ^“±ê\âÉ1~ùP] ‚Ál%$”vµ<Öç÷•îáb6P Û ¡1†ŠÙ“±“ç"`ðÎ-Ïò¹·ìC·vh½Xâ»&÷…(Ñ>™MíÔÎ?Bìë3‡&Q3{•Ðe‚Ÿœëï©«Œ³Škp©=”/¯ïƺ)0ئlÅÃÜÙ+nq|÷9IÁM~4™=nbš*ºÕ–…¤#o«“—Ô"¼S…t Ü86%/MY^ZÆ·DJß¹ çuìŸnmÛ) Hüð]Sñ\Å Ð R C• 5õ€©ü”I7¼ÀÁÖ°šÒ!ªŒíYÖD–^‘þÑÈ>̶A[ë$6åîºMÀ°xåµ±ÿîû]9ú÷Lý.«²¶£@\Ô Ž `ÿ'@ÁG©EãX3UT€}ýV›hË/ŽSm6o·NUˆš;é…=ɘžY¼oŠ·+Èå?5 Æ 0g_Æô4P,x;™èb ÆiÊDªûÒÄ Š#{®s~`- {fcüTÔ®9€‡¬oŸ*ÌIÙ? ÿf÷™:ºžöÐv4ŽXBÓ3êåŠãêªÆ}扯P&TQäK<½`\¹UÇ?,y&rÝêÖVf—fDÒêr¿%’}•âš, mñ–’±hó„¼—¸ˆg˜×£Ìx‡°%k0?¡±ê³á Îó÷õÏY¥m† P¦„šXŠ¢”­’ˆÞ”xüñÅí»@€eï^2”=wêÉ©hŸ e“€q¯Îd,ºóm˜10”«ÊKW¢ÿ„Ô–*::2® öMÒÖ8z–ñÿ;ü¿[Û’å÷Ñ«Mº—†*µ…‚JÑvñ)ÈDLþnS²Ñ׸ô%×÷ϲ¡^o‰{šÉ^U1ö:9é’vh °ëåì9m*#”`mˆD?Úº¬|sÐÉíã†ÈŒ$²×¯õÝsUÇ›Âþ uÎR“3™{?+TÑbÔŸŸ¹Q6 @³Xh}U´¶qL<xþV9åG×ÿÕ­mX¼Ó!fÑ2í{‚h«ØI0.Ïÿ–Ý÷ë‚?%ò¿…qé)†½²Mv1½Ÿåw•²ƒ‚`œyˆ{üJÔ×uÖâCÌg6Ä̱Õe×M9€“½í p…Ì^ ú®Ú—MÉD ¡)'P˜Ä¾…ÐH¿g\Œ®¡'Ð3P…tæÍªï7žŒãþ oöÈ;`ÁÓQ?»µwõúSÁRh€zOS§6"·I Vl3\ÖIû—ö¿,âSòÀzôýDö³º„ëöeñ«N‚ÂÉûþ#Æ‹[aX&†k)QÏpnë‚6åPÌEÛüpÈìÕ­|E•tMJÓäaMg^ÚäÑq÷]8g”+Ä4'¹ÔOPå[ø+û²W?13ÛdÒUž^WùíÖÖ¯ßþZb)ˆ ·y ö­šŸË¿+¿WÒw!}­àûlÁ>e ÁO"{II©39j _©ö ©]/ò«®_Pn€~̃¥Lõí `Úæ‡Ã£—ÌŽjC bÉ÷ˆf1&ºÕ­V7÷zŸÐ·ÍŠÔC†UsDø5}¹'Lör/g¤ßløw;"0É£uý9ýöØFX½§Á1¨&Û(o‘ý}´l/•c¦ö„ |ªb[Ѷ¬Í‰ÁE;†¿ØÒèW€­Ãð*(èj¨¢#'`[¯,:f¡æŸWšè¥B!ªN^š2S¡Š'Nˆ g¦Àù·oØz+Ö’mÓ¬[wÒ%¹ï“ñ"ƒÅr߬ÊYý{ãhüXa'û f/Q[䯲5‡ë¹ B²H!úk™ûϨ~Œ$Ì1Èšï”wŸDüÍŵ1ìãhÛuA7åRvF¸ÈàËrö"çõsóY_ʱ(ž}¥{x”ÎdéêüWAcTi+RE©w¥¦å|@hÐŒiÊx?Ù›]dø/Î;xŒ¾wô¬£vkca˜XÀôî§C%®*giÀJ‘.M +(×ý1YfÔe˜ì3Þd}þɧþ]Jt\¹¸š3ÃÅ D¤©%邯òbŠÊÔ¸ÉiÖù,¹çìçqA81Ç‘¸¥ÑŽ8 ~]¸Ø£¸7§j;xeeò°Ïš{ŸƒÍauÝÃ5Æ~ XBVÈBF0fˆ*J YlU´‹ž‰wOBzÁÆöU8:úg·6ï8Üý þx0Ì7|¥ú{¾=èË>òï•çÕé‚«[wGÆS]9¹43ÄÞR ÷0esî3 ÁT{ÏÎC þÍ„ëù_±¾}°MˆU­±½ìœíà•4ìBß¾A¤Š¢ª– ýÿ6ð½Çƒß NǪc'+TÑꌀ:ªh5pÞ=ËŒÃyq ,H]¸[¼Míg#çþ²ÒÅ!ç%‘ÄP¤]ÛÐ5õ7» ø 7.uè&»<í§Gâµ EÒQš]'£ì¾K¢§âõ# êä¶.Ϩs<Ì„¥*ËèÙ/6ñüFidü‡nR Ü¡µ95Ð'Šÿ âÛ7ôα8Çã‚Ù@ÿߊÙÃÖ0c —‘ ÊY ÇT}6ð@̾Ù?ÎåÐ×™ÿS vñ‚¡ƒžß¥0¾ºûËÔô€BR;•ŪÅÐôq  ž›qv“Ð'̸2Å.7ñ‡n·±ª4“YëYDŠe´ælÿA=w”þW… Ó Ò;+0@ŽF²gZƒS)É ÊÅ·vöôí­‰`³×; Þ.xâ–8P6PºrkǶ {¸Ø8VÖÊ/ከ¡e£¿ûÊèI"~ÔbûÇyöÑÎýu Ü |¶3Ç;¿+‰8ï„8Ò7ÒüŽlgl‰€¡ÙY&÷‘H|ÜËfå:(”˜ù3²ŸKöM&Ý,8³½¸ ÙM‰ù/§^7öånÀô%ðŸ5ìPÚƒQ€+­>ðw‚ïS>1¬^*¢¬èªUÔÁUSp—·;â¾ÿÁÞ"GǰNÕð“1}†‰¦íSý:¬k»ï’Áç˜Qôçõž¨Í jXB¥ßK‚s5‚r[¤%”wòN ~–Pá&š9qÌ»¯ghO0óïh{ei|̵¾ xð 9Þù• SXLÄ!ܶ`¬¹,#؉¬@Oú:¯‹ˆGô>2æO ,“ýî™PwŽƒ<?œ@àÍ3ôŽ…9´nŒŒµæ½Ç­E8g¤¤¹,Œî§¡^&éÖê»Õ‚ˆA `2œF?&¸"“q¿(õ0XW†ú¸úmŽeç=Ð'î§RßûMƒv²Î9 y^k.~ð5›]j´„lÔ²]uÛAÍ ¡Ÿ‡*ÊĉŒ'’z=ôŽÖP0”ѳ¹œÀmˆ¯Çô«`¿×™äG`ÒœjÜópÖZvQÄ‘ž8[ebÖVß‘ÁÐõXþÈ®9¾Œk¡Œ[¼î#Ѻc4s7“> ïsæ^@Ê*5ГòA¾ô-¬$ç24dyŠþK/·†ƒ68Y+lI‚$á0½ÃIܰUçѱ%Vt§¼¡4ù[Æ‘ª6޹¼+ô\]÷ð&ÇNŽZà¥@[qìdu<¤Mº±é®b'÷BOh»c`~Þ¡ŸËÍïÿ¥3É»ç Òü‘¸lŒç9'Åy'á¬ôs òÀBñSo}#‹RsÙX‚=ÿR=­»¿ç¥RfüK‘9¡æ.3áj ÖtË4?ÍñW8ž7n­¼IÊ`ŸÔÚŽgç8?—¤Ñ;2è×ÿƒ™gôØe°ºO_jæß·¥aÔ\ÝÃ-¶±AHhä|J³‚GZB”@5í,:å‘“ûÙˆL×Ö£gÐCœ¶Ó Á¾µ!³û+ɳʥ–S8wÍqh]fçy ±ná)cüc g"α£Râã{ Ì½Ç¥îÇÛÜòåP¾8å7œ×Èêou3p–¾ª·üXo)¥¿’ââ üc4y­1­XAüƒ9ýÈáðï‰lýƒ‘ =î|` ¥`[Y„®”SaøK5WU@«y³ZBVÀ¨ÊE¸òú’„„´‡²ß¿Ów¦±‘Ìx¤1¬Å)ç3ø)/TÏxÜ8ºd³è&z9æ[Ú©Ð# tk‹fš;/XÀ9kpæ@œ=0Vrðc”9ì‰}¶<’.¨áÆfô1zhløKdÌpÎ=3’û°ŒG•×oÍÐí®€]>°±^Ž¥º ì²Ø 8hÕó·TX›-0¯GøÔ>,øÏÙÛ=B/‰ÑãÎé ”¦¯—ùwo9 €„¨…„˜-²Q'0ÊBTÔ \ ‚˜ˆÐ¹_Hœ-$±'š—bÎpnòÝg<®GEœWKæã×Y=ÜÒˆºGIëº[;æ yaxÅáÔ8{],'Y¦à•e»¹b ™eé0ûÙ©¶gó,ÐËcEæ2ÿÐ.òfàš–/Y³+"ùoÃtlÚÂf5½Þ×myKrƒ–P}ã˜Õ_i›Ð"Ð8–QH•×àmªqlD§šð˜^ýÈPö5Cà'"£gôÚ;±@·“rx\~6AÚ{%¦o"D5Po5êtkÇ—Ï#~! âAvæÖb‘Ès2)å~•íð %tÄŒ^*#ÆÀ[)Ó ÈþàÄwú+Œ3ª·kq‚XÝß©o…j…, X(¶rcÛÕˆïnú†¡Ã|v¯*¶æ¨ßX%Ñ_}o•Õçäÿ–ÔnÜj‹»¹ @n÷Îôf3{ã¶9™$4þ[õÈÕÍØl]À&hS ÍÓª¢ÎGÏv>:O3}!†ü¸5}ÆãÆÓÇÃî†ü›]\uk×Až˜`%͇p8ÍÚe{~Â4Ú ƒ?Žâ-ëUˆýz)ô¼è+w>ÍZ1øÿÛ{óxiβÎûû»«Ï³$!DÀD6…`„a™ð²#(ˆ,"ò²(Càƒ¢È&#[X„‘aaÉ+`€1@0l#H"°L€!É9ÝuÿÞ?ªº»–»ªû¬Ï9ÏSW>•çœ>ÝÕµÜuý®ëwm%ô¿…òO¶^Ò PrLÅ*?_,|ÊDˆ&“Ç"®f ­þò;n¯ÈgóÖY(×Y^±±R f+‡~ÛÏÜÇÛQ•–Êõ=©¢S-+i©¢3×1Y8V¦±UÌŸYѹeð ÆzöÚÊøq“`ú<cÆÎ8GK¶…ð×P8½•θ1Ñgƒ~ø?ƒºÝ¢ E”«H°‹˜ApEk±¨+È i—eïÆÏÊl¤8e°-rŠ¶Ç‘¥Êjî‹ypbµoV2=Óe2g¢óhW·ÑªP}_Ës°ÿ=Šû_J¢É„FUiâºÏȃð4£3§¡Åؤ›‚ÏÕ(|˜mðÄ6åÄlWlÿ”þb[Ù¨õ¤ŠÎĉ§l³ÇJ«?4¼ µ²„RÞ€íÇÃÑ@E{ãPœ‹oÿR[Ñ4@Ÿ œ8¨Ú½!3±TF\xGŽÍž’Ú®ÙFŽ>ØO[‹ˆý"ìÅg÷£9]¹´]䟼SâýB'6‡Ç¤ÕT:ç²Îy=ÜêÎv æžIåŸW„"زàKbôm>5:³ê&„Æ*Ä÷d£œØ© ° \yr^&x°Ñ5·ÕLjYÇìá©2d‹ Ç*- ¦ÖJ­—PHÌnœÃh’ ¾Ëd伋‰"'r¹Æ\n‰œ+“°­f/ˆù p†–{“&¢l/a³?DX &“»tŽ‹‚4"!7–ˆ!¨ç€²îEïðxÄ ¨Ì©>ŽSG|™Þü}óê^@ªÅƒ_hûW¯µ ÅRñçôöõ)UÃoNÆá/@Çô§Ì·<™¼~<Ùž{»)Å]26\|5*{ æÙî9õ”PéÍnÿŒ%4 W(¡¢`Æõ6󯾃ž“gô™'B¬‘s€ŒatâÌÏv?…¾pèöÀŃZÝ›4QõÖf5P9e"®uU©Zùë4u{…ì¿ Ý®ó±™Æ¸Ô]­ÊÊöjPxa•¯§ÏÒ´£©AúºÍÝ [6ŸAYV<ê•v’‰׉c½s¿ª—Ñ9L>èÕÒÊåÛInlÜU\ÍwÇvUŽÆk/²¼3ÖeWªh*TÔÈ&)¡Y,µo}£zxæÄð´}k£[/~èUvT\ˆTß³üáðµAïºÀß7Têá…g 2D.ož‰-”ô ‚× ý#Òí–ÙeѯǹOïê Ä›ü6Uå?}FV"dy6-Fë¡|ÂoØükÌu¿t ºEXå‚÷W7½RØer9æ;ú„öïó¹¿K€@ L6]CèC}}¥…DÖ+1ûíÿ*&D"^°?ZEu<­>|ðŸ‡:°Ã\i£¶©íwΓ°>O«qù^`7yþ(uÍVÏ0ùdÁ×\ŸÔ!ÞôÝúËfä¼ 6÷>¤?ãÞ›¯…·×r÷wV‹ÏÌk‰|žÜtn‡’šØ·ËV£Þ¢>¦è;íØw63úf l%4å,§ÇRËnHt-Ýâÿ|`þ·ñ‚©=²JdŸ½¨iáÀ'w¯žÝ˜:.ŽWþÇg JðˆÕýwGzvw¬uÂmŒdìãëçYn$‰8L½€T< µ?ñtöÇ:‚Æ•XÛ¾Âã¦l[‘<­È©žè’ïZMÊpÏ#??Büôù»²µÉî[Oò§âJx™ÏØÑJåÔÝ\4cÀô(È ‚@¹r]}ä^hÏuПËú|ˆþ7Uª'«§5&2Vä Ù/Àïݽx]³ ¶öáìý„ø(ÐmxDQG§bžgqßâ1™7cîsŒ›Sºè/ù·¶)ŒŒü; 7Ϫð™÷ãòŠg™M‰ƒ8€øY@Î-ž…œš?G¼l3¬ÀŽ€GÙ.]\~)Ä€NÞñ/$g ´Æ:öQ?[0c –*Zµ¬ª©¢Åë?³-ûH÷6¬^µ/oÅ$â OÈ0ûP>½Ýd‚8®•k§}]o_æ þrsàÉ™ÂÃJ’´ñh‰Áì©)]]Å]^Ò±®Î ‹ßŒ!þ2“ð¹ÙÜ ™à"nœ°ÙJo&<ˆž‹¦çÒÃ>ú·C 1hwnY ½/Êo:”>no{éæß·«zØéžAÍTQ¡‡Ëü¡eR‚U"k^#ËÇ(¹­¡8yǬMwèè{„àñÀ»Ç̇1 ²§™sgàÃ’þÙð êòOz®l¢+gõ±òâž?U0~ð˲þ/±(ƒ°rň«Y…,]«$}ZâéYâKõ&2dÁïÎVü1Ök(º¶CJåaw? ²ŸLÔ78¤ ÛôN²‚x†Ð»qR(ú°Ø&(¼dÿdt¡Í»g+\=„búR<èz|£¦çõq¢?Ä„{µ)¯Ô&yè<;Ñ‘Iþ:@`¯Hå6®2zŠà–I…g’ÁÚYF•í• j\‚ ªR+Õ*áT1šÍ…¿tîüy3Þ—“M²ôc|\¶¦'Ûáq’®Q%q\=¶*õÚCWÍU…Öþo;Ù_as•À«ã]¾"ý]‡ìiÞqHP¶ÒAË…‘Š L½¸MÕÃ!1Êy:„>š•qöfã Ÿ©ó¨<1b¼böÎ;Ðf_‡Â½Z®ejõÇpÁyàûŸTë^1÷¹.ðÎ@:‰²çOUÑwtû–wW< ëñ¨òé} ã¢ã; >ÂeÓÒD¬ÄùJãbì“yôh5û#™ëFÚ‘àÎÀnÇ1×…ø›/¯ ;ªš6ÁyWoŠÆ¿FzÓnx:jW;$(! °hжPyfÌA8pÐø–oZ¥€b¹!“¯š¸f4K5ªl”ùÝdüý¬öm]TÓÙ©×:ôÈ¡}ôn×ûÜôÖ`¾¬çƒNšÚðÍ)%þU}Óšìå—¿˜VIÄ~íGLbüuÁeU¾j>c[Uçóðx×¼Z‘ëZóµ,æÄZʵ9œ©{éSKb=ÿZÐîÞD˜ä„µÕ§c_¸+—T€XÊ=5v2µõú饉2«®;(膲ދ9¡uËC¡ç×.q¢î†W!¾¬sž^g•pKŽ¿ë¥Ã˜á]âTÏïÕIÀ]:x¨ÌÕR˜.§ƒ¸).šI ê´ à ü–Œe(‚ºgóüTÛ]Ò‘1„ØÖi*Š|øsÁ ¦ÍüœÔ8'õ¬»ÎÅWù’ Èz¶CJík°/Qæ'šð¾]1»Ý7¿XÄ1U=ÜáoQõ°C%1³Øpì·îIá ×}ì(ò+ÌÊ1E×Gï >‹ÀÙÀ=ÓSz¯Iåõ˜gO²ãõ‘øÑ †ÁcTüsõ̺Ÿ#÷7Ü/X#—Ľ{nc•ÂYÏãÑ•5MâõÆ”® íoÛ~èõ¹Í~ … ¢P“5?&œø¯‚Üó ¹VÝëVaXóÜÓa/_yíå‡Ê=ÌÔ™ý~ðîI3L5Ë*”IhœCH˜É[‘*êöŒÙ<âLw‘øá¸ÔS*ÌäòHœÌ»_×F>…ü%ÕI½^ýç"…"œ:$í¨\ñ€Ì¼#X_ļ)˜ F]Ö¶š +ÃUÔáhI/ ½ÿï@åc&¿.>u-¯ŸöÈÊdö…0ëœ[@·þ‡¢¾ÆÙó ð€»ûöLç"´© õx)5 °ûxG«±îíz£½ä@9VT¸½Ði»†=mšY¥p¬£ÅDo=ù½j+ˆ©µ.„‚î†ý~¢ï¬6A,N„~í‰GþˆƒÞ†²‡ÖÈØõdÕOõçŸt ü¯A7o›\s[ày ­kL—^,µ¼*cRl¡F'PµZ9¸É«·¦ý½yª³z;ª}«s³qô§ü>Á_ bmäæà¾¢¢]E¢Å±Yн$‰Ã}Šãvgë†ÅÇ9ŸÐ×µÒ¾â,g±¢éÅÝQa ûû2•ø'Ãî(c^”*šRšÛœ*Ju¾ 鎈Ø~ • ¥÷¯fL2ÈFMˆ§!ÿ"ŸnQA³Æ-^LÍa|¿óì-w±x¼ªôÔ ë\w®êÿÜCÖn«œ«»9JÑóæ²jð2^‚•l¦Ò°¤M›*©¿¿^%ŒßWürqÿmÍù÷)ä"“ØWεï»}€_Ϥ)dש>NË(ýêãÖ#J¨ %˜®L&ÿ0Óäi&‡†šÞL&{oÝ›óeH¶òrvSd1Åý‡˜R(öÖz•^B®‹Ëwsôû ÷\QSÉ@>áÌŒÊ>)/àë_j…µ’³»þ‚~He\ü¿È:ÍÖÿ‹øò Ñ×%WÃüQ'÷âXà¹j|z=7¿º Û^ª7 T[á1M µÒ·¿«OR97½ ó#;þAÏ3Z=˜B,¼ÃH⦒î"è¶.)¢VÆu£'֢ΣM/º ‰ís+h"¿¿H®C¦ŠFGÞÚ7¯°|k¬‡í*H5”ËÇ–i/½Yo€¹¥çJA !Ü8ÂøJuõK0Y-¾s´¿UkðbÌ} Ü¡FoÅ ˜u4Œ[p'ÿ“'Ù§%Ÿø_K%_™r¢à–†[Y:qªbø9r©½Óa‡Mc jÝO•mi$xJ•´Î²  Æä€&”,«uùœ{•Ï|ßö‹$½*ˆ+\>,A‹¸Qw¶¹ë¾å•èö±v‘Y»1bÝS¥©ŠÃ™·¶£AÍ{sù“ WÀ¾ÍÇòXv+¯tÌt 7ÛuÇØÓ^:ÙPN[\8æÊ¥*ŸŒÊ×Ý qå¡f¢@ˆåùedÙcœ…s)ÔÕî{¸Y%” M¶rÆ€«ŠB7gx(⃵'_¯*É}5Oàc˜§/G“ Ú(`ÓwÎp®Ûk%>üÙCå Ä­sBŽ/Áì'ÀAàÄr×ÇÇ!~šÈ B?ü pŠÜüãCqŸDËÚ^ÖÁJöÉï¢nª”‘ÕYµ¬ƒ–R¤”TMi¿­FûS’Î*/ù3 Üû cënCm(Þü8\]Io¤› òrÏŒ$se(óK¼ß/^<´3UŽL˜Ë'OýY²Çë^ „båÍ3E½…”PÅýžyÉW'ê1†ß•*]<§í&®2!šÑ9H¼ÌÖ}P¸[ÚÔÛ˜0{{ð)D}Ú1{&â; ŽqÆ4a"3Úh£Â<ˆbx æ[@Ž8¾LÌ:Ú¥F)nk¡ìC9˜sÆËWƒ¤Í$ž/—ØAÕ4™5ë"Ye–40£;ÚYAUà˜®×fVP²Pƒ ª-ãâõ\ 'Ï £Ù’W»rØ}ÄÜ?L¾ ªYþ œ„ç¯{N²þ1Š?ÙMdÑ)Se3É_IÌß¼«µ£zX©¿u¶ZdÓ³‡§—möpY@ö*‰—¤¾/^q­¬8žU;ë À÷Iµ‰€vå³Ö­…ƒ”=_bn¸ÓpqœcØTÇF9¾–Üï]¸QYe{LòŠ$rÌÕœêøLê=]•«Óµ\oç\ÿnõ.E*vñŽá¨×SiÀj‰%¾¨¥tßùb-\ŽíGP‰{*â¾ødŒk»%Vuä@ii²†âä ŸÞõ|ojÆ©!ô f lÔ0u¥]DÕ ÌÂZú;àZÍÁãˆò&9LÆ_ Žÿˬܾ¹ µ«Ô€î¦ /¿·“·i"³bqÍ|ÄQ›`µ€U1y1¾ªS‰Ùíþ9¦Ö3gVdå”bk9¹C)º»jþ³ îû{š’Óß[]o­åëiA¯ þ¾CéG¤¯O_ë 5 ÄÊ%ütÃ?9°u-oØO@\ƒiøæžÕ)¡Ùï-OAÝÓ'6é TA Ôpw>ܱ¶Àdò1Œ×Š6¤Š9r|Äç9t˜]ë¬î´È‚ö ½BèÄwÒ˜(rÐkz…ýˆIoYPŸÄÿ*ôÔ.šRf‹,imâÒ¶,~·í’*}²p?‹¼/RÀZ°ÿ%¬v/î×/k)Ë¿óº:þ­È_ £|k¶¶N¹~xØ®B¢´7 U¼˜86Pµ:uR¹ÀSë+ò<+˜P©ôXôL¤wT1tÀz·â­€îŠôY™'îTžèpLÌ8Ö#26À‹ÁÖZÍÓlÔˆù„†R›YÙN(;·­ëdÛ§Û ÔAÀõïMPAéý»$)+^ š_ %ß[£¬ÜíH7F]”QÔÉÀºÈ"êÒÈøq«dkFWL]¹5Û[¡QM¦öß+æÝ+‡¢„:•åvM£ùîø…Æ4üìì«‚q“IÉ[ňbþ(9ÿd²W¤;¡®› *w9…—Â'lnµS·)–Çq”3Ž!c¥´y7CoßøVHؽMÞ¿K™¦­Óå<zz𤨞®ï^f9/û^-q<‹,uz®Õ2~ÿ± ügºÈ!G[» °Š4š°:&LÖ ¿Ç—x/të;™öõÕͱo¢½´<7ØçÁâp/‡ð9àþÕ4‰Éx…ÉZ Ä1Ê×.‡üa|¯Fc±ˆd]§ý\ëéÓóIöI¬3ÑŒ¦ßvÉ1âjqTy’닚ü6Êãù½KÁé °–VZý§*¨úÁš•ïÅ#›ÞCÊã K*_¹‹ÆYú×E”SÓ›2ùËÇó·åùùlK·¶C¯:>EÄwì í»:k‚ر!ôµàpát\Ë1¼g2 ¯—8V%g0Èóbñ*óW•Åß°|…’æâ¦³‚ætÕ\)e‚§Éú‚à!;u«ÊŽßìwÆq±‘ÏJ„–^œß„xGá×Öû3´;n†&uã:?•…Ù1 ÷¥ä²+æ*¨¥`¦{HÇê^‰ê]9»Ãwx'6E¦Îõ¤…ôOùóÇâSgåôÛ± °]O«c8oÏo 3Khio`“”*”ÐÜ8üæsy~uÚ52ZLÆ#bòG€ÇÌŽw0mäçe¤ó7èú‚·裡žÝ! 0pÀQŒÈq=0`V ä}Åüú»3ͳ©x“˜š– =eý¨G™&“N ¦óX– °Yí‹è£uïÏ|Wè‘À¸:Yo«·¶ÅªH?Fz Òö”©TÑm¢„hg …¢ÊèúŽ£÷ ¾vEÙÒêO2òU ã­~$êd/zz—<¦@û…û"}Qâå2×܉8ñ´bø ³¬7SÈñÍ"žbø›$fºßêí¢\”°î—M!­+ãzjèÔ  uWjh*ÈÛ âÖ&ˆ¹ƒÆqz©§<îê›Iàñãà¯åέ®0ZmË6À¶˜hAÊK”O~ óƒM$¥7U¼%¤íÉ e–PU«)èÁ!Óc O@ Šp啿Šñ„`½Ivša›¡‚¦~h(µê,?óÄ}ká‹‚ße‡ÚƒÄ²Jô(F¥•²ØzY².Œ_qà)˜ËZUà®+lèØò–±ªg”S:•|3°„Ðåi.:¶Ei¤ ©Ã˯+5ùcàÝ“‘€&Û· °’GÈ'h¼“µ¯(®=ÇËö–“xBWª(Û()¡ªåà8çÙŸFë3 ¾·yW®æDùé!ð‚ä0ù&P… ^–Æô³i*j9óxY¯”Ãg€‡²yÁ. Ýýˆ}ˆÖ_Elx‰ìSãYòâ¢'5⋬û¾ÔÐ.Zfº³–%žˆ´-étjhWCs‚˜–H Õ¢Â5–š·â~ð|M§íÍ‚PÛ´ °ÝTP€<þ&“‡°×š wPBýCèìc# Ð,›ïúÊô ½gõó«ä¬^•£Ÿ!q¦`‰¹ë?žÎ4Ùºœz«þù.Ûó}d #FëŠ ÙßÜ/'>Xæ«R·5+­è®è[^-EÙE¯xc·‹%½õ)ûº‡Eæ:«„ çåãø{q «9Ùlì/t6ŽØ“íæ;²„ÒžÂöƨW°B¸ÿ¾<|~_^ã1×¹êÊÈxÿ(ž£°´:(¥””°‚Íé ¿³ø°á®;Fˆ}dì'°âu'}¼ ûÔãøÞT™…åÒW Û É®.•djè⬠öþTèÍû·È&0=³û ÷?J•̨ï‚bü£¢u»wd`G j¿EÎkÏ‚@³z¸Ö¤­ÛD Mã¡ù­¬8{\¦ð¯gNÆñøµq|6ðd-¨ „iRARÚ .¼†_$è‹¿ÃÜy»oW¤¨ ÞOÆ~àh‹‘—÷WfŽg®9þÜ$Æ?•XK7»‚ª /`a`´q›–ú¢†qiº§;+¨Ó"o„ûhEe'}ÞÆôeˆ ~ËèëɃÛÎm€gUÞ çÜ«ßY8–úû6RB3Mã:ª k=Mè«ùØO[½*inßWYeöï€@uâUm HdÏÞÅ‘sAçØ~ p©d`ŸaÅAa¹ó•ˆörx¢ÅM Ä¥->ß ,|4tëPνÀÐ΋^Ó“{ºr.ñ]@×V " zb@{O% °1=ú&ìgîYè+KRBÚJ(¨lízÊ^"(\MèL[—LÖâIyŒÏQ`MÕãÚ¤w"WzÕö£vn¼›´‡î,ôn¡/Pt=ÊÛ¨¦ñ•8b_(ZJL‡ ZÝ}×*çq3ÆŽ¿0‰ùSe.¤Ã \X€Rân/‹T¯ F2ÀÒm£QAýYJÒ~ê »:|6;­d‚ó]¹6þÓ«&9q-ßs#Iذ!ëçÙW`_?¥Ú˜õdø¨úÑÈ,•·õ>¥ § ™,ê~Õt˳Gc€A¼òU”½ ïÝ“h@Šs¥×TÔÉ*¥õ*འyÏ´±¨ª¿M>1Ñ0ÊD«ŽXwV†ŠÉ•Ý×c:¹çÒAýZU#˜ýwÝÁð|Ãg|,ÂÇOÿÑ©6IM¯aÕ‚yåd ŠX¡£fV²a \ä,^¤<ü}åâf„ü¬ \8–\Ç›8V¦±Ñ¼fâ ÃÉ>Eø†¶ŽFõÛTµ5èS'ÖG87—¢f ­Y°<¸rmëϪe4Ebþ ›F±Õƒ R³"o'N¾m²w#]cÏ‚@ÓŠ/½båa©c˜(›ÜLßò2õÎÓ'¸òPJ¸ðbn&6Y¦vJç:ê¨ò¹™e*¡u’ô¨ÓGMEÔÆVaqK¬[xB„ËVȾœüsùï×Õºï³&~Î ´ˆÕ¾*\f ÈB&·u pIqŠb5‚¯Ž¸¥#7•|sÁM"ñzŠÜÀAûæ·ÔL½€Ùekxr;ÍU1Ž)·¼€@¨aØ;áý‘xOIûäÎ'¿aâ9š"ÔDŒ0W“ö´Ê`;”g>9Wøíû øø={.M>ÍrJzf6üb«(!æ…cvã UQ-K41‚m² z󼀦eª„fà—¤%ÒŠ( •ƒ –’9.S8=âÓK@ÉK8ø"ðàÀ·Kz;]ͦÅÁŽ_KèFײuÉ7Æœˆ¹Ä)ŽsœOë5õPM]±ÏA Eç¸a‘wy}÷@ ϬêTƒÊ’eC·ó‡¿«6Znj€ìqu5À¶<8óàtÌ»§íi@kqÿ%%4U nxЦc6é LÓ5­‚¢©)”PXþ¶™ä& ¥ÍîõÐO5ÀQiõzR›êqåõ¤Ðx] JÉ•‘Š–2‰n0Ka,æCÔ·Pö]áïWÔ?¢ˆ'üGùï,¾ìë÷}pp °FÁéŸXþýàšBÇšp ¬kÈ\ |<‚`V{yàêØ9 e^ 1yŠ/ÅÀ éð -ã)¬T¼‡–¥Ÿðê4&Ô_žV^‡ÈxâÉÃL|çÞ&z8Tò5Ã(‚}wßÓK¨©À«”P*nPZæI3l”*Z£e–J"åÔ-©•ã¿G`®ÇßwJjZüï ¥amw+TÆÕ«ë¦& QIuq¥‚#c¡+)ôô,Ëwö^U†ÔGŽ–ÐL#'®‰Zt——¸oÓ «AŸ”M³Bý÷`Yà·ŠF|!â±Ç‰Ä÷è0UþÓµ7ÈöÐW€ï!âë½×RW/!©¢SJ(õäo¶z˜yª¨©¢B8Â8º’*º1£U ÖhÑœÏÚ9Q*•.Ú̯€Xõßê~Z=åZújÕ -¿c88F.¶ÒÊ?föÅV»©¢¨D»‡¾ÜþÔì€ZV¥Jxº³Z»…D‹vêfIÄôtõL¶tîè4ŠQÄOšãÃZù°sŠÓŠñÑÊÇÏ>­µjÊÂ1uôÚò^B3’69c ÖZba=?¾ x-®þ^9]=fH½ž¥Ø_RÑ=m«zó33Á^8x=¸ß_¦•twöµãI+rì¿kß‹ÆMÿ¿b1ÂqÍãŽÉß¡#@5 °“º3Ÿ<û! Ÿ+§«—Pª‡¿–ð(Ö{=;f ”­ ÀKÈ7â Pr_±®SŽ-#胖wPÉFIy,Pj-%ÛxË\öTKˆÎ1Ž^²ëç‡Ì/s̪Ç2çÛœ˜º‚È «ÿÆ¿' #B' °óòׯw3þ:‡;%´S3hœµw(ãž‚€½>FÈs6K}TPJÉ»MwÈ‹¡ ©ŠÕ¤µ«šfNõ+â¦àåžþ;ËNë7éöÉ&ÔÕ‹¨æœº»:9$@33Œ"df¼ÊäAkÄwIJq€C#ŸTŒ·Åù¹‡%¤„I¥.OaºŠÒÝUt S/!F»ôÖ±o’³ 7ï¦?X@ ¥è Q;êéÊ™º^ Xdu÷v ……J:õÙ4¨,Ž˜¥Æ-s<·UÈ B—aî˜ãws„Xþr­éï(ŸÜ xåa ½½„:¼m˜10S,n¹‹â1¯ç[³ÔJnï²¶ÕeÑ'¼ƒPVãåc ñ€rgͱˆ)HxSV{êØ¼XIwz1XHõÚ̃ßZš êkÚ—#Ï”ÿ·…îüó Ù`uÙ–O0~âªÃR–ýN¡§Ç¨4”‹À¤â h *(Ù0®ÇÚ^Ô'¿wHù‚x€û#-ìq_œ§{ÏaÙøÁ²]=ûË{aè¨ËËPGWḬ̈§™Äñ_!ÞøÔ‘ªØ ZS¼Yùä¶ØŸ?,@ 4žì¬BO,Û^z“YB­Uå1íß^¾Ko`-¤JŽ:‹âî‰tX¦M*(4@ +Кk[, Žº¨ ®tÐEÞA­kj’îò,Ú^”[ÄúRCg^@<Eïž0=@ûo;}óHÖ>ì‰ñìÓ ÿó°ðC;¸…Þ‰c2%X™êHƦú ô&v­ùi'”8Î®Üø”¥ß—žÙ•Ú¼¬^°/%¼€>¯© -¦ >–µÔ!ºî¬ Ž¬£Âþ0™«…rñ’ïÏ‚y ²Ó ór9þ¶òÉc«k]c'7Ê'ô[í5¥ÝC MÙ‰ÍÒ­~³èS®)%Õ3ŒD=`šÊ$JYöå4Í´’Me±„_ »”oŸm ÅÝE iÙïžÑ=.¬þXÓø<)> Êu€Ãy|-ö­Ï?l(!”P‹.R\` jBHŽiî 0›Ë¸§¬Íʰ˜™R ýÃäSTP«~¡ñ¹°Ô©ÀÕÍß·b©¡©ãNo5ýt‘Ðå´”ýŒF3ÉÔPÚAëék™EF­;ìšà7‘ž9(™v=Xú7å“Û)Æ6ÎÒÞ€¶×HŽÍ@Æu…mƘIšŠ¯zŒ} ÐE õZÊ^ò}¤SC[¹”VÖËZí]ÇÝ´æ7üN½¯>¸ú}íÐ"¯¿(ê*>/$|wàmƒr`/‰-ž þ%ð…‡$²„Ö•*ºq%Ô(î (é ÈSZÈL˜[ŵ*d*<»ÒôNóçi/£@"5´IW¹»@Œ*¨«N-5´çòNÂÌ ñY?¢f_ä>–¨®zaVSC+ÎX™Ý#²8ÿ¦`ˆŽg[ñ4w`OâÀÙÀ©À_vž@•ÞYoªèPB©qªe È«ÔNcT*+(tXË‹¬l¹K1w+Ó”üÎéqzñq%q·C‘÷y‹À9¥ø»¼€"³GŒ"¬¸öÎêŠ}½ù—À—yþnr9ø ˆwþ}σ@3U4l Ut‹z Í ¼ªÊ¶ê Ô¸åâ÷ f•"kˆP·L»ª„»™¿ŸoŒ:ìŒ$²ž:-r4[³gñ€é>ÝÝ=» Äz‰Ï6Ób]¾)³Y±Y‰. ºjûó•1øá¿?Õƒàp¾Ä×vÞÀ¢,¡m¢„()¡f¿Ÿf–PíPÊÔÑ1°†É›ƒGš€åîÀë2éŽíÖÉý:-°Î†qÍù=îÏ êõRJY*¨c™Loì›sÅÆ±3&?‹|+Þ2èŠWù æ1ˆ_B|õ°£„²JL@ë „6ã ¸ÍéW½™Rs­šòáÌ8@µ¸ú–ï`™>>Í1 }m§qÚ H€¼Ü­Jq±\ÏÅ­û+Û6ŒòbSLõõ‡üàÓ/ÿG€3à³E¼…£Ÿk{²ç)¡ÆÊL¦ŠNÖ6ô¢A ÕÄ¡ÞK¨ ÈË@ñD.fý*¡4›¼¾»ÿRÝC+dº:v*`-Vàµóë ‚ÔáÕÔh0/ð èiíJ·ÎrËèœUð=¡‘ñ¸Ã¢¥Êƒ¬C{^!Çg)æ§Yú‡=¿S”i³mð½„f4T"¾ösÙg(—ÈCé¸?ƒ§ËâWO:% è“À’]9;¼-ÓY”6 u~f‰Šà©g•Å4U‰ü¡}æÝƒÕ?À‘,Ÿwð,?ØøâÃÆ¨ZÑ]-$´˜lª½„*–~*U48ÑɲÜW`’Áx“ÐA™$ziA'Ñê°µ®±.*(iù/Y%œìÔ ÇRójž‰ÔÎÒÒž+þÚ|‚ê=ÀW«,¿·‚/tÿƒò.å“›a¿ÔZWÛûÝë L›·Ò) Û˜%„Ú½jAêf¼ Ñn Vã¬wXÎZ¢—PŸ¢‚zÆõxôx+]c$SÇ[½nW(9þ°LÇQ蟴’ßZòk—žø>ÈG )—[<|2Ñï3l` î.ñš·{ÆÛ &=ql:„¾I …ÆD­ª•<ÍÊU€@^¡ˆRžAªsgs z²Ú7¥€›™>JÏH]²V±W3@½@¬ O&s‘Á3Û:è£x\¦Q|Œðí/ ©ý Ò«½ôïòü>xöêÈêTîê°7;c §p,•*ÚRšÕlÏÇ”ñ‚’&Š%ž¬§a\*§™*aºöÓ“ÔùÝïÒ9!œþÔÒŸ­‚fÍÑRü‡xKB|]rDÛ  Ò©Á>H>¹-ø·€/íIh®ÔêŒT=Á6ÆR©¢ajNwqá K8EçDU¼‚Êçš­ŸSó›@ÓGµ^O¤†¦<:VÏ/++qƒç ?«P<ÁíÛšš;P¹Žß ü ðsÊg`ýd]ZTò¾µñ“d¾³'Wë²YB}½„6é „Dª(´ÇNVvp[ÑVƒÐÞeMÁTç¹ñ{Í+p‚×w[±7 Äjá/‘§ß o±¨ÌÍÊÖË£iunÇ>ƒ•×MºLDä31§`Þ5<¿ ²5râ¿Çà›Z~:péž§„Â: ǶŠêHMÅZ-z¦rµ(¦ö×[³ú8E±”ü|95­™Ý4µìk™9nš™B]·ŽÔ¹F}$®ÄS=Š„uÙðÈ0ÈÖËe/´|cðSÀßÚ³”Pµ—Pg–ÐöPBÕ!ô5£‘*Ú¢ohSE}Þ@sHzçD15@ªTÎ)EÛ 3Myy&.¨­)‡¯>oeêUAÅ&L»‰6RiƒÛAmÁ§Á÷ßü…á`íÔ£ÅüCà%7µüÇÀ·÷<%D%¤mn/RÆ"Y8–Ê¢ÃOYï5%Þh˜V=M-H­lQ:ÍËäJ»Ç“hyG5ÊÇsE“žQ|‰äßAÜ|Öðd0ÈÎË€ç[¾1òZ|y¦8÷(%¤TëÍmH ¡íÊÛYª(ꦄ*@’,([à Ô¾³Ñ×êV}h’uyÍAż„„7œ® VӠ־ߛäñ©Ñ¾ðjØÃu+ r˜ÈO /“|ªMŒì J¨oÆ@²…„¶þièBŸˆôˆå%O»£%EHx5…ð6’ P+YÆ7Mñ¢AUA@EÏþK'ŽÏ^‹ñçm¿Øö¥Ò:dWÉx½òÉ©Æ÷ÆþÿŠ‘(»R åB׌ºA`+g/Q8– W³„š 5©Ð¦„ªT”*Èú¼Ö±5g ¬d\¡o¨ã³ÿï(Ægóüä5û9À÷ËŠ<¤u0ÈîÔ¬‚îkqªÅËïïêj/‰¾›¤„p{ìäÜP§7Êœ ^0°¥A»4)¡VCµO£•‡Ÿ¢„¦ >”€ÖS°Vù¾oËñÙr¼‰à¹‚K7zd€AvX ŸGþ…x›ß>»'(!¨޵‚ÇÛ*Jƒ‹oZÖRg€¸KQ/êÔU¸5‘F\ fµ7-yz¦Š¥è®DW0_ž€ã e?GæÃS4À {_.þÜÑ·‘âÁ¯³K¯`·;(¡Þ,¡°=”P ¤„Hˆ» Çèî%¤”PS¹Wû…j…Êþ‚;†É»í0…%¤2åuþ^‹X~p2ðJàÊá‘`ÃO&ÀÇÇ ßÇ'ç+_ß½”PØÙ‰csê‡6õ“;Y«î­XÜ]©¢}q”7ÑNMS³8KhvlÒ,^ƒ¹ pà=»j ’”Ñp Ù"“û29¾’˜¿2f+·‘_‹ðë’NÞÞ@EÁ΂¢±þòüïS…ì6˜$‚œKɼÅA± Ï[:T²Øn ”¯~¦Ö…º‚ë»~Ú ‹û å{cl¦§Ë4c.Ý'a$Í'¢õà,ð·fçäŒêæ {ˆ¾²=ò½ã_„o‹ô(툓ùAÅÄïÓfk±­´“‰OêJÚ±­Èq Íש´~¨Ž(V#ÞªôáV?_}Õ8M¥[MTNÛÆÿô>á7Ÿré“>=¬ôÁd.u{pžåcdÝÞò}±î#sÃCb,6­øòwÅâg»é)TÌä&77ju1›m`CtÅÚ.¿ÓÑó@+m ~F¹®¬;=ª7à9LÕÓ6Ô¸]À\Ì6öw‚9+¢މ¬ÕLƒµ?À ƒ,'—g—ÛÓ!žŒõ`£{Iüp`G)¡ªŸãqÚ{¾¡Ü»¨ŸMRBÓï*½*%TÖ L)¡¥ã*@˜j±ñlY‹ «|fFC5(!—ð]á`Þ®"Öóƒ  2À ƒl ÎÇœ¯,>qs&ü Ò‘n\cÇ€€†7P6=sS¹«j:÷ìcƒÞ@Ë2ŸÒ1  š*q7xý8Ðpb_es»¯ØùÇ"ú¨á¬ò^ 2À ƒl—"ÖŠùœi­ü¬”Ÿº‘»YúÁQÛ M”W,ê*ˆ’³Ù:˜eøT@gª”*èJ,bš™3£~\Ǩ雺¼êç?"ò¹üàÁç¥xEt6¬Ëdi™B.)6Ÿ]d›Äëɺ§Å@7Å>é˜mõªÊÚ|(µ®´Ò&ÄjdìÌ,ói\À®Yù-ê§’1Ô<­PRL?6|Aø³²Î‰š|²ïÍ´)d€AÙj¹ø+™¿²¢@7‚x âäá4É·²t½-ª¯¦ŠvRB´³„¶Š"E ÕSE»¼Zª(úâbÈ?ƒ8_1|9¾0kÐô —`=$¾ |ñÞRÄñÆF·èæ–onq]Y×~jÓÞ@%KÈ©à±ÔM m*mfiªÕ,!ÔJ®”ùð£ÏAü—¹ fú2ð#+s~¥?ȃFr%pp§Ú3çºqˆœˆüóÜ ÂI!ê$Ù7²tMúj{S…cY7Ô®Ø$Ì*w+©©EƎפð5¤‹ÇEÒ…ÀE¶ÿèŠTšŽ¬dÀ  2Èá(_-·s<‚îG\Çcp¼n\]'ä\Gö €¢tmÁ±à«9h$s‘•™/PÍJVk#â)”¬?¬!®þŽÍ·,¾cq!昋@—b~@ðåh 2ȃ ²¬¬‚.‘MÄÿfÍTô±ÀÕ€ƒ‚£O´88QAû‰#|#`Õ£ˆº¾Ì>Op-¬¾¸@¾ ëBÌ0ràëÈ?–}yT¸û'] ü¸ø1æ'íd;dh1È ƒ r„ÊÐ tAd€AdAdAd€AdAdAd€AdAdAd€AdAdAd€AdAdAd€AdAdAd€AdAdAd€AdA¶^þÒÚ 2eŸú­%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbtEXtSoftwareAdobe ImageReadyqÉe<IEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/favicons/favicon-512x512.png000066400000000000000000002272671431412030200245440ustar00rootroot00000000000000‰PNG  IHDRôxÔúgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“€IDATxÚìýyœ$×UæÏȬµwµ¤–dÉ–lɲ¼àÌbxÍbÌÎÌ;À0ÃÎï0¼?˜1ë0¯‡öe0Æ,l¼c¼ÛxÃ6^dK¶dI–µoÝêV/U™÷üþˆÈ¬ÈÈ{#ndeUWußãOZ]U™±ç}žóœMT•hÑ¢E‹-Úùe&^‚hÑ¢E‹-€hÑ¢E‹-Z$Ñ¢E‹-Z´H¢E‹-Z´h‘D‹-Z´hÑ"ˆ-Z´hÑ¢E-Z´hÑ¢E‹ Z´hÑ¢E‹ @´hÑ¢E‹-€hÑ¢E‹-Z$Ñ¢E‹-Z´H¢E‹-Z´h‘D‹-Z´hÑ"ˆ-Z´hÑ¢E-Z´hÑ¢E‹ Z´hÑ¢E‹ @´hÑ¢E‹-€hÑ¢E‹-€hÑ¢E‹-Z$Ñ¢E‹-Z´H¢E‹-Z´h‘D‹-Z´hÑv­¥óÞà±K^º«/ˆµìÆÏ" ùÔ÷SErÐ2™E5G{}  -¨–EÔb1˜\Š}ä9Vrl¯O’—ûÖ½¨¨B>$ï÷09TµØ¾[2Ã!y’ $µ¨5H6ĦIqŒI‚ä9ùBò!é +¶=O$A‹«U›€h¹-¯ ÁBžCÒCD-Ö$Hž!ZlK­EÓFsSl+bÓ‚ôAûXÛG푼ß{jb¹T¬>ÕËTäDô™¸³ÓßU=!p³¨>¤"·(Ülî0*Æê)ƒÕ°ŽU;æÎ6ÃyÒG²uD 6MÊD1Y†&)’ç¨Iµãs"é!IŽªDs¬1˜Ü‚->§$Å峨 –M»VSnOaQ›Y¼T_¢“Ï-XÅb‹[&k…ò)Eñ}’âÔ0¬QŒ‹¡AE#ˆ*’¹ V@#Jž€Y1ÅïE³ É‹÷Úb;$9’D#ŠæÅW AE±bÀä *hª˜œb&ÇXƒE0Ňf9ja©Ÿ ™ÏgOI†ä ‚brKÖKÉE1™û€âyT™¸¶vtMŠËV~˯¤±-Ž͵üÎfˆ$ÅÞ ¹`ÉII1¢#¬å9 `Hè¾1`†Xúr *9O~ðg"ŠEÛ9 Z´m²øBàÉ¢<Ósµ`öË~”eYAd¡o‘ýÀå%!:-ð°QN‰ò ÂÀ'÷ÿ ‹· Z´h‘D‹¶=vø&àË5é=QÀªŠ,/ѹíkX.·w¥ˆ<]‘¯G9pµ·€¼ xpC¼5Ñ¢E‹ Z´ùZ¯ôôP%ùjà "gåX °ؘ+€/&éýgU½UTÿøà³À Þ¶hÑ¢E-Ú,&ôP¾Ì&Éÿ‹1Ï•y” °¬"®%íÿ<Ö~åÀß÷y¼™Ñ¢EÛ‰«¢í@ì×§ªIÞh“äDy® »å»dÔ˜g òÛ(ÿü "Oã]-Z$Ñ¢ù¡ÿÿŠò>QùŠ]üî3¹H0?c“Þ_W‘'öAãmŽ-Z$Ñ¢Em< ø[óó ýs†ÒÀb~D“ÞûAþ»Šy2h‰@´hÑ"ˆñߘï^|ɹzŽ‚.aÌj’þ“"ÿŸŠ¹2ÞùhÑ¢Eí|µ%Eþ“¦½?T‘Cçà ‹ê &ù1LòO¨þ$°ƒhÑ¢Eí|²øMó«¢ôÏ·“‘#"òRTÞ.^ŽhÑ¢Em7ÚÊÿ•ÅKÑÕäÙ"òzàÿŠ×"Z´h‘DÛE¦Ë ¿+"߯ÅÌö(„W¢ü`¼Ñ¢E‹ Ún±Eˆà¿yÛ£½ôw5éý|¼Ñ¢E›—ÅqÀѶÂóà§T̯Æ<öÙØ¸ÔúLò_1ºÔWýY£±uP´hÑ"ˆ¶)¬.ÿO6Õªk HòÍóß$–±M€»T€ÝT€^¤¸lÃò¿ Ê7`¬¤Uºþ§36¿|(úƒdÜEQ€x–?+p¼ü}´hÑ"ˆv^¿ÔDu4•¯›‰ ‰[r×jÚû?¢ç'ú )ù)=w™À )}P‚ýºèÜO•³E1JŸ%“b›ùŽ!ò5}8CxÏà&à$Jü7ƒ<,J¦ð¹’ ¬–ÄàA`½üï ~i¢E‹ Ú9`‚¢&Eû=°92v#ª$äýÉÁXy,†ÿ‰êʹí  OJ/>ruIáb¯в.pÊ^ýi£ 3¦öS¦ðü-eþѶËûCI"ªd„öIñ*D—Ú±M«n>KªïQLùSíÖ€SÀ­Ài)ˆÃqà3åïï(‰ÄíÀ½ÄˆD´h‘DÛm*€n¼fT õ€½À¢<ñ\{S‚üô‡@ÊÀÐÀâœJ Ïþ¸Q¦ù3R iZºàR‚yRn·oa©‚ž£°É N»Ô€Ýþ2ñmV‚&¤èƒöEå@¹çÖö1xHáF»Q¹ áÓÀ}JÂ-Çâ,Z´H¢ë±ÈoS‰sÁ»OK°Wà¤û8™ÀI£œ2ð°)þ8!"ö(>7ÚFÏ¢ «Þ~üëàîõàŸ~Ÿº·¥ÓŸ™$2A"ÐQ¼AAèå° ‡ƒØ±:aE¹[Tn!ã”{€[€{â·%Z´H¢#h)–_DùÎÝ| Ø"£ÎGx0…‰òP§N%ÊSüÛR€}R‚â’²N¬ ¤Øe ˜¿œßþÌþïQ™VÆç2ùAS9G0ŠA¹¸”œç•D”{An—ŒÏ‚~ø8pEH!Z´h‘DÛm¦ÊˆÊÿÃ.›\#¥§>òÖO$pß‚ò@ Ç ïžFâÐîù{spüó\tòýµsœ WÈÄß/RËE¢<­,{XGå>| x?ðR%ˆ-Z$Ñά!¿&é·¤¿R:Ã;ÞF‰t E\þ®žrgZxú§ œ1Êé2)OtÃÃ_ÑiЫ&Þ)Í5üS €ºÁ¿‰PÌ þ4€ÿÔ~jà? ò“à?µÆíN’‚Ò€«Då*D¿ø>Tîî>¼ø`$Ñ¢EmÛ\ãM´!)PŠžÏ@䥃~v´§?þ‰rg¯þc ¬åŒ62ï“Rʯ™äð€¿7OýYûUÕ þwÅØþÒüÅù~õ£Oé—ý Ê"V®®Dô9ß#ÖܯxðÀG(J£E‹ @´¹{þ"íMDž ü%ðˆøT<íSå®^ñ:Zf鯛¢À}ø‹ÙôxâòÒr ÒH$üëªAóþfóü—œ¯Ç`C a×§áçUTVð(àKUå‡îýgàMÀk)Ê£E‹ @´m²+?,ÿ»c<|Õ¢Šxþçz–Ï÷”‡Òâ÷™lxÑf\¿/uú3îØ×æ>€÷IùS%|ޤ?”¥™ ûVç±Íþ~R0‹×ï86<çˆb€"@äj…oî§¼xE_‚šN-Z´H¢ÍË.~xÊÙýQmþ¨ùΩ>ßS>׳<ÐÛh©;õDÏ~ºHÿÞík[¶~ûßgÿFp­ÿ$°«쥕PzýaÀïÛNäÒ.ÅòÕÀ/ÿ¼x}INǯk´h‘D›] ¼LD¾âlÀÈG½òOåÞ>³ ÜÓSl Hšz䊊;ÎÞàý»ÞïMl!!Ê‚Èèmàï%Þ˜ÿòš:ØkK²¢ÎÉë½^cŽ"+"|•äòU¨þ:ð6à¯KRÉ@´h‘DÛ„]üùʳ±óX°°&ðP¢<Àí}ølßrÆlHúÆçO‰´{¨-mý=Æh.µÞ¥%îïõøC‰Eð7-ž¿Ù$h·¯tþÊ{§ÏW–¾N4ù:У¯þNà#Z´,Žƒ¢E‹ Zðÿ£í¡¨»ï'îë+·õ”[û–»ûE@¿o7êø;™Òèý·Iÿ›J,ýu÷÷m£úùŒÿ u"Pö7Á¿5±oÂh뚈ÈA߃È÷(zK¦"o¤è;Uh‘ÄK­ÁŽ”àÿÂíÚ¡mñï£ ÜÓSnî+7.ZN›B èY?(µzÿ*ÞýúˆHW°÷ƒ¸4_“gÃ[íò7oðoÊôïìõ;À¿+ð7’ß÷+{Iú_€Ÿ¶Öþ“Àßï@¸ÁÆÔÁh‘D‹¶a°]àŸ”ÀŸ#ÜÙ³ÜÖ‡[zÊçû–¡(«VXͧå{×â¯4«.ÀÖÊ¿ÅãÕ:ɆϓoH Ô&ÂѪ*EX­—„¿zÌߨŸ5•ù5yýâPc‰˜Nþm|ítãßêÙîô1+ÀЍ|èW‰p9¯Eù[-òlüÚG‹ Úùn_¼d;dÿ‘ÇŸ!Ü´`¹µg¹iÁroR–,,Õ¼ö¦4éàý·yö!Þ­¿ç §rа=U0ð÷šÊ”gÝ”íߪzxÞ.B[€_[€tíªJq‡"Z‰FÑëâ ¬üðˆy7–7‰ðjâ-€hç—) ú| Ùÿª-~-èd"|fÑòé¾å¶¾ò@bYPaoîÈRGün øO×ãû“öãþÚþyø{;†xþ:C—¿z{_ÇP£Íç0«äß–´8•{¡Ó*Îèw$ Uí˜Þ5ÒPäQŒwxHT¾ѯ·È÷bÌ[¿Rᆸ(D‹ ÚùÿIúˆù-ààVñ ,ÛbÈÎG-7/(w¦Ê±DYPa­Šü:¢4OÀþ;ÐÅý«¿o.oN@(ø»2äçþÂtB¯ºÒ1Ñ/4Îo<䨇5yûý¨ÿÄçtôÖgç"ÏFõß$9oTá÷ÆÕ!Z$ÑÎUÏß¿Db~•d+v!%ð>º¤|jÑrGO9%° °j«#h¥`ºWÍ¿ˆBÛíj{¯þ:iiGBKÿ4üÛü…ùdù7¿Wºoh~4Õ’YC íô¬Šò”§Â·¡òDÿðθXD‹ Ú¹dOø_`ž¿U™Ðý²cßG—,ŸXTîí)§¥xøV­/³^+‰yݼÿP5@>šÕÞu[!å~“Ò¹[=éo’¸ÁßG$fõügÎîïü¢0MŽº¾ë—Fe?ðu¨<_à:…?þ Æ¥#Z$Ñv­Y“ü¨¨¼Õ}[áñ']W®[T>¶d¹/UÖ¤¨Ý_ÒpÞí]oÞû't ?ãÊS̀ĩ4“ûøÃþÖ”ñ_ìÒû_À_J›¼þi’Óü¾y¿t¸ÖÀ…g_(ðƒ~[àÏ,®$Ñ"ˆ¶‹LŸj,¿šç5öËøMé}zAù—ÅœûRš²Ô¯ÈÅY;¿o¿ÍcoŠå·^ ̓~B[»&üù=vi¬(hêð'MžzÀµ`à/ êCSùáf_º«^‹ Oøà‡€ß^ISmš‰—à|º×úˆù?6í½ÕçÍûAJJ©ÿ޼aŸåM{rîêCnŠ®~‰:Ê]bÿ.0 " :[Y «ïÀ4‰qlCÛù²þÛ’þ¦ãúêôÌÍ I{M÷Γ¯÷V¨‚º— ©ü¿Û؆¶‚}Ÿ¢ÝÁ¿öÙ%”§å€÷ß,Åe&ZT¢í$[DäjÄüß65ß/°,3ùÍþE±§ÅD¾Så#KÊ ‹vÜQÅh˜Géòö·Â:•Ö@Ï7 ¨IúÙó8µÛ9Õ½³œOýã}§‰ÇæÁ¿ÍëoÚwˆÜú³^Ó¦÷×¶ÛžŠòWZT ü2ð&b«áh‘DÛ^Á’ p•'ƒ|«MÒ-*s÷NúZ´N;š ~_²¬1=˜'8qÂãmŠO÷äWi=†Àë0M*Aý5Jÿ ­~ÛâþLyð:S :[àë•ûg•øEÃïqñÇ©ðÔS€¿UôãÀ/o æD‹ ÚöÜK=ˆ˜«@¾ ákTÍ3€dÞžuJÑ“ÿx¢ÜÐWÞ¿¢M•ž-À?$k|·{ÿn‚"çHƒ÷í"BAä¥þÓy êTa¼eN²¿ü¥…`˜mþ`À z¶*ÏÁ“þ•· ò+ï%V D‹ Ú¦­XX. ˜ÖwEûÞgiÚ{²ˆôÑù×ô °da(pãüӲ妥¯!hÒ$LÐöÕK º–þðÑéY¡^¾;þß,ý·Í*®ÇýÝÝu àÛjý½×ªC¶¿OM˜Uò‘ûÛF 7O(àw¥§FÌ yè_/>v„Ñ¢Ep‚ûx¥9 ,S äÙWz—#Ò—$Ý#ÊcÊ¿=x‚Š©ú|[þ ZHþw¤ð/K–.嬨g¥u¡tµv¸»THï¿úóYÑæi> CB@Ñ·ÝŒh !Ôzè‡Öúû®½4 ëQ7¹éï7>¥ úÜ4<Ϧˆà fê:à‹ãT»E”o¾*þøE?#qµ‹ Àym ðàÊey”\ V/9ì./½ü!ÐD“´he*å¢$[+ž °bá¤Þ¿”ó¡%˽¢sß>¾ x ÓõÊ›†þH ht!u/ÒÕ¨¨É»lM ìõ_ï[½–¦÷Ÿò¨µÙci'Ø{=ú€ë­ê£”‡ Ú~Ÿœ×z:~ïüÆg¡[~Áþ~øƒùàåÀýqŒ Àùa_< k®äbàà"öƒŒÝXUtc‘êWÅí²¾žÿg”÷.ç|jA1 ûm@\‡ä­®:{™­xL Œñü· ü}ch›ZòJƒ÷ïCß4HH›¯™Ìü'ŽÓ—бôÑ'±;·§Íýþ}‰Aå|ÚÊâñò¥&¶…L:”R !,¼x6¯I^ªðbà7€WÇ¥1Z$çžõg‚>OE/*Wƒ^#"«ÞYóºsƒK ' ¼}Éò±%Ëý‰²¢2®åW6Ÿ-¿ñwmTLϼEmhÚVS ÜÐÂÐABÓ^j7ðw{¢êô¼CÀŸ2ÓþN ^Ã’ëàj<ÏÿD‰6+2†fT½§­q‘Ö?#Ó׫ó·U&Ûóž-j^e±¿®è‡ã’-€]k ª}à…ªò"Ç#<88†3Ùù‘?,Z¸aAyÏrέýâw{¬xAÕçý ¶´ÏoßÄZÛèý½ßÈ#²R/³s<­ßvZQ8̨«s›No¹%û=ü½‰{:­Ö´¿i ¿®¾´$‘ ‚×ôü™á¹êB„ B‘ | "ÏM~ô·‰ah‘ì:{b¾™Ô|•(WƒìÛp‘wGºRHþkÞµšóÑÅ¢´oÑ É ^}ˆ7ìÊ^hjýÛ%ö¯ÊÁ<½¥½OßÚ RÍÂ3ᯥÞ>„HÛ}u9Í“þ¦Õõ^iñú'¶Óø§ž™í9ß<é–Èü‚*ß ú³Àëâ’-€oÏ~LTž£FŽL‹‡»Ç–-|vÞ¾’óùžEe+NÐì"ÿ·“ N– ]ÕCBËÄæéýûâìmŽê×@q'ÒÕA9tÆAÈ>¥ 4Õí¥;Kü:”÷Iˆ:¢óþ:èK§g·£Z%Íoáñ ¯Q•¿ýiÛâ-€gO~VDžt®2»Ä’ò¨ß¶jù祜£¾ý ‹bˆgÝ>2¶…h*Û+þQlÑ–dfYáaSÌ&¨ƒ¨l—÷¯ÍŠCÌaíl«5ÿ“ÇÕ,ýOܯ›À_Î"øû¼þ.À? èwîØÄL.º‚¨ê·¤’<Ï ¿fU‡ØD(Z$;Â.~‘%E™Þ®µD‹›ÿùžòŽ•œ›{:˜Ù–·ÆR<ÞÝ£!ZYKM >K. — áP&,*œ2ðù¾rwOy()z²Úòeh–èC½¡Cb¡Ïƒ%¼ëž˜}àê¥úCøOã àêõ×Á¿ ø}Þ¾t¾ßÌé[áO&Ô‰ðˆ\ŒÈÿ¾ øqà_âò-€í¶Qֻȷ+ÿ¢ëÞ®5Òrj߇-o_Ùðú»ÄÌC7:nÓ:o)ŽAaÕÂ%CáCá¢áFrÜh›û,<~M¸v]X¸'UîêÁƒ‰’ dR\Sî×èìˆÚÎÃ=H¨Ã0›j¯Ýðþ›¤BÿÝnðŸw”¯6…Ï3^ÿ<€+?ô;#B`ày ’¼ø…—Gã¢-€ícû0É/!Éïö.ž Ð?ÀÛV2þeÑÒWq‚¿oÁ )És¡R•½Ã{««@^~nIa9/@ÿÊpd(NoJkÛIV®Àº÷¤Êý)Ü—*ë¦æ>â¥êoŸ[W*Œv÷þë×1¸çþĿۥÿ®~½|Ƕ|¹ÆóyiÈôß4øÏü¾ñųxñ›ð- A™Þ¹G•ÿ|»ÀÏï)ùp´h‘l¡]¥È+Tä‹v{ëΞB¢ÂgrþqOÎm©²bgóò».¡òõ}–bæ@¢°Gá@.º•iÿzXbð§œÁ¿%Æïkdhh´E߉íj}ƼI‘_ý}j@´H¶üWˆÈíöYÐÐÞ·œñÖÕœu)Úûú 6? %dÁsÕç[`Ý }8‡K††Ç®^¿ÑâoƒMÌH%°¥üÙPxä2„Såž´PIN'ÊigLAD’RMð}èõ2-Yõ“§÷ïêJ(„ªnÂàÊpæÌü§ÓŒ^ˆÔo´ÝÛ—9<Û¡Þ~ÓvÜd@–Dù_!EnÀuq©Ž6óš¬sî>wì’—îê b­ËUÀŸ‹È3wõÍ–¬pjyÇJÎû—sUH'trqÈÑÒXÓ. €î+UÛ¨—±P¯ø_/ñ‘Äíºp(+”€lÏõJ€Ôäàx2 ÀIQNàŒ)ú"$¶PŒëüÛþT:ÿI K=ó¿R÷_%#¦Ì%ü}õTË^OoãÙ_WÙ¿ ø»äþ&©_hyOëb¹u^W%«üØ1~nÍæjM~fQzŃ«Š1`UXÓŒ’ò眜L•EIPDaM3„žD@U°(ëš³H‚ŠB¢ˆ5X6úmh帇6Cw@ˆôÀPxÓá!¯¾hÈÁa!ãåk šËøN³]ܯüð/D`‹ìÀËw;ø…Enê[Þ¾’qý¢e¥¬ë× Ðw^çàé×åÿ¿¹¤”å·f8œÁZRdòo—)E¥@Vîs5äpõ:œ0 M”ãN$p2-€¯W’0¹vRÿ{ýeÕ2M_>·À?à3¾¿ùÀß×Ò×þ†Zbb-É£1EýÞ~ˆô_GÑD~7£DÕÑJ˜2 påwÌ× úCÀ­qùŽvv €ìÒhyQƒ³ üoyÖn½¡£w|x1çÍ{2H‹é}a€¾5òÿh;Õ¸k.pÚ(®^‡Ç¬.Î oÿáäì_˼L@ŠÞWæðh+<$ðP¢OàáìÁ‰´‹¾-ò-`¶öÂ1i ø7íüvû›òè=]ýšñº€¿Ëëw”1!ö2Ë®À?ú\½™”s nòËÀ4y±µkBR‘*É{UùiWDX‹vöÀ ßÀ™&"–•ífð_,KüÞ²byçJÆ ¯i¯Fÿ¶æ>¾¿‹oQg2ÑïŒ Ï:•ð„5Ã%ÃBê?ivæuͲ’½,YØ“ ´pÚªÀÃ)Oá¡ëŸ+/+íq;HÿÕiuéß´Iÿ¾ò;ßßÚ:ýybþ.`¦Éó×fÐm‹õ'îgÍ55²ôç¥mÇ:«4æé•à$Håölå8´¦Bh-ä!*G€?ý à§"¼EÛ~íR`’§£ægÙ¥†öØ@_·'çË–„b°OÈš%sõõ›óT¢\³nxÊiÃUë#E²Ýn)²ÌJB€)è‹×áÒµ‚ÔœH‹°Å±~ñ:Ñ+ˆÍ¸»bÈIªx=vB›_4þ×C ¤ø7•ù6 ÑÏ—ä':}mÕ†qÎê€øñÜ´ßÒ©òÔñßÔ}¯Lå³u’2ML^“ä{UôIÀqÂ`´m&»1  ʯ"ìÝ­žÿnï)¯Þk¹aÁÒWe¡eÁªá¹å ‹ìÈŠòºU¾ôá„'¯öæ00Ê`·\dÇbmËÊ„˜\‡Ã%)8y õá>œL•ÙH4¶À§ZþzÆü¶¼T8+:4úéê7ö<ðdø·N-ìüm‰}NÒ¡í€ßvÔwàŽg¬zŒ*!D@ž¢Êk~UáwKÎ-Ú6€Ý iïkEÌÓvã±Kéù|QyõÞŒ{’" Ð ŸºXÍBêëÛ)fÂóO3(„ðÓf7=$µW3¸*ê†5Eãv£°7ƒ}ÂÅkE¢ã½"Lp¼_’ÛÐñ/ Á¯ d}¤ ±Ñs{áí}ë1ÿ®àßEùpV¼3 ð÷QÜYô]Áß—¤:„IB€_gËS˜å{ÛôhÔãü®ó®‡êD™V$*Û:"ðûÀÓþ1/ 1ð8yÆnÿc ¼}¥ÿ¾Nv„ ñŠº.T]åÿø_3^p2¡o‹LøÝ‹üŽÿ¶©ÛTS† *ªHBQ¶¹dá@V$žN R0é]™ÀûÚÀІ|Žv£-Ï^EöWÇ1úÀŸ@ðoT ¤=®/!ɳs(YQ_nƒ‡ T[D š(5 %ùþ½Zá;€»"F0_ÚUóäÀe»üîLáU{3níYþ®ñ­] ~+p982¾äd‚–%sç øwXÜëòÿØûw¡Ÿg7}[¼öQ€5STdâÐèýW”Óâý;³AúV‘ªÀìèÓÕó§#øWà ÒBPBȳÌá±G³ÿê#áËòŸPçD?ü²¾7.?0ô¼Lü¾^îWý·¸Ç*oü«jÂÐ74šôç1 ÐøN’àh,ddúѬªŽ@øÿ ò$ƒü;…3ç_v¶À.Êï~&Èå;{öZᆾò—û2L‹ØpóÊ¢3ß•ÍÆÿXRxúƒ=ŸVïWÀ26©5Z–…ÙêûFÉ„eï‡ÜB–í -Å%ðØE§ç5„Jÿ®ÿµþ5âáÿ¦…oêdUI'_U9”öD@ß9u¡€âù¾h[¯Ý8N•Ê¿Ëß[™¼–"jµ€acÖ@u¿ ’ükU=¤ðCÀç",F0;üç»CLRx2 ‡v*aQ`^xþ/ß¿þ ý‡´Ý àÂ\¸ Ûåqÿ&ï?àÚ*îø¿VPK+‹p]þ¯¢®°øAÊ€Ixc ¯ ÄCÕ &é_iÐÅlÒér¿.à?b×/B2Àpm2£îÛoføZ n©~|ŸÅÞF+÷OŽ€VÔ™N4•¼‘ês§ÂW#¼ ø7Ä~‘Ìjyº;V~)b`;w–àÿ²$LÔø;¥—ŸÍLÿk“ÿ…+æÜÿÊŠ?NkQÎ2È¢À%ÿkÅ»§æýrlUê­JÁÓ‹zóP§Z‚ŸÔkeòZÚÚÁ‰CÁ­Z!ãD?Ýø»­‘Øñ@%­>'Êcþ\‹¼€¿e÷Œçˆ¶S€MvþI«@šqñN|¼«àÿ y •=};âÿm¤@€}ù´—³«½ÿŽ Š/û ö²!ñwºÐ]8FEY°5Ps~H››Ñþàö²àßðïeË[© ~"â:6—º µ¿iÍënš4ØUpåîÔGK帴ôõíŒr¬Ôc…p™²bGn@]•P¸ øà*Ð_ ¢EP~avÇãr8¼l™ð÷ögÜ—*«¹ñ/:Žøÿ,`Þ…<4Þ{-úýŸ€š÷Ãûo#mƒfpDl™ýÓ¹ZsCµæEŽT‚Ѱ-àÛ<€hãÙ­™o'@öo›áóüëào4<9pê|]Õß¹  eÏS×»–Á_zWòßXI2SU “!ñu‘Iå¨üÏ*È/õ$YDù/&#è@v…þ{pÁN;¨=V¸¾Ÿó²÷%°’K{ó`qþ­~]¶x®ú êöœgU &™®Ô‚ð.ðõþÝÚêÉ6yúÞ§4{Æ¡à/B»äß’íïû~I èÏ£€+yÔ× š· 8±䮌©<#êéƒPÛf’b~AE¯ -<Œpyî™9OÏ{ XØ)#2ÿõ}ËËög¥ìÆÚ²õÇòß‚šŸKÙÿÚ •µŽ`º¹]ÖÃõ°BÕ¬çØpn.4á)z¤鷺qš³ð›À¿ž,ØüCòª»Z!súž‰o´_õwtP?D§[!Wÿ6Íyä{^»sTz´mVÄî ðR9ÄèY0êð÷©Ë_ì+ÀÉvŸ±ÒPæô»¦Á9ÿêñôòªmêùÕøÝ‹Ûo¿üzq'Êÿ´›÷êt’þi®å7 ó‚?~Ïß üµs P+BI³¶¿I¿›ªaŠ€ÓËT´šø»#7@Ô|9—©è÷7GØŒ @Ó,»áµ‘¥þ=…ëûÊ_ìr,Q–gœ=.l]r_è{¸?Õs'þð›yK,!)âˆÿWÕ+aÞ¾Ëû—P￾4€©/î/ÚÞäÇ þêöè%Ïûêx“§?ò¼«¯º×îóîŸmú.7(SjO¿ì˜ÚE’vbôTþxt„ÍH¢Íú Ÿ^(Áß?cF×yå  2/¯]å1ÖÔ@gߤšR ÐéQÁò¿N&ùiÕM«|Î:Ëé6éý‹ãÒˆÃ/h"­mÞ|Üœ#4Þ¯ÍÀOð·} »ÞßDšˆ@ýx|9 ^`×iÍ$@àé¨üƒÂsã  €vÁëÀÙÿ-zûÿÝžŒã¦èɹYù¾ Q9ŸÏhW÷öôÜ(T<yÿE-ÿu»å:ã±Vãÿ™44&ÔægFê¤!Ðûoj%âáûÔ—¸Xg&üňmÀ?á­ãÏèürƒ:É!!d©4%Pzã*×/Šð @¾»£^8›½¯pgªü힌û KÄÐÍÞ“ößw&T_ˆ-pwªœKMgº3«-åÒ,ÿš¹Ú÷6yðÓÛ¼OÝ?ÙÞʾci‹û7¿KŸèØvΤ@ˆÏ‹`  ~µk[ÌB aIµë´x9ðâ¡‘Dëþ&Ê+÷eÜÜW/Èη`3±ÿÆnrµuí¡DÈ.NÔ–ÿ2;¨T:ªC-¨ïJ:/-Ú|ë¤Átx~û HøgºÄý6ƒ¿ÏKnz†½ý9¸Ï­Õú~ª+Á`hühºWc@žw .D¦Aijo¯r Íã{ë€m÷¤ ¦vïZ' :=î o=¨Ì¯!ë_4àóRQhGŒIúUƒ‰¿«Ã‹×ë(õëàºO‰I^’Jò¢DIHH0$ˆ$ˆ1Hj&ÆÜ |j5çCû2V³(D°ðdŸ>¼hyåÞŒ¡åWwN`ȵfà¦Ý—J¹=ÙÿÖ±Ö×gH0xÊþÚH[—û¬mÞíóÊô³*µÅ¦þõ}ˆ4$¢éôíqJä :´°–¡™Ý8nG%ÀÄ5¡±iXäiæc<¯*Õýñ«mƒŽ\‰„ž÷ºªQ “ Ž“ôûŸ­ž¢¿§è‹ü!€­³\`Ù «Y D°À¿…Ïö,¯Ø—qÒ„õ-¾TáOïfåüYÎ+$†|_ÏòÙvO.€¯ÄkƱÀ©ô ¨Ê¯mÍöãÍŒ§ñN ˆƒÒš½^Gú€n€m‹/IΗ88nª°–A^´{Wì¥ÿô#¤—¬"™Â ‡õÌÿ=(ƒò.à¯÷Thßø€˜éT)Bâ=·êÖØÒ¸!äã›rØèé{r ï¿i›Æ×YÎãý·)Sµü¾çnh‘…„ů|”ÊJïë±úE²¯ÿÜäÈêseµÿ\»¾~eï©ÿ¥< ==,Ô©xýF&bíSç\úØ×ëö_LJýR!8Tñ{¥Y ðrEßl„5§^)àR«.ø#àk#DpÞY_á„ÀkV3®_°,©liYœlóçÚÔ‹ÑbqOªÜÖש°ÇŽó†®m3{ÿ5¿ZÒW…æìÿú —j׿qOýs„Ά‰Y½¤ƒWZ¥µŒþ]Bráêw˜ –IjÞˆòÏdú^äï%·ï{«9¸øË,ö.XxáU/ï?ãœlxýø½þQ8`Ôˆ©©È1± ©&‚ÕF\×_Û¯åDRo€ Сâèb ðˆ‘œ7––ß•w¬ä|p9gÙ IÀb±90Ö9o¯ÃÂï» %ðñ%K†ììÍç†Ï!f9!ÿûVЮ÷Aa EB¡ ¹OÚʉˆ·ê H‘òd>6) SYþV‘\ah@öô—¤gþN׳ϣš¹ŽB‡ö¨ž<˜\°ô£fµ×§—¾Ž¾qç8TÁ™M‚~˽tíËKÄOÄC¤ÁÛ×rФ¸Õ>{ð߀GFdˆ༸˜}>°hyãJNª2• ßeííí¶f45%5ßÖSn^°,î†)Ѻɿϰ«¦øÿ”2P^X[Kþ›eND›üïcíÖhH4l aˆ÷?•8hé'Èjÿ§eOÿ5¬Ú¿T‚fö!Íì#/xSQ÷9¹_1îRÄ-Sñ*jÆ( ì™ÐpŸÔÕg ‰¤•Ï‹ÒÒ¦xú÷_€Êߊ±3Ö¹Zžì|½×XéÍûK=ªõ¿nÁòª}9Všà¶'3_æø®.ï-:¦ '’bâáUëBÊ.˜ØAþŸˆý«»üÏ%ÿ€¼*ÿÏâýK9Ñy>K“ êÚ£½A'ïßG$]»·§Öè?ýQ,~Å#oµ'‡ØûO“}ü¾°ä I˲´Ä|5½ô’Û/ ëg›€ßymJö¬ZiUï2q ^áR`Æ`_9'gm¿ïߣgY§•\Š@ýxŒå Uù#…oŽGØ ÀÙ&=WÎ{£ w&Ê«V3Nˆî˜ìwÙ&bà³E…[”ë•E»ƒgÌZþ'óÙeSü¿z(–°Ò?/(ÌCþQºxÿåB$ê&SÞÿÀ’\!yÄÞŸS‘¿£g¥”ä’U¤gšC7 $sé’ —Iެ’\±÷S$AÇ%ˆr¿¿Rm¦$ž@] hh켎„…kÚ’@ƒžÔ|*,FØàl/õs¤{ ' ¼i5ç–¾²¨³÷æw~q·5¥>[U%`´ðú?µh¹7-H€î´§Aß×uÓõøí†ÈÿÕω‰™iðŽ=^tk¯€–Ñ¿!²¯éøpHC £)UB×ÖX|öevéës½ÙÓ'¹p™Þc±üýO"¹d j-“D6:-ô„üƱ·CO¬£ÇΠGÏü+†Ùm.°Ý$ ~¿\±z¥%†ß 0ú^‡® £·+ß,Ê/kôw”7m“ JÞ¶œñ¾eËJÀÍû¹—³ô¾®Ÿ]T¸³_Tžªì¸Nþ.òÿfvWO00Å«‹÷î•åuÆ{ÜPûOË~]Ê@|Ú¼ÿâR²;þko»íïõä`èíƒgPkÑÝÿA‘†jDŠÖµ»»ÚÃôSï3ûч;ŠV ’ ˆ­‘ÉÑýPÝ y¥Ã õgtAM÷múÜèïÖó~WÀHQÆZnò“ŠÜö¿mäÄAB‘ìBŠ8ÿG-oYÉY°;㘶ìýÛçïX°pÝ¢rÅ@¹z œÚIÚ“ÖKuºï&/âôè_uvöÉÿ£–¿Öå}mgüŸ€‚§ç¿Ü: ²ZÒK÷"™²þÚÏBR{wÏ^±=“ÁÐbZƒ4aù+CÿÈ v-cá_?~‘F;Ì”õ×ß\42;ËE•Ô­™$càu´×Šý×@z”‹2•c Ó$Ã.p¼·LHòËó1›äo–Ì€æ‘D°m–3§\´Táž^³gÈ –ô·“¼ó³I4Æë2Å€ ­(G2aÙ³Îk‹Öªü¯›¼‰B‘ø7”M&lvˆÿO |š“üß&¯7VŒúd³œÒ{âaôôг!A9öÁ3ô}óÄ é]}ûð:‰+ž&ÃIdçÂÐȳ—é$½©\GÒŸO°M`Ý’ ¤8•M@ÿåËÏFð?‡€ìü{y88¼z5ãΤ¹· L'?«ÎxÞV¾jX úØÃöXø|Où—%˳NRegôìnjÔ–ýO»ü?ZD«ïµ•Ÿ-“}êï§ÿ\ ±×9¤u¯ Q\ñ_̹…PŒ¼iP êýóE'Ÿ©¦Ä3`äE7?—YE-,>ç2ú—ï+Z-fï’;AP¤h¼ÃMª_ô©é|2^ &“™ÿÕ0Õ¹ Vj÷^¦É€•ém»€¿- Pl^.7*¿òÍÀ±Åç0vÇgx\ Ù,^ì±ð÷«9ÿ²˜Ó×ùŸ³lÁ{·çÎhã~,|xI¹8S®ÈÔ„»m5ëÂCíþ0ÌYŒÐÀ¥ÿeÆN„fŽÏ‚¯,¯-‘´Õûhc,å¤!µŠstèí¡¥wÅ^ÒKö`Ë}à4zt zÆ}R™¢ùÎ÷^D'ÇI@웼z¦ûG4F¸*û0”$@Ý*AÈ>'&5_¦¢¿„êOë›é—j–rXÍ“ ÏØfÙdZQﯼm9‡²Ë]È3·éçRÃ+¶ª€nò<Òâ›ÎW” 2a-î¬{ÿsx—ü¯âªîr}* R\¯HB¯¡ TÈTÀ®ò?3>ÿÕ©MIƒ?÷ öØ:ƒÞ]xíÕëšY¤ŸÒ;²Bòø Ðõ )cúÀ²Þ‹Z ëv*f!‹ ävö’™ï3ÔJJý~€GƒBBL&ó…丒Ûú\¶¤ŸQøÍLg_–3ác{,o>çÈdþ€Ù{î(*º$ÎwÓù~“CâðΟ= ‚Á@Þò0úÒt*^)‚òóVå}³^‹žÂ= –Wr.;c¢ pÖÙñWþ"fýÂ-Zá¯ö ùt_Y˜±±®Û‘(ßu?óº»= 7.Xç†k×d&ïaž<À¹:·urôFõ,„xñÁaéÙÞ40“y9îwÖû¦iH‰mß0ûwÂ5ŸÞG’=½ŸJެ|ÔžÉÿB¬¥÷èØOu¯AF`=Gz É{уsOÌ_f¹^ÕÀlFfÑu9gÀ·ZKµeû{¿»áŒõª¾øàžY¿Ç} Ëy œ]wîÙª¢Ir©št¦xꪅw-ç¼Ù’¨G’Ýu¾þöíǵ~xÉr(3\”Íž-³®•—¶HéÕõÔ œN`XÙ÷é† ã˜éÐ(ƒ²ƒŠPýzÝ“¯×¾Ë4¹ØÔùê|Ÿ™‘ï‹¶.D ¿§Ÿßw}xxerù^t-#»å8é¥ûœCŠª$@V{ ßw'öö‡1Wì«ØÏ>ôx=5„Ô„]™Ã…¬ÓoÂ߲湻*Düa€ú6Gó=êy!@ïhjYÛ¶<3‘ä%ùÕ±ÝVƒ„ïV´³ItßUD92K´jIá®TyëJÎÃVòÝ{ÓçËÛOó °&ðžËW=œ°×ÑD©êðV¬ëgGÌ}d§MÆ&‡5§’"Ã~”tw:)ÖÑ¢r²7-Ýr®G¥Xêj«“ÝøFålõLyÁßG®Iž:ÿ†O3ç¿´™u–2 YôôðP«¿Ç™a™ÖÞ†§†pbPt \Ïߨ­V§{ lø×¿›P| Ô+OÌëâù7‘×ömÛþD¾SE> ð'ÒqŠNÿ!ÙBGcŸ(WšŽ$¥§ Vxý¾Œû–å\æâ-ÖÛôdŸ­/PKà}+–/=i&ú4 ›Â{æšS•¬óLàx¢cÍ(Ú2gR”Àà¸Q†R*6±O™h£jêNÖú™Öm,¯±r…&@¿B º†’»„m6SM2w¢ íXš@bŠZÿ“ƒß5F 1¿¬üýÞ˜ÝòÐ u=ozÒÒÍ!7êz­«ßíà¡+Ýšÿ´„M…ò”eTÿ3ðà¦.bž)×騜eììÌc€Çwýr-«ð†ÕœZ²,êΘm¿Óm†àîTyûªEÖL±µxØ(§dãA‡gíãu¶xþ^gQ¿g.3zìgó™ ":{`gO¶å˜œÄ —ßv–û¿+Fré'oDx@aÝK¨{æBrÍíŸd7{¡_o—þÛ¬‰¥þ¦[ƒNNÀïÚ¡ü#D Øôyr•¨ùïHþâP:‘(œN”ûûEs¶hg‘ìð*€G!rJèP[Øg…û9o^É ,ëìøVéNôøCåa+pGOÇà-fŸ:@ÛõoÁ\=¿ßAŠÈ\T£Íxé›ôðƒî·øà¦òCgs"#Ø3C4×?°÷Bö_™åôFYN—dµ‡Œæ,¦Ð7·ÛÏü<©ù·öΓÈr/ ü}'Õ©b ìÄcu¾*@µ¥ïÄDµsv¿w¤på¾ K_ðÆý[Øž"_¤?'Ø_FmëS¹d…OìÉù»‹HTÎ&ØÉ­¹JE’P™uAa]”·¯(Ÿë+‡ÎRÛºçíoÍçMƒg.[û`lOëfóñt™(Ä&Þ»‰8TÈrÐ¥Y‘¯¼QÖßöyd!ùK]LÈo:†[/µQôîSÐKÈ>z_!ÿ¯öÃäyéèõKËõ4âV6¡×6Th+ìrX›ª¨Ï2(B)ÿ^•·xiQÁÿl€›Ž‘ ò¬Ð7`I…w,å¼})g_.s?Ós-qåœ:ݦé›çM©º©í…ò‚ óÖM*1Z6ó1‚Þu’õ[3òS b`!EV{Ÿf½‰M% p®õR½ê¢cg;¤VÀŸ•EføkÈû<§íÞ­^ŠÈOYÌ7µ½?!—˜¸#€³SÏõé(_êý¯Z¸-µüýžœL`eRK9Çösî‘ 9糓Có fN0 $ùw©AR3®q¯v &QÈzdÚcž8üªŒ¥h8£0Ñ뿲- Ü™çÔ¸£©ŠÌ7f‰|.ùú²0XBX©…;¢- ÿUÛõ݉¿Ig¯¥ö”=زôôµÈ"ÇŠå3 –#[Kž­EG6ÒÍ]£ÍÎDØiûÍJ˜k/þàlj®³Uäk;®¥xBÎvÃó¢:žéKÒ°öM•è…€Yï͈OÃk[=þ¼|ô7ÛðsÈMËO‘÷ìõ®{žjQEôÞ}w|ÚgsÇ É²öWž!¢Í¬çˆ-ÞW|.Ÿì³øBy„(ÿ&ÄŠr±/*oYÉ9”Ť’gÃ'ÛqÝdÎûöyhëY™ó¾;¼§äd¬<¦“W*¿ï•0å!àÚTÃB‹cµ``‚ðÕFäû«ô2%Í'_KC8šä¼gÆRlxöɲö/c"Z{ê#ÝZ¦·‡h’÷“Éñ¥JK0R1–ç+O )cé+œ嵫§ö·”(í–Gn'L ;Îíª‚í¸;Òë>›ÏqG>ï$ÈyË,.ðos³ìdûÞ¹¸ß[xúÚå—-üþÌæ'€×#úöúÎTŠúÿ½ù\+F0—oø<ÞãøŒ½¬€¥(9”æEãt‡þgÓ䈱üHøŠ.pï\±ÜÐSöØâ¡’-þ²EˆÝ~ß„˜+²d.¸N“€ Pk@ÜH Îö½´¤?b“ü#ˆ¯þ-³°žÂ™²;«ã²-û€£Ý»£5<¾;~%­½PDmVÈóé—ÊW‹†eÿ…;SË›Wrú»d‘@tÞqs*ùs9 [öâù•ñ° _ƒ o(@Î{#/VËêáÝõD¹lÝð÷÷8™8›G¬‰1?ˆÈsâê±› @ë—Ô”úâÄëq(¿êý¯xóŠå„)¤‘ÿÝØüîg#’‡Ý« ìÊûÞÚù/ðsŸ™ùí_1j~F1—[ £×Ã’5\r¦ÇÚ G^­÷±V>˜ÿ|yüöŸ«À4ícÓ6í¡iÿ Iú›CðûÊGml'í¬xRQÍÙÅǹۓ„vP È€¯«_Þ“ {‘—”8Ðj pÜÀ»–-‰Ó¤¶bÔr¡±eú¼­-{ÕÿJÙѤ¾ÎÖNË©Œ†bØhhPô,‘ñP¡ÑƒÞÖ¦};TsIÁ9g¯Y}Ǿq½¯é³³‡Kœd›ö3¹jÿ8dÜ7úÍÉDyòÉ„£iŸW\8àÒ¡Ô/wŽòç ÿå¹ù ÷»¢òÍVu`’ŒtÁž—DàÜ E_€=ÀïˆÈwvùh_á÷ä-Ž6帱h‹Ö°¤Å(èe+¬Øâß}-Vêñî2's|_Û³Óu_Z¹çmÀ>ó1ÎB¦væØ»Ý˜ö' 2†W°s–gI.Áƒt<”³ÿ%èK®?½6È_[=šÓÀîX²¼ñ@ÎÁÛy+yïè>1\¤’ü†ê×¢Üy¾µÞµ@à?"æW€~×EÁ”^Ý;–sJŠÑ¿»ö*lò›XMÀK)$ðÞXâŸNԛػns[‚®-Õ;_™¢ZÑ ªá—"àZŸêyÖ£Ȩetå êÛLF¤§Üy&Êq`é©°¬Â²Â²5¬ZX-•‚ÅJ‹ú;u®.C8·]ðºL‡„œû­}ÞùU´6p4§~.çáÚ˜N?»a@¯~5Ë3R¶-ïÒ@kß!'YTk4`¿ê|¨a#Cuúï×.¦É5À§'~½ 5Êúš’ ¦’OaõMjøöÑV­•'3ìýªÿÚÊù%ïF°üð£³.¨sá}K9×÷u×gýϲHKEK($ïQR\ÊdÜ_äiê÷%aPý]Æ!©Àý†×7¹šKÅK™ô ]ÇPÇÓ lüÎõ¯é°‚)•‰´$3§Œr0I΢²Vaoû­°¤EY¢Ý¦ûØEš÷xèÍ‘Í çöjÄÁ•8~̸S§Wí!êaª>ÀÓùÞ—éŸgÛ¶(ÚáY×Mª ÚºŽÉ^b~#?^ýýz _rªÇ±|~!¯O \£—¿‚<ùö‰ÃIä»°ö½‚ý½ó)`÷ä½OÓAàÏg(²þ%Ê[—3Žî€ØÿÙØýh^㪠û­°¢EBdÂtM}uÊiõ ãlu^EZI¬T6¸͈hÀ¾Mµû¡ž¼VHÃ<ÁŸîÕ®k£s$º ÏXM}<¬V¾ºˆÇ/c…5à„5äë) R´ú¦'TÌÛ§D¹‘ŸAXŒ`'™ÈSlÒ{;˜/ÙÌfîK•.ZΠôç@kwCaüû¬á 5,[a¡’ØWý6·ƒ§p¥F&ÕæBº¨³€}Œ“K2`JeàÁD¹}!çK9ŸX´ÜŸè8ø!¼æô^ û^mî¹ Ø‰$fü\›‡¨ŽÏÅsm#¶|¾ú²ÚNæ˜'â$-ñ/Ñšc“Ÿ¶žI›P ö«ê7d¢T_ô,_u"å §Ψ"9Õ×¾ËuÔŠ~+„w‘Ýí¶ržaÅü¹ Ùì†V­ðÎåŒ/Xö¨8ÌÝl®1,«aÕÊøfçxJíÊ iS‰ë ìËÊ•úMÆÜÕ[*8ú NìËS.2B½ý<&sÑ5põ‚H¬`ÎåŒ(Ç“"¬r07\84¬Xé„ás-ƒë’Uïz¯£vÏ—×T5-÷i:^àïnùFWÂa'`öÓÚìæ¿ðÓ`­a*ˆ4+¡â‰‚óvž6¾ƒò ?E… Ã9ìQ%ŸÞ“Þò+îëj~A”w™þðe¹PTÎ’½ÈŠù‹y€ÿ¢Â]=Ë-ë¢çlËßj9Ö5\˜'ì+Áô7Óäõ–ƒ¶Û¼èÐüdH`# µ$@ŸPW÷…¿aPˆÐe®í…ÔÍ‘2‡ ÜÞ³||)ã†ÅŒ£iáŒîéèé‡yõ››KÓFª:«ç%]Õ€¦íªN·‘žG¸ÏÎù‹jçð]W‡÷¯Ô˜¶k_¹¾ãCÖÀçJž¥Ð> j•À%©åËR[tþLmÑ[Ïósè-žMþ£]Qvâë| ß!*&ÈUóØØ’ [PþeÁ²Ú±³Ëvö™Uf«ö"Y.Ê l‘Ýï3ÓxÚ‚ã($0-¿·‡šº†„ÚM†(ºïéT—s F‡R„ž>±”ñ¡åŒÛûÊš)îWr–gНÏqûÎØsÇ<§X_ ÚL¼{‚l6Ðm7¿ Tý]•†+ÕßvÍg!›®ÀAñ¦ Ôšje¸ª«°7tÒý(ÿwT÷ù¯¯|·Zóüs}šãN |»ˆü.ÅpŸ9€?Ü™ZÞ·”ã"·8¥u»š¯T×$z*´†ÕÒƒ·-dÆ×p'$$ žc“,/ã`@{H@j; @ø{Äqu‚BMûTAE§:ž1pãBέ péP¸d`XÍd\’ËÖ?‹›)9œu{!žf]r–úÕÏçÙ«DÌœª :Ï´Þ‚~ÇM…­6nï¹KúvÞ5'±OQ™\ñN$ð⓱TøÌ‚²4ùç“À{@¾ËóÆÓ—¨‘c¸7€íÿß›øôU¸©gùè‚Çb·˜·šPT3û÷XÃakHµ(ó«ÆÞ›€k´†YØ‹Lé­‹»º¸S¼\ëÇUÁ×ûxöÐÔHˆF²0ÙA0ä<}Û”QžI…Dr,ð¹¾rkÏr$._/¼•åòFdŠÔLÀ¾ 9˹π־Îf?µÏµõ,hß×Ï«¶ƒÑç­”$@çôÅlk̰d£÷¯Ý¼tÁ¯Œ8‡VBzvÀÝõ25|öRGŸ›ü›” ½v]ËuþB,/DùÓH¶Ç¾MD~žà¿ pÌ(XÌ ¬ÌÚÏ&QÈË#Xe {TF3GŠ/u¥_Iˆ÷*Žsꢴ‘*à]Ýa›Pm!ÜF|÷fvu"ŒD´* 5 ú÷¤Ô«ïî)wôà¢L¸|ÝpA.¬fŽÌ$|:­ UçØ/ p”+·¬õ|«çå8Çñûk*€Æ‚šI%an‹Áv8£pFíùÍh«ý׆ç× Ö2ãi»¦€ÎQ-˜"'*«ÊÖ @nš02¶{›ŽÙ0ùUзwž‹`'åü+ù£y‚?5Û7,XÞ·dÙc»O„Ÿ×´²p†Ûþμ¼q¨áYÂ~+S |¤ÆÖ±ùÚ¿}É hÚ‡;N^ßG5/@§¼òz^€0YnØäôtm41 û|k®AåÚÉÔ3ZÕûSåÃ+]Îùìb1©p±lͼ ϨPÄ 2m‚Á¬™ß-5œÚösÛ—utÔ º[㺲ÁÅZ/v“\/“„ÕJ;èO„SZòÔçl8»*†|aƒ(ì>ÐÇÖסDá¤Q†RlG'_ÇTäÓ-×üb„ï÷Û)¯sŒ|[ þ«óÜhOááDùð‚å´™[{¶mÖ5(“"§áÒÌpifHUÈdº›Ý¸ûNH@õsõ¿½ºqBMów7¤6Þf¼)»õm$6Uøqx¡M ~¤ñ<¤ñóÒt­$@\ªžy÷¤Ê‡Vr>´b¹aQ9e”e[¬’Ÿ/™‘ÈΩm«4ªŠu@‹Ù¦~óÞý[JzyлªþwtÿìôµÐòÆvõþUÂ#uâ¤>·YâZe ÂcÕXª¯µ4çikp0³ä6G&_ÇÄÚO\ýF`KlùFù3`yÞ›îw'Êû—röæsTé¶k"œl|é”"Aì`.\žæ2î1Ò´j€N—X˜W=ï¦RA×>ÀÝZxDPŒ£°«T°¾×ÉcªWøÏ5Ä™Ý Å¿LKó ö5"¦aŸ Ëè)]ÉùçUË'—,§–ó²Ä)PòŽd ±a‹ª¤äuIY=@^©j<Ú—©®2ýœøL墫ç¸'óí0>7;¯×*¨œý:j}íôvôp]k×3¢â'56 è•…«-ÿÀ¥Âª›Ô\T´ßÚøßiQž2á Ղ­½Ô~¬ ÊÅÀD09ëé(ôç½ù8-ð¡EËQ3ìÐ%éäl; yy G2Ãe™aY…\&“ëhðî'¼ú 0-Ÿ,'»6Ór\.E ¾7wß~Ï,†ëÑúmqëªJrÚ”T0-$jÉ¢…{{ÊGW”÷¯æ\·¬<œëÙ@Ïmrsã÷e†/EÓñiH§¿¶?úW5d’ßJð·.^Õ ÂmŽ‹¶|¦zM¬ÃûŸGà™ž©æðÃ>`¥þ½=‘(ÃÄ &úK’ûÂpRþphªÓãÙzÍÉÎfൈü­À­ØxZ¶ý}çrÆ»³êø5ì9{ýK —eE]¿- ¯ë^ê‰ie:íy¹@^ |bLðÈhé Ø”8Xý<øjjBžL|±« {mûr%:‰çgZÎ×$h<ûhL<ô$V·¹bÁ¢Ü×ަ–Ûúpaf¸rM8”σ+Yp´mAªYýúŒì ™RèËäšöWùَΩ–8ñ™j¦ü(WÄTöUñªÅl²Kàƒ¿Z9*c(êOŸÊBå»e@ßû;Ïg½Î“6çQ¹ÎKkÏføµ’C¨¹¸aR‚…Ôõ|>ú Íšìbù^íÙ—F`³ð§\¬Öü±"—o•¸0øÄ‚å$<ö¿Órƒ†{­på0áP.Îäið Ûú÷×CM^íf ØG“Ð¥qÐx»Ú­ƒ`Û{¦ÏC¼Íƒšöá ´§–mÑÁòXn\´¼OÎGV•ûzîl*íæ=ÔÐ0@ãûk쫪hËg¥É{ ´=Ú_EZß jÀè8´üq‚¿3Dàù·HøõØ¿mÙ¦Î0w ÄšÚžû>í¹Ð5g}¯£ ·J_á{Im‘Yx¶_»RH¬˜½Fù_¨*Ê«-ü£ˆÜ×W9¦j×L±§ï}¶"ÿ·X}"Nbã\‘ÉĬ 5e£+¡­NË0õ÷Rû›i"¶¢ .‚0êà8–¿©ñ±móüÁéßþ.I]=Ê@ý÷^ï? <°Éû×–Úÿí׿j@CBMñ€c7h+ß%Ø?=WFÈmwÀóEå%[Ê1Jéüƒ ù®¹E£‡Àx+*Ó­‚¥ÒD‹í#Õpˆ¯2Áó¯^ÏÒ¿Ë£÷yðuw…vB';{3tT|J@ÓV×Eù¦=þbßc‰sÜuaà¢(rm¶Þ:ð¡HZä¦ÚS~©Šù`a«OêžDùd?wÌVdôÏc›ÅŸ«)‡r÷„¯·Ëm²YIÀø÷•…Â¥òà’ÛöÑÖF¸-$ÚAp³m„C:úöQ{ï@Ð o6"¯£¯ïžá!„AÇèéÂûQy¿½ZÑŸP• \Üè]?ðî0€Öµ° à'@Qý¾ÑÚ{¨Ê'PyUÏdoÒ»mŽ_‰¯’ÿÿó=¢òo(ZŸöÛ²²B³ÿ½jQ“ @­ÿÿ¨O¿ëùtG¹mÓÖ¸‘0žäR<  ÔÔ€ñ9ÎÑ6%D4€ìøOVµ©œ®.ý×U‚Ðj€º÷Ý*ç×ÈJÛ>Ü2ÑEp–²Ð‘å39<Ÿº‚ô‚VvÑçìAy8€€›"ÊSïg‹'œ4ðÑEK.¸¤ž-“ïgýl.p(®¤,i¾¨&¿…’€‘,o›¬%„Íy>¥¡)1±ªˆhKB]³$M€P(ä+ô))¡3BH@u'“ç3Ö,Ö,|áí=Íþ(ÇÜd·6cåà¥þ9ߘ«ýþDÌS¨”?¹Ê»„|}š’«_÷´ëÿv‘‰‰P@Ãq{IÀ`EÜYj:³TšàÈl_ú6ÏZ'´m?ø{«¤°ëÏ¥mÈüoý‡zÿ›”ÿjÂäÏÕ)Ü]Ø!e³Í¤¹VùàO"˜º’ÓK@jùoÀþí8™-æœë­}ÞîQ½4xK¹À¹ášaI''À¹H€¶k@Ö”è"’·N— 5Iå­y4Oú#\*&u¥ I ˜…@ShcJ °‚½x¯*&ðYßæï|&ðʵ̾r±Ç—•ïÅÈ«rE'u«¡@gTª x>¢Qÿ·Áô×F^¦@P7ž8W‹Üª¥Ž›ÞØRW[”€MxýMIu€®7÷qv”v%ïßµî)ž¾ø:Û(¬§¼°­â,îPáêÀ¯@_¬¾ÑH¦%ø©§ýë@žº'c>Ú·¬K—íPßT"6« çÂc†%2ÜMqê †W  =6ï"Mî&¾ÐÒ-^îÞÎÆ*Ú–YJ¦ÆÄ¡¾99p@‘ÁAØÍ®³Ê›Œä(è­9=ÎVç‰Ê^ß®ðvD‡šïÑ¢<¥ZnÚÔÇu=l)ˇª¦ž¼§“€êRªÍ|¬†“+“‰ŠSÕZUmd¢Q–¬¤B”}‚vœÔâõûÀß÷wQpJÿ¸{þë Þ¿O}õ¹ Q= z{ãBî¾g€“åæ'×Ro:t¾€4³µi~DE¶ÜûOnë)7õ ù?Ùêµu£V%ø_;HXÎ…Ülëó†@ÝíòuðÇB#xµJ  ]Ý'{´wôÌTW±©ÎõÚüÉ€A°ŽÀhV|㾈“ÀoEx+V^…è«@ïŸ/œ#¸^ ?—ýõ^Æw‰Ø/GÌóµìÒé=Ú@ )ñ°®àþê}®ª{RÙv¨àKœ$Þªª`Nà’Y/{IµUúö¶MnR ‚VÛiHüóVtõþg#ªÎ¯ƒX=ˆæ÷×ߨÀÞ\Hüå“§ï1¢æ+Aw5˜{'@•¤úz†ŠyÂvx4+*üÓbÆiÑàØÿv̨ïc]à‚\xüzÂê(ÛßÑ»ÞÕÏ5¥obl­§û]cOzÇߌçA©n?d¨Žë=“S›§[JÃêë8=xHç'Îy†:Ôs}ÌÆ_O@ö T¿SЯ~¸G¯…Æ{ܨþvŠ~#È7¨êïÞò\OSOý·mÐßêñÖã¡NIÖ¸¯-þm™äôlË©AãáA›Ôm&¼l-™u¥@=^«²!ÛOuêó\Kóh_ßÀ¥ûêýO=!ò¿ˆ÷¶”Þ_¤˜‰WO ï_VNÅh}\¢èýÖ °N🩢œ×ŽU¬™¸óß'pd˽à”Q>Õ·¬•½ó» ý Re SÒ0[+=ÿ'¬§ì±eÂ_U†f<ÖÒÝ£Ò¥§eÀîjrÕ„ï0^F€æêk_ïþ’9_ì¶Ú>x¼í†x†éêœ(îh¡©Vd݉mLö,‘([»Î}¹õÅ3 ÿ³$/Sòw€ä»­aH…ì¾Ë ïB¹$Oø6£úbcåÙ é„§­:™­]%Ò^Ï_•æ'¼ûj˜J­ƒeZÅò5`j±x™üN‰GvªOB”úþaª"Å ¡Ú°ío_pOõsµ®*€ÖEjÄóY™ì’¬-m…}“U͇*×϶¨4‘‹†©…dG>麩 ï\É8ž(+V|×Þvþ¦OR‘«AnŒ!7g|âv,€ \̹?Ù¹ÿÖJÏÿ‰ƒ ð¯ËåMqoWX žÑo‘¸u,ÛWHÓ"ÅùÊãê`\ŠLƒ#Žshj_L@XÀxöahËÊ¯Ž³ñ—É aRVnß—†cIþØ¿Çb²s¥S˜À]™á7°ü¹§ |ƒª~ "—Ôås ÷ÛŠ’Õ”ÐG•DÈ$ðVó¼qç ¸z(µIžòu,s¢az¢^lêß™¦*º|ï“å›B2[ýh7uýkê\8¥NH+9u]3ûÄòAß÷eð°HS!B:ÃWöZ”/Bm$ 2¾Š/®ÜeÉ Y°3°¨aŸÙŽf@£ßbþO\KØgahZÊË¿D?ßgÛä[¢ÄÕCõëðWwóºPE׿$9“î|$ ú¯1h˜*BšdÝ:ai#M!¶ à‡€úѨêjäùUºw‹ææÅ·(ü–ßJŒ>)WùT_¨ÈeÀª/g .ñOÜÉ…øÀé€+WÀÕ „ Ì ø> B‹ùO?íàÚJ8¤ì¯‹÷ï# :éýŸÑ„ßj"ç ð@R4`3[ÆÌSÔðÐH”ݹڢ…›z–Û{Tú·Õ¦I~È _7HMöõ³ûºàÞàû2&¬Yg"߆×ëš*¨4W t§ë¨RÀ·í6/>@ ÐP…`*Ö, üfðÃJòñàá`ѺÚÇŸ~N„/CùZÐ/y4Я ?Í$@;”:ÞW'âû2°©Òó\†¶Ý­¦©M°ü¥ü}IÖGR<ÒWï¿úoW?„â¸ì[ìBþ×M7dEᯕ»Lñï-Yû-Kôí•ôì»ÑÝõEœ?(Pe€L ·›;Ø.ªð¹4çó©í,ÿËÔ€úg3ŠF?OZKX¨ÔúS—ƒÔœHÀãíŽÊ¥Zg àïP×PPMlªh ÌBšöá$WÂ1Ôþ*ÿátÄèm±3á•7 Rå+rÕ¯7ÂSy”ATÔKª} p©¾r¿‰gÚ•(ó]Ç|^r(ð»<}§*0ðŸ ô>Õ¢Á›· ×!dNz÷ˆèO£ ›Ù%-€kçÐ+¨^Eç=°¢p› ´ÓW´ù]#€zâzÂ%¹ŒG:õ™ÒÏ6¸3Ò ¾&Bþ êÏ®ŒzSûo}ŸÓÛòWT·ëZø|ˆ\Çfž˜iYTMå=‚{žø1y÷¡`”5•üW}‘À'"Ÿ}+ŸÅ»€W 4ÿ.D_¨Ê÷È_†p½”þ~Õ³ ªg××½i[>@w¥€Êä z¼­½G;¼ÆWnÇÖ¶ckÀîóWŽeâ³µ:~ëÿñ9à÷þ]Ã…`2„àlÎÓ ýC@ÙŸÇûŸ ñeb¨Míoä ù+ó†©o¸Xá½}åsI%®´uî“.ó–iÍûµS€dzR$=…lð²h…;Ëm©eQ7¿ÏßÙüÈ \³&–©’i®¿¯wÈ-¼vìuë¸ßzõ}®B¾î¾–ær¬£ó®jUêÛÖJÚš"àn$FïОýQê«EÓóµŸÏn ŸWôòW,ˆ¹"Sýâœüù}’/VÑGK%X\-U«'¸ŽúýדåDÝ3œ²µN¶#žÑYÿÃ6€d}XLÎÜpƒx€Zš•Á˜"êoE<‹çïRœ}¤òûâ ^oò_ÔDXñNð\Vø` GöZšfl¨J¢­ïkP™¯.vÕ\€¹+É`H²>D¬}p+ÀHº=µM´³´3«(᪠¶—fEÜ¿Iò ejÇÒêI»ÇÍ–ƒjZºôij7ºJê_ž÷ú—7ݤHÛg4LNõmÇxß6JÉÿuˆý:íÙW‹Fäß •Ü–£/bÿ­Àÿò"„_>¦h>*‹{îÈó–øX \#jÞûD/Ï«^ÿo¥yô®ÖÖ¹º§?:Ðæ8€®»€}{6ü׳þ-ï¯íçß#*Ç$÷ƒ¿+|*[úy6ð¾rPåÐæ‘‰}»í{5w@Ó‘Ø"·ÏL§¬¯pO¢ÜÔ·$g1Xk% O=°ãL”z]ð6êš7Ó8üˆïó÷ ˜òr+5Uﻦfˆ6W ¸úá‡wÚAÐÛòXüƒ‡ªŸsM4t% Š8J‘,äIöK¢ò G‰à¿ U±2psùzð[ÀýQùZ«úLAúÕF=õ9£ŸÇ=:¤–ÛâÇй9¾ÏÛ.UU@öŒôuzæ.òÑþêñüÛŽ­uÒ ¸s”©ª7!|7p´-1kUá½=åöÆ´{º*\êO+–v®Š ÷ä»0çðË¢ ×¥9ŸéYV6¹€o¦ P.ð´Ó ‡³¢üO\.¸Š;S~ à2E|€Z%ß8™Ö®m„ÛzlÔÇ;BH@}‹¡s 9à<ïòê²qÖóÅü‡4×?ÿ³»Ê×?<"}J_¡*Ïáx¥æá6U„‚YÈBÓð&àw•÷u» ð×–ã›ü»Ý¯¯•°–—-ä¿òCf(9 Œ{îHà®D¹È†Bz‘N,"èìŽë K÷yB6¨ö­¢r ¸hžìß(Ü(w§Êá<ü«X¯èRXïºÀ“Ö yÑê}ý«%}]H@—ž¾‚m$`êÜ'ÖÔ&ǷͦʛÊZI‘L®OãrÁþ½¦¼=öó;çíÞòõaà¯CÀ5}ˆ|è«aŸ*ø´VÐ< ËBÖæ{åôàÿÆdÀð×@2"ñkÃù œ@ùi5úØrqUáý=åºT9d;Ý+»ùÛ*öÇÏ[`7´–ëå~Ñù€Dá¡Dù|o«äÿfZ C}. O8cH´(t{@¹Üø õÁ4“Ÿ m#Üä¥Ô§õ¹äõà@í2µ5ó©_ƒÍ´v3ÓáˆÊ·ú5?ÜëûÎ;;Q¾nÞ*°?ƒ‹Dô¹©ÊW(ú\A.v¨/  ÛÔÀõ{_YŸËYhíÀdÒ]'ðoŠû7€¨ô_äNØ·¢ü¸!ùT—kÚSxÐ÷á° FõXÞÐfS¬ÈåvÎ_PcâwO˜×ûŸK,7ö-KsŽß†„2ŠÆO=cØk %Àh“£~']ë5p…_¾65Àåµ»MÁ¯CJmk#Œç¸œ_!,¡=&s”— ü8ÂC Ï{Ë(Æ?@žüs¾JþÔ|‰`žú Š9&=•Úr ÍÊdü±—/Ó$¾Íã‰÷Ï þ-ÇîKä¿Fé_¹?Oí/å½üÒ3éZ—¼Gá£}xߢr¨LV D‰‹€G¢Rñɺ“Q{e©ìš–Às'éDÿ?ýˆŠ|åܶ­ð`¢|.UúÛè̀͊òô“)— …L&¥sƒ*ªå}>oÝE\ÝÛØuµìi^m„½„¥rŒ!m„ÛJÛÞ8¨ú9«üªÀޏÍó˜Ÿ*_oÞIÑ÷yI%ÿ"4yŽ _úåï—U¦óÈd’ 7. ]–«©~ÚN”°ú{ë`-À¿ôþ;%ý•I϶AR•¿Q£?ÜÓµS«” 卑²1[K˜Kßos°´›¾[0qÛ>< ìÙô¥¢Ü•(§Œr0—m]-ÎxÊ™„kÖe¢i‡OúwÇäý$`ñ*ƒi‚Õ€šHŽE¥îa»ª\!×¹ÓàurÜFØ“¿àÚvécœÎUV‘ߌ©~ÑÍëåëÍå Ð=*ú|4y–ÀóA¯¤HjÞ eRæ³¾ú.àõúÛbþ¾:ÿ©zÿÀ¤¿*Ôg”Û±ÀƒªòfLþ?Ñä#³^¿½®ïÁÛ`wlX)ïéäÔYÐ>ÂþóšÔº3ýƒÉåNQ»Ùí& Ç ÜÒ³sõþÛ¤N¸0ž¸&,hÁ0]Àå"LMk €¿B ‰ŒÛá4(!óÂB5(nðîÝrY; ?ëÉ_pœ3ƒ<ÿ>«üe’¦lEj´óʦ(3|]ñlÛCO5O·èsA.ö Œb¿Á`ïûn„xûMÀßäõ»¶QoÔ þøCÚ²ÆVö¿ŽpÊßXcÿ5ß6”kô=†Ys×9×á.$@¾MØEýÄçNd2ëâ¸(÷Ãæ @ œ0ÊÍ}KÆøX%€N@ܺ‰%ÏÏTÁÈ´B`¥Ú•OÇýìG™¹â !j€/$0ž‚&î,Ý.Mƒ|€.ã½U’é¦45 ªnC+çƒpj-Ë~hÛW‘¨úG;Ûvx?ð~—e…t¶œªJ}$`´/S[@|ŒêÐÞ¦øB‚›8T/›(gÎäÙ­çöÏŒD×?ÚŽT Nk‘ýñ Ù¦‚Ù«"F¹D‹3ìUÝŸŠ¹Â*(–Âqê5ÿ¼ª ,µª%<=÷[Á_Ð6Û‚Þ©p‡ ŸRå³ù¤ý¬&Ü—l¡R«= ëFù@O9¸nfïä£r9å95–.‡‘€G•÷kx^²i¦'VÞáÚÍäi£Ü”ÚM×j¸òêXœ—¬®YN™ @U@qxÐÕDþj›Q—\_÷ÌGñûq=ªLä)YJ2°Q,XÓ-jÀƶEüñL뛞Â7¹@È”öPÎ;¨§·p•\àOH„ìtžÿðzn_Á?Ú.´ 8 üóHAËÔb“œž¤‹äæbàT#väR…E5öÀ•Cªr©BnáRT.B¨Ñž F«iÇZù¯_ dXþ-#‘Ï=£ÊˆÞ¡È½‚ÜzT07«è}ý¼)?3Aæ·ÐŒÂi÷÷`uÝl&¦"r‰ˆ×mšü¹…r° › ÑÙâlÂùW¸ã„×å[Ë 3“=d”»zÛÿ \’ Ï8mÈÄï­6Æ­]-m+ˆWõ¬mÅ£–ê¸øª«ã^ÄDÜ­NÎÃ9P¨òmÚ;:»ÒÜ=PÆ×L³ÓyþïÖrû'ü£V(€Rx kÀçÊWÍYÕò;'«–q³» €À%A8,2ƒ"NQ y—ÑÊ{ŠßéC*öx±.Ý$[•¸øÈ‚²b7ÕÇw¯À‘¦>$•€5˜OÃq݆R‚ù·v×a¼U2¤30rü-©¢º=࿤ðÔÓ†=9œ6O?€P¼‰)|•¸þÔ”¾ ÀkoTxÔmyªÊBS‚`uûÎórGUÕ`š™ò}M³| ®„÷ 0(^2°ú2‰àíüµ“å à¶íÙe}ø÷Ù1Q˜¢æYÍfé…G»‹¦n©çŠ™yo0ÉÅõ:-È{f}äÖn›ƒüï’xê¿…+× ×¬ kÆ1ïÞñ0Šº¿"Õ˜›Ô>/ ¿—š·î݇V·#Îc£á++¥â×åõúXbSw;­ü²M hk4µ‰nƒ³µ®7O—¾JcSÏ€ú,ÉaBÕƒv+åfU~\ ÷ÖI›ÌE‹íÜ2Ö <” ɺ™S¥}c‚[g XûhþEãÕâ÷ åè.ï·H!ϧ¾Ä±©r¡hÑ¢%ð_±p,…‡°sëø¹ôÑ"Í^¾k}?Wª殨$þæ^TƒU€¢#Ÿr[Ïn°ÀÁ\xâC¯êÑz¼V´™6ý</W·-Á•±ûzç<Ñ05 ©B I19©ó×ÉÎ¥ÈÄqé€þÞN(=Š-ÚÙ±žy`¯ÜŸsOOÊapsyíGÌ5Óëµ8×nïïæT gRÌ€iŒÔŸDíkE’oe~÷%Ê`Îm¥ªÝ× <ç„a_VT…„d½×[Ø5ͨvãjÑë-ìÚÉÈ»¯•¸ÔW^@›Çèâ.m„U:=Ö·zBãc´òAÐÿ4Ï ¾¥"ˆmw˜çÂË÷åÜ&ÂÁá=oá"MdÙ½†UŒ×¸]š 0ÿi€ÙzËE—÷ª$¹JsNߨëÛ]éÖñ¢uW¬ W­ Eë+ßP×Ä¿:%l téˆì›C´v”‰ö?“í|›f”7…‚CøG OnGPÑ{Åèÿ“96ZÊ7¾¬V”õ¸¾F‹¶£Áÿ@®Üaà!cX0s%ðORöŒæ¾ŠÃ/ß ù_ÏR@a :¶†÷ïý{o yníÙAs½àÅëy'Vó¢³¢i M$`âÁqtõ3ÕŽ{m`?]9°Q 29uo¼ïS­zÚÅÁ­l´'®Öìû·‚QÏ‘¨«öRíë»PHæXû±oX“Q†kã>ŠÑ¢EÛi¶háÎEøÛ=p"ì·Es°eàqâ^oÖ?x‡ª².Òµ`í, óïÐz9ŽÚׄnêŽÄÎýúpJ,מ1\:Üp}G]ìD™ˆk›kŠ©z´ŽœWü8«¿)—À±Q&½©Ó¸óžÖ+Ô¿ñ9lUýØŒ·g@±}S»®Ûïº^R9îê{LåX ¼UÔüwqö6Ü$95Åb¬rS´Ì X‰T Z´ãý \ 7,ÂÍ‹Ê^[T„Ùù½ö(<¶îÀLÇøGVÜŽ[}4èÍ=iPB_g“Ì¿ ´ÓI>¡&i=í¡À±dþ—ÇF…'Ÿ1ìÍጩ±1™þÙTnSÕÃ5-Š@“tÔ8*·Rk_Ÿ`\Š€V§ N*ÎxÚÛ€IDAT|…ñ"Çú«ÇfÂsVϹV÷H“²1Ŭí]Cµ? ‚®oí—B3Ø;ÈÑœõÔpư¥Ý&£E‹¶>È„›-7.æ\4ѹ7‚;¨bžÝ–ÕªTÖÿ[¥C§Ò³Ý·dþÓ{A~w ú4yé÷'Êé9' ðp¢<éLÂ#×eÜPÞ7°g øžôÖÖ8¨ ¶þ¶¹“8Þ^X§™ÙÉõ}L×t h h9hrª 2MhB¾8¬üÏ!ù'Ea3ó=CŸƒ¥òäµXÓ&!¶ŠíìÚ² ·õ-oØ“óPOÙŸÏ¿|W‘«òñ µfGÍ·FŽÃÓŽÏR—5(oöw4èT@y#–4½éöÔÎýâdÀ¢-¼ÿ}¹pÒhÈv u•`–Ñ·!ûpµéSÇ$À¦É‚4$V Š/I0¤g@• x-ÿ‚ðÿ…ÿmøFT;Zlœ0-ÚY5–,<؃;„Kr!› :ž1VY½ý Ê•µ°rÑñxçsFí¶¦èGUšJ(H”\æ‹k®Y±.äUF×BêÞøÄ¹T$nhHéHB÷ÑÜ (ŒT7>6Â.ÕÃEŒÊc;6ý@S¶Ö¸¬äEÒQª†‡zÂéd{eD‹ –-ÜÚ‡Z€C¹l•¸‚òtiôøýkwó`8ùLÃçξÚ8ÿ>yð~·Ÿí»àw'J>O¯Üîã× …“ÉFx[w>¤ ÀHDK•€ËãîÒ3À•e_%κBGH ¤g@ ˜Úh ªœ‡^®Ê{‹¿Ÿ>œZèQ¤ï€hѶÛîZ°¼voŽÍ„•-ú*¬ Ï™e ýÛš°êâ=Ž_ üp缯Åü;ª†¾nWÕ6më®t¾ ÀšG­ ^7d¢%èýâ»vçóu¾sþÞ1U°±c`ÃÄ?ß>¦glì;d²àt·Áæî]:6‡¢·¿ÆYîÒ«2ª(Ž/!*Ñ¢mW¸'U^·7'Xj©¨Úäë±"²WZœ2ÿ¿Åí „‡‚$Ì®þ°W(& ^ÇÏ òaµò.Žu8%ók €E¹zÝpé ðþ'Yu\ Ú/$$Ð¥g@[ã ß> ¹ƒ`SHÀIBj!ú,×µ©“€¦ÆA“„B~ åî¥R„'pÑp ø\O8½_”hÑ¢ž¿…ã}åÕs†bH[·àÉ£úÿ¦º~ÏòàOhVŽ­9Zþ/hÉS¾ä9vè‚ØªÜêJò3À=Ë`ŽÞÿºÀEYÑõOk7¼_UTZBõ¤¸–ÀfIÀÈ;ÅóÐÕ1¼qÐÈÿ>B]6:užÊûþn§-H£DD,¨`•¹†¢¢E‹¶aGSåx ™Ø¶ÖXRø*j®vî]BåzvÅØûГ2Þ˜û§±6oårY3ߨ†D±OáŸv>ÈÃ…S;}PEM…ûŠ2¯<‰Q®8“påºpFü&:Ù÷7´;Ÿ·$O…@Ë,¦~me‡.¢R'0Õ‚¾äÀ0A†lpô5&$ü&ðàN]˜,p©5Ø!ܸT>Ú{D‹6/ë«òsNXÜ–­°<0<]dzímtÆh¯ 0FïN6bžB^Æ„¥å@Õš/WãÕ’^~UÚŒKºw,èXÔp;ðIàKêäçAcÉæ¤dûráÑg„¾Öm°QN€ŠøKÚ x³÷[f „€ššÒX!ÐTÝÐX!0qa¤"bM[[H z^ªúf”·ìôÊ–Ç»:È„,)GÅjÁhÑ6Äì±pÓB¡®%ºmI@OdÅépÓÒʽEPË]¨žl>oEÒœ´i,Y±ñKóaú³* ¢¨Ê…yž4«;Øn™S'î¯{ù¸/U†sRƒÎ¸|MxÂÇûÖ¤ï,—§í­ÿŸa–@[Ó )RÒ¥iõ*w…€O ˜…Œ6*¹è/¡úànX¬DኇŒÀI«|jYYP%‰i‚Ñ¢ÍDª÷çÂÍ}åïöžKº}a¶/H목¥K%ÀäÊ6ž'`¸ÄßP’¬x©iöþóäI*Rfê+ý¨í (Q5§2^·vcO›v¼ª“ï©ln(¡!¡ÏŒ"Oñj[;bqU.ÔŽÛ”²Vq>ajçÀQžcå`šLQKžTµï0ðæ]CXO`!W®9 'åh*ô" ˆÍ ‡3Ãg-upH&°be{5@å›EX¥¾‹ËÁ™òg¦~®’‹êmd zT Í!–ò¿úÞ·” {?ïÈ~? èáy_°ù‡L·V®¢z/•ò;£p"ѹ$Z`Qáò°l…£F§;4Mð“ZƼVˆ€:zÂÚO¸£}–F À}‰²> ØŸÃ£× §EÇÒý&VAÒùwgÿ|u’€:˜ºÆKCÏ߃ÙJj@+´ï£+ ¨ŽÖÚµ3cåÀÓF¸øù“‚¼GÏú8™Àž¬Ç“Oè 8–•€hÑjà0n^Èù«°×Ê8Þ¾¶G…/ð:KeÜ®5xì÷ª~ô.È‚UjÚVþ÷3]v+z}ë…Û ÎzTBýœ4J6‡)I8” $ REì¸Ø\CBJýAŠrÃÓýNìÐ8Hƒ³ÏWƒ ÷N&Æ wìPîü¯A>{®,n9°¨†C™p"U¦èï-Z´â+¿7‡›”W‚L «v2¯hû¼^lšBà·)¬6áã¼ pªµqøð4D¾Ôû×Ä®”^ì*-ýv˜È·3§eóC€,ÐW¸t`H­²n w\ÊÀ|WP¬£5Åç@ÇÆA“}ˆ&ˆÅfÚ7u¬ž–ÒÐ8hrž¯Žîǃ‚¼û\ZàFç|*Qû\04ܾóP›E‹¶’ÃÍ+–¿¿x@ްbÏ^ÝÍ×¢fo¨Gï‚©p©øj Ñ|#<Ú°ŸE<-E!3Éå±À"ð±s…Œº®–R M‹ä½Í,¢V`OW ÌF_éŠn-/ ¨bõFOyó4Ïpƒ£_1ÿ¾cÏ×óR=þÐya³Ê)Šž}Lª…`„׋è»ÏÕÅnI ¸rÐÊðé¾rFb^@´óÏXÈ…Ï-åüýÅ,°äqº¶é€Rg´¼kÍ& `ô„±Ü囨@¦¶Íû"Ïk9“e‘2aG•ÎwùQ°1^€ 6#²À²®Z—ñDÁ [&ÿ³¨®¦7Æp{[H€… ©t:¶&df@]ö¨„Ú—~ß¹¼èi©Zõµ(Ÿì©0dcÂ`$ÑÎ ð/ëúo]ÎyýžÖìÙîø!/@äHø‡Öÿ;'rpg“”öŒ÷o:´Ø\~\…Ã-'²—b:`üóŽ$¢]Å{é«l\C‘8"ƒ¦Å˜¢Ð‘LXÔbPµ|mìa‹ V½qÿ¹„:ô hêèòÞ7ÓFØÕ=Ðöê™™½qxA³>¡ªoÖó@•_½Þ#¸yQhÑŽ:Z´sÝóï+ܺlyý…E8<Õ³ þ2H¾\º¼§r©¥ M$ADí'½Íw€ø ð|„/8›}‚<8¾c€ìÊI£hØ“‹ñú @_áÑë2î¸\0µ xŽ€ÏªÍ$`ô~_¿çÈÛª@ªÀ.âû65À÷pW ‹kFPÓ>œ!©óQçÀŸîÿö¹Én“ó¬ƒ~<îLQ-ð±…"D-Ú¹g [Äü_{xˆX™Û ·M£*_Ø<¾|öP€*ô{rÓR*ãlÕíZ…c-`¥j~¸°À§¶lræÈ©¶`@'±s¸T*el¾'´ ô­pźgœVIZó°e²‘¿· ÀG´9/ É›wyÚMeÈ$@_…@½TpŠ,t˜%0Í$Êk§R+GÔ“‚¾Yt4d÷ü2¥XgÅÊÓIAN£E;WÌw•9/oÜ—#gvΔ E¾¤ì©ßþ]Z'+7d–)E)zÓ…Ó¡~7*_5^ÃEšH@RbæÚŽ%¦[ÇeÀµ#°HîI•Ó²ù^3ᢡ04o¾rG'¼_ñ«me‚SÞüø÷Zl·‹§ÝöÎÀŒ³B÷ÚF¸°¢ŸRá-‰ž¿¾ï’“×àx"\¿X„¤ˆ$ Ú9Bp÷fðW3îêC~d‡ð|2á›ö6eý;‡†øä`(ŸZº _P?²€•ï,A}ãc~påiStw&ÐnºÏcDy|õJg¢X™½GÔ(þÅ rãkðSiÓ[WTŠž®n|u¯½NêÞü(0úV{ÚM.1 ¨5÷k߇n#ö;m¸_áѧN/ e)Έ¶ƒÕ«=C8Þ·¼áb¸lMا‚݉â^±} v²Ä„÷ p=pÐhnT#Ê2äq m¶ʾÌpeq]¸n/œŠ3¢í[´p_ù›Ã9ë§ey‡W¯X•#ò•u%µ ô›ÀßáxÝb4y§ëóÖ»mE¾S‘GJmZjëìTçO¹¶ `›ÿ"O@ùÙ­b«{­°7—©.}£7ÌBÆŸÕ›Aé¹·…œWÀ3K@ÊíQMìÐFØó N¶ïu$µ„ö €öy£ß‹êªÜ—ÐöoK†’ûòÂÛRag%TE;/ŸËžÂ}åïeO¡oaYwV¦¿ËŒðåu¨¬&„‡xÜMà¬@j¸¾ŸÚO¨£ûßIìôä?ì0yÊO™–äõoE(`þ MÝÈ\¸Ì‹Šù1•­" ï pµøû¨Ì®~c«î¯6dÏOõ h ÐP*8áÍWT ðæ½É…ÕëQ«hkwÙ…´í‘Iì{ÛÉrà O-pF„ìÉŽŠhѶÏR…“=xÇ%ëFHÃÝù=+ŒÀZÆSN øªQCÚÐÀ&WÖ PôâhtFr÷Ø_e¿ˆü42Ù-´óà–Ýëí¹3cT}"ÿÖ÷¶Dá!£¬‹Î$ªÀ‘¡Ðó˜8Íu“€çkð4ò©m=ÀÍLÔ£„¶VÏÃ_%,!N)|".¥Ý­§Â‚…§6|´gÇE¿‘DÛJS G‘püPo=’q¢WL8íí®†U_!"—¹Zû:§¥¬cwڌלɦߗõqwB´¼PU¿aò‹<š§ æÝfqþÀÑ _èa¬¹ô—›>šÇM1 p–ºèxÄPèëté\= Oj]«ÚBU/·ÞF¸-$0Kã *á€ê¾Úºó…4š Hø$°ð •ü½qYínEwPXÍàË0ÜÙƒ÷®ÀžØ50Ú‚ÿ¢-€ÝÀ›d[{Uä;qå;Þ°ÉÊæ°Ÿ7ÈËu8¹¾å ¶_zŸÕ ÒÇ*ü”ѦQÄa¡w"úfàäÎ%©T¼Aƒ¨>ÖX~ai+ï~.pÉÀз2‘í)cï|£ß¿8<{Ô/[¬€ {4ÁêÔ@¡5À Àå@!©x‡.o^BšÕ¿©L&ïß]!%È'ã;[7ÊÌð‡¹m!ç={2Ž¥°¢Ð'h_ éàPx …×ȹa9çðаg(»¶úD O´È7Õ…u_"_HàÔï ùÿÆþ"Ÿª:”‰ 'Èjޱ2Æ%”_4ÈÞ¶}†)&îÜa@ôÓ z( ò[—{=29ů‹œuÁ°´ê]GÛ2å¶Q7Xš2wÀ×4hL"*ÕšúÔ¬6Ž–4•ª„ºp2Þv•TPßçÍW;ZÇ{ª¿— hë@Ö{C\jç´°•äö¨±\:ž}Êp{ßò@ 'e{cxÑv¿×¿’ 'SË»eܸ¨Üºl¹4›æ»—L*‰Í“OÍciüzi`«$/¬‹Êë²ÁäEU½Ä l¨ÏyVy1Ê‹h)¯æHsƒ ° v.˜ÔÚäË»€ø^[$ñ :Ö?X)&Tõtø'ÀIý$ÀT™i5`4ýÉ[÷ï `J@n Œä!õ´Ftö pT Œêêà##n`w%¶©M$€ã?ƒ±ï‹Ëíü‰ÀqeÂã× {îO”½±}p´3 †‡ú–×Yç£û2…¹õw÷ÃXy,ké¶ùÖ³VT°í^Áü…Ö6`,  •¤‰3C=4D^"R lSšÂ•÷?ˆòavò4@-Q@,Ï䇑pE)8œ KVXKºñQ ΄¾-¶cJo}èã¦@Zè(¶+{ÜTÈ€g8ŽkZ_užc}²àH ’ 9ò6ryß•c›¼1YÐÊFã#׌©Wݾcâ_}ÚàTÛa<¥‚¢ÇÉÍ}qÉ¿%É­¸ö4]UÖMœ$­e‘/×¢w\<äå¶=ð˜3½ åq??ª0š¯”Â÷âõ¥t*¼Ñ4 е¾©È¬ð@5Ï*M•$-†ŸŽ×U‹ü‚ÀUàï'ãþ}‰Ÿ% T¿_T?,ïx€Ê.™Åәņ¢ìÏ õ /½qäw?Vªž|bMõP7 0L·û˜:(U0в““'Ð6¬8'Oóãi#\Ÿ hªå1•°Hë°×·ÇÇ¢­Ü^i´­²pùôrxǾ!k&ö Œæ¶ÕLÿxIÆõûs¬péz:vܕο€µzÙ03?R±à˾oã@åûOˆòTÛñÚBþ§â¤ 2EÕ|1ðeÊV§¦>-aˆ%à;º PY¾ øêÙ>ÞÝ,p V­ãf×@s¢)Ðhk™ó¢Ó“mÃ˜ÜÆ6ÂZËÈA,ã–Ž•¡ƒ¨Äõ™L¬«÷çgiÄôI-òvôœsÃN8œÁsîÓ·ü£MÛR.¼ó¢œ‡zÊm+9ûÅs’+’‘ÂúP^,p™2{ÿ°Ð€Þ!–wM8T $éäúžç¶—[ù5cä`ãp·Vb0YPãÝÀûw´€òÅ"òmÛùX½ylq%uˆCû©’€»zŒÞ7r²¬ï†ú¦Vî®Vê9D7:n¦gÀøÊ@PÏ­=n˜Po<¥Í¹¹1öÓqéÝ[Ž ¹(Jœmc=XÎá]e\·¿HYÎåœ{8T¹8ËùiÄáè9ÒéÚ¹XA^N"ÙèMb”¤¯ôN~YDžå#!I‡þ&AR¶fÒ¹µhÚŠ$âÿ^{kJ­;§Þ_âíUT!æ'~g@ ¨-ÖÍlhÉ­ùRE¾§i_¡iuB` %ù؆޻C €ˆ\»Ù‡¸³¬Ú²KšO:wxêuà­6šÆÚ%äÑ 7’ÉÍ£ð¨gÞ|¨ôßF€Ì‡âR|vVÿèýŸ§·^ÁXXRáÍsn\RÖÒ¬˜*zŽŠ,‰ðƒÆxz²´k`Ö}éÐÉ_€¯ÿ $©R›Î»j-/áÂ60ïRª8ú­)BÕwÏû"î¨2âåp&,+<ØésE à‚V²×j/]¶xB¾ž¡$`RŽ˜æj‚àÌ!©†@#BÑ cã ×$À ¤'LfÖã’|¶,Î7¿ga` 5ÂÛ÷æ|h¯¥g‹”xáÜ|Êuç›ðø©u}*kÓ¡¥Ÿ½ÑÒ;5Œû$BÚüð\<R¨òà (úUæ^]µ£€¥HsLè– hEYÍ…Ôú{L`p­ °5ŒhCH€†äÀ¦Yxa©¯ýSÉ-³¦Ž6Å r0ÓÛ4×STªE;«$ Ú¹~‡-dáµD¹~Ÿåƒ XÌ… J¸8—m¸f$S~èO$&ËF(@;†¬Ÿmüµ¨~rÃÙL9kX²²|¥ÿ¶iÆJ}_¡ý6>§$æWf]¾2 °d…S•þâ˶ ðœÎ Oýˆ¯/~gPv¤EÅp*®©‚Læø^ë•Mjn…@EoçœUw•wíöú—rHsác-ïº(c9s9/´Ÿ²jëûEyžõ(`Û²ò ‡THTÿTÖÓSã&ÀÂįåW¸Ž§NB¦ºÝÜ#Vï8§ €R´òíØ¨øŸkaÛD\€>n$ÔP!®”æžùNQ™%à „€ o~ü{wH@äÿßÞ{‡I’çÞ¿÷duÛõ˲,´„^ ¬€‹øðâ Ä•.r#„‘0 ƒ[Á ï½° ïðV,\a„, kY33Ý•yâû#³ª²²ÎÉÌê©î©™>ñ<µÛS&+3+óÄoD¼ÑÒ!±iƒðã–D§LÀg» ±.øÉNøùŽ‚ìÙ;Ô¶â|¼çoö¤Ö£‘Œü¬ƒíN0óoûðÅñ}å í([ÁlÅyþìWë7\Û™ú”ÂfÀÛ^+`ç;üEG4(—Ë»LòñI9Ï[Œ:,÷­´9×Q¡µocZ®e–@”)h²Té€ÑñÌ›EóLRcÑ n€›c0úð$%â° À¾H àˆø-{rpˆïUpáã£'™q8OîÛXôï`x@ŽéêDR ®˜™ 0OW€pÏ3g硬چ‡â˜ãAæôû h£Lm+2d­‹©¨ï—°Mé®Z:`…é8ˆ8®( '­pÓÎ/¢YßÊÌDØ•’žÕ¦ Ö·©ZgÁh£F{q`ŒíHF¸(Ô:Y0pÎâ`ÈpÕ,Р ºuÐ"ûPÏcMާb”Á§F• ëTŒš˜Ùã•é7Ú¨{fcÃèDÖæ{› ÀÁO1þk[(}\OŠË€Uá ‚4=/V9¥qš"@ 1/<õÈÛGhÿ™+¤~16¶iSã…N3À7/À P£ÁÚUØ:÷ Æzý´N²e[:I­Ëÿ ­šØ‘ÃŽBü÷ž‚3_ãÜÏ ëŽÕõÎ=£ ïVþ¹kK6õ|Œ ˜™ÇÒŒ^q/Wýû` Ø?üž¡GǺ£Bûóõÿ^¿PøŸl@ÆÉ•¨Ï>×c®\…òœM4û[«ØCÅ!- `F/? )Ùý䇹G[鎠gëb²ç¡z߇ñRÁÐW€y‡ax³'ƒîsôsäòõeíàùÒæn ðÒ{$Üh#ŸÏU1úN7ÍhÐð‘è7ˆ´šLAÀ1¶EÔm2Âr¶Š;úg?§Œð¨K ØXcBÚŠ!Ûd„ÛRf ’gI–lÖ ¬,“‡÷]¡à{ gà0vúÙˆ0£öªßEº-¨0ëï`ƒý÷‘Yf`™½ÛQ¼·Œ¹³Ie·x”3ý©ÅUàçÑ}#’ 0ÎÆoÞ„ÕÅ3ùðƒ–e7!Üh£ÂäŒ=&\S<œºîØkŽ åû€@«`( nc:…ƒª7¦ýSÌQÍß–ʲ}óÏû3ÿ,…RÍ©‚² ,Ù¤uxÅW·‚÷ŸóÃå}¹zYBÊ=<åµLîarí…|Ó›N¦»µªç~0pz1lÍA>®>ÿÿd<Ñ*õÿ¾ôW* oÿõþŸ8l€‰³ ½Upª óZœRˆÿ꩜mVVÆÇ¤i¨ô…:QýÌ1K ™/ê¨ nh–@íKš‚Vo¬«-Ê¥I€‡Åú*—<Ð&™3Ø]À/VŒsWá¨>~\Á·÷»Ši­Žd-´ zˆŒ_š¬A•Z$ú®§ü©3XÍìµ»ú ¶Â>`½¬ øua/38>¡ÏUõ_{nfPG*ÀKŸ'Û¼›uá Ø¹²†xŸËí«‚Ûm”ý9¾ÊÙ²}Ô5ŽDGQª5 &³êÇ‘’˜‡‘Ã2ÈJ4ÀB쨡8àÄwòüh·ñáË3„ã×'ë© ³3ˆ+ž.Mâ¦:?².M–ìüJ`—fV<'ó¶ßp¸r›§{8ÓI§ÇD|*}S¿í&]ÎlzÚ`ÄÙÙ€@úÍ\L¶L6tÜv°% ² ‘)°Ç‹¾ÔìÿÆ1ž÷_±`ߊ1ðpÔº¢]7ÉzÛQH vtożÖTÀ¬8PíïÜ/uÎý([5|aÇ_¶¦7yÓj—ŽE÷m,=€A Váü·möšºø.€éj°ÂcÏ•é%ÀÑól§\)wühà£p\; MOükŒÍÖ©*þ°1HhN¬O¼³Ú/¥ÑhɈNHŠ·9;`fZŸ5èû ê$`¶@¦' N¦ŽÏ‰T†Qîè¸Æ(ºñ…3SÍRyóa`¢l›õ” í¤"Ã!3 Œsw‹l}Òº–¬8u°¶£c†¤6U0F[:º5âäO²erü…`]Æ©9ìÈ…‰½kI˜÷ ±k8`ÏE;'©n†µ#ñžÝ9ìôŽïíò¼óÄ!ç­+ö ÅÊ6ŸÐ·° ³´“ ,ÌrÒ‘ƒ0bÄ%;Vüã(„2;á²z7Ý9s•¿ÐÆ‹øºZçaÌøB¾·ÞÂÀàÀ0t ñÙàfBÇϳ­+V-4ùtXÁxý,²ìU GÏs¯^e˜‘‘Gæ6wÝÈÓzü3‚c: ]3`êšC3 Ït¾èP¡ê›øŽ™ã‰ õÔ €ˆxP¢Œ—gaU š^'­‹ؽnìð6(XS£î¤ú‘×+Vè(_’§'È8>+øÙîòµlɸnÕûäYE¬Tí_šó’\ñeÔñªñoW]ç@gï6œ«Çzá è.òÇó9˜×Ý¿Û>$gÖ­N¿?þÎi–Ö>(é¹>çêCéí¾Ðu&l§§ßØà®¾‹ m+"¬þ¾t窽+~†ÅcYEo»§ËìÖ&ݤ/ w”Á±.Ûà]§ƒ{¬6V·MF8¤8ý˜?%ë¥2`V3 õxè/4ÃÔ¾lž›d‡Ö¬æøwpÊ~GžÁJ«^¥Ó2cÝYë ?Jm˜ƒV€S.sž W¡–é9Ä Ö)„Ç:UËÏ$ìM¬ìi™´ã€÷]!粕²1òÜ]åľ£‡“s›òü›b' ž “»}òæÑè:•wÇ9+;xlžë—réõHל¯Œk¿¦Ÿ¿kâ_ç6eÿ‘eœ}x€aoíd`ö8óîL¡^™•ƒÎ>ÈÐ#4`椻2ÂsjtþС¨žéÁæTÁ“MTvNzȧˆÿ:úzôkÀi…Ç­ 0'T+e$lFáÀ»R kÞŸÌT~v¥çàøa‰Î]-‹ ëb([8ŠÏ% kí§6’MÅŨV™!LÈM:}ü|ñ¤‚ÿ9ÊÆéÃ]yàþ_òëáð4÷˜ôÜ·WÚ÷O„4œñDºSÌx1Ò•sÌŠO ¥<ý´º@@m9ž®ïßš_`ñÀ)~µŠ!ž„ñœ¾ßÕ†Ž/ï(¦Æý¨~µzá›ìE(%D˜}5Z¦óµ"ª9÷6`L+RÍT–¶¤¦þž'%Т…l± ¼QRσê·ÌS̳gm@n++ëx?ù­}ÅiAÍV±ÎÊÇåÖ3 ŒóvTT®6ÏQŽÙ 3.µáx1ö5·¼¯–3)¤Û*Û‡¯u‘ã¨5ÍWktˆLɸ@çS;V&ðCa¹ûCŒ{´MÀpT@@¹ôå&]Þ›= t¹˜>€j,nßT€£ßpz¼V=·îvæÜ*t·xà­ý~6{5ÆmîÕuã;ÊBÀE‹q®zô«…(òHJ pÐ _U{Oßé|¡jþú@¡:¡†¯ ÅØ€™ÑÃ-ÂAõ/ëÑÝ´€æ¶a–yZõår–ǚ礡cÍg¨€ÁêpÌ’5ÁÂf’Ñ}™\~ͱ†qá®Qè2aæu¤3 Õ®²ßç ‰xÕxÔ÷qg+¶üÿÔqTfÔtXÐÚê—ðü%bwìèÓ ýlmÝö¦ÿ2Ó•$ûmÁÑ´ë̤HûœÚ6Éàs×î!í+x}«~’Å€µvºÞQü¤'Ù`õ&‚ÓºNì•s±Ãà@àÎÌ€Kp6W—@å†;¦Rtò-)ƒÐÔïÔÌ€aÍ!TSlDÏ”ÀÔ6•”èsù©:¡ vÚ$šóˆx._@ž—AžÙ•oLÏ8Ìħ®Ãþq‰Fî*Æ€xz`$ÊkÈÈ«ÈMÀš÷h ñä4Ûas US‡¥žG®òœkÉwÚªPÙ þÙàê1gØ>y/ž ¨¿2¡çýqºzÝ×) =óšíüб±mt•ÐkNö&ÖÝ­úYIC‹à,áÿÔpïèºÐ&®9t|}ufÈ#™Áy+Æ¥n õeÆŽ4æË_£LL•KÏ'#ŒúO¤ýÇ:¢)¦é«X‡!p@¾3)P²î*”5f‡U{t™G ¸ED;Sð¿\6V;½á-ÿPp*9ƒoB.Ã)§XñK²ã`§eœ²îqÀÅ«b_VVÕ¯»*Rµz®jöŽÂ#‘ì„3›’%;¹ºžÖ—è‡ÁÑÞ±&+kB5ÝNy°àÀUÍÅ&«êO·—ŠÂ¨Pmp ¢ù“Ï_äù5væŽ/s¥’7ö­ù` @€U| œ(Ü3QÿÑðý&ï…S¾ñZ;ˉݒ 躾3ôo3.vû‚ÜÖþh‡h¼Ò~ßœ8æÞ&ã¤*•²àZëâ+;ŒAàüdvðkÊèfqš–††Ã­· Ø«QñÆt¥¾š‡h¼‡h0 ü;kŒOµÍ±Ì0³iu6À×ÁBm ˜¢® ì.;,Î _ˆýJ³Œ¶â| %©EŸW»rq\> p­œ½×³¾¢Å3¦óFþEÈ= tÉ‚‘}Ûsm”:LÕ_OAE“tºÚA5Éñ²¦Ù´jÃBí]öÆbÈO·ZgËê ¸<Áú”Çþc}¨¬¾úГË2ØŸ±¸ÞšW]ýojK¤ fˇG•Ͳó5ý««8b@d†E«¶áj޽îèGm€ \…ª}·ßáß}½Ñ‘0Õ.ˆ†“ÄÄr? ±Š8Î;ÖR4šì0¶QQðº3rgä+g;,ËÎÁ턞;Z46¢!¦ÎçÔòº¦Ö¾Øû‚Ð4Ðªí¢ n¿ås%Sü_°¿È¡Ïãðgfí߀ëOh2; ®µîªÞ`ÍÀ¹Ï>çpVQŽ Vë± N᫊¸b ‚Q¡f‡A{åiÙºX‘ Õ'ζ Žv…p}#â7âgrbM`ü2° ¸pÙÍÑ9<Ú—ŠvÉ’1fÂ;Oî «-HÙVUçLy:w5á^XNü EÏýhò:pˆ¿:Ÿª¨ÙØ6|Çš á¹2! Ä`Xc÷SÿÖ×0Î:—Ë¡ª‡­z¢°«üNó-'âÔÜqn6ÁЕTØ¢/òq;]u…(&4ºB2Âçê‚£‡ŠçÑ ˜©@é4>7S@Í€Æ]Z+<Ö{[úY)#U½ ‘'çŸì³ÂÇîÏ8fèÆí­Þ\´gk¾?;Þ2$;Æ<Ï”t-°hK_0×hà¶÷wvtñÕÛ¯7:ê· 0l% ²ŠëåЦ$¬0´H6\GÅäkÅüÔ$¤ØcâºkëXpAåîÎ}UˆO•ª‰³FQ°4›PmSN4’ÑM1Ì4’z­ÿ]k€ålú"˜!Ì-|Ì ˆ#œT§YÖ‡(«ÿS>:ÙG;ŠŒÝCÇ®¡Ø½.v­oá’^€r Tè/äõ[D$›™c©n£ÏC©µ½Öº¦ZXZºG*@­iˆp* úûbsþc6ðXÖÿqä0òSU|¿ùGzéíBׂ’Ö?Æ‹ë¬;ÎÜ»k?b\쌵ª¥«èÝt¹Av«ý6 Gl€Í/#Ü:K€~l@ˆ9jÐáÛ6>˜eÆf€Ëü•//ûé |ìšìH2¼4¦µýÖNkqà jvYxr)ÌW1ß• ˆ‹uwÄtýc©?g*`¦Rþµº¯2<4׊[Š+vÖ¹ý?gþþPŽD,sÓÆå qrᦨÛÌà¢pµƒÑâLµ x¹p„>fœf®êP¤?F—6[ 'ÂQ{:ŽŽ™5Ø€cE­¡ãѤsWÄœ0Ç2>ÌÎ'³ý'ÛvÌ@è± Õ‚·uf?̬–e^l€‚Ø¢;ºîbbkì¤ ¾o3Z)s²Sňeœø|•#™çqÄ0qûª™=RÒK€ãÖ“ qƒuÇGvå] G­ Þ,Xä{¥/`–@t¨Í'Êû‡XŠŒðÌTA›(BÂMô.LW®H™¥T¥òß yÿdÛÈñ ¼¦„?ÆÅrž©P…ï¡kÂàrvŠ"âø”½x=@ì>ng ¦¿9668¾‘Y!•סµðØà`‚ÓÛEö‰CÙ²1Xòë÷Í&Û+Ó‹ ±rŒ‡«¯;Þ¿»îãÅeÎJ‘ Sfnhq¶åÎ…UóºRMÇ<åß;Æðª§Œ°5„ƒBšÅÑ”@üx®!–w€NÊÙfR<ɶµ \!.wé žR†Ù(|Áþýn¯Êþß› ¡a JLá´×¼½ Ùµ›N´—ùœÎ¿oê üZ<Еj˜JÛ6…ÒZ@@sß½7´jïÑ€Ëåbä–þê•^ú¬š¸r.Ž­Upgç`ÿ@q=ñMPJ 4ûãë_ëÂe§m)P^Ÿ”@¬ 0”p6éë]ØÍ}iK „ŽÕ¡+€²eíÿßi“BÉ’%[¨=qËæZ¥Ö¼ÙçÚÒ]ïo빟'Ý©€ú:i6_* bˆ?ádg–…‡ó?ŽlÀF'¿€‚xªŒ×ÜàA§Žë®g|fgÎÞjJ19©5I»È¯µ ­‚õ½áb¹Z›`íjˆ¦zB»ŒpŸ”ÀXªØâ B(%Ðl7´ÉHÀ_^÷¶‹%T4à/2³É’-±UTÿ1r¢VÍxlε\d* µ×¥€ãýbR¾ærºÆ÷Í‹l5ÿŹa ö­³å…ŸBaÀ~¤Ç­K'Ÿšg÷¼îºã£»`/e>÷¼±ÏYIgTÚëÑ+h3ëò¿S‰‘„0Ý)ª©L9áÈ6£)ê"Ž€&˜°vJÏeÎNÎ[ºK ðE’¢M–l¡|°îø+çºõå+ ÷UƒË*®z¬}­Z(ÝgÌÔ‚@Àè«MeqÍÌÞ аSSÕ2u°çM2¼X«T€5'6@ÌøtFnØê;«â:ÀW—-JÙkË_ð’,Ùaû›î(ãiˆ“ !&ÿꫨ9Ö·ÐßÐ_q°µ¸º11pê³õ°õd/Lh¥8S+Åÿàý`¬ÃgM,…v~¶ÿ×Xçí7<]÷ý{rN,ĪÁù〛¦|ZÙ€MJ Pk4OPÀIxUZ¼!6À¦•›X(4­*Ö“2açGß=Aß¾¶Sª“0zÙÙôļº|°3æ³[oX¦Kg(ãäaÉIý/Y²ƒ3gHúuóƒ×"N¤Ó‘Î:ÑñÚ´‰©€: ÙH* ¹ÿ­¬„úN ´¯“ë50XŠb¤Ã.(bß;¡p¿wí¡{×GM§•Sºp`¬WSüŠp˜ÀÁÀߤ”@}ۣȽN«;Êvùr΀ͲhŸ¦ª_qªÑ H‹pPmüo³¢_5A ™ €µd#ì¢ÙâðWž ¯Co8ÆORÉ’%;8çÏP¿ÄÚà%N:Å4=‰OÆTºs²\M›Ñy¨µ˜HÔáYD@5÷z­ùz|ûVãfƒ5«Å›¨É@hrü²O©Ð-_Žúû…€ã6S`]•Þ¯w_=!çOV½þÕËŽÊ(€u;}äW½o)Ÿ_°ËšQÛk›%(䘞Pg¤•¾ŽY®vÓ5ÇËjLA„p€ŸéÄ/›óŽ;dD¥`Ïš˜RôŸ,Y(¾•ÅûÁGÊݵܾ•·aü2MƵeí™øÆHŸ|€Áœ·Õ¯m@0zE „y˜€™Y&Àc?4üËå6ÁÙ, xêik›|½:V Îø÷ œ{ƒËâ2¸Ô•#]ە㘓ƒ’ ãÁÈ@¡ñFlÀšm}±j8è™+Rh8Åb„Ò´ ak®¸ ð½¥`…’ò_²dAÿîŒÕµ™×˜‰´ÆýS»ñOPÁ?cöËMyápž}º ®µ×& ࣠¢M&8Ì"×¼æë!‡–u§á¿bZžHdáà“{79ð³ì’±óÀêGsãA™¡Ÿ <û3ãX¯IÄ<:ûA6€-BXh§*ÄÓèFœÌL¬GSçŸý똚fXg ê5µï¨‹=®Èn¿ À ŽÏa‡W¢ÿ“% øFV8æðÕ¢8µôMÄ@N0xð¸Sù"E¾ úLöóÌ×Ðçýñ×K }bàˆÇƒ˜‘Roi5ŠlÁùæeGí[ݲÏàìó™q³ 3Xw•N¿Úãf*63m °6BÖžÙÑÂ!Gßì&˜SF¸Î4ÁO“ °~2Â; ¯ë-ÃÅ V‹²f!ÑÿÉ’E"gYùˆ,•ÀñÀ+wŸk@O`Íqã¶À~©€´†–Ê>©€>k%Ì5¶Ž ®žðòoq™»lTä€me¨%ÎÅìÙt³s3ÏÎܤäÝ7¢ß&@U";rgl¦pPË,Qƒ©ùY©ªÖÉôÐ P¸È¥^kÐÆtʰ›êë¼_ˆ$çŸ,ÙAØ ”‘ÿÝ»œoÜ)Oœ}L&¸ 8ÌSQ ýSñ‚Àéí—@† 03ÍÕÙwµZ<{È^Š(§­{”­ÿüÄeF.›ÐÓnòƒD'ºŽ^ÌM(ÖlNç“E&íÍ!#LCÆwü TŒm\F¸.\Oc5¿Kèà¸CKmŽþdÉ’mÌN^Ü#a7ÿÝ.·;+ Ü|.¶õ•€ÊF ×=e‡5µžF×ÊоÕ×ËòÉ5‡½ÐÁ…‹6_^`u‹‹¿Å°î¾˜™®pnúϬEñc…`Gh(ó$ Ž€MHÝLEÏ)‚©Ëw¤êé€Ê7?SÿŽÑû]`ª`ãxö:¸9ðÞCµr­Ø„J–,ÙÜv2ð"™îi²Ö(»O*ÀÏDô£\zûô¼®È¾Ïû½ñuÄUÇÓI€VÀÈÚ9yïtW@8`ßÜ½Ê —µã~ññ­mýCÆkÆ/~¸â9àUcD$4é8¡×7‡  …"nU @!ù?âs¦Û¢zÑýÌwZ;àl’E ló'ÝÊIЇ9±×‹Ý>éþ'K¶ÁÈÿň{—÷´Z—ÅØÒý>kݺ·Ñ²ŽÙG}_å˜ò@_l¿Õú ÃøùɺyÀ‰gI¬ÙÞ=––`mëL¼C²ÇŸŸÙM‡ÎÀ6×ÑVAÅ%„aSe„ÇìDL/@a½€Ð!2±..½€¶Y u”Ï ³›*þ½,ÿHä²d°€—!î‹®cËb—Ü.ŠË[Waý¥}«¥ôb¯ö89ìG…ß?ÍAXãµQqÔ¼]•ÀÊÇäxS‘/ï½xphÖ]˜ÞùÃÝt¨*þ|@xbê} ¹½ØñmFJ`Äøp!LëdÁ–ÖâÁ9@Àø´têèª`W~°ÕÎÅʇ% ,Ù€g˜wm´>l8„õ\ìȶæ2X8¸ÆþCló7¯­ gèò‚u#á 1ÕìP÷,؜ɂ´Œvµ©‚µ}‰JþF&ö!Nmz„±~,c“Ç[õÓ­Z9 Y²dÑåéþÀóÍt|ý’foçØß4ººœjÌѬþií^󬙳ç#^¤ÿën‡ài&ÿç™h‘(?~,Õë q#óÆ`•'(s_ÔFõ«/)ŠÅöùo98`‡¼éñllð1Äý{€“®õãGScîÝâ¢Ø MPß~ý¹±f@`¤W¬í¯OJ E3àWÌtgà=› |ã¦L–,ÙÌ­ú(Ð?T«\?%¿žïëZg…ñºÖ˜ê±7CðAóz"ŸwÞð²UÄÓÁ½…Ày !>/@Æû$^â21wú^à×<ÔßWÀ`°W¹©‘Ý›X ùËöM Ä GaoÈ6!% †ÓoŽž_ä®E8ˆé)€ÖÔøo~Gß« <Ç™ì6r›Fôÿ¯Ôú—,YØŽF;÷™idL+êÅšJ»d„7á·’n€Œq'@DF¸.ù;uX}d„;ê §†•lįGovh“¥E>Y²] x+ð@`%&°ºÿcÇ´Bï~Wc™ÝŽ}OÒ Ý x¯í´¶jPª¾ìÑuÖ64¨¡Ê©· *ªÿËCæxêê>®Á=ß¾¶Ð®{Ü2\ðû7 n3· 9¸ OáRXwSá>)Q{Ÿ”@›fÀÌçL·0üÿBù›7 YEÈ+¤Þÿdɦì6¸ì »I×r4o* oÎ=8øØ`Á·QñÿرßddkPìŸqÜ`¿{•Gw‹ëõû®fƒ>ÚÕ¿¼/ðœàAö°áºðÅ¡qþ›Ã,iØÏ6JFÔq5÷›5Û6­a ‰ (>DCN3w}tüæhÐñá@íè}êõLp»Å Ü~‘YþI–¬fð0Þ,é&Í{UmѰÍ:µDô],@‹P tÛ: ù‡xå×½¼ ä„ðÆIÙ>÷Fóº›gæÜÆt~Vœ«LÏ@쟋ú¯¶|]ø\‡tfùâ•—Rœ¼ã¯7 ZÔ§¢ßy»6©UMÚüBm‚㺀+(lcB Bô3Ü%]øÚ¢£ÿ•”ÿO–¬nGs¦¿µC÷׿o¬'Ìj„[»»÷ÏÉü7Ìë%^z—`?feêaVÒš&îö»w™tÍúºe±1éôW3l¯wx2{ò`§}ÂæYËŦŒ–_à\±,7Az»/²'±QŒÕ£ÖIJ Ö%à·®UpL¹7ÒÍ”ÀHúÏFÕƒMЕìzWJÀ{®þŽÊìk‹žÒS.© Y2Á€×`Ü!è{"Áó8n"Î<Ô¶ú~ÃÙ·ÍëãN¼Þï´OÙþJ:L¨ 9¬\ÄnˆÏþ é’µêÌ›žˆ½?Tõ?õ9ñF9ž?·óüºá2C:ôóGj ÀȾmâÕ2~ÿ`î¨']súM‰ÞÙ«³¦Á»E `Å»¸h¹ê†õ³zÁ¼¿MÎ SÐÅ„»½YñÃ.Yä¼jGr&+Y²ÞtØíœ¯Ä¸Ê(ï#侉°QÕÀˆ VÙÌôað¯B®®7#À `ë+ ã·1½À¤æ™:èé?Ó ïûÇÆ8K²Gm$RñC‡Åfôß-È—i»Ø'goäúýƒ:[d„U/¾k²ª]F6ÈX 0™ Ë*J Œ>b`~Ñ ™»‹·âv…Šwj׉QJÿî,\êÿO¶m½¾aGÅx”`ÏLÁnÈaF´>fœäFS£ÀÃÙ6°/øOeëÙ{m·ÿŠå.×úÈ)–}‡åäS+0[=ô4‰mâ@-ÌÆÁèL?WýWv.+<øù\±®[~,ÏÕ³ø€-Õ½ð“}t§EðkAG]ïˆ^aUužoÙö‚g Œ'Öf XãÆª&øY˜ç‹8úÑß®öZ×@!Ãe·Ëpï\ÔÏ[EÉ’mGß“û¥LöJ¡[ÖúæƒÑ{3âíëÛTëŸÂ;ÓO‹Ì¾îÿt¶¦æ;ì«^þ@¶–MÏ+1a«­—ÏeVÉx;; ãY2þxz⻘¾K{;R®ÌžÃNûðøöüû-Y­òâ‹—­[œgâ•x»“ÑkѬbš‘uýÃc&¡¥@Ð/þ÷pªhÿÚ>MÝ,ÕTA,^ Øl½afê ñÚ™þ˜Bo>wÐ`Ø©ö¼c²dG¨e&û}áž¼—÷¶PI|ÝY[ e8ô1‹lË1žÙw‰7ûO_–ø^_ñ+öm¿Z\’XAVÆîSûa†T`; w©3:Ÿ½ÙoʇöovbàÔ²\>áx°}½V[ëÞ)§§‹¨»œ¾Ê ‚¶®Më[:°tkq¹?Ÿ¾ Ü`A "^øWK(:^¸†-##ŠKzl±ça´?cõ@ M¬2 ‚´ÚܳlpìàÀªHÕÿɶ•98~÷l3»°ŠÐéÉt©æMEû’áÑEÎ8«À¾jâ‹‚oß78G[^¶ 7{’…!2 Ç€By“º¿yöÌÝtD%«cVWGÀg#L@[ÚÀ_<ëïâ²õ‚ÂW¬ÇÊr^KG>(í‡À³Íì5Z¤âBGà”žf‚vÈ/š.²é¯•` µÈ7•&ênšB²ÇXfÿŽ8ë`ɧÑÉ`…ÊÇ`¹É$™ñ‡²ì)+┦ƾ9̶| ^Ç¡2%ˆ]&s?7ÙW0Ž9}Kè? .~îá\ èتyY ¦µ;~ô÷‚+àšN=<+`žÉ~íc€Ãÿ/ãÆÏvì(*tv[w÷ÔvEnž¥–(]| @K» øpÍÅp; ªZÆh¹cWÕ&Ô4Ù€)…Ãú…?RŒ€€ÐÀÑ¿ÛØ€2] qvsd 0cðfÀu€W&7¸=Í€S÷‹¡àœ]å•ê–˜Á§øâ «ÊNÄ8Ñ2; Ï1fº†DfãÙ…81˜ºË-\€s?¯ÜÒ*ØÙ*£÷U“}Ù…ûrÿÃ.;Op1°ã\à2dùÜ7c}W±6›MO”éÏc¥FªÑë'Ôâþ–¢À§ÞõþñgF&{ ãÓ“|f·OÈ×¹•yHqåù?Ì@¾¾¤w¹}˲ìÕ– ž¶)u =Æ Ç µ€€ŠóÛ á q%P± FèB)^š‘BîO½ù÷ýd1'~Ãv:èe`_þ3¹Ãíi;sX®T8ÖžŸí\N`Ø·<þ[%‘Î °³ZÇ÷ÔV— 8ªú³x°> Q8P=çÀ.+†f¬ÚÁËÓ–Îܰ} 2hjĈSÜ÷Ï2÷[m©ˆ˜Æ@k*ÀZ¦–2GJÀÜS¥ü5F¿I°¶æðyûx˜ËÌô{ÅìrÀ3;€-)‡f†Œ·~ìôÍ!è"Q~­@Ðb½¯pÐ&Ì/ á )6€Y6  ÁÔ˜`Üxù¡õÿ\$Ì!{Æ}ó’;Ü~æ«ksµ(•%W}HWˆw µ€×un‚pDÝ©· ¹*²kX㢳‰Ôjí¦8z%×ã3o”÷PàÉYÇãÌÊñ£ó<°Ÿ‚­Õ®‰Ðrj~#¹µd5_ìÎa/ÀÞŽ*Ê{#_@1}Ûí0c‡Á.+EŽäÄŠ• Øoð; î!8“BV°pôn±8fƒ €˜¾]mÔ¶Q8³gOj]—ØMŠ æ[ ¯UXöI0ãý6#[µ¹U.p[,C¶½€¬|Ïb /t‚€Ð¯ÓнO[ Æ-~µ”À §4â7y {ì†=ÉZe°Â's˜Ó¼³ÍñÖU¦|þ `¯J ÙÂÀ@u¹í²² k'pÌPì)4.ÈëÌM7+‡xUŽ_ ÆI™Êh¬ýKV®$ô/ïnДþŽ9ñpD¯¹—Æðsš:'jvŒ"³gbüMë—®û çäûËìì=z—ið¿C›¶Ù#ø‘ØYÙª‘­lmñ6OŒÕ¼Þùòj‹òÕP ¾o‹e„­¡ap•Œpƒ PLTO:ïþ`çúà¦Î«÷âäC<û•—S Å<ïSK”;yØ«Û'–la` z8Ê}€±Ë‹£ ±ÛÇö àÙísvžÝÞ³ÇÄ *…z¬qÜd2x(ðYÁýú8ø¶8dJ,òYcþT€£ü.{&ðdbsDEY¸1ÔÜ“F%ŽZ;à^î ÷*'®ÑÍh™þ¹ÅZñ½|_A¾¿ØÒën[€ O†g€G™ý-pÉ!ß©£nuÎXBáòõöº€pšL'›¯KÅ€}ä¬Qt‰’6­¾ÜcŒŸ¾ØëH¶)É ˜øÒ‘ïðbWõìòÆ ÆjQÒû#3Ëc›¬Àb&»¡¼û8–½qùÖ¨|©€>³FëP g ¬¤ýŸ¬EOüª+²¹iî„çÓæõ‡Óû«(ªNêeÀǬðXaX‘€-õµ5‡úuŒW-ÍÎõ%íè8ðEŸK›¢ÀÕ¶5Q¬oÇ™þ—Ð_ͳ|†‚z WQ}‚o/Žøù»<Ø;$—•l3Á@­ —b¯ÏÊé¦4”ìXüÔðÊNAîʲOKvë®[$– è*Ì“i®%+Æ(̪gG©ü^r½JÞdŽ IâØ|˜ý³º÷H\O ío ¸qöRç²/»l—­à²•¶Ìäõ‡W¾ö,;èùô þuút ¸Ж3m)ñE¯ @0(²‡î\[¹¥óýó”£ÍzǼuß@|mæÒºò\ì_@wJ®*Ù¸hï<Èà?Lz¨Ð.Ø@¥~ËkóÆ$Ò¾Í5Å3„âÿ"û+PÐùg+…Cã!'=ö¡,žøM3>mž?ËÚ÷m¶Ò¡kïÝ´Q ô„דÇ1þn)iŠˆ¿e –k¼p„ô)ËO2qô(_ß}A‹5rÖlˆÌcVô}ü·É>?»ºu~éIU:àžÉ5%;BlÆíAoBÙKœtÕç×Ãá‡X€n_.ê,€<¹9ÿû&{m̯gfdsÕÆ/ïs÷‚|Ýý;âÚóî[m ½ŒÎˆ“$°Eþ?ÓÌñv“ýÇaê)XTß§.`A€ `Ä^„êê7Š3Ý9+Üã³BdEÿ»´Àª{ižNûb„SìøMì$°·czô\áL²d,ÝJs}ày–ó~Ä]úäßÕ­Ûô#Ÿ ˜²²uâG>ó¿i²7?•ÃãÆ}½âÅÌ î…ñ^Œ‡ªQÏß½oµ.…²Ðã-xòC ÛùjÏw®†~åód<5ózfËuk†f ŒR ÞÙj˜Ú  N Žœ¾¹ñ¨Í™BF Ìâ…Vóì¯Èíóòœ¹gA‘Y«ä¾ƒRX°“Œ¢ÿA}ø1â´^£™§´F…僒åÆJñìäK’fvy¡?hðà˜ÑoS·®~ðv€N9Þ6yÞƒyNðýõ]Åo›·/ ÖûY¶M`;ŒÕý=燔kïuðzT¾–ý¡“µKûþ–ÉÙÛï9Ô?ú¶fܰ˜}äÊ‹SÏ[ZŒaÆJSm=7]ã…7±@7ñ¥3¨¿^Ðx½¢ÿŸfâêó\ØC+(Ì#³Jð¼óñŒÏ†Ï:ï X‘=Ëòì/' dÉ–ÚN$ñYIOE3·Dþ HD ¶¦¼þÅ­´ê¿08Æ»PöD:†«6ìXËõ{ÿŽì¬• é“ p¸ÌÞɲ«Rgª?Ø"úc}~ ××ñùKLüliA@‹f@+ Ø a›è9…SNšî¨‹×ÁxšÉŽ6Y ¬å‰ýäò¸±ZQŸŸ‹òy®åœA€°|ðtà¹À*É’-™U·ÖQ‚?6ñ)ÁK„®ÔrYo¸/"pÚ 4hŒ—v?Lg35z¼6ζs®Su Äklݽʡ+ϳ éîÎM×»êÔuLEÆ;Š…Ù!÷ÿÛ»€,î@$aæßºÒ]—ÀlBj4…¤ºA-–ãwªÍç\Í‹,L©† Y£yÔ0>$QÎ÷3× °’»§Pðuþ½æÃ]¾•X·œK)Øcýš|ø r_îú;'ÖÒÃXŸyàÜÀS1{0ðóä{’B[Ý×dà°Û€S%CSóì˜ÝæëS·C¤v§iúšVHýVQËßtŒ–øY±³ø#†¼»9:Ý*ç¿ÂÃÈ»ÃáUÖu?àÑ×ïOÜgižJA¸Ì>°ºâ_º,åeÛ;O™eñ‡s»쟈)G-p‘_7$¤ØJÍ€*òw•^€«=7uHõ6ÆÉ ð2½Ô¤k¶¥&»^²>sØ Ã÷xØÀ½qa´³b¾sq/Ä¿Ý0ù d‡Èñßx/Ø+ÌtJuàòjfB]ó²·–¨·CΗ~_Å¿ÉþèS&»«_ñïVcC^gŽÀ¸#¨mM²› ީ½Úº>t×8ô=–ýoN¼u%ƒƒÂ¶ÊºŠÂÊ_ð£À3—ª# ‹Ok>WRçxá\Ý‚À¸80¶Ì€NsÆË@{{á<ÄexËQŸ‡¾Ûð_oçùÔïü—/ÜFðFàÉ%Û"Û sصGñ­‘­;D]šž%ÐDÐrÓÂA†»Ïµ›ê3ÏgC_€/pEºyŽÄ;qš(ïxõ Ê%àZ`ÿüïä›’m¢]x¼Œ ž ºåÄá)ËéÏ:äiÐ)çÛá$›2Á…€“häH/Ãé!À#€ÿ™r°VÆ:Î`0T9õ0¾VîÁÜ“ÅÊWåôB{¥ù˜¹´ƒŒK3Ù‹]¶\˶®˜Cýég*x Æ¿"–¿¨+–»¯ÕŒûxCï'é,,X¡Æ˜2³ZºÉß’°ÑSé÷v¯~äáïÆ¨EUËïøéBw”ïuç {™öx®SßÎFæöç3Ÿ½ïOBö‚ä«’-Юö3ÝߤS;ûÒ}üSïoëÿoDç3—}€¨o§K  4¦ßoŸ= øÒÌB>0|æÉ”mP-kûQòúƒÁ~þq-‘ ¬¬6ÂOU>„ÏU}Ÿ|Û~ôœC‘ñÆe#’·5¬ ç@ ö^sƒ—Y–=ú°z þi[Ì¡hnoý·½ 0^|,²0L„ƒB—q‘Œç6÷©Ê.Œ§£N¬í;Žê¢.!·7áô·x²à>®Vì.œ\FÚîù’® öÐ]›”,Yl v+ÈeØ­%í¹Šô´ˆùL;½Ù‚À×.bμêËOÈÁša¨ø{à Ð/¦¿K  °ÌS¸–üD¹ Ü}õ@öàF2­–5DV}—UÇ9@éÎ7çŸïM ÷/—÷H5=2Ãgöds|æ°:Æuã+!&#<϶ÅT)EfÔf ìtð$ Ú©1j·-Q@8J™½6@+þŸqöý±¶BèŽéÓ¯Ä,Ãâà2{sh¬j²d-–§˜x¨ƒg¦`ÜÝ¡c˻զµ–˳ylf*Àb·FW=€ôƒaQܳðöx©áüUÌ´!F‚Ü»wð&·±b)šÇ9µæØ|·xÃϼø`_—“À2b…òÿ…¼ý-ƹ‡héP—C?Dueî?|6f œ éåÀmºÎƒë—€õ›÷ý àˆáXRÏ»¨ëî’»'èã˜ýzºÃ’uرÕõý|à+2½Ày~-t‹°Z]¬p-š‡oé p-¯)À~Í[T†™‰™ÝxçÄ—Z_ǵ Üø¤Á»·¤!Ì5£wP±ÑýÝ@W€ÁO•ñç ï#€¥t¢ªä‚×>`V¼ê°<†.õÀ6‡Þ6^x“¦ RŸ*¨€‘zà)2½Šr˜I'ñS\–õø—g·¿Ocʽ¹&âC˜þOºÉ’5l7puà·ãõàÁB§„œRÌaµÚ…"èPk`Óaí2Á!‡òmzy’ôÍÜÛ=Ö ÿ`I¿¨Óñ¾ðÈG«ûp pgà”Zû7W+¸ 1š‹Ùhü+„}«ý[iƒtÍN;ìq7ëŒ8—• h"ô*% j2†µ Ú⺀q>Sἥ꟪¼½ÚÃ=?jÛ®/À.ƒÕ£KA‹5^ˆìy gâÈÇ æïZê&‹©V-_yyçx–Á¾tŸmO«.“+ ÝtWd÷—±{„€ûÍX€RH«½Øy”kï¸Ó åÁ»ê Z‡•>ýb}†{pÁè=+oB>Cø Ó•qª î†x”àô^ÃçÆaU1àl9`›èQxûöýëÿÔoâС±í 6’p1ƒÌ<ºB˜—;lA@Ó1UÕrjLí›[=n§7/˜ #F­€ÍÑr7pÞ¿Ãý€¶í†ßç±Õn%¾¿Zõ¯°µÁC]WŸ¾#ÊÚžo¾-ÓS0®EYÓðýä·E<1ºgN“qŒ›ö»®pW2gãb¾ré™Ð`MçîHµ1©+l«;éhÑ`íuqˆ}o‡X½1²OO>àý‡^Í03 gÆjæ8À„þo|ôW îª\¿3ºëškÇÝáýœ8{k9o!à[î ŠlÀÁ]´Ì—_’Þð]k_ûgp{XžÇ¶;¤*¾3#>†ØU¯m ˆ²µïƒçnè ÿ6oÜøAÛ9ð9Ccç^#õ_`ùãQö–ÑùUßå{°±•/°!\x²'y;~8 ã¦VpSàî™ñËVhƹD£ëŽç8ðØûc!@#:n‹ò›¯×¿³ZB¾ç±—šì… K=ž¼ð¬ÈaÎÈŠzüe`ìÁq+Ð=ß”q¥Ñð“>-‡ap3Íl@ì¹0³1â˜Þ§Õâ]h¹]CdTrÆgxÙ …îsØžƒX« ÊHkaÔ1W³ý½Qà^à|EF4”͹_•··bvïV&À­ƒß瑳¨ÿ–ü‡|æ>)ôë­}B]ìH&»è]¾È¼)yË#Ê®…q3r®ÜãÆäçÅx&Fy¡×gd”zú‘T€5€pƒhmù£ï,û8ß7P{ÿÚZá߸âôàë™D†cžsìÊ*d¢ðV_B®1pÙw¸ ¸•R£ÃZ«&‚ŸI+ŽÔ"©€À©¯·7Êô× Ë–ýbL5òBã«ÅczŒà&N=Ì£‘0_W¥JPcnÐâç…ƒF÷»S…»ZûÌTôäô«f¼UÞîEM5¬ùSšùú€Áμ>ˆÇÈø¬ÕX€ñ‚ÝôƘîh†¼V7žN•MvøXuìnŒì¦2w#¤›I\¢· 9#5@M–«Dém ʼn¿º—´™Gí j4>tº&œìˆÜWï=JY>p¢ ;•q€3ÝB»ÛdÒÿOwõ™[+00¨ ä4÷ÑY5Ê»vLõñ€µ_$x¾êÛsg âë ýÒ_£Û_!Šïcz´eƒ7I‡ñ¹èH ŒuûCo ´¥ê±É‚S‹¥t#s¼MÞî ü$ Ê•s¸¶ÂÊ.V @Ø—‘ý#æþ¢3¬ ßÄÀ֟ı‚ñç˜nbØÃÁ¾žÜê2ßCã‰V×6¸­ƒë:Ý× ˜pÅjDϼòÈå84#”C øCÖ— è ]Ñn| Ðòýå½éÿÓäþAð63.Û³â˜*УQD…àãîúB\ÏÁ«Yà4 6’2 ³£ÒÇ0àgnoýH*^>g¸ü—l‹ð›Ò[…{¸'Þ -Õÿ0ªf;Ýp5Ñ´€ó&‹4êš‹tcÄ[‡_™Ý„€ýÚ”ñB‘º«ÑÔãK­ÁtÕŸv·5ADÌaÎ×5˜ýTÆßçØk‘]0Òõß1›,ÁÃn9n­Aö9œîŒËÕ—™î4C7Ðö\s 2MðTƒámÁŸƒ}–>I` ÞÂ~¡\Øs¼ì2Ýþð?/‘e¤©ë[ÞWçíàráæjµ Ó逛oÁøcà#¡*ÓÆÚ¥ÆÊî²D$p?kfoM)œêšèÓ8/RØ1ÿ"g·=¸8ùÞCb§×n \Ϥ«`œ\N¦Uóemkû]¤r¾ÌñO@€©áš‚Ñõ¬Ëêlý›ÍÇ÷– öL3A‡9Ú¾·s¼8ãÍ’~šß[F¾tð·n¥B71¸Š'99 ‹vôí8˜÷¹fAà4‰wTŒãgo{ßáäVS ÀâœæyÀ£eö>ÓD¨ãˆd²Z]°ÓÉoÛö‚XØq+Ÿ¡;¯æä^åÍþøpðóŠÜîsØnM@O}ý–½Wâµ2~oêX‚}O‘z€ €€²sQ º9ð»ÀÿK7Þ¦Fö¿B9]ïW€ë ®f^Ç88Ú°cUzªi'%ëIÇ‹öfSË6á©h|4î${¤üR¡(¼é0½ÙÁþÞdoÊÈÎ5Êï’q,p+à×ýº¼; t¢ÁQÓ=ÖY`ñ©€¶bÉ:ÜšÙ†ødO.…ì°¹ÈXPà¬øšInƒ•7èH9®¶Aß5Uvá Mè ¡Ôlm1¼R&ý‹ÁÓ€çF‰!; Ø?<¸!pÝqÄ6OØq0Lˆ³yöi™žˆx ‹¯®8²¡úäj=¸*pöœˆ®&šÃöOÅÑùY607ú?€Íqþ¨ÈqùÚÉŽÀjí–©‚S“cË®´å `”OEñS‹ªÓ-‘û8ÆoDéBÅš&»&¼Ï—“ÙOêýÝ›5&¹Õ¿¢GQ7Þ™e¬D’‘œPdì57î,]àºéeŃ1{q×%%³vn³Ñj—C$âˆ['ö¾«¹­ÒÙÔ¿Óf¶«)ú-fneëé[Æûªø¨@ÈÚ±ÍḻÞ×µÔXôzƒoöZ3{©8|+¾ØÔ÷™³ÇÚ‘ylñ»1«½ƒÿ®c„î&\™ª®æLÔÍtu“Þ‡ÙãâÇkX^à× TäP¨"?ü¬YñçÀ¾)Ð\ñ6‡[æ~çÞY1',ã¥ãÊdýNYMèf\VüÆ?3J‡ÄY<‚ |Nvν¢ÉŽ÷c-ûüœMƒŒ.‡h-Öú1­Î726¸þºÑolpôÿ, 3Ç¥^,ƒzœ·À1}Yâ/f(ŽE<8r|¤9^bâïØŒ]´YhXj¿à›—¨€Àtbè’ÞsžÞ;†ÃUü¨×°ª¢’³Eöœ1ÉA @ôZ™6xlˆUgú ¤Ï–ºéËA ŒÌDZÊÑ8TM[ОG _áI—F—°îË|³SQÇmí¯»  ·nùë…AGçF]3l°ÒvkX÷ù›ó¥z¥&Ì~ùSP~®ÌÐÐP¾¸GGš™=ã]ÛôI H[ÎÔë4ª]¨/¤r÷‘ô~೘Åð&ò"ÃÉJá‰*Ê÷̤\O`ãôsŒ «¤k˜Ó»(Û[ºÛ#dzjŽ£mÀn²ªt!‹ ž'x8Øy±ÓK„X€¦BÎ:æ`CÛs°‹J¨¦Ü¹Y©€NÁz°(¤™z|WkªDüóMëï@Cœ283X[Ü#€#ÊA ++Ð"8눦;Z gRA6@[ÎL±òµ…_âF”²»¦Ñ-£ Þá½Cò£ý7C|uª(2¸ÊhsîÈÚ1U)ŽU™þLrŸBü²¥« (0V½ãpTUºP,†½Ð°~„E0¨Y{¤ßÈëÇ@@Ì))pÍ_ l/tY4ëšû¬Z ÞÊ(4÷³G¡Zžožås«e å\©Ç¹Q PjËHÊ4SÌ:¿­E‹£scîCfüõ(ˆÐažßM`3a¸µ—ç¨þ„bøû˜ýäˆ>îX`¯”%€Úنņ¡å즜æ(B=AðO&^\§‰W¼ë˜9dä9΂þ ÞÎÝ]¢‡gè æ:&¥âËOº¶ÉÞçÙëÌt…e+Y6`ˆgÇQ¶Ân²…%„>`²ßðø/bŠD¶6ëô­Åöa¬=¢¤G¤¬Æus1Ö› P ߸.–ÀzFçv`jV]Åz]L€™~œï,éwà‹ÕÅj¶)Ž3à s²"‡²hì 2ÿ(ƒKlðqpµ¨X¢ —æÛö"Ø€‹1Y$…9÷Û’Þ üv½yÍÉc8Ö¬âsp>ËÁŠÏ+óµQQ`¨%lY h,ª«¾p÷Çë‚GR¶Ê-Õ…S`¬âØEÆ`ØB  ¾þvòÅkÌhSØfS[Q`jº-§P¨Ã‘»–È}'­yvYûe+ 4º "[Ó ´¯¶ú[6ØqP 4ÚG–?._)Î*V¡XÉ6í‘À‘„&)€‘Æì›eÅ#XRÁ–-M§u‚[`º. F©þ²y½6þqü(fr2ÌŒµáo®ÚeÁÀÞ"W<Îd¾=)©ÍaF›p>ñJ´éY‚w¿¹l—ާ,Ü8ÚVØÃ‚4d—bö@aöu0s­Yü¹®è²/{ÐtžS®5D¡·†ÅZX‚nG?_šù\ëùí¨Æ@7°xÇ6ò{›¤çƒ½Q£ñÅf›öHà7Á«ÍìyÛå`£šÍB¹àû:46©@p‚צ؀UoîO%û(p×qÔ 1J>\ÁüXøÅÏœ:V7G´¿ zSpQ“äî$ãõ`/¦”Ç]2 ÄÄ.ÜXhqöäïöÍ Ðt2.qö‰BçLtgqØÌ£Sý¿ß:AŠ1_*À"Ñx_A Öç¬/¸™e$zánÓ»UÎ9â,€C·¶=xݶ®´²îµ †„ƒÊ]¹žÏÝ;ŠÜ½^²+?£R0h¸¾R h!žj²Öå^ƒ©€¹V¤9A€˜étÐä¼çpú´ÁÃX²)棒Œ{m0ÿëòþÖ™ùW6]HL ¦¸KX§´TÀL$m™à¶¾oÔ>¸é“ ˜§ÿ?özç~0GKßfüxGèøí]<øÐ¶9by®WJ@ÝÊ[”¨ž@ö¡OSŽæï‡!Ö/)Á€‰}ÀcÍÙKÛW«Íõ»ÑÍW/Hº:Žç }ìöËxùdˆ8Vq *´óÁjÆ} ûÁfü>Ø÷F À˜Ðë×—õŒø{8sz°±ÜH ¨-ЗŠï+ŒòÇ©µn¿MB¹70êqût¶üa/2xÉÂe~“p²ÙÜYùð @}v›Úƒ-.œZ¨\xáÚx,ðIăË!(̸4Ï‘çÇrÜOâÓÑsà6Ôk‚žR G°>{8¦¯€ž\cÀ(-à¶[@˜°s…¿™/3¸¬uX޵;%¬mÀÌ|‘tŸBÂfW@¸¾1˾ÄR}¦ò5Ÿ›ˆg«@ô™£0O* Ü‚Ì>lfƒq@…±Õ¶ ¼ÿyþ¬¬ Ø>  m² ºÀ¡©  ÅFÇ•s/zËÀëΈ½Þëû=Eaÿã±û9ñ©ÖýÞ„c±Á‚À1Ž~<¦¿ú€J`sÅe»”V”±Çe¬T.ë`ØTÁù&äñwÅø¨«·ìvÐÝM'®N»ëè,~³CA ¤Òk^@t~¦ãÜó´ ¶°]ûl³ŒGïT€ôüðôëþ\?ô¸µ‚l‹ l[`Ÿrøß3lŸm¯²jÓç9­.AÍJ ¸ XxQ [ífïvÆ«V ÝÎ{cm¿g¸f?~Û‰OÆiñ,@ÓÏÏ€€f* ÁW5éEˆwa‰R£ú€U2Vp¬ 2:­úq°;ÿ`™}3暎6R`s8¬E¤¦jãámªSX¨ËÁ·õï7÷Ïh¶(ª€€O,œ;`v²ßGúFp I)€d›ëfïpøû]¶ÝHX—À(Ún\ßúñÂcGà*2"ÌiywïÃÁ»ÏuŽxo¬­ù³ îç2>-xŒÝ±±H4Ó3‹a3¼®oN/άR§"–B]Ø€Ueì2±ÃÄ*"³ƒI Ȳ¿*3«u³GæÞ¾7㈿»ëŠö7:10²½&a6Õ@~ï(Ìë‘ °9˜ŠvgÝ/Ðçµ:Ðh‹ü㱆z˜™>ºl2Ù l;À»þ†]¼íŽ¿¥K@]}‹Ç ×G¤¢ÙYãEÉ­h¤?Ãø¸Ä ¼÷¿:\÷gçëö›o%Ûº»s¼ºHÔK0Óqsz‘ï1ÏÃ'/PÊ Øm°ÓT5n¬gÀ’.\óÅó†Þß…LOÇøaˆjÿæ6ߨàƒMtu)Ð’ p½AˆEiü©m·tDhƒÊˆ} 1×rnÛÎåþ>ƒ×l+æ5€%6ãL™ ð‹í‚hM Lu ÄÆ Ï»í0SºÍ.ŠÎ '·W¦‡:Ü}a/__ÏÏ׋ßž:«qi{\`k ‘•ªÿÄ$WgÞï¹¾<_Ò§@Ï®¼·ÕA¬šcŸ’ðsJ®Ú$JüŽ9{‚Á]MöTà+™f®ýæ£[?0žŠ×V`ÙÞÅ>36ئÛœoË÷»JgÀµ\ޱɂÍí7'8þàv`F- tëÔߟIo‘ô8I8 I D•@²ƒñƒo7ógÀbÄÏ{Ð(ìTlÛö¢¯üjarÕ¶]í¹’¢Ü·ã…þ0sÙ}aÿ4\/Î4x* ͈P¿ðg#L@¤­qêw1“g¯©RÜê —·ZF@&VlÀÇ °‚fèì¹Ð€q–e<Éý֊âa’ýÞfN¡1`ÉÔA€ëÐ+hΓŽèÃУ ²5ЃèÃDkZûÒÚ0ÈaÎZ^P s¬0$m‹e6€å÷ƒÏ4³¿òm úª†Ø§­× °jáu êÐèEãD'÷h+x]±^Üм}} ðmæØàÑf"m1ÍÉN¢º+Iú#Ê Šoî d‡úr²1…-€ªŽÁðÚÀµY~ö‡yá_(¸gyœö—Ö ßb‘hYáíYP nó|¿ë16xöûûO$¤…Eh›FX?jqtðþ{ky~ß¡/ÎyQPäf© ÙrÙ“Íì)Û´±5õ@µ…ê‘جY¶»:4šU~-óº[‘ÛU‹"Ô[¸y©ÚN‘›£}v!>EÒoa¼Òú ¦Ç§z P",U¢+^ìЬPÓö;‡åÉ;×àínc²'¾‹YP ¨õr8áÞÀH›` ôaâßosWæ[/©ègç•PîR"tfçÉxPîùþˆö=¶“%pøØföT¶s:@=Ø€6á Í0ê“ ƒ¹UÕØ€r­:Á{sEá™ D\ XX •Âê GŸÇȸ ÆÓeîS”C°nº4‹ `P€31ð²ßeëˆ/#ž ÜÒ·‘ñ`?š'@ÒGs‡¶×]P[±ü¿õºuúDÆRÆ|c™£í—56Á— œýð‘mæï8Œm<Ýd±íÖ"8åÈ#Ïg`y#³6)%0ÅÄ"—@©^ó ïûÝ­ZÌ© Å¿ — ì4 p˜®ŠôgÙGœÏ¾BY3p…CÍØT̓ÈP©.h~£»~|xpc/»µŒçbö=&õ‰3;cl<[R“íÌ— Ö*ŒDƒ…è368ÊPu{–Ÿ*ø3Ö2³¿ÎL.%€Ã<Ë™ÿ#Ãömë«6´"Ô Ñ¶ºK€ÙY!*xLAVUÞæ!ÏýtNr“T©”™(*$4瀗 °Ç¡È8ã,à£Àýã€Á2\f£Ójr`p”ƒÝC4Ø™>¬œ |²<71ìf†ý¥÷¼³Ÿû+Ð0ÿØà °ÍT]Ñu©ÞyR ­@±ñÎyÆ·MÌ /o^”\Iiƒt K{“̛ɽJh×¶eð5ÁGXΩä&mŽm/ŒökFžãžsÌÛ8Ìsc0Pªýí³üþ™Ê/?†–ß;õ5µ÷ȦÈ  `rœÁ\°á #Çm͸må(?¼øpaå—gÑ, T@QÏú|_¯_¾ ØÎd&œÀ{ÿÅ‚ü^Éù'°íBà&;ÓT-XÛš ˆ¤J镉Óqè]iW[¥ ˜Ôr¶Nð“.ƒÉpNÓ㦠°ápgjWO6éáP?ä”ÚzÓCŽBÓÝÖb8s 4k dSìAí;‹„«Ò.]1tnÜÌ).•ý8fR$iµWG®œîKÈÑNm+àÌ›õ5Y ÀpUÓˆž{ÂE>‚IÛŠþêϹ¨_†Èïýçs†w~–œ?KJ€G®yàïdÅCmn­’#4-£}¸ùø¹2‹Þåú,€#é Œ˜TUûEa“hiÓg0{^"³ÔòzPN¸Eâ6&òýÎÀ¿ÕÜýHTíø¬cgN€ùéK©M‘øÔ¼è †–˼õXëÿ·iÀÙ©ü×c^ÀôwvÏ íJ‚²öÑÃ3ÿÙuËïa(9ÿ’Õn¤—+Þ‹²:€Ø° ¬æãc+V—ŒðfÍ9zÂSÇ…jDE^”õ‹¼Ë£³ Ôîl;’1ã`#³¦Ï‹ºÁÂŒ£=‡I›.~Ìæ­E‹\²M§¢æ’êm{od{® 6H# ¤Ô!1Ü ’Ôã=MögòûM@ÈÀÊÈóŸ^³üÞç$ן@²™›Ë¿Gùð>À§ÓÙ }² : Á!›,8š|¬R’Ó³¼A^”÷ÁÞémcƒÕ„˜‹æëÖ#z *jNz–u;¥è,y…¦õq²óH3!Í9íǾ«çØàæë. dlv¬pË÷Ç7ë]ƒ„f÷YeÎ0óŸ:@qƒŸ&çŸ@²x(ùÀý€w¤sÑâàÝ$ÚnêÕâéÅæ¥¨ Y@ ðFᘴ¦ĆS]ÃbÔÃé@{ÐfR}kœþ©€À8ÛŽT@ŸÑ¹3ûÖÁH´nÏÚ¦@ÆY˜/`=Þ¯ŽSeÔ_>*çÿ‰ä¿cØÿ$çŸ@²nû1ð@3{žÍ;ÏìH¾vàbz^ø³[_“©‚±Èª¼¹_L×{[* ÿÄ·‡Üá`›³ì·"Ðv,´½¿™¨93µ1!mÑ~$¢Ÿgl°Eέ³Ù/™9WÖ}+t¥-Ú˜‚Ì—ûW^/þckä¿gð?iK Yû…°GÈû?6³ËÒéhñnÚ¹ÅÇ Ï 0 ^4UÕZÊvA£`ãÝ©€ž”uÄÉÍ› ;Ó9SQ ¡¬öÈ7ÎTX;¸h¦5¬=M@KD¯ž©u€ž¶T@;ÿ~›I]µm¯ùü ^øiz…Á] ~˜¯’mÀãÉŠW¸"¿#ð½t>h-œrjA‡®öâÀM¨ 5ºb)7òy3 ³ w.¶§Q‡l³Å^ÁS‰`Ù@*@Ì— p̾8O*€Htï"¯ó¥º„+;™ŽT Ö¥OG@héÃT8›vþ½Rð`_Z´HvpöŒ;2=ql{3uS)…ß\Û^ 6@³ÍêF9€æ Ø€6°‡Ü'zµ…µöÉSw:IkqÈÖÓéER!§7†z¤úRñ­Û ¤TgfR Ÿ·˜]©€‘㟨˜ÙºàÀ#+™çd $[ð}ƒ{€ÿ;dy:#Ä“Äu6 U/`kï¸)Z¾êhRÇBSzu6 ¯±š÷;cÎoÞT@Û¬”…tЕ hþ¿#ꫯƒ"f&b¥Ç%Û7àznƒñ˜Ÿ–ߪóû-®§Pû;£Šú§g><øSà’´@%lñö·ÅýÁRQM›€£;%0ЏÛîºßy£€£d\CýpœŸ—‚ʈy•(æ MX{”Xÿi,â`µ;ÆXôÙ– ˆ¶.8ÐæçIt}góoëpÜÍËÛ5 0çLÄĬ†±3M'0œÙ…Â?À°¥%:€d›é÷Šü-x»ðÞÔ"@ÿVÁàûÔ®°YwŸMGà¡…ßÕJÍyx&E‚}»ëÔ»"EsQgг@/˜Ö°°ÓŸiÌèÑÓßUàÖZùÞ‚ÇÕÝ-ŽÞ˜?Ð ¤©€à÷Ï °™cÉF›Muªœ‹ìÀ“º_ɶÂã‰/™ñ™ÿ‡úøðt—„ÁÁÔÓ ÐÖªŽ ëuס²K &4z½¨Ò¹u÷o׫ðƒQ¦Ó¬$®µ88›­†EèQG3Ú†çƒ85îFÇb³à¦.´HöMôÝn¨(p<è¨Kè§¥p¾þ|âò¾Ì,²Ú6Z˜Y)å›Í* ÁþøГóO Ù!uvñ ÌßÇ ‡%RJ 4g DÁÂÖ‚€º„p—f€l@½>`HD? þ-è \p™ÃAµ9úsF‡*ah¨}²_ýøÚ˜ŠÞÑw ¢ïÛ (m~ö T8ú@0½) ,ϹÊ>VO+Œó+ûÁþøKàâ´'lYÌÈ1;Ãà6&ûZ:!ÄÛû€€®©‚›¡` ÍúÍhÖ*‡`.â`[j!z n©z0! Ȅ̙  Ã™oxÔÙ”úoÜþ»iæ{Fþ!Á!þë÷žWNÉH¶„NïS2»½Ì?? æšy_.C(#Üt&õà †Ì#, \?}ZØ:'¶ä¤»ôB`–ï¯ÿ\}f×p£6 ö£+ÐËÁ[;Hì³­¶±ÁM]Ì`àÁ™‚L‹™}Ì»â>À™iAI ÙòÛÀÃ;ÿ/:g´‚€.á ÍL tÈË)˜d®;"Ï4¨o;è`[R²~Ni°0Š`cÃoºR3lƒ:fíølŽT@«¸OG "-Ò½}îÀ|…„m³Æ—¾‰ŸÈøŽZÿêßm²—÷|=-" $;¼ì#23ðÏ%érd—@G«à&v¥Ê]ë£!Æ:à­Æ„Š[P*€þ6TÙg€NmP¿T@_ç;¢T9æ`Þƒ9é“ è[È7UÛ`ñVL¬˜±â­œÜ7Å`ŒÛgðhà!Àyi)M Ùáiî–P|õ@µ2[\@{J@5ÐÔ hF¨£ÏyŒõ ˜Z¬ZFíöˆîc…|ѶAë-Š9Zº»Úö½ãì¯ÍÔÄd‚C`b®"à ¤âýýV:~o *ÇúMª1¾ßñ™ý¦9ž $éñ’ö>™Ýì¹ÀE Dî´zJ Ú*xhg 4Sõ:†X]€NÁW…‚ÃJ`Ö‰*åGsóÍa9s€…¨3ï9+ FÚÐâœÇ,€m€© ê¾ÞAÝ÷eLæí éö‡"þ:s ²Pä_¿|<-™ $;²ì‚Š x ²Ïm{Бh cOÜr×n’z`=%ìEwáY3cv«ÏƺŒ¢ª°ºl¦=ºró"@Íé`eqò%úÌ76xšåP|øÍœ©€¨>‚…£ü8ØT€ƒ±£Ï ÓJ¢¡¼X²KûäìafÜô³´T&ìȵ3%{™=øé¶jaÆýòm­‚]ã…7I=°tô³…|3)ÐÀ! Wè› —‘k2k Lhfêã§Ø€9R²þcƒç-W?®–.Q­«E…+yõµ6ƒÚ®<¾bƒs¬£©åõ¾EŽÙÛfÐ⬣5‘ÿÇž#Æ2_Eú>âôCÛžÎsüL«ùÃäüÀï”?\âýH–¬¾NxÿEyûïìÀ¾™Ø€føÅD3 «6 kÛ›!#¬ðÔ¿ jÒà!úÚUô¿ U@ J˜L =úÿ68ø§KÝùŠëÇet×$´-Æmcƒƒ5=†(Qû2+‹úD¸Ž ë\”LŠýð¿”ñ"J)ˆd $K]5/1ñ*àŽfö·f\°m@Í€¶B‡¢K@ÓÂAjà’˜pPŒ ½VïÛ7Êú€bôpåÀ¡™¼8í©×æI„Šñš¸,•w¤šÇÒÑ϶ÌEh¶NºQ^߈öí÷ú®­³`|uÒã™–¹’%ë¶³Oq~x{à•†Ø–@ Öœ¾áMÔ u¨P¯§pP(Z õ’×ý’rMÒÖSÝÏ,‚¥z¦ºÆ×SÑ.€©€^Š~ÖNÑŠ0]UÄ—ù‰ãíKt€wÅkLþv8{#JŠ~ $K¶1ó˜} ³»"¿-ð‘m{'¶þ-­Œp$%Š8бÓ3ºÛ kŸ3MR…ï¦}V0Eaá}mKtIGEz *ÔUgcÔÂŒDz2›vøÎÂÑ}¬Ë ƒ øå °?±<ÉH–lN³!fŸCvg9à“Û’ ­þ³+ýFd„7;%u¬Ý)˜ƒj‹ì›Î³Ô)>*AÜ^7Jt5_´¥ú€…™;~©€q¾™/Û'pâAF¥‘>Q P>¯óe< ³ëÛvé $K¶é–ñâ7¼³ÉøÏmZºÔÚR›ÈT’¯ÑÈ»+% ®(5’hk×½ä5yŒ@Aß9mƒ‡šû7ãì#"IM„Ð¥ PÔ72+ά j´íµEóêÑEÐØßËÿW9»9ðT`˜–¨’%Ûl[—ñ2ïìF&û#àK&ü¶º3[ÔÕ è® X8S9èP‰åýÛR‘(µÓuÈì6ó꣢Â:C`DÚù˜ðP€t >Ê&-y£B½©sC#@Ð#šoëhœû/Yf÷÷;Šûa|7-I $K¶Õ6^áÝRf|¶ u ÄŠc]óŒîvs´ðÔá´Œ¦ƒ h‹ÔÕr g û6*&4‹0ÖqÌ¡S\›ëTwä®ö¸ˆc©Ò †ºA@¬öbò9ûÆãMökÀ»Ò”@²d‡ÚÖ€—{g·{°‰Ï°Ê:Z;Snkõ¦:\Øq¶¥ú€N`ó±Š8z×–E±n•À.¹à)§+!§èv;‡ µ€G¿éKàç ¿—ìv`ÏÖÓ²“@²dËdû—™ìN`­€Àö¸S;f DÙ§ø¾™¢ALÄŒ‹ö)z[=¿ÝL ô-Œ`§©ï˜0´O ”uŒÍ fuÆÇS¡6àZ@@³¼C£úÚ-UçaMfovWàqÀOÒ2“@²dËl—/6ÙdöPŸŽlP_Íé·³=:6 ¸Æ,YǨÉP€“‹°#§Â=¡”ÀX\(Ôaêç¥Ùà"÷£C‰Fí€S æ:@€"çȈOl~—2±VþÌÂÛo|1-+ $KvX/ò²;JvÉ¿d­EpGâ][K ÄÕ{L\ðŠ šÞÿh–€‚Ãdj3"l@âWão‚…q‘ |4¦Ö#ìÆv³ Ú„úCVÛ¤P?äñ6:R4ö}´úþUºêwÈŒáÐûwäÞî{ÿ¿ ïß­TÝŸ@²d‡qx¼¼Ç}ñÅ]T¯°’%8rÙÚÙµµŠ.&0 8M¹ÚTÁÐë4¨ðv€ŒÀˆ•ppÜu`8ç3‘bûK;Hp¡I‚‘–ÉÂ&\°ÝÏòÂû·®áïV˜ýÎÐû÷8)åùH–ìˆñŒûðÅûñÅC‘nef öÓ#´ÔLᄘf¬ZÒŽM/<Ê…‡ãHíPê–å¶GÛts ÆF7kêUýSÏÛlÝÂÌþ¶9õ|8µº6<8ùŒ{{fþîûýuoïwÒþ´ø'¤Sìˆ Å:Ø×€¯c¼Ögv'çõ¿ÛQÀwäyš‘áü€Äí4:`¶÷­î-÷Z9Ls¥zɪ¡Bf³Éí)ÇßÜ}MOƳ°ì@ð46?3u¾j± X 4?gjl»ñ3ÇScF¦§<ÍÏMí{ À0gÊû™ôY™ýBRŠú’%lÛ˜ßG¼ÄÄ[œüÍÍ»û™Ù=$}ÄeÈQWšò5‡ #6ÀwôÐ-¸éRV€QŒZû®ºXNéàÃ%ÿ3NÞºA@›#­g<Œòï¾½/¡×¾ƒYŒ1{<êµ^-ï_‡ÓW¿HrýÉbËF²dÛÅÎþøCàÆ˜!³#Gá¬M3 ÆîúC4^x$#¼šSßÑ|®‡f@ÝéO* .ΈùÄ(ÿÆw4±Xðx*%ÅóþçžÜøcàãÀ/ÒmŸ,€dÉ&¶|Ûà 8ûU9ó¼Ç° ŽÐg–@L P[Û%0åàF@¥MF¸´N·³¸‚à< ¨ 0Ÿ²Í€+ÖŽ§†jŸûÞÙ£¼³›¾FšÑ—¬‡¥@²íl\¼³z\óÿGÆý̹k»Ø4ÁÜ-€ö>ìÀU=o1jßU/na]À˜>WGžÜ©L˜Í¤ FOu¥hN ì‘0…sø])þÞ®”Àø»T;®úñHxóŸ^‰éý”YÉ’%,ÙíÎP><Ã+»•\ö@ÌnºBŽ0ŠˆÛëˆO]Ø„º€‘“ln{&Oî@¦)0å4»êfýî8šn˯Ç@U”?:—!Ðz<ÄÁEðð¼>„ó¯Ãôù_=ÿÏÓ]›,€dÉlŸ>%óÇÙÝ »‹Ä @W?¬î›Xq`å]ÆUøÁ¨¾êÕóÍè‹ÍTâæÃlÀp‰€€úóV“&2l`1Õ×¾Ã×~[q`Lž`p²Ïcz7{£CûÒí™,€dÉ6ß.^¼Ff'™ô»†ÝNèÀ8RmQ~*ÑoݹÊkÚLÃØ« 5 2Eû«rÀÓ­‚])fš¡¶6¾£Î8UNÞÂà!«@@0%P>y§øÒ»¼Ãà,R^?YÉ’2;xðl“][¦;v¡›T`àðc(AÍH{¦9¿ªÎó-Ûf±@`*r®í»M|õº&  ¢­€„ûþ»R±mΰ@`ÀиN Ìãݰ¯KzKnŇœeÞÉ%ߟ,€dÉ–ÄŒ2"; ñ\àºæù5É~tkà—––h-ü«™ÑžØB6@MñjûXwÀ6(6 \Íaûú¤ÂÑö˜ mÓkrȣ糖ˆ¬㺀ZAŸ+ß;ôÆ—_DöQg|ÀŒKG@J÷Z²’%[j0ðuàë˜G¸«{øu—Ùõ½éæÎscsn­¨?T –hF¿Á÷m½z â<#µ¼)Y^„¹Ñk“>¼zîÝB»_ß&5 ÁôT¿PW‚«>3jœ¨·ô™&´Moý÷sü‡ƒOŸÀ8/yûd $KvxÛ÷ʇº<Ø U oè³ÁÍå¹¥aÇiY&¶¨ŽSõwD4ªÝú0 »ËÖ0™`«Éç_o25F`Ä8æS¬w4ŸWÙB°Ùç2)Ìý§‰Ïg§Û%YÉ’™öSŒŸRï!ìN—ìj8»^·Çø“V)ˆþM@šD³siͽÎe4é°­K FYŒ˜f€cã2Âfà$¼˜ýLJLöa™¾ úŽÃŸïQ©ÒŸ,YÉ’áVFü—_F|ñvŒË§ÊüéHwqk“®Æ¡¨hÕ@¡z¥{ ¹IÛ:@Õ%P&SÕø5î½9K ·f@Ô¿k|¨fúXaù‡Èø*Eöð?„OH²d $K¶Ý¬ ¤Ïû"èíÀÉÀI2-/ÝÂy»•wºî––…|L8(”: E=p4šufó±ÑN€F‘ ±vAìç ox³Ï˜ã³™ñ=àÄ…³’CÉ’%,Y²YÛü |Ø@oŽ‘ìXÉ_ÛÙÍœv “NÞtÐtÔ á ÚØ€>š›)#Ü–0Ö N¬±U1Ä9æøˆ¼ÿZ‘Ÿîû2] \l"O—q²’%Kv°v zü ø/à]À.¤LøÓ̸¡á®í°_ñâºB'Q–î ªÿ¼µÉû€ßÔû"é€6¦aQ ÀM˜€ ö¾›56 ‘›Œ Íôdþ›ò|SÆ—‹ÎÖAû­ê:L–,€dÉ’m¦å”C‹.¾Q9ú`@V\Þã®ê Ý8Mf×2麕‹ÝYÝç+sƒƒ¾]Žù[7k–@mÛM•¾ñKN¹™À"r™}é¿oö yÎ2§s0 `H™²I–,€dÉ’-…5Çôêñ‰ÿµŸù+yïNϼN•qºÉ® º*fÇ"í¨\ùQÕÿwÍå¨ë]”zÂ…´µ³J `&öI¬›ç€Œu/öËÛ%÷MsvŽÐ·ÍÛßÖÒå”,€dÉ’)6d¬I0ít•)VW7§£²B×öÊìW V ®&éX°G•s÷Ø쮀½€Æ‘¿M¦ô…[2KÀSvRŒÞy °Ã!. á¿oÞýœÌ.¾cfç"}oç!w^º$’%K Y²d`pVå‚W«x|TÈüÉ&®YdÎsEçuÅ*Z—°ë—ï£0ǪW“׉‚|Aêì¼~T±°ßœþ ù5™aè¿Í¹sȽdü—œ.ª>]Tß>¬ý,Y²€É,U²$K–,Y²dÛÍ\:É’%K–,YÉ’%K–,Y²’%K–,Y²d $K–,Y²dÉH–,Y²dÉ’%,Y²dÉ’%K Y²dÉ’%K–@²dÉ’%K–,€dÉ’%K–,YÉ’%K–,Y²’%K–,Y²d $K–,Y²dÉH–,Y²dÉ’%,Y²dÉ’%K Y²dÉ’%K–@²dÉ’%K–,€dÉ’%K–,YÉ’%K–,YÉ’%K–,Y²’%K–,Y²d $K–,Y²dÉH–,Y²dÉ’¶öÿÆI–þ-DŒ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbtEXtSoftwareAdobe ImageReadyqÉe<IEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/favicons/favicon-72x72.png000066400000000000000000000145621431412030200243760ustar00rootroot00000000000000‰PNG  IHDRHHUí³GgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“dIDATxÚíœ{”dWuÞß>÷Võô¼{432R°‰‡Œƒ‚ˆG †° vˆ±W`a-’l’EÌâe›Ä‡X²ÃS€ „À B  Éè #ÍLO?ªîÙ;œs«ªgºÅèeã„Z묩©®®¾÷;{{ïoïSŠ~üØøa?†àÇݧGÓ?¹óAo\ÿ‚È"\H3î€TžD ®ƒˆòþf2yöœþ>ðH` ¸‚ðñIlÉÁÕCøò|b[8)‚FãÁHŠÀR”ÿ§€…H€Ðä%cÁ8ƨ¾¾g$>|LÇ{÷ŒÙësÁ—þÝZ€€Ç9¡t0ØëÏ@öZÄ÷ Îqa…ùÿaëïNêŸ? é³àh¶8lϰ#ë¸-ahBÖ„Žü¸É/þ(¸Ø}z0A×MûSXº˜VP¸+Áí HÁ! VÂ~î ÅU›=®3˜:`p›àà‚¯w¬Þ߀ íJЦŸˆ”.°Õ¡u±¿ ¾8Ü0ö%X2è*¦ƒ€¦xúæ§B´4=þº¸â\\•âo›E€ì¸°ôåí™Ã CøÆ\æºAp[4!¶f±¹ZTЄH1½ˆb0Ž¢p€§YpZr½BÁ—Eüð`õG‹ƒÖß¹MÙìUì;»Æì½¥ Î_ȼs¡ãã[œ»ìîÄîNŪ¢DD'AòµàX”hÕ8´Úˆ3’ó_Úü°5~4,(Ô ž ü]Äi†tê1nsÁÅ[mÍ,¦àAØÅŠ‚&`΋õ¤P¡‚c!šÂ{p¬º_rHŢ藰^ ükàŸEÄ;X€¤ X ôb¤·›&i°Å÷Zç½Û3WÏ9{;qÜX48Æá§—ÇbÑà{-ÜeÁb‚¹€Í]L-%‚4u)šj=É£ºšŠµõ1aÊ ñ‡YöŠ ^Hðõ¸ƒß QÞÐrdÍyaöfjÝæ@ l_™Ï¼m×Gœ86\ðƒ&xòbâ)‹ÆB.¡?,Üiâvà–A°ØÂÈ ÉS Y“VËéÁI<£ð“f(°G¹tu&^Ä›ïw€âîè(켞€œ²û[²¸x[æ=;ÆÌ;ÓY°*xö†§0: ö¥˜X[,ŒaïRðPÁísâspÈ‚ªÿZŸÄL9¤ Pa‹guÒ­O‚øöÑÇ›»H¾!Þ{© r¶vâ¢í¼£ã„ÎØâS ±ú‡W5ÍuŽÈ™¼¼',×¼hl5\Š˜|ÞÄzrÐŒ O%³µŸå3Íêß,¿¼·“¾œAI:g)õ^„ym¸Ô#¾c,.ÛâüáÎŽŸèÄ\ÍûǼÃmð—Cg›kÍÏè ./{— :•ß Æ*àLóŸ©õ$‡FF;?ø`3H³Îid4Òd%„eHyjm汫‘]Ÿ¬ylo1Yp°‰£ibA9mÄÃá˜N|{.xã®;2̇&–Ó¯þ#>»ÅyÔª1ï„É®u ®¸Zª¡¯ÔmêÁé­§'cÛ?bxƱÿ;-Ì?/å@·,^à×î{6Ía«$äA¨ð]±JYRúH–?’ð}pØÆ­¥ìë.y,ls16xã˜ØY­cbZu?Ø‘‹]ºÙ™¯W2Rq¥ƒ‚»øþ°¬»8Ð'ÖCLA﹨5â†w¶ÇoeþÉÆàP¸•{¢¾7 $M8jæóŽ55Ÿ DDáº{lAŠõIÌàqoÝ5â›ç”±È5̯ç×¶gqå¼sKk…£°ya*Ó„dxY}ÝUB’ÐŒåÙ\Cܱü+ùŠ[»•/Ý:ß]óý¤­ƒ‚@§;îL£œz­=6)ýöÁ6¿æ–¹ÌÀNd™Úh7.Ñ µåã8,ÓÙ¹_Ú”ù_[3ǧn5É‘ê3Ÿ¹¿a•/®›¼¤óYlB¤šKÙLd:|“úœu ðóòµw¼„4?jk×ê zÍfGÿZ²ßìšø“ö—Dœ"óoý0”¦$í^VãÛaŸAl;[Æ¢ÞøËY0ªYÔ\ ÍcÁªÇYT°Ï‚ÛšÌm)³"˜w±-—ºìèkÀ@s-lL vm¿+Â!ÈÛrzÝ©‡Z–”~!ÆÍ ¼ylG¬õK ©ØƒÝtåÎÎö~nsÇ•s™»Â;iæ:–­ä2 nÌÕké(œBˆP-Xt)ø«ÆÙé¥x}ðHì‰1A§©hu×c-Å•×m cTP#cl°f±;dzöé+ ŸÇg—²ýþP\pw„dk$‹bþ§ÊìëlogÁù[;ÚX[öw‚e{:ñÐqÃnƒªr8!½‹…Ø%+¾µq¾²)séÖÌ·d6Åݦ~knÐaàxÌìc޲b6‹ˆ yûá@ –RÌíéôäãWõÙ¥Ä#HöZAsØ: dÒìâˆØ¶µƒ/Ìe¾2töäiÔ V—gʽ% BÂ%ö×à«ÀÉÑÙ™Ÿ¿[ ô$‚s ˜ø~|e˜YðWZðS+‰G®Ë*•ö ×rj4) BkjªzØ„aðŸDÞ)â·(õmM+Îï‡xRŽ8.Ãë³8‰q*¸Âí¢¬L`*8ã LŽ—ë,–b8þÌ¡Ö!ØWé÷ge%Ùì×úT-g.‹+ç274Áf/µÆ)xÌjâ§—å5—é]IE>eZlΕIq£)?.¯9ºb1n†ø·A,ŒˆgŽˆwvÆÍãZ»u= ©<ï_ïëºleS'Þ#‘MlJþª›~çMˆ­¹$!=5$f×:QŒk€«<à‹sN¦‡?h‚ÆÆ3&–,¢‰ÀKÆ´¦lË r¯þU³î<>Õ üœ ŠÝu«DjÉôqÇp‹ÓRèlàLÁ9ÀîY2ïÝj N&:q]§ø•Š+><„ÛZØ›µ³‹€à¤i¦ºQ¢hºžàó­ëŸLÁM³ÝÅ’-â9ƒ û-h²JF]Bˆ&5”j’ÙU‚>”ýSKáç4¨’÷¢«¤ÉF\ \Ä[³Ô 8ÕÅÉǺؕ‹.¿ËMßÍpi—mà¯,øÚÐ9&„¤= Ä6Û€h­uOKQÒÅ›£ÉßFº¹º×Úày¾"nlƒ×"P¬\ö”ÈU ÍÂ=.¾‘ÈçÌ×*zEBùþR‹…` \Ä•}MVĬV’ª¶ÖjŸœ‡¥0vwÂÑC¬X|Kh0›SÁA’#üE\vs ö+Xµ`ïX¸»„ãF…_$p׋FÎ)¦²±R\Ô¹Ó¸½¹ÈÀÓTq6Bèg3:§#HÀƒÆªYp-j¨VUê¨rV+ñÊ)æñéÆ/ˉ§H|q“³lµ#ygvŒÅ6øà±c>¿33çbK¸M:tè{Q 7)ùÕãÐ/ÊíaIp`¶Oûëú—æÕìöŒKìÄTÆD®5QY±»9§÷ìp±¬ …hlJÌ:Ì’¬6»þ39Äá:ú±Y´)«KeÜŽ`¥Fc‚]#Ø!±´L™w ²âæ!ÌwÆ?H“ÏNQ&E®ßѱ4tÚrA%`íïEgï0U±ôq–ˆÖfÚê!ÆÖzÅêöú–Çÿã‘a>yKó¯îhƒGÓÉ !r囉Ëͺ K»³¯­‰Æ‚»»^or—&Ùng% {bÍ*ÓÀΜT«¬D±Ôù–Œfvº«;qìÁÄ+m`¨“XIù•@F„…bÒ5‹Râ!n›¥¯ @7 kg ‚½¾úªã²N¼«m^ÐΔÿ%TkR.*Þ,qW°NÒaÚJ+ØÖ‰®’;h* mI…÷ì¶M|a1q×–L4 ¥æò  ›&©©vô¬Á§*Åšu¯“Öö¶&ýÒ ³ ‘Ùg¼â+Íó05XCû®KæÉQLx†¸åœ`â$àÿÌÎÍ…èÀÚ«TžŠÛ.%Hº OˆÚÚž´©á ¡6‚9¸‹dþþFqBëôÌiM¼h~Û¶ð÷3×¼P!¢› æG¸\Ló#JÆú<Á›úiŠÍ¹¶þšæÂË´ÇG"øQƒl’jb—ÌOè]Ëä Rüû„Õ.Ò:$ýÚ}ƒ#˜u±Ñ{îhã…©ºPtšô¡6r9Ìôü0Sÿ¾AØ=š¨øaBìa›¼æ¢=ÔÐe­tlWþO™à&3q‚§‚^Ó³»‘†þŠfŽkòªÑ©Cm>Rº³ÑÚÕŠ‘øhòøfßôRKiªÙ4:Yµ&Ce6ÇÁœ3qN÷:¾ ^Ê»Á}5¡Z?áU _{lÁNiÂ.OÁ±q‡ÁW ΋Çc~B ™\¯™ŒÖ¸hýmŒE‘"´ Oë««£u|: ¥ßˆvpQ±Ó>lŠÈuª‚ièÑ»œ ôŠN¼´ peÔ0~“àíwÜ[€Æ #Ñ8,¶Ár*,E@hYâ)‚²b™ ·%õØ,és:+T”O,ùUí&®:±< ÜôJe» ç©(6väjaü_™¤½*³/kšr*¾ž"h³~U‰Ó—ãÆ±–Õ0{š†E×9osÏæØ:†=«°{[s=¥¸Éàɵ8prQyqi¿¹Õ×nïíÉüérº®3"ìwäúݤ¸¢™±ËÁL, òkt6p¹D’1\mþTK6.cèâLg†ëý„îõ=°Öa[†Í^F‡ × » øãÔ‹ÉÞŒ¯ÉòO*ëv_µGDÖ7åöêdñ$}w6Öښеî„üOk—ô i-/Y0{Ôü¨}SÎ+Ó ýCeJSÏûô½µ¢ÙÍòI_xxxÀg }ÞÐéi21[r$Ä;L<:I ½·oàœšÄ]ÃVÿe®sí:)âî—w/Gܱž<¨¶•Öºœ,^¹eyðoòŠˆ”¿“~~mâŸMص ãïùñ#»AçºÂ‚küL?:惯ñDˆ_k\/orZJaç&¢å76¹[L#'}Æákê¹ã—Fj?¸æ½³.×§Ýl*X£×Ñh¿~·ÙÌË4Ô3b…]D<ŒÐMÀó!.\ÏŸ¼Þ@UO¢(#Ä“)óg™óØ[¿AåüGšöÆ.pé£-zž¹.Íb Zz¤a|Û›xÝìÀÕ=¨Œé]„ôZ¬ý­ÉPàì6§i»™nš}´Iÿ¹Ëé'ÇËþ²ÁÜøjÛK|õÈ«>€xð²ˆRV¹Ê`ÄöH,RÚàæœ,Ó' ”˜¨,“Ñ›2å¡’õÔÑÐJ‚Ç#ž_9Êõâr;~‘ÚXwVÜî)Eªëþ#áï[7'®T\N—ëÖ/µlß/s¹[>GítÜÔЋ…¾/øebº_["±†‘Ã?Eø9)âà´Y9{&¦¯UÙ%Áœ¡“XßÏK”RÉÞðžt…u ¹MÖ½¨ŠcêV_~é† õ.7Xåj*p¢¼Ù?ZáøþU)/Ê®nOØúsÄèÚ›i*ap‰»pÿƒ)ùÎô鼸W/‘§I§Wkšž©ÜËûXÍo4šE­Y÷Ò‚¦ áù)Àg6îÚU—ëS4“ (†×»}ÄÙÇŠÒt¬Î =QÁŸ+ôu‚_w±Û!Æ£qq.á2çç¼KÁ—,¸.76ÁØj—×&c8ÓYl“h".wÝ ;6ÎX·vͯbËw.¼ážEØÔ”Q\ôÁ=wCë7c̤à)ìª[6Uaì½d/Q6'‹«\¼¯S|9‡ísùâØòMYi)›mé,žèâñ.žÙ‰³Æ&y%È*:Ó¸âZ÷îq9by£û;÷;¯>Œ¤ïUÆ„ÿCŒ·ƒ½|Ý ÿ8ÄñÀ[YïKfËu\.©XS[Çm¨Ö‘fÏÔ×áô&DãÁ0M矆xLXü\è¾}ùÀeA³EÍ÷Àÿ9Ä<ÄyÌ\óÖ^c:¬àÊ'å úˆmý’‚þß"Mécq*9?Õƒ«îA¿òëqÖ&—àx¼â-˜Šûs‘ <`G5ÓT`ªX hfµo›´™n•qÄÇ\\Ú}ŠpO´€¿q€Ž|\ q-øªˆû¤‡ã8k9&Ķr€ÓIHƸnRŽow‰¯¹â;³'£˜VÒ¿äío‚ƒ~ Ðÿ7ÿ '½å%B*C%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbtEXtSoftwareAdobe ImageReadyqÉe<IEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/favicons/favicon-96x96.png000066400000000000000000000222531431412030200244060ustar00rootroot00000000000000‰PNG  IHDR``â˜w8gAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“#IDATxÚíy´åWQï?ß½¿sçžI§;$! ‚L1„AðÄ'ƒ#¨T“€(òô.ÞSDæÅô0y‚â ÈC%@†DŒ a„Ìéôt‡s~»êý±÷ïœß9wêN:¨9kítçÞÛ÷œSµ«ê[Uߪ#wçöÇ­÷·‹àvÜ®€Û·Þ£êþϾ½¯Þô¸ O€„ÜAùï‡R¹ãRBV~ίk\¹!œ=„Ggv ø7Á?Œñi0“ƒÇÈ|“øV,Df ¢œàFð@pQ¹Q!¢ƒ äÜ ˆ`=áÊËÂËïB˜APþ¾ã¨½¥ ôÝh¼Aù_jàM{|mÚØŒüÆ×¼ãó/^[Çù±×ÿñÐÕß 8Œëo{1pÕí.èX<ˆÂeHÝä§çPx*±ºRð|•Û º]G'ñö^;ÀY‚OÓ¬T³Û’³5Á¼‡WÔÄó§\ÿq ó-ì‚!@j°XŸDˆYKð½"ð¬–\UÁ ÑY N„vXñ+Ópž`› ×_> &•ÿŸT@ˆxpf©ªóA ¸ãå–/¡ßá;ÓÎ5\SÁ’œC–•ƒ{íùç¦3Œ3$/A6¢;Ñ…œƒÀ×Ï‚>þIàû·U]T·¼û^Õ"„ÿ'÷»ÎŒÃ\+Áùú”ó¯ÓÎ÷jg_„„˜Ê‚fÚ`»QœÑMäN‚g$S™w¾ÇBpΜ)xºr¾ˆ8çÏþm)Ž4+ôIs?sÊa>‰•óÉyã_¦+jg€X(ß«‹e„ñ‚A—€ÕBG…DóüóåëE ÿ‡ IïÐ9‚7!§£WÉøÜmA Õ1¿ðxÇ÷걦ð·ÌïhÄr€OÎ'.˜3®¨œ9Û“ 6g(dÑýi'8C·3&üîï1†ÿ®ÍÈÿü BO><ÝáŸõï^N…¸£‹-¸¶ ý¸KO4¸ÓÖ$jƒKfŒ,—M[’ØÛˆX’¦¤œàÍ2.Ì0y³É~?»#'Z×"ZA·Êi…ŸÝŸCBpÿ¢„Ï:þ$Ïqãß“Г?çèArvµÀÇ‹Àv5btÞ½=qáœQ9숪£,VÎBÊ.hÌÁv>åì2 ¡ ­ß/lWø¡#üjì{>rG.$òw=@úšÃ›žã°të)@ÚUb ¸;èc(ìñ ¸gÀ´Ã|ø×™Ä[·5\YÃ1UnæŠàp„=øÁÅÀË ¾Þs®®3ô\ ùåÌ%¨ÓèöO×ßwo~GøY1"‚VLjñë¤_wñËÈüý·ŽÍæ·^Õ„ê+Ëc»l1˜2ñîmþa¡aÚ§4¼uû"Ì8<ú@ä>ËbW#ÐÎE_pc%®\'ç†ôœ`0m¢W|”I¶»ò‘µ¨µ1À;Â×êðÕ Ò?:á ÿÙã‘HŒ)ÀSØ\Q/^ :$Áö”ÝË9;þi¾á¤˜O•âÁàl3ñËû*î´,–£sCô!(\Šùσ+pú2ˆpåŒØ×ƒƒUVrR'>tn°ŽË)îk<€—ŸgÜ yçÀ?ü;†ÿø¿?Ôq³Ìö$¹~v2“M‚M~;¯ÜÕpálâÔ¾è¹0å'*Ä÷Eî´,®¯}í›(XvX¨Ê;iv à@í쯲ûJŒüÿd<ʯ&‚yd¤0­Ѽᔫ ''éRƒÇ;þÎ[ )…Õ¯b£ã“nçH‚?8aÀ³‰;õ3tìâì¥àœÚ§ û+ß²’Õù4‚)ƒ…&»÷®€ÛÛ¿úæÇNp®,ÿ ªTޝjÿADôÒãbas·³[ê6`›eþÒ]}>7mÜuƋʌPHôå›'?Eá­Þ-€)[Ú ä Þ¨só;'w»¨È!$"(ubÈþhQ’@!?ý“v8þtwG°Ò–T*ß´ °¹¸´Ù©ºO<çP¼l×€ÏÌ$N µ{™qø~í\]å@íßK3ÅÉ‚·F.Èy®%à[^ª¬#ØÚ"&r\KMVÖÀŠ"Š›ê„¬$píŸÞEZþ´HxK õZì¹Ø_9ûj§gDZ™Fü嶆Ï&N„5P«†J¨=W8¿8“;FZæzñkÅ''åKhåûƒrbÑ 1þÞfÃaàÔ§n{k}ÚÖ;V{æžÅJã1ˆ jüi,¨ËFI*…_«B<·íîA¾€*gåôL7O©Zÿ45X âÅõ Ä'ç¿ÚÚpR“}>tLÛÇ-Àí >7k\6åìh„­Õ3ù8dÔèw,‡‘»,7sèû»õŸà Ãê½ ßšúÑS~U;f¯˜~ÐÉÿ{êžwxƒV“O.ŠB6¯VøÝºù¹ž*Âï·¯) z&z–­õf) 6¶î©F0_0Á®$.Ÿr^»½Ï¶”/Ÿx3¬Qèj3à.ƒàìÀ¶[ËYH0=€^I¼LB¾ñ²ðÛÛ?ùûÇ,¡;! ¥æêÁ?_ÅÔ=vÒ»ËvªS¶ì÷AÚв[KÐD9D¥ˆàŠO%Ó^ NnZao,Ë|­FÖð â]fÊÓ¼qû€ýîÒ×0øh %LþÿöF|¿v޵ոDz8óeôâfš™ €R‘¦·¥‡ö&Úxpâù‰CpS¿aù,–Óstßݯ_ùØ·Ð|éšç© &mMˇ!r ·N–ÝUl~GŠ)ü¢Ú¸|1f%Ì&Ý<¸º’Ôз¾Ù]?:7€·mkøôŒñý ?ã‚_ àìLðµ)çÒéÜ kKíÐ#›sM†µAÏr€«¬óû'qMXÞXnqpðº•|óu:°‚÷𫳠c©]¥ò[p è´5&­{…WÇàÿÞ¬±MóýÀj|u4Ð òmˆ‹=d†ä8Ž+üÆN w»¢ç¼mKâ„´¾°5¡ Ÿ—sBöJ€îÔ¥»Õ¢¨6ɪ:°–¢W¹¢Ž‹R’ðëQÐLUÞcÉ[aw¼’|„´KýœLïõ¦:E°ü3›ÖÔŽe~¿oT‚¿_H\­iuô\©œaVJ¶˜e9‡‚³?×ãêè\U9WU‰£“”ë>³¥¦S 2Ãö„< >†ñ[PüÞªµV禫½rVÎþ:<ÿÞ{œ´¿sHÕ³¼‰g©uië#.Gçìäw=Ä—íÀÅ3Æ?Î7ìmr‰a­ÄMä€)œ9sˆ^q³mÇîYÐ`§Á³ßŨ¶¦À v Ä–0ŒfaøZ%Ÿ°>Ÿp_>èd”Ýðç0n-…8x€eñàÝ)žùýø…ÎÛ÷fWê÷X£ÝGzkÂÆ•ÏðWxYðìß3ßp(ŒPÖ€ðK!»‹=)r¢æMAÄʳÖ+DÝú}‡3žëG9WT‰/NÎ5\<Û°`KÊV±¡`&ÿƯ -™—hïùïøÃ}T*U«•. ‰<ùôåÈLò7$t!ü¶zŽjÖ<›[€ƒ¤×á<ÇI|eƸ`ÆØÛä ;oZ¥Ø–pö4“S¤F,ˇE³\£ñáíQ ôrGY¦€iôp’ÃaånÚ·¦ŒS—w[liF—vRðCÏRzVJ Ö×ömVtÓ |x&ŸC#ÆÏ¼Ãv4ºâpðÃÁëÝt°x”Ÿb§1>ôœ¡;4xÿ\âºèL»Vaþe9}9wDîÙôú#·…±XšëêÖÒ`ïô„Û^ð¬gèjˆ‹çÒ÷ß·}ðº«{þ´Yç_¼ã°'cE ]ZòaF½*ˆe™eeyûÿêÀd­òVxv¹;{f\4òó0!÷§(4HiÕYW6Uá½Þ™ªW´6»`âêÚ¹h*±{"ÌÂÏ~ý‡–kNïGÊÁ9úÄÖn´ª‰;­ÆÐm²ˆh%à6möNêËŸ»üÿq/Ùć¼0l[Á·B 0äã@²lY6‡ó×RF|mñ¯«SÇ5¹Ô û=S& þ 9náÉ>¨ð&®:ë*@wàቭð¨M\8“¸¼6æ&ríÁ@ÎYK5wíG– Yªr os[‡kÈ–0n YA5Ô€ý‰ð=àO~Aûzªb…æ~nÿü® Þ`Î Ö¹©FΤSG.0sš¢ˆäY)f>RVÉÀSÈÀaL]—W…໋uÃRmDñÍòí3qÝͲþÕÐ{÷ r>1¨|<ø$àpp°¹{_ 6&ìjŒH5 À±ã’4á’²"D@¾KØ3Á÷"®O€´á…¸Ìá9†í4ü§ >iÂÛöP˜¡c ÊVÃǬ¤ûsk ßñ†Fñ¢—Îe:ÑH×JDž¥KÛݳA °1¼0oâ=㲞±=µ¾?ÿ÷úʹÏr䇗*(ç ±Óúk…9´†n㼓Ä®`9`?ƒÒ#®?zä/€÷5ùîì© >؈åV°M+äØQLœø^€†Žå¨(£‹Œ&ÑÔö×sÑÞ÷màZËu¬Nwï¬UÁ\£ ïÀЄˆ_­+£sr“k>"ó8Oëq(²2Šî˜JÜQ’&åW¢‚ˆºÉzëÑä“_ÞTÍƒÜøÞð‰nUɹÖñ?uùŸº±³‘~JâaÁyDpö¬×’saáç <òý)£¾sc´§÷å|¦ÀËZlM£_ºw³.͸‚®Àùr×Ò¿Ö³!ذXò€ÇˆLˆNeù6¨¼H܇>¾­Ó'Š|¼Þƒ$ûT þ`ÄMk+­kâÈõÀ[ÀßâwsùÃAwìð#í½°Ž"º½£EFZIâoMþj |eg‚ÏÍÀ·§rËáÎòœh'lÖf\•¸ôatÒpYåÌ¡˜gfÃã÷GNYÉUÍžÑÞ†,tÏ)²á#2T›T¶– –`!V’ö`Ó<¤îÅâÓ cóëÀׇwvüΖG¤öœfbGiM`صø†Iß6üÄÌX&|bÆ™*L|3ÝUmaÓ}§LÙ£ ‘Úú Høe(\<ãºw®Ïs¥Ex}휾xСȾ˜ÝM7#L­ð|d oKª²¥\m©ù‰ÊÜkƒ¾·/üø1ÓŠª¯7¸~xSZGߩ¹JèÜ­ž†+ìn çÚÃ=ByÖ&ýE¾Y"¦”PÓ€¥·Ô..é%¾W, •›üÈ‘žå ˆÐ©X¶¬‚ÊXÈS±Ðǃûx>à=`²Ÿ˜®üúS­2æÝImö|«ðùÌòŒLÃùæ”óÑYgû " ÈÂ.ÁÞк_©)½¤#,G×­>tøn•‹dB\W9gŽüÐáÀUµSû(PÁdר㒲)â8"¹½ó/„N7a~ªà\5•ïµq›{˜`Örö‘…\SŸOC9ܧAS>Ìæ¹^åö—ºßt±­•µ2>t_@þ­ÁO‹Ñà‡UaŸEIÛÃ(KìÖÔ“ …£dÇ´. ]]I/®lu)j.ÁÌ |{ªaQ¹Xw[þŒ‰yƒ¿Ú™¸¬çœ0È®§Êß`ÐÈš ¿Æ j¨ª>Öï=ã߀®í‚¬4£8~õ¾˜ù÷‡œÜw[‚Sw]Š—6a—™f2ƒ{9Å%eªÈk«ä‡*s&¹³µïÜópdÁÄ¡pÛ˜ôrò ÛÖÞ½=ñ…¹Ä®¦9ö¶?ðÐ ÚãU fx£­˜^å„3ÖOÄB€¨C`„k¢3íp(:÷[ŠœØú*J*‹Ô.3¡UÂH¹ ìo‚ŒõN?5Æ=—{XìTUo•›Ì™XˆwÝaÀ'vô9£*Ô:U‰PÙög·|$µtqOàªIƒé§›)€Wë÷„ÝZ^/…pÚáËì´~KóÎw8$“LCVYZÃ%iè’À£¿7DûîfAv@îÜwEÌõà+=ZÐñv;ÛZÿíîÄg¶8»Wª!ì¥':ÌÅ&%èÁg]NˆÔ˜~ÓrКãJ¦á÷­¸$ËJØŸ¿)!ðPtî¼xÔ‘<“|} Íì„q}þqÏ€ÏoKL5y´j Іý&<Q£Y™ÞY)2h8§q/siNpÿî1 z¾à©™ñ«2µîìˆùãÉ‘“fµø7£[+4Áì’FÙ¯Ù0A¾Ò]7yk€;®š‰P1»üË­1åâ‹Ûœïj¸n:ûûÊצ*wÐÎHÆ“ÚV‰Q—†*g)ü¢’C[ˆæ~ùú1ŸkM0óur±·Ÿ“¢vF‹ÐM¸:”îb Ù%å^o #"®ÁÕº™Å¶AùE:FÈ3ƒŒr.Ÿ1.Øi\²-Ñ3±wLiÝâ¬X~K.b)8‚ý@jx³”ÙØ…s|0J—¬Ü$ÀÛs‹-£€BÙ¶ÂËï’èZ_ß6ÚÛ Ý1)jÉuͱ«¨Yn®Ob~×ôœOîJ\¸µa1:;E,tø ­¦ÑY$~=hŒMñ©ùð …Ë™ÊޢЯÀ¹rj"oܽ‘²à„”‡/æò†,ø0"[ - 3éhogtqd¢ ö½c™Võƒã ÃÙ°#º€ÙÓI\5ë\´ËøÂÖÄUÓÎÖA`k«7wYrH+áÚ÷çe³ªüIÓçG­ã–Ê<ׯ¯ü<`—ÐCp˜·ÑØ)!Ç„vûUÛäS„K2ÏÖ¼´âÌÃÐMD0©ä ;R Np¸‚•ÇY'yª¡C1¬\T×L;oI\¼Ý¸a*<픚„Þ&$[áX O2ÓÃ¥}±’¿×cÝõ‚X.Z{Y-³!/¾sLÑ@o÷Pý4ÄŸ?¹Ñ'3›Sî~©ô(D¬I—Ô )GhbA§RjRmQ©}ƒSžkESILB¾ÉYªs¹ä`•Q[íq$wúžh‚ã!0߈ol/î0E¸ÃràäÃ#vwpèGgß´Q«_í÷ktªõÃ[Bq¹™jêûÍu߯ôÜ ÖÏZh€ÒG'ßþýCÉŸÚÄðàûõ«“NLw„[•`S††ë®Kj‹qÃ/R\’ù– I°+¦•0eÿî©B.*S&fʵê41÷q+‡ýl±‡",Æ„a˜{îLa!¼аk1rçfµ3Œ^.€öÍušPB(Iå ž+Ôk‰få†Ï xÉU3­¾C• ð!¡¯nÌ rùìÀ¢ }Ǧ÷¥½)pm5þRc Uaœ®ÑW´V2rIáÔõÅJ™wïJ Ö ”ùa€Y6³$X‰9Ò¥QåvÈ|.æ“s8$œ8lŒæW¶pVÂÚ‰Ÿ'ŠÈa߬-ÏŽeäç„¥øÂ”x”‚wü»Tyx#7n¼ƒŠ¢‹ì]¾SÀ¶4ªl¨I_†ôè3—ãû¯šZ=Xu¯”<+!Œnÿ0Qc,qÛÖ³åi“Ó#—f»´Ng©m'7êvƒoZœÛ–#2±4ðªTŠã¯Ð„—xv¼†n†âZÈJÍ\Äà7„ÚþnÓ†Ì7¦Ç×î´ü¦g_«7ä*£ÆµsUÖº¤4ïlå–:JAœ¸–c5e â¬iãöÑq,À¹`a9bÁ±èh ûû ¼5Eq”“WaúðÍ–;îé5!Ù¡µÜï˜~ë$›¤vp}ô7>òPx&5÷.l%´~>tP’©Lµ!ç$Á™äÝncÉÕ|ÄèsÛØ&ëÀ rª•Ý'É/²‚Îx¤‘–U]Wä.BðBí¯Ç×~Wc_=àaü8Là;µ½é`z£Iè5\RT!ÕN¬Ng?|fí¹©Óžisf’†ÔÛÂ£ÓØºŸ\åNɈp<±wâ_ük€*tˆ8Tf/˜iüàŒÁLÊg] xùÕ«wE¤Œ|Þ¶"E]1£Þú‰ ^}hë#—ÔÒý¨7ðX‰7wÍ}ºl´MëQn% <¢’>lxlÉe¡­_.O.¥\óÀ3Cý$‡ü³UíçŠ@J"‘ÑÖWÀWêõ|âu7FGƒ~E¡ ¤2Üfk¸$ÚlxDCh=΢Ÿ*ü;í[­=f>Ñq¢Bø‘ýÌóz•<öL¡¼F þ%{B@ÏÄyCêì#òvê¾gÏ ½ÕÓ|³릴Ñ+z]0~e””Á‡ö™×°4|å9™*pã]¼,»§<)ã?áçdmÝÝ }HÎÙmŽ3¢9ìð9ÿäÁÞ$ùÑÂ+eüŽ«]sSà@g„šÏy“¡tYt¥É‰´ñe+ƒ^ú©ê÷¢ð¸áŠVÖqI”™0µy¹‡g˜¥WÉ3èQimã,gƒd´ýûØ=¶ 2J;\åÜ£MÀ†œ<×ΈÞäС»*Á·…®úepq&¦øeƒ{»|XþðÂ, ò?›šJçÈÅò2x~‚‡¥Aì{>½¾Ò³røµ^O=n2Œ·˜ß =OfÏ6\´§SQÏM1½Ê"S™ÆqÓ+°øàÙÇ: ›ò|ÁžeXŒ°Xçå°ý‚ýó ÿ¶¡WŽQùÝsDB¦ŸOÄ·vã©ãÚ±(;/L§§ÈÖ uO–xmŸ1y©&&dzëŸé)¼Žç#ûë5!CUü[èÔ%V¡$ WÉ×)¼Àƒv4•³-£´ÌQ¿Ð­z–õ§Ÿê©BÇ0.´Û• ¶4°kv60ï£Að€SynIN%˜6'˜/x@o‹åÍrDµ£VçKöHa†cxƒôç’ÿE¬ýûq¢ª01 á›Ã-½dÝw‹¢FŠ˜x²v!F4mŸ^ ¯}1çûç•ÕVçâ<ùX‡u¬¡_:zu)òÍ™˜u1ãÆtYÅ“Ù÷ú B8 ç'FË5ÁØùòôð€ð&àÆÝÓ \†…g’Þ`ý€Ml•™à†nv„Ü¿ þÒu[R%©ÝÅ0a C” NÕ/ͬTO3œÅ8@ÁˆØG7Á]î_tKaSuª•i‚›·ðKRøn$¾±»Ÿ´µÊÔK Øë$*ySð[<éRw8uÏ_;5kߘšv¦¦7°€2¶É¬y!n_aƒºuǤ5]’¢S[•ÕzìçÊìò€Þ$gQ®7Ë9¹»î²ÝÆÕZ€»½Îܦä|¤Já—ëC çDÂl.E”ýÖ•½4¨¹ÌÃS>ë[€td'”šóIƒ²IƒeS—ä"sôôsî5ØiÅ¿IÏ/[ϰ§p6®ÄõÀÍ\’á“yŤƶpxªÐÛeº:4úLtFt…áŽêŽÀ;Vðþ¿.8·F/© ¦¿°#”)ÑáL|#È^äÄ0:4dŽ‚çáŽh^ê1žôh6ú@¸Ö%µe ¹,/zVQ_´&<ª¿¬ózsöòPéçÌÂýóô4;=…Oƒÿ/Äÿ\ë&`šÀ!Rfhädp^®·»tβà‡%z²‰¬,ô¶‚Y•”ß~ý€cÜõÛ•ôfc4?ÖmË ˆ&lÊ~×j‹ÝÏ›`Å p‡¦ÿðËÈ-T]”´ú^'†¨ÊüE¶”÷j_ZÎè'_¤KN[M­‚-Øæ1ogÉíЃ2ÿ˜Ü(ŠNo2¨ª³þ2Œ½»L|K üb€34±ñ}l €¼J¯÷jð®`†Hcg}ÜjˆRZ¤i~áÊ».Ikæ ˆAhV_Ü_ û’§Ý¡§ÃãÜ‘¸»Ð7…ÞD&qŸ"áL{d«×LÊнJn' ÿ¬¼ûÙãÔúî§q 7ó2)ìÎöÝnu´Ä ħ›Z¿™`½Æ9V (ì$¥æR5+=b¶T%…ÕëÌ T½^-õ—ô˜Á ý¤"7Ž…›öKÏ®z6RD*•ËY*¦©™{µÉDîϓџܼÈÚiG†›Û½»?×ýSºÑ,ýl}¦ö‹ÞAVc«€¡@ì<<=ü¨Ê&‰[”ÓC—ú¼|0°‹‘r0ïÒNBór^Ú/ô*`kÛ±J8•séÊ'jøk÷­î<;ÂUòñ[Ý~2GèìF Á×FEí4é¿Ø ]¥”rL]ëŒ#ÏQðÜ·ãå7QøžÛ±Â¥‡I:ÿ¨r'oÚˆæ¬ExôYDzb̺¨'ï{p û–äïKÒ;“üCI\'Ä x¦Î#Vb*³Í¢ ìLâÑtšÁI§%±£ ü`’z†3ÂCH*V6ä*I˜ÙÏLƒwd.îúñ¿_ö»ë  cÍÿ¸ÌæŠ=âß_u-ЛXlQŠß *æ›ß ‘Àò§ê']ü¤¡ApÎ7q)Î¥.}L%ê'w ?=^ëðÞä~Iêse—ˆò¼[µ›¿ZDjž)OïØÊÑMùß2âãþ ðSB8åˆJ “=[Ýc¨ÊÍkRV@÷Ň"Ì‡Í ª@݈sø±X( P „PøΰÓe¥y4*9xi¬V)zËOPfÛ5ÖüêÀÓ[¥£Ÿà¹eúßy4õû2»3ØûŽŠÊ;‰[Ъµd¡XƒyìN]8¨Nr7tÆv©Ôq:Ÿ´ר:Z0Ò…¦¦ž‰ÊüÒ[Û÷èGpny´Ä-H˜=³ß9*»,«Trc휡.q»Á”†‹ÂfAÙhñêø§)u”ÐY<¦„5¡i.-@foL^‘ÎÞ~s†¦nAHÇA»½ìtà»GÓOÜÖ.èÕÊw²ïΠ,ÔÒðö·›ÐÇàâÐÔY¯ï«,eÜ"òtÐTuâk’àpáÍ­LO ÎׄŸþûGû ³Ö.èµ·X(ñ9)ä%Lòñ‘Ù±Œ·“þiJÃ.¨Fd²Êœ:9½”ç*c ü….ßáò‹Žµ8n5`ñ¾_rù#¿ïvW*­ë’b'T©LöxçsÈÚ€m=vÒø„¿¹»¥sÌýÄKÇ>Èà?‚&j˜_Æý1ˆ¸¿œüÙÀôª —Äj—Ô µ]§ÓÞüª³|lNva‡äüqÄæ<Ù3̹ñ–lÄÝ&Бí à¿'K'F¼¸lÃÄ­…ªQkº¤–‰;ˆHÛ_ÎõÑý¯„?Øîð‡%ŽWµâ¶úŸrçSrûMà^’ëè>ÀÙÀICÑ´ä°¦hÅ7¡Ðço/¦À?ç"ð L¼‡ÂÎóã̾í*`\—8\ÒÁ†;;;Ü[΢‚XðĬ'äŽ0úˆÃ€ßèèër¿Ä+¾âýå[ƒœ-wçöÇ­÷·‹àvÜ®€Û·Þãÿã><@Ö¥)C%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbtEXtSoftwareAdobe ImageReadyqÉe<IEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/favicons/favicon.ico000066400000000000000000013226261431412030200236010ustar00rootroot00000000000000 hf ¨Î00 ¨%v@@ (B;€€ (F} ( n…(  @ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìoŽ쯎ìË èÉÞ§ŒÑ]ŒÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽ샎ì÷ŽìÿŽ ëÿ éÿ áÿŒÓÿŒÆÿºÝ­;ÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÃíÿŽìÿŽ ëõ êÿ çÛŒÜ}ŒÊyŒ¼Õ®ý# ÷Œ&“EÿÿÿÿÿÿŽìŽì·ŽìÿŽìÿ ëÃŽë¯ ë}Œ ç‹Ê Œ‰´×"¥ÿ%—Ó‹(‰åŠ)}ÿÿÿŽìcŽìÿŽ ëÿ èç éŽ ìOÿÿÿÿÿÿÿÿÿÿÿÿ#  $›_Œ'á‹)€yŠ*wOŠ!—ŽåÙŽ ëÿ äÿŒÝ…ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$ž Œ&§‹)ƒÝŠ*w÷‰+m-‹²ƒ ßÿ áÿŒÕÿŒÎWÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(†Š)zÉ+oõ‰,d¡‹®ÝŒÎÿŒÒÿŒÇÿŒ¿_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰*p-‰+gˈ,ZÇŠ#‰Š§ÿŒÃÿ¹ÿ¯Ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,]¿‡,RYÊ·ˆ'kÿµÿ ªÿ#ŸûŒ&’GÿÿÿÿÿÿÿÿÿŒÚŒÝ?ŒÙmŒÏsŒÆ/‡,S‡‡,Q#Ž콉)kÿ‹'ÿ$›ÿŒ'ÿ‹(†ûŠ)z‘‹¤GŒΙÝï çÿ åÿŒØÿŒÈõ‡+Vs†+QŽìŒ §×‰+eÿŠ)zÿ‹(†ÿ‹'ŠÿŒ"žÿŒ¾ÿŒÐÿ äýŽ ìÿŽ ëÿ ßÿŒÍÕ†+R#ÿÿÿÿÿÿŽ닊%ÿŠ*uÿŒ!®ÿŽèÿßÿÅÿŒÎÿÝÁŽ éã èÿŒÜóŒÐ7ÿÿÿÿÿÿÿÿÿŽìWŽçý‹$˜ÿŒ#£ÿŽÝÿŽÏÿ½ÿŒÅÿŒÒÿÛÿŒÛÛŒ×3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽëSÄñŒ#¢ÿ$œÿ «ÿ¹ÿŒÄÓŒÌsŒÐ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì?ŽìÅŽ諎Á1® ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ( @ €ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì ŽíGŽìuŽ쓎ìŸ ë ê åiŒ ß3ŒÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìUŽ쵎ìùíÿŽìÿŽ ìÿŽ ëÿ êÿ åÿ àÿÚÿŒÓçŒÍ‹ŒÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìWŽìÛíÿíÿìÿŽìÿŽ ìÿŽ ëÿ èÿ äÿ àÿÚÿŒÒÿŒÌÿŒÆÿŒÀ÷Œ¼Œ¸ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽí·íÿíÿíÿìÿŽìÿŽ ìÿ ëÿ éÿ èÿ äÿÝÿÕÿŒÍÿŒÇÿÀÿºÿ³ÿ­Ë!©ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì3ŽìåíÿíÿíÿŽìÿŽìÿŽ ëÿ êÿ êÿ ëÿ æÿŒ ßýŒØÕŒЯŒÊ£Œí¼Ñµû­ÿ!¦ÿ# áŒ$š#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì9ŽìñíÿíÿíÿŽìÿŽ ìÿŽ ëÿ êÕŽ ëýŽ ëÿ èïŒ ãŒÞÿÿÿŒÈŒÃŒ½Û¸ÿ¯ÿ!¨ÿ#¡ÿ%šÿŒ&“ÝŒ'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì%ŽìííÿíÿìÿŽìÿŽ ìÿ ëñ êcŽìÓŽ ëÿ êŒ çÿÿÿÿÿÿ‹Ê-ŒÇã¿ÿºÿ²ÿ ªÿ"¤ÿ$œÿ&•ÿŒ'Žÿ‹(ˆ½Š)ÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÏíÿíÿŽìÿŽìÿŽ ëÿ êí é1Ž쑎 ëó ëSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ Œ¼9¶­Ý!¦ÿ#ŸÿŒ%—ÅŒ&…‹(Š×‹)ƒÿŠ)}iÿÿÿÿÿÿÿÿÿÿÿÿŽì}íÿíÿŽìÿŽ ìÿŽ ëÿ èý æEŽë Ž ìß ë1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!§#¢Y%™ßŒ&’ÿŒ'Œí‹(†GŠ)~mŠ)y݉*s ÿÿÿÿÿÿŽìŽìóìÿŽìÿŽ ìÿ ëÿ çÿŒ ã£ÿÿÿŽ ë) ì+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ# %š+Œ&”Œ'™‹(‡ÿ‹)€÷Š){=‰*t%‰*q3ÿÿÿÿÿÿŽëŽìÿŽìÿŽ ëÿ êÿ åÿ àÿŒÞ1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$ž!Œ%—ÍŒ'ý‹(‰Á‹)‚³‹)|ýŠ*véˆ*qÿÿÿÿÿÿŠ!— ÑåŽ ìÿŽ ëÿ éÿ äÿßÿŒÙáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&Œ'‹Å‹(…ÿ‹)~ÿŠ)x÷‰*rÿ‰+m›ÿÿÿÿÿÿ‹®¥Ôÿ ëÿ çÿ âÿÝÿÖÿŒѳÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(†‹)€ÝŠ*zÿ‰*tÿ‰+nÿ‰+gûˆ+bŽìgŠ!ÿØÿ æÿ áÿÛÿŒÔÿŒÎÿŒË¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ*{7Š*vý‰*pã‰+iõ‰,cÿˆ,_sŽìÓ‰$†ÿŒÍÿßÿÙÿŒÒÿŒÍÿŒÈÿŒíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰*q—‰+kÿˆ+e‰ˆ,_ÿˆ,Y±Ž졉%|ÿ‹·ÿÖÿŒÐÿŒËÿŒÆÿÀÿŒ¼Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰+l‰+gùˆ+a«ˆ,Z›ˆ,UÓŽì‰%ÿŠ—ÿŒÎÿŒÊÿŒÄÿ¿ÿ»ÿµû®ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+b­ˆ,]õˆ,V‡,RËŽì Š#Žýˆ&mÿŒÈÿŒÂÿ½ÿ¹ÿ³ÿ¬ÿ!¨qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,][ˆ,Xÿˆ,U3†+QIŽìI‹©ÿ‡,Qÿ‹¦ÿ¼ÿ·ÿ±ÿ «ÿ"¦ÿ# ïŒ%™!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,Xˆ,Uÿ‡,QGÿÿÿŽì•Íÿ‡,Qÿ‰*fÿŒ²ÿ®ÿ!©ÿ"¤ÿ$žÿ%˜ÿŒ&’ÛŒ'Œ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÚŒÝ]ŒÝ™ŒÛÉŒ×çŒÑïŒÌ݌ƌÁ†-V‡,Qù†,Q?ÿÿÿŽ쯎ëÿˆ*aÿˆ-WÿŠ'zÿ!§ÿ#¢ÿ$œÿ%–ÿŒ&‘ÿŒ'Œÿ‹(‡í‹)€eŠ*|ÿÿÿÿÿÿ‹ÊŒÐgŒ×ÃŒÝý ãÿ åÿ äÿ àÿÙÿŒÑÿŒÊÿŒÂÛŒ½†,Qï†+QÿÿÿŽìIŽìý‹"›ÿˆ-Xÿ‰,`ÿŠ(|ÿŒ%˜ÿ&”ÿŒ'ÿŒ'Šÿ‹(…ÿ‹)€ÿŠ*{ÿŠ*vߊ&ƒ…Œ‘ŒÊóŒÒÿÜÿ äÿ éÿŽ ëÿ êÿ æÿ àÿÖÿŒÍÿŒÅÿ‹§†+Q¿ÿÿÿÿÿÿÿÿÿŽì[ŽÝù‰,^ÿ‰,aÿ‰+iÿŠ*wÿŒ(‡ÿ‹(ˆÿ‹)ƒÿ‹)~ÿŠ){ÿ‹'„ÿ‹"›ÿŒ¹ÿŒÃÿŒËÿÕÿ ßÿ çÿŽ ëÿŽìÿŽ ìÿ êÿ ãÿÙÿŒÏÿŒÈå‡+S7†+Q=ÿÿÿÿÿÿÿÿÿÿÿÿŽìa‹!£ÿ‰,aÿ‰+iÿ‰*rÿŠ*zÿ‹)‚ÿŒ(‰ÿŒ&‘ÿ$ÿ!§ÿ±ÿ»ÿŒÃÿŒÌÿÕÿ àÿŽ è÷Ž ìÿŽìÿŽìÿŽ ëÿ äÿÚÿŒÐÿŒÊs†+QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽéÿŠ'{ÿ‰+iÿ‰*qÿŠ*yÿ‹)ÿÀÿŽæÿŽâÿÞÿÑÿÃÿÂÿŒËÿÓÿÞÿ“å/ìŽ ìÿŽ ëÿ éÿ âÿÙÿŒÐÁ‹ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽííÿŽÛÿ‰)tÿ‰*pÿŠ*xÿ‹'ŒÿŽëÿíÿìÿŽ ëÿáÿÎÿÀÿŒÈÿŒÐÿÙÿáÙ æõ éÿ èÿ äÿÝÿŒÕÏŒÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìñíÿŽÖÿŠ){ÿŠ*wÿ‹'ŽÿŽêÿíÿíÿŽìÿ åÿÌÿ¿ÿŒÄÿŒËÿŒÒÿÙÿÞÿ áÿ àÿÜÿŒ×¹ŒÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìeŽì÷íÿŽÞÿ‹%ÿ‹)|ÿŒ%—ÿÊÿŽÒÿ޼ÿ­ÿ¯ÿ¸ÿ¿ÿŒÆÿŒÌÿŒÑÿÕÿ×ÿŒÖ÷ŒÖyŒÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽíAŽìiŽë×»ÿ‹'Šÿ‹(ŠÿŒ&‘ÿ%šÿ"£ÿ ªÿ²ÿºÿ¿ÿŒÅÿŒÉÿŒÌýŒΩŒÐ%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì ŽìÅŽèÿÅÿ"¨ÿ%™ÿ$ÿ"¥ÿ «ÿ³ÿŒ¹ûŒ¾ÍŒÃŒÇ#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì×íÿíÿŽëÿŽáýŽ̃!¨;­+Œ³ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì{Ž쟎ì…Žì-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(0` €%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì9ŽìWŽìiŽìq ìo ëc êM ç) äÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì ŽìQŽìŽíÛŽìýíÿŽìÿŽìÿŽ ìÿŽ ëÿ êÿ çÿ äÿŒ áóŒݽŒ×sŒÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì-Ž왎ìñŽìÿŽìÿŽìÿŽìÿŽìÿŽ ìÿŽ ëÿ ëÿ éÿ æÿŒ ãÿŒ àÿŒÜÿŒ×ÿŒÓÿŒÏýŒ̵ŒÈ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì-Ž쯎íýìÿìÿíÿìÿìÿŽìÿŽ ëÿ ìÿŽ ëÿ èÿ åÿ âÿŒ àÿŒÜÿ×ÿŒÒÿŒÍÿŒÊÿŒÇÿŒÃÿŒ¿µŒ¼%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí ŽìŽìûíÿíÿíÿíÿíÿŽìÿŽìÿŽ ìÿŽ ëÿ êÿ çÿ æÿ åÿ ãÿÞÿØÿÓÿŒÎÿŒÊÿŒÆÿÁÿ½ÿºÿ¸õ´kÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì7ŽìÛŽìÿŽìÿŽìÿŽìÿŽìÿŽìÿŽìÿŽ ìÿ ëÿ ëÿ êÿ èÿ êÿ èÿŒ åÿŒ àÿŒÚÿŒÕÿŒÐÿŒËÿŒÈÿŒÃÿŒ¾ÿŒºÿ¶ÿ°ÿ ¬ÿ ª£!§ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìcŽíùìÿíÿìÿìÿíÿìÿŽìÿŽ ìÿŽ ëÿ ëÿ éÿ êÿ ëÿ éÿ æÿŒ áÿÜÿŒ×ÿÑýŒÍõŒÉóŒÄù¿ÿŒ»ÿŒ¸ÿ²ÿ ¬ÿ!¨ÿŽ"¤ÿ# ½Œ# ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì}íÿíÿíÿíÿíÿíÿŽìÿŽìÿŽ ìÿŽ ëÿ ëÿ èÿ ëÿŽ ìÿ êÿ çÿŒ ãýŒÞ¿ŒÙoŒÕ3ŒÐ ‹Ë‹ÄŒ¿?Œ¼‰¹Ç´õ®ÿ!ªÿ"¥ÿ# ÿ$›ÿŒ%—»Œ&” ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÿŽìÿŽìÿŽìÿŽìÿŽìÿŽìÿŽ ìÿ ëÿ ëÿ êï 鱎 ëû ìÿ ëÿ èûŒ åŒ â)ÿÿÿÿÿÿÿÿÿ‹ÈŒÆeŒÂÝŒ¾ÿŒºÿ¶ÿ°ÿ «ÿ!§ÿ#¢ÿ$ÿŒ%˜ÿŒ&“ÿŒ'Ž£ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìgŽíÿŽìÿíÿìÿìÿìÿŽìÿŽ ëÿŽ ìÿŽ ëÿ ê­ŽëCŽìïŽ ëÿŽ ëÿ éÁŒ ç-ÿÿÿÿÿÿÿÿÿÿÿÿ‹ÊŒÈÁŒÄÿŒ¿ÿŒ»ÿ¸ÿ²ÿ ¬ÿ!¨ÿ"¤ÿ#žÿ%™ÿŒ&•ÿŒ'ÿŒ'Œÿ‹(ˆoÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì;ŽìùíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ëÿ ëý éwŽì Žì׎ ìÿ ë÷ ëoŒ éÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹ÊOŒÇ…ŒÁ­Œ¼ãŒ¹ÿ´ÿ®ÿ!©ÿ"¥ÿ# ûŒ$›ÁŒ%–ÕŒ&‘ÿŒ'ÿ‹(‰ÿ‹(„ù‹)€-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìߎìÿŽìÿŽìÿŽìÿŽìÿŽ ìÿŽ ìÿ ëÿ êÿ èkÿÿÿŽìŽ ìÿ ëá ë5ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ¶-°ƒ «ã!¦ÿ#¢ÿ$œÿ%—ûŒ&’•Œ'ŽA‹(Ч‹(†ý‹)ÿŠ)}ÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì—ŽìÿíÿìÿŽìÿŽìÿŽ ìÿ ëÿŽ ëÿ éÿ ç‘ÿÿÿŽëŽìë ìÏ ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!§Ž"¤c#žáŒ%™ÿŒ&”ÿŒ'ÿŒ'‹Ù‹(ˆ)Š(‚3Š)~ÇŠ)zÿŠ)wMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì/ŽìûíÿíÿìÿŽìÿŽ ìÿŽ ìÿ ëÿ èÿ åÙŒ ä ÿÿÿŽë=Ž ìÉŽ ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ$š Œ%–‡Œ&‘ûŒ'Œÿ‹(‰ÿ‹(„ëŠ)€1‹*|Š*xw‰*t»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ챎ìÿŽìÿŽìÿŽ ìÿ ëÿ ëÿ êÿ çÿŒ ãÿŒ áQÿÿÿÿÿÿ ë9 ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ"£# =$›EŒ%–1Œ&’ Œ';‹(Šã‹(†ÿ‹)ÿŠ)}çŠ)y!ÿÿÿ‰*q7‰+nÿÿÿÿÿÿÿÿÿŽì+ŽìýìÿŽìÿŽ ìÿŽ ìÿ ëÿ éÿ æÿŒ âÿŒ ßÛŒ ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$žGŒ%™ë&”ÿŒ'ù‹'‹¹‹(‡k‹)‚ÍŠ)~ÿŠ*zÿŠ*vˈ*rÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØ‘ìÿŽìÿŽ ìÿŽ ëÿŽ ëÿ èÿ åÿ áÿÞÿŒÛ…ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ%•%Œ&ÝŒ'Œÿ‹(ˆÿ‹(„ÿŠ)Õ‹){ëŠ*wÿ‰*sÿ‰*p}ÿÿÿÿÿÿÿÿÿÿÿÿŠ!—Œ½ïŽ ìÿŽ ìÿ ëÿ êÿ çÿŒ ãÿŒ àÿŒÝÿŒØÿŒÖCÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ'‹(Šß‹(…ÿ‹)€ÿŠ)|ÿŠ)yý‰*tÿ‰*qÿ‰+lóˆ+iÿÿÿÿÿÿŽí‹©½ŒÆÿŽ ëÿ ëÿ éÿ æÿŒ âÿŒ ßÿÛÿŒ×ÿŒÒÿŒÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(†+‹)‚ñ‹)}ÿŠ*zÿŠ*vÿ‰*rÿ‰+nÿ‰+iÿˆ,e‡ÿÿÿÿÿÿŽì—Š#ÿŒÏÿ ëÿ èÿ åÿ áÿÞÿÚÿÕÿŒÑÿŒÍ÷‹ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ)~U‹*{ÿŠ*wÿ‰*sû‰+oÿ‰+jÿ‰+fÿˆ+bçˆ,`ŽìGŽìÿˆ'nÿŒÏÿ çÿŒ äÿŒ àÿŒÝÿŒØÿŒÔÿŒÐÿŒÌÿŒÊóŠÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ)x£‰*tÿ‰+põ‰+lµ‰,hÿˆ,cÿˆ,`ÿˆ,]?Ž쳎ëÿ‡*Xÿ‹ÆÿŒ âÿ ßÿŒÛÿ×ÿŒÒÿŒÏÿŒÌÿŒÈÿŒÄùÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰)u‰*qï‰+mÿ‰+i³ˆ+d©‰,aÿ‰,]ÿˆ,Y}ŽìÅŽäÿ‡+Qÿ‹¶ÿÞÿÚÿÕÿŒÑÿŒÍÿŒËÿŒÇÿŒÃÿ¿ÿŒ½ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰+n}‰+jÿ‰,fýˆ+b?ˆ,^Û‰,Zÿˆ,V©ŽìMŽÞÿ†,QÿŠŸÿŒØÿŒÔÿŒÐÿŒÍÿŒÊÿŒÆÿŒÂÿŒ¾ÿŒ¼ÿŒºEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰+j‰+góˆ,cÿˆ+`™ˆ,ZAˆ,Wýˆ-TÃÿÿÿŽÝ·‡,Qÿ‰"‚ÿŒÒÿŒÏÿŒÌÿŒÉÿŒÄÿŒÀÿ¾ÿŒ»ÿŒ¸ÿ´ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+c™ˆ,aÿˆ,\éˆ-Zˆ,T«‡,QÉÿÿÿŽæ‡+Tÿ‡)_ÿŒÍÿŒËÿŒÇÿŒÃÿ¿ÿ½ÿºÿ¶ÿ±ÿ­Ñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+aA‰,^ÿ‰,Yÿˆ,W+‡,Q)‡+Q¹ÿÿÿŽ쓈)dÿ†+QÿЬÿŒÆÿŒÂÿ¾ÿŒ¼ÿŒ¹ÿµÿ°ÿ ¬ÿ!©ÿ"¦Iÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+^ˆ,[ïˆ-Wÿˆ,TUÿÿÿ†+QGÿÿÿŽí׉%~ÿ‡,Qÿˆ%rÿŒÁÿŒ¾ÿ»ÿŒ¸ÿ³ÿ¯ÿ «ÿ!¨ÿŽ"¤ÿ# ÛŒ$› ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,W¹ˆ-Tÿ‡,RiÿÿÿÿÿÿŽì+Žìÿ‹  ÿ‡,Pÿ‡,Rÿ‹ÿºÿ¶ÿ²ÿ­ÿ ªÿ!§ÿ"£ÿ#Ÿÿ$šÿŒ%—±Œ&’ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÙŒØ%ŒÖIÓaÐiŒÌc‹ÉEŒÆÿÿÿÿÿÿÿÿÿˆ-U‡,Rÿ†,QkÿÿÿÿÿÿŽíoŽìÿÇÿ†+Qÿ‡,Sÿ‰+aÿŒ­ÿ°ÿ ¬ÿ!©ÿ"¥ÿ#¡ÿ$ÿŒ%™ÿŒ&–ÿŒ&’ÿŒ'ޱ‹'‹ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÙŒÚ5ŒÜ}ŒݽÝñŒÜÿŒÚÿŒ×ÿŒÔÿŒÏÿŒËÿŒÇ÷Œ׌¿ ÿÿÿ‡,Rs‡,Qÿ†,PYÿÿÿÿÿÿŽììÿŽêÿ‡*\ÿˆ,Tÿ‰-XÿŠ)rÿ ©ÿ!¨ÿ"¤ÿ# ÿ$œÿŒ%˜ÿ&•ÿŒ&‘ÿŒ'ÿŒ'Šÿ‹(‡Ù‹(‚=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÐ3ŒÕŒÙãŒÝÿŒ áÿ ãÿŒ äÿŒ ãÿ áÿŒÞÿŒÙÿÔÿŒÏÿŒÊÿŒÅÿŒÀ­ÿÿÿ‡,Qi†+Qÿ†+Q/ÿÿÿÿÿÿŽí]íÿíÿŠ#ÿˆ,Tÿˆ,Yÿˆ,_ÿŠ(zÿ#¢ÿ#Ÿÿ$šÿ%—ÿ&“ÿŒ'ÿŒ'ŒÿŒ(‰ÿ‹(†ÿ‹)‚ÿ‹)ýŠ){­‰)w;ˆ(uÿÿÿŒÄ ŒÈgŒÌÏŒÑÿ×ÿÝÿ âÿ æÿ èÿ èÿ èÿ æÿ ãÿÞÿØÿÒÿŒÍÿŒÈÿŒÂÿŒ¾†,Qq‡+Pç†*RÿÿÿÿÿÿŽíŽì»ìÿÏÿˆ,Uÿ‰-Zÿˆ,_ÿ‰+dÿŠ)yÿŒ%–ÿ&–ÿŒ&’ÿŒ'ÿŒ'‹ÿ‹(ˆÿ‹(…ÿ‹)ÿŠ)~ÿŠ*{ÿŠ*wÿ‰*tÿ‰)xÛŒ¯¡ŒÃëŒÉÿŒÎÿŒÔÿŒÛÿŒ áÿ æÿ éÿŽ ëÿ ëÿ ëÿ êÿ æÿŒ âÿŒÜÿŒÕÿŒÏÿŒÊÿŒÄÿŒÀ!†+Q†+Q‰ÿÿÿÿÿÿÿÿÿÿÿÿŽì Žì»íÿŠ&ÿ‰-Zÿ‰,`ÿˆ,eÿ‰+kÿ‰*tÿ‹(‡ÿŒ'ÿŒ'‹ÿ‹(‡ÿ‹(ƒÿ‹)€ÿ‹)}ÿŠ)zÿŠ)vÿŠ(~ÿ‹#˜ÿŒ¶ÿ¾ÿŒÄÿŒÊÿŒÏÿŒÖÿŒÝÿ äÿ èÿ ëÿŽ ëÿŽ ìÿŽ ìÿŽ ëÿ éÿŒ åÿÞÿŒ×ÿŒÑÿŒËÿŒÆíŒÀ†+Q¯†+QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì£Íÿ‰,[ÿˆ,`ÿˆ,eÿ‰+kÿ‰+pÿŠ*vÿ‹)}ÿ‹)ƒÿ‹(„ÿ‹)ƒÿ‹(ƒÿ‹(†ÿŒ&ÿ#Ÿÿ «ÿ³ÿºÿ¾ÿŒÅÿŒÊÿÐÿ×ÿÞÿ åÿ éÿŽ ìÿŽìÿìÿŽìÿŽ ìÿ êÿ æÿ àÿØÿÒÿŒËÿŒÈ‘†+Q†+QKÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìã‹#”ÿˆ+`ÿ‰+eÿ‰+kÿ‰*pÿŠ*vÿŠ*{ÿ‹)€ÿ‹(‡ÿŒ'ŒÿŒ&’ÿŒ%˜ÿ#Ÿÿ"¦ÿ «ÿ³ÿŒ¹ÿŒ¾ÿŒÅÿŒÊÿŒÐÿŒ×ÿŒÞÿŒ åÿ‘êíŽ ìýŽ ìÿìÿŽìÿŽ ëÿ êÿ æÿŒ àÿŒØÿŒÒÿŒÌï‹È†+QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ쩎äÿ‰)qÿ‰+dÿ‰+jÿ‰+pÿŠ*uÿ‹){ÿ‹)€ÿ‹(†ÿÊÿŽäÿŽßÿŽÜÿŽÙÿÒÿÊÿŒÂÿ¾ÿŒÄÿŒÊÿŒÏÿŒÖÿŒÝÿŽãÇ”è“íqŽ ìÿŽ ëÿŽ ëÿŽ ëÿ éÿŒ åÿÞÿŒ×ÿŒÑÿŒÌ[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì›íÿÎÿ‰+hÿ‰+jÿ‰+pÿ‰*uÿ‹*zÿ‹)ÿŒ"¥ÿŽìÿíÿŽíÿìÿŽ ëÿŽ æÿÛÿÎÿ¿ÿÂÿŒÉÿŒÍÿÓÿÚÿŽàÝ”å-é—Ž ëÿŽ ëÿŽ ëÿ éÿ æÿ âÿÜÿÕÿŒЉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí—ŽìÿŽìÿŒ½ÿ‰+jÿ‰+oÿ‰*tÿŠ)yÿŠ)~ÿŽÒÿìÿŽìÿŽìÿìÿŽìÿ éÿßÿÒÿŒÅÿŒÀÿŒÇÿŒËÿŒÐÿŒÖÿŒÜÿŒ áÿ åÿ çÿ èÿ çÿ æÿŒ ãÿŒÞÿŒØÿŒÔ“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíÿìÿíÿŒºÿ‰+oÿ‰*sÿŠ)xÿŠ)}ÿŽØÿìÿìÿŽíÿìÿŽìÿŽ ëÿâÿÕÿÈÿŒ¿ÿŒÄÿŒÉÿŒÍÿŒÒÿ×ÿŒÜÿŒ ßÿ âÿŒ ãÿŒ âÿ àÿŒÝÿŒÙýŒÖ{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì1ŽìýíÿíÿíÿÃÿ‰)wÿŠ*wÿ‹*|ÿ‹%—ÿŽàÿíÿŽíÿíÿŽìÿŽáÿÊÿºÿ¸ÿ¼ÿÀÿŒÆÿŒÊÿŒÎÿÒÿÖÿÙÿÛÿÜÿÜÿÚÿŒ×íŒÖOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì]ŽìíŽìÿìÿŽìÿÖÿ‹&ŠÿŠ){ÿ‹)ÿ‹(‰ÿ!°ÿŽÎÿ¾ÿ"©ÿ"¢ÿ!¨ÿ­ÿ³ÿŒ¹ÿŒ½ÿŒÁÿŒÆÿŒÊÿŒÍÿŒÐÿŒÓÿŒÔÿŒÕÿŒÕÿŒÔ·ŒÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì ŽìAŽíkŽ싎ìÛŽéÿŒ ²ÿ‹)‚ÿ‹)ƒÿ‹(‰ÿŒ'ŽÿŒ&“ÿŒ%™ÿ#ŸÿŽ"¥ÿ ªÿ¯ÿµÿŒºÿ½ÿŒÁÿŒÅÿŒÉÿŒËÿŒÌÿŒÎÿŒÏÙŒÐSÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì…ŽìÿŽàÿŒ °ÿ‹'ŒÿŒ'‹ÿŒ&ÿŒ%–ÿ$›ÿ#¡ÿ!¦ÿ «ÿ°ÿ¶ÿºÿŒ½ÿŒÀÿŒÃÿŒÆÿŒÈË‹Ê]ŒËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì}íÿíÿŽèÿÊÿ!®ÿ%›ÿ%˜ÿ$ÿ"£ÿ!§ÿ «ÿ°ÿµÿŒ¹÷Œ¼ÅŒ¾ŒÂ-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì›ìÿìÿíÿìÿìÿŽäÿŽÙÿŽÐß!©_!©W¬G±)ŒµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíŽì—ŽìýŽíÿìÿŽìÿŽìûŽ쟎íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì)ŽìcŽìoŽìYŽíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(@€ BÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿêŽíŽì1Žì=ŽìAŽ ìA ë9 ë' ë ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽì3ŽìsŽí©ŽìÕŽíùíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ èÿ æçŒ 㻌 à…ŒÞGŒÛ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì?Ž왎ìçíÿíÿíÿíÿìÿŽìÿŽìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ èÿ åÿ ãÿ àÿÞÿÛÿŒ×óŒÓ©ŒÐK‹ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìsŽìÛíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ éÿ çÿ åÿ âÿ àÿÝÿÚÿÖÿÓÿŒÐÿŒÍÿ‹ËÝŒÈiŒÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíŽìŽìïíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ èÿ æÿ äÿ áÿ ßÿÝÿÙÿÕÿÒÿŒÎÿŒÌÿŒÊÿŒÈÿŒÅÿŒÂߌ¾UÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìeŽìéíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ èÿ åÿ äÿ ãÿ âÿßÿÛÿÖÿÓÿŒÏÿŒÌÿŒÉÿŒÆÿÂÿ¿ÿ½ÿ¼ÿŒº³Œ¸ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì%ŽíÃíÿíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ éÿ çÿ çÿ çÿ æÿ äÿ àÿÜÿØÿÔÿÐÿŒÍÿŒÊÿŒÇÿÃÿ¿ÿ¼ÿºÿ·ÿ´ÿ²é¯GÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì_ŽìóíÿíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ éÿ èÿ êÿŽ êÿ çÿ åÿ áÿÝÿÙÿÕÿÑÿŒÎÿŒËÿŒÈÿÄÿÀÿ½ÿºÿ¸ÿ³ÿ¯ÿ «ÿ ªý!©oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽì—íÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ èÿ éÿŽ ëÿŽ ëÿ èÿ æÿ ãÿßÿÚÿÖÿÓÿŒÏÿŒËÿŒÉÿŒÆÿÁÿ¾ÿ»ÿ¹ÿµÿ°ÿ ¬ÿ!©ÿŽ"¦ÿŽ"£ÿ#¡‰ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì Žì¹íÿíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ êÿ èÿ ëÿŽ ìÿŽ ëÿ éÿ æÿ äÿ àÿŒÜûŒØÅŒÕŒÐiŒÍU‹ÊIŒÇIÄSŒ¿cŒ¼‡º½Œ¶í²ÿ­ÿ ªÿ!§ÿŽ"¤ÿ# ÿ$œÿŒ$š‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÇíÿíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ éÿ éùŽ ëÿŽ ìÿŽ ìÿŽ êÿ çÿ åÿŒ âÉŒÞeŒÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÃ=Œ¿•Œ½×Œºý¸ÿ³ÿ®ÿ «ÿ!¨ÿŽ"¥ÿ#¡ÿ$ÿ%™ÿ&–ÿŒ&“yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí ŽìÅíÿíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ 轎ꙎìýŽ ìÿŽ ìÿŽ ëÿ èÿŒ 濌 ä=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÈ?ŒÅÉÁÿ¾ÿ»ÿ¹ÿµÿ°ÿ ¬ÿ!©ÿŽ"¦ÿŽ#¢ÿ#žÿ$šÿ%—ÿ&“ÿŒ'ýŒ'UÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîŽìµíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ êë èWŽìWŽìýŽ ìÿŽ ìÿŽ ëÿ éÝŒ çMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÊ‹É‘ŒÇýÃÿ¿ÿ¼ÿ¹ÿ¶ÿ±ÿ­ÿ ªÿ!§ÿŽ"£ÿ#Ÿÿ$›ÿ%˜ÿ&”ÿ&ÿŒ'ÿ‹'‹ó‹(ˆ+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ éÇ èŽì1Žì÷Ž ìÿŽ ìÿŽ ëý ë‘ è ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÊ‹Ê©ŒÈýÄÿÀÿ½ÿºÿ·ÿ³ÿ®ÿ «ÿ!¨ÿŽ"¥ÿ#¡û$ÿ%™ÿ&•ÿ&’ÿŒ'ŽÿŒ(‹ÿ‹(ˆÿ‹(…ÓŠ) ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìSŽìÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿ é± è ìŽìÓŽìÿŽ ìÿ ëé ëGÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÅŒÂ%Œ¾UŒ»Œ¸×µÿ°ÿ ¬ÿ!©ÿŽ"¦ÿŽ#¢ÿ$žýŒ$šµŒ%—mŒ&“Œ'óŒ'ŒÿŒ(‰ÿ‹(†ÿ‹)‚ÿŠ)…ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìííÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ êÿ 赌çÿÿÿŽìkŽìÿŽ ìÿ ëË ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ±+­‰ ªë!§ÿŽ"£ÿ#Ÿÿ$›ÿ%˜ÿŒ&”õŒ&u‹(‹'‹u‹(‡é‹)ƒÿ‹)€ÿ‹*}ùŠ){%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì­íÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ éÿ çÕŒ ç ÿÿÿŽìŽìÝŽ ìÿ ë± ì ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!§ Ž"¥m# ç$œÿ%™ÿ&•ÿ&’ÿŒ'Žÿ‹'‹¹‹(‰Š(…‹)‰Š)}ù‹*{ÿŠ)x§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìIíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ èÿ æùŒ å/ÿÿÿÿÿÿŽë3Ž ìÿŽ ì¡‹ íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ# Œ$š…Œ%–ù&“ÿŒ'ÿŒ'ŒÿŒ(‰ÿ‹(†×‹(‚ÿÿÿ‹*|/Š*yÏŠ)vý‰*s%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíŽìÓíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ êÿ çÿ åÿŒ ã‰ÿÿÿÿÿÿÿÿÿŽ ëg ì¥ ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ&”+Œ&ÍŒ'ÿŒ(Šÿ‹(‡ÿ‹)ƒÿŠ)€ÝŠ)|ÿÿÿˆ)w‰*t‰*qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìWíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ éÿ çÿ äÿŒ áñŒ áÿÿÿÿÿÿÿÿÿ ë=Œ ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"¢#ŸW$›]Œ%˜OŒ&”/Œ&Š'Œ‹'‹‘‹(ˆÿ‹(…ÿ‹)ÿ‹*}ÿŠ){ÏŠ)x ÿÿÿÿÿÿ‰*o;ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìÍíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ èÿ æÿ ãÿ áÿŒ ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ#¡${Œ%šý%–ÿ&“ÿŒ'ó‹'Œ±‹(ˆS‹(†g‹)‚û‹)~ÿ‹*|ÿŠ*yÿŠ*v£ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽã9íÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ çÿ åÿ âÿ àÿÞÿŒÜ/ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ%—IŒ&”ó'ÿŒ'ÿŒ(Šÿ‹(‡ÿ‹)ƒ×Š)•‹*|ù‹*zÿŠ*wÿ‰*tÿˆ*qUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ¶¡ìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ éÿ çÿ äÿ áÿ ßÿÝÿŒÙáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&5Œ'ïŒ(‹ÿ‹(ˆÿ‹(„ÿ‹)ÿŠ)}ÿ‹){ߊ*xÿ‰*uÿ‰*rÿ‰+oå‰+l ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ!—‹«÷ŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ èÿ æÿ ãÿ áÿßÿÛÿØÿŒÕ¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(Œ7‹(‰ó‹(†ÿ‹)‚ÿ‹)~ÿ‹*|ÿŠ*yÿŠ*vÿ‰*sÿ‰+pÿŠ+lÿ‰+i}ÿÿÿÿÿÿÿÿÿÿÿÿŽì‹ ¥Ñ‹¸ÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ çÿ åÿ âÿ àÿÞÿÚÿ×ÿÓÿŒÑwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(†K‹(ƒý‹)ÿ‹*|ÿ‹*zÿŠ*wÿ‰*tÿ‰+qÿŠ+mÿ‰+jÿˆ,gíˆ+c ÿÿÿÿÿÿŽíŽì·‰$„ÿŒÃÿŽ ìÿŽ ëÿ éÿ çÿ äÿ âÿ ßÿÝÿÙÿÖÿÒÿŒÏÿŒÎYÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ)€y‹*}ÿ‹*{ÿŠ*xÿ‰*uÿ‰*rÿ‰+nÿ‰+kÿ‰,hÿ‰,dÿˆ+bcÿÿÿÿÿÿŽììÿ‡*^ÿŒÈÿŽ ëÿ èÿ æÿ ãÿ áÿßÿÜÿØÿÔÿÑÿŒÎÿŒÌÿ‹ËIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(}Š*|½Š*yÿŠ*vÿ‰*rû‰*oçŠ+lÿ‰,iÿ‰,fÿ‰,bÿˆ,`½ÿÿÿŽì'ŽìùŽÛÿ‡,QÿŒÆÿ èÿ åÿ âÿ àÿÞÿÚÿ×ÿÓÿŒÐÿŒÎÿŒÌÿŒÊÿŒÈIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ*yŠ)vó‰*sÿ‰+qÿ‰+n§‰+j׉,gÿ‰,cÿ‰,aÿˆ,^ûˆ,\ŽìíÿŒÄÿ‡,Qÿ‹¾ÿ äÿ âÿ ßÿÝÿÙÿÖÿÒÿŒÏÿŒÍÿŒËÿŒÉÿŒÆÿŒÃQÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰*tw‰*qÿ‰+nÿ‰+kûˆ+hKˆ+dç‰,aÿ‰,_ÿ‰,[ÿˆ,YIŽí½íÿŒ²ÿ‡,Qÿаÿ áÿßÿÜÿØÿÕÿÑÿŒÏÿŒÌÿŒÊÿŒÈÿŒÄÿÁÿŒ¿gÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+q ‰+oáŠ+lÿ‰,iÿ‰+f¯ˆ+b?ˆ+`ý‰,\ÿ‰-Yÿˆ,WyŽìíÿ‹©ÿ‡,QÿŠžÿÞÿÛÿ×ÿÔÿŒÐÿŒÎÿŒÌÿŒÊÿŒÇÿÃÿÁÿ¾ÿŒ½‰ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰+lg‰+jÿ‰,gÿˆ+cýˆ,a'ˆ,]‡‰-Zÿˆ-Wÿˆ,UŽìŽìá‹ ¤ÿ‡,Qÿ‰ ‡ÿÙÿÖÿÒÿŒÐÿŒÍÿŒËÿŒÉÿŒÆÿÂÿÀÿ¾ÿ¼ÿŒº·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+i ‰+hé‰,dÿ‰,aÿˆ+_‡ˆ-Z ˆ,XÛˆ-Uÿ‡-S±ÿÿÿŽìY‹©ÿ‡,Qÿˆ&kÿÕÿÒÿŒÏÿŒÌÿŒÊÿŒÈÿŒÅÿÁÿ¿ÿ½ÿ»ÿ¹ÿŒ¶ïŒ´ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+d‰‰,bÿ‰,`ÿˆ,\Ùÿÿÿˆ,VQˆ-Sÿ‡,Q·ÿÿÿŽí ‹±ý‡,Qÿ‡+RÿŒÉÿŒÎÿŒÌÿŒÊÿŒÇÿÄÿÁÿ¾ÿ¼ÿºÿ¸ÿ´ÿ±ÿ®?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+b+‰,aÿ‰,]ÿ‰-Zÿˆ-Xÿÿÿ‡,Qņ+Q±ÿÿÿŒêŒÀû‡,Qÿ‡,QÿŠ¡ÿŒËÿŒÉÿŒÆÿÃÿÀÿ¾ÿ¼ÿºÿ·ÿ³ÿ°ÿ­ÿ ª¡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,^׉,[ÿ‰-Xÿˆ,VQÿÿÿ†+QG†+Q›ÿÿÿŽì#Öÿ‡,Qÿ‡,Qÿˆ%qÿŒÈÿŒÅÿÂÿ¿ÿ½ÿ»ÿ¹ÿ¶ÿ²ÿ¯ÿ ¬ÿ!©ÿ!§û"¤'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,\‘‰-Yÿˆ-Vÿ‡,Tuÿÿÿÿÿÿ†+QCÿÿÿŽígŽëÿ‡+Vÿ‡,Qÿ‡+QÿŒ­ÿÁÿ¾ÿ½ÿ»ÿ¸ÿµÿ±ÿ®ÿ «ÿ!©ÿ"¦ÿŽ"£ÿ# ¿$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,YWˆ-Wÿˆ-Tÿ‡,R‹ÿÿÿÿÿÿÿÿÿÿÿÿŽì»íÿˆ&uÿ‡,Qÿ‡,Qÿ‰(mÿŒ½ÿ¼ÿºÿ·ÿ³ÿ°ÿ­ÿ ªÿ!¨ÿŽ"¥ÿŽ#¢ÿ#Ÿÿ$œÿŒ%™ƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,W'ˆ-Uÿ‡,Rÿ‡,QÿÿÿÿÿÿÿÿÿŽìŽìùíÿŠ!šÿ‡,Qÿ‡,Qÿˆ-Tÿ‹"’ÿ¹ÿ¶ÿ²ÿ¯ÿ ¬ÿ!ªÿ!§ÿŽ"¤ÿŽ#¡ÿ$žÿ$›ÿ%˜ÿŒ&–ÿŒ&’mÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÛÛOŒÙ}ŒØ¥ŒÖÃÔ×ÑߌÎÝŒË͋ɩŒÇmŒÄÿÿÿÿÿÿÿÿÿ†-Vˆ,Sý‡,Qÿ†,Q‰ÿÿÿÿÿÿÿÿÿŽíIíÿíÿŒÂÿ‡,Qÿ‡,Qÿˆ-Uÿ‰,\ÿŒ§ÿ±ÿ®ÿ «ÿ!©ÿ"¦ÿŽ"£ÿ# ÿ$ÿ%šÿ%˜ÿ&•ÿ&’ÿŒ'ÿŒ'ŒƒŠ(ŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒØ ŒÚSŒÜ›ŒÝÛÞÿÞÿÞÿÜÿÚÿØÿÕÿÒÿŒÎÿŒËÿŒÈÿÅ÷ŒÁyÿÿÿÿÿÿÿÿÿ‡,Që‡,Qÿ‡,PqÿÿÿÿÿÿÿÿÿŽìkíÿíÿŽèÿ‡*Xÿ‡,Rÿˆ-Uÿ‰-Yÿ‰*kÿ ©ÿ ªÿ!¨ÿŽ"¥ÿŽ#¢ÿ#Ÿÿ$œÿ%™ÿ%—ÿ&”ÿ&‘ÿŒ'ŽÿŒ'ŒÿŒ(Šÿ‹(‡¹‹(„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÑ ŒÔ[Œ×±ŒÚ÷Ýÿ àÿ âÿ ãÿ ãÿ ãÿ áÿßÿÜÿÙÿÕÿÑÿŒÎÿŒÊÿŒÇÿÃÿŒ¿yÿÿÿÿÿÿ‡,Q߇,Qÿ†+QGÿÿÿÿÿÿÿÿÿŽìSíÿíÿíÿ‰$ˆÿ‡,Rÿˆ-Vÿ‰-Yÿ‰,^ÿŠ)uÿ"¥ÿŽ"¤ÿŽ#¡ÿ$žÿ$›ÿ%˜ÿ&–ÿ&“ÿ'ÿŒ'ÿŒ'‹ÿŒ(‰ÿ‹(†ÿ‹)ƒÿ‹)óŠ)~Š*|ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹Ê7ŒÍ›ŒÑñÕÿÙÿÞÿ áÿ äÿ æÿ æÿ çÿ æÿ åÿ ãÿ áÿÝÿÙÿÕÿÐÿŒÌÿŒÉÿŒÅÿŒÀñŒ½ ÿÿÿ†,Qã†+Pû†+QÿÿÿÿÿÿÿÿÿŽí ŽíáíÿíÿŒÃÿ‡,Rÿˆ-Vÿ‰-Zÿ‰,^ÿ‰,bÿŠ)xÿ#žÿ$ÿ$šÿ%˜ÿ&•ÿ&’ÿŒ'ÿŒ'ÿŒ(‹ÿŒ(ˆÿ‹(…ÿ‹)ƒÿ‹)€ÿ‹*}ÿ‹*{ÿŠ)yï‰)v‘‰*s3ÿÿÿ‹ÀŒÄ]ŒÈËŒËÿŒÏÿÓÿØÿÝÿ áÿ äÿ çÿ èÿŽ êÿŽ êÿ êÿ èÿ æÿ äÿ àÿÜÿ×ÿÓÿŒÎÿŒÊÿŒÇÿÂÿŒ¿-ÿÿÿ†+Qõ‡+Q·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì;Žì÷íÿŽìÿ‰)kÿˆ-Vÿ‰-Zÿ‰,_ÿ‰,bÿ‰,gÿŠ*uÿŒ%”ÿ%—ÿ&”ÿ&‘ÿŒ'ŽÿŒ'ŒÿŒ(Šÿ‹(‡ÿ‹(„ÿ‹)‚ÿ‹)ÿ‹*}ÿŠ*{ÿŠ*xÿŠ*vÿ‰*sÿ‰*tÿ‹"–ጿãÄÿŒÉÿŒÌÿÐÿÕÿÚÿ ßÿ äÿ çÿ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ éÿ æÿ ãÿßÿÚÿÕÿÐÿŒÌÿŒÈÿÄÿŒÀ+†+Q‡,Qÿ†+QOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìEŽìóíÿŒ²ÿˆ-Wÿ‰-[ÿ‰,_ÿ‰,bÿ‰,gÿ‰+kÿ‰*rÿ‹(†ÿŒ'ÿŒ'ÿŒ'‹ÿŒ(‰ÿ‹(†ÿ‹)ƒÿ‹)ÿ‹)~ÿ‹*|ÿŠ*zÿŠ*wÿ‰*uÿŠ)zÿ‹$“ÿŒ³ÿ¼ÿÀÿÅÿŒÉÿŒÍÿÒÿ×ÿÜÿ áÿ åÿ èÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ èÿ åÿ áÿÛÿÖÿÑÿŒÍÿŒÉÿŒÅóŒÀ†,PM†+QÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí5ŽíçŽêÿ‰)mÿ‰-[ÿ‰,_ÿ‰,cÿ‰,gÿŠ+kÿ‰+pÿ‰*tÿŠ)zÿ‹(„ÿ‹(‡ÿ‹(…ÿ‹)ƒÿ‹)€ÿ‹*~ÿ‹*{ÿŠ)yÿŠ(~ÿ‹&‰ÿŒ#›ÿ­ÿ´ÿ¹ÿ¼ÿÀÿŒÆÿŒÊÿŒÎÿÓÿ×ÿÝÿ âÿ æÿŽ êÿŽ ìÿŽ ìÿŽìÿìÿŽìÿŽ ìÿŽ ìÿ éÿ æÿ âÿÝÿ×ÿÒÿŒÍÿŒÊÿŒÆ¥ÿÿÿ†+Q‹†+Q+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì!Žíë½ÿ‰-[ÿ‰,_ÿ‰,cÿ‰,gÿŠ+kÿ‰+pÿ‰*tÿŠ*xÿ‹*|ÿ‹)€ÿ‹)„ÿ‹(‡ÿŒ(‰ÿŒ'ŒÿŒ&‘ÿŒ$™ÿ# ÿŽ"¥ÿ!ªÿ®ÿ´ÿ¹ÿ¼ÿÁÿŒÆÿŒÊÿŒÎÿÓÿØÿÞÿ ãÿ æÿŽ êÿŽ ìÿŽ ìÿìÿíÿìÿŽ ìÿŽ ìÿŽ êÿ æÿ ãÿÝÿØÿÓÿŒÎÿŒÊýŒÈ1†,Q†+Q?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì{íÿŠ&†ÿ‰,_ÿ‰,bÿ‰,gÿŠ+kÿ‰+pÿ‰*tÿŠ*xÿ‹*|ÿ‹)ÿ‹)„ÿŒ(‰ÿŒ'ÿ&‘ÿ&–ÿ$›ÿ# ÿŽ"¥ÿ!©ÿ­ÿ´ÿ¹ÿ¼ÿÀÿŒÆÿŒÊÿŒÎÿÓÿ×ÿÝÿ âÿ æÿ“ëߎ ìûŽ ìÿŽìÿìÿŽìÿŽ ìÿŽ ìÿŽ êÿ æÿ âÿÝÿ×ÿÓÿŒÍÿ‹ÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì=íÿŽÝÿ‰*iÿ‰,bÿ‰,gÿ‰+kÿ‰+pÿ‰*sÿŠ*wÿ‹*|ÿ‹)ÿ‹)„ÿŒ'ŠÿŽÑÿŽáÿŽÝÿŽÙÿŽÖÿŽÓÿÏÿÉÿÄÿÁÿ¼ÿÀÿÅÿŒÉÿŒÍÿÒÿ×ÿÜÿ áÿåmÿÿÿ•íMŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ èÿ åÿ áÿÜÿ×ÿÒÿŒÍß‹ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì)íÿíÿÁÿ‰+bÿ‰,gÿ‰+jÿ‰+oÿ‰*sÿŠ*wÿ‹*{ÿ‹)ÿ‹)ƒÿ¶ÿíÿíÿíÿíÿìÿŽ ìÿŽ éÿŽáÿØÿÎÿÀÿ¿ÿÄÿŒÉÿŒÌÿÐÿÕÿÚÿ ßÿ—"åQÿÿÿ¢7î)Ž ëÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ éÿ çÿ äÿ ßÿÚÿÕÿŒÐõŒÍ1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí!íÿíÿíÿ‹!¦ÿ‰,fÿ‰+jÿ‰+oÿ‰*sÿŠ*wÿ‹*{ÿ‹)~ÿ‹'ŠÿŽçÿíÿíÿíÿíÿìÿŽìÿŽ ëÿŽ äÿÛÿÑÿÇÿ¾ÿÂÿŒÇÿŒËÿŒÏÿÓÿØÿÝÿáßåƒçÓ éÿŽ êÿŽ ëÿŽ êÿ éÿ çÿ åÿ áÿÝÿØÿŒÔùŒÐIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽííÿíÿíÿŽìÿ‹#—ÿ‰+iÿ‰+nÿ‰*rÿŠ*vÿ‹*zÿ‹*}ÿŒ!ªÿíÿíÿíÿíÿíÿíÿŽìÿŽ ëÿŽ æÿŽÞÿÔÿËÿÀÿÀÿŒÆÿŒÉÿŒÍÿÑÿÕÿÙÿÞÿ áÿ äÿ æÿ çÿ çÿ çÿ æÿ äÿ âÿÞÿÚÿŒÖ÷ŒÓMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì ŽìýíÿíÿíÿŽëÿ‹$–ÿŠ+mÿ‰*qÿŠ*uÿ‹*yÿ‹*}ÿŒ ²ÿíÿíÿíÿíÿíÿíÿìÿŽ ìÿŽ èÿŽàÿÖÿÍÿÅÿ¿ÿÃÿŒÈÿŒËÿŒÎÿÒÿÖÿÙÿÝÿ àÿ âÿ ãÿ äÿ ãÿ âÿ àÿÝÿÚÿŒÖíŒÕ?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìËíÿíÿíÿíÿŽëÿ‹#Ÿÿ‰+pÿ‰*tÿŠ*xÿ‹*|ÿ‹'‹ÿŽáÿíÿíÿíÿíÿíÿìÿŽ ìÿŽ êÿáÿÍÿÀÿ»ÿ½ÿÀÿŒÅÿŒÉÿŒËÿŒÏÿÒÿÖÿØÿÛÿÝÿÞÿßÿÞÿÝÿÛÿÙÿŒÖÓŒÕ%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìKŽìýíÿíÿíÿíÿìÿŒ´ÿ‰*uÿŠ*wÿ‹*{ÿ‹)~ÿ‹'ŽÿÉÿŽìÿíÿíÿíÿŽæÿŽÐÿ޼ÿ­ÿ®ÿ³ÿ¸ÿ»ÿ¾ÿÂÿŒÆÿŒÉÿŒÌÿŒÎÿÑÿÔÿÖÿØÿÙÿÙÿÙÿØÿŒÖÿŒÕ›ŒÔ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìMŽìÝíÿíÿíÿíÿíÿÏÿŠ'„ÿ‹*zÿ‹*}ÿ‹)ÿ‹(†ÿŒ%–ÿ»ÿŽÃÿ"«ÿ$œÿ#ŸÿŽ"¤ÿ!¨ÿ ¬ÿ°ÿµÿ¹ÿ¼ÿ¿ÿÃÿŒÆÿŒÉÿŒËÿŒÍÿÏÿÑÿÓÿÔÿÔÿÔÿŒÔãŒÓMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽì9ŽìqŽ퓎쯎íííÿŽæÿŒ!ªÿ‹)~ÿ‹)€ÿ‹(„ÿ‹(‰ÿŒ'ŒÿŒ'ÿ&•ÿ%™ÿ$ÿŽ#¢ÿŽ"¦ÿ!ªÿ­ÿ²ÿ·ÿºÿ¼ÿ¿ÿÂÿŒÆÿŒÈÿŒÊÿŒÌÿŒÍÿŒÎÿÏÿŒÏ÷ŒЇŒÐ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽìmŽìõíÿŽÙÿŒ#¡ÿ‹(ƒÿ‹(‡ÿŒ(‹ÿŒ'Žÿ&’ÿ%—ÿ$šÿ#ŸÿŽ"¤ÿ!§ÿ «ÿ®ÿ³ÿ·ÿºÿ¼ÿ¿ÿÁÿÄÿŒÇÿŒÈÿŒÉÿ‹ÊõŒÌ“ŒÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì3ŽìëíÿíÿŽÛÿŒ!°ÿŒ&ÿŒ'ŒÿŒ'ÿ&”ÿ%˜ÿ$œÿ#¡ÿŽ"¥ÿ!¨ÿ «ÿ¯ÿ³ÿ·ÿºÿ¼ÿ¾ÿÀÿÂÿŒÄ׌Çu‹ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì5ŽìõíÿíÿíÿŽêÿŽÏÿ µÿ$ ÿ%–ÿ%™ÿ$ÿ#¢ÿŽ"¥ÿ!¨ÿ «ÿ®ÿ²ÿ¶ÿŒ¹óŒ»»Œ½yŒ¿/ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìOŽìýíÿíÿíÿíÿíÿíÿŽèÿŽÛÿŽÑÿŽÌÿŽ·£Ž!¦w!©sŒ ¬c¯IŒ³#Œ·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìcŽìýíÿíÿíÿíÿíÿíÿíÿŽíõŽìiÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìCŽìÑíÿíÿíÿíÿŽìëŽ쓎ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽí;Žì?Ží)ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ(€ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿê Ží)ŽìAŽìWŽíiŽíuììŽ ìŽ ìŽ ì ìuŽ ëi ëW ìA ë' êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì Ží9ŽìkŽì—ŽíÁŽíçíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ éý ç㌠绌 å ã_ â)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽìAŽì…ŽíÅŽìùíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ èÿ çÿ æÿ åÿ ãÿ âÿ áÿŒ àíŒ߯ŒÜkŒÛ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì]Ž쫎íóíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ éÿ èÿ çÿ æÿ äÿ ãÿ áÿ àÿ àÿÞÿÝÿÛÿÙÿŒ×ÓŒÕ}ŒÓ'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽíQŽì­Žì÷íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ çÿ çÿ åÿ äÿ ãÿ áÿ àÿßÿÞÿÜÿÚÿÙÿ×ÿÕÿÓÿÒÿŒÐÅŒÎc‹Ì ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì!Ž쇎ìéíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ èÿ çÿ æÿ åÿ ãÿ âÿ áÿ àÿßÿÝÿÜÿÚÿØÿÖÿÔÿÓÿÑÿÐÿŒÎÿŒÍÿ‹ÌíŒË…ŠÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì;Žì­ŽíûíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ æÿ äÿ ãÿ áÿ àÿ àÿÞÿÝÿÛÿÙÿØÿÖÿÔÿÒÿÑÿÏÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿ‹É÷ŒÇŒÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìAŽì¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ çÿ çÿ åÿ äÿ ãÿ áÿ àÿßÿÞÿÜÿÛÿÙÿ×ÿÕÿÓÿÒÿÐÿŒÏÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÈÿŒÆÿÅÿŒÃ÷ŒƒŒ¿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí7Žì¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ èÿ çÿ æÿ åÿ ãÿ âÿ áÿ àÿ àÿßÿÝÿÜÿÙÿØÿÖÿÔÿÒÿÐÿÎÿŒÌÿŒËÿŒÊÿŒÉÿŒÈÿŒÇÿŒÆÿÅÿÃÿÁÿÀÿŒ¿ç½[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽ쩎ìýíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ æÿ äÿ ãÿ âÿ âÿ ãÿ âÿ àÿßÿÜÿÚÿØÿÖÿÕÿÒÿÐÿÏÿŒÍÿŒËÿŒÊÿŒÉÿŒÈÿÆÿÃÿÁÿÀÿ¿ÿ¿ÿ¾ÿ¾ÿ½ÿŒ¼¹Œ»!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì{ŽìõíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ çÿ çÿ åÿ äÿ äÿ åÿ æÿ åÿ ãÿ áÿßÿÝÿÛÿÙÿ×ÿÕÿÓÿÑÿÏÿŒÍÿŒÌÿŒÊÿŒÉÿŒÈÿÆÿÄÿÂÿÀÿ¾ÿ½ÿ¼ÿ»ÿ»ÿ»ÿºÿŒ¹óŒ¸cÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí9ŽíÕíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ èÿ çÿ æÿ åÿ æÿ çÿ çÿ æÿ åÿ äÿ âÿ àÿÞÿÜÿÙÿ×ÿÖÿÔÿÒÿÐÿÎÿŒÌÿŒËÿŒÊÿŒÈÿŒÇÿÅÿÃÿÀÿ¿ÿ½ÿ¼ÿ»ÿ¹ÿ¸ÿ¶ÿ¶ÿ·ÿ¶ÿŒ³«Œ°ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽ틎íûíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ æÿ çÿ êÿŽ éÿ èÿ çÿ æÿ äÿ ãÿ àÿßÿÜÿÚÿØÿÖÿÕÿÒÿÐÿÎÿŒÍÿŒËÿŒÊÿŒÉÿŒÇÿÅÿÃÿÁÿ¿ÿ¾ÿ½ÿ»ÿºÿ¹ÿ·ÿµÿ²ÿްÿ°ÿ±ÿ¯ÛŒ­-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí+ŽìÑíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ èÿ çÿ èÿ êÿŽ ëÿŽ êÿ èÿ çÿ æÿ äÿ ãÿ áÿßÿÝÿÛÿÙÿ×ÿÕÿÓÿÑÿÏÿŒÍÿŒÌÿŒÊÿŒÉÿŒÈÿÆÿÄÿÂÿÀÿ¾ÿ½ÿ¼ÿºÿ¹ÿ¸ÿ¶ÿ³ÿ±ÿ®ÿ ¬ÿ «ÿ ¬ÿŒ ¬óŒ «OÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì_ŽìõíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ èÿ çÿ çÿ êÿŽ ìÿŽ ìÿŽ êÿŽ éÿ çÿ æÿ åÿ äÿ âÿ àÿÞÿÜÿÙÿ×ÿÕÿÔÿÑÿÏÿÎÿŒÌÿŒËÿŒÊÿŒÈÿŒÇÿÅÿÃÿÀÿ¿ÿ½ÿ¼ÿ»ÿ¹ÿ¸ÿ¶ÿ´ÿ±ÿ¯ÿ­ÿ «ÿ!ªÿ!©ÿ!§ÿ!©û!¨qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì•íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ éÿŽ ëÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ åÿ äÿ âÿ àÿÞÿÜÿÚÿØÿÖÿÕÿÒÿÐÿÎÿŒÍÿŒËÿŒÊÿŒÉÿŒÇÿÅÿÃÿÁÿ¿ÿ¾ÿ½ÿ»ÿºÿ¹ÿ·ÿµÿ²ÿްÿ®ÿ ¬ÿ ªÿ!©ÿŽ!§ÿŽ"¦ÿŽ"¤ÿŽ"¤ÿŽ"¥‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽí¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ èÿ èÿ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ èÿ çÿ æÿ äÿ ãÿ áÿßÿÝÿÛÿØÿÖÿÕÿÓÿÑÿÏÿŒÍÿŒÌÿŒÊÿŒÉÿŒÈÿÆÿÄÿÂÿÀÿ¾ÿ½ÿ»ÿºÿ¹ÿ·ÿ¶ÿ³ÿ±ÿ®ÿ ¬ÿ «ÿ!ªÿ!¨ÿŽ"¦ÿŽ"¥ÿŽ#£ÿŽ#¡ÿ# ÿ"¡—ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí#ŽìÙíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ èÿ çÿ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ èÿ çÿ æÿ åÿ äÿ âÿ àÿÞÿÜÿÙÿ×ÿÕÿŒÔûŒÑߌÐÅίŒÌŸ‹Ë“‹Ê‹ÈŒÇŒÅŸéŒÀ»Œ¿Ó½ï¼ÿ»ÿ¹ÿ¸ÿ¶ÿ´ÿ±ÿ¯ÿ­ÿ «ÿ!ªÿ!¨ÿŽ"§ÿŽ"¥ÿŽ"£ÿŽ#¢ÿ#Ÿÿ$ÿ$œÿŒ#œ—ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì3ŽíéíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ êÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ åÿ äÿ âÿ àÿÞÿÜÿŒÚïŒØ­ŒÖmŒÕ5ŒÖ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹»)ºc¹“·ÅŒµó²ÿްÿ­ÿ ¬ÿ ªÿ!©ÿŽ!§ÿŽ"¦ÿŽ"¤ÿŽ#¢ÿŽ# ÿ$žÿ$œÿ%šÿ%™ÿŒ$™“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì9ŽìñíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ èÿ çÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ èÿ çÿ æÿ äÿ ãÿ áÿŒßïŒÝ™ŒÛCŠÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÀ Œ¿SŒ½“Œ½ÉŒ»óºÿ¹ÿ·ÿµÿ³ÿ°ÿ®ÿ ¬ÿ «ÿ!ªÿ!¨ÿŽ"¦ÿŽ"¥ÿŽ#£ÿŽ#¡ÿ$žÿ$ÿ%šÿ%™ÿ&—ÿ%–ÿŒ%–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìCŽìõíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ èÿ çý èçŽëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ èÿ çÿ æÿ åÿ ãÿŒ âËŒ à_‹Þ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÄEŒ«ŒÀõ¾ÿ½ÿ¼ÿ»ÿ¹ÿ¸ÿ¶ÿ´ÿ±ÿ¯ÿ­ÿ «ÿ!ªÿ!¨ÿŽ"¦ÿŽ"¥ÿŽ"£ÿŽ#¡ÿ#Ÿÿ$ÿ$›ÿ%™ÿ%˜ÿ&–ÿ&”ÿ&’ÿŒ&’eÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì7ŽìñíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èý ç§ŽêwŽìõŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ åÿŒ ä·Œ ã?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÆUŒÅÓÃÿÁÿ¿ÿ¾ÿ¼ÿ»ÿºÿ¸ÿ·ÿ´ÿ²ÿްÿ­ÿ ¬ÿ ªÿ!©ÿŽ!§ÿŽ"¦ÿŽ"¤ÿŽ#¢ÿŽ# ÿ$žÿ$œÿ%šÿ%˜ÿ&–ÿ&•ÿ&“ÿ'‘ÿ'ùŒ'ŽCÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí-ŽìïíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ èÁŒ æ3íOìùŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿŒ æÁŒ ä9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹È/ŒÈÅÆÿÄÿÂÿÀÿ¾ÿ½ÿ»ÿºÿ¹ÿ·ÿµÿ³ÿ°ÿ®ÿ ¬ÿ «ÿ!©ÿŽ!§ÿŽ"¦ÿŽ"¤ÿŽ#£ÿŽ#¡ÿ$žÿ$ÿ%šÿ%™ÿ&—ÿ&•ÿ&”ÿ'’ÿ'ÿŒ'Žÿ‹'Œí‹'‹#ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽíåíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ éë è]ÿÿÿŽìAìùŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ èÿ çÝŒæQÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÊ‹ÉŒÈûÆÿÄÿÂÿÀÿ¾ÿ½ÿ¼ÿºÿ¹ÿ¸ÿ¶ÿ³ÿ±ÿ¯ÿ­ÿ «ÿ!ªÿ!¨ÿŽ"¦ÿŽ"¥ÿŽ"£ÿŽ#¡ÿ#Ÿÿ$ÿ$›ÿ%™ÿ%˜ÿ&–ÿ&”ÿ&’ÿ'ÿ'ŽÿŒ'ÿŒ(Œÿ‹'ŠÑ'‰ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿî ŽìÑíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ è± èÿÿÿí+ŽìñìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ é÷ è ç ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÊ‹ÊÁŒÉÿŒÇÿÅÿÃÿÁÿ¿ÿ¾ÿ¼ÿ»ÿºÿ¸ÿ·ÿ´ÿ²ÿޝÿ­ÿ «ÿ!ªÿ!©ÿŽ!§ÿŽ"¦ÿŽ"¤ÿŽ#¢ÿŽ# ÿ$žÿ$œÿ%šÿ%˜ÿ&–ÿ&•ÿ&“ÿ'‘ÿ'ÿŒ'ÿŒ(ŒÿŒ(‹ÿŒ(‰ÿ‹(ˆŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒîŽì³íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ éù èmÿÿÿÿÿÿíŽìÝìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ éÇ è)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹Ë)‹ÊáŒÉÿŒÈÿÆÿÄÿÁÿ¿ÿ¾ÿ½ÿ»ÿºÿ¹ÿ·ÿµÿ²ÿ°ÿ®ÿ ¬ÿ «ÿ!©ÿŽ!§ÿŽ"¦ÿŽ"¤ÿŽ#¢ÿŽ# ÿ$žÿ$œÿ%šÿ%™ÿ&—ÿ&•ÿ&”ÿ'‘ÿ'ÿŒ'ŽÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ˆÿ‹(†ÿŠ(…]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ éé è;ÿÿÿÿÿÿÿÿÿŽì±ìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ë÷ ëwŒêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÊ‹Ê»‹ÉáŒÈõÆÿÄÿÂÿÀÿ¾ÿ½ÿ¼ÿºÿ¹ÿ¸ÿ¶ÿ³ÿ±ÿ¯ÿ­ÿ «ÿ!ªÿ!¨ÿŽ"¦ÿŽ"¥ÿŽ"£ÿŽ#¡ÿ#Ÿñ$ÿ$›ÿ%™ÿ%—ÿ&–ÿ&”ÿ'’ÿ'ÿŒ'ŽÿŒ'ÿŒ(ŒÿŒ(ŠÿŒ(‰ÿ‹(‡ÿ‹)…ÿ‹(ƒñŠ)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíGŽìýíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÙ è!ÿÿÿÿÿÿÿÿÿŽìcìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ ëÛ ë1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÅŒÃ5ŒÁ_Œ¿Œ¾ÃŒ¼÷»ÿºÿ¸ÿ·ÿ´ÿ²ÿޝÿ­ÿ «ÿ!ªÿ!©ÿŽ"§ÿŽ"¥ÿŽ"¤ÿŽ#¢ÿ# ÿ#óŒ$›“Œ$šOŒ%˜yŒ%—¿%•ù&“ÿ'‘ÿ'ÿŒ'ÿŒ(ŒÿŒ(‹ÿŒ(‰ÿŒ(‡ÿ‹)†ÿ‹)„ÿ‹)‚ÿ‹)€¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽìéíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ éÿ èÓŒ èÿÿÿÿÿÿÿÿÿìŽìïìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ ë© ì ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹¼ŒºAŒ¹‡Œ·Óµÿ²ÿ°ÿ®ÿ ¬ÿ «ÿ!©ÿŽ!§ÿŽ"¦ÿŽ"¤ÿŽ#¢ÿŽ# ÿ$žÿ$œÿ%šÿŒ%˜ñŒ%—yŒ&—Œ%”Œ&‘iŒ&ÍŒ'ŽÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ˆÿ‹(†ÿ‹)…ÿ‹)‚ÿ‹)ÿ‹*ÿŠ)}[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìµíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ çÕŒçÿÿÿÿÿÿÿÿÿÿÿÿŽí•ìÿŽìÿŽ ìÿŽ ìÿŽ ìÿ ìû ëqÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ³)±®ß ¬ÿ «ÿ!ªÿ!¨ÿŽ"¦ÿŽ"¥ÿŽ"£ÿŽ#¡ÿ#Ÿÿ$ÿ$›ÿ%™ÿ%—ÿ&–ÿŒ&”ÙŒ&‘Aÿÿÿÿÿÿ‹(9‹'Œ«Œ(ŠýŒ(ˆÿ‹(‡ÿ‹)…ÿ‹)ƒÿ‹)ÿ‹)€ÿ‹*~ÿ‹*|ç‰*z ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìeíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çåŒæÿÿÿÿÿÿÿÿÿÿÿÿŽíìùìÿŽ ìÿŽ ìÿŽ ìÿ ëï ëEÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ"®Œ «GŒ!ª±!©ýŽ"§ÿŽ"¥ÿŽ"£ÿŽ#¢ÿ#Ÿÿ$ÿ$›ÿ%šÿ%˜ÿ&–ÿ&•ÿ&“ÿŒ'‘ýŒ&Ž“‹( ÿÿÿÿÿÿŒ(‰+‹(‡«‹(†ý‹)„ÿ‹)‚ÿ‹)€ÿ‹*~ÿ‹*}ÿ‹*|ÿŠ){ƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíŽìñíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ éÿ èÿ ç÷Œ ç3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì‹ìÿŽìÿŽ ìÿŽ ìÿ ëß ì)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!§'!¦›Ž"¤ùŽ#¢ÿŽ# ÿ$žÿ$œÿ%šÿ%˜ÿ&—ÿ&•ÿ&“ÿ'‘ÿ'ÿŒ'ÿ‹'ŒÓŒ(Œ'ÿÿÿÿÿÿÿÿÿŠ(…7‹(‚Ç‹)ÿ‹*ÿ‹*}ÿ‹*|ÿ‹*{ÿŠ)yõŠ*xÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì«íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ çÿ æÿŒ æaÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìëŽìÿŽ ìÿŽ ìÿ ëÍ ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ"£"¡Ÿ#Ÿû$ÿ$›ÿ%™ÿ%—ÿ&–ÿ&”ÿ'’ÿ'ÿŒ'ŽÿŒ'ÿŒ(Œÿ‹'Šï‹(‰IÿÿÿÿÿÿÿÿÿÿÿÿŠ)aŠ)}ë‹*|ÿ‹*|ÿ‹*zÿ‹*xÿŠ)wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìGíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ èÿ çÿ æÿŒ å§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽëCìÿŽ ìÿŽ ìÿ ìÁ‹ íÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ#-Œ$›»%™ÿ%˜ÿ&–ÿ&”ÿ&“ÿ'ÿ'ÿŒ'ÿŒ(ŒÿŒ(‹ÿŒ(‰ÿŒ(‡ûŠ(†eÿÿÿÿÿÿÿÿÿÿÿÿ‹){‹*|¥‹*{ÿ‹*yÿŠ*wÿŠ)võŠ*sÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽêŽíÕíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ æÿŒ äç‹ ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ뇎ìÿŽ ìÿŽ ì½ ì ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ%˜UŒ%—å&•ÿ&“ÿ'‘ÿ'ÿŒ'ÿŒ(ŒÿŒ(‹ÿŒ(‰ÿŒ(ˆÿ‹(†ÿ‹)„ÿ‹(‚yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹*yQŠ)xëŠ*vÿŠ*uÿ‰*s{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìgíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ çÿ çÿ åÿ äÿ ã[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ뽎 ìÿŽ ì½ ì ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ%•Œ&”›Œ'’ý'ÿŒ'ŽÿŒ'ÿŒ(ŒÿŒ(ŠÿŒ(ˆÿ‹(‡ÿ‹)…ÿ‹)ƒÿ‹)ÿŠ)€yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ)w‰)u¹‰*tÿˆ*rã†,uÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí ŽìçíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ èÿ çÿ æÿ åÿ ãÿŒ âÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ ëá ìÉŽ ì ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ'MŒ&ŽéŒ'ÿŒ(ŒÿŒ(‹ÿŒ(‰ÿ‹(‡ÿ‹)†ÿ‹)„ÿ‹)‚ÿ‹)€ÿ‹*~ÿŠ)|kÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ*sy‰*qû‰+pOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìqíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ æÿ äÿ ãÿ áÿŒ áAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ëÏŒ ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ'Œ‹'Œ½Œ(‹ÿŒ(‰ÿŒ(ˆÿ‹(†ÿ‹)„ÿ‹)‚ÿ‹)€ÿ‹*ÿ‹*}ÿ‹)|ûŠ){Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰*p?‰+n•ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìåíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ çÿ çÿ åÿ äÿ ãÿ áÿŒ àÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ë%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"¢a# §#žµ$¿$šµ%™©Œ&—‘Œ%•qŒ&“GŒ&ÿÿÿÿÿÿÿÿÿˆ*ˆ‹(Ї‹'ˆý‹(‡ÿ‹)…ÿ‹)ƒÿ‹)ÿ‹)ÿ‹*}ÿ‹*|ÿ‹*{ÿŠ)zóŠ)x-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+nÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìcíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ èÿ çÿ æÿ åÿ ãÿ âÿ áÿ àÿŒ ßQÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ#¡ #Ÿ—$ÿ$›ÿ%™ÿ%˜ÿ&–ÿ&”ÿ&’ÿŒ'ýŒ&ŽÓŒ'‹‹(‹9ÿÿÿÿÿÿ‹(‡Y‹)…÷‹)„ÿ‹)‚ÿ‹)€ÿ‹*~ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*yÿŠ)wÛ‰)u ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìÓíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ æÿ äÿ ãÿ âÿ àÿ àÿŒßåŠßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ$œWŒ%šó%˜ÿ&–ÿ&•ÿ&“ÿ'‘ÿ'ÿŒ'ÿŒ(ŒÿŒ(‹ÿ‹'‰Ù‹(‡qŠ*† Š(„;Š(‚í‹)€ÿ‹*ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*yÿŠ*xÿŠ*vÿ‰*u¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí?íÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ çÿ çÿ æÿ äÿ ãÿ áÿ àÿßÿÞÿŒ݉ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ$™-Œ%—ß&•ÿ&”ÿ'’ÿ'ÿŒ'ŽÿŒ(ŒÿŒ(ŒÿŒ(ŠÿŒ(ˆÿ‹(‡ÿ‹)…ë‹)‚uŠ(1‹)ã‹*}ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*xÿŠ*vÿŠ*uÿ‰*sÿˆ*rUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽߣíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ èÿ çÿ æÿ åÿ äÿ âÿ áÿ àÿßÿÝÿÜÿŒÛ3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ&–Œ&”Ë&’ÿ'ÿ'ŽÿŒ'ÿŒ(ŒÿŒ(ŠÿŒ(‰ÿ‹(‡ÿ‹)…ÿ‹)ƒÿ‹)ÿ‹)€ÛŠ)~e‹*}ã‹*|ÿ‹*{ÿ‹*yÿŠ*wÿŠ*vÿ‰*tÿ‰*rÿˆ+që‰+pÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,QÆ÷íÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ æÿ äÿ ãÿ âÿ àÿ àÿßÿÝÿÛÿÙåÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$‘ &‘½'ÿŒ'ÿŒ(ŒÿŒ(‹ÿŒ(‰ÿŒ(ˆÿ‹(†ÿ‹)„ÿ‹)‚ÿ‹)€ÿ‹*ÿŠ)}ý‹)|±‹*{é‹*yÿŠ*wÿŠ*vÿ‰*tÿ‰*sÿ‰+rÿ‰+pÿ‰*o›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,QyŽÞÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ èÿ çÿ æÿ äÿ ãÿ áÿ àÿßÿÞÿÜÿÛÿÙÿŒØŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ& Œ'޽Œ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ˆÿ‹(†ÿ‹)…ÿ‹)ƒÿ‹)ÿ‹)ÿ‹*}ÿ‹*|ÿ‹*{ÿŠ)yå‹*xÿŠ*vÿŠ*uÿ‰*sÿ‰+rÿ‰+qÿŠ+oÿŠ+mý‰+l1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡*[ÝìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ èÿ çÿ æÿ åÿ äÿ âÿ áÿ àÿßÿÞÿÜÿÚÿØÿ×ÿŒÕgÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ( Œ(Œ½Œ(ŠÿŒ(‰ÿ‹(‡ÿ‹)…ÿ‹)ƒÿ‹)ÿ‹)€ÿ‹*~ÿ‹*|ÿ‹*|ÿ‹*zÿ‹*yÿŠ*wÿŠ*vÿ‰*tÿ‰*rÿ‰+qÿ‰+oÿŠ+nÿŠ+lÿ‰,j¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ!—qˆ&nÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ æÿ äÿ ãÿ âÿ àÿ àÿßÿÝÿÛÿÙÿØÿÖÿÔÿŒÓ1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(Š‹'‰ÍŒ(ˆÿ‹(†ÿ‹)„ÿ‹)‚ÿ‹)€ÿ‹*ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*yÿŠ*wÿŠ*vÿ‰*tÿ‰*sÿ‰+qÿ‰+pÿŠ+nÿŠ+mÿŠ+kÿ‰,iÿˆ+h=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíUŠ#û‰#}ÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ èÿ çÿ æÿ äÿ ãÿ áÿ àÿßÿÞÿÜÿÛÿÙÿ×ÿÕÿÔÿÒûŠÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ'‡‹(†á‹)…ÿ‹)‚ÿ‹)ÿ‹*ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*xÿŠ*vÿŠ*uÿ‰*sÿ‰+rÿ‰+qÿŠ+oÿŠ+mÿŠ+kÿ‰,iÿ‰,hÿˆ,gµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì;Žì÷‡)`ÿ‰ ‹ÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ èÿ çÿ æÿ åÿ äÿ âÿ áÿ àÿßÿÞÿÜÿÚÿØÿ×ÿÕÿÓÿÒÿŒÐÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(…/‹(ƒó‹)ÿ‹)€ÿ‹*~ÿ‹*|ÿ‹*|ÿ‹*zÿ‹*xÿŠ*wÿŠ*uÿ‰*tÿ‰*rÿ‰+qÿ‰+oÿŠ+nÿŠ+lÿŠ+jÿ‰,iÿ‰,hÿˆ+eýˆ+c)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì!ŽíéÍÿ‡,QÿŠ–ÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ æÿ åÿ ãÿ âÿ àÿ àÿßÿÝÿÛÿÙÿØÿÖÿÔÿÒÿÑÿÐÿŒνÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(‚U‹)€ÿ‹*~ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*yÿŠ*wÿŠ*vÿ‰*tÿ‰*sÿ‰+qÿ‰+pÿŠ+nÿŠ+mÿŠ+jÿ‰,iÿ‰,hÿ‰,fÿ‰,dÿˆ,c“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí ŽìÑíÿ‹ £ÿ‡,QÿŠžÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ èÿ çÿ æÿ äÿ ãÿ áÿ àÿßÿÞÿÜÿÛÿÙÿ×ÿÕÿÔÿÒÿÑÿÏÿŒÎÿ‹ͧÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ)‘‹*}ÿ‹*|ÿ‹*{ÿ‹*yÿ‹*xÿŠ*vÿŠ*uÿ‰*sÿ‰+rÿ‰+qÿŠ+oÿŠ+mÿŠ+kÿ‰,iÿ‰,hÿ‰,gÿ‰,eÿ‰,cÿˆ+bï‰-bÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì¡íÿíÿ‰%|ÿ‡,QÿŠ¢ÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ èÿ çÿ æÿ åÿ äÿ âÿ áÿ àÿßÿÞÿÜÿÚÿØÿ×ÿÕÿÓÿÒÿÐÿŒÏÿŒÍÿŒÍÿ‹Ì•ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(}Š*|Ï‹*|ÿ‹*zÿ‹*xÿŠ*wÿŠ*uÿ‰*tÿ‰*rõ‰+qÿ‰+oÿŠ+nÿŠ+lÿ‰,jÿ‰,iÿ‰,hÿ‰,eÿ‰,cÿ‰,bÿ‰,aÿˆ,`SÿÿÿÿÿÿÿÿÿÿÿÿŽìYíÿíÿìÿ‡*Zÿ‡,Qÿ‹¨ÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ æÿ åÿ ãÿ âÿ àÿ àÿßÿÝÿÛÿÙÿØÿÖÿÔÿÓÿÑÿÐÿŒÎÿŒÍÿŒÌÿŒËÿ‹Êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹*{+‹*{÷‹*yÿŠ*wÿŠ*vÿ‰*tÿ‰*sÿˆ*q÷‰*pŸ‰+nýŠ+mÿŠ+jÿ‰,iÿ‰,hÿ‰,fÿ‰,dÿ‰,bÿ‰,aÿ‰,`ÿˆ,_¥ÿÿÿÿÿÿÿÿÿŽìŽìéíÿíÿ×ÿ‡,Qÿ‡,Qÿ‹¨ÿŽ êÿŽ éÿ èÿ çÿ æÿ äÿ ãÿ áÿ àÿßÿÞÿÜÿÛÿÙÿØÿÕÿÔÿÒÿÑÿÏÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿ‹Éÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹*yw‹*xÿŠ*vÿŠ*uÿ‰*sÿ‰+rÿ‰+pÿ‰+oˉ,ma‰+kû‰,iÿ‰,hÿ‰,gÿ‰,eÿ‰,cÿ‰,bÿ‰,aÿ‰,_ÿˆ,]ïˆ*bÿÿÿÿÿÿŽì‡íÿíÿíÿŒ¼ÿ‡,Qÿ‡,QÿŠžÿŽ éÿ çÿ æÿ åÿ äÿ âÿ áÿ àÿßÿÞÿÜÿÚÿØÿ×ÿÕÿÓÿÒÿÐÿŒÏÿŒÍÿŒÍÿŒÌÿŒËÿŒÊÿŒÈÿŒÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ,yŠ)wÑŠ*uÿ‰*tÿ‰*rÿ‰+qÿ‰+oÿŠ+nÿ‰+lu‰,j_‰+iý‰,gÿ‰,eÿ‰,cÿ‰,bÿ‰,aÿ‰,`ÿ‰,^ÿ‰,\ÿˆ-[7ÿÿÿìŽìííÿíÿíÿ‹ ¥ÿ‡,Qÿ‡,QÿŠšÿ çÿ æÿ åÿ ãÿ âÿ àÿ àÿßÿÝÿÛÿÚÿØÿÖÿÔÿÓÿÑÿÐÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÉÿŒÈÿÆÿŒÅ—ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰*u9‰)tý‰*sÿ‰+qÿ‰+pÿŠ+nÿŠ+mÿ‰+jóˆ,hˆ+hw‰,fÿ‰,dÿ‰,bÿ‰,aÿ‰,`ÿ‰,^ÿ‰,]ÿ‰-[ÿ‰,ZwÿÿÿŽìGíÿíÿíÿíÿŠ#ÿ‡,Qÿ‡,Qÿ‰ÿ æÿ äÿ ãÿ áÿ àÿßÿÞÿÜÿÛÿÙÿØÿÕÿÔÿÒÿÑÿÏÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÉÿŒÇÿÅÿÄÿ§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰*s£‰+rÿ‰+pÿŠ+nÿŠ+mÿŠ+kÿ‰,iÿˆ+hÿÿÿˆ+dŸ‰,cÿ‰,bÿ‰,aÿ‰,_ÿ‰,]ÿ‰-\ÿ‰-Zÿˆ-X­ÿÿÿŽíwíÿíÿíÿíÿ‰%ÿ‡,Qÿ‡,Qÿ‰ …ÿ äÿ âÿ áÿ àÿßÿÞÿÜÿÚÿØÿ×ÿÕÿÓÿÒÿÐÿŒÏÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÈÿŒÆÿÅÿÃÿÂÿÀ½ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+q‰*q÷‰+oÿŠ+nÿŠ+lÿ‰,jÿ‰,iÿ‰,gûˆ,e%‰,d ˆ+b͉,aÿ‰,`ÿ‰,^ÿ‰,\ÿ‰-[ÿ‰-Yÿ‰,Wßÿÿÿííÿíÿíÿíÿˆ'rÿ‡,Qÿ‡,Qÿˆ#wÿ âÿ àÿ àÿßÿÝÿÛÿÚÿØÿÖÿÔÿÓÿÑÿÐÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÉÿŒÈÿÆÿÄÿÃÿÁÿÀÿŒ¿Ûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰*oŠ+nÿŠ+lÿŠ+jÿ‰,iÿ‰,hÿ‰,fÿ‰+dŸÿÿÿ‰+a%ˆ+`ó‰,^ÿ‰,]ÿ‰-[ÿ‰-Yÿ‰-Xÿˆ,Vý‡,W ŽíWíÿíÿíÿíÿˆ(hÿ‡,Qÿ‡,Qÿ‡'fÿ àÿßÿÞÿÝÿÛÿÙÿØÿÕÿÔÿÒÿÑÿÏÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÉÿŒÇÿÅÿÄÿÂÿÁÿ¿ÿ¾ÿŒ½ùŠ»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ*mŠ+mõŠ+kÿ‰,iÿ‰,hÿ‰,fÿ‰,dÿˆ+cùˆ+bÿÿÿˆ,_e‰,]ÿ‰-\ÿ‰-Zÿ‰-Xÿ‰-Wÿˆ-Vÿ‡,T-ŽìŽìßíÿíÿíÿˆ)dÿ‡,Qÿ‡,Qÿ‡+TÿŒÞÿÞÿÜÿÚÿÙÿ×ÿÕÿÓÿÒÿÐÿŒÏÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÈÿŒÆÿÅÿÃÿÂÿÀÿ¿ÿ¾ÿ½ÿ¼ÿŒ»)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰+k‰,jÿ‰,iÿ‰,gÿ‰,eÿ‰,cÿ‰,bÿˆ,aÿÿÿÿÿÿˆ,\¹‰-Zÿ‰-Xÿ‰-Wÿˆ-Vÿˆ-Uÿ‡,TIÿÿÿŽìCŽìýíÿíÿ‡*\ÿ‡,Qÿ‡,Qÿ‡,QÿŒÌÿÜÿÚÿØÿÖÿÔÿÓÿÑÿÐÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÉÿŒÈÿÆÿÄÿÃÿÁÿÀÿ¿ÿ¾ÿ½ÿ¼ÿ»ÿŒºUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+i‰,iû‰,hÿ‰,fÿ‰,dÿ‰,bÿ‰,aÿˆ+`ßÿÿÿÿÿÿˆ-Z#ˆ,Yõ‰-Xÿ‰-Vÿˆ-Uÿˆ-Tÿ‡-S]ÿÿÿÿÿÿŽìíÿíÿ‡*\ÿ‡,Qÿ‡,Qÿ‡,Qÿ‹±ÿÙÿØÿÖÿÔÿÒÿÑÿÏÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÉÿŒÇÿÅÿÄÿÂÿÁÿÀÿ¾ÿ½ÿ½ÿ¼ÿ»ÿºÿŒ¸‰ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+h«‰,fÿ‰,dÿ‰,cÿ‰,aÿ‰,`ÿ‰,_ÿˆ+]=ÿÿÿÿÿÿˆ,W{‰-Wÿˆ-Vÿˆ-Tÿˆ-Sÿ‡-QmÿÿÿÿÿÿŽí Žìãíÿˆ)dÿ‡,Qÿ‡,Qÿ‡,QÿŠ•ÿ×ÿÕÿÓÿÒÿÐÿŒÏÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÈÿŒÆÿÅÿÃÿÂÿÀÿ¿ÿ¾ÿ½ÿ¼ÿ»ÿºÿ¹ÿ¸ÿŒ¶Ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+fC‰,eÿ‰,cÿ‰,bÿ‰,aÿ‰,`ÿ‰,]ÿˆ,\ÿÿÿÿÿÿ‰.X ˆ,V߈-Uÿˆ-Sÿ‡,Rÿ†,QoÿÿÿÿÿÿÿÿÿŽìyíÿˆ(gÿ‡,Qÿ‡,Qÿ‡,Qÿˆ$vÿÔÿÓÿÑÿÐÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÉÿŒÈÿŒÆÿÄÿÃÿÁÿÀÿ¿ÿ¾ÿ½ÿ¼ÿ»ÿºÿ¹ÿ·ÿµÿŒ´ùŒ´ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+c݉,bÿ‰,aÿ‰,`ÿ‰,^ÿ‰,]ÿˆ,[Ùÿÿÿÿÿÿÿÿÿ‡,UYˆ-Tÿˆ-Rÿ‡,Qÿ†,QoÿÿÿÿÿÿÿÿÿŽí)íÿˆ'qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡*XÿŒÐÿÑÿÏÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÉÿŒÇÿÅÿÄÿÂÿÁÿÀÿ¾ÿ½ÿ½ÿ¼ÿ»ÿºÿ¸ÿ·ÿµÿ³ÿ±ÿ°Oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+b‰,aÿ‰,`ÿ‰,_ÿ‰,]ÿ‰-\ÿ‰-Yÿˆ-Xÿÿÿÿÿÿÿÿÿ‡,Sχ,Qÿ‡,Qÿ†+QkÿÿÿÿÿÿÿÿÿŒîŽíû‰%}ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‹²ÿŒÏÿŒÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÈÿŒÆÿÅÿÃÿÂÿÀÿ¿ÿ¾ÿ½ÿ¼ÿ»ÿºÿ¹ÿ¸ÿ¶ÿ´ÿ²ÿ°ÿޝÿ­§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,b)‰,aÿ‰,`ÿ‰,]ÿ‰,\ÿ‰-Zÿ‰-Xÿˆ-XYÿÿÿÿÿÿÿÿÿ‡,RI‡,Qÿ‡,Qÿ†,Q[ÿÿÿÿÿÿÿÿÿÿÿÿŽíïŠ#Œÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‰ ‹ÿŒÍÿŒÌÿŒËÿŒÊÿŒÉÿŒÈÿŒÆÿÄÿÃÿÁÿÀÿ¿ÿ¾ÿ½ÿ¼ÿ»ÿºÿ¹ÿ·ÿµÿ´ÿ²ÿ°ÿޝÿ­ÿŒ «÷Œ ©ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+`Õ‰,^ÿ‰,\ÿ‰-[ÿ‰-Yÿ‰-Xÿˆ,W‹ÿÿÿÿÿÿÿÿÿÿÿÿ†+QLJ,Qÿ‡+QEÿÿÿÿÿÿÿÿÿŒêíÿ‹!Ÿÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡(aÿŒÌÿŒËÿŒÊÿŒÉÿŒÇÿÅÿÄÿÂÿÁÿÀÿ¾ÿ½ÿ½ÿ¼ÿ»ÿºÿ¸ÿ·ÿµÿ³ÿ±ÿްÿ®ÿ ¬ÿ «ÿ!ªÿ!©}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+^‹‰,]ÿ‰-\ÿ‰-Yÿ‰-Xÿ‰-Wÿˆ,U·ÿÿÿÿÿÿÿÿÿÿÿÿ‡+QQ‡,Qÿ†,Q%ÿÿÿÿÿÿÿÿÿŽì)íÿŒ³ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿЬÿŒÊÿŒÈÿŒÇÿÅÿÃÿÂÿÁÿ¿ÿ¾ÿ½ÿ¼ÿ»ÿºÿ¹ÿ¸ÿ¶ÿ´ÿ²ÿ°ÿޝÿ®ÿ ¬ÿ «ÿ!ªÿ!©ÿ!§íŽ!¦ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+]E‰,\ÿ‰-Zÿ‰-Xÿ‰-Wÿˆ-Vÿ‡,UÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†+QÑ„-QÿÿÿÿÿÿÿÿÿŽìaíÿÌÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ$yÿŒÈÿŒÆÿÅÿÃÿÁÿÀÿ¿ÿ¾ÿ½ÿ¼ÿ»ÿºÿ¹ÿ·ÿ¶ÿ´ÿ²ÿ°ÿޝÿ­ÿ «ÿ ªÿ!©ÿ!¨ÿŽ"§ÿŽ"¥ÿ"¤‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰+^ ˆ,[ù‰-Yÿ‰-Wÿˆ-Vÿˆ-Uÿˆ-S÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,Q9ÿÿÿÿÿÿÿÿÿÿÿÿŽí¥íÿŽåÿ‡+Rÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡+RÿŒµÿÄÿÂÿÁÿÀÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿºÿ¸ÿ·ÿµÿ³ÿ±ÿްÿ®ÿ ¬ÿ «ÿ ªÿ!©ÿ!¨ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ"¢û# 1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ-Ylj-Xÿ‰-Wÿˆ-Uÿˆ-Tÿˆ-Rÿ†+UÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽíñíÿíÿˆ(gÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‰${ÿÂÿÁÿ¿ÿ¾ÿ½ÿ¼ÿ»ÿºÿ¹ÿ¸ÿ¶ÿ´ÿ²ÿ±ÿޝÿ®ÿ ¬ÿ «ÿ!ªÿ!©ÿŽ!§ÿŽ"¦ÿŽ"¥ÿŽ#£ÿŽ#¢ÿŽ# ÿ$žÑ$ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰,X‘‰-Wÿˆ-Vÿˆ-Uÿˆ-Sÿ‡,Rÿ‡,R!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíMíÿíÿíÿ‰$‡ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ,Sÿ‹¨ÿ¿ÿ¾ÿ½ÿ¼ÿ»ÿºÿ¹ÿ·ÿ¶ÿ´ÿ²ÿ°ÿޝÿ­ÿ ¬ÿ ªÿ!©ÿ!¨ÿŽ"§ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¡ÿŽ#Ÿÿ$žÿ$œÿŒ$š›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,Waˆ-Vÿˆ-Uÿˆ-Sÿˆ-Rÿ‡,Qÿ‡,R!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíÿíÿíÿ‹ªÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Sÿˆ)hÿŒ¼ÿ½ÿ¼ÿ»ÿºÿ¸ÿ·ÿµÿ³ÿ±ÿްÿ®ÿ ¬ÿ «ÿ ªÿ!©ÿ!¨ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#¢ÿŽ#¡ÿ$Ÿÿ$ÿ$œÿ%šÿ%™ÿŒ%˜qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ-V9ˆ-Uÿˆ-Tÿˆ-Rÿ‡,Qÿ‡,Qÿ‡,R!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒîŽìëíÿíÿíÿÏÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Sÿˆ-Uÿ‹#‹ÿ»ÿ»ÿ¹ÿ¸ÿ¶ÿ´ÿ²ÿ±ÿޝÿ®ÿ ¬ÿ «ÿ!ªÿ!©ÿŽ!§ÿŽ"¦ÿŽ"¥ÿŽ#£ÿŽ#¢ÿŽ# ÿ$žÿ$ÿ$›ÿ%™ÿ%˜ÿ%—ÿŒ&–ûŒ%”[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ××9ŒÖ]ŒÕyŒÕ•Ó©ŒÒ¹Ñ¿Ï¿οŒÌ»ŒË©‹Ê‹ÉkŒÈ;ŒÅ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†-Vˆ-Tÿˆ-Sÿ‡,Rÿ‡,Qÿ‡,Qÿ†,QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì7íÿíÿíÿíÿŽëÿ‡*\ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Rÿˆ-Sÿˆ-Uÿ‰,ZÿŒ¨ÿ¹ÿ·ÿ¶ÿ´ÿ²ÿ°ÿޝÿ­ÿ ¬ÿ ªÿ!©ÿ!¨ÿŽ!§ÿŽ"¦ÿŽ"¤ÿŽ#£ÿŽ#¡ÿŽ# ÿ$žÿ$œÿ%›ÿ%™ÿ%˜ÿ&—ÿ&–ÿ&”ÿŒ&’ûŒ&‘[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÜŒÛOÛ…Ú·ŒÚåÙÿÙÿØÿ×ÿÖÿÕÿÔÿÒÿÑÿÏÿÎÿŒÍÿŒËÿŒÊÿŒÉÿŒÈõŒƱŒÄSŠÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,Sõˆ-Rÿ‡,Qÿ‡,Qÿ‡,Qÿ…-Q ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìyíÿíÿíÿíÿíÿ‰%‚ÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Tÿˆ-Vÿ‰-Wÿ‰)jÿŒ´ÿµÿ³ÿ±ÿްÿ®ÿ¬ÿ «ÿ ªÿ!©ÿ!¨ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#¢ÿŽ#¡ÿ$Ÿÿ$ÿ$œÿ%šÿ%™ÿ%˜ÿ&—ÿ&•ÿ&”ÿ'’ÿ'‘ÿŒ'ûŒ&oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÚŒÛWŒÜ—ŒÜ×ÜÿÝÿÝÿÝÿÜÿÜÿÛÿÚÿÙÿØÿ×ÿÖÿÕÿÓÿÑÿÐÿÎÿŒÍÿŒËÿŒÊÿŒÉÿŒÇÿÅÿÃÛŒÁOÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡-R݇,Qÿ‡,Qÿ‡,Qÿ‡,PñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí­íÿíÿíÿíÿíÿ‹­ÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Tÿˆ-Vÿ‰-Wÿ‰-YÿŠ&€ÿ³ÿ±ÿޝÿ®ÿ ¬ÿ «ÿ!ªÿ!©ÿŽ!§ÿŽ"¦ÿŽ"¥ÿŽ#£ÿŽ#¢ÿŽ# ÿ$žÿ$ÿ$›ÿ%šÿ%˜ÿ%—ÿ&–ÿ&•ÿ&“ÿ'’ÿ'‘ÿ'ÿŒ'ÿŒ'Œÿ‹'‹™Š(ŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒØ1ŒÙŒÛÉŒÜýÝÿÞÿßÿßÿßÿàÿßÿßÿßÿÞÿÝÿÜÿÛÿÙÿØÿÖÿÕÿÔÿÒÿÐÿÎÿŒÌÿŒËÿŒÊÿŒÈÿÆÿÄÿÂÿŒÀ—Œ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,Qχ,Qÿ‡,Qÿ‡,Qÿ†,QÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìÏíÿíÿíÿíÿíÿŽÛÿ‡+Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Tÿˆ-Vÿ‰-Xÿ‰-Zÿ‰,\ÿŒ#’ÿޝÿ­ÿ ¬ÿ ªÿ!©ÿ!¨ÿŽ!§ÿŽ"¦ÿŽ"¤ÿŽ#£ÿŽ#¡ÿŽ# ÿ$žÿ$œÿ%›ÿ%™ÿ%˜ÿ&—ÿ&–ÿ&”ÿ&“ÿ'‘ÿ'ÿ'ŽÿŒ'ÿŒ'ŒÿŒ(‹ÿŒ(Šÿ‹(‰Í‹(‡'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÕ9ŒÖŒØáÙÿÛÿÝÿÞÿßÿ àÿ áÿ áÿ âÿ âÿ âÿ âÿ áÿ àÿ àÿßÿÝÿÜÿÚÿÙÿ×ÿÕÿÔÿÒÿÏÿÎÿŒÌÿŒËÿŒÉÿŒÈÿÆÿÃÿÁÿŒ¿—ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,Q¿‡,Qÿ‡,Qÿ‡,Qÿ†+Q§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìÛíÿíÿíÿíÿíÿíÿˆ'pÿ‡,Qÿ‡,Qÿˆ-Sÿˆ-Uÿ‰-Vÿ‰-Xÿ‰-Zÿ‰,\ÿ‰+aÿŒ"œÿ «ÿ ªÿ!©ÿ!¨ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#¢ÿŽ#¡ÿ$Ÿÿ$ÿ$œÿ%šÿ%™ÿ%˜ÿ&—ÿ&•ÿ&”ÿ'’ÿ'‘ÿ'ÿ'ŽÿŒ'ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(‡ÿ‹(†õ‹(„sŠ(‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÑ+ŒÒ‡ŒÕßÖÿØÿÚÿÜÿÝÿßÿ àÿ áÿ ãÿ ãÿ äÿ äÿ äÿ äÿ äÿ äÿ ãÿ âÿ áÿ àÿÞÿÝÿÛÿÙÿ×ÿÕÿÓÿÑÿÏÿŒÍÿŒËÿŒÊÿŒÉÿŒÇÿÅÿÂÿÀÿŒ¾Kÿÿÿÿÿÿÿÿÿÿÿÿ‡,Q¿‡,Qÿ‡,Qÿ‡,Qÿ‡+QsÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíÃíÿíÿíÿíÿíÿíÿ‹ ¤ÿ‡,Qÿ‡,Qÿˆ-Sÿˆ-Uÿ‰-Wÿ‰-Xÿ‰-[ÿ‰,]ÿ‰,_ÿ‰+gÿŒ" ÿ!©ÿŽ!§ÿŽ"¦ÿŽ"¥ÿŽ#£ÿŽ#¢ÿŽ# ÿ$Ÿÿ$ÿ$›ÿ%šÿ%˜ÿ%—ÿ&–ÿ&•ÿ&“ÿ'’ÿ'‘ÿ'ÿŒ'ŽÿŒ'ŒÿŒ(ŒÿŒ(‹ÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)…ÿ‹)„ÿ‹)‚ÿŠ)ÑŠ)€AÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÌŒÍiŒÏÉÑÿÔÿÖÿØÿÙÿÜÿÞÿ ßÿ áÿ ãÿ äÿ äÿ åÿ æÿ æÿ æÿ æÿ æÿ åÿ åÿ äÿ ãÿ âÿ àÿßÿÝÿÛÿÙÿ×ÿÕÿÓÿÑÿÎÿŒÍÿŒËÿŒÉÿŒÈÿÆÿÃÿÁÿŒ¾Ëÿÿÿÿÿÿÿÿÿÿÿÿ‡,Q¿‡,Qÿ‡,Qÿ‡,Qÿ†+Q7ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì‡íÿíÿíÿíÿíÿíÿŽÛÿ‡+Rÿ‡,Qÿˆ-Sÿˆ-Uÿ‰-Wÿ‰-Xÿ‰-[ÿ‰,]ÿ‰,`ÿ‰,aÿ‰*lÿ# ÿŽ"¦ÿŽ"¤ÿŽ#£ÿŽ#¡ÿŽ# ÿ$žÿ$œÿ%›ÿ%™ÿ%˜ÿ&—ÿ&–ÿ&”ÿ&“ÿ'‘ÿ'ÿ'ÿŒ'ÿŒ'ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿ‹(†ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)ÿ‹*~ÿŠ*}·Š*|9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹É9‹ËŸŒÌõÎÿÑÿÓÿÕÿ×ÿÙÿÛÿÞÿ àÿ áÿ ãÿ äÿ åÿ æÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ æÿ æÿ åÿ äÿ ãÿ áÿßÿÝÿÛÿØÿÖÿÕÿÒÿÐÿÎÿŒÌÿŒÊÿŒÉÿŒÇÿÄÿÂÿ¿ÿŒ½ÿÿÿÿÿÿÿÿÿ†,Q͇,Qÿ‡,Qÿ†+Pë„*QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí#Žíûíÿíÿíÿíÿíÿíÿ‰&{ÿ‡,Rÿˆ-Sÿˆ-Uÿ‰-Wÿ‰-Yÿ‰-[ÿ‰,]ÿ‰,`ÿ‰,aÿ‰,bÿ‰*nÿ#ÿŽ#¢ÿŽ#¡ÿ$Ÿÿ$ÿ$œÿ%šÿ%™ÿ%˜ÿ&—ÿ&•ÿ&”ÿ'’ÿ'‘ÿ'ÿ'ŽÿŒ'ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(‡ÿ‹(†ÿ‹)„ÿ‹)ƒÿ‹)ÿ‹)€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*{ÿ‹*{ÿŠ)yÉ)wUˆ(wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹Ä ŒÆa‹ÈÍŒÊÿŒËÿŒÍÿÏÿÒÿÔÿÖÿØÿÛÿÝÿßÿ áÿ ãÿ äÿ æÿ çÿ çÿ èÿŽ èÿŽ éÿŽ éÿŽ éÿŽ éÿ èÿ èÿ çÿ æÿ åÿ äÿ ãÿ àÿßÿÜÿÚÿØÿÕÿÔÿÑÿÏÿŒÍÿŒËÿŒÉÿŒÈÿÅÿÃÿÀÿŒ¿Qÿÿÿÿÿÿÿÿÿ†+Q߇,Qÿ‡,Qÿ‡+QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí‹íÿíÿíÿíÿíÿíÿŒ¹ÿ‡,Rÿˆ-Tÿˆ-Uÿ‰-Wÿ‰-Yÿ‰-\ÿ‰,]ÿ‰,`ÿ‰,aÿ‰,cÿ‰,eÿ‰*oÿ$˜ÿ$Ÿÿ$ÿ$›ÿ%šÿ%˜ÿ%˜ÿ&–ÿ&•ÿ&“ÿ'’ÿ'‘ÿ'ÿŒ'ŽÿŒ'ŒÿŒ(ŒÿŒ(‹ÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)…ÿ‹)„ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*~ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*zÿŠ*yÿŠ*wÿŠ*vÿ‰*ué‰)t‘‰*r;„*sÿÿÿÿÿÿ‹ÀŒÂŒÅéŒÇÿŒÉÿŒÊÿŒÌÿÎÿÐÿÓÿÕÿ×ÿÚÿÜÿßÿ áÿ ãÿ äÿ æÿ çÿ èÿŽ éÿŽ êÿŽ ëÿŽ ëÿŽ ëÿŽ ëÿŽ ëÿŽ ëÿŽ éÿŽ èÿ çÿ çÿ åÿ äÿ âÿ àÿÞÿÜÿÙÿ×ÿÕÿÒÿÐÿŒÎÿŒËÿŒÊÿŒÈÿÆÿÄÿÁÿ¿aÿÿÿÿÿÿÿÿÿ†,Q÷‡,Qÿ‡,Qÿ‡,P?ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÉíÿíÿíÿíÿíÿŽéÿˆ*bÿˆ-Tÿˆ-Vÿ‰-Wÿ‰-Yÿ‰-\ÿ‰,]ÿ‰,`ÿ‰,aÿ‰,cÿ‰,eÿ‰,hÿŠ+mÿŒ&ÿ%›ÿ%™ÿ%˜ÿ%—ÿ&–ÿ&”ÿ&“ÿ'‘ÿ'ÿ'ÿŒ'ÿŒ'ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿ‹(†ÿ‹)…ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)ÿ‹*~ÿ‹*}ÿ‹*|ÿ‹*{ÿŠ*zÿŠ*xÿŠ*wÿŠ*vÿŠ*tÿ‰*tÿ‰*sÿ‰+rÿ‰*qéŠ'€¡Œ¼›ŒÀ÷ÃÿÅÿŒÈÿŒÉÿŒËÿŒÍÿÏÿÑÿÔÿÖÿØÿÛÿÞÿ àÿ âÿ äÿ æÿ çÿ èÿŽ éÿŽ ëÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ èÿ çÿ åÿ äÿ âÿ ßÿÝÿÚÿØÿÕÿÓÿÑÿÎÿŒÌÿŒÊÿŒÉÿŒÇÿÅÿÂÿ¿aÿÿÿÿÿÿ‡,Q‡,Qÿ‡,Qÿ‡+QÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽìÛíÿíÿíÿíÿíÿ‹ ¤ÿˆ-Tÿˆ-Vÿ‰-Wÿ‰-Yÿ‰-\ÿ‰,]ÿ‰,`ÿ‰,bÿ‰,cÿ‰,fÿ‰,hÿ‰,jÿŠ+mÿ‹'„ÿŒ%—ÿ&—ÿ&•ÿ&”ÿ'’ÿ'‘ÿ'ÿ'ŽÿŒ'ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(‡ÿ‹(†ÿ‹)„ÿ‹)ƒÿ‹)ÿ‹)€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*{ÿ‹*{ÿŠ*yÿŠ*xÿŠ*wÿŠ*uÿŠ*tÿ‰*sÿ‰*rÿ‰+qÿŠ(|ÿŒ ¡ÿŒ¼ÿ¾ÿÀÿÃÿÆÿŒÈÿŒÊÿŒËÿŒÍÿÏÿÒÿÕÿ×ÿÙÿÜÿßÿ áÿ äÿ åÿ çÿ èÿŽ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ çÿ æÿ åÿ ãÿ àÿÞÿÜÿÙÿÖÿÔÿÑÿÏÿŒÍÿŒËÿŒÉÿŒÈÿÅÿÃÿŒÀGÿÿÿÿÿÿ†+QG‡,Qÿ‡,Qÿ†,QaÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÛíÿíÿíÿíÿŽãÿˆ+\ÿˆ-Vÿ‰-Wÿ‰-Yÿ‰-\ÿ‰,^ÿ‰,`ÿ‰,bÿ‰,cÿ‰,fÿ‰,hÿ‰,jÿŠ+mÿŠ+nÿŠ)yÿŒ&ÿ&“ÿ'’ÿ'‘ÿ'ÿŒ'ŽÿŒ'ŒÿŒ(ŒÿŒ(‹ÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)…ÿ‹)„ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*zÿŠ*yÿŠ*wÿŠ*vÿŠ*uÿŠ*tÿ‰*sÿ‰+rÿŠ'ÿ‹ ¢ÿ¹ÿ»ÿ½ÿ¿ÿÁÿÄÿÆÿŒÈÿŒÊÿŒÌÿÎÿÐÿÓÿÕÿØÿÚÿÝÿ àÿ âÿ äÿ æÿ çÿŽ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿ èÿ çÿ æÿ äÿ âÿßÿÜÿÚÿ×ÿÕÿÒÿÐÿŒÍÿŒËÿŒÊÿŒÈÿÆÿÃÿŒÀÿÿÿÿÿÿ†,Py‡,Qÿ†,Q׆,QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÓíÿíÿíÿíÿ‹"œÿˆ-Vÿ‰-Xÿ‰-Yÿ‰-\ÿ‰,^ÿ‰,`ÿ‰,bÿ‰,cÿ‰,fÿ‰,hÿŠ,jÿŠ+mÿŠ+oÿ‰+qÿ‰*sÿ‹(ÿŒ'Žÿ'ÿŒ'ÿŒ'ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿ‹(†ÿ‹)…ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)ÿ‹*~ÿ‹*}ÿ‹*|ÿ‹*{ÿŠ*zÿŠ*xÿŠ*wÿŠ*vÿŠ*uÿ‰*tÿ‰*vÿŠ&ŠÿŒ ¥ÿµÿ¸ÿºÿ»ÿ½ÿ¿ÿÁÿÄÿÇÿŒÉÿŒÊÿŒÌÿÎÿÑÿÓÿÖÿØÿÛÿÞÿ àÿ ãÿ åÿ æÿ èÿŽ êÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ çÿ æÿ äÿ ãÿ àÿÝÿÛÿØÿÕÿÓÿÐÿÎÿŒÌÿŒÊÿŒÈÿÆÿŒÄÑÿÿÿÿÿÿÿÿÿ†,Q¹‡,Qÿ‡+QGÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíŽí½íÿíÿíÿŽáÿ‰+_ÿ‰-Xÿ‰-Yÿ‰-\ÿ‰,^ÿ‰,`ÿ‰,bÿ‰,cÿ‰,fÿ‰,hÿŠ,jÿŠ+mÿŠ+oÿ‰+qÿ‰*sÿŠ*uÿŠ)xÿ‹(ÿ‹(‰ÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(‡ÿ‹(†ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*{ÿ‹*{ÿŠ*yÿŠ*xÿŠ*wÿŠ*uÿŠ)vÿ‹'„ÿ‹$—ÿŒ ªÿޝÿ²ÿ¶ÿ¸ÿºÿ»ÿ½ÿ¿ÿÂÿÄÿŒÇÿŒÉÿŒËÿŒÌÿÏÿÑÿÔÿÖÿÙÿÜÿßÿ áÿ äÿ åÿ çÿŽ èÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿ èÿ çÿ åÿ ãÿ àÿÞÿÛÿØÿÖÿÓÿÑÿÎÿŒÌÿŒÊÿŒÉÿÇÿŒÄ}ÿÿÿÿÿÿ…,R †+Põ†+QŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽííÿíÿíÿŒ!¤ÿ‰-Xÿ‰-Yÿ‰-\ÿ‰,^ÿ‰,`ÿ‰,bÿ‰,cÿ‰,fÿ‰,iÿŠ,jÿŠ+mÿŠ+oÿ‰+qÿ‰*sÿŠ*uÿŠ*wÿ‹*yÿ‹*{ÿ‹)ÿ‹(„ÿ‹(†ÿ‹)…ÿ‹)„ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*zÿŠ*yÿŠ)yÿŠ(ÿ‹&‰ÿŒ$–ÿ"¤ÿ!©ÿ!«ÿ ¬ÿޝÿ²ÿ¶ÿ¸ÿºÿ¼ÿ½ÿ¿ÿÂÿÅÿŒÇÿŒÉÿŒËÿŒÍÿÏÿÑÿÔÿÖÿÙÿÜÿßÿ áÿ äÿ æÿ çÿŽ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽìÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ èÿ çÿ åÿ äÿ áÿßÿÜÿÙÿÖÿÔÿÑÿÏÿŒÌÿŒËÿŒÉÿŒÇûŒÅÿÿÿÿÿÿ†,QU†+Q×…,Q ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíÿíÿŽçÿ‰*hÿ‰-Yÿ‰-\ÿ‰,^ÿ‰,`ÿ‰,bÿ‰,cÿ‰,fÿ‰,iÿŠ,jÿŠ+mÿŠ+oÿ‰+qÿ‰*sÿŠ*uÿŠ*wÿ‹*yÿ‹*{ÿ‹*|ÿ‹*ÿ‹)ÿ‹)ƒÿ‹)…ÿ‹(†ÿ‹(…ÿ‹)…ÿ‹(„ÿŒ(…ÿŒ(‡ÿŒ'ŠÿŒ'ŽÿŒ%”ÿŒ$œÿ$ŸÿŽ#¢ÿŽ"¤ÿŽ"¦ÿ!©ÿ «ÿ ¬ÿޝÿ²ÿ¶ÿ¸ÿºÿ¼ÿ¾ÿ¿ÿÂÿÅÿŒÈÿŒÉÿŒËÿŒÍÿÏÿÒÿÕÿÖÿÙÿÜÿßÿ âÿ äÿ æÿ çÿŽ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿìÿìÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ çÿ æÿ äÿ áÿßÿÜÿÙÿÖÿÔÿÑÿÏÿŒÍÿŒËÿŒÉÿŒÈŸÿÿÿÿÿÿÿÿÿ†+Q¡†+Q'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí­íÿíÿŒºÿ‰-Yÿ‰-\ÿ‰,^ÿ‰,`ÿ‰,bÿ‰,cÿ‰,fÿ‰,iÿŠ,jÿŠ+mÿŠ+oÿ‰+qÿ‰*sÿŠ*uÿŠ*wÿ‹*yÿ‹*{ÿ‹*|ÿ‹*ÿ‹)ÿ‹)ƒÿ‹)†ÿŒ(ˆÿŒ(ŠÿŒ(ŒÿŒ'Žÿ'ÿ&“ÿ&•ÿ&—ÿ%šÿ$œÿ$ŸÿŽ#¢ÿŽ"¤ÿŽ"¦ÿ!©ÿ «ÿ ¬ÿޝÿ²ÿ¶ÿ¸ÿºÿ¼ÿ½ÿ¿ÿÂÿÅÿŒÇÿŒÉÿŒËÿŒÍÿÏÿÒÿÕÿÖÿÙÿÜÿßÿ âÿ äÿ æÿ çÿŽ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿìÿìÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ çÿ æÿ äÿ áÿßÿÜÿÙÿÖÿÔÿÑÿÏÿŒÍÿŒËÿŒÉù‹È#ÿÿÿÿÿÿ†,Q†*Q5ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì%ŽìýíÿíÿŠ&‚ÿ‰-\ÿ‰,^ÿ‰,`ÿ‰,bÿ‰,cÿ‰,fÿ‰,hÿŠ,jÿŠ+mÿŠ+oÿ‰+qÿ‰*sÿŠ*uÿŠ*wÿ‹*yÿ‹*{ÿ‹*|ÿ‹*~ÿ‹)ÿ‹)ƒÿ‹)†ÿŒ(ˆÿŒ(ŠÿŒ(ŒÿŒ'ÿ'ÿ&“ÿ&•ÿ&—ÿ%™ÿ$œÿ$žÿŽ#¢ÿŽ"¤ÿŽ"¦ÿ!©ÿ!ªÿ ¬ÿޝÿ²ÿ¶ÿ¸ÿºÿ»ÿ½ÿ¿ÿÂÿÅÿŒÇÿŒÉÿŒËÿŒÍÿÏÿÑÿÔÿÖÿÙÿÜÿßÿ áÿ äÿ æÿ çÿŽ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽìÿìÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ çÿ æÿ äÿ áÿßÿÜÿÙÿÖÿÔÿÑÿÏÿŒÍÿŒËÿ‹ɇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìÅíÿíÿŽÚÿ‰,bÿ‰,^ÿ‰,`ÿ‰,bÿ‰,cÿ‰,fÿ‰,hÿŠ,jÿŠ+mÿŠ+oÿ‰+qÿ‰*rÿŠ*uÿŠ*wÿ‹*yÿ‹*{ÿ‹*|ÿ‹*~ÿ‹)€ÿ‹)ƒÿ‹)†ÿŒ(ˆÿŒ(ŠÿŒ(ŒÿŒ'ÿ'ÿ'’ÿ&•ÿ&—ÿ%™ÿ$œÿ$žÿŽ#¡ÿŽ"¤ÿŽ"¦ÿ!¨ÿ!ªÿ ¬ÿ¯ÿ²ÿµÿ¸ÿºÿ»ÿ½ÿ¿ÿÁÿÄÿŒÇÿŒÉÿŒËÿŒÌÿÏÿÑÿÔÿÖÿÙÿÜÿßÿ áÿ äÿ åÿçÿ—ê¿,î¿ìïŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ èÿ çÿ åÿ ãÿ áÿßÿÜÿÙÿÖÿÔÿÑÿÏÿŒÌÿ‹ÊߌÊ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì‹íÿíÿíÿŒ°ÿ‰,]ÿ‰,`ÿ‰,bÿ‰,cÿ‰,fÿ‰,hÿ‰,jÿŠ+lÿŠ+nÿ‰+qÿ‰*rÿŠ*uÿŠ*vÿ‹*yÿ‹*{ÿ‹*|ÿ‹*~ÿ‹)€ÿ‹)ƒÿ‹)…ÿŒ(ˆÿŒ(ŠÿŒ$žÿŽÜÿŽØÿŽÔÿŽÐÿŽÌÿŽÈÿŽÄÿŽÁÿ޾ÿ޼ÿŽºÿ·ÿ´ÿ²ÿ±ÿ±ÿµÿ¸ÿ¹ÿ»ÿ½ÿ¿ÿÁÿÄÿÇÿŒÉÿŒÊÿŒÌÿÎÿÑÿÓÿÖÿØÿÛÿÞÿ àÿ ãÿ åï–é1ÿÿÿÿÿÿ£9ð‘ìÏŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿ èÿ æÿ åÿ ãÿ àÿÞÿÛÿØÿÖÿÓÿÑÿÎÿŒÌû‹Ë=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽígíÿíÿíÿìÿŠ%…ÿ‰,`ÿ‰,aÿ‰,cÿ‰,eÿ‰,hÿ‰,jÿŠ+lÿŠ+nÿ‰+qÿ‰*rÿ‰*tÿŠ*vÿ‹*xÿ‹*{ÿ‹*|ÿ‹*~ÿ‹)€ÿ‹)‚ÿ‹)…ÿŒ(‡ÿŒ'ÿŽßÿíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ êÿŽ æÿŽâÿŽÝÿØÿÑÿÌÿÆÿ»ÿ½ÿ¾ÿÀÿÃÿÆÿŒÈÿŒÊÿŒÌÿÎÿÐÿÓÿÕÿØÿÚÿÝÿ àÿ âÿ‘åÿÿÿÿÿÿÿÿÿÿÿÿž/îQŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ çÿ æÿ äÿ âÿ àÿÝÿÚÿØÿÕÿÓÿÐÿÎÿŒÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìSíÿíÿíÿíÿŽßÿ‰)mÿ‰,aÿ‰,cÿ‰,eÿ‰,hÿ‰,iÿŠ+lÿŠ+nÿ‰+pÿ‰+rÿ‰*tÿŠ*vÿ‹*xÿ‹*{ÿ‹*|ÿ‹*}ÿ‹)€ÿ‹)‚ÿ‹)…ÿŒ(‡ÿÆÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿŽ ìÿŽ ìÿŽ ëÿŽ çÿŽ ãÿŽÞÿÚÿÔÿÐÿÌÿÀÿ¼ÿ¾ÿÀÿÃÿÆÿŒÈÿŒÊÿŒËÿŒÍÿÏÿÒÿÕÿ×ÿÙÿÜÿßÿ áÿ˜$æÿÿÿÿÿÿÿÿÿÿÿÿ½rôAŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ åÿ äÿ áÿßÿÜÿÙÿ×ÿÕÿÒÿÏÿŒͳŒÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìMíÿíÿíÿíÿíÿÊÿ‰+cÿ‰,cÿ‰,eÿ‰,hÿ‰,iÿŠ+lÿŠ+nÿ‰+pÿ‰+rÿ‰*tÿŠ*vÿ‹*xÿ‹*zÿ‹*|ÿ‹*}ÿ‹)€ÿ‹)‚ÿ‹)…ÿŒ$ ÿìÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ëÿŽ èÿŽ äÿŽàÿŽÛÿÖÿÑÿÍÿÇÿ¼ÿ¾ÿÀÿÂÿÅÿŒÈÿŒÉÿŒËÿŒÍÿÏÿÑÿÔÿÖÿØÿÛÿÞÿ àÿ– ä¿ÿÿÿÿÿÿÿÿÿÿÿÿêaŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿ èÿ çÿ æÿ äÿ âÿ àÿÞÿÛÿØÿÖÿÔÿÑÿŒÏÓ‹ÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíAíÿíÿíÿíÿíÿíÿŒ°ÿ‰,bÿ‰,eÿ‰,hÿ‰,iÿŠ+kÿŠ+nÿ‰+pÿ‰+rÿ‰*tÿŠ*vÿ‹*xÿ‹*zÿ‹*|ÿ‹*}ÿ‹)ÿ‹)‚ÿ‹(…ÿŽØÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ éÿŽ åÿŽáÿŽÜÿØÿÒÿÎÿÊÿÀÿ½ÿ¿ÿÁÿÄÿŒÇÿŒÉÿŒÊÿŒÌÿÎÿÐÿÒÿÕÿ×ÿÙÿÜÿßÿ áÿ’ä¸gîÿÿÿ 2ëaŽ èïŽ éÿŽ êÿŽ ëÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ èÿ çÿ æÿ åÿ ãÿ áÿßÿÜÿÚÿ×ÿÕÿÓÿÑãŒÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíAíÿíÿíÿíÿíÿíÿíÿ‹#™ÿ‰,dÿ‰,gÿ‰,iÿŠ+kÿŠ+nÿ‰+oÿ‰+rÿ‰*sÿŠ*vÿŠ*wÿ‹*zÿ‹*|ÿ‹*}ÿ‹*ÿ‹)ÿŒ#ŸÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿŽ ìÿŽ ìÿŽ êÿŽ æÿŽãÿŽÞÿÙÿÔÿÏÿËÿÆÿ½ÿ¾ÿÀÿÃÿÆÿŒÈÿŒÊÿŒËÿŒÍÿÏÿÑÿÔÿÖÿØÿÛÿÝÿßÿ áÿ ãÿåÿ æÿ çÿ çÿ èÿŽ éÿŽ éÿŽ êÿŽ êÿŽ éÿŽ éÿ èÿ èÿ çÿ æÿ åÿ äÿ âÿ àÿÝÿÛÿØÿÖÿÕÿŒÒçÐ%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíAíÿíÿíÿíÿíÿíÿíÿŽêÿŠ%‹ÿ‰,gÿ‰,iÿŠ+jÿŠ+mÿ‰+oÿ‰+qÿ‰*sÿŠ*uÿŠ*wÿ‹*yÿ‹*{ÿ‹*}ÿ‹*ÿ‹)ÿÇÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿŽ ìÿŽ ìÿŽ ëÿŽ çÿŽ äÿŽßÿŽÛÿÕÿÑÿÌÿÉÿÁÿ¾ÿÀÿÂÿÅÿŒÇÿŒÉÿŒËÿŒÌÿÎÿÐÿÒÿÕÿ×ÿÙÿÛÿÞÿ àÿ áÿ ãÿ äÿ åÿ æÿ çÿ çÿ èÿ èÿ èÿ èÿ çÿ çÿ æÿ æÿ äÿ ãÿ âÿ àÿÞÿÜÿÙÿ×ÿÕÿÓãŒÑ)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí5íÿíÿíÿíÿíÿíÿíÿíÿŽçÿŠ'„ÿ‰,iÿŠ+jÿŠ+mÿŠ+oÿ‰+qÿ‰*sÿŠ*uÿŠ*wÿ‹*yÿ‹*{ÿ‹*|ÿ‹*~ÿ‹)€ÿŽáÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ëÿŽ éÿŽ åÿŽáÿŽÜÿ×ÿÒÿÍÿÊÿÅÿ¾ÿ¿ÿÁÿÄÿÆÿŒÈÿŒÊÿŒËÿŒÍÿÏÿÑÿÓÿÕÿ×ÿÙÿÜÿÞÿ ßÿ áÿ ãÿ äÿ åÿ åÿ æÿ æÿ æÿ çÿ æÿ æÿ åÿ åÿ äÿ ãÿ áÿ àÿÞÿÜÿÚÿØÿÖÿŒÔÝÓ%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí!íÿíÿíÿíÿíÿíÿíÿíÿíÿŽåÿŠ'…ÿ‰,jÿŠ+lÿŠ+nÿ‰+qÿ‰*rÿ‰*tÿŠ*vÿ‹*xÿ‹*{ÿ‹*|ÿ‹*}ÿ‹)€ÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿŽ ìÿŽ ìÿŽ êÿŽ æÿŽâÿŽÝÿØÿÓÿÏÿËÿÇÿÀÿ¾ÿÀÿÃÿÅÿŒÈÿŒÉÿŒÊÿŒÌÿÎÿÐÿÒÿÔÿÖÿØÿÙÿÛÿÝÿßÿ àÿ âÿ ãÿ äÿ äÿ äÿ åÿ åÿ äÿ äÿ äÿ ãÿ âÿ áÿ ßÿÞÿÜÿÚÿØÿÖÿŒÕÏŒÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽêŽì÷íÿíÿíÿíÿíÿíÿíÿíÿíÿŽåÿ‹'†ÿŠ+lÿŠ+nÿ‰+pÿ‰+rÿ‰*tÿŠ*vÿ‹*xÿ‹*zÿ‹*|ÿ‹*}ÿ‹)€ÿŽÞÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿŽ ìÿŽ ìÿŽ ëÿŽ çÿŽ ãÿŽÞÿŽÚÿÔÿÐÿÌÿÈÿÃÿ¾ÿ¿ÿÁÿÄÿÆÿŒÈÿŒÊÿŒËÿŒÍÿÎÿÐÿÒÿÔÿÖÿØÿÙÿÛÿÝÿÞÿ ßÿ àÿ áÿ âÿ ãÿ ãÿ ãÿ ãÿ âÿ áÿ àÿ àÿßÿÝÿÜÿÚÿØÿÖÿŒÕµ‹ÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìÁíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽåÿ‹&ŒÿŠ+nÿ‰+pÿ‰+rÿ‰*tÿŠ*vÿŠ*wÿ‹*zÿ‹*|ÿ‹*}ÿ‹*ÿŒ!¯ÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ëÿŽ èÿŽ äÿŽàÿŽÛÿÖÿÐÿÅÿ¿ÿ¼ÿ½ÿ¾ÿÀÿÂÿÅÿŒÇÿŒÉÿŒÊÿŒËÿŒÍÿÏÿÐÿÒÿÔÿÖÿ×ÿÙÿÚÿÜÿÝÿÞÿßÿ ßÿ àÿ àÿ àÿ àÿ àÿßÿÞÿÝÿÜÿÛÿÙÿØÿÖÿŒÕŒÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìkíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽêÿ‹$™ÿ‰+oÿ‰+qÿ‰*sÿŠ*uÿŠ*wÿ‹*yÿ‹*{ÿ‹*|ÿ‹*~ÿ‹)ÿÀÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿŽìÿŽ ìÿŽ ìÿŽ éÿŽ åÿÛÿÈÿ»ÿµÿ·ÿ¹ÿºÿ¼ÿ½ÿ¿ÿÁÿÃÿÅÿŒÈÿŒÉÿŒÊÿŒËÿŒÍÿÏÿÐÿÒÿÔÿÕÿÖÿØÿÙÿÚÿÛÿÜÿÝÿÝÿÞÿÞÿÝÿÝÿÜÿÜÿÛÿÙÿØÿ×ÿŒÖóŒÕYÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí ŽìáíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿŒ ¬ÿ‰*qÿ‰*rÿŠ*uÿŠ*vÿ‹*xÿ‹*{ÿ‹*|ÿ‹*}ÿ‹)€ÿ‹)‚ÿŒ!¯ÿŽçÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿŽ ëÿŽÝÿŽÈÿµÿ «ÿ­ÿްÿ²ÿ¶ÿ¸ÿ¹ÿ»ÿ¼ÿ¾ÿ¿ÿÂÿÄÿÆÿŒÈÿŒÉÿŒÊÿŒÌÿŒÍÿÏÿÐÿÒÿÓÿÕÿÖÿ×ÿØÿØÿÙÿÚÿÚÿÛÿÛÿÚÿÚÿÙÿÙÿØÿ×ÿÖÿŒÕÓŒÔ)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì=ŽìõíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÅÿ‰)xÿ‰*tÿŠ*vÿ‹*xÿ‹*zÿ‹*|ÿ‹*}ÿ‹)ÿ‹)ÿ‹)„ÿ‹'ÿÁÿŽéÿíÿíÿíÿíÿíÿíÿíÿŽêÿŽÕÿ޾ÿŽ ªÿŽ"¥ÿŽ"§ÿ!©ÿ ªÿ ¬ÿ®ÿ±ÿ´ÿ·ÿ¹ÿºÿ»ÿ½ÿ¾ÿÀÿÂÿÄÿÆÿŒÈÿŒÉÿŒÊÿŒËÿŒÍÿÎÿÐÿÑÿÒÿÔÿÕÿÕÿÖÿ×ÿ×ÿØÿØÿØÿØÿØÿ×ÿÖÿÖÿŒÕýŒÕ‘Õ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì?ŽíçíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽÛÿŠ&‹ÿŠ*uÿŠ*wÿ‹*yÿ‹*{ÿ‹*|ÿ‹*ÿ‹)ÿ‹)ƒÿ‹)…ÿŒ(ˆÿŒ&‘ÿ ¶ÿŽÙÿíÿíÿŽåÿŽÌÿ ³ÿ$žÿ$ÿ#ŸÿŽ#¢ÿŽ"¤ÿŽ"¦ÿ!§ÿ!ªÿ «ÿ­ÿޝÿ²ÿµÿ·ÿ¹ÿºÿ¼ÿ½ÿ¿ÿÀÿÃÿÅÿŒÆÿŒÈÿŒÉÿŒÊÿŒËÿŒÌÿÎÿÏÿÐÿÑÿÒÿÓÿÔÿÕÿÕÿÕÿÖÿÖÿÕÿÕÿÕÿÔÿŒÔߌÓCÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽ쇎íïíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽéÿŒ ­ÿŠ)xÿ‹*yÿ‹*{ÿ‹*|ÿ‹*~ÿ‹)€ÿ‹)‚ÿ‹)…ÿ‹(‡ÿŒ(‰ÿŒ(‹ÿŒ(Œÿ%™ÿ#¥ÿ&”ÿ&•ÿ&—ÿ%™ÿ$›ÿ$žÿŽ# ÿŽ#£ÿŽ"¥ÿŽ"¦ÿ!©ÿ ªÿ ¬ÿ®ÿ±ÿ³ÿ¶ÿ¸ÿ¹ÿ»ÿ¼ÿ¾ÿ¿ÿÀÿÃÿÅÿÆÿŒÈÿŒÉÿŒÊÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÑÿÑÿÒÿÒÿÓÿÓÿÓÿÓÿÓÿŒÒûŒÒŒÏ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì ŽíQŽ쓎ìÍŽíõíÿíÿíÿíÿíÿíÿíÿíÿíÿŽÓÿ‹&Œÿ‹*zÿ‹*|ÿ‹*}ÿ‹)ÿ‹)ÿ‹)„ÿ‹(†ÿŒ(ˆÿŒ(ŠÿŒ(ŒÿŒ'ÿ'ÿ'’ÿ&”ÿ&–ÿ%˜ÿ%šÿ$ÿ#ŸÿŽ#¢ÿŽ"£ÿŽ"¦ÿŽ!§ÿ!©ÿ «ÿ­ÿ¯ÿ±ÿ´ÿ¶ÿ¸ÿºÿ»ÿ¼ÿ¾ÿ¿ÿÀÿÃÿÄÿÆÿŒÈÿŒÉÿŒÊÿŒÊÿŒËÿŒÌÿŒÍÿÎÿÎÿÏÿÏÿÐÿÐÿÑÿÑÿÐÿŒÐÃŒÐ1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽí5ŽìKŽíwŽ칎íùíÿíÿíÿíÿŽêÿ¸ÿ‹)ÿ‹*|ÿ‹*~ÿ‹)€ÿ‹)ƒÿ‹)…ÿ‹(‡ÿŒ(‰ÿŒ(‹ÿŒ'ÿŒ'Žÿ'ÿ&“ÿ&•ÿ&—ÿ%™ÿ$›ÿ$žÿŽ# ÿŽ#¢ÿŽ"¥ÿŽ"¦ÿ!¨ÿ!ªÿ «ÿ­ÿްÿ²ÿµÿ·ÿ¹ÿºÿ»ÿ½ÿ¾ÿ¿ÿÀÿÂÿÄÿÅÿŒÇÿŒÈÿŒÉÿŒÊÿŒÊÿŒËÿŒÌÿŒÌÿŒÍÿŒÍÿÎÿÎÿÎÿŒÎÝŒÎWÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽìíùíÿíÿíÿíÿŽâÿŒ"©ÿ‹)ÿ‹)€ÿ‹)‚ÿ‹)„ÿ‹(†ÿŒ(ˆÿŒ(ŠÿŒ(ŒÿŒ'ÿ'ÿ'’ÿ&”ÿ&–ÿ%˜ÿ%šÿ$œÿ$žÿŽ#¡ÿŽ"£ÿŽ"¥ÿŽ!§ÿ!©ÿ ªÿ ¬ÿ®ÿ°ÿ²ÿµÿ·ÿ¹ÿºÿ»ÿ¼ÿ¾ÿ¿ÿÀÿÂÿÃÿÅÿÆÿŒÇÿŒÈÿŒÉÿŒÉÿŒÊÿŒÊÿŒËÿŒËÿŒÌÿŒÌáŒÌiŒÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì-ŽìÓíÿíÿíÿíÿíÿŽÝÿŒ"¨ÿ‹(‚ÿ‹)ƒÿ‹)…ÿŒ(‡ÿŒ(‰ÿŒ(‹ÿŒ'ÿŒ'Žÿ'ÿ&“ÿ&•ÿ&—ÿ%™ÿ$›ÿ$ÿ#ŸÿŽ#¢ÿŽ"¤ÿŽ"¦ÿŽ!§ÿ!©ÿ «ÿ ¬ÿ®ÿ±ÿ³ÿµÿ·ÿ¹ÿºÿ»ÿ¼ÿ½ÿ¾ÿ¿ÿÁÿÂÿÄÿÅÿÆÿŒÇÿŒÈÿŒÈÿŒÉÿŒÉÿ‹ÊÙ‹ËgŒÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî ŽìµíÿíÿíÿíÿíÿíÿŽàÿŒ ±ÿ‹'‹ÿ‹(†ÿŒ(ˆÿŒ(ŠÿŒ(ŒÿŒ'ÿ'ÿ'‘ÿ&”ÿ&–ÿ%˜ÿ%šÿ$œÿ$žÿŽ# ÿŽ#¢ÿŽ"¥ÿŽ"¦ÿ!¨ÿ!ªÿ «ÿ¬ÿ®ÿ±ÿ³ÿµÿ·ÿ¹ÿºÿ»ÿ¼ÿ½ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÅÿÆÿŒÆýŒÇ·‹ÉMŒÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì±íÿíÿíÿíÿíÿíÿíÿŽèÿÅÿŒ# ÿŒ'ŠÿŒ(‹ÿŒ'ÿŒ'Žÿ'ÿ&’ÿ&•ÿ&—ÿ%˜ÿ%šÿ$ÿ#žÿŽ#¡ÿŽ"£ÿŽ"¥ÿŽ"¦ÿ!¨ÿ!ªÿ «ÿ­ÿ¯ÿ±ÿ³ÿµÿ·ÿ¹ÿ¹ÿºÿ»ÿ½ÿ½ÿ¾ÿ¿ÿÀÿÁÿŒÃیÌÄ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìí»íÿíÿíÿíÿíÿíÿíÿíÿíÿŽáÿÁÿŒ#£ÿŒ'Žÿ'ÿ'‘ÿ&“ÿ&•ÿ%—ÿ%™ÿ$›ÿ$ÿ#ŸÿŽ#¢ÿŽ"£ÿŽ"¥ÿŽ"§ÿ!©ÿ!ªÿ «ÿ­ÿ®ÿ±ÿ³ÿµÿ·ÿ¸ÿ¹ÿºÿ»ÿ¼ÿŒ½ýŒ½ÏŒ¾ƒŒ¿3ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíŽìÓíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽçÿŽÏÿ¸ÿ#¥ÿ%—ÿ&–ÿ%˜ÿ%™ÿ$›ÿ$žÿ# ÿŽ#¢ÿŽ"¤ÿŽ"¦ÿŽ!§ÿ!©ÿ!ªÿ «ÿ¬ÿ®ÿ°ÿ²ÿ´ÿ¶ÿ¸ûŒ¹ÏŒº—Œ»YŒ»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽíçíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿëÿŽÝÿŽÏÿŽÃÿºÿ ³ÿ!®ÿŽ!ªÿŽ"¨ÿ"¥ñŽ!¦ïŽ!§ï!©í!ªßŒ «ÏŒ ¬¹®ŸŽ°Œ²]Œ´1Œ·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì5ŽìõíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽì—ŒîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìGíùíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽíùŽìqÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìIŽìõíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽíÕŽì7ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí/Ží×íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽìçŽìoŽìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìoŽíÕíÿíÿíÿíÿíÿíÿíÿíÿŽìùŽí¹Žì_ì ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíŽìKŽímííŽì}ŽíeŽì=ì ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ( ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽê!íAŽî_ŽìwŽ틎쟎ì»í¿Žíߎíߎì÷ìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ ì÷Ž ìߎ ìߎ ëà 뻎 ëŸ ë‹ ìs ì[Œ ê= êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëíIŽíoŽì—Ž컎íãíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ èûŽ è× ç³Œ 拌 è_Œ æ5Œæ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì!ŽíSŽ틎컎ìëíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÓŒ 㣠âoŒ á5ˆÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí-ŽíoŽì§ŽìçíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿŒ àóŒ ࿌ ߌ à=ˆÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽì_Ž죎ìçíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿŒÝóŒܳŒÛg‹ÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí1ŽìŽíËíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÚÿÙÿŒØÏŒ×{ŒÖ%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì=ŽìŽìßíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÕÿŒÕÏŒÓ{‹ÒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí1Ž샎ìãíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÔÿÓÿÒÿŒÒ»ŒÑ[ŒÌ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíoŽìÏíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ âÿ áÿ àÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÚÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÎïŒ΋Ì)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíIŽí«Žì÷íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÝÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿ‹Ì·ŒÍIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽêŽíoŽì×íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÏŠÊaˆÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí%Ž쓎íóíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÚÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿ‹ÉÛŠÈaˆ»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì9Ží¯íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÝÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÊÿŒÉÿŒÈÿŒÇÿŒÆÛŒÅaˆ»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìAŽì¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿŒÃÛŒÃQÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìAŽì¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÕÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿŒÁ¿Œ¿5ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìAŽì¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÞÿÝÿÝÿÜÿÛÿÚÿÙÿÙÿ×ÿÖÿÖÿÕÿÔÿÒÿÒÿÑÿÏÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒËÿŒËÿŒÊÿŒÊÿŒÊÿŒÊÿŒÉÿŒÈÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿŒ¾›Œ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí-Ží¯íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿ àÿ àÿßÿßÿÞÿÝÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÕÿÓÿÒÿÑÿÐÿÏÿÎÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿŒÆÿÅÿÅÿÅÿÄÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ïŒ½iÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽ웎ìûíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ ãÿ âÿ áÿ áÿ áÿ âÿ ãÿ âÿ áÿ àÿàÿßÿÝÿÜÿÜÿÚÿÙÿØÿ×ÿÖÿÕÿÕÿÔÿÒÿÑÿÐÿÏÿÏÿÎÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÉÿÇÿÆÿÆÿÄÿÃÿÂÿÁÿÁÿÁÿÁÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿŒ¼ÇŒ»)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽìwŽíïíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ âÿ ãÿ äÿ äÿ äÿ ãÿ âÿ àÿàÿßÿÞÿÜÿÜÿÛÿÙÿÙÿ×ÿÖÿÖÿÕÿÔÿÒÿÒÿÑÿÏÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÃÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ¾ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿŒ»÷Œ»ˆ"»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìEŽì×íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ äÿ åÿ æÿ åÿ åÿ äÿ ãÿ âÿ áÿ àÿßÿÞÿÝÿÜÿÛÿÙÿÙÿØÿÖÿÖÿÕÿÕÿÓÿÒÿÑÿÐÿÏÿÎÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÃÿÂÿÁÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ¼ÿ»ÿ¼ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿŒ¹ËŒ¹)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì§íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ äÿ åÿ çÿ çÿ çÿ åÿ åÿ äÿ äÿ âÿ áÿ àÿàÿßÿÝÿÜÿÜÿÚÿÙÿØÿ×ÿÖÿÕÿÕÿÓÿÒÿÑÿÐÿÏÿÏÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÉÿÇÿÆÿÆÿÄÿÃÿÂÿÁÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿºÿ»ÿ»ÿºÿ¹ÿ¹ÿŒ¸÷Œ·mÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíiŽíïíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ åÿ çÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ àÿàÿßÿÞÿÜÿÜÿÚÿÙÿØÿ×ÿÖÿÖÿÕÿÔÿÒÿÒÿÑÿÏÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒËÿŒÉÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÃÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ·ÿ·ÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿŒµ³Œ³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí!Ží¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ êÿŽ éÿŽ èÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ æÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ ãÿ âÿ áÿàÿßÿÞÿÝÿÜÿÛÿÙÿÙÿØÿÖÿÖÿÕÿÕÿÓÿÒÿÑÿÐÿÏÿÎÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÃÿÂÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ¼ÿ»ÿºÿºÿ¹ÿ¹ÿ·ÿ·ÿµÿµÿ³ÿµÿ¶ÿµÿ´ÿ´ÿ²ãŒ°=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽímŽíóíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ åÿ çÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ çÿ åÿ åÿ äÿ äÿ âÿ áÿ àÿàÿÞÿÝÿÜÿÜÿÚÿÙÿØÿ×ÿÖÿÕÿÕÿÓÿÒÿÑÿÐÿÏÿÏÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÉÿÇÿÆÿÆÿÄÿÃÿÂÿÁÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ³ÿ²ÿޱÿްÿ²ÿ³ÿ²ÿ±ÿ°û¯uÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽí¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ æÿ èÿŽ ëÿŽ ìÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ àÿàÿßÿÞÿÜÿÜÿÚÿÙÿØÿ×ÿÖÿÖÿÕÿÔÿÒÿÒÿÑÿÏÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒËÿŒÉÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ·ÿµÿ´ÿ²ÿ²ÿްÿޝÿ®ÿ­ÿ¯ÿްÿްÿޝÿŒ­£Œ"® ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìUŽíïíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ èÿŽ ëÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ ãÿ âÿ áÿàÿßÿÞÿÝÿÜÿÛÿÙÿÙÿØÿÖÿÖÿÕÿÔÿÓÿÒÿÑÿÐÿÏÿÎÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÃÿÂÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ¼ÿ»ÿºÿºÿ¹ÿ¹ÿ·ÿ·ÿµÿ´ÿ³ÿ²ÿްÿްÿ®ÿ ­ÿ ¬ÿ ¬ÿ ¬ÿ®ÿŽ®ÿ ­ÿŒ ¬ÏŒ ¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî Ží›íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ èÿ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ äÿ âÿ áÿ àÿàÿÞÿÝÿÜÿÛÿÚÿÙÿØÿ×ÿÖÿÕÿÕÿÓÿÒÿÑÿÐÿÏÿÏÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÆÿÄÿÃÿÂÿÁÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ³ÿ²ÿޱÿްÿŽ®ÿ®ÿ ¬ÿ ¬ÿ «ÿ!«ÿ!ªÿ ªÿ ¬ÿ «ÿ «ç‹!©9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí-ŽìÓíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ çÿ êÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ áÿ àÿàÿßÿÞÿÜÿÜÿÚÿÙÿØÿ×ÿÖÿÖÿÕÿÔÿÒÿÒÿÐÿÏÿÏÿÎÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÉÿŒÉÿŒÉÿŒÈÿÆÿÆÿÄÿÄÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ²ÿ²ÿްÿޝÿ®ÿ ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!ªÿŽ!¨ÿŽ"¨ÿ!©ÿ!ªÿŒ!©óŒ!©Uÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì]ŽíóíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ éÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ ãÿ âÿ áÿàÿßÿÞÿÝÿÜÿÛÿÙÿÙÿØÿÖÿÖÿÕÿÔÿÒÿÒÿÑÿÐÿÏÿÎÿÍÿŒÍÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÃÿÂÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ¼ÿ»ÿºÿºÿ¹ÿ¹ÿ·ÿ·ÿµÿ´ÿ³ÿ²ÿްÿޝÿ®ÿ ­ÿ ¬ÿ ¬ÿ!«ÿ!ªÿ!ªÿ!©ÿŽ"¨ÿŽ"§ÿŽ"¦ÿ!§ÿ!©ÿŽ!¨ÿ"§qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽí“íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ èÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ ãÿ âÿ áÿ àÿàÿÞÿÝÿÜÿÛÿÚÿÙÿØÿ×ÿÖÿÕÿÕÿÓÿÒÿÑÿÐÿÏÿÏÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÆÿÄÿÃÿÂÿÁÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ³ÿ²ÿޱÿްÿŽ®ÿ®ÿ ¬ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ"¦ÿŽ"§ÿŽ"¦ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ êÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ áÿ àÿàÿßÿÝÿÜÿÜÿÚÿÙÿØÿ×ÿÖÿÖÿÕÿÔÿÒÿÒÿÐÿÏÿÏÿÎÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÉÿŒÈÿÆÿÆÿÄÿÄÿÂÿÁÿÀÿÀÿ¾ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ²ÿ±ÿްÿޝÿ®ÿ ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!ªÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ"£ÿŽ"¥ÿ"¥›ˆ"™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí-íßíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ èÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿàÿßÿÞÿÝÿÜÿÛÿÙÿÙÿ×ÿÖÿÖÿÕÿÔÿÒÿÒÿÑÿÐÿÏÿÎÿÍÿŒÍÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÃÿÂÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ¼ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ·ÿµÿ´ÿ²ÿ²ÿްÿޝÿ®ÿ ­ÿ ¬ÿ ¬ÿ!«ÿ!ªÿ!ªÿ!©ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ#£ÿŒ"¢«ˆ"™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìMŽíóíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ êÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ ãÿ âÿ áÿ àÿßÿÞÿÝÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÕÿÓÿÒÿÑÿÐÿÏÿÎÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÃÿÂÿÁÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ³ÿ²ÿޱÿްÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿ$Ÿÿ$žÿ# ÿŒ"¡«ˆ"™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìmŽìûíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ èÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ áÿ àÿàÿßÿÝÿÜÿÜÿÚÿÙÿØÿ×ÿÖÿÖÿÕÿÔÿÒÿÒÿÐÿÏÿÏÿÎÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÉÿÈÿÆÿÆÿÄÿÄÿÂÿÁÿÀÿÀÿ¾ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ²ÿ±ÿްÿޝÿ®ÿ ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¡ÿŽ# ÿŽ$Ÿÿ$žÿ$ÿ$œÿ$žÿŒ"ž«ˆ"™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí‹íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ éÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿàÿßÿÞÿÝÿÜÿÛÿÙÿÙÿ×ÿÖÿÖÿÕÿÔÿŒÒóÑÏŒѯŒГÏŽÎ_Í[ŒÍA‹ËAŠÊ1ŠÊ!ŠÊ!ŠÈ!ŠÆ!ŠÆ!ŠÆ!ŠÆ!ŒÅ=ÃAÃIŽÂ_ŒÁkÀŒ¿›Œ¾³½Ï½ï¼ÿ¼ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ·ÿµÿ´ÿ²ÿ²ÿްÿޝÿ®ÿ ­ÿ ¬ÿ ¬ÿ!«ÿ!ªÿ!ªÿ!©ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ$Ÿÿ$žÿ$žÿ$ÿ%›ÿ%šÿ$›ÿŒ"œ«ˆ"™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽí§íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ êÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ ãÿ âÿ áÿ àÿßÿÞÿÝÿÜÿÛÿÙÿÙÿØÿŒ×óŒÕ»ŒÕƒÕQŒÖ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ»Œ»5ºWŒ¹‡Œ¹¯Œ¸Û¸ÿ·ÿ¶ÿµÿ³ÿ²ÿޱÿްÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿ$žÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿ%™ÿŒ$›«ˆ"™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî Žì·íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ èÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ áÿ àÿàÿßÿÝÿÜÿÜÿŒÚûŒÙ¿ŒØ{ŒØ9ˆÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ»!Œ»=ºMŽº_Žº_޹_¶oµ£Œ´ÛŒ´÷²ÿ±ÿްÿޝÿ®ÿ ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¡ÿŽ# ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿ%˜ÿ&˜ÿ%—ÿŒ$˜ŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî ŽìÃíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿŽ éÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ àÿàÿßÿÞÿŒÝ÷ŒÛ¯ŒÛ[ŠÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ¿ Œ½IŒ½{Œ½«¼×Œ»û»ÿºÿºÿ¹ÿ¸ÿ·ÿ·ÿµÿ´ÿ²ÿ²ÿްÿޝÿ®ÿ ­ÿ ¬ÿ ¬ÿ!«ÿ!ªÿ!ªÿ!©ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ# ÿŽ$Ÿÿ$žÿ$žÿ$ÿ%›ÿ%šÿ%šÿ%™ÿ&˜ÿ&—ÿ&–ÿ%–ÿ%—ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÃíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿŽ êÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ ãÿ âÿ áÿ àÿßÿŒÞ¿ŒÝcŒÝ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÀ1Œ¿Œ¾ÇŒ¾û¾ÿ½ÿ¼ÿ¼ÿ»ÿºÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ³ÿ²ÿޱÿްÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿ$žÿ$žÿ$ÿ$œÿ%šÿ%šÿ%™ÿ%˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&•ÿŒ%–qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì×íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿŽ êÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿ èÿ çÿ çÿ çÿ åÿ åÿ äÿ äÿ âÿ áÿ àëŒ ß‡‹Þ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÃ)ŒÃŒÁÛÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ²ÿޱÿްÿޝÿ®ÿ ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ&“ÿ‹&”YÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì×íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿŒ æ÷Œ 篎ëïìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿŒ âÏŒ á]ŒÝ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ»ŒÄUŒÄ¿ÃÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ·ÿµÿ´ÿ²ÿ²ÿްÿޝÿ®ÿ ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!ªÿŽ!©ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ# ÿŽ$Ÿÿ$žÿ$žÿ$œÿ%›ÿ%šÿ%šÿ%™ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&”ÿ&”ÿ'’ÿ'’ÿŒ&‘û‹&‘=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî ŽìÇíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ ç÷Œ æè9Žì×ìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿŒ ã·Œ âAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÄ ŒÅoŒÅÛÄÿÃÿÂÿÁÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ¼ÿ»ÿºÿºÿ¹ÿ¹ÿ·ÿ·ÿ¶ÿµÿ³ÿ²ÿޱÿްÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿ$žÿ$žÿ$ÿ$œÿ%šÿ%šÿ%™ÿ%˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ë'%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî ŽìÃíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èûŒæŒ æí)ìçìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿ èÿ çÿ çÿ çÿ åÿ åÿŒ 䯌 ä1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆÌŒÇaÆçÆÿÄÿÃÿÂÿÁÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ³ÿ²ÿޱÿްÿޝÿ®ÿ ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'Ž×Œ&Œ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽì¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿŒ ç§Œ å%ÿÿÿí)ìçìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿŒ 䳌 å1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹ÇEŒÈÓÇÿÆÿÅÿÄÿÃÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ·ÿµÿ´ÿ²ÿ²ÿްÿޝÿ®ÿ ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!ªÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ# ÿŽ$Ÿÿ$žÿ$žÿ$œÿ%›ÿ%šÿ%šÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'’ÿ'’ÿ'ÿ'ÿ'ÿ'ŽÿŒ(ÿ‹'Œ·ˆ"ˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽí«íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èËç=ÿÿÿÿÿÿí)íçìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿŒ æÇŒ æAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÈ‹ȧŒÈÿÇÿÆÿÅÿÄÿÃÿÂÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ¼ÿ»ÿºÿºÿ¹ÿ¹ÿ·ÿ·ÿµÿµÿ³ÿ²ÿޱÿްÿ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ$ ÿ$žÿ$žÿ$ÿ$œÿ%šÿ%šÿ%™ÿ%˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(Œÿ‹(‹ƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí“íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èï çiˆîÿÿÿÿÿÿŽìíçìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çß‹æYÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹ÇYŒÉïŒÈÿÇÿÆÿÆÿÄÿÃÿÂÿÁÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ³ÿ²ÿޱÿްÿŽ®ÿ®ÿ ¬ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ÿŒ(ŒÿŒ(‹ÿŠ'‰UÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìyíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿ 諌 èÿÿÿÿÿÿÿÿÿŽìŽì×ìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ éÿŽ éÿŽ èÿŒ ç÷Œç{Œæ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÊ‹ɧŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ·ÿµÿ´ÿ²ÿ²ÿްÿޝÿ®ÿ ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!ªÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ# ÿŽ$Ÿÿ$žÿ$žÿ$œÿ%›ÿ%šÿ%šÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'’ÿ'‘ÿ'ÿ'ÿ'ÿ'ŽÿŒ(ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(ŠÿŒ'‰ó'‰%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìUíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿ éë èUÿÿÿÿÿÿÿÿÿÿÿÿŒî ŽìÃíÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿŒ ç¯ ç!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰Ë1‹ÊߌÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÃÿÂÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ¼ÿ»ÿºÿºÿ¹ÿ¹ÿ·ÿ·ÿµÿ´ÿ³ÿ²ÿްÿްÿ®ÿ ­ÿ ¬ÿ ¬ÿ!«ÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ$Ÿÿ$žÿ$žÿ$ÿ%œÿ%šÿ%šÿ%™ÿ%˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿ‹'ˆÓˆ*ˆ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿî5ŽíóíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿ 軌 èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí£íÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ é㌠çMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÊ]ŒÊóŒÉÿŒÉÿŒÈÿÇÿÆÿÆÿÄÿÃÿÂÿÁÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ³ÿ²ÿޱÿްÿŽ®ÿ®ÿ ¬ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿ%˜ÿ&˜ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(ˆÿŒ(ˆÿ‹(‡ŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíçíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ èûŽ éwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì{íÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ éÿ 蓌ê ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹˃ŒËÿŒÉÿŒÉÿŒÉÿŒÈÿÆÿÆÿÄÿÄÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ²ÿ²ÿްÿޝÿ®ÿ ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!ªÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¡ÿŽ# ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%šÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'’ÿ'‘ÿ'ÿ'ÿ'ÿŒ'ŽÿŒ(ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‰'…]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî ŽìËíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ êÿŽ éÿŽ éçŒ ç=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíEŽìûìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ éߌ èAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆÌŒË›ŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÃÿÂÿÀÿÀÿ¿ÿ¾ÿ¾ÿ½ÿ¼ÿ¼ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ·ÿµÿ´ÿ³ÿ²ÿްÿޝÿ®ÿ ­ÿ ¬ÿ ¬ÿ!«ÿ!ªÿ!ªÿ!©ÿŽ"¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ$Ÿÿ$žÿ$žÿ$ÿ%›ÿ%šÿ%šÿ%™ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ)‡ÿ‹)†ÿ‹(…ó‹*…!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíŸíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿ èÇŒ êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽíëíÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿ ꓌ê ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆÌ‹Ë«ŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÆÿÄÿÃÿÂÿÁÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ³ÿ²ÿޱÿްÿŽ®ÿ®ÿ ¬ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿ%˜ÿ&˜ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(ˆÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹(ƒÇˆ3€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìeíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŒ 裌æ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì»íÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ë㌠ëIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹ÊM‹ÊŸ‹ÊŸ‹É¿‹ÈÇŒÉߌÈûÆÿÆÿÄÿÄÿÂÿÁÿÀÿÀÿ¾ÿ¾ÿ¾ÿ½ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ²ÿ±ÿްÿޝÿ®ÿ ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¡ÿŽ# ÿŽ$Ÿï$žÛ$ÿ$œÿ%›ÿ%šÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'’ÿ'‘ÿ'ÿ'ÿ'ÿŒ'ÿŒ(ÿŒ(ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)ƒÿ‹)‚ÿŠ(‚sÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî1Žì÷íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìqíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ 믎 ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÅŒÅ5ÄWŒÃ{Œ§ÀÓŒÀû¿ÿ¾ÿ¾ÿ½ÿ¼ÿ¼ÿ»ÿºÿºÿ¹ÿ¸ÿ·ÿ·ÿµÿ´ÿ²ÿ²ÿްÿޝÿ®ÿ ­ÿ ¬ÿ ¬ÿ!«ÿ!ªÿ!ªÿ!©ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ$Ÿÿ$žÿŒ#Ï‹#œU‹$œ-Œ#›[Œ$š%™Ï&˜ÿ&—ÿ&–ÿ&–ÿ&”ÿ&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)÷Š+€)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî ŽìÛíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿ èû çmÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí!Žì÷íÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ ëû ëqÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ¿ Œ½5Œ½kŒ¾£Œ¼ß¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ³ÿ²ÿޱÿްÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿ$žÿ$žÿ$ÿ$œÿŒ$›ÏŒ#šQÿÿÿÿÿÿŠ(—Œ%˜WŒ&–£%•ë&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(ˆÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€Çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì§íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿ èûŒ èUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí»íÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ ëß ì5ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹¼Œ¼_ŒºŸŒ¹ç¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ²ÿ±ÿްÿޝÿ®ÿ ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¡ÿŽ# ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿŒ$˜Ç%˜=ÿÿÿÿÿÿÿÿÿˆ"ˆŒ%•EŒ&’£Œ'‘ó'ÿ'ÿ'ÿŒ'ÿŒ(ÿŒ(ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹*€ÿ‹*ÿŠ*~iÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìaíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿ èûŒ èUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìYíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŒ 쳎 êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ¸5Œ·Œ·Ïµÿ´ÿ²ÿ²ÿްÿޝÿ®ÿ ­ÿ ¬ÿ ¬ÿ!«ÿ!ªÿ!ªÿ!©ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ$Ÿÿ$žÿ$žÿ$ÿ%›ÿ%šÿ%šÿ%™ÿ&˜ÿ&—ÿŒ%–§Œ&—ÿÿÿÿÿÿÿÿÿÿÿÿŒ&Œ Œ&gŒ'ŽË'ŽÿŒ'ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*ÿ‹*~ÿŠ)}ïŒ(}ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí!ŽíóíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èûŒçUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî íßíÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ ëû ë{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒµ%Œ²{Œ²ÓޱÿްÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿ$žÿ$žÿ$ÿ$œÿ%šÿ%šÿ%™ÿ%˜ÿ&˜ÿ&–ÿ&–ÿŒ&•óŒ%“sˆ"ˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(9‹(Œ§‹'ŒûŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*}ÿ‹*}ÿ‹*|›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽìÃíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿŒç]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíoíÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ ìóŒ ëIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿް1¯­ë ­ÿ ¬ÿ «ÿ!«ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¡ÿŽ# ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿŒ&’ÏŒ&‘1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ)Š%Œ(‹Œ(Š÷Œ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‰*z5ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìsíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿŒæuÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî íçìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ ì× ì)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ"® Œ ¬YŒ «¿!«ÿ!ªÿ!ªÿ!©ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¤ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ# ÿŽ$Ÿÿ$žÿ$žÿ$ÿ%›ÿ%šÿ%šÿ%™ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&”ÿ&”ÿ'’ÿ'’ÿŒ'ûŒ&Žˆ"ˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ(ŠŒ(‰Œ(ˆ÷Œ(ˆÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿŠ)|¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí)Žì÷íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ æ“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíoíÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ 뻎 êÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ"ª-Œ ©—!©÷Ž!¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿ$žÿ$žÿ$ÿ$œÿ%šÿ%šÿ%™ÿ%˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿŒ&ŽÇ‹(!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ(†‹)‡›‹(†û‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*}ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*{QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìÇíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿŒ ç·ˆÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽìßìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ 웈îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ"ªŽ!§Ž!¦ïŽ"¦ÿŽ"¥ÿŽ"¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ'Œó‹'ŒYÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ*…)Š(„³‹)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*|ÿ‹*zÿŠ)y׈3€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽímíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿŒ æÛŠ æÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìMìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ ë{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ"¦ Ž"¦oŽ"¤çŽ#£ÿŽ#£ÿŽ#¢ÿŽ# ÿŽ$Ÿÿ$žÿ$žÿ$œÿ%›ÿ%šÿ%šÿ%™ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&”ÿ&”ÿ'’ÿ'’ÿ'ÿ'ÿ'ÿ'ŽÿŒ(ÿŒ(ÿŒ(ŒÿŒ'Œ“ˆ3ˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ'‚EŠ(‚׋)ÿ‹)€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿŠ)xaÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽíïíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿŒ æóŒ ä-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí¯ìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ ëû ë]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ"¦ Ž"¢o"¢ëŽ#¡ÿŽ# ÿ$žÿ$žÿ$ÿ$œÿ%šÿ%šÿ%™ÿ%˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿ‹'Š¿Œ(Šÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ3€Š)€o‹)€ó‹*ÿ‹*}ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*xÿŠ)wÛˆ3wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì§íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿŒ æaÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìûìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ ìóŒ ëIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ$¢Ž" #Ÿó$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(Šÿ‹(‰ß‹)ˆ-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(Š)}«‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*|ÿ‹*zÿ‹*yÿ‹*yÿ‹*xÿŠ*wÿˆ)waÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìEíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿŒ å§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì_ìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿ ìó‹ í=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ$Œ#›Œ$œû%›ÿ%šÿ%šÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'’ÿ'’ÿ'ÿ'ÿ'ÿ'ŽÿŒ(ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ó‹(†Eÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹){Q‹*|ã‹*|ÿ‹*|ÿ‹*{ÿ‹*yÿ‹*yÿ‹*xÿ‹*wÿŠ*vÿŠ)uÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽìÓíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ æÿ å㊠âÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽë«ìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìç ì)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ$œ1Œ$šÃ%šÿ%™ÿ%˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŠ(†û‰'…UÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ,}‹*{Ÿ‹*{ÿ‹*zÿ‹*yÿ‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*uÿŠ*sQÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíkíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ‹ ãMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìïìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìç ì)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹$™]%˜ç&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)„ÿ‹(ƒqÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹*{M‹*yã‹*yÿ‹*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿŠ)t¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽêŽíëíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿŒ ãŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽê1ìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìç ì)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(—Œ%——&–ÿ&•ÿ&”ÿ&”ÿ'’ÿ'‘ÿ'ÿ'ÿ'ÿ'ŽÿŒ(ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)ƒÿ‹)‚ÿŠ(‚qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ,yŠ)w«‹*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿ‰*sÿ‡*s1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí‡íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ æÿ åÿ äÿ äïŒ æÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìcìÿŽ ìÿŽ ìÿŽ ìÿŽ ìç ì)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ%•=Œ&•×&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿŠ)qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ)w]‰)vóŠ*uÿŠ*tÿ‰*tÿ‰*sÿˆ*r—ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì÷íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿŒ âiÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽëŽìÿŽ ìÿŽ ìÿŽ ìç ì)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ*• &”‹Œ'’û'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(ˆÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)‚ÿ‹)€ÿ‹*€ÿŠ*qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰+v%‰)uˉ*tÿ‰*sÿ‰+rÿ‰+r÷†,uÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŸíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿŒ âÓˆÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ볎 ìÿŽ ìÿ ìóŽ ì-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ&‘A'ß'ÿ'ÿŒ'ŽÿŒ(ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹*€ÿ‹*ÿ‹*~ÿ‰)|aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ3w‰*t‰+rÿ‰+rÿ‰+rÿˆ+pkÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí%ŽìûíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ‹ âIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ëÏŽ ìÿ ìó‹í=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(ŽŒ&§'ŽÿŒ'ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿ‹)‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*~ÿ‹*}ÿŠ)|û‰)}Qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡*rQ‰*qï‰+qÿ‰*pËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŸíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ ãÿ âÿŒ á¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ ìß ëûŒ ëQÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ'ŒaŒ'ŒóŒ(ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(ˆÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹)|óŠ)|9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰,r!‰*pÏŠ+oÿˆ*o-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí%ŽìûíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿŒ áAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ì÷ ëiÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹)Œ-‹'ŒÓŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{çŠ({ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„*s ‰+nŸŠ+n‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŸíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿŒ à¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ"™Ž"¢%$¡A# [Ž$Ÿ_Œ#žs$ž$Œ$œwŽ%š_Ž%š_%™EŒ&—1‰&”ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ*ˆ ‹(‹§Œ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿŠ)yψ*{ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+nMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì÷íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ ãÿ âÿ áÿ áÿ àÿŒ ßQÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ#£i"¢óŽ#¡ÿŽ# ÿ$žÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿ%˜ÿ&˜ÿ&–ÿŒ&–ó%•ÏŒ%”§Œ'“sŒ&‘EŒ&Œ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(‰y‹'ˆûŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿŠ)x£ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì‹íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿŒ ß×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ#¡)# ÏŽ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'’ÿ'‘ÿŒ'ûŒ&ÇŒ&އŒ&Aˆ3ˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(ˆIŒ(‡ó‹)†ÿ‹)†ÿ‹)…ÿ‹)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*|ÿ‹*zÿ‹*yÿ‹*yÿ‹*xÿŠ*wqÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽêŽíïíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿŒàkÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ"™$‹$žÿ$ÿ%›ÿ%šÿ%šÿ%™ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&”ÿ&”ÿ'’ÿ'’ÿ'ÿ'ÿ'ÿ'ŽÿŒ(ÿ‹'ë‹(Œ›Š'ŠEˆ3ˆÿÿÿÿÿÿÿÿÿÿÿÿŒ*‡)‹)…ß‹)…ÿ‹)„ÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*xÿ‹*wÿŠ)wû‰)u5ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíoíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ ãÿ âÿ áÿ áÿ àÿàÿàÿŒ ß÷Šßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹#œI$œï%šÿ%šÿ%™ÿ%˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿ‹'‰ã‹'‰‹)‰ÿÿÿÿÿÿÿÿÿŠ(„‹(„Ç‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*}ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*yÿ‹*wÿŠ*wÿŠ*vÿ‰*vߊ,uÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìÛíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿßÿŒÞŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&›!Œ%™Ï%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'’ÿ'‘ÿ'ÿ'ÿ'ÿŒ'ÿŒ(ÿŒ(ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿ‹'ˆû‹(‡§Š*†1ÿÿÿÿÿÿˆ*„ Š'‚³‹)‚ÿ‹)ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*|ÿ‹*zÿ‹*yÿ‹*yÿ‹*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿ‰*t§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíIíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ êÿŽ éÿŽ èÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿŒÝAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ&™ Œ$™§&˜ÿ&—ÿ&–ÿ&–ÿ&”ÿ&”ÿ'’ÿ'’ÿ'ÿ'ÿ'ÿ'ŽÿŒ(ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿ‹)†ÿ‹)†ÿŠ)…¯Œ*„1ÿÿÿˆ3€Š(£‹)€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*uÿŠ*tÿ‰*tÿˆ)sUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí³íÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ åÿ äÿ ãÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿŒÜãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ%—&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿŠ(‚ŸŠ(‚ÿÿÿ‹*€‹*ÿ‹*}ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*vÿŠ*tÿ‰*tÿ‰*sÿˆ+rëˆ(sÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽìûíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿßÿÞÿÝÿÜÿŒÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ&–]Œ&•û&”ÿ&“ÿ'’ÿ'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)‚ÿ‹(€ó‹*€wˆ3€‹*~‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*|ÿ‹*zÿ‹*yÿ‹*yÿ‹*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿˆ+r«ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿФwíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿŒÚ=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹&”AŒ&“ó'’ÿ'’ÿ'ÿ'ÿ'ÿ'ŽÿŒ(ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*ÿŠ)~ω*}1‹*}‹*|ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*uÿŠ*tÿ‰*tÿ‰+rÿ‰+rÿ‰+rÿ‰+qÿ‰+pMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ"”ßíÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ åÿ äÿ ãÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙïˆÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$‘5&‘ç'‘ÿ'ÿ'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*}ÿŠ)|û‹)}w‹*|‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*uÿŠ*tÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿ‰+oß„*s ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,QM‹ ¦ÿíÿíÿíÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿßÿÞÿÝÿÜÿÛÿÚÿÙÿŒÙ§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&)&ç'ÿ'ŽÿŒ'ÿŒ(ÿŒ(ÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)‚ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿŠ){»‹*{§‹*zÿ‹*yÿ‹*yÿ‹*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+oÿ‰)nƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†+Q·ŒÁÿíÿíÿíÿíÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿØÿŒÙ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&)&ç'ŽÿŒ(ÿŒ(ÿŒ(ŒÿŒ(ŒÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*|ÿ‹*{ãŠ)xË*yÿ‹*xÿ‹*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿ‰*tÿ‰+rÿ‰+rÿ‰+rÿ‰+qÿŠ+oÿŠ+oÿŠ+nÿŠ+m÷‰,n!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†-Q)‡,QÿŽÞÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿŒÖ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&)Œ'çŒ(ÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*}ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹)xó‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*uÿŠ*tÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+nÿŠ+nÿŠ,mÿ‰+l£ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†+Q‹‡+XÿíÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿßÿÞÿÝÿÜÿÜÿÚÿÙÿÙÿØÿ×ÿŒÕçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ()Œ(çŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(ˆÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)‚ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*yÿ‹*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+oÿŠ+nÿŠ,mÿŠ+lÿŠ+kÿ‡,h1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€3U‡+Qçˆ'nÿíÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿØÿØÿ×ÿÕÿŒÔ¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒ(Œ)Œ(ŒçŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*yÿ‹*yÿ‹*xÿ‹*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿ‰*sÿ‰+rÿ‰+rÿ‰+rÿ‰+qÿŠ+oÿŠ+oÿŠ+nÿŠ+nÿŠ+lÿŠ+kÿŠ,jÿ‰,j³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰$‚q‡,Qÿ‰#ÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿŒÓsÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(Š=Œ'ŠóŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*uÿŠ*tÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+nÿŠ+nÿŠ,mÿŠ+lÿŠ,jÿŠ,jÿ‰,iÿˆ,hAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìU‰$„û‡,QÿŠ”ÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÚÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÓMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(‰I‹'ˆûŒ(ˆÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)‚ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*yÿ‹*wÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+oÿŠ+nÿŠ,mÿŠ+lÿŠ+kÿŠ,jÿ‰,iÿ‰,iÿˆ+h³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí=Žåó‡+Vÿ‡,Qÿ‹£ÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿØÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿŠÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ'‡aŒ(‡ÿ‹)†ÿ‹)†ÿ‹)…ÿ‹)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*yÿ‹*yÿ‹*xÿ‹*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿ‰*sÿ‰+rÿ‰+rÿ‰+rÿ‰+qÿŠ+oÿŠ+oÿŠ+nÿŠ+nÿŠ+lÿŠ+kÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‡,g1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí)Ží댵ÿ‡,Qÿ‡,QÿŒ²ÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÓÿÒÿÒïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹)†ƒ‹)†ÿ‹)…ÿ‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*uÿŠ*tÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+nÿŠ+nÿŠ,mÿŠ+kÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿˆ,f§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÛíÿŠ$†ÿ‡,Qÿ‡,QÿŒÃÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÚÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÐËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹(…¯‹)„ÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*yÿ‹*wÿŠ*wÿŠ*vÿŠ*vÿŠ*tÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+oÿŠ+nÿŠ,mÿŠ+lÿŠ+kÿŠ,jÿ‰,iÿ‰,iÿ‰,iÿ‰,gÿ‰,fÿˆ+eû‰-dÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî ŽìÇíÿêÿ‡+Xÿ‡,Qÿ‡,QÿŒÊÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿŒϧÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ*„ ‹(ƒÏ‹)‚ÿ‹)‚ÿ‹)ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*yÿ‹*yÿ‹*xÿ‹*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿ‰*sÿ‰+rÿ‰+rÿ‰+rÿ‰+pÿŠ+oÿŠ+oÿŠ+nÿŠ,mÿŠ+lÿŠ+kÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,eÿ‰,eÿˆ+c‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí§íÿíÿÃÿ‡,Qÿ‡,Qÿ‡,QÿØÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿŒ·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹*ƒ!Š(‚ë‹)ÿ‹)€ÿ‹*€ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*uÿŠ*tÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+nÿŠ+nÿŠ,mÿŠ+kÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿˆ,cë„3b ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíÿíÿíÿŠ"—ÿ‡,Qÿ‡,Qÿ‡,QÿÝÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ âÿ áÿ àÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÚÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÎoÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹)I‹)€ÿ‹*€ÿ‹*ÿ‹*}ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*yÿ‹*wÿŠ*wÿŠ*vÿŠ*vÿŠ*tÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+nÿŠ+nÿŠ,mÿŠ+lÿŠ+kÿŠ,jÿ‰,iÿ‰,iÿ‰,iÿ‰,gÿ‰,fÿ‰,eÿ‰,eÿ‰,cÿ‰,cÿ‰+cYÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëUíÿíÿíÿíÿˆ(nÿ‡,Qÿ‡,Qÿ‡,QÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿ‹Í[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹*€‹*ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*|ÿ‹*zÿ‹*yÿ‹*yÿ‹*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿ‰*sÿ‰+rÿ‰+rÿ‰+rÿ‰+pÿŠ+oÿŠ+oÿŠ+nÿŠ,mÿŠ+lÿŠ+kÿŠ,jÿ‰,iÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,eÿ‰,eÿ‰,cÿ‰,cÿ‰,bÿˆ+a»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí-ŽíóíÿíÿíÿŽãÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿ‹ÍAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ3€Š)~¿‹*}ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*uÿŠ*tÿ‰*tÿ‰+rÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+nÿŠ+nÿŠ,mÿŠ+kÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,aÿ‰-bÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî Žì×íÿíÿíÿíÿŒ¼ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ âÿ áÿ àÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÚÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÎÿŒÍÿŒÍÿŒÍÿ‹Ì9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ(}Š*}ë‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*yÿ‹*wÿŠ*wÿŠ*vÿŠ*vÿŠ*tÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+nÿŠ+nÿŠ,mÿŠ+lÿŠ,kÿŠ,jÿ‰,iÿ‰,iÿ‰,iÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,awÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì£íÿíÿíÿíÿíÿŠ"•ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡(bÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÝÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŠÊ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰*|Q‹*|ÿ‹*|ÿ‹*|ÿ‹*zÿ‹*yÿ‹*yÿ‹*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿ‰*tÿ‰*sÿ‰+rÿ‰)qÛ‰+rÿ‰+pÿŠ+oÿŠ+oÿŠ+nÿŠ,mÿŠ+lÿŠ+kÿŠ,jÿ‰,iÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,eÿ‰,eÿ‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,aÿˆ+`ÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìYíÿíÿíÿíÿíÿíÿ‰'sÿ‡,Qÿ‡,Qÿ‡,Qÿˆ(dÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŠÊ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹*{Ÿ‹*|ÿ‹*{ÿ‹*zÿ‹*yÿ‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*uÿŠ*tÿ‰*tÿ‰+rÿ‰+rÿˆ*rÛ‰*q‡Š+oÿŠ+oÿŠ+nÿŠ+nÿŠ,mÿŠ+kÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,aÿ‰,aÿ‰,aÿ‰,`ÿ‡,`%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽíïíÿíÿíÿíÿíÿêÿ‡+Vÿ‡,Qÿ‡,Qÿ‡,Qÿˆ(dÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÚÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŠÊ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ*{ ‹*{ß‹*zÿ‹*yÿ‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*vÿŠ*tÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+p›‰*oY‰*nûŠ+nÿŠ,mÿŠ+lÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿˆ,^oÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì§íÿíÿíÿíÿíÿíÿÏÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ(dÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÞÿÝÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÊÿŠÈ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ){A‹*yÿ‹*yÿ‹*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿ‰+oMˆ+mE‰,móŠ+lÿŠ+kÿŠ,jÿ‰,iÿ‰,iÿ‰,iÿ‰,hÿ‰,fÿ‰,eÿ‰,eÿ‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,^ÿˆ+]¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìAíÿíÿíÿíÿíÿíÿíÿŒµÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ(dÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿØÿ×ÿ×ÿÕÿÔÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŠÆ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹*yŸ‹*xÿ‹*wÿŠ*wÿŠ*vÿŠ*uÿŠ*tÿ‰*tÿ‰+rÿ‰+rÿ‰+rÿ‰+qÿŠ+oÿŠ+oÿ‰+nãŠ,qˆ,m=‰+kóŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,aÿ‰,aÿ‰,aÿ‰,_ÿ‰,^ÿ‰,]ÿˆ,\ûˆ*b ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìÏíÿíÿíÿíÿíÿíÿíÿŠ"—ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡+SÿŽ êÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿŠÆ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ,y‹*wçŠ*wÿŠ*vÿŠ*uÿŠ*tÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+nÿŠ+nÿ‰+m—ÿÿÿˆ,l=‰,ió‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,]ÿ‰,]ÿ‰-]ÿ‰-\MÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìMíÿíÿíÿíÿíÿíÿíÿíÿ‰%ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿßÿÞÿÝÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÊÿŒÉÿŒÈÿŒÇÿÆÿŠÆ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰)w]Š*vÿŠ*vÿŠ*uÿ‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+oÿŠ+nÿŠ,mÿŠ+lÿ‰+j9ÿÿÿˆ+iMˆ+hû‰,iÿ‰,hÿ‰,fÿ‰,eÿ‰,eÿ‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,^ÿ‰,]ÿ‰-]ÿ‰-\ÿˆ,[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì·íÿíÿíÿíÿíÿíÿíÿíÿˆ(iÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿØÿ×ÿ×ÿÕÿÔÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿŠÄ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰)u»Š*uÿŠ*tÿ‰*tÿ‰+rÿ‰+rÿ‰+rÿ‰+qÿŠ+oÿŠ+oÿŠ+nÿŠ+nÿŠ+lÿŠ+kÿ‰+jˈ3wÿÿÿˆ+g]‰,hÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,aÿ‰,aÿ‰,aÿ‰,_ÿ‰,^ÿ‰,]ÿ‰,]ÿ‰-\ÿ‰-[ÿ‰-ZÏÿÿÿÿÿÿÿÿÿÿÿÿìíÿíÿíÿíÿíÿíÿíÿíÿíÿ‡+Sÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ Þÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÐÿÏÿŒÎÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿŒÃ=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+v)‰)tû‰*tÿ‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+nÿŠ+nÿŠ,mÿŠ+lÿŠ,jÿŠ,jÿˆ+heÿÿÿÿÿÿ‰,g{‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,aÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,]ÿ‰,]ÿ‰-]ÿ‰-\ÿ‰-Zÿ‰-Yÿˆ*Y ÿÿÿÿÿÿÿÿÿìgíÿíÿíÿíÿíÿíÿíÿíÿŽÙÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿŒÔÿ çÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿßÿÞÿÝÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÊÿŒÉÿŒÈÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰)s‰*sÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+oÿŠ+nÿŠ,mÿŠ+lÿŠ+kÿŠ,jÿ‰,iÿˆ+hçˆ*j ÿÿÿÿÿÿˆ,e£‰,eÿ‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,^ÿ‰,]ÿ‰-]ÿ‰-\ÿ‰-[ÿ‰-Zÿ‰-Yÿˆ,XEÿÿÿÿÿÿÿÿÿŽì¯íÿíÿíÿíÿíÿíÿíÿíÿÆÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿŒÍÿ æÿ åÿ äÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿØÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÅÿÄÿÃÿÂÿŽÂ_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,u‰*rï‰+rÿ‰+rÿ‰+qÿŠ+oÿŠ+oÿŠ+nÿŠ+nÿŠ+lÿŠ+kÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿˆ,hÿÿÿÿÿÿˆ*f ˆ+cˉ,cÿ‰,cÿ‰,bÿ‰,aÿ‰,aÿ‰,aÿ‰,_ÿ‰,^ÿ‰,]ÿ‰,]ÿ‰-\ÿ‰-[ÿ‰-Zÿ‰-Yÿ‰-Xÿˆ-WsÿÿÿÿÿÿÿÿÿŽíÛíÿíÿíÿíÿíÿíÿíÿíÿŒµÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‹Àÿ åÿ äÿ ãÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÁoÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ*qo‰+rÿ‰+qÿ‰+pÿŠ+oÿŠ+nÿŠ+nÿŠ,mÿŠ+lÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‰,gï†,hÿÿÿÿÿÿ‰,d!ˆ,cë‰,bÿ‰,aÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,]ÿ‰,]ÿ‰-]ÿ‰-\ÿ‰-Zÿ‰-Yÿ‰-Yÿ‰-Xÿˆ,X§ÿÿÿÿÿÿÿÿÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‹ ¦ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‹²ÿ äÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿßÿÞÿÝÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒÌÿŒËÿŒËÿŒÊÿŒÊÿŒÉÿŒÈÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿŒ¿‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ3wˆ*qÛ‰+pÿŠ+oÿŠ+oÿŠ+nÿŠ,mÿŠ+lÿŠ+kÿŠ,jÿ‰,iÿ‰,iÿ‰,iÿ‰,hÿ‰,fÿˆ,eÿÿÿÿÿÿÿÿÿˆ+bI‰,bÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,^ÿ‰,]ÿ‰-]ÿ‰-\ÿ‰-[ÿ‰-Yÿ‰-Yÿ‰-Xÿ‰-Xÿ‰-VÓÿÿÿÿÿÿÿÿÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‹!œÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿЦÿ ãÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿØÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿŒ¿§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+paŠ+oÿŠ+oÿŠ+nÿŠ+nÿŠ+lÿŠ+kÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,eÿ‰,eï†,dÿÿÿÿÿÿÿÿÿ‰+a‹‰,aÿ‰,aÿ‰,_ÿ‰,^ÿ‰,]ÿ‰,]ÿ‰-\ÿ‰-[ÿ‰-Zÿ‰-Yÿ‰-Xÿ‰-Xÿ‰-Wÿˆ,WûÿÿÿÿÿÿÿÿÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŠ$‹ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿŠ—ÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¿ÿ½Çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ3w‰*nÓŠ+nÿŠ+nÿŠ,mÿŠ+kÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿ‰+b{ÿÿÿÿÿÿÿÿÿˆ3fˆ+`ω,`ÿ‰,^ÿ‰,]ÿ‰,]ÿ‰-]ÿ‰-\ÿ‰-Zÿ‰-Yÿ‰-Yÿ‰-Xÿ‰-Wÿ‰-Wÿ‰-Vÿ‡,W%ÿÿÿÿÿÿŽíÓíÿíÿíÿíÿíÿíÿíÿíÿŠ$‰ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‰!…ÿ áÿ àÿàÿàÿßÿßÿÞÿÝÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÈÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿŒ½ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ*mQŠ+nÿŠ,mÿŠ+lÿŠ+kÿŠ,jÿ‰,iÿ‰,iÿ‰,iÿ‰,gÿ‰,fÿ‰,eÿ‰,eÿ‰,cÿˆ+cç„3b ÿÿÿÿÿÿÿÿÿˆ-`)‰+_÷‰,^ÿ‰,]ÿ‰-]ÿ‰-\ÿ‰-[ÿ‰-Yÿ‰-Yÿ‰-Xÿ‰-Xÿ‰-Wÿ‰-Vÿˆ-Vÿ‡,TIÿÿÿÿÿÿŽìƒíÿíÿíÿíÿíÿíÿíÿíÿ‰&xÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ$rÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿØÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿŠ»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ+mÓŠ+lÿŠ+kÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,eÿ‰,eÿ‰,cÿ‰,cÿ‰,bÿˆ+b]ÿÿÿÿÿÿÿÿÿÿÿÿˆ,^s‰,]ÿ‰-]ÿ‰-\ÿ‰-[ÿ‰-Zÿ‰-Yÿ‰-Xÿ‰-Xÿ‰-Wÿ‰-Wÿˆ-Vÿˆ-Uÿˆ+SgÿÿÿÿÿÿŽìŽì÷íÿíÿíÿíÿíÿíÿíÿ‰&xÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡(`ÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿŒ»9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+maŠ+kÿŠ,jÿŠ,jÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿˆ,aËÿÿÿÿÿÿÿÿÿÿÿÿˆ3fˆ,\lj-]ÿ‰-[ÿ‰-Zÿ‰-Yÿ‰-Yÿ‰-Xÿ‰-Wÿ‰-Wÿ‰-Vÿˆ-Vÿˆ-Uÿˆ-UÿÿÿÿÿÿÿÿÿŽíƒíÿíÿíÿíÿíÿíÿíÿ‰&xÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿŒÛÿßÿÞÿÝÿÜÿÜÿÚÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿŒ¼gÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ3w‰+kÛŠ,jÿ‰,iÿ‰,iÿ‰,iÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿˆ,`1ÿÿÿÿÿÿÿÿÿÿÿÿˆ-])‰,\÷‰-[ÿ‰-Yÿ‰-Yÿ‰-Xÿ‰-Xÿ‰-Wÿ‰-Vÿˆ-Vÿˆ-Uÿˆ-Tÿ‡,TŸÿÿÿÿÿÿÿÿÿŒî ŽìÓíÿíÿíÿíÿíÿíÿˆ(kÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿŒÆÿÝÿÜÿÜÿÛÿÚÿÙÿØÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿŒ»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,io‰,iÿ‰,iÿ‰,iÿ‰,hÿ‰,gÿ‰,eÿ‰,eÿ‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,aÿˆ+a“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,Z‰-Zÿ‰-Yÿ‰-Xÿ‰-Xÿ‰-Wÿ‰-Wÿˆ-Vÿˆ-Uÿˆ-Uÿˆ-Tÿ‡-S¯ÿÿÿÿÿÿÿÿÿÿÿÿŒî1Žì÷íÿíÿíÿíÿíÿˆ)dÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‹¯ÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÁÿÀÿ¿ÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿŒºÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ*j ‰,iï‰,iÿ‰,hÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,aÿ‰,aÿ‰,aÿˆ,`ëˆ3fÿÿÿÿÿÿÿÿÿÿÿÿ„3Y ˆ,Y׉-Yÿ‰-Xÿ‰-Wÿ‰-Wÿ‰-Vÿˆ-Uÿˆ-Uÿˆ-Tÿˆ-Sÿ‡-S¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìsíÿíÿíÿíÿíÿˆ)dÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‰”ÿÜÿÚÿÙÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿ»ÿºÿŒ¹óÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+h‹‰,iÿ‰,gÿ‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿˆ+]Qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡-WE‰-Xÿ‰-Xÿ‰-Wÿ‰-Vÿˆ-Vÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Sÿ‡-RÏÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí¿íÿíÿíÿíÿˆ(iÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‰#|ÿÚÿÙÿØÿØÿ×ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿŒ·1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+i!‰,hÿ‰,fÿ‰,eÿ‰,eÿ‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,^ÿˆ,]£ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,W«‰-Wÿ‰-Vÿˆ-Vÿˆ-Uÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Rÿˆ-QßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí)Žìûíÿíÿíÿ‰&xÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡)`ÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÓÿÒÿÑÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÁÿÀÿ¿ÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿŒ¸gÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+g·‰,fÿ‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,aÿ‰,aÿ‰,aÿ‰,`ÿ‰,^ÿ‰,]ÿˆ,\óˆ3fÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰.X!‰,V÷‰-Vÿˆ-Uÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Rÿˆ-Rÿ‡,QßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì“íÿíÿíÿ‰&xÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿŒÌÿ×ÿÖÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿŒµ§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ*eU‰,eÿ‰,dÿ‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,]ÿ‰,]ÿ‰-]ÿˆ,[Eÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰,Uƒˆ-Vÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Sÿˆ-Rÿ‡,Qÿ†,QßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí%íÿíÿíÿ‰&xÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‹­ÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ¸ÿ·ÿ¶ÿµÿŒ´çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ3fˆ+eç‰,cÿ‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,^ÿ‰,]ÿ‰-]ÿ‰-\ÿˆ,[‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,Yˆ,Tçˆ-Uÿˆ-Tÿˆ-Sÿˆ-Rÿˆ-Rÿ‡,Qÿ†,QßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì»íÿíÿ‰%„ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‰ ŒÿÔÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿŒ´)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+c‹‰,cÿ‰,cÿ‰,bÿ‰,aÿ‰,aÿ‰,aÿ‰,_ÿ‰,^ÿ‰,]ÿ‰,]ÿ‰-\ÿ‰-[ÿˆ-Z×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡-Ukˆ-Tÿˆ-Sÿˆ-Rÿˆ-Rÿ‡,Qÿ‡,Qÿ†,QßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíoíÿíÿŠ$‹ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ&mÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿŒ°wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,d1‰,cÿ‰,bÿ‰,bÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,]ÿ‰,]ÿ‰-]ÿ‰-\ÿ‰-Zÿ‰-Yÿˆ-[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ3U‡,SÛˆ-Sÿˆ-Rÿ‡,Qÿ‡,Qÿ‡,Qÿ†,QßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì5íÿíÿŠ"—ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡+SÿŒÊÿÒÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿ¯Ãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+bÓ‰,bÿ‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,^ÿ‰,]ÿ‰-]ÿ‰-\ÿ‰-[ÿ‰-Zÿ‰-Yÿˆ-WWÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,Saˆ-Rÿˆ-Rÿ‡,Qÿ‡,Qÿ‡,Qÿ‡+QÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî íÿíÿ‹ ¡ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‹§ÿÑÿÐÿÏÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿޝÿ‹ «!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,b{‰,aÿ‰,aÿ‰,aÿ‰,_ÿ‰,^ÿ‰,]ÿ‰,]ÿ‰-\ÿ‰-[ÿ‰-Zÿ‰-Yÿ‰-Xÿˆ-X“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ3U‡,Rχ,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Q¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíïíÿŒ²ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‰"‚ÿÏÿÏÿŒÎÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿŒ ¬{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,b%‰,aÿ‰,aÿ‰,`ÿ‰,_ÿ‰,]ÿ‰,]ÿ‰-]ÿ‰-\ÿ‰-Zÿ‰-Yÿ‰-Yÿ‰-Xÿˆ-WËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡+QQ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†,Q§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíßíÿŒÁÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡)]ÿÏÿŒÎÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÊÿŒÉÿŒÈÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿŒ «ßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,aÓ‰,`ÿ‰,_ÿ‰,^ÿ‰,]ÿ‰-]ÿ‰-\ÿ‰-[ÿ‰-Zÿ‰-Yÿ‰-Xÿ‰-Xÿ‰,W÷ˆ3Uÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†+Qχ,Qÿ‡,Qÿ‡,Qÿ†,Q—ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíßíÿÏÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‹±ÿŒÍÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÃÿÂÿÁÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿޱÿްÿޝÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿŒ ©Mÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+aƒ‰,_ÿ‰,^ÿ‰,]ÿ‰,]ÿ‰-\ÿ‰-[ÿ‰-Zÿ‰-Yÿ‰-Xÿ‰-Xÿ‰-Wÿ‰-Wÿˆ-W1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†+QQ‡,Qÿ‡,Qÿ‡,Qÿ‡+Q{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíÿíÿŽãÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‰ ‡ÿŒÍÿŒÍÿŒÌÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!«ÿ!ªÿŒ ª¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+`=‰,_ÿ‰,]ÿ‰,]ÿ‰-]ÿ‰-\ÿ‰-Zÿ‰-Yÿ‰-Yÿ‰-Xÿ‰-Wÿ‰-Wÿ‰-Vÿˆ,UWÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€3U‡+QÛ‡,Qÿ‡,Qÿ†,Q[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒêíÿíÿíÿ‡*Zÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡*ZÿŒÊÿŒËÿŒËÿŒËÿŒÊÿŒÊÿŒÉÿŒÈÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!§9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰,^ï‰,]ÿ‰-]ÿ‰-\ÿ‰-[ÿ‰-Yÿ‰-Yÿ‰-Xÿ‰-Xÿ‰-Wÿ‰-Vÿˆ-Vÿˆ-Uƒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡+Qa‡,Qÿ‡,Qÿ†,Q9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì9íÿíÿíÿˆ(nÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿЧÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿ!§·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ+]§‰,]ÿ‰-\ÿ‰-[ÿ‰-Zÿ‰-Yÿ‰-Xÿ‰-Xÿ‰-Wÿ‰-Wÿˆ-Vÿˆ-Uÿ‡,U§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€3U‡+Qç‡,Qÿ„-QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìkíÿíÿíÿ‰%„ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ$uÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ!¦Aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,\g‰-]ÿ‰-\ÿ‰-Zÿ‰-Yÿ‰-Yÿ‰-Xÿ‰-Wÿ‰-Wÿ‰-Vÿˆ-Vÿˆ-Uÿ‡,TÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,Qo‡+QëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŸíÿíÿíÿ‹!Ÿÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡+Sÿ‹ºÿŒÉÿŒÈÿŒÇÿÆÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¸ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¦ÿ"¥Ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰+^%‰-\ÿ‰-[ÿ‰-Yÿ‰-Yÿ‰-Xÿ‰-Xÿ‰-Wÿ‰-Vÿˆ-Vÿˆ-Uÿˆ-Tÿˆ-Sãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,Q†,Q§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìßíÿíÿíÿŒ¹ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‰!…ÿŒÈÿÇÿÆÿÅÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŒ#£eÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,Zç‰-Zÿ‰-Yÿ‰-Xÿ‰-Xÿ‰-Wÿ‰-Wÿˆ-Vÿˆ-Uÿˆ-Uÿˆ-Tÿˆ-Sÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,Q)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì%íÿíÿíÿíÿÒÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡*XÿŒ¿ÿÆÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ"¢ïŽ"¢ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ-Z«‰-Yÿ‰-Yÿ‰-Xÿ‰-Wÿ‰-Wÿ‰-Vÿˆ-Vÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Sÿ†+UÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽísíÿíÿíÿíÿêÿ‡+Vÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QÿŠ!‹ÿÅÿÄÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿ# «ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰-Yo‰-Yÿ‰-Xÿ‰-Xÿ‰-Wÿ‰-Vÿˆ-Vÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Sÿˆ-Rÿ†,U!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíÃíÿíÿíÿíÿíÿˆ(nÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ+YÿŒ½ÿÃÿÂÿÂÿÁÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žYÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰,Y=‰-Xÿ‰-Xÿ‰-Wÿ‰-Wÿˆ-Vÿˆ-Uÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Rÿˆ-Rÿ‡-RAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìíÿíÿíÿíÿíÿíÿŠ#Žÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-RÿŠ#ƒÿÂÿÁÿÀÿÀÿ¿ÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žÿ$ï$!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ*Y ‰-Xÿ‰-Wÿ‰-Wÿ‰-Vÿˆ-Uÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Sÿˆ-Rÿ‡,Qÿ‡,RAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíoíÿíÿíÿíÿíÿíÿŒ­ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ,TÿŒ°ÿÀÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ# ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿŒ$›Ëˆ"™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰,X׉-Wÿ‰-Vÿˆ-Vÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Sÿˆ-Rÿ‡,Qÿ‡,Qÿ‡,RAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíÃíÿíÿíÿíÿíÿíÿÏÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿ‰'qÿÀÿ¿ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$ŸÿŽ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿŒ$™›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ-W«‰-Vÿˆ-Vÿˆ-Uÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Rÿˆ-Rÿ‡,Qÿ‡,Qÿ‡,RAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìûíÿíÿíÿíÿíÿíÿêÿ‡+Xÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Tÿ‹ ™ÿ¾ÿ¾ÿ¾ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ­ÿ ¬ÿ «ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿŒ$™qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ-W‡‰-Vÿˆ-Uÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Rÿˆ-Rÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,RAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìcíÿíÿíÿíÿíÿíÿíÿíÿ‰&zÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Rÿˆ-Sÿˆ-Uÿˆ+]ÿŒ¶ÿ½ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"¨ÿŽ"§ÿŽ"¦ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ# ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿ%˜ÿŒ&˜ûŒ&—Uÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰-U[ˆ-Vÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Sÿˆ-Rÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,RAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì³íÿíÿíÿíÿíÿíÿíÿíÿ‹!Ÿÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Sÿˆ-Uÿˆ-VÿŠ&}ÿ½ÿ¼ÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$ŸÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%šÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿŒ&–ó‹%”=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÓ!ŒÕ5ÒEŽÒ_ŒÑcÑÑÐÏÏÎ͌͋ÌkŒË_ŒËEŠÊ-ˆÈ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†-U9ˆ-Uÿˆ-Uÿˆ-Tÿˆ-Sÿˆ-Rÿˆ-Rÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,RAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî Žì÷íÿíÿíÿíÿíÿíÿíÿíÿÆÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿˆ-Vÿ‰-VÿŒžÿ¼ÿ»ÿ»ÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿŒ&”ó‹&‘=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ×Œ×5Ø[ŒÖƒŒ×§ÕÇŒÖãÕÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÑÿÐÿÏÿÏÿÎÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿ‹Éë‹É¿‹ÈŒÈWŒÅ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ….Yˆ-Uÿˆ-Tÿˆ-Sÿˆ-Rÿˆ-Rÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†,Q1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíMíÿíÿíÿíÿíÿíÿíÿíÿíÿŽèÿ‡+Vÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿˆ-Vÿ‰-Wÿ‰+bÿŒµÿºÿºÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ# ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ&“ÿŒ'“ó‹&‘=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÚ%ÚSŒÙ‡ŒÙ³ŒÙãÙÿÙÿØÿØÿØÿ×ÿ×ÿÖÿÖÿÖÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÏÿÎÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÉÿŒÈÿŒÆ×ŒÆ‹ŒÅ=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ,Tûˆ-Sÿˆ-Sÿˆ-Rÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†,Q!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‰&xÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿˆ-Vÿ‰-Wÿ‰-XÿŠ'xÿ¹ÿ¹ÿ¸ÿ·ÿ¶ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%šÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'’ÿŒ'‘ó‹&=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÛŒÜIŒÛƒŒÛ·ÛïÛÿÛÿÛÿÛÿÚÿÚÿÙÿÙÿÙÿÙÿÙÿØÿ×ÿ×ÿÖÿÖÿÖÿÕÿÕÿÔÿÒÿÒÿÑÿÐÿÏÿÏÿÎÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÉÿŒÈÿÆÿÆÿŒÄ׌ÄoŠÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ-S߈-Sÿˆ-Rÿˆ-Rÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ„3Q ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíÓíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‹!Ÿÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Rÿˆ-Sÿˆ-Uÿˆ-Uÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‹!˜ÿ¸ÿ·ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿޝÿ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&”ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿŒ'óŒ&UÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠÛÛQŒÛÛÏÜÿÜÿÜÿÜÿÜÿÜÿÜÿÜÿÜÿÜÿÜÿÜÿÛÿÛÿÚÿÙÿÙÿÙÿØÿØÿ×ÿÖÿÖÿÕÿÕÿÔÿÓÿÒÿÒÿÑÿÐÿÏÿÎÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÃïŒÂŒ¿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡-SÈ-Rÿˆ-Rÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽêíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÈÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Sÿˆ-Uÿˆ-Uÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰,^ÿŒ«ÿ¶ÿµÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ# ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿŒ'ŽûŒ'ŒmÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÕ ŒÛIŒÛ‹ÛÏÜÿÜÿÜÿÜÿÝÿÝÿÝÿÝÿÞÿÞÿÞÿÝÿÝÿÝÿÝÿÜÿÜÿÜÿÜÿÛÿÛÿÚÿÙÿÙÿØÿØÿ×ÿÖÿÖÿÕÿÕÿÔÿÒÿÒÿÑÿÐÿÏÿÎÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÃÿÁã‹ÀMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡-S³ˆ-Rÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†,PÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìEíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿêÿ‡+Xÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Sÿˆ-Uÿˆ-Vÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰)nÿ³ÿ´ÿ³ÿ²ÿ±ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%šÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'Žÿ'ÿŒ'ÿŒ'Œ›ˆ3ˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒØ%ÙkŒÚ·ŒÛ÷ÜÿÜÿÜÿÝÿÝÿÞÿÞÿÞÿßÿßÿßÿßÿßÿßÿßÿßÿßÿÞÿÞÿÞÿÝÿÝÿÜÿÜÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÖÿÖÿÕÿÕÿÔÿÒÿÒÿÑÿÐÿÏÿÎÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÄÿÃÿÂÿÁÿŒÀ—ˆ"»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,RŸˆ-Rÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†,Q³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíoíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‰$„ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿˆ-Vÿ‰-Wÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿŠ&ƒÿ²ÿ±ÿްÿްÿޝÿޝÿ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&”ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(Œÿ‹'‹ÇŠ(ŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÙ=Œ؇ŒØ×ÙÿÛÿÜÿÜÿÜÿÝÿÞÿÞÿßÿßÿàÿàÿàÿàÿàÿàÿàÿàÿàÿàÿàÿàÿàÿßÿßÿÞÿÞÿÝÿÜÿÜÿÜÿÛÿÙÿÙÿØÿØÿ×ÿÖÿÕÿÕÿÔÿÒÿÒÿÑÿÐÿÏÿÎÿÍÿŒÍÿŒËÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿÈÿÆÿÅÿÄÿÃÿÂÿÀÿŒ¿¿Œ¿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,R›‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†,QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì“íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŒ²ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿˆ-Vÿ‰-Wÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‹"”ÿްÿްÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(Šÿ‹'Šë‹(‰IÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆÌŒ×EŒ×›ŒØçÙÿÙÿÚÿÛÿÜÿÜÿÝÿÞÿÞÿßÿàÿàÿ àÿ àÿ àÿ áÿ áÿ áÿ áÿ áÿ áÿ áÿ áÿ áÿ áÿ àÿ àÿàÿàÿßÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÖÿÖÿÕÿÔÿÒÿÒÿÑÿÐÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÅÿÄÿÂÿÁÿÀÿŒ¿Ãˆ"»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,Q‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†+QgÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì§íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽàÿ‡+Sÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿˆ-Vÿ‰-Wÿ‰-Xÿ‰-Xÿ‰-Yÿ‰-[ÿ‰-\ÿ‰,]ÿ‰+aÿ!¢ÿޝÿŽ®ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%šÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿ‹(‡Œ*„ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆÌŒÓEŒÕ›Öë×ÿØÿÙÿÙÿÛÿÜÿÜÿÝÿÞÿÞÿßÿàÿ àÿ àÿ áÿ áÿ âÿ âÿ âÿ ãÿ ãÿ ãÿ ãÿ ãÿ ãÿ ãÿ âÿ âÿ âÿ áÿ áÿ àÿ àÿàÿßÿßÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÖÿÕÿÔÿÒÿÒÿÑÿÏÿÏÿÎÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÄÿÃÿÂÿÀÿÀÿŒ¾—ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,Q‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†,Q5ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‰&uÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Yÿ‰-[ÿ‰-\ÿ‰,]ÿ‰,^ÿ‰*iÿ ¨ÿ ­ÿ ¬ÿ ¬ÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$ÿ$œÿ%›ÿ%šÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&”ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿ‹(†×‰)…9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÓ=ŒÔ“ÔëÕÿÖÿ×ÿØÿÙÿÙÿÛÿÜÿÜÿÝÿÞÿßÿàÿ àÿ àÿ áÿ âÿ âÿ ãÿ ãÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ ãÿ ãÿ âÿ âÿ áÿ àÿ àÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿØÿ×ÿÖÿÕÿÕÿÔÿÒÿÒÿÐÿÏÿÏÿÍÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿÇÿÆÿÅÿÄÿÂÿÁÿÀÿ¿ÿ‹¾Mÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,Q‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡+Qû„3Q ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì¯íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‹¨ÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Rÿˆ-Sÿˆ-Uÿˆ-Uÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Yÿ‰-[ÿ‰-]ÿ‰,]ÿ‰,^ÿ‰,`ÿ‰)sÿ ªÿ «ÿ!ªÿ!ªÿ!ªÿ!©ÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)†ÿ‹)…ÿ‹(„û‹(ƒ“Š(‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÏ%ŒуŒÒßÓÿÕÿÕÿÖÿ×ÿØÿÙÿÙÿÛÿÜÿÝÿÞÿßÿßÿàÿ àÿ áÿ âÿ ãÿ ãÿ äÿ äÿ äÿ äÿ äÿ åÿ åÿ åÿ åÿ åÿ åÿ åÿ åÿ äÿ äÿ äÿ äÿ ãÿ ãÿ âÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÛÿÚÿÙÿØÿ×ÿÖÿÕÿÕÿÓÿÒÿÑÿÐÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÄÿÃÿÂÿÀÿÀÿŒ¾Ûˆ"»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,Q‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡+QÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì›íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽÜÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Sÿˆ-Uÿˆ-Vÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-[ÿ‰-]ÿ‰,]ÿ‰,^ÿ‰,`ÿ‰,aÿŠ(zÿ!ªÿ!ªÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%šÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)ç‰']ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÌ ŒÍcŒÏÃÑÿÒÿÓÿÔÿÕÿÖÿ×ÿØÿÙÿÙÿÛÿÜÿÝÿÞÿßÿàÿ àÿ áÿ âÿ âÿ ãÿ äÿ äÿ äÿ åÿ åÿ åÿ åÿ åÿ æÿ æÿ æÿ æÿ æÿ åÿ åÿ åÿ åÿ åÿ äÿ äÿ äÿ ãÿ ãÿ âÿ áÿ àÿàÿßÿÞÿÝÿÜÿÛÿÚÿÙÿØÿ×ÿÖÿÕÿÕÿÓÿÒÿÑÿÐÿÏÿÎÿŒÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿÇÿÆÿÅÿÄÿÂÿÁÿÀÿ¿ÿŒ¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,Q‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†,QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíoíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‰&xÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Sÿˆ-Uÿˆ-Vÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,^ÿ‰,`ÿ‰,aÿ‰,aÿ‹'ÿ!ªÿ!©ÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€Ç‰)€=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÌAŒÍŸŒÎ÷ÏÿÐÿÑÿÒÿÔÿÕÿÖÿÖÿØÿÙÿÙÿÛÿÜÿÝÿÞÿßÿàÿ àÿ áÿ âÿ ãÿ äÿ äÿ äÿ åÿ åÿ åÿ æÿ æÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ æÿ æÿ åÿ åÿ åÿ äÿ äÿ äÿ ãÿ âÿ áÿ àÿàÿßÿÞÿÝÿÜÿÛÿÚÿÙÿØÿ×ÿÖÿÕÿÔÿÒÿÒÿÑÿÏÿÏÿÍÿŒÍÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÇÿÆÿÄÿÃÿÂÿÀÿ¿ÿŒ¾Ëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,Q‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡+RIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì9íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŒ°ÿ‡,Qÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿˆ-Vÿ‰-Wÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‹%ŠÿŽ!¨ÿŽ"§ÿŽ"§ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿŠ*~¯Š*}1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÌ‹Ês‹Ì׌ÍÿÎÿÏÿÐÿÑÿÒÿÓÿÕÿÕÿÖÿ×ÿØÿÙÿÛÿÜÿÝÿÞÿßÿàÿ àÿ áÿ âÿ ãÿ äÿ äÿ åÿ åÿ æÿ æÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ æÿ æÿ åÿ åÿ äÿ äÿ ãÿ ãÿ âÿ àÿàÿßÿÞÿÝÿÜÿÛÿÙÿÙÿØÿÖÿÖÿÕÿÔÿÒÿÑÿÐÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿÇÿÆÿÅÿÄÿÂÿÁÿÀÿ¿ÿ‹¾ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,Q—‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†+Q÷„*Q ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìãíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽãÿ‡+Vÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿˆ-Vÿ‰-Wÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‹&‰ÿŽ"¦ÿŽ"¥ÿŽ"¥ÿŽ"¤ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¡ÿŽ# ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿŠ*|¯Š*{1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹È9‹ʧŒË÷ŒËÿŒÌÿÍÿÎÿÏÿÐÿÒÿÒÿÔÿÕÿÖÿ×ÿØÿÙÿÚÿÜÿÜÿÞÿßÿàÿ àÿ áÿ âÿ ãÿ äÿ äÿ åÿ åÿ æÿ çÿ çÿ çÿ çÿ çÿ èÿ èÿ èÿŽ èÿŽ èÿŽ èÿ èÿ èÿ èÿ çÿ çÿ çÿ çÿ çÿ æÿ æÿ åÿ åÿ äÿ äÿ ãÿ âÿ áÿàÿßÿÞÿÝÿÜÿÛÿÙÿØÿ×ÿÖÿÕÿÕÿÓÿÒÿÑÿÏÿÏÿÍÿŒÍÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÆÿÄÿÃÿÁÿÀÿ¿ÿŒ½_ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,QŸ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,P·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí{íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‰$†ÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿˆ-Vÿ‰-Wÿ‰-Xÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,aÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,eÿ‹&‰ÿŽ"¥ÿŽ#¤ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿŠ)z¿Š)yMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÄ ‹ÈgŒÉÏŒÉÿŒËÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÑÿÒÿÓÿÕÿÖÿÖÿØÿÙÿÚÿÛÿÜÿÝÿßÿàÿ àÿ áÿ âÿ ãÿ äÿ åÿ åÿ æÿ çÿ çÿ çÿ çÿ èÿ èÿŽ èÿŽ èÿŽ éÿŽ éÿŽ éÿŽ éÿŽ éÿŽ éÿŽ éÿŽ èÿŽ èÿ èÿ èÿ çÿ çÿ çÿ çÿ æÿ åÿ åÿ äÿ äÿ ãÿ âÿ áÿàÿßÿÞÿÜÿÜÿÚÿÙÿØÿ×ÿÖÿÕÿÔÿÒÿÑÿÐÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿÇÿÆÿÄÿÃÿÂÿÀÿÀÿŒ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,Q³‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡+QcÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽêŽíïíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÃÿ‡,Qÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿˆ-Vÿ‰-Wÿ‰-Xÿ‰-Xÿ‰-Yÿ‰-[ÿ‰-\ÿ‰,]ÿ‰,^ÿ‰,_ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,cÿ‰,eÿ‰,fÿ‹&‰ÿŽ#£ÿŽ#¢ÿŽ#¢ÿŽ#¡ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)‡ÿ‹)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿ‰)wÛ‰*wsˆ(wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹Ä!ŒÆ‹ÇïŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿÍÿÎÿÏÿÐÿÒÿÒÿÔÿÕÿÖÿ×ÿØÿÙÿÛÿÜÿÝÿÞÿßÿ àÿ áÿ âÿ ãÿ äÿ åÿ åÿ æÿ çÿ çÿ çÿ èÿ èÿŽ èÿŽ éÿŽ éÿŽ éÿŽ éÿŽ êÿŽ êÿŽ êÿŽ êÿŽ êÿŽ éÿŽ éÿŽ éÿŽ éÿŽ èÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ åÿ äÿ äÿ ãÿ âÿ àÿàÿßÿÝÿÜÿÛÿÚÿÙÿØÿÖÿÖÿÕÿÓÿÒÿÑÿÏÿÏÿÍÿŒÍÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÅÿÄÿÂÿÁÿÀÿŒ¿³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡+QLJ,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡+Qû†,QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíiíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿˆ)dÿ‡,Qÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Yÿ‰-[ÿ‰-\ÿ‰,]ÿ‰,^ÿ‰,_ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,cÿ‰,eÿ‰,fÿ‰,gÿ‹'…ÿŽ#¡ÿŽ# ÿŽ$ ÿŽ$Ÿÿ$žÿ$ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)ÿ‹)€ÿ‹*ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*vÿŠ*u÷‰*u«‰(uQ„*{ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒÂ=ŒÄ«ŒÅûÆÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÍÿÍÿÏÿÏÿÑÿÒÿÓÿÕÿÖÿÖÿØÿÙÿÚÿÜÿÜÿÞÿßÿàÿ áÿ âÿ ãÿ äÿ åÿ åÿ æÿ çÿ çÿ çÿ èÿŽ èÿŽ éÿŽ éÿŽ éÿŽ êÿŽ êÿŽ ëÿŽ ëÿŽ ëÿŽ ëÿŽ ëÿŽ ëÿŽ ëÿŽ ëÿŽ êÿŽ êÿŽ éÿŽ éÿŽ èÿŽ èÿ èÿ çÿ çÿ æÿ æÿ åÿ äÿ äÿ ãÿ áÿ àÿàÿÞÿÝÿÜÿÛÿÙÿØÿ×ÿÖÿÕÿÔÿÒÿÑÿÐÿÏÿÎÿŒÍÿŒÌÿŒËÿŒËÿŒÉÿŒÉÿŒÈÿÇÿÆÿÄÿÃÿÁÿÀÿ¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,Q߇,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†,P¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽí¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‹ ¦ÿˆ-Rÿˆ-Rÿˆ-Sÿˆ-Tÿˆ-Uÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Yÿ‰-[ÿ‰-]ÿ‰,]ÿ‰,^ÿ‰,_ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,cÿ‰,eÿ‰,fÿ‰,hÿ‰,iÿ‹(ÿŽ$Ÿÿ$Ÿÿ$žÿ$ÿ$œÿ%›ÿ%šÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*zÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿŠ*tÿŠ*të‰+s›‰)qM„*s ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ"»ŒÀUŒÁËÃÿÄÿÆÿÆÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÑÿÒÿÔÿÕÿÖÿ×ÿØÿÙÿÛÿÜÿÝÿßÿàÿ àÿ âÿ ãÿ äÿ åÿ åÿ æÿ çÿ çÿ çÿ èÿŽ èÿŽ éÿŽ éÿŽ êÿŽ ëÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ äÿ âÿ áÿ àÿßÿÞÿÜÿÜÿÚÿÙÿØÿÖÿÖÿÕÿÓÿÒÿÑÿÏÿÏÿÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿÇÿÆÿÅÿÃÿÂÿÀÿ¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,QMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽíëíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽàÿˆ,Vÿˆ-Rÿˆ-Sÿˆ-Uÿˆ-Uÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Yÿ‰-[ÿ‰-]ÿ‰,]ÿ‰,^ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,cÿ‰,eÿ‰,fÿ‰,hÿ‰,iÿ‰,iÿ‹*yÿŒ$›ÿ$œÿ%œÿ%›ÿ%šÿ%™ÿ%™ÿ%˜ÿ%˜ÿ&—ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ(‡ÿ‹)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿŠ*uÿŠ*tÿŠ*tÿŠ*tÿ‰*sÿ‰+rÿ‰+rÿˆ+róˆ*q¯‰*pgˆ*q!Œ¿ Œ¾oŒ¿ÛÀÿÂÿÃÿÄÿÆÿÇÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿÍÿÎÿÏÿÑÿÒÿÓÿÕÿÖÿÖÿØÿÙÿÚÿÜÿÝÿÞÿßÿ àÿ áÿ ãÿ äÿ äÿ åÿ æÿ çÿ çÿ çÿŽ èÿŽ éÿŽ éÿŽ êÿŽ ëÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ ãÿ âÿ áÿàÿßÿÝÿÜÿÛÿÙÿØÿ×ÿÖÿÕÿÔÿÒÿÑÿÐÿÏÿÎÿŒÍÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿŒÈÿÆÿÅÿÄÿÂÿÁÿ¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,Q%‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡+Qã€3UÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíAŽìûíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŠ$Žÿˆ-Rÿˆ-Sÿˆ-Uÿˆ-Uÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-[ÿ‰-]ÿ‰,]ÿ‰,^ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,fÿ‰,hÿ‰,iÿ‰,iÿŠ,jÿŠ*sÿŒ&”ÿ%›ÿ%šÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'“ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿŠ*tÿŠ*tÿ‰*sÿ‰+rÿ‰+rÿ‰+rÿ‰+qÿ‰+qÿ‰+pÿŠ*tÿ‹"–ÿŒ¸÷¾ÿÀÿÀÿÂÿÄÿÅÿÆÿÇÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÍÿÍÿÏÿÐÿÑÿÒÿÔÿÕÿÖÿ×ÿØÿÙÿÛÿÜÿÝÿßÿàÿ áÿ âÿ ãÿ äÿ åÿ æÿ çÿ çÿ çÿŽ èÿŽ éÿŽ éÿŽ êÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ äÿ äÿ ãÿ áÿ àÿßÿÞÿÝÿÜÿÚÿÙÿØÿÖÿÕÿÕÿÓÿÒÿÐÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒÉÿŒÉÿŒÈÿÇÿÆÿÄÿÃÿÁÿ¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,RM‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ‡,Qsÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì]íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÒÿˆ-Sÿˆ-Sÿˆ-Uÿˆ-Uÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-[ÿ‰-]ÿ‰,]ÿ‰,^ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,fÿ‰,hÿ‰,iÿ‰,iÿŠ,jÿŠ+lÿŠ+oÿŒ'‹ÿ%™ÿ%™ÿ%˜ÿ&˜ÿ&—ÿ&–ÿ&–ÿ&•ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿŠ*tÿŠ*tÿ‰*sÿ‰+rÿ‰+rÿ‰+rÿ‰+qÿ‰+pÿŠ)wÿ‹!šÿŒ·ÿ½ÿ¾ÿ¿ÿÀÿÁÿÂÿÄÿÅÿÆÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÒÿÒÿÔÿÕÿÖÿ×ÿÙÿÚÿÜÿÜÿÞÿßÿ àÿ áÿ ãÿ äÿ åÿ åÿ æÿ çÿ çÿ èÿŽ éÿŽ éÿŽ êÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ äÿ ãÿ âÿ áÿàÿßÿÝÿÜÿÛÿÙÿØÿ×ÿÖÿÕÿÓÿÒÿÑÿÏÿÏÿÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿÇÿÆÿÄÿÃÿÂÿŒÀŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,Qs‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†,Qï†,QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìqíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŠ&~ÿˆ-Sÿˆ-Uÿˆ-Vÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-[ÿ‰-]ÿ‰,]ÿ‰,^ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,fÿ‰,hÿ‰,iÿ‰,iÿŠ,jÿŠ+lÿŠ,mÿŠ+nÿ‹(ÿŒ&–ÿ&˜ÿ&—ÿ&–ÿ&•ÿ&”ÿ&”ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*wÿŠ*vÿŠ*uÿŠ*uÿŠ*tÿŠ*tÿŠ*tÿ‰*sÿ‰+rÿ‰+rÿ‰+rÿ‰+qÿŠ)wÿ‹"™ÿ¸ÿ»ÿ¼ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿÍÿÎÿÏÿÐÿÒÿÓÿÕÿÖÿÖÿØÿÙÿÚÿÜÿÝÿßÿàÿ áÿ âÿ äÿ äÿ åÿ æÿ çÿ çÿ èÿŽ èÿŽ éÿŽ êÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ åÿ åÿ äÿ ãÿ áÿ àÿßÿÞÿÜÿÜÿÙÿÙÿ×ÿÖÿÕÿÔÿÒÿÑÿÐÿÏÿÎÿŒÍÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿÇÿÆÿÅÿÄÿÂÿŒÁwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†+Q£‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†,QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìqíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÆÿˆ-Sÿˆ-Uÿˆ-Vÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-[ÿ‰-]ÿ‰,]ÿ‰,^ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,hÿ‰,iÿ‰,iÿŠ,jÿŠ+lÿŠ,mÿŠ+nÿŠ+oÿŠ*uÿŒ'ÿ&–ÿ&•ÿ&”ÿ'“ÿ'“ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿŠ*tÿŠ*tÿ‰*sÿ‰+rÿ‰+rÿ‰+rÿ‰+qÿ‰){ÿ‹!ÿ¸ÿºÿ»ÿ¼ÿ¼ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿÍÿÏÿÏÿÑÿÒÿÔÿÕÿÖÿ×ÿØÿÙÿÛÿÜÿÞÿßÿ àÿ áÿ ãÿ äÿ åÿ åÿ çÿ çÿ çÿŽ èÿŽ éÿŽ êÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ éÿŽ éÿ èÿ çÿ çÿ æÿ åÿ äÿ ãÿ âÿ áÿàÿÞÿÝÿÜÿÚÿÙÿØÿÖÿÕÿÕÿÓÿÒÿÐÿÏÿÎÿŒÍÿŒÌÿŒËÿŒËÿŒÉÿŒÉÿŒÈÿÆÿÅÿÄÿÂÿÀMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,PÓ‡,Qÿ‡,Qÿ‡,Qÿ†,Qï†,QÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìqíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‰(sÿˆ-Uÿˆ-Vÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,hÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿŠ)€ÿŒ&’ÿ'“ÿ'’ÿ'’ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ'ŒÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿŠ*tÿŠ*tÿ‰*sÿ‰+rÿ‰+rÿ‰+rÿŠ'‚ÿŒ!¡ÿ·ÿ¸ÿ¹ÿºÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÂÿÃÿÅÿÆÿÇÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÍÿÍÿÏÿÐÿÑÿÒÿÔÿÕÿÖÿ×ÿÙÿÚÿÜÿÜÿÞÿàÿ àÿ âÿ ãÿ äÿ åÿ æÿ çÿ çÿ èÿŽ éÿŽ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ åÿ åÿ äÿ ãÿ áÿ àÿßÿÝÿÜÿÛÿÙÿØÿ×ÿÖÿÕÿÓÿÒÿÑÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒÉÿŒÉÿŒÈÿÆÿÆÿÄÿÃÿŠÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,Q‡,Qÿ‡,Qÿ‡,Qÿ‡,Qÿ†,QoÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìmŽìûíÿíÿíÿíÿíÿíÿíÿíÿíÿŒ½ÿˆ-Uÿˆ-Vÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,hÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*vÿŒ(†ÿ'‘ÿ'‘ÿ'‘ÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(‰ÿŒ(ˆÿŒ(‡ÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿŠ*tÿŠ*tÿ‰*sÿ‰+rÿ‰*uÿŠ%ŒÿŒ ¦ÿµÿ¶ÿ·ÿ¹ÿ¹ÿºÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿÀÿÀÿÂÿÄÿÅÿÆÿÇÿŒÉÿŒÉÿŒÊÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÒÿÒÿÕÿÕÿÖÿØÿÙÿÚÿÜÿÝÿßÿàÿ áÿ âÿ äÿ äÿ åÿ æÿ çÿ çÿŽ èÿŽ éÿŽ êÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿ èÿ çÿ çÿ æÿ åÿ äÿ ãÿ âÿ àÿßÿÞÿÜÿÜÿÙÿÙÿ×ÿÖÿÕÿÔÿÒÿÑÿÏÿÏÿÍÿŒÌÿŒËÿŒËÿŒÊÿŒÉÿŒÈÿÇÿÆÿÄÿÃËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,QQ‡,Qÿ‡,Qÿ‡,Qÿ‡+Q×€3UÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìUŽìûíÿíÿíÿíÿíÿíÿíÿíÿíÿ‰(qÿˆ-Vÿ‰-Vÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,hÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ)zÿŒ(ˆÿ'ÿ'ÿ'Žÿ'ÿŒ'ÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿŠ*tÿŠ*tÿ‰*sÿ‰+sÿŠ(~ÿ‹$•ÿ¬ÿޱÿ²ÿµÿ¶ÿ·ÿ¹ÿ¹ÿºÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿÀÿÁÿÂÿÄÿÅÿÆÿÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÒÿÓÿÕÿÖÿÖÿØÿÙÿÛÿÜÿÝÿßÿàÿ áÿ ãÿ äÿ åÿ åÿ çÿ çÿ èÿŽ éÿŽ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ éÿŽ èÿ çÿ çÿ æÿ åÿ äÿ äÿ âÿ áÿàÿÞÿÝÿÜÿÚÿÙÿ×ÿÖÿÕÿÔÿÒÿÑÿÐÿÏÿÍÿŒÍÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿÇÿÆÿÄÿŒÃ{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,Q“‡,Qÿ‡,Qÿ‡,Qÿ‡+QAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí=ŽíïíÿíÿíÿíÿíÿíÿíÿíÿŒ½ÿˆ-Vÿ‰-Wÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,hÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*vÿ‹){ÿŒ(†ÿŒ'ÿŒ'ŒÿŒ(ŒÿŒ(ŒÿŒ(ŒÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿŠ*tÿŠ*tÿŠ)yÿ‹&ÿŒ!¢ÿ ­ÿŽ®ÿްÿ²ÿ²ÿµÿ·ÿ·ÿ¹ÿºÿºÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿÀÿÁÿÂÿÄÿÅÿÆÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿÍÿÎÿÏÿÑÿÒÿÓÿÕÿÖÿ×ÿØÿÙÿÛÿÜÿÞÿßÿ àÿ áÿ ãÿ äÿ åÿ æÿ çÿ çÿŽ èÿŽ éÿŽ êÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿìÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿ èÿ çÿ çÿ åÿ åÿ äÿ ãÿ áÿàÿßÿÝÿÜÿÛÿÙÿØÿÖÿÕÿÕÿÒÿÒÿÐÿÏÿÎÿŒÍÿŒËÿŒËÿŒÊÿŒÉÿŒÉÿÇÿÆÿÅÿŒÃ)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†+PÛ‡,Qÿ‡,Qÿ‡,Q“ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí)íßíÿíÿíÿíÿíÿíÿíÿíÿŠ'{ÿ‰-Wÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹){ÿ‹)ƒÿŒ(ŠÿŒ(‹ÿŒ(ŠÿŒ(ŠÿŒ(‰ÿŒ(‰ÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*wÿŠ*vÿŠ*vÿŠ*uÿŠ*tÿŠ){ÿ‹&‹ÿŒ#ÿ!ªÿ!«ÿ ¬ÿ ­ÿŽ®ÿްÿ²ÿ³ÿµÿ·ÿ·ÿ¹ÿºÿºÿ»ÿ¼ÿ½ÿ¾ÿ¿ÿÀÿÁÿÂÿÄÿÆÿÆÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿÍÿÎÿÏÿÑÿÒÿÔÿÕÿÖÿ×ÿØÿÙÿÜÿÜÿÞÿàÿ àÿ âÿ ãÿ äÿ åÿ æÿ çÿ çÿŽ èÿŽ éÿŽ êÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽìÿìÿìÿìÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿ èÿ çÿ çÿ æÿ åÿ äÿ ãÿ áÿ àÿßÿÝÿÜÿÛÿÙÿØÿÖÿÖÿÕÿÓÿÒÿÐÿÏÿÎÿŒÍÿŒÌÿŒËÿŒÊÿŒÉÿŒÉÿÈÿÆÿŒÅËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ…,R%‡,Qÿ‡,Qÿ†+QÛ„*Q ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÇíÿíÿíÿíÿíÿíÿíÿÇÿ‰-Wÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*yÿ‹*{ÿ‹*|ÿ‹)€ÿ‹(…ÿŒ(ˆÿŒ(ˆÿŒ(ˆÿŒ(‡ÿŒ)†ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)ƒÿ‹)‚ÿ‹)ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ*wÿŠ*vÿŠ*vÿŠ)wÿ‹(‚ÿŒ%ÿ#žÿŽ"§ÿŽ!¨ÿ!ªÿ!ªÿ!«ÿ ¬ÿ ­ÿŽ®ÿްÿ²ÿ³ÿµÿ·ÿ¸ÿ¹ÿºÿºÿ»ÿ¼ÿ½ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿÍÿÏÿÏÿÑÿÒÿÔÿÕÿÖÿ×ÿÙÿÙÿÜÿÝÿÞÿàÿ àÿ âÿ äÿ äÿ åÿ çÿ çÿ èÿŽ èÿŽ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿìÿìÿìÿìÿíÿìÿìÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ éÿŽ èÿ çÿ çÿ æÿ åÿ äÿ ãÿ âÿ àÿßÿÞÿÜÿÛÿÙÿØÿ×ÿÖÿÕÿÓÿÒÿÐÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒÉÿŒÉÿÈÿÆÿŒÅgÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡,Q{‡,Qÿ‡+Qû…,Q5ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî í£íÿíÿíÿíÿíÿíÿíÿŠ%…ÿ‰-Wÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ,kÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*zÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*~ÿ‹)ÿ‹)„ÿ‹)…ÿ‹)…ÿ‹)„ÿŒ)„ÿŒ)ƒÿ‹)‚ÿ‹)‚ÿ‹)ÿ‹)€ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹*{ÿ‹*zÿŠ*yÿŠ*xÿŠ*xÿŠ){ÿ‹(‚ÿŒ&Œÿ$—ÿŽ#¡ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!ªÿ!ªÿ!«ÿ ¬ÿ ­ÿŽ®ÿްÿ²ÿ³ÿµÿ·ÿ¸ÿ¹ÿºÿ»ÿ»ÿ¼ÿ½ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿÍÿÏÿÏÿÑÿÒÿÔÿÕÿÖÿ×ÿÙÿÚÿÜÿÝÿÞÿàÿ áÿ âÿ äÿ åÿ åÿ çÿ çÿ èÿŽ éÿŽ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿìÿìÿìÿíÿíÿíÿíÿíÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ éÿŽ èÿ èÿ çÿ æÿ åÿ äÿ ãÿ âÿ àÿàÿÞÿÜÿÛÿÙÿØÿ×ÿÖÿÕÿÓÿÒÿÑÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒÉÿŒÉÿŒÈÿÆïŒÄ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†+Qׇ,Qÿ†+QeÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíÿíÿíÿíÿíÿíÿŽØÿ‰,Yÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ,kÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*zÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿ‹)‚ÿ‹)‚ÿ‹)„ÿ‹)…ÿ‹)„ÿ‹(„ÿ‹)ƒÿ‹)‚ÿ‹*€ÿ‹*ÿ‹*~ÿ‹*~ÿ‹*}ÿ‹*}ÿ‹*|ÿ‹*{ÿ‹*{ÿ‹)~ÿ‹)€ÿ‹(ƒÿ‹(†ÿ‹'‹ÿŒ&‘ÿŒ%™ÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#£ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!ªÿ!ªÿ «ÿ ¬ÿ ­ÿŽ®ÿްÿ²ÿ³ÿµÿ·ÿ¸ÿ¹ÿºÿ»ÿ»ÿ¼ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÊÿŒËÿŒËÿŒÍÿÍÿÏÿÏÿÑÿÒÿÔÿÕÿÖÿ×ÿÙÿÚÿÜÿÝÿßÿàÿ áÿ âÿ äÿ åÿ åÿ çÿ çÿ èÿŽ éÿŽ êÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿìÿìÿìÿíÿíÿíÿíÿíÿíÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿ èÿ çÿ çÿ åÿ äÿ äÿ âÿ àÿàÿÞÿÜÿÜÿÙÿÙÿ×ÿÖÿÕÿÔÿÒÿÑÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿŒÉÿŒÉÿŒÈÿŒÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†+Q9‡,Qÿ†+Q—ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì{íÿíÿíÿíÿíÿíÿ‹#™ÿ‰-Xÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ,kÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*zÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿ‹)‚ÿ‹)‚ÿ‹)„ÿ‹)†ÿ‹)†ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(‹ÿŒ(‹ÿŒ(‹ÿ'Œÿ'ÿ'Žÿ'’ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%œÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#£ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!ªÿ!ªÿ «ÿ ¬ÿ ­ÿŽ®ÿްÿ²ÿ³ÿµÿ·ÿ¸ÿ¹ÿºÿ»ÿ»ÿ¼ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÊÿŒËÿŒËÿŒÍÿÍÿÏÿÐÿÑÿÒÿÔÿÕÿÖÿ×ÿÙÿÚÿÜÿÝÿßÿàÿ áÿ ãÿ äÿ åÿ åÿ çÿ çÿ èÿŽ éÿŽ êÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽìÿìÿìÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿ èÿ çÿ çÿ åÿ äÿ äÿ âÿ áÿàÿÞÿÝÿÜÿÙÿÙÿ×ÿÖÿÕÿÔÿÒÿÑÿÏÿÏÿÍÿŒÌÿŒËÿŒËÿŒÉÿŒÉÿŒÈïŠÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†+QŸ†+Q¯€3UÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì¯íÿíÿíÿíÿíÿŽãÿ‰+dÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*zÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿ‹)‚ÿ‹)‚ÿ‹)„ÿ‹)†ÿ‹)†ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ(ÿ'Žÿ'ÿ'‘ÿ'’ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%›ÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#£ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!ªÿ!ªÿ «ÿ ¬ÿ ­ÿŽ®ÿްÿ²ÿ³ÿµÿ·ÿ¸ÿ¹ÿºÿ»ÿ»ÿ¼ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÊÿŒËÿŒËÿŒÍÿÍÿÏÿÏÿÑÿÒÿÔÿÕÿÖÿ×ÿÙÿÚÿÜÿÝÿßÿàÿ áÿ ãÿ äÿ åÿ åÿ çÿ çÿ èÿŽ éÿŽ êÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽìÿìÿìÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿ èÿ çÿ çÿ åÿ åÿ äÿ âÿ áÿàÿÞÿÝÿÜÿÙÿÙÿ×ÿÖÿÕÿÔÿÒÿÑÿÏÿÏÿÍÿŒÌÿŒËÿŒËÿŒÉÿŒÉÿ‹Èÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,Q‡*Q»„*Q ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽíïíÿíÿíÿíÿíÿŒ³ÿ‰-Yÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿ‹)‚ÿ‹)‚ÿ‹)„ÿ‹)†ÿ‹)†ÿŒ(ˆÿŒ(ˆÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ(ÿ'Žÿ'ÿ'‘ÿ'’ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%›ÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#£ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!ªÿ!ªÿ!«ÿ ¬ÿ ­ÿŽ®ÿްÿ²ÿ³ÿµÿ·ÿ¸ÿ¹ÿºÿ»ÿ»ÿ¼ÿ½ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿÍÿÏÿÏÿÑÿÒÿÔÿÕÿÖÿ×ÿÙÿÚÿÜÿÝÿÞÿàÿ áÿ âÿ äÿ åÿ åÿ çÿ çÿ èÿŽ éÿŽ êÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿìÿìÿìÿíÿíÿíÿíÿíÿíÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿ èÿ çÿ çÿ åÿ äÿ äÿ âÿ áÿàÿÞÿÝÿÜÿÙÿÙÿ×ÿÖÿÕÿÔÿÒÿÑÿÏÿÏÿÍÿŒÌÿŒËÿŒËÿŒÉÿŒÈçˆÈ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ†,R=„*Q ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíÿíÿíÿíÿíÿíÿŠ'{ÿ‰-Zÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,hÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*vÿ‹*wÿ‹*yÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿ‹)‚ÿ‹)‚ÿ‹)„ÿ‹)…ÿ‹)†ÿŒ(ˆÿŒ(ˆÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ(ÿ'Žÿ'ÿ'‘ÿ'’ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%›ÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#£ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"¨ÿ!©ÿ!ªÿ!«ÿ ¬ÿ ­ÿŽ®ÿްÿ²ÿ³ÿµÿ·ÿ¸ÿ¹ÿºÿºÿ»ÿ¼ÿ½ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿÍÿÏÿÏÿÑÿÒÿÔÿÕÿÖÿ×ÿÙÿÚÿÜÿÝÿÞÿàÿ áÿ âÿ äÿ åÿ åÿ çÿ çÿ èÿŽ éÿŽ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿìÿìÿìÿíÿíÿíÿíÿíÿíÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿ èÿ çÿ çÿ åÿ äÿ äÿ âÿ àÿàÿÞÿÝÿÜÿÙÿÙÿ×ÿÖÿÕÿÔÿÒÿÑÿÏÿÏÿÍÿŒÌÿŒËÿŒËÿŒÉÿŠÈ]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì÷íÿíÿíÿíÿíÿŽÖÿ‰,\ÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,bÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,hÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*vÿŠ*vÿ‹*wÿ‹*yÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿ‹)ÿ‹)‚ÿŒ)„ÿ‹)…ÿ‹)†ÿŒ(ˆÿŒ(ˆÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ(ÿ'Žÿ'ÿ'‘ÿ'’ÿ'”ÿ&”ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%›ÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#£ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"¨ÿ!©ÿ!ªÿ!«ÿ ¬ÿ ­ÿŽ®ÿްÿ²ÿ³ÿµÿ·ÿ·ÿ¹ÿºÿºÿ»ÿ¼ÿ½ÿ¾ÿ¿ÿÀÿÁÿÂÿÄÿÆÿÆÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿÍÿÏÿÏÿÑÿÒÿÔÿÕÿÖÿ×ÿÙÿÙÿÜÿÝÿÞÿàÿ àÿ âÿ äÿ äÿ åÿ çÿ çÿ èÿŽ èÿŽ éÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽìÿìÿìÿìÿíÿíÿíÿíÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ éÿŽ èÿ èÿ çÿ æÿ åÿ äÿ äÿ âÿ àÿàÿÞÿÜÿÜÿÙÿØÿ×ÿÖÿÕÿÔÿÒÿÑÿÏÿÎÿÍÿŒÌÿŒËÿŒËÿ‹ÉÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí¯íÿíÿíÿíÿíÿíÿŒ!¤ÿ‰-\ÿ‰-]ÿ‰,]ÿ‰,_ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,hÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*vÿŠ*vÿ‹*wÿ‹*yÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿ‹)ÿ‹)‚ÿŒ)„ÿ‹)…ÿ‹)†ÿŒ(ˆÿŒ(ˆÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ(ÿ'Žÿ'ÿ'ÿ'’ÿ'“ÿ&”ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%›ÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"¨ÿ!©ÿ!ªÿ!«ÿ ¬ÿ ­ÿ®ÿްÿ޲ÿ²ÿµÿ¶ÿ·ÿ¹ÿºÿºÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿÀÿÁÿÂÿÄÿÅÿÆÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿÍÿÎÿÏÿÑÿÒÿÓÿÕÿÖÿ×ÿØÿÙÿÛÿÜÿÞÿàÿ àÿ âÿ ãÿ äÿ åÿ æÿ çÿ çÿŽ èÿŽ éÿŽ êÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽìÿìÿìÿìÿìÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ éÿŽ èÿ çÿ çÿ æÿ åÿ äÿ ãÿ âÿ àÿßÿÞÿÜÿÛÿÙÿØÿ×ÿÖÿÕÿÓÿÒÿÑÿÏÿÎÿÍÿŒÌÿŒËÿ‹ÊûŒÊ)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìgíÿíÿíÿíÿíÿíÿêÿ‰)rÿ‰-]ÿ‰,]ÿ‰,^ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,hÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*vÿŠ*vÿ‹*wÿ‹*yÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿ‹)ÿ‹)‚ÿŒ)„ÿ‹)…ÿ‹)†ÿŒ(ˆÿŒ(ˆÿŒ(ŠÿŒ(ŠÿŒ(ŒÿŒ(ÿŒ(ÿ'Žÿ'ÿ'ÿ'’ÿ'“ÿ&”ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%›ÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"§ÿ!©ÿ!ªÿ!«ÿ ¬ÿ ­ÿ®ÿްÿޱÿ²ÿµÿ¶ÿ·ÿ¹ÿ¹ÿºÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿÀÿÁÿÂÿÄÿÅÿÆÿÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÒÿÓÿÕÿÖÿÖÿØÿÙÿÛÿÜÿÞÿßÿ àÿ áÿ ãÿ äÿ åÿ æÿ çÿ— éÿ•é¿vòÇ…õ±Wòœ) ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽìÿìÿìÿìÿìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ çÿ çÿ æÿ åÿ äÿ ãÿ áÿ àÿßÿÞÿÜÿÛÿÙÿØÿÖÿÖÿÕÿÓÿÒÿÐÿÏÿÎÿŒÍÿŒÌÿŒËÿ‹ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì1íÿíÿíÿíÿíÿíÿíÿŽÏÿ‰,_ÿ‰,]ÿ‰,^ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,hÿ‰,iÿ‰,iÿŠ,jÿŠ+lÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*uÿŠ*vÿ‹*wÿ‹*xÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(ŠÿŒ(ŠÿŒ(ŒÿŒ'‘ÿŽÍÿŽÉÿŽÊÿ޾ÿŽ¿ÿŽ ¸ÿŽ µÿ!±ÿ"¬ÿ"ªÿ#£ÿ#¤ÿ%›ÿ$ÿ$žÿŽ$ŸÿŽ# ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¦ÿŽ"§ÿŽ"§ÿ!©ÿ!ªÿ!«ÿ ¬ÿ ­ÿ®ÿްÿޱÿ²ÿ´ÿ¶ÿ·ÿ¹ÿ¹ÿºÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿÀÿÀÿÂÿÄÿÅÿÆÿÇÿŒÉÿŒÉÿŒÊÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÒÿÒÿÕÿÖÿÖÿØÿÙÿÛÿÜÿÝÿßÿàÿ áÿ ãÿ äÿ åÿ åÿ–é¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£9ðA“íÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽìÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿ èÿ çÿ çÿ åÿ åÿ äÿ ãÿ áÿàÿßÿÝÿÜÿÛÿÙÿØÿÖÿÖÿÕÿÒÿÒÿÐÿÏÿÎÿŒÍÿŒÌÿ‹ËLjÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽìûíÿíÿíÿíÿíÿíÿíÿŒ!¥ÿ‰,]ÿ‰,^ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,fÿ‰,hÿ‰,iÿ‰,iÿŠ,jÿŠ+lÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*uÿŠ*vÿ‹*wÿ‹*xÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(ŠÿŒ(ŠÿŒ(ŒÿŽÐÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿåÿâÿÞÿŽÙÿŽ×ÿŽÑÿŽÒÿŽÉÿŽÉÿÃÿÀÿ½ÿ¹ÿ·ÿ´ÿ޵ÿޱÿ²ÿ´ÿ¶ÿ·ÿ¸ÿ¹ÿºÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÂÿÃÿÅÿÆÿÇÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÍÿÎÿÏÿÐÿÑÿÒÿÔÿÕÿÖÿ×ÿÙÿÚÿÜÿÝÿÞÿàÿ áÿ âÿ äÿ äÿæ¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£9ðAŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ çÿ çÿ æÿ åÿ äÿ äÿ âÿ áÿàÿÞÿÝÿÜÿÚÿÙÿ×ÿÖÿÕÿÔÿÒÿÑÿÐÿÏÿÎÿŒÍÿŒËóË%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíÛíÿíÿíÿíÿíÿíÿíÿêÿŠ'zÿ‰,^ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,fÿ‰,hÿ‰,iÿ‰,iÿŠ,jÿŠ+kÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*uÿŠ*vÿ‹*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ(Šÿ¹ÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ èÿŽ æÿŽ äÿŽãÿŽàÿŽÞÿŽÜÿŽÚÿÖÿÑÿÎÿËÿÈÿÆÿ¿ÿ»ÿ¼ÿ¼ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÍÿÍÿÏÿÏÿÑÿÒÿÔÿÕÿÖÿ×ÿÙÿÙÿÜÿÜÿÞÿßÿ àÿ âÿ ãÿ äÿ¢9êAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœ) ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿ èÿ çÿ çÿ æÿ åÿ äÿ ãÿ âÿ àÿàÿÞÿÜÿÜÿÙÿÙÿ×ÿÖÿÕÿÔÿÒÿÑÿÐÿÏÿÍÿŒÍÿŠÊaÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí¿íÿíÿíÿíÿíÿíÿíÿíÿŽØÿ‰+eÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,cÿ‰,eÿ‰,fÿ‰,hÿ‰,iÿ‰,iÿŠ,jÿŠ+kÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*sÿ‰*tÿŠ*uÿŠ*vÿŠ*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ$ŸÿëÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ çÿŽ åÿŽ äÿŽáÿŽßÿŽÜÿŽÚÿ×ÿÔÿÒÿÐÿÍÿÌÿÈÿ»ÿ»ÿ¼ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿÍÿÎÿÏÿÑÿÒÿÓÿÕÿÖÿ×ÿØÿÙÿÛÿÜÿÝÿßÿ àÿ áÿ ãÿ’åÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£9ïŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ èÿ èÿ çÿ çÿ åÿ åÿ äÿ ãÿ áÿ àÿßÿÞÿÜÿÛÿÙÿØÿ×ÿÖÿÕÿÔÿÒÿÑÿÏÿÏÿÍÿ‹ÌŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì«íÿíÿíÿíÿíÿíÿíÿíÿíÿŒ·ÿ‰,`ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,cÿ‰,eÿ‰,fÿ‰,hÿ‰,iÿ‰,iÿŠ,jÿŠ+kÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+qÿ‰+rÿ‰+sÿ‰*tÿŠ*uÿŠ*vÿŠ*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ'ŽÿŽßÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ èÿŽ æÿŽ äÿŽâÿŽßÿŽÝÿŽÛÿØÿÕÿÓÿÑÿÏÿÌÿËÿÁÿ»ÿ¼ÿ½ÿ¾ÿ¿ÿÀÿÁÿÂÿÄÿÅÿÆÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÒÿÓÿÕÿÕÿÖÿØÿÙÿÚÿÜÿÝÿÞÿàÿ àÿ âÿ›*çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇ…öŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿ èÿ çÿ çÿ æÿ åÿ äÿ äÿ âÿ áÿàÿßÿÝÿÜÿÚÿÙÿØÿÖÿÖÿÕÿÓÿÒÿÐÿÏÿÎÿŒÌËŒÌ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŸíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‹#”ÿ‰,aÿ‰,aÿ‰,bÿ‰,cÿ‰,cÿ‰,eÿ‰,fÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ+kÿŠ,mÿŠ+nÿŠ+oÿŠ+pÿ‰+qÿ‰+rÿ‰+sÿ‰*tÿŠ*uÿŠ*vÿŠ*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)€ÿ‹)‚ÿ‹)ƒÿ‹)„ÿ‹)†ÿŒ)‡ÿŒ(ˆÿÁÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ èÿŽ æÿŽ äÿŽãÿŽàÿŽÝÿŽÛÿŽÙÿÖÿÔÿÑÿÏÿÍÿËÿÈÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿÀÿÀÿÂÿÄÿÅÿÆÿÇÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÍÿÎÿÏÿÐÿÑÿÒÿÔÿÕÿÖÿ×ÿÙÿÙÿÜÿÜÿÞÿßÿ àÿ áÿ–åÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ´_òŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ éÿŽ èÿ çÿ çÿ çÿ åÿ åÿ äÿ ãÿ âÿ àÿßÿÞÿÜÿÜÿÚÿÙÿ×ÿÖÿÕÿÔÿÒÿÒÿÐÿÏÿÎçŒÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŸíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽæÿŠ({ÿ‰,aÿ‰,bÿ‰,cÿ‰,cÿ‰,eÿ‰,fÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ+kÿŠ,mÿŠ+nÿŠ+oÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*uÿŠ*vÿŠ*wÿ‹*xÿ‹*yÿ‹*zÿ‹*{ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)€ÿ‹)‚ÿ‹)‚ÿ‹)„ÿ‹)†ÿ‹)†ÿŒ$œÿëÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ çÿŽ åÿŽ ãÿŽàÿŽÞÿŽÜÿŽÚÿ×ÿÔÿÒÿÐÿÍÿÌÿÊÿÁÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÂÿÃÿÄÿÆÿÇÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿÍÿÏÿÏÿÑÿÒÿÓÿÕÿÖÿ×ÿØÿÙÿÛÿÜÿÝÿßÿàÿ áÿ âÿƆñAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽ ëŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ äÿ äÿ âÿ áÿàÿßÿÝÿÜÿÛÿÙÿØÿ×ÿÖÿÕÿÔÿÒÿÑÿÐÿŒÎ÷‹Ì=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽÙÿ‰*iÿ‰,bÿ‰,cÿ‰,cÿ‰,eÿ‰,fÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ,kÿŠ+lÿŠ+nÿŠ+oÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*zÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿ‹)‚ÿ‹)‚ÿ‹)„ÿ‹)†ÿ‹)†ÿŽÖÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ çÿŽ åÿŽ äÿŽâÿŽßÿŽÝÿŽÛÿØÿÕÿÓÿÑÿÎÿÌÿÊÿÈÿ¼ÿ¼ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿÍÿÎÿÏÿÐÿÒÿÓÿÕÿÕÿÖÿ×ÿÙÿÚÿÜÿÜÿÞÿßÿ àÿ áÿ 4ç¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘êÿŽ êÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ ãÿ áÿ àÿàÿÞÿÝÿÜÿÚÿÙÿØÿÖÿÖÿÕÿÓÿÒÿÑÿÏÿ‹ÍYÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿííÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÅÿ‰+dÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ+nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*vÿ‹*wÿ‹*yÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿ‹)ÿ‹)‚ÿŒ)„ÿ‹)…ÿŒ"§ÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ èÿŽ æÿŽ äÿŽãÿŽßÿŽÝÿŽÛÿŽÙÿÕÿÓÿÑÿÏÿÌÿËÿÉÿÂÿ¼ÿ½ÿ¾ÿ¿ÿÀÿÁÿÂÿÄÿÅÿÆÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÑÿÒÿÔÿÕÿÖÿ×ÿØÿÙÿÛÿÜÿÝÿßÿàÿ àÿ âÿ ãAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ迎 éÿŽ éÿŽ êÿŽ ëÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ ãÿ âÿ áÿàÿßÿÝÿÜÿÛÿÙÿÙÿ×ÿÖÿÕÿÔÿÒÿÒÿÐÿŒÎqÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿííÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŒ ©ÿ‰,bÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,hÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,nÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*vÿŠ*vÿ‹*wÿ‹*xÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹(‡ÿŽÞÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ èÿŽ æÿŽ äÿŽãÿŽàÿŽÞÿŽÜÿŽÚÿÖÿÔÿÒÿÐÿÍÿËÿÉÿÇÿ½ÿ½ÿ¾ÿ¾ÿÀÿÀÿÂÿÃÿÅÿÆÿÇÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿÍÿÎÿÏÿÑÿÒÿÓÿÕÿÖÿÖÿØÿÙÿÚÿÜÿÜÿÞÿßÿàÿ áÿ âÿ›*翸gîAÿÿÿÿÿÿÿÿÿ©Fí›'êÿ çÿ èÿŽ èÿŽ éÿŽ éÿŽ êÿŽ êÿŽ ëÿŽ ëÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ ëÿŽ êÿŽ éÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ æÿ åÿ åÿ äÿ äÿ âÿ áÿ àÿßÿÞÿÝÿÜÿÚÿÙÿØÿÖÿÖÿÕÿÓÿÒÿÑÿÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿííÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿ‹$”ÿ‰,cÿ‰,dÿ‰,eÿ‰,gÿ‰,hÿ‰,iÿ‰,iÿŠ,jÿŠ+lÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*uÿŠ*vÿ‹*wÿ‹*xÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿŒ#¥ÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ çÿŽ åÿŽ äÿŽáÿŽßÿŽÜÿŽÚÿ×ÿÔÿÒÿÐÿÎÿÌÿÊÿÉÿÂÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÑÿÒÿÔÿÕÿÖÿ×ÿØÿÙÿÛÿÜÿÝÿÞÿßÿ àÿ áÿ âÿ ãÿåÿ™%èÿ åÿ æÿ çÿ çÿ çÿ èÿŽ èÿŽ éÿŽ éÿŽ éÿŽ éÿŽ êÿŽ êÿŽ êÿŽ ëÿŽ ëÿŽ ëÿŽ êÿŽ êÿŽ êÿŽ éÿŽ éÿŽ éÿŽ èÿ èÿ çÿ çÿ çÿ æÿ åÿ åÿ äÿ äÿ ãÿ áÿ àÿàÿßÿÝÿÜÿÛÿÙÿÙÿ×ÿÖÿÕÿÕÿÓÿÒÿÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿííÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿêÿŠ'ƒÿ‰,dÿ‰,eÿ‰,fÿ‰,hÿ‰,iÿ‰,iÿŠ,jÿŠ+kÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*sÿ‰*tÿŠ*uÿŠ*vÿŠ*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿŽÒÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ èÿŽ æÿŽ äÿŽâÿŽßÿŽÝÿŽÛÿŽÙÿÕÿÓÿÑÿÏÿÌÿËÿÉÿÇÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÂÿÄÿÅÿÆÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÍÿÍÿÏÿÏÿÑÿÒÿÓÿÕÿÕÿÖÿ×ÿÙÿÙÿÛÿÜÿÝÿßÿàÿ àÿ áÿ ãÿ äÿ äÿ åÿ åÿ æÿ çÿ çÿ çÿ çÿ èÿŽ èÿŽ èÿŽ éÿŽ éÿŽ éÿŽ éÿŽ éÿŽ éÿŽ éÿŽ éÿŽ éÿŽ éÿŽ éÿŽ èÿ èÿ èÿ çÿ çÿ çÿ æÿ åÿ åÿ äÿ äÿ ãÿ âÿ àÿàÿßÿÞÿÜÿÜÿÚÿÙÿØÿÖÿÖÿÕÿÔÿÒÿŒÑ›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿííÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽäÿŠ(yÿ‰,eÿ‰,fÿ‰,hÿ‰,iÿ‰,iÿŠ,jÿŠ+kÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+qÿ‰+rÿ‰+sÿ‰*tÿŠ*uÿŠ*vÿŠ*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)€ÿ‹)‚ÿ‹&ÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ èÿŽ æÿŽ äÿŽãÿŽàÿŽÞÿŽÜÿŽÚÿÖÿÔÿÑÿÏÿÍÿËÿÉÿÈÿÂÿ½ÿ¾ÿ¾ÿÀÿÀÿÂÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÑÿÒÿÔÿÕÿÖÿ×ÿØÿÙÿÚÿÜÿÜÿÞÿßÿàÿ àÿ áÿ ãÿ ãÿ äÿ åÿ åÿ æÿ æÿ çÿ çÿ çÿ çÿ èÿ èÿŽ èÿŽ èÿŽ èÿŽ èÿŽ èÿŽ èÿŽ èÿŽ èÿ èÿ èÿ çÿ çÿ çÿ çÿ çÿ æÿ åÿ åÿ äÿ äÿ ãÿ âÿ áÿàÿßÿÞÿÝÿÜÿÛÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿŒÑŸˆÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿííÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽÜÿ‰*qÿ‰,fÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ+kÿŠ,mÿŠ+nÿŠ+oÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*uÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*zÿ‹*{ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿ‹)‚ÿŒ ²ÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ çÿŽ åÿŽ äÿŽáÿŽÞÿŽÜÿŽÚÿ×ÿÔÿÒÿÐÿÍÿÌÿÊÿÈÿÆÿ¾ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÆÿÆÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÍÿÍÿÏÿÏÿÑÿÒÿÓÿÕÿÕÿÖÿ×ÿØÿÙÿÚÿÜÿÜÿÞÿßÿàÿ àÿ áÿ âÿ ãÿ äÿ äÿ åÿ åÿ æÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ èÿ èÿ èÿ èÿ èÿ çÿ çÿ çÿ çÿ çÿ çÿ æÿ åÿ åÿ åÿ äÿ äÿ ãÿ âÿ áÿàÿßÿÞÿÝÿÜÿÛÿÙÿÙÿ×ÿÖÿÖÿÕÿÓÿÒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽísíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽ×ÿ‰*nÿ‰,gÿ‰,iÿ‰,iÿŠ,jÿŠ+kÿŠ+lÿŠ+nÿŠ+oÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹)€ÿ‹)ÿËÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ çÿŽ åÿŽ äÿŽâÿŽßÿŽÝÿŽÛÿØÿÕÿÓÿÑÿÎÿÌÿÊÿÉÿÇÿÁÿ½ÿ¾ÿ¿ÿÀÿÁÿÂÿÄÿÅÿÆÿÇÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿŒÍÿÎÿÏÿÐÿÑÿÒÿÓÿÕÿÖÿÖÿ×ÿØÿÙÿÛÿÜÿÝÿÞÿßÿàÿ àÿ áÿ âÿ ãÿ äÿ äÿ åÿ åÿ åÿ æÿ æÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ çÿ æÿ æÿ åÿ åÿ åÿ äÿ äÿ ãÿ ãÿ âÿ áÿàÿßÿÞÿÝÿÜÿÛÿÚÿÙÿØÿ×ÿÖÿÕÿÔÿÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽî_íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÍÿ‰+mÿ‰,iÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ+nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*vÿŠ*vÿ‹*wÿ‹*xÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿ‹)ÿŽßÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ èÿŽ æÿŽ äÿŽãÿŽàÿŽÝÿŽÛÿŽÙÿÕÿÓÿÑÿÏÿÌÿËÿÉÿÈÿÅÿ¾ÿ¾ÿ¾ÿ¿ÿÀÿÂÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÍÿÍÿÎÿÏÿÐÿÒÿÒÿÔÿÕÿÖÿÖÿØÿÙÿÙÿÛÿÜÿÝÿÞÿßÿàÿ àÿ áÿ âÿ ãÿ ãÿ äÿ äÿ åÿ åÿ åÿ åÿ æÿ æÿ æÿ æÿ çÿ çÿ çÿ æÿ æÿ æÿ åÿ åÿ åÿ åÿ äÿ äÿ äÿ ãÿ âÿ áÿ àÿàÿßÿÞÿÝÿÜÿÛÿÚÿÙÿØÿ×ÿÖÿÕÿÕÿŒÓyÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíMíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÎÿ‰+nÿ‰,iÿŠ,jÿŠ,jÿŠ+lÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*uÿŠ*vÿ‹*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)ÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ éÿŽ çÿŽ åÿŽ ãÿŽàÿŽÞÿŽÜÿŽÚÿÖÿÔÿÒÿÐÿÍÿËÿÊÿÈÿÆÿÁÿ¾ÿ¾ÿ¿ÿÀÿÁÿÂÿÄÿÅÿÆÿÇÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿŒÍÿÎÿÏÿÏÿÑÿÒÿÓÿÔÿÕÿÖÿ×ÿØÿÙÿÙÿÛÿÜÿÜÿÞÿßÿßÿàÿ àÿ áÿ âÿ ãÿ ãÿ äÿ äÿ äÿ åÿ åÿ åÿ åÿ åÿ åÿ åÿ åÿ åÿ åÿ åÿ åÿ äÿ äÿ äÿ äÿ ãÿ âÿ âÿ áÿ àÿàÿßÿÞÿÝÿÜÿÛÿÚÿÙÿØÿ×ÿÖÿÕÿŒÕûŒÔiÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì5íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÎÿ‰+oÿ‰,iÿŠ,jÿŠ+kÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*sÿ‰*tÿŠ*uÿŠ*vÿŠ*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)€ÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ çÿŽ åÿŽ äÿŽáÿŽßÿŽÜÿŽÚÿØÿÕÿÒÿÐÿÎÿÌÿÊÿÉÿÆÿÃÿ¾ÿ¾ÿ¾ÿÀÿÀÿÂÿÃÿÄÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿÍÿÎÿÏÿÐÿÑÿÒÿÓÿÕÿÕÿÖÿ×ÿØÿÙÿÙÿÛÿÜÿÜÿÝÿÞÿßÿàÿ àÿ áÿ áÿ âÿ ãÿ ãÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ äÿ ãÿ ãÿ âÿ âÿ áÿ àÿàÿßÿßÿÞÿÝÿÜÿÛÿÚÿÙÿØÿ×ÿÖÿÖÿŒÕóŒÕQÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽêíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÎÿ‰+oÿŠ,jÿŠ+kÿŠ,mÿŠ+nÿŠ+oÿŠ+pÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*uÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*zÿ‹*{ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿŽÜÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ êÿŽ èÿŽ æÿŽ äÿŽâÿŽßÿŽÝÿŽÛÿŽÙÿÕÿÓÿÑÿÏÿÌÿËÿÉÿÇÿÄÿÁÿ¾ÿ¾ÿ¿ÿÀÿÁÿÂÿÄÿÅÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒËÿŒËÿŒËÿŒÍÿÍÿÎÿÏÿÐÿÑÿÒÿÓÿÕÿÕÿÖÿ×ÿØÿÙÿÙÿÛÿÜÿÜÿÝÿÞÿßÿßÿàÿ àÿ áÿ áÿ âÿ âÿ ãÿ ãÿ ãÿ äÿ äÿ äÿ äÿ äÿ äÿ ãÿ ãÿ ãÿ âÿ âÿ áÿ áÿ àÿàÿàÿßÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿØÿ×ÿÖÿÖÿÕç‹Ô9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìãíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽÎÿŠ+pÿŠ+kÿŠ+lÿŠ+nÿŠ+oÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿÃÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ èÿŽ æÿŽ äÿŽãÿŽàÿŽÞÿŽÜÿŽÚÿÖÿÔÿÑÿÐÿÍÿËÿÉÿÈÿÅÿÂÿ¾ÿ¾ÿ¾ÿÀÿÀÿÂÿÃÿÄÿÆÿÆÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿŒÍÿÎÿÏÿÏÿÐÿÑÿÒÿÔÿÕÿÕÿÖÿ×ÿØÿÙÿÙÿÚÿÛÿÜÿÜÿÝÿÞÿßÿßÿàÿ àÿ àÿ áÿ áÿ áÿ âÿ âÿ âÿ âÿ âÿ âÿ âÿ âÿ âÿ áÿ áÿ àÿ àÿàÿàÿßÿÞÿÞÿÝÿÜÿÜÿÛÿÙÿÙÿØÿ×ÿÖÿÖÿŒÕÓŒ×ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì§íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽÎÿŠ*uÿŠ+lÿŠ+nÿŠ+nÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*vÿŠ*vÿ‹*wÿ‹*xÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿŒ%•ÿëÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ çÿŽ åÿŽ äÿŽáÿŽÞÿŽÜÿŽÚÿ×ÿÔÿÒÿÐÿÍÿÌÿÈÿÂÿ½ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÂÿÄÿÅÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿŒÍÿÎÿÏÿÏÿÑÿÒÿÒÿÔÿÕÿÕÿÖÿÖÿ×ÿØÿÙÿÙÿÛÿÜÿÜÿÝÿÝÿÞÿßÿßÿàÿàÿàÿ àÿ àÿ àÿ áÿ áÿ áÿ áÿ àÿ àÿ àÿ àÿàÿàÿßÿßÿÞÿÞÿÝÿÜÿÜÿÛÿÚÿÙÿÙÿØÿ×ÿÖÿÖÿŒÕ³ŒÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì_íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽØÿŠ)xÿŠ,mÿŠ+nÿŠ+oÿ‰+pÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*uÿŠ*vÿŠ*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)€ÿ»ÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ çÿŽ åÿŽ äÿŽâÿŽßÿŽÝÿŽÛÿØÿÕÿÒÿÊÿÂÿ»ÿ¹ÿºÿ»ÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÃÿÄÿÅÿÆÿÇÿŒÉÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿÍÿÎÿÏÿÏÿÑÿÒÿÒÿÔÿÕÿÕÿÖÿÖÿ×ÿØÿÙÿÙÿÚÿÛÿÜÿÜÿÜÿÝÿÞÿÞÿÞÿßÿßÿàÿàÿàÿàÿàÿàÿàÿàÿßÿßÿßÿÞÿÞÿÝÿÝÿÜÿÜÿÜÿÛÿÙÿÙÿØÿØÿ×ÿÖÿÖÿŒÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì÷íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽáÿŠ(ÿŠ+nÿŠ+oÿ‰+pÿ‰+qÿ‰+rÿ‰*sÿ‰*tÿŠ*uÿŠ*vÿŠ*wÿ‹*xÿ‹*yÿ‹*zÿ‹*{ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿ‹(ƒÿÊÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ êÿŽ èÿŽ æÿŽ äÿŽãÿŽàÿŽÝÿŽÙÿŽÍÿ¿ÿ¶ÿµÿ·ÿ¸ÿ¹ÿºÿºÿ»ÿ¼ÿ¼ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÂÿÃÿÄÿÆÿÆÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒËÿŒÍÿÍÿÎÿÏÿÏÿÑÿÒÿÒÿÓÿÕÿÕÿÖÿÖÿ×ÿØÿØÿÙÿÙÿÚÿÛÿÜÿÜÿÜÿÜÿÝÿÝÿÞÿÞÿÞÿÞÿÞÿÞÿÞÿÞÿÞÿÞÿÞÿÝÿÝÿÜÿÜÿÜÿÛÿÛÿÚÿÙÿÙÿØÿ×ÿÖÿÖÿŒÕó‹ÔMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŸíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽçÿ‹%ÿŠ+oÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿ‹)ÿ‹(ƒÿÈÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽ éÿŽ çÿŽ åÿŽÝÿÌÿ»ÿްÿްÿ²ÿ³ÿµÿ¶ÿ·ÿ¸ÿ¹ÿºÿ»ÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÂÿÄÿÅÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿŒÍÿÍÿÎÿÏÿÏÿÐÿÑÿÒÿÓÿÔÿÕÿÕÿÖÿÖÿ×ÿØÿØÿÙÿÙÿÚÿÛÿÛÿÜÿÜÿÜÿÜÿÜÿÝÿÝÿÝÿÝÿÝÿÝÿÜÿÜÿÜÿÜÿÜÿÜÿÛÿÚÿÙÿÙÿÙÿØÿØÿ×ÿÖÿÖÿŒÕÏÔ%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí%ŽìûíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿëÿŒ" ÿŠ+oÿ‰+qÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*vÿŠ*vÿ‹*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ µÿëÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽ ìÿŽ ìÿŽ ìÿŽ ìÿŽ ëÿŽÝÿÉÿ·ÿ «ÿ ¬ÿ ­ÿ®ÿްÿޱÿ²ÿ´ÿµÿ·ÿ¸ÿ¹ÿ¹ÿºÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿÀÿÀÿÁÿÃÿÄÿÅÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿŒÍÿÍÿÎÿÏÿÏÿÐÿÑÿÒÿÒÿÔÿÕÿÕÿÖÿÖÿÖÿ×ÿØÿØÿÙÿÙÿÙÿÚÿÚÿÛÿÛÿÜÿÜÿÜÿÜÿÜÿÜÿÜÿÜÿÛÿÛÿÛÿÚÿÙÿÙÿÙÿÙÿØÿØÿ×ÿÖÿÖÿÕÿŒÔ›ŒÕ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽí‹íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŒ¶ÿ‰*rÿ‰+rÿ‰+rÿ‰*sÿŠ*tÿŠ*uÿŠ*vÿŠ*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)€ÿ‹)‚ÿ‹)‚ÿ‹)„ÿ‹%™ÿŽÖÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿìÿìÿŽìÿŽ ëÿŽÙÿŽÃÿޝÿŽ!¨ÿ!©ÿ!ªÿ!«ÿ ¬ÿ ¬ÿ®ÿޝÿްÿ²ÿ³ÿµÿ¶ÿ·ÿ¸ÿ¹ÿºÿºÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÂÿÃÿÄÿÅÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿŒÍÿÍÿÎÿÏÿÏÿÐÿÑÿÒÿÒÿÓÿÔÿÕÿÕÿÖÿÖÿÖÿ×ÿ×ÿØÿØÿÙÿÙÿÙÿÙÿÙÿÙÿÚÿÚÿÚÿÚÿÚÿÙÿÙÿÙÿÙÿÙÿÙÿØÿØÿ×ÿ×ÿÖÿÖÿÖÿŒÕóŒÕYÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî ŽìÏíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÌÿ‰){ÿ‰+rÿ‰+sÿ‰*tÿŠ*uÿŠ*vÿŠ*wÿ‹*wÿ‹*yÿ‹*zÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹)€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)…ÿ‹)†ÿ!­ÿŽßÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿçÿŽÑÿ޽ÿŽ"§ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"§ÿ!©ÿ!ªÿ!ªÿ «ÿ ¬ÿ ­ÿ®ÿްÿޱÿ²ÿ´ÿµÿ·ÿ·ÿ¹ÿ¹ÿºÿ»ÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÂÿÃÿÄÿÆÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒÌÿŒÌÿÍÿÎÿÏÿÏÿÐÿÑÿÑÿÒÿÒÿÓÿÔÿÕÿÕÿÖÿÖÿÖÿÖÿ×ÿ×ÿØÿØÿØÿÙÿÙÿÙÿÙÿÙÿÙÿÙÿÙÿÙÿØÿØÿØÿ×ÿ×ÿÖÿÖÿÖÿÖÿÕÿŒÔÇÕ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì×íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽßÿŠ&‹ÿ‰+rÿ‰*tÿŠ*tÿŠ*vÿŠ*vÿ‹*wÿ‹*yÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)„ÿ‹)†ÿ‹(‡ÿŒ'‰ÿ!®ÿŽÝÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽãÿŽÊÿ ³ÿŽ# ÿŽ# ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!©ÿ!ªÿ!«ÿ ¬ÿ ¬ÿ®ÿޝÿްÿ²ÿ³ÿµÿ¶ÿ·ÿ¸ÿ¹ÿºÿºÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÁÿÂÿÃÿÄÿÆÿÆÿŒÈÿŒÉÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒËÿŒÌÿŒÍÿÍÿÎÿÏÿÏÿÐÿÑÿÒÿÒÿÒÿÓÿÔÿÕÿÕÿÕÿÖÿÖÿÖÿÖÿÖÿ×ÿ×ÿ×ÿ×ÿ×ÿ×ÿ×ÿ×ÿ×ÿ×ÿ×ÿÖÿÖÿÖÿÖÿÖÿÕÿÕÿŒÕûŒÕ{ˆÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÓíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿëÿ‹"¨ÿ‰*sÿŠ*tÿŠ*uÿŠ*vÿŠ*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)€ÿ‹)‚ÿ‹)‚ÿ‹)„ÿ‹)…ÿ‹)†ÿŒ(ˆÿŒ(ˆÿŒ(ŠÿŒ#¦ÿŽÍÿëÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽÚÿŽÁÿ"¨ÿ%›ÿ$œÿ$žÿ$žÿŽ# ÿŽ#¡ÿŽ#£ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"§ÿ!©ÿ!ªÿ!ªÿ «ÿ ¬ÿ ­ÿ®ÿޝÿޱÿ²ÿ³ÿµÿ¶ÿ·ÿ¸ÿ¹ÿºÿºÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÁÿÃÿÄÿÅÿÆÿÆÿŒÈÿŒÉÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒËÿŒÌÿŒÍÿÍÿÎÿÏÿÏÿÐÿÐÿÑÿÒÿÒÿÒÿÓÿÔÿÕÿÕÿÕÿÕÿÖÿÖÿÖÿÖÿÖÿÖÿÖÿÖÿÖÿÖÿÖÿÖÿÖÿÖÿÕÿÕÿÕÿÕÿÔÿŒÔÓŒÒ1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî Ží›íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÇÿŠ(}ÿŠ*uÿŠ*vÿŠ*wÿ‹*xÿ‹*yÿ‹*zÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ&“ÿ ·ÿŽÖÿíÿíÿíÿíÿêÿŽÒÿ·ÿ$ ÿ&—ÿ%˜ÿ%™ÿ%šÿ$œÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!©ÿ!ªÿ!«ÿ «ÿ ¬ÿ ­ÿŽ®ÿްÿ±ÿ²ÿ´ÿµÿ·ÿ¸ÿ¹ÿ¹ÿºÿ»ÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÁÿÃÿÄÿÅÿÆÿÆÿŒÈÿŒÈÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒËÿŒÌÿŒÍÿÍÿÍÿÎÿÏÿÏÿÐÿÐÿÑÿÒÿÒÿÒÿÒÿÓÿÔÿÔÿÕÿÕÿÕÿÕÿÕÿÕÿÕÿÕÿÕÿÕÿÕÿÕÿÕÿÕÿÕÿÔÿÔÿŒÓûÒƒŒÌ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìEŽìÏíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽßÿ‹$–ÿŠ*vÿŠ*vÿ‹*wÿ‹*yÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)„ÿ‹)†ÿ‹)†ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ(ÿ%•ÿ ²ÿŽÅÿ!®ÿ&—ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%›ÿ$œÿ$žÿ$žÿŽ# ÿŽ#¡ÿŽ#£ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"§ÿŽ!©ÿ!ªÿ!ªÿ «ÿ ¬ÿ ­ÿ®ÿޝÿްÿ²ÿ³ÿµÿ¶ÿ·ÿ¸ÿ¹ÿºÿºÿ»ÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÂÿÃÿÄÿÅÿÆÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒÊÿŒÊÿŒËÿŒËÿŒËÿŒÌÿŒÍÿÍÿÎÿÎÿÏÿÏÿÐÿÐÿÑÿÑÿÒÿÒÿÒÿÒÿÓÿÓÿÔÿÔÿÔÿÔÿÔÿÔÿÔÿÔÿÔÿÔÿÔÿÓÿÒÿÒÿŒÒËŒÏ1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìQŽí¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿºÿŠ)|ÿ‹*wÿ‹*xÿ‹*yÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)€ÿ‹)‚ÿ‹)‚ÿ‹)„ÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ'ÿ'ÿ'ÿ'‘ÿ'’ÿ&“ÿ&”ÿ&–ÿ&–ÿ&˜ÿ%˜ÿ%šÿ%šÿ$œÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!©ÿ!ªÿ!«ÿ «ÿ ¬ÿ ­ÿ®ÿްÿޱÿ²ÿ´ÿµÿ¶ÿ·ÿ¸ÿ¹ÿºÿºÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÂÿÃÿÄÿÅÿÆÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒËÿŒÌÿŒÌÿŒÍÿÍÿÎÿÎÿÏÿÏÿÏÿÐÿÐÿÑÿÑÿÑÿÒÿÒÿÒÿÒÿÒÿÒÿÒÿÒÿÒÿÒÿÒÿÒÿÒÿÒÿŒÑóŒÒoˆÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì!Ží{ŽíÃŽìûíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽÞÿ‹%”ÿ‹*xÿ‹*yÿ‹*zÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹)€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ(ÿ'Žÿ'ÿ'ÿ'‘ÿ'“ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%›ÿ$œÿ$žÿ$žÿŽ# ÿŽ#¡ÿŽ#£ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!ªÿ!ªÿ!«ÿ ¬ÿ ¬ÿ®ÿޝÿްÿ±ÿ²ÿ´ÿµÿ·ÿ·ÿ¹ÿ¹ÿºÿºÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÂÿÃÿÄÿÄÿÆÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒËÿŒËÿŒÌÿŒÍÿŒÍÿÍÿÎÿÎÿÏÿÏÿÏÿÏÿÐÿÐÿÐÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿÑÿŒЧŒÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî íIŽ샎쯎í×íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÁÿ‹(€ÿ‹*yÿ‹*{ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)„ÿ‹)†ÿ‹)†ÿŒ(ˆÿŒ(ˆÿŒ(ŠÿŒ(ŠÿŒ(ŒÿŒ(ŒÿŒ(ÿŒ'ÿ'ÿ'ÿ'‘ÿ'’ÿ&”ÿ&”ÿ&–ÿ&–ÿ&˜ÿ%˜ÿ%šÿ%šÿ$œÿ$ÿ$žÿŽ$ŸÿŽ# ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"§ÿ!©ÿ!ªÿ!«ÿ «ÿ ¬ÿ ­ÿ®ÿޝÿްÿ²ÿ³ÿµÿ¶ÿ·ÿ¸ÿ¹ÿ¹ÿºÿ»ÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÁÿÃÿÃÿÄÿÅÿÆÿÇÿŒÈÿŒÈÿŒÉÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒËÿŒËÿŒÌÿŒÌÿŒÍÿÍÿÍÿÎÿÎÿÏÿÏÿÏÿÏÿÏÿÏÿÏÿÐÿÐÿÐÿÐÿÐÿÐÿÐÿŒÏÏŒÏAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽë%íAŽî_ŽíoŽ탎ì§ŽíÏŽìûíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽäÿŒ"¦ÿ‹*zÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*ÿ‹)€ÿ‹)ÿ‹)‚ÿ‹)„ÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ'ÿ'Žÿ'ÿ'ÿ'’ÿ'“ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%›ÿ$œÿ$žÿ$žÿŽ# ÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¦ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!©ÿ!ªÿ!«ÿ «ÿ ¬ÿ ­ÿ®ÿްÿޱÿ²ÿ³ÿµÿ¶ÿ·ÿ¸ÿ¹ÿ¹ÿºÿ»ÿ»ÿ¼ÿ½ÿ¾ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÁÿÂÿÃÿÄÿÅÿÆÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒÉÿŒÉÿŒÊÿŒËÿŒËÿŒËÿŒËÿŒÌÿŒÌÿŒÍÿŒÍÿÍÿÍÿÍÿÎÿÎÿÎÿÏÿÏÿÏÿÏÿÏÿÏÿÏÿÎçŒÎeˆÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî íIŽ웎íëíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽÔÿŒ&’ÿ‹*|ÿ‹*|ÿ‹*}ÿ‹*}ÿ‹*ÿ‹*€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)„ÿ‹)†ÿ‹)†ÿŒ(ˆÿŒ(ˆÿŒ(ŠÿŒ(ŠÿŒ(ŒÿŒ(ŒÿŒ(ÿŒ'ÿ'ÿ'ÿ'‘ÿ'’ÿ&”ÿ&”ÿ&–ÿ&–ÿ&˜ÿ%˜ÿ%šÿ%šÿ%œÿ$ÿ$žÿŽ$ŸÿŽ# ÿŽ#¢ÿŽ#£ÿŽ#¤ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"§ÿŽ!¨ÿ!ªÿ!ªÿ «ÿ ¬ÿ ¬ÿ­ÿŽ®ÿްÿ±ÿ²ÿ´ÿµÿ¶ÿ·ÿ¸ÿ¹ÿ¹ÿºÿ»ÿ»ÿ¼ÿ½ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÁÿÂÿÃÿÄÿÅÿÆÿÆÿÇÿŒÈÿŒÈÿŒÉÿŒÉÿŒÉÿŒÊÿŒÊÿŒËÿŒËÿŒËÿŒËÿŒËÿŒÌÿŒÌÿŒÌÿŒÍÿŒÍÿÍÿÍÿÍÿÍÿÍÿÎÿÎÿŒÍóŒÎŒÌ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî ŽìaŽì×íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿÂÿ‹'ˆÿ‹*}ÿ‹*}ÿ‹*~ÿ‹*€ÿ‹)€ÿ‹)‚ÿ‹)‚ÿ‹)„ÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ'ÿ'Žÿ'ÿ'ÿ'’ÿ'“ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%›ÿ$œÿ$žÿ$žÿŽ$ŸÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!©ÿ!ªÿ!ªÿ «ÿ ¬ÿ ­ÿ®ÿޝÿްÿ²ÿ²ÿ´ÿµÿ·ÿ·ÿ¸ÿ¹ÿºÿºÿ»ÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÁÿÂÿÃÿÄÿÄÿÅÿÆÿÆÿÇÿŒÈÿŒÉÿŒÉÿŒÉÿŒÉÿŒÉÿŒÊÿŒÊÿŒËÿŒËÿŒËÿŒËÿŒËÿŒËÿŒÌÿŒÌÿŒÌÿŒÌÿŒÍÿŒÍÿŒÌ÷ŒÌŒÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽìaíçíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿéÿ¸ÿ‹(„ÿ‹*~ÿ‹*ÿ‹)€ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ŒÿŒ(ÿŒ'Žÿ'ÿ'ÿ'‘ÿ'’ÿ&”ÿ&”ÿ&–ÿ&–ÿ&˜ÿ%˜ÿ%™ÿ%šÿ%›ÿ$ÿ$žÿ$ŸÿŽ# ÿŽ#¡ÿŽ#£ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!©ÿ!ªÿ!«ÿ «ÿ ¬ÿ ­ÿ®ÿޝÿްÿ²ÿ²ÿ´ÿµÿ·ÿ·ÿ¸ÿ¹ÿºÿºÿ»ÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿ¿ÿ¿ÿÀÿÁÿÁÿÂÿÃÿÄÿÅÿÆÿÆÿÆÿÇÿŒÈÿŒÈÿŒÉÿŒÉÿŒÉÿŒÉÿŒÊÿŒÊÿŒÊÿŒËÿŒËÿŒËÿŒËÿŒËÿŒËÿŒËÿŒË÷ŒËŒÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽêŽì£íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽæÿ µÿ‹(…ÿ‹*€ÿ‹)€ÿ‹)‚ÿ‹)‚ÿ‹)„ÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ'ÿ'Žÿ'ÿ'ÿ'’ÿ'“ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%›ÿ$œÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"§ÿŽ!¨ÿ!ªÿ!ªÿ!«ÿ «ÿ ¬ÿ ­ÿ®ÿޝÿޱÿ²ÿ³ÿ´ÿµÿ·ÿ·ÿ¸ÿ¹ÿºÿºÿ»ÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÁÿÂÿÃÿÄÿÄÿÅÿÆÿÆÿÆÿÇÿŒÈÿŒÈÿŒÉÿŒÉÿŒÉÿŒÉÿŒÉÿŒÉÿŒÊÿŒÊÿŒÊÿŒËÿŒË÷ŒËŒÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿì]ŽíóíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽæÿ ¶ÿ‹(‡ÿ‹)ÿ‹)‚ÿ‹)ƒÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ŒÿŒ(ÿŒ'Žÿ'ÿ'ÿ'‘ÿ'’ÿ&“ÿ&”ÿ&–ÿ&–ÿ&—ÿ%˜ÿ%™ÿ%šÿ%›ÿ$œÿ$žÿ$žÿŽ# ÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"§ÿ!©ÿ!ªÿ!ªÿ «ÿ ¬ÿ ¬ÿ ­ÿŽ®ÿްÿޱÿ²ÿ³ÿ´ÿ¶ÿ·ÿ·ÿ¸ÿ¹ÿºÿºÿ»ÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÁÿÁÿÂÿÃÿÄÿÄÿÅÿÆÿÆÿÆÿÇÿÇÿŒÈÿŒÈÿŒÉÿŒÉÿŒÉÿŒÉÿŒÉÿŒÉç‹ÉŠÊÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî1íçíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿéÿ¾ÿ‹&ÿ‹)ƒÿ‹)„ÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ'ÿ'Žÿ'ÿ'ÿ'‘ÿ'’ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%˜ÿ%šÿ%šÿ$œÿ$ÿ$žÿŽ$ŸÿŽ# ÿŽ#¡ÿŽ#£ÿŽ#£ÿŽ"¤ÿŽ"¦ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!©ÿ!ªÿ!ªÿ «ÿ ¬ÿ ¬ÿ­ÿŽ®ÿްÿޱÿ²ÿ³ÿ´ÿ¶ÿ·ÿ·ÿ¸ÿ¹ÿ¹ÿºÿ»ÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÁÿÂÿÂÿÃÿÄÿÄÿÅÿÆÿÆÿÆÿÆÿÇÿÇÿŒÈÿŒÈÿŒÉÏ‹ÈcŒÄ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì×íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿëÿÊÿŒ$žÿ‹)…ÿ‹)†ÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ŒÿŒ(ÿŒ'ÿ'ÿ'ÿ'‘ÿ'’ÿ'“ÿ&”ÿ&•ÿ&–ÿ&—ÿ%˜ÿ%™ÿ%šÿ%›ÿ$œÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ#¤ÿŽ"¥ÿŽ"¦ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!©ÿ!ªÿ!«ÿ «ÿ ¬ÿ ­ÿ®ÿŽ®ÿްÿޱÿ²ÿ³ÿ´ÿµÿ·ÿ·ÿ¸ÿ¹ÿ¹ÿºÿºÿ»ÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÀÿÁÿÂÿÂÿÃÿÄÿÄÿÄÿÅÿÆÿÆÿŒÆ÷ŒƧŒÇ9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì×íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽÛÿŒ!±ÿ‹'ŽÿŒ(‡ÿŒ(ˆÿŒ(‰ÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ÿŒ'ÿ'Žÿ'ÿ'ÿ'‘ÿ'’ÿ&”ÿ&•ÿ&–ÿ&–ÿ&˜ÿ%˜ÿ%™ÿ%šÿ%›ÿ$ÿ$žÿ$žÿŽ# ÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"§ÿŽ!¨ÿ!©ÿ!ªÿ!«ÿ «ÿ ¬ÿ ­ÿ®ÿޝÿްÿޱÿ²ÿ³ÿ´ÿµÿ·ÿ·ÿ¸ÿ¹ÿ¹ÿºÿºÿ»ÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÀÿÁÿÂÿÂÿÃÿÃÿÄÿŒÄÏŒÄkŒÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽì×íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿéÿŽËÿŒ"¦ÿŒ'ŠÿŒ(ŠÿŒ(‹ÿŒ(ŒÿŒ(ŒÿŒ(ÿŒ'ÿ'ÿ'ÿ'ÿ'’ÿ'“ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%šÿ$œÿ$ÿ$žÿ$ŸÿŽ# ÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"§ÿŽ!¨ÿ!ªÿ!ªÿ!«ÿ «ÿ ¬ÿ ­ÿ®ÿޝÿްÿޱÿ²ÿ³ÿ´ÿµÿ¶ÿ·ÿ¸ÿ¹ÿ¹ÿºÿºÿ»ÿ»ÿ»ÿ¼ÿ¼ÿ½ÿ¾ÿ¾ÿ¾ÿ¾ÿ¿ÿÀÿÀÿÀÿÁÿŒÁãŒÇŒÂ1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìíßíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽåÿÆÿŒ#¤ÿŒ'ÿŒ(ŒÿŒ(ÿŒ(ÿ'Žÿ'ÿ'ÿ'‘ÿ'’ÿ&“ÿ&”ÿ&•ÿ&–ÿ&—ÿ%˜ÿ%™ÿ%šÿ%›ÿ$œÿ$ÿ$žÿŽ$ŸÿŽ# ÿŽ#¢ÿŽ#£ÿŽ#£ÿŽ"¤ÿŽ"¥ÿŽ"¦ÿŽ"§ÿŽ"§ÿ!©ÿ!ªÿ!ªÿ!«ÿ «ÿ ¬ÿ ­ÿ®ÿޝÿްÿޱÿ²ÿ³ÿ´ÿµÿ¶ÿ·ÿ¸ÿ¸ÿ¹ÿ¹ÿºÿºÿ»ÿ»ÿ¼ÿ¼ÿ½ÿ½ÿ¾ÿ¾ÿ¾ÿ¾ÿŒ¾ßŒ¿Œ¿=ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí)íçíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽåÿÊÿ"¬ÿŒ'‘ÿŒ'ÿ'Žÿ'ÿ'ÿ'‘ÿ'’ÿ&”ÿ&•ÿ&–ÿ&–ÿ&˜ÿ%˜ÿ%™ÿ%šÿ%›ÿ$œÿ$ÿ$žÿŽ$ŸÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ#£ÿŽ"¥ÿŽ"¦ÿŽ"¦ÿŽ"§ÿŽ"§ÿ!©ÿ!ªÿ!ªÿ!«ÿ «ÿ ¬ÿ ­ÿ®ÿŽ®ÿްÿޱÿ²ÿ²ÿ´ÿµÿ¶ÿ·ÿ·ÿ¸ÿ¹ÿ¹ÿºÿºÿ»ÿ»ÿ»ÿ¼ÿ¼ÿŒ½ûŒ½ÃŒ½{Œ¿1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí=Žì÷íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿëÿŽÖÿ޽ÿ"¦ÿ&’ÿ'‘ÿ'’ÿ'“ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%˜ÿ%šÿ%šÿ%›ÿ$ÿ$žÿ$žÿŽ$ŸÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ#¤ÿŽ"¥ÿŽ"¦ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!©ÿ!ªÿ!ªÿ!«ÿ «ÿ ¬ÿ ­ÿ®ÿŽ®ÿްÿްÿ²ÿ²ÿ´ÿµÿµÿ·ÿ·ÿ¸ÿ¹ÿ¹ÿ¹ÿºÿºÿºÏŒ»»QŠ»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëYíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿêÿŽÕÿŽÂÿ!®ÿ%ÿ&”ÿ&•ÿ&–ÿ&—ÿ&˜ÿ%™ÿ%šÿ%šÿ$œÿ$ÿ$žÿ$žÿŽ# ÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¥ÿŽ"¦ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!©ÿ!ªÿ!ªÿ!«ÿ «ÿ ¬ÿ ¬ÿ­ÿ®ÿޝÿްÿ±ÿ²ÿ³ÿ´ÿµÿ¶ÿ·ÿ·ïŒ¹»Œ¸ƒºMŠ»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽì{íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿæÿŽÔÿŽÇÿ޹ÿ"«ÿ$ ÿ%™ÿ%šÿ%›ÿ$œÿ$ÿ$žÿŽ$ŸÿŽ# ÿŽ#¡ÿŽ#¢ÿŽ#£ÿŽ"¤ÿŽ"¥ÿŽ"¦ÿŽ"¦ÿŽ"§ÿŽ!¨ÿ!©ÿ!ªÿ!ªÿ!«ÿ «ÿ ¬ÿ ¬ÿ ­ÿ®ÿޝÿްÿޱï±ËŒ³£Œ´wµMŒ·ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽíŸíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿéÿŽÞÿŽÖÿŽÎÿŽÄÿŽ¿ÿŽ»ÿŽ ²ÿŽ ³ÿŽ!­ÿŽ!¬ÿ!¦ëŽ!¤ßŽ!¥ßŽ!¦ßŽ!¦ßŽ!¦ßŽ!¨ß!©Û!©¿!©¿Œ «£Œ «— ¬Œ ¬c ­M ­1Ž ®ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆîŽì¿íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽ쳌î ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî ŽìÓíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿí£ˆîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÛíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽì{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí)íçíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽíëìIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿí)íãíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽí¿ŽìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽìÓíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽíïŽíiÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒî Žì¯íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽìûŽ웎ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽímŽíóíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽìûŽ쟎í%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽìŽ쟎ìûíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽíëŽì‹ì!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽíŽí×íÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿíÿŽìçŽ웎íIˆîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìŽíQŽìŽ쫎íËŽìçíÿíÿíÿíÿíÿŽì÷ŽíÛŽì·Žììcì)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿrxjs-7.5.7/docs_app/src/assets/images/guide/000077500000000000000000000000001431412030200207315ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/assets/images/guide/marble-diagram-anatomy.svg000066400000000000000000000241001431412030200257610ustar00rootroot00000000000000marble-diagram-anatomymultiplyByTen406046a8This is time flowing from left to right to represent the execution of the input Observable.These are values emitted by the Observable.This vertical line represents the "complete" notification and indicates that the Observable has completed successfully.This box indicates the operator which takes the input Observable (above) to produce the output Observable (below). The text inside the box shows the nature of the transformation.This Observable is the output of the operator call.This X represents an error emitted by the output Observable, indicating abnormal termination. Neither values nor the vertical will be delivered thereafter.rxjs-7.5.7/docs_app/src/assets/images/logos/000077500000000000000000000000001431412030200207575ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/assets/images/logos/Rx_Logo_S.png000066400000000000000000000200731431412030200233220ustar00rootroot00000000000000‰PNG  IHDRddpâ•TgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“ pHYsÃÃÇo¨d=IDATxÚíw¼\eÿßÏóœ2·¦Ñ’P¤˜MqD¤ˆ}éú£®²kC@ )Q‰Q‘KšKÇîŠe• ¬Š M@ZPX@JBH!¤Ý;sÚóýýqÎÜ9÷Ü™¹s#!!ṯóš¹SÎ9ó|žo/¼1¶¨¡6÷ 3a»=b’ô°ØX£`™bò3oòš1ê…ú°ÀDÁî¬q»À"„xÀ³ nøÍ´Þ7Ù£Y»–ð/s¼¢äB $€$»- ÀA(Ç`ï½@qö *ýЀ¼£Ì¼7ù¨*ü#j@ 5 à"TBP×(¢™Š©«Þä–9ãýC D ¡§³ŽàõIXQB"…”]z+×ñøúŸóóä @Z’Ú®Qø'@Ø Q B„ÕÀZ` PÉh)AцË*‚å²ÚAE *Tz5²Z£^re–ä½øî}ú¤× P¯ 1ÃÛ‡‘³þÙ)›²ƒ>SÖ"á °ö%hï…Žˆ”Žâì3NF#èÀÁAgÿ«GBLDØ µì*…ºÛEßjqïÊå™n“€üžÎŒ˜¥ñ¦¤@ÔÀˆ€ÀR„§YÊ(D”F)'ín‚®sT_W^«“‚¦°$X¬²R#·(äf‹~àpÎ}b›Ä2g´ ¿¦0g)T¿/ÿ‡ðð^6ñ:G¦ o™Ñ…×T$B¢'»ÈbÊÔÛØ´·Mˆp¢‰8ì|Eá›REB<Œð°2cEm9VTœäü£*€bQE}0ŠÀèì5 C™`uBòG‹½â&ÖÿïLfÚ×- +¹¤k N7˜öÚ\d_àxPïU¸]“ðŠ»^Ì–¡W`E¦0ñºÎ{º Å÷Tj¡N ƒ& Ü Ø›vþ~L½{sPÌFRáÒ u°‹³Ÿ`÷V°;°#¨1 Çé×—°,C¸ aq&=¼KÒ¹_íd ¹u2 €0 ž«!(† P( .†>‚^úALrõLyt‹dßÛNçY‚ùˆFí“Noœ³°kG ܃pð àçÀP¹£ŒvFQAx X—M–“{t^e@ªr÷“. C½„OG$—Wh»ú`ÎèÛ¢©°`{­¦tXúJc[b%Âog§/„/À(`°7Š‘™, 7³=–!,Ï›£§ Å4cc5@Tÿäë:`äì!Úðˆ±Ä7GØ ÷gòý[ ¼‘ù…¦ã˜T'j,ó#,ÊVºÀ~ªli?àÀ˜!.*X¥„å ÖHjù%2Ø& ˜<:@=@Tn™ `и8ô®ˆ‘‹Öb¯=Œ)åÍ HÌü35îŠD5ã.`–Þ~íI Ò>p8pHöúP#Qˆ5T¬AX/Ð'%`í@LÁn€Ñ UW§ƒKŒ%$¾."ºp?Î{zS¢[p“kƒ¢ðš‚ñ[„ÿ²!cQÕ)¯þðx ŠC[Ã*ˆUú½HÒ+·iÅO±} F¶CG'¸ÞÐ,ª FQö˜‚lr Uù¥€ˆ…ÐMÛǼ_<ÌÜwm@ c oNíêzÆ,B¸!Êwã‡eˤN-ÉÀ±*¥˜HRóR;`¼ô(ʃ [4:k,×R& ›Ò%Ìõ0磛Bü…êjÆÍ6SWëMNÞU2@lFÿsÀ*A2ZM" >ª‰Æ•N²Ô¥S žÁ@ *tàmÇûÎãÌû÷טB$£\©ã§²,BiWUÊâ$àÅLn ŒŒ*lþ¹øz\%4«¬ª¦åY ºÿ¨†‚‚*ø˜Ñ%ÜÿxŒyg¼†€Xl[û~™ÉÓ‚æàÏK‡Cä@$£D« ŽA"êFGJ§Í¥óSû1rþє޵ ;HnLQ)¨`PÝ.fþcÌŸô2X*<‡°¡7{W5A.´@%U*ê¡sÏX¨2øZÍ(4½—„î‡0êÚ÷Ð~öAtÿôxoÛ©ŸRLyRDeTácJê⇘sÊ&D¹ üêÿëëå™KNMTM(¤Ê¶þNšµÐôš*wäN"ÙIÂ’¸¾î®Xé Á`ðß³ ˜L߉ó–Ñh“)@Q € ˆ(áuº8sÿ̼wlR@"’NP£Á’¿Fx ¡T8‰jÁ¸©ú­îCx!ƒ1É‚SëV#,GX*žO„%‰°,^ …U¬é…JÐÜ–¨w],áož«Qâ’ ÈÃ+3–¥jYºŠ)PÂëÂÐ³ÛÆâ ˜ÚYáûð„Û~¾1–¦“¹Cn:rri{PÉ@UU4"·!%ª†‹C¡(_ôgì#«p÷Mò›çÇVb0&·j ÚÈSžmpþ ]”Þº† _YÈÂ3Oâ¤äUÄ ßÂËÀ af…µ*‹7,…Û—“7Àê©UkY7P¥Ök)‡„ ÿ†MÿÃdÞ-•Ó%SV¤Î5eyap>µ/,þ`fx·2ÖÍ#~sOô ók,obø Û¾``@7ïÕu ÎH5øªÎJ®GyµÐ”ÉÅU=xrT%"ÿ~LB Ï€šz'—tì‚;æýÌ:ü$fîi ®R˜Ž¿’ð§:²b¨‰§ vÆ™¸ lȼº/g ÂàùÌVy%£D[`Y­\K «Xê¬j)0)|N ~,PG½k¥r7ÆÁ9ÄàšÊI§ÏàœxsŽ6 ÂÕn¼¯)ô• oLDÌo²”·T."Øžn©C)q&Ø7«P<<ŽðT&ä7ô{^ë#جâûEjÍçPÚB¤§UÐc,%<­ã—2£ý6Î_ <£aö1|kLË€¬ä’.Kß<3CcˆxáÞœŠÛìGÛìs£€Ñ¦Ž%\Ï™çæþE”QϤqø¿˲Ér›,†âÔ×›¸zGŒ* IݰÛ`÷j# C"9ð9:J‘ܥЕðÎh á²ÎÑxó4¥/¤§Lˆ€ß#9k¼Þj¬ª£±(º©×n–Æ3Ø «²#esÏ#<‚ðŠç³ÔR'sòK“I·CIªhõ:,/ ßÅ´Ó6Ƣߜ.yä!ƒ3å=\ò榀Ì`†‹5mŸIíét<ð—lEJƒ•Q¥Š]PŒEe®÷¡']·à]Õ9ÜŽƒK‰å¯¾“ðž—‰n ‰– íøtC  HIî1.P‰-Õì|õƒBï°ˆ7­žðé]Âû·†€¨¯2òT…3)Àÿf!UÝ€æsœx2@©©¤_®Ó®O!So¼ÿYÇ0ŒÞªÐ{SpùÝEšæiꬄLDÑ™‘ŸL[˜5U†´›o‡€ /$þ pÕ7™üàPÚÝQœ¿øÎ÷™ñŸÒ½•÷jÔ µ¯q\t–Nš4d?ÍiE†ä)ÊÅeåÕŠäáš| !m^HùÈ€$;×lâš~8cWÝ…›K€‘ÀY¶HÔ€¥ ¥rÖ{îd¶r@ð‡ùºeÝ3™ÙJ¥|Š™à>à¾G¸ârEôö€øäÞ©a—”ÚU¦%$ƒlF™mŒôÓ_žÒ^šFôËeÜ{oÎSIïØïXzv¸•i+ €È†ÁîõÔÅîn6ÉTÙ2™œ{¶ð\Õ¡Žzï)ÀÃ%–c¢çÎHu÷hìÏç_nnyŒ9£rìZúÞí`ö·ØGÑÞa"â~pªp)È6%ïq0Jø¼Bïí!ñEù2I#U½tœ»eŒ(ˆÿ¨ ǯ*°Ï ,¡–+U½!ììš t=K’+¯ž‹O…p©Å^0•É?ÞÉ™²:‹\ÿ$m¾Lß~êŸ5j‚[µYR)$¹_SdÅ:c³*sÂôöõÑûE2ûÎ{n ëÅv"€gì –¥Xÿ¢PzôÛ!!ÉŒ±¸`•&ÀžÀ¾…D³z Û€2êÉŸ‚',Éç&3å÷¼c_^™9œo}’¾C¸“Åׇ ƒµ?éêí¤$(Wåœ)EXb,‰@•#X!pc„½áp&ß«PRÇs>Æ ˆ4ÆKHºêÈ× ‡Þ­0o‡ˆµÀ“9Û£êù œÙQ.¶‘00鬹QõQ•ðè£üTBøé³9ÿ.6ØÀÙA?—†»õ$ ¼uD]0AcöJ±wY”oTl±ÀÚµÂ`ŸhÇl"“2ö?eÐuf0C?ŠÚ¾º$\ n¯C!?O,ïü£%™¤Qz5³YÌ#ïú~+°CA½µ-¤•¨:,Je<$^®HÎøÂf£‘¯2)Ve ç?<Ó=R#;§I‚Á!¬E2Š®ç~E¸\–"TrÂ<$MmŸ˜ËüËuÃ/ð0X’Pc§ŸÎ´ß±M ´FíN¿' 'uÑLz¸žÍ±ŸjAÍA(ºêXá­„8[ã H®ÿç~mdx”ÇØ,…¢ÑšE ²ñ‹h'­uMåÃn¤YêIAN¨œº§ën¤Ëòq(,MP—° …9ÈÁ7MDkÔÕþƒô©k_¿GÄë^ΘUÕi¸7Šö9šW65s:TûÓO2yñ¶Æéœî*ä0úó4 V)’50.¥ÐÓš¤Ö÷BeMnàŸr6Hqå7Üõ C&$zI£®Ü–¨£—]·Óp„B2l0D+bdiŽ‚> 1Gæ¸P¤WÎû)vF5±;ê¥÷ë&ïy rã ÛX‡—ÒjÇTW§êyÃnKÞÍe ?cpÝœ ñöœQAf­+`¬à&Aa2‹µ‘œh¦öZª•K‚FßÌ66 œlpUH„Fa‰PØGž¥ ¦ò…wtL˜ÊcË‚nàÇ2@ °; æu­DÓøž&"X椎€mfœIÏD:4VH{ÔãŠQ=Å`PˆuRjHN¼c×¥>Ò@OêÕU…8‡ÊVz3Mª…”pHHîÑ˶-íJìáí÷û½ ¼ëîLM‹ò4ÎA’)' g¢ §+”I²)µÀè\8Ö òA©~h«¾,‡^Ê‹ãÜuÛ g1kçõ/­tέj°7ýˆ™ë>Æœý@4q˜ã✧ðvƒ°ß(±™›¤ c=ª?G¯nΩFDˆƒúû¶EÞ‰>ÞÄ “ MD´F°×œÈŒN…\äà ª"AiàÕ´e  °]ûPMlC­ÞÛ49RùVûÒ¶ÆÌòÙ”½Kfpаð|éÿÚéšäãÈöƒ¥PH¤ÕÕõ<2§=uf†a£š½Â[5ýŒ“6}Yç,Ó­yt §ùx{ÛŒb‚^à²ç’£ æÂjeÕXÔð„äΪxòØâbèþ"ª¡c1Kõ_ïÀêmŒ)ôì£P§ëŒ:t"{E‚÷*§Mú}Z¯Qè~b‰6€ÆÆe²Ágp1äÐêî຾\ƒ±Ð ÁÖÆBýµ6üq6s•¤áé¾G@ßæ¡/÷ñ'$µEkû€ö˜|¿B]•æI¤ÖyÕiT>lÈ•¼GwpgQªZº´‡xþs¼T a¢W üÎA¦ù”ް„ýr%¥CL¥Oc¬ÆC.*B‰=X"P”!*TU Ô‘lÕ€Lgö.Î…®lÕ/$+êH÷=6ë“w3¹¸hì_úçâ!á$!\¶7þû£QÍ]½æbõSBûAqK8ÞÖ Æ .ëôq.òñwKû«¹@DÃs`*3¤°x«.%~÷ ¾¼R×l…óî†øœnâòþ¸ýQÃf ^³¬bj¨  Ã#îÜZñ§ûxÇÅ'«Rã‚àõPýÔáS^©à&(ä&h&/ìÀ~õŸ°QIa®†dYµCÔ(·ÃÖÆ%Ì=Ó 'W³¹{/¤aý¼IÃü.Sþ<T˜›¿–d®8ÎÊ4ë<C·G,#ió!yóÖF='¸8ßrqü¼[O–*¬ œ3CL¸ºêÜЃÍý“’¢‹„è?doCÓÒÿRÕ¾&,d¡ÙZÀ˜GÏ‘îgTLÔ€ƒh²>½EÚIkoZÍ®¿#§H /ó¥õ%̯CbLÖ¬X7ÜC·Þ‹‰QÈ[÷cùŽ[—1çýç‡%¼qÑ ¹Qm|æÉË`ŸÐ(­ÑJSKƒJ׃êùy®|ºaÑçÌõÑ’”°š·am¥¸>&ÁCd‰÷z½ƒq%—~Üàü  ×`P„ÔÇ«Æ=þ(È"g¤ƒi« u•‚rùœ{ï@9Þ`Ť§\좼ÎÜL† å`TX:ðTñz¶Â¯aÞdç*³c•2RO„ÆÃ¥ Ÿ„èјè&Ô¯TÊg‡;8”‰¯¦ýsÆëÆÑ8ƒz<]{¹è¯9xÿª0„$Š8Ëñ°6‡’”y´¿Ïâ~ô耨?íÖௌ°Ç÷0ùŽâµšvrxç/{boT8'©,´[Œsv½Wý„ƒÞ{ ÁqÀOëÇQDÕKTÞœa=éÜGÐ=Ρ!ñêˆ Rè Fzy¢ïÓÈ sß³<Ã.ìq!¨/9(dÂÞR ߯ÄDßìaÚõû#bþ1óKÕr…ú%]Ô¥ …- —u¿[KüáëlaTæÛ»Ç„ÿÜÅÔë·êØ…ö|üñ˜ X! ’5!íËÎNó€ø6—¾Ep{æC–(«Öª.e•–è]iX{ÎÌB«³˜s”‹<5$ Ï3§m<êûšÎ“Ó%µÕß* «‹ aáçßĔﯷž¹ûÔÂû.¦üìõÂÒ¶§û³‚¹ÀÅß­L@< ªJcpé£rƒ N›É¹kªßý³FD¸³,Ò~qÈöL»2¥¬q¾#T^És¸¡„y£êZKBŽçcÎ|;¯×‰]®QaþUëèù[:×0kßqŒú™ƒ{¹»[H¥ßyXÍ2ñp ~Qã|æ¿]áÝèãiз_Îô—uKL”/ÞÉuõº4j×ì(аB¦ ¾ÚÔ—r›¡s„ƒwÍæž´%ñ}fïô].=Oãý¦„{¢÷;«-¤R³0$¸n•Ó«`L¡§ãæžk›:é:2!|(F-lªöEͧêéjçb=ã1&ÆGþ"sO(œKîŽÙµáiùf ó'¥½H7ÿø13ºÄœO9x7”(]âáî‘WkMf‹€D1ÑÅF~f¼ð zŽìÆü¨„3×ÃÛ! ŒBýhAÖ°~¤0ï“ ¿?8Ég ¦ÕŠ€OwJpé#x6€wËõU·Ìß1Bnòh;XHˆ°QÛ³šîoìΧ*›ˆë¹h{¡í‹:Q¡ßåâÒKˆÍêß«5쪿¾>|.$œ>…ó®ø:s÷uá,0ǼíÊYùwôX‚>úbÎ^9l@²ÐœÀ‹W*JŸMû÷4®qµj± B>½†È©ã8÷¯ÕsÄ|{šÁÌŽˆÑ„€äúuÄÓvfê ¯!8kD‰Ò„{Š…ÞËÅ×eB¢¬U@­IÂÁ# cì¯*ÓÎå‚gg3{O÷ÌN5x;¥¿#ªJòë¹B×a³áŠ=,ÁšÒ~´JsjQ´ãÑGø§2Ñiã™ú·ì:£‚_üÃ+„™žâÐGtoñ´êU¯Æ¸•ù»Zì^ Þ–À± ònƒë Š(¥ÖAj†kcä1ruÀÚ{Fí rRŒœâàmŸ „YñuÚѨD™òY¼OÌì¯MÜÈ ]"ækÐ fäPýª[e_”XKåÑ„äô˜rOj“Ì=ÚEßhpºÊÄýÕG´¼‚½ø%^¹rcv[»‡Y; tvÁÛÑbwJP»{D°¯Eöo§Ý ˆ Iˆ~Ö4¸!"F–XìŸ,öq‹ã'ÈuˆGÉ ˆˆÒjݬÌ:¥¤hi‚ýðW ]*6ZPZæOJ·BUz¨Ý:¥EPÚñYGe èéÛsöS÷Íüó]Ü‹cBl–ãH…äF‹¹#Sν?ļ÷Å0Ø.7AºÛhsš 1q6‰ƒÛ8ÕcÃ1²ÆÂŠvm§£’eeÓ¿‹ØˆøÜéLùvñÞôÆ¢8ûrÁΩßp°Ö¬{¾ÕjÞÎùÞJæÏ{‘Û{œ3ËýØÁÃI“ÉHÝJuSú¨Áܼœ¹ç-åÒíZ½÷Œ¼]Áâ¡st;žS!`}„ìÍ:d3ÒÇàbJeú³=VêõpôÒúÊŸ¬»¢Ñ\mô®aé½VÓ~b*O¤ÊšZLöW!¾«BtÑXä¾óCé#aÖ«­Ê. Aü¡LpùSl¸ñ¨û£ü‰ž·;˜¯x8C™¨ŸÇE¨%iòŸ2Á£!êCçsÎó¯: UUïiüãíâÙŠ&uü^é>PQ_ÛŽ¹ÍÃNrÐÇD ’O>½QŒÜ$¨ïŒãœE­ÜÿoééèBý«ƒ3IaHÛ Z"l¿û£@ªÞî¤ð¼ú¾Á#"^|J“ޝбµžžÚq¾«ñ?Ô*(иÕÑÀU•îÕ¹žàYƒ,.Á[|ôžQAÿO2ÊòÒÍ‹×Åp»Å^»ùSÖç¤é¸¹c]Ô‡ùè‰Óå¤ q2ÍJˆû; ÜP¤Š" .!ñºøóg3õ'C±÷Wel`öNm¸WhüÖn«5JÉ«ÇI¬„ZKWƒ!Õ´$òÁñQªÚö£¸JMÖæ©Ø&ȃû«u‡‡úëžœ³|([k{ž{—A¿Ï¢&&°£ÀÈe,˜i¡Ã¢œV¨Gã‘T’/~Ž)×-›_ű†9£»P³4îgkz6 kü\õwos¨íÌPoKæâÓYÍëZ*‘ î‰°OĨ¿E¨¥¨5+XR‰8®|GÅyî‘tìÃ}`‚Þ[P,ì‘ #p¥š’vþ±•øKgÖѨ69 éäÎ(YF\fºÆuòm‡+ð“PkXPÝ1iÀÏkÆ[št`pXK™d¥…W¤O LP‘…X@'ˆ‰Ó ÷œi·0ZP#@²KЬ³Ê¦¢ !™þi¦Îm]{ÝD#fîÇz¶¦4®U ŒaÆXª_-› E«sYÇ’µ˜•‚ H²}NÒg5!€¨Ge ‚L;•ÉW Ϝ؄#dÞ¡ÌV”¯5_m)L|#PòOê:ÔQbó{²wo+çÌú½`‰§¼QÏMîÒ.ÛÉ^ 0§+ÜÒpUãᄉóÀ¨°#’:«¿™6%/¯‹! þsHtΉLݨ¶N¯IŒA%Ìý˜¯*œCÒu¶L-Bó~ºEùRtC43ä$eúx„Äb‘ë*TÎ?>íÊ HMhkŒ¢í,Á|Záï’‚’¼* Û·æÏÓˆÕäYW3¶”×â:늼#—¬gü峉Ëf¤61 Þ&ØÓ@ª(uÖ6:–øÃ¨1[’†JÍÙE^êà$$¾A£zŽ.d ¾®©QÌ‚£>«Q¸Y»»¤©Œ‘a€Q/‰Ï6°{Ë tžªM#ĉPs}’^ÍÍŠ7{œÚ²ÀIö3˜ÓrœÂì’ZÍÙ™ CõÜ­ÿù iæˆÇz‘׸V\V-±@9&}1ò,p‡À­¢G7Õ¾é¯[@Š~²^FŒjGr€ û(ônÀvÝ‚´ ø6õC¹ÕÝ #,!b- ªl¡×"½ ×'Ø5 rxjs-7.5.7/docs_app/src/assets/images/logos/logo.png000066400000000000000000000100341431412030200224230ustar00rootroot00000000000000‰PNG  IHDR–(ÁçgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“ pHYs  šœtIMEã ) AÜ, IDATxÚíœ{xUÕ™Æ-êhKëØvžéÔÞlíÌøt*Ö±·)Þf´¶^*mU¬Š¢(«rQ®I€ d¯}NNî l©€ "…€€ AîFåN¹äœ½×;°aŽ{¨—*&ž÷yÎÉúöÚ_Özó­o½ë[>!¬gÔi»}¶(üÂÆž3Ÿ>]€4RHáïE”ß~i?nÖArv‰˜êÈ9ð6c¦½KæÕâÛ)r¥ðw¡ó!œÙ–R‰B G Ä´Ÿí$¿éE&ŒÌ}·Oaôïsxðò¾Ü|A*’¥ðð)~F”ª£×1š…Q FÅUàjQ-¤¨yÑÆÅäÕ¼Dlë"r–Í"#ã*.þFjSxúð‹s›ý”(ÓBŒÆa4£ñMÂèIŒžÂh&Fópµ£%¸ZŽ«*ò´‰¢ÄzbõËÿäPzœŸÑÏ(J¸éôwÝoYÏí&ss‚˜š(R:¹º£Ç0*Çh2FŒžÀèiŒæ`´£%-ÇhFU½Ž£MD´BU“ßö#2ç1ìó©‘þŒa ψ'$ d)ÖR"ê‹£þÅ0Ú€+?øTãjyšÑœ4£¹iF‹ÒŒ^Âh5Fk0Z‡Ñ&"zW[1ÚFTû(Ñr×,%ó{©ÑþŒ`÷]-&{¨£RõÂÑ#ŨWJþ¤¹j>ÝÕ¶3]½úy£¥§½j=®¶Õ›dk;ã´›¨va´Wû)Ôvòö¬dìKùöY©‘?ÅQI¿{|ÊZ…ÑDýGC0JÇh8F!bµvrµ¿‹«mŸ7ZóE£¥Œ^ "Õf"z‹‰Úýµ"íÿr¾ö“«Z\íÇÕ^Œö’§Š´›ÍÐ3S£ c=Cþ [+pt Žâh(FÀèÌ{ˆåŸæêÀ™®¶tuõR—£Ëàš`¹ÜÊD½Ãy5Mòkšt‘j ¢^-®öàj;®2I³xtäµü¨SjNQˆì‘MäÇ£b=D¬ ec´W/c´Œ£9Õ‹Œ¦-Æhe ElÂÕ[ídœšÆ®Rëàejáq%0jÁU=®öáj®Þ!ª}LR)÷ÿâÓøÛÚÚ¾£÷µ¶ÑZ»ÞZ›ÇÿýSòéÂsOdÇh­-´Ön²Ö6YkÛ¬µ»¬µ3=Ï»1##£ãé†å¶oŠ‚ ÉêzýGãhp@¬ñM "×(Œr0úFÏb´0 ÚÊ bmÂÕÛD´;-¢ÒÕ@†iy®â¸j –ĸڂ£}LÒKdìø.w|èÔ^Ä MpÂ÷ýÁíM¬éÓ§w²Ök­ý_lllüRÚ f^"b›VÓOÈÕ8ºGýq4#7 U6Fc¢ Ãh¹ÊÅÕ,bZE¾ÖQ¨äi®Þ<ž¨»jÀUK@ª#AÄz7 V5®6Q51ý”«»^Ê !?gÄ;±ŽÁó¼íI,k­ùÿ +*++;·;©&rÓ÷EÁþV u/ŽzàèÝ£¼@¯*Â(Š‘,‰Y8ÊÀ(“"=JDµ:ƒ‘ÎL†—¾Šs š|í¥X;ˆhFµ¸ª V«¸Ú«m¸Ú‚«µ8ÚL¾–cn¾Œœ¯dbá§E,km•çyןk}ß¿ÇZ»:dóz{«¥¥å_¬µ~¨}Šïû==Ïëa­Í²Ö6&·û¾O»«–ìå¢\•8ºG7ãèNMÇh6FÂ^ŒQþñèå(F‰†3vÁ­ôùÁ5ŒèòÜzúhnýÜ2»þ…GîYIÖš]¨R ¦}DTƒQ ®v‰û›¸ZÑk8ÚÁré}ÁU^~5ãövç‘ï|JÄšÿÿƤ¶ölkí¾d»ÚÚÚ³ƒè‘&f(ºÌµ/ú8Äò}ÿ¶PÛäðóžçݲ™×îÄ:HöË¢HGWàèW8š†Q%FÓ0úKpl3)8,ÄÕ&i ÇPßüîßžcðØjÌÖwÉo®£¸µ–¢D vs Il§ÄÛE…7ÁOü ÷šëÈÕ5d]Ú^Ä ²8Ù®¥¥åkõõõ_°ÖÖ„–Ê‚äúâä<ÈZÛÚÖÖvÁÇ$ÖÝ¡¶üðó7n<ÝZë%Ù¼ÑîÄÚIÆàC¨Ž~ˆ£Q8z#8¢y6¦äªÀUùñ‰d=ôQßÓŸk/œÁÃ=—‘>zcŸ¨&6g-æé<–SÁÀëJX’ö+²ï¼£_ãþ¬½ˆU]]ý9kíî$›xUUÕiI“}K¨µiÖÚy¡ß§Ü¥0‘H\j³ÖZ§µµõÉ}$‰n‰Dâ²D"qY[[Û…íN¬5¡ä}ñ ’tk­}ÍZ›Ç/ê€Ú•9c!ãVüœ<ÇÑ;tP‰Ñ"Œæc4£çˆjEÌ¥ç,_®ç±3zµè6 â7}ñ?ÑíœöÞZk÷[ÃýXk[Þg'yå'µ+<|øð¹ÖÚ•àç’D"qI‡!V Ù]òÉžQ-ÅhF¯`´" Ø_r-¥Ä+'câÉôe:«yꉻñ*î?ï F–vb-š>}ú #´ïû#ÿÆ3ú¤ÒÊÊÊξï÷·ÖîúÝíþA¬—é{Ùóê†@ ߌ«µAÉËË=¦Y‚ÑJŠšûpS·“éË ôÏú#“u?eÃÎã[?èI¹:‚Žåû~ÿõäb[C“[ßÜÜü•“¡¼#˜çy¿´Ö[kwœh‰ô<¯{»«•œæ¹è®àøm\mÂÕŠþ F«‰hnð¹“é˃Dô¥{¯¤W÷^­¹•ØI'V8y–±!›·OÔW}}}Wkí»!ÛÖ¶¶¶ï…•óæææ¯û“.> ±<Ï»Ú÷ýÛ}ß¿Ýó¼›Ã>$‰‡—Ikíó ÇŠYHTƒpT¨áoÂå\½ŽÑÄ´„œ·O¦=ðpSt'éOö$sLo â·0±¡å† Év‡>÷6E+ß Mþ¥¡v7tøƒPû¬¤wlJúý‘©êÁÛ’ìj:€Ü0üoQª,Ûµì"×V\m –Æ×pמ,.£û㘴ÿQòêï&ý…p› X=ÈX׎Ě™lÇÿõ‘¾ÏòyWq. ½sq(Wëj/Lòã…Цà7a_¿"ÖÞv'VwñãËç3Yqt÷¸:¾-PÇ·S¨ÕLØv’\èœCIå 5˜ÜÄ@¢^?rõ ¥ú öoGbÍëø–¾ªªê4kíºpf­'õ[{øðáL²o½·Èó¼›}ß|‚#™ß&‘®Wè¹km¡ïû·yžwïûý¬µC6³;D?‘‡¿<³´‰˜ãê`¹vG/Ûˆj ‘ÆK8ÿìOò½§A§lrsŠ”q´˜ÐD®“¯>ä$îcÂ?´#±ÊB‘⪤Éêã¥à™Øß:~ çmï³³[—¼Ü• ý(‰DâGFv˜Núïë(9ÒJD¸:t¼ÚÓÕvŒRz$^W|Rï{”þß*£(sO(—h" wûprßЉ T½Iïw!Ý:·±|ß²+hmm=ßZۜܖH$~ ÐÜÜükmSˆÝ“¢Ö´ Ŧ–––¯‡}Ùµk×ÖÚ²Q6SëyÞuM+=Ý#¥ˆ© £æ ¡6ˆ^µú[˜XЛË>VAÙ z%U&ò‰ÎAz¿¾ =s`“4wÚ¹œRv –XAUÁþ$;/ˆ4•1c" O}àgƒùéW÷ðø°:ܵ"&Q$‘'‹«FGBjýž¤2œÍ­Çè ¢ÚH¡^!ªe¸O3°{jdS`|½šQwn'{y nð¤%ò‰)A¾ˆ¨˜‘¯Z t€bí¦@›pµ˜ÑÏ¿Äøîå<Ô55š)¼WóÝ´•rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/000077500000000000000000000000001431412030200226635ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/audit.svg000066400000000000000000000123251431412030200245150ustar00rootroot00000000000000zyxcxbyxaiiiaudit()zxyrxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/auditTime.png000066400000000000000000001505571431412030200253330ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwT×ÿÿq£1ј(VTDT@‘"ͨ(Xbï{ÔÄ ö{‰Ø;öÞ»2ÝÞ±b¯Ø‚Aà÷Çæ{~~βu]žι'‡ÎÜyß»s÷µ3“%`²Ð`€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€¿IÉ¿$ÿ’üË‘mG¶Ùv(üPø¡ðóEÎ9_„žÁ×r¹íå¶—ÛJ:”t(éÈ_Gþ:ò×»¬ï²¾ËJÏà+è’Ò%¥Ë‘¨#QG¢­9´æÐš3Ît8ÓŽd”7?½ùéÍOG8q<ÜüpóÃÍož½yöæYzÞ6yÛäm“#mŽ´9Òæ°Ýa»ÃvW¯&^M¤gðµèÖƒºµ¡n¨[3Ò3êh»£í޶;TòPÉC%Þ€LdIÊ’”%QË¢–E-[^yýåõ[þÒò—–¿dÔ™OK5.Õ¸ô÷ˆ¿Gü=âl¿³ýÎö‹ß¿#~à˜’˜’x=òzäõÈU£VZ5ªÍ‘6GÚɨ²êõª×«^Ÿ75njܩӧNŸ:ýæÂ› o.Ðñ0D·^Ó­Ýtë8ÝšîÓ«Q·ÆÔ­7ukOÝ:ÔT{òѾGûíÛ3aÏ„=úTêS©O%«««˜OïÉ2NeœÊ8 Ê5(× \aEŠ„yfùÌò™%Õ À—DèòÕD>Š|ùhD¶ÙFd3ûJ¼£½£½£·ˆ[Ä-âËk/¯½¼ÆqÉœ^·{Ýîu»î;Ýwº×¬Q³FÍ_«&ï¼wðÞK»/í¾´›ã’™E%E%E%uë6ÖíkU£g_Ͼž}7”ÙPfC™çŸw~Þ™ã¦ä̳3ÏÎ<ë}ª÷©Þ§¾ÖkM£õÖ7ZP=¨T~Jø)á'Ž cp¾ÓùNç;õoØ¿aÿ†_k†¬;®î¸ºãöNÝ;uïÔ¸cqÇâŽq\2'ÝZL·.ӭѾVMêÖ§ºµê·Ø“÷Þxo`HéÒ!¥ ž)x¦à™/߇Ö=­{Z÷\º(tQ裡†>J…0 ú3Þ¡l‡²ÊFÏàë"þBÞî{»ïí¾­E·ÝZÔâžÅ=‹{fF)èFР×V\[qmGÍ´Ýò½å{Ë·ï³¾Ïú>3ÎjÌ¿0ÿÂü ×+ë•õJ|îøÜñ¹9j¦*Ñ9Ñ9ÑyWí]µwÕ¶Éa“Ã&‡qÖd—•]VvYÎQ€oK¬u¬u¬õÒ©K§.jfÄFN9qäÄ<~ð˜£àËxãòÆåË*ïUÞ«¼y†|nð¹Áçîn½»õîVŽšiÓ­¹të/ã¬FݺU·†Õ­g­“{%÷JRO©§¼žx=ñzbœ=YïI½'õžœr:åtÊ)eaÊ”…Ô?€o0Œðg”x0ñ`âÁ5 ×4\óIŸ™­õÍøbÁÃV|RöêòþŸîÙÓÀÊ}¯bß$[Åšy“ƒdžÝhäi±¹IÝP×ù3åjmË·ïçü‹õ›æK ¬þ¸·i@Ó€¦×6\ÛpmGÓ4Ü:xëà­ƒí¾k÷]»ï>®* g±|’o·ç•æc-›Ö· Þbӫͼ²e£;W^6¼\ÿnW½sÕuÙÊMÕ:\XTÏ~M‹"“—éáÜ»AÉå"«Í(ÒôSÆÂ2u™ºLM(P:¡4Gó[—d–d–d¶éú¦ë›®ÒM57Y×¶Ø?tXże›/{ë·ÖyöëúÑîs夯/+þ¤Õlrªâ4!¨ÑRÏ*[šÿšÅõü¬NÕâʇõøÃù­MŽ21…c þù‘W$Œ©;¦î˜ÈÖ‘­#[s4À8½ñyãóÆ'¤zHõêŸtîß°â;ÆÕé™Å¾éêÇ-uÙ·¯ç¬E•í‹~®XA Yt°b·ƒžs<Â6øNÜSááÔ“}×9T ø½~§’‡‹´1ožÏîãþÝ^‹{-îµ8Ú*Ú*ÚŠ£ cÅ7‰oßdAñÅÿ”²|uŠDúOûñTå‹§x”™Ý±ð¢ÃöB×Ý+ÃjuûuU„ÃNqËr”kߦè̆eÅzm†4°±óXÛ´W±g…ª½™¯ÄÇý»]{víÙµç½i÷¦Ý›ÆÑ4 ºµ•nõ‘7p^W|j)±d>¿-ÍÝíZt88ð¬ãø>§Üwé=ÄkÞÎ Ó‡_\«‚åÐî G8ÿ8à|Èwå´îF­·{uµ,’âÔ±â'][¬[ÛêÖ¹_­ç¦ÌM™+å”rJ9‹Þ+z¯èG^|b}¡ÂŒBkªÆuÙZ"G“‘ãr”voÿd^œý÷]s®Xã»Û‰Õ»Vv¿\)w§]âÜæv»¥Œ´Ýí½£Ã>+ÿãŽüÈÛ9.t\è¸ðxôñèãÑŒß`'àÏâHå#•TþÐîõœ§Z 7ºáÙ9îâo5OI ô÷Ϩ6ª~[ÉûÝÂc5ö9õp+*šœþmûÓâO‹?-^v~Ùù%7AýƼ¶|mùÚrxØð°áaé?âEÇ—jšZ#÷Q9lûý½7À9Û˜1ÕŽ¼zÁÕ½i×1+;xxY¶{]\úÐñ"—”KÊ%9¾ß¢SÙOe?•½hbÑÄ¢‰é?â ;..µàà÷ ÷{l‹}ЭVC;C^ŸÔn¶Ïð¥/üüœ[¹v°ô(üÓ¼AïÚ˵—kL«˜V1­8¾ð•mIÙ’²eç÷;¿ßùý‡ž] ìÒѪŒã‘‡Ë¬*uL®bß½””“'ýý3ª½è¸~ŒWÇi'úýá0¸p…B½ó>Hÿ¶M·Ÿn?Ýþ톷ÞòÑL+>%>%~ÿýöøÐÒgl'[«©Ý¢W?vØ<êÞ¥ïÝ7eì ñ÷#»»:­h`3¬·bî[,4ßÀôoÛxóñæãÍã¦ÄM‰›ÂAþ¶èÖPºõTúx¡k¶ÃÊm+÷÷oÒÈ«ž‹§îßvÉÇgùò“'3ªõ²Xx_+æ7èØœóVW«_jTõÞKI,šX4Q·æý’=5#jFÔŒ*c«Œ­26ý[ë4Ò?¦èäößÍí`·gðÄ#½*ÜÍØqýç8ÅÞåvëCï/»Ü¾°÷èÂBú·­axÃð†á÷ºÞëz¯+#€ñ#†q"Î0¯Î¿:ÿê|àòÀåËÓs*S'ض¯eÎC~MËU<š±1FúÛWÑ]£kL ‰¨¦•_œþ“0¡…ÐBhÁ7~Ú5íšv-ýGö׃í¬_‡Ÿr]“±'ýéo»'­ŸZ¾ƒSyÿNEÿHÏ6wìØ!ðùšçkž¯áˆ³7¡oBß„öÛlÿt-G«/5Ø¢Š”Üx¶ç¹¯5CÆÿæ]³õüþ¾Wo§í Þ¼'˜#_Þ#÷GîÜëÄ׉¯Ÿž»cÏ1¥*žó\Ó£JpƽéoœÚW ÚœÑ%{L°û€³ñsÎçœÏ9sĤß3Ëg–Ï,›E5‹j•žy¦Â…z’ÅšÀ»›®;~÷µÖ†ƒ÷‘*¼¬}»Uë,éŸ!O:QèD!ޏñÓ­›Òdíu>|Ôkáâ‡KflÜ›þÖåið©{‹ÌrüÙ#]¯×­ukáÏчï"ÞE¼‹˜a;Ãv†mz¶Çb¯M÷ü/Ûÿ1¯„ÝÕ¯5®Gß¹,{|×jßôûekçoW0¼²ÂÊ +Ÿxzàéêáëz¾÷ùÞç{«î©º§êžÿxŽÝ/#5Û®£›\:änl {Cm¿Ö—;_°‹ò.Tx}Ú{·¢åŠ–+ZRÆ`×»~ØõÃ,齊å2o~ñAëö^“¾™òR`kïUñµÆºìN{ïlKÙ–²-]+ºVt-ê2ØÎ”);g8Îpœá˜ölÜúF³%„Möîª6ÄØB_Cm¼v¤TÍUãÛõZf"í½k5³ÕÌV3ãÆ5ŒkHQøWrJrJòüóóÏÏ?ÿOÜ õ *Zm@kÉÊeÄ·²6Õøâ÷îCëµR˦LÚ{W¯M½6õÚÄúÄúÄúP_—nM¤[¥}Ôöuâã±|âÉ ÆújÝ_M¶!¡êÖsì¼ÒÞ;ÝùSzòd¡“…NJOäü[Àš}—¾•q­k;®],Ú?KÏÞE–Ž,ÉÕÀŒ0ŒðGšþ`úƒéÿñÔ®ugk¿¬0뛉4 ´Ñ›:î¯þݯÃK»XO{oÆÞŒ½Km|y÷[Üoq¿Å|êó™ç[ó­Éï\®|[ ý¶Ýˆ9ÁvÿñëqùÆå—/å`ÊÁ”ƒTÈ—· Ê‚* ª¤}ŒB“üs8ŸMÑ›úWüvgȧ;[W¿Ö¢¹}«iïïÕüWó_ÍOmÀ§Kj‘Ô"©E¯˜^1½bÒž{Eßùm={}+¡¯¡6ªÎÖ|Þ‰e&•ê]0Àà1{Û÷¶ïýϲ–ý³Œ 2³ä‹É“/–˃åÿx˜ÎÃE¿ÛoþÖ׆ýë~.Ö%Ë¿(xØàmoWY¬²Xõ¸òãÊ+S!_žn”v5Zέ¼£V®ÊCç ó­„¾©´–?¹¸ÜëîI£ÿL{uëåíÉݾ»}wûþÇÃæ~êÿ—uîQm/pñíŽëá7Î nªYwI,ñQ÷áÁ‡æž[Œ0Œð‡x“ò&åÍè'£ŸŒ~bèä£dB¿å¾ýKû»Ukëѯ~»h|§YiŸ~E]Žºu™bù2n?½ýôöÓ´HƒJÃBlŽé±ÍÃñ[_Þ¿ßÌ®þTáçâ}ìÊ0ø«V­Z¥§§ðLÖ/dšó4çiΆŽHþay[˜]Žº×6Χ¸éÍ«üjUw™šöx¼ä|ÉùOm€ôîÒ»Kï.µ{ÑîE;ƒ»©U­ŠO±‰ÿ¸×}«}ëÑïûmRïãÇü¶ˆþí„…¡}/ P ¨Oƒž= ¢Z€Ì&¹OrŸä>'Ož44KØŒq• Ý\ôðæ ¢)­ Çd½ΦË­k¦}6þ°ÿÃþûS-_†níó×ûÎ L÷Ã7úºAô¯Söob¶?Ÿu>ÁоëÖÎééÉ—7^Þx9ížì¡m¸_~¹Ië1K.k\®gÚû.Üîwq¾.`'à0)|Rø¤pC'm÷9x•,wä·Ö5ƒL/Øx¿=Ú°YýJƒÒ>ýºr'äN5óùD;E;E;ýÇ3§£WôrÈfz €÷Û‘ò…Ý­ô¤u‰âßê‡á[†o¾…šùÜæ´ŸÓ~N{CG¡¡}™¿‹7‰}ЭVC¦=CžiÜâQ•_Ò›×®\  f ý’£’£’£º,벬Ë2C³ëˆÅ¿Í°û))üD!¿c¦ýê·[ÇM=ïfn¨ /.¼¸ðâË_,±œÊ2…ý)ûSö÷yÕçUŸWŸï;¨óY«ë£ö\Üå¾Ä´Wˆ­…ÛÿÇÕÏÏÜž¹=s£p>Ýz'í£à¶eìðUOM/ú}¿õ²Xx_+VÌÝ£uõ>†úA·Ž6Ô“»úìê³Ëàï½Uêyþƒnö¯°Á´Çuÿ:BMë´+êˆË—#.Œ>_ 0Œpº¬Ê¾*ûªì†N2Ÿò4+s yUh¿xÓ6Þo¯6iÛÉ[KûôëùÏ|þ#õ“±bbbŠô,Ò³ˆÁOAö½ÓÑÉôÿÓÖ‹ìaSk^ŸäR!†úd~Âü„ù ÔÏ簥ϖ>[ .J{Í«ð—M|’WÎ~k2Ï y˱ýßUÿãvUO|žø<áid.£³Î6:›Á[)®ºËÉÖ´C_ýöð‘¥Þ•Šê“ʶ•m+Û&„&„&„R?€i›Ö`Zƒi >W þÁ¦Þ˜‘áî™g…ä½9ØÑÊàmó Û¶/·/n_Ü>ê'céÖ8i¯ƒ*ŸÞtÇÓŽ~ßo½÷,‹=¾¢äÍÚ®­ ÞZ·¦~¿'Ç9nðQvžUÞî7üÐÙnË3ϸ®w|¬ë‹ÖÛòŸ5Ô3W¬¯X_±f$øò€aœ€ÿÃ1÷cîÇÜ X/óËÚ¤<ìâ_#óï·7=Û»ùÜ0Ô?¾Å|‹ùK J Jâ6t ùuòëä×ç5ž×xž¡>ÿãÊÞšNÉ™(úÕkkÏëV*ÚPÿH ¤Rj)£œrnȹ!†zûwK×B¶RêÚú[fÎò^J‡¶Õ õK¼K¼K|¢c¢c¢#µ†lœ¸qâÆ‰†æÒÅÇFØ;Ee¶è÷ýöĘå/*¼Áæï³Ÿýûlª0U»åÝònƒW»6È>¬¢ÍÞ̼6ì5}û8Çû†ú§cPÇ ŽA)gSΦœ¥–>n]£[ãêóJ?Ϭ¶gcæ‰~ÿ§µXîzÒ»”}­×êÝúúþúûëï¯7ýöòj^xÜÈžçû¹;fÎq=¬Þé,n6…¬ëç7x{íç-Ÿ·|Þ’Q àK"†q"6èYžgyžå1t2Ñm­SŒu÷ë@sÿ™3Øx¿hߦ–waC}5áÁ„PQŸnö®Ù»fï2ÔÏ=7mMt\™—÷ÿ¶}"öy8W è¼Êê’Á'? ~8øá`*êS¼xöâÙ‹g†z¸eûU%œ“.öXèwœòF¶vŠÏ|ƒ$êÜ!¸ú®–¼ZòjICóçÔI}88gæè÷ýVº¾`‰ç1C}µÉv“í&[* 0%·ínÛݶ34êý¦õþ£ä=Ö†º¶ûóõ–ok¨¯B‡=NE}:ݺÆP?{m»[&~ß¿øBh£E,OW ¨õÈàs‘³;dwHå„ 6× ä}öŒÛfÆup±ãN®?þ2 Á€Rú¤ôIéÃØðeÃ8§ærÊå”Ë W5\ÕpU*×l­.6Ó|MŠîA~fï·R‰ÆÕ=—:ý:õäÔ“SO(®s©á¥†—êÛYDÙwdð~;ºà¥6îaeŽWbžÊ§}Þú¼õy›ŸŸOu}œÓ:Lë0M¿oK\*Ô0ÿÕ¸•¿Õ«Ù…YñýöØOÍB*-74е#Úíu: ],ºXtIåš­’ ö”*“rðä\O¢ß÷ÛÐ>£tÞjèµæî¥»—î^¢º€o]Rë¤ÖI­ËO/?½ütý‘îTÞ¿cÑ?F?¸|Ì#+«Â÷Û6V3[–5xµôµ—×^^{Iu}ÝZÆPߺ¹%4+Ñïÿ<xÅ⇫ç¯[ÔÛÒÉ,Ý·?R²ÂEÆòûm¿­aŸ걕—V^ZÉ™€/„8£ìÙ²gËž-º>¿nüºñëbjÇÔŽ©MÏ|àTìüyçÏ;6tÔqyµ—„†Ú©Q>“| õÞÛuo×½]G¥ß» wA{÷(î‘Ê'»{;•Œä¤ßP;$üØF×F†ªqíÖµ[×n¥Æ>”*„ ¡†zõN@@Ǫ³™ µ Š×(êô£¡Þ{cùÆò%5ÓO_<}q*å,³AfŽozjP³qo*íÛ“GüýºüÓx«u*ÏKöõòõòõJ™“2'e5|»MZ4iÑ$Cç“Ãršá–›• ¡Öça§‹V›õûÍy‰óç%É]“»&w¥ÆÒO·~1ø¬å¾]<†Ö#î5ÔVœÜsÏý=÷©4à[ôhÕ£UVÝAc6¿tdõ÷íˆéç^¸|*ðÆl\@¥¥Ÿný¢ß“E:•ïíã“=ôÙ‰»½i·ŽwúzN3x‹ò:úŸ´¶`䦧õ¾Øá•Ucý>lq¬Å±Ç­>7àO÷þµ¿i# N?àÿ1±ÜÄrËé—T›ˆrJ¼&ºH{­y»’>ž††èÓœOs>ÍI½¥íE÷Ý_t7Ô‡½¥ œêrŠŸþ¶ŠGÛÎÅûé÷ä™Cf™I½¥Çœ˜91sbôû°nGÛ£–Þ)·ü«2û¥§½p¨j¸¡Ñ}ÿÂý ÷/Po2§Ö­#Z§òVò„)½§–ËC¸›þVí¾haEƒo(¿ }ú6”z¾-AVAVAV©\ßߤû‰á¬øÒ߆nê^þ‰¡òuÌë˜×1Ô[ÚtkC}XQü»ÎîÞ„»éj+.Ÿqr§E×¾ÞÛRy–í¢áÞ6³éi‡i§Ï¹Õ3T“gìÎØ±cäø|€?.ÐÕ…»éDapÚ€ÿõL~&?3ø<˜èzçV{Bhñ¡í轕»Ø‰úý9tÐÐACQui›ì<Ùy²³~ïU­Þ¹ÕINî?øvÐñÇb\Ûã·?Üþp;UgÈËW/_½|e¨÷no (Qµ73Þ‡¶3B«Ît¸£ßŸ=o÷¼Ýó6U ³‰LŒLŒL4ôZWíЫšõˆu?´mjUs¢U*Ê\cuŽÕ9¨:à[qëð­Ã· ÞÓhX«ÓÝʲâûÐÖ3²ùh˦úý9?×ü\ósQuiÓ­Yô{¯ì’öúß$ÖýàÛAÎðÙUÐà¯s*ÁÍš1›ž6`øü8{7ý>ô|ìùØóqÊÓ”§)O¿>àŒEœQ€ÿ5Ùw²ïäTž\;ÉßÛµ\‚Šk_üÓÕ¡FaCòŸ³ÿœýç,µ§ïUÜ«¸Wq†úmHí£]9õÿȶѸQ!¶SSùPB£¡†6¢ö ™ß`~ƒù ôû-x¤çŽ²Å˜ë>®}Ó¡Û…šE ~ð(,:,:ŒÚy´QÚ(m”T1à2­›Qîǵ7gíèícð#\‰ãÇ'ާöã×shÏ¡=‡¦rkÓ}Sº—YÂ*ïãÚíÕ•ì ÍñnñnñnÔž>Ý:ÅP¿yu]tâP Ýkm¦6ZÙ¥¥~¯6þeôhÛŒÙô´£o\ÞïžR¤K‰–ùô{2Ü!Ü!ÜQ às þ|ƒ?pJ|ƒøñ ÊóÕ]¶ûž!¨ø¤«Ü6WëÊSvæ–š[jn)*PßÊÅ+¯\¬ßc~q¿Û•ÊÁ ý§´ÃŸÍå6ÑÐxÍ›3–›“ÿÄU‰« >iìñ›N³«ÿÅ,÷)í’®5·;%§r³Sq‚8A¤dŠ·’7FoŒÞhèµæß±[~¿å~JÛɹá¤R]õûö`øÁðƒáT `Ìþ9ÿÏùΚ!G6<ïënË*ïSZŸYª[ÍLåãGå¶•ÛVŽ Ô§[§è÷X¹ÝÎŒXEˆû)må ³olah¼úý¢‡û_ŒÙô´]§¬œèPI¿[šµ4kiÆ(ð9„ÁŠ8e_»}íöµKå:KÁ3¨Ìs‰Ooÿ¹Ñ%‡¯ÁgÙ&­OZŸ´ž:üWý”ú)õ l,°±@*oƒêwhB…ñœÊz['l@˜uýÞd½Éz“5eø>m©¶T[ªßWs]~³©Ëüöéml¶®¯jÌ4xmVžÄ<‰y¨C¦íï»ßýû®þ¸jë¸Ö.«ˆo?½½òlKVïM©\§uÍëš×5*0fKc—Æ.Õ¿þµÎöoVvŸÞ(.îs Òïa;/;/;¯”„”„”êPG·61´r©ò|a;µ'!î§·%õïØ¢˜~wÛ½z¦ÃbÆlº®žxÙÚý®¡Z}6ìÙ°gÃÑ2ð—GœÀ)5jר]£¶~)ÜŒk?´jN‰Œj»´tÊ_*•'Äœ>|>˜:Ô‰êÕ7ª¯~/9uôßWt'ñv³¯Ýšw…Z©ô³ä$9IÔáûšG5j¥ßWÛôô.ÏÌ–Q퀜îuK¯ÑïçcM<6‘:`ª’w$ïHÞahaöê{ee–_+4ª¿µ ÷ÿ<“øŽãNö¯Yn©mh¡º©ÜÏ£÷ãÞ{S€Ñ9“r&åŒEU‹ªUSùÀzر ®uXÙeT[zœguóTt·÷ÝÞw™!ÿ¥[›è÷’uƒz{jÜfTë1b’ë¦T^¯]ÚÔ-oaÇhMÛìåÄe~Hå#†'W\u’ c]„Á†dêø…øB|‘ÊkJÏ+< `™”¸ÀßükKdT{º}‹é•/¥ò Ñ^Á½‚{1IéL®5¹ÖäT‚Én=W›9Œãô=c[›®ý ¥r;µ'žÙúdë“Mÿß¾P¡ê`‰ÏÑvÜæX¨T*W¸FGFGFGfêÉÈ'Æ'Æ'•ç¶GŠ<ç”ýs´ƒVº^a®~Ÿøøøð9J%ŽJå W¦´5÷žËlö9Ú~În K{¥òªx;ð6KS&Ès‰çÏ%úó^ì5¡ÆàÏÑ–.P²nÁœúûÿ2þeüKj0¿öûµß¯ýR¹‡Öò…\粚û,÷ˆ pS(•û–Å.Ž]»83W£n=¢ß3¥^ý:¿]aíg¹tÄäú›wë÷¹ßÙÞwJ&0Z?àFÐ)»•ù)•`&úPô¡h^kd`ã—9ÃàÌ?MyšòÔì†Ù ³©\k5 Ç ¿DŸ£Ýq«Þv·+ú}ææ柙' £ëŽ®;šÊÔÓrÀÔ­e®qÊþYZ›7sƒW¥gMÉš’53×dé}¥÷•Þ§ß3 «»÷ôËËlö9Z1±±«g*·ÝÞ±5bk'jLIBŽ„ 9ôg<‡ðÒša A©©ÀÛüîX.•FÕŽªU›ÊŒAR®¤\I¹ôÇiþ™…óV32⼇;«¹ÏÑ6Ú>êŽí"ýžOOOÎÌ5©[¤r+݃ÁNóŸÖ~ŽÖÛci磩TcÑ¥žåßÀhMÛ÷úÎô{rœß8¿q~¼âÈ(Àß–ÌgÒøõî×»_§òIºz'Ko¶›9«ñmäÛÈ·‘ú}Rñ•_‘ºF”–jtdzëûÛv.kËÉU~OÏïîÚ_¿“{Í÷÷l¾–.U*Ã~=Šêd_ÝO¿çûŽé;¦ïNΘ’;/ï¼¼ó2•sBçÀ¶vWŒ9>—uMÕ*¿·«õ뎒µm´¾óycój®á?¶îÞm`ÙýÿÎøzg|¤êÒÅ•*ëï×–1[Æláµ0 }û>öÕ§>c:ÙXM1†5”©®{¾Þì¸C¿çC#C#C3õËtëýž©”8»ÂÁFÞ~¢‰Ãæ ßq-Öº-¨ê˜tÑGÅÉ;¶Àò‚±…æØ,±Ÿi] ^–öí=§L³mº1ÇÀæOË^vþ^¿çGÎ:¿ÏÝ‹qžvdßóÃÝSycuÅÕWóŠ £»L; ΤðÍþ7ûßìŸÊ³-]ª-ŸÍxâRå~“:}Š—/Ø85³t÷pÀƒª÷-~Ûù·—5êom¢5ŠÖ(š™'šk[¬m±V¿g†7>sÔm¨1œ4ÿ»AcÍ®˜yüϵ~¾ö’~GK=ÖýLÁ,…·äÝÝ¿šàæR"íßú ·ª1Á²ô)ýž¿<ëò¬Ë³2g5>¬þ°úÃêú}2ªV¥«v=a&yçÕ#«_¯’Y uÈï¯ÊJÇè+”j¥ûy7Õò@á¶éÿÝϾ_ó{ØúÖïyÇ`Ç`Ç`NȘ%T UBõg¼ý³gïðhoÌpÁ݆æm™öy¸í®)b/­Û°Ák·±Àº(V½\*7•<#x• ƒS+N­8µBœ¶‰ YX6ÉxVR¦·B >r¢¥k*=hhh“™kR·Iåé¿s—Í<^ÊxâÒ*»¬T†Y qûѧoúß=+¯õÞ:ñ´qÀ¶ë›Ùv¿®¿ÍwkÞj1®Óß6+þc¾ƒ©ÝÙ2°i0½08“ÀÚYí¬vVÿP o”Ýã†1įWw›^#Ænp‘ñOë¶­ôêÂC ÚÏ|T-¨üo‡×7ÝV©ðŽ­õ)Ç6Ž©˜cÔÛÊÅìfé® þÐ8ä‹¶¯»ú×0xÓÝL¬˜k1×b®©\S ÂÜ#¯Ñ-òÍÌÌÌÌÌ}Š-È÷ç º‡ªWòþÏüÞh×\§¡ùäO4ûw”5«=Á¶ôic[èÚîÃ×m.ï¦ßó{ïí½·÷^æ¬Æ3kϬ=“ÊǶzþÚÌ-»ñÌ'ïo›ûÎâ ÏLϼZdHþ™ùþýüÞoÊ=2¶ÙÒú¹ù Ó™!˜¶Å_X|!•{nýÞ;Θ`a~]”{°áÜ_<”í¦os[þGá6=m'åýÎì”Ùÿ¼B%[žhâwÅxà§£Uk¾Ñß#ÿfþÍü›Q™€1ØpÃý ÷õÇi¯¡Û»:Þ0¶õ”)­GÛ]r£ãÓ.§]Nó¦öÿÜün1+«%Æ—Z^¨Ò¯v¶7ñx¾Öù³ÚþÑ´×o1.‡™7ÞõÉhóåí¼:ì–«ÅÐâÇßß#ÏvSžo 7¶=rÜÑgéÔ¹úýôv‹âÀ¸þ€{¿Õjr¸ØiVÙ¾äk%ð·Î4ÂàL¯ X°. •kþ†µ~åeWÍêb]ÝVå}i¦™ n³Ã»•¡pW_¬Ï›÷*0Á8oík_jŸEgN¼Ò~‘(nVvTƒÆvÒ¬S ÷Oîu æ2W*Í5OÖ}ßéY­mE·óó`ú½Ûáò£~ÿ/̳0ÏÂ<™³w/ؽ`÷ý>95¢E•Ê+g&Ùß»a)f©Í$©ÿüÆFun¹Úü;¯~gdæëeû+U}m†l~Ùþg«‹ÌL[°s°sp*·ã{–"ìñu7Î8ßÝ|~f;—yã=u?óþSuÿ½©úd?×6Fýäà ''ù§ò¡Có¹æsÍçR™€1˜¼aò†É©<±rà­RVˆŸ»Í¿¶P³¼¾œ§ý~…åˆÊÝü×OPê1¨ËœFÿnÜ¢¼Gòù¹HÁ>óStÿ÷ß›¨¿÷óÿ® ÇX^0ön´nd°[³1WŽÔïÿÙÜ·ï̸N[·çŸÏ¬Ç1®|É×J`Sòí†Á™4ž9yæä™“õÉýÅæVkd À±¡Í„Jû>q]Úaâ(¯GåüÓsš~Hlœ×wyåTßú{N¼Ò~‘pÊíoW´›qž:ëߨÝÙ¹9ìV7è7ìMÔûŸØUÝVÁÁ8?ªk‡øÝãZJ¿ÿG=ft&}^è°Ða¡ÃôûäúØv!>Cg&IhÓ½aÍý›äúùVcËå*ñ‡îgj³-T,Ü8gÈ?»¿(ó33$ÓààJx8ÍæÆw¾ÞèJ©Ãé tßÿ­º¿yï¶ô1¶A—‰-¥Èk `œútíÓµO×Tî=PäÔZ·ü¬?wk;Î}Œ¹'3dÚïWX¯ª´ÃZã J‹?ö¹YïwݶY…W?ÐÈ2=îû{Tt¦‹CeÍØ`ÏESwo;§ßÿÍ^MlTæÆuúÛ–Y§D—Ùøð%_+ €MÕ·g1ž!a žÙvîêû½q^5›vP‘äУßʫՕ_büðÀë­ÊÔ5Cš*.jqÙr¶1‚òý­-ò¼d½üm 5·Ì¨ûNëŠ3´²ýy k‡5<ÝÍ–zKnÎTëgœs£Nµ_JÆÖÿ™çYº ð]_pw>ûÿ{jcè~›œçç 9a¶×Ìry©7™Sâ€cÞ~U3–c®˜#=¿»oø¬Hâÿ÷—’ ÚÛuÀ>nnöE‡SoÀ·eÄÜsÉnY!~îÖiA-Ë¢³¨·´•ÉÛ*¤÷,ã J i¶Nåêë¶íýkÿã™ÁöóžIµ<N[³ãÇŠËgÄìzklp¥Z3÷¦ò._ÿaëmN3®Óß¶¿=ï¡}F.àëÚ³eÏ–=[€¿š˜1]ü|§g¬ 0¤ü½<颋‘æ•zØ•Ö]ÓfU¼àÆüƒ í—±íËpŠ»ËîgÀ§­ÊùvýН1æhC7r jøW1GcÞòÿÙ ï3«ÝPoéý¶ãåêùŒm>Ù½¡þA÷¡iÏ{+"ý÷»TÖ}_ëfTãœí§Mö9áD½ÈœÞÍ9nå7Ê8໇wï®z?=¿{£Äöº>ËR{m2–ØoO埊9QoÀ·ed“óþî¥Y!~î¶BJý\»©·´•õhçÜÏÛ"RïËžÿŸ§äV¬9ýÄÎQÆå~d|nÖúýGõûÿ×'ƒ§Ú|ϸNÛÑnÑm{‘ øº6'lNØLüÕÛÀgJ¶ˆ¨’µQ®2w‹ÿ•ïn^K³†¶Ü5ܲSa›NO§–š‘Ú›M\üí1þ+€õ? ªÓ²×Ôåe®|+Ë®N?ã¼8~ðo‹jβhS f¾%†æ½†e&o û~ûŠ'KŽ4ι‘+€À˜¯~xdUÍãéùݸ ‡ËÕl—Ú99Wøxưi¬¹8=Œç àŠgÿ½û{¯“KÌ?4‘Ø®6qÍÀc‰®ÖÝýk}õ-×·\ßrúÀØžl>/ß¼ÿ~BÍ9·E‚yݱ§ªØÙ{è®x»îÔ®ŸOÄ_»¯÷óÐýVTý¶Òÿ¾Qõo6}ÏþºUñu¿ô{ØŸ¬kû~·¿ŽsÇ÷oþ££»)ÐÄc±®Æ¿ 0ô àn¶Ýl»ÙfÎjÖiX§aôûÄØžlèFÐu³=né£ûþã¶ÚTïüþhv«ÿ£{nãÜ‹´Ÿœ™gH¾øâËô¾ê®«»®n*ÏË1æg§ÿ à[/wŽªê«û­üòg5{ll°¡gS™|ñe _­¶jت¡þ5æg›Ò ÑÐ3€y¿â}Æó `¯%‹GþŸ÷÷*µ ñÜûØ4à¯û `S׆žÌ+_|ñõù^+çý0ï‡y?Ð3¦÷µ7xoðÞàÀ¬Y³¦?úÕý|&zð×µ.`]ÀºýÃpyXëW^÷!¨W»ôp˺­ê|Ýñ~©ÃÉ–=öø]I;Ö½Ú®m7ïÃÆûÚ—ÚgÑ9µíäAñÿ_q³²£ 4ÎSçÑv—†»ke¥*e ÿ{%·S«¢]t €÷÷Âø—ý^‡ípùQ¿ÿæY˜gažÌY»ì^°{~ŸœÑ¢J啯šn{ók‚Û¿·MÎûÒL3û÷ª¦}jTt*ªûïy eÏ¿9¡M÷†5SŒ9n~Ùþg«‹ÌL[°s°s°³þ\÷,EØãëþ­?ø`ù¿x(ÿ÷!N»Âæu(Þpr’¿«~Ï›Ï5Ÿk>—ÊŒÁä “7LÞ ?NîÐ*Uðg…ø¹Ûük 5ËëËÙxÚïWXލÜÍñ¥ïo›ë÷#¼––NÏoy¬œ´vÓM»ž•´;ÚÉjðB³åyNæ1žýrk6¦óÊ‘úýß!û‚ûö×éoëöüó™õ8Æ5€/ùZ© éÓ  nǯ¿nüºô‡¾ºŸÿò¡ïû2i¬ÕÎjgõÉÁðFÙ=nCPì×Kóýœhß¼Oå²éù­ƒ ^ú¿7›Œ4~ØÕ¿†¡!‘™'‘b®Å\‹¥òfܘæyíÔ¹žÛ\6Åt[X¨µEŽ|evU·UpHeYòjÑ8ûíÆ¼ è>|Ýæònú[¾÷ÞÞ{{ïeÎj<³öÌÚ3kõûd«ç¯Íܲghúfn·è𥋠É?3ßÿÄ þ+m:ë¦ûï> nelßçÇbÞo­Ÿ›*0€i[|añ…Åôçº(Ï­ß{ÇgÜùz£+¥§çw[†ÔÎV¢¢î·Z¨3¬Äjã €œŽV­ùF¿çý›ù7óoFeÆ`Ãý ÷7Ü×§½†nïêxÃ8WU¦±BÔÅ]úÛìrÚå´ËiÞÔ~_þ»Å¬¬–g\òlíïZy¤ç·J=øõ÷vËu¿Ux–ý½ Œí `Ç}–N«ßÿAo·(ŽŒëô·µš.všU6€/ùZIü­ûvCß÷eÒøfÿ›ýoö×?<»T=Z>›1u‹Î*ÔW·U›ª×­ìÚ&퟿·§CµjÅtO6æømçß^Ö<ª¿…5ŠÖ(Z£hfžPZ¬m±¶E*‘ÛðÆgŽº 5ž“æÞ×wžvj–O) ™ýûÖa³ƒþ)ûþ§>]ö×=oQ[÷‹ƒ6äzô”¹k¼q.šÕ˜`YúT*÷˜uyÖåY™³VXýauý>U«ÒU»žÆþÏ“Ÿê”˜X4÷ûßÑÝZߘ·ÿÝü¶~£õ{Þ1Ø1Ø1˜/¦D UB•PýoÿìÙ;<Úgœïn>?³‚˼ñžŽ†~kSõÉ~®mÞÿ­Ãë—–®TØxnþü¨ÛbÕSyNðŒàÁ3¨LÀœZqjÅ©úã´MdȲIƶž2¥bð‘-]Séù@›@›@›Ì\“ºõˆ~ÏxÏ]6óx)cJËWì?~Þ¿›u<_ëüY+\¾aIÁ[+;N ØZ0_îB­ Ûý{SëÓ êtü÷ÖëÆÛ®ofÛýz*÷Ø­yW¨Å¸N[جøùø|€Mƒi„¾ïˤðëݯw¿Þ­¨ê,½Ùò¸1ÄÝg:¯±¾ôï§_ÚW èªµz¹¬½s1`jÕ­‚:e©îpx}Óm• z[¹˜Ý¬Âó{æM0|e­±ÄwÆüQuI*×¹¶ÓjL«Ì<¹„”)RB¿gú Ø×ÔÙÅN—GÕ¼ðÔ}í"÷æ>ºmshQ½g‘ácòDäöøŸþèþoÁþEå½fü7òÈÞ¤I±½ú=ÿ|ìó±ÏÇfÎj|ù6òm¤~ŸT|`åW¤®1¨ºË¤òDmK‹PóÆíNöÕýô·¿ï˜¾cúŽá$ €)¹óòÎË;/S9'tlkwÅ8àÒ«K,hÿïGôÜ» ,»?¬ÚÜãñ;ýmçžûÂmzÚNúßgÒ{ï¶ô1¶§ÿ©ºtq¥Êú=¿eÌ–1[x­ŒÂcßǾS¹±Ï˜N6VSŒg%ez+Äž¯·;îÐïùÐÈÐÈÐÈÌ\“ºõˆ~ÏTJœ]áÀ`cJ½w.{r<•+em—4Mî¾ÉÅmð„¹ÇÝ9³ê'û­]†Õ)PÙҥĿoÖçoR´…e#ã|r°ùÓ²—¿×߯‘³Îïs÷b\§§Ù÷üp÷T;RquÅÕWóŠ £»L/ô}_& €Sž¦oÞ«À„÷¿ÿkËÒÖ–C¼±ãV½ínWô·<Ì?Ì?Ì?3O4G×]w4•)¦å€©[Ë\3†“æZ{ûz”ú7¼/PÔÜ2o`߇®:o6tН¿/]’VÌtøÉˆ6næ?6‘5%kJÖÌ\“¥÷•ÞWzŸ~Ï$¬îÞÓ/¯q¨¯uª1¦Ðš|ãòN{›ÿÚ\åšýJã€ÅÄÆ®žsR¹ùvÄÖˆ­œ0% 9r$äПñÂKÿ]h†qÀ‡ö- ªx»hPa»|ÝÓ>'w²,ÛÖ¼ÀÝûwW½olðÄ6¿;–óIåæÛµ£jGÕ¦2c”+)WR®Tnº;³cÞ*cFFœ÷pg…ø9ÚFÛGݱ]¤¿áÉáÉáÉ™¹&uë‘TnŽ}0Øiþ3c»´îfÎéy-߂¹‹vp:°ê¬Hc»ö×Ûci磩TcÑ¥žåßÀ¸NÛ÷úΩÔÃ8¿q~ãüxÅQ€¿-¦ú¾/Kf>Ì}²õÉÖ'›þ¼}' BÕÁÆs;ÓÑ+ÿiwܧ\É*E‡êž ¬k}o–zg1eÞtß¿7'9ôhç·òý½Ð…Çm ÔÌ·$¨«ËN›!ưG·9*UK¿Ï£#£#£3õ'jc|b|bRy3®ü¶GŠ<ÿº§ËAû·4v¬÷Zþ fëu[UêÐn63ÒþtçèÅ—ýÝÙU¨S¸ïÿÜÔÚêL· cX Zyèz…T>#àààà á(q”8JLåƒ&SÚš{ÏýVnýï›ÚõÛJމƼͺ¶Ÿ³ÛÂÒ^©¼*Þ¼HM0=žK<—x¦ro˜ØjBÆ뾯û ;–je£•ð- ZSÐ3ï47ÕáHá¶cO-±÷xuH­TcŒ±E¿º¶t’u æÔïóø—ñ/ã_R“€ñøµß¯ý~í—Ê Û—Ÿ(ä:—âçhm\Ǻ”Ê«ÒâØÅ±‹3s5êÖ#ú=SêÕ¯óÛEÛU³ÿ¾'6ºK¡S‹vq^XùÇ|oŠT°ˆÈ×Ó|X‘E†–—©<+=GÕ½ Æ£öwimóïMót”1þk“.õXäwÜÐ ™T>©|Ryj€é™g=Ïzžµþ¼§ZügÅEÆ— q?ôûÆÐ>;(ŒòµÕïíêm«·­Þ–jŒÍjïÕÞ«½õÇlÇŠ‹íÃzÊ”VˆÃzžöpsLåÙ¶åmËÛRºõˆ¡ÕŠ÷…ÐÆ'ŠgŒšöu½ÆvÕïûmÙííwpÑïíÃ6–ŸÄ¸Nk=³‚E¡¿õ{òEà‹À|Ì@†!6N™3ô}_¦€_ˆ/Ä©\ßVz^áˤÄþæ_Óø¯ûVÚÓí[L¯œÊgiƒ{÷ îÅd¤3¹ÖäZ“S¹Bº[ÏÕfãŒóºßnkÓµ¡óú½ýäÁ“OPoæ¼™ó&•Ûç]g¶Î¬WŠW` ÿ¢Æ6ϼ™Û-ºfiÝ=t[» OŠNE?¾¬´ùÅ+V¿·CCC¨F¦êºÇuë©Ü<°ÃÒ Kýdœ1ê·Ûnì=i™«½~o¯IX“°&jŒÍýÜ÷sßÏJ$Ù½F­"‘¬æ2¶íøÃ¢Õö{õ{{A‰%” utký^òh0qÑÆñÆ£~“máåö'+˜uÈ›#oÃT.È~î;·½ŒÙô´CƳuõLåÖåŽ.Ž.ŽŒh‹Øxú¾/ Q£vÚ5jëò›qí‡VÍIp›Qm—–NùKÝÖïçóÁçƒÏS‡:Q}£úFõMåIrý÷Åé{FµwkÞR Ú$'ÉI¢ß×<ªyTó(ý¾Š8ئ§wyc›g–Gûwpù÷¹éù/ädöX÷U¿Ÿïö¾Ûû.3ä¿tký^²nPoo@m‚Û »ùóˆI®›Ry½viS·¼…£õnþürbƒ2?è÷䪓«N®:Ɉ±€¿.B_C€SöµÛ×n_»TT‚gP™ç·ŸÞþs£Kßîomº>i}Òzêð_õSê§Ô/°±ÀÆõûjP¿C*Œç$þÓÛ:a¬ëè÷ð&ëMÖ›¬)Ã÷iKµ¥ÚÒT®Lëò›Mݯ;·<ÑåŒïÍ׫»M¯s²Aó•¬Ï›÷*0A·…]Î8U-õÎø¯ýÍÖõU™†fÈÄ<‰yóP‡LÛßwÿ¾û÷ÝTÞžÛ:®µË*âÛOo¯<Û’Õ{“~{]óºæu ŒÙÒØ¥±KS¹OL£¿G­³ý›•ݧ·Š‹û\‚ô{ØÎËÎËÎ+%!%!…{$üK·61´r©ò|a;µ'ñí§·%õïØ¢X*w†Û½z¦ÃbÆlzÚÑ/[»ß5T«Ï†=öl#@Æ"þò}Óƒ8%¾A|ƒø† âùê.Û}Ïâ~J;csÕ¹÷õûvn©¹¥æ–¢õ­\¼rñÊÅú=æ÷»]©œÊJ;|ðÙ\n ÷Øœ±9csRÿ³È_•¸*q•¡{ü¦Óìê}­¹ej ŸF%ô·Ê¢Mšù–\m×¶›÷aãŸ!—t­¹Ý)Y/&ˆÄ " 3ˆÞ½1z£¡×šw~ÇnùýNˆû)m'熓JuÕïÛƒáÆS€1ûçü?çÿ9oh†Ù𼯻-«¼Oi}fuªn•ÊÇ1·•ÛVn[9*PŸn¢ßcåjt;3bñí§´•+̾q°…¡ñ>ê÷‹î1fÓÓv²r¢C%ý>liÖÒ¬¥£Àç@üeú~(àMöì;ÙW¿8&ù{»–ëOˆûq틺:Ô(lhàýsöŸ³ÿœ¥öô½Š{÷*ÎP¿ ©}ô «5'ô×67*Ä6•[{ m4´ÑÐFÔž!óÌo0?•ÊôÜQ¶Ø×ša5®ñÄiB¾»y-Ívê¶§rw«‹E–ïÕÜ¼Ò ã¿ö÷M‡nj14ңââè=™G¥ÒFIå-x—imÜ|q?®½9kGoŸWï31>q|âxj0~=‡öÚs¨þ(n±oJ÷2KXå}äƒÚ«++Øš!ãÝâÝâݨ=}ºuŠ¡~óêºèÄ¡D¹×ÚLm´²KKý^müËèѶ³éºö÷Æåýî)Eº”h™ßA¿'ÃÂÂÅ>àχÐ÷Sÿë™üL~&|#¾^ǹ՞è~h;zoå.v©|2tè ¡ƒ†¢êÒ6Ùy²ódgýÞ«Z½s«“œÖh;$þXŒk{Ccüáö‡Ûn§ê yùêå«—ß>¾½- DÕÞ_kžÑÝúI½N»ª/Ð}Çø£ßïŽZu¦Ãýþìy»çíž·©:™Mdbdbd¢¡×š¸j‡^Õ¬G û¡mS«š­<õûsuŽÕ9Vç ê€oŭ÷ß:lh†ÖêtA·²¬ø>´õŒl>Ú²©~ÎÏ5?×ü\T]ÚtkýÞ+»¤ý€þ7‰r?´­8ÃgWAƒc¼Î©7.HW0|~œ½›~z>ö|ìù8åiÊÓ”§Œ_ŸpÆ"ôÍ(Àÿcb¹‰å&–Ó/6å•xM ›þöZóv%}< ŧ9Ÿæ|ÊvÿËî/º¿0øìäÞÒÎNu9¹O[Å£mçâýR¹¢zæ™CfRoé1'fNÌœý>¬ÛÑö¨¥wÊíÀÿªÌ~éiïªnhtß¿pÿÂý Ԁ̩uDëˆÖ©ÜJï©åò覿U»/ZX±­¡×š·¡oC߆RoÀ·%È*È*ÈJDû6é~¢D8+¾ô·¡›º—bh†|ó:æu õ–6ÝšÅPVÿ®³»7±nºÚŠËgœÜiQǵ¯÷6ýžl°h¸·Í#ÆlzÚaÚésnõ Õä»3vgì¹>àOGèû9ÿX³X³XƒÅtàhÃ+ˆ.Òn“œz´÷[édij^@¿CBBBBB¨´ô[6bÙˆe#ô{²wÑÈ|V£r\øË½ 'úi·¿9®éê`ðóò1¾1¾1¾TZzÄç‰ÏŸÇPOn«ðë7æÀ´ÛäË=ü³UTªEý>1.b\• 3»ëq×㮇¡×šKo7<ö:J¸›vûêžÚ¤ÆdC}¸çþžû{îSiÀ·èѪG«­24ºƒÆl~éÈêï?ÚÓϽp»o¨7.ظ`ã*-ýtëýž,Ò©|o÷Ÿì¡ÏNÜ%âM»u¼Ó×sšÁlÕ©Ðÿ¤µ#7=­÷ů¬§r«üc-޵8Æhð¹º=[ölÙ³…Ð7c§bçÏ;Þù³ÁÛAu\^í%1†¡vj”Ï$_ƒW¬{»îí:j,ýÞ½ zTÜ£¸GñTÞ õ ìíT2’}ƒ·}?¶Ñµ‘¡j\»uíÖµ[©±%„ ¡B¨¡^½бêlfBCí‚â5Š:ýh¨÷ÞX¾±|cIÀôÅÓO_œÊD9Ël™ã›Þ‡Ô,FЛJûöä¿.ÿ4Þj-•k½|½|½Ræ¤ÌI™Cß®E“MZ4Éà­bsšá–›• ¡Öça§‹V›õûÍy‰óç%É]“»&w¥ÆÒO·~1Tö}»x ­GÄkð¶Ï“g¬Ýµ8=osŠ›•Íø5Ôvʺ¤]¹\†zïÁ©§œb´øÜ€?]R“¤&IM}3pj.§\N¹ÜpUÃU Sùt­Ëêb3Í×$¬èägF˜ñ~+•h\Ýs©¡!zêÉ©'§žP\çRÃK /54Ô·²,ˆ²ïÈIÿûíè‚—Ú¸‡•9^iˆy¼~ù¼õyëó69>9>9žêú8¦u˜Öaš~ß–¸T¨aþ«q+«W³ ³âûí±Ÿš…TZnhkG´#Úê t,ºXt±è¢?gv,Ù`O©2)OÎõ÷$ô}¿ í3úGç­†^kî^º{éî%ª øæßkÔ:©uùéå§—Ÿ®?ÒÊûw,úÇè—ydeUø~ÛÆjf˲²¡òÚËk/¯½¤º>Žn-c¨o]‡ŒÜš•¸÷ýÖkÅ⇫ç¯[ÔÛÒ)ý·¸ÜþHÉ Ëï·ý¶†Ut~n¨ÇV^Zyi%g>¾àŒòþuÀ„¾ŸŽØ gyžåyfðf§ÝÖ:ÅXwO±4÷/@°ѾM-ï†újƒ &< ¢>Ýì]³wÍÞe¨Ÿ{nښ踀À˜>û<œ«t^euÉP_=üpðÃÁTÔ§xñìųÏ õpË>ö«J8']ì±Ðï83älíŸù†ú*¸Cp‡àTè»ZòjÉ«% ÍŸS'õààLè«k¥ë –x3ÔW›l7Ùn²¥¢SrÛî¶Ým;C£ÞoZï?JÞcm¨k»?_ÿgyƒ·Ø =z<ô8õétëCýì¹sZ¶ínD¿ÞB(byºJ@­G†úÊ!»Cv‡ìúß·H°¹^ çðè³gÜ63®ƒ‹wr 4Ô‡ 4Ð`@JŸ”>)}›¾ `'àÿpÌý˜û1wƒoÜ/óËÚ¤<ìâ_#s7=Û»ùÜ0Ô?¾Å|‹ùK J J ¢–>]òëä×ɯÏk<¯ñ©l[Ù¶²mBhBhB(õ˜¶i ¦5˜ÖÀÐlPO þÁ¦Þ˜‘áî™g…ä½9ØÑÊà³i Û¶/·/n_Ü>ê'céÖ8i¯ƒ*ŸÞtǃLtÕïže±ÇW”¼YÛµÕŸ†úD·¦~¿'Ç9c0ö¬ò¶p¿á‡ÎÎp[ž‰®ú­w|¬ë‹ÖÛòŸ5Ô3W¬¯X_±f$øò€aœ€?À¤ðIá“ d´ÝçàU²lÜ‘ßZ× 2í`ãhÃfõ+ Jû„þNÈ;!ÔÌçííýO‹é½¢—C6Ó^Œ”/üèþk¥'­KÿÞP? ß2|Ëð-ÔÌç6§ýœösÚ: íËü]¼Iìƒnµj2íòLãªü’öؼp-àZ5é—••ÕeY—e]–š]G,þm†ÝOIá' ù3íèw븩çÝÌ õCáÅ…^übù‹å/–S9@¦°?eÊþ>¯ú¼êóÊÐÌPuPç³V×Gí¹¸Ë}‰i¯;Z- ·—Ó>æöÌí™…óùèÖ;i·-c‡¯zjâÏúµXx_+VÌÝ£uuƒ˜Ö­£ õä®>»úì2ø»Eo•zžã ›‡ý+l0íqÝ¿ŽPÓÅ:íŠ:ârÄåˆ £À×B ãDü!Þ¤¼Iy3úÉè'£Ÿ:á(Y Ðoù£oÿÒþnÕÚ¦l,_#ÅiVÚ§\Q—£.G]¦X¾ŒÛOo?½ý4í#Ò Ò°›cczFló0© Ì®þTáçâ}ìʈ2´ï­Z ´J N N ¦Z¾ŒiÎÓœ§¼eþay[˜]Žº×6Χ¸éÍ«üjUw™šöx¼ä|Éù’3uçÝ¥w—Þ]j÷¢Ý‹v/ Í´µªUñ)6ñáºo5S }“z?æ·}Dôo'ì, í{µ€Z@}ô4è)_2ä>É}’ûž <xÒÐ,a3ÆU.t{pÑÛ+ˆ&e½ΦË­k¦}6þ°ÿÃþûS-_†ní“öq˜˜0îÓ‹~=²ë³ýù¬ó¼M±n휞žÜxyãå—ÓîÉÚ†ûåMðjàÎ%—5.×3í}îw„;Œ8_0ŒðGšþ`úƒéÒ>Yw¶öË ³¾õH#zSÇýÕ¿ûuxiËáiïïÍØ›±7c©/ï~‹û-î·Hûè”~æùÖ|ëŸAò;—+ßú Ýˆ9Áv“ÓÞßqùÆå—/å`ÊÁ”ƒTÈ—· Ê‚* ª¤}ŒB“üs8ŸMÑ›úWüvgȧ;[W¿Ö¢¹}«iïïÕüWó_ÍOmÀ§Kj‘Ô"©E¯˜^1½bÒž{Eßùm={}ëÑoT­ù¼ËL*Õ» Á«©ì{Û÷¶ïýϲ–ý³Œ 2³ä‹É“/–˃ÿã*Øýn¿Ù® ôs±.éXþEÁÆöÔb•Å*‹U+?®ü¸2òåéÖAiW£åÜÊ;jåªí9Ä1Ô/¨hµ­%+—o&.Õøâ÷îCëµR˦LÚ{W¯M½6õÚÄúÄúÄúP_—nM¤[ýÇ5Áûƒº ññX>ñä†o%úu5a؆ü…ª[ϱóJ{ïtkäOéÉ“…N:ù±¨Îokö9\úÆná¾v±hÿ,={Y:²tdiFãA ãDœÎ9_ä|‘ôœ tqtÊV*âæ¬ö-|^[¤‘ð´û_~%·×sp›˜ž}4iФA“¢¢¢©ãñîå»—ï^ŽVG«£ÕôÇ6Î3ÿ,{xdÀùvîöÆvê?`‡tÐeQ•튟›ž}9u2êd5`l"^F¼Œx™®jt†ôÛÉÖjj·èÕ6ºwé{÷M»BüýÈî®N+Ø ëm£˜û Í70ýÛ6Þ|¼ùxó¸)qSâ¦p¿-º5”n=•þ#^èší°rÛÊýý›4òªçâ©û·]ÊØ ×Ëbá}­˜sÜ csÎ[]­~©QÕx/%±hbÑDÝš÷KödÔŒ¨Q3ªŒ­2¶ÊØôo­ÓHÿ˜¢“Û7·ƒÝžÁôªp7cÇõŸã{—Û­ý½¿ìrûÂÞ£ éß¶†á Æßëz¯ë½®ŒÆƉø3J<˜x0ñàš†k®ihö j}g3¾Xð𣟔½º|„Eç§{ö4°rß«Ø7ÉV±€fÞä`űa7yZlnR7ÔuþL¹ZÛòí»Å9ÿb=Ħ…ù’«?îßmÐ4 iÀµ ×6\ãm&qëà­ƒ·¶û®Ýwí¾û¸ª(œÅòI¾ÝžWšµlZß&x‹M¯6óBÊ–î\yÙðrý»u\õÎaT×e+79TëpaQ=û5-ŠLn\¦‡_pï%o”‹¬6£HÓO ËÔeê25¡tBé>õùÍK2K2K2Ût}ÓõM×?¥*jl²®m±è°ŠyË6_öÖo­óì=Öõ£ÝçÊI_VüI«ÙäTÅiBP£¥žU¶4ÿ5‹ëùYªÅ•ëñ‡ó[›eb Çüóãþݺcꎩ;&²udëÈÖM0No|Þø¼ñ ©R=¤ú§¼Ö4ºàV|Ǹ:=³Ø7]ý㸥.ûöõœu£¨²}ÑÏ+¨!‹VìvÐsN‚GØ߉{*<œz²ï:‡ª¿×ïTòp‘6æÍóÙ}Ü¿Ûkq¯Å½G[E[E[q4d¬ø&ñMâ›,(¾ ø‚âŸ2C–ïQ£N‘Hÿi8–ªÜbñ2³;^tØ^èº{e¸C­n¿®ŠpÒ)nYŽríÛÙ°¬X¯Í6vk›ö*ö¬Põ¢7ó•ø¸·kÏ®=»ö¼7íÞ´{Ó8š¦A·¶Ò­³>®* ¬+>µ”X2Ÿß–æîv-:xÖq|Ÿ‚Sî»ôâ5og…éÃŽ/®UÁrh÷…#œp>ä»rZ÷£ÖÛ½ºZIqêX±ï§ŒÝÚV·Îýj87enÊ\)§”SÊYô^Ñ{Eï}ܾX_¨0£Ðšªq]¶–ÈÑd严ÝÛ?™gÿ}ל+Ö8äîvbõn‡•]Æ/WÊÝi—8·¹Ý®F)£mw{ïè°ÏÊ¿Ä8‡ã§~Ü¿ë¸Ðq¡ãÂãÑÇ£ó°9ß`'à/äí¾·ûÞîÛZtkÑ­E-îYܳ¸gf”‚nݺqmŵ×VpÔLÛ-ß[¾·|û>ëû¬ï3ã¬Æü ó/Ì¿p½²^Y¯ÄçŽÏŸ›£fªwÕÞU{Wm›69lrgMvYÙee—•‘á‘á‘á5ø¶ÄZÇZÇZ/ºtêÒ©fFläÄ‘GN|ðøÁã9j¾Œ7.o\Þ¸¬ò^å½ÊÛ˜gÈÁçŸ|îîÖ»[ïn娙6ÝšK·þ2ÎjÔ­[ukXÝzÖØú0¹Wr¯ä^ê)õ”zÊë‰×¯'ÆÙ“õžÔ{RïÉ)§SN§œR¦,LYHýøÃ8½ÓÙG‘"È6"Ûˆl_ë4Ë;Ú;Ú;z‹¸EÜ"¾¼öòÚËk—Ìéu»×í^·Ûé¾Ó}§{Í5kÔ¬ñÕ–ô{ï¼÷ÒîK»/íæ¸dfQIQIQIcÝÆºuûZÕèÙ׳¯gß e6”ÙPæyççŸs|0)gžyvæYïS½Oõ>õµ^k­o´¾ÑúƒêAõ šðSÂO ?q\ƒóÎw:ß©Ãþ û7üZ3dÝquÇÕ·wêÞ©{§Æ‹;wŒã’9éÖbºu™nöµjR·>Õ­U¿Åž¼7ðÞÀ{CJ‡”)]ðLÁ3Ï|ù>´îiÝÓºç¢ÐE¡‹B }4ôÑP*€i †q"6"w Þ)x§à†l8ÐÙ¼³ygó¼æyÍóšg@ŒqÚó´ç鿤¿¤¿¤£õŽÖ;Zï•×+¯W^ô9 ‰MˆMˆM8QðDÁ'užÔyRç*W«\­r5£Núúôè¿vÕÚUkWÝÊr+Ë-æ"ü×bµÈ½"÷ŠlÖ6k›µn[»mí¶µ@dÈ‘Ÿ^®»]w»î“gLž1yõ=Ô÷Pß[_l}±•>€LdIÊ’”%QË¢–E-[^yýåõ[þÒò—–¿dÔ™OK5.Õ¸ô÷ˆ¿Gü=âl¿³ýÎö‹ß¿#~à˜’˜’x=òzäõÈU£VZ5ªÍ‘6GÚɨ²êõª×«^Ÿ75njܩӧNŸ:ýæÂ› o.Ðñ0D·^Ó­Ýtë8ÝšîÓ«Q·ÆÔ­7ukOÝ:ÔT{òѾGûíÛ3aÏ„=úTêS©O%«««˜OïÉ2NeœÊ8 Ê5(× \aEŠ„yfùÌò™%Õ À—DèòMJþ%ù—ä_Žl;²íȶCá‡Â…Ÿ/r¾Èù"ô ¾–Ëm/·½ÜöPÒ¡¤CIGþ:òב¿Þe}—õ]Vz_A—”.)]ŽD‰:uhÍ¡5‡Öœép¦Ã™t £¼ùéÍOo~:âxÄñˆãáæ‡›n~óìͳ7ÏÒ3ð¶ÉÛ&o›is¤Í‘6‡íÛ¶»šx5ñj"=ƒ¯E·Ô­ uëDÝš‘žùPGÛmw´Ý¡’‡J*yôæÑ›GoÒ'3`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜ˆ/Êv(Û¡lfièrR`øæ€‰Èt°îû‡¾;ôÝ¡ïe9”åP-YKÖ’µ$-IKÒµD-QKд-^‹×âµ8-N‹Ó^k¯µ×Z¬«Åj/µ—ÚKí…öB{¡=מkϵ´´´gÚ3í™öD{¢=ÑkµÇZ´­Ekµ‡ÚCí¾v_»¯ÝÓîi÷´;ÚíŽv[»­ÝÖnj7µ›Ú í†vC»¦]Ó®iQZ”¥]Õ®jWµH-R‹Ô"´-B»¤]Ò.iµ‹ÚEí¼v^;¯…káZ¸vV;«ÕÎhg´3Ú)í”vJ;©ÔNjǵãÚqí˜vL;¦ÕŽjGµÃÚaí°vH;¤ÒTMÕTMÑMÑ$MÒ$MÔDMÔ´0-L;¨ÔjûµýÚ~mŸ¶OÛ§íÑöh{´ÝÚnm·¶SÛ©íÔvh;´Úvm»¶]ÛªmÕ¶j[´-Úm“¶IÛ¤mÔ6jµõÚzm½¶N[§­ÓÖhk´5Újmµ¶Z[©­ÔVj+´Ú -T ÕBµeÚ2m™¶T[ª-Õk‹µÅÚ"m‘¶H[ -ÐhóµùÚ|m®6W›«ÍÑæhs´YÚ,m–¢…h!ÚßÚßÚßÚ m†6C›¦MÓ¦iSµ©ÚTm²6Y›¬MÒ&i“´‰ÚDm¢6^¯×þÒþÒþÒÆjcµ±ÚmŒ6F¥ÒFi#µ‘ÚHm¸6\® Ó†iô`-X Ö†hC´!Ú m6H¨ Ôj´Ú­¿Ö_ë¯õÕúj}µ>Z­ö‡ö‡ö‡Ö[ë­õÖzi½´^Z¤iZ ¨u׺kݵߴߴߴ®ZW­«ÖEë¢uÑ:i´NZG­£ÖQ д­½Ö^k¯µÕÚjmµ6Z­ÖZk­µÖZj-µ–Z ­…ÖBk¦5ÓšiMµ¦ZS­±ÖXk¬5Òi´Z­V_«¯Õ×~Õ~Õ~ÕêjuµºZm­¶V[«¥ÕÒji~šŸæ§ÕÔjj55_ÍWóÕªkÕµêZ5­šVMóÑ|4Í[óÖ¼µ*Z­ŠVY«¬UÖ*jµŠš§æ©yj殹inš›VA« UÐ\4ÍEsÒœ4'ÍQsÔ5ÍAsÐÊiå´ršf§Ùieµ²ZY­ŒVF+£Ùj¶š­f£Ùh6Z)­”VJ+©•ÔJjVš•f¥׊kŵbZ1­˜f¡YhZ­ˆVD+¬Ö k…´BZ!­ VP+¨å×òkùµ|Z>-Ÿf¦™ifZ-–GûEûEûEûYûYûYË¥åÒri9µœZN-‡–CË¡ý ý ý eײkÙµlZ6-›–U˪eÕ²hY´,jŠš¢¦¨Ij’š¤¾Sß©ïÔ5AMPߪoÕ·jœ§Æ©oÔ7ê5VUcÕWê+õ•úB}¡¾PŸ«ÏÕçjŒ£Æ¨ÏÔgê3õ©úT}ª>V«ÕGê#õ‘úP}¨>T¨Ôê=õžzO½«ÞU覆ÕÛêmõ–zK½¥ÞPo¨7Ôëêuõº¥F©QêUõªzUT#ÕH5BP#ÔKê%õ’zQ½¨^T/¨Ô j¸®†«çÔsê9õŒzF=£žVO«§Õ“êIõ¤zB=¡žP©ÇÔcêQõ¨zT=¬V«‡ÔCê!UGQUQ%UR%UTEUTÃÔ05L=¨TªûÕýê~uŸºOݧîQ÷¨{ÔÝênu·ºSÝ©îTw¨;Ôêvu»º]ݪnU·ª[Ô-êu“ºIݤnT7ªÕõêzu½ºN]§®SרkÔ5êjuµºZ]©®TWª+Ôê 5T UCÕeê2u™ºD]¢.Q«‹ÕÅêBu¡ºP] .P¨óÔyê-Ÿ–OË'å“òIù„|B>!“ÉÇä£òQù¨|X>,–ɇäC²*«²ª›dI–dIeQå09L“Êåƒò~y¿¼_Þ'ï“÷É{ä=òy·¼[Þ-ï”wÊ;åòy‡¼MÞ&o“·Ê[å­òfy³¼YÞ$o’7Éä òy½¼^^/¯•×Êkå5òy¼J^%¯’WÊ+å•òry¹¼\•CåPy©¼T^*/‘—ÈKäEò"y‘¼P^(/”çËóåùò²—ì%{ÉUä*r¹’\I®$W”+ÊeÙCöÝewÙ]v•]eW¹‚\A® ;Ëβ³ì$;ÉNry¹¼\^vdÙ^¶—íe;ÙN¶“ËÈeä2ri¹´\Z¶‘mdÙZ¶–­å’rI¹¤\B.!—‹ËÅåâ²¥l)[ʲ…l!•‹ÊEåÂra¹°l.›ËærA¹ \P.  Èùä|r>9¯œWÎ+ç‘óÈyäÜrn9·ü³ü³ü³œKÎ%ç’sÊ9åœr9‡œCþAþAþAÎ.g—³ËÙälr69«œUÎ*g‘³ÈY¤)EJ‘’¤$)Iz'½“ÞI R‚” ½•ÞJo¥8)NŠ“^K¯¥×R¬+ÅJ/¥—ÒKé…ôBz!ÅH1RŒôôôôTz*=•žHO¤'Ò#é‘ôHŠ–¢¥héô@z Ý—îK÷¥»Ò]é®tGº#Ý‘nI·¤[ÒMé¦tSº.]—®KפkÒ5éªtUº*]‘®HW¤)BŠ.K—¥ËÒEé¢tQº ].HáR¸.“ÎIç¤3ÒéŒtZ:-–NJ'¥“Ò é„tB:&“ŽIG¥£ÒQé°tX:,’I‡t§ÿº—}IG”DI”¤0)L:(”Jû¥ýÒ~iŸ´OÚ'í‘öH{¤]Ò.i—´SÚ)í”¶KÛ¥íÒ6i›´MÚ"m‘¶H›¥ÍÒfi£´QÚ(m6H¤uÒ:i´VZ+­•VK«¥ÕÒ*i•´JZ!­VHË¥åÒri™´LZ&-•–JK¥ÅÒbi±´HZ$-’H ¤Ò|i¾4_š+Í•æJs¤9Òi–4Kš%…H!Rˆô·ô·ô·4Cš!ͦIÓ¤iÒTiª4Uš,M–&K“¤IÒ$i‚4Aš —ÆKã¥qÒ8iœ4V+•FK£¥ÑÒHi¤4R!FHäaÒ0i¨4T* ‘†HC¤ÁÒ`i°4P( ”þ”þ”þ”úKý¥þR?©ŸÔOê#õ‘úHHHH½¥ÞRo©—ÔKê%IAR(JRw©»Ô]úMúMúMê*u•ºJ]¤.R©“ÔIê$u”:J¥)@ ÚKí¥öR[©­ÔVj#µ‘ÚH­¤VR+©¥ÔRj)5—šKÍ¥fR3©™ÔDj"5‘I¤FRC©¡ÔPª/Õ—êKõ¤zR=©®TWª+Õ‘êHu¤ZR-©–ä/ùKþRM©¦TSª!ÕjHÕ¥êRu©šTMª&ùH>’ä-yKÞR©ŠTEª,U–*K¥ŠREÉSò”<%wÉ]r—Ü$7ÉMª U*H.’‹ä"9IN’“ä(9JŽ’ƒä 9Hå¤rR9ÉN²“ì¤2R©ŒTZ*-•–l$ÉF²–¬%k©¤TR*)•JH%¤âRq©¸d)YJ–’…d!YHE¥¢RQ©°TX*,™Kæ’¹TP*(” H¤R>)Ÿ”OÊ+å•òJy¤‰ÄGb´-F‹Äâñ¾x_¼/ÞïŠwÅ;âñŽxK¼%Þoˆ7Äâuñºx]Œ£Ä(ñªxU¼*FŠ‘b¤!Fˆâ%ñ’xI¼(^/ŠçÅóây1\ ÃųâYñ¬xF<#žO‰§ÄSâIñ¤xR<.‹ÇÄcâ1ñˆxD<"‹‡uoþé–ûºyQGQŠŃâñ€x@Ü'î÷‰{Žâ^q·¸[Ü-îw‰»Äâq‡¸]Ü.n·Š[Å­âq‹¸EÜ$n7‰ÅâFq½¸^\/®׉ëÄ5âq¸Z\-®WŠ+Å•ârq¹¸\ CÅPq©¸T\*.—ˆKÄEâ"q‘¸P\(.ç‹óÅùâ!¯WÈ+äòy„ÜBn!·ð³ð³ð³KÈ%är 9…œB!‡CøAøAøAÈ.d² Ù„lB6!«UÈ*dLýécPzIDAT²YÂ’Ã’Ã’Ã’Â’Â’ÂÃÃÃÂÂÂâÃâÃâÃâÂâÂâÂ^‡½{ö2ìeØË°a/Â^„ńńń= {ö,ìiØÓ°§aÇ={ö(ìQØÃ°‡aÄ={v/ì^ؽ°»awÃî†Ý»v;ìVØ­°[a7Ân„Ý»v-ìZXTXTXTØ•°+aWÂ"Ã"Ã"Ã.‡]»v)ìRØ¥° aÂ.„;v>ì\ع°sagÃΆ ;v:ìtØÉ°“a'ÃN„;v,ìXر°£aGÃŽ†;v8ìPØ¡°Cº·íuo×éNÛ €¿èÀç` y(0d``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``_”Yš¾üßÉ(-CZ†´ 1û¦üú[èo¡ßV?ã[ñpâÉ'–º]êv©Ûºj)‘§Džy^ÜyqçÅúçËÓõ¼î(莈îèèŽýSBL à‹"6¶8í#ƇJ¶L¶L¶üµå¯-mù~µÌ(4£ÐŒB鯜î3»Ïì>óKŽ«âVÅ­Š–NÉ’;%÷ñ^Ç{ïõç–?·ü¹Åo‡ß¿åZ—k]®u¡5…ÖZc7Øn°Ý`ß›¾7}oö}Ò÷Iß'ÚQí¨vTןµ!Óܦ¹Ms{¯ëÕ®W»^mF4L 00€/Š˜¦m⨉£&Žz¿Nl4ÍF{½úõê׫ÓÿwüWú¯ô_ù­Àr¬+Ǻ©nª›úq[ådédéd™Q#.vwìîØÝï_™­3¹óäΓ;S½0 ÀÀ¾(ã €k*i}¥ç/“"&EL*p¨À¡‡Þ¯“¹Kæ.™»äCkÆv—í.Û]ßb¬»f·OÎ>9ûäÌØ- êÔ5¨k’C’C’çlᬳNÌ:ñþ_Öµ+=¯ô¼Ò“JÀ·Ž˜Àeœð§ÿµý½÷÷Þß[÷ó‹êWÚÛóé_÷%å—òKù €‘r§äNÉ]çÏ:Öùóý ÑÝÖ8~püàøÁéÿcºk…¿üG">=ÖE¿=ÆôÓcÌ×ýèFÚâ&ÄMˆ›Pfn™¹eæ¾ÿ—ß¿q7E €o00€/*£E]bèëkm•±õÒ§ËØ~†©Z½qõÆÕõku©ÍR›¥6Z·÷^Ü{q¯¡ú¿{øîệ³ôŸ°«¯J«*­ª´Z7b݈u#nšÝ4»i¦ Èuÿ½vÚÚik§UXi`¥iÿé¶Óm§Û~ÊÖ.ì´°ÓÂNúY· T5¾]ÀÀ¾(ã¼¢”ø8oß¾ ´ïaßþÇûUZ¼|ñòÅË赿:;í<¶ó˜~åënSüé7@þÌ{0ïÁ¼¢AEƒŠ¹½={{ööLÏöë~&°`ÿÀþ†þšE‹6mN|8ñáÄÛfÝuÀÅ~-ök±_ßÿËuê:Ôe¶À·‹˜ÀEüíö ÏÐU¤º°óã*6äjÈÕ«úÓ%Æ%Æ%Æ8û¡«ÔUê*³-V´XÑbÅÿÑÜ)¹Sr7=ÛôlÓ³†þòû·›þ¸-73/q]âºÄ• À·ˆ˜ÀEüíöð>ÝÕ½e'”Pv‚~•jGµ£ÚѫؾOú>éûDÿo6~ÖøYãgÆÖÑC¢‡DÉû2ï˼/õ·¹È"CŠ ÑݶúãzãöÝÛwoß54èþÝGA‚}ÜöËßËßËßëÿå÷¯ê¦Úðm!&ðE»½¼oåñ•ÇW7&[&[&[~Ü_nô®Ñ»FïôÿrŸ„> }Œm,è³ Ï‚>ißöùÓÿ•žÍ{6ïÙÜп²¨ñ¢Æ‹\ÏèŽT™¹eæ–™Ëó€`€ €ð ¿~/üÞ¼éó¦Ï›Þñ§Ž?uü©J«*­ª´ÒÅºë® î.¸»àî’/J¾(ùÂ9Å9Å9¥™ÜLn&óæ7ÌOÊ/å—ò¿ózçõ΋þÔ÷<Ëó,ϳ¬Y¼fñšÅíjµ«Õ®–®‡KÝ.u»ÔmóyæóÌç9Y:Y:Yú¯ô_é¿r¸ûp÷áî§O;Ÿv6ô7 €¿ÅíÉ(dž¦þeèçÏe=—õ\Ö? ÿQøÂU‹U-Vµ˜f£ÙhºÚsÎíœÛ9wC‹† -VD®ˆ\ùzõëÕ¯W§gKtWmêfú•êWª_I7?èžáª›=ʵ.׺\ëÖZh=`±ïÿkïÎãm®ÿñ«[÷~o>é Ì³„ÌBÈT"’(ÊT®J¦[QI$e¸¡Òm¦Qn7É­¤D ¡¹LÑ¥A®¡2…âp~¬ûǾí}~‡³³Ï>Ïçûñx?<êœõ^{½×9g½÷k¯µž8ç‰s²^~v„ý_ý°è‡E?ÜøÉŸÜøI›WÚ¼Òæ•ZgÕ:«ÖYÅž-öl±gË6+Û¬l³Ð—7¾¼ñåÃRÌ»–ìZ²kÉѹ›­´:Ðê@|ÿ¼½øíÅo/ž¾^W|É÷ývßo÷ý–l?íojSû›¢~ZCÏ~—=¶ì±eE]¥C·Ý:tËÎUFvÙud×ø’Ï]tî¢sùè y‹X @ÞQ(£PF¡Y•gUžUùì_Îþåì_Ò¤òÊÊ++¯ ÿþ}àïxd<ú¡]N\qÏä=“÷L³eÌ–1[B|~d­Ú¼ió¦Í›Æ×$Qu>²rÒ*ç:{òÀ‰­IVÊÙvÒ¶“¶”ù¾§Qbg1Æ_=Ìt ûËYß}ȹ»ðbýë¿X¿úðêë?²>Y®V¹Zåj…ÿ0ã‡?Ìȉz~ZñÓŠŸVŒªÃçÏ}þÜçÏY+…ã]UtUÑUñ%Ï>~öñ³Ož0ò—r¿”û¥\ÔâÏNªpR…“Â_®Dý,_®|¹ò墂õ9²âê¢îéò]Ëw-ße@^!ìØ¸cãŽÝÇu×}\Z 3ínå•xÍ£k]óh˜e˜¨ö,ò]‘ïŠ|[prö¥£S“ÌËYßq}ÇõÜòìÜ—07¶ä°[mÔ‡«ð1…)|L¢îÅöÛwlßæ1'¶–îYºgéž9Ñgnøò†/oø2þŠõ7ÔßPCvJþ&í›´o"_Q˜ž<pì>ÇñÂj‰½bæŒX2Éü%ó³S~˜_òÐw†¾3ôó€È+À`’Ú¯sûëÜ&Ú k2,í(º Ýí.hwt"ÉìHÔÃܯ°Pvεê´?Nûã´? €“³/šD•>äâÃDÝ3Vœ±âŒáßÝèö@·{÷+¨X bìÜ‘Ÿkÿ\ûçÚ-j´¨Ñ¢FNÿN ûÔf¿?„YÔ§M?múiÓã¯2`쀱Æf§MÞ©ôN¥w*E½Š°(}òü…ŠÝy7ÞÄÑGOØŸÙ ÷N¸w½QWœzêÔS§žš+ö›ÖoZ¿iñ%W›PmBµ ›Í 9L, © Ù7dß}YY”5¼-þÞÝïÝýÞÝvnعag˜ó÷SóŸšÿÔ|Õ²UËV-{áìÎ~áì0Ó.v_”ðõY¯m^ €Ãr»QqÎÿÄ];*#ìîvù ˆ]Q¿¸å‹[¾¸å¡7zó¡7£b¼¨…Rfü—’‡>2/-ê»r®çç·øÒ§/}úÒ§ãçŽß|ßÍ÷Ý|_XR8,N~–ï-vo±{‹eeç°#xÔ‡<æ=>ïñy‡ 6„‹‹×,^³xÍ_/ùë%½$+Áêä''?9ùÉÃm°ËoìzQ:ì\°sÁçn{î¶çn‹ýÍ~r?nùqË[ŽûxÜÇã>Ž ¤£f-‡×›þ~ÇF]%씜^úäOžñäQK[Ç~åÒ™Kg.9ì©aO {*ìFö‡þï¾ï*¨X Ñ3žiôLè]ÜþÈíÜþu…¯+|]!Q?Q3¡ƒ™ƒgž98±?³3î™qÏŒ{¢®~^²sŰ“tTù^þáå^nd@ò €HR!¸Í<à ‹Bï°wÂÞ ‰ãC©ì—™­”ý+ö]ÐwAßYi‡­l½`ëY)9T9=§ö蓹µäi~ €c{¶Ø³Åž}»ÞÛõÞ®—yi™‡‘QBx[Ÿ¨òŸyã™7žy#óÒb—äÍz;Ü÷§ûþtߟ2ßÇ÷µI¯MzmRÖ[;ØYßïüÈúímnmsk›Ì—hÎN‹*?Ì“^xÜÂã×´ÓþMûgVtøØJvjÛ±IÇ&›D•»@t¢~Ã"?.³Èù‘•>ÜU~ø… H~`0I*ó…@,n°¸Áâ]Kv-Ùµ$;oF?°îu¬Ë|î`ÖKË[ðG~táGf%úMo–Þ,½Ù‘½ŠØ#Ày±>G?¾óý›ïßœõò¯øéŠŸ®ø)+%.1¸Äà‡[çÌC¾ÿ.›e?ÌøaÆ3Bȵ{qX’ýïu¡ŒB…2o‡1[Æl³åÈÊoub«[_fñ)ŧŸ²¿Ãþû;d§¿õº´×¥½.úX@b—Å.ºªèª¢«²ó3Õ¬}³öÍÚG•ŸØÙÆÁWu¾ªóU¨+¶,Ó²LË2Ù)_Ï}=÷õŒjíÖË[/o½\ @ò €HRSþ>åïSþžù¾ì¿ ýï¿þû¯ÿþkæñ@ÖKË[ðÕ³¯ž}õì¨ï­:¹ê䪓w®Ú¹jg¶’°Ô홟ùð™ €ób}Žf;‡^æôg½Ì0W8ó’Ë6+Û¬l³¬Ïbõê믾þêë™ÏWÎzi{ëooýí­¨Òž:å©Sž:%ûwù÷¿ü}`ÔUÊ—+_®|¹Ã½JØ‘=,Í_fÛ¶ýgÛf¿¿%jvïá ‹'nmëfÔͨÙ«Ã:‰ýyÜÒkK¯-½2ß÷:ûW‰ zc¼ää%'/ ‹±¥ÌÀ`’ÔM³nšuӬعe±GXh4aXfËe½°¼‡½{3_^ûÙ'ž}âÙ'UóøÅlÀy¥>G³ÿ^åïUþ^åpKó,3/yìú±ëÇ®?²:¯»lÝeë.Ë~;„Ù±U^­òj•WãK¨·­Þ¶zÛÂ&uïf?ûøÙÇGÕyåç+?_ùyÖK[PtAÑE£J»åª[®ºåªì÷ÏRƒJ *5(+3wÃòõóGÍ5ÔÆÕWo\Ÿß¾cûŽí;Ö<ºæÑ5†}üجüþ™öÇiœöǬ×6ênaŠÄþ<îØ¸cãŽQW¬>¼úðêó•ؽ„ã…e¨RHf`0ùZ˜É”ßà9ïÏyÎûQßU±@Å „…@Uσe–=Xö´é§M?mº8oÕçh¶sì\Þ¬—újæ%Ï{|Þãó?²:g>›6ëef¾cñÄÑGOØûj©>:äÑ!ÉúüðÁü0ªþ‡[Z¼Íƒ6ÚüÿýÖßPCý ±ûÔf©è˜úd¾”tøXLXf9+gW'ö·hVz{Ø=:ûW™üää''?u•Øõ9Œ"HN`0ùÚ›Þìôf§üj8ªá¨†Qß5äÏCþ<äÏ9QÛ¬ìœ[­-N†vþö»o¿ûö»œ¨ç7iߤ}“–»ípߟîûÓ}Š*áÃË?¼üÃËsâþ¶¿©ýMíoŠ¿bŸý}ö÷ÙŸõ+Ù7dß}Qõ¾óóŸïœú¿?òý‘ïŒ*¿áœ†sÎ ‹*gç*Kæ/™¿d~æw³ÿýýïïV®Rxgá…wFöŠB…2 %ön†Ó$jÛ‚(ÏÝöÜmÏÝu•ØßäF$'°€|',Äúbýë¿X¿Ò·•¾­ôm~ €Ïïw~¿óûE}×ôç§??ýùœ¨óŒ{fÜ3ãpÞªÏÑlçnåD=³Sr¢Ú¡ÇÐC{ *aÛIÛNÚvRNÜÁÞÕ{Wï]=þŠm^ióJ›W²^NÇ&›tlUÿ·Z½Õê­VÙ©gX’zÄ ‡>~œòã”§$ªÿßÓàž÷4ˆz-aŸãïç}?ïûy™—SrDÉ%GD•f`'ön†²£®Xbb‰‰%&fÿ*oô~£÷½£®Ò9½szçt0ÉL, ¥¤7Ko–Þ,Ìö ÄcWàô§Hž¸vÍÚ5k×Ìz TyµÊ«U^*mÃ1ŽÙpLÞúk2²ëÈ®#»F½¢¿”üKÉ¿”ÌüþÖ)[§lÈ™·^°õ‚­$¶Î›Fl±)rÎq¨Oö¯òu…¯+|]!ê*Õ&T›Pm‚ÑÉL, øuî¯s{Ç‹w¼xÇ‹NªpR…“„3ó[ö‰<šË–™/^*NÎú€U~©A¥•”<pÅwTÜ‘õÈ|¹ãœ˜íšÓ^›ôÚ¤×&eg†t泺×]¶î²u—%¶Îkï\{çÚ;£®xV÷³ºŸÕ=ûW ’G]¥L‡2Êt02 ™ €À$µ…¿.üuᯧM?múiÓ³u„è¢yÓæM›7í7­ß´~ÓfUžUyVåÝÓwOß==¿À¥{–îYºçÑ€÷õÜ×s_OpÞª8QåŸ2÷”¹§ÌMž8Ô'ë-Pxgá…wF•–ßÏ[_6®Þ¸zãê¨Wf ™ €À$©°ÈsÖçÌ…E){Wï]½wõÖ=°îuo×{»ÞÛõâßâ¿Vž € eÊ(tdWÌ|)ÚœX¶4ø©ùOÍj.Î[õ'ªüÌ÷‹Ý3yÏä=““ùwr˜÷UÿŸkÿ\ûçÚyë¯LX["ê¼ää%'/ɼ„aO {jØSQ%L~úóÓŸOìÏì3o<óÆ3oD]qè;CßúNö¯îfÔUÊ6+Û¬l ûÈoÀ`’N˜'ZurÕÉU'G½æ¢õ9¡Ï }NXýÚê×V¿– ¡ÔÑ í‚«GvÅ&Ú k2,ê»B{æÄýâ–/nùâpÞª8Qå7XÜ`qƒÅQ%|ûÝ·ß}›Ô³*Çl¢ê¿¾ãúŽë;æ­¿5aµƒ¨WûÌKxü¢Ç/zü¢¨Æ®»~ìúÄþÌŽûxÜÇã>ŽºâcW¸æƒk>¸&ê*g>|æÃg>l¬@2 €H:}ñ×õÖóø©ã§ŽŸšØ+æÅxöñ³Ÿ}ü‘]qâ艣'ŽŽú®Á%—\"'ê<â†7Œ¸Aœ·ê#NTù£Žj8ªaT ³÷ÌÞ3{O2ÿfë® £ê?ÔüQóGYÉ+¾_ñýŠïŸ:åÐGX:>'^ÑÒ™Kg.õŠ.}úÒ§/}:óv-Ùµd×’¨ÝÃRÉË,{°lª[(£PF¡rµÊÕ*W+jÁêí;¶ïؾ#û—zmÒk“^›”–€Ü%tÎXqÆŠ3VD½õ¼üØåÇ.?6Q¡Î†vnØyt"ÉôféÍÒ¶oâ _Þðå _YÍßìôf§7;E}WÅ T,âNTmC’ùÞÃàä¬8Q忲ö•µ¯¬*¡çÕ=¯îyubïï÷ó¾Ÿ÷ý¼°ä{ü±è‡E?,ú!ë¥ 3|Ìð1Qõö‰gŸxö‰#«ç½ßèýF晴ï-vo±{‹åDÏ¿»ËÝ]îîu݇_xø…‡_ÈÊu3Ÿ•{¸íù~Îü%ó—ÌÏ|¶q¢Z&vˆx±å1b 9 €À$âSŠO)>%ê­ç_çþ:÷×¹‰ºÖ‹õ_¬ÿbý£I®½síkïÌ~C DÍËJÍìµRƒJ *5(ê{gÜ3ãž÷$ªc—ìç­ú€Uþϵ®ýsí0S3¾„"ßù®Èw‰½¿QsŽ Sø˜ÂÇ„úd½´Ì÷»}è͇Þ|èÍ#«ÿîé»§ïž5¶þ†úêoHlË„¤Ä–oÍ£k]óhV®;åïSþ>åïQå ;`쀱ٯÿ_/ùë%½$ê*ytÈ£CÕJ~øà‡~u­'Îyâœ'ÎÌÀ`’N˜õÖóÊÏW~¾òóì_eK¯-½¶ôªÑ£F=]UtUÑU™GªÙÓ|ÜÇã>÷qöÃÔA}õÔ7ê{«N®:¹êäì×6Ì{{F €ób}À‰-ÿʯ®üêʯr:,Ü^`{í¢>&rî¢s»èpË »üFÕ|ÈŸ‡üyÈŸ³SóÌ÷Hžóþœ÷缟¨^ù ×s¾9ç›s¾Ézi?ÌøaÆ3¢J iÚp̆c6sdµÝ¸zãê«KŽ(9¢äˆøòCpþã”§ü8%Q½=önÆûèÂ.üèB0ÉL, é4k߬}³öQo=Ç.Úydå‡yo!Il$YmBµ Õ&D•“ýyl Š.(º hìLÁìÔ<ó8'èö@·º=:{jØSÞJ˲¬—|4ƒÉ„íâ™K¯.yj"~äû#ß™yiÿØôMÿØtdõÜßa‡ý:6騤c“¨òcW>ÈzÉaYøKL,11¾ÌØßÛGVógÞxægÞˆªsl˜ûæõ–éP¦C™Q׊]$?ë%_¿õú­×o*ó’—/yù’—¬þ±ßoè;CßúÎÑù+î~ècÆ*$3°€¤s{ñÛ‹ß^<êÍî°€ê»ï½ûÞ»ïnÉa§É¬ìDkÓˆM#6ÈJùÝÇu×}\æ¥õ9¡Ï }N8Ü ÌW+öl±g‹=ÛÙ¥2Ÿxd1ðïøûÀÃ~“9óÅæO8ÙZ,±å_ñÓ?]ñSTi…wÞYø¿{“gÊ(”Q(+en;iÛIÛNŠý /ÌÅÏÎ~äQótÃSÂbÎGVrø˜E‹-j´¨Uÿºu3êfY›¿6éµI¯M*_®|¹òå¢Ê¿øë‹¿¾øë#«Øq9ó~r]Õëª^W5+(9Pó@Í53_ö9Ì-þÏÄÿLüÏÄDõóp£>f>X`”@ò €H:ë.[wÙºË2=6 YxÜÂã·aç†v†9j¿”û¥Ü/åÂbÑ¿ðð ¿Ðê@«­dþ6zVâÏÌ߸ŸUyVåY•³sžúî©ïžúnø÷×|pÍׄyÉáÍ÷¯ê|Uç«:ÓöNÛ;moÔLåÌgËe= ØzÁÖ ¶^•:WÜQqGÅáߟÔý¤î'uC;gòžÉë;®ï¸¾ã#·?rû#·Ÿ±âŒg¬ˆ/á‚v´» ]rÀ™ê7ͺiÖM³Â²º!Þ‹¾æÜO8ÙZ,±å‡Ÿ¬üÜ5z¦Ñ3ž ;¼†Ù«aÿÔü§æïÝýÞÝïÝ}Oƒ{ÜÓ óh3,PÿY‘ÏŠ|V$;mrçõw^çõQWY:séÌ¥3³ÓÎYY™ Ö+k_YûÊÚÏŸûü¹ÏŸ ¿?w®Ú¹jçªðwdÚ§ýqÚÛßÔþ¦ö7e^N­³jUë¬ØûrdõÏ|?à „Ü/üÒÉ/üÝÒï–~·ô·á¿ ÿmø×¾®ðu…ðqŸ&Ú k2,órÂ^¼‰ýyw0êŠw]yוw]iñg’ŸX @’Ùudב]ÓrL©A¥•4ûøÙÇÏ>>vßÍlÍU-”Q(£Ðy÷Ðyå\ÍÃÀႉ ¥7t9\ ç4œÓpNP“3nÚ¿iÿ¦ýsn¾òá'[‹åDùË]~ìòcÓrXø¸ÌÌÁ3Ïœ¨%”£®uÿæû7ß¿9ûWy«Õ[­Þj•vT„àc_Wö{Kæ3w³ï†/oøò†/sâç=öÆ[{çÚ;×Þ) ù €À$©°æ_Jþ¥ä_J&ö­ó0£.Ì ÿåùÎÏw~¾sÖKxùÇ—|ùǨšg}NmÖ…9'Žž8zâèØ%aJ…¹È‰­yãñÇ7æg'óз¶¹µÍ­mÀ9]p¼/nùâ–/nɉ˜0ì›;{Ïì=³÷$¶WÄîh«wõÞÕ{WOT›/úaÑ‹~ȹµÍ+m^ióÊæA›m”ØŸ¬°ENÔùæûn¾ïæûÂ"Þ9ñÛ öÆj°¸Áâ‹LÈ+À`’[¡ŒB…bÃŒ#{Ó¼òÊÊ++¯ fâ­óB…2 uNïœÞ9=ûp–i]|õÈjö¼ŒZXµtÏÌŽ#kòØyº±KmîŒÃ0GmöNˆmíä €cë)ιš€³ÒKŽ(9¢äˆ#û~Û\õéUŸ^õiX¨<'úÌØõc×]õÓ¦Ÿ6ý´é‰½bX9”Yᤠ'U8);j²uÊÖ)æC‡%ýsúg*,R}¸{ÏǪ]³vÍÚ5_¿öõk_¿6§ÿÚV\urÕÉQ+O˜û @^!gü:÷×¹¿Î #Ø+~ºâ§+~ª·­Þ¶zÛÂΗa×ðæuØañºª×U½®jxÓ<6Bˆ*?ökZ–iY¦e™Š*¨X Da®Ø5m¯i{MÛ0c/ë5ÿqÊS~œ»£pÍókž_óüÓž2÷”¹§Ì ËžóÍ9ßœóM¨ù’ùKæ/™ý6ß4bÓˆMÿ ¢º|Öå³.Ÿ…ùÓ!Œ/1±ÄÄCD}~¿óûßïÞb÷»·XÎÅN9-vÞ^»¿µû[»¿…ئسŞ-öl¸kmÿÙöŸmÿÙç„>'ô9ÁO%9!öã#}ô]ÐwAø~¿…ßuá÷^øé»ì¼Ëλì¼ÉON~rò“±¿mr®†ß¤}“öMd`¹xÍâ5‹×äÄuc?¾væûû†¿á7jˆÏëª[¨î俽øíÅo/¾ì±e-{,¬-qô;ņÍoxãÀ[/o½¼õòêë¯><ü¿m¾ïáoM˜}tþ ¼ûÞ»ï½û^ÔzbWqð @ò €ÈóŽæœ¿¼Ró¼ÛæÉÿJýÄ‘l?w¹Õ3/þúâ¯/þ:¾&מyí™×ž™<³ÕýžÉŠðÁ£øš\òò%/_ò²Ÿ>ò°8lsÿ5÷_sÿµ÷°Lä¿ü}àïÜòø»9ÔüQóG¹›ä-`0pØÂ²ÆÇ7ßxü‘í•N2w*þ6íß´Óþaj­@Þ"GhöžÙ{f¡×¥½.íu©™£É/öNÅšóþœ÷ç¼ï €ÀÀ‘*”Q(£ÐYÝÏê~V÷Ø÷N™{ÊÜSæn;iÛIÛNÒHÉ)Üp§bï]ó¦Í›6ojî/y—X dËÂã·ð¸øwîxñŽïxÑ,Òä4~êø©ã§Æßµ…¿.üuá¯îy—X $À•_]ùÕ•_žÛP¦C™e:ˆ“Í/å~)÷K¹Ø»ô]ÐwAßÚ€¼N,`ÓˆM#6ˆÏá¶Ón;í¶Ó´Oòw$ö•«U®V¹Z›m´yÀ€¼N,fÆ=3î™qOì{%&–˜Xb¢X1„ˆ·äˆ’#JþOT?sðÌÁ3»G¤°H°cŒ06ö‡›ï»ù¾›ïÓ2¹kØSÞöTì}ÔwPßA}µ ©D,l÷ôÝÓwOï94oÚ¼ió¦­—·^Þz¹9¦¹eÇÆwlŒ½ v.ع`ìÒJ¤°H`0"À` E€À@Š €€!)B,R„X ¤°H`0"À` E€À@Š €€!)B,R„X ¤°H`0"À` E€À@Š €€!)B,R„X ¤°H`0"À` E€À@Š €€!)B,R„X ¤°H`0"À` E€À@Š €€!)Bü_ï.Íò±,—Ž÷réx?—Žréøð¨åÒñq.ŸäÒñi.ŸåÒ±<—޹t¬Ì¥cU.«úñy.kréX›Kǹtü;—Žu¹t¬Ï¥ãË\:¾Ê¥ãë\:¾É¥cÃQ?¾Í¥cc.ßåÒñ}.?äÒñc.ÿÉ¥cS.›s騒KÇÖ\:~Ê¥ãç£~ü’KǶ\:¶çÒ±#—޹tìÊ¥ã×\:vçÒ±'—޽¹tü–KÇï¹tìË¥cÿQ?Òsé8KÇÁ\:2rçXR —Žcré86—Ž?äÔ!HY`€‘²pàùGÊÀ[;mí´µÓ»KrìXšK‡=‰íFl7âäß8ÿìCœv Î?{¯Î¥#ÿì=œvÎ?û 矆í1œz» çÖÃùgwaû ÛQØ^Âv¶‹pní"œö¶s°=ƒílŸ`ûçÖ>Áv¶7pÒï ¼uÐÖA[¥ì `r‚ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„ E€R„8„-w¶ÜÙrÙ–ýaÙ–Ž^:zéèï_úþ¥ï_Ò2ÓÂØ;ŒÃØ<ŒÏµ Y!€|áàòƒË.ÿw—wùw—©'N=qê‰]Îïr~—óÓä¼Åç->oñƒ{Üûàޕǯ<~åñûÆí·oœ–€06ãä0fãçDÆÃØ>ŒóØ?Œÿµ<@þ$€T´0caÆÂºÔý£îê ¨3 NZ.¹tÎ¥s.³à‹_,ø"½`zÁô‚n©-Œ{Ã8Œ‡sk4žÂsAxFpw ±âÿþ.ùÃ’?,ùƒ–!w € EìØ¸cãŽÌ~dö#³Ó’Øø¢ã‹Ž/ºy׿]›w¹k¤†0¾ cÝd‡ç…ðìà®@ö €IN`ÈÃvmÙµe×–»kÜ]ãîÙy¨ë Õû”¿füÎJ?}Þ³ÅÎû¥Þžùû/Üۨ颯/nÛ¸Ùâ«/Þ¸×3;MiôÄÌ&íKÖþîrÍ¿«ñu¯ok^P±Þ)O©\øâ#»îЇ‡><ôá­×o½~ëõî&yKdž1푇‹Ì?yNÚ®M;Õ+SîüÅÃî¨üåîRmÐC¦–©Q÷ê ÏLªù×¾ž)Só’>O?1ïô­Ýžš´¯ê–v]nh[iEÝQíþUê›ì<„çˆðLánÀ‘“œÀ×Ï(žQü…/x¡Àá¾Å3²Å™¿W;ïƒ9—ÔkzLÆ Úž–‘1p`Û¶‰:¯øW÷jg}zg»æ jÜX¸rÚÍif½nï}xïÃ{÷Ü?rÿH7€äÆ«aìzñÓv§5k¿qèÁÊ—^3àåÖµ¿;víÚFvn±¶O£òžø×?j=ÔºÎÀ +–:Ü'…ð|ž5ÜeÈ:0ÉI yÆ÷Û¿ßþýöï´x§Å;Yy§ÿõu«üéêJ=Š6»<±AoÖÏßèݬåm·üræ—Õf¥Î¥O,}bé?ÿùóŸ?ÿÙ y„1j¯fedÛúÏ V,4´þ;ëë]Ÿà¸7Ëçk'Ϲ¨Nó&ït_QvwVêž5Âs‡;Y!&9 € ˜÷ö¼·ç½•·lÆ.jº¬ú¾ŸZ_™vöòÜ }£Î»æ÷]Ûzô#eÎy½ö'Yy-SO˜zÂÔ2Ò3Ò3ÒõrAzFzFz—feÛù×1ݪ¼|ëŒO¦68'·Bߨóˆï 8£hÛ¥ƒï­tAV^KxÑ s`’“’ÔÁwÜyG¹;ÊÝQ.ó·f®º¸NáJ¶üåŠËξ*ÙBߨóîg¯þ{ëm·ý¡É±Õ6eþêúöèÛ£oß7ÿ¾ù÷ÍzGG†±hæãÕsÇþõÉŠwzà³& îO¶Ð7ê<¼þÒ5õ—¹ì’«ÊvÌüÕ…ç‘ðl¢W@<0ÉI Igçý÷wîóTŸ§ú<•ùÛ1KÞêÒ½ñƼúF×Tí±ºÙÊR‹N.Xä–¨WÚx~ãùçï¼cç;ïÐCÈ9aÌÆŸQ£ÓSª—Ø[øÝë&Í-PçÞ¼úFûµxööšfþÜžMÂsбÀ$'0$‘}/ì{aß îíto§{£Þ|éR«z¡òMwì[¿u™¼ýÆž÷wì?³M£¡4uÚÒ¨×~j«S[ÚjûÊí+·¯Ô[H¬0Î cΨi«c®ZX¡àè6«~ixs^~cÏ#W\ûŒôºEÏÛYꭨמSÂ3‹Þ˜ä$€¤p ß~ú]òê%¯^òjÔ.w^ÔüÌ7ümàŸÚL¥è7þüìsíN­_<ªª ®6¸ÚàÝÃvÛ=LÏ ûÂØ2Œ3£F¡Ý~¸ghµcS)ô=Äùø5éþ¯ý7_¹[T;„g–ðü¢ç€˜ä$€¤0´øÐâC##Ïm»«Þå©úÆŸßÞÖù³3#w\kÿ@ûÚ?¾=}{úvý€#Æ“al5ò¼2cÚšsS<ú;_zù]T½=ªMÂó‹þ`’“rÙ´™ÓfN›õÆÊŒÿkw~ýZù-ú=/¾õâ1ûDµÏ­Ån-vk1½€#Æ“Q£Í«k<óTÍëò[ô{î~Ê=ïU+Õ>áYF/ ?“œÀkVöYÙged´ùH“s–Ô^Ÿ£ßØó¼µÖh¸ ª­æ}0ïƒyèQd]CF0ÿòäc¿œþP~Ž~cÏ;fp•yQmžkô(ò'0ÉI ¹`ﺽëö®‹zåºNgT«ÒKè~至'Ô.Õn›÷nÞ»y¯Þ@æÂ¸1jTÙéšÛþU¥ŽÐ7þÜü¸Þw–ÿ¿¨v Ï8zù8QæÍš7kެІãŸÿÜøç¶µÛÖn[;-sdÀ Fÿ8úÇÑ?Æ+}R¼àÉüþZÿ"ç®÷â|ýÀmO뺩úœòSã[¯KÑ.E»Õ»È\7Æ'ëþØþÊÒÇŽm±öŠFåŽñçÛÇ­|¢a£’Ê?_´`|ë…g½ €üFœ}.>pñ‹£>d& >2`8ªÖÿ¶þ·õ¿E h¾êwÙ„7 z3?oëyU£sÆEµá¢+]¹èJ= €xa¬5’¼åþöŸqŸ 7óó Ǿù纑ËA‡ç= €üCœ}±s3' Î:0Uíæ·›ßn~üðå¡oÏ_»ˆp7ëçùõ/|¡Ñ‰‡ vNëœÖ9ý–ô[ÒoÑßÂø0Œã‡}Z?Qèô…»Y?wtÛŒ*µã[2<ïèoäàì nwÓ²Lœ90%Ë»,ï²¼KÔeßý´9I¬{çÕ{´mvöÞJÓK_ßž/W{¹ÚËÕô:‚0>Œ7VýºÉ“Å3Æ^»vN#ûþÎrÐÛWõjØ+êé&<ûèuäàÄ'ŠŽ’ö•ÚWj_)~€òf÷N_4zW {dçµïõܼnÔàïÀ/~9ð‹¾Ÿ…1aÔˆqp—y=ë¬èÙùŠw§ÎªqA|«†g}€ü@œs„ÁÙ!€÷íƒß>øíƒñÑb¯¹³ð}û ø¬Í&QnvÎþSuM¹Qñ-¼lƲËfèùYÆkÿ­MãRg q³sóÖšÛþZô¬S)\.¾…Ãs@jÂàÃ%€7fϘ=cöb™âj0L|›ýóвÝ~=kV| wšÔiR§Iz @~Æ„ñcÅkªÌþ¤öb!nöÏ—mšÜ ú‹ñ-žƒô@R›øèg…rPúãé§?5ìØ{k¿çöß&à|ÎÀJmK?½ÈÜÂÏÇ·óö¶ß°ý½ ¿ ãÀøñaÑOÙW¸ÞØjk›4*!¾Íþù¶—/jðeÔSOx&ÒHUàÜ% Ž"€´º÷êÞ«{Ç2†¼ÚàÄ*? n{žZ÷ÜukÅ·öœUsVÍY¥7ä7a?>ì²~|ÿÓf n{nQ½Ï„ò×Å·vx&ÒHUàä! Ž%€4ñ¸‰ÇM<.~`ñÉæK7Ý-²Mìù?-ûÔoõR|kwÔuRW Aä;a?>öê»ÍêŸ'²MìyÐÔY•k·ŒoíðL¤7ªÀÉI,€TiA¥•Ä&~Û×ïãsg‹l|ž?ðÂ¶ÒÆ¦5M;ýKϵLo™ÞRŸÈÂØïïêµMœVilŸµO4ª!²Mìùöê+2–ˆoòðL¤OªÀÉ/†Á`È»÷íÞ·{_üÐáìz•z•>]X›sçáe}Võø–ÿnÂw¾› gäaìwˆÑøËýæTx\X›s窷7þ­ø†ø–ÏGz&©Gœ·äŸ0X 9b݃ë\÷`üpáþZ ¬Õ/‚Òw*uÞxfߨº-?¶Û]g]—•ï}õõŽW4<7ö{?+Ò­ÞY“áu½ñf§©¦Å·ü›eß,ûfY= ?c¿ø1áçž^ãŒÜHG•ÿtHƒAå®­^éäu¡Vµ^j½´äöÿŸùµ+VÚ°s¥-u+Ö#|Wë[®+YwÌkÚ6Üœ<pÇ·ž~ê«ñ-žôLR8ïJí0X 9b“æb¿±¥çt¹«É1É”¦7pl›k*(ö—¢ßÇÖ0+ßÛgíú•º‡¯o°¸ì%zeý{súüí®Þ[ÞßòwmºkÓ]›ôL€ü ŒýâÇ„Ck½³²ÞàdJÿ[¡qiÿNk[è¯o÷ä ïUÚ¾æ”%fž{c«·Ô«ùwýs¿ÛžÝVó›ø–ÏGz&©GœR/ @ޏçÅ{^¼çÅC,D<©÷Š–_$ςɱuk8§ÜÉ%îÏüëwO¿úï­·•Qôþ"uÃwÝÝ¥ùž›“'ÞSñê·Î-ßò=Þïñ~÷õL€ü ŒýâÇ„£>ùì©Ï$O\[·â-Ê _ٵ݄*§}’lÑo8ݾ°j½Ùñ-žôLR8õ¤F,€1àéOx:~(°ë¥¾«Zß–<ðë×vªÔ¨k|=£¾þùÎí7œqjøšÂǤ Jk»açåÿnyNò¼¢ƒí,kó]ü+ª5¼ÖðZÃõL€ü ŒýâÇ„c^^3¨áöä‰Kã—ƒŽuÇTÿ|TÃw«þ»Éäâïóóy³K½”Ì{ßúô'“œßòáùHÏ õ€S[Þ ƒÀ#ÎÿáüÎÿ!þÏÿþÚý§¶©“ÙöŽZúü~U>(Û"ü÷-½®èyö•E¾+\6mNø¿sÞïø§†…’óUd¾°žép8‡Ã‘ŽC¼ë–Ä{‡óõǼ޾nŸØeŸƒ°ôˆýïÿzFï䀣öÏGz¦Ãáp8òècʧüqʵLê¯ÝòÚ-¯Ý2ðØÇ<6ëÑoøú|´0¤¶OxzÀÓñòw½ÔwUëÛ’34½§Ã¾ƒB= ïL{7mTø÷£CZ7®S*ü»ÂIÅŽ/ú⾞ý;›‘œ¯â`ûËÚ|ßòµ†×^k¸ž „±_ü˜pÌËk5Üžt³f«>ªá»ÕœUµÄù¡žuþ_Ûò¥® Ñolý“?¾õéO&78;¾åÃó‘ž @ꉚ~ eRCnÇ?7þ¹ñÏe=ô _ôCßX`È÷¼xÏ‹÷¼xˆ‰“z¯hùErF§{&_½éÜÓJŽ(z‘ÿ™»ÜöŸ§^Yæêðï!ûT­²'ü;I_EÅ«ß:·`|Ë÷x¿Çû=Þ×3òƒ0ö‹Žúä³§<“l¡é F<µL¨a±¥ÿ_‘jÃú.ž]¿f|ýÿ²ëñ¿þr2ÀC·/¬Zov|ÍÃó‘ž @ê§ž¼úÆ@Ž˜;i“â‡KÏérW“c’yñäÿY¨­}…‰¥ Åþ—÷Gv}»É›É\ÿowõnÜòÖø–¿kÓ]›îÚ¤gäaì?&Zë•õ'O\zíWs>©ÓµÈ¢“ßMûï‡,»¾9á—Ó~ï[ïõóW–nþKé7O\ôבï}\üŒß’3îwÛ³Ûj~ßòáùHÏ õ€SCj„¾±À#Ö=¸îÁuÆ îÿ¡ÕÀZý’9@}áìó›žÑ3¾æuÊ–žVüädžûÎo¼Ùij£iñõ³ì›eß,«gäaì?&¼bøÔÓkœ‘{垻꧆7Wy¼áóÅ[„ºÕ¼ôì¿–5ö¤µ…ýÏRÏáÿžrcÉ› ™üËAw¯wÌkÚ6Ü\½þYÛJ\ÿ?»—ÿtHƒAÉýÞ^}EFÃñMž‰ôIR•8ùåŸÐ7–rÐÄã&7ñ¸øÄ'›/]Ütw2‡©o¬×ãÔsBmÏù¦Rz黓îïZö©ßê¥øÖî:©ë¤®öÈwÂ80~|8ìÕw›Õ?/wãÒ#[Æ9þ»’g9èASgU®}ˆÐ=<é¤*prÊŸ¡o,0ä Õ½W÷^Ý;~01äÕ'Vù19cÔ=“¯Þtîie:œ<µÈêPÛG‡´n\§TòÀSëž{ n­øÖž³jΪ9«ôF€ü&ŒãLJ]ÖïÚÌäÜC7ïž[Tï3¡üuñ­ž‰ôFR•8y}c € ¥?žþxúãQ˽·ökqnÏd‹Qÿ±©í_êýwÖrÑU…oNÛòSó+O<û³¤^üùœ•Ú–.~z‘¹…Ÿoçí7l¿aû z#@~Æñãâ7ž²¯p½±ÕÖ6iTBp›ýóm7._Ôà˨§žðL¤7ªÀ¹KèE 9nÌž1{Æì‰j¼\ã‚B †åntº}ÇUŸžóÍîéWÿ½õ¶.¼äæ½+¯,~ÍÉB ¯ú´NËJéÉ?÷wEÙn¿ž5+¾…;Mê4©“ÅŸòµ0&Œ+^Seö'µ‹o³¾lÓäÕ_Œoáð¤ÚÀGŸÐ7+Àã¾}ðÛ¿}0~ØQìÕ"w¾ï`ŸŸµÙ”[Ñé¤Ö-:׬_·Ò=O>·È“ë.ëuuó¥I=÷7càÀ¶m;ý§êšr£â_ŲËf,›¡ägaL?V¬ý·6K)¾ÍÎyÌ[knkøkѳNy¤p¹øÏAz ©M|t}—Ž’ö•ÚWj_)~ òf÷N_4z7·¢ÓÇ/j½µÎ„"ß.›6'Ô§iÿò«Kþãƒk.)ÞdGòÏý]û^ÏÁÍëF òürà—¿è{ùYFw™×³Î Qxwê¬Ä·jxöÑ÷ÈÀ9Gè›`8J–wYÞey—¨¡É¾'úhsRnŨa è­\ñêÙ†ÿ’üÑoÆê=Ú6;{o¥é¥/=ÄòÚÕ^®ör5½€ ŒãÇU¿nòdñŒ±×®Ó¨Ž@7ëçÛ·¯êÕ°WÔÓMxöÑëÈÀ‰%ôM0Uíæ·›ßn~ü0å¡oÏ_»Hò/¶œ<çùõ/|¡Ñ‰‡ñuNëœÖ9ý–ô[ÒoÑßÂø0Œã‡}Z?QèôźY?wtÛŒ*µã[2<ïèoäàìúæ0Uë[ÿÛúߢ._õ»lB‹›„»™Ÿ·õ¼ªÑ9ã¢ÚpÑ•‹®\t¥ž@¼0VŒIÞrÿûϸO¸›ùù†cßüsÝyQmžwô4òpöÍ›5oÖ¼YBßÄ@.ýãèGÿ?ˆ©ôIñ‚'_ðûký‹œ»^Ð{ˆóõ´=­ë¦êsÊOo½.E»íRTï saÜ?ž¬ûcû+K;¶ÅÚ+•ôbÙçq+ŸhبdòÏ-ßzáGï ¿gß‹\|àb¡ob € ì]·wÝÞuQÚë:Q­J/qoüù¡ΞP»hT»mÞ»yïæ½z™ ãÆ¨Qe§knûWûâÜü¸Þw–ÿ¿¨v Ï8zù8Qbç }³O ¹feŸ•}Vö‰zå‘&ç,©½ZèÎóÖ^X£á‚¨¶š÷Á¼æ} Gua 5ÂüË“ýrúCBßp¾èØ1ƒ«D.ûžkô(ò'0ÉI ¹lÚÌi3§ÍŒz3eÆÿµ;¿~­üý.¾õâ1#cò[‹ÝZìÖbzG&Œ'£F›W×x橚×åçè·û)÷¼W­HTû„g½€üLLr@RZ|hñ¡Å£ÞXùçж»ê]žß¢ß··uþìÌQmÒþö´ }{úöôíúG&Œ'ÃØ2jäyeÆ´55ææ·è÷ÒËïú êíQmž_ô“œÀô;Ðï@¿K^½äÕK^z“å΋šŸY㦃¿ üSÛ‚©ý>û\»SëGÆáÕW\mðîa»‡í¦ç}alÆ™Q£Ðn?Ü3´Ú±)ý¿&½Ñÿµÿñ¦ã+w‹j‡ðÌž_ô“œÀDö½°ï…}/tº·Ó½îzÃ¥K­ê…Ê7Ýq°oýÖeR)ôÝß±ÿÌ6†>ÐpÔiK£^û©­Nmuj«í+·¯Ü¾Ro ±Â83Œ9£F¤­Ž¹ja…‚£Û¬ú¥áÍ©ýŽ\ýqí3Òë=og©·¢^{xN Ï,z `’“’ÎþÎû;ïïÜç©>Oõy*-SKÞêÒ½ñƼý®©Úcu³•¥\°È-Q¯´ñüÆóÏßyÇÎ;vÞ¡‡s˜3Œ?£F§§T/±·ð»×Mš[ Î½y=úí×âÙÛk~˜ùsGx6 Ï)zÄ“œÀ¤î<¸óàÎ;ÊÝQîŽr™¿sÕÅu WÚ°å/W\vöUy%ôÝýìÕo½í¶?49¶Ú¦Ì_]ß}{ôíñûæß7ÿ¾Y¯àèãÏ0Í|¼zîØ¿>YñîQ|Ö¤Áýy%ô^éšúËÎ\vÉUe;fþêÂóHx6Ñ+ ž˜ä$€<`ÞÛóÞž÷vZŒ]ÔtYõ}?µ¾2íìåÉúîšßwmëÑ”9çõÚŸdåµL=aê SOÈHÏHÏH×Èéééa\š•lç_Çt«òò­3>™Úàœd }G”xoÀEÛ.|o¥ ²òZÂ3ˆ.™“œÀg|¿ýûíßooñN‹wZ¼“•·lú__÷±ÊŸ®®Ô£h³Ës+ôýö@ïf-o»å—3¿¬Ö0+u.}béKŸøùÏŸÿüùÏî8É#ŒQÃx5+#ÛÖX°b¡¡õßY_ïúÜ }¯<ç¢:Í›¼Ó}EÙÝY©sxÖÏî8d…˜ä$€¼¦xFñŒâ/x¡À ÒÓÈgþ^í¼æ\R¯é1C6h{ZbãÞÿê^í¬Oïl×¼A WN»9í¬×íá½ï}xïþ‘ûGîé&œÂx5Œ]c þ`Úî´fí7=XùÒk¼Üºö Ž{[¬íÓ¨ü€'þõZµ®3ðŠ¥÷I!<_„g w²NLr@¶kË®-»¶Ü]ãîw×Hˆ®'TïSþšñ8+ýôyÏ;ï—z{æï¿po£¦‹¾¾¸mãf‹¯¾xxã^oÌì4¥Ñ3›´/Yÿù»Ë5ÿ®Æ×½¾­yAÅz§<]¤rá‹ìºCúðЇ·^¿õú­×»›ä-aÆ´G6.2ÿä9i»4íT¯L¹ó»£ò?z”»wJµAW ™Z¦FÝ«+<3©æ_ûnx¦LÍKú<ýļӷv{jÒ¾ª[Úu¹¡m¥uGµûW©o²óž#Â3…» GFLr@ŠØ±qÇÆ™ýÈìGf§%±ñEÇ_tó®Í»6ïr×H a|ƺÉ<Ï áÙÁ]€ì“œÀŠf,ÌXøQ÷ºÔ}@uÔÉ­7˜.séœKç,øbÁ ¾H/˜^0½ ›@j ãÞ0ãá܇gð\žÜH,0ÉI ùÂÁå—\þï.ÿîòï.SOœzâÔ»œßåü.ç'ê­¥óŸ·ø¼Åî}pïƒ{W¿òø•Çï·oܾqZÂØ8Œ“Ø9ŒŸ5cû0Îcþ0þ×òù“8„-w¶ÜÙrÙ–ýaÙ–Ž^:zéèï_úþ¥ï_Ò2ÓÂØ;ŒÃØ<ŒÏµ Y!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!H`€!HÿÆ|ãÞ öW%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/buffer.png000066400000000000000000002214421431412030200246470ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTTɾÿ}Ç™ãèÌè‚J‘ ’“ˆ‚€0`À,L˜æŒY1+"Ì9cF3¢¢˜PL€ˆäþýáÜõ8Ow3( ›öýr­ZwÝ#ÇÞUŸÃ®®ïÞUUD™P….Ù@d`€@FPAd`€@FPAd`€@FPAd`€@FPAd`€@FPAd`€@FPAd`€@FPAd`€@FPAd`€@FPAd`€@FPAd`€@FPAd`€@FPAd`€@FPAd`€@FPAd`€@FPAd`€@FPAXf½mþ¶ùÛæ—î_ºéþ¥]—v]Ú•f“f“fCÏ òÊzœõ8ëqÌo1¿Åüv)èRÐ¥ géÏÒŸ¥Ó3¨¼r>ä|Èùccc©õ¥Ö—Z§ÌM™›2—žAå•ß/¿_~¿˜A1ƒb]R½¤zIõ^³{Íî5£gPyÉÉÉŬY³6:-:-:ív«Û­n·¢gPy§§§ÇÄÅÄÅÄEŸˆ>}âÚÃk¯=¤gP‰===ŠÉ‹É‹É‹ž=7zîë+ÖW¬éTv±z±z±zÑÞÑÞÑÞqsâæÄÍ¡OPéSÝ5¶kl×hhh؜؜Øú*àJ£èDщ¢IÊIÊIÊë^­{µîU»í´; WNÜG¸p±ÚrµåjËÛ¾·}oûÖ/¬_XŸžGÅ)þXü±øã½ƒ÷Þ;¶,lYزŽÏ:>ëø¬¼RÝR»¥vKí僗^>øFذaùùùô<*P”(JõÀúõëÍ:›u6ët­ÑµF×å•jçxçxçø%!KB–„\ºu5*×*×*׊ŽGEK‰H‰H‰ˆØ±+bWO­žZ=µÊ+ÕŽ8X°}ÁöÛ®%\K¸–Ó0§aNCúí±è±è±hgýõwÖ÷1ñ1ñ1)¯TÛeØeØeÌÝ=w÷ÜÝ—c.Ç\ŽÉÖÊÖÊÖ¢ÏQÑž9?s~æ¼gÊž){¦ 0`<À¸¶Km—Ú.eOµÕp«áVÃg†Í ›viû¥í—¶gµËj—ÕŽ>GE{ø<ðyàþ«û¯î¿ê¯á¯á¯QǯŽ_¿²§Úô©éSÓ§S§M6uÚ…QF]•q(ãPÆ!úí圗s^Î9\ópÍÃ5‡ü2ä—!¿Ô›RoJ½)eOµQ+£VF­&¶ŸØ~bûs½Îõ:×ë]õwÕßU§ÏQÑÒ‚Ó‚Ó‚59ÖäX“Àh,ÒX¤±¨ì©Ö × × ç;Îwœïéþ§ûŸîÿ¦õ›ÖoZÓçP€…ªš¨š¨Zlblblb¿è~Ñý¢å¾“ž{vìÙñâÚ‹k/®-Ú\´¹h3ƒƒ¯t[t[t;áU«„WŠŠŠß+Õ£:GuŽ:guÎêœUÁ¹‚sç”ŵ{×î]»èèèü½RÝ®f»šíjžÜyrçÉyãòÆåc\P·6ÞÚxkã˜öcÚiÿ½RÝÊ®•]+»£9GsŽæä¼Ìy™ó’qAY$9&9&9Nl:±éĦß+ÕN.N.N.묰~¶I¶I¶ ゲ¸ôþÑûG§WŸ^}zõï•j{c{c{ã=u÷ÔÝS7spæàÌÁŒ Ê"å)ÿKùßœCsÍ9ô½Rmžcžcž³-s[æ¶Ì·çßž{žqAY<1ybòÄd¡ÃB‡…ß+Õ† 7nؾ)|Søk·×n¯Ý”EjãÔÆ©—m]¶uÙV¥J ”|ûTk7Ôn¨Ý0T/T/T/íTÚ©´SŒ ¾/ñ”FÿýsôÏô ¾/ Àò.ä]È»üü|9[¨¾P}¡úëˆ×¯#5”,«yVó¬æk7®Ý¸v£S=»ÖìZ³k¥MJ›”6‰QCɲeÊ>...äPËMŽ;9ö…Ò ¥JŒJö©¼º­Í¶6ÛÚ9Õc=ÆzŒõx:òéȧ#5”,7%7%7eO»=íö´«³°ÎÂ: …™êa놭¶.eYʲ”eŒJ–¿&MþšC‡4ihnÔܨ)ÐÙµßa¿Ã~‡ï¼?ò>¿«ñ • • •ŽG<©?Ožþ;¤¡ÁöˆW³;˜½>‘ºBßÚ**i½¾m“ CÖ‡ÙöÉ«–W-¯ÚúÕëW¯_]¦æ[«nwÓ6EK¥ËùOugõ­_cptÀÞ-\|½¶¦Mì'·ÑÂз{«eõþòˆ˜p]ÛÙF¥“¹ZmåõD Þ_÷ïöíÚ·k߮όž=3b4ñIþÛü·ùo7ßÞ|{óí2½}~®‘QýGSòìzéklní6ˬîñŸÛ6±Š‹röúÃVõb¯C¶SN¯hßÖæ÷=ñm†ZLXšÚ¼†±á€—64ÖªüRÑúëþ]ï ï ;)wRî0šø¤0¸0¸0x—Ö.­]eÚxßUÑnAýß'ðHoQø†é¦‘Çú†˜Ym’[·È¶ÖE³P[Ûyg¯žmc²÷ïK-N†ëf¼b _'߆Wt†4X¢¤öuÿn[—¶.m]î›ß7¿oÎhⓢĢĢăV­Z•%Õª‹ ¬#´Û·ì÷Äp‰ß™©w§¹lŽy‰Öù™¯˜”ÚÛlÚ„±«‹Lv Ÿ¶0P‘ÏÀq{øºê2G©fuí_÷ïºx¹x¹x%6OlžØœÑÄ'Å·Šoß:žw<ïx^YRÝè/ëªuÚ9uô«©9©£ïìµ:3z­É2°à¹EÍHÛ÷@D°Ñúþ6›¬ /÷ XÙYfûÚS¯6òsðìÕZýšúd}GÅG_¹—C]ûºöu¯W¹^å:«Äø?óDóDóΞ <¨š¨š¨šø•£$k„«N}Æj±ÎµõÓ[59Üßã©åÇó†¶ÚÜ¿íU`»ëla ›UmÚsžãØÑ¯¬6êÜ/ÍgÖÙ¦³Mg[rµäjÉÕñÁó-Ï·<ßÒ|^óyÍKµa—_ߎk.»5qGŽƒMù.H•¾}u$½ÙŒÒVª§Ë•U•U•Oü=ñwFüGîšîšîê‘â‘âQªÂª†n³Mž–ɳjDl*ߩҷv›—«FÖÒÑê¼9 ®ô_„®†] »ƈÿÞŽy;æí˜®q]㺖*!fSÚ ªg`¾{‡qLù.H•¾0㲦…uë7cv/}ªc¯Å^‹½Æˆÿ²,²,²,¸pà^ªMá6èªåÆŒíXhçö½æÕ™‰¶¨½$±ÙV£·¥Oõùë篟¿Îˆÿ>Lþ0ùÃäÀ”êMÄGvýꉢ®¯ohk÷½æÕ95¢«¸T[Uo|¦I·Ò§:Ò?Ò?ÒŸÿävÎíœÛ9H1H1H±4ÙP™n°Ç¼¯Y×ñy«{~¯yuÓ_6\ˆù˰†¯òäc¥OõÁÕW\͈ÿòOåŸÊ?5«Ç¬³z”&šŒ²•Vøè®O1¸ð½æÕÓnßN³ÚÞùÔ¼=º­KŸê½vöÚÙKtGtGÄÞ$2®poáÞ½‹íÛ-¶+M6ô}U§*ÅŠõØayû{Í«‹çù§¸fn¿ßj•yOåê ­åKõPZøÉð“á'EMDMDMw”/ À& ÀßÈþŽû;îïXš[ѼcM{.|{µUçßë&*uÑjñ€ê-~^¶¢¹»q©®e›ý6ûmöŒ¾¬:žq<ãxFi’0}¹ÿýc¯nžþÉéø÷Zœ’ÖfË]ÓbÅZã‰]ÿ^šk ݺ5t«èƒèƒè=çåÏËŸ—/M´ÝÛÝîçawfù°È‰ßkqJZëÐo}ttÇM/ÕB[Ȳe!ËDEEÉ€ì‰={4öhi’àX˧›†ï˜ƒQãÍ2¾×â”´vJÊI–¢®[ê锿Z‚þ9øç"Q‘¨ˆÈ «¯>¼ZªwÄÎ3ÝÒðö“!½«5ë-´yu¾î@—ì}]ݲ¸Ušk™ôqÒÇI kÖ(¬AdObpbpbp©Î"mïÙ¦ÁÙ‡Ä9 m^]pär kÛ#É˪Xy”æZFŽ˜7?o~Þ|2 {’'O>^Û¯¶_m¿’“ æaëúÐ:a¾îÞYB›W7ݽñfÜXÓ‚q·W>“w¬«øÅûöì;8gCΆœ d@ö< xð$@ëw­ßµþcõÀÈÒ©±êˆ¡™‡3÷Ú¼zzèW«´½¶Ø¨´V¬pµäkéúªë«®¯Þwyßå}2 {^l|±ñÅFÓ)¦SL§”œ§_µ<êi^·ñk$* ðwsÐìºZÀnµbŒ;>±³6Ò©;[Ù¿äkqãþÆýÍ»•ïV¾[IP^(C˜(W ¢«EW‹®N4h:Ñ´äÏÿ™·ÕNz«Ó£Ð§¤µYÞ:¶0sß*W÷¿6ûR T T+x_ð¾à=©¨ôTEª"Õ9§çœžsú?Ng¼Û¾¦Öü´Ó'}œ…¶8%õ Ãèº.5§vØPÿ?Σê7«ß¬~³ò‚ó‚ó‚ E¥wStStsÙ…e–]øÅ©ËMÚ¶¼m§ºÌÿØc¡-NI-o8s\·Y·†ÃþãLîÎ:è< gaΜ…„B6„ö íÚç?§ž:û¨î~æYs¡-NI}ƒáÄíV~廒ʵ8%ᄳ¡ µ()Ùh¶mô³ÔmüWé¬ÒYõfæ›™of’J©‰¨‰¨É¤‚I“ þã²]k] ZT®Å)ñvt³»Íüv0Û£Çuyâúÿñ”åÓ{Oï=½G@*¯™+2Wd–<Ê[;Î’7[*ÊH8çÖ¢òΫÓÿ>åî4£ÃµÓÕ_•|½B„>%•Wø/á¿„ÿò%ÿÔá“5U7&XTÞyµ}Öj‡³ýÕó›)z.ùz£££ÉFåµkÒ®I»&•<ÊmÕ'õÓ>7}쟭VÞyõ¤ÚW6XÊÛï^]ý?^b¹êuÕëªÙ¨¼Žt?ÒýȲ<Æá¹¡KÁ±×]ÛVÞyõ‡lß=.?ºme£³¾äëqqq%( À& Àå,·^n½ÜzξξξR—\ëk68ô¡“ïð+ûÕçmn¼ßI—ˆAfGµƒ¤]»ùpóáæÃ³ƒ²ƒ²ƒHKeQP³ fAÍG;í uÑ^-4Ô¯eœïëœ_ÙK¿ÿÚÈnÏåW±M|ªè6’ví ’$5HÊÐÏÐÏÐ'-•EQ»¢vEí||||||¤l]ùÆëlOÛ‡­²8S³²—~ÿµ‘ÝðîñýÝ鵿ôŽ×È­‘[óJÿ•þ+R]i?+~Vül˜ß0¿aR7ZÔroüLY{\hó)•½ôû¯Ö"Éú¾{Ÿqk&–üÅþyÐó çÌ@*XQ¬(vbÌʉ1ÒÆT¯†J‘ÒÄg¡½“š=¥yµ(?` ›ëª‹Îv&Sÿã]œúê?ªOX*—àÁ3‚gHSUÏ:î :)j[9†ÉÒ¼úS¾eº‰éÉÿx§ÖÝZwk‘“ÊeÅÚkWüǃÂÖ!óFìY+KóêÞ >4t|𜒯ýz‡ë®w '•Køoá¿…ÿöûùùt6¹+SóêIIÖֽήޥÿ¡äk}û<ö99©\v%íJÚ•ô¯*é¼ÌÞA¦æÕ¢€7·S]Ú%Y_,ùÚÏÆŸ?ONðu(C˜(—›‚ñã Æ·Ìk™×2OÚdyõæ‰ÆÛE»Ú¸YÈÞ­ôŸ¶8 ÀÍmC’ËSUiý`ÓÒ¦¥MËܹ r!+Ú]´»h·w¦w¦·Ô·æîºÅP©øFü#·ª²·Dõy»CyîÏæÒú¡Q^£¼FyÙϳŸgóH؉‰ 4h:PêsÍÚ—;ø poz>\1.Aö–¨>o›Ž4\¼JêÖ|Ý»+vϘ“1'cÁ´TQª(uÌÑ1GÇH}L§éÈ>­5̦õ»ÝÀjºì-Q}Þö]æahWòûWC^ y5„àßÌé3§Ïœ.õ8m“MZ¡yj~÷\NÈì¼Zàævq¸×ÛÕÿñpúç랯#3·tùÒåK—KÇN3\Ã4ææèG«ºÔ”íyuÂÍ;í}ÿãᆚj>ªIf„/ôuèëÐ×R©œnšg?£É¾µ‹£úÊö¼ÚjÁ«ÃJNuRlRlR,™¾ v,ر@ê#•ÏM3”½ƒšÇ µ#ÛóêáõGš*–œêk—¯]¾v™Ìßáᇇ.õ‘J[Õ?•f§ëõméä-ÛóêGs{y9füÇà Æþû'™Á—¢ a¢\Ž‰Ž‰Ž tè:ÐUê–tm-zÉöMT¼=VËó±Õ2i}â½Þ{½÷úâeÅËŠ—"ak4Öh¬‘´Üôn†¹Ùÿd{qJ¼=gµVÕf³Ôó&[·4. - -dó:šÕnV»Yí¤nI÷kß´ a²½8%ÞZ ž:cc¼´>±*´*´*Ì{•÷*ïù¦eû–í[¶OÚ¶IÕpÏŒQIg¬Íd{‰êóvðøýá&ÁRò¨¦]M»ZÎäœÉ9“É0…µkÖZÚNýÙ®¯~Qã€znu~œyuRîzMÿ'­Oä=å=å=³Ü³Ü³ÜÉ0íÒÜ¥¹KSÚŽHè¬Ó¨èY|#×+?μúaÌÁ_ç—¼û¦ó›Îo:“a:jyÔò¨¥´±Ó´tÎê°¿é„—wü8ójÛ;KW½^rª_†¾ }É·E:7ëܬs³¤ ¤ÓúF½:SÞleüã̫ǽô‡ùF_ņrRß}¢ñDã‰ù¦8¹8¹8©¿‘ÜÜ´›×oŸÓ×÷¶KÝg^ý¶[¿$çÖ:¿©4SúUZÏÜK¹—r/…ü ô(C˜(—ƒ•çWž_y^Ú ã€³ûqKç­ôûy{²W»‰ÖR¿Ø· nÜ’ ÍæÁ›o,mÔ"ÆÍÊ1»ù£•~?o/Ƈî·Ý-­&ˆ&ˆ&"ÁÙ×z_ë}RË ¡ýÏN,øÑJ¿Ÿ·–]f Ü2[Zÿ J”>( Md·Èn‘ݤšGÍñ±Úþ8‹SâíÐ+‡4–úÀGê=ª÷¨.Z.Z.ZN–„ãâú‹ë/J=£kZ½šþòy^œÕ£Ð±Ô>¼Ûx·ñ.n_ܾ¸=YŽ¿þüëÏ¿þ”6j£Fõº¥3[‘0ÛÍüÇœW?ÝtäF³-ÒúÇö®í]Û»…–…–…–dI8ï%ÞK¼'µô;¦Åi¯#M³ÂƯú1çÕvç–Žœ)­tê,ÔY˜ç”ç”çD–„ãaòÃä‡ÉRK¿+Û,¯ç0-ñvšÕös^=áÅåkÞòÏj7“Û#Þ?µGÔQ{㱯~K–„ãyµçÕžW“Zú=¯=´þ༫ë¹<þ1çÕYË´pl4G¥–bš´^ʸ•q+ãYBiP†0Q.“ø^ñ½â{I»Ilï¶ÒLûG^¢ú¼Ý{¾Íe‹ƒÒúê¼Åy‹ó$JnEÜŠ¸!m¤V Ÿ`i2äG.ý~Þžh»ü°umi}uT÷¨îQ]%þxðǃ?¤”®·mÃr~äÒïç­y—Iªë¥nɸÓ~§ýN{%Ï–=[öLê-ÚÌjÐèG.ý~ÞtÛýÊø–´¾ :8t0‰‚t«t«t+©gì=5oTC´*ÀÙÍ„yõ­ð®ÏšKë«Å'Ÿ\|’D Á»ï>¾û(m¤zMóØÞ`Iñ¨ø•®o˜W'·Þ/ß´@êÃzÓô¦é‘(!ÈNÊNÊ–ú`½VÍšÿ¯éªKã0¯¶¹dé‘)ÒújxòðäáÉ$JrssU¶¨lQ‘ð0J£&V¿ÔQŸºýf²•3óêq.Ñ6æã¤¥Úç…Ï Ÿ$J ² ² ² ?~4”01ˆ®[UY5ç°ï{#æÕoþî·×YêaíUÛ«¶WÍÍÍ%W(`à¯ýÚc‘m‘m!íö0QËæž7Qñv^·¦ö†R'‹ï”Þ)½S"]ßíko®o®ÔÂϵ®ÊÚXœoW]œ0Údª´~Kû#í´?H×wûÚ³§`OÁMGMGMGñÑQ?íØÎýˆ£î¦î ,Q}Þ œÙAZªŸª7?ÆÓåséÏÛè^Úþ%õL¾ã±Çc®ïkPÕAUU•°ýOµ­ýÌÁp½òÅÌ¥ÿµËÎò™:['IKõå3Êg”ÉÕ÷¤¤¤+u}Ï4AÎâséÏÛa[ê5^-­ÇÎ;8ïà!·Æú¯gªômäƒéÖC¥Ýœ • • ÙäüémÕÛª·„³$uzvé:è0‹P_p*ð“É×7¬“–êÜÓ¹§sO“·o#0-0-0M|šíï¡ñå§Ò·ƒM÷70.-ÕÙ½²{e÷"o߯´UÓVM[%> ýÍÿOë.³åÒ·wÝ»‡7õ”–ê·ß~|û‘¼}K›.mºTÂ^G¶0U¿%*JˆgÎ\ºöñÜÆͤ>ˆö÷‚¿ü½€¼}a)a)a)⣠Zݨ³ålÇ›\:1g.Mk·*äý‰‡ÒRýDå‰ÊŽYùFöŒß3~ÏxñQ¨Ÿª3FÑ{úä;Z=bÎ\švBáå‹>ÒR}7ìnØÝ0òömDþù{äï⣠ì©Ð_~BAÏû]í™3—¦}?e@T‹QÒR}MãšÆ5 òq€ËîSA÷SqW®Ô(—ŒðˆíÛ1VÂs¯õ­W)\+úÿ½ëzn“_°tnÀ¯n¿›~¬ß¡Ž„ÓËN%J:•Dê*Ús7ÎÝ8'íh¾V¬•Ë{–Ÿ¾ }™p­¹ËI;×zN1Üï±ßc¿©«hÉjÉjÉjR·}îµþH´.ËO_Úª]o2°åñþÜtxÓáMlÃXáž y6äÙ©Û>ÏJØlñ„å§/míúwSo&ÞŸË[þÛòßH]EKß¾;}·ÔmŸGõ½à´‰Ùò—¶A 6óõ~ïÏ™^3½fz‘ºŠ–ñ ãAÆ©Û>‡ëÒ\‘Ùò—¶óR{®ïÏ‘ G.¹ÔU´œ95rjHÝöyÔB›ÆÌ“¿´5èÑ/+è½xúó9æsŒÔU´|Ý|Ý|©'þy¸vc3æÉ_Úz__Ô^WÂþ[ž7=ozÞ$u­È¸È¸ÈXZªãŠ:{Ú+0OþÒöp{dK ¿«íRìRìRDÙ¢lQ6ÙÃç(—/ŠÁå…p鋊EÅ6a6a6aâÁº¤ÝqŠm>·Æ¯k¯mðömÒUÂ{ÀFZFZF¢^¢^"Þ©@îyîyîyâý¹uÅ9ë¾,9}]{Onoç¦AÒnEEŠ6m {§cÇ>6w5iØu~KN_×ÚöY¢~øµÔ‡EÎäŸÉ?Cö*ΈÁ#,Þó¦Ì©ÃÛ _ÙŽ›½Æ|ž´TçœÏ9ŸsžìUœÓgLŸ1]¼ç—iöѸ3ä¯kß9÷7vž"-Õ™[2·dn!{'dZÈ´iâ=?í–ýùÌ¿®Í^wáI‹ÃRñåÿÊŸìUœMþ›ü7ùKø¶>½Eߘ!å1+O7xÇ8K}X¤fjÍÔšd¯âì·Ûo·ßNÂ!AÛ?¬?œò×µÓŽÞ>d%õ4åä5Ék’×½Šs*ëTÖ) G´¹Ó轚73ä¯|mi²ÿ=×w )/W”ðxåÍ7Ül@öð9 À‡bpYP.•{…÷ ïŠÇH³ê*¥$Ñò'7nei6¬+a‹Ñëò×å¯Ë“ÀŠðôÂÓ O/ˆ÷yí §ä‹ëÆ·s½Ë’SYZ¯ƒ.æê©r©Ê%~÷Vˆô¾é}ÓûJ»ñ7–y™íéÊÔjÎiñÞ+_¼oOÜ9qçÄX2îgÜϸ/-ÕSöß0°Ì`É©,­S7?M ³ÝÛvoÛ½V„ãã©ï(¼w°§…sã²´Áu.6ïÛ Þ¼7x“ÀŠß=¿{~wi©~3öŒ»³2sã²´«#ƒ¬LŽK8Ñ0}Qú¢tXŠúõ-’:¯¶ëbq<•¹qYZ£ÜÁg¯ïÛɽ'÷žÜ›V'‘“ÈIõ¶êmÕÛöXzºªésæÆei{«¯io $Þ·ƒ><˜]£*F¡¨PTØ8¿q~c ßÓ'w[é°›¹qYÚó5;¬µ¹%á<à´®i]Ó >GøÛ ü¥(B”ÊÈì‘Ù#³Å£sZ§}#ë,n‡eocÓ;͵“PöéëÓ×§/ ¬³úÎê;KÂWúýÎ 7ZVg™©ìíÍe;š9Tïa;­Ç¬F÷™—½ÍüpþZ‹ºÒR]èZèZèJËW|t|t|´xokÈ7ëîY“Yq9¼<3Ô8ú‚´TçžÌ=™{’–¯Ä^‰½{‰÷¶á³æ›U»0+.‡÷€Un…[ùKKuöOÙ?eÿDËWJ\J\Jœ„7Úw«Ë«,aV\ö¶è¬ˆk´´T¿­÷¶ÞÛzä€)S®Äò"ó"ó"¥nz™Í–+oØãqvgñ~>ÒòHË#-Éaùš3|Îð9ÃÅ{ûäúv!Ök„9GMöìqîÿ¿î'ôyõÆZ®íMûˆ÷ó6‹mÛ,È!(S ¦\‰%È%È%HÇ´ŸìÎé÷`i©|Û¥šk‹÷ö¹ÚçjŸ«MËKbbbbb¢x?SèÖÈóû.눀+{8Ü{Ú{ÓâWtðáÁ‡’ÆòòÈç‘Ï#ñ~Vj:½Ín––Ê·5Y?¼ËB çfm¶eØ–a¤±¼¼<ôòÐËCâýl Öt¾Ê¹Ê»$$Ìp?ùV†~â½½·Õ­¦ §,œòWî¯s$j²Y¦øµJo•ÞŠMûËMñ‡âŤ¥úã!?/? ÀåÕ¾žÑO×é‘x?[xXxXxFP¦L¸~üùñ¦‰wRº«8°´T¾ícË^!Í$|¥÷÷÷å+}¹™?~þøùã%<;ßyKoûu€Ë·ý»Kd«æoů¨Ãª«:¬"åe]Öº¬uYâýlþÛDƒu¦,-•oÛ¤ÚêIg%l.êÐС¡CCÒX^vï2Þ%áœÔÞªkZÔ¦\¾íd—«-lj÷v£F4AËË ƒ' Äû9bNËf‰Ì„Ë·Í[0°ªË ©%½m¢m"N¹.ÑiÑiÑöiXe6¡ªIoáÏTuWiWúçP˜ #ûÍÒ}toðÞЦK²^øÐ"RhóðÂ'qÝ]C¤no®R¬R¬B&ËîzÀõ€ëv0Ò9äí?D™p9·µ6UO¨&-Õžžžd²ìî﾿û¾„‡ušíéo¤!ˆ=ud© GéE™Ô×rôa%}8­ý¿¹‡M[ÝG•evm¤>]EÂyÀ™ù™ù™ùd€)S®l.‹.‹.K=gHqà{×þ,-•o[¼Ôÿ±ë{©_é.L0ËN§¾N}úÎêsé¶Ë" ÀåÜÞJØáæP» v9 Ù.H(H(H “eçðÖá­ƒ„B{“[ë~ŽÊei©"Z¥žš­•ð•þåÇ—_’ɲóšâ5ÅkŠxOXuÙÅ¢)àŠhuØ­­#ák[VTVTV™,;¿x¿x¿xñ~þ°Ï¾æ½™ WDë-o0]³žxŸ¿ö~íýÚ›L–Ý„[nM°øÐäÀ"GáÏT?ÿÌŸJ¿Âÿ̃2½´%Ì@Rw¥îJÝE&ËnÁÚkHèa«Ms&íˆc\!Ak{M÷•ðâAòÉä“Éœ\Bë…Ö •p7xggkc/ À²ôš 'µ›Š_×¹7æÞ˜K&ËnwÝ=v÷ïáS»Û}´¾#ü9jey÷÷_A×wílÚO¼ÏcäcäcäÉ$(S ¦\ÉdffŠyÇùúfíXNª¸v`ŒidÃ'â=ŸÞ'½Oz’Y9räï[Çß-«;Z :2X%$¸¹ë?OOÂï“§îOÝŸº“̲È“ÿ&ÿxß*«ëj5a9©âZ½Ÿz Þów3îfÜÍ ™eQô¬èYÑ3iSÏC’Z7¦\mGÇÙuƈ÷ùÕ¶WÛ^mK2Ë$D"’þÞÞ,ÿ®Ì+¢Ý£ÜÆÀ¢ƒxŸ_ð½à{Á—`–Z„Z„Z„„‡ü²/oríY¹ ÀŸæáÂÿÌ'«®¬a=V¼ÏZµðZÂÃ:M†÷¸¬>[h‹;Óõ'[]ìR{~K]?£8gKÕ-*«Õß+ü]{»r'ygÍÝÆ5•Ö:=XMs÷¸6ÑNæ„\ºçðøÆ.â=¿~Áúë̲x_ï}½÷Þ¼é’d0X³–0g¤Ñ':v±}Òï¡És­KŸæÒÊÛfÉ/21ªç¦œÒe³·fÕã Û³zY¬æÌõž0¯"űg’ã6ñžŸyþåù—IfYä:ä:ä:ˆ÷­Ó@ëÝõ¬+KÑ·²œþûyûâù ÝæëÄ?íø“ãOŽç]É2)”/”/”ï[%SMí眑šLü¸àlý%6£œÔÞ_o¢zœüA% åu&ëŽ7i¦+×uÉÐ%ÃÖ¿Žfc² ÷~¥=-˜«°¿½êñ™×Ãòñõñõ!™eQZZ*Þ·òšËMü´Y±0 À .g[ôþ4‹V¬ÿJ©Ê§ÙµZ¾^7ÅùmÏÔ¯>dÖÁÑ&O„Yžô᪮eOñëjºýéö<ÖPÆ¥=Q²(Yꃕy¿ºý.ä2je<øŸVŒý¹œïsû¿ìÿ²ÿ‹`‚0Å` À•ÌN;5ćöZ7o÷&­„sû‰zîÕÚÖQÝX©Cíær_èÙ¥Þ/š=Ú õÞ«MšJ(½¯ X°6€d–Åñ¹ÇçŸ+Þ·'…޲]'ä°ÒQʼnòÞ%ç¹ÑM‘bvâŽ]»Ž m¡ê™ùQçfÑâŸ9Ø/Ø/Ød–Etxtxt¸xßšÊÎÑÜé¹G×n‰šTo‚寎#Jÿ»ÚøâÐýÁ íZìVV95]üÓŽU«8–‡uÊäúëC®ïÛ®A‹'èYgY'hXÜ‹Ù*M§«œ)}ž»^Z\ ç!ÌðÄKW->Šæ~£ûî7šd–Åý´ûi÷%¼²FÛù´É5G¢æÌõÞ˜}V/u«•>Õêk$|ˆð]ÜâÐæÕ]üô]<Å?³çÏ9žsHfY¤ª¦ª¦ªŠ÷íÜzC­ r„\Ö‰hpJÉàSûù'×z¢§ØþóÿT˜Ÿ¿ ÏecW{ñž·icÓÆ¦ É,‹Wù¯ò_å‹÷mÃQž†½S„3 uHØ wé¥Ú­&#[ý\úßÕæ‰“wm$a7,!<ú<|n¼øgÓˆÒˆÒàŠ2ÉZ”µ(k‘xßZŸë¸ªþáÌBÅ?aýM:UKµÊ7`ø–nF¦‚+÷NZcm ý#|½·>Þú(áø f:Ôv ¿ŒZy ÀŸZõJ£kw!Õ L1¸²ƒ)K5¥Ë”.S$üBOÝ·¿“¿n9Ÿ–™ôÇ«ÎQúëÓgÓ‰P™ d°,­ù c¿K;;°S¹}¼›»ÃÔóÙÞÙVŸ–g__ù§w‚…|£ÍôèŸáœ-ÞóƒmÛ ¶!™e±T{©öRm {YÒl© ÀÿlÐä:à¤ÞÌSíVÕ´Ž:øbñËM*Ý7š'ÿ“ܹ½ÍP¬ïåzO8 U9IÑ›\,%¼ùt¹Ëå.¼S&á›Ã7‡o–ð•þè¼Ç{õ…V4ý×BUœB·ÚUvâ÷άßÕÕs,^M¯³é¶¾CŸ€±¾ŸÞ`ø×²fÏûoè=f°ˆX [Õ9UwªîTd–Åþkû¯í¿&Þ·ƒïkeâ&ˆ?“jYËïoqIõ_;v4~Óò@ÝýM‚éÖØ`GMcåN§æ¾ÕÉ6vp.T“º©µpÞf^r§±ÕsñO¨Ÿ«Ÿ«ŸK2ËâÌž3{Îì‘°ñÿ¼:Ûº g:ët“™C?}¶OsæiÕí.è÷<Õ®]¢uÔÕ]’šTØÝ2Æì¡ó#­Âz $-ýl¡js€››™„7ŸV˯–_M2Ë"Þ6Þ6ÞV¼ol[šdÕ¼²SR·€þÔÖ=®â«0žå×ò•8*qTâ(ñ^5JüóìžÂ™…jš8§tXõù'Ô¬âìÑþž‰æ°[ó]-#fúl1ö2n§Ò‰…s]ʇ´s «‘êòõ¨Ï£>úˆ÷j»¬©+õrø¯w³®ètù×éÁ¦ùã_ºi~éÓL[9¡Þu…¶Âß2ÚСÙU R]¾^æ½Ì{)a´YÇšL3L¸¢ÛÞöƆ "I5(S ®,Å` ÀRyWñ®â]E|skûu™$„[Χ²î?‹8Yrå&ß ê~¨iWi7Q OòÞ¬3Dq®Ðn¥Ó]{K(*X:Y:qªS™ 48H¼o³’£f¶h+̰Â3W¹ÃgÌVϱ1ù|¡êóÿ{Ó|W‹îBÞ¶®xyü>W 5(((“̲˜²iʦ)›$lÂ3fåÁÓ~ÂYÐ1M×eûÿÛOV>FÁÕì\ãѧÿT|ùéŸßí37)e s‰ÊÑfÓü„}Š òò$³,–Ž]:v©„Ó Çô=ÿÚ쎖rz¤­§ÿ¯ù†{ÛqA ¯•¼€åë¿Z3Wø'œÕY¨¦©°„¯ôå+ùÁ†]B˜šoŸ¬º÷_Åéöj3Ò>Ÿ?‹Ó]ßÝ-ð’ð À·?BªËW|H|H|ˆx¯úh­¿c%ÐpŽü&¹^ƒ"÷u0i%m¶,ü+?µÍ“}›jv"Õå+1!1!QÂo¼3Z[šŸ¢\Ñmp¤ƒÈ°#©`ŠÁ•¥LX*›6m6Š[Q”ÿr×h!Ür.OìtÆîÔˆW–ÓuŒ‚§9¤º•æÆ)^$Üívn€ƒ›¡„í^j¼ÔxI2Ë¢í/miû‹xßæïˆÝà*/Ìp¿‡íïi]*MA÷óŸjã×ô¨š£Ðª”z)ZË·`šX¾ú+õWê¯$Þ«½ÖÐÐêéŽ<†ýóÛì†ÓÉöj¥YrúüŠê.33²¿(´wš•Î7(Ò5!Õåkìͱ7ÇÞïÕ‰êñç„°”cz«µSÝ–Ý?m]šŸšærëµÕ8õ¡úZŠ÷…¼P¥_§ÉyR]¾æ9Ìs˜'¡Pš6¼oU'c!Ì?g^i¢oðÏrꂎMs ÓJ3C.p¸ÓÕúÓ©ÀŸþþ7s?íB[¨êÞÀ0Bó ©._ë:®ë¸NÂòß“Z‡W6kE¸¢ÛaþÝž4êKªË×.¥]J»$Ì«­çî.Ä»¿Uœ=Úßûô©ÔêÚ¸*”fFÝôIøäx¯:mužÏr¸Ñ£Nù'ÕåëÄì³OÌïÕ€{n‹„Y¶}éÝCmoÉóä 'ñ³-v ¿Üvödeí§¤º|] ¿~IÂ1Xçò:„Ø\£\Ñí–önÏÍ:“jP¦\YŠÁU„ó?‰ÊB43 ‰›0oB%ß8‹Œü{ºn ¹ß<ÚxƒðßTP4—_'W‰sR¹¯êzA˜àóÙëÆÛV/ÍÏž˜¼ü®µúÿm‡þÿj&œ…*£:Ý”§’·o£©eX·Ø¥ÚÒíb£Æ†ÿœÂøù»¿ÿqf°Áê7çZÚ¼\´íЯ¶›–¼;’'´°j~ãv¶=ÉÛ·1ùêµÍ–BXÊQË×ë¦xøÓ§ê­·¦ŸJé—œ„¿Pežïùs½ÃäíÛÈèÕµóY!Ì<»6 ñÏõ»Ø>ùÒø?e’­êÃTb…6¯ºÉüïF–äíÛHs>ù“SC ÀÝNÛão¤?¼}¶Ž‹OöÂ̳ÎdÝñ&Í>}ªÏ÷×)ÍÏ ÿ `ýF}Œ­AÞ¾aEG£f¸ûÒ5½ç²1¯îòû|;ÝäíÛH(êò»ý ÀÝLòhk¹¼ø:ÇöÛwl`AÝèææ Ì›PF•þ£wž«ÝÁÁf}x5×=¦«§Ö±ó××é:ÓðwÍ@ u¥ÝµÇI½.]KýŠ{ðKáÛ(ž¿Áõ0 ÀÏ.=Úìyi~6Eó`Ç’²-”…*Ë>FT\ÈÛ·ÑtøFÕËÁ‚8+÷ðÆWqÿ:¥ÌÖeqüáiB+å~][o Å_ŽzäíÛ˜²áÆï–éßwgÊøëñ–?ÿT#^ž¼oº·ôÿ }Þ¯ŸepPÈ UÖí¼nÕ¿NÞ¾¬ú·°ÂÌÓê°º¢Ê²²_‘öÅ:—Ïmv=º±U7ýäíÛx•|º†S$àŠnç\òÑ •¼}¶·—.;/¸µòbÛC_°;Žéı͖ß¿:áÌ« û­ šLÞ¾áÛOì1uf8àÖžóÆ…²Qîºhñ:={òöm\{ã=£É ÀÝÛÙ¶®ÕòàëäïÍß›¿—°  í à« º$5©ÚþwÝgê³?[&í“[ÜPë«¢Ý÷µÉB-‰'ÛñðKÈoçÄlu‰+ÍÏ~œ{ÉÐ¥§¤lóðH8oÛ^[:ýèÑÏ?›C¹K/e£ÌÀß’Þóûù.f‘ŸªO%áÒÿ7 ™up´É!/Tñð·$œ7€U‚kÛÈç—ýŠ>ÿïá àoó°ìÂÀŸöÂ)ËŒÚjÑûcįŽ7€LB~xÄO‘­M}x_Š7€y€ðý@oÚ]ÈŒOŸ2>%¡T&°3€ë¬VH‘¿øé³™Öª—_§Í§3ÌŽîòùÁ†]BÛúSA÷ 6Xöêw'èº À·?BªËW|H|H|ˆx¯úh­¿cE¸¢ÛæÉ¾M5;‘êò•˜˜(á\ó3Z[šŸ¢\Ñmp¤ƒÈ°#©Fiö»ýT,¤gdçÂíœsvÌÙQú¢ï§¿ÿ틾€KWTè2¥Ë”.âÖ>ºo'Aœ’뮦pûÓ§ŠïÕy¸½^i~êT»v‰ÿW$æí6Ó£†³„RÙ`›Á6ƒmHf™Š ÚKµ—j‹÷íSÏ#Kš-f¸ßÃö÷´.•æg½CZý¬iû駺n=I3B8àœ¤èM.¶^ìr¹Ëå.—If™Š ›Ã7‡o–ð¦ÂÑy÷ê ³ÜàZ«ŸºZ—æ§´^¸ëùOy[e¹Aªù.á\QS°ˆX ïó9UwªîTd–Åþkû¯í¿&Þ·ƒïkeâ&´%*ƒŽ­URKõö°Ë­×Vã4.NRòæBÕô%w[=ïyý\ý\ý\’YgöœÙsfxß^øŸWg[W!Ì?'Œ´i«ûèÓ§òŸaVEûÒüT^€ß—8‡ÖšÁukø«>Vþea ÇöFšZ¨Úàæf&áaÕò«åW“Ì2lãmãmÅûöȶ¥IVÍ)Wt[÷¸Š¯Âx–_˹¨0*qTâ(ñ^5JüóìžB›Q«Ýj2²ÕÏ¥šµ> Ÿï¥R]ßÄTÐ[@+ÒÎ5¬FªË×£>ú<ê#Þ«í²¦®hÔƒpE·†ͦ¨jêòõ2ïeÞK VÎ:ÖdšÁ` ÀÝö¶76lIªA˜¢¯‹¾€Ke§ÆN¦)׺y»7i%„[ŽQ›ºË•G|úT{œÚØ[t/ùï§ëÓ¼yýO' ¹|ïU&Mw‹µkÖ̲8>÷øÜã¶€¾8)t”í:a€ž)¸Ê>c¶zމ´ŸÚã4ßÕ¢ûç?uig˜ŽŠp–¨ž™un-ÞóÁ~Á~Á~$³,¢Ã£Ã£ÃÅûÖTntFˆžptŒmçÎYýχ‹SèV»ªyâä]Iûû6& zïWR¨¥ÜU執‹þÕ¶µO;á,TÙ;¬¬rJÂÙ{cÇ*ŽU$™eq}Èõ!ׇˆ÷m× Åô,„°”Ó³çÊfúSK¿ä4=ôŽ›UZ‹½ƒô¸y¡jâ¥+ŠÅ?a¿ÑýF÷M2Ëâ~Úý´ûiâ}»FÛù´É5!Ì?¯¿÷Nmñsy5¹ÃǶfõ²äŸšØÉ¶ªÞ¿høôß#œyõG?}Oñž÷œã9ÇsÉ,‹TÕTÕTUñ¾[o¨•AàŠk ú\6vµïy›66mlÚ̲x•ÿ*ÿ•„ÓÐŽò4ì"„ùgãw£ƒ—ýëÑÏOsì’JO§Gá©§¼ âÁÊçásã}Ä?›F”F”FÉ,‹¬EY‹²Ix\ø\ÇUõ?P®À¶wÒkiÿ»#™eññÖÇ[o‰÷ªG3 j;)Wt«¾@ití.¤€)ú ¹èK¸Tnì¾±û†„2䯫®«Mç á–3p™é¶†‰ÿ¼O–©|B±îÖ“-‡˜mz»÷ÂfûÓõ­âdtigÇv*Óòìëë/W ®m#Ÿ/}ú%”[é¾ûîfâŸ0F1F1†¢B™$ç&ç&çŠ÷í’I£.ÝfX'¢Á)¥¾6L¶ò«yºùª8ëÜ×—ê[Õ Té>¸Ñ¼Ïÿ~¿¦GÕ…vúïé°ÕµmjŠ÷|¤Y¤Y¤É,Óòk^j^ª„§_Yxð-Ðû²bÛÖýó97t,¸çÓv–ãf\Ýú›Áþþù“Z+Ú«™iþ3}¬íU·‹Z{¡l±wZ§ð»âW´û—Ý¿ìþ…d–Å민> Þ·M†÷¸¬>[ :&Õ’°â$×øMËu÷wÞ4oªnó vÔ4VîR{~K]?-—Åu•?ýõ¡úZŠ÷…¹P5tÏáñ%”¨×/X¿`ý’Yï뽯÷¾ž„0’ kÖÎ,TÂ9=£Ìºi;ï˜Òê–ùôOÅÝ£»MõÛØ}ú;u&ëŽ7iö·vùW=Xy{Õã3¯Å{Þ×Ç×Çׇd–Eqhqhq¨„0:(4—›8cRÒ_Ö–€+¢ô᪮eOñOØþtûÓíO“̲-퉒EÉÒVw‹ó~uûpE´yÆ~\NK8€ì/û¿ìÿ"˜ LÑW˜(K•i˜i˜i(>´çë›i´ÂçuÓ~5®}Ún®ôѼ7¸ÇïM—4¼Ygˆâ¿Þu÷Öi¨6F…íÓȆO$l¾Ý'½Oz’Y9räH(*8þnù[ÝÑÂ,GŸØ0ÈöIÝA*ú KÎvc5½uŸ]:z´Ùs¡€ƒÎõŸ§'á÷ÉS÷§îOÝIfYä¿É“ÿF¼oƒÕuµš§\úù¶uŸ6s.Íol…µ*µêö18¶Ùò»BÛ¤Nï§Á#ˆæ»w3îf̲(zVô¬è™´TÌ’tк±–u&(Åö·PЙnãPgAiòÜðšù<åˆO…aa.TutœÝYGÂæWÛ^m{µ-É,“Qˆ(DêBÕ,ÿ®‚XÖ ðûà×[߸Qƒ£¥Ÿ]·«§;_½mîx¿õ.Ë…¶ŒµG¹E ›oû^ð½àK0ËN-B-B-B¼‡ ²/oríI¸"Ú“UWÖ°+ÞçG-Zµ$“eg%g%g%áwÃÉÐäK[„3£n°©e ÷„Òü–®»ÌÌÈþ¢…ù”kaÿ̯>ÔRVZM¹&áh•m§·ÞF©¬¸[¹[¹Kˆõ¤NÕ²Ô¥\íuךHØýeUáªÂU…d²ì|||Ä{øõÁ~vNi€+¢}`ÕSÉÑT¼Ïg˜ýaö2 À})W6—E—E—¥ v¡âÀ÷®ý…ó¦Âôtû1úqކ šÔøélàO­ó#­Âz V/vžm²·ÈÈ¿§ë–Ûç¯úXù—zÝ]6 `vX{Â÷½–â¥þ]ßK]\<¸x0Á,;ú:õuê‹÷pnŸK·] ­üùâ”OA;­®Ú5Ï(oS²‘_dyÁ(F¥ÇÌ+ƒ6X¿¾`×b†ÐJ¿¢[ ;ÜjÔn '!Û   d²ìÞ:¼ux+áÉ[ë~ŽÊfØ`zÿ‰ ëö7]gÿ«BŽªy½$…Áu&©nVh|κkÞzß±{¾üíIM¡}þO­RO͋֊÷ùÇ—_~|I&ËÎkŠ×¯)â=òB•u$|mËŠÊŠÊbÆràïï/ÞÃÏöÙ×¼·Ð–x>½éÛm´á͈FGT4³•Ž*È{›Šêw¬3½óAýb„Oçó9¹Ð®Â[Þ`º¦„w¯_{¿ö~íM&Ën­ ·&H؆ñ¡ÉEŽþ€+¢”ém¤-a’º+uWê.2Yv Ö.X»@B[mš3iGœÐfÔ¦;ÇÞX±B³Š³Gû{ʵ׿-PÉBùÀ§õúŒõmÚ%,æ²Úç×¢b­ÞÌL8àFÚ^Ó}Ï‹÷yòÉä“ɼ×^Bë…Ö •p7xggkc/ ÀÑz¬™pR»©ø'¼1÷ÆÜsÉdÙíî±»Çîâ=|jw»Öw(WD»±¾kgÓ~v¬”‘‘'“ LÑ—p¥4þüøóã%LÄï¤tWq(Ú†u_úŸ íFûزWH³:6>Š÷÷'åeþøùãçïç+·ô¶_'œ¥¨²ÿÿ…ÐþÝ%²Us …É«:¬ê°Š4–—uYë²Öe‰÷³ùo Ö™ ³€úùÒÕ×ý§ß«mRmõ¤³ÞshèÐС!i,/»Œwï2ïçÞªkZÔÐù^b‹P%/N•ü7¿W;ÙåêAËq6iÑhD£¤±¼œ08apBÂipsZž0KæBOÉ‹SB^´Ê[0°ªË ©‡¿lmm#“e-é '³ UMzW–peÙ°ºðI\wWé{ ¨««É²»p=àz€xëòö¢P¹fÔŸÿÿ?m ýéÿSßܺSAÌ´kmªžPMZª < < <ÉdÙÝß}÷} G¼5ÛÓßHã0çÕ_:÷ÐìzRÒ_Ö–u¨ù(¬—ð¸p‹->¶ “e÷lß³}Ïö‰÷°O”I}-÷Êuªnei­“Ô§«Hxì/3?3?3ŸL‚0E_ À•R‚\‚\‚„LûÉîœ~n~åÛ.½Ð¬ÈX[¼·ÏÕ>Wû\mÒX^Åûy˜B·°Fž•e¨²´áÞÓÞ›îïíƒ><ø4–—G>|ùˆ÷³zPÓémv ¹\[“õû,´ïí-ö Û2Œ4–——‡^zyH¼Ÿ ÔšÎW9Wyª„Ùö“ßheè'ÞÛËc–Ç,!ååmÂÛ„·&Öfvõê,f&\¾íåBì6Ix7(uFêŒTÒX^²wgïΖPT¨»ZÅCa„hGÂ\7sæÃåÕÞ|µcŽƒ„Ç…‡ÇÎãÂå&Ï+Ï+ÏKÚrXÓÔð¹ñ}¾×,Tç°÷à!Ê*Q†ã,üôõvýºô?«qÃédûÞÖüÛU·Ó\!€mPïç^ãzë5Ž4–—Âó…ç ÏKKõ4ŸÛêVÓ˜—W;æHÔd3 [š·Jo•Þ*4–—âÅŠ?HKõÇC~^.~̇ËíÆýt‰÷³…‡…‡…i`о€+ó—ŸÈ¼È¼Hi±ÈO8ÕUaÙÛ¢ãþK]/HëçŽ?8’ÆòRôSÑOE?Ië휻ћ]¬X`*‡vXBw·FuǨ˜+Hx‚þÝ’wKÞ-!åFI¤$R’–ê&“×d_Cá¶¼Zå> ³õ‰÷óßûþÞ÷÷>ÂXn>Š>Š>j¥i¥iIx·lüž˜ÝæïX`*¯V?±éï*ÛÅûùñÚÇk¯%ŒåËNÃNÃNC¼·Ÿ½êÝì-³âòj»îÔ¼&ÞÏI^I^I^ä°|µÕm«ÛVWÂö­í÷×iZȬ¸¼Ú¡]5’P¾’t%éJ9,_ýªö«Ú¯ª„ Ûγ}Ì÷š…µP›ñϼH©½fX£AM V¿9ײ䟲¾1ßno¨\®Â«Úg?ý¬‰æ°[ó]±ù³_Ç~WÄû9J/J/J–¯ÑF_-aÝi ÞUcæÃå¶ùóã ;íÎâý|¤å‘–GZ’Ãò5gøœás†‹÷öÉõíB¬×0.·ÍŸk¹¶7í#á¤v‹mÛ,È!(Sô¥\éÌ™=2[<"§uÚ7²ÎâFXö66½Ó\»u¶.éëÓ×§/ ¬³úÎê;«¯xŸïw^¸Ñ²: LåðŽÂ²Í$,šxìðØá±ƒV„;VìX!á6oTÕ¿ÑônËá…Î îí?"ÞÃ6q6q6q$°"ly½åõ–×â}ÞVuRwí³,0•Ã; ¾çß›%‰÷pƒèÑ ¢EI¢$E…rvèCúC¼Ï§§ØÐeV\ööU|ßgNG¥n“»µxkñVrX¾ÎŸ->[,áÍÔi=f5ºÏ¬¸ìmæ‡ó×ZÔ•–êB×B×BWrX¾â£ã£ã£Å{[C¾YwÏšßk.j?|åÖÓíÕÌ4ÿµÌúi{gÛâeµph¾¾ÛÅC–3}¶Æè¯õY4.¥öôºiê5?ýÍOç;$l»ôòûΫf†GK}>÷dîÉ\Nÿ-g‰½{%öïmÃgÍ7«vaV\övšÊ­p+i©Îþ)û§ìŸÈaùJ‰K‰K‰“ð°Înuy•%ÌŠËá…¥³þ!®ÑÒRý¶ÞÛzoë‘CP¦èK¸Ò»Wx¯ð^¡x\ô7«®RJ-pr3á¦X–ÖñhƒÀº À×å¯Ë_—'áé…§žJøÂY{‚Â)¹Äâºñí\ï²ØT–Öë ‹¹†„í¼.U¹Tå¿{+Dzßô¾é}¥nX7 ,ór'Џei5ç´xï•/Þ·'sâ ¬÷3îgÜ—–ê)ûoXf°ØT–Ö©›ŸŠæñ¾Ý½m÷¶ÝœZ!rŒsŒsŒ¥¥ú½Û€=-ذ®Lmp]‡‹†Åûvƒ÷ï Þ$°"äwÏïžß]ZªßŒ=ãî¬Ìܸ,íêÈ +“ãâ}»(}Qú"6­E}‹úIWÛu ±8žú}Oü•Ÿ©¸I)»ô‹}µ÷×›¨gykfVÄL!lþl”;¸ñìâŸsrïɽ'÷&ÂIä$rR½­z[õ¶xÏ\zºªésæÆei{«¯io a_®Á‡|˜VˆBQ¡¨°q~ãüƾ§'Nî¶Òa7sã²´çkvXk#áÜß®i]Óº¦@|Žð·AÑ÷KQ„(bQ±¨Ø&Ì&Ì&LB9G»ãÛ|nŠ_×^ÛàíÛ¤«x¯jii‰z‰z‰zÀŠãžçžçž'Þÿ‘[Wœ³îËbÓ×µ÷äövn$í–S´¡hCѲWqú8öqìã(Þó&m»ÎÏ¢ˆûu­mŸ%ê‡_K=áLþ™ü3d¯âŒç|Îy²WqfLŸ1}Ætñž_z¤ÙGãÌ¿®}çÜߨyŠ´TgnÉÜ’¹…ìUœi!ÓB¦I8]ò–ýùÌ¿®Í^wáI‹ÃÒRýÊÿ•ÿ+²Wq6ùoòß$á}>­ém,züö}g§ÿìØq­ÕO]­Åß þç}_Û†ôU´Ÿu86à¤ÝóåoOj ¡ôëðtƒwŒ³´T§ÖL­™Z“ìUœývûíöÛIxc²qû‡õ‡3CþÊwÞ>d*-ÕÉk’×$¯!{çTÖ©¬SYâ=ßæN£÷jÞÌ¿®-žìÏõ]ƒEÊËïÛ› n6¸Ù€ìás€+Eß² üb;ÆvŒí(¦úÖŠ«®ýáßÞu=7È/¸•æüêö»éÇúêLïÕSI§’N±éb…»qîÆ¹ç¤u´b­\Þ³ðôíË„nÍ]NÚ¹ÖË‘°½¶Ç~ý¤®¢%«%«%«IKµC¯õG¢u)è~i«v½ÉÀ–ÄûsÓáM‡7ñ4w…{6äÙgC¤¥z⬄ÍOXxúÒÖ>¬{7õfâý¹ü·å¿-ÿÔU´ôÝé»ÓwK-êŒê{Ái³å/mƒlæëIX¢šé5Ók&çþV¸Œ2H-ê„ëÒ\‘Ùò—¶óR{®”ð®Þ‘ G.$u-§FNœÒRm3j¡Íc!”ÿ)¬*¬‹½ðÁÖeqüáiMŽ®Ý5IÚßü¾­A~YAï%€uÌç˜Ï1RWÑòuóuóu¥¥zèÈõ›1OþÒÖûú¢öºâýéyÓó¦çMRWÑŠŒ‹Œ‹¤î¯WÔÙÓ^yò—¶‡Û{$[Jø]m—b—b—"Êe‹²É>G¸|Qô-/€¿ÄQÑQÑQ›H›H›Hñx…'¸~0½È ²ôíÞ«m®ZH8KR+S+S+³x`ñÀâ„îÛprr—ðÆjÈ­±>ÆëYx*}ù`EºõP©ç“)**‘·o£·Uo«ÞV⣠ӳK×A‡)è–¾52ùú†uRÏ';{:÷4yû6ÓÓÓÄG¡ÙÙþXx*};Øt“áRÏ'ë•Ý+›ÝG¾‘i«¦­š¶J|ú›5þŸÖ]fË¥oïºwoê)õ|²o?¾ýHÞ¾¥M—6]ÚT|: laª~KT”Ïœ¹tí㹇 ›HKõß þ^ð÷òöm„¥„¥„¥ˆ‚ju£Î–³lrMà˜•Rµv«BÞŸx(-ÕOTž¨¶knÚFµ·xÎ?1ÿÄü$í[Êï˜ß1¿£´TûY2·;3çÿhõ6õLYo…eoǧâ}”””OÒ¾¥"“"“"5?5?5?ññš5K^dž™siZ+ùöÛëKèÃAŽƒ9’´oêÑ¢?ÌUÍUÍUÅGdQGÇ£F½˜9—¦6Úº‘„U뮳»Îî:› A Àewlß±}ÇöQô-_,Ý~¥Q¦£LG™Š‡ÏÂ_ÍNåBó"×AÜ2%lûÜÖÿ²kªëm­úž‹ï×¶_Û~mI×÷2S}¦úLuñqÑÈ«?³öŽ<ǘ.çX’І$Œu3öîØò¦¦„RYûñíÇ·/*Š ÉØ·¢¢¢,u;hëõöç³ %­ÕÌtuë$᱆¦{›îmºWÔUÔUÔ•Œ}{áuÃë†×•ºt‹3‹+,EIkºø)jNï7ý7úoôßEEE‘±oo¯Á^ƒ½R7yÕ±ï1§uÌ¢¥µs4~58#ÞoJvJvJv–––dìÛ‹t‰t‰t‘º´èØîæFÌ¢¥µ+~×Ñø©´Þûxøãá?ñDŠ=Hêvл¾8ø'ógi­a¿ÜôEÒzï½ã{Ç÷”ʾƒ«¡WC¯J=¹vXÿ#'Ogþ,­í¡´ü}i½÷æÖ›[on‘±o/é^Ò½¤{ÒÆåJNû³ÌŸ¥µ'"Û¦XK}=æåè—£_Ž&c†pÙyyyQô-_€¿R¶E¶E¶…ÔåW-›wzNÜ8ÅÛyÝšÚŽ“Öoï”Þ)½cƒÜï&×7×7×WÚè Q몬ý€)ñvÕÅ £M¦Jë·´?ÒþHûƒt}/{ öìÑtÔtÔ”ð¶ŸúiÇvîGu7uOdYêóÖhP@àÌÒRýTå©ÊS¶§ûnŠ«W/®n)g)g)atŒ¦8P?}Ë/«×,Kýk‰êÊú=¥¥ú¾í}Ûû¶¤ë»™ š šà–ã–ã–#>:öM4¢UWä üÛµ'séÏÛ“Fíü­¥Î@n ½1ôÆPÂõý~Y‹ŠEÅ]³ºfu•ðf¶n±VœÒøÜüO—Ì¥?o£{mhhû—´TÇ={œp}_ƒªª:¨ªøèÈÿTû×ÚÏ ×+_ìÁ\úóÖrùL­“¤¥úŒòå3Êäêû Ò Ò ’z*ðDÓ9‹KÌ¥?o‡m=ª×xµ´;8ï༃óÈÕ÷5ÏgžÏ<©W¶ì{Èi séÏÛÍžW7Jë±……r…’Q./Ÿ¿LÑ·ì(—I|¯ø^ñR·ƒÞ<Þm¥™67ÑNü=ßæ²ÅA©[üYœ·8oA¢„àVÄ­ˆ[ÒFjÕð –&CXœúÔžh»ü°umi}uT÷¨îQ]%þxðǃ?¤”®·mÃrXœúçÄß.“T×K}d§ýNûö$Jž-{¶ìÙ2i#Õ¢]À¬XœúÔtÛýÊø–´¾ :8t0‰‚t«t«t+©¢=5oTC´*ÀÙÍ„yõ­ð®ÏšKë«Å'Ÿ\|’D Á»ï>¾û(m¤zMóØÞ`Iñ¨ø•®o˜W'·Þ/ßTêáÓô¦éMÓ#QB””$m¤ê=°jÖüMWm\×€yµíÌ%KL‘ÖWÓ‡'O&QB›˜›˜›¨²Ee‹Êñ‘jÔÄê—:êS·ßL¶rf^=Î%ÚÆ\êK>/|^ø¼ QBPUUeøÑ𣡄yˆAtݪʪ9‡}ß»1¯~ów¿½Î¦ÒRÝ^µ½j{UÑ\Ñ\Ñ\r…’Q†0Q.+ϯ<¿ò¼´[Åg÷ã–Î?ôÛ ½ÚM´ž/­‚[· nIŠ„fóà̓7–úìÛ¸Y9f7ä%ª‹ñ¡ûmwKëŸ ¢ "ŽÛž}­÷µÞ×ZÚ¨„ö?;±à‡~;¡ËŒ[fKëŸAéƒÒ¥“"¡‰ìÙ-²›´Qó¨9>VûÏy‰jè•÷“Ö?=ª÷¨Þ£ºh¹h¹h9YŽ‹ë/®¿¸^j¨À^Mù<¯NÎêQèØ@Zÿ´ñnãÝÆ»¸}qûâödI8þúó¯?ÿúSÚ¨Õë–ÎlQDÂl7ós^ýtÓ‘ͶHëÛ»¶wmïZZ²™¹€$ÞK¼—(u‹QÍ1-N{iš~0~Õ9¯¶;·|täLiý£³Pg¡ÎÂ<§<§<'²$“&?L–6jf+Û,¯ç0-ñvšÕös^=áÅåkÞòÏj7“Û#Þ?µGÔQ{㱯~K–„ãyµçÕžW“–j·óÚCëλ:°žËãs^µ|@@ ÇFsTj)¦I륌[·2ØÌ¥BÂD¸<è:Ðu «´Æ6޽~´[é±Zž­¤¾Ÿä½Þ{½÷úâeÅËŠ—"ak4Öh¬‘´Üôn†¹Ùÿ~´%ªsVkUm6Kë“–Æ-[†††’ašÕnV»YR B¿öM›ö£-QY ž:cc¼´>±*´*´*Ì{•÷*ïù¦eû–í[¶OjA(ulTÃ=3F%±6ûq–¨ßn,­O´«iWÓ®–39grÎdò#La­ÃZ‡I}dgêÏv}õˆÔs«óãÌ«“jt×kú?i}"ï)ï)ï™åžåžåN~„i—æ.Í]šÒFpDBÏ`FEÏâ¹^ùqæÕcþâ(õAáN‘ìü¦ó›ÎäG˜ŽZµ\1NÆ—¨›Ž4\¼JZ?(vWì®Ø=cNÆœŒ9GÐRE©¢Ô1GÇsTÚh6Ù§µ†Ù´~·XM—í%ª¾ Â< íJ^x}5äÕWCŽðÍœ>súÌéÒÆ±Ÿ¶É&­Ð<5¿{.'d{‰êâp¯¶«KNõóuÏ×=_Gf„oéò¥Ë—.—6Žf¸†iÌÍÑVu©)Ûóê„!›wÚû–œêG5Õ|T“Ì_èëÐס¯¥cÝé¦yö3šì[»8ª¯lÏ«­̱Ú1¬äT'Å&Å&Å’áÛ±`Ç‚ ¤£ÖsÓ eï æqC-ÆÈö¼zxý㑦Š%§úÚåk—¯]&3ÂwxøáᇇKG=[Õ?•f§ëõméä-ÛóêGs{y9f”œêØ?cÿŒý“ÌàKQ†0Q.g¹õrëåÖsöuöu–ú…¶w}c͇>tòÞâ¡,ÝDsãýNºD 0;ª$íÚ͇›7ž””DZ*‹‚š5 jv8Úáh©¥…^-4Ô¯eœïëœ/K‹S{.¸zŒmâSE·‘´koÔ ©AR†~†~†>i©,ŠÚµ+jçããããã#u¹J¾ñ:ÛÓöa«,ÎÔ”¥Å©¦w»Ç7jôw§×þ)R¿ñ¬‘[#·æ•þ+ýW¤ºÒ(~Vü¬øÙ0¿a~Ãü¤.W¹7~¦¬=®G´ù™Z¢²Hò°®ïÞgÜš†‰ÿQ$ zôœHå+ŠÅNŒ™31FêrU •"¥‰ÏB{'5{ SKTùÝ\W]t¶3™úE²úê?ªOX*—àÁ3‚gHSUÏ:î :)j[9†É^é7|ËtÓ“%§ún­»µîÖ"'•ËŠµ+Ö®X[òÈZ‡Ì±g­ì•~ <§äk¿Þáz‡ëÈIåþ[øoá¿•<²Cü:›Ü•½Òo¯³«wéø"ÙóØç±<þ^ÉìJÚ•´+©ä‘?Òy™½ƒì•~Oui—d}±äk?6þl<9Áס a¢\!rósósó;Më4­Ó´ÿ¸­.í<Ó¾Ò¿ |=ßûe“m%_©ë_®¹þõᇠ.ʨ`WÁ®‚]ýÖö[Ûï?¾Ø_<ºÕvGe_œºS¸ûHÓªõêVSúl õTë©ÖS332323HHeTt¹èrÑåáu†×^§äT›5¿wU¥?!ØfèBíJJ6šmý,õL²U:«tV½™ùfæ›™$¤Rj"j"j2©`RÁ¤‚’SÝ{×ZWƒ•}qjt³»Íüv0Û£Çuyâúº%_ïÓ{Oï=½G@*¯™+2Wd–<Ê[;Î’7[*ÊH8çÖ¢òΫÓÿ>åî4£ÃµÓÕ_•|½B„>`kÜJ,ü—ð_Â)y” R„OÖpTÝd˜`QyçÕöY«ÎöWÏo¦èq¸äëMŒNŒNŒ&•×®I»&íšTò(·UŸÔOûÜô±w~¶zXyçÕ“j_Ù`)o?¼{uuÓ’¯÷ª×U¯«^d£ò:ÒýH÷#ÝKåà1Ï ] Ž ¼îÚ¶òΫ?dûîqùiÔm+õ%_oŒkŒkŒ+Ù@YP†0Q®@EW‹®]h:ÑtâLž†üϼ­vÒ[~+ËM4Ë{@Ǧcî[åþÇÚ”\ Z Z ZÁû‚÷ïIE¥§*R©Î9=çôœÓ%{ß»íkjÍO;}ÒÇɱ²,NåF×u©9µÛÀ†úV%_]¿Yýfõ›•œœL(*½›¢›¢›Ë.,»°ìBÉã®v¹IÛ–·íT—ù{\Y§Š7Œ9®Û¬[Ãaž%_]çt³0gaÎBB!Bû„ö íSò¸=uöQÝ=*ü̳æ•eqjÚ‰Û'¬6xž˜xP{CÉW×òl˳-Ïf‰²DYÄAFl;´íжC%»“²V‡zÚª÷üŸ£Ne™W»ûǺ¦®½Ö¢gãÆ%_]ˆ]ˆ]ÈÛ§oŸ¾}JdÃÑF]ò¸[f½Qñ»ón÷.Q¥)ý.Kãf¼){†µYµÿ(>2xdð(Ý*Ý*ÝŠ<ȆÈm‘Û"ÿãqÅ êÉ Y¹Ï´Ý¿’½ï1´]°WÉWWo[½mõ¶¥~Lý˜ú‘<Ȇ ­.´ºÐªäqWZ¤!Ÿ²§ñ‹ÊUúí™±ÊIÿ€\)<Ò{¤÷H<ȆønñÝ⻕fÜ/­ë¸ËN±r•~Oôh{ÚZ¹4Ww7înÜÝ8ò€²£ a¢üì︿ãþŽ¥¹ñÌ;Ö´—á·WûWu ´ÛgæâÕ[ü¼lEswãR]Ë6ûmöÛì}Yu<ãxÆñŒÒ$aúrÿ'úÇ^Ý<ý“Óq¡-NeË]ÓbÅZã‰]ÿ^šk ݺ5t«èƒèƒè=çåÏËŸ—/M´ÝÛÝîçawfù°È‰‚+úö[ÝÄðáÀCÓKs-!ËB–…,uuu&²'öhìÑØ£¥I‚c-Ÿn¾cF7ËÚ²Ô””“,E];.¶ÔÓ)͵ÿüsðÏE¢"QAW^}xõai’0pžé–†·Ÿ é]­Yo¡Í«óu:¸dïëêþ“Å­Ò\ˤ“>NúXX£°Fa 2 {ƒƒƒK“„Þí=Û48ûpâ8Ç Ážrär kÛ#É˪Xy”æZFŽ˜7?o~Þ|2 {’'O>^Û¯¶_m¿ÿxÈÒÃ.Öõ¡uÂ|ݽ³wxÊî7ãÆšŒ»½ò™¼cíXÅû%_‹ï`ßÁ¾ƒs6älÈÙ@dÏ“€'O´~×ú]ë?VŒ,«Žšy8£q¡Í«§‡ÞqµJÐk‹­‘JkõÁ WK¾–®¯º¾êúê}—÷]Þw!²çÅÆ_l4b:ÅtʸúàjFüG*ÿTþ©Y=fõ˜Õ£4ÙÐÜ`”­´ÂGw}ŠÁ…ﶃÎíÛiVÛ;Ÿš·G·uéS½³×Î^;{‰îˆîˆî0î²­poáÞ½‹íÛ-¶+M6ô}U§*ÅŠõØayû»í 3Ï?Å5sûýV«Ì{*WWh-PšO~2üdøÉO'1î(_€!L€¿ƒâfÅÍŠ›EÔ¨Q_î M½`·CßóJ«.ºö«EÙ¾n.å{û¼fãݬ‰Ó¬wMVŒÿÒ϶AuƒêÕÂW…¯ _1Ê?K‘¥Èroƒ½ ö6øÒäMìßI¯^\‹ðv‹<𹩗ï²ÔMùíÉMžÏ¯8ÞpƒB ùËrKJÿÙVD­ˆZU`]`]`Í ÿpâDq¢¸#×\?rýKSÝp†gÏ>jõ§Ì ›×4)¼g¼^ù.KY½›;|×ÿô&õª9ª›|²Z”Ò¶…ò åÊçiåiåi1È?¦Ó§5Nk|iª›nî³AÃÉ×7âF3¦ß`µ¨|—¥Íi6Žiû÷ä‹~V¯~Záaé?ÛÌßgþ>ó÷œý9ûsö3¾?¦‹µ.ÖºXëKS=è'³ÅÚýÎíï0Öælž£ßs—så;¯¾¯Úãé±5KœSM^ê[¨Q:[úÏ6aÿ„ýö¿ðþÁûŒï: ‹ ‹ S¶Q¶Q¶)}rxtÈm¨rÚkÕ]ëÂO‡›”ï¼úÁúu[n°˜2¥q¶éjý™uJÿÙ   3vfìÌØÉøþ˜®]½võÚU­0­0­°Ò'GC¯ÙVÏ!¦‹Ç­hÔäàÚ5QÃÊw^mó|QøA‘Q]ÿ3~«sBÏ¢±Yé?›o–o–oÖå7Êo”ßSâÆÄ‰Mö›ì7Ù_úä˜GxÖ[ÝûùÚ½ÞAcãâ-æ–ï¼zÔ‡³#ÌzzïXô›î6šuæ”þ³õéÒ#$M;M;M›ñý1%Ë%Ë%ËÙ²d?¨ôÉñZ wCCéàq–«^ ë{Þ)¼|çÕ©cúè5¯¹Ë¶õxóT×míúÍJÿÙÚ'·OnŸœz3õfêMƇ0„‰ðw–91sbæÄYÍg5ŸÕ\® º¬4è¨!š»Åaµ¡âv¥Vžæ#gµ3°îv¡†W[· ö^¶Njµóµž¼£i«Sæ#çÍjÚÆpz·‘†4·*(É]—›ýuÿîÄ·ßN|û¶çÛžo{2šø$Û#Û#Ûc¡çBÏ…žeIuÇy.ÉífŸÒÐ`{Ä«ÙÌ^ŸH]¡om•´^ß¶É…!ëÃl{ž<¿rƒõ¦ýƒ5?² ßðE†oz¶v?Ü µ²âSùÑ_÷ïŽòå=Ê;ý]ú»ôwŒ&>ɹžs=çú ¥J+”Ê’êú½¬ï8+ètíâ1(Âhß ×Y~¦ÃǪ-ßcî8ñ¯õU͇M°>Ú¬ú¸¢UuŒ†Æ¿ÖÓíùÓÈ*nÍö|©ð›r•¯ûw ôÒò¥åKKFŸäUË«–Wmýêõ«×¯.Kª[«nwÓ6EK¥ËùOugõ­_cptÀÞ-\|½¶¦Mì'·ÑÂз{«eõþòˆ˜p]ÛÙF¥“¹ZmåõD Þ_÷ïöíÚ·k߮όž=3b4ñIþÛü·ùo7ßÞ|{óí²¤ºÕ¹FFõMɳ륯±¹µÛ,³ºÇnÛÄ*.ÊÙë[Õ‹U¼ÙN9½¢}[›ß÷Ä·j1aijóƆv4^ÚÐXk¨òKEë¯ûw½3¼3¼3Rî¤ÜIá=ü£0¸0¸0x—Ö.­]ZeIµ«¢Ý‚ú¿O=à‘Þ¢ð Ó L#õ 1³Ú%·n‘m­‹f¡¶¶óÎ4^=ÛÆdïß –Zœ 94ÖÍxÅ@¿N¾ ¯è i°DIíëþݶ.m]ÚºÜ7¿o~ßœÑÄ'E‰E‰E‰­Z´*KªUXGh¶oÙï‰á¿3Sï6N=rÙó:;­ó3_1)9´·Ù´ cW™ì>ma þ"Ÿãö6ðu;ÔeŽRÍêÚ;¾îßuñrñrñJlžØ<±9£‰OŠoß*¾u<ïxÞñ¼²¤ºÑ_ÖUë´sêèWSsRGßÙkufôZ“e`1Às‹š‘¶ïˆ`£õým6Y^î°²³þÌöµ§^mäçàÙ«µú5õÉúŽŠ¾îßµ¯k_×¾îõ*׫\g•ÿgžhžhÞÙÀ³gUUU¿.]vÉáªÓGŸ±Z¬smýôEC÷÷xjùñ¼a‡­6÷/F{Øî:[ØÁÂfÕAÚ–Öüê|Ðär`ÅšFÍÍêÇÔ‰ùº·qXã°Æañ£âGÅb0ñmP†0qkw!ïBÞ…„ä‡ä‡äË ØBõ…ê Õ_G¼ŽxÁ¨¡dYͳšg5_»qíÆµ…œêÙµfך]+mRÚ¤´IŒJ–}(ûPö¡p¹p¹p!‡ZnrìäØÉ±/”^(½PbÔP²œ—9/s^nk³­Í¶6BNõX±c=žŽ|:òéHF %ËMÉMÉMÙÓnO»=íê,¬³°ÎBa¦zغa놭KY–²,e£†’å¯É_“¿æÆ!Cš57j tvíwØï°ßáû#ï¼Ïïjü‡B¥B¥B¥ã‘Ç#GêÏÓŸ§?O˜©î½º÷êÞ«ïÔ¹SçNF %+ê\Ô¹¨óõ3êgÔÍ_˜¿0!ÌTwqíâÚÅõÆ”SnLeˆ2DŒ¤)ö.ö.ö¾àyÁó‚§C-‡Zµ„™jϳžg=Ï^ÙqeÇ•¢­¢­¢­Œ¾% À& ÀBUMTMT-61616±_t¿è~ÑßëöÙ³cÏŽ=;^\{qíŵE›‹6mfpð•n‹n‹n'¼Jx•ð*@1@1@ñ{¥ºsTç¨ÎQç¬ÎY³*8Wp®àƒƒ²¸vïÚ½k÷¿WªÛÕlW³]Í“;Oî<¹3o\Þ¸¼qŒ ÊâÖÆ[omÓ~Lû1í¿Wª[Ùµ²kew4çhÎÑœO%jÆe‘ä˜ä˜ä8±éĦ›~¯T;¹8¹8¹¬°þÁúÙ&Ù&Ù&Œ ÊâþÑûGï^}zõéÕ¿Wªííí÷ÔÝSwOÝÌÁ™ƒ33.(‹”ÿ¥ü/åsÍ94çÐ÷JµyŽyŽyζÌm™Û2ßž{þíyÆeñÄä‰É“… :|¯Tn0Ü`¸aSø¦ðMá¯Ý^»½vc\P©S§6^¶uÙÖe[•(5PjðíS­ÝP»¡vÃP½P½P½´Si§ÒN1.ø¾(C˜(WE'ŠNHRNRNR^÷jÝ«u¯Úhw Ýòºqºpá>bµåjËÕ–·}oûÞö-¬_X¿°>=ŠSü±øcñÇ{ï¼w0lYز°eŸu|ÖñYy¥º¥vKí–ÚË/¼|ð°a7ÂòòòèyT (Q”(êõëÖ›u6ëlÖéZ£k®5Ê+ÕÎñÎñÎñKB–„, ¹u5êjT®U®U®Š–‘‘±+bWÄ®žZ=µzj•Wª8p°`û‚í ¶'\K¸–p-§aN܆ô9*ÚcÑcÑcÑÎú;ëï¬ïcâcâcR^©¶Ë°Ë°Ë˜»{îî¹»/Ç\޹“­•­•ÍÉë¨pÏœŸ9?sÞ3eÏ”=S0`\Û¥¶Km—²§Új¸Õp«á3Ãf†Í »´ýÒöKÛ³ÚeµËjGŸ£¢=|øä|ˆ±±±¿ÔúRëK­Sæ¦ÌM™KÏ€ŠSœ^œ^œ}"úDô‰k¯=¼öž-¶klר®Ñ:Ñ:Ñ:±9±9±9ô T À”Ÿ(Q”(êõëÖ›u6ëlÖéZ£k®5äʉs¼s¼sü’%!KB®F]º•k•k•kEÇ€gÎÏœŸ9gÊž)Œ0®íRÛ¥¶KÙg Ví†[ Ÿ63lfإ헶_ÚžÕ.«]V;ú¤§§kr¬É±&>ÐX¤±HcQÙg ºáºáºáã|ÇùŽó=ÝÿtÿÓýß´~ÓúMkúJƒ0eríÞµ{×î:::Ë}'íj¶«Ù®æÉ'wžÜ™7.o\Þ8ÆÙvÿèý£÷N¯>½úôêßkbololo¼§îžº{êfΜ9˜q@¶¥6NmœÚxÙÖe[—mUj Ô@©Á·Ÿh7Ôn¨Ý0T/T/T/íTÚ©´SŒ ¾/ñ”FÿýsôÏô ¾/ À|ìCÙ‡²…Ë…Ë…Ë ÙäØÉ±“c_(½Pz¡Ä¨PÙå¯É_“¿æÆ!Cš57jnæ Äï°ßa¿Ã÷GÞy$£@eWì]ì]ì}Áó‚çO‡Zµj sâyÖó¬çÙ+;®ì¸²C´U´U´•±Ã·DÂD€ÿs=çzÎõJ+”V(•é=Ý|gõé3EØn=7ËÏlÇ ×å{¬å£"ÖWµ5½°a}´­ÿ©^«êXGïšüÚÓûŽÎµõÓ'69ÜÉ}Ëç ×Þ·¹1:t·í®³…kÞØ¬:h³X×rš_ƒFš\ ê~¼ÑFs3ƒè:1_÷ï6kÖ8,~Tü¨øQ &¾ À& ÀH'ŠÅ¹~äú‘ë_úecŒJ5Ô½°yv–EÇë¹þ%%$¸¹•W{ûö®ÿ9Ì^üaT7£ÓukÔIQèPú϶P~¡üBù<­<­<-NCÂâÂâ”m”m”mJ—àÑ!·¡Êi¯Uw­ s £ëºÔ,ßȃõê:¶Ü`1eJãlÓÕú3ë”þ³fìÌØ™±“ñ@˜’å’å’åìÙ²Tú»¼×E ¥ƒÇ/°\õjØ©ÃNáå;Is¬Yóš»lƒ÷™§ºØ7«ß¬ôŸ­}rûäöÉ©7So¦Þd|Qq(C˜(ð/é®é®é®)))¥ù:Ñ{¼g@ƒØk¶›š8•ҷÿY«ùçâôóJÿEèjØÕ°«aŒ8Bðaò‡É&8 4÷q—Gvýꉢ®¯ohk÷½f 95¢«¸T[Uo|¦I·ÒÏ@"ý#ý#ýq„ poáÞ½‹íÛ-¶+Í}\ß·áS¥¸C±K|,o¯Hñ¼øm®™ÛïϹeÞS¹ºâ)ùR=”~2üdøIQQQÆå‹0„‰0ÿ8/^þ¼|i¾6L0èç¡{íï5‘›~¯/}º¢éáÒ\KȲe!ËDEEÉß^bpbpbp©;kïÙ¦ÁÙ‡Ä9 mRpär kÛ#É˪Xy”æZFŽ˜7?o~Þ|2À·÷bã‹/6šN1b:¥ä»¶Ó¯Ö}êi^·Ùæß$HT˜çæ* yHµ„ênµbŒÃÛYéèÔPö/ùZÜ߸¿qón廕ïV’” À& À€ÛMÑMÑÍe–]Xv¡ä/ Þ]ZÞÖ4xî|ìqs¡-¹Jkó¦Çw¹Ž““Ø@PPQ°¡"Š ŠˆØ@c‹&±`‰%jl±k4VìØ ‚-öÞÝéXÀ®±+ƈ ;QyþØœóàY—ß* 0¼_sÎCpv¸{ñ~ï|væþÕ©DÙe)ÿ¼GüŽøñ£o 5€‘9²Ä‰-[téÒ¥K—.f×ÕûÚÓPôôãrBÞúŸeõè7ù>ñvx¿ãçôŠ(¿ÇììgqÅ?,ÿ°üÃòôÒÖÔ S'L`n¶o^¸©uÙ‡ßøé©1îƒW¯ävðÜ‹“ïr¾Ëùè'¤­—6^Úx)åQ8|÷*{/oýU ‡Ú,´®®¥ü³‹áb¸N?Á‡!FæD ÈNÊ$•I*ÓÓ­§[O7sEÿè}Ý›–ë–8(ì¸ßNýM{’ïwž½Ð}‰¹v°ioÓÞ¦ý³€gÏè8¤ÞÜ?æþ1÷s#o« ~A%¦Ä”µ÷Í«ï äø/«6xõHù"ìͼ7óÞÌKŸ õv Ü5p×@scn9Ï’±¶“£ÊÜ]¯­¾+›Svvóy–rr4ÿÑüGóÓg𾀑9²‘I-&µ˜ÔÂ\¡¿ðÕÈ J3ô=á1ÝUV†×œg®M<<<âÆ=Œ{HÿàÃltÜè¸ÑÑÜh;èxÇ©eËŸÒ‘}*Gv|æ3=å‹°[?ný¸5ý€V ¬@˜Ùq¶aC¯ÑÅZÆt õõ-’}*'í„„úË~åTßö s-s%âJÄ•ú,GŒÌ‰-lm¼µñÖÆæŠû%‰£_WöÊnÑoòý‰€Õ“½ÖškŸ>Q}¢úDÑ‹x_'óŸÌ2¿¹vÈÏ—œ´öøä†U³gòOÈî³uV›kÏËž—=/'¸'¸'¸Ó—°Ü\wrÝÉe6ú•½®ëwêÈ¿¾gÏ $ú¥IŸ2Ž×l˜k¥gçŸvž¾K#s"èÜõ<×ó\Ïc® ŸÖ¾ŒËðìý&ß«¥–õðlf®­6xmðÚàEÀOcŸÆ>57ªþ8®ÙŸNsÞ _à÷˜ äZãmVµ_›k«q寕WŽ€%^G¿Ž~íëëòŽ:¤Bhé—…ìcv…Nö­Hòø¾°¦¾ÙÂZÚ·´oiŸ4%iJÒúRFŒÌ‰ ßiÏæ×›_ovôqôqô1-Å:6iºÛ©qÒ´ãº0íI¾_ÝiâwUüÍMþ±ûÇî;zf½Iz“ôÆ?Ú?Ú?Út$u~S2ÌvÄ«ø#Í}·Su$߇þ¸¢”çI³kòí;ºïè>:)›ÖeZ—i]̧ZPo1UGò}„㎦>+͵ØZëµÖk­éWHpZÙ»uïÖ½[m°>`}Àú§ß<ýæé7´Ì‡!èV`¡ÀB…Ìñ/kÓD2Õ1·ïy¸Õ¶R·LÛ­ö–Ú[joIòOòOò§`ê€ïß¾æ*Ȥ½›êrÏÙýü¯†ÿàú¹Ö‹Ý»+v} S—®\ºr銹1ôDÌê^"•†¹ýþó¿¨îb®õî ½7ôÞPúÌ!N½Äï¿OüÞÜï að‡!èPäëÈבf$x>rÃ7Þ-˜Þ¤¼«UhpÌ\îα;ÇnªÞ32fdÌH³£§87ÊÃ#åý¯ðÞ~׬ëÖľ“iNß?}ÿôýô4Þ’')ORžªöUí«Ú›Žž³~l]ñGj Köý‡¶‹*ÓÝ´ ý'ûOöŸLGƒ9À©—üÞß”[ŽK·êäÑÉ£“‡i‰0ñ^Ÿ]¼™Ò¼ÇÃcV,õ|j®äzexexe ¿`4·öÜÚsk›Ž˜ßõlàVü|Râñpª ËöOÙåR§‚¹ äþŒû3îÏ ¿`tàë_øÚtÄ,ÔÜ&ÚjäëŽÇ*øyQ]X²ÿw¬š³ÁsÈé§Kœ.Aƒ)àÔ3ºÆp·€ÅƒSF Еk×®9˜+ bj…:ûZ1¥yß}Ûq^:º›¶gÈ®]!<†€¤gן]vÝìcŸ÷¶©kCEñ¾ûi:¹,0mÏÁ3Ï<“^@¢k¢k¢«¹ $,1dš—5ÅûîwµœsÂý_Óö¬Q3¢fDÒ‹¤I/è{HŽ8m§`€®töéìÓÙÇ´Øâ0=ºÚL¦1¶¿õÛ®Guºš+°â…x!^ ï²³ÀqãÇ™Ž’ãÎ÷jR~:µÄ.H±T½Õ`—¹ äa¯‡½ö¢ï²³Cч¢E›Ž’M.úäqhK-ñ RŒ _á÷Ôi–ƒdó™iÛžs:çtΉ¾‡ä€Óapjt"ªkT×(³!åëÀc­ü˜Æ¤jßcá÷ñ¥º™¶íþ‹û/î¿HdOñíãÛÇ·7W<&4­_ˆ*"5ûEFyTÚ÷Ž £fEÍŠ¢²©„¤„¤„Êñ•ã+Ç›Ž’Ælœê½‰*"5{9ï­Æùw¬üÀÿÿ: ’#þ8ƒß0@'毟¿~þ;†ÿºã7¸E0uIýþºÝ¶Ý>åM[¸FX°aô@@ö$¾߈oLÇÇã:L*s•ú!õûç/åÓ Š˜» “à—à—àG?d7aaa¦#£Ç&×ßìæP?¤~Ÿ(†áj®yRôIÑ'Eé‡0"þøƒ-A Èúl“l“lÍ íÏ·É‹|õñ§ ÞSq×¢E Ö­›×cy‘û}º·JŒpÜÑÄgef›¹].¿·ðÓó¿¿õþÖû[錀ìæ[ço¿u6¯µÜV¸vHZíû•ð¿Y¦°éùŸ¸tâÒ‰KôC@v00``À@Ó‘ñà²ãª/¦I«ýÊ|¿G»u6=ÿuÕÖU[W~#àŒEl0 Ë»Ùåf—›]Lòö1M69&dÔ$¡@šÊ<“Ÿ­ÒÌšÕšžáêþ«û¯îOod/6½Øôb“é˜Xd‘]3ëAIëOiX• $­öç®ð~G<0|`øÀpz# ûxóòÍË7/Íݱ;7óý™ $­ö&fÖ»iz†ÕšUkV­½FÀ™aprÀ€,oiôÒè¥Ñ¦ƒ·¼x©[3CTúw/· úÍŸ_½•é~ï²ÀÎ;V]žð Š×ÃÊpz^<¯Í:´ -(Z9fž)ÐÓ†âžú¿›¶¶w)ïRÞ¥è€ì#ôAèƒÐ¦câÂ*#sVêD’¶û„[aíýÍ]²yc÷Æî}ÜÞz{ëí­¦£a¥Eµ’M©@Òc_ýR¥^vïXøyüóøçñôIgN„ÁÀ€,Ïû‰÷ï'¦ö¿ƒ”W f†ÉϵæÛlk¿~ß¿[©¢óÊBÆ?w¶o~ÏéQ晹,,³¤Ð7ïø¬ñ½Ø{±÷è“€ì`äù‘çG¾ãRàJÛgùô¢I}Ÿçm+–^bÚæ‘#7Fn¤O²ƒM6uØÔÁt4<´iaëê©@ÒåAÐÅ~OpûÉ´ÍX±:bEŸpæ—=Ã``@ÿ8þqücÓáÙ¹qÉZ¶-2vzšÉq¿:lâÚ*ÿ­èã–¯¼]á&™gò3sè î]L[þò³ËÏ.?£g²‡µkÖšŽ†¯_ ñëH’ûƒ9|Y}˜i›ïqßã¾Ç> ȺXw±îbm:>ÚaØ^ïHzì¯{l ÷q3móÉ/'¿œü’> à¬%û„ÁÀ€,,2.2.2ÎtHs«Gb¹¿³z|ÊiÍ‘Z9G°Y¸Ÿµ[æyüQXÑàË5ß± ΦÏ6}¶é3z&@ß^y¿ò~åm:ÖëY}SÑêT é·¿{g¿sÝ¥¦-?âàˆƒ#Ò3:w-éZÒ5³ "Ä…¿iø5Hzìã\üêk0ms¯“^'½NÒ1Aœué; &da¡Á¡Á¡Á¦ÃðÞÖåÒ>ÒÞtœR´ŸG…*ôÛ¿î|ÌÕÏË´åk4©Ñ¤Fz&@ßbÏÇž}ÇòÍêÔqvØ@’Þûâ3Šv/ØÆ´ýé™ Öý…ÁÀ€,,xUðªàUïxñå-åk÷˺“ŸØ)‡]|;Ö)æ~³Èã&ú¶¯Ð/]~-xô¹_ùwÜù”»^îz¹é™} ÷ ÷ ÷4w¯›{É£.Hzï‹ì³ëa=‚˯€ìæ^ܽ¸{ïx Ú¤½}[WèK’ÞûN^Í=PÀ°þè# &dacCƆŒ yÇÊ7ß~®÷Wæ™üj±0ouÅ82Ý_µùfmÿÂÊÖ´[iû{¬[—šÃÜ~µï›üÿ†ª5LÈ<ëß$]=¾µ¡iË[­µZkµ–ž зíå·—ßþŽB¹°.²VHzï›o«ÛÈ!˯€ìæÂñ Ç/77L˜Z¢ê!*ôÞO=ЄËT 0E¬oY7 &daÝl»Ùv³5bcj‡–óµÎ<“Ÿã¼°äÛ®÷GèV÷efûÜ«qïºÌ¹R!É »YúÃÒ–¾ãòß­|»Ôù† $½÷ý{µ»U¦+ »9|8øð;–Á’â–ìªqš $½÷«[NlX¥5LgY+ Αy~%H+ñ‹ŽÎõË›Õ'?ɱreÍÉ™mòÓ`žgÇ¢»èo=¨ð“z¥¨@Ò{?ns¯ŠåÇÓß0:ž¸ºˆWHzïw\š½Ö}ý À‡Ù»uïÖ½[ €H•×çMõk׿yR\8UßûÈÒ Û5¿m^³N”Ã?Æ#écWÞº§ñÏ™gòÓ$ΧœCgúF¯¾¬w€ $½÷'~‰­IÀèôãu•jõ¡IïýÞ }±bØB¿ÕÉÓõQK‡’s¸€Ì)³Ý¬× „;€H.³Ý¬× „;€¤F6ºØø t66666¶Ôlß¶ú¶Õ·­LÔ̶ð‡M~þ›`ܽÝ=Äx—veúò2þ93¯LÏdccccÓ÷6\®WMGÀ̶°^+skÓ3ÙØØØØô½-ö^ì½ØÛtÌlkëµ1·0=“Í´W,ʵ(×¢\´Œþ¶}£öÚ7ªwÎÞ9{ç´<ú5~6Z€Ô26dlˆé°úè{ÃÏõþÒÇäç”Óš#µþ+)ŒAÊŸ~½z|kCÓ–·ZkµÖj-= oÛËo/¿½¼é8xæÂºÈZAT é½o¾­n#‡Óö§gôíÂñ Ç/77L˜Z¢ê!*ôÞO=ЄËT 0eîc´Œ>ƒÛ€õëÖ[ú¿ÿㇾɲ°àUÁ«‚W™±—/o)_»Ÿ>&?A¥÷r«`æêçeÚò5šÔhR£ = o±çcÏÇž7›Õ©ãì° $½÷Ågí^° 0Lëƒ>Bßä€YXd\d\ä;>ý:æVÄrgžÉñ¬úÍŸ_½•¹ýþ1\®^üÏY‹ª6—»çæò¼‹t.ø•ñŽù‹Í/¸%ªÃÁëõ~Ê ëß„ ¾\ó¦iËoúlÓg›>£gôí•÷+ïWïX¯^ÏꛊV§I¿ýÝ;ûë.5mùGqž йkI×’®™ !ÞÄ…¿iø5Hzìã\üêk0ms¯“^'½NÒ1Aœué/ôMŽ…Å?ŽÿØtvn\²–m‹Ìsù55 ­³­a5k÷¹w=|3Ïç^gÔ½¢Ë;¾ýìò³ËÏ虀ìÀa­ÃZ‡µ¦£áëÇBü:R¤Çþ`Î_Vfz¶{Ü÷¸ïq§O²ƒ.Ö]¬»X›Ž†v¶×{@’ûëÛÂ}ÜLÏvòËÉ/'¿¤O‚8kÑwè›0 Ëó~âýÄû‰éÀüï åUƒYkòcüÄký›5Î1ðËåÊHWúnY^{Nòcf†ÉËÂ2K }czþ±÷bïÅÞ£O²ƒ‘çGžùŽÇ0Þ¨´}–O/*ôØ÷yÞ¶bé%¦ç¹1rcäFú$ ;ØÔaS‡MLGÃC›¶®~‘ $=ö+‹ýžàö“éù±:buÄŠ> àÌ/û„¾É²¼¥ÑK£—F›Òòâ¥n5þÍ<ŸMÍ$*óœÏÓ†âžú¿›¶¶w)ïRÞ¥è€ì#ôAèƒÐ¦câÂ*#sVêD’¶û„[aíýÍ>ôÒîÝ;ú$ ;¸½õöÖÛ[MGÃ.J‹j%›R¤Ç¾ú¥J½ìÞñ±¿çñÏãŸÇÓ'Aœ9eÏÐ79`@–w³ËÍ.7»˜ØícšlrLÈꓟ̶ß*ͬYí¡ik¯î¿ºÿêþôF@öñbÓ‹M/6™Ž‰EÙ5³”´þø”†U©Òjîáú玲=0|`øÀpz# ûxóòÍË7/ÍE±;7óý™Ê!­ö&fÖ»iÚÎÕšUkV­½FÀ™¡orÀ€¬Ï6É6ÉÖÜþ|›¼¸ÁWLZÒjïv¹üÞÂ#LÛùþÖû[ïo¥3²›o¿uþÖÙtd¼Ör[áÚ|-ÍöýJøß,óŽøÄ¥—N\¢²›€šŽŒ—-W}1•Cš=ü9ßïÑnMÛy]µuÕÖU£ˆ8cúšC Љùë篟ÿŽa>¤îø nLZR¿¿n·m·OyÓ®V#¬F==‰oÄ7â›wÜ™:®Ã¤2W©R¿þR>Ý ˆ¹ 7 ~ ~ ~ôC@vf:2zlrýÍnõCê÷‰bø~¡æ*'EŸ}R”~#àÐ×ÀˆêÕ5ª«¹þuà±V~L`Rµï±ðûøRÝLÛvÿÅý÷_¤²§øöñíãÛ›«@šÖ/D‘šý¢£<*í3mÛYQ³¢fEÑÙTBRBRBåøÊñ•ãMGÉ c6NõÞD‘š½œw‰Vãëþú?ðàÿ€ˆä€?Bß÷E ЕÎ>}:û˜ö[¦GW›ÉæÃö·~Ûõ¨ŽÙp=^ˆâú ; 8.pœé(9î|¯&å§SK|ØþÅRõVƒ]æ*‡½özØ‹¾ÈÎEŠ>m:J6¹è“Ç¡-µÄ‡íߌ _á÷Ôi–ƒdó™iÛžs:çtΉ¾‡ä€Ó¡ojtåšÃ5‡kæ†ÿ˜Z¡Î¾VLfÞwßv\£—Žîïx¼ö®]!»èu<»þìú³ëæ*ÈÀ½mêÚPQ¼ï~ZÄ€N. LÛsðÌÁ3Ϥ×èšèšèj® K ™æeMEñ¾û]-çœpÿ×´=kFÔŒ¨‘ô"éEÒ ú’#N[„¾i… C<:ytò0-&Þ볫‚7“Ë÷¡1+–z>5WZ½2¼2¼2Ðß0š[{ní¹µMGÌïz6p+~>)ñx8Õ…eû¿§ìr©SÁ\rÆý÷gÐß0:ðõ¯|m:bjnm5òuÇcü¼¨.,Ùÿ;VÍÙ`ˆ¹ ät‰Ó%N— ¿Ápêú¦`€E¾Ž|ùÚ\qp>rÃ7Þ-˜Øü‡.Æj3׆»sìα›*€·ÄŒŒ3Òìè)Îòð£Æø]ô ïí÷wͺnMì;™¶áôýÓ÷OßOOà-y’ò$å©j_Õ¾ª½éè9ë‡Á֤ưdßh»¨2Ýß±îïdÿÉþ“éh0‡8õönÝ»uïVBß´Å¥[€n ,XÈ\¹ðr°6½A$Ósûž‡[m+uË´Ýjo©½¥ö–$ÿ$ÿ$ú¦øð=àköqÐI{7Õ­H¥an?ÿ«á?¸þc®õbwÅîŠeù ÞáÒ•KW.]17†žˆY}ÃK¤Ò0·ß`þÕ]̵޽¡÷†ÞJƒ9À©—ø}â÷‰ßú¦-`€n½ÞüzóëÍŽ>Ž>Ž>¦¥CÇ&Mw;5Nšv|@C¦:É÷«;Mü®Š¿¹’ë»ìþ±£w`Ö›¤7Ioü£ý£ý£MGRç7%ÃlG¼Š?ÒÜw;UÇ[ Oü¸¢”çIsÈÑ}G÷ÝGç eÓºLë2­‹¹ñôa£C ê-¦êH¾pÜÑÔg¥¹[k½Öz­5ý )#N+Éï&ôM=`€Î]Ïs=Ïõ<æJùiíûǸ gÂcÜ«¥–õðlf®­6xmðÚàEÀOcŸÆ>57ªþ8®ÙŸNsÞ _à÷˜ äZãmVµÍ.Þ1®Ü¸rãÊÑ£°Äëè×ѯ£]b]b]ÞQ‡T-ý²}Ì®Ðɾ<¤áãûšúnæ*–ö-í[Ú'MIš’4…~…”#s"d [om¼µ±¹²~Iâèו½²ó´çDÀêÉ^k͵OŸ¨>Q}¢èE¼¯“ùOæ?™ßÜ;dÈçËNNZ{|rêٳù'd÷Ù:«ÍµçeÏËž—ÜÜÜéKXîN®;¹îä27Â6”½®ëwêÈ¿¾gÏ $ú¥IŸ2Ž×l˜k¥gçŸvž¾K#s"d#“ZLj1©…¹â~á«‘A•fd·iÏQeexÍyæÚÄ#Á#Á#!îaÜø‡ô>ÌFÇŽͶƒŽwœZ¶Lâíð2~'²OrãÈŽÏ|¦HÑãÖ[?nMÿàÄ+fvœmØÐkt±–1]C}}‹dŸ äI;!¡~ã²_9Õ·ýÂ\Ë\‰¸q%‚þË#s"d'e’Ê$•ééÖÓ­§Ù‡üŒÞ×½i¹n‰ƒÂŽûíÔ÷´gÇáÙ Ý—˜k›ö6ímÚ? xð,€Ž@êÍýcîsÿ07ò¶šàTbJLùP{ß¼ú®@Žÿ²jƒW”£ß›yoæ½™—>@êí¸kà®æÆÜrž%cm'G•;¸»^[}W 7§ììæó,å ähþ£ùæ§Ïà}#s"d;‰-[$¶èÒ¥K—.]Ìý¾_{Šž~\NÈ[ÿ3=MxŒwŸÓ+¢ü³3žÅXü°üÃòËÓ[H[S'L0u‚¹Aؾyá¦Öe#v|㤿 ¯Á«ÇWr;˜ò…×Ëù.络~@ÚÚxi㥗R…Ãw¯²÷òÖ_r¨ÍBëêZÊ?».†‹áô|`dNÀ€l*ñXâ±Äc ,<°pÊÓÃï _×È•Õ'<×ço·õñ«p±Ì§…Ìý¤e–]Xváã‰'>žH ýÌ>ÿùüç)W k~˜dUenÒ³ãRÃY·‰º¨i½ ßn0¾øÃ”Þë˯/¿¾œ¾@úÙÝ~wûÝíS‘§þÚ¿‹ïë½Çú}›u+—/´§¾Ÿ ù«S‰²ËRþyøñ;âGß@j#s"doç’Î%›§ÎSç©)O Ú¶iô—c…;õ÷þ]7Ë|6nü‘}¾§§NèßÜ¥QÊ?]ëî­»·î33ffÌL:Çö¡Û‡nšòíþ¢âc»Ÿ/>Ý´Ñ;)Ë\xwü׆®!/&T¯’+埮ÂÍ 7+ÜŒòˆòˆò ?ðq„· oÞ®€/ *RÓ&kE¿û;ü!T/dÉOw9ìrØå0úR™0ÿ‘­d+ÙÊ’IÂÈ ?5s>}ñÑu2ÛT'¦uh-ßÂÁãÇÛ¸í²äg œ8/p^Rë¤ÖI­é||¦^˜zaª%£v§–Í›8‰7Foó•Ù*×» ðûv÷µy9<šYò³ 0hÀ qÓã¦ÇM§ðñÝ]ywåÝ•ncÝÆºMyÔ®÷EõÎEÏÔX׫֨¤„ãa ý2Q’ëxî†ùޏÍ®Y½bÙ²_ê•òÏÒôqÓÇM?]ðtÁÓô¤`dNÀ¼%Ê/Ê/ʯYD³ˆf]ŠѼ·ÓÑÓžkCjÕ˨ Ïý<òÕ½1ÁÐ;¬|\‹ :t*ˆw€Ìà嘗c^ŽÐ}@÷Ý-Ç}oÖü©h’rfY)Ïšö±³/CsøæZXtÄóJí,¯@ô:Ðë@/Þq2ƒ„- [¶Ì®9»æìš–Œãå{”úÇ6lçÑ9]Üÿʨ äÍ´ðu~Ïÿ¼p¾jÇB¹mYõ¶ä̃ >˜T+©VR-Þw¤-`dNÀ¼KXRXRØî3»Ïì>Sà=ýj×Ù¡lä‘rAÓjº'Þ/çw2m§:ýµñsïɳ_iWÑPäËÂÖßY~n3­fZÍ´Š+W2®$o2™´ *T£PB5,å»7ûîU);Ã÷ /WOˆq -â›7m+ë˶ñi´¢Úر•_¸-*?±poËÏm@€„ Ï6<Ûðlï/™Óµ× \+àÕÇ«WËGùïgøÚ”°Ý±oö ÷…ûÚU/8m+È_÷Ö©›w£çÔ­U#ý^{Õ)VÇòsky­åµ–×"ÏEž‹<Çû‹ôCŒÌ‰€ÿ!æLÌ™˜3ómçÛη- -âë[?ñBŸµ<×H“~®²~¿ß›«[)k—åôtSW, õìuèÇ……«‡nœ2õQÕ˜Yµç¨èßÙ¾ù=§GEZÙÙYÿôa¯ÛgTŸQ}FÝs¿ç~Ïw€¬"ajÂÔ„©Kn,¹±dj*?›š3Š}ýÛÐî7ËÍ ^1¾‚Û½]«x¬Q ,å™O«²ÜÓsšPyÑä•¶ÜŸ1·ÚÁÀúÎïùs«¥N”ýÅiŽ­Ã‡½î·¾ßú~ë{µêÕªW«òneLKš–4M Ø_°¿`áÃ*š×Ü4ûñC…NËž^6~ŒKåÀ]Ýæ\u•]–\­qU ]¾És£˜°øq…;jÌvv¹ø‹Qƒ+0ªý¾2+«V©ZøÈ‡½nå ÊA•ƒÂ‡„ ›‰ƒ™0ïáÅÎ;_ì .\ ¸@f6æè˜£cŽÞµ½k{×–w €¬.~qüâøÅ;Kì,±³„ãJÇ•Ž+3gòó®Ÿwý¼ëêૃ¯æ] «{ÓöMÛ7mÕæjsµ¹w>ï|Þù2gÒ\l.6O¬?±þÄú¤5Ik’ÖðÞác"FæD @ªœ¾rúÊé+ê¨? ~FMuZäm‘·EÞƒn8¸!nxÜð¸á¼/èÛÕ=W÷\Ý3>÷øÜãsgTâåêåêåº¹Èæ"›‹<ïû¼ïó¾¼/è[dåÈÊ‘•ç­™·fÞ['['[§_”.UºTéRËË-/·¼ÜƒC=8Äû‚ŒEŒÌ‰€´£$)IÊõê׫_¯¾ªìª²«Êúéÿ¥ÿ—i5É©^?¼~øœÀ9sO)§”SÊ+W¯àz‰Y%f•˜•ú Ä9Ø9Ø9xxá=†÷0t3t3t{ÜøqãÇis°0&æeÌ˘—G¼Žxñ:ÜøpãÃ#¦DL‰˜BË€ôó&êMÔ›¨#aGÂŽ„…îݺÿôÓ7Nß e@z;êÔÿ¨hÙв¡eÆ9C›@z                                                                ø¨pè§¡Ÿ†~Z² cNJ Y0èD¶ €_ý$ô“ÐOBs„æÍ¡½ÑÞho´D-QKÔ^k¯µ×Z¼¯Åk¯´WÚ+-V‹Õbµ—ÚKí¥öB{¡½Ð¢µh-Z{®=מkÏ´gÚ3í‰öD{¢=Ökµ‡ÚCí¡¥EiQÚ}í¾v_»§ÝÓîiw´;Ú-R‹Ô"µ´´´[Ú-í–vS»©ÝÔ"´-B»®]×®k×´kÚ5íªvU»ª]Ö.k—µKÚ%í’vA» ]ÐþÒþÒþÒÎiç´sÚYí¬vV;­ÖNk§´SÚ)í„vB;¡׎kǵ0-L ÓŽiÇ´cÚQí¨vT;¬Ök¡Z¨ª©šª©š¢)š¢Iš¤Iš¨‰š¨4ƒfÐi‡´CÚí€v@Û¯í×ök{µ½Ú^m¶GÛ£íÒvi»´ÚNm§¶CÛ¡íжiÛ´mÚVm«¶UÛ¬mÖ6k›´MÚ&mƒ¶AÛ ­×ÖkëµuÚ:m¶V[«­ÕVk«µÕÚ*m•¶J Ö‚µ`m¥¶R[©iAZ¶\[®-×–iË´eÚm‰¶D[¬-Ök µ…ÚBm¶@[ ý¡ý¡ý¡jZ 6W›«ÍÕæhs´9Ú,m–6K›©ÍÔfjÓµéÚtmš6M›¦MÕ¦jSµ-@ Ð&k“µÉÚDm¢6Q› MÐ&hã´qÚ8íwíwíwmŒ6F£ý¦ý¦ý¦ÒFi£´‘ÚHm¤6\® ׆iôaÚPm¨6T¢ цhƒ´AÚ m 6P¨ Ðh´~Z?­Ÿö‹ö‹ö‹ÖGë£õÑzk½µÞZO­§ÖSûYûYûYë®u׺kÝ´nZ7­«ÖUëªuѺh]´NZ'­“ö£ö£ö£ÖAë uÐÚkíµöZ;­ÖNk«µÕÚjm´6Z­•ÖJk¥ý ý ý }§}§}§µÔZj-µoµoµoµæZs­¹ÖTkª5ÕšhM´&Ú7Ú7Ú7Z#­‘ÖHóÓü4?ÍWóÕ|µúZ}­¾VO«§ÕÓêjuµºšæ£ùhµµÚZm­–VK«¥yi^š—æ©yjžZ ­†VCóÐ<4Í]s×ܵªZU­ªVE«¢UÑ*k•µÊZ%­’VI«¨UÔ*j.š‹æ¢•×ÊkåµrZ9­œæ¬9kÎZ­ŒVF+­•ÖJk%µ’ZIÍIsÒœ´Z ­„V\+®׊iÅ´bZQ­¨VT³×ì5{ÍN³Óì´BZ!­f«Ùj¶ZA­ VP³Ö¬5k­€V@+ å×òkùµ¼Z^-¯–GË£åѾ־־־ԾԾÔrk¹µÜZ.-—–Kû\û\û\ûTûTûTË©åÔrj9´Z5IMR“ÔD5QMTÔ5AWãÕx5NSãÔX5VUcÔ5F}¡¾P_¨ÿªÿªÿªÏÕçêsõ™úL}¦>UŸªOÕÇêcõ±úH}¤>R£Ô(5J} >P¨÷Ô{ê=õ®zW½«Fª‘j¤z[½­ÞVo©·Ô[êßêßêßj„¡F¨7Ôê õšzM½¦^U¯ªWÕËêeõ²zI½¤^R/¨Ô ê_ê_ê_êyõ¼z^=«žUϪgÔ3êõ”zJ=¥žTOª'Õãêqõ¸®†«áê1õ˜zL=ªUª‡ÕÃêa5T UCU#EUTE•TI•TQUQ5¨Õ R©‡Ôêõ€º_ݯîW÷ª{Õ½êuºGÝ¥îRw©;ÕêNu‡ºCÝ¡nS·©ÛÔ­êVu«ºYݬnV7©›ÔMêuƒºA]¯®W׫ëÔuê:u­ºV]«®VW««ÕUê*u•¬«ÁêJu¥ºR]¡®PW¨ËÕåêru©ºT]ª.Q—¨KÔEê"u‘ºP]¨.Tç«óÕùêêêj ¨ªsÕ¹ê\uŽ:G£ÎRg©³Ô™êLu¦:]®NW§©ÓÔiêuŠ:E PÔu’:I¤NT'ªÕñêxu¼:N§ŽSǪcÕ±êuŒ:F­ŽVG«£ÔQê(u„:B¡W‡«ÃÕ_Õ_Õ_Õ¡êPu¨:X¬V©ƒÔAêu€:@í¯öWû«ýÔ~j?µ¯ÚWí«öQû¨}Ô^j/µ—ÚSí©öT{¨=Ôjwµ»Ú]ýIýIýIíªvU»ªÕÎjgµ“ÚIí¤vT;ªÕjµƒÚNm§¶SýUÕ_m£¶QÛ¨­ÕÖjkõõõõ{õ{õ{µ¥ÚRm©¶P[¨-Ôæjsµ¹ÚLm¦6S›¨MÔ&jcµ±ÚXm¤6R© Õ†jCÕOõSýÔjµZ_­¯ÖWëªuÕºjµŽZG­­ÖVk«Þª·ê­z©^ª—ZS­©ÖTk¨5ÔjuµºZ]uWÝUwµšZM­¦VQ«¨UT7ÕMuS+©•ÔJª«êªºª.ª‹ê¢VP+¨Ôrj9µœê¬:«ÎjµŒZF-­–VK«%Õ’jIÕIuRÔj µ„Z\-®W‹©ÅÔbjQµ¨ZTµWíU{ÕNµSíÔÂjaµ°j«Úª¶ªj£Ú¨Öªµj­Z©Vª•š_ͯæWó©ùÔ|j5šGýZýZýZýRýRýRÍ­æVs«¹Ô\j.õsõsõsõSõSõS5§šSÍ©æPs¨9”$%IIR•D%QIP”%^‰Wâ•8%N‰Sb•X%V‰Qb”å…òBy¡ü«ü«ü«J¥—ÒKé¥ôTz*=•J¥‡Ò]é®tW~R~R~Rº*]•®Jg¥³ÒYé¤tR:)•ŽJG¥ƒÒAé ´SÚ)íÅ_ñWÚ(m”6Jk¥µÒZùAùAùAù^ù^ù^i©´TZ*-”J ¥¹Ò\i®4Sš)Í”&J¥‰ÒXi¬4V)”FJC¥¡ÒPñU|_¥Ò@i ÔSê)õ”ºJ]¥®RG©£ÔQj+µ•ÚŠ·â­x+^Š—â¥ÔTj*5•J ¥†R]©®TWÜwÅ]©¦TSª)U”*JÅMqSÜ”JJ%¥’⪸*®Š‹â¢¸(” J¥œRN)§8+Ί³RF)£”QJ+¥•ÒJI¥¤RRqRœ'¥„RB)¡WŠ+Å•bJ1¥˜RT)ªUì{Å^±Sì;¥RH)¤Ø*¶Š­RP)¨T¬kÅZ) P (ù•üJ~%¯’WÉ«äQò(y”¯”¯”¯”/•/•/•/”/”/”\J.%—ò™ò™ò™ò©ò©ò©ò‰ò‰ò‰’CÉ¡äßÈoä7r¢œ('ʯå×òk9^Ž—ãåWò+ù•+ÇʱòKù¥üR~!¿_ÈÑr´-?—ŸËÏå§òSù©üD~"?‘ÉäGòCù¡üP~ ?È÷åûò}ù®|W¾+ß‘ïÈwäÛòmù¶üüüü·ü·ü·|S¾)ß”oÈ7äòuùº|]¾*_•¯ÊWä+òù’|I¾$_”/Êå¿ä¿ä¿äóòyù¼|V>+Ÿ•ÏÈgä3ò)ù”|J>)Ÿ”OÊÇåãòq9\—Ãåcò1ù˜|T>*•ˇåÃr¨*‡Êª¬ÊªñY’%Y’EY”EÙ dƒ|H>$’Èäò~y¿¼_Þ+ï•÷Ê{ä=òy—¼KÞ%ï”wÊ;åíòvy»¼MÞ&o“·È[ä-òfy³¼YÞ(o”7Êä òùOùOùOy¼N^'¯‘×ÈkäÕòjyµ"‡È!r°,ËAr$¯WÈ+äeò2y™¼T^*/•Ë‹åÅò"y‘¼H^ /Èóåùò|9P”åyòRo©·Ô[ê)õ”zJ?K?K?KÝ¥îRw©›ÔMê&u•ºJ]¥.R©‹ÔIê$u’~”~”~”:H¤R{©½Ô^ò—ü%©­ÔVj+µ–ZK­¥VR+©•ô½ô½ô½ÔRj)µ”ZH-¤Rs©¹Ô\j&5“šIM¤&R©±ÔXj,5’I¤†RC©¡ä+ùJ¾R©Ô@ª'Õ“êIu¥ºR]ÉGò‘|¤ÚRm©¶TKª%Õ’¼$/ÉKò”<%O©†TCª!yH’‡ä.¹KîRU©ªTUª"U‘ªH•¥ÊRe©’TIª$U”*J%ÉEr‘ÊKå¥ò’³ä,9Ke¥²RY©´TZ*-•’JI¥$'ÉIr’%GÉQ*.—ŠK’ƒä •ŠJE¥"R©ˆd'ÙIvRa©°TX²•l%[ÉF²‘l$kÉZ²–¬$+ÉJÊ/å—òKù¤|R>)”GÊ#}-}-}-})})})å–rK¹¥\R.)—ô¹ô¹ô¹ô©ô©ô©ô‰ô‰ô‰”CÊ!å߈oÄ7b¢˜(&НÅ×âk1^ŒãÅWâ+ñ•+ÆŠ±âKñ¥øR|!¾_ˆÑb´->Ÿ‹ÏŧâSñ©øD|">‰ÄGâCñ¡øP| >ˆ÷Åûâ}ñ®xW¼+ÞïˆwÄÛâmñ¶øøøø·ø·ø·!Fˆâ ñ†xC¼&^¯‰WÅ«âUñ²xY¼,^/‰—Ä âñ‚ø—ø—ø—xN<'žÏŠgųâiñ´xZ<%žO‰'Äâ ñ¸x\<.†‰ab˜xL<&ˆGÄ#âañ°xØxñÏ8Ý7ò¢‘ ¢ ‰‡ÄƒâAñ ¸_Ü/î÷‰ûÄ}âq¸GÜ-îw‹;ÅâNq‡¸CÜ!n·‰ÛÄ­âVq«¸YÜ,n7‰›ÄMâqƒ¸A\/®׋ëÄuâ:q­¸V\+®W‹«Å1D ƒÅ`1X ƒÄ q…¸B\!.—‰ËÄ¥âRq©¸X\,.‰‹ÄEâq¸@œ/Îç‹b (Îç‰óÄ9âqŽ8[œ-ÎgŠ3Å™â q†8Cœ&N§‰SÅ©âT1@ ÄIâ$q’8Qœ(NÇ‹ãÅñâ8qœ8N+ŽÇŠcÄ1âq´8Z-ŽG‰£Äâq„8\.‡ŠCÅ¡â`q°8X$‰ÄⱿØ_ì/þ"þ"þ"öûŠ}ÅÞbo±·ØSì)ö»‹ÝÅîb7±›ØMì*v»Š]Ä.b±“ØIì$þ(þ(þ(v;ˆÄöb{±½è/ú‹þb[±­ØVl-¶[‹­ÄVb+ñ{ñ{ñ{ñ;ñ;ñ;±…ØBl!6›‹ÍÅfb3±™ØDl"6‹ÅÆb#±‘ØHl(6о¢¯è+6ˆ Äzb=±žXW¬+Ö}DÑG¬-Ök‹µÄZb-ÑKô½DOÑSôkˆ5Ä¢‡è!zˆÕÄjb5±ªXU¬*º‰n¢›XY¬,V]EWÑU¬(V+ŠÄ b±¼X^,/:‹Î¢³XV,+–K‹¥ÅÒb)±”XJtD'ÑQtÅâbq±¸è :ˆbQ±¨XT´íE{ÑN´íÄBb!±h+ÚŠ¶bA± XP´­Ek±€X@, æó‹ùżb^1¯˜GÌ#æ¿¿¿¿¿¿¿¿¿s‰¹Ä\âgâgâgbN1§˜SüDüDüDH’„$áðFx#$ B‚ðZx-¼â„8!Nx%¼^ 1BŒ#¼^ /…………h!Zˆž Ï„gÂSá©ðTx,< …‡ÂC!Jˆ¢„ûÂ}á¾pO¸'Üîw„;B¤)D ÿÿÿ·„[Â-á¦pS¸)DB„p]¸.\® ׄkÂáŠpE¸,\. …‹ÂEá/á/á/á¼p^8/œÎ g…3ÂáŒpJ8%œN '…“Âqá¸p\Â…pá˜pL8&Ž G…ÃÂaá°*„ ¡‚*¨‚*È‚,È‚$H‚$ƒ` …ƒÂá€p@Ø'ìö {…½Â^a·°[Ø-ìv »„Âa‡°]Ø.l¶ […­Âa‹°EØ$l6 „ Âa½°^X/¬Ö 넵ÂZa­°ZX-¬V «„UB°, +…•ÂJa…°BX!,– Ë…¥ÂRa©°DX", ‹„EÂa°@˜/Ìæ B (Ìæ ó„9ÂaŽ0[˜-Ìf 3…™Â a†0C˜&L¦ S…©ÂT!@„ÉÂda²0Q˜(LÆ ã…ñÂ8aœ0N+ŒÆ c„1Âa´0Z-ŒF £„Âa„0\. ~~~† C…¡Â`a°0X$  „¡ŸÐOè'ü"ü"ü"ôú}„ÞBo¡·ÐSè)ô~~~º Ý…îB7¡›ÐMè*tº ]„.B¡“ÐIè$ü(ü(ü(t:„vB;¡à/ø þB¡ÐFh-´Z ???ß ß ß -…–BK¡…ÐBh!4š Í…fB3¡™ÐDh"4¾¾¾ „F‚Ÿà'ø ¾‚¯à+Ôê õ…zB=¡žPG¨#Ô|ÁGð¼o¡–PK¨%Ôj 5OÁSðª Õ…ê‚»à.¸ Õ„jB5¡ŠPE¨"¸ n‚›PI¨$T\WÁUp\¡‚PA¨ ”Ê ågÁYpÊe„2B)¡”PJ()”J Ž‚£à(”J%ÁApŠ Å„bB¡ˆPD°ì{¡°PX(, …ÁF°¬kÁZ°¬+!¿_È/äò ù„Ð9àÌÖæ™óÈ} & sÀ™­Í3ç‘ú@L @ç€3[›gÎ#ô˜€Î½oüÆáÃù…üB~Ñ·ußÖ}[×)V§Xbe×–][vm¡u…ÖZW±IÅ&›48ÓàLƒ3¿ùýæ÷›ß‰:'Ꜩ“”/)_R>Ú\OpbÅÄŠ‰•;ÊåΓCN9é·Óo§ßN×Z®µ\kûƒƒ·ƒ·ƒ·[>·|nù~ôüÑóGÏ¥]—v]ÚõßÐCÿ M¿v>6úÝÛûÇØçYA€>Ð9ËàsÎ]8w¡úšêkª¯) g#ÏFžL¿sþø­”š¶µÜÇ9²å¶TÝRuKÕò#Ê(?âÃ^·¸kq×â®Æ?ßùóΟwþÌØwíAŸ}ô™xb≉'Œ_(y«ä­’·Œß_¡W…^zñ/€¬Ž˜€ÎYÔ­»~ìú±i7Zß¶¾m};5ÑãÇlõ‡½¢þàgÏŸ=ö¼EÑE[MÛs(Ú¾hû¢íÓö½³ü§ž÷`ÞƒyRþ~`ú@L @ç déqο•Ò»m?ΑÍy\éq¥Ç•|\|\|\2g¯xßöÝôuÓ×M{Îë9¯çй çZ&´Lh™°gãž{6Þ]twÑÝE±Sb§ÄN¹QùF啃J•*]sXÍa5‡¥|«O¬>±úä}¿¬w¶÷–òqÌý­sdSÆU~+ûþ^ñu˯[~m¼_üïè¿£ÿŽ6®›û4ÿÓüOó×6>`Ù)‡S§iÛ+Þ÷]ëÓ½O÷>Ý-ïóÀô˜€ÎY€<_ð|ÁóÁ¹‚sç²$œ3ÞaiÉ‘=<<ŒßŸVçüñ[)­Ž–~çùaÇœûÅÜ/æ~‘ò:¾ûfo¦å¯büÎ._uùªËWæŽ\ê\©s¥Î=)þ¤ø“âéÝ· /*¼¨ð¢Á×_|ý@¿ýô;óï™Ïü¹7roä^c˜Í¿²:``:gy<¶¼þòúËë§ßC›ß7>$Nï#ßùóΟwþ4w4û‘ö#íGž<y6òÏ<_R¾¤|)Ÿóø¨ñQã£Ò»oW;[ílµ³7 Ü,p3]údÀÀtÎ’x¬EÑE[MM0f|ŒpʯÒh~£ùæ§Õ9üVJ«£¥ßy¾ïÑ&&&Ìm¥íJÛ•¶©?ç¸Þq½ãzW_S}Mõ5¦¯R¢x‰â%ЧßÇÜ’Ü’Ü’î¼?òþHþ5Ð9KB²“n'ÝNº¥þµ’?(85Q%pz9åÇwWyZåi•§iÛÎÛ?ßþùöÏÓ¶e,y׌}’dÀÀt.åxÌ]uWÝÕ´ŠúÞ8¼qxãò+®9¸æàšƒ©9gàÔù茣3ŽÎ0wœ©ã¦Ž›:.m[Øx°¹W\2pÉÀ%Ó¶5êæ­›·n^ø »!& s)‡dãâÆÅ‹û˜¯8øúà냯§æÀ©?òÜ/æ~1÷ sÇ ÿ1üÇð?foìòºËë.¯Ó¶5‚‚‚ø@vCL @çRɶÇlÙ“¶¯¸nùºåë–›{E_ÅWñURsÎÀ©?r»¡í†¶jî8Oó?Íÿ4ÿÇì~;ývúíLÛvV/ªÕ‹ü »!& s)‡dW;^íxµcÚ¾âÙȳ‘g#S³¾,pzÙ«§WO¯ž2äç“V­ñ÷'ò÷'ü »!& s)‡dOŠ?)þ¤xÚ¾âý‘÷GÞiîKÞ*y«ä-àô8OËS¡W…^zež¸RÅJ+ULÛv~öüÙógÏù@vCL @çRÉâÛÇ·oŸ¶¯³0faÌBs¯hjjJœçiùqŠô)Ò§HŸÌ;=wzîô<Û9_R¾¤|ü »!& s?6ÓÜ+:x;x;x§ÇyZ~Û=¶{l÷dž8ùùd†v€¬‹˜€Î}üG@?ªý¨ö£Úæ^±b“ŠM*6ÉDp¾¤|Iù²[\Z+­•ÖÌÇxwFõÕÌÐÎuй”C²«¯v¼Ú1m_ñò¨Ë£.2÷ŠÞ½{7Î<ðóžÿóüŸì»«îª»jî8·nߺ}ëvVïÛüîÈž€ €è\Ê!Ùö˜í1ÛcÒö·TÝRuKUs¯Ø¡M‡6Údž8Â1Â1Â1»ÀMÛ6mÛ´­¹ãœt;évÒ-«÷m~÷dOÀÀt.ål\ܸ¸qqiûŠ#Ë}–{jÎ9mã½íŸoÿ|ûçÙ-ã1ÆcŒÇÇüXÀÇïÛüîÈž€ €è\Ê!Yõ5Õ×T_“f/–/)_R>—v.í\Ú™{E±¤XR,™šsNÛxoðõÁ×_ÏnðÎK;/í¼dî8í{´ïѾGÚöÃȽ‘{#÷ÖöîM¹£ÜQîdTk€žйKýkjq¨Å¡æŽïàíàíàmÉk}œ³}±çÅž{Ò£}2ü¸ÒãJ+™;ŽõmëÛÖ·Ó6F5wϱÕ'VŸX}òa¯E ¦€ €èœ%ÑfË„– -Ró*‰+&V4ÞÍiîUØ °`gI8Wð|ÁóÏ›;Ο³þœõç¬Ô·ÌÄOL<‘=`KŽÖkB¯ ½&¤¾Ÿåx–ãYs¯â«ø*¾ 0¤``:Wà=}Ø«Œ?büˆñ)ù¤ÛI·“n–­Ü”rSÊM1wœªWý»êß/×¾\ûr퇭TP*(L¿–É*ð±ÑÇF~½âuÓ×M_7m^³yÍæ5ÍyKÕ-U·TÍ ­ú@L @ç,8“ßwkÉ‘ñÞ¨n£ºê–ò‘{lï±½ÇvËì?Ñ¢ÿDKÎ9ú|ôùèó–·ÆÚMk7­Ý”ü6¡6¡6¡Ù3¶ä˜VÑVÑVÑÿ?_R¾¤|–óiþ§ùŸæïòU—¯º|eîÈ5ÔXPcAú9¿û²'``:—rHæàà`îÿoæ¾™÷GÞy䫯F¼áááT:¨tPé”ÿ®Q‰â%Š—(þ Ïƒ>úX~Î[Km-µµ”åÑõ‚Í 6/ØöKØ/a¿W·5Þ|£òÊ7*ÇÇÇ&Ôprk®9¸æ`v€ŸRüIñ2»Ëì.³Û’vX2pÉÀ%/.¹¸äâ’Cÿ ý7ôQíGµÕ>:ã茣3f¹ÏrŸånÉG N[Ÿ¶>mÙZ²:``:—rHf t1m4e7ÕnªÝÔ#K,=²ô½¹|Iù’òHg¬œÜ™œgržÉéôÜé¹ÓóôksãýÄl°a@fn Ⱥ€ €èœ%!™ñÏN9œr8åH}ÈWܵ¸kqW¡ŠPE¨’š(îa³‡Í6Kþ àÔ³¾m}ÛúöÔqSÇMgÚÙ9N~üJ+U¬T1m£_c¯Ø³=f{LÚž-0$GL @ç,ÉŒ_ùfÒ7“¾™ôa!_›UmVµYuwÑÝEw¥Ug|Ȱé*ÅïË-É-É-éð†Ão0=·¢íSÚ²Ol;%vJìã1íGÚ´ùamn|¿ºêvªÛ©;ÞùóΟi{žÀ`Š˜ÞÁ8W|}ðõÁ×ë=©÷¤Þç…Î Úî±Ýc»§b“ŠM*6i¸ºáꆫ'\›pmµ+}¯ô½Ò7½ƒ7ãñç~1÷‹¹_´ lØ6Ðx&ƘÖxn.í\Ú¹´«³þÍú7û;÷wîïº?tèþ ¦ßk}üh3yß]ê.u—|\|\|\ŒýÁ&Ô&Ô&ÔøqcÄÞ±QÇF-\±pÅÂiûQ€%€ €À"™ù>KîÍM¯t‹tB·°o0€ìC·ðÃ[kgŸU‡³ÏzÃÙg¥aÖÖßêµÆpöY]˜u…YQ˜µ„YE˜U„3jáì³~0+³f0«³N0ëgÔ:Á¬ÌÚÀ™~Uà‡}öyØG·wÒ0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0&æeÌ˘—G¼Žxñ:ÜøpãÃ#¦DL‰˜BË€ôó&êMÔ›¨#aGÂŽ„…îݺÿôÓ7Nß e@z;êÔÿ¨hÙв¡eÆ9C›@z  í(IJ’r½úõê׫¯*»ªìª²þ_úéÿe4R?¼~xýð9sçžRN)§”W¯<^yÐðàvýÛõo×ß÷øÜUx¹z¹z¹n.²¹Èæ"Ïû>ïû¼/ï úY9²rdåykæ­™·ÆÖÉÖÉÖéãW ¥K•.UºÔòrËË-/÷àЃCñ¾ c™öÒÐOC? ý”–AÆ"à=¼Øùbç‹Á‚ ÈÌÆstÌÑ»¶wmïÚò®ÕÅ/Ž_¿xg‰%v–p\é¸Òqeæ¬@~Þõó®Ÿw]|uðÕÁ¼kduoÚ¾iû¦­Ú\m®6÷ÎçÏ;_æ¬@š‹ÍÅæâ‰õ'ÖŸXŸ´&iMÒÞ;|LÀÈœ€øbÎÄœ‰93ßv¾í|ÛÔLHŠýXýb}ë²þmšõY[qk¿I?» æðÇæª>£O.ËYµÿoÝ—…VÉ=£úŒºç~Ïýž;ï&YEÂÔ„© S7–ÜXrcÉÔT E|ݼjÎ(ýø»sÝoºüÓS_Á­àÐØÀ*UF^:«êôß„åžU~i·hr¥AÎϘ[Þ£ówÃ:ÞôËÓª‡M'‡§9öºßú~ëû­ïÕªW«^­Ê» @–1-iZÒ4q€8@`Áþ‚ý…«슖ï릕Ô¼L§‹îuß0Æ¥òïCÊιZåå¨ûK®V]7¦ðòMUr[ü¸²Í  ³+ÔúiÖ¨Á%û5þ·ý¾B«J®úa¯[9¨rPå ð!áC‡ðfâã FæD À»„%…%…í>³ûÌî3ï;Ù(5¡yÇÎÕŠ4­ö¥àŽáå||BBŽO«½ÇÓ)7~^î·óigõºCáËÏm¦ÕL«™Vq%ãJÆ•äM “–!AaAaA…jªQ¨†å£¼cÃ.ß½ªâ9"páeïöË6†IÛ ¤Fÿ™å¶qñê±cìØB?”:Q~¢åç6 a@€„gžmx¶÷€ÌéZk®ðêãÕÇ«Ï{|Øýºg_›Ê®ƒKÍžáÕxó¡]i[x>ŸûhoWC¿…S·ävÄ«ŽåçÖòZËk-¯Ež‹<yŽ÷釙0o‰ò‹ò‹òkÑ,¢™EÁj ç:!Í{»_›ôåÚ´äX¾¯¹êûùÊ–l½ªw˜å¡SA§‚Nñ޼órÌË1ºè> »E÷õz¹©ùSÕ†£ï-+•Qˆ÷ˆæ(£k·Ï-¯@ô:Ðë@/Þq2ƒ„- [¶Ì®9»æìš–Œã6ÏJô/õO它Íé’QHí˜`1|k£_œÎ[U/¸Íæ%g|0ø`ðÁ¤ZIµ’jñ¾#m#s"à?²•l%[Y2m(Ý´Å_?5«)üÑÿÀ茚ð˜½ûÓ²ÐÐZ.7zîocÉÏ8/p^༤ÖI­“ZÓøø.L½0õÂT‹>væXgzó&5–Ìܾ=,³U µû®üâØ€Êdž~=/‡%?Ë ƒ 7=nzÜtúßÝ•wWÞ]é6Öm¬ÛØ”Gmû1®‡«wöÈ3iͺ^>µCVÏLuH¾¯Žç®æ0vVÐlÛNEÊ~™òÏÒôqÓÇM?]ðtÁÓô¤`dNÀ€ìí\Ò¹¤sóÔyê<5åI‚ñZß6ú«¦ý¼^{ÿÎl—\͆ÁoVì8²Ï¹N»Rý›§üÓµîÞº{ëî13cfÆÌ¤Sðqlº}èö¡)Ñ…+”\ñqõ¶S÷mÚ˜U*Ÿò!ŽÿZ±t¯?&TOù§«p³ÂÍ 7£<¢<¢<è|áíÂÛ…·³ä[Õ>[-¨H–©@|BBŽw:¬Â‚%?Ýå°Ëa—ÃèH=`dNÀ€l*ñXâ±Äc ,<°pÊS‚*uGlYø:kMxÞ±n_¿™¥·ÛÚÖpü¶Ì§æ~Ò² Ë.,»ðñÄÇO¤‡~æ?Ÿÿ|þÿxlrÅ%}>dåS+dñq)ëV ^•ç_8Դؾÿ6ŸòÏ{}ùõå×—Ó7H?»Ûïn¿»}Ê#²³w»¢ýÔî»ò‹c³nâÝbÙ4íi)ßf‹:•Hùç=âwÄïˆ}©AŒÌ‰í$¶Hl‘Ø¢K—.]ºt1»®žU奞¯ …Õ„¼Y=ú}ëñŒƒÛ‡—)s¿Õ£^æW8^\`qÅË?,ÿ°<½€´5uÂÔ S'˜„­.Ùn*Ü´ÆþYÖ;¾ÑSbÜ»Üîyd|¥ÿq/N¾Ëù.磟¶6^Úxiã¥ÿq¿oÂøf«ìõWTùbxÜBë”v1\ Ãé'ø0ÀÈœ€ÙI™¤2Iezºõtëéfv}ßcßuéÞ´¶lv\ÓžäûÊnƒ]f/4×6ímÚÛ´ð,àY€Ô›ûÇÜ?æþav± ïš‹ü‚¼Û-Ûj¯ï ÄÝq¼aÕ†”/ÂÞÌ{3ïͼôRo×À]w 4;÷ß[|ÉX¯¯æw=¸[ßH7³žìì–rr4ÿÑüGóÓg𾀑9²‘I-&µ˜ÔÂì*t_t}02HßÓ}µ¾¿OXn®M<<<âÆ=Œ{HÿàÃltÜè¸ÑÑÜh[òfÓ§ŸÒ‘}*ëgÞØñYÊa·~Üúqkú&¬@X0³ãl‘ßÝ^xöî¾ìx¨oö©@¼./|$$Ø4uèáTß\Ë\‰¸q%‚þË#s"d [om¼µ±Ùèwy7qôëìý¾u/N› =WO6×>}¢úDõ‰¢ð¾Næ?™ÿd~s#l©*Í:þxÞÇ5¤ïñÉÙ³ñ\4çÌî³æÚÇó²çeÏË î î îô%,w'×\wr™~UññºZ;ü›=+Z–ü¦4±©â`ëxÍ\+=;ÿìü³óô%X‚™0@ç®ç¹žçzs½s¯vëúÇdçè7ù¾j›ßì—õ0×V¼6xmð¢G`‰§±OcŸÆšU‹ÇÖùºÙŸµ£ƒw„/ ©á:£Ã6+sm5®Ü¸rãÊÑ£°Äëè×ѯ£]b]b]ÞQ‡Øº;ú–~é=tYbèd*/máza¹ ¤¥}Kû–öIS’¦$M¡_!eÀÈœ€úöl~½ùõfGGGŸw\x5ø´hºÛÇ9¤ýñL{’ï+öé=`âwæ¦@ÿØýc÷½ ³Þ$½IzãííýŽ•ö6_P2Ì;rEç#Í©:Þú Zè˜!+J™]“oßÑ}G÷ѹHÙ´.ÓºLëbn<õª· ÿ!>|ööÑ̲ÙÑÔ\‹­µ^k½Öš~…”§•½[÷nÝ»ÕØ†ëÖ¬úÍÓož~CË|`€n ,XÈ\ï]}™—6©Ž¹½ãs¿†­¶™¶[í-µ·ÔÞ’äŸäŸäOÀÔß¾|ÍU 5óÌ«»w•†¹}ùá]JÿÁ\ëÅîŠÝ»‹>€©KW.]¹tÅÜêÞw¦Õ7¨4Ìí݆u›ÿ…¹Ö»7ôÞÐ{Céc0‡8õ¿Oü>ñ{s¿ƒ„Á† C‘¯#_G¾6W4x(77|Ãô&å½w‰¥Ï´ æÚpwŽÝ9vSE𖘑1#cFš=+«CâæFQc¤¼¯}/xvxï‰åóº51mÃéû§ïŸ¾ŸžÀ[ò$åIÊSÕ¾ª}U{Óѳ\ÅŽù[ScX²/Y«q«vQ¦mè?Ù²ÿd:Ì!N½ä÷þ¦Œ0Ør\ºèP'N}L‹€JMøOfówátžS|×#sV¼/Ä ô=@v8.p\à8ÓQ²Lh«‘½šPK|à‚y—îSo™«@özØëa/ú ;;}(úP´é(Y´Kµý>y¨%>pAŠÁûÂWì_d³ƒdÚ¶çœÎ9s¢ï!9àôCœÀˆêÕ5ª«¹¿v÷ çÇZ1IÍÞ1 Á¿ßÇ›¶íþ‹û/î¿HdOñíãÛÇ·7WxmYØMhJ‘š}…Š?uõŽ¥=fEÍŠšEdS I I •ã+ÇW~Ç<½zþ)—6N¥ŠH;ÊÓQ—hïXøÿÿt@$Güq¿/`€NÌ_?ýüw ÿsö*3~S—Ôïk´žqeÛnÓ®V#¬F==‰oÄ7âÓñ±dp“À“¨Ò`5¾éKäÓæ.è$ø%ø%øÑÙMDXDXD˜éÈX¸yÙ[®¿Q?¤Á}À§ƒ„a®yRôIÑ'Eé‡0"þøƒ-A ÈÂå”%jY-/Îàè´ÒŒNÛl“ŸUÖê\êEù½ïû.Ð{Ù­&©QyF—m…©Þã2k› #ÇÊ•í0(¾°cÙ*±šhbûÂÆË¡Šc’Sµ†…Z¢Þ åÑÐíöð© Æeæÿ­z©ÒŒNÛl3çµïºËÚi;©=ða¿•Àa°9ÀLrLU{|“M™âÞY“IEÖ½Œ[iÙÀ63k~XOd‡šÄºp¡!vÍ|\C~9>…Øò}éÛßíí~°@ªÑ?Ù¹ñ^»|ñáfY%ÎØ 'õ0µÌýVgÂàä€Y²œJ¬øÿÛ’–KZ.ii:xWýjt…¥nÀiüÆ\‹~÷˜+˜ŒïÈ¥i—¦]šÆ¤}.ñ$WþV×#sò‘÷ÝÛ,*ÞºäãOZÚ¿EÒO“ªŸ^sËroë¥GÕ—À¤\‡”è]wð·¿fþ?ó\ñª¿ÀúВ䵇¹³-<ȹe¥¼Ô°ü·’83 &dÉr*ù×½Ÿx?ñ~òއ?Ÿ_ú©òŠ8=ö¶µ2KL¢Ø{±÷bï]k~­ùµæLŠÙçÏ[3œ1sÂöYÀ©¹lŒ~M¿Çiv£jm+¨CLU)<Âuakà;Ÿ”¿ÇeñÏW~O ö€å¿•À™Mö ƒ €Y²œ2~%þqüãøÇ¦Ã³ÍÔâÎ%kežéþàrŸt˜:¨»éOtùÙåg—Ÿ²Û%žäj_éz,„8=Vt;2ÜeÁ—ÀêS^S<4l'N—«:fDm §ö€å¿•À™Yö ƒ €Y²œ2~%2.2.2ÎtH.Síûí=ezÍ}t<Ð͹€ÿœ~sÎ×üͧ…´2•]š[M´ ±}a[Ò1Oé-EÜÝr×lRnâNC†x\xL8õq`œ“&­«SüOó¦;mò[éXßxV…¢Ë(¿*cýý7=†¥Çù$ß×¾<&üûŠ[úÔŸôSÑ?Ý—Ô©Tp|‘Åóþw& J¯¨0¯”M³?þXcÆÌ ÛgÿVµ-ãZ_6ý‰6}¶é³MŸ²Û%#û9®IÕ7™sw­|¶°bËÞ¼cÌÕÊTvi^ºB‹~]«—W½0fãŠ>Ž9ê7kyÅXYµ¶Éo[ÃözÉVÎ+Özýݨ‘[³_7ÿQÔX3¤÷%`sþ«ëzþ¼ß™M]Kº–tÍìX™'$gø›”GÞJcÄ΋ͩ1¤þõ‚ÛŠŽ.fµÃ¶Z¡í…Ç8¨TÇxåÄ»ÿ²G¡ýÓ¯yGt}rá1á”± *ôUÉ{å:üwÅf‹“ZöŸâ³jjòÒ£Óäõîÿ˜k¿µð“cüJíËgÀY…¾Ã``@–,§Œ_   6†Ý }X®j“Ñ/–¹[µ .Z´À{ò<=wüž=é[•-8ÆftÊgbãåPÅ1©ºÝ”ç7¦ñj¾{–¬V~+:Òý ŸA–·Œ«ÖoÛÔ“^Þ roú‡Ù ³fC Èn—xŒÊÆû7îçñŽæug™W¥¢—öcîÏ¿LŸÒ*=.¼£ÜR+›ïëhùù8 ÷ú¶á ïºËÚi;ÓlÝßÞšÓ!ã>ùk/I'ÿ¿ÿyû óÇ\ €ÙSìùØó±çMǾ¢kÝç×q6^_Qàð=ãâ-÷K»uMiüšEgUlôOKG|üظ·þ¥ðxûõÔ°dv@œé/ &dÉrÊø•àUÁ«‚W½ãÎÚ¯&­\÷“Í‹£J=ÿ/Fíí 9*Ÿ¯Ó¥_×Wûl¬wPYS:oxbœ<”9Þjn¯^ÆO˜¦ÇeVs°QéÛßíí~°J®á/æ­\}pÝÙÛK¶o¼¿}ß>V8ñÖ#%ÓôΛ·¦aÖí æ,3à‡_~~Zå§‘ö‹ª=_8ä¯òÞ{ëa¼ûÖÊ|³§ý¼yºéÏR/w½Üõr²Û%£Êâ‡s/½5æÉ<±Ï<„º&ÿÎb<û¶vyÑ3nüÀjUÇžºír¸gÏq»Š^ðp©•ò]°©vöº("!IDATß—ÜæJßöÿ}m¢Mˆí‹2+~xÓs³±q_;±Ëš#¯õùkrqûK•n×8ûqÕhÉ# ÿ»üêP(À®0 »¹w/îÞ;ž‚Vvb› }Í®þëX©~Äw “¿ñÉ•ûŸŸîg÷;³$$N¿ç¸äéQ|ŒZãÞ¬u;¿ð²™?îàuc¥dú±þŒ €‹ò¬Õ ‚Ú–Ì€³:}„ÁÀ€,YN¿26dlÈØw\~ýnð‚9Åÿû~VîVÓª¯žöçæ›æÊzÓ#Œ(–·D@:ÀˬŽXû£ÖäçüÏÆÉXzL·Ü. ï¶ å[g"òYœdz&É¿b¿ãžæµVk­Ö²Û%žÿ>‚Vaò§ë"ßzÐâ¦Óf¾õ´çWú òIùhé)-»ÕKÀ³ÐlÏšqô·ÎWÈß®|õ¡Ól7—Jùm©“ß6îÒ"½c`Ëà¢<†ÔmD Èn.¿püÂ;ê×%ýÊM-ñŽ…þc·ü­;kKQ¤\‡8/kßpÀá÷³r·šf ¡Í?ýÎä}àR†o­»ä¦ö€%³`=ɺa00 K–SƯt³ífÛíwÖVuýóÒ1%ï6íß1ÄÙ§]ÉþÍ,)åMCâô›T?okÉñßz¬S“j¿ÖNƒSò¹Ù¬¿ñ˜%ÎÖ;ØÒá}ÏÄøK[Ù)ѹ’i‹²Û%žÿ–h<ûÚ®o=o㛚¿SÉGO‹ÑÜ&èÈ1ã*¼i[“”mÓ¦QŸÿ]Þ kyàxKŽlz>N§¿ùÄ¿zFÀ%k6nÞî0 »9|8øð;–ÁªòhTø’]ï¸÷7Ù•‡"5+øY[4îß þ}áoËÞq˜Þ°ã ßœ?äKùȵ*,z,5Ê p9«†AR{À’Ù°^e­08Gæù• ­Ôvjwt®éÃìôf×ʇa ;þ8“ Ë×­q=¬Î—“?È:õgUH+SÙå¿€6ù½¿ÿcÍà ‹KŒcò ™ótwœ}|åžéoÕŒøãÂÁO’ž¶[œÔ²ÿÿoå?†tŸ[Þòq<=j’ânÞ‹ÿö_5raÌÆ}>ìrmá1Î#*Õɨ¸ŒÐê§^éo¹×šPpuÓÓ8^¿'ù“ÀRó æ´ñO>˨ºè}à »UݘþàÃìݺwëÞ­À¤Jí+íM5 /a§q=ãz·Åszþlc_µè¥ô›Þ˜N*ö°Kòÿ[cÆÌ Ûg¿Ç’ Í~ÝüG¯xgînž÷e“§ØJÇúiuVï—ò·ÿ%–þ€‘{â¤áë*ý¹¡Ùž;µ÷¨C’}=m«‘·Îü› µV7Ï*°‹W­cGÑß|˜ø-ñ[â·*Æ;€«ÈëZýV}GãZw澿Pt¥âWɆœÞ“ ï¸«Ž¬±äïš^>NÍYƒç·ÎäøŠ‡ï}ØÑ¸€ä’ßüŽ1wÅò±‡],g=:M^ÿçþ´­I¬vØV+´=õ?iòãp0Ëô`ãS»R3÷÷˜àµþ×ô¸BbùˆÏÀô$Ýl|:›å[ò!Óø•o[}ÛêÛV¦ªq `«‰6!¶/Œ_)äYjdy;ãºw•Ÿ:o•ñ.ãšvæJÿô›TX~°ñÝÿþZ˜u»‚9SsV¦qrÍö5öE}ØÑÌ­¼~Ìú1ëǘ~>ÌÆÆÆÆ¦¿šä­ñ=ÙÀµ'¯ô?vå­KœfÙìhòwÞlvvþü´­IŒ‘ñh•»>7§Ÿ±Jù°}FÀ)¯LÿdccccÓë¶Ø{±÷boÓ±Ït àšwþxrÐñ­*å=ï®â>bÊÂ0`KÖ¦g²™öŠE¹åZ”‹–Ñß¶oÔ¾QûFõÎÙ;gG¿ÆïÏFkš§G¿26dlÈØÓaµÈî*Kk}gü³cŽúÍZ^©}+xLø÷)—õ5rL?±ÕÿãL*,_¸J®á/æMc§þ¬’ŸIµÏÆz•µäoU_=íÏÍ7Ë÷íüz¸Sy­kÁÓßq?ÐZ«µVk¯5¿ÖüZsÓÿKè¯&IΣÂäO×Ešs++CbæÞµ|¼.ïݹ÷°i[“{乨·µñhÆ€9m×ñý8—ƒ‹>òR·‘¹wþ Ы Ç/¿ðŽ(ÔuI¿rSK¤ühc kù¸\áûŸ.Ž:Cœ|_Êð­u—ÜÔ°dv` i}0·ëÖ¬·<ô5~ÿÇ}“#dÉrÊø•àUÁ«‚W™±Ö¹ 5´³þ/à|8¾pÈ_ﵦ÷¤ÂK[òwÎ×üÍŸ%,îæ½¨ñoi;þæÿê–ü­’w›öïø_Ün÷sÿ*/LÛª^îz¹ëå&d·K<ÿE¼â‡s/™s‹HUÄZã,sO()Ô³ô×åÿJÛš¤´‹¤Ÿ&ýWò;ÐÚ×¢'ˆÄ­XudÝ"«n´-阧ôçWú òɨØÚ¡P€]`@vs/î^ܽ8Ó±¯ìÄ6ú¶Nyl5^[°¨¹<&ü{»Üå+¹ñè·?HwʳVƒjX2; Îê²nè›0 K–SƯ„‡‡›·ÿ*ú¤D'ãŸ+9ö??Ýᅫ³é¸i\ë­{…=û¾ Xô?t\¶C xsãlv€­)<Þ~=µ,™gEú}“#dÉrÊø•ȸȸÈw|úµðár+ÿü_<¾Èƒây+néSÒOž!sžîŽ3®…c SËo5·W/«¶Õ mßéq%?›ÞšÓ!ãÞòI…ñû.cýý7=†ÇTù!Ýç–/Ù¾ñþö}ßšÎ5©ökí=iu>¦ƒúïLVüð¦çf㙸ŸpjÍW¶u‹ÿ­±—CÇÿÚ¿à÷EÚ8´¬|è y“L°é³MŸmúŒÝ.ñÙÏqMª¾é­‘·@HþãùM¿Óø(æŠ%{͘P±ZÕ±§ƒnWlÙÛaƒbU«·¨×Íø=¶×K¶r^™¶5‰¹K¨N¾ ›¶Éáúó/Ó§´2†»ÆKÆÉŸDbTâ׺ ¿]“¶çcùåàš½ÞïL Ȧ®%]KºföÚEžœáoLëâ9½?ÿF~ë™d|üp¼Ò˜±3D÷ó£×Ntî_oÚ´âk—oRó¿ë*cœGTª“üCcf—ÓJE’pj®Õ˜}Ê“cüJíËgÀY…þBßä€Y²œ2~%þqüãøÇ¦Ã°M…bo ÆGZ>xW?;½æ–å#Šå-ðVø:Òý ŸAÝ×kn:dºð…1WôI~O­9…¾*y¯\ÏÓsÇïù_°Åç“|úd|œ£%íc½Ä._‘În£‡Õùã²¹ï¹üìò³ËÏ€ÙíOrµ‡¯t=’|Ìõ¸`¡µ}ñŠËÜoZ2æºh †-ºÐùž5€ñ‘Î%ìê jîby¥d §½¯(pø^ڞ嗃ݎ wYð%0€:Ä”×” ÛͰN!´iɈ_d^•Š^Zò:$ù‡ÂÓêZD:À©¸Vcö˜fDm §ö€å¿•À™™¾Cßä€Y²œJþuï'ÞO¼Ÿ˜žËÄ·.Õ»´Ý³Š_º—²î[ø7ûUƽý¥J·kœ­Pú'ßQMïˆ5†ÇÖÞ…¢ìî: ix£“Šÿî¤Y]¯\‹.6yŠ­t¬oÕÚ&¿mÂŽe¨x¤l›6ú¬¨u{©‡ZӒ˦©¹ØZa|·^£géæ¶Ôë ëûªE/ý×J£]¥êþ¥5/Óé¢ñÎiãß²í訕YbúZ±÷bïÅÞ#d·K¡orÀ€,YN%ÿúÒè¥ÑK£Méª_®°ÔÍ’‰‡å_7; IñHöZ¶ªåçó¾¯hü¿µr-úMÜcÚÚÞ¥¼Ky—2¾#À€ìv‰'¹ò·º™óÃÆ\sû85@ÆÖ$ÿcuä5+…°ö–\¦¡²gRbq½Ï[TKÍÜ?ù×…Nþ‹bݪCÞ÷œßãƒe©¸V“|_xŠó¢J½¨=`ùo%pf=Cßä€Y²œJþõ›]nv¹ÙÅtÀ.>ªöø&›ÒvÊaº7®+ü¾wÛdÝó©´l`›™5M[{uÿÕýW÷7¾#À€ìv‰ç­E b×ÌÇ5ä—ãSôTdìùxÌ øf}0)ƒÞk—/>ÜÌ8z–ÝÕ¶ï/…ì—áÕ~.w³“ßÐG–¼%ÎÖ;Øò¿û€ïû9·š’òh®×:Äkì‚S†™ÔxßßJàŒBè›0 K–SoýÛ$Û$[sCx­1‹£åÅé7©põìû*`Qæ™ä¤÷ùê\êEù½¦í|ëý­÷·ß`@ö©I¾uþÖù[çw<ºòŒ.Û ë©ÈØóqŠûf²ÿM`RÝnŸº`œqô¬Ø²·Ã„ÿ-tÕÒ1¨LŸZ=–¥<æV?;½æ–å^Y?,(ÿn%Çþç§ûeÏ:ÄeáÏg¦öÀûþVL„¾æ²d9eŒ“oó×Ï_?ÿÃ|Åœ½ÊŒßÓ ãj1¶¿;¹•-›¦7é}>5Zϸ²m÷;.p‡Ô©’ü½8ÔâP‹C-˜²CM²¦öšÚkj›Žz%ƒ›v˜¤ cϧÖô%òiË/åÐ?Ù§1U¸yÙ[®¿ýw÷êÀk ­m¼ª8¾õ·Œwö|3¯àÞAÞu—µÓvº¯ØeÍ‘òKºÌQp|‘Åó¿Ó¸N°÷ñßËnuHí•;ÚQ{àÃ~+ €ÓÛÿµw¯q:–ûÀ[{í½ªçCÉ8Ÿ²fÆa0­-ZKHµRÃ*"v°“Š*CÎ$…1¤¡9gGØQ±´äÌZ¥Ô”eˆ‘ ³_Ô‹úLÏ4Îãöý¾¸^ ŸÏ<÷uýçsý¯û÷<÷#ôÍ 09ä¤ßŸ~úý¡þµiׄCëï:ÇG‹°…6Ê?ïo=߯'ü¹›¿½óûœs»`ô‚Ñ F; 'É)zÞ¤.ﶺÔ{€‹ûzjÜø@Ç'¢À÷>¤~¡a[çÄÿô;n -6£ø‘¼ï§EߺîÉRë}<ôð«Ce7h9à±Æ6ë=8³¿Jðù ô=]`uÈéÓ)¦SLΟÿáָ؇/ò!ä’vsCÒ7¡æàë_i°èæÈ˜˜‰ÒtyzúHÄèáI5Cu _>ÿåó_>¯ÞàË®YvͲkro.º½Øá¦íþ¾¾†î"/cãO^¾fÍ„ê@6–ÛXnc9õFNà³'ô=ÀоûNì;ª9ˆZýÜÞÙv°ù•‡.–{9ãý¡æpÑ‹®X¤‹€ŸÉ9 s@¨Ý3bMßãcÓõ¿òÐÅý‰£Ó*y²zÁÈ[sÎሥ#–ŽXªÒàg dÈ.P§tÒuJçÜ=«Ýxo¡>Eôy+4nyWûôœsûlì³±Ï*4BŸ½ÅóÏ_<_è{n¹u @`/1¾Äø!]Jôû#oBá‡ZÜr×[9ç­é¼¦óšÎËŽÍŽÍŽUcÓ²æËš/kªiT`Ü¿©Ó5Vïß¹Bÿ¿„š½cIÇ’Ž%©1Èiëö­Û·nµ‡Öë5äÍWvë4B‘Ï=Öeâ•¡fo¿ýýö÷Sc„">{'ïq¸æ±šÇjþBR¼^xóJG›ô›r2ùYHôû“ÞxwV¨äöÒ·—¾½tö°ìaÙÃÔ¹“? €¸,Ìo9¿åü–¡ÚúS»¬zòÄå|ì©w÷î¯<j~z¦÷Lï™®Šàt}XèÃB µÃV¬ÝúÞû>Ž©5£×†Ëô&lÃÇlZô÷PóÓp[Ãm ·eÕ˪—UO-@Þ}þ»Ï÷ùïBí°e^¬½£iÁiÿ\÷íåÙ4žýÒS«o-V»lñð¡f)ããŒ3>VKä…˜üI Àeä™¶Ï´}¦mÈøÊû¿p¹{êöúÛéi¡æ$*+*+*ëø×Ç¿>þµú€33'|NøœðP»m…½­þzo|ÓO;¤U¾Œ>õûÆÈÝ þ3,WÚhw ú€3“––rŸ-ó·È#ÑO6é:eCróËèS¿Û&}ónV±Ve»•ojf¶ïÙ¾gûõCÞ €ÉŸÀ\N*gWήÜ=²{d÷ÈP~¥õwtîÚªé{‰ÅR~쉈ìSsô¤PóP¬C±Å:d<—ñ\Æs ÎÞØ c'Œjç-ۤы-š´Ÿ2;¹tÀŸ;>xåÌÙ¹G¿{ î-¸· š€³—Ô;©wRïgÿÅ7,­p,ú÷ï_¾(ào>;5êß »äÞ¤J)”RHÍpºÀäO`.;'Ûžl{²mçÎ;wîò°…#^n¸2:aRÝw éÀóç‹*y×7=ö„<ñL›6ùëê_Wÿººj€s+~Hüø!¡6áÂ[‹¿Y²Uƒ¥£Š,øsðn¼Öü¬ûºÁÈýÆë¶k·]»íZuçÖœ­s¶ÎÙšû.\7kpë™|#Zí+ûŸT$÷k_•¶*mUš:á̀ɟÀ\¦N®?¹þäúÞ%{—ì]2÷c@í?>>oÒ%ÿ Á YéíâÅ„ßVù·¡®´Ê¤*“ªL:0ôÀÐCUœ?M<4ñPîÈ/õüí3…cϘ¼áÿ.á-FLܲ¢ÕõK|{óàܯw×Ô]SwMUpþ,갨â¹ïÈU›´¿î‘››öš~åúÞ—nÒ¤í”áï¬Ø¼õ‹Ëå~½ëZ¬k±®…Úàl€ÉŸÀ\Þ6goÎÞ0%9¹qÍÝÝ.–—k?nü¸ñã²Ûe·Ën§àÂÛ¿%~K|^vírá7hskƒ—F¾ývj¾ûš‰^Ó¯\±¾ß5ã®È˵<÷hÜ£qÇGq|„€ ï‹é_Lÿbzä ÈA‘ƒrßµK¬µ¶~§¨ÏÌz­GLÓÓ7ä§>äÚ¿ßpUݲƒF%Œ.þxù2U®ÎýZZhu Õƒ/|áà j€sELþ$€ŸIo‘Þ"½Eë=­÷´Þ“§[±UošÑæ¡z;Ÿ¹úÕëÀÓhæ„ÒË®­R¡Ý̇RÃò죄>J°âxtàÑq]ãºÆuÍË>^&:²L£êÜòäþ)/ÚÛÎþ2eRòÕwßßåñCyï@–õXÖcY+ùAÖ¼¬yYóF7Ýht£¼ìãÅ2Ê=RñÓˆûû¬Óù¢½í,3qUÚkµþô?UŸû¸pý¢o[‘—Wž¸^áx…ã,2äÓ6$!5!5¡Dƒ J4Èû.~ËÍ5ïø®vÃÇÇOÚ֤Ô9Éçø Yíí25£»-4¨Ä_*~P}hÞ_[\V\V\VÆìŒÙ³­/äO;Ãv†í ‹îÝ3ºgÞwùëw5ìÖ¼XD­>G?Ýò…ª+’ÎmÒðÐØoßTkåÓâç—y4r]ôMym·ï¼}çí;÷mÞ·yßfëËù#&À¯ÈÜ”¹)sÓÄâ‹O,v®¿¯þ'ÍŠT‰½»uÏWoœß³Å3Fö~¬ì„¹ubžüpÊÔyä©®S’k_Õÿ䤒µ6<œÿMµª÷þ¦ÏånùãoÛì/òû·–*uf¿·ç=ŸèùÄþzûëí¯g5àR‘ŸŸ?§Âœ s*œMR¦ydt£ç+¸cs×½5?íþþà‘Eû_»Nù'û¼<ªÎˆ§ÞÚ°öJ½øìûøù±Õ£:ÝñØ-á{[¸«[±Žeg”sf¿÷¶æ·5¿­ùŽ:;êì¨c5à’1<{xöðUq«âVÅ•ÞRzKé-gÖ ”º®z¯È÷+>Ú¦rÇOjìï:{`͈¿õ­2fGí£O|ùÒŽ:¯ ,9õÍÚ+žˆœ| ¢Ø£[FW­ÑøQOô©ðpËo;,)1³ÒÚÉgö{#""Òú¦õMëk1¹0ÀäO`8 GYxdabXbXbX~60e`ÊÀ”/ŠQü‹âV .ußOþ~ò÷“–[Xna¹ðéáÓççÏäÁ¤“LÚÑgGŸ}¬\êNÝsêžS÷¬i³¦Íš6M®mrm“kógÒfU›UmV}ðÆo|ðFö¬ìYÙ³¬’˜üI geãöÛ7nk×,®ÙÅ:ê´-ض`Û‚Ëg/Ÿ½|öñþÇûïo] Øv¼³ãï ¾jðUƒ¯ºXHt­èZѵ料[fn™C½õ:Ô˺@°í‹Ø±/bܬq³ÆÍ*^¾xùâå/|R©b¥Š•*N­6µÚÔj_­øjÅW+¬ —˜üI çÎêìÕÙ«wÕßUWý™UfV™Y%öêØ«c¯>W‡œfiÍÒš¥?fü˜ñ­þhõG«¿‹ú.ê»(|Öì³fŸ5›;hî ¹ƒºÖêZ«k­¢Í‹6/Úüì;¨ÞQ½£zMš04aíëk__ûúᶇÛnk΀¯â¿Šÿ*~qãÅ7ŽÛ·+nW¹QåF•uöHÕΉUûwëß­·•]VvYÙå@Ë-´4çy!€‹&óhæÑÌ£ë¢×E¯‹^Ûrm˵-÷ Û3lÏ03œ?§ÒO¥ŸJ_—º.u]jòÒä¥ÉK7îÞ¸{ãn3œo)±)±)±ÉU’«$WIÉLÉLÉ4'çƒ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ þ f`l·„“î%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/bufferCount.png000066400000000000000000002174241431412030200256650ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝy8Õëþ?þ†½k·;•Ì‘y2™ÇæBT$I¨ˆŠH£ šKÑœŠ"ÍòH"…MT$c%Âúþa®_û·Öa·¬žs]÷u®}jŸ÷ºßϬW÷ëý¾ï^ à ½0Ü `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `è2…W ¯^MãOãOã¿ãsÇçŽOcBcBcfz–GK-y´$õSê§ÔOw"îD܉h n n ÆÌ@Ï’çžçžçžšŸšŸšç w.4W6W6Wbf gÉÙ›³7gojRjRjÒ¬;Yw²}}}03гdIgIgI§îIÝ“ºçNÅŠ;ŒDF"#3=K&o&o&oªªªúÀôéÍŒfF3fz–{Ëî-»·,Õ)Õ)Õ)]9]9]s=Ñ]û»öwíSuSuSuÓǤIƒ9ž(=1=1=1U U U Ý3Ý3ÝsÐUж>W|®ø\‘’’²Åt‹éS“J“J“Jž.âááqªß©~§ú———bΡ;|:ôéЧC÷ÖÞ[{oí¦ã›Žo:nô‡ÑFtU’gêÎÔ©{fÌ™1gƼô}éûÒsݡΥΥÎ%}uúêôÕzm赡—€€@„8Ÿ'Ÿ'VÁ¬‚Y±ëb×Å®{UóªæU æºC­f­f­fšOšOšÏÚ)k§¬¢+©+©+Ùù óEðEðEÌY6gÙœe篟¿~þú¯7^o¼0çÐjdkdkdé©ôTzjè‰Ð¡'´ä´ä´ä:ŸdA+A+A«ùæ˜? îmÜÛ¸·%…%…%…˜sèÕ|Õ|Õ|¤©GêWWW¨Ë©Ë©wA’…? þäuÈëסK/ ¼4ð­É[“·&˜sè• • • )V)V)V«TV©¬RQ•P•P•è|’E‰=¶P~¡üBùD¥D¥D¥wÞxwsÝáãã?>N¶O¶O¶Ü¸5p«¿¿ç“,>N|œø¸ÅçŸ_|>É<É<Éüý‡÷ÞÀœCw¨8[q¶âìÍi7§Ýœ¶|øòáˇËkÈkÈkt>É’5’5’5KT—¨.Q½:é꤫“ÊuÊuÊu0çì  ÿøý%úKtR@R@RÀ¨°Qa£Âx~ÿJÿJÿÊüÞù½ó{ã¾@G}*üTø©0a\¸„q–Ÿ-?[~þUI^‘»"wEîcÇ=p_ £êþªû«î¯øÁñƒã›:›:›:ÿª$Ÿ >|ª0¡0¡;:@‡ÕŒ¬Y3òqŽ8GÆÆÆÿª$¯Y´fÑšEOjžÔ<Áà ÐaUUUgf™uf–N½N½Ný¯JòzùõòëåŸK<—x.ûõ1ãcÆÇŒ5'jNÔhhhhhhüª$oz°éÁ¦/L^˜¼@K:¬B£B£B#Æ7Æ7ÆWÅUÅUÅõW%yë­ ·.|5æÕ˜Wxó:¬<¼<¼<<ª8ª8ªX~…ü ùÿ}†y+y+y+·7noÜÞøÆúõkÜè¨÷¹ïsßçœxpâÁ‰R›¤6Imúï“,´Ch‡ÐŽÈ‘+"W”ª—ª—ªã¾À9™©}Sû¦öÅÌÀ¯…ðoíõà׃_öóóÿeíÞö8UqªâTE½x½x½8î0{±áņ|Wú®ô]É™pppŒ}û2öåWï¯Þ_½q×€Ù³’g%ÏJ¸.p]àÊ™I,:Ytr\r\r\rÃá†Ã ‡q×€Ù…' OæÉÏ“Ÿ'Ï™I–2•2•2MX—°.a]ãåÆË—q×€Y}}½{‘{‘{g&Y__ÿŠöí+Úß¾%|Ãc:ÀB¾{¾{¾ûtÿéþÓý93É#†>bøõÌë™×3›ö4íiÚƒ»ÿRɨdTæ:æ:æ::}súæô3“¬m m m<>y|òøæ™Í3›gâÖÁ¿P ŠAe«g«g«ÛyÙyÙyqf’ M M Mˆ«ÄUâjË –A-ƒpëà_‚AŒ ŒªŒªŒª±ÄXb,Á™I6S6S6SN•J•J•j9Ör¬ånt74€3¡üÛyü:ùu²»‡»‡»ÇOnó@ ‚o®ÇµÒG¶[š-VÍ:—>v¶Ù­v"z¨|‡c~äb1™«»'.Ñ-;¾Ô¶VsÆý‘ÚJ1ã{Ë{ˆêÌWøa—Ã.‡]ŒŒŒq7g/Ê^”½(s1v1v1þÉ€¿Øy¾–Ù-ö7eúíXæ·nïùu›Wj{ßòÙ[©ß‡útø/ƒUäă· †_UÞ•£›{ì\ØMÝóí•,ÇĘˆˆñv&É1¢1¢1¢!!!¸›¿³guÏêžÕMþ:ùëä¯?¹íí‡áz7$wXóM–UêåvÁ©š½Ïâ-ƒ4í_í3ÕZtþ°”–ªuOhÈùkî Rå󜾦RNÏáú¼þ"qšáFFIòÉ¢“E'‹¾Å|‹ùƒ»ù;+z^ô¼èù„½öNØûsYy&]ÆwÖ0gZµXãDŸ jÙ'ÓçDF(©zœ6SÙ?wíICÕ­s‚Ž/RÕ™9ó`˜r¨ãçM“ú[Åy«HÙ(µûu&ɱÇbÅkŠiŠiB’kO>>ùøä(¡QB£„~.KJã†ù Ð^nš²&‘ Í/⮌“Õ~Ÿ|Ôî’þ(ÚÉ!Ï`'Qa_aÐ/)wÂ=ݵGçØøj,]yX?YQÆržtލog’?&~Lü˜æ5Íkš×ànþÎŽ8þáxó•æ+ÍòáH•—rÈN,{br ŽšL¼ïVZ‡÷öûUôÝhÿË ö™§ê·$IìÔÕ~dtÈT ­À*qÊì‹îf‘×IrbNbNbN‹i‹i‹)îæï,'7'7'×0Å0Å0å'Ã-“^­ðHªrôìi‰Jïf­_!¦ör‰æ¶ÉšGV<Þ¿R+*¨ñð­A«tš¨',KßqVÅ`î¹Õ2cÝï ç¨Ó>Ò™$_Ó¾¦}M»åiËÓ–§¸›¿³ûº÷uïëj½Õz«õöç²$‘¦²R`¼‰š[ž„ˆÝ™Ð\¹ý®i{¾(›í¡R8—8yB5zŽÂ±"Ua7ÉýŽÊùë¢äíÍçìÔ–Ý®] Xú“ÇR¸ººÜZ~kù­åŒiŒiŒi¸›¿³»wî¨T«T«Tÿäƒ2Ĭ…ù|çhWÉåï±ü öáÒþñú:ÛS4ìGéÇÐ&÷1ˆK©·ß©ŸØwümWˬRÕ}–èÈ2Ø"!3LïçþÅbÅbÅb‰ýÄ~b?ã ã ã î&t4€3¡ü[øâõÅë‹W˜P˜PX³¤Ëù wO²˜4¢¦ ÝÅÇDƒÁðò²µíªñÛáùé6£©‡íž>ýµÉ­ïèWø­§·žÞÂ_¥~#Ÿ"?E~Š\Õ°ªaUCÞ™'í 0eß j'‹V]8c²‹ÁÈÌ´µíª±áCúßÖo‰ ƒÃô+̘*{©£I&½IoïÿFjw×î®ÝíÅÿŠÿ•,`­–R“—QNšó¿ w}ù-¶q_LMcb23»j4N:œ‘¶MóÀŠ;ûçJVØè8èh’ÓrÓrÓrqÕ‹ªU/ò™à3ÁgB°rUv ØM__ ±$éÆZÃaazz]5_É Ô‰ò?:^ÅÛ`S±ØœlÆ/Ä/ÄŸ18cpÆ`ÜßßGåðÊá•Ã=SûpÌcÇ AíOËÈšÃÎ_´v†¦ë‹Š„³þ]['×Ì!Ü,®n‰Ñ}çj1î‚Ô¨ÔðÆ Æ Æyƒóçágòo¤¬WY¯²^Óu§ëN×mZ†Éªž×ù¢úmÁú£s¶«]îÕµuòȯûìo¯V/ò³Ü9Z¬Ñèãè˜ö_›º°º°ºð£n}\¥=¤aÒ˜‘~Ífدª“oŠìy£—d°B=n˜f{®yuÿÕýW÷o×0®an;Êcä1òÎòå;Ë×þ$«êyf†…˜ì9ºåžè¯ª“5¦ù?Œœ '[¡ü¥=×¼îòºËë.7f7f7fã¶s¡F#à¸ßq¿ãíÚ™fèÞž S£·~Sø°fëceÝ’_U'»ùí§¬)¶Ea?D{®|‹îÝ-ºMMM¸íܧåCˇ–Qg¢ÎDi×#8‹ù¶ñª½7f’Ö}Æ@¯Á¶C~AÜâåik{±v\ƒŽ·¼˜°­ÀÿÚså;7íÜ´sS³Y³Y³î;tÀÀ™ÐæBÍyÍyÍyJ6”l(iÏÞÛÑ·µü¾nŸwÂzÿ¯ZÌb7–3­ÍÅ}viÇÈhÏg¹x7ðn 2À%+ZÛ›¶7m¹r!äB{îþù››Oj/o¸}ç­õ³_µ˜Ån|=õò>³H¯kSôeÚóY²Ô²Ô²ÔîðmÈ·!߆ZZZ´ë-AKR"þ61;²:=åW-f± E O8"©jùØ~K{>Kn\n\n2Àœœœ}úõ=Úž»ïöòÀ e§Ð°|gÝ-¿j1‹Ý¸¤ìF±Fœ.¿]Üðùíù,5F6z–»î>ºûè§vŸ&17Ø0;JgYÏ­“C³óŸëž[»ü‰Ì¥<.9ýÒôKÓ‘ž…v¡]h—)²Fo‚O=ïb#¶þO£(åà<.u5ê*´‚C8À=^É“’'%OÚþêÚjzGu>c™—®­|Ooý~?¾—t_oþJç‘)<“Ýg÷ÉñÉñÉaôaôaôAZ8Ùˤ—I/“ÚNòîIá#jï2¯ÙZôôÖï÷cÉó+;ÌåTÖËmdÛü<x(ð#š͈FZ8Ù3Ûg¶ÏlÛN²ò½9ãƒ{zÓ—ÅÑ.Ûy‹øÖ‰ÔŠ ³ûìk$ÖH¬‘`Ô2jµH '+ØR°¥à};MÝÔ¢ Øƒ›¾lÆ¥Š7ÇkÐ|‚¥CÝØ}öðá3Âg 'œ/o}Þú¼œzzÕèeZ¶ÜT!·ŽEùÓµLNýàä³É;'œp¾,,,¶ïæ¿-zÚÑÜT!·ŽnÆ^7¾Þög?Ð÷@ßX\ëÒ÷§ïOÿA+T=`Ù í×¹¯NÖµÞýôô¶?{ô¢èEÑ‹ÎG^$/’Û¾›îá‡7+¿á¾:Ù[îÂ$5¡TVÛOo?½9á|7ƒoßüA+ô¶¤Ý+ý9ÜW'ßÕtŒ1Œmû³ÇyÇyÇy#'Ð~hgB¸+Zþ´üiÛ_W7ïÛõÕ{Î}_ÕßßìæÇÚè/z£ÝKΊíÓj***ŒJF%çEqœw¼ïxßñ¶drÑÁÇ2Ü·¤õýØrçõ³¹Î™2Nìæ!Ô$Ô$Ô™áL¯_7¾nl;ÉÚÆ««Žâ¾%­ïGã„ÃDZ¨x†éÊqlßnïÞ+‡*Ž,Ž,Žl;É^ñçÃFTsß’Ö÷cð•œ( óÑ"l·†Þ¹lç²ËÎTô¬èYѳ¶“üàéÔ§FG¹»N®K˜“o2v´Üm1¶Í³½öØ‹Ìp¦üGùòð†Ù£™±KOrw\3’0±¬6O×!Êöo 1Þ1Þ1X¨åP9«sVç¬n;ÉzÏ6»^¸ÇÝuòÈ×ûÜ–Ú¡pYí1g*ÏTžÁª‡ºWx¯ð^aÛI^*wÓVƒâî:90ãÎ ­±×ŠüçØÍÃE™‹2eÎD¿¦_Ó¯ÛNò«0·!f³¹»N~¿Âý´ùgé,¡üãÙ¾ Üÿjÿ«ý‘h4€3aùµGú"ôEè‹´„´„´Û%­ ©×Œ6s÷Wõ¿Æ|/g[ãÍ*&›TN³›“È?#ÿŒÄfw¤Î½Î½Î] D D „í’–Cì|ãcܽ¤õ¯q~¦£­l˜¨×8¥|vsrÈîÝ!;ä‡sT;U;U;ý`I«lóº Mܽ¤õ¯-ïÑO32egÙ‰x°ý™||ÔñQÇG!?œ£¢¾¢¾¢þKZso^Ñ(àî%­ïÇ5˵è>35v?#áÇvÛÆòØòØrä‡s”Y—Y—ýà8‰×6nS{þ‘(í›"=elBççiÜ–a[q%&&"?œ£Ô¤Ô¤Ô¤í$¿å½fîýûÔÉ߆§µQq[3ÁWê»9¹®{]÷º.òÃ9^¾~ùú%Û6ÃP ¾¹ü®†U»ÿwÃö÷©“¿F½sTÌÎð±M»™Iy–ò,åòÃ9ži?Ó~¦Íî~ ïÍ{cÅÜôJmÕß§N^íõà¢N¡ª–ňaKØÍÌõ;êwÔ‘ÎQ Q Q Áî~©Üñœ\õ~öËã¿OüYyî,«|ówÒæ¢ÃØž ¬v_í¾òmC8À=M#ˆä<ÕyªóTöÏ€;o6>ùµ~™Æ­›L½UÕÙÍÏ¥7–ÞXŠ(ýZ- - - —L\2‘í_žÅ™™ÜþZ¿Lã:9ï7ÊcÙ¾­Cê:ÈÒ¯Õ¼¥yKó+m+m+¶ËúO¶]Êý}–´þ5ÇʤeoÙÎaûW©ô¨ô¨tœ¯ó‹5õoêßÔ_ÿ°þaýÃìî”_R ¡yø÷YÒú×hWª'gÖ×ãO‰+ìæ'+.+.+YúµT.¨\P¹ÀîN½è.n~ü÷¬[ž{6Ûþáe¨i-«Ën~? ~Œ,ýZõåõåõås%æJÌew§ÊoÜT°ü=+äæÌŒ¡6é3c'N“þ»ù)l*l*lB–~­ÏöŸí?Ûó¦ñ¦ñ²:Ëù/Å·ydÖÞ»ÉY¿gl²íèÒ»bA#Ým±Kr±x±x±8²ôkÕºÔºÔ²=!U躘/ï‘Uþ™µŸýžurHÓCÝ™ªÁñÃ6³}ðîÍë7¯ß K¿VÕ_UUýŶõ»LÄJÐüSß9µV;Ï:ùkò¼$ëcúÒn¢*lÿ1þÝøwã‘%` `àLh÷0‡xh Û'’䦈ŒÜþ;·~ÿ›¼þ}üûx$êWÙ”½){S6Û·~7]<ý›¶~¿…bä3U%¯YïšœÎn®***¨_%D7¶ø¢f7ê Ýøl­Ëy’ó$ƒï¡Ü]0‡f‡fvîÐ þ9h÷'Ÿž|zò)sèùœ‡ŽáÉn?¯Ü à}mÏuâ7¬f»õ¨_…_…’ÖÝ¿>üúðkæù—ÌSå+úæzWÙf$°Ú©c‡îx±ÝzÔ¾Ú¾ÚIën‘Á‘Á‘ÁÌó/-­¨0ÏäüÑÇ÷Va«íQspà½lOj¯£ê¨: IënáçÂÏ…ŸcžÙ)Ú~‚yk®?Ô­ÃVÛ£ÛÈýk”ÙnýåΗ;_î iÝ-dAÈ‚Ìóo[$0| c”—¬ípTÂmçšÆJjc—ä××W$­»ù¥ø¥ø¥0Ï¿C²µ‘„ãaæY[cTÂmÇO­ ×ôd—äo¾mø¶Iën^§¼Ny±xÔOb¸Yð„‘¨Û3*ß›31è2óŠK‰K‰K5[5[5[!iÝÍMÒMÒM’ù.Œ<é2GÜ5p{Æ ÕA|²Yœ5›®’®’ÞÙÙ‰¤u7‡#F0ß¿¿uÇÉŸF Üžq“µñCCô6ìmØ›±œ±œ±IƒVhwÞ÷ïþ¶ ÍàöC˜£Õ=©{R÷„]Ð ›iä‡/ãöKuÎÈ[³Øº'~Iü’xä­ûTϨžQ=ƒ]’+ã1ÎâUûÇùÓ]dî2ÏdЙ 3Ag·îS±¸bqÅbvIÖµ%.>‹VíÅÏ™ŠŒóežÉ56j oÝç=Ï{ž÷lËèeÄm~ÍqX´j×Z¯§«c³@Äœy&wŽÞ9z'þ*ÒÞ˜¿1cÎ.É¥%3/š»£úm×xÖkŒ­¶ÕGwQÕÅÁªƒU«·îSÜ«¸Wq/vI.·»‘oáŽê·=cKeÆgÛ¿ôǫљgò„Ü ¹rÈ[÷)œT8©p»$,Ø[–üÕo»ŽMÉ›Á# *ñY–ÅÛÀç?œÿpþòÖ}òFäÈÁ.É«îß—Ôn@ Üž1ôj~’n” œH¯óL&™'™'™#oÝ'óPæ¡ÌCì’üYb®«U.jàöŒ¶óG[c7“ÉrÉrɨ.àhw^kC·µ¹ËÓnh· `޶sùÎå;—3Çzfl4¾†;¼tÚìÛ–Øý°(1(1(1@êºÃFýúõ™ç|¹èÌ÷ âX®êðvÐ_n½µh`—ä²?Êþ(û©ëAaAaAaÌs.—âèí©åªoMG†]ßÃ.É]?º~Ä;gÝb‰Ë—%.Ìs>6v¹«Ì,Wux;hub·f»$טט×`y«[ÌMž›<7™yÎw_´X¦ÖuoGÇâ†b¦lOŸýtåÓ•OWºîà|Þù¼óyæ9?òWˆ¬†,êÞŽŽEþN˜°Ý¾þFýúH]w˜ ?A~‚<óœYphƒêÞŽŽºqNžia—äFÛFÛF[¤®;˜«š«š«2Ϲ«ÀîT¥ù¨{;:z[^S“b—ä¦éMÓ›¦#u]ìããžÖm­ÛZ·™çüjØÄº¥¨{;:Þ™1¹Îѧ‚ë× ®o®o®o®Gô à®…fpWA˜C}±ùbóņmƒg߬¡zøþ¹ñÈßÖU²,Þy2^f¼ÌÙëZµ µ µl[•$ï´TÆBÕÏ»gìñ™yVW¯Z½jõ*d¯‹Ë­*­*-vI6 Ü_BlÀBÕÏ {\´}X,|‡[„[„[ {]«¼ª¼ª¼Š]’ƒ²ctü°Põs£Í¤E}¤X4Ï"wDîˆÜìu­·šo5ßj²mð<ž7Óz1*ÞŸýbu7Èg²8My~Ôü¨ùÈ^×zùõå×—_Ù6xÆ¥;Y7¡âý¹ÑKÝ)SV›yVOÝ9uç6çïbOÇ<ót »$›„{·ïOî—óÁ´d¼?ó¬ÆÇÅÇÅÇ!{]ë‘Ú#µGj,úQnšºfÍc!Ý—¨xnTk°ýCÄyn¯‰]»&†ìu­ì¨ì¨ì(æÙVü:lŠÀ%ƯA¶ƒQñþÜhý§Œ—hóÜ„“­ àî\•E3¸ÐæP±±±ÌÁ]¡¢¯£ƒ/ÝÎŒõ[çYY³ÝŽ¸Æ¯Æ¯çw™èÒèÒèRæy^§âý^y<§:3~ZGåX±=áããØeö ïÞ'Ìâ/Q¾®%Ëä°8Õ™ÑhúþMÛríëÀ¯¿D»ÊÖœ­9[s˜çÙÞzÍk¹ûXœê̸Âÿî@m¶‰4h<Ðx ì*aÆ džçcÓm7kŠ£ÖíÌø>Òý¢9ÛmîšÎ4iÂa]fùýå÷—ßgžçsAáç´ÕPëvf|s&é¨Ù vInÙ2²e$ØUð.à]ÀË<Ïê'—Þ±µngF}b›ê%'[‹9,r˜111 ì*nÏÝž»=gžmã£kTðˆd§FŸcWJÔ?0Ï­’¡’¡’!ã5ã5ã5ØUTTX¼Åž:d²ÁMÔºóD¦9½cq˜‹¾‹¾ ²hÿ7Ð î(4€9O#‘&±Pb¡ÄBç™Mš¹ÂÜ_ºw›½ÁÏ<Ã'}OúžôE »Àߌ¿óŒãÇ3ŽÅyfÒ7.Z8aqªóãúÒ…–ÊñÌ3w;îvÜmİ󚳛³›³Ùžgöb_¯Û‚Xœêü({Ø.ö>[Tm½ºõêVä°óšxšx𨖫÷WèüÅ©Î&3%X¼s–R˜R˜Rˆv^C^C^CÛóÌnÌÝkõ UnçÇÙ†êI?ažáôãéÇÓ#‡WÏ[Ï[ÏËö᧘;ý­£Êíü8åò('É~Ì3œý1ûcöGä°óêòêòêØþL6{$&½UnçGQEí¿L”˜gøQÒ£¤GIÈaçUóTóT³­“×ð=š¢{ UnçG9IGBÌ3ü´ùióÓfä°ó>d}ÈúÀâýTžRž™<æ-Ë<Û|D•Û©ñ£—‡­¥š¥è$Á7ÌÓüŠ~E¿¢‘C4€ÑF3 `ø /^$0Gs´lÃp_·]5–Ÿ™`áÇâ,O+9+9+F£‰Ñ„4vFѹ¢sEç˜gØÉÇvªÄ­_µ ôtB¼€É¿Þkéé [¥¯Ú›»2ϳv±v±v1rØy¥J=dqj‘Äs‹b»qXêªÑ@-b}"‹sã,ê-ê-pšN¸Ï{Ÿ÷>‹fƒÉ ·CzâÒ’Þ×Çh¸ÿY8áª|“®¥jŒbžçIÛ'mŸ´9ì¼ÔÐÔÐÔPæ^)¡¡ØõmWù3œ•½Yœ€xÊõ”ë)ä°ónyßò¾Åb†×ÏXP ¼““+ÏoãîŠÙèmÓYÒ¨:E‡R½#<]hŸÀ§¡´ÜeIÿ'N»Ú¬í'G¾bžg/c/c/ýÓ$>HdqübÒ ÂÏõmWÚR«9Â<Ïþ³ýgûÏF;/6!6!–Å*œÃ€µ†òƒmmùýõ´V¿=·<Ûx|ð`±…àžécL.£²íª±å²g¥ Û ¿*~Uüªˆ4v†Ó§N,Úf/ ¤Ù@N®9ƒlæÜP\Ûö2 ç\mó¤{—lαݜ?µ1µ1iìŒÑê£ÕG«3Ï­¡Ôΰ«½QßvÕhâz¤è®.ÛÍù › ›°ËH§Œ)>RœynÕÓrµÒ8§ÌAïO!#òþÔa»9ÿü–ù-ó‘ÆÎPÙ£²GeóÜVÞñ`Xz ÜU㑹7¬ÿf[ù0|>H#Àh£Œ0°%ÓO¦Ÿ ‹ª>oš»Öª R];&XŒ_®“Äâä­¸sqçâÆŸô˜ñ˜ñ˜o1ßb¾Å, ·§5XïG¸kdzÿÛHk±xÔóò»Ëï.¿C$’"C‘¡ÈvS»qGN¤WcAªkG•ãó¾…²˜óä}Éû’÷!’?§¹¦¹¦¹†í¦vÃÍÓMA¸kÇIëV?”ÓgñÔí´ÛiØœÿ'5i5i5±=e¹e‹ç ›ZT¶];nžb²_å"ólg¹f¹f¹"“?§¡¼¡¼Åã§CÇíÇ3•±6ÓÛV™“kN…½Ò³Z¯yÅRu /Š\8l²ýSõÙê:gÖÕ!¼ó>(É1ÏyþÒü¥ùK‘ÉŸS?¬~Xý0æYå'b.¦cjs(3•m׎2 ãfœe±}n¯§½žbeï'ÕuD‹©%Ì•w HrBUÉM àÖÑpé´ bOYlŸûÇ«?^ýLþd«£¸ª¸ª˜yVMHM çäjóÃøY—-ü_]¡?QáEO©“_©l“¼Í<çoC߆¾ E&ÑFÍ`4€…ZùZùZ`Zkʬ-À"TwŒ{<Ô,XœÜàxÊñ”#6¸ûI•½+{Wöf±’€Õ5ño¿vˆ[Àïî\+0gqÖ‹GoÞ½‘ÉŸSf_f_fÏb9`ª¹áDU,BuËFÐÛ¶_¼|šyÎç.Î]œ‹Lþœ¡¡!æY5èúXüzÏ]<âäð’ý7ì4"Yœµ,´Jh•2ùsŠŠŠX¼³]¯QáÈäÏÉUÈUÈU`±ùóó—e£¦í– ç‡,?zƒyΟ>|úðidòçÜ£îQ÷(æYµÿºVTþ/4€»e#èÜcÖ*,ÖdNQ§¨S2ùsÈ<2dq"û‰Ù£ÆkFr~ÍÙSÞýý~¼:l¢µn6óœ_t¸èpÑ™D `4ƒÑ²¤³¤³¤™Cvd“¸†¡ºe¼íeo«Ïöm‰‰ $³£Òf§ÍN›Í<ŸgÂ7ÎÐZ‹pwŒ-µ ¶ØnA3š1š1Éì¨d¡d¡dm3u£¥“"ðNC÷lpw7ZíÞG¶I.e”2J‘ÌŽºlvÙì²ó|ÎÚqÄQÅ àîCWäÕÝÄâñ‘ $& “?'öIì“Ø'̳JOtÈ1ØŽš¶;ƆIó*¬iæ9W»©vSí&2ùs¢Ë¢Ë¢Ë˜g5Sî˜ïH§žÕn­«9ÿš¿8§šZ ³ØÍ%Ê$Ê$ ™ü9{ì]°wó¬ê®Xß|F5mwŒFWœ"C™ç|\í¸ÚqµÈäÏÙ2kˬ-³˜gÕ·×ÕMÑîŽqåÄ{ëµW2.ç›Î7Q]ü¤ŒŒG)½ðœakн$»e,×›5ÞÂ…yÎçÕÏ«ŸWL¢Œ0šÁh ^xqàs°ÍsÞj|Šs¾äÞ¯p?mþyãvã*þ ©4g6€ô9ef´ØuÔ¸©Ñ²´¤%²Ð>OCií\Õ¿…eƒuç.W¼^)žœmiÌÉË[ÓŽ›*¥ÆâüÔ 5j. ™µ6`mÀÚæù4ؾàòDŽk¾ŠÎpP½àm¹ÎCô´Î35¾5"e⃆®åø$¸G6Jy§ ÿø^3fèoÙv1‚“—·†÷ѽj~”ÅQŸ=>{ ™àààÃ<ŸËïÓó´&qÎbÐ¥GÁºô¾Í£æ©Þ³Ôv\xŸxï{¾Ó‚ŽC-%Ï$pÀâÕü~’çƦZh­àäpë(ÿBÿ¥P,‹£6Ýüu3’ÙQÞ…Þ…Þ…ÌóY1Ãc˜ÅcN«-S¯MžbðÊã¹Z©tZkm,xŠwÝÐmjª¢¶‚ÅSŽ)O•ìsuëÄźïZÄ<¯Øqr¬É?ÜUhóÌ“ù&óMÉ쨉3g$2ÏgõÍ”"ˇœßôí)§ÿ2R·ÄJø3_s³z³z³:’ÙQv½ìzÙõb±¿Èßã©ÇœV[ªûÔo¹=|»þ2Ëg|ñ¢«Äï ½$ -xQ(X!PÍLgÚöEÛªH]¬¯¶Å-^à_¨rÎg1ŠÙŸ™Âã9Tv¨‹‡×Ï·œo9dv”EŠEŠE ó|®>œû—Ng6€W|»ûIÛ­µ*©ôA Wkµ,Ö¨èÌŸ¨ýubòð¿®»ä§öŠCÛÀFÓõÄÙ~bbB2;J«Z«Z«šÅi÷›çϲù›“ëÌžxpëØ2Å3Óæ-‹£Nóæ;Íhf43š‘L4€ÑF3 `øwgwgwgæ0ÕÏ™eeÈ _od©ÃSñö|æ<ô&Íí­Y)g~mŸ²ý‡V_ækÎÝ™»3w'’ÙQ   ÌóùE u€õÎl $ñ¯:µí Ë]–dðzt&6Ö8‰3¶ > Îbæ C C qI‡YYY±XØúåÇ›ƒÞH:pœ ]¡ÓßtIû& ÅoÊâ̰âG7_Yæk.~Qü¢ø’ÙQºWt¯è^ažÏPï|uݵñÀâ{ÉÚë•…MÖ'·?ÃÓÒ"¾)Žçäðh«¥ÊÒ÷™¯¼$¾$¾$Éì(ywywywÍ›pÏÕ6×8bHÌóŠM‘œî;…~íO²Ó%¥‰ÌÏ'çFXUqf¼¢^?T¡™ùÊ˪ʪʪ̎\%¸Jp‹æMYF­mά0åOJÝPn¿¿féWâ÷øí¾ÿ_9¹¼(ØYYN•yæ+£+£+£‘ÌÎ/qþÓ.ÕŒ ÌÜË õ¤qfOÚ;±‡FKG÷mÿÏd­GÁ±QÞ,>ÇÔÉáæ¿²X5¢j©ZlŸÛIæsȪÌ9õ$ó‘ïÅß®¹9¾ÇU58³ ¬^9*A$žÅª‘ãÇ/ŽHfç“,Ÿ)¼Q@›óÛ¨=·Ü:Zß’¹ ZÏ<ÿ S¦6LE2ñ' `4ƒÑ†QSSc±`ìIÚ¼üµ_i­ËRJÃ6üsΨüIáÊ;Ë̽GÌK;;ù¢¡pþUçqÆ!Ä'û*ƒ¿BFWŠl}'˜ó¿Èï¿â1’Åi:—&^šxi"’ÙQBû…ö ígñ,§kæ8[)Îl· ²™sCqíÍI{é‘—ÞF\Ô‰ñvY >´7Ï}ž½ýÐ"–á`SÄi [iƒ¢Î|fþ\7–ÞXzc)’Ùe [#cöf&sÎ2п¶îñ:óõ‘ó™¼p^•¦ÇŠaû6hX#“¯d<ÓkùÜÖ7¾ÿ,ú®[ªãs9­¬9:0mß0½ö£ûÑýÌÎ'Y Vĉ·G, )¬Ç3"Þ*mØ¿žXWÿ8ê¢H¼“Ú¦+ "ó¥Î !èxsc¥ü§Æ–MÃî±û³Éi [n¢ûÇ+ó³Øèu@æ€ÌHf瓬*("8—sêÉu·ŒÖ*/j½¶Ö8ô/CJÉõæ¤IôÈl©)F}NžuGó¹å é&Ñ-¬ÞžäÄ:9VaÌR­WÌW›””„dv>ÉFzš‡=è)ÇŽôÄ- [Çè¡¡·40Ï‘[‘[‘’Ùù$‹ªjó›rN=)©fYl¿÷û+”ìe9Þ®HMrñÃÍ6:'׺Ÿ¸3bÞÂÍÛÓ$æœÏ¥tÓýk '‹^/¾¸øâ"’Ùù$kÙŽ»+ÀÉ àVUëîË»,ͺµ@£1P=-O+­µrÌ}À;‘ó·ŒëèŸ&ÃâaëÒ¥¥KK±vÑIžk¬ž.3 àîW/5TQêÍ<ÿåÇË—G2ñ' `4ƒÑ†ü˜¶,àW儯´Ö¶nëU ­å¡y‚ Wº$˜Lc÷%ÍüYdò„òoäÌ/ì7{Ý™=e¾æ]F»Œv!™O²f¦²ŸP<',ý07€yßðÚð$&kîÛ ¯öýÂÖ÷ÿý¼ÅfmÎßæîù‰‹å¦k™¯3J4J4JÉì|’‡ùŽ8¬§Â9 @³÷Øýsq‡†ÞáµÑLYiºŸÑú¿2/Wýó3|-ŒÀ'ÝÚÎ4&&3SoÖ¦Ççò˜çÿô‚Ó N/@2;Ÿd5eë(‘aœ°ô3½lw€Ò¿j‰qVÊä´½àe™î¹Oò+ç7€œˆÿ¨¶ÅãeŠ—/)"™OòŒ?U¯I-ã„Jòeï!fÿã}3TŒ'QÄ›ïïü‚p—i&Òì~ý?Û°Õ³P0æü6ðÝ…ŽW ¯±x¼Ìé†Ó '$³óIö?%VvÀÝ=JõŸ3Ï?UCÕP5Hfç“,ójâ÷(N¨$µN ¾ð¯†ì¼ÄÂʾ¯‡™)r±õIãü°Æhÿ#‘˜¯0ã[Æ·ŒoHfç“l[ïóVz‡6€¿ á™á}=Î^m4»ê·§<(9Ý?ò¼’‹ÇËüòüòüÌÎ'9‚03Q½ˆpw'ŒF™hnfñxÙô¢éEÓ‘LüIDÍ`Nh£ÌÙ¥çCYÿá¾±ô³Ê1Ùðæ’:käU7…—©Ø¶ç‹™¹IÌ™_çUù³çX²8o20#0#0Éì|’Øþ%qŠ3ÀÏ튤ÓÚÓÐýþwg’$fÊi [¬nî²`ÑlXW¾®|]9’Ùù$KÔ[jØ%qÎx¹é‹ñ‹ÿ¹¶\‹vbíY¢úþ‰ìÔTIsZØÐjgÕÕæù߸#pG ’Ùù$›$ͼ-1Š–~4ޱij½ªÖ- Ûó»B­Vèˆ/R’æÂÉ [Ë–%Ghj2Ïÿ!¿C~‡°°ÕI²6˜®¸–*ɵ÷””ÿYrÝ2Ùä‹JY{*ÞoãæŸµÑk=¸õ×/´Õš'û–Óêä'JÓL®3ÏÿÉâ“Å'‹‘ÌÎ'y“Þb^]4€»{|èp¦ÀXyþã¯Æ_¿Šdv>ÉJî3Ÿ.ÿÊïþö²oWÔzUb"†Ê6¼í©M^Eg8M”/±–“À:aŽÿù ¯µ\k¹Ö‚dv>É“?mØ%‰3Àï¦N»ÐvÝ»òUÆzísœßž[|²@5–ù:ÉD2‘LD2;Ÿä3ÇF¿Ò G¸»Ç›^“^è¥3Ïÿ½Ç÷ß{ŒdâO"ÀhsB3¸çü‘fÓ«JI qæ—\Û_Ìͪž®6Çw=1OÅù àÏçn¶úˆ¼uÏÇNëe%8³L|:hðW{~ïµàÈB=ñÿÛýÿ;s¶j^)VÈ[÷‘92!iæÎY¤åÔU&üóžýwïþþàÌ`å}SFé¿Ûv*¡¿AÌöªË œÖ™¸×?y6òÖ}lg-~%­Â K?bŠÎü‰­W妸ßCY¸ýKTœ¿°à™ê¯µyë>ÛŽ™>Tõá„JÒÙOeŽäÉþ’mòƒW­¨[é_,œÎq;åŒq»fvyë>ûéUªÕ¡Üí;匾xÌt1òÖ}T=½æ¯Í •¤P°B šYëU}¿_N{~/翬7~Óžs«‘·n\…º«E‰‡3À.;v‰)–rG¼À+~½êäntåÆDIÝkhw÷˜þÌqá>ä :ðó9îJÜ•84€ánjW¤Ïræ—\u¯Ù~–gSøìõE÷³9¯±/DÈÐSI~ÚZ•’>âçøØ}.Nû,õÓæiXÛ#oÝÇgµËM¹hÎl¿IKJ2+mÏï-–¼4Öô(«#¼îÙèÁq²`„ABv»ÑXµÜ,²ùÓqP¸aó•8cä­ûÌX¼O\é g6€½ž'F4qGx‘aB¼º8òÖ}nÎô\ïÀÝ=fÖMé?ròí×x¡ñBã4€áœöp¶Ô”£>vÞˆ¯o=çŒÝ•kçŠÍ–U¡¶Uz;«†Þþ½pòÀ ^wNXßkÏï­ß˜¦bíÊ*ÏxøwÁ9oäìX“”ôýµgFñ¤½ãŽ0Þînœð°ÿ@bŠæ¿6•mm ·ÿß°pÝ%?µWœ¼°…7€»ç¼,¼‰Ohcç?Ñ÷ÿ¼üûÀÀx˜;pÂÀ­{Ût¦BÖݶaäæO‡7€£U8~xIïëc4Üñ0´ÞÆÀÀ¡?ŸŸ7€[÷@Ǿÿ‹%Z;XhoñPºõÚ4‹6 m=ó,)vÂMÝUÏÕ]—šz¶žgÆî‹œ3¿ÎÙìvÈíÛ!$³óIæä3€ÛÿðËÚÄP3ËÖßÅ÷¯O9§5€ÙÉœp°aidå Éﯪ£okênÜ{“ÀìÎŽ "¨ Éì|’9ù `nj³;xÏØ=c÷ŒE2;ŸdœükÏ>4÷ÐÜCs‘LüIÜ×o_¿}ý03Ü÷Ÿ«+¯®¼ºÒ«W¯>íoý¶þúßè `hÏ[ÑÒ–‚üªœð•6~´|°Ø¹Ö«òx®V*Ö"æyŦ¨í/é'®Ó皤q~øÍ^·GfO™¯s—Ñ.£]FHf瓬™©ì'ßÓϾ9iï =òÿ€Pþ¿¥^z³áÄÅrSOÑF‰F‰F‰"™Oò0߇õT8gèûkÓþcµñùv½7p<üôùJ f~ RJŸ%xД'fHæz³aÖ¦Ççò˜çÿô‚Ó N/@2;Ÿd5eë(‘aœ¶¤åvð€²²iûïÄ¥A_dŸrô› 'â?ª±x(ç’â%ÅKŠHfç“<ãOÕkRË8¡’t(V¬‘øgkÙë‹&Ië9ö¬¥«<ºÐñªá5æù¿átÃ醒Ùù${Ÿ+» àî ƒ¥úϙ矪¡j¨$³óI–y5qƒ{§mÝÚÐmÿ¿AÙÁãñÊœÜÖí$róf|Ëø–ñ Éì|’më}ÞJÏ@¸»Çéþ‘ç•´˜¯3Ï/Ï/ÏÉì|’#3Õ‹hw÷xÂh”‰æfæù/š^4½h:’‰?‰­ÍBÌ whmÜn8³á̆3íoú¶þúÿ¾é‹0‡RSScJ‹±'ióò×~¥ Ç„7ÿŸ¿ZÌpò©Ø®'¡&Mzô 3Nþ:¿ÿvŠÇÈ,–h'^šxi"’ÙQBû…ö ígqß]3ÇÙJqZØã¹]‘tZ{~ïÔ]£ûJ´þ.g¿1A’'9­œ6(ê¼ÁgK´Ko,½±Éì|éöÏÐȘ½™ÉœÖ–ÊÝ{š^{~—ôÛq‹]cþÙn4R¹D+–ÓÞÖ˜¶oóÌÓýè~t?$³óI¨qâíÇiKZÊ[LÇ—´ëía뇺i*Aã9yaËMtÿxe~æùÏ9 s’Ùù$« Š„Îå„JrÅRý‰ /Z¯Ê3L³—ìÿÚ󻼿}¶¾gþ ©4§5€åOJÝPnýïÁºs—+^¿e¾÷žÞ×Ä»;”tû», ÿþ×g’$fÊiïþ¶ŽÓŽ›*Åâl³š 5j. ™µ6`mÀÚæù4ؾàòDNXbÞæ®•\Ôä–ùç[·¼Ó Ë>ñ·rüìÆ 1ü#Å4%ÿ)IùD¦ˆÙqæÉÁÃûè^5gq.ûgÏŸ=ÌŽ ð ð ðažÏå÷éyZ“~ñЂÁ,V¨xÔ?Žº(ï¢`>_êÌ ‚Sø6R˜§&m!"ØúkÄ)Ió?áä…-ùú/…Xœmöuó×Í_7#™å]è]è]È<Ÿ3<†Y<æ„z’Å?Ë4e-ϬýPkMks7)vÂMÝUSw)_ú¿=EZ¹ÿ=¢PZš3ëdMþá®B˜?Ý7™o2ßdÌŽš‘8#qF"ó|VßL)²|ˆp÷R·ÄJø³xˆD½Y½YÉì(»^v½ìz±xPòïƒñÔã_\OòÄ É"ÞÇøÏÑÄ÷×&yÝzÏäLµ`Ÿú-·u®­=¹vDíb‹ðpñ™&Jc [P°B šÙÿá8ô¯ 5€bög¦ðx•êÇâ!’ó-ç[Î#™e‘b‘b‘Â<Ÿ«çþ¥S†p·ŒFÓõÄÙ®bbB2;J«Z«Z«šy>7ÏŸeó7ÀÝ1¶LñÌ´yËâ!’Ó|§ùN3šÍŒf$ `4€ÑôEþ%K:K:Kš9LG6ÙˆkXüÚ/¶ A9­ÛÓµÿAÑ‚éM¶Ëä -äßøý?7U^FÌŸ#¾¶o{ÙÛê³»þ‰‰ $³£Òf§ÍN›Í<ŸgÂ7ÎÐZËi àÔkQÞ¯D¼…•xç·gu1ÅéBüoÒ’’ÌJ9­ÜR›Ñ`;€í_¢F3F3F#™•,”,”,Ä" FK'E¤rÚIÀ­›9·ç'3ïáÁ"35V-7‹,ä´wLîF«ÝûÈ6É¥ŒRF)’ÙQ—Í.›]6cžÏY;Ž8ªqÂ2Ð ôÙÚ¼òkô…¶´'Ã29Zá‚'[ܹ°º"¬î&æ+—˜ 1Ab2ùsbŸÄ>‰}Âbsø‰9Û9¡ªlÝÒÙMi„œTRû«åI¢ ›Å'~ œwÈ:’Ó–½&Í«°¦Yœ#~Sí¦ÚMdòçD—E—E—±Ø^î˜ïH'4€»cüâœjj-Ì<ç&Q&Q&QÈäÏÙ»` ˜gUwÅúæ3òœS!KÅŒò™º¢=?EvjªŽ¤µµVçyÓúO¾t’>‘Ñ•§ÈPæ+W;®v\-2ùs¶ÌÚ2kË,æYõíuu“Æ@4€»c\9ñÞzí•ÌWè|Óù¦3ª‹Ÿ’’’Ábsx϶¦ehwÇX®7k¼… óœÏ«ŸW?¯™D `4}Ñjåkåk噃e­)³B´€sÞlXS>Ò_éž©Š”‘Ȫֳ[GËÒM¢[öEX®W»Ð¬êéjsü_gûy{)ø‡¨ ¿5o”÷ÍDÙœð‰*öx¨Y¼ažsÇSާO!“?§²weïJg`8X]ÿÆi àï³Ü¿Mr—ž&KKZò' žÐºM‡R½#<}í}ï(e½ºTÊÐ*Œ3ßý}wçZyóœ{ôöèíÑ™ü9eöeöeö,Z8SÍ 'ªrÚ[³ÿü¤]3ÛsÕV‘ÙGöçý2LK´€wPаcÃVHÑ›&³d‚œÛcÃÒÈÊ’œvý­£Á¶í/ŸfžóŹ‹sç"“?§D¨D¨„Å£ Æ]‹_ç´ î¬)?Xé¤ñ5á}‚™¢x'ò‹‰ õ’qÕ$CÆzú—ɬ]ø Cç9'/l-ÙÃN#’ù W ­Z%„Lþœb‡b‡bæY ܮרpžÓ–„ZßôuöS™#yRî²°ÿ'$^å¡S5Ã' ­qº¤Ô"‘Ùúk¾¯±9íS<wÎ5~Àâ/½yò6ä!“?§°OaŸÂ>̳ºÎ~A?eG4€»cÌQ:¹ÇÈ„yÎwõÙÕgWdòçä*ä*䲨CKñÀŒù˲9­BÖ8»|™ü9÷¨{Ô=ŠyVí¿®•ÿ àîgç³VùÆ|…§¨SÔ)lcþ“È<2ÌcžÕ³G׌D¸;Æ«Ã&Zëf3ÏùE‡‹I4€ÑFÓ ``K¦ŸL?™~,¶¾Ü4w­Uç´;ú¿ræy‚Åøå:,ÞÒ8w.î\Òø“33ó-æ[Ì·˜ÅÖ—ÛÓ¬÷sÂÒUçÿ9çŒgÿ·‘ÖŠažíËï.¿»ü‘üIŠ E†"»¯“qGN¤Wsfµí…*N{ë÷ûQåø¼o¡,æè}ÒØù7òoäg±üm•kÀèYËFœ?ê…©É ³ø‹ëGÍš5‘ÆÎXµmÕ¶UÛ˜çVÇ-,äø Îl£öÈÑ$æHf:ÿ9ñ½Ò,¶®ª™Y3³f&ÒØ>!>!>!Ìs»hZB©ºbÏ]Þâ¸Ñ¾`ž<¿½Ðê¡«X<Ì×ÿsÿÏý‘ÆÎðøàñÁãóÜ>á™>Æä2*Û.;Õì²g¥Í7vþªøUñ«"ÒØNœ8±x»ú#4ˆÊ¶«ÆæI÷.Ùœc—äÆÔÆÔÆT¤±3F«V­Î<·†R;îöþUU¥|âÔ …I•íyŠ/Ülü*Úÿ{%r-nØýó°ä{ÇœÐ6q=RtW—]’› › › ‘ÆÎ)>R|$‹SiÕÓrµÒPßvÕ2"ïO]¶óÍo™ß2iì •=*{Tö0Ïm冥êÛ®¿ˆÌ½aý7Ûƒ«|> ¤ `4€ÑôEØz‘ð"áEsGÈ6 'ðEÛe§5œ™`áÇ<ÏrVrVrVŒ&F£ i쌢sEçŠX,¸8ùØN•¸…©®K^µ7wežgíbíbíbä°óJ=”z(Åâ©ðçÅvãиí²ÍŸÕ"Ö'²8Á¢Þ¢Þ'ètû¼÷yïó²x—}Û‰!XêªÑ7éZªÆ(ç¼nŸ´}Òvä°óRCSCSYœ€¸RB?B±êÛ®óg8+{3ϳë)×S®8$¥ Üò¾å}‹Å ¯Ÿ± @y'êÛ®³¶ŸpùŠyž½Œ½Œ½Œ‘ÃÎK|ø ‘Å£ ŠI3?‹_UUªÚy‰…ýsÒ¶€ä9o#å}SFµý»ôr7^8Ìó•÷ß?ot©I.~¸Ù†#6–Z}ðÈæyöŸí?Û6rØy± ± ±,Vá¬5”Œú¶Ë66¥’ÉbG"þ5ükø‘Ã΋á‰áa±1Ï éQ:šëQßvÕxE}B…îæyÞj±Õb«rˆ0Àhú¢ ?’ÆHc¤I,”X(±9”¥“f®07Å×mçÇÁfoF°x?õ¤ïIß“¾ˆaø›ñ7ãožq<ãxÆ1Ïs¹ô‹NX–êü¸¾t¡¥r<ó ÇÝŽ»‡F»@svsvs6»Baä‹}½n ¢}ÛùQö°]þì}Ì3|uëÕ­W·"‡×ÄÓÄÓĶä]Ÿ¿Bço,Ku~4 œé(¡Í<Ã)…)…)x;§ 4ä5ä5ä±Kòçs÷Z}B•Ûùq¶¡ú_ÒO˜g8ýxúñôãÈaçÕóÖóÖó²}Ç:æNëèr;?N¹<ÊI’ÅáJÙ³?fD;¯.¯.¯ŽíÏd“±GbÒ+þûªr¤ïž·œøGŠiJþk)¶u{gƒ–|W–›r¦tN®u?qGé€û¶€b¾5"eâƒZeë9ÁÆ™Qaï7øº–,“Cû¶3£Ñôý›¶eÙ×_~ˆv•­9[s¶æ0ϳ½õš×r÷±,Õ™q…ÿÝÚlO¨m<Ðx ñØU† È<ÏǦÛnÖG­Û™ñ}¤ûEs¶›?7i:Ót ì*Ëï/¿¿ü>ó<Ÿ ?§­†Z·3ã›3IGÍ^°ÝhtdËÈ–‘H`WYÀ»€w‹ÔO.;¼cé¯=ñwèZþOí_ä‹]%~OçáÚÚ“k9aóg}b›ê%Oæë9,rXä0cccØUÜž»=w{Î<ÛÆGרø¡ÖíÌèsìJ‰:‹#<” • • ¯¯¯‘À®â ê ê Ê¢5d²ÁMÔºóD¦9½cž[}}}dÐþo éÛQhs¨/6_l¾Ø°‹lÙ¾YC-ôðÕûsã‘¿­«4d™gu™ñ2ãeØ ¬‹Õ6Ô6Ô6°KòÇÉ;-•±DõsãîYûF|fžÕÕ«V¯Z½ ÙëâòB«J«ŠmkÇ(p ±­ÜŸö¸hûœgžÕp‹p‹pl ÔÅʫʫʫØ%9Ø(;FË[?9ÚLZÔGŠÅ6˜‘;"wDî@öºÖ[Í·šo5Ù%¹þñ¼™Ö‹QñþÜè«»AžÅöŒQó£æGád¾.öòë˯/¿²}pd\º“u*ÞŸ½Ô2eYìÇpêΩ;§î {]ë阧cžŽaûpøÑ¹wËmX*gtïizÌïÿó¾¯Ì %aÙ7öWæÜ0,¬¼!É ­ßÖQüƒiÉxækŽ‹‹CöºÖ#µGjÔ˜g[@E¸ahêš5…t_¢âý¹Q­Áö7æ¹½&vMìš²×µ²£²£²£X<¼þuØKŒ^ƒl£âý¹ÑúO/QïX„!€ìÀݸ*‹¦o' ÌÑv.ß¹|çræø.àѬ“ÆWoGÇê´Ù·-±û¡PbPbPb€Ôu‡úõ7ê3ÏùrÑ™ïıDÕѱâË­·lÛêe”ýQöRׂ‚‚ÂXœžâèí©VnGGC:2ìú¶ˆ¸~týèŠÔu‡%.K\–¸0ÏùØØå®2°DÕÑÑ_Ø­™Ævgóós¤®;ÌMž›<7™yÎw_´X¦ÖuoGÇâ†b¦Øî,råÓ•OWºîà|Þù¼3‹¡Žü"«!‹º·£c‘ÿ…&;Ù> r£þFý ¤®;LŸ ?AžyÎGˆ,8´Aâ×Öœß7ty¦SŸ ¬#2C’'ƒØýÊ_;êÆm8y¦…í"¶¶¶H]w0W5W5gñö¤«ÀîT¥ù¨{;:z[^S“b»³Èô¦éMÓ‘º.vqqOë¶Öm­Û,ŽX ›¸@·uoGÇ;3&ך³x„h½àzÁõÍõÍõÍõˆ ܵÐôí*hs´º'uOêž° ôƒaS#üð5Üþq©£Îykæ™\¿$~I<òÖ}ªgTϨf»íöc¥s<ÆyX®jÿ8š£‹Ì]æ™ :t&3v£ŠÅ‹+³K²þ¨-qñAhëvà†s¦"ã|™gr£ÆFÈ[÷yÏóžç=Ûryq›_s–«Ú5†äëéªÅØ,a±°sôÎÑ;ñWŽnôÆüùsvI.-™yÑÜÕo»Æ³^clµ­>ʸ‹²¨.V¬:X…¼uŸâ^ŽŠ{±Kr¹Ý| wT¿í[*3>Ûþ¥?^þÈ<“'äNÈCÞºOá¤ÂI…“Ø%ydÁ޲䯨~Û3šäFÍà•ø,»ƒy&Ï8ÿáüä­ûäÈ‘7‚]’WÝ¿/©Ý€¸=cèÕü$Ý(A9‘8^!æ™L2O2OÂ#’Ý(óPæ¡ÌCì’üYb®«U.jàöŒ¶óG[³=%Y.Y.Õü àÎCÓ·; Üœ|zòéɧ,Χq:†'»aü¼rk _Ém÷æ:ñV³û1QáWáWs»Ýáׇ_~Í<ÿ’¹bª|Eß\ï*ÛŒÄÒUÛ#uìÐ]/vI®¶¯¶¯¶GÒº[dpdpd0‹ÍÁ²¥晜?úøÞ*,]µ=j²W]’ë¨:ªŽBÒº[ø¹ðsáç˜ç_vжŸ`Þšëuë°tÕöè6rÿeqvIþrçË/Øh´Û…,Y²€yþm‹d†/aŒò’µŽJ¸íñ\ÓXIíqì’ÜàÚàÚ€ýº_Š_Š_ óü;$[IH1fžµ5F%ÜöxüÔÚpMOvIþ¶áÛ†o´îæuÊë”×)æù—nš½Ýò:»1!1!1!ÈØãÛûo�™(2Qd"ó½;áuE©KWl·}¾~ëªÅvIŽ;,v2ößhxÑð¢á»{¡P>ÝlI?,]±Ýö9=rûõSìf/aL˜„1ÈØ£~aýÂú…ìîÅ$ÿÕ×å´°tÅvÛgOâ«f!»Ù»1ôÆÐC‘±ÿƧŸv~b»ÝkÔ^ëT¿Q³_”Ìð3û“Ýì‘>¤郌ý7j&ÔL¨™Àî^œ,Zo©ùõ0»ñÉ›8ʤ„ÝìÝ{wîÝ¹ÈØããÑG?ew/Ô¼|nlñE=ÌnÔºñyìv³—]“]“]ƒŒý7ÊÂËÂËÂÙÝ ·â1ÊN¨‡Ù ÖÇ_QÛÊnö <x„ÓRÿ#¥J”`w/nùÙYê÷E=ÌöU¢+NZ#û°›½'9Oržä cð=4€»  æÐìÐ쀦o×B¸Ç(r)r)ra÷à¢ó8Bg¾ž¿›¿yžµÉS*w@ŒÅ‰#zCô†è i1l1l1DºþK=<öð»$_Ý)«[Že¬ïǦ÷†Û„š®ÕñÙÎþ}<õ«lÊÞ”½)›íò–㦋碱¤e*#Ÿ©*yÍz×ät¶[ñ'T$T$ Q¿JˆxˆxÛ­Œ—_¿¨á‡%­5×èÖ鬚tl¸Û­ø««‘¨_Ÿÿp¶mà—î3Ž›I¡NnáéjsÜþµb¤xÛ­ø÷Ôí©ÛƒDý*Þï¼ßy¿cû·˜3Wæ›Cü-áîb› £úñ_Åv+~ÿ/þ_ü‘¨_ÅÝÉÝÉ݉ÝÝ1¼¹ìzêdÞ¨ªôþÂÁÊÑZ,Þwf?Ì~˜ý×Ï_?ýŒDý©ŒTFªÓ|§ùNóÙ%y…hú"m~ÔÉ«æþ©S&á¯\%À¢,?D~ˆüo|ßø¾ñ!V¿€C‰¡4Vt¬èXQvI®Š™mo‰:ùóœ¹Ë­^Ɇçg± ­–––OSnSnS.bÌÐ΄pOÄb9Oužê<•í†*37Ÿü¿°·n2õVe{ºä¥7–ÞXŠ(ýZ- - - —L\2q Û UŒâÌLnÿÎ [ëä¼ß(e»1£©Cê K¿Vó–æ-Í[¬´­´­´ÙÝ)ý'Û‚.åþ¦ [Æ1‡2iÙ[ö†s†±›Ÿô¨ô¨ô(dé×jêßÔ¿©¿þaýÃú‡ÙÝ)¿¤Bóðoº°eWª'gÖ×ãO‰+ìæ'+.+.+YúµT.¨\P¹ÀîN½è.n~ü÷¬[ž{6Ûþáe¨i-«Ën~? ~Œ,ýZõåõåõås%æJÌew§ÊoÜT°ü=+äæÌŒ¡6é3c'N“þ»ù)l*l*lB–~­ÏöŸí?Ûó¦ñ¦ñ¦±¸Ix)¾Í#³öÞMÎúM[¿ÛŽ.½Û(4ÒÝ–íþXÅâÅâÅâÈÒ¯UëRëRËv7>¡ëb¾¼GVùgnÔ~ö›îŽÓôÐGw¦j°Eü°Íìféõ›×o^¿A–~­ª¿ªþªú‹Ý=RY&b%hþ©ïœZ«¿gü5y^’õ1 }i7Q¶ÿnü;¼Jl¡ œ àé‹Ð¡/BÒÒÒl7Vz4õšÑæßè ;ßËÙÖx³ŠÉ&•Óìæ$òÏÈ?#ÿD~8G{{»@‰@‰ÛS»9ÄÎ7>ö-lÍÏt´• õ§”ÏnNÙ²;d‡üpŽj§j§j¶ï7üó6pÙæuš~£%-FôÓŒLÙYv"l&u|ÔñQÈ稨¯¨¯¨o;ÉKçÞ¼¢Qð½õ»ìQ‹î3Sc÷3~lOa/--G~8G™u™u™uÛI~mã6ÕlûïS'7EzÊØ„ÎÏÓ¸-öâJ0L0LÀÁ(¤Ô¤Ô¤Ô¤í$¿å½fîý½õ;<ý«ŠÛš ¾R÷ØÍÉuÝëº×u‘ÎñòõË×/_³»_C%øæò»Víþß Ûß§N6þuôÎQ1;ÃÇ6lwbHy–ò,åòÃ9ži?Ó~Æö‘_áAâ½yo¬˜›^©­ú½õëõà¢N¡ª–ňalë¿£~GýŽ:òÃ9 4 4 4ضïŠxN®z?{åoô¸ägå¹³¬òÍßI›‹²}lý¾Ú}µûjÈ´ `àLh÷`åOËŸ–?m{Qàæ}»¾zϹû«ú›ÝüXýEo´{ÉY±›‡••F%£’Q‰äpšw¼ïxßñ¶drÑÁÇ2ܽ¤Õrçõ³¹Î™2l[‰¡&¡&¡8ÉŒC½n|Ýøº±í$k¯®::ˆË—´i¡â¦+ÇU°›‡ð^á½ÂQp¨âÈâÈâȶ“ì>lD5w/i_É Ð‰Ò0m!’Énv.Û¹lç2d†3=+zVô¬í$?x:õ©ÑQëæä[…Œ-w[Ì€Ý<Ø{`ï½È gÊ”ÿ(ÿQÛI~43v©ñIkF&–Õæéz#DÙþ­!Æ;Æ;gòq¨œÕ9«sVÿàqÉg›]/Üãî:yäë}nK íP¸¬¶Ý<œ©³}fÛv’•ïÍ”È}KZ.Ûy‹øÖ‰ÔŠ ³ûìk$ÖH¬‘`Ô2jµH '+ØR°¥`KÛIvšº©EA‘û–´–*Þ¯Aó5 –ucûÃŒðá3Η·>o}Þú¶“|zÕèeZ\¸¤U”?]ËäTÛŸ}çä“wNFN8_–N–N–NÛwó‚ß=íhîký>º{ÝøzÛŸý@ß}`q­Hߟ¾?}ÛwS=`Ù í×¹¯NÖµÞýôô¶?{ô¢èEÑ‹ÎG^$/’Û¾›îá‡7+¿á¾:Ù[îÂ$5¡TVÛOo?½9á|7ƒoß nûnÞ–´{¥?‡ûê仚Ž1†±mö8ï8ï8SüÁBmî¨Õ"§÷ÞY¯õ®/i¤éiO ÙÒWasÛŸwÏõ=×÷\G6z–‚«W ®¶}g]\UnJ}|àqÜR¹×Ék¼FÚ*GUY—jˆ·ýy£þŒú3 £ô0û>ìû°oÛwvV™ˆtDµUJ嵞[!·ÜÉxlÃØ÷uå<µ´¶?ï‰!'†œ‚lô,Ùƒ²ejûÎJÛj:½0:`9µ‰’m™Ñ_éo·Lÿ´½cÇ>Ž}Œlô,wÝ}t÷;4˜vŸ&17Ø0;JgYÏ­“C³óŸëž[»ü‰Ì¥¶?ï¥é—¦_šŽlô,´ íB»´}gÖèíQð©ç'hmÙsë䯧óClÄÖÿi¥üƒ¶÷Õ¨«QW£ è(4€3¡ÌUjÔ¨=`;Áv‚í„¶¿ÌvšoØ´ÚSÔfUOùª~i?#ÊL|Ü4y1ÿ,iDD =WUeUeU¥Éß&›üÝö½Þ—¹ÒJífsq†”MfOYÒz®wq·©·Õgƒs¢?XÒ²8aqÂyè¹>þññhoÓÞ¦½­í{­b4÷òê0ÓÑu=eIK¯bsDÜáÍÊ÷´6þ`I++6+6 yè¹Êž—=/{®T T Tðƒw‚ËÃ[œÃœ 6é)ô”%­Å)IÓÔ£¥,Ôx2°¤%zIô’(òÐs½ xð6@â­Ä[‰·?xsåÄè0­IŒz¯y¶Ö=¥N~ØZ¬±˜JµÈA×,i©\U¹ŠÇqz°×ù¯ó_ç ܸ%p«í{}þØæÚ¾=«õ›3õäu£Ñ2‡$¦ó¯lûÓÝj¾Õ|«y蹊k‹k‹kyÚA]jIK„kÏjýêÈ®¹w쯦`šð?¢vR;©ÈCÏõ$ïIÞ“¼ö$yæøƒ³”Wô¬ÖïüÝgòGÕãʳ´íO—þ.ý]ú;ä¡çzìÿØÿ±{’|ãÖ¤#zÑ=«õK{;<1ØÛžOwŸqŸqq€Ÿ„0p&4€¹Ps^s^sÞ†’ %JÚóõvÆvôm-¿¯Ûç°ÞÏi_Ò%äLksqŸ]Ú1r'ÚóYîÞ ¼ˆ p‡¦íMÛ›¶‡\¹r¡=wÿüÍÍ'µ—7ܾóÖú§-f½žzyŸY¤×µ)ú²íù,YjYjYjÈwø6äÛoC---ÚµÈ5hIJÄß&fGV§§pÜ&σ"†'‘Tµ|l¿¥=Ÿ%7.7.7à ΠΠξG}úmÏÝw{yà„²ShX¾³îN[ÌZRv£X#N—ß.nøüö|–G 5 ܡ޿޿Þßó®ç]Ï»mßw¾ACGð$_÷œ$¡7¹)Îs„ÍN«“Ÿ¬œîkrj òiI­ö$ùÉà'ƒŸ F¸ÃçŸ|^à~Ëý–ûÚÀ">Â#x=“§î;¡¯ßìw/Û&‘Óêä‚Sç Mí,›Åð¾¯ðá7ÂožW>¯|ŽR¹D~~þ´•ÓVNûAËŸÏO„+Ò[5ÿàj“7ÑaÓ8n“çò3ÏV‰ºhŸ2ùÜög‘Þ&½MzÛ«¯¼:€ p‡ê¬ê¬ê,»¾v}í~°Oƒh±ì9>Æ<¹SŽªÔšŠÇôþà´:yá‚K£ÕŠ?-vnû³¨Q¢:¤tpéàRT\¢rDåˆÊ£¦Œš2jÊV-Š–™¤7:n5<Âí%g+ÆAur…—‡­eö¶) #“5’M"Žm]W]W]×÷ßO|?€Î@8À\.]$]$]„§Ý62 V‰þxÌc—¥ä¯úªÎXé´j¤š“­Òc‰Äö\³3Ùą́,®,®,ÆçVÔfj3µ¹ýIŽ»ô¡êžêä”§–ÕbVúö£Ç 7LºdQ$îÛžkž1+bVDÍ”š)5SpǹUòýäûÉ÷ÛŸd%Å™*ËŒž”¦$Õb–VV𮨱¢Ú#M¼ÚsÍžUžUžUuQuQuØ4‰k]{}íõµ×íO²Nh¹%Á¯sÒtÎýªÅ¬9—Žg¨Ú*~1Ú <£=×ì+ë+ë+û9ñsâçDÜqn•˜‘˜‘˜Ñþ$Ül£îò5aÞ%ë_öÞÃm'»Ïú¾¦^R"áí¹æÕÕÕúýõûë÷ãŽs¡&F£)n}Üú¸õíOò‘À “ÆŒôk6Ã~U|SdϽ$ƒêqÃ4ÛsÍ«û¯î¿ºø†q ãpÛ¹P#‘w–ï,ßY¾ö'YUÏ33,ÄdÏÑ-÷DU¬1ÍÿaäÁ8Ù å/í¹æu—×]^w¹1»1»1· 0ÇýŽû÷kO†.á àÙ05zë7…k¶>VÖ-ùUu²›ßþwÊšb[öóG´çÊ·ènÑÝ¢Û$Ñ$Ñ$ÛÎ}Z>´|hùu&êLÔ™öäaØb¾m¼jguŸ1Ðk°í_P'·xyÚÚ^¬× ã-/&l+ð¿ö\ùÎM;7íÜÔlÖlÖl†û‡0p&4€ _¼¾x}ñ   jÿ_¨¤Ëù wO²˜4¢¦ ÝÅÇD£k¿ž¿žŸn3šŠqØnàéÓ_{‘\–-þÙøëé­§·žâþþ>>E~Šü¹ªaUê†öçDaž´ƒÀ”} W4¨,ZuáŒÉ®®]Àjøþ·õ["èà0ýŠ3¦†Ê^êh’IoÒ›ôÆýý}Ôî®Ý]»ÛÿŠÿÿ+íωÀj)5yå¤9ÿ r×—ßb÷¥k°Œ“g¤mÓ<°âÎþ¹’6:Ž:šä´Ü´Ü´\ÜßßGõ¢êEÕ‹|&øLð™ÐþœHäªì°›¾¾@>bIÒµ‡»v+øJN N”‡øÑñ*ÞƒœŠÅæ´ÿÚ„ø…ø…ø3g ÎÀ{ ¿‘Êá•Ã+‡{¦x¦x¦´?-ºÏÄe„F¯¶)ÒH(vs}cz¡këäºks ¬B¯?š4Zo¡û°ÅÒrøSf$a$a”-“-“-ƒûûûøpìñÇ<y òÔþ´ŒÜ©é0ìÜñEkghº¾¨HH0ëßµurÍÂͲáê–HÝw®ã.Hê@ o¬`¬`œ78op~&ÿFÊz•õ*ë5]wºîtÝö§e˜¬êy/ªß¬?j0g»Úå^]['üºÏþöjõ"?Ë£Å>ŽŽiÿµ© « « ?zðèÁ£¸¿¿·:ouÞê8ê;ê;ê·?-Š„‘¢ð8ç~Û*zø•"šq]['¯0M?§-1ãʾCJµçF©lÿµéåèåèåyyaíâ7òÆìÙ³ &´?-£§Èý1<ý\ø˜ÏÚš¥»gFšOìÚ:¹\eÖh‹©—ËЙ`ç«8@üpû¯Ít–é,ÓYÏž<{òì î/t-4€3¡üÛyü:ùu²»‡»‡»ÏO Á7×c„Ú é#Û-Í«fK;HÛìÖ;½T¾Ã1?r±ƒ˜ÌÕÝ—è–_j[«9cþHm¥˜ñ½å=ÄñtÂa—Ã.‡]ŒŒŒq7g/Ê^”½(s1v1v1þ¹,Iù‹çk™ÝbS¦ßŽe~ëFðž_·y¥¶÷-Ÿ½•ú}¨O‡ÿ2XENYt²èdÑ·˜o1ßbp7gEÏ‹ž=Ÿ°wÂÞ {.K"Ï¤ËøÎæL«kœèT-ûdúœÈ%U³Ñf*ûç®=i¨ºuNÐñEª:3g Suü¼i²B«8o)%#£a¿Î$9öXì±ØcM1M1MHòoíñÉÇ'Ÿ%4Jh”ÐÏeIiÜ0ÚËMÓAÖ$’a¡9âEÜ•q²Úï“Ú]ÒE;9äì$*ì+ ú%åN¸§»öè_¥+ë'+ÊXΓÎõíL’ãÇĉÓ¼¦yMóÜÍßÙÃñÇ?o¾Ò|¥ùÊŸË’ÊK¹‡‚Î d§N–=±G9PGM&Þw+­Ã{ûý*ún´ÿáEû‰ÌƒSõ[’$vêêN?2:dª†V`•‡¸eöEw³ÈëÎ$91'1'1§Å´Å´Åwów–“›“›“k˜b˜b˜òsY(“^­ðHªrôìi‰Jïf­_!¦ör‰æ¶ÉšGV<Þ¿R+*¨ñð­A«tš¨',KßqVÅ`î¹Õ2cÝï ç¨Ó>Ò™$_Ó¾¦}M»åiËÓ<¶þ[»¯{_÷¾®Ö[­·Zo.Ki*+Æ›¨¹åIˆØ Í•Ûïš¶ç‹Ò±Ù^1*…s‰“'T£ç(+Rv“Üï¨,à¿.JÞÞݺÿtÎLòˆá#†~=ózæõ̦=M{šöà®Á¿T2*•¹Ž¹Ž¹ŽNßœ¾9}ãÌ$khh$OŸ<¾yfóÌæ™¸uð/ƒbPÙêÙêÙêv^v^v^œ™dCCCâ*q•¸Ú2¨ePË Ü:ø— F#(£*£*£j,1–Kpf’͔͔͔S¥R¥R¥Z޵k9†[Ý `àLhÃ?¾D‰þ0*lTب_Öö¯ô¯ô¯Ìïß;¿7î tÔ§ÂO…Ÿ Æ%ŒKgùÙò³åç_•ä¹+rWä>öxìñØ÷:ªî¯º¿êþŠ?8~°©³©³©ó¯Jrð©àSÁ§   ÑZ€«Y3²fä9âqŽ0Œ7Œ7ŒÿUI^³hÍ¢5‹žÔ<©yRƒûUXXxfÖ™YgféÔëÔëÔÿª$¯—_/¿^þ¹Äs‰ç¸/ÐQ3>f|Ì8Qs¢æD†††††Æ¯Jò¦›lzðÂä…É Üè¨ ßß_WW•_öèäÖ…[n]øjÌ«1¯Æà¾@G•‡—‡—‡GGG˯_!¿â¿Ï0o%o%oåöÆíÛßX¿±~cûõ>÷}îû܃N<8Qj“Ô&©Mÿ}’…víÚ¹"rEäŠRõRõRuÜøï¡ œ ``ësÅçŠÏ™!™!™![L·˜n15©4©4©ìª¯g××׈SýNõ;Õ¯¸´¸´¸sÝáÓ¡O‡>º·öÞÚ{k7ßt|Óq£?Œþ0ú£«’È|||s–ÍY6gÙùë篟¿þÆë×/Ì9t‡ÙÙYz*=•žz"ôDè -9-9-¹Î'YÐJÐJÐjþ€ùæˆ{÷6îmIaIaI!æºC5_5_5©Gê‘zÁÁÁêrêrê]dáOŸ„?yò:äuèÒÀK/ |kòÖä-Ú½Ð-***R¬R¬R¬V©¬RY¥¢*¡*¡*Ñûß=&zl¡üBù…ò‰J‰J‰Jï¼;ðîæºÃÇÇ|œlŸlŸl¸5pkàV%~%~%þÎ'Y|œø8ñq‹Ï/>¿ø|’y’y’ùûï?¼ÿ€9‡îPq¶âlÅÙ›ÓnN»9mùðå×—××ï‚ÇÎ$k$k$k–¨.Q]¢zuÒÕIW'•ë”ë”ë`ÎØAºLáÕ«…WÓøÓøÓøïøÜñ¹ãӘИЈ7Æ ‡y´äÑ’GKR?¥~Jýt'âNĈ¦à¦à¦`Ì ô,yîyîyî©ù©ù©ùw.ܹpçBseses%fz–œ½9{sö¦&¥&¥&Ýɺ“u'‹Ñ‡Ñ‡Ñ3=K–t–t–têžÔ=©{îTÜ©¸SÁHd$213гdòfòfò¦ú§ú§ú§L˜>ÑÌhf4cf g¹·ìÞ²{ËRRRÒ•Ó•Ó•1'Ðݵ¿k×>U7U7U7}Lú˜t¼‰=Rzbzbzbª@ª@ª@ºgºgº'æ «  À%Ðàhp 4€¸À\ `.0—@G €IDAT€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€K  À%Ðàhp 4€¸À\ `.0—@€Kü§ àÔ¾©}Sûòü6Zû¤hôxhp‰ß®ÜúÏS{§öNíÚ+µWj/º…n¡[èfº™n¦¿Ñßèot#ÝH7Ò_é¯ôWºž®§ëéÏôgú3ý‰þD¢kéZº–®¡k躚®¦«éJº’®¤?Òéôúý.§Ëérú=ýž~O¿£ßÑïèRº”.¥K躄~M¿¦_Ó¯èWô+úý‚~AÓÅt1ýŒ~F?£ŸÒOé§ôú ý„.¤ éBº€.  èGô#úOçÓùtGçѹt.KçÐ9tMgÓÙô}ú>}ŸÎ¤3éLú}¾GߥïÒwét:N§Óè4:N¥SéTš¢)š¢Iš¤I:…N¡SèÛômú6}‹¾EߢoÒ7é›ôuú:}¾F_£¯ÑWè+ô:‰N¢“èD:‘N¤è:¾D_¢/Ññt<OÇÑqt}ž>OŸ§ÏÑçèsôYú,}–>CŸ¡ÏЧèSô)ú$}’>I§ÓÇécô1úMGÓÑôQú(}”>B¡Ð‡éÃôaú}ˆ>D Ðèýô~z?½—ÞKï¥÷Ð{è=t$IGÒ»è]ô.z½ƒÞAo§·ÓÛémô6z½•ÞJo¥7Ó›éÍt8N‡Ó›èMô&z½Þ@¯§×ÓëéµôZz-F‡Ñat(J‡Ò!tBÓÁt0DÑAôJz%½’^A¯ WÐt@/§—ÓËi?Úö£—ÑËèeôz ½„ö¥}i_Ú‡ö¡}èEô"z½^H/¤½ioÚ›ö¢½h/z>=ŸžOÏ£çÑóè9ôz=›žMϦgѳèY´;íN»Ón´íFÏ gÐ3èéôtz:íB»Ð.´3íL;ÓSé©ôTz =…žB;ÒŽ´#=™žLO¦íi{Úž¶£íh;z"=‘žHO 'Ðèqô8z=–K¥GÓ£éÑô(z=ж¡mhÚš¶¦­iKÚ’¶¤-h Ú‚6§ÍisÚ”6¥MiÚ„6¡h#ÚˆI¤GÒ´m@ëÓú´>­KëÒº´­CëÐZ´­EkÒš´&­N«Óê´­F«Ñª´*­J«Ð*´ ­D+ÑJ´"­H+Ò ´­@ËÑr´-KËÒ²´4-MKÓR´-EKд-N‹Óâôpz8=œ¥EiQz=ŒF Ó´0-H Ò‚´-@ Ð|4ÍGóÒ¼4/ÍCóÐ<ôz=„D¢Ñÿ£ÿGÿH¤Òèôú/ú/ú/ºÝîGÿIÿIÿI÷¥ûÒ}é>tºÝ‹îE÷¢ƒbPÍT3ÕL5QMTÕH5RTÕ@5PõT=UO}¡¾P_¨OÔ'êUGÕQuT UCÕPÕT5UMUQUTõ‘úH}¤*¨ ª‚*§Ê©rªŒ*£Ê¨wÔ;êõ–zK½¥J¨ª„zC½¡ÞP¯¨WÔ+ê%õ’zISÅT1õœzN=§žRO©§Ôê õ„*¤ ©Bª€*  ¨GÔ#ê•OåSùÔCê!õÊ¥r©\êõ€z@eSÙT6•EeQYT&•IeRT•AÝ¥îRw©t*J§Ò¨4*J¥R©TªI‘I¥P)T u›ºMݦnQ·¨[ÔMê&u“ºN]§®SרkÔ5ê u…ºB%QIT•H%R‰T•@%P—¨KÔ%*žŠ§â©8*ŽŠ£ÎSç©óÔ9êuŽ:K¥ÎRg¨3ÔêuŠ:E¤NR'©ãÔqê8uŒ:F£¢©h*š:J¥ŽRQTE¦S‡©ƒÔAê u€:@ öQû¨}Ô^j/µ—ÚMí¦vS‘T$Ií¢vQ»¨ÔjµÚNm§¶QÛ¨mÔVj+µ•ÚLm¦6SáT8Nm¤6R© ÔjµŽZG­£ÖRk©µÔj µ† ¥B©Pj5µšZMSÁT0µŠZE­¢VR+©•T HRT@ùSþ”?åGùQ~ÔRj)µ”ZB-¡–P>”åC-¦S‹©EÔ"jµ€Z@- ¼)oÊ›ò¤<)Oj>5ŸšOÍ¥æRs©9ÔjåAyPÔ,j5‹šIͤfRn”åF¹R®”+5šNM§œ)gÊ™šFM£¦QS¨)Ôʉr¢œ¨ÉÔdj2å@9P”eGÙQ“¨IÔ$j5š@§ÆS㩱ÔXj,5†C¡FQ£¨Q”-eKÙR6” eCYQV”eIYR–”9eN™Sf”eF™P&” eLSÆÔHj$5’2¤ )CJŸÒ§ô)=JÒ£t(J‡Ò¦´)mJ“Ò¤4) JƒÒ Ô(5JA FP*” ¥B)SÊ”2¥H)RŠ”¥@)Pr”%GÉR²”,%MISÒ”%EIQ”%A‰Sâ”85œN §D)QJ”F £†Q”0%L QB”%@ P?ÅOñS¼/ÅK ¥†RC©!Ôj5˜L ¦þGýú5H ¤P¨Ô_Ô_Ô_T?ªÕú“ú“ú“êKõ¥úR}¨>TªÕ‹êE2HÉ ›Éf²™l"›È&²‘l$ɲl ëÉz²žüB~!¿ŸÈOä'²Ž¬#ëȲ†¬!«Éj²š¬$+ÉJò#ù‘üH~ ?Èr²œ,'ß“ïÉ÷ä;òùŽ,%KÉR²„,!KÈ7äò ùŠ|E¾"_’/É—d1YL“ÏÉçäsò)ù”|J>!ŸOÈB²,$ Ȳ€|D>"‘ùd>™Oæ‘yd™Kæ’¹d™CæÙd6™MÞ'ï“÷ÉL2“Ì$ï‘÷È{ä]ò.y—¼CÞ!ïid™ÖZ´þ ’ 2…L!SÈd2™L&o‘·È[ä òyƒ¼N^'¯“WÉ«äUò y…¼B^&/“—ÉD2‘L$/‘—ÈKäEò"y‘Œ#ãÈ8òy¼@ž#Ï‘çÈX2–Œ%ÏgÈ3äiò4yš©Oê‘z¤©Cê:¤6©Mj“š¤&©Ij¤©Fª‘jär9‚T!UHR™T&•IER‘T$HR”#åH9R–”%eIiRš”&¥H)RŠ” %H Rœ'ÅÉáäpr8)JŠ’¢ä0r9Œ&…IaR$IR€ ùH>’ä%yI^’‡ä!yÈ!är9ˆD"ÿGþüù7ù7ù79€@ û“ýÉþd?²ÙüƒüƒüƒìKö%û’½ÉÞdo²Ù‹ìE´-D ÑL4ÍÄ7âñh$‰Fâ+ñ•øJÔõD=ñ™øL|&>ŸˆOD-QKÔ5D QCTUDQIT•DQATˆÄ¢Œ(#ʈ÷Ä{â=ñ–xK¼%J‰R¢”xC¼!Þ¯‰×Äkâ%ñ’xI¼ ^/ˆçÄsâ9ñŒxF<#žOˆ'DQDDQ@<&‰|"ŸÈ'‰‡D.‘KäˆÄ"›È&²‰,"‹È"2‰L"“È 2ˆ â.q—¸K¤éD:‘F¤iD*‘J¤ATë"…H!RˆÛÄmâ6q‹¸EÜ"n7‰›Äuâ:q¸F\#®Wˆ+Ä"‰H"’ˆD"‘H$ˆ"¸H\$.ñD<O\ .ˆóÄyâ<KıÄYâ,q–8Mœ&N§ˆSÄ)âq‚8A'Žlj"†ˆ!¢‰h"š8B!ŽQDE"‡ˆƒÄAâ ±ŸØOì'öûˆ}Äb±‡ØMì&v»ˆ]Ä.b'±“ØIl'¶Û‰"‚ˆ ¶[‰­Äb ±…'‰pb±‰ØDl 6ˆõÄzb=±–XK¬%ˆ0"Œ%B‰P"„!Bˆ`"˜&‚ˆ "ˆXI¬$V+ˆÄ "€ ˆåÄrb9áGø~Ä2b±ŒXB,!–¾„/áK,&‹‰EÄ"b±€X@, ¼ o›ð$< Ob>1Ÿ˜OÌ%æs‰9ÄbáAxÄ,b1‹˜IÌ$fn„áF¸®„+áB¸.„3áL8S‰©ÄTb 1…˜B8Ž„#1™˜LL&ì {ž°#ì;b"1‘˜HL &ˆqÄ8b1–KŒ%F£‰ÑÄ(bÔÿkï¾£šÈþÿë~¶¹»v±QE,ô¢¢ ê*ö^Öº®uí½×µ¢®½앵Wf&«(*Šb/Ø» Øùý1žóË~ÃÄ@„äùÈ99~ö£w&wnÞ™Ì+s¯ªŽÊ_å¯òWÕRÕRÕRýªúUõ«ª†ª†ª†ªšªšªšÊOå§òSùª|U¾*•ÊGUYUYUYå­òVy«*ª*ª*ª*¨*¨*¨IŸ¤Ò郔$%IIÒ;éôNz#½‘ÞH¯¥×Òké¥ôRz)½^H/¤D)QJ”žIϤgR‚” %HñR¼/=–K¥GÒ#é‘ô@z =îK÷¥ûÒ]é®tWº#Ý‘îH·¤[Ò-é¦tSº)]—®K×¥8)NŠ“®JW¥«ÒéŠtEº$]’.I¥‹ÒEé¼t^:/“ÎIç¤X)VŠ•ÎHg¤3RŒ#ÅH§¤SÒ))ZŠ–¢¥Ò é„tL:&“¢¤()J:"‘ŽH‘R¤)ŸþËû’L”DI”"¤)B:(”Jû¥ýÒ~iŸ´OÚ'í‘öH{¤]Ò.i—´SÚ)í”¶KÛ¥íÒ6i›´M —Â¥pi«´UÚ*m–6K›¥MÒ&i“´AÚ mÖKë¥õÒZi­´VZ#­‘ÖH«¤UÒ*)L “¤•ÒJi¥´BZ!­‚¥`)XZ.-—–KK¥¥ÒRi‰´DZ"JR ´XZ,-–J ¥…Òi´@š'Í“æIs¥¹Ò\i¶4[š-Í’fI³¤¿¥¿¥¿¥Ò i†4Mš&M“¤)@š"M‘¦H“¥ÉÒdi¢4Qš(ý%ý%ý%—ÆK㥱ÒXi¬4F#‘FI£¤QÒHi¤4R. —†KäaÒ0iˆ4D" –Kƒ¥Ò@i 4@ úIý¤~R_©¯ÔWê-õ–zK½¤^R/©‡ÔCê!ý)ý)ý)u“ºIݤ®RW©«ÔYê,u–:I¤NRG©£ÔQú]ú]ú]j/µ—ÚKí¤vR;©ÔFj#µ–ZK­¥VR+©•ÔRj)µ”šKÍ¥æRS©©ÔTj"5‘šH¤FR#©¡ÔPj(Õ—êKõ¥zR=©žTGª#Õ‘jKµ¥ÚR-©–TKª)Õ”jJ5¤R ©ºT]ª.ùI~’ŸTUª*U•|$ÉGª"U‘ªHÞ’·ä-U’*I•¤ R©‚ä%yI^’‡ä!yHî’»ä.¹J®’«ä"¹H.’“ä$9IŽ’£ä(•“ÊIå¤2R©Œä 9H’½d/ÙK¥¤RR)ÉN²“ì$[ÉV²•l$ÉF²–¬%kÉR²”,¥âRq©¸TT**•ŠHE¤"’…d!YH…¤BR!©€T@* å—òKù¥¼R^)¯”GÊ#å‘~‘~‘~‘~–~–~–rI¹¤\ÒÒÒÒ÷Ò÷Ò÷ÒwÒwÒwÒÿ¤ÿIÿ“rJ9¥œR)‡”Cü,~?‹Éb²˜,~?ŠÅâñƒø^|/¾߉ïÄwâñøF|-¾_‹/Å—âKñ…øB|!&Љb¢øL|&>Ä1AŒãÅxñ±øX|,>‰Äâñx_¼/ÞïŠwÅ»âñŽxG¼%Þo‰7Äâ ñºx]¼.^¯‰×Ä«âUñªxY¼,^/‰—ÄKâñ‚xA¢è#V«ˆUDoÑ[ô+‰•ÄJb±‚XAô=EOÑCô=D7ÑMt]EWÑUtEgÑItÄòby±¼XN,'–ˈeÄ2¢ƒè :ˆö¢½h/–K‰¥D;ÑN´mE[ÑV´mDÑZ´­EKÑR´‹‰ÅÄbbQ±¨XT,, ‹¢…h! ŠÅb±€˜OÌ'æóŠyżbn1·˜[üEüEüEüIüIüIÌ%æs‰?ˆ?ˆ?ˆß‹ß‹ß‹ßŠßŠßŠßˆßˆßˆ9ÅœbN!EHR„ÏÂgá³ðIø$|> …B’$$ ï…÷Â{á­ðVx+¼Þo„WÂ+á•ðRx)¼ž Ï…çB¢($ O…§ÂS!^ˆâ…'Âá‰ðHx$< …‡Â}á¾p_¸'Üî w„;Âá¶p[¸-Ün 7… á†'Ä qÂ5ášpM¸"\®—…ËÂeá¢pQ¸(œÎ ç…sÂ9áœ+Ä ±ÂáŒpFˆb„á”pJ8%D ÑB´pB8!œŽ Ç„cB”%D G„#Â!Rˆ"…CÂ!á T‚JIY„!D„Âa¿°_Ø/ìö {…=Âa°KØ%ìv ;…Âva»°]Ø&l¶ áB¸.l¶ […ÍÂfa³°QØ(l6„ Â:a°NX+¬Ö «…ÕÂja•°JX%„ ¡B¨°RX)¬B„!D‚…`a™°LX&,– K… !H ‹…ÅÂ"a‘°HX ,ó…ùÂ|a®0W˜+Ìæs„YÂ,a–0S˜)Ìf3„Âtaº0]„aª0U˜*L& “…‰ÂDa¢0A˜ LÆ ã…ñÂ8aœ0N#ŒÆ£…ÑÂha¤0R)ŒF#„aÂ0a˜0T*  ƒ…Á a0H ý„~B?¡¯ÐWè+ôz ½…^B/¡—ÐCè!ôþþþº Ý„nBW¡«ÐUè,t: „NB'¡£ÐQè(ü.ü.ü.´Ú í…¶B[¡­ÐFh#´~~~Z ­„VB ¡…ÐBh.4š M…¦BS¡‰ÐDh"4 „†BC¡¡P_¨/Ôê u…ºB¡ŽPGðü¡–PK¨%ü*ü*ü*Ôj5„jB5¡šà'ø ~‚¯à+ø >‚à#T* •oÁ[ð* …Š‚—à%x ž‚§à)¸ î‚»à&¸ n‚‹à"¸΂³à,8 Ž‚£P^(/”Ê e…²B¡ŒPF(-”J ¥„RB)¡¤PR()Ø ¶‚­PB(!”¬kÁZ°¬+¡¸P\(.Š Å„"B¡ˆPX(, …„BB¡€P@È/äò y…¼B^!GÈ#ü"ü"ü"ü,ü,ü,är ¹„………ï…ï…ï…ï„ï„ï„ÿ ÿþ'|#|#|#är9">G|Žø‘‘‘ñ1âcÄLj">D¼xñ>â]Ä»ˆwo"ÞD¼‰xñ:âuÄˈ—/#^D¼ˆx‘‘‘ñ4âiÄÓˆ„ˆ„ˆ„ˆ'O"žD<Žxñ8âaÄȇ"D<ˆ¸q/â^Ä݈»w#nGÜŽ¸q+âVÄ­ˆ7"nDÄEÄEÄE\‹¸q-âJÄ•ˆ+—#.G\ޏq1âbÄ…ˆ "ÎEœ‹8q6âlÄÙˆ3g"ÎDœŽ8q:âTÄ©ˆSÑÑÑ'"NDœˆ8q,âXDTDTDTÄ‘ˆ#G""#"#"åËöòå:ù´8S_0‚1ä¡À€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &`"€ €˜``&‚˜€‰ &z?òýÈ÷#Å’bI±ä讣»ŽîÚôSÓOM?ùÖó­ç[¯ì´²ÓÊN³Øm±Ûb·µ¯µ¯µ¯³³³Ÿ£Ÿ£Ÿcïn½»õî¶Â~…ý ûk®5ºÖˆþ@;``³O+úÇÐÞ¬}³öÍÚ 9As‚æt¨Ó¡N‡:×T\SqM‘ "AE‚Ê,7²ÜÈšgjž©yÆxZ†>®v¸Úáj‡N;}ìô±èô¢Ó‹NÏgô3ÌÓÃé§?œ^òvÉÛ%oËïÛ¼¶ymó¾¸óâ΋;ô)‘©||åc-wy Ð?PBL `ˆ‘²ÊåÑ—G_í–Ç-[žŒô ×2Ò'¾a|Ãø†ýËô/Ó¿L»î¸›ÏÀZmoµ½ÕvŽ/ÌÇgëÏÖŸ­´nкAkõ÷ÂÜÂs Ï-¬×{!OJž”<‡£GŽ X°"`EãòË7.ïžèžèžh—Ã.‡]Ž‚ç ž+xÎî…Ý »·´ûÐîC;ã?²k7¯Ý¼v³üyaˆÞï–Ö§F-<±ðÄÂêmÊãáJŸ+}®ôá½ uÀÀf8óµ^ÐzAëJ}î[Ï·žo½ .l¸°!­ÇÂp-Cw÷×ß_½<1¬Ò±ƒÛñãÆ;Èw(¦ïXÜÊy+ç­œºD,Õ“«'WOæˆÃ¤>Mò¤äIÉSoX½aõ†©oK^ã\ŽrÓÚš¼bzæÜ£/ßMkÌïÊÐw¡ïBßeNoȫԧ¯7ÞM{7íÝ´2e˪·©>%8ïPÈ€ €ÌpæÓ¾:¯|çhúúßp-CJ«ª+½«ô®Ò» q,Ö¯ ^¬ýž`ùžHŽLãÓD¾3Us[+ìWد°Oëvç?žÿxþcí¯BŽ–'$MHš$¿‹å‰‘ß¾ |(ÿ¼fÛwÛ¾ÛöÝ€¢Š(Zx]áu…×io3hNМ 9Æv4#ªGT¨.¯m¬´çòŠæm‡¶Úvè®ý»öïÚÃö†í Û¤^I½’z%TM¨šPU^;yÔàQƒG –g;ÐÞuÕYTgQúÆÌ²ÎË:/ë¬ÙæúÙëg¯ŸÍ;2``³@œù´Gti¾k-SZ†.f¶˜Ùbf ¥þ·öµöµö={áì…³ ÷þZtpÑÁE•öA}WŽ²ï§‰1–ïY¾gùžê[±q¶q¶qNk­{qçÅwäw¨ÒþË“BË+ÎêþŠä驵÷ŒúlÆpå9 4ï¦U'÷|tãèÆÑußó'ퟴÒ^—»—\:péÀ´î¹|°U«V Ô[sªïTß©>u2``³@lJ}ÎÑÌ*wÜ=r÷ˆö»åTߪ¾U}kèc!ß…\=wõÜÕs+íÉê㫯>ÎQCöý4Qº×³_¥~•úUJë罟÷~Þ{í5ë³·q~q~q~ÚûG~WC­ÖޥΖ:[êìÃé§?œž¾½MvJvJv2\(ÞkH¯!½†h¶âââÉûÀÀfÈДúœ£™UÆ´ÓrLK¥žï¾­û¶îÛ2s”¦Æ•Õzô (3‚¼ú¦Ò”àòžãyŽç98‚È^Ÿ&êwÊjÆ{òðº·&Ow\(²Pd¡HÍ6;–ëX®c¹ŒÚóÝ›voÚ½I©­ú´ªfUͪš•ÃZ‡µk ¯+¼®ð:y½=ù.ñþcýÇúŸ¬v²ÚÉj)yRò¤ä¡ÏM)–'óü÷þ¿÷ÿ½?äÔSCNÉ÷Ò9û8û8ûÈãAGÝò¸åqËó»÷ïÞ¿{ËÓ·¾Š|ù*Òpý|lLê´¶#y¥UEžXxbá ¥>—ß#Y5Òjý[ëßZÿ*íÛžå{–ïYžQÛJÌ›˜71ï†ñÆoßé§N?uú©j•ªUªV)½«ô®Ò»,v[ì¶Ø-G2~Ž~Ž~Ž>vúØéãÆl ÿ[*ƒ>£W^ÅVM,›X6±ô¸åqËãV‘ "AE‚lóÚæµÍ[iq¥Å•(: è€¢bI±¤X2»T6uÕ“«'WOÖlÿ¯"ù«HZ·%6)íó’¿–üµä¯ŒÚÿ›ùn滩Ø?òêÅY;êöÛ7nß8¥=œðã„'ü˜±GS{ÿ{xx¤¯e¥YÔ«"uÀ<˜Ý/ÙŸ½pöÂÙ ×T\SqM>=ÄÞ‹½{/sö9ó{I÷•V™Ó²îäÉ9Ë,7²ÜÈômW<ä?ß_ýýõ™sÔ”þþãÞ{?î=ùää““OÊ?_(y»äí’·µÿÛÚ«k¯®½Zi[r4žUaîý»öïÚ/o}Xøÿ}èx ãŽúì›áwï0ÞAŽxÓ7Ôï¿”ƒÌ¬zÏÏuoG}-ÛY¶³l—ÖžO_–Uõ'Æ.Æ.ÆN© .l¸°!­mªOh¬4qF™wÓÞM{7Mi[V ¬X5ÈÚóùç?žÿXi·?Øþ`ûƒŒ}Éó(mQþáBúZ–Ï4”Z>óêÌ«3¯80OÀÀfA—Kóò]}ú<ê Ü-p·À]}."gUóüÅóÏ_È÷fì>¨ÇW†>jšSŽ=äû••þ•<Á¬ú¿zø6ðm Òä±ò=ñi6»£8ù5fìH°?lØþpv¼>3`y\ ‡ŠCEýû\ŽÙtßϬª?ƒãÇ ŽÓlA¾×9}G-¼Tx©ðRò»[óqtÙÑeG—eÔ˜¹}÷öÝÛw•úÁ·žo=ßzYû¾V¿‹ZÓ)·Sn§Ü2v‹êë+k’k²>í»¥¸¥¸¥2bÕß;œ˜``³ ýÒ|ä¾È}‘û”".ý†††dì>g~/¥ï_e¯ø©ËS—§.òä½ù léÀ¥—4ÜQ“ÿß >6øØ Çüó{Ì×e¯4`y"t¥¿/OvmzCžˆXiÍcãùA€iÀ’&$MHÊØ>—'ˆÖeo3¿þÈ·ÒzNê9©ç$ãóäŸR)õƒ<)zÖ¾ yzp¥=”çHÈØ-ž.pºÀéJ[,;­ì´²ÓôiÿÏÐ?Cÿ Ul™e)Ì00€YÐ~i^s \YÓOM?5ý´{ÓîM»7=zô HžÜòºëu×ë®+ìWد°¯<¼òðÊõ·Ÿ?gþœùs¦ueÖìíüQ,õ‡öÖ”þUæ´¬I^åW^ÙW{ûMnúsÓŸåãÖË[/o½”×Í•Wx•×z”'X¶Ëa—Ã.‡öQ¡ÿ µÚWïn½»õî¦{L¥OÝ:uëÔ­Jf‹™-f¶0¥;ÌäøGû±“É÷ˆo{»íí¶·wÜ=r÷HR¯¤^I½îí¹·çÞy"ÙfO›=möT÷IÂ3ç=›ùU"­­EÍŒš53ÿËü/ó¿TÿïòZìÿú§Ð?…z4êÑ(y2íÃQ‡£Gõ­Ý·vßÚºŒóõ³×Ï^?[û¾efý‘ɯZ©åà_ƒ þÕ˜ßkòø—‘Ò«P}«úVõmÖ¾Š×»_ï~ýežg6ÿ÷aˆ-Ê?÷Qê“§[œnqZŸöåõæ•Ú?ñû‰ßOüÎy €¹!&0 º`Ï´ûð•{¦W_}|õqíû™¾Þ6tŸõë?Ö_q=×oÎ|sæã|×$TM¨šPU½W5É+Ž›Û¹Ç'ßO¾Ÿ|5dz:y}k}Æ€ €Ì‚î°|—Uú¶2ºë讣»jo_Ž‚ôßçÌ塞mÍp-ß_ýýõJ+ãUlT±Q±÷bïÅÞKçžçIÉ“’Gû>O|2ñÉÄ'ÛÏòÆêÿÅ3Ö3Ö3öf¾›ùn¦¡¯ê «7¬Þ0¥­\ØpaÃ… ¦Q%][‘§Ö>)tEuÕY¤ÿ ”™ßKYÛšáZž1%bJ„Rk+-VZ¬´ÐŸåEi+%lJØ”°1\„æ–â–â–"O™›Ö­¨¯™ªIžúØ4ª„úꤚZ/h½ õý·Òfr›Ém&+m¥kLט®1Ì 9mZÛ—§îWjS¾Ûz@&OJ\àn»îj¶Y{uíÕµWgþ;B¾çXŸ•´nкAë‡ÓN8ÝÜHy¢rÍ⨛í5Ûk¶WFmQ=èÕíoß¾ älÀ|˜].U«O¢¨Ï¶4' Ö$¯"¬Ï>g~/emk†hY¾£®ô®Ò»JïÒlÇ=Ñ=Ñ=Qõ3ª‡·}·í»mß)íùÙ g/œ½`ˆ±­>&ÓÚ¾ýaûÃö‡•Z–W`Íîõá©ËS—§.Ú§h>¿÷üÞó{õ½çŽž;zî¨ÒVä{øä»-³ö]f UB¾#6}ûçççgˆþ1D›RA© TP©Mõ¹%2ó}‘¾X¾»Z,)–Kz4<)yRòÍ š4Çb·Ån‹ÝJ½äTß©¾S}ýïýU7bÞˆy#æ)mQžá€³AóAL `´_°ö:äuÈëPFmë³õgëÏÖkÖ:¬UÚâšk¬9 ý²/°¡[Žš53j¦R;Ó'LŸ0}BÆö¶|pñÞÅ{ﭹť—\:0cWÕ'B“É«Þ*µŸ±yVÙqiÇ¥—”^£OŸ6>m2v‹Úç Ø³|Ïò=˳ö]f Ubf‹™-f¶H_˺¬În = S_6£*ƒþô¿Ø|¢_y)æ7šßh~C—u߯5ºÖèZ£ŒíŸÀÀÀ¥íʱ4A˜``³ ý‚설 I’2öÂèSCN 9¥´ÅÁqƒãÇgí~j_1}ÏêBiU]õ)ˆ3ª7V¬X¡Ï«PŸžZ“|[v¯ù«È_E”^£ú$áµÅI×&]›tMÿ-šv•'Ñ5¶°Ömü0ðÃÀJmnnº¹éæ¦Ù7V_Ù”Î+ÞM{7íÝ´ƒf š1H^-^{?È+%ŸyuæÕ™W†è ã7Œß0^iëCÅ¡âP‘À|˜í—e·½ÝövÛÛŒ½0º.x]ðº`¥-Öú·Ö¿µþ%ÎÚýl;´íжC•ÚÑ}Þ´êX®c¹Žå4·è¿Ã‡ÿŽŒí yÚO}ú\ž [©ý{{îí¹·'»×‡†uÖmXWé5î<¶óØÎcû¾Ó>¸ú}„Yõ.3†*!ÿÃxöÖpm6ªÜ¨r£ÊJmFT¨QÝÞ)Ÿ|?ù~ò•§L?]àtÓäûJå»äµ÷ŒÇ-[·L#€Üê±Õc«‡c[ǶŽmu‰À=c=c=ccìbìbì ×:èx £Ò>4ýÔôSÓOÀ惘À,h¿8{µÃÕW;dìcïÅÞ‹½§´E9TÓgŸ3¿—²¶5C´\¥G•Uzä3òþdloÜÊy+ç­œúô¶ú4]ØpaÃ… Ù½>TØYag…J¯Qž¬5c·xiÆ¥—f(mQž :kßeÆP%äiugo צöŸYÈÁavùœ•×±Vz-†þúghvŒ!å5Úk¯®½ºöj]êyþœùsæÏ9râȉ#'Ê÷ úUŸ¬v²ÚÉj™³ÔŒ00€YÐ~¡ö™Í3›g6»ÅG£z¤8!dÉÛ%o—¼­Ï>g~/emk†h¹|Ïò=Ë÷4žØÅÉÅÉÅ)c{ãù‹ç/ž¿Ð§·[/h½ õ¥ö69Øä`“ì^´¯Ømˆúß0¾a|C¥-Ê#3kßeÆP%ô_a:»À¥w•ÞUz—á~Æ‘™ÖÏ^?{ýl¥×"¯)®´Ÿ9^ï~½ûõî1-Ç´Ó²ÀÝw ÜÕ¥’WZ\iq¥ÅG6ÙxdcfFÝ7loØÞ°UÚ«²ÓÊN+;³AóAL `´_®ýÐîC»í2v‹oß¾ TÚb¡ÈB‘…"õÙçÌ塞mÍ-ï]¼wñÞÆÛ½°{a÷"ƒ{#OJž”<úô¶úÊ‘šf¶˜Ùbf c¸Ÿo¿ýýö÷[u9õÇí»·ïÞ¾«ôo‹ *”™õAýŽ@M–í,ÛY¶ËÚwYv¯†kßmj_AöÅw^ÜÉ^Ÿ¹J+Ë&>™ødâc¾Xž~ÜÙÇÙÇÙG—ê]nd¹‘åFÊÕFþáBæ¿:yÙ¥=´j`ÕÀªgƒæƒ˜À,d~,·©´Ek_k_k_}ö9ó{)k[3DË»-v[ì6žXÞãég™öÕjÕ×QÎÚ÷¸ö»xÏ|sæ›3ß(ýÛÌ€?6øØàc}~ B•Ȫö Ñfþ—ù_æ©Ô¦¼ònöúÌ]¼.x]°Ò+jqºÅé§3žÿxþãùå;•µkggç¹…çž[8s&yÖ§ªÈw0s6`>€ €ÌBæOP5¡jBU¥-:ÕwªïT_Ÿ}ÎàÊ“’'%¹Àö‡íÛVjG¾‡;»mCäRgK-uVÿ©zõ!O'«¸çËü/ó¿”ã¥2 è§.O]žº(mQžØŽ~ö­†kßmÊwg*µ)–ìõ™{ÝõºëuW¥Wäàà`D»›'%OJí³¨×“aáÇ…«ßqk /B{UÑågg0%ÀÀfAû%Ý«®v¸Ú!c·xyôåÑ—G+mÑ·žo=ßzúìsÆî­<Ũ¹À^‡¼yRjGû¤ÁÙelgÔVªô¨Ò£J¥­ÈÓ/gUì<¶óØÎcJûæë뫽… ;+쬰S©…8¿8¿8¿ŒÝg¹M¥-ÊûcýðëÍ_oþzSé=bˆ÷æŽ:è¨ôŠê «7¬Þ°¬=+PŸ@ÓœÒsJÏ)½ÎsÖn^»yíf¥W¤þ£4Î Ì00€Yȧƒ»»;ý·u°ÉÁ&›h_ûðmàÛÀ·úìó¥—f\š¡ÿÞÊ+5Ú8Û8Û8›[üÔå©ËSùîUÍv Ü-p·ÀÝÌ™HY¾ÛLÞãégMÚW¶–Ék‹úý*òUä«H'''¥=éW©_¥~•ti-¾a|Ãø†Ïn ÷ŽV_»TSáu…×^§>mµ.mþîý»÷ïÞ†¾#\ûd¿ò>èÞU"óÛ7D›ò*¿JmÌ50×À\ú´/¸ î‚»öŸJdTŸ'TM¨šPµxï⽋÷VÚâÉj'«¬–UadМ 9As”öMý'\Ùë­|QUœ´·Ü}[÷mÝ·é¾Ïm&·™Üf²ö6;ýÔé§N?¥5W T蔦A6‡XÖ9¡sBç¥6å€äKûyRò¤äÑ¥Íļ‰yóª#M•WZ\i±>kµf~,»îzÝõº«.ï©Ö Z/h½@¾7}ÛºÖèZ£kÔ×V"ß/O¾hµ½ÕöVÛ•Ú·Øm±ÛbwZ[–£_íwëʽ”Ö½¥Jd~ûÚÛ|ÒþIû'íÓ×rƒÖ Z7h­41ø›µoÖ¾Y«OoÈëÚj_3;}=#×:íҹ!F‹NmæIÉ“’G^ˆAiù˜ù}ެ<6”~¨!Þœ˜``³ ý’±w€w€w€æoqºÅé§÷ÎÚ;kï¬G£zôåÞ ¶7loØ®°_a¿Â^éߪ+aS¦„¼®§î¾ÃK…— /¥Ë%oûÃö‡íË>Þ÷xßã}åÕdå‹ÂrPú.ô]è;yªaÍÖXs`Ís€ŸÙ<³yf£KoW\SqMÅ5K.¸tàÅ¥—^\*ÇòħQ3£fFÍœí5Ûk¶—|ܵÿÔàtÓN0¶ iu·oܾqûÆéÒoê!ºˆÊwÃ?zô H¾Rþ³<îê㫯>®‰i*y»äí’·o½¼õòÖK}^»¼ºl±ùæ7šßØqiÇ¥—äUEåW!ÿyÛÛmo·½m\¾qùÆåµ·c—Ã.‡]¹Â¤uÏ©™ß¾ö |Xø°ðaáò”ïI½’z%õ’ǃ.-Ï4cÐŒAJ-Ùxdã‘úô†|}Ý)u§Ô¢û¢äÏ;yhùOòg™|·ú˜–cZŽi©+‘gÈ0ÜÑÔ嘪×c£OÏÈcC©å¿»üÝåï.Lþ `n€ €Ì‚.¸ qIWžzñ貣ˎ.Kóå×<)yRòÔYTgQE†»è,¯î©K/elŸîhêÓò™oÎ|sæC_è—£Ð6Ø8À˜{Cwê+zf>WkWkWë³Î^8{!£^õá¨ÃQ‡£ ½çò‡òÒ¹çT‰Lo¿J*=ªô0D¼'ÿ D©…ùç?žÿXÿž¹{äî‘»G2óÚþ·ö¿µÿMŽŸ ÷c]ZÖeš÷ì« M—f\šqi0€¹!&0 º\x=tñÐÅC3êb®³³³à.¸ îúìy|Ãø†ñ 3öB³¡1°ìòèË£/6Ä%~yTÈ÷†fæØÎò$Ï™™´ëÞ®{»îÏ_<ñü…!^¯|/²!ö¼L`™À2ê?8 Jd—x¬ÿXÿ±þ†‹÷ÔWnV×±\ÇrËeTÏܾ{ûîí»†{oÊ?s™6wÚÜisåµ ]ùuiÓ›þØô‡éÀêcC×!¯C^‡80OÀÀfA÷ ¯úßõÛªßVý¶J}"Yý÷_}MSí+‰jç–â–â–¢4•¨e;mÃõ¹ñ´¬îÝ´wÓÞM“Û,6ªØ¨b£Ò×çòñêÓ5¦kŒ<lÆî§ñÀš{Õ°nú ëæÏ™?gþœ)åÌŸ3ζCÛm;TžÄ8s^‹zÀ¬Ë:¸Úמðã„'ü¨Ï*ÅT‰¬m_½2"Þ›tmÒµI×4[pXë°ÖamÆŽõ»rË,7²ÜHýCßß½÷þÝ;£~Ü ûÑÔe[‹·,Þ²x‹IÀyRò¤ä‘P¢tï>÷þ˜'``(’ÏÇ ŽWãYg5žÉ—Yå Ç©¾S}§úµW×^]{µ|ÉþJŸ+}®ô1ôÅVõh¹õ‚Ö Z/÷D`ä}slëØÖ±í¯7½ùëÍþeú—é_&r_ä¾È}òÅb.§•z´ÖMê&u“üýýåñ ‡‚òŠ¿rxÖ¡N‡:ꆆ†dìO²£'ퟴÒ^î>­ú´êÓʇÿÿž±ž±ž±ò ¸r`)ÿÙ=Ñ=Ñ=±æ™šgjžøaà‡¶ÔØRcK‡ÓN8=k_‹¼n®ú™>m|Úø´‘WØ•GBé]¥w•Þ%ÿ÷N?uú©ÓOÆo¿a|bÞļ‰y3g$P% M^ïYî%yUÝò=Ë÷,ß³ðºÂë ¯SÿtÇ€î-ßÌw3ßMŘPž©Â¯Hý>Ý!§†œrª‰eË&–•WZ\i±m^Û¼¶yå.GÑÞÞÞ>vúØéãJ‹•+-ô_;}ŸÑÆð“—¬¢4Y½Ægþ€ñ &@šçEgc»Ô¯€¬šU5«jVæÓI½’z%õ’gžÐ'ûÆí·oãÀœ#"OÈ,O³¬ycûƒí¶?0çþ‰½{/öžzŸÈï›Oä)ͱQ¥G•Uzȹó>0gÀÀÀèl{»íí¶·šW0ÚÿÖþ·ö¿™óý3Í4czŸ,o¶¼ÙòfæÓ'êc@ÝÎc;í<ƽ¿ &Æ'OJž”<>m|Úø´Q¿‚a±Ûb·Åîļ‰yóšOgÜ9çüó«.¯º¼êrÑéE§.÷FÙie§•öòÜËs/Ï™C?ÈÇ]꣢j•ªUªVáÞ_È€ €€‘R}«úVõ­æuŒ©[§nºÕ|îõTZùxßã}÷5Ÿ~X°"`…fo¨^«^«^sï/dÀÀÀ¨u¹Þåz—ëê×1¬X5°j`>ŸýaûÃö‡—o\¾qùqÆUWáþúûëï¯7ŸxfóÌæ™úq—u“ºIÝ$Þ#PGL ŒÚ£QF=¥y5c¼Ãx‡ñæÓæ|‡«|¬5ï~Üûqïǽ¹÷ê€ €@6°~öúÙëg«_ÍP_ —þ1UrÄ[lT±QÅþó#€6Ø8€£MÀÀ Ûè9©ç¤ž“Ô¯iŒ˜7bÞˆyôŒ©¾røÊá+Õxïn½»õîFÏ@ 00È6Þ¬}³öÍZùjFÕ*U«T­RóLÍ35Ïp'¨éyqçÅwÔoÓŸ›þÜôgõ1@/@00AL ÀD0ÀÀL00AL ÀD0ÀÀL00AL ÀD0ÀÀL00AL ÀD0ÀÀL00AL ÀD0ÀÀL00AL ÀD0ÀÀL00AL ÀD0ÀÀL00AL ÀD0ÀÀL00AL ÀD0ÀÀL00AL ÀDqøˆÎ£YôˆÊ¢Ç±,zϢljLDgÑãd=NeÑ#&‹§³èq&‹±Yô8›EsYô8Ÿé Yô¸˜EKYô¸œE+Yô¸šEkYôˆË¢Çõ,zÜÈ¢ÇÍ,zÜÊôÇí,zÜÉ¢ÇÝ,zÜË¢Çý,z<È¢ÇÃ,z<Ê¢Çã,z<É¢G|=²èñ4Óϲ葘EçYôx‘E—Yôx•E×Yôx“E·Yôx—E÷YôHʢLJ,z|Ìôǧ,z$gÑãs=R²æ™#‹9³èñM=þg¨0˜,`0&Ë8À̇ÉÀñMâ›Ä79i°Ç‘,z°&1«³±ñ¯Fl>ë›Ï Äæ³öðù,z˜ÏÚÃæ³ê°ù¬7l>+ ³Æ°é­.œUk ›Ïê¬+̊¬%Ì*¬"œU«›ÏúÁ¬ÌšÁ¬Ì:Á¬œUë³B0kýªÀñ½ã{Ç÷6Ù;€†@ &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀD€‰ A &‚L0˜`0À`"€ÀDi¶q寕Wn=¸õàÖòŸo½¾õúÖkzY‹H³|"ÿù¿ÈÿÑ3ÈZÀ@šÃ8iF ãD ¤0Œ0fÀ0NÀ@šÃ8iF ãD ¤0Œ0fÀ0NÀ@šÃ8iF ãD ¤0Œ0fÀ0NÀ@šÃ8iF ãD ¤0Œ0fÀ0NÀ@šÃ8iF ãD ¤0Œ0fÀ0NÀ@šÃ8iF ãD € :Ûél§³"ÏGž<tëÑ­G·&?K~–üŒž€Ìwªä©’§JF.Ž\¹øhÂÑ„£ );Sv¦ì¤g ór|Èñ!‘­"[E¶Š*U>ª<}Y%jgÔΨ‘‘‘Q=£zFõ¤OÃ8 ¼j÷ªÝ«vQã£ÆGÈ# ‡·…·…·E>ýÏw>ßùΗ:_ê|iÓ”MS6M¹ýâö‹Û/èsPòÂþ…ý ûí·>Üzš k&¬ñ(íQÚ£´þ%¹pÍÂ5 ×ì‘«G®¹Â„?pïò½Ë÷.Óç äYÒ³¤gIRM©¦TsŒãÇ1ŽN%œJ8•п&[®²\e¹ª¯C_‡¾;Ëí,·³ÜÃ¥—>\JŸ€’„ 6ls°ÍÁ6í†[ ·rpspspÓ¿&Û¾°}aûbÓ §AN{›ìm²·É¯'^O¼èsBüø!ñCö·Þßzë!뇬²¾Ô‚R J-Ð$ËíÈmÊíËÛ¢ÏaÀW?¾úñÕÿäù'Ï?yüÚúµõk›/‹Œ[7nݸu—w\ÞqyÇ€yJ™82qä†Î:oèìõÎë×»¬ªÉS¦:Lu¸^âz‰ë%8.ÌS‚[‚[‚[ØÀ°a;8vpìU5yVßY}gõ½]ïv½Ûõ8.ÌÓ£ØG±b—5^ÖxYc»évÓí¦g~5.2¯È¼"óŽZ8já¨û®÷]ï»r\Vs=Ìõ0W`|`|`¼Õt«éVY0’åíÊû ïÇú#À(ÄÝ‹»w¯O‡>údÙe¬¯ÜѲ…e‹p!\’‚“‚“‚9jLÕ¥f—š]jÖéJ§+®gM.S¨L¡2…öxîñÜãùqÇÇù™Sô,åYʳؖ±-c[¶úØêc«ÆY“=½=½=½…†BC¡aòÉ$ÿÁ¡`‚ƦŒM{"ñDâ‰Äúªúªú*ã¬ÉÕÊW+_­|¤]¤]¤ÝçUŸW}^Å¡ÃX¥X¥XE-ŽZµØ?§NÿœÆ9’å}“÷SÞgÒŠ€,÷*îUÜ«ï[¼oñ>}§ƒã­*–8`;¯VÁöårtÜ:l°K³ýgævo6òvŸÇÔ±[‚í<ÊŒ™²l[éaî Æ:ìÙ~â³Ò›ïÿó‡âáî3||ô9]{e핵W>†} ûÆÑÝ]\{qíŵuŠÔ)R§Húªb¡ø”б«^Û¯ÕórÃ:Yލï²t`ÓYî#GuŠó˜?ö\pKâc:,äúnhèü×õønBûMwuí_L岬Ò}jò?õþ©÷O½ä‰É“'r4dw§cOÇžŽ­,U–*K髊KŽ/sÁîYÝ®mv–{Øyê(k—[ƒÜg·p_1êâ’Ñ!c?xäSaYU×C¢æmtôî¾yüˆR 7u:Yô´ã*ÏúÔä}žû<÷y~¾öùÚçkMÙݱÇFáøÜñ¹ãót.tr·ô"ÇÓ%—ÕŸØ~@ù¶]âGÇ»–œoÎ÷#£›.-ì±iœ]ð>÷øÑÇ–îpí7øéܹåwk4vg©Z —v´+r­ìJW!}ÛµÞd½Éz“j‰j‰jIÊž”=){8šf*1%1%1rIä’È%öqöqöqé¼ãü2–ÎQ%Ìép¼üü®ÁcθÖ<~nN÷Ë£g-íæ±mœWp¬ügù¿ËGþûò¿Mßvå}–÷_~-Rè‚€LõrÑËE/ Û3lϰ=i¸€5ÞÎÅ¡TùÝÝ~Û©’ÃÌÚáoýü¢£3êÙwwð‰#³Ý—Ž:º¤»m‚¿WË¥i=={$öH,Ç@öòÌê™Õ3«žRO©g†"¿9|v^í×cÛÄ•ŽÌ®²}LÆÖdŸÛË\¹¹ #ò-º_bdõ•ÿÑ}ßJø”ð)áS*¦TL)Ž/€ìåqŽÇ9çh_¡}…öt¯{Åì¶x½uúØÇ{êJïns]våÈØš\å}P3q¼ë•¡¿Î¯kýÁçiÝ0Ý÷͵¨kQ×¢Î\8sá Ç@ör·ÚÝjw«5²hdÑÈB÷ºWü¾‡—oçOý»ÎØ]¹ìüe{m3¸&ÿ´¨ë½.‰ƒ:Ξm5´R‰_è¾o~ý:ûuŽ»w5î*Ç×|ܲ»ewËÎ?Æ?Æ?& sàmõÚZ­®Ëðwg®­´àí¾Û;’å6åöåm¥áÎàÿÿùuq|¡0™D8)œNê~JW®ìŽÃ-|®/+y(ƒ¿2éþìqjÜ‚ú–ÞžUªöÒeŸ{&öLì™ø*äUÈ«Ž8c¶óÄÎ;Oè^“ËïíVpl/ß‹!žG-²ª&»/ubIœ\½Zê²Ï#œF8pz·äÝ’wK8âŒÔÙ”³)g7ÜXpcAÝk²SŞѓþªºxåÌã–YU“ÝÚ ;·°Qápû„òouÙç)»¦ìš²ëĊ˜1vÆésüçøÏñ!B6„lÐ¥²å¿n!éæ¼®_‹é­ýò†åŽþ%Kjrhô ×mžý¢PëAvÍtÙóùÓçOŸ?=¹ZrµäjwÉΟ?;………ë4»^Ñb+­ºº´0u¦“Ÿ[Øðè…Y0’݆G/”÷AÞ]ö\~òëå¸C0ô1ïǼóެ1²ÆÈ:Ý%{4秪ÕVŒ’²êb–Ò³wî9V;VØ:ýz±ÙL]^Klxlxl8c€ñx7ìݰwÃzëy¬ç±¯”°ÕùoøÓmÃðS‹æV]¾rÅqOc«É•¾ûûzøëŸ.uu©ÉWó\Ís5c€ñxUéU¥W•ÚŒn3ºÍè¯\–Z\e}ÅÃzLeã«Þ t¢±Õä O¦ý±1Ѳ纪o´¿–’³KÎ.9ûöÒÛKo/e 0ÏœŸ9?s®ó[ßêüö•ÉœKµ*ûÄsø_kV¾õ³ óˆö5¢š\%,0:ÂëÀäUk-u™Ì¿B‡ *txÔøQãG¦!¾M|›ø6~Cý†ú ýʬNËLqiêU|âæU ý\ÂFÏ4¢‘ì60z¦¼oò~~åîö¡~Cý†Ê¯1uÀÄÓoŸ~ûô[ÏÙž³=gk?Qsôé¾kü$¿\¡N¼2¶‹YJÏþžž«èßå{LÓþê6ÚtjÓ)Æ€¬õ`ăF”xPâA‰Ú«–sÕ¾ßlôó Ž>’]jr…À€¶‚-úÙ&•¾©ýÕíuÜë¸×‘ñ kÝxyãå—:ý8ÒnÐç9²K5–Ÿ½ì'_u €{á#E÷ju‡æšh>ã@Öº8ìâ°‹Ãt©ÉnG/^–½j²Çâ±·‚»éòêN¦œL9ÉpÈÆb¯Ä^‰½¢Ë±v?<ºÞÒ<Ùk$Ëû¬ÓÍWb¯Ä^a<@F @»ÕúVë[­¿²šH{Ï UßUÞ¹°éþ–Ùë¤SóÙy^¿<Ó’µ¿Þ9Žsç9È—ö^Ú{é+—àm~¯Zª¾G1p©0?×d‡°Vѽ;þYê¯üÚ_oÈw!ß…|ÇØùbrÇäŽÉ­½FÙùÖvouÓgËÒ€[gßš\õtè¯'~(÷SÇèaK¾òsÉ‹›.nºÈØù·;Üîp;í5ªTRã³R|‚+FžÎÆ5¹ÆŠIQG¶þ®Ï‚¯ü\2doÈ^´Êf„!DÑ~dK×ožôg;ßG!}v̾#YÞùµh½rŸ06@ @†‰«W;®öWV‘<Þ­áØÙ=ôMe‚èvsóí¼RpJñ—6E•^ûÄKL,‘ò2åeÊKF C;;õìÔ³S¿r¿o…>Of˜^M®xÿïQ[Ÿ}eå³ó[ÌoÁ89¢–D-‰úJê:bHî¹ûM¯&W¨3µÓúöÚ_{h¿Ð~¡ý'2ÇÁqÇ÷•»$çÚ´¤†éÕdÏ  -©ýµ‡÷ïÞ›qbüv³û›Ýßh?šsÆ ®mz#Y~]Ú_»Ü?ŒsF @¸óá·;´ŸxyúŽO\™ÛôN:ÿókÄÁª#lNøn Ô3rÌÈ1ƒ3t%îJÜ•¸¯¬øå8õ‡uM»&ûÜZæxÈÑÒß³KUÅõÏ–. \Ș`8§ÇŸz¼öš\1îï[›vM®r'(—X²È¼2»\ˆÙðló Ï3 çðÃwßÑ^“½;Í-¹ó¹i×äÊ{vØßµàfË6ïþaï{`Ì'íwýæ_oQ¨ð´Êùç7Ý£2ñ‘œ~Ó=*ùõr704qù½dåÑ•ÖM+_ôOTê)NŠ“â?2Ö%·Kn—Ü”*ÅŸ¶·K«|Jݼ̨&—]ž÷pób÷WT¼“ò¤ËI—“.Œã¡}­ß"ÃÊüáRÂgëÒ™ÿþn>#Y~½òkgm`¨# ’g&ÏLžYÓ³¦gMO¥¬JWgÝk>'ÿyö [}Ø>¢YånÅ”ú'*$*$Šß!ÈÊ|(ó¡ŒãVÇ­Ž[•jNåA Æíó7Óšü}è‹ì*×.ÛêœRÿœwnܹqŒ%ú{ÓìM³7Í )p¤À‘TÊM|Cÿ®r*ð˜pÊËoGv6Ó‘ÜgùíÈÎÚc`¹K惀tš3=fzŒâ]¿-§oÛj¦1ƒús‘0‡h'Û}µ´ˆRê«„ ;v0¢èc˜Õ0«aVŠwý–3xgjrÕ+ãZ¬”RsžR_½Züjñ«ÅŒ(úèÔªS«NŠsäTÙ?‰š\µ@HbÔEÇ•õh®ÙKÅškV¬Ùû7ïß¼ÈNåRÊ¥”«oYß²¾¥RMö)´SL¦&ûz.÷8üWÁ«a¶¹SYGv€ÇŸb?Å~ŠeXe¾ÏΟ?;û õê7TiÂgs»ëWûÝÀJ“BË}(÷'ãÊf§¦žšzjªÒ×'÷U£î,™ÁIç.oU[16J(,•¶u¬¢Ùc§4žÒxJÊ©”S)§]ÒJe¥²R)F¿^E&†®šJþÏå­.Ë##} üX¸VÑTz¬{·îݺwc\HŸí%¶—Ø®xßIźӧmîKþÏ…ÚK*Ië”zlôöÑÛGog\HŸÐ9¡sBç(þDÒkÎ’Õ¨ÃÿYQõúÂsû“•zlNï9½çôf\e¾ ð ð pÅ–™ÁZ¿é[X©Çäþ4Îc½'|Oøž/Ç:`CÀ†€ ‰uë&Öå]>À¤AÒͤ›I7•N¡Ê7ž!@œQ€øÚi‡G¢G¢‡Òé…ÏÈ%÷TœJ¦sJ¥Åí<¤²åŒ3j̨ÁØ éû÷ß¼õHOªkúžKõkT¬c”f¯†ôéÒƒ±@Óµz×ê]«§T“«ÎXÙýتk:çˉ÷»×p˜f¯þþOø?áŒ=šbBbBbB4ëF¡k%œKÍöËöKôÏT×ô=Ïçè½W³oU* •c/cE-ŽZ•Ê E&–™âÒÔÏ=ldtc2ÍÏîa#£ƒä>Ôì[¹Ïôª,a°€øŠ ¢AEƒŠjžL”ØáÞÒœDêóìÓ~Ét•âéÚûŸßÿüþgF u“~žôó¤Ÿ5+†“wϳ“¦QWõš›!baŸý#•jò§ Ÿ6|ÚÀ ®O>úЬ®k‡ÏL]ÕknÕl§í=SYç>¸xpñà”F)R1¨kîÔÜ©¹“fÝðØ=®Vðêª^s3ôšz|ýT–kW©]¥vŒ½ŒåŸÓ?§NÍÞö*>qóª…ŒF}žå>Le=àœþ9ýsÿØ N+`%Ç$Ç$Ç(®gv3(‡X˜ÓGýŸíƒ›žï¤ÙÃ{gíµwã€,élÒÙ¤³Š÷þÖZþçáCTTýŸmóÿ:¥™]*¿ _µ:j5ã€ìÕÙWg_)ÖäªõW„E%PQõ¶,ëùcÕrš=|a÷…Ýv3ÈâOÅŸŠ?•J9®œo~¾=U_†n?±˜Šª×³OX`´`q«d—2Û4»ùöáÛ‡ofêïa®‡¹æÒìá‚E‹­´êêW2¬^t[F£^Ï%ÃêE·•ûS³ŸåþÏ.£…0XÀ³¦ý´àœÝ9»s©\/q½Æ¦ ²øž—™ÿ±Pß«ì{êí2gêN‡|iÄèÌ­&GNˆœ9!•U‹F7íÙ5›MggÌ5¼Âåie7®§&Hk•þ2GÎîßUCks®úÛŠ£Ç¬Ë:´ÿ4èC[‡NGóO.fñºPkwÛ£[±oŨ KFR¤¯2;Íëõ`r¼1×äÿÜMë2³ã?Æy~î[}yÛÃ;¨Æ†¯Ù·.mLé”U#SSÆŽœÌírjî‰ÜÿÙqä+!ðeIјÙcf™Ê´3'ýµz±…Ù8®¶":ªÐf›À’'ˆj²’.ñ]⻤r9 â‹¿C­ €3,ùzùı|éÂ̹J¹ÙÌnþ¤½9zî™»Íöt;`l—bLé¹d›ª&@ú*s•§A.b³ìgmÖ?Æ£ëåyÊó”çVÓ­¦[M×ìUŸð¥sþíbªpæ|¹?5÷AîùXdß¡D¬ŽÀ—¥/’þÿãS›Om>µQœÔ®ÁŠ5QÏ €3öÙqõŸ'”Õ|EgœupÖ¥—f\šÁ—+ÀI}kòÛPÕ‰ Àû\fi»j"4{;ºdtÉè’Ôd€*ÊôŒ ŠW·öòó [i̸PM«’_oÓ$¥Ë”бWÞì[`YÔ¡7ÆY“‰¤µ2½íxÍó‘ñŸÏ5*¿..pp©ú§ƒÒÞÚ÷m^¯Õ8cʼn?D³?-·zm­V7kGfÕ+ãª?§oäÈÿ¶âÐ[JÃÈ—ûVsOäcaãŠ0˜À—¥TNÓ7{Üìq³T&n]½rc'ã ²ýDгçnەʤ£ýcûÇö½ÖèZ£kør˜gM¾ÑüFóÍS™üÙ¹ÉðÎç²cÅ3þ¸¢ËtïÍß§òeølÀÙ€³Ôd€*ÊäÏKï1$&{… rôküûìÙã¯á+н2;÷Î=ņ8}û£ýï¸UÖcÁ!ªqÆÚßzëý­S™üyø€»3×fíĘ̀‘clWóä¾ÕÜùX˜Þ3Ï0˜À—¥TNÓ…"B¡ˆæ¿«Ïà&s" € 2éè±P—ãO•N¹®UºVéZ%¾\æY“7]ÝtuÓUÍ à1oìéàÆÀ†xö}²ðè¼T.Át9èr Jkª0jjò‡ì6díz“i˜ªqÏÒuÿN  {e®ô~vÜŽ†À¹W8÷¢^$ªqƲ~Èú!©ÜP9ßü†{"Œ?ÎŽWóä¾ÕÜùX˜öx3Ÿ0˜À—¥TNÓ'˜ÿ'Ö½îÈ#AÅ4_Ñúõëׯ_Ï¥.€šüåÂÐ0»|¥“õ¯9zÕ½|ay£óZ}[A¨þŸêd•ཤV+Ç×=’&ôôzÅ]Ç#=zLØiy¡‚cµ'†¾çÌaêoWú´ûò“ É…Â,^—iñ¹ÇùÁkíäNkŽ:]ë}~ªM±K.w+Åjßç}ýfMÓü;»T»T»TÔdÀœ«´:K'ÏBU+º"ÿж.¿Þh¨Þ¾|dz‹mÿsû˯Wþ.Ñ‹fûåvz?²'0í•ÙvX͈滲ªReÔ Ž¿t·w¨ÒÃÙëvüP¥Ð¢ âä³kÍŸãgU\2oÝm½5÷üÉê'«Ÿ¬fdê.±fbÍÄšš=Y2±ÁœÇ € ý,÷³æþÈÇŬG¦I„ÁÀ¾,é6N*}Å©ì—ÿÑ/¿WþWÏX¿å¦Òéšf oXå.`Àxyþ£üåØC}Ôÿ,©3ĉ¦Û¥]7ýÏžH£ý–¤hî‰úÑ È+vž~qóYÍ=œç?Ïž?—ºj²¬ø"w¯*§ô¯9zMï¹yàŒYÿ™q¡Ìûö½ùi¿˜e?­é‚®5 Q‡½ ÏñÞqXîy ·)Z®âÐ[Ji¿¨QêTãzš(í笿ž„¦òÿ†Ö­ZŸš ˜s•þÏT·t 1tE2æØcý¸¢Áÿ¹_M^@û'B™åíj8¢{¬âVwØŠ…¹€h¯ÌewHâ–U•J¯¸_~¯ü3äZ©}ÃíIZc¼²Þ* N%¶¼ÒþJû+홺»¹ã掛;4{²üü®ÁcÎúYîgÍý‘ ãS–}Ã``_–t ¬êU ª¡*ù AÿaeüÚ–ìßP—S4ÍØp_NäßíêÒþîØ¨ï9¬jLLmóÄïfÃþr›%bkhjÖ=‘'P­\s~âÞ9š=6öÂØ c/p©  &ùQΡÒNŽõõ¯9zÍyP·r„LZ[«úÛŠ£Ç¬å5/3ösÁá·ßêôþ2-s™ãí.œ¨KËšûcwºnÎ6¿|нý{K¸›fÿÏy3çÍœ7ÔdÀœ«´ºrþ¸6ü½¡+’1ÀêçáÖÅ+—÷/ Óë½:îDó"î;OÖåû‚—÷¤\«! ½2;÷ë:m`VU*}j²íÌZß´È£½eŸòAO¥:Æ;åèYbb¨æž¿xüâñ‹ŒLÝÅöŒí›Êü®õŸ›“ØÐÏr?kî|\Ÿš²WœÃx>œ0f¥V4ÚýÇ<ÍÓAůI;WÆ”§Íœ/'º¯ã6fxµ…—Õ'²Ö¯ .íêØHnGý>¼¯¬\>è©TGžÖÉ;ln⮤*;‡ ]o´+¸ÀÒÆ¦¹þ5GŸºg±ÕîÃ/—'é6¯œîµÔŸ 6n¾Aõ¾¬^/¯Ó–¾ EÆ•éRíË=|{çUÜÝ’ñ@;§ž½zL®kèŠd̰¼Ÿr›êóâè3ýi*?-m8}ñæñŒ7Ú¹Ùs^0"«*•>5Yž±,«Î¥Óã¹üÐÊŒ[Œ7Ãq¿±Óç`ùn¹/ÿìx¶¿Ñg¯4ãäÊíTÚû$}­)­ÜyuçÕWkþwÆ0æY“3ªæ¤ó~¯©+Û»òŸËUûgÚ^? wQl»hQÆ~.ÈŸJrk®ÝŸÛOþ¤H߳܎ÒÀ|øð¥&óàaÎUZæÀ†¨HÆW¾¿ðÙÛÿœ“§ñ¾:w¯‘Óëò}AûÀŒO<¨Ì2Í5€3³R™O¬´ðòîË»/ïÎÈÔýV ¬@XÍžd à¬]˜‘©ôØ;zïè½£{}Óë›^ßèýÊߌÖÀ¨kŸ©¢@ï"£‹}9¹·ÍñkæWªÞw¢¹öÓµJ9þ>Þ&s¾œè¾°û÷#ÞæV±õß+õ=ñüv¼ï ]þUÅÕ3Öo¹Y®ÏGØ•‹ê\b䲊>ÓßœÊÐóüçùÏKå~kÆ0`ž59£jŽ_¾°¼Ñyõ¯{®ÿy;ïîÿVs…xý?¬¼—ÔjõåÎÃc-Ò¿MÏY= m¢Ùç¡õCë‡Ö§&æ\¥Õ•ºÝ8 Sˆ¡+Rv™ZŽIto¡|ó.GŸÑåû‚[Ýa+æR: ŒO€Ê,+;¸C·¬ªTæ—õîPapMÍ=¹ÒþJû+홺»¹ã掛;4{²üü®ÁcÎúYîgÎ+´“ƒÛ€ 6èúÊ?óC_uÀ¾,¥=lˆŸX$ì|Z£VC9‘ci]þ­õ9ŸÁu¿üRØÆÍ7¨ÞØŒ €íN×ÍÙ¦¢.ÿªäƒý;„ÉÿªèÂò÷<6¹×y$¨˜f­_¿~ýúõœ’ÔdMúÔœŒª{Å%wÑG§uˆåY" ÷°ÿ¹ÜùŒý\°oÓ$¥Ë”/}RØ«Z:Íâ²êè¹7,JÚþb¿µÌûö½ùÉÿ¯ó¾~³¦‡iöù.Õ.Õ.50ç*­ÎÒɳPÕʆ®HÆk¶)Ÿiëô‰p;t܉æE,çâ¦ÓĪåvz?²'0í•ÙvX͈滲ªR™O\2oÝm½5÷äÉê'«Ÿ¬fdê.±fbÍÄT¢ô’‰ æt8Nlèg¹Ÿ9¯HedfÛÐW0€/K©œÜÔ[kl­±Jç.¶ýÏýíÿ•i–?Ï/¸g¼pæ|9‘×$vï2ªXP€â*5¶ýÏý퟾;ç´?;{÷y¤>­´Ç…q›Bzkßÿy ·)Zî˽#§×ëÔD©Ï%?ÉOòã”0ÏšìÐÉ¡“C'ÅïXzלôÕ=—+ƒ,gWÒ½ÂË—Ïìï6ÛÓí€!>*¸M-¼î“ú'‚[Ãa[Z~%6ÞÝ̾k²úžÈí|ù7mÚ%Aso… 9BM̹J§RÇÜÃFF®"s,/óŸ)X½û¼úÊÝcí? ú ØŸ¿ÄŒê—¿' ½2h}ÕîJVU*ó €‹®s,鑤¹'I­“Z'µfdêîã‰'>žÐìÉ"”±tŽ"6ô³ÜÏœWÈL#ôUG àËR*'7“GL1y„ÒG{Á‰ÅÛävÚÚû×)]¼Ãæ&îJ’×Ô‘ÃÔÒÑ-çõì™»…gámiýš$¯"Y¨—õa»ƒò³î§Œòß—ÿ\º@óºÝ‡ËÓ:¹.Òm^¹’íêík×ç?÷jÔ÷VuwFíæ¤R_ö$¤Åç[ä=ñ1)fÍOåÿéúal½BU¬Ým¿ôÁæÅ³n*¯âiõM…½ÕWj¶s¶ÉÙ&g›pJ ˜gMî}¹÷åÞ—uùê•Öš£OÝ“§NeÍøï%µZ9•ì9s’“§ÇøÓ+î:5íe=鱕GÅ&5ºÊÇ"®dË2+3ösAér˜]­Ú ~Ëáügß¿§µ”£ùòŸúl²ê6^£¾?…ûØ-w_³ÍK®—\/¹R“s®Òš|ZöÏ¡‹†«HúWÈ´† iýD°ùÆ÷»ºÿ™Áv­Å-¢]Æ x7Sô:7ùåÚÉÎ/ûט1ÃæªåêWþr{\™‘.ÕÔÃòT^µOØ’h)_Ïüöù‡Ð¥2Wu_Ñ<* S+•Þ箆€õ¹Æ¢xõ#!t剿«qrJrJ2#3­J-(µ Ô‚TFrðÊÕÇ«âYîÛT–öXPjA©æ3öL/ôUG àËR*M„"B¡H*ÑïØâW­?è~BP1öïÊ[ƒ Þ°Ê]"à?áë(¯üés"˜ÊÀÆm é­~›’Â?•|X¶½÷éyw-N㉩úĪºôO¥EóÿÃmÌðj ¿í\«t­ÒµJ\ê̳&oººéꦫJõAŸš£Ý«2pñšˆVÅlœ–{ÝÔeä ôä`X§‹ViÜyÕE« jä¨û§•NûF‡ä;òðKó&dáÑy©ÌqÐå ËÁk®5ºÖˆš ˜s•ÖTaÔÔä †¨H{ 5 pºÎ„íÂê h=J—WZ|¾»S•ÃêŸê?WRoÙgÏÒuÿNÐÞã 2ÿ§¾½Ÿ·£afV*}*§`=®±(žÿç^Ôë€D5ÎXCÖY?$•e¿*ç›ßpO°!žå¾ÕÜùX˜öx3íÐW0€/K©œ¦?nö¸ÙãfŠw˜}hUª—}ÑçN¹¼JèSdl±Uòs±K.w+Å–·ïRktAÍ;bå•Ì ø~RôÝÚ× ñåäË=«k”mÒ©Ð/V+mÍߪP^‹JElZ8uøí·:½C|î.«p¨²áNLå¿S~bמcfï궬ÊÞó°¼ô¥—Æ8KÛ”Ô¨tÇ‹òÓ_&Íž=wÛ®TN÷ûÇöíKؘsM¾ÑüFóÍ5+€½s“áÏ¥¯æ¤îýÓõÃØz_ö!ªh¨¥¥<D‘«eƒ]÷•YÞ®ö€#¾!Áã8⢕ÒDòZïò¥ºüÇ#¯@l=¢JãÚ3å¿£þ*ä?Wt™î½ùûT¾ôž 8p–š P¥5•]ú{!1†¨HÙ%VoßmãðØE‹lsüÚ°éù5ÊŸòÏ€ÊùþÑkxwyUøÿüH¨b9•»»æV<{ü5|å`ºW›& ÊIDATf§àÞ¹§Ødf¥2ŸØ­â° Q3ÖþÖû[ïoÊÏO‡¸;s-°!žå¾ÕÜùX˜Þ3ŸÐW0€/K©¦—M)›Rö+ëœi=MÔý¿+žhjX)}ÛJßi¥îû“Ö-ªÿ¿Ž«ÿü8!•>‚„ !ˆ°0çšüÉã“Ç'Å îÞ†ªNlHkÍÉüº§ô“ÌÙŸ´~.”YÚ®Ú€T~~ªÃ©§:P“ªt*3å4(^ÝÚËÏ7lytdÆV¤Œ­é¬¢øDÿ,Oµª~÷³æ¿*U¦¡Ïï €è^™‹~rrój•™•*£*gZ÷9 ?ýÑã‹ú³¿ï•z±TãŒ?$~HüÍþ´ÜêµµZ]c€Ózva<°Ü·š{" ÓWæúª#ðeIñ4}Ìì1³ÇÌÖ<ðê8é¯Õk w&¯+œµ'‚™º?UÃVDGÚlXò„fo¿øãÅ/þ l¨É]â»Äw‰Oe²ý‡„[S‡3l-¨Ï¡—OSú2ü¾ìû²ïËR“ªt]׺®uSY ¼²ÝüI{sšR…Ô¥}‡­ûô-\ô_Çž–½ÙÑh‚îí—ˆ­q é—»ëlù—i9M}+U;¬¸r¬‚.+Ÿ•YS•§A.b3CW*ó9—öýmyhdnª±A“¬89ýaQ Ù½BêÞ~•‹×D´’×6VïyÒTïÏó îä[}yÛÃ;¼ÖNî´æh¹¥f¸QpbñÇ6_î$“WßôÉwäá¦g´ö¸ïû‰€.•9•óÍÏ·§êËÐí'®R™Å¹tî°o£súTb±}Aª±á<Ìõ0×Ã\©,3Q´ØJ«®~%ÃêE·ÍüXEêÏih-_XÞè¼êÿÖýûosgY\2¬^t[¹?5÷Aîÿì2Z}uA àËÒWN܃Š *šÊý ;ÜR:ƒOÅò…åÎk<¿“5ôþø´_2]•OŒaÀÜjò¤Ÿ'ý<éçTîoðîyvÒ4ê°>Ï•#öÙ?’š }UZëÚ!Áógû ™Æöå¿“r¡0‹×º÷UÁ,ÇØ÷:7ùåÚÉê[©¤ší´½'€þ•Ùc÷¸ZÁ Q©Ìç\ÚóÔ„Ýa­¨Æ™Ã?§Nÿœ©,ÇV|âæU 3?Ö'¬•T¡ËÈÉœ×%÷¡æÖå>7þ±Aè›VÀ¾,}E¢G¢G¢‡Òÿë3rÉ=U@¥É¶Ïe·ó°E³W§ü0å‡)?ðå  &kzàþÀý»â}À[‚·éIuMßs©~ŠuŒÒìÕ ÆAƒS“¤õG!Ug¬ì~쉹ÕRùµÛ®›³MEÍ;í¾ÜEç]jT¹¢öw›íév òý…ÏØj^üµ‰÷»×p0ý+s¡k%œKÍöËöKôÏ[©Ìç¹Ø*—*ßR3GÔâ¨ÅQ‹5û¶ÈÄ2S\šú¹‡ŒÊÚX÷÷‚Àîa#£ƒä>ÔܺÜçÆ9}õA ÀW¾JÉ;i줱“4O)JK-{÷¬DlæûÌ/œ´±Ò‰ÚÓO;<í ûÑ`n5¹»Ð]è.hVrA¦¸@Móäxwg/Ù®xÈë=¯÷¼ÞCM ¤‘C#‡FšÕùxŸå%̳®ª_Ìõ-°,êÐïZsNìœà³{éêÇ*ýÍ/k±‡¬ÝðY©&¨ý¡ö‡ÚT`©8žr<帇è!zˆšÕíþ°u fT¥2ŸgO‡ñ›VìL% ŸZxjá©Éï’ß%¿£g0««+û8û8û8Ížw?<ºÞÒ<Æó)ol­)=Ëý¦ÙŸr?Ë}nÔ#•û]Š5+Ö¬X³÷oÞ¿yÿ† Ê¥”K)Wß²¾e}K¥šìS4h§˜LMöõ\îqø¯‚)VÃls§r§é>Å~Šý˰Ê|Ÿ?;vöê7Ôo¨æÑɿޢPái>[—Îü÷wF²ÜrŸhö•܇r2®Ì0é”<3yfòÌšž5=kz*}•ªtuöØí±fzêé¶<ú°}D³ÊÝŠ)õOTHTHTc €þ>”ùPæCÇ­Ž[·*FƒŒÛço¦5ùûÐ'ÙU®]¶Õ9¥þ97îܸsãKô÷¦Ù›foš8RàH#©”›ø‡ þ]åTà1á”™F¿³W>öÁzl•NµW)Õä67lnØ0–è/ñÇÄTª6­l·–瓸¬Ã¡Þfý^©rÔºX€óŠJ½ô°áÆ2–²V|›ø6ñm”ŽQ‘aeþp)áÛgùíÈÎf:’û,¿ÙYî¥^’û±d>€ÐËóVÏ[=W¼¿áËÝÀÿž²õ“]ÒJ ½v"Ú¾sÓâ]Ö+õÉê:«ë¬®Ãø±×z\ëq-í5Ù{êÜ%»Ìh¢þª‹WÎ>nmûÚ¿qËŠ«°WÞQyGeÆ€Œuëέ;·î(Užü% v/Ô¡râ¢_˜Ñê}¾ïCV]iÝ´òEÿD¥ž‘â¤8)Žñ c]r»ävÉM1þÓövi•Oé ’—Õä²Ëón^l¸óöŠŠë¤žt9érÒ…ñcÜùpçƒöÈÁÓw|âÊÜ&þõiG°êÈ›~£$(õÃŒ3rÌà €]‰»w%N{M®à8õ‡uMüBÀ­eއ-ý=»T]¡ÔK—. dÌ0œÓãO?=þ+?—Œû»ÃÖã¦]“«Ü Ê%–,2¯Ì.—ÙJý°áÙ†gž1fÎá;‡ï¾ó•ŸKvš[rçs_!uïÂû»Ül9ÀFñ'’{ØûÃÞ3ÆIB„Å™­·(Txš9¬ ,¿F¥ Ÿer_1fÌ—_È0qµãjÇÕÖþUªüñn Çî4½“Nïvsóí¼RpJñ—6E•^ûÄKL,‘ò2åeÊKF C;;õìÔ³Sµ×dç }ž˜àÝÀïÿ=jë3í¯}~‹ù-æ·`œÈQK¢–D-Ñ^—\G É=w¿éÕä u¦vZß^ûkíÚ/´ã@æ88îฃã´×%÷y£6-©az5ÙsÂ_GCKjíá½Ã{‡÷fœ¿Ýßìþf÷7ڦǜ±Ç‚Mp®ùuiírÿ0NÌ0ìVë[­oµÖ~fÙÞsCÕw•w.lº¿ev?étž×/Ï´dí¯wŽãÇ9ŽŒ ™ïÒÞK{/íÕ^£l~¯Zª¾G1p©0?×d‡°Vѽ;þYê¯üÚ_oÈw!ß…|ÇØùbrÇäŽÉ­½FÙùÖvouÓgËÒ€[gãé÷O‡þzâ‡r?uŒö•Ø{ÓÅM7]dlÈ|‡Ûnw¸öU*©ñÙN)¾Á#Ogãš\cŤ¨# [×gö×»7doÈ^î•Ìf´ß ,+]¿yÒŸí|…ô=Ú1Ϻ÷(¤ïÑŽòkÑþz¹ë2` âé·O¿}ú­çlÏÙž³µŸ–9útß5~’_®Ð'^e›{Ëþžž«èßå{LûÊ%­S›Nm:ÅxµŒx0âÁˆJ<(ñà+÷Wíû}ÀF?ß°àè#ÙæÞ²À€¶‚-úÙ&•¾ù•KZŽ{÷òsYìÆË/o¼Ì§W»AŸçtÈ^g½ì'_u €{á#E¿òó£CóÍ?4Ÿñ k]vqØÅaºÔd·Ç#‚/ËfwI.{+¸›.¯îdÊÉ”“ ‡lLûÚÀÿ¹»ýðèzKód¯‘,ï³.¯Žµ~¡Žú˜÷cÞyGÖYcd .rå$Íù©jµã£$£›ä9÷«+l~½Øl¦N'á±á±áŒÆãݰwÃÞ ëy¬ç±žÇ¾RÂVç¿UàO· ÃO-š[uùÊÇ=­&Wúîïëá¬c|ºÔIÔ¥&_Ís5ÏÕ<ŒÆãU¥W•^Uj3ºÍè6£µW°‚C‹«¬¯xXé±l|Õ»¡“N´1ºâ<™öÇÆDËvžëª¾ÑþZJÎ.9»äìÛKo/½½”1Àx÷Lì™Ø3ñUÈ«WL5À¨í<±óÄκ×äò{»ÛË÷bˆçQ‹,ûÝ÷òQ'–ô.úÉÉÕ«¥.û<Âi„Ó§wKÞ-y·„#ÀHM9›rvcÁ7Ô½&;Uì=鯪‹WÎÄ|ˆùÃa`œ>ÇŽÿ²!dCÈ]*[þëR‘nÎëúµ˜ÞÚ/oXîè_²¤&‡FŸpýaÐæÙ/ 5±d×L—=Ÿ?}þôùÓ“«%WK®Æq7Á‘ìüÙù³sPxPxP¸.ã¡`Ñb+­ºº´0u¦“Ÿ[Øðè…Y0’݆G/”÷AÞ]ö\~òëå¸C0™ê増‹^.¶gØža{t¿Èe1ÞÎÅ¡TùÝÝ~Û©’ÃÌÚáo3x‘ÝÁ'ŽÌv_:êè’î¶ þ^-—æK£#±GbÄr|d/ϬžY=³ê)õ”zJºW¼"¿9|v^í×cÛÄ•ŽÌ®²}LÆÖdŸÛË\¹¹ #ò-º_bdõ•ÿÑ}ßJø”ð)áS*¦TL)Ž/€ìåqŽÇ9çh_¡}…öt¯{Åì¶x½uúØÇ{êJïns]våÈØš\å}P3q¼ë•¡¿Î¯kýÁçiÝ0Ý÷͵¨kQ×¢Î\8sá Ç@ör·ÚÝjw«5²hdÑÈB÷ºWü¾‡—oçOý»ÎØ]¹ìüe{3øçìU~ZÔõÀ^—ÄAg϶Z©Ä¯tß7¿Î~ý:Ç]»w•ãk>nÙݲ»eçãã£ûh±ÜêµµZ]—áîÎ\[9hÁÛ}·3v$ËmÊíËÛÒ}ßä×"¿.Ž/´# ËĽŠ{÷ªÅûï[¼Ï—.ã­*–8`;¯VÁöårtÜ:l°K³ýgævo6òvŸÇÔ±[‚í<ÊŒ™²l[éaî Æ:ìÙ~â³Ò›ïÿó‡âáî3||òéa핵WÖ^ùö1ìcG@vwqíŵ×Ö)R§H"髊…âKüQ*Æ®zm¿VÏË ëd9¢¾ËÒMgy¸Õ!(ÎcþØsÁ-=Šé°l뻡¡óÿu\×ã» ì4ÝÕµ1•˲JCô©ÉÿÔû§Þ?õ’'&OLžÈÑÝŽ={:¶²TYª,¥¯*Z<.9¾Ì»gu»¶ÙYîaç©£¬]n rŸÝÂ}Ũ‹KF{„Œýà‘{L…eU]w ‰š·ÑÑ»ûæñ#J%4ÞÔé¤.‡j·ÏsŸç>ÏÏ×>_û|£ »;6âØˆc#Ÿ;>w|ž¾ªXønéEާK.«?±ý€òm»ÄŽw-38ßœ!îGF7]ZØcÓ8»à}îñ£-ÝáÚoðÓ¹sËïÖhìÎRµ.íhWäZÙ•®Bú¶k½Éz“õ&ÕÕÕ’”=){Röp4ÍTbJbJbä’È%‘KìãìãìãÒ7¢ŠüQÆÒ9ªdbƒ9Ž—Ÿß5xÌ×úƒÇÏÍé~yô¬¥Ý<¶ó Ž•ÿ,ÿwùïÈ_þ·éÛ®¼Ïòþ˯…C ]`âîÅÝ‹»×§CŸ}:ä3J–-,[X¶Â…p!)8)8)˜£ÀT]jv©Ù¥f®tºÒéŠqÖä2…Ê*ShçÏ=žw|ÜñqG € z–ò,åYlËØ–±-[}lõ±ÕGã¬ÉžÞžÞžÞBC¡¡Ð0ùä?’ÿàÐ0AcSƦŒ=‘x"ñDb}U}U}•qÖäjå«•¯V>Ò.Ò.ÒîóªÏ«>¯âÐá?¬R¬R¬¢G-ŽZìŸÓ?§NãÉò¾Éû)ï3‡iE €Ñyõã«_ýøOžòü“ǯ­_[¿¶Yuº9nݸuãÖ]ÞqyÇe¢f*qdâÈÄ‘:o輡³×;¯w^ﲪ&Ou˜ê0Õáz‰ë%®—à¸0O n n naÆ tìàØÁ1Ë~:9«ï¬¾³úÞ®w»ÞízæéQì£ØG±Ë/k¼¬±Ýt»évÓ3¿™Wd^‘y G-µpÔ}×û®÷]9.H«‡¹æz˜+0>0>0ÞjºÕt«,Éòvå}÷‡ãý ¼j÷ªÝ«vQã£ÆGÈ# ‡·…·…·EœcžÏw>ßùΗ:_ê|iÓ”MS6M¹ýâö‹Û/èsPòÂþ…ý ûí·>Üzš k&¬ñ(íQÚ£´þ%¹pÍÂ5 ×ì‘«G®¹Â„?pïò½Ë÷.Óç äYÒ³¤gIRM©¦TsŒãÇ1ŽN%œJ8•È€ùoVY®²\Õס¯C_‡åv–ÛYîáÒ‡K.¥Ï@IÂÆ„ ¶9Øæ`›áVí†[9¸9¸9¸é_“m_ؾ°}1ÈiÓ §½Mö6ÙÛä‰×¯'^ô9 !~Hüø!û[ïo½¿õõCÖY_jA©¥è?’åvä6åöåmÑç0`LÐÙNg;íy>ò|äù£[n=º5ùYò³ägô d¾S%O•å|Êù7^o¼Þ`UàsV¬®Y]³Jî—Ü/¹_Z]Z]Zúà[C †oË·åÛæµËk—×.Æ%Æ%ÆÅÛÎÛÎÛ®óWÒïY¿gýží¸·ãÞŽ{w&ß™|grݼºyuóÐó MŠŠŠ.0˜ L°g°g°§z™z™zÙ—_A=GöÙs䢪EU‹ªxy¼<^^Éæ’Í%›Ñç M>ÜùpçÃëY׳®gm¬ÞX½±Ú9ß9ß9ÿk}ù¥ú¥ú¥Æ­ˆ[·"?/?/?OP'¨`‰¤ÊÓíO·?Ýž––6nãæ~­+Èž¶§íéµSÖNY;%}Dúˆô•a•a•aès&¥K7–n¤]hÚeiôÒè¥ÑF§ŒNúò+HÅEÅEÅezîôÜé¹çäÎÉ“{ùêå«—¯Ðç M¦5Lk˜v/â^Ľˆ=Ý÷tßÓ}pæàÌÁ™_ë“h ï@߾тhA´ çcÎÇœõ¡õ¡õ¡èy&¯^+¼VH,I,I,™);Sv¦l×=]÷tÝóåWAƒ6mBõBõBõÈ-ärË»mï¶½Û†>ø\€A¼MLLJ™>2}äd¹Ér“å:'£*FUŒª`aaihÕЪ×HŒçÄsâ9±5gkÎÖùNòä;ýï¯ ~ ?†ÿFóæMŒ HŠê´ê´ê´K/m¼´±ÿêþ«û¯þ^ŸDó¼æyÍóº=áö„Û0. Yîíº·ëÞ®PƒPƒPƒïu¹®w]ïºþÜOç~:÷Så©ÊS•§0. )JZ—´.i}¸÷áÞ‡{=0z`ôà{]Gë£ÖG­zêôÔ驯$?•ŸÊOM­H­H­˜8!pBà÷º‚Æ$ŽI“˜¼*yUòª† >bt@R˜}0û`†QñQYYyÂá„à ………ñ¼‚f·™Ýfv›'ýŸôÒ£b¤NP'¨»]t»èv‘o¶o¶¯˜~™*˜*˜*\]yuåÕ•õµõµõµ:ïjÞÕ¼«Ù¶~ÛúmëÅù»Ü¦èMÑ›¢Kú•ô+é‡QñÑp°á`ÃAr¹‰Üddd%¦«sê‡U«Î¶È¶È¶ ;ø^ƒxB b¡|}ùúòõ‘Ö‘Ö‘Ö_òåoÄ:½R 6¢Âq„þÛ#Çéâ½Ím—\ÞóÚtô‚GÛ} #3ÃÓu;Œ8Wõ•Õ¤Þæ_ò ¸[}·únõš¡5Ckðvaøj÷Öî­Ý{píÁµ×~ѦAÎÙ]ŒÝMfdvKQ¹^¦‡ÿ8z¯¾~lÀîà {MžßÖpÕÄö„ø]ŽšÔ³bÐè%µ—ÙŽTP VQ§dÿǽ^NŒ:1êÄ“ø'ñOâ1šð½Üн{+ÖÉÞÉÞÉþ¿U²‘†Ê3ŃAóÚww\q¹gÜçtÆ€ –=H«!E6Üš¡/lcè«ÞlêΧ šjå¹p»m*·XÝ:»Çö^)ݨìÿ’ë÷Bå…Ê •üÍüÍ|¼þ¾ƒ²¼²¼²¼U«V­ZµêK*ÙÇÌã’¦ÖÚßg–dît9þOÚz+·××Ö“5Ýlëu¥ÕŽ_­D”™¬SŸ•f0Ý7·ßOš+e,:Wtúßþ»aIaIaI¥íKÛ—¶ÇhÂwÐNÐNÐîròåäËÉ2q2q2ÿqv¯|Ø@ÑüM÷ƒûb =yÆ2“#ób·.4ÿc‰þSóØ°Ÿb¶˜Å‡¼ÝµÓ¸dŽß¦µzõRCæhuôLe¡¨Ô½cÏ-ÿí¿kãnãnã~cÍ57Ö`0à0ˆ'ÀðÝðóó'´Kh—Ðî³§FlË{>Î4AÙû núôuûöýZmvŸCaéŽ}õŸî±íQÙ£²G¥Þ§Þ§Þ£ ßÚƒ>ú<èc›`›`›ð÷É.t»®ÑÿœûæZˋмî.Œ@™Ù·ï×jŸ×^xâüþØáµvæœ[‰ÝÌ®?·ü؆®ºbèŠÂ…+ W`|á[«ÞP½¡zC„R„R„Òg½Õ]lTëu÷Ë‚Ök#OÌèÕëàÁÌ̯Õ:EØž®m~>¬wLÖ:þ®ŸûItùÊå+—¯j5‚Œ2|kÌæsçs«Ôaþèꑇ2 –¯½ge»jUn®µõ×jg[_ziª6„[ù“ÎAÕiÝóåòZ~lK—. ¬œR9¥r ƾµ7ãߌ3~,=–K·¼JïjòTŒâîz,4;ùôÜÆÙòëΆÊ'mp½x1hpk«#~ã xšŸ±é´AgƒÎï¼¼óòÎKŒ/|k ‚AƒàðìóÏþÜO¢§ ÓÛt½èðû«~fÆ×› 5¶7öÄë8¨…çM?ªo÷¹Ç¶?gÎþœ‡‡Œ2|k¹Ú¹Ú¹ÚfÅfÅfÅ-¯Rµó·úÜê–|Ek|ú¶„š¸ÏU÷{-pˆjË—Lìc÷çx—FU- ±®º~è:F¾\a~a~a¾ñãÆ#š¯:×­6ÛUC²ËŽ|tˆû^ "Ãà—¥}M¿¯ÄîWý5ÚÉŠ4.ƒJ• *)3)3)3A À—à¯æ¯æ¯Þ°cÃŽ ;ZòÛÛ0uú¶ÕiŽGbö¤ ù^Ë¢Z»Qí.ën2pä˜Ì–œKŠMŠMŠ j¾\Öî¬ÝY»[ôZ(?7u‡ù.ä³…ß+ôÕ.ß~;ÉÊѯ.*Oï÷–œËòÖË[/o]\\Œ€/Q9¾r|åxÖŸõgÿåɪ Nr–”†wo›ý ×§E»_·9ѽ^£9ænßCG]æ_Î%J-J-ê ï ï 5_îä쓳O¶èyß Sgo3xWHf»FŠÛœ¨ŒOwp}¶¥t¾šaeKÎ%Á<Á<Á£_îYÁ³‚gº¿éþ¦û[óU§Rhní¨bu>ââ1yq› 9½‹=’i>v©ÙÞp¹Ê®#4þe÷¾3FÌ1£Ü¿Ü¿Ü5ß`O€á›ãûð}ø>Ëç.Ÿ»|nó_Ȧù›¾×nývËDC—gâ¶À!ª­H xÔ'<Äׯ½Ç¿lŒ6}×ô]ÓwÕu¯ë^×UŸ+]/]/]ïß^`ع_çn©›öçÙ ·ŽæÛK£Š¬î·dáã~úýôû鍸\•½*{Uöè7Ðo _ó5Ös¢ÿ•¹¥NþûóÒ,Äm™Cäöh‘[öŸßÚu²u™«Eóg·ëö®Û»n ø¾€ª€Ï÷(îQÜ£¹‚–ØŸV¶œsíÊaÓCâúŠjWn¸×Óê…w»•Ët.ÿ˦»¦Ž¦Ž¦¥'KO–žD=ÀçzZû´öimç+¯t¾Ò|¥n5 ·ÅGI™ 5¶Y+GîµÏ×W¸%·¹ù³£.S—©Ë¨ø\ 6,\ü×â¿ÿÕ|ÍÒu\Ç»´¹Áu®¤Ì†Þ‡ÒÁ®üy×ÇvÑý—[¬æ$ÍIš“TPP€ª€Ï•¼.y]ò¿ìß -ÿTÑÍâñŠâƒ1’2jlMÎûcËÅ–¬*ä‡ä‡ä‡ àëB â 0|CµmjÛÔ¶•8*qTbó_¿Ò4‡ïµ;"YËÂíkß«Ž=äbe:?u¦½÷Ü{påìÊÙ•³Q!Ðç Ïž+lþ ZWl°§^&-É}’dE¿Ÿ¶Uó¸ }^̵ð¿¯ëØüù^‹¼y-µ-ñÆþý{Õ8Õ8Õ8‘šÕèÜ3Ô¶UÙìvîŽd-s·¦ ömÿµù+h1½˜^Lósø9üTü‹Ç‚ǂǑr‘r‘rÍ×ÕèuÛoèÙJJè+ª]PÍT˜ÿÖs‘}‚²yóçû¼øyñób´Dv\v\v\ó5y¥IA÷±ïgLªw­“ÜÙßkZšû‹m\¢ŒUþeCÎñGÇÚ€–¨ñ­ñ­ñõöön¾®2«ËÙ¯–ÜÙPc{óh|µÃ¿Ü°èYãYãYó!ìC؇0T´ÄIÇ“Ž'ÿe–ÝsϘÀyÙN—4¤Ÿ”ÜÙÃÝ=¿1‚n¤G¦Oióç{ÝäºÉuÔ|-€ATÒ—9„Û+J;ºX/iþÜikÚš¶F€(¯æ½š÷j^óUÔÃk”Ϭm½þˆåg|”ôè÷Ó־ݟ“¯\V¢/c&ò9’ÀÌÀÌÀLþlþl>nH‚¦   UE]i]kù ‚h¾Ù}I~ÿцä¦Y[x/;¥cÚüï§ÞO½Ÿz£X@”Œ5k2Ö4_Eg<\¶ì#M³¡¿oýË÷•£kóç‡:QªªªœeœeœEn3>žõ²ÔøA5¹£ÛÒ4ªé’²Ï-ljÞpª»È[­ ¬ ¬ ªU ª„jQw8Üáp‡æ[Ö¬ž|DIšfC?üh~ÿmCÿåE9KR–¤,AÀ—C â 0|eõ~õ~õ~ƒòåÊõks•³·!OhÞWGú;>mêën*ò>fmÍÚšµ­T=¨6ø‡³÷ÎÞ;{OTåèÿ©}S±ã›§WÝ]VH_ôûiûøðÙ³½xÿ²ÀÌ´™i3Q3ð©ËËËæ+Çtì‚ÂíÒ·Ìñ7c­>à›v¿»ÙÀÑcn‹ê‡Ù³+fW. . °!'üÃÊ+;¬¹\h;vdÚòåóo¯²2“ªèW¨ x×ÓЧùß'//¾¼øò"j>uÛó¶çmÏæ+'7Äo¨“ºtφJ+&»q”ל¯ò³¨~ˆïß%¾ j>U[T[T[äææ&ªrvŒ[<ÖØD–Û×NjçD5™)}Ýöî s4‰Õöööí?Ú´GåÀ§Nì<±óÄN‘{ =ÖYmpÕþôÎiÄPéžÙènp?UÕü'rVHVH6…€/‚Ä`øzŠE‚¢×f\›qMÔ—ª„Ýžùæ‘Ò½Ì!Ü^žï¥m=RTŸx'y'y'5”7”7”£ˆàÚ‰k'®¹Ù×>G¯®¹ž'Ÿp³‘îè÷Ó¶$ŽvÕì¾LÃM~¾¨žyØæa›‡mP?PTT¤¯¬¯¬¯,ò÷y«¸ÃõÒ½ÌñÖéà¾Ì”ž›Ç¸Ï;$ªO6 Þ4xÓ`Ô4ŠéÓ!Fdô۷ˬIZr«,r[w•îè÷ÓvÖèóÇL–‰êyNž“ç*Ô*Ô*ÔP?ðÜà¹Ásƒæš_Ý?­÷Íg6Të5u€[è›5IQ} á…ð°øÁzÁzÁú€Ö­Z‹ª–SA>Xäþ8³¡Æöüï[ý­ºŠê?¾ßÏ/àð PDÀš³æ¬È—Yt=hs²OÇ{û,R~œ9‘½ÁŸWdÞ(*‰ ÅŸØ>±}b‹ú€ÿ0ˆ'ÀðÕì™·gÞ‘›mþØ¿ŸÅ¤-úý´%ž I·!ªÂÂÂPE?ôr!ÿ9ÿ9_T…ôëáÈëú¡ÖåÚ ·Úm±£±}_L_룬U¨~]Þ[T/½ßñ~Çû¨¥ÔMÁMÁÍñÓÇO?]äFy×\8šöE¿B­^籜Õ?è ô¥ô#c®3×™ë¢*Ä£ólY­É?Nè+ÜÎNL¢MûŠêŸAÁƒ‚ó÷ò÷ò÷¢–~L?$~HìâÝÅ»‹Èï*o§MTs¹ÿcΆzNós?ä÷Ö L³Vä-}k®y¸µô#‹ªŠªŠù¬Þ¹[4-™s6ÔØ&yl?e-+ª6Xn°Ü`‰*ú‘=)|RøDä¶á]Ólõú¤:Í> œñcΆÚF/%/Ê >ŠODõR¥g¥g¥'j >`O€á+ÈÊÍÊÍÊõåi¿©[ƒ©Ñý~Úžýk`/Ë?EÞùÞ××õ£©[[·¶n­ž’ž’ž’pU-x±Ú9¹Âmà¼Øñ÷ÓÀšÄ¯®"·zn蹡ç ‚AêêG›››.ª6,Ö,¿kõ#G¿Ÿ¶:ñûLÍÕWzzz¨¨M‘L‘L‘È7,:·W£÷ªq¹{­õ丱ö/ã·¢új›ç6ÏmX4üAM¾=ùöd‘[î¿<0îCïõ˜ Õ>žºÂ]ÍåˆV¤ª›p/Éî“Ý'»¯úRõ¥êK¨¨MšgšgšÈÓãÞ®^gv³¡ÆöDкýú¢úŠÅÎbg¡¢~4S>¦|LQã«ñÕš¸­\élÏ®&rŽïö-K]€ÙýÏz\Ù.ê òŸâ?ÅŠ JP%¨B]@Ë!ñ„¾HÕݪ»UwE}mZlUÚ£–9„ÛÍCå E¾Åç-ÿ-ÿ-ÕõãˆìÙ-²›ÈzÐáõqÉÀ2ǧí#Á™À^cEõØÑ6GÛÅvÐ?GåÊ•‹ª£òY}ÖmÀ2Ç?Þ ,ˆ}˜q½ë~›Ã}Tšè±ÍF›67ŒjÕ0 ÕõCðx<úì곫Ï.ázйdõHÉsEVN¾U¢ßOÛñ1Šú"o¤¸£|GùŽ2ŠëÇqAë‚Ö-‘õpÇ÷ƒãÌ€>mËÕzõé.r9zÁè£QW?Ž Ó Ó SQõ°ÌfJ ·SgýITÖ«¬WY/T×cÙäe“—MUm£CÉD̃>m­¬;÷W‰È­æíOÙŸÂ{µà3 þZ.žºxêâ©Æ>ŒHˆHˆH(õ,õ,ÅmÖÿ`ø"!J!J!M<³h8Gå bHíÔCîæXànùùÓú¶8Cw½Z¢pï~7úÝèw¨®Á½U÷VÝ[%jÊqct\¥C',mˆj/uˆJ²ÊÕ{¯—¼^òz jLºñøüÓ}¦ûL÷ ×€Ö‡qþ…XÚ¹Ú¡ÝÓ3QWÐÞu{×í]‡ûtüÑñG¢*!¤ÇµUʈ{Eµš³M´‚„û­K§.ºtª#êˆ:5&ÝJ·•n+Ý&ê :–ÔÏÓ< sQmÞ¿8§!¢z/ó@æÌ¨±Að™à3Ág„kÀfºñåÊú‹évîk1÷nÞe¹ßpU¶±RmâÖØÉ5“k&× º~·ìnÙݲùœ“± Õ˜ûˆjËçLß´Oäíø&oMÞš Æ %¹†¡ C†ŠúŒ0ø¿A ÿQî©ÜS¹§Dn ©;æ­ó`,j4ß¾šhäòLT¦²©l*‹J“Vü~?Ǥ­I[“¶Â£¿eõ¼tÃGXÔhITíS£ÓÄî£ÝG»£Ò¤Û‰Ý'vŸØ-귨㑘=)^XÔh¾µÜ®7STÅÅšҤUÙ‘²#eGD~@Yœ­áhD¼Í·+Æç¨[­P>¨ÑF¶X¸cÚÇ´iJ“nÁAÁAÁMÜàë¯_¯9EP8¹¯f=Í·º/4](܇Šïß)¾«ªªB¥I«Ûco½-r_ŸBç‹ù½0ßi¾-êx9ÏEIT^¿rýÊõ+¨4©](ÏhÈhÈè®Ý]»»¶ðèë÷œèªùNKZB—ê!M|šO^5yÕäU¨4h À_îÓg›‡0¸åÃç{+x+xëÜÖ¹­sÁÕÞ;n]Mâ°ÑòöÜÀ¡–IÂ=©ª¥ª¥ªÕp²ádÃIô¹dyÉò’eÏ -Sš#kVw=m•û0,g´¤-'˜}>øp Èg†¼&Ê»ÜÁL§E{#ÍœvǽØì×®>JáÂ=™0?a~Â|Ô›Z-X-Xm1ÅbŠÅáq?|(<Âlf:ŸñV`Íu“,º÷dàÁ=‚ùÉüd~2ŠNúœiu¦Õ™VÂã.o¨ö‹fªSÒÚôc˜é´ho$•è«Ôo¢>Óïu»×í^7Ô4ð—k tÃÝÎ-†0¸y€á³e:f:f:6ñ3Hæ´Lûz•©Ü'c!ã3Úæ}ulÝ4~ï¢#Ü«—¦^šzi*ªNšÔgÔgÔgˆÜìnã!Æ~–0>·=¼y˜eDÏ€~püàøAÐ h4 ö¤É®v»Úíj'<âšj®Ç¼½±„ñÙKÌî æ´¨ßKOSž¦¿ñ›åHD¹_ÒzÍÙ¨ÕÄ[‹bÛÆ¶ÅFÐRbŽáÃ9†Â£|ša©Í—´ªc^;7ñ;J¶P¶P¶““(érksks›xöר¼Gœâ¹§¯-æ5ÿ±ågfôík?ÜL«Ë>á¾ívÛí¶*PâE ¢QµµM\G6~ŠN§c^ó%­©ý‚yQ·„ûvÊ™)g¦œA€(€ÿ7.ÀðBf„Ì™ÑÄ6ÅуçZ½Á‚Å—·™Å#ÛØ¯îáQ>£|Fù %]~p~p~°ðøÚ˜¶êÒ _Þ6LJgÜEnc[*W*W*‡:”`µ‚ZA­ž£ž£^¯!° Þ2ì¼ ,¾¼ÕWš¨’/ÜÃû+÷Wî¯DJºÓÛNo;½Mx|=®ÏñÓŠC|ûåíb”:ó,QŸDü ~¿u(¹ª¶Tm©Ú"r›âü©šnÏ1£ùòvÈ‚žíÔ›Š¯óùLá‘í¢axÀò–*¾Vk~g1U¸ŸUUU777P’ËÊÀÊÀª‰gèd1ÇÌj%1póÓå~¦ã?=q8*³‹ý³T=𨠸0Õ(¹BCC…GÖ|×Ò71s1—ùZ­ÞìñíÙ÷ó™-g¶œÙ‚:a€¿/„Á¢ †¹©qS㦆ðE²ßf\",R|ÝvçVW]ãù½}eú•éWpÇ®Dâ'òù‰¢>ljüRnºmŸXÒcàâÅWy.‡…ÏÈ:Î:Î:Õ(¹vkîÖÜ­)<²¦Ã$o·Ç"Å×mU_YMèm*ÜÛ… ;vD5J¢’]%»Jv5ñ"4c¾Bä>q+žð”ì£Ë ›ølèÑ!¢ªQry¹{¹{¹ ì³³c—;Å,ækµõó§)¹‡ˆŒ sërërQ’(-6-6-VxLæ¯Ô7ÿYÆR÷€+=Û_FŸ£Ý4xnGCá#d’˜$& Õ(‰BBDþnt²Üïwmf1_«µ[u(ižp?÷Qí£ÚGÕ‹„ÁŸB -²Üg¹Ïrá ㎡o’£)¾nû|àØËν=vçØcw¢%ѳÉÏ&?›,<¦“®zGjUߥé €[‹ÅÉÊMmÙô¨üQù#Ô¤$2Ò1Ò1ÒS‡ôÝϘX¤øÊレ¶°õö ½ïïï„j”D.]¸tá’ð˜úØ|¥goÀ_·].ë¡•ŒpoËd2ÁuÁuÁuÔ¤d©Ù_³¿f¿ð˜*¿’-ÛI8²¯=f1_· ™a3°Çcá>Ï=›{6÷,jRÍ¿;ÿîü»ÂcšW~ÒÉižøÏ/zìÔZ¬0áï[áçN\ÝãÉý “1N[*/°U}.‹Ûêñгs{îíÀâÀâÀbT£$Êïß;¿·ð˜j è·ÖÏó—oÑÊû«íí¶V¸Ï«ÞW½¯zš€O!Oƒÿ©T ªß)¾SlbkâÚ'SW¸«cyâ+·ú*}EýjˆiˆiˆAaJ–cšÇ45ñä"q0ú±ào²4¹LËä¾ðy]{víÙµg¨IÉRSSÓIJ»«Þ ³qX˜ø­Cçè½dËîæ˜;`.jRM2›d6ÉLxL^åú™÷Cü-ZSÏÎ*¬pŸ—ì)ÙS²5)Yrè:‡Íuwœ¦lÇüå[´™»G¼´îóh§h§hÜŠ$iv v v‹šáÖ_H·u_+þó‹lét2Æi‹8-¿{†û‘ï¤Ïægó³Q˜’%6 6 6 ‰ÍŸ„]Ù· ó—o²´ÿ¸¬……Â}~#òFäHÔ$| °øû1Ã`Àð/*†U «ÖÄðcÝjXìø†í¬[£tšØÞçÕŽW;^í@eJÿÿÿ†&–€yÄJW]Àߢ}@Ÿ:êôHø¼ÖX{`íÔ¤d¹Å¿Å¿ÅM}í‰î¡òX˜ø&­ÓÁ}™©2¡òk²›¸©]C»†v¨LÉùø üEMfV~¸÷ÌúWÀߢe½…é9·‰…€„ä„ä¦dÙ[¸·poSKÀ´¬öCú&må¥ÉÖ}®÷¹Û!·Cn‡P“¶Üv·ôniÏþú”yÔ$)ó‹O¼q%þÇ6|DeJŠ›Þ7½oz ãaÕp5³~’úJÊÛ?mO$¯{aÑKøhÓâÓâÓâQ™C^ /U{½¬®Î<"nóã°àê d×-6ó\ÉV]¢ž.sVÁBñŒRXÅÆÎ=:ûn™¹ÅqÖ޷ɳlŒ7Œ=­ð3›³pôÜ;—»%Üçý úô/@aÀ§K.éƒÿ8~*üT¸p‰gšŒ í}Ägi€)Ú϶—º‘‚·\ïΟéyÊØ—Î…â¶Ø‘?ÇC¯EÂG»}üöñÛÇ£2%Eu×ê®Õ]…ÇÑk…Ë9õÉâ°( *V¸ ¿DƧùkG缦@¾ònÂñãŽÄsÉCå‰òÙ•M-Ѐ$ ÔÔÔnânwèLJUŒ¶M¾°û0³T5Äò×^sZþdÄÍ<½6K<`c§`ãõW…ùú¡ë‡®ãé+‰q_å¾Ê}áq:1)]Ê>=B“3*§G¯½ØCej·„FŠÃ¯F¾Ó­4rt­ï’.ê“KŒživÊgÝÄr­¢†¢†¢*SÒt\}µÒUgˆÏÜa5Ï!\fã±5ÎtVüfÇêù_õòºkÍÜè62×áçø©fù®O´êU74õíHà=µ}2Mæ í£•V>Z‰Ê”¡¡¡M¼»ômk^O[@»¶´’êåzD¸çƒ'Ož€Ê”÷ îÜÇžUc×-pŸ¹ƒ¦±ëcïìÂ¥ÙÊuàûÆš³î¬w·Œ—j4eÆúÈá- ‰Å缺ê[[¹¸bU>w¾€XÒIGŒþÅØ=c÷ŒÝ#\ʆOÎvS‡EÆX·ñ¨dÊ;sÃòBýÎ9ùŠZÎ>—î·•fÈGŠÛbGƒü´aîû„ֶ¶¶•))rŒsŒsŒ…Çñĵu/-œÅ3–}.ëÞ9‘0‹Ž°1þt±ãÓÿý—Ëzw ?ñßú,¢í ýK˜ªIß×h™pùƒ â³(`š»hÒŽ!Ü^™TYw3*´×.Aãÿ+¼„ñÉYTŠç2Gckµ7)H¸ÿ×_|ýqT¦¤Ø/³_f¿Œð8ι…3M‡ ttÑŸ‹ôþñÍmÀàE¡Ýo6þ¿¢¦U®×¦EkÖˆu¼*7×ÚZ3ÛhB<>‰¤ï“höZ‹Gâ0kxúÓ˜åÎíeŸË¨uNT™.W,;5wŸ¯“Èç’ák—ŽâóÚ Qµ.>ÎÔ¢Ô¢Ô"T¦¤64lh˜ð8~l“:Âíào×ÖõISr·îy÷2÷2wÜV.1²¸,.«‰½LâæíÙ:Kf æGÔcN~zl†CÕV}:÷Öc¯_ßàñ€µ ï^ø.Ÿ;_@,M$7 F ÿ¹عع‰)w}Ú4k÷â°(¶d8awuN±åJ]õ+‹ ú¶dñB8$»%¼ÀÑ}šxj¤\±\±•))¸+ÜîJïr~·×Á¶·xÀó‡Ü×JiI û·àLqº ÖKÜ–‹êoz=8«ñØ4n¹\¢Ö’e‹OÏHe›™¡='n°CÂîPÆ£‰Ø#`vÀìT¦¤XS¿¦~M½ð8.ž–jež'©é~.*aãÐ-ù©nwÞZ-RŸ©§%ÿ@œ`³mý7ª:à“Hú>‰6]ïõÌ0Df á×ôôÿ¾UbÃ0§E-™×Ô ˜zÌݺñ­ÀF_ó)Ú/Å-¾yÃg‘ÃDáþ?ßï|¿óýP™’Â<Ñ<Ñïnœû4չܧ,sg:ÿ­·9‘¨wo°ß`¿s"‰ù£ÿ‡þú#Þü½Þ¬q]ãºÆuT¦¤üÙf²Íd›‰ð8ŠÃ;€í ·¿»¢ùéQ}îÀf–‹#w¦‹s,êÀ¨LüÁüi~¾Ý6ºmt[ôŒôý¹z)ôRhàÏ?þÜòè·ñïÿ@ïI1vÏØ=c÷—ì‡á“³Ý”ÄaQ` §n˜Ú‰Æ£š˜o\¨•ÂW›vÑý~ó±îÿÑ“RÄ9nŸ6̽‰·ÛVØVØV 2%EŽqŽqޱð8ž¸¶î¥…³¤¿øª×ÎÖÌÿÝx¡§ü‹â³äÑv†¿þ¥¦®t$Â#(.P¡B|þ±Óf™ã~Ý–ü”õáuGÿz¢4®nQ7½k4ïéÕù`§ÌNâs^v¡Q{“‚„ûýñõÇ×GeJŠý2ûeöËãœûW8ÓqˆH?=ª±{vëë÷jùÏž»ôƒöCq€5³)Äã“Hú>‰f¯µhÐy$³†¡{¾×èÙxT—gziYÏ×ôü·–×nˆªu±pÿ§¥¥¡2%Åа¡aCÄÇñc›Ônç»¶®O𒻥pÏ»—¹—¹—¡2%E—ÅeqÂãh7oÏÖYâ¶tc ûñêЉ÷B³Å9Ö&¼{hà»|î|¡1,DÏH‡Æà6"!"!"¡å¡oãßÿ߇¾ŸB ÿbõ‡ÕV.ßWqã}z§ˆÃ¢@×òûes*c̈Ùö=[òSW½¼îþ_p%žpÅ¢²Ïá#œT6©l¦jã%ó’yÙD¥ENŸ9×àWñ €'湯•Ò’Ÿõ‰òl­iÛøS£æ÷[ª/nðè.ýS»µÁTMÒ™e™e™e cãrƒ¸ÀÝnzþäkÝ’ŸÒz9`–ÿÁ¿ŸiÞ®ÿÂü¸¸=l5z;£Ç„{þxáñÂã…¨LIqÕùªóUgáqœòÇÃËâëoèÕOùE‹žv»óÖj‘FŠÁR…b;厳nb¹PQCQCQ•)é :®¾Zéª3ÄaÖ2×fp'G5m•Y+íö-ù©SªÜÒûi®Ué¨?­ËSÅ6ûôb¨)nðžÚ>™&ó„ûÿÑÊG+­DeJŠÐ€Ð€Ðáq|Ûš×Ó…EüíÚÒJª—ëážž'§÷ìæÖòŸúß·aooÞµ<-|„Þ3½gzÏDeJú‚Îßß(&÷Õú¾³†ì Ÿñÿ÷-NF­s⥃gY½jþ§– ·ý¹ç?nžhü÷ˆ[<µ—id÷&ž{+K,K,KDeJŠø—ñ/ã_ ã­Ä£Û²»67ý¯áN¦Â=ó æAÌT¦¤¨Ô¨Ô¨lâ–2õÝNÏô‡YƒIéüµÛ}zló£æª§îèú9"ßa/s"»ƒÛ2/ŠüÐì|°$’ŽÐ÷S€á_ÜÝzwëÝ­Âe½ç—>Á&Žb±(°ÍôH÷»?wõ^1I^%îŠÇ ³£ÏrÆnt>]4}B+ÔcÃÎØ)¯øhßUo»òZ9™ZÑ_àÄe±ãüOƒÔ¬šx[³ÙÀl@eJ Z@ h‘õf™iØWYÜ`ÝønWôÿw˜Õä…=/ózïL·®ILÛªgÕ1XÙ/Hgݧ¿ÿ§ j½ÄíÙßšµ)n;›˜FZõ²êe…”,±y±y±y£i¥³ºüH–8, o}ÖHgß0þÔ¿·A³\´êFÜú§'Õ.í'o¯f¦ù÷ô@n¨ÊHµ!âùæ`­ºû÷>¯7®o\߸¢2%Eùïå¿—ÿÞÄ{ãöÖT}#qi§ÜŽÖM|Jš”xœQ9=âàºå=zOí–ÐÁHq¤ÜzSŒµÜ6«(þ½ô9SOKþxÀsv]bº½‰wÇ–l*ÙT‚Ê”,>š>š>šÂ£Y~$`NWq˜;4ñ–©yf£´]–yÞ1_Ùî^8>èªÕŸ(ý³ÿ·ƒK£ñåii‰Ûl¨±Ué"—%;\øì>6|løˆÊ”7½ozßôÇêájfý»öDòº½„{>->->-•)1äòy‘A©ÕÁÕ™G¾óÜ¡óÁN™ÔvüÅó«š—Ýv Ë4 ®Þ@ZÞ /7*Ÿå²nú8'½þvG)¬ÇbãÿÛ«f¯Lª¬»øÀŽž{çr·„û¼Aÿ‚þ(Lø`É%}¡ï§ÿ¨V1¬b˜p‰x¬;Bm»8, ¼ušØÁåfãÆe-¿Dïnç´¥ûm¥ò‘ÿ8/Ýîj Äá¼fݲ¥ÒÄæÛ;^íxµ•)Yüüü„G³„G¬tÕ·89ißtÛ•éÊz²S›¿ŽLÔzŽV’žrá‚s¡¸ÀèSG óÚk¬=€š”,·ø·ø·øÂ£©¯=Ñ=T^ÜÞܸ™sK>‰dw+wTgºd¡óö!-ù RÙffhÏY˜/»¹ÿyã?ùô6Y±x!NUäšãM<{µ8jqÔbÔ$| °„};•êÐ÷S€áßT ªÕŠïß)¾.úÚ'SW¸«‹Ï=ï+ߨ/ÐKïeÐÍAeIã»[×'Zõª¢7»®1>Ù`8Íßýð?"„i]ž*¶Qõ“w“Ý7=À,Q;ä;Ÿ‘~ J_EQ¿hbbbP˜’å˜æ1ÍcM<5BŒ~lã!nð§ ãë¼Ækùjsš®ò„â™M–¬aªòèðëÓ÷é[W$³v}V‰[ôÛØÆË´LšxOÒµgמ]{†š”,•1•1•1£©ìª÷Âlœ¸=5û÷'ËÊIÓ–lT™dºÇþWÙ]ÌUseƒ”–v9Ôe‰eíÛ}Î ±÷ì ·¿»¢)nÇߨ:tŽÞK>nâö¯¹æ˜‹š”D“Ì&™M2Ó…W¹~æýÄ'4ý{{êßÃíu;êÅ;&)G+fªfË–WQR“ ìîoF+.ï?mAQ÷ðe‹³3,óÅy hSÏÎ*l·í)ÙS²5)Yrè:§‰=]ÖÝqšf°]Üžšm|ÒwÔ|ƒÍxóÊò• dõe|L]‡)­qV¯‘Ùøw>I‰ÛYdîñÒ>X¸Ï£¢¢P“f·`·`·¨ný…t[÷µ€¿nËïžáãþ@TŸó³ùÙül¦d‰ ˆ ˆmâ]Úæ®ì[&n³!Óc oýù§f+×Cî+NÕn§—#sVÁBñLãõÇ.œì4rjšÚ?æwÖz´™™øÀzþã²6uûWäÈ‘¨Iø`ñ÷ㄾŸB -²Üg¹Ïrá àŽ¡o’£Žø,4¿x!êÿ·%çÇ^vÎîí±;Çî»Õ(‰žM~6ùÙdá1tÕ;R«Z|–3¾üŸ‹Ok±Ø Y¹‰íòGåÊ¡&%‘‘ޑޑN÷¼§ï~ÆÜϵùÅ ±{ê÷“ÖtÚÂÖÛ›x 3Þ)Þ)ËîéÂ¥ —.\Sß›¯ôì->¡©p,êŸúÿŠ[ô»\þÖC+áÞ–Èd‚ë‚ë‚ë¨IÉR³¿fÍþ&nEz%7Z¶“ 3pd_{q P›Íx†¾Ÿ¶!3löhâV¤Ü³¹gsÏ¢&%Ñü»óïÎoâ9à¼ò“NNó$%–”ç•=;·W{ÒâÙ_‰”ß;¿w~/gÑÐo­Ÿ‘d͆>ýç›B7þ“®æÖ^.“Äg–$ﯶ·ÛZá>¯z_õ¾ê=j>…X<ý˜¡ï§C‹ÜÔ¸©q³‰mOBöÛŒëQ$Î ’ØîÜêªk<_¸·¯L¿2ýÊtT£$â'òù‰¢>TjüRnºm””¥ño‹_å¹îgë8ë8ë8T£äÚ­¹[swOÒ›_¼Ý^<—<$·U}e5¡·©pov,ìXØÕ(‰Jv•ì*Ù%<¦ÝÒŒù 5âKn;%ûè2ú&¦‘":Dt@5J./w/w/wá‘}vvìr磘Å|­¶~þ4%w‘Û‡ÖåÖåÖå¢%QZlZlZ¬ð˜†'L_©oŒYÌ×m7 žÛѰ‰@0IL“„j”D ! ! "7:Yî÷»¶í{Ít}‚f(*3‹,¦ô|2Ö}þÛ–ÿ¬Æ-—+Cþ~Xóµ{á‘âÛ-:”4O¸Ÿû¨öQí£Šja€ÅBßO!†©ëX×±®£¨ËãcäÔVnÙXªøò–2-Ïý¨~®R1¤bªQr…ß ¿~Oxdy+wÖÛ´Å"ÅWÛü9m™¾ÉCá~N˜–0-aêPr=Ÿù|æó™Â#ÛEÃð€å D¶_«µ?¿3„hâýߪΪΪ΂‚‚¨FÉee`e`e <¾ ²˜cfµn¿Vkv±–ª‡p?ßW¾¯|_u(¹’¼’¼’¼„Gvýa§ ,æ2_«ÍP1Â^I¸Ÿƒ ‚ ‚ P‡’«æIÍ“š'"£ý-iCÝÝ1—ùò¶Á*=Æ=^T?ðaÀ‡¨FÉ’’ÒÄÍåæ»–¾‰™û½f†CÕV5‰ÂÍý:Óô£K(æÊúÖz»“1kd‹åÈÆŸ5Öœug½»Xlþ<{|ûE6Âý|fË™-g¶ @àï ¡¯(€ás¾hΙ2CøR¹=x®Õ,U|…7]lc¿J¸‡GùŒòåƒ ”tùÁùÁùM¼É̶À´U—~Xªø ‹“Ò÷Ó¢>ÔKåJåJåP‡¬VP+¨ÕsÔsÔslâ: Þ2ì¼ âÛ/oõ•&ª„4ñ^Õý•û+÷W¢ %Ýém§·Þ&<¾×çøiÅ!¸ýòv±GJy–Èw.Vð+ø¨CÉUµ¥jKÕ‘7ÅæOÕt{ŽÍ—·Côl§¾O¸‡o{Üö¸í:”tÁ]ƒ»w_’ØÅ³‰ÄŒæËÛ”ðý¿Ûuîá€éÓ°£˜ÄËë×!¯ƒðøªØ™*Ùýn·ÎÞÇ!o¯f¦ù¤q{g[þ6¹‹s{ïųŒ—ª·{ü¦EåVª©ÿ}.ï vÌÜ×9åÕ÷ 9Í> ”¶FÔg}yxyxy8ê„!þßCèÛ€á3ä{å{å7qÏ{·óЇäÛ ô»ôUĂŗ´}U´M»öîáëF×®¡%^… BPaxÖð¬áYáQ¾Wz⸣ _Ò’½wùÙ ÷íèœÑ9£sP€ÒáŒÁƒ3M<¿¨uw€¿?âÛ/i+÷mMÝ(ê+ò»Ûïn¿» ”tUªT 5ÊKŸßøÍr$BÜ/i=ŠælÔ:%Ü·±mcÛÆ¶EJ‡9†s ç òir@„¥6f4_Ò¨ŽyíÜÄï(ÙBÙBÙBþMþMþMT ¤Ë­Í­Í­ecóqŠOtæž¾¶˜×üÇ–Ÿ™Ñ·¯ýp3­.MÝBávÛí¶*PâE ¢QµµM\G6~ŠN§ß7þÊ„ËT¨lùB¼ÜiÕ%êé–wÂËãÃÅaógSûó¢n ç”3SÎL9ƒQÿo ôý\€á³9ë8ë8ë4ñ.yï:ÛNX¶øoíß$Ç&zUEEEEE…ÿÿÿµ'®(]QºÒĦvƒ2zû«ÿŒe‹ÿÖò­3¦¸?Qï­ª/×Ä›ùî¼sðÎAÔžt¨±¬±¬±õ•ÎÎ'ÊøÒcD¹ÿqë¶í¥áÕ½´$hIÐÔž4Yº·=¼y˜e„p:~püàøAÐ h4 ö¤É®v»Úíj'<âšj®Ç¼½å~nëÀìÎ`DnŸþ4åiÊÓT4)šU4«h–¨q¹vÚBîç¶.V“ïkÎmbÚéáኪ“>Æ% kbâд¾[̺aŽó¹í½ƒ~?;–ˆÜ^û—¿|üU'M’k“k“›x~Q󜚼Üí†õéOÜ“0ÇùŒÛaã3xî5†ñº3›Øº–CŽ!Ç ê¤Ibb¢¨ß™VÎkÜÚŠC ü÷>C²{®±U¶n›3W8\Ø}˜Y*êo~ßÖèÂÌUk· ÷§çRÏ¥žKQuÐ<À_B߯0|¾·‚·‚·ÎmÛ:·¾ÌöÞqëj‡%Œ–·ç µLîIU-U-U­†“ 'N¢è¤Ï%ËK–—šxбË2¥9²fu×ÓV¹ÃBFKÚr‚™ÑÇCÔvlvlv,êMúT•V•V•ŠwKË•u‡jë¶¼ÕöñªŸ¸B¸'§kLט®z“VaÆlâIz+Ÿçj×è¶¼uãÂ<“xQ¿‘ÊÚ–µ-ÃæÏRèáÀ‡5îo½&Ê»ÜÁL§%-æ´;îÅf¿võQ îÉ„ù óæ£Þ¤ÐjÁjÁj‹)S,¦ûáCáfÓ0Óiy{BsÝ$‹.Â=Ù#¸Gp`~2?™ŸŒ¢“>gZiu¦Ugªý¢™ê”t 6ýf:-ºV%ú*õ›¨Ïô{Ýîu»× õÍCüåú~ €á?Ê=•{*÷”¨ ¯@wÌ[çÁXÎh¾}5ÑÈ器>LeSÙT•&­ø9ü~ŽI[“¶&MÜH±eõ¼tÃGXÈhITíS£ÓÄ{ÝG»vG¥I·»Oì>±[ÔoQÇ#1{R¼°œÑ|k¹%\5n¦¨>,Š+Š+ŠC¥I«²#eGÊŽˆý€²8[ÃÑw›oWŒÏQ·Z¡|P£l±pÆ´iÓ•&Ý‚ƒ‚ƒ‚ƒ„Gß×_¿^sŠ 2pr_7Ìzšo,t_hº°‰ Bß)¾S|WTT„J“V·ÇÞ{{¬¨O¢Bç‹ù½0ßi¾-êx9ÏEIT^¿rýÊõ+¨4iÕÑÑÑ]»»vwmáÑ×ï9Ñ;Tó–´….ÕCšø4Ÿ¼jòªÉ«PiЀ¿ÜÅSO]<…Ð÷ëB _$D)D)¤‰É†á•ƒŠ!u¶S¹›cQ£‰ûÜó§5ôm3p†îzµÄ&‚«w£ß~‡êúÜ[uoÕ½U¢>ÌnŒŽ«tè„E Qí¥QIV™¢zïõ’×K^ã­¥RŽÀà˜î3ÝgºO¸´> ˆó/Är†ÈûÜížÆ˜‰º‚ö®Û»nï:ÔØàø£ãŽ?¹tk«,”ôŠj=4g›h5±\Ø¥S—N]:ÕuD“n¥ÛJ·•nuKêçiž†¹¨6o„_œÓ‘/F9y ójìG|&øLðá°™nü@¹²þbºûZÌ}„Û†wFî7\•m¬T›Ñ'×L®™\ƒêúܲ»ewËNävÐ'#bª1÷Õ—Ï™¾iŸÈý»„ëAç’Õ#%ÏY9ùVqˆ{?mÇ{Ä(êg‰úÍsGùŽòe×ã‚Ö­ Z"ëáŽïǘ}Ú–«ôêÓ]ä,rô‚Ñ F£®~¦¦¦¢êa™Í”Þ=+0n#¦Î8*ú“¨¬WY¯²^¨®DzÉË&/›,ªÚF‡’‰˜}ÚZYwî/‘ïž?eÊþ”=ê Zð×òésÀ}¿`ø ²r³r³rE}mÚoêÖ`j„eŽÆöì_{Yþ)ª¯xýxýxýPQ?šºµukëÖê)é)é5ñ<½ÑòJŠ«“+Üb™£D“øÕõgQWÐÐsCÏ ='H$PW?šØôØôØtQµa±fùÝX+,s4¶:ñûL¹\X W W ‡ŠúÑÉÉɈª §ƒãöjô^5.w¯µ>¢ßñgÿ2~+ª¯¶ynó܆©éjòíÉ·'ßU/ŒûÐ{=fCµ§®pWs9¢©ê&ÜK²ûd÷ÉT}©ú*êG“æ™æ™æ)ê Š{»zÙ9̆þ~ãoкýú¢úŠÅÎbg¡¢~4S>¦|LQã«ñÕøÂU¡t¶gW9Çwû–¥.ÀlÈþç?=®luùOñŸâ?EP%¨T¡® åƒxB _Ížy{æí™'ê+Ô_ýûYLú‘;ˆ'CÒmFˆêŸp£p£p#TÑì9ÿ9ÿ9_T…ôëáÈëú¡ÖåÚ ·Ús™ã}1}­²V¡úuyoQ½ô~Çûïw –~P777ÇO?}üt‘ M\sáhڼء×yìãçDõÏú}F)ýȘëÌu溨 ñè<[VkòýÎNL¢MûŠêŸAÁƒ‚ó÷ò÷ò÷¢–~L?$~HìâÝÅ»‹Èï*o§MTs¹ÿcΆzNós?ä÷Ö L³VTÿ<\ópÍÃ5¨¥YTUTUT•¨ 9·`‹¦%ó#G¿IÛOYËŠêŸ –,7X¢Š~dO Ÿ>)U!]Ólõú¤:Í> œñƒ¾§môRò¢ ¡à£øDT/UzVzVâf>øl€Aï¨>Ù4xÓàMƒQ?Ð(¦CL‡˜¢ª¥o—Y“´äVYä¶îúãD¿³FŸ?f²LTŸÈsòœ¿€_À/@kΚ³æ"càƒ6'ûôp¼·Ï"Uázê×àÏŒ«2o •vŠê™'¶OlŸØ¢~à¿A â 0|eõ~õ~õ~ƒòåÊõ¥js•³·!OhÞWGº;êënZ)ªÌÚšµ5k[=¨zPõ T|êì½³÷ÎÞU9újßTìøæéUw—Ò½ÌñøðÙ³½xÍ/¡¦ÍL›™65Ÿ*±,±,±l¾rLÇ.(Ü åïú]}À7í~w³£ÇˆÜ’tvÅìŠÙ‚˂˂˨øÔÊ+;¬Ûޤ¶|ùüÛ«¬Ì¤;ú x×ÓЧùß'//¾¼øò"j>uÛó¶çmÏæ+'7Äo¨“ºtφJ+&»q”ל¯"òñ]â»ÄwAÍÀ§j‹j‹j‹ÜÂÜÂÜÂDUÎŽq‹Ç›Ò2cûÚI휨&3¥¯ÛÞ]aŽ&Ñ¢úÁ¾À¾À¾à£ýGûx_)üÉ'vžv*>ÖYmpÕþôÎiÄPéžÙènp?UÕü'rVHVHnB€/‚Ä`ø&>º|tùèâù‡çžˆú‚5jµÁtÍc%}6IÓ2ÇÇ¢©:n/g%[ ×Y(êÜ C C CËëËëËëQ- Ê1çcÎÇœ›Ÿ¨df*·•¾ÅŽ+J;ºX/iþÜikÚš¶F€(¯æ½š÷j^óUÔÃk”Ϭm½þˆåg|”ª;ÜÛý9ùÊeå!ú2f»E{`f`f`&666ªšp\p\p<$ $ $@ä$´®µü€A4ßì¾TE¿!¹iÖ^ÁËNé˜6ÿ;ä©÷Sï§Þ(%cMÆšŒ5ÍWÑ—-ûH_ô{ç/ßWŽ®ÍŸ{L\L\LêD©¨¨p–q–qù–úñ¬—¥ÖÀªÉÝþ¦ÙPM—”}naSó†SÝEnçkU`U`UP5¨jPn(‘w8Üáp‡æ[Ö¬ž|DIú¢_“GóûoÚü¹§,IY’²u_0ˆ'Àð Õ¶©mSÛfTâ¨ÄQ‰ÿò Ÿæð½vG$~™ÃÚ÷ªc¹X™€ÎEiïÁ½÷\9»rv%Ü¡EΞ+/~^ü¼-‘——×|EM^iRÐ}ìû“ê]ë$w6Ä÷š–æþbG—(c•æÏ÷èø£ãŽGm@KÔøÖøÖøz{{ÿË­±U‡åìWKzô{óh|µƒ_ógêYãYãYó!ìC؇0T´ÄIÇ“Ž'ÿe–ÝsϘÀyÙN—4¤Ÿ”à·üÞÝó#èFzdú”6¾×M®›\7AmÀׂÄ`øæø>|¾Ïò¹Ëç.ŸÛüׯiþ¦ïµ[¿Ý2ÑÐ噤,sT¤<êâkãÞãAóg7}×ô]ÓwÕu¯ë^×UŸ+]/]/]¯ùë<ªs¿ÎÝR7íϳ YË—FYÝïÜ÷Óï§ßOG=ÀçªìUÙ«²×@¿~ÿeA­çDÿ+sKü÷ç¥YHÊ2‡mä–ýç·vl]æjÑüÙíº½ëö®Û¾€/à£*àsÅ=Š{÷è_® %ö§•-ç\»rØô¤„¾+7Üëiõ»ÝÊe:—›?;GSGSGÓÒ“¥'KO¢às=­}Zû´¶ó•ÎW:_i¾ÒN·ÐÛâ£dE¿Y+GîµÏ×W¸%·¹ù³£.S—)¼t>[Æ… ÿµø¯Å5_c³´F×ñ.íDnp+)³¡÷¡t°+Þõ±]tw7vs’æ$ÍIª¨¨@UÀçJ^—¼.y]ó5&-ÿTÑÍâñŠâƒ1ö¼ïÂyl¹Ø’U…üü|lø _`O€áêÜês«Ï­nɲˆtǾúÏK¨‰û\uÅm£|YÀÄ>vŽwaTÕ’s9týÐõC×1úðå ó ó óG0Ñ|Õ¹nµÙ®’]vä£Cœ¸-pð_f”öý5eü¾»_õ×h'+þÑü¹ *T2¨¤Ì¤Ì¤Ì5_‚¿š¿š¿zÃŽ ;6ìhÉooÃÔéÛV§9‰Ù“2DÜ8ìFµ»t®»ÉÀ‘c2[r.)6)6)6¨ørY»³vgínIÕÙGù¹©;Ìw!?˜-·ÐwùöÛIVŽ~uQyz¿·ä\–·^Þzyëúàúàú`Ô|‰Êñ•ã+Çû³þ¬?Û|Õ©}Pp’³¤4¼{Ûìo¸>-Úýš¸Í‰îõõÈ1wpû:ê2ÿr.QjQjQOxOxOx¨ør'gŸœ}rvK~{o˜:{›Á»Ò@2Û5RÜæDe|ºƒë³-¥óÕ +[r. æ æ æ}ørÏ ž<+ÐýM÷7Ýßš¯:•BskG«óÉ‹ÛlÈé]쑌Hó±KÍö†ËUv¡ñ¼ùs1cÄŒ3ÊýËýËýQð- ñ„¾Ç×ÍùÏæ?›ojjÚ’©N‚Y•öÁ{‹G•;¾ø^ OFqéõrÑRëí=fµä˜»%wKî–œ÷2ïeÞKŒ8|]õõõ™ÌF¦%Õ¨Ÿ£ó“b×Äí[[YýüÝB_ŒyîÏð#zšëËGÊm‘‘mÑÍu>ÔYà'ðøaÜáëÊPÌPÌPìÜbº ¾#fºÙ÷ßaxõê÷Zæ°ôZ5äð4u%G~-:òá‡?þ°D­D­D #_×ûMï7½ß4Ña¢ÃD‡–T£±Û~•.S$02ÿ^¡ïÿÌ19ç‡,Ñ6kùµÏª±j,® øÚÞ Þ ÞxuâÕ‰W-¯ÆX_÷ Ócug§Þtô½æD—WyéY²Ú¢þ«òº–óÊ~+û­ìWÛ¡¶Cm ;|]O‚ž= 2kgÖά]Kª1ØÃo‹Îöû#NnpZÿ½æD¼N?ée=/pL¦îª–³^ˆ^ˆ^È#ÇGŽ1âðuÕ ®\78R)R)R©%Õ¨èÒýO=Ó® ¢|¿[è{æÀ³ô †¡‡Âÿlù§çÑG;í ¸$¸$¸„q€o0ˆ'ÀðÝðóó'´Kh—Юóg {`[Þóq¦ÙÊÞWp#Ч¯Ã×]ÚÈîãsÈ!¬ñ)äÏ=¶=*{Tö¨ÔûÔûÔû`”á[{ÐçAŸ}lllZ^¥Ãº]×èÎ}s­åÅâ^wæë.m<¯½ðÄùý±ÃkíÌ9·»™]nù± ]1tÅÐ…+ W®ÀøÂ·V½¡zCõ†¥¥¥–W©luÕÇz]Çý²à…µÇÚÈ3¾òÒFôíéÚæçÃzÇhÝ ãïú¹ŸD—¯\¾rùŠ FP#¨Á(÷ÆÜaî0w>·J澡 q(ÓPaùÚÛqV_ùýÁ³­/½4U­üIç ê´îùry-?¶%K—VN©œR9ã ßÚ›ñoÆ¿?–K¥[^¥Žw5y*Fqw=š|zn ãlùugCeŽ“6¸^¼4¸µÕ¿q<Í-?6ƒÎ :ßyyçåÜ ß\ƒ AÐ 8<ûðìó?÷“hÅãiÃô6]/:|Çþª€Ÿ™ñµãÞ{âuÔÂó¦Õ·ûÜcÛŸ³?gNƒCƒCƒF¾µ\í\í\m³b³b³â–W©Úy‡N«MNÏ#¶î³ÏÚ™FÜøÊ¯¹Y½eÇù5FÆA÷#‚»,4:kÝ·åÇæ{Ê÷”ï©×­^·zuoøA â „ Ê×—¯/_iiiÝù ŒX§WªÁFT8ŽÐ{ä˜§Ž¹Òåþ^òÖ™ê¡^¶®ìÀ¡Á¶#®Œö µ^ŸàùÜ|ýzs§  ~K R5ŸÊEËŒïüè¿ýwß[|oñ½ÝÝ]Œ&|sss‰P"”Uî®Ü]¹û«dûYfÖ]/Ч£ûrorØ8“ƒ‰·ÔZµ¢]w¿µyÂ1ñ¶ÇÈÂ]m¶ží°¹­åìh6ÔÑør°œßTµf{õ½”âþÛ×ÌÎÌÎÌ.sHæÌ!Lø^^lz±éŦ€ € € ÿVɲ[•ÊTl5¹èxù÷ ð§æV•Ír\nÖu±ãÎ@óùKï}ln»äòž×¦£<Úîk˜ž®ÛaĸÀ¹ª¯¬&õ6ÿ’OÀÝê»Õw«× ­Z3£ ÿ{µ{k÷Öî=¸öàÚƒk¿¤’ ‚œ³»»›ÌÈì–2¢r½Lÿqô^}ý؀݇öš<%¾­áª‰ì3ñ»5©gÅ ÑK:j/³5© ¬¢NÉ>þoÿÝQ'FuâIü“ø'ñMø^nÅÞŠ½ëdïdïdÿß*ÙHCå™âÁ ù@í»;®¸Ü3îs:cÀˤÕ"›@nÍж1ôUï6uçÓMµòÜG¸Ý6•[¬nÝc{¯”n TöÉõ{¡òBå…JþfþfþfŒ&üï•å•å•å­ZµjÕªU_RÉ>f—4µÖþ>³ÔÀàèðˆ s§ËñÒÖX¹½¾¶ž¬éÞ`[¯+­vüj½à¨ ¢Ì<`ú¬4ƒé¾¹ý~Ò\)cѹ¢óÐÿöß K K K*m_Ú¾´=F¾ƒv‚v‚v—“/'_N–‰“‰“ù³{åÊæoºßÜüíÉ3–阙»u¡ùKô÷˜šÇ†ý³Å,>äí®Æ%sü6­Õ«Ÿ2G«£gê( E¥î{nùoÿ]ww÷kn¬¹±ƒ ÿ{€Aø–|K¾%ÉD2‘ö§íOÛŸÏ+È«½W{¯öYÓ²¦eMœœœÇØøx~úùéç§g/Î^œ-ΟDqNqNqNÌ>˜}0èø¨‰¬‰¬‰<ápÂᄃBBBx^A³ÛÌn3»Í“þOú?éQ1R'¨ÔÝ.º]t»È7Û7ÛWL?‰LLL®®¼ºòêÊúÚúÚúZ ˆw5ïjÞÕl[¿mý¶õâü]nSô¦èMÑ%ýJú•ôèøh8Øp°á ¹‰ÜDn² ² ²ÓÕ¹aÕê‡Ug[d[d[ ‚Œ|/€A‰æyÍóšçu{Âí ·'`\@²ÜÛuo×½]¡¡¡ßë r]ïºÞuý¹ŸÎýtî§ÊS•§*Oa\@R”´.i]Òúpïý÷6z`ôÀèÁ÷ºŽÖG­ZõÔé©ÓS'Œ H ~*?•ŸšZ‘Z‘Z1!pBà„ÀïuI“8&1yUòªäU >6|Ä耤xÖæY›gm6%mJÚ”ô½® ½z;õvÆêÆêÆêï*ÞU¼ ãâ0ˆ'„X i“7[¾-ß6¯]^»¼v1.1.1.ÞvÞvÞv_ë e¿gýžõ{¶ãÞŽ{;îÝ™|gòÉuóêæÕÍCσ4)r(r(r¸À\`.0ÁžÁžÁžêeêeêe_~õÙsdÏ‘‹ªU-ªâåñòxy%›K6—`@*î|¸óáÎõ¬ëY׳6Vo¬ÞXíœïœïœÿµ>‰üRýRýRãVÄ­ˆ[‘Ÿ—Ÿ—Ÿ×ø4z¤ÉÓíO·?Ýž––6nãæ~­+Èž¶§íéµSÖNY;%}Dúˆô•a•a•aès&¥K7–n¤]hÚeiôÒè¥ÑF§ŒNúò+HÅEÅEÅezîôÜé¹çäÎÉ“{ùêå«—¯Ðç M¦5Lk˜v/â^Ľˆ=Ý÷tßÓ}pæàÌÁ™_ë“h ï@߾тhA´ çcÎÇœõ¡õ¡õ¡èy&¯^+¼VH,I,I,™);Sv¦l×=]÷tÝóåWAƒ6mBõBõBõÈ-ärË»mï¶½Û†>ø\€AÚGJJRŠSŠSŠSv¥ìJÙõÊë•×+/ô @Ë]ó¾æ}Í;Ù(Ù(Ù(M#M#M}ÐrêÔ=¨KÑKÑKÑKõKõKõû8ôãÐxS/@‹Ôª?T(u[ê¶ÔmÉï“ß'¿¿Ûãn»=Ð3-—aŸaŸaŸ<%yJò”k*×T®© OZ®Ä¦Ä¦Ä&%;%;%;å|Êù”óo¼Þx½ÁªÀç¬*X]³ºf•Ü/¹_r¿´º´º4ÜÞ ðÍ!€¤`)@J €¤`)@J €¤`)@J €¤`)@J €¤`)@J €¤`)@J €¤`)@J €¤`)@J €¤`)@J €¤`)@J €¤`)@J €¤`)@J €¤`)@J €¤`)@J €¤`)@J €¤`)@JüOàäÖÉ­“[wøa4椀$`)ñÃÀÿ<ù§äŸ’Jn•Ü*¹ÇçøŸkà¸®Ž«ãê¸Z®–«åj¸®†«æª¹j®Š«âª¸J®’«äʹr®œ{ϽçÞse\WƽãÞq︮„+ኹb®˜{ýáÞp¯¹×Ükî÷Š{År…\!÷‚{Á½àžqϸg\WÀpO¸'Üî1÷˜{Ì=âq¸‡ÜCî!÷€{À=àò¸<.Ëår¹\î.w—»Ëåp9\w›»ÍÝænq·¸[ÜMî&w“»ÁÝànp×¹ëÜu.“Ëä2¹t.KçÒ¸4.»Æ]ã®q)\ —Â%sÉ\2Çr,Çr Çp GqGq$Gr$Çãx»Ê]å®r—¹ËÜe.‰Kâ’¸‹ÜEî"w»À]à¹D.‘;ÇãÎqg¹³ÜYî4wš;ÍâNq§¸¿¸¿¸¿¸Ü îwŒ;Æã¸.;ÂáŽpñ\<Ïæs‡¹CÜ!îËÅr±Üîw€ÛÏíçös1\ Ãíåör{¹ÝÜnn7·‹ÛÅíâvr;¹Ün·ƒÛÎmç¶sQ\Åmå¶r[¹-Ün ·‰ÛÄmâ6r¹Üzn=·ž[Ç­ãÖqk¹µÜZ.‚‹à"¸5Ün Î…sáÜ*n·Š[Á­àVp˹åÜr.Œ 㸥ÜRn)Ê…r¡\Â…p‹¸EÜ"n!·[ÈÍçæsó¹yÜœ7’Éä†sùáÜ0n7Œóæ¼9on7„ æsƒ¹AÜ n7€À àúsý¹þœ'çÉyrœçÁ¹sîœ;çÆ¹qnœ+çʹr.œ çÂõæzs½¹^\/®çÄ9qNœçÀ9pöœ=gÏÙr¶œ-gÃÙp6œgÅYq–œ%gÉ™sæœ9gÆ™qfœ g™pÆœ1gÌr†œ!gÀpœ§Çéq=¹ž\O®׃ëÁép:œ§ÍisÚœ§Åiqݸn\7NƒÓà48uNSçºr]¹®œ*§Ê©r]¸.\N™Sæ”9EN‘Sä8N“ãä89N–“åd¹Î\g®3׉ëÄuâ:p¸\{®=מkǵãÚq¿s¿s¿s¿q¿q¿qm¹¶\[îîî®5ךkÍýÌýÌý̵âZq­X+`lÛÀ6°õl=[ÏÖ²µl-û‘ýÈ~d«Ùj¶šýÀ~`?°•l%[ÉV°lûž}ϾgËØ2¶Œ-eKÙR¶„-aKØ·ì[ö-û†}þa‹Ø"¶ˆ}žb_±/Ù—ìKöû‚}Á>gŸ³ÏÙ¶€-`Ÿ²OÙ§ìcö1û˜ÍgóÙ|ö!û}È>`°Ø<6ÍcsÙ\6—½ËÞeï²9l›ÃÞaï°wØ[ì-ö›Íf³Ùì ö{ƒÍb³Ø,6“Íd3Ù 6ƒÍ`ÓØ46½Æ^c¯±)l ›Â&³Él2Ûˆa–a)–b)–dI–dy,å±WÙ«ìUö2{™½Ì&±Il{‘½È^d/°Ø l"›È&²çØsì9ö,{–=ËžfO³§ÙSì)öûûû{‚=Áž`±ÇØcl›À&°GØ#ì6žgãÙÃìaö0{ˆ=ÄbcÙX6–=À`°ûØ}ì>6†acØ=ìv»›ÝÍîf£Ùh6šÝÉîdw²²²²ÛÙíìv6Šb£Ø­ìVv+»…ÝÂna7±›ØMìFv#»‘]Ï®g׳ëØuì:6’d#Ù6‚`W³«ÙÕl8Ά³+Ù•ìJv»‚]Á.c—±ËØ06Œ c—°KØ%l(ʆ²‹ÙÅìbv»ˆ]Ä.`° Øùì|v>;—ËÎeç°sØ9l0̳³ØYì,v&;“ɱAl;ÎNg§±ÓØiìTv*;•ÌNf'³lÀNd'²Ù ìv;ŽÇŽcDzcÙ±¬?ëÏú³£ÙÑìhv;ŠÅú²¾¬/;’ÉŽdG°#Øì0v;ŒÊe‡²CØ!ìÖ‹õb½ØAì v;Èdû³ýÙþl?¶Ûõ`=X¶/Û—í˺³î¬;Û‡íÃöa]YWÖ•íÍöf{³Î¬3ëÌ:±N¬ëÈ:²Ž¬=kÏÚ³v¬kÇÚ°6¬ kÍZ³Ö¬%kÉZ²¬kÁš±f¬kÊš²¦¬1k̳F¬kݬ«Ïê³úlO¶'Û“íÁö`{°:¬«Ãj³Ú¬6«Åj±Zl7¶ÛÕ`5X VUgÕÙ®lW¶+«Êª²ªl¶ Û…Uf•YeV‰Ub•XVU`åYyVž•eeYYV†•aeØNl'¶Û‘íÈvdÛ³íÙöl;¶ÛŽýýýýýým˶eÛ²¿°¿°¿°­ÙÖlkögögög¶ÛŠmÅ#`˜¦©gê™z¦–©ej™ÌGæ#SÍT3ÕÌæó©d*™J¦‚©`*˜÷Ì{æ=SÆ”1eÌ;æóŽ)aJ˜¦˜)fŠ™7Ìæ óšyͼf^1¯˜WL!SÈ2/˜Ì æ9óœyÎ0Ló”yÊ“Ïä3™‡ÌCæó€yÀä1yL“Ëä2¹Ì]æ.s—Éar˜æ6s›¹ÍÜbn1·˜›ÌMæ&sƒ¹ÁÜ`®3×™ëL&“Éd2éL:“Τ1iL“ʤ2©L “¤4~)hü5ÀÐ ÍÐ ÅP Å Á á1<æ s…¹Â\f.3—™KÌ%æs‘¹È\dÎ3ç™óL"“È$2g™³ÌYæ s†9ÜbN1§˜“ÌIæ$s‚9Áœ`Ž3Ç™ãL“À$0G™£ÌQ&ž‰gâ™8&މc1‡˜CÌAæ s‰eb™Xf?³ŸÙÏìcö1û˜½Ì^f/³‡ÙÃìav1»˜]L4ÍD3;˜ÌæOæOæO&Љb¢˜mÌ6f³…ÙÂla63›™ÍÌFf#³‘ÙÀl`60ë˜uÌ:f-³–YËD0L³†Yìa™p&œYŬbV1+˜Ì f9³œY΄1aL³”YÊ,eB™P&” aB˜f³ˆYÄ,d2 ™ùÌ|f>3™ÇÌcæ0s˜9Ìlf63›™ÅÌbf13™™ÌL&ˆ b‚˜éÌtf:3™ÆLc¦2S™©Ìdf23™ `˜f"3‘™ÈL`&0˜qÌ8f3–ËŒeüÆŸÍŒfF3£˜QÌ(Æ—ñe|™‘ÌHf$3‚ÁŒ`†1ØaÌPf(3” a†0^ŒãÅ b1ƒ˜Ì@f ÓŸéÏôgú1ý˜~ŒãÁx0}™¾L_Æqcܘ>L¦ã¸0.Lo¦7Ó›qfœgƉqbœGÆ‘qdì{Æž±cì;Ɔ±alkÆš±f,KÆ’±`, ÆŒ1cÌSÆ”1eŒcƘ1bŒ#Æ€1` }FŸÑgz2=™žL¦ÓƒÑatF›Ñf´-F‹Ñbº1ݘnŒ£Áh0êŒ:£Îteº2]UF•Qeº0]˜.Œ2£Ì(3ŠŒ"£È(0 Œ#ÇÈ1rŒ,#ËÈ2™ÎLg¦Ó‰éÄt`:0˜öL{¦=óóóó;ó;ó;ó+ó+ó+Ó–iË´eÚ0m˜6Lk¦5Óšù‰ù‰ù‰iÅ´bZÑ|šOóéºn ëè:ºŽ®¥kéZº†®¡kèjºš®¦«è*ºŠ®¤+éJºœ.§Ëé÷ô{ú=]J—Ò¥ô;úýŽ~K¿¥ßÒÅt1]LÑEtýš~M¿¦_Ò/é—t!]HÒÏéçôsúýŒ~F?¥ŸÒOé'ôú OçÓùô#úýˆ~@? Ð÷éûô}:—Î¥sé{ô=úCçÐ9ôú}‡¾EߢoÑÙt6Mß oÐ7è,:‹Î¢3éL:“Π3è :N£Óèkô5úB§Ð)t2L'Ó,ÍÒlã/š¢)š¢Iš¤IšGóh}•¾J_¥/Ó—éËtD'Ñé‹ôEú}¾@'Ò‰t"}Ž>GŸ£ÏÐgè3ôiú4}š>IŸ¤OÒÑÑÑÇéãôqú}Œ>F¥ÒGé#ôúGÇÑqôaú0}˜>H¤Ò±t,Kï§÷Óûé}ô>z½—ÞKï¥÷Ð{è=ô.z½‹Ž¦£éhz½ƒÞAÿIÿIÿIGÑQt½ÞFo£·Ð[è-ôfz3½™ÞHo¤7Òè ôz½Ž^G¯¥×Òké:‚Ž ×Ðkè5t8N‡Ó«èUô*z½‚^A/§—ÓËé0:Œ£—ÒKé¥t(J‡Ò!tB/¢Ñ‹è…ôBz!=ŸžOϧçÑóèyôz=‡žMϦgÓ³èYô,z&=“žIÑAt=žNO§§ÑÓèiôTz*=•žLO¦'Ót@O¤'Òé ôz=ŽG£ÇÒcé±´?íOûÓ~´íG¢GÑ£hÚ‡ö¡GÒ#é‘ôpz8=œF£‡ÑÞ´7íM¡‡ÐCèÁô`z0=ˆD¢Ðètº?ÝŸö¤=iOÚƒö =hwÚv§Ýh7Úv¥]iWÚ…v¡]hgÚ™v¦{ѽè^´#íH;Ò´í@ÛÑv´mKÛÒ¶´5mM[ÓV´mE[дmN›Óæ´)mJ›Ò&´ mBÑF´mHÒ†´>­OëÓz´­G÷ {Ð=h]Z—Ö¥µimZ›îNw§»ÓÝènt7Z“Ö¤5iuZV§Õh5ZV¥UiUZ…V¡UheZ™V¦•h%Z‰V hZž–§åiYZ––¥ehZ†îDw¢;ÑéŽtGº=ÝžnO·£ÛÑíèßéßéßéßèßèßè¶t[º-ý ý ý ÝšnM·¦¦¦¦[Ñ­èV”€Pªj ¨zªžª§j©Zª–úH}¤>RÕT5UMUQUTUIUR•T9UN•Sï©÷Ô{ª”*¥J©wÔ;êõ–zK½¥Š©bª˜*¢Š¨"ê5õšzM½¤^R/©Bª*¤žSÏ©çÔ3êõŒzJ=¥žRO¨'Ô*ŸÊ§ò©GÔ#êõ€z@= îS÷©ûT.•KåR÷¨{Ô=*‡Ê¡r¨;Ôêu‹ºEÝ¢²©l*›ºAÝ nPYT•EeR™T&•AePT•F¥QרkÔ5*…J¡R¨d*™Jnüúßø±O5")’")Å£xÔUê*u•ºL]¦.SIT•D]¤.R©óÔyê<•H%R‰ÔYê,u–:C¡ÎP§¨SÔ)ê$u’:I NP'¨ãÔqê8•@%P ÔQê(u”Чâ©x*ŽŠ£â¨CÔ!êu:H¤P¨Ô~j?µŸŠ¡b¨j/µ—ÚKí¦vS»©]Ô.jµ“ÚIí¤vP;¨Ôvj;µŠ¢¢¨(j+µ•ÚJm¡¶P[¨MÔ&jµ‘ÚHm¤ÖSë©õÔ:jµŽŠ¤"©H*‚Š "¨ÕÔjj5N…SáÔJj%µ’ZN-§–S˨eÔ2j)µ”ZJ-¡–PK¨*„ ¡S‹©ÅÔBj!µZ@- Pó¨yÔ”åC FP#¨áÔpj85”J ¥†PC¨!”åEyQƒ¨AÔ j 5Hõ§úSý©~T?ªåAyPT_ª/Õ—r£Ü(7ªÕ‡êC¹P.” Õ›êMõ¦zQ½¨^”åD9Q”å@ÙSö”=eKÙR¶” eCÙPV”eEYR–”%eN™Sæ”eF™Q&” eBSÆ”1eHR†”e@Pz”¥Gõ zP=(]J—Ò¥´)mJ›êNu§ºSݨnT7J“Ò¤4)uJR§Ô(5JR¥T)UJ…R¡T(eJ™R¦”(%J‰R (Jž’§ä)YJ–’¥d(J†êDu¢:Q©ŽTGª=ÕžjOµ£ÚQí¨ß©ß©ß©ß¨ß¨ß¨¶T[ª-õ õ õ ÕšjMµ¦~¢~¢~¢ZQ­¨V$Ÿä“|²l È:²Ž¬#kÉZ²–¬!kȲš¬&«É*²Š¬"+ÉJ²’,'ËÉrò=ùž|O–’¥d)ùŽ|G¾#ß’oÉ·d1YL“EdYD¾&_“¯É—äKò%YH’…äsò9ùœ|F>#Ÿ‘OɧäSò1ù˜|Læ“ùd>ù|H>$Èd™G摹d.™KÞ%ï’wÉ2‡Ì!o“·ÉÛä-òy‹¼IÞ$o’7Èä ò:y¼Nf’™d&™N¦“éd™F¦‘©d*™J¦)dJãâ_ãt¿ñCžlDIWÉ«äUò y…¼B&‘Idy‰¼D^"/È äyò¤éCŽ G#Èáäpr89”J%½IoÒ›ô"½H/r9ˆD$’Éþd²?ÙìGö#=HÒƒìKö%û’n¤éFö!û}HÒ…t!{“½ÉÞd/²Ù‹t"H'Òt H{Òž´'mI[Ò–´!mHÒŠ´"­H Ò‚´ ÍIsÒœ4%MISÒ„4!MH#Òˆ4" ICÒÔ'õI}RÔ#õÈd²©Kê’º¤6©Mj“ÝÉîdw²ÙìFj’š¤&©Nª“ꤩFª‘ª¤*©Jv!»]HeR™T&IER‘T HRŽ”#åHYR–”%;“ÉÎd'²Ù‰ì@v ;íÉöd{òòòòwòwòwòWòWòW²-Ù–lK¶!ÛmÈŸÉŸÉŸÉŸÈŸÈŸ! Ÿà|¢ž¨'ê‰:¢Ž¨#>‰D QCÔˆÄ¢Š¨"ªˆ ¢‚¨ ʉr¢œ(#ʈ2¢”(%J‰¢„(!Љb¢˜xC¼!Þ¯‰×ÄkâñŠxE…D!ñ‚xA¼ žψgDQ@Oˆ'Äâ1ñ˜xL<"ˆ‡ÄCâ!qŸ¸OÜ'òˆ<"¸GÜ#î9D‘CÜ!îwˆ[Ä-â‘MdÙÄ âqƒÈ"²ˆ,"“È$2‰ "ƒÈ Òˆ4"¸F\#®)D ‘B$ÉD2Á,Á4A4AAxàWˆ+Äâ2q™¸L\".—ˆ‹ÄEâ"qž8Oœ'‰D"‘8Kœ%Îgˆ3ÄâqŠ8Eœ$N'‰Ä âqŒ8F#ˆ"8B!ŽñD<O&‡‰CÄ!âKıÄâq€ØGì#ö1D Cì!ö{ˆÝÄnb7MDÑÄb±ƒø“ø“ø“ˆ"¢ˆ(b±ØFl!¶[ˆÍÄfb3±‘ØHl$6ˆ Ä:b±ŽXK¬%ÖDA¬!Ökˆp"œ'V+‰•Ä b±‚XF,#–aDF,!–KˆP"”%‹‰ÅÄ"b±ˆX@, ó‰ùÄ|b.1—˜KÌ!æsˆ`"˜&f3‰™Ä b1ƒ˜NL'¦D HL%¦S‰)Äb @Ä$b1‰˜@L &ã‰ñÄxb,1–KŒ!ÆcˆÑÄhb41ŠEŒ"| _—IŒ$F#ˆÄb1ŒF %†C‰!ÄbáEx^Ä b1ˆH $ý‰þD“ð$< ƒð Ü wÂp#Ü7•p%\ Â…p!œ g™èEô"zŽ„#áH8„aGØv„-aKØÖ„5aMX–„%aAX„aF˜¦„)aJÆ„1aDF„a@ú„>¡Oô$z=‰D¢¡Cè:Dw¢;ÑÐ"´-B“Ð$4 BƒÐ Ô5BèJt%º*„ ¡Bt!º]%B‰P" EB‘'ä yB–%d B†!:ˆNDG¢#Ñ‘hO´'ÚíˆvD;âwâwâwâ7â7â7¢-Ñ–hKüBüBüB´&Z­‰Ÿ‰Ÿ‰Ÿ‰VD+¢Ïãóø¼^¯WÇ«ãÕñjyµ¼Z^ ¯†WëæUóªyU¼*^¯’WÉ«ä•óÊyå¼÷¼÷¼÷¼R^)¯”WÂ+á•ðÞòÞòÞòÞðÞðÞðŠxE¼"Þ+Þ+Þ+ÞKÞKÞKÞ Þ Þ ÞsÞsÞs^¯€WÀ{Ê{Ê{Ê{Ì{Ì{Ì{Ä{Ä{Ä{È{È{ȻϻϻÏËãåñòx÷x÷x÷xwywywywxwxwx·y·y·yÙ¼l^6ï&ï&ï&/‹—ÅËâeò2y™¼ ^/ƒ—ÆKã¥ñ®ñ®ñ®ñRx)¼^2/™—ܸl߸\×øµðÿô„¾qÈC|€€”@Œ¤`À %#)0H À€@J F R0`€€”@Œ¤`À %#)0H À€@J F R0`€€”@Œ¤`À %#)0H À€þ_{÷Åõ€}\i&DA)‚ Rl(¨ˆšDK4¢±GˆXÐXcEE±¬±ÄŠš¨ ˆ½F1Qc¯¨(6,°ïã{ÞÍ»Ìfvwø~æœ9]îܹs‡ï³3AL @"€ €H00‰ & ÀÀ$‚˜€D``AL @"€ €H00‰ & ÀÀ$‚˜€D``AL @"€ €H00‰ & ÀÀ$‚˜€D@VE)Ú§¤½L~™ü29qFâŒÄÝZwkÝ­µûj÷Õî««'VO¬žh7Òn¤ÝÈgZœiqFwJ.ËBæ„Ì ™SE¯ô]Þwyßåü@I¸7ùÞä{“kߨ}£ö ¡·XV¶¬lYùÙÍg7ŸÝ,é­ß¹s?æ—ÿá¸è¡·=GèEBzíu@¦J€D+•„K±—b/Å:Wr®ä\Iõ0O»%ƒ˜˜˜· iÒ6D¾·Ì4ži<Ó¸tê0bÙˆe#–éP¿­$«$«ttÀÑG ß<|óðÍþÛü·ùo³ïbßž‹ñã5Æk„/ß4¿ÖüZókƒ³gÎ>”y(óP¦Ðže¹ÎÓݦ»Mw“?‚íÚ´ ÐZË@o€X rÏçžÏ=ïÐÆ¡CuÃU¥å…×5ײ¨eQËB•cQr%C@ dMÉš’5E±ŸÌ_2Éü%¥S‡ÕT;PM»ýVx2uÐçƒ>ôyIœ¹BÈ]Öêœp,áXÂ1ù2 Ó Ó Óù]Õ€X ”‡ˆÞÞÞÖ]Xwaºí_r%C°ç‡=?ìùaQGÍ,ÊÏ;MmEˆÊŠó{€ãŽ*É*É*8\¾‡¯.ÍÞ:>t|èxmõ[!Fˆˆˆ/é/phêÈúRçד^Oz=I±Láe㜂P00€µ@ùì¼Çºë~¬»®•ŒÒ?ûJ³&ÂSÂb G ‚äÉ“7*öÕ¥6Km–Ú”N6|·á» ßi÷Ê¥8[­¢&¡MB›„®½nôºÑת\«r­JÞȼ‘y#…?¯¾vúÚéž#:óÑ™¢M¢M¢M„ß'6‡lÙªžX=±z¢Ðs‚k× ®¹òÒÊK+/½L~™ü2Y•šO@&ÎHœ‘8#È3È3ÈÓYæ,s–™F™F™F O.Úw±ïbߥ˰.ú [Ü|qóÅÍU/_ªç޼¦ùMó›æ+öÏ1ÕÇTS½øåëK8ýõé¢õ!6VܺØÏù{Îßsþ.Îy±ç‡=?ìù¡$Z[÷ÏÁ)«SV§¬ÄêpaÝ…uÖ+Gpt@‡Šê-¥?±xbñÄBl+–•-+[VÖØ•έ«úK•õ±Îb„{ž€ê€ € R”¸nôºÑëFk*n4¸epËàVqmKÿÙ¯¢mQzðÓgOŸ=}&<‹©Ù:Ô «V3L³ÇNõ½žý`öƒÙ”žXS¥]ºt9¨yóæÅé3ò3 ÛžÒîð¾Ãûï‹ß'«–¯Z¾jyM ý:wC® ¹2äŠâ^ox½áuío¥yæ9ÛÊ7¿9øÍÁÒüݥʶô±ÎE+Øþaû‡íç^ò€ € á(±tž@%.ýöìôØé±“¯½¯½¯½nö uÛÿ]Ûwmßµí7»ßì~³U©°¦J“‹Ïõ¬ëY׳Â+‘Cæ„Ì ™£Ù~hUΪœU¹â}¯©:—~+iª´’«gÑÊœõé¬Og}ª|.ÒÝ¿ìþe÷/ªoEødÏ/z~Ñó ±’­ÏYŸ³>'ÌdYÒ}[P=±zbõD!8æ=óüÌó3Ïoﺽëö.!+Í~¥;¿J¢åׯ1^ó‡Ë.¸¨2—¶üL¢ªÂcUê¯JiÂ\ÅeçÜå?Ê”¿.‡m¥yò ò òÛŠð²eÍîðå_À’^•;é|Òù¤³Xùcª©>¦:wt@LxꫤŸÔTi¥ßJš*­äê©niwÖÞY{g­òXÏÞ>{ûìí"Ö¼’¬’¬’ò:{8îḇ%Ý·…×_«r­ÊµR ·Êr,?ï²ff´I´I´‰fÏJu_3«ïçNÓ¯š~Õô+±/I”µØ;Ð;Ð;Pl+ÿXþcù¥f÷Nx—†ØýÌüÌüÌ”ï£>ÖY¹·aoÃÞ†‰•ßâL‹3-ÎpG00TF®\3¸fq†n…W¡*ßJë¹­ç¶ž«©:—~+iª´’«§º¥Mø}Âï~+m™Ñ2£eFůó›È7‘o"ÝW»¯v_­¸•Zµ,jY”\ é,s–9ËîÇܹ£kgŸþÖDyiuç×_w¾º%Ë?+,ÆÜÛÜÛÜ;»]v»ìvêÖyÇž{vìQþ¼²êuÖßsçÅÎ;_ˆ¾p»ÕªV«Z­*k°ð[Bl+|ù<òÑìÞ=ìú°ëîʿ°¢|õ±ÎÅ9î†é†é†é¼``¨4Œ.¼z±øÛ’Ùiqî €Kºdå¯ïvÉqÉqÉÑl;oýßÖÿmý_é?‡*ôIÝ<ûô·&ÊK›QgFuÔ-SxfQyÉñ—ã/Ç_.Zÿîöw·¿»ÿL×÷sç@µÕT+'¶wlïØÞúråÒÔ¶ê쨳£Î±­šjë寗¿^^—Ï>ý­‰î÷ð’;ÓõýÜ‘ÿ ¬è”Õ)«SVºåÒìdsÈæÍ!±­sßjvïž–{Zîi9±-ZŸ³>g}Nù>êcUqÂï„ß ¿Ò™´ú‹˜ÿ1ŒþÄâ‰Å Ínñ~Ìý˜û¢O&Õ¾QûFíÀ%QOÕË©Q?¢~„î„XNNNšmç§Ïž>{úL—Ï>ý­IY€õýÜ©³£ÎŽ:;tùk¥h`ÞÀ¼è˳Ûe·ËnWšWIùúH©ÎªøÇòË,ŶRoR½Iõ&€˜ÿ1Œþ6ìmØÛ0ÍnñÕüWó_ÍÛ¢aºaºa:pIÔSõrL£L£L£t'IJzfõÌꙆ۹fÁÔÖñÒµš”åXßÏå¯.‰'Guáw²rÊŸê.‰÷ddMÉš’5El‹MB›„6 U¾úXgU/QÛŠY[³¶fm €@L -ÀB™b[4÷6÷6÷&.‰zª^ŽÑN£F;u'Ä’¯.´séô+ý­IY€õýÜ©š[5·j®Xiï½ß{¿÷ÖýsG³gPÇÇw|,¶•ƒV8XA³{·¿öþÚûk‹m±}ýöõÛ×W¾úXgU¼kû®í»¶b[1¸epËà0€ € …W@?òyäóÈGl‹mÚ8´Ñ¡¸’¬’¬RY €•Ï)<í­¾ª í\:gŸþÖ¤,Àú~îÈ?C©è±Óc§ÇNºîhö ±lIJËĶ’¼1ycòFÍîÝ꽫÷®Þ+¶Åaû‡í¶_zuV…Ћó2”ÀÀøaô’xQ䥨K±—bŶèèè¨;°ðÊÓ²»¥¹¥¹¥‰•sãÖ[7né{ߦ†%W“²ëû¹#?‹ª¢ËA—ƒ.éþ¹£Ù3hQÇEuÛJüåøËñ—5»wãOŒ?1þ„Ø“z%õJê%½:«Bèb[‘Ÿ›»;€²Œ˜ÿ1Œ¾õÕÖW[_iv‹›nj¸©¡Ø»vîÚ¹kgÝ €ÿ±üÇò˲· iÒ6D¬œ“Î'O:ë{ߦ†%W“²ëû¹Óh{£í¶‹ÕÿX÷cÝu×ýsG³gÐÁ_|!¶•;TìPQ³{'”)úç_|!½:«â耣ŽÛJãyç5žG ``üÇ0úØ7cߌ}£Ù-Æ ‰3Dl‹Óݦ»Mw+N5;ø»õ[ÿ·õe-Žk×(®Qi~- ôû65,¹š”åXßÏo~sð›ƒbõO‰K‰K‰ÓýsG³gÐóôçéÏÓKéµÃJ'0L7L7LWe[úXgUìþe÷/»ÛVç•Wv^I ``üÇ0ºûj÷Õî«5¶±J²J²Jö]ì»ØwÛâþÚûkï¯]œ:kvðwÈ•!W†\)kð¶¬mYÛ²ÄÊ ëÖ'¬fûáí]·wÝÞå9¢ð%õNêÔ;Új m}ú[“²ëû¹3rÜÈq#ljÕÍâ5‹×,Öýs§$ΠÒÙbzJzJzŠò'wUß–>ÖY9aöb±m _/ã¾ÀÀPi€XSC·û‚÷ï .þ3I¥SÛ;_ì|±³$ÚG÷ã±ÇN;‰•cpËà–Á-ÍF,bÏMV-_µ|ÕòºC–ÎÙ§¿5)˰¾Ÿ;Ê玻oî¾¹ûôåÊ¥Ù-&ÎHœ‘8Cl[ñññÅßJÿoûÛÿ[±­,´pÐÂAÒ®³r ÇŽ%ÛÖâæ‹›/nÎ}€ € Ò0z‡÷Þwx_œ­ä;ä;ä;O¤‰m%Ú$Ú$ÚD•ûj端v^¬œµÓ×N_;½ø-3þÄøãO”ÍX•Ò4<-÷´ÜÓrb[i™Ú2µe*°~Õ¤,Àú~î³üŠ•9èóAŸú\_®\šÝâµwÖÞYk´Óh§Q!_ ªžX=±zbq¶{óÏ›ÞüSl_„íÞM¼›x7QÚuVNèb[<Þþxûãí¹¯00Ôx¸8ÃÄÊ_+*8é|Òù¤³*¥Õ›ToR½Ibå4¼ÞðzÃë/“_&¿L.ZmT;Pí@µ’k}‰ÇŽütä§#?•\¯x×ö]Ûwmƒ<ƒ<ƒ<ÅJÞÔpSÃM u¡5JÿìÓßšëï¹ó6ìmØÛ0±2½½½õåÊUúÛýö·oûö7a²uK~V¬äaû‡í¶¿$ÎGݬ³¡*nËd²Éd“ÉÌþ 00Ԁ埻U¥d!¢ˆíÛ;¶·ò’ûlí³µÏVÕK:>t¼*uÎ=Ÿ{>÷¼ê­¡8¿ aºaºazÙ €U)³jnÕܪ¹ÊW9BÈ©œS9§rÏ/z~Ñó ±’Ïk<¯ñ¼’«¹îŸ}ú[`©ž;%ñ k]8Rªf\{¦V^yy¹òÒ„wc(…²ðœî½É÷&ß›\vê¬HøR—Øå¿ Á}€ €ðÃè=&zLû×Ý¿ìþe÷/÷cîÇÜÉ™72oä?–ÿXþc¹Ôf©ÍRå?+¨eQË¢–ѨQ¢T¯ófëÍÖ›­U®çý:ï×y¿ptÀÑ ÂPòÕW\m°üõò×Ë_Ë¿.UÞ꽫÷®Þ[–à'O,žXÔÙQgGª´ƒ0ããÅ…^\ø<ýyúóôG>|ùdNËœ–9mºÛt·énª|Õà´ÁiƒÓºÖ¥yöéoM€õýÜ™2xÊà)ƒuù ÒV¬úÖ[ ·n1¼•q+ãV†üURø²‘òiäçµ-ésG7ë,/c}ÆúŒõb[œúýÔï§~ÏÀÀøAaaØWˆi«h”ðÂÆÃI‡“'©=L\IVIV©J c`yg>:óÑ™¬žY=³zVrm.<¹>z}ôúhÝ KúìÓßšëû¹#„ÐÀůCq ¹2äÊ+šÝ}¬³`öƒÙf?ÛnÖ”¬)YS¸£€€˜**Ÿ­ÊY•³*Wüb G G Ç?\þpùÃ¥8ÃÄÙí²Ûe·“Ùiñ /8ýª °¾Ÿ;‚øËñ—ã/+nÝ6Ù6Ù6Y»ç‘.ÀŠõ©Q?¢~DÑŽ©ðå€=?ìùaÏ¥ù³ÔYé;?„wup/yÀÀ("ù—=6{ÒìI³'uç×_w¾ÑN£F;Ú8´qhÓjU«U­V Â_ýÿêÿWÿÒ™—qÖ§³>õiÈœ9!s„š1­P7û.ö]ì»4¿ÖüZókë¬;°nzJzJzJi%·­Ò=äøðáÂøÚûÚûÚ ýÁ0Ý0Ý0]x…¸±wkÝ­u·Öó—Ì_2‰f¿  ¿ç¿Ot§Å”—¯Ù­ëþ¹s­Êµ*תT-_µ|ÕòºüE Ý9³ Ì Ì Ì…­G9´Å™gZœ±i7Òn¤p WaÖù­´Ð*õNêÔ;ÔYÌ¡ÌC™‡2Å^{~=÷zîõ\~7@004FŸ³ä¨•~›Óò€~;b5ù¡ñhÌñ’ê5Hwê,|UK±&ßþöíoßþÆ5Š€ €€¨vnعAlîἑy#óFÒJ( o"ßD¾‰žƒWì)q)q)q´Qò¯æ™~”¦ßîþv÷·»ŠýÍ«ŸW?¯~ô=ˆ!&ÿaë«­¯¶¾ROèÚ¹kç®i”¡w)öºíG¶Ù~„ö€``ð_*É*É*)Ž'í4Úi´“g1¡Y9•s*çTVìo>^>^>^ô7(GL Tr°ÂÁ +ð"h”´‰K'.¸T±|qðÅÁ´”#&jPU0kkÖÖ¬íc§ÇNhÇ‹'O,„%ßÇ„?ÀW   `` †û1÷cîǘ{›{›{ó04k´íhÛѶò=ÊÂÑÂÑÂñAÔƒ¨Q´TAL Ô¦8¶`2Ùd²Éd‚:ÐsjÄÔˆ©#߯ÖG¯^Í×  :``PDÌ M±lIJËä{QTxTxT8= ê"&Eô2ùeòËdalÁÇËÇËǫřgZœ!´ƒêžÝ|vóÙMù^Ô¡b‡Š*Ò‹P4ÀÀ$‚˜€D``AL @"€ €H00‰ & ÀÀ$‚˜€D``AL @"€ €H00‰ & ÀÀ$‚˜€D``AL @"€ €H00‰ & ÀÀ$‚˜€D``AL @"€ €H00‰ & ÀÀ$‚˜€D``AL @"€ €Hð‡2T^kiÉÔÒrDKËQ--ÇJ}9®¥å„––“ZZNii9­¥åŒ––³ZZÎii9¯¥åÏR_.hi¹¨¥%KKË%--iiù[KËe--W´´\ÕÒò––kZZ®—úrCKËM--·´´ÜÖÒrGKË]--÷´´Ü×Òò@KËC--ÙZZiiy\êË--9ZZžjiy¦¥%WKËs--/´´¼ÔÒòJKËk--yZZÞhiy«¥å]©/ïµ´äki)ÐÒ"ÓÎ’^NKKy--iiù¸¤`,`ÉÀ0€²C²pvpvpvð¡ô[2´´0'1³3±îÏF\væ!.;3—¹‡ÿÔÒRvæ.;³—ù†ËÎLÃÌ1,½Ù…µ5ÇpÙ™]˜y…™Q˜¹„™E˜Y„µ5‹pÙ™?˜™ƒ™3˜Ù‚™'˜y‚µ5O0337°ÎÏ œ••%Ù'€%$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚PÛúeë—­_6$dHÈáÏ×_\qý-í"ÔVEAúÇé§LË@»€µC7j#†n"ÔF ÝD ¨º‰P0t0 6`è&`@mÀÐMÀ€Ú€¡›€µC7j#†n"ÔF ÝD ¨º‰P0t0 6`è&`@mÀÐMÀ€Ú€¡›€µC7j#†n"ÔF ÝD ¨º‰P0t0 6`è&` C? ~œ±#cGÆŽŒ3g2Îö}ìŸoþ|óç›DY¢,QÖ.´]h»Ð*Òþxûãí'Y'Y'Y_œxqâʼnùùù´<úâaׇ]vÝ=s÷ÌÝ3ÇŽkÕª…U‹âß'Ô¹VçZkÃÏ ?3üÌ>Ó}¦ûLMx4áÑÚ}ñn軡ïs¾Ïù>ó.λ8ïbàÍÀ›755ªÐѳ£gGÏÅÍ7[ÜìRÅK/U,ð(ð(ð å˲ì¡ÙC³‡î Ù²'dèÚ¡k‡®µžc=ÇzNñû›PŽP¦P¾°-Ú%hLþ›ü7ùoÒãÓãÓã»oï¾½ûö*ZÒ+²Wd¯ÈÃÏ??ü¼àpÁá‚ÃtÁÈ;‘w"î$ÜI¸cRˤ–I­Ò¿O°|lùØòñ» ï.¼{ÑýE÷q\ЉQ…rùåòË¥ý/íiÿëò¼Ëó.ϵ5ªÐ§ZŸj}ªí|´óÑβ޲޲Þ©º÷ù½Ïï}>?{~öül³Éf“Í&—~¶+ÔA¨ÇÅG ŠåqàãÀÇÓ§'NO¬¢ÃfO=uöÔ'yOòžäqÔ(Û ¶lKŸž>=}ºß ¿~7tó>¡Må6•ÛT>6娔cSdCdCdC8v”Žì‰Ù³'NI˜’0%A—GæõŸ×^ÿ§sžÎy:‡£¦ÇÌdf2³Ìy™ó2çù—÷/ï_^7û›P7¡žB9tP0P[Η9_æ|———R´Ùª®UFUéše_ßrÜ û¨µ²€Õ Ã÷– užæÜ©GpZµNa{’ƒÝÝ{­ý& ¼¡ÏäϽÿ°·q©?ݲvqn£ããããããŸ^zzéé%Ž&v@v@v Õ8Õ8ÕØbšÅ4‹iE»^W?QoPƒ±Ö^íFvÏ«Ÿî1jAƒÈ!×fŽvy›ºp]à qÖ‹÷¹dƆ,¬ÕÀ~ˆùŒ õ{ö.÷Ó'µ“Û¬ìºÐ8·Î!‡/‹¶]{c{c{ã#å”?Ržƒ @IxlûØö±íÈ‹#/޼XÄÿØï7p38oÑÛǽM›ºsÂ좗;FX=i¸sÖ½æµoØc”뢟¶ÿI¶¨¹óÊûæŽtü²ÿÀŸïØæ†ºü`díåÞªqF&¹OrŸäž;5wjîTަÈ‘åÈrÒ¤/H_`sÅæŠÍ•¢÷ÚN ¶›ú^ìµ³ÖÚŽã÷ÖyÙ}hb]»+½¬t³Ïës-ùo‡ Ÿ…¿>#|^øÙ¢mW¨³Pa_8¤P0PI~“ü&ùM–þ¹ôÏ¥ª{«:þR§úž§’B*41—É"#[µÒغ 2²U«:÷öÚ7ö/»éêÖmÕ UƒV Ê—åËò9ÈËÕæW›_mîèè¨Æ+ﺹŸoþ•ÓõÁÎÓ¿ö|?×}oœ¯ïŠÇkjíÙhö¡Ýß:U8gJ®i~ÃqÞ?©^·vÚ5j×èæõ›×o^çøPïCÞ‡¼I2M2MR;³}j2àe£J6®¢ÙûßF+ÆOv3·`el†~íóZݺ­«¸®âºŠ« V¬â(ëšëV×­®[ùŸò?åJõcêðWóàëºöKH°sñöЮ†=âã³²ÜÝ5µÊʶ¥Æ“Á§üOùŸö‹ã å€À¸â}ÅûŠ·]Œ]Œ]Œ*7£C#U¶¿Ü­–¯»†ã^•×}ÛõcŸ©Ñ­]®£Ò+¤\*ºTt©x­ÿµþ×úsÄP]~üù=æÎ œ£RèkhgöÎrSîàÈé‹}}V,=~DÃøª¬ W˜·rüý‡“·T0ö0)§JÍ?[ülñ³‚¬‚¬‚,Ž;ª»t÷ÒÝKw­Ò­Ò­ÒU¹æZçµ?Ýó]ãWÓÏok¦…ûß+Žwo:9zcÕ¼Ö!­U©³G¬G¬GìÍa7‡ÝÆ×®ÇÇÇÄ͉›7«ôÖ™¹æN³»š'ØÆ÷ÌZìn¯Ù¸W¥uϬÅîöB„ú¨Rsa…ýå¸C0µ®áº†ëªrÓ93Ço³Ã‹§½Ï5¿©­ÐWlÙÛ»ù¤iý| 쟨²/›m´iGåîo¹¿åþ÷÷÷ÿøŠ˜ÉZ{ë†oÝÖŽï»ú”¯çŠ9ÇS´5˜[ÈÚbE“ã­]§Ž¹½<À¸³õ%»ÿøêX+ÿVþ­ü_z|é1IðVžXybå Uþ'n7©gçç7I^8(ÕK‡î|W¬8~Ükßü™L°}Z}À UöeÛ„m¶Màè—¾ìÐìÐìPßa¾Ã|‡ýÇËœÇ975vìµñ­ãÅø®Y îvZ}ÅÖ]³Ü턺 õT¾/Âþ ûN€<`ð/ïÃ߇¿œ28eðÌï;ôD#7Û…ÏbÃË7/еÐW4 ®ÜÛ´ùµ]MêtT¾w#ùëÈ_óGäÈA¯@ÞÉ…'ž\¨ÊhÃQ£f/*еa\åk— ?>ÿ©*{wáÁ…Ð÷Îúõ;ë¨Q ¢üÇ̦_?ý~P“ÛIiÞúrŸà5vÞÅßç[Uö_ù­­ò½3dÌ1C B B Bè%íì_gÿ:û—*÷o½V\²¿«Cq¯ k¡ÎªìÐô€À¯â^Å½Š È È ÈS~CyzmHD“0} }ÅÖÇ_vþÌk‚ò=íÝ1ºct^h^hߣ@–––ö³ôõï<%*×Ç}é÷™‹õ+ú•_{ÏYÜ=£¼Míàoz­U¾¿iÓ6¦m¤oðbЋA/5mß´}Óö¢΃^7Z6qøºƒú{Ÿ ¬]ãÆü¾ÜPù}B—í]¶wÙþ¶ÂÛ o+ÐCJÂKþXòÇåG¡åÆþ·­Žq=W¥‘™~E¿òk¡þ¾(ß_¡Mè ²—A/ƒ^5ºÑèF£b·ý.9´¾“W£ïÈ–qúýʯ_Õì³·å=ÓœÌk·Ûw¿ª~Uýª¾þ:œÞ(›¶xmñÚâ¥|°É5|Lÿe¿êû`n!ÏoýjÁAåû¾7eoÊÞú  lÊ}Ÿû>÷½C¬C¬C¬èKwÛþfçc°äiægRºOhò(©SZ WïåSÄö=à‹€/¾xÓìM³7Íè-š²ó£íüHùZŸ©Éþ3ô7ô[ û¥|ß…ö¡Ÿ”eÀ”io¼Þx½ñòºáuÃK4ú]´ å' ey‘}[µ”Rôû¯õ‘ÈoZyÎû®Ù§¢ßk×2î탷Þò²G@²ûÒîK»/‰]«ý`ºÑ|¿çª‹=†Ò‹~å×#fFìh£| íÍ!›C6ô@Ùñ:èuÐë —O\>qùDìúè`ÑkÜ+iß'øÖ^ÑúxH½QÝ¿*ú®” «AWƒ®¾{ö>ŒžSÊŸú5,oœ[µçðÍ©C]r¤ýʯ…}ö—§¡ˆ€2ªàFÁ‚aaab·‰;>ªÕÈL²¡¯Èzsÿ¶Ÿ¹f‰µIøÇá‡,›*›*›J/HÛ‰›'nž¸)vM¬áéÓ¨·iÒÍC&Ò•ÊÇ}áX£5V›l3ÅZæâÌ‹3/Τÿ¤-?7?7?·cJÇ”Ž)b×Dç #þœ»°ìÜ'kÇMŠk“™2dÊÈÈør¹Ú”Ïõ[»·óWÆ£lOìw«.íèW~-쯰ïÌ yÀ”QÓܦ¹Ms»5LiÝ~‡»AY‹~å×Û†·›â–*Ö>s^Îy9ç%½ U÷Nß;}ï´hôÛÚ±f£ Þ'–d<,kCºb`YÒô´ F ¬ÆÚþ"ÖJO’ž$=I¢/¤j¼ãxÇñŽb×A— 1ãT*›÷ ÂÚ©ÞÀì©}ÄÚ'ihÒФ¡ô"Õe‡f‡f‡*~ãòO?wÛQv¢_ùµ°ïÊc`¡ éKe0eNÚÀ´iÅn7ö|èZ¿,G¿òëÕZqÙ&ÖVGŽ  G¤$¿\~¹ür®\¸>(ä…Ï»k&X<ð¶YTþPÓ²<¤û!¶OÌ9 úRè€Ý»v˪ȪȪЯRò{àᅧ]Ø1›Ï}‚°¶ï߷͘bmu2ëdÖÉ,z”rŽŽ޾Ã|‡ù{ásY{êWùÓÀb/…ÚPhOúUY@ @òÔ÷©ïS_±ÿxLìçmUÿ$¡¯âztcO£zÏÅÚí¹ósççÎô.€4Ìœ9sæÌ™bW=ÏŒ„É{3˜û¯¹;ÌÈÙ¾E¬Å–]6vÙXú@<*x$:T½îÝÖù‹{ŵõª ôïV‰µÛË //¼¼@9qsâf±Ö+ sýmn`±ÚS7õ®Í»6ïúp¬'®›¸n⺜€œ€½("`Ê>y}òúä)Þü57©½­fü'«ýO÷*®ßïŠpöŸÜ8Êb·É ÅÖ‹Þ½5z+½  ï.Ç^޽+6Täºfl“å{À[»DÄÔO\$Öz·¼ýãíéc}×õI×']Ÿ(^éjnvÛâׯ÷“åÏŽÝç®@qíóõÒ}G*M´jmÛR±õbªÇT©NïRtÝêºÕu+±û«>S“ýf÷Š­…ök=¡muçXçwÊï”ßIô‘Âà"! L8±÷ÄÞ{Ån¤TêùO³ê½Ê×wü¾Ú´‰Xžëq®Ç¹ô4€^š*›*›ê5×k®×\Åkœm^h«œºUéùžéAqß(¶a‡í¶wØNGè¯Ãi‡Ó§‰ýØkܼK¿/àNà?ÞÒ~ÆÃíëÄÚ0ksÖæ¬Íô´ÉÉùŸò?åJ±­ZnìÛj!¯*k¡­ÛPh[¡uá€Ë?û«a°ê€¸‚ô‚ô‚ôºÑu£ëF2ã¯eà)ׄ»ª¯W­l]Á%¢ç¢úºöuí+› › ›@¯è—ýû öˆ ²øT_"Ë4cÐV•µ·Ç¢¦‡f‹µä±#ÇŽ;Bè—üMù›ò7Õ¬]³vÍÚ…ÌøÛfHÜÌrܨ¾®ÿ*ür\”bKú}â÷‰ß'ºÈiWú‚ôé Äî©F¯9kêö˜pW•µÐVb-)´³.q!ÐÂÝ**# VމÛß}÷ýÝo’’Mwÿ\qß?XWõuþÔˆ1þ)–ÛŒ›W;WÈ­óÛô·éoéu}Q`U`U`e``RÈs« ß®³ô3jÕ];ÇŒðJ8«Øž.Æ.Æ.Ʋ}²}²}ô=€¾ØÝow¿Ýý¯kÕOÖÖàgßÚ+އrõWãuУ—µk™»½Ð†Šm+´¹nöÂàâ @²Îµ<×ò\ËBææù¦ÖÉKd‘D¹E^ŒìÔÊéaÍ@ãk…ÌÜó6ëmÏô€çgžŸy~VÈn³ŸƒÖ¶`p¶X»7âÎ,YTÈ|ÀI’:$Ñ÷ºï„ã ÇŽŠ×2Óÿòâ©ßâ­VÔ:nSm¸iºùUž|5øjpÙìuþåýËû—Wl“È^ß:^$Ê-ÎZhÃBæ.ï_Þ¿¼î÷ Â`u YáQáQá…Ì+“1þ땞• q‹¿ÞÿGG³Æ“[8Ú,Ú,ÚŒÐe7Þxs âUÌhšUgÛ_ϳïbp¶X/x|³<óض* U7Ø*¶svÓì¦ÙMé‡]Ö%¤KH—Å«˜›Gü竾äZ¯i#Úßž`£ØÂ1bÄ (kýíÞç÷>¿÷y!/Ÿkîd0;Þ'«‡{-BÜb­}²z¸×ÚS±…ö×—ÞB¬ `$èUÛWm_µ»ÝÉoñ²ò["]Ž]/u=àó®$jû2¹ÏŒ9ª·Ì»™ýÒüýÅ>™w-ïZÞ5z#@[”_Ѧ'LO˜ž ø÷ .ó˜í¥_ƒ§¦õØb$¿ºS7‡#Q &œ­¢&z/@»žwxÞáy±ë”Ïóå;Ž%‰]û”_ãD¿8Õyéá#æõl»¾ü¶º¥íׇ«Ž7\aôÂÐËÜÅR¦k÷ÞMu9´­h{ú¯rdKvþ]¬„w•ÞUzW©ìôºùÙó³çg+¶CWó;CíF§Êµð™¸9§=Ýf«òIí®…öT¬›ÐþúØsƒÅ A©)©)©)… õ¶÷ÝîÐM/¥kªÎªÀŠÛ¿®IÍúNŠŸ9²üÈò#Ëém©R$Þ-…:@¬©u“OGíßU´cAhËÞ¨½Q{ y£˜Ýó^bÚ)¿ö-µ¹ÕqWøÞâGªº«^g›^L¿_«ø³§k®uºV™èpOeOeOÍ&›M6›¬Ø£ìN¤¹™H#Ö…XhOÅZ í/ ýíJ„Áò€ ÈìÈìÈB¾5ùO§n×|7(ÀùÝüWɯËf,ß2B;dM õ©­|[—rÃþñªø™a†]vÞЖ_ëÿßr{áí…·*^¹Ì_5¹0K_Ÿ¨Ë°°®ÑѱI£ÍŠmþhߣ}öeMÉš’5… ;zÌï1¿Ç|Åk“GÊ,!ªÀ>Û—e/¿û)ÃD‹ok~Ê&4Xöý÷³S=7-ö6HÊL{©›×wù}t6ÅèWë¢À–NŒ^·GñgÇ„Œ Rú[öÐì¡Ù…Œ«8üÕ<¸Æ:]xjV¾Vãì.Ä5:$¿Vü¤ð÷Ñî»ê6ÈÔÍ瀅¶-dš’¡ÙC³‡J£_ )g Μ»‰)°ŽHñÿ[1Ö¯™wK:Vw[ïwF4ðŸ,úìÎBÙBÙBz& ô‰E‰¿ þmðoƒ¯YÎ凜M\"/‚Ί:üóWŠm~ðÜÁsÏ]ºt9ˆ  òç/Î_,ú<«ÑŠZÇmT€Õ SBô«ïw#ª·€Oó¥?gUüYã'ÆOŒŸÈ^Ë^Ë^K»×í Ù²§Ù¦»öKH°sÔµXõŸ\~O sO}t¿„;Gź ÇBz}¬l†ÁÀHJvvvvv!Ïþöžß ~íÅç\ €5µ­§õÿ´,dè6çBÎ…žhX”1%bJD!Ï›zæÌýjopI¬=Ìf´ÝvY±ÍGwÝet`€î¸7ïÞ¼{ó¯Jµƒ§‡¹©å-®ìe'Ö5ܺør·ðüëç_?ÿZÚ½nèÚ¡k‡òìáSº±(Ñh‰Ñ£%Š×,ŸÛË>ÖÝçÆò¸c6E5Ÿð}͵n ýœª3}`ñUÕñ†+Œ^ϳYR¶µa»rÝ»7žöKüÖ%1„*¼JÑ¡C¤yüƒBêp¨Nû ›úÁ?ô:â¹;¡ÛžÞ¥7¼·aI”e¹æí:üeTÛòK›MU¿5¬lÔØèJíoê.3OöºÞºµs»á¿&ÔÚð_{Ôté˜ÌTÅ6w1u1u1%èŽÔi©ÓR§)^•,:iVgÍÀªG/šºš;ÅE¿ž¶ßlfã¡Í¯TÛRó'‹£U3r5ÞZ=®îH'¿ºUBgþ0Ó{à¢GéÕ½»(~\Iï´QåK¸0ë¬ ³¤Ýë¬çXϱž£¸ïcŸ]¨Ùh+pI¬…¶U¬›p,ÊÎoÎÅ €Sït ôðµp4êX­i5ÝÊèq×ïNIÀF; êW Q^“:;Lj¾¸°®K²÷NÍÀg·‡Ú7)äåÛÉw“ï&ߥgJŸb”øfÛ o6(^­j\uzÙø~“ W¥Žªãö©ï`Õ¯òއ~Ø2ù¤¦†e½Þ'vÝ?Ít¶‹ƒ×!5êÐwÀÔIß”Ä0±åZ/ ÚýÝÕëcþ£WûVÓ¼›.êrhÛ¿f73Z䨬1Ñè¤ðyÛd“£ú³4rì›±þë­ž&îîÒÖ{ÌÁs<>ûÆËÌ.Axú¶$^Ñ,Ê Fù{t­7~_pð÷Ôßî¶ûÆmE´‰ë°:Sª–¯Uå_{]`±Ëÿ/MÀ>î•×,Mñ“±á±á±áôL@éSŒ³½²½²½ ù‚Ô§êô ü×ÀèQƒ.Õ>ªýõ€¾9.ßÇÔHœèš=®úŠ?í¼¿‹ÑG–ý× p·iO·œ-VàZeEåã•Í*4ú£é¿^höÈcAËoí_ô{3nkÃѧ—Þ²Ïè×oìöšÙû=,éç„lîüWÿ0¡Láùã:K¾.è÷«Ë'?¾œÿ•[òøž«;\Žúóg‹YN·ŸU^ËC-·ýœ Ëz?íý´÷SÅ«R“?“>MÍ×ÇW@[:5ÿ§ã|ùò…÷y8Ys«ªw)6l›O¨X …¼@æ\õ†“J.6¸UÕ¼Êö?\:Lnì$_ù?ÿÚ¬—k˜º3«¿©Ð÷tËmŠŸì×)®S=Pú£Ä¿ëý]ïïzŠW+ëàνþï“Á‹ª6ðw9ë»@&? «8D+¢šŠ]6šòËOò¥ÕÍë5ØWù+"m&u˜Ó»YIÀÆ3<¶Zà’q¨‰û°)F¿Z+¶¶>Ù>°g°X}êíìž:¬0@—y<÷xîQÈו|6/»r4^¿à†kãLo’/Y˜`BùÝEÝEa­¢3J?öþ~QzzÅz$õHê‘$ÕþvmÛµm× Kéx0~o—À%½ÚY±†Âqá÷¡@Ã``$¥NÅ:ëT,d±E¤u«šE €üôÍžûg»³u˜<Öû}+U~J1$ÖÔsÀŠ¡ì÷WîÔÎP¥|ùŸjÓ·ÎQs_MÀ>iþ× ymÔö†Ûn§gJŸb”xì豣ǎ*^­L“\¼î ®u¶ÙÞæêÎÛ'¼´¹8C´æž¿ûŸR·4ŸÎK1fáÕllÛ¹së¨3%×=viÐ8UJV¬Õé€ò¡î¿:®ÿ¡ëä^À]fœkœkœ[HÙxÅ”ã›ô+žôý0Aƒ©g}•®æ7–ÇëT½½íÇñ¥û,_¶éhkÅü²ý²ý²¥ÚßÎFœ8¡¸×݇&Öµ»B\Òk¡k(~*Ò¯0XkpPŠdÊ¢Pu#Xå?•ïÑÍÕœ¿›¦;.)XxFY•ŸM‰kÄÝBþEÖÊk¥z,ÛÜÊžÐGFö–õl>¼¾XþÙ_åë&õhÝøÞô5Û>õX13gÇ›â Ñm²J³½)Ô¡AÂÐðYvª›g°Ulmáì8êÃ×¹.ÄmXU´!ìêquG:ù ï6ü¯„oèoýbhò¹ihÑ®ƒÚ €…«°P¦sÖ½çu(ÎÝ…òŸ-~ìûÕŠÏŽBô>²ÒÍ>¸¤×B;ÓßJǮͻ6ïÚL 4¦zCƒ”ª›”? «nû´\ïaÍרÖÑ»ñ¢åŸøÿêœ8¦ºg„mèxûŠ–Ñµ,Œ6VûQ¬>%ßÊèq×ïŽ*?ûe·¾ËT¯•ðÓÈðV-èo}çÑrƱíc55ëžJ/<\²xt†½|Oû%~ë ÕKpn7üׄšò%h`ÈXä¹u~i¶Ì²¹ðg¿‘ëæ¿ ô‹¡­Y®åfý €}¶/Ë>ú¯y…ÉÔ¸»øi„_Â%ÅÖ(Á¸ÎН÷¥¿ ú\KþÛapI¯…v¦¿•Ž·›Þnz»‰hXñŸ>eÕ9«ÉG*Ö½eñ³0ç®Ø¶\Ïš÷2±éõÈé—Ú3 ©I Ào"û¾lyT•Ÿ}=©oó–ÝT¯OÊïãKªdÜ+ÍØãô¬q;wþ«KΰW½„F=~^·6E¾„âתêoF®Æ[‹ßžòåð0@éãÀ»IŠs‡ÓhúD¯uÃ[ƒ'€KOó°ô”¡'€Ó?faaaaaaÑüRëD­µN(Þdàê‰ÿT=ôaø²RÍ·ÕÛŒ?ÑÄ®¾ûÎ AûýtµA·!¾ïÚö[ïï®vtZŠO_Ïíþ—߇§pª¯úc•‡ÊkUü9€ëQÿ‹ú_Ð3YXXXXJ‘¿ ³¸æâš‹k*˜ð ›Óx÷ÃÒ €}~^zä¯ ûî™nø[5žÑY?âìܹš €=¬cìL„Ò„97óa`·hk¡±9€×Å­‹[§ø÷ôa–Ò_Œ¼Œ¼Œ¼ 2õj`Ï; OöZÊ—©îÀ.n#'Í?Zš°ØÀ®/\_¸¾j[a°Â`…â^3°vçæ7¡Ø²;vwìîØÈ"?ŠüHõèWø|š”ÿ§þOýŸ*Þj¼kÑo¿[Ñàv¶qæ…O~ÕéNíŒóˆ]þ)/áïn]ûød”N¬úÀû‚ƒ/¸§ÊÇØš €ßTè{ºå6ÅOvŠë×)Žž Ðî›·„¿ù»Þßõþ®§|xµÂh略ª Sº¯š²ö×kvý¿{÷£•]f¯Z#“|«¬¨|¼rÑjåëÐ uè«YwUÿY;ïï"GôÑllöÈcAËo?Ü3¬qvîÜâ—Yog÷ÔaÍÛürÐå ËA…ÝoPÚ<ž{<÷x®xUòÙ¼ìÊÑxý}´èª^BýNß_Œ=Sš°÷÷‹ÒÓ›(–Ð#©GR$©ö·kÛ®m»VÈXJǃñ{ë¼$.éµÐÎÜ…*'·×M\7qꡯðùÒ}å )ѽ¢{EòdI΋ރš¯)ZlÖÖp©ÁŸÂ'uÿvW=u£Ö’€…XZ•Ÿ ™Sÿ7K᧺ ³·LÖTüèã^yÍÒ?NÏ”>ÅAœl¯l¯l/åCV§ʇº«2LYûnÛÝV?e’Pÿvà Ũ•¯ƒé—ýMTš‡Ø§óÒÃGÌûÙT´ûS³°Mh°ìû ÚÄØÏ·-Uº}³dåáÕBkÕ¶üÒfSݼ®Qƒ}…µ<Ôrû×Ï €º¬÷ÓÞO{òµò&&}šš¯/°b™æç› øX¥»‹ËãŽu2ùÌÎɹT_í9cÎß)¿+–0áÕ„W^Iµ¿å´Èi‘Ó¢v»Økg­µÀ%½Ú™»ÐBz¦Þ†¾ò€”Å/þ{ñߊ· YGâ}œ‹;´1M0,|ò×fm¼\Ôþö®ïš65f.X˜“ø—“;‰ý”PsùŸÊXÿõVOu·%¶g·‡Ú7)äÛÁÉw“ï&ߥgJŸâ Λ o6¼Ù xµ2nj=Çîäª5èRí£†â6,‰R>ÄiPÉ8ÔÄNø!ë“í{'|uúkpÍéU6gmnuܾ·Xóí‰Íüçü³ñš÷Š[Tõ°¿s»á¿&ÔüØxgG›Þùò5ÊþÕð„EuG`€.Kè™Ð3¡Èªqâ/¶¦êWÜ gØäÙ+åKvôèŸ71ñ?ÞØaÛõýà·bOÉÀn†ãWÆ(–°yüæñ›ÇKµ¿½;öîØ»cŠ{]Û©ÁcSà’^ íÌ]¨@¡¯<`$åHò‘ä#ÉŠ·#ÓÛTtõ-ZÜo¶óë ž€yfœbhºzoë.koþÙã¿-¢z•kæ „©cßx™Ù%˜L®Ö¸ªè–Ķòe·¾Ël“MbŒê kÕCYáóŸãy쬷ç÷¦¸çm?ôi£JÑ&®ÃêL‘ÿ|›¾uŽšûª²ïªÀ«j¶:ç¨øÉÓOw<Ý‘ž (}bƒ8FKŒ–-Qe8£Î’¯ úý*¼2ÑíÇøS«¿¨¿¥÷ÛQ†^æ.–ʯÖÉ´³y±™ƒ…Ù| #ÍYíÖ¢CŸUVT>^Y±«˜jGL‹wpm8úôÒ["Íã˜5tnÖ[øŒÑ•ÚßÔ]¦Òà¬êõQŒþp/Ô²UÛÎåû˜:é!Ü—…çŠä?YkxÓùíWxmfÓ¥c2 y3Š‹©‹©‹)0@w¤NK–:MñªÔ`éÐI³:ëB¬îÝ…ÅGÞÿ 8(_¾åž–ó¾>îýzÚ~·óãs“Ç;æl6eŠÅw>vm<…ÏT«;ÒÉOþ«`%×_Ò;mTyÅ.̺0ëÂ,i÷:ë9Ös¬ç(îûØgj6ÚJ\k¡më&‹²óOz¡¯<`$%;;;;;[ñÖ¤÷üõkç-~äóýWÍNרqݸ‚ê7CõïZÑg¦õ¹ê 'Éÿ}Û[kóáʼnZ?™žòug¦QÕ² ú)¯UóšË«ÞÊèq×ïŽfà§õÿ´,dè6çBÎ…œ ôL@é‹#¦DL‰˜"v­^_¬ÊµÞ`¡I%Óïœá—pIlˆSÝÁP¯AóVÿþm ‡En×T©ƒðzF!.‰§s„W:×2ñd¯ú]N{_R%ãžð7f3Ún»¬øÉÑ]FwÝ… ;îÍ»7ïÞ¼BžÈ œæ¦°šWó_áZÑ::$F•ë¸él¯Còwò_}+¹¸f‚[ßBîžýüëç_K»× ];tíÐB^D<|cê@—'À%±ÚV±n±v“vè+I)8Sp¦àŒØÍJuDŠÿßêÀòŸ÷Ðk¸ÝQ_{«&¦? s ëæ×j¿¯9-qFóŸ6å;Dtó_%_¾× 3li°$*Üe»MŒf`ùö|çÔ°v¨Í¡ê†¯1˜Puº[šù^“®ãO4±«ïþ<=ür‹xÕ÷Z•Z½ßÑÀ²èÏ e e 陀Ò'%þ6ø·Á¿ V¼f9—vpö‡¯‘Õ×;â§_L{;'y}jðªFÚYý«ª±²ÆOŽÜC­ÕéqÑóN“½–ʇ2‹6ú¡[z¿ø¡™&ËkÖ¬ú›‘«ñÖê×[Ü ¥î¢°VÑÞKΰ/×3 OúZ8{'Ž‚«ÚV‹3üI˜ØüG¯ö­¦ Ÿ‘ß áÏYQ‡þJq»Ï„ªÊÚcÅÌœoŠ6\ëÒ¬O“OGíߥØÎvGíŽÚ0@×ìÚµ7ªë×ó^bÚ•D\WsÛí!ý›¤ÚÿèÚ·Þµþé^~­³Íövøð°å}ÿºßL*¹Ø¦WÓï yòéZ§k®U&:ÜSÙSÙS³Éf“Í y¿Ú(»in&ÀšZ íYÈ$&“Í&›MŽ…þv%B_yÀHЫ¶¯Ú¾j+v[“ß(â;ÿdÝ €×NˆiØF_àw3û¥ùû‹µsÞµ¼ky×èmQ%NO˜ž0=AñúÕàâ0Ù^š¢uôèŸ71QwàҬѨÎ*¶ó²«Ë®.»* `€®yÞáy‡çÄþ·ëó|ùŽcIÚ €U¹š;tˆ4 ü«QË¥u¢šÔO|| µò’ÝÏNõÜ´¸JžAvµýÂÏ:Y3Zä¨rË(;Ù©•‡SÚÆ×ÿ5ëmÖÛ¬·ô@€vý×µ^&“É£—µy}òožš›ÔÞV³Gþ“ˆÕþ§z×ïwE8ûOne±Ûä…bëEoÞ½•ÞÐw—c/Ç^Žjq]3¶Éò= ÝŠ­]"bê'ŠÎì{ûÇÛ?Þþ‘>Ðw]Ÿt}Òõ‰â•®æf·-~m|?YþìØ}î yíó×K÷©d4ѪµmKÅÖ‹©S=¦:½KÑu«ëV×­Äî¯úLMöw˜AÄ+¶ÚG¬õ„¶Õcß)¿S~'B_Í"  yêûÔ÷©¯èíT?o«ú'‰{×£{Õ{.ÖnÏŸ;?w¦w¤aæÌ™3gλêyf$LÞ³˜aÜ=ÍÓaFÎö-b-¶lì²±ËÆÒ¯Òð¨àQÁ£±«^½îÝÖù‹{ƒBÞ²*(ý»UbíöòÂË //лÄ$nNÜœ(úlèðÍ©C]rˆ{å×B›ˆµ˜Ðžºy¬åŸ&ô->`Êœ´iÓŠÝnìøÐµ>¡¯°^ý¨õ—mbmu$àHÀnC’’_.¿\~9×®\(^ûªí®™`ñÀÛfQùCMÌmbŸ˜s Ø}BÀî€Ý»eUdUdUèW)ù=ð÷ÀßÅ®€ 쇘͈ç>AXÛ÷ïÛfL ±¶:™u2ëd=J¹ÇÇGßa¾Ã|‡)¶¡ayãܪ=GÙžØïVèWh¡MÛJhC¡=éWe0eÔ4·inÓÜÄþ’Òºýwƒ²ýnÞnŠ[ªXûÌy9ç圗ô"€TÝ;}ïô½Ób×Á­k6šà}b‰AÆÃ2ýÊ’¦§m0Z`5Öö±Vz’ô$éI} UãÇ;Žw»ºLˆ¿ RYŽ~ê ÌžÚG¬}’†& MJ/R]vhvhv¨X{Öîíü•±C\þéçn;Êfô+ì»Ðb­$´!}©ì  Œ*¸Qp£àFXAXA˜èë›v|T«‘YY‹~7÷oû™k–X›„þqøÇ²©²©²©ô"€´¸yâæ‰›¢1°§CN£vÞ¦I7™”¡è×}áX£5V›l3ÅZæâÌ‹3/Τÿ¤-?7?7?·cJÇ”Ž)b×Dç #þœ»°¬E¿Ž,š)Ö&2dÈ”=== ©ëì_gÿ:û—ò¸¬= ,ì¯òèWh7úOYC @™öÆë×/¯^7¼nˆÝ&.ZÐò“‰²¼È¾­ZJ6ú=ùM+Ïyß5ÛáÔ@¬ZƵŒk÷öÁÛoùO  Ù}i÷¥Ý—Ä®Õ~0Ýh¾ßsU‚ÅC‰Ïõ;bfÄÑ> Ù²9dCŸ”¯ƒ^½rùÄå—OÄ®†½Æ½’xô[{Eëã!õFuÿjh˜X;] ºtõ}Øû°÷aôœâøcÉKþX"ÖΠËÂÜÀÂ>нðY ´}¦l"²—A/ƒ^5ºÑèF#Ѹß%çƒÖwòjôÙ2NJÑ﫚}ö¶ü¢gš“yívbûîWÕ¯ª_Õ×á¯Ã_‡Ó[eÓ¯-^[¼”ÇŸ®ácú/ûUzCº.[c¿ZpPù¾ïMÙ›²7…~(›rßç¾Ï}ïëë+útf›ÀŸÃì| –<ÍüLRoy”Ô)­‡…«÷òÀ)bûðEÀ_¼iö¦Ù›fôMÙùÑÎv~¤ü­ÏÔd‡Ò‹~…ýR¾ïBûÐOÊ2`ðÁ«¸Wq¯âòòò”ßDž^Ñ$Lߣßã/;æ5AùžvŒîÝ1:/4/4YR¥„¥„¥„)¿zÚöï<%*×Ç}é÷™‹õw0×{ÎâîåmjÓk­òýMÛ˜¶1m#}€ƒ^ z1¨iû¦í›¶½p4ð2ø»Ñ²‰Ã×Ô÷è×5nÌïË •ß'tÙÞe{—ío+¼­ð¶=¤$(øÃÝ6ö¿mµpŒë¹*Ìô7ôê/ì‹òýå©_€À¿¼þ>|pÊà”Á)Êo(‡žhäf»ðYlxùæúúæTîmÚ|ÈÀÚ®&u:*ß»‘¿Žüuä¯ù#òGä W ïä“ OþÇÀ“ á¨Q³èÙó¾~|:ÿSUöîƒ .01ÿòÎúõ;ë¨Q ¢(¿’Ú|üôûAMn'y¤yëË}‚רyŸoUÙå·¶Ê÷nÌ1CÆ )))¡W”4åsËë°â’ý]ýŠ~…:«²wÌõ yÀ@Ôº†ë®k¨Ê-æÌ¿Í/žô>×ü¦Î…¾‘½½›OšÖϧÀþ‰*û²iЦA›qôPîþ–û[îoqqqQ~m5YkoÝð­ÛÚñ}WŸòõ\1çxŠ æZ¬hr¼µëÔ1·—w¶¾d— |_Zù·òoåÿøÒãK/ÑPn剕'VžPåâv“zvþq~“ä…ƒR½t.ôÝ7æl†VðB•}Ù6aÛ„m8ú¥/;4;4;Ôw˜ï0ßaÊQíqÎMÝ#{m|ëx1¾kV‚»…¾]³Ü턺 õT¾/Âþ ûN€<`ð®x_ñ¾âmcc£Êu†F6ªl%¸[-_wm…¾}ÛõcŸ©Ñ­]®“ J]*ºTt©x­ÿµþ×úsÄP]~üù=æÎ œ¨Ê5×ÐÎìå§ÜÁ‘Óûú¬Xzüˆs W˜·rüý‡“·T0ö0)§JÍ?[ülñ³‚¬‚¬‚,Ž;ª»t÷ÒÝKw­Ò­Ò­ÒU¹æZçµ?Ýó]ãWÓÏok¦­Ð×½éäèAVóZ†´V¥Î±±±7‡ÝvsG\»   7'nNܬʱ«>×ÜÉ`vWó;ÃøžY‹ÝíµúöÌZìn/ÔA¨*5öQØ_Ž;•ä7Éo’ßdéŸKÿ\úg5¿ÔÄ©¾ç©¤ MÌ5÷DF¶juâAçÞ^ûÆþãe`7]ݺ­´jЪAù²|Y>€b¹Úüjó«ÍýýýU¿›us?ßü+§ëƒ§íù~®ûÞ8Íàz6š}h÷·NΙ’kšßpœ÷Oª×­]£vÚ5ºyýæõ›×9¾Çû÷!ïC’L“L“LÕýŸ»íÃP“/Uš°qÍ ǽVŒ?žìf8nÁÊØ: ;ýÚ絺u[Wq]Åu V¬*XÅQÖ5×­®[]·ò?åÊÿ”êÇÔá¯æÁ5Öuí—`ç8âí¡] {h6îÊʶ¥zÝ„}ö‹ã 倀Úr¾Ìù2ç˸”¸”¸”*ERյʨ*B³ìë[Ž›báccµV°ºaøÞrÁ¡îÃÓœ;õñN«Ö)Ì#`Or°»{¯µß„7ô™ü¹÷öö!.õ§[Ö®R ññññññO/=½ô”—7 iddRSS-¦YL³˜V´ëuõõ5kíÕnd÷¼úiá£4ˆrmæh—±© ×5Üg½xŸKflÈÂZ 쇘ϘP¿gïr?}R;¹ÍÊ® sërø²hÛµ7¶7¶7>RþHù#å9˜”„ǶmÛŽ¼8òâÈ‹Eüý~7ƒó½}ÜÛ´©;'Ì.z¹cô€Õ“†;gýØk^û†=F¹.ú¹aûŸd‹š;¯±oîHÇ/ûüùŽmn¨ËFæÑ^î­úgTa’û$÷Iî¹Ss§æNåhêYŽ,'}Aú‚ô6Wl®Ø\)Úq¯íÔ`‹±©ïÅ^;k­íx0~o—݇&Öµ»ÒûÈJ7û¼>×’ÿvØ üYø{á3Âç…Ÿ-Úv…: õö…C U€âý·-ðqàãÀé‰Ó§'VÑa³§Îž:{ꓼ'yOò8j”Ž‚mÛ ¶¥OOŸž>Ýï†ß ¿ºyŸÐ¦r›Êm*›rlʱ)²!²!²!;JGöÄì‰Ù§$LI˜’ Ë£ óúÏë?¯ÿÓ9Oç<ÃQÓcf23™Yæ¼Ìy™óüËû—÷/¯›ýM¨›PO¡Î:¨‹hLþ›ü7ùoÒãÓãÓã»oï¾½ûvmÝ(÷ŠìÙ+òðóÃÏ?/8\p¸à0G]p'òNäÈ„; wî˜Ô2©eR«ôï,[>¶|¼ðî» ïÞ_tÑýEtbT¡\~¹üriÿKû_Úÿº<ïò¼Ësm*ô©Ö§ZŸjG;í|´³¬·¬·¬7GGªî}~ïó{ŸÏÏžŸ=?Ûl²Ùd³É¥ßß„í uêÃqAñ€ô>ö}ìûØ?ßüùæÏ7‰²DY¢¬]h»Ðv¡šºEn¼ýñöÇ“¬“¬“¬/N¼8ñâÄüˆüˆüZ}ñ°ëî»îž¹{æî™ƒcÇ޵jaÕªEñïê\«s­Îµág†Ÿ~fŸé>Ó}¦&<šðhm€¾x7ôÝÐwCÏ÷9ßç|Ÿyç]œw1ðfàÍÀ›šUèèÙѳ£çâf‹›-nv©â¥Š—*xxxÐòeYöÐì¡ÙC÷„ì Ù2tíеC×Zϱžc=§øýM(G(S(_ØmŽ’@ tÈÃà‡Áƒ3vdìÈØ‘q&ãLÆ™Ç7~ܘ–‚Ì™2¤WM¯š^5s}æúÌõ´ Ü ¾|/8cAÆ‚ŒÙÙÙ9ù9ù9ù´ JŽbЛþqúÇéÓ2Ð.`@mÀÐMÀ€Ú€¡›€µC7j#†n"ÔF ÝD ¨º‰P0t0 6`è&`@mÀÐMÀ€Ú€¡›€µC7j#†n"ÔF ÝD ¨º‰P0t0 6`è&`@mÀÐMÀ€Ú€¡›€µC7j#†n"ÔF ÝD ¨º‰P0t0 ¶õËÖ/[¿lHÈ!!Ÿ¯¿¸þâú ZÚE A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A ñ7C“È?fׂ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/bufferToggle.png000066400000000000000000002175711431412030200260210ustar00rootroot00000000000000‰PNG  IHDR¬ÊPLgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝgTT×ûÿýhÔ´ß7QDD*½)"½Š€Ø½7@ÅØˆX°`ï ¬ `oØÅJDDˆ%Q±`CE¬Øés? ÿu“53åpæýb­½²1çìsM¹öç”o$Qø†)q ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ þ‘šœšœšœP=¡zBõÄé‰Ó§œ+8WpŽ™¾œ¼‚¼‚¼‚ÄÁ‰ƒ'h%h%hÝ|vóÙÍgÌ ð¥%Y'Y'YÇ[Æ[Æ[žkw®Ý¹vÌ ð¥eÖȬ‘Y#aeÂÊ„• Y Y Y¯Ý^»½vcf€/ÙæIR%©‰9‰9‰9ñ âÄ/øsÄŸ#þÁÄ_Ú_Ê)ÿ¥ŸŸŸ˜x"ñDâ‰âñÅã‹Ç33À—ó>ô}èûÐDãDãDㄞ =zÞuÔýQÌ (&`ˆ÷Ká{Ã÷†É=“{&÷œwrÞÉy'\œ\œ\jW¾ ú6èÛ`[·mݶu»—r/å^ s”¸Ûõn×»]·Øn±ÝbÛk]¯u½ÖUÔëÎ%Ç%Ç%g¡ñBã…ÆZþiù§eŽoŽoŽ/s¼Ü÷rßË}±ubëÄÖ r r r2Úk´×hïç¿î47inÒÜ4R2R2Rrxæá™‡g>UyªòT…9 zô(èqÅåŠË—°È°È°ÈV[Zmiµ¥¢>õ:v ìxÃò†å Ëâ6ÅmŠÛ0ó@FÛŒ¶m÷®Þ»zïjß»¾w}ïÖ×­¯[_÷ó_w–––Sã§ÆO?³ýÌö3Û__x}áõæx{ùíå·——%.K\6óÂÌ 3/ØÄÙÄÙÄ}þëN©¶Rm¥Úƒjª9¨æ®™»fîšù üAøƒpæ̕̕ÌMë’Ö%­KäÃȇ‘».ﺼëòŠú¶éÑÍ£›G·¥o—¾]úöRÒ¥¤KI¹¯s_ç¾fâ@€!ï×¼_ó~ÍÁ7ÜèqÏãžÇ½Ú•$¨iPÓ ¦×_|m0ÇŠàŠÞ½+zãæ›?n~e½îZi´Òh¥úÁõƒëWŽ ÄíY§gžuŠðððÕOÕOÕOýú¯»ºsëέ;wéÈ¥#—Ž|8ëᬇ³8.·ÂŒÂŒÂŒÓ‰§O'öëÖ#¬²>õ† p~Ùùeç—IFIFI¸ª"wçòËw.Ïî:»ë쮕õº³i5Òjä¶–ÛZnk™õ,ëYw¬È½µ}kûÖ6zyôòèåNnNnNn•õê›ÚgjŸ©}n½yôæQŽ ÁÅ ‹Aƒ”””+ëu×iL§1Æœls²ÍÉ6ùó;æwä¸e“~Åÿmü·Ì *0ª°ûk¿fÌš1kƬ©-HJ)J)J);w8îpüðàÃ8j¨êr¢r¢r¢¶LÝ2uËÔÚ6Þk¼×x¯/¼|𒣆*ï„ä„äÄ…„ :ìí°·Ã^a¾îª;Tw¨~Úà´ÁiƒbÝbÝb]ªºç=ž÷xÞcžÅ<‹yBþÔ KKK~}ìõ±×Ç8j¨ê Š Š Šô=Ò÷H_£·FoÞ óu×O«ŸV?­Ô©RpÔ i»Òv¥íò¯á_ÿ†0_wšÕ4«iVÛ¸/p_`¾f¾f¾&G UÝ»´wiïÒ".D\ˆ¸ äo›ÓN8m`f§ÌN™8j€4`0ª˜ô†é Óö¾Úûj﫟ö•E»§ŠNÝ?96þA7mI¶ë>³÷»­[[[u?éѱ‰Mî™LŸvA§{û¨ØiéÚ¾§uÚF‰×9ËÓ<ìok©O£Íç|aÚ ½A{ƒv^a^a^!GUEîéÜÓ¹§×nZ»ií¦Ï©ÿ¶7\7hü9=ÅÿÿŒÏl:6cµeÀ‘c+\¬ßžž¸ö¾Á™¤uíFŸÈXbóp×Ìy¬š,¾6ÖÍìЀ¹.êiÜS»[·ñ§ýÎ8o༇‡~x˜£‰ª%åDʉ”M«7­Þ´ú§Õ¿Êx=g“zº[­ìéjb4°ÃDÝÆßÞ»(ÇòÐDõÕ7Ý\;|£eáÄÂ5ï/Ûvé&ùƒ5ZÜnZ¿¶ªžÆ¯-û´ÿoývõÛÕo[-¶Zl5ÉPÉPÉPŽ&ªŠ9/r^äõêÔûÓê¿NZ]ËÚ;¬6¶7RÞºoàFS»§/13ê: CÄSý!*›'šù~¶Ù¬Gÿøð×&ºÝYäk(ñ>:æƒî;K­V‰êõ>çÓvÎŽ9;æìx{ðíÁ·9š¨*ŠN.:½ï̾3ûÎ|Ný7Щî>QÉv¾Q ?x¶oÒ÷ðêv‡¬KïôÄîÛ³ý|RíVÄÆuüöýž·m¬rBû5ÿÕü½ÿ˹zýLt$ÔËþÄ[hæzäzä^ ½z-”£‰ª%mEÚŠ´Ô:©uRû´ú×÷ÐÞ¦|kèºÎ‰Ö/7 ¼cþ{tØ‚ŽVÛb«¯hÛèl£ps»Ù§5×®±«³tyWë½QjÓ4¹ÜdÈ££^zΫ~{­íµ¶×*lPØ °GUÅûì÷Ùï³—õ\ÖsYÏÏ©ÿ†á¶ëZÔ6˜Ø5f¸¹ÙÙa³gk2éw×7š6Ÿtc]í¦Ã&÷Xw¤Iñø´°æGæÎ]gô]¯u£'kÕsõo§]çL=•÷Ÿöÿ ذ-`Û“¥O–>YÊÑJC˜€Q¾õyßç}Ÿ)‹§,ž²ø#š®õ •ï­Ôj^hÑóFBÏ‹Îþ‰¿¿—WEùÛ}GxÖ9=ÈGÕNgÄ“¦›ôüØ/L§fŸš}j6ÇU$)’°:auÂêck{T§^ýõ/ÞÇ.´Ð0é¼§ŸD’’âåUQãu“]7ÿo…åï;Ì÷kÒ¨W÷Jù·m¦ÃL‡™j~¨ù¡&”q5ãjÆÕÎí;·ïܾüµ­Ö¨ñßö5Í—ÔžûÝÅ¥Á‡÷»¸DE¥¤TÔè0&lûÉž»ŽÙ´ÄRCËÞÁÓ üÛf›b›b›róÎÍ;7ïp|!L…®…®…®k6¯Ù¼fóÇ~êy_k¨[8ü¯}[CB®_·±©°Ñ÷úvs—]'Í“=ZwÒ™ðÑËâS·OÝ>µxñþâýeӥᗆ_®sUçªÎGœàÛ÷޹ŸÎÝc :T·iþ¶`ðÒ¿Vl¯w÷^Ÿº.ÉQc¼¬š<µ¨yXõ#®BºvèÚ¡k_vyÙåeŽ/„éMä›È7‘c®¹6æZùkÛ"Ðð†JÖº;ÁcoM{¸w¾‹FÅvyÔâ¯y´ˆm¿*ÂÖzȇÎ^>âSOi¡ÒB¥…çâÎÅ‹ãøB 6H6H6Ð9 s@çc¿Ñ5Jo?»ÿz«ÎSm6ø9¿‹<œ¼®b{=ëS³oíp72èU4º Î8å±õŽ–Û–4YÒdI“¼gyÏòx80„‰‚?!~BüG|é_8ËÅ߬ñ«ÀAnîó*v  ücRJ—[ö|~2Ú¨™[®Å ¿¾~}ý^w~ÝùugŽ8„àå›—o^¾éæÙͳ›gyj¸›cËSÚz)S7qð¯Ø%€ò/‚OÎi~wL?âüñ¤½I{“örÄ!~?‰ßÆ#lˆ}ˇäšäšäšLðà;Á·<5ì4];BM=¶mǶÍ*«ËËóúÞãüºËê?âŽ8hx !GÂqb͉5'>âZ¡íÇÏ5“}ÿlýg+«×;knc7·åHÇ W”g›GØŒ°a“ššÍù„'ÑO¢ŸD{Ï÷žï=¿<5¬Ó|p‡=Öz3_m=_Y]ž½×²Ü#kôww±ð}Z®7 ­ÚZµµ.¿»üîò;Ž80„‰‚S¤Y¤Y¤r<äxÈñò|ÇØy¿UŒÕOyîC3=â*k9@Þø°Oß8׋#š4í«—^ž}IqLqLq¤PYãããÊS«£7ôb ž±êˆŽ[‡ÊZ7æj$DzLÙºsVFÓúåÙ—yCç 7´ØºØºØšÀ×÷zÂë ¯'´ÏlŸÙ>³ìZ­÷V”ž^ÓÁW"Ö»ÔŒ|™ü°²–äž9Þ|V›m® ^66²3){_Ì=Í=Í=3‚3‚3‚©T–=6z”ç“¢Cÿ)aú¦“uÿ<ÒL¥²B_yã„cI!VÞÞÇÌ×½[®8Jr@r€ƒJ“Ö%­KZ¥@¥@¥À²kõ×ÑÆµbo®è¥æ¼Zh]^á?/ϰã‡;¬³Y_/PI©Îœ€8Ôz¨õPëœË9—s.Søúò;æwÌï8îÚ¸kãÊu½ïâ% šÝ/h™¤æi-´^ïîÖý‡\bÔìà§Û«<ûreË•-W¶P¨,±Î±Î±Îå©U½{¶Þnÿ!TïøP¡uyNŽëÚœÝ`Úwh£©uʳ/+­VZ­´’l–l–l¦ 8€!LÀ7Êo”ß(»e»e»ýdz—Â&4ÿú¨‹ßpÏÝB[{±¹½ß¹Ä´ÔÐ[ÚpZÙ{5*jTÔ(ê_ÓZÉZÉZIÙ•Ùî‰ÛXÍÒ¼áÚKh òÆ‚¬¤pÏ^K­Çu1¯QöÞµš×j^«yï‚ß¿#ŽÂWrËë–×-¯ò´ÐM ­—OÚB@Ù£•×ÔŸ7X×îPûú­$­HZ‘´‚zÀ×QP­ ZA5ÿ ÿ ÿŒ²+Ó}žŸ©öÃÉç/ÜlÖ^h¡¯Ü0XëÜ8«zöO{4Ôü«™§©NS¦Z<¬xXñ0ª_DZºÇê«[ve{4[ïÌ_iÝoV•.¯dÜáÑJ£iô<©qKÃ- ·dødødøPø:žox¾áù†Æ–-[–]Ÿ"§ n2Mââä¥QUz½cwßtîj7³ñ‘ÍÊÞ»è=Ñ{¢÷PøJ¢$Q’¨EO=Yô¤ìÊԜõ9{ßåýŽjT•.Ïé\Ä· ©‘Ýš O.{ïz6ìÙ°gû?ìþ°›¢€" †0C2®e\ËøsQ]nêLVÛøH§ß÷®ùUk9@zÜÿM›âfeïoˆ$D"‘ì–ì–ðU _†ŠDE¢2©ç¤ž“z–]‡o/;o=»ª,ÈÓµntmksТjм=UuRuRuzjòÔä© ‚/'I/I/I¯ì×îŸm4zÛ9™¬S>Û£jE¿¥GçYz$Ý4ÜÙ3pTµÿ¸ÖÄü€ùsj_N¶c¶c¶£k k «Üë• êª}& ý«õ«Jè+oôݳ£šù<Ê¡gpÏàžÁù¦ù¦ù¦T¾œ >|6ø”]áß{4n¼OÒÞßÐK³êvyYë¾vïÑû²Ùÿ¸µuªCªCªµ/çî仓ïN.»Ûû¸%jê<Ýsü׿ŽU¸×+NIöòÚzev­¦ÚeïﲈeË"¨ |9EjEjEjÃû ï7¼_ÙÕhyz¢Çšïªn—W2Úþoþ‡=Ë”=4:êÊÛS³vfíÌÚ½2|eøÊ ¸C˜€QÉLz0éÁ¤ÿøš>Ñ­¹y;É/»ªý–7ïwÅ-°ñXõ¸úr¿*{7îݸw_‰¯Ä—jAE)>Z|´øèˆÈ‘#"åÕžJã ÔŸ:+h®SÕ£ßÍR̼T|?ª¥éͲßy»=v{ìFµ bÅeÆeÆýÇ­ž›ìúýFèúª¾ =6kÒrSï²÷}{àöÀíÔ *ÖÛ¸·qoãL›.6],¯öœõ¯å0uïßO­=«zô[zœ¼ãBT³MÏ´R’·ïÞÞÞy#òFä ZP±V¤®H]‘Zö;ÿ9=8÷S—÷Ï5Á#[™7=Rö¾_N½œz9•:Aźe~Ëü–yÙµñ÷”ü&õEÕåIRR¼¼î9°Ü¥H#J-º®Ž¼}Ÿ™>3}fº¤XR,)¦ZPQ W®,\ÙË¥—K/yµ§VØtŠÓx‡g«tÿh.¦.Ïùà†çWëëûÌrVÞ¾«œW9¯rþe—5^Ö Z VÀ&`Tš'žxr ì¶ä”j'Ûpñ-”óGúvõ¬á÷ÞÒDÏ@Þ¨}Pû Öä—&¿4ùEîsFæ2l+¦ÐWÆhsÝÇF£më MõɽìLû3íÏN*œT8‰ÊÁç ×××—Wo-]ôÂÎ}ûrð‚>âîõþîÙ}˜cÎDàž7ÇÉɹÏú]ørô3/Éó”^ÍŽ(Pz¼xx‹ƒ£Üqƒ æäåäåäQ?ø4iËÓ–§-—Wcu—ª××lå°y¥w¬‘¸—þõì¨yánñ·ÕM¬j;[É›™ÄüÄüÄ|꟦èzÑõ¢ë/u¼Ôñ’¼ 1×TYäÑ¯ÔØ}áâUFöòæ$ " " BòJòJòŠ*§94ãÐŒC3äÕØà76²+ÔñÍõª8½ÞÃÙ}/¹^/;–{òÍ“ož°>ƒO”u+ëVÖ­²k,-}ï< ÅéòŠ;'OöÌ<Ðo¥¡ÜP|küÖø­ñÔ>ÇÔSL ¯ÆL’wœ|Dqº¼’±éÍàÃAòæÄÉÌÉÌÉ,?;?;?›ú˜C˜h0ðu)I”$JîüsçŸåžíØs­skŠ~¥Æ9œ"LUåÍÏþøÿáO)ácùpäÑòêjÉoc™]WœåéñJ莜åÍOí>Ú}´%Ñ’hI4µ„ò{óöÍÛ7oåF¿£Ôiœw Zý0n–¢- üs»0‹õ^çÆ«·´òwÞ&o–N|8ñáDj +dPÈ Aòêj]”½i’¢E¿¥Çž½–2º*o~Ö¯3^gLác]kw­Ýµvòêj¨YF³ŠûÝ÷|§˜]Þ“ýW¸=•7?†q†q†qyAyAyAÔʯ0³0³0Ó¥ºKu—êòªëþÙƒ=]m´×KMÙåå<~lÿlÃòæ'yHòä!Ô>ÖNÓ¦;MåÕ•©ßP÷©ŠÙ啌V§§-‹2’{ç¹Þ£zêMAL€!LÀøªÂ2Ã2Ãä>ûðÒànÛ(rôûÏøÐ¿Ÿ—Û¸YÖ ä>?ãñ£Ç?¢¢P¶>Øú`«¼Z î2d±Qœ"G¿¥Çä†QÈ›«õZëµÖkQQ(—IŒ$¦ó‡Î:Ë=ñÂa^Ø›“GyQàŸ«ÃÃ'%Ö+Ô=n¤+cA<Ú0Ú0ºÀ§À§À‡²Byœˆ>}"Zî =#WißRäè·ôØyÞ¬›rŸ‹|±ÏÅ>ûPQ(ìEÙ‹²ɽÁøpCoMÓ~M=çÑë¥'÷5q+o®F§NÍmiñfNœ9qæDyu³Qô ç)tyÅiɽj ü©£µîJys•50k`Ö@* åqÓô¦éM¹Ñ¯Q§Þ³Æì¤Ë+-÷Lüaõqys½$zIô* â@ a"ÆW’ªœªœª,ï#ÿÐêv¿Z;³Pz,jæ×Ïss‹. Õ·HϘ³³³OñâÅ7¨.ÈS”T”T”d¹Ør±¥ŒåÝv·Üü4kIžïù”EÒcôþC­öȽyZ«´Vi­¨.”mÛ‡m¶É~m‡.üyoËÿz6ð´°ë'å.ÉÍ®9»æìšÔÊöbç‹/vÊ«¢¶[&\Ös'ô•ÝÌÿO[MÞ¼å(å(å(Q](›ß+¿W~¯¤ëG¥™RÏ:cßO2µÅcú»Òãó®“’å½îb/Ä^ˆ½@]¡lÉQÉQÉQòªètðÚ‡vtv¥Ç¼çç~ôxlÞÏ Xe¯ôŒuþ«ó_ÿ’¼–¼–¼¦º O~D~D~„j‘j‘j‘ti]kžÐÑÔÅ:jfÊú»Ò£éò¡‰SÉ{¿z´óÑÎG;©.TuÀ%fOÌž˜VegoŸ½}ööWÞ¯¼_y33Ÿ†_\áæÂÍ…›µ¿ÓþN[Æ“W¦DØ;ÿÈ€¼1Ë}àEw¹O¬™¿uþÖùÔäYßc}õ=äÕÏ›qqÃÜ‹X7úöëi#=ofsÌæ˜Í)þ¶øÛb¾ÆA†'ùOòŸäË{Ý5ùiܽåJ,È›ý=ãå–ÉòfïÚk7®qÚäêù¦ç›žo¤+ǼS í—Cª¥æØüDÜ+=N3¼rÂ:@CÅ EÙWzö&N(œPHuAž³ÇÏ?+÷Êž»zßuÙIO'oŒlã™ÐDî}zÞ-y·äÝj ÒrÿÊý+÷/y•³Teœ£]žÜññ‹£fnáòfïð­Ã·ᛒ Ï ,| £t6Ô¹¢ÔÕ)8\-~=ŒÑ1jMJœÖõæ)›JOžÇ8qã${${${¨1T]ÀŸ¯È§È§ÈGî…„ÁŸ„_\äÁȃ‘¥_´êvʶJaùó}xÿǘ0³óFûÚroU——G¥¡´gùÏòŸÉ Rn¼ïHó_ö˜;!á‰Ç ys¸ýõö×Û972ôïÞ[Æ¢’ÎÌ–u»U§ù/Ïhôg߯­—ã…˜‡˜‡ÇÇÇPi(-Ñ$Ñ$ÑDÞ;ö„¡ç^Y™ô–=Ž]{ÉÒEÞÞ0¿a~ÜJCiùêùêùêòjfG·VzMÐÇýÇ8ÅßÞ˸õqý§¤çpr­Éµ&×¢Ò m‰úõ%2^}V;MŸ«ªí9_àÉ#~þc<ª¹b±ÍòÞÁÞ›½7{oF¥¡´>|È%lzÌÝu€>®ìÑñÒšìÓòæðh›£m޶¡ÒPu¾Ò×þ–0¸ü€ñ½I“þ&]Þ õÊ®î™Nî´ýåG|Ó´­^ªôL©©©So(-`oÀÞ7¶ú]§ß Cmþònn^ìðFÞûXvava6×Eáõú«×_½äU‹ãú5½OkÓö—gtž°Á:i·’¹ÊqÕÒ3Ó&¦M KøGÑâ¢ÅE‹¼hð¢Á OüMXcüp·ü£OïÉÆÒ3é¦ã¦ã¦#y#y#yCÕ¡DDvDvD¶tµ¸fèÜW»' ò·õ2¤ƒ+Ϙ٧¿³ÛayßÒ×¥¯K_G½¡Ä³Ïf<›!÷š{§ýý]¶ÐÁ•캳e{íÒ3¹à‚ ¸ ;þ¥[t·ènÑÒÕb8´Ç†‘Ytpå›êM ^»NÞûXþù?æÿH½¡*"þ|%nI¸[»ÜƒËFŒ/hÁ²Ë,“~YŽžÓ¬—A=Zý¾tøÀ×îÝå½Ùeþ’ùKæ/Tø=ð{à'¯NÞÖŠ»ÝB“VÿcGߟºh6:"=Ÿ¡E¡E¡ETJ¸Œwï2^ºN,ÞŒö]´†Vÿ£oÝ&Äc“ÜO½ÂU…« WQuˆ9s8FFpÒ(¾éï*Q!-®ûÛèë~Äí C¯Y/«³Li_í¥2î r%åJʪïO¾?ùþ¤¼÷ç;νƒ\Fл}ì¸*Î}•ÅQéù1 c@U‡ã猟3~ŽtÌ8<Íd9]ÛGßzב|·EòÞÍ^™½2{ÅuÀ\zýéõ§òêÄi[xDBgz·.²é~MÆ£î¶lݲu U‡ªˆ¸bW`|Ùò‡e“÷R|¡:ð›æçhò?m\=ÙýŽÅC·7ü{Âßþ¦öð›îoº¿éJWHTïé§š<¢Éÿ´1³èXu·›òÞÓ>tùÐåCjO‘]í}µ÷ÕÞÒµ¡4©þÞœïE&·¢ÉÿÄ¥;›A̓¥çö˜é1Óc¦Ôž"+Ž/Ž/ŽW½¥zKõ–t… 8ð¾±)-7¾0“qsQ·Vn­ÜZQ{ˆœ91r¢ŒÓ|¿mf¢ŸK¿öicnôнä}Û|´äÑ’GK¨=Eö²ËË./»È}b´ÑéS-úѵ}Ú8kÁð×#.Ê]”»(—ÚC÷9Ýçt—qâEcÓ1‹gЯ}Úhû×¢þû£å½§<,xXðÚCÕBüå`|›ïl¾³ùŽô oj„ýZcÚûÏßß²±EÜÆoù»åï–SŠéµòkå×Êòj#wZB–G(íý猆ýŒ 2¥ç6Ú?Ú?ÚŸ Td}Üú¸õq“® Ëá¬Vm£½ÿœÑfÂ<½Ý6Òskªdªdª$y!y!yA*¦”e)ËRdÜiƤŸs‘ê5BÜÏë^¯gS§þ#ãJ»e\ßyñÎÅ;©@ÅTd[d[d+÷ŽD?ö×tÛH¿ö9ã–ž-·[¦HÏí” )AS‚¨@E¶g|ÕâƒîSä½³å¹ç¹ç¹SŠ)óbæÅÌ‹òjÃy冥çuè×>gÔrw}ßîªôÜÆ¶ˆmÛ‚ DÕBüu,`T4?‰ŸÄOå ÊA•ƒÒ/¶'¦ýç»=¢±ÿüqþçõ¦‡¤gxgæÎÌ™”¡bÚXcc2ž`ª;~¨y&ýç'žä*ã&Ez»õvëí–<‘<‘<¡î«çüWó_Í—»(pxÃëóá4öŸ?ªÚŸ³´—žáÛgoŸ½}–:TLÝݺ»u—qâ…öî|‹ïq?ì·qmŽÉJéžè;Ñw¢/¨˜’Jþ)ù'éªèçd¾Pç=Úç9G†d{˜Ë=¡³(·(—‡(œ¢zEõŠêÉ«Š×Þ§¦¹£S«€“}·÷[d(£›>ÑëD¯½¨CÅ´äÛ%ß.ùVº*ÌŠ†;ÏÚJV'ûžw?ÚHz†];»vvíL¢j!®„9Âàr F»í~Ûý¶»ôK«Ã;Ã[šSié+jÌ|Ú´›Œ Êü¢ùEs®ÉP<Ï%Ï%ϵr´r´rdÜt½ùÉÍ/WV#Öno=ç]³^Õ—ZøÛ9«ï”žçô˜ô˜ôŠQÑ옴cÒŽI2®AÌ|:˜Û>WØh9r‚Ë*Ïy Y²(du¨hÞU{Wí]5yíÜôk©Û­ «VÔ:ºÚ±VMúÿ«¶°US}þö²6{k>——ªQÑôïß?^ºþ¶ïÞÇ1‹­¢Æà v/Ò¤çùô»ÓïN¿£Íåj—«]–ñ©çÛeg£{Bî› Ú$ixÚ,j6:߬k³3f‰ª½ê¯ª—]ç¬þ!m‰r¶Ð¶öNÖþF.¡ÒóìmêmêÍcGNñ¤âIÅ“ä} r¼³¶Ñ®ý­ˆÑ1jeJ¬ò]-›Fk¥çù¹ûs÷ç\*ƒ¸rËCŒ ¶àÌ‚3 ÎÈhVs|:عÓÌWìè4Z{•Z}_’¼Ÿ{?çQç äñ¾Çûï“®„V}œ24ªWn#-Wõøx·°Ö6ó¤÷(ìvØí°ÛT£¢±ó²ó²ó’®ËÐÛ'ºÐÒWÔèt-Â"ñgy_Ù‹—/-^J5*Žc{í=¶Wº:nœ–¤¿²*^k+̸dlþÚW[[ÆwŒKÇ/¿tœjTy?çýœ'ÿ}¸ƒ_’'÷yª°ñö÷½k¸È8ý¢ï©¾§úž¢Íïf¿›ýn&ã}8}«¾£¯û¦ÉžƒÍ({áU@Û|7e¿—«Ž·Æ¼ºÙ2¶¥òNå Õ¨8nëÜÖ¹­#] Z—šì¨LwV±£ù–€Nse<ã|ûþíû·ï§QU apiÀ¨89’IŽZ µj2n›ó¡çPKšùŠwç¶žb5Sz¶÷«íWÛ¯FI*ŽíÞÛ½·{KWÂá¡Ë¬‡Wì˜ÝõÌ®›¤÷Èh´Ñh£ÑT£âx×ò]Ëw-¥+Ae±Þ\“ßiã¿Ä¨=¦Å!Ÿ2®¿?~:ý45©8úõ ê$] ?Æu±pß:÷ŠŸuéÙVm©ÚRµ¥¤@R ) 2ÁüàùÁóƒ¥+áJVoœ:Ñ—}‰q²¿¿Ñé9¿Ýýv÷ÛÝ©IEY+³Vf-éÒÎçt#áwL¥·¹$úþ6ß»z ÒUÆ ·ÇŒ @M*ŽfùÍò›åKW‚“å:ã³cé˾ÄX7Q=^KÆó€óFæÌIMBø€«@z¥a00*n)üPÒ¡$g…oökÙÞ2”þ‹Œ=üM½´åÞŠíNñâ;T¦È—ÂC‹B‹d<©Hé·:Ïk¯‘d¤ñr#þ"ç†ßš¼­ñ·b‹»w)ŽÊTóžÍ{6ï™t ؼš¿z ü97üÊÊ´ØÇÒsÞ+¨WP/N{RŒ¥p½L½L=épŽïwC«mUŒ~…—Œf5Ýî6(ã´§Mï6½ÛDe*«ÕV«­VK×@î°¡+=–З}‰1áQçD{}é9ßvxÛám‡©IEpÌä˜É1éˆi°,Ï:´jÀ%]¡ð·¹ðêùNžKdÜãgÊ:•u’"I‘¤ˆÊ·¼eyËò–ɨFŒvÒ‘}¹ÑàJ·‹#VÊ8íÉï¶ßm?*ÂG\µ(NLŒ ³bõŠÕ+d, ÜlÙ³ØyŽpé'úos{?g‰ÓRÓÚÝ–›ì×¶kz_ã»úYõW)Ý­sÖįÁ}•§íUÏ]¢âÚÇìl–æÀÓîNB^àgÑSw´ôÌ¿Ê~•ý*›Ê·çgŸŸ}~Vúè„ô0×7B -/¾\}««ãÈÞ-ÛÐñÖ;«í®[U½ì:g­þ2ûQU/ØzÈïFDz4c/º; siàï×Ûç;©JïWDDDDD•©\ïºÞu½+ã¬ð?Â'Z;휜ìc=Ì}æ@õmÍÖ¸ZÔ®öTóuf(GÕËV Ó‹0YÖH¹í7}úØ.X²o±@—FÙ¤¸É}†Ü>É>É>*SÜâ®Å]‹»&㹘QklLÜ„—N7¾l}¶kÝù- ‡šwoÖ`“ê*ÍwJOênSéRÇ]{—ùÿê­ižî[K{×øÖñÍ›N~ÜiTˆ…~šô̧ê§ê§êS™âVp»àvÁmé£of©6Oe¸0û£ø£»Ú¥¼c‘¡›PÒß©lUšYg‘…™º—ÊÝ®MºiW?²°ýHëÌb ¿Ï›ÂÜ‹—×nq7•žù¡;‡îº“ÊTSÔ¦¨MQ“®G3cZ»Õ~è[ežþ+5¶<㸹áémÎIÏIÏI§2Å-ýeúËô—ÒGß`d×eÊ„Ù%YÿöaÁ —ØŽu¿]w¯ú$Íóuö׳RÙW?Ø0ÈÂÕ°v÷%KœF®{?ÒÖbAß½õJï—pö¢é­àãS¤g~_Ó}M÷5¥2!|ÀU—¸Ã``T˜îÁ݃»Ë¸-Xöæ![B }:ç•‹¦y½NuÝj¤‡ }»fsi 2Àóï&{¤·ùÚŽk;®í 2ÅíbÞż‹yÒGÇßsû6½ ä¸ÞaåIuº•ýºÓ?¤-Qξ¶}çN§ÃB[x£§åž)ã†l¿ ùeÈ/T¦b~¹¯“RoV}5¡-8^³éôdõ ;s]þO=ó³{ç^æGÃPÛî¯e,ÉÊ9•sŠÊ·å£–Z>Júèñ:1½É!¥Gžµše¢ê<]5¶ü¯¸î ‹ ŒÚ 9ö¯¶«³yŒô–ïõÙë³×‡Ê·ç!ÏCž‡Hýß¿±©e¨* çæjøÅxÞ ÜciX«ü¯¾_÷k¥¼ß2dq‹W‚{ð~{=eœò¢ÓA§ƒN*S8§;§;§K×@~ÇsÝ=Š„lÑ9QϤd,½Íºéšç•;–þ¯B€6ma¦.=óéKÓ—¦/¥2Å-N'N'NGúè7);ì…pz"§”ˆÚ ™WÇx[þO½¦×‚wF “þ÷BØ#û£+ú“ñîÉÇ'Ÿ|œÊDU\#"®ŠÄ£ÂhvÕìªÙUƈßû×òú±r›ç’–Þ8¨Áìzþ9wo‹ê„z&Ëžº 3š°£ó>{Õ«Gz´qš—Ýé•Ý÷Óò¯(¹&øßç¨ 1NòïcDÆ¡öÄì‰ÙCeŠ[ô‹èÑ/d܈xá–‡Ž]„ÿóUÞsðq£':¬üŸÍéýïkõ›jÏáúóêT«ýgí?^¬‘ìãyS8‹E‡ÎK¤älñÒ{dÛ{Áë½ m [õð)ã)°õë?æJD‘xqàÅe|šì¹°«™g%¥¿\ÿÙ¦¶ùÞ þu‚Bã—-÷©íýÕbnŒ¡š¯Îöÿ™«t91'Ë ÛÜɽ°Áy¹Ï3Xü{ôÙ&M=¤·sVάœY9T¦¸]¿UÆ3ï·æx7oj$œžhæIÇ&%ÛVÒÇMûÞþŒqï:\³9}Q§ëuÇê[vµL´¼ã~O·P}¬ë…ØëY~×°ký²¶Šøm³îb¥?kߪ*Í©Š·€.î\Q`#ãY¤‰1‰1‰1T¦¸­ÍZ›µ6KúèÛ\Xmo¦pz"m ÷»þuÃdíoÜÛv¼i¡=òÊ|Ïf[fôßœh>tÄü9]Ê âžU?Düø@zÛ¼{?ö~Le¢*~jWu⃠€ñßæL{¨Ù«8¡m.‰uÿ¹Bëmí³µƒoLìyÀ¹»¼†_z_ý]„òa. ÜoÖg¹k}ém^±:b5·¢¹ÅN‹;IýŒ%Gºµf¬ôPɳöÁXËU³m-J/ ”þçÝÍç{Zõþ†7HWzÌ’ŸzÿœZÒõïᄳ(ÐäúøAaÿÙ¸uu•<-OMtY-)ù¯Ò­þ?Ÿ’3”£êe ó¶`ÿÜâÌõ·fóeÜúþJÿ+ý¯ô§2ÅÍv·ínÛÝÒGz“kó¬*7"íõ4t¼ñ¿¾[¶i?~b£K%ÿU^sè~Îo•v®ðàà³—7‹’ÞÎ~qýâúÅQ™âkkk&}ô®w>m¯+ˆn¨ZŸ©®ÿ§ô°ŽFíƒjÃê>Wò½>¯gwg¹ÛöÏÌlš: ?ÐÇ¢«îo|ÛäÛf‰–Ý;5\Dü¥Ç«Õwôw’qyîzHeŠÛøÂñ…ã ¥¾CÖ*Ë?~Ä­’·«†Gÿë¡ ý5Bž–î餮ëéõ[‚`£¨^)2îY¥¤¤De¢*~j‹IÕ ƒ €ñßæ:è.Öì$ˆkd'u‰µ?1úy³éfs§9=5õ*O{/ sQà¥ëÀ‘î?JoçÔÇSOå,9‘×c\q=¤þ›ŽqíÝß 3x§ãMÝ„òº¥«õPçÃ.B[h¾Å涺Kr|êýsÚÓQ_§i“…”j>s¹×vdɶiýÕüxGò´÷ÿj¶—Yš9œZÜtÒäEëdÜúþLÒ™¤3IT¦¸Õ[RoI½%2âÒq×ÿ°±¬Üˆ´É•VÍÕþY.,¹ty~kšÇ•Öã5Œu•o 9ž–q­–µŒè½¹Ys³æfT¦¸íPß¡¾CÆ­PoÔè9ÛÙYÝÐŒ?Mþ9ÍbAgçÓ§åéÚ Úøîð´)y*pÉŸáÕt¨Þc¡õzÓ,ì/áÛ&ß6Kømÿu ž2ð—F^ízGzþæ…M ›FeŠ[¯3½Îô:#}ô„Ç%Lĵ¿ß¸·íx³d«4ÔìM<•ÊÓå9§G'ûÔooa>C °KTTJвVÃÛÚËøÔƒ8>µ €Åªj…Áßç%ñäÝøºw…yÕlÙ‹Ef~½=7-¿åo!üø]Èà³-ÆQoø×³0“ãWyX 3ŽË^d÷}¹n½¼â†æÿ»mûÿÿ)á, tײ™V!õ†ËFÙ-TNó¬rV¿±i»’m+}íï<3ØdÕËS-m3m=ð]Ô’W‡ò„7;9cçê %T ê)õBDª‘oÔCù`ÉVõ5Z=ÐDµüQ®ð¯ž^œúÆæGê ¥¥û÷­éÚGÝPq¦ƒµ·ü³Ðv´sW»ôí KØlÖ©zNh½Þ²VnÍÝ©7”˜ä=(Û¨5ð—Ÿž8Ö|#õ†ÒœÇlÐHZ$„n¨~°a…kÉV•¾çSy~WÞÞ §×SýÍdLSê €X}ýGvã ö‹å ½! €_3hœûŽSu;9Ù®‹¬å¹»Éª©õíýŒ ºÏ0ýIû7-Íz»êŽ—·_BÛ—÷#†Lhñ€zCi¹#îz,fü0áða׌òüî]íý­]6Èz ei Ïò¶‡uVPo(ÑxæØfK^âùI78MhQî§Ögo7¤ÞPBíšîíºÛ*7t9¹Ù¿®yüV“èòÿ ýÞ­›i²¿ôß ´8Äùz_-ê ¥=ÙOßíÿ„Ð YÔTV]öù{¤w¶~‚r¬Ð:¾UÕÜ;Z,¢ÞPbú\¿Æ €¿ôøòeì6wKê ¥9oÛ~àº<•Åv>âŽMM&ýîºâ†ôÞ §×kð°ñwvßPoÄ*?:?:?š"!´+€/êt½îX½ãO†5g•<#JÞ–[ý¥1@UoÀ ‹…º2n3ÈÀ>!_œçŸ¸Ùã|y~÷ÜSÞ²^ƒ\ !ÎÀv—–N?|¸ô¶9¥DÔNÈGÌÀ(MWþ×ÕòXé­*‰„Ëÿ7Œ˜¹œEzé¿+€!|¹Xun]Û:ùŸ¿G¥ÿ®†0q0W£²á à’û3}N—g½h¶Ãö@é½ã `ø:è à’{ ó#¦é‚Ú3€ë¯Rº[çlɶ5ùY=¿~ë’çEÞÙî„õ¤;{qñ+yTÉo¥µëuêßÁ•ЖÊ~ð ×ƒ^zMeŠû§WË^-{µ”>úB~pù¯¾ÿöà4×¼ê^©[½ö3¡ÀòžLe*æ§žpžì>%Á´ô¶Ù÷\n{ä™8`yÏ^©¶Rm¥•)îåÆÊ•KýÊ}𴘫‡­ÿõÐ1=Oljr¥üCÿ›õLŠ…Ë{p³ŒfÍ2¨Lqÿ„ܹ"ãj!á<¸¤³+Ùª×Ûîiv½¤û´QhŸ¼gS™Šùm“gWî3€ÇéÓ§GeŠûÇûš÷5ïkÒG_϶ÏX‘u\»ôV}ìÀ–Í‚æ¬Ë]ëKoçêˆÕ«#¨Lq[ì´Øi±“ôÑÏXr¤¡[»ªþ àVþÏæôÿ;iÃXõÿ-í gi axƒt¥Ç²Þ% ˆŸz!]ÿÞI8Ísém³ª1Åi½Ay~ËfÓ¼m»ïïW0^ÇøÜ­ µ.µ£~IùE8ûeáú[³ùg¥çÿJÿ+ý¯ô§2ÅÍv·ín[1äô&׿Y'TnDZz{ú®]cbâRþßm?frŽ^šàà³—7‹’žù~qýâúÅQ™âkkk&}ô®w>m¯+„nÈç®Ñ-£’­:ÐAצ‹0Bôiã€>]uãÛ&ß6K´ìîØ©á"à/=^­¾£¿SWéùßõp×Ã]©Lq_8¾p¼Œ»|9d­²üãW¡Ýº$Ð-ÿß`â30uâeÀFQ½RFKo›ZZZ•‰ªø©]23âPÜÎÞ>{ûìíå}Kþü×}K#F…ÑìªÙUSÆWäâ÷þµ¼~¬Ü¶¹aåõJWK¶'¹Ï¯£ŒÊó[':t¸öÿÂ'!ÀIþ]bìá–øú¢_D¿ˆ~!}ô/-Üòб‹0àw:ÞÔM(Ïïv[îý­¶]Éoõ×j²öáÀE‡ÎK•)n/¼8ð¢ôÑŸ¼ç®fžÂ €M¸´R}T®+k=®¼°¯•`:¹^[!À¿GŸmÒTÆ/fåÌÊ™•CeŠÛÕø«ñWã¥þÖïæM„Ð McÛÞðÞ?×G†X~£W®'çù}ïqÞ©•ö\µŸMüÜW©±°…KG3m¡õz–ß5ìZ0ß6ÿ¹+Òb¥?kß"þÒãÑ+ lŒ¤ç?1&1&1†Ê·µYk³ÖfI}Û «íÍZ—§qÅqŒ÷·å Ó#ƒ“}T¿7¶h"Ð[@;ÿñwâémó~ìýØû1•‰ªø©M\ÕUÝз4`T˜îÁ݃»K}öæ![®Ü¶Ù¬µÚ •Î#ÛݼµƒUϲÿü£˜~nn Kž,ü82Àóï&{¤·óÚŽk;®í 2ÅíbÞż‹2n…ºãï¹}›^f¬ôPɳöÁXËU³m-äýÖîæó=­zþë*“ë ìU…³(ðF9NË=Szæ‡ü2ä—!¿P™Šùå¾NJ½YõÕ„”šÛ ϽêŸ;¯Ô£nõ¦×‚wF “÷çm-ôÝ[Oég•îªÆ%¿ÔèBûVý;í¶` Cmg¸¿–žÿœS9§rNQ™â¶|ÔòQËGIý1^'¦7¹P¹iïÞa®ÆSeÜžZÞSuÃS½¬Ÿ¶ˆf¤ãQþߪ¬Ñ¿Ú®Îæ1ÒÛ¹×g¯Ï^*SÜž‡<y"}ôÿƦ–¡ªº¡Ëïº=rÜòÿ¾gÖѨ}ðÈÂö#­3Ëþ­I]ìªýëÄ‹’¿G8]^ñ~{=e܆T§ƒNT¦"pNwNwN—®üŽçº{¹qaãÑfê2ž}¾4}iúR*SÜâtâtât¤~“âñ·Ã^¡jüjÜÜeÿzFuIßWöoô*//®Â~Ù]ÑŒ=O>>ù8•‰ª¸FD\‰#ô-fÅê«W¬–~ÜlÙ³ØyNå6Ͼ˚lmôOó¬óFå¨²Úæã-GXn{pµïB×½O‡ ø¦¹YÂŽÎûìU§å944^¡:·®m¹_Œw[0?‹žº2n“ò*ûUö«l*SäKrgŸŸ}.ãV¨!=ÌõÍ…lÑ9QϤ䟃­‡üntì¤ÛÊó6¹“–[ÿü›jÏáúóJÿùÖCk¸íæÏ¿Þ>ßIUzæ#""""¸õºBp½ëz×õ®Œ§Cýþ8ဠΡ–ºEX ýˆÎž»KnÖl|ÈÅÍ?šì”?¹•²ƒ†¥ö?MK]µ®÷äà†Q6)nr?÷IöIöQ™"_’»w-NFÒ7j‰[%¥¿\ÿÙFFe6~ÙrŸÚÞ_£æM5tóÕÙþ?s•®uç·4j¡ë±XMåŸûë*ßrÜiTˆ…~šôÞ¥ê§ê§rå½ÈÜ.¸]p[úè›YªÍS.œžHÆs¶ÆZöÐsß>ÅûJÓé%áîáíNXOê¶Üdÿÿ»ÇL‰þ?šßÐÕZ¯÷òÚÀ-î¦Òû5tçÐCwR™Š`ŠÚµ)jÒ5ðhfLk·ÚÀ_nlyÆqsÃ-2N7LÏIÏI§2Å-ýeúËô—2÷3²ë²aE‚è‰jGý’ò‹fu§šÞq¥·Pû˜GXç‹àß>,ø£Ù•o·Ì0;²ù¼yšýœ[Û—ü™úÁ†A®ÿüº:‰JžÂ €›Þ >1Ezæ÷5Ý×t_S*ÂG\u‰/ô-&éPÒ¡¤CÒ/†Í~-Û[†VnóüÂyàÿš_*¹µWù_Æ7‡÷úÉyI£¿ëPžSúß·éfÐH#PK=üM½´åmñâ;Åw¨Lq+ - - •>úJ¿Õy^{$#列›Ðàø£ÃìÒÕ†©+ù–ýl¬aÔ«¾òÄÇ]3„¯½5y[ã2n¾w)îOCTóžÍ{6ï™t ؼš¿zŠÐn]r3çò|ö)­QýY­_“I¿»®¸!´k®¬L‹•ñÔí^A½‚zñ\(…©—©—)ãî,ÎñýnhµBP:¡Þ¹AVJÓmê/(Ï+®Ñ¥¦óT¶”ÃB€ÍjºÝm0Pzûßmz·éÝ&*SX­¶Zm%ãdßÜaCWz,BgTrKç¾Ææú:‡ËßñuP7œ¯Ù>7hè:B €uN´×—Þæm‡·Þv˜šTÇLŽ™3‘ñ°§Ëò¬C €¿ÄXxõ|'Ï%Òs®²NeÊ:I‘¤HRDeŠ[Þ²¼eyËdÔ€F£FF;…ÖåéDµü­Û„ò|Þ©-³4s8kÕtÊ¥õKþMéÓ…°GWº]!ãôåÛ~·ýnûQ™>àªEÜ¡oiÀ¨¸—Í¥W—^]’~a´íl0]cpÎ ŸþÌ!Ðø¼‹©Ž£Ú¤’g—Œî÷t Õ¬Zì>Ë"ºÈ̯·ç¦=ËͯÁ}•ê=•=”"† ¶<¨7A{ôôöÓæ2ÎvïÔ;¨7Ká ¤CR‡¤IÒ•e{ÍÝEhpéå€þúëv×;«í®«²µžmEÍΘ%ªöšñç°›wñgì[„-ú-]u›=R;(c)<ø]ð»`jR$Å'Å'Éx&¢É³Á‡‚í„öÜܶmú ¿I Õ5YëðRNƒ¦êו†×ŸÜ`cƒIæ§lº7ÝN¿oª}ÆŠ¬ãÚBÛþ’ÑrÛ„7«Ã¥ç|{­íµ¶×¢&AÑ„¢ Er¹B ®ÛØÔB\Z²=>?Ìp0øÙx‹ÓQÕU*)ê—•Ú+«Õרãߨ·eœÊÔÖ~O͘t9¹Ù!ßzjî?ë>Ò[¨ÚRµ¥jKI¤@R@e*‚ùÁóƒçËxÜÏ•¬ß8uÚ’J®ôí1Ît°öýCªZÊÙõ+™ÔéÖDÒ°sýé¿î7.ÖJ)ù3¥ûD¡íÅd;#§’Üî~»ûíîÔ¤"Ȭ•Y+³–Œ‡Î´ó9ÝȇøKŒ÷®ˆt­&=çãÆŒ  &G³üfùÍdÜÐÉrñÙ±Bëòšìøý¯ÐPíoÜÛv¼©â«÷“ñÕ:ûëY©ì+y⯱S?ÿ߇8w]Ÿ˜¤ñ¯ïr6Æq–– €ë&ªÇkÉxövÞȼ‘y#©IpH¯&ô-'G’#ÉQ«¡VCMÆU¶zµôðN ü±ÿU˜‹»s[O±š)=ÛûÕö«íW£$ÇvïíÞÛ½¥+áðÐeÖÃ…Óüþ¿˜ÝõÌ®›¤gÛh´Ñh£ÑT£âx×ò]Ëw-eœ¾Xo®Éï PK/|Ú­ÜQ{L‹C>;d<ítúéôÓÔ¤âèÔ'¨Ot%þ×Åò˜Ð®•èJǽ¼öwÄ­?XKÏö´_§ý:íWªQq\:téÐ%w{š}Æ©…IºÐº$é›BW•þÿ>õ¯îõ¼E¨‚™3 fR“Š 8º8º8Z^%þ´ßs€ðàªrÛçîó?yec÷©:Ýõt×Ó]©IÅæææ"] Mï'F,ªZ]^é_rSè’Ó°©M‡æƒ„Ðý9¬XY÷ä#éÙnñ°ÅéFTÀ¤˜¡oiÀ¨` Î,8³àŒŒ¯Ë9>ìÜ…Ù`WÝÑi´ö*µúÒ³ýÜû¹÷soªQq<Þ÷xßã}ҕЪS†FõªÕr <Þ-¬µÍ<éÙ»v;ì6Õ¨hì¼ì¼ìd܉ÁÁ2ôö‰.BŽ«Öèt-Â"ñg¹ØmøÕӦ㭆Ýëë9îEùWë¯æÇ;þs°öOÃ.s„›o è4·‹Œû<íß¾û~ªU°pú–FŒŠþ’ä~Ûý¶»Œ§+½3¼¥9•f¾¢ÆÌ§ýG»]“žgó‹æÍ/R‡ ç¹ä¹ä¹VŽVŽVŽtU¼h~²GóË´ô5¶ð·sV—ñ,Õô˜ô˜ôŠQÑ옴cÒŽI2n5øtp+‚Û »ùóÈ .«d<Ó1dQÈ¢EÔ¡¢yWí]µwÕäµmÓ¯¥n·.$¸­€›?ûüíem ÷D——ªQÑôïß_Æãþ¶ïÞÇ1‹­¢Æà v/ÒdœTýîô»Óï¨CEs¹Úåj—e|êùÆvÙÙèÝYEw²ö7r •žgoSoSoSêPÑO*žTK*¦înÝݺ»IW…öî|‹ïˆo?ì·qmŽÉJéžè;Ñw¢/¨˜’Jþ)ù'éªèçd¾Pç=Úç9G†d{˜Ëû^‘[”[”[D*š¢zEõŠêÉ«Š×Þ§¦¹£Sûü1p{¿E†2ºé½Nô:Ñ‹:TLK¾]òí’o¥«Â¬h¸ó¬­•vÃäQa›Oþªì a©ý¯À©äöÎvÅËêÆŒvr[×ãìf[fôßœh¼¦ÿ¢ñwëNW{ªù¿Zä«÷“ñU§”ˆÚ ™•ÛåÙžw?ZÆs];»vvíL¢j!®„9Bßr ƱùÎæ;›ïH¿À¦Fد5ö ±ÿœñýÍ![È{ {·üÝòwË©@ÅôZùµòke¹ FÓ²2‚(Ëá¬Vm#¾ý¬E óôvÛHÏ­©’©’©’ä…ä…䨘R–¥,KY&ãúû~ÎEª×ˆo?k¬{½žMú4Ž+í–žá;ï\¼ÃýfT‘m‘m‘­¼o›™?ö×tÛH¿ö9ã–ž-·[¦HÏí” )AS‚¨@E¶g|ÕâƒîSä½³å¹ç¹çq ¢‚ʼ˜y1ó¢Ü“}WnXz^§rŸø[g†rT½ìòÇu÷ªOÒ<ßìÊŒ·[fáæÏZî®ïÛ]•ÞÎØ±-b[P¨Z€¿BßEŒ/"{Xö°ìaò^r/T~Óüíý§«'»ß±x(=«þžð÷„¿©=ü¦û›îoºÒÕ{ú©&hï?mÌ,:VÝí¦¼÷´]>tùÐ…ÚSdW{_í}µ·tm(Mª¿·Á#ç{‘ÉÜúdžv6ƒšKÏí1Óc¦Ç¸ŸB+Ž/Ž/ŽW½¥zKõ–t… 8ð¾±)Q-7¾0S—žU·Vn­ÜZQ{ˆœ91r¢t…Œþ¶™‰~.ýÚ§¹ÑC÷zl÷móÑ’GK-¡öÙË./»¼ì"÷Dp£Ó§Zô£kû´qÖ‚á&ë¤guQî¢ÜE¹ÔºÏé>§ûé il:FcñŒÊí•J¶Dç’wµî6Ò×ÿs½¯]£ ƪz;Å >nŸ±"븶¢_Û¿õß-÷Q# <¤öPµ9„¾Ÿƒ_Ђe –-qeÆè9ÍzÔ£ÉÿØ1+|àk÷îrϸÿ%ó—Ì_¨:<ð{à÷ÀO^¼­w»…&MþÇŽ¾?uÑltDÆíµ‹B‹B¹þá2Þe¼Ëxé:±x3ÚwѢܛµ ñØ$÷S¯pUáªÂUTbÇŽ‘ñ|èFñMW‰ iqÝßF‡@·üã´Ð«AÖËê,SÚW{©ô¬¦\I¹’r…ªÃû“ïO¾?)ïýùŽsï —ôn;®Šs_eqTz>d ÈAÕ¡Äø9ã猗DÍ8<Íd9]ÛÇŽwÉw[$ïÝì•Ù+³WfT®?½þôúSyuâ´-<"¡³bà’vRZ{îÌ{;Åɧ9^³éôdy²’Oó]d;Ò]ƶ¶nÙºeëªUpÅ"ô­(Àø‚Þ¤¿I“.ïyeW÷L'wZýò#¾iÚV/Uz&ƒÔƒÔƒÔ©7”°7`oÀ^éjù]§ß CmZýònn^ìðFÞûXvavav!õ†õú«×_½äU‹ãú5½Okë–gtž°Á:i·’¹ÊqÕÒ3Ó&¦MLê %Š-.ZÜàEƒ ^HWKŸ„U1ƈuË?úôž‘l`,ãÚ_77ÉÉɪ%"²#²#dÜvÒ5Cç¾Ú=I¿­—!\yÆÌ>ýÝËûþ¾.}]ú:ê %žÍx6ãÙ yÕr×i—-tpå»îlÙ^[Æs\XpaÁê ¥u‹îÝMÆ«†C{l™EWþ±©Þ¤àµëä½åÿ˜ÿcþÔª"àÏGèû%ã‹‹<y0ò ô‹SÝNÙV),¾ïÏiûËfvÞh/÷m.+.+.+ŽJÿ–òŸå?Ë—W3)7Þw¤á/{ÌðÄc…¼9Üþzûëí¯©4HëÞ;¼w¸tÍèÌlY·[uþòŒFöýaÜzé9411)Ž)Ž)Ž¡ÒPZ¢I¢I¢‰¼wì CϽ²2'Ü-{»&ö’¥‹¼9¼a~Ãü†9•†ÒòÕóÕóÕåÕÌŽn­ôš ûqŠ¿½—qëãúO5:IÏáäZ“kM®E¥AÚõ%êKd¼ú¬vš>WU/Ús¾À3Žn®ìñ¨æŠÅ6?È{{oöÞì=×þâ_ø<ðyà#¯flzÌÝu€>®ìÑñÒšìÓòæðh›£mŽrš/ª0àϳ'fOÌBߊEŒ/®psáæÂÍÚßi§ýôËuJ„½£1°üÛ>»¼èî!ïÍnëü­ó·Î§Æ Ïúë{¬ï!¯~ÞŒ‹æ^Dó/o ôí×Ó GzÞÌæ˜Í1›Sümñ·Å|ƒ OòŸä?‘{úE“ŸÆÝ[®Dó/÷¶ÏÏx¹e²¼Ù»vãÚk7¨1ÈÓóMÏ7=eܳÁ¼S í—Cª¥æØüDÐ+ã¶Ï†WNXh¨¤(ûÊˆÏ 'Nà^ëìñ³ÇÏ—{=b§Þw]vÒÓÉ#Ûx&4Ù*÷©®KÞ-y·„ƒ´Ü¿rÿÊýK^å,UçhF—'ÿ¶Ï/Žš¹…Ë›½Ã·ß:|‹ƒ< ,|°ðŒÒÙPçŠRW§àpµø]ôt2FǨ5)qZ×›§tl*=yã<ÆyŒ“ì‘ì‘ì¡ÆPu¾"Ÿ"Ÿ"BߊEŒ¯$U9U9UYÞ øÐêv¿Z;³Pz,jæ×Ïss‹. Õ·HϘ³³³OñâÅ,…CþgRQRQ’åbËÅ–‹¥«¨Ý-7?ÍZÅC’ç{>e! ô½ÁP+¹gœ¥µJk•ÖŠêBÙ¶}ØöaÛyUd;táÏ{óX(=:L »~r¥Ü/ú5gל]“ºBÙ^ì|±óÅNyUÔvË„ËzîĽң›ùàÿi«É›·¥¥%ª eó{å÷Êï•tý¨4SêYgìûIC¦¶xLWz¼`Þu²C²¼×]ì…Ø ±Ü~ÿ!9*9*9J^^ûÐ΀ήô˜÷üÜÍû«ÈxXRç¿:ÿÕù/ÉkÉk ÷y‚\ùùùªEªEªEÒU¤u­yBGS먙)[èïJ¦Ë‡&N}$ïýêÑÎG;í¤ºPÕW”Ò×ú~>`|Ua™a™a™ò>ò/ îÖÁ± Ë’‡þý¼ÜÆÍ²ž`pVÞ\=~ôøÑãGTÊãÁÖ[Ƚ¶ ¸ËÅFÜ"ìŸ1¹aÔF‡òæj½Öz­õZTÊ÷U#‰éü¡ó‡Îrc`‡yaoNe9À)<|R‚a½BÝãFº2žªmm]àSàSàCY¡-ïu×gä*Mã[„¾%cçy³n,–7Wû\ìs±…òÈ^”½({‘¼Zj?ÜÐ[Ó°ð¤_SÏyôzéÉ}M\ÇÊ›«Ñi£ÓF§QQ(¿™gNœ9Q^EÝl=Èy ]^qZòc¯êh­+÷tìY³RQ(›¦7MošÊ«%£N½gÙI—W2Zî™øÃj¹w ‰^½$z q †0ãëR’(I”:ÿÜùçÎ?Ë}ƘcϵέyQ`ΧSUyóó‡ÿþøSJøXG>ùpDnµä·±ÇÌ®+ò¢À•Ð?:9Ë ´ûh÷Ñ–DK¢%ÑÔÊïÍÛ7oß¼•WWuG©Ò8ï´úaÜ,Å\p¶Xïun¼zK+çmòféáćN¤–ð±B… $¯®ÙEÙ›&)rô۳ײSFWåÍÏ:ãuÆëŒ©"|¬kí®µ»ÖN^] 5k¢ÓhVñb¿ûžï³Ë{Ò¢ÿ ·§òæÇ0Î0Î0./(/(/ˆZBùfffºTw©îR]^uÝ?{°§«­‚öz©)»¼œÇíŸm8BÞü$I’<„ZÂÇÚiºÓt§ÜØÔo¨ûTEŽ~­NO[e$o~FõÕ{ToªbB a"F%È^œ½8{±ú/꿨ÿ"ï«À•ÎÝ,hQ Âßӫɬ0Ç+&òædÕýU÷Wݧ~ð9–H–H–HäÕØÂ—£Ï˜yIž§œðj®8‹oqpl$oN  4˜“—“—“GýàÓ¤-O[ž¶\n ¼T½¾f+‡Í+½cèªßyánñ·ÕM¬j;[É›™ÄüÄüÄ|꟦èzÑõ¢ë/u¼Ôñ’¼ 1×TYÑ¢ßî ¯2²—7'’W’W’WT>Í¡‡fš!¯Æßh¼±‘]¡Žo®çPÅéõÎî{Éõzí2=ùæÉ7OXŸÁ'ʺ•u+ëVÙ5––¾wž‹†]õÛ9y²gFà~+ ¿“7'[ã·Æo§~ð9¦˜:`êy5f’<¸ãä#Šý6½|8"HÞœ8™9™9™ågçgçgS?` *Í“O<9Pv‹rJµ“‹m¸¸—òGúvõ¬á÷ÞÒDÏ@Þ² î.ïƒRü%÷î³½Ïhÿ&÷Ôç´…i ¹Ý:*@ñ¡âCŇÜp{Àmyõ¦Þ¹Ðw‡sZ¤²½¸{=‹y£´¼“7j{Ôö¨íykôÖè­•ñ!†0£’=˜ô`ÒƒIe·(Ë&º57o'9ãïãe'¦å€ÇÍû]q l:"rDäˆHyµg§Òx@õ§ŽÇ šëˆjQ YŠ™—ê‚ïGµ4½Yö;Ïc·ÇnݨT¬¸Ì¸Ì¸Ì²k¯É®ßo„®ßr@³¶!-7õ.{ß·nÜH b½{÷6Ît±ébS¹Ï»u^Ôo¼–ÃÔ½?µöSô;yÇ…¨f-šži¥%oß½3¼3¼3òFäÈAµ b­H]‘º"õ?âÏ9=8÷_ô»cd+ó¦GÊÞ÷Ë©—S/§R'¨X·Ìo™ß2/»ö"þž’ߤ¾ø¢ß{g,w)ÒˆR‹®«#oßg¦ÏLŸ™.)–KŠ©T”•…+ WöréåÒËEnüYØtŠÓx‡g«tÿh.ªÇúÜðâüj}}Ÿ™CÎÊÛw•ó*çUο¬ñ²ÆËT ÄŠÂD Aȸ–q-ãZÙ-ŠËMÉjéôûÞ5¿ª/ìÿ¦Mq³€²÷7D" ‘HvKvKvS!ø"T$*•I='õœÔ³ìj<|{ÙyëÙU}9 ]ëàF×¶6-Ú¨¦ÈÛSU'U'U§§&OMžšP ør’ô’ô’ôÊ~ÝéþÙF£·“É:å³Uøš`çYz$Ý4ÜÙ3pTµ²÷÷€ùóæÔ¾œlÇlÇlG×@×@×@yu¨dP÷Pí3í\m¬_Õ£_ß=;ª™{–ýºëÜ3¸gp¾i¾i¾)‚/gƒÏŸ >eWcø÷ï“´÷7ôÒ¬º]^Öú¯Ý{ô¾l¶EÇ·ìýMuHuHu 6ðåÜ|wòÝÉe×a{·DM§{ŽÿÚܱ ÷zÅ)É^^[¯Ì®ÕTû?.-ˆX±,‚ÚÀ—S¤V¤V¤6¼ßð~Ãû•]–§'z¬ù®ªG¿¶ÿ›ÿaÏ2eŽ:r/k1kgÖάÝ+ÃW†¯ ©ˆ0„‰òFùòe·l·l·ì²¿*…Mhþ‡…uQ¿áž»«ÊrÀݹ½ß¹Ä´ÔÐ[ÚpZÙ{5*jTÔ(ê_ÓZÉZÉZIÙ•Ùî‰ÛXÍÒ¼áÚ«ª,d%…{öZj=®‹y²÷®Õ¼VóZÍ{ü.ø]0õ€¯ã–×-¯[^µË¡‰A õòéUk9ÀÊkêϬkw¨}½Îì]ÒŠ¤I+¨|Õ ªTóÏðÏðÏ(»2Ýçù™j?œ|þÂÍfí«Jè;AëÜ8«zöO{4Ôü¶ì½›¦:Mušjñ°âaÅè |Çê«{¬nÙ•iìÑ`l½3¥uwp¼YÅ®÷õh¥Ñ4ºì½k¸¥á–†[2|2|2|¨|Ï7<ßð|CcËÆ–-Ë®Ï ‘Ó7™&ñNqòª2Ï ¾1v÷Mç®v3iЬ콋Þ½'zõ€¯$J%‰ZôdÑ“EOÊ®LÍéΫZŸ³÷]Þï¨FUéòœÎE|›jÙ­Éðäÿ8Ѱaφ=~Øýa÷.kB †0CpŠ4‹4‹4Cއ9^žeñ÷[ÅXý”ç>4Ó#Nh ûôs½8¢IÓ¾zéåÙ—ÇÇGj•%1.1.1®<µ:zCï!꫎è¸uÚB@®FB¤Ç”­;ge4­_ž}™7tÞÐyC‹­‹­‹­©|}¯'¼žðzBûÌö™íÿãÖÐõ¾ÑŠÒÓkú øJÄz—š‘/“ m9Àºù¬6Û\¼lldgRö¾˜{š{š{fggpÊ*ÍF=ÊóIÑ¡ÿ”0}Óɺi¦"¸Ð÷XRˆ•·÷Ä1óuï–g_HHpðQiÒº¤uI뢨¨Xv­þ:Úø±VìͽԜW ­Ë+|ãçåvüp‡u6ëë*)Õñ.{_†Zµjs9çrÎej__~ÇüŽùÇ]wmܵr}R/YÐì~AË$5Ok¡õzw·î?ä; f?Ý^åÙ—+[®l¹²…@e‰uŽuŽu.O­êÝë´}ðvû¡zLJ .ôu\׿ìÓ¾CM­Sž}YiµÒj¥•d³d³d35ÅA a"† ÅOˆŸ?¡v¹-œåâoÖøUà 7÷y•µ”Òå–ýŸŸŒ6jæ–g›ûúõõëë÷ºóëί;sÄ!/ß¼|óòM7ÏnžÝ<ËSÃÝ[žÒÖK™ºñˆƒe-¼>9§ùݹsFv2õ.ÿ;FÒÞ¤½I{9â?‰ŸÄoã‘G6)_ù*uV*0ÿ~xÿYWœFNOî^YËÃÇN[Ú¾^íãú‹ÊõIýýÂï~_ز°eaK;„àÆòËo,×ùVç[oËSÃÍC‡NÓ^6VùäSË:•úŽ\~ø‡ÆË½{…h•g›í-í-í-Ä>ˆ}ˇäšäšäšLðà;Á·<5ì4];BM=¶mǶÍ*«ËËóúÞãüºËê7•ÿÛæ†hȇpœXsb͉5å¯áÐöã皿ɾ¶~‹³•Õëµ·±›Ûr¤ãÀ†+ʳÍ#lFØŒ°ÉÍÍåˆCžD?‰~í=ß{¾÷üòÔ°VLóÁöXëÍ|µõ|euyö^Ër¬ÑßÝÅÂ÷i¹Þ,´jkÕÖºüîò»Ëï8âPLÀ&`Tïû¼ïó¾Ï”ÅSOY\þFE¿kýBå{+µšZô¼‘Ðó¢³Å.äo÷áYçô U;OšnÒÿ±öG:5ûÔìS³9¾¨"I‘¤è„Õ «V[Û£:õê¯éì€ð>v¡…†Iç=ý*v àºÉ®›Îÿ·Âò÷æûµiÔ«{¥üÛ6Óa¦ÃL‡5?ÔüP“ƒ aʸšq5ãjçöÛwn_þÚVkÔøoûšæËjÏýÆîâÒàÃû+v ÀaLØö“=w³i‰¥†–½ƒ§Aù·Í6Å6Å6åæ›wnÞáøB˜ ] ] ]×l^³yÍæýÔó¾:ÖP·pø_û,¶VpÜë{}»¹¿Ë®“æÉ­‡;éLøØmÛ>uûÔíS‹÷ï/ÞÏQ†0]~iø¥á:Wu®ê\-m÷½cî§s÷XƒÕmš¿-¼´Å¯üøž{}êº$Gñ²jòÔv æaÕ·åß¶¡k‡®ºöe——]^váøB˜ÞD¾‰|9æÚ˜kc®•¿¶- o¨d­»<¦ñÖ´‡{ç»TðÍ¢?¨Å_óhÛ~U„­õ½}ħžÒB¥…J ÏÅ‹;Çñ…@mll8 s@ç€ÎÇ~£k”Þ~vÿõV§Úlðs~y8y]ßÉéÔì[;Ü z.¨3Nyl½£åß¶%M–4YÒ$ïYÞ³¼gd(2`0ª˜ô†é Óö¾Úûj﫵?‰vOº rlüƒnÚ’l×}fïw[·¶¶ê~Ò£c›Ü3™>;ì‚N÷öQ±Ó:Òµ}Oë´¯s–-¦yØß0Ö:RÿžF›ÚŸaƒöí Úy…y…y…MT¹§sOçž^»ií¦µ›>§þÛÞpÝ ñçôÿÿ3>³é،ՖGŽ­p±~{zâÚûvg’Ö=¶}"ceˆÍÃ]3ç°j²øÚX7³Cæv¸¨¤qOínÝÆŸöÿ8oà¼ó~xøáaŽ&ª–”)'RN4­Þ´zÓêŸVÿ*ãõœMêévlµ²§«‰ÑÀu?zï¢ËCÕWÿÝtspíð–… ×¼o¼`lÛ¥?šä~Ôhq»iýÚªz¿¶üíÓþ¿õÛÕoW¿]lµØj±Õ$C%C%C9š¨*^ä¼Èy‘Ô;¨wPïO«ÿ:iu-kï°ÚØÞHýyë¾7Míž¾Ą̈ë€Lõ‡¨lžhæ;øÙf ³ýãÃ_›|èvg‘¯¡Äû蘺ï,µZ%ª×ûœOÛ9;æì˜³ãíÁ·ßäh¢ª(:]tºèô¾3ûÎì;ó9õß­¹v]˜¥Ë»ZïR›¾ Éµà&CÆõ2pÐÐûs^õÛkm¯µ½VaƒÂ… 8š¨*Þg¿Ï~Ÿ½¬ç²žËz~Ný7 ·]×¢¶ÁÄ®1ÃÍÍΛ=óX“I¿»®¸Ñ´ù¤ëj76¹Çº#MŠÇ§…½0?0wî:£ïz­=Y«ž«;í:gêù«¼ÿ´ÿoÀ¶€mÛž,}²ôÉRŽ&P‚ÂDŒ*ìþšûkfÌš1kj ’RŠRŠRÊÇŽ;?<øðàÃŽªºœ¨œ¨œ¨-S·LÝ2µ¶€÷ï5ÞëÁË/¼ä¨¡Ê;!9!9q!áBÂ…„{;ìí°W˜¯;‡êÕªŸ68mpÚ X·X·X—C‡ªîyç=ž÷˜g1Ïbž…?õÂ’Ã’Ã’_{}ìõ1Žªº‚â‚â‚â#}ô=Ò×è­Ñ[£·Â|ÝõÓê§ÕO+u@ê€Ô5ˆCÚ®´]i»ükø×ð¯!Ì×f5ÍjšÕöî ܘ¯™¯™¯ÉQCU÷.í]Ú»´ˆ ".ùÛæ´ÓN˜Ù)³Sf'Ž ÂD ‘x¿æýš÷kn<¸ñàF{÷<îUÖW¢ ¦AMƒš^|mðµÁ(‚+zWô®è›?nþ¸ù•õºk¥ÑJ£•FLhLhLè×®\9.·gžuzÖ)Â7Â7ÂW?U?U?õë¿îêέ;·îÜ¥#—Ž\:òᬇ³Îâ¸@Ü 3 3 3N'žN<Ø#¬GX°ÊúÔ0$`HÀùeç—_&%%ÅѸݹ|çò˳»Îî:»ke½î¬FZ´¹­å¶–ÛZf=Ëz–Å.!romßÚ¾µ^½þ œ9$s%s%sÓº¤uIëù0òaäî˻.ﺼ¢¾mztóèæÑméÛ¥o—¾½”t)éRRîëÜ×¹¯™x`à©É©É©É Õª'TOœž8=qzÁ¹‚sç˜àËÉ+È+È+Hœ88qp‚V‚V‚ÖÍg7ŸÝäŠ à‹K²N²N²Ž·Œ·Œ·<×î\»sí˜àKˬ‘Y#³FÂÊ„• +²²²^»½v{íÆÌ_²Í“¤JRsssâÄ/ˆ_ðçˆ?Gü9‚‰¾´¿”ÿRþK9>1>1>1ñDâ‰ÄÅã‹Çgf€/ç}èûÐ÷¡‰Æ‰Æ‰Æ =z&ô¼?êþ¨ûÜ-0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0ˆ0>ÂÅÕW_\¿=~{üöÄ›‰7oJ|$>fT¬s{Îí9·'¾n|Ýøºç†vns”°B{sî͹7çâ£â£â£BÚ†´ ik•g•g•Wû³)¯U^«¼vȸ!ㆌ‹^½,zÙÃ܇¹s™sÓ‹•/V¾XyÂö„í ÛÀìÀìÀlƒš5 j~þ*„NC†: Gÿ:ú×Ñ¿}dô‘ÑÏZ=kõ¬sÅD¬@^Ï=ÿõüãvŽÛ9ÎöŽíÛ;µ+IȽ{!÷ÒRÒRÒR8.ˆÏ“CO=9´¶þÚúkëëØèØèØ|ýõ‡ú·ëß®{ÅÁWÌhŸÑ>£=ÇT,éo ñ߯ÿ-3ƒÊE,r7ëܬs³Î`õÁêƒÕk R£f4šqðÝÁwߨ¨¨qÔ¨bÆKÆKÆ'K>–|¬õÀÖ[æ*„ë×® â{Å÷ŠïU¼«xWñ.øÀ&`º±ñÆÆÛ¨´Qi£ò‰7pŽÐôÓ]¢ó£gدõŒ;õÛõûq‹£~ZpÃrÄÛU»›.š|.Ü£©æ$ÿµÓ›ü0îÆòL“|GN‹Õ‹ïÔy°£Ú§ÛE|N3¶{ìî±»Çr4²$»$»$;Óɦ“M'Ú:€ÊsýhÓWº‘­—÷šeÒg`ÎÄ¼ÆÆcê/žl™8±óõ¦;ƒuÃ[>›¿&ºñð1Kf›$n>yK#×¶sûþTÿŠÑìÆáŸöÿÕÔÕÔÕÔK‹K‹K“œœœàh€E a"‰W _-|µpDÒˆ¤IÑbÓw0íe:cèÊ©[lÃnÚwÔÅ%**%¥¢F'ýu5ÎzXVŸV õÜý‡Ž3Ê¿mjnjnjn)ÛS¶§lçø ÿ÷ðÿ×v}Ûõm×D§ÿ¶i§¶5FNž—jßxÙ¾#N» áðmh›ã«-2G{-ÙÐ×&ÇݱüÛærÇåŽË;uîÔ¹S‡ã ÊÂD\åÅdÅdÅd•¿¥1q¸jâT§¥á¿ÆçTl£UþÑ2bîšW ¢-úØê•g›Ç<ó`̃œÀœÀœ@Ž8__ñýâûÅ÷#¼"¼"¼ÊÓË×y[ORÿˆù€ ¹³]”¢TRêWÂ*„sÔ†”ó…£ç.ŠWvÔhªóMy¶|Ù«e¯–½*êXÔ±¨#Ç”ÂD\%ånÊÝ”») " " \7[nbè½|­óô m“’++ô•7Úv_ðpoœæ|热Ÿ•g_®‡^½J ðud}“õMÖ7^ ^ ^ ÿq§±Ö{XM›š©ëÒ0Ê6Å]@«Q¡)Ǜ훲ù­êqÓ¾V-ËÞëlëlëì'!OBž„P@`pó$ôIè“Pƒš5 j–ݨ˜m¦=ÓÆ¥YÔŒ”ÍB }å6ÕçìÞé£2D¯–ñŲ÷îः“N¢ørRMRMRMÊuêyîøóaW«ÊúCÉØtîä˜p‹òìÝ…N:]èD=iÀ&à*ãVЭ [Ae7$ãZzMw¶édçªÕtýkl’²Éìg¿vÓo—½¿«CW‡®æj`*Ø™¢3EgŠÊîÊõ~éP@§EámâŸUÝUgÇõ£Ïí5˜Òõìpç²÷÷hõ£ÕV§6@iÀ&à*àÚÆk¯müë}'ùo™±ª ‡¾ònÝ{Á«½—k?V:P7PÞ¾/œ¸pâÂ‰Ô Ÿï„ò åÊe¯BXFM¸·z¦øV!¬FO]¹áaÙû¾çæž›{nR' 0„‰XÐnŸ¿}þöù²fkfØo_ÓUztÒ_Wã¬Gþ67ÝëÉ›‡ÐM¡›B7Q3|š³ÁgƒÏ—½ a7bIËCÚâ^…°^áx̾î|õï4›É›‡#ãŒ?2žšÀ&`z¾üùòçËÿ£éú¿Åê"ÄÝtýë¦L'"kž?¢û÷Þ*òæ$ú|ôùèóÔå—z+õVê-y½v½¹:í Ú:Z¬*8ÕCqV!œtÖ~8kÕ «ykëÓòfæÏÅ.þs1õ€"#†0 NA÷‚îÝ­¾·úÞê{¹Ñoþ²ïc+NÓõ¯Q3Ê9¥µnçV‘=ÛÊ›ŸKÙ—²/eSK”-ëbÖŬ‹r£ß :?;æ®ýýÌ"Å\…pú;B?±zƒÁæAÖrŸˆœ¹£¬P4À&`‰?(~¼¦ËªÏÔîVÐtý«‹ß—0¢îtµ'šÿ“ž±¾ û.컺@ÚÉɉÜ{µX|îà$VþõlàË+vK–7cKj-©µ¤u€¢!®(1{böÄì)™ÃÙÛgoŸ½ý•÷+ïWÞÌ̧!„œ¾9}säžokÒf੉h´ävë—dÊ’7{'sOæžÌ¥Æ(ñèÄ£NÈë£-»½XÕ–Õy£Õ‘ic£ªÉ›½4“4“4j ÅAüùŠ|Š|Š|ä}¿" þ4À‚0+nVܬ8é²n`jvÖº®KµÈûÉÓb•=6®9zó¢'òÞ >\ùpåÃ* €Nƒ; î4Xºwnô[;¾±ÂPžÑP¹{xÀé9´¿aÃþ†dºdºd:•€" þ|¥¯ý-apùW²ÇnݻɽáÒö¥µ×§­*×hµ"å˜úÔf \æIÏd˜R˜R˜õPd)¦)¦)¦òV!œš¬38û+ å5Ö+³–7“±›b7Ån¢ÞPÀŸ¯$Ð- wk—apÙ€+Ùˆ§#žŽx*]¸Fcz¿Û„†ê£o=uÉÌC¿É{;x»ùíæ·›©:€Â9#9#9cyÛò¶åmé~¹É À÷+&°ªðÑ·ƒ®=eðúîÒóY?°~`ýÀ⟋.þ™Ò@Ü€+apE!®4Ož=5’{Öm·uQñ¿ÐJ}Ú¨w²“ã`uéY]°*`UµP4Í/š_4—î”ë}¯uTÏÝE)ª^Š ë Ÿ0F¦$7xÜXÉîgé¹ ‹ ‹ £ö7à/‡0øsWš¹çœ{Pº4M iœKõ9£ƒg˜ú‰-ò^üã ÆŒ£Š£S×N];u•î‘›^^áÅJÂçŒÖ]fÍÙ¶Xƃ½\í\í\©=Äøë þXÀ•  yAó‚æòÊÑ1}­ù Ú§Ïu¦µ¬Õõ­ô Ÿy~æù™çÔ!@<yò’·È(™$™$™D5 >ÀÂA\ðWUÔ¥¨KQyEæ|!Ò鼄–©bG£û}½Ç½–ží¤ÓI§“NS“±zµæÕšWk¤;âÆfXÿƒ/1jª;uie =çS§>N¥&`~Vø0˜ø«Jžþ<ý¹tI鯶ÎêU@›ôEnýnþ–=†Òs>õÀÔSP“±:ÝútëÓ­eÜüùä°Q3#X1øcµÀŸ—wžó}Ï÷=ß÷œš@|€…O1Ã`à¯j_ô¾è}ÑÒed¹r‰Õ]i“¾ÄèÜ|ýŒs‰Òs®ßM¿›~7j VSkM­5µ–tGl÷ÓâúV³bð%Fû¢P»ãÓ¤çÜ÷‚ïß Ô$âC\µ(NLüU‰9&Rºtì3Vd×ZÓb±kÔ¼…“4¶8ÜoÙRÙAÃR[RÇ n°ò$e³:'4®8Žñþ¶ñ÷££e ¿S57Þdù“ôÌç…ç…ç…S™ñ±Ì±Ì±Ì‘ñ*ûõÃÎme⋜†þ$ryr€ôœ+P> |@R,)–S™ˆ pÕ%î0˜ø«j|½ñõÆ×e´^‹7& âé¿NáSLKÚªò—»fu§šÞq%¿+ÌLÿN—ó~ûe<ƒ'éqÒã$* >2bÈ(Íßu£„Ó­‹uB­fãqv eœ†>#oFÞ *qã"®ŠÄWòAÝõêžš3…Ó¢è¨xûÕ£ô–´aæCGÌŸÓ¥Ù–ý7'š‡4œ[[³‰ÓªV“¥÷H˜­—EÚhÝE®Ò[{¡ðBá…B* «Úë=Ü:÷e⋟†nì³dÈßÒ[û,ûYö³l*qã"®êÄWòFsû-žû„МXWŸ9së¿"RÃÚÝ—,)ù¯ò Úp]O¯ßJÿëE³¶ ­õjö{HÊfÏ=:tîйCç¨L€"¬B­ìÓgìV!¾ôh6ÎñŒIÒÛ3éfÒMîC€È¿q‹IÕ ƒ €+ù Q@»}Ï ¡9Ñ3é0 ©d«ê·7È0Ÿá|pÃóó+ÿãÙ6é‘ÁÉ>%^ÈgàÚÆ,úi¿Œ+€7,Ú°hÃ"* «æ‹jÌyÍ*Ä—›¼¿;l¯ôü'wOîžÜÊ@Ü߸€Åªj…Áßç%¡˜ ît{=BçÞ6|a·Úã×’­2Ñè1±nù›¨]Ó<Þ¡½×¡µ^öý–{)¢ÞЬIóÀyË_² ñ¥G«nSÝ7Œ§ÞP"fOÌž˜=•¬ª`€IDATÀ ĨF¯å£G ¡9QñÕûÉøjÉVYÖÿ~åÿ>âÌÖI¿»®¸Qò»õµ :›% .~¼âõq]ê  È, ‚z­\Ê*Ä•Îô¸{¨7”ÈÎÎ&V ¹¸Î å¨zÙ%[õ±Oбî;kû¶£%¿[g=+•}%ÿÌÀ‡p®÷*W 4º¸äèŠö#}È…ó à{Û,hÎÊóåÿÝ’suK~WÅ®ÑcU¡µ^òž |@R,)–S™ˆ pÕ%¾Ð·4à¯j_ô¾è}ÑÒåb¹r‰Õ]…Ш8\÷"~¤†·ýIÏ‹å/÷’6Ì)"|J‚©Ð¢_çæëgœK”ÞfýnúÝô»Q“±šZkj­©µ¤;b»Ÿ×?°šUˆ/1Ú…ÚŸ&½Í¾|/ø^ &àªEÜ¡oiÀ_UúóôçéÏ¥KG7¶uV¯á´+%[eÑþ·! ª—´auï6üŸÖìÚ¹JÏëþ¡ü 7h»kŒwhïµÀâæhõE¶¥Kh­—Í»ù[öJÏùÔSL=@MÄêtëÓ­O·–îˆÍN53‚Uˆ/16Q üyyé9ß÷|ßó}Ï©IćXø'ô-ø«*êRÔ¥¨‹¼br¾ét^"´ÖEÞ“xÊÿ„žÊî÷õ÷Zz¶“N'N:MMÄêÕšWk^­‘ýaý?avñU}BSÝ©K+é9œú8õq*5 €ø ô›°B†¾¥W‚aû†í¶Oº°l,çºïRrSÅÆ†Q6)ÍkoªsWi°ôlç´Ëi—ÓŽjˆ›I”I”I”t_ìP°ªûsX=¨°ÛY·]7íì#y‹‰’I’I’IT#âC,„¾¥W‚óÍÎ7;ßLºÈ©µUîó;-S…Ýüyí¼ù»KÏs—}]öuÙGAd@d@d€ŒAïæ9s(«56Î7cY¸ô}Îèà¦~b‹¼yÁ¸‚qã¨@€âèÔµS×N]¥{䦂—Dx±’ð9£u—Ys¶-–ž[;W;W;Wjq#þ:}?p¥yjôÔè©‘¼¢tê¶.*þš¨OõNvr¬.=««V¬  öŠæ¢ùEó‹æÒr½ïµŽê¹»(EÕKQa=áÆÈ”ä+Ùý,=·qaqaqaÔâFüåú~àJ6â鈧#žJ¨Ñ˜Þ/Ç6¡•úØÑnê’™‡~“÷²»ùíæ·›©:€Â9#9#9cyÛò¶åmé~¹É À÷+&°ªð±£Uí)ƒ×w—žÏúõëÿ\üsñÏ”âF\±}+ p%{ìöØí±›¼’µÛ¾´Öáú4Tåí£V¤SŸÚ¬Ë<é™ S S S¢ÞŠ,Å4Å4ÅTîÝÈš¬38û+ å5Ö+³–7“±›b7Ån¢ÞPÀŸÐ÷K „Yq³âfÅI—oS³³Öu]ªEÞOþ›æªì±qÍÑ›=‘÷Fðáʇ+®PitÜip§ÁÒ½s£ßÚéôý‹†òŒ†ÊÝÃ6HÏ¡ý ûö7$Ó%Ó%Ó©4ðç‹Ù³'f¡oÅ"„œ¾9}súÊ+h“6OM<@s%÷¶Ïë—dÊ’7{'sOæžÌ¥Æ(ñèÄ£NÈë£-»½XÕ–Õ¹·}>2mlT5y³—f’f’fB 8€?_‘O‘O‘¡oÅ"øAñƒâÉ+q«>S»oXA£UztŠß—0¢îtµ'šÿ“ž±¾ û.컺@ÚÉɉ܇RµX|îà$VJö—Wì:–,oÆ–ÔZRkI-ê EC\QJ_Lèûù€g’Ç$IòÚ Û ÏîK§ér¾Ù?Ù\£Àñ•÷fysõfã›o6RQÈÐPÒPÒ°UßV}[ɽ'™£îª+§ X…p2]§z¶OÝ›êEZ£eœ²ooeoe_ø¬ðYá3Ê EC a"œ‚îÝ º[}oõ½Õ÷rÏÃÍ_ö}Ì`m½4£œSZëvnÙ³­¼ù¹”})ûR6µ@Ù².f]̺(¯¿®7AGÃàgÇܵ¿ŸY¤ Ñïßú‰Õ 6².’7K™Ë3—g.§–PLÀ&`z¾üùòçËË~صÝÿ-V?¡@Wýžˆ¬yþˆîwÞ{{¨È›“èóÑç£ÏS?”_ê­Ô[©·äÆÀsuÚ´u´XUpª‡E¿:k?œµjÐÕ¼µõiy3óçâ?ÿ¹˜ú@‘C˜€íöùÛçoŸ/;n¶f†ýæ0‘7]úëjœõhØ×æ¦{=yóº)tSè&j€Os6ølðÙàÿ8}Ä’–‡´Eþ¬ßèŽÇìëÎWÿN³™¼y82þÈø#ã©@ a"®®m¼¶ñÚÆ²0³Iþ[f¬_ÓeÛ{Á«½—k?V:P7PÞ¾/œ¸pâÂ‰Ô Ÿï„ò åÊe¯BXFM¸·z¦øV!¬FO]¹áaÙû¾çæž›{nR' 0„‰¸Ê¸t+èVPÙMˆÆ8‡–^ÓF…m:Ù¹ 7]Í¢BR6™ýì×núí²÷wuèêÐÕ¡ÔëLÑ™¢3Eewåz¿t¨? ‡Ó¢ð6ñϪð§×>·×`J׳ÃËÞߣÕV?ZÚ¥C˜€«˜'¡OBŸ„Ô4¨iPó?® Þ8L{¦K³¨)›«JÓeS}Îî>*Côj_,{ïN:8éà$ê€/'Õ$Õ$Õ¤v94É>ìjÕŠ~›ÎnQž½»ÐéB§ ¨ ÂD\%ånÊÝ”») " " ¢\m˜Y ÷òµÎÓ7´MJÜMž»/x¸7Ns¾óÁÖÏʳ/×C¯‡^çª_¾’¬o²¾ÉúÆ+Á+Á+¡ìž]¥E£uÆVÓ¦&Fêº4Œ²MqÐ*„CThÊñfûf„l~«zÜ´¯U˲÷Å:Û:Û:ûIÈ“'!Ô‡ÂD\åÅdÅdÅdÕ.7—«&NuZþk|Ne5]–ùs×¼jðÿ±wçñ^M‹ÿøÃå^ÃMƒ¡¢!%%Mæ"¹Iæ2†‹Œe%™§Ê¢\.¥È”³çÓ ˆ”dÊ.‘””ÆóýãÜßãÑã×=çsèœÎ9ïžÏõxìGêì½Þk¯÷>ïµ^ï½×è&g¸GIêÜûëÞ_÷þzéÕK¯^zµ3Þš/×|¹æË';<ÙáÉ%ËW_¼}Áޝïûò¥×ÝÙ¿};LÛ±f!ÚxjÚÛMV]qç=ùÛµ©Û¼~•’Ôü…,|`áêãW¿úxç(ž˜ŠIœ#Þ½ðî…w_2å’)—L)y¼Ãä­Ö¨ßùÞ<êÀGî~fì¥;ÐjÛàñ¿dG4ÛäÚÿ<²r—Ûòø~%¯[CêRçiÏM{nÚsÎ/Tóþ>ïïóþÞyXça‡ý‘þâæg´íÜä/ÿ¼aàìƒö{`ìëmKw¢õf3aH“ÿ\Ñážî|AË¥‡µ)yÝÚÞþóöŸ^ýóêŸWw~€’S1 €sМ§ç<=çécv8f‡cv¨ö§l÷d½ w»¯þVG>ròö O8ë…k&4éwùÖƒæ4»¤Ïƒ_l~Ï “Ÿ8¢y½ë/zìÖ¦[^5çÁ-M¹àŸ·{äŸpâ¹mêlµß­­ž¬¶^¼òÅ+_¼rÕªU«V­r6 "›ÒjJ«)­ÝÐè†F7ü¹y€~l0ºÑÂ݆wzð´;ö9£ÇÒ¾Ë÷kØ{Ç{oh6©ï‰Cwjþïw{bB³ù}ó‡ŽÞïâÞßÞןIçzèÝî|ç™[ï8sïþû=ñçŽ[o·z»ÕÛ-þ4þ4þ´à­‚· Þr6€?JLÅ$ÎqWÿ¸úÇÕÏÝéÜÎÝ©Z…´{¿ÝûíÞï•__ùõ•_WÖYYgeg *™k ®-¸vê›Sßœúf§ztêQ1g!tð ƒ埖Zþik^Xóšœ:`}€©˜À‘_îúå®_îú÷Uÿ¾êßWøùŸøyy ·nûâ¶/nûâÓiŸNûtšó¹çûñßÿ~üc;>¶ãc;ÖoY¿eý–~þaÇÏvülÇÏzå¡WzåÛ|ûoÿá¼¥KLÅ$Þ¨-š¼hò¢Éù#òG中ómoë¼ÿòý—ï¿|ý‡XÛ=¶ÝcÛ=vÞUç]uÞU£ýÀèæý>ï÷y¿ksØ8ýôèOþôè[¾uà[^½äê%W/Ùsó=7ßsóõŸ…¨¿sýëï|ÅÉWœ|Åɯ_ñú¯_1ÿèùGÏ?Z›°qóL2}Èô!ùÏå?—ÿܤ'}<éã‚.] ºh tM3yÌä1ù5ókæ×œÜkr¯É½´ ”„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€€?irÍÉ5'×Ì¿4ÿÒüK§>>õñ©k€Êk^8/œN¼nâu¯›´õ¤­'mýë_~ý˯Ñ2P¹€€ÿúnðwƒ¿¸èƒ‹œM€BógÌŸ1Æ•U¯¬zeÕ?7ÚªÞ¡æWÛ­ª·?ý˜I{½×}þåC÷}øÒîܶé׎xdDósoèøøSÍ;^?ÿñ½›Þ{M߇4þ®×ow½ç+§\rÉŽuÿÚêç#ò×gŒy÷½wß{÷½Kz,鱤‡³ Tv`*&0ä ™[ÍÜjæV ;6ìØ°cÉáõ¶ÓéÛ¦û]}܃ϴ9~ÈyѼöíGŒ˜6­´¶­ö¼·×+›5~ð¢ŸúýZ«ï>4?¢äu;»óÙÏî<ÿ÷ù¿ÏÿÝù66+÷Z¹×ʽîûp߇ûþ¬u`õ{ª¯Üëþî{\6¤ÅÅwÌø×‚Ò嵯3b¿i­ö{Ëéÿ٣ßñwôlöGÃàÑ=F÷Ý£ uAë‚ÖÎ2P €©˜À#–_>~ùø›óoο¹DßÅÞqÐ^#›\×ôƒkOx¤u)O”xÛ®ë°ü)uýû‚ê·ü0xtýÑõG×/XZ°´`©óä¶YsfÍ™5§Ö¨Z£j*ɈiÏOxúÜá­ž½oͫ۔×X¯Å¨þw>÷ñ®#Ž8úÄ‹JRçC²èEßNûvÚ·Óœq rS1 € Ò›ûÝÜïæ~·Óé;¾ÓéŪwîÐòžC_iyò¯¼0²¼&Š ƒ§ßÿí_› í“?¤GKv¼¹ö³Å¿–3Ÿ:ó©3ŸZòÅ’/–|¡9åׂ_ ~}âÄ'N|âÄ’¨ûÜÒó¼ëïl³ô±ËÒÛ+ÚX¯õ)œôÖ‚Ÿ”á %y-o´x£Å-t ²S1 €  ¯ ¯ ¯*~ð\óÂ:Õý×ãúÝ1riE›(~ÛäŠË>tïÿñê¶«¹]Íí¾úø«¿úX*»å½—÷^Þ»GuzÔ)~4Ôள Îj{ÖãyùÍ*Ë(ï ŸÞrÂệö=njñ¯n@íµÔ.¨_P¿ ¾^Td`*&0TJ£>õᨋ07üñœú4n·tx8õÙÊý®½msò«£ßwÝï°¯Ox¬ø×;#‘ÎHõ  2Z4}ÑôEÓ[¬i±¦Åš¢F=5«U½N–=îüì…O*ï(¯pÛü±~~âÚâGy=·î¹uÏ­W†+Õ¡TL`*&0T2-ylÉcKŠ$·ønÀ‰ÏQÙ§þÇ=Á£.¿öîs‹íÓÞžöö´·õ ²øe³_6ûe³úÇÔ?¦þ1EtvçÎ>¦Ý¥OUÒ7—Fym.òJÜaçAžØ´¢^{—f]šui¶r·•»­ÜMo*0“*gz<Óã™E ‰kýÖx§Z·9rÈáÑk¹ý®½myèW½ð¬ƒ5ó†™7̼AŸ*²%ùKò—ä7èÕ Wƒ^EnöíqÉÏíQ^ûM‡3õ£½6ívÕÝzwëÝ­÷ê «'¬ž ç‡˜ŠI •À„%–L(ò®ßzcÛ7:¦»ƒ†]4ydŽO ¬½vÔe^÷Fûâcào|Óà›úPѬ¸jઞîðt‡§‹Ñ4›Õ÷¦¡'n<£¼Âmãv¿uAQmrÍÈkF^3Rÿ*0“*´Oº}Òí“nEF¿ßµŸÕùìvÉðß~oc›(ܶîòH‡·>-ª}vn¼sã/븬㲎úPqôéß§ŸþEeš¿vcÇ'æoœ£¼ÿÆÀq¯nSTû<=ãéOÏЋ€Š@LÅ$€ jÙîËv_¶{QÃÝ:µöÓjv»“‡¥Svܘ'þ{7ð~Œy½uQmua‹ [\ØB*‚ñSÆO?¥¨ñKÓÛ®9ù¡ßŒò · ?>ç”ë¾*r韟gþ<óg= (_`*&0TP½—÷^Þ{yQÝ6㇎HúšX{ÛâæþÕŸ;¸¨{mîks_›«_ååûÙßÏþ~vQc–}ª÷تÏ#»u·õ_êøø)/Õn¿ßþûí¿ß®wåE\Z^óÚ˜×þûì‡þÏõ®ÿs ZxÔ£´ÌŸ#€ gê®SwºkQƒÛ–ÝÕyôxSEm÷ítI³þE~Cü—s9÷—sõ1`ƒZQ°¢`Åq_÷Õqÿc´R÷ë6Ã:¸ý>#zN»Þ˜nÝmÛŸž¼vÒ%5«Ô>qçM×m½~Oö{²ß“ºP^Àëou—Õ]Vw)j6Oü瀠YµÙªÍVmVsBÍ 5'¬ûq§ñÖvëtƒÿÿcÛzÄCÓÞ¬Û§u׬ۆW,¸bÁ ô4`CŠzE½¢^E>á©ÕÚÑ-FsÅo¿LO6<ðú[ûÞßâ ƒKN ȳW={Õ³W­ûáf‡å >nܰÝêá3§¦†ý%Ù¶îøÈ®o½PÔ‡ÅÏúì¡ÏÒ߀²¶rõÊÕ+W¹âïŒkÿñH #¸?°*ðgÕ½f³u[²síε;×Ö߀ O¼þ ÝÂp·Z‰ ƒ‹'€ á÷K¿ô÷K‹|ìó]»½ØÇPÿn;àÉ[V¬Ûž]oèzC×ô: ¬ùrÌ—c¾\wTR§KÓsJÚ·ñð´·ŒÝJ¾mWkØ&“w)jìüAõªP]¯6$pé—0TÏ×{¾ÞóõÖýø²ëÓGt:ñbƒü?95pè°~“'õÑð‹A_ úb¾”…ÕW\=°È¯ùN¿k¿Ñ÷µý¹mÓá×¼úðÿã>à';?ÙÙzÀÀ%.;Âàõ!€r¶æž5÷¬¹§¨,­Ü÷Ôø ï×gÛ¤×eÁ ÿñ`í+g\9ãÊz Pò‡çϾîH¤î¦­æñ’‘Úz}Ù÷óáWL=¬ÚÃÕÇÖØ{Ýž·ù¼Íçm®†xÃÿQ`(gï¿ùþ›ï¿ù?&6oõáýúoÛ.yòI÷õApéQKZêá0@)ë\¥s•ÎUÖƒ´¸¿ÿáÏÝb¤V _övy»Z·…oÿéöŸnÿI6 ð†' . 0”³K.¸ä‚K.X÷CÉMnÿô7†ô¥µÝk¿n‹þù÷uÛyBû í'´×€Ò²ð´…§-ÞHÞHÞHÖq4;­Ï¦ƒ/4Ê+»íÞן±å•'¯ÛòŸuü¬ãgõL ì€+¯ÜƒÀP/¢…ÑÂhÝõ/ìt}¨Â…¦¯}&¹a§>üµý%ÿ0´ovéKw¾[á¦v±Û´½þGôÞ©F§ ¬—³Ì0kÝG«äþ_íc”WvÛæwÜðâ»­[ç×ý÷××3²#Î ¹ € |ZõÓªŸV]÷CC£ÃÏ›vÓˆŠ6®;³Mï£þ¿‡˜½]ãÔš›6¸ìÄKÎ_جGŸÚƒûïÿã­;Ž˜Õ°íY]s^Í—vº¾ÞÛk¿¢OôËK3*Ú+ª]§ñ½¼·nûë™ÀúèZ§k®uþÇB?ýžh”å•ݶUŸû®ßuÝ–¿Üýãî§geGœ{r# @9˜Xcb‰5þÇcÁõ:dŸŠ3„núѵ=9þ¿•{¼ú¤G6‹ú¶òß•« ÿzíÿ_ø7… [ûuU´©Ýjõá©À@éjØ¥a—†]Ök´[9|úÔ FyexOó衃’3ÖmùKê^R÷’ºz&PvÀ¹­ò†Á`(/ïóò>/ï³î‡ƒGßqþ¿zVœ!t½ùí¿èüϺí2ãÐ Ç×-ÉPíWTçf[gmj`¯¬ûÄË/¥kÝQFõv5ó·ûÈ(¯Ì×3n6ì„Éw¬Ûþÿxý¯ÿãu=ØW~p®ª\ap•Šó–ߟûÒÍõ7 ¬m?®þô=å•ykåµõN>g—ëk_mĶӶ­8¯k·G}xj‡uÛ_ÏÖGÃ. »4ì²îX£ÝÊáÓ§N0Ê+»m›ÑC%g¬Ûò—Ô½¤î%uõL ìuƒ–É …Ámÿçú?×ÿ¹’‡¾…ÿǾk@9ø´ê§U?­ºî‡ƒF‡Ÿ7í¦3®ÿÞQ›tkY¢xõ»cþyúˆÂŸªõÐ>ß4ÿwEûnxí:ï=à=0PººÖéZ§kuÇmû=Ñ(?6Ê+Ã\÷¹ïŠñ]×mùûÇÝ?îþqz&PvÀ¹§ò†¾k@y|ŒˆF £u?(Ô¿°CÐõ¡Š3„Þ·ÕÅ¿÷üßʽ]ãÔš›6ÿðÆ?Ù«¨ÿ`“Ag¾´}ª;t«Õ°ð‡v÷GŸ}\áŸ+ÄëÚaÄnÓöZ·åktªÑ©F'=Xf ˜5`Öº#ŽVÉý'¾ÚÇ(¯ì¶Íï¸áÅ'v[·å_ÿýõß_ÿ]ÏÊŽ87äFè»60”ƒÕO­~jõSÿ#†|©ÖIuÞ¬@«(½òÔo?ºn=r«}^ê¹â†£·k]·Ù®ÿýà[³K®u¯hkJµ¹uHAüüº¯¨ûÝì~ ž ¬7’7’7’ÿ±ÜÏi}6|¡Q^Ùm÷¾þŒ-¯ôó„]+Zý ·{mÒ­Ç¥'­Ûæ³;Íî4Û# €õ²rìʱ+Çþ™ãe5æ× Ú·1pÚ‹Fy¥»m=ñãÄ7Ömò=çî9wϹú$PÖÀ߯ú®M åfvÓÙMg7ýß ÿä„!ç>\1‡ÖkOü¹-·m“—MT}ûš¶k±n›/o·¼Ýòvú$°þŽÿáøŽÿaÝqÇAy]òf£¼R~ÎS›Ûª?³Ãº­=hóA›Ú\oÊš¸bÚ8Cßµ € Ü¬ì¾²ûÊîE}àh7ò©·ÞîV‘càʵmuÆ}µ^ùfÝvîrj—S»œª7¥eÜÅã.wñº£F .˜wëIFg¥»Ým«£òNÝó<çiïÙ{ÏÞ[oÊš¸âú®M åì’ .¹à’ þǃ ›Ü:ÿéo æKíáÏûu[ôÏ¿¯ÛÎÚOh?¡½~”–…§-0éÞ¢>ð-=jéQKÒ€ÒÕ¹Jç*«¬;iqÿß»ÅHmý·M†]Þãî£ÖmáÛºý§ÛÒ C¼á }KB ålÍ=kîYsOQMZ ¸ï©ñدפ@¯Ë‚AW­Û¶WθrÆ•3ô@ ,äÏž?ü|ÙwÓVsxÉHm}¶í>~ÅÔê=\}l½×máy›ÏÛ|žÕ D¼a}ÿ(0TÏ×{¾ÞóõÖý˜²ëÓGt:ñbÃû?9)pè°~“'õð‹A_ úb¾”…ÕW\=°¨ñHËéwí7ú^£¶?·m:üšW¾bÝVíüdç';?©ï’¸ì}ׇ*„ß/ýýÒß/-rjà®Ý^ìcÿG·f_ðä-+ÖmÏ®7t½¡ë zPÖÆ|9æË1_®;*©Ó¥é¹%í[xxÚ[Ænàk¾µ†m2y—¢ÆÎTÿ úÕõ:`C—.¡oi@òìUÏ^õìÿxXñË|ܸa»ÕÃgNM øK²mÝñ‘]ßz¡¨…Ÿ=ôÙCŸ=¤¿emåê•«W®.jlÒtƵÿx¤…\É· ÷8«î5›ý{kw®Ý¹¶þlxàõ'ô- `¨@Vm¶j³U›ÕœPsBÍ ë~¬i¼õ…‡Ý:Ý€ÿÿضñд7ëöiݵÃ#ë¶á ®XpÅ= Ø¢^Q¯¨WQSØmZ ©Ýb4WüöÀ½ûÒ¨¢ÚðóË>¿ìóËô4`ï¿×Ƽ6æµ1BßÒ%€ gê®Swºk‘ƒþè®Î£ÇüµÝ·Ó%ÍúUTëýrî/çþr®>lP+ V¬8î«ã¾:îŒVê~ÝføQ·ßgDÏi×Ó­»mûÓ“×Nº¤f•Ú'î¼éº­×ïÉ~Oö³î/PnÀëou—Õ]Vwú–.0TP½—÷^Þ{y‘ß?tDÒ×DÀÚÛ7÷¯þÜÁEµØks_›ûÚ\ý (/ßÏþ~ö÷³‹³ìS½ÇV}¦Ù­»­ÿRÇÇOy¹¨vûýößoÿýv½ (/àÒ²ö}ÀBßõ'€ jÙîËv_¶{QCÜ:µöÓjv»“‡¥Sv4pÐ~Œy½uQmua‹ [\ØB*‚ñSÆO?¥ÈUo»æä‡~3ÊûŸsÊuE>áiæÏ3žù³”/0“*´Oº}Òí“nE wë}×~Vç³Û%Ãw|û½s: u—G:¼õiQí³sãïÜxYÇe—uÔ—€Š£Oÿ>ýûô/j,Óüµ;>1cŽ~ǽn¸½Èõ ŸžñôŒ§gèE@E ¦b@%0aÉ„%–mßè˜þívÑä‘Ñ]¿—=xÝí«ë›ß4ø¦þT4«®¸j`‡§;<Ýáé¢F4Ífõ½iè‰]ô[ãÂî·.(ªM®yÍÈkFê?@Å!¦b@¥ñLgz<Ó£¨ap­ßït@ë6G9·ø×>ííioO{[?*‹_6ûe³_6«LýcêSÔHg÷wþÑáìcÚ]úTÕ)}si”׿¢!¯Ävtàù‡M+êµwiÖ¥Y—f+w[¹ÛÊÝô ¢S1 € Rõá¨G}X|ÚðÇsèÓ¸ÝÒááÔg+ñtÀÉC®Ž~ßu¿Ã¾>á±â_ïŒtF:#Õ7€ÊhÑôEÓMo±¦ÅškŠõÔx¬Võ:=Zö¸ó³>©ìÑoóÇnøù‰k‹åõܺçÖ=·^® W†zP1 €©˜ÀP‰…W…W…W?`®yaÇêþë€qýî¹´’Ýï{Åe º÷ÿxuÛÕÜ®æv_}üÕÇ_}¬?•ÝòÞË{/ïÝ£N:=ê?jp׉Ùgµ=ëñ¼üf•e”wÐÏo9áð]‚Cû7µøW7 ö€ÚjÔ/¨_P_¯*20“*½¹ßÍýnîw;¾Óé;^üzç-ï9ô•–'ßùÊ #+ÚD@»©Ã÷û×fCûäéQã’o®ýlñ¯å̧Î|ȩ̂–|±ä‹%_è@Nùµàׂ_Ÿ8ñ‰Ÿ8±Z ìsKÏ󮿳ÍÒÇ.Ko¯hc½Ö§wx«gï[óê6å5Ök1ªÿÏ}¼ëˆ#Ž>ñ¢’ÔùE‡,:dÑ·Ó¾öí4g¨\ÀTL`ÈA3·š¹ÕÌ­vlرaÇ’«õ¶ÓéÛ¦û]}܃ϴ9~ÈyѼÒhµç½½^Ù¬ñƒýÔï×Z}÷y¤ù}Ïî|vç³;Ïÿ}þïów~€ÍʽVîµr¯‡û>Ü÷á¾%IUXýžê+÷º¿û— iqñ3þµ ”ãÞ:#ö›Öjÿ±·œ>ü›=úGÏfÕþ Ñ=F÷Ý£ uAë‚ÖÎ2P €©˜À³ÖôZÓkM¯ñKÆ/¿¤Úz¨Ý°qÐbë=ö9î’s&7:çüÆ7×Ýï«j=P½yëìøæCoøñ‰+›Ýßçù!7™tùÜ»¿oœ]pÝåõÇtrʘíÕ?eÏnî¸íãöqûøƒ‹>¸èƒ‹œM€BógÌŸ1Æ•U¯¬zeÕ?7ÚªÞ¡æWÛ­ª·?ý˜I{½×}þåC÷}øÒîܶé׎xdDósoèøøSÍ;^?ÿñ½›Þ{M߇4þ®×ow½ç+§\rÉŽuÿÚêç#ò×gŒy÷½wß{÷½Kz,鱤‡³ Tv`*&0lV½³êUïLxu«^mòr“—›¼\­Bê^µ{ÕîUg9tæÐ‚5k Ö8wEùáœÎùáœÛ?¸ýƒÛ?¨V ýpè‡C?\Üuq×Å]5 —€©˜À°‘úbÒ“¾˜40ŒËk  Éâ&‹›,¹õÈ­Gn½à¬g-8ËyøsVŽY9f嘨ZT-ªvò]'ßuò]å5Ö»¨ãE/êøÎ6ïlóÎ6|Tð‘³ä*0“ø¯ï7ø»Áㆌ2nH¯Ã{ÞëðÚÏÖ~¶ö³¥ôžÙäÌ&gÞØòÆ–7¶ŒÇÆcã± §-œ¶pš6(;+¯h¼¢ñŒ3ÌðPç‡:?Ô¹c•ŽU:V)­ ÷¤-NÚâ¤-†½4ì¥a/}<éãIO*¨RPÅœ3”7¿Œ€?irÍÉ5'×Ì¿4ÿÒüK§>>õñ©k€Êk^8/œN¼nâu¯›´õ¤­'mýë_~ý˯Ñ2P¹€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ GlÐ8³üÍò7«°Ñ(ÌIÀ•ž Gltpáßço’¿Iþ&ùUò«äWÉÖdk²5Ùêlu¶:[™­ÌVf+²ÙŠì÷ì÷ì÷lY¶,[–ý–ý–ý–-É–dK²ÅÙâlq¶([”-Ê~É~É~É~Î~Î~Îd ²ÙÙÙÙül~6?û>û>û>ûOöŸì?ٷٷٷÙ7Ù7Ù7Ù×Ù×Ù×ÙWÙWÙWÙÙÙÙÜln67û,û,û,û4û4û4û$û$û$›“ÍÉædeeefff³²YÙ¬ìƒìƒìƒlF6#›‘½—½—½—MϦgÓ³w²w²w²iÙ´lZövövöv6%›’MÉ&g“³ÉÙÄlb61ËÏò³ü,ÍÒ,Í’,É’,Ê¢,ÊÂ,ÌÂ,/ËËò²·²·²·²7³7³7³7²7²7²×²×²×²W³W³W³W²W²W²—³—³—³qÙ¸l\öRöRöR6&“É^Ì^Ì^Ì^È^È^ȞϞϞϞ˞˞˞͞͞ÍFe£²QÙ3Ù3Ù3ÙÓÙÓÙÓÙðlx6<{*{*{*– ˆeOdOdOdgggC³¡ÙÐlH6$’=š=š=š=’=’=’=”=”=”=˜=˜=˜ÝŸÝŸÝŸÝ—ݗݗݓݓݓÝÝÝݕݕݕ Ìf³;³;³;³þYÿ¬vGvGvGÖ/ë—õËnËnËnËnÉnÉnÉnÎnÎnÎnÌnÌnÌnÈnÈnÈúf}³¾YŸ¬OÖ'»6»6»6»&»&»&»*»*»*»2»2»2»"»"»"»<»<»<»,»,»,»4»4»4»$»$»$ë•õÊzeeeedddçgçgçgçfçfçf=³žYÏìœìœìœìììììììÌìÌìÌìŒìŒìŒì´ì´ì´¬{Ö=ëžššš’’’uͺf]³“²“²“²³³³²²²ã³ã³ã³dÿÈþ‘›››“““uÊ:e²£²£²£²ŽYǬcvdvdvdvDvDvDvXvXvXvhvhvhvHvHvHÖ>kŸµÏÚeí²vY›¬MÖ&kµÎZg­²VY«ìÀìÀìÀ¬EÖ"k‘5ÏšgͳfY³¬Y¶_¶_¶_Ö$k’5Ég³ÆY£¬QÖ(k˜5Ìf{g{g{g{e{e{e ²Yƒllll·l·l·¬~V?«Ÿí’í’í’ÕËêeõ²³³³²²²ÚYí¬vV+«•ÕÊvÈvÈvȶ϶϶Ïjf5³šY¬FV#«–U˪eÛfÛfÛfÏþžý=Û&Û&Û&Û:Û:Û:Û2Û2Û2û[ö·ìoÙÙÙÙæÙæÙæÙfÙfÙf٦٦٦Y•¬JV%-H Ò‚tuº:]®JW¥«ÒéŠtEº<]ž.O—¥ËÒeéÒtiº4]’.I—¤¿¦¿¦¿¦‹ÒEé¢ô—ô—ô—taº0]˜.H¤ ÒŸÒŸÒŸÒùéüt~úCúCúCúŸô?éÒïÒïÒïÒoÒoÒoÒyé¼t^úUúUúUúeúeúe:7›ÎM?O?O?O?M?M?M?I?I?Iç¤sÒ9éGéGéGé‡é‡é‡é¬tV:+™ÎLg¦3ÒéŒôýôýôýtz:=ž¾›¾›¾›NK§¥ÓÒ©éÔtj:%’NI'§“ÓÉéÄtb:1ÍOóÓü´P’&i’Fi”Fi˜†i˜æ¥yi^úVúVúVúfúfúfúFúFúFúZúZúZújújújúJúJúJúrúrúr:.—ŽK_J_J_JǤcÒ1é‹é‹é‹é é é éóéóéóésésésé³é³é³é¨tT:*}&}&}&}:}:}:žO‡§O¥O¥O¥O¦O¦O¦O¤O¤O¤¥¥¥CÓ¡éÐtp:8œ>š>š>š>œ>œ>œ>”>”>”>˜>˜>˜ÞŸÞŸÞŸÞ—Þ—Þ—Þ“Þ“Þ“ÞÞÞÞ•Þ•Þ•L¦Óé€t@Ú?íŸöOoOoOoOû¥ýÒ~é­é­é­é-é-é-éMéMéMééééõéõéõiß´oÚ7½.½.½.½6½6½6½:½:½:½*½*½*íöN{§W¤W¤W¤—¥—¥—¥ÿLÿ™þ3½4½4½4½8½8½8í•öJ{¥¦¦¦¤¤¤ç¥ç¥ç¥ç¦ç¦ç¦=Òiôœôœôœô¬ô¬ô¬ôÌôÌôÌôôôôôôô´ô´ô´ôÔôÔôÔ´[Ú-í–vM»¦]Ó“Ó“Ó“ÓÓÓÓ.i—´Kz|z|z|z\z\z\zlzlzlÚ9íœvN;¥ÒNéÑéÑéÑiÇ´cÚ1ívH;¤G¦G¦G¦‡§‡§‡§‡¥‡¥‡¥‡¤‡¤‡¤§§§íÒvi»´mÚ6m›¶N[§­ÓƒÒƒÒƒÒÓÓÓ–iË´ez@z@z@ºººÚ,m–6K›¦MÓ¦i“´IÚ$Ý7Ý7Ý7m”6J¥û¤û¤û¤{§{§{§{¥{¥{¥ Òiƒtttt·t·t·´~Z?­Ÿî’î’î’ÖKë¥õÒÓÓÓÒÒÒÚií´vZ+­•ÖJwLwLwL·O·O·O·K·K·Kk¤5Òiõ´zZ=Ý6Ý6Ý6­šVM«¦Û¤Û¤Û¤[§[§[§[¦[¦[¦Kÿ–þ-Ý"Ý"Ý"Ý<Ý<Ý<Ý,Ý,Ý,Ý4Ý4Ý4­’VI«$IAR¬NV'«“UɪdU²"Y‘¬H–'Ë“åɲdY²,Yš,M–&K’%É’ä×ä×ä×dQ²(Y”ü’ü’ü’üœüœüœ,H$ ’“““ùÉüd~ò}ò}ò}òŸä?É’o“o“o“o’o’o’yɼd^òUòUòUòeòeòe27™›ÌM>O>O>O>M>M>M>I>I>Iæ$s’9ÉGÉGÉGɇɇɇɬdV2+ù ù ù ™‘ÌHf$ï%ï%ï%Ó“éÉôääädZ2-™–¼¼¼LI¦$S’IɤdR21™˜L,üPPxHâ$Nâ$J¢$J‚$H‚$/ÉKò’ É„dBòfòfòfòzòzòzòZòZòZ2>ŸŒO^I^I^IÆ%ã’qÉØdl26“ŒIÆ$£“ÑÉèä…ä…ä…äßÉ¿“'Ï%Ï%Ï%ÿJþ•ü+•ŒJF%#“‘ÉÈäéäéäédD2"‘ O†'ÓaɰdXòdòdòdòxòxòxòXòXòX2$’ I'ƒ“ÁÉ#É#É#ÉÃÉÃÉÃɃɃɃÉÉÉÉ}É}É}ɽɽɽÉÝÉÝÉÝÉ dP2(˜ L&w&w&w&ý“þIÿäŽäŽäޤ_Ò/é—ܖܖܖܒܒܒܜܜܜܘܘܘÜÜÜôMú&}“>IŸ¤OrmrmrmrMrMrMrUrUrUrerererErErEryryryòÏäŸÉ?“K“K“K“‹“‹“‹“^I¯¤WrarararArArAr^r^r^rnrnrnÒ#é‘ôHÎIÎIÎIÎJÎJÎJÎLÎLÎLNONONONKNKNKNMNMNMº%Ý’nIפkÒ5999999919191é’tIº$Ç'Ç'Ç'Ç%Ç%Ç%Ç&Ç&Ç&“ÎIç¤SÒ)é”tL:&“I‡¤CrDrDrDrxrxrxrhrhrhrHrHrHrprprpÒ.i—´KÚ&m“¶Ië¤uÒ:9(9(9(909090i™´LZ&$$$û'û'û'Í’fI³¤iÒ4iš4Iš$M’}“}“}“FI£¤Q²O²O²O²w²w²w²W²W²WÒ i4HöHöHöHvKvKvKê'õ“úÉ.É.É.I½¤^R/Ù9Ù9Ù9Ù)Ù)Ù)©ÔNj'µ’ZI­d‡d‡d‡dûdûdû¤fR3©™ÔHj$5’jIµ¤Z²m²m²mò÷äïÉß“m’m’m’­’­’­’-“-“-“¿&Mþšl‘l‘l‘ü%ùKò—d³d³d³d“d“d“¤JR%©¯‰×ÄkâÕñêxu¼2^¯ŒWÄ+âñïñïñïñ²xY¼,þ-þ-þ-^/‰—Ä‹ãÅñâxQ¼(^/ŒÆ ãŸãŸãŸãŸâŸâŸâãããâââïãïãïãïâïâïâoãoãoãyñ¼x^üuüuüuüeüeüeüEüEüEüyüyüyüYüYüYüIüIüIüqüqüqüQüQüQ<;žÏŽgųâYñÌxf<3žψgÄïÇïÇïÇÓãéñôøÝøÝøÝxZ<-žO§ÆSã)ñ”xJ<9žOŽ'Æã‰q~œçÇiœÆiá Žâ(Žâ0ã0΋óâ¼ø­ø­ø­øÍøÍøÍøøøøµøµøµøÕøÕøÕø•ø•ø•øåøåøåxl<6¿¿¿ŽGÇ£ããããÇÿŽÿ???ÿ+þWü¯øÙøÙøÙxd<2???ˆGÄ#âáñðxx<,‹ŸŒŸŒŸŒ‹‹‹‡ÄCâ!ñàxp<8~$~$~$~8~8~8~0~0~0~ ~ ~ ¾/¾/¾/¾7¾7¾7¾;¾;¾;ŠÅãñÀøÎøÎøÎ¸Ü?îßßß÷‹ûÅýâÛâÛâÛâ[â[â[â›ã›ã›ããããâââ¾q߸oÜ'î÷‰¯¯¯¯‰¯‰¯‰¯Š¯Š¯Š¯Œ¯Œ¯Œ¯ˆ¯ˆ¯ˆ///ÿÿ3þg|i|i|i|q|q|qÜ+î÷Š/Œ/Œ/Œ/ˆ/ˆ/ˆÏ‹Ï‹Ï‹ÏÏÏ{Ä=âñ9ñ9ñ9ñYñYñYñ™ñ™ñ™ñéñéñéq÷¸{Ü=>5>5>5>%>%>%îw»Æ'Å'Å'Å'Æ'Æ'Æ'Ä'Ä'ÄÇÇÇÇÇÇÿˆÿÿ#>6>6>6>&>&>&îwŠ;ÅGÅGÅGÅãŽqÇøÈøÈøÈøˆøˆøˆø°ø°ø°øÐøÐøÐøàøàøà¸}Ü>n·ÛÆmã6q›¸M|P|P|PÜ*n·Š[Æ-ã–q‹¸EÜ"Þ?Þ?Þ?n7›ÇMã¦qÓx¿x¿x¿xßxßx߸qÜ8nïïï7ŒÆ ã½â½â½â=ã=ã=ã=â=â=âÝãÝãÝãúqý¸~¼k¼k¼k\/®׋ëÆuãºñNñNñNq¸N\'®׊kÅ;Æ;Æ;ÆÛÇÛÇÛÇÛÅÛÅÛÅ5âq¸z\=®oooW«ÆUãmâmâmâ­ã­ã­ã-ã-ã-ã¿Å‹ÿooooooooooooW‰«ÄU¢‚¨ *ˆVG«£ÕѪhU´*Z­ˆVDË£åÑòhY´,Zýýý-‰–DK¢ÅÑâhq´(Z-ŠF £…ÑÏÑÏÑÏÑOÑOÑOÑÑÑÑÑÑÑ÷Ñ÷Ñ÷ÑwÑwÑwѷѷѷѼh^4/ú:ú:ú:ú2ú2ú2ú"ú"ú"ú<ú<ú<ú,ú,ú,ú$ú$ú$ú8ú8ú8ú(ú(ú(šÍŽfG³¢YѬhf43š͈fD3¢÷£÷£÷£éÑôhzônônôn4-šM‹¦FS£©Ñ”hJ4%šMŽ&G£‰ÑÄ(?Êò ?þþÚ …Q…Q^”åEoEoEoEoFoFoFoDoDoD¯E¯E¯Eã£ñÑøè•è•è•h\4.ÆFc£1јhL4:Ž^ˆ^ˆ^ˆþý;úwô\ô\ô\ô¯è_Ñ¿¢QѨhT42ŒžŽžŽžŽFD#¢ÑSÑSÑSѰhX4,z"z"z"zÑuÑuÑuÑ5Ñ5Ñ5ÑÕÑÕÑÕѕѕѕQï¨wÔ;º<º<º<º,º,º,º4º4º4º$º$º$êõŠzEEEEDDDçGçGçGçFçFçF=£žQÏèœèœèœèìèìèìèÌèÌèÌèŒèŒèŒè´è´è´¨{Ô=êu‹ºEÝ¢S¢S¢S¢“£“£“£“¢“¢“¢.Q—¨Kt|t|t|t\t\t\tltltlÔ9êuŽ:E¢NÑÑÑÑÑÑQǨcÔ1êuˆ:DGDGDGD‡G‡G‡G‡F‡F‡F‡D‡D‡Dí£öQû¨]Ô.jµ‰ÚDm¢ÖQë¨uÔ*jµŠŒŒŒZD-¢ÑÑÑQó¨yÔ,„A„o…o…o… á„ððððõðõðõðÕðÕðÕp|8>¾¾¾Ž Ç…ã———Â1á˜pLøbøbøbøBøBøBø|ø|ø|ø\ø\ø\øløløl8*Ž Ÿ Ÿ Ÿ G„#Âáðpx8< ‡…O†O†O†‡‡‡………CÂ!ápp88>>>>>>>>>>>>ÞÞÞÞÞÞÞÞÞ …ƒÂáÀp`xgxgxgØ?ìöoooû…ýÂ~á­á­á­á-á-á-áMáMáMááááõáõáõaß°oØ7¼.¼.¼.¼6¼6¼6¼:¼:¼:¼*¼*¼*ìö{‡W„W„W„—…—…—…ÿ ÿþ3¼$¼$¼$¼8¼8¼8¼(¼(¼(¼ ¼ ¼ x>x>x.x.x.x6x6x6Œ FÏÏÏOOOÃáÁðà©à©à©àÉàÉàÉà‰à‰à‰à±à±à±`h04 ƒƒG‚G‚G‚‡ƒ‡ƒ‡ƒƒƒƒ‚‚‚û‚û‚û‚{ƒ{ƒ{ƒ»ƒ»ƒ»ƒAÁ `P00 î î î úýƒþÁÁÁA¿ _Ð/¸5¸5¸5¸%¸%¸%¸)¸)¸)¸1¸1¸1¸>¸>¸>èô ú××××××WWWWWW½ƒÞAïàŠàŠàŠà²à²à²àÒàÒàÒà’à’à’ WÐ+è\\\\\\œœœœœœô z=ƒs‚s‚s‚³ƒ³ƒ³ƒ3ƒ3ƒ3ƒ3‚3‚3‚Ó‚Ó‚Ó‚SƒSƒSƒnA· [Ð5èt NNNN N N º]‚.ÁñÁñÁñÁqÁqÁqÁ±Á±Á±Aç sÐ9èt :GGGƒŽAÇàÈàÈàÈàˆàˆàˆà°à°à°àÐàÐàÐàààààà }Ð>h´ Úmƒ6A› MpPpPpPÐ*h´ Z-ƒ–ÁÁÁÁþÁþÁþA³ YÐ,h4 šM‚&A“`ß`ß`ß QÐ(hììììììììì4 ‚݂݂݂݃݃݃]ƒ]ƒ]ƒ]‚]‚]‚ºAÝ n°s°s°sP'¨Ô jµƒÚÁŽÁŽÁŽÁÁÁÁvÁvÁvA FP#¨TªÛÛÛUƒªAÕ`›`›`›`ë`ë`ë`Ë`Ë`ËàoÁß‚¿[[[›››››››››U‚*A•¼5ykòÖä­Î[·:oeÞʼ•y+òVä­Èû=ï÷¼ßó–å-Ë[–÷[Þoy¿å-É[’·$oqÞâ¼Åy‹òå-Ê[˜·0oaÞ‚¼y ò~Êû)ï§¼ùyóóæçý÷CÞyÿÉûOÞò¾Ëû.ﻼoò¾Éû&o^Þ¼¼yy_å}•÷UÞ—y_æ}™77onÞܼÏò>Ëû,ïÓ¼Oó>Íû8ïã¼óæäÍÉ›“7;ovÞì¼ó>Ìû0ofÞ̼™yä}÷AÞûyï罟÷^Þ{yïå½›÷nÞ»yÓò¦åMË›š75ojÞ”¼)ySò&çMΛœ71obÞļü¼ü¼üÂiûÂéºÂíà ú‚ÊBEÈCÀ¥@,r„X ä°È`0#À` G€À@Ž €€!9B,r„X ä°È`0#À` G€À@Ž €€!9B,r„X ä°È`0#À` G€À@Ž €€!9B,r„X ä°È`0#À` G€À@Ž €€!9B,r„X ä°È`0#À` G€À@Ž €€!9B,r„X ä°È`0#À`6:ÕŠ¥}ÊÚo£~õÛ¨Á÷¾wð½§w<½ãé[Žl9²åÈï8xÇÁ ¯kx]Ãëÿð÷¿âìycvʃ§|îÃçþè¹(»=SèÍKß¼ôÍK ÛíñÖ·ÿî[ÿý–¨fT3ªé\ãwlœÀ`6:&÷7¼âWçzÆÔ3¦žñçÚ¿ìöŒwz©^ •‘X ÀFÇäþ†W}qõÅÕÕæ¿_÷ûu¿_WÑöŒwz©^ •‘X ÀFÇä~.µ¹³©'€^ ¬M,`£cr?—ÚÜÙÔ@/Ö&°Ñ1¹ŸKmîlê  —k €ØèüÑÉý5u×Ô]S7^/‰—\|òÅ'_|òÁ;¼óÁ;ï9jÏQ{ŽÚáÙžÝáÙÆwjÜéð÷ÿð÷o8ò†#o8òƒß9øƒ ªT-¨ªÍs)^ÝxuãÕ“o“o“o¯|÷Êw¯|÷È—|ùÈ—÷m³o›}Ûö‡ºmë¶­Û¶iÕ¦U›V=£Õ­ÎhõØ9óØ9¿æÿšÿk~Ùµó”ëÿwù£û)ìóe±‚re‰Ön»pÛ…Û>wÓs7=wÓÙ[½ÕÙ[µkÝ®u»Ö Æ7ß`üö¯nÿêö¯îõè^îõhûFíµotöʳWž½òùËž¿ìùË vÃ×yÞÄyçM¼·Á½ împÌ)ÇœrÌ)ûÕݯî~uw¼ãàï=`ï{(ì«×ŸtýIןôÉ韜þÉéåÛγΦ—Vä+ Tv`0’Oîðá~ðaË‘-G¶Ym=ÌøfÆ73¾Ù0uÞð­TòŸú£6ÌžKntóÑÍG7ox]Ãë^÷çŽ[oßzûÖÛ·ðÏßþëÛ}û¯ sÖŠúÿ?ôú¡×½ú½Óï~ï~}a·¯vûj·¯Ê®wUä¸0T»iÏ›ö¼iψ÷Ïåíò·Ëß.¿ðÏ‹¾^ôõ¢¯Ë®Î¿,úeÑ/‹.ºò¢+/º²ú&Õ7©¾É†yÇåv˺—Vü+ Tv`0’LîÞù·>!ÐÚjÌ«1¯Æ¼õ Àå†UÇítÜNÇíTºuØ©ûNÝwê^ºg°ä¯÷øá ï2,ê§ö¹pŸ ÷¹°"ô«²6½þôúÓëÞÓ_ºgyll¬,^Ý{5Þ«ñ^õ ×VxßíÚõ,‹3UYê\¯½r]I ² €Øè?™žÿFþùo¬}_ézôÉGŸ|ôÉÒ­ó†o¥?÷S•+^ÐdA“M ð[­Œ ½|èåC//»³Vø¯+YyÌÊc.xà‚.x $µÚàÂGd>h·ìÎoéFt ühàGë/ª¿¨þ¢Ò­gá£ìËâúÊUçÒ}í•ñJ•X ÀF§ø ôu[èøUǯ:~Õ«ÿ~õ߯þû»Áß þnð²Ë,ðù~Ÿï÷ù~Ãö¶Ç°=ºæ kº¦øý>òô®ÌZYà³jÿïRüÞŠú© ³çu®ÍY¸gñû?~ëã·>~ëÂûÅ¿\üåâ/®›[¸ lá:Ð…X®_¥~•úUŠï¯=þÚã¯=^g­ð_{ÛëÜ^ç–ú꣯>úêu¸öcŠK«5úë?¬ÿ°ò‚Ê7¾yÇ›w¼yÇ¢Ž¾öc{K눷}zÛ§·}º>G¼o‡ûv¸o‡¢ö°öþK«ÎÅ?¾¸$ǪŒu.­^šW¨ìÀ`6:ÅOî]:v騥¥;]þìÏ>ñìEñˆäˆäˆD\¾õ<õªS¯:õª¢öS’Gõþ9g6<³á™ ×=â‘/ùò‘/—nk¬}_fÅ|÷•õÑ;Õù¨ÎGuôW¦¼2å•)¥[“âÏÛen—¹]æÄÓ;žÞñôŽEíaí{šK­Îk]ÿÜ™ªŒu.­^šW¨ìÀ`6:ÅOîrú'§rzéqÆ73¾™ñMQG,\r}ê¼á[©|÷V{n}Aë Z_P­Â(¬Oé¶Æ—›|¹É—›Täw_Y½Å+-^iñJQGÿôØOýôØÒ=âG?øÑÀ¢ŽXø€èõé™eQç’¬ª›{u.­^šW¨ìÀ`6:ÅO—ÿ\ïçz?×+Ý#~ßçû>ß÷)ꈻ}µÛW»}µ>uÞð­T¾{+‹=ïsá>îsaʼnmš4nÒ¸IãÒm_ý²è—EùÝWÖG/~5î²xïÿØùÇÎ?v.ꈅ½n}z憯sIÎTe¬siõÒܸ’@e'°Ñ)~º|E÷ÝWt/Ý#.}té£K-êˆÛåo—¿]þúÔy÷Rùî­,ö\§W^uzUœØ¦þ¢ú‹ê/*åÖ¨ZPµ jE~÷•õÑw¼ãàoÈ÷þ²Ë,PÔwê¾S÷þ#þŸŠSç’œ©ÊXçÒꥹq%€ÊN,`£³áàÂ}uĺmë¶­Ûv}ê¼á[©|÷V{ÞþÕí_ÝþÕŠÛÖ§â´sÅìWÔ†€W³ò˜•Ǭϗ?jά9³æÌŠSç’œ©ÊXçÒꥹq%€ÊN,`£³áýS»ŸÚýÔ®¨#6îÔ¸SãNëSçRn ªU ªnlðÙÙYQû)¼‡»²÷m5Üð€^ÐdA“MŠ:bƒñ Æ7_üvÿ`÷vÿ`CÖ¹pŸës¦*cK«—æÆ•*;°€Nñ“ûŸœþÉ韜^ºGœÓwNß9}‹:bÛ£ÛÝöèõ©séÖvÑ׋¾^ôõƵŸ¯æ}5ï«y•½o«a‹WZ¼Òâ•¢ŽþYûÏÚÖ¾tX¸Ï¢ŽXXŸõé™eQç¹»ÎÝuî®ës¦*cK«—æÆ•*;°€Nñ“ûc—Ž]:viéqtóÑÍG7/ꈧu=­ëi]×§Î¥[ÛÒRʺþ¥µçcN9æ”cN)j?ï6}·é»M+{ßVÃÎGu>ªóQE}ü›ãßÿféñ•)¯LyeJQGìt~§ó;_ü޾ú諾zCÖù߸ñ×çLUÆ:—V/Í+ Tv`0â'÷oY~Ëò[–—nÕ§wŸÞ}zuÄ{¸ç€{(þˆ26»ùØÍÇn¾±À7¶¸±Å-6ä×6|ßVÃâÏrÿaý‡õVº5¹cô£ï]Ô¯?éú“®?©ø#öíÙ·gßž²ÎƒNtâ ×çLUÆ:—V/Í+ Tv`0â'÷[Žl9²åÈR 'ªT-¨ÚèÔF§6:µ¨#†»…»…»­O¼ªíª¶«Ú–Vûôþ¬÷g½?ÛØà—?zù£—?*j?ÝÏë~^÷óJ7²úæµo^û浃®ùß%ù6ù6ù¶â´ó†y÷•õÑ ã·¢ŽÞ®u»ÖíZ—nMÚtkÓ­M·âãÀâ8î»qßûnCÖùˆäˆäˆd}ÎTe¬siõÒܸ’@e'°Ñ©VÓëO¯?½þúë­ãÞ:î­ãŠ:JݶuÛÖm»ôÑ¥.}t}êüÑÀ~4pýk»äÕ%¯.yµÞ¾õö­·ïÆ/h² É‚&Ûåo—¿]þºû©1¯Æ¼óJ7¶)êNÁê›Tߤú&…õ©8í¼aÞ}e}ô;ÿØùÇÎ5gÖœYsfY¿›fNš9i椢ŽRØ£~èõC¯z­?|îÃç>|nýë\’Ç¿—äLUÆ:—V/Í+ Tv`0’Dǯ:~Õñ«Ögš~uãÕW7.¼«¨£\Vë²Z—Õ*ÉÞŠRþuÏ¿îù×=ë*ô{§ß;ýÞ)Ý(¥$m^vgóî­Çç=>ïñyQ{»ð¶ o»ð¶õ¯ó/U~©òK•¢‚öÂ{+Bkløw߆©Ã­ÎhuF«²¾Gó¤ø¤ø¤¸¨£Ö¡ä{;«öYµÏª]ÔÞº>Ýõé®O¯{Nï9½çôÒºTÆ:—V/­ìW¨ìÀ`6:ÕJì‰Ãž8ì‰ÃþÜQ®»õº[¯»µøý¿Ûôݦï6-I °÷€½ì= ¨ý4ÿ²ù—Í¿\Ÿ8!ªÕŒj®}wÚÆO¹~ÊõS®/~Ÿ#¾ñýˆïÿ\mW³ò˜•Ç{б{PQûÝ|tóÑÍ+Z;o˜w߆©Cao/¾&Ï>ñìÏ>ñçö?|‹á[ ߢøýÇKâ%ñ’’¿ê‰ÏO|~âóÅïsø²áˆ/ûsu.|pqá=£¥u¨Œu.­^ZÙ¯$PÙ €ÀltJÞwûôœ§ç<=§${.œ”ïÛ³oϾ=‹ßóycÏ{ÞØ’×¹[¿nýºõ+~ŸgouöVgoõG§ûG½0ê…Q/ìðìÏîðláÏõðÒ!.tÎOçütÎOEí³úâê‹«/þïþ«T-¨Z’}.Üvá¶ ·]û­ëÀG|äÀGÖgEgpÉ<îäq'+ª&Û¿ºý«Û¿úGkUý¿þ)žòà)þ¹:þlñ׫Â:”|Ÿ…ëõÖº³Öµî,ùµ1·ë\Zû©¼W¨ìÀ`6:ÅOî·êߪ«þëþý‰ïøÞ‰ï½~÷ëw¿~÷÷}¾ïó}Ÿß¯ûýºß¯+\rØÃö¶GQ?»¶]êíRo—z…k–áÌ gN8óôާw<½cQ_O)jÏ…±kn×¹´ziå½’@e'°Ñ)~"¾0ЭV CˆIMzlÒcxj¾jAÕ‚ªîøpLJ«•™Â5€KÒJ¥Ûæew6×gÏïoúþ¦ïoZ­ŒÞøüeÏ_öüe¹56Ì»oÃ×'›œMÎ&—õY®Û¶nÛºm c¼õ¥k?>ºt^a– X6`Ù€âcìÜ®séöÒÊx%€ÊN,`£S’Éýtv:;]ZSóõö­·o½}ƒfA³ ÙúÔüÇÎ?vþ±s鯅ëþÞyË·ÜyËÚ!šÓwNß9}Ë"°)ì…÷nȾ]ñß}ÞÔ3¦ž1õŒ²8Ë{=º×£{=ºvXZu~çàw~çàÒªçQ·uûQ·>- øÿ¹Ï…û\¸Ï…¹]ç²è¥•ëJ•X ÀF§ä“û…!]Ÿ©ù®Ow}ºëÓk?lvýë_øhеøùçêÖ´ iAÓ‚‰ÏO|~âóëe§îÅ•²kóŠ³çµ­}aí>µûÔîóçÚ¼ð|õœÞszÏé….Ýz €×Ç/‹~YôË¢’¯„]üúÁ·üí–¿Ýò·µß­eQçµ2¼öš²%ÿòGášå…ëÅþý§Ç~zì§ÇõSÍ¿lþeó/s»Îe×K+Ë•*;°J¤ð“sïÏzÖû³C>ôçC.¼·¯0ìiÜ©q§Æ:<Óá™ÏÜöémŸÞöéÇ|ñÇ—õ¤üÚÑò)žòà)Ö¤0¦-¬[£SÚèÔþ8ì‹Ã¾øç^ÿÜëŸ{å¿‘ÿFþ…÷ûŠ þ¨µ#½s£s£s£öÚ7jߨ°?‡…ëtFì…«–>úä£O>údé~€²³ö}¥g6<³á™ ÛtkÓ­M·Â5¶ Ïrƒñ Æ7_ø÷gouöVgoõÜMÏÝôÜM ·]¸íÂm7üYþzÖ׳¾žuÿ_ïÿëý=ú꣯>úêÂ÷þÏîðìÏÞ{äËG¾|äËý‡õÖXQÁá”ë§\?åúâ¹¼1×Ù•*>°ÖKåºÏÒùÚðm®ååÊuzõ߯þûÕõ/épI‡K:”õë­Œuv%€ŠC,þë‘yñ‘‹ ïÖ­hade¬3PvÀ`¨Ð ¼ÛWÿÿrà#>rà#¥{¬.s»Ìí2·¨0õ߸ñK¦VÆ:¹A,€ ­pÛ¢ÎÙCg=tý2w×¹»ÎݵæÌš3kÎ\÷(…+‹/°lÀ²¹Zg 7€ÀP¡ ¸oÀ}î+*L=³á™ Ïl¸>w¸®j»ªíª¶',8aÁ Š:ÊycÏ{ÞØÜ®3À`¨Ð¾žõõ¬¯gU+Öå[^¾åå[þRå—*¿üy†M4YÐäôާw<½cQ{®¾IõMªo2õŒ©gL=£ä‘me¬3À`¨nlqc‹[©îRo—z»Ô+üs¸[¸[¸ÛWó¾š÷Õ¼ÝWt_Ñýû>ß÷ù¾Oþùoä¿qýIןtýI»n»ë¶»n[ü>¯ ¯ ¯ 7ž:•X •@áZ¶Õ6 ƒw>xçƒwþ5ÿ×ü_óÿÜ}´•±Î@e'@¥±v´Yv ×Ö]òê’W—¼ºþ1je¬3Py €ÀP)Žè÷m³o›}Û¬€Ú¦[›nmº½üÑ˽üQAÕ‚ªUË"F­Œu*°*±5u×Ô]S·pt_¸æn§ó;ßéüF§6:µÑ©;³ó1;³]þvùÛåï9jÏQ{Ž:蚃®9èš“Ç<îäqüðÀü0ã›ßÌøfC¨•±Î@e!@Î*êÞYur•X ä°È`0#À` G€À@Ž €€!9B,r„X ä°È`0#À` G€À@Ž €€!9B,r„X ä°È`0#À` G€À@Ž €€!9B,r„X ä°È`0#À` G€À@Ž €€!9B,r„X ä°È`0#À` G€À@ŽÿW6±ÄeR9•ÉåT¦”Sy»œÊÔ ^¦•Sy§œÊ»åT¦—Sy¯œÊûåTf”Sù œÊÌr*³6xù°œÊìr*•S™SNåãr*Ÿ”Sù´œÊgåT>/§2·œÊåT¾Üàå«r*_—S™WNå›r*ß–Sù®œÊÊ©|_Nå‡r*óË©üXNå§r* 6xù¹œÊÂr*¿”SYTNeq9•_Ë©,)§ò[9•¥åT–•Sù½œÊòr*+Ê©¬ÜàeU9•ÕåTÖ”S)(Ÿ’_¥œÊ&åT6-§²YY0@Î䈜 € 9ÁÀÆ#gàûñ¸ËòˬL,§bMb«[¸â¯F¼ñ¬C¼ñ¬@¼ñ¬=<«œÊƳöðƳêðƳÞðƳҰ5†souáòZcxãY]غÂV¶–°U„­"\^«o<ë[9ØšÁV ¶N°u‚Ëk`+[¸Â¯ üc¯{ýØ+gï ,€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€r„ G€€?irÍÉ5'×Ì¿4ÿÒüK§>>õñ©k€Êk^8/œN¼nâu¯›´õ¤­'mýë_~ý˯Ñ2P¹€€ÿúnðwƒ¿npÑ}p‘³ PhþŒù3æÏ¸²ê•U¯¬úçF[;œ¶Ýªê7œ~ö1“êÿcЗmôËó—Þ¹mó×'L|dD˧Ó>þT«3’ÙïݪÍ_<ܠ壾¾ãèfóïsÉŽûÜ·ä#©ýª¯¬6쮆— iôì{ÿkA› ¦MëСԶGLkÕaç·ÿæ ¯û׳ÙÞÕÿh<ºÇè£{´.h]ÐÚY*#0“rÄòñËÇ/sþÍù7ç—d˜ÝrA½µæL8ô¸+ZÞ^ºAoÉ·+;^ð¯#[uæSK¾XòÅ’/ô §üZðkÁ¯OœøÄ‰OœX¢v/¾þÎýj/Ù#½ýð!åúµýñ·:îÖã.|¡á³%y-o´x£Å-t ²S1 €  ¯ ¯ ¯*~ð\ÿ²zú™]n³mE }‹ßŽþ¶Óìýß,þÕÕÜ®æv5·ûêã¯>þêcý¨ì–÷^Þ{yïuzÔéQ§øÑÐÍÏ^pVÃKÊovÄv-ô-jûÃà ‡Úòœ~ÇMÝíÿx Ô€Új¨]P¿ ~A}½¨ÈÀTL`¨”F}8êÃQÿÇ=²^pØŽMz­xáÜ#U®èwíí/_÷œrØg=gíwèn«‹½3ÒéŒTß*£EÓM_4½ÅškZ¬)jÔS÷Ð:=jnýQã>i÷÷ÊúµÍn{âÚV?Êë¹uÏ­{n½2\® õ bS1 € ’ylÉcK[Rü yÖÈShÛ·ò†¾EmÇ,=¦íþËŠíÓÞžöö´·õ ²øe³_6ûe³úÇÔ?¦þ1Et®yììcöj³2Ò÷È*{ô»övQǸÃa¿ÿÝaÓê½VÔkïÒ¬K³.ÍVî¶r·•»é-@E#¦b@¥ñLgz<Ó£¨!qû£ëw¨së/÷ö|þ°·s/ú]{;ûæSkû]ñ1ðÌfÞ0ó}¨È–ä/É_’ß Wƒ^ z5ºyî‡7¿!—Bßu·k¦Lý¨C•/=¥Q•¢Ú¡[ïn½»õ^=aõ„Õô âS1 € ˜°dÂ’ EÞõ{zÕÆgÔo»bÜ—Y3·£ßµ·ÿÙôìQ| üMƒo|Ó@ÿ*šUW \5°ÃÓžîðtQ#šè¦¡'øJnG¿ënG ¾uAÓEEÞ =òš‘׌Ô€ŠCLÅ$€ í“nŸtû¤[QCß3öl<±þõ«¯¹ðÚ#_Ùx¢ßµ·?Ž8gæ¡/Õ>;7Þ¹ñΗu\ÖqYG} ¨8úôïÓ¿Oÿ¢Æ2ùÛý¿öî=Îæ:aà¸'Õ>»íŠq§q'÷ÜÉ}˜Š”)×r)—XyŠÒ“JRm-›mË%¢ÚB¬\¦u‹‘hm.MÙD¨V$’0ÆÌ<ÌóÇìë8v˜Û™ãýþ½^ßW¯æwæüÎo¾å÷s~¯iñ×+-ýf”Ÿ¼¸áš`çgÞŽy;æí0‹€P š`Qgªž©z¦j°ånt½ªãÊ'¥DYÓäÊL¿™ÇoVÜ3§}|°s5´éЦC›šQ@(X¾eù–å[‚­_VÍ›þs³WrúÍ<¾ô‹qê÷ zëŸvý°ë3 È_0¡I€5&yLò˜ä` Ý“<±cé7ó¸óÅ»ÿ§õUÁÎØŠ}+ö­Øg^ù(¯¬xIDATåpÒá¤ÃIÁÖ,3ëßR¦è8>0û®eÕÖ;og'Ÿ|v²Ùä8§¬X¼bñŠÅçð©7Ÿzó©7w>ÞùxggæòÀr¶VÚZik¥`‹Û=Ïô)Ýæ%¹7ØøÆÑγÝìì|bð‰Áæ§Î¥ŸK?×í@·Ý®SîÚ×¹]¥[Ò_ÞöhìMroà˜\eóˆèÕ{ÞpUñIgoÒ¬I³&Í2Å€ü"g_jÔ©=‚ý6O ¾<0„ó…Ï>_¸xBñ„â —;¯ý6¶QƒÃï¿»76ªçÚÚ…+n<‡£>6ú˜™ä¥uÃ× _7<è_T½eÝÄ«…Þ‹{¯Y² mõ`çðËQ_Žúr”™ä=8û2¿÷÷âÄ଀ „,»pì±7“#G•©—öÎУ1ÉoVÆ£ƒü5jv°‹Å½Ó÷Nß;Ý|r[JjJjJj°µIB«?4m6IÜÍúøû¾®71ðLv-Ûµlײæ÷àì˺q·h–‰Á'@H8;òìȳ#ƒ]Ð|v¦÷mZɺ—:ν'æo Þ<Ÿñâ'ÄO0ë€Ü¶ø«Å_-þ*pUÓëæ 7”K?²íýØ(Y7ëã¹k?¬},ØÚyg±Åv3뀼$ç,18§ÀÞªðV…·*^¾Ü_£AŪ“¤ÜËÏíòxLd°KÃýÓöOÛ?ÍÜrCêÔÔ©©Sƒ­Göô^ô|›i‚îå«ÛÏÝ,îïžÕuVW÷ò”œ{Äàì€ Ÿ¥=—ö\ÚsÁ.Yvïß§Ý‹RnvÆE›â¶6^xnÜñàŽw˜@nØ4wÓÜMsW"wôˆ^R±ƒˆ›1í—[;Ä|±&¢fÑ |æÓ¡k]sè3ÈpÞƒ/• ùì“ÕŸ¬þdõ~)p_­ªåÛ“o½ÿhôÆ`‚§;Ÿî|Ú‡Ã9¬k¡®…ººÀÇýæÄÖ%EÜì‹w=Û¹ññÀ3<ùûÉßOþÞ ò†œ÷Ä଀ Ÿ2bȈ!%ÛV÷<Ùò¡Œ„yñË—Pޝ_ÜÚg]›”Ü8ÚŸÜ÷|ÇãY?3OßÔz[&û$´Mh›ÐÖ<rÊñ>Çûï¸ú(ß¨Ìæˆéã¶ ˆ½1·ãè¿[+]øQ)]¶DÆ4{®Éèsuã›|Pws™>¥g–°ô¥®>æîzâΉyG//ÓNˆœPsRÑlËË ¿,Ö!pŸä6Ém’Û˜“@öuÿ®ûwÝ¿ \wž±z|ûóy€Së~ôRÌüÌc°GÝøR•q%dø¹ãêÀïùÙÔwª^x–wx[òüR-Ÿ <†i×L»fš;¹NMb° ùfÆöÛgl¼Ôø[çø§Zî€ Öýws;_êsM‰n=¶ö.Í“â’â’âÌI ;RÞMy7åÝÀG‰Å׫”þù¶wbÛä}¾¼Ge¤ß‹ïÿÅ­KJ^x–wøl«ÄUÑÀ5öÕØWcŸ9 ä68ô]™1X€|Õ/ª_T¿ÀË‹Ÿ¿obÇ À¹ñ\+ÿ`ËÄÀ}fGÍŽšeNÙq°ðÁ ®8”^óּ̢ÙÀq7ôpÆØæÎÆ–‹ <’ÓŸŸþüôçf&{à‚åʉÁ0äƒÔ9©sRç^LD.)Yµxµ`t|©éôðø{ßhÿó”ßµ~¡NÑ»~_{i¥¾ŠüEéJÏŒØWlcí¡e¿*uuô†ªKÊŸý]©výênü¡ÂÀ ZçM”ý䪻žiõÛ¾êŽ©Ü¹ÚÆÒ‰%ÖdUã‘ÊT{¬i‹÷j®¾ÔãÉJþ1qpdÇë÷éݼwóÞÍÍL ;VmXµaÕ†ÀÇš_ÍÚ¼zhàìÜÙ7tðóÇìY7!ðHövÚÛio'3È=pÁÞ1X€ü¸¼Xw|ÝñuÃë7œSmdöð†ozÜÒ¢m…z%o/Þ¾è%:”ØÿÛvßäv.ù^Díbw]üHª//S±Ä©Oßìµ õ{9önãzÃÊÇ–Ü'".".ÂG@Ù2e÷”ÝSv_`5þ½ñív‡f®± òû%kgŒ™Uå@…JtÏüÕPÀK¾Z¥Å¤À#YyvåÙ•gÍL ÷Àá!üb° ùà‹"_ù¢HàEì{¢—Ü”–üó‚ûžïx¼Ö¸²O•üÛÿß÷hA™ñ%k¿ø]ûáõîO|ëŽwo.³{e¯.­_êöã-þsbrËjMÏx÷mn|Ds°(›aBL‹>5'½ß­Û§Í6,ý¶ëM^U¦ñØêS‹ýGÑáEÿåU§E]³'§>nºÝµ•Ÿ+÷Î…ö¸|ñåâËÅ—»À§oZÝÆG@çÞxðêåñí&É K_XúÂR3È=pø ,@>HŒHŒHŒ¼PX[¸ûgÍûe'gdÝŒ=‹,º±ècŸ?Ò{Y›»ƒ}‡Àc¨º³ôˆSr/G*Yô/kvºyýÌÇùŸß‰ŠkÙ¸÷¥Þ98ëxä¼F‡«7€€œU«G­µz®5ÒæoMˆ9#çÞxòÏúuìx$#"GDŽˆ43Ü#‡·‚ƒ`ÈËj/«½¬vàÅÁއï.Ùjcvð–Gï\sóû£6y¢Fݧ'¶þ®NlV‰sê}ÀQvà—õ¿©’˜•ïŸùQq÷Wÿ(²mNàiÛ­sPrVà*£TŸ÷AôJ Àç¦~ød̯ä¶•·­¼m¥™ äåÿùàpU°bp¡ÐùOøâõ>ûÛ^Ÿý{>6ØWSëí3ÿ÷ÿh¿©Þ¬¼ ÀïQÎÊcW=vÛ–f2õÅ*ëø•g¢ÿã¦æÛêÝVãd©wàÜSç}t2fù@hZ±xÅâ‹`¸Bí;Þ¯lÛí9€O4¶Ã[ëŠßÞºù+s¯y§ÁÌÇKß<´V»'Õ¹®Ò¨ŠJ¾]üá`Ç“øPbÿoÛ}“•Çî«Ô÷ã¶s²~TYÀsÓcÿ³ÁßÍ7 ·5­Xïú2ÿ%çö˜6rë 1GÍ7BÓ¹Eç[$À*§Þ¼½rüg­®ê~݇*<™qÏÝ`ÏØxGä€2Õ|_ÿÙ*¿»Ð¢=çpò°ûŽþ(+=3åþÑ}³~TÞ „ïö`¸‚Þœñè6›Íf³]™ÛÔùSçOx)S÷.=3b_±û7(Rþ\é¸I·ªU»Ù{¾õý¦~ySß1m‡¦tòVL³KM§yùà¯NöÛÓ®CÆ£Šï*öpÑ#?ªìßØÌ´Ùl6›Íf³ÙlÙÙW÷n÷›v¿i÷3Óf³ååÿùg^;óÚ™×:3á·­|då#+vÕ°«†]•õô›±ÿt`¸’%F$F$F^¬-Üý³æý²€»v®ñXäÛ{ü²þ7UÓ"‡®ˆÙsñïð¾}îk“˜78ë÷~¿[·O›mÈœ±s*œ×èpõ&ÚàòÕêQ«G­k´ù[bÎÀ¹7žüó†~;ɈÈ‘#"ÍL ÷{ƒ32ÂíSo>õæSof=úfìŸ÷Ñ73òÁE¾(òE‘À‹ƒY÷D/¹)-;ø†.%fGìÎØsk¿žÿղ楦ÖÜÀY:+½ë÷µ—Vj‘ñ¨^cë ®´ §p»k+?WîÈYñåâËÅ— \kœNß´>ºœ{ãÁ«—Ç·›x$/,}aé KÍL ÷Àá§àFßÌ`ÈˈuÇ×_x¡0¼~Ã9ÕFf'×+7½ÔèŒ=߉ŠkÙ¸÷Å÷ÿzÅ=íÛßq'༠À÷$^Ó°ûÓÍë{TÆ‘g~Tâ[w¼{s™K}® ¼ŠzÃÊÇ–Ü'"."."Î̲cÊî)»§ì\qÿÞøv»àÜ7–|µJ‹IG²òìʳ+Ïš™@î€ÃCxDßÌ`È©sRç¤Î ¼hˆ\R²jñjÙ ÀC^l°°ê§{Vþ±Ôªå^Oè4¢áw÷¶Ý’ï†(U7#¦NLnyC­éež.޼ع`1Áže_¥¾·ScA™ñ%kgŒY²ûgüócM[¼Wsõ_Ûw¿©ÙÙ¿l¹õM‹Œ*Óxlõ©™÷»¿úG‘m³òÚ³€LÙñúÀ}z7ïݼws3ÈŽUVmXuOWZó«™C›W€so|þøƒ=ë&ÉÞN{;íídf¹G.¸Â/úf&@¾‰êÕ/ª_àeÄÏß7±ã?//ßfào¢þ^{hÙ¯J]õ —=ô¹®Íïªî,=¢Ä”Ìÿ¾Ë]5ªFþwv>l9pÏM«îˆoq ÜðâG#†\ü¨nŠ,?·t‰C‰ý¿m÷MNà¿•ˆ°åîv<;jvÔì(sÈŽƒ…>X8pÅñhü ôš· À¹7¶¹³ñ£åâ.ðáÛŸŸþüôçf&{à‚%¼£of0ä›ÛglŸ±=ð’âoãŸj¹ãòpæýŸ8Òò¿k}Ô¶NåVå͸7pÆØa•óå§Í|¾Ã“õ¥ÖÚ7f~æïŸË÷.1køà†©6>gpæ#¼7¥~£*wWÛX:±ÄšR #&{®É‘ eúLú¸U­ÚÍ~Ú4ø‹Žÿ›õW•£šÝzlí \š'Å%Å%ùh [RÞMy7åÝÀG‰Å׫”þù¶wbÛÀ9;žm•¸*úÉÀc¨±¯Æ¾ûÌI · À¡ïʉ¾™ Ào’$5Hjxy1¡D‹[jŽËNÎü¨Kýê¥fæŒ{úæìs]ÞˆÿM^4,.¶qÉ>¿,Ö!pŸä6Ém’Û˜“@öuÿ®ûwÝ¿ \wž±z|ûó¡€³¾(àmÉóKµ¼@žvÍ´k¦]c6¹MMWfôÍL€|“Ò;¥wJï`ç÷ móbvpn÷c»x>0¦ÿ/ÛÝøÕ½zôêÑËlrÊÒ–>°ôÀÕÇÜ]OÜÙ 1”𥎡€GŽïU£z |ÎSͤšI5ÍF · À¡CôÍL€|6bȈ!#.p7Üm«{žlùP(à7žë<¾Q\A ÀOßÔz[&_Mh›Ð6¡­yä”ã}Ž÷9Þ'põQ¾Q™Í3ÒÇm{£œýñô²M“£ëû…~j©ÔR©¥ÌF · Àùüg®è„ ùì“ÕŸ¬þduà…È÷ÕªZñ‘93ù•ZëÆ•›^jt¾¥ß"îý—³ñ~·nŸ6Ûpw¾õþ£Ñƒ]ðî|ºóéÎæ!³ºêZ¨k¡À5Èίߜغd^àŒL›y¼Ìï\dÛõ±ÿòÝÞïöÒo.´ Ë›¼x׳|öÉßOþ~ò÷f 7à¼'úf… ù,í¹´çÒž vir°{ÿ>í^¼øåK~Å×ü=†ŸÜ÷|ÇãY¹¼[´)nkãeÿþÁîxp‡ä†Ms7ÍÝ4÷Ù·Gô’Šò2çT ýyÁÆeY[…åö«KûåÖ1ŸF¬‰¨YôíÀg?tÍ¡k¹û/Gà¼!ú^*BÂ[ÞªðV…ÀË”ûk4¨XuRÖØ¡òÑС€ƒÙ?mÿ´ýÓÌ= 7¤NMš:5ØzdOïEÏ·™–_øò2mèàÕígŒnø¼]guÕu–¹ä%8÷ˆ¾Ù!@H8;òìȳ#ƒ]¸|v¦÷mZK¡WfÎÊì|ÆOˆŸ?Á¬rÛ⯵ø«ÀUIL¯›7ÜP.ýȶ÷c£òæ“ópÁúÎã¹k?¬},ØZog±Åv3뀼$ç,Ñ7§ÀBŽ]8váØÀ‹˜ÆÉ‘£ÊÔK{gèјdY7+ãÑAþ5;ØEáÞé{§ïn¾¹-%5%5%5ØÚ$¡Õš6›”÷¸àŽ¿ïûPáz/ðÞß²]Ëv-k¾yOÎ>Ñ77ÀBÎ>_ø|áâ ÅŠ'^Ö¼öÛØF ‹»ÿf<<ìÞØ¨žkk®¸=ðŽ>6úØècf—Ö _7|Ýð`¿Â>q˺‰V‹»÷^³dAÛêÁÎá—£¾õå(3 È{pö­X¼bñŠÅ¢o΀ äl­´µÒÖJAïõLŸÒm^zƒoí<«Ñ½A±2øÄàƒÍ1 OK?—~®Ûnº\§Üµ¯s»J·¤¿¼íÑØ›„ÞÀ1¹ÊæÑ«+ö¼áªâ“ÏÞ¤Y“fMrß_ ßÀÙ—Ú#µGjÑ7g À¢Æ$I“ìÒçäßOìØEîÍ<î|ñîÿi}U°3¶bߊ}+ö™W@~9œt8épR°5ËÌúã·ÔŸ)÷Ž̾kYµõÁÎÛÙÉg'ŸlvùEÎ)™ß,úfŸ !êLÕ3UÏT ¶Ä®Wu\ù¤”è! cšH¿ß¬¸gNûø`çjhÓ¡M‡65£€P°|Ëò-Ë·[¿¬š7ýçf5Dߌñ¥_Œ;P¿g°sµë‡]?ìúÁŒò—Lh€ ¤ýãîÜý»ƒ-wûÕ¨›XùÑÔ‡†>ó—+3ý}mÀ®¨w‚ŸêÞP÷†ºg:ét¦“¹„ŽñOjüSÁÖ2›J¼z¤Å_¯äô» üäÅ ×;?óvÌÛ1o‡Y„˜Ð$@p*áT©`Kß¾Eêö«ÜúÜÒ!£bŠ_9é÷ŸWÝ[¾ýkE/êëê_Wÿººù„šóSÏO=?5v^ì¼ØyÁV4ëþçå;šÿåJK¿¯Í|âXƒƒ“‡^èõ‡^7€Ð!š`(0æœ?pþÀ`Ëà¶·TŽ-÷ĉç½Õá£ðN¿I÷ú¹õ·O¿»&ìš°k‚9„²S›Nm:µ©úðê붺ys蔎&„wôMÛ²õ³ØBS:¼«N¡`çáî1w¹{LjBjBj‚™„˜Ð$@ó§S:õ§SÏŸ»_ïÝú‘ðK¿‹OwiÝøÌÅ_û¶¶}´í#ó((N>QøDáÊ]*w©Ü%è;_ÿto—[¥|°å‘˜ÛÃ)ýþØi}l‡ŸºÛa[…Á^{†=öh˜R%¥JJ³50¡I€iÁ§ >]ðéÅSèKC:”®?³vm\÷›ÿö†ÛKÌø7ïoî?§ÿœþsNí?µÿÔ~s+?¥ÿ”þÓ«w¼zÇ«wÍ‚—xôé›ÊžªöÁäŽ µè{tÕûÇ¢–>ÑmèÛµf嵬jºªéª¦¦PPÀ„&ÂDòòäåÉËßôø¦Ç7eeQÝìX…©e>Oˆê6ºÙäüо)†¼Ótθ˜‡<\4ËU^TyQåôÓé§ÓOû¹ám÷ç»?ßýy™e”Y•Ó„jƒçÖ|ôà±÷~Ýî½üо»âßÜÓú¦û«Þ1¬ê¤¬sûÛÿØþÇo¶}³í›m~â@Á"š`C»~µëW»~U«S­Nµ:e=¬ö‰ª[´òoVœ¼­iÓÄZÛ!)gsïWwö›Ý®Âëõ:µh8¥ÕæJw•=‘õc»·ë½]ïízä쑳GÎúùWš”SnL¹qÆ#3™ñHÖWR“Š¥ýL­Q¬³pgÍ7޵:šÃ¹7z[‹Ø>ª5÷ë›>ÒmPÚŊ^¢E \40½ezËô–~Ê@A$š`[iÃÓ†§ _~jù©å§ŠfC»;+ÿ¹ÜÚq›ºñ­YiÑGT^þã­5½}ý·ÙüüÆÇzhñ§µºh>hÉÜ.6‰üÃÃQkê7yàjT[[÷™ro—züòž·íú¶ëÛ®ß9lç°Ãü42ÙqdÇ‘y°ÈƒE.oµUªO‰óÅ&ô½·ËæÊ·Mý_/×9ñÖȧ¯o´2!ñ¯5›÷Áo_™Ó¢ß†¤Wj¶hµjÿŒêÍš,8øä- <¹xDéÚóゥbçì¬1Ÿ}þÙçŸ}þÔÀSO ôÓ :˜Ð$ÀáüÇç?>ÿqÂ{ ï%¼WYýeõ— I½‹ô.һȮ—w½¼ëåô´ô´ô4?;€`¾ðÝ€ïLÞ9yçäECØËŸ¾üéËŸžŒ?2ÞO '0¡I€+ÔþÍû7ïßhgfedcbasbufferWhen()[g, h][d, e, f][a, b, c]rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/catch.png000066400000000000000000001376011431412030200244630ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìýy¼×sþøÿ[f3f(¤H!‰(J«vmÈÙ’ì NDŠÆŒ!û^’Ivblç¹W¢e3v“%!‰D›ÎùþñœÏå×üŽÓûPéô:×ë¹\—.¦sz¾¯ûëa¼n½^¯MJ(›Ø€Â  @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€!¥ï¬|gå;+§4œÒpJé}¦ö™Úgy¯å½–÷²3ÎX`ã"Cúþõï_ÿþõ3gÌœ1óÆ¥7.½qiÇ÷;¾ßñýjëHŸ©}¦ö™:îòq—»üý·Þëý·JW–®,]içg¬3ذ`Øè-¶tÚÒinœpã„{ í1´ÇÐjÈàžƒ{î9çÔ9§Î9Õý8c±À/O†ÒÇO}üÔÇO ymÈkC^«V‰k?®ý¸öß7ý¾é÷MÝk€3Ö ¬o0l4>¹é“›>¹©ßÙýÎîwöÏKu¶ÜnÞ6¥§|¿O“zÇÝ|aÇ]Ý÷øÁ¿ß¬ÞKSŽØ´å{iØë®Öç%C{íÞzÏ ï~C‹å,=p·¦—^qX›»Î=lDƒåu¾_›P1ªî¨º£ê.뵬×2Ÿ| ä»cëmJOù¾gßzÇÝ|á ïÝ÷øÁ×]Ù¬ÞKSî(jù^ÞýAëó’¡w}ÖzÏ ï ïÝbùK¯|¥é¥WV4¨áÜÃFtÚÏ ¬ 0TjKoXzÃÒ®®yuÍ«kV<ìÜ Æøm/Ö¢Ó5‡ü{LŸMÛ-,--*êÞ}]­?Ü}VƒnWLÞ⨭_<Pó£Tÿ©¡bÒ‹“^œôbé²Òe¥ËÜËÀÆvÆÖþ`Û‹‡µ¸ð“ÆCþ=æñsÚ-,->½{÷uµþp÷+õ»]1y‹{>lýâùƒúvvÆ?… •Ô«Û¿ºý«ÛWüéþköiwÎ^+\têäX·¹·âëŒÓŽmÚftïoön¾Ë5¹æ£ß=úÝ£ß]Xga…uÜã@å>ctÝkÅ‚‹^zé€Ömî­ø:ã´Îj3º÷7oïŒÊ'C%R2´dhÉÐFÜ0â†yrÿÁöŽn:yé gÕõÌ }Ë[?íyò[† .j±uƒ+*r[¦´šÒjJ+3T¦3vè´¦“—¾0刮gn¨è[ÞúiÏ Ït2¸èÄéÎXà ÀP),鰤Ò‡ö9´Ï¡}Öü$þÍ:Öm4zåYg>Û­]e‹¾å­õ<鄎·Q…u¯_ó­»sÎsîœSZRZRZb*€ qÆZÔhôʳ¦5ëÖ®²EßòÖz>wkÇÛŽ¨ß¹™3€aƒû¢Ím¾hS{\íqµÇ•÷”}³oë ¨Õhn¯éXmc‰¾å­þ§­9Q ‰‡ÄCâ’7JÞ(yÄëÿŒmT¿V£¹5žy½cµ%ú–·N4ü·ÎX¨Ú`Ø`æž?xþà5?Mí[í¿wŸ’o‹~Ý}‹=ý®¾~±Ï©лÍÂ]~³CTÞm/š^4½hzÉÀ’%M °~ÎØsoÛ»OÉ·¯.ï¾ÅÆž~W_¿ØçÅIôn³°é(g,°þ-¾tñ¥‹/}hÔC£U5w`eÍ•5WÖþ÷áþwó@e ð°ùÂæ ›¯9KLøüðÛZüPHÑ·ìúCÛ³6ëvÎàó[lÓ`hyû0ðÛßü¶tRé¤ÒI&Xwgìð~-~(¤è[vý¡í´·»3øüç8cõ#O¿õz×ë]¯÷?=ýÜÏ}ðܪ³yúíuO¯{zÝ“ïÀ1óð1› 6,~QK'.¸tâ^µöªµW­òžŽŸY÷؋ڼ\Øé÷ÖeEgtïzK¯Ž4š]ÞžÜtøM‡ßt¸ùÖÅûÀm^.ìôû?ë²éSºw½¥×à±ÎX`]k¸¢áІ+Êž*U!—M¿«»fÈ5C®bBØP`ø¥ü³ôŸ¥ÿ<¥ÿ)ýOé_ÞSð³—õîÖvnJ¿eÖÛ¾ët^ã¢òöçùøùøùØ(?÷Œ}xZÛ¹U(ý–YoûîÂgœ±ÀºS^þ,ì ¼æô[5_ @e#Ã/dÌ+c^óJyOMëqôcû?]•ÓïêëåÍöŸÓðŒòöêÆ6ü°¡‰~Ê;¦ÅþOWåô»úzy³3g:cu¡ª¥P逅 ëÝ{‹ß[üÞâòž$zü¨ƒ?l¶»è»úZ2鬯»ýpä!{ö©;³ìŽ5¾¹ñÍo^uüªãWoº€ÿ댽î†f»‹¾«¯%“^Ñí‡#é²£3XªB•~Ö·Æ¿0þ…ñùa]ýÈÕ\ýÈ¢ƒ´è ;óóÀ°•ô+éWÒ¯Éè&£›Œ.û$Ñ .ÍïoÐIî-o]<¨ß‰]Z–÷ÛÝ×Ý}ÝÝ×™1pÆ–Æö× “Ü[ÞºxPÒÔ ¬;…šH¥_€õmU¯U½Võ*ÄàŸG†õèñQz|TyÇÖÒÎ8ªë™Bïš×™Oûd›ÏÊÛÃÏÇ}>îóq& œ±?vÆNéÙõL¡wÍëÌ§Æ pÆëN!åRéà—±úk×L ®8Ö‹ï}·è»EåRÓß8æ‡6—‰»_/ÐêÐ=>(»“ýwî¿sÿÍ8cÿ÷Œ»¢ÍeânÅ׋œv¹3Xw6öt*ýü’ò ›ÇÝj&¯™ ëÅ[Þ¹å[–=’N¿hßë}&èþÔõÛíúêrByýÜ)s§ÌbêÀ{úEGYï3A÷§®ßn—<åŒÖµ1£J¿–¼®À°Ž-k¾¬ù²æåCŸ^{òÂNW º?o·ßmš^[vWϾôìKϾÔì3öÓk'|Ðé*A÷ç­ãö»r©3X×6–¤*ýT6bðÚ€a{zï§÷~zﲇÎùÛŸÒ –ˆ»6ëòCÎø¢kZÞ±þÕœ¯æ|5ÇBU=cûömPKÄ]›uù!SotÆëGeΫÒ/@å'ÿT0¬;+JW”®hØ®a»†íÊ4¾~RãŽЏk¿Ž<¸óÙûŒ.»Ã÷.¹wɽKŒ!TÕ3ö¹};^(â®ý:òà‹ßwÆëGeK­Ò/ÀÆH ®Ö™|<àãe•Žõv¹ã³ÂíºZÞ}Ú­ë–ÝçÚkw¬Ý±tVé¬ÒY¦ªÒÛü“ŸÝP¹ôÝÞªÑ~åê׳±à…wg:cõ©2dWé 0ˆÁå€aµË¨]FíRö(™ðìá—µøZ¸]·ëaÃ,«ó}ÙÝž·Õ¼­æme¡*±ÃÛ´øºòàÂÈÀ‡ ëÔÄ ¬O*ÁJ¿…J ^ ëLãÝïÞx÷²ÇÇ·mû=Ò¥Ÿd»n׉µ×òw?ò„]ûÛ?ØÞ4BU:c“Y]ú ÀëvX{ø ÎX`ýû%s¬ô PuˆÁ0¬KîYrÏ’y"©ÍØ¿Øa¼X»>ÖE—œÞ¹óõe÷üA‡ :d™„ªqÆ6=y‡ñ6”j^tIø3ø¥¬ï4+ýTeU3 À°Ì.™]2»¤ì1ò–ÎWíó¤X»^ÖåEgvïV³h›Õ'•ÝùU[®ÚrÕ–& ýŒ½d»}ž€×˺|úÔîÝjÕxÍ üRÖG¦•~X]Õ‰Á0¬cÞóÖ˜·Ê ¯M]wn—Òí–üë‘Çk÷|å ÀO¼yýKÎX`CX›|+ýðS^ €ah:³é̦3äM2ŸÕ·Û6‘~÷àŸná®®ñß+lð`­‹kìuÛçú7>cÊ£G=½­7&H»¿ÅKŽ\Ôúw—/o³SÃáùk‚ÿ÷íL+cž=»w«¶o–ÝùÇæ=6ï±y& ýŒ}åŽnTΜûK·~/îyåK=ïøcËäŸÞütóûÏ«Õçìݯ«¾iµÕº¯þ;Kê¼Ú«ÛÛ•-Ïžýð£ÎX`Ãù©)Wú`íF €a(ûP¯yÇ6ïWÏ*C"ͳn~UÕW˪]öÖ%}žiß»¼¸[ö¶ì6§æ9Û]S9ðüv§4é4¾ì5_ÿØõ]ÿ˜É„Â=ck|[=« ‰´lÞæãmºU{6h:òêVûä¿gõOÎýÄ×wkÖ§òrðüvÏvÆZE²îØSÆž2öé€ukãÁ0¬eÞí·ØåŸ;î_é´KöéüÍÿޠѵ—·û|ïîyEoÙH\9_¼ø–~gui_ö:öØo`?“ …{Æ6ë´ãþ•3Ÿöþo×›R‘ »úwõ8£ýóu:T¶¼ø–ä@g,P9T$K¿¬?W Þ`¸´^÷|jçM*ç«fלrW5:«o·†½ÓirãÑ•?/rÆñ]û›7¨zgl—é;oR9p¼ä®!­W‘ïxÙð·ZÖýoοëK5öªl¯^:eÊ ÎXX;/Œaü ã`ØèØÞÇîrOå À_orú¶=²]«»Çü¦ÛMFþ­æþg5lÐûʽ·Üå¼ëÖx|Û‹Ê»]•í¶,ïyÆ—]3óUïŒ=øÄ]øã)Ï?ßq^E¾÷ƒ]þÑ£Ã}?vÒV–¼¼çÔ[±°vV<¹âÉO À°Ñ«l¯žµë±o¶Ýìˆ-÷ø¸îUÛ|\½NµgË»òf³ëœZ«þ©_îsc½[Êþ¯^ TŽ3¶ò¾xyÑÔq]_©Ðëk¯™²w×¾?vÒz0Ž*ô àÉ›ûòU8_eÌ•í3€kŽÜæƒêÿ}W“­j¯¨ÙãÊmîÕòùÇ{©Å¥ïïÛwP‡³Vræ£ÝZæßõîa'Dÿ›4rËg÷îÙ»gïž&Ó—¯Â=c+ïgWüÀs?{yÇÎùwmûú¶›Uûâÿ´•ý3€±¾|ùúå¿âcâcâcX~Àò–ÿÔÿ̾|ûË·¿|{{èË—/_¾|ùòåË—/_¾ÖækÂ%.™pIÑfE›mVñÿ&Íú `($eÒ5ïØæýêYeH¤‡Ôà²:çWuÚûûÌ«7¥¤ÎY/t{{ÍY÷¾'ü©ý”Ê€ç·;¥I§ñe¯óúÇ®ìúÇL&î[ãÛêÙÆþÀ/õ¼ã-“ÿ÷WsÖªÙ£²àùí&žíŒ6´•5WÖ\Y³×=½îéuOyÿ9=ö”±§Œ=eÍ¿çÁs<÷Ásí'—‡Û«¹ú‘«©xôÍÿ/}W'Ã:ÐtfÓ™Mg–}¯j|VßnlØDºÓ!ÛÝ»Íùõ¼zâ1ÛìY‘ïz©gÏý¿,Q™ðìÙ½[µ}³ìu>6ï±yÍ3™Pègì+wt{ ²àÓÞ?âízS*ò½Ç ;hó]Zçßuüÿe—+[ž=ûáG±À†S‘ô»zÖý©¿ÊÚx£ïê`XŠêÕ/ª_ö¿hÚé'w¾gÃ&ÒF=v¾ýùùõüÑ'ÝØñ©ÏûŸºÉ¦OnØDúeûÓþxÀ?÷:k‡¹ÛÿªâGØÛgŸ°eû[v›Sóœí®YýŸr\ƒÝê\X)ðò¢3»w«Y´ÍŒê“~äa·\µåª-M&ú{ÉvûžòüóçUº¼|úÔîÝjÕxÍ üRÖG²•X]aGßÕ À°,¹gÉ=K~äI¥6cwþb‡ñ•!—æ×ó÷/Ú\Øð•{ïÚvÇKóÏÎ×Îÿ©÷CíFÞÜùª}ž\Õ謾ÝXýVäñ¸vŸíºn3º¿¦ÏÖ¿¸2Ü¢E—œÞ¹óõe÷üA‡ :d™„ªqÆ6=y‡ñ•-çÿ<ÿõ)+{žR¯wýl—ÎÛÛ?T£Uõ›š§¦Ö:áÊýGïÕòÛÉéþ]®¨œ¯ý]tIø3ø¥¬ïL+TeU'ú®N†u¦ñîwo¼{ÙcâÛ¶ýéÒ¯òdàŸú¿VÎ7žXûðq-÷#OÞµ°ýƒíM#T¥36™Õ¥ß†Í¥åEÜŸúÏ+Ï:±öðœ±Àú÷K¦Y ê¨šÑwu0¬3£vµË¨]Êž=ü²_W¶€º±¯‡ k°¬Î÷ew{ÞVó¶š·•i„ªtÆoÓâëÊS7Æõ°aš8cõiCåX P‰¾«€aùxÀÇ>PöøèXoב;>+Ù®«uáݧÝÚ¹nÙ}®Ý±vÇÚKg•Î*e¡*±Í?ÙñYÉv]­ ïÎtÆëSeH°20@a}Ë#ú³¢tE銆í¶kØ®ìòáë'5îx¡|»öëȃ;Ÿ½Ïè²;|ï’{—Ü»ÄBU=cŸÛ·ã…òíÚ¯#¾ø}g,°~T¶ì*lŒDߊ€a{zï§÷~zﲇËùÛŸÒ –|»6ëòCÎø¢kZÞñýÕœ¯æ|5ÇBU=cûömPK¾]›uù!SotÆëGeN­20@å'úþT0¬cËš/k¾¬yyÇͧמ¼°ÓURîÏ[Çíw`›¦×–ÝÕ³/=ûÒ³/5{àŒýôÚ tºJÊýyë¸ý®\êŒÖµ%¯ÊÀ•è»6`X/îÜòÎ-ïܲìÑsúEûî\ï3)÷§®ßn×oT—Ê;ÐçN™;eîSÎØÓ/:òÈzŸI¹?uýv»ä)g,°®mŒIUذDßuE†õâ»Eß-únQy‡Ñô7Žù¡Íe²nÅ׋´:tÊîdÿûïÜgóÎØÿ=cÇ®hs™¬[ñõâ§]îŒÖ=£ÊÀ¿$Ñw}€a=z|Ôã£UÞñ´ô…3Žêz¦¸»æuæSÇ>Ùæ³òöðóqŸû|œIgì±Szv=SÜ]ó:ó©qœ±ÀºSHéTøe¼0þ…ñ/Œ}×-Ö£’~%ýJú5Ýdt“ÑeªA]šßß “Ä[ÞºxP¿»´,ï ¿ûº»¯»û:3ÎØòÏØ¾ót’xË[Jš:cu§Ps© °¾­êµª×ª^¢ïº%Ãz÷Þâ÷¿·¸¼Ãëñ£þ°Ùîrïêkɤ³¾îöчìÙ§î̲;ÖøæÆ77¾yÕñ«Ž_u¼éþ¯3öºší.÷®¾–LzuF·Ž<¤ËŽÎX`]¨ ‰TXßV°è»ö`ø…ŒyeÌ+c^)ï £i=Ž~lÿ§¥ß|½¼ÙþsžQÞ^}ØðÆ64QÀO9cÇ´Øÿié7_/ovæLg,°.Tµ,*°±€á—òÏÒ–þó”þ§ô?¥yOÍ^Ö»[Û¹U9ýÞö]§ó•·?ÏÇÏÇÏÇF ø¹gìÃÓÚέÊé÷¶ï.|Æ ¬;U3…ÊÀT~0ü¢–N\:qéĽjíUk¯Zå=a4³î±µy¹ ¥ßeEgtïzK¯Ž4š]ÞžÜtøM‡ßt¸ùÖÅûÀm^®BéwÙô)Ý»ÞÒkðXg,°®5\ÑpEÃU3®9_3äš!× 1!l(0l ›/l¾°yµ5šðùá·µø¡°ÓïmÏÚ¬Û9ƒÏo±Mƒ¡åíÃÀo~;ðÛÒI¥“J'™`ݱÃûµø¡°Óïm§½ÝíœÁçŸ8Ç ¬‹/]|éâKëõ®×»^ïªùÊײø˜‡yø˜‡Í– ÌüÁóϼæDqí[í¿wŸ’o‹~Ý}‹BJ¿_ìsêÁôn³p—ßì•wÛ‹¦M/š^2°d`É@Ó¬Ÿ3öÜÛöîSòí«Ë»oQHé÷‹}^œt@ï6 ›ŽrÆë_žõШ‡FUÍÈ3ðð¿ÿûð¿›*6°/Ú|Ñæ‹6µÇÕW{\yOÓ7û¶Î€ZæÖ8ñšŽÕ6öô;aÐájñÑš“ÌxH<$.y£ä’7L°þÏØFõk5š[ã™×;VÛØÓï„AÃ대ªM†JaI‡%–t8´Ï¡}í³æ'îoбn£Ñ+Ï:óÙní6–èûQÏ“NèxÛõ÷XX÷ú5ߺ;çÜ9çÎ9¥%¥%¥%¦Øgì EF¯«A·+&oqTÖ/ž?¨ùQ ªWû‰&½8éÅI/–.+]VºÌ½ llglí¶½xX‹ ?i<äßc?§ÝÂuz¸û•úÝ®˜¼Å=¶~ñüA};;c€ŸB†Æ'7}rÓ'7õ;»ßÙýήö³ÔÙr»yÛ”žòý>Mêwó…wmtßãü~³z/M9bÓ–ï¥a¯»ZŸ— íµ{ë='¼sø -–?°ôÀÝš^zÅamîj8÷° –×ù¾ÚZUwTÝQu—õZÖkY/÷&Pˆg쎭·)=åûž}ëw󅃾ktßã_we³z/M¹£¨å{ix÷­ÏK†ÞõYë='¼3¼w‹å,½ò•¦—^qXÑ †sÑi?g,°.À°Qúø©Ÿúø©!¯ ymÈkÕ*±qíǵ×þû¦ß7ý¾©{ pÆ:c€õM†ÞÒiK§-6áÆ 7N¸±ÇÐC{ ÝP)bpÏÁ=÷œsêœSçœê~œ±ÎXà—'Cúþõï_ÿþõ3gÌœ1óÆ¥7.½qiÇ÷;¾ßñýu!úLí3µÏÔq—»|Üåï¿õþ[ï¿Uº²teéJ;8c±À†%¥ï¬|gå;+§4œÒpJé}¦ö™Úgy¯å½–ûIg,°‘€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€!ØË×¼|ÍË×d˳åÙòü×ö6¬wV¾³ò•SNi8¥áÔ>SûLí³¼×ò^Ë{ÙØPòÇ`þxÌ›ùãÔÎP– ¬c /¼`ð¤ã&7é¸Á~xðû ÛmØnê­µüçä?3ÿùùŸeÏa;ýû׿}ÆÌ3g̼qéKo\ÚñýŽïw|¿Ú:ÒgjŸ©}¦Ž»|Üåã.ÿ­÷ßzÿ­Ò•¥+K¥)(ßÊÒ•¥+óÇKþØÉGëêQ™?ÆóÇ{þØÏÏPÀÀZ™¿Åü-æoqÇ‚;ܱ`§kwºv§k«ýâò?7¿†üzÜ/TeK§-¶tÚ„'Ü8áÆC{ í1´Ú2¸çàžƒ{Î9uΩsNu¿@þXÈêQ™Ÿ ùùŸîXee“7Ÿ¼ùäÍí – ü;•îTºÓË#^ñòˆn›vÛ´Û¦Õ*¥üÚòë̯Ù]Gaûø©Ÿúø©!¯ ymÈkÕ*±qíǵ×þû¦ß7ý¾©{–Ïy>ó•ùQ™Ÿùâ^ƒŸJ¦r€€ÿË¢ÒE¥‹&ß9ùÎÉwÖ¯þ{õßûyO1·Ü²n‹ZÚ¹ùí ZšÚ¥÷¾Ÿ9üÐK›OŒn?òœV³ïŽÚªõóù¯óžÿžü÷çßûóþÜüšóëÏo‹»”ÂðÉMŸÜôÉMýÎîwv¿³Þ££Î–;¶Þ¦ô”ï{ö­wÜÍú®Ñ}|Ý•Íê½4厢–ï¥áÝ´>/z×g­÷œðÎðÞ-–?°ôÊWš^zÅaEƒÎ=lD§ýê|¿6ÙiTÝQuGÕ]ÖkY¯e>]˜‘Ïs>Ûkóè¨=¿ÅéökðÇcN.Ô蚢éW¾Òä„ ßÞ{¿Ö—Nºë³ý.øË»?hºÓvw5þúÜv×]¹g¿¾Ñ ïv{Àî=ûnskͯwlýóþÜü<ÉÏ÷&T„Lå$åš»ëÜ]çîÚmV·YÝfUüéãC‹\WçÙñ›÷ø°Y<Î)guz­´´¨¨{÷uµæ?3ÿùùŸõ^<«Û¬n³òÛåþec´ô†¥7,½áêšW×¼ºfÅ'çµ?Øöâa-.ü¤ñyüœv KK§OïÞ}]­?ÜýJýnWLÞâž[¿xþ ¾Tÿ©ÙiÒ‹“^œôbé²Òe¥ËÜËld–•.+]–ÏðOüz³Ù½oçýž»¬Ó=¶yßðWêwèpÿýÓ§¯«µå×^óø9 w:ù×~²ÍÒZÕþ â×–Ÿ3ù™ãN†òÀTN0ð?J—4.iºîµbÁE/½tÀë6÷V|qÚgµÝû›ƒ·ß嚊\óÑïýîÑï.¬³°ÎÂ:îq*¿|Vó¹­È„×­ÙîÀƒ·oÞóŠ#8k݆ފ¯mzŒhôÒK Võ>f@׊Ÿ'ùùㇲ`*'ø¯½ô^лÃ.èpÁÿñfΓê^XkÆô#™ÞæäÒ'‹éÞ|DßòÖ'‹éÞ<¿¶ü:×|[òÛ›ßv3@eS2´dhÉÐFÜ0↉4¶:­éä¥/L9¢ë™*ú–·~ÚsÂ3† .:qzƒ+*r[¦´šÒjJ+3@å”ÏgE&y·}=öÄéû:lË Ïl¨è[ÞÚî¡{îšrD£©ýo:­"·%?‹òsÉ @N¦r€€ÒÙoÏ~{öÛyò7jpd—V÷U¢Ü[5¿æŠÜº|Ì•Á’K:,éphŸCûÚgÍs{ó€A‹^yÖ´fÝÚU¶è[ÞúQÏçníxÛõ;7«{ýšoÝsîœsçœÒ’Ò’ÒSÁVRZRZ’Ïäšçv§?µüºs³Ö×Ürïs·V¶è[ÞÚ¾ï½oMk¶çi}_´èÿø ‡>‡ö9´O~F €©œ`¨Ò‚ÑÁè`ôšŸêýëñû×Ûsåò­Ïx£ëóWú]}ͯ?¿-k¾½ùž˜ 6”/Ú|Ñæ‹6µÇÕW{\ySÚìÛFõk5š[ã™×;VÛX¢oyë„AÃÛâ£5?*‡ÄCâ!qÉ%o”¼aBøåå³—ÏášgµÉŽþÛ%ú–·¶Þñæ®Ï¼¾ý²Ýÿݨ~y·4?£òóÊ„P• ÀTN0TQÏoöüfÏo¶æ'²³.½¦·¾iã¾å­ùíZómÏ÷ÇœðKš?xþàùƒ×<™×¾uîm{÷)ùöÕåÝ·ØØÓïêëû¼8é€Þm6µCTÞm/š^4½hzÉÀ’%M ¿Œ|ÞòÙ+o2k±Wõ¦£ÚlyûŸ^œ´±§ßÿY?¦äÕå{ô<þ¸so[󹔟]¦…ªI¦r€ ÊYó«~k½mýê_Í«}òŸ:5+¼ô»úšßÆüöz50ÖÂæ ›/l¾æÄ2áóáýZüPHÑ·ìúCÛiow;gðù'Îi0´¼}øíÀo~[:©tRé$“Ãz4©tRé¤|ÞÊý|ߦ‡žpâœöCïë=íí‚J¿eÖ&']8ox¿5ŸQù9fp¨j`*'ª5ÖoËKëžT+\üX¿A]ºvú]}Íoo~Û}60¿¼¥—N\:q¯Z{ÕÚ«Vy8³î?´y¹°Óïÿ¬Ë¦OéÞõ–^ƒÇ6š]ÞžÜtøM‡ßt¸ùaýÉg¬¼ Üóæ» Û¡ýý£§O)ìô»úÚ|ðÙ?”·'ù9–Ÿi懪C¦r€ JXÐ{Aï½×œ~¿¿êOu­WuÒïêk~Ûלó=4K¬3ÿ,ýgé?OéJÿSú—û—–=<­íÜ*”~ˬ·}wá3‹Ê}«öøùøùØ(±nåsUÞÔ5¬vÒ>Su¢oÙµÅiW=ÿð´òö'?ÓòóÍ,QÀTN0¸’Æ%Kw¸ Ã.(ï Ÿ«Ú«~×üjàòÞ:ßÃ|?ÍkoÌ+c^óJyeZ1-öº*§ßÕ×Ë›9³áåíÕ‡ ?løaCÅÚËg©¼IÛýÁ£w8sfUN¿«¯Í®úÛ¿Æ´(o¯òóÍDQÀTN0¸‘ãGŽ9¾¼§h«Âgýþ¼Ï.oÇòý4W¬÷¿·ø½ÅåÍØãG]wC³ÝEßÕ×’I¯ÎèöчtÙ±î̲;ÖøæÆ77¾yÕñ«Ž_u¼éâçÉç'Ÿ¥²3¶Ó½­è²cûÒ1ï¾:Cú]}m¼øÜ.×ÝPÞi–Ÿu¦‹Â&¯+/Œaü ÿýo–«¹ú‘«YtТƒdg~ ÖÜ]çî:w×òž–ͺôšÞú&¹·¼5ߟòv/ß[3ÆOUÒ¯¤_I¿&£›Œn2ºì\ êÒw^ƒNroyëâAIÓ.-Ë{TÞ}ÝÝ×Ý}ãçÉç§¼éj;vÔYIS¹·¼µÞ÷‡Œë;¯ì¾åg]~î™1 •¼öVõZÕkU¯òN`1øç€ }Yúeé—Ýfu›ÕmVÙ§Qþzüþõö\)ñVdÍ÷ªìæ{›ï³q£âõø¨ÇG•÷çÒ¦ôìz¦Ð»æuæSã´ù¬¼=ü|Üçã>gÒ¨¸|fÊ›¨æ·\Y{܉wÍk»‡î¹kJÏrßÕ`Ôã£eÒ(TðÚ[ýµ¿k&Wœ hò“ïœ|g¹‘iþê:HÜ­ÈšïUy;™ï³y£"¾[ôÝ¢ï•7KÓß»¢ÍeânÅ׋œvù”ÝÉþ;÷ß¹ÿÎæŠËg¦ì,Õ?®ç§].îV|mÞüï+Ç®(ï”ËÏ@óFá€×^tó¸[­ÂÄà5€ °ìTºSéNõß«ÿ^ý÷Ê>Q58²K«ûdÝŸºæûö#yà½úïÕ/ßs£ÇšÝ¹å[Þ¹eÙ):ý¢#¬÷™ ûS×o·KžêrB¹oÒ>eSLk–ÏI¹oûœŒz5yJÖý©ë.u:?zä‘e÷3?M…G^·ÄàuE€‚òòˆ—G¼<¢ìÓ"-'Õ½°ÖŒÒâ¢#º·tòZ\tD÷Vù–ÝÛ|ÏÍåYÖ|YóeÍË{ÊòÓk'|Ðé*A÷ç­ãö»riÓkËîêÙ—ž}éÙ—š=Ö,Ÿ“²óÓhxÑ¢+—J¹?oÝÿ¸aûLø ¼/?Í…D^Äàµ!@Aé¶i·M»mú#o0{ä1ÓÛœ,å®Íšïá|ð¦Ý6í¶©Ù£×îX»c펥³Jg•Î2ü׬ÒY¥³òÙ(;3mž»ãâàLùv]­;ìÜè¾æŸ”Ýçül4ŒxÃË#ÀÆïëÒ¯K¿ÞéÚ®ÝéG> sñÓý.èÒµ2'ÕÛ_:à¢}~Ÿ_í»‡µ_Y™¯6ßϲûœï~_Ir£vµË¨]ÊNË„g‡·iñuå ¨É¼»›·îpƘ£¦ïvß¾uö<¡ævµ®Ýþéê+ö¼f·æ5F¶Ç/ê|tc—ó;4Úeé5SöîÚ·rfàÆujRçû²»=o«y[ÍÛÊ4’ËçáGþºÀü§vjRyÒi»é£«M™¿gƒ~8ÅNûµìyÀé5þ¶k“ ªÏ­1¥æ€Z¿k¸O“ ë~Ñá?‡ž»ß×պçÉÊ€›}áäámÊîv~6šF ƒ\yˆÁ«€`£·`ð‚Á —}:ãТ×Õy¶R¿¦v«¢­»Wkwð.×îø?OÇWþ×ç{[vÏóûÂL’k¼{ãÝï^vN¾m›ÌêÒoGÓ­¦oݽÚù úÞß QµŸhf“q¿o3½²à‰µ‡ßÐòwe¯öÁö¶°½i$—ÏCÙ9irÖŸ7~Ceˆ¦-/¸®Æ»mÿûzó÷<¡âÊ]úvØ«W‡j÷o=}ëÊ€Û¾2ê£dVÙ«ÍÏFÓHa€+'1X€Þ¤ã&7鸲OaŒß¼Ç‡ÍâÊœ~‡·½r¯yƒÜÊ€ó½-{åù}a&YrÏ’{–Üó#o0;¶éÉ;Œ¯ ¹ô–ín”ýO’iÛà£í¾ëÔ¿¼ï³v7µífù+ƒ¯?í¼){?[§ÝŽ'oûûÕÿ×ßÄ¿êüŸÊ€]~Ðùú²{~È C2ÈL’Ëç¡ìœ´­6òîðƒ ›KÛ8æ²W{íðæ>·šýß˺»úÔmºíúσ6íݲñˆ;][­ÅfC‡>Աɥî8ü­]öéüÁ‘wTëPmlµ«ß–Êö:àZ~Òôä²{žŸ“f’\ùUÍ,ÀFoðÃüð¼ñév'ŸÞ©ieÈ¥Ÿ÷?u“=zÞÁ÷›pùò6;5¾ßÜ:¿­ùUyO¸TþœïmÙ+Ïï 3Éì’Ù%³KÊNÈÈ[.ÙnŸ'7l(]6dÊü®Ãwý¦î·Û1¿ªÏ6¾²ÖmyÐýÁÿÿïÊÿùêßUÞïÜ`ëòéS»w«YTãµê“Êîüª-Wm¹jK“Y•å3Pv6ª_²ÝU5^ëÐþþÑÓ§nØPºo¿AsnùŸ¿ÕøŒs®¿æèü-wó²ûè£JÎ|"ÿõögÖß²á•-ïUÿ´n—lWvçósÒd²±€7.U' À°ÑÛmØnÃvVö©Š&œÕ¤Ûµ•!—Ž}«û¤¦m*þ$KåÀùÞ–½òü¾0“ŒykÌ[cÞ*;!¯M|hfÛ‘6”Npûí-^ýªžyó–Í߬HÐ]ý»º&û÷¨½¬²½ôùûvjð#§Ê¿èüEg“Y•å3Pv6êÍ:d·¾*C(mpì±ö_ÕvSê~¶[󊼥sëûoYôÜòÿ÷âßÿß«+On±ûÐÅÍ,»óù9i2ÙØ À¯ÂŽÁ0lÄV¾ºòÕ•¯–}b¢å–u[Ôz°òäÒ7&H»¿ÝúÛŽ­(»nŒ8_ó}.{ýùýb>«²¢úEõ‹ê—EÓ¢ÚïÙ°‰ôžÎ—¥û?ïÍœgt|à°6#òïªÝ§Ö§ÛŒ®l¯~âÍë_jö—²;?c쌱3ƚ̪,Ÿ²³±Oûóö¹þ¥ÊJw-9èöÞ‹·+ª“íúRÝ“Û7ì±ERîþ†÷tzÙÛU‰> xç‘Ó£Úe¯0?'M&;¸0^ €`#¶¨Ë¢.‹º”}2bÐÎÍooÐzcɨoÎ÷ùG"_—E]u1ŸUYÓ™Mg6ý‘W¼­jüÊÝذ‰ôÙi·6l±Uÿ~Çõ/¸Å {îU<â®þêáf³ý¾VýÊ€gÏ~øÑ¶o–ÝùÇæ=6ï±y&³*Ëg ìl´8áªÑ?ZÙÞ6ù'¼Ár¯Óþ}Ék«¿n¸²àöÏÞ·à•;Êî|~NšL6vpþVAÄ`6bÿyæ?Ïü癲O@ŒšÚ¥÷¾àõ½æû\öúóûÅ|Vee§¢æ5¾­žU¶7L^ý+ò;Ž»ÍÚù¿¯<󤌪lx~»‰gw_vÿ¯ìúÇ®ÌdVeù ”ý/v÷ij+èmÕ÷†¯ŸšÝüõ+?xe“ºî8ìäznpüS«ß–½—œ¹üï+[Î×êWnwoìßøPhÿÆ€ ÉÆƒ`؈Í>köY³Ï*û¤Ã3‡zió‰ðú^ó}.{ýùýb>«²²SÑ~‹fvÜ¿rà5¯«½rG·.=úôU{šß–û×j¸Í™Ÿ¼ðÂùvªlW»ø–äÀ.íËîÿÀ~û ìg2«²|ÊÎFÛGF]’Xùp÷ê½Ç}e¯¿ú•ÛÝ_cIãߟ}ÆUïVæë¯5qïã›u€© ÿÆ€ ÕÆƒ`6b#úŽè;¢o5ʈn?òœVðz_ó}6oTD¯Æ]¦ï¼ÉÆ•~óOüíòZë›k'ù­Øþ¡­ªßÿjÔK­fW¶×þæëÒ)SNèÚß¼Qqí½ç)'l¼øÞTyá%¯z©r^ÿN¯¶nÔeºyª¦Æ¿0þ…ñ0THŸº}êö©ë …²²ïŽÚªõóðú^ó}6oTÄñ‡|â.÷TþèûîaOÕh¿òÄÖ‡ž»ëßV¿þV#öù¡VÉÌ&ã~ßfzåL¿ùº¼çÔ[»f柀¿=|ê­Ë'þ¶¿ê¾ÞÓÞn]rÛ¶/œßäÑ?ϾýöökÙó€ÓW¿EÍöûë?ïý¸²]y݆íþvð‰æ ¨šV<¹âÉO ÀP!^\¯ö `*›Êü à}^>¥ké5· ¸eïj5žßîÒêÇå×¼ËÖ;ݾ퓷þö‚}­X^4u\×W*súõ `~fÞH^\ޚߊ:í_ÜmÖê·Ë+€*¯€ŸàíWÞ~åíWòÏÙªš_÷osÿ6÷oSö)Ÿ¼a?¸*Ϥ¯ü«ìTTÎÏ~¯ÃS³;ì×âÙÆWÖº-¿Îm_ßv³j_ü­æ‹6øú›øWÿSù£oE>¸wÏÞ={÷4™Uù+Ÿ²³±±|pE2pn»6ušîRZÙ2pyŸl2}Þ¿ñGþfäoFþÆÎÞׄK&\2ᒢ͊6+Ú¬âé7ÿý>ø þóÌžùÏ3eŸh5µKï} Àë{Í÷ùÇ®Ÿª®ìTÔ¼£Æ·Õ³ÊJç.~öòŽ÷:«þ“Ûÿ*¿Âü×/ßpß}û_•ÿž+ýæëüvÏî4¾ìþ_ÿØõ]ÿ˜É¬Êò(;û_2ìî‰goØ8Úæ¾;Zÿó×¹ö^ræò¿¬øOh~Ðm8,ÿÞm^®5¦víÊ€«_¹Ýý5¾õoLªÂ¿ñóXhg Cn¯~äêG®~¤âÑ7ÿý¿|ô] ±E]uYԥ쓃vn~{ƒÖðú^ó}öt6e5ÙtfÓ™egcUãWîèö@e¥íÞﱷʯªk²Ú˾ªÌêÜncŒ¾«¯³g?ühÛ7Ëîücó›÷Ø<“Y•å3Pv6ZœpÕ臭l¯âÝuûn“ŽéZñïÝûª{Yšo퇛ê¸Oå À퟽oÁ+w”Ýùüœ4™lìàü/¬6ú®N€ØÊWW¾ºòÕ²O@´Ü²n‹Z Àë{Í÷Y¦¬¢úEõ‹ê—EÓ¢ÚïÙ°‰4¬wgçVýò멾iµÕº°Ë?zt¸ocO¿ùúě׿Ôì/ew~ÆØcgŒ5™UY>egcŸöçísýK•-W»»úÔmº5»åoߎù?>Ÿxÿ>ÃZMøb»?ìtß.óom°ç1Ï}XypÛGNjÿÈÛ¢Ö/ª_Tßd²±€ CaDßÕ À°ÑÛmØnÃvVö)‰&œÕ¤ÛµðúXó½-{åù}a&óÖ˜·Æ¼UvB^›øÐ̶#7l"ýÓÓGmµ[Ñ_eøMÝ?n·ã?³ðæK¶ÝçÉŸºV¶|þÀ¾üÈS´_tþ¢óMfU–Ï@ÙÙ¨7ëÝúvª ¡´åìë÷òžêskL©9àþÍ2óðƒOé¹ïðÁýnm˜¿Õs“ºî8ìäÇ{`ÿÑ«¿ásþé¿ùJWž7n±ûÐÅýÈ;"äç¤Édc'o¼ /ú®N€Þà‡?<øá²OOÌÛîäÓ;5€×ÇšïmÙ+Ïï 3Éì’Ù%³KÊNÈÈ[.ÙnCGÓN«Zö®]·Ú:R‰ðòéS»w«YTãµê“~äÍ··\µåª-MfU–Ï@ÙÙ¨~ÉvWÕx­CûûGOŸZy^¼Í¨Z[íxrʼn;Ômtwóÿ´¬uÍ7=VÙ>ýw¯ú§u»d»²×œŸ“&“¼q)ìè»:6z“Ž›tܤãÊ>U1~ó6‹àõ±æ{[öÊóûÂL²äž%÷,¹§ì„´ÛôäÆoØPºËÖ;ݾ퓅€]~Ðùú²WxÈ C2ÈL’Ëç¡ìœ´­6òîðƒÊMÿûfÎÇ{`ÿѵ’½/jvƶ½v<¶ÎÕÿQ£ÙöO×|gÏ{öX÷¥‡òLã3ιþš£;T»ëé[W¶ô›¯µ:7ü¤éÄìüœ4“lìàʯêDßÕ À°Ñ[0xÁàƒË>mqhQƒëê<»±|žîê1¸ò_g¾·e÷<¿/Ì$¹Æ»7Þ½ñîeçä۶ɬ.ý6öOÛ­lëÄÚÃohù»²»ý`ûÛ?ØÞ4’Ëç¡ìœ49ëÏ›¿¡²¥ÓÕ¯pÍ¿§²]ù?ý÷•Q%³Êîv~6šF ƒ\9UÍè»:6~_—~]úõN×îtíN?ò©´‹ŸîwA—®W®Ìk¾Ÿe÷9ßÿü¾0’äFí2j—Q»”– ÏoÓâkÉvÝ®‡ ëÔ¤Î÷?òfø[ÍÛjÞV¦‘\>eç¤öü§vjR93êÆ»69úÂÉÃÛ”Ýíül4¸ò}W'@¸cÁ îXPöI'ÏêñH³ÑÂíºZóý,»Ïùþ›CV÷ñ€|< ì´t¬×ü“Ÿ•l×ÕºðîàÌÎ?ò©Æµ;ÖîX»cé¬ÒY¥³L#ÿ5«tVé¬|6~äMÚŸ»ãâàLáv]­;ìÜè¾æŸ”Ýçül4ŒxÃ}Ë#@˜¿Åü-æoQö Žg×øjÛûJÏ-jÖ}wùv­Ös‹šuß=ßϲûœï¿9ä¬(]Qº¢a»†í¶+;3¾þܾ/”o×~yðÅïïó#-ãÞ%÷.¹w‰1¤¬|6ÊÎÌ^5OÛñâ÷…Ûµ_[ŸwËQÏí[v‡óó0?Í!…Aþ剾!@Aé¶i·M»mZö)éG3½ÍÉ"îÚ¬ù–ÝÛ|ÏÍåyzï§÷~zﲓsþð¾}Ô’o×f]~ÈÔ»¦å=ÕûÕœ¯æ|5ÇRV>åMN»%£oz£ˆ»6k½²ß¾e÷6?M …Dþeˆ¾?• åå/xyDÙ§?ZNª{a­¥ÅEGto%åþ䵸èˆî­ò=,»·ùž›=ʳ¬ù²æËš—÷Ôä§×Nø ÓURîÏ[ÇíwåÒ¦?òÙçg_zö¥g_jöX³|NÊÎO£áE‹®\*âþ¼uÿã†í3áƒòN¼ü<4{xý}׆ …e§ÒJwªÿ^ý÷ê¿Wö ‘¨Á‘]ZÝ'èþÔ5ß·²û™ïs¾çF5»sË;·¼s˲StúEGYï3)÷§®ßn—<Õå„òžü;eSLk–ÏIySÔ6õjò” ûS×]êt~ôÈ#Ëîg~š: ¼n‰¾ëŠ hò“ïœ|gyO‘,ÆŸº’u+²æ{UÞNæûlÞ¨ˆï}·è»EåÍÒô7Æ®hs™¬[ñõâ§]¾Ç¼Ê°ÿÎýwy£âò™ù‘¿âs\ÏN»\ЭøÚ¼ùßWŽ]QÞ)—ŸæÂ#¯=Ñw}€ }Yúeé—Ýfu›ÕmVÙ§Kþzüþõö\)îVdÍ÷êG>÷wV·YÝfåûlܨ¸ÇG=>êñQåþ匦ôìz¦¸»æuæSã´ù¬¼=ü|Üçã>gÒ¨¸|fÊ›¨æ·\Y{ÜqwÍk»‡î¹kJÏòö0?÷L…J^{/Œaü ãEßuK€‚5w×¹»Îݵ¼'P².½¦·¾Iâ-oÍ÷§Ü7˜Ýuî®sw5cüT%ýJú•ôk2ºÉè&£ËÎÕ .}ç5è$ñ–·.”4íÒ²¼GåÝ×Ý}ÝÝ×™1~ž|~Ê};è±£ÎJš ½å­õ¾?d\ßye÷-?ëòsÏŒQ¨൷ª×ª^«z‰¾ë– näø‘ãG–ûwêçÕ>ùOšÉ½«¯ùž”·cù~š+ÖÆ{‹ß[üÞâr_-wÔu74Û]î]}-™ôêŒn?yH—ëÎ,»con|sã›W¿êøUÇ›.~ž|~òY*;c;ÝÛê.;¶/óî«3äÞÕׯ‹ÏírÝ åfùYgº(lðº²úë€Eßµ'@+i\Ò¸¤q‡ :\ÐႲOQÕ:zÛúÕ¿ZüX¿A]ºH¿ù>ä{Rv¯ò=Ì÷Ó\±öƼ2æ•1¯”N¦õÓbÿ§¥ß|½¼Ù™3žQÞ^}ØðÆ64Q¬½|–Ê›´Ýçò½23¬o ›/l¾°yµ5šðùð~-~(ìôûCÛiow;gðù'Îi0´¼}øíÀo~[:©tRé$“Ãz4©tRé¤|ÞÊ›ÆÝšz‰sÚ½¯÷´· ;ý69éÂyÃû­ùŒÊÏ1ƒCU#S9 ÀPE=¿Ùó›=¿ÙšŸÌͺôšÞú¦ÂK¿ùíZómÏ÷ÇœðKš?xþàùƒ×<™×¾uîm{÷)ùöÕåÝ·(¤ôûÅ>/N: w›…MGí•wÛ‹¦M/š^2°d`É@ÓÂ/#Ÿ·|öÊý‹SGìU½é¨6[Þþ§'Túýý˜’W—ïÑóøãνmÍçR~v™ª&˜ÊI€*mͯÎýõøýëí¹rùÖg¼Ñõù7úæ×Ÿß–5ß^¯úeÃú¢Ím¾hS{\íqµÇ•7¥Í¾mT¿V£¹5žy½cµ=ýN4ü·->Zó£rH<$—¼QòFÉ&„_^>{ù®yV›xáèá¿ÝØÓoëoîúÌëÛ/Ûýßê—wKó3*?¯LU™Lå$ÿÇg¯.jpd—V÷m\é7¿æŠÜ:ŸõK層ÒK:ÚçÐ>‡öYóÜÞ<`ТF£Wž5­Y·vKôý¨çs·v¼íˆú›Õ½~Í·îÎ9wιsNiIiIi‰©`+)-)-ÉgrÍs»ÓŸZ~ݹYëkn¹÷¹[7–èÛ¾ï½oMk¶çi}_´hÍ·.?—ò3ÊP€Lå$ÿµ ÷‚Þ zw¸ Ã.Xó“¿-'Õ½°ÖŒéG3½ÍÉ¥OÒ½y%оOÒ½y~mùu®ù¶ä·7¿íf€Ê¦dhÉÐ’¡7Œ¸aÄ #*ò—l?tZÓÉK_˜rD×3+[ôý´ç„g: \tâôWTä¶Li5¥Õ”Vf€Ê)ŸÏŠLònûzì‰Ó÷?tØ–ž©lÑ·ÝC÷Ü5åˆFSûß6tZEnK~åç’€œLå$ÿ£¤qIã’Æ#Ç?r|EžÞyv¯¶½ïɳz<ÒltéĢû·ÜÑwbÑáÝ[æ×_OE®<¿ùíu¿Sù½ºý«Û¿º}µ »fŸ]÷Z±à¢—^:à }gœöÀYmF÷þæàíw¹¦"×|ô»G¿{ô» ë,¬³°Ž{œÊ/ŸÕ|n+2áuk¶;ðàí›÷¼âˆÎÚPÑ·M^z©ÁªÞÇ èZñó$?ÜãP–Lå$åš»ëÜ]çîÚmV·YÝfUüiâC‹\WçÙñ›÷ø°Y<Î)guzmÝæÞügæ??ÿ³*~mùmÉo—û—ÑÒ–Þ°ô†«k^]óꚟüÔþ`Û‹‡µ¸ð“ÆCþ=æñsÚ-\·¡÷‡»_©ßíŠÉ[ÜóaëÏÔ·sƒêÕ~¢I/NzqÒ‹¥ËJ—•.s/³‘YVº¬tY>Ã?uòëÍ:d÷¾÷{î²N÷|Ø~ä}Ã_©¿nso˯½æñsîtò¯/üd›¥;´ªýAů-?gò3Ç å€©œ`àÿ²¨tQé¢ÉwN¾sòõß«ÿ^ý÷ªý,-·¬Û¢Öƒƒvn~{ƒÖ£¦vé½oãg?ôÒæ£Û<§ÕÄ컣¶jý|þëüŸç¿'ÿýù÷þ¼?7¿æüúóÛâ.¥0|rÓ'7}rS¿³ûÝïìŸ÷訳厭·)=åûž}ëw󅃾ktßã_we³z/M¹£¨å{ix÷­ÏK†ÞõYë='¼3¼w‹å,½ò•¦—^qXÑ †sÑi¿:ßW[ £êŽª;ªî²^Ëz-ëåÞ¤0äóœÏöÚ<:jÏoqz§ýüñ˜“‹5º¦hú•¯49áÂ÷†÷Þ¯õ¥“îúl¿ þ2äîšî4¤ÝE¿>·ÝuWîÙ¯o4è»Ç°{ϾÛÜZóë[ÿ¼?7?Oò³Å½ !S9 ÀÀO±SéN¥;½<âå/è¶i·M»mZ­Rʯ-¿ÎüšÝu¶Ÿúø©ŸòÚ׆¼V­×~\ûqí¿oú}Ó×(lùœç3_™•ù¹‘Ÿ!î5ø©`*'X+󷘿Åü-îXpÇ‚;ìtíN×îtí/ÿäuþçæ×_û…ªlé´¥Ó–N›pã„'ÜØch¡=†n¨°4¸çàžƒ{Î9uΩsNu¿@þXÈêQ™Ÿ ùùŸîX0•“ ¬c /¼`ð¤ã&7é¸Á~xðû ÛmØnÃÖþiëüçä?3ÿùùŸeÏa;ýû׿}ÆÌ3g̼qéKo\ÚñýŽïw|]%¥>SûLí3uÜåã.wùûo½ÿÖûo•®,]YºÒÎC¹V–®,]™?^òÇNþ8ZWÊü1ž?ÞóÇ~~Øx€ª@6°—¯yùš—¯É–g˳åù¯í lXï¬|gå;+§4œÒpJé}¦ö™Úgy¯å½–û¤^Ø`òÇ`þxÌ›ùãÔÎP– P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ „ P `€! @ÀB(0@€ Ä/€'o>yóÉ›W¨2òN*lô`€QåpþÏ'o:yÓÉ›NÞdò&“7ÉJ²’¬$[•­ÊVe+³•ÙÊlE¶"[‘-Ë–e˲¥ÙÒliö]ö]ö]¶$[’-Ég‹³ÅÙ7Ù7Ù7Ù×Ù×Ù×ÙWÙWÙWÙÂla¶0[-Èd_d_d_dŸeŸeŸeó³ùÙül^6/›—}’}’}’}”}”}”}˜}˜}˜ý'ûOöŸìƒìƒìƒì½ì½ì½ìÝìÝìÝìììì­ì­ì­ìÍìÍìÍì_Ù¿²eododods²9Ùœlv6;›ý3ûgöÏlV6+›•ÍÈfd3²éÙôlzöJöJöJ6-›–MË^Î^Î^ΦdS²)Ùälr69K³4K³$K²$‹²(‹²0 ³0+Ί³âì¥ì¥ì¥lR6)›”MÌ&f³²²²ç³ç³ç³g³g³g³g²g²g²dÿÈþ‘=•=•=•ÏÆgã³'²'²'²Ç³Ç³Ç³G³G³G³G²G²G²‡²‡²‡²³³³²²²±ÙØll6&“ÉîËîËîËîÍîÍîÍîÉîÉîÉîÎîÎîÎFe£²QÙÙÙÙÙÙÙˆlD6"ž φgòaÙ°ìÖìÖìÖì–ì–ì–ì¦ì¦ì¦ìÆìÆìÆìúìúìúìºìºìºìÚìÚìÚìêìêìêìªìªìªìÊìÊìÊìŠìŠìŠìòìòìòìoÙß²¿e—e—e—eÉþ’ý%»$»$»$»8»8»8»(»(»(ûsöçìÏÙÙÙÙàlp68;?;?;?˜ Ìfçeçeçe²Ù€ìœìœìœ¬Ö?ëŸeEYQvfvfvfvFvFvFÖ/ë—õËNÏNÏNÏNÍNÍNÍNÉNÉNÉNÊNÊNÊNÌNÌNÌNÈNÈNÈúd}²>ÙñÙñÙñÙqÙqÙqٱٱٱÙÑÙÑÙÑÙQÙQÙQّّّÙÙÙÙáÙáÙáÙaÙaÙaÙ!Ù!Ù!Y¬GÖ#;(;(;(;0;0;0ë–u˺e]³®Y׬sÖ9ëœuÊ:e²Y‡¬CÖ>kŸµÏÚfm³¶Y›¬MÖ&kµÎZg­²VY«¬EÖ"k‘5Ïšgͳý²ý²ý²¦YÓ¬i¶o¶o¶o¶O¶O¶OÖ(k”5ÊöÎöÎöÎf ³†ÙžÙžÙžÙÙÙÙîÙîÙîYý¬~V?«—ÕËêe»f»f»f;g;g;gu³ºYÝl§l§l§¬vV;«íííÕÊjeµ²í³í³í³Y¬F¶m¶m¶m¶M¶M¶MV-«–U˶ζζÎþ˜ý1ûcö‡ìÙ²-³-³-³-²-²-²ße¿Ë~—ý&ûMö›ì×Ù¯³_g›g›g›g›e›e›e›d›d›¤¥iiZš®JW¥«ÒÒÒÒéŠtEº<]ž.O—¦KÓ¥é÷é÷é÷é’tIº$ý6ý6ý6ý&ý&ý&ý:ý:ý:]”.J¥ Ó…éÂôËôËôËô‹ô‹ô‹ôóôóôót~:?Ÿ~š~š~š~’~’~’~œ~œ~œ~˜~˜~˜ÎMç¦sÓÒÒÒ÷Ó÷Ó÷ÓwÓwÓwÓwÒwÒwÒ·Ò·Ò·Ò7Ó7Ó7Ó¥ÿJÿ•¾‘¾‘¾‘¾ž¾ž¾žÎNg§³Ó×Ò×Ò×ÒYé¬tV:3™ÎL§§ÓÓéé«é«é«é´tZ:-}9}9}9’NI§¤“ÓÉéä4—¤Iš¤Q¥Q¦a¦ÅiqZœ¾”¾”¾”NJ'¥“Ò‰éÄtbúBúBúBú|ú|ú|úlúlúlúLúLúLúôé?Ò§Ò§Ò§Òñéøt|úDúDúDúxúxúxúhúhúhúHúHúHúPúPúPú`ú`ú`ú@ú@ú@:6›ŽMǤcÒ1é}é}é}éètt::½'½'½'½+½+½+•ŽJG¥#Ó‘éÈôŽôŽôŽôöôöôötx:<žK‡¥ÃÒ[Ó[Ó[Ó[Ò[Ò[Ò›Ò›Ò›ÒÓÓÓëÓëÓëÓëÒëÒëÒkÒkÒkÒ«Ó«Ó«Ó¡éÐthzezezeú÷ôïéßÓËÓËÓËÓ¿¦Mÿš^–^–^–^š^š^š^’^’^’I‡¤CÒ‹Ò‹Ò‹Ò Ó Ó Ó Ò Ò ÒAé tPz~z~z~z^z^z^znznzn: HÏNÏNÏNû§ýÓþéYéYéYé™é™é™éŸÒ?¥Jû¥ýÒ~éiéiéié©é©é©éÉéÉéÉéIéIéIiß´oÚ7=!=!=!=>=>=>íöN{§Ç¦Ç¦Ç¦Ç¤Ç¤Ç¤G¥G¥G¥½Ò^i¯ôˆôˆôˆ´gÚ3í™–––šššöH{¤=ÒƒÓƒÓƒÓÓÓÓîi÷´{Ú-í–vK»¤]Ò.iç´sÚ9í”vJ;¥ÓŽiÇ´}Ú>mŸ¶KÛ¥íÒ6i›´MºººÚ*m•¶J[¦-Ó–ió´yÚi—´KÚ%m’6I›dÿdÿdÿ¤UÒ*i•´LZ&-“æIó¤yÒ,i–4Kš&M“¦I“¤IÒ$Ù'Ù'Ù'iœ4N'{'{'{'{%{%{%{&{&{&{${${$»'»'»'õ“úIý¤^R/©—ìšìšìšìœìœìœÔMê&u“’’’ÚIí¤v²C²C²CR+©•ÔJ¶O¶O¶Oj$5’ɶɶɶÉ6É6É6Iµ¤ZR-Ù:Ù:Ù:ùcòÇäÉ’?$H~Ÿü>ù}²E²E²EòÛä·Éo“ß$¿I~“ü*ùUò«dódódódÓdÓdÓd“d“d“¸$.‰KâUñªxU¼2^¯ŒWÄ+âñ²xY¼,^/—ÆßÅßÅßÅKâ%ñ’xq¼8^/ŠÅ‹â¯â¯â¯â/ã/ã/ãñ‚xAüyüyüyüYüYüYüiüiüi~>~>~6~6~6~&~&~&~:~:~:~*~*~*~2~2~2~"~"~"~,~,~,~4~4~4~8~8~8~(~(~(‹ÇÅÄÄÄ÷Ç÷Ç÷Çcâ1ñ˜øÞøÞøÞxt<:ßßßßßßßßߌGÆ#ãñˆxD|{|{|{<,‹o‹o‹o‹o‰o‰o‰oŽoŽoŽoŒoŒoŒoˆoˆoˆ¯‹¯‹¯‹¯¯¯¯Ž¯Ž¯Ž¯Š¯Š¯Š¯Œ¯Œ¯Œ¯ˆ¯ˆ¯ˆ///ÿÿ-þ[|Y|Y|Yü—ø/ñ_âKâKâKâ‹ã‹ã‹ã‹â‹â‹â?ÇŽÿ___ŽǃãóãóãóãñÀx`|n|n|n< ˆÏŽÏŽÏŽûÇýãþñYñYñYñ™ñ™ñ™ñŸâ?ÅŠûÅýâ~ñiñiñiñ©ñ©ñ©ñÉñÉñÉñIñIñIq߸oÜ7î÷‰ûÄÇÇÇÇÇÇÇÅÇÅÇÅÇÆÇÆÇÆGÇGÇGÇGÅGÅGÅGÆGÆGÆGÄGÄGćLJLJLJŇŇŇććÄ=âqø ø ø øÀøÀøÀ¸[Ü-îw»Æ]ãÎqç¸s|@|@|@Ü1îwŒ;Äâq»¸]Ü.n·ÛÆûÇûÇûÇ­ãÖqë¸eÜ2n·ˆ[Ä-âfq³¸Y¼_¼_¼_Ü$n7‰÷÷÷ÇãÆq£¸QÜ(Þ+Þ+Þ+n7ŒÆ{Ä{Ä{Ä âqƒ¸~\?®ïïïïïïïïï×ëÆuã:q¸N\;®׎wŒwŒwŒkŵâZq͸f\3®׈kÄÛÅÛÅÛÅÛÄÛÄÛÄÕãêqõxëxëxëx«x«x«øñâ?Ä[Æ[Æ[Æ[Ä[Ä[Ä¿‹ÿ.þMü›ø7ñ¯ã_Ç¿Ž7777‹7‹7‹7‰7‰7‰J£Ò¨4Z­ŠVE?D?D?D+¢ÑŠhy´žŒžŒžŒ‹‹‹‰‰‰ŽŽŽŒŒŒÆEã¢qÑØhl46º?º?º?º/º/º/º7º7º7º'º'º'º;º;º;ŠFEwFwFwFwDwDwD#¢шhx4< ‹†Eâ[£[£[£[¢[¢[¢›¢›¢›¢£££ë£ë£ë£ë¢ë¢ë¢k¢k¢k¢«£«£«£¡ÑÐhhteteteô÷èïÑߣ¿E‹þý5úkô×è/Ñ_¢¿D—F—F—FGGGC¢!ÑèÏÑŸ£?GFFFƒ£ÁÑàhP4( ŒF£ó¢ó¢ó¢Ñ€h@tNtNtNÔ?êõŠ¢¢¨(:3:3:3:#:#:#êõ‹úE§G§G§G§F§F§F§D§D§D'E'E'E'F'F'F'D'D'D}¢>QŸ¨wÔ;êõŠzE½¢#¢#¢#¢žQϨgtXtXtXthththÔ#êõˆŽŽŽŒŒŒºGÝ£îQרkÔ5êu‰ºDDDD¢NQ§¨CÔ!êµÚGí£¶QÛ¨mÔ&jµ‰ZG­£ÖQ«¨UÔ*jµˆZDÍ£æQóh¿h¿h¿¨iÔ4jíííííí5ŠE¢½£½£½£†Qèa´G´G´GÔ j5ˆêGõ£úÑnÑnÑnѮѮѮÑ.Ñ.Ñ.QݨnT7ªÕ‰êDµ£ÚQíhÇhÇhǨVT+ªÕŒjF5£Q¨F´]´]´]´M´M´MT=ªU¶Ž¶Ž¶Ž¶Š¶Š¶Šþý!úC´e´e´e´E´E´Eô»èwÑï¢ßD¿‰~ý:úuôëhóhóhóhÓhÓhÓh“h“h“°$, KÂUáªpU¸2\® W„+Âá²pY¸,\. —†ß…ß…ß…KÂ%á’pq¸8\~~~. …‹Â¯Â¯Â¯Â/Ã/Ã/Ãá‚pAøyøyøyøYøYøYøiøiøi8/œÎ ???? ? ? ç†sùááááûáûáûá»á»á»á;á;á;á[á[á[á›á›á›á¿Â…ÿ ßßßç„sÂ9áìpv8;ügøÏðŸá¬pV8+œÎg„ÓÃéáôð•ð•ð•pZ8-œN §†SÃ)á”pJþä_þŸûù¿äÃ\a¾¾¾¾¾¾N '†à á„pBø|ø|ø|ø\ø\ø\øLøLøLøðá?§§§Âñáøp|øDøDøDøxøxøxøhøhøhøHøHøHøPøPøPø`ø`ø`ø@ø@ø@xxx8&Ž ï ï ï G‡£ÃÑáÝáÝáÝá]á]á]ááááÈpd82ŽG„·‡·‡·‡ÃÂaá°ð¶ð¶ð¶ð–ð–ð–ðæðæðæðÆðÆðÆð†ð†ð†ðºðºðºðÚðÚðÚðêðêðêph84^^^þ=ü{ø÷ðòðòðòð¯á_ÿ†—…—…—…—†—†—†—„—„—„CÂ!áð¢ð¢ð¢ðÂðÂðÂð‚ð‚ð‚pP8(žžžžžžžžžžžžžžž…EaQxfxfxfxFxFxFØ/ìö OOOO O O O O O O O O O O O OOOû„}Â>aï°wØ;<.<.<.<&<&<&<:<:<:ìö {…G†G†G†=ÞaÏð°ð°ð°ðÐðÐðаGØ#ìv»‡Ýîa×°kØ%ìv ;…ÂNa‡°CØ!l¶Û‡möaÛ°MØ&l¶[‡­ÃVa«°UØ"l¶›…ÍÂfá~á~á~a“°IØ$Ü7Ü7Ü7l6‡ÂFa£p¯p¯p¯°aØ0lîîî6„ Âúaý°~¸[¸[¸[¸k¸k¸k¸K¸K¸KX7¬Ö ë„uÂ:aí°vX;Ü!Ü!Ü!¬Ö k…Û‡Û‡Û‡5ÂapÛpÛpÛp›p›p›°ZX-¬nnnþ1ücøÇðáÂ?„¿þ>Ü"Ü"Ü"ümøÛð·áoÂß„¿ þ*üU¸Y¸Y¸Y¸i¸i¸iP”¥AIP”???+ƒ•ÁÊ`y°Á>Á>Aã qÐ8Ø;Ø;Ø;Ø+Ø+Ø+Ø3Ø3Ø3Ø#Ø#Ø#Ø=Ø=Ø=Ø-Ø-Ø-¨Ô ê»»»;;;u‚:A`§`§`§`Ç`Ç`Ç`‡`‡`‡ fP3¨lllllllllTªÕƒ­ƒ­ƒ­ƒ­‚­‚­‚?þllllllü.ø]ð»à7Áo‚ß¿~ü:Ø<Ø<Ø<Ø,Ø,Ø,Ø$Ø$ؤ¸¤¸¤¸¤xUñªâUÅ+‹W¯,^Q¼¢xEñ²âeÅËŠ—/-^Zü]ñwÅß/)^R¼¤xqñââÅÅßSüMñ¢âEÅ‹Š/,^Xüeñ—Å_QüEñÅŸ^üyñüâùÅó‹?-þ´øÓâOŠ?)þ¤øãâ‹?.þ°øÃâ‹çÏ-ž[üAñÅ¿Wü^ñ{Åï¿[ünñÛÅo¿]üVñ[Åoÿ»øßÅÿ.þWñ¿ŠÿUüzñëůÏ)žS<§øµâ׊_+þgñ?‹ÿY<³xfñÌâéÅÓ‹§¿Züjñ«ÅÓŠ§O+~¹øåâ—‹§O)žR<¹xrñäüiûüéºüÿ¶ À¿è X*C€ÖX „,B€€! À@€` @À0P `(° X „,B€€! À@€` @À0P `(° X „,B€€! À@€` @À0P `(° X „,B€€! À@€` @À0P `(° X „,B€€! À@€` @À0P `(° X „,B€€! À@€`Xgª­‘ýXß`Ö`À`Xg`€ K€X/º&kú*Ô[-lX° ÀzQ5S¨ °a À0ë…,üò`€õB€~y° Àz! À¿<X`½€`€_ž,°^À0À/O€ʵò•‡¬<¤¸Sq§âNZ h5 UçÿtþOçÿìuÖ^gíuVçk<_ãù=îØãŽ=îèôÇNìôÇS¿<õËS¿|â€'xâ€Å¯/~}ñëëû g2û“ÙŸŒ¼yäÍ#o>å÷§üþ”ß·íݶwÛÞùîpñïpq~»~³ë7»~Ó¤´Ii“Ò£ã£ã£ã¿tûK·¿t‹¶¶¶ý¡Ýí~h·n¯í—O¡•áþúy·:¿‡ü}È߇ü½ÓªN«:­j8¤á†Cþ{ßm²ë&»n²ÿŸ÷ÿóþ¸ÅÀ-n‘ßk¡e À0ÀÿÚªt«Ò­|üÁÇ||·9»ÍÙmNµŸ%Owù¯—<¿äù%ϯ«k¿ÛøÝÆïvÀW|uÀWÕÖ‘Õoéò¢åEË‹*~QÕÖ©ýþªø­[´õ¢­mÝûÊÞWö¾òç]sž·½¶`u° ð__ÕýªîWu{œÑãŒg¬Û¨¹ç5{^³ç5kê¾ù蛾ùhmbaÅu{¦Û3Ýž©øÕn¨\9﯊ܺ·.yë’·.iÔ£QF=Öþjë6®Û¸nc ' À¥_¶ÿ²ý—íó7O^aµN»:íê´û©¡.5jþö¿Õ~A‡tèA‡T‘«ýåpe¾¿Öü3ó+߷ξuö­³n¯¶Ùìf³›Í–`¨ÒV5ZÕhU£ÕßJwͯ‹}螇îyèž¹›ÎÝtî¦K¯YzÍÒkò_O¼lâe/Ë?w¶ú¦Õ7­¾iy?§Þ‡õ>¬÷aÅCÝÀW \±ækËæ5·\sË5·¼|ÃË7¼|ÃÜÅsÏ]¼lȲ!ˆäÑñõ©¯O}}jþy·=k÷¬Ý³öš¯3—ÿþ5_áÉ;üø×šryßµ±ß_k¾ªƒ†4ô ¡«ÿ“üó}¯?íúÓ®?íÍëÞ¼îÍ뾿ãû;¾¿ã£7>zã£7žyó™7Ÿy³Ëk]^ëòZE2ð¯<ðʯx\U™,UÚ­¿½õ··þ¶¼œV}qõÅÕxbÄ#žÈ?k¶"!pFÇgt\s¨»uÙ­Ën]¶æŸ–‡ÛÕ?›¶¬üM¡ó´¹n_«š;vì±c»þÞ ¹î¯Šïj®ÓªN«:­šíükç_ûüä­J·*Ýjø«Ã_þêšæqÃŽvÜ0¯ª2Xª¨OG~:òÓ‘Û?´ýCÛ?T^NûoJüY¦]:íÒi—–÷“w›³ÛœÝæ,/Z^´¼¨¼ŸÖ ÿ¿öþ<<ªúîÿÕö^ÔïìDö5²KHØB€eQ© ¢ ¢[”z× î ¢"((V Z!R+ÈVmQÑâ‚(ˆ( ìÉïc¯_ü “HÌÌÉãq®ë}q)™9ç}^óÊ{Γ™Sû/µ£=BÊ_Sþšò×½Ëö.Û»ìd¿‰Nüpâ‡Ñž¥áІC=±G.Ü8öÏWAŽ:Ðè²F—5º,øw6txÐáhÜ`tƒÑ F{u%™X ”P÷>sï3÷>“ÿpOþYnqûˆÛGD{–¿•ý[Ù¿•ö³SžúðÔ‡£ýì#©øHÅ“ÿ¬ç×pý×G{–r›Êm*·éĹpàØ?_9êÀ+å_)ÿJù›‡7²ÞÈz#+Ú#—_V~Yùe^Ý@I&%Α´#iGÒê¯?¾þøhAÚª+V]±êŠ“Wó>N´;¶F{–QóFÍ5/ø¿•¦þ¿ÛúÓÖŸ¶þ´Bø²ß<_•\¸_×\X/ç« GÝ´qÓÆMs~b{øá€|8 (Î@8€À@‰óî ïÞðî ѳ¤ÝI»“vÖsm|´ñÑÆ5ϪyVͳ"Ÿë¶Go{ô¶G‹7´ûqÊS~œËp|¯üú®ƒw¼ëàÉÌêáî.ˆF,Jœüïz{g‹;[ÜÙ¢pƒ´ms¶ÍÙ6知ÿßíëa_ûzXñ†v‹z.깨g,Àñu¾ò?ê.xpÁƒ'¿·`€hÀ` Ä¹¢õ­¯h-<›Û|nó¹ÍäŸ" Ž´ö§µ?­ýi,Àñu¾ò?ê­{¶îÙº§¨ŸÅk(ÉÀ` ÄIëšÖ5­k´ðìýßñýã7H î˜|bõÏéNÿsú“W=yÕ“WwîÞ·{ßî}kT¯Q½FõÒvb{RX_ç+ÿ£Þ³iϦ=›ŠúY¼Æ€’L,JœF—5º¬Ñeѳ=vöØÙ#–÷?¸OíÊ1+Ǭ3vÍØ5c×ôYÜgqŸÅÁÝpKÛÏÂzÌø:_ÿæ¨Kå–Ê-UäÏP‚ €À@‰S¥•þUúG Ïöß?~ÿøXÛç}ó÷Íß7ÿž¹÷̽gnͳjžUó¬Â w&$LH˜Ëp|¯_&šD#%N¹Må6•Û-< ¾B9vövñ¾ÅûïK|>ñùÄçO&è=ûö³o?ûöv©íRÛ¥^7óº™×ÍœWg^yu~xþ‡çx>–àø:_`€â%%Nu6ÖÙ-<ûîûï¾ÿîûXØÏàKž+«<¬ò°‚D¼õÇ×_ü• ®lpeƒ‰Nüpâ‡o'½ôvÒgï}öÞgïåÆr/ç«èf²¸ž  €À@‰“¼!yCò†háÙ§Ÿúù§Ÿïê¨ÿ¡þçL9gÊ9S¢íg™=eö”Ù3èŒAg :ã½ï-xoÁÉD€±Çþù*ê™,®gˆG`0PâtÕuT×QѳE=õ\Ô³x÷pö[³ßšýVþÑoÖð¬áYà +ð‹å8öÏWQÏdq= @< €€gLŸ1}Æô‰ž=ØéÁNv*Ü mÒªI«&­J?úÿn=.èqA "ÿ~ïOzÒû“h{xï3÷>sï3…;'±Çþù*ê™,®gˆG`0PâüéË?}ù§/£…gÖwZßi}ái©CR‡¤‰|® VŒüûùéñúÓÖŸ¶þ´ÂÚí{¶îÙº'–àØ?_EqÔ±ð,ñH,Jœ]Mw5ÝÕ´ü²òËÊ/‹¡}táG~táÉ?×—S¿œúåÔhÏ2ôî¡w½;2´«4µÒÔJQjßü}ó÷Í/¬Ù˜Û|nó¹Íc9ŽýóUGýËÌ-@ø€À@ uõÇW|õÇÑ"´þ×ö¿¶ÿµ'§]3vÍØ5ÑžåÕÿxõ?^ýÈg©uJ­Sjí§6¾¿ñýïŸü ì¸|Çå;.otY£Ë]Ëp쟯¢;êâ}€x$%ÔÊ1+Ǭ“öÜæç6?·ùÄþØðE¹Må6•ÛùÈ•‡UVyØÏÿðüÏGþlZ×´®i]£íÕ—Ýñ鎹¥rKå–*Èc÷èm¾µùÖæ[£=ò½ÏÜû̽ÏD{„ßUú]¥ßUŠö³Á—!/]±tÅÒÇ{¼o]ùÖ•o]Ùphá ‡–.°¯nÿêö¯n?ÞçÊÿ1ƒÏ‡ã|ü¨ «nÀÑ€À@‰ömõo«[½ !h—Y]fu™üyë©[OÝzêþñûÇïÿÅ›_¼ùÅ›NÿsúŸÓGÿ~ôïGÿ>ˆ!£=Nð•ËÁ}|£ÅuøpÀ‡òߟ2{Êì)³'øóâ_/þõâ_oݳuÏÖ=‡úê¨p\Á—EOþãä?NþcúÑô£éG£=Zþwî;±ïľ÷“»ùßµwÔ¼QóFÍûî”ïNù™3fn›³mζ9ñx¾ò/° wýÞõ{×ï-]Īv¯Ú½j÷÷¼·à½ êÆôÓgLŸ¢ÛŸàkƒûÚ½{èÝCï>ÞGÈÿS‡¤IR¸Ëç+ (^`0ÀO6ß±ùŽÍwE”|ŠtM‡5Öt(xDw´ñÑÆG<{àÙÏ.Üýi9»åì–³ßñýß1ø//÷z¹×˽ þúòO_þéËü÷ÿ·¿ÍømFQÀ±y¾`€â%üLðEÁÁ{¥„ &œXˆ|©òˆ-#¶ŒØ’÷‹‹{‡Jå–Ê-ülõ&Õ›TorbûSgcu6÷Ç=’v$íHÚÏö§Tn©ÜR½Žô:ÒëHaÀyg²(àØ<_`€â%DµgÓžM{6ï›®úæªo®ú&­kZ×´®õÞ¨÷F½7Êm*·©Ü¦Zß×ú¾Ö÷É’7$otÆ 31=yzòôä—ï¸|Çå…Èå½m°?I»“v'í®Q½FõÕƒ{îž3åœ)çLiߨ}£ön<çÆsn<'kxÖð¬áF}`tþû“÷ït¨Ú¡j‡ªµN©uJ­SôD¸ˆ>ŒIDATjžUó¬šge¼–ñZÆk7t¹¡Ë ]‚OßdŸƒ{yÁ¸ Æ]0®áІC­øBÅ*¾Ð¸[ãn»÷ë f/Lç €_žX pÜbíó—E·'ñò˜ñu¾(:`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0àŸ,Í.𶼘¶Å´­,¦íÝbÚVýâÛêbÚÖÓ¶¶˜¶uÅ´ý­˜¶õÅ´m(¦mc1m›Ši{ïßÞ/¦íïÅ´ý£˜¶ÍÅ´}PLۇŴ}TLÛ–bÚ>.¦í“bÚþYLÛÖ_|û´˜¶ÏŠiû¼˜¶/ŠiÛVLÛ—Å´m/¦í«bÚ¾.¦mG1m;‹iû¦˜¶]¿øöm1m»‹iû®˜¶ï‹iÛSLÛÞbÚöÓöC1m?Ó¶¿˜¶Å´,¦íP1m‡ñíH1mG‹iË)¦-·x¶e§Óvj1m§Óö«¢ÚÀ¡%‰ÐÀ'(9Bïì¹³çΞK—Ù–]L›{»±»Çþ݈KÎ}ˆKΈKν‡ß+¦­äÜ{¸äÜu¸äÜo¸äÜiØ=†ÃwwáâºÇpɹ»°û »£°{ »‹°»×]„KÎýƒÝ9Ø=ƒÝ-Ø}‚Ý'¸¸îìÁî ówÞ9lç°ÃBû `Š‚ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB ` ÷ÃÃþðpvƒìÙ –÷_Þyÿƒ½ö>ØÛÌè±ðËX1~Åøã—\zpéÁàÏæ¬c¼‚×`ðz ^›ÁëÔÌI !ôã¦7ý¸iÍÚ5k׬}pÿƒûÜßáãwø¸t!鿼ÿòþËgß5û®Ùw}¼ùãÍoÎ=œ{8×rÐcõXøÉΑ;Gî™Õ7«oVß‘sFÎ9§ÎÄ:ëL<ùß•Áã<~ð\æ¬c!ÎÎ=œ{8x½¯àuTX¯Êà5¼Þƒ×~ÐL<@I †¸·åþ•ûW.xpÁƒ ì6®Û¸nãJ“‘=GöÙsãU¯Úx•óè±z,%ÇöÓ·Ÿ¾ýô);§ìœ²³ê„ªªNøåWÏìC°?Î Ö±Ö±k‚×Bðº(®WeЂþô çNFä«lÙ¯–ýjÙ¯Ì ÅK qéóW>åóWF¯½~ôúÒ1lv»Ùíf·û1éǤ“œ5@Õc‰ª¹Us«®˜¼bòŠÉ§fœšqjlþ® ö-ØÏ`Ÿ:¬c­cá—ÔyPó±üª úFÐCœ58^`b“âÆ}ñÐ ¾~ðõƒ¯?±Å\µ3Ëo+›;èǦÍj÷}xT‡Zg¼ÜµëÇɵe÷:µå–¿þ¥÷“­oZ2®w½Öõ|xÑ-ÎÚ~¤1w_˜údƒ­NN­ú´êzè}Àƒ€PöØÊ­Ëæú±ç€Ú}5â‡Æ3^îzߨäÚ‹²§d¶Üò׿<õIë›–Œ{ò«Öõ|8©_‹ƒ³ö}7iÌÝfŽh°õÂÉéÍõXbÜîÜݹ»—=±ì‰eOÔÝRwKÝ-'ö;«å™Õ[$xÖuïuž¿ïG‚ýŽ%ÿã æDm`k  ö‚:Ì¿V›?jú¤ÿŠ—Ð7ÚØºòÃ_ÛTñ@½¿7®íHƒô+BI&&6 €¡Øl¹}äö‘ù/'lnwF£þ9{3ÿ£Ëéñýæw4½ªëyýRwÕüϳ߉v왫3Wg®Î¹9çæœ›U P4=öÆÇõÏÙ»ê`—Óãý’YÞqGÓ·²Îë—º+iš À¿3ÿ´ù§Í?-ÿߘK;õ^Ýú¡0½ Æà¸ò?ö`~Ô Ö±Ö±”dA½µ­2z5,“4-õÌǯ}++ޣߟgÌÌYu𜞗õ½ñ±üûRлT %“˜Ø$†b°+eWÊ®”ü—M ¾¾è±GÂw‘%ïx¤íÐÓ2nyK‹²‰ã¢ÍÃÍ{oÞ{óÞܬܬÜ,•^4¸Å‘0],‹´]ùAÆ #o¹b£ À±äÿ©ß„>åê–ùv[•צ'‡û]IpŒÁñú40Ö±Ö±ð3Y¹Y¹YA½E½¿oRË¯ØØnÜŒ~+?Uô16»rÔ¶IƒóïQAS8”4`b“~Qûî_¸aĆ ¢-•ÖV¿ô¶Ôá¾Èò³ñ@æu]:?һí7D›“‡.z袇.R?@aôØYGRW„û’ÙÏÆ«³»t~¤÷ÈçôXþ%ÿ{ý¶SýÊ„¿ìyiðˆNJλ’àxƒcwo`¬c­c!ÔX´ ¬ÿð#ŸkßîÙ髳ÃýæSFÞ½tÖ‘hsô± §©J0±I ¿”¿åþ-÷oƒ† 6hXÔ úe´ÝZ‚¢ßˆñ±Òoj’õë×Ï_<±RN´ÇÎYÙvk ºd1>öè×ôX€’mg¿ývöË?úýñžk?ë\»d¾ Ž=ÿ8˜Cµ„u¬u,áÔU´ªkPúÊOF½VrBßȱÅÕ÷ÌŸ³2Úü=-èoj‰’@LlÃ/dæ»3ßùn´…ÑÊn}^jójIŽ~óŽw%·ÙØàºhsõiƒO|Ú@EÇÓcg¶hójI¾d–w¼+yÈZ= äÉi’Ó$§Iû[ÛßÚþÖh_ø\Ò>õ›ÿ§£})t0‡Á|ª+¬c­c Ÿ –¢UZ½çûœ=dmIŽ~óŽÉ÷üîý™-¢ÍUÐßT%˜Ø$†"·eÏ–=[öD[ ½|I×O“ë¹È’wÌÉú]Æ‘‹»×ï_}mäŒ5y¸ÉÃM>zÙÑËŽ^¦º€×cï{ ¹ž‹eyÇœ¬Uk2Ž\ܽSe= $™:o꼩ó¢ýÆ, ÷ú=±{G›±`>ÕÖ±Ö±„IP?A-EÖXÕgZÍêT¹]îÌV­ýæ›ì¹±Ó}DëfA¯S]„›¸°¼9ïÍyoþôžåÞï}ñÞw_°û‚ݘ™#†"”38gpÎàfÓ›Mo6=ò×ÀˆN)Ï&¦»°õßÝ|E§–Ñ–OÝ÷Ô}OݧÆ@ÞclKLw™,Ú¸gÄ’$= dØZkk­­µ¢õü¥z¯nýwÑÆ`~¢Í^0·j ëXëXÂ!¨ŸhÕÕö¹iC—$‰{£µì>{À¶Èy z]Ð÷Ôa%>yG{í}´w´, >1`(B/O{yÚËÓ¢µ­ýo^wIç!.©ä?®}åÒ¹©_E›Ã¯g=ûëÙ* ôØcõØìž‡¸@–ÿ¸ö•ÙÃõX€û&÷›Üo2Öe¬ËXÙçÿï²6µëöŽ£ c0W‘sÌm0ÏÊ ëXëXâWP3Ñ**呱Ufñæ?¦½ðô“Ù=£~«Á´—§½#ç9˜uˆu¬u,±/¨ÈšiXéêÊ·,¾=ù±õM\òƹ‘3ôà7ªCÂAüË„ ÍçÃ?þùðȶҡv­©•_w¡¤°Æ]O]ýhÇê‘ó\¥C•U:ä®Ë]—»N5BIê±)_T~½¸.3}tá+Úλ?ñ~ál×SoÑcâÙ”SvNÙÙÉçíöbòtï& k æ3ržƒùW‡Äþ:6|£u,Ça]îºÜuAmDÖLêSn{ˆø¶°Æ³k4ž‘òEä<½Q1àâ% ŽF …fZÍi5§ÕŒl% ^¿èÎß¹DR¸ã…Tû1r¶·•ÚVj[)Õ%©ÇNJmñ]ìÀáˆ/œ˜ÞLˆ;ßå~—û]Õ U'T=ƽ0÷¼:øÖNcy…ÿø¢ónkzF°·]xù;íÇòÞó9ÏÁüçBIËëØÈqɶ§RZ·¿næ%«ëÌ8·ZýË+•O˜PñÕ2‡ê¯“Raê…m:ì¨öÙƒni߸æþñÙ:°Ž%~õpŒ.°½ÅUéÍb':M[=½tööú‰—¹åPÕæ-{žwM…ßÕj–˜Xfk…ìJÃþ»AÓf£ªïhÿÏ76ŸsgÂÓsc3nÖgÔ²I©‘³ôFÕH8€c‡08/0š&õšÔkR/²}ìm;øÅNƒE¶…;.¬rÑì–ÿ9ÛÏ·{¾ÝóíT#”¤»d]§ÁàÂV™ô€ ovŽÜ9rçÈÈîÝ#3ñ¾j±ýD¥2ÏêR:­kÍ •Kýü÷i¬¿+ æ6r΃s¡&‰åuìOc©Õgu)}ËÎÏ&6.}œÖ6›}FêjëXâQP‘uÒlèÿþjÒ±š¶¼õ¾ ¬SñŒÚÛë_^ðWeÍnîÝ»}égÏZ}VìÀmßöÙ’u‘{ôFÕH8€c“0X …`ßÓûžÞ÷ô1¾4æ¹;Ξ'¬-Šq÷×tìxäœwÑ}D÷jJFMxö¼â½ÀÖx÷ùDˆ7Y}³úfõìÞó~ÕíÓäűýŽûsÛ± ‡ë÷i¬¿+ æ6rσs¡&‰åul0>RqäÈÆKÉ´Mü¬âœ'¯úm×s{­«5{yÛÓ‚OßõMÙ^¯–Vy`¹3òþýï¾_üëŽÿ´Ž%¾õY'mKO}ê/Ÿo\ÚîÓ™w®ê}ö?š~ÞjÃO»õT™åe3jýí‚Sûµl2yxÕ ¥[œ6nÜ šùß“6×lÚñ“‹§”n_ú¹ÒkòK¬}8¡cƒ/’FÎyÐ'Õ$ñNûJf,†B°!gCΆœÈ1õ‘Ž÷4+¬-’ñ`æ.•2Ë®)“9óGϲ`h³Œ ±°zns—¬¤Ô‚_d‰ý8˜ÛÈ=Î…š$–×±YüeŸ¼{õÚ?žò‚ºyªó’6ݪ°Ž%^5Yµ×u¯3 =‚ÒÄK/=Øô`¯ÊgWÿªNJA¾Ò¹õ³ì~ãà¿>üûÿÿ4pìÀ-êÛóÂÚÈ™ú¤Ê$Þ €ãW¸Ã`0‚̺™u3ëF6‚Ý+¯ØñéX¸0±d[ï®­ÛWoRáâréÇ{_ŸÏ³¯ü²Ã¶Ø¼àòÇt‘üÛÈ}^óÜšçÖ<§2!ì=ö*ŸŽÍ¸ÂüòcÊôÍ¿»Ö{£fnù}ï¿øÒKióc3þã?î_¤Çăë¯:¼*²c·<³z‹„çcgõþނ˺§ýîÑÿê° ñ¡È1à` æ9rÿƒó¢>­ccsûtÇ;ÿzîÛ'öeÎk:̺0urðSUú'|Yvz¬}Ø:–h‚ˆ¬¦ínjzÿ¢XJkå\ðx¿=å3«-­µ¨úÀv ºµ)H”ÛfÁ¤Y×DW Ý ¸ÆÔÕïT‰ÜàOªLâ8 €¡$­MZ›tŒÅv´ÉгŠ÷bÄÏ_ûp§Ý FŸ}o…Ÿö0ñù„Û+4|ìëôaM®ËþÃ%¯¶I.Ä,ÞwñîÖÿ|[ð™àØ¿ø²aC¿Vmÿ9ó/m{iÛKÛT&„½Ç¾;%cVlÀßf ~«þØE=§üOË%úòáWSž½)¡ÿõõî+sjé5¥öɉœj«zg|kð† sþ ÇÄÅ¥ŠN»;íîÙ±GÔHy<±u¼Ä¨ñó|Œ¯ÓîN»;©OëØØ\Ǿ¾òÑ-J |éÛuo¿ùôËë×{§à!nÞOßpk°u,Ñ5Y-.¿gúœ?ÄÚ×&Ç,÷¾úïw¬Ïû¹áX €Û½>cç»S"g>è“*“x'á;¬P„Á`(’_iJÙË,…‹A¬ûÓMö”^ZúÎÍwô­]¿hVŽñõe+ÝP~|l^jÙž6¨Yú¼È}¾ÿ¥û_ºÿ%• áí±ö–Y —–"ಟ—Í(ýúÛISïmÕ4ïWäåýóÏ»?#¹ìß9x{ÚÂëõX€xðÏ×þùÚ?_‹ìØÓ–wêwnpQÁ±ñ„»Ò¾nÔ¥ S"CâØ¼³ç‘ÁC;µ‹ÜÏ›ß<øæÁ*ÂÛc“Ó+·‰Íøê{}P;ûxïÖíºvó«µµ‹€{Yr¾ 6 Ý0tÃÐÈŽýÚE=Ƥ,õÌsäþçE}ZÇÆæ:öxǣߒ1kLŸkŽÖïKåa ÊùâÍ7oI¯jK¼j ²6Ú¾8íŽ%çÇ~\aKí>ç̈Üÿ2cË?[a_“3®¿îžbyÿ6º,9]LIø/«ø ƒO‰—„Iï&õ_©qJ,_X‰ö6: cÖÄÓ—5™û—`ög_wYçaê J^í´ºÆ)±/Þ÷äèÖÿ]Ÿ]xç¤Í-«ÿëËùk-ªÐ0Ö>9±?;ûr= ž½óøÅ7´ù̳z#¾Ö±ƒ;þvZßúá*K‚£¨øB…VeZüëi‹Zmˆµ¬u,'&íOÏʾ<~༒vݱ~Ú¢ØÜÿª«Z7î´Z½%Ó›óÞœ÷æ<0ĽË.ltiͧcóòÄw§\skÇ?¼Sîâ´VOÍüÏŒ?6›ú»Jm†6Hì7¶Ñ™5oªQ½ÂËån‹v\±v,{^÷Mç¥ê J^ízEͧc3þ<{þüÛ ò³ŸÔüS·ö3ŽÕicåÂÙÁžËÕcâÙÒ.)Õz¾¸¨Ç`žÕñµŽ-È*÷ŠÖ=n¬õ»¼ûßjrÓ# 9k›Í>#uu¬­]­c9i?LŸ´üÑx¹ão»{fô[ùAëœÇʽyK³?üï†Ç¯Ú¼eÏó®É{DÉÍÿïoÏ|k{^½AÚïº^¡Þ€’éÐÜCsÍCÜ‹µO¯«ué?ÚžÖëÌs>¯~OÙÏËT+ýz´=OÞPíª„ºW}ÓôÁÚÄþ%Ÿ†’Úcc÷À3—Ïîün>—0>»QçÇê´>9@áð `ŸÆ:¶àã¡þ+uÎÿÈðG•®0¿ü˜2}ƒ}®yVÕÇËÍ}ô¿n=·ñ¡`­k«VëXN^¼|8ÚEµ Úü9c]Þãò `€ØQ‚>|ºÍŽ-òÅk÷®4µì'e~úׯÍJU9T©ÛØ5m4l9ÿ¥ µóñ¹F´z¸û?d´ ~ê£ /çç‘Fl^‚‰và~=ûõì×SeÚláí±±{à‚xëž×ïêÐ1ø©r›ÊVzG¬]J‹vï4=Öf³Ùbm{¶ì³eŸ-ٱݸxï¬2m±¼ŽÍ;niÿʆöÍ[¼ÞdlÂcyW§¿«tÝî‰ß}¿ø×ÿû¡¯u¬­ [P‘µ/÷.H (ŸZ-©fn¬ÅÀÑî¬2máû?õ?§þçÔÿ43áÛܱàŽwdž–yZæi~ƒ¿_‚î á¾Í{¥)e?.³4.Fô¸ ñÎj/{uõÇM·ÕÎΩ6ôÍŒò¿°òá€Ë¯m—û—`¶§ j–>/r?ïéþ—îIeBx{l…½e–Æû=€õœò?-—üëŸæ4H¨Ô-Ö.«mO[x½ þùÚ?_ûçk‘{ÚòNýÎm".ê1˜çcí?Ö±±»ŽÍûO­;·â¯ƒ= þ¼â3ÚÜüøŠ~­cÉ_P‘µÑ掉O-¼¾xÃÑÔSZ¾ý³ÎÕh߃¿¿¹àrÁÝmg]ülÙ 3«T‰µ¸ÌØòÏVØë7&%á7~š™p‚Û{_¼÷Å{_,xèüý_>ôÍK … imÒÚ¤µ‘/ò£M†ȘU¼#ªv/ÿLÙ÷‚ýYuÅonN­_ŸZÔ³çûÿŠ%bù̆ ýZµýGä~¾´í¥m/mS™öûY±_ýq¯jgägûN¼àW5[?uÙ­][óùX»¸¶aÜ?è±qqI¢ÓîN»;Evì5ROl-.ê1˜g—³‰¯ul0¦umþRåRÁ^u^Ò¦[•ßV{]Ç´x }­c)ˆ "k£Åå÷LŸó‡Xûo­ŠY¿é\ðŸmôÿ][ýο?[eNÊ´Mc'n÷úŒïN‰œù OªLâ8„ï°â6ôÍK … ³nfÝ̺‘/øÝ+¯Øñéâ½Ѹ[åIo öççuKMîŸÿßÿâÍééUƒ;Çþ%˜?þ£ÛˆäßFîçšçÖ<·æ9• aï±ïTéøt¬Àe?/›Qúõ·“¦ÞÛªi´Ÿúãy÷g$÷ÏûSÙx&±MB¬]8ûã?î_¤Çăë¯:¼*²c·<³z‹„çÀE=ó,&¾Ö±©ýDÇVƒƒý)sjé5¥»|RóOÝÚψ÷è×:–ü5YMÛÝÔôþE±—~ªÌò²ÉünïÌsâ6ý'¶Z°£üÿWuFÍŸn3”Xÿ7ó3?¸m©«ß©rŒ¯E­›Y7³®Ê$Þ €Ã!¡o^`(37ÏÜñÁõ—ŸÙî‘:+ÝP~|ÞÿÞ½obj£bâ‚ËÁÌ!]2*e–]S&ë_¨uæÑ3ž©2!ì=öŽòÅ}±)2^¶pú°ÖŸV–Рìü;í¹Õê_^©üçÙóçwØsðÁÕË»dTʬ°^ˆ#猜3rNdßÞV~à5éIࢃ¹Üóà\¨Iby›~´e¿*ÕKëXâEP‘µQæŽò÷TX߾ݳÓW/Ï—–PªòÀ‚¿Ï®Þø©”¶LÿýK/ÅÚÝÖ½:ãŽò‘ûôI•I¼Ç—p‡¾y €¡ì{zßÓûžŽl ©ÏÕØqö¼Ø¹˜òû©£¼Û¾Q­¶•Ç÷ÆŽÿ¬}¤ÊSîxOÓ¹G1+ïQáq•þå;—>lpÒëuo…#Ú}Ç5;Þ9çÝGtÑ}„š„’Ñc“ž=/Öàà¿t¸ç Úýê.­Ù±üÛ_¨ÐªÌC)m¼<áò±k†MoØrﲿ¶étwl~öw÷ùDˆ7Y}³úfõìÞó~ÕíÓäÅࢃ¹Üóà\¨Iby[󬪗›¾Ø:–‚ê!²NÚ–žúÔ_>‰Ðô§o™ºôÒó‡MOXÒè¶äëÊõ®|iµ^eþT!¹â«•>¬ÿô¹ «/ja÷ך\wÃýãû´/ýìY«Ïеè7:6ø"éavÐ'Õ$ñNûJNè›— M“zMê5©Ù&ö¶üb§Á±sIåxÿol^|YXå¢Ù-ÿ;r¶Ÿo÷|»çÛ©F(I=vɺNƒ‹÷2S´Ë^Çûßcg\XeÒz,@¼Ù9rçÈ##»wÌÄûª½/÷Óå÷ ‘c0·‘sœ 5Iì¯cÃ7ZÇRA=DÖI³¡ÿû«IÄZtšwóÿ;±¶ç?Ýý÷ÝiŸ-Y9ÛAoT„ƒ86•ÌÐ7/0ši5§ÕœV3²e,xý¢;[|_\b¼pbâj?ã îJm+µ­”j„’Ôc'¥¶øÎ¥®Â/œ˜ÞLˆ;ßå~—û]Õ U'T=Æ]i÷¼:øÖN½(¬1˜ÏÈyæ?8JëXëXbSP‘uRe{‹«Ò›ÅfŒ¿c³>£–MJœí 7ªFÂA;„¾y €¡Ð|>üóáŸljךZùu—H kÜõÔÕv<ÆŠªt¨Ò¡J‡Üu¹ërשF(I=6å‹Ê¯»ÔUXã®§Þ¢Çij);§ìœ²3²“ÏÚíÅäéÞMÖÌgä<󯱎µŽ%¦­Ë]—».¨c|IûSn{ˆà¶°Æ³k4ž‘òEä<½Q1àâ%ôF …çPî¡ÜC Ò¤5H‹l(Ÿnº²I‡Q.”œü8µkÇë›ãRË3ûžÙ÷Ì>e%µÇ¾qn‡Q.{ü8µëíë±ñlûéÛOß~zd'¯±¡Â·åfäÞ˜™Ü¥ž÷'5Þ˜™Ü¥^0Ÿ‘óÌ¿:Ä:Ö:–ØÔFdÍ4¬tuåÛ?ÜžüØú¦G.yãÜÈúaÐÕ!á þå } B …ìÕF¯6zµQds¹eRÊ Ä—KNf<Øýºÿ­}»ñÛßnTPR{쀉 .{Ìx°ûòõX€°È85ãÔŒS#ûùꋳ:u w'3s9·Áœ«=¬c­c‰AmD«œ´}Ó]þ ÷dÆÚïwo3`@äÜýP&à_†Ð÷x €¡H9r %Z»ùrÂÀ]é÷¸hrbãìæç§&ã~f×¹~ÌõcÔè±_NXðIú=.Ø8»ùØýz,@X¬˜¼bòŠÉ‘]½eVõQ krÿœÙ«K+ï/Ž{üsf¯.­‚9ŒœÛ`ÎÕֱֱė N"ë§ñ¤ÌÝc÷ qOllÓwbÓŸDëxA?T{„‰¸è}O†ŠÄg>qægF¶žkn;·Fí¯\:9ÞqoùÁÓ:]­¡oÍÞš½5[Õ{Ím_\û+—ÀŽwÜ[~É+z,@ÈTÍ­š[µî–º[ên‰ìíï$^Ü©Õ ï2Žw æ-r>ƒyæ\éakK| ê$Zµ]2mÕ’WºÇ;Ö¬Öñ_9ŸATu„¸p } ‹ŠÄ»ØýÃîhÍhõ{¿9’z§ (oÞªÇ9Çø—ƒÃj «1¬†z=öç=ö¹C©wºVðñöáWߥÇ„Ѳ'–=±ì‰h¿1÷o¿îÚÎ#¼×(ÈÌU´™ æY½akKü jæÿħoÏ#Wß%Ð-ø˜’òûÃÏŠÖ储ÞðÉú0¡—§½<íåiQ/¸¼yÝ%‡¸˜’ÿ¸ö•Kç¦~m¿žýõì¯g«4ÐcÕc³{vâ¢XþãÚWf×cBì›Üor¿ÉX—±.c]dŸÿ¿ËÚÔ®Ø;Ž‚ŒÁ\㾿ë2Öe¬ æY¹akKü j&ZE¥<2¶ÊìáÂÝüÇ´ž~2»g´9 úžJ#¬À'ïÍyoÎ{sžÐ·p €¡å Μ3¸ÙôfÓ›MlU#:¥<›˜îbJ´qψÁWtj­Ñ?ußS÷=uŸ=6z°-1Ý¥±hãžK’ôX€’ak­­µ¶ÖŠÖó—v꽺õCÞ}Dƒù‰ú³µ¶ÖÚZKakK8õõë Ÿ›6tI’ 7ÚXûÇî³l‹œ· ×}OVà“w´÷ÑÞG{ } —ŠÜ–=[ölÙõ_À]ÒõÓäz.¬äs²†~—qäâîõûW_9cMnòp“‡^vô²£—©.àßõØûH®ç2YÞ1'kÕšŒ#wïTY(I¦Î›:ojÔS¿­ÊÀkÓ“½É;smÆ‚ùTWXÇZÇ&AýµYcUŸi5«Såv¹3?ZµFÜ›wl²çÆN÷=­›½NunàÂ’÷sÀBß“'†_ÈÌwg¾;óÝh‹¡•Ýú¼ÔæUY‚ñ®ä6\m®>mðiƒO¨(àxzìÌm^uÉ,ïJ²V(yršä4ÉiÒþÖö·¶¿5²ÿ'ô)W·Ì·{^<¢S'ïG‚yæ$r®‚9 æS]akKøµ­Òê=ßçì!k…¾Á˜|ÏïÞŸÙ"Ú\ýMEQ€‰M`ø¥ü-÷o¹4lаAâ-Œ6è—ÑvkI¾ÔòØé75ÉŒ6?óÏ_<±RN´ÇÎYÙvkI¾döØ£^ÓcJ¶ývöÛÙ/Úï‚–cª_™ð—ï¹ö³ÎµKæû‘àØƒyˆ6KÁª%¬c­c · ®¢U]ƒÒW~2êµ’ý¶¸úžùsVF›Ÿ §ýM-Q€‰M`øEí_¸áþ… &4Lˆ¶HZ[ýÒÛRW” K-2¯ëÒù‘Þnm¼!ڜ׾ݳÓWg—œè7eäÝKg‰6'A zšú¡ä›ÀP v¥ìJÙ•R:_ ¾¾è±GÂ}‘åHÛ¡§eÜ0ò–eÇE›‡›÷Þ¼÷æ½¹Y¹Y¹Y*(¼;ip‹#á¾dv¤íÊ2nyËõXŽåíéoO{z´ßÁ —„{Çí ŸÁ\©¬c­c)q²r³r³‚z‹Vu’z\~ÅÆvãfô[ùA¸£ßfWŽÚ6ipþ=*èc ‡’FLlC±Ù>rûÈí#ó_6MØÜîŒFýsöfþG—ÓÃt‘eGÓ«ºž×/uWÍÿ<ûhÇž¹:suæêœ›snιYµEÓco|¬Qÿœ½«v9=L—Ìv4}+ë¼~©»’¦é±ü;óO›ÚüÓòÿ¹´SïÕ­ _ôWþÇÌ:Á:Ö:–’,¨· ö¢þé^ Ë$MK=óñkßÊ Uô{ÆÌœUÏéyYßË¿/½KµP2 €‰M`(f;Rw¤îH­2»Êì*³£-¡’÷VžÐxk…+Æw(ïYŒ¸èÚŸå¿d½xôâÑ‹sÞËy/ç=}m\7¡ñÖ ¯mêP:Þ/™-1é¿ôXŽ_þŸüßemj×?|ð¬ëÞë RÉuÎíqé«Ûô˜xæ‚×b-ôM{áé'³{5^>ì±q+ r,A/ ú’€€˜Ø$†µªâªŠ«*–.°ñMÓnhxhçmW-;oVq]dYsõ¥I©Óû}ß(¥æø‚ìsŸú|Ôç£]ÕvUÛUÍb»ÇïÜðÐÎÛ-:oVq],[sõ¬¡©Óû}ßµ¢ @ÑËi’Ó$§ÉÔySçMWß;56Tø¶ÜŒ¹C»½˜<=waæE]Zû’…™uiìC°?ÙóàƒãuÞ±ŽµŽ…ãÔjP·©ðê•ÒÎïZ1¥çݽf -®Ð7µÛ䯋%í÷›á ÞO‚þãŒC$0±I 1mÿûØÿÀ½•î­to¥‚/Èj$V˜Wîö‰-ÒÇ7ý÷™ýOMÛU¸VŽ<541ãîe§_R¡õ[·ŒH¹$±Léã”õVÖ[YoåÈ={ÀYâ­ÇVù¤Üí[Œú¢Éè¿Ï|ù†´]…{ìÈSïÖ͸{ÙéOÚú­[F è¨ÇPܶÖÚZkk­Œuë2Öü÷QÌÄûª½>ïWÝ>M^¼}ã ¡éë ÷]Ið˜ÁãÏUð} Ž%8.çëXëX(räjøx+¿öºîõtlþÆéOÚnêŒIïÖ-ܸ·åùÆ¿|CƒªÿcÔe÷ŸÝªÊ'ß· Ï=ÇI†hÀÄ&0Ä/úâ¡/|ýàë__ú„T;³ü¶²¹ƒ~lÚ¬v߇Gu¨ÕxÆË]»~œ\{Qv¯S[nùë_z?Ùú¦%ãz×k]Á‡=Ðâà¬ýç×Is÷…©O6ØzáäăÕ~,}¦UŸV}Zõ½ô>ÐÛÙÂØc+·.›;èÇžj÷}xÔˆÏx¹ë}c“k/Êž’ÙrË_ÿòÔ'­oZ2îɯZ×_ðá¤~-ÎÚ?öݤ1w_˜9¢ÁÖ '§7×cˆq»swçî^öIJ'–=QwKÝ-u·œØï¬–gVo‘ðüˆ)'¶ž¶¼S¿s›¼vQ1) ßyüâZ-\úÃ%¥ZÏþü÷àï?øÙ{Þ`ŸƒýŽÅ)Å:Ö:ŠBPÏAmŸÌ«£Êöפ7OüŸß ÌÑx|æê±ï6»|Ô–Iýš·“õäWÍoýíè§>Iª::mJf“ïnL»olýÁÞñCçΫ×s@ÙG+}W¹õ‰=oÐO‚ÞâlBA€‰M`ˆKŸ¿òù+Ÿ¿2zýèõ£×—Ža³ÛÍn7»ÝI?&ý˜ä¬z¬ @HTÍ­š[uÅä“WLÎ85ãÔŒScówe°oÁ~ûìÔak ¿¤ ÎƒšåWeÐ7‚â¬Áñ›À÷ö¯Ü¿rÿÊ.xpÁƒÝÆu×m\q-GöÙsdÏWm¼jãUÎ  Çê±”ÛOß~úöӧ윲sÊΪªN¨:á—ÿ]îðqa-û/ÿòÙw;kö]oþxóÇ›sçÎ=læ=V€ÀΑ;Gî™Õ7«oVß‘sFÎ9§ÎÄ:ëL<ùß•Áã<~ð\æ¬c!ÎÎ=œ{8x½¯àuTX¯Êà5¼Þƒ×~ÐL<@I r?<üáág7ÈnÝ`yÿåý—÷?Øû`ïƒî¾ ÇÀ/dÅøãWŒ_zpéÁ¥ƒ?›°Žò ^ƒÁë1xm¯S3@$0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@Hüÿ"/8® üÿ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/combineAll.png000066400000000000000000002607101431412030200254440ustar00rootroot00000000000000‰PNG  IHDR¥K` 0gAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝetT×ß6àR H) nÁÝÝ%@p×âÁ E%î»»»»»»ëøy?äÿ¾“É2 Lfî+kíÕÕfföùí}vš}çœó |ᔀ? à€ø`>€O à€ø`>€O à€ø`>€O à€ø`>€O à€ø`>€O à€ø`>€O à€ø`>€O à€ø`>€O à€ø`>€O à€ø`>€O às–†–†–†à † ëøg«yV󬿡2ü0Ÿb3kѬE³¡2ü0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8ð9À‚0ŸC 8C¢8P(…/ _¾ŒPŒPŒP´e7Ên”ú$õIꓤºA£F£F£ÆaªÃT‡©QúQúQúŢŢŢôeôeôe¨0@wBÌLd&2c…c…c…õ"õ"õ"o™Ü2¹e²fÝšukÖ uÃ̼™y3óŽÿyüÏãJ­Z!µÂ{™÷2ïeeeeeee˜E}ÇÍÎÍÎÍ®ãÿÌÿµø×â_‹ú=õ{ê÷ 2=ƒzë"ë"ëbIZIZIšçÏž#¤~ ß_|ñý¥üCù‡òÄ#âñ#ð-þ €3l3l3l¥ÈRd)òäÅ“O^,ôC\nºÜt¹É·Ú·Ú·ºíRÛ¥¶K˜]Ü`ccãôàƒ{0ôPƒAƒAƒß[¿·~o¥xL°D°D°DóôæéÍÓ1Rý=®Ë©Ë©ËѪժժâ1·>Þúxëcª{ª{ª;Á$˜ó  û¾½ö·kƒ»0|‡êÕ'ªO˜ÓÌiæ4îcZ]™péJýáJSå—“ÃUtÜÈR*Ÿ,ôö(¦Ê”•Ù-­Ãý§ØÉÚÉÚÉÖ‘ëÈudŒ ¦þWØVØVØ>ßú|ëó­ÜÇ´cGŒ’j_c9ÕqâÉ]‡g—OÜ4'NØlËÞR“Gδ¯?v8÷Ÿ²úØêc«…¿þ³ ;:ÝŽp·ûÿï0¸k€áÿм²yeóJÛÛÛ’ï _–iÖ)Ó3.šý¡cZ?Þî©a,A¸¸É=kkÝl ߦ¶˜.Ô™dwQã‹ò´ïíë ×A®ƒÚF´h‘ÁÑ_àÖ#­GZ|Y÷eÝ—uß¾X1ïÙT3ãGâ«WT¦ÞýKa‹9AHHˆ‹÷¬-¸X"Râisx㺫Oþ^ã6ïÀ÷ög‹ìÙ-²¦¦¦˜Ý0¸· †N°X ¬†XÕXÕXÕîÇ«~Ûô®«yT§ÚŠ 9.æd]nâÞnµ\î_TÞ¶9k éùEÇTÕ´û½Mf&3“™„aGØaÄ€¿ñ~ìèèØý-ž‹ÿ,Ý93"bÔ õdjä­I;ó¹‰{»ßܾ`*2[¾v[Ý’Ýïí;³wfïÌ(;(;(;0ºa07Ã4nþÜüY/P/P/°;1jƳÁ:FŒýΧH1}÷v£¥•9%‘Þ$[šÖVëNÿͶšm5ÛÚ–Õ–Õ–…Ñ~Å›p{E{E{ŃÖ­Z»³•£’%²T¿.ñÚÀ×LÜÛuËH¹½y—bàŠc¿m·lè”ãS»si÷Óî§ÝÇœè>„Áß 0üO‘q‘q‘qwBÓôdÓL =²/„¾œZV‹ù\’2¹BûDwŽ«blŨб˜ Àx-.z]ôºèõ¤ÒI¥“J»Þ²‘wÚ–¹äiÛÄž;‡ñBèÛuôæØÇ —GŠúÜõqY‡X‡X‡`f|/„Á݈¤â¤â¤â®ÃQ_o½5j:4''Òm^}9µ”ŽÙÆ%®Ú‡URº>Ò¬YY³²faV?á8öfìÍØ›]oÍì3÷¨pk qéœèÞ}Ù[zÖ­¼]§4jwì]&Ýõ‘~¹÷åÞ—{ÄWâ+ñ³à{! æ°@‹ ‹ ‹ ë:-®±:®¿³?†¾œÚê$j5‰Šüà +AW‚®t½c2o÷Ú•_O‰ÃâëúcôËÞfý}îÑÖ˜ «F{Œ²åtÔ†?þh8ë+ë+ 10@! þ`=.z\ô8Nñ§Þ6Å$ùm»…ðSôûmÛäbed¨ù=f ôw?72,dX×Û.É*gò¶láЗ½mysËο.Å/ š5ŽSJ=”z(E<"0c¸0°ÀIÙ—²/e§ÈÓþ¾F•ò9æLgƒ_£ßo[Å)ƒôÞ¤Vu¨•SMrŽäÉ9‚™ý×Ï €“­’­’­8m¯Lù}ìüѲ•†WÆnßÀ¯ÑïÚÝsÅ…?¿Ù|gÑEN5‘+9Vr,f,@oÌ0°)Y]²ºd5§˜ÓÕQ{³J81Øå ùŽ D¿ß¶Ì/ÎQä1Vµê¢J§8էʺʺʳú£W2+™•LN›)s?L1¶¢!ÿZøŽlˆ~ÙZåå¢s—náTËá–Ã-‡cÞô.Á ƒ „–Ä–Ä–DNѦÝ>wÊ“ˆ•.·ÉÏ-úýO ,íMK²SY­ð’S­(” Jfô/?2fÜgÜgÜ_«°Va­ûçŽ:$ôUèL}ùµ»;È‚ý~Û~)ÚܰȞãm±›“›“›1{ú‡Á€ùÝ=âqÏxŸñ>ãNnû¬½WÁKî$#Øù©\£ßÿÜúO§O¤}²:ÒÖÒ›: ËçÚ͵›K°ÁÂäèk5Â5Â5¹¶¹¶¹¶ñéñéñé!n!n!n¾a¾a¾aÞåÞåÞåþGüø × × ×L¶O¶O¶/¬*¬*¬jÜ0¸a0jÐáGÀÒ:Ò:Ò:œ¶KJŽ_š":ÑïÿÚ'kÅç]û²|άjNk³n³nÃý¨úÿ…Á€ù\â߉'þÍézÖÖcAÆëú²· ïí¨FÓ9Õ-Ë!Ë!˳ €{---éAéAéAd#Õä>È}ûàmïmïm_ØRØRØB;@;@;€ú€àø1pr{r{r;§Í‘ˆ '´6š ôeo)‡nÊí”n›=šÊ^·W#^x5sàÇà00ßjÕnÕnÕæ´^øÀò–ž3‚Þ®ÛÌëft 9ÕH ¤b¦tå8å8åx’r’r’²ª˜ª˜ª˜ÔOe¹ÆråšÂñ…ã Ç3-™–LKŒð«¾€™1ÌfÌìgÿ;û_öÏ’û¼íö’åz»nsEοÚvÓvRʨ”Q)£0“~¤þ#æ[.….….„—ñ:WUÿA¸ÛýÖF\Ý_É„½’³gÎÆLèZƒ~ƒ~ƒ¾[[[Ï‹;;v6-™–LKÆØ?éëØæ–Í-›[ìŸ2ýü¸ 1_è ·ÊvCÄÛVåNƒåÍì•\yråÉ•'‰[Ä-âæ3À׿ÂàŸ ТŒE‹2¾ÝzÞÛ²·eoËÌŒ™33„ü„ü„ü¾÷=g Ïž)Ìik›Âp&@¬Ûý¶EßáñHNõœò|Êó)Ï1“úšp¬p¬pì·gß±EÇ[4ïó¼Ïó>*U0ªUâ¡ñúMø7áßΫžW=¯Ú³ ÖAJó˜²nüA’³–fQ•e³þp‚æâD&u½bS®8WæF[ŒÔ-ßlè®dr[%M!»g}ØÑ°£aGèó£Î:1è™Ä§Y›]ëv¿eþvûÐ.ᢱi£Û0øƒ›››`òüÈó#Ït½}hè¡¡‡†Î™=göœÙ£DF‰Œéú=/½<öòXö÷I²!7iŸE Û³6b¹Ñ( *{U1Ž1Ž10“úÚ–¢-E[Šº^-O}9õåÔ—…ãŽ[8n´Åh‹Ñ¨Û4êÔ¨S£NíZºk鮥ÝYIÎ*k^e¼7›¤cÛVàxÒX¹ïVòºT»s†~QžÆ4åeƒ¤=¥¿ãÔËö.Û»l/F û.­Z*5³nÏÚˆOnôÃ,à4[š-ͰéÙ5IÇDމ™§ÖÐRӽ¶b¶b¶b˜ÏøÂWß}¹]p»àvÁpŒáÃ1ܬ–zzz.Õ.Õ.ÕAAA¨-7_öí7ÚoìNå“$ÉÅÚG™+­È¿ðè ÿ+t§{/ÒÝ®6¸;GäõÆë×Ì|á _øÂWùêÝÍ ññâãÅÇ?S{¦öLý¿ž¾ØdF BÜ^¸XåDèÆö ïž¿{þîù˜ÕøÂ¾ð…/|á _øÂ×üríþÚýµÄ¯¿JüÚýßž:¾_€ž ìè_è_è_ “ “ “;v<,ÕKh#œ>’ö!¾å¾m5rÈ3ÞË^aÅ׊¯_ÅD1QŒ™ ÐטO™O™OËÅÊÅÊżvxíðÚÁÍ ió—Í_6åyæyæyÒöÐöÐö Âÿ‡uÄ:b¿•¿•¿U×µõgêSŸJ[í¤H:Ö¿Vûúv¯ v+‘¯îúóç ÎŒI¼}bféÌÒ™¥É—’/%_úGòÉ${+NúýÌÍ%ˆo¹oY×o'ìªäTçÆ“'ObnôŽàö_‹-þýŽv|ÿ}¿…˜§1”J ¥r ¹„ìZêZêZú½Á†ËQ-•—n{·5­W½¥¸†½Ú¶¶¶˜·?kkkCelele¬ŸŠŸŠŸ 7‘°ùó7æo²²²(­”VJ+*ÜYÄ,bÙûÛûÛûw]ÃÊC6G Þöû5ßÞEƒ¬œìkrZ[«ëãMÞ’¼%y fð2ö-‰Y‹f-šµè??ëí˜vL»Œ5k2Ö|.û\ö¹¬g0ËûvÃ.&âÛÞju6‰I.ßÃ^ggqgqgqÌm€ÞÕCßo!îg˜/™/™/Ë”)?âuÆëŒ×™®·¤K£­é;"²íÝ6‡f¨ëÈ^íx»x»x;ÌR^ÀÊde²2kÖÖ¬­YäääÏM$LzMzMzq#ãFÆö÷íïÛß ÜOŸff3³Ù’fI³¤qª’Ã+ÍÊZ´6§tÒ;þ[ùkl ÿézž$Ô&Ô&ÔâìÞÔ¸“ÿ§²eÙ²lsssåÊ”ÿ?n%­ (²x‰)"ÛÞmË'^ž-jÆ^íÖ‡-[bnp?Bßo!î÷X›X›X›ä]ä]ä]Ø7£’ÎwH™ˆl{·¥d9 ‘±WÛð‹áÃ/˜“<ê q†8S÷wÝßu‡E†E†Er ëŸÔ?©2õ·ÔßRk-k-k-ãÛºýCüCüã8Ìq˜ã0NÕW0LÕH%r],Ⱥü½þSO:m%Í0ŽRÎWãTôéÒà„^Ó³¸׉ëÄõ»Rw¥îJ±¿göäs6[Ùör›'qA\dâó1+Fµ±×œ¶ƒ¶ƒ¶3à{ñ_èû-Àýõ)õ)õ)û´é~ÕÅŠ"¬í»V}®ü*Ù„î…AÁÌèœ g¹A»A»A;Ê>Ê>Ê^¾E¾E¾¥g‘°ÖZhý‘(™(™(Ù²°eaËB‚E°V/R z z :§£NÑQÂØ€—€ “úåê¦ì•oPmPmPÅÌè—ªˆ*¢ªI³I³I3îIÜ“¸'ªoUߪ¾íY$¬BR!©bóbóbóšö6ímÚK”%DI)F+ƒ•Áâý%ŸÒ¢ òŸ1©Î­ä¥–Fj!JÃ9U©Y¼Y¼OæžÐ[p«j«j«*û»íÿ}Þ©×x-4­øû²¹hëWÅ-J‹…N«,rœ±aUÁÔ!ê&hŽÎ¼èö¤‚ñƒvζŸBQ/raIpÝ´«;¶ðf*{Ütã(öÊۺغغ`†p"8¡ï·÷{ÉÉÉì›Îí3 VóÂyáË]z†ŠŠ²3ef|o|ÒØhÿÉè)onýço¶ÐÔ[ÃÞç<±<±<1ÌL~Òò¸åqËã¤ÑI£“Fkkk÷,–#?F~LÔ¸¨qQãÄÄÄ sœ0çµãm¸Òp¥á §£õ6\¨q÷èhœO‘b´ö(œ“›Â^+mWmWmWÖ¿¬Y¸~²Þ €s%r%r%ØßMEFÔl©,ïÄ¥¥ÇönØ6m鸣cD…¾SqèÅ2‘R^ €«Z¯¨nÿÂÞÛç‘Ï#ŸGb†|K0Cßo!î÷|t|t|tØ7Û¶:N4¾÷s·ÅiN1¤WêËä×ÊÞêè•j˜œƒì¸ÈåF4W5[¶ë¨zbãcà_ k9Iïs@€þQõ½×{,¼¹éßpÚ®Êh<{å#5"5"503ø[Û‚¶m RSS æÌ5˜ËͅÆ- [X7£nFÝ Bœ'~Ú5£¬TV*+UËTËT«“;Ø>ÒXªTA˜»¨‘ý~Û¶8Tá4¾‘v‘v‘v8kàçê­Øï“ß'¿OìïðþhðúZ^J[Mo(ˆÕ/|5éßq±}›g:ñïq‹”+Eï,½jyÜaãÄ÷¿öoyÐr´~ÃÐÔM U;® þöˆx-¦{ÝJÚu˜½ò[fn™¹e&f8Bßo!î÷̘=0{À¾ÝÌílH¢þÜ ñŽX·£?Ò¯¤ ¥üjŽÙ>0\Â)Üí䪗äËóæv?UÒéi{Ÿ]\\03M»O»O»OFeFeF%yyy7‘pÐä ÉA“«ÓªÓªÓXA¬ VÐ9Š„› 7nrêµÑé%I q/§¶ô“U¥¾§êÕë×ë×ãù|ðÓôVlllÜÉ“hwœŸ¼m5/¥±nG¯F5  ½Íx}ÖiëNá.û±ÌNšpoìWž»4KBB\|Ôh¡GBûØûŒ‚ ¡/'€û=ÕÕÕöfBÉE–,ós·ÂKÎYý£Ñs»ŽœªFÈ{Ùݹ¢—=$æÍ뀙AÎä™ìý414141ÄÌêêê’œé9Ós¦[l·Øn±›HØ·Ü·Ü·¼ã¹ï¬)¬)¬)½ÛÛ¶è¶è¶hNŸ^¶Õz™~4"Þn=!~¸~´º{ É­äVr+Á$˜güx½K®—\/¹žýݪ#®mwå… 4âÍ ßÞ«×|œ·DêÖÊÅâݹ¢—=$æÍë€7SgÜ™Ä@ ‚ ¡ow î÷Ø·˜¥ÿ–*”òçÍmñ®£\–¦ËròÑHs#=ÍC¼g\^ß²÷SËXËXË3ØÑ^Ó^Ó^ç¯Ê_•¿Êv’í$ÛIÜDž*ž*ž*eYeYeỴ̣̣ÜôÍ;Ê;Ê;ŠýS¼¦ëä©F Öýާop>LŠà4j%SK¦–LŹ?^oÀO<<ñðû»5+_{ÉsWÍ~s/§ÿÊ\rûü.²J–hÈR}Þ€Oú/8=0„¾ß p¿Ç¾¹¬´Nö’Œ8on‹S†:§äÛXèLXG¦ퟠGUc£«ž¯ä®4DöÌfN›æ¿xÚ—ÑÅ£¦ 9sÚZ8õÊÄ9Wj–ÉÍRäýø’ÓR÷Y#¿BèÛ[÷{ÒÆÒÆÒÆÄ¥Lg2‰ž,·[ºZúêÿnüBážÜÜ úiêºY óÁº[ë,íöº0ÍÓÈS:^UëeÛlø®ÀÓ]®;‰LtWë®Ö]™ ½…©ÀT`*”k–k–kz%x%x%p [ûZûZûæÊ;•wª5¢5¢•ãÍŠikœ”HÇårÓí´tÓ+édJ­K­K1·àGê­ø)é)é)‰ýݚĮ[Â;Ïž 9:oTpGßVŒœB›°O2fóÂEë\­z¯}“»üü“m·éûoYîZ×ñªìƒçü·Òy?>úë‘i¾€€Ÿ ôí €û=­íZÛµ¶w—ns¹G~ùs7¾Í>«(žêècf˜r1ñ§Ë9òý®cÝÚ¶a†×x?fŽu6"ÑØûiA² Y03 ï°±±UM«šV5Í_Ø_Ø_XªW¾Ö×P†ø¶Ú1.þûSï[íjíjíj˜ÏðcôV,..Îþn¬ËÛÇðBDz`ϼ·S­;zu5wYé¬PÖÔÛn»2»Žu³ÎŸ»±5”÷àÕ¯¦ŠLB üÄÍÎÍÎÍ¡oïBÜïY·Z·Z·²o+ÓËW\îÆ·‚¡L„tUGJ÷[¥è«uçU¹1êò~Üžæè`ÉÞO/ / / ÌLø‘XÕ¬jVu͇š5‚wï ÞÉMÜøÌþ¸Ñ)^V£4Z5¿tô¶ã¾¼ÜÛø4R©–{S5S5S51{àÇè­Ø¬Þ¬Þ¬žýÝÒªÏNÝÂâ…ˆTxÿXƒÑ)½ŠºpòѦÝy•÷áéëy:ö•8*¾ž½‡c§}Nà €o!î÷êŽ×¯;ξ¡*j@×8üs7»Û8Ž2¾­n&UöS÷o=Ze«c¸[å’Üb™àoÿ½ÙÕ'Š›xg+ßc°ÎÕCìýoQkQkÁ3€§ùøúøúø²¯`õ:v&†Õ¼°Ævü‘PJ©IˆvNÇ iç)4ʽì/$ÔÉm«m˜š2ì=/((Àœ€¾Ö[0•IeR™ìï¶j­pø„p^Jk¶^ýc{ü¢Û“ Æê¶Ì»ç~ߪ8;i½±_¿ý÷ûOÏ›=õ9/—û¨C¢kcØ{î½Ê{•÷*Ìpøà~±‡±‡ÑɈ5WÊ·Èæð–wG7è¿S¿aøVy°¼odz;Zãåb…]Ñ,ãךi,M—åäÿÜ$³#±ñ1ð1š ÁdoûcL;å¤G:ËÞsËËËÌLèk½+*****²¿gÌìS“6)ðÎm“»¾3§ÿÊk7fFÞÖØÆéÚåÔ ©R/0/1/1/až@À|"þkü×ø¯ìÛÊ9˜ßÑ}ÃûÛâý«ML#“µu}-šœˆœˆœHäçÈÏ‘Ÿë)õ”z ¡K躘«ðs5G6G6G²¯ZŸõuÔ_ô—u¸?ÀD¬ ‰¬Åù fèJGGGjnjnj®ÿ)ÿSþ§,Y–,K––¨–¨–¨l­l­lí·õTd)²YzzzN¿9ýæô[Ä’ˆ%KònçÝλ̜̜͜Œª€ éÝ8M.M.MŽý=Ÿ(®ñ›w”w¢Sþh3çŸmÚú¾;7²~-òZäµHÒI$ýÁ‚™ ˜ó‰¦M;šv°o(“U6) î½¶ÉÅžl¤’+wV¦@ªGBUCUCUkcjcjcˆµÄZb-f/üH÷+îWÜg_ÒULƒt^"îë–4I™¡p0'µµµ!Î!Î!ÎJÊJÊJÊR}Ì´Ý´Ý´=U/U/UuŽuŽu£üªw`†M‚&A“À¹ ó A!(*Tª •}s³ùŠÃp£0Ä·Ü·µm£ oôîÖsà»ÀwïªßU¿«~DzaÙ°l0 ïä®Ê]•»Š}-*=b•¦¯Ž¸¯[w5íZÕµ€;´Õ¶Õ¶Õ†µ‡µ‡µKñ ½R½R½Òlj65›ŠøIïÀÞ®y»æíöwöÊéoRߌø–ûÖ9Zë«Ê_ìÎzõ ëAŽzŽzŽºÕ‚jAåfëÙw·ïnßÝ•#*GTŽ`ýÂú……ózMÊŒ”)3ØWžZ![ÃÓ€ûº ‘6ðИ+ÈpÝ“º'uOì-ì-ì-z7¸• ‘Ù-=\úšôj)¯Þ}ç˜Ç1cÓüh~4?¬!ÐõEœ»)wSî&öw^R69v¼á/qT|=B\nZå}gVßëäVχ_~}8jOÔž¨=÷×Ü_s 7‘ð¥Õ—V_ZhhhßvºítÛiœ/ý‚%¾Bó¡ùÐ|8m_¶?p”6vBˆÛ³¶éµ½‹‘ §Ú2í˜vL»ÿŒ…Í‚f‘OÎ'ç“mcmcmc¹Ùzö¨ñ¨ñ¨){Qö¢ìsssf;ôLœqœqœ1û:Óàa?Òh à¾n£§Ï×4´¸%º%º%Úy–ó,çYßû¦Ÿ¬àÃð¢%TNNÊ6&ˆÒR2ù»ÛàR7²zÞ¯Ñ'uký<œ Õ’fÉUH÷Oç$Õ$Õ$UÖ;Ö;Ö;¬'пôEÜaý:ûuÜ 8jáÉ ›„âö¬¥WÞ*Ùu–Sd[t¿è~ÑýoG¾—¾—¾7^+^+^ëÅØc_Œå&>I:I:Iò¶ñ¶ñ¶i.i.i.Áп æC!/B^„¼`ß²ô ×ÓTKG”Û³Öé&MåWöªÆ“âIñ¤îŒ =†C)’/’/’wzëôÖé-7‘°Ë}—û.÷‹ýŠýŠýÛÛÛ0ó ;bßǾ}Ͼª4ž¶ßktp_·1{ŒÕ5Ë"žKÌ%æÆ¿Žÿú;~ºM±ÒP¹[ú(q޾Á*-éAÐûm{n¾ŒqtÚÚÐ-: ´§«¿—;Ð~*U«<¶jwÕîªÝXU ¿è»8Ä/Ä/ÄýýfüzV­Ä@ñ¡t¿·µÝ“±ê3{UO¨žP=¡Úqa3‚Á)Æ)Æ)ÆïlÞÙ¼³á&Þµ?j”ë5×k®×7.n\Œs €—!æCí•í•한¶,ëjì®#Ðí~[ñ¯ÍoG8Õ“®O×§ë÷l¤qŒ8F\é‰Ò¥'܇»wÎM$lccSPTPTPD_@_@_€sØ%%%±¯!õ“ìžÆ"îë6b…Ñ( *ÀÍòÍòÍòúêúêúêÝ»¦6è¦öIÚÉÂW¤³}÷v§­¿“Ñ`Xàno{Uuswú1 € ‚ ˆhÍhÍhMNaaÝÌ«A;¶"ÜíN{ïðª;s*Økxãé§7žöî¬`±ŠXE¹ù¹ù¹ùŠÃ‡)}yôåÑ—{ ¯ß¹~çúæLs¦9³ª¸ª¸ªçÀÏ‚˜o1¼Þ oNÛ”1ÞÆZñvݽÐoV·e¯žª’ª’ª+…•ÂJéëqdÝfÝfÝ®ú»ê謹ý½ü½ü½¸‰„ͦ›M7›ž˜˜HQ¡¨PTp¦š"ë"ë"köõ!/Õâ±ÞTÀ}ÝÚÎÒRJã¿8¡0¡0¡°ëŸAÞ›æ« £6.&íäýè—½­´Hyd ¢4\á¦Ì–®´~}ýúúõXm€×ôuÜáBè…Ð ¡æGN®ÿ“S¼ZeQeQeÑçå+ñ•øZ4¦hLÑXXØ©ÎS§:÷,^¢µDk‰–Q¾Q¾Q~ù‰òå'ˆv¢hÇùÐ×󹑑N”eöÖgôKô²·ùvz‡8Õ­zzõôêé?kLY‹`5é5é5éÁyÁyÁyÜDÂÆcÇMÿ'ýŸôÚG·n³€¿Õm«ÛV·}5ˆ=lܦ5p_·*ArGd²ø)s s û?®ú-~¯§¿¸?†¾ì-ëB‰ygðK7 õò®ºêiÕÓª§Xs€wü˜¸:®:®:ŽS¨¹3}Å8½ìmÉ‚K¿‹08ÕÍÌßÌßÌÿ§M2¢Œ(+P6 l€Á>ƒ}û,XгHx¦ÉL“™&Úo´ßh¿)þPü¡øáH8Ž8Cz`àwÙï²ßeN”M‰ö)F¦};ÚÚ[ŠáGNµŠü%ò—HÞ;kžψgõ£êGÕ Ï Ï Ï“Î’Î’ÎêY$¬[¦[¦[–2&eLʘև­[â à'Š¥“[;¶jf*×!î»–5ÍåWò:öžkiiõǹ6:ltØhN?Môë´·Ë_k£æ¥kòGôËÞæGÅxêø?bàÒªÒªR¬<À ~LÜÁMÉMÉM‰S´ç؃ 'úv´-Ù7ÄÄ‚„ïµÍ^«ýEû‹ögˆ3Ä^›Q•–•–•–¦L?˜~Xýeõ—Õ_z ¿3þÎø;Ê Ê Ê ù×ó¯ç_'æs‰¹8g¸X 0÷3÷3÷«•¨•¨•pÚ l_íøÔØD£ßæö,#Nõ!"""F#ˆý`ÈC‰P"´qAã‚ÆÑÞÑÞÑÞŠÿ(þ£øOÏ"a 5 5 µ„¯ _¾6[6[6[4‚FÐpfôK[ˆ-D'7°•Þ&-åH´º8÷ÉO™*‡-F¥Üy÷ï5ýkÅ­‹[·ŽÓO ç%–Ù*k™º%CÈù5úý¶­5N—1|ÕõOÒ†ª†ª†*,?ðsýȸó}Ïö=ÛÇ)öKZ~æìæAŽ~©·&íÌ;:{ÞSŽÏNžV7­nZ™cµÃj‡Õ³ydóÈæÑ¶AÛm$Äé<é<é¼ìÙ²°Ž²Ž²Žâ,è>À¤Ù¥Ù¥™ãMÊ“ÕFq¼`¬)pÑïû#·®·nÛsÛsÛsûóðÍDs³p³p³pü³øgñÏÔèjt5zÏ"aåéÊÓ•§ÇdÄdÄd444éD:‘޳  ¿044d?»).N¿Ó÷E›#o®­«ÅÞó,õ,õ,õþ2sòîåÝË»Ç駃—£½·j%ñ¶ô=ù‹ D¿ß¶M¾ÙRFÆ]ÿô¤R ©†Xàgùñ0}-}-}íz¹õrëå8ÆÀ¯Î<ß̸èWüfÅÎÀióœ¦FsªLâóÄç‰Ïûû¬k˜Ý0»a¶ó$çIΓölݳuÏVn"áfÍ>š¥I;“v†¹ž¹ž¹ç5'€Nå±Êc•Ǻޠl¼`¿ßè¨ D¿5ù¶$Ã]W£.«.«.‹_çCKmKmKmòïÉ¿'ÿ®sFçŒÎ™žE²_e¿Ê~98rp½s½s½3¡D(J8ãxS‚r‚r‚2û¹\(jyJϲ­äý%v£%¦²¼“Ÿ¹ ¼?gTTT9ýp=c-¯âLÈ–Ê’¥-úýO |5{‡‘§*YÆYÆYÆ–„%a‰U~¼w¨Wÿ®þ]×Á^píñáœ!úmv-}Gé¦WÓ³'q¼ê×]×]×]—_çaSkSkS«çÏ7žoŽ-;¶ìØ2n"á¿çý=ïïy‰·o'Þ¦§ÓÓéø£d€ÿA, Š=Š=Š=ºŽôн­¶ëoä×è7—a1S·¦ë T†U†U† ÚÜhÓiÓiÓI{—ö.í¡’¡’¡’B…B…B…j%k%k%ñ$'ÞQ®þ\ý¹NnÞ[®¥¬r σïÝ–iêœJžÜõjé“à“à“PVVƬfV3«yg¶0s™¹Ì\µ3jgÔ:ù#!òAýg º¬µ%ïÉ›9úý¶­þ”ZdÀä4Öñ–ñ–ñ€à'øYp‡òýåûË÷wæ9ìª^áKK\å¿è7+ïœÆÖ¢®+`õÑê£ÕGA›™­[?¶~ô×ð×ð×8—y.ó\&7‘ð£Ë.?º³2feÌJÚrÚrÚrœû ˜ ´’Y%³Jfu½%öÈðž†k”3“¼º¿oÁ3ä²ý¢õ´Ô2þè—ZI­¤b†t Ì¡Ì¡ÌɌˌˌ313131ã&hhh¯^Q½¢zK‹¥ÅÒB…~‚áÄpb8§ó”±Êù) Ámoµ¥¹Ö¿ë»~ïjéñØã±Çã²¥eKË–2'2'2'þ¬É...Ê©Ÿ”׃Œëú²·Ùú‘/t¯rª[}z}z=®R€êçÀÊÇ•+×u€wîï%sgNn8Mc‡_¿~Õ%¶‹/³Ø¸ÇkÕã®Úæ¹Ís›ç˜¥ÚÃÛÃÛÃCï†Þ ½{cË-7¶p ß:~ëø­ãaÎaÎaΔí”í”í¨0À@TQ«¨UÔÿ㙯ڲE2š•n6/ Ôûåæû «<}îl¸ÿïöÅÐ%ª,U–*›CË¡åÐ,µ,µ,µ¸‰„}¼}¼}¼+<+<+<™åÌrf9* ðc4‚ý¬Ì=g^ªŽà¶·Z» [åuR\s®w®w®/~\ü¸ø1c&c&cf_ÏzÃzÃzCNý©˜•,b°Ao×­žY•Æ^=CkCkCk"™H&’±ÀÁ p‡:£:£:£5òkä×Èwݹ}8ôûZkBJb«øâþý\\)òJüà1á£]£ÿ2ÿeþË0?ÿß@C©¡ÔÐ(j5Šúà¯=ø‹›Høâ/¹øK@}@}@}Ûïm¿·ýŽ ÿA ÿÓ*Ó*Ó*£7Po ÞÀ®7 k QÞ4Ú^Áè5/o¸×O´{fk½Fý¬Òͮȴƴƴ†bG±£Øa&ô -žO‹/T0¨`Ý-»[v·¸ 9<Îyœó8W6£lFÙ æææT /Ôo®ß\¿™ýÔÞ¡à.w‚ º8‘Iˆo¹i[ªŒpZëÜç»ÏwŸÏÍji¿Ï~Ÿý¾ååeúPúPúÐÞ!&9&9&9쟢æþ\cÂÝî´ô/E7HCô\¯\¯\/¬EðcðNü¿ß dh24™‡#Ft×­³šöhbdÂ…Ó6›%y9ô­¹»Cìýå’ ×u'†Ì’=${ffÏÐßÒßÒß&ˆ&ˆ&ˆ¾\ñrÅËÜDÂ'nœ¸qâ†W‰W‰WI³b³b³"* ý`øÖsÖsÖóPáPáPáîl=;zk†(V»Ù®1Æ [íZ6œ°Þ¯~Uénwús!æBÌBP#Ô0ú½ü y=½ž^_TUTUTå<ÆyŒó®®{ËtÎtÎ,¾V|­øC˜!ÌF…zcÑ'XKç¾Î}û\ßùÙf°Áa„¸Ü´A÷ôÔ­;y ìôøéñÓ;Ä bUˆTˆTˆxW{W{Ws³ZZ}²údõ)W1W1W‘M¦F÷lj”I–I–Ir¼IøËâÙ¤4„»Ýo‹6Åëqª'ëëë$èk¼ËIÞIÞI¾;Aݦ·Ós'™Ï=°á_^}Kæ\.Bÿ»`ýËù”îô_Â[Â[»õXë±Öc˜“½‹QǨcÔ¥Š¦Š¦Š¾÷ïÿÞŸ›Hxßç}Ÿ÷}vQqQqQiˆmˆmˆE… A UÞ¯¼_y_)L)L)¬;›ÎrÒíÒ1žÆþZí'­ìÃu–‹ ™\WnwÕ0(¢Ìè¤æìîoŽkÓµéÚôZ©Z©Z)Œòý…¼†Qè)µ)µ)µq×s×s×ã꺷Õö«íWHHHÒ¥ÿJÿ虂}û öur‹Ú{J„¼'ÑäbO6B”ûÝ×þ:´Ÿæ´‚QPP9~¬×¬×¬×U>U>U>Ë–,ãfµ4Õ0Õ0ÕÈ’È’È’ Ü¡Ü¡ÜéάЧéÓô;¹qq®oôtÝ\º=kMŠ ÚÙ«š•—•—•‡µú/Àÿû tOåžÊ='íNÚ´ë~P÷qþ¦¥ õSÿõy‹1Óì¶ô®>|rpŇ˖¢íæ {^¯Ú·¼jJÍ„ÝïgÀüyø#±&²&²&fR3©™T©¡RC¥†r ‹ž=/zÞ–jKµ¥Ö××£ÂÀËÃÿõ+“5Ëše"•"•Òíg»RÊÓ’ÉbZõefÖ'õ‹¿û ¾£¬üõ¿ÆÉ’îjݵjRß¡tºg=ɴδδ&^/‰—Y^À c†1Ã*T¨8à3Àg€Ï®®{“°’°’È}Ÿû>÷=5„B A…ºe1‡˜#O“§ÉwøL¶¨Ô»‰@÷{[·=}zúô¶ò¶ò¶ÿrƒë÷½zgý¶^¶ü}ïÐUÆ·V.˜3·g‘¡ÊT•©*SÛÛÚÛÚÛ0ybƒÎ¢³èy÷òîåÝS®4\iø˜Ô1©cR{6¾kk×Ö®­5Ÿd>É|RÕÓª§UOQaà€á{ 2ANÜž¸=q»T?‘öKÚ/i˜çýçò·¬·¬·UUUbbb\]÷öÖô­éÛ¬3Yg²ÎP®Q®Q®¡Âœ444s:›èoœ‡‘ôëv§-²ö3àx_ êêêœ^°wÄ;â]ýÁúƒõ#öEì‹Ø'óRæ¥ÌËž­–º'uOêžLvNvNvvÜá¸Ãqû÷äÉEê@ˆÛ ×6¤Ê^áJåJåJe¬EÐwúWü-ßU¾«|WÍ›7?NˆçÉ’ÿ$ÿ‰²œ²œ²³®Ð$4 Í"Í"Í"MÍPÍPÍÐéÓ§OŸ>½g£¿xýâõ‹×666—å”å”åMDÑ„2À‡` zêoâoâïÂæÂæÂf   ^ˆ{m+l+l+JEKEKE :A'è¨~Oˆ"„jgÕΪr5äjÈU®®{»otßè~úŸé¦ÿÙ–ß–ß–üOÑD4‘ I†$CösÇ瘮Ú„»]·tç$kNëOÒá¤ÃI‡ûpcˆ"¦ñrãåÆË1³cfÇÌV§4Ni\oý„e*¹F^ø–û¶äIÂýkìvì6Øm0–"èÃÿ­î·ð·Ò®§]O»þðÐÃCñBܻ鿦››nºnrÝ争ú‰ú‰ú 3­ß«%j‰Ú²Êþ)ûÇp£áFËf/š½hvÏfÈŒM36ÍØ¤õEë‹Ö—"V«ˆÕñ‡õ(3ô5ÀÐkè©ôTzjþŠüù+\\\ú:îõ<áyÂóDavava6Ó›éÍôÆ(„ÄâCýéúÓõ§#.F\Œ¸(£*£*£ÚÃëÞ6énÒÝ”lœlœlܺ¾u}ëzY¹Ü@æt¾äZYüª›‰ —Së>Y;@µ“üª¿W¯þž•ÍÊfeÿÐál#Úˆ¶æ#ÍGšÄgÆgÆgª+«+«+ï:>Þó®†'洞cb½õ IVëUk²Ôôå†Ëù˦H¿UsSùCö€Ãè„âã°K9Jôˆ"m’¯À¬O%Þ䃜ªÍe„2B±@_àø?bˆ"&öSì§ØO¦˜þaºðGáÂû.î=gpÎàœ“³“³“sÝûº÷uï1¯GÕ”ª)USÌnšÝ4»¹&MþšüžÍ¢±ícÛǶ+%*%*%æeæeæev<ì€Þ…~¦ÝM»›vg¸g¸g¸‡ >ÆÝÙÝÙÝÙæÍ›7fvfvfvfÕfÕfÕ¶Km—Ú.õóó‹¸q+âVÖ¬¬YY³Úf´Íh›JB'b‰X"¶ñNãÆ;1ëbÖŬSZ©´RieÏ"aõõõ’„Q £F5ßo¾ß|Ÿ ‚‚2ƒàˆû÷%î §s¤NÃn§¡âÞoÛ$ r£öYN«m©m©máñmÚ:µujòÝä»Éwu*u*u*»^œ3ÿäèôkéW²”çv;=Uï]ÕËœ“fè—ñZ øÑu¤úsöÞ–Ï/Ÿ_>«ô> €»DɤdR2=_{¾ö|­®¥®¥®õ|ãóÏ7žpþÁù‡Fyhä~Óý¦ûMO>;ùìä³;î<¸ó@j³Ôf©ÍÖ;­wZïL N N ÆÌNjŸÔ>©}b{Ðö íA‘“"'ENróçRéRéRéY÷³îgÝg­d­d­D…€€€µíD{ó_Í5ÿ___­n£n£nÓ³HXé®Ò]¥»1b.Ä\h|ßø¾ñ=‘@$ (3ð­/Äâ‹™ª™ªÇkë[•2w!úÍ?oAÖÛÌñ¶Ï#“F&õƒë9Z‡µkÆé(£R]²ÂÏKÃÃ=[5Š¾í•æHÕ"ٔ؛~gµ”/Nzk0 ãÊàЇ35Î*N·üí÷S> 3nà¸êUêhƒ@öjÖÖÖb€¾ h0À× Ù Ù é\ë\ë\»÷óÞÏ{?s Pÿ þA=Õ;Õ;Õ›9’9’‰«„à; Ò:¯u^ë¼ä·Éo“ßêÒ¤;¨g‘°LœLœL\Ä¿ÿFü[ÿ þAýâ3ñ™øŒ ?¡l¤l¤lätÈ–N—>ÕVìxÊXE0£ßâVcõ§qªK¨K¨Kh¹@ƒEƒEƒE'Ï~þì¸@íøÏ J¢Eí¤H凊oeäÿwëþ]šKå":ÝÿEÔl¯êø÷ß¾ŠÓwþ¬–9¦XŸDe¯¹Êy•ó*ç±þ@_@ ðã5h>Ð|ÀKÜKÜKüøýã÷ßç&~õÇ«?^ý‘””D7¥›ÒMQaà0´¶¸¶¸¶¸´š´š´£ FŒ6pó\ê¹¹¹Úµk7ãˆqÄ8Tú»ºáuÃë†sšóÒO¤ò¥|›f¥Nô›÷Õâ„Þïœj¢÷Rï¥ÞKæ|æ|f¿¹‘oÖ¸¬qYãØ%?2ÆCïÄÏ Jsr¢êZ}Û«Lµð|šîºß¾Š¢?Lá^»´ÑGÝòöÊÓsè9ô¬?лð‚ÖøÖøÖø€3gÎ\yaä…‘ÜD·>Üúpkô§èOÑŸ¨-Ôj * üåååDÖú¬õYëM÷šî5ÝËM$ð0àaÀꢪ¢ª"–$K’%‰ CT6¤lHÙ®g{åh›Mù;úM¸@ž •Âñvñ_”¾(}¡.¡.¡.é_ãë§ì§ì§Ì~DÍE9ŒŠnDwʼ֥žÝ̹lsb~TÇ«æËÕJÇóÚuÀaË=Ü5:yÞvÃÓ†§ O±ò@ïB À£¿Ž Œ Œ›6'lÎM‰›7%¸‰„oο9ÿæüPz(=”ÞÎlg¶3QaÁ„àÿ@u£ºQÝr/å^ʽdµÞj½Õzn"aŸe>Ë|–Uܪ¸Uq‹ÇŒcÆ¡ÂÐ_”ì.Ù]²»ëž”bò‹ö5"ÛÅœ¬Ë¡/MÕÉ™tÛù‚ÖEQNG­}>ú|tÀ²€eËZýZýZýPaA€àû!o£µÑÚ ®\/¸n?À~€ýn"a÷(÷(÷¨ÒˆÒˆÒF£Ñ† /«(¬(¬(ìzV›5ª†+>hrXj”ӣߒÉV×ôw}¤ÙÙÙTYª,U¶ÿŽ)§£#(¥ùdc^»mr÷C\+oò¥}ßïµÒþ´j ¯Àµ£Ó§ža¯|âƒÄ‰°Ú@ïB̯ * * *ÔgªÏTŸ¹àÝ‚w Þ ý›¬6Ym²"“ŒIÆ&&&‹¾Cw ;ÐÊÊÊ^í{µïÕ>nÆîøüãóÏ÷šì5ÙkróÆæÍQaþƒ 0F1F1F‹‹‹;[:[:[r ;‹9‹9‹)R<„N£Óè4TxMccccc£âVÅ­Š[»žÏÑ»×iÚÒKW\y?ômеO62±Õ®üðÿøÓ KwKwKÖVÖVÖÖþ>š<Éø_­ùò£x-úíNËÒ,‰!õmpÚ¥fÖq,òörŠÒÎMÙ»x­·­ÇsŒ;¹«Dð™à3Ág°Îüx¥™¥™¥™+&VLdº1ݘn¨ ðÀü¡m]Ûº¶uVŸ­>[}žqpÆÁ…xÆÆ„ ¼l¼l¼lè›é›é›1^}‡999!5/5/5ïCâ‡Ä‰ÜŒÝÞ­{·îÝêìïìïìßð áAþ  ßC Ð7¿gg/T6¨lÇR¥K¹‰„í´í´í´ fÌ*˜E˦eÓ²QaàŒ‘Œ‘Œ‘î£ÝG»îÎLŽ7#¥hY³~s¦’WðPèûÅÞÃHÍ3\ÇWÕ¥;G‘Ò˜Ò˜ÒÈOãÈ~ŒVËI©J‹ûWôÛñÄ_Ò=k…+G!› ;QZ¼`N ¡'Ák×þv´Ô ÒH‹ÙëïQãQãQƒæÇ³ùlóÙæóþÔc‡û÷¨ ðöÈgªÆT©m´6Zþܧ5µ7µ7µ+ê)ê)êqÓŽ¯m8JóÝk'åv˜4íÑ ÆB¯é¤ óì§F­;3íèD·ÞŠ„M·›n7ÝN“¦IÓ¤1Ž}µ‘µ‘µ1K!K!KAZHZHš«±!2Bd„íTÛ©¶SkÏÕž«=‡ ô/€~f>3Ÿ™_aXaXaè£à£à£ÀM$lmm;9wrîdª6U›ª ÃÏ•w(ïPÞ¡îÏaϳ:êªzUl¼ ü~hèÛââ@6ÊûÇâˆÞ0Uåp÷ND½Wz¯ô^5|løØð‘ÿÆŽýxtÌ3• y?ô­õJ70|g×l¦ ,òŸñZ«Y)G”9'ÍÐ/ãÍè·£¥o,ZDêd :?t~èü«ÊDÿHÿHÿÈ>¡wCï†ÞE}€?töœ9}æô™Ó¾W}¯ú^mÑmÑmÑEÅ~òï/˜/˜/Hö${’ýwGwãfªNvÐ{¶|[båÑÍ9ŒY·¨»n„„„¸ø÷¶-nL³Œ¾z2qÓ5ŠÈ±%>K+¦,÷½½òxáñÂãFö‡CŒ!Æäµçµçµ+S¦ ŽÌ[×Ô’|CT, gAï÷¶õ‡®­ÚñÑnö¾ÚÕá˦|˜ðKwz»+{Wö®ìR£R£R#ŒõO`F˜fÅ“‹'OÖòÖòÖòž!3Cf†LÏ"á…© S¦6l8¸ìjÙÕ²«D QCà.&<0/™AÌ fÔÞ«½W{/¤,¤,¤Œ›HØ0Ì0Ì0,Í8Í8͸ͺͺ͆©1¥1¥1Åå‚Ë— R\3ªT–Ur(Ô|ªlï9O瓪’·îzU­YÛIUÈæ z’™v®BƒÜKî?+æyÌó˜ç 7†C ‚ŸNî1PC2RšÂkqiݪtº¡¶î.Í¥rÿ êdnKR­þ Î>êc( †7ð~èûŸ[@?-ˆ Íïäúø…ž =b ù‘·9nsÜÆ>Ä b±õ~2f˜ c&ô,ìÙùuç×_ë‡Ö­ŠzöV-«–U«~Tý¨úÑîŒÅëë Œ*½}é“èÎ÷v§Í ='·5÷Jù2™Y Ý9 {š=Í·ÿÙš‰f¢¹¬­¬­¬Íh¾Ñ|£ù‹?/þ¼øsÏV‰iñÓâ§Åk*h*h*½)zSô†P#Ô5”àÇC ÀÛä9B®^¿^¿^?"7"7"Wö€ìÙ=‹µtuu“—'/O^ÞB´-¨/ü -÷[î·Ü1 1 1”â1ÊÊÊéÒ¤ 7Ñ›èM‚6:Üòz¤f”\ï¥ Ò™ F3ÕÍT"d?uô°ãŸ‹‹ãkõwt|OÿŠ~;ÚÖ%¹—±×?Ø-Ø-Wþ 9†CŽ}Ož <‰úÿa™³ÌYæ9¦9¦9¦rñrñrñÜ<%tÓÚMk7­µ¬³¬³¬«N­N­NE…¿W³T³T³Ô‘GÐuµŽYýd®TUØ•OÛ_óNè˩ͣ_˜¶-áˆÓ‚™Ó¬º>®çžxþ!Îgˆc>ðŽ*Ù*Ù*YóýæûÍ÷¯Û°nú =[%ÆHŽ‘#©˜¨˜¨˜˜w0ï`ÞAV«Õ† ô5ÀýM ‘B¤4Z7Z7ZÇ8Æ8Æ8*•)•)õðZaõ5êkÔ×ÄëÄëÄë4¯h^Ѽ‚h%Z Üâú\™p™p™°G™G™GÙŒ{•V)­RZñ5âkÄ×ú€ú€úŒ§Z-¥¹dc^J äµ}å¿vôŠ¢?LáŸö‰y Æý1ôý¶­‰L+4ÜÍ^ùÄÂÄÂÄBÌÌ£D»D»D›}ªoV߬¾‰ú€@¸L\&.ÔÔÔª™«™«™OVœ¬8Y±gaÏr½åzËõH¥¤RRiÅÙŠ³g Á"X(s'ÿ/äRæRæ2~ÓøMã7qªçä ±#F¿I*:£·eœÚ€£GÖw=sĉ;Ô²·eoË^Ì ÞT›U›U›e·Ðn¡ÝBQSQSQSnþ|äkÜ׸¯q™™™,!–Kè]€ú?A#hÍÍÍ W®$\Ñ8¯q^ã|Ïâ1E7E7E·è¢è¢è¢Æ­[·D2CŸ‹$"‰ÈœÄœÄœÄ€]»v6þlüù{ç°ÜW¹¯r_­<­<­<#gDΈœQ²©dSÉ&˜’.I—¤Ë^IæübëçF¤ùkbvêýïyÒÒ¿H•I‘ëgf¸Æ÷÷è·£ÍmÞ¯[Å^ù   ÌÌÃ5Õ5Õ5•}Xf,3–ê*™H&’KêKêKêõ6èmÐÛ0×~®ý\ûžÅ³>³>'"ïk(l(l(t p p ؽ/z_47‘ð{É÷’ï%S§¦NMÊ(a”0JPan à[­[/¶^L®O®O®×µ×µ×µïY$,3NfœÌ¸ˆ!C"†Ô/¨_P¿€xE¼"^¡ÂüÁÿ†ÿ ÿìç~óóœ‰FÑ?7"u^d™©²æ7ë~¨øVF¾ãŸ£Y¾Û5Ó¾·åµ8t‡;Sã0{å²²²03ûóóó{ý}…}…}…QvVVVdI²$Yr…Ô ©R=‹y&iLÒ˜¤¡ÊTeª2 ” ” ”‰ãÄq⸠԰ètÑé¢Ó]×ÇMãИµüúvÒR%n‰ïÒ±³[~•Sf­žµzÖê&‰&‰& œwýK3©™ÔLòòò:a}Âú„57‘ð‹¦M/š¦$LI˜BLLŒ t`Òþkû¯í¿¦ÿ•þWú_FùFùFùÜÜJ7dhÈС5õ5õ5õÄ`b01è²’³’³’ÙÏñù ô0å0åpXvXvXö-õ[ê·Ô¹Y%®Ó®Ó®ÓBw„îÝÑîÞîÞîŽ t@ ÿA-¤R sƒsƒsƒ­R­R­R¹‰[¼½½+ÆTŒ©Ãteº2]Qa^Ã:Æ:Æ:Æ14•,ýLþÚߟ¶Ëkm¥iÊ}eöj»Ä¸Ä¸ÄÐsé¹ô\ÌÌ>œóYYÙëïàà€úô®¦UM«šV¹{º{º{¾wøÞá{Ü„=oß(¾QLJLJLJdˆ2D¢¼_W_|uÓ¥“Ï^Ù:_0£ßo[¿eGÊ×süs£*£*£*œMüж…¶…¶%ætÌé˜ÓŒ=2âf•8§~Nýœºÿ=ÿ{þ÷Zµ>j}„ €`B ÿº0]˜.\RRb¯k¯k¯ËM$ì¾Ñ}£ûÆÒÇ¥K32Œ TØÕ’jIµ¤ìúìúìúÈ ‘"'¸'»'»'[‰[‰[‰777zzzÈ äÛXÛXÛXƒ8¥8¥8¥Â3…g Ï4MlšØ4õì‡Ý»v³Ÿ³õõ™§ Yˆl{·õowÎRîzµ´o7Þn|~b~b~"Í‹æEóÂ,í-•‰•‰•‰ì5/;_v¾ì<êÐ×Z’Z’Z’|+|+|+þZü×â¿sö<Éy’ó$'Ö.Ö.ÖŽfK³¥ÙòΑúõ9ês”SÏCÚßßPè÷ÛÖ´fwÞÊN˰̰̰Ä$¿Ò é…‰r‰r‰r_ÿûúß×¹Y%ŽV­8ZáyÈó硦¢¦¢&\M(l.l.löWõWõWÕþ¨ýQûãsïçÞϽÏhÑ:£µëÊ®+»®l›µmÖ¶Ybºbºbº'ENŠœy¼öñÚÇkÕΨQ;ãµ×k¯×ÞÜ¿sÿÎýõ^€¾c5c5cu±q±q±±Ë6—m.Û¸‰„lll‹¬‹¬‹¬éô :"aR¡W¡W¡t2èdÐI¥cJÇ”ŽIõ£F/Œ^ÄŽ?¸¡ª¡ªבüG¾j¾j¾*{ÝBßx,Ò8ȶ·ZÖæ’Ïä-=›Ã–;-wZîÌ Í Í ¥>£>£>üí?-?-?­Nnþ¼€¹€¹õøñÚ·/n_œœœp•|•|•ÌMØ#Q,Q,Q±3bgÄNJ%‰’ôã¨q{ãöÆíœz¨“'°ü>â^Níã‰kVÍe°×m–Å,‹Y †Ãg aŠ2E™¢i¯Ó^§½þXø±ðc!7«ÄîÖÝ­»[ªœªœªþhø£áTXpääähJiJiJ­7]oºÞT¨ÏÌ7›o6ßL&Z&Z&:U&U&Uõ€ 0ôÆ/äó™ó™óËΕ+;çáçáçáÇMPg˲eÙ²òƒòƒòƒh.4š *Ìê–×-¯[îCö!û¥x€¬»¬»¬{\v\v\vû©öSí§ytè{è{è{8ÕŠéZ2…< ñ-÷mñìøÓúzk›19br$S#S#Sƒò;åwÊïXgºÆÊbe±²:¹ù¶¨‹¨‹(êÀ;¨[©[©[#ŸD>‰|r7ùnòÝdn¶à/“/“/“ƒTƒTƒTÛÛÛûºÿ„ ?fïÉód§ºW$–‰ÏBÐË©¥(Þ4Ù©5ÖbTبÉì5Ôߦ¿MÎ`aaÉž•=+{–ÌD™‰2¹Y%¶zmõÚêe#j#j#ZÓTÓTÓ„ ó‡ªíUÛ«¶«]Q»¢vEˆg|¤¤¤î-Ü[¸c}0ô &…IaR*++}'ûNöÌMÈa¹Är‰å’××WêêêT¸H"’ˆ¤b©b©b)=U=U=U)žçÆpc¸16l<(˜ƒæ.ê.ê.Ê^™Ü_£äußr߿֢°’½ÂÙêÙêÙê¡'CO†žäfn0Ü`¸!mgÚδmïÛÞ·½ÇRô­š 5j6°×­˜TL*&¡>¼Œ>Œ>Œ>,.&.&.æ™ï3ßg¾Ül¾Ÿžzzêé©>z>z>z-{[ö¶ôÚ|æåÌË™—9}nå—+÷¯BÄÛ6)þŒúŽ#Xÿký¯õ¿â¼€ÿXD,"åÊÿ”ÿIe¨ÊP•¡ã½Ç{÷îÙ*±zÓêM«7™2=dz¨R©R©R î/rÎåœË9w9ïrÞåÞVòΣ‹fxOU/[çÖx+àòADG‹‹w§¥›E\ßµ/ðƒNé†ùòjOv-¹·EcUÙäéßÛ±4±4±´Ì£™G3bL€{€àçYA¬ VÔºÖºÖº†J„J„JpuÝÛ4Ãi†ÓÒV§­N[Ýö¢íEÛ øG¢„SÂ)án—Ü.¹]êþ¨ùÎq4S{U)“rÆ@öÇ„py‹¢Ÿë¶Yn#MTüŽH81*1*1Š8N'Ž Âh©©©tr•*=Ò_÷%¢Üïn¥ÅdiˆÞs…£ìUÍy–ó,çÿzšo‘Ed555ÅNŒ;Qùò;åw=[-Õ Ô Ô âׯ¯_ÛÄhb41ˆF¢‘häói}†8Cœa¯†½¾½¾½>ÖpþÀŒfF3£3ì2ì2ì¾ø~ñýÂÕUÂb›Å6‹m¶Ï´Ï´Ï¬3©3©3éúÓÓÓÒÓÒÓ8½~«j×EºßÛÖ¯»¶pÇNU­“ª“ª“Â̇ïù¥… ”ò‡åË1cÿý‚ ,XÐq1 ø¸kE uPØÉN?&ôåØîÞ&>Õéâ¯k<&¥Lp½«;ýMˆMˆMÀ¸À÷B ¼-›È&²«««cÇ.Ž]¬¬£¬£¬ÓÃëÞ$Õ$Õ$ãgÇÏŽŸÝÔÔÔÔÔ$×½õ…ƒÄAâ`ˆUˆUˆU×5WJS,s§ø\¼¤þl"«4‚¬Ë›C¤¨™0$à¶V`wæRApApA0²¹­¹­¹-û±»žS—C¬Û­?2.Œ%=å4‹òç?ÎÜ»£Ö*×*×*—r8åpÊa=Q=Q=Ñž­–Ò¯¤_I¿ × × ×©«©«©«!î÷‰ûýw>‡Å…Å…Åuò Âtaº0uò”xJ<-|Vø¬ð™:I¤NšÂœÂœÂìYسlÛ²m˶inÔܨ¹‘Ó÷0¾Þž¶ë-B\®®N»v}ÇØž1Œ1Œ1 SzWhh¨ý@ûö··loÙÞÂÍþ þ7øßàÌ™;2w0ë˜uÌ:T¸g\Ò]Ò]Ò»Ss+I©ŠUmôáô]K~rèË¡eyDEïbø ÑZºþbwŽHËHËHˈˆ'â‰xÌèÀÐß0ÁhNjNjNJHOHOH×ü]ówÍß{xÝÛÅŠ¢oFߌ¾ÙÀh`40ˆ"€@™9– c c‰õnëÝÖ»»®mòíàÚ_úchG+ZERò¸cÛ¢z£ëcŒKŽKŽKæ×±nÈkÈkÈãtìe§3ôñvݺ7Úª«îëäY×ù¤|R>QGÔ}¾ý×¾´}iûÒt×t×tWã{Æ÷Œïqs³ý`­`­`­‡‡V«ÕÖ¦²3áL8³‹UºUºU:Vu rˆ"§ô^é½Ò{ú‹ôé/š?vþØùc…¸¦¿a§ñòVÄ·½ÕÞÛ³êÖœ2ö:GM‰š5úZ£H£H£ˆ«²«²«òQFÅÍúðîÑ»G良Ky—òŽáÉðdx¢Â]“_-¿Z~õÿQUúÍÌ…3èO"¶ìáÍЗcKŽߥ3þŸ‘ËEº>F‰%>2H ƒ„Y]C |¢U½U½U=årÊå”ËzgõÎêíáuoç¤ÏIŸ ÿþ5ük]a]a]!q—¸KÜE…©—¨—¨—´ÃµÃµÃ9UÏè¥îù¶–ÐÜ鯸#À+¿CT×s&è]л wüz5ydRdRd§co¿˜?ߨA/{›y$ÜJ'‡SÝg7Înœý³Æ”bE±¢XeQ²(Y³çfÏÍžs û?ñâÿ¤êHÕ‘ª#¬ó¬ó¬ó¼6‡ôôôØ{žšš‹›?G•Ó*§UN3¹kr×äîÊÒ•¥+¿û)¡µ«®JìÂË‘ªš÷ö—ˆwô6ûà9ÿ­t^îmŠÿ_‡¶|`¯óíüÛù·ó1cáÇknonon÷ÎðÎðÎ8Y~²üd97‘ðóÔç©ÏSãŸÆ?JßJßJߊ ³ÌYæ,óÇíÛ·w]½øR³›o÷³Ð—C[xÎ9Qäì’÷óËéx÷ŽÝ;vïXÊHÊHÊHÌà0ð­öµíkÛצ‡¥‡¥‡1þbü…«ëÞ$ƒ%ƒ%kLjLjLX-¬V‹àT’jEµ¢Z©™ª™ª™rªOˆ‰û'Å,V©0Y‚ÿ¼¶ˆ<'c9C]%ùNH H H#X‹`ñÕ¶Ë)Ö)Ö)­?´þÐúƒý¨ /è\–wc– 'OBèÛÑV’Rî(qš'I³’f%ÍâµQ¦ ¦ ¦ Λ˜71o¢õYë³Ög¹Y-½z/ô^XSSÃ4d2 îÑE¹F¹F¹²÷“ZD-¢ág%t_LLŒõ ëÖ7¶<ÜòpËCN[óÛ¤g^œ¬ÄÓ×ÔŽ”øS\hËÞR“G~Ûs^î3³à¶á®hŽ7‚žÀ˜À˜€Y ?WÛí¶Ûm·333/½¼ôòÒKn"á{-÷ZîµDÍŒš5“ú†ú†úF€Jù ñ ñËýy÷çÝŸÇ©>Çìv®˜>µyI`Øeþˆ~¿méw#ÖíÚú²àʾù_8U@4T4T4”bJ1¥˜âì€Î~œ Šʼnâ”=4{höP333®®{»àÁÿB•X•X•ë/Ö_¬¿ø¯bŒpF8#\³þfýÍœê^¦¡#O„eý^r‘¼Ê-ÅÆMu§jDÜ‹¸qÿfBÓÀ¦M9µ£…ƒr±¶t7ù¹ G¿ ~™T£¥œªd»Ãv‡í"ƒÈ 2xÄé›é›é› ÇŽ-ë0ÕaªÃTnVK7_7_7ßÒy¥óJç1ü~ ¿tÕD5Q-ÏgÈ3¾íii)ž½½À¾Á¾Á¾}SÞBhÕªÛ¼ý~öÙ,¹è>{ÏyÿFÐ/ië‚æË°÷<çNΜ;˜“Às¿ªPT(*á*á*á*·ýoûßöç&¾s-æZLˆTˆTˆTûãöÇíùµno½ôv§:¼/¼%¿ðK.ÊrWÿE¿ì­ñ/_­ˆçT£&GMŽš000àŒ€o!Fûö;í÷¼ùyóóæ[?±~bý„«ëÞÆxñSî_î_îÏÔeê2uûqiâ‰x"ÞáµÃk‡×œŽ7ÿVÌ=½mõå–F“uý—:oU«ãT™Œ‰3&òßùR`Z`ZÀñ*p·:›hÕ?‰i¥kÉmV4 em2åTÙí²Ûe·ÓTh*4•þ;úŒÃŒÃŒÃÅuÅuÅu.>.>.>ܬ–NËœ–9-+:_t¾è<Ý‹îE÷ê‹>7é4é4é°z–q–q–1~÷ž~|úñéGöíøbÏ‹E"ż—VÞ¹òËö%–÷.]åþºIx¡êª‚©C&Ôq x?-;¶±“+Mš.4]ˆ9 ýà7Ðç´ç´ç±ƒcÇ~ø8ðq 7‘ðÙ g/œ½àgégégÙ:³ufëÌþ^ƒÛ· ns:^¥?Ÿ­[B„З½u¸+/µf?§Ê¼øëÅ_/þÂùßB ðôíôíôí…³ gÎvXã°Æa W×½™»™»™—N,X:‘áÉðdxö—:Ä9s”ÓqåùEWèMè›ý•Æ‘õ|Æ8$¨mâT¥jójójsþ;G§'NOœÎé¨í'™Ù(ïa$ß!U ÂL¨VH­6ü¥ëu éIÓ“¦'ü7˜"L¦H™I™I™‰çzÏõžë¹Y-mߨ¾±}“ÿ0ÿaþCš*M•¦Ê}ã^ŽŠ{ÅþY”Ï”Ï”ÏøyÜ›Ö>­}Z'O¦d´ßÞ³K“âRR†¸çÊMÝ“x?®{Ml‡,{Ï/]2ºd„9 ýc4c4ctÒʤ•I+_¿}ýöõ[n"á#G,ŽXx|òøäñ©I¦I¦I¦¿Ô!jrÔä¨ÉœŽKöÂ#éÅ5‚ý~ÛÚ‰Ëf­æx5°ÙŠlEÆ9ü_¿Ÿ`œ`œ(f3Š.I.I.I\]÷6Þi¼Óø¢CE‡ŠÑ]é®tW^;ÞŠ›7+nrêʆ`{m<çõí¦ÒýäÖm&•T8UŒþ‘þ‘þ‘ÿ΋ȣ‘G#9þ‰€öxõWrûZÇæ^0^ȯ£ŸÃŒ’Öuêú|¯I­I­IœÕ’5‚5‚5¢r}åúÊõ¾J¾J¾Jܬ–¦¦¦9—r.å\¢î¡î¡îùÞþ¨~Qý¢úŸ§¿âçp6‰6‰6©“§ÿ^›ydòWÞ‰KSÜÿÚ¿å½Ò÷%4ö¶?Àį¿‹ÿÁÞó±Çn»3øó6ó6óvúøôñéã?5~jüÔÈM$,n-n-ní4ÎiœÓ¸z›z›z^;Þ†µ kÖrêÿýâ¿þž+FE»ˆ‹ îh5Žü=eÙ NËœ;8w0Î#@ ðý¿ïdîdî,s,s,sô<äyÈóW×½]³½f{-ÿrþåüË4yšó}æûÌç×s!jHÔ¨!]Ïð÷Ø'z2ü1ÖÌÐ’ùäYþ/_¨ÿGôûªæUÍ+¬–,7–Ë­Ú¬Ú¬Ú,04040”›Õ’lC¶!Ûd.É\’¹¤=»=»=›Óç¶üª—¬—¬—Ù.Ù.Ù.²Óe§ËNçf·ÜÞr{Ëmë+ÖW¬¯ÔHÕHÕHýܣ븂Ÿ½Ÿ+mŸ`AÞ°k!Bßÿ´¹ÑâÛ®k[3{!{ÝJ.”\(ÉÄÄ„s@!è_È…XB,¡J±J±J1_S_S_S®®{“³³Ë9œs8ç0u;u;uû9Šƒ!C²÷G5\ù˜ì8¦SÉ$òTĽœÚº_ÓÓ 8iÅŠøuþ§ŒL™2òÿ¸z´ƒêŠ}Á2cZßòÉIô™2ŸdÆJÑ»>ÒÆßoü«"G[‰­ÄÖÚæÚæÚæÐôÐôÐtnVKEEÅÔÔÔÔÔÔ¶}mûÚöu|HÒ„¤ IØ¿¿}`ûÀöà^º]º]ºû¶»Ù¯»ËV6"îëöéõ£æ}FüŸßG¶³¶³¶Ç Ç Ç ?ª}Tû¨Vè'‘9'sNæ\žižiž)ÖŠ>$Bˆ"# FŒP¬:XuðÄ%—L\Ò³Q[™·2oežÉ-“[&·*…+…+…ÌAî ܸS¯Ê´Ü«E¥÷rjÛ®‡ìÞÉñ¦Ùúkô×è¯Á‰ ÈôÍŒ'Ë“åYíTíT혘˜ÅÕuoªdU²jæ”Ì)™SÚ“Û“Û“{··nnnœ>½n_ÆHCD¼Ýiãêýåµ>²×Pm«ÚVµ­Äâq„_ç|É¡’C%ݺ>áXI+‰!W¼š”ÍË£ÙX–U`ôÈá«y”²n×GdvÒì¤ÙIê,ê,ê,¬~ß͈0"Œ„„„#Ã"Ã"ÃäŒäŒäŒz¶ZjÑ>¢}DÅBÅBÅâÛ¯ë¤ë¤ë„b@o %…’BIìîþÊGï®wGÜ×­jèvá¥I€©[©[©[uæéÌÓ™'Ä“æ‡Îêèèˆu£ÏD`‰p‰p‰°Ž©Ž©Žéìó³ÏÏ>ßñ9äü‘úsõçêÏ-½Sz§ô‘Cä9½ÕYú8ú8ú8NŸî0WþèšÍˆx»ÓÆ“L›7ÿÅ©’µ÷jïÕÞÃÉ ˜ü("„!R˪eÕ²B«C«C«¹ºîí¹Ásƒç©!©!©!mÛÛ¶·qu•°½¨½¨½(û§„/ò|£á‡X·û-+ ¤†|N¥YÉF¦”½ž9Ër–å,ãïiÞ:·unë\’4Iš$Ý™gîRë1¥µà:i8/Œ`íÀô? O8%Yª«ÌèNÿ£ƒ£ƒ£ƒ &Á$˜XäzMQ@4ÍjšÕ4+V%V%VEe¥ÊJ••ܬ™.™.™.™M~M~M~D-QKÔ¢ÌÀ Ù³=f³oµÇÖœ ÞÔ†¸¯[3¥=SV̸éBÓ…¦ RŠRŠRŠÜD³›®´šò@ú/úÜÛŠùÏ„–4’¯Jž\ù—u›ÌðÕ{­Ú¥ÅV mû¿‚,3þ¡ÌbÒýÇf[â0ïÅx)n>×r½åzËõ !†·ìî{t‚NÐËËÊËÊËŒ c˜X¶sÙÎe;{6vSÚ¦´MiS×W×W×/|\ø¸ð1ñ„xB<éY×LJMJMJÙ?eÇ•õ¦< ¬£eÄW#Üí~û"ñòóù»Ùëù2üeøËpœ ‚ 0ÀÏC"H©a^ü†y‘Y‘Y‘Yr>r>r>=¼îm­öZíµI{“ö&ím‘o‘oéÖ³„ëmêmêm8½'½¤ÈäŠX÷»o,–¤dð{=¥OIŸ’>EüJüJüÊçs[P ’Ç&MÛý9lWo&«¼­èpœ“^9Q[šN6ìë‘jÛ›wÈøaÒ¡ åÚ»T§*ÅÊÔw§Ÿ   555XÆ~&Á$˜-ƒZµ JÜ”¸)q“¦¡¦¡¦aÏVK…[ ·nE1£˜Q̆à†à†`ƒð N>N>.weîÊÜ•¬ V+¨ëO§ÆRc©±œÞ2›f¯·m6Ýïm<üÓw$qªjÕͪ›U71ó `^RH…M‹›7-Ž555U9¨rPå`ÏBÕDÕDÕÄ8ë8ë8ë&—&—&öëÞÜV¸­p[ÁþÚÔí!oµårÓš0ˆT`±×¶Ð¥Ð¥ÐEp&uÛç¶ÏmŸÝÓÝÓÝ¿ûi¯úUÚÛä¯FÈx)hŽ,¾/§?¯ulîã…ßý„f¡ôBCå¬ ÿèNòôµc¨:õìœJ›–6-m1–KŒÅrÅ Zƒ[ƒ[ƒSüSüSüõªôªôªzx°¯”¯”oøäðÉá“ëLëLëL‰ËÄeâ2*Ü-ò„¦µËj—Õ.˾œ}9û²ùxóñæã¹™!~•~•~•U¿TýRõ Kœ%ÎGå›“š“š“8UÌô•é+ÓW -†C µ~---̾½î)}xɺ³€ûº•%¶­ïä"·~3.3.3.?øtâÓ‰]Çiw‡žÞ:Ç ú“wðvÓþMeN³½¼õíæ°Ub“º>:òUòUòU¬3¼¦e_˾–}>F>F>F§gžuz–P/¿³ISøÌÏš™ÙíÇm¥ÿw%éß1ðÛo¸.ˆf¯³ÏŸ3>g0“`>Ñ~«ýVû­ŒU«2V‘““÷,Þhý”ël¼ƒwàþ§¯ûEç ûÅŠ?óö[õ~õ~õ~‘«#WG®ÖHÔHÔHìë¸×ZÕZÕZ5ófæÍÌ›¬HV$+£Ð‘|;¾JJJ ´o¿“¶Œ¶Œ¶,ïMÞ›¼7ÖíÖíÖíÜÌ"/]/]/ÝòWå¯Ê_1?3?3? fý[ŒZŒZŒ8U‰¼‘¼‘¼‘1—1—1søCnCnCn'!–nøÎ Ë÷u{³~…ÄlG~ €ÛƵk·{Åî»Wt•Ål$ïݤÚß*kgé´Õ›º>ÒOUŸª>UψgÄ3¬9<:oڜڜ‚4ƒ4ƒ4/[^¶¼lÙ³8PHGaÃHÞ €û{ œ/ëts[#ûr?ä~Èó@p à[”|J>%?ûQö£ìGæËÍ—›/ï:Æ0˜¥-!ÿðçÆ¥üS –ÓÙHCBCBC³´;ê'ÔO¨ŸéŸéŸé²2deÈJ{#{#{#ƒ—/ ^ª|Vù¬òY®E®E®EáˆÂ…#/4^h¼016161v¿ê~ÕýjŒmŒmŒmanana.ÓéÇÄ­ù uuuûYãããÜw _¦_¦_.|Zø´ð©ƒ«ƒ«ƒ+7‘°Û"·En‹JbKbKb† C†¡àŒEë­Ö[­·¤Ì¤Ì¤ÌØ+cÔdÔdÔD·¡ÛÐm0o¡¿k¸Úpµá*ûöú½•«.Í)DÜ×íÒ/S†Ž÷à¸ehËЖ¡«¶®Úºj+§xìzѱ³7µZ»‰5ðÓíjK~s­iYtaŽÉøœŽýé³§Ïž>#V«‰ÕXyúÁo É”dJrÄîˆÝ»%*%*%*»SÜÂ&î4FÜkm|´©øæÉw'.}‹ý¸Ú–´-i[‚¹ ÚÚÚšÐå¡ËC; ƒSÎGiû î‹Öð¤ÎYyöã¢ÄQâ(q˜™ÜÈ™3;g6ûùÕhÓhÓØÃ ‘ñˆñˆñ¨dOÉž’=®G\¸á&vÔtÔtÔ,$ ‰B‚®A× kð÷ˆ´Ío›ß6_vµìjÙÕü±‘©©)}1}1}1f/ô_ÌóÌóÌóìës²ÆF!î»–±þö€]wÙ{¾dÿ’ýKö÷¯YÔžÓžÓž³vÔÚQkGq ÆtmßX®K4EŠ‹ñëSK©ùá¿ì,¹¥vBfv§:¼ÚñjÇ«D3ÑL4cýég¿ÚÑìhv^½zdÙó7öGÍ<üsg ÀDt´¸¸²Éó§KO³WôÑè£ÑG13`ã–ç–ç–Ǿ)ßdžýÒHp_´ ‡Œ´:¹¡qÉÒ’¥%K1'¸a±ÇbÅžoÏ,Ùò‡e©D*‘Ú[ŸÂ<Ç<ÇGÜm©Ä%IÑì=ö"ìEX™9¬¬¬ÇJ•+åyº.U]{‘_CßNZƒè÷â+¾XÝ»ˆÄ©&*E*E*EXyú#×»®w];ùÓ ×§Ê/×>@ÜmzƒÍÓ­Ùëkõ×ê¯Õ˜“‚0€ ¡4‚&3Tf¨ÌPöíxVUéòuÞ €+&'o4Xo÷Æl…ò•t% ™|¹Ý²/¤¯êœÔx"§âWà<@-·}b^ƒ±oÀµgÓÞf?®°Ø°Ø°XLL€.iohohoØÏ¬ˆüˆüˆü¾þtÖÖÖœJ©J©J)¿)~Sü¦p [ ¶l18›šMͦR…©ÂTaþ£v•v•v¥õJë•Ö³µv›v›vmmmæ3ôGrå6Êu²½žúÇ_w·¨ î‹Öñë•kdÙ{îëëÑoþŸJrä ÉAœbNïÇ ÖE PôËÖÊ\y²Ø™S}<Ÿz>õ|Šõ§yâöÄí‰ûh–ßñP#kË€IDATõàÍ8áW3‘ÍÎïÞï4sÏœà;ÆúNÐ×2*xuâ’áç¼]{ãÅϺi¾q;¶ðèµõ#ÂÎíta?®µökí×ÚcNÀ„nG·£Û±oÁ›&ÞQ\ÊA)‡XöŒŒ—ôâ®ãÕCJ-2´ªªÔ»Y¼Ó‹¤H–ì}6¡šPM¨˜™=“¿.]þ:ö3«Þ Þ ÞàÇ÷‡ÉŠdEV7W7W7:t€›H˜<„<„<$#0#0#°Ý²Ý²Ý²ÿŽe+e+e«Š½Š½Š=û‘jªjªjªR?P?P?`VCÿ÷%îKÜöíu¹“ÛN/™Ó_nýmÌûý<Ù´hüô,öš;¨;¨;¨·Mi›Ò6…—çŒ×S¯§^O9E›ö­ò‹×¬äè÷-5:\|×ßÁWCæ7qªUÑ×¢¯E_± õ †,²`û82²#OíRâÍxœëØ7£Nwýôâ¹.3ˆ±-©VV[\yólZ4bÎqõT>—‘ËÈÅÌào€HÓΦM;Ù7ßC¿z¬Ö¸ÄËp¿ÛNdµÀܘèź…™SÃ?ê$¸gÚJªî”þEªLŠüŸ[FÿYºˆ|Ÿ‡bà¶Ò<²1§ãÂÌèÛ¶3lgtrNÉr„Otq?±ŸØ_·¹nsÝæ°³agÃÎr ë—é—é—¥ÞL½™z³mlÛØ¶±ýk¼(…”BJ¡ú õꌚú"õEê‹(Å”bJ1æ6ôí¶í¶í¶ìë£E } ÞHl_пb`^nÛçßœ¶S\¨N˜œ09aâ=Â{„÷ˆf£f£f#^˜-ÕòÕòÕòœú¬ð÷Ê#D¿ß¶Ì”¨‰»"÷¿ß¦<õ{ÅVŒ]1vÅX¦S‹©…µˆ÷±àJŸE·'ØðÂLãwøg×u¯’Þ‡5þXèX¦à°ÆøáijwçJ #ôŸ‰55êØ®L^;ºŸ­˜ÛÉÏ©ú{õ÷êïafð7À¤,¦,¦,†}Û=kzÄ~Ýßy3–n6–ÊÊó‰.Ó›Ðñ=ß>¸ãŸÓ†ÖYÊûO6 3¼ª¸0÷è¦tSº)ûÙRRRÁÓ]·"¬«†Ë —.GíŒÚµSþ´üiùÓ=‹„µHZ$-Rbybyby˹–s-çxì¨o©o©o5¥5¥5¥ÙHÅSÅSÅ“"B¡ˆ`žCq’r’r’¾½ží}®bÛX·½ÕúÌ92g]£Pì ݺ/ÔÅÇÅÇŧ¡ ¡ ¡àÇÏ“S·OÝ>u›½o‡~ýwÚŸ,Fôñ}ÙÛÆËwÔpY½…z õbâ}ìc'±÷dþœ¼.½KÈÙw¥æ¿ë—u|Ï·Oîøg›í2»VŸåý'ëg¿°b{?s2r2r203ø`’;á^f$¤_È›°cE€rqwÝÿÜÔZÍp³ât^ €=ÕíòT-p¯h^Ѽ¢yìgSíýÚûµ÷ûÙÁ”eDYÓ•¦+MWâ~û=îw•••’žEª›U7«nŽozßô¾é=QIT•¼vд1´1´1Ú5Ú5Ú5ìG¡´Ci‡ÒŽvõvõvuÌvà}«W®bß^~{mì¼6·½Õn:#}ò6¡^"j(j(jh7×n®ÝÜڌڌÚ> B‚lƒlƒl9õ¤VÚ÷¯“ôvÝÆŒ ÏÝ$Í©†•ï*ßU¾ÃZÄËØGMþþ“yK®ñf|5÷Hæ¬ÐîºÿùC“›[]§nãµsÇËL]z.{ý£fGÍŽš™ ÀßäåÉË“—w™Ø¤«¾á͸@7ö‚Þçî¼6çzÔh]ÅÿE aÊÇdÇñÚuÀ¡†â×pÏ1Í1Í1­“³i&1“˜ÙïE°V‹H‹H‹H¢}¢}¢½Ö!­CZ‡z Ë;È;È;D}Œúõ±áCdž„=aOØóÂÒH4¤·[o·ÞîNz,,ÜVÜV܆›BO£-§-§-çM5¨]³Þ…ø–›6‹vÎhk%{m•,*YT’·'oOÞÅ4Å4Å´12cdÆÈô,^·rÝÊu+Íw›ï6ß]%]%]%ÍýÜ`è3ôú£^Žz9ê%û'ºý¦\µVán÷ÛW.Wêç»°Wò¶æmÍÛšX‹xû¨‘§IN_¹7à€W†vçµoU3ÖMëxÕ<Ó™ÞãñÚuÀÑ'Iš›.³×ß{‘÷"ïE˜™ü 0€‰;w îû&{CyÖ$£u¼76fU=íÎkëgf¸Æóò £_ú¤kz àÆaða?bbbùûØ[i­´VZêòÔå©ËõÕôÕôÕ¸y¢p˜V˜V˜VÝź‹u‰cÄ1âØÏ:.úBúBúB===ö~Ên•Ý*»µmQÛ¢6lSO“K‘K‘Kaßd—«Û¦´d7B\nÚ³‘‹‹g4u n„Û‡AP#ÔŠÞ½-z«©ª©ª©:-mZÚ´´žE‹ß-~·øÑ,£YF³ÊZÊZÊZˆf¢™hîþ¬pä8Èqû;‹8¬=19™ŒÖ߀X·ûmóŠÀ0±+œÆ+_:_:_kob/[9Ù=«My3.uu)íÎkóf8îÛfÈË7‚Nžcá´e6{”””13ø`›››Â¾½Þ¸ ë€Ñ.Þ €îÅ'I¥Ýy-=¢H›dÇÓp£ïzÍdÀÜ(i*i*ib?ª'VO¬ž(hÕhWnWnWÎÏÏ'¹“ÜIîÜDÂAòAòAò5k&ÖLd%±’XI?òXèVt+º•Q¥Q¥Qe's”r”rl½Óz§õÎàMµ¾µ¾µ¾oó;íê•¿"ÊýÞ6Íçìˆ-ÍœªJÿ—þ/ýßÿc`jˆ¢¦ìzÙõ²ë†Ã ‡[˜³0gaNÏ"á’3$gHj¹k¹k¹O,žX<‘0#Ì3öeš0M˜&œÞ'ý uËÖ±t{Öš^û\¶2–½ª·,oYÞ²ÄZÄ›ØÇËî†lÓê4Þ €©a&;#»óÚö¯¡‹wžçé8ÄrÅ–=ì=tôuôuôÅÌào€Hbfbfb&û¾zdÆfCëþ~pƒtf‚ÑÌŽWÉÜ–&¤Zy-ŸáùTÃ07Ün»Ýv»Í~±TX*,Ô‡úõ7êoÙáÙáÙáæîæîæ\EÂ~ý.ú]¬´¯´¯´g-g-g-ïëþ3f3f3f“—“—“—sêU ¹…ÜBÆXoúPõ¡êCûVû½•«.Í)D Ûý–U-ñ«øÐµ5ÓN4`¯§Í)›S6§¸©ªAUƒª™m0Û`¶aÎ5:=‹„Çm·}ÜvåAʃ”嵿µæµ£‰ÑÄèÐá¡ÃC‡³ÿÑCbÂÓâârÓR3Ãè;‹8Hss3Ö"^Ã>R¦q_6®,íïW49ÙÑñª1Éc~ªâµ8öœÉâM©ìõ÷HðHðHÀÌào€Hfxfxf8ûfzÅöäÓ¢ýýÀ¹1Ñ‹u ;^¥õB.7—×`ŸŽÕö"è¦"S‘©È~ù(ù(ù(¡>œÐNÓNÓNçååååå٨٨Ùpuãh¯^#¼F”Ï.Ÿ]>›)Á”`JôEŸ ††éÓ¦8õ¤9µ9µ9ã ¼¦¡°¡°¡S4¡r"tcÂÝî´æs÷_µš½†ãGŽ9~$#ŒÆëݱ«½P{¡ö‚íLÛ™¶3EF‹Œ-Ä…eó–Í[6ýß'=±˜¿™Ž—ûV÷êÛÑË;yÞ³v¥v¥v%Ö"^Ã>R*W_ Yú©¿?Øû°Æë;^µbä‰öñZì÷NKfýßìõ3 3 3ÃÌào€HÉý’û%÷Ù·Ñs*£þÖµåÍØ1È"@¹¸;¯µ™mrNéÏ´c:A)™×`«)¤P¥y€z¦\·\·\·“?a1ª0ª0B}ºþ…þ…þ¥0±0±0Ññ ãAǃÜDÂ®š®š®š%ÏJž•æÍXºAÚX*+Ï'ºLo§W¥ =¬³ôÛW5ǯÒÁ;ÑoG«°_~˜t:`€žñJóJóJc?ƒ˜Ìfêà †"C‘¡XB*!•\‹]‹]‹¹‰„Â(4.4.4¦?¡?¡?á¦ơ̛̛–––œ>±iNÓœ¦9Gà, –Kb=i=i=‰}Ûýô€EofL æIL‡¸÷Û–rð¦ìNéYŽ;“½nwcïÆÞý¹#Û¼¹ysóf¯©^S½¦_z|éñ¥Ý€ó>Í]9à'B#£ÿz\}ÞxÞ’ï °cW˜ ßÍk1ðɳ⻧{°÷¶ ¼ ¼ kï`£­5«›&ßçÍxtñè]Bξ+5ÿ]¿ŒÓ«l¶ËìZ}öÛW…ZÌÛ8‘×Α׳®\0„½þÕÉÕÉÕɘ™ü 0€¡ýNûö;ûÖ¹í Ó}J…¼«†)“÷¿§Q8PËÍÛ-¥ËȱUwˆ{¦­¤êÎo¿ßTÍp³ât^»ö—¹§8Œ<˜½òúõúõúõ˜™]cfff?ƒ<–{,÷XŽúôæKæKæËòÃå‡Ë{ò:åuŠ›HØFÌFÌF,Ï:Ï:Ïš¶ƒ¶ƒ¶ã»ûÌ fÛüjó«Í¯œ>¥q{ãöÆí;àE‰E‰E‰œâ4™[¿.6Cèû¿vÄ4ñI—Ì—:ÏúSÅZµ jÄk£ÜÐа*`UÀªó‰çÏsñÊO^«¶¯ü¹Qâø§O—Û«¥›ç7×¹òÏÞåGâfš„mþµãÊ`™«C;OÝ2ùÒ˜ÿ<ɸ¡1`ÐŽ|Þ ·|ƒ4)ë;¹^\/C/C/«ï˜h?Ñ~¢=ûH±HQ^»Úy-žg:Ó{Ü¢Ž~»öÆ‹ž>¢‘ë(ÎJ ׎|8ñìݹÒß~ÿ¾›[]§nãµk;ÚM‡VN¤Ë^yZ$-’‰™ À߆°á´uN8ý?öî;*jü}¾«®}]{ï½aWìu-;™É$“{。k¨( *Š(EEŠ " Hï½wf&Ï|Ÿsüœqü©£x½öœ9{vaæû¾%I’îšT·8þÀ›÷×òÎÛéèuúrÀpE~ÉT§I^^DÚÍÕ-Î[±ë¦PqÍž=zÄ`|YzÏôžé=÷ ä?“ÿLþõ©ò‰ò‰ò‰iáiáiáî·Ýo»ßV%¾³êΪ;«>|4øhPšSšSšóUkè(ï(ïhÛ×¶¯m_eïœ+É•äJÐ/¨>œÇ:u«,4o8Ûo„Æoýæ­_5{æ¡ãÿ«¬JAw‚îÝ©þ½.w*w*wR\'I‡Î­Vð9þî³güª¨tß‹”Y{æuû«M§ÊUqR;ÞáBe «,¸ªüïŸ~Wu‹¸ò÷<=S]±æSMm4µŽ?ÕÇÊ¢•E+‹;•öÔpÆê{?2Ý0.®Ó†[­ýò•ñ•·OOxñàÁÔ¤ê¶wH'¿ŠÐج¸æ>útêÓ 3 ð;@ ðÛ±U·U·UWsóç&²&²&¨Ï¯"”GÊ#3§fNÍœúüÝówÏß© ßZqkÅ­¨Ôªd_ɾ’}J?w½|½|½ýtûéöÓ•½[ÎêœÕ9«Ñ#¨>Ž8~àøe‚Å£9Gü~WËÖ¯›=ûØŒ †£”Uænó»Íï6¯)]Ž©S'¦ŽâV9¸®áÀ½¿6 rÝ|éÒXñ§«r ÓÛ<:ìk"«O¿kÖ³ñó:—V·kûÚ÷¶)øÌ5ŽÒri¹ÇŸêÀ*Ù*Ù*Y±GÏ·˜Ü·¸ºÀŸNþ² Á²^L¯3Úìé÷ÝÌ9`ªù —+¿«3×!¹•iu‹»^Zí9à­båííípü©bÇ4Ži¬Ø£í=ï7¶:LÑ—¯ƒÿúÿ^}^Í…Ç猠knggÇËx/ÃdÔn€~;ùÞùÞùÞŠ'Êï 17Ñ_UcÔšøZ‘ï|ëáÿ㺷nýsëŸ4>h”l+ÙV² S P)óDæ‰ÌŠ{Mœ„9 sPŸÀ™wæsÍsÍsÍýžù=ó{¦Û\·¹nóï‹„¯^)¼R´3hgÐΞ…= {Êóäyò<çUΫœW)û®¬-Y[²¶ PTUU W W W* >×®~¹·Iúšµ³vÖ¾è7ËrÅ¥=§õéYÒ)KYÜ=p÷À]>œçÃkVÔ;RïH=Å-Jvtá§éýÚ(¨òÙ¥VÑOûhmk¬9 ¯Ç×ÇWŸ^=<*hH“}ª[ôõðÁ©1nŠ•÷ºàuÁëŽ<Õ¬¾¬¾¬¾²½^VÇw§†QuSkâëØ7C—uPúTò>3úÌè3ÃdºÉt“é‰[·$ná_ñ¯øW˜U€Ú0ÀïçÿŒvÖá¬ÃYÅåeaqínMApû£^cû¿®{mý7_÷ÖÛ´·iï÷‰ïß'………blá÷ä5Ïkž×<Å}DÚJÚJÚ õ©‘2ø >#ÿfþÍü›oN¼9ñæÄEˆ ¿/68cpÆàÌkò5ùštèíÐÛ¡·²¯Ì\›¹6s-ÊÕAÅøŠñã¹9Ün޲SóíÛ´²iyûÃhîêä¹µ#ú}±ž¼:¾ñ—Ÿ¦y´ÕÑVG[ñøGü£šØÙ-økÁ_ŠÛU*{IÌr¨náÐׇ¸bO7Ýÿï ௗtìgTÝàp'›÷“o(Vþúé맯ŸÆ1§úت¿U«¾b§oûM¼‚ÈöG½¦y\>}c‹oÔ±CÇ;\¼sñÎÅ;±+cWÆ®äð ø˜[€š 0Àoʯ‡_¿ЧÈC§½Ð0„àöG½Z´½ÞB÷Õ•] ¿~%žÇlCíí•í•í¥8ù±«cWÇ®F}~Ŏ¹r#äÆõÉ×'_Ÿ|æI»Ÿv?í>* ÕÇí.·»Üîò5'âíMçGŒ¦¥‹Ö5רU=Cß’†kZÍšjriVýa†_³Ežžžµ£Š[×[Ô½g› 5+:ª|âïÌÀqºŸUnE»ÛmÕ[ž÷¬oôD=¨z>÷´¤¿wì¬ÙŠõ_’¼$yI2Ž0UϾ¾}}ûúÂÞÂÞÂÞ·ÆÝwk\~f~f~¦l‚l‚l‚²£A¦›Ýô4Ä·ª¼–ó>q}•UøÎÆ;ïlÔø ñAãƒ*‘ðñëǯ¿¦¦¦%;";";‚™¨žüÞ'OÜ>qû3Ï׌ù:øÚm„¸ª¼>Œ½ïy±™bmÃV…­ [õi +<önÌ»1ïÆµ3jgÔîû" (((ß\ß\ßÜÜ‘¹#sGò¼o9‡šÈGà#ð(Îyyqyqy1êó{*ñ*ñ*ñúPú¡ôC©ù"óEæ‹TŠ¥ J„ªBõ¶?lØþvÛ l7ðkNÁ›/1‚‘÷]çªññ׆¾E‡W™™¢ÿÏÔ·j¿få“’'%OJNQKQKQ«MTÜÒ ¹#®uô¬þ¡ÑÇ…vm'W,·`KÏß®_ýòPiùëáM&øWÏè·òµbÛ« Së??w~îü\[ªÞ̃3Î<ø?¿ ±±÷ÆÞ+ÿ¯Ña£ÃF‡ûuòÕ¦Áƒî"ÄUåÕ~Îù£g*Öv݆uÖmø´GùÂ|a¾Ð…wá]xÁGÁGÁGU"áà ;0ìÑ;£wFÒáÒáÒáØ ªÀ¿µ”SþMùWñ´¸þhÝÓÚ³ù¿’˜oB”û­¯¹Ã?ÜTúJéééÿãYJÅãŠÇ ±±±¿.¹.¹.Q%äxYïe½—õ²›f7ÍnÊÏàgð30ùPýmz¶éÙ¦ŸN²õxëñÖãQ™ß™¬LV&++v(v(vHï’Þ%½K°c°c°£}'ûNöôx=^ÿš£â¾ø}ñûâS–¥,KY†ªBµ›s™‹ÌåÜ«s¯Î½úú“ïš!CæôæùŸð¹zf½Êq憟÷fE¬¸3cˆsï…Çôš½¢Ï¼.ôׯÓr³åfË͵µwŠÛ;óÚ¸ÕTÓ+9Ÿe³øÓz›õ·hû Í–’Ê5÷ø»Ë¥Ö6ú w R^¶þ¥Å,ßêýV¾J]|'hœQ¬ÿ¬³Ìz€£JUÊ»Ÿw?ï¾b/ŒíííÿïkNæÌ;©ì(‘qéIÐtÄÀß¾Gwõ1+_YU#·GnÜþåÞfff»vì>˜5d YCU"áûwìß±ÿõÎ×;_ï,7.7.7ÆÞPõüÞ ø¾àÚÉk'¯üÌ󀯾8k<î·¾Zùš=Õ‹P¬çÛåo—¿]þ}*ñ+ñ+ñ oÞ(¼‘ùnóÝæ»U‰„Ÿå?Ë–Ÿá™á™á)**Š]ªŹZµÕ9Õ9ÕYÙ‰ò’¦ÑÉf&ˆu¿æ5úÿÃk•^û{HzHzèGu­lBÙ„² ‘“#'GN¶ÚfµÍj›*qÈS÷§îOÝÓDi¢4‘¼¼¼ ö øµ2ÇeŽË§'Öë‰+§´Ì¥Ì¥Ì•©1rø>Gª%Õ’j<,xXð0éNÒ¤;ïæ½›÷nžë-×[®·Lî›Ü7¹¦ é¬ÔY©³Ò6Î6Î6-‚šåCä‡È‘šÿiþ§ù_‹joת]«v­J.I.I.ù}z¤X‡“{{µ­F·€ŽÍw:2uÆ u}lÚÕ¯\aå¿ûœ»qcüÉʯ©YÑoåké¿/^Î:û™+ãGiŽÒ…£GUZ¨¿P¡þ§]è0©Ã¤“øgü3þÙ§_™/Èä ”CüËÍÛO8‰X÷k^o=\1­½²JFo‹Þ½í‡ýJ–‘e¤¯¯¯Ý¦q›Æm§ÊŸË&.›¸lâsÑsÑsQñ•â+ÅW°üX€àÿ8Œuë0Vñtù}#‹Gú.|^R„ùMD¼Ê^K†ÄÔ1»¥,rˆGŠ#Å?»ƒå§ÊO•ŸŠÄb6slæØÌQ%&q]ëºÖum²g²g²§ìÙ?²°@%9%§äTÉ’%2Äâ qx\x\xœWO¯ž^=ï´½ÓöNÛ3UÎjºÕt«éÞ¼;ywЏq;âvFRFRFRIXIXI˜ü ü ü zµCšsšsšóÅŒ‹3ªCÜÛ{RïI½'Y¸Z¸Z¸æMÌ›˜7ñ÷ìK»ií¦µ›¦Xþ™¿ÉìqÕ!(šôÏHëNÍÿïöÈÏÆÏë\šÝí雓jbèûékÎMwéŒ‹Š•ßsvÏÙ=gqĨ…l![È*váb‹‹-.¶Pö]– – – ÊŽ-EG½.ÏLAÄ«ìU.ðÓÒHœ²}4×éœbõöî7Üoø³û^ѹ¢sEç· ß6|Ûpw÷ÝÝwwWåOÚv Ü7Æ)R8¤pö,U €ÿS¼­x[±Ò«Hƒ\ž=6ê ÷3¯ÿ$Ñæûowºa¡7Y±n·Ío›ß6çsù\>·ê{Za[a[a?9~rüd©ƒÔAªJ¸âœåœåœ•Ø,±Yb3)'å¤ö€Zå„?R®W®W®—+ÊåŠb_žŠ}åŸçŸçŸçðÚáµÃkƒÅ‹ We¬{-óZæµÌÇ6mÛ÷ îÜ+y^ò¼äy…} ûö•:K¥Î|1_Ì£ð;‹‰ˆ‰ˆ‰¸vîÚ¹k禞6zÚèŸ÷ ÚÚÚXMµšj55¥iJÓ”¦¨¥YMf5™õ™[¤–{û8ktøµA‘{¯«3ÔWU®§å-ZÌŽîá0oÊšýV¾F7tPŸb¤Xù«ÑW£¯Fc2«†›·›·›·bb[ŶŠm¥ì»äCäCäCFÔQgDÅï]õ—Чw>Óßmö ĽНzỚ ÉQv¬.4+4+4«úIšJM¥¦ïÛ¿oÿ¾ýAƒ=TùgAì‚Ø±Û?lÿ°}Þþ¼ýyû±¯|=Àð?"¶GlØ®ìD|R‹ÀpÓÓ}?}õnëÒʰ©²Š^(¼Px¡úô·2,IjœÔ8©ñÃóÏ?<¯J0c/°Ø âFÇŽ]1·bnÅ\ìA5Ñõ¯ÿ{ýߪŒuõ“ô“ô“ìõíõíõý²ý²ý²cø>†ÏñÊñÊñ*ŸX>±|"¿†_ïAwT÷ªû«î¯º[¾²|eùêäž“{NîÙxlã±Ç4›i6ÓlFeR™Tæ"ûEö‹ì·\ÙreË•³WÏ^={Õú°õaëÃ>|@ ¿Æ^Û½¶{mŒô¬'ÿN?þkƒ¢ÕödóÞë+×Ó3¯Û_m:UþûÝý­‡Ú|ëku‹Á>·?õ4ôièÓPLfÕhJ4%Ÿy3?ŸÆOûò÷F[E[E[)‹mþ;1lâÞO_Ÿn¥¬bÞ¼x¨>³!û û ûð!þCü‡øSOu<ÕQ•Hx†ï ß¾vºvºvºÙG³fÅÞ  `ø —Ó.§]N+;qŸu7ìÂýˆ~ßMxÞÃhº²*EEEUÿ^Ë e†2ÃûûûÇåË—«êÜÓ½§{O7z|ôøèñå­Ê[•·ÂÞPýýØp×ÒËÒËÒëyãçŸ7¯^/¼^ºCºCºCIË’–%-å}å}å}Qs¨}îºwêÞ)ŸÂwáM~|ú¯‹¦ÉÆ2»ý¨«À«[v¶ÿ–·ƒ7)®3&9&9&“ù³{{æ*ÏsƒÎ :7èö &÷šÜk¢l꜇èïÓÑïÛG·ÿœ¸DY•Nì<±óÄÎê?3òy€< juÔê¨ÕºƒuënÙ½e÷–ßyûèqÇm·ÑÊÓÊÓÊ3cFÆŒŒØ+*!€Ï>‘>‘>¹ìvÙí²›²SüÙ1Žßðü=£ßк/ÚwQVïwÞï¼ßÕÜîW>Ý3}Lú˜ô1ªDA·­o[ß¶þØéc§J—>.}Œý  º¹˜r1åbÊ—÷ec c cG»í~´;ˆ b‚˜ÄìÄìÄì‚qã ÆIÇHÇHÇðI|Ÿ„zÀïéÃË/?¼T 'ΛîX0d˯ züÝåRk›Ú-z¬ÃGÅu–®.]]º“ù³=w}îúÜU±þ|üñ›ÿæ¿«Í®6»Ú(›½Çê—GŒ=ö{F¿ÁìžLꧬ2³ügùÏò—‘2RFÖÈ1Òâµx­8³8³8³Ë%—K.—tÙße—ýßwŒR{©öRí¥™µ™µ™uÊ“”')Oør¾œ/ÇÞ ¿À TÑÍ¢›E7¿ ¤xÿñºýïý¾öœ{ÕEé-‘'ÙO²ŸÄëð:¼NmšyžŸû|îseñžíA?G}ü}æüUæMçñï•U£ÝŸíþl÷g¾Q¾Q¾Q­¬>†Iº’t%éŠé¦ÿ™þ×_·¿nÝï‹„{EôŠèa¼Ðx¡ñ„ì„ì„lÞwãݰÿ@í†þrîåÜ˹÷åHïc¹¯‡ÉÞÚúÊí£Í%î½7_rTzëÜÛsoÏ•éËôeú¿ÅX¬ç×óë³C²C²C|¶ùlóÙvvÂÙ g'|_$|mßµ}×ö½ßõ~×û]E7ŠnÝÀ~5Ñx­ñZãµã‡\[·3ÙþØW?³² #«=€À àîoº¿éþ¦¬†Y ³b2†Ò˜Ò˜ÒÅú“““©òÎÅÛ‹·oÝctÑ=”Ez:«¶K†ôç÷ú/ŸÝ¿¶N¸µæß‘™_Ž6S÷¦îMÝûûL]Úì´Ùi³-[<¶x’ä#Qf¨>’ ’ ’ C…qC†íèØ‘í Ényï5@•˜g€ë×®×5®k\×ø¿GØ'óÉ|2føëmè¶¡Û†nе•­—­—­ÿQŸR**•Ѝ©ÔTjê—{ê¨?|L ¾ÂÿÕly«çÙ7GŽ·ûò6š2hÊ )™!™!™!˜@erÞæ¼Íyë¸Âq…ãŠ9½æôšÓK•cÅ1½czÇôB£C£C£eœŒ“q¨0Ô€à›•””ÜѾ£}GûË¡ÝÛ{A/ ÷FƛՀk‚“KÞQ¦E—ƒ ÒÏé|y»üBüBüBøD>‘OÄ<|«B·B·B·wVï¬ÞYyyy}_$¬ÓW§¯N_ß¾;|wädçdçdóF¼o„ Ã÷‰øñ!âCØŠ°a+J”4(i€šÀ÷¾kø®á»ƒ„}Ç Sòߪþj·QÇctKÅ wk×­]·vßót½ßõ~×û†¯ _¾Šoß2¾%š?ÍŸÆ<+*Tþ¨ü‘b ÷ŸÝvÿÙŸñ‰ò…ò…ò…'‡vrØ—û81w䪎å!ZÖ§&YWÿINhô ×Ô'‹úÍ¿Úsú—·k¹ûr÷åî%©%©%©˜Ào•oooý(àQÀ£agagagU"áýí÷·ßß>¨(¨(¨Hú‡ôé¨0|Ÿøñ'âOÍ0ša4#ayÂò„å¼-oËÛ¢2𣠀﵃ßÁïðà?ÀÀ×ÄuëØ¸ø,·4¢ßÍ Õ"ô=˜tÄüTbx ­éþ› ÎÇ}ÍV$_}¾úüï‹yZ±­ØV¬^}½úzõ£"£"£"åqò8y&üuàëÀ׊{7îݸwã~ö§» Ý„n¯éàÂÁSc»FN¸½qâ>ÉßevµØû"רåM™¸v¨xBo¯Ù sKsKsK>Oà0{?JÑ”¢)ESÜsÜsÜs¸7Üî*‘ðvv;» xð2àeùòòååËQaøW^Yxeá§³Ô®u»ÖíZ£2𣠀 Ã.Ã.Ãîbë‹­/¶þšˆîz´‘ì¼QÄWM•¾ŒfÆWMè›ß8BzsŸ?ëæyÅáëÅ]t}е¬qYã²ÆèuÕ(©(©(©ß¾3|§E'‹NT‰„Ÿm|¶ñÙÆŒ;3vÊïÊïÊï¢Â𩲉eË&*NNÀ…€ Pøæ?Yæ—Í/S:&%»,¶ Qî÷½>14Ô¤XÕyúóôçé+ëHöì!ÙCl?Ø~°ý0ÝaºÃtUžSe§ÊN•…/ _¾LV$+’ýn¾³ÝÎv;?s¥µ´´´MÕ¬!óFæÌìCö!ûðkºÖniÛ:-^ßzx÷ð‰)ž‚§TÍÄfŸtï6ƒ´y}îÀ(çá»®o¿âkV«~Zý´úéõõuQ«è'Ðs%çJÎyû{û{û¯¿jüªñª%։׉׉}‡(Ý_º¿t?* ÿ#OçÓ»mí¶µÛÖO'gnÓ¹Mç6EyàGA ?ŒÜZn-·nÜ*¸Õ·FtW‡\z¦ÓÖ§«ëvÃ'‰{L7Èw$Úšÿó}Ao¡UT#³Q~ÏLž?égßþRýo]ÏÅŒ‹3’s’s’sÐÙê lMÙš²5‘æ‘æ‘æw[Ümq·…*‘ðÓQOG=•V'­NZ™T&•IQáßYä´Èi‘Óç$Ï8Ï8Ïõ€ïc<Ãx†ñ Å``e+a½^Aˆr¿õµ\æ«ÑGYܸ%pKà–¯ïNÞ¼!yC¬}°öÁÚùóçªöºsèΡ;ﯿ¿þþºô¹ô¹ôymjé<é<é¼Ï\ùfû›ío~Õª¼_x¿ð~Ñ6¸mpÛà¯ïZ›m­ÿkù×üUZ¶¹·¹ª®¾<;Ý}óŒ ß7Ÿeý^n›õøÅzÓÂñOoŽÜ¿ßížnm}ë,ÙÛÛóøüEñO Ê.”]ð[î·Üoùæ%›—l^¢ÊQbi£¥–6zvéÙ¥g—Š/,^ˆ ÿÎ’§'OOþÌßËËËPøQÀOQ¾´|iùR?K?K?Ë3?ˆ¾¶öÇk»®v<ÿ×õGF1ç/ŶÕÙ{~½sÖ\õ÷¿0ôÂÐ C£G>Î_æ/ó—ÑÇj=c6å6å61ö1ö1ö6 6 6 ªtÿQØ£°GaÉ’7$o ‘ ‘ A…V»¬vYíútÎu9×å\>˜æƒQø>Åë‹×¯WÌ1''"Öýú×+Gö7j­XÉ9æ<˜ó@õ~$$$?±bÿÄž²¢¬(+Už=Í÷4ßÓüí¥·—Þ^ª˜[1·bní˜êwyïòÞå)nïëf¯›½nök×&[*[*[êdîdîdÞªc«Ž­:¶PY—K?¶J½uÈÉs'÷Evšª~thf‡²ž¥ÝZ·éÒâ¹awÃî†]iƒÒ¥ pä¬Î*ˆ ¢‚xkÿÖþ­ýžI{&홤Jß©ÝÔnj÷ý'úOô >|(ø€ ÿ>®¿¼þòúKÅ©Èm“Û&· ê? `øé¤Ý¤Ý¤Ý>Ä|ˆùchjhjhz¦Ú°n;ÜvxÊü”ù)óycÞ˜ÇÕ~5ùò Š Š xãxãxcGGGUfÙqfœ™‡‡éxéxéxT¸ö)?U~ªü”b÷_¹½r{å†ú€êî%ÜK¸— ,(]ÿ"r–ÂÝ/¿Æ8n𒝬†ååå?£wÅl1[Ì>s|æøÌqéø¥ã—ªtKØÍÃ6Û<Ìo–ß,¿Ye§ËN—®‰ó|àå—>Z”ï+ßW¾¯ú¬SÞEÞEÞÅç¨ÏQŸ£Ä$b1©Eµ1nиAã¹Ös­çZ¯üFùò8NÖàs¾R_©ï{—÷.ï] >¬ÊlÌ7™o2ßäÁì³ÌÎëš×5¯+*\[ Ü;pïÀ½ŸvrÐä ÉA¨ üX€à(¨SP§ ÎÛä·Éo“¯]3ºfT5q¯±±qä†È ‘Êö”í)Ûƒ^ÔòÈßIßIß%-OZž´Ü¥»Kw—îªÌÝC»‡vcCbCbC*zUôªè… ×t1ÂaŒP±×9çrÎåœC}@ur\  {4ìѰGŸ»NtiTÿΈx•Þö¹È'B£÷À1½Ÿ¶uÿÌ—ëªw¨^Uv³ôdéÉÒ“>[|¶ølYwb݉u'T {V5^ÕxUcooo›’Ã%‡KWçI–]–]–]þ̳NÖ¬ ¨þ{bnÓܦ¹Mg:Îtœ)|,|,|\5qï´àiÁÓ‚-Ó,Ó,ÓÒΧO;£bí&«UÈ*Â÷…ï ßwºÏé>§û¨2?ÓL?0ý€íÛ¶²;gwÎîŒ ×ti‰i‰i‰Š½¾/¸/¸/@}àÇB ÕH¦Y¦Y¦Y¨V¨V¨ÖÓ¡O‡>jÑÞ¢½EûóåçËÏ—9œ»ÔçRŸK}î-¾·øÞboooŸ¨ÝQ»£vç•å•åá*ðÿÿ@n/³—Ù§ÖO­ŸZÿÉ™'gž¨ô+ÖyÖyÖyQ!Q!Q!e©e©e©¨pÍb3ßf¾Í|ÅÎògù³üYÔ~”È?#ÿŒüSÙ)~»¹:£#îU|Ý}uéÑþ(«[qXqXqدílù†ò åâââ·ŸÙ~fûUÂîw»æèèX4¢hDшê3ÃaaaŠkö1ö1ö©ÁwQŠ#âˆ8Â¥™K3—f'üNøðú }…¾½­{[÷¶þr¿º>ìú°ëÃyóçŽ{PIž,O–'GDDè©é©é©µºÜêr«Ëßw”Po£ÞF½Í¨;Qw¢ÒƒÓƒÓñÀšƲIJIJD±³™e™e™8s?`ø½ ß(ß(ߘ~2ýdúI7o<Þ¨ ßnt»ÑíFŽŽŽ¥çJÏ•â*ÒjªÂ®Â®ÂN±ƒÞ^Þ^Þ^¨ü ×%×%×%JŸ dî1á!BßÊ×St¾AY­Þ®y»æíšêÙei#i#i£w-Þµx×b¿Æ~ýªDÂD*‘J¤>º÷èÞ£{ù×ò¯å_ûUÛubø‰á'†æ6æ—K/—^ÆÞ ð ´ym^;¾_|¿ø~†¹†¹†¹]Sº¦tMù¾£Ä5CÖ YsÓý¦ûM÷”™)3SfòÅ|1_Œ2WO£Ç7zܧ%%%Deàg@ ð¿êòuùº™ñ™ñ™ñ^y^y^yªDÂ7e7e7ea›Â6…m*iZÒ´¤) \ÄOŸ?U±_YL“Å >ðSÜâoñ·¸X.–‹Uv*?ÔúÞ®I9¿sôk×Açð(^Y}Œ¯_5¾Z³Ú.[&[&[ZZZrìɱ'Çž¨ ÏΚ5;Ëqšã4Çi9ž9ž9ž?{ýr#¹‘ÜHq%KO,=±ôvk€ …OáS’['·Nn}}ÓõM×7 È? ÿûŽ=·÷ÜÞs»cÄ1 ›6'læíx;Þeþµ²¦fMÍšªØ/Ë%–K,— >ð3 øÙÃïá÷ätÎéœÓÙ'×'×'÷láÙ³…ß ›¼6ymòú}½÷õÞ×+Z[´¶h- \õxÞÿÌÍŸ»ð]ø.¨ü<Å Š/èEô"zÊNß϶z=iðïýÚL8×h”²šltÜè¸Ñ‘çãùøš>òíòíòí¯|¼òñŠvºvºvº*‘ð¤û“îOºO÷žî=ÝLÓLÓLÓ»ÚÈe‘Ë"—)~gqÏâ°GüeV]RÓ¤¦IMkžQ7£nF]ÔªRÂë„× ¯¿|‚þrÏ}jC{òkýųûԦзx¸w·Y¯|.ÔéU¦lÛgÎ0œaXº·toéÞßn8ÜywÞ=±^b½ÄzÆ»wïîݦw›Þm¾/æéOõ§úS¦”)eJ%O:žtœæ£ùèÿÇ$¼„ÿÌS«©"ªˆ*Âþ PäÏž;ÜIÝIÝI}îÆ¹çnT%>zøèᣇCg„Î!))‰ ÿ€‰sŹbÅj_ïw½ßõ~¨ü<€~¢Â¢Â¢Â¢àÎÁƒ;o3Þf¼íû"ás›Ïm>·ùUÁ«‚W9wsîæÜåuy]^þVõê?ÔW¬°\G®#×A} ê%Å$Å$Å|ù¤¼Æ¿ã]»tHéóˆ™fUӣ߷«-½'Îÿòö’ƒÉÁäà2í2í2\õÿ«à+øŠ”7)oRÞ˜ššªÉÕäjòï‹yºLí2µËÔËo/¿½ü6N'N'N§ò¡'Ÿ~`¬M¬M¬â÷>‰{÷7¨¦ êÔ-¨ëzÕõªëU‘¦HS¤©J$¼ßÇïト "ˆ¨¬¬D…¿•Ói§ÓN§k›”“”“”ƒúÀσ Jß*¾U|+ô|èùÐó7¬nXݰ:£o™·Ì[–¥•¥•¥Å÷æ{ó½Qaed†2CÙgnÓí¶Þm½ÛzÔ~­\‹\‹\‹Éî“Ý'»ùt¼©ï¡‚ám¥¾ 5tkJè›ûÊ#aFèž7ËvöŸóå­Û{`ï½dZ2-™¦âkddi•h•h•8îÖ¸[ãn}gΓÐ"¡E‚n]ݺºu£þú7êß‹Ç/¿x\ñ Ê Ê ð°€£è|Ñù¢óŽŽŽ‹þ\ôç¢?U‰„·©oSߦÐ! C@‡òþåýËû£Â_67ynòÜäOkØõ¿®ÿuýOâ“ø$Ô~À¿XéàÒÁ¥ƒÃ£Â£Â£,žZ<µxªJ$ì™è™è™˜Ñ7£oF_ùeùeùeT¸RŠcŠcŠ£bÅRϦžM=‹ú@u ‹”EÊ"ùò9äó5'â…ú—ƨUÏÐW&ö} qÿòí}—‡Nýšm¹7íÞ´{Ó0ªË6È6È6°s°s°s˜!Ÿ!Ÿ!oñƒÌ¿8ÿâü‹¨0@MWTTôâä‹“/N®^»zí굪Ö\;píÀ—F/^•ª—ª—ª£Â• zô.è­X1Ã;†w ï >ð³!¨vÊ.”](»Õ8ªqTã»vwíîÚ© »Ýq»ãv'Õ6Õ6ÕV–(K”%þžU},,,W¬,\. ÇÔ@uãyÉó’祯?oRï?Ÿa»sÊ<¦Ï¸ó«Bߨ?½¦6;4kͼÅ_³æAõÕT/J%Š¡ã?OÞÙ¼³ygŽ{8îḅm¶YØF•°çàŃ^ –˃åRC©¡Ô¨ñ?¾){SöÆ¿•+ÿV[Žo9¾å¸*G‰Åï¿_üÞó½ç{Ï÷ÅÿQüÇïYU×D×D×DÅúÄñq<î£?`€ ü}ùûò÷±-c[ƶ´=h{Ðö *‘ð£9æ<š“Ü:¹urkÙß²¿e×îêÉ)9%§>S‡†>jˆé€ê,?/?/?ow“ÝMv7ùú“ï“tGÆvêz§Ó©)#‡'¬z°~êÛ÷Æù;Ïžúá£ÍàÉ[.ÖÙs\ív—>·òÿúš.7]nº\ÖTÖTÖ]®z… 'NpÛç¶Ïm@'Ð ª„=»òvåíÊ{“ñ&ãMFEëŠÖ­Qáï“î–î–îVYUß§¾O}Ÿ¢&ð«Tœ¨8Qq"P( ”ìeö2{UŽâqâqâq}û<ö)8^p¼àøïPCQ°(XüiZõoÕ¿Uþ$’?‰ƒŸ 0@Íü¼°¢°¢0¾$¾$¾Äi€Ó§ªDÂN^N^N^ t@KÛKÛKÛצZ¥«§«§«+nuRVRVRf jŠ6m>Ú:::|ß)ø©ÃFgwzpP¾¦õ€”; O­9É³Ìø¿qÓ—<Žž¾òÓˆ÷}ªu›IÚn7®´Vÿëfó#‡íh°èa¿‘CnõÛØîä÷}úÞµ{×î]›¥™¥™¥‰nV7ÅæÅæÅæÏ·=ßö|[û6íÛ´Wé*áM75ÞÔØ×À×Àנ쟲ÊþA…¿,sJæ”Ì)-4Zh´Ðø´’>3}fúÌD} :J ¥…!tBN>œ|8Y•£ÄûüíªLŠˆ+"¼ò½ò½òKÆ•Œ+‡jJ'C'C'CYõ¼{?ö~Œ*Au#ï"ï"ïÑ<¢yDó3jgÔΨ©r”˜6dÚiCl"l"l"²œ³œ³œkðO ŠÛååå‹Éª Ö’ùÉüd~©L*“ʸµukëÖV•HØš´&­É¨íQÛ£¶—¹—¹—¹×€SyòætÌé&j‡Â…= {XfXfXf í3´ÏÐ>¿*î]8jᨅ£žh?Ñ~¢ÍOá§ðSКżµykóÖŠÍÖÈÖÈÖ(7/7/7­÷ZïµÞ«V;¬T™v»Š]åÞÔ½©{Ó¸¸B<“×_¥¿J•²Š=ïó¼Ïó>¨T럿är¹\}$úHôý¡úCõ‡¶iÒ¦I›&ßw”ã6ÆmŒÛí²Ûe·ËÒW¦¯L_YSê°Hk‘Ö"-Å-’GË£åј¨€~§ÈÈȤ¿OŸþÞSâ)ñ”¨ [®±\c¹&b^ļˆy¥‹J•.ªnÛ›y5ójæUÅ•' Mš0óµUž0O˜'tëæÖÍ­ÛÎ;_ì|ÑíA·Ýü¨ wÔ€QF 8ÕçTŸS}ü¦ûM÷›.[ [ [€Ê×tÃâ‡Å‹ÿ´×ê×Õ¯«_WöõÒqÒqÒqïœÞ9½s:°èÀ¢‹T™+ÁÁÁ—h—h—èüù3ògüž]¸{1öb¬²*yö8ìq³ 5†1oÌÇ[Ç[Ç[_I½’z%µ;ÙìN~ßQbðŸƒÿüç A7‚’ý’ý’ýø<>Ï«>›[’^’^’®¸òS!§BN…` *!ø½µæ[󭳆d Éâ½Û{·÷nU"á›ôMú&ʇò¡|ñ‡âÅ~íÆymõÚêµUqÒÆÒÆÒÆh>üÎV'¬NXí=Ç{Ž÷œ‡óÎ8ßn‚Ý» ö#íGÚtmæÚ̵٫e¯–½ZVlWlWl‡ŠÕnééŸ -¬ÆY³ú†Û5ËNËNËN‡]»vá¸ïqß㾪DÂæææ68lÈYœ³8gñïÓ‘+‚+‚+e•q p p ÀÜB”ÍgóÙɺɺɺ74ohÞÐD ¢Qßw”èѰGà ¯®¸ºâêŠøŒøŒø ÞŒ7ãÍ~ÕÆ½ðáÿÂ_qá „ãפ J!€ÿuŒ?ÆËYž³5Ak‚Ö„ÿybåÂ!…C ʇ x/ˆÕŠÕŠÕºøöâÛ‹o;’ÉŽßyKØá¯†¿þÊÜÆÜÆÜ&Õ#Õ#Õ£öuçú×ÿ¸þ‡² ¸Lr™ä2 3 µOÖѬ£YGm6Ùl²Ù4õäÔ“SOªòë#gÎ8œqˆ`"˜F®&W“«ýØÕ–%–%–%*~î¡c‡Ž:†nBÕC ß®„/áK V¬(XñVúVúVzùÅå—_|_$¬/Ôê ,X·'oOÞþ-ÿ–«Ê}vúìôÙ©øYåååh @¥œ.9]rº(†f]ͺšu­¢Eøñ~¼_â±Äc‰ÇLÖ™¬3Y×ç@Ÿ}|_ÌÓ7·onßÜk«®­º¶*©ARƒ¤|Â×ø§ošÍ2›e6KÙV;/u^ê¼ó µ[®~®~®¾sSç¦ÎMÿqúÇé'U"á#[Žl9²%Ä2Ä2ÄRÖXÖX¦ÒC‚üÅþb±â§¼?ûþìû³èT=Àðé©©Ÿ>|Þ¤‹I“.ß k;k;k;¿Úõj׫]9«rV嬪¼1õW-ÂwçÝÏN9;åì”OßÓº¹usëæèÀ§ì#í#í#C‹”])»Rvý²eÉx/KÕHÕHÕ¸õøÖã[‡-¶xØâï‹y:u êt)äRÈ¥¸q âð«øUüªšØ/‹ýû-ö+ÛR‡;vbªá÷QÀ°ìã•W>^I“Ƥ±*‘ðÞĽ‰{­­­+L+L+L¿~%[r·änùÌ-î¥nR7©:U0üDššš¡¡¡7‰›ÄM⌠¼µ¼µ¼µ²†e ËÆ·æ[ó­?17/7/7Oñ{£4¢4¢4ЀOÍòå;Ë÷Ó¸¢W½^õzÕãKùR¾´º­6ãYƳŒgw_Ü}q÷Åø’ñ%ãKT {tä:ry¤G¤G¤‡ü¾ü¾ü~MéÚ³;fwÌ”m—­–­–­f~OEEEž»=óCÝu¾ë|×9ªYT³¨feË.–]DYï³Þg½O±zô.è]Ð+É)É)ÉA•ªæ2s™¹¬HðƒøAü Ô§RyDyDyÄ› o&¼™°óÕÎW;_©ö0ƒ˜AÌ §³ŸÎ~:»P¯P¯Pïg¯ßuµëj×ÕÊÖc²ÇdÉtàûÈÊÊ*îY-‹Zµ,ú¾£Äè•£WŽ^y»õíÖ·[§å§å§áÑEŸacc£¬†!âqˆUª„j¼w÷ÞÝ{wO1†,ÚQ´£hGF¯Œ^½ƒÏø­K?ŸÎOß³|Ïò=Ë•Õ-¸gpÏàž˜RÀPãùùù|=‡‡‡}æK{ó½ùÞY{²ödíñ.õ.õ.U%¾a{Ãö†mè…Ð ¡Š-Š-Š-~Ïú—'”'”'˜®4]iºR±J:::Å:Å:Å:˜U€_Ëkׯ=ЧË?ø8àãÔç[ÉîËîËîüað‡Á'ÂN„S%žÅÌbf1öööÙåÙåÙå?jî1î1îJ¯™»d{Éö’-º ðõÎ\8sáÌŽ©dOÉž’ÿ½¶¾/ä S¦4Lixsî͹7ç~8øáà‡ßw”èv­Ûµn×®l¼²ñÊÆøuñëâ×ñ¼oðÛ5à8œ?¾úþéû§+«U`l`l`ìï<¥€ +ÞR¼¥x‹bè¼4xiðÒ¯z ]^—×͹“s'çΫœW9¯rέ9·æÜšï‹„÷ï1ÞÜ=¸{p÷Â’Â’Â’ß§k+ÖV¬½á|Ãù†³be´k7Ön\XXˆ¹øUV´\ÑrEKÅårNÎÉ9ÔGuò{ò{ò{‘®‘®‘®:…:…:…ªDÂêO¨?¡þÝ7wßÜ}“ñ"ãE†JÏî}vúÙég§•}Ö…1Æ\ƒü?4äò ÷ n·ƒÛñõo“n’n’nrgãw6Ž]?výØõßw”hýoë[ÿ«g£g£g=>z|ôxy¾<_þ{Ü>Ú…wá]µ>ÔúPkeõy£ÿFÿþï9ª€  íÚ+´×gnþܾ¨}Qûï|Ó>„ÉsÎsÎsxð<à¹>¯Ïëóß _î|¹óåÎoϾ=ûölAÿ‚þý+¼¶v¤"±"±"ÑLn&7“+«IÑ_Eý…é¨JeÝ˺—uW<9~4ëhÖÑ,Ôç'ZɯäWÆÕ‰«Wç’ÿ%ÿKþ¼:yuòú¾°g؆a†m¸åuËë–Wê¼Ôy©óx/ãe_¿ïžÞ=½{*{ÿó¶çmÏãj`¥¢££÷÷‡îݪòÎY©Y©Y©¶smçÚÎ2-dZˆ*¿>rÚê´Õi«p¯p¯p/y3y3y³ZÛ’(>Š:z4ôh¨²jŒ 0òw›UÀPƒÝ¨£þúÿ¸º|èò¡ü1å|9_^p½àzÁõÀ;wî6Üm¸ûû"a½kz×ô®ùùùåÎ7š÷á}xŸÚÔ©¦TSªi1ÝbºÅteu(œQ8£pf jøvñíâÛEñ´xèÑУ¡GQŸ*õžÏ¿Oú#é¤?®i^Ó¼¦Ù7¾o|ßøï‹yúœís¶ÏY“&;Lv$žN³Šj¤i‰´Dª+¾ xð6 Š~Æ\]´ºhu0Ìó&>&>&>ß Ÿ­8[q¶Â§È§È§(§[N·œnü~¿§¦÷Hê'õ“úÝ>xûàíƒÊ¶½`{Áö‚í˜g€Ÿmãì³7ÎV1·0·0·þxøãá¿/æé¸¢ãŠŽ+.†_ ¿{(öPì!žà žPüDßA¾ƒ|){ŸS»Oí>µ›/ãËø2t€¿Áßào´¹Üær›ËŸî)„;áN¸WÍ l l lŸ y2äÉñññU"á=¾{|÷øÖ ¬X¯bCņРµ£QgGžyv¤²­öYè³Ðgáï0°€ F ß¾;ü3×àÌ+˜W0ïW­ª¤qIã’ÆaëÂÖ…­»Yr³äfÉxyye&f&f&òuùº|ÝšØ)ÙHÙHÙH+G+G+Ge[šo”o”o„©øÊsÊsÊsO‚kmÓÚ¦µ õ©Î2Õ2Õ2Õ¬o[ß¶¾=qÁĨöœ+?W~®ú|hmXÀPÔ­-[[¶V1> hÐ. ] XJYJYJÔ»¨wQï¬3¬3¬3T‰„ŸœrþÉùÔ†© SÊd2‡ê¼í²,Y–,˦M›ʶ(78787sð£ì³kÌ®1Š'¾+**PŸš.jþÔü©.¡.¡.¡c±ÀX•°gMË5-×´TöŒ90æÀÞ€7à Pyøäò¹|n÷Ý?vÿŸ+€g?Ÿý|v ø•ˆòYå³Êgl ذm›ï6ßm¾ª%4×i®Ó\çAxDåC‘ª._ ¾¬l‹<´=´=´kߨ"€&òväíÈÛŸ¹~”ÍcóØš¸E=+zVôŒ Š Š ²s°s°sP%véãÒÇ¥OÒª¤UI«¤ÁÒ`iµ SåÓäÓäÓìúÙõ³ë§l+r’r’rp›A•H÷I÷I÷)žìÞvÛým÷QŸÚª0º0º0Ú½¾{}÷ú¬„•°’?Ô^v/»—åIžäIT~ÉO’Ÿ$?QÜû8öqìS#M­H­H ²²²ÐÒÑÒÑÒQå˜ |"|"|â:Òu¤ëÈüÐüÐüÐê¹ÕW¦_™~eº²­p s s «Ms‹j˜»­ï¶¾ÛúÓ°P{¥öJ핼?ïÏû׎m”ޓޓŽK°M°M°u&IgR•HØñªãUÇ«ñ×ã¯Ç_¯®®¨‘°\G®#×q˜ê0Õaª²•gçeçeçaæ¾Oð¥àKÁ—Os, X°õù}”Œ)S2Æ+Ã+Ã+cÅ›oV¼Q=^$X$X$àð ø¨0Ôn7œo8ßpVÜ rœrœrœjÇ6ÊfËfËf‡ê‡ê‡êkt¬Ñ±Fª漜órÎKÇÇÇ€Ü:¹ur«Qilflfl¦låÛ=n÷¸]íè)`¨1ÊmËmËmcÂW“^Mz5©vo»l°l°lpòÚäµÉk½{ôîÑ;U"a›T›T›Ôçççr»r»r»_µ]ò@y <Љp"œe«Í*Ê*Ê*Âü|«ÿ"ÿ‹ü/Rñwù”ò)åSPŸßYÙì²Ùe³}Ïùžó=·Q¶Q¶Qö}1ÏÎm;·í܆zBí6(bPÄ ˆO'ÒáI‡'®Ý[-_,_,_üqìDZÇjOÖž¬=Y•Hxò¹Éç&Ÿ»ßã~û=222ñL M M •­ÖeŽË—95½ƒ€ ÆˆqŠqŠqúÌí‚5r4r4~·jÈ*d²ŠTYª,UötèÓ¡O‡ª ßm{·íݶ‘w"ïDÞ©|Êr•nLs¾9ßüæÍšÊV˜™Ÿ™Ÿ™½àë)žÔ^{kí­µ·P™ß‡2¯(¯(¯èõ¤×“^OºàtÁé‚Ó÷E—6\ÚpiÃÛVo[½m•ŸžŸžŸÎçò¹|îw®Íƒ÷à=žN}:õéTeŸ˜j–j–j†6À¯•¾/}_ú¾·îoÝߺ[/±^b½d?·ŸÛÏMu˜ê0Õ¡*cÝ.w»ÜírwQê¢ÔE©Ç Ž{ºçéž§{¢^F½ŒzY°£`GÁù>ù>ù>t @Åý+­OZŸ´>¨ê²Ù‚l]/»^v½fôžÑ{†J÷68ezÊô”i¸Z¸Z¸š,M–&KS©ûmÛWú|_$¬›¢›¢›âOùSþTn~n~n~e¬û ë çÃùp~ý<ú)û””)R uð«TM¸;»|vùìò#Žl8²ÁnŒÝ»1ÁšÁšÁ𙑙‘™‘®®®è€ê¦Õ›VoZ½O÷¾þýú÷ëß•ùyòä-È[ðÀîÝ»SL]0U•£å¡ýsèŸ÷k߯}¿Vê$u’:}ëzì]ì]ì]”½¿å,ËY–³ªs=@µ–´2ieÒÊÏ<Ö9Ý9Ýõ©JE¦E¦E¦ï·½ßö~Ûµ×v\Ûñ}‘ðÙig§æ³Ëg—Ï®ì°ì°ì0~=¿ž_ÿÿøø,>‹ÏzÖàYƒg ”½sò¿Éÿ&ÿ‹N@ÕëèÑÑ££Ç÷Ãî »7ìÞ¦¼My›ònÜ0¸aà£ë£ë£›˜”˜”˜TrµäjÉUÞ’·ä-Qg€Ÿ-×9×9×Yq?5c:Æt êS• ëÖ+¬÷¤èIÑ“"º ݆n£J$¼Ûf·Ín›·šo5ßjVŒ­[1ökÖàtÛé¶Ómeïy«Õ­V·ZUÏê!€jÍ¥—K/—^ŠQŸ|¯|¯|/êók•L*™T2),$,$,ÄÌÔÌÔÌôŒ ¼¶{m÷Úži”i”i$Ï“çÉó>ó‘e|_ö<æyÌóeï“Ô)©SR'tªÒ²µËÖ.[ûi0Ю¬]Y»2¦-Ó–i««£«£«óxé㥗~Ôù¨óQ'¿M~›ü6²RY©¬Õ¨>œ9gΙSŒú’v$íHÚúüZÅ;ŠwïxVø¬ðYáÒ[Ko-½¥J$¼Éo“ß&?¿†~ ý–í(ÛQ¦´¿O?<ýð´²÷¹þîú»ëïª[­@5%s9Èã½'‘O"ŸD¢>ÕSé£ÒG¥>¶ÿØþcûÛ–·-o[ª {Ìó˜ç1/}\ú¸ôqrZNËéO?ËÛÑÛÑÛQÙ÷&Ä$Ä$Ä #ðõæ©ÍS›§ö?ÏÕþ»Ëß]þæ£ø(> õ©v?š”š”šøÜ÷¹ïs]úºôuéªDÂ+ÍVš­4óÞì½Ù{sÉÚ’µ%k?ý,WΕså”}¯Éq“ã&Ç«Oe@5•Ú µAêgnö›:6ulêXÔ§¦(oYÞ²¼eô˜è1Ñcî½wöÞYU"áÇücþ1Ÿâ”â”â$»"»"»òòà˃/*ûúxÓxÓxSt¾¬@«@«@K1Ø»l{Ùö²-êSc~=X~°üà뮯»¾îº=}{úv•"an7‚á~Þý¼ûù¢vEíŠÚ¹usëæÖMÙ×_íµÿÕþÕ¡€ šzrîɹ'ç#=™§ÌSæ‰úÔ\³+fWÌŽ7¿Åäseses“Ÿ&?M~êºÂu…ëŠG<‰xñ€JE%E%E%ŠÞù˜ó1çcPŸßü€ü€üÀGß¾}ÏÍ:7ëܬ?vüØñcU¿E€ ÚñòòRŒî¤‰ÒDi"êó›þ@ÞZÞZÞ:M&H‘|"ùDð–à-Á[ž4{ÒìI3ÓŦ‹MŸ©BúVúVúV×S®§\Oy™ÿ2ÿe>•Š7o,Þxi襡—†.=µôÔÒS|xðá*SST”T”T”d­ÈZ‘µâ}ÿ÷ýß÷·Ÿk?×~îQï£ÞG½çšÌ5™kÒ¢ µ:Ùêd«“Ý&ºMtÛzcë­7ª¾&€à«ÈÏÉÏÉÏ•”–”–”fvÈìÙ!"3"3"Ó{‡÷ïV÷­î[Ý?Sånß½}÷öÝ篞¿zþ*Ü8Ü8Ü8£GFŒ%l [ÂÊgËgËg£w5ì'PS¹©Ü´ ª ª *Z+Z+ZË}›û6÷mŸ_|~ñù’­K¶.ÙÚm_·}ÝöUe¸;¥Á”Sì+ÞW¼¯øîô»ÓïN“ò&åMJZZZZZZ¹F¹F¹/ãe¼ì×V0ÀïÍ”7åMË Ê Ê r¥¹Ò\iœkœkœë민à4ßi¾ÓüK½.õºÔ«*c]“ñ&ãMÆ»Nwî:=H$ ’%mJÚ”´©@·@·@WºRºRº’Ïä3y< æˆããø¸Ò’Ò’Ò’”õ)ëSÖûõë?Öb‰Å‹%;âvÄíˆë9Ös¬gUƺý†ôÒoȪüUù«òZµ6jý\ÿ¹þsý¸µqkãÖóøü€šRfÀ¿µªŒuõ:éuÒëd×Ô®©]S_;_;_»˜†1 cæ´Êi•Óª,¨,¨,ˆŸÁÏàg /µO‹©-¦¶˜Z•á®@G #Ð9}âô‰Ó'œCCCÃN„;‘£“£“£#Í•æJsk_üÖ~T¸kÑÇ¢EOGOGOǰü°ü°ü´ä´ä´äbÝbÝb]Yª,U–ŠjüÎÆE‹¥z¬;îŸã^ì2Øe°ËÀò±åcËÇS¦LIíšÚ5µk™¤LR&ùï…à·vÕîªÝU;e±îÕóWÏ_=ïRÏ¥žK½@µ@µ@µÄ&‰M›ä›ä›ä›TDWDWDó!|‚JÀ— ;v6LY¬Ûä‡I“eS–MY6åòäË“/Oö0ô0ô0Œ™3?f~¡f¡f¡¦ÜGî#÷A%¿ 0ÀoíÝŽw;Þíˆ:u(êPVIVIVIYŸ²>e}øú|}¾>ê?Šß¿%~KÎ;œw8Ò!¤CH‡,y–š½4{iöÒì¡ÙC³‡fWÍ®š]5;kvÖì¬ÙA³ƒfÍvší4Ûi¶Öl­ÙZ³¥fKÍ–škþ­ù·f3ÍfšÍ4›h6Ñl¢ÙP³¡fCÍ?5ÿÔüS³®f]ͺšu4ëhÖá䜜“s\WÁ•qe\WÌsÅ\!WÈry\—Çåp9\—ÅeqY\:—Î¥s©\*—Ê%qI\—À%p \ÇÅqÑ\4ÍEr‘\$Î…sá\Æ…qï¹÷Ü{î÷Ž{Çr\ ÷š{ͽæü9Ο{Žâ^q/¹—ÜK΋ó⼸gÜ3îçÁypœçƹq¹ÇÜcÎ…sá\¸ÜîçÈ9rŽœ=gÏÙs¶œ-gËÝãîq÷¸»Ü]î.w›»ÍÝæ,8 ΂3ãÌ83îwƒ»Á™r¦œ)gÌsÆÜUî*w•»Ì]æ.s¹‹ÜENŸÓçô9]N—Óåt8N‡;ËåÎr§¹ÓÜiîw‚;ÁãŽqǸÃÜaî0w;Èäp¸Ü>n·ÛÃíáöp;¹ÜNn;·ÛÎmá¶p[¸MÜ&n·ÛÀmàÖrk¹µÜjn5·š[Á­àVp˸eÜ2n1·˜[Ìiršœ&Çr,Çr4Gs4'æÄœ˜rBNÈ 8'àp ¸ÜeŸ°OØ'ì#öûˆ}È>d²N¬ëÄ:°¬kËÚ²¶ì}ö>{Ÿµf­Ykö{‡½ÃZ²–¬%{‹½ÅÞbo²7Ù›¬)kÊš²&¬ k±F¬kȲ†ì%ö{‰½À^`/°z¬«Çê°:¬«Íj³Úìiö4{š=ÉždO²ÇÙãìqö{„=Âb±‡Øìö«Åj±Zìv»‡ÝÅîbw±;Øìv+»•ÝÊnf7³›Ù ìv»Ž]Ç®cW³«ÙÕìJv%»’]Î.g—³KØ%ìv»ˆ]ÄV’°VŠY1+fE¬ˆ±VÀ Ø…ìBv!;ŸÏÎgç²sÙ¹ìlv6;›ÉÎdg²ÓÙéìtv ;…ÂNb'±“Ø ìv«Îª³êìv ;†ÉŽdG²ÃÙáìpVUcÕØÁì`v0;€À`û±ýØ~l¶Û‡íÉöd{²ÝÙîlw¶ Û…íÂvb;±Øöl{¶=Û–m˶e[³­ÙÖl ¶Û‚mÎ6g›³MÙ¦lS¶1Û˜mÌ6`° Øúl}¶>ûûûÃ3<Ã32FÆÈ˜r¦œ)gJ™R¦”)bŠ˜"¦€)` ˜\&—Ée²™l&›Éd2™L&IcÒ˜&…Ia™D&‘‰gâ™x&†‰ab˜(&Љb"˜&‚ùÀ|`>0¡L(Ê3ÁL0Ä1AÌæ ó† `˜Æ—ñe|Ƈña^0/˜Ìsæ9óœñd<Oæ)ó”yÊcÍX3ÖÌæs‡±d,Kæs‹¹ÅÜdn27SÆ”1eLÆ„1bŒ#Æ1d ™KÌ%æs¹À\`ô=FÑatF›Ñf´™ÓÌiæ4s’9ÉœdŽ3Ç™ãÌæs„9Äb1˜ÌF‹Ñb´˜=Ìf³‹ÙÅìbv0;˜ÌVf+³•ÙÌlf63˜ Ìf³ŽYǬfV3«™•ÌJf%³ŒYÆ,c–0K˜%Ì"f³ˆa–a #a$Œ˜3bFĈ#`Œ€YÈ,d2ó˜yÌSŸùƒùƒùCÂKx /‘J¤©¤\R.)—”HJ$%’"I‘¤H’/É—äKr%¹’\I¶$[’-ÉdH2$i’4Iš$Y’,I–$J%‰’8Iœ$N#‰‘ÄH"%‘’HI„$B! “„IÂ$!’Iˆ$X, –J%’7’7’7‰¿Ä_â+ñ•øJ^J^J^J¼%ÞoÉ3É3É3‰‡ÄCâ!y*y*y*y,y,y,y$y$y$y y y q’8Iœ$ö{‰½ÄVb+±•ܓܓܓܕܕܕܑܑܑXH,$’[’[’[’’’S‰©ÄTb,1–K®J®J®J.K.K.K.J.J.Jô%ú}‰®DW¢+Ñ‘èHt$g%g%g%§%§%§%'$'$'$Ç$Ç$Ç$‡%‡%‡%%%%û%û%û%û$û$û${${${$;%;%;%Û%Û%Û%[$[$[$›$›$›$ë%ë%ë%k%k%k%«$«$«$+$+$+$Ë$Ë$Ë$‹%‹%‹%šM‰få¸Ih -¡%¤„”¡D(Jþ•ü+ùW²@²@²@òäÉ?’9’9’9 ‰†DC2C2C2C2M2M2M2Y2Y2Y2Q2Q2Q2N2N2N2V2V2V2J2J2J2B2B2B2T2T2T2D2D2D2H2H2HÒ_Ò_Ò_ÒWÒWÒWÒKÒKÒKÒCÒCÒCÒUÒUÒUÒYÒYÒYÒAÒAÒAÒNÒNÒNÒFÒFÒFÒRÒRÒRò·äoÉß’f’f’f’&’&’&’†’†’†’?%Jþ”Ô•Ô•Ô•Ô‘Ô‘Ô¡e´Œ–Ñt]A—Ñet]LÓÅt!]HÒytGçÐ9tIgÒ™t:N§Ó)t B'ÑItOÇÓñt,KÇÒÑt4M¤?Òép:œ§CéP:”~O¿§ßÓAtD¿¥ßÒoé:€ ýh?Úö¡}húý‚~A{Ñ^´íI{Òž´;íN»ÓOè'ôÚ•v¥]é‡ôCú!íL;Óδí@;Ðv´mGß§ïÓ÷ikÚš¶¦­h+ÚŠ¶¤-iKÚœ6§Íé›ôMú&}¾N_§MhÚ„6¢h#Ú6¤ éKô%ú}¾@_ õh=Z>OŸ§ÏÓÚ´6­MŸ¡ÏÐgè“ôIú$}œ>N§ÐGè#ô!ú}ˆ>@ ÐZ´­Eï¡÷Ð{è]ô.z½ÞNo§·Ò[é­ôfz3½™Þ@o 7Ðëèuô:z5½š^M¯¤WÒ+éeô2z½„^B/¡5iMZ“fi–féJbZL‹i-¢E´€Ðz!½^HÏ£çÑóè¹ô\z.­AkÐôLz&=“žFO£§ÑSè)ôz"=‘žH§ÇÓãiuZV§GÓ£éÑôHz$=’F£‡Ñj´­F¢уèôzÝ—îK÷¥{Ó½éÞtº݃îFw£»ÑéÎtgº#Ý‘îH·§ÛÓíé6tº ÝŠnE·¢ÿ¦ÿ¦ÿ¦ÿ¢ÿ¢ÿ¢›ÐMè&t#º݈þ“þ“þ“®G×£ëÑuè:tJNÉ)9UAUPTUF•Q%T UBR…T!•OåSùT•CåPYT•E¥SéT:•J¥R©T•D%Q T•@ÅR±T,MESÑÔGê#õ‘ §Â©p*Œ £Â¨÷Ô{ê=õŽzG½£ÞRo©·Ôkê5õšò£ü(?êõŠzE½ ^P/(/Ê‹ò¢<)OÊ“r§Ü)wê õ„zB¹R®”+åB¹P.”3åL9SŽ”#åHÙQv”eCÙP6”5eMYSV”eEYR–”%eN™SæÔMê&u“ºN]§®S&” eBQF”u…ºB]¡.Q—¨K”e@Pz”¥G§ÎSç)mJ›Ò¦ÎPg¨3ÔIê$u’:N§ŽSG¨#Ôêuˆ:D P(-J‹Ò¢öR{©½Ô.jµ‹ÚAí vP[©­ÔVj3µ™ÚLm 6P¨uÔ:jµšZM­¦VR+©•Ô2jµŒZB-¡–Pš”&¥I±K±MÑM‰)1%¦D”ˆQJ@ ¨…ÔBj!5šGÍ£æRs©¹”¥AiP3©™ÔLj5šFM¡¦PS¨‰ÔDj"5žO§ÆRc©±Ôhj45šA FPèaÔ0JR£Ô¨AÔ j5€@  úR}©¾Toª7Õ›êAõ zPݨnT7ª3Õ™êLu¤:R©vT;ªÕ†jCµ¡ZR-©–ÔßÔßÔßT3ªÕŒjB5¡šP¨FT#êOêOêOªUªGÕ¡êPuÄr±\,Wˆ+Äâ2q™¸L\,.‹ Å…âBqž8Oœ'ÎçˆsÄ™âLq¦8]œ.N§ˆSÄ)â$q’8Iœ N'ˆcűâXq´8Z-þ(þ(þ(‡‹ÃÅ¡âPq¨ø½ø½ø½8H$¿¿¿ˆÄb?±ŸØOì#öûˆ_ˆ_ˆ_ˆŸ‹Ÿ‹Ÿ‹=ÅžbO±»Ø]ì.~"~"~"v»Š]ÅÅÅÅÎbg±³ØAì vÛ‰íÄvâûâûâûbk±µØZ|G|G|Gl)¶[Šo‰o‰o‰oŠoŠoŠMŦbS±‰ØDl"¾*¾*¾*6Š Å—Ä—Ä—ÄÄÄÄzb=±žXG¬#Ök‹µÅÚâÓâÓâÓâ“â“â“âcâcâcâ#â#â#âƒâƒâƒââââ}â}â}â=â=â=ââââíâíâíâ-â-â-âMâMâMâ â â âµâµâµâÕâÕâÕââââeâeâeâÅâÅâÅbM±¦X³ò/n•61)&ŤX(Š…âÅÿŠÿ///ÿ#þGüxŽxŽxŽx–x–x–x†x†x†xªxªxªx²x²x²x¢x¢x¢xœxœxœx¬x¬x¬x”x”x”x„x„x„x¨x¨x¨xˆxˆxˆx x x ¸¿¸¿¸¿¸¸¸¸—¸—¸—¸»¸»¸»¸«¸«¸«¸“¸“¸“¸ƒ¸ƒ¸ƒ¸­¸­¸­¸µ¸µ¸µ¸…¸…¸…¸¹¸¹¸¹‹}`ÇIDAT¹¸™¸™¸™¸±¸±¸±¸¡¸¡¸¡¸¾¸¾¸¾¸®¸®¸.É“<É“2RFÊÈr²œ,'KÉR²”,"‹È"²€, È\2—Ì%³Él2›Ì 3È 2L#ÓÈd2™L&ÉD2‘Œ#ãÈ82†Œ!cÈ(2ŠŒ"#È2‚ü@~ ?!dB“Ád0H’äò ù†ô'ýIÒ—ô%}É—äKò%éMz“Þä3òùŒô =HÒt#ÝÈÇäcò1éBº.äòù€t$IGÒž´'íIÒ†´!ï‘÷È{ä]ò.y—¼MÞ&o“¤iAš‘f¤yƒ¼AÞ ¯‘×Èk¤1iL“WÈ+äò2y™¼L¤©Oê“úäyòB¡Ð[è-ô>>>z=„§§§ÂÇÂÇÂÇÂGÂGÂGÂÂÂB'¡“ÐIh/´Ú m…¶B[á=á=á=á]á]á]ámámám¡…ÐBh!4š Í„7„7„7„ׄׄׄÆBc¡±ðŠðŠðŠð²ð²ð²Ð@h 4ê õ…úÂóÂóÂóÂsÂsÂsÂ3Â3Â3ÂSÂSÂSÂãÂãÂ㣣£ÂCÂCÂCÂÿ„ÿ ÿj µ„Z½½½Â]Â]Â]­­­ÂÍÂÍÂÍ   ÂuÂuÂuÂÕÂÕÂÕ•••ÂeÂeÂeÂ%Â%Â%BM¡¦PSÈ Y!+¤…´®ücSXI Â…Â…Â…ÂyÂyÂy¹¹¹B ¡†PC8S8S8S8M8M8M8E8E8E8Q8Q8Q8^8^8^8V8V8V8Z8Z8Z8B8B8B8L8L8L8D8D8D8H8H8HØ_Ø_Ø_ØWØWØWØKØKØKØCØCØCØUØUØUØYØYØYØAØAØAØNØNØNØZØZØZØRØRØRØ\Ø\Ø\ØLØLØLØXØXØXØPØPØPX_X_X_XWXWX—à žà !#dD9QN”¥D)QJEDQ@D.‘KäÙD6‘MdD‘F¤iD2‘L$‰D"‘HÄqDCÄ1D$IDDA„aDB„!Ä;âñŽ$‰@â5ñšxMøþ„?ñŠxE¼"^/‰—„áExψgÄ3Âp'Ü 7Âp#\ W•p!\™p&œ G‘p$ì;ÂŽ°!lš°&¬ +а", KÂ’0'Ì sâ&q“¸I\'®× „0!Œ#ˆ0$ Câq‰¸D\ .=BÐ#tB‡Ð&´ mâ4qš8Mœ$N'‰cÄ1âq„8B!‰ƒÄâq€ØGì#ö{ˆ=Äb'±“ØIl'¶Û‰-Äb ±‰ØDl"Öë‰õÄZb-±–XE¬"V+ˆÄ b)±”XJ,&‹ ŽàŽ`†`Š Š ’ ‰Jÿÿÿó‰ùÄ|âââb61›˜MÌ"f³ˆéÄtb:1•˜JL%&“ˆIÄb1P'Ô ub 1†CŒ$F#‰áÄpb8¡F¨jÄ`b01˜@ ýˆ~D?¢7Ñ›èMô$z=‰nD7¢Ñ…èBt!:‰ŽD{¢=ÑžhC´!Ú­ˆVD+âoâoâoâ/â/â/¢ Ñ„hB4"ˆ?‰?‰?‰zD=¢Q‡¨CÔÈr\P!¨TÊe‚2A± XP,( y‚^U3½€jÀ€j‰šCí¶öÂÚ k/(›Ië¥ÖK­—V‡éE P; F PK †ê¦ätÉé’Óʦ±Ó†N:m¨üwíÚ+´W(ûÊÔFj#õk÷ ªø>€Ô€¡º±ímÛÛ¶·²i¬¼Åwå¿G,ŠX±HÙWvSë¦ÖMígÏ0`€Ú0`€Z0T7ì.v»KÙ4>ñtÄÓÕg†Ô€T#ó+æWÌw›æ6ÍmÚfõÍê›ÕgÄ̈™3hÝ uƒÖµ}ÐöAÛý ûö7œö×´¿¦ýµ2vdìÈØÊIèñw¿{ü­~Yý²úåÊiqïåÞ˽WÕl‹lˆlˆlȳ¤gIÏ’v¾Þùzçk G G Gµ‰jÕ&Vö¨ë¤®“ºNªœØÅã[<Îx¹ñrãåÞÞÞ¿ª ¹urëäÖQ6‡•G Å™L|èìì,Ìf ³¾þFµªÔö[¯[Ý«¿W¯~ˆUˆUˆU±a±a±aðËà—Á/õÚéµÓkWù<ãï‹ÖÌ]0wÁ܇&MšT{•ÏC}ú<ôyhåÓvFP÷}«­¼vùõëÖÉW’¯$_©œ´¨aQâ†]ïs½Ïõ>ã÷Œß3~ϯºvùçMB¥Ê'Ûµ±kcצòùÍ•·(÷òñòñòÙ4{ÓìM³^°ZyL¨ÜßÿjJ4%šV^Û››_yõyåÍ+¯§?p<àxÀ§¿@ðc;õ5¾|#ôʧü~ù*gOÙ;´ñnãÝÆûg¬0@í€0@•Òo¨ßP¿¡Ò`&¿e~ËüË÷/ß¿|ÿ룂ʯ2oȼ!ó”½³~©~©~é×¼·š[Í­Vö>­ƒ[·6K5K5KýÖ~Û(bw±»Ø]ªÔök¹v·ÛÝnwû鈧#žŽøòú?íÈׇ•áñ×TækÞ­òYÅ?¶ŸöñÓ§´~ù+æW̯˜ÿ5ï<îÔ¸SãNU~ýZùϘ„Jk/¬½°öÂê×÷Íð— •¿á¢ã¢ã¢ó­{ܲ&Ëš,k¢ì+Ÿ8^y#ú{”›þØ•#¨#¨"•×V~9øÖè÷S•7mþô™¬ŠaÏ—ß¹òúÔ/¯ð[£ßOýÚÛWºv!íBÚ·i_ck‡­¶vø±AQ峜Æj¯Í¸6ãÚŒêÓǪ€gÎ œøc×9hÝ uƒÖ}ý{~ùVÉ•O›J J JüÎý¢9ßœoþå5M?š~4ýGåÂ7†o ß¨ì³æ\šsiÎ¥¯ßݾº}uû*{·…ãŽ_8þÇ¥Ô€T‘S×O]?uýË7 ®šÛ +ûÞeË*–U|ù¹›?{…+߬|³òÍÏxçþ†ý û~ëú?½VøËÏZÎX± cÁ·®ÙÙÕÙÕÙõË×+ÿظòÆÝªô±ò–Å_þ”ʨïGõîgì~‹ýû-þÖw®¼Qöº5ñ ·n'Ü”½Û¶7ÚÞh«úWycö±c-ÆZ(~J÷nÝ»uïö£‚É/oQåíÄ¿þÝ¢{D÷ˆîñåû%üØH0@í€0ÀO'$$ô3â(E•ï£ìSÌ}Í}Í}¿«ò9µ_^á{—÷.ïÿ¿öî<ÞÊqÿ¿áà|œsÒ\ªÝ<Ïó Ý  †ƒ4à8Bdˆ„ŠHœ¢D”Bš )D3E$*Sâ$:¦’$ Ææýûãò{<öù®Ö>{·×Ú{íÕóy=÷ÃÖ}_뺯û}s¿ºïõJö{~g7V‘gz÷?‘þ®bw»«X´†×ºÆ¶‡éŸšÕ3]¾Þôõ¦¯7eg<£ c›ýóïxÈÞ!{‡ìÇL‹¦ßÆ~ûmÌþ~bÛ«— ¿\øå¹{¾FŸ4ú¤Ñ'Åû}™ïyxý{vö|ëä['ß:9Úþgý6ë·Y¿ÙžÃõ¿ßÇ<@î € î.izIÓKšF fÖŸYfýÜíaú_ Ž4÷¹ïÌ}'¶GÌø…´ÿâï_üý‹¬î3ãÐ%<±zd½ßž3³ÿXÀ٠ᢙöä´'§=íˆí–µ[ÖnYö{ÛñÌ~¼šýóÕ½÷þÝûGûìÎSvž²ó”x\éÑŽØ~Nû9íçÙhgüÖÒµJ×*]+Þ¿þ@ÛÚ>Ð6~ã#€¼E,€¸K=+õ¬Ô³¢…ŸLÿdú'Ós·‡æ6šÛhn´~Þåó.Ÿw‰í×ß¿þþõ÷G;b³[›ÝÚìÖÄ ]r÷¹ÃXÀá÷†c{×n^»yíæì¿Þ<'àoŸûö¹oŸËÝóuZïÓzŸÖ;ÂHߟ¬ŽÆåß(ÿFùh{¾®Ãu®ëý+eôžÑ{Fï‰v”¦Ãšk:,ÞWbâT c`0Ä]î5º×è- ø¡ó蜻=¬ülåg+?­‡;Jï(½£tl¾u´#V¿ºúÕÕ¯Ç6ŽÇyÜ:pëÀ­£±ü×å¿.ÿu¢Àá‰ÕÜ=_égx"¨]³vÍÚ5l´¯zõЫ‡&ÎwI„+] ¹K,€¸+Ù£d’=¢…¿ÿ}øïÃs·‡ÅÆ_l|´î뱯Ǿ±=bøÖÑŽ˜~Ä2¿OpÆ{ˆÇyümÜoã~툅W^QxE¢À‰p¾Jô)ѧDŸÄ MËí.·»ÜOÆWqλ{ÛÝÛîÞ–Wºr—X qWh]¡u…ÖE ¤H=š»=Ìùx§ýöwÊ~p˜ž8çà°ÏhGLIMIMIG*2¿Èü"ó':MߟÌCÆ¿äóê¤ÔI©“’Wºr—X qWᣠUø(Z°k÷®Ý»vçnsþÐ?Öþ±öµ£±Ò¼Jó*Í'þ+ ··ØÞb{‹hG¬Ù±fÇšÀ‘*¾YñÍŠoFûlx®:çë@Vǧgמ]{vÍŸr÷J@î € î¬m°¶ÁÚhaÀ×›¾Þôõ¦Üía£¹æ6š­‡l¹±elöíˆéû“ù} €3ÞÃgvñgÇö<~:èÓAŸŠvÄÔ³RÏJ=K©áò†Ë.Oäš±]Çì:f×1?ÁþL<Ž~Ö-gÝrÖ-ÑŽ>àîw¸;w¯t0ä.°â.ã¸âµs^;çµsr·‡Ïì|fç3£õpÞÂy ç-Œíç¾3÷¹ïD;bÇ«:^Õñ*plàY¿ÍúmÖo±=3ëϬ?³~´#¦B4'G8ñÏW§‹:]Ôé¢hŸ}¯î{uß«›È5mêÖ©[§nÖÿ®Ou}ªëSñ ;¿ññ¿1ÚÑÓ¿Ï ·fŽr—X qwû·_pûÑ€Ú>Ðö¶±=â˜ÕcVYÝúàÿÛBÐùç7Ühp£h=6iؤa“bÛÃÍü×ÌÍŒvÄ0bYݧ8ã= Ù;dï½±=û ì7°_´#Žj8ªá¨†9?‰¾2¾ââÕÇV—f]šui­ÿÓïœ~çô;ãwôïîûî¾ïî‹Ç‹ ÀÀ`ˆ»Ù[fo™½%ZÐöö¶ý0¶G<­÷i½Oëy¬G†!pŠÖçµ8­Åi±íaónÍ»5ïÛLœñ?Óø™ÆÏÄìæKË—–¯F÷ÝktvÄ7Ê¿Qþò9?‰¾æ¬Ÿ³~ÎúhŸíqe+{\Û+nó‚Í 6/hvëáÛ²o—}»ìÛÌìgËø-ã·ŒÖó¢ÓŠN+:-gbÎŒÇÿ†*7T¹¡JnÍ0ä.°âîÇÚ?Öþ±v<žW‹”q‡W—GÛJjJjJj¬zž|ç+ãš« šhÏ8¶À±ŽÍü±ÂÛ²ÿÒïìÿàøÇ?­'eO){JÙSr+¸@î € ‡d Äꙿ{Þ½çÝ{Þúdí ³N˜uBîöð‚¥,½`i´£\Òô’¦—4Ç/>÷À¹Î=Þ¬y°æÁšáÉÑhGé[¼oñ¾ÅÀÙÙO´¿®‘U»ŽÙuÌ®c¢¥Ý²vËÚ-Ë|Ÿ[•jUªU©h{ ¿ 3õÛç¾}îÛçÒ؉Ü € w €ÀCÞ¹ýÛß¹=~Og®Ý¼vóÚÍÑöY¢O‰>%úd¼ÿ%…–ZR(~=œrâ”§œ˜ñž—þ²ô—¥¿ÙþÀù³èÈz;àîw¸;ã=¿W÷½ºïÕÍ­Î+ç+Þ5a§ýöwÊø÷z3Ù~Þåó.Ÿw‰¶Ÿâ÷¿¯ø}9pf?<îÃã><®þWõ¿ªÿU´=›4lÒ°I™‰2îa‘ùE晟Õ#3ÑïE\ôÈEd' g>ú-´®ÐºBë2¿ç%ê5¨× ^ïùÊYWκrVîfyå|efo~*ðSŸ²Zvž²ó”§\vòe'_vr´=7y´É£MÍ|oÓ×Hé•“õÑ}ñѳó_â1sÀ»À`ÈQ;Jï(½£tåg+?[ùÙÌÄHÓžœöä´'¿:ö«c¿:ö÷á¿ÿ}øæ›l^ðzë×[¿Þ:3ÏbÖè^£{—®UºVéZ™éáœõsÖÏY^Ǻ¯Ç¾ûz„žõÛ¬ßfývvõ³«Ÿ]=ã=”;¦Ü1åŽÙ:pëÀ­³3¶àŒ÷ÐtXÓaM‡Eû¯¯<ðʯ<Ξ{ìðEÙ/Ê~QvRÅI'UÌø³A™ÒeJ—)ý}Ÿïû|ß'wG8oÀ¡&TšWi^¥y™Ùóã7>~ãã7þûñ?þïÇ^ñóŠŸWlo±½Åöo|{äÛ#G5ÕpTÃÌÄÿü à3ßÏz;ëí¬·3Ú>go™½eö–œ¯¨¡ÆêEÐ`H`0ä‚þðç.ÿuù¯Ë?nJu*Õ©T§_ùø•_ÉjÃJö(Ù£døõ0%5%5%5W‰Ó&GÝÓÆö<†×ÿ®|bå+ŸH„È6oÀÔ„ã><îÃãÊí.·»Üîø]qáyâ}gôÑ7óý /ô޶ÏôU"·*jÆßº{ÿîý»÷ÏÉ™#€Ü%@® ÿk¼NJ”:)±yÂS¿ï¶z·Õ»­²ÿRå Uø¨ÂG±ía•qUÆUB¯œ‰åsÏ™ÙlŸ_LÿÔuöÏcxR|q½Åõ×Kœ×wçÅ8ýžk׬]³vÍØ^qáL…çò³ÚÃŒß4pÅ’+–\±$w£Í1«Ç¬³:û/®@r € —…;§’òÈžbã‹/6¾ßÆ~ûm /•UwíÞµ{×îýöدðŠÂ+ ¯8²†fÈŸ‡üyȟëkc;’àÌï!ü›3ï=óÞ3ï=²³Ùõ©®Ou}*¼0<ÑF8ïÀ‘5áÔ§hˆsÂKb¬m°¶ÁÚËN¾ìäËNžØ`bƒ‰ ¶õÜÖs[Ïx éÿÄ¥Õ.­viµæÝšwkÞ­â›߬øfˆ‡Coÿ=œ~çô;§ß™wÜÕÜ=zø«§ï8}Çé;ÂóÙ!°¯Ù±fÇš;<ÝáéOý|èçC?ßpí†k7\{4GY9y¾Â_•Hÿ¬mË-k´¬ÎQ¸âÂk½ë¦ÕM«›vñŸqñã&Ž›8nblãy×)W€À$þódžu;曑QŸX $ °H`0$À` I€À@’ €€$!IB,’„X $ °H`0$À` I€À@’ €€$!IB,’„X $ °H`0$À` I€À@’ €€$!IB,’„X $ °H`0$À` I€À@’ €€$!IB,’„X $ °H`0$À` I€À@’ €€$!IB,’„X $ °H`0$À` I€À@’ €€$!IB,’„X $ 0@’$‰¤ €'8z$m¼zÜêq«ÇõøðˆÚÚµbÔÖŨ}œíöIŒÚ¿cÔÖǨ}£¶!Ûí³µÏcÔ6ƨý'Fí‹l·/cÔ¾ŠQû:F훵MÙn›cÔ¾QÛ£ö]ŒÚÖµï³Ý¶Å¨ý£¶=FíǵÙn;cÔvŨíŽQû)Fíçl·_bÔ~Qû-Fí÷µ=Ùn{cÔöŨíQ;£v0FíP¶[ZlZÏcbÔŽQ;.Fíøl·?Ũ£vbŒÚI1jÎvû¿µ“cÔþ£ö×µ¿e»å‹Q;%F-ŒZµ‚1j…²Ý Ǩ‰Q+£V,F­x¶Û©1j%bÔJƨ•ŠQK‰Q+íV&F­lŒZ¹µò1j²Ý*ƨUŠQ«£V%F­j¶[µµê1j5bÔjƨՊQ«íV'F­nŒZ½µú1j ²Ýƨ5ŠQk£Ö$F­iŒZ³ŒÚêçW?¿úù¤}€x$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@’$ 0@RyoÍ{kÞ[3á Lx ×e½.ëuYÍ’5KÖ,™?Ó¼ÙàÍo^ÛûÚÞ×ö~ºÓÓžîôqõ«\ÝØæE[&n™¸eâ¼¢óŠÎ+:8mpÚà´öï·¿ýûæ˜W`^fæCJ£”F)þ¾úï«ÿ¾zd¹‘åF–[²lɲ%ËöÔÙSgO#LÞ*[¨r¡â…ê—ùjªk¨´¡ê† llÈ]`€<é‹û¾¸ï‹ûF/½hô¢ò Ë7,ß0Žh8§áœ†s& Ÿ4|Òð-c·ŒÝ2Ö¹H¿-úmÑo‹¾°ð……/tïÖ½[÷nùsP¿~ýúõ뷦욲kʦݑvGÚΉ#TªPµBË™ë"TæP¥CÅv. ùŒùrÌ—c¾ì6°ÛÀnÃ?oè´¡Ó†NF†Ü%È~ÙúËÖ_¶N›3mδ9%*—¨\¢rþ„ÑðO ÿÔðO¯´¥ý+í÷³ïœ}ç8_9cÝ®u»ÖíêU¦W™^eò'˜¡W ½jèU›—l^²y‰3EN U(T¤PçºÕ;TòPÕ/Èë"¯ôǯ8~ÅñF†Ü%HP»‡í¶{ØÈkF^3òšì)•˜\(åô{//ÙâÂþQfI—;Þ\vûߟmWµLÉÔaõ7”(UäÇÂÓ ôÊþ±¦š:hê ½/ï}yïËÎcl­œ¹ræÊ™u'ÕTwRöÏTÑ?¯þuÉ• ÷·z±tÔFg¦¥¼Ûüâ3¾+±³~×Ô¶Eª–-SqeöÒý@÷Ýl²qÈÆ!Î ñªM¨<ÙŸ±¡†ª*d¨–¡r†**jö*|¨öÎ#äE`“ Øv`Ûm“öOÚ?iVƒ„v?5»©Ôñ“ºÝÕ«nã×Ì8˜zÏå«Ú¶™–¶fM‡YÝþúü› Úîzÿ¶gOn^dÌí·nªµ¬áI5¯›Õ^Ío<¿ñüÆi‡Ò¥r~̆ã6·á¸ÔF©Reuü+?wL¯¶õ¶ zõñ‰Íîdõ«Ïµl9uêš5G¶mšòà9s¾ªÓ¥ßð‡þZö¶ÝþÞ «ý¹fÃ5®Ù°½ÃöÛ;8³dË¡´Ci‡B…Éò{ NªÙ°xÝPÙB• ïȪe¨´¡ê† ªqV{*Xœ^È+À$&0@BX÷õº¯×}]ªn©º¥2²vÞÑjVÊÚ%ÿz¼{“ùGZdg;û“Ÿn8±á³5g¿ 3½mýzë×[¿¾é•M¯lzŹΌ=_ìùbÏC>òÙÏ2 U«ñ†·–k~çc¿-˜ 7«ÛÆûG¼ñR‡ ÎþüŸÉ|ogÌ™1gÆœ´1icÒÆ8ãd^¨$¡ªd*î}¶æ¬â„ª•óÕ2TéP±3ÓÛ° „Á¹†Ä'&1 €rÍ¡ûÝw辇Ç=<îáq™ îüÏU˪úÝͯŽk½(çcŒhÛÿÔ›õPËk®úòüffæ[¼øÆ‹o¼ø†³ͧß|úͧß¾¦ð5…ÿÇ«¿‹Ö¬ð÷ª[ê÷¿cÀ„/[¼:ùÀªs2ô¶Mí;açŠ~µú]÷Òð»33Îy÷œwÏywgë­w¶vöÉX¨™™W¡"…ê”8Õ2TïPÉ3ó-ÂêV g“˜Ä$È?uþ©óO;õíÔ·Sߌ€›Ÿ¼ä—Ên¿÷õQ§™81F´í×Õç¾Ðêœ _î0¢ÌšŒ¿×MýnêwS¿ýÏï~ÿóæC0ëØYÇÎ:ö$Bò¿–ÿÇú7ÞqÝ„!îÍxÛâÁÉV[sQŸ>÷>š™¸k]¥u•ÖU2H/T‰P12ž?¡ò„*”øÕ2TõPá3þ^a¥«†ù‰FLbä¨oÿòí_¾ýKS œZ ê`eÛ–Z\há'=ž¿!õéÄ1¢mß<ýÉvMGel´œÓrNË9?Wþ¹òÏ•Ò ±1mcÚÆ‘×¼näuÿãõ΋.û}ÀU-zMÚùÎy‰ýFn›W¿uÉéå ·ŸsaóŒ¿éÂn »-ì¦V*C¨Ï™Pmònµ Õ>Tþhß1¬a17 q€IL`€òŸÝÿÙýŸÝÇ÷Öêó}õÎûo{§UûÖy7ÌH¿ýùùå•Ú¾üÄsë•ú hÙÒeK—-½ãÁîxð(š]Òº¤upí€k\ýÑ¿ü« Óxúý¯¼øK^ }£më~x[çGþW…×}±î‹uÕ£S¨¡2D›!¡ª„ “Õ2Tþ° d|u„ÕÄÛñÙŽhß´âÆó&_ñäÑú&þ|âé+«û¬êÄ:‹¢Õ¯wþzç¯wª0É$\éQŸÿýDµ&»U˰jD¥°â˜KóÀ$&0@Œ-j°¨Á¢ÑnÓ¿]iò¹Ínf¤ßNŸ<ü†ú÷E±õ)ëSÖ§äÝù°¯è¾¢ûŠ–Wb\‰q‡ûåãÓVQ½Å¯S^_ýŒ8l›ŸñØ™KG›}:ö騧£:“ÂÕí\‡Ê B¦ß†$Úˆ…ÕǼ‚œ$Ž•O:øÓÁw^Üyñ¿[ý»Õ¿[“ìÄ̮ïêíÖüÄaw.©{¢#Ú¶ÿé—ö¯<7rÜÊ[æØ2Çh} õÖyqV ë5¬×°^ÑfEj Eßì)ôÜ6ùÓˆ /õ‰úTè_—þué_Õœ¼+\ÑáêŽ<¿¡¨ŠÑ¶a5‰vu„•ȃœ!Ž•¿7ø½ÁïéGRœ`€˜¹þÆëo¼þÆÈ[ç|rú¯¥¦^Ó¿C-ÑE´íÞ+ïn·¤øƒEçØ9†Nœpâ„óÖ|ØøîÆw7¾-¤i\í¾ÊÏïôf¼­ÕîºÒÃÞ‰6†¿ûû·¿«òäE኎<§¡„j *FÝŽ^Ó¿C­°²DŽaX‰Ì1Èàì ÏþæÏ08«À1ði¾Oó}š/ÚM«mÏ¿VâôþB‹Ìl?î;cAjÔœî(¿£üŽòyeV´_Ý~uûՑߢêS—Ü{óÏÂÝLm«M½tÍ-%ﴡ‘#ùð¤‡'=¼{î»ç¾{n´—-*MªþöùÂÝÌo›x¨ï¼ ¢¾ðöØ]Çî:VÊ+ÂUyÃU¯úeuV™Èñ «’ùñ&Ž•ƒùæ;˜oþ9óÏ™Ž08ûÀÙòïgÿý쿟v[êÀïìm«ˆ"«Û]ù—\ÐæÅh£úã?¾ñã‰<+Rû§öO=Ì“yõþ10ßøÛºG¶­4þüz‰Õ†>0ô¡jQâ WnÔ ?ÿ’ Ú¼¨úeuV™h£V(sâGÂàìdË%·\rË%·DÞ„zuÛØZ '²³}_ÿ±µŠEŽíèþ£ûóaâ ‹6,ŠìsáãK -›Ò2ßÔÿ[s’(÷ȶ§}3þä7*Dý=à‡~è÷‡T¤D®ÜÃ\Ñ÷õ[«˜Š—mXq"Ç6¬PæÄ8Þ„ÁGF p„~œòã”§D}ö÷‹UÝÚ?,–ÈÖsÀc–,j³:Úþþù‰6+úæë›¯ïa~ º^õW›*ÄÍþ¶â¬ó õÚ9ÂóN˜w¼Ô¥Ä®Ö¨ÏþŽY²¨Íj/[ϱª[û‡£¾5aÊS~œbB<€s’08óÀGè©%O-yjIäm¦Iëîz³îy‰XmohÕ}Y¥n‘ã¼ê˜UǬJ »[¿÷ú½×ï½¢þîï“v¿sø6¿<æ¡åósÝ5MišÒ4E]JLájSñ½êDŽöös¶Ÿ³ýÕ)Ñ„«5ò|…«;~p¼càeßNhØ´åUSÎ_Sar”ª=‹.~_ÑYöU^¡a‘ñ]šµÚ–òÍmojY³ìïÃߪÑîâxW˰úDŽ@X­ÌCˆp"GdÙìücçÈI­ol´­Ä¡¤zª,ßšS:äO=«þó%òåÖsu‡ ®>«ýú¨/‚^¿ýþõ‰0+®.su™«ËDö°ÉЮœ•×àüSOYsJù-n¸xjþ,jxÛÐ÷Ÿ99Þ=¬5êú†ÿyôY_ÌúbÖjTâWh´Ù®î<ç[sJ‡ü7ýpñÔÊ5³zu¼W÷™“O[ïšV¢Ãüå¤Î?vþ±³9 ±%N4Âà@ e‹f.š¹hfäÍ£§ ÿ®þ ÉýÞûúµ=ª_Ÿ“OÔEÛ¼îò!U¾ˆìÉçK>_òù’܇Ž=tì¡c£¾üùû)cWߘ·àª÷\Rîæ›Ó‹"3Ë-¯üMõ—{í»ã¬†ÏÞsÙ3+ÓÁU&ôèÐ÷­‚ÏWâéÿ|ónݵôOñëa³ïÇì[T7r´»=ßíùnÏ«Q‰#\¡‘g*\ѱ­9?Tôæ›k¾™~ÿµšWþ¦èsOüó޳êœû~¹gV6?.<<âò¾oÕ˜›’Zâ…Nþ¯ß<Þ½ôOm¾Œ_µ +Qä8„•Ëœ„Ø'²£9 dY¿ ú]Ðï‚ÈF›Ï]P¾õ y1îý¾Ï¢²§×œÑ÷¾üõ_²÷ê««©ÿU.ÅvD»5–ó=\¹dò1Í.ŠìÉ3MžiòL“Üß=õÝSßæåÏåæŸñÒE«óVô›ºfbþ·¾+tw‰ïKÿ-|‹bgWþ¶Ö=!Ð ÿ&òSáß§ÿT´?³mµ©ÿXsk´ùypÓÁM7©T‰ \¡‘ç(\Ñy+Þ3à­ïÚ)·»ôß —{n4·Ö=Ån´cýQ Ò}*ÞU4¬D‘ãV.sbKœWma° ËR^Jy)å¥ÃÄNV=Ø~jünëo¸°Wë_‡?týC5ò_ôșǗmbÚbã‹üRàÍêWWœYôOí–5ëXrOxFmGéÅï·IÍÌžŸútè÷õNËüí°œ€wnZR¯ÍaBÖKG\:âÒ¹;–ܾäö%·Gö­ÎÚþU®ǧ`_sñÂ^Uòw{èú‡RÖ5ïwæñE߬T§F—÷žZä—"åËþµâÌ ëþ¹YÇðDïiï{gñûï³îŒ[׎û_ßâŠ~=t}fÝôŸ Çw\]îƒ3ëÖ8räúÃІªT‰ \¡‘ç(\Ñ9xÜ´VÍo¸øŒNsÊYñͲm /5³ÁÚš'¯8¸Ñ•·V]˜™j¹ðú±cÿ×_ý™³þ¡ë®ÏLULÿ©P¥ãW-ÃJ9aå2'!¶ÀyÑÑ €²`ïö½Û÷n¼%ÔêªF§–X¿úá…¢¥k•,Y¨uVurÓ[óç·ú6ãýüÊŒ©w>©šû"·‰§[S´CÁÈž*Y¨d¡’¹;+FÍ5oԼȾ5-þ`«9ïÆ#ø ¯_.øvñ)%Kfu>4ý`ôÝóçGÛs¿^Yzðò#{™sÃ3‡6ºKøTÁÔ¢ÛŠo‰÷sÀµÿ|Ãðû7G~ÇwŸ{÷¹wŸS¯A¸BSCŠ­)Ú¡`ÎÀEæ¾½ÀE_•æ•M+üË'ÓŸ>u~´ý?Ùfðò:‹ìeÎï¶zºËi†O•ìQ|KÁ‰ñ®¥aUŠü¦a33!VÀy]²†Á`€,Øvë¶[·æÅ³ƒ¾òªïÇã&þ¯Ï¾9§íÎj*ì.ò^8Våg˽V¤úÃßß2½ÖUo͘T¹Yñß.ýå‰Mÿ^àžo‹Ud›pÚš5:´ÉߤNÉ‹ןÜÔ}`÷ÝFö*õü ¾™ãW4·žÐýÍ9…)3¨Âîp”Âפ¼Yîµjù.]Ëôº3uRåFßÿÇŒõKÝ~ù*­¹`ôÕW‡g‚3óræ:cn¾btµr7wøO×ÅåïïØ±gÕ̇¸éŸ.úS¥e5OŽwÜh°«§ÏŠùéN¿pú…êU"ˆ<;á*ŽG}ˆw´¿bQÕ{^;gÜß/›½åÁY §ö-ÞãÚJ÷86ÿ»ùÿ«ÊJYý÷ö"÷?÷ÑÕåësE×ÅÞø=«VZ’ùz˜þéáðäq¼kiX•"Ç!¬bf&Ä¯Ê €ó®d ƒÀY°þòõ—¯¿<òÖÏ´›ÿµ¨þÉñ¸‰bÝp”?¸?ÿàO½øe‹nÑâØÈ¾Uø¨Ì°ÂÓ#¾ùÀ¥-+?hpÕ¯«~]õëÈ^µØ?å½Õ cüìo©Û/bÀ¸¾@Ã÷7~úþç^ü2Z¸{˜g¦¿(õ·2Ã2Ä̇¸)g6{½ýS…6Ç\zj¼àf?-¾¨käw¼÷Þ{ï½÷^õ*DžpçL\pSÁöùç.®7~X“Úé«Yú~ñôíô8²*—ù?yÁÒöï—ùã à›ß»ôÔÊÇ»–†U)ò{…UÌÌ„øU9prÈëa° Þúç[ÿ|럑·{–|òøø&oÇã&þ;·OéÙìµ›~¸xjåš÷ ¹¡sLE‘!qv堀 €Ç–¾íòZ[-ŽìOÁrEÇȳÁCwý<¥gù-n¸xj•–ÝËßÐ93!kdH«h¶ÅÜÉ?¬Wqþy{üã»ç+Ú­xµ¦‡.´à¦xÿpjƒ õÞù½®:ñª¯:Q½J‘g'\Å9_þŸs7”+«¿ÑÛñªóSZÆà·xk®×þéÛ/èu°ê×i‰>Å«ì½yÁ‚›Z—Šwµ «Räø‡UÌÌ„øU9pòÉ‹að1‰sIä]ïçfái‡r& GÌ8rxä³[¯¬51²Ÿy=ž¶ô_¿×/•øó¡X¯*Uj­wü™™'tC@[-õ×Üzed?³sÜð‹¿%N¬skÓÃÞ \Xø”"Mêý8èÃÇ_Ëþþ3?7tõÛO«?yK¸Šs&oPÈÌg_<æÓƥçÂkö³SëÂ/þ¶ý°éƒ%—…ýV¤IQKÿôøkMÖæL «’ùÆ–[jl)0@³îàŒ‹S/È™t×1KÎh3cI¡ÇÒšL˜râ¹uÇßUìªÕ*w»çÌ¥eû–)]r}¡Û¢õ3¯À/Íy vƒï>œúrí^MjæLܼúø—œQoÉ –¥Õx«wï!s+õ=ÿº«v–>.õ„3—üíÔú%×GëgVÕ¤öÈK_.Rz[Ë/;ß~?Å^¨zrí oúþ3qÿÝßÿ €™|Ï*å' WqÎÀ›Þš?¿Õ·™ùìegwl99;µ.ý’¦o(wWú=4y´öâ‡Þ«ûÌɧ­ÉÉúV%ó ìš½kö®Ù`€<棦K-Çg¹Ê=³²ùqçþ¥MÙÒÿ ¿j­' ÖÖ<¹xÅn?7¥üC‘ÿ5¯À3[ŽüKƒ1‰?NmSë/nŒ_ðÙðÙ{.{fe©6þºMÙü ¬,Ø>ZOŠþTiY͓ˬ=}ѹ)‘ÿ5S!kÕI ß¾¬Jþn]ÿPÊ…¾=|¶PÅSW”[uö%sû×IÝ;ñ©•Ïd~Ÿ1 €ï™|þ;©?yK¸Šs&Þ{ÍÊgÚ­ÊÌgþVvgµÖíëñöeíÒ†?týC5ò™_øö…O•=¥ÔØB3GŸÔ¿NÍ}¡9_9êd¾$‚O:øÓÁGEܳ™¦iš¦iš¦iš¦iZÞkíhÿCû"o묞ðÔ §5Žßo_ä—o†cÕÍW­x±Ž÷¼ÛgbõÆóŸø©F·ÿ§Î¬[^½¿Ó;)íG B’#~ªÊÐKëŒìOîΊÃÄ®ùËï­Ú?~¿\àžÂS‹üòDZšVX­xå®]Ïè3±ÎÎþ÷=üT“‘ õ`‹®“V¾“’þÉݬÀM.¹ëåµÅήüm­{þøÀª‚Ý ž0nÞí±»–þ)çCßÿú à´‰sW.Œü^•›VnZ¹©z•-òì„«8Ñžþê§¹CZµùã/7¬+t\þm׺-_^Û²~£¹µî)þpúO…÷1ìÚ½ôOm¾ÌÝjV¥Èñ«˜™©iñ«rgö=³ï™}L²¶³+]éìJ V(X¡`æà×F¾6òµ‘GE ­é±¦Çš‘·u¶Û¯qÇxÜÄï|f«Ú)/„£\þŸs7”ëPÊê¿·ßqûÙÅ/ukñVòÀ#Ÿ¾qi‡ëOnŠv³¯eË©SÖ¬ŠmäYò¹†·ªýÇS†Ç´é|î†_O¼úïǺMŽñîKÝ27m÷àê¹CŠ”/û׊3ß ÿÜ಻þ9yrf~{8‡^ýÂã÷,;?ò{õ}¯ï{}ßS¯AäÙ Wq¢ýðkçŒû[ãeéÿ’M´Z¢âêWWœYô¿þùí‘“'7ûWf~©=g¶aUŠÿ°Š™™¿*·âøǯ8ÞÈ$“·úw«·ê¼¸óâ΋3úÎ?gþ9óÏ9˜ï`¾ƒùr¾Ï`€,ø¢Ñ¾hy‹gBí;¶Õ¹+7ñKu:õ©‚ÿñœñ%S?>­jVÃŒd €¯ª~ÿ Ã-nz¨é¡¦‡"{Õâ©É¯¬:?¶‘gÁk‹ÝqêS¼îû‡»‹Mý83Ÿªwâm¿Žû[æàâcªo®ÿ|ø3%Öýs³Ž§½7îÅï'Bèû_Aõ»£ÌŸù½FO=mô4õ*DžpçLþÒLf>{Ñ#g_¶iøT÷þgÝQöÙhµ.õ¬úÏ—Èþk»eÍ:–ܳ£ôâ÷Û¤&Bè›~V¥Èñ«˜™ ñ«ràäCßôÀY°kÒ®I»&EÞî¹öì‹úW|)7ñkv¬\¹èMá(/ž>¢}ƒÿùÍ ÜÔºTø%àä €kÞVù¬¢·'Z|í½×Þ{í½‘½jÞø±BKÆ6ò,rW¹º•+‡ý×.{úíÿGDzèáB n ¿œ™¸ÞÃ_x¬ÍÿÿŸó?•ÿÝ& GžÝ1Ñ¢ß?^ˆÝ÷®Ñ“7æöë™óÏœ¦z•"ÏN¸Šs&¿˜¾¸ÞøaMjGûT¨«é?õÖŒI•›ü“o”¬M“+Ÿ)plþwówø¢ììŽ-''Zô¶aUŠÿ°Š™™¿*'λòz蛞 :8èà È[?”¹±ðÝñ¸‰ßûá †Wø$¥ÜîÒ+\â™E÷^^ï¹o>ž··ÕËß÷YTöôš!®²÷ê««)~_ÑYöE»E•wà}g^ûË#{R«G­µrùu¦“çNž;yndßÍ6FÁØFže·¶¯rÁð?~sôîß—þ[Í™}ÚÜ{yÓ©휷·Ù·cv,*ÛàOw¦Nª\iÍ£¯¾ºÀì" ŠÎÊà%ÕÿïþG¶;îü|é÷ÿÇKn+^ÞnP¡¬nãWïvù÷ƒ¶F~¯OoýôÖOoU¯A¸B#ÏQ¸¢ãW~¶ÜkEª‡ÜèÊ[«.|½õ¸U÷Ì}gtµFùúïqm¥ûÓÿùŽWµ˜ŸÒ2Z•»rÖùù*\“¾‡ÿà BµgfuïšV¥È‘«˜™ ±"Îë’)ôMO eÍ—5_Öü0/Xþýå·:¶»2¶7ñ··xýÂÓ?Hÿ{“™±áÚ™O¶x¨ÂGe†žþßwº¨åM)·äÅxó–ã[W‰ìÉmoßöömoçî|øàäNþà0Ï×Öx䪷îú&¶‘çi7>úÌë¦ÿuÞÌh¼vD³™Oú¢ÔßÊü× ´KlxRË›ÒïÿÔÛk-iÜ-ŒÄ;.uR£·[Ï‹<îÏüüÁϨT‰ \¡‘ç(\Ññ€W¼:±OÓ¯Kô)^­`ïŒçj”ª=‹ÞôÖüù­¾VåZlÜ­déX]ñ«–a%:Ì; –5_Ö|™9 ±%΋’5ôMO e£ÎuÖ¨³"o }|ÞŒI©½ãqC?ìÿîm×T¬¶ªe†JÜ~8lÛ|Ùdmɑᩲƒ5Wkÿtú^…ð¸dâ[ NìsE×ÅæÅxÖý£&7ü{dO>µð©…Oåî|ؽ÷þÝû#ûVòäú/¤ÎŽGðö_iß…®©X|WÍÿkX!ü6pØžº¾ö¦&kÃ3¸-æNþaÕ¸ô½ áqÁÔ¢ÛŠo)ws‡ÿt]œ~Ï…*žº¢ÔØÄ€[ œÜðç#X¸yáæ…›§íHÛ‘¶C¥Já 4»y¡æ…šмuuþðvŸ•9ûÐW«·u8A€‘~ûû½oUm׳tá’'j9n7,¿aù Ëóî¬xã‘7yã‘h74}0ü¯3îôFnkµ¸î¤aÏG·o×~»ö[¿û›ç…«;òü†j*ƒ ù_/Éÿjõ¶'„Õ$rÜÂêV"³ r†8VF 1dÄ¡o¬€blsí͵7׎\ ?éúJÕw‹1þ3~[} ÃÉÓéörM£Ø/ßüòÍ/ßäõYqÃÕ7\}ÃÕѾãi'½|Ñ¡oØ6X:dÔÔòÑÆêÅZ/Öz±–:“ÂÕí\‡Êª„j¶a‰6baõ1¯ ' €c%<,ô0@\,º`è‚¡ÑnÓOÉ7dQÝÇê0ãÓ53;´´¬×Ȫ5¢Òº~ëú­ë—óá÷ù¿Ïÿ}~ñ!ŇùM Ž)v Ä™Ío~ìã¥7ÍÑoãëîÛ÷â1ÑæCï{ŸØûDµ%ù„+=ÚyU"TŒ£¹f†U#Ú(…Ç\‚œ'&1 €âhØôaÓ‡MvË~êKw§Õýý¨ 3~]óf‡vwξjrµS¢Ì _˜øÂÄä›_ïûzß×û¢}ëÂóKÏ/ÿsós»|É—G]ô{Ù}Ÿ¼°6ÚÈTû¥Ú/Õ~Ù³`Ï‚= T•d®úhs TŒP=޶šVŠh#Vór‹˜Ä$ˆ§Êi•Ó*_ñê¯^ñj´Û÷£ë_£æž´åk&thšÜ1ÆþOÞ¹¿ý…×-ì6ºRÔ§œ¿þüõç¯ß:b눭#œeŽL¨*™Ÿu¡j… ªYüªe¨Æ¡2‡*ù~†U ¬Î2$>0‰I p6·ÞÜzsëKn½äÖKnÍŸE)½K )Tø–3ÿѦòΗË=ð¯†Ç®;yú¤ÔÒi¯¯סIơž•oÏo_üý'ž­Ô<å¹MÃ>«iŸ”®ÿªxMþ#2°ñÀÆï°sÀÎÎivL=˜z0uúöéÛ§o?²sQꃦ­Únª~Þå Z]ëàï&¾Ò¬ó#ÿ÷ÊË™ z›ÔÙóåõΰz|Ù*õHíûjñ‰5þTÿ£¬ö¡t­ÒµJ×zëÛ·¾}ë[ç”X &T›#»:B• /T¿P ÿGÐûúšqš„ê*m¨º¡gµ¡Ú‡ÊïœBÞ"&1 €Úçg~öçg_6ê²Q—ÊŸðæ˜o`¾­³·ÎÞ:Û¹‹‡ƒ[n9¸åéOï|zgâχ+j¬¨±â×Þxíל;â-TžP…ÿêU=Txçò.0‰I güðØýðØcµ«õX­üòÈ wŒj]«u­Öuú¸éã¦ûiùOËZîå¤C]u9ÔeeÏ•=WöìÚªk«®­!Öê?¨ÿ þƒ>úéÔO§:Gä–P‘Bu •*—/Œùä?ªw¨äÎ$0‰I ‡}Óà›ß4˜²xÊâ)‹;ëP¬C±øå̾`ö³_¬ûbÝë~_òû’ß—4þ‰æ·o~ûæ·o–¶ü³åŸõÛÚok¿­ñ›U–VYZeéðiç Ÿ¶vÚÚik§¥uLë˜ÖÑY 1…ª*X¨fñ»:B5•9Tiã@N$­5®¹pÍ…36ÏØØHŸPš—O^>yù$ýPú¡ôCK«,­²´JËoZ~Óò½b"þ5ñ/‹Ÿ"~"= L׿_›mþ†§žnxÚÛ©·So'½:zuôê}eèyÆóŒç™èøèøèøã厗;^îñúÇ믧ÏÁ•W^@Qˆ³‰8³ˆ³Œ8ãáUG¯Ž^q6gFq–¤Ï t!V¹«å¯–¿Z~¦ýLû™öz%ıcÇ>«W¯^½zõ=ç{Î÷œoS^ÿ¼þyý“÷%ïKÞ×3¦gLϘ’šÅO["¶ŠÑxû.Ô¸PãBñÛÇo¿½¤V†¾“|'ùNÚzeë•­W<þñxÆ\yqåh#Îâ¬!Î %u|‰³§8“2.€ ?R’Ê'•O*OÏ d«ÊËÌ—™/3---œÂÂÂõ©óÀÎ;LóMóMóÕ¼Ô¼Ô¼dì¯ûµî׺_+fAÌ‚˜z &¶Pl-£ð&¾ù¸iºiºiº2W†ƒ× ^7x]FLFLF £®¼¸òÄAœ”yd‰³ª8ʳ-£†²‰ÊD\êåEæEæE&D$D$Dé·+ZÍ5ÛÑÒýZ½eË2/;›ýô{Ë¡n-h{É#GšÔîÏØ¶mþôÝš2ŵæÂ¥MRú¥AÃÚ)öçÍŽÍ{½Ÿëíí}ö³ïœ}‡ÑPþ~ð÷ƒ¿£,£,£,‹2vz¯Y7ËvÓ¿ÚÕ.䇸è- ÚîIûöºû #5cûz¶­øñÅßßU”Ÿ+¶\ì£ P9Ýrºåt[³jͪ5«Š²B3û¹þF;ê4o÷<´‹½eXôä:ζ£š|3¿õ¸ßÅ7˜2þ‡ï«Õoqv±­c³/Úμeý¨ÇÄQ–c~i—R5¥Úé¯÷s;Ìî0»Ã쌟2~Êø‰Ñ„Z¯¼ô y^mÒ§³G†ÕjØ©×ÜæÖv½?ZnW©¹5ŸÙ÷­øñÅßßÅ•ÔJÌüâ,ðz^k¨q°Á°þœÎÖê0¿“Ÿ«Cðæ*ͧ¹Ìؗئ»GUé“v»<'vkWÁÓhç¥Vönã®w«ÿî„Î ­¬sš¦×N7/Êñ%μâ,Ìh¢ì †2—biãÓÆ§·u±u±uÑý4Üåg»?-ïÜÔªš[BVTß5þG5šððààâj¯Ní¾Í×fÍ”¦êÇ6ng9ËìUÑÕ3ªgÔíøÛñ·ã_ºÈËË‹«W'î•ßÐ6¹[ø›ë¿YéuW£IM .ÞVüË⧼궉={Ç(è.)1)1)ñUW_VfAÉÚ×ÿilµ%iYfœœåã—šZ\­G•YlYmÓwѸc†þ–Ãë8ë¾mcši>¦ùc“Ç&M_”Æ+¯à…_4ªÙxàì-åNž|þ¼»{ñ¶â_?…+/”Fb†³½îÕkWÙÌÂÈvibÀgNv÷uá}©xïñ>›º"pá‹mëyÌ [T¿BíWƒÅ™ñEY@ e".ežÿñüçD͉š5G—­{C‹`“­{®´ná>´xº·9ì ò_q7h•ó|Ý—›&nš¸i¢æ‘æ‘æã@.ãBÆ…Œ ÁÁÁºÌ*ûtsªûñÅS[vx_yq¯.­øébKtÙf±wbOqmë=Ö{¬7 Ú€jªé²Êª6ÁÕØgZƒÇ*,»V¼A¯îm£Ä¥ ‡X?í1sT°îWÊË,w;9Pô•—ODoýÓ‡%ï¾æÜâMĽº´â§‹-áÊ J&fuÝÏóù5rhþ(«ßì€ö%u§7¹mû˜†ï…Œ¨ëP}œ.Û,ÎÎâL͈C­€¡L\6”W:\ép¥ƒy”y”yTá§ÕV‡ë…Yx›×9§ñ­’Z hksw‡Í :r`w[3èê¶«~Pø¾tßÐ}C÷ O–?Yþd95@ˆ?.þœ.—s¶Œèl?"Ëýàpÿ„’ }µµb«Äê²/b¯}€üN/8½à´Noµp¨ÝnOû¹wX”Tè«­õn°¼Ã±Yކ›ÌÑéù^c­ÆZµÊ•3*g5%\y…äD¬¯ýÑØ)Û]v”Tè«­[%¶+/(˜½ÅL®KMnÕ„¬puy1o@ß O”v§÷êèî}ëöoât¢V]öEœµ©¨0”‰¸8h~Ðü ù\Ê7²­*ýr·£äõTiKÂÛ-cBþçr±ð½Ó¿¬YÿòµÐk¡×B© lzùøåã—GyŒòõïQö¢kf§YÍNôߣ´ÐWkÜìàDÿ=bË ß;Ñ¢7¨ P–mpÞà¼á?¤lr×î¥kUÃY•¶lQZè«5 Î[y.%Ùöy¿ë‘£ ß;·GnÜÝK¾—|/™zÀÛ¿òòiÞëH¯Æ•O9ì²Si¡¯¶Vl­Ør®¼ðö‰[ÌÞ…W`ìµ@+§ò¶…Ý zQZîñ^Lé:×û²‘•«ÙèÂ÷NœÁ©¨ 0”‰XÑÖÅ­‹[Wø)sá¶&iŽMò…¥Ý)]Ñoþö¡Mßëþwûmwú¶–Sáû{ÆéŒÓ'j(;²‡gÏÞÒ«¥WK¯Âç‡_ή™á•UZB_­o>»f†WVá{*zCô Ê\M®&w¶÷lïÙÞÿñ@×_‡\Ÿ¡_ZB_mmØo®ì–Ìž5Þ8´ðý½ÖéZ§k(¼+¯ ¶è96.-¡¯Ö7/Ø¢çØ˜+/¼b–.¼Þší­ckžqsS¯.~ÇJï=^ÑÆïúô—w ß_q6gv*¥0”‰X¡bÓbÓbÓ ?MþZ»³Aãî¥}A o·® ‰tµ(|ßSk¦ÖL­Iêö´×Ó^O{yMôšè5QÛlЯ]ÛÜZfÙ–IƒJ{ô›¿{$öNÛ¾‹ž½Dµ•ËÔdj2'¾?ñý‰ïk[U}aZã¹gtÌw?Í*íѯ¼µýªoëqƒ ¿RÎÏϧXð&®¼<›tô¬>zBÓÓ#])íÑoþVì‘Ø;®¼ð&ˆ™¹ðÙ{iÓ'}õÝãý£YN¾1µCW¬×¶ïâÌ.ÎòT J/`(°â¬ Z´&HÛIÑ»®åE3¿,ß¾³üw©oY¿=_®Kïò…/ÎfœÍ8›AÍêóÂô…é Sß]¾»|wi›–L{Ö1Sógê®`?5E¿ÿjÿLÝì'öT[?ˆ^=F嵊>}>ú¼¶Q ß´–ëŸXöQòeõE¿ùÛ9j.ÿ+åÌ3?ÌüšAq]yµ­3iS#“GŸ?ìÞ@MÑï¿ÚÑç»7{Ê•Š‹˜ Ÿ±“Ç·_Ѱ’ºïñ>º8p^½­~ÓÖâ,OÍ ô"†2+HâþÄý‰ûµ»<´{d™óbâ€îAª{Y¿½9¤W€ßžÂ—J××^_{}-õ¨„ÆGãÓsFÏ=gh;êô›ëè:Nµ¡¯–Vìµ¶>=&z"j×6®m\[m« Ú©mÃúuðùhåó”GêŽ~ó·îÛgœÛ\­ð+凖-ZR?(Ê•W·G‹‚m~Tmè«¥{Í•ŠBÌÀ…ÏÒŽu9é=°ìÜãÍ»þnp…qIžöÖZ_j ÎøÔJ#`(°"\|rñÉÅ'ZÜåì?·òÌm_v–ùÛ»ö~ÑDÒÖ?f;Ìv˜íxšó4çiµ”v1ÕcªÇT×v¼'ôŸ?ÄmPY‹~ó·¢´õè=ª¨ÃÑ~|ôcm+Ÿ:Öíæö?ãã·2õDÙ‰~ó·«gŸÞöH[ÿW ®\17#7#—çfᕯ¼zÜ[º×¶KY‹~󷢸ò«³®˜µ>®k·U>_—Í{¼šÜð°à ÈxÏ«ÖZ_}(ÎþÔJ`(p Ë–=,{˜¾¾¾|šð¿ZóeµY9zÙ”ÑeA¾ö†cÏŸý†k[„æ„æ„¥Xr¿ä~Éý´ãë]¦™6V–£ßü­è ­ê—Ü/¹J¯;{ïì½³WÛjÇÊ%بÃ>Ÿq~©-Ëfôû¯ON»§­¯fÙͲ›eGEA÷+¯Nqs÷[û•åè7+zƒ+/èN̺Új&ýûÎ+o篦g¸CpÍpóú k;jë+± ¢PZC™€KØHב®#]µêê×#ÀƒeAþ6ͳӾÆÖZ?ø"áE ê (]~xøáamÇõäÏÃÇÚüAè+oEÏh}èßᇇ¦º@)³M³M³-dVȬYòŽqÛº÷f{w\ž|¼Ñoþ¶~ëˆß»k[ž2:etʈâBáW^Áß|áQ³¡¯¼=Õ 'fZmu²/µM_cîëæosš XäævÐÂÄä[y‰•€XP]P>àâ²sËÎ-;·üóvðõÑë£×?hö ÙƒfôÌë!.1)7Rn¤ÜÐúˆ;]~÷ÁR@[»þb³¿,ÔÖ{ž=xöà5”/¼<ð²üXnœâRÙÌ.·ë‰½A›‰{å­èÑKòÞ½Ju€Òe[ÓmM·5Õv­×ðù·{‡÷jkëEtþ틆ÚzïÅ ƒ^ ¢Æ¸ò*àê¡n­Œ&ù¥¯qK%î•·¢gD/qå91»j›{glõîb7‹{¹ÚÚ[g{×k ­÷Ī€ƒò]n»Üv¹í´Í„Á¯‡¸¼ôzéõÒ˰·aoÃÞòR^9(è¬óNÿÿÑ>ïìÿ¹‰íTËÞX3lõ°ÕÃVSi€òZ|jñ©ÅÚNí7w÷ñÛHÐ[x+zIë§=ŸZ|j1•”ïQÖ£¬GYÚV5õþ²[¼Œˆ·ðÖ{éŠïN8:ZºÔ¾"ïÃ…×^[xJãÊKnôfÉ©A Aoá­è%®¼ 'fWyUØ®7Í6ªòr}˜]Ð×ÜË-¼ÝߪÍ7­ÏÈÌz”õ(‹Jƒ’]þÏþŽ0XwÀ%à‡È"ˆ”nƒQæWŒÓóf‡] zĉ_—öÎåÞ·›h}/Ô¥;—î\ºC½ å¤qÒ89Œví0Z~üþ0(:²Aá®î­è1yOнMÑ%›ºtêÒ©Kåë™ }/¶ÜN¸«{ëñÞÌ [µ])ßyo佑ÔW^ÿ¼ñ×®‘µáî+¼Ø®‘µW^ÄŒªm¾½8¼ëïîßêÞö8çÐßêwyOŠõ%#.:èŠpWOg„Á…#~«ží{¶ïÙ>mÅz¾Y_煮ì_µ\ßù/yv¨Ð¡B‡ T L‡wÞux—üÈ­»Óê„¡c^Í”ŽA‰uuoE‰Þ“÷ªèmª(ÓݶwÛÞmËcŸ‹·­ãÓî×Ð^2Ñk¢×D/ªŽ+/³Ë5ïVŸ´ü\s·Ûĺ¯ð8èå皻ݽǕČ*¯„ æ ?¶¾Ç=Ûâ}´X-PuP&àâE\\€ßªx»x»ø.ÀúIN±µ\8Í¿^›SmÀâ ;m‡ýåë—¯_¾Ní rFsFsÆáC‡>”³)“âz9è¾^+z¯€ßFÿÐáC‡EÏS€@i¢c£c£cåkkƒ®G†o#Ê}½¶Q‹%žÑv¥œå”å”åDí•å+¯°¼-t_¯½Ç•WY&fQ­sì¶¾;ýÏpÏöõÚÙé>ÑöM ˆvb£c£c©=(ð›C\ÀoIÞ¶¼myÛôé7Òo$/ÇkÛ{Xúá_”vˉ;—{ò¾1rÄÈ<Þ Ptûtût{ùÑêÚÚ~°‰Ÿævjbp¢Ü×lo§&7=)ïaÑóT PŽìöÙí³Ûk»qÓhÆRãCljr‹ÒÖËêÚnx yß.]¼tñRÞWZF¯¼¬º8ú¦MŽ8ÔÝ…(÷5ÛˆóGÝ]DOråU6‰YT>ú³Í}šØsŸ¶(íûýìL´­ ÄÊ „Ò¿„Á¯Šø-93íÌ´3ÓäÅ×öë8µ½}¾d@…À_µäßúûÖß·¨C@ ÂO‡Ÿ?-?NØÇòlEˆ[ôVô¤¼‡EÏS@9ú%ôKè'_·Ô©×nfâÛbh½6-ê¹?XÛ•ržMžMž uXÖ®¼ú¿¿¦»}BÜ¢·¢'¹ò*kÄÌ©õ=ëÃúDùrŸ¶èmä*Ï ë³ò+êJCüöë‚ø-’>$}Hz;½Ö!΋“z±µ3FzÚEÊûyß¿=~Ô!P²²We¯Ê^¥íürè‰w‚"Þ~\z©åVCïœü[RÚ`Ñ“Z[vUöªìUT#PŸHŸHŸ®àmh[»f%—Ê`uÄÀ¢Wåû%Fj%+«WV¯¬^òµŠa/ËÓuâ‰l‹·u}oRÿU¬Ã'Œ›0nÂ8ª±ì\y}=²G-ÒøY[eÀ¢½Ê•WÙ!fÎ>äs¹ÃJ¯ îÍok·É¬“QËÞ²Ü+«WV/ªÊA¬„Áù¿qç²ÏeŸË–—ÔØǬm8‘s»?¼M°‡±s•]ú›ä}þìî³»ÏîR“@IùbÈC¾"?6/mÝÚǧ p1ï×Ö­}|ªÈ÷KŒÕJVbDbDbŸì±¯6~² ‘mñ¶ÞNË›¯í†—¦—¦—†ÛèeâÊk¸óžXçaÀżmÎ{b‡qåU&ôÒôÒôÒ6—¾ˆÐ-¨÷f‹·;ÜÑ9OÞÛbAIB9€•‰0˜ø[¤·HoQeôó Ž®^+8‘¿‰vúâÆìBä}ž••EM%À_ã¯ñ×vZÍýêÄÙ Ÿ€‹·½ªõ6Ÿ¿Æ_ãOa€’2(~Pü øþ|fÞ´„ýD¶o¢µHðñ Y*ïóÛ3oϼ=“š, W^“Z¥ïw;E\¼­èU®¼Ê1[ÊG¹[=ûP«&Ü}íõS=nûþ%ïs±Š &¡ÀÊW6Ã`à7. R@¥€JòÒùÛ´—€ÓœÈßDûËÃŽÉ^|êzYÅe—U¤&·ïÞý{÷ïÝ—•ÝO·¸aWŸ”Ui,ZÑÃò½#Be€ªIÕ¤j»Éâ}iåÀÞþûFZÇÃþšý·¼Ïzô8èAaªûÊË­n›_̇”ÆèWù°hEså¥nb¶”òÖm!“\­¸û&Ú\MX|ÐY­¿`‘ªIÕ¤R™PàÒ¥ì„ÁÀoPîÉÜ“¹'å…Rí¼Á—Uö(í„ú×W½~ðû{ZLãyvzŸcû£¥gƒ«Õ+ß7^\å²¾dfzÕè½Àõ¶V{cäÛÝ^ºoÑç°ce.yõk`+ïùN+;­ì´’ÊÞ¾Ÿ?úù£Ÿ?’•?DFÏjÐT™ðéw×ù6Ú­iÈv«fµ%KƒýÆ‹ ŸèK.gì+šÔŽtë?ÚzÏ}‹ý'ý+9=\ÀS(>úù£Ÿ?¢2ÀÛ÷dò“ÉO&Ë×'æ›=Ò>Wè#”¯­ŒLig¿y ÿÔ>Õ~p]êëXu’Ù-‹ÿéO1ˆ3|b´°ö2Ûùµ Z”ëÞÝcÖìÉÛæ*s/<æÎØa_Àͬ¾Ñ}£ûR™ê¾òêÔ|nëZ úÔ¬Mz¤›Ô±ê̦õBíOø»š®6Ylñ¸Ê_U0úLßßr£Ãÿ —6¹6àËcš'5ið•ò`ÑÃ\y©›˜-å£|uZ÷}m•vw4iwûŽž×úd8þY3YÜ×5ZWeªþGûjÁF—;®²ýÜòÝ]³[ u»™W=lgÐoJŽÛ~gaqEÞóbEAeB €K/u‡ÁÀoP–w–w–·¼8Â6Ö¯\ÛP9'ÑöûÔÓÇÂÁ°mU?½Wt=¹Ç ß?·8ø4¼Npõ6··^o½ÞT&ðöÅ 7T~Pþšº!¯ñeÀ† ãô?/|¬ó“¥ÆàIúúøøÆ Ê €EË·\Œ• Þ¾ŒÏ2>ËøL¾>±ÕË|L ¥…¦–®><¾ÚW®|†ë~¥ì Ù:ý¥íKããË*$ÿ.ßÚfÆÍŒ›S™ê¾òrsÇe§NJJÇ=±ßåk[ïI&ûu?¦:%Ïͱn¡äXô0W^ê&fKù(?º(0F wDE”;j‹ÛÍzè~|uøÑ&¯FêßkûÏ x ÌøÛwš4p¸*ßr±¢ 2¡Àê ¾0˜ø ºtòÒÉK|øûÚ^N;•pú§v›ÓhÃ_ĶÕ]kò•¡íü[~B“7´ßÖÐä×]CO<ô¤íÏ£ž{™Û,Ÿ þ÷ƒR•¸8ð;PÓ¹ZAðÖ|8òáȇòãñ~Åýü=” ãƒúíµž’ØzÑÿÜÿxcî6׸/Lº ª3Cÿ½Ÿõ‚óÿͼê)í‚~SZ,zX¾_bD¨Lðöºèþ¡Q[ûتKŽ+-4­žÖhD³òÿlâ‰*«¾[ç‹öƒCÔïó•éâh—;“Œã~µiÜ3|tÿª[«³8‘<ºÍÊÚzFA{ä7=u£ÖiBÕW^_=<~Ý¥k ¥•ÏWr×sØlš•Ûœî5Ýf¶µƒãôõÌX­ÿŸƒÑg‰Óî×}âÐØÿ¥é m«´Xô0W^ê¦uþ<Þ%Ø[ ÷B§îk4ÅöŸG‘‹û·Q6m~«™¬K ›ÿ»š‡z'T÷QZ,zXÞóbD¨LðöÍY5gÕœUòõIï¿9¸{©r‚R‹Û>WZüó(ÝgšìmS]—@7ÿ™Í¯oï%)-®ÑÖ¯n+®”Ëڕפ‡ç~sÿ d#Rç´O›˜½Û#­ËwE¦Ýuc1Ħ¦ÁE%À¢‡¹òR7ùøölïð­Õs%Üòs#Û~‘bV{ï§v·t¹[›2`C»x+°øûƒƒ„Ö¾¡´{¼7Çô öK”÷¿XQP™Pæü@¬V¥+ .§œC¢ì¸x½ëbïëÊüÔlዃ\û°nA«¿¹è—ä°Lùð÷)cœ~× `šÛ©{ƒ›(->ôä»ÏuùÞÝ‘ .¸[üß#ô­ m÷9àÛ©{ƒ›Pi@ù¼n/®} H9A©‘TÇÉ®¥Ø¶üŸýýwÛ.¾w°©ÇÍ9ë¶WðŒ‹yðÓs¥ÀµÊ‡¤v7¡ÞÊšÉç“Ý]J6"­þº³Á±==¬—ô±5Ñ=Ê-`‹¦ÒÊšS]÷Öm­„» GÚõ³\+¶*iwûŽž×^õn°à¾Æb¨É1¥Ý㽿³ÏsÿÔ€Ònç–[vn!V¹ËîÝ~õY£Ì8«\ß‘þVmÛØ#våA›œO4nfS·Ó»-¿¨aa¸±êmû¥´}Yå<¾¾!Ó  dJˆHåðõä„ß?uùÞË–?6÷Y¡ÌýÒöIeejÔeÉ”C)!"õÞ±âΉEù·Í3pnÊŽ(¥E¹¯×ÖnÒú§>µ¨·²¦dÃÑ §S\3òoÏð›{/:oÖý_èù8vªíÊÙ#݃j¨[ÄSËz’í°00™_ô=ª-'ìÿ¿;й_ý¬ïÿkÔ€ÒîÅæ›_l&V9¥}ø¤UÇóÞmóq½ë_‹wEhÛr—3Õ{›Ôî}×qvÍùÿåÀ^•2?ü<üèšÀº|oö´d»Àn͇|àÕ(çÀž§æMJHÈ¿mS—é%ßTGÌ'€Ë¦’ýð¨u¬¿'ÿöˆHX÷aðÔG:þ+þáÀPå|ØdzUýEߣüÿŸ€âU†>,ž®î¯™£gŽž9Z>ÌJ{°ñâ*—õ%±mΕª½0n.Þ‘ß2Ñm\†S·>aââ».µìzðßa‰Ò–…¿¸,Ô_|)í«öÓÚOk?•Ê|°îŸ¾úhG”¯¿ø®ªiUßÕ»ýó¡Òß,F„Êä‹/¾øâ‹/¾Þþ×Pï¡ÞC½åë弸ñ²ï'$ÛýkÛº|ã±ë¶:`mï¦2Õ}åU²ïŽÚùk‚Û¿^%6¢Kâjç4Ýÿ…^¿-3´ÍSr¬íÀ\y©éK>¾Êy°¸£+¶jûù[\Ï‹û·¯×*íN¯¶w‹•É—2ç‡Å,þ`ñôŒú¾vÝ5vרðwÃß W÷èWüý2ôà²àèûGß?ú¾|°÷—k3Ú£–NŸ-šÕ¬¾QlUŸ Ç?k&çUÛô[á±îÅn]û{'+?þ¢¦Ë˜:³ ÚNo[‹ A-‚äÇã‹úÇš>-½ïNl½èî‡ÿïhlLþïrK9°èayÏ‹¡2ÀÛ·&sMæšLùúÄ}ÇŒK›k*'(Í¿m.ïMh¼¼®.ßå¾zÆ›®Ø ê™3ÆÊæXïßùèÅUN­¬œý2Ùk×Ó¥WÊeíÊkâþ´wÝš+çñÈ=¾[jkë£û÷¶1þiíKJ€Eså¥nòñõ®j™fÖX wAÛ]¶~XÃZlÕž!­kº¦Ì—¾^{át—³Þƒåý/VT&”9?ˆ°žQÜF¯^½^÷ÐWüý·úæGü]:yé䥓òÿ¾v —ÓN%œ>ÍC –WùUlUJ÷ü¬uù®ÄÖ­Óÿ/ðPrìw ¦s5=.k%ùpäÑåÇãýŠûø{(-î“Ñæ·šÉº|ïçß4+oé)¾«óÈOÇ[®UZ,zXÞóbD¨Lðöºèþ¡ûòõIýíc«.9®ÌØêT³w:¹ëò]5o„ í÷σ4Øf6ˆWÐ'€Ý㦧nÔv‹ŠÊT÷•×W_w骜Øv–ϧ&™:}z80í®Û˜Évã [(9=Ì•—ºi?Ï…w ö.Ù» _ðhUïŠØž°ÉõËÕþD—ïzúwà‰ÆŸZN7«dfzÕè½Ù>mì-•v÷À/mkzð!±¢ 2¡Ìù¸´+½¡o~ÀoP–w–wV¶ ÛX¿rmC%œ>í››-0.¶jS“æ^.] ÿû™;{úù™‹7+:þ4¼NpõŽ¿Þz½õzS™ÀÛ74nhÜPùAùkꆼÆS”W¹^%HoÇþú‹£=µ}צ&3ƒ\ºäÿ®ä Ëë64QÐÛ5©©ÁÁ¢‡å=/F„Êo_ÆgŸe|&_ŸØŒêe>¦…râRÏAÏ¢ÿ³q'ªt®únƒôÈøeµý}ÇY=¶V©dÔÉÄF|S­_Z}Ú«µøoE<Úúø² É¿Ë{¾™q3ãfÆT¦º¯¼†ÜÜqÙ©SÉF¤Ýº-ôµ™XÀû‰µ=TùûsÁn·6´¶ Ôý»Jª=Ì•—º‰ÙR>Êφ. Œ)Ù{¡§žÙhíÿÝÓЯ®·c×ìVCÝnþ]ã>ó|×ú_¿Z!þ¥Àß¾Ó¤ÃUyÏ‹• % Vu„¾ù¿A¹'sOæð àjç ¾¬²G §Ïó×ÕJÿç7ší60[³·éàú?üñkÙ¾[o ì]®‰}ò†öÛšD=÷2·Y`2½ª‡þ í¿/¬”eÁ#¯~Ílå[Øie§•VR™ÀÛ÷óG?ôóGò£ò‡ÈèY š*-®»Ö*ÑðŸ9$Ò­ÿhë=ûüp¶ãø<·J_˜tTgFþ¿ß<Ô;¡ºÒ>û+ZÑÃòž#Be€·ïÉä'“ŸL–¯OÌ7{¤|®œØ{ÇŠ;'É·³Î²öy6Õw˜¶è„ë˜É'×T´ÝÚ÷ÅøO ¼ª×·üçö_Õvf«·QÚ›ƒ=æÎØa_ÀM«¾Ñ}£ûR™ê¾òêÔ|nëZ%”V>_ɽ€»IN÷šn3ÛÚ!nÆÄz~¬ÖÿÏÁ¨cÕ™Më…:Ö œkf$þŽÅ›š•‹æÊKÝÄl)å«Óºÿèk«„;¢¼uòËúkû¯ŸÐ,­Á$î&Ä·Lt÷ù7¶?þßóÌ„^.Ô¬©Ì§<¶ýÎ:ÂâŠ|ïÄŠ‚Ê„—^ê }ó#~ã*T ¨$/‘¿Mûw 8]²§Ï»Þ}þ×ä”xćîÅýÛ ®{ÇÔ:k<Ø`Zþ?ù¼n­ê£”°,øåaÇd¯lù–/«¸¬â²ŠÔ$ðöÝ»ïþ½ô×ýt‹VqJ €“v/èyÍl ‰M•…χNÕ­»\ONHðýS™°èaù–‹¡2@ HÕ¤jRµ­¯¼/­˜â¥´A‹‡9ër½\e©I%³žÎãFû.¸ œÏþŠÖñİ¿fÿ-ßæƒ=zP˜ê¾òr«Ûæó!ŠxT²á±¾.UêNòhl»KM%å‹!_ ù¢€ß‰¾´ukŸ*%—j q_õϕӊ^•÷¶ª”¬ÄˆÄˆÄùZžzØøÉ&Ê Pó‡Á¯÷KìqÖNË›¯5 ê¥é¥éEM–…+¯áÎ{b‡)í³³Ú]yÜ«ÌÏþŠ^åÊ«Lè¥é¥é¥m.}9 [P¥¨…¿¼O™¡oþ6îdpGçmh[»fJSKc+zUÞÛb¨FP²²zeõÊ*à6ºa/ËÓuâ•—ÆÖõ½IýW°Ÿ0n¸ ã¨Æ²såõiôȵ<” –öVô*W^e‡˜9å#žr¹ÃJ¯ îÍok·É¬“QKyo‹UÕå VBßü€ß’!éCÒ‡¤°8¸Ö!΋Óy±µ3FzÚEÊûyß¿=~Ô!P²²We¯Ê^¥õb†žx'(‚à¶è­èImý,FjJàééSÀœçˆ˜®?yÜW[Ãß7»åyy?ÿzú×Ó¿ž¦ËÚ•WÔÉ_¯¸­%¸-z+z’+¯²FÌœòïù¾Ã«›Ü›-®öÚÕõ} ¸³!VÔ!”†¸dújCü–œ™vfÚ™iò"kû‡õ‹œÔ‹Þ>_2 Bà¯Úæ¿oý}ëï[Ô! á§ÃO‡p±tÄ>vg+âÛ¢·¢'å=,zž Ê‘Ð/¡_B?ùº¥N½v3ûÜCëµiQÏýÁÚ®”ólòlòl¨Ã²våÕÿý5Ýíûß½=É•WY#fNmóê½a}¢ü ¹O[ô6r•g†õYy‹•u¥!~û}uAü¶Ûò¶åmÓo¤ßH¿‘¼ì®mïaé;„S{QÚ-'Bì\îÉûvÄÈ#GŒ¤åH·O·O·—­®­í›øin§&7!Ä}ÍövjbpÑ“ò=OåÈnŸÝ>»½¶4f,5>tœ·(m½¬®í†×÷íÒÅK/]L–Í+/«.Ž>†i“#Îuw!Ä}Í6âüQwÑ“\y•Mb•þlsŸ&öÆÜ§-Jûðn?»­Ÿ­oŸÝ>»=¥!~;}_ð[ooo'/Á~’Sl-Nð¯×æT°8ÈNÛá}ùúåë—¯S{€‚œÑœÑœqøÐáC‡ x0þ¤¸‡^ÎD¹¯×ŠÞ“÷ªèmÑó PšèØèØèXùÆÚ ë‘áÛq_¯mÔbI§ƒg´])g9e9e9Q{eùÊ+,ocK‡¢Ü×kEïqåU–‰YTë»­ïNÿ3ܳ}½vvºO´}“"œØèØèXjÊDüæúð[õlß³}Ïöi+ÊóͺøzWå4ÿªmÜàúÎÉû³C…:T êe:¼ëð®Ã»äGnÝV' ój¦t ºH «{+zLôž¼WEoSu@™î¶½Ûön[mWÊ Ÿë°w8î«¶u|ÚýZÀ¯JOôšè5Ñ‹ªãÊËìrÍ»Uã'-?×Üí6®î­è1Ñ{\yĄòJ˜`Þðcë{ܳ}ÕöÖÙÞõšh[ˆÕUe".^„¾Å…¸üùCä‘òm0ÊüŠqzÞì°+A8åëÒÞ¹Üûv“½ÚøKw.ݹt‡zÊIã¤qrí0Úa´üøýaPtdƒb]Ý[Ñcüúh‡Ñ£EoSt@ɦ.ºtêRùz¦FCß‹-·èêÞz¼7ó–p­ï§yoä=^“Ä•×?:ùÏ5²¶"ÖÕ½=Æ•1£j›o/ï:Ä;…û·º·=Î9ô·ú]Þ“b…@½AÉ€‹ŽÐ÷M ./½^z½ô2ìmØÛ°·¼dW :ë¼…Sþ´Âûûnb;Õ²º¼‡­¶zØj* P¾S‹O->µXÛ)ü¦óî>~ w oE/iëCÑÃTP¾GY²ei[ÕÔûÊnñ2ÂÝÂ[ï¥+¾;áhèhéRûм^[xmá5*+/¹Ñ›%§„»…·¢—¸ò‚œ˜]åUa»Þ4Û¨ÊËõavA_s/·ðv«6 <Ü´_b…@¥AÉ€‹nç–[vn!ô-^À%&åFʔڊøÂ.¿{àô¯­]±Ùß jë½Ï<{ðŒJ‹—^xY~,7Nq©lf—ÛõÄޠͽòVôŒè%yï‰^¥º@鲭鶦ۚò8è×këEtþ틆ÚzïÅ ƒ^ ¢Æ¸ò’×FP·VÆ“üÒ׸¥ôðØg¿ô5n©¢—¸ò‚œ˜]µÍ½3¶zw±›Å½Ü×{ì³XPcP>à¢Ëm—Û.·¡oñ".a#]GºŽtÕúûM£úõð`)¿Móì´¯±µ¶Kx‘ð"áu”.?<üð°¶ãzòçácmþ î•·¢g´õ›èUª ”2Û4Û4ÛBf…Ì ™%_á·­{Ïa¶wÇåÉÇ«÷æoë·Žø}±»ÖÏ&2:eDq¡ð+¯ào¾ð¨Ùˆ¸WÞŠžáÊ …3­¶:Ù—Ú¦¯‡1÷uó·9ͬrs;habò­¼ÇÄJ@¬ ¨.(pqÉÿ9`Bߢ#.aÙò‡eÓ·Ó·Ó/àó[þWk¾¬6+GoÀ‚ –7{þì7\ÛB*4'4'4‡ŠJ¯ä~Éý’ûi;Æ×»L3m0ŒÐW´¢7´õ•èI* ”^wöÞÙ{g¯¶ÕŽ•K°Q‡}>5âüR[ýºN»§­¯fÙͲ›eGEA÷+¯Nqs÷[ûúþóÆß¸¹û­ý¸ò‚îĬ«­fÒ¿ï¼²ñvîñjz†;× 7¯ß°¶£¶¾+* ¥0”‰X.>¹øäâm'¼nåì?·òÌm_6—w?ìý¢‰¤­Ìv˜í0Ûñ4çiÎS` Ô‹©S=¦ºÖOù÷Ÿ?ÄmPYŽ~EhëÑ{TP‡£ýøèÇÚV>u¬ÛÍíÆÇ'neꉲýz¬ž}zÛ#­Ÿæ¬\1¸bnFnFnµ„W½òêqoé^Û.e9ú=À•^•˜uÅ ¬­~2¶v[åSVß œïyÕ:M[ÿˆ³?µ„Ò…ÊD¬ ‰û÷'î×vòëòÐî‘e΋‰º}Xv–7‡ô ðÛSøK¿¯¯½¾öúZêP Ƨ猞3zÎÐvÔÿè7×Ñu\Y‹~Å^këÑc¢÷(" &qmãÚÆµÕ¶ ªÚ6¬_ŸV>OyT†>õ»}ƹÍÕ ¿R~hùÐò¡%õƒ¢\yu{´(ØæÇ²ýнæÊ E!fàÂgé ǺœôXvîñæÝ7¸Â¸$O{ëPm}"ÎøÔJ#`(°â¬ Z´&Hۉл®åE3¿,ß¾³üw©{Yp¾\—:Þå _*Í8›q–ßeTè…é Ó¦¾»|wùîÒ6,™<ö¬c¦æÏÔ]Á~ª~ÿLÝì'öT[?ˆ^=F嵊>}>ú¼¶Q ß´–ëŸXöQòeuG¿ r&Ô\þWÊ™f~˜ù!5ƒâºòj[gÒ¦:G&>ؽj£ßÑç»7{Ê•Š‹˜ Ÿ±“Ç·_Ѱ’ºïñ>º8p^½­~ÓÖâ,OÍ ô"†2+TlZlZlZáK„_kw6hÜ]}Ë‚­kB"]- ß÷Ôš©5SkR'€º=íõ´×Ó^^½&zMÔ6ôk×6·–Y¶eÒÅÀ 5E¿bÄÞiÛwÑ3¢—¨ r™šLMæÄ÷'¾?ñ}m«£ª/ÌCk<÷ŒŽùî§Yê‹~m¿êÛzÜ௔3Â3Â3Â)¼‰+/Ï&=«žÐôôH×_ÔýŠ={Ç•Þ13>{/m`㤯¾{¼4ëÑÉ7¦v¨ñjƒõÚö]œÙÅYžjAéE e"V´uqëâÖžDX¸­Išc“¼AaiAwJï‚à¡Mßëþwûmwú¶–Sáû{ÆéŒÓ'j(;²‡gÏÞÒ«¥WK¯Âç‡_ή™á•UÚ£_±…ï©è Ñ3T(Cr5¹šÜÙÞ³½g{¾^røuÈõú¥=ômó͕ݒٳǾ¿×:]ët­‚·så5pÁ=ÇÆ¥=ú{Á•Þ1K^oÍöÖ±5ϸ¹©W¿c¥=úßõé.﾿âl.ÎìTJ;`(p)pÐü ùAóÂO™–Ãl«J¿Üí(y=-] ‚-cBþçr±ð½Ó¿¬YÿòµÐk¡×B© lzùøåã—GyŒòåQøŒ1ìE×Ì:O³šœè¿§´„¾bkÅ–¾w¢DoP ,Ûà¼Áyƒsák'“»v/]«zΪ´eKi }½óVžKI¶}Þïzä¨Â÷Îí‘Û#·G÷’ï%ßK¦ðö¯¼|š÷:Rã«qåS»ì,-¡¯ØZ±å\yáí3¶˜½ ¯ÀØkVN?äm »ô¢´Ü㽘Òu®÷e#+W³Ñ…ï8ƒSP`(p©q¥Ã•W:˜G™G™G~mu¸^˜…×¹ysßRÚR wwؼ #v·5óˆ®nkð°ê…ïK÷ Ý7tßðdù“åO–S„øsñçâÏéé`ΖíGd¹¸Ð×ýàpÿ±…ºì‹ØkF ¿Ó N/8½@—Õ”åè€Cív{ÚϸÃBq¡oƒåŽÍr¼0ÜdŽ‹.û2Öj¬ÕX«œQ9£rFQP•WHNÄúÚ}‘²Ýe‡ÒB_±Ub ¹ò‚ˆÙ[ÌäºÔäVMÈ W—óô úDiwz¯Žî¾Ñ·nÿ&N'jµÑe_ÄY›€úC™€K™ç<ÿãùQs¢æDÍÑå´êÞÐ"Ødëž+­[¸-©¥@΄û‚üWÜ Zå<_Og›&nš¸i¢æ‘æ‘æã@.ãBÆ…Œ ÁÁÁºÌ*ûtsªûñÅS[vx_)©ÐWüt±%ºl³Ø;±§Œ8€6õë=ÖPm@µÕtYeU›àjì3­Áã –]+©Ð·QâÒ„Ã ¬Ÿö˜9*X÷+åƒå–;È(úÊË'¢·~éÃ’w_snQR¡¯øébK¸ò‚’‰Y]÷³ÀüA~š?Êê7; }IÝéMnÛ>¦á{!#ê:T§Ë6‹³³8S3âP+`(— ¥XÚø´ñiãm]l]l]t_(tùÙîOËÇ;7µªæ–ÕwÿÑbþͯ©Ý·ùÚ¬™Ò´SýØÆí,g™é¾iz=£zFõŒº;þv<ã @¹q¹q¹qquâêÄÕÑ{E“»…O°¹þË‘5‘^wßÈÛ|¬‰ôº+~Ê«n›Ø#±wŒ2€î’““_uõee”Ü¡}ýŸÆV[’Öø—eÆÉYÅ÷zT™õÁ–Õ¶1};fèo9¼Ž³îÛ6¦ù˜æcš?6ylòØ„ñEi¼ò ^øE£šÎÞRÞ±áy›ïì-功•J#1ËÙ^÷굫lfad»41à3'»‹ûºÎð¾T¼÷xŸM ]¸ðÀŶõ<æ†-ª_¡ö«^zâŒÌø¢, †2—zy‘y‘y‘   zEà[Ñj®Ù或î×ê-[–xÙÙì§ß[ukqè@ÛK9Ò¤vxưmó§GèÖ„)®5.m’âØxÐ/ ÖN±?ovÌhÞëý\ïlïlïì³ïœ}çì;Œ&€¢xð÷ƒ¿üeeeY”ù°Ó{ͺY¶›þíЮv!?ÄGoiÐvOÚ·×Ý©Û׳…hÅŸˆÿ+þ¦ø®¢ü\±åb/M€¢Èé–Ó-§ÛšUkV­YU”šÙÏõo4ÚQ§y»ç¡]ì-â'×q¶Õä›ù ¬ÇÍø.¾Á”ñ?|_­~‹ˆ³‹m›}Ñvæ-ëG=&Žò°ðK»”ª)ÕN×ðx½ŸÛav‡Ùfgü”ñSÆOŒ&ÔzåÕ OÈój“>=2¬VÃN½æ6·¶ëýѲp»JýË­ù̾—hÅŸˆÿ+þ¦ø.®¼ Vbæg׫ðZCƒ †õïät¶V‡ùü\‚7Wi>ÍeƾÄ6Ý=ªJŸ´Ûå9é°[» žF;/µ²w;w%¸[ýw'tnheÓ4½vºy|QŽ/qægaFe0”‰XU^f¾Ì|™™h‘h‘háîî®§HvØy`šošoš¯æ¥æ¥æ%c xݯu¿ÖýZ1 bÄ,ÐS0±…bk5€7áy»çíž·Û||óñÍÇMÓMÓMÓ•¹2¼nðºÁë2b2b2b5påÅ• Îâì Ì#KœUÅVœm5”MÀP&`•»Zþjù«ågÚÏ´Ÿi_RKÇ>Ž}û¬^½zõêÕ÷œï9ßsf\¼MyýóúçõOÞ—¼/y_Ϙž1=cJj>?]l‰Ø*Fàí»PãB 5Æo¿}üö’ZúNòä;ië•­W¶^y<þñøÇãpåÅ• 8Sˆ³†8ƒ”Ôñ%ΞâLʸ0”‰¸Ì¹qèÆ¡‡~<ÿãùÏŒ30Æô©éSÓ§Åô–w,ïX~|æøÌñ™‡Æsh̃6>ØHŸPš—O^>yù$ýPú¡ôCK«,­²´JËoZ~Óò›âºÿšø—ÅO?‘žP¦kó¯Í¿6ÃÓ O7<ííÔÛ©·“^½:zuо2ô<ãyÆóLt|t|tüñrÇË/÷xýãõ×ÓçàÊ‹+/ (ÄÙDœYÄYFœqŠáЪ£WG¯Ž8Š3£8KÒçPºã?3>f|Ì8)<)<)<%,%,%Œ>PÖÜ9vçØcÉGþß—øz ¬ÉÍÍ=ºöèÚ£k“~Oú=é÷4‹4‹4 zàÊ P2q¶g.qg4zÔŠT‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚P‰ÜØÜØÜØ£k®=º6é÷¤ß“~O³H³H³ g”5W\®¸\qInÜ:¹õQ×£®G]ŸŽ{:îé8z(º”°”°”°¤ð¤ð¤ðcÆÇŒÓ'@qÇ”8¾Ä±FŸ^0 h׿_›mþ†§žnxÚÛ©·So'½:zuôêè™çÏ3žg¢ã£ã£ã—;^îx¹Ç민ž> 4ÏÆ<ólÌ)‹S§,æUšWi^¥€Ž:ê“Ï¿þüëÏ¿Žû)Ÿ.ݼtóÒMÍVÍVÍVzeÁƒ6>ØxhÌ¡1‡ÆŒÏŸ9>Ó±¼cyÇòE?²LŸš>5}:0f`ÌÀ˜ÏÿxþÇó7Ý8tã}޲CÔ¼¨q,ˆã¢èÇ—8NÅ1+Ž_q,ÓçP 5.Ô¸PcüöñÛÇo×+!¾“|'ùNÚzeë•­W<þñxÆÀÛô<ùyòóäDïDïDïÖ7Zßh}£¤æÃ¡†N:áT÷SÝOug\ ÷œï9ßs^½zõêÕ«û8öqìSRÇ×Lû™ö3í¯–¿ZþjyÆê êYÔvIYâ¸Ǹ8ÞÀ›#?5kѬE³ô J@ ”˜çíž·{ÞnóñÍÇ77M7M7M×S¤Á민.#&#&#†Qð&܈¾}#zÂŽ ;&ìÐS°+W>ðdÀ“ŒJ—š—š—i¾i¾i¾vØy 2,§p§p§ðD‹D‹D‹—™/3_f2t(‡WæËÌ—™¢nE +óøǾ˜ÄœÀØŠ 0JF ¼U9Ýrºåt[³jͪ5«Šr+§izítóø ZYçÄ] îVÿÝ—ZÙ»<ìÖ®‚§‘ôI»]ž“ö%¶éîQus•æÓ\fÌïäçêÜ¿“ÓÙZj 56öz?·Ãì³;ÌÎø)ã§ŒŸMEqsÛÍm7· Z:hé ¥¯ù€Ù3ÆÛ«ö8Ô2ÎêüœrÃÏÚ‡Ä÷~ªÁýÄO}è~èÈâØƒž¡‡7ÅV𬿻ó‚Dw£5NRÿÇ©U¦Û·ì?È"¶(óð‚ j,¨ñtêÓ©O§2šPš³ïœ}çì;ÞÙÞÙÞÙ¯Wá†ßY}]÷[«ÝMw~Þ&©·AÄlÇ”awf?¯ÿÍWÛ–4k°tüýïG7Ð×ä»–NÇG~<ÿ»®¡&Ë×¶lݪ÷ Ójöó\ÏåøJˆHˆHˆÈ‹Ì‹Ì‹d4¡¢&E}¥ÂëFx8Oor"ô’åêö;¢­ê~ßcãÒ¦¶ý:®¶·¯×ÿ‡µ_Ù/é[-î»Ýܿ͵ÑúÈD¿:!Îva±®zŠõ«_ïçŠ9AÌŒ& è€P2`à-IJLJLJ|ÕÛ4a‹êW¨­wàbÛzsŸM ]¸P£ .®öâ¾®3¼/-M øÌÉή²™…‘­îÛ6¦ù˜æcš?6ylòØ„ñ ‹çŸ|>pŽýû9¯ðxLÓ*ÆæULçvqÙ~ɯ‘5®Ñ¤¦W›g‘Ò>è·£³—_h2êhϵõ>~Õ¹zÇ•Wv\ÑìÓìÓìc”QRnÇߎ¿ß3ªgTÏ(Ý«×d¡íí?Ú¯h5ÕÃÓiîô6>>qq©©ÅÕ6ò_âup£³Õ¨:ß ¶á= ùLÝ·ÍÖÅÖÅÖ%m|Úø4^H&êPÔ¤î5ì²³UójzÎø.Åvî8‹”,—ƒ“'Ÿ?ïî^\í—öÇÕwëxeÖÆzñuì]o›ê¾mb®óã x=À(0ð=Ö{¬÷Xo@µÕTÓåFLȈºÕÇ%·mÓð½â zuoeõ›Ð~þ ¿FÍu¿…t°ÜÁr™OhujÄ©§Fè>«Lú3ÜÒæøÍ~»gùí*Þ¸W÷öÔuõì9¡•{ÍwušÃ;‡té|k×­]·v1âxKiimš¸i⦉º_v‡|µÂ»×òǃŠ7îÕ½u>8ÆðÛ{Æaõ<îè²ÍQs¢æDÍyþÇó?žÿÁ°ãíõ&jO—*­ètÎȪwåe_ÚéoЫ{ÕíWc·‰Ÿm™v¡îÝç1‡ˆù„qèŽ%#°ÞˆÓ N/8½@—.ý›8¨Õæêèî}ë–Tè«­}1o@ß O¶jBV¸êôY‡±Vc­ÆZåŒÊ•3Š ùRó¥æË—\ZpI§7ì~ÕÓyÂS½¤÷+”Tè«­½õîžSM Æ6ê[Óú:ýZŒÁAƒƒ”Þœ'ËŸ,²¼û†îºo(¼«,2)oÖ¦þ–±–ìö>¹Ò/¥|I…¾ÚZ÷Àé6ö2·r7mR½ð}122ºÒáJ‡+¨¼9¢ÆD½^“Ùf=ð¹ÓŠ’ }µµ“§?rû­oϸH»t£6fÏ«Ô)|_Ä|"æj  `”Œ(fœ78op.üöŠ‘•«Ùè‹)]çz_VZè«­ÍÛv7èEìµ@+§ ß;·GnÜÝK¾—|/™zʦ§Ÿ>~úøs½Ïõ>ÿ tZŸ!ƒí>xnq4ï{lصÙwKoè«­uûeÚÆ¾ï±i±i±iÔ ^¨ŸÂklÈâí¼Koè«­íæøí›/ ßw1ÿP'9`”Œ(’èóÑç£Ïk½Ý¡·Õoχ.œ§¾è7›<¾ýІ• ¿y”ùa懙R3€ú<4hþÐÜh±Ñb£ÅÚf€m‹çÄ»vPSè+osלxt Ò»ÿxëD­ï}o׿]ÿvyšÏˆ¹ˆšäG €’¯)®m\Û¸¶Ún‘ŒKò´·Í»þnpuG¿ùÛ ÇºœôXøÍ£‡–-ZR?€:¼yò"ÄÓÞÓÞÓ^ÛQt÷ò UýÊÛ%=Çîrü][ŸL^8yáä…Ô w}íõµ××~Vm8å›=»¿Qwôû¯GC;-9iñ•÷„æë´õIâþÄý‰û©NÔ‰¶*r9Ö*¼Ú³‰¤ù»uTwô›¿"õiЪð9GÌKÔ@ @É€Wvôã£ýXÛm‘ÈxÏ«ÖišÜð°à ²ýæo3¶v[å£õbÁƒ+WÌÍÈÍÈå3@©7øÂà ƒ/h}hdĪí^ae-úÍßÆŽŽ¬é£­6ý¶é·M¿QE{šó4çiŽÙ³f;´ÕWè©ûìËNôû¯xÏ Í‰m[|j†h}4ôÅ'Ÿ\|B-ANÔ†¶Êqý´uˆy­I^éß¹(;Ñoþ6âå1—´õ˜—ÄE-€P2`àÜÙ{gï½Únˆ„›×oXÛQÓ3Ü!¸fÙŒ~ó·éßw^Ùx»¶¾še7Ën–”^ñIñIñIÚŽñC¿íY¡,G¿ùÛY†ÛiÉ/}ré“KŸPQÈ/4'4'4Gë§~ƒç?Ûµ¤lF¿ÿŠC–¯>öÀô‚c¦ÇYy/éÛéÛéÛeË–=ŒŠ‚ êAÔ†¼f¬[xõ4©U/-ÑmHÙŒ~ÿõiàG:5¨¦ms @É€ÝlÓlÓl ™2+d–|ëvÐÂÄäÛœfÖ¹ýæo÷¥¶éëa¬íæÑ)£SF§Œ(. t¹^þzùëåµ×qç&ר_ŽÐ÷_íÚÔ¯ƒôhÓòS«ò«¾£úŽê;rÚä´ÉiCu!áE‹„ÚŽ/·•Ñ£×!úý×»W/xØE[té:Ò•º‚ êA[µŒÿßÏó]+ýæo‡ÔÝ>×IëJ^ÌWÔ”eÀÅåɆ'žløçÉy›ƒ7oN I I ¡gEA èd[ÓmM·5ÕvûãÖÙÞõš÷jkglõîb7K[ï½ôbЋAÔP ŒÕŒÕŒõ3ð3ð3Ëý´¯^kˆ&75…з öïléQà»ÚfÂyóçRbeÙƒgž=x¦­B"™ö=q¯¶Ö}ÏŒ»›=µõ^Ê”)7¨±²LÔ€¶ ùâò®VNâ^mm§‡1M­»jë=1wQcP6—ÞÛ{oï]ÀSôƒEA ü‡GY²ei»å±¿U›|ê÷?Ú—ëÃ삾¶]ošmTEÞ‡ ¯-¼¶ð•(_´„i Ӵ͇OÂŽì XOÐ[xû«&¾nc­oάœY9³2•V6 [=lõ°Õ|F|_#ë¦k|Å-N=@Ð[xk÷Û€5“ x>aoÃÞ†½_z½ôzéE¥•5bÜE Èkã³;Óýë½GÄûíØó)î.õ…¸U+ s•eð›ëIÂ`@ÑÿaêÒ©K§.•/¼zœsèoõ;á®îíÅá]‡x§h[ÈÞyo佑Ô LÏÝž»=wÓvüJ+¿Ÿë¹ŠpW÷ö볃]l7Ê{²ëÝ®w»Þ¥ÞÊšKw.ݹtGÛñåÕcá }îêôVà앇R6m­}ßö¹¼'ˆü!ò‡Hê­¬ã.¯Ëû†Ó'9·Ê-‡ˆW—6â¯c.Z_!æ1ê Êàâ²§ÖžZ{jL3˜f00P\€­î¶½Ûön[û\¼íó†[ß“÷çD¯‰^ù\ P«G­µz”üÈíàl[c+î«¶O&-tÖv~¹Xîb¹‹¬ÐÊ:TèPA^ öÚLú™X÷•6ýÞÆÚŽ¯gûží{¶ª+ ÄXk}ì³QB–Ó~bÝWm;„Î0­çPÀz B‡ *PuP֯ܣ¹GsŠ ·­¢c£c£cåK«Ùé>ÑöMˆr_¯ÍÚÖw§ÿmËÖ,§,§,'jPŽ››mÇìÕȵ}­ t_¯Ý²o¶‡Ëmy¯vËì–Ù-“Ú+ ._¿|ýòumÇ—wËåŽeè¾^kÙ=àËvå½oooGí•b¬å5à9¦ã¢êÓ‰r_¯rHKrûBÛ¬%æ4jÊà7‡0PtÀ@²Ûg·Ïn¯m9õðn?»¢Ü¢´³Í}šØËûvé⥋—.¦åض7lo˜ühíûi[‡š— q‹Òæ<:¾"¨›ÖçLDÞŠ¼ÅãjUnÄÈ#GŒ”¾ã²aÝf7!Ä-Jëãû“¡¼oõé7Òo”·-o[Þ6*P­ÄøŠ±–×ÀÈJ¾¯ßŸ(·(m×£ß6´i)ï[1§QPv¿„Á€×C  ¡_B¿„~òÅSä*Ï ë³Ä·Eoï ëåo¨m‘šg“g“gCJà5Êk”W¾˜½åŒ÷_„¸EoWWžbP¿©¼‡¿ÙúÍÖo¶Rjõ÷­¿oý}Këgß]vàèqBÜ¢·æ‰š€yò>3íÌ´3Ó¨Cµã+w§QÁ—ͦß½8òìd·úÚf01¿Q‡P¿}„ÁÝð‰ô‰ô‰”/˜®]íQß7‚ø¶¸Úžï;Œ±º)ïç_Oÿzú×ÓÔ!P²nÅÞŠ½UÀcðÍë-0º¨ÉM=A|[í£~‡ë¸hý…˜ëy×óxœ¦ íñÛã·ÇO>âõ†tNø¢"Ámqµ®ïO°ª±¼Ÿ‡¤I’Nª•_ù¸‡Ûo\æD|[\í§Ù£jÕê.ïg1¿Q‡P—,Â`@á€Éê•Õ+«—|yd·É¬“QKåGªß&6ãXQló¥–]zç(ykS.wXé$ïí ã&Œ›0ŽjJÖÚ–k[®-à›ËÏÌp‰VN€zøÏXWOŸÐ•íSk­pªnÝÕØÀdºÑ6ýÖÓj¹.nÙÐ÷võ?f ÷±·Ìž–lØM™1p÷-YÍ,à}о—}/ûRêÓ&©MR›¤ÞN3þ§þJˆN§.ÓK¾i]·ëËá/̸·nÒ×p¢•sݺúW “‡˜|hãè<Êâ¶Ï•CüiòýfeÀÞKW|wÂQÛͯœØœØœXªQMĘjñ¨Ûé•ݶ”‚Ï×ö8ÛÕͶ^¨ç/ÆçÅ–gϧν”¶#}<¬_À3BÄüF5@Y@¬„Á9`à_###äK¢¸“ÁóW ¯¬×øSËéf•òo¹’·ùEä€nA´-C5½4½4½¨I ¤øüáó‡Ïòcó~ÄCÿ6%šVJ­¬7üN·¸ºöz¯èç5½R•±Šíë"ßÚ%O–r†á¦ZFkÞ´îªû‘eÙ-`X»v>zq•S++-®½¸MRßÉòm>—}.û\65©&bLåcíÿ ,ÃêýÒòÉZŸý½gÖX!ß Åmmßó+Ýí«Ž6Ôè7o­˜ë¨IP7`e" ÀÀ¿ Š?(^¾ º~ªÇmß¿”ýNÝ×hŠíbTÅj¹[=ûP«&ò-¿=óöÌÛ3©Iàí{6êÙ¨g|¦Çú§Z ã”—Æ}ù¥½”ÛÕýÃè‡ïzÿÔ©ÍI«5G½+><³ÏÉv;ª76ëYµbþ¿ŸõðÐ{þW”?±<2)`±¼Ï½êzÕõªKMªIzTzTzTèì4´G ^öÚÊÈ”v¦ç¯{œùg³bõV ²:ÕìNî ‡˜O×s{wêÔu¾ÎãFû.¸`éè¹í"=½Uz?çßÅ=ºí䎫‡Éû|‘Þ"½EzÔ¤šˆ1-àáÏmúÓ±¼ò£ßÎçͶ^ªí¶¬B=gä Z^ò­s5 êF¬|„ÁP–ÿ'U“ªIÕ¶ôÉÕ„ÅUB\zk`ïrMì7|ñ©Cƒ]QϽÌm4¸Z½‚ñ}­Ÿ£U|¼u[È$W+ù–ô8èqЃÂÞ¾‹Ž/ðÐÔ™­¿Øi·µdƒÒgÉ7X=´øŸ™Ø*·SLæ‹@÷ÿæ½ÿÿw‰?Ïÿ]Úþfɶ¶.µ§>“÷ü‹1/ƼCeªÃ²ŠË*.«(e×溺‰+٠ԩ߈³1ÿúe2‡ÐÁ3§}&þ¯<ÜRgYû¼›Ä ¨ý±Í¯J €׉}O ”÷y@¥€J•¨I5c*ëÈÖ'“\Ç*9úýÂ}g=§c†åL¶è'”®xàª-¶Žü*§˜ë¨IP7àÒ…0Ê`àO&?™ü¤€Ç¶ýÎ:ÂâŠrâÒU‚÷Ô÷Òý‘ŒÊ€¯Nëþ£¯­|Ë£ûF÷îKeoߦß7ý¾éwùQylÙŠ- g”lDºgȷߺ–«¶Ÿâz^—@7ÿwnؼÚ3¥ÀQõH6} x Åëw®ß¡2Õ¡ÓÊN+;­”r£%Kƒ¿_²AiÝŽ›\&¶Ç Ùâ¯Z®º<ÒÙ3.æÁOÏÿïÿÿïÓÀJ‹«|fìfÚ´€_ò;™{2÷$•YêohžÌ=™{R>¾†[L/ë?PrôYãä0×5ßs 5úäŸ3Ô‚A{­æ—–xÜß{¹~ ßZ1×Q™ nÀ¥xíD e0ðŒÏ2>ËøL¾¸ùö& ®*'.ýuWçÆçUðÝeÿBÞ–ÆøÙÀÐE1\673nfLeo_݈a<.õ¶ßÞcMº•lDú½ä§ý¯÷0çŸ}W·ôZ(¾«Z“U–)ísÀ»?Y0Ñý=yÏK•¥ÊRe*S%·ÉzëõÖë-eŸjq R—lDj•×ìÛN «KV‰=½mš7Ô%Êm¸kA·=üâ‚Ò`+‹ ³úÉ·3Ë;Ë;Ë›Ê,íÄ8ð ýÏ:Ÿ·¨§äØÃü³†Õ ÄÖÚ ÷½hêµó×·e¥%žlwÞ×Ý´€;Ľõzëõ¦2@å+[`U µ"þqèþ¡û‡ xò_ÚÖô˜¥üU´¥1Öœ ïì­ýÌÞ¶€´€´€´D¼üØ¢ Ê%‘î8>ÏÆ­ÒÀ~÷×þjØG]­ëÔ=ÄÍÿéa—3öMj+-¾hº¥¶÷NyÏ/_³|Íò5T¦Zo“™uXâ^Wiq©î­m»>çÆžÎÿ¹aeÀvôÿ$2^Þÿ—N^:y‰O—zbåãÛîÚÔíu;*3:m»xòˆ:‰í4ë[Ó°ê¤1Í“š4øªt=Z´õšy.1þ…•<°²%.íƒ@M€¬É\“¹&S¾ˆ¹pºËYïÁÀoºõ®j™fÖ˜ÛF€58jp´€ãQJý>ØSiMÖ=ÄýìPÐÉÿ|øË_z˜Ö]ª´øžû~ÿ òžßz|ëñ­©LµÞ&«ÙíÓ]F(?èõè6+kë×´)ÖNq¶eöMÏšöŸÖí¼5ÿ¾Ø=ð|Ò0eÀõ;G¼\ÜKÞÿGß?úþÑ÷©ÌÒNŒ£||ûÌYYÉ.Fiqix¯ÏÒ«´ªš£wJ?¼Ê@½)ýO¬Ýa¿:Ð[º`ïðžž5YÉ+[`5! €ÒŽøÇœUsVÍY%_¸ÜÓ+Ø/‘øM·=Û;|kõœÛF€2/ãm×ÕÎ0ª¢´èW—6×þÄ¢ Õã>ë›kÝâŸOY 4±©2 sçÎá~æJÛÚ§Ië ¸éßëë^_÷úšÊTëñeý~×…ÃG)?6ü½ægõVÈ·_ŠAœá‡ŠƒB¿¾¤äíw«1õu»åÛ¿#`GÀŽ*³´ã(ßAmëë¸Y9AéW9ÇŸ¸ô¨nP÷¸Á±…-ÍÆ~_;\ñ–®8dؘ„Z—XÉ+[`µ" €Ò¨Ä`= ”¸¿³ÏsÿÀoº1ÕuoÝÖÔ L~’»m5ýÒýŠ7þœöœ[í°Ø £u†ús½·4ÑãŒÒ>û+Úœÿ»dM½•5vuûŸ`Wzàüêß{zi¢B?Ál:«ú–#Ô[Y3ìäî‡Î­•‘Núþ\°Û-§{M·™ýó¹ù+Zô­¶pråó•Ü wKWÜÞùëÆu‡Qo@Ηÿ.ÿ]Ä0@ (NÖ³¾gü¯¿é6⩇e=‰z”©™gãr懔ú^j¹ÕÐ;§»g‹¡Vóo¿ÇBÇ—&y¿8¯©è•ús£·ÿe£ã¿ ¦ÞÊûúa{'‡—–7þz½¢Óñß<óæWÝ9ÜyÃè3ß~kÞÀ½u“¾ù÷È¥Á„S˯+.Þ?§æÝ¨·²fDÿÄÎç•‘~ª÷eL­¶ÊâªÍÃrã>KmåòÏ/$•ö¸ÃÑ‡êµ¤Þ€ÜÆCm @ÉŸ~ÑåX¯@Í´˜!1vz† ãô?ÛlYÙüÛª›çUédÿâyøÑ5'þoVTn€Í'€Ë¦Òò `m­Ø‹êÍî :™¿ø0”@ Ÿ»·ÑÉa«ÞSý8½îU] gë›Öß¶Ñ1Ql¡¶ï’ï Ÿ¥Ÿ€2'•ç‹/e} õê=Ô[¾LáÀ%û`*“/¾Þþ—üHTæ;€÷ÙzƧÛ‡)&óÅvVM«ú®Þí‰Æ¡lêf=<ôžÿ凾º¼¸EX‹°aT¦Z¯Òò`]b`ÁÀ«z}KÒb`mïž9zæè™£©ÌÒþ%ÆQ>¾JxðçWæ ´.W¼7R#œ’Ï6HVþ;€©L¾øâ‹¯²¶²õòöòöò¦gÔ÷u¤Ó‘NG:ͽ<÷òÜËUë†W ×eÅÒðƒ†4ü€w@™ €¥Y“¹&sM¦|±rát—³Þƒ €ßtë]Õ2ͬqAÛàm38jpÔàhÇ£”ú}°§‚Ò«vDùúÛ†ÕÞlôÞ?uXíÍFbEïÅß)]ѯhï¹ï7ñ¯ ïùñ­Ç·ßšÊTùøÖìöé.#J6õZ±È}•}.ùɀ瓆éþ/¸6›Ühõ?€­rÌdeµjJ €ëwŽx¹¸—¼ÿ¾ôý£ïS™¥Gùøö™³²’]Œú`¥}&Ø;¼§g GVòÀʶY‹f-šµ gÔ!÷hîÑÜ£{jí©µ§–Á4ƒiÓtYŸoÞ¼™Ð”€øÇ¡û‡îº/_¸ø¥mMYÀo°=Þ%Ø[Û‘ÊÞ¾€´€´€4ùñøbù±EA••”6þ´A¼Y%±U‡6¯öì¾Åþ“þKc蛿½hº¥¶÷NyÏ/_³|Íò5T¦Zo“™uXâ^WiŸâµ2 ÚÓ!P÷ïµû¤¿Eä?X®öƒëR_G¥Àvôÿ$2^Þÿ—N^:yé$•YÚ‰q”o»kS·×íX²áèø†?_qµþΞO{éÞæß‹Þ—¯³k.ÿ¿Ê €ë5ó\bü +y`eK\Úú€šÿÈø,㳌Ï䋘oßiÒÀá*ð›kŸ ]SÀeƒq3ãfÆT&ðöE ‹QÀ›ünûí=Ö¤[ÉF¤j.ñ÷è'¶Gÿ½Ÿõ‚/[þØÜgEi~E»û“Ýß“÷¼TYª,U¦2Ur›¬·^o½ÞòQö©× µ±r`½Xý£U‚\b&>^ÙµðïjØå]· >1_aé/¾µ®u‡„ðkJ €­,‚Îvè'ïù,ï,ï,o*³´ãXÀƒ(?ë|Þ¢ž’ßž«Ë;€Eè«Ð­µ;ïënZÀàÞz½õzS™ ò•-°*ú€Zÿx2ùÉä'“å š¶ßYGX\!~síÕiÝôµ•oytßè¾Ñ}©LàíÛôû¦ß7ý.?*-[±¥áŒ’Hûok_©Ö?o²zhñ?3ñߋ玭ê¸ùU[¥ÀQõH6}å=ýÎõ;×ïP™êÐie§•VÊG¹Ñ’¥Á‡ß/ÙˆÔýÌ̆›¿×¿j˜l<$ÿ¶Õú¥Õ§½Z;-ø²ß<ñ¨gg‹Qfßô¬Û±cÓËò?ðY¼ýWè,ð›h·n ™äj%ßòƒ=zP˜ÀÛwÑñ¢ãÅÞä7³õ;í¶–lDê—ëÞ©šEq½=Qi°­Kí)†Ï xøö˜c^Œ¡2ÕaYÅe—U”²ë÷SÖÄ)çAÐU–šT2ë©ûÑdjaëzÅÝdÚÃøx¥}ö·qØ÷¤@ù6T ¨P‰šT1¦ò±Žl}2Éu,ð›h®ÚbëØDÞçb®£&@Ý€KB_(k€?(~P~ªÇmß¿€ßDÛ­ž}¨U·nϼ=óöLjxûžz6êÙ(ùQiýS­N†q%‘ZV6ÿ¶êfõÀO,L X\ÀÃKëzÕõªKMªIzTzTz”|¬ëtvÚC9¡é?sîØ±éÀe&‡íƸ„VmgÖ±zý ]Œ¶_´þÞi·E¢OËí¡ƒgNûÌG/®rje¥E¿¢um;¹ãêk¿Ho‘Þ"ÞQª*bLåÂÿÚô§cyà7Ñ~:gä Z^ò>s5 êF¬|„¾P–ÿ’‘‘!_úÄ îèœWZ? Vò¾ˆÐ-¨‚Ö`¦—¦—¦5 ”Ÿ?|þðùC~lÞ8`èߦ´¿mWií«Ø¾ž!òÞ^òdÉ“%O¨F5yv÷ÙÝgwåc­ÿ…A_ÃÕ>õã¾J]¢´¸ðXW™¡oþ¶öâ6I} xÍǹìsÙ粩I5c*kÿaVï—ÆA+ºí{~¥»}Õцýò>s5 êF¬L„¾ø—¬^Y½²zÉ—Av›Ì:µ,]°òÛ”ËVzÉ{{¸ ã&Œ£’µ¶åÚ–k[ÊÐÍågf¸DÙoÛ}`‹EV3å½}Ù÷²ïe_ªQ}Ú$µIj“$qÏȘñ?õWr˜ZºZï¥+¾;á¨í&WNlNlN,Õ¨&bLµxÔíôÊn[n‹«ésàaýž"æ7ªÊ`å ôÈð‰ô‰ô‰”/Œ®]íQß7‚මڞï;Œ±º)ïç_Oÿzú×ÓÔ!P²nÅÞŠ½UÀmtGóz Œ.jrSOÜGû¨ßáº.Ú.Èó®ç]Ï»N5ªÏ¿=~{ü xôÎ _T$¸-¶‡?¿?iÀªÆò~’>$}H:u¨Vb| x´ýÆeI·ÅöðçìQµju—÷³˜ß¨C( €K¡/ pÀ@ú%ôKè'_$E®ò̰>Kp[ôöÞ°>Qþ†Z›<›<êP¯Q^£¼ ø|ÏÅì-g¼ÿ"¾-z»ºòƒúMå=üÍÖo¶~³• T«¿oý}ëï[Ú΃Þï.;pô8ñmÑ[óDMÀB_€î€d·ÏnŸÝ^Û²éáÝ~v&„¸Eig›û4±7–÷íÒÅK/]Lʱ7loØÞ0ùÑÚ÷Ó¶5/ߥÍyt|EP7mçš[‘·"oERê6b䈑#Fð9ûeúÍnB|[”Ö3<Æ÷§~ÕL¿‘~#ýFyÛò¶åm£ÕJŒ¯ky Œ¬tàûúý q‹Òv=úmC›^!æ4*Êà·ƒÐðz€­¢c£c£ xüéìtŸhû&„¸¯×fmë»ÓÿŒ¶åi–S–S–µ(GŽMŽM޶cöjäŽÚ¾ÖD¹¯×nÙ7ÛÃå¶¼W»evËì–Ií•—¯_¾~ùºÖÏ·\¾áX6Qî뵖ݾl×QÞ«ñvñvñvÔ^Y ƺ€7m鸨útBÜ×k£ҒܾÐ6k‰9Ú€²ƒøÍ!ô0 ÕݶwÛÞm«õ³Yg{×k@ ûªíó†[ß“÷çD¯‰^½¨:@™VZ=ju‚îàl[c+Qî«¶O&-tÖv~¹Xîb¹‹¬ÐÊ:TèPA^ öÚLú™(÷U[÷°é÷6>Ðv|=Û÷lß³}T]Y ÆZ[%|a”å´Ÿ@÷UÛ¡3Lë9°¨Ð¡B‡ T”5ÀÅ‹ÐP¼¸½ü‡©K§.ºT¾ÀêqΡ¿Õﺺ·‡wâ¢mÁzo佑÷xd PÏÝž»=wÓvüJ+¿Ÿë¹ŠXW÷ö볃]l7Ê{²ëÝ®w»Þ¥ÞÊšKw.ݹtGÛñåÕcá }ëêÒzg¯<”²Áhkíû¶Ïå=ùCä‘?ðXõ2GŒ»¼,#ìwNŸtæÜ*·b]]Úˆ¿Ž¸”×6S‰yŒz€²†¸¸úÞ`à?<Êz”õ(KÛ’k«6 <Üw o_®³ úÚv½i¶Qy.¼¶ðÚÂkT | Ó¦%h½}vdoÀzÂÝÂÛ_5ñuÇhëÃÌÊ™•3+SieÓ°ÕÃV[-¯ŠêûY7]ãÓ(nqê"ÞÂ[»ß¬™T@@eØÛ°·aï—^/½^ò¬‘2GŒ»¨ym|vgº½÷wÿ£{>ÅÝ¥þ£·j]å}(æ.* Ê&à7ד„¾€¢#t²­é¶¦Ûšò8è×kglõîb7K[ï½ôbЋAÔP ŒÕŒÕŒõ3ð3ð3Ëý´¯^kˆ&75… · öïléQà»ÚfÂyóçRbeÙƒgž=x¦­B"™ö=¯ÖÇ>ï™qw³§¶ÞK¹‘r#å5V–‰Ðú8èË»Z9izµµÆ4µîª­÷ÄÜE@ÙD\\zoï½½÷vB_@ñ"t³M³M³-dVȬ‚L·ƒ&&ßæ4°>ˆOÿ«Ý—Ú¦¯‡±¶F§ŒN2¢¸€Òåzùëå¯k}dܹÉ5ê—#îýW»6õëà=Ú´üÔê@ŸïÜQ}Gõ9mrÚä´¡ºð"áE mÇ—ÛÊèÑë÷æo­^:ð°‹¶é:Òu¤+uAÔƒ¶jÿ¿Ÿç»V&îÍß©»}®“Ö•¼˜¯¨+(Ë€‹Ë“ O6<Ù@è (^ÀÀ+¸³÷ÎÞ;{µÝ 7¯ß°¶£¦g¸CpM¢ßôï;¯l¼][_Ͳ›e7ËŽŠJ¯ø¤ø¤ø$mÇø¡Çßö¬@ô+ÚY†Û]ÐúÞÄO.}ré* ù…æ„æ„æh«™†ÁóŸíZBôë²|õ±¦3=ÎÊ{IßNßNß.{Xö°ìaTQ¢6ä5cÝ«§Ií¨zi‰nCˆ~G78Ò©A5m³˜£¨(0JF ¼²£ýøèÇÚnˆDÆ{^µNÓ䆇•Íè7ck·U>_k}gIÅàŠÁs3r3r3¨% ´|að…ÁZ£ÍÔˆUÛ½ÂÊrô;:²¦“Ö7þnúmÓo›~£Š ÷4çiÎÓ³f;Ìvh«¯Ð…S÷Ù—ÑèwÏ Í‰m[|j†ŒÓÖ?Ÿ\|rñ µ9QÚ*ÇõÓÖ!æµ&y¥çv¢lF¿/y¸|¤­ļ$æ(j @ €’¯)®m\Û¸¶ÚnŽŒKò´·Í»þnp…²ý^8Öå¤÷@½B=´|hùÐ’úÔáEÈ‹!žöžöžöÚŽú£»—¿hØ¡¬E¿KzŽÝåø»¶>™¼pòÂÉ ©îúÚëk¯¯-ü¬ÚpÊ7{vS†¢_§å!Ç"-¾òžÐ|¶>IÜŸ¸?q?õƒÂ‰:ÑVE.ÇZ…W{6ñ4·ŽeèS¿)RŸ­ ŸsļDý`”Œ(’èóÑç£Ïk»EÒã„Co«ßž ]8OÝÑoòøö+V*ü†Q懙f~HÍêóÐü¡ùCs£ÅF‹k›¶-žïªò8w͉ÇA"½û·NÔÖýÛõo׿]ž&O“Gá@'g3ÎfœÍ(ü ëÞeú‘»Uþ®_÷%UF˜ì·äò¹¶~X´&hM5݉šÑVQuæ»}gÜh¬&e¯K‚º£ß¡Oœ~,|žs5È%#Š&S“©ÉœøþÄ÷'¾¯ívIíPãÕëÿhÖ£“oŒú¢ß¥Mlœô ¿a”žžN±êv'íNÚ´*'ªœ¨rBÛle?à˜M¿ÜNüt@MÑï½ûÇú×Jôªdî¬õW‚ôXÐcA®~®~®>Õ‚W•Z3µfjÍÂ϶ŽÇ†]›}W}ѯÛ/Ó>Ø0®ð}M‹M‹M£NðzDý^cCïhï䭾跛ã·l¾(|ßÅüCä€P2` 8äjr5¹³½g{Ïö.üJü®Opy§´‡¾77õêâw¬ÙÞ:¶æÿñ™¤k®uºÖ‰ÊŽû¦÷Mï›ZÇZÇZÇj›lªÕZo¸çÒÍ­s|,J{ô»ÈâF…Ï„C‡ 6tXîœÜ9¹s¨Å§3Ngœ ¯7Ë.áíš5ê»$îS)~ÔsÖÊM)16Ç{׌XVøþ®‹[·.ŽÚ@щZ*¼ÞZÿ2±}Ö“Ÿ›æö´ô†¾ã†¦Fº\ôÚqzõ¯ ß_1çPm€P2` ˜mpÞà¼Á¹ð›)>FV®f£/¦të}¹´„¾yÛÂ½håôCá{çöÈí‘Û£{É÷’ï%S@ÙôôñÓÇO®÷¹Þç…OzÓú l÷Ás‹£á»KKèûç™]­ýºuÚØìŠeDá{7/|^ø¼p¤‘4Uâr-ôZèµPýËú—õ/ÿÇg‚ç ³]®tE¿®±SüÖ,«êaVÎüZá{wÐü ùAsêÅKÔUáµg|µúOU6\±¥Ž£_éŠ~»._ðÄÆ·ð½s‹˜g¨@á€P2`à8½àô‚Ó ôtп‰Ó‰Zm®Žî¾Ñ·®ÒBßóô úd«&d…«‹.û2Öj¬ÕX«œQ9£rFQ4_j¾Ô|¹àÒ‚K .é2‡¬ø.ª§ó„§zIïVPZè{ëÝ=§šŒmÔ·¦õÿtÙ—ƒ Pxsž,²üÉòîºo辡ðj¬²È¤¼Y›ú[ÆVX²ÛûäJ¿”òJ }ݧOØØËÜÊÝ´IõÂ÷Å<Ê<Ê<êJ‡+®t ðæˆõVxM:d˜}8ô@ÂçN+”÷NœþÈí·¾=ã"íÒÚ˜=¯R§ð}ó‰˜[¨€.€P2`à z¬÷Xï±Þ€jª ¨¦K`2¢®CõqÉmÛÇ4|¯¤BßGYýf´Ÿ?ȯ‘Cs=,w°ÜAæZqjÄ©ºÏ*“þ ·´9~³ßîY~»J*ô=u`]ÅF={Nhå^ó]æðÎ!C:ßÚuk×­]Œ8Þ’GšGšG›&nš¸i¢îÇ—Ý¡ŸG­ðîµüÆñ ’ }Ž1üöžqX=‡;ºlsÔœ¨9Qsžÿñüç0ìx;D½‰ÚÓ¥Jk:3²ê]yÙ—vz%úFuûÕØmâg[¦]¨û@÷9AÌ!b>aܺ#@Él€·$)1)1)Qï…-ª_¡¶Þ‹mëyÌ}6%tEàÂâ{/îë:ÃûÒÒĀϜìì*›YÙê¾mcši>¦ùc“Ç&M_ºx>ðùÀççØÏ±Ÿc¯ûlcZÅØ¼ŠéÜN#.Û/ù5ráÆÃ‹7èͳHiôÛÑÙË/4 u´çÚz¿ê\½ãÊŽ+;®höiöiö1Ê()·ãoÇߎïÕ3ªg”îÕk²ÐövƒíW ´šêáé4wú›â zù/ñ:¸ÑÙjTo[ŒðÐ|¦îÛfëbëbë’6>m|ÚxÆ%KÔ¡¨IÝkØeg«æÕõœñ]ŠíÜq)Y.‹7îýrÂþ¸ún¯ÌÚX/¾Ž½ëmcSÝ·MÌbÞ`|¯‡%#Þªœn9Ýrº­YµfÕšUzEÐ4½vºyü„Î ­¬sâ®w«ÿîÎK­ìÝvkWÁÓHú¤Ý.ÏIûÛt÷¨º¹Jói.3æwòsuîßÉél­µ† {½ŸÛav‡Ùfgü”ñSÆOŒ&€¢¸¹íæ¶›Û-´tÐÒ×›‘LÏo¯ØãPË8«ósÊ ?kßwú©÷?]ô¡û¡#‹cz†Þ[Á³þîÎ ÝÖü9uJý§V˜nÜf°ÿ ‹Ø¢Ìà j,¨± ÆÓ©O§>ÊhBiξsö³ïxg{g{g¿^…~gõuÝo­v7Ýýùy›¤Þ³S†Ý™ý¼þ7_m[Ò¬ÁÒñ÷¿Ý@\“ïZ:ùñüw캆šL,_Û²u«Þ+L«ÙÏs=[”ã+!"!"!"/2/2/’Ñ„rˆšõY” ¯ááh<½É‰ÐK–«Ûªû}K›Úöë¸ÚÞ¾^ÿÖ~e¿¤oµ¸ìtsÿ6×fDë#ýê„4:Ûm„źê)Ö¬~yòо€IDAT½Ÿ+æ1?0š€¢#@É€ó¼ÝóvÏÛm>¾ùøæã¦é¦é¦ézŠ4xÝàuƒ×eÄdÄdÄ0jÞ„Ñ7¢oDOØ1aÇ„z ¶"pEàŠÀ'ž x2€QC)ðRóRó2Í7Í7Í·óÀÎ;Tæ‘åîîžh‘h‘hñ2óeæËL†¥àðÊ|™ù2SÔ­¨ae_âØó€˜;@q!@É€¹PãB 5Æo¿}üö’ºIä;Éw’來W¶^ÙzåñøÇãóÐEoÕóäçÉÏ“½½½[ßh}£õ’š‡N:aè„SÝOu?Õq:Üs¾ç|ÏyõêÕ«W¯vìãØÇ±OI_3ígÚÏ´¿Zþjù«å¨ƒ¨gQÛ%ud‰ãZãâxg\o0JF (Úµù׿_›¿á醧žövêíÔÛI¯Ž^½:E¿=äyÆóŒç™èøèøèøã厗;^îñúÇ믧Ï(ͳ1ÏÆ<sÊâ”Å)‹y•æUšW) c@Ç€ŽÅu»üó¯?ÿúó¯ã~Šû)î§K7/ݼtS³U³U³•žGYð`ãƒ6shÌ¡1ã3ÇgŽÏt,ïXÞ±|Ñ,Ó§¦OMŸŒ30æÇó?žÿñüC7Ý8DŸ£ì5/ê_ â¸(† ·¼cyÇòâ˜ǯ8–és€@ ¨DnlnlnìѵG×]›ô{ÒïI¿§Y¤Y¤YÐ3Êš+.W\®¸$·NnÜú¨ëQ×£®OÇ=÷t=]JXJXJXRxRxRø1ãcÆÇŒé ¸ˆcJ_âX£O¯‡T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚Tâ­ÀIå“Ê'•×€2Cä¤ÀPê€J”¹XüyÒ;Iï$½“T.©\R9)OÊ“ò¤\)WÊ•r¤)Gz!½^HϤgÒ3)[Ê–²¥¿¥¿¥¿¥'Òé‰ôHz$=’J¥‡R–”%eI÷¥ûÒ}éžtOº'Ý‘îHw¤ÛÒmé¶ô—ô—ô—tSº)Ý”þ”þ”þ”2¥L)SúCúCúCº&]“®IW¤+Òé²tYº,ý.ý.ý.]’.I—¤‹ÒEé¢tAº ]ÎKç¥óRº”.¥K¿J¿J¿Jg¥³ÒYéŒtF:#’NI§¤“ÒIé¤ô³ô³ô³”*¥J©Ò é„tB:.—ŽKǤcÒ1)YJ–’¥$)IJ’ŽHG¤#Òaé°tX:(”J¤ÒiŸ´OÚ'%J‰R¢´GÚ#í‘vK»¥ÝÒNi§´SJ¤i‡´CÚ!m—¶KÛ¥¥¥¥­ÒVi«´EÚ"m‘6I›¤MÒFi£´QÚ m6Hë¥õÒzi´NZ'­•ÖJk¥ÕÒjiµ´JZ%­’VJ+¥•Ò i…´BZ.-—–KßKßKßK±R¬+-•–JK¥%Òi‰´HZ$-’J ¥…Òi´@úFúFúFš'Í“æI1RŒ#Í‘æHs¤ÙÒli¶4Sš)Í”fH3¤Òtiº4]Š–¢¥hékékékiŠ4Eš"M–&K“¥()JŠ’&J¥‰R¤)EJã¥ñÒxi¬4V+}%}%}%‘ÆHc¤ÑÒhi´4R)”¾”¾”¾”†KÃ¥áÒ0i˜4LúBúBúB" ‘†Hƒ¥ÁÒ`i 4P(…KáR¸4@ B¥P)Tê'õ“úI}¥¾R_©·Ô[ê-õ’zI½¤R©‡Ô]ê.u—ºJ]¥®R©‹ÔEê,u–:KŸKŸKŸK¥ŽRGé3é3é3©½Ô^j/µ•ÚJm¥6R©ÔJj%µ’ZJ-¥–Rˆ"…HÍ¥æRs©™ÔLj&5•šJM¥ )H ’¥@)Pò—ü%©‰ÔDj"ùI~’Ÿä#ùH>ÿ{÷Åñøq\M1UAA±€`—fA¬`Æ{¯kì½$–hbï{רXي؈½ÆÞcï½ñûcü>!¿ãÈ!wpï×=Ï>y ì-3³s;û¹‰ Š Š Š*U&ªLT@T@T@””””_”_”_”o”o”o”O”O”OT‰¨Q%¢ŠG*U4ªhTÑ(ï(ï(ï(Ï(Ï(Ï(((¨"QE¢ŠDŽ*U8ªPT¡¨BQ¢ DˆÊ•?*TÞ¨¼Qy£Ü¢Ü¢Ü¢òDå‰Êååå•;*wTî¨\Q¹¢rEåˆÊ•#Ê)Ê)Ê)*[T¶¨lQŽQŽQŽQY£²FeÊ•%*K”]”]”]Tæ¨ÌQ™£¾ú6êÛ¨o¢¾‰ú&ê먯£¾Žú2ê˨/£¾ˆú"ꋨϣ>ú<골Ϣ>‹ú$ꓨO¢2DeˆÊ•.*]T:=VÕcõwú;ýþV«¿Õ_ë¯õ×ú+ý•þJ¡¿Ð_èÏõçúsý©þTª?ÑŸèOôGú#ý‘þP¨?Ôèôú=ýž~O¿«ßÕïê·õÛúmý–~K¿¥ÿ­ÿ­ÿ­ßÐoè7ôkú5ýš~U¿ª_Õ/ë—õËú%ý’~I¿ _Ð/èçõóúyý¬~V?«ŸÑÏègôÓúiý´~J?¥ŸÒOè'ôúqý¸~\?¦ÓéGô#úý°~X?¬Ôêõúý€£Çè1ú~}¿¾_ß«ïÕ÷ê{ô=ú=ZÖ£õ]ú.}—.hº¦kº¢+º¢Ëº¬Ëz¤©Gê;õúN}»¾]ß®oÓ·éÛô-ú}‹¡Gèú&}“¾IߨoÔ7êèèèëõõúz}¾N_§¯Ñ×èkôÕúj}µ¾R_©¯ÔWè+ôú2}™¾L_ª/Õ—ê‹õÅúb}‘¾H_¤/Ôê õú}>OŸ§ÏÓçêsõ¹úl}¶>[Ÿ¥ÏÒgé3ôú }º>]Ÿ®OÕ§êSõ)ú}Š>YŸ¬OÖ'êõ‰ú}‚>AÿMÿMÿM¯×Çë¿ê¿ê¿êcõ±úX}´>Z­ÒGé£ôŸõŸõŸõ‘úH}¤>\®ׇéÃôaú}ˆ>D¬Öëõú@}€>@ ÷Óûéýô¾z_½¯Þ[ï­÷Ö{é½ô^zO½§ÞSï¡÷Ð{èÝônz7½«ÞUïªwÑ»è]ôÎzg½³¦‡éazG½£ÞQï wÐ;èíôvz;½­ÞVo«·Ö[ë­õVz+½•ÞBo¡·Ð›ëÍõæzS½©ÞTo¢7Ñ›èôFz#½¡ÞPo¨7Ðè ôúz}½¾^W¯«×Õëèuô:zm½¶^[¯¥×Òké5õšzM½†^C¯¡WÓ«éÕôªzU½ª^Y¯¬WÖCõP=TÑCô½¢^Q¯¨WÐ+èôrz9½œ^V/«—Õƒô =HÔõ@=@ÐôÒzi½´î§ûé~z)½”^J÷Ñ}t½¤^R/©׋ëÅõbz1½˜î­{ëÞº—î¥{麇ë^X/¬Ö é…ôBz½€^@ϯç×óëyõ¼z^ÝMwÓÝômŸ¶WÛ«íÕvk»µÝZ´­E‹‹Ñ hª¦jª¦hЦh’&i’©Ej‘Úm‡¶CÛ®m×¶k[µ­ÚVm‹¶EÛ¢mÖ6k›µMÚ&m“ö‡ö‡ö‡¶AÛ mÐÖië´uÚZm­¶V[­­ÖVk«´UÚ*m…¶B[¡-×–k˵¥ÚRm©¶D[¢-Ñi‹´EZ¸®…k µ…ÚBm¾6_›¯ÍÓæió´9ÚmŽ6[›­ÍÖfj3µ™Ú m†6C›¦MÓ¦iSµ©ÚTm²6Y›¬MÒ&i“´ Úm‚ö»ö»ö»6^¯×Æiã´qÚXm¬6V£ÑÆh£´QÚ(ííím¤6R©ÐFh#´aÚ0m˜6Tª ÕkƒµÁÚ m6H  ÐhýµþZ­¯ÖWë«õÑúh}´^Z/­—ö“ö“ö“ÖCë¡õкkݵîZW­«ÖUë¢uѺhµÎZg-L Ó´ŽZG­£ÖAë uÐÚií´vZ[­­ÖVk­µÖZk­´VZ+­…ÖBk¡5ךk͵¦ZS­©ÖDk¢5Ñi´FZC­¡ÖPk 5ÐhõµúZ}­®VW««ÕÑêhu´ÚZm­¶VK«¥ÕÒjj5µšZ ­†VC«¦UÓªiUµªZU­²VY«¬…j¡Z¨VI«¤UÒ*jµŠZy­¼V^+§•ÓÊieµ²ZY-H Ò‚´@-P Ô´-@+­•ÖJk~šŸæ§•ÒJi¥4ÍGóÑJj%µ’Zq­¸V\+¦ÓŠiÞš·æ­yi^š—æ¡yh𻿮¹k…µÂZa­VH+¤Ð h´üZ~-¿–WË«åÕÜ47ÍMË£åÑòh.š‹æ¢åÖrk¹µ\Z.-—–CË¡åМ4'ÍI˦eÓ²iŽš£æ¨eÕ²jYµ,Z-‹f§ÙivZf-³–YûVûVûVûFûFûFûJûJûJûRûRûR˨eÔ2jŸkŸkŸkŸjŸjŸjŸhŸhŸhéµôZz-–NK§¾Wß«ïÕwê;õúF}£¾Q_«¯Õ×êKõ¥úR}¡¾P_¨ÏÔgê3õ©úT}ª>V«ÕGê#õ‘ú@} >Pï«÷Õûê]õ®zW½£ÞQ嘆Ô[ê-õ¦zS½©ÞPo¨7ÔëêuõºzU½ª^U¯¨WÔ+ê%õ’zI½¨^T/ªçÕóêyõœzN=§žQϨgÔ¿Ô¿Ô¿ÔSê)õ”zR=©žT«ÇÕãê1õ˜zL=¢Q¨‡ÕÃêaõ zP=¨P¨Ô5FQ÷«ûÕýê^u¯ºWÝ£îQ÷¨Ñj´­îRw©»T]ÕU]tª¢*ª¢Êª¬Êj¤©Fª;ÕêNu»º]Ý®nS·©ÛÔ-êu‹¡F¨ê&u“ºIݨnT7ªÔ êu½º^]¯®UתkÕ5êuºJ]¥®RWª+Õ•êru¹º\]¦.S—©KÔ%êu±ºX]¬†«áj¸ºP]¨.Tç«óÕùêJo¥·Ò[ùIùIùIé©ôTz*Ý•îJw¥›ÒMé¦tQº(]”•••0%L S:)”NJ¥ƒÒAi¯´WÚ+m•¶J[¥ÒFi£´RZ)­”–JK¥¥Ò\i®4Wš)Í”fJ¥‰ÒDi¬4V+ •†JCåå奾R_©¯ÔSê)õ”:J¥ŽR[©­ÔVj)µ”ZJM¥¦RS©¡ÔPj(Õ”jJ5¥ªRU©ªTV*+••P%T U*)•”JJE¥¢RQ)¯”WÊ+å”rJ9%X V‚• %H RÊ(e”2J€ (þŠ¿â¯ø)~ŠŸâ«ø*¾Šâ£ø(%”J ¥¸R\)®UŠ*EoÅ[ñV<OÅSñP<¥ˆRD)¢R )…”‚JA¥ ’_ɯäWò)ù”|Š›â¦¸)®Š«âª¸(.Š‹â¬8+ÎJ.%—’KÉ©äTr*NŠ“â¤dW²+ÙGÅQqTÅAÉ¢dQ²(öнb¯dV2+™•LJ&%“òòòòµòµòµò¥ò¥ò¥ò…ò…ò…ò¹ò¹ò¹ò™ò™ò™ò‰ò‰ò‰’^I¯¤WÒ)é”tò{ù½ü^~'¿“ßÉoä7òùµüZ~-¿”_Ê/åò ù…üL~&?“ŸÊOå§òcù±üX~$?’Éäòù¾|_¾/ß•ïÊwå;òùŽ|K¾%ß’oÊ7å›ò ù†|C¾._—¯ËWå«òUùŠ|E¾"_’/É—ä òù‚|^>/Ÿ—ÏÊgå³òùŒ|F>-Ÿ–O˧äSò)ù„|B>!—ËÇå£òQù¨|D>"‘ɇäCòAù |PþSþSþSŽ‘cäyŸ¼OÞ'ï•÷Ê{åÝòny·-GËÑâæŸî‹yYdI–äòNy§¼CÞ!ï·ÉÛämòVy«¼UŽ#äy³¼YÞ,o”7Êå?ä?ä?äõòzy½¼N^'¯“×Èkä5òjyµ¼Z^)¯”WÊ+äò y™¼L^&/•—ÊKåÅòby±.‡ËáòBy¡¼Pž/Ï—çËóäyò’TR*)•”ŠKÅ¥âR1©˜TLò–¼%oÉKò’¼$ÉCòÜ%wÉ]*,– K…¤BR!©€T@* å“òIù¤¼R^)¯ä*¹J®R)”Gr–œ%g)·”[Ê-å”rJ9¥R)‡”]Ê.e—²IÙ¤l’ƒä 9HY¤,RÉ^²—ì¥ÌRf)³”IÊ$e’¾‘¾‘¾‘¾–¾–¾–¾”¾”¾”¾¾¾>—>—>—>“>“>“>‘>‘>‘2H¤ R:)”.ò}äûÈ÷‘ï"ßE¾‹|ù&òMäëÈב¯#_F¾Œ|ù"òEä‹Èg‘Ï"ŸE>|ù4òqäãÈÇ‘"E>Š|ù òAä½È{‘÷"ïFÞ¼y;òväíÈ[‘·"oEþùwäß‘7"oDÞˆ¼y-òZäÕÈ«‘W#/G^޼y)òRä¥È ‘"/Dž‹<y.òläÙȳ‘EþùWäéÈÓ‘§#OFžŒ<y"òDä‰Èc‘Ç"E<y4òpäáÈч"EŠ<y ò@dLdLdLäþÈý‘û#÷Fîܹ'rOäžÈèÈèÈèÈ]‘»"w‰Ûöâv¸l'NÖ?,ÁòP`0``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``©ž]‚8rP_vHõ€A}``©0¨/€@L Õ#õe{*i ½(ê 0†˜@ªG ê‹ÒõÀÀR½Ô<´_˜Ð‹š¥¥QÚ”6õ$00€Tà´4JÔ Hõ@K£´A}00€Tà´4JÔ Hõ@K£´A}00¬Â›êoª¿©Y.²\d¹.~]üºøU¸Xáb…‹îÝ;ºwtŒpŒpŒ(4½ÐôBÓË}[îÛrß¶ºÛên«»kʯ)¿¦üãc=>fé#|ùAæ™W Y1dÅ–_µüªåWAAA6Ø\`sÜ# öööhù¦å›–oVv[Ùme7ñ»–;¶½ãûùÃg8œ¡›S7§nNes—Í]6wþ¨üQù£²ÏÈ>#ûŒb™Še*–©V®Z¹jåZtzÑéE§Ÿ-}¶ôÙRSŽäfÿ›ýoöŸñûŒßgü^³tÍÒ5K‹-[,6gXΰœa9úç蟣¿G#FõjÔ«Q¯¹æV˜[Áôý“Øàá½ó{ç÷ÎêSõ©ú´sýÎõ;×åPpiÁ¥—f[–mY¶ežÕ<«yV«x¸âኇ… ògÙ?ËþY66Sl¦ØLÖy%¶%<ºòèÊ£+SöOÙ?e¿¨ñ—J\*qI´×Ì®™]3ûMó›æ7M´9¯œWΛ<Ë;Ïwžï<µëÚuíúO~:ðÓ!C6z•ñ*ãUFÔ‘s s s h±Íü›ù7óŸÝjv«Ù­žìz²ëÉ.K•íE\G®¹väš8gEÏV¦a™†eоWœ³¢s{äöÈí‘8£ë©õÔzª8/”¬JV%ëÛÀ·oS{i[g«3ôbô‹Ñ/F¯Ë·.ߺ|½ä^r/YôT¢Ör5ÎÕ8Wc‡]»vå;šïh¾£>ºî£‹útkÒ­I·®¿rüÊqÎØ*``¤œL±™b3-]½tõÒÕâ&µÝGá„øï§O#žF˜ëÅ ý!‡R0î»$–¸/þ[Dnæ-HSn¸‹ºî¡º‡êJìñ‹`;á0uò™Ég&Ÿù¸RÊ{9ïå¼—“˜<=qôÄÑ¥–”ZRj‰]ˆØÌru÷q¥aú~Dè+‚¢Äþí•´JZ%Ír¡ÎÚkK¬-Q¤_‘~Eú}\í¸x¹x¹x‰ÿ¾¾üúòëË-}®¥šˆ+Sl¦ØL"8,¿üýò÷íÌ$nþªÓ«N¯:™«TËöZ >݆fš}hö<.y\ò¸$¥”ìÓÛ§·Oÿqåf õ$Œ˜)à¾Ë}—û.ÕÚWk_­½yo%]xtáÑI¿­|Ðí ÛA7ñ<¨yPehRÊÖØþ,j°¨Á"ÃçVûNì;±ïÄ+N¬8±âùôçÓŸO?¶ûØîc»'d›mB6Sž‘5ö,šˆ|¶ÌÙ2g˱>öøØãc¢Ÿ\‹u‚Þ›XÛ>áöœœõ|``$“‰'fœ˜Ñè-òÇöíO[3mÍ´5b•JSq >á›Î_N|9ñ¥){kÜ®q»ÆíŒí'뱬Dz ¿~3ü¦éµXá8ágOõjÔ«Q/Ë­€÷é.©¸T\*žðÞDü“ا¸Dx÷xŒíÉŽ%;–ìHxoq×*6W Ä­Ç…Ÿ/ü|áç¦ìùMõ7ÕßT7eÏþ£üGù2ï³Ëæj ÞžÞžÞžqÿ¥Ã¤“:L!SÂïµxßâ}‹÷%|œ׆îÄ×#¶Žß:~ëxÓËDD_¦¯VkÞsÍÚz]Ü&ü•1)´øêƒ%Ö‚û5k(íÔÒêÄ—*þınbËÄ”Z³&ØöÙÛFL ‹ÏVÆ^ÒЇè÷£ˆ'/¾í.žÐ5¶ñ|jÂ7¯Eôûq7²E œðþÅ3—W¦ÜПtkÒ­I·L?þVw[Ýmu×”=wsêæÔÍ)±Ç\³tÍÒ5K'¼–³yK@˜[an…¹>®œ´Ðf@›„÷/êÚ\Gn‰– žŒl›²çïÜ¿sÿÎ=á'ÂM?Îë˯/¿¾ÜXŸ V›“ß~dtçK$Æ ¿=üöðÛ)Ø[šœWÎ+ç5v´>ºî£?Ùõdד]I9þÉg&Ÿ™|Æ\mÃr¥ºZ]=µžZO5¶Ÿ1ÃÆ 3ì#›E¦ØL±™>£… bÛgl00,nÔüQóGÍOxȤ¿Kÿžý{öïiì]e9”åPc¿ÛòMË7-ßû]±ÒmÒPÅ3î¦ïíçÈŸ#Ž4¶·Ž 8&=4_û0ö.y\ò¸äq±íˆkÆï3~Ÿñ{ÂOí'ýÈÿêüWç¿:'üÌýÇíÙ¼¥ºZG#FŒíç䬓³NÎJÊÑÎ:sèÌ¡ÆöߤA“M õ"&€½ |ø6P<ÍiÞ8ÊPÜýŠ;mÜßëÔ&î“"®‹ví.~ØÛ°Wÿÿ%V@'@êEL Ú÷ã¾÷ýhìv°¸ín®÷·ï]3»fvÍlø^}'öØw¢ámè§6žÚxÊØ–iX¦a™†æ-“„ŸÝ2gËœ-s»Ï„o»Ç}–×ô}Æ]6á£ý¸›û ?'gÞàALuk®|ïüÞù½sÁ¥—\jìã®sœ”#7oKWw\Ýqu?nϦ¬…lÊ~^aZLlkÞ¸H´´œa9Ãr†¾ã¬î³ºÏêžROlÛ†çÓŸO>ÝšàÔØêâ>+lH¬þkm-³Öƒ˜”ðÚƒ}ûö5ï­a±Ê£x¶)îëVØ­°[a†ï54ûÐìC³;¸S†šëã>5k®wLø¶ûå«—¯^¾úqG›ðžEÙ&¥4’'Ï´™·:ðÓŸ{ÇžçzžëyÎÚàõëÖ;¤l 71ãÄŒ3Zz>CU{Wí]µ·á;Æþ=9[¬-ÙYkg­µ¬9N­®üýò÷ËßOxú}kkuœ°ÀÀ° fþÍü›ù'ü SÊÞ+;ÂM{7íÝ´×¼G˜ðÔ u.Ô¹Pç‚yãOñÄêÇ­åölÊþ͵Ÿ Ï7<ßðܼõ¸lî²¹Ëæ{ÇJZ%­’fm°ºR¶¾õjÔ«Q/ËMlkLó"Í‹4/bøŽ!C6†lLþ›Ú‰'ÂEž÷rÞËy/[sœ[ݯ­mýkk;“mï²½Ëö.‰]ëݼ8;`=€ €`AU«V5v;øÄŠ+N¬HÙ[þ›|7ùn2v„gkž­y¶¦yßñÔØScO5öŽb‚èÄîÓr·Ý-}C?y`±Þ°yëñȵ#׎\KúôæÉ‹çãS¶¾:tè`g5ÄñXÏa ÄÚíâùþÈr‘å"ËÍn5»ÕìVbEáê?Tÿ¡ú OPlmpjlu®<ºòèJb÷,Vwÿ=¾âøŠã+Fí‰ÚµGLÓmé–C ëAL òhäÑÈ£‘±ÛÁwjÜ©q§FÊaÂ+¹Þw¹ïrßżï(þjcïèÞѽ£{ÇÄî“8áýX¢oö¿Ùÿfcï(ž‰LþNxobì”­/Ñ­'Šóöôöôö´ž3"yˆ–°wàÞ{ŽüsäŸ#ÿ¬§ÖSë©â‹ –(ç”íRo«;zâ艣',q §œpz€yÛ0¬00,(Wã\s56v;8e'«â>/eèuã×_76ï;Š¿ÚØ;ŠKì> €Þ%êQ[úl©5À©½ÕÅwé„’GJ)yÄl±t:·tn鬡¾€¤#&€å;šïh¾£Æn?|ôðÑÃG){„É?ô=ï{Þ÷¼½cÍ6ØœØ}'ÿÐwƒîÝ 2öŽžÕ<«yVKþ¶þúÊ•?*”±=$ÏJ¥Ö|F˜—˜äÙôç_ .<ºðèæEši^dò™Ég&Ÿ‘ŠKÅ¥âWŽ_9~åx©5À©½Õ™RJ_N|9ñeÍÒ5K×,-¢ú䟸›Öƒ˜”ðóI—¯^¾zùjÊ¡ï&ßM¾›Œá¹àsÁç‚ÍûŽbŸÆÞQOb÷Iœð~Î4=ÓôLSóÖ£XAÓØ;V ¬X5ùKØúë+ÖÙ'¤l ›‹xB½ÐôBÓ ¨Üþ±ýcûÇ-¿jùU˯Žo=¾õøVkk{æÚgjouI/·F½õjÔËô`8î3Ó¶wv - &€Uí]µwÕÞÆnוּ³ÖÎZ){„5ªÔ¨R£Š±#ܼ}óöÍÛÍûŽ›önÚ»i¯±w¬Ö¾Zûjí»Oà„÷³áù†çž›·×–X[bm cïØ¤A“M$ [}Uÿ¡úÕ0¶‡Å;PÌšû´Ôq-Ù±dÇ’ G¿Û»lï²½‹µË–Øgjouæwúb±Åb‹ýG ÷Øwb߉¦—60¬00,h`½õÖ3v;x|ÅñÇW4ï­á)û§ìŸ²¿Ü»ÿÿA¯áÏöì;Ø×ØŽš?jþ¨ùæ=Â_Öþ²ö—µÆÞ1n‰™¾Oà„÷3ìÕ°WÃ^™·û÷ìß³Ocïø›Ïo>¿ù˜òŽi-NøŒ³DTo^©%âªs¡Î…:îÙ¬¿d̵ÏÔÞê,áU§W^uJ¸„K-)µ¤Ô`¤FÀÀ° ?nüqãÆnW<\ñpÅÃæ½5Ð! C@Ã÷1°áÏ‹[ÿÆŽ0( ( (À¼GX¦a™†e&E›·cü‡L±™b3y4òhäÑÈØ;Êyå¼r^`COm<µñ”±=4n׸]ãvæ=ã®m¹¶åÚ–Ò}âi×µëÚuë)asIxúýÃg8œÁ\Ç|éñ¥Ç—[sœºZø3,þ—˜¬Û\Çó]Ìw1ß+™\s5ÎÕØöΤÀÀ° {Þ÷¼ïy;ìrØå°ËØMá³5ÏÖ<[3éïucÆ7f{—Ž#:Žè8Âð6ôwjÜ©‘õXÖcYûÝScO=56éGxl÷±ÝÇv{—,W³\ÍrõVØ­°[a‰Ý3°)«Zt;èvÐ-éÇ,¦.7ö.ÎÎÎϧ?Ÿþ|zò—°õ×WÂ}‚8 Ì{úÓ>½}zûôâx¬§„Í%ûŒì3²íŸFF ÛCL ‹k}¾õùÖç-ýôÕÈ?Gþ9òO£OÖ~¶á³ Ÿ{—fþÍü›ù[úë©õÔzª±wÇðq{&6%®ý¶öÛÚo“räï<ßy¾óÏð{—nNÝœº9¥T §–úJ¸O0öuÄz˜îaº‡é\¼\¼\¼ ߥ’VI«¤Y[ ›‹[:·tnéŒçÑGO=‘ôw¹Ýäv“ÛM~ÞàÔÕê&¾œørâKcÇYåç*?WùÙ\ím÷ìݳwÏNxîÛ;;ÀâöÜ;pïÀ„o /:½èô¢Ó·ÿ#׎\;rÍØS¼9Ãr†å {¶ôÙÒgKíAɪdU²&|„Ëæ.›»lîÇáÂÏ~¾ðó„÷¯>UŸªO­-ö³¥X˜[an…¹>îhû ï7¼ßð„÷ ØbŠ¥Ôª™©¥¾LéÂo†ß ¿ùqÇù¦ú›êoª×,]³tÍÒÆö÷¹Uë)as ¬X5°ª±ãWw\Ýqu“rÌâVgšrÞY¢½½w~ïüÞÙöZÝŸeÿ,ûgÙ„3±S—7ö6Ôů‹_¿”ª/ )€ €LZÝmu·ÕÝ„'@þÎeŠÍ›É”}Š•,K\*q©Ä%c{5ÔüQóMÙ[ý?êÿQÿcûqŒpŒpŒHl˜!¢ß„§˜þaò“˜œ”²%6=uaúD¨3 Í€6Ú$¼çvÚmh·!eK8µÔ—)}‚ýcûÇöV–5½OxùAæ™[~Õò«–_Û³ß4¿i~ÓÞ¾ |hÞ˜ó}r¿ŒçÐìC³Ínì8ÅdÈQ{¢öDíIl ìh¾£ùŽæîÝ;ºw4ý¼»Ùÿfÿ›ýÍ[Úâùclu™b3Åf*Ò¯H¿"ýŒí­ÐôBÓ Mÿ¸óîuã×_76åë,Ñ+£WF¯4××Y>®¾€CL €drßå¾Ë}S¢‚ÐÅ¡‹C‹ÿ¾”þRúKé_Œ~1úÅèk[®m¹¶%²\d¹Èrâæuܵ ‰‰IÅj—¦ÜÂNxá¸ê\¨s¡Î…§6žÚxêúòë˯/·ÔÅox¾áù†çß¹çþ{ÂûÓ´ŠhÄz&JMž=›wÿ ïÇ”ÿ(ÿQ†ÿ^÷PÝCum¿uüÖñ¢^ö{Ùïe¿ ®\/¸ÎÏ??ÿüüÆ~7®<.y\ò¸ˆõ›Sö‰ÒÔ›Þ'ˆ©hguŸÕ}V÷“³NÎ:9ëÉ®'»žìºt7ènОq{Æí÷›Ïo>¿ùˆºH8þ?”åP–CY,QÂÉÏØqžiz¦é™¦ ÿnܰSýTýTýôÒãK/=½™¨1Yô´5ÓÖL[Sî]¹wåÞÛ[«‹¯¹$öIЄ×ï½®÷ºÞëĔ˯:½êôª“èm£Õ-|±ðÅÂÿQƒéíÓÛ§;GÅÙšgkž­)ŽS”‰¨Ó]ÛvmÛµM|ªàÒ‚K .MxÏ"&OìÙa‰ú>00’Õá'‡Ÿ~béP$wõÜÕsW?¾õøÖã[óˆ§â,}„ÎÎÎ"B°æ˜Ö6`èZ¢Æ8qwÍ”-áÔè2Îp8ƒ¥Ï8v®ì¶²ÛÊn–û²…õÀÂÀzë ¬g¹wì‹ÖžLøãŽ? C@‡€æÝgjiu"&¯ýuí¯kœ-JL.žiNì1[®¾€Ä"&@ 8=àô€Ó,qóZ<õw Å;ÂýÍö7ÛßÌG(¦îŒ?$½< €MÙ~R?©Ÿ4W=ºx¹x¹xIÅ¥âRqë)áÔ[ºO5%žË·t X[üÎóç;Ï9Zäh‘üï+žŽ=±âÄŠ+Ä¿¬®½ºöêÚ¦ïáÜøãFÂÇ?(dPÈ ËŠÖßêžO>ýùôäiKõÔzj=õÑ•GW]ù¸3ÚÒõ˜Ž˜)FLì÷IÊ»m-¦íy®ç¹žçâNï™ô#|øèᣇ⮚ùqG(ÖöŰ/†}!&ç4ïo`Ó÷s5újôÕè¤Ä$ 5XÔ`QÜ Ã­§„SolØ'ä蟣ŽþWGbÒÝ6ÛlsPL3›<%`mð™b3ÅfŠL~Ü{å;šïh¾£b¥v±–í¿Ž!Sl¦ØLµßÖ~[û­¹à¸íÁr¢õ·º¸5èYͳšg5sµŸ²¹Ëæ.›{ÓÞM{7íÛ“~þ eÀ*<>öøØãcqWQØ\`sÍâÆºÛ#·GnJ)y¤ä‘–_µüªåWóJÎ+9¯äí&·›Ünbé[É÷¼ïyßóïÒ¼Hó"Í‹”iX¦a™†ù£òGåñ°8ZñïâW Y1dÅ›N–&jD|u üýò÷ËßÏg‹À^-bEêgGœqö¯Îuþ«3õ˜<â~U¢­ÒVi«{{{ˆ:gœX{µXl±Øb±M+7­Ü´òôyÓçMŸg®xÞöÄ]]ô´ÅPü(IQª¢„Eiw-ÔµP×BÛ»lï²½‹X!;áRû3"\+»fvÍìš9dcÈÆ?†þúc¨xúÖ”ck‹}Vù¹ÊÏU~vïèÞѽc¶eÙ–e[÷<½®·º8apÜ'w‹e*–©X&ñ))ŽS”ø„Ol‹ò™˜qbƉO=5öÔXK±ÉY_€1ÀÀ°jÖÿäÏ6¥…VG™Ð'¤ÍRµÎ³)ùë=µ´:ë…^±)óÚ•.…^éSè•!…^ŸXêE 6‹l„ÍÀ í°ÙøN­;µîÔŠÚe±Wt ½X“˜ÕˆYØúW#N;마ÓÎÚÃÇSè•vÖN;«§õ†ÓÎJì1l{« §ÔÃiguaÖfEaÖfaVN©U„ÓÎúÁ¬ÌšÁ¬Ì:Á¬œRë³B0k[ýªÀwÂî„Ý ³Ù'€–@ 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF6âÝœwsÞÍÙ½t÷ÒÝKwÛun×¹c.Ç\޹P2@ÒÝÙsgÏ=Ñú?/ñ/”ŒuºXòbÉ‹%£kE׊®µÛg·ÏnŸçŸ|>’’nÇý÷wÜÕiW§]ödß“}OvÊ0qN‰óKœk” #/€‘#/À\ħ•øäŸbâ’[E XµË“.OºoU´UÑVEí Ø°+`—dþGüøµjÔªQ«ö¦Û›noº'+ž¬x²‚2GZðöéÛ§oŸžPO¨'ÔYYfe™•¥æäš“kN¶3±7±gñ.â)ùó²ï˾/ûr9ärÈeb¦‰™&fªØ bƒŠ ÌU_?üòÃ/?ü¾9|søæ³Ÿýûìß±ëc×Ç®§ä‘YħŒøÄ1éUÀ®€]ñi(>ŧ$e© 0`ENç9çtžAm´Ñ.…”^vxÙáë/®¿¸þâ“AO=D½ µ{ßî}»÷í¢#£#£#[Lh1¡Å„”:¿Ä»‹#GEízý*úUôΠA;ƒjݨu£Ö”ª¯®Cºé:äP³CÍ5£^`î»Wì^±Å‹/^¼Ø»µwkïÖ)u~ýêù«ç¯ž—>¹ôÉ¥O¨ØÑžEÛN©3Kœ×âç;õÂÈ `äÅÈ ¶A|RˆO ñ ’Rç—øôŸ¤Ô ž)»>ÙõÉ.F»HaÀ@ŠyUçUWuÖî]»wíÞ'rœÈqÂÎ*ý¸ìÇe?.;?áü„ó¨5¤÷óÝÏw?ß„)¦L˜bgÅÄŠ£MËõucÔQ7F Ù4dÓMÖ\_ *-¨´ ÒÓO;<íÀY†TàmìÛØ·ÇÊ+{¬l£°Fa¬óÌ*Ú©h§¢vºìtÙéòöÚÛko¯QuH§×µ·×Þ^íV´aë<¿Ä¹/úÑ'0òbä0ò¢ÖZˆOñé`g–øTŸ°âÓ–ZCÚD ëD $«7Mß4}ÓtÉ¢%‹–,JÊVåe6å^5¤QûÆ…ß„_Q x†-g'OòU4ßÙ«ü³E}37—ÿðÈ3Üý²®Íòë­’c'5ìíçÚ®aýùêçëšÇÏ¡ûǽoýñõÇ×~óùÍç7S›°6ž=xöàÙ0×a®Ã\“r~5üÔý¬k1SyT_¾ªÊÏ%¾ß~¬VåRõ¼uZø×[ñ/âÿŠŸ¿•”÷G.þŠ´P_oø{Ãß:Ïê<«ó¬jɾ1K¥æjÍp·S¿¥ëqÔ³úª6c•¸¿³êô/J©úŒ9Š{mÍœŒþÅ·5š²³T¶%×YüŸ³„p­ýc…Î.s’R_SòLÉ3%ÏóŸŸÿüügÎ>X›£é¦?š>èEЋ ×Âg»ýRpªÛ¶ÊÛ~8UdW+‡~ã½÷w¿3þUñÉý7̬RbÖ ûsû”°X~vÍ¢{{}=)½G“öNC?ÉïZë»V räòœès4)çWD¿ˆ~ýÞ~?øý`jÖC´IÑ>“Ò öóóÎ>¦ü¾ög]×Ý4Ê­àÜæ«gUv¯Ô¶ÁbOÏBí–/íï9³M®ðÏ=䦥¦¾+Ò³–>´\êeŽ6íé²ÌyáÏÜûŠ>AôŒ¼L—óÏâ7Êl*P­Î«ö=];ŽQ ˜{ïò“'•(7WñýŽÎp÷®Òíû_o~Ü|ho?×ÔÙŸu®Ãyüy‘—ñ‘W•¦®uÆLíÚÄ£úòU£Ö•ø~û±©WKuÖóÎiã_ClÅ¿ˆÿ+~Rü#/Ø*Ñó‹OkáùºfuèÞ®aÑ£ùêOjXÎÇ+tm–j£KŽÜY»™_Ö¨oêlõ®ùÖÉèŸmËÙï<}•ð‹¡M‹gÒ¨´[á7•Oä?‘{URÎ/ñÉ+>…©M¤À°NÀ@2Ùµs×Î];{ÙÔqzýºùíä33ùýþrdôÃJÓbccbBC͵=¹nqÐÙY;î)êᑹ@±lî¦[ßj}«õ­öÄé‰Ó'ê)å]ø»ðwáá „'z…¶M¹z@o°9ànll§N¡¡æÝŠ=‹wI챉¿Hüu¶T_¯Â^…½ ûÍó7Ïß1=fŽ,ÙsgÉñ{Þ¡Íô{+¸ö(PŒ‘ÒÒÈ«Ó"WèKÜ5؊=‹waä…ÔHôð¢·7½õzdÎé’Í}ÖΊõŠzœ‰l26è¬yïi¼Ù~A¥iò™ï ùýÞqzñŒù‹Odêi0¬0`É 8»'vOì:äê«C.S.Œª÷ í<0úûy—Kj‰A‘)Ûǵ)ëNêÜ;Ô+J:%B‚duþôùÓçO{…z…z…šÒJ{4ö©^ðë3‡šL ºh‰¸×”­xwq$¦³øëÄ_šÚëëPÏC=õ4½W~½“k‘½·Ý6®ÜÖ”êÉ˾*Ó¢ÅïJåÍ`RÞ¨z£ênm½µõÖVÎP$“DZc¯ºfèš¡‰¸U¤vøaØ‚ –óoì 1o¼aú¶˜Ò×qê½ì ùyÝ1éI߆ý6ì·WW^]yu…jGòíM´=SZiÞJEOfsk•yÞOvæ zMßkz<»ïÐzëFŸ.øÀô>Aô!¢?I;#¯\C|².ñdHÆy—Sª',³sV„6¥ðóæ¿öeäÛy5-Zðë3‡Öm º˜RWòâÝÅ‘¤µ‘RÑ«›þ)0©s¹2^Õ?l;¾bÝ”º³ý}Ý ¥?­Þ³ —ó@SŽY|:‹Ojj¶ŠÖ‰a`‡§žrؤõoÚ•¯³-_íK}6¹”-˜RC#cÛ×÷Œ ùf}ìo%}LzÖa€Û·noz¿éý¦7m–³ê䪓«NšÒ&[|ʳçÃRmÆTˆH©¡‘±­8*q„¦ü-â¯NeUõSìO±?M9;å씳&­°;{X‹bCžÛíú¬RFkëoeØ~¨¼Ã€2mòþÖ¤›³ŠƒâÀÙ Ëy:ÿéü§ó›­l¶²ÙÊ„[c–éNŸä¬]|Ý€Œ3·\Xnÿ')uÛ–ª4fÈê–¹ÝJå(ïœðß’{Xîa¹‡]¬±þÅú´XŽhc¢½ýG`ð¢RÅœ_t•#~(º ¥B_cÛá?žxìûW›áƒ=Nd«óU–ÿxbOô'¢o±Õ‘—kŸŠjmþž¿Ýäbm=aP‰ùõ÷Œó>ÝÃé7F^H¥#¯ž<{>,¥ô¨amWòâ¨ÄÚìÈ ©Šè½EOnJ›\[}OÉ×;´ ùÆÚîl\êÓluÙ‚íÊÝ—¯¶)‹øÔ¦ ÀöÃ:f¶²ØÊb+ÿc:¯àl>Ysö9³ݺ  Ö642:Eê†ýÑ!¯ç\Ü»èò„ÿ:ßǾ}ß‹¾}/šösyûäí“·Ozûõöëýë¨uíS¨Àó‡UÚL¨°ÝÚ†FFÃà*m&TØ.Ž<á¿N”€( k®¯çOž?yþä»ì~øáßèÖ]~ôøü•ËîN•¶¥–þðú‘­µÊ5m¸ºÊE×ÿXrb§‰&vŠŠŠâ,†¹\n¹ýåööì/Ø_H¸zÿÖÝ}|:k 9ÞúÌYnɼ¬~9Óå¾ü_³È­äVrÓ`^¢]%Üö²_rÞœeuØ‚u¼ËY[è›ð¶Éü)O‹”Mø¯}‹èglcäåt×ã­OV?Çq™Ö­K-=aÐû…'÷G»¿j{upoF^°î‘W“kž?¬¢ ­°=µ\É‹£Gn#/¤.¢Ç½wÂ-pÎåJnE—¿ßÐñnÈëÔrgãÌþ&¿]Îææ“³OÂø§=À–Ã:æð.ö]ì»ñAãƒÆýÇ7I·Žµ/™>µ Œmÿ^³-ªÜž*;Ûç>Ÿðß{¹á冗Ò@/z¼èñ¢GÍ€š5noŽ6Øð0µ Œ®|´ÁŽ€‡ ÿ¥¢4DÉX[}ÝÏq?Çý…çžSxޱã/’+ß Çígÿ^ÿ[°Kjï¥.3"üÊ$\_]»wíÞµû»ßÞýöî7Îh$Å‘¢GŠ)úÏ·5®Ø©N•2mf†«ESWôû¯ðãáÂ5û'ÙÛ*o¿y ÿ½Ë—…/cÅ>˜hK ··Z†Ö-Pk¸vr´ïóÔýÆÝì3¸äÿ® Æ8ÿ’ðß+úœÔ;òò:ÞåêXûÔÛŠmé “/n‹Êù²DÀöŒ¼`M#¯%c¦ö+yñW¤Þ‘RÑK'ÜÞªì(àžûüßkZ6.·'µßÙXµµêò’éþ{ŧ¹ød§… µ#†u"’æZìµØkC?úÙÐÏŒ]ÐäoŸç•Ê+U6+;!µ ·³*ü±¨}—tç;ït¾‰õ¼åó–Ï[ `tm˶uŠvÏ—ó…kû\•BRû)îVüEâ¯3ö·‹’¥d õuçØcwŽeÙ—e_–}FWñôì°§HÛwË÷= ‘m©'¼·IP!È΀L¹>‡Ô|Jó)ͧ¼³gÿΞ³‰“7&oLÞÿxÞwO÷Ëãï¦ö¨Ãpë{`ôç+ÿcu±9Çæ›sŒv‚#ÚOÂm¬ËŒMu‹¥ÞÐר¶©÷ÔEº%ü·‹þ'µŒ¼²¾ÎÝ>Ï+ÿQfog{ý¡{ÿ6µþÈÈ )7òúþ]¾œ/\w©bKWòâ/]jy!u=s½÷¬Ê‹µ·¥{b{¥Jó†e'äoŸ}±Ã c»ødŸò´¤^À°NÀ@’Œ:5êÔ¨SFo÷﫹Âí¯—?F_¨4Ñö¢ß¸ÛèAó?))áËÙk_\ûâÚ´˜âuŽ×9^ç(»µìÖ²[µ¨™#*\ô¾{½S‹Ðr¶7Lú°½Þ©Eh9ñ—+QJ¢ÄRª¾å~”ûQîl3²ÍÈ6ÃØqn˜ñÛ*Ÿú¶Ý¾[²ïIˆ<8¨Ý Â;®û^§]vuÞǾ}ω“=ôüÑÿ˜o£Tã1úêm¶uÄÝ–)53«ÒÏIòè\ÒèÌòKB–„, ¡ÍÀt¢ÍkQ&ùÎÎ^f@ìþ%#l/ú»íú4"¢è ÷3¢/²æ‘W¿²Çj®Ü7ïËè ¶Ý–x3$ïüOy!yG^Žz_‹½³5´œÍ^Ï_ÙZNü¥Ö<òBê"zã„{ìèAu”Îd³÷4b;u }ùcû•&6ßçÕÊí/cå >åi3H½€a€þ}ø÷áß»p¸«mýÂíßßÞÿ84£mq·§÷¬Í–ð¥í#×G®\i?0*8686¸ÅØc[Œ5ÖŠþ(W#›Ï@Û nÅ_m¬LD‰‰ÒKÖFÕ_W]ÝßÓßÓßÓØ±íÞ6ÿuéúi§'Û™-lõ>g¬LFL1mÄ4Nw$ìêÒ«K¯.MøSµôÈÉÛ·M¶í¨ã_SC_}Ï`—þACª-3V&;¥ÒN‰öƒ„‰vb¬•Üó]§\/‡^9VÁ·mG¿q·}öGµ.ñ]Â}Žè—¬mä•?æûŽmë¹ðÕþÇi§?,µqìɵ¹yÁò#¯ß½}¦µ+yñW[ÛÈ ©‹èî¥Oïi|0(,íÜÓx»S†ÐŒwù{6º¨øÄ§ý 5"†u"m÷×»¿Þýµ±‹•Á«Ú)|,ö]̾д6LÛóë7<6º¢XèW¡_…~õîü»óïÎÓ–`h‚óç ÎÆÚOD»šá¾ÓZôw+JÀXùˆÒKÎúúñô§õ:éåÖ™i3êøW \}þâ=rœö¾æwÔ°”ì=ì=ì=^tÑýEwZÑDÛ0l3…k´pÊ?¬Ð±¾]Òfôû¯§Kè K}ºTôQ);òr+š­~dpžðr15éK9޾½*œ‘Ì7ò£Dw®áÅV”FÊŽ¼ºˆ^×X›91·ÑÂÀÜÓˆmÑÉ+4o§ÜÅKç÷6VVâJ€…Ô‚Ö‰0꠯ ±ª«>®ú8ÃÝWñï4õM•½¹B| ÅÝFÆÌ(å—ÝØÅÜ¡l‡²ÊFãÂ#í‘öH3:Yîó‹\a€d¸%ctÒ?í‘öH³D}]ýäê'W®<~rDžâéèýþµ]óKh‰æµkVu“ KÌy“ó&çMoj¿©ý¦6½"^G¼Žxmìüò]8ªÏ ¨ã_k/ž¦•4Vb½|zùôò¡]AíÁXkôퟓ|2ýÆÝv)¸ñ÷¢F¯äE•ü#¯ìß¼ç5>¨Áüè½¹èãn‹×êwnF)F^HÚȫӀ"W¸z7ÜŠ’Iþ‘RÑÓk'‘1µÛøeç>FÜí›*V„øú*.NNS KL\ ˆ«Z¬°¹lY·eÝ–uV_1jŨª<¨ò  %óq€ÓîBTÞPyCec—q·ŽîèQ¾"ƒ"c۱뻕ög¬ô^w~ÝùugÚXZv!ìBØö¸ßu[NwM:v YËÐÈp+JF”’aé‰R5sU ˆ; œC9‡r†ïØN¯ëœ¯K컘ýô{ñmŸ½ˆz\)ƒ±žpb¥‰•&V¢7H˼|ðòÁKc-Ä«ßúè¹ÄFŸ~Û>öîZc¥·ÿÆþûoÐÆÒ2ÑŒµn¶~W4–¸×ضᣠ• 71Vz¢ïJΑWéWS½vô ß3¶-Ô¯Ñ_ÝJ3òBâG^%3çôx×dߎµ\·nEɈRJ¦‘RÑ»ë{Ç®jì1Ž;ƶ·Ž¶*T¾¢±ÒW´1X?à¤{Wç]wuŒõ„Á‡ø>~øø¡±®GúnÆû›0Â`ÓÿáçY?Ïúy–aGÓüdÍn百=Óc]§ ýÆ:î{½îõº×‹ö–†-[Ô«W¯>†íayç*]JTddúV”XoÇ­!gü˜¾%&JϰTEi'¥¾÷^Ü{qoÃ=×÷ uϳžž-±Ûç»wM©TÌèm‚tgÒá - ©Ÿ±~Æú [‚çWËÿ“#ÑÓAwsoõcç×ËÈ—‘/#iui¨k£Ó>g‹xXT"ÖMì¶~û±9 yÅs=±~Æú-7òbÚçÛ®s¼½#/y¹ísô~Ÿwƒ3\Ÿ›¾%&JÏ#/¤.¢G5l Cr—þºð=îT˜w:hqµ@«ƒu"6/Â`sáö"`Ô¨9£æŒšcØ•Œ?Ñcƒgy†=·}¸A9RሱnúaчE¥íÙ¸#±Gbx}áõ…×ñ¬Ô8¼þ€b {>n+J/žo£áõ…×¢ä[]oм)ò¦ˆ±söÒàMù˦gû¸íºÈñ~%o–jÓkM¯5½FW‘\¸záê…«ÆÎ¯ šóWîyA€ñq[×fªÓÀ°TWy¬òXåAÛK D]¶ÿ¾ ¦;!Êý¸í0¯c»|»ëµDŸfÞ‘Wa‡&z ôi·-ScfC…‘#¯F^áŠqMþq[Qzæy!u½¨Ñ>vC›-Žpâã¶ãOò,O´3gÔœQsh{°NÀ–CœÀ@<^Ô}Q÷E]cÝÇ£»êÞŠN x’²Ÿ»GÏì†e;kƬ³X5ÇÆð<áyÂÓ°ö}j9Op*{»S«Ðò x>r{»S«Ðò¢$ KX”|bëkGÇwt4Ü[›ªß{å½@o–”í›Ç{„45:ÏÄà[ƒo1]­ëÙ«g¯žñLç=¯{Óñå‰.’²õï4¡ìfGòµ/c_ƾÌû ï7¼ß@ ´U¢~E]¶^™ä¹ÅÛå&eÛd÷ÔÒEj–­èÓÌ;ò*3vVvu/}ZR¶…6©Ó##/F^ÿyyþèT.övÌÎP¾Úþ±ÛÛ1;CË‹’4×È ©‹èEãyh$wpyÏìÜHÊöÑݶŒ]ˆ+Z ¬ pò N,` m#ÚF´5ì,/jSø(C¤oïu—B+8ë”ßy_ä}Ú¡­êt¸ÓáN‡ ë]÷¬ÓÆÿ;†:Iߊ’4,aQò‰­¯€Þ½â™üùÌ‹uG‚nÒ›%}»8óH‡â• KxòúÉë'¯§Ç°UÏn=»õì–Ñg3Ì“wx˜a›{§_lʼn†%|dô‘ÑGFÓm•¨_Ãz/Ú;ôBÎÑÄ·Ißíut„oqc=˜èß’>ò*P¨Î¯íèÇ̰ X3½…ÊÈ‹‘׿G^s:ûÇuxÒ·¢$Í5òBj!zN£ë¬wo=¬‚#÷%’¾¼Èÿ|ᣆ%,®h‡°6ÀÉ0ØÀ@<‚lØA\¾´9 l?9æÚ¶ø¬æ)·¿ Ëùøáã‡3X²A/½Xôb‘±à·];:†ôKú álÍ&JЛ¸{NkÃ$Q’F¿-»èÅ¢‹L©¯[sn͹ÏdŒÞ¹ MÉv&ö]Ì>sôgk®wüÿõ•¶zÂÇmµ‚K½-{õýÕ÷Wé=lÏörÛËmçy‘B]EtûÊ\7ýý¼Ç5_ÿ¯¯[¥µØÃç³á–s—]Nt9A;´U¢~ã¹ï¹zž×.s… =Òo¯Z¬eÜý§µ¸ê‹Þùò53,gÑ¿%}äåßsB“ÍÄ·æÚæ©PöEÍSŒ¼yýoäµ/}H ßÙ°Q€(ɤ¼ºˆžÓ°Æ[|æÕ×ío‚[sm/_j^¼l<ç—¸r ÂÚ§,Â`c€yØòaˇ- »5Ve«i{ÁÃÔ}/x%þF1KÖUs.,*bXÚC8d ­ÑöD—Ž.]Ú°ÆÇŒ¼ëQÅ\ƒÃ8ùcà©;Ë÷ýçÌj¢½IþÁ’(UÃrµ`J}-­¹´æÒx&x\ûɯçK޲ܭKßÒ®Ïññn¿°nL¾E 7Éîà4&Ûû×…GçóqœQ³tÙÛÎWÆWììéúbt´G¥¦ÉÓ6 «1Ýí×xÖS,{¡ì…²ô¶§ö®Ú»jïŠ'ðnäåéÜqÐ'Û €óÞ¨Þµixò|)'ž/Ä_mÏ F^Œ¼Î®_ß:8‹íÀÆ®ó“éoY¿¾uÒF^H5ZƶŒmi¬/}=¸CÓŒ¶÷¸ã3<þó+9Þ=ü`hƒbï ß]\EÐ$a=€­a00ð/Wu^Õy•áiõP„Tö¦-E¿?GvnìÞ%¥Hq·M UŸåVÞðHnÿzû×Û¿Ò&mD…Ø ±Œ}¬¾ëß±_ÈæTgê”9ÔîçÈ2#ã?³’{&JÕèm¾ ±b+ ¨z¿ìý2žgz oÎ×Ð1ÜÒ·~,ÑMÈöÓOžQq÷ïU¦à•lËg·TµhíƒnKv—É ž þµu·hMÎ9[dýê_ß/~¤~Zá¢åz§®úðŠ3 Ë! `@Á€‚t!¶äİÃN ‹gò犊vmnÞÛý–€ƒ./¼¿NŽSÞWýŽ|ØõûÝYBÜUIß°”×´.¹ÇØùføùçee‹ ìSvÊiWï ¾Ÿnl·ÈîÏä ?|¾Ñ`qwÃr˜n7ÝnºmÒ–ˆ:gòç›k®{b{p£ÕÇžeì³>™&‚þ­Wç|†ï.úºyù™8:B²¥è×+ªËú1ŒÕTr‰KDp@õYŒ¼ÒöÈkßÑͶ¯j1æ@‰{FG=Éò·ˆRý¸‘RÑ[ÖrÓBžíÝÊÛ^ô»ªEÕQ _Éq W5¿]ö¦á»‹«Ú$¬°õK›a00ð?1±1±1F‡I±ûBŽ¦Æ¸÷VØ×òž+»±+±uØ«Ž‹L)qÉ£föû);@Š»]¿aü37Ã#Qü?ņiîÝ¿wÿ^<­®Ùa¯OÝÂÍüäk²À·ÂZ¥+ï¹²[U¯[‡½ È]dJ‰KÎ:³RfÀ&JØðxD«¯3Þg¼ÏÄ3i꯵ºmñXŸºà—ý¢ÿ®4Åí‘Ë·9Åž}7ytš$]cï%þ=îo%Oé^2ÿHÇ—ñ|—¼ï뾯ûғ؆y_ÍûjÞW†µì3wdÅ%á©+.Ú¶çÑ ÿúÊ‹Wû]Oü_Ã÷ÿR`^Ý÷ÖˆÿÎÖ!ÿ×EŽ[|ÚÕs>ªdX3UÌT1mÒ–ˆ:5¬ëÁµîò`Kp·R[ Ýã˜Îi}DÊÀa‹Ö¹{ÇóUNÑ×}ÜÈ+èì°ý6²ú¯˜#!K¦l ŠXC콯ûÍñÏy¥Õ‘WnáÖs§"éð©±kòåÍæT$Kk¸¿!J8±#/¤.¢·4¬åõª÷q³¥è÷ÔØÆ ƒòæ Ëz'¡ó+Y¾ÚÛqUÈQ£ÇCË„5 N]ÒNL |ðtÄÓOã™ðûÙp¹hé¡ÂÍþÛÛ”{6zB— v?L®ò‰«¿ˆi³Ïp|jåÞ1ÿÚlŸVÒJWËõR<ÇvßE:X!Д=/:=âVñÓ;²äø]½É³¬{<]j›QmFµ¡eÚ†?¿üóË?¿4¬å僫ô*Q9yàÃ~øµLצ•={ºUÉ•=ÚAÊ>#Ëû¨’Gœ[9åìëQxû}—ÖZ…@SÞeÑéÐí‰;³RfØ&JØðxD«¯5çÖœ[sÎð·öÌ[°®ôØä €gXV¶Lצ•«ot«’?ʵ‚ƒ$úÃ’G<¿rÊ?Ø·]ŸÂÛMé ·w™:µT½¸{ÞxjBŸS¦ôxqKôÀ–î‡êU¤M<³PܹzçêzÛÐpaÃ… Ör™™³BµÏ’'Oåºì ®Y}£Ã7¹¸V°éîø4ÛãšçW²Ô©Ò®OÀé{¥ƒ ï¿`ƒ•Ãæ‰}:D»ÜÌçcÊ”Îþál~õ¿Ü㟧-{d©—Ý7G<ýểï¾;HËLíD=ƳšìºìX"ø4wž¿þŠ÷4Ÿ°Z¿äöÎñЭFÖ&Y—g«g_ÁÍÅë„£RÉ5ì‘[çþoö>-ÙüãÞwpžƒÝ}Âò~Z´}¶o>|BMé¼ÃmRJÀýÙÒçsÃw}]bG^¹×ú«øC2M‰|yáàýu<׆Uø¹u®å>³Êzgžó–Ë·úÃiùç¹OÊçP#]³f~ãÆØð{¢¿z’eöýYöï ^÷ùáë/åêœi_2e`ÿ¢¿ÝäÉÈ+­Ž¼F+QÙ‚OÁzXܨQ¥¬·ójñeJq /îoôÞjo¡•âîGRà§ú³ŠÛÅ×:?¬f]°}ÉÂSöþ†(áÄŽ¼ºˆÞÒ°–/nöGYwKîwm«ÛÀÿrëóÞ×óF»wÌq)Û§Ù–eùÙþ7oÏ\¡Ù.4Xäþƒk†­ã¿ëêû÷{çŽ[Bþú¸wyÑηâvßM.ÿœ_¥3Ç~%ßïgîçrÑðÄ-Ö€8õ²í0˜øà|½óõÎ×3<™§¦ï[Ãë’å bÒQ¯\¹²–KìÊ”W£#"Ê^OxÿÇ·®¼8tbÆ^E=_n­!~}®ÒÃ#©’½Jö*Ùi™¶!¼kx×𮆵|<¦QÝÀ‘É;Fdq·ÿ!ásªÀf§<OO¬h´40"áw9¾µQõÀ¡3–ÝêùÚpk=°(áxÖ5ïÞ5¼«±úê×½_÷~ñL—z»ÜŽ=å›&Oìá0ð¿ëË5Öá鉫VFÛÿÜ ƒõ¢ÒÇMæügÙÅ5¦‰ßÊÕØéF–y–î'·}3eh©O ÿÒ¨ÌQ™£2Ó“ØÈ°°•]+»Vñ¹ÂKÄ&Ol_0ë`‡ Ÿ_ÎÅ]cK9~´j•±ý»½¯2µác‡NÎQn;]Z©VÚ”0£ôÖ)M··IþÄÍ%ähý¶†ïû0èaÐà Zfj'ê1ž‰ôë5:åR(9à,šC”Ýó„ϯœmò:fÞµöæéE&ö}ýr×+íì öãÑ£ì™ņm9á;/Å&£ö8U¶TŽxþÈVv­ìZ%väU¤wËÜ}kXº7(1k±6(WŸŒÁ=Ly‰iœM—p¤%®`d–ÇUèº8 *w;ÓÏ©CF×+1üãîE´º[Û9ï‡{U{¾tþâmàÞ¿B~LÙû¢„;òBê"zKÃZ~Ö~z¥ –Ñ‹(·÷:ß¿ }núùUÿ"ïóÄ<[Úî÷ŠûŽ­îzÿçü*ÐÝù‹·3Ä~%ß©éË—ðºdx ⊂– «éÛÛ ƒ €Ôûê}5ž‰’ä3÷ú³ÄðàÙÒ¨é—ï‘㇡ .uÛéè>éVï^í£WÎ/XÚIÄ·êÓÙýü¿8‹ïÏškHc pìɘաAÆŸ›„-èõ¨×£^ ë÷þW­·WðKžXâߤðȵj(¥ýq£F=ŸðnN%{kŸÞ.Ìî_gDR¾3k=°(aÃã5b¬¾*«x¬â±x&"ž¿gzHæä €ÿW_mw¹³ÖôoKiÜø}ƒOx7§Æ ŒµOo÷çÿ¯¯ýuBþ2Üÿ¦½‹øf kÛ@Êß¿û—M PLïëâ>=,ž<¶t?y&ǺüA[ Ëaþ’ùKæ/¡'±ÕaaŽ®^3K´Ä~c°ÿê÷[Úî(þyßgÓ¿-Zªg¹ß7äm\u[ãΆkôŠçäÌuTîuZŸp8îsÃÉx|Þî›Áñ¬6zöàÙƒgy8ÕõhX¿u.ÿ¼±`ƒä €?L0¾6¬°[¥VÊüeÕšU˜~¸HLPÛÅóxÚ´ûË®TÜŸ>÷d¨ï-SÞñû#z¸7Bî[mWùýSv h±-TÅfö¦_Éyß8 ë̽–î œ•éYå“o¹/K£¬ t«ûcûÅ[÷Ï1cTÉ;ó‡/Ø¢SŸvY×çè²/îú5÷pý‘ÿè冷é8p|Ü/ÓûâKòÀÁ¥ÂÇĬfä•VG^’\ÁÏÌW°™b2‡Ú}ç^n¹‹Ó¿úÞ •êç)¼ðÅðîÅìž=ÿjéï~>lS±5K—½í|%)³‘Íê>p|Ñœq¿ *ž'¶†ÎD 'vä…Ô~%ÿ¡¥ìÔ84È#úŸ#ËŒtÿ°äŠ˜ÃlØ¥õ"MÅ=ƒn N•ɰtuåÝÅÏW¸˜÷m®qI¹1«{EÿÎ/§<Ooöo¹<¡ó+ùîlȾÏëÏ_'®(h™°Îþ8µ³0˜ø`ɵ%×–\3މ ÊZ²JÎ@nCت!5Bj„Ä(ïP®ÒsKÀY®Ú;Ûm’Š×ãç7 ûßkÊW (ÙØ\Cë €E ¨cõå°Ûa·ÃîxþЍ˜¹¡þ–€³\Íb·I*>c”ŸwÜž*î¯)ÿkHüõej¿gÊOÖSCæùððOšç(8ËÒýä½R’S…ŒñáµÕT‹žÄV‡…y›V•÷L¦xŽýî,!"ä0\©Wü··k×c¿†$=¢1‰Ï±‘—Ž,æÒ;çäy=«l´>î>=žvx5¼{òD Åõ{;#ž¸n÷g»?Ûý-3µõhX¿­[˜ÉcBòÀö²„Ùl½t¡ŸÇ ñ3qƒXñß'Nv.|=±am§–«_zÈò]Ö7v‡Ä»´Û·t“çbÃý§TÔ©…oÓ¯ä¼Jm{vm^ËõÅNõm3­ö¿úCe@ðÌØ„W.“B›Òúä¾rÑ$»—Yîd•ÅþK,ì4w­aO›bppxxLŒÓ%«0òJ{#¯=å+=7ïµëz‡ñK¾û.ã+ööt5v·AЦMùÂÙ{%óÝ¢IÍve•í]Åx!jÏܵþ« G )uC”pbG^HíWòAY]å ´ÄXþRúfCË~#îfˆµxź¼ ß…è³ TùB‰½#ó]ýýÍvÙ¶wïµ§ÎÛί”¿Ëqúpã£Añ<…,®(h™°ÎþØ–¤Þ0˜øà·E¿-úm‘á‰úwßm³Êí´Äð`ïÀ…MJïìq§ixAÏ1úÖð0)–0 ‰“2°±ž¸EÝïÜ^qÂVyÜó¸çqϰ~ßìø"4½¥`±FŽ)C”¸¿U­}}ÎÁ©=%lx<¢FL¿lu_–ÿ|¶,–8÷ àÖçkÿõO}™ÚƒUkál®ÕËÖkó®pOY…9ÉÒáÚ–-=Êå¶tOøüü®e•⹉ßò—–¿´ü…žÄV‡……?k2­Gïä €]ÓU¨Qû/S"‡¸¿•«ZÉÞA‰}wÇsyëZÏÔ#Ÿz}Õ¹ý/g“3ððÍóó•eÛ gSÅM7U¤e¦v¢ãY‘÷æ†6Þk“'ö›P?½s€)áë¿>‘¯–[œÃè3Êbµ`g‡‚{:ˆŸ¯™sÀÜü ß%eàêÝûFä;kú•¼±‘Wé_&+ÛfY®p¹|±Æ‡©qãNÑlz˜sRqÏ€(ßë¦;Öv_ ìCßþG³M½Š •S6Îó}¹‚ß90òJ{#¯ýçBÓ›÷Ú5î×%ÅЦüÖ›ê{CJy{Zí‚)÷"î»H+z4*–íCwA+빿!J8±#/¤ö+ùu½¦º½²ÄX~äŸeЏø|W7è¹Ç-Sî-¼©ÞaeH)±*°øùCK´ÏÃèœa.­µ r–þçüúgY+ë¹Ëñwß–¡åvƒ¸¢ eÂ:û`[•ºÂàtÖsJÖéþ9¤Bóä0$ërÃÈVL ]ô^å 9?<7_bA6¹¦È|*S)»„Cåä€ëû%°`÷¤×WÀíùåËõÙ¢ õ¨ù¡ÿ‰óìï¬ì>ãžRÙïïß–mÌè>áÁæWqÿ¯˜$?÷]ÿ™•ê‹=»dü¬Šlž9&sÂqrJÀù>©Ó̉þ!í¼bv„–7ﵫW™‚W²}èÁÄÂ+¦_3›r/B,ò"&”?ÓpdÕµ›˜zÚêîoÜŽÙaŽ‘R—ž?ûì(XËcùF½<Úº.ý#m«ÛÀÿòÇÝ‘(µÄ¥«Óc« ×¹PøÑ?ç—Ç×®Ýb3uÊjgmw9îoiýªBsÚ€Ôn˺-붬#¬È×ê—.'Ï€áa:¥r…•JÖ™±~sÄ9C³·P¤ ääqÉu*k_£Ã¹T÷{Þ:_¡(Ú[š» aa|5ºù²×MùÝ ®Mÿ ^ôãLÙ¡‘)Ç“XUüÓåV“'¾Qöº)¿{Áõjñ×WâÞ½™®nCãîÁoš÷[§÷Š-ù* &9ûÆ·eöþò#=CZãY¼ãŽ’'ö?4qx„IÏòúmÿÍáj†G›ØcúeAýù¿Ÿ”uKb+û™:5w‰RµÊÿk-Ì’%†šÕâ°ô[Þ?šÒÞÒÜmÙv;·;•<pï¯ÕÅ·›ò»=ï\\ì˜áÑÆý™ªv?MÈ÷áß].¹ã˜n`½˜ïJ1üIk€ë﫪™ôú*ÓxæHõKKôA›ÜÙ7ýÇér«6%IDAT_ýa¥ß÷o–ô=²k8¡Ë±Ïl_åý»p“2 gU?5Ög&½_Mú6ùZ›[ç£H{#/s^µ¾íQé_Ÿªç‹nø=¸£é{Ø:~J.ß¿>ÂѺLðøð‹:n’Ýáá#õÓ ý¼5Üß ¥¥5ýžû¹вÄ(Þw“‹ƒÓ¤¤aþ¨ìÑ’á}‰Ñ'þs~åZ˜Ýáá£6ÿ9¿¬ë.Ç×mŽT¸L{Ú½^ûzíëµÀ€±ôÀÝ–ì.“¡ö×\]~+Ù;’’G<¿rÊßênmç¼Ì5°±†O§éÛÉòð«NíŸUÚgÊï¾ݾB¥¦IؤìÐ(µ?üªÓî%•ö}Ü'Sú±×÷´¬+n'9F8 ´ÿAü–kæÜS³®ʉcHþ^‘'€Ó¦ä|8ðÕ¼E»—˜ò»óæ‰ö0<Ú¤•Øs•Ò‘!Í»gž†¡ä|xhó£M|ÝMùÝ!ýï÷9ox´âÿv¼·º¨×z»çöávͲú8Ž·Ïý£ý†ÕÞ;ãþ O'v+¾þò¯þ0fž]ôßIÙgÉ;ó‡·ëbïc?Ö¾¾CfG?ßb¿d[ö6á>Íý*Oô‘—9Ÿ_ÙŒ»qenúŽ\[¾­ÌYc×ðû›…(lÿØ~¬Ý`1+Ïá'ËÞ–Yšðõy ßßà à4ÉrO;Éêgÿ:éGw?bÏû›ÕïPØþ±]”Ýàl˲ülÿÛá'?\ûçü²Æ»< À6¤¡'€Åè¼xYÏ«kP× ®A†§¥¥×Î>Ãñ©ý‡'_‹e*┽ÚÈ?Ãæ¹—ŠX5i‘ï@ñ-Z±Fޱ°$)› ™°0-Ó6^ùŸçžÿ¹aý&ÏÀ¦?|éq³¿ÊV¿•õ˜}_»Û©=6¶°¨cõeøóɹ°éO_z¼iØ?õ•5Ã?õÿÏŸ ^$¸„ï&¯‘ÿû&µø-1×BÂÏ$ÏÖØÀ5:ÖèX£#=‰m¼ ë79×6ý `ñl܇_Û—¥QÖ æ *â•C€sq×XK!ÆÖþµÏ¯}~íCËLí/Q†õ›œk›þðO¥·Å?\-ØŸËZÂneÜÈö‡‹¿…NgÞ ýŠF-ük'väe¹5€ ¿ÔRºñd¿­·“²O±–¹yk*Àaê°çRj `z[y™s à·ÿÞ17é{ØÞeêÔRõŒÝ‹X6÷—³%Ì{~Ýn²ã\ùÖÉ¿pÂ#/^©ýJÞrkË”ëuöóñl›þ­ø­lþùúqŠÐ,˜^JÊò¯ç˜Ÿvx5¼»éÇæSeD™Å&ŒÍ²Çia®\–€‹7ê÷vFKÃòßýÙîÏvFËLíD=Öoëßfò˜`mk·Ræ/óøð™•§Žû&Ç‚–€-ýLpP§þy¼M¿’76ò*µiìÙµy-×8Öv_ L¼WÉO‡Î/hÊo•Zñ†o%Ówò™>í¼æ%glé«}Q‰y!µ_Éeu=–3Ðcù¸«ónïR+o©zæÚ³%`Kß÷8}¸ñÑ xKW´LXgÿ ÂBJÆ6ˆàvÔŠQ+F­0½W?Ÿü¡o\ÀÀê}õ¾zßðD•ÌÜë7ÎÃÜÕs,Êr\¼‹˜à(±‡À'cV‡¿|„-èõ¨×£^ ë÷þW­·Wð³tÜú¼÷õ¼Ñ¦üî“Ýÿpõ¿Õ¨—G[×¥©=%lx<¢FŒÕWÅcUŒgmÂ×ó÷LÉléX|!Æ”ßýar•Oþ©¯ªƒ\N XµÄªœ™Äÿ­¤•®–ëå}é`…@k}ÿõŸëòm1,ùùKæ/™¿„žÄV‡…9ºzÍ,U0y`×tjÔþË”ßu>V¦g•ßbv)8£ê ÃX"îžÝ²…l¯_Éôcóø¦Ëà2çZî3«¬·¥cÏÛ}3x•aùŸ=xöàÙƒ´ÌÔNÔ£aýÖ¹üóÆ‚ ’'ö›P?½s€)¿[³úœ\Ý>ÄYjzæú×ô΃JÿyÑÇEìßômÜ#³áÿµ\\¨ŠÿÌìL¿’76ò*¾q@Ö™{-×ü«×:T%}ÃR¦üVÞÕ»6 ÿ0‘æ÷k%V‰/1k±6Hô´¦oÿõ÷~Þ÷Ùôo ÿ¯àRácbV3òJ«#/I®àgÞk׸Wã•§––{ŽI‹žTßëRªXl‘ãÙ‡»ñø˜6¨b 1R0}woâΉáÿµÜ•¼(áÄŽ¼Ú¯ä?´«“‡™w,ß¿§ßw…>ÌPÕqDñtù¿1å·ÄXU]ÇäÌäÞ1Ç¥lŸŽ¯\ÛÓ5îÏ<>ÖvxÅ÷ ñÿίZ'JiÆž0¶ÄV>ð}^¿q†%/®(h™°Îþ8µK½¡o\ÀÀçë¯w¾žáI;5}ß^—,1<ð¬V°`¶â]Ö”ÿ5¤dã„þÚ–-=Êå+ÛRü2,ú\¥xV5®’½Jö*Ùi™¶!¼kx×𮆵|<¦QÝÀ‘–€³\µw¶Û$¯=ÆÏÛØo­)_- d㸿½²î†ÒNw Ö‹6<Q#Æê«_÷~ÝûugZ§r;ö”ojéX¬†.Ÿ1ÊÏÛØo‰>óßõ5¿`i'ß”óάà×öÃ4›éíþ´ ÓÓY[ô+¶Û¾™2´Ô§†%•9*sTfz¶²ke×*žç½r…—ˆ ´tl7Ç~w–â­ûç˜1ÊØoy»v=ö뿞2öœœážKNúda“„JL»êðMp/X¸~D§Ë–Ž=Ü\BŽÖokXòƒ= ¢e¦v¢ã™P·^£S.…’'¶ï”%Ìndë¥ ý¿š(Ao’óÎÆÔôåKx]2,yqEAË„UŒô €m‚m„¾q<ñtÄÓ†'ð÷³+þàrÑÓêÎwâÃ7й|ësÉŽŸ[_~åøæWe×ß ÛáZÞSDÃ^uìXdŠÓ˜lì_›w"#k€/ÞäYÖ=ž®³Í¨6£ÚÐ2mß_þùåŸ_ÖòòÁUz•¨lé¸àR§þŽÚØ`_ÿˆÂÛ#ËÕ.Zê妽53úfêæT²W±q¾Zûûœƒ“ÜZO,JØðxD«¯5çÖœ[ÏÍÁ=ó¬+=ÖÒpÁ¥n;ÿ©¯v} o,7}_©—›öN,⛩›SãÎÿ¿¾‚"þ©¯ÿ¿ÿvêfÊ×)nOûa-–ßdõ^›Ø­¥ûÃa…:DicXòWï\½sõ=‰mh¸°á† k¹ÌÌY¡Úg–€:9G¹}xÖ°@–:UÚõ)îÓoôô}E§üÔvb‘¼«nkÜ9îÏçªV²wP„±¨£Ô‘_K¯kÉ1:{—¸¿%±O1Õs1—Þ9'·(Ø Aå°yq'|«ÿŠ ¥-{d©—Ý7G<ýểï¾ã àTOÔ£aý:®ËqÁþAòÀ9Oä=Ÿuù‡Ù&\ùun]bA7Í ÏlíîÔ¶Eñ<žÿš8ýj¹Å9˜ëÙÜ” €>ú³¥Ïç†%/úºÄ޼r¯õ;VñËõA›ÜÙ7Ýð} Ì«û¾ÃÑúôqpÉWîëÛ¼T5î åYëälà\;é+§lì_ô÷±›<y¥Õ‘רq%*›ù 6SLæx†>vu.TªŸ§pøÍžÅ?Ý={þÕÒß-:=âVñ€Z¹Ê·qùNüŒ·g¡Ù.ØR,J8±#/¤.¢·4¬åK£›ýQÖÝ#úxV‘ü©x£üV ©r¬ÄpîF¬ª¹Ów`ÜùÌ„–_yΛ×\w$R6þ~vá~. KC\QÐ2a €S/Û }ã"þ'&6&6ÆØ)ý.v@ÈQóîEÖ/(îš”¦ø«óÚ¹AòÍ3ÊatܯþCpçÞ©1^¿aü37Ã#Qü?ņiîÝ¿wÿ^<ý5;ìõ©[¸¥à]Ûê6ð¿œ3,ë,>¿Š:çZ˜Ýájtóe¯ÛF,JØðxD«¯3Þg¼Ïij’߯µºmñXoéx×¶yaþ—s†9ùïú*Ü$»ÃÕ興êëÿï¿Ü»R s¹Xÿšabë^2ÿHÇ—ñL¾Ý÷uß×}éIlü¯æ}5ï+ÃZö™;²â’p‹¯|bðªyaqŸf3&ÛWyÿ.ÜÄÿÐÄá ?ëöṄYN™r¶0ýlÊáâ9Ççb)§ÑV­²ô³¿æ|UÉð*fª˜©b&Ú¤-ujX׃kÜå3ÀÒpûÀeƒ<÷9¦sZg‘pûw¹TäŽcºÞ_« ŠoOípØ¢uîÞå ÿFÑ×}ÜÈ+èì°ý–ëJ_Ÿr‡«˜ÌÙ”þJôoÅö);åtÒû«” €½÷u¿9þ#¯´:òªqÃ-ÜW°âÎFÙÜ>sþaÊ9UºO±Þ9:‹`Ø–`Q‰y!u½¥a-¯ßP}¸›%FôbJçæE¼ ¸E˜~¥]+W¡_]¾{Ù¯ýœJSR{ü.¶ãª£FGè1±1±1´LXàÔŶC߸€鼪óªÎñܸz(B*{Óƒ±ÿá·;å/²/ØÃ'_Îbm`±­pÑïH®qâɳwžû¦‡,Ž{T"<ÎÕØéF–yamHùû§Æ¸i¡ê³Üâ¹mtû×Û¿Þþ•6i#*ÄVˆ­`ô ý;ö Ùl¹8îp¥åïyæÊí e[–ågûß|tçNMFþY¦ˆ{©'»Úž­8"é$k€E©&Uˆ­[ÁXu½ìý²÷ËÞ†¿Uxs¾†Žá–€ãöN-ßÔj™·aþ(× R¶eŽ~ö¿ùèž»šŒü3lž{©'»ôÒÿÔWüûwÍœ{jÖµÖ?uÕ‡WœÏä¥ ¤ ±%'†vb˜a]ªØ¨h׿–€ãÆy—/\«¥˜ŠÙ¾¾CfG¿ì®ëzîÏé–¹:ÛW/mzÔñá þ *‡ÍsÒ<ú–l/ž–³ÿñd¶ ÙÏž[t›ËÎàšÕ7zµÿñ×Ñõ‚íÂ3Çd¶øj—Ááá11>ßh°8žií§ÛM·›Îš—6EÔi<ÏÊÜ\sÝûKÀqƒØR+ëvÏ}?ÇC·Y›dõqoŸÛm’÷|Ç•+uï’·ï 5VøT2ﺼ)Wý­Wç|†e.úºyù™8:B²tÏða<5¼MÇãs¶)6; c–ç9Jä:•¥söA9å襔j˜¯GÍÍOŠÀØë'ìP}#¯´=òÚw4d³åîlÌn5¨jÑÚ!2æövñÊ•+k91“™ÿ¨¢ÛrøüÚº[´Ç¦££=*5µ¥) E©~ÜÈ ©‹è- k¹i!Ïönå-=ÆOú6êåÑÖuiÍNyž:Fdq·ÿ¡XlîºÙ‡×ÿ£Èû<1âgâÞ—°Ä³ÈÉ_=ÔüvÙ›†e.®"h“°ÀÖ/턾qÿ²³ßÎ~;ûųjËÁNÅÞ[nÀð€ÇØÿ5o ‘üðëÁ{…d4:LjÛ2¶%mÒ–tëÒ­K·.†u}v}“«ÁY,1QRÒÿÝrGbé­(UÃÒµ`J}_ ¾|Åp÷ûÉŽj'O˜<½Ÿ5lu·9mü«–ö̧3ŸÎ|JïaK^Þ}y÷å]ú¶ïæÐÆqqpñðþ13-r$ýßl$öx,·Í?£ö®6ñL6{òÅÉ'_Ð&m‰¨Sú®ð ãy·Ï, qûï©rÛæÔÂRžYû8ÆÚ—ˆg5Ä»/ï¾¼ûq#/O玃F8%g/am½–E¦¿.:¿ÚžAŒ¼y]¿¾upK_Ù&| oø¥ÏÔ~%/J5)#/¤-c[ƶ4Ö—¾Ü¡iHFKôþ¢yÊÎ@f‰møÁÐÅÞ–¶¸Š IÂz[§´úÆE üËÖ[>ŒçbÎcMUÙjÚRØ` Ûý•1,í!‡ 2Öh{¢KG—Ž.mXãcFÞõ¨bKCkØŠR5,mQ ¦Ô×ÒšKk.­i¸‡µŸüz¾ä(z03OVcº[<ß%¿PöBÙ eé=lOí]µwÕÞÏsoƒ' ÚÜ.µÇ VxÌZ0{Ÿ·±AÝ›9oæ¼™Ck´%¢NÕø°Û'2û®³‘ðÕ ¶½‚åGÅã™/DôoIy9¶t=\`=˜™çBøtx»E¥y1ò3ºë÷U¸ö6ïV”jRF^H]DÏiXãû/Ô_½ón=Öäl˜-žûâ*‚ÖëAl=}ã"â<8xpð`ÃŽàò¥Íeû1¼1×¶Åg5O¹ýmXÎÇ?|ü0íÐö¼XôbÑ‹EÆ>hßvíèÒáMÒ·¢$•³¨SêëÖœ[snÅsÝ;w¡)ÙÎľ‹ÙG?fŽíã¶ZÁŠ%Õ×û«ï¯¾¿Jïa{¶—Û^n{¹x&‚îÒ(¢ÛWf <>ÞaQ a9w9ÑåD—´C[%ê7ž‰ =WÏóÚEpk¶ÉŸ_ôΗ¯™a9‹þ-é#/ÿžšl 3×6O…²/jžbäÅÈë#¯}éC¸³a†­(ɤ¼ºˆžÓ°Æ[|æÕ×íoîH˜k{ùRóâeã9¿Ä•íÖ†8eúC Ä#¢mDÛˆ¶†ÂàEíb e“ôí½îRhG£G‘÷EÞ¡ÚªN‡;îÏ`I÷¬ÓÆÿ;9Iߊ’ŒçÆ÷áN‡;%ú_@ï€Þñ<ßsæÅº#A7éÍ’¾]œy¤Cñʆ%±Õõ¦È›"oŒ~»ùÒàMù˦gû¸íºÈñ~%o–jÓkM¯5½FW‘\¸záê…«FŸ®9åžD·umVñ§: Ku•Ç*U´½´@Ôu< ÷m0Ýy !îÇm‡yÛåÛÍX¯%ú4óŽ¼ ;4Ñ{l Oû¸m™3*Œ¼y%0ò PŒkòÛŠÒ3ïÈ ©‹èEö±Úl©p„{·"x”gùx"œ9£æŒšCÛƒu"¶Bߤ ŒºûýÝïï~oôÙ¬£;z”¯È°'±Û!¹Û{¾gXžC†  Õ¥ÚVm«¶Õ°%Üâ4ÔÑû}ÞŽ[CÎ0ì1}+JL”ža©ŠÒNJ}-÷âx&‚®ïêžg==[b·ÏwïšR©˜±Ï—3éΤ;ÃZR?cýŒõ3¶ϯ:–þ'Fb·¥:޹·ú±óëeäËÈ—‘´º´@Ôµ±–Ð-[Äânb·õÛÍQÈ+žëŒõ3ÖÏh¹‘WéWS½vô Kì¶@pãí=yÁøÈËmŸ£÷û¼û„œáúÜô­(1Qz–y!u=ªaK’»ô×…ïq§"±Û[G[*_ÑØõ€¸Z ÕÁ:›¡¯¹p{ø?ÏúyÖϳ ;”æ'knt;ÇàÇôí™ë:í7ºJJ¯{½îõ¢½¥!Ec‹ÆõêãÕÇ«a{XÞ¹J—ü˜¾%Ï7Ðûxõñê#J;)ÕõÊ÷•ï+_cçoÔ¹¿û/¢—3}ûËÑKº¯6,É&w›Ümr—î!­9{çì³wŒ_ͧuŽüšÔmЋ…êþ•ÙÖç¿ïþ*žO–ÁË/gZõ4GÔ»a{píç¹ÉqÌð#'ù¾!Ö5eÛïæ‡’Ÿë©D?f¹‘WžÒeÏÔÜH/gúÖïÓ_O¯ëÄÈ ¦¼F .ÁWÛ±%f¹‘RÑ£ýjo&]‚ös¿Âômó“^íÜΖ¤¸B ½Áš'¡¯%ÿáñÃÇ?4ÖÅHß͘ççË(áíÛû¼C~q_‘ÿb¶,†e8íò´ËÓ.ÓÒÒ¦C3Í84ÃØùõw±–žåV3Jx+JÉXŠ6W}EŒŽ1ÚØ{=í¨ï¨¸‚/áíñØU'+Ãk™¯e¾–™ž!m꾸ûâî‹ […sd™Â•—— Ÿ#i$¼õø«Ã’áñTŽ­[9¶zð6à-O¼¥9¢ÞE0lõPèSÂÝÿØ8µ¿TÉâ«ûæjbX†¢ïJž‘WñŽý=fÌ£¯û¯ÂÌZ0{Ÿ·£·kÉüy!1#¯m­Ë­æZ=á­(¥äy!u½«a«p_‘ãE¶,oWtôù…{ o¥ïjOñ3ú¥sq…@Kƒ5#Nº-붬۲ŽÐ×¼€“l¨¼¡ò†ÊLýq۱뻕ög¬ô^w~ÝùugÚXZv!ìBØö¸ßu[NwM:v YËpÈp+JF”’aé‰R5sU ˆ; œC9‡r†ïØN¯ëœ¯K컘ýô{ñmŸ½ˆz\)ƒ±žpb¥‰•&V¢7H˼|ðòÁKc-Ä«ßúè¹F§}Þ>öîZc¥·ÿÆþûoÐÆÒ2ÑŒN}aëwEc zm>šP¹pc¥'ú®äy1tÂÛBýýÕ­4#/$~äU2sNwMöíYËu»áV”Œ(¥dy!U½«±¾wìú Æ㸃ñqÓ>‹«Ú¬pÒ½«ó®Î»:„¾æE ˜x"vCì†ê㪫Oé«xwšú¦ÊÞ\!< ü¯mdÌŒR~Ù~C6Û¡l‡²Ñ¸ðH{¤=ÒŒµ“?Ì/r…A‘áV”Œ±r¥j‰úºúÉÕO®2üäˆ<ÅÓÑûýk»4æ—ÐÍk׬ê&Çó|ç&çMΛÞÔ~SûMmzD¼ŽxñÚØùå»pTŸ:ñFÜm™Å³Â´’ÆJ¬—O/Ÿ^>´+¢=k-ƒ¾ýs’OfâÞ¸Û.7þ^Ô蕼诒ä•ýû‚÷¼Æ5˜½7}`ÜmñZýÎÍ(ÅÈ IyuPä Wï†[Q2É?òBê"zZcí$2¦v¿ìÜLj»}S¥ÃŠ__ÅÅÉiªa‰‰+qU@ë‚õ#6—¸Ïú&0wvÜÙqg‡±‹¹N¹ëGæ÷ŽmS34/¤sW…n4VVã<ÆyŒó E!®è¶Ñm£Ûk3+JVÙZ¢;$±¥a¬¬DIZº¾VíZµkÕ.cÇ >™ÝÇ?#=¡ØŽËØ=Ôã´Ñu¿9ûÍÙoèWû7íß´côé·ÐI/·Î$êª>ñž9N{_ó;jXJööö/º¿èþ¢;- ‚h¢m¶™Â5Z8åVèØNß.D¿}Jè Kä2Ö ‰>*eG^n%C³Õ Î^.¦&ýa)ÇÑ·W…3ò‚ùF^£s”èÎ5¼ØŠÒHÙ‘RÑëk3'æ6Z¸‘{±-:y…æí”»xéüÞÆÊJ\ ТZÃ:‰¶ûëÝ_ïþÚØÊàUíŽþ¿öî,ºª*ݸJUi5× ¨ ¡3J} M¤¤Áƒ ¢¨@ŽàE)z;bR‚l (P`•„ëAI¡#Š8ì¨(MÈy˜÷¡FRQPö^ùýú½æ\ßœs}ûŸä—oÞ”Þµb6HK—íkoió“þ»ôߥÿ®¸ ¸ ¸@-ñï2ÏÉ<'óœR?k2¨GVëa¹M 3PÚü„Ùû%ï×ðí÷/5ÚÜ<æé—Û ©Èoͽ}B½”Râï ¼ðÁ Xõü»¢ÃE‡‹×X^cyå¥ÕO»ÁÞ³&¹‚F¿¯Ì/Ù´,qIûzÝÇ•6?;ì8°ã€Zâß…Ú(­rZý©g÷Zõïl·í‰Ö›*fô;æÈ†Ô–¿-m~¾ö¨Xè¼’ô~hлíÛg=µySÅÜSL{gÙ>?Oç5ó–ÖÃ*ò“|˜Øé¼ˆa× ;piõS°´ÿÓí+êO.Î’ÞuBvÛä—6?áôWKÄ0±I ?QV¯¬^Y½J{X·þ¦> ý"o_zú Üö /ÖLZöiÿ®Îwu¾«£~(Uû’ö%íL0uÀÔҪ襎®Új\Ek“¨K›“0caö~ÉÛu¨û¡î‡º·Mn›Ü6¹Ôæmõ¼Cô©hoÍ0vUÓ–úíõ½ëÑ»µÜ)Û'Ï|òÌ'Ï”}ª^p÷ï¬~¸E¿)óºo˜ø—´‰—>[ڜ会ójΫꇲ…:)­ŠZn¸,£æ“>ÎïÔúÊ ô©ß¼7olqYÙ{NØ—b­ó:ws¯!7õiÿÛ§æí«@Ÿú}yê{/ÖÔyñów^5m5®¢=ɇQÇZçE| ;pÙ»ôö WÿOÚЊóžÆÑ/2NI?uÜú¶É —ú#¥zeõÊê¥~ˆG`b“ŽÉ”÷§¼?åýÒ\®ÛÔãùºü0<÷Ã.3¢Ý 原Wé‚ÓË~´Ý}ÚîÓvŸ¦f(CÕU?T½Ãª«:¬*­¢fßÕ©°éî’O3¤wŒl›ôiÆ€ôŽa¤¥ÍC˜¥0c'¬¹­õ]­ïjU}¼êãU/í:—=>=»UÄcàâ…›öw}mBÚ ñ rJ›‡A½õÔûhÉÑ’£:å²µ`kÁÖ‚²OØ6WßÿÆâÕÿY¿mfŸ±vÌÙ¯6Ö²oió°°ë® »ªÊ/ÔL©Ÿ.Ùú‰jŽ-Éû{˕ю~GX¹2奲÷™°ÅrçU;µC~ç/Úôäos?Œö~ØâðÄzó*é¼øe;¯±[›î.ùtóªôŽ‘}žÿtóªôŽa¤±Üy_Ân\öŽ;þŠùœíè÷‡áƒï2ãºMMn¨ûAióNy5Cü›ÀpŒOs%»KvOúõ¤_Oúu©_“>¸öÁ3Ÿÿ¸ÛŠ;dF¯Mšsɸá)•Ë~œ-È(È(ÈP,üXE×]_t}»Ií&µ›TZuÝÔ;åÖú5¾¯3¸f—®QjˆÂèJý°“ÚMj7)ÌR,ܯ/ó¿Ìÿ2¿Ê¦*›ªl*íš''ß¼¡áMÅÏmúW××¢´~½üÕ±ÎíšÓîôZÍJý’ Y×ͺnVqåâÊÅ•­n~¬Íõ6×Û\¯ìÓ¶é†[wMû*zQGë·ïûÍ¢qe}nþÜü¹ùꄟ&ÔOÙ5vËã˯HI‹^ôÛ¿é#ß6üï²ÇöŸxé¼Î8Tkpíƒm§d>±âÁèí‡þ2°ç¸á:/N\çÕ«¸~ïë¬ßÑ%R?î*Œ(Œ.^:/âKØ™ËÞ½ç\Ò¹aJåèE¿w»®_‡ÌsW[pæó¥=œìá”W-Ä/0±I ÇCqIqIñ´´iiÓÒÊ~¤Ë^5µrË“ã½Aúì…ÕovÜÐíï ®õ>“´«ß®~»ú)ŽÅ÷#¿ùýÈíz´ëÑ®ìz{{ë•o·7Þ¤0вGf#ÌL¬Ý¯oªSý›ê æ6˜Û`ni×ß°fýçÏzeçgK§·OŒ÷ýðÕ[_™zaÙ÷kÄ­#nqkñôâéÅÓ­hŽÅ»)寮›Rv½Õ¹ºsFïnœµ.%Ž¿ÕóÞ§^ÈËl¸ñ†zcž,{¼Ïf=›õl–ÚàØ…Z*»Þz¾=銤žw¾þÞ}­‹â7ô7bó„–;ÚŽ¸òþsî-{¼aωßΫÉ?nùdjåx}/È|¸põ›5~h1ò¢Á:/b©óZ8µÝÞx’£ˆß΋øvé²ë­Ûß“Õ*øì…ë¯î¸!ÞßÙÈ^õ§çZž\öxÃiNvB¼›Àpœ-j¶¨Ù¢fe?â´¯ÚꌷïÈ[²$íÃxiŽ.ËËízhî® £Sž+{t­÷µÞ×zß×¹_ç~«8^Žì?²ÿÈþÑ©£SG§–]·ju~RÑÞn3;½/­Q¸Úpåe.Ì@˜X¾_Eû‹öíï›Ð7¡oÙJ¸ïÆ[†7þÍÁÄ·2º¬Ž—ýðÓwWõìØ¿ßân…uÆ”=º32fd”¼YòfÉ›V1ÇíÍ£Á»ï\ùÃÊVþð?|&xú­¦_QG«¹ww\øä©5Nªµ«ìÑ­­µ¶ÖÚZêã+ÔUÙµWí£sVTYÒêŒÔ³<}É’¸ù"˜£O½——ÛèàMŸL­ó"¶;¯kv'íí¶vR§WâåI>\m¸òht^Ä—°c‡Ýû?|‡›]]ê¦cú}—Î5NñÚʾ)óc-î½sø¶}­?8 kBãmU/¯q°JRÙc ûIØ[¢ÚyÕ¹½óºÞ«Û&?4iybÌ…¾-æõÙð`Óí#Ïž®ó"N;¯QW%ÚÛfíÈN+c.ôm³vd§•á #ÛyWÂîvòòÔäÒ’îó[µ<4ãæ]ÿkïl|tûµ‹;œ7èâ”Mõ//ÏX©­ˆ0±I ?£ý ûö'Ü\óæš7×,ÏcP÷Qíï;g\n¯'w]ð«ÕíÛûú¬ÎWÌ6:½É¥ å¶ö¤µ'­µŸð‹*Ø^°½`{“ô&éMÒËS¥#¯nÕý¼ßïØrÍŒ´Âöõ°[®™‘V®¤<×FFï÷k˨-£¶Œ*ÿ®rç§unüì¦Õv\u¢öÃ-¯=û»  ˜xY›z§”k¿ªûUݯú|Õç«>_e…ò ÙW²¯dß “^˜ô¤ò¯¯Æënî;y~Úõóölìz¢¢Žfkï8둯« 9?µÉ—广ÉÓ'OŸ<ýàÇ?>ø±ÛÎ/#Ô[¨½òTi½.)ïU­{ß¼­q‰ }'÷ÿGµÖ“þkÉ}ÛÏû¶ü{BØCÂ~Rq:¯š[Uk_‹ýO}r×‰Ú /Ì™³òõY Š®{`tºÎ‹hu^ýSÎûýŽ-K–§ž¨'ùðêáJ*ZçE| »zùO™Ã:^ØäÒ}{ošÖùŠõÎFn¯+2/øU÷Qç59g\y®9œÎá¤vlj*0±IÛ¿õ9ësÖç$üHCësŹ ¯í˜ŸúÐwçîíòèqnŠÖ,Y¶sNθ )ÿ1©YÕFå¿¶;.½ãÒ;.Ýöþ³÷Ÿíþr¢ggge%e%e%ýØõuWÿvO5üäí7®\Ñå§ù¾qåŠv_…Wù±×FF¥ûupèÁ¡‡NOžž<=¹ü³Q½JµZUª?Ôoԇɳÿ1aѺ‹FçoqŸ˜wE×Þš6oûÝG¿5à™óÿcï×òÂå…Ë KÖ”¬)YcUr¢|‘ýEöÙ&˜<`rù«÷ìG}Ñâ¥ä§‡Ö½'µmÊC÷/oxœãN³Û­]ܬî複‡'ŽJ»ùÒÊmZ6jÙ¨eþøüñùãÝ_N¬P‡¡&Ë_Ã-ÿvÙ¥5÷ ˜úD^£‡Æ%æím¹öøÆ½·M|5«yë+ \|~vRr«/ªU/ÿµ…½"ì:¯ n®¹}®h¾blÍÙù½ýdµÜ½Çw?L­òào–,h”9ð±qÎêTgdR3©óʘØð“·ßX8¡ÝW?ËOó}cá„v_…WÑyÂvûñe¬‘XµÑœœÎÿ•ÒxÇšk¦¦í<¾ïiüp÷àù]}mG¯óSòXóSÏý±Ë+!œÈî/˜Ø$†_Ôáþ‡ûî¿ðé…O/|:á\²íÂåµ²'^5øê‡³ ïJj~Êßv><³õÚ×[?‘ݶê›økͶw®Éy¼Qê/Vyàó–SgöÚ$}P¿ÞyõûÔQ;õÌ[Úëö™ÖgZŸi+ V¬p7‰5ßþëÛ}û¯Éu&×™\çXÖW¿_5ÚY§÷ý\ô]ãîÏew»§E¯Wò{^ÒfØõzhûçðÿð+áwß ëX^7\yEE¸_Ÿ-ûlÙgˆÍ6gØœŸ6cÕß­ör•.×­ë‘U÷ýé'ÜšÜ={àý[Z|“ó§ÇNk³îÇç®m;øõæžÚ¶ùê«få´©ºðÓ{înþÒ=U†nk”~ùðNÃçËýšU{VíYµ‹î)º§è«X³õä­'o=9íû´ïÓ¾ÿi~Öuï=«/YÝ÷ý†ëo8sÌ´¦y·~9í`ó‡ÿ²lv·sÆó×Û[Twñ=R6þßßÏ<¹ñ5ƒÏžTéÜ:=/»a~õšÉ3Zm=–õµrÌÊ1+ÇptÂÑ î&±#Ôd¨Ïc©ðóƤ6­vÿÅ›דּàŠåSêž÷×ëϹ¤Q—›®\œ|þ çžùKòì5³~Óøµþm)n8ªç“:&u¿pkÿQ‰Ïž“×à7g.øi¯ö„°?è¼Ê¯Æÿk¾çÂåI—ö>8øêä:C¦Ü•Ô¬Ñ苞٢Á¸©Od·¸{üs­ÙüÏc¶>Þ¨i·ÿîõÀç ö]7itj±ßîwF^Íwj§ê¼Ðy•Þyuë_§÷ýŒ¸¦q÷ç²§,iÑë•üG>i3ìzs¶ýsøø•ð»áO†¿¥ó"ªÂÎNŸVáõGTK?óÖAýR¶Öï3³_ÇVMÒ_¬ré}-§®É¹üÚÔ3ÞüCïUmï|½uïSÛVýÛÎË’[¯Í*Lïßü”‰W]P·ÁáK¶»­Vö±¬¯pò†SØÝ¤â›ÀpÂì}°÷ÁÞ/n|qã‹«o«¾­ú¶„˜4üÙá϶ ³ ³ Ó]#^|Sÿ›úßÔÏœ•9+sVB W®¶"߯=SöLÙ3eâò‰Ë'.åû5¿Ëü.ó»¸ùÀÍn¶ÊˆGJŽ”Éïß!¿ÃUC¯zÕÐØ\Y)))9‰9‰9‰GvÙ}d·[G,¯ÝGvÙê6Ôpl®¯°öÃ>ö—Î t^îñ"œátˆÍ•NÕp†ÓÖ]£b›ÀC¶×Þ^{{íñ/yüË'êÑ­ÃîìpçÒÂ¥…K ÷ß?~¿oºHÜ;:èè £ƒr×ä®É]3 s@æ€Ìµ¾Â«‡+ Wåîü»ƒ¹sææ¤å¤å¤õÜÓsOÏ='ê~˜8b∉[®Ýrí–kÝ¢áëf_7ûºÙ‚ ,XÐôƦ76½ñD­¯’H~ ù£JUúHKLD„zµ}¢VVX×a‡õî¾è¼@ç¥ó"ÂINp‚œ¨õNÏp’º/€‰M`ˆi»fîš¹k梢EE‹ŠnH¹!冔„¤„¤„¤c\kûnÛwÛ¾;%{Jö”ì'mãôÎWv¾²ó•Çë~õ½·ï½}ïÍZ‘µ"kÅÎÏv~¶ó³’¥%KK–šy*‚o»øÛÅëîXwǺ;Æï¿{üšVjZé8| ¨zQõ¢¡™C3‡f¾ôþKï¿ôþžu{ÖíYgΩ8B͇úk!¬‹ãôVjZ©i¥°fÃú kÙœë¼@ç¥ó¢â§I8YÂ)Nœã°´’’’ÂiNÆpJšs€ø"†ˆ(ž[<·xî[ϼõÌ[Ϭÿçú®ÿg~b~b~¢™c÷å†/7|¹!÷ÿÿ_ø3› [¶,l™Û3·gnÏ·Z½Õê­VEãŠÆ33pìò†ä ɲ>c}ÆúŒ Õ6TÛPÍœÀñÖTX_a­™è¼t^p¼„Ó*œ\á 'š™ˆ*0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@Dü/)Õ‘T3ÐF%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/concat.png000066400000000000000000001421531431412030200246460ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝy´Õóþøq—k¸—«Aƒ4¡YI¥”& †Pæ(cMR—J¦Ìc—Ð5$¹$Šdê|æÊt¯$c©P$™4ªóû£û[«»N§ovÛãqÖz¯Öqβ÷{¿öçt>ÏögoW@^ØÎä OÀyBÈ0@ž€ò„ '`€»û³»?»û©åO-jù9õΩwN½’”< ä%·X“éM¦7™>tÌÐ1CǼ¾ÝëÛ½¾ÝÒ'—>¹ôI{äš•ýWö_ÙZ•iU¦U¹k÷»v¿k÷6§´9¥Í)%·’So8õ†SoùÂÈF¾0kÁ¬³Ž+W8ÎÎÛ"rÈG{´÷G{|~àóŸ/ù;iyMËkZ^3nãæ.¸tàÒà·´jʪ)«¦Lj>©ù¤æ¿ìøeÇ/¯ãáEƒ/|ÑàigL;cÚX¯è3å±öµ¬½È0ünV°ê„U'<óú3¯?óz…÷+¼_áý’9é‚'.xâ‚'fß9ûÎÙwzÔ€_×C¿úåÐÁO<¡d{¤í#mi»¬ç²žËzzÔøc€rŸ ¿©5]×t]ÓõñÇìñǶ$BñþþïW3ø´C«ÖX3rnû®õ·qÖquEI£vnR.Ûí„—š\S0©Ó÷x¦ôÑ76¸ùîέؾ{çzïîwò~•o_¦ï/ûÿž|ÛÉ·|Ûìf¿0û&°%Œ_0~Áøó8ÿóøeG¤ ÓË?_ºí™ñ±#«~xûv—¼[§Ã˜n7M;ø»IGÝ·Ë!q:|DÔ¤G2vÄÎMê¿|Ú°I‡”{ü‹ë¯«ÿÜõ¥û¼_«}§ ?¿Êˆ-9Û{ØÞÃö^~ýòë—_ïÑäCÈ}0üF&OšëImNªW»v‰½ª”«µù·­ÿÑýîôÒ=—î¹tO/°9VõYÕgUŸÛëÜ^çö:?#ô–._©t…;:_:§Îýï z*>ì’·Þjß~k­ëª¼yb»§ÞöðG‡vè7õ¬ÑÕwý¹Çê s'Ì0·° ° °À£L~€rŸ ¿¢¥%—–\Z²gÅž{VÜœ„ÐáÒjV¾jÊñ'Þy蟷nèÝüuÉçÝֿĻÏoÕìÀ£7?~DÛEÛEŽ'@±¦]:íÒi—nþQåš/zïSóõç½|k«—¶nîÝüuZøÄ_›uÖàãÙwûÍ:†ŸÖá´§-|iáK _òˆ“¯`€Ü'ØÀ¯âaï {gØæƒî­ë½±_§O¯8ãé–Õ~¯è[ܺú®žÝÚí6®°Ã# lÎ}¹²ê•U¯¬º¦ßš~kú™ ð²ÂË /6kجa³6ëvrÖAƒ——œ¼cÛ¯è[ܺpûW¦µ.se³nûÖøÛfý³˜2Q™¨Œ ÿÀ¹O†­ì©ƒž:詃6Z”«Úp¯+f¾ÙåŽæsr-ú·®ßë›v«G|Ö¶j½múÞ5ZÒhI£%ßNùvÊ·SÌü1-_º|éò¥§–<µä©ÿG(½ñÜ /¨½Óª*S{·}9×¢oqëÓ_êØªkç§œ»Ï€Mß»»zßÕû®Þ…YaV˜™ òƒ û`ØÖ®-\{[óÛšßÖ|Ó1`ÌKGý«ÁŸ¶•è[ܺ`ìÙ§·zíÈW¨Uiö¦ïïg?ëüYgßUø®ÂwjŒ¨1¢ÆˆâŽ 5+î÷dÙWf-w{‹*ÛJô-n .>±q³M /ê{Qß‹ú®½}ííko7!lë`€Ü'Ö™_8¿pþÕ;^½ãÕ;wêÿåG•yòó#ÏìÜòÎm=ý]8¢MÍz¥6?f÷žÝ{voÃùmÑŒE3Í(ýFé7J¿QÜÑ`Hž¯Õrèî›ÎÀów™¿Ëü]Ì äŸÅ•WZ\©ÜðrÃË /î0~øícžœOÑ·èºöñ7–¶ 5ï>°Æ¤bß÷ý„î't?a]áºÂu‡m’ û`ø…F?òø‘ÇwŠÿªÉMêÔè±îëÞÛ·ß9¿Óï†ëG¯þvó>›ÎÀ‹÷Y¼Ïâ}Ìä‡ÕVwXÝ¡I&ušÔ)îY?õå‡Wšçé·èzÿYW¾T÷“âöäÚ{¯½÷Ú{ÍÛ" ÷ Àð³MÝuê®Sw-î´þ 1M>­1£pmï^íÛýqÒï†ëìq]kqCqûÓþ¯íÿÚþ¯kg¯½v¶Y‚mÝ]ðÑ÷|kÀcÏ7íõGK¿®#®´o½;‹ÛŸ±ýxìǦˆm‹ û`ø½ºèÕE¯w*¿w¥ú‡î_·ð¬Þ¶ß÷™~7\ßÿçiö|q{ukí[kßZÛDÁ¶kÌä1“ÇL.î9/}ðŠ&;ÿ‘Óï†ë­;÷m_»ØL>k·Y»ÍÚÍD±­€rŸ ›g|áøÂñnípk‡[‹žúlUÙsϬ9²ç“íI¿®ouêÖ¸|qÙcZ¹i妕3\°m™·Ã¼æíPÜózä×î];Ñ÷ÖÑoÝÐþà3;{TÕ°èŽUžPyBå k:­é´¦“é"÷ À[ËôS¦Ÿ2ý”õ{xé{—¾wé{ ._pù‚Ëí °å`Ø,ãÄø#Š  ß=§zë6roqëÍ㚟^ûÖâvoõù«Ï_}¾ƒmÀ•…W^ÙªL«2­Ê}.wOO¬¼ß……kßzSôÝØúãŠlIÛí‹;ÞÕö®¶wµ5bä>xk©pj…S+œZt?Å``Ë ÀðXòÃ’–üPÜ)ûà¸NÃ{Õïÿ±þôd¯Úín¨õd…åJÝÃ{?»÷³{?3iû&Þ8ñƉ7w<\Ö+}µÍ“Bï¦×÷ ÇT;¬Øwž_b~‰ù%L¹LÞr¾öwÓÄ`à—€áÿpý×?pýEOÉùÁÝ«~"înþ:ó’.6³¸Sœß^þíåß:¹ 9jU£UV5*îù›=úÏ;š<&înþzû4¨õtÑìòM—oº|cÞÈeð–[~îòs—Ÿ{ÿšû×Ü¿¦äfƒ€Í'C±¾9þ›ã¿9ÞeŸ·î:¸Ò¡»Öø¶è~^Ýôê¦W75u›FõÕoT¿¢ÏÜ“µ¯µ÷8A÷ç®Ë§NÖö â~¾ÌÜnæv3ý %o]?>ôãC?>$[—Ó‹P¬¡#†Ž:¢èI·ÛÞo1´Nk)÷—­?ŒïöâáÓ‹;¡ùC½êýPÏìAîXSsMÍ55‹{Î~:hÂþ-kº¿l}¶à¶Æ ¾.º«]çwßu¾Ù#7 À¿1ØZ`؈'®8qʼnÅh[üÍyµÛì)ånÉz[¥­ë”/º· `øÃM äŽW{½ÚëÕ^EŸ­ÝŽ:þÀ}爸[²®Yòú#íº{‰A -dÉ5ðoC ¶„ 1ñ¼‰çM<¯èiµA5™]ã]ùvË×oûž;äð²Å¾\Ws]Íu5Í!䂦ýšökº‘‹?Ï\ñìôæ_‰¸[¾Ž*q]™úGÝá{ÆÝ3îžq&\#ÿöÄ`àç€a#Z j1¨Å ¢§Ò>ûôÌú-È·[k=kÇûW]PtŸß{ç½wÞ{ÇÂïkህ#nä2øu+UVnfáÚ·Þø=ré¬cÇ•mþ? d[ÀKÎKªµiPì?ˆ™·nÞºy¦‘Ü!ÿ¾Ä``sÀð?~8û‡³8»è‰³Úc÷ê\îXÉvë®oÎ9ùѦíŠîöà«_5ø*Ó¿¯ÑÇŽ>vô±EŸ¡ÏìpËìC¯\Z4çG>£Ï1÷U½¥èýšÓrNË9-M#¹CÎb0PþǤ“LPôdÙÈ·ÛŸrÐ:Év뮫õìÚnçâNPž]xváÙf~/->oñy‹Ï‹>7¿–=¼“¼u×´êˆnM:½_÷/»ÙýËL#¹CÎMb0°!þÇùcÎsþ˜¢'ÈæM;óë–_I¶¿ÆÚµzU[Ýó¯oùú–¯o1“ðÛ[Ùoe¿•yßß/ì×¹ìÈß7”æk^¶OzM›áEïWÓjM«5­f&Épîƒþ¿· ß*|«¸“bk {i÷®Xûk¬ãÆw¸¦aÕ¢{5ŽG &üöfÖYwfÝ¢ÏÊ[:^übíqð¯·Öj°ÿueW½w«û¯î¿º¿É$ÀÛ1þ˜`ø¯e×.»vÙµEOÿ`UææZ4ýêïgÿ«Õ7ÞyØ]µKžzO­çöirð§•w.ÿ]ùá¥ç”Êjõªði¹?·MöWqååZžQ'û®Ê¹Éá‡åfþôÆ3žkY«èÎí6´ÛÐn&~{c?ûÉØOŠ>+_{è‘g½97ð;Û?ѲÙE]èð|Õ#÷Ïö9¼LP~xÙe¥²ÓëüuÏý5ê~EW¾«¼}øa¹€‡Tï™Õì¶‘«P,š·hÞ"“I.€·]b0üqÀð_³Oš}Ò쓊žöúÇŸZ|à§¹“K“/N8ªI‹*–=~V%¦ySÎü²å¹€Wöéq_Û;‹ÞÚ#ËYþÈò&~{úè; ïF.ÌÞêÕ×ZwÍÍ\vb™«Jºécà/ìSXfÙûOŽsØÄÜ À/ï6ìêCþ\ô–g%²Y “I.€óƒ ùM†ÿŠ¿‹¿‹¿+zª+üÏñû6¾5B飻ßÑæûš* -ûŸõ·­Úè=ÿ^¶ÖÝ [õ9°Ç”§Nèžï½tZ‡Ã®Ž—ÿ}“]†¬jZ©æ°õ¯ þß ¥æØë€?è}zûæÅj4™ðÛk3£ÍŒ636r!â‡_»¯]‰Ü Àë lwÞ«5®›Ôñ¾¿’<÷åã޼xÏÓÏ?àæR*ùï’í7üÊu•ß<¡Ýǹ€gVxvÿæ/½_?þðã?n2Épþƒ ÿÀð_Ï|þãó‹žÞúèÓßm~A.„ÒõYwý­*µ¤dVrÐGWžþ|óÎÅÅÝ¢÷e¿wË_PæÆÜ¼tó=ö™±×a0ä‚2SËL-3u#ÏÇì­¶o’k¸ô¼ÒíJNêÚ¸îú¯Ùð]×ÿylë[Ú58=÷ß9øÛC‚=ßy#a»ãÀŽ;šLrœßÄ`È0ü×íÝþØí=¥µ ÿÙí[MÊ…DúúU'‡NºdQÃkªÕ¹iÈa k·ßœWôĹù:à³N<ðUW À Š>k=±ÿìr¥s!‘ ÀçÎîôñ¾S6'ènø]G÷h>±r‹\ ÀËgO~¢í!E÷ÿìξáìL&¹y|€ó• Û®ß-—„mÄw/ž»êð3sóU³›N¹këôêÚnÔ=3[M>ð¡ÜÀ—^ßðÕjÍä¦VÙ!µ*–ÊÍ/{p@“]6ëv ûè*ÿÿúU'•­•k¯^ó·×¾mWüÛºûvºo§ûvòË6ü^`ø?ü°²ÛôÃ?ËÍüÃvÝ.?ü©hãk<âÑÚ=høÕåíU³ZçëjïºÏÅ{W)ûôý‹oÝܺ/–7Þ§zfÞ 7Ùä°í*Ź€çM™8±å›ó½söyîèlìx˜+ø§f¯Üîólë~²ð“…Ÿøe~/0üríÀoW=åÃfÛwÚµú¼*7”žWªrÉ ÅÝòÓ+Ÿ³çþç|S÷¶}ïÌýìÀËrùÀ«zO}¼í›ó½+nœR»m×\À^ 䯀ß×ï€'ïàÃGn}\Ôü¢æ5/z+×Þ¸üðÒsJý÷•²í^quù£¯ûw³šµ™8æØI®š]¯ë¥-z­éÐó©v‡¬ÿ®YÇv‰š¯Éý\Ü{›L>~û¢ÏÄ\~àÍð§K& iyøúïÚcÆÛ—ü:×pqï|L¯czÓËdúÈÍãà—½<èe;“‡Zpèñññæ§ßÓ÷;}¿Ó÷óÀðûÚÎÀzÏ|þãó‹žÆúèÓßm~A.$Òcެ6¨òÓëoÕ¹³ë~±ï”u•{½ØîãMgÝ™]»to>%÷pó=ö™±×a»Ào­ÌÔ2SËLÝÈó1{ëŸí›l»ï<©ã};$ùÿÿ€¦æžåεüí!Áž‡ï\tçvØq`G“I.(:Ÿµ¬ýcííL~øñ¡úñ¡û×Ü¿æþ5›}/}ïÒ÷.}Oô€Ü!ÃÅßÅßÅß=¥þçø}ßš ‰´R‡2—~oý­zóŒ“û6­±9ß5©cÇ÷ÿðÈÑüAïÓÛ7/Ʉß^›mf´™Qôù¸úá×îkW"×ð¹³;}¼ï”ÍùÞSï9r‡}š¬ÿ®Ó.?jà>£s-ϬðìþÍ_,ºó?þðã?n2Épþ} ÿÀð_³Oš}Ò쓊žÞúÇŸZ|à§¹Jë½×°r—¬¿Uc[Ý´Áé›þúù/žÕªU¥õïœËxeŸ÷µÝÈ»YþÈòG–7™ðÛÐw@ß}‹>+¿nõêk­»æZ.=¯t»’‚úÇ6®[Üwm}K»§oø]Sžz¸Ú¡{æNú]¿¾¼Û°«ùsÑÏJd%²&“\ çÑò› ÿµìÚe×.»¶è©®ã¬1 ÊÜ\¥=ï>è‰ýÞ_«ª..÷r™½õˆ êÿëó÷μ­å¸…}ÎÙ®u)O8þÐ=‡¬jZ©æ°=oÚ£q©ÕÅ¿²6Wð§7žñ\ËZEoáÐnC» íf2á·7ö“±ŸŒý¤è³òµ‡yöЛs-W]uRÙÿC5ê~EW ZÝ÷Æ!+'¼~WÍF»_¼çéçpó†_tæ+·Èµ×þ®_‡Tï™ÕìVtçç-š·hÞ"“I.€·]¢/üqÀðÿ½UøVá[ÅüZ[ØkL»wßPúMósÿÖzZ­^>-÷çÍ?m÷ñù]vm~ç~ï–¿ Ì~¾Ã©Õö«Ü/ð¸ñ®iXµè-G£Æ~{3ëά;³nÑgå-/~±ö¸\ À“_~¨O“Ïöê³gÍÒ=7}<¬W¹F—òeæM™8±å¹€k5Øÿº²+7rñíþ«û¯îo2Éð¶Eô€?&þÇùcÎsþ˜¼újÚ™_·ü*réúÛsÍ×MûÕ|£EíªÍöºjý{¯_Ÿ»ïOo~Çá7Ô}fm^]ÛÚð^¬ÇO/Ó¶ôC}Ϋ?aÿ¿çÂ=êZ½Nª­7r±Ù[¾¾åë[Ì$üöVö[Ùoe¿¢ÏÊ/ì×¹ìÈ\ Àë?¿þÏg¯éxö¾÷Ïö9¼LPKÝÞ0­3uÏ.×ý»ÏCµY:9=´Íµ¹™~—í“^ÓfxÑ=oZ­iµ¦ÕÌ$¹CÎ}¢/ Ãÿ˜4`Ò€IŠžùvûSZ—;—MÞôeœ‹û¯¹vñçÕƒzvm·s±©>»ðì³Í$ü^Z|ÞâóŸ}n~7 ,{x§ß7—qîçsgM«ŽèÖ¤CÑݾÙýËî_fÉpn}€ Àð?~8û‡³8»è ²Úc÷ê\îØÜI§ù±¾9çäG›¶+ºÛƒ¯|Õà«L#ü¾F;úØÑÇ}†>³Ã-³ Í嘺-®gô9澪·Ýí9-ç´œÓÒ4’;àÜ!úÅ€a#Z j1¨Å ¢§Ì>ûôÌú-·[k=kÇûW]PtŸß{ç½wÞ{ÇÂïkህ#Ž(ú ­[©ú°r3 ×¾õ†p»5Ö%ç%ÕÚ4(.Õ¬›·nÞºy¦‘Ü!ÿ¾D_`sÀ°Ï›xÞÄóŠž>ôX“Ù5Þn·|ý¶ï¹C/[l𨹮溚ærAÓ~Mû5ÝÈûÏ\ñìôæ_É·[¾Ž*q]™úGÝá{ÆÝ3îžq&\#ÿöD_àç€a#Vœ¸âÄ'wBmñ7çÕn³§ˆ»%ëm•Z´®S¾èÞ>0üá 7;^íõj¯W{}¶v;êø÷#ßnɺfÉë´ëZÜÏš…ƒZ8È’kà߆è l Š5tÄÐC7rùÓÛÞo1´Nk÷—­?ŒïöâáÓ‹;qùC½êýPÏìAîXSsMÍ55‹{Î~:hÂþ-kH¹¿l}¶à¶Æ ¾.º«]çwßu¾Ù#7 À¿ÑØZ`(Ö7Çsü7ÇûÚ¬wϩ޺ ûs×Á•ݵƷE÷óê¦W7½º©©ƒÜ4ªß¨~£6r!蓵¯µ÷8)÷ç®Ë§NÖö â~¾ÌÜnæv3ý %o]¢/ðkpzþ×?pý×?PôÔÛ™ؽê'‚îæ¯3/éraó7‹;•ùíåß^þ­“˜£V5ZÕhU£âž¿Ù£ÿ¼£Éc²îæ¯7¼{AƒZOÝÉ.ßtù¦Ë7æ\&o¹åç.?wù¹¢/ðë€áÿ°ä‡%?,ù¡¸“qÁq†5n$înzýéÉ^µÛÝPëÉ +Ê•.º‡÷~vïg÷~fÒ ÷M¼qâo,îx¸¬Wúj›'ÅÝM¯ïŽ©vØÅíáüóKÌ/aÒÈeð–›~ÊôS¦Ÿ"ú¿6Ëø#Æ1þ—ƒþeëÍ㚟^ûÖâvoõù«Ï_}¾ƒmÀ•…W^ÙªL«2­Ê}.wOO¬¼ß……kßzSèÝØúãŠlIÛí‹;ÞÕö®¶wµ5bä>xk©pj…S+œ*ú¿6ÏøÂñ…ã;ÜÚáÖ ™¢*{îù5Gö|²WÿÏZðV§nË<¦•›VnZ9ÃÛ–y;ÌÛaÞÅ=¯G~píÞõ·“{ÿgýÖ í>³Ó±GU ‹îXå •'Tž°¦ÓšNk:™.rŸ¼µlø:`Ñغ`ø½ºèÕE¯—=zWªèþu Ïê}`û}¥ß÷ÿyÚ£‡=_Ü^ÝZûÖÚ·Ö6Q°í3yÌä1“‹{ŽÇK¼¢ÉÎÒïúõÖû¶¯ýQq{5k·Y»ÍÚÍD±­€rŸ ?ÛÔ]§î:u×âNåÓäÓ3 ×öîÕ¾Ý3ýÎ×õ±7·?íÿÚþ¯íÿºvöÚÙkg›%ØÖ]ðÑ]PlÚ|kÀcÏ7íõGN¿#®´o½bßñwìÇc?û±)bÛ"ä>~¡‘Ç<~äñÅÖ¿jr“:5z¬ûº÷öíwþã¤ß^;ýíæ}JnÒâ}ï³xóùau‡ÕVwhR§I&uŠ{ÖO}ùáÕ‡žüGK¿÷ŸuåKu?)nO®½÷Ú{¯½×ü°-€rŸ [dè‡C?úaq§øÏ|ãÀsª~¼ò‚ÃÛÞ•ßéwÊÀ9t÷M§ßù»Ìßeþ.fòÏâJ‹+-®Tnx¹áå†w?üö1 ó<¯}ü¥íÂAÍ»¬1©¸}è~B÷ºŸ°®p]á:ƒÃ6IÈ}0l™ù…ó ç_½ãÕ;^½cq§û÷ïQ~T™'??òÌÎ-ïÌ¿ôûÀmjÖ+µéô;»÷ìÞ³{Èo‹f,š±hFé7J¿QúâŽCêô|­æykÿõÆíÂ|J¿ßN®<|ÿv“šî^é bÿIа3‡9lm©µ¥Ö–2-l»`€Ü'ÃÖ°¶pmáÚÛšßÖü¶æ›N¡c^:ê_ þ´­GßcÏ>½ÕkG¾z@­J³7}?ëüYçÏ:øãø®Âw¾«PcD5Fwd¨Yq¿'˾2kÁ¸Û[TÙÖÓopáð‰›múHxQß‹ú^Ôwííko_{» a['ä>¶²§zê §Út hQ®jý®˜ùf—;šÏÙV¢ïºñ½¾i·zÄgm«Öûצï]£%–4Zòí”o§|;Å<ÀÓò¥Ë—._zjÉSKžºéFÉϽð‚Ú;­ª2µwÛ—·•èûÅô—:¶êÚùé#çî3`Ó÷î®Þwõ¾«waV˜f¦‚ü ä>~ï {gØ;ÃJn†î­ë½±_§O¯8ãé–Õr-ú®¾«g·v»+ìðHÛs_®¬zeÕ+«®é·¦ßš~f(¼¬ð²ÂˆÍ6kجÍ9†<òà³¼¼ääÛîœkÑwáö¯Lk]æÊfÝö­ñ·Í¹/Q™¨LTÆ`€Ü'ïhiÉ¥%—–ìY±gÅž7't¸´Ú•¯šrü‰wúçß+ú.ùá¼ÛÚœx÷ù­šxtÉÍmm9žÅšvé´K§]ºùG•k¾è½OÍל÷ò­­^ú½¢ï´ð‰¿6;ë¬ÁDzïö›u ?­ÃiN[øÒ—¾ä'_ À¹O°ßÈäI“'MžTògêu_ý÷/Î<¾zã;V^×ã‘¶÷nÝÜ;³ ËÍÍg=0©ÍIõj×.±W•rµ6ÿ¶õ?ºÿÑý^ºçÒ=—îéñ6Ǫ>«ú¬ês{ÛëÜ^gó6J—¯TºÂ/Sçþ÷=vÉÖ ½ëª¼yb»§ÞöðG‡vè7õ¬ÑÕwý¹Çê s'Ì0·° ° °À£L~€rŸ ¿©5]×t]ÓõñÇìñÇJn#ÞßÿýJcŸvhÕkFÎmßµþö/Î:®N£(itÂÎMÊe»ðR“k &u:£ñÏ”>úÆ7ßݹUÃÛwï\ïÝýNÞï¢òíËôýeÿß“o;ù¶“o›ýÂìf¿àѶĂñ Æ/þç?pþ¿ìˆTazùçK·=3>vdÕoßî’wëtÓí¦i7é¨ûv9$N‡ˆšôHƎعIý—O6érqýuõŸ»¾tŸ÷kµïtÁáçW±%Çáa{Û{ØÞ˯_~ýòë=šüqÀ¹O†ßͪV°ê„g^æõg^¯ð~…÷+¼_2']ðÄO\ðÄì;gß9ûNðkørè—C¿:xÂà ƒ'”Ìa´}¤í#m—õ\ÖsYOL0@î€!‡|´÷G{´÷Àç>?ðùß+o´¼¦å5-¯7wÜÜqs—\:pé@ ð[Z5eÕ”US&5ŸÔ|RóŽ_vü²ã—¿×ñð¢Á ¾hð´3¦1í ¬'ä>rÚgwv÷gw?µü©åO-?§Þ9õΩWò€’”<`ËÃF“éM¦7™>tÌÐ1CǼ¾ÝëÛ½¾ÝÒ'—>¹ôI{äš•ýWö_ÙZ•iU¦U¹k÷»v¿k÷6§´9¥Í)[+ôžzé7œzÃÈF¾0ò…Y f-˜µ p\á¸ÂqvØ À'ÖŽX;b툩£§Žž:zò'“?™üÉŒ*3ªÌ¨bg€?š¹ æ6˜Û`JÇ)§tœÚpjé —_µüªåWÙà@È0@ž€ò„ '`€©yÇ/;~ÙñËßëç×Eƒ/|ÑàigL;cÚ`[TôÈ6y‡É;LÞÁÎðû€àgøiþOóš?©Ê¤*“ªÔë]¯w½Þ%sÒi}NësZŸ-g´œÑ²ð§ÂŸ òØü‘}9ôË¡_Òö‘¶Ëz.빬§G È}0¹I€ÿúAë­4qÀÄlÉIíj×-Së7zÌÚgÔ‰†V­öÏ3Ÿ~àˆZmÏ;eT:Õ»ÿkôßëÜß­âÈj‡]ùÇÚš—vL¯nu@‡fïv½´Ê•߬±S™Q¿ìÿÛ|EóÍW¼û§wÿôîŸ<š Æ/¿`üùœÿÀùü²Ÿ ¦ïñ|é¶gÆžQõÃÛ·k1¼N‡1ÝŽºéàï&ÕqÆ!q:ü„[›ôHƞРIý—O;nÒ!åÿâˆõŸ»¾t³6µÚwº ÆÎUFlÉÏÍa{Û{ØÞ˯_~ýòë=š@n€ÉM0kÆÀg ¬Õ VƒZ 6ÿ„uƒ;ºâ’³n~ðÍZw\UåÍD×^ûᇇ²µÖË#ë7:eî­OWs@†_—¯°ù·í¬!g 9kÈ×c¾óõ/@þYÕgUŸU}n¯s{ÛÆT(½Çù¥+Üѹeù:÷¿7è´F‡]RXØ»wûö[k]W¥×‹í>žzÛI>´C¿©~¨¾ëÏÁæN˜;anaAaAaGÈ0¹I€ÿ±êóUŸ¯ú|ÈíCnrû朒޷m½ÊU=§ÄC—Õ.¹uCïæ¯Cº¾W¾ÑÕ'={ãGÕ¾ßü“éc¯{õØ« —.)\âqØÖM»tÚ¥Ó.ÝüŸ×|Ñôòš¯/8ïìV­^Úº¹wó×iá©—4;ë¬Á>¾ïö›s›;œÖá´§-|iáK _òˆ¹@&7 Àð_sOž{òÜ“+ ©4¤ÒMŸ€>pEÛ6{írQ8ñÔzü^Ñ·¸õš Þ_ÒèãngTûýröZUú€Mß—3ž:ã©3žZö𲇗=l¶1—^VxÙ°YÃf ›µYï°û`»ë¼¼d÷Ûîü{EßâÖ…ÛŸ=³u™+›5~ Æß6ç¾De¢2Q#ü¾`r“ …Q¥¨RTiÓ'šËZù…ÒO÷yäÙê¶Êµè»éµËÃÖÕl¹é{WjN©9¥æ|Ö㳟õ0¹oùÒåK—/=µä©%Oý?BéçvuíVUéñqÛ—s-ú·~1ý¬§Zuíütí û Øô½»«÷]½ïê]˜f…™©~{0¹Ià퉑OŒ|bä¦O.wüÏÕ'Ðñšäƒ-ß¶Òï†ëU½5¨ÁÌ&rSå6}§×›^oz=³›¾«ð]…ï*ÔQcDÅÉkV¬Ð­ì+³tY٢ʶ}‹[ƒ ;=Ò¸Ù¦r]Ô÷¢¾õ]{ûÚÛ×ÞnB€ß’Ln€øƒ1cÄŒ36}BùÂáN¬×|۾ŭ]ëþãûšoú¾¿µï[û¾µ¯9È‹f,š±hFé7J¿QúâŽÞCê:­æykÿÕëævá¶ž~7\¿pî‡ïßnÒþ»U:¨¸û~æ°3‡9lm©µ¥Ö–2-ÀoC&7 Àüá<Þîñv·+îôñw7z°|³+ ß|µÁÄüK¿®-›8±Þs›ÎÀïÎ~wö»³Í Àïkq¥Å•W*7¼ÜðrË;bÞáÆ'çSô-º®}¼×MíÂAÍ›¼\cRqûÐý„î't?a]áºÂuøÕ Àä&€?IÁ¤`RPÜ)ã¯×»âÊ«?Ÿqx£Sò;ýn¸^ñfvîÁÇm:Ï=oô¼Ñæà··ºÃê«;4©Ó¤N“:Å¥§¾|RÙCó<ý]ï?ëðwë~RÜž\{ïµ÷^{¯ù~m0¹Iàaæ²™Ëf.+î4qã:v¨´ß5Mß°Ñœô»á:à§×7øKqû³×„½&ì5aùšåk–¯1K¿¥ >ºà£ >*örýNžÙ´×-ýn¸Ž¸¢Íªzw·?c?ûñØMðë€ÉM0ynEß}Wô-U»TíRµ‹ž ©qLÓ³öÜHõ“]øÇL¿ÿójàƒÓÎW,î4z5=Öô€~#c&™XñÁŠVýeþðï{Í®º£d»•×n>zH=®([Xêà¢{¾ò›•߬üÆLlŽŸ·ø¼ÅçE¥ß 8÷óÃ;I¶[wM«žpV“Ewûþe÷/»™i~87‰Á0Û¼ûJÞWò¾üßû«±_ÔÝA²ýU.}ûåçï×´èž¿?äý!ï1“›¶²ßÊ~+7r5…/Th^v¤Xûk¬Ëö9om›áE÷¼iµ¦ÕšV3“À/#ç¾?f €ØæµÙ½Íîmv/úKû ŽoOnx¥Xûk¬}{¶VÝÖE÷ü¡¿>ôׇþj&6mfÝ™ugÖ-z½¥cóûjk½µVƒ ÿ.»²èίÿêþ&ø¹àmË' ÀlÃÖ¾½öíµoý½ì³æ”ú>Bé ½ßîÛ°O• kî[fæúÛvà¸6S*ü°éïºzúŒýuÚ÷ëƒV–;mýwÕ¾¤åÌ ]óÏÚ7Z˜ ÷ëªÅÿ>»áNEw¾ó£íü¨ÉØ´±ŸŒýdì'E¢¯=tRŸCoþ}i¸o§ÏŸ·á­zgûSoivÑæ|ï ¯{N£¶~ï´Ò§ÖoÖ$wðê‡þ§f·¢;?oѼEó™Là瀷]ùƒ`¶a?4ÿ¡ùÍ7r9Ç“Nû°JõÜy½ìoÖu%?.yȆ·³¸¯?ò¡K_Û÷ëÿÆìíö|¶ÔÄËZ ëï³éïúM×Ú¶<¤ÂFΈœSòœ’ç˜L€MÐw@ß}‹D¿nuN§Ö]ßDúÓa½¶owAÕíʵÇü oÛæ|ïÙkê¼oçõ_ß0­üêž]6ÿ{›õåÝŽ{ø?Ýù¬DV"+a2ŸKÎùƒ`¶a³Þžõö¬¼ø„Ï®¾Ú)¹vÙä oaù•(ݯÿÑ“[ü÷ ¿æ¢N/ÜWïªÒÇí±¦ä´õ_yÒ‘7Pí?9”~7X«Ùäþòÿ)ºÿ&`ÓÚÌh3£ÍŒ\ˆøáž½Ú•È…Pºá­j4¡J™=ïÞô×ÿ8ºûm¾¯ð÷=î.}ÐúïºõÄæËk/̵<³B—cš¿Xtç~üáÇ~Üd?—œò# Àlæî8uÇ©;ýõûÜÛݽö¹–K‹^zì{MÍ÷5ʪ|è}å×­ÿ|½o¿×¸\~'àæ½Ïj²w]àç*3µÌÔ2S7rüÌzŸØ>'.˜üÊ…÷=ä¤á7þõOw:êÓû¯ÿšR*Ù§dûO—œñqËÃsí=€¿=äÜ>‡ï\ô~ ì8°ãÀŽ&ø¹àü¶íÆ`€mØ„6ÚLhSôWîó¿ß­î3¹M‹^ºë´ûv©9ú¸K.ßÖ†¯¾â¼tüÁuróµ¿ë×}ûOÜo– ðs=rÖz¢ÂŠr¥s'”®>½gǶ…U,{ü­6'w¾®ö®û\¼þk޼þ€r•¦çÚkׯËg÷ؾí!E÷ÿìξáìL&°åÇs8_m[1X~†#9ò˜#) 9¯ïÛ//>¨c.¿vvÃ[[ᇪÇìÑ¥Ì^å+—ê½þ3§5¹3«qY.§ßõë‰ÝpXµ¾æ `˵Êö=¸b©\Ë¥ÿs ÿVõû½¾*ú5?l×íòß*;±t­R§®ÿÊGwj7ö á¹€×ü­ç=íj˜7~K/>ûâ³/>+9ªr‹Ê-*·ð˹ïÒî“^<èÃ\N§Å]ºaŸŽ7Tª›Ë·|Ãõä©7ÇÕ5o[îÈ&û¯ªçZ.8æØI®*zk7üšÇ>jÿJý¦ë?¿>¯O¹v_Ö¯?5ëµ}» Ì¿¥ÕϬ~fõ30£¼˜mEèë€×;õ‚ÛFVÿx[ À^ °µäæ+€Wè1¢í°Š§—i[ú¡âpÇŠÕo©rÜúϟѤÎ[U¯.ú5^ À™W9íµ'^{âµ'Ö¿§‘¹ðqË·\qËEÁÎå÷^¿^ò§WŽ:èì /û¼ÞúËAÿ}ÍëËœ™û¸¸÷6™>|øð±é¢GÎ\{àâ.}tÞ¨Übýç¿îrÎé­Ï-=¯Tå’Öÿ× ¯»s£Ýsó^lú=€éuL¯cz™L>|lùñ|øNÃw¾“É¿—®|éÊ—®ì½}ïí{o¿ùéwý×{`ø¦î8uÇ©;ý5ûÜÛݽö¹M¯©ùþ FY¨Yõ=^këíÒ~コ­O¿Þ‹ÜÀÍ{ŸÕdïºE÷ßdlZ™©e¦–™º‘ãgÖûÄöMr-šŽ_ÞauÃ>ëoa©%%³’ƒÖÿù¾mšÔÛkýŸ÷)QnÇ=žY}zÏŽm s9{ȹ}ß¹èÎì8°ãÀŽ&ø¹Šû§v&?¬·CŸúäÐ'7?ú®ÿúß>únH`6ëíYoÏz»è¯Ü'|výóÕNÉÍhzLÿﺥõ·³Üiw)]ãŠóÒñ×)z/ÎZ:âúZÏår®~d“ûËÿGø¹ÚÌh3£ÍŒ¼GàÃ={µ+‘s¯š½¯ûWm«Uøûw—>hÃ[Û~ÔþçVêþß7_XݰúËsùâÏë×™ºÓüÅ¢;ÿðã?þðã&ø¹àü³íFß ÀlÃ~hþCóšýõ»éI§}X¥z®åÒ gOøO½“J'e²’ÿ=E~Ò¤¿«¶lÃ×ûÖåèw+¹þ3'íñË®zíßå¬Ì¹\ûÖ‡TØÈ™sJžSò“ °iúè;`#ï¡þu«s:µîšû‚>ì¨}nÚk÷ ?óúU'‡NÊåô»~}y·ã>äÏEw>+‘•ÈJ˜Làç€óC~Dß ÀlÃÖ¾½öíµypÙg+Ì)õ}îäÒ!mg|Ó¨ÿ#=]¾Åú[Xç”ÖçWtm‰w?ä.õüßÛY…þ¥>ÉåËA_µøßg7Ü©èÎw~´ó£5™›6ö“±ŸŒý¤èQôµ‡Nêsè͹™NǶ>ºiƒÓ‹Þæz•+>Z¾Lî¿öwý:¤ú¡ÿ©Ù­è½˜·hÞ¢y‹L&ðs ÀÛ®ü‹¾€ØæµÙ½Íîmv/úËù ŽoOnxe.äÒ#^ºä}Z«ÊìU¾r©Þ—,xuæAÏw‹Þ—nk»»Î_s'÷yìÙZu[½ýõ¡¿>ôW3 °i3ëά;s#ï¡~KÇæ÷Õ—›étéäófµ¹¶Ü¥¯/uû†·ù†gš}RkÔ¶€k5¨ðï²+7rñíþ«û¯îo2ŸKÞ¶äwôÝ À6ï¾’÷•¼o#¿¨÷þjìuwøCé+Ï_÷ÈRŸìqpɧÖߪco»ªûþwnúu½×üóƒöÖ<¸Ù÷{^ò?I{ï·û6ì“ ø¨Û/?¿¦E÷üý!ïyˆ™Ø´•ýVö[Ù¯èQ´Æ š—™Ëµèmžul—¨ùšÜO¿Ëö9om›áyÛˆjM«5­f&_FÎ}œè»!€mÞ+>XñÁŠ¢¿´þ}¯ÙUwÌ…\úË.ã\ô»rârÐÝ>|ô:{\Q¶°ÔÁE÷|å7+¿Yù™Ø->oñy‹Ï‹K¿pîç‡wÊÍŒÚû²ú§íøÎÎÝ÷§Š·n+¯ýM«žpV“Ewûþe÷/»™i~87ý1£ï†`¶ykF¬±fDq¿ÆùúýžÍµ÷ÐÝv×Ë[„‹ëoäUk&wšÜi²iØ|£}ìèc‹QŸÙáèk ͵€ºü¾î_µ­V©C™‡K¿·þv>зM“z{m+øŒ>uæT½¥ènÏi9§åœ–¦øeàÜ!únH O\øþ…ï_øþF.]ç釜,Ünµ‹?¯è·ß~gÝçWZ½Òê•Væ`ó-±pÄÂü¦º•*¶*7³pmï^¹PG~Õþ¬ú^ ÷˜Qªɯ¿i~îßZOËýô»ä¼ó:·iPÜ©ÿuóÖÍ[7Ï4¿Œüû}‹#'¦ß8ýÆé7ýõ¾^¿ösöºQ¸ÝòõêËß½¶QýâN£ü¸ðÇ…?.4‡?WÓ~Mû5ÝÈ•f®èòHó¯~¯húÃâno>÷ÇÑÝïhóý[ÇüfÓ3÷{·üeþûs¶ÛÛõZîûÓ¶òÚßQ%Úÿ§þEwøžq÷Œ»gœ ¶„üÛ}7‡ @žX7~ÝøuãK5+Õ¬T³¢¿ð_¾{øÏúÝEÜ-Y»LýÇ¡57r©ÒK/¿ôòK/7¿Ì«½^íõj¯¢G×nGÕûÛ¾s~¯hz[›êìSôVU<½LÛÒÍìÚ¥{ó)¹Ÿ~×,é¹ ]×âbÀÂA -d-!ÿ6DߟK ¯Œ©=¦ö˜ÚEùoÒÿ”û*ß$âþ²uÈ3&7º¸¸+sæÍ™7ÇÅ3~¡55×Ô\S³¸c짃Îx¦eß>Ž8¾Í¢z7–žWªrÉ ëoIÓž{¿Waäœ\þÐÅÛÊkŸ-èP­Á×Ewµëü®ó»Î7{À–€=¢ï–€È++ V¬,(îtÀÅå&þP/tîzr›+T?°è~ž¼óÉ;Ÿ¼³©Ør£úê7j#‚>¹QÍwö÷{Ôõ—€^tÌ9/´~`ýg¶•ô»|j÷Õm*îï3·›¹ÝLçÆ­@ÞºDß­Å9òпýkп=5°Ï€:ÊÞtÍôk´FÖÝœuÀW¯•i°Cq§Zf-šµhÖ"ó°åV5ZÕhU£âŽ·Ù£'|×ä±ÜÏ®¹³Þðn³¯k=]t'»|Óå›.ߘ7`k€·œèûk€ÈC?5ý©éOMËžSöœ²ç=YpÒ¢›¯þgq÷ÿX¯üðÍCÔ_Ò¡QÅ.E÷°ï¨¾£úŽ2i[×Ä'Þ8ñÆâNv/ëÕ}Ï6OŠ»›^ß+<­Çaw·‡óKÌ/1¿„I¶x˽øì‹Ï¾ø¬è»u Àä­7¿|óË7¿,örÐs^:®^¡Ð[ÜÚyñGÔèRÜî}¿òû•߯4c[Ù•…W^ÙªL«2­Ê=övOë­Úïµ½{ ½½`õŠîϴݾ¸Ÿ\wµ½«í]m°u À[ní kOX{‚è»u Àä¹Ë^Þðò†ÅPø·ßݰ„Ü»ázaµçï¨W¾¸›¸zâꉫÍÀ¯gÞóv˜Wìå÷G~Ðþ´úÛɽÿ³Žî}dûƒÏìt`ƒªaÑ«<¡ò„ÊÖtZÓiM'Ól]ðÖ²áë€Eß-'çVô]ÑwEßRµKÕ.U»è šÇ4=kÏý‡TŸ1©Ñ…Òï§®X\r豦ǚkLÀocÌä1“ÇL.î˜/=þû&;K¿ë×[wn>³öGžcýn³v›µ›‰~ 0¹Iàaæ²™Ëf.+îÔpã:v¨´ß5Mß°ÑÌô;à§×7øKqû³×„½&ì5aùšåk– À¿© >ºà£ ŠM›o 8yfÓ^äô;âŠ6«êûŽ¿c?ûñØMðë€ÉM0 “‚IÁ¤ ¸ÓÄ ^;®wÅ•W>ãðF§ü^õûfvîÁǕܤy£çž7ÚüüöVwXÝau‡&ušÔiR§¸£ôÔ—O*{èÉ´ô{ÿY‡¿[÷“âöäÚ{¯½÷Ú{Íðk€ÉM08·{¼ÝãíŠ;e|ÀÝ,ßìÊÂ7_m01¿ÓïEË&N¬÷ܦÓﻳßýîl3ðûZ\iq¥Å•Ê /7¼ÜðâŽØã‡wø°ažgàµ÷º©]8¨y“—kL*nºŸÐý„î'¬+\W¸Îà¿:˜Ü$ð5bƈ#fl:^8|‰õšç_úíZ÷ß×¼xÓ÷ý­}ßÚ÷­}Í @îX4cÑŒE3J¿QúÒowôRçÐi5Ï[û¯^7· ó)ý~;áÜ߿ݤýw«tPq÷ýÌag;sØÚRkK­-eZ€ß†Ln€øC{bä#Ÿ¹éÚñ?WŸx@Çk’nl´|Û¾W]ôÖ 3›\tÊM•oØôý^oz½éõÌ@nú®Âw¾«PcD5Fw$¯Y±B·²¯ÌZÐee‹*Ûzú .ìôHãf›þÉuQß‹ú^Ôwííko_{» ~K0¹I€Â¨RT)ª´é“Ëå?­üBé§û<òìu[m[é·ËÃÖÕl¹é{WjN©9¥æ|Ö㳟õ0¹oùÒåK—/=µä©%OÝô¾äçvuíVUéñqÛ—·•èûÅô³žjÕµóÓµ+ì3`Ó÷î®Þwõ¾«waV˜f¦øí Àä&þkîÉsOž{r¥!•†T²éÓÍ®hÛf¯]. 'žZï‘\˽×\ðþ’Fw;kä Úï—ë´×ªÒlú¾œñÔOñÔ²‡—=¼ìa3°¹¬ð²ÂˆÍ6kج’›á‘Û]Ðàå%»¿Øvç\‹¾ ·?{fë2W6kü@¿mÎ}‰ÊDe¢2Fø} Àä&þǪÏW}¾êó!·¹}Èí›szß¶õ>(Wõœ]V»äï}‡t}¯|£«Ozöƪ}_r³½zìÕc¯.\R¸¤p‰Ç`[7íÒi—N»tó \óEÓËk¾¾à¼³[µzé÷оÓÂS/ivÖYƒ||ßí7ç6w8­ÃiN[øÒ—¾ärLn€ X3Î8c`­µÔj°ù§Ô¼xÜÑ—œuóƒoÖºãª*oþÐ Úº¹÷²ÁÁÈúN™{ëÓÕÇP§á×å+lþm;kÈYCÎòõ˜¯Ç|=Æã VõYÕgUŸÛëÜ^çö:›ÿÓ¡Bé=Î/]áŽÎ-Ë×¹ÿ½A§5:ì’­z×Uéõb»§ÞvÒŸíÐoj£ªïZògš0wÂÜ s <Ê@î€ÉM0üÖ Z7hÝ ‰&˜8 ä¨6 qÝò7µ~£Ç¬}F8ahÕjÿ<óéލÕö¼SFÕ©S½û¿Fÿ½ÎýÝ*ŽÜ©vØõ¬­yiÇôêVthön×K«3ZÎh9£eáO…?þä±ø#ûrè—C¿:xÂà ƒ'”Ìa´}¤í#m—õ\ÖsYOû`r“ [äÓ>ÝáÓn©sK[êü^§Ëëž[÷ܺçŽ5jÔ¨QßôíAßäq 8«¦¬š²jʤ據OjÞñËŽ_vüò÷úùuÑà‹_4xÚÓΘv†ÇØ Àä&¶²/ã/ã/ãç>|îÃç>ìsgŸ;ûÜYay…å–o…лCÝêî0pþÀùçÇýãþqÿïŸþþéçl‰•ýWö_ÙZ•iU¦U¹k÷»v¿k÷6§´9¥Í)[+ôžzé7œzÃÈF¾0ò…Y f-˜µ p\á¸Âqv~ 0üÎ^+ÿZù×ÊOî=¹÷äÞoöz³×›½ì ¹lnƒ¹ æ6˜ÒqJÇ)§6œÚpjÃåW-¿jùUvr '`€Ÿ>Ÿ>Ÿ>—>—>—ŽKÇ¥ãÒgÓgÓgÓ±éØtlútútútúTúTúTúdúdúdúDúDúD::ŽNG¥£ÒQécécécé£é£é£é#é#é#éCéCéCé?Ó¦ÿLLLLHHH‡§ÃÓáé}é}é}é?Ò¤ÿH‡¥ÃÒaé=é=é=é]é]é]ééééíéíéíémémémé-é-é-éÍéÍéÍééééÐth:4½>½>½>½.½.½.½&½&½&’I‡¤ƒÓÁéàtP:(”^•^•^•^™^™^™H¤Òþiÿ´Ú/í—öK/O/O/O/M/M/M/I/I/I/N/N/N/J/J/J/L/L/LÏOÏOÏOû¤}Ò>i¯´WÚ+í™öL{¦ÝÓîi÷ô¼ô¼ô¼ôÜôÜôÜôœôœôœô¬ô¬ô¬ôÌôÌôÌ´kÚ5íšvI»¤]ÒÓÒÓÒÓÒÎiç´szJzJzJzrzrzrzbzbzbzBzBzBÚ)í”vJ;¦ÓŽé±é±é±é1é1é1éÑéÑéÑéQéQéQéééiû´}Ú>m—¶KÛ¥mÒ6i›ôðôðôð´UÚ*m•¶L[¦-Óæió´yzXzXzXÚ4mš6MMMM§ÓÆé!é!é!iôaÚ0m6H¤õÓúiýô ô ô ´nZ7­›˜˜˜ÖNk§µÓZi­´VZ#­‘ÖH«§ÕÓêééééþéþéþé¾é¾é¾iÕ´jZ5Ý;Ý;Ý;­’VI«¤•ÒJi¥´bZ1­˜VH+¤Ò=Ó=Ó=Óòiù´|Z6-›–MˤeÒ2ié´tZ:-•–JK¥%Òi‰t÷t÷t÷t·t·t·t×t×t×ô/é_Ò¿¤»¤»¤»¤;¥;¥;¥;¦;¦;¦;¤;¤;¤Û§Û§Û§Û¥Û¥Û%…IaR˜¬MÖ&k“Ÿ’Ÿ’Ÿ’ÕÉêdu²*Y•¬JV$+’Éòdy²<><>0>0>0®׉ëĵâZq­¸f\3®W«ÇÕãjqµ¸Z¼¼¼¼_¼_¼_\5®W÷‰÷‰÷‰«ÄUâ*qå¸r\9®WŒ+Æ{Å{Å{Å{Æ{Æ{Æåãòqù¸l\6.—‰ËÄeâÒqé¸t\*.—ŠKÄ%âñîñîñîñnñnñnñ®ñ®ñ®ñ_â¿Ä‰w‰w‰w‰wŠwŠwŠwŒwŒwŒwˆwˆwˆ····‹·‹·‹ £Â¨0Z­ÖF?E?E?E«£ÕÑêhU´*Z­ˆVD+¢£££eѲhY´$Z-‰G‹£ÅÑ÷Ñ÷Ñ÷ÑwÑwÑwÑ7Ñ7Ñ7Ñ¢hQ´(Z-ŒF_E_E_E_F_F_F_D_D_Dó¢yѼèóèóèóèÓèÓèÓhn47šÍŽfG³£O¢O¢O¢™ÑÌhfôqôqôqôaôaôaôAôAôAô^ô^ô^4#š͈¦GÓ£éÑ;Ñ;Ñ;ÑÛÑÛÑÛÑ¢ÿDÿ‰ÞŠÞŠÞŠÞŒÞŒÞŒ^^^^‹^‹^‹¦DS¢)Ñähr4yý_ÿ×ÿØÖ £0 £‚¨ *ˆ&E“¢IÑ+Ñ+Ñ+ÑËÑËÑËÑ‹Ñ‹Ñ‹Ñ Ñ Ñ Ñ„hB4!z.z.z.ÆGÏFÏFÏFÏDÏDÏDOGOGOGc¢1јèÉèÉèÉè_Ñ¿¢E££ÑÑèèñèñèñè±è±è±hd42======ý3úgôÏhD4"===ÝÝÝÝÝÝÝÝÝ ‹†Eâ{¢{¢{¢»¢»¢»¢;£;£;£Û£Û£Û£Û¢Û¢Û¢[¢[¢[¢›£›£›££££¡ÑÐhht}t}t}t]t]t]tMtMtMtututu48 ŽF£ÑUÑUÑUÑߣ¿GD¢ÑÑÑQ¿¨_Ô/º,º,º,º4º4º4êõúFGGGFFFDDD}¢>QŸ¨wÔ;êõŒzF=£Q¨Gt^t^t^Ô-êu‹Î‰Î‰Î‰ÎŽÎŽÎŽÎŒÎŒÎŒÎˆÎˆÎˆºD]¢.ÑéÑéÑéQç¨sÔ9:5:5:5:9:9:9:):):):!:!:!êuŠ:E£ŽQÇèØèØèØè˜è˜è˜èèèèèèè¨è¨è¨èˆèˆèˆ¨}Ô>jµÚFm£6Q›¨MÔ:jµŽZE­¢VQ‹¨EÔ"j5šGÍ¢fQ³¨iÔ4j5‰šDM¢ÆQã¨qÔ(j5ŠF £†ÑÁÑÁÑÁQý¨~T?ªÕ‹êEu£ºQݨNT'ªÕŽjGµ£šQͨfT=ªUªEÕ¢jÑþÑþÑþÑ~Ñ~Ñ~QÕ¨jT5Ú'Ú'Ú'ªU‰ªD•£ÊQå¨bT1ªíííííí•ÊG売QÙ¨lT&*•‰JG¥£ÒQ©¨TT**•ˆJD»G»G»G»E»E»E»F»F»F‰þý%Ú%Ú%Ú%Ú)Ú)Ú)Ú1Ú1Ú1Ú!Ú!Ú!úSô§èOÑvÑvÑváºp]¸.\® ׆kÂ5ášpu¸:\® W†+ÃáŠpEøcøcøc¸,\. —„KÂ%áâpq¸8ü>ü>ü>ü.ü.ü.ü&ü&ü&\. … Ã…áÂð«ð«ð«ðËðËðËð‹ð‹ð‹p^8/œ~~~~~~Î ç„sÂÙáìpv8+œÎ g†3ÙáGáGáGá‡á‡á‡áûáûáûá{á{á{á»á»á»áôpz8=œN §…o‡o‡o‡ÿÿþ;|+|+|+|#|#|#|=|=|=œN §†SÂ)á”õ'ÿÖÿº¿þ‡|¸^aN '…“ÂWÃWÃW×××ח—‰áÄpbøBøBøBø|ø|ø|ø\ø\ø\8.Ž Ÿ Ÿ Ÿ džcñáÓáÓáÓáSáSáSá“á“á“ááááèpt8:Ž G…#ÑáÈðÑðÑðÑðáðáðáð¡ð¡ð¡pD8">>>ÞÞÞ‡‡ÃÃ{Ã{Ã{ÄÿÿÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞÞ ‡†CÃëÃëÃëÃëÂëÂëÂkÂkÂkÂ!ápH88…ƒÂAáUáUáUá•á•á•á€p@8 ìöû‡ýÂ~a¿ðòðòðòðÒðÒðÒð’ð’ð’ðâðâðâð¢ð¢ð¢ð‚ð‚ð‚ðüðüðü°wØ;ìö {†=Ãa°Gx^x^x^Ø-ìv Ï Ï Ï ÏÏÏÏ Ï Ï ÏÏÏ»„]Â.áéáéáéaç°sØ9<5<5<5<9<9<9<)<)<)<><>ìv ;†Ç†Ç†Ç†Ç„DŽDŽG‡G‡G‡G…G…G…G„G„G„íÃöaû°mØ6l¶ Û„mÂÖaë°uØ*l¶ [„-Âaó°yØ+ø¬à³‚O >-ø´`NÁœ‚9Ÿ|RðIÁ¬‚Y³ >.ø¸àã‚ >*ø¨àƒ‚ >(x¿àý‚÷ fÌ(˜QðnÁ»ï¼SðNÁ;Ó ¦L+øOÁ þSðVÁ[o¼YðfÁ›¯¼^ðzÁk¯¼V0¥`JÁ”‚É“ &¯?m¿þtÝú¿¶ À¿éø5äB€¶Xò„,yB€€øÃï~ÇúIhÖ¹Yçf×ß ¯ð÷ _;«.®º¸ê⃠*<¨ð¤ø¤ø¤x`»í¶‹öˆöˆöøé°Ÿûé°­{Û` ?À0°mÚ½p÷ÂÝG?=úéÑOï÷î~ïî÷nÉ_d}l[ÿçe—M\6qkÝÀ¥“—N^:ypµÁÕWÛðÿòs•™\fr™Éëÿ¼>¾nÝÜüà·>úV<½âéOÿ¹÷¢mÒ6i›ü*)1—'a÷ÂÝ wv¿g÷{v¿Ößµþ®õw%·’ ïéªÞ«z¯ê½åø/ãPäX¶1ßUù®ÊwUŽîqt£{lÝ”UãÆ7Ö¸q˳ÖÛUßþíÝyœÎåâ?~Õéè×9'cß'[ÖA–ÑXÙR*²”}IRGD!Ú¨$•u´ % %ZÊš:‰IŠl‘²EÈ>æ÷ÇÝçñÐwÜs†æ=·çóýx\1÷û¾î÷}Ý×}]ï×¼ßWñ¯Š—ž\zréÉ[ÃR K-,µ0cƒ·Ôƒ½EO=Qôžy÷Ì»g^úëº>8£êä–ŠêÛ>Üöá¶GeßmünãwÓ^[0ÙÀ` ËØ¿+~W|è–¹g/N+Z§h¢uÎ,Ü Ý<ùä=œ '_ƒ›þ£šz°7ìȰ#ÃŽdlýC7ˆNOýƒÜBW×¼·æ½5ï:‡®oz}Ó뛦¥¶` ² €À@““ZÏ5-WC¾þâë/¾þ⦠6]°é‚C#84"ôï†|0äƒ!¡Õas^󂜄ÛO‰Í%6—Øœöˆk{Ÿí}¶÷)ž­x¶âÙR¯ahÝÜ™gœypËâ-‹·,ÝÂw뜭s¶ÎygÛ;ÛÞÙvÓî›vß´;õýDWŒ®]1ý!\¸ý/¹täÒ‘9÷åÜ—sßÉ?¯W¤^‘zEf䙑gFž_îûå¾_î ]íºpéÂ¥ —ömÒ·Iß&i ßõƨ7FE^Kèw´ßÑ~GS¯[hŸ#F=btè8oÚ·iߦ}‡xx`(ÞN\’¸$qIh}âP›I½ž!¡ßO½†] žzK}Ïá¥w‚F,²€§³?ýéìᢩPHùÜ´ç¦=7-´êjZâº/ë}YïËz©‡^O~úðÓ‡Ó²·ö=Ú÷hß#Ü~r'æNÌ8á— ¿Lø%í¯:´®íÉk§Ôîžv÷´»'=1p¸=WŠ©S)æäŸôz¦×3½ž9Úþhû£ÿãú㉟Oü|âç©Û3«y[B(¸M}½çÐM¡CQôé¾ö´Äê7¿vók7¿vfíÁ•¾@d €€@Û6nÛ¸mãò½žïõ|¯‡‹¦þüÎHè¦Íáö\rUÉU%W…®Ð ·‡Ï¾ýìÛϾM=< E¿g¤…bàÔ÷ºúöÌŽ@Zbņ_7üºá×Çškv¬YÚ_Ååo,cùpû,ŸP>¡|B$µ„y%敘W"ܪVý³êŸí_´ÑþEé‰TŸ]ûìÚg×fÔQM{KÐY…X Ú𗇿<üåÔ×=Mÿ³Üw÷}wßww¸gY‘kE®¹Â=¶ë±®Çº ÷Ø[ž½åÙ[žM CWކ{–î_uÿªûWgãºÏå–wZÞét÷?{ê쩳§†ÛgèÊæHj ãž÷Ô¸§Â=vt¾ÑùFçK˜úýíßßþýí©_k~f{‘A,êxãuŽ×);¢ìˆ²#26˜Léäý¤tò O~ÔîJ»+í®”ú-š¿yÿ›÷¿y?ý5 ­îYB×Åîɱ'Çž§»çÔc¿úÿ¨ÿúÿ8³:ÿP÷‡º?ÔM¬ü–Òzÿéý§‡þ7ÿ¸ÿwûú¯/üú SOºµuƆµ` 2€À@@}Þ÷ó¾Ÿ÷ GUÙSeO•=õ\I1I1I1ÅrËQ,GÊçðô€§<2{wÍ»kÞ]®†µÛÖn[»mÆ“š÷Ö¼·æ½ážqÎø9ãçŒ?Ý}¦ûl5²ÕÈVgž|ËèôÄŠÁo çÒÁ±Ç+G,*õµN‡Ä‰›±ÑÔOoüôÆOolŒú·í}¶÷ÙÞ'ås Í?4ÿÐüájøÈÇ|üÈÇ[ÇÖ=´î¡uûŒ©Ç~3òÌÈ3#OæÆŠÁo çÒÜæs›Ïm.G,ªS\§¸Nqá⨷«¾]õíª™M…Ö WÃYËf-›µ,ck8óâ™ϼ8Ü3¶ÜÐrCË ‡n‰œž:§?V ~K8ÛB×R‡^i‰Í%6—Ø,G,ªÎµu®­sm¸8jõ”ÕSVOÉÜh*vVì¬ØYáj¸î†u7¬»!cŸqÍãk_óx¸g Ý út÷™zìº6=uN¬ü–¡ŽCW\ÿãú×ÿO·ÿtûO·ÐŠÂÍnivK³[.¾<úòè¨4ˬw À`  *´«Ð®B»pqÔÎëw^¿óúÌ­aéÉ¥'—ž®†¿FÿýktÆ>cèU‡{Æò åÊ'œî>SýBk⦧ÎéƒßR:†Ë-´lÐÃ_>üåÃ_¶^ÐzAë¡Õ‹£Î‚Ìz§‚@,ªpûÂí ·GqhÄ¡™[ÃüãòË?.\ ¶?ÚþhûŒ}ÆÐ«÷Œ¡#vºû<Û±_ú÷ü–ÒÙf˜ýèÛ¾ýèÛÅrËQ,GF…»+ðXÇÀá€À@@åN̘;1\ºqnæÖðÜÀ¡µ`Ã=cžEyåYtºû ~ü–p²Xp õ«ÃÓ¢à}ï+x_|­øZñµz¾ÚóÕž¯N/9½äô’¿Oþ}òï“Àá€À@@•\UrUÉUá⨽¿íýmïo™[Ãs èÝ•vWÚ])Ü3^ñÞï]ñÞéî3øpð[BHè&Ï…úêS¨OZ"Þ²#ÊŽ(;¢s¹Îå:—{ví³kŸ]ûI•Oª|RåÇo~üæÇoR?J`€pÀ`  ª­¬¶²ÚÊpqÔæ-›·lÞ’¹5Œ;+vV¸þP÷‡º?ÔÍØg í3Ü3†êsºû ~ü–ºÚ»ÌØ2cËŒ WÏœûrî˹¯ë¥]/ízé7ïóþ7ï§ç8 €Â €€€º¶ÿµý¯í.ŽšÛ|nó¹Í3·†×7½¾éõMÃÕð½ßûð½3ög-›µlÖ²pÏx]Ïëz^×ót÷ü8ø-aÒG“>šôQêÑï‡w|xLJw稞û–pn€À@@ j=¨õ Öáâ¨'>ÙðɆMY>fù˜åõ“þß-ô¦üý!±Cb‡Ä†«á𗇿<ü匭á£o?úö£o‡{Æ“XÚ÷ü8ø-¡å†–ZnH½%dì§C ŽX Ô;ÛÞÙöζpqTï~Ýð댦jõªÕ«V¯”Ï ÿRþþ̃3Î<®†ñµâkÅ×ÊØÖn[»mí¶ážñäú¤}ŸÁ€ƒßR¿Iõ×~}á×fT 7íÛ´oÓ>0@8`0P»+í®´»RžEyåY.”ZwúÖÝþçÚ6nÛ¸mãÂ=KÂC %<”2ÛyýÎëw^Ÿ;1wbîÄp]óøšÇ×<žþ&.I\’¸$ܳäÚ’kK®-Ûûlï³½Ïéî9øpð[BþqùÇåû¨³Ì>0;£>oW}»êÛUÀá€À@ ÝºþÖõ·®JµïѾGûé¨þòá/þ2앵ϼxæÅឥS\§¸Nqg»†­´^ÐzA¸g ÕáÌöü8ø-¡x¶âÙŠg ÷¨U«W­^µ:ýGrG‡vt¨Ð®B» íÀá€À@ -´lвA©GS¯}÷Úw¯}wfû_¹uåÖ•[Ã]Å[¨O¡>…úü>ù÷É¿O·‡ù¹ç瞟;õ¾þâë/¾þâ™ÕðÕ¿¾ú×WÿšúþXp`Á3 ê²Jä–PçÚ:×Ö¹6\­F¶Ùjd«ôÏÐ5Ð>môi£O£Òàl¼S'Šž(z¢¨ >°Èºíê¶«Û®Ôo€übƒ¼Ø ù²äË’/KË>C+³VÝTuSÕMáö<üåá/9-{kóN›wÚ¼n?ygçwöé†s¡è7õ[Lßòì-ÏÞòlzŽmV €ƒÜ†æšhþp ݼzáÒ…K.=Ý×ûQç:Ô¹|Bù„ò QiöË}¿Ü÷Ë}ûN…®?ÖÁ'YÀ¯Ñ¿Fÿ–è«ÉÄ&›L ý{Ó›.ØtÁ¡‡F±uÎÖ9[ç|\ÿãú×øàÀ> Ãí't£ÝÐê­i‰*S_;öd-7´ÜÐrûkÞ]óîšŸÞøéŸÞ8Úþhû£íCÿžypæÁ™o,cù˧¾ŸÐm‡CQ_oü›±ûfKXÛqmǵS¯OÎ}9÷åÜ÷ÇÛYð—Ù´oÓ¾MûBï~èu…nýÜ´ç¦=7­~Rý¤úIáö–úªÃ¡? 8Ý+wS_e¹ÿôþÓûOß›mo¶½ÙŽô>ÒûHïP‹Õ;A#YÆ×û¿Þÿõþ¨³¬H³"ÍŠ4ûæýoÞÿæýÓ )CWyží­S´NÑ:KG.¹tdúcÚ¬¹% j=¨õ Ög¯>¡ÛP‡Ö!Nx(á¡„‡Nw©×¿V¯Z½jõÊØ}œ{`0Å|wÿw÷wÿÙØB×z~YïËz_ÖKO¸µ¼ÓòNË;–[fl™±¡[9 =7ûZKHŠIŠIŠéR°KÁ.3¶>5&Õ˜TcÒê)«§¬žúÉ[-ÞjñV‹´ïámïl{g[êõÜxpãÁÀ@V'YRèv¾¡MÇ —%_–|Y‹ã-Ž·8žQðÉGR d]`0åíKÜ—¸/14»é¶«Û®n»ê\[çÚ:×^ñÞï]ñ^îÄ܉¹‹ÿVü·â¿U[Ymeµ•]/ízi×K_ªöRµ—ªí谣Îg;ÊÚ]iw¥Ý•BÏÒ¹\çrËÕn[»mí¶¥–ZXja(Õ6ôóP §<0å)ìɱ'Çž¶¬ØN^98TŸ*{ªì©²çòèË£/½ï¡«ºëV¨[¡n…;ËÜYæÎ2ÞñáÞqxàᇦ^Ÿ“§^‘zEê ­ ],G±År4~·ñ»ßíÛ¤o“¾MBWK§¥Î¡5‰CûlúHÓGš>R>¡|Bù„|¯ç{=ßë1×Å\s]h}åÐÑÓꀠ €€ˆü+][y~çsy½u0÷ pö€À@„ €€!B,"„X D°ˆ`0!À` B€À@„ €€!B,"„X D°ˆ`0!À` B€À@„ €€!B,"„X D°ˆ`0!À` B€À@„ €€!B,"„X D°ˆ`0!À` B€À@„ €€!B,"„X D°ˆ`0!À` B€À@„ €€!B,"„X D°ˆ`0!À` B€ÿ°pqš·%™´-ͤmY&mŸgÒ¶üœo_dÒöe&mÿͤí«LÚVdÒöu&m+3i[•I[b&mßœómu&mßfÒ¶&“¶ï2iû>“¶µ™´­Ë¤í‡LÚÖgÒ¶!“¶™´m:çÛæLÚ~̤mK&m[3iû)“¶m™´ýœIÛ/™´mϤmG&m;3iÛ•IÛîs¾ýšIÛžLÚöfÒö[&mû2iÛŸIÛLÚ~Ϥí`&m‡2i;œIÛ‘LÚŽfÒvìœoÇ3iKʤíD&mÉ™³-Ê–IÛ™´]˜IÛEgkD,0@„ˆØ8Ä œ?"6ÞÙ|góÍ.:kÛâLÚ¬Il5b«5âógâógâógíáo2i;Ö>V>Ö>V¶Æpä­.œYk Ÿ?« [WØŠÂֶаU„3káógý`+[3ØjÁÖ ¶Npf­l…`k~Uà}vöÙÙ'b¯àlD0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„C„HŸ4>iü’ÉK&/™¼è‡E?,ú!1:1:1Ú‘Î7«m¬¶±Úâæ‹›/n¾¤ú’êKªtpÐÁAŽ A¶4ÿÒüKó/꽨÷¢ÞË–',OpL0óÎŒmó3›ŸÙüÌ›ß<øæÁn•»UîV9ꊨ+¢®ˆJ·¸•q+ãVŸ:|êð©Ë²-˶,Ûþ)û§ìŸâ˜AsxÀᇬˆ^½"úéËž¾ìéËÞÜðæ†7Ge[½åÑ[ðÞ„÷&¼·îçu?¯û9yFòŒäŽ<é±mÁ¶Û¼³æ5ï¬é3ºÏè>£ ,x°àÁôsUº¨ÒE•.¼uðÖÁ[ X0`Á€=oíykÏ[Ž9f^@ˆä»Ë¿»ü»Ë¿;øÝÁïFe’zÖ{°Þƒ36ÎØ8cãþÁûïì}Î¥#‹,>²xnüÜø¹ñÍ·5ßÖ|[fõ‡w>pçw>°¢ÓŠN+:y_Hݦ‹6]´é¢'bžˆy"&³¾¹*ÝZéÖJ·Nœ8qâĉ»¯Ü}åî+½/˜yœm){¶E-ºhÑEŽ ™K ™7Ôny¤å‘–o/{{ÙÛË ®.¸ºàê¨@êûzß×û¾¾~ôúÑëG{×€³aÛðm÷ `Ö³˜`¯4z¥Ñ+ô:Ðë@/ïÀùìøÖã[o=7zntåÞ•{WîÌo®v}Úõi×'±^b½ÄzÉÇ“'÷Þ˜y™yd,0Á$†sêXÇcuœôÚ¤×&½–ž¡ð5«K­.2õv5‹—=6ac“ŽU.œ³îƘØùŸÆ¶Ì—oáß[¾÷àÇs[tº*÷Û¹®QíñgÚÖ¯^±I¶•W•lSòÎüMòô;³çmód›'Û<¹þ½õï­Ï» ¤ÇÏ3žùóÌÛ_¸ý…Û_8³©àÊüïæjÔyÁ Н•í®U1ͦvlEÕ_ç^;ö’ >7~~\ÏO§ÏWåƒvcæÖÈ7é§G®òÎ#¹ú¬.ߤEß·GOO?<æò1—¹üà#9øˆwà|pbȉ!'†Ì8{àìéù)=ðªJù»úóžëŠMl5kxñÒ/v~ë…kÊ7ºíæ‰11ez¼1ù¾˜ç»žð× ó:ÖøwR¹»›6´þÍj¯êxwôëE——ýkž‰gö¼ñ‡âÅZuÁª V]àÝ0ó:™Wîws5ê¼ b§âkFe«;.¦ÙÔî×>Võ×¹×6O¬±à³q-GÆõütZËjqU>hwãÜù&ýtÍà*ï<’«vÃòMZô-›ÝÌ ˆt`‚I çÈ¢¹‹æ.š{ºÃÜ„±U²—Šš·ö¦2W=uøáž¯4z.9¹wï&M2ª\ûq‡Çã×½0·aëÊ*ä(¯|Úë6àº× ¸nýöðþiq¤Ï‘>GúŒŠ3ê4nY0Wþ"¹ >Õöî 1Ï3äÍuîJNþâ‹&M2ª<½¼Uãï—<ùòw5›õ_Òer™¿n_=k㬳6&œüqòÇÞe€È“88qpâàòÕÊW+_-íßÕæÜx]á}]ÿÏòòO Š^¾·Úü‡Z³¦FŒ*ÿõÀ'ªÄÞ¼qä[e¦^S}Gþ‚i¯[—a]†u¶cꎩ;¦z̼þoæ•ûö\Ÿj[/Ìóß i[箌=u":aNãï—<Ùú/5›õ_»×Ì ˆ`‚I gÑþ¨ýQû£zîU¸Wá´ d›Ý]ºbÑA‹oj5ºæ_2vörßÞÛžlØê™Ûë×®x]Ú‡àó³ÍÏ6_„µâîw¯¸;í½Êƒ?õ.VnÙÏ·}0²þû÷¦½\1ïõKkwéòÀ5J\˜¦>¼]³vÍÚmûûÛß÷ŽduG~<ò㑇6jب´| ”hTùÛ|Å»åxé_¢26èM{9¬ã7ùc‡¶ž>â»Ò{Òþ;mè´¡Ó†&ïKÞ—¼ÏûpþͼjÝSnÙÏ·u­_ÿýÌ:µbÞ-wÕîÒ劓̼€¬IL0 là¬øzÌ×c¾“–ak«+^²Å¦{;½U¯tf µÃ•GŸîÕ½ñßg$7{¥zš®u¸¿øýÅï/~¬ÿ±þÇúk@ò¿’ÿ•ü¯1ëÆ¬³.Më<ýgX—+8µèâFÙ3+ô Wn¿ðÃW繿v÷eÿ‘¦?‹É3?Ïü<š@V´±ÍÆ6ÛVdX‘a©÷ö5jXè’;ç;¥ò+™ú†+ì»z_ì÷Ý»LRau¾…Žäº"õ×ÒéÍNovzóÀË^>ð²6é3¯Æ\ùÀÁ¨seÚ™¨ív]{užûk_õ‚™u€ &0d°7¯|óÊ7¯L}xZ7_ñê…î]»¼ÃSñ‚6Ô{£ž™ »¿¹QñÊo¤þêb÷Åî‹Ý·{ñîÅ»kp~:¸ÿàþƒûo‰º%ê–ÿ1]që}+üõHô’Þ>Zè®üiåûÍëwlûVÓÅþÇO÷~º÷Ó½“&/L^¨Ußü"ó‹Ì/’zßžSÑ÷r½Õç•éWTª´Ð7õ²ÃËc”«—ú«Ë¹!熜6÷ÜÜssOí ²f^u†Vøë‘èžß7ú «œ‰úie—7ëwlûV…‚f^@° € &0d„¤ä¤ä¤'㟌2>õ!éÔ÷¯}£ÚYe¨®üyZ×öõ—6ýèŠòEÖ§þz7·ÝÜvs[ οüµà¯ËŽ/;¾ìøp=C¹Â%§äýpÝÏ3FÕÎ*¡o¸ò“;ÆÍ¾ªvê=áýîìwg¿¤QI£’Fi!Áôú„×'¼>!õþ¼ù‡¶º¢ùƒŸ~;"ö`ÖŠ~O.ÝùÅjkãî¼ù±¢¦þzWV^Yyeem +ϼ vÏûẟ;®ÕÏD}rG‹W̼€ L`HŸ­É[“·½xèÅC/7-Õ3ÿÄ1õÑìãfµªŸuCßpeÇJÿÞS¿ö/J|Qâ‹Ú @V›yÕ\Q7oߥÁ*3/ ³ € &0œ¶%[ò·% 7¸25nSÙÄä¤Þ MŸoÃîP¹~FÇ×ê†]Q¬É¥M.mriÒú¤õI®!€,¯ïw}¿ëû]Ø›F|íÝZ ç[ô{r9þÞ!%*w|¦}?íûißkEçÒÚk¬=®g®~mófEJ>Xkõb??¢ß“ËÇ—^Uíÿ w| Í*4«Ð¬ƒÇ;xL[ÒÌ«ÍÚZ çç9¨P9þÞ†G̼€Ì#&˜Àpv~´ó£…Pö.R¥f©JÉ]zWlRâ|v‡ÊÕ/¶{µÎ»áŽÕÈ #+Œ¬ EAÖ5uÑÔES…ûŒ/ØÿŸ{㲟ÏÑïÉåÈìýšT{²fÝß×ý}Ýßµ(€³íP¿CýõËY!g…œRöÆe¯¯Õ¥@©aeçÆÞq~F¿º¸êgm«÷ÍÕóXÏc=À™yÝ´'.»sP¡rdöøµf^@fL`H›™É3“g6Ùld³‘);ôØùÑ üûXÓ^SÇpŸ\~üE‹îWå7ø^‘oE¾ù4.ÈZ¶\´å¢-…û\Oøö¡Ë«dúþ©œüÅ£MªvnqõÅç¥gúœé¡c8|Êð)çìiº§éž¦ŽÌ™CšÌ¼fæ53¯ 7ìÞ¾ª[™«j‡+Ÿß¾ÂÈpGïèíGo?z»6YÀýÉ÷'ß_?Oý<õó¤ü,÷ø¬UÑ’w$'}±\è{ªò÷C ÷5º0\Oøt£§=ÝH8–o[¾mù¶p=ð?7¼cådqo¸²ío£¯)Û!ÜÑÛsxÏá=‡µ1€s;óª|¤äÉI½œq:Uùû¡o›yç–8ý’Z&µLj®÷Ÿ0üûöîÛ»oo¸®ç“[Œ¹ÊU¿ÿ£<>%¡BãGËO)x(_®”Çð¹ÍÏm~n³–Á7{Äì³G„ë$|öQÃ)‚ÞÔËo’§–®vmª­9¶æØšCKÈ(Çk¯u¼VÞny»åí–²×m½ó±eþ"âýåýk–רVe_³ØÂ§ˆûMì7±ßD- àÜμzh8ʦÔËo’Ûõ4óÎpú|íoê„Ái'†ÿá‘yá‘Rv4¿­Ø£ø†Ôi/×ÞÕáŽøåá:îÝ÷ì¾g÷=ÚÓ‘Ø#±GbÃ}~¾úâSq¯ wÓ^>ºªoµòo¥<’vuØÕa—öQÞòÆ7†¤ìo‹ Œ™•÷±W~ûZì1oZÊ¿,ÍS-ìmH×í\·sÝNí àìϼZþ÷šóKi/]U{‡™pö €Ó/è†Âݨ4§N aíºi×M»nrÛçŒ-(Róoew§<žCk ­5´–VÁ4±ÿÄþû§ü䶉mRþòÝÓ-.Y4¦Ñ•á¾_Öf[›m­@ºþøðLJ?{Ûç|³÷VþD¬{ºe›ž,Sñãìm²·É®ÕœÍ™W¹¯/ŸáœÒé–—ô8jæœ}àŒ% Î(¾ä ¬áã‡>>eWòäêºÃc®6Œ>³rïÌîs¬ ×Mï­¼·òÞÊÚDZrÇÊ+î3»iȬRõÊ tϬœþñ“WUÛ‘ò¨vÜÚqkÇ­Ú@zL­0µÂÔ )ûظ7-ú˜(÷ÌÊaÅþ3ܨ`Ö [6lÑöÎÎÌ«ÓÛõÊ:§tfåô›•6óÎ&ðÙ# N0œÂ¡V‡Zj®ûøm×m0€NOùd‘ºWÇäOyl_÷¸Æi%|”ðQBÊOk÷koªXbƒ7=å±}Ë^iÜ1ì}&†l²}ˆpºNÌ<1óÄÌœµsÖÎY;eïzÏeó^¬ÒC”›ž²Ã’×,wCÊc{÷=wßs·%]2|æUù%68”žòؾ^?›yg“øÜŸ.0œÂìÛfß6û¶”Å×âÖ—]eèœþrw¿[‡5È®S>QîD¹å´C‚Zýkõ¯uŠ[­=4}eü/BÜô—s<œ§Ê5)ð³3žñì -àt­±rÄÊ)ûÕÊý›l(4B|›þrè=«Š­n$ÿûöß·ÿ¾];ȸ™W‡Wâq)ýåÄMþkæœàsOœ`8…ºCê©;$e±ySç*õ4gTÙå⊊ÿœò8óõ7_óµv™kûøíã·Ÿâ6ø•Š”“omrÒŸgF\ºî†yã\Ÿ¬ï»íÓÒ «…ýƒ˜-'¶œp;M€ÓpÇê;Vß±:eÚ;æ­—*.ßfTyí¡þ%KvJyœ?¬ÿaýëk‡1ó*\?ßÚä¤Þ Î eD¹ï¶ÛÚšyg‡8s ƒÃßìíº·ëÞ®)»ƒ Ó µÍwƒárÆ–Ë7´yµVã”GûA z`Ö™kò “o˜|Š<¾}Ñë« Ï¬¸4e1p§>×-þÄ)ÖS¬·¡Þ†zZ#@Zlü±ñá¦÷Ãv¬Î;]p›Qå=uçýVåWªµXÔbQ‹EZ#@F̼®{¨ÚpçŽ2¶ìÔ'fƒ™ÑÀÁ! >™þdîÀ¹çLÙLøªÉÍWž0PÎØòè^g×í&wMîšÜU›„ÌR÷Ǻ?Öý1ågó×óò6h!ÎØò³âã»Ç5Kùºž?ðüçhiñí¡o}{(e_Ú`OÂúâ‹l3¸ì¾æÕ1¹ïÍ›œ³jÊc~x×á]‡wi“é›yÝúcƒÎelùYñ–]̼€Œ&&a°þäö©·O½}jÊý–wÔ³æÊY);–‰éYüê”Ç|Ç;žØñ„6 çÞáþ‡û>Å5=eß+Ù6ï„Ì J#5>P쳎Kùºj•®UºVim -ÆF{Š |ï_¦ýTé"‘íY¹ô¨{n/Y+å1_=lõ°ÕôI€3yŒÏ;Áù¢³Q(v[’™ÑÀÁw~†Á`ø?_$‘üE¸zRrÂÔÆ« ”ÏF9cf³«OyÌç_5ÿªùWi˜pî­­´¶ÒÚJ)?•O4ÿçœ 3Àg¯,_­ÔÃy§|uGpt€– º†—5¼¬áe){Ñ!Í¿ZTý~aíÙ(û¼6½|¥Sü)çK—¾téK—j“g:óŠ[a†óEg¯,_­à—f^@Æg-çO,†?xèÀCJùÁ¾é?eFo ÚPõ—ûº¾Qÿ÷£ë<]!ê–gË¿S,®ê¦¢Ùóÿš\® 9–O(¸)ß_}ZrFáãóÕë³ð×è[?mP'˜ÃîM#:½S¯ü)ºÔîûï®e¹7í‡i?Lû!å§réK¯L¯ùx0à¯/|½^í;;^ÓìÝâMK-,Ö Ï'ùÇå=saµ•1—(5$¶Ç½e?ü5ú“¯Ô r<¬L¯…废â.;·ìܲSË'髤¯’¾JÙæ^pCÎ=AJ‡\þU¿ê}¢ï(W"ÏÚPÝ*Îh¸¸àÞÔ5teb©Ø%v\y8_»Ð£*ÜUomÁ+|ñÛ&±Ûƒðºýöe×êMyäÛ¾ÚöÕ¶¯j™g:ójݧæã™{®f^‰?^uÛŸç\·¹ÇS ÷”XpxÞÿ†êVzrûò–f{ý>{.~³ÕÌš¾y¿]³:C¸iOÜ%ÃŽÔ*RnLèšàÓ¬ŸÓòÛÞí›Ä‡ë@µL8÷&6Ll˜xŠÛa½¼tlãÁ €C7¾í£²Ïm>ö5>}gÛS3«Oøgö·_ñxÎ ¢¾Œjròož(º¼eã-8½Tüœ”¯ëåI/Ozy’– κ¯Ö}µîW·ÜüÈ»¥oÚm“O®aþºE^ÈÕÀu‹®®zßÉ¿sg‹÷ÆV”ëÆÜÇ¢V„~³uÓW”þo€¢ß“Ê2MãžÏÿ_#y€Œ›yõJhœ#glN®Uì¬è<žIË™«‚÷å~&ו¡Gl°Âö Z[°Ãõf^@ÆGžÈƒÀð‡I['m´5å‡ö»¯Û¯Šï„ái(Ö Õ*羨…QC¾»¿ý»ñmÃ…»)_KÉUùûæÌAÇç.–X¨ŽÓFy–äY’gÉ)> ¿x±I\Ðà\[r5ŽšõI•qïªú“Wý{ÚÕO4®Ö>ø+ï®ñIÙOl7Ü|ps- œ%/¹xÉÅ)ûÏ[G½zY…ÑA‹KSÞúäX÷Ár«‡Ä.,ó}ͱùO„~^y÷53 ÍòJÀñ½»Ä]^ÉH ãf^½[5 Ä “?¼£y‰­OÕßú÷ßjqí¦j¥þ8suATŸ¨&›öuú¾^ƒ ƒÚ]ãÖ>f^@ÆG¶¬ €á£^õÚ¨×R~PеIý¹Až.Ôú“šsïÚYýÁÒ1 «³½B“´üeÊ8˜×wiUñßÅ8mÁ¶–½Ôú|¹‚‘¦ €o]ßâû‹Óèžü¨ëzÆÏ.Z7hðÁõ‹^oT#åñïúh×G»>ªe„3«á¬†³¦ì?oÿef÷Jo34My;èŽ+Æ^Rnòw>XjÝÉ×ß{Ûg3«ÆóÚßP٬߀Ù%×ÉdÄÌ«à¡|¹‚s®æhû^Í%§\†,Üï·}¸Âߊýó…½¹"_‘•Á<up}Ï Í¼€³ÙŸ €#UÖ ƒ³ç#Áôëœ[4èÌ«fSF'Å$tl<ñÙµõU|)øðÝTÿ¨tsí ‚©þÂå ç f¼àÀÆ]’¦v‡Œù®FôÿÝB¿øÜ¼åƒvð±,Ýݸ¬öQú}õÁoW6òµ³'×¶àÞâ×çî§Pþ¢9{‡~Ò.nô²ÿ rô*[]ùhÒý´7€Œ˜y•¨Z8g0Ï>ýQÃßSè—”¿³7[÷{¼™wv®ò9o ýæ«m<íÊqÁ<u콞5óàÜš3}Îô9ÓÀ {w_Ù`s0àÐðz~î›ê\5>4°š¿fB¹Ò¡¿¸¼<:ï[¹„{]A{-^U¬ÌBí ‚©i\lE3Þ²xöìz?¥å±нs]ÝWNÕ%>^{Ù÷ûjoåîsç\¹&ÈÑi¸ÛAWïÓüÑ"•‚\ó“Ë6K_Pæí #f^¥ŽY´36³§Þ07vPêg–^û®É‡Uj…~ŠC笂y>íxí„ Í¼8·Ž¾}ôí£o €!@‚vðWÅo^SûÂ+³%úÑ\[rš®æÕVíV T·]•ž,1:õaº+€Ôù à#½—LjôyZ{hÄâ :žª?t0@d þÀ)¯¹¥ï“Ê|ŸU`WdÜÌ+ˆWØs|£1…Ûçi”ë¥pg–š.óDô¡ŸwŠ‹ù¢øÐ`ž}r0™å<º8tt›-8ÛñwÆßŸòc´5€ó˵!çWÊ^yYá£ù¯{øËÚåÊ×ý=æúÊï®›p¬Y¯7×=jÝ æÿ9, æ<ÜÀZ¦Ívî·”ŸÄ ¯œö+€7í›5¬^ƒÐ£r'æ¾0jÇÿõ‡A_øú„ë®OÐ2m6›-ÜöĽOÜûĽ)ûÏ ¯*ïºàÃk¯ìzòmŸCB·ƒ¾ïزÕ:?·°–i³Ùl§?ó ÖÀán}]Ï+>/Z7ô󺵿úÖ“/Q˜µì†ì±—óU¤¾°™—Íf˨þ|Ü_ÇýuÜ_™ÈÛÞ¿ÿýûß¿¿÷…½/ì}aÚ£ßÐïŸGkCÐLÚ:i뤭)?œß}Ý~U|ß O¯oZzHÑ·Bµºu}¥ŸJ,>Q4aNãïSu×vìÐ#~qðàøÜÅ Õ9U=s-Ï’ö5>ý¿? )W ÿuA €w×ø¤@ƒì)üàæƒ›n®e„³äâ%/¹8eÿyë¨W/«0:˜¡éƒåV‰]Xv~í2þø>ª|I“Ë uE¿'¿ŠàÀñ½»Ä]^ÉH ãf^½[5‰ Úy›™›­Þ'TÜû¢F ýû…~ ã* ý»XŽ|ç~ûhû^Í%9Þ]ãÖ>f^@Æ ÷§ŽLd·Ã§ Ÿ2|JÚCßÐïŸûÐ÷d`øÃ‚_üºà×”Ôyÿ½©ÄU#ƒ0<-Ò,Ï˹¾ Õjy§6ýj•MË£æ6o¾úÿ€Àßönß$>\G©e¹×0±abÃÄ”ŸÇ£//Û8GÐà[×·ø¾Äâ´<ö–g›^T,.ô¨v÷\;¸Øä Àk N/?'å‘yÒË“^ž¤e„³î«u_­û*eÿÙró#ï–¾9˜¡éõÕïû[©"¡zækWø’\eï½í³™UcR¾Š.ûÇ?Rþ ÀešÆ=Ÿÿ¿Fò7óê•Ð8GசÛã—F¥ Þ—û™\Wž\Û&KÝZ¤Ç‹/­^抃A¾ùóKìp½™qÀ‘'놾'ÃÖ·^ßz}ë”Ú_puÕŠ›‚0<¹®Ð˜|w…j5íêëjUkŸúïoÓ¥~ý"¡•€ƒîÓsl£S¬RÜ4ÓüMók™pî ì7°ßÀS¬ä·£þGK¯î´8×–\£f}ReÜð«*…{Ô´«Ÿh\­ýÉZüæË¥kNô*?øû˜¡5þ’òÈ/̱0ÇÂZ&@8{ã÷Æï=ÅÖjÝnMt™ Å¥w¬ŸõßÊ­s}šgaÔ§È[Ïñké'_ï[åÃëVnúIá¹¥þ™ûÀ ¥_æ¯v8pp…5õj<Å™nQÝ¢ºi™g:óêÖâêŽÁ¿tk‹=V貓Z¼,ÈÑo¨üàï7¾lædpdˆŒÐ÷d`øÃ‡ݲ]³øÍV3kv¤V‘rc <–ûªœGÃ_Y”a÷¦Þ©Wþ]g÷á݇w×2áÜ›öô¦ýòS¹ô¥W¦×|5ftº !e+-üjþ<Á¿ö7T+Só¿f^@Æg]‘úžL ÿç‹ä/’¿÷‘NJN˜ÚxUæOwÅßú«W”O(¸)ß_ÒÞ}{‡¿Å.¹*ß<#Nþy³[J—,Ú?Ãî3›=X½xʚϿjþUó¯Ò0áÜ[[im¥µ§XÉï‰æÿœSaFÐàE¼Ô'ns¡>Êåê•zX¹hÙùólY<{v½Ÿ‚—¯VêἇOq ¸G e¤®áe /kxYÊ^tHó¯U¿?qé5ïßU£ÄK¡Zå)”¿hÎÞwýüÑÚ+ßî¦|-Ý“^{&æÒàÀ}^›^¾ÒÕ)ëùÒ¥/]úÒ¥Ú$À™Î¼âÇV˜Ìètÿ¢ÛÖ5|(ßë¹É9êä:?úvíÊOÌ*pùj¿4ó2Ž8k‰ìÐ÷d`ø“Û§Þ>õö©§øÀwÔû%87ÛypG­þå>¯[¡xíBƒBk‡ÊK/Ýÿ Ú_bÒ«cãìaoRÝ5¹krWm2KÝëþX÷Ç”ŸÍ_ÎËÛ EæÆ¥áBÜÓýypÊÏŠï×,åÑ~þÀóž? 5¤Å·‡¾=ôí¡”}iƒ= ë‹_„¸ôÌnãœòQ¸t÷5¯ÖˆÉ}oÞäœUSóûï:¼K›HßÌëÖ´fŒÚû_UÚ•jðÇ÷ìÆÇ Ì*×þ~V¼e3/ £ €ƒéü }O&†?ÙÛuo×½]S~ì+L+Ô6ß ÁÈf­rù†6¯Öjœòh?0èA Ò!sM¾aò “oHù }û¢'ÖWä05+–ú\?¶ø)ö†zêm¨§5¤Å±ñÇÆn?lÇê±Óƒ¶†nÖ-ï©;ï·*§¸j­Å¢‹Z,Ò2bæuÝCÕ†íLÎÁ±=~iT:tºP=_è×0®r¡¬wê³ÁÌ ÈhààúžL §PwHÝ!u‡¤ì6oê\¥Þ@ÁmF•].®8 øÏ)ó7_óõ7_k‡¹¶ß>~û)N£W*RfL¾µÉI_|.¸ÍˆrßmŸ–nX-ÜôÄ–[NlÑÒîŽÕw¬¾cõ)nóÖK n3ìæÏ‡ú—,Ù)åqþ°þ‡õ?¬¯dÄÌ«pý|k““z'éL΄_št©ò—P s'æµcWü­ÿ¸zEðÏAí»í¶¶f^ÀÙ!Î\BßpÀp ³o›}ÛìÛRv C^‹[_v•à6ýåî~·k7찻܉r'Êi‡µú×ê_ë×÷¬=4}eü/âÛô—s<œ§Ê5)ð³3žñì -àt­±rÄÊ)ûÕÊý›l(4Bp›þrè=«Š­n$ÿûöß·ÿ¾];ȸ™W‡Wâɬ³7{ëþUƒ¿OîñTÃ=_ÜØfy­Î%Wåï›çïÙî_U®WâxV¹öwbŽ&ÿ5óÎð¹'ôM 0œÂ¡V‡Zj®›øm×m⦧|²HÝ«cò§<¶/Œ{aÜ ã´@Ž>Jø(!å§µûµ7U,±A|›žòؾe¯4îî»fûíC¶ÑN׉™'fž˜™³vÎÚ9k§ì]ï¹lÞ‹UzqÓSvXòïšåNq«Ò»ï¹ûž»ïÑ2zæUù%6dÚÙ›†u[ÄKY«Âíó4ÊõÒÚŽzÄ/þ9¨cûzýlæœMàsCè{ºÀÖðñÃÇ?ÅMxž\]wxÌÕBÜ3üëÑ™Ýç4X®;Þ[yo录µ=Žc厕;V.ÜgvÓY¥ê•åžY9ýã'¯ª¶#åQí¸µãÖŽ[µ=€ô˜Zaj…©Rö±qn[ô1!Ã*&.Šýg¸QÁ†-¶lpóL€³4óêôv½²çþÎø›î¬<"×–œE£f…jR«×åßœðyß6ùkþ–U®ýþq³Òf^ÀÙ$>{„¾é!†°vÝ´ë¦]7…ý ÁUÝÊ\ÝP {ºåEjþ­ìî”Çsh­¡µ†ÖÒê ˜&öŸØâ)nGÖ&¶IùËgˆrO·<¸dјFW†û~Y›mm¶µFhérøãÃþ8\OûÏ|³÷VþD {ºe›ž,Sñãìm²·É®ÕœÍ™W¹¯/Ÿ‘YgrB·€Þy}·÷®~!ô“¬ý\Ò㨙pö €3–Ð7£ø’ƒÿá‘yá‘Rv(¿­Ø£øÝ´—kïêpGüòpôî{vß³Û-ã  ŽÄ‰=îó»ðÕŸŠ{M¬›öòÑU}«•+å‘찫î»´7€ŒòÆ7†¼1$e[l`̬¼=¸òÛ×b‰uÓRüeižj… ¬Û¹nçºÚÀÙŸyµü5î5ç—Ò^>ºªö3/àì§ŸÐ÷lÃÿ°oï¾½ûö†ëb>¹±Å˜«b ©S/OI¨ÐøÑòS Ê—+å1|nós›ŸÛ¬¥AðÍ1{Äìáúà Ÿ}ÔpŠp7õò›ä©¥ëŒw ·æØšck- £¯u¼ÖñZy»åí–·[Ê^·õÎÇ”ù‹p÷”÷¯Y^£Z•}Íb wHy ûMì7±ßD- àÜμzh8ʦÔËo’Ûõ4óÎpúÍ™>gúœéBߌ%†4™yÍÌkf^ãvÐgV>>#¾}…‘áŽÞÑÛÞ~ôvm ²€û“ïO¾¿~žúyêçIùYîñY«¢%ïHNúb¹ ÷Tåï‡îkta¸žðéFO7zº‘&p6,ß¶|Ûòmao½áý+' zÕm}MÙáŽÞžÃ{ï9¬œÛ™Wå#%ïHNêàŒÓ)oX}¨ÇÛf^À¹%N¿¤–I-“Z }3–ÒffòÌä™ÍF6ÙìAfìüèþ}¬i¯)] ü§òã/Zt¿*¸Ž{E¾ùVäÓ¸ kÙrÑ–‹¶„½ ä„oº¼J6qïŸÊÉ_<Ú¤jç7\[|^Ê#VtVÑYEgkq¬Å±ZÀÙsOõ{ªßS=Ü÷×à|ùLõâÞ“Ë;J¿ûTå°#ùÙGg}T»ȼ™W“vU²9ïô§rrï¦MªvnQ±š™pn €3ÊÉ× }ÓO §açG;?ÚùQ¸Áwï"Uj–ª”Ü¥wÅ&% »W¿ØîÕ:ï†;V#+Œ¬0²‚Y×ÔESM]î3¾`ÿîË.ú •#³÷kRá»°ë&þ}Ýß×ý]‹8Ûõ;ÔïP¿œrVÈY!eo\öúZ] ”V&qnì¢ß{«~Ö¶jápß\=õ<Ö󘌙×M{â²;*Gf_kæd0Á$†Ó¶äoKþ¶äoá”C¦Æm*›˜œÔ;¡IãósÀ½~FÇ×ê>îø4¹´É¥M.MZŸ´>i½¶Y]ßïú~×7ìû‹¯½[+á|Ž~Çß;¤Då°ëNMû~Ú÷Ӿ׊ΥµÖX{ \Ï\ýÚæÍŠ”|°ÖêÿÄ~~~F¿/½ªÚÿîøšUhV¡YõK>xùhÍ6ç[ôû|—û߯ôC¸còÐs=÷ÐsÚ@f™ûÉÜOæ~®—®¶ôÆÞ…ý1±AìÍçÑU¿ËÞZõÆÔGò[&o™¼e²öÔ™Wë¼5ÛœoÑïó]¬2ó2›˜`Cº _3|Íð5áš?¯Ø­ø÷‡ûö×èéÈp/Üꕚ—¥~Âhë%[/Ùz‰6‘ç·"¿ù­H¾qùÆå®˜9nÔÔê'Mú|ãyCâ{ .;7ÜqèѲGË-O$ŸH>¡ád²I'5žÔ8\}Å3±ÿÉ_ûþäåU›ÙÑïfÏ®üNê#ùUëW­_åþ=YbæÕlMõ“&%<ÖxÞø¸̼€`L`HŸ­É[“·½xèÅC/7è,Õ3ÿÄ\ÏP®pÉ)y?\÷óŒQu£³zôûÉãf_U;õžðÎ~wö»³_Ò¨¤QI£´€`z}Âë^ŸzÞü¿C[]ÑüÁO¿{0놾ƒîübHµµqwÞüXÑGS½++¯¬¼²²¶•g^»çýpÝÏ×Îêg¢>¹£Å+f^@P € &0d°7¯|óÊ7¯L}HZ7_ñê…î]»¼ÃSñ²ÊPûÄÌ„]Žßܨxå7Ru±ûb÷ÅîÛ½x÷âÝ‹µ8?ÜpÿÁý·DÝuKêFÔˆ[ïè[á¯G¢—ônôAV }Zù~óúÛ¾Õtc±©¿º§{?ÝûéÞÉ “&/Ô*‚o~‘ùEæI½oÏ¿©è{¹ÞêóÊô+*ÕÏZÑo‡—Ç(W/õW—sCÎ 97lî¹¹çæžÚ@dÍ¼ê ­ð×#Ñ=¿oôAV9õÓÊ.oÖïØö­ ͼ€`L`8+¾óõ˜¯ÇD¥A«+^²Å¦{;½U¯tІÚGŸîÕ½ñßg$7{¥zµ´¼–û‹ß_üþâÇú묿6$ÿ+ù_Éÿ³n̺1ëÒÒ‡¼òŸa]®|à`Ô¢‹eZè»ýÂW\çþÚÝK”ýGZ^Ëü<óóÌÏ£ dEÛll³±M‘aE†–zo_ñP£†….¹sÞì[*¿´¸÷Á¾«÷Å~߽˄!VçkQèH®+R-Þìôf§7¼|àå/k‘>ójüÈ•Œê1§Qö ‰Ú~a×µW繿öU/˜yY‡˜`ÃY´?jÔþ¨^…{îU8-ÃÖfw—®XtÐâ›Z®ù—ÌjïÛ{Û“ [=s{ýÚ¯‹J³ùÙæg›¯?ÂZq÷Š»WÜö^åÁŸz+·ìçÛ>YÿýÌ }WÌ{ýÒÚ]º7~~\ÏO§ÏWåƒvcæÖÈ7é§G®òÎ#¹ú¬.ߤEß·GOO?<æò1—¹üà#9øˆwà|pbȉ!'†Ì8{àìéù)=ðªJù»úóžëŠMl5kxñÒ/v~ë…kÊ7ºíæ‰11ez¼1ù¾˜ç»žð× ó:ÖøwR¹»›6´þÍj¯êxwôëE——ýkž‰gö¼ñ‡âÅZuÁª V]àÝ0ó:™Wîws5ê¼ b§âkFe«;.¦ÙÔî×>Võ×¹×6O¬±à³q-GÆõütZËjqU>hwãÜù&ýtÍà*ï<’«vÃòMZô-›ÝÌ ˆt`‚I ™æHË#-´|{ÙÛËÞ^VpuÁÕWGRß×û¾Þ÷õõ£×^?Ú»œ Û†o¾mø³˜õÀ¬¨{¥Ñ+^it ×^zy×ÎgÇ·ßz|ëÜè¹Ñs£+÷®Ü»rï`~sµëÓ®O»>‰õë%ÖK>ž|<ù¸÷ÀÌËÌ c € &0Èw—wùw—~wð»ƒßͬAv½ë=XïÁglœ±qÿàýƒ÷ö¾çÒ‘ÅGY<7~nüÜøæÛšok¾-³úÃ;¸ó;XÑiE§¼/¤nÓE›.ÚtÑ1OÄ<“Yß\•n­tk¥['Nœ8qâÄÝWî¾r÷•Þ̼Î60Á$†@ÛüÌæg6?óæÁ7¾y°[ån•»UŽº"ꊨ+Ò?¼Ž[·2nåð©Ã§Ÿº,Û²l˲ퟲÊþ)Ž94‡pxÀŠèÑ+¢Ÿ¾ìéËž¾¬áÍ onxsFn¸åÑ[½åÑ ïMxoÂ{ë~^÷󺟓g$ÏHžáÈÛl[°mÁ;kÞYóΚ>£ûŒî3ºàÁ‚ Ì€ ÷¢JUºhðÖÁ[o]0`Á€ö¼µç­=o9æ˜y!`ˆIã“Æ'_2yÉä%“ý°è‡E?$F'F'F;2ÀùfcµÕ6V[Ü|qóÅÍ—T_R}Iõƒƒ:8È‘ È–æ_šiþE½õ^Ô{yÂò„å Ž f^À™D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„D0@„Dˆÿ•?Ϧîõx%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/concatAll.png000066400000000000000000003166661431412030200253130ustar00rootroot00000000000000‰PNG  IHDRÂ^‘5ÒgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝuTûÿ?ð«W¯z½&¨˜„  (X¨€ÝÝØÝ]tw—‚Ò Ò(Ý ‚¤„tç²;¿?¸ßs¸¿Ù峂èîò|pÎûÜs%Þóš÷̼gž;3Àþ@ 8`€C à€8`€C à€8`€C à€8`€C à€8`€C à€8`€C à€8`€C à€8`€C à€8`€C à€8`€C à€8`€C à€8`€C à€8`€C à€8`€C à€8`€C à€8`€C à€8`€C  c4‰ggg*¬ 0€€! 0°#Àt v„€ÀÀŽÐØ`:;B @``G€è@ ì0€€! 0°#Àt v„€ÀÀŽÐà×ðròròrê<û~óþÍû7ïkÖ׬¯YÊô `:ô5êNêNêÎÑ îÀt èk]ïýíÂ`æ! 0@_ë t;ÃÝÑLCÜ=Àt ø•ÿ,€è@ ð» î Àt `ƒ`:°„ÁÌ@ @`V†0˜Àt `ƒ»B @`v„00€Ø]ÿ ƒÐ€“ôŸ00€8g‡Á€è@ Ðp^Œ€Àý g„Á€è@ П±oŒzˆRL)¦ˆˆˆ~ úô)ȂςςO¡Læ˜Ì1™ØØØ‘;.w\î¸Ö ­Z7 Ú?W½F½F½Æþ/ü_ø?Nÿ8ýãt½Qz£ôFõfû}×ð®á]Cä¼Èy‘óŠÕŠÕŠÕˆ»Ä]â.ª ì 0 É&²‰ì8Ç8Ç8Gí+ÚW´¯lmÜÚ¸µqt/Ž)8ò²Åe‹ËN/^:½,,,D±àg)T<¨xk‹k‹kËõ×?\ÿ0gÙœes–õæøµI`“À&õRõRõÒèâèâèbZ5­šVjô5ö ƒ[<Ø×h®Ñ\Û·=në¼Ü–û,÷YîN œ8M ;AEâTSwLÝ1u‡ìÙ²ž•<+yV¢ð+T8¨pp“ÿ&ÿMþ3,fX̰=fô˜Ñc°^˜ÇíÏíÏíßµ¨{žïy¾çù쇳Î~8æî˜»cî¢J¸ÛžÄ5‰k’à2Áe‚ËvçïÎ߯ðËݾ#|GxEʆ “þ˜ôǤ?°^ ÿðròròrB ,jrþäüÉÿ#<¸8â∋#$¾H|‘ø2ñýÄ÷ߣnìkåË–w,ïXÞ±T`1OkŸÖ>­]¢ºDu‰*×®\°¾º'þ]ü»ø÷î«z å@Ë–9‚sçŽ=8öàØƒ¨;¿~üúñë×l[³mÍ6–$wIî’Ü%a a a ¬/à$³³fgÍÎB «vÇvÇvGÀÀ¢Vº®t]éú£ú¯ \¸&°Th©ÐR!T’5q)q)q)-IY’²$¥7ÑŽâåå*©QM‚¬Þi9½ß쪮Sê¼ÖWM·ÅM'0SïO7ÿ tG;‡ø-Ðjù°ÐÍWý†™ÈÛÇJcT©}îÍß•š-5[jöØMc7Ý„µIvÅýŠû÷­êQÍ£šG5EZDZDZÆw|ÜqT’5MŸ(>Q|óÆÍ7oìÍv¤û^õ¤ò ç(ý4¯ûšnÓ]­eÑ ÿ*ÞÁê®Á8k«ñ‹"¶šê…û~6ž¬]ý®A[N]¢7ñ‰Ö­'Z¢-¢-¢-£EG‹ŽÅÚ€5)UŒX–2kÒæ±GnÏžsøŸ#…}OOytkŽä—'…‚N ¾wO€kÏ%¹—ÓœVoئ<>z&¯à~Ô ~áK<-¹4#ÿY•äD! ·Õ·D‡šÔJ¿™Wd”½6hÞ%5¾UÎU¹U/a)½‰_`4¯êÀ¾úÑÀ¡²ë—¹¹yçgÂ… ÷ðî¨ñ‚ãÇ ^7¼nxÝÐÞÉÞÉÞéóéϧ?ŸfßÊà«?|ù¥ú¥ú¥¾—x/ñ^Bñ´âiÅÓ=»Ü¯Ù¡Ù¡Ùá4Øi°Óà@×@×@WÔö÷~yIzIzI*-RZ¤´ˆùõ¨6Æ0ϬZ_Èk÷g“»á5_fš›'&÷¾5É\š«_㯾Ý4ÔºéGǘ[ª[ª[jè€Ð¡°~;¿¼ÏxŸñ>ceeÕ›¸Î¨Ü¨Ü¨Ü=Ú=Ú=:d[ȶm¨íïúú|ñóÅχ9sö£ëÑ#Í LK7'íýãoÞ. –ãÂÃÃÚºWmªÇ[kÃJ1ÇæüqEV"2Æ<êgT™ï•ö;íwÚï|ƒ}ƒ}ƒ±~ñÅ _ä9¼Ê}•û*÷Qœyá«7_ƒ; –|+ùVòí¬Çâ™×C…Ÿøv_ÑyÂÎE»El´ÏÊ•––11½i%Wèð{!öñÁ\ƒï3wo°>¸ýGÇØ½ ÷&Ü›L ¦Ó°~ñ…/|™fšfšf¸~àúë½¹L¼ÎaÃ:­­­¿4¿4¿4Ôöw}}ZôiѧEOž>yúäé®G¹¡b ø„ýNnûº(¬lïñ¶Õ‚!''+Û«ÖNnƒìÂÌ¥ Wl0>²¶vž¢ÄAÞîÇÌ÷JÌUÌUÌÕ–fK³Å‘ _øÂ¾~äúêïÞäÊ ”øÇ‚råö£ws’ʲʲÊ2QQÑæ+ÌW˜÷fz§$¢$¢$’-’-’-B;D;D;„ ‹Š&¢‰èº­u[ë¶ÆþûGìê…ê…ê…=‹”ôÄôÄôÄ¥¥¥äää‰6¢hC™ûN[A[A[çÏ9žs˜YG*ãµßê¼öÕ‹šgæ—Q8êgŽLµ‚ Šþ0¼ð*¶U5Ò Õ”©{…?üýáï7ÝnºÝtk¼+ÚHÚHÚȲeeËÊ–èèè÷&~oúÞô½é׃_~=Ø&Û&Û&‹ ÷µª„ª„ª]>]>]>fÖ‘‹ ¾¨æë’ö‡MK‰,kãŸ÷2ݶ,w½ki“"ðvšá•§Š„âfúfffKs¦9Óœ±ÆužZäYçYçY‡ÊàÌ ~ÁCðèÔéÔéÔ1¿Žæøž“y&/yTWÎXïƒÞm%Ö¼Þn»núwÁÝ Ìôv²àdÁÉ‚iwÒî¤ÝÁ €NÜÜÜɲɲɲ,X>°ìÍ‘kû“íO¶?ñ9ïsÞç|ý“ú'õOPá¾–}/û^ö=¡SB§„N1³ŽŽY‹¸Í·|ï ÉxÂCn‹¬ÄOˆ{™n«ÏžÌ^³ù]Õº\±Jî!c‡på05#JVJVJ¦¡¡Á ë nß¼óþͼì²óû}èÛà>QûWí_µ¹}qûâöe]Öº¬u½zóÇóÖç­Ï[ÓåÓåÓå©k©k©kQa`QMDÑÔ°ªaUêïïoÝcºÇtõ,RÒø¨ñQãc¬v¬v¬vqq1‘B¤)(sï•j—j—j3³ÔOšRÞ®0N ­O×ü¥q/3w ˆPùR¥)m]`ŸÍ̲ä…ç…ç…cí3Bó¦yÓ¼+ì*ì*ìBbCbCb{ [[[[[[ø"ðE %³%³%þ Z‰V¢5ydòÈä‘̬…ÏKÍ–ë~ižé:Òò쯌{™i‹êíÜMŸ™¬PORÐýRèêêÖIÕIÕIaÀ¯‡g^¨ðO˜y†•†•†IdKdKdÿ{|glضàãã&­¿>îí¾]6DÿY ßìc‡Ýn13– oÞ6¼M\".—0 +êeêeêå á á á—ã^Ž{9®7G.Ùç²ÏeŸ»¶»¶»¶×XÔXÔX Â?AQGÔYûZûZû2³^×-kv«œwrèêØ_÷2ÓFÙí]J,~;5Žg@÷K!xNðœà¹Âã…Ç c°oèÛà_¤>»>»>ûãÊ+?®Ü¿#~G|o¦w÷Þxÿa’a’a’!¥˜RL)F…•5hÑ4"eSʦ”MF>}ìY¤¤Ÿ1þ‡•ÄJbeUsUsUsXnXnXno"a3y3y3ù´„´„´„æuÍëš×¡À?p‘H‚*A•ð(÷(÷(ï¾ÎÞ· ´Eš\G[žcµÐ—N[çálmQ(úÁÉ$™Q”ÿ<ÿyþsŒø•ãÌ g^½5:jts¢¼p¾¾õÊY–›b³ZôK' ž¬ôŸè¶'2»_®C‡,Y´\i¹Òrã¡=¤=¤=ÌŽÈŽÈŽP–R–R–êÍ‘kùŠå+–¯°—±—±—©|Pù ò*̼ö³ígÛÏʉˉˉw_ç+› òª\|røêxV }é´ßäŽÊJ…òîš²$™QŒñý g„¾]!þmš.4]hºt8èpÐáC=<ô°7Ó»kÞ×¼¯yÇž‰={¦]ª]ªwÉKköiöiöI÷O÷O÷7¯1¯1¯éM°^u ê@Õb 1…˜‚ ÿ‡áAx„\¹r¹ûJêKzÉ®7“ø¼ø»D¿ÿ_›P\díg­Ôý’ºÇºÇºÇÒi‚4A `IX–µÓj§ÕN‹Š‹Š‹ŠS±S±S±ëÙ–k¸Îpáºä=É{’÷4j5j5j¡Àdm[Û¶¶m5É4É4É쾞¥õö f¢lú2h©¢îvVDø|óÝz¯»_Ò”ƒ)SblÀ¯g^8óê———Žî+ÉŸ·;î¼÷r7“°¬ú2j (L³+óx¢O£%m=Ûz¶uUKUKU Æ0e ±†X“ϛϛϫ- - -À}˜û0÷áž¹:ßöúvÃÛ o7”(Q6&«W«W«W[’½${Éÿx^E‚ë¾K˳AèË mßn«4¡\²Rdîðî—Ôf·Ín›ÝÀÙ8/ôí 0 iqkqkq [¶0láéÂÓ…§ {saâœã9ÇsŽáåáåáå­{Z÷´îA…•µ®j]Õº*kXÖ°¬aï¾øn`o"á`»`»`»ŠAƒ*ÑTiª4Õ~ZÖçÄsâùG™2eÕJ)YÝ]3Æ$>‚–Å®¡/ÝÖ4(º>w§ªézFËn·Ûn·Ýnêêêlƒ=T@õüõüõüqqqZË´–i-ëÙ–«]¤]¤]ïïïSïWïWïGTUDU?¸·¸·¸k®Ð\¡¹‚áý¾“ ƒµy(aî|VŽìý’ÛïKíËÍVv?Zb‰X"[ ô9À8ó™×z·÷ÝÞw{»¯ØÂ÷Ϥ-BÙ7ô%·+¦™qG,ã»¶}ãÉÿñ€è²ïeß˾c€ö‰øD|*))1 3 3 ›¥4Ki–RÏŽ\ùùù¦™þeúWñÁâƒÅ‰l"›È­ÙS³§fÏ Õª3TUì²Ñ‚bþ-ÏÏJIbßè—Ü&Jí³\öè¼Ô@ÓPÓP› pÔžŸ£Cß®³´6÷6÷6÷èÐèÐèÐ+¯ ¼2°7&Ž>zøèá¡¡¡æ™Í3›g¢ÂÐUGKGKGKص°ka׌—/1^rMýšú5õI“6&‰ò‰ò‰òñ^á½Â{eÒ†I&màÈ?àråË5ŽZµ„‡ýãÚâÚâ4+5+5+U&YÙºÄp'…¾ä¶åš«’¥›éW‹ª ß%Ÿp<áxÞP}0μpæÅ<»gvÏìž1|¿ïâé[ùJÒÙêkÂIÑ/¹5¾¶OE’áà-2Z¤Ú®Ú®ÚÛôî"ÑAt”6—6—6[ñZñZñŠÞ½!z£gG®É“#&Gè>Ö}¬û¸àxÁñ‚ãÄ5âq³KØ Ú Ú :³jfÕÌ*F•yëµî¢˜ '…¾ä¶:áÔŸkNKOÿ“'€QÌö›í7ÛÍØWÿ }»BÌf(—)—)—G$ŽHq'ëNÖ¬Þ\˜Øº;tw¨ßt¿é~Ó>4|hø€ ÷4{š=ÍÞÓÜÓÜÓü`øÁðƒá£û˜p˜p˜p˜ÆbÅ‹s†ç ÏÞ³ž···çKæKæK:::ö&öæ3ÌgXqMqMq õOêŸÔ?9i-GdDdDd0¼Ï²Ôa¦×ksýD¯âÏý’Z½î7‚šÕäã¼ó>Î#(… `/њ››ÂSÃRÃRÃLLLz¸éº+¸+¸GŒ1¶ÚªÚªÚŠ8F#ŽqF•¨¾T_ª¯Å_YüŨy\ïåM„9;úýÏ£¡7¹{Xÿåä¯÷^s!£šdYgYgYc+ƒ¾€g^8óbFPfPf÷áN.“¸ µ|¹©É“°9œývmJ?ýË\˜QMæºÍu›ëÖº´uiëRlkðsUÜ«¸WqïƒèÑ¢KÇ,³tLOp1úÜèsªªª9Ór¦åL£Òir”¿F¹F¹¶jÕªU«V1*@@ööÈÅ»9;úýÏ£¡µÎ–ùçpÌ\ëgÕģţů3¶Ñ?Cß®³½Ž‚ނނ´Ñi£ÓF?½üôòÓ˽¹0±±dcÉÆ$$¤Ú²Ú²Ú2T˜3„T‡T‡ToäÚȵ‘k4ËÐ~¢ýDûIõÉê“Õ'{8þÿìø³ãÏoS¿Mý6Õý¼ûy÷󽉄Ý_¹¿rõmÞ·yßæu ëÖ1Œ×uöøìñÙã-£ÎK§¡>mý'ô¥Wxj}òdTŸx¯x¯x/ì1~–“-'[Nf f f ZM²šd5©7Ûïç>ÿóùŸÊã•Ç+ÓŠhE´"v¬‰O‚O‚O£e,LøPf:¨ÿD¿][š«ÇRë}.ýÇš ·ßòåË7bË‚Ÿ 0àÌ«{_c¾Æ|a´ŒS,;®X±Ùì]D}ÿ‰~»¶âž/µÞ aTŸãÚǵkD€í úNµ{µ{µ»s›s›sÛÚKk/­½Ô›ã×kÝ׺¯u3õ3õ3õ©áÔpj8;ÖäúëC®3Ü?‡Û¥³tHÿ‰~»¶Ôç¯Ê8ŸØ,º}æEFõI=—z.õ¶,`M}»BÌh#i#i#¿Ä~‰ý+ï#ï#ïÓ›‰T°T°T°Ó2§eN˪ « « QaÖ×¶¬mYÛ²w<ïxÞñŒf§‹OŸ.λw!ïB¯.ÌQ;¨ÔâÜâÜâ\ïjïjïêÞDJN_¾:}Íßœ¿9s{e{e{%KÞ‚j‚j‚Þõ;ðÃn·âþývmum]MôÕª$¶$¶/ý Z³[³[³³ÏdŸÉ>c;Ívší´Þl¿e”2J…&C“¡É°ò²§Õ¤Õ¤Õ0Z–œš÷SŒ¿÷Ïè÷?1ð!ÖKmhç©?fT«¶çmÏÛžck‚Ÿ0àÌ‹‘………qÆM7¼,ÜO„ß.Ø»œjêîÖ?£ßÿÜ <øÉj³¹ ªyÓì¦ÙMlMð+ÕÙÖÙÖÙz=òzäõhËÓ-O·<íÍñëñ’ÇK/I‰J‰J‰êïïgåe·eÿÊþ£eñÓÝV³(©F¿]ÛŽç‡Ë\ßb#@ð¶3ªU}s}s}3¶&`}AÜ?.L4Òi¹«sWç®VPP{fì™±gz6±[´{ÑîE»mÚµ=Z®S®S®ƒ ³ÄZN¥¥ÒR]J]J]J{¶f¯Š/|¯îZ¿ù€øÛ¬«‡.­ˆúÑ bÅõ!«-Ã[vÏ]zJ󮔔ȖåÓC'-øÑž\ˆ½{!¶BºBºBº÷•¡¦RS©©ß~øý¡ÿÿþ;z)Ù¶m7:G6G6G¶Í¡Í¡Í%ÖþjÚjÚjƒ:uÒy‹jŒÉLË/æ··¯@ôÛµÕb³Æ‰áGÚµÚµÚµ°où½Úç·ÏoŸŸû,÷Yî3{ž°'z³ýúêøêøê”Þ*½Uz‹ú’ú’ú’%.¾,­[Z·”á;n/Y˜!úíÚ¶{»[]Sy¨HS¼L®˜KKK ¶øYμ¹áqÃㆣž/Ûbp8(Ño×V¤òŠ˜â-FËœ58k0¶ ø]÷4îiÜãÿÑÿ£ÿÇ}›ömÚ·©7‘ð-í[Ú·´ãÝãÝãÝ)((Xa wî*ÜÅðã8×dÆÏ_†è·kÛtú̵icqe“+vBâ„Ä l;ð» ôeàþJ›Ð&´ ¯^+¼¦ÿ@ÿþƒ©nSݦºõlb7ÇrŽåK I I ÉÒ?Jÿ(ýƒh ˆ”ù×øêûÕ÷«¯¸º¸º¸:3ëkšèx×±,ËdÎw++=1oõú_3q Ëܲtæ±V‘ä™S™]–%–%–%´÷´÷´÷?íœ"M‘¦XÞTÞTÞ¬¬¬Ñ›HéÝŒw3ÞÍÈâÍâÍâm]ߺ¾õ7<¢££õÐìXlI~â^:-_¶oÊb_µ7Ò õ|õ|õ°‡a5”“”“”“÷ îÜs p p èÍöë5Ëk–׬¢È¢È¢ÈÓÓÓ_º0„aav×ì®Ù]rßÜþÒÏ׬'(îÖV}Émíp§x‹AŒÖlnVnVn¶è=À€3/²ÈøÈøÈx†¡õÅ…÷2jgmßxt'¹n‚³g ΦޡޡÞÁF¬ Ù¿Ù¿Ùÿ“ó'çOÎÇ'OìM$|ñýÅ÷ßGí‹Úµ¯M¼M¼Mü—.Ìjb5±z9ïrÞå¼ä¾:;{fÑ"wVV¡/¹Ík:òpÕ0†oJ¾p%à ¶ø5úþ(Àð*ˆ ¢¢dÉþ’ýfufufuB>B>B=|ˆÙtÛé¶Óm   ¾ñãÿÆOض„-Êüs™2=dzˆ™5r´HäâŒüô–ƒ3W `…écÃ’Ó¶kO™ȼœÿ„™þ¯´rÐÊA¥!¥!¥!}RJ‚‡à©ÚTµ©jS¨C¨C¨Co"%‹Q£,F¥'¥'¥'5jþÔü©ïÆ@}n}n}.£žüt,e%‚Þî[—‹¬! ß**\.\.Œ½ +ë¸Þq½ãzÑ–¢-E[<÷yîóÜ×›í×UÝUÝU½ ½ ½ ¢CÑ¡ôá½V™´LZ&á=èsÝT­v èí¾Í¸úÎÓè*£Rb(1”l#Ѐg^]QvPvPv0êÉÜaç—=CÄÛ}»<Ù”?|àèã\#¸ö’khÝdÝdÝ„MXSë×Ö¯­_#E‹yçä“w>{|öøìÑ2½ezËô¾ë¹ë×®õ¤qË™‘k­ôvß:)l»0—Q [T[T[T±@_@èÛ€á(k-k-kµ™a3Ãf†ø=ñ{â÷z6±nü¹ñç4§jNÕœš÷gÞŸyã‰ñÄxTøG5ª7ª7ªï¾¼ûòîËÝ×ü€ÞœëÓóK¤­’båId[É9>ébk»uCÄä˜K¡š¡š¡š}^hyBž¯yZó´æi¤M¤M¤R‡R‡RGÏ"%£,£,£¬”)'RN4q7q7qÿ¬n:orÞ伉ÎOÙ½ô¸„p—ùVï€{dðY:ëŽfD3¢1D ‰mPPP”ÐJh%´ñã?Æ÷&vÈpÈpÈÈš74oh»\»\»\ï{ØL2ú‹ß†| ™ŽF¸ËT[ááhmþÎW{·úlr%£F=Œzˆ-z0àÌ«+ËËËò_œxWðŒ¨àÊߢÓñ2ÓJLxõÙFƒá[ ê ê °Eëk÷l÷l÷Œ‹ˆ‹ˆ‹¸9äæ›Cz ï§î§î§ÄÄÄ4†7†7†÷¾‡-j-j-jŒþbXÒ® ¥3î2ÕfÊ”]±Ñ¿„w;¹’Z/´^h½À? Bߟ0ü°ª]U»ªv9wî8|eíÊÚ•µ½™Þ) ( ( deeÑ–Ñ–Ñ–¡ÂŒ;;;Mh˜Ð0¡¡ûªF%ïY.9”'” ‹NÛ¬=y=Cü¾€`÷ËhåoåoåÿKW@‘D$թששÇ>Œ}ûPC_C_C¿g‘’îsÝçºÏâââ66llØH4ÍDól‰¼U¼U¼ ûü..¸ ±î´ûêŠÂƒTöªÞ ׳ðuáëÂר ±/?ŸÆ_¦R¦R¦83pfàÌÞD¶T[ª-5»!»!»¡§§çGû///IþÍŽ‰z;4¨ˆu´­;å¼Åb'£õÕjØjØjˆ­z0àÌ«Só½æ{Í éEuJ&N“ëþh;søú€³ÉõT™¨2Qe"Æ?°£Žuë:Ö%—%—%—=ôyèóЧ7G®m+¶­Ø¶ÂÛÈÛÈÛ¨ž¿ž¿žÿGûc2Ìd˜ Ǭ›S?‚X÷GÛÂ÷G­zÇh}Õͪ›U7 [ô Bß¾€~‚Ú³µgkϺ;º;º;n˜¹a憙½™Þ=+}Vú¬4­<­<­œ:™:™:ÎÈÈè¾nw—,z x¬-ñÜé|ΘV†úìÚ»¤ û¥VÕRÕRÕúm+¦•h%Z5x³ã@ÇŽŒ~O]ós‹›t{ÖšÔëÒÙGMŠš5 cz0àÌ«“å Ë–/È¿au½ÖþZD¹=k%WéñSf´v2221æ€ÝQµ©ÚTíŒÐŒÐŒÐW3_Í|Õ«#—Ì"™E2‹\g¹ÎrU³¢fEÍ †lì[í[íýžo¡GKV#ÐíYû¤~é!¡©äªjkkcÌ@Ïx9y9y9!ôý¹CŸhXа aï0ßa¾ÃvØ5b׈ÞLïî¸wâÞ‰ÄÆÄÆÄFŠŃâÑ*™SŸSŸSß}}<þÚ2Mb §N++WŸµ:qÉÃi¼< U@9W9W9—uÖZ“L“L“LJ@J@J€ñiãÓÆ§{))U:«t6reäÊÈ•5²5²5²Äcâ1ñ¸¡¼¡¼¡œÑO™/KÐ+Ú†(·‡­ab`q¼²Ö~]q:ï®(¯(¯`›ýðɆ“ 'ó?æÌÿøeÿ—ý_ö§ÝO»Ÿv?Í+Í+Í+믬¿²þ*((h½Øz±õ"Ž\Äfb3±¹zUõªêUáÇÇïM$lškškš›v<íxÚñf®f®f®Î?’––Fþ~oUà í…q{Ó6»º®µ”g´F:‚:‚:‚0ÌáG!œyu”w”w”3úþ¥«5¿{¿B”Û›–?`÷™óóé<ñHÃJÃJƒ]ÆaÛð¶ámÃÖ‡-[î9Ás‚ç{U{U{U;^;^;^———Ž Þ Þ Þ¯ü_ù¿òcËèÏh4šÁ×ý_÷ݯ"«"«"Û›#—d™d™d™Ý»3vg*GVެÙùW\¹.r]Dþþ+Ï.ã?‹·7mÕö“·Ö0œo´Ýo»ßvã~u'u'u'Bߟ 0ü"M>M>M>ÁSƒ§O=ìvØí°[o¦wWu¯ê^ÕñŽñŽñnÿ«ý¯ö¿8¯bßß}÷ý]÷uH¾½ÿÖ²Žþ0¹l/<÷Bfêé›óÍšÁ¨ÆÑÆÑÆÑ¬¹6›+›+›+3„2„2„,ô,ô,ôzõøÙZÛZ[:÷þêÕxš} EˆÛûÖP7 ,î¹Âžã=Ç{²Ä›ËÛüÛüÛüsäÈðQå£ÊG5}5}5}…ŸD[W[W[7pdàÈÀ‘Ï ž<ïhîhîhîw‡.{ž°¯=U{ªöTôÆèÑUO¨žP=ѳªhÌИ¡1ƒü¯µ¶ÎC,f#Äí}û1Õè“¶7¹Â9m9m9m˜ÁB 8ó:pêÀ©§ÈÿÚ)©c[ ¾í}»´@;ßw$Ò'ŒN@«¡ÕÐj~sTs†v†v&ê\Ô¹¨s¯¶¾ÚújëüóGÌïÕG ºâêàêàê’’òØæ±Íc[å´Êi•Ó°-ô#{‰½ÄÞüwùïòßéÌÔ™©3“'–'–'¶g{•ù»æïš¿kÚŽi;¦í ÿkÈ‘šUÛâö¾½É%^-p•\a¿~ü>`P@Ït½¡oï!†ß¦¥¥¥¥¥%¬2¬2¬ò쨳£ÎŽêÍIãÙg_œ}¾0|aøÂV®V®V.6®Œb‹b‹â áÂ3„-oNÝa¿•:ýmrI+“(;ä·Äv;F•ñóòóòóbýµÜzµõjëÕ¬Y7²n¼{÷îÝ»w½íÌnÇÍ)˜øö'´ë‚‹Þ0ª3åååÔ¯-”»”»”»)))üað‡Âob®k®k®ûeì—±_ÆÒîÒîÒîö»CW QB”ÔŸ®?]:ž+ž+žK«J«J«ª7Uµ˜¦¹ZµÁíÏj«cö›û“ëüvüÛñoÇcö? 0àÌ‹‰otÞ—!¾ýY-ßdÿ ×9S*S*Sê——t"H÷ËðËðËØòç–?·ü9ú7™¶{Úîi»}}}«½ª½ª½°-ô#qDWäPäPä`ìcìcìÃWÇWÇW×›½Êªë3<&…"¸ýYmέÃ*+ï‘ë¼î̺3ëÎ`°ÀÀBÚjÚjÚjbnÅÜŠ¹uUàªÀUÞLìŽÌ>2ûÈìàóÁçƒÏ7¥7¥7¥³C ˆ6¢íTû©öSí £_þÃWWöï‡ÕŒ‘ã’}a—˜#ßmFUÊ_œ¿81›ÿø¶ø¶øƒƒ; ; ;xðËŽçÜþÜVg“ãAŸ‰äjÌ(˜Q0£¯ÇCÕ—ª/U_Ü·¹osߦÀÂü^ú½ô{Y×V×V×_ï­¤4‚Ö¸¦qMãš$Ï$Ï$Oƒ}û ö1_ïN¶ïŒ-Üþ´¶ÎÃÙÚBS^ù«’6¹Ú­Í­Í­Í˜qóμYA³ÈˆŽ@pû³Ú…žÜ3»A®óËø—ñ/ãûzä#×VbÑ*·?­ý&wLVjæŒ ÑãøÉծ˩˩ËÁ°ø½K£XP,(‰‰‰w›ï6ßmîÍéâ.ù]ò»ä}÷úîõÝÛ°«aWÃ.V[^{E{E{EFý‹Øë%Y…)fgÛñê<¯ÌcYG¾³SΑkÅÏÅÏÅÏEYAYAYÁÆã8e8ex¾Q¾Q¾‘ó~çýÎûHFbAI uˆlnk²9\.óAñâ9¤/ÖxͬšY5³ìdìdìdzÇê<7Ý¥òÆú…÷IÍ7Ž#éÄ»ßIáÖËð )xjhRQaüoûñdÎ ƒ$·öäÕzNÊãt­$=…4y´ŽZ*'öì¯{Lõ˜ê1µA³A³Aǯ&jµ‰š&‘&‘&ajjjjjʨníÂn*VÛÜþÜ6^Óê²Á%rµsÛsÛsÛ1>y€g^d‚y‡&_ËDdûsÛ嵦/Ã2ª9¡N¨ê?wWëTëTë<y ò@¤‡wèξ=~’Ô¦Ó«§óí]¯d-xïT›•ÒÜ¡—cÜæm}ñ"#cÑ¢Îö¡HÌß CÏæÛ‰üqh“öI!¾õOnhÎÌ›ã)µ“g]ÏþúÊ´•i+ÓR S S ±ýôgÅÅÅv£ìFÙ’<'yNò£ýFãú3ÿ¬µÀõ´ŸÛšøH_Ÿ—I®v€c€c€#Æ'Àï…Ø u8u8uxšSšSšÓ³§Ïž>{Ú›Hxƒùó æî4wš;­V©V©Véw-W‰F‰F‰£~ÚsoˆY8ÓJr[·ñTÍšFuS6S6S6ã¤ñ¯ëªëªëJçáÏñ\…Ùþäöz¢T±0£ÐŽXC¬!Öô~¶ËµËµË¨¨¨2µj•i(Ó"Fê(øÒòE v wVû1=wŽA‹Ýúςڑêkt)…3ßÃùùyêßÔ¿©ãÈÕ6ªmTÛ(r•,}5¿¨I!¬í‹¶¶Ù™ßB’\sïõÞë½ñæø€¡?{Úñ´ãiy+X¤ªxÚA‘m_´SÇ-_¹a¹æ“+&WLþ gÓTªƒ¥˜¥˜¥ógÍã«&m3hkÆc>ê5Qï/ó'½ØqsѬ®oïÛ»¼Ÿ\8¼Gw¡Ð£9¹R†<{˜ïáÿ3þgü«Ò«Ò«Ò±åôgõ\õ\õ\ä½Äû™ß'?Å5´¾h b ¯ºI®ùå¦ËM—›0&~/ÀÀöhóhóhó²NdÈ:¡¢¢Ò»7‚¬º¾êºã1ÇcŽÇªT=¨zðk–bûºíë¶Óùìó™]ógíÆ„²û6iïþaËü>4{_ξœ}ì>Î)*Š 9ÌP1ÕÝf8 amßµVì6+ß4¹irS¯.Ö––2©~X²]ûJÀ±¢mFü}÷2Óú½-Øl¨i3Ê/Ië83}Vº¢tEéJùŸå–ÿÙŸS%ÓJ¦•L#×'AÛ*ÎÀam_´´<Ö'~€£ˆ("Š0ƒf †þL@T@T@”ÎßÅÌvFÈ#¬í‹VTûÚrnr̓ĂĂÄz³6ó§æOÍŸ:ÿàüƒó2s^¼¶àÂË{oþé-öÏÏ z™oËÄ»‹ßÝwFEW0ƒù3zÏÍž›=7cûèŸb‡Ä‰BÞ3˜É,˜¿WÏú¢¥œ×’ùÌð ÑD4‘ ð» NôññOn|n|n¼F€F€FÀ¸/㾌ûÒ³HXœ"N§ØÜ·¹os¿œ¯œ¯œïçv6ì|Øù°óŒþz½Åé+kWcBÉL«*|Tøè‡W¤aAX|~óùÍç7̨N1Òºû~WÜû?Z« OcMû7a[u0³,ñçãÏǟ˜‚˜‚˜rM*68þcVËjÑiáÃÑ&u®ŸôÃ5¿éÚ¨žT~¡œ¨¨(«ÿFm¬r½½îçÙ•¶GŒo£<Y_fåøÃR3õ:ÝÖ>¬}¦KÀ ÀÐ?µ‰¶‰¶Ñ‰~¹e…êÅ®³ftº¢ÀâqôιŽÖ¼:9ÙVÜp•èØç“ʦŽàz9Îr|ã]>SaÍYã6ÿqäÈbe•.j¬¹K¨iº/"Wþõ¾×û^÷ð#­.Ü.Ü.ÜÌœùn5z¼Œ¯ìÙÑÔÉOWèÛ}{j¡åü9áã4'Vqit¿,W^_y}åuû÷öïíß±Eôú;õwêï$ïÒϨ\žÏjW±B}ví]Rp2G´xf˜ðyžü ƒ&ØŒyÅ¥*:w²ì„ܽVÂû¦ôVÙzE¢”Æ{ÞKæ +_‘ÛñqöË©%t»=¤qHãŒL€ß0ôV„aUØPØPØ`pÝàºÁõé¼Óy§óö,^%¼Jx•ùfóÍæ›KÞ”¼)yCTÕDõvЦJS¥©N]1uÅÔä¿òñó¶5‹Î#Öe¾m387D:•ÑZ‹=4z(ûáì›Ù7³o’c Ãø@£øc¬ššŒÍÌS[ntÚÜù;\õOzÕa¹7s…9g¼&÷6F!F!Fá.¤¦·¥·¥¿=óöÌÛ3ÿãN_ñuÚ—‚MËêŒ%Y4ú%µA»JÝbߦ|´×lî~éÜ.»]v»LEEÕANëœÖ9­#W£-Êí¼•$KÄ¥£<Y_ö›a¼BçOæ·Yû…º5ζgºÅZÝcÍ8ºÑr¢¾¹çUõUõUõ˜3CÿT¼¦xMñòøÜS}a«…¦Ë< ­CM¾/>dåuæÏéD>_vVˆc¹7g›® "÷Væ¼Ìy™ø íííØß'¾O|ÿǰxO.˜ôÀ$zÄBÖ }ÉísjzÍ¢¿ÜÔ˜3ûM÷K'ôRè¥ÐËòûå÷Ëïc»èåÊ?”OÞ4¼9ºö+\¹êŒro;I” þÅü1k«mZLÓ»3jkkXóŠœîÝÕ¢âäžgdd`dü.€¡¿ª#ꈺ’ä’ä’dó<ó<ó¼9“æLš3©g‘ð´åÓ–O[®ÿEÿ‹þ—B«B«B+Â0$ »ïBPAPAPù·-–œjÃ]F8Èm”]ˆX÷GÛÀÁÛ3%WUBXBXB˜h ˆv°bbbäÃ$=’;Ë’ÕBSõ fcßú·‹ÅŠvŠ„öâwC1—˜£;Áï“þÒê\íwIi¿ÚBõìÿ,‘høð …Ù;cóß’+ïnìnìnÌ̺kß4¾i¼Ú µAjƒiÚÓŒªTFûñæŸ4<Í.¡/£Öçqv²Á+•¥juŠŸ-¯YšYšYZ»@»@»@8àhÄiÄiÄÑyñqûÖOY!(ýdaö§®×¿–_§X¡x2x½)¿®hNìûQÆ¥sìߘ Hüv¬áUËTÍoj2t–…%à|ó“Lè|€#//S!``èŸbfÆÌŒ™IÿóŽÞRßÍj¡)oʲëÿü·‹QcŒÈu×¥³5b'ïóè¿YXñ|¢eªÐòcrwÎŒužüpjÔμ+×:'±Ð-³Ô‹ `ø M&P¼)ÞïCÕ‡ªUw+—å+Bc—ЗQ{ß(rÓ• ¸7Ý›|¾ûåÍIËIËIÃÖ ÀÙ¦;Lw˜î@ÞЂÎ×ËÐXášÕ+ÿe/…/wöj¢þ˜\®Ïφ.ý$tØoÛ¶´E!ñ3öf,øÎ~]¸XΚ¼™“•é XñZ\pÇŽú%tÞa80p`à@ŒL€ß0À”_(¿P~ÁvˆíÛ!III=‹„Ç6ŒmÛ 1UcªÆÔÜ»¹wsïÒ¨4*íÿA\OÔõóöÌÛ3oùgîÛ¼l=¢Ü¶[åe§ ­á¹1žÎÛ ÓÓÓÙqdzðzðzðÒ ÒnÆñ²N\jPé—ýAW¼âIEKÃã«c­:ÿµówýþÎÿÓùPè®ËÅB‘öŽ„¯EväÊ›šššššv¿Ö7oüïʵ‘÷·ÔR9]±Áø»G¿]Ûà+efÆÂ-n­ŽŒ–]7[7[7»M½M½M³,t–ýê 嬑Ör9%Zü¥X«8B!KÕY隢{E–ãjs.FßßÙ?Cã :SY?®òul0BîgâéÄÓ‰§1çf †þÉå”Ë)—St>R9ü••ÍYÖ‰KçgÜ=¥»ýßÎs…‘ z°Ò€èü×ÎÿÝõû;ÿOçC¡».«EÚ<ñ¢a‹í~4n¿Ô~©ýÒæ“›On>ÉðõFaÛgMÙüˆˆ_*~œÝ£_r»W@éœàåîÏӳŲŲŰôŸ™›ðžÜ ²ÂÕªüGž®úgÌ7.ÞÑî“.Œ­s.Cñàþ3}gÿï˜/Z-¸œõcàì-‡‚VtûiqÊâ”Å)ŒL€ß0ÀÿPåWåWåçXêXêX*%%%%%5ºxxx}Ý}Ý}Ýé\R‰Ÿ:•[Ÿh–;#+(·WŸ=\±Ã~q.¹Â§BO…ž eÇqøöÅÛo鼉Ö\,á^‘ ÝûÛdn£ÖÙ7 9K±÷'™ t».‘j¤A›i( ÀƉ¡ÅiäÊ+ç+ç+ç3Z_-·[n·Üî>úu©ŒwÖ%8)ôeÔ:Ì?¤s–QŒF6M)¦SŠ9õ8B^ê÷Gu¶ª‡°Ä½¿³MÓu;{Vj¾Tï63Q.ÕÖ=Ýzrç[;¿ßëºá ­V €›¸\>XÎ&×ÿsÓç¦ÏM˜áô^ñ‘â#ÅG¢¢¢yyyÔMÔMÔM˜¸¢±¢±¢±§§gèÇСóWå¯Ê_ÅÊ—C`øÚðµákòø_²[­Ã=˜u‚Ò©å+ó6_ù÷™LI«}·ó2èv]¢Išbs%?³Z<ÝDzé®=ÌÀÔkÔkÔk{‡ì²w£óÐÍwï?ã[Ày¡/¹•[nÿQ$ªû³òBÏBÏBOl震¼½o ˜?õ+\§z»LHøß·¼+ïZÑ<§Œ™(—²éÜ™EoîüþK² Îò•°ÚU¸òá'–¯ÞN®¿¼œ¼œ¼FfïE¿ˆ~ýBw®î\ݹžx~àùÔuS×M]Çüé1KÇ,³t³Ãf‡Í Á˃—/Gm8`€VVVæñÌã™Ç³rå6ÊþI‚Fì\l„ø¶÷mGÛù 2úŒêÜÙÙÉ^£ÎhŒÑ£1tàû‰û‹7²N\ª\¨=XoÜ¿ï'îrïïÿxÌòøZžƒÉ­ð¢/ãL#ÿÊRfµ‡Z+¶ªQÛGï~Çÿ_‡o‡o‡¯á6Ãm†ÛžÎéúºý!úíÚº^JPÓbø6Ùö3ìgR„!ÅyG :1ج%Á ©ãX½á)½*|ø!Ú¤ŽùŸíºDÆêV*E¬·z¹ýiÙA®¿ßs¿ç~Ï1Ÿù™o-o-oÔΨQ;5ßi¾Ó|§ð ž<x¾ìYÙ³²g¬p0ôŠ_¿*~%ÉÁ:;|-X'(ð™Þœ-}ëzïïÿxg°°~Uкťª6nC–Xª×x´±ZÌ÷j»Â)qæàÛÕ·«o3|àó¾|ÕK³ÿèÑo×öº‘ï®ùÚÝŸ}×FÖFÖFb{à$ä-ýŒç¼¦YXá:Õ[sNO×Ù«PŸ]{—0ÿ³]—hÑÛ©W¸#Xí*\ÝÑSÍkZÉõ¿sõÎÕ;W12™—ϓϓϣ5OkžÖ¼™Gf™ydô/ôHæ‘Ì#™ä¤ä¤ä$¬ ΀à'hPhPhPðMñMñMÙ½i÷¦Ý›zv mW;wRf8âÛŸÕj‘jñ#×Ù;Û;Û;›½Æ˜n®n®n.X9Q«X—%‚Ò ÍE±ÿy›¯UÄí/‰¬åö¬UªÒªµ„™ØÃÍÃÍÃQŒáu¡ B„.à¼cyI½·¦hó³BDj,£~G%²÷V†Ê~¥²ÿÈþ#ûm8m8m8¶zÎ@ÞÒ/ ‡óo`…+TîSÇqkö>¢ãû<1l\«=º¡øtéZ%ro¯ª]U»ª†‘ÉH‹v‹v‹¶c–c–cÖ,ŸY>³|F³ítítíô*«*«*+¬/v„ O4nÜ<88/8/8ïHé‘Ò#¥ÝPo¥Kè ¤!²ý¹mÑñcÓ¥†’«½;ewÊîöQÛ ¶l§¿L¼W|‹"R“ï‘Û²Êþó~â’xå €o¨½Ñí>N›˜61m"£¸Â=,ÅR¯¾?G¿]['ÓhG]IFµ*à*à*àâ¤#»À¥ ¹´Y!"U Rš¨ø¸÷\×ßÃBð1·ÕV3ɽõè;Ñw"æ*]uLè˜Ð1!vjìÔØ©½zæÚÊʾ&Z¶«W¸»ÙIkíò~ïxD{©çmû·Z¾÷ßšk¸'é«|ïýßò›î7Ýoz£}£}£ý¯¹ŒˆúùUò«äWÑ €÷ènö+b…ˆtI‚ÆsOÏ®}[c::¬”3`~éÅgWw§H>€ÑÙåö5ϦóßéÏÑo×öêÏüy¾Œj¥š®š®šŽ­€3·q¹±|‡Xá ·ÂØÅ\í½äºþÖ¹þVïrúÖZirooÞ4¼iˆ‘ÙU+_+_+Ÿ~¬~¬~lïÇÃÜÃân︽VrjúÙ]E³l®xœÊ󦽸nî—Z¯<ýØ¢XÑc܉½ÿ[·n;Üv([U¶ªlÖ#»@ ð«ðËZ—µ.».}]ú:)QlÐÞ]’nˆlrë"·YV|ÌíÑ£èÜoý¥ýKûv?–"–"–"tàí _ŠlX!"5‹_[hصo¦"QB_rD\Ä(xè\;uFuFuFŒ¾Çatø*ã}Éí;ßj-qFuk]Õºª•CN*èŒ ]ݯ^¬‘ÜQ»¤ÂßÙ«/:6ÏŒ*«|ÌŸô¬eµ¸ùµëBK:ñvÈÖ­![13!(… ¤W§W§WÿhìjýÈÔPÍ&Ñ;¸Î ¬úVæ<ó÷Q\lmÝ›¶õD^eYFE¸¶‘²S«–æêíU˜o˜o˜oÇžŽ={°zzCç­Î[·tÞLhr{Ýc…ˆt¹©É“°9]û¶ô Öbïr΀gÎÜ0øÀkFp›C›C›ÃØ!c‡Œ¥óÆßeYM}òâiFÒ" D¿]Û“·Ì çÈ3º¨d›d›d‹m€ÝÑy½9M¿Ä W¨æœÜ>qcg¯Ü26;‰gdo9´‚Ò³–ÕàÊ–“»V·‘ëÿb‹ /&`d-D ÑâøÊñ•ã«]eH^œ²ÉrØó'ó“¾~vYºr;AÄÄÈÊö¦­õJY“äüB%I|‘µ›ïÎxþ£½RjQjQjiµjµjÅÁ, 0À/%.$.$.D>p¶ 9;Fz"Û¾hŸ-õÚM®yΆœ 9Øeä8k:k:k’/v›ùÅ-ÜÂ:qi×¾ Z‘°€™Ÿ2N ýžþJWÂe±_´îi—Hÿ7æ ‰òÅò,±\·×K+opÂà„Á "’ˆ$"-÷ZóXcÓ qêOô2lwUÌ1¾£ãfú^E\=íÛ=¶sÆžŸ¼t&¼êá*m¬‘~ˆÑIÓø÷½Ý_¿ÚzÛ±Ú{|{ÓÖpª°˜@®ì—Ø/±_úól¤&¥&¥&آ˘‹™`ÕJÑ$[íjîð˜ÃÆ5½z´-!’™¶¸øðIK”ù0ø›à7Áo‚˜yô̇êÕè¼Sv‘„Âfûi¬”víÛÂAO–› 0óS‹¬mò„.£Ü!qbÚ=£•£-GÅŒbåš2{ÑüÕËÀЙЙЙä?–;Ëÿ -É]âoĽŒÚ gnñÏšK®ÞÄ—_N|I‘§ÈSä±`_ä­{ñ™©žÜ ¬pmjgîìºi³;{õñò¶™‹vsÒ•·|Í#ž«èì] e e eúó˜Ì{•÷*ï•ÄF‰™ V¥7-©žœã— w}QnïƒÞmã¢ß¾¬>s{gþ¬ĊÁá£ÃG‡Æþ€5!øEÚÕÚÕÚÕȇÉù{¦Œ›xÕ¦nßï·•j’W_®1gô>-a×éKäó™X=QL.×gáó<ùI‡ÌržÜª>aÕ‘¹Ÿ«§ž Y³œ5§¡¡»v.É#WÞñ®ã]Ç»ì2~BšBšBšèDŒç¢ò¾V³f¬yþí69f~J³ÁæO'“$¥›mÀ:KdæWU8‡\yÇŽd·f·f·2Š‚Æ–®5òBÐÛ}ë¿£ð¾a £–Þ)½Sz‡Ý÷ÿŠë×+®§sy–‡µñïH×è\û7t×2HÔzÃÌOux»?±*6SÕpP•×µQ=©ü"ü˜ùY= V €‹ÿ¶ó7}M®|öâìÅÙ‹ûÝD„FÐZŠ\Š\Š3êÇ çÚ ’Ùå¿>ôeÔvœý6Þ*9z²_„>SKx1ðbàEª5Õšj¹(óByByByÈóg1é{¾úÃY3ž‘°~ÀþELÝ_[²éÊaˤ©-\´ÀŽÕî­2™Îã Ž+8ÆèòëµYÞáó' âí¾}æšj/a<‰o†íØKäšššàÃClŒK‹K‹K‹Îh<å¶ÈJüÞkS÷o,Þ*øïµ©ó/Äþàû‡™Ÿj“;Û$µ|Ãt…I#;¯Å©¬]¹}îtV»ò•µGJòor彦yMóšÖï"• T››67mn2 Þ”:â p¿ä ·¯ÔÃ_ú2j[ÃÂù¤ßj¾;Y$™™¥x´ñÑÆG)k(k(k°/`€~‘’§%OKž’O?.}+´‘u&m!Å;7,Y9UdüޱR?úoaGKV³Ú4´bÜ óÕ*t&X©7So¦²ËøIOO§ó°\£ÄÐäÛ¬—êOñšóùÁ¿+V´S$ +ãS¾9xbا 3EyeõÎÒ:g{Ååú¿¸f…w‰œžå@®üçÏ!ŸC¾ñ—7ù±ž/Â]æ[GÁÈ™:äJêÒ¥?а"¬6~¬Í›56kÈK×ñ—ûr+ÿß‘~×rn¶³³?еŠ#²²+mßú±q­É:›®ËÒù{X-Nj·v1\@®|ùúòõåëûÑõeª2UÙó’ç%ÏKÝÇ¥.A¶MšïÆgÇYx²Nè˨mW cµ)l¤wšÞÚî—ËÀ×À×À·ivÓì¦Ù˜‘0#·"·"·‚<9¶äŽë¥"K.¶¾Ñÿ·sQcŒ¸ í±éFß¿XTù¨óø1#'ìçþ÷™L³â¶n8¾­ó¿Ya‰V<1_@®¼¸€¸€¸ÀÞ̽™{éÜû»éÀ]ÕY)wà­ÀS=ió‚ÕÖêÖêÖêb?ÀŽ6…m ÛFÞ®[Ÿ½.}ÿ÷^›JlØW´ì]gÆ|ãâíî­²õŠDi÷?õp÷’³7w]–ÎßÃjWÞ¬µdib§É•O=™z2õdÿ”1”1”1–^Xzai÷WP§n[=s{ÉhïgRX'ôeÔ6ò~zºV_Ñüê\Æ/Sø÷6'½ùzóõÊ%Ë%Ë%±G`€~‘èíÑÛ£·“îž[þÆ Óµ¦wgÔÖÖÝãy3>®³oï¸ïÖ,“º r6ìÃ.—¥Ü©Þ6-ܸ£fÉÐgm’S„´;ï þï£ÉXkÚ±ôü:Ÿï^œ¾8}q:»ŒŸ2µ2µ25òEm½íîŽÁkY蹚‹bÉýÔÞj·Öc’á$ÿs1 F~!/’§ëfº- <¨dª>B£±ó{”„T­Ô§±Ú›ƒ —û'ÇŽ!/Q@A@A@˜AÜ:X5î·*ßSãÓ’U:G®jÁ¡‚C‡Øwÿº$tIèòrÕnq*±Ë A)¹ožPµ,S/¿50 î w³:l¯p˜¥ë¦aòŸÈð þjMMV{ûogëže ªu˜¼t-Z´èsVVVããã–î#Ò¢ôD{Óû¬ú2jk ¿äXð›i†¨þ{‚«DªDªD0/è^#¥‘ÒH!ÏŸ§Ø.^»ŠuàîæQzä~ò›î¢s¿'¯%~÷EüÛ¿…Oµ?Ú0N’Wlú¿»sÒ^Þí¬öæà¥9Ú)©ä%:=èô Óƒ]l}›tD¼ ±î¶«ÎM¿L®§BªBªB*öìH¾V¾V¾–¼]ç?8â°J®P‘û&wSìßš÷OÖ§,xÞîzÚmñ“xØù4¾ÿD†‹dΜɚWÞÎqÍ¿3ˇ¼tÕ–Õ–Õ–ýaìÕ¨;Pw`1÷bîÅÜÝG¤Q7,§,m`ýЗQ[0ÖÝpՆ廸Nú· e-ÈZµû%€ß 0À/â0Ãa†Ã òá0åÜþøå YaºÖëvöŠ«~ôçÑ3t[±ŸQ¸K^–YÉ/“gÍAOü6¦+•Ñ›´Øà"¾w«w«7ùB¶útÓ9ÖóY(îò è·93óˆNÅ8•gªï üd¢Ç°Î½¿­ö¸ªîó˜ëäÇ Ü? jèö¬õhIóÐßO'V¿dpÉàÑL4Íì¸ÿϋȋȋ /W¦šÍ4#VJ;éì|A¯Lóó£Ý¶Rg–ºm‡”û«(– €s<Þ[3ê9!Lœ=ëh>Û|¶ù¬êvÕíªÛÕÁ󸽎–'ehá «—ìýþ§ÝU|ÌúQ¬AÀGý¶îGoÙ¨²Qe£0;`(–ˆ%b]Î[Qdñ:ú0«=ºóaÎÌ<µhŒ!÷ÈIÇæ?¼³J;“uîýílÅü,4¨#÷yÍkþXóùÿ«÷TÈQnÏÚûŸ"5nb4N¥¥¥±3`/Aƒ6ÑyÓªKä¦2ñã¬pmªó‘ÎG…Døgx2ÿ¼½m“•¦nm½wÖXZ›å`?¹í²‹õœ¶›¶›¶›³G]¥O¥O¥ÃyÈ…é{øäšÿúL“̾Ño×–f Ójðùá`цîGoRURURöN¿ `€_D£Q£Q£‘| ,v=f&µ‡&m‘w,õ»^!þ\`®Â³åesd™™V’CbÖü4¢ôðY''°oLäyD£ Ùæ"ŠÔY3Ö v-èPu5p1=§HQåR;­è©²Xu£ê }c-­%6_=MoFÌ™Ìjý77KŒ+.P| üHå3a˜‘žm‘š*BÜ^µ¾¹Æ†õö*‹’+\9¤rHåvÜÿ7 iÒ4„Îãv‡êÏÒ|ÂjwÍvÞéë8Vo¸FŠöV•WJíÊûµçT«¨HÙ/Ô=¨q¶ó{ºÞ=ÌjKѬãºÄò¹æv)v)v)œ=ßhåjåjåRy¤òHå£ýU²À§Ñ†Ë9$ôeÐ=IúÝ«¦Ì+¨Žø¶÷íÝ•¡" n“+<Ñr¢åDKBž'ä±7`B„!ÄhÏI±>%³‘5¯¼1º’ÆšWغ¶Y[.Kl&W{­ÙZ³µfŸ$?I~’lVkVkVã¤ÖêÕêÕê5Owžî<]Fã-ø¦Ñ˜Ååœývmó¹ÜWê~öò-þ[ü·xì¨~%À¿Èu§ëN×È¿™Ókϲæ4®öS·Ö|»cùbc‹¿dæë?¸ô¼Àþ—s†O¿:mêxû±wÔYmY.f.XÉÇîpÑ©¢SE§è¼a·Ña£—+ÀìØêÏôZþY“™{U’ÔÛ›CÜ*õØ+jý8à«K×ea…^{”O4^ͨÚîîîìxذ5`+y‰J3ìÃÍf³r˜ÊŽí»(íês˜Ù~íÍìÍìÍr׿®Í]Û>±}bûD¶œd¤iDš‹›‹›‹£%-ž’XhªØ¢ß®mCô×C¹Œ*£üPù¡òÃö€ö€öÌWºªN¬N¬N¤Œ äo˜»‘•`vl5(Y;ñ1?¤Ä^ÆŽëõ7Ì?ÞuYX¡W¢Òº“&’뜓•“•“…½{y0âÁˆ#È[t£}û—mgå0•ÛÉüu¼û˜úè’Â^…½ þ+ýWú¯lœÑ8£q[/{ž°?îwÜï¸÷ü–Ê’cûOôÛµ-}èc"åϨ2ã©ã©ã©Mך®5]Þ à×@ ð‹\týÑõGtàݧ]×ʱÎÔ-~ÆÞŒe·ü6õõ˜o\¼£Ý¶&ñžàæ;Q)ª2SõàKÃìàËd÷¸cuÇê†Á˜¹l‚oÑc·?¡5MŒ*þª”¦î«™ÊT€TV©³ïµe͸³µþêó‡æ[:!ÖËâ—Å/Ùñ(ð=ì{Ø÷0òy8dk©"²ýiŽqÝb©¢Ð 6~6~6~ÙüÙüÙü­­­¬?ºâíãíãí-QÁÛø¹&Áý3úíÚÖÏÏžlñœQ•œ?9rþľïè;‹œ9-¢ó1Ö¥+4³¼o ¸ýY-_̹ÓL]@Ÿ¿mú”Éì{Ç-kÀ§7YsÏ¥À«‡¨‡¨‡`?À^’$H:@ޢψçãAdûÓþüò¤üšxmÙf¯Í^›½<;<;<;ê®Ô]©»Âú£Ë¤Ú¤Ú¤šÑ}f½äYÿŒ~»¶EÒ^ÜRUéhæÑÌ£™DQEàÝÀ}0À/òhø£á†ÓyôS«×(±Î;€'êÉåúÜÙ·ù#'·OÜø2v™ð¢Î÷ŽäÌ;|cåyʦsduþTö–CA+(lðèw"î3‡³{Üɳܳܳœ|ñÚðsàÝøˆo{߇ñ¥'Óyøó~ÅýŠûÉÿßÿN¡¯aàŸÛúd/78G®vÀЀ¡CÙq˥РhŒÂ§VC×VË&Ä·½oco[¾Ó¯Sø©,=,=,=2Š2Š2ŠZÖ¶¬mYË:ãªB«B«B‹QÏÓB“Œ†!úíÚ–¯J-1ó`X±Ýi»ÓvcÖ Ð•³«³«³+y-8y¿Ûe·½o—_5® ½ÁüåòÓ¬ æGüsÛÇDB‹¸'¹Ú3ÄgˆÏÇ~€½PE¨"TF{Ñ:¾Sk*ßö¾5x´&GôÛèŸjÙ³5fÎ7œo8ߨ¾U}«ú댫ô¶ô¶ô6F=·£)nXÈ…è·k›ºãƒÙòó +¶Õn«ÝVì¯ú`€_Dc‚Æ ä^ ï±0©Ë¬0uÛ¼^à1¯}g¯NæˆÏ £ñž÷’ùÒ}¬›uøÐ™a¬ËÏJŸ2š3àò ò ò :">¦£b0ÒÜ<1¡¸!noZ–<陵‰…s•²ÚCü*ò ÿäA'”¯3ÞH§è1 1 1ìûYÑÈO‘Ÿ"?ÑY,oËcúáˆo{ÓvîVMŒ¶ÖæºæºæºêøêøêøˆS§"N) * * ö,6Q2Q2QJ}šú4õiÓÛ¦·MoýX¢Í¡Í¡ÍQOPOPO ÷Ðo™‹ ¢_†m†Vø£»ŒÖoã¡ÆC‡0wèÔXØXØXÈèâÝòeÆ>›"ÄíM;—zqÕë÷t"öi‚Ó§‘ÿÿ£Y±Þâ÷E+ä»ü+·¹æõ£êGÕÂÞ€½hŽÒ¥Iç¤z´5ÛDUßö¦mk;7GºœÑÜ *¡*¡*!çnÎÝœ»j[Ô¶¨máÚÆµk[Ï"á%+—¬\²ò½Õ{«÷V +V,üõc©cgÇÎŽS¦:M¥óL”ÛEÇüÇ îeÔ:%¨È,dxÏôwÓï¦ßM±¿@ ÀöìÇÚµK>Ô¥ ˜¸ü+Là¦lg6&µ³WÑGö\“œÍÌOùmÛ–¶(„õ`‹±c–rFL…D¡îD݉ºÉ—­âB|’Ï"ÄíYkb¡þåî´à¡ù;F¿¬w¶“­uU?’+ßÆÛÆÛÆËŽ›oóÒæ¥ÍK¨v'·«+ˆr{Ö¦Î}ûÌЕÎC¶y<òxDgeD@mYmYmYŒtŒtŒ´Z¼Z¼Z|Ï"aýåúËõ—'¶&¶&¶666DÑÑwc)~aüÂø…䞨þ­2BQ­ÃÿÛ~«½Ý·î vµ’kè°Ða¡ÃBÌ]ºzPõ êAy.-|áÔŒ‡óâö¬]1Ä4.<›ù‹àܾӿi`ßè—õàÝ3Þ“+gggý{©+À—Ý›ç&WÞØÜØÜØûvtÝåºËuòv­°2gîmD¹?Ú68s{m>£ù@.5—šKejÅäùD~±m±m±­©±©±©± ¿ ¿ Ï"á™ö3ígÚ‰‰‰~Ëý–û-—ð#ü¿ÞŸêðêðêpF7UçCòò»w™ië'W­Å¨’±Ê±Ê±ÊØ_ `cźźźäƒÜ‹)’ Bi¬0;§9ßfVÚ¿ï:ª›à3nÒ[ßu—Äl Sª¬r.»pâÕsÃ>ìrYÊý¬MrŠ6·ÂØÅ\íŒÞ¬3=­v¢}õgr¯»]w»ÎΟ2;Cœ!ÎhËjËjËÒ¹-ÑçxønºÌ·F|A¶ ¾Œb€ÐE¡‹B‘ÿ¿ï»<-Ã嬔x•­ÑU1Ÿ¥’Ç|@åPá cÃʰ§bº»>ž§ç¥ç¥ç±ïæÛÕÕÅh½Ô¹;_´8ƒX—ù6DÏÔR÷¹’nãÝÆ»ïýújôjôjôJ6I6I61t3t3tëY$¬²De‰Ê’¨§QO£žÖ4Õ4Õ4F„aô£ý þ3øÏà?é<ö9×ÅVG±î¶YÜ‘²ÆÃÈõ4°6°6°&Rˆ"óX€N·³ngÝ΢sá5oÓÃoè2ßJNÕ±ôÂèLÊe·Ën—ÝäÿdŠžšPëÄ¥®D,|-̽â9wó—é÷‡©QfofÍøaH숅Íä>ŸŠ8q*{vTj\j\jÌhômýQŸUQˆu™o_ØJú 5ÒÙO¾<õòÔËÞ¯¯²=e{Êö¼Í|›ù6sâÅŠ=‹„'Þ›xoâ=-E-E-żȼȼHB‚ $~´?O?}üô1ù÷ßsÜ_ð0bÝmÝó4–IÐy:æ|¹ùróå[–°Å^ 0[jÑ>¢}ù ·0•÷$7?K¥+NŽX |ž' æ'U_.¾B}VòÄKãä»þÿMûfñ²Ä§)Ãwÿ¹t#¹çö ö ö ì>®Š_¿(~Á(l0u‹ŽÊ‚p·ûÖÌ/þ¯ÂMŒjøÅô‹éS' ' ' ò¿.ýd”ð›ƒR… ycýýV«Uïý'º¸ûV\5Ó~b¨šÎ®T~ýáv9¡ÂÚíúS-sTÏ0Z^V €ý'Ž3ô!÷ó“Á'ƒOì¾ý~¶ùlóÙ†¼t–¯4ÃÔêÊÖJw»oËE¬Í\çÉÉɾXwÍç›Ï7ŸO—>.}œYYYB/„©†©†©VEUEUEâ„8!Îèï¶Üo¹ßrŸÑïi É»eŠ@÷‡Û[Å÷¬_êÎÐ:®|š\Õâ˜â˜âÌc:Uí¬ÚYµ“ÑyÁÂoÏ:,]îþv™¥AL0ïEÉÙ²è¼G°ðváíBÛO¶Ÿl?‘ÿõrŽ{ܼÝ,—ŽÊ¹h´ˆóÚ0žÚ®=œWµÎe’óQ/ÁIçf¼!2a·Ÿ|µ@£Èò5‚\Õ˜c1ÇbŽa€€Í·›o7ߎ|kI;{Lú +Lé:ûó¼\ò¶PÔÊ93–MzØùnàÎvMÞÌŽÉÊújk^‹:Rçž?,cýŸw€çÉŸ0hòÁqÒcL/œsç»ÏŸO¤I~J®yvZvZvgŒ+———òekµµF÷Í=Íß$>+~‚ —Q«éön©#›LM÷›î7ÝO¨j„šA«A«A+¸tsÅtã[¿7"uº}Vwn×^ÙúµkïüWFA‘e‘‡¶FëÀA÷Jë2Éýt™à2Áe»o¹^ /…—Ñ:Н±Ò0xŽˆ—QKÙìÖb¥Å¨zQÙQÙQÙ¿rm¶4·4·49ÿåü—óo‡½övXo"áû!÷CîW<¨xPñ€fO³§ýûÞÁè9Ñs¢çÐyxøñïô¢åö¦ý¶9á®étrmß>|ûðíCÌ`º²¬³¬³¬cø8è7†£ƒƒô2jE.§(t0ª^Ý„º uþVø[áo:÷= 5X È Aé¡2»Bûÿóñß­wÌJèüWFK·&â¼þôVV€;Û 'éŽCïWÀ®šÅšÅšÅíLoK{ψˆ—QÛ¬v¦XšQõ´×h¯Ñ^ó+×fÍך¯5_Ýž¸=q{²n˺-ë¶ô&~qéÅ¥—Ò£Ó£Ó£©{¨{¨{:ÿŠv‘v‘vùûÕÖßHž«‹(·7mø!3·¥RäÚ®_°~ÁúØ_ `c*_U¾ª|%äâ+÷ÍZ6Ÿu¦wÝ?ƙѿ²Ú߉t¹ƒ²+&ÎãÉeO®yéžÒ=¥{8c\µ jÔ2ˆQ Sç|Ò×A/¹Õä½/”Æð½¡u5u5ufÒW”ÿîˆÔ üm‡ê¿KÑùhf~*ت¬Õx™º—î¥*V€ƒ›ÊŒ÷Ñ»GÖò•å+ÎØ~ ^¼,xÉð-¤²öb¦qˆ{ÿÓæ{¼·6quÔÔÌ%WLCFCFC†G£ÆýÞ5Ûv¢íDÛ‰¯†_ ¿¾'Þï‰ÞDÂþýú?dxïodÞ}Ëp„¸½jU‹U¬ÕÌU7*–Ó¹›|vÃì†Ù˜Çt¢££———'ϱ§Ø,X»lÅ"!Úqo×v—|–*£ ÐÞ£½G{ÿ1^±¹bsņü=^Æg‰ˆt~ʆՓþ±;ÍÌO=“N©”¸;õ²ÐÌqY¬ ò.Ù<10çùö)ìS÷îÝ;WÒqïÚ`¹²KNº‰¦Í¤óvÞiFÓŒ¦Qt)ºÝß»fë=ë=ë=}J|J|JvÈìÙ!Ó›HøÞé{§ïfxïïÓÀÂ5*q{ÕNŠá–3eå˜:w“/*YT²û+€Ÿ0À/•BM¡¦PéL/âs úbrùsÛ’éÇ"¤®t?±[°nÁºëÞ:¼uxëP¶ªlUÙ*ö]¹Ê¹Ê¹ÊŒâƒ§¾/¢Æ#ôý÷¿O‚?' 1ªUòŒäÉ3ºÖ–ü=ªK4”¸Y!"U¬cªôïÛdubèª0å²þÀ!*®Ó G ®\5¸ÊIG¿4¿4¿4†oVs>bqÑogyÝBX(£ZU=¯z^õœ5×rû‡öíòlòlòlSSSzÍs¢ýA­·¬¬Rm‹F[OÏø(©go§— â¨²NùŽâIí­Jí¬ÖÛŒ±aåFéÜSž••Œy,@W…ß ¿~g4Ǻg‡Üq„¾íÒí:_†÷N]tvÑÙÿ\è<êpÔá¨ù;ŸD&íoe…ˆ”·}öqî½::Ûà¤07óQ.ëß<ÿôú§“2pª»Ø|°yt¯É©îÏ·ž•ƒUʦH^™Eªâ×Ûçîÿ47œûÐDýñ\Ÿù=¦ãY­·ŽñÊzй§\L[L[ {*€Ÿ0À/EyByByÂh2A9uÎMf¦˜?«Õ]sBTÿG§t‚÷ï Þ7½lzÙôr±z±z±:‘Gäyì2Æ‚/_¾À(*0L´‰¿ÚŸ£_ãן[Ó¶2ªË—;.wˆ¢†¨éZU:×~£U§$ÿ›ìÿ]Îè?oýx3ç©A:ó¿ÁåAÜwÝ/,kVèÓùXƒnnn'¨“¨“¨“tEuEuEϦÉ.Ž–Âý9úMª³v4œÏ¨>i«ÓV§­f³YA<%ž_¨Y¨Y¨éöÒí¥ÛË €Ëž¤n5S`å8ð¼›µNH÷KÁ:½m«/¶ZKî¡Ò<¥yJóˆ"‚ˆèó՚ššÂPZ(-”Vu¿ê~Õ}b1‹˜…™µ~i8QM===9c t$t$t$ï/Þ_¼¿óq ÝÚ‡¢,ë=¬ë¬ÔtVþ7¶તs­2:½Ð|]ûñ‚gV‡Y-îlí>Y¯×ØLgë[Ѱ¢aE˜©FŠ:uˆ^T@Ÿò)åSʧÍ¥…ZOøÞ?Ñߢ_IyÝ*÷1&Ü&É1ªL~q~q~1¹žÇËŽ—/£sðÉÄ·âé¿7½=Ê}”Ëc Í°Í°Í0ú^ô½è{—_]~uùU÷ãº#ÊMÆž•`A½™÷ÆŸèìíý'_ æ}¹èh²B½ÑóSÓÚ¬w¶»ãe¾L3 ó èc%ÇJŽõ‡}‘Öj­ÕZ«1뀾ƒà7ÈÜ–¹-syç¾|ËtÅI£ßö¾ýüu× %.ä ï«ÙW³¯æ}Üû¸÷qKž.yºäiÏ"a®¡\C¹†ªMV›¬69çpÎáœÃ´hZ4-šuÆX{d{d{¤N¤N¤N$£Ø@ßÊ;>Ì ?D¿†tãFu¢4662¼¬)¥,¥,EçÉ+r ~Ûûq³ËÿçnæŽ9ß ÊààÊx]‚¥ßìWÎo,M®¼u£u£u#§#*^U¼ªxÕýˆ­s%m¼‹\ó ™ ™ Ÿ¤fÙD¶Ê •A*ƒº.»­­­æðÀÐ+âñêRÜ¥¸KqŒæÏüWvÉ­\9ÖrRÌÎŽ~S5týšŒß¿-~£rÞøzãë¯äŸzèSº°æ÷†£Ï¼R=%L»öêÆA?ëù)Ìÿ†ã_LÇ ÓX9žUºÀm‚#.Åôé9é9é9Ýï±3—4\±Ã¯¤ÕÊ–]«ütå9 Œêp˜r˜r˜B“¤IÒ$9v"¼={{övò²ß(>rZà ë¿[·kŸ;£_Öï³×­e¶äš;-pZà´€Ãw@Þ„7á=qÔÄQGu]ö­ú[õ·êcÿ ? `€ß!Žˆ#ℸ„¸„è¼K#Ùs¿òò¿âö°µ•[/»`þñ)ÜЩíÆäÉ»®Šjùjùjyggg“59krÖäôæ^á7Cß }3433333“šFM£¦ýÞÖ:³ufëL©S5¦2ŠO´Øö6—Np+ºÅQѯZ¢Q±¹îsWZ÷AZý£úGõº¯¤I‚I‚IøŸrWãc¿7"íÚç¸Ø]sæÖöc §V5+Àu¥ÃŒìÉ•w?ï~Þý99–t^àRëRëRËÙã­®¢®¢®‚¼ìÙAÙAÙA˜ÂC÷¨þTªÿ‰ '.œ¸Àh¶<ÙVÜpÕ¼e‚úß‚$9/ú;sº¾z÷ç aƒÂ… ê¾’ªnªnªn䟽]·`+D¤]{uÔÈPXx%ó?»õÆ£f¾lV€¹æùkô5ÀýGü´øiñÓºß{{ÜÙ²^B‚ó®¡5¤Ÿ.\+ðéœÈé ï‡ÞѲ£eG å)å)å)g»§vOíèÜ(òé/ã-KdØ+ÎÞâ<~…õû\qÈïÝj:¯]8±øÄâ‹9{¼}ûøíã·äe÷žï=ß{>öÌð³ ømügùÏòŸEÞѯ|9ãð$u¢Tî¸ìjº?Ú~š³óÔ’­äªŠª‰ª‰ª±D,û?.}>«{V÷Ìk–×,¯Y›77nnìM$üØé±Óc§Ô‘©#SGvuuýú‘Ö*ß*ß*o(b(b(Â(JQ^§9MÛÒä\x@f!»G¿¦'¢b¿¦©¶j›)ÿGéŠ5ˆ5ˆ1SC7w7w7w:žýP¢b¤Í:°n˜¹¼J=SwÖZ•µ/Ó8¥7WY€•`¿¿óW%W>ü|øùðóýáHñ=ö{ì÷ØîG²w”ÑíÕíÒnzV{Ù=ú-á²ç5ýï‹uÑuÑuÑ¥fQ³¨Yýa xLö˜ì1™\‡f½\eËg¬ú²ËÛÿÓ>/~iý†aŸ³‰l"›SÇ[œpœpž´ lØ6³w`5‰šDMº’|%ùJr÷óä_{šÞe÷Ðw¹‰Éƒ0>Ãíѧ”º_Þ(¾(¾(>fjè4Ùi²Ódòo¸8Ò©Tô «ÀÂÊ+7p1u÷°tJ¥ÄÝiasßÌšð³˜ÔL‰·äÊ/>°øÀâغ8[ÒÙ¤³Ig»ß“_i]xžÿEã“3Ó×:²ûÕ³˜ò½ƒ$_t¿¼ÇŸvüÅ•âJqícàœî9Ýsºä:Tñ \3€õC_vyûïÚ?cþ’Á°ÏÞ„7áÍ©ãÍð»áwÃï䥮k®k®kÆ>~À¿ïâH)µ”Z:!yBò:G×m¯]|.óm{Ë9E™YŒ& áÇÇïÙšjkkó?íÚÿôÞн¡{C{ ßy{äí‘ñññn 7…û׌·Ž1c:Æ8Nrœä8©ûËñ:ÎÛ}ÍÍJã5 ilýîJ((rÕ3ñ0 ¹ÕýÒ™››·nkÝÖºùêE›D›D›Ðy«xÎhƒß‘:9EG뮢sw2£ŸÚZ1Ëø¶Õ^σš3à§~SënŸrS¯ŒÎ¯nYnYnýçxQ»£vGífâ´œ1¶ÑÆ^ìú¶¹zZÆ~t5òÔvî~éB¶‡lÙN%ŽGûÏÚW¯P¯P§sG&1©xõUÖ PµÃ5w*ïl»öY³T=[é}×eåû€ß7Yæ«‘+Oá§ðSø9p¨uD‡¦¡¦¡¦a×åµ²³²³ÂßáÇ9N„“Ú1µcjǺŸO¯•Y³Û^ò¬îKaöŠ~L~xÔè&3óÿ/Å_Š¿3_¼××WòïÙÿRMq6K¥‡ë®¢s£ïn’.+Q¶ÖñÂìÒÌÿÔ¯oïûF¾\¸Näx%ðJ 6k€þ ÿyþóüçÌìÛ?fmÛ¸è2Ac§ëf5Þ§¬1¸+ž*ð?ŽÎ/x^ð¼à¡ùÑüh~ýgíO-™Z2µ„\ šxôi™\Ö PÞÍð/ÜÙvíóÌ‚©Qã¶wýWV¾x‡ØÚÁS#È•o^ݼºy5µ6¢h›)3Sf¦L×å•V‘V‘VÁ~~.À¿YÈÑ£!GM¹Î,Yë‡p—™VSAJVd¹†+xVð¬à!òˆ<"ïg­µf“f“f“OG?ýtôø–ã[ŽoéM$|Ià’À%¨·Qo£Þ¶mkÛÖ¶­œaEXEŽ=˜™0I_ÞûAØsãÄÏÅ©¬ýdøéE?`fY]]]hÓiÓiÓ´lŸ >|¢óþÑÖ˜ºûsPªP!oLgy î¾WÍ´ßZ§3݃+•_¸½RØ…úšVïTÿ½7ZÝKw€R+À¶|nZþ䥫zZõ´êi;^´9·9·9ÛÛÛÛÛÛw?Ú¤Õ'ª¨·Û7õgÍЗ:ÜÝĪ%:Þr˜¾&3Ûo&-“–IëŸór5Œmôï«ä±þƒ”Ù÷Ðmø ½§t^ÀWÏWÏÇy#­!¹!¹!™ÎÖ÷*óUæ+ÌØ¡7|}}™™Ïž|(ëzÂò«ÆU¡×X3ô•Xþz…­(À\‰?º_–õIë“Ö'ÕÌ­™[3÷G+Vi[i[Iç}x’ås¦`‰¸tTÆÈEt–z^Õ:—IÎ{,Ÿ J›ñ~„È„½c•Ö ž)­6iBç÷L½,4s\kÀr¹©"y¹ÞU¿«~Wm ÿhØÑ°£aÇ^«½V{­ºßÛ/tâÝÍ=%&`Oƒä]½Ybô¹…Ò5ºÂ«-Eg1s,vµsµsí§þ#WcÑÑÉܬÿ eö}tg«üáZØ*¹þEÂEÂEœ7ÒJ•J•Jé<9ÆÅÃÅÃÅ{`ø¹üöy%Ñ@4¬×\¯¹^“¼ë¿ [1@¿óŽxG¼{;ëí¬·LE§‚÷¸#ÆôÐØ²SbYûsdþú]WÉ Œr¯:ÿlíÒL¡ Ìô\lºØt±éù¡ù¡ù¡ýy…“+#whOß À}ݺ~P{&®M®‚x‚x‚8ç4Ë –,éáµ †f4æ{è3Âg„ψְְְŸP¦ÉÄdb2ÃÇÒž«Øjü˜âÒÎþ|x’¢-¯»Ó,H%F¹Dí„¢­’ªÊߊâZ¢†•ƒÞyø-ÔZäÿ]Ψ†•ûý•Q#¹‡ÚyÚyÚy8jtªWÿ®þ­™­™­ó[‡s˜þßšWs?¼?a2¶ïâÞ¦‰.–±Ŗ õö¨ÌVúm$†$†$†ÐŠhE´"¬er}ÂöûŒÒÛ¸¯Û"íÄ»¦ÈõÏåÏåÏåÀG@ë×þߙʛʛÊc„Ÿ}m•MŒþû!öC,ó3á1['Îà’?¾ç®î’ ª×ž>|°3ïÃ3F§Ë¯mÙõó=\´&hMP¾T¾T¾ÔÏ*ÕÍ=š{è|Dø^Dxö‚VÖ M;{µsØKI‘Bï–ûpëOˆ™œ8fë¸Iy¹äf žðtãùÛe³^>¹—-žÃÊ€žš-T8ŽF甥ͥͥØ|ú³âyÅóŠçm}¶õÙÖgÌŽæ‰ÈÍÈ øgûÃÅ}we¬œûÄêÕ» ¬›7aVðÄ3ã^2ßCK^K^K^j85œ޵L®Ò«–s> îë6²ÊÂci¹þþýú休&"!"!"ñŸ§¼HJJJJb„¾€€…¼³ygóŽá'â“íö+,ŠÐ·³¥zW—ù´]T°vª*¹V“m&ÛL¶iKmKmKeõÛ±°caÇÂdëdëdë‡R¥Jõ&Þ±-b[„wƒwƒwCý¦úMõ›zßúñuãëÆ;ýãôÓ? =¢ZixÎl§ÎH>þ1ˈúi{ÊF¯qkØñŒi;?6GžÐQsšó‘_-Äd ¥KÏþºuŠuŠuJåÚʵ•kûb ºó¹ó¹óÑy05÷Šá V»w–Q KŽ{YóÞ_’4}ýŒÖµgˆgˆgH‘j‘j‘j‡B‡B‡Ž ßB¿…~ Õ>¢}DûH϶ §µz5'FËYé?øªfkhlФè’n¹–QÄû-ÜNÆtyZÄ;n£QAr&):¦4Ö©nèÙ_÷âÿÄÿIˈ–-#°6»"×*>!è–ÁÀ}Ý–7¥Ý4Ë!×?C,C,CŒ“ÆX“n“n“.yIÓÒÒ° Bß©;Pw îÀóôçéÏÓ{6ž¸JÀKD–Ïf{ã©`‘—òå?/äzrÞì(£pwÙBƒ¡Aç§ß=ª»Iˆv"æþÝiû¥–oß³¿>Il’Ø$±àšàšàš¾¨C¼C¼C<ùï£(t–uBSrÌèÿwýWV‹~Eÿ½PûWžyûŠØ±%b RÏŽ ‡2殟1OçØê="M>I[K‰•wœÐ[-Ïè XÄŽÝ[—Þµ—ؾpê“õK'Ïn‘˜æÏ£Õ³¿~ïò½Ë÷.W©R=k³+r­L%ž<׈¸¯Û´;¿å¾äú; wî4œ“ÆXŸŠqãÈKú¡þCý‡zlƒÐ°’ÏÄgâó!ûCö‡ìMÔ îý{Õñ~¿—[/»à&¿x³ÀMFUúzþëù¯çY…S_R_R_f¼Èx‘ñâ¥ÓK§—N½‰„eBeBeB]Ÿº>u}Zs®æ\͹Þô­fuÍêšÕžZžZžZ ,Ìq¨ãPÇ¡åáåáå}þyռļļDrl,ýãµ4X-@e÷Ö4Üñ’º)ó#ÁUØUØU¸À¯À¯Àòˆòˆò¨ŸGR‰T"õÛ¨o£¾2?`~Àü+o¿!¯B^…¼j¤4R)˜0B®[rÀ§7†G÷u[õ*ã–ù rýSšRšRš8j·q,õXê1ò’657575c„_£jnÕܪ¹J+ý­ô÷h&¾F|øš`‘`‘`Z0-˜Üw5)S.S.£ó !=‹j'>b͘}ÛC÷µÝ…þ®3/»:qÄ€IDAT`Kï‰÷Äû°ü°ü°üßV|[ñ•_/^¼xñâEY^Y^YV#tÞ?镃˜?à¾n³ BèmA¶*¶*¶*µÛ8ùþäû“ä%­H¯H¯HÇ6}0ËiºÚtµéꄇNxÈhêV¸÷è‘UZý.úÕ’“’y<{‰Ël/F•ñlölödã‹•4š Må뤯“¾NRNWNWNïÍÙÃe—=´ ³ ³ «\^¹¼ryÏzE§ÆSãSo¦ÞL½i°Õ`«ÁÖßiÜÔ¸©q3>%>%>¥]ª]ª]êW®ö¯í_Û¿2Œ²Æ—‡ŸDpûþ,VzÏ(¸÷£ÅáªÃU‡«¹¹¹í[Ú·´oéŸÇ”zj=µžø{ã^k5k5kµ¯R_¥¾J±~ÝêTëTëT»ö? : : ú×÷„\ɤ€@C>À}ÝVæ§7šo&×?µ&µ&µ†“ö&L˜üçÃ"RRRÀo0>`|Àø-:[t¶èüދ毴^i½ÒÊ·É·É·ùõu˜svÎÙ9gɽº+:lÁ·?¡}ž‘¾hÑT¡ãŠXáÌ ú'Š"E‘¢ØuD°?aÂ>¡-¡-¡ õaÅyÅyÅyJ„¡DüÞ#—ì^Ù½²{}$|$|$°^˜G®¤5÷ËIbë÷uûÅÀ1h…!ûb_|xñá'±Å9‹sÿçuó¬æYͳÂÖ}0«N'O*žÔý”.#óàíâý!úíÐ>?KæÙ•õ ø2ª†ÎnÝ:»9p(l!¶[ò/æ_Ì¿¨í¥í¥íÅ#Ê#Ê#Ú³Ó€ùó+æWX‡Z‡Z‡~ùó=¦‡'¨%”JIκœu9ë¼³½³½³•͔͔Í~n\äÎïÎïÎÿEå‹Ê•VžVžVVX!nfnfnt–Ô]?e§^!âÛÞ·Žó#êÐ €­k­k­k{3¢lµlµlµ²³³[)­”Ö~z×i]f]f]fŠAŠAŠ}¼}¼}üÏÝrµ…´…´…­­­ _¾,|I¼!ÞoØ«J±÷cïÇÞ'/Ý¯ï ¹1¶þTýÏ€ûºýžŸ’bvš\ÿ/m_Ú¾pȥ؉‰ :2°I²I²!XÇwâ;ñ=’'’'’çù´çÓžOÞ/¼_xÿϽ\¾#cGÆŽ «wVï¬Þåeäeäe°Â¢ÛͰ›a7ƒÜÛóoËϺ†ø¶÷í5cýù+Éd…3/èÏ%žK½>½>–AË eT W W røäðÉ¡7Q¥•¦•¦•fæ­Ì[™·ZÞ´¼iyƒãNݳºguÏŠŠŠ²Þe½Ëz—²?eÊþ„ƄƄÆÄ–Ä–Ä–ôé+ÒWäÒri¹´²Ô²Ô²T‚—à%x9¤­D+Ѫ¡­¡­¡ýŸ YYýúîÇmº»¢î À}Ýæ«Äí0yF®á–Â-…òDŒ°Œ°Œ0ò26J6J6JblC‰P"”RRR?~üìááammm.e.e.õNçÎ;÷,÷,÷¬ˆ’ˆ’ˆ’¼€¼€¼Ö_¸†C ‡1šÉ?^ï#~!noÚEïvÉM©¤s–=Áo‚ßÖ?óÎp÷ÆÝwoÇ e;e;e;êé £VG­ŽZíAñ xPlvØì°ÙaþÂü…ù K%K%K%‡éÓ¦xxx¦?,¹ZèEëÜg‰~cv<ÞýR¿žðzÂë ÷ôë!B%¨õûÒïK¿/µ²¶²¶²ž'9OrždÏ.LLjžÔ<©Y§Z§Z§º`lÁØ‚±ÄYâ,q[â¿R‰T"U÷îÝ䋿­iÞúûåö¬uæ1Ô=G®ª]«]«]+Ã5²—ØKì­¾Z}µúj¸w¸w¸wo"aÓ˦—M/§OŸ6¾©ª©ª© C¾¿ixÐð ÎÖýeú—é_¦ÿúþ{bÂ:Tãà¾n“¾†dÎ!׿òMå›Jù°ˆåkË×–¯».VºVºV:A#h {ÖñPá¡ÂCò¼}ÛÝ'þü âö¬½!çç??“Ñ9åååμ ¯u´t´t´ÇÆåC—]>„úüJä-qï?²ÉÓò÷uk½÷å&±½äúg~Ëü–ù3FךUkV­YÕuéø>ñ}âû„3/èk€ØFÁù‚óç»?ä~?v혉'÷9-{ÅŽ¡oóà3nÒƒ.y8[¯û%525252Ũè^…W…W…×çΜ—¦-M[šÖ›‡ ©r«r«rû÷5ŽæLs¦9÷çÚæ›æ›æ›’ƒÕ'šJóBd*Æß@ ûïýõû~ΨšQ([¡[¡[¡û«Ç•p%\k5j5j5¢Í¢Í¢ÍT³U³U³{ ððð'é$é$é4Š5Š5Ša‚ÎÙç$ÎI¤ûµ¤µ¤µ¤ýúþ{¢Ò Ü¡¨ˆ¸¯[_CçÚEäú7[5[5³ý[šZ][][]ÉK? ~@üìXÍ÷­ß·~ßÊh–~_6âã™t´©”ž7i¹ž6Km–Ú,Å™üigÒΤ!ècÑÇ¢¡>¿«¬5ŒáBÜ×í-³£t]%V%V%ÆîãªnwÝîºÝä¥360606Àv} 0»6ÞÔ½©{³¾b}ÅúŠîOϼŸW;ë\Ùüã«§±~ôë`¸ñàÂ+Ìœ `$ôLueueu¥Ë-—[.·¤…¥…¥…{saâUÇ«ŽW™R™R™RTWª+Õµ•Ò€0 ô×é¯Ó_G¾€îÀ¾Mçb]æÛ·Í¿k ¤s§c›}›ýÏx×f9QN”׫իիşŒ?Rû´öiíÓ=‹„µü´ü´üâjâjâjêwÖï¬ßIÅD1ö0œAo¸Þp½á]׸Ùc³ÇfW,N[œ¶ 3V;î|›i•ޏïZ}=ÍÊõäÊÓFÒFÒF²û8Ïš=4{(‡í®?\G°¨GË-{´Œ<'_b¼7W.óí©›–æs¾2:Çi_о }μà×xJ<%žÒ‰Ú4Ú4Ú4P€_iUûªöUíäí±µ8|…´=à¾kE7 úL(&W¾ƒ»ƒ»ƒ›ÝÇ•gˆgˆgy銌‹Œ‹Œ±ÝA_C À–hZ4-š–ÎI“:'™9]¼8]¬Ï:‡çð…•§YâN߃g’¥¹?ÌØ0z 3ý{!öBìÅ·ß6~ÛˆµÿsÕe×e×e{5x5x5l]¼uñÖŽ¹0ñÈð‘á#ÔK)—R.u\î¸Üq™³«÷}×÷]ßw1Š ý6æ»ÞD¸Û}ë½ïKªÁLF5¬»Rw¥îJß­ÁF¹F¹F¹äÉ“ÄÄÄô,VQQ‰ŒŒ¬Ý^»½v;ñžxO¼Ç†½4I7I7I“×oZTZTZÔïêÕçäÏÉŸ“ɽª~›¹ÇÜp_´Ÿ¾±*%×Üp¾á|Ãùœ1ÚmTmTmTÿ³Û ºAuQB”%ذ¦ZãZãZcFóðS¥VçD¸Û}ûÐ(&ra£~ þü1g^ð‹®êL£M£M#¯ÙÓ‹O/>½õøõäùäùäùÈ[eŸËë•g÷EÛö4ÜS:žÎuà—b/Å^rƸÚ|póÁÍ». KıØî ¯!`{‚K— .eæDQtéäMòí6oxº ¬š÷dðšå¿&ô»¾WO2ë’ù¾væOk >|2øD=O=O=uýk4¾j|Õø*`NÀœ€9ûˆ}Ä>¢7&nÖÞ¬½Y¿3~güÎöÂöÂöBΫ˜···9*Ð<¡_ªü0ø[ùãzé<öyAé}£F‘j„c„c„ã¯_›Í3šg4ÏH{–ö,í™ÙH³‘f#{óFáðeáË—U W W ë‰õÄzìaXYŠ_Š_ŠGþJ7K7Kÿ®^ªªª‘{•m8p_´•‹Ó¯š kþYú³ôgivçíÃÛ‡·'/]´d´d´$ö¬Ï>Æ>Æ>†ÑÜûžDØ×zé´Ç2Œ /|¼¥tr¹në7¬ß°~‘L$É8ó‚_#kJÖ”¬)äõúüz¡9¡9¡9ä­ÒzÑËbÛ÷E›)íà¹b3¹æo†¼òfÛ__ý»ñïÆ¿ÉK§3@g€^»¿`A5 P Þ|ðýÁ=QäY5öá˜Ym–LŸ}Ìk[à"wZ©ÜÙ!= z“Çïß¾¬Ää˜ôöy¡›¶ Lã½ù£ý9Zu´êhUIDIDIÖ,+h.i.i.ù<åó”ÏSN<=ñôÄÓÞ\˜¸@\ .‘u‘u‘um£ÛF·f÷ú´)¶)¶)2Š-Û<¼5ÿDÜûŸV©BÅXÑh®í\59rÅÔ]Õ]Õ]©6Tª +¬ßÏÏÏ̬̬Ì,kQkQkÑÞDŸD>‰|©(¨(¨( …ÑÂhaØÃ°ãÆ'ŒOüçŽÏå†Ë —ÿÞ^µJ´J´JÇ’…™ñ!U‚]`vyìsgéæë¨?‘\óàeÁË‚—5\h¸Ðph%Z‰Vv繂¹‚¹‚䥫=X{°ö ölà&q“¸)«#«#«CžiÏü{Þõ #Ÿq§XHœGè۵ݞú|¿-£3”»»;œyÁ¯¤ £ £ C^k-J-J-J¨À¯W{¨öPí!òV)u]¢|]`vyìsg«Qu«HD”\ó§5OkžÖ”ø•ø•øµD-QËŽ#Êÿ/ÿ¿üÿ"/]¾N¾N¾¶8ø5p æÍš?2~dühôO5–Kbô§ {Æœåzøsó~¹ýrû徨~±ýb‹5ÈúÚþhû£íÈðÈðÈð >|.øôf퟈<y"òó†Ï>ohnininaÇš½*zUôŠQìg:\»Ñï¿oü½óq¸f£ZU}¯ú^õ¥Ç¿@›@›ÀW®¯\_¹Þ ¿~/Ü›H8€@  ”Ý.»]v»óApØÃü†ãfysys9yí$oMÞš¼•z¨;Jw”î(r[Ãò¥, öŠWYºM+µ6R‘V¾©x¢û-Wã´ÆiÓ±ûc÷Çî¯{T÷¨î‘@$ ¬?ÚíoØß°¿A^"ÂŽ°#ì°7`åååŒf×K}öGð6¼˜’Á·h¢ßcÞÆ“…MÕÊmÛ ·A8ó‚_j1€@^;cÆŒAy~/¡¥BK…èOOx±3ãå"þýžµ®œ»™áã²Ãî…ÝcËg±àÌ‹Ýåªäªäª×E`U`U`êð{™PM¨&Tòê8@){á·?«Íírg剞¹ÆiÓ§¥¡¢¡¢¡’ëžëžëN !†,ôÈèæûÍ÷›ï“{®2Ke–Ê,leð+!èw*’*’*’Ž;w8¾eÀ–[ôuÐ;Yx²ðdáWµ¯j_Õ¦T¤T¤TtTtTtT`]p¶Ž“';N¦È¦È¦È>Ú÷hߣ}½E[_o}½õµ7Ÿ7Ÿ7_]]]]]‹.v6‘Md{TzTzT2 †éÜïGÑoPE©±‘MtÀx-3F5 :,t'Š9Åœb^8¾p|áxW_W_WßÞDž"ž"ž"E ‹-ì8ßq¾ïDÿÉ,´-´-´»Ö\û‹öí/¬ÓÃÆC‡‘džÖT¿”<‰˜âk}Ä·½oýŠ\ìuæ)üT¡ò¡ò¡òU‹ªU-"Æã‰ñ¿kÌ*˜U0‹ÜÃj‰j‰j ìØ—Õ+«WV¯Í¢¥„NžÎýümú.‰ÊþýžP5Û6G’QMÖÝ^w{Ýí‹‹ œy±ñ™ÛÒÑÑ óðç¦M+šV >¿×wóïæßÍÉ[è¬íÓ¦»@èÇ<‡ø¶÷íÝEÇÃþäÔÔÔ³d²d²dhB4!šÐïEŸ}ôi¹‡_e¾Ê|•ÁV¿`øÅžbO±÷oòoòoÒ˜¥1KcÖ©ý§öŸÚ¿¬iYÓ²¦©|Sù¦òýçóVöãìÇÙ‹ð‰ð‰ðm·Ün¹Ýò¡ÂC…‡ üapºPºPºª ]QßSßSßgNÉœ’9å•ÿ+ÿWþ½™ØIß—¾/}ßå½Ë{—÷5ƒjհУÛhCiCiCmœlœlœEï’üÎhm yQñØø §F¿ÁåW›tIÔX˨^×½®{]'‰@"³Ç‡M‡M‡MQaQaQ¡×¯-^[z)¹h¹h¹h)8Rp„²Ÿ²Ÿ²{˜ži½Òz¥õ ¹Âñ.ñ.ñ.¬Ö[«ÕV«ÿ{wUúÿßÕ]kuÅîÄF±Áîn±»»[A¤%æ -t#ÝÝÓç÷Ç~×åûÇËÄóñǹöZ‡™û~Ý÷ÉçÌ9¯¿ò Î<ƒ¨H³ÞˆoeYr¯¤·6/“¶ÆÕì¨ÙQ³#qfâÌÄ™+-VZ¬”eýõ<èyÐó`ajajaªø¶ø¶øö¯™?ô$z=é+7^Ì.fckÐØi>Ò|¤ùHÚ‘ó„΋8}å®á&›4íèw©æ…ÊÒê0ŠÅŽbkvÕìªÙ…3¯¦qæÕÈêv2cÌ ÉÚ>ópÌÃ1’cQµ§jOÕ—«.W]®®ñYã³ÆG–ý×yÏóžç=#žE<‹x&0 ìÌášs͹撟{›½ÍÞÆŠ¿`hH4X V#½*½*½JßVßVß¶Y³>fõ;°÷hÜ£q^'½Nz”¿.]þ:VÄŠXѯìh™h™h@ßlÝ# L{ôKæ{¶æÿˆ:ÒÜÒÜÒØÕìjv5¦üÿ\˜["^"^RØ¥°Kaví<ÚÉ)½«xWñ®"iaÒ¤…Ü0n7 –dananaþeݯ~¼úñj¶„-aÞ3ز Ù…Ú|m¾6_rijS"Óˈrÿë²vuê:ó“ÒÖ£Z—Z—Z—ï~¿Ž_—~ ý@úª-Õ–j+Ëúëèëèëè›ã—ã—ã'¬Ökd™8Y‚,A–@òSŠJŠJŠð¬A€&èiÐÓ §Aß>N^«vÐðÆý^L­P¼øížÎΞ=;»*®*®*s£iŸy5|†bC±¡X²z•V•V•V¨@:7×ëŠu{±½Ø^¬ä:xÓ|äôZD¹ÿuY¬ëf07SÚ~¤D£D£Dã{F§&»&»&Ûó‘ç#ÏGÛvmÛµm—,‘ð±Òc¥ÇJƒW¯^ÍËæeó²e™9þ®þ®þ®’ŸGÇÑq4Ö,øõ@ÃÍF³ÑÙÕÙÕÙÕ/潘÷bÞ0÷aîÃÜëw`7”J %žk=×z®•­Ÿ­Ÿ­Ï³ÁlðOïÅ>v»Ï;Ã;Ã;ãÛýMþ~Wñx»ë’t[ã3%ôujä¤×t³öýo÷.lfØÌ°™˜Ôÿá´³@\ .(>W|®øœÏDŸ‰>e‰”̋̋̋âÛÆ·o[·¶nmÝÚæ\[^/Œ&Y¥ ò ò ò†ÜòÔÓ©§SOK¶üQgí®š:¢²ì…oë~ÿòÛO©¯Ü¨9Ò3Ò3R–‘vvvÍZ”µ(k‘eGÙQ²¬¿v³ífÛÍÎj•Õ*«•€'à xßßû(û(û(É÷ˆÄØÒ4Uô-ú}ëÛÇÆýÔ‡itrdí«èÙXBß‹›ü'œ}p‡Ò@Åo÷îHß#}ôtttÇ|hFg^ S[Æ– <3ðÌÀ3ÿóDê .ˆ©Ð0¹½t{éö•ç÷Vè9¾Ë@ARÀ#µõˆu¿y°l½ÆÐ¯<÷÷fŸ›}nö‘e¤¸¸¸>­ÿ´þÓú}.û\ö¹È ïÝ»7Ö/Ð/Ð/°®°®°®ðû[r°ÕÁV[I¾§è±è±è1Ö)øõ@£”OåSùÔí7Úo´ÇŽ7oX¿»Þ÷zßë}O¯R¯R¯2];];]ûgÿ25Y)Y)Yé{.÷¿ª´-×µqµÊXo¬×àBßO©Œ*_œµª3æ{ú’}>û|öyÌÛ`7»›Ý]êPêPêà¯ä¯ä¯ô àAÁƒ‚úEJ/|^ø¼ð‰±ˆ±ˆ±¨q¬q¬ql>…Ly–ò,å™dMÊÝÊÝÊÝtÓß±ïØwƥƥƥ’ítu½b¸±î÷,³„?2.míàêsõ¹?øùL¢¿E‹þÎm“Û&·Ó$§IN“d‰„ɧäSòiúÀôéù‰üD~âW>q¾h¾h¾äߺ˹˹Ëaƒ ÐÄõ‰ë×ç{ŽŠ·Î¯ê3êØ|û›ãÎ7¸Ð× @mÒìEKOså‡~O_,Y²8„_ âÌ«áÈ5Î5Î5–¬‰íNÛ¶;1Ǩ¥ìRv餖“ZNj)¹þêµÿy{Ûñ‡õmM-µ ¾§Í”¥Cépqqa~þD.¬ ëR]]Ü'¸OpŸÇO?yü¤~‘’áyÃó†ç#FŒXU[U[UÛT/žZ?²~dýè:oùÀò%ëÈ:² /R)R)R‘6Ž…G>·3sGÄ+mÉ%Òǘó¥U/F%F%Få׌£(]”.JÏÿ:ÿµ›ž›ž›ž,‘°•Ÿ•Ÿ•_J”)=x†ùfúÍô›és4çhÎѬßìêlÒÙ¤³É:u:ët ¯^1¼Î ç„sīūÅÿýW¥l)[ZRR–––¨ßC¿‡~úEJOÛ>mû´mè¹Ðs¡ç*»Vv­ìʦ±ilZã;A{A{A{Éžúÿíÿ·ÿß«/^B/¡—PêoX‰ô1æ|Ľÿ³\›³óÍ«±¯ÿÖ)—¬˜Yo³Þf½ÙMì&vÓïÓ/|õ)êSÔçßÛPË ëw×ï®ßý+7""‚ã€æ)Ì(Ì(ÌhHÚ´!i߬¢P©ò±÷–M[u[޼~íZÄçÉi?6ôÝ3òuò˜^³vx \ð_£^¿}ýöõ[Ñ3Ñ3Ñ3Œ/μ¦ÑgGŸý?5™•6+mVf@cqûÌí3·ÏHý ëÏÅóª÷~¹[y¨ñV½RÝ: ]²b35fjÌÔ3bFÌü®1É‹äEò±mcÛÆ¶½Ù÷fß›}eÙsP¡:BUòÿ ç ç çb ‚ß04#•S+§VNuôrôrôZqiÅ¥—d9¼»|ûòíË·£‚¢‚¢‚„ÊBe¡²,m\\\ ¾|!ø‚,—ûu<ûð°Ó‹2®Î:‹….žö·žîÓAχsîS™þ-ΆO.ú¬½÷ë½ykâ¼èIÖóDëyo<ÍÕº+ËçF÷îÝ_ô\ô\ô¼éÍœLµLµLµÔêÕùLç3ÏÈýB³ÎÍ:7뜕º•º•ºh«h«hkýzQý¦úMõ›¨sQç¢Î_0¾`\Ï™¦}Vû¬öÙ@«@«@«òåÊ;°f¬kÖXF3Ý(Ý(ÝH²_¥¦¥¦¥¦kfŠþý#úGg™Î2e’=zÝþÅùǫţ²Ï½QBôûïÒ{ëçgï¥ÍíÊ-•[*·4¸aÌf—+9VrÌ·È·È·H–mõÓ^O{=íû"öEì‹Z«Z«Z+4OâAâAâAv¬kÇÊr”ÒkÄ€q]¼'_ñ¸ßxõèã–CV­ª¾Ý}x› §µ‰ÉG<ÊÙk­â=îp¿ÅçåÉ™li=`ç#ãûõ'ËçÞ-¿[~·¼baÅŠ…Mœy5d…S §N‘ì‘ mCÛИ'¿¿¿GËþ–ý-%×hÕ%JÃú¾®ÈW;‰è÷ßåɇÊF/—¶UÏ6É6É6ipGGsÅsÅs47jnÔÜ(ËžK~¾ü|ùùœ N'£D¹D¹Dëüz€ Y«þ\ý¹úóÇòåË7)mRÚ¤$ËáÝ©ˆS§"B߇¾}Ï·æ[ó­ëyЩ)ÖkFÏž=_ó¨æQÍ£˜§ü§ü§ü„K —.±l[ѤNíêøuü:NKNKNËþêýÕû«Ë50«ù«ù«ù¡›B7…Êô;ÅÚõµëk×.û\ö¹ÌÌÑÌÑÌQ–Yáçìçìç\’Y’Y’ÉNg§³ÓæøRë¨uÔ:Éö³;ØìŽÆ8cËΗ/;/m\lZ©?mÇöË™üæDsŽ~Ãöy 1Ú%­JIl›Ôx†üûˆ}TöªìUÙ«€Ì€Ì€Ì‡k®y¸¦~k®É“&¢¢¢ªEÕ¢jvÚái‡§–kŒ¼Œ¼Œ¼j‹j‹j‹0^8óúQg^?Û»ï^¼{!Ùþb¢˜(&0+—ÔÔT©O“Ý3yU®|W±RÐ~µ´æý¾Ø}5iœ¯´*92ŽŒ#Óh†¼7Û›íÖ?­Zÿ'ËŸ,²¼;ÑèNÔoÏ5yêä©“§ZÔZÔZÔddda’‰6«ÍjŸ«;Ww®.jQÔ¢¨E(‰$Àÿ£N±N±NÑ'Þ'Þ'~µ‹ÚEÉraâ`ÜÁ¸ƒq³fÌâ†sùáÿ¹AŸÙÏìç¢SE§ŠNyôôèéÑów…¾~ý:úu,k]Öº¬uÓwñ)ñ)ñ)“ý&ûMöË2â=R»ïîl²ü†Já…S9Ûö ßû`õ±‘ ³ž<9»gìâ3}ÇTß~¨ßèί®o;TMÙbÊ’>2ÝhèïøÛ§Ò§Ò§òÌÿܺܺ܄ù ó濉zõ&J–9ãõÎë×»"ý"ý"}±­ØVlû{GY8T8T8T²>úüéógcŸÃ)l ›ÂJ ûÝÖaO/‹ßd~³¶ÙE¿:F·¤UÆ—çËóå5úMØgö3û¹‚¬ +ȇ‡mUmUmÕú­¹ÏÆ>ûll¸A¸A¸AÕØª±UcÙj¶š­ÆÂÿ!McÓ4«5«5«¿¬g~Ÿü>ù}Ph\²fÌ>øìg<ûcÀüóÌÿõqïÉ^'{ì–––$r9ˆ0.8óúég^?Á”ñSÆOÿe;'nš¸iâ&Œ>@ãåúÁõƒëiÛ¢ÃÖ äëDjVj–Í-ú5½xíÃøVÒ*£yFóŒæ™F?üÖ¬5k5;kvÖl#±‘ØHÜS§§NOúí¹FuvÔY3_3_3ß\•\•\¶-d ±–ýÜYwÖ}½‹ÞEYψ–-#Z¢<_B ðà©ðTx*/^<œ~8ýpº,&vì4ØiàýÐû¡÷ÃZ²–¬%ëתÚóµçkÏ'%%9::ê_Ö¿¬Y–¸Îè¹Ñs£çn.n.n.ɹɹɹ ùÛô?Š]š]š]ÚÇu„úýAäíö“R2*ì(_ù§LÙÁê*ÑVê³–?ta¬â ±{F´êA«f§ÌN™’èšèšèúÃæÿÞÞšäóÉç“Ï[YYÉ2Ç>žøxâ㉂¡C †ŠÛˆÛˆÛüʱÎ:Ÿu>ë+¿”-ÞZ¼µxkÓ˜ÏZZZÒêomôf„î<ÁíÌ=¯Íšxôë˜Ãy£ç·Ñ©“ÁZ©¡¸©½©½)ʆ²¡Mi›&v;‹%ûûÈé‘Ó#§ú­¹:”¥C§§§T̬˜Y1“ `Ø!|)Ò!Ò!ÒAZ s+r+r+P%h¼q‚8AœG‚G‚G ƒ7 ”Î+W:/ËQñ@Ó¦M|>ðùÀg›››’¬¸¬¸¬8Tg^ íÌ«~J´J´J´$[õÖé­Ó['Œ5@c÷Š~E¿’z¶¾ö¢šáÀ»µ"_ù³›xô{,x“ú0­ÉÇͬ¤†âÆŒ³ÏÙçl“zd˜è¤è¤è¤dû\és¥Ï•úí¹ptÀQÃ%†K —dnÈܹÕeuY]¬q_zÓîM»7í¤Õ0”%Bqÿ0À&ø[ð·àï°˜°˜°˜3gÏÊrabC§ 6trÓwÓwÓ¯V«V«VC…¶œØœØœXUOUOUÏï£ÅÃgßî?Þk˜‰™RW‘u WÍãWžP3nôÜ‚×ãní™Ð­ëø.·äü¾§ÍZ³µfkÍnnnþ±Õã¿à¿à¿H»—v/íñ’xI¼”%vîáÜùG®n®n®®hºhºè'Þ8ÚŽoÇ·ãK¶Aœ%Î7©›/õ ê$õnº£_×R­XŸxâÕʦýòe<|½“dQ𤓴 gˆ3ÄñYñYñÙ¦·}+²-²-²•ìuöÜì¹ÙskvÖì¬Ù]]]õÜá¹Ãs‡ú­¹Zµ:ju hÐ2 eÙ°²aeÃØ ìöB³ÞµT³ÕlµW†W†W†´ºåxåxåxa/ ÐμˆÄ â†d Ô Ô pÆÐDè¹ê¹ê¹JýªÓÞ~ºÞÏ|lï­ü²éE¿Õ>«zlÑ]"?x ´ lVÚ¬´YI˜'Ìæ5½Ñ›7=nºd¯,XPh]h]hý^ó½æ{ͩϦ>›ú¬~{®®ºè:@G[G[G;uDêˆÔâ2q™¸¬Y¯xùl>›{Îí9·çH«[ðâàÅÁ‹±B ðu„:Bè¼è¼è¼«G®¹zD– Ëæ.›»l®Ã:‡uë* * * PáåÀ> ø®æn5®óÁK¹ ¡hù¾Œ˜®7¹pLn¯=ßîÅ0ûaöÃì3dÈ8ð/Ìy ¼Þ™§2Oež²]e»Êv•,‘°½±½±½qVBVBV‚pppì-õõõ‘ü,÷÷÷„¦:ÛC\C\C\¿]í„#þž&™¬ 'óÍëÆýæ_‰¾k¶ìÛýµ5²5²5ooomªãî•è•è•(ÙwáQáQáQÉ××ýY÷gÝŸqÛâ¶Åm{•û*÷U®,ë¯o+ßV¾­Š‹‹‹‹‹Ù?Ù?Ù?›ÝnFÄŠX‘££Ô§ªgkfkfkb дϼ”ß*¿U~û?ny8âሇA€¦Ç¸q;ãvßÞÚØÞÓ;Ù­ öSŸßأ߈Oïâg>ÿv÷híÑÚ£%t:›ìCn+ÞV¼­(Ùwn47š-ùú’Ú’Ú’Zr¹‡Ü3·ÅÜs[Ȳÿºïþ½û÷è:þõ÷Wkø,Ÿåß+½Wz¯TZ•šóÖ 0ÀO! …ŠBãíãíãíïÜ ¸ ËêXÕ±ªc©*‚Š(}Uúªô*üýÄÿˆÿÿs½äzÉõ’ÿã7ÌÂ~ƒ”³î¸«×N½ƒIõ9>½_ Sºó=³èW†B?¡ŸÐ/gfÎÌœ™iii²DJâQ¼tqº8],˜$˜$˜ô_Û“;)wRî$Éw.¨+¨+¨kÚó?~üþøýß®°åaó3:¾•û’Ô^=j\¡/¯,cäkU÷[±~òÿñDj¾ß‹ÏÞ`o°7šì`+³Ê¬²dßi+ÚŠ¶úþ·áÞåÞåÞM|›ø6ñ­E¥E¥E¥,ë¯G†G†GF¡n¡n¡®ø˜ø˜øXóÙûøÝó»çwOZe²–d-ÉZ‚}4@Ó;ó*7.7.7–|gÓK¦—L/a¼š*ú}‰¾ôí-ÌʾóÆ xM;UéÛ¸Bߪ(ïùª÷®ŽÛ{r¤Ó·ûxûøíã·‹Y1+nºW™®‰¯‰¯}åÑ–;-wZþ‡ý… \P.°çÚsí¹Kä—È/‘—eÿu]éºÒu¥˜Ê˜Ê˜Ja‚0AØŒ‚O-]-]-]i•ù´éÓ¦O›šçv 0À¯:@ôûŠ}Sf¤ÌH™ñ(õQê£T9RŽ”#ëw`§©©iÕʪ•U«¢ÝE»‹v£Â’¸Ü@nàšgkž­ù?n¶ãUð|š’rãý.ÿ–ùbíK'Œóíž¾Îyó:ç7\˜³Yˆ,òÒóÒóÒ]».v],K¤d3ÕfªÍÔÔ?RÿHýƒ'à x‚oºÓe§ËN_yB¶XU¬*VmëBþ»üwùï¾§¶^Þæ>»S·?MÑœn˜¡¯0)ëÄë’¨ Þ½ç|Oâœãœãœ›Ã(—ˆJD%"É dÉ8’qD–wæeñ²xY)þ)þ)þÖIÖIÖI²¬¿®Ï]Ÿ»>Ï—Ë—Ë—Ù‹ìEöM{\ü—û/÷_.­™­3[g¶Æþ )yÙ°`ÿ•{åääàÞNM\d¿È~‘ý¾gÛr‹=(ݶô£ûây;æuý)i~ÂÛ·#&\ýžQý©þTÿæ0ÊIŸ“>'}–¬€···LÛù*ç*ç*gWuWuWõu-ÖµX'Ó¯„ÏYœ³8g^^^"Ø-Ø-hâWË?–,5D÷ ñ ñ in[$À¿Ïö {&ãbÆÅŒ‹Ï8Ï8Ï8ý:ôëЯCýìÇ)ŽSg^n^n^ž—–—–—Æ X+hž¥­½P{¡ö¹9rR"·î­úÍCeü÷×So…nµ?üg#ëŠË‰^mü‰q¯Gª¹VÂ[“´7®¦í¿¿!ëCÖ‡¬gG±£ØQÍh8_³¯Ù×_ù­|‘M‘Mѯi‚p²p²pr–E–E–…ý|ûùöóeYmßÛ¾·}Ÿù>ó}æ{A¬ VÛ4*(0(0(PZ¯Óö¥íKÛ‡C!€Æ{楷\o¹Þò¯|ù²æYͳ” yrééÒÓ¥ç÷oO†}Ü¢[µYêõñk3ãí…ÊôÏ»nPräã¼yÝl÷ètüQžÚoÿ÷·Óh¶Ñl£ÙâÕâÕâÕÍh8ç³óÙù_y Ø C6 ù5Màjp5¸þý;úwÜŸ»?w®,‘ð«=V{¬üäüäüäê,ê,ê,šÆ@=ôlгAR‘vÏýžû½æ0a4òòòoϾ=ûö섪 Uªêw`׫G¯½z<­}Zû´6½Uz«ôVìv;§iTIì,v;o»yìæ±Ò*À)× ›t«©†¾’KÁ΀±j356­°rLêmšl)[ʶê ö{¢TT**ù;ù;ù;i¾Ñ|£ùæÌªfTͨšm‹h£h£h£¿‘¿‘¿Qý*iž¦tu‹0tHÏ }öBŸœóúìÿôÆäø¾1Î>±ÝtwdO¯ÙF¬­ŽÕΧë×û0û0û°êŒêŒêŒæ9ŽåÃˇ——¬LêéÔÓ©§Ûì))™»=w{îv'''YÖY‚Kp nš{š{š;ߎoÇ·k¼ãr%äJÈi=Mý;õïÔ¿±uhìg^_òcü?¦)yÀÅçð9|ÎcÇÇŽë·%Y£6ÿÝ@eƒÃÇ)öºc’¯4²æ¡©jÁÿqeÀ*øú¤Î«[Ó?™ßê1^´çâê¾òCê׆‚‚‚›››æ9Žé é é ’•q{éöÒíåo›]KøKøKBî…Ü ¹w¢ôDé‰RYöY[T¶¨lQñ˜æ1ÍcZÍ–š-5[ïxiiIýqˆk˜k˜kXÓž±€¥âÇŋ۷9ns|ÖÕYWg]•åðîa§‡vJ²I²I²ŸŸŸmŒ5y ð@á‚´>~2}ÊÖæý~¹· š£½áÚåò~Òê^^^Û†Ù‡õa}*ºWt¯èlll ³@g΂úEJÖÖÖU®U®U®ÍùÆé\}®>WßÿŒÿÿ3<‡<‡<‡¼r²œ,'±GLLL¬_¯ÀWh8íñD</¿&¿&¿æã ƒ>’eX ·n5<™If’ÞÞÞ‘Æ5ja#ÂF„Ö»dëdëdkÌmœyÁwÇÆpc¸1Áü`~0Õ€†¯¢wEïŠÞO<>ñø„\ƒwtÂÑ G'dÌ̘™1c§§¬§¬§,Y¥êÅÕ‹«7œv Êe‚²HçHçHç‹ôEú"-ËXõdÕ“UOœ{:÷tîYTTÔ¸FíyöóìçÙÒzçÜÖ¹­sÛ¦:c4e¶e¶e¶¶Cl‡ØQ÷P÷P÷åðîVÆ­Œ[qâ:ÄuííímÈ}ÿ8ðãÀ¥õÅúÏw'&4Ïè÷Ë¥ha šÕÚOjÑ ¤Õª¼My›ò6lêW²•leUûªöUíÃW…¯ _¥  P¿HéÉÚ'kŸ¬ †C„ÑÑÑl›À&4·í‰pŸpŸp_rZrZrÚ듯O¾>ù{ãާÞ{:,ªcTǨŽÜIÜIÜIØæÿ?l›¡í¦í¦íöeÅÞ·{ßî}»†ß|ñ;ñ;ñ»¢EŠxmôÚèµQ–yòvüÛñoÇ'ÜL¸™p“Û’Û’Û²áW <$<$=¿Ïü>óûüÞ¸W~»üvùíoœß8¿q.__¾¾|=Æèÿña}XŸ^7zÝèuãËŠ-[»lí²µ ¿ù¢%¢%¢%±oc߯¾½¥pKá–‚,ódÁ‹/¼°el[¦¬ª¬ª¬ªáWàå„—^NÖ#‡É“&7½i‹ ÉªÔ©Ô©ÔqÒqÒqÒYéºÒu¥«,‡w—Ž\:réHÔˆ¨Q#„„„B‹wï(Þ!­Íšgÿ­p Ñï—Ë:ߪùKgø£ÛWžB´aý†õÖ³|–Ï6úï놻†»†Ë=>üøðãà eþeþeþ¬«Çê5» F\#®QêÌÔ™©3ÔÔÔ~^ÜËYÏYÏYKÅR±Tõ®ê]Õ»°=—ºW¨T¨TøJp¸!iCÒ†FÙ¥ ìvB‰S‰S‰“ß1¿c~Çd™K/{¾ìù²g¬b¬b¬bí™Ú3µgf§#FŒ<(­ ‘ ‘ ‘˜í ™Ã‡7o~TÓ0ϼ¦¥ÕK«—VKÖÐw ï@ߨ4FC*†T qç6ÎmÜá’Ã%‡K~^Ü»··G´&Z­ómòmòñå ©²§gOÏžþ•àPÃAÃA£1öH¬!Ök$-JZ”´Hk‡Ö­²Ì¥Ù;fƒÓŠÓŠÓªøsñçâÏ ³×¯O¼>ñZê/ïíVÙ­²[Õ”æ-`€f¤fxÍðšáîöîöîö›Ol>±Y¦Û ¤OÒ'é~?„Ï?Å?Å?õë{´áñ†ÇK¶mѳÌú•Šõƒ(µj„¾’ˬ´AÊER¿ùØÚ¡µCëF<ÑG±£ØQ’! ¹€\@.ˆÝ»-vÛË/w¼Ü!K°ä7ÕoªßÔããcv4;šÝœ·-%Î%Î%Ω©©©©©fcÍÆš•V7CCÃÐ}¡ûB÷%&&†††bû\?¡oC߆¾•¬3÷3÷3÷sé¤kÄ•å”å”åjjjhwÐî Ý¡~k®q’q’qR”S”S”SµoµoµoÃéht‹èÑ-¤µ<~Kü–ø-˜ó Ó¶õÛÖo[/y\ý1æcÌǘ¦qæÕ0=Qz¢ôDIZݼîzÝõº‹*AS’´,iYÒ²ç>žûxî%ï%ï%ïþŒû3îÏ8§yNóœæñÚãµÇkÏ,=³ôÌÒÛín·»ÝÎDÃDÃDÃQÝQÝQýó±ÏÇ>C ëÇ$Å$Å$Er;Sñ¼âyÅó&ÒÉqì8v\Úû´÷iïŸ.{ºì鲞{ì9°~{®‰É“'&[t²èdÑ©àDÁ‰‚ §£¯,^Y¼’ÖrZƒÖ 5šÆ"hÖêÎÖ­;ë«ç«ç«·;mwÚî4Y.L ÿûþ÷ýïsssÿ¼–{¿ò~å-õp­xµÛ¾¹1z¿½ü°ñÉ®)¤Õ°Ú¤Ú¤Ú¤1Îê½½=Éø$£:£:£úËWr{p{p{$P TõöÜÛsoÏÉ { ôè5°hAÑ‚¢b3±™Ø¬ynUÄÄÄHÒƒôV«ò®å]Ë»b ,+bEO—>]úté—µ}ý×ë¿^ÿÕÔ¯{±IlREiEiEièøÐñ¡ãŸ˜?1b^¿5WÿŠþý+ᄨ,¯,¯,g+Ø ¶âwu.F'F'FGZkcSbSbS0ýn_n_n_Écé{=îõ¸×£iœy5|úŒ>£ÏH«•{Š{Š;öžP_BVÈ å yBžørÛ¢ª¢ª¢ªÒÄûîÈ:²ŽYYYÆUÆUÆUCÖ Y7d]ýö\#;ì<²³iŒiŒiLŽ_Ž_Ž›Éf²™¿«s–Þ–Þ–ÞÒZKì"vþnd€àð®ñ®ñ® 4æh룭¶–åÂÄŽ=;öìØãêêZ»»vwíîpì}TxTxTÚ'~P}²jÊn„»ß¿\`AŸ5’•¼Ÿ~?ý~zcœÃ~cýÆú}娂§‚§‚§ß3ÿ““““““­Y²:$K$ì–í–í–••%*•‰ÊšÏ–D|M|M|N èiõ)T6¨l¶ºõSݱºcuǯüN´W|¯ø^Íó¢LULULULDrDrD²aÃ.†]ê·æ>æ=æ=ækkk”óÊyå<Öƒõ`=~e‡b{ÅöŠí%­…Ÿ7~Þøy#Ö€†àÓŠO+>­<–ŽOOOoìg^‹Q?£~Fý¤ÕÇm„Û·˜±ð_åÿ‘ÿGþ’[*™J¦’›]9x,ååéäéä阯1_c¾fìü±óÇίߞ«‹þ-ú·0Xc°Æ`MFTFTF{½Î^ÿ•²‰µ‰µ‰•ÖBëuÖë¬×5ÞáB ÿŠ@E ~5üjøÕ³ygóÎæÉrab]̺˜u1®!®!®!U•U•U•ÿµ=”*¥J©J¾³rÀ”}}âYïàçêJˆu¿™w×ÉBÅ]êo©ð³[¾â)û”}ú•gʆqÂ8aõ{K¾߇—–—–GÎ g3d‰„î9Ýsº—;=wzîtQ?Q?Q¿¦½õûŠ}ž¶Å¶Å¶ÅÒjR:¬tXé0liÿ«È¥‘K#—JÖ³nkÝÖº­¨Ï¿j k k cöÄì‰ÙóBã…Æ ú­¹šk4×h®ñ¿éÓÿfiZiZi{˜=ÌþÙí3Ž3Ž3–ÖªèèèŒ2ÀïµÚGí£$¢Eq¢8Q\c?ójŒž_x~áùi5qÞí¼Ûy7æ-|¿×“_O~=Yr{Rú®ô]é;Ôç_E½‹zõ¶Üùp§bzÅôŠéÒ>WÔ_Ô_Ô_ÚûÄUrÎΞŽ@·~KMþñ3 /$«z·ðnáÝÂÆ23˼˼˼%c’´Vi­ÒZý¨Oär9™á™á™á¶y¶y¶y²DÂöÚÿiÿgÖµ¬kYׄÅÅÛà&£ÛŠmeϵçÚs¥Õ¡dhÉÐ’¡Øº~?CCC—/kø"åEÊ ÜÞðÿP7­nZÝ´¸ ¸ ¸ smsmsmYÖ_Ÿk>×|®›››‹«ÄUâªŸÑæ„n ݺIkCÔô¨éQÓ1²¿¿¿¿“äñóÕW?^ýØØÏ¼;333iupÐuÐuÐŀ¯¨¯¨ÿå6D)G)G)•ù¶Ò­¥[K·Rs¨9ÔœyËç-Ÿ·\–ý×½Ë÷.ß»œÐ;¡wBoQŽ(GôSêÏÄ01LŒ´6¼íü¶óÛÎkÀ *•‹Ê–$,IXr/æ^̽Yìæ¦ÍM››FÖ’µdméŒÒ¥ÿï{vÞ¼;xwøÊwÛ©÷hƒW–e…ŽçuÕVÒF¤vBí„Ú  8D2 áïãïãïûyŸ+Ìf ³sôrôrôO:žt<)K¤Dí¤vR;Ó_¦¿L)è(è(èØD63Ù™ìL‘ƒÈA$­ïÅýŠû÷ÃõÛjBjBjB$«ããã€úüW\;®×.©CR‡¤ïôßé¿Ó—eýõØè±Ñcc¡J¡J¡Šx£x£ø‡Ý¨9ñ~âýÄûÒ>7âeÄˈ—M€_)82828RòÈ9¦GL˜ýÌ«ixÝæu›×m¤õÝŽ¶£íhÌd¦èVÑ­¢[’[+9+9+9Ô翪ØX±±b㇠A‚–\zpéAYö_׆]vmXÌê˜Õ1«…„?ªöîöîöRï“÷*áU«„ÆRsÀðSˆSÅ©âÔ”€”€”€ÇéÓ§wÖeX—aõ;°›vyÚåi—'øNðà+ù¯Ÿÿ°9K!®ìË»öWŽ:)Yaf7³›iØ·J‹gãÙø‡ôCú!ýe(ò¾ê}Õûª_ß‘‡ÈCä‘?9rþd×x×x×xY"%k#k#k£ÓÓS^$/’Ùˆ7 GØ#ì'“ÀI ­¿EŠ:uÀVTš˜ˆ˜ˆ˜ɺÕxÔxÔx >²ãwäwäwLUHUHU°¹hsÑæ¢,ë¯ë?®ÿ¸þ“ç–ç–ç&2™ˆLdi[RURUR•´Ï ‡‰ÃÄA€_ã¸×q¯ã^’GÎÂÂÂýÌËr°å`ËÁ…Õ…Õ…Õ}¤,fX̰˜!­¿´íE{a>€$«ùVó­¾òtÛ¢ƒE‹¢>²«îXݱº£Û?nÿ¸ý³~öúÙëgË Ÿ}pöÁÙájájáj‚q‚q‚q²´ÍÑØÑØÑXÚg™ê›ê›ê7ü #€_å.{—½›!Îgˆ , , ,ú_ì±ÿEYï†Ð^wScý‚MÕÃÍŸ“–QÝg ¾lOc€³‡9´PHÖyj»©í¦¶kÈ“«"¬"¬"L2I*I*I*i-ŸŸŸ/d ™BƳ¯g_Ͼ²DJ„aA$žO<Ÿxž{’{’{²‘m XÖÀ¥Â¥Â¥BZ j j j±á”dú§éŸ¦~Y+Ã'†O Ÿ 2?@U *PÍ‘1"c=ƒžAËô,pssóœî9Ýsº „NB§ÿÚž”)S6J{ÿÐõ¡ëC×cÔ~â~ÁUà*pýÊ¥çþgûŸíßôμƄ nþ—ù_æåíÏÛŸ·Ÿ­cëØºÆ5j–Û-·[n—ÖG—ð%|1·àKÓ'OŸ<ýžþ«¨ª¨ª¨ŠÊü<µWj¯Ô^ù÷þ;‚ví’åšá‘·GÞyXXXÁ;Ä;Ä;ô_Ûã²ße¿Ë~iïo¢b¢b¢Òë‰~Ÿ6‡ÍÉ)Í)Í)5j6ÔlèÈû#ï¼ÿýsï×ß;2qÎïŠK%à¦OÞ0æt¯y’ý*ÞV¼­x[ÜJ!U!U!_ùU¯'¯'¯gÿ³³—t(éPÒÁw¦ïLß™²DJ¯Ì^™½2‹7.n\mimimi#Ø8³Î¬³[†[†[†´~åÇçÇçÇccù¯ºýuûëöKV)rBä„È ¨Ï¯$\'\'\—Åf±Y¬}¼}¼½L¿ò·•³•³•Ë\œ¹8s±ÀN`'°ûž6¤:¤:¤:H{Ïà÷Áïƒßc¤~†ÈŽ‘#;J-‡ÿþWø_MõÌëKƒS§ N1~müÚøu–~–~–>kÇÚ±v ìlÎØœ±9#­_ÖÎÖÎÖΘáPú±ôcéGÉ­„¹Ø\lŽ;îüRÜ·Ü·Ü·þ>þ>þ>åÊÉtßh¹Ý—v_Ú}Éwï:ßuuÛë¶×mÿž6|þqøÇáÒÞÓ Õ Õ µaV048[-¶Zl´bÒŠI+¤f?rÓŸ›øÇ.­”îçL´‘ì—í"ÛE¶‹Üt°VðdÁ“O|~¼®y]󺦑Mý«ìUöj™j™j™j€R€R€’Ö6­mZÛê)=?úüèó£Ñ>Ñ>Ñ>5 kÖ,l ½þÌ~f?»¹¹IëKž]ž]ž¶ñâ'ÄO¬O[ÅV¡<¿™HM¤&R˵ϵϵw^ã¼Æy,‘0±ØFlKÛš¶5m+ÿ!ÿ!ÿ¡´ÏMï˜Þ1½£´÷ù÷Ûî€ë‚öí Ú’GË‚¾‚¾‚¾MõÌëÛz¼íñ¶ÇÛ'Ü'Ü'Ü´Ki—Ò.±#Ù‘ìȆÙkò2y™¼,õKÆ/ß¿|ÿó 9£ÿ¡ÿ¡ÿ‘Ü>äåæåæå¢>¿ÿ.ÿ.ÿnèäÐÉ¡“OÉ’;%S$¼¹Ýæv›Û¹Ÿv?í~ºæïš¿kþ–ö¹qqqÒÞGï˜Þ1½c ­V€ Aã®ä®ä®”<´ÑfHÛî*¿7(mªp¾‹³ÁÜ?%ûµ•ÞJo¥Ú ©r¨r¨úÊoàâ?ĈÿÐèW€`6˜ ®ØP±¡bCH—.!]t„:Baý"%ƒ^½ zELŽ˜1¹êzÕõªë,å±¼ÑÓB¶-ô´ñ´ñ´‘Öþܹr4çíák…× ¯¾¬ÉSù§òOåY+bEØ_44âÎâÎâÎêêêm>Ú|´‘%¶¼gyÏò^ò’ä%ÉKx*<ÞÿÜj,c[ƶ ©_ ˜0)`F@v¢Á¢Á¢Á_¹Éä”#SŽLi},æs‹¹œeœeœe³Ãg‡Ï—åºV[­¶Zm“z'õNê-^/^/n@)`Î2g™³ÒZþöÂÛ o/`Î4OªÚªÚªÿóEù-ò[ä·üûtÔ§¡ŒÚµ-jÛ¥€K—dÙs­\µrÕÊUNKœ–8-©HÚá¬ø‰ø‰¸=m4Â<Â<Â\2ð¨{[÷¶îm\%jÙZ¶¶jaÕª…áááÏ.<»ðìBý"%ÝWº¯t_…Ü ¹r³âiÅÓŠ§lÅFý¶ÞqY.Ëõ¾ç}Ïûž´6ç¬ËY—³®¹m ¹iÜ4nÚWžöú ôAèì) ±‹ØEìRô¡èCѯ4¯4¯4Y"á7Úo´ßh'ôLè™Ð³.².².2ó]æ»ÌwÒ^ÿéø§ãŸŽcdÛ2¶elKÉ#ä@"$šj¯Ë»–w-ïj[g[g[·°ÝÂv ÛÉraýfäÍÈ›‘±'cOÆžÍÍÍù½½³ßi¿Ó~§´ÖšÏ3Ÿg>3 ù¨ +è ú+O{µ0±0±@} Ñ)Ñ)Ñ©8•8•8•Û3nϸ=C–=—újõÕê«™$&‰I*{Zö´ì©_'¿N~¤½^{·öníÝ ¡€ A³J²J²JúÊE•W5ÓófÑòòÌc[,±¼p¨Ï yÝ>ö4ì^ÝÙgRä˜ö½†^²÷ÜHçÒÃæÍjÈ1ðëÕóä%{WªTªTªÔpfˆ««ë—!‡iŒiŒiLs[Sjº×t¯é½%zKô“H“H“ÈúEJÿzø×ÿ8œNÙ­²[e·Øìö×FŒbVÌŠ}7ùnòÝ$­Ù}³ûf÷m>ã›t<éxÒqÉ:Tö«ìWÙ{ŠFL…UaUJÿ(ý£ô¿ ¿ ¿ Y"a³ãfÇÍŽûúúJ{ï[ß·¾oQx€ú¹)wSîæW.õòVóVóV7Ÿ:TæWæWæ;oqÞâ¼e•`•`•@– ë×\\sqMä­È[‘·©‚TÁox’¢ãÇ9Žs¤µÐTl*6ÅS?š‡'OžHn²ûe÷ËÆ™W#&¾.¾.¾ž”œ”œ”üpßÃ}÷ɲçšÕaV‡YîQ÷¨{”´×<|ø ðßë¿«×€ A;ÝþtûÓí¿òôßVn#çz7̸û‡n—;oøöÁâ0ûAl·êÏ–ÖÖ³>4Ìøíã;ÊL%[Õ:ªuTë†07j®Ô\©¹"o|ÞôyÓçMXwj=j=j=bƒcƒcƒ_µyÕæUY‚%_;_;_»’%+JV°}Ø>lŸ_Ó‹OÃ? ÿ4\Z«2“2“2“šÃh¾W|¯ø^ñ˾k?Ñ~¢ý„MgÓÙtÌö&å5ûš}]>ª|Tù¨À´À´À4m_m_mß?”w¤w¤wdº <@ƒ'V«ˆU$w·ÝÝvw[Ô§ælÍÙš³<.x\Øò~Ëû-ïe¹°~âñ‰Ç'‡, Y²Œ¯ÄWâÿ¢¯ŸºttéèÒQZ«L8&Æ i[örÙËe/¿\÷{)ôRè¥Àz²ž¬'êÓ¤¨±j¬Zú„ô éôë-Ö[ÜK·—n/]¹êî »ƒîb«Ø*¶ê×w04h3¯Í¼6óšä!” *à¾ÚÚ†ÿëŠÚ—‘·]WtœêÅä>¦'›ïµùð0ÍÎÈ…È©ÿÏM•û­VKhhpˆÇf†­d¿hÚƒöhs#fL̘˜1’ÁFí?µÿÔþƒuGW«ÎUOì•Ø+±—Eo‹Þ½e < = = y…¼BžXK¬%Öúy-÷/ò/ò/’Ö’ ½ ½ ½¦:jüÉüÉüÉ’½t t tìn2Ø 6£R±R±R1Ô*Ô*ÔêéÚ§kŸ®•=v¡\(Š-f‹Ùb”àÛéD:ñ+7õíäÛÉ·ê#©Î­Î­ÎÍo¹ßr¿å{;îí¸·£,Ð÷ßÞ{ÿíOŸ">Ep—p—p—ü¼–»…¹…¹…Ik‰áRÃ¥†K1¾MOõ¶êmÕÛ$×z½¿ôþÒû õi|Y_Ö7[9[9[Ù$Ï$Ï$Oþ£üGù²ÇÀg‚Î bÙD6ñWv04hÒžXAp€ºZC €»duQ“³û8ÁðÞ4Å_óåSÿýoÎ\-µI›þ“ƒ³×;ŒPi-ÙNÝ!ºCt‡4„¹ñ¢Ã‹/:|fééé`­ù~?}~Ó£T­T­T-Éþ–÷(ïQÞs¸™±"VT-W-W-¹*rUä*C/C/C¯ú­¹==zzôDQ¾Ms¹ærÍå’ÇÆuªuªuª¨ÏwyºñÜxnA)A)A)ÇŽ)SåbúöñÛÇoïÕÑ«£WÇÚžµ=kð¾Ìã¦ÇM›Ò>]/U/U/c Д¸…º…º…J®ïé§ÿþ7êÓL Y!+Ìoß:¿õë9¯ç¼ž£øFñâ›úí¹®¾½úöê/}`hÐ$˜¦mT éUÞ"RÉxWÊÊ„!~ßè~ùW‹÷ÍþÐNC €+Úyö˜—ó•ï-†œ 9ò{gEÝ€ºu$cŒÈÄÈÄÈD¬5²àò ù…é Ó¦/$cÈ2F–HرƱƱ&'3'3'SÈ Yáha°F°F°†´OL-M-M-mJ#ÂéÄéÄé$ÙSö%û’}‰Û܈D"‡ZùZùZùÕÕÕ¸žq=ãzz¼ôxéñò•É+“W&ß¿†Þò¹åsË'{\ö¸ìq¨-€T½Ø^l/É£âMz›ô6é¡<²œœœ1,bØùVç[o%K$¼Öp­áZC×V®­\[U™V™V™ÊÞBïaÞü‡IûDÝ]º»twaš† ‡6Úpè+_ÖWf•YeÔ§Ùí¡ö ö öO,žX<1jCÔ†¨ D<OÄ_³¿fÍ^å€Ê•ß¿‡ê>¢ûˆî#† ú+{4Éæå5sÕ¨7ÌØ³Úä‚RÛïù[§«zñSüûWÃ-»vÝÐ~\×É7tþ\Éúï¾kø®á¿wVÄéÇéÇéK†Õëª×U¯ÃZóc ÛÛÛd)d)d)Ø]µ»jwU–HØî¸Ýq»ãYC²†d þ)üSøgýZÚ9´shgiŸ’ò$åIÊ“¦QÉÞù…ú…ú…bf6)CÙ¡ìPÞ%Þ%Þ¥Ò;¥wJ浪¤ª¤ª0LCÄ1DÌ#›G6lü(?À·¥õJë•ö•Ø}”û(÷Q¨Ï>òÌæ ó>ø<âóˆëú×õ¯ëË /v\ì¸ØÑÞÎÞÎÞ®<¹<¹<¹~­òuóuóu“ö)ÚqÚqÚq;€¦wõéဇ@ešñññ‚ʼʼʼä¬ä¬ä,·énÓݦëéémænænæöÑè£ÑGCî'øõýE ì|£ÊBíA;fœå÷áƒrÎ÷ümê fñœ— ùFмޟöÎw”láæ›7nÞø{g…ùtóéæÓ¿ 0ôFèÐõå×ý!úCôGNaNaN¡SK§–N-e ŸÈOä'òSºrºrº2?ŸÇÏûþ–„¹„¹„¹H{çä±Éc“Ç6újÏÍÍËåärr9ÎêÎêÎê%%%%%%˜‡@&›Éf   Wu­êZÕ5Û9Û9Û9²Kd—È.N: 4N3N3N{ð é{ê{ê{¾oó¾Íû6žxþáù àÛž¨=Q{¢&yT\]R]R=òO'î"î"î’‘‘q?õ~êýTY.¾«1>1^2ü¨¼Py¡òÖ—†C¬-Ökµ(jQÔÂóçÏ7²„[í-Ú[´Oü'ñŸÄ¸ó¸ó¸_ù B$7’É•ö +V&¬Ä¸Àÿa;»ÝÎÂÂRfRfRf’æ—æ—æô6èmÐ[z =…ž¢{I÷’î¥_îšÙšÙšÙºrå6*fMÌš˜5yãóÆç¯öªöªöý%úKô+bE¬ðce)e)e)I;ŠEŽØê6$ÏØgì³ÌÛ™·3ošššÈ; ·~÷Ž+W8þª×«^¯zå–å–å–±Ul[õ册2ZÚ;Ü̼™y3“MeSÙT ÀW®¸Š]Å®ÕÓ«§WOOë’Ö%­‹‡º‡º‡º~¬~¬~ìÏž;<µÔzPë_îÎÒŸ¥?Kÿ¼×y¯ó^–‹,Y. 66llÁá‚ÇùñÿâÿÅòY>Ëo,uF šäÙ ù~o»Ú6ög»®0è8Õëß¿ÿϨ^=7´¸€ç¢3w©dýï;7ûÞìß5Þ©¾S}§úe4òèÅ£^°ùl>›õ¥AëÇöcû•¬/Y_²Þ×Ã×Ã×C–HìeÝ˺—u±^±^±^µ.µ.µ.ÿ~H´v´v´¶´¿Š‹‹‹ÅP€4ZGµŽjý5±îSÿ§þOýmGØŽ°2#dFÈŒŒ-2Z”_*¿T~‰ÿžÿžÿž½ÏÞgïc\~£££ÉãáÊ••++ñŲ†­˜-f‹sæÌ=ø²ëË®/»Ž*U4ª¨~‘À 3ƒÎ :cÄ1âq²ºduÉêÂZ°¬E؃°a¤ýÕµ×^È:±N¬àK]S»¦vMý5±îзCß}»ûýî÷»ßýeô—Ñ_^^^é1é1é15ª5ª5ªl'¶Û©éÕ04h£ŒF2’<€«PËlhð®”• Cü¾ço7<]ØjÐÿû=Á¦3‹® ²hhpì+›#³J$+oadadaôëgËãò¾òûΠÓA§ƒNcMi”4YMV³L³L³L3À)À)Àéa‡=ö¨_œfâeâeâ½*zUôª°ža=ÃzJ{eìúØõ±ëQ~¤e¤e¤e${¸ûþÌû3ïÏøœð9ás"qPâ ÄAE·Šnݪ3ª3ª3ïïïBµ´j¶š­”:(uÐÿ\žVû¬öYí3ÊÓx¶+lWØîݼwóÞÍ›l5Ùj²Uýâ„î»Oì>Q—¯Ë×å;,pXà°@Ú+/-¿´üÒrö{‡½ƒúüK}‘ú"õE²‡»Ë–+,W¸·ãÞŽ{;ìÊìÊìÊbccË• *$ôz ½šs@ƒ¶³ÛÎn;»IäUôòPÝÑÐà.Y]Ôäì>N0¼7MQÚ_qæj©MÚüå_ùY™ ŸÞ«áD¿ÿ.íÝtó§¨IVÞ‰ÿÿ%¿~&¤ðRx)<É ¥übùÅò‹XSšˆ(6Šª0ª0ª0 yò(ä‘.£Ëè2õ át+u+u+¥ýkLxLxL8J_útìÓ±OǤ͙_t~Ñٹιι.J'J'J'')')'©*±*±*Q¨-Ôj³•l%[‰J4vy]òºäu‘<f´-F õiJJ4J4J4ˆÑÄhb´ò åAʃ~ÆïÏÎ;wìÜ1v;‡šhïÔÞ©½SÚ6sÚ²i˦-;½áô†ÓÞ~|ûñíÇàkÁׂ¯å™ä™ä™ð:ó:ó:³Ùl6›J~`hРņbC±äá`Ü[ŽÒì‘ -n1صûÿ{ÔÕ){ÏtvS1œÊµ Ð5åŸã½6¦ùåëï›ý¡ÿœ†öÛß—W­öFŒŒ–¬|NININɯŸ 6£mFÛŒ–ŒdX’%YkJ“Åcy,¯êNÕª;ÊÊÊ# FŒüQ·á=0z Ê ÿ*h_о }Úí´Ûi·Ë—.;ÌoÍoÍoÍ®eײkQ€æãÕöWÛ_m—<.;Rv¤ìêÓ´•Ÿ.?]~Ú.Ø.Ø.xѪE«­úQ1ðÉ'Wœ\!®WŠñu1hÖ"³#³#³Ý½Ü½Ü½RíRíRíª[T·¨n!¶[‰­PŸ04hA/ƒ^½”i}Â/0š©še5Ëj–E‡F‡F‡>¿úüêó«²ÄÀÇŽ;GUà_ ± ± ±_ÏÔž©=S•ižª”«”«”]†» w¾fÆškfÈOKœ–8-U€Ÿ 04håŠåŠåŠ’§ÍËV( ûç5´øßÿÿïï¬Ø9dãPŸAóº}ìñ®û´Î&{ùÔkËíC¦£§VùzOW½Õ0£ßj=ï$UF²æ3²gdÏø 7ØI¯K¯K¯“ íJ×—®/Å“\›·<6ÍÎÎÎ+šQ4£h†ß¿+~W .2\ôý°ñhãÑÆ£QN(´(´(´<¶Ž´Ž´ŽD}@ÐNÐNÐ.³[f·Ìn¦É¦É¦ÉóºÎë:¯ëQIøÙ@ÃVÅV±U½r{åöÊ•õþÔûSonnn›_3¨Rª”*ýÊÍŸW±«ØUXEš*ñ8ñ8ñ¸ºáuÃë†FFF$(&(&(z+{+{+¿kõ®Õ»V?êFÐÜYÜYÜY¨9¼¿ñþÆû’GÂÅóŠçãé­M÷ȳƒ¸ƒ¸Cå¢ÊE•‹’Ò“Ò“Ò]¢]¢]¢uë Ö¼1xcðÆàžá=Ã{†Ë~#hÃ6†m Û æð³!€F@s¸æpÍá’'ÏŸöš9OŸ×ÃÔÆ¸Üshu'ùßsñb«p«p«Ðs©çRÏ¥5Á5Á5Á?côó¯ç_Ï¿þþñûÇïÿ×y_ó¾æ} ëE£t˜=Ìæ/á/á/)K-K-KM–>,}XðÀàÁé:„y2öÉØ'cüBøWÚ‚´i tuu»Üêr«Ë­ñ¢ñ¢ñ"T¦Q"X‚%ê<ë<ëíñ´ÇÓÌæ ó$Ø3Ø3Ø3ýuúëô×åÓʧ•Oãßàßàß`/³—ÙË@€ÆEðYðYð¹¤wIï’ÞÑNÑNÑN”eGÙÝl{³íͶ œ8/pþ•±nW¯®^]½ÖmZ·iÝ&í¥ÚKµ—:™8™8™$ÎOœŸ8¿bQÅ¢ŠE"+‘•È c¿`hÄ™âLq¦´“íb ·Ssãßʾ´)ÑúsÒ‚{)dÑÉE'´K·K·K/¿Z~µü*æs#[ûîŠïŠïÖÕÕ·*nUÜ*1<1<1Üw¹ïrßå–7-oZÞ|ð˽ûüîó»ÏÞÅÞÅÞÅ Ž Ž ŽES‹¦M­Û_·¿n¿x©x©x)Æ ‘yjŠ5ÅšUoªÞT½Ií•Ú+µ×ÇüùóõºéuÓë¶íù¶çÛž÷¿ÒÿJÿ+¿2ÜS6§lNÙE§‹N¬R¬R¬R·†o ßZ8­pZá4þQþQþQVÌŠY1FÀÐh˜®7]oº^ò„üá‰F åˆoeYŠ ‚F©…ʽ»*7^²ÂÙ²;dwH<—x.ñ܃¼yòd¹€¢]2|2|2|jÂkÂkÂÙiì4vF #ÀÐhT ©R1DÚ |EŒçÕ®ˆrë·t®ÑO=-YÕåg—Ÿ]~ö+ƒÑ‰íÄvJÍHÍHÍÐÍÐÍÐÍèþO÷ºÿS¿‹/“ƒ&Mz·ñÝÆw »v+ì†Ùþ»øéúéúéþØXWg‰Î%Ôj 5%0*0*0*mHÚ´!eÃʆ• ã%ó’yɬ:«Îª£þÍGè¤ÐI¡“~F¸»òÐÊC+=˜ù`惙öØÿa\i\i\iYDYDY„¨£¨£¨#êM`hd®æ\͹š#y’{î¡ £{"Êý¯K>Ï?EM^Ú¥“¨Q;¢v|×À¼eß²o³ZgµÎjm¤o¤o¤?hå •ƒVÖï’Í莣;ŽîørôËÑ/GçžÍ=›{¿ûü5B\B\B\¾?Ü}»êíª·«<ã<ã<ãâåâåâå „Âaí‹Úµ/De¢2Qª ’ò}ò}ò}¾ÿa:=žNŸÝpvÃÙ ï6½ÛônSˆCˆCˆCþ±ücùÇx·x·x·Ør¶œ-Gm@#S|½øzñuiR73æpë~ÿÒhß%7ÅÔ¯<»·û¢î‹ºË4T•l%[™›•›•›õêW¼úCa©ÂR…¥õ‹„¶Øn`;CCC‡LLLÖ5d ±FüX¥º¥º¥ºFnFnFnŽ Ž Ž Ë"–E,Ë–Ï–Ï–¯äTr*9‚|A¾ ŸcãØ8T ê‡GòH9X°þ`}Î5:?+xVð¬À³Ÿg?Ï~i6i6i6ÕúÕúÕúâq‚8ø~€ QÒ-Ð-Ð-Œ §Z+Îï(V :ª–p÷ÛËt»™ÊŠÒפ?“þLúógŒ]á¥ÂK…—Þx?âýˆ©-§¶œÚ²~‘pW÷®î]Ýuø:|~êîÔÝ©»Å<1OÌÃÚÍ`h”¸>\®ÔÛ…={wÁ@Q¯´¥À;à’Úª±s‡çõ°’¬ÞÕ?®þqõ_9š%%%dk²5ÙZå„Ê •²<ñë>÷>÷>7¡<¡<¡\ÜCÜCÜë 4€  ìØ-°›´ ÐÿöKãé·÷J./ÿµÛsäLiu«]P» vÁïÙò¨ò¨ò({3{3{³ÅF‹É _'¯“×ÉÏS?Oý¶ðØÂc ƒJƒJƒJy^y|òøä±ßþ}û÷É ï½wôÞÑ~;ývúí¬ó®ó®óÆZ `hRUUU¾ìÅ®²Qœ•Ԣߗo¬YZæ˜w`Þ¾._—¯ÛTçRȬY!³Nœ:qêÄ)Y"á-Ÿ¶|ÚòÉã¡ÇC‡5Wk®Ö\Å `h‚"OGžŽ<ýí0϶HçÊää¦úòô>ùÎ:µakÍðùÒú>5wjîÔÜÚ…µ k6·¹!H$ #OEžŠ©}R{Í2Í2Í2Y"áÙå³Ëg—svsvsv—´*iUÒ €Ÿ04 Õë‡WßX¼±xcñ·ãº)Çîîõ ´ÿÁ ÿ†úŠª‚&¨E¼;y×ybûï _æ¼Ìy™ÃÖ°5l fB= g‡³ÃÓŽ¤I;ò$ýIú“ô7{Üìq³~‘ð¤“NL:aqÊâ”Å©‚ׯ ^£À𣠀æäûý`1Ûb¶Åìï êÆÈ ãöØã请hJ ¿ƒ¿üüÒßúˆ]ôæ.{úàܰ±ZßÓòî÷»ßï~ÿó–Ï[>oÁ°ÿ¶¬-k›u?ë~Ö}c-c-c­Á.ƒ]»Ô/i=Òz¤µÙL³™f3sø9ü>›Ëæ²¹(3üW€ ™Ê–3,gØ2ýeúËô¿?¨ÛÛcµ¼º× “¥?/î­\ëÕ[uœå¼ûÃ&žžq`Â„ÞæßßÂÇGy|„ßßߣüKÕ±ul]ÞÖ¼­y[_•¾*}U:†CŒ!ê ÷7íoÚßÔÀÝÀÝÀ=óïÌ¿3ÿfï±÷Ø{(3|`öÓÊO+?­ÂÂÂû¯A]ד]>ÈEïõ\ÓOþÈ‹Òk Çe{Ž7N–TðÜE}î4ioÄ»w3õbž>œâþhî©?ÇlZ¶YåÏþõ wÕìªÙU“ããã€Ñlh ,ÿ¶üÛòïi›¦mš¶©~£ÜeQ—E]=æ=æ=æ¥Ä¦Ä¦ÄŠÓÅéâtT¾„àÿÅF±Q>e>e>eÓ¯N¿:ýª\vŒ=Æc3ºgtÏÀ/}™Òñ¥ãKÇ“d™1×c®Ç\Yf½’{%÷J6'lNØ,ªU‹ªQa€æ 0€Tyƒóç ¾§|Oùžòï{Ço¿eü«*«*«*1OÌó0:MIÅøŠñã?œøpâÉ%)KR–¤È2[®=¿öüÚóÃÃC¡§ÐSè‰ 4€þƒÌ˜Ì˜Ì˜W¯*^U,ï¼¼óòÎ?8éU’S’S:luØê°•SSSPN('”Cå››ª‚ª‚ªWgWgWçuÖ}X÷A–iu®å¹–çZ†? þH .P¨£ÂM`€&C#C#CÃû ÷A[œ[œ[/4_h¾ÐÔÒÒ28fpÌà˜ù0óaæÃì.Ú]´»dddÍ×âkñµP=ø¶Ú­µ[k·z¹x¹x¹ìPß¡¾C]–Hø¨üQù£òA³ƒfÍæÝáÝáÝA…šÀ÷>÷>÷¾ÿYÿ³þgèÐ= +K$¼[¸[¸[èûÎ÷ﻺ+uWê® Â`€&‚„„$¤ ¤ ¤à¤þIý“ú²D›u6ëlÖq÷w÷w÷¯Q¬Q¬QD…>ÀM–°½°½°}TϨžQ=/­¼´òÒJY"ᕉ+W&:½qzãô¦Ò¨Ò¨Òhh4#¢]¢]¢]±¢XQ¬èÖ§[Ÿn}’%VOWOWO·f;ÍvZ™[™[™* ð{!hÖħħħ’L“L“Lµj´j´jd‰„g™Í2›efsÇæŽÍb£b£büJà—B ÿk;‹•V›V›Vû4åiÊÓ”ž•=+{VÖ/žØ}b÷‰Ýß>|ûðíÃÅÅBÝt‰éÓ%9×r®å\cSÙT6e`øï¬€äEçEçE›'š'š'*vTì¨Ø±~‘p¿ñýÆ÷ÿÌ÷™ï3ߌ{÷2î±gÙ³ìY”þ+ÿÿÿ5y5y5ù+®|¸ò¡leÙʲ•¨ 4€à‡)ÚX´±h£e‰e‰e‰­D+Ñõ|˜p´\´\ô£ºGuêR¦,LY(þ$þ$þ„ ÷T8¨pPArB¡2Ð| €Ÿ¨Ô Ô Ô€r¡\(ÕªT;ÈÉànæÝÌ»™ñ>ñ>ñ>¢Q„(†ñµøZ|-É9sùè壗¢>Ð| €_ªâQÅ£ŠGsæ:Ì]6dÙeCd‰„¯Þ¿zÿêýèºèºè:¡¾P_¨ 7O¡ª¡ª¡ª’3$êcÔǨ¨4€à7«ž]=»z¶Û ·n7ÖW¬¯X_!K$|&çLΙœ°ì°ì°lœ@N€Ûÿ6 §FŸ}j´ä|ÎÎÎD} ù@ Ní»Úwµï¼/z_ô¾¸óâ΋;/Ê > |ø§ÎSç©£ÂM‰P^(/”—÷S.§\N¹ >ÐÜ €F€È ä(((t9èrÐE–HxWè®Ð]¡>…>…>…uSê¦ÔMA…¯¨#QG¢ŽHŽr¨q¨q¨1êÍ `h”ø| ¾E¨A¨A¨Á)ûSö§ìe‰„7­ß´~Óz÷Vî­Ü[U§T§T§ ÂÅ¥ÌK™—2%Ç”ÿŽÿŽÿõ€æ04ÂÂÂQ.Q.Q.—\>pù€,‘ð ãÆ+Œ?;~vü\©\©\©Œ 74¢s¢s¢s’cwÐó çAOÔš'ÀÐd‰ˆˆÄÅÅÝþ|ûóíϲDÂjÏÔž©=c4 F£lSÙ¦²M¨ðï·ÐÞ}¼õƒôƒôƒ2Zd´ÈhÁîfw³»Qæï÷ðêë¯JÖ¶Ö²Ö²Öõ€æ 0@=}*úTôÉ*Ü*Ü*|Æ_3þšñ—,OÖ®Ò®Ò®JvNvNvÛˆmÄ6¨ðW,`° $«·¾n}Ýú:”0ÀSÊ/å—òi=ZÖ›¿iþ¦ù›d‰„ïÄÞ‰½?:~tühGÄqPáôÙé³ÓgKÖÊíŽÛ·;¨`€Ÿ¨"¿"¿"ßQÎQÎQnùÞå{—ï•%¾rêÊ©+§¢×E¯‹^'Ü'Ü'Ü×Üê©§¡§¡§!Y™jåjåjeÌ7À¿TµnµnµîÇ|\°Qa£ÂFY"áÓþ§ýOû‡Í›6ƒŸÈOä'6ÙÂù±~¬_/Û^¶½l¿¬À²‘ËF.‰yð/À¿Ymymym¹ÏTŸ©>S5¬5¬5¬e‰„}>ôùÐ瀸€¸€8^^^›¦Q¥ì%ÙK²—Hö×AÍAÍA ³à_€^{^{^û€´€´€´C™‡2eÊ k¼Ðx¡ñÂGÑGÑG±¶¤¶¤¶¤1ÖÄDl"6Kö®B§B§Bsà_€~2?™Ÿ67lnØÜÓ1§cNÇÈ o쿱ÿÆþç|œóqNµvµvµvƒî¼²BùTùTùÔ/{¡ÚUµ«jWÌ €/!h”„„„¢·Eo‹ÞvåÚ•kW®É /ß°|Ãò ŽmÛ8¶©È®È®Èn8=Íïœß9¿³d›)ʃòÀLø`€&BDŠH?!~Bü„;™w2ïÈtãèù‹ç/ž¿˜Ö¤5iÍÒÚÒÚÒÚßÕ¯×k_¯}½V²…¥F¥F¥Fw€/!h²Ä1GÌIöHöHöÐfµYmV–HxzíôÚéµV~V~V~E^E^E^¿¦Š>Š>Š>_¶DÉQÉQÉã 0@s²‡ÝÃîÉhÑ:£µþgýÏúŸûDõ‰êU¿HxÜÖq[Çm}íòÚåµK¾Z¾Z¾+bE¬èG5¶èIÑ“¢'’ŸkYiYiY‰Á„ yûÌ~f?ç´ÎiÓúÅÞ{_ìV1¬bXEý"á¡—†^zéùçžȾ•}+ûıAõkšÕn«ÝV»%?¥hsÑæ¢Í:I€à+ò=ò=ò=Þoˆ7ÄøÀñãë ÷^Ý{uïÕzázázáéÒ/¤_`W°+Øßӆ黦ëËwSì¦ØM±F@Àð]Š'O,žhMYSÖÔÌÍ37ÏÜ,Ë…–=,{X–<2ydòHñcñcñã/?«4¨4¨4Hò¯ÌSÍSÍS1Ò €z*Û^¶½l;sˆ9ÄR{«öVí­,‘ðíÀÛ·ãžÄ=‰{BÞ%ï’w%_“››‹ÊHƒ~˜JÕJÕJUÇ4Ç4Ç´–+,WXÊý CR†¤ Ia¬€ ÎÒ €Ÿ¨:£:£:ýƒ{÷›ölÚ³i,1ð©÷§ÞŸzú8ôqècþkþkþkTàK€à—ªSªSªSò©ò©ò©Ú•¸+qW¢,‘ðAâ qç~â~â~B…ë§J¯J¯JOA¤ R9e:e:e¢&`øÍx‹x‹x‹õõõF¸Œpá"K$¼óðÎÃ;{Ÿð>á}¢öMí›Ú7¨ð·U;U;U; ~9øåà—_VÒ¡£CG‡Ž¨@ã‚„êÕªHº :/è¼ ³,‘ðú¬õYë³Üλw;_=½zzõtTûK“,&YL’V=»Ñv£íF£J`hÜòÝòÝò%È4^/'4 ¢ÅÑâhñUý«úWõe‰„—u]ÖuYW‡iÓ¦UhVhVh¢þÁÁÁÒ*F+ÑJ´ªÐð!€aƒþý _‰uÙYì,v–äëEQ¢(QT|P|P|ÐÝÒ»¥wKe‰„ç‰æ‰æ‰(†b(¦ôIé“Ò'Ís,K,K,K¤U‰˜NL'ðûi€ 0üfµ¡µ¡µ¡’q£_‹¯Åÿþ÷û‹ýÅþ)ËS–§,ÜòqËÇ-å²å²å²ë +™+™+™[fYfYf­)ZS´¦ùŒ§§§…´ÊX+X+X+`Þ4L€à7óNöNöN– “^%½Jz%Ó[Ÿcϱç2´3´3´ŸE<‹xÑO¥ŸJ?•úEÂcEcEcEæáæáæáyayaya¬€°‚¦:.Ô_Ô_Ô_Òªñ¾ÓûNï;aö44€à7Óè¥ÑK£—dÄ(>->->ýƒ?,•MeSsnçÜιmºÞt½éúëG¬±¾~‘°|Wù®ò]MΘœ19“Ý2»evKÖugÝ›Òè0BFÈ¥UàMΛœ79˜Ã `øm¸EÜ"n‘d¬x+øVð­à_Ù’‚É“ &¿5xkðÖ`â°‰Ã&«_$Ü3³gfÏ̧QO£žF¥•§•§•³3Ù™ìÌÆ>Rö9ö9ö9ÒzýŠxE4¯µ€IDAT¼"0ŸÀðÛhhhJŠq-âZÄýæ3ÖbÓbÓbS›Ç6mÏ"f³9hhh$$$ˆOŠOŠO6Æñrôtôtô”ÖGÓý¦ûM÷cVü^€à·9´öÐÚCk%£DÑ.Ñ.Ñ®†ÖÚ2Ï2Ï2OÛ¹¶sm窗ª—ª—Ê ßr¹årË%¶6¶6¶V´S´S´³±ŒšË#—G.¤õˤ‹I“.˜Û¿ `ø øÞ|o¾·d|xiý¥õ—Ö7–^T¾¨|Qù‰ãÄqâ¬,XY°²@–HøÒüKó/ÍêÕ)ª“°­°­°mCîûÇ%—|\"­/”e@ažüz€à7- - -“ £úDõ‰êÓxûU3¡fBÍ÷÷÷ˆÍ¦›M7›Ê Ÿ¼òþÉû!™!™!™üCüCüC ­¿‡@Zûõ”õ”õ”1Û~%Àðœ^|zñéÅ’‘¡ðoáß¿›ROënÔݨ»áKú’¾äžö{Úïi/K$|àöÛnûõ?ê”{‡{‡{§!ôÑÛÌÛÌÛLZ›uÿGõjD5¢š{¼{¼{FàÛÀO¤¿M›þ6ÉH¯ª¨ª¨ªõiìjnÔܨ¹á¡ç¡ç¡·%fKÌ–Y"á]v}ØõAÚ¿j\Ѹ¢qEÔNÔNÔ•0ülÑgHŸ!}†|ã-É^’½$åiªê>Õ}ªûäwÀï€ß½J{•ö*ÉýPÛÔ¶©mSGµ$!€Ÿ";(;(;H2ÀûpæÃ™gPŸæƒçËóåùÕÕÕ[wlݱu²ÇÀjŸÕ>«}¨0À—ÀOñ¼âyÅó Éè®bbÅÄŠ‰¨Os&¸"¸"¸1;bvÄìó çÎ+Ô/^ËYËYËA=¾„~ŠajÃÔ†©}×Íõ›ë7וiFÖ±ëØuµÊµÊµÊ™w2ïdÞñê;ÔwèóÏ>¸ÿÜþsûÏ9j䨑õ € ­ ­ ­Pf€/!€ŸbÒÎI;'íü2®#sÈ2•iø|¾GabababÄʈ•+m†Ø ±ryÅå—W¨Ä©Ä©ÄÉýdI€à'*‹ŠEœœœe=Êz”õ@M2QŠ(E”R^^žÔ7©oR_gggŸG~üùmß ¿A¾{J÷”î)r¿Z¢Z¢ZâõK×/]¿Dž#Ï‘ç¢B£B£B1^’4u&¬ kR§Q§Q§‘}'ûNöÿ?üÿðÿÃ,Ñ,Ñ,ñÈ?Gþ9ò¢™¢™¢Ù¯Œu/*^T¼x¸ìpÙá23/3/3¯O¥ŸJ?•fŸË>—}®nsÝæºÍ¬kÄa¾`€F¯X«X«X+*5*5*•|D>"]7¼nxÝPM¤&RýÊX·û‡îºØÐrCË -Y?²~díL8ÎDR‡¤I*ü*ü*üD‰¢DQ"F àg@ ÐèýšpWÅNÅNÅîò„Ë.O°ioÓÞ¦}„r„r„raXaXaß™ïÌwÆXü^€½Á|°~±î¨–£ZŽj¹ýþõû×?oý¼õóÖ¾r¾r¾r™ç2Ïež«V;­v»š]Í®F>ÀÞ…; w$ÃÝÕ}V÷YÝGó¥æKÍ—×®;\www-_]¾º|µh¾h¾h>ªД h"4€šÀM`€&0@ ‰@ ÐD h"4€šÀM`€&0@ ‰@ ÐD h"4€šÀM`€&0@ ‰@ ÐD h"4€šÀM`€&0@ ‰@ ÐD h"4€šÀM`€&0@ ‰@ ÐD h"~iìÛÊ·•o+9€fãßœ0@£‡ ‰hv0c˜0&ŒcÄ1ŒcÀsŸ¹ÇÜcî1w˜;Ìæs‹¹ÅÜdn27™ëÌuæ:s•¹Ê\e®0W˜+Ì%æs‰¹À\`.0ç™óÌyæ,s–9ËœfN3§™SÌ)æs‚9Áœ`Ž1ǘcÌQæ(s”9Ìf3™ƒÌAæs€9Àìcö1û˜=Ìf³›ÙÍìf4 FƒÙÁì`v0Û™íÌvf+³•ÙÊlf63›™MÌ&f³ÙÀl`Ö1ë˜uÌZf-³–YͬfV3+™•ÌJf³‚YÁ,c–1˘%Ìf ³˜YÌ,f2 ™…Œ:£Î¨3ó™ùÌ|F•QeT™¹Ì\f.£Ì(3ÊÌf3‡™ÅÌbf13˜Ì f:3™ÎLc¦1Ó˜)Ìf 3™™ÌLf&2™‰Ìxf<3žÇŒcÆ1c™±ÌXFQ`˜ÑÌhf43’ÉŒd†3ÙáÌ0f3Œ‘gäyf03˜Ì b1ƒ˜ÌfÓéÇôcú2}™¾Lo¦7Ó›éÉôdz2=˜L¦ÓéÆtaº0]˜ÎLg¦3Ó‰éÄtb:2™ŽL¦ÓiÏ´gÚ3m™¶L[¦5ÓšiÍüÅüÅüÅ´bZ1­˜?˜?˜?˜L ¦-¦Å´˜ÒBZH h- y4æÑut]G×Òµt-]MWÓÕt%]IWÒt]A—Ñet]B—Ð%t1]LÓ…t!]HçÓùt>GçÑytCçÐYtEgÒ™t&N§Óét*J§Ò)t B'ÑIt@'Ð t<OÇÓ±t,KÇÐ1t EGÑQt$IGÒát8N‡Ò¡t(B‡Ð!tDÑt@ûÓþ´?íGûÑ~´íCûÐÞ´7íM{Òž´'íN»ÓîôGú#ý‘v¥]iWÚ™v¦i'Ú‰v¢hÚ¶§íi{ÚŽ¶£íh†fh†¦hЦh’&i’æÐšC[ÓÖ´5mI[Ò–ô{ú=ýž¶ -h ú ý†~C¿¦_Ó¯éWô+úmF›Ñf´)mJ›ÒÏéçôsÚ˜6¦i#Úˆ6¢ hÚ€Ö§õi}ZÖ£õè'ôú ­CëÐ:ôcú1ý˜Ö¦µimZ‹Ö¢µhMZ“Ö¤ïÓ÷éûô]ú.}—¾MߦoÓ·è[ô-ú}ƒ¾A_£¯Ñ×è«ôUú*}™¾L_¦/Òé‹ôú}>GŸ£ÏÑgè3ôú4}š>MŸ¤OÒ'éãôqú8}Œ>F£ÐGè#ô!ú}ˆ>H¤Òûéýô~z/½—ÞKï¡÷Ð{è]ô.z½“ÞI路ÓÛéíô6z½ÞBo¡·Ð›èMô&z#½‘ÞH¯§×ÓëéµôZz-½†^C¯¡WÑ«èUô z½‚^N/§—ÓKé¥ôRz1½˜^L/¢Ñ‹èôz­F«Ñjô|z>=ŸžGÏ£çÑ*´ ­BÏ¡çÐsèÙôlz6=“žIϤ§ÓÓéé´­D+ÑSé©ôTz2=™žLO¢'Ñ“è ôz=ŽG£iEZ‘C¡ÇУéÑôhz=ŠE GÐ#èaô0z-OËÓòôz=„D¢Ñèôº?ÝŸîO÷¥ûÒ}éÞtoº7Ý‹îE÷¢{Ð=èt7ºÝîJw¥»ÒéÎtgº݉îDÿCÿCÿCw ;Ðèöt{º=Ý–nK·¥ÛÐmè6ô_ô_ô_t+ºÝŠnI·¤[Ò-èt JL‰)1%¢D”ˆPJ@ñ(Å£¸—âRµT-UKUSÕT5UEUQUTUAUPeTUF•P%T ULSÅT!UHRùT>•OåQyT•CåP9T•EeQ™T&•I¥SéT:•J¥R©T •B¥PIT•D%P TOÅSñT,KÅR1T CEQQTIER‘T8N…S¡T(J…P!TDQAT@Pþ”?åOùQ~”åCùP>”7åMySž”'åI¹Sî”;åF¹Qn”+åJ¹RΔ3åL9RŽ”#å@9P”=eOÙS¶”-eK1C1Ô¿Š ŠCq(eMYSÖ”%eIYRï©÷Ô{Ê‚² ,¨7Ôê eN™SæÔ+êõŠ2£Ì(3êõ‚zA=§žSÏ)cʘ2¦ )CÊ2  (JŸÒ§ô©§ÔSê)õ„zB=¡t(J‡zD=¢Q©‡ÔCJ‹Ò¢´¨ÔêuºGÝ£îRw©»Ômê6u›ºIݤnR7¨Ô êuºF]¡®PW¨ËÔeê2u‘ºH]¤ÎSç©óÔYê,u–:C¡ÎP§¨SÔ)êu‚:A§ŽSÇ©£ÔQê(u˜:L¦Q‡¨CÔêu€ÚGí£öQ{¨=Ôj7µ›ÚMiP”µƒÚAí ¶SÛ©íÔVj+µ•ÚLm¦6S›¨MÔ&jµÚ@­£ÖQ먵ÔZj-µšZM­¦VR+©•Ôrj9µœZF-£–QK¨%ÔjµˆZD-¤R )uJR§æSó©ù”*¥J©Rs©¹Ô\J™R¦”©9Ôj5‹šEÍ¢fP3¨”¥D)QÓ¨iÔ4j 5…šBM¢&Q“¨‰ÔDj"5žO§)EJ‘K¥ÆR ”¥@¢FQ£¨Ôj5œN §†RC©¡Ôj5„L ¦S©Ô@ª?ÕŸêOõ£úQý¨>TªÕ‹êEõ¢zP=¨Twª;ÕêJu¥ºR©ÎTgJŽ’£ä¨¨¨¨Tªõ7õ7õ7ÕŽjGµ£ÚPm¨6Tkª5Õšú“ú“ú“jIµ¤ZR-¨T ’%Y’%E¤ˆ‘R@ H>É'ù$—ä’\²–¬%kɲ†¬!«È*²Š¬ +È ²Œ,#ËÈR²”,%‹Éb²˜,$ ÉB²€, È<2Ì#sÈ2‡Ì&³Él2“Ì$3Ét2L'SÉT2•L!SÈ2‰L"“È2L ãÉx2žŒ%cÉX2†Œ!cÈh2šŒ&#ÉH2’ 'ÃÉp2” %CÉ2„ !ƒÈ 2ˆ ÈÒŸô'ýI?Òô#}HÒ‡ô&½IoÒ“ô$=IwÒt'ÝH7Òt%]IWÒ™t&IGÒ‘t$HÒ´'íI{Ò–´%mI†dH†¤HФH‚$H‚´!mHÒš´&­IKÒ’´$ß‘ïÈw¤iAZoÈ7äÒœ4'ÍÉWä+òiFš‘fä òù‚4!MHÒ˜4&ICÒ4$Ÿ‘ÏÈg¤>©Oê“OɧäSR—Ô%uÉÇäcò1ùˆ|D>"’ɇ¤&©Ij’Èäòy¼GÞ!ïwÈÛämò6y“¼IÞ$¯“×ÉëäUò*y•¼B^!¯—ÈKä%òy¼@ž'Ï“çɳäYò,yš®„+áJ8΄3áH8Ž„á@8ö„=aOض„-Á Áü»$þeCØ6„5aMX–„%aI¼#Þï ‚° Þoˆ7„9aN˜/‰—ÄKÂŒ0#̈Ä âaB˜&„1aL†„!aH<#žÏ=BÐ#žO‰§„.¡Kè‰ÇÄcâñˆxD<$ MB“Ð$î÷‰ûÄ=âq¸CÜ!î·ˆ[Ä-â&q“¸I\'®׉«ÄUâ*q™¸L\&.—ˆKÄâq8Gœ#Îg‰³ÄYâ4qš8Mœ$N'‰ãÄqâ8qŒ8F#ŽGˆ#Ä!âqˆ8H$û‰ýÄ~b/±—ØKì&v»‰]Ä.b±“ØIì$¶Û‰íÄ6b±ØBl!¶›ˆMÄ&b±Ø@¬'Ö뉵ÄZb-±šXM¬&V«ˆUÄ b±‚XF,#–Kˆ%Äb1±˜XL,$ uBP'Ô5BP%T Ub.1—˜K(Ê„21‡˜CÌ!f³ˆYÄ b1ƒ˜NL'¦ÓˆiÄ4b 1…˜BL"&“ˆ‰ÄDb"1žOŒ' EB‘KŒ%Æ „¡@Œ"F£ˆÄb1œN '†C‰¡Äb1„D "‰Ä@¢?ÑŸèOô%ú}‰>D¢Ñ‹èEô"z=ˆD7¢ÑèJt%º‰ÎDg¢щèDüCüCüCt :ˆöD{¢=Ñ–hK´%Úmˆ6Ä_Ä_Ä_D+¢ÑŠhI´$Z-ˆD Ž˜#æˆ9BŽ#ä8Ž€Ããð8J/¥—ÒKé©ôTz*Ý•îJw¥«ÒUéªtV:+•NJ'¥“ÒAé tPÚ)í”vJ¥ÒFi­´VZ+-•–JK¥¹Ò\i®„*¡J¨ÒTiª4U+•ÆJC¥¡ÒPi 4P(õ”zJ=¥ŽRG©£ÔRj)µ”šJM¥¦RC©¡ÔPª)Õ”jJ¥ŠRE©¬TV*+•ŠJE¥‚RA© +ÁJ°¤)AJ€ (þŠ¿â¯ø)~ŠŸâ£ø(>Š—â¥x)å”rJ9¥¬RV)«”VJ+¥wÅ]qWJ)¥”RŠ«âª¸*%”J ÅEqQ\”¢JQ¥¨â¬8+Ί“â¤8)…”BJ!ÅAqP”‚JA¥ ’_ɯäWò)ù”|Šb§Ø)y•¼J^%’GÉ£X+ÖŠµ’KÉ¥äRr*9•œJ%‡’CɦdS²)Š…b¡dQ²(Y”_•_•_•Ÿ•Ÿ•Ÿ•Ÿ”Ÿ”Ÿ””””ï”ï”ï”o”o”o”LJ&%“’AÉ dãåx9^þ(”?ÊäòùüN~'¿‘ßÈoäX9VŽ•_ɯäWò ù…üB~.?—ŸËÏägò3ù‰üD~"?’Éäòù|_¾/ß—ïÊwå»òmù¶|[¾)ß”oÊ7äò ùš|M¾&_‘¯ÈWäKò%ù’|Q¾(_”ÿ‘ÿ‘ÿ‘ÏÉçäsòùŒ|F>-Ÿ–OË'å“òIù¸|\>.•ÊGå#òùˆ|X>,–Êåƒò~y¿¼_Ž’£ä(9RŽ”#å=òy¼[Þ-ï–wÊ;åòvy»¼]Þ*o•·Ê[ä-òy“¼IÞ$GÈr„¼AÞ o×Ëëåõ¢ä)NïÄ!Nlp²$K²$¯”WÊ+ååòry¹¼L^&/“—ÈKä%ò"y‘¼H^ /Èóåùò|y®J¥÷Ò{é½ôVz+½•ÞHo¤7ÒkéµôZz)½”^J1RŒ#=—žKÏ¥§ÒSé©ôXz,=–J¥‡Òéô@º'Ý“îIw¤;Òé–tKº%Ý”nJ7¥ëÒuéºtUº*]•.K—¥ËÒ%é’tIº ].Hç¥óÒyé¬tV:+‘ÎHg¤SÒ)é”tB:!ŽIǤcÒQé¨tTŠ–¢¥hétH:$H¤ýÒ~i¿´OÚ'í“öJ{¥½Òni·´[Ú%í’vI;¤Òi›´MÚ&m‘¶H[¤ÍÒfi³´QÚ(m”Â¥p)\Z/­—ÖKë¤uÒ:i´FZ#­–VK«%ER$EljÒ*i•´JZ!­VHˤeÒ2i©´TZ*-–K‹¥…ÒBi¡4_š/Í—æIó¤yÒ_Ò_Ò_Òli¶4[š%Í’fI3¥™ÒLiº4]š.ý)ý)ý)M‘¦HS¤ÉÒdi²4Qš(M”þþþÆIã¤qÒXi¬4V-–FK#¥‘ÒHi¸4\. “†Iä!Òiˆ4H$ ’H¤R©¿Ô_ê+õ•úJ½¥ÞRo©§ÔSê)u—ºKÝ¥nR7©›ÔEê"u‘:I¤NR©ƒÔAj/µ—ÚKm¥¶R[©µÔZj-µ”ZJ-¥R ©…*…J¡RS©©ÔTj,5–K¤FR#©Ô@j Õ“êIõ¤:R©ŽT[ª-Õ&NÓ _‚òP`HÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL €Î¸4âÒˆK&8½ÿôþÓûÓrÝ’_Ÿ´掘+a[¶„­)ð°‡ý8ìÇ´ M €¤.``tëp“ÃM7±0™‹—‹—‹0óEL @* Ú“Ü’–kÒkg¯½vZ|¢Cu:Ô)mÖ@ê"& •i!ŒüèýÑû£wÁSO<õ©pï¿{ÿÝûï´Y[`©‹˜€T¦…0r»ÿvÿíþjëà±ÁcƒÇµÿëééI ÀÊ´F¶ý³íŸmÿT[¹™ÜLn–üzîʱ+Ç®æÒWÀ``RÙ× #ߌ}3öÍX›†6 m¿{žy:äéðzùë寗ÿÑâ´P[ÏŽu:ÖéXçK¯30€ÔEL @*ûºaäßÿ.øwAµwo³¨Í¢6‹ÄO^l|±ñÅÆj?içbçbçò®ý»öïÚk¿¯€ÀÀ¤²¯F6èÕ Wƒ^jï¾Ãu‡ë×ÄkâÙÖ³­g[µŸß¾%|‹öûŠ€@L à?>TþPùCåíþÛý·ûw.Ó¹Lç2×®\snçÜι]Έœ9# Ï*<«ð,ÿÌþ™ý37Üüqódžò†ò†ò/N¿8ýâô—^ÃgYŸe}–uÕUCV ý9ôçП}<}<}<ÃÃï¡oQߢ¾EC?„~ý u•ºJ]Åï~¹u;80éEíçcnÆÜŒ¹9ýðôÃÓW·©nSݦÔõR×K]Ï–+,W˜}Vû¬öYËÌ,3³ÌÌ®Ö]­»Zï,°³ÀÎŒáäí“·OÞ›69l² ^õ½ê{Õk˜»îþ¹û‹õÌ“?&LÉ„’ %j﮽»öîAÁƒ‚‹gÜ~ôþèýÑ;u×ík…‘Ï3<Ïð<ƒøÔÆï+¶‘¸bqÅâŠ%þ­ µ&ÔšPKmmÅôåÖœ@ê"&%!KB–åÊre¹RðTÁSOY|–ıӫˆW¯"Rk_î{¹ïå¾!…†RH-Ü2…å>Ë}–ûÄ‹ð5u;ÒôðI„¾jOiM^О =A{¾H¬¥å‘%!KBqsãòOË?-ÿÔ"•$þ¤Ÿz»c‹T•òNZôý¢ï}¯öúý{ôïÑ¿‡ñ{]ªz©ê¥ªj¿e=Îzœõ¸ÔÝ¢Mïô掘HמÚ=µ{jW©M¥6•Ú¤n”å4Öi¬ÓØ”G/ÇòË,¡å…–Zžºkèé険áPòáS¼m¼m¼m¯½vöÚ™òõ×§Öúky$ˆ¨¾þÈú#ë´øÂ‚×¯^oúÚj-®\¯r½ÊõÔ^ÿD¦™NdR{/ïŠÞ½+ªý®RC©¡Ôø{!`©‹˜H§û<öyì#n™ûåâ4[o[o[ïÏ `ÄÍ“¿Â—øÜ”÷jòáÓ°wÃÞ {—ºë/n’õ×òHW–ëS®O¹>i¨ÊoU~«ò›)k«øÎÊ;+ï¬Ì–1[Æl_Ù}¯û^÷½É¿ÂÄÀ‰ÕÖ­Þ´zÓêMûa*0€ÔEL ¤;â  ây®¦\ ¹bÞŠy+æ]Ïx=ãõŒoƾûf¬øï̓7Þùu¯9vÊØ)c§ˆ~¾þâú‹ë/Þö{Ûïm?oŸÞzÿéýâùÄbÌ$¿ž‚øùä×°Yä_Yí·R2ö¦]œvqÚEµwLü”_µW¸RâJ‰+%’¿}ú—xŠ60€ÔEL ¤;S˜úÃÔÔbRÎ4Ì4Ì4ˆ§®šŸñ;âwÄ/ùfêÛ©o§¾5åÕ¶nغakµ×Éq:Çé§ß_|ñ}Ó?µx®mâgkЫA¯½R©½rñbÅ‹/–ø_ÚþÙö϶¾oø¾áûÿqýñÒCK-=”|ß~Þšky$ˆà6ùç=‹›B‹(:uÃB¡î’ºKê.ù¼ñöa¤§§§Ú;Š¨Þ”wOþu½YôfÑ›Ô]s`©‹˜HGî†Ý »fµÂj…Õ µ˜äßÀﳈ›6«½rÁSO<%®ÐU{…½çöžÛ{.ù GD¿Ÿêˆ8ù×Wß~^˜+ž<xâCå•?T6ýSTs®æ\ÍYí5Û9·sn§§‘°³ÀÎ; ¨½‚¸¡ñË}/÷½Ü—’x/ù«f?µWM ©»]_èx¡ã…ŽjïUaF…f˜þj“';NvT{µªåª–«Z.mžœM àóéȘcŒYüsOSþ.ý{ôïÑ¿‡Ú»Ï~<ûñìj¿ú!ôCè‡äŸBšò5WŽª½KËc-µ<ö%®û79Üäp“O}ý9BŽ“¿=¯žFBØä°Éa“Õ~wŠÕ«)V)ö’NŵæŸ÷ÊiFŽÚ>jû¨íjïµÀaÃÓß÷ªýUû«öÉ_~oܽq÷Æ¥ÖúH]ÀÀ@ºðÑû£÷Go§±NcƦn0i,ñëK|CãÄ¿õ¤ø“âOŠ'‹æ3›Îl:³)åk(ž«ö.âºØÏ{Öiò”fÿÌþ™?o/û^ö½ì›òˆKû#Aèýwï¿{ÿ-þo®°ÿw9‘éD¦™R!ØKtkëÔ Ó2Œ,™¥d–’YÔþ,à©ÝS»§vŸúš¾E}‹úU[ÿYógÍŸ5?µ> 0€ÔEL ¤ ‡:êt¨“Z4âúÌõ™ë³Ôz¯¸bqÅâŠÙgµÏjŸÕø½úNí;µïTãHfýùõçןW[C¯ú^õ½ê§nŸ”ëS®O¹>jï¸qîÆ¹ç~êk&AM¨5¡Ö„ZŸG%¾etJ".í„´;+vVì,ó €£«EW‹®¦ö.âYÚŸ÷ʉ¯±6p-àZÀ5`ÚDL ¤ É?ët°Ç`Á©“ÜYygå•×,þßåA‡t0~¯¡¹†æšKm ßä6µÖpÄ¥—F\JÝwL>‚Zc¹Ærå×µ?ÒÒ¶êÛªo«n¾pŸ…}öY¨ö.kcׯ®ý¼wßQòÄϤüSH]ÀÀ@ºÐ¤l“²MʪE#«K­.µºÔ×IÄsgÕÖpÃÁ 7LÝ5\ûÝÚïÖ~§öŽ5¯Ö¼ZójêFPâ–È)Yç”G\Ú _š¸–Z|Ò7 Ü(pÃ`quµc¸c¸c¸ñë۹عع¼í÷¶ßÛ~)yqÓrµO11pbàÄÀ”"`©‹˜H¼+zWô®¨œ]uvÕÙU_7&ñØà±ÁcƒÚ^ªz©ê¥ª©ûŽçÇŸ~¼Ú;ŠDêk&A‰kaS²Î)¸´?RB<áX\™ºÝ»ÿvÿ¿šÿÕü¯æâ‰Â•ëU®W¹^>»|vùì,Löµ¾©äí,°³ÀÎj¯ß)¤SH§”¿ËÔ·SßN}«ö.eÇ”Sv 0­!&Ò…¢ Š6(Ú@-yTåQ•GU¾îZ^hy¡åjkøÔî©ÝS»Ô}Gñ©ÕÞѹs;çvŸúšÉGPâªÍ”¬sÊ#.í„ä‰><8ðàÀƒGydä‘Ú»k﮽[<½Øâ øZßTòÚh7¢Ý 4ðuGuÚô9sAL ¤ 6 mÚ4T‹FÞŒ}3öÍØ¯»†¹Âr…å S[Ã÷ ß7|ß0ußQ|jµw=ö©¯ù¥#¨”¿¾öG‚±W¯"^EŒ^=zõèÕöYí³ÚgM­ðÒzœõ8ëqæ‹ï(o引óVÖB<üáð‡Ãj¡¯€ÀÀ@ºãtŽÓ9N«E#âÆ¹_w Ó>Ï‚U{GË}–û,÷}êkj?ÖþHHl÷«Ý¯v¿JþêpSäîþ>ž>ž>žmµYÔfÑßÿ.øwÁ×Ë_/½Ü¼àäŸ]öJØ–°-aK @;€ €€t¡à©‚§ žR‹FžÇúÝÒyKç-µÓ«ióš‹ï/¾¿ø¾ÚkÖ]RwIÝ%_î{™ÓmN·9ÝÔÞ=ñü_«¯€ÀÀ@º0°öÀÚk«E#'N Lݘdúá釧öûôÿü`Áƒ=ÔÖpÌ‚1 Æ,HÝ5½zôêÑ«ÕÞ1q™þšÚ€µ?j^­yµæÕäGBênæW-Wµ\Õrj¯¹jȪ!«†|¹°óÞ¸{ãîKþsí¹³çΞ;_«¯€ÀÀ@º°îëîªE#'OžHݘij­g[϶Æï%Â?ãŸ_»6vm¬Úúxúxúx¦îzÕ÷ªïU_í¯é¯©ýXû#!ù›TŸÈt"Ó‰L©µ†×_\qý…öà»awÃ«Ÿ_Íj…Õ «/N¿8ýâô—Þ“T˜QaF…jŸ«Ká.…»þZ[ 0˜HžRüIqñ”Pµ€äRÕKU/UMù{‰°Jí]Úh7¢ÝãHæQ•GUUÉq:Çé§Õ~÷üøóãÏOùžÞzÿéýjï’ýVö[Ùo=èð ÃƒŸúÊÚ€µ?r…å Ë¥ú[¯"^E¼ŠH­íbu©Õ¥V—Ò~,®¢V{µFuÕmT7mö$a“Ã&‡MV[û¬öYí³Š§8§}_€ €€t¤Å•WZ\Q H¶nغa딇%#Œ<2òˆê•µß­ýníwjïÒ¤l“²MÊ~é5¬½»öîÚ»ÕÞE¬Ãç½²ö`í„üògÈŸAí·N=uöÔÙ”÷äÃF=lT´AÑEh?öËë—×/¯Ú«%ޱ¿ô>äÎÊ;+ï¬LþÓmš¸i⦉ißWÀ`` 98ðàÀƒ“I–ü³äŸ%ÿ|Þ럼}òöÉÛjWñæé§Cž¯—¿^þz¹Ú+ìʱ+Ç®ɯáŠy+æ­˜÷yk¸èûEß/ú>ù×ßýj÷«Ý¯>/42—XË#Á»¢wEïŠjk5¡Ö„Zj¥¤?Å5ÐA{‚öí±0Á—ø¦âmãmãmMyq5¶ÚëX³g=.ùmêK^¼>x½ÚZµ<ÖòXËc¦÷0€ÔEL ¤;Í7Üüqò7@ž0/`^@B–„, YLyMñdÖR×K]/u]í•Ç,³`ÌS^­Îº:ëê¬S{œ9#rF|j¨#¢ßäo1]oZ½iõ¦¥¤oÍ%ÖòHškh®¡¹Ô~Wܼ:ò@äÈŸúy·6ÝÚtkSçvÎíœÛY˜ì~ÿûýï÷OÝoJ\lÊ눾R{ПCý9í÷!3 3 3 jk%þØY±³bg¥å¨& éÎS»§vOíL‰¾B–†, Y*þûzÆë¯g|3öÍØ7coo¼½ñöÆíþÛý·û÷Þox¿á",T{q£]ñôVS˜äŸ›XÍ«5¯Ö¼ºþüúóëÏ‹›ÓŠçŠÿ^»6vml5çjÎÕœ“qÛaõiçÆ¿_úõµ9.6¾Øøbãä×'Û‹l/²½ø÷Šíow»ûÛë/®¿¸þB|ûâs‰›E‹¨Ò?Î?Î?NíÕ’ê°ø³€O½r7ù§,÷þ»÷ß½ÿ~žáy†çÞµ×þ]{1b_Çõ™ë3×gj¯³îëî¦}À)¾÷ä¿#qcê´ÕÀ`` :ñòÄË/-¾°¼•óVÎ[ù̦3›ÎlúÔF\åù¥×ÐÖÛÖÛÖûÀ„LHyPd^°–GÂÀÚk¬ýåÖG\¥*žCÜnD»íF|ê+$¿þžm=Ûz¶MÉk-y´äÑ’j?iÓЦ¡MCí}Hà‰À'ÔÖ°A¯½ô2¥¯€¤.`` ]ûgÀ?þð%6q­ç¿#~GüRÀnr¸Éá&_b Ï*<«ð,qËb-´ióúZ qÅâŠÅk–»Yîf¹Sw}J/+½¬ô²³«Î®:»Jü‹RC©¡Ô0ýÄu·É¯ÿ àAÁƒ‚S‹+ªÕ~²Õ®V»Zíúº{釧ž~8ù[µ?yó<&mF50˜@‚¸ŽPœX³g=îó¢5q+Ý—{\îq9ñí…S¾†"FJüØÏ[CJ ûqØÃ~|¹ïå¾—ûR72ßX£#!KB–„,âwí\ì\ì\>o} ž*xªà)ñ<ãÞ½?zÿg}²$dIÈRãc5>¦Vœ¸'?5áw¡å…–Z®ö“çnœ»qî×6ož¹yææ™ä?Ñ’–ü³äŸ´ÕÀ``ÿñâô‹Ó/N‹3…æ›?nþØ»¢wEáŽáŽá9Nç8ãtþ˜ü1ùcÜNºt;úsèÏ¡?Ïw›ï6ßía£‡6úÒqË“âOŠ?).Þ¥i‘¦EšñªïUß«¾C¤C¤C¤ˆ‡ÅÚŠk¸jȪ!«†<Ëú,볬Bæ8?9X¬x>n>»|vùìÄ÷.®êö-ê[Ô·h—Â] w)¼¥ó–Î[:¿í÷¶ßÛ~ɯOâŸñËë—×/¯x2´}Vû¬öYƒ×¯^ß)¤SH§qµ´)ë,žI,^ó·Q¿úm”s;çvÎí¬VX­°ZQ¬R±JÅ*‰ç+‹ÞÓëXb‹–€ €˜DûW×qý_úìç´¼ÞZ›¯ HŒ˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€N€Î€Nè6ø‚¤º €oݹuçÖu5?q©•†Kí4Yê¤ÉR7M–zi²ÔO“¥Aš, Ódi”&Kã4\š¤ÉÒ4M–fi²„¦ÉÒM–i²tL“¥Sš,Ódé’†K×4Yº¥ÉÒ=M–i²ôL“¥Wš,½Ódé“&Kß4\ú¥ÉÒ?M–i² L“ePš,ƒÓd’&ËÐ4\†¥É2M–?Òd™&ËÄ4Y&¥É29M–)i¸LM“åÏ4Y¦¥É2=M–i²ÌL“eVš,ai¸ÌN“eNš,¥É2÷ÿ_ng¼ñvFÝ^ ø€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€@'€t-®p\á¸ÂÛü·ùoóï? ÿ€þŠï/¾¿ø~‹«?ªþ¨ú£–YXfa™‹¡C/†ÒÛôäZ¡k…®Zòaɇ%Ÿm|¶ñY‹X‹X‹Ø”ì9—:/u^Ú{RïI½'mθ9ãæŒï»¿ïþ¾;½ @BÆ„Œ wvÜÙqgÇÁõ×\¯ÔµR×J]Kù™Km‡Úµæ6›Ûln³svçìÎÙÑÙÆÄœDÌOÄ\EÌ[RÔõ±±±b%æTb~EoÐQõ1Q+Kù‘KÔîDOÔôD}ÞÖŸã—Ž_:~iz¿éý¦÷«ìYÙ³²gÊÇgŒgŒg̨{£îº·oì¾±ûÆÒÏ€^éÈÍ¥7—Þ\:õÉÔ'SŸä꟫®þi®Y–fYše‰Ü¹+rÁíûô1ècÐÁÒK,Ý:ºutëh‹¯dB© ¥&”ºÖüZókÍù^úvgë­w¶Î1kĬvçíÎÛOû#o}—ú.õ]vÙî²ÝeûvèÛ¡o‡¦Ÿþó 1÷øZ31ïs01c» e¢Æ%ê]¢ö•ö{NQëu?Qä{1¯V½ZõjUDˆ:u*~¨ø¡â‡´?.å\ʹ”[ì·Øo±ß£VZ=jÅ÷b:WWWWWWË¥–K-—ŠÿŽòŠòŠò¢gðu:·½ëö®Û»ºýáö‡Ûš4Îzœõ8ëç^ϽžsP S¯“¯N¾:9¥ç”žSzjsÏéÜʼns“áÃ7†ó}ôaÏ“=Oö<ñé=Ò{¤6¿Ã†>lø£B =ÒáUªb^!æÚì17ó4¶Z jY¢®¥Í=§¨ŠÚ ß—Ö\÷¸îqÝ£ÛÂn »-Ôæø©–­Z¶jÙŽ”9RæH¾¯ä÷Þ¾oö}³ïz_0 +ñ–ñ–ñ–Šm(¶¡XJðEÌccåÔzZ‰{[LÌïXÌzi森!©œÝíÊÚ–•÷¹W\õ¶bÆRóÂ~¨]|Jß«¥7UÁÓanÞ±)yßžYzfé™åaþ‡ùæçÛ–žrüÉñAöƒìÙ§d?ôsÙm6Çzïh¶ ðO3#ú-.°ÊglþR=Ö:Mªåîý÷Þ‰^n–)¹vŸ4¦‡g±öízÕ)çðS‰¢NmråJÉûÊÊÊ|Œúõ1Šo`~Mø5á×-g·œÝr6Ç…r\ø¼# eOÛ;ùïæ‹ (Vcmá™ =ºþ]̣ݡ‹ê–e•âoº÷Ÿ´ÖeIçàqAÎUZì°Ñ¡gš-žÙTtëá³.%GÞökÚ¯i¿æ®í]Û»¶æØýbÎ æ)é»»Ebsfò,×@²³«|¿ß‡oꎛ£ð¤F{g”*R¹qç™MŠŒª¿br”S@õãCë9ÖðŸÚj‹½—Ó%¯zÖµSò¾bÎ&æolLÒ’¨Y‰úUJöc¢†&êi¢¶&êl¢æ&êo¢'êr¢F'êu)y_Q3õC¾Í´wÅâŠÅ‹º?Õý©îO)ùk̘f·bH¡6nNÏÿŠ´¯D/¥àøÖnyÖ圜ٽÇ꓆¸E,rv¤ä‚1U:Ms>Ðxw•lù[Ùµ² ÉQõ3kÅvEíŠÚí¿¿ÿþþû ïÞ%¼ãÛLŒÚD èÄq×ã®Ç] úô+è÷ Ó…ÑNÙìýݬò·ng_ÿÙzlࣄ„öíCBR«=|¿Î2Ï Ã”»^¤ë§N,þlþgó?›¿Ï÷>ßû||¿¾„öí?ÚÿUó¯šÕüÔ}Ô€C-§:¹0,ÜRnbBBttHHjµï*w}Èäîë>¬0Ô>»ékeUĪˆU‘ƒsÎ=8—ï Mgmt¶Q‰W%^•xeú1ΦŒ[Ÿ6.‘׌;êÕvöêÝ~¾¾‹GG§Vë¾xd­e…¶ÔÜÉå“ïi”u\ÖqYß„¿ cwæó1g0ý3º^ªœÅ¦v“®aöE.­q*ÐÃqĈóçK—N­¶í²U/\ʼm÷8ÿŸÚÿb.'æul_¾Q›uªO¾{Dƒr׋tõ±Ô­¹‰:ž¨é‰úžék%ꇢ–È÷û¥ÅÌ™3¿Wå^•{U6ý;Ê·3os§ÖêÕÑå—3Í%Ù»cêVî5ß<Îãëµ\³z/*õ4OÓ×í7ßß|ó½Þýz÷ë<Úï_ÀÐ&`Àœ' ß?~ÿ¸ï¸¾ãúŽ3éÆ/¯l»XÛäZ­ªÇé×a­Ç>NÝ©§)íE›FU}6öùXºeáßMŸXœ=z"”o@j9·ëÜ®s»ìììLÙ uíÝpƒã‚s”ï 7¢ÃCüR÷Ô+ùöM›¨lAu¶ŸWæ{Ÿ0·5y˜²Î t*ЩÀ›Fo½iÄ7øºâæÆÍ›;¢ÿˆþ#ú›rË™=ßE‡Î%Šö°<Êëò_v{mR7î5¥-³xâµ÷«ù²M-ÓÏ\M<4ñÐD­õ¿˜ˆ¹)ŸÂñ€ÇÛ\U[ü¾pyÑCÚøÛýŸÔ{ÿGÛëüÎÒ®] eJÌñ™Úlp>/“®Ev°s°ss<¶8©EÔ£L? ˆz—¨}¥}ÍMÔúDÝOÔMYgQW5F¾ñÔµuÌÖ1[ǘ>~&6îþ{1ÇÛ…7fòû˜–5Ñ>+´s^@ß¿Œnïú2ç*ËnÙLºWǬ³>Îú˜———ž¿k`h0`–þ‰ú'êŸ(“®ñ=ëTÜný¹É Þ{?Hû©gòíË…­Ž˜Ó1°t‰Ü¦|–é¿Mÿmúoñ¯â_Å¿b ødÇŽ%›eþ•ùWLºA›Þ.Ÿ?Þ•p5íO½’o/åû;Æ'¦al%Ùþ£)Ÿåäû“ïO¾gÒÞµo¯}{í[ÛŠ¶m+&´Ê3ÚõÏuGO^9+íãÞä[ïÚsçìû¶èÇv–ç™tM°Ó8§qNq£âFÅúºý/æ&ý¹ðájmÞu{´¥`Éi÷šÐü=º’Û‰ª{îq0éú61ßs?¶AŸJÔD Ê”}ލk‰—Ö*o¢(jƒ¦|Qod ¤Ä»üïò¿Ëß­b·ŠÝ*šÒçk Lãžñ}ùUƒÞk¨òp,zyˆ×€…mÊõ*¹¤ÈÄ\’ÿžM=›z6}pëÁ­·Òç÷N m"Ì̆ÆohœüA·HåܽsFžt¯÷Ñ+\kSOÕ0¸g«ÝFÄ{^vþ·üª}­öµÚ×b­b­b­L:«ö®Ú»j-¶µØÖb[ò{˜þ¹[øŽ~Þt×Ô€Z }ÕÚs{•±Þ¯=N»Ì³žü§“fK³¥ÙŒ@ÚØ~fû™íg’?6eo«Cî îY‡YÒJk¡¯jÜhîš}öNß6šÚ½KòŸ.¤KH—./|_ø¾ðMûþÇýä×°@Ží²u91¼ÄJ­…¾ªapæÃ§Ý¶8·m™ü§s?1d{` Qku§ä÷0¢~%jYæRyuBQ3üÏ n¼¡ñ†ÆŒ‡Ou_¾/ß— *|¨ð¡ä{xAû¡ÝJz¾W, În•‡)Ñ=C\v¬{TƤ[X}}ôõÑ×éíÛ'†6f#¬nXݰºÿã/,ù«¹L=Uo}µÑ,Ÿ[…Ÿ[¿ÊÙ[µTq¤À‘G·~ÜúqkÆ51n1n1nn[ܶ¸mQ۟䮓ë÷ìNgNÈ™¼G™Kè«Ö®¸5&{©ÿqSë öì'Ø'ÜL¸™p“ø–\_r}ÉõÿñG«ÝC³öõò-°ø·èúæý·e‹M¶Á>WÍBÏ]¦ª}ÒlnÙܲ¹Ý}|÷ñÝ/kÍ› 7nŠc}òý_?ã¤åN¿˜Kè«Öv~°áf‰ú–ƒrÌ6^õÊæ-n[ܶˆ9!Û&5¢¾$jMjûQ§5+s¯¼‰úaòG Q‡dl˜âÂË //¼ü÷hü5ÀÞnôÃ3Û¼Ê1ߚÇÎËûÍ׿u§ä?ï¦'›žlz’~Æ0´‰0üúǯ¨N˲M°˜oÑæRîFŸçæ>MÜ~X×öxpÕa‡=.ò?žp|ÿõý×÷_3N$ötøÓáO‡ÛÖ³­g[OmïÑë`Ó«…N½k¶^Ðs~·×c7Œð Ì_ßvVŽ·jŸ}aa!!*!*|RͬðYá³Â“Ÿ½{\ë+í3ßÐ׸õÙ·ÈþÐÅÂoµïî“üg¿¹üæò›Ë¿H×G%D%D‰ã»Ú»[W³ë•ýxÏð ®Ì=úMÜmpª–‡“¿MË'ö–jŸ]Ì Åüí@b¢¦”üÞ[Ô¦DJO•7QKuEµÏ.j’Œ5§wœÞqzGòãgñ´áK>O£Ç…¸é©òµ~K¹<ÉöÕWV_Y}%=Œ`h0 iSí§ÚOUýÛíÞ…_ÛM}u¢µ_à.=M@Û Ù«ìs¿“ü”â©óSç§ÎŒ/ó¿Ìÿ2¾çùžç{®¶ÇXõh¬TjŽžN½ŒÛ·Q˃†5=\UÊQõÆeFTQ1H¹ùEæ™_Dõ~C\–nåUwvÿ]õý·®ý6…ý‡ÚÜo}¿õýT¾‘8¦«†îóŸŸwÆÈ“UÜcõý·õßM©ëÔT­ÄüPÌÙfˆ:Òÿ¸rö*ûÜïè»æ&ꊢƨÖ¢>ɘIìb׋]/vý7CvZö­ç!}WîÕÞ<ăýaÛB9ΫõCøÉð“á'õ=€¡MÀ€F­º¾êú*ÕÛ¦u•Ü$G)n|»!Á›õ= MÜZUÇ¥\‚ZŸs(æPÌá­Ý[»·vŒ }úÐèC£|7ùnòݤ¶¯Øù×ïeâô}öŸö»èB² j=Üi»ZŸÌ š4/ˆñø<áK—„/QÜ6–oUýoŸ† Î,®ïè7qëÑtôŠ•ªWân²Þd½éÕ¯~xõCÊû_ÇÕÞ+¨p‡¸üGürþ‡ÒYôý&n[5XêZLõÖ”b®(æl¿@ú$jG¢Ž¤¶¯5¨ôSs5FQoTýCêë«®¯ºÎøyPéA¥•’~¯W^ç—7ýT^ÿY.ðhù]¥ŸÙ¨ö̡هfš­×QA m"4'ºKt—è.jËWÜ/j™àÙ>_Hîô3 MÜ¿Po WkµþinÛܶ¹m‘„# GK@zÓýîtÿCmÿ°ÿÎB»rÍÒQô›¸}½-¤üp§v“Š,PëŸ=öTØÃÕÀ€Opf홵gÖªYì‹\û=ÌçÔ¢j‡­ÒOô›¸-=i|KÃXµþ©]=ºztü¦øMñ›>¯ÿű[íõC2uñ*ðˈ~ç÷—vK?Ñoâ¶mðª*.ÔúGÌÙŠtçH‘„#¢v¤¶u§ôYsõFQ{TëQ·LŸÃçݶwÛÞmsîëÜ×¹¯ZÿÜÍ¿i²—ôYyx{n¿kЪÀöe}ldµþ¹=úöèÛ£õ76€¡MÀ€†<­ø´âÓŠjÈf¥]Æç?¼Ý¥àçétš¨Ý?§öO媩õÕÂ5 ×,\ÈÒÃ3Ã3Ã3µ}Âö?Ã~*ós:~·+£Ç„”êZ·á\Ç0µ¾ºwçÞ{wQ€ä½\÷rÝËujG“¼?xôð™±pü!ëôý&nÝߎj»Bõ yîúsן»>µÿÅñZí5}F4k•¯ôˆúç'—vJŸÑoâ¶Eý…ë‹Vë+1‡d‹ÒQ/Rý£á9µ*Wš›¨=Š:¤êƒØ*>­ø´bz?=­zZõ´Rë“kÖ/óû†ÊClé}ƒ,Šlv(˜ó²q/9rä<èÔS>LÑÓØ †6Úð áAƒškv¬ÙÑø€Q´Z«²ï~oó8hÓÐÄ­|¢â:·Ô&^—ö^Ú{i/ƒ з[Wn]¹uEm?°à›¡ùKà,qû1ðàµà.¾ÍÝ«æIâš$¿,~Yü²Ä¿‹ÿŽÑPÓ*²Ud«HããH¶>–rîñöœ9›è7q[Ò¡w±i}Ôf,§–œZrj‰)=/ŽÑâxmü:…œJ/ÎÕyØÖ3Û<ý&nkE)_HõFåb>Év 蛨©íD}‰:[âVÔ!EMÒ¸ÇD SÔ3ÓÃøÙQ}GõÕU¯Š¾°$ÎsÕ†Äí£Û––Ÿ§Öccši6¦™žFpjÙùdç“ODÎ3wÌÜ1±ícÛǶ§g>0  áeÂË„—Q½yÈ¢f±þ0õTk{Ìs,T;‰§*6ªØ¨øo⿉çp èÑø„ñ ãË»—w/ïžÄ áÿ©‘¹À Ï£w…rêeÜ>ɺý}yÕ§ª¯x¿âýŠ÷ 1€±Ý-v·ØÝBíRæù¤Èõň{ÕÚB–uzµŸlÜoV‘V‘V‘:}èô¡Sòý/ŽÑjýß¿ÿÁìnnĽI´ÏG—v/“½¶“m6ã~óI1·dôGÔ…D(‰G­Ís,T›ÚšZ+j’jÇQÏÔ÷øy™ùeæ—™UïAXa˜]ÉNTÔÚ£k–uö¼¯Ö{gÇwvœ>Æ p*ì«7Äoˆß½PöBÙ ÷'aðç!¾²W¯^¨7¿«[Ú“éfòíÛŸÚô Ö‡«J®*¹ª$# Пˆ©S#¦ªmû/ÃöZöãt+ùv_åù–e©ÞÔkÁÓO0ÒÂÛ#o¼=¢vÔ(^¤K̉x“o}BÜ=’c“Í »‡Æ}8gãœs6ªõ¿8.«õ›Wä/¶™ 7ùvPØÑî>j}(æ–lé€þˆºÚ¶/jJÔÖ’oE}R­EmS¯ã§÷þÝûw7þÔ•ÿðc;,a`tË'j É·S}{5tù>‰{^®,º²èÊø©ñSãÍþøKœr‰¯ýMa°é€¯lì뱯Ǿ6Þ‘5°+d?)¦éíÑKuwxª>›äUÏW=_õd¼úðîÛwß¾ûVm{ß7/kÙÁœb™ÞvìVo²C„qOö9ÕçTŸSŒ7€ö"ìEXóí<­K.òÌâ[rqïèiD¼¦´¥Œ/lðRý¬Ow>ÝiÜÿâ¸lüó^Ë;Ú…îšÞ¶n·ü—b#Õú_Ì3ÙÞ}µ µí]Ô‘¨§™ÞŠZ¥qOŠÚ¦þÆÏµ»×î^»«6~î[lÉæ•z‚I¢ÊspWpk›ý¹=³'Qy>,|˜¹à”»[ýnõ»Õ»žìz²ëI “'øjžÔ}R÷I]ÕiÄ·¡ý/1¹üÔ¶Ý%O|nÜŸÓFO=m4£Ї%–dX’ÁxK¯S8$_>'WŸÚ>ݹ³r@¨êclïÚÞµeÔ@zö²ùËæ/›«)Êæ›\gý}bÝOm:Ô(Ýâ°q¿<üòðËÿ)‡ÙÞµ½k«Öÿ*êïÖX÷S[×ï*†ÙüjÜŸbžÉV胨oé¢vD íS[Q«T;‰:§žÆO“ M24I¢òð×wƒ2–ð¦’ðÉ·ƒ.³ÌÂó¨ÚøùðìóÏÌw´§®»%ï–¼[’08å˜Ô_͸æãšK¢Œ2þ®O×¢aL+?s2º7toùïÕ±ùcóÇægìæë}ß÷}ß÷UÛÆ¯ßÝÐÇÏÓªÏkçìx¤D±$®ÞÒgKŸ-Œ=HÏfŸœ}rvÅŸêr‹\D¹Ÿ×zY„ÍÝyUmVó|îó¹ÏçŠþÇbãŸù}ÇˆŽ¯ˆr?¯í¹zÇK× µþsN¶}À|‰úêE{C÷–ÿžÚçµ¢niÜ«¢Î©ñsãÅ7Tï2ønÀþuAG©!|^[뇠Þù\{ucæ™7f6ß1Cüå§0ð¼iþ¦ùÕ¿ ±ky5àÊ”´ý.–±*¼Ã¸o¥ÃÒaé0#0_›În:»élϽ³¯Õ¶àN¥RÒÆöÜW+ÈNíØôâ—¿¼ø…é͇®º~èªvt𴟱b[¢Ü”´…ÿjØuOW ýkè_CÅñW­ÿ¿:~Û}QnJÚr¶õ¶Øî2î[1çd˜/Qÿ1ÞºE½ˆºYJZQ·T;6‰š§¹Ÿ~Îýœû9'QWÜ5®z©CTRÒ^xòw&CV8ÆaŒÃ˜„ 6šã˜!N„ÁŸŠø "¼#¼#¼wFƒæ–è4‹©dÊÛ;›Mõ¯bÜö mÚ.LP”…q˜#Ì™=2oÝ—¬-ï[“S©”·“sõ0ûø‡WD®ˆ\É€ôfo—½]öv1>.äo2±nâÛ”·ž³gØþV­\µ|êò©Ë§ÿ{—þòߦ¼í¾y븒ó{XÌ9ÙfIIPQÿ1ÞºE½ˆºYÊ[QÃ4îaQó4ßá¯v\~[=ê@Ðxê)oýW•¶²IâOÜ.ä¾ûBns9Ài0ØÀÀWà³Ýg»ÏvãÐMüz0‰L­¶âyǶI\ÍvµÈÕ"W‹0ór/㽌÷2oÑnóŠ^·¶þZ'-—ª®Ééó!ñú˜ûi؃§[Ç–¯dÜÏ…Æ[hlB\B\B£ÒZKk-­µÔø¸PzÞøi†}Ä·©Õæ+ãw¦ªlÜÏÚhW ñ¿÷ýÕ¯T¸Y®·T,šø³ha­òç"åÜdÜÏbþÉ~0/¢æc¼E‹µ²ÔjE Ó¸ŸEÍÓ|Ç϶yÛæm›gü¹F]îØÓ¹—–Ïå?T>h\z’{÷÷Åêºï-¶ßºQ®°œ¯²E:†Û'X¾ÒÚÚîY27CÙÆý> úØhJqªI“Y EΧn;°Dtf·¨$nççÁ9#`>âââDÍÇx‹5"je©ÛŠz¦qo‹ú§y ŸwÕÞU{WÍø³ä¸#«Å“„éÑ}CŠkù,¾ð¬ýr6ëÜ¿G‹Q…¯]è¸zžÏ”W{_nÑf¥¢sxƒÚŽeûüJ†+®˜YnE¬M„ÁÀ@šj;µíÔ¶I<Ãéö£fµý˜8~‘Auœj›7‰Ð¨âóŠÏ+2&í‹õŠõŠõ2ÞŠK-+j—ëú×=]Ñküøôöèò1ÆŸ«æï5¯ù;cÒƒÃ8ÌøXPÆoÂô5 ‰l¿È ›úW«V!ù‚Tÿ&n¸9‰Ö~r±‹9§$yÅzÅz±O´OÔy’¸ùóQÇ©¶y©}‰VÔ3û\Ô?ÍküœûæÜ7ç¾1þ,cÞwÎãüTûgñÿy’nÇÕó|¦h£¾¿¼ìË$îÀQea•…UÌkük_ú ƒ €´25ajÂTµ]I|Ïvgƒ3qü"rݵ¦qŸ²:duÈŠ hß™gnœ¹a¼Ok×çW—‘À_¤=-‡x«ÞŽiGÜŽ¸ŒLз|•óUÎW9‰gûµ[p° aí—hK4í±cJÍä‹P#ºœßPºð—h«y s8dÜçb.Ê>Ð>QçIâ®{!×]kRû­¨gªÞpxjÂÔ³‰çš_h~!ãOq´Å2WÏsæ‹J…ö×9æòîm–Æ}^-²ZdµHóÚÿ›—ôiäÅÉ'_$±C©ç<À>—Ö&p÷û‡®ô=vŠ÷Ô¢õ¦9¯³/[êºí¹žæ Ë~5[¤s»Ü×­¾ ÚSpÍÛ)V~MŠE>µk±'À[›“Ñ^7¼æÓ˸ç§wšÞiz'F& }ËZ-kµ¬U§aë—uó| ÍøD¦~^]W¨¼>ÿo‘ö–;r…å|•-Òíd±Ÿ­{´îã´å©ÝŽcÞZ>ëT®~1‡[ÆŸîѳGÏ=cd€^½ xð6ÀxÿŸ»¡K³½…òEƒ×,¶ºCÀ¨6+ÝçøÏ1<Ï»ÌÙFZ.ÎùÊj¦Ã|ç? ZVÉФI™ G¬¬ÍOQvá”á1j%'ïï±Û¤µ@wx‘³ƒ="ëæø£Bá6Ÿç^jf÷2ûý+­jg °W\2çœSþFÛï핾•ö•/Õ_Ëp‡Q«c‹—1îy1eÏhŸ¨óoÅ¢.¤µjվ͵ꖽÑâJñ;¢DÍjEöQÙ&/fbuµîçzö™6M¬ÖÅã^¼m»Á´‹Ú¦qÏ‹Z¨¹ŒŸzOê=©÷$‰OQrw\`a퇾æòôßÿ´7¢ÃCüT/—:*þ”¹Œ`ó¥ï0˜H#3^Ìx1£ñÎbö«ÀŸ‹ÇkgÒ¶çNÍŠe}í\rþžÃßâÝŠjz×ïŽÖ¦¡¯Ö·vÜl¼¶õÔPo#оN':ètÂx+~¼ãI@°6àœ–³ÕK~ŸénŸ`ùêì*YöŽÐæÉ˜ÔwœU©-Æk~lß±}Çö12@¯n¾uøÖaãý¡WõËu¶×Zhê1géžA6ýÝðínú™‹Kdç5ãŽj.Æþaþ‘ýÕÖ¹÷”ÃN½´—èrh‡ÛhgkŸáÖ;LïùúQ“?8UÑf< Ë¡œn­×YÌEÙ3Ú'ê<Æ[±¨ iâzYÛvƒ/ôþÛã^áïMßsÖYW$>_ôëå­'>Óf,j›Æk.j¡æ2~T£Ó:Ñ!!öÚKHV-T¨Fm÷éÜY¬•¨§ û±ÜÞ"·U¯~¶ôžcùëž÷Ê´\©°ßõJÀµm&$u§`QÛ4^[Q 5—ñc¼þÊŒ°ée.r2Ç[@‹vÆ®¾×‹ÿlÜÿ×V_[}mµùŽ`s§0˜H# üø-H⦗ç6öò­ …隈uÅZe{ai1øŸ ×ûÔW›h–‚§ru²«ÍɨËT›_­¶&5u`~ÓhËŒ9 Y¼Ò‰ŠqœýVö`‹ ;\ÃÆ”)žø4,ñÊÿìÖPû7eº›eÓPÿÆë9qöÄÙg32@¯þîþw÷¿“¸šÖ£Îè?VNÕN\Zò|ß–3kü_­%ÛþìÁ®»øÎNÿWüsâŸÿ÷Lg¤å✯.­EÚyš—œQ.‰ùOŸ{}KYi!(mô`Fß"ÿ9O¬\­ï€‚ÇÅÿU+‡hfÿV˰h³Åä¨o±–3G@gŽ¢¤…ªÔõŒM†úýšýV6[‹ y:äx”½íùñ ëûPûù÷ü K—/ì­ýXÔ6×SÔBÍwütïÕ8¨P6à/Ýnê?ýW$>u¸ÿáþ‡û›ïø!Öó ƒ €42zýèõ£×ïîk>¼ü-L׬½£Ü¶î܇*6n˜÷ƒ¢!¦L+CbmNFkZ8-³{Çi< ÓxÏu®s¯×fÜâJ ¢L tÿV¥6>¶¾Z; ‹y¾;:0w§Áºèþ‘ z–Ä“hË™2<¼£v‚R»‡¾×ªtë–ïdù­5lM t¢<ºóŒÔZlÿ!¸UísÆý?ðè‘nﵑ–<]±|žb­Ä- Mº¾6èôc¾v‹°¼¨åØ¡µÛ«óœ9ú8sµ -T¥Fñ*âüïŸÈL¨å[ô)Õ³•ÛJÁ¥ÅSÿ½)}H©6wµVsµMãþµPó?Sêö\^ìð—nt\ÚÍs¡qÿoδ9ÓæLæ;~€õʼÂà ÚÙ$€ô)fK+ëÀ_µyÕlò“Ѹbí/vÑŸË|íÀm®”lYp5ã ЇöØmÐf¼ûÕ_ýÊþhÊïn<ýŸÒvÿwËýÿÿ™=Ú9 {30*PÆàß?ÀÊ3cÆÖ7Ú J­"K­*Ö-ñµ¿ÿã™ÁÎaOvU(soÒŠõ?”]<åYø;­À[~/ÑêWãþÒãÄn÷KZˆHmß;5°Ü Öª©ÓìÎÖ¦G¹Ú¿¸ø›Lyš°½ú jAZ¨J5èU´•ýr±Vû6ת[öƧVç„ÒËìºXÐZÍMÔ6õ7~ý2lSÉÙÀ_º=?ËàâãÈþ éÁê竟¯~N ¤#¯2¶z8U›ðó -{H»rüî]fî¢ïƒ %Ææ*×®H¡ú#‹þbß5Ÿ]N%G_µÏ¥µÏÒ%Ô­„c3Æ õ¯VüÁ~¤6à[Q~wLùÝ«öë*ù.Ljÿ©•Ó°wåö ÚÉxžËgUÚQT ©Ï†…ÍJ¼neƒ&Þ0LkQîçµ…²×éÒ~Œqÿ­pÊÍ£À× G‡ô;qØýJâµê~oëÅ’«M…f/çŽr^—ø´—:\eÍR¶w@D-H U) v–Ö¦ü9D抲ܡµÊ›¨mêoü¬øftK×à/^W鳯Ã÷;öWHÞ_ü}q` yÑ¿Uh`YíLÚŽå¯{Þ+S_ ß²-žM¢¶æn'm›[;4\|b)ÆÿWkpûz®Õ¼o€>Ôt&_UmÀïÚï_tȤëkÇF jœÔþS+§ao³DÍÈxž¿ÍtضV iÙãS‡GD$^7ïèùQ÷ô;:לÙú¢qÿÙ|ÒÓýå× G{ÿ²»®ë–ÿ¬U¿‡Ý¯˜þ F­ëUüFâWÐZ\Òë·Òy±½ú jAZ¨JYËQ&Ûû”¢Ä¯£š›¨mêoü,É0ÂÏõ'à/Ýþsqµ³OöWHv>Ùùdç“t¯›ËÂ’¾–&4ù£ÉÆ›ýãßZd/J;ÏΖýj¶H±n%³Ø¼ÏUI<§$B®ºÍcà•{ø¶Ï ¿u©j£]ÿ ?´6 mÝžÎ!ùÞ¯'#“…Eû‹ñ–ë×Ä#GžÝæ~ðõ†ùˆßÊq:G&‹‡Z €_:ïÙjÜÿ5ljØÔ°ad²°°°èuiÿ¾ýûöI©ËžŸ:'âŒ"Rïùó†DM¼nåN+³é¡>àüQ®×ÿŸÿµ<êä^ì놣Ã6ž‰ðøÏ€z4ܶ´äiÓ_!ôÂüœÎñZ€ -*Ó3×LÎYXôqæ(jAZ¨J‰ ›X«õç«üí~^ÔÓ>¯ÕZåMÔ6û_ÔBÍwüL»Ü§­Ë|à/Ý‹^^ÅËɸÿ‡^zeèó?ãËŽ/;¾,{fý-Ja¥°R¸slçØÎ±¦G¿5ÆÕWcÜÝêw«ß­ž.` ½ùëü_çÿ:o¼ñ_«ÛÄß÷ަkU~+4ØVkÕâJñ;¢âmÛm ¾|¬{±q£Ö>QڀݫÚN±öOj=hñ–kã`½-ûŸæþ àmÕge.½çÿþঈõÿ•´sv¿å–šþÏûÜ?ãþ÷#ôJiª4Ušïÿ=ží&« 4ñº¹};Ä{A!S~«ôÒñ+ ׊tlö¡oþ"šçë÷—¯Åâ¬ÑYµó¹læ¸wò}eÜÿ}ýö/Õ[ iâµjú×gg_Ó·ZA±—´çl»R¶Óœ9ú8sµ -T¥j^uŠÉ÷oĵ¥sõ¥kkóapŸ×ŠÚ¦qÿ‹Z¨ùŽŸ>q¡³ ÿNü¥ÛmmgÙ—>`Üÿ$0ãýϾoö}³ïöÌúÛ>¶}lû¹c掙;ÆôзëÉ®'»ž¼[ònÉ»%¿ÖšidÓ‡M6%q¥ìµ”›¦…éZÞÊ– ²Ÿku¸InžN¦üÖ¶êÕÏþ_€¡Ñøö>!E×Ðò‘å#ËGŒL@ûŠw.Þ¹xgã­8nÕ¡Øà]Z €[\©q¡@”)¿[oÚoߨÿ{›¬½*²_®µøô9É×»Šqϯڲj˪-ŒLЫ¨¨¨¨¨$þij䩾µfzk3Îü·ŒõK›ò[îVîÒxñ¿7Òœî|»”¬µ+€³ÅäŒËnÜÿ{lÈ^ÂUk°óߊַMºz8èôc¾ù¢ŠÊYE›ððVgo{$ñGÛb.ÊžÐ>QçI¢BõG{Ÿ¢_·6Õ¿G™j…¯‰õi7Â5ƒÃ¯¦üÖ»öm^ò®h?.Oçv¹¯[};1зF1{­À¢¶iÜó¢j.ãÇxý+I>l«éö¯ƒV—H¢æs9örìåXó?ÀæÎ|CßÄ€4rÎãœÇ9㢠àȒ˵0]+V)Ït«îb­ å+yº5LþçoolæïŸW< XËð›Údò3^Ãêê«>Œ‘ h_ëέ;·Nâd Æs·wÀs­ÀÙoe¶Ø°Ã5lL™âj¿e(ÿG°[ÃÄ¿%-(TÎZk§ak OªéžÄÓÓ÷>ÜûpoF&èÕõáׇ_n¼ÿwØäçžu´”º”íøvLØ¿+w({ƒ™J,Ïï öóeŠOhº&gö,Võ­‹ˆ_*x´ZÅÐê⿵ð‰|-8wÐU­œÔ¸ÓÌÆEFi!(mÜx¦_‘¡Æk¨¬Î;âñ pu§üA¦ÿVÚ·ûDÿávÅx Å\”= }¢Îc¼‹ºÐ×­MxYï¶×òÿ;gÌfk±aÓÄj]<î%ÿ[k—ÍäôŸ?𝣵XÔ6{^ÔBÍeü¨¢£—†x¹¶mlís÷üóíÏ·?ßn¾ã‡Øé#ôMŒH#Ï¿{þÝóïŒw-²Ÿ]`–¦kmÿ,¹¢àÙÿ‚>Æj³eže[+tr]yóLÓ‰~kthž¡|±(©ÖÚrÖÃÞyæ-2Ýz\Ž2ÙÞ«N43 ½êÒø¤ïã5œ°|Âò Ë™€öÍ÷žï=?‰òô ÉÚ»¼ÖàBËóoËé,þ{°Gë>N[¶ûÏ:Tú톃S‹xdéjݰ£ãøÿüMqŸ[_­]û+Ú>“CË.kÜó÷GÝu#t[øÈ›36g`Xä>ÜOC·JöÙ°ðÑ¡YÆëé8¿V|[ƒ«{¿±³¹÷qlÙÏÎkZ¾TÑÒÓÖÕþßò\ŽšyêÚÖÐÚ“ƒË š¶dsoµ3,ÿ—­ÛÚ7ÖD\šõ|–ÒI¬a‰'ÖæYSgñø¡…ýÛæ_•ÙŪnŽ?*nS¼@ÐäS žÊÕÉrlâ¯\¯PAÛÞZ˜†æVjäÖÕxÍ÷Ú;hï F& }Ç¿9þÍñoŒ·âyaC¾-qBkð¾Íó;”½‘§ƒu‘ìm“ß–°uj”ËòVTD„ßmÀv/l"r$qíõÇòË,ÏÈÝz–ð,áY¶%Ù–dKâÏ(}ö.²9tFk7‚7s6åü%ûë,yš•ØÇoú?Ú¹öW´®ûÞ›ùAmÍs9çí½‹vâÒþ9´tË^hxï\Léù‚ÇK·Z.‚amÀµ¬Gg/ÔÎxÍÅ\” }¢Îc¼‹º*Tâ–ÎM‹¸8æ0½òVݦðvÕÞök37hºæàníÝC ©­¹¨…šËø™ÑhF£Œ?Å™rÒïÀ_¢}Ý(²_à5ã>¸p?à¾yí€Í‹¾CßÄ€4ÕðyÃç Ÿï>nk>¤|?íü5âð‡ž½‹ò-šß+Ï@ñl`Ñ\+ðÑfBØä€ÑÅWÇk×8xéžÿÔ.÷u«omZeŸß¡•ë‡þZøDõ×Íkß߸Ï[=¶zlŘ´ïÅÕW_\Mâ” o™a6=µ'>õ ýP=´@}‡HûËV+r–É6É}o±ýÖFé0ß¹ôË}{ËŽÐfô³i÷ÂÀ_û2¼e»ó´,ù—çÙcs—²9Ÿ½c®A¹—ä貫tý‚Ý«:6=WîÎô§[íµ¶þÿ>Ÿ8óoQ J%_x¸>ú¥[ŒvBS±V5éY(K‘åÞ›­Ã¬¢mNd¯f™'—m¶ö»î¶Z©]ïGéwâ°û-ßÚÉÆóGkKã5sQö €ö‰:ñV,êBZ»jV\éÛ WÑVöËíóY¾Ê‘Ý9[½’ ykå^g]‘ø|Ñâg×ë´ö)D=Ó¸ÏEýÓ¼ÆÏñêÇ«¯nüY¦gî3ÉE"þíÑ~ËjûUQ/¢n–òVÔ0{XÔ<ÍwüÄÜŽ¹s[mü|l0.¸/uƒ”·õËþ6Ú¾©q·9nsÜ,¯'N{„¾¦ ¾ÆdâØj»¡7KÛT jÁT2%í¤ó¾÷Š 4îÛÙf?šýˆ˜¯U£W^5Úxë4³Õ[§™œD¥¤ý0þ`µà µcÓ£ GA‚Þ¼ yò&DíèàµbN¯=þ„¸)i‹6nc3ôGã¾÷Ó¸ŸÆý$Ž¿jý?¬ù{a„¸)iOwè˜ÿwã¾sNö€ùõã­[Ô‹¨›¥¤uKµc“¨yšûøiq³ÅÍ7?ÝÖ:3+•Oõ %íí•Ûø[«^´ãïïlŽc†8mú~*`à«éñ°ÇÃwI  ®Z²)ÊÏkc.µr ´TÛÝ?;ýìô³ÓŒ=À|½žüzòëɪ!å_ÛΕ—9¡ú¼võŸª¸­HâViÑÍ¢›E3ö =ujÔ©Q§’¸Íãä&Á=—â~^ë=|^á}ÛÔf5÷/Ü¿pÿ‚èq,6þ™F®Ó=ŠØâ~^ÛïàþË¥Þªõ¿˜s²íæKÔTCÊK­-©¡}^+ê–Æ½*êœú?ç /t¾ñg´±œíQ\ÔáÌÁQÔ>¯íÔ¨~ˆCõðeqËâ–Å™ï˜!þr}S‚øjnºuêÖ)ÕÉè–VÖ¿2­üÔvD#ÏEEn%quà´AÓMcÔú0iÖ¤Y“foéÝï˜À Õ§¶±‡öÍ rU;]|qñÅÅŒ:HÏ ~4øÑ`µ#…gõ™žÛŽè~j[¤H3—>¹’xú]³Í:4KÜÿâX¬ÖÿClOsßE û©­o³Ð»ù†%quà¬I³&Íb«ôAÔ‚Œ·tQ;¢†öÉ]lieø«ÚñHÔ9õ4~ºtènüI×4™îž…J§¶—ì›OõŽ˜.o\Þ¸˜ïh!N]„¾©…øÊºÎé:§ëãV»ÒÙ çcriz{žqgßÖj€Çùç{œñèËJ/*½¨¤¶½Ÿ~/5ô®ÍÉ•éí˜-î9_3îÉÆ—_n|™ñ†»wžÄ ÙW ¬™‹@×ô¶œÕŸÍ7žS›ÉÜ>~ûøíãÆý/ŽËÆ?ÿ›ÔãJ§º¦·Gn(Y¢´Zÿ‹y&Û; ¢¤¶½‹:õ4Ó[Q«L"t™ÓuN×9ú?§"OEžŠT=^”ÜX˜z‚Imãè*!ù}»½ÈÓÙ¸'½\ôrÑKs-À)Gèû%_Ù£úê?ª¯¶ ;X×ÑsSÌäÛ¸eíÆï,åwO®$¦e¾ûóÝŸïi€þ,δ8ÓâLÆ[½­už€™>d8p+Ø‘­äÛs¿Èo½£U Ð?ÝþéöOŒ4€3!fB̵£F)kÿºB¸û?Ú¼‹=¢ýóô/yÓ³•q?;üìð³jý/ŽËjýßehøƒî&ß³?ý·GG« yf/`܇bnÉ–è¨ %qärÈ»'W¤¨)Q[K¾õIÕ‡1ÕTÿQ}½ŽŸ¦>M}šúêŽùëÕpXJUÁ”vÕ±“Jý©6~Þ/}¿ôýRs'À)·úùê竟ú¦.`@4ZÐhA#Õ¿)«ÛªV`I¦›jíÔ~o]ò«õÞ»ïj¼«Áôçãä“?NÎW'_|u’(¡lÿs‘½œh©ÞöùÙ¾ð Ïl÷³ ·hÜ{SÚNi;¥-c `Ìàkð5øªÞzâÌÛ÷ôªµEGµùk¨¢úÜÙL¯3½þ¤8F'õ ¡ls, )q¢²{A¯ZR­ËîŽÆ'æ“bnÉ6è¨ ©í{EM‰ÚšZ+j’j½'ê™ú?<x<ðPëMW¦7òxO…A­½úpÝ}ß#j½·ïô¾ÓûNëcœ§Ü‡^z}èE蛺€Mˆ“â¤8©d—’]Jv1ÞÁÕüÁi‘Ý›øuíž`ꙸÝ;·æ¤²mÕ Ñí¢ÛE·ctúv6ølðÙ`Õ“1eº»ÇSNºþÓî^R®¥÷ï \2î1›ª6Umª¾óþÍû7Œ.@ê&ÔM¨4>h|ÐxããHî—Ü#|æ-\zÈ“¸7qëÞxÄ€¥óÕf,»Gíµ{”)Ý/ŽÑâxmü:e¶×©a[qDÛó«J»÷&nC3Í]à¼Q­ÿÅ|’Ð7Q#RÛˆúu¶Ä­¨CŠš¤q‰¦¨g¦‡ñ³R^)¯”ÕÆÏ՟וóý‹jÃþè<Ǿ‚~ÌýC®Ù­Œ{¬½¡½¡½AO#„8µ$¾˜Ð7å€ ¹qøÆá‡Õ&Ãz¶/²— ¨h/}ßh¹Ïcµ¾µcÔŽQ;Q@ú1ýøôãÓ«íNÝY5Ü;''`¢ú]¯âÅÞ©õÕ…Ùf_˜Íˆ$ïA†dP;šüµòÝ&^¾eOŠ^Gô[vü”eásÔúª×Ú^k{­ýÔþÇkµ×¬š{À\‡v„¾¢í”°¾b‰ŸÕúJÌ!Ù¢ôCÔ‹Ôö ¢ÖDÍM´¢©ÖW¢†™Ž†ÎŠ„ +~_öû²ß—©õÉÓé;‹Ô¥æWçPD°á÷W ì^ªõÕ«¯¼ §B m"4'â÷ˆß#~W;@Ît)¿¤¸Czž€Þ¼ÛtºßµþñþÁûï>ùxäãÆ~ÄŒ?°ÚïÕ~¯¦ºÿ¼tqÍH_›ô|¶xêðû%UŸ§"ùKþ’?c `ºÝëv¯Û½NíÈR¸pý Ÿ¦çè·ÜÅ釶ĨõÓy§óNçß]wýÝõÏëqìV{ý:}Ç—.\*=G¿Ýƒ·ì*ÙW­ļQÌ!Ù–ôCÔ‹DíHmÿ êNé¹ò&jjý#ê–ésüÄ”‰)SF­gŠä+¨äÜò²×žÝÓgÍ!þâá»!ßvìQoªƒê]7Î,:³èÌ"ý `h0 QŽN8:á¨êß)G–·q9•Þ& ×ò5)êûOòòàɃ'?@úô2çËœ/sZv±ìbÙEm/ñO~Ã_>Aéí4láµa3KNVë“ÁUW\•ñøŒÊûÝ“n-†äÔß4tù¨ ›]ÏþÊÎó;Ïïd´øÏɼÛ5·knÉï=æ6üK‰q ·£7†øëé,fåîi?ÖŒ j•¯˜êm!WÔYQgŇ|à® €ÔÐ<¡yBóžC{í9Tíè“«uá¢.WÊí™>hËdýE¿Åÿî6câøäçÇÇ{|ì—è~qLÇwµw/ñ¦Âî<ëÊÑwÜžê*úí}~wéR5‡ú©Çÿø£a·kn×ÜØX$&jJÉï=DmJ57QKuEµÏ.j’¢>Éh1¶ýèö£Û&?~vü«N™xýE¿W&­=ï;ÄÊ×òn¶ÞjŸ}rÿÉý'÷O#ÚD ˜øSñ§âOõtìéØÓ1ù)Åο,3Ñì' 1-Ö”j˜¹è|ûƒÉÞK¥/•¾Tš@͇7Þx˜üž¤Ê3¿µ¶'¬ÜZ½¼§¹Ÿ€í¯¶`e9Ÿä?oë[ÿØúÇg?žýx–He—.%\6sØÌa3“?•,Ú;`Ú4s}½†Ïɸ[±ß4·Ö™ä?ïés§Ï>÷¥»_ßű>ùõi·ò¨ËÏæýö½å]j•Kî€]¹ÿGx#æ„l T_¥/•¾T:ù=‰¨S‰š•¹WÞDý0ùÏ+ê¢&ÉI^¤E¤EdòÝi1xZë]NÇÞæˆš4ÈŒ+3£û…_>{tV× ÉÞ9]çtÓ5ýŒ`h0`>n$ÜH¸1ýÇé?Nÿ'óM‚ŠÈ?üÞŽÐæþÑf3íоTˆƒ\¨b÷R7’ÿt‘‘‘÷åûò}™AÀO¢žD=‰rä>È}Pò{˜ÅF”pý.>Ûáß‚Ï™Ë Ø£ÓÛ¿)¿©ÝÂ:²'ÿéÆf›qlÆ„â ÅŠ3*_Ú‚Î :/èœü±)ï²2K•Ý4Õ=¢¦ÙD¿>‹F,áÕ£Æä¨ä?eOËž–=o>»ùìæ³4íúâ ÅŠ‹ã~òkèY­ÁQ;Ç~·üê–Ñ\Bßá³ÎyyÜ«³düˆÂå“ÿtbî'ælL!jM¢î”üFÔ¯D-Ë\*o¢N(j†É:Q{uHF…éÎÎ<;óìÿø¸¯ žù—K™æý^(»º—ÏȲýJ¬Îíšü§ÛPkC­ µÒÛ·O m"ÌҮѻFïmÊ”bxuOï"+·haSþ¼Ö¦žq›ÛM Þ»cv5e‚­?äh‘Ý2ùÏÒ±VÇZk½ózçõ΋1àS},õ±ÔÇR}wöÝÙw§)ûÏM¶Ó¢<Ž}tè×àZ;õz6pçµ€ ãïvmU4̔ϲñöÆÛo3iïÀÜsÌ5åhåP¨z³æËš¾vË ­…¾>ñ‹ÎŽ*µrp®yËÂy_Û¯Kþ³4mÒ´IÓ&¯g½žõzÖ×í10¥ÿ+¹ôQ°ë€Å‡s¹ÍÒZè;ì왇+›íœëä¼Ð”Ï"æ{bîÇ6àS‰º“¨A%¿·µ,Q×5.­UÞD=PÔMÙŠz#c %y|äñ‘€'N$ßÛÞ›Ý2æ)|¼Üò%^åNGK!ÞZ«<Ü´á‘_óÖ[jYìhÊø9çtÎéœSúüÞ €¡MÀ€{ÐýA÷Ý+þRñ—Š¿˜rnÿÁu¢Cósö NzŸøZSÏØ­÷e]š!ä k …É6ŒÛ0nÃ8¾q©e{¦í™¶g2}/4ïàç—^Ôß“7°ä×:õºXàï¢>›{”k|µ¯)ëìuÃë†×Û=o÷¼Ý“oðu=yþäù“çuvÕÙUg—)G±|;Ê÷¯~È#tôê•;¿Zè›qþÖý{]†uºôºËë.¯»¤çoœÚD ˜¿ 3f¬ ]º.ÔâjäÕÔ¹î‰ñõ¶{MŠkÑ®[ðšÔtÞù³ÙŸþU•Û•r¹g.÷'Ó×­u§ÖZwzÒïI¿'ýø’| 1®1®1®Ý¾ïö}·ïMß;ù,sÛ’§ñʦcz”ò¿QÓïPêžnÅß=ü,ä‡ÓCW½÷.;~cW¿¢?uß.YJ–’e|d|d|$ß2@CÞ%¼Kx·%`KÀ–€O=º9¶ªU¹M”ûèï—ù4Xpâ sêÆ½åfL{ºù\ñ{Ý+Lêf#¹/ðó0}Ývoؽa÷uÔ}PWËÝ/æbžð©ý_)Wï†Ûuþmýá‡<÷¤ôO©÷ö:¾ë±ëòú^“q²s¥ò°Üb¹Åò8p€ïW †6ºòêæ«›¯nN\;qíĵŸ%ïZËÈìÛX—Ì]pXXã€Å—l<[ÍÙcçáËuz'žh¾XÞª[`À®¾¿7/³~Eÿßr”úuˆC¹,NÏü÷(e“íóÞÝßÁßÁßáŒíÛ3¶|›ÒÒ…ÖZ_h]iw¥Ý•vÞÌû¨[¶<Åök•Ç©ö²]£Z»®ÚÙqö 2½ŸlÛ1,À1ñ‰Ö1ßeW¼~Üôzz„9Û(Q´ýܺù*çßb{Ã2óç½û¨¬£²ŽÊó.æ]Ì;¾M€ö½éý¦÷›Þ3Îl8³áçû²´\’óu¾çyjÌ)²,t]¿_J\îUùÏZnaÃ2/œ8Üõ>¯Ð¾­¥¾˜÷/;—z޵rÜ[»g»€<%K|(çùyïîáåáåáulȱ!dž˜cÿ‹9ƒ˜?|^X²Û—ýšçþ† ìªþ¾uÄ:Ç—¡…æ^vÞÛaÿßí‹WMîö?rp‰[õ–ž‹}ŠªûaÂåÂá•ÛÉïàØÖ£F.—Ï{w1gó7¶&iIÔ¬Dýê3k_{ ”²É&jh¢ž&jk¢Î–¸ò&jq¢.'jt¢^'jwŸ÷î¢f(ê‡|›i*.!.!n¯Ï^Ÿ½>v#ìFØø¼o°J ¿@Ûu£ã;ÕqŽP&ßâVj[Ê¶Š«~h]°’¸ò°ê‚K媬Ï=ùwÃTË^žÅâÕ¬ô"ÿgÖlÿM~•åÊråÃÜs?Ìå+MŒÚD èVÌÁ˜ƒ1g˜ubÖ «×¨^£zN{Ÿö>íÍ·@ ÎÇ;š'4Oh-ï?§¬Ÿ²~Êú§wžÞyz‡o `¾^µyÕæU›ùë篟¿^ËGÞj¡ÕB«…+{¬ì±² %<ÒGÿ‹¹„˜Wh¹ÿÅÜLÌÓØjh¨e‰º––÷Ÿ¢6(ê„|kZ?;~vüìÈ–‘-#[zmòÚäµI›#'ÇœsrÌ‘÷Éûä}oÏ¿=ÿö<ß`h0ŽX{`íµ¡¡¡_mêàèèèèè¸ðû…ß/üþÉ‘'Gžá{ e1bÄX±,bY„Ë7.߸|óµöŸ ܸ7pôˆôˆôHø˜ð1á#ß@¯Žd8’áH†6Úhsàkym ذ-0ÇyŽóç‘"¤+|Lø˜ðQÌ7ÄÜãkõ¿˜w‰9˜˜±]Ð2Qãõ.Qûúj.cjj!j€|/æâf…›nV˜ø|âó‰Ï¿nèÛó`σ=ž±9csƆïÅtÀÐ&` ½ºŸp?áþé§ œ.0mû´íÓ¶T¨P!µ¦ 6lØ èöm·o»}»yÕæU›W=Žxñ8‚Ž`îž~vøÙáíU¶WÙ^¥×‚^ z-°c?Æ~Ljí?}ù,òY4yÕäU“Wp:átÂ)¡`BÁ„‚ô< =;÷͹oÎ}3kǬ³v„\¹r=µŽ¼VͬšY5ëX¯c½Žõ†? øàöƒÛnÓçÿ*˜P0¡ ˜“ˆù‰˜«¤Vÿ‹y”˜S‰ù•˜kÑñ̨ƒ‰š˜¨‰ZYjí?EOÔôD}OÔúèy}¸SñNÅ;W»®v]íÚ<²ydóÈÔ z«ß­~·úÝ£Œ^0úÒ Kƒ. ¢Ïý! *Î+Î+ÎëhË£-¶ÜñdÇ“OÂG„±~Ýúuë×mÞ»yïæ½Q[£¶Fm½|ðòÁËÜFþuÃê†Õ «ý›öoÚ¿iK‡-¶tXÿhý£õ ÿ-ü·•vTÚQéHŸ#}Žôy¿èý¢÷‹è1Räû„ï¾?VýXõcÕwNÞ9yçäðíáÛ÷¯ï³¾Ïú>›soν9÷¾íû¶ïÛ~á› ß\àjŒT&æ3bn#æ9bÎ#æ?b.$æEbŽD€ êi¢¶&êl¢æ&êo¢'êr¢FG!±Ó·Nß:}k尿›önÚµ1jcÔúŒë3®ÏQ"¢DD‰]'vØuâD¾ùN䣯€ô‰t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚t‚tâÿÐ/K(Çfž£%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/concatAll.svg000077500000000000000000000114021431412030200253050ustar00rootroot00000000000000fedcbaconcatAllfedcbarxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/concatMap.png000066400000000000000000002205241431412030200253030ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTgãþcSŒŠ(6Ä‚(RDºˆ"ÅŠ{EAc4ÑÄh¢Q{‹]cÃD5ön¦¢(ö‚¨(ÆØbW,ûýcŸßùù9ë@w‡÷‹sî“ó<¢3÷\3ìÜ;[LЄbLh0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0Pž'ûûìï3ù4ºŽg¶_‡º|1øÌÔŸê÷a³`¼û”ïþXâãnÿí—?Ow+7,}v}§¿ú«cëÖ¼ßötß+ƒÝü|§æ§ÎYW}]õuÕ³&eMÊâC+€7JÞéÏÁüœÅ!åk¯\ò»a>ƒ§Ç- ¹î¶gg¯pçJÙ¢m†Oiµ~äŸÉ¸FLòvÙøwËä{gom²Ãynÿ~nókuøÌ¦¯U•ÿöïê¯{úk GZE ÓD »~úúéë§#R"R"RþÅÉËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎê_Z;8kpÖ଼ÿ”·nWãhœü¢·Œíýù4ÇÍV¬8r¤ Fÿ΋×ÅW¬ïóÍìùç«…9µ}ñ/¶ÍÛÚÛÚûð²ÃË/ãø…M®éÏ»¼Ÿ§}Ã\?¯a³?2ÂË+ë¹S´\Àw1—wmÐliƒàå®OÝTv®›÷mÓ_õ×FŽ/´„¦‰ZÔP×P×0noÜÞ¸½yZÐüвEÙØß.6ŸïÞ5grLjÈã‚](Éû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬vLÁž˜=1{bò^ŠÔ¹Ü«Ï7ýÛ-ž_¬`ëÞ¼î¡ßÞZ\£¢Ÿ[EßÞy*rúî;¸ï³QÏF=Å ŠþœÒŸ_y9ƒ¯ÔØ[I'ŸŒ ôñ}[÷/Ï?ŠÞ\b~¥ÀL—Ny¿î鯓qh0L04åἇóÎku¿ÕýV÷s_t¨çPq¼uÌAçvW}½t%b? -ý¶M^3fÅÆ„†œôáÈÀª‡Uª–û¾¸ví6úæò›Ëo.'¼yS2¦dLùbðƒ¿œ—òÃõа’³Š5¸üƒCƒßVéklô^4móæÃvÕO o™—}Iš”4)‰GCù¢?òrÆupö°.ÛufÀHºÑÅÆ††¾ÜÞÿdHëí)áŸ{†åe_ô×Lýõ“ À|QÃ4QC#Î>ø|žÞ5»»Këý^Ö¦¶\’ûxàçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯üÃ/ŸÕŒ™3Î+ ÎŠîG¾2µÒרèÕqÒ®õë*Ôuø²Þ?üjÝæa›‡mF€Kîä~~y<­r̦߹‡«úëÌæ.fVl“PçOCûÖ/‘ûÞ鯟úk)y€9¢†i¢†Ù;r0ä`HîË CÏzz;,~ö4zCð;æUýþŸß©ßÙÿdHëI_ùßp Î}·wÞÞy{g²@á¹´äÒ’KKrÿ‰\y—÷“ ±~®s“öµ2—Ò÷5cà ˆõ x÷Dz¹ïïÜÇsÏ}L6€¼ÐŸ/¹ŸS+Û5 ­ÿ“îQlŸÐ 󽋹ów¯™ãÚžpœVõnîû«¿®’ ˜ `˜& `˜1!QHs_DØ×¡M²—j¾Ë%ÆÆÄíígùùç¾ïë’×%¯K&'¬ó¥Ï—>_:÷ŸÂN×úëbÆ¥¯±Dïžn¹¥yÙd«õZÛ÷Iã&›4ŽœÆèÏcgmx¹±–©Uº X¦½»˜¸_CnºíÍýú©¿Æ’˜ `˜& `˜¥„2 eÊä¾ppeb·È€GÚ[4ù?¿MïØ«Y`GGÛ2VãÍö!Û†lBfÈ¿+¥®”ºRêÖZmìþ_Öj¯ú}uôï´xm¼mß!ËŒÍÃOs~šóÓ2¼J^;k>WgºÝÄçu¢ÅàRÚ¾‹9òYû$¿è¸›+u¥Ô•Rd¦¦‰fæBê…Ô ©Æ– >¶ilõÁƒN½“›¶Ðö¢É«ãó^Ñgƒ+††ÖlR9ÂØÌ¶8lqØ‚üðßÜo¿ýýö¹×Þk¦]Þòž¶«ßWÇFçâ:'Öª~¥U—®“Œ>¤Úºj몑@.;S¾8âñ•C­ìk1q!G‹Î]Ìåƒ]×LÉýºª¿ö’˜2 `˜& `˜GgytÆØÒ@­ 6¥ËßN›Ó76( è,š¼:fï_)øÏP©æ ÊÍÒ7JÜ(A–È»,,,Ÿó>ç}Îû ë³`æÉí§ŠNõûF猯Q?¬k7£¯ÓŽ•9VæX²„¢IŸcgÇСžåÆëVÅ6u/šw1­è>²ñ¯F¯®ç}Îûœ×_‡ÉL0L0ÌÁDÝDÝÄÛÛ[£¿þwïMÝŠæ¢Éÿy7ð¶è'ÁõêÆW,nýš¹rJwJwJ™ö2íe± /Æ8Žqãhô]¿ÎS»l*[D«ßWß œ·%q^ÕôÆ%Ã~36WÓ¦?L'Q(:ô™7vFtSï¦ýÌœ¡1çBîs“Ò¢Ë^›+ýu˜DÀ4QÃ4Qà ¬²\e¹ÊÒØr@jµ®G–³hòêx·Y¯­ ÍØäž“{NîI®È]®„] »ŒýÇŒ]uõ×dÂSC\Pvþ¾ó÷¿ëçpš k&¬yØüaó‡Í™™ÿ†&íÖ°[Ãn 3¶°{OëT/'JŒGŸwˆñŒÍ^ò…ä ÉȆҷ¥oKßfìghá=«oGÝklôýdV“ëÍÞžà=Á{‚É´MŸscgÁu].Mêq·blœûq §ó_ÆfO}&c0Àù—™™iì.€2ø¿¡†I‹5>j¼á ÿù°^µú²8’—qz»€õº½æ}K¶î¶î¶ºOtŸè>!i¼jÊî)»§ì6üéY!»N)·–nÅÍHŒ¥èÍ}tU†fütÇØÍÛóÏG<AÒ =úlKþv!¼gw(¹9~1RÈŸ¾MìúÙv7œCýõ™¤ÀtPçß«ïýÍepÞQÃD°;awÂÎØIþdt_9h(‹#y_ví¿)ÄÏ:ܲOÙ×,Eí)¹§äž’ä ½¿§þ=õï©Æ^ø¸Î˜¼Í‰r7cÜ‘ÄÊ¿zor3œÉŸýÔè§Fä ڣ϶aæÛöwŒ®zF—ÃJÞÆ?'vÛÒ¸®±«±þZMÞ` (€óO_èêË]‹<£ Î0LÏSÝSÝSßTßTßTÃSz[DXŠÇDþíx8»}¸ŸÑÏQÎvÎvÎv&z|9íËi_N{ÍgvŽëô|pwjÝ;ú¤ÿ”½³ƒ±W .=ºô詃6èólô±Ï³{¸7)Ï]É¿'§6úÌižá|ê¯Õ¤¦€¸`Q `˜œÓö§íOÛžÀöÓ­ç”/gTÌ…‡,…ü·±å¹ZOªt4œÛ}iûÒö¥‘=@Qv7ænÌÝc7þ¥~Þ¥\¥Ðýoc­øOGÄ´4œÕÙcf™=†ìAôy6Ìù˜3~¥ëLáNä¿OŽv 2ú‰ìúë6ÙÀÛE\x(ƒóƒ&'êvÔí¨Û†'­Tªí"ï3,‚ägLÕižÿzùuÍtÍtÍÔeé²tY$P4M¿3ýÎô×|fmÝz½»ô¤ÄÍÏè·q~Ÿ?Z»1ËìœÙ9³3 „ùÒgØXÂïÝ{\SkîDò3.ØÓtžË.ùÕ_·I Þ. à7ƒ2øß¢† yPéA¥•Œ>¦Xˆ™ÏòGþGÏõUËÚÌ4œáÔé‡S“C@Q“’’bìHÃ)‹ªH'(qó?Vk9»Ë†3,ä9B9„ùÒgØ0ÛCÆ4Ȩu‘»üŸõu ªhì*­¿†“C¼-Àoep^PĬn°ºÁꆧåòÒ!n=Xø(¨qïâ6³½¾æò7d CÈ! ¨9š|4ùhòk>~"£ùø¨+·5z»Ní¹©‚á<·®ÝºvëÚäæKŸaÃl§Dt‘eq÷QPã ;÷]µ^s Ñ_ÃÉ!Þ à·‹2Ø `˜a „žŠ÷Æõ®xÅ”#æî îòñÿz»ˆ^šòÖ¦oíÜÏØ…/çYγœg¤Pt I’8$Ñðg¢ç¬ Í×L0…êÔÿÈR‹·ºd}‘YÙÝ«M`«ïíÝÊþiu Â ›븸}UõNÀ•°ÏÝe³d£‰ÖÀÎ+>;2Ѳ‚õP›×¼Þ{ºþéú§ëI#Ì‹>·†y®¸ ÜKË/tkb[„º¿ÝWþYþ1ÅC>+w¦ìp‹;ÿÉÍ=ž4™l w1§ïFÅù¿¦Ö_ÃI#Þ `ÓAü* `˜„Ç™3gžx^ÉUÇÚ˜öçþ–Ž-jáß¢Ú¤Š¥_ÝrÓÿ úž²Kåê¯ù4¾k¿_ûýÚïdPäØäØäØ»h´rù‡;¿ÝÒÔkØd« 5¬?®~˱KÞo]ªu `±¢Ì‘2¦V×¹ÚkȈ⯹=¾;þ6™„yÑçÖ0Ïóë7-îÒÝ^ó_ èjàn‘¦Sg]i2Û诱ÚäØäØI¼yÀ¦‰2˜&á`Ùƒe–}Íß+‡´wëmÊÕïûþPwá–›~¼o}›t¯s†[¾¾Ëú.ë»I@Qp}Ýõu××½æáÏ3š5èXïí¥®ÆJŒ´Mv¹æ}꛵¸ìAËûÍ߉òrž7¨ò$ Ïâ?þ¸º±Û·_7žs¾šKÓÔ¶ó-,~±8ú꾘܃ §N·yºáœ83â̈3dæEŸ[Ã<_véúe@Œ)¼æß=ªõ!¯ª¯nÛœÄÀªÎgÌh:Þec^Ƨ;¢=ƒö˜Î]Ì€Çõÿ®¹ÈpÎõ×s2 €7ØôÍ2˜&aü³ñÏÆ?3<Á.yvµ p3……†Ûz ¬·vp g÷]c2ü*×™ãþg•*<0vi0ýøÞ–Þ¾¯y¿BOËž–=-É$ (Øá±Ãc‡‡áOC·ƒÃæ}ôv‹R×¾_žžù~É̹ßgS&~ªÿ Ë]ýÿRki»œþôÿmÝ¿fÉ:gM­n4|¹ó¡†s^eU•UUV‘I˜}n óüòiÿ¿CºšÂk~}Ý«ß*§N}­ýÌånÅØ¸·x›N^_ιþzN&ðæQ›—¢SSÃ$øó;æwÌð¤Êpîw%x¿),4ür>tO}¿¼_Lé$'#öƒÐ’F·?E—¢K!™mûfï7{¿ÙkøsÐ7vv¿ÝµßnQêСC³KõÛSþ@Õ¿kxäå‘Î>+f>Üžñÿ½ù÷ÿ7°©ÕÀ¶3u^¯ùäÔþ/ü_ø“L˜>}V 3Ø¿úJ^¦óšÈG ŽÕõÛ™êøØÎÑÜ à›7zZ4ùÙpæõ×s’ €7Ø|i» ¦†‰^"«NµV®ƒé,4œÝÕ©•ÿ÷?}ÐxW½LÃÑ `ýÖØaD•µ†ÛŸ~&ýL:ahœwKï–Þ-_óé¿—9äüv+Rûœæs£ÒÊÇVQí÷UíѨNKß¼T¹¾»ætÝÓÇpL­vÈŒj1Èó5qµ½n{Ý–dÂôé³j˜á‰•ü£ë>7Wû­::Ô¨ò•~ÛFöñ^ãhm¾Õ¯~|Ù£ÿæ×üb®þzN2ðæQkƒöÊ` `˜è%²»Ÿ³“ýsY†0ßøÇ ÇÔh¸ý·2neÜÊ ™€¢ö IJŠõ›hS«Kó>Öì}näÉWß7lš°«0ôîOɆóŸè“è“èC2aúôY5ÌðöÕá=›˜æ}Ê¢!A>®õ¿ÀÚ$»zóJU+·*¿Ìò¬K½J¡Ö©£„j)q%B6¸-ЕŽ-jÒw4w•ÿÀò›×Ý…omØÜi£ ¦†‰^"'íñ×9µ£.ìqí¸îû ·?éHÒ‘¤#$PÔ^Tºç9´I3Ó/z½»N}´é”Ç™ÒVýàVõ«Š³{T¯×¡ӦW÷ÅéiÿŒ±CL³ö¬;þÝÕ× çsÍu6×!™0}ú¬fødRÇ —™Âëü'ñ}S‚ƽºmÖ«-,;=/Ëͬe]ùÔµÝo6¾ašw1á›j¯’E Ó\[ Öó-ƒ)€a¢—È_#BoÔoO\Ø£˜Ñv¶÷ Ãí?w î@ɵW Õ}[„wºjú°Õ¥êŸÖ^n¸ýe(¿Âê©óÇûO1åí÷i1#eÛ<Ãíÿ¹ÝÏí~nG2aúôY5ÌðÕÒÝ®5nn ¯óOï8¥áç†[;´~§šM7¶ôkÐYÿg¶Ü ûÔcÅg¡îýjÞ,ûŽÅ‹ÿswcšïþ<¦{­^À0͵ `­2¯2¸˜éœÀ«¶$‡µöXJ\Øã‘ì%ý&7ôjýñiï˜zæ[¿ªþý‘'í3Íí÷M“´÷òí¹Ý´çãÀ¦ð:Ï 6Õ½>Õo•ûŸU>¨ð`}D‹?Ô|õþÅð»övoó­×Ô×ÔÀ&v3fƒ¯®ÎXòÀ\ìü}çï;§,v®m]Ñs;pa'îw×py@ÏáN”ígéæò‰¿Æ/:tÁ'gV¹_¸­ýúÔܹ•ݽÚöyu¸>±ìš©m¹_÷y±û?"oО»)½nî1å{–{wÓµY½/í››Ú¾L8ê߬îuòÀ\dnÌܘ¹‘àÀ¼€·À\ÞllÔïE•æ¾ûCŽ¿º_¼x3LçÀù7•oÕ¬AŽ~Üt•ÛUË;€ ?ŠÐ;€õÏ@ç‹/ý—áÉÀg¿ÝÏ^è¿Ð¡?Éä‹/¾øâ«¨½1—ÏÎK ¬WÞ¯Jýj:S«}ðpe¸2\!™|™þ—>«†6Ï.¨Ï¶^mùcÙé¦vcì3€I&_|ñÅ_|ñÅ_¦°¶° Ä‚ J03ÚûÚ5r×È]#c‹Ç-ž÷êWÿç‹Ðg¹¿#|ÒS; àÂ׎káá¾Ïpû“Ž$I:B2EíH¥{žC›4{ËG^>ßëËW·ÊéiÿŒ±Còþ7x4×ð×pý÷Z&ØÄUªdj°gÝñï®~Íã[7×Ù\gs’ ӧϪa†O&u¼Ðp™)¼Î—oD¶ð ž¶}èóáŸiÝ.4nš÷ïÝv(üÏÒú=ª×²âë/Lí'|SíâU²^w¼ýµ}YÈÌhƒ¾¸°fš kò^úêÿü›/}_E ½Dv÷sv²ßC\Øã;Ž©;ÐpûoeÜʸ•A2Eíˆeë 6Ѧö.^{ë=íƒóþ½NŸDWõ¿÷&VúÍcQcS+€]…¡wJ6œÿDŸDŸD’ ӧϪa†·¯ïìÙÄ^ç7ò«öWÅ`ýV5ÿ±–uåSyÿÞ/îzŒu¨§ÿÞ¾¢ë¢î¦vSqWù,¿¡€i®-P›;ó-}_E ½DVj5¬\ àÂÃ;Œ¨²ÖpûÓϤŸI?C2ÚæÝÒ»¥wK߃:/;sÈÙt `‹ÅeZ†4˜ùý“¸.ÿðÙºg{ïºSþ“ÊË«5Õ«ƒcû±WM­vÈŒj1ÈÓpæ¯Û^·½nK2aúôY5ÌðÄJþÑuŸ›æJ^îS¤÷ÚÎ÷>U6ÍBµ¥ÿójBd–ÏzÓ¹yÙ£ÿæ?ÃýÒ_ÏI&Þ< `mÐFéû* `˜¿c~ÇüŽž<Îý®ï§.Œ1'#öƒÐ’F†Rt)º’ жoö~³÷›½†?}cg÷Û]ûíV¤^§¦øn\RöO«½ºm5޵nѳ뜡}ª£Ô³[Õ¯*ÎîáСC³K_}à³þÓõ”6µO)¶é¬óZo8ó/ü_ø¿ð'™0}ú¬f8°õ!•¼LáÕþã¿ú:YמosÚꟕ«¯uûŹ…ÕX¾}Ox/Ïà#­Û'úußèÞrnƒYŸ…º÷«yóÕê7z³ë“±¦vwsóFO‹&?μþzN2ðæQ›/핾¯¢†Iÿlü³ñÏ O¤Kž]­Ü(€ c¼·¥·oàmÃ-ïiÙÓ²§%™;Û†™oÛß1ºê]vl w(yÿœØmKãºÆ®Æúk5y€) Î?JßÂ@ “5>j|ÔxÃûóa ¼jõeY$/ãôv;êu3œCw[w[w[Ý'ºOtŸ4^5e÷”ÝSvþô¬]§”[ËF·âf$ÆRñæ>º*C3~ºcì&íùˆç#ž iÐ}¶%»ÞÇ3„;”ÜÇ¿)äOß&výl»ΡþúLÒ`:(€óoçï;ßù;¥oÁ¢†I»5ìÖ°[ÃŒê»÷´Nõrb‰ÄØxôy‡?ÁØì%_H¾|Œ`(}[ú¶t£Ÿ:YgxÏêÃÛQñ}?™Õdçzc³·'xOðž`2mÓçÜèã u=º4©ÇÝŠ±qîǞΛ=ýõ™ŒÀtPç_vdvdv$¥oÁ¢†Xe¹Êr•ÑϯM­ÖõhÀrJ^ï6ëµ5p¡±›ÜsrÏÉ=ɹKØ•°+a—±Ÿ§îñ£†.­AÝûêè}iƒáå×WWý°áŒE¥E¥E¥ért9ºÒËÑåèrô™ÍgŠçØdX}ó"³ßÑàÍܹ¼:ÆwkçásÌØUWM&\05ÀåÕ÷Súæ0ÌÁDÝDÝÄÛÛ[cË÷ÿî½±©‹&Ï·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆy1ÆqŒãGc¯@¼§vÙT–ê·QZÜ–ÄyUÓ— ûÍØ\=L˜þ0D¡èÐgÞØÑmL½›ö3s†Æœ ¹Ï]LJ‹.4zil®ô×aÓD ÓD ³ñèÌ£3Î[¨5Á¦tùÛisúÆÍE“Œãý+ÿ*ÕTy ±YºQâF‰%Èy—å‘å‘åásÞç¼Ïyc?a}Ì<¹ýT-€W <2¾Fý°®ÝŒ¾N;VæX™ceÈŠ&}þC‡z–s¯[Û<Ô½hÞÅüµ¢ûÈÆ¿½ºž÷9ïs^&K0MÀ0MÀ03R/¤^H5¶@àð±Mc«têÜ´Ez×o¯è³ÁCCk6©alf[¶8lA~øoî·¿ßþ~{‹\y¯™vyË{Eè]¿çâ:'Öª~¥U—®“ŒÍɺj몭«F~ý¹`ìLùâˆÇWµ²¯ÅÄ…-:w1—v]0%÷ëªþÚK~`Ê(€aš(€a–Ê$”I(“ûbÁ•‰Ý"i{ÑäŽc¯f}lËX76Û†l²m™ ÿ®”ºRêJ©Ü_xT»ÿ—µÿ¬ßN‹×ÆÛVñ÷]²ÌØ<ü4ç§9?Í!3À«ôç…±³æÓqu¦ÛM|^'Z .¥í»˜#ŸµOò‹þ‡»¹RWJ])Ef`ú(€aš(€aÆ„D!QHÌ}á`_‡6É^ªöM··ŸåçŸû¾¯K^—¼.™œP°Î—>_ú|éÜ ;]ëp¬‹öª_ïÝÓ-·4/›lµ¾B+cû>iܤq“Æ‘Àý9bì ² /7ÖÒ!µJ×#Ë´w÷kÈM·½¹_?õ×XrsA ÓD ³w0ä`ÈÁ܆žõôvXüìiô†àwÌw¹äåÎþ'CZOúÊÿ†Spîû»½óöÎÛ;“ Ï¥%—–\Z’ûOäÊ»¼Ÿõs›´¯•W¿ W,<"Ö[4àÝËæ¾¿sÏ}<÷1ÙòB¾ä~N­l×,´þOºG±}BƒÌø©E÷š8®í ÇiUïæ¾¿úë*Ù€y¡†i¢†Fœ?|þðùÃy°»Këý^Öæµhràçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯äþ3º^͘9ã¼ê¬è~ä+s©~½:NÚµ~]…º_Ö»ŸûÞm¶yØæaäø·ôçÎ?ÍqsÅ‚-zý;/^_±¾Ï7³çŸ¯äÔöÅ¿Ø6okokïÃË/;¼Œã 6ý¹¦?ïò~žö sý¼†ÍþÈ/¯¬çNÑRpßÅ\Zܵa@³¥ ‚—»>u[PÙ¹BlÞ·M=Ô_9¾Ð `˜& `!‰C‡&u]æºÌu™Åâ^¿òÁ l°°Öò…4Ýârh‹wX9BVÛÞóÕøÈ—>ë$§¶+½/nëö—Gúâ±AÙ®³‡ýá9Ãá„oŠ]œíØÿöïÚ&Ù&Ù& ƒ…ÁÂ`ÝdÝdÝdŽ&æâ¢ûE÷‹î­ƒ[·þo¯Êw¯²Â~fµ+!Ÿ|]dzGÛ¯C]¾|fêOõ{°Y0Þ}Êw,ñq·ÿöËŸ§»•–>»¾Ó_ýÕ±ukÞo{ºï•ŠÁn~¾S-òa]õuÕ×UÏš”5)‹G=o”þ¼ÓŸƒù9‹CÊ×8^¹äwÃ|9N[rÝmÏÎ^á:Ï•²EÛ ŸÒjýÈ>“ÿp˜äí²ñï–É öÎÞÚd‡óÜþýÜæ×8êð™M_«*ÿíßÕ_÷ô×@Ž&´Š¦‰EÏJÝJÝÊ£kŽ®9º&\ “ä_Ú¿´i%\ WÂs:ætÌéÈ¡ÀÜ]üòâ—¿ì·­ß¶~ÛLóHµåÕ–W[¾Õn«ÝV»Ì…™ 3rÔS ?õç¦þ<5Íkˆþú¦¿ÖqÔPPÃ4QºÛûn﻽o‰ãÇ%Ž5kÔ¬Q³Æ›_(±²·²·²ŸµrÖÊY+¯»^w½îÊq@Û|<ðñÀ 7TÜPÑÏÙÏÙÏùm6c?ûáØ/ã⎠`.ôç¬þü}[WýµKÓ_Ó8.(j(€aš(€×¸ßâ~‹û-ö÷ÙßgŸáÑã‡G׎«W;.ÿK$vÓí¦ÛM|ið¥Á—v6ÜÙpgÃÛ“nOºÍ€.­MZ›´6~;ðÛß~Xöò–yñâ9$ÿ¯@Ê— .Ü×¹¯s_ç £7ŒÞ0úZÓkM¯5eÎ-ÑŸ×ús\¾ëÏýü_Cô×"ýuIÒ_¯˜s0MÀ@Hxžð<áy¼C¼C¼CBTBTBs Û‰Ë'.Ÿ¸¿;~wü>x8çNΜ;Ì €Üé¯úë†þ¢¿ž03  À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À@Hxžð<áy¼C¼C¼CBTBTBsswxÂá ‡'ÄwŒïß1Á1Á1Á‘9¹;êuÔë¨WüÄø‰ñfÌ8˜¡»¢»¢»ÂÌÐ `à5î·¸ßâ~‹ý}ö÷ÙßgxôðèáѵãjÇÕŽ³È7»évÓí¦¾4øÒàK;îl¸³áíI·'ݞĜ£°=üðá‡?»‰ÝÄnßF|ñmD½æõš×kžÿTW]it¥ÑŸ½÷Ù{Ÿ½·­Ô¶RÛJÝšpk­ Ì9 Û£­¶>Úª U†*C¿óý˜ïǸýåö—Û_ùOu…~úUèccc·éø¦ã›Žß|cðÁÌ9ÓG èn﻽ïö¾%ŽK—8Ö¬Q³FÍoœ•½•½•ý¬•³VÎZyÝõºëuWŽ òã^è½Ð{¡+âVÄ­ˆsZê´Ôi©Å[2Íšÿ4ÿ«.W]®ºp\¤ÒiõãÕW?vîþÜýùÛJõ„­¶NØšú~êû©ïs\ õlÛ³m϶†óÆÌo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À(B‡&MêºÌu™ë²ÿX_Õ¯|°ÂÁÁ#,¬µ|áM·¸ÚâVÎc„Õ¶÷|5>ò¥Ï:É©íJï‹Ûú„ý呾xlP¶ëìaxÎp8á›bg;ö¿ý»¶I¶I¶IÂ`a°0X7Y7Y7™£ ½“ÅN;Y̯¢_E¿Šÿ-].­+µ³¾ñÙ ÷EµÞ›Üô#—Þ›íZ­óðúDdzUçDÞöY.mh{Ö;}ûWáÍ==—ú¯p}6¼ƒ×øÚÑ~±ÿ°b×ü”g»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo04îúé맯ŸŽH‰H‰HÉûò}ÈËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎ*ïÛæ7Ào€ß€‹‹Ó‹¨Û5o×¼]³Ëì.³»ÌÎ{r2í'U\·ºN³gõ3¯Žî^ªqï‚MõÃj}ì›~½£CøϘ¨YNÕ¾ü%ô&—M.›’–'-OZÎñ-šî[ß·¾o–÷äx_¨zÕ¶ÔŠý¡mÜ2¯”èV=àLÁ¦:Mê;2¨ùî+­ï{ytÿÎ9ØþPÞ·­ú²ê˪/;qüÄñÇ‹ÚѤÞ. `hQC]C]ø½q{ãöæe™ÞúCËec»Ø|¾{לÉ1©! ¶BÈû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»å½‚ú¥jèÐúY#clCF¾­TïzÑzW1wµrV…[yÙæ»üØåÇ.™û2÷eîã°[lY°å_<Þy‰Gp×½Ëúœô¶R½ÿeÄ0ïê ïU‹¶ÍÈË6,?²üÈò/Ú¿hÿ¢H<öœx»(€¡)ç=œ÷p^«û­î·ºŸûr|=‡Šã­c:·»êë¥+ûIhé·U$¼fÌŠ 9éÝqYÑT«T-÷}qí6ÚmôÍå7—ß\N´çI‡'žtˆºu7ênîI°·þ¶Ü3éhÛ?½u9•cv„\0¡TëbcCCÏþÙ©³ÿ¤Ve>¬Ò÷Þ=Y²zÉê%¯Æ^½K´çùÒçKŸ/=0zà?ü‚Ž«eTÙ/÷Ul#{íÈ~?&<ägSKõ…°.ÅMúôtõv‹rß—rýÊõ+×/eWÊ®”]Ú>¾ÀÀÛE 8øüáóyz×ìî.­÷{Y›Z…ûxàçvë|Ëçeï;%vJìD´áŠãÇ+ŽyúÌQ¿°ò#Í+ÕGvµì÷u¥Ùå;Y®Ë}ï”æJs¥9yІëé×Ó¯§WZ]iu¥Õ¹÷µJ‹0÷DóJõ©ÑQ6 ã‡ÚÖ²š“ûÞíY½gõžÕZ=ÊÀÀÛE ³w0ä`ÈÁÜ—Ú‡žõôvXüìiô†àwÌ«Nxu|¹³ÿÉÖ“¾ò¿áœûþnï¼½óöÎdÃ|<y<2÷£s³~­šÕÓ~èÛ'ÈÏ|S},faHÂlÇ&㜿Ê}×}·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°ióMµÎ?Ö>´ââ/ƒÒ]g便qïŽ÷žöŽ50ðvQÃŒ ‰B¢˜ûòú¾m’½T3.ŒŒ‰ÛÛÏòóÿ‡Â,y]òºdrb^n$ÜH¸‘û‘Ýz/l‡Ç%í¥úÔÚ(džÇÿ¡0û8îã¸É‰y9ÙödÛ“mÿázõ~‹h÷ ÚKõyûÎ?5ú‡_Ù™»h‹´tÄ)€€·‹f)¡LB™„2¹/©_™Ø-2à‘öê„WÇ;޽švtô±-c5ÞØ}4j®¿…¶S¶©ï° àÐ65ƒ*}gÿ’{Kî-¹§ãN ¼]À03R/¤^H5¶€îð±Mc«têÜ´…¶ë„WÇç½¢ÏW ­Ù¤r„±™9lqØâ0‹ï&êªÝU»«vÆŽ]ù§eÿ*ët{P¯âÎE'ÕßõË >Ö~PëvûÍŒø£ø£ø#ù1M·–ÜZrkIîÕïµ[ÝŸ4¾_tRý2»ÿÝî}º¶ªñ®±9Ùá±Ãc‡‡¹} `àí¢†ÙxtæÑ™GgŒ-š×š`Sºüí´9}cƒŠNð ³ãý+ÿ*ÕTy ±YºQâF‰%È’éxöõ³¯Ÿ}]î‹r_”ûÂðx•»Vö;‹û÷Ózonê^4SõmLÅo;´¯ÛÐî±±T_N¹œr9…,™ŽŒÀŒÀŒ@‡iÓ¦;j¯è¹£INÑLuΰ˜s!÷£ý]j´66?I’.$]0ß Po0ÌÁDÝDÝÄÛÛ[cËå÷ÿî½±©[ѬþÏ»·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆ•)èy³çÍž7–dƒzþÒä ©Î,Þß%øžÿÕT¬`8K6¿Úüjó다I/’H”)’2$eHбTÿåÝ=²ñ4Rµ ¦fÈØðÎתÜ66WO“Ÿ&?5ËÏq§Þ. `˜U–«,WY["O­ÖõhÀrê„WÇ»Ízm \hlÆ&÷œÜsrOrõvm™¼eò–ÉÆŽÑ¹¨N7ý/“äWÇG«ûlmzÜØŒ¬=²öÈÚäêíúÃúë?¬£cJ‡í~÷Hò«ã3ïèè súǼÎØ€âŠ(nŽI .XQK£–F-ÕÏáV‹­[-²zgõÎêÍÌÀ `˜´[Ãn »5ÌX°{OëT/'*cãÑçbüc³—|!ùBò2öæÝ?sÿÌ}£3ߨ¡åŠ‹H¯±1éT§íþFS}|Éñ%Ç—±7ïIÀ“€'ÆŽËŠÊ¡åÜΑ^cãå³]7Ì06{ñâÄ0¯j¼á¢ççÃxÕêKm—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€×TeÝ~­÷Ä~‰Í˸¸wPšëÃ9¬Ò¯J¿*ý²]²]²]HÚ›42sdæÈLÃ#Òê–C§*ót3b‡Ö#·¹k&4?ç>ÎXÕ—Ù.³]f;sÉp½ z彿¹£ À«(€a¢Nذ;agl¡óÉè¾rÐP ƒ¼Œ/»ößâgnÙ§ìÙÜSrOÉ=%ÉÛ›q~Ùùeç—Kõƒj½å¦þ$6/cvJÌÒĺÏ*–·®i8“¾Ùð͆oÈÛ›qÕæªÍUc©¾u¼gÿ&'HlžÆþ±n¡5ÖØ¨¸Àp&—¥.K]–j.© .°ŸKÎ/9¿¤íƶÛn´È3Ê`PÃô<Õ=Õ=õMõMõM5\ÖÜ–âñ„ªàߎ‡³Û‡ûýålçlçlg¢WØÂO‡Ÿ?m8ÿ«G5/ï^Š”þÛñLrÔ ÿ0£ï˜¬Y;“O.t=wöÜÙs§áü/ÜÐô¡ËRúoÇKÛº„Kõóžôü#3Hp!  @ÞQÃ䜶?mÚÞpÓ~ºõœòï匊¹ò’à¿-ÏÕzR¥£áÜîKÛ—¶/ìž”…) S[ Ïò‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µë5Ÿ¦³"fEŒégƒ¸°Q wÀ09Q·£nGÝ6\¸”Jµ]ä}†b ?cÒ¨Nóü×έk¦k¦k¦.K—¥Ë"…aà¶Ûn{Í;Ú·…óüˆdægLÝõyÀùµ=k{Öö¬.P¨ $…aT÷QÝGuÍ;Ú›6Ë©¯#™ùoþÔãQ“‰FŸÙÐ+»Wv/SÎð›D CÀ0!*=¨ô ’Ñ%o!fvH<Å@þGÏõUËÚÌ4œáÔé‡S“Âõô§ï<}ÇècŠöŸbO& àÝíýj®`8ÃIÝ’º%u#‡ëÅÞ{_ì5–êôâý,‚ÈdþÇîÅ+Øo0œáÄøÄøÄxSNðÛB = `˜Õ V7XÝÀpiryé·”5î]Üf¶×kG¨ðÀè;Ûòþ(ÚVý׆x9¬²aõ¿%û~qna5–ëK c¢7»>©«ÿoý÷êÿžÂ+îméíxÛpKzZö´ìiI&óo~Öü¬ùY†3|Ú2ªMÛ¤º0Æ'%ûÎêd¸%­<[y¶ò$“ù·zÿêý«÷ÎðÁ ŸZøF’êÂ_Ø÷û6ø{Ã-ñ´ð´ð4ÑJ•ØQh 0L‚ß1¿c~Ç^ó‡Îý®Ê{%9º§¾_Þ—8óþ7ï\ÜÚÊs‹þ»Ê);ÜâνF½KžÈýïyõÏçÿq¦yútÉŒØBKÝß]Š.…dæGÄþˆý¯©Êžv‹.´ŠTÊø$6:4ÈrKÙ-Ö¼æó­—ä,ÉYB2ó#ºgtÏ螆sû ¸÷‰¦!¤ºðƺ›l3­Ë¿æó­Ëf•Í*kj9¡6w”ÁæŽ&Áp±êT«aå:ÞbúÙ]ZùÿÓwÕË4óS*|q×c¬C=ýwµßR'ÇîHÞÿ†WÿÅ//y\t(ôÇ_‡5vQe­áþ¦ŸI?“~†dlªÿ—„í±á¡ž¤ºðÆ^u\‚ª÷1Üß´éiÓÓ¦“Ìü°“íd;ù5åºkÌþˤºðÆa‡Q2×Åý[*„þZ³wåhýw-nt×ubÞ¿÷ç^A³]#ôßÛâ«ZCª|XØ{úãΆcê4Üß[·2neÌ‚Mu‹j…V~Hª {Oçé¹´3Üß+=®ô¸ÒƒdlªÝ'T¾Qá©.ì=]•ÑìZý‡†û›44ihÒPSË °VQ˜ `˜ÃåÂI{üuNí̱T¨=ßæ´U¯ÿ-z&‡ý÷ïÝr3ìSúï­óí«c…ýpѵãZx¸ï{M©p$éHÒ’Y°©þº«—cmgR]Ø©Þõ õÏÃýMœ8;q6É,ØT÷þÝålõ}¤º°S}àãvÃ|žî¯ððð©å„¸(  0eÀ0 †K„¿F„Þ¨ßÞK…JË[.Õ×ÁŸ?ýÈ·uÞ¿Wÿçõß[Å¿ü‹rv© f´í}ÂpĈ;G2 6ÕsŠ59í¼šTvª¶ëàä·Èpwß=~÷x’Y°©ÛÍ/°Î:R]Ø©NîÔ9´QÃý]gµÎj•©å„¸¨ÉOÌì `˜ÃeÁ-Éa­=–šc©PîLÙáwþ÷>Ú5VùïÈû÷êÿ¼þ{_ý{ oOdw(é7ÁoÄ/ ¡Ûê{‘êB¯Ê,;×kôy{3f÷m²Ðy©.ìTÿy¶ÛñÆ É´‡×À…&ÁpApçÚÖ=·›ûcE}ûé¾ÿâá¨Ö¶Ûìk£ÿÞZÛmìÊ?-ìRáÄýŽã`úÍXóQó5îýHua§úâ¬.#"ooÆB«¦»\ŽêÂNõµ?»?j|—¼AKÊÏ+?¯ü<^ `˜-½¸qeûy·è¿kûžð^žÁyÿ^ýçPê¿÷Õ¿‡wó`RÍ;€ypQN5ïï@ÞQÃ$.šïgwœ]wK5ýw-· ‰të™÷ï]V3ø…[]ý÷FýàT²ÚàÂ.Œ}ðBÿ…þ ýãßåë¿Ϊù~°y¥ÚØgÏè?£ÿŒþ$³`Sm¾Ÿl^©6öÀ?ÌýaîsM-'aaa†[ˤկÕ#VX="040404ïÕï‚w¼»à]^ `˜ÃeÁI{üuNí̱TzÌÓÃáåS[çïíïåý{»×q®eÿ¿Ï•&xÎp8QØ¥ÂÚq-<Ü÷îoÒ‘¤#IGHfÁ¦úë®^޵Iua§z׃ÖsõŽØ_{¾Íi«^V;,ë–í¨ÿï¶ÎßÛß;øó§ù¶~“û¸o}›t¯s†{º¾Ëú.ë»Éü;5ñÔÄS gxFzãÈzûIuaŒ‡¬>]à»ÒpO—TZRiI%2™){Sö¦ì5œáQs|Î;'Õ…1ž Œ’üëîéÔESM]dš9¡6”¾ZE “ð8óqæãLÃEF¯äªcmμ­O~µ`(ì¿çÍì?!ÄžLælÙ¯Öá*†3œÔ-©[R7rX°^ì}±÷Å^c©N/ÞÏ"8€Læì^ܹ‚ýÃNŒOŒOŒ7å„P¿-”¾Ð£†É‰ºu;ê¶á¥Tªí"ï3Tù“Fušç¿Þpn]3]3]3uYº,] , · Ü6p›áÌoÛ^Ìó#’™Ÿ1uv×ç{ çÖö¬íYÛ³º@] .†QÝGuÕÝpæW7m–S_G2ó3Þü©Ç£&þ:T¯ì^Ù½L9Ào¥/ QÃ䜶?mÚÞp±Ò~ºõœòï匊¹òzà?¾Kò\­'U:Îí¾´}iûÒÈ^áIY˜²0e¡ÑO¨õ‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µËpVWĬˆYcúÙ .l”¾È0LÏSÝSÝSßTßTßÔ×¼c2",Åã õÀ¿g·÷³4ú~2çlçlg¢WØÂO‡Ÿ?ýšwLŽj^Þ½)ý·ã™ä¨þaF¯];³vfmRWØzîì¹³çNÃù_¸¡éC—¤ôߎ—¶u 7–êç=ÿèùGf àB@é €¼£†‰:awÂÍ'£ûÊAC© ò2¾ìÚSˆŸu¸eŸ²# grOÉ=%÷”$ooÆùeç—_f,Õªõ–›ú“ؼŒÙ)1KCë>«XÞº¦áLnøfÃ7¾!ooÆU›«6WmŒ¥úÖñžý›œ ±yûǺ…Ö Xc? âÙ\–º,uYª¹¤‚¸À~jPúà?¡†I‹5>j¼áâæçÃxÕêKa—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€Ã#Òí×zOìؼŒ‹{¥¹N1œÃ*ýªô«Ò/Û%Û%Û…¤½I#3GfŽÌ4<"­n9tª2O7#¶qh=r›û¸fBósî㌾£½]f»Ìvæ’ à{´4jiÔRJ_ü[À0i·†Ývk˜±åÎÝ{Z§z9Q>ïã'›½ä É’/±7ïþ™ûgîŸ1v\6vh¹¢Á"ÒklL:Õi»¿ÑT_r|Éñ%dìÍ{ð$àI€±ã²¢rh9·s¤×Øxùl×Í3ŒÍ^ü€øñÌ+À%åJÊ•”+”¾ø·(€aVY®²\eôókS«u=°œ áÕñn³^[›±É='÷œÜ“\½][&o™¼e²±ct.ªÓMÿË$ùÕñÑê>[›76c#k¬=’Oü}Ëþ°þÃúkcÇè˜Òa»ß=’üêøÌ;::è\ù§eÿ*ëd8cŠ(> ¸9&¸`½ú>`J_ä0ÌÁDÝDÝÄÛÛ[cÕÂý¿{olêFð|[ô“àzuã+·~Í\9¥;¥;¥¿L{™ö2X™‚ž7{ÞìyÓXªÿÔó—&OHufñþ.Á÷ü¿¨¶ bÃY²ùÕæW›__$½Hz‘D¢LÁ”!)CRŒ¥ú/ïî‘§‘ê¬15CƆwv¸Vå¶±¹zšü4ùi²Y^Ù(€€·ŠfãÑ™Gg}pn­ 6¥ËßN›Ó76( hÖ ÇûW þ3Tª9¨ò@c³t£Ä7J%Óñìëg_?ûºÜå¾(÷…áñ*w­ìw÷ï§õÞÜÔ½ˆ–d߯T ù¶Cûº íKõå”Ë)—SÈ’éÈÌÌt˜æ0ÍašÑ_nXÑsG“œ¢™êœa1çBîGû»&Ôhml~’.$]H2ãGôSo0ÌÌ…Ô ©R-š;|lÓØêƒz'7mQ„ÞõÛ+úlpÅÐКM*G›™Ã‡-³øn¢®Ú]µ»jgìØé{{P¯âÎEè¾ë—|¬ý :×íö›ñGñGñGòcšn-¹µäÖ‹\]»ÕýIãûE'Õ/³ûß éÞç¡k«ï›“;}4j®¿…¶S¶©ï° àÐ65ƒ*G›‡%÷–Ü[rOÇx»(€aÆ„D!QH̽ZØ×¡M²—ª½:!q{ûY~þ¹ïûºäuÉë’ɉyI¸‘p#áFîGvë½°—´—êSk£Ï}ßã>Žû8îcrb^N¶=ÙödÛ¸^½ß"Úý‚öR}Þ¾óO‚sß÷¹‹æ.š»HKGœx»(€aö† 9’ûòúгžÞ‹Ÿ=ÞüŽ?>tgÿ“!­'}åÃéê„í·wÞÞ™l˜¯ã‘Ç#Gæ~”cnÖ¯U³zÚ}ûù™oª³Å, I˜íØdœóWÿP~·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°i3®~ýcíC+.þ2(ÝuÆ?üBÃ{q½cM ¼]ÀЈó‡Ï>Ø"vwi½ßËÚ¼ê„?·[ç[>/{—Ø)±Sb'ò  W¯8^qÌËqßâVÞc¤y¥úÈ®öý¾®4»|'Ëu¹ïÒ\i®4'Úp=ýzúõôJ«+­®´:÷ã¾ViæžhfïbeÓ0Þq¨m-«9¹ïÝžÕ{VïY­Õ£L ¼]ÀД‡óÎ{8¯ÕýV÷[ÝÏ}ñ½žCÅñÖ1Û]õõÒ•ˆý$´´  Y±1¡!'½;.k82ðƒêa•ªå¾/n£ÝF»¾¹üæò›ËÉ€ö<éð¤Ã“Qw£îFÝÍ= öáÖß–{&mû§·.§rÌŽ“{ îÙ?;uöŸÔªŒÃ‡Uúæ¾/ÕKV/Y½äÕØ«±WcÉ€ö<_ú|éó¥Ñ£FÌ= Ö®–Qe¿ÜW±ìµ#ûý˜ðŸM-Õºk4éÓÓuÖÛ-Ê}_Êõ+ׯ\¿”])»RviûøRo0´¨¡®¡®aÜÞ¸½q{óòîIë-[”ýíbóùî]s&Ǥ†<~[EÂÖ„°5gëDÛ~o•§w3Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»YäÙ/UC‡Ö·ÈcòÖÞ¼ëEë^ÅÜÕÊYnåe›ìòc—»dîËÜ—¹Ã^lY°eÁ–yOõà&®{3–õÿ(8ém¥zÿˈaÞÕÞ«m›‘—mY~dù‘å_´ÑþEû¢pL)€€·‹wýôõÓ×OG¤D¤D¤ä½`yY³fåÆë|Z|ã~ýúW=›”*Øòàî罤À¸-»Â‚<æGNuöM¿ÞÑ!|‰gLÔ,'‹j_æ}Û\6¹lrÙ”´;ᾨÖ{óƒ›~äÒ{³]«u~BŸˆLï¡êœÈÛ>Ë¥ mÏz§oÿ*¼¹§çRßà®Ï†wð_;ºÑ/öVìj‘»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À€îö¾Ûûnï[â¸Äq‰cÍ5kÔ¬ñæ++{+{+ûY+g­œµòºëu×ë®äǽÐ{¡÷BWÄ­ˆ[ç´Ôi©ÓÒ·UMóŸæ?ÍÿªËU—«.äÇéô@ZýxõãÕÝŸ»?wþ¶R=aë„­¶¦¾Ÿú~êûCÀÀÛE ¼Æý÷[Üo±¿Ïþ>ûû =<ºv\í¸Úqù¯ ì¦ÛM·›>øÒàKƒ/íl¸³áΆ·'Ýžt{sŽÂöðÇ>üPì&v»}ñmÄ·õš×k^¯yþS]it¥Ñ•FöÞgï}öÞ¶RÛJm+uk­ ·&0ç(l¶>Úúh«2Tª ý~Ì÷c¾ãö—Û_nå?ÕúUèW¡_Œ]Œ]ŒÝ¦ã›Žo:~cðÁ73çL0Pž'UÓÔ45M}¬>V«ÔGê#õú@} ÞWï«÷Õ»ê]õ®zG½£ÞQÿVÿVÿVo©·Ô[ê õ†zC½®^W¯«©©©WÕ«êUõŠzE½¢¦ª©jªzI½¤^RSÔ5E½¨^T/ªçÕóêy5YMV“Õ$5IMRϪgÕ³êiõ´zZ=¥žRO©'Ôê õ¸z\=®UªGÕ#êõˆzX=¬V©‡ÔCj‚š &¨Ôê5^WãUEUTE•UY•UQUQTAÔýê~u¿ºOݧîS÷¨{Ô=ênu·º[Ý©îTwª;Ôêu›ºMݦnU·ª[Õ-êu‹ºIݤnRWWW7¨Ô êzu½º^]«®UתkÔ5êuµºZ]­®RW©«Ô_Õ_Õ_Õ_Ô_Ô_Ô85NS—«ËÕåê2u™ºL]¢.Q—¨‹ÕÅêbu‘ºH]¤.Tª Õùê|u¾:O§ÎSç¨sÔ9êlu¶:[ýIýIýI©ÎTgªÓÕéêtuš:M¦NQ§¨SÔÉêdu²:I¤NR'¨Ô êxu¼:^ýAýAýA§ŽSÇ©cÔ1êõ{õ{õ{u”:J¥~§~§~§ŽTGª#Õêu„:\®W¿V¿V¿V‡©ÃÔaêPu¨:TýBýBýB¢Q‡¨ƒÕÁê`u:H¤~¦~¦~¦P¨ÔX5VUû«ýÕþj?µŸÚOí«öUûª}Ô>jµ—ÚKí¥öT{ª=Õîjwµ»ÚMí¦vS»¨]Ô.jgµ³ÚYí¤vR;©ÕŽjGµƒÚAí ~ª~ª~ª¶SÛ©íÔ¶j[µ­¡F¨jkµµÚZ WÃÕpµ•ÚJm¥¶T[ª-Õæjsµ¹ÚLm¦6SCÔ5D VƒÕ`µ©ÚTmªªj ÚDm¢6QÔ5@m¤6R© Õ†jCÕOõSýTÕGõQ½UoÕ[õT=UOÕCõP=TwÕ]uWë«õÕúª«êªºª.ª‹ê¢ÖSë©õT'ÕIuRë¨uÔ:ª£ê¨:ªµÕÚjmµ–ZK­¥ÖTkª5Õêjuµºj¯Ú«öªj§Ú©UÕªjUµ²ZY­¬VR+©•T[ÕVµUmTÕFµV­UkÕJµR­Ôrj9µœj©Zª–ª…j¡Z¨eÔ2jµ”ZJ-¥~¢~¢~¢–TKª%ÕÔÔÔÕÕÕj µ„ú¾ú¾ú¾ú®ú®ú®Z\-®W‹©ÅÔbŠNÑ):%[ÉV²•,%KÉR2•L%SÉP2” %]IWÒ•çÊså¹òTyª-Ÿ’Oɧäò ù„|\>.—ÊGå£òùˆ|D>,–ˇäCò!ù |P>(Èô/ ô—Y’%Y’EY”Eùùùy¿¼_Þ/ï•÷Ê{å=òy¼KÞ%ï’wÊ;åòvy»¼]Þ&o“·É[ä-òy³¼YÞ,ÿ.ÿ.ÿ.o”7Êåõòzy½¼N^'¯“×Èkä5òoòoòoò*y•¼J^)¯”WʿȿȿÈ+äò 9NŽ“ãäeò2y™¼T^*/•Ë‹åÅòÏòÏòÏòBy¡¼P^ /Èóäyò•>•>•ÚIí¤vR[©­ÔVŠ"¤©µÔZj-…KáR¸ÔJj%µ’ZJ-¥–Rs©¹Ô\j&5“šI!Rˆ"KÁR°ÔTj*5•¥@)Pj,5–KR€ ùKþ’¿ÔPj(5”|%_ÉWò‘|$ÉKò’¼$OÉSò”H ¤’»ä.¹Kn’›ä&¹J®’«ä,9KÎR=©žTOª+Õ•êJu¤:R©¶T[ª-9H’ƒTSª)Õ”jH5¤’½d/ÙKÕ¤jR5©ªTUª*U‘ªHU¤JR%©’TQª(U”l$ÉFª U*HV’•d%•—ÊKå%KÉR²”ÊJe¥²R©ŒTF*-•–JKŸHŸHŸH%¥’RIé#é#é#éCéCéC©„TB*!½/½/½/½+½+½+—ŠKÅ¥bR1©˜¨u¢N̳Ål1K̳ÄL1SÌ3Ä 1CLÓÅtñ™øL|&>ŸŠOÅ41ML‹ÅÇâCñ¡øP| >ˆ÷Ä{â=ñ®xW¼+Þo‹·Å¿Å¿Å¿Å›âMñ¦xC¼!Þ¯‰×Äkâ_â_â_âŸâŸâŸâñŠxE¼,^/‹—ÄKâ%ñ¢xQ¼(^/ˆÄd1YLωçÄsâYñ¬xV<#žψ§ÄSâ)ñ¤xR<)‹ÇÅcâ1ñ˜xD<"ÅD1Q<$‰ b‚˜ ˆÄx1^Œ×¿ü×ÿØõQq¿¸_Ü/î÷‰ûÄ=âq¸[Ü-îwŠ;Åâvq»¸]Ü&n·‰[Ä-âq³¸YÜ,þ.þ.þ.n7ŠÅõâzq½¸N\'®׈kÄ5âoâoâoâ*q•¸J\)®WŠ¿ˆ¿ˆ¿ˆ+Äâ q¹¸\\..—‰ËÄ%âq‰¸X\,.‰‹ÄEâBq¡¸Pœ/Îç‹óÄyâB/¡—ÐKè)ôz Ý…îBw¡›ÐMè&tº]„ÎBg¡³%D QBG¡£ÐQh/´Ú Ÿ Ÿ Ÿ ‘B¤)´Ú m…6B¡.„ áB˜&„ -…–BK¡…ÐBh!4š Í„P!T‚…`!X‚„ !P…&B¡‰ B#¡‘ÐHh(4 ~‚Ÿà'ø>‚à-x Þ‚§à)x „BÁ]pÜ7ÁMp\WÁUpœg¡žPO¨'Ôê u…:B¡ŽP[¨-ÔÁA¨)Ôj 5„B Á^°ì…jB5¡šPU¨*TªU„*B%¡’PI°l[ÁF°lkÁZ°¬+ÁJ('”Ê –‚¥`)Xü?öî;*Šë øx4&11*XPQ°¢‚Š RĈŎ‚%6,Øb‰½Ä%**j$öŽ•ATEcï{¯ ¢"²ï×÷¼üÞeÖÅÝ…ÝåûÙsæäعóìåÞ癹eeU0ª`TÁ¨üQù£òGýõkÔ¯Q¿DýõKÔÏQ?GýõSÔOQ?EýõcÔQy¢òDå‰Ê•;*wT®¨\Q¹$…¤Rš”&¥I©Rª”*}’>IŸ¤ÒGé£ôAú }’¥d)Yz'½“ÞIo¤7Ò)IJ’’¤×ÒkéµôJz%½’^H/¤Ò3é™ôLz*=•žJ¥ÇÒcé‘ôHz$=H¤ûÒ}é¾tWº+Ý•îHw¤;Ò-é–tKJ¤é†tCº!]—®K×¥«ÒUéªtEº"]‘.I—¤KÒé‚tA:/—ÎKg¥³ÒYéŒtF:#’NI§¤ÿ¤ÿ¤ÿ¤Ò é„/ÅKñÒ1é˜tLŠ“â¤8é¨tT:*ÅH1RŒtX:,–¢¥h)Z:(”JB¤)EJû¥ýÒ~iŸ´OÚ'í‘öH{¤ÝÒni·´KÚ%í’vJ;¥Òvi»´]Ú&m“¶I[¤-Òi³´YÚ,m”6J¥õÒzi½´NZ'­“Â¥p)\Z+­•ÖJk¤5Òiµ´ZZ-…IaR˜´RZ)­”–KË¥åR¨*…JK¥¥ÒRi‰´DZ"…H!Rˆ´HZ$-’þ’þ’þ’H ¤Ò|i¾4_úSúSúSš+Í•æJ³¥ÙÒli–4Kš%ÍfH3¤éÒtiº4Uš*M•¦HS¤)Òdi²4Yš(M”&J¤ Òi¼4^/“ÆIã¤1ÒiŒ4Z-–FI£¤QÒHi¤4R. —†KAR$ •†JC¥!Òiˆ4H$ ’J¥Òi€4@ê'õ“úIR (õ•úJ}%É_ò—zK½¥ÞR/©—ÔKê!õzH~’Ÿä'u“ºIݤ®RW©«ÔYê,u–:J¥Ž’¯ä+ùJí¥öR{©ÔNj'µ‘ÚHm¤ÖRk©µä#ùH>RK©¥ÔRò–¼%o©¹Ô\j.5•šJM%/ÉKò’K¥Æ’‡ä!yHî’»ä.5”J ¥R©TOª'Õ“Ü$7ÉMr•\%WÉEr‘\$'ÉIr’êHu¤:R-©–FÆ€IDATTKr$©¦TSª)ÕjH5¤êRu©ºd'ÙIv’­d+ÙJU¤*R©²TYª,U’*I•¤ŠRE©¢T^*/•—ÊJe¥²’µd-YKe¤2R©´TZ*-•’JI¥$ ÉB²JH%¤’¹d.™KŤbR1ÉL2“̤"R©ˆTH*$’L%SÉT*(” J¤RéWéWéW)Ÿ”OÊ'ý,ý,ý,å•òJy¥¥¥¥¤¤¤ï¥ï¥ï¥ÜRn)·ôôô]dZdZdZäçÈÏ‘Ÿ#?E~Šü™™™ù!òCä‡È÷‘ï#ßG¾‹|ù.òmäÛÈ·‘I‘I‘I‘‰‘‰‘‰‘¯"_E¾Š|ù"òEäóÈç‘Ï#ŸF>|ù$òIä“ÈG‘"E>Œ|ù0ò~äýÈû‘÷"ïEÞ‹¼y'òNäíÈÛ‘·#"""oDÞˆ¼y=òzäõÈ«‘W#¯F^‰¼y%òRä¥ÈK‘#/F^Œ<y>ò|ä¹Ès‘ç"ÏDž‰<y:òtäéÈÿ"ÿ‹ü/òDä‰È‘ñ‘ñ‘ñ‘Ç"E‹Œ‹Œ‹Œ‹<y4òhdLdLdŒHÛ‹t¶SÎÒ]Їz(`Ð À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ À€ÏDm[‹l-²µHöî­Øõ÷™ókM4ýÑtë;Öw¬ïˆ3[¦`™‚e &ÞM¼›xW“§m¡Ï?~,Õøÿ_´Œ:¦lž²yÊæôßwÏ5žk<×dåßPÎèµèµèµz-z-z-c¢ŸgAdD–@ì•ȈLg ø6€)Œpø.§›M7›n6Ù»·ÝÍ»›w77É$βáJ+•V*­T³Í:4ëþœþiö§ÙŸf¤ `ÜF¬±rÄJ=ŠÞŠŠÇp|Àð-÷ ßâ±Ãc‡ÇŽ*«t¬ÒÑ,Ü,Ü,Üf”Í(›Q o5¼ÕðÖgCž yv$îHÜ‘8ñ]ÎÊ÷Ó¼Ÿæý”¾Å|R}R}R³òo(1 z-z-z-€^‹^‹^+'dôaßæ8Ìq˜ã~¯š{5÷jî•õßÀ8P¦ 0ÚỲâÓ‹O/>=»÷É‹“'/6ù&œeÃ5}Âô Ó'¤?›åŽ”;Rîˆúg–Ø€!ú\õsÕÏUËï*¿«ü.}ˆÞè·Ño£ß:v8ìpØDZhy eÖìóÒK{,í‘þÓ;·ïܾsû¬üJ$ƒ^‹^‹^  ×¢×¢×Ê $}Ø··o#ÞF-€¶P¦ ÈRî‡T½t1¡ÒŸ¡ó¶ämÉÛ’)ç—g\žqy†òÙ\¼|ñòÅËIÀ¸,|°ðÁÂÙ½âJùÁ?þyðÏ&: ¯ºÛÿöÿ³ÿŸýé?±Ï¶>ÛúlÓî§ÐÃôZôZ½½½VΡÿçbaüÂø…ñé÷­HL‘˜"1Ä Y€)ôb¨­É°;³ÓÈ.»4îÒ8ë½ÇóÏ{<§œ#PPh2¼Éð&ÃÓŸG±ÜYfÏ)±Cä;Ùw²ïäìŠ^‘Ž ˜0)`’‰Ž}Û‚lâ)_µÕ^T{ÑŒ!3†Ìr;×í\·s¥ÿ™m?lûaÛé?kpÊà”Á)éæuâëÄ׉a?†ýö£×^xý±oà¾ûÒÃôZôZ½½½Ô?#ú³‡ï§½Ÿö~šòŠKqõQ¦ Ћ¡vV€‹… )’•C|¹á;`cµvãÚk7*ŸÇåV”[Q.³ïæ¦êEkCßl辡û†îÙÛ³)?=K™‹¯‹¯‹ïºñëÆ¯Ëä–É-“£>Œú0Jü÷¿sþóï§N#œFèâX6úlôÙè#÷n"ɨܒâ9{fg¶ÜåxðàIÐkÑkôZôZôZP?ƒ¤oû©¼D99" ³(SèÅP[w`«D«D«Äì4ï<¶óØÎcÊŸn}ÇúŽõ ÀÆäcàÇÀ•*TH-m-m-m9›0VŸš}jö©Ù_þ:ð×ì½´åaÈÇ!ª?w`íµÖVgăªß­d§’JvÊìu³éfÓÍFwɤÿ«GdôZôZ½½½ÔÉ éÛ~ÊÝHPµiÕ¦U›¦tJé”Ò‰³ ¨F˜0@/†Úº+*>¨ø âÊÿÞ1¨cPÇ ¬9ê^§zêuJý}£l¸ä®ÒU? è3‘¤»Yífµ›ÕÄ¥-ÁCƒ‡U¾è!»z¶Þ{ì}PîÛ¯n¿ºýêLzEEÕÇ"–@Tÿ-£¬£¬£¬ƒ¢‚¢‚¢ª+ª+ª+4ODö¼ÙófÏ›á¡á¡á¡ô6½½@¯E¯E¯õ3H†˜CãlªQ¦ УÁ«. ÀÑy¢óDçQþw³p³p³p]šÅ"Wrûv°ðÁ S6â\WšViZ¥ ®Ò=w$îH­Ct²ÞÉz'ë¹Uq«âVE»÷Ohw??~,÷YæÁæÁæÁ÷ŽÞ;zïè·½ÿ{wîݹ'ÞGùýM“L“L“49.ñ»â"ñ|/¹c©ñªÆ«¯¦O˜>aúqvø{ÐkÑkôZôZôZÐ$ƒ¤Ÿ{+—Ñ…ˆÈ8§€ À€z1ÔÖ]XE¥tw¼"6DlÈìÂÔ€ Ñšãkޝ9.71ã<ÂpÉõcú–”\2xÉà%ƒ5_ŠP“¿8ËZ-kµ¬•F‡Q@Q@Q Ã‚ :,û›Q6£lF=¯û¼îóºÄ'@¯E¯ÐkÑkÑkAóÓϽM+•V*­ù"àÛP¦ d‚xæJdýÈú‘õÅжᭆ·ÞÉý¢E#ŠFT\\qqÅÅõó×Ï_?ç=ž÷x¾©Á¦›$O:Ÿt^×{øªà«‚¯ ®¿nüºñ~¿øýâ÷K]çºÎuËï*¿«ü®ô{(®-õûä÷ÉïÓúAë­$~WwûvlLÆ/¹ŸO¼›x7ñîÂø…ñ ã[–lY²eIûÛö·ío )R,¤LÁ2ˬ½¨ö¢Ú‹Ä"ºby"A8{ÿìý³÷Cæ†Ì ™+"ÁÅ×Å×ÅW졸¢Vì§(CŠ‘ÚF·n=Öc¬ÇXqgjªkªkªkÖ µuWVý3b‰*Ý‹>Ûúlë³Mùs«ø[Åß*fýÔ]ßbC®gPÝ?ܽp÷ÂÝ DþùGdSÿ¦þMým]l]l]Ä]ÝâXit¦Ñ™QGM5ñ¿êÿUÿ¯º®¿wõ?×ÿ\ÿ³ò¹û½ØïÅ~/ÆßP.CIJ6Þdx“árŸ¥ºWQ_ìÒØ¥±Kå>EÜM¢ÉûÏû0ïüéß³ðùÂç Ÿ·«jWÕî.f£#‘"Jz-z-€^‹^‹^ šdôyŸÇ´ÓvL[å}v?ä~ÈýçC˜0ð5Ön\»qíÆ²çÊž+{Nó!øÛˆ·o#´µƒobÞļ‰_a|…ñ´5IÅ׬`)³DÑW“ý¿erËä–IŠ„ŠŠ[Ên)»¥lƒ— ^6x©ÝIã¢M‹6-Ú”Ù…e²râªÎïF¿~ýVùÿ‰)S$FÃ}Ñbr{•þ’NÝõ262'éû:ÿ0ÿ0ÿ0MöùÊè+£¯ŒÖî¹>euÊꔕÜ'^\wqÝÅuYÓºp|ÀñÇøäËÜ++“’/-_Z¾´”ûqјÖ>Qå3ê4Yœ0nVܬ¸YÊï9eó”ÍS6+¿¿¶Z’ôZôZôZ½½½VÎaˆçB\ÊO,™E˜0𕮸·L»%ñ„Èø®ñ]ã»j²‡¢äPam…µÖjwË)w¤Üñ¤]°qMePTPTP”æû/¦׺\ër­‹qG‚(ÕûNöì;Ù$KˆÖÐüŒg}8ë‚Þ3{Ïì=³3Xüù;«ï¬¾SçîdMöMŸc#³q"¾Ë‡;Ö|?ÅýÍÚ=ãCo ½1ô†òg‰u H€ÄŠ®£WjwÿÅÑ¢ìg|‘ îN?]Éͽš{5÷×äj>aËʰêŸSVíö$“&LRþ,åg#iwr«ÿ±‘Ù8©VªZ©j¥´»·š\9žžêçñˆÐuÿÉ_íos>ö|ìùØ-N´8Ñ‚Ö0ô¤¤xœÜ§LŸ0}Âô Ú=ºiNûsÚŸrŸ¸¢ÜŠr+Ê©ÿn#çœ7ržòR„grŸÉ}&wúŸL^œ¼8y±\?)QAÐkÑkôZôZôZÈìÑÿ=—[MÜ^BDÊ(Sþ‡(Šç¹ª¢yìðØá±#<4<4<ôv®Û¹nçz?íý´÷ÓÄï·wÜÞq¢Ì“þjAeÖw¬ïXßQÿô“~Oú=é§Î@_<­d[ò¶ämÉ÷ŽÞ;zï¨X¦õþîû»ïïÞþpûÃí[½hõ¢Õ Õïcikiki«ë;ؔճ¨gQÏbk‘­E¶yü8øq°¸£Q\y:Às€çOm• 1§ Nœ¢zßÄ{Љ“XìèvÒí¤ÛIF}õa”(o‹ˆx>±ˆÕû©~«v7Ïø¥ú=å~K[ªÃ—_:|I× A§tJé”ÒIn¤R ©†î¦îúšô ‚Xôl×¾]ûví{ò0äaˆøÞݬv³ÚÍj+‹®,º²¨s_ç¾Î}U¿æç]n1!´ahÃІºNîð·ûÛl辡û†îé[RüË·¥u½II¹»ð…õƒÖZ?H»G÷ïœçü;GîE’QýwS~dÀä““ON>)×Jâo™è“=×x®ñ\sçÞ{wî}[«ÒÃôZôZ½½½ßýßó¥=–öXÚƒˆÔG˜0ð?æý4ï§y?©¾cL<óRý?«â'«6­Ú´jS¹wž÷aÞ‡yÔy·N}:õéÔGî}Ä5Œ«¯z¼êqf÷0}!DYÇ ŽAƒt=9úÎï;¿ï|ÍïûÔdÏõ9DqNõQ+/ü›Ù3¥:Ú¯n¿ºýj]D‚®ß3k‚Þßm·ýÝÔYüY»SwCŒ õ{†B÷ Ý+tO\ë­Îž§º¦º¦ºªóÎ-*·¨Ü¢ò·ë±c=Æzè:¢˜àé‚r8½Cf ™1äiç§Ÿv¦­ô?)éíäíäí$÷)âÒ1íÜåD_.RIõIõIռݴõ“ô0½½@¯E¯E¯ÕgDÿ÷ü¿êÿUÿ¯ºÜþÿ^ì÷b¿ãüéQ¦ |!î!S=,ËlÁ/=±h³(`(¿sÙseÏ•=§úU…Ì–~3;yÐ]‰Nht¦Ñ™Fg´{aå€Ê•ÔOý„(ë(ë(k¹}KÿœTÝMQ2Ûªºžüdö=å~RܯyÒ¯w¿Þýz+¿ú;×u1u7ÄØP¿çY2xÉà%ƒõ­«Ÿ¿~þúù•ß§XH±b!€õ™ê°þ‰ÑÊ ÄA’’®M\›¸6‘û”„2 eÊh÷èÄzªW11”o(= @¯E¯ÐkÑkÑkñÝÑÿ=W½ÚœÈ©r~ô(S¾˜ºbꊩ+T?Û2k–A–û]¿O~Ÿü>ÉýV‡tX ë=ìuª×©^§twìñ]ã»ÆwÍì;GlˆØ±A[K¼ê$„Ì ™2Wî·þ4ûÓìO3Í¿Wû_íµ¿ê{Í ·,®PÖîq bñX¹=‰¬Y?²¾î¦î†êß¡«ÉyQçÎouOO½øôÌ.B.O î2§%õ!)Y]Q]Q]öÅêÚ=:qw¸Ü'Ö<[ólͳ$%z-z-z-€^‹^‹^ËPΈ¡ï¿vm À€µ– ý¶Â¤2ñ>rŸ²æøšãkŽ+ÿÖ »v/ìTïá…=ö\Ø£ùЧ~Ê}ŠY¸Y¸Y¸.Ê~éï¢Ëì;ßp»ávÃMóÉþG‚0|Ëð-÷ˆû •_Z»G­€¢€¢€.¦”úPN+•V*­”.öD”xÕ_üY»SwCŒ uÞçd½“õNÖÓ|Ç÷ÌÞ3{Ïlmõo ,|°°Ü»î5º×è^¤ kòlëbëbë’ÙbðÜòsËÏ-ÿÒò¥åKKÚ3»’’åw•ßU~—ܧ¼‰yó&F»G—x7ñnâ]¹O´e3ÊfII€^‹^‹^  ×¢×¢×2”3b(û/žM\ê LPp|Àñr2k¼ªñªÆ+mýùT}šø®ü[;.︼ã²Üo¹øºøºøj÷|Ö—ýfµ™ÕfV›oÛ[Õ÷\ª¿Ïú Y)yqòâäÅÆZVý[>ù|òùäû¶=X{`íµÕ_ü9ë§îúªßA»Wv«SøWÿ³Æ/Œ_¯zÁjR†%}ÏܲdË’-Kš|m]’e¬‰]Do‰~%ú•è'÷)b©4íêå×,m-m-mIJôZôZôZ½½½–¡œCÙÿÅË/_¼\î(ÄÊpœe@ LP,¸¶àÚ‚kr8Ç9Žs程¡Æ-¥×“~Oú=é§üó¿û½ØïÅäöðÈ?"ÿˆÔîNº>éú¤ëÚýDu–ÓÌÞÉþGBV:Ðò@Ë-»³7foÌ^åŸOÿ„fõ÷Aõär‹?gýÔ]ßbCõ;LÈ;!Y9ýž²yÊæ)›ÕyŸÁ)ƒS§È½ÏFŸ>}rBÊÀDiëè†Þzcè’Jv*Ù)³û°kß®}»ö‰Ò2‰ÝE¯i’i’i’ì§PPÐîÑ©¾ Dó ”èµèµèµz-z-då1”ý_7~ÝøuãåŽ"(*(*(г €)Š®uºÖéZGîçfûÍö›í³wÓ?wVÙÎc;í<¦ÝOÜöö¶ý ÷‰­Z'´NÐîWó¥•5Ÿüè$蚸—Z©õë;ÖwŒ»¬Ý… £¬£¬£¬•ß¡LÁ2Ëü¶{‘õg*¢»ØPý¢/Ò‡†‡†‡Ê}b»íí¶·Û®Îûx;y;y;}[ÉߘRÆ]–;RûÛö·íogvÄ]ã¯_'¾N$)©Ýsdll,÷)?~ ÔîѽŸö~ÚûirŸ˜þÙÒ$%z-z-z-€^‹^‹^Kÿψ¡ìÿþnû»íï&»¦]ªOªO*g(S®M\›¸6‘ûÃyqÝÅu×eï:îtÜé¸Sn¯{_÷¾î­ÝO¼<ãòŒË3ä>Ñi„Ó§™©ò>ø÷Á¿þÍÞÉþG‚&Äý©âcQšZÚci¥=ÄSc›uhÖ¡Y‡Ò–¥-K[êºÄ¢?`Õ¿+Ê{êïà⃊*®ü>ýÛõo׿>€³76T¿Ãµ.׺\ë¢Ýã={ÿìý³÷5ïßÒ/ ¯ì”Õ)«SV9!es Àÿ#Ý“°ÅE¦¹Ls™æÊì^íµÿÕþ$%5WîH¹#åŽÈ}Šx†œvîõw¯¿{ýÜ'–=Wö\ÙsÆš”4Æýí Ÿ};½½èµèµèµèµrÂ7ÎÐ À'ë¬w²žÜQ8v8ìp˜Ë 0`@Q¥c•ŽU:Êýá|ÖüYógͳw+¬­°¶ÂZ¹=|iùÒò¥¥v?QµÜ'V¨P9@»`Í—ÇÔ| ¨ÿ‘ šhÃccŽ96fòÉÉ''ŸlÝ6ºm´¾Mhõ­»4viìRåßJ¿È•:-/÷ébÁäìºësl¨~]ôoƒ?Ö¼+¿«ü®ò»äÞçv®Û¹nçÊ®”þ¤3Œ¶,ÓÁCƒ‡MÿL2õí¸oà¾beã_eå9ªVªZ©j¥²ò/¸êž$ýþ”¥J)ôZôZôZ´!½½½`mI(“P&¡ŒÜQTšViZ¥i€0`@¡ú©~bÙ™ìÝÃb!ÅBŠ…ÈíaJ§”N)´û‰ªÛIßbúSÀÐ| ¨ÿ‘ ìmÄÛˆ·â©¥Ú4§_Rɸ Àš/ý6úmô[åßJ×lÖOÝ %6T¿ƒ.ú·äÅÉ‹“Ë}¢E3‹fÍÔÙÕË i÷*x}.Cõùª3µÎÔ:S3û-Óîâú™êÒnô:÷uîëÜWîSt±–€êµR\|]|]|IJ‚R ¥z-z-z-ÐkÑkÑkQÖ®W_|UPóœP¦ ( Ÿ/|¾ðy¹?œbqÔìÝì/‹ç}Ê}b‘˜"1EbŒ¯¬ÿ‘ž(:ª¾;\¢ˆU×¹®s]gÿ0ÿ0ÿ°-e·”ÝRVwZ}+«~‡¦þMý›ú«þÝÁ)ƒS§(ÿn¿Þýz÷ëõ`ʬ/‹÷Ô¼K¸®{ À†Nœ©.»4îҸнB÷ ÝS}N'|œðqÂGã8ꬉÞV/Z½hõBîS¢óDç‰Î£Ý£“{î»Ð¢r‹Ê-*“”¥J)ôZôZôZ ×¢×¢×¢œ•9ÛôóMfâ` À€"ý³C”½N|ø:1{÷0ë—€~a÷Âî…Ü'¦_øT šõ?±¯úÃ_±üK7›n6Ýl\[pmÁ5©†TCª¡NËäœpܬ¸Yq³”WõBЪÞßm·ýݲrênˆ±¡útÑ¿=¯û¼îóºrŸ¨þÓ¤Ò_W«Lô¢Ù•2€þ'€lFÙŒ²EX[Ÿ5b刕#VÊ}ÊÚk7®Ý¨Ý£ûgÿ?ûÿÙ/÷‰AQAQAQÆq¦øÎ"§õÏôZôZ½½½VÎüîÊþ«ÎÙ–r-åZÊ•è À€Eͳ5ÏÖ<+÷‡óν;÷îÜËÞ=tÜé¸Óq§ÜÞp»ávÃM»Ÿ(ÞSîÓïþ y5Ÿüè$ˆ;+.®¸¸¢ì¶¢`é÷‹ß/~¿\ØsaÏ…=º+ÖSXQ@Q@Q ³ïsøÒáK‡/)ÿ¤ú‹?k« 76T¿ƒ.»2úÊè+£å>Ñá°Ãa‡Ãêìú'ë(»î}Ýûº7)'ë¬w²^ßù}ç÷¯Îw‡pf-kµ¬Õ²VrŸ2éú¤ë“®k÷èÄóÔå>qi¥=–ö0Ž3Å÷9½½@¯E¯E¯•“¿;†²ÿ"Û w•*T º0`@Ñdx“áM†Ëýá<Ðò@Ë-³w›{5÷jî%·‡»öíÚ·kŸv?qç±Çv“ûD±(®ñ€õ?T_+Ê{ûî¸o þ´jÖD‚¶ÞsÔÄQGMT~¯?¼þðúCùç‡ý7ì¿aÿ)ÿ|à°Àaò²l¸±¡ú¶%oKÞ–¬ÝïÑfûÍö›íå>1}? ú}T_šß5¾k|WR9“xfüšãkޝ9^Ï¢žE= õïËx|ÀñÇkbEÑ+÷,vÁ'ŸO>Ÿ|Ú=:ñž² !¾~ýÖ8ÎßhäôZôZ½½½VNþîÊþ‹Ù¢ÜQÔ^T{QíED P¦ (Æ´ÓvL[¹?œ³Ín4»‘v?qaüÂø…ñõ?ÿÿ/QèUþùqŽãÇ9ÊíáÔSWL]¡Ý=œ²yÊæ)›å>Q´˜¾ y5Ÿüè$´NhÐ:Au$hw—Ó ÀrK(›æ2Íeš+ý»¥•J+•VJîE©5+ÛÙpcã+÷AæwB^í~ïF÷Ýkt/¹OÿW÷iÝ6ºm´Üûì·wÜÞq9!e3Ÿ¸¦,¡LB™„2c=ÆzŒõPÍÂÍÂÍÂÅóÂÏ]“ûLnmíÛí¤ÛI·“rZXõTsñòÅË/?xtýÑõG×+ÿŒ¥­¥­¥­vï×|s}Ž Õï î²ÕÚW®€¢€¢@Õ¦U›Vm*÷‰[Ên)»¥¬:o&w¿¸šR9³,.ï6§ÛœnsZý½‹‡Ïj3«Í¬6ÆúÉús”5Ÿ³7foÌ^ÕwÀ”èµèµèµz-z-z-Ã:#†²ÿâ©ÛrG<4xhðPÎ2ðåo ` ÀÀ »v/ì²f û0äaÈù÷˜0)`’òo=kþ¬ù³æY³‡çcÏÇž•{ÿB÷ Ý+tOÊ~ÚŠè$ )RLö·ÞF¼x¡­ï…êer¶¬P( 1\V~;½øôâÓ‰+ = À€L ËþgPµ‡³âé›ö·íoÛß–{g‘2Vç´ê=L%¦úG­Né·Ã‚ :,П{4u=ùÑÏHø½ØïÅ~/¦úž³okÏýÝöwÛß­r@å€Êº.È©~7q©>D×è^£{î¥~;¤¿G0ë£×pcCýw+|¾ðùÂçÕçOÍ>5ûÔl|…ñÆWPýÎÞNÞNÞNÚ=wš,˜OÊ +%”I(“PFK”ÕÏ_?ýüÿÎùwοs8ú“”¼¿ûþîû»åîMÉì%GŸ«~®ú¹ªê¥Åý.¦?šþhºñ)"ôZôZôZ½½½VNøîèÿž¿[ûní»µºÈlÆŠ0`༴|iùÒ²ÂÚ k+¬Ug0z;×í\·s‰;‡ÄP8²~dýÈú£&Žš8j¢êwH¿˜ª:{(–»I¯¡j;.︼ã²X¨Gܯ&þ{[ò¶ämÉ-*·¨Ü¢²êwKË>~ü8XŸ‡¼Úüèg$\ër­Ëµ.éË`,SœdšdšôåŽí<Ñy¢óÜNºt;Iœ}q\bAàE›mZ´©þçúŸëV=ÑR½ç¢|¢þ»ªßM<[÷õw¯¿{ýÝÇÀEÄf}t‰esÔ/홽göžÙÙ½†š,ð»{Ùîe»—‰Þéè£>ŒºerËä–‰¸¨Å¹¯s_羪ßAÅÍj7«Ý¬ömçnÆCf ÉÞþ¿ÝßFÄOf/Aðûä÷ÉïSúµ"hI}KJf¶oÙZdk‘­Eî½wôÞQÑ“ˆ¾kíÆµ×ntá4Âi„êwÏÙ2Üx ‡èµèµz-z-z-¾;ú¿çG×]t½ÜþÏì9³çÌžœ_ = À€ œysæÍ™7Öw¬ïXßÑݳ -šY4³hvaÏ…=ö|Û`¥d§’JvÒÝ–r-åZÊ5nVܬ¸Yš† «¬Ï‘`¢cbjñâÌþîö‡Ûn¨»ýÏÒèR¹´ò7Ew÷Çën9e}ˆ Õ¿•þžxíżÇvÛyL“swiÉ¥%—–P6Dºo辡ûW.J´J´JœøtâÓ‰OÅÅ(´¹¡$%³¦Wzcè¡7 =*èaz-z-€^‹^‹^‹ïŽþïùü'óŸÌ"·ÿ—g\žqyçH0`à+‚j¥ª•ªVJ»CXq¯çÉz'묧yѨ칲çÊžÓîV\\qqÅÅbÉbC)`ènò£o‘ –HÒÅäªÖ?µþ©õÏÅu×]\'þe£ÏFŸ>Ú-õë1Öà Àjï­˜˜˜>€ 16Ô9jí‹y°y°y°Ø]÷?ÝlºÙt³!e Ÿä À.¾.¾.¾«¯¬¾²ú ílèIIÕÏêÖÄÈy#çœg±AÐkÑkôZôZôZ|wôÏE†AyÏ;v8LDÊ(S¾B,ç+¾)ŧŸ^|ú· ^ÅB£âêE±Ôª¶öðuâëÄ׉ÁCƒ‡Mÿ¤ÏÌOp™wBÞ yßļ‰ycXC^]O~ô.ÒÝŸªþ’àÊIJK*©}¬úàô-©ÿàÿªÿWý¿êê,D¬GÑkP±¡þQ‹©^ zê¾íˆZ'´Nh ¾ÖîÔhÒõI×']WþÄôËÈ“2Ð7¢,žÖÜ¥q—Æ]‰;w$ŽV5¦¤¤òþ|ÛÍ»ªvUíªî¸oà¾Æ'ô0½½@¯E¯E¯ÅwG¯wZefòÉÉ''ŸäÌÊ(S2!é|Òù¤/Ï×ìñ¼ÇóÏ]›¸6qmR~Wù]åw‰EÅr‘5ÏÖ<[ó¬ß/~¿øý²¼æòšËk>íü´óÓκR(ßy&îd*w¤Ü‘rGDyXì­øw±‡ëƯ¿n¼q,ªómÿ×Ð#!ýyûSãUW5^•¶,mYÚRœwqW·[·*nU~«ø[Åß*ª?­Ïé?YÏ¢žE= ñdè2Ë,SÐc‡Ç<xð¼2úÊè+£ÕÙçôW {ýáõ‡×b¢hnn^µiÕ¦U›z®ñ\ã¹F´^öƧá~ºþÇFf'Ã"rDѽ϶>ÛúlOKµ‹ YÒǘ¥_¨YçH<{Ø4—i.Ó\Lì …xöó{wîݹÇ9Ê9ýªx*¹øôÀaÇ5:ÓèL£36£lFÙŒ}ˆø{ä~Èýû!уzpèÁ¡Ä @¯E¯€^‹^ Æñí0¬9{ú‹•Ó3M2M2M—¹sfe€)::èÏ‚‚DÎŒÝíCÖÜÃMD儨ÐÖ·F®yW6°öÀÚku€!þ§eÐk½ˆÆì%.ÖWÞçvÛÛmo·o ‡0` wS/CœÀDlˆØ±Aù(ÄBÜâniÎ8ÙŰò?~ «¸)ïóÞq{ÇíÇ9äP¦ ônêeˆàôËq…;úưfëÛn¸ý¡òÞ:÷uîëÜ—< ` À@ï¦^†;Ù–¼-y[²ò±tnß¹}çöœq²‹aåD&AyowÛylç1Î& ` À@ï¦^|kEEåc)Q4¢h×ç] %ÿðªà«‚¯ *ïg]çºÎuÉ-ê LèÝÔËÐ'3Ñy¢óDça!hô‡¡ÌÓ§®˜ºbê åýŒ~ý6ú-çP` À@ï¦^ÆQ(U>"‹fÍ,š½°{a÷ÂŽ³@öÎÓõ-ÿðÒò¥åKK‘=H¿‡½ö>Øû —•ê£LèÝÔË8¦4ƒ?.åZʵ”+÷½ô?ÿ0¾Âø ã+¤ß7K[K[KÛ'ýžô{Ò3¨0` wS/c*‘*WñéŧŸÎä €ì¡ëOþAd ̃̓̓ÓïÛúAë­Ä¥ä@fQ¦ ônêe|ž ss9#VŽX9beú½ê×»_ï~½É߆0`m&|Tõ2¦#}·öÝÚwkŸ«®s]çºÎÎ4:Óè 9²†˜§éì<ñnâÝÄ»é3>ù|òùä#ch‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚0`F‚ðGŽªýŠÍ¦W\6½ŽeÓëx6½â³üu"›^'³éõ_6½NeÓët6½ÎdÓël6½ÎeÓë|6½.dùëb6½.eÓër6½®dÓëj6½®eÓëz6½ndÓëf6½²éu+›^·³üu'›^w³éu/›^÷³éõ ›^³éõ(›^³éõ$›^O³éõ,›^ϳéõ"Ë_/³éõ*›^¯³é•˜M¯¤lz½É¦×Ûlz½Ë¦Wr6½ÞgÓëC6½>fÓ+%›^Ÿ²ü•šM¯ÏÙôJ˦—"{^1ßeÓ+W6½rgÓë{]½(€Ñ¢ FÂh À'@Îa´àg-Ÿµ|ÖòHŒÎ^G³éÅ3‰y1O#Öÿ§çœççœ'çœg_ȦWÎyöpÎyêpÎyÞpÎyÒ0Ï6¾§ g×3†sÎÓ…y®0OæYÂõøÔ˜1b:ÄUŠ«W‰6¡;Yëd­“µb¦ÅL‹™û1öcìGÅ-Å-Å-Z†ëôÍÓ7OߌÙ³7foìñØã±ÇÓž¦=M{JËÀp]ðºàuÁ+æIÌ“˜'±Kb—Ä.ùlòÙä³ -ÃuµÞÕzWë5?j~Ô<¶_l¿Ø~)=Sz¦ô¤e´ì–â–â–ã‰ñžûÑ00tb>.ææbžN›Àà£Ú7Î7Î÷K59.9.™6]  dàE“M^4‰ìÙ+²×È>#ûŒìS1¬bXÅ0•žSzNé9ƒn º1èÆn—Ý.»]žL2ýÉtÚºö*﫼¯òìz°ëÁ®c|ÆøŒñ©êUÕ«ª—æQ]r|Éñ%ÇÈ3 Ï€<;óïÌ¿3ÿ£©¦>bR {½ãõŽ×;;<ìð°ß'ü>á÷ ÕïV¿[ý®æQ]Ì¿˜1ÿ€Ò¥Jo=µõÔÖS=ô`m]Kj™Ô2©åÑþ{ôßÉ+&¯˜¼Âq°ã`ÇÁšGua÷Âî…Ý{Ûö¶ím»iü¦ñ›Æßkx¯á½†´9tí­õ[ë·ÖÇbÅ‹¶qÚÆi^;½vzm¢%~v~v~vë-Ö[¬·¸­¸­¸M“Cç’Ë&—M.{âô‰Ó'NÏúwÖ¿³þuëíÖÛ­·¶¢º‹uë.Ök7¬Ý°vCÂÚ„µ ksrk‹1˜‰±™§iÞÎbÜ(Æb<)Æ–D8tMÌ—ÅÜỴŜZó¨s|1ßs‘ Í¡k"·)òœ"ç)òŸšGµÈNJܬÈÓŠœ-mê  (žxràÉÐJ¡•B+•+[®l¹²&Y®¨UQ«¢Vóÿ™ÿÏüîW»_í~5Î 4ñÜó¹çsÏUa«ÂV…UY^ey•å&Ùd¶ël×Ù®wìîØÝ±ã¼@/£_F¿ŒO O O´O¶O¶Oή¨žºcꎩ;~Hø!áÎ 4‘Ø?±bÿM%6•ØTÂÙÖÙÖÙ6»¢zbÞ‰y'æ½q-âZçšxk÷Öî­Ýv‹íÛ-¸7poàž]Q=¦î˜ºcê^v»ìvÙóM$?J~”ü("9"9"ÙËÉËÉË)»¢z¸ÏpŸá>çWž_y~¥±¶¶_‰±Vvµ³gŠ1§ò-€&Ä\XÌ‹³+ªEN@äD®€óMˆ¼¥ÈaŠ|fÖGµÈߊ\®Èër^½”£4æû˜ïc¾§e½(#çùGñ⟓ëN®;¹Î;Ê;Ê;ÊD/¹p-àZà°÷aïÃÞiÒ:¤uàÔAÖkÅkÅë³ãÏŽ?;¾½G{öúÕöíÚ?”,%KÉòs»Ïí>·ãÔAµKÅ.»T¬[H·n!úÕ63lfØÌسoϾ=ûR‹¦M-ÊYƒj׆^zm¨ÿNÿþ;õ3ªË¬,³²ÌÊ¥w”ÞQ:åSþæ¬Aµ„ù óæÿ¶ô·¥¿-ÕϨ.6»Øìb³7µÜÔrSË >$pÖ ÚÝ¡w‡Þ:¢ùˆæ#š›è±ð¦áMÛŠµ!¶³;‰q”Ség;‹±¨—òí€jbž+æ¼bþ«ŸQ-ò"‡ ò œ;È9I‘Ÿ¹JýŒj‘ãù^‘ûåÜ!+Q†~¢Œ$~Xü°øaÕVT[QmÅ7–¯jXÄ‹4ºæßåWþýSÃívǶ×n^Ø!8*µUÍÚ‹Ä´þTgCt•VÿÔ¾¶³Wó»ï—Mlô¹Ú‚ Éqn…ÓN×K‡™Oü¶Ï5¿h~ÑübÔ ¨AQƒ3338›Î|wæ»3ß9—p.á\âۢˮEÉ6fœ¶_R>Ïb÷†?ÛõÜVºÙç¨^>)µ‡YØúI•Ñ›Z]¨ý~×po/GÇåN½Ù¾Ö”Š}ê®¶Ê[¢‹&ô=÷|Üó1í|Úù´óœMë_¬±¾{k÷Öî­¿-®*÷4¿i–»_©KÊþ5®ŸmêÖ<ÍÔL‘â}Õö9Ò³õå:E'´zTçûˆ©Þ›‡®xáѨz‡àǵGWLiàg=°¤ƒ&Q½Ýq»ãvÇÏ?_ü|‘³ ášý5ûkö-Ü[¸·øÆ»!‹t+µÊêÏ2·<~mÛÇÆ±{«žvCŸ5¯FÏàâ!SìgŽ•BëØ[ºtNõÂAïÔ¨r·ï‘‰•˽hu®÷­îÕfiÕ¬7Xo°Nž:=•‡Và‹„K —.uxÝáu‡o\̹ð’’–¿•ñmÔ³uýJ7º9ݰsTaæ¶î£ö‡ä³Ÿ8ve¨©}•1ó—îªn?¼Ó‚mUâ&—lÓÉÿJ‰öA®ý4‰êÕV_X}!åeÊË”—œM÷ªÞ«z¯jß¾=|¿-® +~¸dãÒgDø˜UšÔÕrØ »ï9ãt £º,^`?rì¤eÏìÆl]z½z«áÚU œ;ytùûmN–Üä°®^CM¢zYȲe!üøãÇõ¹ÅIŒ—49^1fã71–ã:1Æã=1öã@1&ãC1Vü¶ÏcT1^å[AÌgÅÜV“¨ók1×ón1óq17ót1gów1—óúoû\‘O¹Î&¾˜¡˜¡˜!ò"'ùmÑ%r¡"/*r¤"_*r§"*rª"¿*r­"ï*r°ßö¹"÷+òÀœLd ÀÐOüi‡‘»îþ¹ûç|®û\÷¹®þ@ÁãS¹rõ6Ôi2ÊþþýáÝ+ÕϯPzzjkûì·Ñ ¶ïiÞÈaqëY•Ζ.š‰¡y?ç~Îý®›\7¹nÂùÍ™ž”{RîI¹Î :/è¼@ýÈqK±š^bC¸Mãw5RîŒï–¿^OíFõ«2½¬Žˆhïêà;¿ŠI™¡™(BoµÛj·õâÊ‹+/®äüæL/Ì^˜½0ë“Ô'©O’ú‘Sûªåóü«"=[VO¹õcWk·óÚê¤èÞ£yí½ÕâE-‡ncmÝ­Ž©¿oÖ+¬WX¯8}êô©Ó§8¿9Óëõ¯×¿^?(uPê Tõ#ǬMÙ“6“«8÷Ù>~|íßfWÚVÂÍmÕª'´µuí´lCL‰uF-X|¥Œg£*­>dbßj›Õ6«}|ÅñÇWp~s¦77ÞÜxs#xkðÖà­™¸|áQiŸ²*·ëy{ôZof®ÙRNËQ¸|zì¤7G/_lå繪ý Ì¦8RàHÎoΔ¼5ykòÖÉù&盜/—/•8TêªÍ€îŠ‘j ›a²©”v£ºîЕ–ÇæÚÿ>viè/ÖÚþØélf£:²tdéÈÒúÖÚb\$ÆH™¸ûv¬­»Õ11c3íŽ÷ÄRŒ'ÅØRý}cW1ŽåÛ”3‰9¬˜Ïª9b¾,æÎb­Ý¨ó}1÷yõ÷MäDÎó›3‰|£È=ª9"·)òœ"ç©Ý¨¹Y‘§9[õ÷Mä„E~˜ó Ý¡ ýDÆÈEá¢p Û¶?l¿Z ͼ…š˜þ{Ík±}—´ ‰Ú¦¨¿Ý×|Û>æ¿=®ÎžÏušë4×)usêæÔÍœv#wIqIqi}×õ]×wÍÄÝ-–žÃj˜¤Ž0÷]Q½çC‹ZßÙ±H-öH}þ£óÿèœr å@ Opɶ‡lÙž‰åCÜëWÛÿqEߟÝ/fWTG~ò ªmíò¼Lsµ®ñ]dt‘ÑE>´ûÐîËžçûöì ÈÄBâ7{ô•èÚfÙâ˜ï´[BPkï9æÑ²²%œ«—pê©Î>ê=¨÷ ÞïÆ½÷ng<'ˆ>}&úŒúQ]éß®åuùcÉÏÑ»³+ªkV¿oE\É'ŽõÕzbkïf½›õn–T3©fRMÎxNw:îtÜiõ£ºb`Çõ¿}r]l'ý”]QíðÓÄA«=KÍq^ä©Ö¢²¾Ç}û9üåð—ó«ÅøGŒ…ÔÙg1¾c­ìé‰q¦sfb ˜í!ÛCøfåb®*æ­j­$wÄ"µØ#1/ή¨9‘PŸÈ?ˆ\çݸ‰¼¢È1ª5écþ{Ñã"‡™]Q-ò·"—+òºêì¹È‹¼1çÚEú‰0ŒÊ«E¯½ZÔìE³Í^¨þ“_µB‰)f±¶mî8ÕRüø«gì²d°M ðô8S»Ã —Ñ ~²n^²Œêc©>¾úøêã®|¸òáJbÀø¼iÿ¦ý›ö¾Ï|Ÿù>S VÞfc ¿‹>ÙêvmEšE@„ÇU=ŠjE` §ç…Û;¹NoV°BÞR½¿r÷d>ë|ÖùîÞ ¼H ŸäåÉË“—÷éß§Ÿþ_¹@§Z!_Ó¡J´ŸŸŸÓ¿ŸþýôïÕ‰Û:ý?N]âª8zNߢکÐü¶»Z¯l:¯ó$uŽ%."."."+[[ŒyÄøGõ¾‰q”SéÛHOŒ?ÅXTŒK¿rOpÿ>ýûôc]¾qÆGÌOÅ\Uu$ˆ9¯˜ÿê[T‹\ȈÂW.%yæûÌ÷™ÈKÆGäE^ñ+ ïÿdݼd‘«yK=Šíõ, r¼"ßû•oè‹f/š½9dbÚBú‰0ŒÄ•ãWŽ_Që®Ù½[DÖ2Ó·!¸êíÑ¥m68©uÅt|ÇøŽñ‰ãp«Ò­J·*©u½¹só"£ +ªOìi—è<¢ä‚" }eAªÃ^‡½{Æáþûûïï¿/^2¼døW®7?ܤ¹}¼aEõÙñ¾Å]b* 3/_t¡ê£Û¾/|_8ñ`ž:>u|êXùVå[•o}åâ³r 'Õr³YÕíÄp}+$Èmku˜¾gã†b•+ ­ú•Kë¶m ÚD<‡—w_Þ}y×iÓ§¯›ÜsÖ%ýöÓî¾gËk”/g4¹w¯FΆÕŸÿ øÛ#nA¥ú“l‡«>Þ c7ŒÝ0–Ø0\c.Æ\ŒQ}–»þYõ¹Õ‚—7zåmØ×p£ZáhåYbÙÐFï«ÍýÊòSyÂò„å!6 ×С7BUŸe‹=µß4šè\í¯‹šJ!!ƒ­Ëª¿O¬º¤ß÷˜ª>Þ¿ÿJü+‘Ø0\w¯Þ½z÷ªê³\¢kõiN¯œ|TßsÛ€£ÚmÕª'ìœU˜¹]õñÎh4£ÑŒFŠ×Š×Š×Dˆ!z<öñØÇcÍ ™2+$w–‹]¬4·Zx6ÝUÎУºZ\Ð/óª£zì§±ŸÆ~ÒŘbl£úÓÅIŒ— w¼'Æ«bìú•u2b.Æ\Œá›h¸ÄÕšØ0\"g¨ú,‹Ü£ÈCnT‹<°È «>^‘[&6  ÀÐO€aÀ¢â£â£¾rííö-/×:bÀ…™mü®vó]¿R0»¼áò†Ëĉa‰{÷ îê3»ãyó‡ÆÕg×ûVr9õ•‚Ù/a¿„ýBœ–3­Î´:Óê+ýÕMúØ_5¾¨¾bÕi^ݯ\²ó×’¿–üµ„81,W \)p¥€ê3[å^ߨ‰v†^HÈàîɽs m÷2½\tc±f² £IÓ'MŸDœ–[·,nY|åyoŸ{îVwÕŠqÆÕuâæD,*²Ùr™õ9¹c;&vL¬"N§ˆ#Z ŃÑF?øÊ=m' éäf¹ÊõDcŠj§¨…C÷M,Ö¿b}ÛrÇþ›ÿoþ¿ù§ÝK»—vOóÖ㙯ÜeeÕi^]wãï‰q¬êcãa¾•†EÌ=UŸY1‡5¾¨9‡¯,,ÿ îAÜâ݈<áWVÜÕn¾³«ñEµÈ«>v‘g&Nðm(C?Q†AŠ+W0®àW–¦™ÖµµÛk㲤ß>­Ô£qƒ•ê˜,:E®vÞ9xç`bFÿ>vúØécª£úêÀοÖýÓ¸£úåÖžïv­=Û2¦xª\;¬›µnÖºYÄŒþ»w9îrœê¨>wÒ÷/WãŽê¤­½ƒ¹{¶,×ÈBöÎþÐç¡ÏCŸ3úïVþ[ùoåWÕe&F®^o|¥ßô[׎ËÖǘ—ru ñX!×óÎ[8o!1£ÿ,}°ôÁRÕQm¿xì½Ð@#êg˃bJßhpç‰\;Lž8yâä‰ÄŒþ{6àÙ€gTGuõÄ‘;í5ÛsÅ‹c-¬ýšÄw’}NððˆáÃ#÷÷÷¿­µÅFîýÅøGŒ…Œ{¼'Æ´ª‰±1ßPý'æ›rçQÌUżո£ZäTGµÈc3úOäe—å¯c^°è‘c4â¯\ÜP0®`\Ab™Eú‰0 ÌÕ„« WäþHWø¥x½¢?½ìØórÃ&Æ=dI¿MîÑç‚{ OÏrõ-|äZæ¸Éq“ã&Ä~ºSúNé;¥åÎ]‘·¦wM«<Ø#wÛœÕÇú§ºÿ×n ÍýÒ‘r-sðƒüƒøÑOB…>úÊÒ¸÷u{SïEΉêOŸû>óèÖëUµfe¿—k“‡‡âG?½h÷¢Ý‹vª£ºöºÙ7·ç1îrÂÿ”.…uŠ/o}«Yç.Óeïï/³¡Ì†2Ä~Jj–Ô,©™©·©·©·Ü¬ÕezÜÆƒ9'ªÝÌV•=Q©|ÿ6~þ²Oõ^ÑdE“Mˆý”<.y\ò¸r?–û±Ü²—é$ýÑ6ÿúüëór˜ËO-^ È“¤…½¹åœ!ËÿÌNõ-é~Û3ºÜ@‹þr­ôàÇ?>ø‘XÒïF¼ñnDá!…‡¢|¾ ß3kòâERÏm ísfT§Ž (á1¦}»Ê.¥å¢úæõ›×o^'–ôÇÇ|lPav…Ùf˵ǫü"ê§ą̊N ¸äñ¢kµ¸²-dŸwõâÕ‹W‰%ý‘êêêPçJ+u®Èµ:!žÙu6•ÒomWõ?1¥læ]ºÊŽÓþ+ø_Áÿ Kú#Í'Í'ͧi‡¦šv½ ¡Å¬Ã[çШv[µêĉò'Û.è'×>G–Yvd±¤G**vÎÛ9oç¼rgÍñÞ´¦ëÏå䨮äÑ¥ëБrí³¯ã¾Žû:ªÓØb¬"÷>bœ#Æ<9s¼'ƺ²—­Ï®0»Âl1fæ‹«?ļR9©˜ŸæÌ¨y ‘£È w1¤ðÂCD~ƒXÒ"([ú.7Т¿È%æÌ¨9d‘O–k%‘‹&–  ÀÐO€a¦)¦)¦ù˜û˜û˜ËýI~ñ¸çæ†ÕsæåîÞÙç{ÕÊ1%r›eÐVUÞWy_åý§¤OIŸ’+}à÷Ðï¡ßCÙ"Ù@¿ÕõßÕ)¹ûÚ¹?wR&¤D1åV*¾¦øšâk>\üpñÃE"J ¾>øú`ÙÔÉÝÚÝZ×›MT§†”ó˜èݩ½R²SÍ·—ß^~ËsÜõ„J*M¨$[$³Õy«iN.'|¹8)l{ü"Ë÷õò5ÿW®­^½õþÕ{"JÌÝ?wÿÜý²E²]Sw¯/BT»U^ÕãD°Õ /?ßmrmõÔñ©ãSG"J„öí*{!¬C±‰a«§Õb[.ª•[ï2²k´Ì¿7ÿÞ|¹vã¹ßc1Îa¼'ƽrm%ÆÌ|sõ˜KŠy¥ò™óP1'%ªEŽB.ªE~ƒˆÒ"ï'r€ÊgJä Eþ¨ùd¹¨¹h‘—&® `è' À0k ­-´¶Üã„2]Nº­dÈ’~û¬q þ–k±~3üføWÙkûŒí3¶Ï;G—|;>t½I$§ß¾ïµ£á)¹]qtÅщ«ì%™If’™ìý‡Ûïr&iò?ÛwµûôitIn9µ~¹ûåî—›¸Ê^q{âöÄí‘}*j̸aËËRHøŸ§¨Þ_Þ=Ö»ÈFËEÖ¬4ç›ä›ä›¤HS¤)Òˆ®ìrvàÙgÊ>õÔH÷E6Dòÿ\Ü0r¥Ý±ÕÅílÖÖ(ÁÝ3ɞɞɊ`E°"˜èÊ.×ê\«s­Ž\TÛmü÷ì¹DòÿDõý°)ñ]KÎp¨ã¶#ƒb¹‰ƒ‰ƒIZÞ´¼iy•[[ŒOä[#Æ6ŒñÒoÅX.>Åø™oqösIÙûÿÂ{íhxŠHN¿ù ¹¹â*{‰¼ŸÜ99C"9ýVä–åZL䥉+¨FX[voÙ½e÷цS×M]7uÝ+¯W^¯¼h™oCzíQУ GAr€÷îk‘P« ùíÉäöÎQr­wùêå«—Yb4¼8ÿâü ÙE27·oºªæ¢Wn{ñlÇ]®²Q}*ôTè)ž§• Þ¸½q{ã&w^VYx®N*Pv{óB—mnsåZ/¦_L¿˜~ÄXÖ{¿óýÎ÷;å΋ÍH?ë‘m(!Èm~_÷FÙ%FÝ÷¹ïs'ƲÞ'‡OŸŠ:u*ê”Á’¤Ç;l0˜è•Û:7Zdv`…ìø­òæÊ›+cYïó¡Ï‡>²yaóÂ&ƒ%IË&µüî½r[—Ö÷;øX.ªÃJ„•+‘¾µÅ˜Dö±,ºls›Ë¸Nn+ÆÃr­'ÆÒ|£³ž˜?Ê>–ålÇ]®QD¯ÜVä.dWé;ÿâü ÎÍ"×'w^Džè•ÛŠ<³ì܃= "Æ ‡°Æö­?·þÜZî;H1øÛP†^óâ;ÅwŠòþ· šµÊ÷fh¢ÎvN·ˆª]3¸oÉÜÞÜÞ\ñ«âWůDZVêçÖÏ­_¥²®kª¾± !bÕÙ.ëÙ(©ÚLå6,å_Ê¿”ÿg»ÏvŸíˆ´¬4:etÊèå3ÒìQ…Ž¥)æÖódi©¯l×Mõºd?In˜›Ò&¥MJ"-+ÍÜ;sï̽Êç¢Øg›üÕ›Ö}67>âêmµÃÃ>Î{*ÕÉÁÉÁÉÜ1™¥–/ ^œÁ}{N¥lˤÔ½²Î±­Ä­êmW£/,9$Õ‰«W'®&Ò²Ò¿.ÿºüë’ÁÉhlrÐ$ÑõîrßXâVõ¶æË‰V«îÈÞ%vêÙ©g§Ä8DîgƱÜW¶sëyVcã V3J2:…ot–¦˜í>Û}¶óGå3"æ›Ä­:[‘ÇÈ`5#·~ný¸¬!kýªøUñ«Èõ)Ÿ‘$bÕÙŠœs«Mñâ;…@ƒ ÀšKï¯jƒÕGzêtéÓ¥O—–½Bv|ïC†1(Qgû©Kß­ÎfÞ…z™fòÛ—o_¾}ùˆ·¬qeÅ•WdïyY¦ç¡†®D¬:ÛÏ×–{ÄW~W¢ˆY9å–Ü4jÓ¨M£ˆ·¬q§øâwŠË^!{ʯoýÓD¬ZÛ¾Õ=˹­³êW"ƒÊŠ„ +ˆ·¬ñxÖãYgÉEujsgì¬BÁ@Ím؉x‹5µw5Êà©ZóêΫ;¯.ñ–5^¾ùþå{¹¨®µtÆÌMû‰Xõ·eLþÞª¤rKNXΫˆ}~¢4³Ûó—}?¸6—½c²bJÅž ¬s~»ývûíVnÿ¿75|e÷’(ÍìöÆÎ.înÞ²wLþœüsòÏD® =töÐÙÊí_qRÇäAÝ(dv[çý¼Ï»ÛË>WïÆë¯ouº6¹õäÖ“3XJ«ÜH¿^¹ˆÒL/ÝtQå²Oºñ鯧‰:][øËÂ_þ¢ÜþV®ž5Ú%¥™^zÀߑѭM2IŒ[¿ev+ÆÉÊí)ÆÕ|»uMÌå¢ZÌ1‰ÒÌnENC¹=E„¨Ó5‘Ó“‹j‘$J3»ùgåöùj‘»&ö`í¢¬-€¡wÎY³:g•Ád~ŽÙÂ"yÒÆ\õxÅ@äÛ¶M/•SªƒrÛH:t ‰ØÓë_ÿûúßrœRëäò@|~ã’S÷móY…+·êV§­N[ˆ=ݹŸÿ~þûùå¢úà ÿ8÷ÍÄç·mÝ«y°|¥…U«V{ºó,àYÀ³¹¨vÍ¿tÏá; ¾m[>¦mp@SåV]0aÁ„ˆ=ÝI\“¸&q\T»üµƒøü¶m¥sÝ,‚2è«'Mœ4qÒDbOw’£“£“£å¢ÚéÄÂeûvŸß¶­²¹¯ù„–ê$×ÄX…1Û·mÅ8Y®mÅ›oºîˆybdºo›Ï*œøü¶­ÈiÈEµÈ‡{º#rzÊ-/r€Äç·mEþY䢕ÛV䮉=¤GXw(k‚0ôŽïß'¾O”¿´Ñù[-©}ž!ˆ&Û‹ã:.rݨܶÕRª¥TKQ¤*R©D .ôßÙgÿÜѾÓû;ÇŸ‰LM¶ º$»íSn[ó æÌ/(((º0®Û¸nãºepG{ÃÆi5D¦&ۇ󺿮?Mv͆Ÿ{|îAꜧsžÎÉà™µ•«öì6ڑ€FwLn^ÜKj&»fC§”N)ˆ@]XÞay‡å\üW±Šïý©D¦FwLžXòäÐeÙ5l“m“Y_G'6†o ߘÁÅeß´ˆö{Ldj²uÝstŠ: 51Va̦Ñ“ §ÕÈ Y,ÆØ|Óu¢¢¢˜'*·¼˜W™Ý1¹Óû;ÇŸ•ÛVäC@HU¤*RENO¹åEÈÔd+rÑ<ø‰ïß' Ò£œ5(g`è‘—%_–|YR6å°À#†Á‡æ[Ç–¦ÅÿÌ`Âs<áxÂqâP»Þæz›ëm.Ù”÷«¾S=¬ˆI-ÜÝî_þx)· &<]/v½Ø•8Ô®û?ìÿ°_.ªßçö7qw#&5ßvËm[Ìj“r ÇÇÄÇÄLJZΜx¤z¤zÈÞ%9sI©èÓ4ßZ‡5]ÐùåŽJ‹J‹J#µ+ퟴÒþ‘‹jçN‹º ¬»Ûß·³Ì`þ²ã×¿îø•8ԲˊˊËV1V1V1<£ýͼ7»½ˆIÍ·6Å»½~N®÷ãÆišoŘYv5ýöØÏ—^»ÄÜ0ƒ»$ýË/ÅüE [‘ß‹j‘!µKäñ”[[äýˆIÍ·"-Õ"M‚0Å` À€ZÂk†× ¯©üµ\YÀçzw†ÚÚî_ÖrA­ –#ž:xê੃‰CíÚÕxWã]•[ûÏ?ëͬz‹hÔÖ6v]Û‚N­”Û9èpÐá ÃÄ¡vªt¨Ò¡JÊ­=þ©“¯Ѩ­íÙ?}-]Ž)·sÏÜ=s÷ÌMj×ÉË'/ŸÌàN>«^S|oQ ÐÖ¶vµY~[‹)·s‹Š-*¶à©íÚ®”µ¾ÜúrOô´l[÷§¦ù‰F­=åúò¼¿#2¸/Ä©´Si§ÒÄ¡vÝ^r{Éí%Ê­]bDõËÎíˆF­­Ùà¹ÈòÀz¹”ÙÙé¾%]b§ik+ÆÏÊí,ÆÛ|ëµKÌ •[[Ì%‰FmmE®C¹En„8Ô.‘ÇSnm‘÷#µµyé Ö?«^3¼&q Àú€b0`€šÍk6¯Ù\ù«ø|RÏŠ ²´Tö×#í~ùò´ïÎë~ÒäÝâ»¶ì\©×©jõ¬SmF™O-ú_шB•M;Tšf^µhHÏ›v¬ÓVr:E×ïðoíî/×ñ¥½K{—öŽhÔ¯§^O½2XPôAÅîýê;ÕÚÚ~šÚ÷ G#Ù§,G§F§FÚÒudב]G*·ó•]êºyÕZ{æ]@¤ÇM¹¨þØúcë­‰Fm?8~p|×ÎÏŸêµnªN–Ù<±Üäè£J:§I±°¯Õ²A¯¢¿[U¯PÁôvÑ£ÅÏkcW}¸åS·[ͳÿw\ñÐÍßö)5ŸM,¶êB»† ­y[ztÙDÓ …ÇSä¨åã²e¾kØÜçjÍ?Ö9‹J ¶«œ˜V¨˜Ù°âŒ÷Þn|»ñíF¢Q[&ÝŸtÒ}åv®üû–°ÜDµv·fCËÙUÎÁ}!'^žxy‚hÔ–…± cÆ*·sŠ£º.^HTkw[bašÎ'3XüÙ¤û¡úý´üôP×€Ü Ÿ7iòÔä›< éþ¦þ Cï‰ñsÏ£Ùudב|ëµEÌåâGÌ%‰jmmE®CùˆDn„hÔ‘»“]—k‡kw¢Z[[‘—Î`\ݼfóšÍ‰FP¦LøŠÄ”Ä”Ä žWQë²åÄâYûÜß=M\›”™^¢@ú=ù¶w›ºÂµV嫦¹Lú™xªÓÑLÙìr£òš¬9R¿CvÖ<ïÞ–{[îm!&5÷¾ÑûFï3(I–Éo–§ðfÅ›À>žˆjín‡Ýqt©°\y®m¼¶ñE-øäýÉû“·Ü¹V|˜Ï3?Q­Ýí”u.×*¯VÞ‡3gÏ“ZHO+žV\î\×ýg¥t¼“vS굂fÝTÖìëG•:«?)Ó¥ÑàÖ­ÝLVžDÞ#ƒÂd£÷Þ7"&5'rwÊ-,r}Dµ.¶"G­¼"§ML‚0Å` À€¬XÓXÓØ ¦—+-<ÚUå„?"]&W˜Aa#“ï¶Ñ§Éíšå”Ÿ+³dp£:ÕJÄìmÓ¾ÎñßÊÏ.ÝÔ ©sÍNº>Þ[¾¯uIùH7vÞØycgbRsg§vvšr Ï}_¯uÕH¢ZÛcEÛ†8eð¼ÃÐ’¡%Cy.‹\ß}ÿõ žþ;na+•Nպ؞oàíZYùHg-™µdÖbRs÷7ÜßpC‹?Ïm\³CUí&ÓëÞ ßÚü²Ý½Úg¿|Ì2ÓØBV§½rùÖ²]4Ðbº‰cî?þ¯W}̈z ¯ˆ»Á” ª?Å6é·3f¤ÿù’Mk¯Qyb¯€1³í/ŽÛ°¼ŸøoñïéÒ®Ìoçgzè|!èY³'m›£ÜæÁçƒÏŸ'&5÷¼ÃóÏ;(·p©.å¯ ªu±uª5?vOGå6÷÷÷'&5—t(éPÒ!å6ß`×¶vq¢Z' Aÿ³ØKÊà‘­ÇWú¯t!íŽvöŽkq¬–eúOYßÀÒö|È܆Sì6«³}ÑDZÑ>Ã´rk‹±7=€æÄ|P¹…ÅüQ用y –‘ŸvvÚÙiĤæDîN¹…E®¨ÖÉBÐíª÷Ì`yÓXÓXSb€)SdMy7åÝ” –.¹áØ¥¨[u]üÙ~Ò¯Çw ª®ÔÄÖ~Ï„Î6 ío—ú©ØKÙ;ÛÔ_жYßõµ*¬-\ôKÊÞ?¬zó²+EÑBNŸmÕÞ” üre÷ÚâÁE+‹÷Ñá&Û{:5x’ÁÕ‚…ü ù"&5·8uqêâTå>WÈ·¥ËC¢ZÛ7ùz/n”Aúµ™c3ÇfŽÄ¤æÂ#Ã#Ã3˜ÆÇnjkâÔš¨ÖÅöƒ•ÿ÷ß3XšØÄÑÄÑ„˜Ô\„C„C„ƒr WYeÑÏZ¾›ª÷ÐsþÏ… ¶þfNk+þ¯rÁ@üKùåmÒúnÿmÖ·\>› ²E‹ö+b•*XêˆÕ/÷¢ís_Ôæ„¸Mö~µYî¹Û|¹“^ü®xÝêŽ\i{lUåɵ¥Ö–ZKLjîpŸÃ}÷Qna»â¿í›YލÖIT¿ ;¿FöoÓÅÅ"S§Zœjqª…rÛV©ÒgÒø†DµN¶Ž«¦œøWn>ß ó8©­ÑŽ(!|9§K8™9k²²‹!Ž÷ÄX:ƒ§KF†G†GÒhNÌ•[XÌuqN‰j‘÷PÞ‘'!&5'rw8§âöžDµî¶¥¶ºäjœÁÅoJ¾)ù†•H4²lÖ²YËfep9Ô¥ieÖ/'ªu·µšßصCí ÛzÖÑ^aðÏ5ÿ+ðËÆ •KWÒÖøÊPÆ{b,Ayï_?zMˆ9 rÛŠ9£îÌDT‹¼‡rË‹< ‘©‘ëŠëŠër3b‘ë#ªu±9jå69m€)S2ÑEZÎ*T¸½îþl_ØÓ±™ëïó~ª·§jŠòV“¢Âg+T¿Õn»MZéê¿CúOzÃáZ/ݼ^…àRë3x.Ëù÷çß³ £–£úK$ì ôöt$ªu·íac×Ⱥ—òñ&ÍIš“4‡ÈÔDéC¥•Î`Æ´j‘7‰jÝmƒŽ9ίpNùxŸ¥™Úê&?•÷´xETëúH)¼¶k£|¼·ºßê~«;‘©Ý¨¶Ÿjñ ØU¢Z×Gºöcã{5^)ïÅa‡]Fdj7ª •2›Z¼®Sê™()µîyiô™ô÷¢É• J̯QÕùˆø¿•oöž=î‡L|ÊÖ^)c›|y¥…ý]׺>®jQÞͻ¬ÜþñuâëÄ×!25abb’A!ªêªÀ“ˆjÝmí}Æþ´Ì[¹å¥MÒ&i‘© ›6l>dp±Î°ñ®Dµî¶k&wü'J¹å·žn6Ç¡’.FtâùŽâR¿úŸ­½JZZ4+²¢Ð»ª%=Í:õ©UæzØ›ª‡ˆ¥Ai¼'ÆÕ´KÌ•[U̳fž’“£Zä@ˆjíù:åVù=¢Z×Q-òÕD5(S 6”b0`èi9}Ÿ«¢JC,*T\\ü\Ñâ·v\n¾Åá²ú¿»ýaó¶_®·e>µèº^Àdý¤&ö2(*œ¸xââ "S»Q=¢K­Jm‰j]Gõž—-:¦ePTX¿ ž'ði9ª{n±»`}€¨ÖuTý¥MP·ÊÇõSÔOQ?™Úê’χÕoœõŃÚ]f½ÞzÖáü䤵“Å¡ÖU›Tè¸õžvù¶ïljƒåŠ EB,ÛYÿW<Ã2åØZCëÏÝö¥tñ¶ô貉º^\Ô±ò”ïÃï+·ÿ6›m6ÛlˆLíFu±UŸÚ#ªuÕµífußj¦ÜþaÃ>†qa¥–£ºpQóEˆj]Gu¤y/w7Tnÿy#êݶ-¬ùçMLïë&¥g³ðB˜ÎQ'¹æõGy3‹³÷Žv{XïqŒ÷ĸš¢‚v‰9 r«Š9£.Î#Q~+r Dµv‰|r«ŠüQ­ë¨ùj¢€)J1˜0ô´‹\ããù F;C,*”ìTĽЗ§FÅ.mû³S õWüü—Á\‹|(ü‹®.?¶ZPû´òñ ;v4ŒÈÔnT/ü®þ9Ûp¢Z×Q}²Mû*ÎK”wSöN!2µÕ»:7°Ù@Të:ª/wìäY·˜òñn(º¡è†¢D¦v£ÚÚ©‰wÇ;Y_T(zúmÅ•Êûc:¹Èª¢oméï?åºêw(äjö´øCñ[5íÇŸ^qOýO?ÿåè%Å ”è®ó¢B“¹×w.R>Þ¥m–¶YÚ†ÈÔnT[¶ªû]Óç©Ä[ÖXç¹³F-¢Z祲BªÖý‰xË z×ÿÛvQ­ë¨¾}¡ë©z.Ä[Ö(/µíPUŠ éÕx1úÌ’²Ï†<^¨cáÜâ'kŸ–¸aƒúŸ.~þËǤ{–Ê^ÜŸ‹xËÖ…¼.tô$ªu^*sý»üÁ?‰·¬aYÑ5¸I{¢Z×Qíê»,<¦¨ò1ú—¨^¢ìDÍG8û¶´®ÕV¼§ýíR?{¹Ñ§ÉíšåÒô”k·–cjÍÊ ´`àã=1®æÛ5ÄœQ瑨N¿9â-kˆüQ­ë¨ùjâ À·Ù½e÷–Ý[(&»×·(á¸ËЗ=6¦­ä”‰XŽ®o³Í©ø—ô®â¥‹¼ÕõÀåô‹“\úoYcÝÏ^ëìý‰j]Gõµùƒëž%Þ²ÆßEî±;ATë:ªïÝîöºÞ3â-kTxêk>à}v=E²î”•¾Ç®ÖI›_x÷êëGœýë/ ûZ-ôJ¿‡rwŒ¥_V´æŸ¿¿ 뜉»ÊòŒw]QAünçR5Ê(t]Tpî¶(0ògâ-k”m×üT7¢Z×Qí²vÉÐCu‰·¬Qú÷ú-NÕºŽj×M¡›(·¿_}ÛçÖvºÝevØ¥qÕ¡V^†>Þãj¾ÝYC̳rÎ’3£Zä@ˆ·¬!ò{Dµ®£Z䫉7ß&esÊæ”Í€¾¸ž…Õ¢ÛÅoíÚçÝÃÑ]ýßϺ¿›þ}¸Ø8îÀ†ÕÜœ• ÷`ÊjîÎJÙu°ì½b&&&&&¥¼œ"=N¥ßOåŸ4·¬ºÌá–ø¿Õ Kž÷0Ï•ì=ôÜŸÅï¦î6ÙupN‹jîÎJÙupN‹j]߬Évk‘fk¦‰ý©®°hSl¢¡÷¸8+éî`¢š;€³‹îî&ª¹€¶ä ;€Åè¼x‰—ò—ÁpŸÜaAåíeêˆßZYÔ£uu?õwE9÷Õ+‹ßõ\%_™Aº¸È=øo׿]ÿv%2µÕ†û `Êj¹gÏí;·ïܾD¦v£ÚpŸlXQ-÷ àÉMþkò_D¦v£:»ž¬NiA»ë«Ôy—¡^_ލJˆÿÅß3qs•ÿF¿;)«ävýÁ+Z×E¹g<<òðÈÃD¦v£:»žœÓ¢ZîÀýû%öK$2µÕÙõ àœÕº~°¶žIi^èÓ9Êã1ÃïÉ=˜@“—˜*·ªîžLT«ó `"S“—È×)·ªîžLT«ó `"“—rT„üòcÈ´Œñ½öŒÞ3zÏèÀܹs«_ú?Ÿƒž ¨¾#|ú>WE•6†XTöŸ£C…/Å§îæ¶¿[=Wÿw»ÙØ–·úò슠(ǹNëzà²~RûÊÇ{ñÄÅO™Úê]jUªhKTë:ª÷¼l±Ð1MùxãÄ/ˆ_@dj7ª{n±»`}€¨ÖuTý¥MP·ÊÇõSÔOQ?™Úê’χÕo¬ååŽW.®%Jÿ)UÞöý8q°úïàà5Ée·øÝBqÅÃJ–TNú—mØ|a7sñï¥=ëçñ~¤þû—.^oˆwñ»e‡x—ïvI×EÇÊS¾¿¯ÜþÛl¶Ùl³!2µÕÅVU|jwލÖuT×¶›Õ}«™rû‡} ûö‘ÈÔnT.j¾È¢Q­ó‹u’æ½ÜÝP¹ýç¨wÛ¶°æ#œCZ7©ãý¶Õ«:yo'u½Z¯¡ú¿»ó˜÷OŽÄþTmZb¡Ùåñ˜a÷ĸ:£ñ-¾˜*·ª˜3êâ<Õé·"BTk—È×)·ªÈïÕºŽj‘¯&ª¡ÎxU iã ·S×M]7uúE_ñóY_ô¥ è"»9ÛV±ÚgˆE…ÝËZuü²äH±B ¦G’Î÷žØ¨¹êßzÓûz£IâçÅïî×âX-K]é»]&Tî¯|¼>>úøˆD•–£ºÉOå=-^Õº>ÒEНí2Žßê~«û­îD¦v£Ú~ªÅƒbW‰j]éÚïÕx•ÁÅ:Ã.»8ŒÈÔnT*e6µx]ßfe汯{&îúúµå¸Ã_JÔÿ:,©g§œô¯n9¼Ä‚îâßM'YUô­KÄ’5‡Æ~åî®{K;‰Ÿÿ²8Û˜õ^Ñõ}rÕ¢†=›w9ƒ‹uêÄ׉¯CdjÂ4Ä4Ä4D¹mݪ® <1‰¨ÖÝÖÞgìO˼•[^Ú$m’6™š°ù`óÁæƒrÛÖ½6 Þ•¨ÖÝÖaÍäŽÿD)·üÖÓÍæ8TÒ|„S×¹ÌÝîâ=½þ(of‘‰g²yæ0±BUñ»½V[RÖ^y4hXã=1®¦¨ ]b¨ÜªbΨ‹óHT§ßŠQ­]"_§Üª"¿GTë:ªE¾š¨`оú\ô¥ è"-g *ÜÞ‹ Fù/s_XišyÕ¢!ê¿Ã„Î6 ÅOV0¿m–'¥Sß–î ]ióz‚K­W>Þ÷çߟžÈÔnT‰„]ÞžŽDµî¶=lìY÷R>Þ¤9Is’晚(}¨ô¡Ò‡”Û6­Z@¤ÇM¢ZwÛ cŽó+œS>Þg)ÏRž¥™š¨Ý´vÓÚM3(*tZqþ˜­îŠ &ËLc yÔüó÷7a¿²¨l§µ÷<-ò«ÅÊ2_îÁªP©]Dà墂ë‰å&G9jù¸¬ƒê'P¦ß–?Ñv^@€øÉ¢Öe~-·¹n¥q~º.*THñm2ÐQ¹åï›ß7¿oNdjÂ{ª÷Tï©Êmë:/´]L2Q­»må=WŽž¡Üòמ\{rí ‘©‰žA=ƒz)·­ËÔ%£%¢Zw[[¯U§^Snù3:ìp™ª‹±œ:ã±è<­×>kšdrÄdœøù#q­Sël4ÜñžK+·ƒ{ÓhBÌ•ÛV̳f†’3£Zä=ä[ßNäë”[Uä÷ˆj]ÏÍE¾š¨`оú\ô¥ ½ãüŸóÎÿ)y>Úúßr4¬¢‚Ü;üV±f‰ò­£¬}îÖîý0¤û›ú3´ly±Ö¡þíìó—Ûšþ'75hê\³“®-Iûø“g>ÙaÜuÅuÅu"S>‘>‘>‘Êmû¶kŸ"ÖÕ:Ù¾ ìãÙ¨ÐvÓ_L2ø#ššJdj¢_¿>~ÊmûÒ½çé†Dµî¶•·š§˜QÞÛTÓTÓTS"S£öÚ?j¿rÛ:.ðß[Q»iôZgg:m5½]ôh±é?«ì-𸵬¶pXïy6bùPqX…öí÷[ž~QñDI±H©Z¥ ñTãªM*tÜZc~ðÆ¿ŠEG¾[œßjUãA‚Óÿ¤]™ßÎÏôÐõ‚¢bkþ§­¢VÏ•üàúÁõƒ+‘©‰™Çf›yL¹mkœSq{O¢ZwÛR[]r5¢¼·oJ¾)ù¦$‘©‰e³–ÍZ6K¹m/M+³~9Q­»­ÕüÆ®j+ïíóm=ë4x¢ù'ñnïJÌ*..~®h/wE'™1çV½yÙ•»öy÷pt?Ñ¢]¼s·ÍöMÿª9€§½¹‡éË }¶U{S6PõxLÿÇ{b,­¼ŸbìM  1Ì`Å—í¦¿˜¬óGížM¢ZlEÞCy?Ež„ÈÔÈuÅuÅu¹lžÈõպ؊µò~Šœ6 À}õ`è…)寮›òNù‹tñKQ·ê†XTÛÉ']l*×R§Ë0ÍeÒÏÄsfϺ˫ìÌšc|¾½§Sƒ'Ê{âWȯ_!bRs‹S§.NUnás…|[º<$ªu±}“¯÷âF•÷¤™c3ÇfŽÄ¤æÂ#Ã#Ã3˜ðÄnjkâÔš¨ÖÅöƒ•ÿ÷ß3Hy›8š8r•±D8D8D8(·põØ‘Uý¬»…  -)^ Dwõ§æ–U—9ܪU|Z↠ê$ýEAB­·v3Ymr²â²NžƒŽêº ¶uG®´=¶JyGJ­-µ¶ÔZbRs‡ûîs¸r ÛÿmßÌrDµN¢ú]Øø5²V.P,P, 25qªÅ©§Z(·m•*}&oHTëdë¸jʉåvçó½€0“ÚÑÙº”xaö¯ú­Ýó¦Ýë£â¾1C´òžˆ±7=€æÄ|0ƒ tòõ^ܨ£îæ)99ªEÞCyODž„˜ÔœÈÝepÎöžNÚ¸@‡¨VÞŠµòžˆœ61 À})²bMcMcM•¿T+-<ÚUïi¸E±=|©õš:A]ëT=aõ»¸b®hD¡Ê¦Äw7·ýÝêyìÒ¶?;µÈÊc<°±åûZ—”tcç7v&&5wvÚÙig§)·ðÜ÷õZW$ªu±=V´mˆÓ?ÊGZ2´d(wÞhÁõý×÷_Ïà^Éq ë\©tЍÖÅö|ßh×ÊÊG:kɬ%³–“š»¿áþ†û”[Øjn㚪ê.±þeÐöí÷[^üP•‘5ý ·.Ѿ”éö¢5Ͷ»V)´Ú^ËnÞÍvØú˜9­­›Éª‚' fö~/ûà±S—%Z>u»Õü·"!–í¬G™V(<®Èñߥ=ëçñ~TÓ~üé÷²¨œà¶jÕ‰µgÍž´-ƒÅƒÏŸæñZð¼ÃóÏ;dPb?àR®ñ ¢Z[§Zóc÷dp š¼¼<1©¹¤CI‡’2x…ù»¶µ‹ÕºØ:ÿ³ØKª¤Üæ­ÇWú¯t!Ýëþþ½a‚ݽ¦þå—r+{®Ø€"ӊĘž1-#–ã1©†ÏôÚvéËÐÇ{b,­ÜÚbìM 91Tna1Ôõl%gFµÈ{(·¹È““š¹;å¹>¢Z[‘£Îà‚xÓXÓXÖå`о€y‰)‰)‰)Ê_°Z—-'?Ÿ]Oþ¶aÊ·½OÖ,"š~ëwÈκ™r›ßÛro˽-ĤæÞ7zßè}#å.“ß,OáͺXlЍvÇÑ¥BwQ\ÛxmãµÄ¤æ>yòþä-{‡Ó÷ù<óÕÚÝNYçr­òê ž½x&ðL 1©¹´âiÅÓŠËEuÝVJÇ;麴 ºT ù"Ÿº~ÿÌnmîôœ;ƒéñ“˜'1<'UÂáŠpÙ¨þnùžØ(¢Z»ÛªúEMÉ ª÷VÞ[yoeBR[Ê)?¤|‹l»Z-M>bOTkw[mΰVó2¸D{ƒm“ û»Ù;®Ó|<¦Gã½ïóyæ—ë±ÅØ›ï¾æÄ|P¹…ÅüQf+FÕoûx6yå6ybRs"w—Áª~‡ì,¬›պ؊µr›‹œ61 À})_Q³yÍæ5›g°€É¤žÜÊÞ2°1mßïðoíî/û¼wiïÒXºDk¼žz=õzªÜÎ*vïWß‘hÔÖöÓÔ¾=ÉEujtjtj4Ѩ-]GvÙud‹ö¯ìR×Í‹hÔÚ“Úí"=nÊEõÇÖ[lM4jËàøÁñƒã3Xj{þT¯uS³2ánä[ÛUNL+TÌlXñ Æ{o7¾Ýø–‹u´fÒýI÷'ÝWnçšÁ¿o ËM4jwk6´œ]å À/O¼<ñòѨ- cÆ.ŒUnçGu]¼8Ôî¶ÄÂ5O*·öC“î‡ê÷cœ¦µEWv©ëæ¥ÜÎb¼Í·^[Ä|P¶Ð>µïAFD£¶¶"סÜÎ"7B4j‹ÈÝÉEµÈûZ{ˆÞ¤žÜÊ`\ݼfóšÍ‰FP¦èKPKxÍðšá53Xº€‡Oõî 8´µÝ¿¬å‚ZgÐÍ ž:xê`âP»v5ÞÕxWcåÖþóÏz3«Þ"µöܬum :µRnç ÃA‡ƒ‡Úu¨Ò¡J‡2XpüS'_ ¢Q[Û³úZºËà)J¹{æî™›8Ô®“—O^>y9ƒ… ?zMñ½E@k‹?W›å·µ˜r;·¨Ø¢b‹ŠÄ¡v]n}¹õå ž(iÙ¶îOMóÚÚÖ¹<ïïˆ îq*íTÚ©4q¨]·—Ü^r{‰rk—Qý²s;¢Qk‹?{.²<°^.5vvºoI—XÆiÚÚŠñ³r;‹ñ6ßzísà –o]×¶ S+¢Q[[‘ëPng‘!µKäñ”[[äýˆF­-þ\Àçz÷ žÔ^3¼fxMâ€)úRÔò²äË’/KÊ}!?G,ðˆaØ¡ùÖq£¥iñ?•[8áxÂñ„ãÄ¡v½Íõ6×Û\rQòªïT+bRó­xöŒr _ìz±ëŮġv}Øÿaÿ‡ý²×çö7qw#&5ßvËm[Ìj“r ÇÇÄÇÄLJڕê‘ê‘ê!Õ.3—”Š>MI@ó­uXÓÿPnᨴ¨´¨4âP»ÒþIû'í¹¨vî´¨ûTbRómù÷í,3˜¿ìøuǯ;~%µì²â²â²UŒUŒUŒr›×y3ïÍn/bR õïö~ø9¹ÞCŒO§ia]®Üþ&înrí,ÆÛ|éµKÌ •[[Ì%‰IÍ·"¿!Õ"7Bj—Èãe°ŽÑFKÓⓚoE.Z.ªE›8`о€Lð}âûÄ÷‰ò—3:«%µÏ3øÐd{q\ÇE®<ù¦ZJµ”j)ŠTEª"•Ô…þ;ûïì¿S¹åwîôþÎñg"S“m‚.Énû”ÛÖü‚ùó ŠŠŠD .Œë6®Û¸n\Û°qZ ‘©Éöá¼î¯ëO“½ªÇçŸ{º0ç霧s2X´¿rÕžÝF;RÐè~²Í‹{IÍd/‡ê”Ò)¥¨ Ë;,ï°¼ƒr›W¬â{ `¶.'–<9tY.ª“m“m“m‰@]ؾ1|cO¹.û¦E´ßc"S“­ëÎИ£SÔIœ‰± c6M¶b̬ܶbŒÍ7]'((ˆybÄ/è’ì¶ÈÔd+òÊm+ò! N¤*R©"§—Áñã:.rÝHdj²¹hå¶¹kéQÎ}3‹0ôÎ9«sVç2¸fÐjŽÙÂ"yÒÆ\õxÅäï’¼TþM© ’€’$H"ötçúß×ÿ¾þ·ìjëäò@|~Û¶ë}Û|V$·:muÚêDìéÎýü÷óßÏ/{× ÿ8÷ÍÄç·mÝ«y°üåV]°*`U±§;Ïž< ‹j×üK÷¾Cyàï’ŒiÐT¹ULX0aÁbOw×$®I\#{wû!ÁQ;ˆÏoÛV:×Í"(ƒ¾zÒÄI'M$öt'9:9:YöYžN'.Û·›øü¶m•Í}Í'´T'‰&Æ*ŒÙ¾m+ÆÉrm+ÆØ|ÓuGÌ3xîò}Û|VáÄç·mENC.ªE>„ØÓ‘ÓËàîöKåß”ê@|~ÛVäŸE.Z¹mEîšØCz€u‡¢¯&(Cÿ¼U¼U¼uJpJpJÈàŽIŸæ×Þ0ÉìöøçvÞÎ…dï'³ýlû™{tÎûœ÷9ï –S çUÄ>?QšÙíù˾\›ËÞOV1¥b O”Ô9¿Ý~»ýv+·ÿß›¾²{I”fv{cgw7oÙûÉ~Nþ9ùg¢N׆Î:{èì Ô1yP7Ê™~BêûyŸw·—‹ê×7^ßx}ƒ¨ÓµÉ­'·žœÁó€Ëôñë•‹(ÍôíMU>°G.ªŸn|ºñéF¢N×þ²ð—…¿dpѰ«gv Di¦ïhðwdtk“LãÆo™ÝŠq²r{Šq5ßn]óD¹¨sL¢4Ów´ó*bŸÁÅÁ"BÔéšÈéÉEµÈ¥™¾£Ý§ùu‡7\j–à”à” r×ÄÒ£¬]}µ…0ôÔéÒ§KŸ.-÷e~3¾÷¡FÃލ³ýÔ¥ïVg3ïB½Lƒ•[r_¾}ùöå#޲ƕWV\Y!ûì2=5t%bÕz Ëõ€åñ•ß• #@9 SIDAT(bVN¹%7Ú4jÓ(â-kÜ)~§øârQýè”_ßú§‰Xµ¶}«{–s[gÕ¯DˆrK®HX‘°"xËg=žõx–\Tש6wÆÎ*” Ô܆ˆ·XS{W£êÊ-9¯î¼ºóêoYãåû—ï_¾—‹êZKgÌÜ´ŸˆU[Ƥáï­2xîï„ÅOXL¼e·]ßv}ÛU.ª.N~¿v&±ªþ¶¬wóÝÝgp§ï“AO=ãåÿ+Æ-b ÃXN­ËÅ­WóíÎbΘÁƒ?Þ•(bVNÌ7‰Xu¶"!Õ"B¼e ‘ßS> "(rƒD¬:[‘s–‹j‘¯&Þ Œ°æ(úê`è5ß)¾S|3x ÑoA5k•ïÍ Díœ6nU3HŽØ›Û›Û›+~Uüªø•HËJýÜú¹õsË`É©5UßX…±êl—õl”Tm¦r–ò/å_Êÿ³Ýg»ÏvDZV2:etÏjö¨BÇR‹sëyV%nUo×Mõºd?IöŽö6)mRÚiYiæÞ™{gîU>Å>Ûä¯Þ´î£°¹ñ To«öqÞSÙ;Úƒ“ƒ“ƒ‰´¬´$xIð’ .,âTʶLJÝÑ+ëÛJܪÞÖx5úÂ’CrQ¸:quâj"-+ýëò¯Ë¿.œŒÆ&M]ï.÷õ nUok¾œhµêŽ\T?;õìÔ³Sb"÷3b ÃXî+Û¹õ<«Š±±rб4ßè¬$æŒbþ¨|FÄ|“¸Uë‘Lkª¾±ÊàV‘÷ Ò²Ô¯Š_¿Š\Ÿò¹A"V­È9gðÜß)¾S|§hCXs»·ìÞ²{ E_í¢ ½ö(èQУ ¹¯úÞ}-jUah"·=™Ü>À9J®õ._½|õòUb,ë½8ÿâü‹órçesû¦«j.!zå¶ÏvÜå*Õ§BO…ž %ƲÞ·7noÜäÎË* ÏÂÕ/½rÛ›ºls›+×z1ýbúÅô#ƲÞûïw¾ß)w^lFúYlCÙ@nëôëüú»7ʵÞ>÷}îû܉±¬÷Éá“Ã'‡¢NEŠfðìà Ç;l0˜è•]ö¹Ñ"³²ë¸l®¼¹òæÊÄX6”p}>ôùÍ ›6/”ÏKÙ¤’ß}¢WvÙçÖ÷;øX.ªÃJ„•+‘¾µÅ˜DîçÅx†qÜVŒ‡eW8s{ãö†RY6óG¹ó"æžD¯ÜVä.äZOä=ˆ±¬'r}rçEä ‰^¹­È3Ë®pô(èQ19€µ0¶oý¹õçÖ}µ‹0 ÀÚBk ­•}~mB™.'ÝV2LI¿}ָǎ赯 ¿~3üˆ«ìµ}ÆöÛgÈ£K¾ºÞ$’Óo_‡÷ÚÑð”\‹®8ºâhžø›Í$3ÉL2“;Gÿn¿Ëù9‘œ~û®vŸ>.ykz×4ƒIf¿Üýr÷ËM\e¯¸=q{âdŸôi3nØò²”Òo]ï/ïë]d£å"ëã\5Ÿä›ä›¤HS¤)Òˆ®ìrvàÙgÊEuõS#ÝÙÉé·uG®´;¶º¸ÍÚ”[Ì3Ù3Ù3Y¬VpG{¶¹VçZkuä¢ÚnÛà¿gÏ%’ÿ'ªï‡M‰ïZr†C·, mâ`â`’–7-oZ^åÖã“ Öxkz×´ŠÛ0ÆK¿c`¹øãg¾ÅÙKÌ%åΑ˜‡Éé·"_!×b"×A\e/‘÷“]Ý¡q þ&’ÓoEnY®ÅD^š¸‚j€µ%ý}À}5G†`šbšbš¹¹¹ìÕ…{nnX!KòÎ>oÜ«VŽ)‘Û,ƒ¶ªò¾Êû*ï?%}Jú”DX鿇~ýÊEõã~«ë¿!ªSr÷µsî:¤LH‰bÊ­T|Mñ5Å×|¸øá⇋D”>|}ðõÁ×å¢únín­ëÍ&ªSCÊyLôîTá^©'rmõöòÛËo/Qú`B¥ •&T’;SµmguÞjJ9¡nRØöøE–ïëåkþ¯\[½zÿêý«÷D”>˜»îþ¹ûåΔ㮩»×!ªÝ*¯êq"Øê…—Ÿï6¹¶zêøÔñ©#¥Bû‡öí/ûTàbÃVO!ªÅ¶\T+·ÞeäÚêÞü{óïÍ—kg1>‘û]1¶ãÆ{bÜ+×VbÌÌ7Wˆ¹¤˜W*Ÿ)1sR¢Zä(ä¢Zä7ˆ(} ò~"˜Á³®cJä63ùC¢Zä“å¢Zä¢E^š¸‚j€¡Ÿ(Ã`¼>ÿúükÙ…sËO-^ È“¤…½¹åÌ!ËÇS}KºßöŒ.7ÐB6ññàÇ?>ø‘XÒïF¼ñnDá!…‡¢|¾ ß3kòâERÏm ísh‘lL@ 1íÛUv)(»ÜÜõ›×o’:Ñ#|lð±A…ÙfWMx=^åQ?-gFuZPÀ%}\«Å•m!»ÜÜÕ‹W/²D¿IuHuHu¨s¥Î•:WäÎZ?Ïì:›CË ¶«úŸ˜R¶Fó.]eÇiÿü¯à‰%ý‘æ“æ“æÓ´CÓM;È^ÜÐbÖá­‹sr‘¬üɶ d¼=²ìȲ#ˈ%=²P±P±°sÞÎy;畽¸áÞ´¦ëÏå䨮äÑ¥ëБ²KôwÜ×q_Gu[ŒUäÞGŒsĘ'‡ÉVùEÔO“k1Ncf¾¸úCÌ+åΚ˜“Šùi-’%õÜÖÐ^ä(2È] )<¤ð‘ß –ô‡ÈÊEµÈŠ\bÎŒj‘CùdÙ5ο>ÿšÅÌ¡ ÀÐO€a`®&\M¸š ;•ú¥x½¢?½ìØórÃ&9è®ß}.¸—ðô,WßÂG®eŽ›79nBüè§;¥ï”¾SZî܉åÔž ì‘»mº a¬ªûíÚÜ/)×2ÿ8øÇÁ?ˆýô(ôQè#Ùçi}¹¿äQ·7õrPZðÓç¾Ï<ºõzU­YÙïåÚ$Â!Â!ÂøÑO/Ú½h÷¢ê¨®½nöÍíyrÐ]¿—Â:Å—·¾Õ¬s—érm²¡Ì†2Ê?ú)©YR³¤f¦Þ¦Þ¦Þrg°V—éqæ "™Ùª²'*•ï߯Ïÿ–\›¬h²¢ÉŠ&Ä~J—<.y\¹ËýXN6åíôGÛð\9(ªë¬š{bGÅÿ:Ý}NÌè¿[ùoå¿•_uT;”™¹z½‘?ë·ã²õ1æ¥\B*>*^õŸíí[^®uÄø†,ñ»ÚÍwþÊürÃå —7ðüH÷ îAÜÕgvÇóæ7Œ/ªÏ®÷­ärJõ±‡ýöKØ/ĉa9ÓêL«3­¾Ò_ýФýUã‹ê+VæÕuW}ì-ùkÉ_KˆÃr¥À•W ¨>³Uîõhg|å„Ú{çÚîez¹èÆbÍäŽ}ú¤é“¦O"N Ë-‹[·,TGµÍçǃ‡»Õ]µâDœ1Eu¸y‹Šl¶\f}NîØÇÄŽ‰«ˆSÄ)(ÞŒ£Œ~0ZuTWTtž0¤“›å*×MŒ)ª¢Ý7±XÿŠõm?Èûoþ¿ùÿæŸv/í^Ú=Í[[ŒgT·¶ßxOŒcU»ó­4,bî©úÌŠ9¬ñEµÈ9|¥Hö îAÜâ݈<¡ê3+òÆÕ"?¬úØEž™8Á·¡ ýD/Ö#Ö#ÖCõŸðakWXöîmŸMî¹ xùÐÝ}Ïx´˜>ÜõA•¯”vuÚÕiW'bÃpj}ªõ©ÖªÏrÀÃåËY'MîÝ«‘³áFõçÿþöˆ[P©þ$Ûá_)ŽÝ0vÃXbÃp]Œ¹s1FõYîúgÕçV ^Þè•·a_ž^ºZy–X6´Ñûjs¿rACž°Íé•“ï‚ê{nz‘ÌÎyP…™ÛUïŒF3Íh¤x­x­xM„¢Çc}<Ö¬Y!³Brg¹ØÅJs«…×ðgÓ]å =ª«Åý2O¡:ªÇ~ûiì'…‹ÂEá¢ÝÖcÕŸ.ÆHb¼dÀ«Ýè•·a_1vU}¼b Ì7Ñp‰y¨ê³,æ³bnkÀ«MîÝ«‘³È3¨>^‘¯ 6 —Ȫ>Ë"÷(ò†Õ",rªWä–‰ h‚0ô`‰+ǯ¿rÜD {;·ˆ¬efXC–£KÛlp*¢ÎÑÅwŒïß‘x0·*ݪt«’:ç}»só"£ +ªOìi—è<¢ä‚" mP}t‡½{ö"ŒÃý÷÷ßß_2¼dxÉpÕç}ýá&Ííã ì.öñ¾Å]b* 3/_t¡ê£Û¾/|_8ñ`ž:>u|êXùVå[•o©>ïUË,œTËÍfU·à ¥P«Ãô=7«\ahÕ¯<Ñp[ж mAăqxy÷åÝ—w8-púJa£òÂ^«Ç\®û4lIüƒ¹‹½õ¬Ó[ÿ5ÿÝöT­þª.|GøŽðăqHR$)’£G5ŽR}Þ+%v7ܡÝ0˜»ØëÎݹ³GÉíûêuP}t¡ÝC»‡v×uk‹qÎWÚy˜yù¢ ŨɰÆ{bŒªúèÄXWŒ{ùö1'ýÊy_P¤c¡ bžkXQ-ò êdDŽ‚x0"¨Îy9IÊj‘ûUçèD>™x€æ(C?Q†QyµèÕ¢W‹š½hö¢ÙWÒ”U+”˜bkÛæŽS-Å¿zУÁJj`€§Ç™ÚV¸Œnð“uó’e¾òüªñÕÇWÿpåÕWÆçMû7íß´÷}æûÌ÷™êH°ò6Sø]ôÉV·k+Ò,"<ônAÝ ·;vrÞ¬`…¼¥z«>ë|Öù¬óÝ ¼x'0>ÉË“—'/ïÓ¿Oÿ>_I¾›U+äk:ô@‰–‡jE|þ!ÀÛc©Þ=«yçïêNo{Îfcé¯,{XØ¿°aÿë{®ï¹¾‡0>g~œùqæAC ¤N¢¡Ú± |ó¿«ÛåOÇé]ylÉìmÛŽ—.So¦wSuŽåâô‹Ó/N'ŒOêÏ©?§þ<öýØ÷cß« vÓ›õ¸®åŠ¢qNzWëògÑ·Ê<ô°n;Qc9uóÔÍS7‰ãóYñYñY1ýûéßOÿ^H°­ÓÿãÔ%®±¡Š£çôn‘çBóÛî>j½²é¼Î“Ô9–¸ˆ¸ˆ¸ˆ¬lm1æãÕû&ÆQbL¥wëýàí±TŒEŸTõ±ˆñ­ëò3>b~*檪#AÌyÅüWߢZä DÞ@äT‹ÈEˆ¼1`|D.QäUG‚ÈOŠ\¥È[êQlÿø«g‘ãùÞ¯|C_4{Ñì…È!Ð ÀÐO€aŒ\. —°ýaûÃö«36Ë[¨‰ià¿×¼ÛwI›à‘˜mÏY‰k¾Îá‚Móß‹ªu7ó\§¹NsR7§nNÝÌi7r———Öw]ßu}Wµ­¶ôVÃ$ut€¹G¶Ý¼çC‹ZßÙ±H-öH}þ£óÿèœr å@ÊN{N°=d{Èöõ£:ÔÁ½~µýWôýÙýbvEuä'Ÿ ÚÖ.ÏËô1ÿ¨Î>.2ºÈè"Ú}h÷¡g<'ذ/`_€úQms³G¯Q‰®m–-Žù.» öžc-+[¹z §žêìó ÞƒzêýnÜ»qïÆqÆs‚è3Ñg¢Ï¨Õ•þíúWP^—?–ü½;»¢ºf•ñûVÄ•|âPßI}îݬw³ÞÍ’j&ÕLªÉÏ âNÇŽ;­~TW ì¸þ·OΡ‹í¤Ÿ²+ª~š8hµg©9΋<ª³Ï¾Ç}û9üåð—ó«ÅøGŒ…ÔÙg1¾c­ìé‰q¦sª!bLË7+'sU1oU'6Ä\XÌ‹³+ªEN@äÔ'ò"Áy7n"¯(rŒjÍ_ú˜ÿ^ô¸ÈafÛ¥ 3<E.WäuÕÙs‘+ÖÅC ÀÐO€aäîþ9Ÿë>×}®«?ÌõøT®œE½ ušŒ²¿x÷Jõókw˜òì·Ñ ¶ïiÞÈaqëY•Ζ.ªþ¾9÷sîçÜïºÉu“ë&œßœéI¹'垔뼠ó‚Î Ô·«é%6„Û4~W#åÎønùëõÔnT¿*Ó˪ለöÞ¡Ž¾ó«˜”ªþ¾ÙmµÛj·õâÊ‹+/®äüæL/Ì^˜½0ë“Ô'©O’ú‘Sûªåóü«"=[VO¹õcWk·óZ~VtïѼöÞjñ¢–C·±¶îVÇÔß7ëÖ+¬Wœ>uúÔéSœßœéõú×ë_¯”:(uPªú‘cÖ¦ìI›ÉUœûl?¾öo³+m+¡Ýâk§ebJÔ¨3jÁâ+e<Uiõ!ûVÛ¬¶Yíã+ޝ8¾‚ó›3½¹ñæÆ›Á[ƒ·oU?rŠ<*íSö@åv=o¾QëÍÌ5[´üŒU×ÄåÓc'Õ¸9zù’`+?ÏUí™dÒ‘G )ÀùÍ™’·&oMÞ:9ßä|“ó©3…ƒJ*uÕf@wÅÈ µ†Í0ÙTJ»Q]wèJËcsí»4ôëaMìt6³QY:²tdi}km1.c$õEŒÁÄxLŒÍ´;ÞcH1žcKõ÷MŒ]Å8–oSÎ$æ°b>«~äˆù²˜;‹y´v£ZÌ÷ÅÜ_äÔß7‘g9ÎoÎ$ò"÷¨~äˆÜ¦ÈsŠœ§v£ZäfEžVälÕß7‘ùaÎ/t‡0ô`ä ñÃâ‡Å«¶¢ÚŠj+L¾‰} ‹Øb±ƒF×ü»üÊ¿j¸ÝîØöÚÍ ;G¥¶ªY{ñ‘˜ÖŸêlˆ®ÒêŸÚ×vöj~×áý²‰>W[$9έpÚézé0ó‰ßö¹æÍ/š_Œ5(jb†b†bg™ïÎ|wæ;çÎ%œK|[tÙµ(ÙÆìÁ€ÓöKÊçYìÞðg»žÛJ7ÛààÕË'¥ö°# [?©³2zS« µßïîíåè¸ÜÉ}Uµw#ÛךR±OÝÕVyKt1ÑÀž{>îù˜v>í|ÚyÎ&¾¤Qê_¬±¾{k÷Öî­¿-®*÷4¿i–»_©KÊþ5®ŸmêÖ<ÍÔL‘â}Õö9Ò³õå:E'´zTçûˆ©Þ›‡®xáѨz‡àǵGWLiàg=°¤ƒ&Q½Ýq»ãvÇÏ?_ü|‘³ ášý5ûkö-Ü[¸·pÿ¶¸*Ò­Ô*«?ËÜòøµmÇî­FxÚ t~Ö¼=ƒ‹‡L±Ÿ9V ­co5fèÒ9Õ ½_P£ÊݾG&V.÷¢Õ¹Þ·J¸Wwvš¥ITo°Þ`½Á:uzêôT–zÆ —.%\êðºÃ믿-® /)é`ù[ßF=[ׯt£›SÐ ;çAfn«á>jH>û‰cW†šÚW3é®êöÃ;-ØVÕ1 nRpùÀ6ü¯”øhäÚO“¨^}aõ…ÕR^¦¼LyÉÙ„p¯ê½ª÷ªöðíáÛÃ÷ÛâªÐ¹â‡K6.}¦A„Y¥I]-‡ ²ûþ·‘3Nר0ªËâö#ÇNZöÌÞaÌ֥׫·~`¡]Õ À¹“G—¿ß6!àdÉMëê5Ô$ª—…, YòñÇ?~üQŸÛYŒ‘ÄxI“ãc61~c91®c<1Þc?1cB1>cÅoû\1FãU¾5Ä|VÌm5‰j1¿sm1ïsp1ss1Osv1sy1¯ÿ¶Ïù‘[àl⋊Š")r’ß]"*ò¢"G*ò¥"w*ò¨"§*ò«"×*ò®"ûmŸ+r¿"ÌÉDÖ  ýÄŸvä<ÿ(þQüsrÝÉu'×yGyGyG™è%×®\ ö>ì}Ø;­CZ‡´œ:Èz­x­x}vüÙñgÇ·÷hïÑÞC?£Úþ¡ýCû‡’¥d)Y~n÷¹Ýg–ÃÅW\*v©Ø¥bÝBº…t ÑϨ¶™a3ÃfÆž}{öíÙ—Z4µhjQÎT»6ôÚÐkCýwúïôß©ŸQ]fe™•eVî(½£ôŽÒ)§üò7g ª%ÌO˜Ÿ0ÿ·¥¿-ým©~Fu±ÙÅf›½©å¦–›Z~Høð!³Õî½;ôîÐÍG4ÑÜD…7 oÞ4ùQò£äG†ØÎbì$ÆQbL¥Ÿí,Æ¢b\Ê·ª‰y®˜óŠù¯~FµÈˆ‚È'pî Gä$E~Rä*õ3ªEŽWä{Eî—s‡¬Dú‰0 xràÉ'B+…V ­T®l¹²åÊfý0¥¨UQ«¢Vóÿ™ÿÏüîW»_í~5Î 4ñÜó¹çsÏUa«ÂV…UY^ey•åÙ5Ÿí:Ûu¶ë»;vwì8/ÐÄËè—Ñ/£ÃÃÃí“í“퓳+ª§î˜ºcꎄ~HøóM$öOìŸØS‰M%6•p¶u¶u¶Í®¨ž˜wbÞ‰y¯E\‹¸Áy&ÞÚ½µ{k·Ýb»Åv‹î ܸgWT©;¦î˜º—Ý.»]vã¼@¢¼‘‘‘ìåäåäå”]Q=Üg¸ÏpŸó+ϯ<¿ÒX[[Œ¯ÄX+Û.ZM¶O¶OcN1þä[Mˆ¹°˜gWT‹œ€Èˆ\çšyK‘Ãù̬j‘¿¹\‘×å¼ {Q†~¢ dàE“M^4‰ìÙ+²×È>#ûŒìS1¬bXÅ0Í(¥ç”žSzΠƒn º±Ûe·Ën—'ÓŸL‚ŠÐ¹Wy_å}•÷`׃]vã3ÆgŒOU¯ª^U½4ê’ãKŽ/9~@žyäÙ™gþùM}4õÑTÚºözÇë¯wvxØáa¿Oø}Âïªß­~·ú]-Ü+æ_Ì¿˜@é€Ò¥·žÚzj멃 z0ˆ6‡®%µLj™Ôòè¿Gÿ=úïä“WL^á8Øq°ã`Í£º°{a÷Âî½m{Ûö¶Ý4~ÓøMãï5¼×ð^CÚºöÖú­õ[ëc±ÇbÅNÛ8mã´N¯^;½ÖVúÏÏÎÏÎÏn½Åz‹õ···irè\rÙä²ÉeOœ>qúÄéYÿÎúwÖ¿n½Ýz»õÖVTw±îbÝÅz통ÖnHX›°6amNnm1ã116ã4ÍÛYŒÅRŒ'ÅØ’‡®‰ù²˜;‹y´˜SkÕbŽ/æûbî/ò´9tMä6EžSäûûìï3ù4ºŽg¶_‡º|1øÌÔŸê÷a³`¼û”ïþXâãnÿí—?Ow+7,}v}§¿ú«cëÖ¼ßötß+ƒÝü|§æ§ÎYW}]õuÕ³&eMÊâC+€7JÞéÏÁüœÅ!åk¯\ò»a>ƒ§Ç- ¹î¶gg¯pçJÙ¢m†Oiµ~äŸÉ¸FLòvÙøwËä{gom²Ãynÿ~nókuøÌ¦¯U•ÿöïê¯{úk GZE ÓD »~úúéë§#R"R"RþÅÉËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎê_Z;8kpÖ଼ÿ”·nWãhœü¢·Œíýù4ÇÍV¬8r¤ Fÿ΋×ÅW¬ïóÍìùç«…9µ}ñ/¶ÍÛÚÛÚûð²ÃË/ãø…M®éÏ»¼Ÿ§}Ã\?¯a³?2ÂË+ë¹S´\Àw1—wmÐliƒàå®OÝTv®›÷mÓ_õ×FŽ/´„¦‰ZÔP×P×0noÜÞ¸½yZÐüвEÙØß.6ŸïÞ5grLjÈã‚](Éû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬vLÁž˜=1{bò^ŠÔ¹Ü«Ï7ýÛ-ž_¬`ëÞ¼î¡ßÞZ\£¢Ÿ[EßÞy*rúî;¸ï³QÏF=Å ŠþœÒŸ_y9ƒ¯ÔØ[I'ŸŒ ôñ}[÷/Ï?ŠÞ\b~¥ÀL—Ny¿î鯓qh0L04åἇóÎku¿ÕýV÷s_t¨çPq¼uÌAçvW}½t%b? -ý¶M^3fÅÆ„†œôáÈÀª‡Uª–û¾¸ví6úæò›Ëo.'¼yS2¦dLùbðƒ¿œ—òÃõа’³Š5¸üƒCƒßVéklô^4móæÃvÕO o™—}Iš”4)‰GCù¢?òrÆupö°.ÛufÀHºÑÅÆ††¾ÜÞÿdHëí)áŸ{†åe_ô×Lýõ“ À|QÃ4QC#Î>ø|žÞ5»»Këý^Ö¦¶\’ûxàçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯üÃ/ŸÕŒ™3Î+ ÎŠîG¾2µÒרèÕqÒ®õë*Ôuø²Þ?üjÝæa›‡mF€Kîä~~y<­r̦߹‡«úëÌæ.fVl“PçOCûÖ/‘ûÞ鯟úk)y€9¢†i¢†Ù;r0ä`HîË CÏzz;,~ö4zCð;æUýþŸß©ßÙÿdHëI_ùßp Î}·wÞÞy{g²@á¹´äÒ’KKrÿ‰\y—÷“ ±~®s“öµ2—Ò÷5cà ˆõ x÷Dz¹ïïÜÇsÏ}L6€¼ÐŸ/¹ŸS+Û5 ­ÿ“îQlŸÐ 󽋹ów¯™ãÚžpœVõnîû«¿®’ ˜ `˜& `˜1!QHs_DØ×¡M²—j¾Ë%ÆÆÄíígùùç¾ïë’×%¯K&'¬ó¥Ï—>_:÷ŸÂN×úëbÆ¥¯±Dïžn¹¥yÙd«õZÛ÷Iã&›4ŽœÆèÏcgmx¹±–©Uº X¦½»˜¸_CnºíÍýú©¿Æ’˜ `˜& `˜¥„2 eÊä¾ppeb·È€GÚ[4ù?¿MïØ«Y`GGÛ2VãÍö!Û†lBfÈ¿+¥®”ºRêÖZmìþ_Öj¯ú}uôï´xm¼mß!ËŒÍÃOs~šóÓ2¼J^;k>WgºÝÄçu¢ÅàRÚ¾‹9òYû$¿è¸›+u¥Ô•Rd¦¦‰fæBê…Ô ©Æ– >¶ilõÁƒN½“›¶Ðö¢É«ãó^Ñgƒ+††ÖlR9ÂØÌ¶8lqØ‚üðßÜo¿ýýö¹×Þk¦]Þòž¶«ßWÇFçâ:'Öª~¥U—®“Œ>¤Úºj몑@.;S¾8âñ•C­ìk1q!G‹Î]Ìåƒ]×LÉýºª¿ö’˜2 `˜& `˜GgytÆØÒ@­ 6¥ËßN›Ó76( è,š¼:fï_)øÏP©æ ÊÍÒ7JÜ(A–È»,,,Ÿó>ç}Îû ë³`æÉí§ŠNõûF猯Q?¬k7£¯ÓŽ•9VæX²„¢IŸcgÇСžåÆëVÅ6u/šw1­è>²ñ¯F¯®ç}Îûœ×_‡ÉL0L0ÌÁDÝDÝÄÛÛ[£¿þwïMÝŠæ¢Éÿy7ð¶è'ÁõêÆW,nýš¹rJwJwJ™ö2íe± /Æ8Žqãhô]¿ÎS»l*[D«ßWß œ·%q^ÕôÆ%Ã~36WÓ¦?L'Q(:ô™7vFtSï¦ýÌœ¡1çBîs“Ò¢Ë^›+ýu˜DÀ4QÃ4Qà ¬²\e¹ÊÒØr@jµ®G–³hòêx·Y¯­ ÍØäž“{NîI®È]®„] »ŒýÇŒ]uõ×dÂSC\Pvþ¾ó÷¿ëçpš k&¬yØüaó‡Í™™ÿ†&íÖ°[Ãn 3¶°{OëT/'JŒGŸwˆñŒÍ^ò…ä ÉȆҷ¥oKßfìghá=«oGÝklôýdV“ëÍÞžà=Á{‚É´MŸscgÁu].Mêq·blœûq §ó_ÆfO}&c0Àù—™™iì.€2ø¿¡†I‹5>j¼á ÿù°^µú²8’—qz»€õº½æ}K¶î¶î¶ºOtŸè>!i¼jÊî)»§ì6üéY!»N)·–nÅÍHŒ¥èÍ}tU†fütÇØÍÛóÏG<AÒ =úlKþv!¼gw(¹9~1RÈŸ¾MìúÙv7œCýõ™¤ÀtPçß«ïýÍepÞQÃD°;awÂÎØIþdt_9h(‹#y_ví¿)ÄÏ:ܲOÙ×,Eí)¹§äž’ä ½¿§þ=õï©Æ^ø¸Î˜¼Í‰r7cÜ‘ÄÊ¿zor3œÉŸýÔè§Fä ڣ϶aæÛöwŒ®zF—ÃJÞÆ?'vÛÒ¸®±«±þZMÞ` (€óO_èêË]‹<£ Î0LÏSÝSÝSßTßTßTÃSz[DXŠÇDþíx8»}¸ŸÑÏQÎvÎvÎv&z|9íËi_N{ÍgvŽëô|pwjÝ;ú¤ÿ”½³ƒ±W .=ºô詃6èólô±Ï³{¸7)Ï]É¿'§6úÌižá|ê¯Õ¤¦€¸`Q `˜œÓö§íOÛžÀöÓ­ç”/gTÌ…‡,…ü·±å¹ZOªt4œÛ}iûÒö¥‘=@Qv7ænÌÝc7þ¥~Þ¥\¥Ðýoc­øOGÄ´4œÕÙcf™=†ìAôy6Ìù˜3~¥ëLáNä¿OŽv 2ú‰ìúë6ÙÀÛE\x(ƒóƒ&'êvÔí¨Û†'­Tªí"ï3,‚ägLÕižÿzùuÍtÍtÍÔeé²tY$P4M¿3ýÎô×|fmÝz½»ô¤ÄÍÏè·q~Ÿ?Z»1ËìœÙ9³3 „ùÒgØXÂïÝ{\SkîDò3.ØÓtžË.ùÕ_·I Þ. à7ƒ2øß¢† yPéA¥•Œ>¦Xˆ™ÏòGþGÏõUËÚÌ4œáÔé‡S“C@Q“’’bìHÃ)‹ªH'(qó?Vk9»Ë†3,ä9B9„ùÒgØ0ÛCÆ4Ȩu‘»üŸõu ªhì*­¿†“C¼-Àoep^PĬn°ºÁꆧåòÒ!n=Xø(¨qïâ6³½¾æò7d CÈ! ¨9š|4ùhòk>~"£ùø¨+·5z»Ní¹©‚á<·®ÝºvëÚäæKŸaÃl§Dt‘eq÷QPã ;÷]µ^s Ñ_ÃÉ!Þ à·‹2Ø `˜a „žŠ÷Æõ®xÅ”#æî îòñÿz»ˆ^šòÖ¦oíÜÏØ…/çYγœg¤Pt I’8$Ñðg¢ç¬ Í×L0…êÔÿÈR‹·ºd}‘YÙÝ«M`«ïíÝÊþiu Â ›븸}UõNÀ•°ÏÝe³d£‰ÖÀÎ+>;2Ѳ‚õP›×¼Þ{ºþéú§ëI#Ì‹>·†y®¸ ÜKË/tkb[„º¿ÝWþYþ1ÅC>+w¦ìp‹;ÿÉÍ=ž4™l w1§ïFÅù¿¦Ö_ÃI#Þ `ÓAü* `˜„Ç™3gžx^ÉUÇÚ˜öçþ–Ž-jáß¢Ú¤Š¥_ÝrÓÿ úž²Kåê¯ù4¾k¿_ûýÚïdPäØäØäØ»h´rù‡;¿ÝÒÔkØd« 5¬?®~˱KÞo]ªu `±¢Ì‘2¦V×¹ÚkȈ⯹=¾;þ6™„yÑçÖ0Ïóë7-îÒÝ^ó_ èjàn‘¦Sg]i2Û诱ÚäØäØI¼yÀ¦‰2˜&á`Ùƒe–}Íß+‡´wëmÊÕïûþPwá–›~¼o}›t¯s†[¾¾Ëú.ë»I@Qp}Ýõu××½æáÏ3š5èXïí¥®ÆJŒ´Mv¹æ}꛵¸ìAËûÍ߉òrž7¨ò$ Ïâ?þ¸º±Û·_7žs¾šKÓÔ¶ó-,~±8ú꾘܃ §N·yºáœ83â̈3dæEŸ[Ã<_véúe@Œ)¼æß=ªõ!¯ª¯nÛœÄÀªÎgÌh:Þec^Ƨ;¢=ƒö˜Î]Ì€Çõÿ®¹ÈpÎõ×s2 €7ØôÍ2˜&aü³ñÏÆ?3<Á.yvµ p3……†Ûz ¬·vp g÷]c2ü*×™ãþg•*<0vi0ýøÞ–Þ¾¯y¿BOËž–=-É$ (Øá±Ãc‡‡áOC·ƒÃæ}ôv‹R×¾_žžù~É̹ßgS&~ªÿ Ë]ýÿRki»œþôÿmÝ¿fÉ:gM­n4|¹ó¡†s^eU•UUV‘I˜}n óüòiÿ¿CºšÂk~}Ý«ß*§N}­ýÌånÅØ¸·x›N^_ιþzN&ðæQ›—¢SSÃ$øó;æwÌð¤Êpîw%x¿),4ür>tO}¿¼_Lé$'#öƒÐ’F·?E—¢K!™mûfï7{¿ÙkøsÐ7vv¿ÝµßnQêСC³KõÛSþ@Õ¿kxäå‘Î>+f>Üžñÿ½ù÷ÿ7°©ÕÀ¶3u^¯ùäÔþ/ü_ø“L˜>}V 3Ø¿úJ^¦óšÈG ŽÕõÛ™êøØÎÑÜ à›7zZ4ùÙpæõ×s’ €7Ø|i» ¦†‰^"«NµV®ƒé,4œÝÕ©•ÿ÷?}ÐxW½LÃÑ `ýÖØaD•µ†ÛŸ~&ýL:ahœwKï–Þ-_óé¿—9äüv+Rûœæs£ÒÊÇVQí÷UíѨNKß¼T¹¾»ætÝÓÇpL­vÈŒj1Èó5qµ½n{Ý–dÂôé³j˜á‰•ü£ë>7Wû­::Ô¨ò•~ÛFöñ^ãhm¾Õ¯~|Ù£ÿæ×üb®þzN2ðæQkƒöÊ` `˜è%²»Ÿ³“ýsY†0ßøÇ ÇÔh¸ý·2neÜÊ ™€¢ö IJŠõ›hS«Kó>Öì}näÉWß7lš°«0ôîOɆóŸè“è“èC2aúôY5ÌðöÕá=›˜æ}Ê¢!A>®õ¿ÀÚ$»zóJU+·*¿Ìò¬K½J¡Ö©£„j)q%B6¸-ЕŽ-jÒw4w•ÿÀò›×Ý…omØÜi£ ¦†‰^"'íñ×9µ£.ìqí¸îû ·?éHÒ‘¤#$PÔ^Tºç9´I3Ó/z½»N}´é”Ç™ÒVýàVõ«Š³{T¯×¡ӦW÷ÅéiÿŒ±CL³ö¬;þÝÕ× çsÍu6×!™0}ú¬fødRÇ —™Âëü'ñ}S‚ƽºmÖ«-,;=/Ëͬe]ùÔµÝo6¾ašw1á›j¯’E Ó\[ Öó-ƒ)€a¢—È_#BoÔoO\Ø£˜Ñv¶÷ Ãí?w î@ɵW Õ}[„wºjú°Õ¥êŸÖ^n¸ýe(¿Âê©óÇûO1åí÷i1#eÛ<Ãíÿ¹ÝÏí~nG2aúôY5ÌðÕÒÝ®5nn ¯óOï8¥áç†[;´~§šM7¶ôkÐYÿg¶Ü ûÔcÅg¡îýjÞ,ûŽÅ‹ÿswcšïþ<¦{­^À0͵ `­2¯2¸˜éœÀ«¶$‡µöXJ\Øã‘ì%ý&7ôjýñiï˜zæ[¿ªþý‘'í3Íí÷M“´÷òí¹Ý´çãÀ¦ð:Ï 6Õ½>Õo•ûŸU>¨ð`}D‹?Ô|õþÅð»övoó­×Ô×ÔÀ&v3fƒ¯®ÎXòÀ\ìü}çï;§,v®m]Ñs;pa'îw×py@ÏáN”ígéæò‰¿Æ/:tÁ'gV¹_¸­ýúÔܹ•ݽÚöyu¸>±ìš©m¹_÷y±û?"oО»)½nî1å{–{wÓµY½/í››Ú¾L8ê߬îuòÀ\dnÌܘ¹‘àÀ¼€·À\ÞllÔïE•æ¾ûCŽ¿º_¼x3LçÀù7•oÕ¬AŽ~Üt•ÛUË;€ ?ŠÐ;€õÏ@ç‹/ý—áÉÀg¿ÝÏ^è¿Ð¡?Éä‹/¾øâ«¨½1—ÏÎK ¬WÞ¯Jýj:S«}ðpe¸2\!™|™þ—>«†6Ï.¨Ï¶^mùcÙé¦vcì3€I&_|ñÅ_|ñÅ_¦°¶° Ä‚ J03ÚûÚ5r×È]#c‹Ç-ž÷êWÿç‹Ðg¹¿#|ÒS; àÂ׎káá¾Ïpû“Ž$I:B2EíH¥{žC›4{ËG^>ßëËW·ÊéiÿŒ±Còþ7x4×ð×pý÷Z&ØÄUªdj°gÝñï®~Íã[7×Ù\gs’ ӧϪa†O&u¼Ðp™)¼Î—oD¶ð ž¶}èóáŸiÝ.4nš÷ïÝv(üÏÒú=ª×²âë/Lí'|SíâU²^w¼ýµ}YÈÌhƒ¾¸°fš kò^úêÿü›/}_E ½Dv÷sv²ßC\Øã;Ž©;ÐpûoeÜʸ•A2Eíˆeë 6Ѧö.^{ë=íƒóþ½NŸDWõ¿÷&VúÍcQcS+€]…¡wJ6œÿDŸDŸD’ ӧϪa†·¯ïìÙÄ^ç7ò«öWÅ`ýV5ÿ±–uåSyÿÞ/îzŒu¨§ÿÞ¾¢ë¢î¦vSqWù,¿¡€i®-P›;ó-}_E ½DVj5¬\ àÂÃ;Œ¨²ÖpûÓϤŸI?C2ÚæÝÒ»¥wK߃:/;sÈÙt `‹ÅeZ†4˜ùý“¸.ÿðÙºg{ïºSþ“ÊË«5Õ«ƒcû±WM­vÈŒj1ÈÓpæ¯Û^·½nK2aúôY5ÌðÄJþÑuŸ›æJ^îS¤÷ÚÎ÷>U6ÍBµ¥ÿójBd–ÏzÓ¹yÙ£ÿæ?ÃýÒ_ÏI&Þ< `mÐFéû* `˜¿c~ÇüŽž<Îý®ï§.Œ1'#öƒÐ’F†Rt)º’ жoö~³÷›½†?}cg÷Û]ûíV¤^§¦øn\RöO«½ºm5޵nѳ뜡}ª£Ô³[Õ¯*ÎîáСC³K_}à³þÓõ”6µO)¶é¬óZo8ó/ü_ø¿ð'™0}ú¬f8°õ!•¼LáÕþã¿ú:YמosÚꟕ«¯uûŹ…ÕX¾}Ox/Ïà#­Û'úußèÞrnƒYŸ…º÷«yóÕê7z³ë“±¦vwsóFO‹&?μþzN2ðæQ›/핾¯¢†Iÿlü³ñÏ O¤Kž]­Ü(€ c¼·¥·oàmÃ-ïiÙÓ²§%™;Û†™oÛß1ºê]vl w(yÿœØmKãºÆ®Æúk5y€) Î?JßÂ@ “5>j|ÔxÃûóa ¼jõeY$/ãôv;êu3œCw[w[w[Ý'ºOtŸ4^5e÷”ÝSvþô¬]§”[ËF·âf$ÆRñæ>º*C3~ºcì&íùˆç#ž iÐ}¶%»ÞÇ3„;”ÜÇ¿)äOß&výl»ΡþúLÒ`:(€óoçï;ßù;¥oÁ¢†I»5ìÖ°[ÃŒê»÷´Nõrb‰ÄØxôy‡?ÁØì%_H¾|Œ`(}[ú¶t£Ÿ:YgxÏêÃÛQñ}?™Õdçzc³·'xOðž`2mÓçÜèã u=º4©ÇÝŠ±qîǞΛ=ýõ™ŒÀtPç_vdvdv$¥oÁ¢†Xe¹Êr•ÑϯM­ÖõhÀrJ^ï6ëµ5p¡±›ÜsrÏÉ=ɹKØ•°+a—±Ÿ§îñ£†.­AÝûêè}iƒáå×WWý°áŒE¥E¥E¥ért9ºÒËÑåèrô™ÍgŠçØdX}ó"³ßÑàÍܹ¼:ÆwkçásÌØUWM&\05ÀåÕ÷Súæ0ÌÁDÝDÝÄÛÛ[cË÷ÿî½±©‹&Ï·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆy1ÆqŒãGc¯@¼§vÙT–ê·QZÜ–ÄyUÓ— ûÍØ\=L˜þ0D¡èÐgÞØÑmL½›ö3s†Æœ ¹Ï]LJ‹.4zil®ô×aÓD ÓD ³ñèÌ£3Î[¨5Á¦tùÛisúÆÍE“Œãý+ÿ*ÕTy ±YºQâF‰%Èy—å‘å‘åásÞç¼Ïyc?a}Ì<¹ýT-€W <2¾Fý°®ÝŒ¾N;VæX™ceÈŠ&}þC‡z–s¯[Û<Ô½hÞÅüµ¢ûÈÆ¿½ºž÷9ïs^&K0MÀ0MÀ03R/¤^H5¶@àð±Mc«têÜ´Ez×o¯è³ÁCCk6©alf[¶8lA~øoî·¿ßþ~{‹\y¯™vyË{Eè]¿çâ:'Öª~¥U—®“ŒÍɺj몭«F~ý¹`ìLùâˆÇWµ²¯ÅÄ…-:w1—v]0%÷ëªþÚK~`Ê(€aš(€a–Ê$”I(“ûbÁ•‰Ý"i{ÑäŽc¯f}lËX76Û†l²m™ ÿ®”ºRêJ©Ü_xT»ÿ—µÿ¬ßN‹×ÆÛVñ÷]²ÌØ<ü4ç§9?Í!3À«ôç…±³æÓqu¦ÛM|^'Z .¥í»˜#ŸµOò‹þ‡»¹RWJ])Ef`ú(€aš(€aÆ„D!QHÌ}á`_‡6É^ªöM··ŸåçŸû¾¯K^—¼.™œP°Î—>_ú|éÜ ;]ëp¬‹öª_ïÝÓ-·4/›lµ¾B+cû>iܤq“Æ‘Àý9bì ² /7ÖÒ!µJ×#Ë´w÷kÈM·½¹_?õ×XrsA ÓD ³w0ä`ÈÁ܆žõôvXüìiô†àwÌw¹äåÎþ'CZOúÊÿ†Spîû»½óöÎÛ;“ Ï¥%—–\Z’ûOäÊ»¼Ÿõs›´¯•W¿ W,<"Ö[4àÝËæ¾¿sÏ}<÷1ÙòB¾ä~N­l×,´þOºG±}BƒÌø©E÷š8®í ÇiUïæ¾¿úë*Ù€y¡†i¢†Fœ?|þðùÃy°»Këý^Öæµhràçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯äþ3º^͘9ã¼ê¬è~ä+s©~½:NÚµ~]…º_Ö»ŸûÞm¶yØæaäø·ôçÎ?ÍqsÅ‚-zý;/^_±¾Ï7³çŸ¯äÔöÅ¿Ø6okokïÃË/;¼Œã 6ý¹¦?ïò~žö sý¼†ÍþÈ/¯¬çNÑRpßÅ\Zܵa@³¥ ‚—»>u[PÙ¹BlÞ·M=Ô_9¾Ð `˜& `!‰C‡&u]æºÌu™Åâ^¿òÁ l°°Öò…4Ýârh‹wX9BVÛÞóÕøÈ—>ë$§¶+½/nëö—Gúâ±AÙ®³‡ýá9Ãá„oŠ]œíØÿöïÚ&Ù&Ù& ƒ…ÁÂ`ÝdÝdÝdŽ&æâ¢ûE÷‹î­ƒ[·þo¯Êw¯²Â~fµ+!Ÿ|]dzGÛ¯C]¾|fêOõ{°Y0Þ}Êw,ñq·ÿöËŸ§»•–>»¾Ó_ýÕ±ukÞo{ºï•ŠÁn~¾S-òa]õuÕ×UÏš”5)‹G=o”þ¼ÓŸƒù9‹CÊ×8^¹äwÃ|9N[rÝmÏÎ^á:Ï•²EÛ ŸÒjýÈ>“ÿp˜äí²ñï–É öÎÞÚd‡óÜþýÜæ×8êð™M_«*ÿíßÕ_÷ô×@Ž&´Š¦‰EÏJÝJÝÊ£kŽ®9º&\ “ä_Ú¿´i%\ WÂs:ætÌéÈ¡ÀÜ]üòâ—¿ì·­ß¶~ÛLóHµåÕ–W[¾Õn«ÝV»Ì…™ 3rÔS ?õç¦þ<5Íkˆþú¦¿ÖqÔPPÃ4QºÛûn﻽o‰ãÇ%Ž5kÔ¬Q³Æ›_(±²·²·²ŸµrÖÊY+¯»^w½îÊq@Û|<ðñÀ 7TÜPÑÏÙÏÙÏùm6c?ûáØ/ã⎠`.ôç¬þü}[WýµKÓ_Ó8.(j(€aš(€×¸ßâ~‹û-ö÷ÙßgŸáÑã‡G׎«W;.ÿK$vÓí¦ÛM|ið¥Á—v6ÜÙpgÃÛ“nOºÍ€.­MZ›´6~;ðÛß~Xöò–yñâ9$ÿ¯@Ê— .Ü×¹¯s_ç £7ŒÞ0úZÓkM¯5eÎ-ÑŸ×ús\¾ëÏýü_Cô×"ýuIÒ_¯˜s0MÀ@Hxžð<áy¼C¼C¼CBTBTBs Û‰Ë'.Ÿ¸¿;~wü>x8çNΜ;Ì €Üé¯úë†þ¢¿ž03  À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À@Hxžð<áy¼C¼C¼CBTBTBsswxÂá ‡'ÄwŒïß1Á1Á1Á‘9¹;êuÔë¨WüÄø‰ñfÌ8˜¡»¢»¢»ÂÌÐ `à5î·¸ßâ~‹ý}ö÷ÙßgxôðèáѵãjÇÕŽ³È7»évÓí¦¾4øÒàK;îl¸³áíI·'ݞĜ£°=üðá‡?»‰ÝÄnßF|ñmD½æõš×kžÿTW]it¥ÑŸ½÷Ù{Ÿ½·­Ô¶RÛJÝšpk­ Ì9 Û£­¶>Úª U†*C¿óý˜ïǸýåö—Û_ùOu…~úUèccc·éø¦ã›Žß|cðÁÌ9ÓG èn﻽ïö¾%ŽK—8Ö¬Q³FÍoœ•½•½•ý¬•³VÎZyÝõºëuWŽ òã^è½Ð{¡+âVÄ­ˆsZê´Ôi©Å[2Íšÿ4ÿ«.W]®ºp\¤ÒiõãÕW?vîþÜýùÛJõ„­¶NØšú~êû©ïs\ õlÛ³m϶†óÆÌo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À(B‡&MêºÌu™ë²ÿX_Õ¯|°ÂÁÁ#,¬µ|áM·¸ÚâVÎc„Õ¶÷|5>ò¥Ï:É©íJï‹Ûú„ý呾xlP¶ëìaxÎp8á›bg;ö¿ý»¶I¶I¶IÂ`a°0X7Y7Y7™£ ½“ÅN;Y̯¢_E¿Šÿ-].­+µ³¾ñÙ ÷EµÞ›Üô#—Þ›íZ­óðúDdzUçDÞöY.mh{Ö;}ûWáÍ==—ú¯p}6¼ƒ×øÚÑ~±ÿ°b×ü”g»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo04îúé맯ŸŽH‰H‰HÉûò}ÈËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎ*ïÛæ7Ào€ß€‹‹Ó‹¨Û5o×¼]³Ëì.³»ÌÎ{r2í'U\·ºN³gõ3¯Žî^ªqï‚MõÃj}ì›~½£CøϘ¨YNÕ¾ü%ô&—M.›’–'-OZÎñ-šî[ß·¾o–÷äx_¨zÕ¶ÔŠý¡mÜ2¯”èV=àLÁ¦:Mê;2¨ùî+­ï{ytÿÎ9ØþPÞ·­ú²ê˪/;qüÄñÇ‹ÚѤÞ. `hQC]C]ø½q{ãöæe™ÞúCËec»Ø|¾{לÉ1©! ¶BÈû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»å½‚ú¥jèÐúY#clCF¾­TïzÑzW1wµrV…[yÙæ»üØåÇ.™û2÷eîã°[lY°å_<Þy‰Gp×½Ëúœô¶R½ÿeÄ0ïê ïU‹¶ÍÈË6,?²üÈò/Ú¿hÿ¢H<öœx»(€¡)ç=œ÷p^«û­î·ºŸûr|=‡Šã­c:·»êë¥+ûIhé·U$¼fÌŠ 9éÝqYÑT«T-÷}qí6ÚmôÍå7—ß\N´çI‡'žtˆºu7ênîI°·þ¶Ü3éhÛ?½u9•cv„\0¡TëbcCCÏþÙ©³ÿ¤Ve>¬Ò÷Þ=Y²zÉê%¯Æ^½K´çùÒçKŸ/=0zà?ü‚Ž«eTÙ/÷Ul#{íÈ~?&<ägSKõ…°.ÅMúôtõv‹rß—rýÊõ+×/eWÊ®”]Ú>¾ÀÀÛE 8øüáóyz×ìî.­÷{Y›Z…ûxàçvë|Ëçeï;%vJìD´áŠãÇ+ŽyúÌQ¿°ò#Í+ÕGvµì÷u¥Ùå;Y®Ë}ï”æJs¥9yІëé×Ó¯§WZ]iu¥Õ¹÷µJ‹0÷DóJõ©ÑQ6 ã‡ÚÖ²š“ûÞíY½gõžÕZ=ÊÀÀÛE ³w0ä`ÈÁÜ—Ú‡žõôvXüìiô†àwÌ«Nxu|¹³ÿÉÖ“¾ò¿áœûþnï¼½óöÎdÃ|<y<2÷£s³~­šÕÓ~èÛ'ÈÏ|S},faHÂlÇ&㜿Ê}×}·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°ióMµÎ?Ö>´ââ/ƒÒ]g便qïŽ÷žöŽ50ðvQÃŒ ‰B¢˜ûòú¾m’½T3.ŒŒ‰ÛÛÏòóÿ‡Â,y]òºdrb^n$ÜH¸‘û‘Ýz/l‡Ç%í¥úÔÚ(džÇÿ¡0û8îã¸É‰y9ÙödÛ“mÿázõ~‹h÷ ÚKõyûÎ?5ú‡_Ù™»h‹´tÄ)€€·‹f)¡LB™„2¹/©_™Ø-2à‘öê„WÇ;޽švtô±-c5ÞØ}4j®¿…¶S¶©ï° àÐ65ƒ*}gÿ’{Kî-¹§ãN ¼]À03R/¤^H5¶€îð±Mc«têÜ´…¶ë„WÇç½¢ÏW ­Ù¤r„±™9lqØâ0‹ï&êªÝU»«vÆŽ]ù§eÿ*ët{P¯âÎE'ÕßõË >Ö~PëvûÍŒø£ø£ø#ù1M·–ÜZrkIîÕïµ[ÝŸ4¾_tRý2»ÿÝî}º¶ªñ®±9Ùá±Ãc‡‡¹} `àí¢†ÙxtæÑ™GgŒ-š×š`Sºüí´9}cƒŠNð ³ãý+ÿ*ÕTy ±YºQâF‰%È’éxöõ³¯Ÿ}]î‹r_”ûÂðx•»Vö;‹û÷Ózonê^4SõmLÅo;´¯ÛÐî±±T_N¹œr9…,™ŽŒÀŒÀŒ@‡iÓ¦;j¯è¹£INÑLuΰ˜s!÷£ý]j´66?I’.$]0ß Po0ÌÁDÝDÝÄÛÛ[cËå÷ÿî½±©[ѬþÏ»·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆ•)èy³çÍž7–dƒzþÒä ©Î,Þß%øžÿÕT¬`8K6¿Úüjó다I/’H”)’2$eHбTÿåÝ=²ñ4Rµ ¦fÈØðÎתÜ66WO“Ÿ&?5ËÏq§Þ. `˜U–«,WY["O­ÖõhÀrê„WÇ»Ízm \hlÆ&÷œÜsrOrõvm™¼eò–ÉÆŽÑ¹¨N7ý/“äWÇG«ûlmzÜØŒ¬=²öÈÚäêíúÃúë?¬£cJ‡í~÷Hò«ã3ïèè súǼÎØ€âŠ(nŽI .XQK£–F-ÕÏáV‹­[-²zgõÎêÍÌÀ `˜´[Ãn »5ÌX°{OëT/'*cãÑçbüc³—|!ùBò2öæÝ?sÿÌ}£3ߨ¡åŠ‹H¯±1éT§íþFS}|Éñ%Ç—±7ïIÀ“€'ÆŽËŠÊ¡åÜΑ^cãå³]7Ì06{ñâÄ0¯j¼á¢ççÃxÕêKm—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€×TeÝ~­÷Ä~‰Í˸¸wPšëÃ9¬Ò¯J¿*ý²]²]²]HÚ›42sdæÈLÃ#Òê–C§*ót3b‡Ö#·¹k&4?ç>ÎXÕ—Ù.³]f;sÉp½ z彿¹£ À«(€a¢Nذ;agl¡óÉè¾rÐP ƒ¼Œ/»ößâgnÙ§ìÙÜSrOÉ=%ÉÛ›q~Ùùeç—Kõƒj½å¦þ$6/cvJÌÒĺÏ*–·®i8“¾Ùð͆oÈÛ›qÕæªÍUc©¾u¼gÿ&'HlžÆþ±n¡5ÖØ¨¸Àp&—¥.K]–j.© .°ŸKÎ/9¿¤íƶÛn´È3Ê`PÃô<Õ=Õ=õMõMõM5\ÖÜ–âñ„ªàߎ‡³Û‡ûýålçlçlg¢WØÂO‡Ÿ?m8ÿ«G5/ï^Š”þÛñLrÔ ÿ0£ï˜¬Y;“O.t=wöÜÙs§áü/ÜÐô¡ËRúoÇKÛº„Kõóžôü#3Hp!  @ÞQÃ䜶?mÚÞpÓ~ºõœòï匊¹ò’à¿-ÏÕzR¥£áÜîKÛ—¶/ìž”…) S[ Ïò‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µë5Ÿ¦³"fEŒégƒ¸°Q wÀ09Q·£nGÝ6\¸”Jµ]ä}†b ?cÒ¨Nóü×έk¦k¦k¦.K—¥Ë"…aà¶Ûn{Í;Ú·…óüˆdægLÝõyÀùµ=k{Öö¬.P¨ $…aT÷QÝGuÍ;Ú›6Ë©¯#™ùoþÔãQ“‰FŸÙÐ+»Wv/SÎð›D CÀ0!*=¨ô ’Ñ%o!fvH<Å@þGÏõUËÚÌ4œáÔé‡S“Âõô§ï<}ÇècŠöŸbO& àÝíýj®`8ÃIÝ’º%u#‡ëÅÞ{_ì5–êôâý,‚ÈdþÇîÅ+Øo0œáÄøÄøÄxSNðÛB = `˜Õ V7XÝÀpiryé·”5î]Üf¶×kG¨ðÀè;Ûòþ(ÚVý׆x9¬²aõ¿%û~qna5–ëK c¢7»>©«ÿoý÷êÿžÂ+îméíxÛpKzZö´ìiI&óo~Öü¬ùY†3|Ú2ªMÛ¤º0Æ'%ûÎêd¸%­<[y¶ò$“ù·zÿêý«÷ÎðÁ ŸZøF’êÂ_Ø÷û6ø{Ã-ñ´ð´ð4ÑJ•ØQh 0L‚ß1¿c~Ç^ó‡Îý®Ê{%9º§¾_Þ—8óþ7ï\ÜÚÊs‹þ»Ê);ÜâνF½KžÈýïyõÏçÿq¦yútÉŒØBKÝß]Š.…dæGÄþˆý¯©Êžv‹.´ŠTÊø$6:4ÈrKÙ-Ö¼æó­—ä,ÉYB2ó#ºgtÏ螆sû ¸÷‰¦!¤ºðƺ›l3­Ë¿æó­Ëf•Í*kj9¡6w”ÁæŽ&Áp±êT«aå:ÞbúÙ]ZùÿÓwÕË4óS*|q×c¬C=ýwµßR'ÇîHÞÿ†WÿÅ//y\t(ôÇ_‡5vQe­áþ¦ŸI?“~†dlªÿ—„í±á¡ž¤ºðÆ^u\‚ª÷1Üß´éiÓÓ¦“Ìü°“íd;ù5åºkÌþˤºðÆa‡Q2×Åý[*„þZ³wåhýw-nt×ubÞ¿÷ç^A³]#ôßÛâ«ZCª|XØ{úãΆcê4Üß[·2neÌ‚Mu‹j…V~Hª {Oçé¹´3Üß+=®ô¸ÒƒdlªÝ'T¾Qá©.ì=]•ÑìZý‡†û›44ihÒPSË °VQ˜ `˜ÃåÂI{üuNí̱T¨=ßæ´U¯ÿ-z&‡ý÷ïÝr3ìSúï­óí«c…ýpѵãZx¸ï{M©p$éHÒ’Y°©þº«—cmgR]Ø©Þõ õÏÃýMœ8;q6É,ØT÷þÝålõ}¤º°S}àãvÃ|žî¯ððð©å„¸(  0eÀ0 †K„¿F„Þ¨ßÞK…JË[.Õ×ÁŸ?ýÈ·uÞ¿Wÿçõß[Å¿ü‹rv© f´í}ÂpĈ;G2 6ÕsŠ59í¼šTvª¶ëàä·Èpwß=~÷x’Y°©ÛÍ/°Î:R]Ø©NîÔ9´QÃý]gµÎj•©å„¸¨ÉOÌì `˜ÃeÁ-Éa­=–šc©PîLÙáwþ÷>Ú5VùïÈû÷êÿ¼þ{_ý{ oOdw(é7ÁoÄ/ ¡Ûê{‘êB¯Ê,;×kôy{3f÷m²Ðy©.ìTÿy¶ÛñÆ É´‡×À…&ÁpApçÚÖ=·›ûcE}ûé¾ÿâá¨Ö¶Ûìk£ÿÞZÛmìÊ?-ìRáÄýŽã`úÍXóQó5îýHua§úâ¬.#"ooÆB«¦»\ŽêÂNõµ?»?j|—¼AKÊÏ+?¯ü<^ `˜-½¸qeûy·è¿kûžð^žÁyÿ^ýçPê¿÷Õ¿‡wó`RÍ;€ypQN5ïï@ÞQÃ$.šïgwœ]wK5ýw-· ‰të™÷ï]V3ø…[]ý÷FýàT²ÚàÂ.Œ}ðBÿ…þ ýãßåë¿Ϊù~°y¥ÚØgÏè?£ÿŒþ$³`Sm¾Ÿl^©6öÀ?ÌýaîsM-'aaa†[ˤկÕ#VX="040404ïÕï‚w¼»à]^ `˜ÃeÁI{üuNí̱TzÌÓÃáåS[çïíïåý{»×q®eÿ¿Ï•&xÎp8QØ¥ÂÚq-<Ü÷îoÒ‘¤#IGHfÁ¦úë®^޵Iua§z׃ÖsõŽØ_{¾Íi«^V;,ë–í¨ÿï¶ÎßÛß;øó§ù¶~“û¸o}›t¯s†{º¾Ëú.ë»Éü;5ñÔÄS gxFzãÈzûIuaŒ‡¬>]à»ÒpO—TZRiI%2™){Sö¦ì5œáQs|Î;'Õ…1ž Œ’üëîéÔESM]dš9¡6”¾ZE “ð8óqæãLÃEF¯äªcmμ­O~µ`(ì¿çÍì?!ÄžLælÙ¯Öá*†3œÔ-©[R7rX°^ì}±÷Å^c©N/ÞÏ"8€Læì^ܹ‚ýÃNŒOŒOŒ7å„P¿-”¾Ð£†É‰ºu;ê¶á¥Tªí"ï3Tù“Fušç¿Þpn]3]3]3uYº,] , · Ü6p›áÌoÛ^Ìó#’™Ÿ1uv×ç{ çÖö¬íYÛ³º@] .†QÝGuÕÝpæW7m–S_G2ó3Þü©Ç£&þ:T¯ì^Ù½L9Ào¥/ QÃ䜶?mÚÞp±Ò~ºõœòï匊¹òzà?¾Kò\­'U:Îí¾´}iûÒÈ^áIY˜²0e¡ÑO¨õ‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µËpVWĬˆYcúÙ .l”¾È0LÏSÝSÝSßTßTßÔ×¼c2",Åã õÀ¿g·÷³4ú~2çlçlg¢WØÂO‡Ÿ?ýšwLŽj^Þ½)ý·ã™ä¨þaF¯];³vfmRWØzîì¹³çNÃù_¸¡éC—¤ôߎ—¶u 7–êç=ÿèùGf àB@é €¼£†‰:awÂÍ'£ûÊAC© ò2¾ìÚSˆŸu¸eŸ²# grOÉ=%÷”$ooÆùeç—_f,Õªõ–›ú“ؼŒÙ)1KCë>«XÞº¦áLnøfÃ7¾!ooÆU›«6WmŒ¥úÖñžý›œ ±yûǺ…Ö Xc? âÙ\–º,uYª¹¤‚¸À~jPúà?¡†I‹5>j¼áâæçÃxÕêKa—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€Ã#Òí×zOìؼŒ‹{¥¹N1œÃ*ýªô«Ò/Û%Û%Û…¤½I#3GfŽÌ4<"­n9tª2O7#¶qh=r›û¸fBósî㌾£½]f»Ìvæ’ à{´4jiÔRJ_ü[À0i·†Ývk˜±åÎÝ{Z§z9Q>ïã'›½ä É’/±7ïþ™ûgîŸ1v\6vh¹¢Á"ÒklL:Õi»¿ÑT_r|Éñ%dìÍ{ð$àI€±ã²¢rh9·s¤×Øxùl×Í3ŒÍ^ü€øñÌ+À%åJÊ•”+”¾ø·(€aVY®²\eôókS«u=°œ áÕñn³^[›±É='÷œÜ“\½][&o™¼e²±ct.ªÓMÿË$ùÕñÑê>[›76c#k¬=’Oü}Ëþ°þÃúkcÇè˜Òa»ß=’üêøÌ;::è\ù§eÿ*ëd8cŠ(> ¸9&¸`½ú>`J_ä0ÌÁDÝDÝÄÛÛ[cÕÂý¿{olêFð|[ô“àzuã+·~Í\9¥;¥;¥¿L{™ö2X™‚ž7{ÞìyÓXªÿÔó—&OHufñþ.Á÷ü¿¨¶ bÃY²ùÕæW›__$½Hz‘D¢LÁ”!)CRŒ¥ú/ïî‘§‘ê¬15CƆwv¸Vå¶±¹zšü4ùi²Y^Ù(€€·ŠfãÑ™Gg}pn­ 6¥ËßN›Ó76( hÖ ÇûW þ3Tª9¨ò@c³t£Ä7J%Óñìëg_?ûºÜå¾(÷…áñ*w­ìw÷ï§õÞÜÔ½ˆ–d߯T ù¶Cûº íKõå”Ë)—SÈ’éÈÌÌt˜æ0ÍašÑ_nXÑsG“œ¢™êœa1çBîGû»&Ôhml~’.$]H2ãGôSo0ÌÌ…Ô ©R-š;|lÓØêƒz'7mQ„ÞõÛ+úlpÅÐКM*G›™Ã‡-³øn¢®Ú]µ»jgìØé{{P¯âÎEè¾ë—|¬ý :×íö›ñGñGñGòcšn-¹µäÖ‹\]»ÕýIãûE'Õ/³ûß éÞç¡k«ï›“;}4j®¿…¶S¶©ï° àÐ65ƒ*G›‡%÷–Ü[rOÇx»(€aÆ„D!QH̽ZØ×¡M²—ª½:!q{ûY~þ¹ïûºäuÉë’ɉyI¸‘p#áFîGvë½°—´—êSk£Ï}ßã>Žû8îcrb^N¶=ÙödÛ¸^½ß"Úý‚öR}Þ¾óO‚sß÷¹‹æ.š»HKGœx»(€aö† 9’ûòúгžÞ‹Ÿ=ÞüŽ?>tgÿ“!­'}åÃéê„í·wÞÞ™l˜¯ã‘Ç#Gæ~”cnÖ¯U³zÚ}ûù™oª³Å, I˜íØdœóWÿP~·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°i3®~ýcíC+.þ2(ÝuÆ?üBÃ{q½cM ¼]ÀЈó‡Ï>Ø"vwi½ßËÚ¼ê„?·[ç[>/{—Ø)±Sb'ò  W¯8^qÌËqßâVÞc¤y¥úÈ®öý¾®4»|'Ëu¹ïÒ\i®4'Úp=ýzúõôJ«+­®´:÷ã¾ViæžhfïbeÓ0Þq¨m-«9¹ïÝžÕ{VïY­Õ£L ¼]ÀД‡óÎ{8¯ÕýV÷[ÝÏ}ñ½žCÅñÖ1Û]õõÒ•ˆý$´´  Y±1¡!'½;.k82ðƒêa•ªå¾/n£ÝF»¾¹üæò›ËÉ€ö<éð¤Ã“Qw£îFÝÍ= öáÖß–{&mû§·.§rÌŽ“{ îÙ?;uöŸÔªŒÃ‡Uúæ¾/ÕKV/Y½äÕØ«±WcÉ€ö<_ú|éó¥Ñ£FÌ= Ö®–Qe¿ÜW±ìµ#ûý˜ðŸM-Õºk4éÓÓuÖÛ-Ê}_Êõ+ׯ\¿”])»RviûøRo0´¨¡®¡®aÜÞ¸½q{óòîIë-[”ýíbóùî]s&Ǥ†<~[EÂÖ„°5gëDÛ~o•§w3Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»YäÙ/UC‡Ö·ÈcòÖÞ¼ëEë^ÅÜÕÊYnåe›ìòc—»dîËÜ—¹Ã^lY°eÁ–yOõà&®{3–õÿ(8ém¥zÿˈaÞÕÞ«m›‘—mY~dù‘å_´ÑþEû¢pL)€€·‹wýôõÓ×OG¤D¤D¤ä½`yY³fåÆë|Z|ã~ýúW=›”*Øòàî罤À¸-»Â‚<æGNuöM¿ÞÑ!|‰gLÔ,'‹j_æ}Û\6¹lrÙ”´;ᾨÖ{óƒ›~äÒ{³]«u~BŸˆLï¡êœÈÛ>Ë¥ mÏz§oÿ*¼¹§çRßà®Ï†wð_;ºÑ/öVìj‘»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À€îö¾Ûûnï[â¸Äq‰cÍ5kÔ¬ñæ++{+{+ûY+g­œµòºëu×ë®äǽÐ{¡÷BWÄ­ˆ[ç´Ôi©ÓÒ·UMóŸæ?ÍÿªËU—«.äÇéô@ZýxõãÕÝŸ»?wþ¶R=aë„­¶¦¾Ÿú~êûCÀÀÛE ¼Æý÷[Üo±¿Ïþ>ûû =<ºv\í¸Úqù¯ ì¦ÛM·›>øÒàKƒ/íl¸³áΆ·'Ýžt{sŽÂöðÇ>üPì&v»}ñmÄ·õš×k^¯yþS]it¥Ñ•FöÞgï}öÞ¶RÛJm+uk­ ·&0ç(l¶>Úúh«2Tª ý~Ì÷c¾ãö—Û_nå?ÕúUèW¡_Œ]Œ]ŒÝ¦ã›Žo:~cðÁ73çL0Pž'UÓÔ45M}¬>V«ÔGê#õú@} ÞWï«÷Õ»ê]õ®zG½£ÞQÿVÿVÿVo©·Ô[ê õ†zC½®^W¯«©©©WÕ«êUõŠzE½¢¦ª©jªzI½¤^RSÔ5E½¨^T/ªçÕóêy5YMV“Õ$5IMRϪgÕ³êiõ´zZ=¥žRO©'Ôê õ¸z\=®UªGÕ#êõˆzX=¬V©‡ÔCj‚š &¨Ôê5^WãUEUTE•UY•UQUQTAÔýê~u¿ºOݧîS÷¨{Ô=ênu·º[Ý©îTwª;Ôêu›ºMݦnU·ª[Õ-êu‹ºIݤnRWWW7¨Ô êzu½º^]«®UתkÔ5êuµºZ]­®RW©«Ô_Õ_Õ_Õ_Ô_Ô_Ô85NS—«ËÕåê2u™ºL]¢.Q—¨‹ÕÅêbu‘ºH]¤.Tª Õùê|u¾:O§ÎSç¨sÔ9êlu¶:[ýIýIýI©ÎTgªÓÕéêtuš:M¦NQ§¨SÔÉêdu²:I¤NR'¨Ô êxu¼:^ýAýAýA§ŽSÇ©cÔ1êõ{õ{õ{u”:J¥~§~§~§ŽTGª#Õêu„:\®W¿V¿V¿V‡©ÃÔaêPu¨:TýBýBýB¢Q‡¨ƒÕÁê`u:H¤~¦~¦~¦P¨ÔX5VUû«ýÕþj?µŸÚOí«öUûª}Ô>jµ—ÚKí¥öT{ª=Õîjwµ»ÚMí¦vS»¨]Ô.jgµ³ÚYí¤vR;©ÕŽjGµƒÚAí ~ª~ª~ª¶SÛ©íÔ¶j[µ­¡F¨jkµµÚZ WÃÕpµ•ÚJm¥¶T[ª-Õæjsµ¹ÚLm¦6SCÔ5D VƒÕ`µ©ÚTmªªj ÚDm¢6QÔ5@m¤6R© Õ†jCÕOõSýTÕGõQ½UoÕ[õT=UOÕCõP=TwÕ]uWë«õÕúª«êªºª.ª‹ê¢ÖSë©õT'ÕIuRë¨uÔ:ª£ê¨:ªµÕÚjmµ–ZK­¥ÖTkª5Õêjuµºj¯Ú«öªj§Ú©UÕªjUµ²ZY­¬VR+©•T[ÕVµUmTÕFµV­UkÕJµR­Ôrj9µœj©Zª–ª…j¡Z¨eÔ2jµ”ZJ-¥~¢~¢~¢–TKª%ÕÔÔÔÕÕÕj µ„ú¾ú¾ú¾ú®ú®ú®Z\-®W‹©ÅÔbŠNÑ):%[ÉV²•,%KÉR2•L%SÉP2” %]IWÒ•çÊså¹òTyª-Ÿ’Oɧäò ù„|\>.—ÊGå£òùˆ|D>,–ˇäCò!ù |P>(Èô/ ô—Y’%Y’EY”Eùùùy¿¼_Þ/ï•÷Ê{å=òy¼KÞ%ï’wÊ;åòvy»¼]Þ&o“·É[ä-òy³¼YÞ,ÿ.ÿ.ÿ.o”7Êåõòzy½¼N^'¯“×Èkä5òoòoòoò*y•¼J^)¯”WʿȿȿÈ+äò 9NŽ“ãäeò2y™¼T^*/•Ë‹åÅòÏòÏòÏòBy¡¼P^ /Èóäyò•>•>•ÚIí¤vR[©­ÔVŠ"¤©µÔZj-…KáR¸ÔJj%µ’ZJ-¥–Rs©¹Ô\j&5“šI!Rˆ"KÁR°ÔTj*5•¥@)Pj,5–KR€ ùKþ’¿ÔPj(5”|%_ÉWò‘|$ÉKò’¼$OÉSò”H ¤’»ä.¹Kn’›ä&¹J®’«ä,9KÎR=©žTOª+Õ•êJu¤:R©¶T[ª-9H’ƒTSª)Õ”jH5¤’½d/ÙKÕ¤jR5©ªTUª*U‘ªHU¤JR%©’TQª(U”l$ÉFª U*HV’•d%•—ÊKå%KÉR²”ÊJe¥²R©ŒTF*-•–JKŸHŸHŸH%¥’RIé#é#é#éCéCéC©„TB*!½/½/½/½+½+½+—ŠKÅ¥bR1©˜¨u¢N̳Ål1K̳ÄL1SÌ3Ä 1CLÓÅtñ™øL|&>ŸŠOÅ41ML‹ÅÇâCñ¡øP| >ˆ÷Ä{â=ñ®xW¼+Þo‹·Å¿Å¿Å¿Å›âMñ¦xC¼!Þ¯‰×Äkâ_â_â_âŸâŸâŸâñŠxE¼,^/‹—ÄKâ%ñ¢xQ¼(^/ˆÄd1YLωçÄsâYñ¬xV<#žψ§ÄSâ)ñ¤xR<)‹ÇÅcâ1ñ˜xD<"ÅD1Q<$‰ b‚˜ ˆÄx1^Œ×¿ü×ÿØõQq¿¸_Ü/î÷‰ûÄ=âq¸[Ü-îwŠ;Åâvq»¸]Ü&n·‰[Ä-âq³¸YÜ,þ.þ.þ.n7ŠÅõâzq½¸N\'®׈kÄ5âoâoâoâ*q•¸J\)®WŠ¿ˆ¿ˆ¿ˆ+Äâ q¹¸\\..—‰ËÄ%âq‰¸X\,.‰‹ÄEâBq¡¸Pœ/Îç‹óÄyâB/¡—ÐKè)ôz Ý…îBw¡›ÐMè&tº]„ÎBg¡³%D QBG¡£ÐQh/´Ú Ÿ Ÿ Ÿ ‘B¤)´Ú m…6B¡.„ áB˜&„ -…–BK¡…ÐBh!4š Í„P!T‚…`!X‚„ !P…&B¡‰ B#¡‘ÐHh(4 ~‚Ÿà'ø>‚à-x Þ‚§à)x „BÁ]pÜ7ÁMp\WÁUpœg¡žPO¨'Ôê u…:B¡ŽP[¨-ÔÁA¨)Ôj 5„B Á^°ì…jB5¡šPU¨*TªU„*B%¡’PI°l[ÁF°lkÁZ°¬+ÁJ('”Ê –‚¥`)Xü?öî<®ÆüÿÿøŒÙƒì"ÙRh‘Ò2H$ƒìk©0v#ÛXÆ6Œ±ÌhìfÑØ÷ݹš‘}IˆlÙ…’(ÕùýñþüÑ÷wºŽÃ9§Î9=îçv»nsû|tÎu½¯çUïëõ:×uEšEšE–Š,Y*²Dd‰È‘ßD~ùMäב_G~Y,²Xd±È¯"¿Šü*òËÈ/#¿Œü<òóÈÏ#‹D‰,ùiä§‘ŸJJI))¥)GÊ‘²¤,)Kz'½“ÞIR†”!½•ÞJo¥t)]J—^K¯¥×Ò+é•ôJJ•R¥Té¥ôRz)½^H/¤d)YJ–žJO¥§Òé‰ôDz$=’I¥‡ÒCé¾t_º/%IIR’tWº+Ý•îHw¤;Ò-é–tKJ”¥Dé†tCº!%H R‚tMº&]“®JW¥«ÒéŠtEº,]–.K—¤KÒ%é‚tAº —ÎK祳ÒYé¬tF:#‘NI§¤SR¬+ÅJ'¤Ò )FŠ‘b¤cÒ1é˜-EKÑÒéˆtDŠ’¢¤(é?é?é?IPH I!”J¥Ò逴OÚ'í“öJ{¥½Òni·´[Ú%í’vI;¤Òi»´]Ú.m•¶J[¥-Òi‹´IÚ$m’6H¤ Òzi½´^Š"¤i´NZ'ý-ý-ý-ý%ý%ý%­•ÖJk¥5Òi´JZ%­’VJ+¥•Òri¹´\Z&-“–IáR¸.ý.ý.ý.ý&ý&ý&-–K‹¥EÒ"i‘ô«ô«ô«´@Z -æKó¥ùÒRo©·Ô[ê)õ”zJÝ¥îRw)@ ¤®RW©«ÔEê"u‘:K¥Î’¿ä/ùK~’Ÿä'u”:J%_ÉWò•ÚKí¥öR;©ÔNj#µ‘ÚHßJßJßJ^’—ä%yJž’§ÔZj-µ–Ü%wÉ]j%µ’ZI®’«ä*¹H.’‹ä,9KÎ’£ä(9J-¤R ú¿8€IDAT©™ÔLj&ÙKö’½ÔTj*5•šHM¤&Rc©±ÔX²•l%[ÉF²‘l¤R©T_ª/Õ—êJu¥ºR©ŽTGª%Õ’jI5¥šRM©†TCª!U—ªKÕ%KÉR²”ªJU¥ª’…d!YH•¥ÊReÉ\2—Ì¥ŠRE©¢TAª UÊIå¤rR©ŒTF*-•–JK¥¤RR)©¤TR*)}#}#}#—ŠKÅ¥bR1©˜TT**•¾”¾”¾”¾¾¾>“>“>“ŠHE¤"Ò'Ò'Ò'ŠEŽ"G‘­ÈVd+Þ)Þ)Þ)2™ŠLÅ[Å[Å[ÅÅÅÅkÅkÅkEš"M‘¦HU¤*R)ŠEŠâ…â…â…"Y‘¬HVõúÔëS¯`Onûš÷5ïkNظo¸0§(§jNÕœª>Ý|ºùtË=2¿VøµÂ¯Œ}dÆ­·fÜúQRYRYòäГCO»uìÖ±[½vzíôÚÙ {ƒî ºWˆ¨Q!¢Þøzãëo}«õ­Ö·F>ùtäÓ£1GcŽÆˆ=Åï€ãÇ; ö<ÚpÖíû_ì±Ï½níÛ´oÓ¾ çÈŒ `À@g'®r*Í©4§Òœ´=i{Òöäÿz¦/M_š¾Ô<Ì<Ì<Œ°q¡lŒæL3uÎÔÜcb}Ôú¨õÑ×ë^¯{½Îx·+»avÃ솵v×Ú]k·!üƈJ‹J‹J³?bÄþÈÇeµQÕFUUå7Àñp¼s¼£`Ï£ gÝÄ9{î»ø?øyÀÏØwŒ `À ž‡Õ½tuâªÞ»-v[ìòÛ·§oOßžþ¡kKf  `ã?7~nüÜrÑå¢ËEç“¥«–®ZºÊØÇ俲ÿ•ý¯lÁþÆ×ôŒ(6¢ØˆbºÍmè ÐA¡ƒDœß<Ç;ÀñÎñý1üsÏ%±Kb—Äæ^C1ÿ6äÚkC؃Œ `ÀÒ“LíO8?´ÑëÛ^ßöú6ÿOqû?ëÿ¬ÿ3ÀÆèÀ°Ã {dE'm_ê÷¸öï/^¹Ëˆ…hW•T–T–l;¶íضcsª¸9áÛñoÇ¿oì›0#`FÀŒ‚ú!JÃÁÓƒ§Oçë Ç;Ç;ÀñÎñnJçæ†¶†of¿™ýfv¥u–ÖYš{=s?ä…ýÀðѦ @!=ÉÌÿpÅðŠáÃ_E¿Š~Ÿ'®UzTéQ¥ `°Çõgݦu›ÖmRÕÕÖ«­W[ûoì»±ïÆ¾›Õ籩rppX?eý”õSn™Ý2»e&Zïâ¿ÿýåß_þýÅqœã8ÇqêßgA­µÔ"Õ(œ8ÞŽwŽwäÿY‰a®çòþËû/ﯺ¶"uìG†0 ` éI¦¾ÀV)V)V)ªÿ»(µäÏVï:±ëÄ®ªë úL#ÚŒÏÇÉÉÉ©\?¸~pîñ¬fSͦšñ^ûûÎçÏ;Ÿßývè·Ce/•½TöRAåçAøƒðá•C+‡V•ûôa͇5Ö\“<Š2:dtÈh¹w_šy8çᜇsH8 ŽwŽwp¼s¼£`ÏJ s=Åש-|,|,|r¯mÃv Û5lÇ9ÃG˜0…ô$Sß àᕆW^Iõï>¦û˜îcòçtqàÙgžÕ|ÝhràCÉ] J–†?¶¢`z³ÑÍF7‰¯Œ„ 6Jµ¥]Pùôß ÿý'÷¹]ÿêúW׿>øMK*K*Kv>×ù\çsrïœûv”ä¦ããïïï†yVbÈk+÷Å‚UMW5]Õ”½ ÀѦ @!=ÉÔw8êó¨Ï£>Wýß+DTˆ¨‘r7ånÊ]ým¯¸îPõÛÊBî§´Òä(`ks”Õ]wvÝÙªãy4æhÌÑÃÛÓ­N·:Ýʵk׺zºž>ÖóQØ£°Ga¥SK§–NUýDó0ó0ó°{Çî»wìãÖáν;÷îÜ“Û"ñ¹C‡>%í0^ïïàxçxçx7ü³C^[¹óúÜ_§`Ÿ0L4€iPHO2õÝß»¯y±æÅšUÿ_ñ+ýmïž{6îÙ(wcê,—,—,Úìqmü}ò”+åTÍ©šSÕ0×\î÷ƒ¡ˆ—X6bÙõ·…ÔþS†tÒeH¹OYÑiE§8F`¼8Þ9ÞÁñÎñÎñnøg%†¼¶bV_gi¥u–ò<`Æ…0 `F@<§Gá¦pS¸‰Ó¡Ö·Zßj}K”˜Ëï)¿§ü1u+áV­DÿgýŸõ¶Ù}³ûf÷ÔK©—R/é{ _”zQêE)ÑÐê÷u¿¯û}ÝÒ©¥SK§Z»kí®µ;÷Šï#÷{×ï]¿w†o¾a¸øYý­Û‰‰y¿äþ½¸.sIì’Ø%±«t¬Ò±ŠÝm»Ûv·+†W ¯^½TõRÕK5ÿ½ùïÍ7ѬY#²I.$]Hº¾ |Aø‘çç籆âÛÜb=E²±²±²±ò»¨ï¢¾‹šä5Ék’—¸2U´'õ}’©ï°ø7#2GdŽÈ”»­™þNw·nÜ®ú¹ß×ù¾Î÷uô7&Æ’ ¹ß ê?ܽ|÷òÝË?)~Rü¤hÔ.¨]³³³¸ª[l‹ÇyóçÇO?mü´3Ï4>ÓØK-†Yv1ä¿)¹¹e»e»e«Žä¬øcEC.fK¸íضcÛŽ•ûDq´jÿéÇ—_~|¹Ü§øtóéæÓ1ŒÇ;Ç;8Þ9Þ9Þ 1~uâw¿›øêš{ö<ìy˜,0L4€i0T%•%•%×mZ·iÝ&¹+5! åâ¿Óö¤íIÛ£«|ý*úUô”ÚSjO©ûS>T¹èrÑå¢Åë㦸šŸÊЦo•UzTéñ¡[¡ÇI¿!'¡¤²¤²äÖš[kn­éþÜý¹ûs]roiFHFHFˆö{\%M~6*-*-*M.ù/S^¦¼LÑmdĈUu©êR5k|ÅWô^î1Èl|è¾Ëý».hmÐÚ µr·ª3„ç¨év«óŸ±üMÎZµ:k%·qëãÖÇ­7ä2ÐÉ¡'‡žêWüÃ^ù™ŸçÕžW{^Mîˆ_Æ¿gtõ·Ì²še5Ëjr7ŠëÃäƈããïïï†ÆÀâ ÍrGÊùWç_Åž`hhÓ`pÄIˆ¸¶L·­¬ÜÏ)Ôf Eá»öºÚëj¯ÓíZµ>j}T·'êOeÅÍ|ÆDމ©ýú‹SV]­¿!'A´Uf̘a¦g^;½vzíÔ|m ­¬þFТµ¯Ûß!ûæï›¿o~7þÄê«Or_A«r!gãC÷Ýõ^×{]ïeÄþˆýí×6wSÓpJ-†Pv1®¿)¨£nŒº¡ú‰âŽ…§T§¿üä~‚²*qoÝ~bçsÏu>'÷‰Ñû£÷GïgŽŠÂƒã €ããù™:cYsqŸ*ÕõÏ]Sbÿ04€i0 ÏZ>kù¬¥¸-ªþZ&¹¯ üÐ5·c’»²PWr_ƒ«¿ZñÿN͘š15C·ë/n­ÍúrÄÕÃŽãÇ9Ž3ËGíÛ´oÓ¾öMÙüo #ŸŽ|:ò©\™C·'ŠÁÓƒ§O×äyZº-÷~64ßö—Ÿ¼üäå'ª6ªÚ¨ªn×V\m°Ån‹Ý;Ó.ð™êßñµ!¹vu0”êô—ŸÜOæS5gꜩs¦êösgÿ:û×Ù¿Ê}âjëÕÖ«­)ê¡ðàxçxÇ;Ç;ò3uƲæâ¾Pr_²×Ùõë #4€i0âAñ±ÈŒúõÄ¿W¿†}Íó~©g¹ŸÒU¹äÈ•#WŽ\‘»]­®žZšÙ#³Gf¹IM¤&R“Üë¦ÛrágCó}—»1Ÿ›¸QÞî»ì>ð üAøƒpqÜÝlt³ÑÍFkʯ)¿¦¼Ó`§ÁNƒ5¿M±©øLõoŠÈ­Ü§¬l½²õÊÖ4€µ'wµ ž÷¬Ûϵå>ñ‡…?,üa!bïïàxçxG~¦ÎXÖ|yÿåý—÷—KTlïØÞ±½Ù¿  `À ¯~µð+õWŒý¾ù÷Í¿oß(ÔdŠ|ºÕéV§[©?[øváÛ…o5y·={ʽOÙKe/•½ôç£?ýùHó­7¿ÍÝQÕ}L÷1ÝÇhsJ ÷ζ mÚ6Ìý¿ ^4xÑàE¢…¦þÿ>ù÷É¿OªÛ[sCN‚hΩ6§¸ñ¯h‰éöŠL¡ë_]ÿêú—þnù«¿÷­ýZ»kí®µ[õ_þuõ¯«]Õþ7ÉÁ>ûì£ÉÍŸu;&Ƙ ͯ-s¯Ì½2÷Äõš¼³gMÞ¹Cýõ;ÔÏÏ’‡á4€÷oÊ$¯I^“¼äÞÿ|‘óEÎ)<¥:ýåÇ×Ñ×Ñ×Qî³rß@RWŸ(÷5ÿ}ù#Ë/Ë/‹1 ŽwŽwp¼s¼#?Sg,k~¦ñ™ÆgË%êÇŠ?Vü±"‰`8hÓPÀÄ5d"*DTˆ›Dþ¯á÷QÄ 6åÞY<—T\Mõq§L‚(ÓÜ4W”ìÕ¿¿8ÔÇ ­àqÞã¼Çùw>ï|Þùh¾¹›7ªê×®lJIˆ¬Y#²†Ü;ˆç¤¾Š~ýJ«ë__|}ñu]ª¾KúžrßyÏ}ý¢6¿OB… ¤úþâÊuý‰1fCóð²ËF,ñqëôý÷lܳqÏFõ·x5¥$„/_¾@îg­ðk…_+hªsmȵ!׆¨¿.ÐpJúž¹¿Õ®º]ɶɶɶ·&¢íT½TõRÕK©¾¿ÂMá¦pS]+]‰1fCó+tµYgqå·úç"ç¾E¹)øLïoŠxʵ¸"\õ=½ÿöþÛûïÂVªÓ_~++Ë~¢¸ë€n?ñIÏ'=Ÿô”ûĦš^hzY+ Žw2ŽwŽwägêŒkýs7zU«@éKÓ—¦/e/04€i(0â6¡ug×]w¶n“ªr¿ªÜ74ÎýS¢¥þvš—÷]ÞwyŸök(žú)÷)âû•÷œTõ'´âZ®[ç®7\o¸jÂløIÆn»uìÖÜ׺å~‰Ÿêàä-×­­ ¶Y«÷Ì©šS5§jíuµ×Õ^§úï×¾Yûfí›[“Ü-^Õ›?Ë]•¨«11ÆlhÒÎ}ûtmV|ßü}ó÷ÍWÿûíå'/?y©÷YqÁ6€ýoÊeÿ+û_Y¹÷Ì}µwá)Õé/?r7ÌÄtû‰)wSî¦Ü•ûÄzãë¯7ž¹+ Žw2ŽwŽwägêŒkýs?=Z•¸ã{€! L@99ôäГC妌M^4yÑä…®>K\…&wu`îÉkîŸÚ¿3~g¼Ü:88èvLÔ_'·wÅÞ{Wèö„v^çyçuþ¸SŽÜ·ŒÖæ„Ùð“ŸÄ·eMµ,Œ‰9&2gP÷+îWüãÖgXóa͇5×üæÏù_î1´l¨Ý^  ¾ñ/ˆ; ä©%?÷¸±ÿMY»$vI¬ú[…ÓÖ•Ê¡•C+‡Ê}–¸ùžn?Q¼§Ü'V³©fS͆¹+ Žw2ŽwŽwägêŒký—®Zºjé*¹\å¾?û@Á¢L@Qÿ<ËÉ“&;èvÊxÿßûÿÞÿ÷–Ùÿÿzú8ôq¨êgýXñÇŠ?V”[ß?)~Rèv §'LO˜ž ÛOTB»­Ü¶rÛÊl[Ñð“ŸÄóPM»½?zô~Õ/n-û´ýÓöOÛk¾â r«««ÍoþœÿåCˆú÷™ZtjÑ©Eu;£ÏŒ>3úŒÜ'ÎÜ2sËÌ-úù‚ÝãÆþ7eDæˆÌ™rï¶Éo“ß&?ÀºR:µtjéTÙÏ*©,©,©ÛO_ÔÐÇŽwŽw€ããêSg\ë¿~Êú)ë§Èå*÷¾Ù×  `À Lï½[ôn!7eÜb·Ån‹]ÁNÅsgåÖp׉]'vÐínÿbûÛ¿ûDÿDÿDÿDݶyÄ-‘ ö„Ùð“ oâZj±¥5îÔ¸SãŽi7€Õ_ºÚzµõjkÍ×*²FdȪï#®ó–»ùsþ—{ -êß'÷ï"]mKÄʈ•+å>±ËŽ.;ºì0í°±ÿMñuôuôu”{7ñe Óž·äg~ÌÃÌÃÌÃä>+#$#$#D·Ÿøfö›ÙodÄPiN¥9•æ0wEáÁñNÀñÎñŽüLq­ÿÁ>ûì#—+¿,¿,¿,À  `À ŒK[—¶.m妌qëãÖÇ­/Ø)£Ã.‡]»äÖ0Á7Á7ÁW·Ÿ?7~nü\¹O7óÔí ­¸¶`O˜ ? Ú×§Š+ŒEƒdyÿåý—÷OõéæÓͧ›e5Ëj–ÕÌ4f8¥ mÞ3÷sssËÝdÒd†W^ix%Õ÷ÒeH—!] §ÜchÙPÿ>×{]ïu½—n·÷BÒ…¤ IºýýfGAáù›"nÈ/÷ng­ÎZµ2íyK~æÇú¨õQë£rŸ%žç§ÛOÏá–ûÄšk^¬yñCÇšd†qÐ~ 9Þ9Þ9Þ9Þ9Þ9Þ+«ÆÞ>Ýêt«Ó­äFÀþˆýû#Ô<À4€˜ÝtoÐ]nÊø¡·ÕõO¬|^íyµçÕtû‰b«å>±~pýàúÁº=¡ÏÄ-ØfÃO‚zb OL<1ñÄħgœžqú»¨ï¢¾‹Rß,Éÿò‡¡½çñåÇ—_®úSâÆhOz>éù¤§&#/w]lî&T¹Ç³¡þ}ôñûíQØ£°GaºýýfÈ>Óû›Rkw­Ýµv˽ÛíOozûSÓž·äg~UmTµQÕüü˨þëó¡cB4„8ÞÁñÎñÎñNV5aãš'VO¬žX]nêή;»îljž  `À L•UzTé!7e·**Ø5¬^1¼b¸ÜföÈì‘ÙC·Ÿ¨þMbÄ í„Vû÷7ü$¨JÛ“¶'mxj©¸Õ°®NÅm¸ CXÜZœªþìÊÖ+[¯l­þ}¢Ò¢Ò¢ÒTV\5«þæÏúcɆú÷ÑÇï·ô¥éKÓ—Ê}¢………¾Ü‚mûßõ7-ÔÇ5+†&?óã4Øi°Ó`¹ÏÒÇ5úê¯wppøÐ1 !Bïàxçxçx'«šŒ°qÍŠ_”zQêE©‚=³MЦ  À”½TöRÙKrSFqsÔ‚]Ãü/Ö‹–•Ü'–‹.].ÚÐNhµÃOBn¢é¨þJ>MˆVJK§–N-‚Ö­ Z»µæÖš[k¾^÷zÝëu…¡,Œ[3n͸5ª?Û.¨]P» õï3"sDæˆLÕŸ :(tPþ‰qe#ÿÀâ=uûûÍ |¦÷7E\o,¿«=?’;%wJ–û¬¨Ï£>ú\·Ÿ(÷õúÔëSoñõÅ×_—šHM¤&w/ß½|÷²úQ*< à˜y1óbæ©þ¬h5=œópÎÃ9ª?%n­,÷ ­ƒ}ö9ØG“uÐÕ˜c6Ô¿>~¿=kù¬å³–rŸ(÷2ã-ð™Þßñ]~¹wŸeÚó–üÌÜ—c„u›ÖmZ·I·ŸûÏÁþsPîÇDމiŒJ€ããàxçx7üÔ×ú«?˨êRÕ¥ª {€! L@iz¡é…¦䦌wîݹw§€¿3è°Ëa—Ã.¹5¼ázÃõ†«n?Q¼§Ü'Šõ1´Zíßß𓠮̫³´ÎÒ:²7° Ë~_÷ûºß×—÷]ÞwyŸ6ã\xÀÊ’Ê’Ê’õÆ×_o¼ê;,±lIJªïväÊ‘+G®¨þ{qógͯ¤Ô~ý7êßG7 »:áê„«ä>Ñþˆýû#ù_jÉϲ‹±ÿM‘»a»à›à›à[ØJuúËÏŠN+:­è$÷YÓ¦'LOÐíçŠç”Ë}âòþËû/ïO…Ç;Ç;8Þ9Þ‘Ÿ©3®õ3¹\Õ®\?˜½ ÀЦ  À´ÛvlÛ±rSÆCu<Ô±`×°}›ömÚ·‘[ÃÝvØ}@·Ÿ¸ëÄ®»NÈ}¢¸)®¡Ðjÿþ†Ÿõß›í½Ã ;0ÌpFÕ¸Þsü´ñÓÆOS}‡6?µù©ÍOªï6úÌè3£Ï¨þûÑ!£CFççúo6Ô¿ÏöôíéÛÓu{m±Ûb·ÅNîÅïü/µägÙÅØÿ¦¨o`ÇöŽíÛÛ´ç-ù™¹gœ ~ÅýŠû×íçæ~Ï_ä|‘óEtµ†·So§ÞN-l `Qž·ŠR}Ÿ¥«–®ZºJü÷± Ç6Û úoDiCó›?ëjý7êß'÷µžº*?5l×°]ÃvrŸ¸µæÖš[kšvØØÿ¦È]©/D¬ŒX±²°•êôõWí¾øþáû:8Cܽ?z¿ú«‘˜µ¢°áx8Þ9Þ‘Ÿ©3®õÏý¼jUa£ÂF…âÊr†€0 `&Ù6Ù6ÙV|óTßÏWÊ}JðôàéÁÓU§§OÛ?mÿ´}ÙKe/•½$÷³ñsãçÆÏÕ~ /¿tüÒq¹O)s¯Ì½2÷‡>}jh'´Ú¿¿á'¡bxÅðв?•¶'mOÚ]êo“k² `¥R©Tæ>QÌÍk§×N¯â¿Çn»uìV¹}—ÿëo¼Ù0ÓÀ™ÆgŸi¬ýšKM¤&Rõ¿ß…= {fÚ `cÿ›¢þ©u¿úíÐo‡L»Ð“ÿù _¾ |Á‡þÍúPCº é2¤‹Ü§È=‹0mïdïïÈÏÔ×ú‹{ªÉ¥keë•­W¶&]  `À Ø€›n¸)7qìØ#°G öǧgœžqZö*¨/¶±ý ¹OéÝ¢w‹Þ-ô½†êo­)ÖÁ0Ohuõþ†œ«O¬>±úDî§.Æ]Œ»§ýH>éù¤ç“ž º7èÞ {ál‹gˆÊÝúν;÷îÜ«;»î캳ån?›ÿ×Ço64iw¬Ò±JÇ*Ú$DÜÂNýu¨3fÌ0ÕŸ)ýM‘;B…ÅFQŒ°nÝÿ÷þ¿÷ÿ•ûDñ”ÛŸÞþôö§÷þw/ß½|÷²y˜y˜y˜êû‹Tæþâ³VïdïïÈÏÔ×úçžù«:ÕáT‡SHC@˜0€&÷ìÏÜþºú×Õ¿®~Üû_Hºt!Iʡ•C+‡¾^÷zÝëurïð_ÙÿÊþWVýjsë˵_®ýrí—êß?*-*-*íã&ÐÆÒ6ä$¸´uiëÒVn­æuž×y^gmÆS\íyØó°çaMÚrúØS÷¬)¯gIeIeI¹6gîÆ˜ö7ÖÕúo6Ì4¶¼ÿòþËûÜú«Â÷Ç=¹Ù¸ |¦ô7Ee•æTšSiŽê{æ> O©.ò3òéȧ#ŸÊ}n—]vtÙñqëûgU‰9&’™* 'Žw€ããù™:ãZ¹³`q¦ðÎçÏ;ö2C@˜0ƒÐÿYÿgýŸ©¿Y¥¸Œhiòžâé›v·ínÛÝ–{çY«g­žµZû“(ñ-Ú¸‹2½úÛv[Ümq·Å†|B«Û÷7Ì$üXñÇŠ?V”ûYqóê£1GcŽÆ|èöìs°ÏÁ>rϾ•#n–«Û=%®15„tM8aà„šÆàEƒ ^TPé5Þlhþžâw”ø}¥É;‹þ)µ§ÔžR[ý;û:ú:ú:†Ÿ)ýMñéæÓͧ›Üïgõ_¨2½R]þä'ioÒÞ¤½ê?ýû:ß×ù¾Ž&_åÉn˜Ý0»¡úÛBŠkÎy8çá®Þ@áÄñp¼s¼#?Sg,k.fûbæoçw  `À ÂójÏ«=¯¦I+Âûo�ÿÿ-n‹ôfö›Ùof‹Ó'…›ÂMá6~Úøiã§ÉMIq•¡xB§&nõÏŽÍÍ?Ñ?Ñ?qgüÎøñâæNâª)ñßÛÓ·§oOïP¿CýõÕ¿¸µ¬öÏÅ4®°a&áz¯ë½®÷R¿>¥SK§–NýßÕuŸG}õùíÔÛ©·SÅÞÛ%nüûæß7ÿ¾Ù-Û-Û-[ýɹú·^¹«þ)ËâÙº/?yùÉËO2B2B2BDbó?]¹o¥‰}ó÷Íß7¿ ®7Þl˜}”NÉ’;%ï]±wÅÞâ·ÓÛñoÇ¿Ëì–Ù-3Ñ€tì4Øi°ú÷[q³ÑÍF7ågÉÃpÀÆû7eîȹ#玔û”cŽm8¶±>¨^ àÚÀµkƒmå¶•ÛVîÞ±{ÇîGhbõÄê‰Õ×mZ·iÝ&ÇqŽãÇ©Ÿÿ}Ñ (Ä8ÞŽwŽwägêŒeÍÅl_.c?øyÀÏøzÃA˜0rþÕùWç_™é™………Ïå}—÷]Þ÷¡Sq%Ÿ¾×°ªKU—ª.1óbæÅÌÓ~êl\ `CN‚&7³Õ†¸ µxqðôàéÁÓ?ôÔ¯¿&m¹}O½¤«¤²¤²dÃv Û5l§É‘"ÚÕ›^c̆ú/®‰×ǶˆëSwØub׉ü/ NØxÿ¦\YveÙ•erŸµèñ¢Ç‹›jÑÇò£þÊíº1êÆ¨ÌHŽw€ããù™:cYóܳ}UñsãçÆÏ¥ ÀpЦ Àà\puÂÕ ú8í×zžnuºÕéVÚLIc{ÇöŽí­5¬³´ÎÒ:KÅ-‹ ¹A›?ïohI·ÕêkÞ×¼¯¹n×§Ù?ÍþiöOÜú¸õqëÅÿ²Éo“ß&?Íßaǃv¹ÿM+‹V­,ÄS<«—ª^ªz)¯^;½võê=Ô[\-­É:çþvy›ŸÚüÔæ'Q\¨Q!¢B„¸ñ²x¾²=RgªÙøÐRWîänܸ]€áŸ‰Ù{î5¬fSͦšÍãÐÇ¡C9g`,hÓ è@:óï/ÿþòï/¹UiN¥9•æ.ÀÏ¿D‹×<Ì<Ìüÿ|­sÃð Ã7 g>À¸Ð¦ @Ñ0t,xzðôàé¹sõÃÂþ°‘çb†yþ5n͸5ãÖä^·ÐA¡ƒB±×#À4€ ©ê^Œ´÷zÝëu¯×‰s–N-Z:yœ÷8ïqž/ 0sãÜ/CX«”»)wSîæž±û÷+îW<÷¬ž}À¸Ð¦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDЦ ÀDÐþŸ£Ç4~/ WL½NÐëd½bóýuª€^§ èu¦€^g èu®€^ç èu¡€^ èu©€^—óýW@¯+ôŠ/ ×Õz]+ ×õz%ÐëF½nÐ+±€^· èu;ß_w èu·€^÷ è•T@¯ûôzP@¯‡ôzT@¯ÇôzR@¯§ôzV@¯ä|=/ ×‹z½, WJ½R èõª€^iôz]@¯ôz½) ×ÛzeÐ+³€^ïòý•U@¯ìzåÐKY0¯èO èõi½ŠÐë3}½h€É¢ &ÂdÀ;@áa² à§Ÿv|Úñh´Þ^Ç èÅ3‰y1O#6ü§žçž'žg_. WáyöpáyêpáyÞpáyÒ0Ï6½§ Ô3† ÏÓ…y®0OæYÂ¾ìø²ã˲ͲͲͯk­®µºÖê˜ù1ócæÇC‡Í9 s#£c·”·”·ÄOÌ÷ÄܱçãâÜ\œ§3&0úTÄÄü¯Žš““Θ€>ÐòÜ6¹mr[Å@Å@ÅÀü!°ÎÚ:kë¬5Óšå/–¿Xþ2üÆðÃoìuÞë¼×ùñœÇsÏaÌ¡o/о(ú¢è½ÿëý_ï‰~ý&ú5lÓ°MÃ6Ú§ºÊ”*SªLúùÐχ~¾«Ä®»J<œõpÖCNJ¡w/w¾Üùrç‘ÑGFýãÔ§þ8µñÝÆwßÕ>Õƒ*U ¶ ¶ ¶ÜvvÛÙmgï¿?üþpÆú–Ú1µcjÇcÿû÷Ø¿3VÏX=cµÃ‡#´OuYϲže=Ù ²d³yÊæ)›§Ük}¯õ½ÖŒ9ô-­FZ´'ŽŸ8~âøìM³7ÍÞäøÒñ¥ãK3égÛ϶Ÿí‹ ,n+o+o3äлôšé5Ókž:wêÜ©sóþ÷ï¼]¹r¤«T÷ªÑ«F¯ë6®Û¸ncâºÄu‰ë óh‹9˜˜‰¹™˜§i?ÎbÞ(æb>)æ–$ú&ΗŹ³8çÔÚ§Zœã‹ó}qî/êŒ9ôMÔ6ESÔ jìhCÔ-E SÔ3ó?Õ¢~+j¹¢®Ë~AÁRMiôgÑŸEÆÈ `ÑFáóòå?§×Ÿ^z½o¤o¤o¤™Ar)éRÒ¥äß#¾G|sºåtË鯮ƒ¬—Ê—Ê—¦\˜raJW¯®^]½ 3ÕvìØ=ªIÕ¤jÙ]²»dwa×A½+¯T¼R±OxŸð>ᆙêzsëÍ­7wß}öÈ*ŸU>«<{ ê]u}ÔõQA»‚ví2ÌTW_S}Mõ5;-wZî´Ìü#óÌ?ØkP/qQâ¢ÄEß/ÿ~ù÷Ë 3ÕçWœ_qþ掛;nîø6ñmâÛDöÔ»;ê£Æµ×~\{3Ñ.¢]D;Ñ¢6Æqs'1s*Ãg1óRލ'ÎsÅ9¯8ÿ5ÌT‹º¨!ˆzûrDMRÔ'E­Ò0S-j¼¢Þ+j¿ì;ä'À0L4€QˆÄŽŽ;ºÑêF«­þÈöU‹ãŸÐôZkþøªõÛ;š·/k™Õ©ió¥G£ýßµØÕ Ó?ͯïØþ®ý›Ó<²-#9,¨}Î1Ár­ù´û\ó8ó8ó¸Èá‘Ã#‡+ç*ç*ç²7!œÿäü'ç?qªìTÙ©òǥ˶C•Îî=g·¬ÖçK=[³°ÝÒg£½Sä@¿Ìæ£.ñÜbMÔæN—›¿Ù=Ö·ƒÃ*GÏ?½þ¡k³™u[þeU´r/m&èû2öeìËȹ”s)ç{Bœ[œ[œ›§¿§¿§ÿÇåªþ󛊄Vm²Ì:ä·Éîýl²¶}îãÞ4SŠõ;ÜÜïèÿø¿E%vzØâ³=³|·8ŒZìåѸ[Ø£æêdº÷«1¬Š½6©Þá°Ãa‡Cv\v\v{Âu»ëv×í:xvðìð‘WCÖZiPùªƒƒ/­yzñN·=6¿myÔ.¾éA©‘ßœæ¶G›øk1÷°Y§Œ%÷ö÷U:ü³v•WRã“Æ´V÷¯r5ÏZ×&Õkl¬±±FÖœ¬9Y<´ÿ“x%ñJâ•n/»½ìö‘7s®1¬ÂÃrÍ­o´°¦ÍÂ$·b6 6ǶÖ4Lñ›_‡æÅ~⿳Ŕíý¿ia¾ï³Î'ÿjëýS“ÊS2{׳ló_­†·´Iõ_—ÿºü×åÌç™Ï3Ÿ³7!Ükx¯á½†ýúôø¸\U ,TÖ·’íÜ¿üZºU¯†G6ml÷iÓ‡2üÊ5{xäœÿÚ£ñ·la½ïŸ?8$ÿ½Ø;§É iaN>õ¶·ï_{VÕÚ¤zEøŠðá_f|™ñ¥!³˜#‰ù’6Û+ælbþ&ærb^'æxb¾'æ~b(æ„b~(æŠ÷¹bŽ*æ«5Äù¬8·Õ&ÕâüZœk‹ónq.ÎÇŹ¹8Oçìâü]œË‹óúû\QOµö&þg®r®r®¨CŠšäÇ¥KÔBE]TÔHE½TÔNEUÔTE}UÔZEÝUÔ`?îsEíWÔÙ™È4€a˜øÓ—t1ébÒE¿¿¿Í' ^שּׂ-ZmlÑv¼]RÒØ¾uÝJ(•!!ÞÞºZ>ý¾”ûÚûÚ{Ø/õŸW÷‚eù˜š‡:…:…&˜%˜%˜± §ÇÖ­[÷\ÜsqÏÅš'Ç5ÓjNåõ¾}Ý$óΔ>%Z Ðmª_ThÕzÜž®¾+‚50«>êšÐÛl·Ùn‹[·&n û·pJ®\!¹B`j`j`ªæÉi~­Úó*¼;6μõeï®—t›êÔ¨A<Úì¿Õ!¹™}ŸI6žV'> ±±ºÆê«Ï=wöÜYöoáôrÃË /7 Ïž5<ëžGnaS1dUSÏ5Òn¬èåìú­nSÞ 0ʳ„Â߯Y³¬Aí}_³’æëV¡y…暟\}rõÉÕìßÂéÕW7^ÝÛ¶-lÛÜ)¡©ùÐò‘üÚ:Éöáuóží[îÕmª3\ƒî{þ÷ß¶NãšG†~Údõ€--y´äÑ’ìßÂ)}[ú¶ôm3ŠÏ(>ã¾(cµ­ÂÚrÅ—œw¯n?½G—–Õu›êw ƒ½ºI÷ßÖbÒðåMÿ©ñ¡©VX*,–†6Úb^$æHpõí$O«b>&æfºm1‡óI1·Ô|ÝÄÜUÌc9š 'q+Îg5OŽ8_çÎâÔdêùSÏŸzfÊ<”É\ …á;Âw|ÀíWÚ{º5:˜±zp1ϸ‚Jµâߘæ5œŸU4×è;þÊM(7¡ÜÛ.o»¼å¶ç…ÂàÁ‚5OõÒ*î™¶ÝÓ‹îòü² R}ø¼¿{ GÏ[5VQj²Îà 4|Ðëɯ'¿žÌ/ ¢ÎG:¯yªkõOÃç)qƒjz”-¨T×9ËÑÛwUí¬ªo5YçA>ƒ|ù¤6MmšÚ”=^Äœ‹9sNóTÏíײeƒ°äê´.RP©Ž}Þ%©m×ZõëYjtSÙ€“'N>û|ìó±5Îbþ#æBš¬³˜_‰¹VA³˜gŠ9çÜ&|GøŽpެÂ@œ«ŠóVî$wÔ"«âCq^\P©5QМ¨?ˆZûÝ´‰º¢¨1jôõ¾@óËŸ5Ì‚Jµ¨ßŠZ®¨ëj²æ¢V,êÆìwè `&À0)/~ñû‹ß}’}’}’ÕÿÉoX»òÌ ÁÇm:ßql¦ü2äï’5eÉc™ìíu¾y·ÕÎÜ¿ªÑ¾Jõ÷\-4¥ñ”ÆS¬y°æÁ2`z^u}ÕõU×€§Ož¾çZß ˾Ž:ÝévseŽEð¯k”jeHˆ·÷åÛÝ{¸Ìñ)U»hÕAï¹z²xâ5Šß ¹r'„ ˜žôUé«ÒW 8ä=_ÐiT& ô¨C•;n¶'û‹`_¯å†–êkí{~ÒrÎwëm²\¦~[Ê• *”°/a_Â>2`z2~Îø9ãç‘ÃG9\“ÒÃîßïÚ¿Û=ø¼WCKõ͉½~uÐÇÏÆÞ*R“m‰›7'Ž[C›b)°XV±¬b“ÞLz3é&IØàóiÓK™u»x¦Zªï íóe«>ƒç6þ»æeM¶åìͳ7ÏÞ$¦'[™­ÌVÎùlÎgs>Ó$ ÿþÚf‚ÏÛÞA‹<çZªï[õ v³1©éÛZ×4Ù–˜=1{böäçh‹9˜ÿ¨_71s*Cg1ÿsQ1/}Ï5ÁC‡s]Ž8Ó#ÎOŹªú$ˆs^qþkh©µQ75„÷|•äiÀÓ€§¢.AL¨%Šºâ{n¼ÿUöUª‹Z¥¨[P¶¿ ùÆ»¤¨ñŠzï{ŽÐdŸdŸdQC&ÐÀ0L4€a"®ž¼zòªFWÍîïÙAѬ‚¡MÁÕ/-ï¼ÑQ£oLÇvíÛ<˜†[uoÕ½UW£ï›;µ/g?Á¸R}j_—§qU—ë^æ=7¤:ÒæH›#mȃiHz“ô&éM•ˆ*UÞs3à GÚ¶·‹5®T_˜PÉ9ºîhóZ嗨ߺ"DÓðÄá‰Ã‡ú·êߪÿž'’þ™æ=¨É—ÊE!nÞ6Æ’ê+/zTsQÚ§U=Sé=åûíc¶Ù>†<˜†çwŸß}~×q±ãbÇ÷Ó ÎI߳ߗë^f£8Ï5®T‹z‚&•Q£ ¦AÔ5Ùï¢&i\©µ_M¶NÔ“É´G†‰0ŒÞq¯ã^ǽÔÿ9}Ù¡yí¯Ó7{~j\S–ÿó,¨½ƒÏ{u˜3Öå~Ï÷\WÔcwÝ=Ȇñ:ëÖÿ¬¿ú½ü I-ë©3 ôp2ÞTgŸ þÃ+fq]·é6cÕoïÆI'mœD6ŒW\t\t\´ú½Üû׆Ϭ?¿1°hëÁÆ›j¥Kˆ•wå£<Þ4ZðžÛO}¾ö󵟓 ãucå•7VªßËÎÕ_íé“GýuŸnÄ©~2ÐÛãŸÎßz7Y¨~{Kù-å·²a¼î^»{íî{®&ôZR3ۢ΃y}Ÿ»Í2âT+CB¼½7Ÿj7¬iØ{nüë1×c®‡ò¥ò¥ò% 1F&=šôhR…2ÊT(#·—[|oYɼÑè>uZ4öTï¾æ;ÌÁG}ª'½›ônÒ;}ÜSÌmÔº˜#‰ù’ñ޳˜¯Š¹ë{î“Í‘h¼Äy¨ú½,ÎgŹ­ñ¦ZÔDá=÷Éð?ëÖŸl/Q3T¿—EíQÔ!7Õ¢,jÂê·WÔ–É´A†‰0ŒXdldlä{¾{{¨kÇøfGý4>ç?íî²ÈÉå= ³øñãɉq‰¹s?æ¾ú=»óYû=ö7L/Õ6Ôu>ûž†Ù×k¿^û591.ç;ït¾Ó{~_}Ñ6Ðîšé¥úªU…-ßó•ß–ý¶ì·eäĸ\-yµäÕ’ïù}õ·×ƒÆM/Õ‰U{r]mî[vZ™Ú²£és¦Ï™NNŒË-‹[·,Þó¼ê£­mTf† 6¨›þi½¼·²O|«u‹UÊ.?QnÛ'Ÿx|âqeŒ2FCZŒÅý ÷'ÜÏ5móƒ]û4¬« ià]Ý”Rýhu¿Ýn9ÍÚTk_i—ܶô}Ð÷A9÷rîåÜÓ~´Å|æ=WYYõXØÒÓôþ2Šy¬úmóaŽJã"Î=ÕïYqkz©5‡÷ÜXþ~Ìý˜ûäĸˆ:á{î,¸»Ë"'ÓKµ¨«ßvQg&'ø84€a˜hÃ(Å”Š)Sê=·¦™ÝÛßõ¥éMYr/ŸÔíÿ­{·º-ÌK•Ÿ)7»Fì±k™1|çNœ;qî„úT_Öó›–¿švªŸoð¦uïæó«EWÊ’‡õóÖÏ[?̾ø˜ø˜øõ©¾x:à73ÓNuê¶Ac<<½;Z{XÈ^Ù¿òÙÊg+Ÿ‘Ãw«Ä­·J¨Oõ©¡]âœM;Õéõÿó,ñÝôz¿XΖ‡…K.Y¸„̾ûËï/¿¿\}ªŽð¿Ñ"Ü´SQ5èšçþÖ¶Ö½²Æ´ÓfL#3†ïéЧCŸUŸêƒw;ni¶Á´SýîçÁQ^žÃ›5ý±Ö¯rã0vÏØ=c÷(“”Iʤm1‡‘{1ÿs!Óm1§UOÌ9B Ÿ8ß”Ûâ\Uœ·švªEýA}ªEƒÌ>Q”½- óRågŠ£i§ZÔŠßóå†R1¥bJ‘|(À0L4€ad®%^K¼–(÷GºöוZ•ÿêy÷ñ­Ûšö”åÿaû^ö¬ìímífá'72'ÍNš4#?†éŽåË;–rû®\Z黥<Ö¿ˆ»MáIuƤ ,Ï3]†ÕK²TÈÌ?ý÷Ó?‘ÃôpåÕßskÜ{û¼j•\xRý.{ðS¯>_4ò©ù™Ü˜ì±ßc¿Çžü¦ä.É]’»¨OõÍã½6ºþ\xR}/x­×é‘§ìÇÖ®%{}õÕ7V'?†)Õ'Õ'Õ§´oißÒ¾²íŠb=ê¶ü¢ð¤ZÙ(¤ŠwÅ?sì_ÏJnLV·]Ývu[òc˜Ò'§ONŸlý¥õ—Ö_ʶ+vuæÜ«¥úVHoïVó‚Zæ4x.ûäã­‹¶.Úú¡£-æ-rï)æø‘W/'gËhóð<®žI÷N÷NW†)Ôa¤« \oq½Åõr©ÞÖÐÇÏþ3’ü¾²Ó ø× Ÿ µ[WÍã9îöföföf9EsŠæUm1?‘{l˜Û0¹—b,—O1æ(.Xâ\Röú¿ˆ;[Ÿ%ɹ—¢^!7b¢ÖA® –¨ûÉí#Q3$ɹ—¢¶,7b¢.M®  `]Ù»uïÖ½[ÅÎZ?ký¬õ/Ú¼hó¢ #óqhà=ópÌÃ1r€÷èØ¬Ó¹åéô®ÁN‘²Ot»-ž[Œ€äKÉ—’eof¾¥k»?›.#½r˸ Ýw»È¦úìʳ+Ïò<­ðÊõ•ë+W¹ýò§…wÙÆ”e—7/÷Úîº@¶ÅJÆòß›]ov½Ù%·_~ûÚÝÁæ.é•[&)ûötk({‹QÏž<ÉXþ{gÿÎþ}yÇòŽåU÷ˬê._Õ—H¯ì×+;÷ßë¾\vþVKý-õÉXþË>œ}8ûp½äzÉõò¸%é}šÍ©3˜ôÊ~½òìÀíe¯å][ym嵕s¶˜“È>–år¯í® U¹¥˜Ëž˜KsDç?qþ(ûX– Ýw»D’^¹¥¨]ÈÞ¥ïRò¥dnœ[D­On¿ˆ:!é•[Š:³ìÜÇ<óp ƒÀ:˜Ûûgûgû˃4ƒ? `´€™3òxžÜ÷cš6«5ˆ©‰FÏyê캧aoÕ1´3·3·3W~£üFù IËO¡®¡®¡y´ÊzÿÝð•U8‰Õd¹b€Gj£ŸUǰjPÕ ªAÙ¶Ù¶Ù¶$-?MÈœ9!Suø<¬Ý½êïÊ!­¼¹µÔ{–ëgµ¹b7]nš›Ù9³sfg’–Ÿ~ÞÿóþŸ÷«î G7Ë ó>9NÁQ^·É­úåîHß^r©NKKçŠÉ|µ,lYز0Õ}Qkk¥ªåR³¾üÜ«¹U¿Œ*Þéæ²_ãKù+寔¿HZ~ú×ù_çU÷EéÆfÍ:½}tÂs+¹U¿ŒÖeœ“l±ûéÙ§gŸžó¹#æ0Œä{– BZy7sã<îf”9!sB&Gt¾–˜m³m³mÅù£êç›äV“¥¨cäq7#×P×P¾Ö¿¾Q~£üFÔúT÷ˆ¨ ’XM–¢æœÇÝŒfÌ ˜IÐ ‡°ör_û«Í`Íц:gyÎòœ¥ì7d§ :ì1šI‰F·­ë5x›—Sß2KçQò;Pü@ñÅÉ[þ¸ºúêê««åRý¼ú€Ã­]H¬&Ëì„àU^±õ_W.WÁZu$7ß<~óxò–?îTºSéN%ÙoÈží7Øí‰Õh98¤±·µëz«ÐÊyPV'®N\HÞòÇ£yæ=š'—êÛ³{ïhUŸÄj´Ì ööî4¸n`µ<f [.l¹°%yËÏß<óü\ª¯úôXÛÒ—Äj¾ؤÑ5®ªŽäÔ¥S—N]JÞòGZï´Þi½åR}®r7{g'²ªùrÌWíjG¨ŽäðÇÃ,æ!ªÿ¯˜·ˆ9 c¨ÉRÌår+æÕÝùCœ3æñlÔוËU°ç›$V“¥¨cÈÎ1V_]}u5yË¢¾§ºD=PÔI¬&KQs–cXž³Lî3¹Ïä>y\ÑÞúÛœ&J’©ÍòÁ¾/ÝfËÞ³¡vÿìþ$P~yòË“_ž¨ŽyøÖ¿ÛRæÖj™óFIíö"Afž®²wÓ9øöàÛƒôº%Î ó¸J2¨Öɪœ¿è`)ê²wÓù4íÓ´OÉ¡n‰:žêh‹º™Ô~)jÑr©ulrÀ4ƒi‰hÑ4¢©êa¹¦¤—_ã¾L;tµ<¸¢ãâfyÜŽxÖˆY#f ‡ºµûÛÝßîþVu´ýµÕÏ o‘F]-¯ÿ®”c'ÕqsdÌ‘1GÈ¡n®{¸îẪ£=å‰c@= Ò¨«å…_ª9ŸPçEP„êÖéøÓñ§ãUG{˜¥Ý¾ZI£®– ~=£Zf©Žs‡:êtà©íºî”ùÇûÇçñÜß6 6T?Guµ¼÷´OZ«<žåéhéhéhIuëö²ÛËn/Smï Ö¶^¤QgO¹î×ÿû*¹’Ù…9Uœ3JºZŠù³ê8‹ù6G½n‰sCÕÑç’¤QWKQëPgQ!‡º%êxª£-ê~¤QgH(éå׸o÷?kÑ4¢)9 `C@3˜0Œ@ÓöMÛ7m¯z(>›> Ž{¾¶Ê~;äþƒí×ÿ{Z‰oÏÿZ¾ÓæÝb{wáTwàÙF­jdÕo>«ü™ò{ÊÔ/Ý­îló†åÃÜ´½_ãØ‰‰ßIއò黯;ƒü=eoX—ó:çuÎkÒ¨+mž´yÒ&ŠÞ¯Ó7ÔÍTëjùnÖàÿ¼ôί|³G¤Z·Kï­Öƒ-çqóg³¾‡ÝBm]-Åü9çÑþÐû‡Þ?pÔëŠ8”›W‹sIR­«¥¨u¨Ž³¨F]µ;Ùûrí ò÷ "ÕºZŠº´ê8‹:6i `šÁ4€÷HÉLÉLÉãyÍâ«M«”¿Ïý-RÊÛÌ¥mõ9•Kæ^“{·Y«]šÕ¿VúS³P3oM~ÑÌÜâ|£þßù³¥ýÛZÔðQ]‡{[ïm½·•LjïÇ7y´$«—¨ðyÙ-ÊW!Þ¤Z·ËÑwœkçq½ÂõM×7]§© ï|ßù¾ó•Û×ÊÏBŠ{— Õº]Î\ï|½þ_ªëp>ä|Èù2©ƒÒI¥œJ9•d¿>r'ØÍk1©Öíri“ÖElóx‚xôãèÇÑR­¥¨QçñÀ Ì”Ì”L2 À4ƒi²Ž—>^úxéƒ7x5«½®RXùÿ•ìƒÖ6n_s˜É ÜÞèUÍñßâgÅûèñ&;8º?ÎãÛ‚eú•éW†LjoiÖÒ¬¥y<éðb™€ŽÎHµ>–¯ŠZêÑ]uM|||Ȥö"Šˆi’l½2Ãö-t×``´Å\:öF¿À~ýø   q¨:¶âœQf"բ¥¢NB2µ’ LP&ÈeIÔúHµ>–¢F­º¥¢¦M0A˜f0 `à~EV›W~LÙ®úû³}y_w—~Õj_ÃLÕ¥6—‘Oí§Õn(~ªËŽz9–§4‡ÜŸ8ê†ýõÚz¿ýuûVµÃªnÈã¹,—Þ\zÃmuœêÿ%awˆ¯·©Öß²=[U·7õ—Ô_R!™Ú°=µBíâC'.Þ[°øßm÷VtòxÚh¶æ?»¼¿ÇâF~âgÛŽ­5¢jQ}oéO{§Ö¢º½3f<Ì ™ºMuÛ¯jy[¼ ÕúÞÒß•î/m;«nï­¾·úÞêK2u›j»Y÷+^#ÕúÞÒußÞkòBu{ãFÇŽM2u›êÊûÊ}Uf<©Ö÷–îŽðíá঺½±-b[Ķ ™Ú(^:¼txYú+ÄÛ» ©ÖßòÈþ]Zäq Ÿ´YÚ,m&™Ú¨÷¶ÞÛzoóø Z‘àM^—Hµþ–g+t½ä”ÇßÊmç|~±¯Ëhëv)æÕ4tKœªŽª8gd¾§ï-5R­[¢^§:ª¢¾Gªõ½¥¢^MªA˜f°±4ƒiÃ@EÎ9à¢l`”Óñ:K+],ß_üÔÎøö[íã5ÿÙÚgÿ§øÙzãÍg•?£ï˜l˜ÞÖÞîPM…Sq§âN‘Lݦz\¯fuëØj}§zßóKròh*,Ž]Ëøtœê[m/×8Dªõêc_wÓ"Mu{#¿Šü*ò+’©ÛTûn«S¤j©ÖwªÏÇu»æ¼Zu{·×Û^o{=’©ÛT7ïWmw¥TR­ïT'tìÕ2Ku{×f¬ÍXË+uœjËÃå•]Iªõꤰ¾õÜò¸±ùÂq­nÛ”e´u»ójš º%ÎUGUœ3ò;Dß©5R­[¢^§:ª¢¾GªõjQ¯&Õ L3ØXšÁ4€a ¿"ÿöó¾ß¤‹1N\ªô(çYf•ø©ãË¿+æØAóŸÿ^ülU—roË~­ï‰Ë7ÏãVuÇÖ[{l-ÉÔmª—|âvÑ&‚Të;Õ§;wmà´Lu{÷ÏÜ?sÿL’©ÛTOëíä^o#©Öwªã»÷ðnYQu{7–ßX~cy’©ÛTÜÔ®VR­ïTß)Ùû^«6ªÛ»¼óòÎË;“Lݦº‡UƒuÕO“j}§úñˆþEÜó(sÏu™ë2—'[ë8Õž³k.¯ò”Të;Õ/§ü§õñ<¾Øz±ÙwuÚ0Úº]Šy5MÝ瀪£*Îù¢ïT‹©Ö-Q¯SUQß#ÕúNµ¨W“jЦl,ÍàO çrÛß¾ƒý*cœ¸”½Tú³'ÿ»Žv}÷u.{4ÿYñïÅÏæ~ýmé©ì®Åf‘·üñWŒ÷®&ÍHµÞ[eez4lùyË‹¹ýa3Të;Õ·/÷>ÛÊ™¼å©›•õ¦‘j½·ÊZ÷Kq¯IÞòǰ?íÕ²'Õzo•õÞ:’¼åî ü«/'ÕúNuºu äùêöUn\¹æ4F[·K1¯æèÎ✑ß!úNµ¨·ü!ê{¤Zß©õjòàãìݺwëÞ­4€³½:TvØmì·.91ñ;ÉñnÀrlCç펕ÄÏÖÚ]ɲ\š¾'.ç’»Mw%oùc}±6ëí‚Hµ¾S}}Qϰ–È[þø£|ë}¶§Hµ¾S}ïvŸ—­ž’·ü1ë´Ë·õ“Hµ¾Sý4¡ÿc÷ä-Œiäнö6R­ïT§N4Ðɼå~®6ÏjØ’j}§úM\P_Ïïó·üÿÂ3Úb^ÍÑ?Ä9#¿CôjQ!oùCÔ÷Hµ¾S-êÕä ÀÇÉÜ’¹%s `Àˆ¯neaõ{åâ§vðíïà©ùÏŠg]ˆŸÍý>\lŒ÷ `ãJ5Wç'ã½ظRÍÀùÉx¯6®Tsp~2Þ+€+Õ\œŸŒ÷ `ãJµ±_l\£ÍÀùÉx¯6®Tsp~2Þ+€+Õ\ @…è `qt^¼ÄKõ`0Þgw[\Gõâ§Ö”÷òoÜOóŸ]míù¶q}ñ³3¯>\ß¹gÿáò‡Ë.$S·©6ÞgWªåž¼`ð‚Á “LݦÚxŸl\©–{ðŒßfü6ã7’©ÛTï3€+ÕrÏþáÈG~8B2u›jã}°q¥ZîÀ¡)¡)¡)$S·©6ÞgWªýÀÆ5ÚrÏæ7€6/q¨:ªÆû `ãJµÜ3€I¦6/Q¯SUã}°q¥ZîÀ$“—j*¿ ÿ2üKFÆô^û&ì›°oBH‘"!E4oýŠ_ˆž ¨¿"|ÎeƒÎÆ8q}ÆÁ¾öÿšO}Ím~´z¦ùÏö©gSËêϮ鰠ö9}O\6LokowHu{ãNÅŠ;E2u›êq½šÕ­cCªõê}Ï;,qÈQÝÞØÅ±‹c“LݦzÀVÛË5‘j}§úØ×Ç´HSÝÞȯ"¿ŠüŠdê6Õ¾Û꩚EªõêóqÝ®9¯VÝÞíõ¶×Û^dê6ÕÍûUÛ])•Të;Õ {FµÌRÝÞµk3ÖfLݦÚòpùGeW’j}§:)¬o=·’ªÛ»p\«Û6emÝ.ż:¯íÅÇ瀪£*Îù¢ïT‹©Ö-Q¯SUQß#ÕúNµ¨W“jh2_ÍBFÆ4ˆÆí¬õ³ÖÏZ¯yÓWüûüoúÒ†üŠìãdÓÀê€1N\ö®èPÞá·©^&±ôÑÔKƒ¦y´WÿS¯¢%xLÿ^üìþÉN4«¦ï-ýi¯óÔúCT·÷aÆÃŒ‡ªtœê¶_Õò¶xAªõ½¥¿+Ý_Úæ1¿Õ÷Vß[}I¦nSm7Ëâ~Åk¤Zß[º.ãÛ{M^äñeÑq£ãF“Lݦºò¾r_•Oªõ½¥»#|{8¸åñe±-b[Lm”/^:<,ýâíÝ„Tëoyä ÿ.-¼T·WÚ,m–6“LmÔ{[ïm½·ªc›S$x“×%R­¿åÙ ]/9åñ·rÛ9Ÿ_ìë2Úº]Šy5MÝ瀪£*Ιïé{KE „Të–¨×©Žª¨ï‘j}o©¨W“jЦékÈM_À0‚_‘Õæ•S¶«1N\ÞŽZṤîló†åÃ5‡©Nõ–ˆY?Øüv…Ï3{ îè©Ô÷–¶oU;¬êÕí}séÍ¥7—H¦nSý¿$ìñõv Õú[ö¯gëQc êö¦þ’úKê/$S–‡-[ΣüÚ(Xáu“Tëo9æ„âÚU·÷iæÓ̧™$SÍÛ5o×¼êØ¾ë;x»—©Ößrv—ÀúéªÛ›dždždN2µá;Ëw–ﬖ—Ü¢\ê«né¼eó–Í[F&µ—´1icÒFÕMiòÈz©ÖÇò¦m¯Q®Áª[v)ìRŸÐgÝžu{ÖMu„»•®?­zR­åý›}·ºõQÝҠؠؠX2©½Ôé‡Sóx…û«ÿTéBªõ±Ln7`TëoT·ÔJÝ3–emÝ.Å\ZuKÅÜ›ßÚ烪#,Îù¢¥¨{¨n©¨“Ií‰Úê‹Z©ÖÇRÔ¨óøB|éã¥s_.ЦéK—’™’™’©z€5‹¯6­Ò¥‚z‚EîIŒ¾ß'ná•{Ùï°­E Õ1¿·õÞÖ{[ɤöÞx¼ñxã¡:ÂÕKTø¼ì–‚ºÙ”i§zôçÚ«òxöަ뛮o"“Ú{çûÎ÷¯ìNŸ…÷.Aªu»œ¹Þùzý¿òxö^Èùó!dR{9•r*åT’KuÖ`7¯Å¤Z·Ë¥MZ±Í£Uý8úq4ÏIÕ…e„2B.Õóñ¼@ªu»\7ëÛýMâTG{ýýõ÷×'’ºRkd­‘µFªŽóë"Mû4íS¹Tg¾<ËËŠLj¿lTëdUWÕŽë×;®79Ô­·ß|{Pö»ÆE‚Ì<]ɤöË>El*ZmVáØèØèØhr¨[Y^Y^Y^r©Ny=¨‘Ge2©ýrÄÔ¦µ®«ŽpdNdNd9Ô­œrþÉùG.ÕOcûßsßC&µ_NKtY/Fu„w~³ó›ßC‹WÆ+ã­¢­¢­¢UÇLî3¹Ïä<žâÑúÛœ&J’©ÍòÁ¾/ÝfË~ªvÿìþ$P~yòË“_ò¸iøÖ¿Ûî#™Ú,“Ç ˜Þº‚ìסzdöÈìAõaU·UÝVuSó9•]Ž6hD2µY¾ò´ÙCö¡*é6é6é6$P6ElŠØ”ÇS®Øìç:Á$S«–dfÐ0ÏqšÎÄ\…Óf)æÌªc+æØézá®tWº‹óÄ<¾¿¸Wºë’©Õ³Ãwù~âPLulE=„êE–2K™%jzy|!~r÷ß]6‘Lm–¢­:¶¢vM‘ àüAÓ÷CцÁ¹huÑêbß´ú¥Â’rŸçL¾æõ‚)ÈG^%y¥Ö«ªy¥J=”Jöô'á„?þ}Bm‹àO½†’Ï[öN²)n•Gp›ã6ÇmŽdO’J$•H*!{ÕBrPŒçòùqËá÷šþWkŸê¨þügðŸÁdOž? ~,{ÕÂòÀ»ÈçÇ-§^r*YïgÕQ]ІA ˜03`¦êýý˜¦Íj bR¢Éò—ή{æQ±3·3·3W~£üFù IËO¡®¡®¡®yÜrê¬ÂI¬&ËgΪîòU}‰ôÊÞö¹sÿ½îËeçoõ·ÔßRŸŒ@ çpöáìÃõ’ë%×KVÝ/?ôi6§Î`Ò+·|yvàáÖñr©^[ym嵕s¶˜“Èý{1ŸaTå–b>,{‡3×W®¯h•qþ(·_Ĺ'é•[ŠÚ…Ü艺Ë¢Ö'·_DôÊ-EYögcŽy8†ŒA `Ìíý³ý³ýiúê `ueÖ•Y'ûüÚÄê½N»®ašòJTßößéþ‡ÜˆÍí7·ßÜ~äª`혻crûèJ@÷.7Iòÿ)QE ÜÙú¬ÜˆM¨3¡Îžø[À¤ R©‚Ü>:s¤ën§g$9÷òuóÀ@+åÒJß-ÇIfh‘Ð"¡EÈUÁŠÙ³/fŸl{¾wgûgHrîåÛÌ ÓžÛëäTÊ(ŸÇmRRR•9Êeé*(†]va˜\ª6ìÜìG’ü§’>ø‘W/'gËhó<®pòN÷N÷NW†)Ô\Ñ^`®·¸Þâz ¹TokèãgÿIνÌi|Èë†Ï†Ú­«ÎV1{3{3{³œ¢9EsŠªŽ¶˜Ÿ¨þ”˜Ïˆ¹ #œ{)æÀrùógŽâ‚%Î%åö‘8%ɹ—¢^!7b¢ÖA® –¨ûÉÞÝáÛþ;Ýÿ ɹ—¢¶,7b¢.M®  `]É}0M_íц1˜­œ­œígîgîg.ûíÂG¶´nÌ”%}Wà+φõ£+©ÇX5xÓàMƒ7ïRߥ¾K%V† ßƒ~ú=Kõ£aýþr{Eª3‹ ¶õ|æ2²zx努£TéïJWúûmÜÛ¸·q$ÊŒH‘0"A.Õw›÷ño5ŸTg…[{MóíQû^ÕÇrc•ŸŸO¢ ÁÔºSëN­+·§Úö”Z¾#Õ9£ƒ¯x%÷žÚðÕ¯rcõâÍ‹7/Þ(C°àà‚ƒ Êí©Kk‘jåÒÖÞ¶CïÚ­­ULn¬ž8”}žÖÿ®/yØçU«BT|—=ø©WŸ/ùÔüLnLöØï±ßcO~ Sr—ä.É]Ô§úæñ^].<©Î¾¼ÖëôÈSöck×’“Õ7VßXü¦TŸTŸTŸÒ¾¥}KûÊíÁøb=ê¶ü¢…Tñ®øãgŽýëYÉÉê¶«Û®nK~ SúäôÉé“­¿´þÒZ¶ä}nW·aν Qªo…ôön5/¨eNƒçrc²h뢭‹¶~èh‹y‹Ü{Š9˜ÿžÑó[õ³1Oæh5LâSn߉óSq®ZxR-jr­DMƒü&Q”m{[»Yø‰ºbáIµ¨‹²ÜȈú3ùæhÃ0цQŠ)S*¦”úÓª[³{û»¾4í)Ë“ºý¿uïV·…y©ò²×Üì±kÄ®dÆð;qîĹêS}mXÏoZþjâñmÞ´îÝ|~µèJYrã°~Þúyëç‘ã>ÕOüæbfâß,Þ6hŒ‡§wGk ¹qXùl峕ÏÈŒá»UâV‰[%Ô§úÔÐ.qN&þå³zÿy–ønz½_,gËÃÂ% —,\Bf ßýå÷—ß_®>ÕGGøßhnâ_>«tÍsÿkÛ?kÈ~iÆ´ÓfL#3†ïéЧCŸUŸêƒw;ni¶ÁÄ¿|öóà(/ÏáÍšþXKöæüc÷ŒÝ3v2I™¤Lú¸ÑsÙÖBGk 12íÑsZõÄܘ#Ôð‰óM¹ý(ÎUÅy«i§ZÔÔ§ZÔ1ÈŒáµA¹ý(ꊢÆhÚ©µbõ©5g2ƒE†‰0ŒXdldld¬ú?Û‡ºvŒovÔô¦,±»»,rzÏù寸ñy~¤‘‰¹s?æ¾ú=»óYû=ö7L/Õ6Ôu>«~Û×~½öëµ_“ãr¾ÓùNç;½ç÷Õmí®™^ª¯ZõXØÒSý¶ÿ¶ì·e¿-#'ÆåjÉ«%¯–|Ïï«¿½4>hz©N¬Úë”ëjsß²ÓÊÔ–Ûö9ÓçLŸ3œ—[·,nY¨OõÒ£­mTf† öö2©+öVö‰ou£n±JÙå'ÊmûÄãO<®ŒQÆ(iÞûîO¸?A}ªç»öiXWÒÀ»ºIÝ‚xu¿Ýn9ÍÚTk_i—ܶô}Ð÷A9÷rîåÜÓ~´Å|Fýh‹y‘éýeóXõÛ.æÃ•ÆEœ{ªß³âÖôR-jïi’ݹsŸœQ'T¿gE½ÑôR-êÃê·]廙 > `&À0zǽŽ{÷Rÿ'|ôe‡æµW¼N Üìù©ƒ{ïàó^æŒu¹ßà=í„Ý=v÷ØÝƒl¯³þgýÏú«ßËÁšÔ²®‘:cÐ@'#¾}è™à?¼b×u›n3ö= ÂI'mœD6ŒW\t\t\´ú½Üû׆Ϭ?¿1°hëÁF|zébå]yÅ(7¼§AøùÚÏ×~N6Œ×•7VÞxÏ­Î;«;¿ÚÓ'úÿê>݈Sý2d ·Ç?¿õn²ð=_hHù-å·²a¼î^»{íî{Ú^Kjf[Ôy0¯ïs·YÆ^ Ü|ªÝ°¦aê·w®Ç\¹Ê—Ê—Ê—$Ä=šôhÒ£IÊT(S¡ŒÜ^nñ½e%óFw¢ûÔi5ÒØS½ûšï0õ©žônÒ»Iï”ÎJg¥³nG[ÌmÔº˜#‰ù’ßµèÆÀ¢­‹¹«úís`ŽDã%ÎCÕïeq>+Îmø®E3 ôpuõÛ+êdÃx‰š¡ú½,j¢i¼©u`QV¿½¢¶L6  À0L4€a"®ž¼zòêI3 ìïÙAѬ‚qMYŽ-ï¼Ñ±œ&[Û=¶{lwò`nÕ½U÷V]Möû§öåì'WªOíë’â4®ÊârÝËlT¿uGÚis¤ y0 Io’Þ$½©Q%¢J„úý¾áHÛöv±Fvû”€JÎÑuG›×*¿DýÖˆ8q ‚<˜†'Ož8Ô¿UÿVý[ê÷ûŸiÞƒš|©\âæm4Ït¿ò¢G5¥}ZÕ3•‚ÔoÝö1ÛÇlCLÃó»Ïï>¿ë¸Øq±ã{ËÎyôjÔ(Ç'8Æ+ÉXR}£h¯/\k»W¨Ñ©Šµú­‹Ø±3b'y0 ©ÊTeªòÛÈo#¿T¿ß}çÖÔÆ+«Uðg^ÃŒ%Õ·Oõ>Õʱý¤Ú «îS¿u+û®ì»²¯¾G[ÌsÔ¯‰˜/‰¹“qÍ÷ÄUýÖ‰¹®˜÷rô™qNúžý¾¸\÷2Åy®q¥ZÔ4©<ˆy0 ¢~¨É~5IãJµ¨ýj²u¢žL =À0L4€aR^üþâ÷¿û$û$û$«ÿß°v噂Ût¾ãØLùeÈ7Þ% h²’ìíu¾y·ÕÎÜ¿ªÑ¾JuõÛÒxJã)§ âœWœÿZªE­@Ô D Aý¶ˆZ„¨KÓ#j‰¢®¨> ¢>)j•¢ni@Ùþ2äï’¢Æ+ê½ï9B“}’}’E ™ @WhÃ0ц)rV:+×\{píAMN†+-Ó¶tÈ¿×Û,µë•378Ñ+¥Àž³Ó~½ýåzæ?–×èjæŽ 8fmÉÚ’µ…Ýnâ®(¯(¯l轡÷†Þfû«š÷è&fY‚ͽ ìúà}o;„7ûÄî¨EVŇš¬óO=êùSÏÌC™‡2±Û ƒá;Âw„kžê•öžnf¬\Ì3® R­xç7¦y çgÕÍ34Yç å&”›Pîm—·]Þva‚Ö<ÕK«¸gÚvO/¸ËóË‚Jõáóþî-=oÕê¼æ©þ5®Õ? Ÿ§Ä ªéQ¶ R}|\ç,GoßUµ³ª¾Õdù òä“Ú4µijSöxas.æ\Ì9ÍS=·_Ë– Â’«кHA¥:öy—§¶]kÕ¯gù@“u8p2àäó±ÏÇ>[Pã,æ?b.¤É:‹ù•˜kÔ8‹y¦˜sjž1§åÈ* Ĺª8oÕ$â\XœTªEM@Ô4'ê¢Á~7m¢®(jŒšdCÔ-E ³À¾Ê078Ñ+EÔrE]W“5µb}<  ÃD&.ébÒŤ‹~ ~ ~ šOs½ÞY[[´ÚØ¢íx»¤¤±}뺕Ðí4åé÷ý£Ü×îØ×ÞÃ~©ÿ¼º,Ëk¾nN¡N¡N¡ f f fìßÂé±õcëÇÖ=÷\Üs±æÉqÍ´šSycD½o_7ɼ3¥O‰Vt›êÕZµ·§«ïJ‡à€E ̪Ò|Ýl·Ùn³Ý·&nMÜöoá”\!¹Br…ÀÔÀÔÀTÍ“ÓüZµ;æ%þTxwlœyëËÞ5\/éø9XQƒ&x´Ù«Cr3û>“l<­Nh¾n5V×X]cõ¹³çΞ;Ëþ-œ^nx¹áå†áYó†gižœÆá6CV5õ\Ó(íÆŠ^ήßê6Õé £Š]‹ãŸÐôZkþøªõÛ;š·/k™Õ©ió¥G£ýßµØÕ Ó?ͯïØþ®ý›Ó<²-#9,¨}Î1Ár­ù´û\ó8ó8ó¸Èá‘Ã#‡+ç*ç*ç²7!œÿäü'ç?qªìTÙ©òǥ˶C•Îî=g·¬ÖçK=[³°ÝÒg£½Sä@¿Ìæ£.ñÜbMÔæN—›¿Ù=Ö·ƒÃ*GÏ?½þ¡k³™u[þeU´r/3-ìËØ—±/#çRÎ¥œKìMü¯Œâççæéïéïéÿq¹ª?Àüf…"¡U›,³ùm²{?›¬mŸû¸7Í”bý7÷;:À?¾ÅoQ‰¶ølÏ,ß-£V'{y4îö¨ù„:™îýj «b¯Mªw8ìpØá——ÇÞ„pÝîºÝu»ž<;x~\®j­4¨|ÕÁA—Ö<½x§Û›ß¶õ¶·ï_{VÕÚ¤zEøŠðá_f|™ñ¥!³˜#‰ù’6Û+ælbþ&ærb^'æxb¾'æ~b(æ„b~(æŠ÷¹bŽ*æ«5Äù¬8·Õ&ÕâüZœk‹ónq.ÎÇŹ¹8Oçìâü]œË‹óúû\QOµö&þg®r®r®¨CŠšäÇ¥KÔBE]TÔHE½TÔNEUÔTE}UÔZEÝUÔ`?îsEíWÔÙ™È4€a˜øÓŽÂçå?ÊN¯?½þôzßHßHßH3ƒäRÒ¥¤KÉ#¾G|øætËé–Ó]Y/•/•//L¹0å”®^]½ºzfªíØ=°{ U“ªIÕ²»dwÉæv¸x+¯T¼R±OxŸð>ᆙêzsëÍ­7wß}öÈ*ŸU>«<{ ê]u}ÔõQA»‚ví2ÌTW_S}Mõ5;-wZî´Ìü#óÌ?ØkP/qQâ¢ÄEß/ÿ~ù÷Ë 3ÕçWœ_qþ掛;nîø6ñmâÛDöÔ»;ê£Æµ×~\{3Ñ.¢]D»ô‡éÓã8‹¹“˜G‰9•a޳˜‹Šy)GÔç¹âœWœÿfªEÝ@ÔD=}9¢&)ê“¢Vi˜©5^Qïµ_öò `&À€òñ¡Ç‡ZYweÝ•u­kZ×´®™ÿÓ”òVå­Ê[-úgÑ?‹þIj”Ô(©ûÚxæýÌû™÷Ÿkÿ\ûçÚ«¬j°ª ¦àó]æ»Ìw¹c{ÇöŽ-ûÚxõ<êyTDJDJDŠ]º]º]zA¥zÖÎY;gíLü"ñ‹Ä/Ø/ÐFÊ”!)C6WÞ\yse'''›‚Jõ´¢ÓŠN+z}Ïõ=×÷°_ 4Û4Û4Û;,vX¸{º{º{Tª'¶œØrbËx×x×xWö ´!Ú«{Ò÷¤ïIoãØÆ±cA¥z¬ßX¿±~—Ö\Zsi©Ž¶˜_‰¹V}i5Ý.Ý.]Ì9Åü“£ÚçÂ⼸ R-j¢> jìhCÔ-E SÔ3ó?Õ¢~+j¹¢®Ë~AÁ¢ ÃDÈCrÛä¶Émü!ð‡À:k묭³Vû Šå/–¿Xþ2üÆðÃoìuÞë¼×ùñœÇssCEèÝ‹¢/о(ú_ïÿzÿ×{¢ßD¿‰~ Û4lÓ°ö©®2¥Ê”*S†~>ôó¡Ÿï*±«Ä®g=œõpc}{¹óåΗ;Œ>2úÈè§þ8õÇ©ï6¾Ûø®® ªT1(Ø2Ø2ØrÛÙmg·½?üþðûÃsè[jÇÔŽ©ý{ìßcÿÎX=cõŒÕ#F8ŒÐ>Õe=Ëz–õd3ÈfÍæ)›§lžr¯õ½Ö÷Z3æÐ·´i5Òjœ8~âø‰ã³7ÍÞ4{“ãKÇ—Ž/uUþëgÛ϶Ÿí‹ ,n+o+o3äлôšé5Ókž:wêÜ©sóþ÷ï¼]¹r¤«T÷ªÑ«F¯ë6®Û¸ncâºÄu‰ë óh‹9˜˜‰¹™˜§i?ÎbÞ(æb>)æ–$ú&ΗŹ³8çÔÚ§Zœã‹ó}qî/êŒ9ôMÔ6ESÔÌÌ™›çó …B¡P@6¯±A #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1B #À1"A Ž­o3¾Íø6#㊌+2®È±5ÇÖ[ëέ;·î\•€¿êà›ß<øæÜ”¹)sS2;evÊì”|~òùÉçŸõËY¿œõ‹úÀ_µ*qUâªÄ 64ØÐ nÜþ¸ýç&›tnRžIy&噤>±!. …B!…ÈJÊ‹)/¦¼øCæ™?dÎxuÆ«3^¸lⲉËÖç_Ÿ}þ£Ùrþ§ó?ÿé¶·}¸íÃÍ–5[ÖlYí*µ«Ô®Rbs‰Í%6«<±jõÐÕCW³yÎæ9›§íž¶{Úî‰#'Žœ8òè·|Ö„³&œ5áŠ1WŒ¹bÌ…)¦\˜rv•³«œ]%±obßľ*@ìÙŸsÎý9îýsïŸ{ÏühæG3?šTuRÕIU¼·à½ïýö›·oÞ¾yû–[lY°þ¾úûêï«Ø±bÇŠƒšAÍ ¦úD'0ÀÿØúÊÖW¶¾2åù)ÏOyþ©OõxªÇ†Þzoè}ügòè¸GÇ=:îêVW·ººU饔>àì-yeÉ+K^ykÈ[CÞòòú—׿¼þøÏ¡fïš½köîñP‡z<Ôt|ÓñMÇ'¶Ml›ØÖÙ {IoœÞ8½ñÌÐÌÐÌÐÐZCk ­5kÔ¬Q³Fÿ™Ü4ó¦™7ÍìܹsçΫϯ>¿ú|g€“Srrrrrò¡-“Ó&§MNkÑ £A†úp¢€“Ûš`M°fá• ¯\xå_>ñå_~zê§§~zj´M³R‡J*uxªÂSžªÐ¸h㢋ÆßcüN ÑfÿÀý÷œ4yÒäI“ïsç˜;Ǩ~ úêÑ6ÏN»:íê´«{³îͺ7+7¥Ü”rSœ;¢Óï_þþåï_¿nøuï²{Èî!»£sžƒ† 2hÈU—\uÉU—$–H,‘X¹àd &: €“Ô÷ý¿ïÿ}ÿ®_tý¢ëKç-·tÞ_ÝBÙ+Çå.Ò蜕“òŸY»Ðuy[Ÿ6>ï \ó“Êçº(GÍœEãÖÅU:¸/´*Ôv׋7ež»ñå½ÍÓ§þú[ê‚}]¾Nß|KÚÚÅì¸sÏŽ¿ü…{hÜи¡ãÊ+7®\³K›]ÚìÒ`W°+Øåœp¢xíÀk^»mì¶±Ûºì>°ûÀ¿·zíÏYU`÷ù9Ͼ8íŠg–ì›gg±§ Nx+ßÙyvåh÷^|ë súãé[Bw”Ù5$£ëºý› §¿»ø•M÷ìûôéï‚)7¦—‘ðW÷Ûâ?-þÓâ?ýÓû§÷O/w}¹ëË]ïœpbmX¶aÙ†eO,xbÁ ÆÞ1öޱwüÕ-ÄçÏÕ3Ï•êœ5öüéyW”Úqz’g”ø-¡Abõâº$tÊ9:ø>tK¨Nf-÷¿žqÁ®r;'¤Ýzð÷š{þvÿ’Ö»fÿz×÷ÿÞüŸœúäÔ'§v¹°Ë…].̳/Ͼ<ûœSb•˜è$N"›â6ÅmŠëñ~÷{¼?ýæé7O¿ùHÞUãçÂ5óÞÞóŒ3JœÑ`CñZ—þ,±HîéÇjV)e÷_›±çëF[ú¤¥½1dÅù[Ö}\þ÷×v<’÷–_V~Yùecê©7¦^•eU–UYæ,p<ÍZäš!× ¹¦ßü~óûÑM•ã“rõÎs}ñž—ÎéТ@׳.©óDÞ‹NËWþ¥c5«ÐàС†{¯mÈúq)]{[°Íèß~Þ•kÿŒÃ(÷C¹ÊݳNÏ:=ë$LL˜˜0ÑÉàŸú|êó©Ïßûþ½ïßûþû?½ÿÓû?~|ã2çÞœtÑÃ¥nL/Y±î”sn*ðà ˜sÂîf#FŒ›Tpóœ¾·ŽØ±îÖ#yׇ>,ða†k®i¸ÆyàŸó}Â÷ ß'4-д@ÓG2¾xf;¯?¯H¯†7·®’³_R£Â7ÿ9ïyzMÕ_ŸÞRÆMcûìLZ¸öËÿ㟂5ÜÐpCà #¦Œ˜2bJ±vÅÚkç¼ÀD'0³Ò:¦uLëØ¥P—B] }òÖ'o}òVV#‹ÖË=0áÅ‘q ~>}Ò%Šw.04ndÜ«q£çX¿‘Ò{OúͯøÛÀ9S·äÛÕ<Ë_ì+¾¯ø¾Kg,±´t™ÒeJ—±8V¼ºàÕ¯^ôÐE]ôÐáG¶/{É'E+öÚ~ÓK¶+½¦DçÜ_DÏQ¤/=P#óµÉ-¾LOy·KJÿ’+ž8üøîiÝÓº§=z×£w=zWŽA9åd%p 4 ^¼åÅ[^¼å±îu¬ûᇗÜv]î{û'ßSkÞEßÅÿ˜ëóÜ]£çPôH¹ýþ-Î(5î¾­[gNù ÓáÇO˜>aú„éë4®Ó¸Ž…@v'&: €´²÷ÊÞ+{×VkX­a‡ùæé|qúòVóJ¿R8Û<ío^ñ­[w-º|Óg,™½¿ðÁü¡ÚYœÜkr¯É½<ØàÁZÑ+F¯½â®óî:ï®ó²S«F•‰ƒ_yïᆧW,RòÞ<Û¢ÿ¸2„º…žùOÛ ÷nÊýðW/w]S7«‘ç”;§Ü9å&=:éÑIº²Ð•…®´*ø{ö6ÙÛdo“·Ý¸íÆm3ÖÍX7c]V#K\Ûbð«‹¾¸Áuãj&|•sEôÝov<µåËuCÞ~npß´‡nÿm–¿uìû^ß÷ú¾ww¹»ËÝ].¨T *ZdG`¢“ˆ)ók̯1¿ÆÅ«/^}ñê¬ÆtX^¡vÑ™Ÿ¯Ù»ìëùûå|'Çâìx¤™—…2C·¼xÑ’ŠÎ{ü‰…ý×ÕÌjäˆsFœ3âœ+g_9ûÊÙVÁª`U°j`íµÖ~êàSŸÊòùô#ë?2¿âm§4Ù^$ÿ“£ß§l½'½àO>¾rYËù¿ü²÷½YüqÙË~\Vªh©¢¥ŠZ&¹íŶÛ^¬nžºyêæÙ²kË®-»"Çä¼59®Øö …ºÝôL¯Ü;·äUÙ÷xÓV/ysÞ¸U;‡×{DVc:×ï\¿sýgÇ>;öÙ±ñIñIñIÖ Ù‹˜è$bÄ×ÿúú__ÿë²—.{é²—²3ú¼†ý*µkùI©ÅÉkcéØX¸=iwé ›|ôÊOã³3äàƒCÞzCê ©V ÿ‡wƒwƒw{ÜûãÞ{oØ{ÃÞ‹rÚ+EÈ•ããõ/ÞVPòÞbçª#Ǿ=H 2^:8¾ÙÆEÿ:cx5Y~\ÿáÂ.üá²ï—}¿ìû– ‡·eü–ñ[ÆŸqË·œqKVcŠç»äáöÃJ|yÙ–ÎÿëW-®_l{F«]WíL[uÙ+ëɽ·Ášó—^9¦íˆ¶#ÚŽxmÁk ^[ÿdü“ñOZ3d`¢S¼ÙÝ‚Þ z/è}øèw^ÑËFU]{ÑoXê…S×®èqåƒ5óT¼¡ÀÙyþä ­»sÜãîï {oØ{ì¯o—¾]úvÉ*ú½ê±¦¥‹”ø>åÕfÆTôV8H ºk7甚—?sV•Y~ÿý¼Æç5>ß0mô Ó¬²²ó”§ì<¥Jb•Ä*‰Y)Ûòæÿ>Vã”Ó[zóé±ý†%LÎÿ^Á§¯»·Â‹‹>ÞäÍv7DŽù Ë]>èÒ-©[R·¤ qÐ8hlå 0ýVï·z¿Õ»hØEÃ.ú“P3ïÈ/ÅŸóë—m:÷žÓ—%}”÷ªØ®FáÇr¯M¨öÕ¥-xuü9ïd5¦ZjªØUfW™]e¬•>:}túè‹/»ø²‹/ËlŸÙ>³}䘊ÿîþû Ö×UO½à™Ø®F\¿øÑñeNßvû7úeÛzw|9fÜ€qÆ èߦ›þm¬€£!²¥Ý-v·ØÝâÜ_ÎýåÜ_"{óLÎÑ(~ïÏÃÛ<]ã¢bgçY“sÎÉS™Ü­rLó΃{W~¢i‰S^KJ‰sÅÊ+V^±ò·ßûý·ß­%ÂfÍŸ5Öüž9zæèù'ÑïýW\_÷´}Æv9¥ôÈ`tðxPéä©ÌYMÊ'å{vîð‘OVý:²7ãòŒË3.¿þÊ민þÊÐk¡×B¯YK¡ „z¬è±¢ÇŠåï/ùŸ<,àôn÷Íš”ø~…wϾëd+O±;›\×îÀi×¶ËÕ­Hdï3}ŸéûLß WM¸jÂU–Àß#²›=Áž`Ïeî(sG–×Ù,¬ŦêÍ }”«~Â7'g‘ªÅ?—:6W£Zg|ZùͤYywGŽitj£Sšþuú×é_[V'³Í…7Þ\¸õÅ­/n}qdïMOµü¼ØËÿjß¹e©SOæ*Uº¶t¼=f2lÅÙË"{g¿>ûõÙ¯?düñVo—|»äÛ%Ǿ0ö…±/DöVèq× Ïùf—ý²òIý]£è’FÏ´W¢Tó%7îˆìíüiçO;ºâë_¯ð‰à/ÙÌ—|pÉ—L~gò;“ÿäfŒsþÕr\ÕVÅãòÔ̹_­r-ÊñtüÓÓ_rÙ½"{Ó §N+ÜoT¿QýF©ÀIªyÐU­NNkº­é¶¦Û{ïØ{ÇÞÈÞRƒ¯Ï׳lþÏ*ÅWÿD­ÂJìmqkÇŽI]ª¶¯ÿ¯ÈÞfmšµiÖ&c{ÆöŒíj±mÚÓ>˜öArrrrrò€·¼=àí-v´ØÑBeþ0ml«±­Æ¶7ÿ|óÏ7ÿÙ;êÁ3O¿°òý'æÝ¬V‡*ôI® sfßÕüës*Gö¾øî‹ï¾øî¢ú‹ê/ª¯V'›w_z÷¥w_šÿðü‡ç?ÙûÁ¶§VTîŸcHŽïâ¾W«C]úeÝÊ…êÜïõíN+ÙÛlo³½Íöf|–ñYÆgjpi4 ]ÿøõ_ÿxdgò™çŸrÉìÂ#ê ¸ÔÃþWÉàêàž2:¾ÔkBdçöÛl?0¼×ð^Ã{)ĪÌv™í2Û]óõ7_s¸åé;ž¾ãé;ÊÏ)?§üaðß#²^ízµëÕ.²ýÊ&e^/ürë^e†Þ­JY9ç‰ä!ù ZóÑ2oüI ·\¹åÊ-™ó2çeÎS+€“Áα;Çî{Ûy·wÛy‘½îx¦^•óŠŒ(Ø>ç=j••‡sݸ©d™Â»“ $<´}oÜÞ¸½q¯·~½õë­U àä1iô¤Ñ“FÿTé§J?UŠì-¹ÿê\÷ŒQ¥¬Ä—Ìýfž* |°õð¡‘½¾óè;¾óûèßGÿ>Z­ ö|tÃG7|tCV½Âà¿ùó•ÑoI…%–Tx÷ùwŸ÷ùÈÞçnª=ºÜU:·½~Æ/%öëgW‡¶oÛºmë¶­“Οtþ¤óU àdðÜç§}½s«V¼ ê½ªtäŠ×l¶÷ú?ùî9±öÄÚk/ß¼|ór~€˜RhZ¡i…¦õº¶×µ½®]UwUÝUu…ÁGO Dµ_ËüZæ×2s†Î:çnww00¸òÊee—™®JUµÏ’ïHÔ|FÉâ…þäWÿÓ¦M›6mš*Ī—ó¿œÿåü‘íOÜyÛ¢Ò‹Ü^°zΛUé¯z¨XÇsJnü“£ ž^ðô‚´±icÓÆª@ì9p÷»ÜÝcl±=þäëüiÛÞ­¾*ýUñ»s“gw™àÆA½Ó"{ûåî—»Ÿ»k@̳Ÿ©,& š=7ä¹!Ï ‰l3¡Ñ¤J=r$ÅUŒ›¨JÏ“·Ÿ›RæOªwwÕ»«Þ]5 †¨@,ÙÓjO«=­¿<øåÁ/Gövþ´ÕÄâËUéïIþ1)5!÷Å:¼vZÏÈÞ÷;½ßéýNª{>múiÓO›F¶šsÞú‹ëæšQ¸h‰6ªô÷lVãŒF§F¶O(7¡Ü„r[¶&lMP%ˆmÂà£!¢TÚ“iO¦=ùN§w:½Ó)²÷â7O}¡P_U:¿+pUžâçÍ+òvâöCÛwßY|gñ¥,}dé#ªK>nöq³›E¶÷ü¥Ã]§Ý–8'oÝo«ÒѸõö6×–ØÙÞ#_|=ò…v…v…v©@,éS¹Oå>•#ÛKŒn~ó Iês4â6æX–ヒ®½´Ç ‘½ïy·È»ET NÂà¿J D©Ïò–ÿ³?»AåÏçžRznBõøâRUéè=özõÊ¥_‹l}Ìëc^£>±¤ÿ«ý_íÿjd{çž—=\|Þ‰šÕò+ÖµÜ;%9ù’KæÎ ÿ7ûV¸Øý…æä\ÚìÙ:µ íˆì]ViY¥e•¬C€Ø°1Øl –5XÖ`YƒCÛsM,V¢d­Ü3‹µ,ù€*½BožÛ¢É ÈöÞé½Ó{§u‚:AU€“î'aðQjȳCžòldûUËæ/ò³ú+uJë_àOnV9¬ã°ŽÃ:föÎìÙ[•²»í¯leû+ËÖ/[¿lý¡í•Î(œçÖÓÞ,¶$WÎè™mv»_yí©§þÉÕ`ãwß=~·Õ>)øIÁO F¶ŸR¢ÕΛwªÏ±’cYÞ¸Ä×’ Ÿs}½Z‘½«÷­Þ·zŸ*ÀÉLœ0uö¤îIÝ“:÷üÝóÿç—¤ÅÛåi“3ñ”éykçzY•Ž•œ·Å爫{ãG›»=²÷·o~ûæ·oT »›SvNÙ9e#ÛïßýîÓÒÕçØªµºÊ÷‰E¶?“úLê3©Áü`~0_•²»á…‡^8²½@Ë3fÔLSŸc«ÈÄFÉm#Ûgœ7ã¼ç©& >”ˆ:K_^úòÒ?‰xï>íÌ×O«>ÿ„kò–ËW¤GdûìÓgŸ>ûtõÈîÞïý~ï÷ÿäŽË{KÒEêsl宑sTü¨‹šž7ª`ÍCÛCÉ¡äPòöÛl_ JÙ×¾>ûúìëóóŽŸwü¼ãÐöœ“ ï-qVŽRùæçK•Ž­|ÊÖ«rqdûƒÞôÆ õ" ƒÀ@Ôùrç—;¿ü“[f]øð) ÎSŸBÕ…Fä+Ù>ñ‰oL|C}²±ŽAÇ ãøUãW_ÙYâéÂÝr]©Hÿ„kN½øÆ"ò…%IK’–$©@öµúéÕO¯~:²½ÈÓõャ“úür<™g[¾z óWè߇¶/*³¨Ì¢2f\˜q¡*Y99Ã`0u¦wÞuz×Èöò¿äo»[ôÌsSï½Ò?8èÇÊëç^7dfó_Sk­ž»dÖÇÍ~úpP‰ŸwýþhJÙý×eì‰Îš'uÎu}BãÈöÏó}žïó|A± XPÌÊÈŽÒÆ§OÙÞòéúWZwFÜïAÓèœùÂËzî®Ò±ù¿7,‹¯ôåÕ-xè”á-Ïœ÷èy‹:7^´²Ïù¯¾»æþ”²©9¢õ{k­ÒU2ó?Ùþí%ß^òí%V&@öµð…o,ü“&›øÒé}«GÝç¦Ð›¡å¡Û»ûúGÃVt²¯g—Ÿ.êÕ¼]Ó/¹?hyæ/×>‘qÓ×ë~÷¦_Üù–ÕëgGså ͪ½èâr‘í›{oî½¹·• ÑO'M …B¡SDääääääÈö”Åí[Ÿ_#(ä rØÎú}Óo©û:6ŸgY|êÚŸüáÈßûã”+~®þS©ú‰Oäîm•¿aØìo–ý:¥÷ºßRvÚ¾®àº‚ë &þ–ø[âoÖ'@öòkÉ_KþZ²Îž:{êüOPúLÞ»¾-{ç-¿·N-ñ݉áò+ÖµÜ;¥öìÎ~üŸ_šçÐ-îÒ2^ }”Õ{‹½U(%aÝ„]O¿[eæY×–/ŸopôT~ïÍû{g.>íƒVó¾ûŸÊ_ØñÂŽv|ÿÅ÷_|ÿEë ;zàú®àúצ½6íµi‡¶Ÿuy¿kÞÛ“°:ƒ‚_EÃ<>´/~ÏÄß¾üÏ-îÞ=lyÞEÿ=’w•žÔñ¿šüÈy©eF[åwýñ™¯;­nôÚºÇÖÚ>e┉S&ÖoT¿QýFÖ'Ç_äo³'§MN›œÖ £AFƒ õÉ.Âî°NÃ: ëŽ{ä]áð¸ë¨®£ºŽ GËÑsD®²F¿•¸3©v4D¿{ÆdT:øöC¾i¸â…pô[ü¥<]sžöøÒ×—¾fÊ+:3Ï—c[48§û„u®ª²¯Ç¦³òŸúDîñ â&…·Põ²ÏZxvtÖùü‹&æ?+²}ÛÇÛ>Þö±u­©´¦ÒšJ‘ígž_¾qÞ6Ñ<ópô{Wí«Þ9åþw÷?xÆÄ×î3êôÁ7åiÙ¡X¯¸ÁŒàü-7ìHÎ(ÕàŽÛn[Ü!T&4 4$zæŸ7)w±øÄÈö¯>üêï>´2²¯¹oÍ}kîŸ<å7GfÞù£è³Þš2o|?`ÀÑïGñ-r¤»é¢®YUþÊ®y}ࢸ5Á¤àîjZ¯JµÇ*ÿ0fí;—Ýþi§%ûÎn^¨L¾o'žÒ;©Ñ ?ïÚðèþ^™5C—‡·PdVîŠÎ:Wœ^`[ž_"Û·nÞºyëfë ;Z»hí¢µ‹"ÛO]¤S®áÑ9çøãkoŽ/?àÁÊežøøöä2³¯žÙ;ǯ­¯8µaÉ£_ß7uô–ÿiÒ»WÅ¢‡¾«pZ³ÏæÕ‰¢ÃÜ”¯X¦dïÜ)‡6§ïLß™¾ÓÊȾYTdQ‘Èö¸•9fä 3L}åçYsû¥5üiäœÁ3qSãk—ßsÇú~OýþŠÚ·._õþ°½½žNlWîé³ö‹oZ÷êÛvÞýRê¥q÷' ι.¼…¥“û•ëÜ8Ú*Ÿ0?zÁû"ÛW6\ÙpeC+8Vb# Ù@©bùÈu]4Ì$Ï€ â&u^vú½ÅK=ôü9g”ü¶îËSoüqzJJûöçŸþï¡ãÃ-sîlùFÕæá–mö¿•ñTròرsçF[‹íν aFd{ʃ)¦Üz.£ûRá–|—/uÖ¤h«s|j® y6E¶¯µnÔºQÖ!ðOȾap‰*YVÏøø“/²÷æú"áÑ [P!8Á¿ª®ód±÷ EOã–瘚ðXdû{Þ«ð^…÷‚÷‚÷,F¢B«­ ´*à·©1kN0'˜säÃÃap‘5FÖÙ"h¯ØÀ@6³bü¦¸³¢sn¿íhwKÍW¾(ºñÇW¿ž{ùE›Ûþû”Bkkÿä¬7~=³BêøÖ ÷9ÿ‡Vkïþ:ç×>n¡õp2ˆ/?"x8:çVqaɆ¹WÉÈ3Þ,s_žÇï7wK¹úÀïÑv,¹^ÏY#î1ë ¶ÅuËùp®/£a&¡2[fÎK¿|Ëêõ³Ã-¹û}¶äãGôy°h¾ÉùŸÌ}mѧ~™kDáK,ŠºB7¾Ž³Ü€léâÐÅ¡‹CÇs` 8°"³Dèçè™Ï÷¶Ý³{FÛüŸõþ¥q…µï¿½ _ÛƒŸ/^ú@|ónù­×àýKÆmØ<ý¹õ9w¼^tRž©9Ç·]^æ_…³Á/Þªn½œ 2wdv FçÜŠ¿•œòÿ=ƒððN½½èê\ŸFsÓo:ðCèqë ¶…^:00ý‚¨øì\jçË[ËÚ’0 `³Â·ÇH¡gõC–-͈›7ã¸þ[¶v èÉi“Ó&§9å@¤?n‘qˆ/¤7Éx"‚5Áð;·oÿµåª´Z?øYî_Ýß+³jèòrg'nÎ]¿Ýgåª9£æÊÂ/&^R¥_Áiy·•)•X'÷‚„jñ_ÄZ~Ej­½w}¬ ¶Gõ¯€wo<°ò`Ÿ N &ÚþxÙÇË>^¶ÖâZ‹k-¶>²—·ú¼Õç­>ã^÷¸mßßúÀìÌGƒ ¸:Ç·Ñ6çÍ7¤$(U*(äþ?Fnê¶ýê¿Oƒ‚ Çì©Á¯L ΈžcÙÚlçàϳƒÄÿ½+¥OC±ô‰5c^Úç)ƒbÁu'zn ò,ôà¡-_Ø]95G|P0(ší+:ý`ˌǃ¹Á›Á%‡¶7Ûxlã±´z Õ­¬O¢ágƒ{ì°§êÁª«TŸX’öPÚCi}8ðÛ46ilÒ‘¼«}jûÔö©õ^­÷j½Wƒ¶AÛ íqúÉðD•©AFƒŒ– ð'"žŽ°nËžgÒÇAp퉞ړó}±nÇþ—2Û…n½r~™Ÿ Oy­Iý‹¾x܆yu‚ ¸:ø5%¥}ûóÏ‚à‹ ÐS c‚¹Ñ_ø-‰ûkf\¤ÿ¿í ½`èCk^Pó‚šXžÙ˯…-ükáqÁ¸`Üÿ~hi²»ñÁõŶ rFÝœWT_?{ÅRAñv¹ÿg/ë¸ö¹½A#h]ºAñâ¹;ý¿aßþh:–Õëúí+AŸ†b÷kú†mßlü{÷ݺ1×ê¢is~¾j^Óà†øÓãzkÑdG»‚jÁ‹ÁŒh(|fRúÊ}%"ÛÏvî°s‡ùÞ @ôülŽ~}oŠ ;Zìh±£Å°NÃ: ë~šo$ÿGôûàð‡?8¼ë¨®£ºŽ*4­Ð´BÓNÀO†Ný~¼7åŽ=)Ñ0“rl/¿ûÌðë;þ]ù™SºÄ­‰›ww8ôýÿG¿ÿÕi»zìÏßìW4O+²¯Jd{ÑâE‹-ndG¥«•®VºZdû††ÛF¥ßs~cÓÔΛèÆÎ¯]ôážÍ…_Ÿy[¹[òvˆ¢Ã輬Z±f}ÿýÿó‹€\sÌUÐÊȾªm«¶­Ú¶ÈöP…ƒìm³Ý>oîW:’‘[/šõÍ„YFO,öJJÊwß~õq¡è‰~Ã2jíʵóùÈö ³+Ì®0ÛÊŽ•pè;àíox»üœòsÊÏù#ú=¬p軪«êöº¶×µ½®=QÑo˜Èf•Ûôrê¼`}°'òêÔã«P(×î„á×kÖíž»¿æáǯŸ¶gIúÏ÷]ðìš.Ñ_ç¹U·îÞõ'ÏZ.Ò¬H³"ͬC€ì¨Ì²2ËÊ,‹l_2wÕ̽¢sÎrͺkûöÏj~÷ÉÎYßôóÞÛŠ~ÔgN¿„[îª}õ;§ÞŸ’òÉ'ö±Ž¿½©û·dîŽlopEƒ+\aed_çßpþ çßÙ~0~ï ]?Eà KWé°ñÁá×)és¯ûä»]Öç]ô߬Æïß±ùÓu-wT™·yÆÀpKbýÓo­6zÑ¢îÝ/¹$z*¿ÿ²-ËÖÙ^qBÅ 'X™ÀшÐ÷P` êÔ_Xaý…‘í{6e4:8ýÄέÁ¥Å‹¸%üú ßõYýÅèOVæØÒyíO»+îﺹ۾a~ÿúÍ—¦-z<}ᤵ—Ÿ·hòÞ…+W4Nû`ßÖ¨.úÂ`{°{Jïu¿¥ìˆìLܸ;q·• šrjÊ©rÏ_ðÔλ£sÎEg|0çCíVõzzéš>ç¿úîšû?½p^æŽ'ûÕ)szœú¨UÝò}ÿy+¦þñ“Ã5UG¨vÙí÷m^²/zŽâ÷Ê[¿I?3²ý‚_ðï þmed_µÛÔnS»Mdûþ~[†®;fXè‘óÒ. ýñ?—fN;˜´²ÁÛî³á¦;¾¶:mÏ’ßçeî©·ºêÒÆ[ïÕ~bŸù_üñÞÍ™ñéÓ÷mÈÑ4_³MŠ?wñökÿS­ÚàÁŸ|=•ß]pEßûE¶—Û_n¹ýV&ðWÅ^è{(0ušk>¬ù°ÈöUUv}µÿ¥;·~ïÕ¼½Lúi×åý!×®”²é×eì¹ëšoßZÕµÚ>¹°så1ú~Ýe·ÚiɾA%~ÞµáÑ}. ÿ¶Ãeª>VdVî:tk­®ûôã%Õ£¡æ©ÿM“13²ýÂ=î¹pO°%Øl±2²£í ´+Ð.²}êƒ_¿¿ãÌЯ¡Ó‚Ï¢mÎ#‹ü냊Óò]ŸçÔøk‡,{÷Õ×^õCïK=¥cóoXÿú¾©£·üqUSÙ§\–;á•›*Œ¶£˜¿ö—ø]÷G¶×ù¤Î'u>±2²¯ê7V¿±ú‘í»»-ï³0*>7Å=?5¾vøuž'N[\áÕðë-÷Zøí[V-þTïK—¿ò|Ó»rýÞy|ñ¡ßdüœ¶jGrüSy2óµ.}æ ›¸djŸ¥íψ¶Êïh4¯ÚŒß"Û‹÷/Þ¿x+8¢Ÿ(b:ô=”ˆ:¼ àòl¼ÏnüïÎÚ'vnEfå¾!çC¿Û[#=ÿ½¿žuë©U+™|v¾nù$<ÿeø¿5¿/¼5ñ‘}j>PfĶR×µª=¤Îè)9||[£ýoe<[&œÿ\Ù‰ƒr'DCÍ첣˞?ùUEë[ߨúFk {3x3x³]ùvåÛ•ìÜôàö—Òß¶)7¸´Zç¤[÷ŒÙ·!óí6[·)ܼè¤B5Æçz9gå¸GOÿ°ÔÔ<—Ý?ãúçN;ã˱¯®<瞪—uè°ðìè¹ùsØ;f¼±íÙÈö3SÏL=3ÕÂȾÊ>XöÁ²F¶o{ðë¦ŒŠžy†¯ßÝ÷èï笼í´{Û]×í_ùÚ•{ú¬½ñ¿ç­øM|‡Üwå}1o·ÒœÑ¼Hç†Å®øºr«G~53iöÙ7×M‹¶kþk_‘=ßdìÜuÞŽÿÏ1®©¶¦Úš„Ï>OøÜʲrò„¾‡Š …B¡PÈé¢ÇžÔ=©{RK–-Y¶dÙCÛ‹·ËÓ&gâÒ×Úæ=÷ìh˜gròرs禤´oÿg¿nΪ÷ðï:QºÏ»mÕ¹o\ºâã-¯Ú>¿ÆüókTø¼Âç|œÈƦNŸ:}êôí;´ïÐþÐöáeÊUá¦k¸xJÑ%'ú»ê%—ÌâþÕöh°ÿ‡2;raËõßÝù?½RâRâR¶Ïß>ûü VP+¨eed_ Ê7(ß üÏ;~ÞñóŽCÛÏ.<àËJä(•o~þ·¢mÎágúfî¾÷ÄJ{ié¯ žXÕðå—šuhû³W>{å³WvÑeD—Ö$'îólrrrò¡-“Ó&§MNkÑ £A†úœ(áÐwX§a†u:’¸7,úvÕuT×QÙ+îä ` êäKÊ—”/©Vb­ÄZ‰‡¶o¿oÂÝ›ï—~g4Ìóð!nV½Ñýx5ó`hNdôV®^¹zåêY“Ù]ÝÕuW×]Ùþ\î1‰¿çŠŽïªåþÕöh0¿ì/çî~<²ý¤’HýĆ;¶ß±ýŽí‘íiS½xAèœóáÃÝèŒ~öµž•2awdûÅß]üÝÅßY@ØÉy¥oVÀ@”º»çÝ=ïîÙþÞWïÚv–ú+ß®ÝÒ;íOnPÙõÍ®ov}3¾|ÿxÏRÈö ß^øö·W*Y©d¥’‡¶/ûumʾÿüÞqË™éTéXüþÛ6,lo—Ø.±]¢úĆKv^²ó’‘í7M.8² ú++í í¾%uûâ1ßÌì-›§lž²yT NfB߬€(ÕtWÓ]MwE¶?zÖ÷מŸ±0óÞP’*½ÇoZ¸tí-‘í7]Óõ7]¯>±¤÷m½oë}[dûŸ2psmõ9z[žÛQ÷@å{~;G¡ÈÞJË*-«´L•bÃ)Á)Á)A¥¯*}Ué«CÛÓ[oÙ´~þþÆ[¦®F•ŽÞŽŽßOû¢Gd{ÿ\ýsõÏ|||«JpÒý„ ô=` JøWø×5£®uͨÈÞ7Ü»£*祽·oówµ·]»»ð¡í7Ü\pså~•ûUî§J±¤ÙÇÍ>nöqdû³UFýýÕÝu÷Î9x­*ÿ¼2áíM%"Ûí´gО¸üqùãò«@,é»´ïÒ¾rׇM¦|+U}ŽF蔃•¶]ßæíÝÙ{õ¶«·]½M•àä!ôý«À@T»ÿîûï¾ÿîÈöëÛ̺|Ù ƒ©¡¡Öªô÷üë•ï“×üIõ†ü8äÇ!?www«@,É79ßä|“»ßÙýÎîwFöþ÷¢É­7Ÿ®JOJÕÔ¤ŒýÏl}Ëïò`…+G]9êÊQª{.úì¢Ï.ú,²}GÝïJΘ“~ñö­›&¨Òß³óã~µ!²½Íom~kó[ÑŒ¢E3T b›Ð÷h€¨vÆš3Öœ±¦î]uïª{סí¡!ÁÃÁûïWZ]i[sUú«5M¾»Çô‹×oÞ18²·E‹-Z´P%€Xuç®;wÝùgYxùÕjk[o{eçÂ#Ué¯zjË›‹×Ÿò';k>XóÁšÚh_ ½*ÄžœCrÉ9dPûAíýÉ×ùßÿ;~ùK_«Ò_•™˜¾x_âšàý Dö>²ÿ‘ýìW%ˆUBßcE dÏ~~ôó£#ÛoKÿfôÊZ;&¤oËh£JGôAºY(#tóUg}‘ciÕÈÞQ;Fíµ#aS¦„Mj«Š.>¸øà»ß=øî?ùg@½?–ºæmU:rK>üíƒ=ï¾²B—MEöÞùå_Þù¥*Ķëö]·ïº}‘í©)‹Ç~óýîW|ùã ªtä6/ø8ï˜?ùîÙz^ëy­ç^üôâ§W%ˆ%Bß‚ÈÎ\yæÊ3W^}ßÕ÷]}_dïý¯Ïëð[!U:¯Þôk•Mù¶ŒÞ—?ãà"E‹-Rôò¹—Ͻ|®*œ îÏyÎûsF¶¿óé§}·=1;î‡>©™ªtx>:Øêªûßü¥Zdï³Ïf<›QpÁý]¥ãrÌ=2÷È7½±èE‘½+B/¾{ßÔÌ]éÏí{_­oïõë?[±tóþO^û`doÿoûÛÿ[U€ØóÍmßÜöÍmBßcK dÆ?`|dûû_¬¹iû¬¹c{¢*eeñ£)wïÙÙë®O¬¹ñOjXìýb_;¾¶Zœ ¶/ؾ`ûW¿{õ»W¿‹ì½¢Ðßüòݶ.;ÇxQ­²20ýë×lOLMËØyh{ÞPÞPÞÐMošxÓDU8y\Þáò—w8{ÙÙËÎ^Ù»>÷»é/^¯JYÉ\¿¿ã¾{—=üôÄ;îŠì}âš'®yâšÓ:œÖá´j±çÒ·.}ëÒ·²êúþ=` Û(òC‘Šü0ò¬‘g<+²·ÓÓ_5^þùÒçv¶ÞëfPÿcÇ%é_eÔm8tzýÅK#{ï¹úž«ï¹ºÚ×Õ¾®æÙT'«»]ÝíênµÖXk`doÛ"U\ÚûàÝÏ «V‡úè‚9Kw|ûÜ cÆÿ¾%²÷ã¼çý8oBÓ„¦ MÕ à$2+˜ÌóØ˜ÇÆ<Ù™²dîÆOnïòm¯nQªÿ±>x7xqM›7» hÙY8gᜅsÞ1àŽw P*ˆUñããÇÇ3rÌÈ1#Ã-Bߣ …B¡BÙÆž`O°§ã½ïíxïäw&¿3ùÈ!K··­|nÃâqyjæ<©oº˜^íàƒ™6ê?=í§K;¦6Úû?WHØ^`{íË¿YþÍòorÕÏU?W}‹ àä´¹ðæÂ› WUUþ“Ï7=Õòób/*sïìòƒ‚æA½ ÐÉ\«Ï\^a÷èF»Vü©Rdïãu¯ûxÝ{¦Ý3íJNjoŸööioŸvÇÞ;öÞ±7²·B»^x6ÈÿY¥øêŸ¨Õ¦íÓš½Y{Óºég¾ñ'?c|7å»)ßM©X¿býŠ>±¥’“““““m™œ69mrZƒŒ 2Ô‡ÅÀ@v“/Èä¾føšák²RýëK,üxÇ¥é_gÔ;9‹”±(ó¾PRûôYó½(2ú ›µaÖ†YD¿ß^|{ñígLœ1qFdïëM½pËOŽýïÔuNæ*-{{í·{eý6¼©áM oº»ÝÝíîngEpíúk×_»¾ý½íïmodïÊACïíìi¸ú‚¥'õw­gÎz`ÂuYE¿ÿ½è¿ý÷"Ñ/Àß#²¥Äi‰Ó§}_åû*ßW‰ìÝ×êà¬Ì¼gÝ1áÁ>ÝòÓ¾2êž<•Ù?ù`óÌë¯yzfÿ¥~¶iã-©É‘c>¬ða…+”;­ÜiåN³–kT«Q­Fµž=øìÁgFö>÷á˜9¿§õm?bãÚ›ƒÁcÁ²“§2?±*uOÏóï¸ù_?þÉ/ &%LJ˜4æý1ïy?î–¸[âÜØ€ ˆ ₸AUTñô+O¿òô+#‡,éùZw¥î¾råÕ? =Ùʳåå/ÆÏùûÛãÓ_ÚÙû@Ÿú<ЧÍ{mÞkóž¥ð÷€l¬Ü7å¾)÷ͧ]?íúi×ÈÞ½7ì–¹øŒ >xêû—WJ½toŒtÜþøþÒ‹|4íéÅw>eã©#Çü§ÿúÿ§Ãù ç7œoý©Kj—Ô.©÷¼÷ཿ0}\Ç wÜZ{ÀÚ¹Ò_9p0óùخƬm?tOMoÐö¶v‹¯ÉjÌ¢´Ei‹Òò¯É¿&ÿë€Cåê«C®3¦Ì˜2cJüØø±ñc#Ǭø÷àÓzLÜYjaÒ—Äv5BdvÈ\ó{» }Ã|3¼Iä˜ëz]×ëº^½'ôžÐ{‚õp4À@¶W³Íþ5ûOé6¥Û”nY©½uJ§ËL½dÝ9)¥c¯?,Üž´»tÅAï?½`ߊ·Ò~Ú—#r̃C9xU׫º^ÕÕšàðúŒè3¢Ïˆ®Wu½ªëU‘½ï=þÙÚm›ÎM¾ñ”E׿°e`zlý£¢íAjñÒ–ñu7.h}ú?ÿòC–ß/üáÂ.<µÅ©-NmaÍ•‚ n,¸ñ—Ý¿ìþewVcVOÙùñ6.Ÿ¼aäòШТÐ#±TŒV»®Ú™¶¼Ô +ï9eëc_tÿV䘶#ÚŽh;â¥Ô—R_J f3ƒ™VÀш …B¡PH!€Ø0¿Æüók\¼úâÕ¯ÎjL‡åj9ðùš½Ë¾ž¿_Îwr,ÎŽGšyY(3tË‹-©¸á¼ÇŸXØ]ͬFŽ8gÄ9#ιrö•³¯œm…ð¬ V«ÖX{`í§>uð©ƒY Yÿ‘ù¿h;¥Éö"fßÃý}ÊÖ{Ò Þøäã+—µœÿË/ûwß›ÕÈ—ý¸ìÇe¥Š–*Zª¨eÀ‘Û^l{±íÅêæ©›§nž-»¶ìÚ²+rLÎ[“ãŠm¯P¨ÛMÏôÊýQ±sK^•}7mõ’7ç[µsøw½Gd5¦sýÎõ;×vì³cŸŸŸŸd½$''''ÿÏcø&§MN›œÖ £AFƒ õáD1heWö®5¬Ö°ZÃ?òÍÓ/øâôå­æ•~¥ðõÙåèæߺu×¢Ë7}öÁ’Ùû ̪ÕÈɽ&÷šÜ«Áƒ lð UÀѽbôŠÑ+î:ï®óî:/«1µjT)8ø•÷nXqzÅ"%ïͳ-ú+ó@¨[è™ÿ´pï¦Üõr×5u³yN¹sÊSnÒ£“ôh¡+ ]YèJ«€¿go“½Mö6¹qÛÛnÜ6cÝŒu3Öe5²Äµ-߸ºøè‹\w0®fÂW9WDÿÑøfÇS[¾\7äíç÷M{øçößfù[Ǿïõ}¯ï{w—»»ÜÝ傊AÅ ¢µ@v$&: €˜•Ö1­cZÇ.…ºêRè“·>yë“·²Y´^î /ŽŒkðóé“.(Q¼s¡q#ã^ë=Dzø”Þ{Òøh~ÅßΙº%ß®æY,¾¯ø¾âûf,±tÆÒÒeJ—)]ÆJàXYðê‚W¼zÑC=tÑC‡Ù¾ì%Ÿ­ØkûMÿ-Ù®ôšs=G‘¾ô@Ì×&·ø2=åÝ.)ýK®xâðã»§uOëžöè]Þõè]9å”c•À1Ð(h4zñ–oyñ–Ǻ?Öý±î‡^rÛu¹ïíŸ|O­y}ÿc®ÏsGÑÃ}ôH¹ýþ-Î(5î¾­[gNù ÓáÇO˜>aú„éë4®Ó¸Ž…@v'&: €X7=˜Lw͸kÆ]Ó5G×]sÉ›†¼Y'½|‡ëï*yÑÚñ¿ÅŽsü'>mÈúq)]{[°Íèß~Þ•kÿŒÃ(÷C¹ÊݳNÏ:=ë$LL˜˜0ÑÉàŸú|êó©Ïßûþ½ïßûþû?½ÿÓû?~|ã2çÞœtÑÃ¥nL/Y±î”sn*ðà ˜sÂîf#FŒ›Tpóœ¾·ŽØ±îÖ#yׇ>,ða†k®i¸ÆyàŸó}Â÷ ß'4-д@ÓG2¾xf;¯?¯H¯†7·®’³_R£Â7ÿ9ïyzMÕ_ŸÞRÆMcûìLZ¸öˆ‡ßpCà 7Œ˜2bʈ)ÅÚkW¬ó@lÀÀIdSܦ¸Mq=Þïñ~÷§ß<ýæé7É»jü\¸FbÞÛ{žqF‰3l(¾£@ëÒŸ%É=ýXÍ*¥ìþk3ö|ÝhKŸ´´7†¬8˺ËÿþÚŽƒGòÞòËÊ/+¿lL½1õÆÔ«²¬Ê²*ËœeާY‹g-žµ¸uÃÖ [7<òwuØ{iÕ¢Ï_Ý´é”"Õ{¸êÞ¹å\Ì®dúõÍ5{¯þ¬ðü;w–tú¸Þ>ÞTwû­FÉ{»µïÖ¾[û^{ìu0ñ•ÄW_q–8>öoß¿}ÿö!× ¹fÈ5ýæ÷›ßoþ‘¼+>)Wï<×ïyéœ- t=ë’:Oä½è´|å_:V³ ½j¸§ñÊÓ7ßqÃ÷~qç¶1³ã>¼æÈ·0úžÑ÷Œ¾§åU-¯jyUP5¨Tu®ˆ%`¢“8I}ßÿûþß÷ïúE×/º~±tÞÒyKçýÕ-”½"q\î"Î)Q9)ÿ™µ ]—·õiãóÊ5?©|®‹rÔÌY4n]\¥ƒûB«Bmw½˜qSæ¹_ÞÛ<}꯿¥.Ø×åëôÍ·¤­]üÀŽ;÷ìøË_¸‡Æ :®Ü¸rãÊ5»´Ù¥Í. v»‚]Î)'Ê×¼vàµ±ÛÆn»­ûÀî»ü{Û©×þœUvŸŸóì‹ó×®xfɾyv{ªPá„·ògWŽVqïÅ·:§?ž¾%4pG™]C2º®Û¿¹pú»‹_YÑtϾOŸþ.Ø™‘rcÚy u¿-þÓâ?-þÓ?½zÿôr×—»¾ÜõÎ)'Ö†e–mXöÄ‚'<±`ìcï{Ç_ÝB|þ\=ó\Y ÎYcÏŸžwE©§çÎ9*yF‰ß$V/P!®KB§œ£ƒïC·„êdÖ8Ðrÿëì*·sBúØ­¯¹çào÷/i½kö¯w}ßøïÍÿÉ©ON}rj— »\ØåÂ<ûòì˳Ï9 V €‰N`àä¶&X¬YxåÂ+^ùÄ—O|ùÄ—Ÿžú驟žmÓ¬Ô¡R‡JžªðT…§*4.Ú¸hã¢ñ7Æß£@´Ù?pÿÀý'Mž4yÒä;ÇÜ9æÎ1ª¨~ z´Í³Ó®N»:íêÞ¬{³îÍÊM)7¥Üç€èôû—¿ùû—ï~Ýðë†ì²{Èîèœç !ƒ† rÕ%W]rÕ%‰%K$–pî8€‰N`€ÿ±õ•­¯l}eÊóSžŸòüS=žêñT ½7ôÞÐûøÏäÑqŽ{tÜÕ­®nuu«ÒJ(}ÀÙ ;ZòÊ’W–¼òÖ·†¼5äåõ/¯yýñŸCÍÞ5{×ìÝã¡õx¨éø¦ã›ŽOl›Ø6±­³@ö’Þ8½qz㙡™¡™¡¡µ†ÖZkÖ¨Y£f:þ3¹iæM3ošÙ¹sçÎ;WŸ_}~õùÎ''0ÑI ðHy1åÅ”Èü!ó‡Ì¯ÎxuÆ«—M\6qÙúüëó¯Ï4[Îÿtþ§ó?Ýöá¶·}¸Ù²fËš-«]¥v•ÚUJl.±¹Äf• V­ºzèê¡s6ÏÙªO ^{}l_«Àq|}D?¨˜#2óì>Ãèù޲{´—ã¹—îozv©ÆÉ9ÏØÞZìÍçØþ$ôÓ³mM®j{UÛ«ÚžÔpXƒÌ™ 2ÿ§).ˆ â‚ø Þ•Ê@üÏWƒAŽ ‡’€¯¾ÀIÊ'ð3€ŸÀw| –þ¦ûξ§Ç¯¾Jø*!( œ¸OÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒÄ0@ŒHP௺dÖ%³.™•Uï'>iôI#U8þÀÀ_ö]ëïZ×:«Þä 9HRRRRRRÔ àxr h€!ˆ`€!ˆ`€‘ Ñ&£UF«ŒV3wÏÜ=s÷Ľ÷NÜûÓ¸ŸÆý4nãSŸÚøÔ–Ë·\¾åò« ¯.¼úÔ‡N}èԇʯ*¿ªüªË®¾ìêË®nöb³›½Xàœç8矛áŽB; í(ôQ÷ºÔ}ú³ÓŸþìŠ+j¬¨±±÷ÆÞ{ïˆÛ·#.<Ã/•x©ÄK~¨ðC…ZôlѳEÏf£šj6ªÐŽB; íp®Ã¾ý×·ÿúö_‘íuž¬ód'#ÛSצ®M]ûÆÆ76¾±qFÛmg´]ûÕÚ¯Ö~µ~Úúië§å}8ïÃy.Ñ¿Dÿýë>Q÷‰ºO´Î×:_ë|®¸pÅ…+T ¶Å…B¡P(t|vöUÂW _%´*Ъ@«‡¶ON›œ69­AFƒŒN p’* Ž1fĘ}*÷©Ü§ò¶FÛmkt4›\7zÝèu£[&¶LlyôÜõÕ®¯v}õÌÍÏÜüÌÍ/n~qó‹›~›«­^´zQRé¤ÒI¥f;ÉÉÉÉÉÉYõ¦¤¤¤¤¤ÛÓul÷xä[:o輡ómöh³G›ý½™||”K)—R.åèçöWýç zDCêÐ'XJÙ”²)e/»î²ë.»®Û­ÝnívëÑG¿aç-:oÑy‹æÝ8ïÆy7Ív¾¯ð}…ï+ÔZ]ku­ÕÇ*ú os~“ùMæ7ùç*|l#Ìã¿ÇP™P™P™>àó>?šè7ìÂÐ…¡ CË:.븬£¿}±G p„ƒÞËë_^ÿòú_¿óõ;_¿sl·¾et»UíVµ[õ÷"É𭉛¦4Miš²¹Ûæn›»Ûn½|ëå[/o]²uÉÖ%L›]ô]Þwyßå¯]ùÚ•¯]yô[ ß »c½Žõ:ÖˬšY5³ª ÄÏ8ÂÁÛ5“®™tͤŸÎýéÜŸÎÍjdí7j¿QûΛ;oî¼¹þ­õo­køÙ®›zo꽩÷/ÿúå_¿ükÊÇS>žòñ[sßšûÖÜPÁPÁPÁC·¶8mqÚâ /,¼0²ÉmxÃqoó1ÍÇ4sø‘'6N켬ó²ÎËj}_ëûZß«ø[Åß ?«x~ù5æ×•{TîQ¹?¯øyÅÏ+Fna÷ÔÝSwO ßúÈgxòTbP‰A%m©ž¿zþêù{ì뱯Ǿz·Ö»µÞ­y»æíš·ë¢õ‹Ö/Zÿöco?ööcáõÕ6—>²ô‘¥ ŠE‚” %Ⱥحó¶ÎÛ:od{øéÔõ]üÓ<àœgpžÁyþ÷ßyÿý'!YÜš¸5qkžüøÉŸüø‘[¹å‘[Ž$ G§¥ê—ª_ªþº¯×}½îëÈ1ÿÞøïÿÞØ=w÷ÜÝs~knëp[‡Û¦¾;õÝ©ïFöæ˜cvŽÙÏ{¾ØóźWé^¥{•#ŸaÂä„É “3Ze´Êh9¦Å--niq˘gÆ<3æ™#¯ç‘\=|lCåc»Ç#¿úùÚǯ}üÚÇÃïá·$Ûü{Õ>’í‹ð€““gœt6 ß0|Ãð¬¢ß°¿ý†…G¾vîkç¾vnüñ?Æÿ9fȯC~òë᣻ÙKf/™½$«è7ì¯F¿‡Î0«è7lÚkÓ^›öšÛAGªõE­/j}q$Ñï¡Õ>ü˜…»îZ¸Kµb‰à¸ ß 9«Þ ê^P÷‚º5ú=T'ë³Z5à¹Ï xî¯Ö|ô«£_ýjV½›oØ|ÃæÔ –€Ž“ƒ 6<Øðéûž¾ïéû²Ó§XŸb}Šýís?¾üãË?¾<«Þ! ùhÈG‘íÛ«o¯¾½ú„bŠM(–Õ{­ôh¥G+ý gO=uöÔ¬z'ý2é—I¿¸25¬ÆÁkl6©Ù¤f“þê{+­<´òЬz56Ù‘à8™_c~ù5²ê-¿ªüªò«þ^È©Ö÷µ¾¯õ}V½‹¿YüÍâo"Û¿zû«·¿z;«wÝüìæg7¿ ýí/hô3<§Þ9õΩ—Uoúéw¦ßiÍ„]Öì²f—5û{¡{Ùe ”- †'0Àqòí=ßÞóí=Yõ¶jÖªY«fGeíöyð÷îûõ¾_ïû5ò]ó›Ìo2¿IVÛlqK‹[ZÜr¬fvß¼ûæÝ7/«Þžïõ|¯ç{VÎé3OŸyúÌ¿÷Þ„É “&«!ÀÉ#A Žy7λqÞYõ†oó{l÷øWÃÚùçÎ?wþ¹Áœ`N0'²·zþêù«ç?¶3¬vVµ³ª$‰Abdï‚ *,¨`å”lQ²EÉêÀ‘p0Àq²*yUòª,Ÿh[åÁ*VyðÄÎpS·MÝ6uËr†ýªô«ÒïØî±ò“•Ÿ¬üdV½†o¾a¸'—lY²eÉ–þp$ÀÇIJ¡”B)…²ê-þVñ·Š¿ubg¸3ugêÎÔ¬z‹,,²°ÈÂc»Ç¢³‹Î.:ûïÍçäqJ¿SúÒO8`€ãdGÜŽ¸qYõæo¿Aþ'v†‡\ó_ÿ‚üÛ=þ¨À|t?ä‰Îð|ŠT€ãc_¯}½öõʪ7甜SrN9Ùj’ðe— _fÕ»ÿÎýwî¿ÓÊ€#'8N … … …²êÝ5e×”]'8.˜T0©`R–3ür×—»¾<¶{L]›º6umV½É;’w$Y0(´žˆN`€ãäðp4ÜîøððörÛËm/wl÷xøç"¾b'JêâÔÅ©‹­g¢“à8)þVñ·Š¿•Uï¯wýzׯwØ–x©ÄK%^ʪ÷—G~yä—GŽí—<½äé%OgÕ[lR±IÅ&EÛyÜÖh[£m¬g¢“à8©¹ªæªš«²ê]¸ká®…»Ží‡Î:oè¼ 3ÿß?—·¸¼Åå-"ÇŸ»íÜmçnËjk‹Ö/Z¿hý±áá·yîös·Ÿ»=%%%%%%zÎã?Q8VÀÇÉù/žÿâù/fÕ;í¹iÏM{îØîq숱#ÆŽø¡Èÿû'ü¼áääääääCÇךYkf­™YÎðµi¯M{íØÎpê»SßúnV½µß¨ýFí7¢í<ÎZ2kɬ%Ö3ÑI pœ\Ðü‚æ4Ϫw~“ùMæ7‰ eÿž Ã7 ß0üç·~ûç·#{«ô«Ò¯J¿È+k\Óàš×dµÍþñç>V3\üÍâoóÓôŸ¦ÿ4ýO>¬þÿcüNëtZ§Ó¢ç {êî©#ÏyÞÈó¬g¢“à8)¼°ð ?¦åÕ-¯nyõÑïkDíµGÔΪ·ùÍŸhþDd{ÑIE't|føxúãé§gÕ{ÙÕ—]}Ù_ØKŽÙ9fç˜Uï°G‡=:ìÑ£Ÿó %^(ñB +€h&8®¦w›Þmz·¬z÷D>š«lÃO¨}îâç.~îâÈÞ|×ç»>ßõ;%vJÌj äø Ç9þ¹¾žûõܯçžÑfF›m²ÓeF—]fùÓ‹M.6¹Øä¬zŸi÷L»gÚí³gÌž1oÎ_ý¢èE³ª*‘BeBeBeÔàøWuž¬ód'ÿj?Æÿÿã!kÁ `PðH¶¼0Ç stÎèœÑ9#«1ww×ywý·/n²µÉÖ&[?&ç蜣sŽþ«1p8ú푯G¾ù²sißKû^Ú·M©6¥Ú”:ò-×Ȩ‘Q#Ë£^Yce•5Jv+Ù­d·´Åi‹Óù–Ǽ7æ½1ïµ=Øö`Ûƒá–„É “&[ɇ·µÑÖF[©Àñ'8V&­LZ™Tü¥â/)²7³jfÕ̪á×ÉñÉñÉñcGŒ1vÄêøÕñ«ã÷ Ü7pßÀõÓÖO[?íÓ ?½ðÓ {õíÕ·Wß&IM’š$…ÃÎÈm–lQ²EÉOß÷ô}Oßw$WÖþ<àç?H*T:©tdï:èðÇ “““““'ý2é—I¿ü>î÷q¿ ÷†_OÜ;qïĽ­Ïn}vë³ý&ïHÞ‘¼cð†Áo8òkîuͨkFÉÈ2 Ë4,Óðåñ/yüÜ»çÞ=÷îíÕ·Wß^=|}p¸z¯ï{}ßëû.™uɬKfu»µÛ­Ýn=t ƒö Ú3h5|xá«®wÆíŒÛ—~gúéw†×ƒÊüÓâB¡P(:>;û*á«„¯ZhU UCÛ'§MN›œÖ £AFƒ §8y,ܵp×Â]Wn¿rû•ÛÃ1ä?±—ü ò7Èß`ú]Óïš~×ÙÍÏn~vó#o8ÜMl™Ø2±åî©»§îžúO̰À9Î)pÎ;­ßiýNëýZôkÑï¯Àáë¤Ãaù?w¾îŸqÿŒûgù ü(-õ_®Æ_ÜþßÛËÑÜüè :ECê `€¦zþêù«çG¿e ”-P¶À±Ý~øªß »&ìš°ë‚ö´¿ ý_ÝB8¨ G¿Ef™UdÖ±a‰þ%ú—è?éëI_OúúoF¿a;ƒÁÎe,»`Ù•ûUîW¹ß1ûØücüñ?>Üãá÷G¿Â˰»jßUû®ÚêmÀ'X8Pœsçœ;çÜnÉópž‡ó<ü÷¶–{@î¹ÜüÝÍßÝüÝì¯f5û«Z_Ôú¢ÖG[†ß;¿ìü²óËv½¹ëÍ]o>šçà†ŸÜc_}=ö}Wí»jßU«~°úÁê>X-:©è¤¢“fTŸQ}Æ×Rç˜cvŽÙokåRÊ¥”K ‡Ó 4pС3 _ÕŸ“aÝ>Òô‘¦4õ÷ Ú¸4@ÔI[œ¶8mqøiµm—·]Þvù²ŽË:.븩ۦn›ºm/»½ìö²Ie’Ê$•)ü[áß ÿVµ^ÕzUë5<³á™ ϼ¼ÊåU.¯rÆ”3¦œ1埻VõÐÛÿ^qê§^qêŠê+ª¯¨žáޏq;âÂÏô-þVñ·Š¿UéÃJVú°yÏæ=›÷¼ãÅ;^¼ãÅãsmxžÿÞûï½ÿÞûÍ3ß<óÍ3?MÿiúOÓS ¥J)”Þ!½Cz‡ð Ã×"ŸÓüœæç4¿fð5ƒ¯ÜêºV×µº.6®÷ ×!«c9|ïá…Ÿ÷\|jñ©Å§ÖíY·gÝžkÖ­Y·fÝÖF[mm®íiíOkZûÓn?íöÓnŸkB® ¹\E ĪhÈCÀÙÆ?ý¤Øn†Ñøe—yÆÆ*UUàä yh‚Ó]D–]¢>‘¤ÚÄ*ψ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ`€!ˆ Ñ0‰Ð¬Ð¬Ð¬/¿þòë/¿þ?†ÆqAÜ ˜¢ýÆê~UØ~í×~}¥²_ûµ_ûµ_Gj¿ök¿ök¿ŽÔ~í×~í×~}'²ß(Ûo\\\\œ:Çî~ÿaQ_~Ùå—]~Y …”¿Ç- bÄq €d4Èh¡èÿ„ãz è­m¶¶ÙÚfÒäI“'MþGvàÎþŽÔ‘Ú¯#u¤ŽÔ~©#u¤öëH©#UaGêHUØ‘:Rv¤ŽÔ~iLï÷ÛúÍ–‹ô-Ò·Hß6ÅÚkS¬Ù„fšM¨Yªf©š¥Š>[ô٢Ϫ<Ç–€“ÎÆ|ómÌ÷ÁšÖ|°¦ÿˆþ#úØ5p×À]çò?œÿáü÷îÒ»Kï.mË´-Ó¶Ì){NÙsÊg‡£! Ö•J¥çôšÓkN¯>wõ¹«Ï]ó Î+8¯`´M³öÎÚ;kïì;´ïоCë¨; î€`m°6XëräÀÄ¢ÁŽ`ÇWoõöWowº¸ÓÅ.ÞzÞÖó¶ž÷W7“»u‰ÄÒÓ~õø¢zÝ"ß68¿UÇÄò‹T½ çØ‚ïÙ|¬fu ýΫ·ß½jŶ¿ÜV竹“ßÜÝey—…sŽä½µ?«ýYíÏþÓî?íþÓ®ìʲ+Ë®t–ÉŠ€l/T-T-Tí•Ç_yü•Ç{ÝÜëæ^7~|Ž‹ì}pøƒÃÞuT×Q]GšVhZ¡iÎï‘p0Ña[°-Øvëø[Çß:>²³Xý¦›®i)ú=¼p}µŠìý£¶Û‚mÁ¶h˜íG7|tÃG7dÕûôOßñôå生S~Ž+ƒœ€¨ðÕ{_½÷Õ{óšÎk:¯ido‰[[~~S)U:YÕ*\Ûp£ažõ^­÷j½WÃWú~¤0øÈ¹4'Zé tPºÒ•¾¨ôÅÖó¶ž·õ¼C;ËOº³ÞS™©|]ÍO•êÈ¥õ[:nÁE«.ù›‡þç¢Ð¢ßý®èwËš,k²¬I°6X¬†Ù†Ýa†uÖ)÷É»Ü&:’+€8ÁæôšÓkN¯Èè7÷½%z–iRàžÊÕk>¥JU¸náÚ®s¸æÑ3Ûp|ÛëÚ^×öºvUÝUuWÕueðßã `N°fñÍâ›ÅÏ+8¯à¼‚‡¶ŸžïÞÿ¼øD¾ÓËí9³®*ý={–ÿ–oÉœå{^¸õžGm¯½³öÎÚ;?Îü8óãÌhž¿+ƒÿ*0'ÌÆ|ómÌwfî3sŸ™ûÐöyò¾¿ÝÙù¾óÁž Tp]pŸZýMë‚qÁó?íyøš¶ùîÛ{ï®ñ‡v.Ù¿dÿ’ý§ì9eÏ){¢ÿP„ÁGÂ- 8a>XóÁšÖD¶—¼ðšß»+ú=J×÷ýQÏ#®tr›è#á `N„ÁÎ`gé᥇—¾kà®»ÚyöȧúL¼2Ç Ûú^‘]ù—µû¡ëþË·¬^?;£ó®—v^š»JÑ®§æÉµ¦ØÄRû‹~Ú¸^›Æù‡þTõ2ÑVìƒ=ömÛ3ì§›êÛúýCÛó?œÿáü¯½cíkï ƒ‚Ùq)¹2øP`N€­=·öÜÚ³ÒˆJ#*8´=qÄé#ª×­8øî]Ï>qbg¸ïü=W_÷Û˯,úWÝô\ÛÏÜ8åHÞU¨U­NM›–™|ã{}T ^ fDOÍWt’¿ç£»»,ï²pΡí˺,벬KÑg‹>[ôÙì¾®„Án À °`Ý‚u ÖE¶ù¶Áù­:žØ¹…Þ - XÛeô‚gÞÿ#ú}&nj|íäÏëîl~Fé~ó?TJíÙóåêåºÝVý‰9…ÊÔ\paÿpÜ»còüQŸ}¶(èwI\´Õ<«Úfu.²#·‰p|Üæã6·‰lO|µB׳KœØ¹¥>±èê¯Jî­·¦êÒÆá–Òó:|ù@ÁÒÝÛºÿ¥µ¼¹k`÷‚Ò¥+=›4ûì›ë¦íX³ æç½‹ÝtÑ ×þŸëÚ¢Ný2ÚjžUm³:ÙÝÉ €8&l™°e–Èö„g“®-ÒçÄÎmoêº–Õøc>S’~)rzò;µû]üI¸¥ZµÁƒ?ùäÐñá–" ì¼üòpKú’­Ã6ì[´¨{÷K.‰žšgUÛ¬ÎE,9yÂ`0ÇUƼŒyó¶õÙÖgÛÿ„‘¹[—H,=-îøÌøÁ'v†Æ¥^¾ýê„ö&%¿›ïÕ²VÎy$·tŽ+žpwÎ;ÿøŸEÁ=ÁÅÑVùpmÃu>´=|.ÂçådX±Ç…B¡P(ä ÇÇŽ‹w\¼ãâòóËÏ/?ÿÐö«ôiõQ©Ö×éž-/bÜZtfírþþÙûõ_n¾n8ã²Ô*Û–G^1|b­›øÎ¶Á™ÛËÕwò¥‡¶¯ªµªÖªZ…fšQhÆIº2[ìh±£Å°NÃ: ëŽ{ä]áð¸ë¨®£ºŽ GË'ö(\ Àqµ£ûŽî;ºG¶çy㔤²¹£þûËln½.מ—Ö´ýuzêo‹{}3tÝöqýž_Ž~ÃcJTo‘|ãÑ9ÿ¬êœÕy9yÄÆ•Á`Ž«Ô©©SS§F¶çü¨àš¢çFÿüWþ{Ø-/XÞð¹2Ýžû-õ?{úLܾî›ÍÓ:ÇÝŸ08çºÒé®y`^‘–õǵìm×þ¾ÎY—“Sö ƒNTÉ’“““““-ÂâŸÏ“”¯Kp[v蹌îJ­Í5:x&Hø àEß-жòš…¢´Îuƒ xïÐöÆãk<.ÿ!Òœ`N0çȇ‡Ãà#kŒ¬1²EÐ"8^)°+€ˆ q¿ä—ãîèŸç™7?vù[çT}à…æÓ¿­²ýñc:—{å¶™O>™¿ÂÏm³ªâËMºz÷®Õ~ÛÝvå•? :üÈ¥v¾¼µì¦`Úãoþ;Ü’øxùRgMж#ŠÎ:Ÿ(±ú*. …B!§€ãéô!§9}ȶ>Ûúlësh{Õg_òÑYqoÄgÆ>QsÛ7dÓð5 —|æÙ;†j¸lÿ›áö"Ÿ6ª×¦qþ¯+•¬ñkÎ)—9=ãç´U)…÷Ô]]õ—F[ïÕ~bŸÌûzìÞ~úï·öÊ9¢HäUÅ'JèÆÌøÌî?ö¼÷îK>´½Hß"}‹ô]~÷ò»—ß}2¬½?¹½óˆ†Û;‰_\8þÚkS¬M±Áˆ`Äÿ´gôL}{[ßœÕ ]]ì„Í-ÏÝ%î(S=´èÀeû{Æ?•'3_ë̇öÅí¢YßL˜¹-˜LÜðÇ>¾ &ßAÞ¤RÏœþ}é•®yðÝŸïí]¶]fµjƒƒO¢¢æáÚAWEž‹Ø^oÿúÎyzÎÓs‚ðŸÃúŸÐ÷ÚB׺6ÿ‰bn À ÐlB³ Í&D¶ï¾må°Ÿ6Eà «U<ø“OÂÑoñfÍê\ÿ\ž‰%o¯xMަùšh÷zΊ¹Fåž{ʳeÇ%½[­aƒ7J_sCï‡.®”ú@Ïa5~Ý÷TÙÛn o!zjžUm³:Ù]ìÝÞùH¸€ f©š¥j–ŠlßV竹“ß,4§fÐä‰h˜g8Ä]ôq÷î—\¾Æ÷X÷¹ÿvU,ZÔ½û%3’«Õ~ñâÕ‚h¹ê7²¶Á«Gz.²£“çJ߬x0'ÂÎ`g°³ôðÒÃKß5p×À]í<{äS}&^™cPž"ùº*ÕÑ;Øcß¶=Ã~ºù¡¾­ß?´=ÿÃùÎÿðÚ;ÖÞ±öŽ `P0(˜.¶ŸéûW¹4'BÁ `P°w—Þ]zw‰ìL{÷ç½sç*Ò±’U=ÿ¨6Œ~OÎÛ; WpÂlÌ·1߯|gæ>3÷™¹mÏ‘'ï ùÛoà;ì J×÷©Õß´.<ÿÓž‡¯i›ï྽÷îhç’ýKö/ÙÊžSöœ²'úÅ•¾GÂÀœ0áè±öÎÚ;kï<´=UîÙ÷ÛÍKê«ÒÑ×02ú ×<ú£_WúþU`N°¾Cûí;4²}ííc–>ûi, ¾S¥¿,-X|÷G ¸æÑ@è{4Ü€­tP:(]é‹J_Túbëy[ÏÛzÞ¡å'ÝYï©ÌT¾®æ§JuäÒú-·à¢U—¿üÍCÿsQhÑïŠ~Wô»eM–5YÖ$X¬ ÖFÃlÝÞùXq0'ÚÚ`m°vÔŒQ3F͈ì G˜™÷(‘þ®R‰p­"£ß°?êѯ+}ÿ `¢Bƒ«\ÕàªÚŸÕþ¬ög‘½›þ3õÂ×שґȪVáÚ†ë óüæ¶onûæ6¡ï±åÐD‘ÕVWX]¡FJ”)‘½úÜ5ýÙóóO¨´´z?µŠ´«Í²Ê YÙwhóžs#{Hþ!ù‡ä²+Ë®,»2f›Ù.³]f»"Ÿù¬ÈŸDþnïü÷¸€(Ž'Œ0rÀÈÈÞp´yàÇlÙ­V‡ ×$«è7\Ïè‰~ÃâÇÇ?f䘑cþ8×®ô=z® ꄪ…ª…ª5¹´É¥M.]ôÚ¢×½vhoܰœ ¹:+ד½ûsŽÁyŠç»çd®ÕÁîû6ïyñçô=uõY¡®2ÒŸ:´·Ú-Õn©vË}ñÑÅ-Š[·ÈêŠm® ê„£ÊñëÆ¯ÿ'ϲ ÇœËç<¿øîY™UÓ›ìùä¬RøØÃuˆŒ~ÃÂ5ýžDw\ @4[ôë¢_ýÚ¸Nã:ëDöæ¾µDë2O¯{ß9C»P{¼öh÷Íì-?P~ üÀÖš­5[kfœ˜qbÆ ·ÌõÀD4œ 'Ã]»ºvuíZ±pÅ 3ó2ó2ónõ1_6©ø›IÍzθÜO§O™1q·ùý©¹ã>Ì’W›óËø/Æ¿}úÊëW>¹úÞØÙÑöK/”dŽŒ½uêìÉ‹Þ=þÁÑ«¿>}aàå[ýÞÔ¡Ô¡Ô¡ûwìß±¿jYÕ²ªeIAR¸XnL ºâ¤8)înènènh\Ó¸¦qMo~o~oþývÌò‘ò‘ò‘¦-M[š¶T6W6W6'É@2à¹y0ÿ;§òNåÊÛÝ¿»wÿ¦öMí›ÚÏo>¿ùüæ»y†Éë&¯›¼n}íúÚõµKJ–”,)™>:}tú¨ÛávÀdê3õ™úÇî«ÞW½¯ºóLç™Î3CCC·ó䢦¢¦¢¦ê©ÕS«§.ê\Ô¹¨³,]–.K§ZR-©“ç΀à–^ûÉžs{Îí9Wu¹êrÕeóá^g1ÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAJHZ„’(-ZH{Y*%‘’D…ÒBÈ–d K²´¨ÈR¤ÑÌ ’m~œ~Ç|¾ó¹ófqçz>çŸyœ÷¹ç¼Ïëý¾çž{^÷ý>1ÉÉÉÉÉÉ¡l±$Ï’¹÷ɽO.X¦`™‚eNœhHÀñœ…ZtoѽE÷à¼4kȬ!³†·û3~+ç@ §_7¾Pþ…ò/”o»ùÿþeÖ,8Š;Ï»ó¼;ÏKùÙtëü[çß:?ˆ€žºWìn°»Áî þXðÇ‚?î9xÏÁ{?ÛÊH²V[p¢‘ Ó<ÛõÙ®Ïv]2{Éì%³ƒ%E§VtÚž8ðÄñ²Gp·óiOë|Ú²ç—=¿ìy1pݘґªGª©:¹Øäb“‹eõ¾º?Ñý‰îO¤\²xÙâe‹—£]õ„ô»©ÒM•nª´¶€´å€p._xùˆ+ý´Á§ >m JoŸýöÙoŸ4tÐÐACS.¿wã½ïÝØ#¡GBQ²Ç'ïòþ'ï/j¶¨Ù¢fáÖ©rq•‹«\\ëËZ_Öú²È¢"‹Š,*X¼`ñ‚ÅEp­›Õ׺‘pݸpÇ wüvÃo7üvCVïë´§µ8­ÅSsžšóÔœGš>Òô‘¦Áò<ÓóLÏ3=mœpÂ]-ŸÑâŒg´¸©ÄM%n*±²ÑÊF+}ýÞ×ï}ý^êõWÜ´â¦7   %„B ÚÂ’ke«•­V¶ WŠ Å…Ü ņbC±÷v¿·û½ÝS..u{©ÛKÝÞï¾~÷õ»¯G—]ztÑ£€ìñÉœOæ|2'\éͧÜ|ÊͧŒ[:n鸥‹%,r“p­›]׺sÝøÚݯÝýÚÝ¡!¡!¡!ÙínŸuû¬Ûg„ =òÏ’àaõ®¨wE½+NÌXú’Ò—”¾ä?úXl(6—+.W\Øy+Û?Ñþ‰öOh H›) È oLxcÂK__úúÒ×S.¿ÿƒû?¸ÿ r ûýÐð‡†?4 WÚ³IÏ&=›8;œ˜×ïw~¿óûƒ§Âg籟òÐ)òгmžmól›”˃I°=7ýI¡¤PÒ²;–ݱìŽp«üXãÇ?ÖÐ6 `ŽÑ;ÜqàŽg>{æ³g>K¹¼`™‚e –¹7þÞø{ãE È~ii»pú…Ó/œ.J'Îuc0¾sÄÜsG̽íãÛ>¾íãã‡ËßXþÆò©—cav:Øé`'½¥t½ÒõJ× WúÃÕ?\ýÃÕOÓj ¢›0ÇhÜþqûÇíÿåÝ_ÞýåÝ”Ë[åk•¯U>ñ ;¯T=RõHÕM56ÕØTcúòé˧/¦•®^¦z™êeú·ëß®»ã‡`ìiêåÛ¿ØþÅö/ŠÏ(>£ø ½%xRo¸ÒĘĘÄmi“à¨ýÝ÷ï¾÷}¡ü å_ø/¿š¿nèuC¯jzU²úºqU£UV5jX¥a•†UŠl/²½ÈöZ[jm©µåÆf76»±ÙÈ1#ÇŒ“:ñ||MÙ7eß”}©—Ÿ~ýéן~}0ZZÏÑÀµ÷Û¼ßæý6;ï¼spÊåÁ’–Í[6oÙ\”ÈêëÆ_{þÚóמk^ûóÚŸsJL”jPªA©Ô˃Du‰‰%&–˜¨çh ȈÍû4ïÓtlÓ±MÇJ,”X(ñxµoðî^øÍÂo~óþ-ïßòþ-ë—®_º~éŽÁ;ïÔ¿ø;Åß)þN‰%”pñýßñý­´>Ðú@­/k}YëËPR()””uÛ?hÿ ýƒfŽž9zæè/^ÿâõ/^ÿ²ð—…¿,¼ãÕ¯îx5iOÒž¤=ßñ÷ß¼ããã«4«Ò¬J³ 6_°ù‚Ím~kó[›ßÊT.S¹LeŸMàèÉŽöªu϶=Ûöl{kç[;ßÚ9·ÍÜ6sÛl[²mɶ%?ÏüyæÏ3O}èÔ‡N}(hµºOÕ}ªîSÁ¤¾—ýxÙ—ýèÚ‰ãuÝÉb¶ÆlÙÚ³]Ïv=ÛO&NYZûãÚ×þXÏѡϸääääääìÙÙ’Òô‘¦Çxåú2ôeèÌ„3ÎÌäw\ä\;-^¶xÙâeW_rõ%W_ô”¥¾|á˾<«ß¬~³ú©¦Œõ§>qê§=eè)COI]ú|Íçk>_³ëg]?ëúY$\ëfÏuã¿ïü÷ÿ¾sà›ßøfú_5?ïü¼óóßOŠàÇ ÁäÕY]‡œøÉ˜uÎζàD ùPS@Ã$”K(—PîÊ민þÊë{ÞÚóÖž·f<õ¨½¶öÚÚkWÜ´â¦7eõQ7p+L¨0¡Â„!M†4Ò$xrUúMÿv‚ñ(­K·.ݺt×M]7uÝtl7¿Áͯàÿ §]8íÂi™{«(Ø~‡û;Üßáþ.»»ìî²;sS¿‡»=ÜíánÁT]Ao‰äþœ³Z0ðΧï|úΧ©—ãÌêÝ^ïöz·gÖ¾‚<Å-³Ò`›Áû.«[ù½ÇÞ{ì½ÇÔkP¯A½Œ¤=—%_–|YrÆ[ö«}_íûj_ÐO2žö¤¼å]w`ÝufE„‡s sàñŒÕ¾ÿóû?¿ÿóŒ¤~S¶Ú÷7~ã÷7FëµSýºõëÖ¯›:õÒ“…÷Þ[xoFŽ}M‘5EÖ —úmß(¾Q|ŸÕ}V÷Y9}){®ƒûä}G÷ ñIûç,Ý>êöQ·|j 86ÀäA¢·å%-/iyI0]pæn?˜&®íæ¶›ÛnΊvÁTÕ·»}ØíëðX…Ç*ddkAª8gL¹µ ÆÄÿg<ÁÖš o6¼ÙðYCf ™5${úÌM•nªtS¥`Ìq¤õçœÕ‚àvð˜Úcjù/“ø]øÖ…o]øVfý.>˜š2/Œ•ÏÜøÄ·Œoß²Õ­ÎhuFVß Þõ™µµ`¢ËŒ´l0¾¡Q™Fe• žm–GL¦ŒÂ—θ`šÜ•­V¶ZÙJ4NÎÎÇד?<ùÓ?Œ¾fô5£¯ÉøÖ‚ɽo¼øÆ‹o¼8e FßµÓ/~ðË€p¥§ö8µÇ©=ŽmËÁ÷ˆ`ŠÚÔ¥Á´ä#Þñþˆ÷#g„bv^7æt× ½nèuCS/Ÿ¾|úòéË]Gi 86ÀäÁ­¢ëÞºî­ëÞÚ0kì ³Â­Yç­:oÕyë•ç_yþ•çƒÉ÷v<¸ãÁÿ¿{ç»w¾{çn¬pc…`š¾Ô[Ø»~ïú½ë Uø«Â_eî¼Þ¥z—ê]*“ñh\ÿôõO_ÿtp3Üš6:Øèà«w½z׫w­Ùºfëš­;oßyûÎÛ7'oNÞœ<·úÜês«ß7÷¾¹÷Í žcn;A¬2þ—÷¿¼ÿåߌúfÔ7£Â­ÄüÁÇ|ìÁÇf><óá™§¬óU¨úCÕE3ÍX4cô£/}AÃÓžÖð´pí¦ã‹Ë—+î\ó´:õ¿ÿeÅ«rb –ßµü®åw…+­=¿öüÚó3þN RÍF4ÑlDÚk}`ì/cû˺OÖ}²î“_;üÚá×ë'¬Ÿ°~¸¯Ç}=îë´Ÿ>Üê ¦ÌÎ:Áñ£Æ?êë_üz`p¦ZUnU¹Uå^(úBÑŠžÛù·[ÚÛ9Ú–=Øé`§ƒÒ“Œ ž9ªÕ¨V£Z-\²pÉÂ%?%þ”øSâÖE[m]LØøÆÙoœýÆÙµæ×š_+l»¸ãÀîž¶Üö‰vl¾yí›×¾yíò…—/¼|aÐâïw~¿óûƒ”€øDç@çÀH0´ÄÐCK¤\R=õüÕó¿™çÍmæ´™ÓfÞpá ÞpaÚÛüîáïþîá"Û‹l/²=Z¯~ƒïìfß0û†ÔS=ÿ5ò¯‘ ž=|´?O|¾ÉóMžoòõ{_¿÷õ{©K‡œ3äœ!çTîQ¹Gå‘p­›×Ñ¡ö‚Ú j/H½<ø²øh 8FÉÙhqîŹç.”J°<ÂzòГ‡ž\(Œ¸=q{âöŒø`Ä#>–¤g›ÁšUZTiQ¥E¸-Ý?tÿÐýé¯g¡£Tbd‰‘%FÞûý?ÜûÃì;gß9ûÎ5{×ì]³wûŒí3¶ÏØÿÐþ‡ö?t´Ñ([µlÕ²Ug>?óù™Ïm4:ç뜯s¾p[>gí9kÏYû{ÙßËþ^6ý1‰¿4þÒøKÓŽÃõO]ÿÔõO¥\r´1/º¸è⢋Ãm?øéÀ±õ½´kžý9ÒZ0¥ ‘Ÿ1I©ã­oíxk¸íYWd]‘uãvŽÛ9nçÑÆ'í~Ò¡O‡>údnI]ó±'=iìIé©ùÁ+^yðÊôl¹î€ºêÖO{›‡L2qHÚçÒk~XóÚÇöNLŸhÇfÒÍ“nžts¸¨¾gð=ƒïÙÕiW§]Ä*ý}22kîè9ï‘@÷—º¿Ôý¥ôÔ?=[;¶ž–¯2«?¬Ÿ¹~æú™á¶²þ‘s­›×ÑñI±ªÆª«j„«Ãc%+ñX‰ó“1ûëœ=mÀ‰ ò¡FÑ‚gz=~êã§>ö—æOÏyzÎÓs‚'¿¦±`Í`,i®u¹ÖåZ—z—7¾¼ñåY1&æœç,8gÁ²¾Ëú.ëLŒÖtXÓaM‡£+Îh~Fó3šŸ<ðä'Lùª`¢ÂpÑÆã0:<ÝáéOm4‚QáÖ ¦à~yåË+_^™þ#M{”ƹSÏzîÔ`Rè„Ò¿ý`ý´ÇÀ­ÿbý뿈„ »rb ¦Œ¨N½¾øøS:å¡S ·N0½m𣂠6*¼Ó§›RlJ± ‘p"Ä*xÚh¸Ò¢ ‹.,º02kîèi8dà£I0¹w¸Ò]7ìºa× 'µSæœ7/n^\ê›?Ui¼ºñêÆ«ÃmaدÃ~ök¸«¯á³‡Ï>;nKÜ–¸-‘Ös²çº1šäŸw|ÞñáJögá¼ôíÿþÓÙÓ=$€ˆPÁ­êgï}öÞgï ·Î£Å-öh±Œ§ç´œÓrNËp¥/Ï~yöË™ö;ßàVZð›ýô¿*µóüµÏ_ûüµ©KÏÚ|Öæ³6ßsðžƒ÷Ìx4Nzå¤WNz¥ß-ýnéwKêÒ¤=I{’ö¤k›ÎÜtæ¦3ƒ[`©ÿ.‹¿,þ²øŒGµüÛåß.ÿvÚ}éøöçœÛ‚7­¸iÅMáJƒ§¸e¤æ¿Wÿ½úïÕƒ4U¸u9ï‘ó9/ãñ ž$®tÚ·Ó¾ömæÞÖÉø™*¸q<±ÿÄþû‡[gyÿåý—÷O»æiÿ¢Ô¥(õ@FŽôŠ—®x銗îþõ¿ÿýkõ¿VÿkµO·cÓð`à î´ÐþAÁ’2•ËT.S9=¯½åÐ-‡n9Tt}ÑõE׿XþÅò/–O(—P.¡\´Æ*¡PB¡„BáJ‹M+6­Ø´H«³s s`¤©q¸Æá‡›Nk:­éQ¿_* ¯0¼Â𴯈N„k§À›.ØtÁ¦p?6Ws^Íy5S÷Û½6öÚØëÉßžüíÉßR¿ªó®Î»:ïj· Ý‚v "³ÿdõuc´êþx÷Ç»?ž‘w Úþã›”™‚§ï„+ núÛm©Ôj}YëËZ_†+]¿týÒõK3¾—àVZ0=ÝѾve£•V6 WÚþ¥ö/µ)so£4ïÖ¼[ónáJwÜypçôlçÙ6϶y¶M0 ^ê¿ê‡«®~8ãµýkÐ_ƒþÉý9ç¶à?ï‚™ëg®Ÿ®´\rÊÈHm—¼·ä½%ï…+­Ü¬r³ÊÍêw¨ß¡~‡ŒG¦ÊÅU.®rq¸Òw¸ãÀ™Õ Á$çÿúé_?ýë§Œo-H-¤½ÎðIÃ' Ÿ®ô´Ž§u<­c¸ÒyçÌ;gÞ9©a0«Ác'ý÷¿[¾¿åû[¾÷é–)§Ê_“´&iMR°<a™ž-鄳÷œ½çì=AÊaì ³6ÌŠ¦(-}}éëK_WZòÁ’–|0Òêìèi®lzeÓ+›Û•IƯ ¢ãÚ)¥]-vµØÕ"\ilÁØ‚±ÿÌÙ\6¹lrÙ^Wôº¢×áúØØâc‹-É Ô¬¾nŒViGfà£ø¨(¥þ¦©-  `"Ôò»–ßµü®p¥W5½ªéUM3ëÆGÊiÙ¾LõwïÆ{7Þ»1ã{iúRÓ—šãª`\K¸ÒÆ?6þ±ñ™ÿ`$D¸Ò¥Ï-}nés‘Ó[–Ì^2{ID?)§·à5~¬ñcp¥…*üSáŸ2RÛUV5ZÕ(\ipC6sotÞ»âÞ÷®WÚçƒ>ôù ã{¹ê¢«.ºê¢Ìªyzž]ºúìÕg¯>;\éÙkÎ^söšp¥Á³9£{R»¸vlŸ\Aïš²}Êö)Ûƒå]VvYÙeåi-NkqZ‹ôl'H+uødÎ's>™n¤ZN1uÇÔSw„+ÍÐ4¿YÆ9Ð90Òœ»àÜçãèÒàùÍ®R &•]°~ÁúëSÇ'a¼Ó_óʘWƤAôÿWû¿ÚÿÕþ‘?v6«¯£Uá-…·ÞrlQV3žùð̇Õ³Vh {ß@ˆLiOŒ¦ÍÜ=7SÎLõW|DñÅGd|ûÁ‹íµËï\~çò;Õž7õ¼©çMÍÎÖùyæÏ3žy|o’p}Të£ZÕê>¬û°îÃ"¹?çôü±á l®4.1.1.1#õYuÁª V]®4+žW­RµJÕ*…+M;…~Yq¦zåùWžåùp¥k^ûóڟÕ6ïÓ¼Oó>áJ÷®ß»~ïúÚ4....nÎ]sîšsWÊi‡‰dÁ§Øs†œ3äœàù‹Áò´“^)ÝÐþ†ö7´/²½Èö"Û‡¯¾bøŠŒL|šýFŽ9fä˜p? Ê×1_Ç|Û®j»ªíªH«¹s s`¤9£ùÍÏhîÚ)s¯~«QíŒjg„›Bvæè™£gŽîß®»þíR—ö>¹÷ɽOn6¢Ùˆf#"¿ÿdõuc´J;5þCƒüÐàD‹IÝ>uûÔ {Þ^ôÍ¢o}“ßIµÑA€µ9nsÜæ°_ä*>PñŠä¬#*[¹l岕íµ[önÙ»eo¸Ò³bΊ9+&;G¤ýñÉŸüñIÖÅ*xjïOq?Åý÷ÙeŸ]öÙe¯wy½Ëë]˜üÀä&_uýU×_uý¹ëÎ]w›ºnêº)xzb$·~NoÁí3¶ÏØö™‘iÿF>=Ò~.cÅg*>Sñ™Ìm‘ OWxºBØÉØw¼ºãÕ¯füvR¥Û*ÝVé¶Ì­y0l¸ÒÝÕvWÛ]-\ÍÃ=Ï,œöo·»ýÛ¥—\jp°Í!M†4Òdñ²ÅË/ûkä_#ÿéÓ*2¥œ,zUµUÕVU –_>îòq—‹IŠIŠIJ{ 4}¤é#MÏ,wf¹3Ë­<“2rŽ1˜(uAÞyäí>®û¸îãúÝ×ï¾~÷…[?˜°±ÌUe®*qOïstŒ4g´8£Å-Žo¢õê7¾J|•ø*GÛ燖Zbh‰œòÜܬ¾nŒViGfûÛ¿Øþʼn9KÁÚÅk¯]\êöR·—º=uipUDfÙóËž_ö¼¶€€0*¡PB¡„BáJ‹¿Süâïä¬#*”X(±Pâ±½61&1&1&rŽeß’}Kö-ÉÈ‚)FƒÉýž^õôª§Wµ[ÐnA»Áé¢ë‹®/ºþ‚С B×®¹v͵k‚ÔoFwå¬qi9½Ó^?ãSù¥ÝšE¾*òU‘¯27E]TtѱÕç(ö²°è¢ 3·æ%F”Qbıռ`™‚e –Y¸dá’…KŠ,,²°ÈQ×-x·¶lÞ²yËæ§÷;½ßéý‚÷ìs]Ÿëú\×ïþîáïöùq’BI¡¤ m0éêIWOº:96969¶G—]zt zEz6sÑø‹Æ_4>åÈÈ {¼kûÌí3·Ïl¿uþÖù'Ý=éîIw§^'xâïg¿qög÷®Ø»b™>qtŒ4%Ÿ)ùLÉgŽo¢ïê7{QîE¹}1ø‹Á_ ¦†·fP:ªõ¨Ö£Zç”Ôoö\7F«´“Ž™Õs¢2•ËT.S9øqR¥ö•ÚWjŸ²4¸ª þoþLógš?“ñÔ¬¶ :H¡Ò¾é“¿^þzùëå¬#Š-[&¶Ì1F#Wb®ÄúÔÞ»dï’½Gý¥7˜’tÀG>ðQ0Åh0‘]0žfnë¹­ç¶>¶úœòÐ)òPD÷çÞ‚ißæˆÛ·%.C#9Ò¾eŸ¿~þúùëgnÒ>‡dVò#+jžvºn϶=ÛölK{ U+U­TµÒ’‰K&.™Ø²bËŠ-+¦g†îºc莃wÞ9øšU׬ºfU$§Oœ#îVѺ\ër­sí”ñ«ßpοíüÛοí`§ƒv ·Îuc¯{ÝØz·×»½Þí9«ÿdõuc´ŠKˆKˆ û9µoñ¾ÅûŸÈñ >ÇÏX˜ußµQò½OˆL…’ %JÞÚÚý_J÷}²ï“}ŸÄ†bC±'D4b ÆŒ-ŠÅÿ—Ò_ü2à—Ar4;kŠ ý¯û™Á$Ï­G´ÑzDz¶L×yá[¾uá[µ?®ýqí+·¯Ü¾rû¶›Ûnn»9xÞÞ„… ÿÿ/²oݺ¹M¨M¨M(’o°æÜ œÖá´§uØÚÚ÷_Jƒ±b…C…C…3Ÿ]¡]¡]ÿíý¾xßâ}‹Ó_ÛôH{TV\b\b\âo¡ßB¿eh/Ù_ó ’{C{C{b›)GF¾÷rÜËÿT÷ñï||g0¾se£•V6ÊÈ3/ƒwhΚÄòÄ”²‚V žºL½9õ,P¯@½õB1¡˜PØùB:ÝÖé¶N·…n ݺ-’ûžs s Ñwí”¶C8t}ùõå×—·NÐß.¹î’ë.¹.|íÉÀÏI³SV_7F«´ÏoATöüM/ùxÉÇK¾ô÷K¿ôw¸u.¾õâ[/¾uéëK__úº¶#€ˆPA8\iÎzþkVGã·–¿µü­eö×*훘ÁȆ›Ï¸ùŒ›Ï·NÌÖ˜­1[[h} õÅO\<1˜®sꎩ;¦îÆâ4^ÝxuãÕÇk¢Ô¹SJûWð¿—û½Üïå2R“à&oØíŸùû™¿Ÿ™ÉÇžæSÆÓn¯ô‹oß ¾AæÖ<þÒøKã/ͺš§|¯õ>¹÷ɽOžúÅÔ/¦~‘2íñÔœ§æ<5§y·æÝšwKÿÍ÷àY†FÂE¾UV5ZÕèöa·»}X°$ÒR¿ÿôöÄB‰…SžÇÎÚ|Öæ³6‡[?ò$äèH4];…³²ÕÊV+[½XþÅò/–OÏú_LúbÒ“ârÅåŠË1wð²úº1Z¥™U T)PåČ̰]Ãv Û.õ[á™ ÏTxfu¡Õ…V R¿Ÿj ¢ƒ0ªø;Åß)þN¸Ò½6öÚØëĉF‰%F”;‚6¾e|Ëø–‘VçI'užÔù×~¿öûµ_êÒ õûîÃï>üîÃSNšrÒ”“*7«Ü¬r³œžè¦L)íÛi'2ŸoþöáoÎÜ#úæÙožýæÙp¥Å¦›VlZÆ÷òõ¨¯G}ÉÓÏn˜µaÖ†YáJË(W \¬è)ß›½êôªÓ«Î„ç&<7á¹”I‘3ÎL8óü(¤ûãÝïþ¸Ï¸ÈLŸøÎ¿ßù÷;ÿnT¦Q™Feš|Õä«&_½÷Ø{½÷XÚ¯ ÆÙ4¿¯ù}Íï;¾GôÌ©_Oýzê×ÁèÕÔ뉺ÈL¿9:}×N©½¥û°îúK]ZãpÃ5‡›„<_Ç|óuÌ)? ÈêëÆhõ?’ŽU T-PõD‹IRLRLRÌc«ðX…Ô¥EYXdᔽSöNÙü,³¾Ej ¢ƒ0ªææš›k†ÇóÕ¾¯ö}µ/s÷8|ÅðÃW\väÿþµlÞ²yËæÇ9›jnª¹)\é¶/¶}±í‹HkÁ´Ÿ[vÿ÷pÿíßnÿvû·O„ésb ¦”ö-õŒN»`÷»/Ø®tíÏk^ûsæQÚÛ¼à÷ ~¿à÷Œ÷Ì5¹×ä^“;skLCšvOËÎ÷TʤÈò;–ß±ü<7ôó¢Ÿý¼èñêÉq,;ã°ù¬Ígm>둦4}¤i©Á¥—|çw^qçi¶žôÊI¯œôJÇk;^ÛñÚ…K.Y¸$gsá˾|áË‘p¦*}IéKJ_.µ¤^õÔ{PïH;Ç::}×N©=ZñÑŠVÜTcSM5R.Ï3=Ïô<Ó‡O>iø¤aßûvØ·1I1I1ÿ1ÕóŸþœðç„KÏ¿ôüKÏEüSp²úº1Z¥™¬ûK${çÓw>}çÓp¥­òµÊ×*ßùƒÎtþ m©I¡.vá° ‡…+9dæ™C2wߘøÆÄ7Öù¿Áó†ï/îë¼Uç­:o…+Ô{RïI™|;ûç™?Ïüyæ%þ÷¿…¿,üeá/ioaËÞ-{·„},R‹n-ºµè–Y·hÓÞW$ȉ-˜Ò¹ Î]pî‚p¥ŸÊ¯Ö‚Z j…ÝþÌÑ3GϹñ™ñþŒ÷g¼lí•Y{9j±¡ØPl0Az¸U‚´Mêåÿõñ_ÿ5ø‰ÿþ—öˆºô „Ÿ6ø´Á§a'}ýyÆÏ3~žaÔì”\6¹lrÙYCf ™5äÚ5×®¹vMÍÄš‰5ƒŸ=¥ýÚà¹ìÿëá=ü¯w¸ãÀ>˜ðÁ„ªVªZ©j¥ÈüùÎû ßoø~Ãp¥snžsóœ›#­ÎÎÎDßµSJó‹Î/:¿èèkF_3úšÔ¥}æö™Ûgnýõ;Ôï<ñ79696ù¿¤x}³è›EßDþtÐY}Ý­ÒŽÌ9kÎYsΚí9âs[Ïm=·uö|£ÔDŸSñ™Ï>Oøü¸}Á«×¾^ûzíÕÎztÖ£³ n&fÖÑ×{í±×ûæûo¾ÿæû”˃ ­FµÕjTÚûÚþÅö/¶‡™qî´s§;-³âô‡HîÏ9±S ns„+Íø¼z×Õ»®ÞuáJ×}½îëu_gV|Ö/]¿týÒp·ûs­Ëµ.׺Χw>½óéßW0Y}\¯¸^q½2¾µ¹—ͽlîeÁíéÔ¥Át‹×¬¿fý5ëB ¡ÿÜÕâe‹—-^6zèè¡£‡¦~íþ_÷ÿºÿ×ʡʡʙÐÛƒ'±…. ]ºÔgÙñ²»Áî»;¿QûÚoÔÞöô¶§·= þÒTûãÚ×þ¸Ç==îéqO×Á]wÜ'¡OBŸ„>¡>¡>9àØÏçk øçû™ Uø«Â_¥½N‹v-Úµh—ñ}½Qç:oÔ WÚì©fO5{*’£q¤ê‘ªGª^ïõ÷^oÆ÷#[zHÚýüš®ùáš•Sã†+]öܲç–=—YǤ—•žÑâŒg´ð—V¶ZÙje«Û‡Ý>ìöaç®;wݹë?õñS?uÛ†m¶m÷ª`êÑvcÛm7v^ܼ¸yqÁv®YuͪkVåÄÑ-…’ %JWúËÄ_&þ21ÒêìèHô];˜üÀä&?=I¹<ø±Åˆ÷G¼?âýÔgÚà ûOì?±êmî[²oɾ%ge¬¾nŒV?6ü±á -ªh HM€ˆ6«ç¬ž³z†+ ¦ÌÈ4zÁ3ð†4ÒdH“Ô¥ù:æë˜¯cçÓ:ŸÖù´ÈÆ»/¼û»/d$‡®:tÕ¡«n¼øÆ‹o¼8Ü:Á˜°ô¤Îh~Fó3Â>;yö£³ýhF¢ñ{õß«ÿ^½ãmoëx[¸ñ@Y-˜X5Z[0¥‡k®q8\iÚOdL¿É¹'çžœ;ëÞïãNwò¸“ÓžJ®ëÜ®s»ÎÍܤW0ñcFjþp»‡Û=Üî›QߌúfT¸un*ySÉ›J†«yý+ê_QÿŠp¯]öü²ç—=ŸYS’¾µó­oí WzÑ˽|Ñq{^lB;ÚcÙ?hÿ ýƒ‚1¾Ê4*Ó¨Ìå /_xùÂ÷{ï±÷KûµÅÞ)öN±wxáxaÄ 6Lx¿óûßï|Á¦ 6]°)§Oi˜vx϶=Ûöl‹Ìš;:¦Ö»âÿþ;‘¿ DòµÓ´o§};íÛIwOº{ÒÝ©Kï*~Wñ»Š_vä²#—…± Ù}Íîkv_Ö½³²âZ7;¯£O¸ÈœòÐ)òPð)Ÿ‘í;ŸDN[@ö ¢]ôôEO_ô?&« ~AÿÏíØPl(6=[þ*÷W¹¿Ê}Ë¡[Ýr(Ü:½j÷ªÝ«vΊFÌÖ˜­1[6‰… %ºõó[?¿õóàéb©× ¦4캩릮›Ò³Í­þ×ê­W:øžÁ÷ ¾çØnZ}zó§7zó¥—\zÉ¥—#ÕŽW‹Ä7ˆoß Z[0¥¼ãóŽÏ;>\é×£¾õõ¨Œß‚LÏX– &G»¯ íqw¾»óÝ/Ü:WkóY›Ïêß®»þíJ .5¸Ôà;¯¸óŠ;¯øjßWû¾Ú—ökƒÛñ#ùÈÈG‚¹úÞÒ÷–¾·Q|DñÑÔ"Á˜æœXsç@çÀÔÞúõÿù.i×NÁ96Ü;îÜ©çN=wêÐCK -‘žžð}ýïë_?.1.1.1ui0V8ëÒÀG{­›×ÑäÏ NøsB¸ùê|\çã:g|/é9Ÿh—ìi ÈÀä› n*¸©`p“:ui0\ð\®¸\q¹&¾1ñ‰olɵ%×–\Á©`„èg—}vÙg—·çlT°QÁM56ÕØT#õ6ƒÑ«ÏÞûì½ÏF\¢"ˆF0~+uiÊßéÑuϨ{FÝŒ› ¦Œ ž Œwy¡Î u^¨sVÌY1gÅL9iÊISNJ½Íà¦í«¼úÈ«¤?.ïty§Ëƒ×¦. n즼a·  ònÙ»eï–½ÁÔ„r åÊÏ>|åÃW>|åÃ`œÄuS¯›zÝÔÔ“é<ðä'L»VAúäØF3¤ö\ÛçÚ>×6˜6ðÀî8pGêZåÜL-H¥ý̸¯~=ðëË,S°LêÒ oüŸ¸¸¸¸¸`„Mù 4øÿã¿>þëã¿ZUnU¹Uå´ÓÁMÕ—v¼´ã¥™û~¯ø@Å*>üøÒ×¾4eÍg ™5dÖ_ûýÚï×~÷ý»ïß}ƒþùæyož÷æy—Ö»´Þ¥õ‚žnû±c Æ|zÎÓsžžó?jžJ % Ý1tÇÐáV jÒ|@óÍ5 Î¥ÁTAß úyð>]2{Éì%³¾9ðÍoV¹²Ê•U®L;IÓæ‡6?´ùáÊîWv¿²»Ïµ£5sôÌÑ3G×L¬™X3qÄÜsGÌM{ýà]ßú·Ö¿µþ-?·&÷šÜkrKÀG>ç@ç@rúµSïR½Kõ.ÌU“rypÝ;bÒˆI#&¥›Áñ† 2`HêÒ½ë÷®ß»¾É”&SšLÉŠÈÛµnv^7F‡5yÖäY“'\é¥ç_zþ¥çûìÖp´b’“““““³ggKò,ɳ$ÏU®*pU”˧ï¾wúÞz‡êªwH“N0Âéšß¯ùýšßSßRÉ,ùë寗¿Þ¬^³zÍêU¹Yåf•›¥ÿµiÿb:s¿(#˜Û$´Ih“$J³äBakÌÖ˜­Áͯîãºë>îh"«ELÓýÊ민þÊëG;Y÷¸¯Ç}=îë«K]]êêRYQÿ´c•SZ0¥àFê%^òà%fu?"Z‹ÓZœÖâÌøcFVÄ'73©Õ¤V“Z5¦ù3ÍŸÉܾºÐêB« ?\HÚ“´'iOfÕ<˜€î£Âþ¨p‹Z<ÐâôÔ<¸E^xoá½…÷fçÙ»ÊÅU.®rñ´/¦}1í‹B‰… %úD;ZÁÍ·}|ÛÇ·…w·%nKÜ–Îwþ»óßÝ>ëöY·Ï*÷¨Ü£ró6ezÎÞ‘ç@çÀ¬îÉY}Õš5ük§ñŸŽÿtü§½®ëu]¯ëR—öèÒ£K.#ÇŒ3rLV´Ú±E5ë®u³óº1§R Û5l×°]Ux¬ÂcÿåIçKû.í»´oÊŸÔdÝñFÚçcö·Qö´'‚Hȇ @ŽQ=õüÕó©ßrÊ(W s·Œú²oʾ)ûêw¨ß¡~‡ˆŽÆáꇫn~•-]¶tÙLž°1{ôfž7ó¼™'#‰ÃÝ¥w—Þ%“I–^~xùáŸ6ø´Á§ ‚Ôïë^oôz£ÌÝK¯:½êôªs"·`Jçßvþmçß®4íTúÑ j¤=Š,,²°H&?g+˜ê3¸liô8kóY›ÏÚ¤=ÂMÞxl-;þ½ñï/ýi@pSû—¿ øe@öœ©‚1IŸ¼öÉkŸ¼&õ›‚* [6lÙ°eÁùäÅò/–±üéן~ýéס’s9:’³®¶mضaÛ†p©ß3œyäÌ#IýÖ.^»xíâàç©Kƒ1ñG›ÐͺkÝì¼nÌéV5ZÕhÕùL~ñÀ‹^½óéOÏH4‚'4'I8’p$XnZËôn‚?_óùšÏ×ÜØkc¯½*µ¯Ô¾Rû †×λvÞµó27Â7~¸ñÃOäLíÞ÷®¸wEêåËú/뿬æŽùj¾ªÜªr«Êãf2òtÏà‰twï¿{ÿÝûWV[Ymeµn%gñû=Ø~B¡„B …êö©Û§nŸcÛNÓaM‡5œýÚnn»¹íæc«yÐÇR¾+K_Rú’Ò—dÖñ?Öy{ÖÛ³Þž5·õÜÖs[gä]Oê3êU]uÑUM›9mæ´™fm˜µaÖn¬pc…„Ä*š®yœ‰èk§ØPl(¶ç­=oíyk꘤˜¤˜¤~¦“á÷Z™Êe*—©<£4uiðc‹f÷5»¯Ù}‘s­›×9Rl(6;uÇÔSÿËõ­òµÊ×*ŸOvmÇÆÐäxÁ³¯Ê^ZöÒ²—ÏWûþÆïoüþÆ_{þÚóמ¿—û½Üïå –-X¶`ÙÂ?þ©ðOU/®zqÕ‹ƒç÷´¬Ø²bËŠå?)ÿIùO¢ãë\ðœ³2W•¹ªÌU×N¾vòµ“ƒDiÝÕvWÛ]í´Ž§u<­c0Yh•fUšUivÉu—\wÉu­´>Ðú@¥¾•úVê›uÑHy£'h¯àÉ”ÁØî?&ü1á EÖY[dm‰%F”QãPC5]ÙôʦW6mÿvû·Û¿vÝ‚ç–|µä«%_ nÂnݾuûÖíɱɱɱç½}ÞÛç½]ax…á†÷ªÝ«v¯Úž©ðL…gÒ®sðTÅâ3ŠÏ(>#¸yl3¾A|ƒøÅß)þNñwNïpz‡Ó;œÞýôî§wž'wl1Œüü)Ÿâj&ÕLª™D5õ:ÙÓ‚±#?Vÿ±úÕƒø$Æ$Æ$ÆãÌ‚v9oêySϛڬO³>ÍúÜ>ìöa·‹„wzpÁOO¾,üeá/ OÔ ÎWAÏzTýºõëÖ¯Û~hû¡í‡^4þ¢ñÏ’údžbC±ÁsïÙxÏÆ{6ÏÞž|™´-i[Ò¶½ëö®Û».×Ö\[sm ’…·ÞRxK¥Û*ÝV鶇k®qøŠ'¯xòŠ'ƒ±ne®à‰õAò¯zÕêU«WáôŸ+Âɉ1ttÌY}5\Ò.͉×NÙy¼Y±Ç¬»Ö=¾×Yá̲xÙâe‹—µlÞ²yËæ)—3|ú2ôe(+æ¾Jû³òÄœúø¶Ñ'ò¡ÀD­ì|"¯hdE 3÷i²™»å¬«mNiÁpõ F"#]"¡>9åÉõÏé±Å5À‰p%à(¶ø.ÉWæ‘vÝ9zWì]±wÅ·~}ë×·~M¹üòq—»|ܧ7zó§7gE_Mù“ÙÚhKÜ–¸-Áë'føxµÑ*ò¡y4ÑÊ׳œ¬«aVl9ûãi-8~ÔøQãGuº­ÓmþãénÿùñŸÿù\ßçú>×7˜b]Ïéõw.çç@}L¿½hºnŒî8pÇ;>þëã¿>þ+uiו]Wv]9)aR¤,éÃ{¶íÙ¶g[Ê%e+—­\¶rB(!tâ½iŽo[@Öñ `ŽZóûšß×ü¿Øé`§ƒ„8^º¬ì²²ËÊp¥ÁÈ¡9w͹kÎ]¿Wÿ½úïÕC±¡ØP¬¸¸nÌj#_ùâÈS/jÎSsžš“uãM«Õ¯V¿Zý»êÞU÷®ºÁ’‚e –)XfÜÏã~÷óqçŠ Åîn°»Áî3GÏ=sôÃÝîöp·p«Ÿ7õ¼©çMÍxW[@ö Clx°áÁÔËó×Ë_/½’+Ù¨íª¶«Ú® WºuûÖí[··»ýÛíß>gë9[ÏÙ—+.W\®`t”è¸nÌ åÊ%”{åÃW>|åÔ˯|íäk'·.ݺtëÒY·÷¢ÓŠN+:­Áé NopúçÝyÞçÏ`¾ðå _¾ð¸=ãvyÿåý—÷>…Ï]wîºs×u¼¿ãýïOûùú'®âú'rn[@ö |ÛãÛßö(P¥@•U‚%û–ì[²oI\ ;]rÝ%×]rÝѾ*%z®³ÂÐS†ž2ô”àHƒ%ÁÜgÞæýgÞÏêñ¦ß×ÿ¾þ÷õþ²ð—…¿<ùï'ÿýä¿sâ×N—wº¼Óå 6*ب`Îm ÈÀd‚J (1`ïú½ë÷®O¹ü”‡Ny蔇võÜÕsWOQ²Ó–µ[ÖnY{lÉ`\7f–àˆ^oûzÛ×Û¦\þ\ãç?׸„ *LÈžšäÜÔæÕ¥®.uu©ñŸŽÿtü§9ŠÈi ÈjÀdšÔ·cöÚ?hÿ 7S€ìŒæ™>súÌé3ƒ%ÁÔ—q[â¶Äm‰IŠIŠI%×YmH!u†Ôùkä_#ÿ,éxmÇk;^Û}\÷qÝÇošRžéy¦ç™^òÁ’–|°eÅ–[V|÷Îwï|÷Ω;¦î˜º#ã±Òœ8b’“““““³ggKò,ɳ$ÏU®*pU”˧ï¾wúÞz‡êªwH“ätNøsŸÎèyFÏ3zV­TµRÕJ'½rÒ+'½²ªÑªF«¹±D‚¸¸¸¸¸¸”g¤ÔKpݘÁsvËU+W­\µàèŠ|Uä«"_ÍÏ;?ïü¼>qÂ}:ÿgn|´Ù)ò¡À™ ò¡¦€ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(‘'*‘¼0yaòÂÅ_,þbñÿcÕ˜PL(æ8TÑ~£u¿"l¿ök¿ÎTök¿ök¿öëHí×~í×~íבگýÚ¯ýÚ¯O"û°ýÆÄÄÄĈsôî7‹ED¸å•-¯lye(**$ S@D‰lM×;TïP½C‚²u èøÖñ­ã[O›>mú´éY²3û;RGj¿ŽÔ‘:Rûu¤ŽÔ‘Ú¯#u¤ŽT„©#aGêHEØ‘:Rûu¤Q½ßãð„`})Ã*t¯Ð½B÷l:ˆääääää9œgD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀGmÙ eƒ– Z|`ñÅ‚ÿň1ÉÉÉÉÉÉ'râûÄ÷‰ï³zûêí«·Ïi=§õœÖS~›òÛ”ßv?ºûÑÝfdËEž,òd‘'[k]¬u±¦SšNi:¥f隥k–.ú|Ñç‹>¯ó™ë„KïÌ·3ßÎ|“·NÞ:yë€7¼1à}ƒö Ú—­£xó?”ÿ¡üõëÚ¯k¿®mʶ)Û¦lÉ?KþYòOÝȈhO— • •YÖwYße}íõh¯G{­ˆ]»"6ÒªY'©NR¤'‡?9üÉáuÖXw`h[h[h› ¤_4&€C‰¡Ä%ï-yoÉ{›tnÒ¹I|íøÚñµv3å<ï”õ‹¿¹àË&Æ.>õRƒN='ïsšæMÊÊsK®·bzóÈMɹ÷Î9{8´ã¡¿~lïûO=|¸ÉWsâ7<¼qÄž©û¯I½ŽgÀ‰)BGÇwˆïß!íÔïü|W<]¥Û‰“ú Ç{‡Ôëq b¨‹À‰#âÀÉÕ’«%Wk[ºmé¶¥S— £~Oí—g`®sOÌf Ž=ˆC¸I¡ƒñÔÑàDq àמxí‰×žX;zíèµ£S—®ZzÕeÕ/?ÑFý†Ä!ˆIêÒ †A<Å €È4sòÌÉ3'ÇÅÅÅÅÅ |oà{ßKlžØ<±¹È›zð–³·œ½åì 5j$¤.V«ñ§©?·Ä˜‚³5[j‹›üÚeÏ-WÍ»üÛ§R—®‰[·&®Ü¦r›Êm+"Á‘¶GÚi[d^‘yEæ¥.}àÕ^}àÕc{Œí1¶ÐÌB3 ͱôˆŒÀ»C»C»oýðÖoý0uá]ÍÏ/\ò7©ß´ñ b•ºôŸØîíí+"Áìfß0û†p¥ÏÞþìíÏÞ~Ö²³–µÌÈàô‹ˆð’–|°äƒW4^Ñ8uiߪþ«ôƒš*=ÂÅ*ˆmgQ \<êâQ Fú¦½¦dpúï) Ë„ʄʜ7ÿ¼ùçͯ_;¾vÊÂÉÅ/«UáÅFß•,;QS¥ßü ;7&uh³ëóUßÝ“ryÑ•EW]ù}£ï}ß(´-´-´M¬ˆABwdç‘GvÒ½éy•i¢S;Î#€—õ]ÖwYßÔ©ßòï¼õ”¹^)Y öUt´‚¸1L¹<ˆssQ réÛ¾íû¶ïÛ~sÝÍu7×52øØçÀMs5ÍÕ4׊ر+bS.ÿô²Ë?­ÔªöGEÇäß¡»›•×ÄwÙWêòÏ?½üëS.¯“T'©NÒœ#sŽÌ9"JD2#ƒÖq¼3ßÎ|;ó¥NýÆ.È»)÷‹µË½=ÿ:tF1 â™ryó þ¢@$32øh·ðä­“·NÞšzù #ëÌ9óHè¥Ð…¡³tè y)taè¬â™îø@d’ Nã‘N %…’¼1ào¤.¼¼Ùé+ MŒä˜ûmÁ‹ãâ&Nü÷¿¸zÏu}ɵ ÏâŸJ %9Y³H‡sÀñOÅ?ÿÔ¾Aûí”ryýÅûx»@«¼äΡъ MýûÝ6ÇÅç ÔYôI›uÅ"¹ƒx±M¹<ˆÐNä\’Á)‡Tëêí«·¯Þžzy—Qç^_¼@„Æ)64!ôïg>ZÛgûë—&ú3WÎjæp± ×I‡DæœÖsZÏizùEqÅž,pO$eWÏý#þ2éîŸÇßóį¦mkYkíôý_mzþÚ C~y;'6s¸Ø†k ÈéNÌdðqHOùmÊoS~K½¼ÄÛ§®ÊÛ>‚2û®Ÿg'ì>né¶M†–øzߎG6ÕØ{êßgçÜÎ.¶áڢɉ“ ŽINNNNNΞZqhšŚkZ¬iÊåå<ï”Ë÷]Y»Ú¸HʆY‰[ÿ¼xnë_z%>œºôñS¿ê°½xÊ% :\xaäwë‹ò²ríÍóîù~ϔ˛óÛœßæä©“§Nž:Þüœ8‚„îÈÎ#;ì¤{Óóª yÜcl±=Æ©åÈ9¢lM'6Il’Øä¬Ug­:kUÊå]bÏ}ºxÅ!?ÕÙpfÁÈïqq'þûß)—ä”ð}g®¨üÓž1I?ôßõmÊå›km®µ¹V¡¹…æšëMÀ‰):’ÁÙ:tbïÄÞ‰½S/¯01vñ©èRY-\œÃµ œ8¢cšèlMï™±gÆž©——tê9yŸÓ¥²Z¸8‡k81åÜdpžìÜÙŸåþ,÷g¹ÔË 4Í›”[/ÊrÿÄyáÿ]Þð݆ï6|7ü©- - -KÿêA2¸Æ˜cjŒijÊ®,p¶Ž>tï¡{Ý›zyž[r½sXŸÉjâ Ù©Ir“ä&ÉÙ¹ÇlMçy!Ï y^H½üЛGnJ68ˉ3d§¹1scæÆdç³u è|[òmÉ·%õò½sÆ…z†~ײÒ?qNeúÞé{§ïHmïƒ{ÜûàÔASM4±àÄ‚ ¦çUötØÓaÏÅ£.uñ¨P›P›P›ì©m¶&€ ¶(Ø¢`‹ÔÏšÝñÐ_?¼? Å…Jé@YçŸ8§zp½CõÕ;$>HlžØ<±ùÈÎ#;ì<Í7T0T0ô?R¿¼úÀ«¼Úcl±=ÆšYhf¡™Ù_ólMz©ÐK…^J½ü»Iõÿ:-ôShƒ®”•þ‰s(4K,à?ýGÒwٳ˞] þÒôIßö…Új þŽ“l}pþùæ˜zùâø]ãöÜ©Ke5q€”‚¤ïÀ÷¾7ð½³–µì¬eÿŒ÷MSôÝ\wsÝÍuû¶ïÛ¾oûã5Þ7µlMç©“§Nž:Ež,òd‘'S.ߘwÏ÷û{ž•¼4¹±N–‚ØqN¹iÓ¡ÏB;BIºõQû,´#”ôO Ósˆ’¾qܦ€þG™P™P™óæŸ7ÿ¼ùñµãkÇ×NY8¹øeµ*¼Øè»’åc'êèé7¿ÂÎIÚìú|Õwÿ1ö·èÊ¢+‹®ü¾Ñ÷¾oÚÚÚ&VDÓ;g–ã<8HCŽ;vîØ¹© ƒæþ‡©¢©Ò#ˆUêÔoàŸ8KýŒôÍ Ç{p`whwhwÓ­M·6ݺ¢ñŠÆ+§,¼«ùù…KþöÄ„W”½Rƒ¥í±ŽkfoýdØÌo~ßY,åò:óêÌ«3oNÙ9eç”   +ޝ™“gNž9¹c—Ž]:vI{M#}Ó/2À¡P(Úrö–³·œ]#¡FB„Ô¥Ój5þ´â#õç–Sp¶fKmq“_»ì¹¢åªy—ûTêÒ5qkâÖÄ•ÛTnS¹Mb@$8ÒöHÛ#m‹Ì+2¯È¼Ô¥’¾Ç&WäT%HO3pÌÀ1©KƒÔæ/¥ÿ°@¡’UO9é̪ÕÎu%xvé»úîMsÛïîÚ»xâ®{oLÏkëÌ«3¯Î¼×Û¾Þöõ¶å6•ÛTn“. „U à$†C‰KÞ[òÞ’÷:7éܤs“øÚñµãkífÊ,xÞ)#ê-~sÁ—+LŒ]|ê¥zNÞç 4Í›”;”ç–\oÅ>ôæ‘›’sïs0öphÇCýxðþï:$Õÿë´Åñ»Æí¹scÞ=ßïïy´û-º²èÊ¢+ÇÎ;wìÜzí뵯×>T(T(›Ç(9P4&€S***³¬ï²¾Ëú>ÚëÑ^öZ»"vEl¤U³NR¤:IOrø“Ãë¬;°îÀжжÐ6H¿hO§²3ßÎ|;óMÞ:yëä­ÞðÆ€7ö Ú7hß ì¬Cþ‡ò?”ÿ¡~]ûuí×µMÙ6eÛ”-ùgÉ?Kþ©;qÂ%€S‹ïß'¾Ïêí«·¯Þ>§õœÖsZOùmÊoS~ÛýèîGw?š‘-y²È“Ežl]¬u±ÖÅšNi:¥é”š¥k–®YºèóEŸ/ú¼Îd. ࣶlвA˺÷н‡îÍóBžò¼P÷¡ºÕ}Hd€ãK Jä€è  %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD `€(! %$€¢„0@”ˆÀQB JHD‰ÿ"þF—f%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/debounce.svg000066400000000000000000000106331431412030200251730ustar00rootroot00000000000000fedcbaxxxdebounce()fcarxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/debounceTime.png000066400000000000000000001400541431412030200260000ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTWãÿqSŸä1±‹TP;ر·cר"Š{Kì½ÆÞ{ïé Øˆ]c‹½Å.Š~Ü|Ïáù­³YØE–åýšsæä$aæî»w.óáÞIp )¨p Àà"€ÀE€‹ A .‚\0¸`pÀà"€ÀE€‹ A .‚\0¸`pÀà"€ÀE€‹ A .‚\0¸`pÀà"€ÀE€‹ A .‚\0¸`pÀà"€ÀE€‹ A .‚\0¸`pÀà"€ÀE€‹ A .‚\0¸`pÀà"€ÀE€‹ A .‚\0¸`pÀà"€ÀE€‹ A .‚\0¸`pÀH:Ĉ9pàé§ž†N :õ¨~T?ªS1gváí…·Þ†y†y†yhq Å¯½nôº5[ˆÑŽùˆQQ3ç$Æ9bÌ#Æ?b,DÍ0Ù­ ·2Üʰ¹Êæ*›«8Àm—Û.·]iìæ³Òg¥ÏÊ`Ÿ`Ÿ`ý½þ^ÿ$êIÔ“(ê`—§^žzyê豣ǎ›51jbTÅË/W¼œÆAZhq ÅÁ+‚W_>ùüåó1ocÞÆðØÔEˆÑˆ™ˆQбØßrÄJŒ¦ÄÈJŒ²¨s€]ÞÆ¼y+Æ$b|"Æ*Žùˆq”S‰ñ•kQñ€=€ñQ]ryÈå!¿¿¿i‰oß"¾EV_}|õñÇÞ½{s]f¢Â£Â£ÂwOÜ=q÷ÄÚ£jª=*±î_}ôiЧÁÉv'ÛlÇuI*ÄHCŒ:Ä$±Ú}‰‘×`oˆ±GbݹĸKŒÁÄxŒëœ“åH&ô³ÐÏB?£f¸€‘€Þ^x{áí…]»"vEü¦à7¿Iã”~|ñã‹_œ=söÌÙ3\5ÀÍ76ߨ<ðøÀã§qb+üWø¯ðéóÒç¥WÍyˆ…]8gË£21B£5®$gb,!ÆÎ<òc31NãªçA çD {¿üýò÷Ë·|³å›-vŽ•£ó¬ÉÖlð¥—L¿¸d@›bwn¯'—ªÞþî~™ÏN—™.mi¸§tMgê+ñx¦Oåj^÷»¬óùÙ£çÞ,‹2^ŠßybbbÎf>›ùlf®&$7'ÝœtsRÇ®»vì¿;HŽ”Yˤ‹iû²A«×}®û«F¯½âí‰@ŒÄ("~W0cŠœË<Áƒþž"ó‘³KL±i™ÍÆl,Fz\qHêÄx@Œ l¹ ?UWɶªË —½?qlÐkû~àîJñg5¯õ©˜7…í÷\1ÆãŠ€‰ΉñtaÏ…=ö¤‰J•&Êú/`Mºªšóå…ÏZVóßšX¡¯Ùþ݉Îå&ïËРm©Áê§]™ö‹™Ü/°_`¿¨\Q¹¢rÑ i‰=*zÔ„YfM˜eËÄ•þ£Â}B£v…5¬˜X¡¯ÙþvƒÝÛ* ìÓ¥õ‘ü#lù,a¥ÃJ‡•¦ ØCÜýÅHà_ªûZºåéÛ;4 Ô,7ÿ¥‹·ªŸX¡¯Ù¾Ô£ñ³6¥Ï1¿œZ#Ç¿|–¨4Qi¢Ä¨6I‘Ø2Z¨Ø§}xÎKý+ë}‹çJ¬Ð×l?lòñ§¾·š–žPÀ¦5½ÄxOŒýh ¡Ã9#ÎöÜSpOÁ™é2%Ë#·oOvkÖ³üg }M÷ïºt®°fHÍ“Åÿef°{Y÷²îeo]½uõÖUÚ8¿È ‘"+ÔmQ·EÝÖ{øÉÝ{?.²ðmçð~Îúší¯7Ø1µâ´†UJ¸·þé~?ùûÉßOÆDÇDÇDÓ*l'îøâîÿ/ïAìÔmܘFü—.>rÈÙB_³}ÉA¿½]“7c¡\y=ŽXÿtbH{€$ :&:&ZÜ÷­÷íÞK‚²VêÛ\Éé3ÌÙB_³}ðw§?/9¤n“A5< Xÿtbì'Æ4 p€áœ€‹J-*µ¨”õ_±DVSôVLç.>Õ=’Lôk±T¾ý‘*UZ.-â›;¯õÏ{öùÙçgŸÓ6À9Ý/w¿ÜýrÙVd[‘Íô-­%žñÈ\äjÆm§*¦I*¡¯Ù~wïÿ)yý_–öUªÕèÓѧ£OÓB¬wùù³°ùþ÷ê+wjöéVR }?°Ï½4àÈ…½?¬žõÏ+Fƒ´ pNâþ.îõÖûóïÌÿ¹ÐƤúšíûÔ’|òæöözš1Ì쓊q ÒB@B †s"†M¦/™¾dúë¿@þéÙâ¹pÒ }Íök†ÕÖ{ï±çžV¸Eôóï«Ô£ßØûûÞûöVnVî¡ÏÜ,ŠÙgïr¤Ë‘.G¢{F÷ŒîIk±$îìÿ:ßwü˜ÆI8ô5[ :t|Ú­v12¤€ó÷tq7ë½=F”PÝ® ̶±¸œÔ£ßÿÙzöU©”µ6ô]š·šõû—ÒZ€cÃ9ã_Ì»?ïþ¼ûf¿>ÕÜÏ3ûåçõ:n®ÚÙõ¢ßØû+šå/ì_"ð”¦ü3%m×C߇¾}­÷Ø»ïÍèXò+…¾–ûwåÃÿ èÖ§Wë“ùG™ÕCÏç=Ÿ÷|³7foÌ^ZŽ îæÖÛOÉF¿X=Úõ¢ßØûòGç>Ô.e*Þï£Y=ˆQ"mÙÞ˜½1{Å=Ýôý¾Úÿ‘órð®Ó;J.t©è×bß6çü…þeö³+Òp€£Ã9ÃÔö.Û»lïbö+S§ZÅŠäð®yçoú¸vô{ýA›YwXÿeò‹î.¢ýÀǵ'jOÔžB™ e.”Ù¬—>æ¾ü]¹ƒ®ýþÏþÕ‘°êÕ¦4ê³¬È ³:™TRýIõi?âný._få”÷;Sºvô{ï?~qPø“\kªµý~ŒYˆ#틸›¾×ü¥GÝ¿ž;Qª¤kG¿±÷Aþ{ç4«1VãFÚ°0œ0>àôϧ>ý³Ù/K«‹mÊ{!zgçGo“Oô{gcÛ–•šÕçjÏÕž«_G¼ŽxA[€ä˜?bþhÔ6¨mérý¯V‡—¿šŒ¢_‹ý´ý¶y™þi×Nu§ºSMžÍGܵÅܬ~ÊN~uOhò‰~ÿ'ŽYòçáC¹ø6þݬ~Äè‘®>&qï6ë™ëñKÝÉ'ôµÜw›¼u”÷-³úãF1†¤-{Ã9ãDºEºEº™ý‚Ô0K{îcßEv®0;yF¿±÷ײ·¾W±®Y]õéѧGŸ´(ø8–ZrhÉ!³>9¼ö’’e·$çè7ö>¸Dà1ÏNfuuÍóšç5ÏäÖ~Ä]ÛtÖoÝÉ7·/MžÑïÿÄÀk‡ê’½C©ûU ™Õ•IÒ#@B÷k³Þ8`R÷¹o&çè7ö>ðÉÚ~^-ÍêJŒ!iQÀÀpNÀøåË–³ì°2{§wK{ûÅíŸVU&ú½?Z±‰G¹Yf¿LÊäòÚ$œKÏ.=»ô̬^ÿý¸ %òúÆÞGï=|4àÝwuªfuÿÀ»í½&{Möšü¾ùûæï›'‡ö#îÔfíÇ·æ¿åõ‰~cïýêÎnÜL»$Ã{·̶#Iú%H8â-î×–ýpQ¯êm³ö~ûlx©O‰~cï[äœÖ´ éli1ž¤u€ø!v”]›vmÚµIÔáè5£×Œ^ó¸æãškR3ñCŒèKô%ú³_‡þÊØº@…³Ä½fûEïj3ý›âÈo#¿ü–6ŽÝ1ºctÇb ‹-,¶Ð²ïí]µÕ­ü•ˆ{ÍöÏzk>UK™Ý¹æ›?nþ8×n?âîlV…§w:øëMâ^³}黓Önû¯Yí‰Q%}$q6ëIytŠo*â^³}…;íNçÜhYob<)Æ–´1WÀö{ßè}£÷ÌF¹„ÁñCŒ˜×êkõµé_®[RkQñwD¼ÿ²ÿ©K±êyk^ÊW*ûÞ04tÃÐ C7ÐÒÀ±ÖÏ]?wý\³ûWÔ®°Õ z­ïm^ѽÜ]³:¼·âÞŠ{+\µýˆ»³å§Î]ü7¿à ¹–V=Òˆ ×úÞëx÷3ccÌÚaÒS€£ˆû²Y¯4bã3o"ÞÙ›|ü©¯é[ÅØ’–âŠØ~±çþZGl;`Ä,^¼ Øò‹TùÏ<ó²5Œ™Ö¥Ru/"^[ö·×üøºÒD³Žézçë¯w¦½€ý^<~ñøÅc³þöÈéeoÊ %ܵ}?¨{ûàW>ð(9gPΠœ®×~ÄÙ¬ý”m=½òî(Â]›öžKÛé—e¥wµÒŸ[Ö¤aÒ_€£ˆû²e[¥Qàá\'wmßwY²!Ðëo³‘€gÒÞ€í€í']a°uÀÉÚ‹Š/*¾¨höå¹’±Ux…ĺqÝÏ®^%¥wËúì wÐ;è´:°ßï)Où{Êô´¾û.Ï]ݸîŸgÐ6W5}‘ÁÕ°«aWÃ\©ýˆ;²å'õ¼Õnè ôĺq^z÷¤T[«˜>F¯ø¢â‹ŠôZ`q/6]ö¹Ù±Œ¾‰uãº/}þ‡á9¾·¬O1ΤÕÛ;a°£'k‹bÅ,ú@÷Ô;Ü÷Tþ6D¹ñÛ¿ªÞi\µ1fÝЭ–·ZÞjIÛ€øyåûÊ÷•¯Y{{ìî+•~#Ðß~Eñ‘Q>c-kµë®Cºqö#îÂfíÇO_ð,L%Ðß>oš:/Z×·¬U1ÚØCÜ‹-ûØ&{&XH”¿}ÿÖúòâ…ÌFbÌIÛ¶ N8„Áö N¦ÞE¾‹|iöõ¸s¨íO•"ˆríÙ/¿WÃÝg eÝûûók$ÄÓ–Â[ o)lÙ»öšÑªUþÌ„¸öì_×90±šn66xtòÑÉG'“zûwaËOWä·.ÆH™מ}ÙYÓŸî¹`Ö~ÄÈ“ âJÜÍz×_œ¬R2Q®=û 3ÚUÎ9ͲnŘ“lAüqÇp2~#üFø Ë/C»ÂÞÕòt ¾µÿ²ÂO«¥3ët^wzÝéu'Ú!ÄÁ›˜71o<ý<ý<ý,ûÕk§v­Ø×þýœZƒ.{/üÀ<ÎÈE‘‹’p€'s[ÏßêIˆkÿ>ç†Ê ~³¬a1ò¤€¸÷_Ë~µáÔà5ù¦ßÚ¿ïë.ïñ úÀ‹!ü<ý<ýÄø“v¬#þøƒmAœLµ oÞ&Üò pªZ3ͯ0ñ­£ö¿ü§Lµ‚ý,ëÙ(f3ŠÑÀv7ºßè~£»eZ1ïͬÛ+.½XosFÿ·±Ë“Ôà‡ó¥À*î–õœ­b¶ŠÙ*ÆDÄDÄD$Åö#î¼–ŸËãüwS;Ž'¸uÔ¾ä²ÑC×±¬g1ò¤€8ˆˆ‰ˆ‰÷_Ë~uPHø˜µ’bàÚ듽µŠµýYœ¡TùG•®œi¢e=‹ñ'XGœ¸ƒÍ';¯–¾Zúj©Y£ÑùbÀ‚[Gí/ºµ\çÿزžÛ†µ kFkÛÍÍ57×Ü\–=êîí3Ê•|â<°kÄÀõ¦W*–ãåÞdŸêVª[©’bûw^ËOT:ï¿M÷ nµ÷±dßaÓq¦…Ò›€-Ä=ײ/õ ¬Z#Ëù¤;ãÖ9à¶_Î_Yh·em‹ñ'­XGì<ƒc#Nv"fFÌŒ˜iÙÄÇó»W˜ÈÖÁûh¹óÓ€÷fÝÊÛ o/¼½@›[xåóÊç•ϲ/}^^‹¨Ú‘رû=ÙfL(õ•åçZé¿Ò¥Òj9ânkv/®bÉ•ÃÇ n»/P¡yîŸëXÖ¶…Ò›€-Ä=÷L\fþÛBáÀŽÝÿÒõX)_ïÄíù¼òyå£5ë€a0p²3vïØ½c÷Z6ëÓÑÍ;ùM!²MˆýàÉ¥÷üÀ¬µËõ/׿\Ÿ6 ÖE.ˆ\¹À²-·ÌçÇ,›7(uÕøñ`ùJ•ñ–Ÿ«Nï:½ëôNZíGÜm?°øó”†:t ¬M… £ÆŒ_—ÿn¸wìÞ±{éÓÀâžkÙ—^zØ­Älà„Ø{´)1ÂíŒe‹±(m˜!v~É3 &Nv|*ùTò©ôEù.vR«­%¬Mˆ}èªï”¹lYçkýÖú­õ£M€u'¢ODŸˆ¶ìEçLœÁ{#p‚ì_9P= S—ŒÇÓ~àÆÞ§|Ÿò}ʤÒ~ÄÝÖòS?9tñ–„µ ±÷»²°î_Ë:£Pú4°NÜg-{ÑôÓܼӖñ빓¥J'ľáÖàëùæ[Ö¼‹Ò2€à¤%ù„ÁÀÉÈÛQoG½eÙp½§dëêél¡éÝAmWWz1fŠßÔÂišN/´5W™âWsü'Ó£LsÒ]IkêœåªÛçÕ´¼›³½šâV±uã‘{{­ŠŸsÀs·o_å3Ëšï¼µóÖÎ[i™`Ý’óKÎ/9oÙ‹ß³êXù9ÎÿtUÅò?·ªQg[îšF®*¤Ls2F¦5Jœ(òßÌCKþÔ¿àÞGîRD?gŽ{õlUéÓ8Óܯr¿Êý*I¥ýˆ»íf/˜í-}åtïн¶dèáFE6UÕ>Ûjß¹½ÓÏzÏýÛ´#3,Íé6Ëca¡iy3ÔMѺué Gl™ìÌ1pÆÇy¦xøW`Œz;êí(z60#î³xmÁˆv9'8[ ;ÜóÌÐ’F“ôãkèTäPß,Ë3ÏqžînúÕnÓVɵÞëÛŒs+_ ü2×úµC+äÌp×[{o³¬y1¥e3ÀI—k‡ÁÀÉé×Hí¾v_³l¬–’ Œqž¸T»Õ¨V™ î^¿K_)MÝks»â-g €ßGtþ=à eió†æ ÍJËëºxtñèâaÙ‹>W²UYàœpƆ¤mjýž•oG®˜ ‘gÖ¬[ç·Ó9à çÆï/ñ‹eÉ.;ºì貤Ò~ÄÝÖòSøŸ\R÷pç‰KË\û%Û ßÿTèeûÈÇËè¾yì1ç €=¾m¾]ãüv_»¯Ñ³€qŸµì?[œŸ>¯à{ç‰Kÿ|H*ñ[¡ÌþÃ3K¶ß¹š…M~[°®sÀƒnZâ5/Æ¢´L`†Ø5¸^LœŒœZjý©õ– tÍÈšgŠp† ôÅÊŸ&W}ì90ËèŒÇDÙò¯Ì<(c¡i÷*yu [ûý–²™Oïn^ÇïW5ò»Çe¾ ~].»ç 1'øÞtÆyÀÞ+³õq{ý¡eBÖøó9æsì {š°Ü9`á—€Žû ŽÜß`ö·¥´­·'oñ]Ú#s‹®ùÆ¥ý$ÍÑ4ÕcÿŸÑ97 øÓÙà'V¯-Îòs­»µîÖº[I÷×°ŒÏó,*ílqiŽSå{×ü¿õB¥kžþÓ|=¾ïÖé±OûAYæŒ.ñ÷ðLKO{úýØ¥ÿOé7gâ~(ö'*Ýj“Í'œíyv›4¦™eý‹)=˜÷YËþ³Û­½¯8E\šú\ªRi¼6W Ëò$v ‹>¬±%ëæ¼Çî*50÷šo½Üïó(¤—_•wY™—œm6ó^apÌç˜Ï1Z&°ýÉpRça0p2²?bÄþËFy0sã²e»:CD*b]Qª´ÏÒi†žÜb›3³p÷sjOfê–aŒsÀ?xMÉý‚ìFgšñyZÃ"RË8Ýti¶K>sF—öÿOì·‹ÞPy|@‰Îÿæà;~{ºVÚdYÎñëÆ¯¿.é¶Ÿœ *¹×ÿÚy‚Òbçt˜ÕðŸÂÍO{ ]€2¸Âï1â¿þ³ìg¬ÿÿŸ‘ÒÈ K3FþÏÒ N—¨ýk¶Å–õ/F¤ôl`FÜg-ûÏþÛŒ²Å«;CPÚòÞÌžÿó{zúçýCüW³ÇaUvž“ë•3Àb/¯æ7w`Ï“`W’tÃ`àddõÄÕWO´lˆ¦nqϰ3D¤áCKe÷÷úÛwxþ"cƒýî®nËŒ^ËØ9ç«[6GÁWü ö£ý¿.Q)kYç €Û_nøgž0[ÝØ?U»“ÿΜ-~6E«QÕß²þ{vìÙ±gǤÛ~òÕhô´SCç JÝïWø«îÏÿ„Ó'*ïk˜Ã–@7ö'Ê:ͧH9ÃÙàRÊøO6~` h1"¥g3â>û•E²]í›Þ"Òb§jUÎúN”J,mËOW;õ ä÷îžy2\pæ8ߨ’#2•æ7w`Ï“`W•´ÂàÎó•@b¹þ}›V§;ç¬YëQîû"[,Ÿ~¡R¨×B瀧Œ©8¦ÈeÚد‘WÕ#9S8g¬FÎXæ+[~vÏÐçK¹ÿß+rïÏXÈÙæG……µ¬äzí§àï­êsÔy‚R7#_ÑÂõþYd2ÖÜßygp¡9•¥ïLZµí?e–Ny¼ãµ³ÀeÆNYºc&ý8ʰÙÇ£}ï8CDšãMÁæ¶‹Rµ)ø{ûB™mrpѹ5rdA{€cíÚ´kÓ®MÀø¨nÕýq`¥ Î?IÑ¡o•µJúïüJÏ_òeÀ†bs~ÍT¶³gþf# §ÌÕ#§{Æõé˜}.gû,³êTÞè]ˆöök^¯Vë\ œ3¾¶sgÅ[¶üì•\[kWXü¡û—³À¯˜ZÍp½öã¹£íÍõ!"õß¾øïC³c—­LµÉ‡·;[”¿}Ù¬Ó~Þu‡þ å×F'«—ÌŸ¸áè°ÇûþÏŸ5÷º³ïB±¶áÇçóGÚûΩ—2ÛNÚëÍÆ7ßl$ÆGål3€#r79WþÓ†) Üpÿ-Ý´9Òl7+y‰9Úeöh÷À{bž)–ÿ•Àજyðë.VT;dÓüÚ1a…«µúÐý‹À Ëyf—ùcêðÿóˆÙïÈÂ4aw\#f08–3Ìî—Rmâ³÷J5ðøaß˶¡Û¨­}½¯Å>3€$£Àb t¶¹ ß8|ãð–ÍÎÙÞœiNº+iÿ™oT,U¶7™jíòi—Om~ÅÿŸŒÞŒoÄþˆý–ï`æÆeËvu†ˆ´nÍüCs¬¥jÙûVž°èwüi=ֽЪåOþaÎÿà5%÷‹•·UC2ÍÎø<­‘Ôß¼¿ÁìoKiÿ÷Ož™3Õv¶øŽßž®•6YÖÿøuã×_—tÛOΕÜëíÐÏ?W²UYàlpºéÒl—|æŒ.ímöS*(Ñ"öO…­]”¿lfç‰~ÿ)ç¹ñûKübYóG—]vtYRi?ânû…ÄO.©{8ƒS¥eº¾=çŸbJ×<ý§ÅÏ ]·0Èìÿ/í=¡ÍæŒéR¹5ËìùψâXýZmÿY,Ôy`o¤o÷% Åˆ”ž ̈û¬eÿÙâüôyß;CPÚªÕ¬Šž¿Z–Ð4X]p¶zÉ{U7Ì]ÍöŸúøûÁ7-ñšcQZ&0Cì\#ô8y;êí¨·£,¨÷”l]Ý"!( œVlUÞ3ÿÌ€yê¶'CÖûjtóY}ýt›‰7ß j—¢r‘°µßo)›9øu¹ìž32M_:í³/žóÀs·o_åoè¼µóÖÎ[i™`Ý’óKÎ/9oÙ‹ß³êXù9Îç_™{ÆB⟇–ü©Á½!•f*õj{øTÏ’©zdnÑ5߸ØÿíNþ;sTp¶¹¿bß«g«Jù?p‡½_å~•ûU’Jûw[ËOQnÁloé+gJý·/þûÐ켫xá÷Ñ||Ž™}ÈwÀˆˆÿ-´¹Ã›_je(—Ã'×?¿^¦o”µIކÎùæàŒóL+ðÐòs‰)=˜÷YËþ³Âˆv9'8E\šú\ªR!}XcKÖÍ?,÷kJ¹×|ëåÖ$ýø:yç©69«›øÜ»{æÉpÁ9à®/¶ öÞfù¹ÄX”– Ì']®úÆFœìøTò©äSɲɾºØI­¶6qƒÒþí¿­üG¡ÎY®º}nû—íÏ®-SúOÉ{2S· cbÿû:MóçÍÑÏàÐUß7(sÙ²äkýÖú­õ£M€u'¢ODŸˆ¶ìEçLœÁ{£³À¡{•¹–5(³gº@ë÷¯¢9 ¶Ì”áFØÎo9]üúÈꙺd<žvïßNù>åû”I¥ýˆ»­å§(~rèâ…-m!h±˜³-ãŸts3§Êúc±!ý+Î8ïlsý®,¬{À÷KhVò©äS‰> ¬÷YË^4ý47ï´åGüzîd©’ΗÊx°C‰tù‡—öË4Á–;WÞ?Šs[)‚aç €n ¾žo¾eÉÅX”– Ì'-®úÆFœìŒÝ;vïØ<Ì=ݼ“ßgˆKEy†ß/×ÏóP…¹Ëg"Þ ,öUþÊó.Û„9“«üæ½ñ}‘έ–ÿÏû‡:g¹êöy¶ª¥[ÔÑg»Ç gøDƒ'—ÞS0—e_®¹þåú´I°.rAä‚ȘÁ¹ÌçÇ,›œ-ÿ^üsÛ· Úæiæa䪒Ar[•±tÚI¾z‘™[Ž<´°P©ç¡zÙª#œsîïãÁò•*ã-ë¼Nï:½ëôNZíGÜm-?‹Ç”†:tp¶Y³ÿŒg†wèªÛ¯µ;÷»—wä°Çû^væ% =Ú”ávƲ„b,J›f€_ò }c#Nv"fFÌŒ˜ùGrÃüî®î<Ë&[_ÆÙì¿:ÛâÏÑrç§ïͺ·Þ^x{6 ¶ðÊç•Ï+Ÿe_ú¼¼QµcâÆ¥f!n\ÿ½óì÷d›1¡ÔW–µ½Ò¥ÿJÿ¤ÕrÄÝÖì^\!Å’+‡;gŒj}^¯³Íú½/P¡yîŸëXÖ¶…Ò›€-Ä=ײ/m[fþÛBáΚZ†Áfÿ>öu¶è÷—®ÇJùz[Ö¶Ò€uÀÎ)y†¾±';¯–¾Zúj©YãŽÑùbÀç P“úþ¢[Ëuþ?ðK{XÛ°¶a´F°ÝÜ\ssÍýÀj »·Ï(Wò‰3‡©Iq_oz¥b9^ZÖö­T·RÝJ•Û¸óZ~¢Òy'ømºïœ1jRÜû¿X²ï°é8SŒBéÍÀâžûH2°j,ç3Nºû¶_Î_Yh·em‹ñ'­XGì<}c#N¦Ú„· onÙÐOUk¦ù&¸uÔþ—ÿ”©V°Ÿe=ÅŒbF1Ú!ØîF÷Ýot·ìQ+æñ½™u;‘­£öçKUÜ-ë9[Ål³UŒ‰ˆ‰ˆ‰HŠíGÜy?°ôùï¦vOpë°ÅŸ—ºæˆe=‹‘'ýÄADLDL„¸ÿZö«ƒBÂÇ”¨Epë¨}þQ¥+gšhYÏbüIcÖ'.B_3ÀÉTøðá7,}»ÂÞÕòt ¸µÿ²ÂO«¥3ë\^wzÝéu'Ú!ÄÁ›˜71o<ý<ý<ý,ûÕk§v­ØøÖþýœZƒ.{/´¬áE‘‹"E&Ýæ#î¼f÷e¿Öów…zßڿϹ¡r@ƒß,kXŒ<éÆ ®Äýײ_m85xM¾©·öïûºË{|‚,kXŒ9Åø“v¬#þø}mAœL½‹|ù.ÒìkpçPÛŸ*EâÚ³_~¯†»Ï@˺ ö ö ö¥@ül)¼¥ð––½k¯­ZåÏL|kÏþu«éfcƒG'|t2©·q¶ütE~ëbŒ”‰oíÙ—5ýéÓw-‹‘'=Ä•¸ÿšõ®¿68Y¥d>B\{öf´«œsšeÝŠ1'-Ø‚øã ô+àdmQÌ¢˜Eèžz‡ûžÊ߆7~ûWÕ;«6Ƭ»¹ÕòVË[-i{?¯|_ù¾ò5ëcoÝ}¥ÒoD¹ñÛ¯(>2Êg¬e­vÒuH×!®Ñ~Ä]Øt°¾àY˜J”¿}Þ4u^´®ÿ¹ã1‹bÑu€]Ľزm²gB`…„¸ñÛ÷o­//^Èô½õ¾¯|_ñ§ÛÀ&À ‡Ð×ÀÉÚ‹Š/*¾¨hö%¹’±Ux…ºqÝÏ®^%¥wËúì wÐ;è´:°ßï)Où{Êô´¾û.Ï]¢Ü¸îŸgÐ6W5E¯†] »æJíGÜ‘?°Øã­vC¥'Êë¾ôîI©¶V1k?b´I¯ö÷b³žö—fÇ2ú$Ðë¾ôù†çøÞ²>Å8“VlGìX„¾ŽBŒ˜Á ‚[~a*ÿ™g^¶†1ÓºTªîE¬kËþöš_WšhÖ]ï|½óõδ7°ß‹Ç/¿xlÖß9½ìM¹¡Äº¶ïuo\àŠeMå Ê”ÓõÚ¸#›µŸ²­§WÞE¬kÓÞsi›#ý²¬ô®VúsËš#Lú+pq_¶ìo«4 <œë®íû.K6zýmú§K_<~ñ˜ölGl?Bß„@Œ˜×êkõµjöZ·¤Ö¢âïwÿeÿS—bÕóÖ¼”¯Tö[–u8tÃÐ C7ÐÒÀ±ÖÏ]?wý\³ûWÔ®°Õ w­ïm^ѽÜ]³:¼·âÞŠ{+\µýˆ»³å§Î]ü7¿à ¹–V=Òˆˆ×úÞëx÷3ccÌÚaÒS€£ˆû²Y¯4bã3oÂÝÙ›|ü©ï-³:cKZˆ+`ûíÚ´kÓ®M„¾ŽEŒèKô%ú³/Õ_[¨p– ×l¿è}@­b¦‹gF~ùmä·´1p¬èŽÑ£;[Xla±…xŸ}ÕV·òW"â5Û?ë­ùT-evçš?nþ¸ùã\»ýˆ»³Y žÞéà¯7‰xM—}¾;ií¶ÿšÕžUÒG@B÷hÓå S⛊ ×l_áN»Ó97ZÖ›Oб%m İýÞ7zßè}#B_Ç"Æÿ,X.°œå,³wz·´·_ÜþiUÕhâÞØû£›x”›eÖ1ÉäòÚ$œKÏ.=»ôÌt&Ç÷ã&”ÈGÜ{½÷ðÑ€wßÕ©šÕý˜eyMöšì5ù}ó÷Íß7OíGÜ©ÍÚoÍ~Ëë÷ÆÞûÕ?ܸ™vI†÷nA–5&F’ôK€Æš¿oþ¾¹¸_[öÃE½ª·ÍÚcøí³á¥>%î½o‘sZÓ‚¦+Ÿ‰ñ$­ İ£ÄžLèk?`üH·H·H7³_Šf)pÏ}ì»ÈÎ5fý^ËÞú^źfuÕ§GŸ}zТàãXrhÉ¡%‡ÌúäðÚKJ–ÝBô+öÁ%yv2««kž×<¯y&·ö#îÚfuR¦îä›Û—ýú¯Y~¨Kö¥îW)dºê‰[¤[¤=$4q¿6ë&uï‘û&¡¯Ø>YÛÏËt½.1†¤E{Ã9ãNÿ|úçÓ?›ý‚¸ºØ¦¼¢wv~ð6yF¿w6¶mYé Yýx®ö\í¹úuÄëˆ×´%øHþˆù#æ¶AmƒÚ™õÏ'^­/59G¿Ó^ôÛæÕŬ~vª;ÕÉô­â®-îàfõSvêô«{B“iô³äÏÇr=ðmü»YýˆÑ#]|LâÞmÖ3×ÿâ—2»“sôÛmòÖQÞ¦oüãF1†¤-{Ã9ÃÔö.Û»l7}LÜ©V±"y'¼kÞùÛ€>É'ú½þ Í¬Š;¬¿„ü‹î.¢ýÀǵ'jOÔžB™ e.”Ù¬—>æ¾ü]¹ƒÉ(ú}u$¬zµ)ú,+r¬N&ÕŸTR}Ú¸ƒ[¿Ë—Y9åýΔÉ(ú¿8(üI®5ÕÚ~?ƬNĈ‘ö‰EÜÇÍzéºÆà/=êŽøõ܉R%“Oôä¿q°wN³:cE1n¤ýûÃ9ã_Ì»?ïþ¼ûf¿8ÕÜÏ3ûåçõ:n®ÚÙµ£ß+šå/ÌúCá?Sþ™òÏ”´H\}ú>ôµÞcï¾7£cÉw®ý¾+þg@·>½ZŸÌ?ʬz>ïù¼çó˜½1{cöÒrq7·Þ~J6úmÄêÑ®ý–?:÷¡v)kTñ~ÍêAŒi3ÈöÆìÙ+îéf=vÅíÿÈy9x×é%ºvôÛ6çü…Të÷q1V¤áG!†s"†M¦/™¾dú’‰?=[<÷v½èwͰš§Š·þÙO¬9±æÄÚ 8;}îô¹ÓÇzï=öüÏÓ ·ˆ~~øuõ¯])ú½ï½ooåfåúÌÍ¢˜}ö.Gºér$ºgtÏèž´KâÎn½ýxuê6~Lc׋~K…ŽO»±³õÏ.F†´pâž.îïf½·ÇˆªÛµYÃ6—]*úýôì«R)kmè»4o5ë÷/1>¤µÇ"†s"F,*µ¨Ô¢RÖ¡ZYmLÑ[1»øT÷Hº¡ï£òíT©ÒrißÜy­Þ³ÏÏ>?ûœ¶Îé~¹ûåî—˶"ÛŠl+ÌzòÏ‹xd.r5ã¶SÓ$õèwwïÿ)yÝúk :P¨FŸŽ>}šb¸Ë[¯O÷ùþ÷ê+wjöéVŽ~s/ 8òCaïŸÆ«gýóŠÑ mœ“¸¿‹{½õþüÇ;ó.´1©G¿}jI>ys{{=ÍföIÅ8PŒ i! !Ã9#ÎöÜSpOAë¿Lš’å‘Û·'»5ëYþM’‰~ßué\=`Íš'‹ÿË£Þ²îeÝËÞºzëê­«´p~‘"+DV¨Û¢n‹º-¬÷ð“»÷~\dáÛÎá%ü’Jè{½ÁŽ©§5ô¨RÂ}¼õO÷ûÉßOþ~2&:&:&šVa;qÇwÿKTš¨4QbÔG€¤HŒl-TìÓ><ç¥þ•õ¾Ås9[è;lòñ§¾·š–žP Ü–Ï"Æ{bìG Ήv‰ºu3êæÀÆll˯aþÝs½ÈÚP:ÖP/ý]b…¾¯Óv:]mçüU¯ Nc³m¶=Øö€+®á°Ûa·Ãn¶ßÆxw¯VèÍßöﯼ<±Bߣí—w.·°ÙÓZn¹ÆØRæÆ_l|ñaއ9æàŠ;–ØÞ~ ï8ø—‡~÷v?ðcb…¾>Áƒþž"ó‘³KL±¥Ìbt'Fz\qHêÄx@Œ l¹ ?UWɶªË —½?I¬ÐwàîJñg5¯õ©˜7…í÷\1ÆãŠ€‰Ήq,âXı\3rÍÈ5Ãö_Ï~ìïµ4Oн}x”jò¼iÇmUƒ÷^YÚê]…%ïªUìR«ÜÎn{ÙW®\ñpçÃwr}ÀõDMˆš5at¦Ñ™Fg²ýî3¶+éM/Ùï¦×À³KÖwó{èØ ÷ÝüC#B¿^p­Ì¾^½[UÉŸ6MíÝ·wßÞ}1¯b^żâ*'1B£Û¯N¦¡yW.ü"ðýð¾¥ONj¿u³cƒÞòsŸk7‹­ëfæÜœÍ*ùÕ/f{ÙÄ(NŒè¸¾à‚^żŠy%Æ q]TÙ._Ή?Ý]y¿ÈÆà›g>/¹Á±qïÏvv,º¬¾Ç/Ý=´LU²/I×ßö²‰±œ×q‘ÀÇG çD {¿üýò÷Ë·|³å›-ߤ±Cåè›™« ÉÇÍI7'ݜԱkÇ®»Æï’#eÖ2ébÚ¾lÐ*OÓÉýz¿(²x}­q#KäÙ6»K©Kº<ÿJ™Ú¨ywËÜ}aF³’¯—G<ä3dD½.½=¯Ö›U©xŽ—öÜ7çºÏuŸëþªÑ«F¯q5?>1r£ˆø]ÁŒ)r.óðÈÝ z·&…=‡µ-; —÷âž&Öö2¨Óœ{ŧÿrvA³âY†4Ÿ×½èÓ¾“§­-¼°ÓÝà4£ŽëP*Ëï–¥sÛÓ~ÄÈMŒâ¸šˆ1ƒ?Øsñê\µV–óÕ'õðÎS®É‚ ¥ Ìl›y~X!©ãÎå'ŠÔø©ÎŠsEµ‹ZüUáÖ-²NkPP®ÛbP}ÏR«¿ï–ý¡[嬥˿óŠ1›¿q5@â"†s"Fz{áí…·vEìŠØQð›‚ß´+N8?¾øñÅ/Ξ9{æì®àÆæ›olx|àñÇÓ8±þ+üWø¿ôyéóÒ‡«æ<ĈBŒ.œ³åˆQ™¡‰ÑW ’31–ã gùˆ±™§qÕ€ó †s"ÆGuyÈå!—‡üfüfüf$Ö/¾E|‹øY}|õñÕÇ{?ö~ìÍu˜‰ ß=q÷ÄÝkª=ªö¨ÄºõiЧAŸ'Ûlw²×%©# 1ê#Äj?bô%Fb\€ub¼!Ɖuçã.1ã1® pNÀpNÀHd·2ÜÊp+Ãæ*›«l®8 p@à·]n»ÜvÙÿë¢ÏJŸ•>+ƒ}‚}‚}ô÷ú{ýý“¨'QO¢¨s€=^žzyê婣ǎ;zlbÔĨ‰Q/W¼\ñ²£w¶8Ðâ@‹+‚W¯¾|þòùËçcÞÆ¼yKÍ»1#1J#û[ŽA‰Ñ”Y‰Qu°ËÛ˜·1oŘDŒOÄXÅQ#1Žc*1¾c-*°0’Ž1bxzàé§¡SC§†N=ªÕêT À™]x{áí…·ažažažZhq ÅëF¯½æM½°‰툑‰5pNbœ#ÆF/£—ÑËèiô4z=ŒF£»ÑÝènt3ºÝŒ #È2º]Œ.F hŒNF'££ÑÑèht0:ŒvF;£ÑÖhk´5ÚmŒ6Fk£µÑÚhi´4Z-ŒF £¹ÑÜhn45šM&F£‰ÑØhl46¾7¾7¾7¾3¾3¾3 †F}£¾QߨgÔ3êuŒ:F£¶QÛ¨mÔ4j5F £†`F5£šQͨbT1ª•ÊFe£’QɨdT0* Ãßð7ÊåòF9£œQÎ(c”1Ê¥ÒFi£¤QÒ(iø¾†¯QÜ(n7| ÃÇ(j5ŠÞ†·ám1ŠEŒÂFa£°áixžFA£ QÐ(`0 ùŒ|F>ÃÃð0<ŒGŸ£ÏÖgë³õ™úL}¦>CŸ¡ÏЧëÓõéúT}ª>UŸ¢Oѧè“ôIú$}¢>QŸ¨×Çëãõqú8}œ>F£ÑGë£õÑú(}”>J©ÔGêÃõáúp=XÖƒõaú0}˜>TªÕ‡èCô!ú`}°>X¨Ôêôú½ŸÞOï§÷Õûê}õÞzo½·ÞKï¥÷Ò{è=ôúÏúÏúÏzw½»Þ]ïªwÕ»êAz¤wÖ;ëõ@=PÔÒÒÒ;êõŽz{½½Þ^o§·ÓÛé?ê?ê?êmô6z½•ÞJo¥·Ô[ê-õæzs½¹ÞLo¦7Ó›èMô&úúúú÷ú÷ú÷z#½‘ÞHo¨7Ôê ôz½ž^O¯§×ÕëêuõÚzm½¶^K¯¥×Òkè5ôzu½º^]Ðô½ª^U¯ªWÑ«èUôJz%½’^Q¯¨WÔýuÝ_÷Óýt?½œ^N/§—ÕËêeõÒzi½´^J/¥—Ò}u_ÝW/¡—ÐKè>ºî£Ó‹éÅtoÝ[÷Ö½t/ÝK/¬Ö ë…ôBz!½ ^P/¨Ð èô|z>=Ÿî¡{èz=žGÏ­çÖsë9õœzNÝ]w×Ýõìzv=»žMϦgÓ³èYô,zf=³žYϤgÒ3éõŒzF=ƒžAÏ §ÓÓééô´zZ=­žZO­§ÖSé©ôTú7ú7ú7zJ=¥žRÿZÿZÿZÿJÿJÿJÿRÿRÿRÿBÿBÿBÿLÿLÿLÿTÿTÿTO¡§ÐSh1ZŒ£½×ÞkïµwÚ;íöF{£½Ñ^k¯µ×Z”¥Ei/µ—ÚK-R‹Ô"µçÚsí¹öT{ª=ÕžhO´'Ú#í‘öH{¨=Ôjkkk÷µûÚ}í®vW»«ÝÑîhw´[Ú-í–vS»©ÝÔnh7´Ú5íšvM»ª]Õ®jW´+Úí²vY»¬]Ô.jµ Úí‚v^;¯×Îiç´sÚíŒvF;­ÖNk'µ“ÚIí„vB;¡ý¡ý¡ý¡EhZ„vT;ªÕŽhG´#Ú!ívH ×µpí€v@; …iaZ˜ˆn@S5US5ES4E“4I“´-D Ñöiû´}Ú^m¯¶WÛ­íÖvk»´]Ú.m‡¶CÛ¡m×¶kÛµ­ÚVm«¶EÛ¢mÑ6i›´MÚFm£¶Q[¯­×Ökë´uÚ:m¶F[£­ÖVk«µ•ÚJm¥¶B[¡­Ð–iË´eÚRm©¶T[¢-Ñ–h‹´EÚ"m¡¶P[¨Í׿kóµyÚUŸªÕÇêcõ‘úH}¤>P¨Ô¿Õ¿Õ¿Õ{ê=õžzW½«ÞUo«·ÕÛê-õ–zK½¡ÞPo¨×ÕëêuõªzU½ªþ¥þ¥þ¥^V/«—ÕKê%õ’zA½ ^PÿTÿTÿTÏ©çÔsêYõ¬zV=­žVO«§ÔSê)õ„zB=¡W«ÇÕ5BP©ÇÔcêõˆzD=¬V«áj¸®TªÕ05L SCÕP5TÕU]ÕE *ª¢*ª¬Êª¬†¨!jˆº_ݯîW÷ª{Õ½êuºGÝ¥îRw©;ÕêNu»º]Ý®nS·©ÛÔ-êu‹ºYݬnV7ªÕêuƒºA]§®SשkÕµêZuµºZ]­®RW©«Ôê u…º\]®.W—ªKÕ¥êu‰ºD]¤.R© Õ…êBu¾:_¯ÎSç©óÔßÕßÕßÕ9êuŽ:K¥ÎRgª3Õ™êtuº:]¦NS§©SÔ)êu²:Y¬NT'ªÕ êu‚:N§ŽSǪcÕ±êhu´:ZýMýMýM©ŽTGª#Ôê5X VƒÕ_Õ_Õ_Õ¡êPu¨ú‹ú‹ú‹:X¬V©ƒÔAêu€:@í¯öWû«}Õ¾j_µÚGí£öR{©½ÔžjOµ§ú³ú³ú³Ú]í®vW»ª]Õ®j¤©ÕÎjg5P TÕŸÔŸÔŸÔŽjGµ£Ú^m¯¶WÛ©íÔvêêêjµÚFm¥¶R[©-Ôj µ¹Ú\m®6U›ªMÕ&jµ‰ÚXm¬6V¿W¿W¿W¿S¿S¿Sª Õ†j}µ¾Z_­§ÖSë©uÔ:jµ¶Z[­­ÖTkª5Õj µ† ¨j5µšZM­¢VQ«¨•ÕÊjeµ¢ZQ­¨VP+¨T?ÕOõSË«åÕòjYµ¬ZV-£–Q˨¥ÔRj)µ¤ZR-©–PK¨%Ôâjqµ¸ZL-¦S‹ªEÕ¢ª—ê¥z©EÔ"jµZH-¤zªžª§Z@- Pó«ùÕüª‡ê¡z¨yÕ¼j^5·š[Í­æRs©¹TwÕ]uWs¨9Ôj65›šMͪfU³ª™ÕÌjf5“šIͤfT3ªÕ j5ƒšNM§¦SÓªiÕ´jj5µšZM¥¦RS©ß¨ß¨ß¨)Õ”jJõkõkõkõ+õ+õ+õKõKõKõ õ õ õ3õ3õ3õSõSõS5…šBM¡Ä(1JŒò^y¯¼WÞ)ï”wÊåòFy­¼V^+QJ”¥¼P^(/”H%R‰Tž)Ï”gÊSå©òTy¬/Ÿ—ÏËçäsò9ùŒ|F>#Ÿ–O˧å“òIù¤|B>!Ÿÿÿÿ#ä9B>*•ÊGä#òù|H>$‡Ëár¸|@> Ãä09L<ü¿î‹›¼,H²$Kò~y¿¼_Þ'ï“÷É{ä=òy·¼[Þ-ï”wÊ;åòy‡¼MÞ&o“·Ê[å­òfy³¼YÞ$o’7Éä òy½¼^^/¯•×Êkå5òy¼J^%¯’WÊ+å•òry¹¼\^*/•—ÊKä%òy‘¼H^$/”Ê åùò|y¾)¯”WÊ+å‘òHy¤\R.)—”SÊ)å”rH9¤Rv)»”]Ê*e•²JY¤,R)“”IÊ$¹In’›”AÊ eÒIé¤tRZ)­”VJ-¥–RK©¤TR*ééé)¥”RJ)}-}-}-}%}%}%})})})}!}!}!}&}&}&}*}*}*¥RH)B¢C¢C¢CÞ‡¼yò6ämÈÛ7!oBÞ„¼ yò*$*$*$*äEÈ‹!‘!‘!‘!ÏBž…< yò4äiÈãÇ!C†< yò äAȃû!÷Cî‡Ü ¹r/äNÈ;!·Cn‡Ü¹r3äfÈ!7B®…\ ¹r5äjÈÕ+!WB®„\ ¹r)äbÈÅ‹!†üògÈùó!çCΆœ 9r&äLÈ™S!§BN…œ 9r2äxÈñã!„üòGȱc!ÇBŽ„ 9r8äpÈáðððƒ!C†„…„…„…„†„†„ŠÇöâq¶Ô ÁòP`p``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``€$ U|jÉGÓéM§7ž&Ié´¤Ó’NKèñ3öÎØ<×ò\ËsM´–\©s¥Î•úéõ§×Ÿ^§~>>Qóâ*ˆ+"®Ž¸RÔÀÇAL ‡’nl½ï¢ÇC\EçˆÎ£NÓ:Më4ÝZ¦¸Mq›âfËAæº×ý¸îÇö—Û_n¹úòêË«//š£hŽ¢92Í<6óØl-²µÈÖ«¼Wy¯òÛ¶lZrhÉ¡%÷µÙ×f_›÷EÞy_ä£VJª˜T1©u;ÔíP·~›úmê·I”ªpóÂÍ 7w[å¶Êm•ç@Ïž«üUå¯*õú»×ß½þ6ƒ¢>UI¾“|'ùƾ.ukÖ­Y·&ßh€ƒ˜ & ÂØà±Ácƒc·ÃÃð0^¬|±òÅÊøóî »ƒîqoÆwfÜiOË/S,¦Ø?m[D³ Wj¤©Fú꾺¯¿ÒŠ`ÛQ߸ȑ;#wÆž™-Œo?¾ýøö´^€„FL ‡€sãÎ;7.Ch†Ð ¡±ÛÉì…³Î^¿6³rýÊõ+×çtÏéžÓ=!¾ÕÆjcÕ±íYÌÙíùuϯ{~íØÒu êÔÑþÌ3Ï8<ãpì#‹«ög×?»þÙ•– p€ €’`âÂÞî{»ïí.úùßÙ»Yïgì?¾Ø”ôJz%=0 ULª˜TµúÕêW«_ì"–5~5ðÕÀWãzÈ%QK¢–D}œ?†(µ¢ÔŠR+ìoÕ"úí<¢óˆÎ#÷O7¬‹5&jLÙf˜ûȱî¦Q$``€$€˜8€k÷3"j2Û¸RÄ<]˶ºÈc‘Ç"¸¶ÛJ!•B*¥?•þTúSfß‚t7ÒÝHw£yßæ}›÷ݱwÇÞ{¯äº’ëJ®×]^wyÝåÿÿþ⺃zê=¨wÖ ¬AYƒ¬³j̬1³ÆL{¾e–oصT¾Yùfå›­¶fØša¥ù+Í_iD@.þyõ¤Õ“VO*Û¿lÿ²ý­gr¾Éù&ç³çªÍk7¯Ý¼v–Ge U$``€$€˜ý ’3¸ê\¨s¡Î±[©»—»—»W\çþŠ÷[ÎLMœëHý#õÔ·ýq¿åý–÷[Ú2¿vnϹ=çöŒk=Üžs{Îí9Öcæî¥»—î^Ú–œÅÿÓ¥O—>]ú˜-[‹l-²µ¸3öÎØ;cãwíÄ<àìu²×É^'ö‘‹Ô.R»Hmz€„@L Ì ŸArf6‹T„qm±S_M}5õ•YËÏ{2ïɼ'Eä¿ï‚V­¿r§È"wЏ¿£ÒQ騘³É²&Ëš,‹s妊I“êû?¾ÿãû?ÌŽ{¹éø]A³˜ya‰…%– …800@@L0€~É“˜Ý[pLÁ1ÇX¶R±ür\[l¹ÀråÍZþ'îžhÿ·à‘û#÷GîÖ¿e‹o,¾±¸-G»;èî »ƒÒ>Kû,í3Ëãd”eP–A7Ân„Ý‹_ɯݸvãÚ ³rŠóÞ ºt/(~µ¡~®~®~n6Óš>À±€ €’`‚ô3Hž–Z~hù!³à0:GtŽè¶-vDj©hŽ¢9ŠæplùG\qqÄE³3¶{ÐîA»¶|ãÄ’ÑÖ—}¶¿´]èúC×ÌÎ2ÿ»ùßÍÿ.~ýƒ¸RfËnó>`Ç"&p°')ž¤x’bÕ‚U V-hU£UV5Ê7+߬|³<×ò\Ës-ÓœLs2ÍX«/¯¾¼úò¡%‡–ZòX±cÅŽ3;æÇ‰(Ä‚Ú-í–v«Ï±>Çú ذ-`›Wy¯ò^åÝV¹­r[•Ã/‡_¿b©Š¥*–ªu™ÖeZ—‹R>}ú<Ô±5×O-­ª‘j¤)àVÌ^1{ÅìùWæ_™¥(¿xß^ÕãUW=þKÀ/¿­x´âÑŠbùÇÓB§~œúqê5ÃÖ [3¬íÛþ·íýËù—ó/—oG¾ùvdÜ™qgÆâq… W(ÜömÛ·mß®í±¶ÇÚâgù–Å>äÛÙÿÿôúÓëO¯Ï8<ãðŒÃ ²5ÈÖ [ñ«Å¯¿*¾›¹RçJ+uéY¥g•žÕ#sÌ=2Ëyäyæä™“gJ­(µ¢ÔŠ4v8qóÄÍ7¢…ˆ¨`Xþaù‡å·§…dÍš!Tü³2?f=;ŠcÏhûqDè›­E¶ÙZĵæðÑ|ª˜T1©V®_¹~åzñÞÍøµØí*rgäÎÈŽ-¦söI±ý;Ï÷BüA‰õ÷žš‰=‹ÑòìâÏq¦_˜~aú…øõxâO¦î*$•ö‘;"wDn³2œYsfÍ™5q­¥i÷¦Ý›vÏì˜[oo½½õ¶ck^üaœÙÅŸÝX?‚XJÚlñçŽà¨?äJ“*&UN÷œî9ÝÍ‚å‰ßáÅHì6Ž??þüøsÆÕö#&°ËÙ¹gçž+f ¥qt7ÒÝHw#öãׄˆ(ž<}òôÉS1£+CÅØì©[[>µ˜GkO¤j½æí'ß‹YÈŽ­g1?ïãÔ³c}Ì KQ}å¾r_Ùþ:1ƒ£jFDµ;ÕîT»“cÛFìw…ÚSBçï%œ­5&•ïÅÅzë]¬'Ö¢°ç:Šù»±,ÞVÛð]Ãw ßÙßNÒ~’ö“´Ÿ8êZ$ÅöÜûRïK½/YžQ¬[¿cÆž7lÉúz$ñ#Ö'0;£˜imý±ßsl©±ÚXm¬:¶ÌÖÿ0"tOèžÐ=ö_̃·»xŸßÈ£#Ž<ûѼÙü­]ówÍß5?®õlû¡ÿSòw ß5|·sÝÎu;×Ýžs{Îí9Qc¢ÆD¹\ôrÑËEÅCÛ²ýËö/Ûß–™gÖßšiF<@·^3‚˜‹¶åå–—[^Þ»v#ìu—×]^w¹¹ëæ®›»ÄRœß=üîáwm_ŒÔ±õœß tœppÂÁ –ß ñ~ÓÍ6gØœA¼TDbb†Y·êݪw«nK̳zÒêI«'ŵ´â;(Þìkýøâ{*Þ&~õ“«Ÿ\ýD´dñÏâ-žâ=Á±gIÚ¿”nÒê%œ­5:ÿ÷¢É²&Ëš,³\ù`ÀÔSLK ‹—œ:pêÀ©Sܦ¸Mq³e•ñ¦jË_·fÝšukŠë+‚X± °~V?«Ÿïk·ýr\û®›èÁÌÎ"Þ”¿¶!–ˆ?+Æ$±·„hÛ"7û,b®­õ#˜Í„ÖöXÛcmÇ~gEovFñ}±çŒâMÒfÇ?Üúpëío؃˜ Î:*•ŽŠõGÉâ!ûßuÿ®ûw][ŠÍñ›od{ɧþgê¦þÇzˆ¸{â'Ú~|ëïöb¿ÙÔöÒÚ^éO¥?•þ”˜-mË‘ßÖy[çm[Ž\ft™ÑeFǵä-~jñS‹Ÿ¬—véÝ¥w—Þµý˜â±Ög<7ïÛ¼oó¾Ž­ç„ø}œ Ë»ˆwï"±ÿMà´ÀiÓÞ´xÓâͿ̙^~hù¡å‡¬—3~µmý;(âêYfm˜µA̳åø"š²^Ú©¯¦¾šúÊ–£%­^ÂÙZ£ó/,—Þ•|$ÉÇúѬ‡‘fDx»µ^K~µüjùÕ2;Ε\Wr]É娒‹UCÌÎ(V’°çøâO‘ÌÚ§¸g؃˜ ~ÚòÓ–Ÿ¶˜=,0»À쳟zvêÙ){Û‰%+c¿gÔþ``TȨQ!fGXœqqÆÅíÔ(â%³³ätÏéžÓݱ°XBÙž2‹Ú¶¾(t™5fÖ˜iKÉÛ¾mû¶í[³ãˆ·cÚß›l6²ÙH³³tˆèÑ!ÂQõœߣt‰å4ãz|±¸Ù1ÅllÛ6zÑèE£™M,“kÝê=¨÷ Þfgoât¥^ÂÙZcRù^ˆ»•XTÜöcŠ¹Â¶¼yÚöÕ/bÛ±wÇÞ{­ÏW¶ýhI·=‹%šÅÒܖǬ¾¼úòê˼$–Ù·¾@ý$ßI¾“|m9Z±˜b1ÅL[µx«ºcË¿åý–÷[Zïµýg‰ôZÞ_Äb쌽⇘À&âÝxÖ߃(ÞÖ鍨ÀrQÊøbžP¾ùväÛaù³>}û<!¨£êjË[¾Øò…YiOž9yæä[ŽcËg½ˆbB×¶˜dvñnKëK4ŸÞ}z÷éÝö—V¼›ÓzL"Þ[i='Ä·éc]b]üÊy©Â¥ —*Ø_Z±€˜¿è؈ÚRìãXн´µkôÎÖ“Ê÷br¾Éù&ç‹ë‘Å›Ööc&õöû¸‰ûí°Xp»Ñ•FW]±åíÈë]¬w±žíŸÂ¬nÇŽ¾liíâíÑöŸeöÂÙ g/4;‹ˆÒY ~€ €l2´äÐ’CKš=¤ëùuϯ{~çµå}ÀÖ`ý |Žšwh©V¿Zýjõ³»õã¼iñ¦Å›Ž­í—³_Î~9ÛìŒB3„f5ûÙLs2ÍÉ4çc–ÖzÛÈÖ"[‹l-ì¯ç„hÕI%èrÔñŵ0;‚¸Ž‰Û¿%Ý^ÂÙZcrø^8ÿ7.©·gëË'ÄlWKbñ|¯ò^å½ÊÛò=zô¸ìü²óË΋?»qì7Èú¬î„XÄú囕oV¾™ýg ’›%{ìu²×a?ÀÀ6±á$\,‚C{ˆgÜ™qgÆÎó(\”Ç–Ïþñ`ëµÃ/‡_?³ŸýøðÛ:oë¼­¿¸ÚözNˆVÜ`ë>òÎïß;¿Äíß’n/ál­19|/œÿ—ÔÛsÚgiŸ¥}–X=Æ´{ÓîM»g½×ܽܽܽ¦¸Mq›âfÿ"ÏÖ}÷ð»‡ß=4+‰ú¹ú¹ú¹cÏ(ç‘óÈyÌÎX¿PýBõ %ô}\̺f?ÀÀ6±¾¤dÂ-âúÀÿÿ{ˆ[sž˜óêœuþñ—€¶^ÛEj©]¤¶ÙÏ~ü% z?ô~èmvF±ˆ¨ýõìà‹š*&ULªä[_@þÉÓ'OŸKû¬ß¦~›úmŠ={5¡ë¤ÿâþ‹û/6+ÕÊõ+ׯ\ïØ’¬Ø·bߊ}fgŒ]W w·þgg°Ž˜À&eû—í_¶¿ÙCºÓ»Oï>½;!Î{~ðùÁçÛó@ÜW÷Õ}u³Ÿ½vãÚkN:¿Äú§Nˆ%­×¶_-¿Z~µÌ~¶äö’ÛKn7ûÙK.U¸TÁ±¥Ç4;£(ýõìØ2‹ÅK“[\âD‰%N8ów0éöÎp}³$É9NêíY¼ùÕ¬üë]¬w±žcÏØóMÏ7=ßX¯yqO9ÔíP·CÝ>þ·cþwó¿›ÿYÙF\qqÄEÇ–jäÑ‘GG5;ã¼vóÚÍkgÿÅÕ4;‹øÓCFàñCL `“¶þ°õ‡­sö‰°¡ò†Ê*Ûó@¼NÓ:Më45ûÙcÅŽ;VÌ9ëÜú§ÞòrËË-/{ÆÅ7ßXÜìŒ-›´lÒ²‰ÙÏÖ­Y·fÝšf?»c;ö:¶´Û÷‡o7;cíNµ;Õîd=;¶ÌWr]Éu%Wr €kõ«Õ¯V?³#ìo°¿Áþ‰û]Kº½„3\_ç,Ir€“z{¶þçDâí¼Ž:×Ò»Kï.½k½ÎÅ|_ñª‹ÿ½ÔH5R4+aÔ S6L騲Å>æŽU{Î;P·TzVéY¥g1ˆ``›Œ <6Øì!]Ì=2÷ÈœFõÔ{Po{ˆ-9´äÐ’3FuëŸ:øuðëà׎­sëµ=Éw’ï$_³3Z¯çÑ‹F/½È±¥ýmãoÛhvÆ!‡4ÒØ–3~ÌlË[¾ØòEr €c_ K«N¬:±ªck{Æá‡g®ôþÿßÄŸ)¸R/á ××9K’œà¤Þž«ÕƪYù÷ Ý3tÏPûÏrõÙÕgWŸ™½½>í'i?IûÉÔWS_M}å uò<ôyèóP³·;‹¥’£sDçˆÎဓ¥ŠI“J¼áØò\B3„fuÔÒý»'{¢Ùµn²¬É²&ËÄ00€MÄ,=³‡t¹SäN‘;Å›oZ¼iá¨3ŠG™Öß=lËñmç¶ÛvÎìg[üÔâ§?96ê¸¹ëæ®›»Ä¢Ù–›vK»¥Ý²å8Ö?u©¥V”Zá°’§ŠI“ªpóÂÍ 77;£œGÎ#ç1;£Ì~Ö¿œ9ÿrŽ­çòÍÊ7+ßÌzÈaüÎïß;‡½ƒ°÷¥Þ—z_JnðÖÛ[oo½mv„ªÇ«¯zܱm£\`¹Àr–ç1°+õÎp}³$É9NêíyàðÃ7+ÿª«¬Z`™»ôéÒ§K³³LÎ79ßä|Î6³>+×QýFèžÐ=¡{¬Ï6vÔ'н~Œ¥Ø”Æ8 Îã:``[ˆÙ'Yƒ²e 2{T·zÒêI«'9êŒ{»ïí¾·{X?ÎCï‡Þ½ÅœËŸMw#Ýt7ûxÑlö•˜Q$ÊcËqlùì¹#rGä¶¿ÌÖ~1»èåì—³_Î6;Âßuÿ®ûwÝô§ÒŸJÊì8çÆwnœý¥=uàÔSÌÎ"®é½ {A÷‚ì¯gG•9rgäÎÈfsª\;¶þtì{=oϹ=çö³³tÑyDç–%Oº½„3\_ç,Ir€“z{¶þ¾Û™ûgߞòßZ}kõ­Õ±ëÁòÏDÞy_ä}g‰Í™âl÷ ÝƒvÌŽ“öYÚgiŸýsÌT1©bRÙrÌÇ©§~œºíÛþ·íÍŽ,f3Çõm²¶×€½lÏÄCÕÁwÜÁú‘ÚòÓ–Ÿ¶Äµ…Xˆ,fÅõÚ‰è×úl]ÑêâZÚf#›l6Òz=ľ¾¶Y¼ÝÐm•Û*·Uâg­/ƒìÚ°-ßA“ÿó 6züÓãŸÆŽê-^4zÑèE®×K8Ûõuž’'õö\§i¦uššõÖÿ˜ÃTª˜T1©ÄK Ì^v î#³ýCˆ7.[o'?ø¹ÀÏ¢sDçˆÎaýhbëË>‹¹ÅwÆÞ{g¬£Ú¹¸‚f%BzÆÛö &ˆ3ñ¶W[‚ÉÜOs?Íý4ö,ÒGîܹ‹·ÉŠ·~þþëï¿þþk‰%N”8ay„º5ëÖ¬[ÓQÄÅÙm)y©¥V”Z!ÞuwvîÙ¹g犷 ?ðàÿÀÿà„ƒN˜ä;Éw’oN÷œî9Ý­G³¤û#ÝéâZZë%,3ºÌè2£-ÿý÷|ÿÇ÷잸{âî‰wÝt÷ŸùLWr]Éu%×"Ek~À0?7IDAT‹<Ì~66ñ¹Ä›tãZrëïa­Ñ•FW]ÙvnÛ¹mçÄâ–bî—øç-/·¼Üò²~¡ú…êú—––"wŠÜ)Äçki7åÝ”wS^[Jëax†øçCÝu;ÔM¼ÛR<Ⱦ\ôrÑËE—D-‰Z%>µ<Š}+ö­Ø—œ`Û¿ƒÕ—W_^}¹øg±¨iÔ˜¨1QcDøR)¤RH%1ÝúìêÂÍ 7/Ü\¼ƒÙ–2'­^ÂÙ®¯ó”„8©·çq½Æõ×Ëì,akÃÖ†­ë1¯>»úìê³4N)®ŸÅúBÖB… W(¼9Ãæ ›3Ü»v#,öx@ü‰’õ@ؿʈqÍÎ8¾ýøöãÛ³ø3€=€ €âÉ–å íQr{Éí%·‹÷ :ö±©˜/˜ÐsÅ̪µ=ÖöXÛ#! ñ7!J.–^<0ïÀ¼óìyüj4ºžÅœ-Nij´©bRŤª1³ÆÌ3®œâÝ´¶\YǶû¿é qüãÏ??þ<¡ÛFö:Ùëd¯sz÷éݧwǵ´I¥—pÎëë %!NêíY„ÐfçšvoÚ½i÷âz[^RT`ÁúÌ]ûõ¾ÔûRïK ñ}}-wnܹqÀö &°‹˜éØŽb~ªí3uâWòóƒÏ>?8!˜º{¹{¹{‰Ù«öÔ­-ŸZ?«ŸÕÏ:¶ä’ä#ù8ª…$Ü ˜]`vÙ±ƒ {Êiû¼vÛ‰™©cƒÇ ޽¼*pBŬߣVyúäŸÅÀmy®ñþàூ¿ þJ,OêØÒÆ>¦õ÷ [W,¦XL±³EJ³µ°¶%\;IèvhÿwPÌ>_‹·TŠ>$ö²·Ž-¡³õÎ}«$À®ÑžG\qqÄE˳ç_™eþ•q=㬠³6ÌÚàJplâe …:ê\¨süÊà]Ä»ˆw‘½Ý÷vßÛ=¿ê©bRŤÂe¶ZsìGL à`±ßÃ*ÞG+Þ,(f‰€GÄcµ;ÕîT»Ó·)nSÜœ!‰þuT:*ñþ<ñ˜RÄ–â݇¢ü­j´ªÑªÆì…³Î^˜pÑi\Å^¶±ò£Ê*?åÑi‘ÚEj©-Þ®*¬ÿÙõÏ®vý˜%ïÍ=‹«|³òÍÊ7oØõœoG¾ùvˆßö¿mÿÛö¿k†­¶fØãÔS?NýqJûš6ÞtzÓé¢öDL+êSÌ4­òW•¿ªüõsŸ ü\ tOèžÐ=â7°ãêÙ©g§žýº·{ÐîA»~µüjùÕíANâÍââ­á¢m,,±°ÄÂ÷[Þoy¿eB×¹kô@RiÏ¥ù+Í_¦¥Xƒë[tŽèÑ9DýtéÓ¥O—>UW=^õ¸ç@ÏžÅK„Äâ]õݪw«Þ­ºvK»¥Ýú8w.³×Cˆ?Œ½ú WÀÀÀ‰3Ì0slÉ“ÖJç/yR©ç¤Þ\©÷pžšw^pÎöÜèJ£+®X–¤{é—æ[–´Fâ¥,KòÃÖ¶þ°•kà(ÀÀNjçºëv®3{÷0pRñºËë.¯»ˆ9å–WsÏÐ=C÷ åj8 00€“Ë—]ft™Ñ–Ïs¶ÞÞz{ëmjÉù‰+eyË– ,( ¦–…˜À©my¹åå–—–ÏsZ6iÙ¤efŽ:¿ØW*¶íáÛ÷‡s‹˜À¹¥ŠI“ª|³òÍÊ7‹ý<'ãÎŒ;3î|œúqêÇ©©$ç$®Ž¸R±¯9ÿrþå˜û € €’õsõsõs˧:¿mümão™EêœF/½hô"Ë«¦Fª‘j$W !$í/·¿Üþrì§:Ùëd¯“½Q¢³yäþÈý‘{ì«#tT:*ê á$wÝtwå³aù‡å–ŸúqâŠÄ¾Fî^î^î^÷‚îÝ "°H8ÀÀIÌêI«'­žûÙNæ±™ÇfK¬è DÄ›eP–AYþ'ª_Ûcmµ=¸F ˜ Iê<¢óˆÎ#b?á0uÀÔS©™ÄÕqÿÅýǾ.Aƒ:u¤f>``€$éÅÊ+_¬ÏvüËù—ó/WõxÕãU3Ç4±<½þôúÓ뱯BÔ S6LûJQK ˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ €¸``.‚˜€‹ &à"€ÿa„Ù¼H¤í`"mቴJ¤íðGߎ$Òv4‘¶c‰´E$ÒöG"mÇi;‘HÛÉDÚN%Òvú£ogi;›HÛ¹DÚÎ'Òög"mi»˜HÛ¥DÚ.'Òv%‘¶¿i»úÑ·k‰´]O¤íF"m7i»•HÛíDÚî$Òv7‘¶{‰´ÝO¤íïDÚ$Òöð£oi{œHÛ“DÚž&Òö,‘¶ç‰´E&Òö"‘¶—‰´E%Òö*‘¶×‰´½I¤ííGßÞ%Òö>‘¶èDÚbg M‘HÛ'‰´}šHÛg µ€Ë"á²°Àü¿öî<ºªòÞ¿·×_¯½T/2„©@$ AÒ0¥‚(­U¬‚@@œPQ ˆƒ(j$ D‡2ÙV™B™e–b±Zàª( Ä$¿?v×úÒurÒ(CNv^¯³Ö³\áÙŸýq?çœ7g?Pv„6þ²Ë—]¾ì²lùi{ä”ÐÞÄv#¶qìïF\vö!.;;—½‡·”Уìì=\vv.;û —†í1¾Ý…Kjá²³»°}…í(l/a»ÛE¸¤v.;ûÛ9ØžÁv ¶O°}‚KjŸ`;Û8æwþ²ÿ—ý¿ìÚOp:€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!!€ãË¿|ù—/ÿ’³ôÿ=‚?Q „V¬(X±âàŠƒ+.jùSËŸZ»tíÒµK€X¶ãøŽã;Žç$ä$ä$¬è¶¢ÛŠnǺëz¬«ÊP6 €(s¾?ôý¡ïm]¼uñÖÅ+L¬0±ÂU®špÕ„ò§HðÓ‚Ÿü–à7ª<PRöTÚSiO¥¹s3æfô½¯ï}}ï‹›7?nþÉ?óIžž<=yzVrVrVòÒ¼¥yKó¾Îý:÷ë\5àdÙ|dó‘Ík×­]·vÝØÜ±¹cs[ïl½³õÎSõʽۊn+º­˜–5-kZÖÎí;·ïÜ^p¼àxÁq• À„\þ­ù·æßšó§œ?åü©ûøîã»/_B‚ßÌ$˜•³œ;‡í¶sØ#ËYöȲ’zæ“Ò8¥qJãfl˜±á@Ò¤IÎ Ñä®Ì]™»rÁØcŒ½rÔ•£®URë× .ƒº 격禞›z:/@qD^I–ÿçòÿ\þŸ*CÉBûë쯳¿ÎøgÆ?3þ™ò1,˜a0[g øqŽï8¾ãøŽùë篟¿¾ÁÏü¼ÁÏcó™O÷ÃÝw?¼më¶­Û¶:kìš»kC6 Ù0dC,¿rŸÖrZËi-$I>’쬑ÀÄ&0!qàðÃgÅgÅgÅŸÌK»ëÏnøQ|×ÇŸM?بãŒYF5ýõ¢Í].O°ô®Ý/íŒÁŸ|eð]'ó{ƒ™GálEË{5ïÕ¼Wßüù›?ó¤âÞj³“nl~AÝQW?Ñ+µÑä>Ÿg•¿øà=O>ýZÓjÃnxq`Ó l{éúäaCû<ÿEÒËwö{eÂC=ZÜw×]Úßv]£ÊgÕ~¥nÝ÷{Û´+hW°­ê¶ªÛª:›eÇîq»Çí×{@ï½ü¸$®mõ¿WˆOqÍm¿Ø×©ÛÐÎuºUºKƒ÷zæ¾|N£›ní8íÃÆC{Ï{ucãË{T”ÓðÏ×½4&µþ³íÇÝ‘taZb¿_]Qmûɬ›kM¬5±ÖÑ®G»µ»0ðO`b“€R,/;/;/;»^v½ìz?ôeÛÈߥMMصnéuHûª  3³}ûS;?9ø-?tnÁGç,'Z¿nýºõë⟉&þÜé¤öõmÒ;7i2kðÖg'þrýÄo—ìnÕ*;{ÍšS56ß4î–·æ6:Ü7oÄ=U¬?4©mñçÖwZßi}§í›·oÞ¾yÎ/@øäŽÉ“;æÑ*Vy´JñW‡*¿˜Zapçº ¬»äöóz_üÊÈ‘~˜šzªÆ¬Ý[Ïn6ûÖϧïm<§ÕÃ=ëÕûC_¹/zwÑ»‹Þ-8Zp´à¨³ e™˜Ø$ TÚ¹}çöÛÛ'¶Ol_œfwuKéxQ¹ÜøTË¿ŸŽ¸·8cðÛƒ™gÎÁÑGêŒ@Y–»;wwîî!×¹vȵÅyQuM£ß_2>9kèÎ:µAoñÇô/&\ѽáöÞ÷?°¯øo¦¿ýÕÛ_½ý•3«ãVÇ­Ž+þ*ÐáÓA­ëœ5dÁŠ÷›~sjãÞâ™»fïLú¦›;½_ã‹3çk?ºö£k?ÚWs_Í}5q(›ÀÄ&0¥Ì¬m³¶ÍÚVœ—aãÞhõa㻿NíõxƼ’ }£Á¬‚çX‚£vö ¬Ù±pÇ Ëç–Ï-Ÿ[ô³…š“Ò_^3uÿèçÞ¨XR¡o´±eöËï¬êÜdÕ}©ÏÅ•ÿ´Â«où7Ÿ ¾·ï½}ïÍÏÏ×¥Kþ¨üQù£Æ<7æ¹1ÏçÕîo›mWåCOn8˜²§¤Bßhãà¶KïißzÐ-+kÿ­8Ç’Ó<§yNs=e˜Ø$ øþÛï¿ýþÛ{›ßÛüÞæE¿Üºó»”úõŽ|Ý¡×øŒE±úF ƒ;ôŸ±(˜yÑGT ¨†®€p[Ø`aƒ… Š~nP¹a|ºkš }äøÌ:±úF[f¿¼fUbŸÛžx¬kÑGW«E­µZìùdÏ'{>ѱïP«C­µêÔ­S·NÝŠ¾ÂwºnèåuëgýzËÙ͆ÅZèm¼ç†÷k'?”4µ]ÿêmŠ>º6½°é…MùùùºÊ0±I @L˽+÷®Ü»®J»*íª´¢_b­ÛtÝ»i_—–Ð7êÎÁ›®{7íë¢4¨FPá3%uJê”Ô¢Ÿ4JºuôCWµº »Ýšß”šè7bLÛüûÞSkRË/:6)úx·}»íÛmþ@ŒÚ›¶7moZi5¦Õ˜íJ~ARâÁÊ9ƒ®øs»ä:¥%ô6vÿlÒí ç½r Y5.kWÚ£ßÇàˆ‚£‹vìAe‚*é‡ S'L0µè7”S—>N¿ÒúFûÜ6ú±³ÃñÆ™gnœ©ObÇgƒ>ôÙ ¢¯ÞW̾'»Îe#²íhj¹Òýž8©ž3§é{uG^²8îÓhÇž¹&sMæšü;óïÌ¿S·@X €‰M`bÎwÕ¾«ö]µÖ Z/h½ ê-•Ffü=iwÁžÌîíÛ„)úý—qOf÷öm‚#V‡ JAÅt”^/î}qï‹{£­øÕs›Þ‘Þû—k'î[ò·ðE¿'ŽÍº>2rÆ£E -÷×r-§gJÖ¾”})ûRоb÷¨=icÃÅa }#Ǭù[þÐlrëûnù öΨ›U}{ç·w~[°¨`QÁ"á#&6 €ˆ%­ Z´êþD÷'º?í…Ó[m:Å¥ mèe Ž:ZM‚ŠÕÓDPº¼“ùNæ;™ÑVùø™—õ¸æ±–£_î¿òëpG¿'Ž—NŸ7¯\Ñ¡ÂçS>Ÿòùýpæå.Ì]˜»°aÕ†UVv•îßrÎýIµÃýþË8üéÍ:-»ÿ§u;E«É¸Îã:ë¬ |ÀÄ&01d|Íñ5Ç׌öbiÞ­We7PÖ¢ßÇ ÑêTO@i±åö-·o¹=jôûU»”k_hY0õ¯«W•è÷ıÅS>Y¸èÑ¿Gÿý£]Ÿo{ò­QI{ÊPô1vþÿ¸´nÔû™Í[Mø4AGA8€‰M`JØÁ%—\íEÑÈߦMIø‡Ð7r *­nAUuĦ¾i}Óú¦E®àçO­”×?½Ó¤Ëv‹~OS:ŒLµs´g>ï}õÞWï}¥¯NŸ¿}ó·oþöM´ëp·ÚOÿ¶Áb¡ï‰ãˆÿÛ¶2õ''¶ïQýŽÈŠ%>™ødâ“y7äÝwƒî‚ÒN|ªÌcþóßjøèÌGg>:ó@‡tP™G @ ëÿqÿûùT)}uüÂêònì7°ÝqoäT&¨R!û-}Üÿãþë.ˆ5K§.ºtj´7Л>îµ·ÿ[Üml4¡Ï_†Gý4Õ¡s{è\=pjå÷Îïß»Éä&“›L޼ö¶ú¬ç–ÚsÄ½ÑÆÊ­Ÿr^´•kÒ“ž˜ô„ƒÒN|òòºæuÍëíj) þqÀ”˜žÿàùž¶´Ö¤Gã6¯ z‹ƒ*E«aPa±àØâc‹-޶j'n¸õñï¿ã³µ¦kõü¦¤gEÖðÁÙÎ~p¶N8µ^ŸøúÄ×'F[¿zrÃÁ”=‚Þ¢Çþ#ç|“”­†_LûbÚÓt”^à“wâg‹& .>0%áâ‚‹ .Nœ88qpäB>c@‡M%Ü-þT¬·’'NT[Ó@Éz)륬— ‰-«MOº¬ùÙ­²o^s¯ˆ·8c‹›&´]í-¡ôûG¿ôÓo'ïðÈv½Íœ:»oâ—ÂÝâ]û®ŽßXȼj÷¯Ý¿¶~ƒÒK|ò‚@7wË›0¸h`JÀ’K,Y¹l_4¿êðÊIùö[Ðn‡X·øcP± z‘U ª­ë ¤n}¸õáÖQoû¼`Üyoeˆu蘰§çƒC+FÖ³×Ò^K{-Õu'ï…r/”{¡\!+×öߌ¨y@÷ßúúu•SD{>ðIÎ'9Ÿäè:(À§–0øTpfm,ØX°1ñœÄsω\ªWøÍCiMº?n ªWÈç€ÏI<'ñœ òμ)S ¦òÆPòßÔY”ûãÆô¥/}“õ–Ú{nÜsãžõÀs4åhÊÑ”hרÁ7-}µiCî¯[8¦oýBvS0lÀ°Ãô”FàÓG|2ÀœQ[om¼µqäÂœÒ¥æøªm öfölßV”û#ǽ™=Û· *Yá ò:Τï}èûCÑÞ˜hñÜ„ƒ wˆrOflüH沇ߋ¬mVJVJVŠøqÞlôf£7E^][=Ó³mí§…¸'3ï²)£Y½hÏ öoÚ¿iÿ&¥‹øÌÿP`Î¨Ì ™27D.ÆKwíuig!îÉA% ÙŸiCæ†Ì :Τ•»VîZ¹+r]®=»m».ˆoOÁç€oš4yB´·{Žõ9ÖçX}ð|Wð]Áw é é é‘×Õ{j½·0¹¿÷äÇ«ŸÊšYï©È O94åДCÚJð™' .0gHî+¹¯ä¾mþþö~•Û ßžüT2Zƒ³ à̸yåÍ+o^¹"7{åÑgŠoOÙXwû¯Ÿê=:²ÎËš,k²¬‰>(¾]w Ü50òŠzѨæm«Œ-Që]ÿ±èŠ&=N<–X˜ÕÐ?­|ì’+"ë\£uÖ5Z¬/X_°^7Bi!.YÂàhÀœ!9-rZä´ˆ\n,ý«F·§v ªYíà,èF8ÝŽfÍ>ší톖‡§¾»:[p{ªÆæuƤ¿±7²Î=rzäôÈÑÅ71~büÄøB®¨?4½áð©ûþêòjÛ ÙÉþ¼=çí9O7Bi!ŽÂà €8CîxÇÀ; ùwÄͽqW« "ÛS;U¬vpt#œnëŸ]ÿìúg#×âú­n¸àöŽ"ÛS<ž5õãÕ¢½¡s|ÇñÇwèI€âH¬—X/±j°.5%I|jÇ—N:Þ°;…Lo9½åô–ºJ pl €8ý2 2 2¢-«yCû i÷‘í©ƒªF«ypF4&œ>/z|Ñã‹ ¹ùsîc£g]$²=-7‚õì^½"k¾³óÎÎ;;ëI€¢zéÐK‡^мŠÖ½ù’‘q[Kïn»±ߟ½:î’ßGÖ¼ãÝïîx·ž„ÒBûÊf,à´Û·ßþ}û#Ñ›6$ž}A¶°öôA…#+œ §Or›ä6Ém"Wáô'wZ‘"¬=cÓM¾<ùÆÈš¿–þZúkéz hó7æo̼Š^ýVÖ?êMŸ–qø‡›R›U|:.éü_òÏåËå•Ë+§3!ö €K—² €8íÖþlíÏÖþ,ráœñ`‡{š^;qéçC{Ìhsø±ñéO5*ÿÛ ßŠ¿´é'5ÿ«Êþ*ÏWøøüe ûUû$îìË–Ô™[ãèø¸Ö75^¶¿Ö-K2Òc9*YùàŒèL8Ž:>êø¨Èõ·ò Ÿ®¿/6£Ó–ŸN}puׯsúgŒº¥ÆŒ”‰­“*ލþE­sϸRvåCqÏÕÜðé:•:uÓMÍÇŒù擱yi/ý>éÏçDV¾ß[ýÞê÷–Î(ÚÔíS·O-d?ڇ߼?éíØ MG$l}°Ù²ë*޾¼~ŸÆ«2Rª½ZõùZßVø¼âŒ¸kÏψ=ñÜÊÛ~Ú÷§ñ¯ßwåò¶M‡Æt<òÃSS[ìY·ö˜ÈÊïÍØ›±×½» —^áƒÀœvÙ·gßž}{äb¹eÍ ×¤? Aé’=]¯¸´U­ÄÊ¿®Ø¦ü´+çæÿk½'6à Â‘sΈÎ€Óaï’½Kö.)äšçv©ØóÚX M9oâ«K¨14å¿ZÝUüç?‰ËÎ}|]ÌÅØ›¦vZ])r¶u–×Y^g¹Î(ZfÝ̺™u#¯¢÷¯XýÛK^‰‰&ß¾êÏ—<Ò°jËUÿ\ü5ëúœ'7èËp·í^lWÈ?Ý~eí+k_Ñ™ûÀá¾0X ÀiwÏÁ{Þs0rÜÿß·,Êh^²éáé·>ù« Cª=Zy]0«‹¦WZ¹áÓ_´éŸØ'çµkÞlQuË‚:¦_|è×.='ëXÚ/ž >ü/»êÆdT8²òÁÑ™p:l~}óë›_/$4í{۸ǮµÐ´ææ_ÞÝá?ÿ9ÅUn¨ø“zw\s[ŸÉ· ­öü£—|9¢Jö–„ôo­8·Æ°Z«N<¢æ¿óõܱvD•¿½pJýBnaª3Š–¼.y]òºÈëgð‰ÛJÿçÃóRË'ÎýUNµ¯OœÛÅû.³úÜß$=>¿~õ¾Ì<71îÚ?>¶ÿ¢C‰éßW[íÍúX €oöVï¤#ç9kϬ=³öèLˆ}àð G,à´ëÔ®S»Ní"Åï’û¶¹ìHÉF¤A¬ÌçüoÊ/+ÿàöû»½Ýòúhán!Ÿ)ÙTå¶JÅfT8rÎÁÑ™p:üqý×ÿq}äú{É•Ãk¼Ü.v‚Ò&Þ×빫ÿ9¹I篨Ð.ùýû[½PümðÇ'~ý?Ÿ/=\)»ò¡+ÖàÚ]ÚÔêü30Àyå nª é_<{_¿¼NïØù¾ûë|üm´7â3þÒïùø£±~{Y‹¦…¼Û0zÖèY£géL(×Op˜”Þ0X Ài×h_£}öE.„ùëûå¶ÿ’HW»öÏ-þx×—)#.jüxVúÚ网!ql~8¨pä<ƒ3¢3àt˜1vÆØc#×ßÔ÷GÿÇœºt­½­þÞ韛tÔÞØöÝ«k'Ð=ñˆª?Ü8mY¬Àõ.ïz°ÏÕ`€*òÊYoT³‘UšÇBDÚdóm«Ì*¸tq¾+ë²Í_5»¯ÖÀ„ +íˆåøjkg¤TŒ¬ÿ½ïì}go ¥ñú)«ÒŸ;ÿKPÖìÍìÙ¾m¬…¦EG¹yûý®Ý«v´Yž89öà Â: bÁ¥Ïþ󱔯-«wq£«‚¹øÙß³gpÃç÷½yóÏÆýïÛÿuiöø8kpƒnºuÐZýpò.žxyÍêÏÄBDZó»7Tz'˜ÕÍ ^¸¥aÕà¿‹ó½‘ÇkðC¿ßŸò™~·ùoÌcþ`ʄؼmò×gõº'ãµ÷+þ:½ù¤©?m7»Éóë´è—pÑõ7*GíZ•_¯x_é:"± Eõ§oŸÿY,D¤-ßyùËU¿?qn—^öäêw²b-ÊýqcÂzìÒY¿œ¼¦W•«1¯„ÃÑ!V§ìrý½äÊá5^n;Aé¿Ìíì‡Ò§\TœïJ}õ‰³ÿž0 ûñû.HøKÏÚC^lU>ûÖüOìWí.mjuþYaÏÓ(J䕳⌸kÏψ…ˆôÄYÝüâĆ [ÿ{;ßýÀ‘ºÅr<øíe-š²yÓèY£gž¥3¡4^?ƒ°PeÂ!nùèÌGg?ô ¾þ̇¾'pÚÝsðžƒ÷Œ\÷ÿ÷-‹2š—lDú‹Ž•¦TØÌgõM¿¹3­Aq¾ë]ºlM]ûpPáÈygDgÀé°ùõͯo~=rýMì{Û¸Ç®Íø‚:üÇõ©Åù® ÿ¯ãí¿Ë¾«ê3 w7kŸ®üí…Sêç €~¨äuÉë’×E^?G$l}°Ù²Ø €ŽiuEÕÝÅúôðe›¿jv_íœFTîËðmÃÞêôqdåg홵gÖ ±O>¥7ô=‘€Ó.ûöìÛ³o\·¬¹ášô‡K6"m|eõgâî æ3»í•i—t+úëwÏïÞ¦Í/‚€c?*9ÏàŒèL8ö.Ù»do!ÿP¬î¹]*ö¼6v‚ÒÄK}ôùNnU…*þ¤éÖgMîíë›'¹ynå çÅ]_5!ø¦:ë:_Ñ£Kðß±pD-7Mí´ºRdåë,¯³¼Îr P´Ìº™u3 y{ÿŠÕ¿½ä•’H÷»çZ' œ[´¯ñÒ¶ö;øÕœþ .¸¬øßURc·í^l9ϵ¯¬}eí+:bŸ8ÂúžH Ài·ögk¶¶ñÍx°Ã=M//Ùˆ´ïÓMþ·ÎÖ~öå`ÜÂJÕ§½{ùmÉ3þ±åæ±­ç~Ñ¿çYmç¼vÍ›-ªfKûEÂ3U¯Øüüï¢-ù±.äeäÏÖþlíÏt&œÇGu|Täú[ùÀ…O×ß;pËw^þrÕï Ùñqò5ù}g'§ yì÷«Rî¹~Ú7œÛë»®¨”V39þŸooUìZýºšWÇÚÎÁi/ý>éÏçDQ¿·ú½Õï- P´©Û§nŸº=ò*:àð›÷'½]ÂAéÿ|x^j!¯Á/Þwù›Õçþ&û‰áõÛô½`湉q×U}yý>I^ödõ¸àkj L¸°ÒŽX€[ìY·ö˜È£Û›±7co†Î„Ø'.½ÂúžH Ài·oÿ¾ýûöG.–7mH<û‚ì’H¿jy˹m?hدÚ'qg™ÿë€˵_gS•Û*=vâŸwüíEujÞ;pPáÈùgDgÀé“Ü&¹Mr›ÈU8ýãÉV¤ÄÚ ƒ›9çYP…‰Uϫ޽ɰÁ­ŸÙ;Ÿý Ʀ›|yò‘s~-ýµô×Òõ$@Ñ6æoÌßXÈ-ô¯~+ëõ&ÅBP:´ò_z]Rá¢ÍÓ«Œ)ΚU烦OÄM‚á €‡¸)µYŧã’ÎÿeäüóÊå•Ë+§3!ö €K—p‡¾'púeddD[>ó†öÒî%”þsg£½i÷&¬jÕè‚_Vì Œ¿ðûcž2㑤9yûý®Ý«ÿ²ÿP¿jŸÄ]£[¥Ë*Lîß;ùºCc!ú ªõ“Êþ1œF/z|Ñã‹"Wáf¹žuQ¬í›ûÏg5#zõ6¶z¯&/¦ýW…#ÕšÖø°Â€*T{¥Ú°Ä÷S¯¯s×UõnÞÖbÏ3ûßµùcÝñWÏîÕ+²æ;;ïì¼³³ž(Ú¡—½tè¥B¶0¸ù’‘q[c'4 fÕõg§]t^Âôô…UŸ[ScC…ΕªW©y~fß%/Ž~e¿{¿¨óðCC6¬NÙË·€¾?{uÜ%…Ü£ãÝïîx·ž„ÒBûÊNè{"0gÈïxÇÀÈ¥ô£¹7îjU!BÓ¢oãíocóæÏAU#«œÝ§Ûúg×?»þÙȵ¸~«.¸½cl¨'†Á?îoKlším…–‡§¾»:;–càÒ56¯3&ý½‘uî‘Ó#§GŽn(¾‰ñã'ÆrEýé¤é ÄZ€ZÚÇľ¿º¼Z!û.ï9oÏy{ÎÓPZ€c‡Ð÷D`ÎÜWr_É}%ÚBûýíý*·"¸=ù1¨d´:gA7À™qóÊ›WÞ\È'{š½òèƒ3·§îæÏÛýTïÑ‘u^ÖdY“eMô!@ñí¸kà®BîÝuѨæm«ŒÙž²ýŒÿ´ò±K®ˆ¬sÖ5Z×h]°¾`}ÁzÝ¥…¸d }£pFenÈÜYÈ ú–6îÚëÒÎâÛ“ƒJFV8¨¼€3i宕»VîŠ\—kÏnÛ®Ë#‚Û“Óoš4yB´·uŽõ9ÖçX}ð|Wð]Áw é é é‘×Õ{j½·0¹¿øöäÇ«ŸÊšYï©È O94åДCÚJð™'ô-0gÔÖÆ[om¹§t©9¾j›‚½™=Û·âþÈqofÏömƒJFV8¨¼€3éûCßúþP´7 Z<7áàÂBÜ“?’¹ìá÷"k›•’•’•¢~œ7½ÙèÍF‘W×VÏôl[ûiñíɌûlÊhV/Úsƒý›öoÚ¿IBé">3„¾?”€3kcÁÆ‚‰ç$ž“xNä’¼zÄoJk"ÊýqcP½ÈªÕ*¯àÌ›R0¥`J!o Õ)ßñðM…¸?ò³¿K_ú&gq´7zöܸçÆ=7ê=€çhÊÑ”£)Ñ®±ƒoZújÓ†¢Ü7^·pLßú“#«:`Ø€a†é=(À§Ð÷d€(K,Y°dA!» ͯ:¼rRþ…ý´Û!Ð-þT,¨^dUƒjë:()‡[n}¸u´·'š/wÞ[Ý:&ìéùàЊ‘õìµ´×Ò^KuÀÉ{¡Ü å^(WÈʵý7#j^#Êý¡ãׯ«œÒ ÚóOr>Éù$G×Ai$>µ„¾§Š€’pqÁÅ'Nœ88rÁž1 ÃÀ¦¿ë *VÈg'NT[Ó@Éz)륬—²"×ëjÓ“.k~v«„ì›×Ü+Ö-ÎØâ¦ mäF{ëçýþÑïýôÀÉ;|àðâ]o3§Îî›ø¥X·øcF×¾«ã7FV²íþµû×ÖoPz €OžÐ÷tPb>xþƒç?x>ÚþY“Û¼.Ü-z ª­†A…uÄ‚c‹->õ–ʼnn}¼@¸ûoÆøì_­éZ=¿é#é…DéÎ~pöƒ³uÀ©õúÄ×'¾>1ÚúõГ¦ìî=ö9盤Ôh5übÚÓ¾˜¦Ó ôŸ¼ùoÌcþBßSK @ ëÿqÿû¹œ§¯Ž_X½QÞý¶›#èƒÊU*ä_Üÿãþë.ˆ5K§.ºtjÔÛA>îµ·ÿ[Ðml4¡Ï_†ïŽV½Cç:÷йz àÔÊïß;¿w“ÉM&7)dçÚVŸõÜR{Žˆ7êmŸË­Ÿr^´•kÒ“ž˜ô„ƒÒN|òòºæuÍë*ô=µÀ”°ƒK.9¸$Ú?ò·iSþ!îƒÊD«[PUݱ©oZß´¾i‘+øùS+åÅõOï4iIJÝâÞÇ”#Ó_íí™Ï{_½÷Õ{_é+€Óçoßü훿}í:Ü­öÓ¿m°XÜ{â8âÿ¶­LýÉʼní{T¿£;<™ødâ“y7äÝwƒî‚ÒN|ªœø9`¡ïÉrzçôÎéíÅäÌK:,hz§Ð7ƒjD«UPI±ìPÜ¡¸CqÑVó_ôJݛѰåÌ—W®Êý^ÚéÉÝïdG«Õ ;Ý1èpfL]5uÕÔUÑ®É}¿~íÞÄE¿ÁØnÜÀ;.ˆz׊O>Mø4AGA8€‰M`bÈøšãkޝíÒ¼[¯Ên6 ,G¿A¢Õ'¨ž.€ÒbËí[nßr{´•=þ«v)׾в`ê_W¯*›Ño‹§&|²py´ú$ÌH˜‘0ãØúcë­×KgÈ|Уþ=úG»>ßöä[£’Êô®Àÿ¿.­» ê;‹ç-ž·X+A˜€‰M`bI«‚V­º?Ñý‰îOD{±ôV›Nq)ÃÊZôu´š ª§‰ ty'óÌw2£ÆÀ3/ëqÍc-G¿Üå×eèS¿ÓÇçÍ+W¾HŸOù|ÊçSôÀ™—»0waî†UVmX5ÚUºË9÷'Õ.CÑïð7¦6ë´ìþŸÖí­&ã:ë<®³þð›ÀÄœïª}Wí»j­´^Ð:ê¿™}adÆß“vìÉìÞ¾Mh£ß=™ÝÛ· Ž4Z‚*Ó9Pz½¸÷Ž/î¶âWÏmzGzï_®¸oÉßÂý6ëúÈÈýþµÜ_Ëýµœž(YûRö¥ìK)úŠÝ£ö¤ C¾7pÖü-h6¹õ}·|P{g´:ÜùíßÞùmÁ¢‚E‹t„˜Ø$ Féq¤Ç‘iÃÓ†§ ö"ªw׋ï¬S=7¾OËÚ…)ú Ž(8ºhÇT&¨’n€p˜0uÂÔ S‹~3=uùèóçô _ô›Øç¶Ñ][ô±oœ¹qæÆ™ú v|6è³AŸ *úê}Åì{²ë\6ò'ÛŽ¦– Sô;¤zΜ¦ïÕyÉâ¸O£{æšÌ5™kòïÌ¿3ÿNÝa%&6 €ˆi¹wåÞ•{×UiW¥]•VôKÊu›®{7íëÒýGQô‘Õ*£C |¦¤NI’ZôóFI·Ž~èªVd·[ó›Òú¦mþýŽ?ï©5©å›}¼Û¾Ýöí¶oõ@lÚ›¶7moZi5¦Õ˜íJ~ARâÁÊ9ƒ®øs»ä:¥=úíþÙ¤ÛÎ)zå²xÈâ!‹ó·äoÉߢC ÜÀÄ&0¥À÷ß~ÿí÷ßÞÛüÞæ÷6/ú%Öߥԯwäë½Æg,*-¡o0Û`æE]P ºÂmaƒ… 6(ú¹Aå†ñuê®i6ô‘ã3딚è·eöËkV%ö¹í‰Çº}tµZÔjQ«ÅžOö|²çýûµ:ÔêP«NÝ:uëÔ­è+|§ë†^^·~Ö¯·œÝlXi }ï¹áýÚÉ%Mm׿z›¢î…M/lzaSA~A~A¾®€²@LlPÊÌÚ6kÛ¬må‹aÜ­>l|÷ש½Ϙs¡oj¯Ç3æ3,αGíì@Y³cᎅ;–Ï-Ÿ[>·èg 5'¥-¾¼fêþÑϽQ1ÖBß–Ù/¿³ªs“U÷¥>WþÓ ¯V¼¥ècé{oß{ûÞ›ŸŸ¯J—üQù£òGynÌscž+ΫÝß6Û®þʇžÜp0eO¬…¾ƒÛ.½§i|ëA·¬¬ý·âKNóœæ9Íõ”5`b“€RiçöÛwnOlŸØ>±}q^†ÝÕ-¥ãEåv|pãS-ÿ^R¡oðÛƒ™gÎÁÑGêŒ@Y–»;wwîî!×¹vȵÅyQuM£ß_2>9kèÎ*©Ð7ý‹ÉWto¸½÷ýì+_loõöWo匄Ãê¸Õq«ãŠ¿ tøtPë:g Y°âý¦ß”T蛹köΤÿhº¹Óû5þ·8s¾ö£k?ºö£}5÷ÕÜWÓ‡²ILlPŠåeçeçeg×Ë®—]¯ü4òwiSv­[zÝÒ¾:-»ù.½îi_¿å‡Î-8¢àèœeàDë×­_·~]ü3ñÏÄ?Sügµ¯o“Þ¹I“Yƒ·>;ñ—ë'~»d÷©{›owË[sî›7âž*ÖšÔ¶øsë;­ï´¾ÓöÍÛ7oß<ç |rÇäŽÉóh•G«ÙJQŠiS‘Ù’BD’¤EÙ …±W–™ûÓ}ßÓošùfÆ8ó|Î?ó8×yŸsë,ï™÷ë}]WLbbbbbbÀq.‡&ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B ‡-6™ù¹æçšŸKËpl €"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„8f¦ŽŸ:~êøØØØØØØ¾ï÷}¿ïû;ìh°£–921‰‰‰‰‰‰Ò. ,“.™¼{òîÉ»ãÆŒ;¨}Ò"¡YB³„fEgUtVòÒ‡=8ìÁa]FuÕeTá©…§žªÅÒB`à˜~óô›§ßœRé€Î:è\aa……êœv`à¸øÕ‹_½øÕ°§oêk ƒÓÎÐpØ ¾Â@whÛ¡m‡¶ ãÞ´¼Ê0ÑÉ €à° €3Ž0øh€à° €3‡0øp €à° €3Ÿ08-ÀpØÀÇ–08%`8là¬Cœ”›8k €à° €³¾ì €à° €/Ù' Àa¿¢ €à° €£!za°›8z¢ €à° €£íø ƒÀpØÀÙÇñ³8ù-%£GŽ9zdƒ¦ š6hš9{Ì¡Ñ2•‰W&^™©ÝqÀbfÌ̘™1™¹Ç\ÇêPÃ1ÐrŽG 4,а@Ò%}÷õÝ×w_¥C•U:¤}¢d÷C»ÚýÐÄ~ûMì÷nÁw ¾[0-¯jµ«Õ®V».~õâW/~5h4 2ièc60¿bccccc“. ;@ÆŒ;wPûïv4ØÑ`Gƒ¡m‡¶Úv@çtNË«öà°‡uÕeT—Q…§žZxjæ×<—“ðÐwစáOªþú¶,ܲpË ü9FÀ@6Ð7)0D/ôMJ D\´CߤÀ@eŸÐ7)0Ù3ôMJ Ç„¾I €€ãŒÐ7%`à8 ôM 0E }—ÈB„¾GC cBßô"Ž¡oFÇÀç?ïøyÇw ¸cÀ©¯)ôM»šÈ|W¿}õÛW¿Riú®©µ¦ÖšZ=[ölÙ³eá©…§žªÝR'ŽãrŒË1nôÈÑ#G —}^Lbbbbb¢†€´‹MºdòîÉ»'ïŽ;w0î öáXÑ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@DÄ$&&&&&j€ãÀ!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À‘+3w6?×ü\ós5,а@ÚÈ&ïž¼{òqãfô¾ôˆ0@DäÊ •»< AB$‰AbbBbBâß¿']ž¦ßìU™¿eõ̸-«ÖÜËQì111111âÇÙšdvÈúµ:¾jxŒjžOƒìs.´†³Ñßê?¿û=}×™ø{šþÐbŽHÍ÷fwüìvvìÑ^2s/w§/­‘=ëí­E¯>éû—üÑßéÇm›4oÚ¼ió¦Ù:Å%Ä%Ä%ücQLÄ9‚z*Að§AÎ gS“€§§dSþSø¼ãQºÓ½³ƒ÷ô™Ÿk~®ù¹‚A À±ûç €HD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆˆ\š€£›Ri||||||öi}£÷Þ7úÍ-onysËüéó§ÏŸþã-?Þòã-ëv¯Û½nw‘uEÖYwÊM§ÜtÊM3«Ì¬2³ŠëÇÕ›u꙾WoêuÎ ²ÛÓ ÒnsÿÍý7÷k×*®Õö*Û«l¯R8±pbáį¿ùú›¯¿)X¦`™‚e2³>»Wì^±{ÅÁë^wðºõÓS?=õSÌw¨Õ¡V‡ZóúÍë7¯Ÿ/µ@:{&5_Ö|YóesḻÑd+¸zãÒ€vÚ h7ÐüAó…KŠM*6©Ø¤Žë;®ï¸¾{ëî­»·ÎœšºôÐ¥‡.í0¡Ã„öÕÝWw_ÝÌl‡0ÜíÕ¾Wû^í'}?éûIßøèÀG> Ÿ¤úý‚¿cò½ÁÞ`o°áÖ ·n¸uq°8X¼¸êÅU/®*_>¾|üÚØµ±kcãââ‚ÁÎ`çáÖªÓžèôÄKç¿tþKç‡ð¼…óÎ[Øë†^7ôºÁÕ @H é`dõ‘ÕGVߘwcÞyS_óľ'ö=±ož¾yúæé«Ý¢çª¹WͽjnJ¥Ÿ\öÉeŸ\æê÷iÖôý€ï|?àÙ+Ÿ½òÙ+ƒAÁ `P¸üÞïýñÞO½ïÔûN½/¾u|ëøL €Ü1àŽw|Y÷˺_ÖÍÌvýÁèFÐë^ïôzgçÐCw=úm†ÑoøûoœxãÄ™±3cgÆnŸÝ“®=éÚ“®í±¸Çâ‹  ûG[5¾«ñ]ï:kÈYCÎâNÈÎÀ>æóg>&èôz'/=ÿâó/>ÿâWn{å¶Wn‹ë×9®ó_Á_Á_š-‚–4^ÒxI㋳ä°ÉÇêê}æòg.ær× îÓ,¡PP((to§{;ÝÛé`à 6 —ê\ªs©Îw¬ºcÕ«ºÄw‰ï’I-³øÖÅ·.¾õÙ>Ïöy¶Of6þñçvïнC÷·—™Mf6™Ù$ŒiùÒ7nÿiûOÛ:¤Ï>Cú„=•óvïÕ÷^}ïÕócçÇÎ54@v&€tðã?<úãAŽ Gð/Ãç>Wì¹bÏ Ã3Èâê µÿ°ý‡í?ÔþŒ1zÄèŸwø¼Ãçÿ>øàø äÖ’[Knïß7>Ã{ÿgþžù?êøQÇ&%LJ˜”9-ðéåŸ^þéå÷½xß‹÷½˜Ò:á ¾W¾zðÕƒÛ\Õæª6WUìT±SÅN§68µÁ© Âáô¿ðÝ€ïL;eì”±aœ¼oô¾ÑûF'ßÚwýx×wÕüoÍÿÖüïáÆÀyÎópž‡ï»ã¾;î»ãÁàÁàÁ¿—ÏŸ>úüéCúØÐÇ\ÕÙ™¹ ¬Û¸nãº)•V>µò©•Oýâ겚ýwî¿sÿOúô§OštyÁ2Ë,Óºyëæ­›gæà¡QzhÔÚks¬Í¤Ï¬Â€¶k‹®-º¶gN¾Î)7rÓ)7Mï:½ëô®S_›úÚÔ×®«]ýëêWXSaM…5¹_Îýrî—‹Î-:·èÜKj]Rë’Z}öØgà²Ëv.û?fù]ôè¢G=Ú¿mÿ¶ýÛnÍo9ë–³n9+\þ¸üqI—‡g3 •]áÙ“ÒAbÙIJ‰eS* gNÕJ¸z¬&ì¥úë{¿¾÷ë{I—7Î×8_ã|%‡•VrXæÔd⦉›&n çßÍÌÞlx³áÍ”“—†±î§å?-ÿiùpöè´ÇáÅß.þvñ··•ÞVz[éÔ×ì7¨ß ~ƒ7² û7:§Ñ9ÎIº|ã‚ 6.xúÀÓžî ÈžÀÙÎ_=ÿêùWÏçÎzî¬çÎJ^ÚbP‹A-eNM6÷ßÜsÿî§t?¥û)™ßcºé6¦[J¥Cf ™1dƹýÎíwn¿#ë ½ºàê‚« ¦´N|áøÂñ…Gœ6â´§îö[n9¸åàäËÖXc` ý€²'0@¶3¶éئc›†ákÒåápÇq-âZĵÈðÁŸ …‚B]îïr—ûÃ4iá•®œp儌ÛyØSvåû+ß_ù~òÒrÊ(Wàšû®¹ïšû޾b×Å®‹]wïâ{ß»8¥u&ϘI—‡½ºÍ =åÒÙÍΘ1;c¦¼6åµ)¯M;eì”±kb×Ä®‰ÝÔSÿMý÷NÙ;eï”’}Jö)Ù'ü0±æ 5_¨ùB“M49Pí«j_UûêXÕ<¡RB¥„Jó¦Ï›>oúÄÍ7Oܼü—å¿,ÿ%üðzK×-]·t=ñå_>ñå¢Ë‹./º¼RÅJ+U¼ôÜKϽôÜVíZµkÕ.ù9?ËùYÎÏÜá—|yÍÿÖüoÍÿ&_þuίs~óõ“_?ùõ“—åZ–kY®_ÞýåÝ_Þݽb÷ŠÝ+J=Tê¡R…QS³O›}ÚìÓf_6û²Ù—ùZçk¯uê5 ­_||ññÅÃçù†lXð[×ߺþÖ5±Pb¡ÄBEÖY[dm8—sxׇÏôlÿp[ õvØðí†o7|ûææ77¿¹9|v…K§w±¹Åæ›[ªs©Î¥:×ø¨ÆG5>ºqüãolßw¢mDõÕGTO¾?ôùÙÅf›],éò0.ÒoH¿!ýÎ Î Îɽ;íÛißNK©´éïMoú{ǦW~mûkÛ_Ûþ¹à¹à¹)ýîÕï^ýîÕÃÝWÌú˜õ1ë›ßØüÆæ7¾¼¼ô/g¹Kl—Ø.±fsÈ>b3ggósÍÏ5?Wà 4,tùäÝ“wOÞw0î`ÜA§ #ü1ô¡ }¦ù3ÍŸi>dñÅChs Í6‡»0Rýfå7+¿Y™ôcÄÔ{«ýŽ^øá…^øhýGë?ZÓ°MÃ6ö|„Ë,S°Ì® »6ìÚðíÐo‡~;4ìát¸ÛIß¡£e …‚BaÌóâ⿸ø«Ó¾:í«Ó޾áì†Û.Ûvٶ˶´ÚÒjK«Ü/ç~9÷ËéÛ2ñ¡szíñȶ“ùWÂÑïñXç¬)¥ãJzD; ï(¼£pûÙíg·ŸýéåŸ^þéåiß~øå›0ÜMÞJáœÍC>òéOŸZõÔª§Vîó¼È×E¾.òõö*Û«l¯rdg!ígvÏü=ó÷Ì¿ï§û~ºï§±7Œ½aì ©Ï9nÏÌ ¾æëOª?©þ¤Å·.¾uñ­I×)6©Ø¤b“~lýcë[‡±\zí½ãG?êøÑضcÛŽmûuvÆìŒÙ¹|ÞòyËç•®]ºvéÚiÙZøR/¾^|½iÏùÃæ›?,®s\ç¸ÎwŸ†agÝu Ô-°ÿÎýwî¿3ié+ßXùÆÊÛ*ÞVñ¶Šé{U$õÂo/üöÂoŸýøÙŸ¼4iÒ«Â/á•/\¾pùÂÉK 'N,œ¸fÇškvî–ï…Õ9¿ÎùuÎO^:{Ãì ³7TÉ_%•üþ*ÈhY!54@Ä…°Ö|§æ;5ßyþ¬çÏzþ¬#‹~CaôÎf—ѳÊíܵs×Î]MJ7)ݤt»ÕíV·[}dÑo(Œ~Ãß/štѤ‹&/³â…5oõ@«Z=pǶ;¶Ý±-½¢ßPý†¿7lаAÃæ „£ñÓõ?]ÿÓõu Ö-X·àáF¿¡0úÍÛ%o—¼]’Þጭ7¬¹aÍ kz_Ôû¢ÞÙó<Œ~Ãà0ãî÷U·¬ºeÕ-—'\žpy˜îcºé~4Ñï ïœðÎ ïd§Sã¼ó6Λ|ùÖF[mm´ð±…-L·Awÿì÷g¿?ûM3eÌ”1ÉKk·¨Ý¢v‹´G¿¡·?yû“·?I¾ü´e§-;mYÅ–[Vl™qÑo÷¶_Ú~iû¥É£ß°‡úõ¥®/u}©ŒþšÈöÊÛ+o¯œRiékK_[úÚô­CøTJ¥û†îºoè‘m9ìå_>¾||ù©íÛ‹ß^üöbïïÙ‡ ²Â¾ ×ÝtÝM×ݳ™^[‡bãÄ7N|ãÄô­yN\_ûúÚ×מ³wÎÞ9{Ówûá0×áï¯öxµÇ«=²æ ëyÍk†\3dÚÀi§ Ìè=†½Ù.©uI­Kjù˜Wøu–/¶|±å‹ëv¯Û½n÷Ñl-¹áô9§Ï9}Nx?ÞvÊm§ÜvJòÁrL8@tìŽØ±;Ò÷~û8Þ8çÆ97Î ãð£ßfu‡}jÃ1!Ží¹ãÉ”J'}?éûIß§W«Nï6½ÛônIß¹’j1¸ÅàƒÓ¾¯0†Ÿ¼hò¢É‹’—^ôæEo^ôfF?ÿŸØÿÄþ'ö'Ÿy7Œ±û·íß¶ÛÌyÚ³#fGLJ¥‡«§ÅÏu~®ós”J‹¬+²®Èº£ÙþEo\ôÆEo$_žñø„ø„øÏj€ìÀÀ=zãË7¾|ãËñ]ã»ÆwMiÍp޽[Ϻõ¬[Ï ?ή°½Âö ÛOì{bßû†±ñÌËg^>óò‘gާúœêsÆc‚vßÜsÿÍý7^ÜxqãA †6@Ä™ ‚Â⃦4ý iJëÔ¡þ õ_xiÌKc^sæ¼3ç9/õ[áGK+9¬äaœöqçœgpžÿäýOÞÿüˇïá<¾¯ÜöÊm¯ÜÖê¿­þÛê¿iÙ~êó텒΃›Ñ3b¦EX“s>÷ásN)ºæ¾kî»æ¾×s½žëõ\¥ú—ê_ªzÍz›ô ™qÏŒ{fÜ“5g{=¶sg~;ØrÖ‘–;( çÞ}æÝgÞ}¦ÞÒzKë-MiÍ…Ï.|vá³ žnðtƒ§Ó^‡Çs?žûñÜÝ·tßÒ}KêÁmßÕâ®wµHikWüïŠÿ]ñ¿pÀêôO:ŒÀŸ½üÙËŸ½üöU·¯º}UêëºôÐ¥‡.-¶¢ØŠb+R_ó²S.;å²SÂØøXݧƒJ *1¨DØŸ5yéÑϺ~‰çŒoÎøæŒoÂwᤥaô;ê×Q¿Žú5íÛ|¬þcõ«?dñÅCÿKwÍÞ5{W•CUU9”¾wMøÕ´Ú]jw©Ý%ù„wŸy÷™wŸùäO~ñäQ}’„×vµÕvTÛ±~ãúë7&_ç©OÍxjFxŽŽì¸–^°ô‚¥\±öеW¬M^ÚíÄn'v;qð_ƒÿü×ñûÈúÌ @:[ÒxIã%ÓýŽ~uô«£_MKô û‡k†ý·Ò·æa°°'\òÒp.ÌIS'M45Œ~ã“H}Ë… %JL}ØÃ0píñc{ü˜†>‡ïN)ú=câϘ8üòá—¿üp£ßP¸~Jµ‡V,X±`ÅÑyäŠG®xäŠfkš­i¶&õ5Ã1 šþÔô§¦?¥eË·å¹-ÏmyÂè7éÒúm®jsU›«.=÷Òs/=7¥u¾öí´o§eÄýÞw`ß}¦%ú åü,çg9? kölNiÍ0ú[gl±uŽÕYþ?‚þaÒ“~8š÷”g|<ããÉ£ßÐáþ ÇxHé]þ¼ç58¯AF´U÷|ÝóuÏ—<ú ç~´ú£Õ­í©ÂÐ=¥è7ì ßvÛým÷Í^*U¬T±RÅð (ÿrö§Ï›>oºç3@v ˆ”WïxõŽWïH©´DŸ}Jô ‡ö ûWÙÇýýïéOÿ{Î~úì§Ï~:½jþzñ׋¿^|ÿûïÜgòÒ>¯õy­Ïkuίs~ó0¢Øì vniµ¥Õ–V)­Îãwýp×w¥TÚ¦y›æmš—iX¦a™†GØ\=øêÁWN©tK×-]·tuO‘qb©¯s~óëœq\á“¶ãÈŽ#;ŽLûzóU7_uóU©¯Sàüç8ÿÈ¢²NÿéôŸNÿI©t{¹íå¶—Kßv{èv|¾ãóŸ?²-<µè©EO-:·ã¹Ïí˜Ò:oñöoq¬‚ÃÓ–¶ì´e) Û{ôA»pÜ…ãþe¶ã0,¼jÂU®šök,œE8¡ø„â)õÝUý®êwUÏ—?.ÜÑ´Cتa œ¼ôë=_ïùzϯ}~íókïAÑ&ˆˆørñåâËM8a NHipÈУŸ]/Òó?üçÿüqô5?Øð`Ã ßøó?ßø3yi…5ÖTXsk‰[KÜZâè?ûÄŒÚ;j悔ÉKwîÚ¹k箹óçΟ;ÿØžÍÕåW—_]>ü=ì••ôçò­—o½|ëÑï嬷Îz묷R* «tgÁáêô|§ç;=öÎOû«*ÄWˆ¯ð<ß:¼Þáõ¯§}䆴ßï)}ùæhô.Þ»xïâG͆ï5½Oî}rï“SZ'œë}펵;Öî8Vg¼q¾ÆùçK¾<œy}ñ¥‹/]|ØÏÒð=ýEÿWôE“—†ýÅè/íÛ\|ëâ[ßšP)¡RB¥ä¥áì¿é¥¯Ë±.ǺzhÔC£’—†_e8ÿâó/>ÿâF¿…‚BA¡aÏ{~ØóßèøFÇ7 %J,”|ÅÒµK×.]»ã Žƒ:J¯öÏfJq-©»¤î’ºžÕÑ&ˆˆùcæ™?&¥AƒÃÞBÍg5ŸÕ|Vz}Ìö=ù¥“_:ù¥£ÙNøAäï7ÿ~óï7'/m9¸åà–ƒ‹n,º±èÆôj«í´oÐ>_ë|­óµN^úùðχ>üØD9 é€¦š†gjsçÿ÷'œñèÏãýþè÷G?÷¤¯#›ó5 R_'¥P'-Ê(W \ÌiÓçœ>çô9ξpö…³þI•ú{M]‡ï€ÇêŒ__òú’×—L©4ì|¸ï)7OÜ&;\3ó§ÏŸ>ß\€ÎÂYº7ÈIËóùÜÎ}àÜŽ,"JiNЌШf£šj¦W¼¾×4:§Ñ9ÎIie9—å\–óXZá„g 9kÈYC’—Nü~â÷¿?Üm¦4øsù„ò å.zñ¢/zñp¯„Ÿ«þ\õçª)•Y[dm‘µéÕ&/xÑÀ‹’ÿec>ìža÷ »§Èî"»‹ìŽÆ]ÿg¿?ûýÙoÀ½îpoõåÕ—W_>«Ú¬j³ª¥´~Øã*Œ«0®BÏj|Vã³ôí]d]‘uEÖÙ•@4äÒÑðå_^ðåÁª`U°*yi7k¼YãÍðÃñôýñ¯.üê¯^ ^ ^;Â-,º{ÑÝ‹îRØÄ™ÏœxæÄøñ;âw¤o‹Ÿ\|rñ™éð—©¿LýejTg" û“MÜ4qÓÄMŒ`üãƒ*A• Š;ˆÌÕ»¬Lí2µËÔÖëƒõé»åÌìÅ{4ªªz¨ê¡ôÝfø^3"Œø—Òe¹–åZvŒ?ßû?<<ûå_öÕi_¶bôŠÑ+F§e;[zméµ¥×¼éó¦Ï›” Êe“–¶ÔbP‹AGönþsŸëü\'¥Òp¤£¿+—^°ô‚¥ô«ÿ[ýß > > >LZÚ¿mÿ¶ýÛV©T¥R•JÑx|xá‡~xaï³{ŸÝûìðï‡Ô×ûÇo2¼Éð&uËÔ-S·LF´CêqþO—ýtÙO—yˆ6=€"bK×-]·tM©´ò©•O­|jFì÷¼kλæ¼kŽf ëv¯Û½.Å>@b*ÄTˆ‰Íaš|{?ÞûñÞÇk œµwmìÚØµ±Ÿ^þéåŸ^>üŽáw ¿ãÁñŽp|ÛÞÔð¦3¾9ã›3¾i·ºÝêv«·WÙ^e»èÒYØcõøÚrúªØ²bËŠ-Ó7ÖJý½fãüó7Î?¶bJ3‡>žññŒg¤¥òøâã‹/žX6±lbÙä¥-FµÕbÔ‘Õpã”S6NI©4õ>£i±oô¾ÑûFw˜ÐaB‡ Ég‘oX³a͆5[µkÕ®U»ã=úýfå7+¿YyõÛW¿}õÛáûiêÑoÌΘ1;;÷èÜ£sySæM™7¥^|½øzñשŸÍ 6.ظ ª_Á ¤0@DìˆÙ³#&¥Ò/•x©ÄKña_¸åŒ«yæK>[aÖΪ¸¸ñâÆ‹Òô“¦Ÿ4ýzÏ×{¾Þós•Ÿ«ü\eÍŠ5+Ö¬ø{ÕeI~Æãƒñî s›[ln±¹™ù^³s×Î];wÛ£>ÿâó/>ÿâòñåãËLJ_ÄIZ:éûIßOJÓ@Ð) þΩ|z•Ó«œ^%>ˆÿÍ<õw·£:œïvõ–Õ[VoIº¼øÛÅß.þöà^ƒ{ î•#‘d޽SöNÙ;¥ïë}_ïûúÐç‡>?ôù„»îN¸;õW…Ã?Wì¹bÏ»®Óu®ëÔ7¾o|ßøø‡ãŽ8ãj›zü÷•pipip©ç@T €""õµPÁB ̈ý,S°LÁ2GUó;rìÈB#Óìž¿{þî,‡:þsðŸƒÿ¾aø†áv¼´ã¥/áÏQÈópž‡ó<Î\èÒKþKò_’ÿ’Ì|¯Ùµa׆]²Â±7ÉÛ$o“¼ƒò Ê3(OÒå †/¾`øÏ×ý|ÝÏ×¥ôÚõ×o\¿qIã%—4N^ÚrpËÁ-ÇŽ;þÈÔÔàØu±ëb°ð”±SÆNûæ–7·¼¹%yééC¦™~úúÓן¾þxŒ~ߺøÖÅ·†=}7|»áÛ ß•‚JA¥”Ö/Õ¹TçR{¶íÙ¶gÛ6ÍÛ4oÓ¼èÆ¢‹nÌÌcb‚˜à_þ2Ü3oϼ=ó<©¢ÍБ§ož¾yúfþ~s~“ó›œßÍ\wàº×e–Ì:ŒÎÙ;gÕvTÛQmÇ3íži÷L»#ë-·KÞ.y»TªX©b¥Šáü‘#‹Ž,:²èÏe~.ós÷õåš—k^®ŸÌöü³çŸ=³B=¯/u}©ëK%_Žß0eø”áS†§ôÚp6ÙyŸý,çg9?»á§~ºá§£©[ê­tRë“ZŸÔúȶÜoP¿Aý%_Þö·¶¿µý­þ õ_¨ÿÂñý¾ðÛ ¿½ð[ƒ<ØàÁ¿£ß„_Px<÷ã¹Ͻ´ÐÒBK ÝSëžZ÷ÔÊñMŽor|“ùÇžú—0ö Û7lß0O€ˆÿ¥ ¢!ìã»7Øìý—Ò°wT± XP,÷{ôý®Âšo ¶[ÿ¥ô×>¿öùµOafŸ³¹èÑE.z´u|ëøÖñᬊ©¯_ò¡’•|è¢7/zó¢7«Tý£ê×ò¼–çµ<ó­3ß:ó­Ê—T¾¤ò%ßßßso›{ÛÜÛ‚ð'Ô5èt=Þ.÷ PP(Èäð•VÈz¯ÑıAl&½×dÜ(‡ë‚Õ¬¾`u™KÊ\Ræ’ä‘á¤&ý0釻¯¾û껯N þ=øóçÁçÁçI—_ù¿+ÿwåÿŠÎ-:·èÜ#ü9tR«“ZÔjO°'Øó/¥á0ÚE‚"A‘ÃÞòÁK^rð’`e°2X™tù¨“G<êäQÁ¨`T¶yê3+w¹£Ë]îè3°ÏÀ>ÓþþòÀ„&<0áµ^»áµRZ1œ“»ýÌö3ÛÏìu{¯Û{Ý^!¦BL…˜îw¸ûÃ=ÈóÑÜ/á•|||æyU>.ˆˆÔ?þÞÒuK×-òm½të¥[j¹Â‰… '¦Tú{£ßýÞ(ûœÇm´9Ðæ¶So;õ¶SSŠ~Ûìo²¿ÉþyïÎ{wÞ»›ûoÿÄM7MÜt÷™wŸy÷™õ–Ö[Zoi™óÊœWæ¼ø$¢ÑJ»VìZ±k…»²¦­—m½lëe™ù^»#vG쎬ÓÎitN£s’/Ÿkv®Ù¹6LÞ0yÃä¤ËWݲê–U·¬ø|Åç+>Oþª¿N5æL‹Ô{…n/·½ÜörQ½&ÓÞz=¶öØÚckêÑoøåªi½¦õšÖkøÃï~Gá…wÞ‘uÞgS?›Î/p~ó=©¢M ¥ãJÇ•ŽK©ôë=_ïùzÏÑ|œ\JX§]‰—J¼T"Źl·6ÚÚhk6 €Ç´ÓvLÛ-½¶ôÚÒ+yiý¾÷È{¼÷È„ÜrOÈ}Þ5ç]sÞ5Ñ‹xS·í²m—m»Ì]YÓÊWW¾ºòÕôÝæ·Ó¾öí´”J‹O*>©ø¤¬Óó6ÎÛ8oòåûïÜçþ;?¹í“Û>¹-éò¿ûþ&“?.\þ¸í´oÐþèŸð©Ç~ñ…ã ÇÎÎ×m8‡qØk9¥u:Œì0²ÃÈySæM™7åê·¯~ûê·³æ;ïÿW*P©@%O*€hDÄ…_]øÕ…_¥TúÅÝ_ÜýÅݱß//øò‚//8š-T[]muµÕ)•nX°aÁ†Ùç<~xƇg|xFJ¥|ðÀ|püΧ˜^–ÿ²ü—忸ë!kZVdY‘eEÒ÷+G©¿×\°ý‚ílψ/9™p@þppþ䥿ŸøýÄï“Ö6¥¸q¾ÆùçËópž‡ó¤Ã`Âå ”+P®@J¥ÛËo/¿½|ö¼b×í^·{ÝîÇ?8þÁñÉKcvÆìŒÙùŸÍÿÙüŸÍšh: iî—s¿œûå¬ü.œúÙLýJ À‘z½Z#õ}¥¯C—ºôХ鵵¹ßÍýnîwîzÈš>ûñØÇ¦Ûæ …‚Bá÷)­R}võÙÕgg¡&Øì v6:»ÑÙÎN^öÞÜysçÍï³ütýO×ÿt}ò5[ j1¨Å ôzæŸ1çŒ9gÌI©ôh†€^ÐAÿýã3Lê{Oýµi™ý·ÿýŸèÿÄ_=ÿêùWÏä¥ñØÑíÄn'v;ñx¹S?›§/;}Ùé˲Î&È`€ˆ¨õ@­j=¯u¾ÖùZ'/ ‡vL©Ñ‘ù¤É'M>iòë{¿¾÷ë{G³¸–q-ãZæšœkr®ÉÉK§õžÖ{Zïôm«WåñWÿîÕÿ÷çûg¾æûgÎop~ƒó«ó¸qÁÆSìñ|Ƥ3&1)½z}Y÷˺_ÖÍœãZÕhU£Ué0”÷Þ){§ìòAÓš~ÐÔ]YS8£í§å?-ÿiù£ßÚ¬Óg>ëô”ž9¾ÉñMŽoj·¨Ý¢v‹¬Ö×—º¾Ôõ¥RzŽÍ>aö ³OøðÂ/üð_Þ—Ku.Õ¹TçKk]ZëÒZéõÌc¿”JÃÈ0ª¡`Jmþ ó~÷÷»¿ß=yiÕmU·UÝv|E¿IÏæ‘] Dƒ "™›ìo²¿Éþ”ÖùOÞÿäýOÞ£ÿx7ìÍÙûœÞçô>çèk^äë"_ù:¥Ê*%TJ¨tÓ½7Ý{Ó½G_ó1;cvƼñç¾ñgòÒ g_8ûÂÙa}ŽÕyÌ×%_—|]R*]]~uùÕå~/¿ßüûÍ¿ßÜûìÞg÷>;½jžó³œŸåü,¥Òe¹–åZ–ëèÏàó%ž/ñ|‰]vmصÁ]YÙ“¿?ùû“¿Í]Ž3‘ú“ªþ¨ú£ê*ѧDŸ}²Ú¼µ;ÔîP»C±IÅ&û—ù‰Ã>̓ÿü×à¿’—¶x½Åë-^/²»Èî"é6NC•üUòWÉŸRiJ½£-< á_ÉK¹á‘¹¡èÆ¢‹n<¾Žëç:?×ù¹Î‘] Dƒ RÚþÕö¯¶¥Tº¥×–^[z]ýäÕO^ýäÑ|(ß«]¯v½ÚýðÈüðHzÕ¼ãÈŽ#;ŽL©ô½çÞ{î½ç?øûÁßÙö6<Øð`Ã[.¾åâ[.N)>ìÒ£K.=Žmÿ§SœÚàÔûOï=½÷ôÞGSÃíU¶WÙ^¥uÇÖ[w ‡ÂN¯šŸ\|rñÉ)•>Óì™fÏ4;šíÏ.6»Øìba|üÞ¡a åIEv0gsö†s¦Ù«ùXÍÇj~;íÛißNKiÛ»ý·ÛKßçvzݧaïä†õÖoX?y阶cÚŽi›Òk[ n1¸Åàô=#UU=TõPJ3 /©»¤î’ºÙí*2vÊØ)ÿ2\yÞ.y»äíré¹—ž{é¹Yy®ß”¤t6ó^ Çãqv¹4@”„óéÞ°ú†Õ7¬Ni`É0DL§åCÀýwî¿sÿ]ôØE]ôjW{¼Ú#}k^ó¿5ÿ[ó¿M{4íÑ´Çø3ÆŸ1þŒäëtÏ×=_÷|Ýb»Åv‹OˆOˆOçYL}Ë; ï(¼£p=ô8ðYîÏr–;ù:g?}öÓg?ÝøÝÆï6~÷†øâo8f‰^±ôŠ¥W,]¬VüKiÿý{ôï1éþI÷Oºÿp·Î:Ù½v÷ÚÝkÿÚø×Æ¿6NË«Â/ „½ëR_³êÁª«œL þ-©Y]uuÕÕUÃêi¿êB£?ýÁèz¼ØãÅ/†ý´ÂÃÃPÿøºC·^¶õ²­—ŠÅ=®‚×nxí†×nÈ 5iÿaûÛèŒd„ž÷ö¼·ç½¹OÌ}bîoûë¶¿nû+õõÃûú©UO­zjÕK¿½ôÛK¿¥´fÎÕ¡þ õ_ˆ!þ…ø²æ}Ú8_ã|ó:4êШCÉ4ùúç_|þÅç_\±eÅ–[Æ·Œoß2½Žë„wNxç„w.¼é›.¼i~0?˜ÿÒ•¯®|uå«¿Ìýeî/s³Å¥Y((ZVyYåe•“æú,×g¹>»­Åm-nk¼¼¼˜™U{ïî÷î~ïî#{í¾ÑûFïžÍ RP)øGÏæÕø¨ÆG¹äZk§@´ €"¨·þÝúwû0ø0H9Ñø»/éºØu±ëÂ@.œ¯±Âö Û+lûˆ„=D?­öiµO« ï<¼óðÎɼ¤Ö%µ.©5oá¼…ó}ÍVXm`µñÁø`ü¿”&í•Uóåš/×|¹]v=Úõc€2ç•9¯Ìyõü«ç_=W]¿êúU×/xÁû Þ¡Ð …^(´s×Î];w%ßf8pñ°:Ãê «S,¡XB±„ø >8v]bÚ\Õæª6W ž¥óžy{æí™·qêÆ©§~öÝgß}öÝØ¦c›ŽmºlⲉË&&ßæ‰}Oì{bß°Ý’—v+Õ­T·RÓc§ÇNÝ^`{íbÖǬYŸ|Í£ZŒj1*¥84!÷„Ür‡¢†WÝô›§ß<ýæ3æž1÷Œ¹yÊóPž‡6Ø<`ó€Ï~¶ð³…oñöo±¤Ã’K:$ÝΠ}ƒö ÚwWpWpWÖû+Õp:ì ýHÌ#1Ä„=̨锛N¹é”›²Û“êÿ=ð¿þ—jÒ>h´÷Ö‘!Â)¯ï|´ý£ímïða‡;|XmuµÕÕVN,œX8qÓ°MÃ6 ›³oξ9û^½ýÕÛ_½}åü•óWÎOi›áSkаAà ;Ü/”dþ}¾CÅ΋;/¾p|áøÂ©¯öý=²ãJ‹ËN¹ì”ËNI‡_¯YöʲW–½R;¨ÔŽø•¹nãºë6î.»»ìîéí½{Åî»WL_1}ÅôÇ rwwG‡.¤4¨õßWc†]]d1‰‰‰‰‰‰™³³ù¹æçšŸ«a†Hº|òîÉ»'ïŽ;w0î S^ߺøÖÅ·ÖŸTRýI±ý3ß:ó­3ßú¤Ñ'>iT¾pùÂå §´æá~Èøuίs~³nÁºëÌÀ?…×ǬY?ì±a {¬ÓÞèôÆÑ|šú¤‡»åGo|ôÆGo|iæK3_š™Çž¯u¾ÖùZ¿<üåá/ŸöشǦ=²ö-üË …®ésMŸkú,ztÑ£‹͈šß7ó¾™÷Í|ôÂG/|ôÂôjóô=wqã:Çu^ùþÊ÷W¾Tí™ÁõÌ [Î:÷Çs‘¾ÛO};>÷às>7àÞ÷¸7}ÏTø•Q{Gíµ÷–kn¹æ–kެM2î>MÉ]-îjqW‹w>yç“w>Iý]éÛw¾}çÛw*ö¬Ø³bÏŒˆè¾{õ»W¿{µöCµªýPòÒ'~xâ‡'~xüìÇÏ~üì¬fÄ}N+ÐôPÓCMïO¤¤^øí…ß^ø-<ƒÉK?ïùyÏÏ{^Ü÷â¾÷dœ¬‡š ²Âá Ã–é»ås<çÁs[gl±uR~L•CUU9´ðÎ…w.¼3#Z¦`™‚e –y=×ë¹^ÏÕbP‹A-eµAŸüþÉïŸü¾qÞÆyçMß-Ÿ5ä¬!g ùä²O.ûä²¶'µ=©íIá ÓißÂ+ßXùÆÊ)Øì v¾=ííioOKçZ¾ÉñMŽoîþp÷‡»?ZïÑzÖËÊ÷]½ÕõV×[íùCvÖóöž·÷¼ýŒx`Dzm3ì‰;²èÈ¢#‹6¬Ù°fÚGóÜÎüû4-Ïó:¥ê”ªSªTçRKuθw¥s;žÛñÜŽ§-;mÙiË’—~Y÷˺_ÖÍWéï oø{ÃèWJgðŒ‰gLš®ÏßýÞè÷F‘:¤BA¡ Ð¢»ݽè_†ç¢>^Feàè ÛÙÒkK¯-½ÎzÎÐs†^ñ¿+þwÅÿ6|»áÛ ßnÿæþûÛìo³¿MɇJ>Tò¡S:Òé”NWM¸jÂU¦Ïër^—󺫾#{æï™¿g~™†e–iØ||óñÍÇÿx×wýx×–®[ºn麭ò¶ÊÛ*ŸÔú¤Ö'µç6>ÿšó¯9ÿšÚ-j·¨Ý¢Éþ&û›ìϸA53ÚÞ){§ìRºMé6¥Û4ý©éOMZ–sYÎe9·WÙ^e{•½£÷ŽÞ;ºèò¢Ë‹./ñR‰—J¼Tõ`ÕƒU^Wÿºú×Õ¯sR“êœTrXÉa%‡¥tìáÀá:UòWÉ_%ÿúë7®ß˜X(±Pb¡p¸ï³‡œ=äì!wU¿«ú]ÕÃx>-5g÷ [þê'¯~òê'¿öí´o§…sa†×ÛÉoŸüöÉo—èS¢O‰>áY ¯·¸q-âZÄæˆÍ›ãø:kÚhs ÍÉSNžrò”Z÷׺¿Öýa{†3‰†Ç{J«SZÒ*¼Ë^ßûúÞ×÷z:q¼8Ü!y“Þ7ŽºqÔ£V,X±`Å‚ðéη>»Âû"œ©´Ù—;löe8XqF<2ÿ> 쉛&nš¸)éò<çy8Ïë.YuɪKòÇåË—ÑgpmìÚØµ±üKéÄL\žWûñbÞÂy ç-lÔ QƒF ’.¿À÷UðUðUÑ_Ý ”òP0Kéý¬ÿAaFÏš™=ÏZò-§oK¿×[ÖlO8~ŸºYçîÈÀš …ª”­R¶JÙ0fNZŽNñÚ¯]ðÚ™y¼ÍÖ4[Ólͬj³ªÍª–tù-gßrö-g¿õÃ[?¼õƒ'Õñ¢Û9ÝÎévΛ[ÞÜò斤˯zãª7®zcÌõc®s½VÈY!Íå4:~?äÍÎOgܱgt«f·³&D¬wd\M>[øÙÂÏ®¯½¾öúÚÉK[j9¨å Ø‰±c'ffk´[ÒnI»%³‚YÁ¬,ÿhßGû>ÚçÊ<^ì¿sÿûïüèþøè”Îrìm±·ÅÞæ û00@zwÄ»#Þ‘|y8G{½ÕõV×[ùá\ƒûÜ×à¾s<çÁsLº|׆]vmxcå+ßXéÜe}Ó›öØ´ÇvîÚ¹k箤Ë+¶¬Ø²bË«_=øêÁ¢_€ìF !öÞ7zßèäóþ†šÏj>«ù¬b+Š­(¶"óëÎûp÷‡»?Ü=yé˜îcºéžúpßdá™J¾¼çí=oïy{lŽØ±>ýÈvü !ÆÞ0ö†±7ì²wÊÞ)ÉK[n9¸åàc[ÃÆ%—l\ò¼kλæ¼k’.ŸqÛŒÛfܶ&qMâšDç1kÚQxGá…Ã3•ty¥Š•*VªØ°~Ãú ëëû = €ÒYúþsðŸƒÿL^ZùÔʧV>õ‚Õ¬¾`õ1Žèv;ƒOðôOtñ6ÚhóòÈ—G¾=6¶ilÓØ¦`€ìÌP0®øÛÅß.þöÛÓÞžöö´¬9%ú”è3ô±¡ },éòWïxõŽWï0tV~í`x³á͆7Kºü™zÏÔ{¦ÞÙ£Ï}öhÑ/`€ T>¡|Bù„ {&ì™°§Æg5>«ñYVŽènº÷ÿÿ.ù³ßŸýþì×é?þÓé?Îæ±5°ÆÀkü1ô¡ —´nÞºyëæ-µÔbè€! €ÃÐ}K÷-Ý·h‡b“‹M.6¹]ÞvyÛåýôòO/ÿôòMý7õßԿȺ"늬;ûų_<ûŦ?7ý¹éÏmš·iÞ¦y±ÎÅ:ë|¼DtOxúÀÓß Þ Þ *U¬T±RÅ%u—Ô]R7ëÌ[œÝìÚ°kî _^ðå_^.©{ îºž¹ü™ËŸ¹Üy ©˜ÄÄÄÄÄÄÌÙÙü\ósÍÏÕ°@à $]>y÷äÝ“wÇŒ;wÐ)Ž_I‡JÈ@v“òP=€ÒÐ8¶Ì `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "re…J$ÎMœ›8wÞ‚y æ-ø?V b‚˜cPEûê~µ°ýÚ¯ýzRÙ¯ýÚ¯ýÚ¯#µ_ûµ_ûµ_Gj¿ök¿ök¿Þ‰ì7‹í7&&&&F;Gw¿,KÀ®kt]£ë pP8(¬82†€ˆˆL €ãÆŒ;¨Ñ2B¦½µÉÖ&[›Lšá÷m½·õÞÖûh¶\ôÉ¢O}²Iñ&Å›¯?¡þ„úª•®VºZébÏ{¶Ø³Zžô% ÛÙœos¾ÍùƯ¿~üú>#úŒè3bO¿=ýöôËÌ:ä8ÿÃùîÕ®W»^íš–mZ¶iÙ’ûJî+¹ÏÙáh€ˆº2A™ Ìž {.ìÙû®Þwõ¾kq¡Å…ÊjÕ¬±³ÆÎ;Ÿòä'‡Ôê[«o­¾Á†`C°Á $íÀDÑŽ`G°cþûóߟÿ~Û+Û^ÙöÊ­Õ·VßZýp7S¤l¹×sç+ý^µÜyý­Â ¹¯Ï?©øÝ¹6å¾ñ¤9Jç(‘stÌÄ„-‡Z'^¿ìÞÝ ÷4úýŃ¥¶¼æÀþ‰oZºÿû¶¯_wûþÃî×[lI±%Å–Œš9j標q-ãZƵ …ƒÂN,©)ëN[wÚºÓ:Œë0®Ã¸Åõ×[\/-¯*½¨Z¼Ãª<×ôÊÂOŸúbÕÓó^¿_± ¹¾O¯Zíyx뚃çür÷²Ÿÿøêë{ÇÏÜñÈÆšKçüÑ9-¯­1«Æ¬³†7Þlx³r«Ë­.·ÚY&%`Ž{‰•+'V~å‰Wžx剞wô¼£ç©¯â ”ÍñÄ•ýÜX⩳¯¸r@ÁiA\pR¦Vzu0?Øûç3ܽeæCJoyì¯Gw¯Ox<õõÙwdß‘ïôx§Çc–Ç,Yîì“”€ãØÖV[[mmÕ¬t³ÒÍJ/mùkË_KiÍ"=ÊWÍ}ÖÕk™QbT©ýç¿’·YpvpeP KÆÁÌ`÷¦Ü+:ý1nzù§ëoi»ýùµËöÿ˜Òê•ÛWn_¹ý¸ã6ŽÛXìÝbï{ו@H ÀqiùË\þcšujÖ©™úšÍž¼ðÔ•åâ/J<©Éñrtëb¿ˆÙ;aÜcÝjýR1õ5ç,š³h΢ÊgU>«òY® rhŽ/³FÎ9kdêÑoõámVÄöïvúÜàÌüÇWô ëÖ?<–”Ö Û!l×zpܘ’sJÎ)9ÛlS°MÁ”Ö¹±×K5J÷.ógµò½¥cßgé=ûnÛ§ëâO¦´Î;»ÞÙõήk]{èÚC®–ìI`Ža×”¢ß\;s¯iÒaäGí*¬‰^ô +<Æðx“¯¶ÞÀÙ™Àdi©Ïõ[¤YùC¹K·þìµÊþžûæ“Jå(—ÚdÿÛ{7%¬}iûÆë‹o·6çþÉ×17pö¤0YÔÖV[[mm•zôÛæÕ×-Û/ûD¿¡ðxÃcÛ!ù:a»…mèZÊ>Àd9‰•+'VnVºYéfÿm† ‡½~Ox:ÏÆOfÏV =l‡”…Û0lO×Uv  Ëyå‰Wžxå‰å¯-mùkÉKo7ö‰òÏg·^¿) Û!l“ä¥a†í™5ë?uüÔñSÇÇÆÆÆÆÆö}¿ïû}ßßÑ`Gƒ œÙ#c`²u§­;mÝiUã«ÆWO^zc¯—j”î]æÏj/ä{O[%·!ÏÒ{öÝ4¶O×Åÿ¥Wô²Øe±ËbË­.·ºÜê¬PÛ„f ÍšUtVÑYÉKöà°‡uÕeT—Q…§žZxªó›z5l ¶Û:Œë0®Ã¸ä…Õ‡·YÛ_ô›º°}¶J^úwÛn ¶Û²Bm§ß<ýæé7§T: ó€Î:WXXaa……z§€,aþó?˜ÿÁâz‹ë-®—¼´öŽm®•Ò"¥¶ Û6lç¬PÏ‹_½øÕ‹_ {ú¦¾¦08í  À±V&(”9sö™³Ïœ½µúÖê[«'-löÔà…§®,QâIM4UÚ­‹ý"fï„qu«õKŤˋ-)¶¤Ø’UuWÕ]U7Øl6d…Ú†îжCÛmƽiy•a¢“Ó€claÏ…=öLýéQ¾jî³Ê}uÑç']¥•WØna&]¶sØæY§¶a|Û³eÏ–=[®©µ¦ÖšZz=€8Æê稟£~ŽÅ…Z\(éòVM‡ÿVfA© çÿœ·­V:2›Ö¬8ýQïŽïpò†ÚI—רYcg3f$ÌHÈÊõ×3øpé À1³9ßæ|›ó%~Oüo²9ž(õÓùíóšçõ¨„m¶gÒåa›‡íŸ•ë¯gðápÌŒ_?~ýøõÉ—_ÙÿÁ%ž ® z%´ÒQ¹*è”ø»=ÓÜþY“08-À ;ƒÁÎ>#úŒè3"ya…üO8)WæWêÐOþ›¸ç·ï[÷ÆsÏ]|ñ?Æ?¾þÞýw;ëoÿòº}å§~ÿD£M#^»õ†bk¾xaXÝú«.|åâFÃ~ž5vF×37¼¸hɨ·¶½rpß_»ÞÍèãJ©=ÿnÿÁÎ`çñuùƒSb`Ž­÷o½ëýgŽ8sÄ™ÿ€K/ªV'ï°ï¿Ô¯Ìs™_«™q&mé²¼Ùø>;{$]~⦅~ÖYÿÇ‹5ƒg~8àÑ-Ï'ßBêZ_4¢gÙ"%/©x}žbwtcZv}xýk.óÇ?fÒ]ÕnU»UíŠ=[ìÙbÏïו9ƒõàXºq鯥“/¯ò\Ó+ ?ùõùîÜéïjw¸ÁmR_ {sÁöjI·Pà·’ r½Uï¯û*žœÐúý‘——­Õü›!EJׯ}S‡ŠÞ—»ÁIæ(®9ú‹v}×oÿkùž‡ ϸcL©mS:Ç#=ƒÀ3šÌh2£Iòå§\YyUž9™Y“m“×4ùkðÌû¶¥ô‘má`—ý3—.ÙñN¹í£Ã%Eö”k‘ûà­­ßÚ[®ì¬®ü-GÉEçöɳ½ìë~œom­SîØ^tÒþ©{ó$lÎÓ·à†߇¯ziæUs®“qGšRÛ¦t.ŽwÙ3 p Lø}Âï~O¾ü¤úÅÆåš›9u80âWªOZڳΦ«þóŽÄ6ÕŸj3&ö‰ÃÝÎúíKžÜ»ÿÏž»Ê$œ.‰û¨ó…E Ý”†—'}U©ÓÎ[“çöŒ;Þ”Ú6¥s%Ù' ©.>¸øàâm½·õÞÖ;éò"e˽ž;_ŽÁ9fÆôÉœšÌ8ÔgÑ–1Ûó¯³?ש·Wù"oùKNïr XþÃÝή“7M=xsÒ%e_¯þq¾5i™9¸Õg¯M(³5ü}ëå«ûýÕõ¹ç.¾øÇ3âxö Û9éòð\„ç%;\уÀdª==÷ôÜÓ3ùòÒïUËw`æÔá«âc‡ÇOüaÏÌïvÌ×¬È 9{4üáéN¥ j}I›U÷îÖò_\ìå\³Î;ùº‹ ÞRéóÆ[ ÕKû`ÎäÞyã¡¿3»üc‹ÝškCF{JíœÒy‰¶è…Á`2ÕŽn;ºíè–|yÑß*œûúŒÞû¦Õ+*üñúœ©ƒûÿ¾)¦UŽÖÁ}×u|jd©Ó^YÐð«ÕCÓÒg7¹3Z×y Ù«o~tpÉEW}xu‰ií²ýœ¿#!ü½ìÓÕÏW)£[ ¥vNé¼dуÀdª]SvMÙ5%ùòü“ŠßkSÆí÷ž;Ë:gòäG–mz!aî¡âÁå—|Ô¹Z±_Ç^Ýõ–wYô›’Ô·–ønÂèÄs¦½Ðÿ÷Ík/ýü«}ÅNØ‘gdÌ;­º5W‘Ýé[“´·sJç%{:~Ãà\ǪÉbccccc]:„rßxR¥ƒé¿åÄS»%Nš²ëñ;7-Ø}ð·¶o?íùKšôtî·Ü[ä‘÷ݲ¨ÈY™sŒ›š~»åÿ»ôù1¿_¿¹é·[þÜ•óŒÉý¢N½qxÑÆ;×ä¾÷ÞσŒ €ÿnçÁ–.¯ó^÷꼄?$·0X,Lûêa\udÕ‘UG6™•çr¦È r”È9:fb‡Ò{Ë ïÑ`ûÙëî_Ôv_PpY©U'ìhpÿãíJ^ò\ÌÅ9~ î >22ÿ|ý½û+~öÓжîùéÂÙs÷ —ù±üæÜ ®¹ù±Á%.Úî¿ësgtßßÿ§/rÍe¼+¯L¼21Sï#@V°åPëÄtžø×®+nú£ç翎,²­Ñß}m/è;»Ô'/ͼjîÏu2.p=Ôø`£ÄS>îµiÛ~|cv›^k_þéÂÙs÷Ì<ñ7äxæÒ|w>[¬Õ-÷¿Ù®Ü×£¿h×wýö̉~3®IÉ̘™13c2s1‰‰‰‰‰‰™¨ósÍÏ5_ÿc€lççB?ú¹P·„n Ý’.oÔ®o‰RKÎ,TwBÖ鵯oo™òâ®/¦_ðÔèÍ…Ók›Ë}<÷´ó5+rB®ÉKãwmˆÛßô£A4ÿõéíù×ÙŸ+fIÎÓ‚WªWlÕ$¶àE×ß¶¤È)?§nÕÎÙMvž4¢ç–MÕ“.Ÿ¼{òîÉ»]ŸÉí~h÷C»šØob¿‰ýÞ-ønÁw ¦åU­vµÚÕjWŸú}ê÷©Î(œ9µ=flÜÁ¸ƒq].ÙÍ©“Ntê¤àÖàÖàÖ¤Ë÷4úýŃ¥‚¹Y½þÃÖ]wÙêëî þßøvgÕ_Ï8ìÁaë2ªË¨.£23ôMJ\2UáÁ…œ|ù¶“ר?1}÷ufë:ä/{ÊÎó×”¯—öW½^¨åçk'„¿7ÿÜ˧Ö.\ïÔ·N89yiR|è×_—ïÙü[ზ:í¼5ynoÒzà §nZüšÒ?O Cßcýf\;GÃ?Bß…X„?©úGèÛ²pËÂ-ƒðç9fC@=\|pñÁÅÅë¯_¼~ÒåEÊ–{=w¾¶Íß;§|éc[Ãçž»øâ ¿}çû—oûDÙçr¯Liýu/}qîÞ¾ãþêVø—fÁ}Á¢à¬;¾ûEù#§Üx÷ÚK³Bè›Ô¨nú~íÆíë×ݾ_ÒåññññññÙíjü—ž¾izú¦D`2U®¹jäªQôÉ¢O}r[ïm½·õ—‡‘dB·„“{åœcfLŸã刾]6¥Í®Á¹ÁÇA§XÁSrL9åÆ»×žS÷î_fið~p8¹jµ¯[õLè–peb¯íÏ­Û»¿mÒåá¹È>W`4zú¦xyÄùšoR¼IñÁˆ`Ä?–ï±µÙÁË ''7püãëîÝ_1‚ƒàÏž»Ê$œ.Ÿ}Û *¿?p¸[«voËÏc3¤ÇpضA¼ùoç"Ú×[´Cߤrx¸ùêO¨?¡þ„ä˹üÌ?ë_Dzãº_^:0/ë×3¥¶Mé\ïÂзïû}ßïû~……VX˜–AžÃÐwM­5µÖÔêÙ²gËž-³Ú Ï©30ÇÀÖû·Þ¿õþ3Gœ9âÌt.½¨Z¼ÃZ¼ÿR¿2Ïi¥ô5¦eׇ7Ü»±æÒ9ü#]ÕnU»UíŠ=[ìÙbÏïǽ9}—€cag°3ØYfX™ae†íé·§ßž~I ï*5sâyr·:©x޲šêèíwïï ë‡lºòúŸþLº<ÿÃùÎÿð†Î:oè …ŽÇ£ú&ehŽ…BA¡ P¯v½Úõj—¼p͞ϛì=¨‘ÒKJíùwû‡ÑoöÞ9-ôà˜Ùœos¾ÍùÎ=ñÜÏ=1éòÿ[ lŽ'º¾?£êÏW=ƒÚê}ô ¶¼Ô²þ²ŸîýëÑÝëOZøÝ_ßýõÝ_%÷•ÜWr_Ö?=}ÓB À1V?Gýõs,.´¸ÐâôCmÕtøoe”ªpþÏyÛj¥#³iÍŠÓÿõîø'o¨ty5vÖØ9#aFÂŒ„¬\¡ïá24ÇØ“Cžòää˧—ºþ–¶ÁÚ`a°W+¶µÁÂ`ïßm˜æ6Ï ï|4ôàX+” Êœ9ûÌÙgÎÞZ}kõ­Õ“6{jðÂSW–‹¿(ñ¤&š*íÖÅ~³w¸ǺÕú¥bÒåÅ–[Rlɪº«ê®ªl6²BmõôM/zp¬m6FÍ5sÔÌä…a„yðŒýW$ˆ÷Ò$l«äÑoèïvÎѯž¾A @–×<®y\ó³j̪1+yé‚^ýbÛZ)-Rj«°mÃvÎ õü¼ãç?ï(ôM_†€ YwÚºÓÖV5¾j|Õøä¥7öz©FéÞeþ¬öB¾÷´Urò,½gßMcût]¼ñÉä¥Ëb—Å.‹-·ºÜêr«³Bmš%4KhVtVÑYEÿ%ò7¼ó‘Ñ€,$Œ'ûŽì;²ïÈä¥a´¹ûüß^;0][%¶IJÑoØžY'ú å—c\Žq£GŽ9úïs­§ïÑÓ€,'±rbåÄÊu¯®{uÝ«—¿¶üµå¯%-͵3÷ú˜&Ïœ²äô©¹o>©TŽrÙ¹­ö¿½wSºa«®­þsƒƒ…ö—Mœ´´rûÊí+·Ÿ=}öôÙÓc–Ç,YîêŠ6=€Èr¨rÜÆqÇmL^Æœ£/mßx}ñüY:¡wöl¥ðØÃvHý†Â6ýf£{G`²²å?.ÿqùujÖ©Y§fòÒ"ÍÊÊ]ºõg¯}Tö÷ìÓ8ìõF¿Ûǭ͹ÿ_bò9‹æ,š³¨òY•Ϫ|–«(ûЀ,-Œ0Ç 7pÜÀä¥aü€œæ1<Þ”¢ß°­D¿Ù“À7¦äœ’sJÎ6ÛlS0¥unìõRÒ½ËüYí…|ïEéØ7äYzϾ›Æöéºxã“)­óήwv½³ëÚC׺ö«%{Ò€ãFm¦Ô8F¤sÏRà÷v‡>:pqâ¯Çïñ†õ%õè7lÑ/zp\J}nच=5xá©+ËÅ_”xR“ãåèÖÅ~³w¸ǺÕú¥bêkšë—¤ôà¸Fž«®Yuͪk*·¯Ü¾rû”Ö cÔQ‰­º¬ 6­Yqú£‚‚™Áî,t0?3ƒÝaÝÂz¦ý†Çû÷±‹~IB`Ž{‰•+'V~å‰Wžx剞wô¼£ç©¯â ”ÍñÄ•ýÜX⩳¯¸r@ÁiA\pR¦Vzu0?Øûç3ܽeæCJoyì¯Gw¯Ox<õõÙwdß‘ïôx§Çc–Ç,Yîì“”€HYwÚºÓÖÖa\‡qÆ-®·¸ÞâziyUéEÕêäV幦W~úÔ«žž÷‚üýŠUÈõ}zÕjÏÃ[×<ç—»—ýüÇW_ß;~æŽG6Ö\:çÎiymY5fÕ˜5¼ÙðfÛ•[]nu¹ÕÎ2)E;‚ÁŽùïÏþûm¯l{eÛ+·VßZ}kõÃÝL‘²å^ϯô{ÕrçXô· 'ä¾>ÿ¤âwçÚ”ûÆ“ ä(£DÎÑ1¶jxýþ±{w'lÜÓè÷–Úvòšû'n¼iéþ?îÛ¾~Ýíû÷î~‹-)¶¤Ø’Q3GÍ53®e\˸–Aá pP؉%u`¢®LP&(³°çž {ö¾«÷]½ïZ\hq¡Å…²Z5k쬱³ÆÎ'‡<9äÉ!µúÖê[«o°!ØlpI;0ÙÎæ|›ómÎ7~ýøõã×÷ÑgDŸ{úíé·§_fÖ!ÿÃùÎÿp¯v½Úõj×´lÓ²MË–ÜWr_É}ÎGC ÁÖû·Þ¿õþ¥—n\ºqF“Mf4™ðû„ß'ü¾­÷¶ÞÛzÍ–‹>YôÉ¢O6)Þ¤x“âõ'ÔŸPBµÒÕJW+]ìÙbÏ{VË“¾ÀpØbccccc“.™¼{òîÉ»ãÆŒ;¨}8Vrh€hD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€""—&€ÃõÊó¯<ÿÊó‹¦-š¶hZÍkj^SóšÒ7–¾±ôZ†c+&11111QCï  `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"âÿÍ­k« šó%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/defer.png000066400000000000000000000750241431412030200244660ustar00rootroot00000000000000‰PNG  IHDRT¤FÚgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Üy+IDATxÚíÝwtÕÿÿqÀŠ…^‚„Þ{ ½—„®€ôŽtA@¤H¥|è5 MÀPDbt§Þ %€TA@z]zËïë÷œýüâîgCv7³“çcÎÙ“É”»3³ï;¯¹Ébý(ꕨW¢^II†ÌIý“É&#ßIr°ü÷¨äQÉ£’G%‹J•L¼/Ä ñ\<ÏÅSñT<OÄñD<Ä#ñP<Å}q_Ü÷Ä=qOÜwÅ]qGÜwÄmq[Ü7ÅMqSÜ7Ä #bDŒ¸&®‰k⊸"®ˆËⲸ,.Š‹â¢¸ .ˆ âœ8'Ή³â¬8+N‹Óâ´8%N‰Sâ¤8)NŠâ„8!Ž‹ãâ¸8&މcâ¨8*ŽŠ#âˆ8"‹Ãâ°8(Šƒâ€8 ˆßÅïâw±OìûıGìÑ"ZD‹]b—Ø%vŠb§Ø!vˆb»Ø.¶‹(%¢„)La CšЄ&T¡ U8„C8įâWñ«Ø&¶‰mb«Ø*¶Š-b‹Ø""E¤ˆ›Åf±Yl›Ä&±QlÅâGñ£X/Ö‹õâñƒøA¬kÅZ±F¬kÄj±Z¬+ÅJ±RDˆ!Vˆb…X.–‹åâ[ñ­øV,KÅR±D,KÄ"±H, ÅB±P, Ä1_ÌóÅ<1OÌsÅ\1W̳Ål1KÌ³Ä 1CÌÓÅt1]LSÅT1ELSÄÄÄÄ$1ILÅD1QŒãÅxñµøZ|-ƉqbœøR|)¾cÄ1FŒ£Åh1RŒ#Åâ ñ….†‹áb˜&†‰ÏÅçâs1D CÄ`1X ƒÄ 1H|*>ŸŠb€ ú‹þ¢¿è'ú‰~âcñ±øXô}DÑ[ô½EOÑSô=DÑCtÝD7ÑUt]EÑEtEgÑYtEGÑAtD;ÑN´mE[ÑV´mDÑJ´­DKÑR´ÍEsÑ\|(>Ц¢©h*šˆ&¢‰x_¼/ÞEcÑX4 ECÑ@4 D=QOÔuE]QW„ŠP*êˆ:¢Ž¨%j‰Z¢¦¨)jŠ¢†¨!ª‰j¢š¨*ªŠª¢²¨,*‹J¢’¨$*ˆ ¢‚(/Ê‹ò¢¬(+ÊŠ"BDiQZ”¥D)QJ”%D Q\ÅEQQTEDQD…D!QPEQ@ùD>‘OäyE^‘[ä¹E.‘Kä9D‘CdÙEv,‚E°È*²Š¬"‹È"²ˆ $‚D&‘IdEF‘Q¤éEz‘N¤éD‘F¤©Ej‘Z¼+ÞïŠwÄ;âñ¶x[¼-RŠ”"¥xS¼)Þ¯‹×Åëâ5ñšxM¼"^¯ˆ"…H!’‰d"™kÆš±æsó¹ùÜ|f>3Ÿ™OÌ'æó±ùØ|l>4šÍæóyϼgÞ3ÿ6ÿ6ÿ6ï˜wÌ;æmó¶yÛ¼eÞ2o™7Ìæ óºyݼn^3¯™×Ì«æUóªyÙ¼l^6/™—ÌKæó‚yÁ#Ÿ‘ÏÈkä5ò¹ÜFn#—‘ËÈeä0r9ŒìFv#»lÁFV#«‘ÕÈbd1²AFdd22™ŒŒFF#£‘ÞHo¤7ÒéŒtF#‘ÆHm¤6Rïïïïïïooo)”FJã ã ã ãuãuãuãUãUãUããã#¹‘ÜHn$3’Éôú ý…þ\®?ןêOõ§úý‰þD¤?Òéõ‡úCý¾~_¿¯ßÓïé÷ô»ú]ý®~G¿£ßÑoé·ô[úMý¦~S¿®_ׯë1zŒ£_Õ¯êWõ+úýŠ~I¿¤_Ò/êõ‹úyý¼~^?§ŸÓÏégô3úý´~Z?­ÿ¥ÿ¥ÿ¥ŸÔOê'õãúqý¸þ§þ§þ§~T?ªÕÿÐÿÐÿÐë‡õÃú!ý~H? Ðèûõýú~}Ÿ¾Oß§ïÕ÷ê{õh=ZÖwë»õÝúN}§¾Sß¡ïÐwèÛõíúv=JÒ£tS7uSžtM×tMWuUWu‡îÐú¯ú¯ú¯ú6}›¾MߪoÕ·ê[ô-ú=RÔ#õÍúf}³¾IߤoÒ7èô úúúú:}¾NÿAÿAÿAÿ^ÿ^ÿ^_£¯Ñ×è«ôUú*}¥¾R_©§§§¯ÐWè+ôeú2}™þ­þ­þ­¾D_¢/Ñë‹õÅúB}¡¾PÿFÿFÿFŸ¯Ï×çëáz¸®ÏÕçêsõ9ú}Ž>KŸ¥ÏÒgê3õ™út}º>]Ÿ¦OÓ§éSô)ú}²>YŸ¬OÒ'é“ô‰úD}¢>^¯×¿Ö¿Ö¿ÖÇéãôqú—ú—ú—ú}Œ>F­ÖGë#õ‘úHý ý ý }¸>\®Ó‡éÃôÏõÏõÏõ!ú}ˆ>X¬ÖéƒôAú§ú§ú§ú}€>@ÿDÿDÿDï§÷Óûé}õ¾z_½ÞGï£÷Ò{é½ôžzO½§Þ]ï®w×»éÝônúGúGúGz½‹ÞEï¤wÒ;éõŽzG½½Þ^o¯·ÕÛêmõ6z½ÞJo¥·Ò[ê-õ–zs½¹Þ\ÿPÿPÿPoª7Õ›êMô&zý}ý}ý}½±ÞXo¬7Ôê õz½^O¯§×Óëêuõºz¨ª‡êuô:z½–^K¯¥×Ôkê5õêzu½º^M¯¦WÓ«èUô*ze½²^Y¯¨WÔ+êô z½œ^N/§—ÕËêeõ2z½Œ^Z/­—ÖKê%õ’z ½„^B/¦Ó‹éEõ¢zQ½°^X/¬Ò é…ôz½€ž_ϯç×óêyõ¼z=žGÏ¥çÒsé9õœzN=»ž]Ï®gÓ³éÙô¬zV=«þžþžþž¤éAzf=³žYϨgÔ3êô z=žNO§§ÕÓêiõÔzj=µžJO¥§ÒßÑßÑßÑßÖßÖßÖSê)õ”ú›ú›ú›úëúëúëúkúkúkú+ú+ú+z =…žBO¦'Ó“i±Z¬«=מkϵgÚ3í™öD{¢=ÑkµÇÚCí¡öP»¯Ý×îk÷´{Ú=í®vW»«ÝÑîhw´[Ú-í–vS»©ÝÔ®k×µëZŒ£ÅhWµ«ÚUíŠvE»¢]Ò.i—´‹ÚEí¢v^;¯×Îiç´sÚíŒvF;­ÖNkiii'µ“ÚIí¸v\;®ý©ý©ý©ÕŽjGµ?´?´?´ÃÚaí°vH;¤Òh´Ú~m¿¶_Û§íÓöi{µ½Ú^-Z‹Ö¢µÝÚnm·¶SÛ©íÔvh;´Úvm»¶]‹Ò¢´(YþË}MR5US5‡æÐÚ¯Ú¯Ú¯Ú6m›¶MÛªmÕ¶j[´-Úí'í'í'm³¶YÛ¬mÔ6jµ Úmƒ¶^[¯­×Öië´uÚZm­¶Vû^û^û^[­­ÖVk«´UÚ*-B‹Ð"´ï´ï´ï´åÚrm¹¶L[¦-Ó–jKµ¥Úm‰¶D[¤-Òi µ…ÚBm¶@[ Í׿kóµyÚÓ>Ó>Óiƒ´AÚ@m 6P  ÐhýµþZ­ŸÖOë§}¬}¬}¬õÑúh}´ÞZo­·ÖSë©õÔzh=´Z7­›ÖMëªuÕºj]´.Z­³ÖYë¬uÔ:jµZ­ƒÖNk§µÓÚjmµ¶Zk­µÖZk¥µÒZi-´Z ­¹Ö\k®5ÓšiÍ´&Z­‰öööÖXk¬5Öi´FZ­Ö@«¯Õ×êkuµºZ]-L Ó´:Z­ŽV[«­ÕÖjj5µšZ ­†VC«¦UÓªiUµªZU­²VY«¬UÒ*i•´ Z­‚V^+¯•×Êjeµ²Zˆ¢…h¥µÒZi­”VJ+¥•ÐJh%´âZq­¸VT+ªÕŠhE´"Z!­VH+ Ð hùµüZ~-¯–WË«åÑòhy´\Z.-—–SË©åÔ²kÙµìZ6-›–M˪eÕ²jïiïiïiAZ¤eÖ2k™µŒZF-£–AË eÐÒié´tZZ-­–VK­¥ÖRk©´TZ*íííímímím-¥–RK©½©½©½©½®½®½®½¦½¦½¦½¢½¢½¢%×’kɵdZ2-™úB}¡¾PŸ«ÏÕçêSõ©úT}¢>QŸ¨ÔGê#õ¡úP}¨ÞWï«÷Õ{ê=õžzW½«ÞUï¨wÔ;ê-õ–zK½©ÞToª×Õëêu5FQcÔ«êUõªzE½¢^Q/©—ÔKêEõ¢zQ=¯žWÏ«çÔsê9õŒzF=£žRO©§Ô¿Ô¿Ô¿Ôê õ„z\=®W©ÇÔcêQõ¨zT=¢Q¨‡ÕÃêaõ zP=¨P¨ÔßÕßÕßÕ}ê>uŸºGÝ£îQ£Õh5ZÝ¥îRw©;ÕêNõ7õ7õ7u»º]Ý./þÉî¾üW%EUTEýUýUýUýEýEýEݪnU·ª?«?«?«‘j¤©þ¤þ¤þ¤nR7©›ÔêFu£ú£ú£ú£º^]¯®WPPPתkÕµêuºF]­®VW«+Õ•êJ5BP#Ôê u…ºL]¦.S¿U¿U¿U—¨KÔ%êbu±ºX]¨.Tªß¨ß¨ß¨óÕùê|5\ WÃÕ¹ê\u®:G£ÎQg©³ÔYêLu¦:S®NW§«ÓÔiê4uŠ:E¢NV'«“ÕIê$u’:Q¨NTÇ«ãÕñêWêWêWê8uœ:N«ŽUǪcÔ1êu”:J¥ŽTGª#Õêu„:\®W‡ªCÕ¡êçêçêçêgêgêgê`u°:X¨TªŸªŸªŸªýÕþjõõõõcõcõcµ¯ÚWí«öV{«½ÕžjOµ§ÚCí¡öP»©ÝÔnjWµ«ÚUí¢vQ»¨ÕÎjgµ£ÚQí¨vP;¨Ôvj;µÚVm«¶U[«­ÕÖj+µ•ÚJm¡¶P[¨ÍÕæjsµ™ÚLm¦6U›ªMÕÔÔÔÆjcµ±ÚHm¤6R¨ Ôj}µ¾Z_­«ÖUëªaj˜¦ÖQë¨uÔÚjmµ¶ZS­©ÖTk¨5Ôj5µšZM­ªVU«ª•ÕÊjeµ’ZI­¤VP+¨Ôòjyµ¼ZV-«–U˨eÔ2jiµ´ZZ-©–TKª%Ôj µ˜ZL-¦U‹ªEÕÂjaµ°ZH-¤R ¨Ôj~5¿š_Í«æUóªyÔP>P>P+•ÆJ#¥‘ÒHi 4P(õ”zJ=¥®RW©«„*¡J¨RG©£ÔQj)µ”ZJM¥¦RS©®TWª+Õ”jJ5¥ŠRE©¢TV*+••ŠJE¥¢RA© TPÊ)å”rJˆ¢„(e”2J¥”RJ)¥”TJ*%•âJq¥¸RL)¦SŠ(E”"Ja¥°RX)¨T *”J%Ÿ’OɧäQò(y”ÜJn%·’SÉ©äTr(9”J6%›’M V‚•`å=å=å=%‹’EÉ¢dV2+™•LJ&%“’AÉ dPÒ)é”tJZ%­’VI­¤VR+©”TJ*ååååmåmåm%¥’RI©¼©¼©¼©¼®¼®¼®¼¦¼¦¼¦¼¢¼¢¼¢¤PR()”dJ2%™ã…ã…ã…ã¹ã¹ã¹ã©ã©ã©ã‰ã‰ã‰ã‘ã‘ã‘ã¡ã¡ã¡ã¾ã¾ã¾ãžãžãžã®ã®ã®ãŽãŽãŽã–ã–ã–ã†ã†ã†ãºãºãºãšãšãšãªãªãªã²ã²ã²ã’ã’ã’ã‚ã‚ã‚ã¼ã¼ã¼ã¬ã¬ã¬ãŒãŒãŒã”ã”ã”ã¤ã¤ã¤ã„ã„ã„ãOÇŸŽ?ÇÇÇ8þpüá8â8â8â8ä8ä8ä8è8è8èØïØïØïøÝñ»ãwÇ^Ç^Ç^G´#ÚíØíØíØíØéØéØéØáØáØáØîØîØîˆrD9¢äe{y¹N–íÀ~Ý`ð+ä¡ÀàÀÀl‚˜€M° ``6AL À&€ €Ø00› &`ÀÀl‚˜€M° ``6AL À&€ €Ø00› &`ÀÀl‚˜€M° ``6AL À&€ €Ø00› &`ÀÀl‚˜€M° ``6AL À&€ €Ø00› &`ÀÀl‚˜€M° ``6AL À&€ €Ø00› &`ÀÀl‚˜€M° `` <œðpÂà ?OùyÊÏSžxràÉæzs½¹^­Hµ"ÕŠäÈ‘?"cdÆÈŒ‘'œPpBõàêÁÕƒ[ll±±ÅFùû[nY¸e¡œí 슘,![I­5îGܸ>-|Zø´öuÛ×m_·Üwå¾+÷]æðÌá™Ã -4´ÐÐÚûkﯽŸ=ÇŸ.O¼<ñòÄÜgsŸÍ}Vî™9SçL3õswÎÝ9—XË’ÿ"ÿWþ¦ü+9Þ5:ýUýUýÕv-Ûµl×2—M š4Qþì¨á¨á¨Ág{Ëœ…`µ~‡?ëjpÆ€çüÙ»¤' ¾FL t2-äØðcà /™ªdª’©<3Ø|íE¶Ù^dkتa«†­œ[~z¦é™¦g²Â²¦†L ™âüûê5ª×¨žœï ËñöÇÛoßjV«Y­f¥ñ£?ü±àþÿŒãLØ£^µò±ÌùÖéwø³®u ^Ž?{—ôdÀw€ € :™I¡îº{èî¡¢ Š6(Ú ¾¡û¯M3qÌÄ1ÎmžWäy…/Úÿå–u/ò^ä½Höºiù¦å›–/M"Iw>Ýùtç}qÔp&’B½J úV««AÝ‚—ãÏÞ%=Yð``€NfRhoÌxcÆžt¶åÙrdÏ‘=Gv:E¾vtÒÑIG'Å}æ-ž·xÞb«-köîÙ»gïvþÛ Q¢2D±ŸÀÊä·ûí´wÐ^OÎY†e–eXç·:¿Õù­jþPó‡šûrí˵/—|XÜãÞ{?î}qÕÅUWí©¾§úžêkú¯é¿¦‡ *t¨àüðgO<«ò¬Ê³*¾þŒãìQ¯ƒ~‡uêjP· áüÙ»¤' ¾@L ÐÉL -àþa§UêW©_¥þ‘ÕGVYMÈORŦŠMUÿ³úŸÕÿÌù½c¡yù]ðÒ²Nx8áᄸû|Èo)¬æyÑçEŸ•Ѭ'£öƽ?8!Ÿ5ž‡ÁO>mø´¡ï>ã8«ö¨W €A¿Ãu5’ð¹ÞåÏÞ%=Yð``€NfRh÷ãoíî°»Ãîì'þ±6bmÄÚ¸ïÅ’¼Kò.Ékåe}Óå›.ßtáb ¬oü’ñKÆ/qþ—‹ÏÜ=s÷Ì]ï.ýLò3ÉÏ${1ÚÇR¤P¯ƒ~‡êj$ås|ÁŸ½Kz²à]ÀÀ̤Ði尿›ö®«x4ôÑÐGCÙOüC>B¶p¯Â½ ÷r~²Ë^,{1ïX–«oOˑޞ´}ÒöI[Þe$r'dkÔÖ¨­îÏüMž5yÖ䙯?\/ΜÏϾøŒã’`z•ô;·®ç:ø³ZöEï’ž,xùÚ 00X¿“I °‡ø“«ï÷+߯|¿òÞ}G|·,ö(XÓÝCwÝ=÷B°³=ôhÐßûª¼Øíþ¨)Ò¦H›"mäú{÷xä¨ìQ­ƒ~GâÖÕà\{œ7Ø÷À[€ € Éu'h¸"C ‚ N(ø/ß;;ı#P–¥¿ª¿ª¿wÎ2x“wcðŽÃÿf<šñhÆ#W纬m³¶ÍÚöìù³çÏž÷ÿºÉå¾×ç½>ïõñî9™ ©@R¨Ö€A¿#±êjp®ƒ¯ù³wIO¼…˜’ÐeZî­Øµb׊]®ºšÞ}/|½¬Ù^d{‘ý Ö!Úæ~Ÿ\ØtaÓ…Mw=çž?zþhWk(@ß#ˆ ©@R¨Ö€A¿#±êjp®ƒ¯ù³wIO¼…˜âív²ÛÉn'[¹h墕‹Ú×m_·}ÝÊ­+·®Ü:÷ÙÜgsŸÍž9/ú¼¨qѸh\´wÐÞA{C7…n ÝT¬r±ÊÅ*gZ™ie¦•Ùªd«’­JÉT%S•LÕ¡B‡ *È—ýõwÔßQ~!&PZc爟^®ëèùHf5ž×x^ãyÜöytæÑ™½»þYÖˆæ#šhw)uŒ:Fƒ³ü)bmÄÚˆµî°l… :òÜèÝKŸñ›é× .¸>-|Zø4¹ÉšSîoY†e–eXÆÈŒ‘#sÝÉu'×’±%cKÆ6×›ëÍuy\héµôZúgUžUyVÅ×Õš•e*mÿ»•úVê[©WZ=jõ(¹÷V­TµRÕJù~Ê÷S¾Ÿä~[`^yæU+R­Hµ"Ÿv~Úùéšþkú¯é/ÿ6Ðûþ¬«­|ÞDvª[ÝÓ†O>mè¨á¨á¨!œ^ët­ÓµNËýÙùLRãÝïÖx·Ëõ.×»\ÿ¡æ5¨ùr—X§wIOŽ˜<ò`Þƒyæ½6öÚØkilŠý)ö§ðçeˆu¥×•^WºÐÐBC }¹uÎ^,{±ìÅäÏW]\uq•ïºÓž ôÖðÖe©«}®ö¹ÚgÜžq{Æí‘—äלï3p¿Ä}¹öåÚ—ËÕ¬>²úÈjom?—%/ñíiXóȾqM©=¥ö”ÚÖYÛ Ó'LŸ0ÝÕÚ6y»ÉÛMÞöî™_þæÁ#“üLò3É}ñ&µOºÜÓrOË=ÍÕÜäå`_´³«Ñ=%Y7Æcv©bSŦ’_/¨y³æÍš7½[5ÍýaîsHÈ£#÷XN:•vâ’1ö¨ü£òÊï­ýöι;çîœ ¬~‡?k]ëŸ7Q ×-/UlªØTò«“òët ß“e-X½Kz²pÀÀð?ü±à,ßÜ÷VG:ÝùtçÓw.Ù}QÖß¾sûÎí;dý ëY½{!@Þá仑 }q!Æš­‘ðË”ò~2÷¿ïI<ðäÀ“OÆýÛÒgJŸ)}Æ»[çÏe¹oOy÷g9øš¼7ÑÕ~˜þPúCéYí"ŽŒ\­³¼Èóuöä\*ïóÝçìËÙÿ÷þ¿÷ÿíü¸Nï š41h¢·Þý¤üIWèB¡ ….øsý¥ºsêΩ;ÇÕrOV;Yíd5Oæ##®ÖãZk=._ÜÌ~3ûÍ쾨â¬y,'J;±ÈÈSÞïèÝÖÈ+òмâŸ{%¤ßáŸZ7PÎ(pÏuNîcî¿4ùrähÜ»;ìî°»C`õ.éÉ@B€Kž|ãÒ?â»æ7Šß(~£¸|œšÕÖÐÿ˵rk¼\+ÉaõœÙsfÏ™ž¬ûØýC½¾ìõe¯/½uLùsYÎz|ÛãÛߺºÀ¥o9ôÛ¡ßýý~ôûÑïÓÎäã@]íùΈ´Úš{댈Ÿ¤þ¬äÃ!²ðIçyHï­£ãüöóÛÏowµç`Øý|ä=I‡TRqˆ?ˆFõÕkT/¾ ÄcÙ“5O Gœïȇ·ûº^.÷ÿ»àŸZ7°Î(pÏuëzÕëU¯W•+÷]«Ê‡ð'¼…ýÙ»¤' AL ÿBŽ;åÉwØåÈIò±r”_ù­Õû÷#îG~lø±ás~óëœ_¿ñí,íÝ´wÓÞõV÷OŽ=&Çs?OùOùÍå3wÏÜ=sWÞ£&·]~Ë^>h1W²\Ér%s5çGYz²†²üûä~m]ýU ·ÆË]tèÓ­O·>Ý<ï躀wLÞ1yÇdW»¨Ö¢Z‹jyëÈò粜¹D'Ýfoù¾Ó÷¾ïäܪò_d“”[æëu_¯ûz«}ïóŸÏø|†5×|@Ê)¤tµæò¾Ì„ŸÓ\ž™Ÿ5yÖäYä÷‘ßG~)üRø¥p9þî_%þ*ñW‰%y—ä]’דËßñ=3?iû¤í“¶žÌY†|r?—¼ìv²ÛÉä˜sò!ŸòÁ°ò‘Åîç&GÇ”á>÷ýùIgþaþaþáêwä%ToîïK^±kÅ®»<:Êž x2à‰û­“»–f—Ÿ¤Îï ¼h.¿‚#G=”÷¤:¿S‰û5¾Ä:–=_ó¤pÄù‚|0»'û€Ü'7<Øð`Ãùå ùHá [.l¹°e㥗6^jz£é¦7ÜÏÇùAÙVëwø³Ö ¬óF Üs] ’çU9²¯û–‘çÞ•‹V.Z¹H¢![Xþ¼uäÖ‘[GÊq‚ÝïÉÎCHX¿wIO‚˜þE7­›ÖMs_d·\ÞryËå1bÅ4òdžîê­‚~Æ3Þ˜ñ†û‹&?OùyÊÏSâ{çVç·:¿Õù-Ws–có$ä±`¾èÒØµ5âÊž9ûÛ׿}ýÛ×=9'ȯx2ç ã+Œ¯0Þ“¯#¬šºjꪩ./ËÞM{7í]ù®ù.<ã“îå>éÜß{ßèÈ=Ww¾×ç½>ïõñd)2€q¿ÕqîßΕ!*C”ûjÖe_Ô™{ÄùBÛîm»·íî~XveÙ•eWâÛî÷[ù©š5÷]-êëZ7Ï(pÏuÈýyUÖ]r,êøžIŠ6(Ú hWsžñhÆ£¬ß»¤' AL ÿE>¼Ô“è×w¡{¹ËžŒ×èü@Ëx¯tªØT±©Ü¯çØkc¯½f… 1ön ge”9PæÀé4§Óœ~ɶªñnwk¼ëêR»wCY.Ë™¼ŸÏUÊ;ó8û%œûXÊ™12c¤üyŠý)ö§H -¶"lEØ Wmò{ºßÓýžÎšk.GJsÿ(HOŽ\ÏÏiòî(_ÜáçùgJs½¹Þ\wõ·ÇL3qŒï>;dxÀ']B>é† 6pØ@ß0rd_Wsî=¨÷ Þƒi÷Ûßè×™|@½óøÊq¿Xórsögï’ž,$00ü—îºoè¾ÁUy]`^yæ%¼&säÝ.ßWޝ_9\ÍaiÆ¥—fLøšËǵ•û®Üw律»”ÙsdÏ‘=qÍ—ZC*[2¶dì•aW†]örë/Çs5çÈ*áG–?—ßVu¾Ës`Bè¯ê¯ê¯M š41¾_sù1Ã~Ìð¬Ê³*Ϫدeœ/ÈÆ%[gÍ5?ÑøDã]­y¥ž•zVêé­X>|2!G¢'Ÿ­ò¡ÍîçS¤M‘6EÚ¸šÃ þXðÇ‚„´êüÑóGÏíjþíZ¶kÙ®%Ÿt ù¤s¯Lß}[ôm‘6qþ@\Û×l_³}'ó Ÿ>-|š«ùLÏ4=ÓôL ?Šÿìûgß?ûº¿wÍ»°uŽeïÖ™~ÄyWç§Ÿv~êª5ZÍj5«Õ,_Ç]÷uÝ×uŸ/ælåZ7Ï(pÏueü’ñKÆ/Iø þnZ¿wIO^00üC>TÍ}Ç@Ž7ã­%:? .!÷’*u«Ô­R·¼Û%ØðÚ†×6¼æÝN”·æ–ZC’ûOBÖ\K¯¥×Ò»šÿð®Ã»ïê­Vòç²\‘#­&Íï×û“s{«\¬r±Êñ ƒ§å›–oZ>«=è2!ähñ®¶÷öÛwn߱暻ÔdÁ 'œà­X†vVøluÿèK9~gBÖPÞÉ:æñ¿OrŒ@>éþIçjžÎ㭾ܜËn.»¹ìfWqµçsþlýgë?[/ï Œ;yí ÜWêÝØ:Dz·êL{qÞr£øâ7Š»_·Ã?þùðÏ _–¡ÖÕR2­Ì´2ÓJ+|ñÔŸµn ž7½š ¬s] _út¿½ò94 _–ûç٬صb׊]Öï]Ò“€—CL ÿؼsóÎÍ;}w¹0.÷#Õy^ÊcòŽÉîVéݶ’w'¸Zâ‚ ,Xb’Bk8?\.!k>{÷ìݳw{wÍ­°,Wæ-ž·xÞbWë ï¨àLè]Îw68ß'_Þº”œXœï•‰K¶’5×Ü}ìáùÅw÷ﯷYéùg«ÛØÕœï±‹Ë c6óIç‰q{Æí·Ç»—J9xäàWs›üáä'hµ£øÁ¼óÌóOŒjµcÙ[u¦=Ž8oÙttÓÑMG]­[åÖ•[WníŸûÞ¬ðÅS«ÕºÖSúL|×GÞmcåU*s Ì2\m…•Ç>s÷ÌÝ3w]­¹ó(• Ù«7<Øð`Ã﮹²ÁÕëuŒ:†«¿ýÏGÿùè?y¾në·­ß¶~'<œðp‚Þ>é¾”¼"¯È+â»ÎÅ‹/Zü_î"jz£é¦7¬‡È{÷åÝê¹Ïæ>›û¬`«ËÞª3íqÄy‹ó¨œqÉ'*yw‰îˆÝìT³SÍNy·Ö ÜZךç@¸çº@Ñ¡B‡ *Xùi+Vë]JO¬†˜þáþ½ƒÊËuÿ8AOºÖ•zVêY©§u""çõñÿ…˜¤ÐÞŠ‹œ®×¾\ûríËå­ýÜŸËreOõ=Õ÷T÷ÏÃÜ|wÉÉNðqm®ÅÆL›ÑøDcï.ÑýÝü‡TRqHbõ;¬VëZó¼ˆ÷\(ªÔ¯R¿J}WÛ{dõ‘ÕGV[+üÙ» ”ž,X 00ü#ÏÁ<ótUR_kw­Ýµv¾X®|èPBºÖ…{îU¸—u.K9ßãÿ 1I¡5¼u¿c¾Ÿòý”ï'ÿÜ•èÏe¹r*穜§rºZ‡‚ N(8Ø:—ùä‡ 6pØÀìŲË^,¾k+ïË”#«%î{êþî1+ßå°ñÒÆK/¹Zóîºoè¾!áÑËÍì7³ßÌîÝ5¿2ìʰ+Ã\-ÑùÞ&Ws_Ïr_Ä—¼·øØðcà OÈÖñIç¹³çÏž?{ÞÕRdøáÉ|äqçà™xkß9bçˆ#äHÆÍõæzsÝ gø@<–^gÚãˆó–üù#òGøsˆiÓ(¦‘«%:¿;þïwX§Öµòy#î¹.PiS¤M‘6®¶WõÖß ö.¥' VCL ÿH(ý¡ô.G:|Üûqïǽ}±\ùÐÈ„t­ßëó^Ÿ÷úXç²”óh—þ¿“$Z#UlªØT ß÷² Ë2,‹Ë ò8oíçþ\–+ò!®Ö!¸apÃà†t›­Éùª0¾Âø ãã{$&î£å…®ÖMKÖlùá]‡wÞÕÕš½6öÚØk ?§=iû¤í“¶Þ]syß­«%fˆÊ•!Ê“ã]^•*|¹»ÒÝ›8f☉câ{ä“.!çø^0•_"q5‡A{í´7áŸ÷"ïEÞ‹üzÝ×ë¾^çÝw'hbÐÄ ‰þ €­|,Si{KæðÌá™Ãý¹¸ï+em›µmÖ¶V€ý_ëÊy#Ð+ÏÀ:× ç#7.«(½Kz²ðr€ €À£Nˆï`ÙLH×:cdÆÈŒ‘Ö¹,å¼>þ¿Ckx.íÝ´wÓºÝS>,.—åŠÛÌÕ:¤;Ÿî|ºót›…|§Ú×m_·}]ç÷Ε1Ç<ó8±ÖÖ¸h\4.ºZ·Ïk<¯ñÜší\ët­ÓµN»Zsùˆã„ŸÓ|q!Õýgk¶*Ùªd«òrgæ‘eG–YÖý°¾¾›ŠOºøš?zþèù£_n‰îß„?Â]¿§ßÓﹿ«Ò2|ªZ©j¥ª•z|ÛãÛ߮ϳ>Ïú<þ¼ØÊÇ2•¶·ø?v_¿½\0æ‹ó?kÝÀ:onèu‹•¹ÿò½ú†Õ»¤' /‡˜þáþñn¾{ Ñõª×«^¯š®u^‘Wä®þÖ£zÞmöÿ…ZÃsÎߎëFñÅoÄe¹"—’t.¬$ò]+4´ÐÐBC­»¿{Éù˜uZÕýñâüPÓ|ñ(E÷Ÿ­EmP´ABÚÜyn3Íx4ãQãŠ+6®èþ0o]Rç“.¾Ü·1¢ùˆæ#š»úÛO |Rà“qÿêåFu&Öêù^!ïWîX¨c¡Ž…fŸu|Öq¥”RJ)åI»ù'¶ò±Ìç-þ´ûÏ#ç/'îùÇ?µn ž7·¶´SÝb5î‡ØðÖ0vê]Ò“€—CL ÿp¾×áŸÿ|øg_,WŽ˜®uˆb†˜®þVŽ~èÝlÏçCkxÎùÑ—qh|¢ñ‰Æ¸,WäR\­ÃË!‡Ä²§úžê{ª÷œÙsfÏ™ž\ LÜØ“ãÚjûÞôLÓ3MÏäj=»\ïr½Ëuo…FÇÛo¼½??[«Ô¯R¿J}_´¹óRfïž½{ön9´çÁ°'÷öñIçÝ%«\¬r±ÊqßýÝ6s~óëœ__nMä^æ˜WÀå?åÝ„ßêüVç·dšöñOlåc™JÛ[Ên.»¹ìfW­q²ÚÉj'«yw‰rž®–è¼>‰{þñu­¸ç@”tê–ÄâþI*r^õgï’ž,¼``øG‹-6¶Øèª¤ŽX±6b­/–ûCÍjþP3!]놭¶jØÊÕßî-¹·äÞ’ÞÍö|>´†çÜ_ÂÛÝaw‡ÝqY®ìúx×Ç»>vµåç–Ÿ[~.Ýfk’wЮصb׊]Õƒ«WöüÞ—úŸÕÿ¬þgòÝOÜ­X¹h墕‹ÜßÛñ¼èó¢Ï‹&îzÊup¾×$®ï;}ßéûNÞ:§mx°áÁ†ÞÝŠu¥×•^WÚÕÛµlײ]KïÎK/[2¶äÿh÷#CóI÷r–[~lù1Ï—»uäÖ‘[Gz둳ξûå»_¾ûÅ}„³­ß¶~Ûúy«5ü[ùX¦Òö–FõÕkTÏUkü´í§m?móî7ïܼsóNWKlУA=¬ûºÖ ÜóF ¢nñ5YŸ»ÚÞ_?øõƒ_?°þVø³wIO^00üc☉c&ŽqUR÷êÔ?ÈË6pØÀaÒµ–ãú³ƒêÿn¶çó¡5<×\o®7×]-E^øÄe¹ò󔟧ü<ÅÕ:´\ÞryËåVè6§±0¶Ã©œ§ržÊùEè¡_„z¾†™VfZ™ieŸn}ºõévðÈÁ#XçRˆû» ­s9uIÞ%y—äuµnEÚiS¤w/µûâþl÷Ÿ­SC¦†L I¬~ÜûqïǽݷI¹ïÊ}Wî;>é¼K>RÒå~øæ˜7ǼéüûÝ7tßÐ}ƒ/.Ä7;ÕìT³S®Ödü’ñKÆ/ñn;ø'¶ò±L¥í-î[Cî½Þ]â×ë¾^÷õº—{„»?Ï?¾®u÷¼ˆ¨[|M¹®¶wJí)µ§ÔöîåsYj<ÿÿ'ù¥ë÷.¥' VCL ÿß3uURçJ–+Y®dÞ-©_d{‘íE6÷c{²ÄMG7ÝtÔÕß¶íÞ¶{ÛîÞm« [.l¹°E>4;îd\4.ëB ­á¹¡c‡Ž:ÖÕRäÝŠ¸,Wä}ü®ÖA^v±þ%'»Àò|(/m|øû‡¿ø{|Ç·›üáä'hý‹’î·%kÛ¬m³¶M¬ß;|îð¹ÃrÜ­Þ €Ý‡ñ–*6Ul*ç :.5·š[Í÷Oe#¿wòî`ÑïG¿ý¾û=ÁU;óIç‹c°Ô­R·JÝ’¿ã~Üî- ·,ܲ0!ëàþÑ—ûSìO±?…·¶÷ÌÝ3wÏÜõOlcÙ»û›=Ž8o‘çIW­QµRÕJU+yw‰•[Wn]¹µwx_œ|]ëîy#î¹.Pl¼´ñÒÆK®¶·öþÚûkï÷î+õ¬Ô³Rϸ˒1ðËíÏþì]JO¬†˜þñwÔßQGù³£ëü®„,ñFñÅowõ·éΧ;Ÿî¼w×ÜÕwÿÓ&O›é²Ï»Z®|Øl‡ *t¨÷c¹„¬ƒóseâ’¯Oø–^kw­Ýµvîï*óEl…cÙû[ qþ¬U¼uW´û‡*;§V8ÿøºÖ Üó†ý® Xù\g§vöÖ™dÜžq{Æíqÿ•/ë÷.¥' VCL ñèº;“!îË-eÈÒ!K‡,õnè²sÄÎ;Gø®£.G¯l\±qÅÆ]ÍY~[ÜÝ¿øÎÖðÄ“¶OÚ>qù ×*õ«Ô¯R?—åŠ\JÜ¥M š4ÑÞ—±‹ /WìZ±kÅ®êÁÕƒ«{~Þ“wÚÉ1í®ö¹Úçjû½Gž·†|£w—~:Íé4§ÓÔSwNÝ9î—þùŒÏg|>#!í¸ü¦´·äÞ’{KºšÃžê{ªï©îŸKÞ2.r5ÿ~åû•ïWÞý²ø¤óÅÑW2UÉT%S¹úߣ“ŽN::ÉwŸG’| }Bæ/ï¬r ýpâ˾Øßýˆû¤Àÿž<Ÿ›–^K¯¥÷]k|ûú·¯ûºû9ë÷ô{ú=ëœ|]ëîyÃwû¡*4«ë«}}^=páÀ…\Íó½>ïõy/Aý ö.éÉÀË!&€uùäcÐ<™çãÞ{?îßè7¾¥¼ûù¤½›önÚÆs’£ y2Ï[©o¥¾•ºó[ßêü–«9;ßÍl 1´FB–å‹GúsYÎîGܸájéÎ[9û%Ü©œ§ržÊ9¢ùˆæ#šÇ÷\WãÝïÖxwÕÔUSWMM óÓ–‘w¦†L ™"÷ç—[¢|D¤¼Lìþa’RÓMo4½‘ð÷Âó} ý¡ô‡Òò|‰22Þux×á]ÝÏYÞAþ?æœ*6Ul*Ož"/YÆ·d<àÉ_y8Ÿt¾#G÷|ϬuºÖéZ§½µn£3Î<:³ûg¼Ü²~éøKÇ_:îU¸Wá^¾¨6æXöÙþf×#Î÷ÑfŒÌ™12¾sö$úm5«Õ¬V³¬yþñ]­¸ç—;‡ÊÕ«ë«=YÛÿ:v<>¯ÊQ±KŸ)}¦ôWs–_3}¹vðgï’ž,$00ü ëºЖ”ëN®;¹îŒysÌ›cÞ”ßϽ™ýfö›ÙåO4>ÑøDãù£çž?ºÌ2ʈ;‡FõÕkTÏ[3¹tç1êÜ[0`Á€þXðÇ‚?ÈQ娜;&c² <éôþžî÷t¿§ó]ÇïåæIkxbÒ§“>ô©–èÏe9“QŠ«%þç£ÿ|ôŸ8ï%Ü–…[nYßKfŸv~Úù©óI­Ý^d{‘íE¶—{(÷Ú&k›¬m"Ï9W†]ve˜ŒåÏòâ—üNY:eé”Åó9øû‡¿ø»·Þ÷˪0¾Âø ã]ý¯ êäɱŠå— –ä]’wI^÷+åÈž#{Žìò>rOÖöÛ‡ß>üöáÿˆyœFâ\¹h墕‹ä'¾üì_ù’÷mGmÚµU^dÌ‘?"„û9w¹Þåz—ëž·<Ÿt/G^‚÷üˆXšqiÆ¥½µôãí·?ÞÞ96p%ê¯ê¯ê¯Ê=Jãò}—}ûÃÜæþPãyç5ž»š›'_øG–<#ÙãXöÅþf×#îåŽ;9²föbÙ‹e/æÉü7ÝttÓÑ‹«.®º¸JîÉòç 6<ØðàýÂï~¿ðÿèy%Ë•,W2¹Yóüã»Z7pÏñÝ­[ù\Xíì|^õ¤Fr®»Î$?“üLrù´¡ [.l¹°ÅQÃQÃQÓ¯Ù9?äÜú½Kz²ÀÀà’|tpÃà†Áñ¸Dè¹²›Ën.»ÙýX_/×-‘ýe8Ægä%†5ý×ô_Óß×÷‡%dδ†{ò¢¤–èÏe9›yuæÕ™W}ýHO|ßéûNßwòäK3c¯½6öš¼ìË7Öãûî/ïúŽ\®óÅkïn—ûËÇòr§w·HÞ9í<Ú®'k›H>!äÃýä½€|ÒùóˆsÏ9ñÿÒB>ÜRŽnß¿Ýxi㥗ýXöÝþf¿#.áwÓfm›µmÖ¶¾klU²UÉVEçV>ÿøºÖ ÄóÆË­¿ê±@<×V;ÿ×yõïýïÿ;÷ÙÜgsŸõÝ.¯íþùðχ”Þ%=YH``ð¨û”Wäy…·:ò›¿Îc:úîrLñ¢Å‹/êÝŽ“ü¦¿ü¶¾îóÖüiø.±c¡Ž…: ÜeIrÎq—b†˜!&¤·¸ €+·®ÜºrëåÇ–[~Ìš—œ¬ù¹ÓryËå-—û'z¬Z©j¥ª•œGÀõÏQï¼,ç»»¼ufVJ)¥”R/·EòIþiÿæzs½¹~çÜswÎñIçÏóƒqѸh\t¿&Ý´nZ7ÍkåùCàã«Üwå¾+÷Ý‘ÕGVYíü´_ÀÖ<–©´=io“yæ9˜ç w[C>x_†îÕïðE­ˆçøî‡Ö€­|® ¬vvµæ%²•ÈVÂË_Å“wýz«Öõgï’ž,$00xDÞ§;àÉ€'ž8?\+¾ßâxràÉ'壊üsB.KÎ'˰,ò KÈa]÷uÝ×uŸ/îÛóO×”ÖpåË_žøòDÜe9?Œ+—å~DÏq{Æí·‡ó›·ÈXŽÔÕ¾nûºíëŠb‡ØÁ…‰„Ÿ ÚvoÛ½m÷„œµþëó(yÚäi“7;ÕìT³Sò‘¾~ÌJ®¿Œpæ-ž·xÞbïvJ]µ*­‘XN§9æôjé» þ\–s÷ Îwá#áþ*ñW‰¿Jœ=öüÙó„¾¾;Oʱ–?ù4æÓù$ïß•—•å¹K>@O4 /J~¶þ³õŸ­—ã/Ê}Ør åe»š7kÞ¬ySžŸe0 ãØ°a+ÂVÈKíöý³ïŸ}}¸]N—áäcÌå»%S•LU2•|¬lÿL+3­Ì´R>;DVßêüVç·f¼1ãoȇõù§ýù¤ Äc\’£A—ºUêV©[ò=’ï—|ïäûøIO |R`[¿mý¶õóä’£Q:AÞ»–3uÎÔ9S‡n ݺéã°Ã>;6üØðcÃm{,sÄù}–w°É'‚Ès£l 9š²üwyž\=jõ¨Õ£üóµ${ÔÕ~Þ¬`2pÏuÛÎwÝ=t÷ó.‡ÌgùÕYƒ•9Pæ@™òL²¸Ìâ2‹Ë\kw­ÝµvÛ»¤' GL >ìVîš'åÇ´&åÖpµÕýÊ÷+߯| .K^䊻”l±‘`IáøeY7>é¨0­V»&µ}#.i¾ûþ¬«ñ¼á-ÿó8e§qµÙ۽ŮíœXçUö.éÉ@€D~ù}ä÷®F¥’—eY{?îý¸·¼û!îR¶ŽÜ:rëHÞqz]ˆœïÎt¾Ã˜X‹v¶&ö.éÉ€·€x2b ,KŽCwž•zVêY©'—<`º:¸pà έ!ŠÎžC;[“?{—ôdÀ[€ €ÀÙð`à âV íZ¶kÙ®e ,KÎ!îœ7ïܼsóNÞeØ©®,“>ôé¤OÛdaÓ…M6eŸ¡­ÉŸ½Kz²à-ÀÀà¿¥ŠM›*nµ12cdÆH/ãØ˺•úVê[©ãγj¥ª•ªVâÓ°a]myçŸ;|îðòcË-?æÜ'œPpU:ílMþì]Ò“ï"&ÿBUUÕ?¬óî²Æ/¿dü’¸óÑïé÷ô{¼³°k]me®FDÞõñ®w}Ì~B;[“?{—ôdÀ»€ €@<.7 nÜðFñÅo·Ú²nf¿™ýfvùWÎóé¦uÓºi|cI¡®¶¦¼"¯È+Þ/ü~á÷ ,;²ìȲÔç´³•ù³wIO|˜¸teØ•aW†e«’­J¶*¾¾_!áË•TþQùã~ÛýjŸ«}®öáÝ@R¨«­Œ(‹vþì]Ò“_ &]>p41hbÐD_tG_nYò³ Ë2,Ë0ç¿]ÓMÿ5ý¹ü€¤VWx9þì]Ò“ß!&ñç¸eñ]Ö¥C–Yêü›}ºõéÖ§f$åº@|ù³wIO|‡˜xä~Äýˆû²r¨Z©j¥ª•jﯽ¿ö~_tM=_ÖswÎÝ9çü›MÞnòv“·é0€º€çüÙ»¤' ¾FL À&€ €Ø00› &`ÀÀl‚˜€M° ``6AL À&€ €Ø00› &`ÀÀl‚˜€M° ``6AL À&€ €Ø00› &`ÀÀl‚˜€M° ``6AL À&€ €Ø00› &`ÀÀl‚˜€M° ``6AL À&€ €Ø00› &`ÀÀl‚˜€MÿCl÷xú-‘¦‰4íL¤iW"M»ý>E'Ò´'‘¦½‰4íK¤é÷Dšö'Òt ‘¦ƒ‰4J¤é°ß§#‰4ý‘HÓÑDšŽ%Òôg"MÇi:‘HÓÉDšþJ¤éT"M§i:ã÷él"Mçi:ŸHÓ…Dš.&Òt)‘¦Ë‰4]I¤éj"M×iŠI¤éz"M7ü>ÝL¤éV"M·iº“HÓÝDšþN¤é^"M÷izHÓÃDš%Òô8‘¦'‰4=õûô,‘¦ç‰4½H¤)6q¦¨d‰4%O¤)E"M¯øj"Û"›°m,ñH:lÇ|óAÌ"ÊgÓöDš“˜ÑˆØú£'qˆ“ÎÄIgìáÉ4%±‡“ΨÃIg¼á¤3Ò0c ÛotáÄc8éŒ.̸Œ(ÌXÂŒ"Ì(‰5ŠpÒ?˜‘ƒ3˜Ñ‚'˜q‚kœ`Ffl`Ë Ó'¦OLÛÞ ð`° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `àØ1aÇ„ÄcñX<–?Ó&PP@U@Uk"F’3(fPÌ m­¶µÚÖjЪA«­Ê3+Ϭ<³Ò$˜œœ§œ¿\mUUTTð`ØÜå”—S^N9/f^̼˜à‰Áƒ'¦ñ;¹\¹r}x_ * *€ª€ª€@÷S>ꕨW¢^¡e¸€a/Á±Á±Á;æî˜»cnhòÐä¡ÉÓX’\7¹žryë * *€ª€ª€ÀB k"Fà»{+öVÔü¨ùQóóžÌ{2ïÉ—ëh•{;{Ù ˆ9Bæä¯°à·Ú­KÛô~£![µ9M?.¿UÜÿ0U…Hù³üwù;ò÷åß¾Ürå:Ëõ—ÛÂ[ @bWÅvE ÌÑ~Wþ ~±¿D±MïOO²U›³ [ù­âþ¢"åÏòßåïÈß—KU€=ª‚Ì d-¶#÷­†ÓÚï*<³ë¢ûK48jzòRdžOYЭô†‘!‹ÈŸå¿Ëß‘¿/ÿ–ª{#†5#€Éu&×™\¡ûB÷…îó¼Õ¨wþIÙ6¯¥ÁÙ2úåƒ{ÕØÛ»wX˜·^å<åüå²âñmß}¡ûB÷ÉíâýÀ÷UAõzÙ6¯erDýòÁ­gkìŽ óÖ«œ§œ¿\UÖ¬ ²® YW½^ñ!ýÏOލ>ëÁÖ³Õª-[í­W9O9¹,ªìÖDŒó¢Ø‹b/Š…¯_¾Þ“nRŽo¦_º®WƒÕeÇníý~X9ïÆ½½níý~X9¹r}Tø¿*H”eip×âmú=¹hµ’ˆDÏönÜëÑkÉeC¢gËuëCU@ "†5#`Ä´ŽiÓºÚàjƒ« þmÜ–ý³ =ÑM[DWê»®wðD}]½®ëÝ0,D®›\O÷Û"·Wn;ûñ¯ Š7 ÚÝtùìJb×EO I„Ð×ÕëºèÉa!rÝäzR໪ óØ_oòÞØµËgW+¾l@ôäD}]½_6 z²\7¹žT `X0À?üyàOO¾ «åoZ»üR ޼Êuödëd;°?¨ <« ¤*¿ÔBq¯¯r© ðnUPJ ¯¿ •…â^^å:S`}À°&`Xš²XY¬,vßÕÕ¦bî‚O§îq¸Nd`E¿Î¯rý嶸ß^Ù&쪂« z´-øôqêß:Ö‰ ¬è×ùU®¿Üª^®*È× Ùãm«\Yüño+úu~•ë/·…ªk"†5â"SD¦ˆLá¾{#j7‹®05pC_W¯r»Üo»löUÁÿU‹Â*L ÜÐ×Õ«Ü.ª<¯ JOûb碰À }]½Êí¢*Àj€aMÀ°÷ßä jž>oÚ›³vê^£Œý¢_çW¹r{ù†/€ªàߪ‚LÒÞ¼˜u‹^£Œý¢_çW¹r{© Tq¥]•1C¦ ÓÎl²E·_ôëü*·Qn/UV@ k"†…¸¿§ÜˆìƒÔ»ßwX»¶½£_çW¹½rÛï@UðUAñAêÝïµkÛ;úu~•Û+·ª@U eþ¬@§â9*¯[0Ùè`ïè×ùUn¯Üvª0¬‰–Ó:¦uLk÷Ñ»Ÿ«“;éD¿Î¯rÛÝÇÀ² Ù—v¯ ŠçR|Õ¥Nî¤ý:¿ÊmwS’BU ãÏ*}žê’t¢ßÿ!¸ï³Q]ÜÇÀTø0¬‰‰ìE±Å^«6¸Úàjƒ]=ð9©Ýõëþn`W…–m(Û“ý `Ǫ Ó„´7“Ú]¿îïvõPhª€½«ùä¤vׯû»]=šª_#†5#‘…¯_¾ÞÕ7U“ÂX¿/76°«“íÉ~°cU`ÿ±~_nl`ª@R« ’ÂX¿/760UþGì-[ÖoY¿åŸ püêñ«Ç¯¾UïV½[õh™—CŒDs&×™\gr¹êœˆÚÍ¢+L%îuõ*ÛÇUëɶeØ¥*XVa*q¯«WÙ>T€¤P”žöÅÎEaĽ®^eûPàOÀ ÷¼ÙófÏ›¹ªaƒ_0ÃõØë±×C÷…î Ý÷`Õ¦bî‚O‰x=y•m· eÛÊvfwrUУmÁ§D¼ž¼Ê¶¢*ص*È× Ùãm‰x=y•mEU€'œó½¿î{މ j~Ôü¨ù®à‡—{t¯3pדWÙV®ZR¶3û «‚íCê $ÜõäU¶UÀ®UA•mÝ>„pדWÙVTøpÂÉ@W†»iBܽ~Ý&,ŸlOª@ V郲, îZ-÷²úÑmqôš{Yýè6²=© ð`ÿ# ö0üd^̼˜y1q¹u½¬.³˜øÖ[¯²=ã¶³löC€µ«‚ÉEË,N¬ÐôDã3V}ê¼>Ëö¤*bUP¼Mÿ¯'%¾õÖ«lOª|8q»B ß»{;övðÄà‰Áãfw7t\»Á­·^e{ÆmgÙþò½`—Xµ*0>ª]Ç:p ÇÀ²=© XT^¿`šñÁ­·^e{Rà ÀÖAìŒ>3(fPÌ ¸U£Þù'eÛLdë‹WÙ¶qÛ\¾ì“ëUÕëeÛœ¸q©ý`ù*Û–ª(UAÖu!ëª×#²õÅ«l[ª¼‹Øšƒ €ásÛZmkµ­UÜiý+ Î–Ñ k}ñ*Û6n›Ë÷‚}`½ª`rDد²m© RÒÿüäÂZŸ<zHÿó“#¨ ð.`ëKša00|nЪA«­Š{ð\ÌЩkR„µ¾x•m·Íå{Á> °^U°ÅQ£°/^eÛR¥*¨˜ff£-ÂZ_¼Ê¶¥*À»€KÒ ƒ €ásyf噕gVÜæÙϽJ†N´NhzeXçU5îO˜^eF‘4­fÞ˜³Bé3ÙÞÈ|3sxºSiEá^YÎdzµŽ‘çǬ¦gªÞ¡¨¸™ý#£VkÀ²mã¶¹|/Ø'Ö« vU hÍxŠ•Õ+Ò¾nÃM¹êå9keP2‡g¼—V”9Pô­ ¼#ËvRpÛÍìʾZU¬˶¥*JUPuÑÒ»*Y-:­zöÛ‘»›]×§ÖWe]² zñôcß»šýÝ´ã2,Ëx/Óܼ‹ ÏÌ“¡Q²ÊOžòå†iÖ €eÛRà]ÀËÞa00|èéî§»ŸîŽ{x”{;{Ù ëÄ¥ÆÅfõ+TË^,cÓô5ÒÄÓùí/U¿hÍX¶sÜu–ï û'ÀUA±AVJ]À#3ŒHÛÊ}=ï§œ±îYýý÷U"­Ëv¦*X¹*ÈÜ©@Öb;¬šVŽ\°Âø"ë°7ª}êùµ‚b¢ß÷Z3–íLU€·ÛƒýÂ``øò€©}«ö­Úq‰9Bæä¯`…ˆô~D÷iµoše|ƽrÝòG ËXxæÕ}ŠõؾæÃ ƒÿܦa•Ñú½¦·*¼9æq¥àB³å=ÁÿýpH+À²ã¶¿|_Ø?Ö¨ ÚïÊ_ÁʰôEh·_ Žûõƒyï–36^š¶!dYÿ ¶}óMJ›<Íž4aοù"Ûîf¡Z-–íLU°rUûVÃiíwY-.Ív¨òÀz¯ü³Š»ÒµIŸ"_ÿ?îq«ÔGò„/36ó²Ã…ªtê=¤{ú³ŽÈ¾Ëy‹Ê·Ÿ|ûÇVÛ"ÙÎTx ° ëU[„ÁÀð¡Ó›No:½)îa°à·Ú­K³BD*c]¹Viï¦iFÞvSÕÖ®ÂÝyPÒÁÌg˜`ÍX¶sÜu–ï û'ÀUÁˆý%ŠY3Nw>]hšÍJ©ðñå‹ËßqXþüCÍÿ„–iký‘ƒe;S¬\žÙuшýÖ JKý¼ëÜ&ÿ¬Ü´¿¥ -¥ ¯6?Vþ¯ügçßÿçÚ¸ Ë2ÞsÞ.«À²© ð`{ Ü0˜>t ×^zÅÝõ7½ßhDÈV+D¤;G4W*þúiLÈØüE'Ž©rµH˜'wôÆ ‰­y°lç¸ë)ßöO€5ª‚éÉC¶Z3þè¯&æÞîI ëüW zTÌVÍj°lgª€•«‚ ŽšžÜ:AiökÕN7úD®[Ž5i’Í“@×y‹Þ›Yªh%aµX¶3UÞBœtVœÌ:‡’mNÓËoµæ]³î£ÜçE{µ]1ëx¨b‹­ËvfX»*XЭ¼E`ýÞ7C+¼éÉßn9ûX¹ìÿ7œD®_3¶Ú}À²ÙßVVêØð) ºY'(Í$ò•(ÒøŸusº÷÷Œ\8ü†V·üå©+7½QaÙô[?=¶Z,Û™ý ÀŸ¶¬ß²~Ëz`Øœ¸ÿaª ‘Ö €o'ë:¸Ö-}Ó*å~ûzè%ÃGg®Ø«PþÖ㊼³ŽìצÿÜÕvYm[d;³¿¬],:P!Òšðùí‘‘Õ/zò·§rnlPmé¿ÕV €e;³¿¬¬ô†‘!‹,1bnÕÍKcvÍs^· u¦íÞ<ÆjQî˽Êvfð§'랬{²Ž6gµ;€÷åjy´rŠ&o8ŸýëtçÓfK³ÙÕš—9­KPÞ.׋OÉ==îÿr0ñ¯ ¬{ðãÞ¿}Wg—'ûpÂö"uÚÿ[mÀÀxÊ:wWø}ÆØÈÿúâT•èÅi¶_¶GÌÀþ—„î–Ï@g²÷´,ݲtËÒÅÝÑ­6pæðt§Ò ¹n%Se}’¹Á¸=• .ù}ã_ËŽø«DûÕz=mØsMh9ùW'·Óþû±(c³g21111Y©*°îÀžß|æîæ1ÕkÉ¿J(}Š4×þ¯6°úÀì™LLLLLÖ© ¬3p•Å‹Fm/â¼nÛÎ*ÿó5{À®ÆfÏdbbbbbz¹)î§jøëᯇ¿NËØoúyøÏÃÞ;Eï½SxýÊßOBc#)8½éô¦Ó›âîî ~«ÝºD1+D¤êå™m­\«þ*~1÷öÙzm ýÓ}¬{¼}»îU·[?–íüoë €uª‚ûK ô1€ý`Þ»åŒÿû2Y¡ Ì ¬Ëv¦*X¹*(<³ë¢û­”:¯[™WGUY’ß“¿*·bÒªNêÛééç¹ íè’cè7ÕÒ,KÚ:Û%Û™ªoqõµ*ZÆdp;~õøÕãW{úÊß÷è댾<0jߪ}«vÜ]`Ž9ù+X!" n˜aIºÃr­vwh1 RAOþê×>8òy­Ëv¦S°vUÐ~Wþ Ö €?ú«ÉŸ¹·{ò·­fÕ{%ç?Ÿ¹m×ÿ"g„Õ`ÙÎT+W¹o5œÖ~—5à\¿×KÞºœ'•ûRÃOÚ/“4»ð…Òß[í`ÙÎTx ° ëÕ€ }Çžî~ºûéA¹·³— аBDZ´Á{³3}*×ꇚ *•iëþ÷/léT£F° Øú°lg:ukWÅvEX3Nw>]hšÍJ©ðñå‹»ú«jþ'´L[ç¿Ú¾fIþŠAÖ‰~å«lgª€•«‚Ì d-¶Ã:Ai± }ÿgåv¥k“>Eé##¿_ÜÇÕï—/>¹ãÓ¥ÊÔ:¨ü£<{߯ßùù³u¶K¶3UÞBlö}ÃçòÌÊ3+Ϭ¸ƳŸ{• ˜¸iÏ™%Wæ9òÏ÷yïdÚšá½ï~©ûq©UçwœRýÇ«}º$«Ytûš7T ó¸Rp¡ÙAÓ—OûÄÕ¡nèW¶mÜ5”ïû$ÀzUÁ®J¡­çÈõkÆÂòç‘e»)¸ÍQcÞ®r6ïœQ¨lªþAmûæ›äüû zTÌVÍj÷þʶ¥*JUPuÑÒ»*Y!(­ºyiÌ®yq×0ßâ_ôü¡TÈÐ óv…|þå¾ïÞ*üc×'_ÔÏP)[©œÿ\Nßì½–ÙšXmä`Ù¶Txpà²_èëŒ>7hÕ UƒVÅ=H.fèÔµF©Ä J¯WýèÝš¿î•åL¦W=?¼ÿìÛîíªÓóÌüq† ÎÿÞ°Uþ<Ù>³B,Û6îšË÷‚}`½ª`‹£F)«ÀQ[÷©pö½>A…Òõt_”ÈV°]æ ç·GFV¿hµX¶-U Pª‚Šif6Úâ°Úƒ åÜ=¹bnAPª÷:•1¤úìcV»÷W¶-UÞEXìú:#†Ïmkµ­Õ¶Vq˜õ¯48[F·B\*×gìµJŸÚU­H®ÊïcË×Z§s?Ë:9|Z­¯‹¯{^´WûÐÎ[!Ãã¬m3ÔI·¸O·R›ó³ÂÉ¶Ûæò½`ŸX¯*˜QF·Z,ÿ]þÜùés·Î+rÖÊ dZ™±|Ú©!fÑß‚ÚÛÓgqárG™kiµèW¾Ê¶¥*JUP|Hÿó“#¬6nî?WÆví5bÊ{]K~Sét²”Îz4]ßÌ_dYžeD1­\ë<Ÿ6Î×ñŠgßü%§ÕÖ_¾Ê¶¥*À»€­/鄾΀ás1ƒbÅ Š{ð4êR¶ÍÖyl²ûÇ8»ú_kŽþ+Û6n›Ë÷‚}`½ª z½l›­—º qãûïÖy•mKU”ª ëºuÕëY3@uƒ_î÷U¶-UÞElMI3ôuF ß»{;övðÄà‰Áÿ2þÜÝ Ý×®cµ5p_e{ÆmgÙþò½`—Xµ*0>ª]ÇÊaj`½Êö¤*bUPyý‚iÆGVŽëU¶'U¾@l„¾Î€á'óbæÅÌ‹‰{h­ëÕ`u™Å·Þz•í·eû³¬]L.Zf1Á­·^e{R±*(Þ¦ÿד‹ÜzíáÏmú=¹(U¾@œ¸}]!†Ÿ\Ny9åå”q³2ÞL¿4ö“ÞeÂòß&èõ“ÞeÂòÉöŒÛβýÙÖ® ‚»¦_ûIt›°|Ä· zý$ºMX>ÙžT€@¬ ÒeYܵZîeõ£Ûß&è5÷²úÑmd{Rà ÀþGèë `øUhòÐä¡ÉãxÑM[DWêDˆ›WÙ†qÛV¶9û pª‚å³+u"ÄMÈ«lCª@ W!ï]»|6!nB^eRà;ÀþAè_Àð«swÌÝ17îAXn[öÏ‚öÄ:z7 +O”ïWGï&aåeÆm[Ùæì{€À© Š7 Úëˆ+O”ïWGtxXyÙ†T€@¯ 2-ðUñ&ÕJ-N”ï×RˆF‡Ë6¤*Àw€}‡Ð7!€á_Á±Á±ÁyOæ=™÷dÜÃRËß´vù¥ºñ}•í·=e;Ë6g×ZU° Uù¥ºñ}•íFU°SUPJ ¯¿ n|_e»QàkÀÞEèë-ÀHQó£æGÍwu >¼Ü£{ĺž¼Ê¶rÕ’²Ùß\lRg ±®'¯²­¨ v­ ªü¸hëö!ĺž¼Ê¶¢*À?€ŽÐ×€‘®Ç^½º/t_辸í¨6s|J¸ëÉ«l«Ëg_è¾Ð}²ÙÝ\ôh[ð)á®'¯²­¨ v­ ò5hö¸G[Â]O^e[QàÀ ·eý–õ[Öúz0Í™\grÉåê0µ›EW˜JÄëêU¶«Ö“mË>°KU°(¬ÂT"^W¯²}¨ I¡*(=틋ˆx]½Êö¡*ÀŸ€îy³çÍž7#ôõ.`$²ðõáëÃ]~³ãbÖNÝk”!îu~•mâªÅd{²_ìXlÑk”!îu~•mBUHjUAÅ´3›lщ{_e›PàÀÞâ|0¡oÂ#‘½(ö¢Ø‹bÕW\mpÜePóôyÓÞ¼û}·µkýÊvm·­dÊöd¿ر*È4!íÍ»ßj×&ú•í Û„ªÔª‚´«2fÈ4¡òº“D¿²d›PàÀ°&`XBLë˜Ö1­]}SµÜˆìƒÔ_w?W'wÒŒ~å¶ËvpÕJ² Ù—v¯ ŠçR|Õ¥Nî¤ýÊm—í@UHÊUAæÏ t*ž£Jß…g£º$ÍèWn»lª 0¬‰ràÏøÓ} œÔî–Ûë>ú•íÆþHJUAñAjR»Xn¯ûè—ªÔª&µ»åöº~© ð`X0,GY¬,V»êÀÈ '…±å6ºzà³$ÛŠ}T«‚LÒÞL cËmtõÀgªU|rRXn£«>SàÀ°&`XTdŠÈ‘)Ò¸%j7‹®0Õ~ѯÜ.÷Û.Û‡ý@UðUÁ¢° SíýÊí¢*Àóª ô´/v. ³_ô+·‹ª«!†5ÃÒÜÃWÕ¦bî‚O§îq¸Ndà†¾rý嶸ß^¾É  *p]ôh[ðéãÔ¿u¬¸¡¯\¹-T¼\U¯A³Ç=ÚV¹²øãß:ð(¿Wü[G¹-TX0¬‰Àýx?δüMk—_Xѯ\gO¶Žñ{ˆOU° Uù¥ýÊu¦*À»UA)1¼þ‚TýÊu¦*Àú€aMÀ1­cZÇ´®6¸ÚàjƒÝw~ÊmËþYОè¦-¢+uŠ]×»aXˆ…Bßu½†…Èu“ëé~[äöÊmg þUAñ&A{¢›.Ÿ]©SìºèÉa! }×EO ‘ë&דªßU™Çøªx“÷Æ®]>»Zñe¢'[(ô-¾l@ôd¹nr=© À°&`˜Å^{Q,|}øúðõž|6ÇŒ7Ó/]׫Áê2‹c·ö~?¬\"„¾[{¿VN®ƒ\OÖ\n£Ü^Þw¼QwM¿t]¯ÉEË,ŽÝ=;¬\"„¾[£g‡•“ë ׇªÿW郲, îZ¼Mÿ¯'­VrÙèÙ‰ú–\6$z¶\¹>T"`X0Ø™\grɺ/t_è¾4kÔ;ÿ¤l›×¿ÒàlýòÁνjì÷nÜ+ç)ç/—åùºÉm‘ÛÅû €ï«‚êõ²m^ÿÊäˆ2úåƒ[ÏÖØïݸWÎSÎ_.‹ªkVY×…¬«^¯øþç'GT Ÿõ`ëYïÆ½ržrþrYTØ0¬‰ïVì­Ø[Qó£æGÍÏ{2ïɼ'Ó¼”rog/10GÈœüüV»u‰b›Þo4"d«6§éÇå·Šû¦ª)–ÿ.Gþ¾üÛ—[®\g¹þr[xKH쪠؎ ˆ9ÚïÊ_aÁo#ö—(¶éýéÉC¶jst+¿UÜ_t B¤üYþ»üùûòo© °GU¹S¬Åvä¾ÕpZû]…gv]4b‰GMO^êØð) º•Þ02dÑù³üwù;ò÷åßR`oÀ°&`ØKplplð޹;æî˜š<4yhò4–$×M®§\gÞ:¨ ¨  * * °Ú€as—S^Ny9弘y1ób‚'O žèÿ.œ\®\¹>¼/PP@U@U@ #†5#ɉ3(fжVÛZmk5hÕ UƒV噕gVžY ï¼ÉùÈyÊùËeÑæPP@U@Uÿ þ‡vLØ1A<Åcù3mUUTT°&`° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `° `°‰ÿnX’= ^Ì%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/delay.svg000066400000000000000000000046261431412030200245120ustar00rootroot00000000000000cbadelay(20)cbarxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/delayWhen.png000066400000000000000000002033561431412030200253220ustar00rootroot00000000000000‰PNG  IHDRtñÒð€gAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝyœOõâøñ[î·[}¯û¾Ë>Ö™É.2¢ˆtCiC‹¸%Kdi!YÚ#´Qê )”†[¡±”RJÄÍÕ"F¶(ëÌïÏý=sŸùÎ0ñ™3Ïççñx?<4Ã9ïóîÌ8¯9çó§4áO¦ `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€,Hî˜Ü1¹ãŠ+j¬¨±ªÐªB« ™NÍž±{Æî»rëÊ­+·®œ¾rúÊé?ïüyçÏ;Í §fÍÅk.^sñŠî+º¯èž\*¹Tr)s¹“ äj;Ûíl·³]Ò–¤-I[úÜÕç®>w•)P¦@™1§­Jl•Ø*±ƒ¾ôÕ ¯}¸èÃEþòÐ/ýò9ªëN¬;±ncÓM76}©üKå_*ß~_û}í÷Åd“«j_UûªÚM<6ñ؆Æoh|üœãç?ÇÌÕÞ>{ûìí³ô¢¥-½hØÕîvuìͱ7ÇÞ|ú_SŠ)>¦ø˜ÞÅ{ï]üݫ޽êÝ«v\¸ãšsÈE¾ßøýÆï7>›çÙ<Ïæ)ض`Û‚mcθKλä¼KÎ{yÝËë^^·ëÂ]îr‘ g*œV8­ðª‚« ®*Ø£bŠ=*Æœ%]÷wÝßuÿò.Ë»,ïrb쉱'Æ:89ÑîM»7íÞôÚ¯ýðÚ±]c»Æv=[_YÛÿØþÇöoë¿­ÿ¶þŽ pf„Ÿ‹’ò'åOÊofàÔÀ@`¥6NmœÚxÙ¼eó–Íkx¢á‰†'b¢ÒÕË®^võ²O›|ÚäÓ&isÓæ¦Íuì¢ÓÞE{í]4þ–ñ·Œ¿%&Š=žôxÒãI»í´{£¥Ž¤I;òÅó_<ÿÅó]šuiÖ¥Yt~M©½ ö‚Ú þká¿þëÄÅ'.>q±Cü`È^0,ƒÒ¥ ZüÎâw¿StdÑ‘EGžÚeކíʬ-öÒ}ŸUéß/%µŒ©5yÞ#m÷Ä¥.mrͬKÿµ|IÇ#õg~¸ëšØKǽS¤í_âúMú¢Å”š‹úT«7ä’'ë,*ùb‘·NñòÊÖÚ[ko][zméµ¥L€h°úþéû§\8ráÈ…§s½Ó]W”(shô¨»ÇT¿húŸGÕ¨[ýý!ÏMIèüÑy/]]?ñ£&/ ®ßñƒêª$<4£ýèZuŽ}µOlõÑ×OnórÙÙù¯Í÷UÌøSû{‡öÚghŸ=ÕöTÛSÍшë[®o¹¾eã1Ç4sjçöBIå6W>§ÜÚ+~íR¡êçÝÝ¿¸æ}ó™¶oí’V—§¥­]ÛªUvŸõ˜öQ£+mÜ{qµ±Yݶ—§¼<åå)Ç7ßp|ƒ£ p&í*¾«ø®â7_xó…7_˜ùóvÑ«¬we½ùnýËžZ2ïÞ¦M§N]»6»ÆFU'¥,I¬}Á€oÆ]PºMãm¾Ïü¶UßV}[õmÚlh³¡ã œ>²— ä`Ç||ð“…Ÿ,üdáÌ\¤¨6¢ØÎÂλ£í÷q¿goèÍü˜Ú©çÚÄŸ¦×nݹn|Á­ù6ç«”™-Ÿºbꊩ+Ò®M»6íZÇà³më¶­Û¶Æ=÷tÜÓ™9?ßÝþúó.)¿ñð[ƒ›4ÊÞЛùq뢹'šŽ¹¯Ó-í*ÈÔ»Ño¹dË%[6ÏÙ¬tMÆû›Ü,¹Yr3k «ŽT:RéH¥ë®¿îúë®ÏøL»¦ÆÔÙ Kå”èi\ßeú•f¼§-SZ¦´L9ôä¡'=i…dÕçe?/ûyٌϴe§·¼éÚG {~ïÒ 9+ý¦›üøêckzT}kçA“2Þßf˜QÀÚ2C€ì%9ÀÌg¾8óÅŒ/.¬}âº7ü{ξ‘Æni?,áñŒ÷}ÉK~\ò£u‡Ûn{¸íå.ïpy‡HçÕ›niûd¹1‡J.ouùç9=ý¦ý¸]˹½Ëtn_ñõHû^gh¡u†lr°ÉÁ&V @f¬Þ·zßê}Ç^+OßWŸÜžs£o¤1þÕQƒf,Ïxß'÷œÜsrOëȘ ÙK¢Ú»uß­ûnÝH—ªå-öa¡½»tÖ|PðÒoúñ__ßÓtUÆVV•YUfUk ’cSŽM96¥õžÖ{Zï‰t.wëÀób‡§½¶vD«:AJ¿áã”ûR»q¤yHHLHLH<|Ãáß`åD²þƒõ¬ÿ ãïÒFmÿÖ=ÁK¿éÇFÅ'}°äŠv®V¥Î‚ˆï:¿mÚ¶iÛ¬ ²— D©äcÉÇ’Eº|кHÅ_J¾ÿÛÇ·mY'Øé7ýøË§Ý_kQ­bL‘G Nˆ43›?ÚüÑæ¬€ÿ²4miÚÒžÕ{VïY=ÒùsÖ{c7Ökìè>ÎyÜ-ñïDš“N3;Íì43upêàÔÁ@zÛl_°}Aäê36æ­3Ç×|¿j°Óï=ºÔ”üÉq¥ 5¾¬MÞH³¸ê⪋«Z?@8²— DüÐà‡ˆïõÛzÊ%eJn¸-âcŸÜ;nè?[äÎôû_¸þ”;“_+Ö=¶_üÁðY*ð{ß üþû‘ßü~ÄŠB`È^0EF¿6úµÑ¯Eº˜’r°ÛæK¤ßôãÖËnÜôï‘fì oLxc‚uäNï?xÿÁû#!‡´êQ­ÊÅ¢oøøXÕ>ÏW#Ò¼íY¶gÙžeV;½×é½NïuŠt†Œß<:vælé÷¿ÞxÄ y–Ή4cû ì3°u„ÀÌŸ=öüÙ¡¯£fŒš1jÆÞÖ{[ïmmfN D…¯?ûú³¯?‹ti`Ý_;}Öð„Üi\p÷Õ=â·Eš½Ÿ›ÿÜüçæÖÛ ¨< ò€Êágźmªm,òÉñÿ]5/±›Ü>¦Þ¹æ‰Ä]WüO£˜’CÃg¯[›nmºµ±º€Üfo­½µöÖŠôývìÚ»WùEî4&<<¶á[×Fš½OÚ~Òö“¶Ö äf':žèx¢c¤ïÅàS#gYê¿SÿúïZókͯ5?üäþô_šu©±TâÍÌø÷Qu¬x’¬Ý0ã†7̰ҀÜcÃÏ~Þðs¤6|ß5©{³O…ÞŒÇ]KVk>8Ò®þmõo«³Ò€ÜãžÄ{ïI ?–Žo<­ÍÓM›L¼öc¡7ã±úw<òÐSásX´{ÑîE»áø Ç_°Ò 7€r³ô÷þfL Î<8ËLY0eÁ”“\XU }þó½wçç‰W‹»™ì¼mìå×DúÒøù•Ÿ_ùù•ÖpKÓ–¦-­¿«þ®ú»ÂÏ„¯¤=<»öq7 ï üØ×ûWøL–›[nn¹¹©W¥^•z•EÛæ¤ÍI›“"}ÝpÌ„}‹ˆ»™zWà”W_Z3¸p¥ M«|>“3oœyãÌ­7ÈÍ`€Ü,tCq7&ÓÄàŒ ÀÀYs|ÛñmÇ#>¸xm½ë–6ì"ëfu|çÛ¶âNÔ'6Nlœ˜v<íxÚqkªäß“Oþ=üXü·¢“ò:¾cõ­‰ãeÝ,Œy×^ÔêâºUª-.²"|V–_X~ay«¶Ž7v¼±ãáçÀ=ïêùHY7˃®6¦ê›"ýðHë#­¸x¹” @ˆœ]`à¬ù`Ä#>~²nW¾ÒºR[¤ÜSS¯è¹2ñûÒ' ½R OøÜ~Ùö˶_z‡- °êSÿ›úß„ŸýV<8¹qý ‚×{ãöF'ytÙme·•Ý–veÚ•iž0ÐÖ··¾½õíH˜štŸ²{ÕÕ‚î©e¶5ÿ¹C—ðY}+ÿ[ùß{ —€'Ÿ8~Kû-í·Ø»c;üýõäþÔx·”{:ã‡3®)xé#ásÛµfך]kZ€@ðl»yìæ±áç½*7V(PèÉ´‘k{·ª&åžÎØlWüðâ'ynÇgý?ëÿY+ž>‡úês(ü¼Wópß¡OÎqOg¬_û©'çÕŸÛ‚ (8 5%5%5Å „ÜF cbpV ÀÀY°uñÖÅ[‡ŸŽëW+V¬¬|{úã‰û{ÞŸø^¤/{{¶ìÙ²g‹uÉ€<ò Ès’Ç÷žX!!Y¾=ýqÕøWïi°4|†o¹ì–Ën¹Ì ‚äPýCõÕxïoÉ)'×qO,Y/ášæ·‡ÏðG¿8úÅQër€Ìƒ3C΂‘½GöÙ;ü¼¨P‡2 {äÛì'_ÕrF­#áó<=ezÊt?SÄ‘_üzä×HßÜ}#ùåÄ|g+š~ÛnN¡&ÇÒoOÎ À'6­)•¸&Ò<ÜpÿÁýV# z/è½à$ÿZ©ü¯®ÅïýZ¸Í®±Þ?8õÏáó|ïÝ÷Þ}ïÝÖ!ä60§F ŽDΨÔR?Jý(Òi÷pü#Z>"Üfטò^·o›Ï ŸçøŸâŠÿÉj‚aíµ ×. ?×=xìŽMUËžÝh€sz~6龇c»†ïч×}x݇×Y@0´ÛÒnK»-'y^Ñügê$µn³kl2ê•WmôoÃãyç=ž×j„ÜCàô‰Áé ÀÀµ}Îö9Û焟d{ä¯y¤üzÉöã”]´qøœxóÀ›Þ´&œnð†Áo8É;Ê·žU¹ñ&8{Çm æ]Ó,>|n{ý¶×o{ÝjrºÃ×¾öðµág¹ü ßY´IÓ„©cÖÎn³w¬X¢}Ón‡Ïù77}sÓ77Y“{Àd/1XΨ™¯Î|uæ«á'ÖÅu:Œ½´¦Xû‡<ºUË7jŸóä¡ÉC“‡Z“@öeÚ—i_Fú–ýØ«&$^/gï˜úÖše‰G"Íyj»Ôv©í,L çÚpᆠ7\x’‡?¿Ãë÷6kÿˆ1îÜá7¿V;|Οïô|§ç;Y“{Àüqrg €3ê¦Ù7;ivøÉô—áÝGµ(*Öþã·»¾Ùdoøœù˘¿Œù‹5 ä\ûGï½tøù­cûË,s~4äÒààÐØs÷u“*V ߯{vîÙ¹ÇÊr®×½¸îÅuáç·¸#ã§mkÿˆ±ñŸ^|棓<#ªUÉV%[•´&!÷€83rO €3%9-9-9Ò 4­ò]ÅZŠžhúóà[§_vhôÓŸ©Óy\µwÊÖ¯»­Ô_Šì)2)ÿ¿ò-¯Ö³Ø¶Ân¹¬Âœ‡Ÿ.Üì¦Ë÷”Eãè À‡ß¾cNËWÂç¼I¿&ýšô³0œë‹ö_´ÿ¢}øùmÊö‡>«}]4àÏÏ}£Y£{n¼âªw˵®¸¼l‹‚‹‹L*t0ßòzëk\X´âñ·¬òþžÒ‹×µhxλOüW.|¿Vv]ÙueW+ȹ®Kº.麤ðó[£¥/¬\6#êÞC÷߯>°¦c·{µÙ½Äô¸šÕ,0¼øÎÒyó=Rpj¡ƒ…'Tœ\íÙ Ûþ馛.}ü‰sŸŠæ œïíB• ŸäIQ©eS˦–µ2!7€8ó‚ƒ`à ù=ñ÷ÄßÃO—W\¹WéFÑ“K—ýرMý¦¥c ]Sಘ,ú~åÍ?5û1:3p‰w Þžÿ“Ý…S½yΛç¼yNø™mÝÜi ÊGs.”Tph¾ÎM¹ä½²i~5ãÍ7'E[ÞüðìM>=Éã:û=ßïy?Zä`‘ÎÉM+N½zí­Ñ“K%½ðú²a%Çý¥ißÌÿk%vùÝsÆ|¸ì„–®­¾ÍûËì/³¿Œ• ¹ó ,p&/ ÀÀ²ãüçï8ÿ$§ÈÏ·®Ñôд۟º|oÕû‹*ôŸ‹Ú•¦\¨Ú³;/ë{ÇÊ™×ÎmPtÂë¯jüÐÒƒ×ì­þÃG–¬:>tOð'Õh À]?­Ñ²\¬ ÉC½êýPïð3Û®s?˜ÔüêhÀ!Ãoû Ê# ÛOÌ›°ìŸžš7µOÑz_26ß91ŸÄ´ú¯ûŸJ­é˜¸)zðþ™KÇ_~AøõÊÛ+o¯¼V&s…ŸÙŠŸ_khý Ñ–KK}Ù¨_ë<ÿÙÄÕù¯/pî%}®ýû{ët\lÒ¨z)ËLÝPµñ-w ¼½ÀœCK¯N¿G—Þøø¾9ë£mªMìñÖÐïÃçkå­•·V¶2!wž`Ζ`Ä`8C6<¾áñ ‡Ÿgµj³¥^ùhH¤¡¬Úª|b–Ç<ðÍÞmÒ%RÜ ß— _ù{ÁÑÑ€GMm|iµÍ0$]šviÚ¥iø™í÷u+»·ü{tàüßçOŒ™·¸Î¤Q—Ö }Lúwýú­æ%Ö»!šß9øxUŸ&Þ¾…Ͷ7ÛÞl»• ä\ág¶òÛ¯êqã¸è ¥µ7ê1¡Ã6î¥|çO¬³dHÓçÓBÿõ?÷+§ûøÿüëæ‘‚S ü¯{š£,×>1hó„]áóŸ¼8yqòb+rçX äÜ,gÈŠÊ+*¯¨~*\öPÇ õ+GC"]5ôo‹,ì›7¼R17ÞY½Ufîè ÄÑyðÔ­âkï€ ©´þÑúGÃÏl'^Z½;qQtàî[;l*¿23A7ýg]yG“¤RM£èAГÖiU+|æK*=¨ô +ȹÂÏlU¸é¢þ7FO(-½«éwmï m[™õÍ?èP*3A÷¿îi~¶N†Ë£-Ç}ñÈ/Ó†$ÿ4MjšÔÔÊ„Üy€ˆ69+ŸµóéžjøUtÞ5›qÊ=Q£ç‰¯Û|ÙŠØÉÑ€çV¸ê­¸FÖ¤õ]{c«JÑ€—|ñþúçgæsÿùÀøoJÿÿ·$(·°Pµh»¸Ð›ûåû›õ[õ w|öÐÞè ¥…—_R«z»Ð¶¥¿÷÷ÿxÏàj“~YrÅ¥;ž|ãݿԟúôÞ÷ŽD[Nøê±–oÏ´Þªù³çÏž?[r‘õͺü©Ñüè ÀûþÔc@‹™K \ÓøÒ—^=/ñ­Ú“*Ò gÕJ]©þ¿eû”)]hVA‘ö+Úö%éÜvÃâ¯³Þ€Ü mõÚ©­Fgþ~eRR³3ó¹ÿ*ûΕM_9Ù×—h À¥¾/þïµ­7 ØjLîuñȲÑH›Ì{%eõÄôÛV¿åSkæ=m)÷ÔÆK‡=Ñqnë € :úöÑ·¾-¹H´Ý¼®\§Îíð¿•¿/ýhþïó•Š™iËë­/Õ­hÅn»k>Qþéðÿê`€³%šï>r×Çÿh¹:3Ÿûûè•Õ[Þx²¯/î8s¢çàúŸ=3<))ý¶5^;9fåŽ``wl¹èày¼¼¼r×kR¹Iå&• ?ñEÛ{™”ÿ_ù–‡¶­öE%޹ò‘OU­–ôf»…ñC·Öº±_ӞǮºsfbBè³¾m×uÉ_ÜÿÿèsÆ{[™^^^9÷UsIÍ%5—„ŸÙ¢ù=€3ð¶ónÖ"ôY¾,pnÌ®ÿÿõ%z߸øÖâ[‹oµ2½¼¼rî+üÌ=ïÜxòË®¬ž~ÛÜ0îÒ»‚€#½ðã?ðø+ÓË+wž_ÿøúÇ×›////¯èy-²`È‚!w{×¹w›ùôúø\ôÀ@n³áñ ox<üô7«U›-õÊGC"mÛºÒ¥f…¶ªûÖš?–_™ZªçüÄMgÝÍ7v½½ÉÊèÀ£¦6¾´Úæ“m'@NÕ¥i—¦]š†ŸÙ~_·²{Ë¿çô÷^Ø~bÞ„eÿÿ’ª-reôàã5V}šxWøÌ7ÛÞl{³íV&s…ŸÙÊo¿ªÇã¢'”¦ß¶z~°ñ”J™º¿öõ±Óßú®jï[Ž *W5¹[™û_l3õâµGÏ~Õ>1hó„“ü¸jòâäÅÉ‹­LÈgà¤üIù“ò›ήP¸5cÔŒQ32}Cæ£oz0p†ì8Çù;Î?É©ðóÆ­«ý ‰´äU§äßÚª57]woÃ*™ù¬…íÛõÿ/ÐGsîúi–åb` HêýPï‡z‡ŸÙvûÁ¤æWGgæò+3ó¹ÇµÎS¶~è³®ÐfXÙiÑ€÷Ï\:þò Âg¾WÞ^y{åµ2œë$Ï68¿ÖÐú¢3—û¬õ9]2óYåºêž§†>«èøj?Ô}3Úî®6±Ç[C¿Ÿÿ­•·VÞZÙÊ„Üy€8[rnôMOÎßOü=1ü´xõÇ•{•n ‰´Æ•ÅÇîÚª·š_Ù°Þ üóo¹ì²’¡wŽþ\âÝ‚·çG‚äÍsÞ<çÍsÂÏlëæNKhT>:pþïó'ÆÌ[\gÒ¨KkFú¬·š?–Xï†ôŸµræ”J ŠFÏ»ÿn~xö€&Ÿ†Ïüóýžï÷|?+ȹ"]ÊiZqêÕko†P[¿÷áQ“þ³Y«ó__àܺ_=ðæä^‘>þÒšß<§Pþ‹ w)Z5ôI>½ºÍ­íÿ³_Q€ËNhYáÚúá3¿¿Ìþ2ûËX™;ÏÀ0gR0¢oz0p¦$§%§%G:Q¦U¾«X«Bg7‘Þùlí7*|õŸŸ¦ß_øŸ‹ÿãƒ+þ^gúö 7?ÑlÎÎ^ÝþÔ¼ÆÊ™×ÎmPôá# KV_tLKó¸GQ“~¿}Çœ–¯„oa“~Mú5q™ÈÁ¾hÿEû/Ú‡Ÿß¦lè³Ú×Eg®4­ÜÂBÕB¿~ þöUÞ_tÙÄÕ ‡ç­z¦jüE}ŠÞÐû’±é?þÊ;š$•jEïþ›¶vm«VsÞ}â÷¸rá3¿²ëÊ®+»Z™@Îu]ÒuI×%…Ÿß-}aå²ÑJ›Ì{%eõÄð-¼dòµ©w¾U'îþÑWÇ ±îV›Óãè°6–ªSö?Y¥@ÇâJuˆÎwÎ÷v¡Ê…_ ߯Բ©eSËZ™ÀœyÁ‹¾é ÀÀuÓì›fß4;ü¤ùËðî£Z=»¡tw“îy›V­g±m…ÿœùÓý¦Þ]ÿ·ÉÓ¾(ò÷‚£ÓÿþU+U(u_4ào v}³ÉÞð-ó—1ókȹöÞ?zÿèðó[Çö—ÿXæüè À+þ9¹WýïU´jþ;3þúR«T•®E ~¿2)©ÙÑ€{î¾nRÅ“<ýbçž{vî±2œëÅu/®{q]øù-nçÈøi›¢íAС‡9gæß,ù_(zQñ[jØlü7Ñvïoã?½øÌGs·¹UÉV%[•´&!÷€83‚}Ó€3jæ«3_y’Ÿì^\§ÃØKkFC. mÏð] 﫺ºiõrŠ ½7phlñ]ùã%ŸôT‹Gk¾}¢FÏ_O¿¡x\ↂ-óOîu[yGÃMnÕòZ‡ÃçÉÛ tz¾Óó¬IÈ=`þ8¹'ú¦'gÔö9Ûçl?ÉÏw÷È_óHùõÑóØäŒãé¿Fç»ÿÆ5(5ºhãð9?ðæ7¼iM9Ýà ƒ7 Þ~–ûºõ¬Ê7EC4q³úûÑ0n[0ïšfñá³}Ûë·½~ÛëV#Ó¾ö𵇯=É´ ßY´IÓ„©cÖΊΌšñ}½Ñv×oú±b‰öM»=>çßÜôÍMßÜdMBî!½rgôMOΨÔR?Jý(Òéõpü#Z>m5çŽ)ïuû¶ùÜðyŽÿ)þ§øŸ¬F Ö.\»píÂðs݃ÇîØTµltfÔœ;>›tßñ]ÃgûÃë>¼îÃë¬F Úmi·¥Ý–ðs]ýùÏÔIj5'ŽMF½r㪭‘þmx<ïñ¼ÇóZ{Àœ>Ñ7=8 FöÙ{dïðSí¢BÊ$ìn³íáÏWµœQë$ꜞ2=ezŠuÑ_üzä×HßÄ}#ùåÄ|Âíé'6­)•¸&Ò<ÜpÿÁýV# z/è½à$ÿZ©ü¯®ÅïýZ¸Í®±Þ?8õÏáó|ïÝ÷Þ}ïÝÖ!ä60§FôD΂­‹·.Þºø$?S_­tZ±²Âíé'îïyâ{‘¾¼íÙ²gËž-Ö!$ò È3 OøoaåÛÓWõžKÃgø–Ën¹ì–ˬ@ HÕ?TÿPýHßK7)9åâäÚòíé%ë%\ÓüöðþâèG¿8jBn#y¢ofÀÀÙð[Úoi¿ÅÞ{wìÝ'yׯÉ7ü©ñn÷tÆg\SðÒGÂç¶kÍ®5»Ö´àÙ‡úês(ü¼Wópß¡OΓoOg¬_û©'çÕŸÛ‚ (8 5%5%ÕóŠ ×€Șè›U0pÖ|0⃌?)·+_i]©-"î©©Wô\™ø}é…^)Ð'|n¿lûeÛ/ÛZ{@PÕÿ¦þ7õ¿ ?û­xprãúDÜS?¯÷Æí‡ÏjÙme·•Ý–veÚ•iWZ{@ðl}{ëÛ[ߎxp÷)»W]-åžÚXf[óŸ;t ŸÕ·ò¿•ÿ-±r)€p¢ïé€³æø¶ãÛŽo‹tš^[ﺥ »ºYßù¶m‡¸)áóÙ8±qbãÄ´ãiÇÓŽ[{@P%ÿžü{òïáçÀâ¿”Ôñ«oM/èfaÌ»ö¢V×­Rmq‘'y¼vù…å–·ê€`ëxcÇ;Þ~¬Ñ󮞴‘r³:&TSõÍ‘þ x¤õ‘ÖGZ[u; À„ˆ¾ÙEβSLYp’`YtUöùÏ?öÞŸ'^-ëff<°ó¶±—_éKàçW~~åçîЂniÚÒ´¥õwÕßUWø™ð•´‡gמ ëf~œýØ×ûWøL–›[nn¹¹©W¥^•z•EÛæ¤ÍI›“"}ÝpÌ„}‹Ⱥ™›¤¼úÒšÁ…+UhZåÓð™œyãÌgÞh½An&äf¢ïAβÔ§þ;õßµæ×š_k~øIüé¿4ëRc©¸›™ñï£ê>Xñ`øÞ0ã†7̰ҀÜcÃÏ~Þðs¤|ß5©{³OÅÝŒÇ]KVk>8Ò®þmõo«³Ò€ÜãžÄ{ïI ?–Žo<­ÍÓM›L¼öc‰7ã±úw<òÐS'ùÁßîE»í~ü…ã/ÁJƒÜLÈÍæÏž?{þlÑ7{ À@Tøú³¯?ûú³H§õuíôYÃo¤qÁÝW÷ˆø0ퟛÿÜüçæÖÛ ¨< ò€Êágźmªm,òÉñÿ]5/±›Ð>¦Þ¹æ‰Ä]WüO£˜’CÃg¯[›nmºµ±º€Üfo­½µöÖŠôývìÚ»WùEâøØç‡Ç6|ëÚH³÷IÛOÚ~ÒÖ`€ÜìDÇOt}³— D‘ѯ~môk‘Nô)»h¾DîM?n½ìÆÁMÿiÆÞ˜ðÆ„7&XW@îtðþƒ÷¼?ÒrH«Õª\,÷†Uíó|õ7"ÍÛže{–íYfu¹Ó{Þëô^§HgÈøÍ£cgΖ{ÓF¼géœH36°ÏÀ>ûXW@ˆ @úû€EßÓ'Q䨫Ç^=öjÕEUU]þ­ï‹Rxüïeï(Ñ2Qúý¥]÷þ-òFº˜Ò±tÇÒK§MM›š6Õºr³5{×ì]³7ÒÙrêªkŸ}ÿóŽ¿·=¾¿ÞבæjÉø%ã—Œ·¢nûà¶nû ÒÙ²Á½ã†þ³…ôÛ¤þ”;“_+Ö=¶_üIÞ¤¦Àï~/ðûïG~?òû+ € { À@Ôù¡Á ~hé’Jë)—”)¹ñh•;·<˜;Óï|·5¸¼l…aEÚìi–ö÷Úßk/k dâȉ#'ŽŒtΜó'vÇ•ÎÍé÷ƒ}–'¼i~Fß7ú¾Ñ÷YE!¿ÝóÛ=¿ÝS4OÑéƒ%ÿS´sµ*u"FñiÛ¦m›¶Íš"€ { À@0óÅ™/Î|1ã +kŸ¸îß ÿ¼ôûÁ-í‡%<žñ¾/ùqÉK~´N2ãpÛÃm·½¼Ãå.ïé¼zÓ-mŸ,7æPÉå­.ÿ¹çäž“{Z'@Æ`È^0cÌk0¯Á¼_\ûJ“¿U}ìÄ)‰7çÜè{è™ÛG]žÒ+]“ñþ&7Kn–ÜÌÚȪ#•ŽT:Réºë¯»þºë3>Ó®©1uvÃR9=ý®ï2ýÊF 3ÞÓ–)-SZ¦zòГ‡ž´B²ê󲟗ý¼lÆgÚ²Ó[Þtí#†=¿wé„ü¨ç_}lMª£oí²— Ë ´Aiƒ¿³øÅïYtdÑ‘1§¤a»2k‹½tß_ãgUú÷KI-cjMž÷HÛ=q©K›\3ëÒ-_ÒñHý™îº&öÒqïiû—¸~“¾h1¥æ¢>Õê ¹äÉ:‹J¾Xä­Sû{ko­½µöÖµ¥×–^[ÚÁˆû§ïŸ¾úÈ…#Ž\s:ÝuE‰2‡Fº{Lõ‹¦ÿyTºÕßòÜ”„Î÷ÒÕõ?jòÒàú?¨>¡JÂC3Ú®UwàØWûÄV}ýä6/—ÿÚ|_ÅŒ?µ¿whŸ¡}†öÙSmOµ=ÕM€h°¾åú–ë[6ÓxLã1§vn/”TnsåsÊ­½â×.ª~Þ­Ñý‹k~Ñ7Ï“EëL¼øùëë¾4ìÀËÃêÆ mòbëZKû|æûêíoÿõÁ/+^Ô¾p·ÎÅΩÑ,î®ÓùŠ6¿çüžó{¦NI’:ÅѲ‹ ÙK+µqjãÔÆËæ-›·l^à O4<•®^võ²«—}ÚäÓ&Ÿ6I››67m®cö.Ú»hï¢ñ·Œ¿eü-1Qìñ¤Ç“OÚ=h÷ Ýƒ5€(u$íHÚ‘/žÿâù/žïÒ¬K³.Í¢ókJíµÔ^°ð_ ÿµð_'.>qñ‰‹:à @ö€\äûßoü~ã³yžÍólž‚m ¶-ØöÌ_@¹ä¼Kλ众׽¼îåu».Üuá® €©pZá´Â« ®*¸ª`Š=*ö¨x¶.ÍwÝßu×ýË»,ﲼˉ±'ÆžëàäD»7íÞ´{Ók?¼öÃk?ÄvíÛõl}eylÿcûÛ¿­ÿ¶þÛú;.À™!@ö€\mg»ív¶KÚ’´%iKŸ»úÜÕç®2Ê(Sàô/šT‰­[%vÐWƒ¾ôÕ¢}¸èÃ_úå¡_2çAub݉u'Ömlº±éƦ/•©üKåÛïk¿¯ý¾ìºUí«j_U{ⱉÇ&ÛÐxCã Ÿsüœãç˜y€ ÚÛgoŸ½}–^´ô¢¥ »zØÕÃ®Ž½9öæØ›OÿkJñ1ÅÇÓ»xï⽋¿{Õ»W½{ÕŽ w\¸Ã§@@ÀYÜ1¹crÇ5VÔXQcU¡U…V2'œš=c÷ŒÝ3våÖ•[Wn]9}åô•ÓÞùóΟwšNÍš‹×\¼æâÝWt_Ñ=¹Tr©äRær' `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B²Ùú­ë·®ßºâ³Ÿ­øìãyÏûx^j¥ÔJ©•Ì ÀMþ¿Vüµâ¯“Ë'—O.ÿè˜GÇ<:æÒg.}æÒgbN[¾öùÚçkß½]÷vÝÛ½¹óÍoîÜ·=n{œ9850ð_Ì?0ÿÀüÙCf™=¤Éè&£›ŒŽ9Kìø`Ç;n*¶©Ø¦bŽ pf„Ÿ‹ÆÕWo\=3ä0¶¥×–^[zõê׫_¯~1Q©ä­%o-yëœ^szÍéuäó#ŸùÜQþ0Ó ÀK…¢oÇÍ7wÜ|jQ¶ØWåJèØ Dç¤R¶;<¬lÅy]‹Ï[µ@÷ᯩþøí§U¨1ú¶1¯¬Qÿ–±/®­öÔu=Ƭ\£åu½Û•V-¶ÉEWœN~ã½7Þ{ã½cë­?¶ÞѲ‹ ät0ä"$H0iÀ¤“2ŸZKýR¥eÁ9¯de¥*}ó¿Gí;FŒØ¸1!!»ÆÇ~¾#îûî'^]_ý½£»ô+µ= ¸EL‹˜?÷ñs?çø§Or:r…Eûí_´?ó]õêhTqç°MŸŠ»6{soæÇÛwLÛQãíê › -V:3ÛÜ«~¯ú½êÿšökÚ¯8pŠ` §€ °Ž~|ôã£Ü=p÷ÀÝ™ ¨75˜¸´êª‡Ë~9'¾÷ÙŠ¾‘Æ~û½Uç¼KÿmK©z™Ù—/|1à‹ÖU0Ó À@»‡ì²{Hoë|[çÛŒCéµßŒêViƈ|ó%ÄD[ô4Þ[xÁœÚù+ö¬7®ð7ïݬ=³öÌÚc=™'9 òÝ+ß½òÝ+gÑÿlQ¨ØäA®˜\÷±œ}#]’žú®ÊïïÓ>ýèÓZ@fÀ@N'@@|;ðÛßÌ8…vüzä+•:æôè>öyñWušYWê¹üÓ"íûˆF¼0â…´#iGÒŽX-@$0Ó Àãmo°½Áö§ß;ßš‘Û2xé7ýøà#Ÿoûw½uW(q4Ò<<6ò±‘´f€H` §€ Û»|ïò½Ë3N¿÷&ýsEí+‚~ÓÃ7|==þxó9wÌ)ûb¤9ùÇÿxãoX?@8Èé`È‘N´;ÑîD»æ±Íc›ÇFÊœýÿwÑÆ:åžôû_ãý?N¨×≞µËþi~V%­JZ•d-é À@N'@Ž4ºÌè2£ËDJ›}:ο¾Öú\š~Óù6Hˆ©ÿP§i¥‹4W¿ÜôËM¿ÜdE!0Ó ÀÃ|rÇ'w|rG¤œÙãË×®¨~\úM?>ôÝ—Mã¯+3¥ú¥…š…ÏX‡:¼Ðá…´­i[Ó¶Z]€œ]6Û ŸÉ±û§±¾;‚\MÎ.¯}µè«Ec2M €ìâ'äCÆ?d|øåòVo÷¹½|KA7˃þËòOëv!öÜSpOA«r'8{ý¾ú÷Õ¿¯ƒàL€ ªí²gÈž!‘.‘ÝûÉMqÿ#èžÚØfÈ€6ê…Ïêã%/ùxIkr'ø#À™!@T›ÐaB‡ Â/ˆ·ûÛÐ<‡‰¸§3½`Í'õþ)9}xôáÑV ä6ð™!ÀG€(ub쉱'ÆFº>äÁÕ›ë=&âžþØâ/w¶.{’ üþ_ßÿëûµ!·€Ï<1²— Qj}Êú”õ)á—¼ë·ìÔ´Ô á6»Æþy­®ó×ðynygË;[ÞiBn#Ÿ]b0œ>¢Ôàƒx’ËܯͮV³¹p›mã°Ÿ&Äo\n}á³}ࢸÈj„ÜCŽb0œ¢Nê±Ôc©Ç"]Ú~¸Ë†˜ø„Ûì¯}êÑm•žŸí%ù–ä[’Ïš„ÜCŽNb0dž Qçç>?÷ù¹Oø…ìKÏû[RyÅÚ?äAп|ؽΠásÞ÷¼¾çõ=Ïš„ÜCŽ~b0dL€¨³pÜÂq Ç…_¼¾¹ÀóM«åkÿˆqx£¯^Ž_>çùk毙¿fÚ´i¬LÈ àœE €p0Dá݇wÞ=ü‚õ€YKæÔyáì†Òʬ»7®W黫–/¸9´U±s._Yl_ÆŸõÐú/+Æw(¿«öáÂׇ>«zßf›‹Õþò×­âwFO®1¬ùÛÅÆ†Ïü¡c‡Ž:feBn ç\b0„Àuš§4Oiž~‘ú¡û¾_7Bé6葘M1 é·0ÒÇ·žÜ/¹ü®ÐÇúSÑÙù’ú_¶8®NÙŒ?ëÌm— N­xeøÌ·ï»}ßí³2!7€ƒA  7€ êDº0=âÁŸ'ÄGO.M¿mEš–|!ÿ}ƒ®\ѼîàôsO‡÷&ÖšÿêÇb> }äßZ¾¤Ò§Ñ–~Cc·7¦ ©Þ"|æW Y1dÅ+rçXÎéÄ`r¢Nøeè*£®(Z?Úriøã ÓgÝáU¿z ~yåM &I ý~­_®˜[|N4¿ð=}ßû¬Ö¨ðùŸ;3vf¬• ¹ó ,‰ @n @Ô ¿ô\R§ÏJ‹Îhþ8è?›x~ÕiW÷ö[ÅoÓß<ð¶æÖ­÷þ†Æûæ/{¸Î“äŸ~ãúëgeBî< ÀA%T0@–ÅÀ×|ÂÃËŽ‹æ{gÓom±}åÚèZ°x‘Rùî ýÎõõŸ^^¥4§ßÐ8¸Sò†z•­726ê«Q_úÊwÅD' Ë\ôäÌkùBï•åÆGs:ô8è¸^í-Y3š·<ý8dðêõõÆXodì»o¿ûö»o}W @t€²ÌEOμè¿8ü>àÎbjåM9%»€Ìp0ÑLȲy¼¼þØWø…æh~àÐØ÷œ÷ÛÔ¾5ýcŸCBƒ|lÕÁz7GŽôÀ}7÷ÝÜw³•éå•;ÏÀ}ßìûfß7ÍLð^‹7/Þ¼xó°Âà +œùô{íÜkç^;×{Í`ˆ:á—›«Œn¸¢hý茦ë~õ@üò*KU.zehkkߪLñ¡ô›~/¢?ßÓ÷½Ïj Ÿÿ™±3cgÆZ™;ÏÀãê«7®ž™ †ßWÿ¾ú÷Õ¯}µè«E3}{5êÕ¨W#Ñ€œB€¨éôˆ7~žmÑ´mÜàÿ­X2´……¯/q~þ*oûhnÝáÛ˯/¬öN4ànoLR½Eø–¯²bÈŠ!V&äÎ3°œÓ‰¾ä60Dæ)ÍSš§„_Œ~è¾/FÆ×ž\z÷ÖyŸÖú[þe—ÇüÚ¿-½§ÒÁô÷ûÖyÿÊ/J´ýN‰…û884ù“"õGgn»dpjÅ+Ãgþ»}ßíûnŸ• ¹ ¢/¹™ Qgx÷á݇w¿0=`Ö’9u^ˆ†PúpË/wÇºä¥øYEš†¶­F§æ½‹=0ââ%ü×£žCÿµPÿbƒòm‰þÇA×ÖüíbcÃgþбCdz2!7€s.ÑB`ˆ: Ç-·p\øEê› <ß´Z¾h¥W,è›P~rh« /R*ß]}w|°¹öÛ‘ânø¾ô8ñÚ³5.Œ¢w2nôÕËñ«Ã·3Íü5ó×L;v 퀕 ¹œ³ˆ¾N€¨ósŸŸûüÜ'ü‚õ¥çý­@©¼g7”özö55[çÛR nÌÌÐVµ{bèíŸÎø¾Þá/Ý*~gÕºöí›~(³îÞ¸^Ñ€ûÿòa÷:7„Ïyßóúž×÷e}Êú”ðKÛõ[vjZjp›mγhu¿†ÏsË;[ÞÙòNërøì}àô À¥NŒ=1öÄØH»‡<¸zs½ÇäÛÓ[üåÎÖeÿ>Ãïÿõý¿¾ÿWërøÌ} { ÀÕ&t˜ÐaB‡ð ßíþ64OÅaòíéŒC/XóI½FJ ‡G}x´¹|fˆ¾ðÇ€ ªí²gÈž!‘.…ÝûÉMqÿ#åžÚØfÈ€6ê…Ïêã%/ùxIkr'ø#úÀ™!@0düñCƇ_oõvŸÛË·”r³:úËòOëvöÜSpOA«r'8{‰¾pæ À¤¼“òNÊ;‘.”÷Mú`Dí—eÝÌõ®h7¶Ä§á39öOcÿ4ÖwG« ÀÙEô€³Å%NÈ1ž]ýìêgW‡_4/sKµÕ…ª oðÕóñ«ÄÝŒÇnq“ß«^2R~8Øñ`ǃ­4ÈÍà?n&E_83`È1ŽÜäþ#÷GºŒ~Õþû'VøÈç[ãþ]oÝÕJ4|läc#­ Èé`ˆo~;ðÛgàŽ_|¥RÇà¥ßþ//þªN³"ëJ=—Z¤}ñˆF¼v$íHÚ«ˆDr:å»W¾{å»W2ÎÀ5þÙ¢P±Éƒ\1¹îc9=ývIzê»*Wd¼¿O?úô£O?jm™!9 ´{Èî!»‡Ôù¶Î·u¾Í8Ž^ûͨn•fŒÈ·1_BLN‰¾÷^0§vþŠ=ë+üMÆ{7kϬ=³öX@æ À@N'@`ýøèÇG?¸{àî»c2ᦗV]õpÙ/çÄ÷޶èÛoÿ¢·êœwéà¿m)U/3ûòÅ€/|1À²Jr:r…Eûí_´?&Ó®~ñFwÛô顸kÏVô½}Ç´5Þ®Þ°ÙÐb¥3³Í½ê÷ªß«þ¯i¿¦ýꀧHr:r‘ $ ˜4`Ò€I™Á¥~©Ò²àœŽ×?²²R•¾ùß¿£öÙzûùŽ¸ï»Ÿxu}õ÷ŒîÒ¯ÔöÌo[L‹˜1->~îãç>~ÎñNŸ ät0äR[zméµ¥WÇÍ7wÜsJŠ}U®tŽ JtN*õa»ÃÃÊVœ×µøø¼U tþÊ‘êß>pZ…£oóúÈõoûâÚjO]×clÁÊ5Z^×»]¹aÕb›¼QtEÌixã½7Þ{ã½cë­?¶ÞѲ‹ ät0ðŸÜ«_¯~½úÅD¥’·–¼µä­szÍé5§×‘Ï|~äsG ø#À@N'ÿåÀüóÌŸ=döÙCšŒn2ºÉè³}ìø`Ç;n*¶©Ø¦bŽ pfÀ@N'ÿ‡_+þZñ׊Éå“Ë'—tÌ£csé3—>sé3§ŸxóµÏ×>_ûîíº·ëÞîÍoî|sçö¸íqÛãÌ9À©€€l¶~ëú­ë·®ølÅg+>ûxÞÇó>ž—Z)µRj%3ðG€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `Ȳ™¯Ì|eæ+ý:÷ëܯsè×Ûn;¸í ™áì€ Ëb¬ȳ"ÏŠ&ôñ¡Ï=µ¿7´Í¡íí‹CJfÀʶrÛÊm+—¸.q]âºÌ×›Z´/6£ëãÇWxtùüº7±qcBBv¡?3ôç‡þ®,ܼ.q]âºÐ~9¾dL ÇKMM4{ÒìI³3“T‹pâ³_ãÞË=é7ýÚ÷Œ3ph­¥ÜC ê¤Æ¦Æ¦Æ6Ðt@Ó‘øœÛîúÍønàH…Íah>­«Ü@ êLš=iö¤Ù‘îjÍ ïõ{jï iÆBóÇzþìù³çÿçXš1jƨ{[ïm½·µÿ N @ÙVn[¹må"…ÌÛ›–Xã)¹7ÒšŸH³šÛè9Ö':žèx¢c¤­ƒO @tض;mwâºÄu‰ëÂs`ËY½(÷‚Ä›™14WásšÛÐCóšóèYbpv€8Ë’'$OHžž÷ʯ}Yá„Ý7¾’P]ÐÍòØ}ã+ ÕCs>·¡9Îõ Ÿ€³,ñœÄsÏ Ozwu›u4ök)÷tÆÐžäý€ÏI<'ñœè_bpV Àœ5;.ØqÁŽ Â^‘çJÕÌÿìˆ&oN(#âžÖØdãÍ eBó>Ï¡ùÏ)«E Î €³fbÊÄ”‰)áÑ®k©ñù«”o³k Ígø<‡æ?'®18€³a_Ú¾´}%Ç”SrLx¨Võ“⊠·Ù5†æ3|žCó:9w)‰Áé Àœ)ýSú§ôÏr56µh_l†dûGŒ¡¹ Ÿóбƺƒ`΂÷;¿ßùýÎ'yøóãÇWkÿAß9~|ÕØð9‹à­±Üƒ`΂þÓûOï?=<¿Ý7kÙ=uöˆµÄšÛð9‹`¯·Üƒ`΂ ã*Œ«0.<¹=¼ÿ«ñsÏn(} Ìº{ãz•¾»jù‚›C[;çò•ÅöeüY­ÿ²b|‡ò»j.|}質÷m¶¹Xíá/Ý*~g4àÐ܆ÏyèXäžµì,pF[slͱ5á­|ÍZs žûeÿ³YÄlŠIH¿‘>¾õä~Éåw…>¦ÐŸŠÎΗÔÿ²ÅquÊfüYg~ Ísøü‡ŽKn[Á‹Á0gÔÞË÷^¾÷òð¨ÖôënIe¦GÛc“Óoa‘¦%_Èß +W4¯;8ýÇÜÓὉµ†æ¿ºÀ±˜ÏBù·Ö£/©ôi´¥ßКçðù—\½2ƒ`ΨïÞýîÝïÞ i×,ñÁ%‡¢-—†?:}Ö^õ«â—WÞÔ`b‘ÔÐï×ú効ÅçDó;‡æ9|þCÇÅú ɹ1XàŒZßs}Ïõ=ÃãÙMý'U®º%:£iøã oülâùU§]ÝoØo¿MðÀÛ>š[·FtÞûCó>ÿ¡ãb}†ËY1X€³,ˆ‰‰‰‰é±êµ¸ê‡£ùÞÙô[[l_¹¶º,^¤T¾»B¿s}ý§—WéÍé74†æÙz;3æÏž?{þl`ÈunÿnÚæoFs:ô8è¸^í-Y3š·<ýšgëíÌ8úöÑ·¾-€ ¹Nôß~pHç¿?1µò¦œ€Ý|&¹ry¼¼¼¼¼¼¼¼¼¼¼¼¼¼r×kjþ©ù§æOeÑüÀ¡±ï9ï·©}kúÇ>‡„=øØªƒõnŽþé=€­ÌH¯C Y0ä®sï:÷®s3Ÿ~Cï=€¸ïÞýîÝïÞ f×,ñÁ%‡¢3š¯úÕñË«,iT¹è•¡­­u~«2Å{„Òoú½ˆþšçðù·2Ó …ÛQ3FÍ5#óÑ7ôñg>ú¦'pFí½|ïå{/gM¿î–TfztFÓ¶qƒÿ·bÉÐv¾¾Äùù« ¼í£¹uk„ïÅ-¿¾4²Ú;Ñ€Có,ŸdeæØè›ž Àulͱ5ÇÖ„‡´ò5kÍ)\<ÚréÝ[ç}Zëoù—\ó[h;ÿ¶pôžJÓßï[çý+¿(Ñ:ô;%VìSààÐäOŠÔ‹Ò÷3ͳŒè›ž ÀYPa\…qÆ…§µ‡÷U"~n4„Ò‡[~¹;~Ð%/ÅÏ*Ò4´m5:5ï]ìo¼(á¿õú¯…ú”oK4?:4·ás:¹gí/ú¦'pôŸÞzÿ“<ˆø¾YË'ré ú&”ŸÚª‚Å‹”ÊwWßl®ýv¤¸¾/=N¼öl £'‡æ6|;CÇ"Øë-ØÑ7=€³àýÎïw~¿sxrëzçøñUcÏn(íõþìkj¶Î·¥@ݘ™¡­j÷ÄÐÛ+>ñ}½Ã_þºUüΪuí-Ú7ý=Pfݽq½¢!‡æ6|ÎCÇ"xk,÷Dßô`΂”þ)ýSú‡ç·›Z´/6#ré©=Æ9ü³¢çqС¹ ŸóбƺÊÑ7=€³a_Ú¾´}%Ç”SrLxVõ“âŠFÛ{èæÜ14ŸáóšÿбȹKIôMOଙ˜21ebÊI]j|þª…Ûl{øs©ñù« ŸçÐüçÄ•#úF"pÖì¸`Ç;.uEž+U3ÿ³#šl¼9¡Œ|{Zc“7'” Ígø<‡æ?§¬Ñ73`βÄsÏI<'<ÝÝÕmÖÑØ¯EÜÓCs>·¡9þµ!úf• ÀY–W¡9 ͧu•ÀD©”.)]RºDº«µ|Úy ×xàÄg¿Æ½—;ÓohßCói–Bsh-å0Qmý¦õ›ÖoÊ8ç¶»Cû›qú Í›õ“ÛÀä‹'/ž¼xr¤ØzrnxoàÐ>FzàsHh®¬™ÜI ÇH:7éܤsc2tûcÓk<¼ôÚ¯Œ÷=4?ÖIn&Ãd|7pHËY½(÷ÂCõ¾ˆ‰/™s£ohûCû’ñþºë—€)ã÷N¯Çø©ßTÿ)g¥ßÐ6gfï¼×/é Àä`)]Rº¤ti: é€¦2¥å‡×¾¬pÂ]ÝfýzD×ãªFQôíºq|BÕж…¶3ã} íohß­Ò€ÈñRcScSc'Íž4{ÒìÌÜ5[ä¹R5ó?ÛµÔøüU ޏuãË ÕÏBô½uãË ÕCÛÚžÌlyhCûë¸N P¶•ÛVn[¹Äu‰ë×ÅdZM-Ú›ÑõÎñã«Æ<º|~Ý›³7÷†þÌПú»2¿m¡} í—ãKÆ`‚hoÚÞ´½+ž_ñüŠç+n©¸¥â–˜SR¾f­9…‹7ýº[R™é×,ñÁ%‡nê?©rÕ-=V½WýðíßMÛ\ãÍЯC¿ú˜ÐLJ>÷ÔþÞÐ6‡¶?´/)™!t%ÓJ¦•Lžú|ôyJžF ¸är©Ë¥.—úíæo7»Ù±QÇF4hÐØ?ÁÊN+;­ì´±ÆN;awÎÝ9wç|˜ûa)sÄ0ð/Ng>ùtæaM†5ÖÄ?‰T_i|¥ñë"ÖE¬‹ˆÝ»5v+Ÿ O뾡û†îÏH” ø ` îù‘çGžY¶>l}X`ûÀöíý½RXß°¾a}Ï… ;ƧÀ€À× ™zý2úeôŠ-+¶¬Ø’P¶`p¥™¢j6û¦QÐ÷Í:ML—¯ð×çï/øcç ¿Ž)Òeàò\…Çw¹øy¡É­?›ùŸi=û>GîÍå²4Ì*g>”-í[>aÜäL“3MÎp/`ðuÀHvvÍÚ5k×,ÿêþÕý«»¸–ߢoÖË_/‰.´eØÄ#×K]5êäÉ2eܵî“f{×b]›´½3oþ¬wò×L·Þõ}ë?·ÿÜþscËÄ–‰-Ãç !€À× Yx÷0îa\XHXHXˆ+‘j¡òU†dÎÖåúòë…׺7èu}ýýéƒK}ùùü¡rßt= ¶=°=°=àðv€À×ÀâŽö?ÚÿhW¢Ó²áMÏe-Ù÷í÷â©’*ô5[Èql}éoÚ–›£Øãʱ ¼=ðöÀÛ/v½Øõbu€ë€À×À²ÖÜ]swÍ]çAiîî%gd8Õ;Ãë‹¥ñ¶Ð×tp2 Œÿ—§ÆuÈ»ÊùÑ?[ülñ³·#nGÜŽ >p0ø:`XÐÔ±SÇNë<mùãÅüu|&ô5Yµ°Ä¤ÂÛª§Ï¼Ðùñ^\|qñÅÅÔ Î€¯#€U<{÷|Ô¼QóFÍ3 A3Ê:+Íò~ ¤Å«øzôë¸nòטÅy›8Ï<;ðì@* 3Ààë€`“ÆL3iŒYðYòÐçý³¼6úÈùR[/úµ_wû}U\pMç1ðår—Ë].Gàˆ|0|Þ²ËV,[avV[ßu}Žù#ÿµ²ô+kG¿öëÞ‘Û¢ŠÕqß3î÷ ê{Ààë€àÃöDî‰ÜipVŸÒ½XŽ«£ŸÜU¦dò‰~í×ý>±,îgW ®üºÑëF¯Q—Ààë€à“î´½ÓöN[³h3døW˳Np2mÿäýÚ¯{5ÙÚ²h´YYÏ>>ûøìÔ(0ø:`øšóqçã·Π:Ï1¢È¾¨PÙôU†_Ðõ@×]©\€Ý«}ƒö Ú7e¸¾óúÎë;¿Ü÷rßË}” Ï!€Ù¼aó†ÍÌ‚ÌA™;%º÷š­<<'w*³Ò{>øùà烩c@rFì.;_ì|±³Ùù–0€çÀgcbЉ)&¦pì:/Y§ÑÄ, w]_÷‰üsT±fQDÌÆ˜1©o@òDì.gÂÏ„Ÿ o¶¨Ù¢f‹ü]F á€à›în:ÓaŸ?0–èH¬ßuíµ½ºä¬éXž3#fF̤Öɰ'HLÀð“'Ntì¯Ñ¿^®’D¹o·rï@ÛRï›w#îFÜ îÉ °§ð4`xµgãŸ6Þ¬C|ÈGû”ÜF”›u£¦CÞÍý½cÙÎ:;”$7À‰‰0€'À«mÿtû§Û?uìþ®þA·º9ˆ~ݰ޶÷LÉIf1Ã뉯'¾žH=’à¤B À]€àÕjv«Ù­f7Ç.ï~ïÚöÿ”øÖ]ëš_UÎ:ȱœ£c¢c¢c¨‡@òAì ƒ$0¼T¬_¬_¬Ÿc÷gƒ¢ÓöõýɃeJܺkö˺‚Eª9–vøÀðá©@òAìmƒÄ0¼” (ŽÚ_þ8öRÞ©D¶î]hqÜ¿ôP³ áÍË7/ß¼¤Nɰ7# à `x©>©ú¤ê“ê_¾#w,ÞŠÈÖ벩š¦ÍúÇ2¿ÑëF¯½¨“@r@ì+ƒ˜!€÷‰‹‹MS$M‘4E;¯GV8± ô^ÂZO¬Û¥ý©rÁyêzÇŒ3vÌ bɰ/" `^çñËÇ/¿tìª.ü}µµ™'zCP:4û¡Þ¥Â²õ,3ݱoÁëkìÌ|ßù«†GË]:4ç­bÏ2´¯*Ô§Ê™ÌÅF.ø«vé›Þp\ý×(ë‹Ïû—нãÈŽ#;R3䀨× €×¹xÿâý‹÷»§*áor×÷žçeÿ»[£ýOû—±ßO³¿¯»°ïÄߤO‘i]@d¿ªR©â9œ¿*1×ÃSº„cÉW‹©S-†š $ÀVB $OÀð:QQQŽ]ÒV,Š(TÝÛ†M¶ßÃŒ•ç¥0¨~Tµáöó]è–9E‡¤ù<íKÿÃâ/›ÖŸ'ïAï‰~ÿ»vòH™Òf‘5H€­Š0H>€àuV¯^ìØ ý]Ÿ-‡‹Žó¶Øq8hûXwdCKùN—›“ñøïEïÔÙðÙzož 8ÿøòQ™Bˆ€ä‰89 ¬^gFß}gôuìz°UQ<Ö;CSÇá ÛžóaåŸ÷ýþIî³öÏì¬o(QØëžýµ[‡ÌýêpÖÄ?@òDœÜ$$ ¦ôïD `µJÔ*Q«„¿¥…µûxÉ|Þüì¬ýÞf¾Ô0mëtŸeÌÐCü—–!Süý¼9úëj³»ŽÌ1çh}Þ‰À"²Ïr<Ëqkw4G„ï.9Á›£S³á K…5XÄ›÷Ü~]sÞ7;ƒfl̤­”¶RÚJ´¾ïD `<ìÏ Í¿²4ßi_ €yÀÀ€ï"°ˆÝ•wWÞ]9ê]+,}Îô9ÓçŒcG³7Ï,Ö}Rn¯W¬½ý°Ï‚:üåžG%Ûyl6°5j ‹ó¥É„&šLà |–•V^Xy¡fùšåk–w=úÙpfÙ i}Þ‰^guðêàÕÁŽÝÍßõÙr¸è8ï MG81´´‘_©/S}±·E?¬ý³N"úµ? ï€ó/•)„'½€ä©û†îºoà `mgÂÏ„Ÿ o¶¨Ù¢f‹\}×w^ßy}ç—û^î{¹2¼0¼NTDTDT„c×s‡‹" U÷Îдa©ðOrŠýÌÐ2ˇiòì¬o(QØñ(¾~øó˜‚½4vòH™Ò õ $gÀVEè $Àð:ï_¼ñ¾c7tC%üMîúÞšö<¿ù`Ѧi´t†ÿ±ŸMwŒ¿›÷‘ýó¾Å·×?𥮸/Yväî•öÑÝ2–|æmÇ2|ÀÑ1¥ÿe&éj1ÕbªÅP3䀨J}ä‰^çñËÇ/¿tì’.ü}µµ™'zO\:¢æ±Û¥åù¹ôšŒ•ÿ»‡_Uû&óÐQ©Oú•ùŸ¡žÅÿMß/ó €sÞ<tÿ5ÊúâóK~dÇ‘Gv¤fɰ¯#ô@ Hš"iŠüKYáÄ‚Ò{½!.­óGŸ29нJ÷YƬ=ú\ÿóL±µfá®ã±tzýËôÂ{OÜ.íO• 8îçŽ;fì˜AÅ’`_Dè À0¼TŸT}RõIåØaÝïŽÜ±x«¤ Jö¯û¢HÝ€siKø¯{ÕhÊ.¹§:®wä‚¿j—¾Y D…{™úØÑÐì‡z— ó†¸lª¦i³þDZÌoôºÑëF/ê$û B_f€॔%@ù—§Q¿üq쥼S½!.}»aœ_å ÃAhqÜ¿ôP³ÀàÍË7/ß¼¤Nɰ7#ôà `x©X¿X¿X?ÇŽìÏ*E§í?êû“Ë”ò¶9t}wö˺‚Eª9–vøÀðá©@òAìm}Ä0¼ZÍn5»Õìö/A¿kÛ[üS‚[w­Cj~U9ë ÇrŽŽ‰Ž‰Ž¡É°7 ôÀðjÛ?ÝþéöO»¹«ЭnŽm· _G Û{¦ä$³8áõÄ×_O¤ÉpR!ôà.ÀðjÏÆ?ÿl¼YÇ÷ö(I œ u£¦CÞÍý½cÙÎ:;”$7À‰‰Ð€'ÀLœ89б¼^Dÿz¹Jâ¾ÝzȽmK½o0ܸq7‚º$7ÀžFè ÀÓ€à›în:³nñAKt$ÐïºöÚ^]rÖt,ψ™3#fRë€ä‰Ø}$&`øŒ‰)&¦˜˜Â±‹¼dF³$Ðu}Ý'òÏQŘE1c6Æl¤¾É°»úH*Àðšøù`ꜻËÅÎ;_ìLè ñÀל;w>t^è¼ÐyŽ]êÙ*›¾Êð‹Ç*—nFÜk¿îtì—:…^™Eºèz +• °{Ù?Lè qÀ'Ýi{§í¶fqfÈð¯–g4*àdÚ2þD¿½šlmY4Ú¬¬ÆgŸ}|vj|0|ØžÈ=‘{"Í¢ÍêSºËquÔà“»Ê”LžÑo¿Ol'‹û™•OµàjÁÕ‚_7zÝèu#ê|0|Þ²ËV,[as®ïº>Çü‘ÇÿZYúUò‰~{Gn‹*VÇß©{Æ=ãžAý`|0,bÒ˜Ic&1 ;Kú¼–ÃF9_êokG¿Ý~_\Óyô{¹Üår—ËQg8"_G «x÷<îù¨y£æšg|f<”uVšåýH'ŠW±^ôÛä¯1‹ó6qýžxvàÙTf€À×À‚¦Ž:vêXçQh‹È/æ¯ãë¡ï aQ KL*¼­zúÌ ïÅÅ_\LÝà0ø:`XÖš»kë<ÍÝ½äŒ §zgøc}±4>ýœ (ãÿå©qò®r~tÅÏ?[üìíˆÛ·#¨\A ¾Žw´ÿÑþGûû» lxÓsYKö}`û½x*o }Gä8¶¾ô7mËÍQ ìqåXÞx{àí»^ìz±‹:ÀuÀàë€,<Œ{÷0.,$,$,Ä•µPù*C2gër}ùõÂk“*ôýþôÁÇ¥¾ü|þÐ ¹oú»ÌöÀöÀö€OÀÛ!_G €dg׬]³vÍò¯î_Ý¿ºëÁj¹ñ-úf½Üñõ’èB[†MGîÍå²4Ì*g>”-m“·{ß&gšœiræ\ع°sa|šÜ…|0÷üÈó#Ϭ[¶>,°}`ûÀöþ^)¬oXß°¾„¾<‡|0ð/Ng>ùtæaM†5Ö$©âÞJã+¯4~]ĺˆu±[c·ÆnåsàiÀà뀗\.u¹ÔåR¿Ýüíæo7;6êØ¨c£€Æ'<è-;­ì´²ÓÆN;aì„Ý9wçÜóaæ¦Ì_À€›½Éû&»6ïÚ¼ksÔá¨ÃQ‡£ÏGŸ>OÉÀÓ€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"€À"5Žz7êݨwý Ù9)0ø<`°ˆd‹ÿ•2*eTʨQ)¢RoŒ7ÆãµñÚxm¼4^/Æ ã…ñÌxf<3žO§Æcã±ñØxdS‡¬¥€IDAT<2±F¬k<0ŒûÆ}ã¾q׸kÜ5îwŒ;FŒcÄ·Œ[Æ-ã†qøa\7®×kÆ5ãšqÕ¸j\5.—ËÆßÆßÆßÆEã¢qѸ`\0.çŒsÆ9ã¬qÖ8kœ1ÎgŒSÆ)ã”qÒ8iœ4N'ŒÆqã¸qÜ8j5ŽÑF´m6‡CÆ!ãqÀ8`0öûýÆ^c¯±×Øcì1ö»ÝÆnc§±ÓØiDQF”¡º¡š¡š¡Š¡²!²a3l†ÍØaì0vÛíÆvc›±ÍØfl5¶[H#Òˆ46›ÍÆ&c“±ÉØhl46ëõÆzc±ÎXgününün¬1ÖkŒÕÆjcµ±ÊXe¬2V+ŒÆrc¹±ÜøÕøÕøÕøÅøÅøÅXb,1–‹ÅÆbc‘±ÈXd,0 ŒŸŸŸyÆFo£·ÑÛèeô2z=žFOã[ã[ã[#Ì3ÂŒF£‡ÑÍèft3º]®Fg£³ÑÙèdt2:ŒF£½ÑÞho´3Ú팶F[£­ÑÚhm´6Z­ŒVFK£¥ÑÒhn47š___M¦FSãKãKãKã ã ã #Ô5BÏÏÏFF#£‘ÑÀh`40êõúF]£®QרcÔ1굌ZF-£¦QÓ¨iT7ªÕjF5£šQÕ¨jT5*•ÊF%£’Qɨ`T0*åòFy#Ä1BŒ²FY£¬QÚ(m”6J¥ŒRF £„QÂ(n7ŠE¢FQ£ˆQÄ(b6 …BF!£QÀ(`0òùüF>#Ÿ‘ÏÈcä1ò¹ÜFn#§‘ÓÈiAF‘ÝÈnd7²ÙŒlF hYŒ,F#³‘ÙÈld22™Œ F#ƒ‘ÞHo¤7Òi´F#‘Æð7ü #µ‘ÚHmüÇøñãSãSãSãããã#ã#ã#ãCãCãC#•‘ÊHe¼o¼o¼o¼k¼k¼k¼c¼c¼c¤0R)ô8=NÓ_ë¯õ×ú+ý•þJ¡¿Ð_èÏõçúsý©þTª?ÑŸèOôGú#ý‘þP¨?Ôèôú}ý¾~_¿§ßÓïéwô;úý¶~[¿­ßÒoé·ô›úMý¦~]¿®_×ÿÑÿÑÿѯêWõ«úýŠ~Eÿ[ÿ[ÿ[¿¤_Ò/éô úý¼~^?¯ŸÕÏêgõ3úýŒ~J?¥ŸÒOê'õ“ú ý„~B?®×ëÇôcú1=ZÖ£õ#úýˆ~H?¤Òêõƒú~}¿¾_ß§ïÓ÷é{ô=ú}·¾[ß­ïÔwê;õ(=JÒM×tMWtEWtY—uY·é6ݦïÐwè;ôíúv}»¾MߦoÓ·ê[õ­z¤©Gê›õÍúf}“¾IߤoÔ7êõõúz}½¾N_§¯Ó××××èkô5új}µ¾Z_¥¯ÒWé+ôú }¹¾\_®ÿªÿªÿªÿ¢ÿ¢ÿ¢/Ñ—èKôÅúb}±¾P_¨/Ôè ôú|}¾>_Ÿ§ÏÓçésõ¹ú\}Ž>GŸ£ÏÒgé³ô™úL}¦>CŸ¡ÏЧéÓôiúT}ª>UÿAÿAÿAŸ¢Oѧè“ôIú$}¢>QŸ¨×Çëãõqú8}œ>F£ÑGë£õÑúH}¤>R¡ÐGèÃôaú0}¨>TªчèCô=BÐëƒõÁú }>H Ðèýõþz½¯ÞWï«÷Ñûè}ô^z/½—þþþÞSï©÷ԿѿѿÑÃô0=Lï®w×»ëÝônz7½‹ÞEï¢wÖ;ëõŽzG½£ÞAï wпֿֿÖÛéíôvz½ÞFo­·Ö[ë-õ–zK½…ÞBo¡¥¥¥7Ó›éÍô/õ/õ/õ&z½‰ª‡ê¡zc½±ÞXo¤7Òé õ†zC½¾^_¯¯×Óëéõô:z½Ž^[¯­×ÖkéµôZz ½†^C¯®W׫ëUõªzU½Š^E¯¢WÒ+é•ôŠzE½¢^^/¯—×ËéåôrzY½¬^V/£—ÑËè¥ôRz)½¤^R/©׋ëÅõbz1½˜^D/¢уõ`=X/¤Ò éõ‚zA=¿ž_ϯçÓóéùô-Ÿ–OË£åÑòh¹µÜZn-§–SË©iAZ–]Ë®eײiÙ´lZ ¨jY´,Z-³–YˬeÒ2i™´ Z-ƒ–^K¯¥×Òjiµ´Z-–Fó×ü5-µ–ZK­ýGûöíSíSíSícícící#í#í#ííí-•–JK¥½§½§½§½«½«½«¥ÔRj)µZ -…úF}£¾Q_«¯Õ×êKõ¥úR}¡¾P_¨ÏÔgê3õ©úT}ª>V«ÕGê#õ‘«Æª±êõú@½§ÞSï©wÕ»ê]õ¶z[½­Æ¨1jŒzS½©ÞTo¨7Ôê?ê?ê?ê5õšzM½¢^Q¯¨—ÕËêeõ’zI½¤^T/ªÕóêyõ¼zN=§žSϨgÔ3êiõ´zZ=©žTOª©©©ÇÕãêqõ˜zL=¦F«Ñj´zD=¢Q©‡ÔCêAõ zPݯîW÷«ûÔ}ê>uºGÝ£îVw«»ÕêNu§¥F©Qª®êª.Nª¢*ª¢Êª¬ÊªMµ©6u‡ºCÝ¡nW·«ÛÕmê6u›ºUݪnU#ÕH5RݬnV7«›ÔMê&uƒºAÝ ®W׫ëÕµêZu­ú»ú»ú»ú›ú›ú›ºZ]­®VWª+Õ•ê u…ºB]¦.S—©¿ª¿ª¿ªKÕ¥êRu‰ºD]¢.R©‹Ô…êBu¡ú³ú³ú³:_¯ÎWRRRçªsÕ¹êlu¶:[¥ÎRg©3Ôê uº:]®NU§ªSÕÕÕÕ)êuŠ:Y¬NV'ªÕ‰êu‚:A§ŽSÇ©cÕ±êXu´:Z­ŽRG©£Ôêu„:\®W‡ªCÕ¡ê÷ê÷ê÷j„¡F¨áj¸®R©ƒÔê@u Ú_í¯öWû©ýÔ~jµÚGí­öV{«ß©ß©ß©=ÕžjOõõõ5L SÃÔîjwµ»ÚMí¦vS»¨]Ô.jgµ³ÚYí¨vT;ªÔjõkõkõkµÚNm§¶QÛ¨mÔVj+µ•ÚRm©¶T›«ÍÕæêWêWêWjSµ©ÚTýRýRýRýBýBýB UCÕPõsõsõsµ‘ÚHm¤6P¨ Ôúj}µ¾ZW­«ÖUë¨uÔ:j-µ–ZK­©ÖTkªÕÕêjuµšZM­¦VQ«¨UÔÊjeµ²ZQ­¨VT+¨Ô j9µœZN QCÔµŒZF-£–VK«¥Õ’jIµ¤ZB-¡–P‹©ÅÔbjQµ¨ZT VƒÕ`µ°ZX-¬T ªÕjµ€šOͧæSóªyÕ¼jn5·š[Í¥æRs©Aj¤æPs¨9Ôlj65›šUͪfU³¨YÔ,êgêgêgj&5“šIͨfT3ªéÕôjz5šNM§¦QÓ¨iÔ5@ PS«©ÕÔªŸê§ú©ŸªŸªŸªŸ¨Ÿ¨Ÿ¨©©©ªªª©ÔTj*õ}õ}õ}õ]õ]õ]õõõ5…šBM¡Ä)qJœòZy­¼V^)¯”WÊ å…òBy®%¯’WÉ«äVr+¹•\J.%—¤)AJ%‡’CɦdS²)Y•¬JV%‹’EÉ¢|¦|¦|¦dR2)™”ŒJF%£’^I¯¤WÒ)é”tJ%’F P”%µ’ZI­ø)~ŠŸò©ò©ò©ò‰ò‰ò‰ò‘ò‘ò‘ò¡ò¡ò¡’JI¥¤RÞWÞWÞWÞUÞUÞUR*)•”J %…’B~#¿‘ßȯå×òkù¥üR~)¿_È/ägò3ù™üT~*?•ËåÇò#ù‘üHŽ•cåXùü@~ ß“ïÉ÷ä»ò]ù®|[¾-ß–cä9F¾)ß”oÊ7äò ùùùùš|M¾&_‘¯ÈWäËòeù²|I¾$_’/Èä òyù¼|^>+Ÿ•ÏÊgä3òù”|J>%Ÿ”OÊ'åò ù„|\>.—ÊGå£r´-GˇåÃòaù|H>$Èäýò~y¿¼WÞ+ï•÷È{ä=ò.y—¼KÞ)ï”wŠÎ?q»/.ò² É’,É;äòùOùOùOy›¼MÞ&ÿ!ÿ!ÿ!GÊ‘r¤¼EÞ"o‘7É›äMòFy£¼Q^/¯—×Ëëäuò:ùwùwùwy¼F^#¯–WË«åUò*y•¼B^!¯—ËËååò¯ò¯ò¯òRy©¼T^"/‘—È‹äEò"y¡¼P^(ÿ,ÿ,ÿ,Ï—çËóåŸäŸäŸä¹ò\y®<[ž-Ï–gɳäYò y†iŸ´GÚ#í‘vK»¥ÝÒNi§´SŠ’¢¤(I—tI—TI•TI‘I‘›d“lÒŸÒŸÒŸÒvi»´]úCúCúCÚ*m•¶J[¤-Òi³´YÚ,m”6J¥ Òiƒ´NZ'­“ÖJk¥µÒi´FZ-­–VK«¤UÒ*i…´BZ!-—–KË¥_¥_¥_¥_¤_¤_¤%Òi‰´XZ,-–J ¥…Òi´@š/Í—æKó¤yÒ)Ÿ”GÊ#å‘rI¹¤\RN)§”SÊ!årHÙ¥ìRv)«”UÊ*JR ô™ô™ô™”YÊ,e–2J¥ŒR)ƒ”AJ'¥“ÒIi¤4R)@ ¤ÔRj)µä'ùI~Ò§Ò§Ò§Ò'Ò'Ò'ÒGÒGÒGÒ‡Ò‡Ò‡R*)•”Jz_z_z_zWzWzWzGzGzGJ!¥RØÞØÞØÞØ^Û^Û^Û^Ú^Ú^Ú^Ø^Ø^ØžÙžÙžÙžÚžÚžÚÛÛÛÙÙÙbm±¶XÛÛÛÛ=Û=Û=ÛÛÛÛmÛmÛmÛ-Û-Û-ÛMÛMÛMÛuÛuÛuÛ?¶lÿخڮڮڮخخØþ¶ýmûÛvÉvÉvÉvÁvÁvÁvÎvÎvÎvÖvÖvÖvÚvÚvÚvÊvÊvÊö—í/Û_¶¶¶¶c¶c¶c¶£¶£¶£¶#¶#¶#¶Ã¶Ã¶Ã¶ƒ¶ƒ¶ƒ¶ý¶ý¶ý¶}¶}¶}¶=¶=¶=¶Ý¶Ý¶Ý¶¶¶¶([”-JtÛ‹î:Ñl'NÔOð†<”Ü€˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL àóž ~6øÙ`[U[U[Õq‹Æ-·(ôUè«ÐW¥7—Þ\zsž-y¶äÙ’>2}dúÈ,­²´ÊÒª`÷‚Ý v/ß­|·òÝÚ†´ i2íÙ´gÓží\½sõÎÕ¯ ¿.üº0¥ _DL °§8v$ޝ~ùê—¯~1û,j©q¤ÆϽ{ÇóÏwýæô›Óoš½{Úci¥=ö(òQä£Hê3Çõ ×'\Ÿóïœçü[ÔŸ©s¤Î‘úÁå—\æZMÔ:k¸ºõêÖ«[‡gžqxÆ A‚ø»I¡–…Zj)þ}§È"wŠPÚ|wÑŽm*QóE[K´»(€÷ &X0]QÞ`æ¾™ûfî3û,ÒE¥‹JõtüÓñOÇ»ùýâüâürÍu4×Qçõ!újôÕ諞8ö6uÚÔiSÇì}kmªµ©Ö&ê3Ç›¬o²¾ÉÚ yƒæ šÛן©¦f˜šÁÛêuÔ:¼ÝuQîE¹åÏòú{˜ýiøîðÝ~(õC©JÙ×ÿ†uÖmX—ïÀ{,‚˜®(opäᑇG:ÿDvÍß5×|÷¾¯ˆu]éÀõ\–wyÞåy—›½ïÈ[#o¼åÊûRŸ‘pFL1a„ãð—?^þx9çp€Zç»Ä\º.麤ëÿ$2¤é¦CšòÝểäLŒëcÿÓaRÇI'u¤|Þ€˜`ÀtEyÑ-k?$ZâD°bÆ>W:m=ñÛüK±—b/Å:_9§œSÎI O;9ñäÄ“ÅÓöö5gÎÂ9 ç,ôÎZD‡s55g µ.¹éý¢÷‹Þ/œ‚bÚ…V]ZuiÕeÙŸËþ\öç_óþš÷×¼{©ï¥¾—úUÅW_Uƒ¸^Jy)奔‘¿EþùÛ°¼ÃòË›|þñùǻҢ˜üåä/'Éßäp΄ÇÑDìô7§¿9ý åHZÀÀ‹ ¦+Ê{ˆ.W³O¤ùŒæ3šÏpï§úIè'¡Ÿ¸Ò]+:e\™‹×ukBׄ® uþŽ®?yI}Æ[ò‹ó‹ó«7 Þ€zìëLÁülð³ÁÏsWyjïÚÞs{Ïí=v¢=pÑÿ¢ÿÅ·ü4E<,^Ø °A`³÷ H2 å¡ CA‡‚ø>òÝá3JžÄÔ6ùæä›“oŽ}9ÛOÃA)’ 00€[}Žn6÷ǹ?ÎýÑì J”"(…«þ^¢Û%ãÜŒs3Îu}ðÆ?¦ü1å)î:Þ묰Îì½jÿZû×Ú¿RŸáiË×,_³|csdzsý¡Î#ñkˆ@Øl¡Ì½eK\*q©Ä%³š >»×…_~]Ø]g1¦‚óXwLÝ1uÇ$Ÿógl>#8šßa~‡ùK{å+XùåH*ÀÀnõ9v¸Ùñ?ŽÿqüçŸË™6gÚœi“ð÷²ZÙuýåþrÙ]5¤J`•À*fï5ê쨳£Îºþ^ÔgÄ×óÏ{<ïQ°{Áî»Û×–lÁÙ‚³{ó³¿ÔyPCà õ=õ=õ=³:P2ºdtÉhq®óD­p¥¥qôÄÑGOð}¤®ò%O⩎c®_¸~áú”< ©¸ÕçØán~q~q~9ÿÎùwοÍ>—_÷þº÷×½ ÿŒ†–ZzhéyÎøAЃ b¶3Çÿ[ü^ñ{Åï%üÝŸÌy2çÉ1× Ù‘*i•´JZ`xŽÙs'=Ëö,Û³¬÷×ê<¨!p®ßÁ~û4«KR-Iµ$•§ëÃw¾¸óų}˜ÔqRÇIiuSWùŒ’³ýzôëÑϱÌ–\XraIÊø€ €ÜêsìðˆvÚhWÀìsù¶ö·µ¿­ðϨb½Šõ*ÖsÜ~‡Ûnw¸=±ÏÄ>û˜íÃ¥”—R^J™ ¶å¶¨mQÛÜ5û/õñ%žxË?>ÿøüãk‹±ÛØmì&Wyøºªÿ©úŸªÿ1«_ùûÊßW<½Ëþ\öç²?Íö¡a݆uÖ¥ÕM]å3JÎÌÆ*°£…R$&``·ú;<âç/~þâç/Ì>—Rz)½”žÏèVë[­oµH2 ¥ãö9õË©_N9¯â÷ø Ù‡óü˜çÇ<îšý—úŒø²’Þ±«ñMÖ7Yßdå®òðuf?sg ûóEÏ=_ÔlÄüÄ|©«|FÉ™hw囓oN¾9Ì ðÀÀ€$p?Åý÷S¬X°bÁŠmê´©Ó¦N…ZTh!†ÌÍ87ãÜŒs‹f-šµhV ‰An;Xì`±¤½Õ]øuá×…µkÚ5íšޝ֦Z›jm ®\!¸B†VdX‘µbÖŠY+ó+æW̯mHÛ¶!bxÒ‡Q£Fùn7GôÕè«ÑWçþ8÷ǹ?¶ÿ¸ýÇí?ŸšZ2‡gÏž>2}dúH1øp±¸bqÅ⚪MÕ¦ê÷µ¾¯õ}-1𫊯*¾ª˜êù©ˆS§"œ:w³ÝÍv7ÛÛmÿ·¯ûú·¯Í¶|ùøåã—ÿw8èA)‚R8þM«.­º´ê’zÒbt‹Ñ-F›íÃ裌>ßí¿]}õsðÈÁ#¬úºê몯 .0¸ÀàÿÖÉA)‚R”Xn`¹½?êýQïDmLœšàç aÏ_ÌþþÁå—\ž¹oæ¾™ûgiœ¥qÑé/ÎÛ9RçH#uÙÙeg—Ý+S¯L½2‰™#=·ÿâ³v¬'Ã3Ï8<£'ºz}÷úåÍâ[͈®ç· üùç»5ä^ê{©ï¥^5lÕ°UÃD©V*_©|¥òy¶äÙ’g‹(OT.T¹PåBí_¶Ùþåê^«{­î%^ËÙOW ³:pÑÿ¢ÿE×q=2ÛqKWÏä|ÇáÜË/¼l`«j«j«*¦`¨~±úÅêÅYÔþû.žhcÕü^í÷j¿W‹={,ö˜ïž3­t®KøvHÓ!M‡4u,yû‰iè$``@"s…޼5òÖÈ[â6Øÿ­ˆÛiÇ[GOßê¯-±¶ÄÚ"Rz»=Ïœ-8[°ø÷µ•×V^[éÕÝ~q~q~ër­Ëµ.Wµ»ÕîV»ëï&¹Žæ:šë¨ø÷óÏ{<ïáúN‰Î/Çmæ6r¹ O<í×eC— ]68¾£xîöÊÎ+;¯ìt¾ÑõcVLùcÊSÞnßÌæÙr| Gt39þe`ƒÀ D‡ÝÛíƒý§éÈ~ 8OÔgÑeæ<„vNtMz®+Ê›ÏÎKÛñ/Eì‘¥U–VYZÅ÷(<Ñåw(èPС ³w<±êĪ«ÜõŽÞýJüÎn÷¾c|·s3ìfØÍ0ñ“Gj©qÄqÎu_¼Æù»URÕ> Ë;,ï°¼ ù¾ˆIÄ¿EøšœÏ~"ö3{—õéÖ§[Ÿ.qÚóbô³%9\=“ó‡Ù¹tùšåk–¯qÞ&tÎþ\ñ(òQä£Ho;g&‡s»®°âUfï{äᑇGÒ7HÀÀûkÞ_óþšç¼ë*¾Ò\Is%Íû[POtÇÜpÿÁýâ9÷v1Øw#z[W”èzHH¨æ:û@ו}›µcÖŽY;̶¶kþ®ù»æ»«Þ>ÿtüÓñf¾ š7hÞ ¹+ÛÏ7˜íóˆç#žxþvŸ”Yç xRÄ~›fÃä ;Wï\½su|ßÝùP¢3KÄfž¨ÏâéêÂõ ×/\?áõо«4á5ÇWÎÎK[ü_ñ£Šþr¹¿œðýOȹkÿûžë{®ï9OCê+ׯäO¿9ýæô›ÎŸ†O›ùâ5Î×`ñ³Œ¼Ëó.ϻܽÇ"~敜Ï~ί)bÔ_®.y¶º}±å ˆ1lêw­ßµ~W÷î³ý€çÞsδê¹Î½WX{bœ Ç-ØŸWé'x00ÀƒÄïÅ`‰žë`]’jIª%©ÜÛs§È"wŠˆAº<ÝA<¯÷¼Þóz{CW”øÅ½&×?5¬Û°nú®ì­ý°ÆŽÂû†÷ ïë®… O6<ÙðÄì½–ÞXzcé WÞkQîE¹å6ÛN½õÔß}v>¸ô–í[¶oÙn¿Íæþ3÷Ÿ¹f?ê쨳£ÎÆwÄ<^fÛ¬3«Î¬:³ªû¨î£~ð­ë—µ`1JA·éݦw›îJ©šuO{ÿ5Îw`1 ¨Ös%™81žwžýz¿èý¢÷ çÛ·â|ë~!y¶º}·å Zbb|Ïí­ýùÄΙV=×¹ë ë¨ë’®Kº.1 øÅ³ãô–<˜àbhVW~-º×Å|b–Dñ‹òÇË/¼\]â¹Oñ\—ãbbbÝÕ#æÜ2jØ^è'¡Ÿ„~"f{º{)öR¬˜Iû*ª¨"†Ï2›õ¿ûŸ2 e@Ê­?oýyëÏIÛåJ÷¢lüÔñSÇOÝ=y÷äÝ“í]t Ûul×±]bN/ñ4ƒ8Fç[ïÊ~šÍúiÿ”^Âë°˜MÍñ]Äïâų®lçl£³Î62;j1wà‹V/Z½håú¾‰Y*Íž,4>.d\ȸqޝ3±Å·ÜúÄô‰écv\o7û¯+õ¹î˜ºcêŽùŸsHŠ A)&uœÔqRÇ“ON<9Qáú„ëþ÷ò‹ó‹óó8:ßfóÍg4Ÿ‘ÎÎK»Há"…‹¶ÿ/âéñcçïè|Èq¡eÿ–ý[ö»=ÿ¾Ö÷µ¾¯ezxçÈ;GÞIn×/«Àfg{q~Àoï¹½çöžâÌ/º×Eiûî5.q>_wm³U—V]Zu1ÛNÚci¥=&ÆÌp}›b>Qûy1Ý{ñųŸùÀþ[oG ]+¶æ ÷ ɳÕí»Çî|ŸÅÏ&fÿ>û÷Ù¿‹v—+ï"ÚÀÎ÷yÚ³iϦ=KÚk¢õÎuîºÂš?Œ3{wñã9_±à[€ €n¶ÿóýŸïÿÜ•nÐW_U|Uñínüâ;+›+Û¼¶òÚÊk+Íæ=Êž9 û,Ìq;ã[4n‘ÙvœÊkBׄ® uåXDM0{r1!³ÿºRŸ…B- µ,ÔR„:ñý,Ú¿lÿ²ýK³-‹™•]ßšïž7\/mñü´¨{®¿Ëç?/øyÁ„ß™E ¢ËRìgr»~Y5v|2L Õ~Ñÿ¢ÿEË^ãçóMø6õ¿ô¿ô¿œoÇõé‰hÄùöÅÓ·ž»ÖxÛÙOŒráÞÁfE9‹ŸR%æýBrnuûⱋÉDœÏûßè÷­ˆ¡•‡Öâ9ÚÄ?gZõ\ç®+¬ñ£³:c?6ý'Ï!&¸Y— ]6tÙ`v«™oN¾9ùæÄ‹={,!·|b2ûÙÔ~«?Æ6Æ6Æf¶…Åé§_œ>á·©¢óÂì]²gËž-{¶ÄïŠ2RØñâ 9öÓßœþæô7Î;ïúÖÌž@Mø £fÏ׊aßâ;\³`ß1ä¨]vÚpeŸ£¶Em‹Úæ|àJ³íˆßìgšiB¦ ޝu}æTû§{‰!šRO\ùF‹A8ßîS¶Ÿ#Ù,Àv}k¾{Þp½´Å0}ñݾýO%^΂˜ÃU uî¸ÍÚ¿Öþµö¯ÉóúeÕØ^±¸bqÅâÄлñ}_¼ÆyúóMø6ÿ˜FŒ¦ðš&žÌ6{—N‡:êt(9œýìÙï•ç¨ï©ï©ï¹þ´_|%çV·/»ýO ‰™Î^+Âû†÷ ïkö.‡ÓNs8MâŸ3“ù.!WXçÌ&aIøFp00ÀmÄ܇·XsA¹ëÆÒq`´·»ÕÏväÙ’gKž-ޝ-~¯ø½â÷D—½»ÊjÃûÞßð¾ÙÞ=qôÄÑwe Ö X7`ýStö‹RÕ Ÿš O$¸¾11ç«ÙvÄÌ»oW‡Í†bƒ¡½Ý¡ÛÿšÞ‘˜mÔ•íØ?ßl/°A`ƒÀ®<ûØäB“ M.˜îƒ_œ_œ_BJÞ¾[óíÊÊy ƒsº²Ÿfδ9ÓæL›„×C_?o¸RÚâYÛ·ÛÛs•ÏU>WÙ½°JZ%­’Ölk":Etz»-ûîõË]W÷Ö÷nM°/±øn߯qžþ|²Í;Eî¹SÄù°¥Çÿ8þÇñ?^ªbÆe³wÏ–‰™P­}öst«õ­Ö·ZÛ?3ê‰ØþGc"ØNøðÑɹÕí‹Ç.F¼p>•ÉÛýT‘ó7رž8çÌäp®KøÖ¹AÓM4Íì}ÅÓÕô¢<‡˜à6›÷lÞ³yÙ ^Bžž4#:¡Dp•[}ûç&M1aÄ„î½%¿Ê7Èw^ïy½çõöæ®ÿ·#~åí®½=q*âT„{ŸèZ’jIª%©Ì¶¹÷Û½ßîý6!¥*.6Ûþ¥”—R^Jé| Õ/V¿Xý_’dñÜ€+û è3ÛÑýä| MÕ¦jSÕô™¡ÌþëJ}ñ|Äóϲ}ûÁ<R}ý¼áJiOþrò—“¿|»£pW9Ûs>‹óÛ•€¯_¿’ê*˜pB¢8ß½ÆyúóMÈ67ÜtrÓI³×Šñ9Ü[¶å–Xn Ù;nýyëÏ[vo xÛÙϹ—\~pYl¹b½Šõ*ÖóÜ“Á!ãBÆ…ŒKÈQ$çV·/»}ë×,´v×ÞŠð;Gê©s¤v|/û(1qΙÉá\çé+윅sÎYhöîöãsЗð``€Û -=´ôÐÒf7x½?êýQï<ñ¾®Ì§è| Ó>˜öÁ´<ý«vGõÔPo€ã;Ú5–ð{ï©!;ïh¼£±{÷¶Ì²2ËÊ,sÜNµ»ÕîV»ßm6*ר\£rÿ20š_1¿b~ /ûa–­îµº×ê^fû|?Åý÷S˜Í¼ûÓðŸ†ÿ4Ü•ãuœO{6íÙ´g¦Ûñ‹ó‹ó3ë˜OO>ÿtüÓñ )¥ÄyF!áõÐ×Ï®”CB†ÚöÄÙ©÷‹Þ/z¿0Ûš˜Çúí¶ì»×¯¤º $fì|vsk_ã<÷ù&d›Ã3Ï8<£çÆp4ê쨳£Îº÷}ëì—wïx¾ãùŽçsþóïœ{"Žï˜ɹÕí‹Çî|vsû«§»öVÌ‘,ÆÎ±_n†Ý »–˜pr8×yú »jتa«†™½»}+ˆ¾€'ܦ~×ú]ëw5»Á[¾fùšåkÍ^kÿ<½»ÊÙù0¶öSXõì—pbÔû}ç=çÃÛº¢W¦^™zer}O’s«Û½mHÛ¶!fû,Î~Þv~v×·/9œë<}…ý³ÝŸíþlgöB_…¾"x00ÀmJF—Œ.í|hYOÜà‰ù«r«_¾[ùnå»ù{ ±?‰ßÍ_bV0ñ«|½Ìï0¿Ãüb¶ÅÍ4oÐ<{¶ìÙ²g‹Çs$ñä|Æ,ׇõ³‚Ì‘ý|~ )±ËÇ/¿|ÜùPrfï"žAt|UÁß=éY¶gÙžeÍžâ}¼üñòÇÿ2'±ýìkŽÆ®»vìZO?›{,öX채×Þ„×C_?o¸Râ)œ¤-g{b¨I³­ :t((¹]¿’ê*˜°+Ãã[õç¹Ï7!Û,½¹ôæÒ›Í^{¶ÑÙFg¹÷³89ñäÄ“ÍÞQ šjí³ŸçØïUXç°Îa³VÌZ1kÅø^ƒÄe’ÃÕ3¹Ýq8TüĪ«N¬²jœÎuž¾Â¨r Ê*fï^J/¥—ÒéEx00ÀmrÍu4×Q³¼[­oµ¾ÕÚïk? ØÛÝêì^°{ÁîÞÓS¤p‘ÂE '~7‡#1מ!{†ì2úÀ裈ù_Ç0 Hð­‹+Wì_ÊÁþ—ûηPS«©ÕÔ·PãH#5ޏ·ÆÍZ4kѬŽï%ž?3ù¹þ*Ñ]ß}pþ„ÁöžÛ{nïéøªïò}—ï»|f¯Ò®i×´kœ9žCMzî[ãëç WÊAœ’¶œíåÙ’gKž-žèÄôÝë—§¯‰óŽÎ·vÿÁý÷xâ(|åçmÛt>wõÝlw³ÝÍæÞO*¦aL؆fï(ÎÆÖ>û%&1•ƒØÏª¯«¾®úÚ•ºô èAÐZÝÖ;v³1cñÝô¶:ì®o_r8×yî +\Èq!Ç…fïž|þñùÇÇà1ÀÀ·I{,í±´ÇÌnðž÷xÞãyOwT½Ý­þgaŸ…}æ=Ý1¢-ñ»9„G‘"EЧ9Íf{};™&dši‚'ºDG|8âÃ:n-Í•4WÒ\¹SäN‘;EÌ^û÷•¿¯ü}ÅlÄó^îí®ý¶ö·µ¿­möŽRq©¸TÜõ®“·›÷TÌ(,ÊÇq›\û¯'ê³çÞÅ×ωSÚîÝ~æðÌá™ÃͶföã k_¿ó[ã¹wLœŸ}øî5ÎÛ¶™qnƹçš½öE«­^´JÌoJ–VYZeieí³_RA¸ë5|ÉÓ%O—<¥Õm¥cß/³-¸«íçW¨dq®sëÖ‘ØÜìÝ6l@/ Às€ €n㼃Àsèâö;!·ú"¾òžî±?‰ßÍ¡>R©œÿÚÝ"¤©T¾RùJå».麤ë’u¹ÖåZ—K ,ì‰.Q1ô«Ù6ÅÀÅf¯šaj†©_%¡Û•nWº]ɽݵ«{­îµº—ÙÞ:Î7¼°äÂ’ KþËÃ)R¤Lȳ‰fÏ=Û‡+þR< ÞÑñïÅ<‚î*_ €}ý¼‘8¥íÞí›ÍÒ-ˆ{“Ûõ+1¿5ž{ÇÄÙ߽Ƌ¹–ÍÞQÌbkí³Ÿ7°ŸñÔŒý|±´º­qìÎ •+¯çønì‹çº„‘ø)*½(Ï!&¸óaÍ<7D˜}D÷v7·¹ÜFnÃìµOæ<™ódŽ7—|ÂoìŘ®?— ìjW ]vfœ™qfÆñܪã·‰Ù \!¸BpÇm~õËW¿|õ‹ÙöÍæ6k>£ùŒæ3<ñy‰™ÍJ q–ÆYg±ßÛ6uÚÔiSÇñ/Åž'dOÆO?uüT³=ÏF‹¿Ÿ¯ë¡uÒÖçÄy_?o$Ni»wûâI³­9ÖߪׯÄüÖü—_œ_œŸoÀ¾~ó¶m&þ°¨âÛmöŽbpx«žýf혵cÖŽ™ûþ}ñôÓ{ŽœO!Zb´º­tìΧHðôÂIûíã\çé#3ŽÓ‹ð``€Û”Xn`¹f7xÇÿ8þÇñ?<ñ¾§"NEœŠHÈÍm)½”^Jw%óN 9vñëõ|sòÍÉ7Çl â©»ö·ÿ¸ýÇâsôÎŽþˆN":9n3Ê +2¬xõ0êáÿüjþL›3mδ1ÛñD—ç:GÌæ˜O"ŠAÅ’=[ölÙ³9þåÐÒCK-=Ü×v_Û}mÍJ`qúÅé§wŒxééé%·Ø×ωSÚîݾˆå̶v¶ÑÙFg%·ëWb~k1Ô¶¯ÀÖ¸ÆyÛ6Ko.½¹ôf³×ž«|®ò¹Êî­ub›fï(öǪg?çã$dèû·£¾§¾§¾g¶?b˜hZÝV:vûQa|eŸÝõíã\—p¢mföîo7«1®#&¸M³Í66Ûhvƒ·|Íò5Ë×xâVó÷j¿Wû½ZBnn4oмAs³×,v°ØÁbÞ\ò 9öe.ûsٟλŷ÷ÜÞs{Oï÷ö~»÷Û½ß:tíÿÞìùWñ”¡§g5ë•©W¦^™Ìö6újôÕè«û?ßÿùþÏÍþFÎ)ç”s&¤ÜDÀl6 ¦ý“Ç¡¯B_…¾2<нeå+°¯Ÿ7§´Ý»}ç]±â Éíú•˜ßÁù¬äÞ[ãçmÛlX·a݆uÍ^»eû–í[¶»·Ö9|øí¦!𕳟󾈑$æUÃùŒžâ'k´º­tìõÔPo€Ù>ïh¼£ñŽÆVmÛp®K8çwgeg—]v6½(Ï!&¸Í„FLavƒgw¹÷}Ãû†÷ ï››[û')mx²áɆ'Þ\ò 9ö&š\hrÁùоÞÙ)ó/üâüâü̺JÛ¿lÿ²ýKûw1{ã›fß4û¦™§?5çÁÏüó;Ìï`öÅ3ÍîŠ]¿Îüuæ¯3› Ë&žŸÿvWWT’Õ·¾‹¯Ÿ7§´Ý»ý¦jSµ©j¶µmC· Ý64¹]¿ó[#lxÃûÞ÷•Ø×8oÛ¦ó³Ÿ{'Æ®»vìZ³wÒtHÓ!Mãû޾rö«ýkí_kÿj¶¥7–ÞXz#q‚Áù€®ZThQ¡­n+»ý÷ËÑ”SjL©áÞ(†7¯úúÿ¿ˆ861¿}œëî)LùcŠÙ»‹izèEx00ÀmÄoÀÍnð‚R¥J!Â$w½ã›¬o²¾Éê|îFWnn7ÜtrÓI³×¶êÒªK«.î½I¾ºõêÖ«[Å £Ž‹vM»¦]Kœ{ç»yçÈ;GÞq×±_н{)ÖÓÝÖ X7`ÙÐÊÏ?ül°x¾ÖlDù{º[äfØÍ°›¦³Qv:ÔéP§Cfÿ÷ó‚Ÿü¼ »öľûØÑÂ’ K.,iöퟢv×þøJìëçÄ)m÷nðÈÁ#4ÛÚŠ+¬XÜ®_®”󫊯*¾rÛ{}Ïõ=×÷œ¯ÀÖ¸ÆyÛ6ELeöÚJå+•¯TÞ½g?+:ͬ÷—ûËýe³í4ÎÒ8Kã,‰ïš¿kþ®ùfûÓ6¤mHÛZÝV:öÿlügã?fû\ãH#5ޏwŸËw+ß­|7Ç÷1pb~û8×%œý*ŽìG_ À€ €n#æXý,ì³°ÏLc­•?¬üaåîzGûars+žfH•.*]”ãkÓ\Is%Í÷Þššý¢< e@Ê€”bçÆ>ãÜŒs3Î5{í£ÈG‘"ÝuÔkK¬-±¶„§»!ŒÝÆnc·óg‡gžqxFÇÿ[`pÁ‹`&q¾5fCÚæ]žwyÞåfurj†©¦fpW‰‰ÎAç³s™ý_ûÒvW™øJìëçÄ)m÷nÿç/~þâç/̶6kǬ³v¼Ý–}÷úåJ9Ÿœxrâɉ ßgqEÈœ-8[°¯ÀÖ¸ÆyÛ6cÆ4Œi˜öXÚciyºÖÛul×±]fï"δâUV=ûmýyëÏ[v¾51aDâ´[œÒ«{­îµº—ócLέn_Ê•òq×·s]‰ç¹ÍÞ}AõÕT'x00ÀÍÂ:‡uëlv›—oN¾9ùæ$ü6O<Ï$æ rWzÇóÏw<ŸðNçŸâ~ ³ôšZM­¦–˜7öâÉ6³×=qôÄÑ ¯·Zßj}«u¡–…Zjéén1¯mn#·‘Ûpܾóúi 'Î÷Å•gé<ýÔšPfY™ee–¹¾bjñDµ{ËÄW`_?o$Ni»wûb–_³­õþ¨÷G½?JÈžûîõËy÷´ˆ®¾ç£Œ>0ú€»ö9qê¡5®qÞ¹Mñ¬§§Ÿet>ð»+Ï›úúÙOœ1òlɳ%ϳ­Ù_Á=×bϸgÏž9ÜqÄ-Äi\Ù“äÙêöÝcw¾Ïîú¾;¿ÊØO@˜ßnÎu aß63ûñ 0Às€ €n漃^h>£ùŒæ3r³7pñÀÅ»V¹²Í=Cö Ù3ÄùvÄ`¹o·Ï/¼lð²A£rÊ5*g¶}ûç‡çƾb½Šõ*Ö3{íä/'9ùË„|Râ¹ÑÍ䉨 ¾Ý Ο`8±êĪ«³•Ù4ÿg(ÚA‚xâeWæ"µ× yƒæ š{¢L|+öÝóFâ”¶{·/aÎ4!Ó„L·f6Kn×/³¹Ï…—J\*q)!û¬¤UÒ*iíŸNó•Ø×8çÛ|»+BÂ÷SÔ çÛIÈÀìKR-Iµ$•óí«ÔGê£äpös>ƒ`?[°{¯Ë"Ö­µ©Ö¦Z›œÿ„.9\=“ç‡+ûüË©_NýrêíöYLÎböc&1>Çãå—?^žøçLÎuž¸ ‹¶œ¨«ôŸ<‡˜àÎ'þvÝèÏ{<ïñ¼G|»Îã{sÛáv‡Ûn›m' 6 6à¿3üÅùÅùÅù¹²Í{©ï¥¾—ºýÇí?nÿ±Ù–ÅÓ`o7ScBŽÝl0dû¸T óß½ú³ÝŸíþlçÊ —ön„ß¿žðèJgct”øß”Û•nWº]I ÄçÊ~¶Ùþeû—žØ[U[U[U×K̳ÿ&¼>'Õ»øây#qJÛÛ?>0 Ñõb+]¿ZŒn1ºÅèÿãìaW—\/ 1{Ÿxâß•ŸÑx[÷´5®qη)ž?Nª2o¶±ÙÆfͶ“>2}dúÈønSÄ!ΟkßAo¾Ö¸wû"²ªßµ~×ú]oÙ½ONs8Íá4U«V 4{G1}†PV·µÝù>‹«°Ô×õ}£ÚØÿPÉѸEã[”´çLÎuñ%Úcf??P ÏàiÀÀs&¹þD£ø÷Áb‹,v7ÛÝlw³=™ódΓ9bN©Ÿ†ÿ4ü§á%£KF—ŒvÜBú ë6¬ë®›[ñî®ì¹èb›×{^ïy½ÿš÷×¼¿æ‰'$D¤·{òîÉ»'ÿPê‡R?”Êž-{¶ì¦Û·ý¢‹-ñ»ÎÏ´9ÓæLç[°ï„RßSßSßʧñD‰‰4gÿ>û÷Ù¿W}]õuÕ×f[s>#£}¬’ç\EÇ–óÁ?íÍ83ãÌŒ3I5Y¹å–èÊ~Š'B<±ŸOÇ?ÿt¼óOçZÛ¢¶Em#öÝóFâ”¶'¶?±ÏÄ>û˜msçê«w®Nnׯu¹ÖåZ—Ë•}¶ï·{¿Ýû­x†UtÔž/z¾èù¢Kž.yºä©ÙS­Ëþ\öç²?}%¶Æ5Îyè>`Ý€uÖ‰á^ÅO ®­¼¶òÚÊÄ)sçsvÚkr¡É…&6ÜtrÓI±‡¢„Å¿7<ÙðdÃ“Ï ~^ðó‚ÿÇ÷.EPŠ "JOng¿Øc±Çbù¿ñáEÿ‹þýEmÏÞ]Ÿp}Âõ ‡‚ Ú¼góžÍ{¦ßœ~súÍzê ¨7ÀùÔÄ3|â'ÉçꙜï8\ßgûçÑ/¥¼”òRJÑμºõêÖ«[Å[p¶àlÁâ7àÞÐÉøºðë¯ ùëÌ_gv§ìçÖ]º&tM¨ë[ØøÏÆ6þóv%#†èt¾ýÐOB? ý$i¿#â™çû)ÇóôžÌÜ7sßÌ}Î÷D<³è¹}ðÝØ·Î‰SÚžÛ¾Ùp‘í ´+Ю€»öß·®_®?»ì:ñlÖ„FLa?¤§oÀ¾~û¾Ö÷µ¾¯åͰ๟M䛓oN¾9öQYr>û âÉEûŸ $Nô[ãH#5ŽÛul×±]î½.'ŸV·¯·<½Ïâ©ßUT9PåíJÕçLÎuñeß³WJ/¥—Òé!$``@"±^Á~¸Åøþz½ï¹¾çúžÈÙ߸zîæÖþ½2‡gÏþv·ôbàµN‡:êtH æu7ö~q~q~öFow¤¹Žæ:šë¨˜L Åü?{âçççÊ“¦ €ÅkÎeÅ‚ V,HÚ_ ‹9Ûœ´Øï`¿ƒýzz?íoFDAžÛ_€}弑8åà¹í:;ê쨳ŽÛÌ»<ïò¼ËÝ[J¾uýCƒÚן·«{ÅâŠÅ‹3R;K+g‹w~ë}÷g_g¼9þï÷åÁý÷ÿ;4º+3F;Ætć#>ñ¡}­æìçÈ~ûaÞÝðähÊ€”)giœ¥qñã1t¹çÚɨÕí³-³}C‚¿Ý>‹ÁóÅUÒ~ é„ï•'`Îu®\mE˜íøŽb4žý$``@°ŸÍèËÃ_þò°x†FtÈŠîÑõ\¿ký®õ»NÍ05ÃÔ žîÂp…ýmyg¥³ÒY©\¨r¡Ê…Ä-®¸ùóo‰ýoS§M6uæ,œ³pΤd8¾ìgÛêp»Ãí·‹ß+~¯ø=qtâHÅQ‹ø.ßwù¾Ë·½çöžÛ{ŠÁ©ýßT ¬X%PÌt•#uŽÔ9R×ÚTkS­MßÖþ¶ö·µÅ 9³_ ‹š&>S_ùîxOý¡ã†óFÒ3YšÑÿÒÿÒÿâúe_Äì³…ë®_¸¾ˆiE§³xÖªúÅê«_gr1÷}\j½úã‹×8ñ“&±Íºcꎩ;¦`÷‚Ý vÃò‹OVÌ»Ùþãö·ÿØÊYÌ0mÿt~…ZTh!BJQÎy¶äÙ’g‹øïbÏW [5lÕ0ñÓ(Î~ñeÐŽ±±±µÝbt‹ÑâÉÝ¢Y‹f-šÕþ > 1¦‚˜÷WÌÌ*† 3¶&Îó‚\=}ýØíç¨çÕŠõ*Ö«XO|ÇE,ô èAЃ’Ñ%£KF‹ïûÂ’ K.,y«õ­Ö·Z»wŸóœÉ¹ÎžÙ@ÙâÇpö# pÆx00À‹$þàTžÞsëÝÜ&æ³2nØ]¿8¿8¿"…‹.RØqûâÙ¾wà¼á»š\hr¡ÉÇÒëY¶gÙže³$}ës¤ÖYã统 g?ÎÔŸäsì޳ωÿîɳ®ŠŸL9o³Í66ÛȘ€ €€e‰§Íº]ìg¦¬_ù[äo‘¿™ÍzÈ· qˆ¹ÉųéŽm³mC· Ý6”¶ 1ËêѯG¿ýÌfps7RJ€ïƒ†Œ 2ν3ˆÀu¢ÝåØ+ß­|·òÝÄÈL” 1 z¼üñòÇËÅ,wŽ-ŸAÓM4_ Ö°áɆ'ž8~Ó[Õú«Ö_ñMð4ûv—½Í{6ïÙ¼‡ö ñ ZòtÉÓ%OÍ>t(èPÝ€EøÅùÅùUhQ¡E…ößôô‘é#ÓGÞK}/õ½Ô€'ˆ¶–hwÙ·Ä*•¯T¾Ryžý$```)"E>Š,~¯ø½â÷Û<• U.T¹¥Xúžúžúžã·~ìÚ±kÇ®åž0nѸEã9¶ÁÔGê#õm0@R!&>F ï¼gÈž!{†Üj}«õ­ÖOæ<™ódÎþÏ÷¾ÿóú]ëw­ßÕìÙßM'7Üt’nÀª:žïx¾ãyûo}`ƒÀ øÖ¸×Ýlw³ÝÍfßÖ:+•Î åHZÀÀÀÇ\ô¿èÑ?¾ÊÎ.;»ìl† ¬íFøðáŽg€ay‡å–—òpѾ²oqe Μ-øfØÍ°›aüü´€ €€‰oœgKž-y¶œmt¶ÑÙFtCÉÁÊVþ°òûó@¦ ™&dšÀ áDÄ›9‰– I´\L¢åR¢/'Ñr9‰–+I´\M¢åZ-ÿ$Ñr=‰–I´ÜL¢åV-1I´ÜN¢åN¢/w“h¹—DËý$Z$Ñ›DËÃ$Z%Ñò8‰–'I´ó3s0s3[0ó3OpRÍÌ ÁÌ ìõ³DŽńńYö `€'€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€Eñ¶zñêÅ«÷mÞ·yßæâß—]zté%ƒ¤E Ä›¿ƒ¨w£Þz—’AÒ"âÞ‰ˆ7`x'` ހကx#†w"âÞ‰ˆ7`x'` ހကx#†w"âÞ‰ˆ7`x'` ހကx#†w"âÞ‰ˆ7`x'` ހကx#†w"âÞ‰ˆ7`x'` ހကx#†w"âÞ‰ˆ7`x'`àfÑç£ÏGŸ:u8êð®Í»6ïÚü&oòR2H>DX´‡EÛX´“)¬„Þ‰üæ~˜ûaîÝ9wçÜs성ÆN(;­ì´²Óü, q@ã€ÆulÔ±Ño7»ùÛÍË¥.—º\Š2€wíUÑvíXѦMxÛX´±E{[´½E;œ2 1Åô‹éÓo{óíÍ·7ï·²ßÊ~+sÍÈ5#׌„_ëÅvÄ6ÅöÅ{Qæð`ð?b·Ænݺ.b]ĺˆJã+¯4Þ?‰ k2¬É°&§3ŸÎ|:3Ÿ Ÿh‹ŠviRµŠE›\´ÏE[Ïw¹þÑõ®4'fNÌœ˜À '$þµ^¼¯Ø±?|.H8`w.ì\ع°°¾a}Ãúú{¥ÀöíÛ¯[¶>ìù‘çGžáS€{‰v¦hsŠö§w¶E»]´áùÔˆ‡À¸À¸ÀݳwÏÞ=»VÊZ)k¥ôÎk½Ø7±ŸbŸùè_À$S¢Ã¨É™&gšœy»Æhî)7¦ÛØ5°X–\#§Ÿ®Ú9¸ÓÚŽõ——üÙv=´gÙ¬ÆgMl!c´|MÞ I»uíçYJG.íV»h±ëC—…\È´öáÜý{%¤)¼bËŠ-+¶¼Œ~ý2šOoG´'EÛ2!­ÓÏæ¯SþŸ<ùšLîr°ðGÝ+ÜS,h@Þ=Kä2rþ’ã¾_¿ oñ¦ƒoÏmX¤y¯Q“óø¤ÝÁ r,©YóËNéRË‘ñíÞW´ç ƒ0u/î^ܽ¨Ÿ¢~Šú)÷¹ÜçrŸ{»kn™O‚wgZÞ7{›½yCæír¤hð¦Ï§¦,µM™5¯sÙmÆãÑ!‘âßâ¿‹¿/^û–ýoçrŸË}Nì¿8>R¸‚€d$¶Ll™Ø2ýçöŸÛ®ë Íà Ï®dXúó‡5Žx¶wë•ß‹ëÑ£vmw­ŸþÖµqÍÎҭЃe[t+Ö+W|ºÞªûW÷¯¾kÖ®Y»fñùÀu¢ )Ú“®7?sì¯y¨iúâãÂ'ý”±â¯ fî¬]¹òÒ¥û÷»k]¶ôä~ë‹<Üùëï÷§_´)ï!×÷M´óE›ŸÏ€KA—‚.Õ:TëP­x\Oö¨R7ëæuïN^^R½~tÛßUÄÅíß_»¶»Öb›bûâ½âñdð¡Z‡jÇÅç ç€Hlll\oPÎ ®z%xã ÎojüäÞ¸×õuTª/Ó…l¯÷nžZw] /$,$,äaÜø‡|àø¢­(Ú®´0³¤*±°â⛇V^pÁ½A¯ëë ç§*ÐðëW¸Þží>q@ró&øMð›à¹ëæ®›»Î•+föèÀNi¯í>¹pÉ…qÛöϬ]ƽq¯KëmûgÖ.#öAì+{.ŽQ/Ÿ;`Y/v½Øõb×ÀÛo¼íJÃq㱆J-|™²Ûµò$Uèk¶¾Ø¶mõÊ×;n(r"çWŽåhÿ£ýö§@íC—:‚ŸV/ºµì“Nlª‘T¡¯ÙºRÝEów_)Z¢o©—ºr,â^@ÜPÖÓ"¦EL‹Êý+÷¯ü\ñËl/šéÀþ/~™Yþ븵û'×.•¡¯ÙzíþɵK‰}ûéüXÄñŠc§À0t;âvÄíˆâg‹Ÿ-~Öy3qQÁš/‹ŠKÓ# ¶¿·…¾fëÓí[PiJù­Ùc3ÿƒä¬¹»æîš»Ô€äL´ ·3Õ*p¿øweO*±v¦·…¾¦kÿ¥û …u­=¼Šó£÷âú°žèÓѧ£O»òÓ(%ï<¿²‹½(îua-öÙ•£å@}€@ €¥\\|qñÅÿ£QØ0WÞ^Y½q½ý‘j~¾úš­Wµ©»»D¸óã:vêØ©c©Éh:o+·ÿvàør>úš¬Ë˜¹hûö,KJªàüxÅýu` ÒBi¡´ÐùµoXË®­ò¿|žzW»š‘¾ýÚ¯Åþ‹cq~¼¢L¨ À"Î<;ðì@çMÀÿ©Y¼èF_}×—ô¶»«”ÍÑ0C–´¦Dš7jÞ¨yqÏãžÇ=§¶XÖó¸çqÏEÛϬe˜¶Xæ›FH…×nnåëѯãºPÊÎo†þäü¾@Ü;PY¾+òÈw"ßq~½3j,¨òƒï†¾fkq\Î]”õ$9#Àç].w¹ÜårΛ}»mM–›f½è×~ýtQ×ú5;´zSèiŽ7få0i̤1“ÆPg¬J´÷ÌZƒÙ¾¯4®þÆŠKLÞYÑzѯýºdØðá‹w9¿G÷Ô€oqþÔo¦¦Æܽ–e«Zµ¤õ¢_ûµ8Fq¼< GÀø°{Æ=ãžá¼[çÌÚÖ£+´vôk¿~3£ûßµ ÎTæ`¾éfe²lŲËVP¬D´ñÌZ€¹34î0°Ò³%QûÖY;úµ_—M=éõºÿãi`qOAýx?çsý–R${&9ö7­mÖŽ~í×âxű370ìà“^7zÝèu£jÁÕ‚«›Îï5£íW•c“Oôû?ë˜kW ¿^6"ß ³òÙ¹'rO$u À׉viôÛ+´vÇK•Ë/½Gò‰~í×!)~x¼é[³ò÷âþ‚ºðN1-bZÄ´pý>Õ¡fÎäýگű;ER—’`|Òøìã³ÏnÖ¤;¹³Õw•Š&Óè×~¶G@í€Î'Š.ÍUÖ¬¬î´½ÓöN[j€/m9³–^Ž5†5é\9`išýi’gôk¿.3bb¹ß›˜••¸¿ F¼Í›à7Áo‚+÷¯Ü¿r³Ÿ“ÛS¿ÎŸ6Z”¡(OêUr@ €9Ðõ@×]Í:n”5_ (+ýÚ¯_„wkU+U±µ¥3~çXb¡óBç…΋;w>î<µ Àgœ;w^´åÛxšç:]`V¥"‹êì'úµ_?1Þ@³» q¯Aåx¹ëæ®›»ÎìÊ•æú}»¹ÍJL”§w~Ö[×m]·õ¿Ÿõ¸UãV[u¯î½º÷êò-x;ÀøŒçƒŸ~>ج÷üʇ ÷$î5[ßH×~dÕ‹f¥·yÃæ ›7PÇ|…h¿™µîÊ-›™m{:â^³uþrmÊõ­kVz⾃:HZ—‚.] 2»Z5Ôù¸×l-ÊǬôDÙzÏgýºÉë&¯MÇ)! ~;ÀøŒé{§ï¾×±T,_à»C_7êÞ½Öo½Î×7îQf¸YƒòQ“GM5¡¦x3Ñf3kÑ;4¨Öì‚D¼Îו¶/~³w}†J¹&(ìX†â¾ƒšH2·ãnÇÝ®u¨Ö¡Z‡¯SÃZvm•ÿ%¯+kQVŽe(ÊV”³7|àöÏþ:Gì:`|@ÌÆ˜1Íš>çv¶iP9”p×õuËk…~Ì!;–äÄSL¤uàÕD›Í±-—­vųõŽ.;pJõ Ìî2Ä=õ ø¢~Šú)ê'³+ÔÓë;ÖìK¸ëÊZ”•YIŠrö†O\º"Üõwa°stqà"fFÌŒ˜éØÐõcùÍîèÆw}ýnû~Uÿ2k>ÞMw7ÝÝtÔ:o#Úi¦Ã>/˜ùÁ¶§Äºñ]çÍÜl\åŽå)îA¨u€D˜û\îs¹Ï9^›”¼óüÊ.&ÖïZ”›cyŠreî=U€0Ø]€ðîN®ˆ»w#Ì7±e;שQ€@÷íÖ¾«x¥PuÇR89pr uÀÛˆvšcû-_…–¾«D”ûvë sçÕÔÞ1ýqdÄ݈»Ô=@âØ={÷ìݳ¯Ge¶ Ít ζní²ºñ^ÛöÏ­]V”¡cÙŠ2÷Îú@œÀxµÙ¡³Cg‡:6e¦ªr-8=!nBÖ÷›ušUÝfÖX|6þÙøgã©Þ@´ÍÌZnÊÿ”C™D”›uþ½m_÷ŸæX¶â~„HµRÖJY+¥ãõhÿ¿Ì,ÿ5QnBÖ¢ ÿe>à”µRÖJéýuƒ08¾€ðR¯'¾žøz¢Yóå^‰NùªGâ&|=øHÙ4ùv8–ðöO·ºýSê!€7m³º°\ã…ß'¾uÃsÀïÌí-¯0»û÷&ÔC€ç\ÿèúG×?r¼eì”vqÜwû[ÖÎCˆ› õwû[ÖÎ#ÊÓ±œEùûJm! v0^*:&:&:Ʊ±Ò¹eÑ~¹²ܺk}qdÛÐÊ÷˹f·šÝjv£xÑ6sl³•}ýC̦¯‰oݵÎQ¯FÉ&ï:–³¸7¡øjgù§·n[?ìѹv<2¥L÷÷¿Ì²ìëëGmH*¢=æØNKW(kŠJåŠKçí×nݵ.µ`teKK[Ü›Pq?î~ÜýÀ 'üKÏÌ­cšÞûz ,ÊÓñˆDù‹ÏÂw«a°=`¼Î›—o^¾yiÖ(y9 Û¶ZU nÝ»^øcM­Ø‡Ž¥­(Ju ©ˆö˜c;­PÃ.7†í$²uïºR»E—öT6»÷)ÔI€{Åô‹éÓÏñºÓ°G•ºY7'm\j½X¬EÙ:—ø,¬Q¯ƒ €ð:7zÝèu£—c¤ƒRdHα„µžXÿým»TUÚ9–yŸT}RõIEH*¢=æØN i35Ýæ‹D¶žXgß[mQãçŽe.îS¨“÷ÚÞ|{óíͯ;ëÞ¼¼¤J쉵([Ç㟅õêXò ƒ €ð:;f옱c†c³có†ÏJ¿GXë‰õë/º‡ÕZãXæiФ)’¦H\l\l\,5 QÅÆÅÆÅŠö˜c;­ÒŸKRîÝLXë‰uÑÉýêOû—ÑqÄ} à^ýVö[Ùo¥ãuçZº­¶ªÅ €=±eëx\â³°v}K>a00^gdÇ‘Gvtlj\~Õîç*Û¼'4½Þ~eÕÇã§VœVÈ¿ùŒ‚s„”¸”õƒŒw3ÎMs!À(Ø=ó¥ ïÕÔr­Ïòlj†*m w³uÔªWôæ¸ÁмղŽw,ùÇ/¿|Ì`w‰J´ÁÛfY&”*[y½—¡ü÷’¡ûš^V}LÇ,+KÍ«R$íÈÏnfûOÀètKÓ?Ê0;÷‚Ós¥k˜¢mÛ²“§ŒÚð£wEȪiDfr,yqŸB͸W®¹fäú—!^ý±·|­ ÞygE• ßµ©Ó`SPÝÜFŽê餌sÓ? 0JFþ8Sî¡¥» Ì¿ýn6éPõŠÞ‹²u<.ñY$Ÿºgí0˜¯S-¦ZLµÇæÅóùÝ>¨yÜ‚RíZ“z!•³§ÿ"mUÿxº²³Ý?U®yg<µ^•Þ…;îóÅûï_¼OÍHL¢ æØ6Ë?¥m•~?{[hZ!rÞ¯Ú÷YÂK}P¹ëmã`£çú ½.Æ~w¡ºkŸãÞŠûj&À]^î{¹ïå¿\qÊ|¼;ÓroJÍàô‘é†4w~•ϳ%G\ºG'Výö[ÅHïŒE9;î¹ø\’[m´^L €×1kRÄ=íѵvͤH/ïòc{g—þ Ø«¼Ë3…§/8ýfÕ°à®;W¹¡\¦ã´lPq¸úè‹{!Žx^>°ÀLñLðÿ•ãðŽ,µ2‘Ž%AÍHL¢ æØ6+öjЉÙW½-4Íz¬Bߺïþw÷¦i™ö<½¾ü¶ë½âÃ3ÏW2fdÆ¥Ç TüºÇÀ.i×g’m¯ý•m3ùþúh/:¢ŠKìßizW€›Ü«q¯Æ½Ž×š¾ÙÛìÍâͰð}­Îæ½£ñœÿ”Ñ6þóã†RK{ejõMž‰)ýø×¶ÿË7Y÷5©uÚÛ`QÎŽÇ%>—d]3-àu5Zå*e¥7D¤"Ö{ëoø=ÑjS¥fáî¿ &s4ã·éÆ{g|âNK¹â¿tu­^¼:˜š ˜Dì_ž Ê3!Ëo—¼'.-vrP§Ù¡ÿݹŸv¥©U\‰¨üSœø¿â?ÛÿýÛÒ£Ó-MÿÈþ¸¼-ÒÎ|¯h‘âÀϹ¸é⦋›¯5óv 9R4Ø;à4WÒÔòß,Ÿ;®lñ7ö³‹ÿ^mR­’­¼æ`QÎÿ2Þ¦‹›.n¢~ ¾àu ]>,º%W oˆH÷ i*•ÛÑ'¦Ôȼ…'Œ¨x³PmWžèu ‰½ó9àk¿þ¦jÇýœÑwFß}©™‰I´ÁÛfåÒMoµõ€÷¥ÙnU¾Øð;±oÙ£«ýšÕ•@×þˆ>›^¼pyÃÛàa56™L ðœèîÑÝ£»;^k6}>5e©mÞw<z:çNW]ûWÕïZ)2keo €E9;–¿ø\¨ŸŽ|+ N²Ø¸lÐ¥2ÛóõΧfG¹¯ woSë×gªF/ôþøvTǪÕîRß¼YùɳŸØï J3yŠj$öÍþÙßÿcÎà‚sï(uÊ^ÿaŦB–N½·å¹·À¹?iüi‡úÔ7@âSfÍë\ÖK`õÑüÁ!ºòÚmCgž*“M¼*ïò é Š{O,Ê™ú–8¶®Ûºnë:`ð?†•*—.ÿCï €ï§èÔ¿új%íËþ¼$U­ß‹Íž±\÷y[Œ.ôIŽ^Ù³¥_“vÙqyÛ±ÜË×)WõÁÔ7oV!ÅÜòBoˆH+m^³wŽý¾…ÔüqßæÞå¾Ý:O&—»V¢¾ŸñxAtH¤wÀWvFFV¹æÊk/äØX¿òbÇ£óžX”3õ-q¼Xûb틵ÀàxÛÀ‡‚¾:YáÐOò]É66Í•€¬þ›Íö¼dtÖ™rw¸]dJΩÿÖäå `Ä÷<rxÚÈÈÿé6­¸¡ÿÎëÖ€yT¼ù àç=v-«¹×•×>¿³PÍ6ŽGÇÀÉS2z8ê]–_›Þ6pƹi.bߊùey‘±þè ,ù[£¥‡œ/Ú¦oåî/t[]«ŒxÕÙF­•ÿm.ÿ¿&¯oÌÜçLŸ3}ÎP3YXXXXXXXsm0Ƕ™÷Ì\qá‚a; ýϾµšQö[Ö€Íæ¦f²°°°°¸kYšfiš¥i¯5Þ<°ëO_ŠÝ<¢Juñª´ÇÒ¾ãËÛ`³9€©™fËDüÑãïôxÇõèWü}2š¸>NFV¹ dYé iúy‡f]#öªãù"×rî|“µûÖZ§ÇºgÚ´îRi§÷À'î´”+þË~®^¼:˜š ˜ḎmV&Ï„,¿]òž Ô~ßJ¾7¬â¢¼®¼ªÌ¯Wþ~±À7_¿T`w‡ìƒçWö_šzjï9®Ì÷Š )þomxÜã⦋›.nr¼ÖÌÛ5äHÑ`_ŸxGã9ÿ)£ý¿Ç' dÊXßÛ`QÎ\ëÁí¸UãV[åzè+þ>ñC_{Àx³¦CÜÓ]k×LÚˆ4°AºEiŽ‹ýÙ×¶Yïòù]yÕŽÆOü¿&¯7À;²4ÖÊüËÜ'QQQÔL€Ä$Ú`Žm³b¯˜}Õ;à ÃuS¶(ãÊ«rþÓà»6KÅ«2ýíÝkxUå™7p‘ßv9„rH9„³$  Ǥj¡Ð´S "PÀÔJ%˜<´Ð"(ÈÉ‚H«Xµ€šÂ K-') â[§/ÔqÐ ZEJ2?d®ÍN‰°²óû}x®\„µîu_׺Ÿýgí]Øñ?{<¡'€¯Xµ|÷ö¸»¨&Çt|Pì½fZËkwµËˆf<þàðým¶WægG,¼²n«ŒðS£¦_u{«Ç£‡:»×Ÿ¦3klè[ž"g@ñ€âűcĉ‡'_8øç6"í|u³ÂÆ7‡ãùÕ€«ûö]ñ÷ÿç†ëú÷OŸýø«úý°óÞØã<ôþ¡÷½¯3Φ0ƒÅÎf—Þ;¦_þÏ¢—¦e|ÿÓ»–|~p»Žjt~×ïxjE^¼ïOï2캋Ök<²I‡ðC)¯|óªqÃÂ×Q8£Ìº+~·ã±•û @u9ù‡“8yš;Nﯤílòx4à†o7Ì®_ôB÷%w¥w‰÷S¿pOvÏÑåjû“´ëÓ$:ÑoXCÀAb„¾å € rfŸ5~ÖøØ‘â­¿ýY¿ç6"ü`·Õ)¯þ|Ã7&5{ì7_¿±ûoýqì½ýÖ½—wýy:oòÛÏôiòã}“;6™×(½ÁgñŸˆVüÕí´˜{œŸüøäÇ'u&ÀÙf°ØÙ¬ù¼^éYë¢g­,Þµ8ö8Û®øvéä_uïuëÜÅ»zýÛì=ýŸŽë&|vûUI}[toõù»þ4ÊmöÝãöÉÁ¿\páú&±gö):€ê•²0eaÊÂØûÎßþ﮾Ùó¢·{¼õów _ßqÙ÷ .Ý´¹ÿâ]½?-ziA‡ËêMm2úûmï.ÿýWOÊ\ß"+jÏþ†ÚÆÖ<\‹ÚÓ{‰ú–'€Èy~áó Ÿ?Íà[´bȧ—ýùHfŽÿç{;Niz¸ñ?T~0Úÿýk¾’ù@Êk—ܘô¿âÕoŒh—Òâ–(D¿§¾5%/ûéØ#oØ¥a—†]ÊJÊJÊJt&ÀYURVRVæ±Ø9-ó7ÖÙUµ7‚oæ\™ ¹á²&õš]×í¶‚~…ÿ?:Ïþ†µëüü«üSì1‡}ŠÆ zå?‘ÿDþ±÷w’6lîß=jð¶+ò2Þl–פCÃÉßë»¶¸ôšK’ÞÞ¾~}¿w¢‡ÚÆs¸‰Ýo‰ú–'€Èywê»Sß;j\¿¥ËmmæD!.ýü €ÿî{K‡]YZ_Þì¶ðÙÀax¨ÍßšÏ_rÿÀ9]Öœê<åÚì_”?‹74¸áм‰Ý‹RgDáŒÞ¼qìýÆÆÖüæ n¾àæ ô$À¹æ±Ø9-ãÚ’ŠEèssËÅÀgM˜rÛ½Í&t{¸ï… ÿÚ´Gó?5üþ%·7ýyÓÛÒ¶ô™róжcÿ½Ï;…Ç~Ó*jÇÖ–»<2ìDlÍÃ>EOP½6Ø4bÓˆØûÎÚºóïù»¨ÀáÏÃ×ãN×fdêÖV“^h¼úâô÷õú}çM®ùÉËy+:öþpÛïû šµè7¬¡¶±5×"ñz¬ö„¾å € rJO–ž,=oø8yËäÙý£Wõo£ùæÏ+îüb·Ó<å°¥Á–[èI€s%Ìc±sZ§!ß{÷ÎíÑ PˇÁ_ìoÏÙÛY}äðKYñv"aŸ¢'¨^ÅùÅùÅù±÷!7ô»²EQâÒx!nUÿ<:k¨mlÍõHŒ¾ª¡oy`ˆ¨3 fÄ"¯|ðÝí}?‰Z€Zƒ×o˜˜3¨í„&u’ÞŒ­vI½’z%õt#À¹æ±Ø9-©S‹óZmɺbÕ²Ý/F9®Yk¯å?ôتØj‡½‰nàKñ~Ùûeï'ÏKž—|šO¥-yæÅñƒG9L­Yk¨glCýõ¨¹­$ô-O µ¯x_ñ¾âØ¡d⨮ù)Í·Õµš5fxÖñØ:žu÷©»ã)Ç{Lh?p¦øöÌ×[_MoØþùÓ|êÉW7}uÓWõ!@„Ù,vfKí3lÅøÜžùzùùK~øÛÕñvao¢øò¹èÈEG.нµÜ—<¡Ñʲ›vÊi+¾=£õ¦Ý£rÚ†zÆÖ9Ô¿¦t‹Ð·2Ài‹†/¾hxìȲ`v¿wÒ.ßžÉúþ¿NxhàæxCá§s?ûé\a6‹7¹]Þwi«-÷qÏd½tטSÓÄÖ6ìGt gGvì:ÙubïG»¿õóÂ¾× qÏd 5Œ­m¨yô{Cè[U`ˆ´c3Í<63ÞS’>ñëƒ:ˆr¿Ø:ï¦+Þî40¶ªó“ç'ÏOÖ{Qæ´Øù­ýå£ß”)Äý‚Ïþ.Y6øÅóãí8Â~Dïpvì\´sÑÎE±÷£Þ›º oòrÙæÝKrÒE¹U^7ï^’“j[ÛPóhöƒÐ÷L€ ˜Y8³pfaì@3ûþ¾Eމr«º96.¿ÿ¿Ç}‘+éXÒ±$]5aN‹7ÅõY^xáÆOºU]Û5ý×»nx<¶ža¢ë8«’Ë’Ë’S¤H={oÚÒnY½ô•ݪ®¡n§ù(©R„šG§„¾ÕE 5@ñ³ÅÏ?oÄ9°ýÚod ëV~õN§û[ý6¶’wŸw÷yw›Ž"-Ìl±³Ü×r®xãª? t+¿¦Ü;ð™Ëãí2ÂD¿pöm[ºmé¶¥ñîPŸÙ^0xšX·2k¨U¼J†:Gአ}¿ ^â€ãÁ]îzpWì¸Ó­}rÝK†Ÿ:eJöSÂÝŠ×ߤ »¡÷â Žå~”ûQ®Nˆ²0³Å›èºíù·ìE…»¯™›V–îZ×83e^‡Î±5 ûÀ9s´ìhÙÑì=Ù{²÷ÄÞ§î5iô¥'…»•YC­Nó¹¿{²÷dï uŽÂß°vÃÚ k…¾ÕK 5Ɖ[OÜzâÖxÐ}˲övþˆ7ÞúnÒ¸YýÅ«^Ñ3EÏ=£ÇjŠ0¿Å};èÇ ¿¶)IÐo½´Ïµ}¦]¯zaß¡Ç8··>Üúpëxw«­ƒ–çdÜ'â·†úÄ«^¨mt®õ©ÜS¹§r…¾ÕK 5ÌË“^žôò¤x#Ñ–§¿uKú âÞòëg3&ξ ÛšäË.¹)¶b× _6|YÙÁ²ƒeu@q°ì`ÙÁ0ËÅÎxG¤ìïðPf—G¾¾s†¸·üÚýÀ̇—ÄÛM„½†æ :–¬]²vIÜgCßi¾áwý{Š{˯¡&ñ*êÍk]þ9`¡ï™@4·åÜ–s[Ææþ´}ôM™]E¿enhÓ`âë]W¥¤Ç«Õ_ÆüeÌ_Æè(€š(Ìrñ&½V׺3wbVƒU w7ýöþñÝ}~÷Ùš°¿ÐQDMiZiZiZÖô¬éYÓcï_M¾Óxnƒc%O½8fÐ Ño¨C¨Il­B C=õUm €éÔÐSCO 6 m@Z¼q-óݬ’Zýß0>gÀŒ#é3Û¯>/­iýKëõ@MæºxS_êÔá9ãgõ]µh÷óµ3úÍ8゚»1^}ž"ì/ôÑT<²xdñÈx÷²Þ·uiÙä·³íúÁmjgôÎ=Ô!^•B õRí!€ìøÖã[o­_¡?¯¹æ'™ª=ÑoéÂ)oftk“Þ¯´0^M[ýØêÇVë€Df¼¸1pãai×d~úè¶?¬­=Ñoú¿ÜsjíÒŠ÷ aO¡ˆ¾}û÷íß·¿â¸¶= ηâè7ÔMÿÔ6`¨ñÞêóVŸ·úTü²ÎÎÍß)è³ ±£ßO™tõàëG—vú¤Ui¼:ÜóÓ{~zÏOõ @¢ ó^¼iðk·gÞuõ³W¬Z>û‰ýöÌûÑVî¨xöz€šå…/¬xaE¼»[xäÚðÙÀáã½ásj¥gj'0$ˆ7 Þ(x£ â—x–ÿóàî]ŸM¼è÷ðïÇìì—ÞjHãæžwî³—Í^6{YÙ‰²e't @Â:Qv¢ìD˜ýâM†º5}/ykÆå÷¯)xÑo§:Kïø;Oý†½ƒf æZþúóן_ñýnë å9÷%^ôΫâsõÑ'µ™Ê¡•‡VZYñ8$¥ÝÔ¿x÷ȸWÔ«éÑï/¯½rgŸïs˜óÀ½PÛ„9°âY1mÜsûÔôзÏË…lÚÔüÑ^³û5¨ø|Ã~Ao*~8¸sԤїž<ñ/;Æ^_sCßpüá\*>_Oý€ ytæÑ™ÝßèþF÷7* é8ød·Ne ohS¿¦„¾ûÇ]saæ½}7´,iZTñÙ=}ìécOÓµY˜ +ž›dwx¿ûM½÷ÞÓcMa‰~ë¯j°»A§¼I9?êWñÙ…}AØ#èOÅŸ \Þ–vËꥯ¬YÑo8æÊœÏú¥<0$¬Ïv|¶ã³G Ž­Ì˜øìÿ2´×Š“u&ß—Ý6j¡ï¡1cfÿL—×Û<_™symúkÓ_›®Â|X™I²å'»ßþ×û^nPÔBßÌ+yxçÛ]{LëuÿªÊœKØ „} ±,Y<2kzÖô¬¿sÇゥËð&/ïþÖÏ û^W¶f÷üœ^ }×잟Ó+[8ΊÏ%œo8w=@y`¨6°ùƒÍÔ¯´Â´þo§=óQ뉥ƒ–ž«ÐwÛßNÊØtUݶÙÉÇ*sÌyyy–}Xö¡ Ài„Y1Ì•™0›_ÐcÅ+{Ý‘µü?ÎUè{ùÇßôûÙ†\·¼`uåçù0ÿ»âÔ6¥i¥i¥iKÖ.Y»dm¥þã×¾ä V®™2¿sÏewæô>¡ïÆÝ…9½Ã1„ã©Ì‘‡s çëºK µHIï’Þ%½§/™¾dú’Ê¿x”ÖºÙÛWý쟽ڵà^órVÝê z?yjÒ°Á_øïᯤœTÖmjʯ+lõÖXàŽ‡v<´ã!×€Ê 3d˜'+?~¶Ú=xÏw.î~׌{–^rÅ/–nϩ޸7ý²ùùëºuÜ;ñºÛw_üËÖϵÛSùc s~˜ù]_8Üúpëí³÷dïÉ®ÂýtÈ ý®lQ´¶îüÇ{þQ7]aíIDATîÈkßìÿjõƽáw†ßþ­Ê[8—p^®/@-u ï@Þ¼Ü?çþ9÷Ïõ¿Ô{/y6éÙIÉÝš§Ìzpÿ‰iÖŒ¿úñž?Û|døÒ[lm–»9ã§/¶Ï=?£Ñ†5ßl~ÙúU“sºv;rÇcÿqék9{Só“§Ö?«½ú׫}rßÉ}'÷¹š|1až ³å™L§Íîþõ¾ÿÕ¶}îüï½Òù¢)™³^êÖú–v УÝm³~´Ç]·¯[Þ®ûwn=ºdH—SgÏoßá+c_¹ey«Gþö„¤:Éw¶ºä‹ý»až³½« §q¼ìxÙñmK·-ݶ4õ@êÔ_ìžÛû+i;›<>­åµ»Úe,ÛqÛ«]ÓžûæuzmÜòв‰é·~¼|_Æúðuøóð=áûÃÏ~Á×ߤH=Ž?œ‹KJe€€ÏÃà¼iyÓò¦Õ¤äqÉã’Ç­Ë[—·.ïÄ«'^=ñª«@õ sf˜9ÃüÍÙ8ÌíB_¨²ä²ä²ä‹v.Ú¹(»Nvì:Ѽׇc ÇŽÙ¥£ªÀÀÿR²¡dCɆµ3×Î\;3snæÜ̹çjؽ3÷ÎÜ;s÷7ÝßtS×€³/Ì¢a.=WSq˜ÉÃ|fuתˑ‹Ž\tä¢ÅÅ‹‹'ÏKž—<ï<ö0/y^ò¼p áx\Μø;>Lý0õÃÔmv¶ÙÙfμ9óæÌK_¾ }Á™¸ †5Ö`Øø¡ã‡ŽúÔ{O½÷Ô{oõz«×[½Ô€h ój˜]ÃfÚ3ŸÃŒæí0{‡9\Íàl*Î/Î/Îß4bÓˆM#òŸÈ"ÿ‰”…) Sžù½>üžð;Ãïÿ–šóeÕlßÁ}÷ܶwÛÞm{wí(ÚQTÚ®´]i;• ö3p˜‡Ãlæd•€Dôn«»­î¶º*ù%€*M`¨20Ñ$€*M`¨20Ñ$€*M`¨20Ñ$€*M`¨20Ñ$€*M`¨20Ñ$€*M`¨20Ñ$€*M`¨20Ñ$€*M`¨20Ñ$€*M`¨20Ñ$€*M`¨20Ñ$€*M`¨20Ñ$€*M`¨²'W>¹òÉ•ÓFL1mDøúðG‡?:ü‘Êpn €„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€„ A€Äÿ€¤Žõ?J%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/dematerialize.png000066400000000000000000001274261431412030200262240ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTçûÿSL3QÀ‚н£X°‚±a7–Ø5¶[ì½a¯coAÔØPc‹=–ŽJDŠ5öŽk¬|ÿ¸ýC~ëòFaawx>æœ99†Ù½¸ïñz93ib¦†Cæ@ &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A Àá쯺¿êþªaaaáS§„Oá˜l‰5 jÀ^×½®{]÷õÝ×w_ßQ/¢^DqdÖÄ!æ 1wˆy„#°Eô¦DŸJô¬8&ÇG Àîn.¹¹äæ’m{·íݶ·—{/÷^î97æÜ˜s£K¢y†{†{†õê1ÔCÚ+í•öÞË~/û½ìsp^OŽ=9öäXDˈ–-§¦›šnjº€íÛ¶»$‘6z½¾Êg•Ï*Ÿ Ÿ\øäÂ'spvb<c»ç“jÖs˜ÄÜ$æ)Ž98/Ñ;}$ÑSý¥ÄÏ¢ß%z_¢&zbs@ò#Ä.½|ôòÑž3eé¡#&†Ä”ö¾vá‰Rõ®Ÿãáõs·~ãš<ÚdE×Q³|W:–˜Í¢‹v.Úù¼ÙófÏ›ñm€½‰ñVŒ½‰½ëFV:–sÖ÷®£<®øq\Sï–NãáwCë±ðD¹üúɘr-®óW–¹»î䔇>Ug´ì¿ÆëXÇF {ä[•;­GXƾ¶_1߉¹o’‡èóˆžÏ‡Þ¢×$úN¢%úQ¢7%úT¢g%úW¢—%úZ¢Çõaû½5Ñg=7¾MÀ¹Ã1xQÁQÁQÁ~éüÒù¥Kø‰¬·GmÙ#ÓÏu)úÅÐqáù|ÊŒ{êT™$[جìòi!OP¤N‘o+ÔÌúד5jÕ4êú¹ëç®óïô ‰=­ñ´ÆÓc–ŽY:fiÂGæŒ=å2æ³eJÎúå#/%ä=·š×j^«y÷]î»Üwá€Äc©W279x)wÈ*Ë” ù’6èMøúîEiIÕÿסwX±­ ŸïÄüÈ7‰23vfìLÑÃIÐà»ÓµŒK-Ñ#ý¢”êV‰^™è›%ä‹^œèËñµŽŒމ€MWk^­yµ¦çeÏËž—ã?%õ\éÿgÖ=ôÍJ¦=5 ÷ÚòÚòÚ2±ÅÄ[$¤Q¼g%“zú_ìµïë” }m­Ë=›ùfG³|mjK­tóÏðSá§ÂOQð¾Äø™‘¶wžV} N½:gG³Ê™R*ôµµþwõ¾¯«/^óÛ¤ž¥''䳈¹RÌ›Ô$œèÕˆ¾Mü#­èÿˆ^è 9Z·JôÐD?íôÜ.{^ö¼,ztÔà˜€á˜€¼Ã¾Íû6ïÛü?žÅX,£ìÖ5íï ‹wt´Óèÿñ/.ÿ Qô»„´fÎ<{ðìAêâ÷°ËÃ.»ÿæ…O»ºƒ*,ømÎ_-ôµgŸ¸%ÒãŸÍ•>‰ÿÓ-Ž]»˜r€cfüãj¿*}’³éÅ,["¿uq´Ð×ÖúÕ¢¿ ޽fP¥â³ãÿtbÞs(õñý™„trDÏǹúT¢·&úlÿãN›÷mÞ·™z 00€ÿøãÂþ¸ÿéfÝUC2å¿;úé‰ü~[œë”:îzÄ‹Ã%}Û¶}ž;_üŸ÷@†d 6ÀÚ57ÖÜX“qXÆa‡ÙE³Vð<è]¹Üìê6‹³„¾¶Ö%é_æ×ñÏ#o޼9òfl§ØN±¨øN±b;‰q2þ±t늙_û¥u–Ð×Öúò¤m–oWî]9Û*[ŸTÌ¡b>¥@ÀšèÉÄ?kˆÞŽèó8oŸJôÙDÏ-þÏ+zwÔà8€á˜€¼ú ôAèƒøO1»¯Úè]¢ªóžLÛZ·»TtSüŸÝÈdd22Q' \zuêÕ©ñœE´Ñï·J—5‰èâìÑoÜuù…³cwÞqÿ¨`ŒWM[Ÿ½Ï¨>£úŒŠuuu¥Z@Œ‡bl´5rúæöª™µÌK;ïTŽtöè÷?ëQ]jxNÿ¢ßo^ãŸ7ÅÜJ±€ ú0ñœ¢Ÿc¾>•è¿ÅÿÙE:00€Ø£7ŽÞ8ÚÖ e®7Eódþjh®ýý}2›ï”:îºïöÝãK-Šÿô:¢xDñˆâÔ €Ô,zNôœè9ñ–Þ>C&Ìßo¦Ð×zÐxÉÎð¯òÆÖZÐâ™­ã0øÒàKƒ/Å>Œ}ûÊJ=Œ}ûPŒ‡¶FËž-žÌùÒ'ü«@oSE¿VkKÀüýežÅ?‡Šy–š‰ÞKü£¥èᘻO%zq¢/gë8ˆž5¤,`8&` U Ó´0ÍÖIdñºÕܳ¹ò¨»ïsŸRÿçô:ÝþF>é³ó8çÖÈÖ‘9×à\ƒs ¨©Í“kO®=¹–×;¯w^o[#¤Ÿ×„/WÝ6wôûŸµß²q¡…û·Üß;¯­c2gÝœusÖQ?R'1Ú!§Ìì·ØøØÃ¡5*š;ú»>r~ÕíŠKm1ÏŠ9—úÚˆ~‹­RôjDß&õô©D_NôèlÑߣ~€”B ÇD ¤R—Ž]:vé˜ÍèwIµ5Ù¢G—Œ ÷ë“zN©ã®‡ç9ðÄGÍ2У‚[i[Gé‘Û#·GnÔ€T¡OlŸØ>-Æ·ßb¼­Q±LÎÉ­•SQôkµ.|­µwŸÇ¶ŽÏî»_ì~A)H=ĸgkTœz­Ïc¯t©'ôµ^ŸÐ×Êþ{l1çŠù—Zˆ‹Íèw G·Ò¢W“:ûT¢G'úu¶Ž’èõQK@ò#†c"RK^,y±$¡ü…ò²žœòHÅ‹eþmdÔÑ~¾¯Sç)uÜõ?÷)¥Ú:±nþ¤ù“æObÏÄž‰=C]0·…m¶]ØÖæS[Ží³bfjŽ~ß®–-‰/ШÁ­Ž]l>ß1ôjèÕP* €¹‰±ÎÖH8´~Ç.…OžŒ¯˜š`±>8oÅÌ kl+1ÿRQLîLì™Ø3¢Çbk<ýúT¢_'zwÖGIôúDß²’00êŒ4vÐØA6Û1gÃ%Ÿ&œRÇ]÷Ù´sO©@[Gl탵Ö> ®˜UÔݨ»Qwm%?ë»zÚm¢ßÿ<øäÒ– x|^z©ÿ ë#Vö󲟗ýüMÃ7 ß4¤º˜ßÄXg=ÖþÂEŽû¯/(xè7îzSô´Û¾]mͶb.¦º˜•è«ØEO†ÞÔ^v6\òib눉¾u$'लcãŽ;6Šc8qÍÄ5×ܯu¿ÖýZ™C ¤"‘Û"·En³u‚أ覓% N£m­Û¦ÿÕ¯h[G/z\ô¸èqÔ3yÝãu×= *t¨Ð!ëq¯ÀO uÜAÜkk]±Ø‚ûJ[³Ær¯å^˽¨1æ#Æ7[£ßƒO•:U×÷ÚZÝÜqGá{ÖÇMÌÅb^¦Æ˜‰è¥Øš5D†~”­µèãÙ:z¢HɃ8 zP_7~ÝØÖ˜Füa€TáMƒ7 Þ4(²¶ÈÚ"k­ÐïžýSðsN².ß§Eœg­aûÈö‘í#©4fZ"´Dh‰wœw_wÛ’q ÿ«ÅëöýAÐÿÚgÅèÒK7Øú ̰;aw¨4æ Æ4[#^ø•¥ÊGñÆ¿~>dßÕfêœq k:ëc(æe* €™ˆ^Šõˆ'z/ô ²==ëc(z€¢H¥öFœxq¯ýap©ÂÖ¶[Ûn}dzÝCsÖu[0úƉ/ý6pÒœõðŸ#ûœ¶ùï+—G.\N½pv‚? ¶5ÖùånÕfÂÝ„¯ó­[¼M=ë#Ùoj¿©ý¦RoÌAŒiÖc]ßQmêÊD¸›ðõ‘¹«6Wœaks4õÀÙ‰þ‰­±Nô^èA%d-zz¢¿g}$E?zì8ñD +Â]—# Ž0`r/£_F¿Œ¶5Dv±Ñ(Ñ–Óå÷]·.6§¨g6ëãYͯš_5?ª€³›¹yææ™›­G¹¼r̓ÍctßûvÐU-¯¬µ5_ ¹r5„ªà¼Ä8fó¶Ï#•µU÷ë¾ïúç»Íc ³>žbަê8;Ñ?±åD¿…¾Óû®EÏÖ\,zƒT`?ÀI‹08©&·£ÌŽ2;ÊXˆ¥Z×ê•ý8§È¶ÓêÄ1¿ÈŒs²x»ú[Û“ËN.;¹ŒÚàŒž~ùô˧_Ú:™.;·ÒîIº¶.Vù'}ä\ë£: ×€\rQ{œ—ǬǷŠGÎ-ù‚(÷ÃÖ·îížTÅæ³äÅ|MípF¢gb=²‰‹è·Ðwú°µèõY[Ѥöû!¶ÂàÄ Ì+"6"6¢àÕ‚W ^µûÔÛùu©œ'fÝ¡ÕâgÅ<­m‡]vuØEpF¿Oø}Âï¬G¶¶êø‚71kÿ9‹ÚíýÔÖ_Nbä9F¦81vÙÙž5ÝûiõFD¹‰Yû¢ã‹"Y[1_Sœ‘虼£—Òjñ³bžôš³½>ëc+zƒ¢OHö@œ<ƒß0`Zgæ™wfžõWhYÙîó9-N‚ç¬\:‘ÆoÍ›Ý=ðüÁsê€ÓØ»'vO®š¹jæªùŽkKÌZÿgYBÜį‹,ûaTÿ;ÖGx•×*¯U^”!ç"Æ.ë1mÆæþw¼®ß&~}mËŸe+7µ>Âb¾s7uÀYˆ>‰­.Šè±ÐkJüZôý¬°èR‡€='?Âà„ LkdÏ‘=Gö´æ:å]~Ä+‹=N1G,à×°Ú†îEòVÏQ¢`ÙLÙß>ÁeМž¥íwjÛõóß—ï(ö•í«Ü{2¦¯°µUP®Ã÷t÷ù×Þ'Ö ïŽ©Sðëã¼>j}Ôú(ꀳ¸PùBå •­G3·ÒºÿßöˆBŠ,ñÝß¾À•F;:íÎô8÷°ü1b%‚z?›*Û/‚õ™1êÑÒÖoo4÷‡Çð\å­^£n³4'»ªª½à ®s‡ì~Ç3 u)Ô¥P—Ø7±obßPœÀ›Ø7±oÄØe=¦E×ß}¬J;{¢/Zío_=vD`§ÝEÆyÉ“ùØãÆüSeŸýö bÇ/m]~ØW¾K¹þÊÔ°[ÿfi T¹¬ªÕ²Ø;®]Ùÿﯬ³˜»)FÎBôI¬G3ÑWqäHõíøÿiÉÎY¾vüXôý¬³èR‡€=§,Â`[€3vcÜ߸¿q·5´tl‚Ÿ]âØ:]ÞÊ?.î¾ò”󪞹ÇÐ¥e‹-°ß©mg[üK~!öèúOÆÒ.¿Ç}ö>±¼6ìVé`ëãÐ9 s@gª€³˜UeV•YU¬G3ï‰C§üšÅQháV5zﻯ,ó ,.:Ë»ãÐl &Ú/‚õ›6±Âšowù—[ËŒÇ}Ésp¶Ç%+•«a}´ož¿yþæyª€ãã•õ8Vm@¹ì…þ_ÇÞ{‹mýÏ2&kÁP`»Üz׊Ó^µ¬¹èR“@Ò"v|©3 &L¨Yp³àfï¸)ñ°}šù,Ož8ybWÇy'½kí¨Qòõ~§½˜öbÚ j€#;8ýàôƒÓ­G°b+:¿]8yàä¼ý²C¼“’ËúGÌ´y[¶Šo*¾©HepLbŒ²5‚Ån˜YÃ/yàä‰]çüÖxtáR½¬÷+æq*€#½ëLôR€í±=@ëc.z†Ô$´€Kê ƒ €séÛ7¶¯­AjlƒS£ÊLÙØ5(÷á>¾ÝsõôÌ—éŒø™âTÛ›íÁÿx~ÉÑÈ~ óE—ú7KË·±DßoÏd+5fÑÉ~·!x¤ŸïAëýf̘™ÂàÈ‚¿ þ&øë¬LÁÉk/¦lìê=kèº_«Æý¿Ç_õm‚n³¬õ:ózÜ×úFŽ{:Îq¢è<¯»49c½÷»ú]ý®NepLbŒ²»º¼lr&ÿ]lj]]ÍÑàw×^ôßk½_1S™™èX`¢—Bl—uƒS£Ê´9ÇõíÛ—Ê’ °ó2wL ˜Ê“éO¦?yÇU\Þýë´ððvœënßþïq.§]Ê$äçk-î·?_´ø™Ìi²ntÝÞ¿²äëÇÖ«RàZä1§Ž—)ãºÀm·Ëìw5ƒÀqµkÜ®q»w<ªâÖàÅÚ€” €Åy36ÎÞ,gÃ÷ hs¯¨R¤A{ñóîy }ïµÏÖkS*ö:Ñ]›ÖzïÇrË},7• À1‰1Êzì :!­÷I3Àï»}{ö‡áÚ€ju¬÷+æq*€#³»DÿDôR€í·ý@ëã/ú‡T&`¿QŽØ™/ &LåjÑ«E¯µ†êÎü,ÿ G»ñrÜŸt¯”#Ømàà:aUJû3½n›_r¸Ûw_ºü-~²I­I JPÀœì7£.¥ÕΗý)0çRè»BßúÎzì ¸³téÑŽpãåÿÌߺV|\ü[ö¯ÒÒØâz1ó^÷žâU…ÿjÕgŒ£À¾õÆÖXÑÚzï[>ßòù–Ï©LŽIŒQï¸qí+;Zü$ÔØRí~ükcÿ¢ åÖeY•¹¬ë4ñªwæÌ7ÃÑà7ÍŒ¼n½_1S™™õØ%ú'Σ:o,úÖÇ_ô©LÀ~£°³3GL ˜Ê‘ýGöÙo=ô´;oŒçTûPŠ[4¿oìj};踯ãy"ÈÏ(|ºü|÷7âÏKÞ­¹)ûŽü4âÀÕ=CòÞ%àìQÉxÐãTîÊö >Š,ñÝß>á±k©ß;7á?_üa¯*S¦ü?ä²Üå`¹êÓlíhO#.·yfžíå­÷>'Ëœ,s²P™“£¬Ç®+…¶—ÿV³_üù¢ÕþöÕc“6v½ºcGßÊ9 …æÝ“ùí?¢õ¯]zmöôOç‡õª^È1ŸFœhîÊ™úó7Îþ7Ñ?!¶÷Zô­¿èR™€ýF9`3qÞ0˜0EVdE¶n:‡­îîõÌ~'”ƒNCJ7þ°ØÕúvÐmþžÿ…gèwýF<-p6îõÁƒ:é›J{½ïµÅÉ7þkü”w]EGep®¿¨d?êý´b¸ý‚ÏòSfÿµsuÂcW»íϺÔÃ#!?Ÿëcÿ´µÔ·Ÿå^é†þþ ¿Â89àŠ® ~“/[ï}¨7ÿ±Ü3Mú°Øõµ×_óW4[^³fžÅÜ®¸ºlU/Rî‹„o3¥à6ÃëžÍÛ„zàìDÿ„ØÞkѤÞÀìØ¸cãŽÀ’X¯4Û¾*ÙÞ·}n¹næ/E‚Ý7çìè"öUÛ¥ÿŒüo÷›ð­Ùº´o÷r”xß÷öS³•·½‚\žº.sùÁMËd¸7zþ1ùPÆÙÂr¼½¥sa—3z¾}Îbü[(yÀäYË­ßmÜŸñjØ-çØ[âÏE ,"áø·\z舉!1.=]}]§ˆW=×é— ´âYÂv €'/ªv‚z`ϲ…¨^Í·}^Ûnò¡ÒwódÈ17㱯I3zÎ(öv¿ï»ÍÁ3;¤+üŸ[(Ï_<´y‰Áï»5ýdHL¹®]§¸eÞži¸kóFAiKN϶_ücçFÕó]¥Þ8;Ñ?!¶÷Zô©7p/6¼Øðb0€$f+€{vßš¶d‰¸{©Ÿ}Ø¢ÝÆ,:YÃïVbN©ãjÞã—e…O'fk™¯gÿÖíí¿îﺴl±\ ñ³ÇÀ~{&úÝ;î^Šlþa뀒—–hœ ¸4b±ËÞnþY¢³^»¸?“£t™U~|û)¢+]¨×Ëúgâ¿Øíg÷ÙÞÆÌÞ‡f[0‘+€ !ìqpä¾ß½ýkÅÝËÌÏ”ôzñ&çÆ§ßwk‹ªé%¥¸[ë2«É¤ü'óÅvrÔͶÜí¸øoÉ{ÁIJ%¸âÇÀ\ ©M*ºXÜ……%i—9Çæ›sÌzp±Ç3€ûØíVj’õ¾F¬?´Æ·ú{oí£]µKµ{ÛgAÜzèËðÇ>m¾5BW¨Ür{®øã¨õ¾*^Yè§—Oøvâ¾Ö£ŽÏÀ€íâÏ+dš;z÷?.!®ûÜÅÿ-9§§™ž º:ùÒÒ óf ÜÕ´úÛMÿëv;£ì#ž°,kò?¸]ãvÛ5¦2YXXsc”õØegÿS飕J[ïëQ˜^¾ÚØ„oÇRyþ_eþ·z[¨üߢì7ÿ²÷Fõ9öÞDÝulÓê¾ÛÌ–QvÍóWeYËÇ$ÿ3€©LçúÏNÙg‹þ!•ÉÂb¿QnÁg >[ðGÆ|ËŸÃþöç°nwû¸ÛÇ ~Åϧ¢g°‡#ûì?²ßzˆi3vÞÏ©ö; .úæ[·l_ÅÝã{„µž'‚üŒ"JÅÂYß>Ó«ä5rgÿQD¿¶Í-FN*XD¼*ϺâßdtÊRº±½O¬W÷ É{×úøS™™õ¨•ñ Ç©Ü•íy¾ ˜ï•nèïw ßBÉ/ún˜öøíËzºúºNy;ù±ëð_Þ¾ÿÙÂrÌ7NÈ6=ƒÛO|^¼6‹Q°d±úå§Ìþkçj{?¸Üæ™y¶—G;&Ëœ,s²P™“£¬Ç®+…¶—ÿV³Gä)¶_k¼¿Ž£ÿ=Çþ߯=¼®³ÿíœþÙÛe|û·•Fžª™¤«;vô­œ#áÛ±^ÏÝ3ø|‰·Û,}±X}÷{7&ï\]Y±÷3€óÍ]9SþÆÀÙÿÆ!ú'Àö^‹~ õñýC*°ß('ÂBŽŒ9ˆàv⚉k&®Ixè+~>ùC߸€S¹ZôjÑ«E­‡›ºó?ËÃާ‚¸å²ˆuòÚz¾CÓxÛ|ÉÒÒã ·"ƒ:é›J{½ãЍG!ã‹nNÈ6 †ø­s¯$^ÕdϤ{…¿o„üaëRZí|ÙŸÒŽà\ }Wè»wݽ àÎÒ¥FÛ/~{‡†ŸÝGd[°õ·ÛÍOÐm“{…Ü ëåz1ó^÷žÿ¹jy–·WãmkæÏ:ÿ´¾šðh9«Vl°OgñóÅövé2zëûÆÒ¶ö­7¶ÆŠÖÖG~Ëç[>ßò9• À1‰1Êzì:ØpEë Áö >ãîKÜrùµ×_óWØúùèÖ»ÿ©Ò±xÅB—³¬Ž{…îÞß—*Ÿ51ѯXTðéœýí}#–~6zk©‰ßæÿ¸æ¸ùÑ×­¼˜Ç©LŽÌzìý`{¯E?Ðúø‹þ!• Øo”#vvÎúÆE ˜Ê“éO¦?™n=ôx÷¯ÓÂÃÛ~'”Ãzý%ùL°ÞïÿxŠð¹­‡J6qÓ2.Om…µÞ»êóxûÜ/=zg|<|ÿAwŸHwk¿îßâ'ì~b=æÔñ2e\¸ív™M À¹Øº™gÅ­Á‹µö>+¼ZÐZ~Ç¿Cÿ°9뜢WK¯û'>3F=ZÚúöæ›}ÌïËgÙ;úk¯ݵ i­Ã±ÜÇrËMepLbŒ²»B§NHë}Ò~ñçý òÔªýÞu¦ýÿÿIqcçjGÊM÷ÐâþdÜg'm ñÝòYÚÚûÚ߇áÚ€jul=8€ÊàȬÇ.Ñ?½`û­E?Ðúø‹þ!• Øo”#vFæ}ã"Ì¥olߨ¾¶£± N*SÐ'”â™» €GW¼ã78îuº^ͪüœ-hl†Sé˸XŸdgîŸm°ë? –ß7ŠNüzdà‘~¾ßqS£Ì™3S˜Yð7Áßc=‚•)8ÙcíE{Ÿâ™»‰ €KäéùÖ[ÈòU¾EZ'&NNžkÅ:Ï«À.MÎXïý®~W¿«S™“£¬Ç®./›œÉ׎׿æ<Ð8ðtBàö_}·2_¾¸?óãáFóó½z¼]RmדPcKµû Y'<¶÷µ¿b}âîÚ‹þ{­÷+æq*€#½ëLôR€í²npjT™‚¶:„¢HeI…Øy™/ô‹0¡fÁÍ‚›[LÃöhæ³æ¢gHMI‹Ø¹˜;ô‹0¡•CW]9Ôzê´kÅi¯Z)wßµ±Q‰Z®ÿd,íò»ø™ú¿ ÿ©ÀŒøcZq…±géŠ÷³þçúæ Ü‡ûøvw„¸á‘1Y †Zï7b\ĸˆqÔ$Gs:ætÌ;®©Êþ]©–å·:flk eKLmûGæä'ï}ì>óVZšZï·é–¦[šn¡&8>1^Ycwü-M«ümŽ8þX7ùàÀšå·æÈb½_1S“™èX`¢—BlµèZsÑ3¤&¤EìøROè0`B6\Øpaƒõ€Uád«Ý¹;ÂÀÊZ¿*áW ÛûÄ:çâÂ;3͵ÞïãÙg?žMMp|yOå=•÷”õ8æ_3¤·qÈ1à¼ÕkÔm–F¼6Û©WÊMª ÙÞpÉ‚ýÒMïi½ßõÝÖw[ßjàøÄxe=Žmž9½§ï´” €“v_ŽðNž„‡ª=³Þ£˜»©FŽOôF¬Ç1ÑK!¶ÇZô­¹èR“@Ò"vL©3ô‹0¡7îoÜ߸ÛÂF :6Á¯tÊÀÉsjž<ïdðÚ°[¥ßqÃí€Î:SœÅ¬*³ªÌªb=šyO:å×,Žû÷ ¹ÖËíg÷ÙÞÞ֬蘻ÿÅYàlKV*÷Žðàæù›çož§8>1^YcÕ”«á±Á°ã¼éÖ¯Yʶ°Þ£˜»©FÎBôI¬G3ÑW!NªµèûÙ|ÜŒû÷7îT#´€¡o\À€iì9²çÈw\]Ô)ïò#^YÌ‹›B'ç;ixwL‚¼ã*®¨õQ루CÎâBå •/T¶Í<ÜJëþ;Z앯ëÔ±^o_ö—[ËŒ‹›*¿ï{ðw[¸_’œp×¹Cv³Þc¡.…ºêû&öM쪀xû&ö»¬Ç´èú»UigÖøñvýIµ]ÉùNjWöÿ;Ç«w\ÅUùBå •)FÎBôIÞq#è»cêüƒ8Énþœwù¯w<2@ô ©CÀ€S¡¯-À€i™wfÞ™yïh1/+;Ð}~òÀ=\7­+±gÄúCk|«ÛïÔvä#|Ïõì¾5mÉÕ6t/’·ºØ{æ4Y7ºn·_<úÒ‰4~ëlM!ž?xþà9uÀiì‰Ý»'WÍ\5sÕ´ÓÊ—˜µþϲö€ýJMȲêUÅ+ ýôòq²b‹_G©ŸúWiilñÍ>æ÷å³2žÏñMî‰âUyJT=ßh~ƒ[ÿÅ‹Fî-æ·gâ¡ß½ \i´£ÓnñZ·ôYZdõ´w\dÙ£úß±þ쫼Vy­ò¢ 81vYi36÷¿ãu=yà#V½ªú(L/_m¬ý"Øg“ö«Þ&rßïÞþµFvÚ]äí“,³wÏêéÖÅ~ðµ-–­üŽgÆ‹ùZÌÝÔ!g!ú$¶º(¢ÇBœøµèûYaÑ'¤{ N~„¾ A ˜WDlDlDÁ«¯¼j=Øõ©·óëRì ­ÍÙèYÚ~§¶]?ÿ}IñŽÖû­Ò«s¥<ìwhµøY1OëývØÕaW‡] gôû„ß'ü>Ázd+0°a«Ž/ì %‚z?›*ÇýÉÂÿ¶îÞ·’õOºùg‰Îz½lšÿ;¸±EÂ÷ë3cÔ£¥­­·–ÿÕwg;¤³_ì?gQ»½ŸÚúÔ1rŒ#Sœ‹»llÏšîý´z#{ÀÂÆüSeŸýö €Ã‡/m]~Ï;n[:³CºÂýíû¢ã‹"YïWÌ×T g$z&ï襴Zü¬˜'pbÖ¢×g}lEoPô ©@À€“¡ïû"LnG™ev¼#š-ÕºV¯ìÇ“öDsÌ¢“5ünÕü³o™|‹s,+”&Så䀳åŸÑ7àT»ç¹‹+ƒí±Ç1­Nó‹Ì8'‹·«¿õ±=¹ì䲓˨=Îèé—O¿|ú¥­“æò±s+íž”ThÀ¥¥AšÐìôÏ­2çËóu ¶à¢ç:ý”Ö%ÄuŸ[ ø™¬ežÕüªùUó£ê8»™›gnž¹Ùz”Ë+×<Ø<Æ~éÿ¸‚¶rHKcK…ªóÜöǽ†8i¯H¶Ç;¯Xõ×òÊZ[sñÕ«!WC¨:ÎKŒc6Œ2RY[uoò?©7yÖö»ö÷ç»Íc ¼ã™ñbަê8;Ñ?yÇ=äŠÍ)ê™ÍÑúKâ†õŸ/VÀ1;`¢¿gk.½Aª°à¤Eè›T€TakÛ­m·¾ãDÐ=4g]·£oœøÒoƒYcà¤]ÿ9b°Ïi[ÓLäòÈå‘Ë©7ÎîQð£àGÁ¶Æ:¿\ãÏ­ÚœR1°3®ó­[¼M=ë#Ùoj¿©ý¦RoÌAŒiÖc]ßQmêÊdÖØë#sWm®8ÃÖ,,æhê €³ý[cè½ÐƒJÈZôôDÏúHŠ~ õØpâúÚ0*¼ið¦Á›EÖY[äW }÷4蟂ŸsÒœuù>-êä»q¹×r¯å^Ôóã›ÍÛAªÔ©º– ×ÖzèæŽ; ß³>nb.ó25ÀLD/ÅÖ¬!ú0ô£l­EÏæ=ê¶En‹ÜFɃ8 zP_7~ݘÐ7i©ÎØAcdk0z6\òiÂitÜuŸM;÷” ´uÄÖ>Xû`íê €YEݺu×ÖXò³¾«§Ý&î»8¹´åŸ—^ê¿Âúˆ•ý¼ìçe?ÓðMÃ7 ©.æ#Æ71ÖYµ¿ð_‘ãþëË $î»Þ=í¶oW[³­˜‹©.f%ú*¶Æ@Ñ“¡7w-zw¶Ž˜èûQW@r"N*q¯&ôM<` Õy±äÅ’KòÊ_(!ëÉ)T¼XæßFFíçûšSê!îSJ?´uJÝüIó'ÍŸÄž‰={†º`n Û.l»°­­ñзåØ>+fýV X¶$"¼@£·:v±u¬®†^ ½JE071ÖÙü'§õ;v)|*öeDx@¢ßƒóV̬`ó9gbþ¥¢˜Ü™Ø3±gDÅÖx(ú3ô©D¿Nôèõ‰¾e$'`8&` •ºtìÒ±KÇlX_RmM¶èÑ%#Ãýú¤ÎSêáy<ñQ³ ô¨àVÚÖQzäöÈ푵 UèÛ'¶O‹ñ-Æ·okT,“sòGkåÔ¾ÖÚ»Ïc[Çg÷‹Ý/v¿ ”¤bܳ5*N½Öç±WºÔýžÐ×Êþ{l1çŠù—Zˆ‹­QQôgD¯&uö©DNôël%Ñ룖€äG ÇD ¤jaZ˜¦ÙŒëVsÏvxäÊ£î¾wRÑtÒíoä“>Ë1snl™s Î58×€úÚ<¹öäÚ“ky½ózçõ¶5BúyMørUjº)´ß²q¡…û·Üß;¯­c2gÝœusÖQ?R'1Ú!§Ìì·ØøØÃ¡5*¦žè÷ÈùU·+.µuLÄ<+æ\ê@j#ú-6càcç܉¾M*ºêwåQwß;¢GgëȈþõ¤`8&`±Go½q´­“È\oŠæÉüÕÐ\ûûûd6÷)ußí»Ç—Z䯈âÅ#ŠS3R³è9Ñs¢çÄ?Zzû ™0¿ÉŸõÛxÉÎð¯òÆÖZÐâ™­ã0øÒàKƒ/Å>Œ}ûÊJ=Œ}ûPŒ‡¶FËž-žÌùÒ'ü«@osG¿–€ùûË<‹ó,… 5½—øGKÑÃ1ù% ¹ö÷÷É,úr¶ŽƒèéQ3@Ê"†c"ðVèƒÐ¡â?½î¾j£w‰ªæ;¥nw?$¨è¦ø?»‘ÉÈdd¢N@¸:õêÔ«Sã9‹4h3¢ßo• .kÑÅLÑoù…³cwÞqÿ¨`ŒWM[Ÿ½Ï¨>£úŒŠuuu¥Z@Œ‡bl´ùDùÜ^5³–¹qiçÊ‘¦Š~GEt©á9ý‹~¿yMŒÞs+Å‚èÃÄ?rŠ~ŽùúT¢ÿÿg}<êpÀpLÀþã \øãBü§˜uW É”ÿîè§'òûmqÞ“é/—ômØöyî|ñÞd8Úk7ÖÜXscMÆa‡efkÍZÁó wår³g¨Û,Îý–ü¥ý™_Ç?kŒ¼9òæÈ›±b;Åv¢Bà?:ÅvŠí$ÆÉøÇÒ­+f~í—ÖÙ£ßË“¶Y¾]\a¸wål«l}R1‡Šù”k¢'ÿ¬!z;¢ÏãÄOù}z"¿ßÑs‹ÿóŠÞµ8`8&`ï°oó¾Íû6ǺéV,£ìÖ5íï ‹wt®Sê¶(úKœ=xöàÙƒÔÄïa—‡]v   Ž\õôiWwP¥€¿Íù«€³„¾å²OÜéñƒÏæJŸÄÿéÇ.Ž]L9@‚ˆ13þqµÎ_•>ÉÙôb–-‘ߺ8KèûjÑ_ÇÎ^3¨RñÙñ:1oŠ9”z€ø‰þLB:9¢çã\}*Ñ[}¶ø?è×Q€£!†c"`ÓÕšWk^­éyÙó²çåÿÑÐ_éÿgÖ=ôÍJ‹˜+żI @‰^èÛÄ?ÒŠþ艾£u«DMôÓþGÏí²çeÏË¢GG މމÀÿðòÄË/OLÙ5e×”] igä*Wd¦ð¶Çƒgm”b¡o×·ý¢š—ù¥Záý.;]˸ÔJÈ;_¶2leXìÌØ™±3ùÞ 1öéûô}ºK‚iØ;¬‚6…´$¥B_Ÿëc>[¦ä¬_>"ðRBÞs«y­æµšwßå¾Ë}¾qH 1–Šq5!#p“Ó—r‡¨²L©/¥Bß»¥%UKü_‡ÞaŶ&|¾ó#ß8$ÊÌØ™±3E'AƒïN×2.µDHô‹RìŽtǃgm$úf yã¢'úr|í€##†c"𢂣‚£‚ýÒù¥óK—ð6‡·GmÙ#ÓÏu)úÅÐqáù|’øzÀfe—wH yúƒ"uŠ|[¡fÖ< oM£šF5º~îú¹ëçø~ i=­ñ´ÆÓc–ŽY:fiÂGæŒ=å2Ã×.«|Vù\øäÂ'ø+8=1ž‹±]ŒóI5kˆ9HÌGbnóÇœ—è‰>’è)‰þRâg Ñï½/Ñ=1Ž9 ùp8û«î¯º¿jX@X@X@ø”ð)áS8&[¢D ˆ°×u¯ë^×}}÷õÝ×÷EÔ‹¨Q€51GˆùBÌbáÈl½)ѧ=+Ž Àñ€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I$köIØ'aŸ¸@ª!rR`pzÀ`©.öQØGa…¥ K–Æxc¼1Þ¯×Ækã¥ñÒxi¼0^/ŒgÆ3ã™ñÄxb<1ÇÆCã¡ñЈ1bŒãñÀx`Ü3î÷Œ»Æ]ã®qÛ¸mÜ6¢h#Ú¸iÜ4n7ŒÆ ãšq͸f\5®WËÆeã²qɸd\2.Œ Æyã¼qÞøÇøÇøÇ8kœ5ÎgŒ3Æ#ʈ2¢ŒSÆ)ã”qÂ8aœ0ŽÇãÆ1ã˜qÌ8j5Ž‡ÃÆaã qÐ8hDF„ñ—ñ—ñ—n„áÆ~c¿±ßØkì5öaF˜fè†nè†fh†f(†b(†lȆlX ‹a1ö{Œ=Æ.c—±ËØiì4v;ŒÆc»±ÝØnl5¶[-Æc‹±ÙØll6þ0þ0þ06Æzc½±ÞXg¬3Ö¿¿¿kŒ5Æc•±ÊXe„¡F¨±ÂXa¬0–ËåÆRc©±ÔøÍøÍøÍXb,1–‹ŒEÆ"#Ä1BŒ`#Ø6~5~5~5æóùÆ_Ÿ«ÏÕçêsô9ú}¶>[Ÿ­ÏÔgê3õú }†>MŸ¦OÓÑÑÑÿOÿ?ýÿô)ú}Š>IŸ¤OÒ'êõ‰úx}¼>^§ÓÇécô1ú}´>Z­ÔGê#õ =HÒ‡ëÃõáú0}˜>L¢чèƒõÁú`} >P¨Ðèô~z?½ŸÞWï«÷Õ{ë½õÞz/½—ÞKï©÷Ô{ê?ë?ë?ëÝõîzw½«ÞUïªwÑ»è]ôŸôŸôŸôNz'½“ÞQï¨wÔ;èôz;½ÞNo«·ÕÛêmô6z½µÞZo­·Ô[ê-õz ½…ÞLo¦7Ó›êMõ¦ú÷ú÷ú÷zc½±ÞXo¨7Ôê ôz½¾^_¯¯×Óëéõô:z½Ž^[¯­×Ökê5õšz ½†^CÔõ@½š^M¯¦WÕ«êUõÊze½²þ­þ­þ­ èº¿î¯ûëô z½¼^^/¯—ÕËêeõ2z½Œî«û꾺î£ûèÞº·î­—ÒKé¥ôz ½„^\/®׋éÅôbzQ½¨^T/¢Ñ‹è…õÂza½ ^P/¨Ð èô|z>=ŸžWÏ«çÕsë¹õÜz.=—žKÏ¡çÐs躇î¡gÓ³éÙô¬zV=«î®»ëîzf=³žYϤgÒ3énº›î¦»ê®º«žAÏ gÐÓëéõôú×ú×ú×z:=žNÿRÿRÿRÿBÿBÿBÿLÿLÿLO«§ÕÓêŸèŸèŸèëëëiô4z-V‹Õbµ×ÚkíµöJ{¥½Ò^h/´Úsí¹ö\{¦=ÓžiOµ§ÚSí±öX{¬=Òi´-F‹Ñh´Ú=ížvO»«ÝÕîj·µÛÚm-Z‹Ö¢µ›ÚMí¦vC»¡ÝЮi×´kÚUíªvU»¢]Ñ®h—´KÚ%í¢vQ»¨×ÎkçµsÚ9íœvV;«ÕÎhg´3Z”¥Ei§´SÚ)í„vB;¡׎kǵcÚ1í˜vT;ªÕþÖþÖþÖk‡µÃÚAí vP‹Ð"´í/í/í/-\ ×µ}Ú>mŸ¶WÛ«í'bÐTMÕTMÑMÑ$MÒ$Í¢Y4‹¶[Û­íÖvi»´]ÚŸÚŸÚŸÚm‡¶CÛ¦mÓ¶i[µ­ÚVm³¶YÛ¬mÒ6i›´ÚFm£¶AÛ mÐÖië´uÚZm­¶V[£­ÑÖh«µÕÚj-T ÕBµ•ÚJm¥¶\[®-×–iË´eÚRm©¶T[¢-Ñ–h‹µÅÚb-D ÑB´…ÚBm¡ö«ö«ö«¶@[ -Ðæió´yÚ\m®6W›­ÍÖfk³´YÚ,m†6C›¡MצkÓµ_´_´_´©ÚTmª6E›¢MÑ&k“µÉÚDm¢6Q› MÐ&hã´qÚ8m¬6V«ÖFk£µQÚ(m”¤iAÚm„6B¦ Ó†iCµ¡ÚPm°6X¬ Òiƒ´Úm€Ö_ë¯õ×új}µ¾Z­ÖGë¥õÒzi=µžZOígígíg­»Ö]ë®uÕºj]µ.Z­‹ö“ö“ö“ÖIë¤uÒ:jµŽZ­ƒÖAk§µÓÚimµ¶Z[­ÖFk£µÖZk­µ–ZK­¥ÖBk¡µÐšiÍ´fZS­©ÖTû^û^û^k¬5Ök µ†ZC­Ö@k Õ×êkõµzZ=­žVG«£ÕÑjkµµÚZM­¦VS«¡ÕÐjhÕµêZu­šVM«¦UѪhU´ÊZe­²ö­ö­ö­ hš¿æ¯ùk´ Z­¼V^+¯•ÕÊjeµ2Z­Œæ«ùj¾šæ£ùhÞš·æ­•ÒJi¥´Z ­„V\+®׊iÅ´bZQ­¨VT+¢ÑŠh…µÂZa­ VP+¨Ð h´|Z>-Ÿ–WË«åÕrk¹µÜZ.-—–KË¡åÐrhš‡æ¡eÓ²iÙ´¬ZV-«–EË¢eÑ2k™µÌZF-£–QsÓÜ47ÍEsÑ\´ Z-ƒööööµöµöµö•ö•ö•ö¥ö¥ö¥ö¹ö¹ö¹ö™ö™ö™ö©ö©ö©ö‰ö‰ö‰ö‘ö‘ö‘–FK£¥QߨoÔ7êkõµúZ}©¾T_ª/Ôê õ_õ_õ_õ™úL}¦>QŸ¨OÔÇêcõ±úP}¨>TcÔ5F½¯ÞWï«÷Ô{ê=õŽzG½£ÞVo«·Õ[ê-õ–zS½©ÞT¯«×Õëê5õšzM½¢^Q¯¨—ÕËêeõ¢zQ½¨^P/¨Ôsê9õœúúúzF=£žQO«§ÕÓê)õ”zJ=©žTOªÇÕãêq5RT#Õ£êQõ¨zD=¢Q«‡ÕÃê!õzHP#Ôõ€z@= †«áj¸º_ݯîW÷ª{Õ½j˜¦†©ºª«ºTEUTE•UY•U‹jQ-êuºGÝ¥îRw©;ÕêNu‡ºCÝ¡nW·«ÛÕ­êVu«ºEÝ¢nQ7©›ÔMêêêêuƒºA]¯®W׫kÕµêZõwõwõwuµºZ]­®RW©«Ô•êJu¥ºB]¡®P—©ËÔeêRu©ºT]¢.Q—¨‹ÕÅêb5D QCÔ…êBu¡ú«ú«ú«º@] .Pç©óÔyê\u®:W­ÎVg«³ÔYê,u†:C¡NW§«ÓÕ_Ô_Ô_Ô©êTuª:E¢NQ'«“ÕÉêDu¢:Q NP'¨ãÔqê8u¬:V«ŽVG«£ÕQê(u”¤©Aêu„:B¦S‡©CÕ¡êPu°:X¬R©ƒÔêu€Ú_í¯öWûª}Õ¾jµÚGí¥öR{©=ÕžjOõgõgõgµ»Ú]í®vU»ª]Õ.jµ‹ú“ú“ú“ÚIí¤vR;ªÕŽjµƒÚAm§¶SÛ©mÕ¶j[µÚFm£¶R[©­Ô–jKµ¥Ú\m®6W›©ÍÔfjµ‰ÚDý^ý^ý^m¤6R© Õ†jCõ;õ;õ;µ¾Z_­¯ÖUëªuÕ:jµŽZK­¥ÖRkª5Õšj ¨ªÕÕêjuµªZU­ªVQ«¨UÔoÕoÕoÕJj%µ’ê¯ú«þjEµ¢ZQ-¯–WË«åÔrj9µŒZF-£ú©~ªŸê£ú¨>jiµ´ZZ-¥–RK©%Õ’jIµ¸Z\-®z©^ª—ZT-ªU=UOÕS-¬V «…ÔBj!µ€Z@- æWó«ùÕ¼j^5¯šGÍ£æQs©¹Ô\jN5§šSõP=T5»š]Í®fU³ªYUwÕ]uW3«™ÕÌj&5“šIuSÝT7ÕUuU]Õ j5ƒš^M¯¦W¿V¿V¿VÓ©éÔtê—ê—ê—êêêêgêgêgjZ5­šVýDýDýDýXýXýXM£¦QÓ(±J¬«¼V^+¯•WÊ+å•òBy¡¼Pž+Ï•çÊ3å™òLy¢J¥·Ò[é­ôTz*=•J¥‡Ò]é®tWº)Ý”nJ¥‹ÒEé¬tV:+”NJ'åGåGåG¥ƒÒAé ´WÚ+í•¶J[¥­òƒòƒòƒÒZi­´VZ)­”VJ ¥…ÒBi®4Wš+M•¦JS¥‰ÒDi¢4V+•†JC¥¡Ò@i 4Pê+õ•úJ=¥žRO©£ÔQê(µ•ÚJm¥¦RS©©ÔPj(5”êJu¥ºRM©¦TSª(U”*Je¥²RY©¤TR*)J€ TT**• J¥‚RN)§”SÊ*e•²ŠŸâ§ø)¾Š¯â«”VJ+¥oÅ[ñVJ*%•’J ¥„RBñR¼/¥˜RL)¦x*žŠ§RX)¬V )…”BJ¥€R@ɯäWò+y•¼J^%’GÉ£äRr)¹”œJN%§â¡x(Jv%»’]ɪdU²*â®dV2+™•LJ&%“⦸)nŠ«âª¸*” J%½’^I¯|­|­|­¤SÒ)é”/•/•/•/”/”/”ϔϔϔ´JZ%­ò‰ò‰ò‰ò‘ò‘ò‘’FI£¤‘ßÈoä7òkùµüZ~)¿”_Ê/äò ù_ù_ù_ù™üL~&?‘ŸÈOäÇòcù±üP~(?”cä9F¾/ß—ïË÷ä{ò=ùŽ|G¾#ß–oË·å[ò-ù–|S¾)ß”¯Ë×åëò5ùš|M¾"_‘¯È—åËòeù¢|Q¾(Ÿ—ÏËçåsò9ùœ|V>+Ÿ•ÏÈgä3r”%GɧäSò)ù„|B>!—ËÇåcò1ù˜|T>*•ÿ–ÿ–ÿ–ˇåÃòAù |PŽ#äù/ù/ù/9\—Ãå}ò>yŸ¼WÞ+ïÍ?ñ×}1ÉË‚$K²$ï‘÷È{äÝòny·¼SÞ)ï”ÿ”ÿ”ÿ”·ËÛåíò6y›¼MÞ"o‘·È›åÍòfùùùy£¼QÞ(¯—×Ëëåuò:yü»ü»ü»¼F^#¯‘WÉ«äUr¨*‡Ê+äò y™¼L^&/•—ÊKå%òy‰¼X^,/–Cä9D^(/”Ê¿Ê¿Ê¿Ê äòyž²ì#—–KË¥åRr)¹”\R.)—”‹ËÅåâ²—ì%{ÉEå¢rQÙSö”=åÂra¹°\H.$’ Èär~9¿œ_Î+ç•óÊyä7ìñÙ{$00ð!0n$ÿggìpÀÀÀ{ „À¸‘üŸ±@ÂïήºßÂñaÜpÌÏÎØ ဠ€€÷@jóäÿìÔ-€„#&Þ!¨a¼¯ÎKã[¨7Ž!€¤EL ¼Â3PÃõÀ‘ï0Ô0@½pdÀÀÀ{ Ì5 Po00ð3@ ÔGFL ÓzæAšiV-ZµhÕ¢65ÛÔlS³b‹Š-*¶Èw)ߥ|—ܸ/p_P2gÉœ%sÖXQcEA~A~A~‡J*u¨”­m&O˜ñÚëµ×k/íšvM»ÖÿPÿCýn ܸ¥xÅâ‹W̲*˪,«rúçôÏé_*}©ô¥ÒÿPî‡r?”[Øaa‡……= {f¿£>üÝ‹­Ÿ?òñ‘|Ü;k﬽³~›ãÛßæ(`0 âø‹÷ßÀ£GåQË£–G= }ú$4!ïäæÐ›Co]0}ÁôÓë—¯_¾~ùR±¥bKÅfïž½{öîÙ†fšmh±–ÅZkÙr@Ë-,ªº¨ê¢ª ß~b½zôêѫ⽵ÿªýWí¿µW´kÑ®E»Š÷–y{æí™·çÉ“7F¼ó&jµ‰:"pDàˆ@%£’QÉøÊÿ•ÿ+ÿ¤}oÉÈ™©žmy“óMÎ79ÿòԈç˜UGœz~›ÇAL Sy:ÿéü§óÇD‰-¢—P! B@ëˆÂÞaƆÒJo(í9Äsˆç{繊ç*ž«¸øïk«¯­¾¶:ipB>ûý ÷3ÜÏðýßßÿýýßïûþ Ï/<¿ð|[ÇSÄl³ÏÌ>3û̇}¿"þOâð)}lúØôóoÌ¿1•{UîU¹ç’DòË,ÿ1ñßÏ»=ïö¼[â¿©“šë9®[Ýou¿Õ}ÜÁqǬv¤Ú‘jGâV”­×ÚeÜpȪ³ßgOüv\RTj˜ÇAL “8|2ød°¸ *©ZönWÜ®¸]‰Û¾·G‹ÿØ1â*ؤ»ùì¤=&yÓäM“7͇}w·?Þþx{ùAå•”œ1R½ZõjÕ«•÷œüñ•™êYüß—u_Ö}Y·Ë¬.³ºÌJÈ»²wìøUg¿ÏžÚ`güm00œ˜¸Õp¡ÐB¡…BÿGÔ“7&oÌ(÷Qî£ÜÅS~ï店ë^.ñDبaQâ†ÍÝ3wÏÜ=¶"Lׇ®]&U‹_<Ç1îÕu¶4L×0]ÃtkF®¹fäŇ^|(®…Ÿýà·¿=ø­¸!mÜ8ÓÖ5¯;Bv„ìIÌ1·µýfË›-o¶ÜúúéÁ3Ï<óÄškN¬7èŽÜ¹/rߌ,3²ÌÈ’Û8‹PÍV(%>‘KÄSŸõ“úIýäÏMnúsÓ„„óÏ_<ñû~ƒ}^ôyÑçEBn7=iƤ“f쟺êþ©q¿Á;w±¾Êú*뫈ëüâ^l‹øùøßa»lï^âß²­W¥¶zÿ·{§îºwJxfïØñ«Î~Ÿ=ñÛÉË^KÜ;¤æÙpÀÀpb”NJ'%þ¹&o×»]ïv½„4âEÝÞ×xÍü|æç3?ÿIþòç/þ’ðí‹ø3áO÷ü°cžã n“+yKÞ’wü[ÕûgÇ}?¶¶¿r÷ÊÝ+wÇ¿µ¸Ï*NÈZüѵ¸=ï³IÏ&=›”´A—uÜž´ßà‡U…ùêYÔ˜õŸ»/p_ྠß?ýþé÷Ï®ž»zîêyäÑ‘GG]ÝquÇÕbô°Ç1wÞªsœØÄ5âu:×é\§³­÷&þLjøm00œRÄwßE|—¸â•ÿ+ÿWþÖÔ ÈI_[}mõµÕ¶ž$*®$7µþÀF|úØô±éãŸc¢ÇD‰¶G|(ˆ§¥&|ûît¸ÓáNB¶Ü;k﬽³¾ï{®_¾~ùúåmm³È¤"“ŠLJøÖä|r>9Ÿ­­ù꾺¯þ(ìQØ£°ÄD)³ÏÌ>3ûÌû^išøoð}·fÖz¶¾"VÜü‚Ë— )^:oÕ™;îQ£G5l½«FwÝmtW\Ñ›~›ÇAL §ôÓ¦Ÿ6ý´ÉV »ðüÂó Ïù0òadbÙ¢q_v^Ùyeç%U<Þ2Þ2Þbk ¿eþ-óo™ß|Þíy·çÝlíEܶÔ°8òâÄ„oS\+ÿ–súçôÏéŸð+¹ãÚ¶kÛ®m»â¿^9á[[0}ÁôÓråhb¾ÁÓ?Ÿþùô϶ö’12cdÆÈÛrÒiæ®g¡Tl©ØR±7‡ÞzshJ]uí¼UgÖxÎ9æˆ?’ó æALê™ÇAL '#žÝÿ­PW-ZµhÕ¢¤ja[ßlóÃBq³Ð‚Û n+¸ÍúµÞ÷½ï{ßOøµb ±)í¦´›ÒÚz·ÇN;qìÄûn3þ#0½àô‚Ó ¾ï‘?Ÿç|žóyâßòسcÏŽ=ûaßé™6gÚœi“TÒÀ7Ü÷†Àq—#ùøÈÇIP{ ¸VïÃ6œTÛL õ,ÄRê˜;oÕ™/·þ¶õTø<òdÈ“á\És%Ï•Lø{3Çoà8€ €àd¶†o ßn«m7MÞ4yÓ¼hõ¢Õ‹VIµÇ79ßä|“³Ph¡ÐB¡‰ !âÞíäÑ“GO´a†¸Ò+{÷ìݳw·ÞcpŸà>Á}’6†‰{-o·)¾¯ø·¼#dGÈŽ;>ñ_ñæ˜×º=ÿtþÓùާ†z®üMåo*“øwî,µgª3S|jÊ©)§¦ä¨›£nŽº¶®Ö®i×´k©ó· pÀÀp2A~A~A~¶å}¾ìóeŸ/í±ß„<8þ-Ìü|æç3?·õÚ?øáÀöh¸×X{`íÖ{lÿ²ýËö/“6†¹tåÒ•KW>ì}Æ¿eñìÕÄç €÷4ØÓ`OG€SC=O\2qÉÄ%‰ÿÎR{ö¨:sÀwKÜ-q·DÉœ%s–Ìië=,öYì³ØçöoŽß&ÀqÀÉÔé\§sζå¡ëB×…®³GÛzõ´ÕÓVOKLÑr@Ë-Øzíý ÷3ÜÏ`#ÖÖ³­g[Oë=n ܸå}·ÿWKØû´ß–²}G¨mqØ ¥7”ÞP:ߥ|—ò]rä85Ô³~R?©Ÿ4wlïªsöXÜŸÀVP*ˆt'f/æøm00œŒÏQŸ£>Gm5Ê#÷Eî‹ÜgH@<11!D….ºTèââ0Äûyßã`¿ÆÞOʆp¯ü_ù¿ò×1[*[*[*/ì°°ÃÂ":ªÛ¼nóºÍsçÊ+w®„ƒ){RC=_üèâG?rÞÚs„ªsö¸G5zÔ°µß†é¦k˜NçÄìÅ¿M€ã &€“É,ÿ±üÇlµ­£[G·ŽnmýÞê~«û­î‰ !Šv-ÚµhWÇiñ—ð*áUÂë}°-¯½^{½ö ><|ø¸ƒãŽ;ØDm¢6Q½ï{ß÷¾oo0eCj¨ç1bÄ8rí9~Õ9o<çÀœsØÚ£ø§H¢BÿÌñÛ8``8™Œ‘#3FÚj[?ïö¼ÛónöØï³IÏ&=›”˜"{÷ìݳwwœÞ˜¼1yß;Ü"ŽëñöÇÛoŸ°a† òdÈ“!O†¤úv²NÎ:9ëdG€SE=§M›ÞÑjϹªÎà]=wõÜÕÓõ¡ëCׇÖûÇüŸJÿTú§RRíÝ¿M€ã &€“ñhåÑÊ£UòÀâI‰ !2oϼ=óvÇiñ‹÷ó¾ÇXP«ÕÇ…B … MÌ·mh¶¡Ù†T¨P¡óÒÎK;/ݘcþùŸ„> }êÈ0õœü{qƪs®ødðÉà“Á9êæ¨›£®õ^Ä??R?U?U?MÚýšã· pÀÀp2ñß*óv½Ûõn׳Ç~ïÜ ¸˜¢€QÀ(`ØzíÓùOç?ïøÇŸXÜn7áWì™TdR‘Im=Ûz¶õœ}fö™Ùg$oÉ[ò¾|üòñËÇãŽSÏɹç­:g €ï–¸[ân qëc[{ iÒ(¤‘=êпM€ã &€“)?¨ü òƒl5ÊÿyüÏãÚc¿Qâ†E KLá«û꾺­×^ºréÊ¥+ŽüSs,®/<¿ðüÂómmGÜ6¶ýWí¿jÿ•¨FGÏì±Mê9yöâìUçø°8µÖX{ ­í÷û§ß?ýþ±_šã· pÀÀp2M77ÝÜt³­FyèºÐu¡ëìñTÈõUÖWY_%1!DÝæu›×mn뵇J*u¨”ãÿԯܽr÷ÊÝñ‡pâ顎üÜâ¤Ú&õœ<{qöªsüøç¦?7ý¹©­-7ðhàÑÀã•ÿ+ÿWþö«Csü6Žƒ˜NfòèÉ£'¶Õ(ïµwÖÞYíí7´ßÐ~‰ !‚ü‚ü‚ül½vÓÓMO7=uü㟚àÆçŸo|ÞÖ&.™¸dâÇ?ÚIµMê9yöâìUçȰ¸9¶­m–¾Xúbé‹Òtä˜zNž½8{Õ9f¼3hgÐÎ qý´õÖrçÊ+w®³õÏÖ?[ßÞѯ™~›ÇAL 'ó(ìQØ£°ìݳwÏÞÝV»|õ´ÕÓVOKª=ƽ½jbBˆ»%î–¸["SX¦°LaÖ¯u»âvÅíJÒ¶øm]Uæú‘ëG®‰÷ó¾ÛLͰû÷î lmáñöÇÛoOªïnCé ¥7”vä˜zNž½8{Õ9Z|2ødðÉàusÔÍQ×VÝÊùä|r¾ä‰~ÍôÛ8``8¥îºwêÞÉVPx~áù…ç'¾].žûXv^Ùyeç%>:žëx®ã9[[è:¶ëØ®cÿÎÅmKsÏUÁ}Rj^söß&ÀqÀ)øáÀ~ˆ?h>»ùìæ³Ó.ôÛ ßýæ’` ÙføððááÃãßβ›Ën.»ùaïùeÝ—u_Ö­_¾~ùúåmm?îu~ï»ýÔû×ö¯í_ÛÖ¦~?õû©ß'æÝŠ«îD“Tõö¾ÇAÜð<á[£ží½g¯:G€ÅCj¯5¾Öx[[èó¢Ï‹>/Rv^söß&ÀqÀ‰Å½Ô‡ÅÀÏ»=ïö¼ÛûF¿ïÛ.ïp§Ãwlm'î“)cÓǦMŸmÞÏp?Ãý í¿jÿUû¯lmY\Í,®lþ°cžšàQî£ÜG¹ÛÚ‚¸}«±ßØoìß÷¶»íî¶»Û&ä9ÓqÝzsèÍ¡I{Ä• ï»MêÙ~{qöªs„8þ;Fˆ@T„£Ž|:ïoà8€ €àÄn×»]ïv½„„ycòÆäÿ}¨Ô¡R‡JÝËu/×½\Oç?ÿtþÙúg럭ÿë¨_Gý:Êç¨ÏQŸ£Ö[¨W«^­zµ’*Ì{OÈ;/³²ÌÊ2+ÅIÅÓ+ÅSÅíL÷OÝ?uÿÔi¾Ó|§ùæÎ•;Wn›ÛÌ™12cäßn»ýíæ87Nž-'ÕöÏ´9ÓæL›ø·7žQ?U?U?½øðâËÅ5ˆâ{·í·~Þúyë+¿®üºòk[[‹ÿù¯qÿqC¯ܵõœQaàÆn7‰ÿâÚêk«¯­¦žSªöœ½ê!ŽÿµÙ†fšm¨øoQuö[Ì=;Žƒ˜N/!·ƒN ¿­~[ý¶ŠH,iã¢#ùøÈÇ.v&¡ß{ÿÞû÷ÞŽÓ:~, o2¼Éð&öû¾²wÏÞ={÷Mi7¥Ý”6îS?“êJô ]*t©ÐÅW·SÏöÛ‹óVãÀÉÉܳà8€ €`õø«Ç_=’¶9^nb¹‰å&Škéì÷LÖ¨aQâ†Ù£¹Ÿ«x®â¹Šozºé馧Iuœ €_{½özíÕ.[»lí²%í÷%®ç;±æÄškÄŸ¬k¸®áº† ßÂæë›¯o¾ÿû8"pD ý‚+êÙ{qÞª#NLE9×oà8€ €`*q¯Ó{[Ô÷½"ªß?ýþé÷ϳIÏ&=›·qo¿¸(î¾âÞ’ô}‰›yþxøÇÃ?7ïu´(+ù·l—í§M›>n”òaßWþcùå?¶¨ê¢ª‹ªŠ§oþçý¤M›¾á«†¯¾Jª8n¥Ù/¸¢ží²'¬:àÄW”³ü6Žƒ˜¦usèÍ¡7ß6Ê¿ÿûû¿¿ÿ[\ë&‚“¬“³NÎ:¹Tl©ØR±u:×é\§óŒ,3²ÌÈâmqñGñ:)”NJ¥b•ŠU*Vx~áù…ç‹g¸Šg:Š÷ߦf›šmjÎ_<ñüÅ×\_p}mýäôxûãí·‹cÞáN‡;îxß÷¾ï}_|Gâûßø{îU¸Wá]=wõÜÕóß!ÿùwHüßWÜŸù6Ç·9¾Í‘7MÞ4yÓäÉ'Cž [·néQ£G5Äõ‚ yÏâé°b›µÆ×_k|Ñ®E»íšeU–UYVyÕñªãU§ÆŠ+j¬hÿUû¯ÚE=Su‰¯:0;Ƀ˜©Ž½¯öKþwNC?µUš³l“z¦êÀì$?``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 à·Œ½ ^ö¥Ð²?…–ðZþJ¡å@²/)´L¡åP -‡Shù;…–#)´M¡åX -‘)´OöåD -'Sh9•BKT -§Sh9“BËÙZþI¡å\ -çSh¹BËÅd_.¥Ðr9…–+)´\M¡åZ -×Sh¹‘BËÍZn¥ÐBËíZî¤Ðr7Ù—{)´ÜO¡åA -1)´©f 1‰ùHÌMbžâ˜pdÀ’Øå£—^>:Ãs†ç O׳®g]Ϻ$»Â!…C ‡,Ùºdë’­Ñw¢ïDßá{ÇôtäÓ‘OGn¯°½Âö 5=kzÖôtI!ƒ*ª8¨âñRÇK/Å÷ŽLŒÕbÜN©YCÌYbþsß ˜•õ,°)ÿ¦ü›òsdŽŒ@¢¼¾ñúÆëÊ}å¾r¿ìÙ²gËžuqH¶5ÚÖhÛáÛ‡o¾{8öpìa¾;H)—Î]:wéÜÀ<ó ÌãâÀVW\]quÅgåž•{VŽo RŠ‡Å˜ìȳ†˜×ÄÇ·fB pFhÐ[.!IDATÀÞ_@l@lÀž =A{‚2­Ê´*Óªk‘8áÛ(Ë«Êk:]ÍS­ñãñÇ µiëûëà¢9:y/¿ãåñ“ºÄë·Û.^ìD›Íó"=CNýkÁiþ¯ÛŽÈýUî ¢¯3û~Ø~}ƒ|ƒ|ƒ}sè›Cßðe@ò¸<ñòÄËÛE·‹nýa£wî´™—gìÛ±Q‰ÍùVÍhùí ¯cëNÖqó©jqm˜³Ì]ýdãåj=ç(—ÿÏ©ßõò»±âÇw½[Žq¯PØsaÝÈBrÎJL[ÑÎE;í|Þìy³çÍø6ÀÞÄx+ÆÞÄŒÞu#+Ë9kŒ{×Qž Wü8®©wË?§Îñð»¡õXx¢\~ýdHL¹×ù+ËÜ]wrÊCŸª3Zö_ãu¬c£†=ò­ÊÖ#,cßÛ¯˜ïÄÜÇ· ÎŽàŒ€¼‡¨à¨à¨`¿t~éüÒ%¼ýáíQ[öÈôÃó_]Š~1t\x>Ÿ2cÇž:U&ÉÖ6+»¼CZÈÓ©SäÛ 5³¾ÇõdM£šF5º~îú¹ëü;}HbOk<­ñ´Æ˜¥c–ŽYšð‘9ßi÷ ™ÌV¥sñØS·Z(Û­[Iµ~ôÿÚ»ó¨ªê¶ÿã÷P?-o‹IPPÄ™”!™QLâ”7Ž–Ρ‰³æM*JZ„šD8$¢–ó#¢’ „¢f¤a*‰ &çùãÛ³­ÍæÆÙgó~µ¾ËE‡Õ>ßs­ëòì{Ÿ°#¾ž©s/è5zê ûÁ–³žõ´þ1§cNÇœx !ˆû¬yꉑ––³RçÄ%ô]1?ÝÇ×S£ÉÈðó«¯õòÝ]SÝ?^5çPWùÓSƒê~lbŠ™Èû Úˆ €ü999+­<´òP]Np˜öê|Ö =䇨56AõôÖ}]41ç7ÇÜaNyw:«ó®“NߺùŽ´i;Ò4ÑšhM4ï;<3©gRϤÖýäøƺoì’Røó¸$¯nõ÷Ö}=çêb>äŠõn³¸ºóÈõ#×\_¤S¤S¤Ã;ÏCôRÑWëÒ‡\ñ½awÎsë óú zë¾þ|l³W·ÿŒ}/­KJÝ瘼ã ]€Úˆ€¬|ÿ|ÿ|ë›Ö7­oÖ~"Ãz‡Û×­?™œšœ×­¬±B_Ù0øÚ¥ýŽUo§Æ'Ún56´¤ì¿|[ðÓ §AOŒy0æÁjê®òhåÑʣˇ/¾|x]N‚'~Þ7¯ç‡¿ºÛgSc…¾rk~Ìh{ƒ÷ÚÛ϶ŒªËkI¿œ~9ý25ÏJôϺtÚ÷Úœf•sp¨‡Ac…¾rëï_œù—ϦÄÏWLéùa]^‹˜•bnR |ÀmD  g’Ï$ŸI®ý´…^ýã:i_þò³®ã”úÖ¾†|ûÍÀºœš¹–y-óZ&õµ+ + + óõõ­½¯®KôHîºî鯉V¾‹•úÊ­?þ{E€o-ï›×þê6i6i6QP'¢gÖÞW¾}ãŸ&Á?îË´ÐWn}ºñÛŽ¾‹×%Î~£ëºÚ_˜›b†R dÀmD àO¾Êû*﫼ÚOUôOxßÀ¢paYŽ…ã>íŠ~«¯”_èîâîòÄ̼ö×{îõs¯Ÿ{Ú©Û‰·o'êÏÕŸ«?W®‹ºÌ3û±MÂÍ!á}6iKè+·¦l³ÜñåÚ§FäÈ;‘w444¨ø“ š š ¢OÖÞKS¶GÿËñem }åÖ›+öí³ÉežG›¹W*f¨˜§(0@øC|q|q|qí'bÞIØc×ÍK{C_¹utQÜ|›½µ¿öS§ NP' äGåGåÿ—Û#¯nþÆÛåš“\ü¬µ=ú­¾Þ¾1fªG¶ƒ™Idk'¹×¾ |Aø®FW£Kµ€è‡¢7ÊuN3[ÿÖN·o|sÏ#[Û£ß?­ 2Âü¬W7Ÿþ¹íòÚ禘­ ( 0@ÐìY¸gáž…r§!L«lÚ·z5Âôì ûVê‹~«¯Ó^Úccí'e2ºftÍèJÍhÊ b b bjï–GÝ»:=VSè+]+ìöøÚMqï™ji"·sn̹1熦DS¢)¡r4Q%šM‰è‡rÝrŠûðÇ–&öé¯úÚ©*ú•¬GÝ7œuz\û s–Âå h#` IK;™v2í¤Ü©‡®ý½Ú\ˆÜñ½‘Ã=uG¿Õ׈gƒì_3Ì2¾®$·3×]t}õ ©)½Uz«ôV»vìä:äÅŸ†ýèºEÝÑïŸÖ “†ù¹®ŒvÔe©ÜžÄìŒÙ³“úÐ4‰(×!WF¿×¡ËRÍ…Œx?WuG¿Õ׋?%üæºEnOÄœ3—ú% h#` ‰º‘u#ëF–lô»Ù;±MÁÂîÙéŽáM'ú­¾Îk®Ôþ g»èõ”Û¥‡zõêQKš„pM¸&|øÒáK‡ËÆœ9©#ö¸iBѯdºõFWÛrûs¸üpùárJ @Ó!úž\WŒºþȶEÓ }¥kNjÒq·#rû#f®˜¿Ô4.`€6"šœòÍå›Ë7[XYXYXIÿ ÛþX×.­>Ìý~ºCeÓŒ~«¯ï}æDϹ“2ÃJ‡•+Õ\Õ\Õ\¥®¨Ûg!Ÿ…|"×3×õqIlÊÑïkŤ0?߈Î.Ë~¿c|~|~<@ÝD¯“ë„Æ…uº¬©ÈH÷ómʰX3×ovI”Û+1©(h\ÀmD 49‹g/ž½x¶ìé˜kéÇì‡ýV_Ã÷~s¤‡¯ÜŽ%''SWÔ*·0·0·P®î-è_æ0‘è·úZysâßÌ~Í-ýÛIw̹™s3çfUUUTõýMô:iì×Üm{»¢Ê›ç:úfýV_÷¬úÍa¢Ü´³˜ê€ÆB /ÆÁ=÷Ü#:íòÄå‰Ë‹úõ-êËÎü5À@’½?{ö~¹Ó “mö^êvЏWn yíSG›×åv¯`IÁ’‚%Ô5©œ\9¹r²Õy«óVçkøCÉΡî÷Ê­Å/Ÿí•$75¶Ùn³ÝfKPÑßäº_ñK'¼’ˆ{åÖˆäq;ݗÅb.Scðâ@ƒŸƒ\9¸r°ÜçÂ࿆hªU ªÔ9©sRçNF,›ÿ£e3"Þº¬½Ã‡˜\“îá˜ì1Ùc²©4jß-¾[|7iÇ3ÕÝ­ÛâÉû¡>™½µ¯é¿ Éï-÷æ^Ú½´{iTu=M®ã¥ÿ²ewïl"ÞÚ×'ïŸùÊ'Ó T–n ß(/æ2•/04´ê×þÖŽ0¸î€&!%$%$¥†ïn4Š7é¯÷ÉÂÛ9¯8î&Ü­Ë:ïÝŒ9öWäÆOö¶ìmÙÛ¨7ÚîaìÃØ‡±r½îâÇÃNº®!Ü­û:mÃ+éNNš5=Šz ¢§I{Ý´£Þ´2 Ü­ûzñã„d×5rSXÌhê ^$`hh"Ðá®N׎P¹Š‚ЂйùNùžSÝBˆuŸu}«KŒué~z;z;z;Ru´]trtrt²´Ë½[ØÓ¯cî3ß:rüv¯Ór³8?.?.?Žª ½D“½ísä‰$¯ÓĺϺ¾[8ìAÇ,é~ŠMÕÀ‹D /ap}!Tî ÓA§ƒNÒ†Øã­¾SÛþ@”û×ÖE#s²³õc ítݤ{{i륭—¶R{´QÙ+e¯”½"÷—é»÷ÇÚyèþµuS Ï—ÝË¥»:Ót¦éLSj€ö}LÚß6F~ܽœ(÷¯­wï^á 7‘ż¦öàÅ €ÆBü<€õÊÐdh2,ó-ó-ó¥M0üÍoþÕ£#Qîó¬cGnzÜÅZº·c=4ö@}¹ìËe_.“v¶¹Í—wþ;!îó¬ƒC»ûÉ}8ypüÁñÇ©@ÚEô.¹Îö8øôK>AD¹Ï³Îm>®¼óߥ{+æ5/0(að³"Tëêú«ë¯®—¶<«­Î³Œ6ß>ÿºðFÎßwÊÞìîIñ“â'Ô!­qDsDsÄÔßÔßÔ_ÚÓní½Ù#˜÷ù×5É}>±ýUºÃ ¶ ¶ ¶”!í"z—´§­IžqÏöWâÛç_oíûÚÙ#XºÃb^‹ÙM@C#¥! ® `@µ"§DN‰œ"ms:l»hkH|[_k`á¢Ë¯¤û¼+wWî®\ꀶÈóÈóÈóv³~–£Ú=%¸­¯µ`ÀØ`ÏÑ5üó¬0«0«0M•¦JSE5ÐUš*M•è]ÒžV0àp–çhâÛúZûy¸}×î©tŸÅ즠¡€’Ë!Ôx6ƨʨÊH®µ-˜µÌ±'Ám}­s’ÒîöŒ•î³{¨{¨{(Õ@[¬õ\ë¹ÖSÚÍŽÝ <ï<œà¶~Wï™öÆ»¥»}ç§;?Ýù‰j |¢_Iû˜÷Ì^~Æ»‰lëw=v÷SCçáÒݳ›j€†F Ú‚0¸:`@…òvçíΫᴲ˥‘‡MÙ6Äj²©Ó7K÷üѺGë­£&(_‡Ë.w¸,íc¥éoÇy?&²­ß59úM‡U5Ü=bÒ®I»&Q”Oô+iKŽ^=Åa‘mý®¥é§Î{?–ÝT#44`ÐF„ÁÀ€ íˆØ±#¢†›?Ú~Ŷ/amƒÜúâ¢Ö–ñÒ=ÏX’±$c 5 @É\ypåÁióõ·¸Ñΰ¶!Ö{nãZz~'Ýóà}Áû‚÷Q“”Oô+i»çv4Øó;"Û†X}ý{§´3”ãÔ$4`ÐvM3 &ThhìÐØ¡5Ü”xî™sCí·Ö6Äú^߃~ÝÏK÷|UùªòUåÔ$%Ë\¹:sµ´ƒ}>ØwR©„µ ²¦Làç(÷£ÊµÊµÊ•Ê L¢GÉu0MJF´Ÿ#amC¬Ÿ^Ø©ÇTéž‹9Ne@Ã!5i:a00 .Ó4Ó4ÓäšÔâA—8Y6nP:ßìB¸Ã;¦S¬Í ®Š£êú•÷é6ŵÿÖ‚ï³;:šôøÝp„ø­.Óú\mÓcÑÆK~Žw•Gú^œîYÃõs­|[ù¶¢0(YlËØ–±-¥,§pÄq·Ó”7¼é<¡úQ]üǰÿ¸Ö)–ÞhÀXGŸê¿ûÞ0;×^ʉÃ*zœ·(”î|ajaja*• @™D’ö®°Š!W- •—ê<7¥À9…I?»–§˜ãT&4`P+u‡ÁÀ€ª”®.]]ZÃU\v3†Û)çzÙ?k‰Î§?EÔ2Ïï»iúYóñœVk½G÷À cvíkÿ­º.ºüƒ““î'z‡uÖÕtò”kôàуG–ö®’ô ó½7"}ê6ñ¾“;üÍp´~þŸûêÿÝ1ÝzšÏwH59Üú­ºÿî‹Yã£üÛ]’î|–Y–Y–• @™D’ö®ø¨e/Û]RS¬´¸$ýäLïéŠ9Ne@Ã!€¦@}a00 *ù6ù6ù6Ò6ÔÜÇ·•vÛäêGhôF»X½YsÒ<{FTÎÔÀýºÏÓ¨_¡óÇw%é»ÂÒ꼂¢ßjk“ýÌÛ–Ð.V­Z ¬áFÄÃ&føþª„ ´úQ9¦˜´^[ûóKãß^í]Ô&B­^ñ[Qÿß½¬Ë]¥À™Cm\jøÊ†}Íö5Û׌Ê L¢GÕp#âÀío¹Ä*-.?µÏ»¨öõÔÙ»{í4Lh嬻JüÖØ{&æk”W ;·Ð÷Wé΋9Ne@Ã!€¦Fa00 *Ï^<{ñ¬´õŒZ¼~‘u”ÒâRéí «Çº‹¬sæ;žêt¥÷£*ñóî…þ{Û~¥äoöýbJ\‡B`Ú~:Ã"Â(À`†r‚ÒCS™; ©©»Öüüý~¶ï(ž£ûwwtü~.ù÷•>^Jû&à_¬Bvö9)}]1†1†1†T&e=JÚ»~±:лÏIíúVÝüƒ§y´³Šïp¤ÕÿˆÖ­_Ϥ¶¯•mH›êc¥Ìc¶ˆ0ó0˜Á'hÜOLÀÐthoL ¨Ê‰ã'ŽŸ8.m7¡i_¼cûX™¡©ôvУ¾ÛÐÜ:~àôÊ:^«~}ðì ©{{Ú*óÚ_±þvéÊš®¢£2h×é ÿâŽyíö*'(-6ÈGcÚµU¾G]àáKº´hÿžxNߥ–†í¾WÚµ¿b-Z8ÞÇë#éþG8qœÊ L¢GI{WÑÂã7½>Ò–è÷ÑÔRïC®Ãí Û\ÇßáiKƒ¶7~ÙïÖç}e~°Xý‹]ÓÛíå4î'&`hš´+ n´XÀ 4¹×Þ¢néJ¾v¶úѶ)îð¦þ[mLt'‰ŸŒèµæTçJŽ~Å:¢j­IçÔm7jží²C”—V?B–ŠÚÞ‘>§øoãgz}Ùꀞî0ñÌ-ÿÏwWO”—}{š÷uê €:”=5Óûºò£ßJÛo7ønºÍß¿ý?Ä‘ëý¢ç«“ò?>{¿Ws%G¿b5¯ÿµC¨7@»ÜspÏÁ=ÀêÙÔ¿íµû%G§r·ƒvxgвvÝ”|äÕ×Qã׿i½ˆz íƇvomž¯´¸ô@Ò€#Žó¤G[ý9ÛrýÙ¹ˆŸ‹XDÂJ{-b}Ü&´7õ@·IËññV~<'zl‹Nº…ò†MúÍù¿™¢ôãäcžO½Ú¥|wùîòÝÀê™ò¯–^, ›üÑÖNW´%æ `ê Ì+€?4Î'Æx¤Þ¦êG[ý9ƒŒ;ýÇô[ñÿ»—mF‡Òçp04å_¼Ñk~j÷cÕ9lí9Úõ½Å\ h£&tpÚ?yðàQÿ˜¬˜¬˜,isQòw‹uÚßõë1¦úmŸq;舊ôGö!ʀ徘ÊäÁƒ‡’Ò®¥´ï–»t@¨å·&oˆŸ¼5v¤ç8½_tMtRÄMIÐÌñ5e¾ŠÚ¿xôàуG¦2yðà¡Ì‡èQÒÞ¥äï>ê±á[§ßÅ­žÅÑz´tÜØöÎïí£]°ÜwS™'•—^ŠÝêö›‰[ÛÑú¯Šãìxª½—Á±üƒ§y´û¿¿«kSlaæa0ƒOиŸ˜öZìµØkÁÎ@S ‚Ûå‰Ë—'Ö=ôÏñ¡ouÀ€ªäÛäÛäÛHÛMÿ s[ÜVfhú¦CD‹Žœ|1aÜ\¯óì ©{{ÚÖpEÔø¥6ÉJ€{œìgÞ¶ŒÓ1´‹Õ@«5ݽ jØÄ ß_•š–mxûŽU›ýµz=ª­ßöŽãÚ½-þ^îÐɲìÿ:°ràÌÀ¡6.±Òß×l_³}ͨLÊ$z”´wenË%V9AiÁ[‡ô×ÕÕê¦áâ Òôë¶?ýåf«Þ­µ1ú­vn¡ï¯ÒsœÊ€†C Mö†¾ÕªRººtuéjië±›0ÜØNiqé”ë)ç»Ñ;ipJçÓôCެ¸oõ¨úõ¾v‡²ŒûŠŸéøžþ£yg3ìW\¼èòNNºŸèÖYG @»ÈÝ̳$}Â|ïåßÚ­_ûÛ¾Vý'éó†ë}DÉѯXã£üÛ]’î|–Y–Y–• @™D’ö®ø¨e/Û]RBP*nìì}±×jã?Ýe¡úwkWô+Ö’ô“3½ä¾8€Ê€†C M:Bßê€u™¦™¦™&׌º¼ÀÉR qéBŸì{Žs,ãw½!ŽÍv¨ç»mæ/~ýòkNºÕ³ø¯­f´™£û£’oé{qºC¦tÏ}[ù¶òmEaP²Ø–±-c[J;XNáˆãn§•îò p±)=æî&Æ[Œ ”í¯XÃ*zœ·¨á‹ S S S©LÊ$z”´w…U ¹jQ¨„ tÌ«w˜›W?¶ñ‚6˜?}t µÔûPiü©}ÞEuY•ç&ýìvZºóbŽS™Ðp€@­ÔúVG ¨ÐÐØ¡±Ck¸¥äÜ3ç†ÚoSB\êÿõ4'óMÜŠ­­‘‰î¤i·_í±[.Ü•¾–ñ•ÛÖÚ¾ªœø½¾ýºŸ—çªòUå«Ê©IJ–¹:suf wø|°ï¤S•>L›pÍ{±a‚ÞRÝUÕyÙn×m¶kAœ2i€Ÿ£Ü‰*×*×*W*€2‰%×Á4)Ñ~Ž”êÔ¥ÀŸ^Ø©ÇÔn¾½:suæj*0¨‰ºCßê€Ú±#bG„´IM8´ýŠm߯ Jß9´'¨[_Ýõ{ê|)ŽjÀGóÞöëzm¼äçx׺§kQë?]ß<ßìB¸Ã;J€/.jm/ÝóŒ%K2–P“”ìÁ•W\©áþ7Ú*9F•óµop¯Pþµ¿÷ÜÆµôüNzüÁû‚÷ï£&(ŸèWÒ>vÏíh°çwꀕûú÷Nig(=B1Ç©Ih8À íšNè[0 By»óvçí–6,—K#›VB\ú×nã,ý-åÜÚdS§o >–îù£uÖ=ZGMP¾—;\îpYÚÇJÓߎó~¬ÌuÒ »½Äqzå™?5ŽÒ–›?'G¿éà°JºÛ»&íš´kÕ@ùD¿’ö±äèÕSViã7ìÊÉJ8’ÒôSç½Kw[Ìnª0h£¦úVG ¨P•Q•Q•‘\ [0;k™cO¥}‡®ö®s’Òîö¬á†Ûî¡î¡î¡T#m±Ös­çZOi7;v7ð¼óp¥¨eÞ¾ãcÕ®¿Áf½þøÄpï^ÝÛjKì=ÓÂÞ¸†ªuç§;?Ýù‰j |¢_Iû˜÷Ì^~Æ»Õ+g=v÷SCçáÒݳ›j€†F ڂз:`@µ"§DN‰œRà;l»hkHp[o7.\`ùU WqåîÊÝ•KÐyyyÒnÖÏÃrT»§J P·Þñm÷’8BýlÝ9:÷ÜǵôüNùÑoÁ€±Áž£¥ûlff¦©ÒTiª¨FZ JS¥©½KÚÓ ÎòMp[_k?·ïÚ=•Ý#44`P2B_9À€j]]uýÕõ5œbÞê<ËhÁíó¯ oäüÍq§Ü)~Rü¤ø u@kÑÑ1õ7õ7õ—ö´[ûFoön¬Ð´øÁø ^y¥ño¯ö.Ê|Î%Ä"Ëh²Á qlã/tïcþT[®ý]“ÜçÛ_¥;œ`›`›`KÐ.¢wI{Úšä÷l%¸}þõÖ¾¯=‚¥;,浘ÝÔ!44`PBߺ Ô+C“¡É°Ì·Ì·Ì—6»ð7¿ùWŽ„¸Ï³Ž¹éqkéÞŽ=4öÐØC môå²/—}¹LÚÙæ6w^Þùïš~äýF m{éQ4ðÑÛtuÔ[o»ŸV~ôû88´»O܇Çpœ  ]Dï’ëlƒO¿äDˆû<ëÜæãÊ;ÿ]º·b^Sðb€ú>+`@å:t:è$m|=Þê;µí„¸m]42'Ë1[?ÆÐN×Mº·—¶^Úzi+µ@•½RöJÙ+ri¾{¬gÀ‹Nゼë¾Bï]q$.af?´Ùúíä`£Þ´åÚßM>_v/—îêLÓ™¦3M©=ÚKô1iÛùq÷rBÜ¿¶Þ½x…g€ÜDóšÚ€ƒ ¡ïó T®¢ ¢ ¢@®¾S¾çT·Ýg]ßêccÝFºŸÞŽÞŽÞŽTm,írïöôë˜ÕXª¸ôooŽÝï+~¢-Ñoqäøí^§åfq~\~\~U@{‰>&ûÅ(‘'’¼Nè>ëúná°³¤û)f4U/0¼H„¾õ…hRBRBRB¤mÑ(Þ¤¿Þ' oç¼â¸›X·.ë¼w3æØ_‘3ÙÛ²·eo£Þh»‡±cÆÊõº‹;éºFù±«rÖi FXHwrzÔô¨éQÔu=MÚë¦-õ¦•nÝ׋'$»®‘›ÂbFSoð"@C#ômÀ@“P5¨jPÕ ÎI“:'IåÀ²ù?Z6#Ü­ËÚ;|x€É5éŽÉ“=&›J &ñÝâ»Åw“v<ƒPÝݺ-ž¼Zá“I¸[ûšþËüÞÙrTî¥ÝK»—F¥PÑÓä:^ú/[v÷Î&Ü­}}òþ™¯|2 Bõgé¶î¡˜ËT¼xÀÐÐî9¸çàBßúE 4!Ùû³÷gï—k“mö^êvŠˆWn yíSG›×åv¯`IÁ’‚%Ô5©œ\9¹r²Õy«óVç¥}/"Ù9´Ó}"^ÙÛ>¿4~¶W’ÜÔØf»Ív›-5@}D“½ôK'¼’zåÖˆäq;ݗÅb.Scðâ@ƒŸƒ\9¸r0¡oý"šœÅ³Ï^<[®™F\K?f?„¸·ú¾÷›#=|åv,©8©8©˜º V¹…¹…¹…r=poAÿ2‡‰Ä½Õ×Ê›·øföknéß®HºcÎÍœ›97« ¬ ¬ ¤º¨èo¢×I{`¿ænÛÛUÞ<×Ñ7“¸·úº·`Õo妭˜ÅT4`x1ª_Lèûü€&§|sùæòÍVVVҿ¶?ÖµK«Ï#s¿ŸîPIôûþ×gNô,‘;3¬tXé°RÍUÍUÍUê €º}òYÈg!rý0sýP—D¢_MŤ0?߈Î.ËíU~|~|~<@ÝD¯“ý'§Æ…uº¬©ÈH÷ó%úÍ\¿=ÚEö{ÎÄü¥¢ q´0ÐDÝȺ‘u#KîDC×ÍÞ‰m vÏNw ošÑï¼öçJíÿÇp–±‹^O¹]z¨÷P Iׄk‡/¾tøR¹®˜“:bÛ‘¦GÝz£«m ¹ý9\~¸üp9¥ é}O®+FÝ dÛ¢)G¿9©IÇÝŽÈ혹bþRKи€ÚˆhÒÒN¦L;)÷÷6js!rÇ÷F÷šNôÑâlýk†YÆ×õ‚ävæú ëƒ®¢~45¥·Jo•Þê`×Á®ƒ\‡¼øÓ°]·4¡è÷¤a~®+£Ýu‘ÆcvÆìŒÙIýhšD”ë+£ßëÐe©æBF¼ŸkÓ‰~/þ”ð›ë¹=sVÌ\ꔀ €hö,ܳpÏB¹¦U6í[½azv†}+uG¿Ó^Úc£N­2ºftÍèJÍhÊ b b bjï–GÝ»:=Vwô[a¶Å×nŠ{ÏTK¹}˜scÎ974%šM • ‰*Ñ”hJD?”ë–S܇?¶4©°OÕ×NÝÑïQ÷ g×>CÅœ¥p@9€ÚˆÀâ‹ã‹ã‹k?ñN»n^ê‹~GÅÍ·Ù[ûk?epÊà”uB~T~T~Tísuó7žØ.×,˜äâg­¦è÷ö1S=²ÌL"[;ɽöðá Âht5º]ªD?½Q®s:˜Ùú·vº}ã›{ÙªŠ~d„ùY¯n>ýsÛåµÏM1[)P`€6"ð'_å}•÷U^í'&ú'¼o`Q¸°,ÇÂqŸö†¾”_èîâîòÄ̼ö×{îõs¯Ÿ{Ú©Û‰·o'êÏÕŸ«?W®‹ºÌ3û±MÂÍ!á}6i{ô›²ýÍrÇ—kŸ‘w"ïDÞÑLÐLÐL BàO&h&h&ˆ>Y{/MÙý/Ç—µ=ú½¹bÿÑ>›\æÙy´I{¥b†ŠyJ€2´0€œI>“|&¹ö“2z]ôë¤M|ùËϺŽÓ®è7äÛØlêÔÁµÌk™×2©¨]IXIXI˜o¬o¬olí}u]¢Gr×uO7N´ò]¬-¡ïφÿ^ÑG'à[Ëû&Áµ¿ºMšMšM”ԉ虵÷Õ€oßø§Iðφû²ûèhKèûtã·}¯KœýF×uµ¿:17Å ¥@É€Úˆ€¬|ÿ|ÿ|ë›Ö7­oÖ~òÂz‡Û×­?™œšœ×­Liqï¢k—ö;V½Ÿh»ÕØÐbþ±Ú_KÐÓ §AOŒy0æÁjê®òhåÑʣˇ/¾|x]þ‘Mâç}óz~øû¡»}wep~Ìh{ƒ÷ÚÛ϶ŒªËkI¿œ~9ý25ÏJôϺtÚ÷Úœf•sp¨‡ÒBßß¿8ó/ŸM‰Ÿ¯˜Òóú¼1+Åܤ@ù€ÚˆÀQ‘S‘S‘³òÐÊC+Õåt†i¯Îg ÒC~ˆ]cÔh¡ïÄœßs‡9}äÝé¬Î7ºN:}ërä;Òv¤íHÓDk¢5Ѽïð<ΤžI=“ªSgÿë¾±KJáÏã’¼º5Vè{Î38ÔÅ|ÈëÝfqu9æ‘ëG®¹¾H§H§H‡wž‡è¥¢¯Ö¥¹â{Ã,îœçÖ.æúþ|l³W·ÿŒ}/­KJÝ瘼ã ]€ÚˆÀ3ÈÍÍuláØÂ±EÝOsØ÷;nlðï'ŸêØ4X’nn_ÏqïÌä‡ìâ†_]Ü9 sÿÖíë~lÁ¹Á¹Á¹¿^ÿõú¯×y ~•ù•ù•ù-Ú²hË¢-uïÌæWŒ^7ôñ*ÏЮšËwG~àî\¿AoÅü°#¾ž©s/è5zê ûÁ–³tžÑ1§cNÇœx !ˆû¬yꉑ––³RçÄ%ô]1?ÝÇ׳~ãÞËwwMuwþxÕœC]5æWLO ªû±‰9(f"ï/h#`€6"ðìÜ5î÷#óÌ?2ß Á Á Aç/é˜ãdøÔ#qB~{ïÁ–þ`5*ÄáÓ96í&Øm»gküö±øÍ¶ŸÙ:¯KΨäõÙÖq+~j¹Ê­2ä³WÍæÛT¶røkÿ_‡ùóæŸoy¾åù–¼™ðbÜ\~sùÍå£ FŒ.økÝÛìåVÛô§ ê–lž°fDŸÙ¶Y;/èÙ{Õ 4q*L½4x{¯Y''n×Ëâë¨SooïWh7b‘‘K'ëÏúg[™¬Õy¿ÙøÍÆož }2ôÉPÞMhh¢ßŠÞû<Ý»öY&kM\`ýÙöñK‚íF|cìxûääÏrzY¤^Š{ÐkÖQÝ ;œ w^ZYbïµfÄŒDÛ¬qA“ÍÌ^6NÓŸö×þ¿bÞ‰ÙÇ» ÚŽ €<—ÊÛ•·+oŸ(:Qt¢Èùšó5çk:Š´?hÐþ ¿]øíÂoš š š ¼wÐXn\¿qýÆõYígµŸÕ^GÁ¾pýÂõ ×ǽ÷zÜ‹w ‹èâ'+yjˆ¹&fï¨ 0@¨g7¿¿ùýÍï×X¯±^c­{M÷šn#DÂâ:ÅuŠÛœ²9esJÁ½‚{÷x_@™Ê"Ë"Ë"¸p9àâoíoíoÝX'îg»ÎvíúCzüЃ÷”LôjÑ·kjˆ™%æ—˜e¼/ VÀmD  ÁÝÙ|góÍûOï?½ÿôT£©FSLö˜ì1Ùóü§]¬Ó­Ó­Ó#Œ#Œ#Œ>vúØéûm﷽ߖ=íUšUšUš•1"cDƈ¨Q-¢Z¸p?à~ ¾NÙJ•:*5Á>Á>Á>ïŸyÿÌû'{ÚNôsÑÛEŸ¯¯©!f˜Gb6‰9ÅžP2`ŠsÖë¬×Y¯4÷4÷4÷ô•é+ÓW²'9¹3sgæÎ<­{Z÷´î™ig¦™Vž[ž[žËΤČóBÌ1GØjB *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *A *ñ¿&^nr¸kœ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/distinctUntilChanged.png000066400000000000000000001320031431412030200274770ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwxåþÿÀcA<4)¡…j¨¡…„„&H/¡×€R”"Š‚té-téŠ Ò#;=@h¡Ò ‰ôjòûã>çûËù¬».d7»™<{]syC&³÷ÜsÏ=ïWf&CÀ2Ð`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`ÀxMO[=mõ´ÕÞN{;ííU&ªLT™3ÏÏNÃ`ŒeŒÜ%~Xü°øaí#ÚG´¶~Øúaë‹Ï)>§øœ”•b=bbýâwÑæÀ]Ä5‚¸^×â:ÂYW%âG\ïˆkqDËÔ ©8];ÖãXc=†µÖbX‹ìnÒdB“ M&ìš¾kú®é Ñ Ñ Ñ쌱Œ±€+\Ï|=óõÌ âÄ/ˆ/8¹àä‚“Sÿ¨¿WlƒØö p1ÿ×âºÀ]W%âšH\±_j€ùXe‘oD¾ù-÷"NGW~\ùqå5k×f÷`#Ž<:òèåŸ/ÿ|ùgöÆXÆXà5L*˜Tpßü}ó÷ÍÉ’1$£g•bÛÄvŠmf×€×#æùbÎïÉW%âºI\C±×@­€ZÖÃ3›Ü“VOZ=iîîî’I@óù>O =þ¦¹ÿâ2q«¯¯µC ‡î÷©¾wÌÑŠ¾[?œ™Ño·2/¼wÝÆ£¥±5wˆÿÿ»ø7âß‹Ÿ}½ß+¶Yl¿ø.ìR`Ÿ˜Ï‹¹ýëÍ@DÝFÔpD=GÔvDGÔ|DýGÔ‚D]HÔˆD½(%WCâzJ\[±7A­ ¹׫õ ®âóï¶Ý†–Ÿ3~¥Î#ÎÍíP¥æ˜ˆÅ7ª ÿbä’ • Ž Xæ{÷“€)ãK÷U†>*¼ªnÉ¡9gå½›¿&µ uÃ3›r–‘ô$éIį¿Füúª'øO‡úµöÉ™¹uîš¿¾XÒß'䛤¤°°† µüme§Œ·æT žä;²°OîÍïr|Û&æ˜wbÞ„i Ó¦±“¤Í16´žOŽÈÌK/ÖüõÅ’ý%B¾IJЉiØÐYËßVnü8àÖœj#®øŽ,ìSàc,Ò“¸¢qE㊆9rØñžß,,èƒBÛ6¿1mmUõú±Ýƒ:÷¨ëë¿ëî >r8ä°ø^ì_œ˜·‹9¼ã³ Q‡5QŸqnÍGÔ‘DMIÔ—^õŠI\g‰k.ö2ÒO­ Øá¦%CëUÙ>6xéÅÀ…+æî/Q§Î÷ßÇÄ8kY½ÑäI?.S°Û›#®äLÈW£Àj€sÃ3›Ê­B· Ý*Ôæl›³mÎ:r ïp¯œ_‘I{¶«ì¿Ì¹“~Ç—ñŸ÷ˆ¬»zR…€Ë>s|òq Ï<ò°ÇxöÛ8O‘I{®îï¿Ì¹‘’ãËøÏ÷ì©»zR…A caF‰¾‰¾‰¾ 7/ܼp³CEÏØ‚½Þ_±©ÿ´òU—%펙۰ºŽÍÝ1sVÛ ¶Ç‘-ßQ|_ö;陘«;>·õQ{qWåGÔD Ê‘m×\âú‹=óÕ ¼ó4jœÇ¯Å7-W÷wnÐëøÒ¿Éüò{öø¼ìÐvPj@ÊÃ3›DT¨Q59U «–Íç›k-º鮩¿­eÂξ­ô[ØhYåHG¾Ë´ùÓæO›Ÿ8!qBâúÏc»Äø|s­Å®­Á#ÝúÚZ&ìŒjÙ ßÚÀ ÑŒ±Hûâ;ÄwˆïPgxáu†ÿÃÜ#*´ô:óѪ¹þÝ’6ÅLkèçAÇæ¦˜i ý͉í´ÿ]Ä÷ß>@ú!æäb~îÈL^ÔUDÅÓ*?¢%jSŽ|q-F@Z¯¯Ø¬]—˜ZÍædÙµÕ]¡¯­eÀº¥‹£Z–ß;`ö„hjÀë!†g"NÓWI‰I‰‹Ž-:¶è˜ýsË¥nyO½Ô¢kç Ùž6õ·µ|Þ¿ß¶€ƒ‚¼Ë/û‡‡7vjÖ©Y§‡uÖyX‡NÀcl½ªÞS/µØ>+h¶§…¾¶–ÏûGW ˜1hèÆX¤5±¿Çþû»#… Å'ìú0z ׌±•Ãó)7+üQ·CZ~“/xÚ0óäÓŸÌfŒ…çÙ‘iG¦™ì÷L£þÒ†5¿3ÓQ)–â{Ùÿî¢}è'˜ƒ˜oÛ?û‹Úˆ¨“˜©ò#jY¢®e뻋ë5qíFoçÔ ¼Z–ÍQ9Ü?˼>¿F¤õè÷–ï®L<ð´T‹Ží?™M­°…ž‰8íˆHŠHŠò`ȃ!l¾{òÓj9}&¼¨Ý?SÈÇfºø›¿ ýóÃÙÕ^ØŸvÜò»åwËŽÀycl—c>^ÔŽþ=äcó…LÉ—»þœÛ›1žÁþ]¿^mòLÊqûjjpUs•â;ŠïËÝÀ˜•˜cÿÃSˆþüpvµæ®ùˆº–¨qÙjqí&®ãè9po­ xåf» œ°¢Cô力~­–•ºŽ¸:·7µÀ0<pšñ݇ß}øÝ‡¶N®3[ /›ô$¬oÃæ¾ H¾<äÝîsÿ}¶Ú¤¬WY¯²^ »v'ì¦ÿHÙ;lUùؤ'1Q ˜;dJ¾<ä½úc,ÜÇþ»~«©PØK¾ÿ£Ö¥~ýôsTŠï+¾;ïÀLļẔmåE $ýÔ|DKÔ»lµ‰¸Ž£ÿÀ]µ‚Ò3º„ [U'ðûe1QæŽ~“/ý†}c¬~A­HŽž‰8 Ø¡îPwØ|·ÄìGÁƒ}ÃÒÑ€Õ2öI‡Úq¶Ú§û€îºH:’t$é} À«±#¶ú†¥ŸxÉzûd}4c,RW|‡øñìG¿¿ìÑ Xú<*Åw·‹6¤/I:’tDÌ«mþד!µãÒsåGÔ¾l¾CÝ¡îPéJHÍZA™ì]/ŒØš~B_ëeµžßîXM­€á™€=ÚÅ2Ë\,cëT:®j­ceú¦ç €äËè&m~¬µÅV[­Ü¿rÿÊýô(¯2Æö;T¦ozŽ~“/£›¬¬Æ ×KôMôMô­3¼Îð:Ãm=ð9½Ýõkÿn`[…m(Ú“~€'si[3mQë æ#–¢f«­Äõ= ®®”\Û&_¿Cé9úM¾¬úíW'WV£VÃ3{¨—_v|ÙÑw†ï ßÖÃÇGMKwò>”ÑÿnÈ .’/7¶n|±jI[ÓŽs÷ÏÝ?wŸÞàŸÆØúù½%F8ò‚)ùrcë)ÓcáJ 7/ܼp³­>–Þõûzï¶Õb¢=éWx&1¶uõ ê<É—¢&jbÖ-&®ïĵ½ ®¨\^cuýüI+Ï8Hô›|é{ÿ“úS¦Q+@zFì,;7ïܼó?u¡‰&n˜¸áÎw>¸ó-óz€=Ô’)K¦,™bëÄyhï.õ«3õ·µZßï{Ÿ`ëv«´¬Ò²JË{'öNìMcm±ZåúÕ –l-‡Ö½Ê g‹+W4®¨­£Ò¨¿´aÍï8úl-EûØj=Ѷô1<‡˜3‹ù³õ¹[Ô4¨íØZŠš˜­™¸Ö£Áµ‚Ú«Âûk•‰{m-‹=nº&ô*µ¤OÀ)÷²ÕËV/[Ù ƒ_°ÇùsÍŸkþ\c«£ú¹Ý&ÿL÷í/vömÝ ŸÍ¿¢ ß¾1œž0ÆþÝ»fÿ Â$ûË„Q-cáD%ý•ôWÈáÃ!‡­{Ô—ûv*ýœãΑ¥h+ë6m+Ú™î€'sf[3jQÓ ¶c)êc¶ÚP\÷ÑÓà¬ZßÌñÖ "⵿ X·tqT jHŸ€S.ù½¿ö;ŽØã (< ð€ÂÖÝzÔ ÍJ]`Šïø2æDÛþcm î<ºóèý `ŒýïÛs\© HŽ/cN¬zÆ gˆ\¹(r‘Íèõ¨Ï åˆsè3®G}Ö`¨­–íLÀ½Ä<ÙÖùZÔ1¨ç8¾µ2ë–×}ô7¤¼VP¢}‹=Çî:¾ôóûúùªgÔ Þ§œtE¸›Ýa„Áö{¸¨¸¨¸([]ùA®Þáõ;3¹Õe¯Ï+.ö7º(Ë¢,‹²ÐëÆØÿޱÚÏõ; ½ê²×ç}Ä‹×V0©`RÁçJœ+qκ)>áYk¬à({Õ¥h·¿)]+q®Ä9Ñæt=ÜEÌ“­ÏÔ¢vA çU—¢VfóEQqQqQô:¤¤VP[ ? ýL¬ûªË"…êýðÑGÔ ~;a°³{cŽ8ƺ㮩ÒÈ¿òd¦õ¯·¼6¹Û­àom Oüžø=ñ£ïé{ŒŸPy2¡Ñë-¯MÞu1¯kßü}ó÷Í·î9Õ#*´ô:˜d‰YذGÙ+/-1 Ömhݶ¢Íé{¤>17¶5sµ j8¯·u3ëV×€ô=¼^­ üܰ;ãˆr_oY«ýœ ».P+@úAì:„Á)Aìn»}ìö1[õiÓ¾7èLèS²üt®_w/ë¶ÝRnK¹-åè@úc÷No ¥dùéÜÐPÆX¼ºŒ!C2þÍÃ?Z5׿GVŠÒþѪ¹þÝþæ}ÀC2†d¤ïúÄÜØúì,êÔmR²u3[W|âzˆW­<\6kït¢Ü”,‹lZ+4”ZÒàÔAüª€=Âò‡Ë.hÝ56®7°Â2¦ò)_^<ÞÕ7h„u — (P& éYÒ³¤gôC ý±£ÎWXFP”òåÅãÛ+2ÆâU\Ï|=óõÌÖ}¦plÁ^ï¯Hú$¦cÃ’Y)Z~Ó±aIÑžÖí,ÚŸ~@*y–ô,陘[Ÿ—E½‚ºMÊ—¢†fÝÂâznÇkeóöÌ?ê<ñmÊ—5Ïl½½"µ¤À©0ØÀîv8épÒáA‚ YwÇ[KzΪçÍ$ÞYË bEæßfÝΗ]tyHc¬Ô¯ž7A‘³–AÅü®0ÆÂ1 âÄ/ˆ·î-›úO+_•?ËpÚR´§u;‹ö§:Ä|ØúŒ,jÔjœµ54ëv׃âÚÞGjþÛŒ’úß:k™¯pù~W¨À܀݋0Ø`7»šõjÖ«Y­;_ó9>O =öüéõ¼=u?¯ð®Øæ³Í;+Ï=ykwmûplµ»Ö­^$¼Hxz#žÆØàJ…{ZT£]]âW³Nß•­cН¨X¨tç¼¹¼&çÙ’ãYéIÅýr/l^+èf¡KÓëZ§|‘„IQå„zÚöïÚ6ן1ÿènÒݤ»'œ\ðoÞÓv‹Ö³~ŽJg-E{Z·³h±/è’¸š˜[Ÿ‘E‚šs—¢žfÝÚâÚÞûµ‚׫õ®ä9Ñi@̲ìQ×Kût~ñ鳂Uª·¨Û+÷WE+ùøäˆË•w×;e*Tá}³ÎÍ>©²~¬×ÒMžWj3"r®?µ˜°ç NŽØÍÖ® \hÝávøpMõw.Y> ë×0DÔÖ¬·_\'Ò3©X÷£s}›ûhÀï—ÅìuoPZ±÷Ðc3ÿçÏ/|û~®[ŠÚšõö‹ëDz&µë¾Q!pp…©{fc=ñÀçêü[§Jµm¾ã½f‹í|ÿøû™²ßü*oß;e|îÞSÿUïÏ—y0=3=¾Ïù}ÎïsZ÷ Ï|°ùŽJ[ï¦gòáÇ>®ûXŸyy°{ß,®é™Ô ¬ûFZy°#1°Ë¿På"IžÛz0=“ùÎø ßZøÖ·hó}vÞ5z×è°La™Â29ýŠŸŽÞŒ©?NýqêÖ]áz@÷JÁ›¹põ2çs·ýÌ=Æî¼Ùs"™¸ûÛÆÕ+ۿĦ<ÿ[(þ{ß´+j}+þMÚ ™Ä2ï‚Ücñ¿þØúÇÖ?¶Z÷Šð½cŽVôå¨tõR´3G%î}ú¨EPóqõRÔÖ¬·_\'Ò3©X÷Z£ç,Ù=нá¨ÿŠÕ¥ÿù“Ùrû=ýzˆãkðûà›Ú«›‹ŸÍ¹ÏkežçŸëûܸ*Az8ã‹°–1ÜNÜ0qÃÄ Ž‡¾âß§~è›°ÛüxõÇ«?^µî±±jÔ>ÅÅ€ë–/}û‡†¬¶Þòʇ*ª|ˆž ˜}Œ]ÿCíSžÉ4®òcþ¬bÛhµšxrÛ[:\/ -ÆKbùÒwÿÆXüít¹þúwê[÷¡…C÷ûÔä¨tõR´3¥R“˜[ŸE]‚šë–¢¶f½ýâ:‘žI­ÀºoTëüí²õ?xÚ]¼Eó„D´màøÏ–{¯÷X]ülõ~áA<'ܶ"~ÿj0+`V±Òlè›°Û\upÕÁUÖ]ä§SM†Vý‚ØuË;ѽºÕ[ú7·á—+V‚ž ˜}Œº§êžÆÈÅÕ«Ñ[lUŽŒÙfox¡È/Mê¬Hë!Óh¥c,þÎóÏÿŠº5×-EmÍzûÅu"=“Zuߨ8¸ÂÔ=žg_’coΪ3¿z°òÞO\«Óœ»næz¯àŠ"õÄú”n»#ì¢çÀµ /ŒQ P+€Y›ƒ9Bßä€Ýæf½›õnÖ³î.Ÿñkí“ØuË£»Û®½ÐzËWž^yzåiz&`ö164ØÇ#‚œ>[Zg-öŸ¿ê½çýï\ùÿóޣߝ°éU—ž2ݽîc,l+>§øœâs¬{È‹]ûýC&sTºb)Úֺ͞ Oà:bl}u j>®[ŠÚš5qHϤV`Ý7ŠnZ<4Ø‚Òê±SkmZš#.wTÞAÿ3{?ôaãî-*ÎÖ{Vñ¨çJÞ#òÏéæÓ®]£Ë’?ðY¼ýWÆæ>š#"éiÌÞ†!îd‚_VïPÀ;»“xNÔ´pæè\Œ±°mØúa뇭·î!Wsí´Wæ¨tÅR´­õŠ}AŸÀuÄØú,,êÔ|\²|Ö¯aˆ¨­ýÍ÷³¼Ìò2 =“ZußÈ1:×·¹Ö ü~YÌ^Ϲ8g¸WÖüÝ¿Éç]~‰ßÕ½&ÝûñGO{ûoÙ=CFç¢V³"N[Ìú&GìfM‡6Útèß<ht¯zõ¦r1àŠ¥ÿªÂ7óm¶Þò‡K.}¸”> ¤1V¾Poª{#™"Ù Î{“ù¢&ÿU•»1ÆÂ¶ˆöí#Ú[÷ÍoL[[Uå¨tÅR´­õŠ}AŸÀuÄØú,,êÔ|\òگѽêÕ›j½åâÚ> ûµ‚ÚÙ.‘/xNhúŸ‡9·k×hÀ2/­ÜçUû¾ß*»B-sü’»jž-yÏ”^Zq·÷ž:Í›nõíûñÔImêdÿ>[L6O‹~ÅÒ«^™+•»Q+€Y{¾ôú&Gìfk×® ´îX» |¸¦ú;iåÑ:É/ €«‰ù°õ¹XÔ(¨ù8w)êiÖ­-® é°_+¨Ôÿ³7æNó´è4ùÚÿ7ž¶åÿyûïþðKÚaj07`Ï”>Cßä€ÝìjÖ«Y¯fµîdÍçø<)ô8mÀž¿ÜµíñÕîZ·vx‘ð"áEè@zcƒ+zL,äÜå®msýcñî&ÝMº[prÁÉÿæ­´÷·h=ë7àhrÖR´§u;‹öû‚. €«‰ù°õYÔ(¨Õ8w)êió‘¬W³^ÍJo„ýZAëÕzWòÌ5í.+µ9ןZÌØsú&Gìn‡“'.T ¨@u·»µ¤ç¬zÞLßµ *Vtaþ¿¹æò Ëƒ.¢3éoŒ•úÕó&"rÖ2¨˜ßÆX8fAü‚øñÖ½eSÿiå«.ãhrÖR´§u;‹ö§:Ä|ØúŒ,jÔjœµ5´¿‰ô‚ ׆ôF8R+ðß¾`”ÔàÖYË|…˯ð»B­æFì^„¾¶{„å—?\þк .l\o`…eLâS¾¼x¼«oÐë.P& L@Ò³¤gIÏè‡@úcG¯@Ôä„åÅãÛ+2ÆâU\Ï|=óõÌÖ}¦plÁ^ï¯Hú$¦cÃ’Y)Z~Ó±aIÑžÖí,ÚŸ~@*y–ô,陘[Ÿ—E½‚ºMÊ—¢†fÝÂâznÇkeóöÌ?ê<ÁmÊ—5Ïl½½"µ¤À©Ð×Àáö±ÛÇn³Õ)Ÿ6í{³ÎT>%ËOçúu÷ñ²nÛ-å¶”ÛRޤï1vïô:qQJ–ŸÎ eŒÅ« É’1$£uωùhÕ\ÿnY)YŠ6´n[Ñæô=RŸ˜[ŸE½‚ºMJ–¢nfëŠO\Òñªµ‚€‡ËfíNˆ›’e±“Mk…†R+@z@œ:}_°8fà˜c¬;èš*ü+OfBÿzËk“»Ý þÖÖÁÿÄï‰ß?ú¾ÇØñ •'½ÞòÚä]cñºöÍß7ß|ëžS=¢BK¯ƒI–˜… kp”½òÒ³°a цÖm+Úœ¾@êsc[3gQ» †ózKQ7³nUq HßÃëÕ ÊÏ »3>÷õ–µÚÏ©°ëµ¤À®Cè›À$.*.*.ÊV—}«wxýÎLë_uÙë󊅋ݰnÏEYeY”…^0ÆþwŒÕ~®ß™èèU—½>ÿè#ÆX¼¶‚I“ –8Wâ\‰sÖ½Hñ ÏZcGÙ«.E»Y·§hgÑæt=ÜEÌ“­ÏÔ¢vA çU—¢Vfë*O\Òë’ZAm-ü€ö3î«.‹ª÷ÃGQ+@úAì\„¾ÎBìqPx@aëî;jPf¥.0¹w|s¢í ÿ±¶†ƒGwÝyt‡þ0ÆþwŒí9®Ô¢£WxÀì‰UÏcá ‘‹"E.²Õ—®G}Ö`(Gœ#KÑV¶ZR´3ý ÷ód[çkQÇ žãøRÔʬ[R\÷ÑßòZA‰ö-^ôG ëøÒÏïë竞Q+@zCœr„¾®@ìqþ\óçš?רêЇ~n·ÉŸ¿ ý‡eÂξ­ô³Õ†Ã7†o §§Œ±7Æ®äƒéB¦Q-cáD%ý•ôWÈáÃ!‡­{Ô—ûv*ýœãΑ¥h«¿yïïáÃ!‡E;ÓÝðbÎlóàvömÝ µûKQ³Õ†âºžgÕ üfŽ/°fá®ýeÀº¥‹£ZP+@úDœr;7ïܼs3¡¯s{¨%S–LY2ÅV¿?´w—úÕ™îÛZ­ï÷½O°u»UZViY¥e‰½{'ö¦Œ±¶ÇX­rýê„I¶–Cë‡^eŒ…³Å+WÔÖQiÔ_Ú°æw}¶–¢}l>ü°h\Ѹ¢ô1<‡˜3‹ù³õ¹[Ô4¨íØZŠš˜­™¸Ö£Áµ‚Ú«Âûk• zm-‹=nº&ô*µ¤OÀ)÷²ÕËV/[ú:°§v÷Ž/;¾ìè;Ãw†ï ëîþQÓÒ¼%Fô¿ò‚©òåÆÖ/V-ik˜8wÿÜýs÷é]þiŒ­ŸßûPbă!/–’/7¶ž21®´póÂÍ mþ½çÕ;Õઉɗ¢Mlµ˜hOúžIÌŸmÞ-׺ñŪ%©ó$_Š:˜¨‰Y·˜¸¾×zô.¸¢VPpyÕõó&­<{à qoò¥ïýOêO™F­é°³$¿˜Ð7å€=ÚÅ2Ë\,cëô9®j­ceúr –ÑMÚüXk‹­¶Z¹åþ•ûéQ^eŒíw¨L_â%±Œn²²c,\/Ñ7Ñ7Ñ·Îð:Ãë ·îi^mòLÊqûþZ—úõ9*E;ˆ6±n+ц¢=éWx21—¶5Óµj>b)ê`¶ÚJ\ßÑ£àêZAɵmòõ;Dè+–U¿ýêäÊjÔ `x&à4`‡ºCÝ¡Ú:•Î~<Ø7,=_Ä>éR;ÎVûtÐ}@÷IG’Ž$¡/xõ1vÄVß°ô2Å>YÍ‹Ôß!¾C|[½®ú˜ …½äÇßFöhP,}•⻋v°ÕJ¢ éK¤G’Ž$ój[gvQ÷HÏ•Qû²Õ>⚎®„Ô¬”ÉÞõˆ­é9ú­ÖóÛ룩0<pšñ݇ß}øÝ‡¶N«3[ /›ô$¬oÃéçàw»Ïý÷Ùj“²^e½Êz%ìNذ›þ ecì°Uåc“žÄD5l~B¦CÞ«_0ÆÂ}bý=öwû1pz»X|_ûѯh7úi‹˜W‹9¶­³¼¨¤£è÷IX߆ D½ËV›ˆë8úÜU+(=£KȰUu¿_•~¢_¿aß«_P+’#†g"N;"’"’"†<ò`È[§ØaŸVËé3áEíþ™B>6÷eÀ®??œ]ÍæTC¸åwËï–€óÆØ.Ç|&¼¨ý{ÈÇæ™vý9·7c,<ƒ´LZ&-³ÕÅÓûÅw´õÀgA´}€´ḴíÏÃE=ÄÜ5Q×5.[í ®ÝÄu=ܬs—cVtˆþÝÜÑo¥®#®ÎíM­°F ÏDœÆ$I’8$,&,&,ÆÖ‰ÖÿV‘·ò)7+ôh\·ƒ™.„½Ù0óäÓï–ëdªq}ØõaׇÑ[¸fŒ­žO¹Yá׈ºÌ/%>8ð´aæÉ§?™Í ϳ#ÓŽL;2Ùï™Fý¥ k~g¾èW|/ûß]´ýsómûgQu3U~D-KÔµl}wq½&®Ýè-ðœZW˲9*‡ûg™×ç×SE¿ï®L<ð´T‹Ží?™M­°…ž‰8mN;N$žH<1R©ŽTÿá/C‡~اڥ´~—»Ë¤ ìUäUÞÖ7-°¦Àšknúßô¿éOZcìÜ·«]JëñR\î­Çƒ²W}P¾c,<›ý»…/;öíTúùÓl{»6Ø‘vJ±ýâ»Øÿ¾Üõ €Y‰¹·˜‡Ûš ˆ:‰¨™¤ù'½ ý°OµKög>âM\¯ÑCàɵ‚JF,›ûvZ~kæŸÑ`ëñ`x&à4=ïHJLJ\tlѱEÇìO;Z–(uË{ê¥];ÍN+Sÿçýûm ˜1(È»ü?”z›ujÖ©Y§‡uÖyX‡NÀcl½ªÞS/µØ>+hvZ‰—ž÷®0cÐÐ;Œ±Hkì¿89Å'!ß8wÒÿÛÊNnÍ©<ÉwdaŸÜ›ßåø¶MÌ;1ïļ Ó¦%Lc'H›clh=Ÿ‘™—^¬ùë‹%ûK„|ãÜ`é·•?¸5§Úˆ+¾# û¸À‹ô$®h\Ѹ¢!‡C‡v¼ç7 ú Ð¶ÍoL[[U½~l÷Åà£Î=*Å:ÅúÅïr|ÛÄwß‹ý ’óv1‡w|v!ê0¢&#ê3έùˆ:’¨)‰úÒ«^1‰ë,qÍÅ^Fú©;Ü´dh½*ÛÇ/½¸pÅÜý%œ÷Vo4yÒÆËìöæˆ+9òÕ(pZà\ÀðLÀfŸ{´zÒêI«pïpïpïì)Ð|¾ÏÓB¿iLÜê„FÅ+ÙuæÃiÕžjZ•¬YZ—[-®9xOTËŒÕÏmlÜø|Õb3F-¿¢ûã •Šµ/”%×ÕœI¯÷{{ì=°÷À+ß]ùîÊwìMæcƒ«züMó°¡eâV'Œß_yÌ®3s;T{ªMX|£fi]^r¡æà=Q ªŸÛØxÊøªÅfŒú¨üŠî[„k_(KþšŒ±Àÿs'éNÒÈE‘‹"•8Wâ\‰s¯wtTÏâ»ÏkíСû}j†ïs´¢ïÖgfôÛ­Ì ï]c·ñhilÍâ¿Åÿ.þø÷âg_ï÷ŠmÛ/¾ »Ø'æóbnÿz3Q·5QϵQç5Qÿµ Q5"Q/JÉÕ¸ž×VìMP+H®Àõj½‚«øü»m·°¡å'…ÅŒß_©óˆss;T©9&bñ*ÿ¹äBå‚#„ùÞý$`ÊøÒ½C•¡ ¯ª[²EhÎYyïæ¯I­HÀðLÀéÈãÊ+?®¼&pMàšÀìläÑ‘GG½üóåŸ/ÿÌ^ÀË ¼¦‚I“ oþ¾ù!C2†dôÌ£Rl›ØN±Íì:ðzÄ<_Ìù=ùªD\7‰k(ö¨P+Ò:`x&àtíXc=ŽõÖbX‹a-Ü5½h2¡É„&vMß5}×ô„è„è„hö ÆXÆXÀ®g¾žùzæñ âÄœ\prÁÉ©TŠß+¶Alû¸‚˜ÿ‹kq]஫qM$®Ø/µÀ|€á™€ñ_Ï“ž'=?úüéó§×Œ[3n͸N{;íí´×Y‹ óAçƒÎOO˜ž0=áࡃ‡z|üññÇÇixŒ±Œ±€»Ä‹?,¢}DûˆöÃÖ[?l}ñ9Å矓ò£R¬G¬S¬_ü.Ú¸‹¸F× âÚA\G8ëªD\ãˆëqí#®ƒhy€Z õã5=mõ´ÕÓV{;íí´·ST™¨2QeÎcŸ±Ïˆ2¢Œ(#Òˆ4" ÝÐ ÝÐ ÍÐ ÅP Å Ù ‹a1,Æc±Çˆ0"Œc·±ÛØmì4v;Æc‡±ÍØfl3¶[­Æ/Æ/Æ/ÆÏÆÏÆÏÆfc³±ÙøÉøÉøÉØhl46???Œ Æc±ÎXg¬5ÖkÕÆjcµ±ÊXe¬2V+•Æ c…±ÂXn,7–K¥ÆRc‰±ÄXb„áF¸±ÈXd,2 ŒÆ|c¾1ߘkÌ5æsŒ9Æc–1˘eÌ4f3ïŒïŒïŒéÆtcº1Õ˜jL5¦SŒ)Ædc²1Ù˜hL4&ßßßãñÆxãããcœ1Îg|e|e|eŒ5Æc/Œ/Œ/ŒÑÆhc´1ÊeŒ2>7>7>7>3>3>3†ÃáÆ0c˜1ÌøÔøÔøÔb 1†ƒÁÆ`c1Èd|l|l|l 0Œ0#Ì3úýŒ~F_£¯Ñ×èmô6z½Œ^F/£‡ÑÃèat7ºÝ®FW£«ÑÅèbt1:ÎF'£“ÑÉèht4:íöF{£ÑÎhg´1ÚmŒÖFk£µñ‘ñ‘ñ‘ÑÒhi´4>4>4>4šÍæFS£©ÑÔhb41šŒFF##Ä1BŒF£QϨgÔ3êuºF°luŒ:F#Ð4ÚFm£¶áoøþFM£¦QÓ¨aÔ0jÕŒjF5ÃÏð3üŒ*F£ŠQÙ¨lT6*ŠF£‚QÁ(o”7ÊåŒrF9£ŒQÆ(c”6J¥RF)£”QÒ(i”4J%ŒF1£˜QÌ(j5Š…ÂFaÃÛð6¼‚FA£ QÀ(`0òùŒ|†—áexyŒOŸ§ÏÓçêsõ¹ú}Ž>GŸ¥ÏÒgé3õ™úLý;ý;ý;}º>]Ÿ®OÕ§êSõ)ú}Š>IŸ¤OÒ'êõ‰ú}‚>A¯×Çë_ë_ë_ëãôqú8ýKýKýK}¬>V«ÑÇècôÑúh}´>R©Ô?×?×?×Gè#ôúp}¸>\ªÕ‡êŸêŸêŸêƒõÁú`ýýý}>H¤Ôêõú}€Þ_ï¯÷×ûéýô~z½ÞGï­÷Ö{ë=õžzO½‡ÞCï¡wÓ»éÝô®zW½«ª‡ê¡zg½³ÞYï¨wÔ;êôz½ÞNo§·ÕÛêmõÖzk½µÞJo¥·Ò[ê-õ–z ½…ÞBo®7×›ëÍôfz3½‰ÞDo¢7ÖëõFz#½‘ÞPo¨7ÔCô=D¯¯××ëëõôzz==XÖƒõ =HÒõ@=PÐôÝ_÷×ýõZz-½–^C¯¡×ЫëÕõ꺟î§ûéUõªzU½²^Y¯¬WÒ+é•ô z½‚î«ûê¾z9½œ^N/«—ÕËê¥õÒzi½”^J/¥—ÔKê%õz ½„^L/¦Ó‹êEõ¢za½°^X÷Ö½uo½ ^P/¨Ð èô|z>=Ÿî¥{é^z^=¯žWÏ­çÖsë¹ô\z.=§žSÏ©çÐsè9ôlz6=›žUϪgÕßÓßÓßÓ³èYô,zf=³žYGGGKKKSSSCCCϤgÒ3éô z-IKÒ’´—ÚKí¥öB{¡½ÐžiÏ´gÚSí©öTKдí±öX{¬=ÔjµÚívO»§ÝÓîjwµ»Úmí¶v[»¥ÝÒniñZ¼¯ÝÔnj7µÚ í†v]»®]×®jWµ«ÚíŠvE»¬]Ö.kµ‹ÚE-N‹Óâ´ Úí‚v^;¯×Îjgµ³ÚíŒvF;­ÖNk§´SÚ)í¤vR;©ÐNh'´cÚ1혫Åj±ÚíˆvD;¬ÖkµƒÚA-F‹Ñb´ýÚ~m¿­EkÑÚ^m¯¶W‹Ò¢´(1)À¦jª¦jЦhŠ&i’&iÍ¢Y´_µ_µ_µ-B‹Ðvi»´]ÚNm§¶SÛ®m×¶kÛ´mÚ6ííím‹¶EÛ¢mÖ6k›µMÚ&m“¶QÛ¨mÔ~Ô~Ô~Ô6h´ Úzm½¶^[«­ÕÖjk´5Úm•¶J[¥}¯}¯}¯­ÔVj+µåÚrm¹¶L[¦-Ó–hK´%Úbm±¶X[¤-Òi µ…ÚBm¾6_›¯ÍÓæió´9ÚmŽ6[›­ÍÖfj3µ™Ú m†6C›®MצkÓ´iÚ4mŠ6E›¢MÖ&k“µ‰ÚDm¢ö­ö­ö­6^¯×¾Ñ¾Ñ¾ÑÆiã´qÚWÚWÚWÚXm¬6VûBûBûB­ÖFk£´QÚ(ísísísí3í3í3m¸6\® Ó†iôOµOµOµ!Úmˆö‰ö‰ö‰6H¤ ÒjµÚm€6@ë¯õ×úký´~Z?­ÖGë£õÖzk½µžZO­§ÖCë¡õкiÝ´nZW­«ÖU ÕBµP­³ÖYë¬uÔ:jµZ­ƒÖNk§µÓÚjmµ¶Zk­µÖZk¥µÒZi-µ–ZK­…ÖBk¡5ךk͵fZ3­™ÖDk¢5ÑkµÆZ#­‘ÖHk¨5Ôj ´Z­¾V_«¯ÕÕêjuµ`-X Ö‚´ -H Ôµ@-@ Ð4Í_ó×jiµ´ZZ ­†VC«®Uתk~šŸæ§UÕªjUµÊZe­²VI«¤UÒ*h´ 𝿫ùjå´rZ9­¬VV+«•ÖJk¥µRZ)­”VR+©•ÔJh%´Z1­˜VL+ªÕŠj…µÂZaÍ[óÖ¼µ‚ZA­ V@+ Ðòiù´|𗿥yiy´SŸ©ÏÔ'êõ‰š &¨ ê#õ‘úH}¨>Tª÷Õûê}õžzO½§ÞQï¨wÔÛêmõ¶ú—ú—ú—¯Æ«ñêŸêŸêŸê õ†zC½¦^S¯©WÕ«êUõ²zY½¬^R/©—Ô85NSÿPÿPÿPÏ«çÕóê9õœzN=£žQϨ¿«¿«¿«§ÔSê)õ7õ7õ7õ„zB=¡W«ÇÕX5VUªGÕ£êaõ°zX=¤R©1jŒ£P¨Ôh5ZV÷©ûÔ}j”¥F©‘j¤©êª®êbPUQUVeUV-ªEµ¨{Ô=ê5BP#ÔÝênu·ºSÝ©îTw¨;Ôê6u›ºMݪnU·ª[Ô-êõgõgõgu“ºIݤþ¤þ¤þ¤þ¨þ¨þ¨þ þ þ ®W׫ëÕuê:uºF]£®QW««ÕÕê÷ê÷ê÷êJu¥ºR]®.W—«ËÔeê2u‰ºD]¢.V«‹ÕEê"u‘ºP]¨.Tç«óÕùêjoµ·Ú[í©öT{ª=Ôjµ›ÚMí¦vU»ª]ÕP5T U;©ÔNjGµ£ÚQm¯¶WÛ«íÔvj;µÚFm£¶V[«­ÕÔÔÔ–jKµ¥ú¡ú¡ú¡Ú\m®6W›ªMÕ¦jµ‰ÚDý@ý@ý@m¤6R©!jˆ¢6P¨ Ôzj=µžZW­«ÖUƒÔ 5H­£ÖQë¨j€ ÖVk«µÕZj-µ–ZS­©ÖT««ÕÕêj5µšZM­ªVU«ªUÔ*jµ’ZI­¤VT+ªU_ÕWõUË«åÕòjYµ¬ZV-£–Q˨¥ÔRj)ÕGõQ}Ôj µ„Z\-®W‹ªEÕ¢jµˆZDõV½UoµZH-¤P ¨Ôüj~5¿ê¥z©^j^5¯šWÍ­æVs«¹Ô\j.5§šSÍ©æPs¨9Ôlj65›šUͪfUßSßSßS³¨YÔ,jf5³šY}G}G}G}K}K}K}S}S}S}C}C}CͤfR3©Ô j%IIR’”—ÊKå¥òBy¡¼Pž)Ï”gÊSå©òTIP”å‘òHy¤%J‰R¢”H%R‰ÓqÚWY‘Y±(Å¢ìQö({”%B‰Pv+»•ÝÊNe§²SÙ®lW¶+Û”mÊ6åååe‹²EÙ¢lV6+›•MÊ&e“²QÙ¨lT~T~T~T6(” Êze½²^Y«¬UÖ*k”5Êe•²JY¥|¯|¯|¯¬PV(+”åÊre¹²TYª,U–(K”%J¸®„+‹”EÊ"e²@Y ÌWæ+ó•¹Ê\e®2G™£ÌQf)³”YÊLe¦2SùNùNùN™®LW¦+S•©ÊTeŠ2E™¢LR&)“”‰ÊDe¢2A™ LPÆ+ã•ñÊ×Ê×Ê×ÊWÊWÊWÊ—Ê—Ê—ÊÊÊÊeŒ2F¥ŒRF)#•‘ÊHå3å3å3e„2B¡ S†)Ô¡ÊPe¨2D¢ Q+ƒ•ÁÊ e2HùXùXùX  P(aJ˜¦ôSú)ý”¾J_¥¯Ò[é­ôVz)½”^J¥‡ÒCé®tWº+]•®JW¥‹ÒEé¢tV:+•NJ'¥“ÒAé tPÚ+í•öJ[¥­ÒVi£´QÚ(­”VJ+¥¥ÒRi©´PZ(-”æJs¥¹ÒLi¦4Sš(M”&Jc¥±ÒXi¤4R) •†JC¥Ò@i ÔWê+õ•ºJ]¥®¬+ÁJ¥ŽRG T•@¥¶R[©­ø+þŠ¿RS©©ÔTj(5”J5¥šRMñSü?¥ŠRE©¢TV*+••ŠJE¥¢RA© TPÊ+å•òJ9¥œRN)£”QÊ(¥”RJ)ÅGñQ|”J ¥„R\)®WŠ*E•¢J¥ˆRDñV¼o¥RH)¤P (”üJ~%¿â¥x)^J^%¯’WÉ­äVr+¹”\J.%§’SÉ©äPr(9”lJ6%›’UɪdUÞSÞSÞS²(Y”,Jf%³’YyGyGyGyKyKyKySySySyCyCyCɨdT2*” J9QN”å—òKù¥ü\~.?—ŸÉÏägòù‰üDNäù‘üH~$?”Êåûò}ù¾|O¾'ß“ïÈwä;òmù¶|[þKþKþKŽ—ãåxùOùOùOù†|C¾!_“¯É×ä«òUùª|Y¾,_–/É—äKrœ'ÇÉä òù¼|^>/Ÿ•ÏÊgå3òùŒ|Z>-Ÿ–OɧäSòIù¤|R>!ŸOÈÇäcò19VŽ•cå#òùˆ|X>,–ÊåƒrŒ#ÇÈûåýò~9ZŽ–£å½ò^y¯%GÉQ¢ø'.÷ÅI^$Y’%y¼GÞ#ÿ*ÿ*ÿ*ï–wË»å]ò.y—¼CÞ!ï·ËÛåíòVy«¼UþEþEþEþYþYþYÞ,o–7Ë?É?É?ÉåòFùùùyƒ¼AÞ ¯“×ÉëäµòZy­¼Z^-¯–¿—¿—¿—WÊ+å•òry¹¼\^&/“—ÉKä%òy±¼X^,/’É‹ä…òBy¡<_ž/Ï—çÉóäyòyŽiŸ´OŠ’¢¤()RŠ”"%]Ò%]R%UR%ER$E,’E²H¿J¿J¿JR„!í’vI»¤ÒNi§´]Ú.m—¶IÛ¤mÒ/Ò/Ò/Òi‹´EÚ,m–6K›¤MÒ&i£´QÚ(ý ý ý m6H¤uÒ:i´VZ+­•VK«¥ÕÒ*i•´JZ)­”VJ+¤Ò i™´LZ&-•–JK¥ÅÒbi±.…KáÒBi¡´Pš/Í—æKó¤yÒ–>–>–H¤R˜&…Iý¤~R?©¯ÔWê+õ–zK½¥^R/©—ÔCê!õºKÝ¥îRW©«ÔUê"u‘ºH¥ÎRg©£ÔQê(u:H¤vR;©ÔVj+µ•ZK­¥ÖR+©•ÔJj)µ”ZJ-¤R ©¹Ô\j.5“šIͤ&R©‰ôôôÔHj$5’B¤)Dj 5Hõ¤zR=©®TWª+IARTGª#Õ‘¤)@ª-Õ–jKµ¤ZR-©¦TSª)U—ªKÕ%?ÉOò“ªJU¥ªRe©²TYª$U’*I¤ RÉWò•|¥rR9©œTV*+••JK¥¥ÒR)©”TJ*)•”JJÅ¥âRq©˜TL*&‘ŠHE¤ÂRa©°TH*$’ J¥‚R~)¿”_Ê'å“òIy¥¼R^)”GÊ#å’rI¹¤œRN)§”CÊ!å²IÙ¤lRV)«”UzOzOzOÊ"e‘²H™¥ÌRféééé-é-é-éMéMéMé é é )“”IÊ$e2H,‰–DK¢å¥å¥å¥å¹å¹å¹å™å™å™å‰å‰å‰%Á’`I°<²<²<²<´<´<´Ü·Ü·Ü·Ü³Ü³Ü³Ü±Ü±Ü±Ü²Ü²Ü²üeùËò—å¦å¦å¦åOËŸ–?-×-×-×-×,×,×,W,W,W,—-—-—----q–8Kœå‚å‚å‚åœåœåœå¬å¬å¬åwËï–ß-§-§-§-¿Y~³üf9i9i9i9n9n9n9f9f9f9j9j9j9b9b9b9d9d9d‰±ÄXb,,,,Ñ–hK´eŸeŸeŸ%Êe‰²DZ"-‘¢l/ÊubÚNœª_\ÁòP`p``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00.÷dä“‘OFÊÅäbr±Ñ½F÷ݫ勖/Z¾hÐ8 qéI¥'•ž”{Gî¹w (P(À·¶omßÚuÊÕ)W§Ü€Þzè½¼ÄòËKœm~¶ùÙæ´'ØBL àìv¥þzØ´!{ßö>½‘±×¾3¡gBÏ„vÞýy÷ç^“½&{MÎîômïÉ8„Ø|ûì}z#c¯+öT|³øfñÍ>)õI©OJ弜órÎËÙ]¬í/miû‹s¿ }`¤åxi00€C€Í·/ÀÞ§72ö:wO‰‡3W(_¡|…òÙS]±‹Å.»è¬oDßi9Þ@ÚEL àà×Ó@³÷qï¾@ÚÚïž¹÷éiåxwõž:Ðå@—]ŠÞ+z¯è=û¿+ÿ€üò賥ϖ>[¶Eo‹Þ}b׉]'vÝÉv'Ûlâ=Á×^[xmáÁ ƒAƒæÿ4ÿ§ù?‰{|sÜÏq?Ç}ûë÷Yë³ÖgmÊ¿}`–ËñÒ.``‡»·ÝÒs²ß=yïÓÓÊñîº=uuýÕõW×ÍP4CÑ ¶Ö/‚Û/}¾ôùÒçÑÚGk½f@—1.c\FGî~ü2ø%#-Žw>8ÄY¥±¾+í}h7Úýî®5›c{8ÞSsÛ %J,Ô´}ÓöMÛÛZsÉí%·—Ü.îvn¯X·tÝÒuKíß¼`Ù‚e –Ñ·p¼€ô†˜À!”Æh7xÂ~'æx÷œm›ÖzZëi­m­³P@¡€BÇN;yì¤ëZ`Þžy{æí±µ …½ {ö~½ßNß½9Þ@ÚEL àJc´óۭݸvãÚ¶¶§þÑúGëåõ8Þ@úAL àJc´`Àˆç(X¯Ág­ÏZŸµb¿˜ãÜêH‹}zôéÑå›”oR¾IÊ{Bò -%[.îŽMI í8qŸ¨¹wûŽä<’óHΔ¨É‰ûV]1ûJNÄÕâÎiçö‡äÁ|úœåx``†‰Ç9ŠG5º®¼»ò­•o­|ËsBñ­“Ê]G<öÐÓ‚ÀÔ €Ç=÷tÜSç~;ñXΔUÅû>Å#]·÷“¿åÔö»+ö~ʹ+voÏLŸ°úP}¨>´µñHX3aí·˜…’ÇuÎR5¶jlÕØ”<C-ž‰NM95åÔWÌÁÿ“‚WÝæ[nU¸U¡N¹:åê”su¯>$|Hz›åx``&‰NŠ;®ì­DáL<$Y¼ÿLÜ7ùhí£µÖŠ»—æí™·gÞñþ<ë5丟ã~ŽûžB<ëô¬Ó³NŽ”¶Ík4¯Ñ¼»ýØíÇnÇN;yì¤xcœxÏëÉ '7œÜ {(Þüz L®[¾¿ÿØ_³­Ÿr]:¾¶}ÓöMÛ7Ízï *Tðç\?çú9×Q7FÝ%î63öûŒ}7ü¸áÇ )¹®ÿnýwë¿{Õ­ï)Lþ¸Tû÷¥‰wÆeŒË—Q¼%Zü÷î±»Çî+Þlÿqâ‚¶Ú65÷»+ö~Ê¥~ì =3-ï)_Ï·›¾Ýôí&[k˜ÖzZëi­Í–Øo±&|0რÿs¶ÍP4CÑ S{Ní9µ§ˆÅ=Óâíò[Om=µõ”#gaõþÕûWïÕmòlȳ!Ïì¯YŒi“fNš9i¦8šâîÇÝ»ÿdä“‘OFŠ`ûøÞã{ïïG÷‰:òXcñïÍw¼[o½-×±\Çrí¯¿ñˆÆ#-#z‚xh¶xTòŽwü¸ãÇösÚÏi?ÇÖLÆY#€8{&¿cÛ––YZfi™e×¾Üðeò¾!fžƒ püÁñEŸ·µÑg^õÝÛi}– à9€ €@šÔ[é­ôVì—«Ú­j·ªÝªøfñÍâ›9RÀ>×ݹ(¤d=¢Pk³Ôx?Çý÷E¬ëÜ»*ÿ3cܹ;r÷«î)W”S'®P¾Bù å“ÿ/ýf÷›Ýo¶ˆáíÿ.]ØßÎŽÃ;ï8üU·yÖÛ³Þžõ¶ý>0ÿ§ù?ÍÿI¼ÿÒ‘õ‹r¶ý­õdÖ“YO<á>]`Ï왞¼§|=¡B…6²µ†ˆAƒ"¥Ÿ8¹à—Á/ƒ_^Ÿ|}òõzq@Ö¤¬IYÅ[lí¯3y(èÈÖŠàÖþ»QÅC¡ÅŸÂ8·ÿ$Ÿu¤‡3ÑȯG~=òkûg¢ä÷¿:²~ñ¶æ¼ ó.̻г/ûgOñT•]ÓwMß5Ýñõ‹?­³¿…Éßf¹žƒ˜¤11Æ|ó¡#E±/^¼^éêUß´çøšS²ž6jµjëg'›ËðÀÀ Ío5³ÿ€GñÆSg•«¬èÞBjmý¬xc\J¾ïÙÿÈþßËŽ{ú?ËK,/±¼Dz €ƒÿüïà¿Þvž«s®Î¹:)ßZq—OéI¥'•žäÜ`ÀZòõØz+§#¿…ØÕßÔzfÚ:ÞS¾žF £„ak â ¬f:çÚo1ñhbqïãë­_ÜKê¬ý;bóˆÍ#6‹ŸNþ9šéh¦£™œ0J8p¯§YwñÐéäo…·õGB)ogñæÚ”ϾÄÝÒ%·—Ü^r»õÏV¾SùNå;" uÖQ³åÍ-onyÓÖÖ;yì䱓æžåx``fl‹Þ½-ÚVqªh†¢ŠfJgýÆÄB‰… ù¬õYë³ÖBˆäwXoÿõ´½–Öài­§µžÖúõÖœüA)ÙÚýïÿxÿÇ¶Ö JØÎÚ_¢^$[‘lE²Yÿ®Ïg}>ëóYÀžðM=¡g¦­ã=åë÷wÚZƒsc$ϽťdϺ®ºÎã<^úýÜŽwý7ý7ý7[k÷’:·µ4hœ’-ß7mß´}Óì¿8ù=MÜœ@þùØz8¶­ßhŽY.€ç &iÆØjc«­f«85$óÌC2»â÷:ò¦4Ç×–’õÔ½]÷vÝÛ¶~¶P@¡€BžVªKëpJpꬭµÿÖÉäÇ…³öšxc¢¸#<ùçÏøs°'|SOè™ik)_ý?Áï—5Ó9×~‹%¿wÐLG´}{Zìi±§Eê÷sO8Þ“?FÛÚ7g¿9ûÍYçî5ûnväwÍz{ÖÛ³Þvõ“3¬Ùz_xò÷^›u– à9€ €@šÑ¤o“¾MúÚ*N­Ý¸vãÚ®(T­ÿnýwë¿ó„bjÏ©=§öÌî°ˆAƒ"%LJ˜”0É]{-­À¢@ìÞèR³KÍ.5íßù‚W¯9m}SOè™ik)_¸ÛÞ֮켲óÊN3sí·XÜý¸ûq÷=ùrq­ií?ÙuýÜŽ÷ÐF¡BÙZÃÖS[Om=åܽ¶åñ–Ç[§dË;ï8¼ãp×½8Ö®eº–éZÆú7†l Ù²Õܳ\ÏAL ÒŒª±Uc«ÆÚ*Nß{|ïñ½®(T‰w¶yB!Þ1™ý‰7 Šÿž^zýéõ}Æ>cŸx”¥«÷ZZ€Å½°îmûÁ<¹á䆓€Ó[ì =3m­3åëi 5ÐhöD3sí·Øýã÷ß?îÉG#ÄÖÅ,Á–`Kðâ‹{,î!Þ(Ü´}ÓöMÛÛ¿ó;uú¹'ïþýüûù÷³µ†³ÍÏ6?Ûܹ{Ç‘7§d›SŸØsÏr<00H3Š+~¬ø1[Å©›ov¾ÙÙ¿7ùco=!„p¤T÷zD±Õ¹­—Öà”¿×3å[[®c¹Žå:ÚZC|³øfñÍ<íh%võ7õ„ž™¶Ö™òõ´ŸÓ~Nû9¶Ö l¦sî?´XÖ¤¬IY=ùÄ‘=&zLô˜ñǰÚFm£Ú¿Ÿ;%Ìz¼—í_¶Ùþ¶ÖpÛû¶÷moçö@qvKÉ–ÛßæÔW¡|…òÊ›{– à9€ €@šñþñ÷¿ÜVqêiØÓ°§a®ø½âÊžB7FÝuc”ø©sdÌ‘ÑYJ?ÝO÷ÓÅ‹{ŽSÒzi=NyÿIùú t*Щ@'[kpï#¾S¿U €=§g¦­u¦|=öß”9­õ´ÖÓZ{BX"þ¿êôß.^¾xùâeÏ9Ö\ñ[îx¸ãáŽo7}»éÛME²ÉV$›³Î^“½&{MN+ÇNjž‰žuzÖéY'O›}å@þž½Wô^Ñ{æžåx``fØ/>º®4&Êšž'—ü!Àö!øÊÅÊ E3Í`Ö@Èu[èÜõÛ/ ‹G˜zÚÑJLl¾xË›[ÞÜò¦­5$Û¨{>Ÿµ>k}ÖÚÚΣ™Žf:šÉsŽ5çþõ¡úP}h¿‘oT¾QùFúúú÷]Ùweß•›‹o.¾¹ø£µÖ>Z›>`ûg"WÀâíË)ÙòÜ;rïȽÃs`±=æžåx``fØ”Ÿë„ûWà_zrlë·Ìz2ëɬ'Ík5¯Õ¼–(g§þÃ- €S¾~û…¼{ïî½»÷<íh%&6_lÿ\ ŽÓ”?ª7%Ä›bmmaŽû9îç¸ïø3ÒV,òìøŸ¥'•žTzR×2]Ët-3çÌœ3sÎH•¥ÊRåK'.¸tÂþ6¤ÏØþ™È€ëLÉ–—0J% [?ûxÁã0Ëuî,Às€4£Ögµ>«õ™­âÔ‰]'vØåŠß+ÞŒ›¶`G~¯¸_Íñ`8ù4îý¾é-¶W·ãtMM®kUûwt%J,”X(u¾£ø]¶¶$Ϻ<ëò¬óÌ6L+Ǧs×é¬õø÷óïçßÏÖzÄã—ÝuÜm‹Þ½-ÚÖ¶‰‘ÄÓÎV)ÿ-âþÅR J-(µÀ~øÝýÝîïvWÌÌý‡M®Xò×CX;Wç\suœÛŸ/¹PäB‘”l¹ýmö´³§9f¹žƒ˜¤miûKÛ_l§Ön\»qíFWª~ªûSÝŸê¦õØ–äï~«”T)©Ò?láç³>Ÿõù,Ç·–8åëo<¢ñˆÆ#l­aO‹=-ö´ð´£Õu­jÿ©;Ùîd»“-u¾ãÍÎ7;ßìlkK|kûÖö­í™m˜VŽMç®ÓYë[mlµ±Õl­GÜQê®ñ|蹡熞³µmaÆ… sïèíŠß²æ×5¿®ùÕ~ô+‚ùôvì¤æ™h{ÄöˆíÎíÏ»Çî»{lJ¶¼iû¦í›¶·õ³‡*ªt¨³\çÎr<00H3&›po« *TÐÖš ÿ-ü·ðÔ9^b>Œù0æC[[Ò@k 5ÐÜÛsÒú±éÜu:k=ÖN.Wd®È\‘®¸Ò¾'#ŸŒ|2²°waïÂ6™»sÉÎ%;—˜/nu¡Õ…Vl­aâò‰Ë'.wnk§Ïxt¯Ñ½F÷²ßÎÎíÓZOk=­uJ¶ÜþŸkly¼åñ–ÇÌr;ËðÀÀ Íw:Ú*NÍP4CÑ âQÎúâ¯öï8LB”)EqÐúãÜÚµ t*Щ@'WßÔ\§ç—ݹö˵_®ÙZCý£õÖ?êÜ­­‡ÜŠؽ­:°íÀ¶ÛÚZsøð!áCR§`m¿X?ìаCÙ;J[ëtî¶õÿ¦ÿ7ý¿±µ¶ZhQ 5ƒû÷ðlZ°iÁ¦"$öœè¬ßbÿ!ùG3Ít4“³¶9î~Üý¸ûé3¶& ôôôwnßF“’-ßzjë©­§lýl§>útêãÜm¾²óÊÎ+;ÅÜ­?ÚUíªvÕܳ\ÏAL ÒŒ‘"Dæ@þ¶JTë¿[ÿÝúïœõ“?4Ò½!Äpy¸<\¶õS㞎{:Št÷ß?~ÿ8°ç”ÝoU¸UáVqg¡­õœm~¶ùÙæ)ßÚk ¯-¼¶ÐÖoIz¹«UíôëýQïz¸º`-P¾Bù åmm‰\L.&#6kìÈ[3W^uzÕéÔ93Úïƒj ª1¨†§õ@gý–¼ ó.ÌksÔz¸ãᎇ;œµµ›ªlª²©Jú €ã›Å7‹oöþñ÷¿os†prÃÉ '7¤|kyû¯#[nÿì™órÎË9/;·?Ûºç8GÆsdÛcîY.€ç &iÌ€Þzèm«DUjA©¥¤¼\õ"àEÀ‹€ók̯1ßàYOf=™õÄÖO}0რLpV‘nï⽋÷.¶ÿhWßÔ\gZ‰Ùzžïy¾çyWßÉ4þàøƒãÚ|`æ›[ÞÜò¦{`Q"w4¦N‰ÜÚÔžS{Níië·—0J%Œ”ß§EìÜuºbÛD°jkÉ£2×õÆä†µ–g]žuyÖ%lµçô@gýqg¤­5;yì䱓)ßNñÎïrËu,×1}ÀB·|ÝòuËgk=íVµ[ÕnUÊ·¹×á^‡{vÖìËþÙÓñ?l²ïn†»îfðöõöõöMÉKÒú,Às€4æ@—]t±_¨j?§ýœösRR´úlÅg+>[‘ÝaޝùõÖs0è`ÐÁ û?kÿÑ‚Ž³ÿhÓW½“Ìþ6‹Ç¾ê¦Ï8zLô˜è1®»ã0öJì•Ø+¶îî÷$=Zûhí£µîÚïÉÙ7dò;;þü0ø‡Á? ÷rÙúí+ßZùÖÊ·RþÛÍ»÷xwÅ÷M˜”0)a’ý5‹Ö¹½ñeù—å_–ÿÒçKŸ/}ìÿvñÞVÏìÎú-4¶µ†äcÅëm¡¸kӑǧ‡8ꇨ¢~°¿¶• +V&¼ÞvŠg<Øc_uË9{~ãûßßx½m~ÞôyÓçM›×j^«y-[ëO~︹g¹žƒ˜¤Iöïçx½™x¬ë«ÅR)„Èš”5)k™‘eF–éŠûBÄÝŠ#¿ùõȯíoaòâoÊ¿¯¸§êU·6}ÀB¿züÕã/[k´\Zoi½¥õDŸqdâ™UâªÄU‰³µæ‰Ë'.Ÿ¸ÜYßúõö{r<^ðxýß’<ÌNÉc`o{ßö¾íýiü§ñŸÆÛÿuÊÕ)W§œç<­ç¤Îú=ùxw]{ž¯x¾âùŠŽœ)ÄYIÜûz¿K<ì=ù;†mïwÌ{æØè¬ßòUÞ¯ò~•×ÖÄã}Æ>cß«nÛ¯]íúkWGÞšÜQ7FÝeîã=ùüÊÖØ+þÆñuŠw {Möšì5Ù³/ûgÏ÷sÜÏñŸ·;;~ö¼“íN¶;Ùº¿ÛýÝîïÚZ³¸ËVÜq›f¹žƒ˜¤Iâ]tŽ­ŠÞ+z¯è=ñ߇*ªt¨’ˆsD€$Šé‹¾ZôÕ¢¯ªÆV­k½†f4û ÙžBˆ»jì¯!ù}3ë–®[ºn©øŽ"忸ûq÷ãîGîŽÜ¹[{>k}Öú¬µ¿fQ<}Õ=eÿ͵#6Ø[l­YŒÌ®8{ŠW]„ >ä·ðß 3¨¿ÿ ü+pß´}ÓöMûÎï;¿ïü {ö.ìm??’óHÎ#9_µÓî,Às€4Ì‘å¥DµmÕ¶UÛ&â O!D)¹e––YZfÉžŠÄ6Å.¯ú}ýûù÷óïçÜ{MÒs,}pôÁÑ®Þï"4=±ëÄ®»ÞS'Þpäqý®S±PÅB ‰ ÓóBîÜß2¦Í˜6cÚ¸®mÅcðÅ{Ðí¿(ÁÎk©³~õ¡úP}èŠÖn4¯Ñ¼Fóì?b]¼ûù•Ïž™Žf:šÉÕG¢øƒñ‡D)iá´8ËðÀÀ ÍÛÿñþ÷ìÜ¢X͉5'Öœ˜ü*Ï !yø­³´QÛ¨mTq—äë¿ù"ä‹`W¬ÿôèÓ£OvÅ~wý&²"îàå`’‰·6éÛ¤o“¾3óÌÌ33ëÊv.—¬äüÎÝJY+e­”U¼NÄWyÖåY—g] £„QÂmÒýÝîïvwÖÛ³Þžõö©)§¦œšâŠ’ŸxÏbòû{Ľ;b{D€-ÞY+¶‡>üzî¿üþqÑÎâÍâñÝ%·—Ü^r»(R‹þ Þ(Z{YÕeU—UMþNG3í÷äýy°×`¯Á^uo×½]÷¶8:Ä“·ŒÄV‰w$‹ð&ùiô4Ž÷דü(Øv`ÛmC¶†l Ù*ŽGñHÛÿôÆ E3ÍPùNå;•ïÔ?Zÿhý£Cž y6äÙOuªûSÝ듯O¾>™žf_ò»óÅx(ÚSõâœXjA©¥Ô)W§\rŸ”ú¤Ô'¥"E Šôdä“‘OFÚ?Þ“ÿñ‡Sb¯ÉV$[‘lbÏŠçˆûMÓOË‹;àż¢ñˆÆ#O•#€ DûL\>qùÄå¶f_öï/í¬moùkî­ôVz+¢Wˆ"z‹è9bö(Þ[¼`Ù‚e –9÷íïÌrœ…˜¤#éóÎϼ«ƒûKÒgð´ýÎ=Oï§´³ëî²¥µSÒ>;~ÜñãŽí?„?­?‰Y.€ëÀƒÌÿiþOó²jŠ;Œ 8` 00þx°p±‹ÿ÷Sc~ù5æ;÷wµºÐêB« ¶àÝcwÝ=–¶àˆ7ïÚ e ÿ-ü·ð”ÿ– E.¹PD¼Ûú·èT SN “&%LbÀ``üƒI3'Íœ4ÓVܵL×2]ˤä®Ü/^|të£[ݲõ[úlé³¥Ïöì#&À?¸tâÒ‰K'²Û5$óÌC2ßÍp7ÃÝW¨wݪp«Â­ ¡B…6²µæsdÌ‘ñ@—]tááϰ˜[mlµ±ÕìÇÀ…½ {öÿ-“‹ÉÅ.^¾xùâågžuzÖ鯍£nŒŠÜ¹;r÷˜6cÚŒiS$[‘lE²Ù_çpy¸<\¦ýà``8D¼7{* *T0¨àƒÈ‘"¹÷Ž &À+HǺŽxðÃw<ÜAô Çà5‰Ê’omßÚ¾µSúÖîP»Cí[Om=µõTRÖ¤¬IY‰~𪀠€"‰… %U&ñžà&}›ômÒ·\ÇrËu,Ø´`Ó‚MsEæŠÌé³Ög­ÏÚZŸÕú¬ÖgmiûKÛ_fÿ9ûÏÙÆ^‰½{…Ð)GL ²u¿/-W &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AÿÃp¡3IDATL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AüF”ß½núìsÓ'ÚMŸýnúHõOŒ›>Ýô9ä¦Ïa7}ޏésÔMŸX7}޹ésÜMŸ©þ9é¦ÏonúœrÓç´›>¿»ésÆMŸ³núœsÓç¼›>ÜôùÃMŸ¸Tÿ\tÓç’›>—Ýô¹â¦ÏU7}®¹ésÝMŸnúüé¦ÏM7}âÝôùËMŸ[©þ¹í¦Ï7}îºésÏMŸûnúÜôyì¦O‚›>OÜôyê¦Ï37}ž§úç…›>/ÝôItÓ'É=ŸÈ núdtÓ'“›>o¸êC ¦E &aÚX`H?LÇ·ˆo߈tÙ'ÊMÞIÌÛˆy±ç¿8ý¼‡8ý¼8ý¼{ø„›>éçÝÃéç­Ãéç}ÃéçMücØ|ov×;†ÓÏÛ…y¯0oæ]¼E˜·»ë-ÂéçýÁ¼9˜wó¶`ÞÌ{‚Ýõž`ÞÌ»=þ­ÀñâÄ0íÀW “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ ÆkzÚêi«§­övÚÛio§¨2Qe¢Êœy~æù™ç´ 0ÆHëÄ5ˆ¸×&â:…–¨<0þëyÒó¤ççOŸ?}þôšqkÆ­×io§½öfw’ óAçƒÎOO˜ž0=áࡃ‡z|üññÇÇixŒ±Œ±\M\#ˆëqí ®#œuU"®qÄõޏö×A´<@­ú€Óµc=Žõ8ÖcX‹a-†µÈî&M&4™Ðd®黦Í~ÀË %Äü_\ ˆëw]•ˆk"q}Ä~¨æc}”E¾ùFä´ Ü‹8y\ùqåǕ׮ \˜Ýƒ<:òèÈ£—¾üóåŸÙkcc8BÌóŜߓ¯JÄu“¸†b¯Zµ ­#†g"6¹'­ž´zÒ*Ü;Ü;Ü;%“€æó}žzüMsÿÅeâV'4*^yÌ®3N«öT›ÐªdÍÒºÜjqÍÁ{¢Zf¬~ncãÆç«ûÿÚ»÷¸ªª„ÿãÏôÌLS"ÿYÈ…DF$ò¢Öœ†ÄyJœ­øi‚¬@—í Ÿ©!ýœÿüâ$M’kª¦dñq ÉÓcûù-,xï‡~yc~f¹g×ù4n·_ \¾¸W|Ü‘¤{ÝrõŒŽë¸Æê¶YðxPC™(€U¹ËÐÖhk *8ÔÜ'ø9IÞ£œ-¾|j”¥ß¡úÌé΋´Z&2²­Æ¯²Çÿ.°rOHªÛünΖ»Ÿ}]ÿk[jµÔj©UuZuZu?dÆ¹ÆÆ…:[|ùÔæ+~‡ê3;E,ÒjKJ"#Ûjü*{ç¬ÀÊu>É×Üæws¶-gÔHìÛÅ^ÿ=¿ÈaD&#ò™¶Í|DŽ$2%‘/5÷Ä$ÎYâÌÅO¦“8žÚ3.´ßþ7C6_ Ú¸5ý¸ÓÀÛ¶•”´Õè;xYêÎY.]'ý!ùZÇê.ýmËÉ €¶E e¢V•J»J»J»Ñߎþvô·ú<…ÇþÜÇÛ!õä”1žþYm»é×üqÞË_ÊMuœÕ»NÿÍljÎ':ŸèÌO€²×بΩ'§äN÷ÏjÛ¢WÿñÇy‡ÊMuO gŒŸØ«ë¿·y‹È^ •üˆÜIdPú\³8s‰ó?q¨/+°· ÕÙ;zÑÈÜém[ôê?úYïzø°sC싉ád@ëQC™(€U¢¨Qÿ¢þúW¥ô•/[î=lîUåêÄ (ƒØ{‹}¸Ü.]ä$"31öäGäWMŸ¿ÄMœ×˜!PrVà189+ýIc)}åF?›Uá{Ïu®éù•«YÐ4 `(°±m5f7Înœ­)Ñ”hJäžzý+þØåH…ûËQƒbý ;6ViþùÔ² AO÷ùß{½1÷ÆÜs™-ÚgõÌèr¤ÂýPÁ Xc¯~uÇÆªµ‘O-»ðêZÖXÀpÄ~»é=¹ÈFDN¢¦äGdY"×’{ìâ¼&ÎnÌ('+°ÙÛÂ3ÃßìÝW{õûÐøtvã‰Úç¢Ç}u-Y ‡ÊDl< ´Ú‚ÙU³«fWÉ~ö䟎Î)õÓŸˆ˜¥¦À#~3ô戵>õMo;*½+½+½™8ÚnxÖ9¥> ø_³ÔTýJÇü›éñ¬±Àã%öØ¿ñ.D7G¬õ©Wwæ#r-‘qÉÝqvç8f ›ôð6aâÙ ”­±ÅÿRUõ+=^J¾žOVHQC™(€ÆÊ+G¬!÷äº:&ø/®eÚÍ´ÈputÇRû1óüÿ!wOz[÷¶îm]}°ú`õAæ€Ö­±ss\Ë´5%E‘áê®~uÇRûÜzÖX ý‰}µØcËíÀEb:™È¸DÞ%wOÄ9ŽùCe½VMŒ˜›30h[VI‘º«_ÝÑ{î¢/rëÉ ]ÀP& `#ðÉÑOŽ~"ûÙkï…¼æ¦1¡€d,«‰¸,w&ϘS–|òA1Y PC™(€íŠË—+.rO¥o{ 8ë2Í”ºcñÑ;|,w¯²gÏ>ÎŒМ56¡Ôeš)W¿ºcñlÖX ­‰½´ÜN[dd>b9˜Ü½ç;fÚ;+è¹}t—„RS®~uG¯%oý3Û‡¬ †2Q+Tø†q ãÜV¹­r[%]>^Úk¼}icÁôÛõtÇ£¢®xõ”Ûv\¼sñÎÅ;Ì.¿µÆ†ÙØ—6œ8QOõ«;îµ<5h bÿ,·»ù9î(r0‘‰Iï˜8߉³³ í‘tÝÒ?7Ì&H›ý퉓T¿º£ÛWÖ§‘À”Q·•»ì>°[ÜÃ¥.ýp釷ž¿õü­ç¹3-C¬P™Ë3—g.—{⼓?1Ì—­¿Ü˜æ½Í9Dzß<²<²<²ããã™ck¬ü[èæKÝ+7&…Å]gZJì™ÅþYº¯™ÙŽÜ(21¹Óœ8ë1ÇÐYA@NÆôBOê^¹Ññþм¸ëd0MÀ­×ÓÓ#·S· °âÜÌ»™w3On¢—î³Ëÿ¶ûMÕ¦ Oý-ÚŒ;3˜ikì£ÖؼDÿ¨x›«E³Æ-%öÌr;j‘ií4=Š|LîŠs3 m•x¯^l›—HÅÛôøþæ÷Š¢É `š(€[O÷µ¿M£ Ö°âÌè6£ÛŒnÒiýzbÿaÏ•³Å×,9ÿb½ÿ›rËĽ[÷nÝ»Å|Xc]c§¼ý\9å®þcÉùœ:ÖX 9Ä>Yn-r òýG‘•Iï¤8÷1ßÐú¬Àiltý”·)wõ½½ÿö §Ž¬¦†¸õD¡+Ê]s½Q7XA.].º\$7•«:Åg„M`sßÜqê¼¾Ýñ;¡›Ì6™m2cÖ¬±¿®±…{Â&Pë6wœ:ï…Xcýˆ}²tÿ,² 2œæŽ"+“;å‰3 ³­É  3Nî¡Ömîè`úÑ /ÀtP·-Êà¶B¬ 3Î\8s¡tâæõì﹌m}ËÆï—Mª Y"·(Ôx×x×x3÷Ó^cW{.£ÊmÙøý²ürÖXà·ˆ½±ÜÎYdd8-En&½«â ÈÜC˲×tÍ­ÅÕT¹-Œ]çž_NVÓAÜ~(ƒ[ƒX~:ûÓÙŸÎÊMÖÚ¡Ó*Â?gCßšqNº÷dgké½ý¸ÏÇ}>îà L{=öNøçT¹­ç¤ÇűÆòÄÞXºgy¹MkF‘›ÉøÄyˆæfw³Ö{‡*·5£ã?‡ˆ‹#+€) ~<(ƒ›‹X¶ÜÝrwË]éÔÜ:Ó=‹­|ëÇ+ç^r N–Þa—@—@—@m¶N[Ç<Lo}ý’{õmëÇ+çö÷e©N[§­{céžYää6­E†&½Ãâ<È4„þYAo«)6¯_¢¾mýè÷ÚêQûû’ÀP?~”Áú 6´SÚSÚS¶Á¶Á¶ÁÒéX™9eM¨=›ø¶ƒ»o´Ù'½Ïß%~—ø]"“0½5öÓ„P{êÛ¶ƒ½¯±Æûaé>Ydd5m5Š MzŸÅyPœ ™Ð'+ðß¿áõO¨oÛjìÒÍu«÷5²¨°aQË¡6°ë®w¸ÞA:ù†¯s®±»¯üíõ»‡ÍsZ\ó·Ã' z ä«Íß7âMŸÛÒ»áááÀlLi ñ°»¯´µðz¦·ßÀiÙ£Jzlík×k‚U'ëe?¶¨ë•ÚÃÛrãðÁvWß ›3ÐÕ¡:µ¨OxœÒ®?_º?k,ð0±–î“EFAæÓ¶£ÈÓ¤w[œ ™h:+°½áórˆ‡rªÓÀ’,󢽜'ÔÏ©ëÚÏ7zÐTË·º{8;[\¶,²J´þ“‹»G²}ÅÀ{µßoZoÞ¥ÌØctò—éþdP7 `å  ÖEl`Ûƒ¶m’N¸ƒ¶#ò|ÿ¤èuÍ3‘æQËlÚ0)ùš«â? ‹—Þm·žn=Ýz2SZcÓÓ|ÿ¤ˆê´CÉ3‘æs~ŒÛæìjÞL¥yOû—(§® (<Å Ó,ƒ)€ ¦Á¬Á¬ÁL:¥¬4OZhk5 ‘JØ:ßœñò rýèµ(·~ùo×úwuIïwÙîI«ŸäþJ(ÿ0°què÷]Ò+/k,k,kdfj_c-ÏXhkKŽEF¶(­™_t#<½ûÏöîd#®ÍgŸÛbëµ¢ÐýuEýÿ¿Kü{Ýï’û“†7®^Љ5ÐjÅXº7¹™O»Œµš„È‘­I¯_œ™™dÒ¹a± ÓË3ƒ¶e•3lQÚ7>éìê‡~ýÂmÚ¬©£Åÿ*-wÅ¿é™5ª1áïâŸ;'8™¹œWZÜÛiJÄ‚NdP+ `ãb:e0°ÁT„V„V„J§ÑœÙÞ£œ´¥Î¹Yàé¯ÿ_åÎ{*`£ôʳ/d_ȾÀÌÔ¾ÆÆ…8+¢.-H|÷]ßѺ׶÷ëÕ‰Þ_ëSèê~Wxá€!¶5Ê)€Ï|¿”5ÐjÅXº7¹™Oû"[“çDf&Ytn8žÚ#.D E©ó˜1ƒgd‰«êTdÿCo}ÞÒÙoÛê[ûk}ñïÿ{5°r `Ÿž)wÞ/%+€ZQ/u—ÁÀs2çdÎÉéÔùû×C’¼ÞPΦù|þ¸¡o­y28ßµN:åÛOúˆ·`Ò8iœ4NÌL@íkìŠÃ^o(¡(Ýúæç}?mÙ›9Ÿ Îî¿^|—íxëï;f)çuÀ·ŠØ²ÆZ­Ø?â#iЧN ÝLæÓ~£ÈÖ¤×/ΉÌL²éÜpzÍ}Åa%¥ÝŸ7öN'ÝÝÛO r2@Ÿ*w@~z\ÁTéãRÐ'wÛXrÄ–¬jE¬ê+ƒ)€ fÇõ×w\Ä_”ÅöøÚX¶ÔÆxhp›‘+½rÏRÏRÏRf& ö5öƒ¾VBQº¯x‹O‡ñc>uz}öSzõ<¢‰«ûêa¯2×§­”S7¸ßÀ hµbüˆ7"v›‘KæÓ~£ÈÖ¤×/ΉÌL²éÜð™°$냔ö¶ÉÍxƒå˜)_-8£ûºa¥ÀAû¶þx|YÔŠX}ÔQSÌŠ+v¬Ø!"7'{„ì¦nïÑjCÇK_<êú¨{=83d·rÞ0YúÆÎúüÉÑG#NuûåÀsK_ê✡´O¶Ú`YÅ Ó&Ý‹,‚̧½G‘­I¯_œ™™dÒ¹1`ÁºÌƒ3•_ôöK»½§ÌûÜâ;Û{Ø'Û¬›äèå°ZWüÊù+¡ºhÚ¸ðÚ{Œqëµ§Û0ßÓ[c‹&„Ï0®êW|âoØ¿U¶…âQt~ß²¿ÅÊ£¿Ï8Ü¿Li¯ýcŒ[X k,ð0‘Eù´÷(²5æôøÑæÜ¢ Æ[ëò¬\p&ã°2¯¿ë ?×°æÓt`÷ÝvS›´Úèiÿ7œ·j÷qÜð>c63ßÓ[c­ ÿBù¥ï·Ã÷X=˜è7ìÕîoé^ÿõîõÖ¥yOû—üºê*ñúÇ šÈ í=ŠlùýÞËJ?¶ÆX>ñ7hÉÖØâù5®}öÀþZöî»]ûùFšªûˆ¼úýŸÓ[¾SÚ•Û»¾5‘ùÀ4ÕíªÛU·‹ؤñ `^  =×X徸nü?&‡kSW'®îcnùI§…cÅ5;<ÓõÝgw­yò/}]ëj5ÇòÂÿºÞ*·ÀæÀ€¯æÀP&cy°Ü(…Ýóþ'â”îãâÀ &ô `ñè¦ü-|°a?˜™É_j_c•øÀî)ØÏgŸÛbëµâ:Ÿ=÷ìæoYM»åâ|û磿ý÷¯k¬q¼mµÜg33ùâ‹/¾øâ‹/¾ø2/é~˜Ï6ìg‹s"3“¬@:7Œå3€õ©…NþvžZ¥ÕÀrŸÌÌäK}Ïøÿ¸ñÿÈQßWþ‚üù 4OhžÐ<¡õ+þ¼ }0VìX±cÅéT¸8Ù#d7‡ö­6t¼dñÅ£®€º×؃3Cv+§(½|gßÛÁ¡½§;íêü{q…âŸÿ‘¶uë€%âÏWõ+F« –U¬±0mÒý°È"È|Ú{ÙšôúÅ9‘™IV ¬Ë<8Ó°å¨ÿÖ ¾ŸvÔ½ª>wjÿ6[ÿÿïçäßÛñÖÙ¶¶J+€-wÚfYEVSxÆe!wFDq»ôÃ¥.ýPÿÒWüùÇ_úê¢6˜×w\ßq]:-ÊÊbû|Ía ýÆ·éq¹Ò+÷,õ,õ,efj_c?ø(àkå¥QývØt×^8`ˆmÍOöŸž 4ÆÒWŒ nÇ7°ÆZ­ØK÷Æ"— ói¿QdkÒëçDf&YtnøLX’õÁGJ{o÷Î/†ëÿ½}þëû7?ßkûwF°»r à }[<¾¬jE¬>Æ[úê¢6˜“9'sNæH§Èß¿’äõpû·Š§N Ýüˆ—á;iœ4NÌL@íkìŠÃ^o(¡(ýÌqShÿxqU¿3?iYîðßCn5ÞêWŒ·ŠØ²ÆZ­ØK÷Æ"— ói¿QdkÒëçDf&Ytn¸½æ¾â°Ò `óL‹c#¼V¿U•ýŸO<`üºþùþ«ëV‡Pñ­Î½^üDsE9p@·%GlÉ  VÀê ŽÒW°ÁT„V„V„J§ËœÙÞ£œÍ)€Ûo#dÕ‚gÝw5wTN|æàû¥¬±€V+öÀÒ½±È%È|ÚoÙš”8'23É ¤sÃñÔÐq!J(J}ËV صÙâ²e‘U¢îö(59ºoúÜø5.â­ž=ì“mÖMr3fðŒ,Ý7|Ÿþ+ÞPZ9oþìÓ3åÎû¥dP+ `㥾ÒW°Á4˜5˜5˜=âó`4OZhk5 ‘Úcܸ:t‰û®G¼1lcYcY#3PûkyÆ¢@[[r,2°EiHƒo¬­½yQN¼qõ‚N¬±€V+öÀÒ½±È%È|Úe¬Õ$DFˆlío¾mÖ`Ö`ÆÌ$+Î ‹–Xž´-«ä˜r^Ü1úƒÍ$ý“.ö®™ÞÿöµNýyÇ¥}úoo§) :‘@­(€‹ºK_]À64ihÒФG¼Ђ©¡¡+8 ´ÇèŸÓ­¢Ëné•ßÝ|wóÝÍÌIÀ4ÖØÏÊCW¶(ux¦ë»ÏîR_ìŸã9‰5ÐjÅXº7¹™O»|ìׂ©¡¡+¤W.ΆÌI4˜oÌü¬\9¥é/oæYdd>m;Š•mÛŽùûÒýYc€‡‰ý°tŸ,2 ²š¶Ež&½ÛâlÈlDÓYí Ÿ—C<”Y£ïè1:ùËt²¨°rPúê¢6´SÚSÚS¶Á¶Á¶ÁÒiW™9eM¨=Û÷¶ƒ»o´Ù'½Ïß%~—ø]"“0½5öÓ„P{ŠÛ¶ƒ½¯±Æûaé>Ydd5m5Š í•^°m°m°82¡OVà¿ÃëŸ&Pܶը¥›ëVïkdP7 `âô•C¬[în¹»å®t nŒ éžÅ&¾õã•s/¹'Kï°K K K ¶N[§­c¦·Æ¾~É=‹â¶õã•sûû²ÆT§­ÓÖ‰½±tÏ,ò r›Ö"C“ÞaqdBÿ¬ ·Õ›×/Qܶ~ô{mõ¨ý}É ` (€?J_}P+ÂOg:ûÓY¹IY;tZEøçlå[3ÎI÷žìl-½·÷ù¸ÏÇ}˜€i¯±ÇÞ ÿœ·5ãœô¸8ÖX@žØK÷Ì"¯ ·iÍ(r3¹Ÿ82Ñܬ ðnÖšcïPâ¶ftüçÐqqd0À¥osQ+ÈÌ…3Î\( yýû{.cCß²ñûe“*C–Èýå¯ñ®ñ®ñfÆ.®ö\F‰Û²ñûeù嬱Ào{c¹³È.ÈpZ6ŠÜLzWʇ–e®éš[‹«)q[6»Î=¿œ¬¦ƒ¸ýPú¶°‚\.º\t¹HnÊVuŠÏ›À¶¾¹ãÔy}»9þ ½Ÿ›Ì6™m2cÖ¬±¿®±…{Â&Pè6wœ:ï…Xcýˆ}²tÿ,² 2œæŽ"+“;å‰3 ³­É  3Nî¡Ðmîè`úÑ /ÀtP·-Jß¶B¬83ºÍè6£›tú¾žØØsålîõKοXïÿ¦ÜrpïÖ½[÷n1ßÖØ_ר)o?WN¡«ÿXr>§Ž5h±O–ÛE‹ƒ+p]?åm ]ýGoï¿=È©#+€©¡n=Jßö@¬87ónæÝÌ“›Ð¥{ÆìòçwBc¬>0mTx‚Ü=Ü™±3cg3 `}Ô›—èÿånÓcõ¢hÖX ¥ÄžYnG-2 ²¦G‘ÉÝCqîc¦¡­²ïÕ‹mó)w›ßßü^Q4YLpëØ}`÷Ý”¾m‹X¡2—g.Ï\.7Åï$ÅO óe»/7&…yos‘Þ7,,¬ÆøÆøÆxæÀ+¿Æz†ùRôÊIaq×Yc€–{f±–î«E¦A¶#7ŠLLî4'ÎzÌ1´GV“1½Ð“¢Wnt¼?4/î:YLpë5Ä4Ä4ÄPú¶- `¥N÷q ãƹ­r[å¶J:Ý_Úk¼}icÁôÛõlýuÇ£¢®xõ”[&.Þ¹xçâf€ßZcÃlìK NœŒ¨§îÕwŽZžÆ ´±–}µÜ¨¨+^=ÉytG‘ƒ‰LLzÇÄùNœõ˜]h¬ ë–þ¹a6AÚìoOœ¤îÕÝî¼¶<¬¦Œ¸­è¾˜Ò·õ(€íŠË—+.rOŸo{ 8ë2€‹‡ŒÞ1àc¹{•}<ûxöqf€æ¬± ¥.Ó(}ÅX<$Û‡5hkb/-·ÓY™E&w¯ÄùŽ…öÎ znÝ%¡”ÒWŒ^KÞúg¶Y@ e¢6Ÿýäè'GåžJ×Þ yÍMcÊ€²šØˆ€Ër÷gòŒÉ3&ÏО֞֞f.hþ›¼×McÊÕoYÍŬ±@;9­=­=-öÕr»n‘{˜rò#²/¹û#ÎtL%<άÀÅü¥ò佦\ýúLYòÉÅd€@ e¢6+G¬±r„ÜÓêê˜à¿¸–ik4Ó"ÃMçPj?fžÿ?äîIoëÞÖ½­«V¬>Èüк5vnŽk™¶¦¤(2ÜtªßRûÜzÖX ý‰}µØcËíÀEbBÕofZd¸È»äî‰8Ç1`¨¬ ×ª‰ssmË*)2ê×{î¢/rëÉ ]ÀP& `ãQ -ÐÌ®š]5»Jî)vÎ)õÓŸˆ˜¥îc@þÍk}d·B¥w¥w¥7@Û­±Ï:§Ôÿ+b–º«ßü›éñ¬±Àã%öØMïÃE¢îÌGäZ"ã’»âì&ÎqÌ6+èá9lÂijA)[c‹ÿ¥îê×ã¥äëéñd€0”‰ØÈ4ÎnœÝ8[S¢)Ñ”È=ÑúW:ü±Ë‘ ÷—£ŪéÐX¥ùCäSË.=Ýg|Ó[so̽1—Ù }ÖXÏŒ.G*Ü ŠUSéÛXu¢6ò©e^]Ë ŽØo7½'ÙˆÈIÔ”üˆ,KäZr]œ×ÄÙÙådÖ#{[xfø›½ûÊ¡UU¿Og7ž¨}.zÜØW×’r(€¡LÀƹí8ßx¾ñüü£óÎ?ú¿š4⟫Æ~¸l915ØÜ«Ê.ÑÚUî‘ÚæÙæÙæUøWøWø3C<®56ýIŸ«Æ^ý^¶Ü{.ØÜ«ÊÕ‰5P±÷ûp¹]ºÈIDfbôïô–4⟫MŸ¿ÄMœ×˜!PrVà189+ýIc¯~ýlV…ï=×¹¦çW®Nd@Ó(€¡LÀF½ïÐ6j7ÝtvÓÙ¦·#ž«´_q5ú¥ Ákeëÿ`z¾ˆÀU‰Áö®YM?ºaã‡6þîÀ»ïdR0Äêe¿âjôþ5Ák¥ô}0½Ø+"pUbÒ-ÖX@©Ä>\ìɛ޷‹üDd)Æ’üˆœJdVM?:q.g4fŒ%+èúŠïíP/¿ÔÕ[ö¯1–Ò7(nË…b¯^Sâ%Ý"+ôG e¢V‰¢þEý‹ú›ëa®ÆççEßGOº2_i[ÿêÓF…'lœåù¥>%m}Úú´õ)))ÌÊXc'–8/ú>:oÈ|¥•¾ÕŠF†'lJ)fŒ‡Ø“‹ý¹>;y‘«ˆŒEiÉÈ£D6¥Ïcg1æŒ=+èÑwؘ‰%†­3Ëß«´Ò7ðýÍït=6cmJ1YÐ2ÀP& `U©´«´«´ýíèoG«ÏvìÏ}¼RONãéŸe¨­ÿó^þrPnª{à¬Þuæz;ÑùDçù‰PöÕÙ!õä”ÜéþY†*}œwøð ÜT÷ÄpÖXÀø‰½ºþ{{‘·ˆìÅPÉÈD¥Ï5‹3—8ñ‡ú²{«ÀÁQ½£Ìn¨Ò×Èz×Çb_L '+ZÊD¬F5ÚmMÁ¡‚C‡Ì›iN’÷(g‹/Ÿeéw¨>sºsÄ¢¶Ýô•=þw•ë|BRÝæws¶Üýìëú_ÛR«¥VK­ªÓªÓªÓø!0Î56.ÔÙâ˧6_ñ;TŸyÜ)bQÛÖ½_eïœX¹Î'ùšÛünζ嬱€‰}»ØÃë¿ç9ŒÈdD>Ó¶™È‘D¦$ò¥æž˜Ä9Kœ¹ø)Ãt²ÇSC{Æ…öÛÿfÈæ+A·¦wjÛº×wð²Ô³\ºNúCòµŽÕ]úÛ–“m‹ÊD¬ö½GLMLML†}†}†½y+ _ï\kwÑpÿ÷\.çVîá¹0ÿ›i>µ…)1=ýz}þYÌ{~¯.ù;ß‹;£¢.y9®Jîîºuò}wDZvf®wÔ¶ì¿?3~füÌk+¯­¼¶’Ÿ&õ®±!ýìî/®Ir¹œ[½ø¸çÂüoÒc}j SÞûÁ¯×çŸe–û½v¸hƒÆ÷âΨ勽W%'ÝsÝ:ù~tœãX;3?ÖXÀT‰ý¼ØÛ·ì\ r‘ሕˆs“8CñSYY`ì(€¡LÀ&íìËg_>ûòÜè¹Ñs£ µ½’2$eHJþ;ùïä¿S]\]\]ÌÏk,k,€ÖûqçCJÄ™Hœø¹d€úPC™(€ñ«ÚÚ—.\ºpéBÞÛyoç½=þØøcãµÕÆ"øRð¥àKïT¿SýNõÉÒ“¥'Kîþ9n<ÖXÖXíMœÄyAœÄ9¢­N%âŒ#Î;âì#ÎAÜy€¬ðøQ£…jcjcjcŽ?6þØø"—"—"—o|óà¶õÀ Àè‰3ˆ8ˆ³‰8§pg²€òQ€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€JP€Jü/¼` ;®Š‰%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/distinctUntilKeyChanged.png000066400000000000000000001543401431412030200301600ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝux×þøq Jé‚[4ÁÜ“àVÜÝ‚Š++„â-RŠS¤¸”Œ'Ü¥Xq(wÍïÓûë~ï2Ûl²»y¿xžyúÜ»9;sæÌ™s>Ÿ3É¢n!Uî0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0¸ Àà&H€›  n‚0bée× _6ÜÝrwËÝ-# Dˆ,pöõÙ×g_S3@ ¸«=ã÷Œß3Þxi¼4^Šÿ¦N€»s1s1O¡fbçGÿõ:úuôë g.œ¹pfÙÈe#—l¹»åî–»ÓÆ“J*]¨taÒóIÏ'=?pðÀÁŸvüÙq*},},Xîô¿ÓÿNÿÍv6ÛÙ¬ÿÊþ+û¯Ì3#ÏŒ<3â~UŠrD™¢|ñ]Ô9H,bŽ æ bî æñ5+s1ßs1¢æb€„G8I;ÖáX‡cú×ï_¿ý´‰¤ÖØZckÝ>iû¤í“žG=zÅy@K 8ÂÍ”7SÞL9ûÎì;³ïäË–#,á¯Jñ½bÄþp^€#ˆñ¿˜ ˆyAbÍJÄœHÌ8/±ÀýX_eD|ñ5ƒÄE8 yVìY±gÅ–UXVaY…´Nlð‘ÁG¹úëÕ_¯þÊY@K ÄRŽèÑ9öÌÚ3kϬä!ÉC’;çU)öMì§ØgNˆ1Îc~gž•ˆy“˜CqÖ@¬€XàêHÃ9‘vs/¾hø¢á<¯y^ó¼â2¨;«rqÏg£ë†ö+piéó1{‹ Û~ö‡æ/µ±?Þ*_—ç_,ÝgWäìÐ’ç×Ôœ0¦Dî)û=-üSûgõ[çnæ™*[étѱûÞÎ=;÷ìÜóÚäk“¯Mælpß>Ö÷¥ç³ÑuËþXàÒÒçÕó¶ýl½‰/µ± ó–Î¯Ë ,ÝgWdƒä%ϯ©YóB‰ÜSVò.üSûgþEs7óL•á:},ðÿݾ}?bnÄ܈¹>ç}ÎûœÝÕQ2•W`–åýrÌô-=owPó"~›êÕ°C™ùE¯R;Œ§R—Þ*þ[üïâ3âóâoc÷½bŸÅþ‹cá”ÛÄx^Œíc7qÃñÛqóñ q!#ñ¢¸Ì†Ä|JÌ­8› V`ɯ{PͬgªMî㟻lÓKæ›Ù>ËüÈ‚Rç­K®Þ¥ö²Ó…‡txþÓ§…Ú´Ì6½~~¹NË!õ| ”\Ù¨WŽ»™ªdû#].b@  çDØ-GÑ/¢_ìümço;‹é þ«~­«úzD¤\p¹ôooæïõ ½µjñµ=µxM¯òwg¼æ78§oö‹é‡Ø¿oã2Ë<.óó‰Ï'>ŸÈIàš}l@#_ˆ”2–þíÍüî¾!£££CC«U‹¯í©Å-“—¿;#°òx¿Á9}3®§ERrÉû’÷%ïC!‡BÙßòë„úNðܼþƒZ—K¨7µï^ùHü^•¢LQ¾ø®<|(äPÈ!q\œ_`IŒÛÅÞþÑ…ˆÃˆ˜ŒˆÏÄoÌGÄ‘DLIÄ—b:có,1çâ,#éÄ *Žé7ç¤.·–ß.¼n䵓®=úôé’%ãkûåî­‹,©çóMo-sÕ‹Ó}M¬ˆ_$€áœH»•»žw=ïz6>×ø\ãsöÜ›?¬™)×ø—v/»0~ýöoï Úµ«ÊÒñþ½ƒ ¾²ð±/Ó¾Lû2qÆ8w[( ×ø›+»0~SJöoï êQeéxÿò½ècáŽÞù½ó{ç7gýœõsÖÛô<šñ^úŸÖu¯µªÄÂè¡õª•L„ksGh½j%Å>ˆý±gÏÅ1Šãå¼”‰±ºýc{o±—ÄŠüˆ¸“ˆAÙ³ÏbÎ%æ_œq¸_¬ øñ:Jö¡W×^ðO¿‰^û·ƒ·ïVŠ?ªq¹¥<ɈqGΉ°›ˆ,Y*²”=·êþ¡möû޾Qû¦Êƒkèo¶}¾-²Ap·åÆF‹°çX&Κ8kâ¬wcß}7–6À9úØÀ4¾£oÔow¦òàÄJúšmŸoëÚ(¸Ûò ÕÒÇÂõÝi~§ùæTPqÀ¿,æ¼Ók`–û¿h²¿l»èu¡µ«8ѵ¹.´vµ±ob?ÿåÉ€T Ž6@Ò!Æäb|nÏH^ÄUDŒÅÙ"?"%bSö‹˜‹Ñà걂Jý;Få<ÿu}@ñ\‰•ô5ÛŽ˜räaÀõf¥&…ä‹"VÄ `8'À.=ˆ~ýnî±¹Çæ³}cnàSµ„×÷Wêo™Viº³ ýͶ¯»G•)?¥w¿û…þËâ-ë´¬ÓòIÅ'ŸT¤QHŒ>6ß]¯ï¯ÔoÛªÒtgKúšm_wï¶9¤ü”Þ•¼ècájŽþ~ô÷£¿Û˜P|¿*õ“«\•b+öÙž£õ@{À½‰q¸“Ûˆø‰ˆ¥¸JäGÄ©DÌÊöщy™˜£Ñ*à*±ÿÅ!=²UÐBÉYl„³%}Ͷ#¿8ñaà°:M‡T÷ÉG¬° `8'À®9Ò8ñîÄ»ƒÕÁê`ÕöÍx{¿> ¼â*C³í¥Œ›ŽWJ[âqaŸ,…ÍŽ4û²ì˲/»]övÙÛei!ª­×%ðŠk¥—¬·—2¶_)m‰Çž½écáܤ…ÒBé_~²0¢E™Üù_¿LÓõDðV×½*Åþ‹c±}¼¢Nh¸1öãp³‘€ˆ“ˆ˜‰«G~DüÊöÈGÌÑÄ|gŽ´»9ÿË‚ë\%ék¶í_S )–ÇÛßïaÆHb€m$€áœH»ÚP£ï»¾ïú†îݺßìÖ[ön±yY•Ûþ¿í¬ÒÜÕ'–Ûw÷½¬–2ìÌ—Ó ýËï^oö¿ÙÿfZ Çô±¹>ΪÜöïP³JsWOýZnß=ý¨Zʰ3>£…óÙšbkŠ­)l·L#¨áþÒ“Ýéª[q\¶]Ôí÷ ÆÛ¶ïþ"6"â$îù±,×2;v1_s7Z œ'Và3º„šéòàl‘ëŠË®žúý?Û§^”LUs퀟ó+̆s"ì:vFïŒÞÙ÷qßÇ}›¾{ò«6Ç|Ǿ)õ{H/wš¼ç—¡þÐ9ðíaÇÝ€»wh8⯠Lç;öM¹î)Bz¹_’Ér»ýÏzÓécál?õ›¥qz{׳·ëR¹„{_•âÅñò40îJŒ±ÿe¢?èøÆ½c>"®%b\fõ ænbGËAâÆ * êx8ç…‘ÛNl \èV©_«mûœóT‰ÖHÃ9‘v“ëM®7¹žÙÍujÃþK ~±?²Z°{O,·½–¾)»Ç¬N f)˜¥`–ç;žïx¾ƒö n}l¥…F¿íZ-ؽ“L–Ûƒ^MÑÇ"ñØ~×oÉa^m³È~éÜ/((é\•âxűón`܉W‹1¶Ù]^Ä@’NÌGĸD¼Ë¬NÄ<ŽöƒÄŠÔ1†~ìSgô·§– tïÔ¯å¶G…uCýs+,‘†s"춪[Õ­¦¿®šþtà&¿Ð$4°Ú}±2ªÜ%³úiߣ}ö=¢GŽ>L[ó>¶r¿Ð¤“^²Þ}Ñ<„> ëNó;Íï4·ú}ö]—+Á¹“æU)ŽÝvXÔ!m p8úpôa1®6ý׋•Qå.%åȈ}™¾CݪnUiJHÈXA½¾)í³=é$}­·½¦lëX †s"ìÔ.¸\àr³[éÈÝèš”'–Û¨Z‹Ël0««Å{ï]¼— &}l™cº&åÔ¯å6ªVã_ècáxïüÞù½ó«8 â€ŠÌ|NjOýÚ~ØlQhQ‡¢>iW831–6i‹X1±q0³ºó;Z+™Ü»÷µ¤œúµÜv{°z _+b `8'ÀNêm‹·-Þ¶ð›â7ÅoŠu÷ñEí l^ßíÜw ä ËíšF&–Èk6ì8ÿèü£óh]þ­ÍßÒëà»Ý„¼!Éd¹]Ó¨æeúX8ÒœõsÖÏYoÖÆ’»~c÷n`³õI»À9‰ñ³Ù}\Ä7ˆóXnELÄĬkLÌïÄ\ÖGÄ ŠøUkŸ­Ï¨§¢J¦ õk¹m™sz³ü*±$e$€ã˶õÛÖoû;.4nÕ¸UãVݯq¿ÆýÔLìvRó'ÌŸ0‚ÙóQ?­XPI†þfÛ~A­¯ûV¶®·¢ ‹.,ºð]çwßu¦ô±æ}lç6A%I,™mûüL‹øvÉû’÷%o³«Òj¸¿ôd®>³­¨³ÚuKÀyˆ1³?[ß»ELƒØŽÙVÄÄÌF>b®Gƒ#bߤ:05 5é^³mÅ›Nä\G¬I à¸{Ûðm÷ Íz`’Á±CØéü¹ìÏe.3kè]Ö»ì-†û¶·Ï·EÖîfú+Úykæ­™GKècß×Ç6]WöÉ$ÛÛçÛº6¢E<ú+ú¯è¿B… 9dÝ¢F´(“;ÿk®;{¶¢®Þ³HÝ¡C!‡D=ÓÜpbÌl6¢1 b;¶·">fV‡bÞGKC|Å zŒ^÷ÈŸï¿lGL9ò0à:±$M$€ãÎòÙ_ÛHÛ°Ó鑳GÎ9­›õÞGæ»ÈßþíþK^•nÖM<½ÿôþÓû´7€>ö¿}l©:ù.’@²»ÿD“7ô±ˆs#æFÌ5 €ÞìÚ%¸Wœ]?θٵKp?³šõL{ q‰q²ÙýZÄ1ˆçØ¿±²÷¤ëröÈÙ#'í qTmØm_®£$wí߆.^ÛÍï±$5$€ãN$tEr7­ÝHÛF؉\мy)Ò¬)?ΠýÔŠÁ}L·}ñEî÷ü&tnª¹©æ¦¢Õô±ÿíc;Ï jE)¦ÛNƒŠä¤E¬åˆÎÃç¼ÏyŸóÖ­Hñý"¨ÔO\e1ÝŠz³®OQÏ¢Îiz$1N¶¾S‹Ø1œ˜nE¬ÌôE‘—"/EÒê—XÁ7Íf ÈOZ7¦ÛRgšŒòlD¬I àøE28¾v"=‡õÖs˜uÃ]V|Ìóba ëc·½¶ýbåïÌ:…/^Ðö€¤ÝÇV/[,Œ¤Qì¶7ÂÚÝ¥El홵gÖžYÖ-§äN¯YD‡‡6¨VŠ«,ÆÛðÐÕJ‰:´®[Qç´=ž›œEì‚Nì¶"nf]«bHÛCìbMwLì–o!©ÜØm¿n£/-^X’ÀŽC28.H;…{Çî»w̬±¾¬½{R°Î€>.Û¯~hÝÚ7‹uÝn(´¡Ð†B´@ i÷±]oë$â²ýꇀöô±ˆ¹ä!ÉC’¿gñÃ/šì/ÛŽ++N‹´ÑdÙvïypòä!Éi{$<16¶¾;‹xq›¸lEÜÌlÆ'惴@Ä4VðmýcUó’Ê˶âªäœN¬I à„A28¦H;…EO=YôĺiΩ9ä‚ÿB†òqß^>¾¥H¥Ö5\ |òÊG¿Š~ýŠv$½>¶jOÿ…$Šâ¾½|¼­},bâfÊ›)o¦´n39f¼—þ§è/CKTËË•§í—¡%ªåõi]Ï¢þi‡$Wѯ¢_‰±±õ}YÄ+ˆÛÄ}+bhÖ5,æƒ4CØ+h0m䪼ÓH߯};ÀKÞQ¬±$$€É`{Nl‡¢EÊ^){¥ì•¬›ãÝùR·ª^–ÃÙW-÷´Žþ&¤óoùÇœçaƃâ“ëóL”Kì±ü乺¿f¬ðÚ²4wÖG [ܪÌ.q\¹/{íÍÐ ´Ód>U^QÕ LfU)wÀµl›­ëùj﫽¯ö¦1I¯í8­ª—eÊäUËnõƒ£¿ )Ý*ÿ˜ƒ³Žû§­u·ÄËOž«ÛJùß>Ö}RGQÃKÿô±™ÓehÚ¿X Ÿª¯tΔÉì¯*åöžC û̾3ûÎì;Ö­e]÷Z«J,䪌¯«RÔ§u=‹ú§0ÄxØúŽ,bÄ|â+æ#bhÖõ,æƒbnHk„=±‚!áQãKÔ´Ld~{ô¸O`ƒ u=ò{çðÏ[*C6ñÉV_ÿ°¾@qËO~•|gÍ¢í-Ks§„n÷OV/òë(Ž+ëg9w¥O]vsËá^Õ†í9¹Ä ³¿ò[ªJæIÄ àÞH'.’ÁfH'²ë©¯§¾žÚºñÕQ¹¨ç3ëáì÷ûDú?áõb÷ Nϼ]*6g\)Wœ ÌÜ5è¢ÿgbÅ>ÛóWÇN®X>ø«ôÇÓ§H{Ûž#ݾù‡²¬k{^®y¹æå¢5I©õ}áùÌ:Yò}Ç ÿ·Í±.óv©Xƒ°RþΟjÒ®7¬Yºb×ÅEëäù©ˆgöÅ™3d K_ÊãUþñY gœS·Œï)Ï+“‚*6(œëùø®Uƒ[›•sìdó9ÿô±ƒþ·}ÿ_mß\o8},þÕƒèÑr„åËñž÷´=ÚÐy@P0We|]•¢>­ëYÔ¿84IMŒ‡­ïÈ"FAÌ'¾b>b+âiÖµ-憴FØŽøu ªžõŒu ³V÷æcùÉ\¥ gìßqùâR…æ8sxÄ£?~X[”ç™îà)Ù2yŽÏ7=Ãä “3ßð˜šçpñ ™–\hP/Gã.{—o.¼Ôvi½žo*_äSq\çÓO»Úž#mÿñüå·+€{#ì)Æ–Éà‘ÛNl \hýùoz,àO¬î°s"L8‘ÕîW»_í~ÖìþPùbÕï͆¿Â©ykº–¿ã’“ÔûÓTK;6¼gË‚ïY)¦¥½®åRÒþrÊ.)Ö.ëzëÏ?YðdÁ“´I iô±ªVýÞ,¹òß>¶Å»òwœ?Õ45S¥6…ÿ3‰*—ín¦•?všQ¤Á!獵˥Ï Š')=Ëgx‘þ3ËÏ?xØéPÕ?ÌÊ]»Ûê÷÷±ïÿ|Ù%9oÓÇÂÜÎf;›ílfÝBÖPër •«ÒW¥¨[ëÏ‹sA›ÀqÄØú.,âÄ|óñ4ëÏ‹¹!m¶cCÞ—©Äl³”§ð¥±µm‘Ÿ9V2ÐvØvšÓÀm¶Î™Wà‘å>4œò:Ëc±>ºÁ½k{_ÿ3²Ð7ëØó]ö×Lƒ#¯äO¬îаkI:É`À‰ævÕÛUoWµnF_õm]Ù7m܇¼1 ìì=sfÉÆ·fæñ÷s9ÍfÔø WéW-÷´޶½'¶ßã²äÌè?‹•µÿBrôdàÈŽËͱþüâ3‹Ï,>CËܽ hä›6î •˜¦švö®Ÿ»dãŒ[Óü§-¸1WéW-»Õ޶½'â»ÌÊ´üä¦ÓuÖœŽiê(XËóköñ•j:²£Ù!úX˜Ë3#ÏŒ<3¬[È›íÝ‹†„qU:âªukýyq.h“8Ž[ß…E\‚˜CÀÑû÷W«&bkÖÄ<‘–I¬ÀºmTÝÁ'çĸ§9cšnÿûÂŒߥÓ2iÿ~wuñµçgïóíÑã> lï‰ø.ëÏTîÛ;÷ßÏæfßåÓ'ýÛK:‹í€¹Ê”b?ü]´ÅÓÀñ•îùtÃPÿMÄ à®H».÷N“N4–Xr`‰uÓY{úû]%¾IȰœ{nÕR3­ÈXÊcòßo³PCåœõ2t÷²à½fkÿdàÄöÕ÷Ê;í“E ¿²Þ&üdà~”’½ê{–` õ õ õ¡eîÞÇÖêW⛄L˹\)Õ9ÓŠtcÿéc ,Ë9ëeh×§ÿô±±I5-¨RD²ÙXËíJM}ÊÎú{BØ2Cpº…¶Âþš¹Õ©},Þçõ¾×û^ï³n%SyfYÎU鸫RlE=[ÿ•8/´OAŒßóJš(%{ÕÄ|—±5ë¿óDZ&±ë¶ÑòÌŒó¿MÈp§Ì?'+$¥È8É#‡ødÑã5«d{ómÛc­ šý­= àòß¶Yìu)ÛÉÜÒ¯,ñ]Ý'ٯؓÊT+¢Jñ!öiLkfèî}ÍJ,!VwEØ=¸_2˜p¢ùåú/×¹þž…/Ž®\]îtÂ$€Õ'?.ýi–°L<þ”q7hž×#ÛÓ±õ]î½+cA±½˜kc­Š?%Ì >îå¼õÛ;;d©õç‹,v°ØAZ&àî}lóRåN'LªI}òÅýÒŸf K_êŸ>6ÿ¯G¶“Lbë»<ËŒÅöb®Ö*þdý™ÍQu? LÝ£s±Í>Cú¦,q0¯bÿ²·–Ï)–8êÙá¿oŠ{ͼõëÞš>ïFݺdÝ6úå ˜é[š«ÒqW¥ØŠz~O:è~Ðý Ú'Ž ÆÀïYˆØoïì¥Ä|WŽˆ­Yÿ•˜'Ò2‰X·^Ã6vö¿˜0 àÎ}—¶(\4C¶Ìž¡â3E†U»™m‚íԯ؊´®Øök¹kiÑãñµpô>£VçÕ,ŸŽßð¨'‡Ä à®H»aË-’Á$€Í÷¿|ÿË÷¿X7‘›åwô¬¼Þzð*–副É@äêE¾e²d’¹wº¢âÿ­Ÿ½J'¯zÏÇG nïI¬É@æÙ{ïû+îÝǶ/Zy½ujD,ú_©¦ÈÕ6”É’uHúéÿô±ù¾÷ª÷||תÿô±ñÿþQûKÏ;þýЃ¾óâ7Õ”yvº ô±ø¿þØôǦ?Þ³ä×¼ÝAÍ‹øqU:úªõlýWâ¼Ð>pë;¯ˆEóqt9"¶fýWbžHË$V`Ý6¾Þd”)^Í:m)–bޝp×_W~aræSÅÿëŸ;xJ¶L#Ùp!aÞüÕ€ßÒß³ð¯Ùüû´ù㮂Ë?lÛ=çÇ–ûÜÄ?l[¾lñ›Ûô+35ö¨J¬IáŽOظn2˜p¢éÛ¹oç¾­›Å£©Zõ  &íXYY‰ûd`o¯Ÿ³”y˜½e–ÿ]Z°NJþžkžÍŽø2Ø7!§‰;¨²DålepI¯íÜ=¨‚ujäfXûºïïcc–jÚÛ«Iæ2-—o­SÃw¸çšg³»Üú§ÿ$“=Û·…»·Y:¬qéùëˆ=ÉÖ#ýtÝ®mkW¹rŽøzÛ¨ØVH™ë0},þ¯£Ýv?ÚݺUlªWgXÀ®JG_•¢žß³.B÷£Ýv§}àÖw^‹ æãèrDlÍú¯Ä<‘–I¬Àºm|“õÀÊ€ôÖ Ë¯Oƒ‹7Œ{¸ûÐ_ºúMÈØ?ë óâ/¼·j@Ö¥#>:’<`{¤~ÅÖ«wÜÎZ‘HÍ6ûcrüÉì/-¦ à¼cGg.E¬IáŽOØ]¹V28™ó\žGF¶ îa=x]9yÜœâµÄgòË9.Ãø˜NTZZ·ì,ÏòÙÚ¥ÿÌòßxcʆ€Ÿ~¸“†~Aûs&£½I¯íÚ"¸‡ujdåäCþéc3÷ú§µ7Õ$ÞßéY>Ëÿícë4þ§Mœ$“Ø· #yšdÿ{A'ñöSõÃ/f—:jϾÅ4ÕÔÐ/ÿ¯ô±°2ó‹^¥vpU:úªõL{ q‰X1G—#bk´7ØoÄì#ïnZ',›7œR<ÿß?žÈ:<רôâ¿íO‡_«ú½ÉÔ"û§éò[þïmªÎ>R`¿íÒ2l©ÓÛ%Ó æˆp‘yÕ=³ý@{4m[¿mý¶õ$€“´—õwO 6,—ú¥]ØÁâws¥É13ý:ñ™ñS{O-”6¦“/¿ìÙÓWÿîjº´›ÅûÎ÷S¦‹b! × è§æ?,=Àã‘Ç„´Ã3nÍ0Ì£Ùü/†TdüÓ實 ûÖŸoQ·f›\ ho@Òëc»þlX.0ûK»šãŠßÍ•&ÓGÿô±å§ýÓÇÚ›jòòËøÅ?}¬‡ç?}löj™.Šef2½$ö°MéÂû½¿µÜÏR³¼ödyw°hÓáe÷Û>FË­~ªáÒÒ<¥5Òϸ5]Afó¿ºSdüÓå]¦Ý·þ|‹º…šÒÇÂ>ÆÓF©KoåªtôU)ê™ö@â±b>ŽŽùˆØí öû¶á±j¾–Ë>·X3mRþy™7zvL7_|¦fÚþSóüýyûÀ™ög?’®žøoÐt=ÒŽùûší] w†³bñç„L‹íÈm'¶.8BËYìö¿/ÌXðXŒÚrÏ»y¯ú_&ÛåtiºìNááiŸyüœ¶M:-ƒ‘öYÃoÆ~à0|Æá2Ó­?_<ºnªìÌJ$Q¯Ö½Z÷j à$Íò àã»W+_ÃòÿöÉ€"…_½óÜ×0äwÛƒcëÉÀß7ïéÇç9¹jÄøÆÅGÅ×@Ü&–¥å¨uIºâ¿¥bsÆ•òç `ÿícÿyøøîæÿ·­´½ð«wžÝ·…ünO"ç}}lÑyN®QãøûûXǦ—DòL¤ÊDBH|¯H¤‰£{ÚõiðÞØíÏûØ ‹þéc„•òç `Ä…åÀ\•Ž»*yg`ù01ÇÅ|x1eùpï›?*âoùÿÖÍ6tO訧ªþù/oصJ e6ÿËóUóÈ)¯ÿûòK Ÿ6{–·èñšU²½‰é¾‰Of¼‘­Rºâ¿;._\ªÐžKIè `±zRþ×¼~óúÍë[7ËwŸ¯øëÑŠÅ­?ó8B/4:¦“.¥Îj9‘¨[¦ÒmÏ+ߤ·fæÑìlëõÍ+Dºâd@W÷ÑM‚}>ådˆH/{ä￱ÿÀ´LþñÏÝûØÞ|¾bë,ïïc;Ÿ ÓTS— Eç µLSÕ-ã{êŸ>6]Afg[·êR!ÒI&q,›½2d™.¾1ýqAio›¹L÷¾v:Tõ¸¤»Äqu],Ù?}¬Ç\âíªö¿˜–™”ÿýœîçt?§³n–ïæªtÜUiö`Z&ÿøÇ?þñŽûg}çµ|01ÇÅ|ÌÞ,扴LbÖmÃòÀ_ ø-]ÑñïùÌÚƒ«‚cš.}³Y+Ïu–Éc¿òUßdýû â©Ù¾SvŒ*ZÖyÒÀB¶N¹3¦e; ,Ž«lå[½rý}DõÒ¿N{X¼óØþwÓ2ùç~wü9ÏùxÎÇÔŒûýÛ>tûÐíCCS„¦MaêW|> ½ßÿòý/ßÿbÝn–ßѳòzëár±åËç8jÿ Ùz2ð¶ðÞÙ!K-ÿÖrМX¿ ¯ÉÀÌ]ƒ.úÿýž›â— ÕÍ|ïfØŽ••³Ïgžñ±‡ñ¾oàÞ}lû¢•×[??WclÞLÿÛÇÆ,Õô¶p÷Öÿô±ÿ”,R2ö—Óí¥Gm~¯Tµ`÷¬—2}(Êÿ½gbãNe¾³Ü“¸|ËÌ]UýÓÇz~’ùÞͰöu++fŸÏ<;ÝúXü_lúcÓ›¬[żÝAÍ‹øqU:úªõÌU @â®~'bÄ|ó±5ëoóDZ&±ë¶ñõ&£Lñj֩Ђï*¥Ëú™ýOÄZ'€G89<аü[ËDiü><$,ªp‰Ò–e6ñÛ–/›ý%ˆ7‹¿µ\¼Úìóõ›Ÿ÷ïwçZã÷ŸŒó¾>m .ÞÐìóéWfjìQ•Y ’Â_$ ©÷ ·ãV[5n•ýI_ñù„OúZ"œh~¹þËõ_®[7‹£GW®.wÚö Y,w#÷öOìŽ'ä” ¾¾·BÙ]³‹Žˆùˆ­ˆ­Y»˜'Ò2‰X·^Ã6vö¿hû‰X±Ä±HèÚŸ¶çYÛøM[–&žÍµÿoÞ{À·¥øÛÂ{«d]j{¯òÎ\“¹¢øLã]ãïù>1û¼e"œXÜ `7Œb¹lÒ× àDs`É%–X7‘µ§¿ßUâëÁëý4òĪýì:Û?x6;âË`_¿r¾W2­ŸÌ»%Wt†'¯¨jP&W™ X–°¿Þ’éeÛš}ò~”’½ê‚÷<†ïêêCËܽ­Õ¯Ä7Ö©‘ûi:e{×TÓ³Ù]nûú•Ëv÷Ÿ>6KÎ O^éœ?(S\Ò?rîWJuez$OÛ#mµ‹¹Z¨ø“#žhü¿}l“}eÛš}ò~T§vô±xŸ×û^ï{½Ïºm”Lå˜e9W¥ã®J±õL€„$ÆÀÖ÷_— æãˆ˜ØŠØšõ·‹y"-“XuÛhyfÆùßZ§-‡~¹W*ñýiZûÀ#>:’<`»ç«ü-2l¶\ryØž™K¼ˆ¯°GhºiÇtÿdõ"¿Ž¶ÿêëÎú†â…³>𮓾•øÛjGû,ËÝÀþ4vhû5/üNš}rèî}ÍJ,!VwEØ=¸GÒ× àDs»êíª·ß³äÅW}[WöMkö¾GLb÷›PßåÞ»2Û‹¹6Öªø“óLl—sdÇŠƒåæX~ñ™ÅgŸ¡eîÞÇ4òMkö6MG¤šb÷Ä¡ïò,C2[‘@²þŒx¿©(Çûa¦²ýý–‘)U¿ó_ÓmL÷ßì“Gv4;D syf䙑g†u y³½{Ñ0®JG\•¢n­?/ÎmÇc`ë»°ˆKóq\9"¶fMÌi™Ä ¬ÛFÅÑ|rN4{Ç­#À±{8ÛÉÜÒ¯Û~-w--zÜú3}³oßQ4C†É™oxLµ,³òë.sµm›nÇ‚YÄRÏíFþ¸«àÄêÁ}{çd¹à³HE‹¥cºÿfŸìùtÃPÿMÄ à®H».÷KúZ"œhÞ¦z›êmª÷¼&4ãÑ/÷ï®—!oL'bÛ|L 5WŸ¿#öÈcBÚáGR¬¨TîKÛ{"¾ËU&s¦Íà¿î= þ;úîè;Z&àî}lº;£_†v«—„JLSMbÛ|L¡Tÿô±i´Ã¤hö}¹/mï‰ø.ëÏT~›»Fv¯´ñ$¾RMs¦VýŽ>æú¯ì¿²ÿJër=C»N•‹qU:âªukýyq.h“8Ž[ß…E\‚˜CÊy¹wµ[{ÏâÛ©Þ¦z›Š–I¬Àºm¤ŸžÉߣÜèoO+—4gLÀb[ü§:²Ïúûžyüœ¶MÏE¿^ñŸe{OÄwÙNÍfj‘ýÓtùퟃøŽ*U>óÄ/l™]dXìØfŸl°q䕼ó‰À]‘v-îôµD8‘ÕîW»_í÷,òs¨|±ê÷ ?¸|uKùJƒ³„eÚàñÊòoÅoQÝc2PvI±vY×[þÉ‚' ž, MI£íTµê÷ Ÿjº|µm‰Jƒ³„¥/õ¿}l÷m!¿Ç4Õ”+M¦Ò¯s¶TSÙ%9oÓÇÂÜÎf;›ílfÝBÖPër •«ÒW¥¨[ëÏ‹sA›ÀqÄØú.,âÄ|QŽˆ§Y^Ì i“°+úó¾L%f'|x@^9²X¯ Ù2{z„Zþ­xþ8v `ËÏ‹g|Åûz³øxL§‰ïÊÓº˜šéÛ€õ¿ËáßÿêAôƒè9Âr„åxÏ[imè< (˜«2¾®JQŸÖŸõ/ÎMGãaë;²ˆQó‰ß°ˆ§½ç…#©¯§¾žšÖÛ±¿nAÕ³ž‰{8élí©™öÏ_^p;±¸7À΃¤¯%À‰íPô¡èCÙ+e¯”½’u³»;_êVÕ‹É€íí“­úÓ öÔL¥Üײ½ç ˜«½¯ö¾Ú›Æ$½>¶ã´ª^¤šloŸlíøþ>ö?Y)·÷úXØgöÙwfß±n-ëº×ZUb!We|]•¢>­?)êŸv@Âãaë;²ˆQ󉯘ˆ¡YRÌÅÜÖ{bC£Ɨ¨IØövxÎC}zØS3¾cKUÉ<‰XÜ àÄEÒ× `§°èÉ¢'‹žX7Á95‡\ð_h{2päñŠ7å–?ŽÐËN:€çã# ·>¾{u±ò5¾ éü[þ1¢6²õÈR ]7ëÉÀåã[ŠTh]{Ê(_ |ô«èWѯh‡@Òëc«öôÿ—TÓ‘ÇÍ®•[þ8¢ó¹ ÑI'½ô||תÁ­ïnþ°|oBJ·ú§MçŸ>Öâ-ªÇÛúÑÇ"&n¦¼™òfJë6“óhÆ{éŠþ2´Dµ¼\•q¹*EŠú´®CQÿ´CÈ«èWÑ¯ÄØØú¾,âÄ|âó[C³®C1¤ÂþXAƒi#Wåf;ÜËcÃÿ]߬=¸* 8é$}G >²/àBï›?*â´®G~ï¿Wʘ,Ëz­Ö à^òŽb=ˆ ) œðHúÚƒ°S¸wìÞ±{ÇÌåËÚ»'ëf“a}ž‰r‰=Ig25lq«2»¬ëaд©òõ·ž |õCëÖ¾Y¬?¿¡Ð†B ѤÝÇv½¬›¥šþÛÇÖº[bOÒI5E k,½¿-9ÿŸ>öŸÏõC@{úXÄ\Hòä!É­[Îþ/šì/ÛŽ«2.W¥¨CëÏ‹:§íðÄØØúî,âÄ|âóq3³ÚóAZ b+ø¶þ±ªyÍÀB«¯X_ xÒIwÿdõ"¿ŽÖõPåË®s}g®øC‡*9§+@R@8aô)ÀN¤ç°žÃz³n ËŠy^,L jßyîkòûØðž- ö.ØÝg]¦™ ä9–s\†ñ}S¶ÊŸW¿µüä°í+gvñ¿xð"€¶$í>¶zÙba"eòγû¶ßdž—S°wÁîY/ýÓÇ&ÝTSžc™{eß7e‰ƒyñ ¢å'o„µ»K‹ØÚ3kϬ=³¬[NÉ^³ˆmP­WeL¯JQo¢­ëVÔ9m€„'ÆÆf#g» æӘ؊¸™u­Š9 m±‹4Ý1±[¾…"‘9jÁ©jVßþUÉÜ süì›,CeÀY‡ç›> Âév/s6O[~òë6úÒ≠é ì8$}ã‚°¹y)òR¤Y“}œAû5¨o±½µþh§A_|‘û–u}ÎM57ÕÜT´:€>ö¿}lçyA­x·¨í­õS†ÉI‹XË#:‡ÏyŸó>ç­[‘âûEP©Ÿ¸îbzUŠz³®OQÏ¢Îiz$1N¶¾S‹ØQ˜Æ|D¬Ìl–'怴:Ä%VðMóƒòóÆ_Û[ëgKi2ʳ±$$€ãIßøBØéôÈÙ#gœÖÍwHïŽ#ó]d¸oÿvÿ‰%¯Ê7ëžÞzÿé}Ú@ûß>¶T|I&Ù¿Ý¢ÉúXćˆ¹s#æšµ¥ç7»v îÇg×{‚ovíÜϬ&E=ÓÞH\bœlv¿q â9öoE¬Ìº&żö†¸Ç ª6ì¶/×QR¼öoC¯íæw‡X’ÀqGÒ×H;?—ý¹ìÏef úà¯Ëz—å7¡ÿ²}¾-²~p7³:\3oͼ5óhi}ìûúئëÊÞ"ô/I¦m]ÑÇ"ýýWô_!‡B…²nQ#Z”Éÿ5×=[QWïyïï¡C!‡D=ÓÜpbÌlú¸m‘õƒ»Û±½ñ1³:ó>Zâ+VÐcôºGþ$wÿe;bÊ‘‡׉ i"wÛÖo[¿m=IßøEØIÍŸ0Âü fMüQ?­XPI†ûfÛ~A­¯ûV¶®·¢ ‹.,ºð]çwßu¦ô±æ}lç6A%I&™mûüL‹øvÉû’÷%o³«Òj¸¿ôd®>³­¨ÓŽ/y_ò¦à<ĘYŒŸ­ïÝ"¦AlÇl+bbf#1×£Á±‚oR˜šD¯Ù¶âÍ'r®#V€¤‰pܽmø¶áÛ†$}ã `gmî-Þ¶xÛÂoŠß¿)ÖÍý‹ÚAÙ¼¾Û¹ï@Ȇþ–Û5&L,‘׬›8ÿèü£óh]þ­ÍßÒëà»Ý„¼!±d¹]Ó¨æeúX8ÒœõsÖÏ1ý½çõìíºT.Á•h¹ubVc¢>iW8'1~6}Z®Ñ„‰%òç±ÜŠ8˜ˆ‰Yט˜ß‰¹­ Žˆñ«Ö>[ŸQ7NE•LAº×rÛ2çôfùUbHÊHÇËç€IúÆ `§v¹Àå— ˜Ý>G–èv°@W&bUkq`™ fuµxï⽋÷ҢĤ-s¬@WÒKbU«ñ/ô±p¼w~ïüÞùUPq@ÅÖ--Kãô>÷ýÒ¹_PW¥¨Q'Öu%êPÔ'í g&ÆÒf#më æ#¶"fVWb~G‹‚£c!“{÷ñ¾FÒWl»=X=Я±€0œ `°Uݪn5ýÕô§7ù…&å ÀÑ+£Ê]2«Ÿö=Ú÷hß#úpôáèô%1ïc+÷ñ MÊI¦£/š‡ÐÇ"aÝi~§ùæf­®ä0¯¶Yägßu¹œ;i^•âØE=˜Õ’¨CÚ.àpôáèÃb\mvgq¤ù±/³ús:š2VPï£oJûlOÊ©ß^S6Žõ¿N¬HÃ9‘v“ëM®7¹žÙmujÃþK ~±?²ZpÒ™ôZú¦ì³:)˜¥`–‚Yžïx¾ãùÚ€¸õ±•>ý"´kµà¤“d:èÕt},ÏÑßþ~ôwÛià¤ö4°8^Û©_Qo´\‹W‹1¶Ù]^Ä@’Pê÷ÅþÈjÁ"ÞeV'bGûAbÅ êC?ö©3úÛÓGK&Ôo ë†úç$VX" çDØuìŒÞ½³ïã¾û>6»ÅöÿªÍ1ß±oÊEýÒ˽§Ûÿü¡sà›´6Ý ¸p7€† þúØÀt¾cß”ëž"¤—{'™¶ÿYo:},œƒ´PZ(-4k‡bä¤ðn`qŒf > ¢®h3¸.1ƶ=ñ÷Žùˆ¸–ˆq™Õƒ˜»‰y-‰+¨4¨ãáœFn;±%p¡{§~Û眴 J¬°FΉ°‹y×÷]ßw}C÷‡îÝov£-{·Ø¼¬ÊmÿßvViîN€w÷½¬–2ìÌ—Ó µ´=Ô¸Ùÿfÿ›ýi-ÓÇæú8«rÛ¿CÍ*ÍÝ)½ôîqèGÕR†©ð},œÏÖ[SlMa»eA ÷—žì~©_q\¶]Ôí÷ ÆÛ¶ïþ"6"â$îù±,×2;v1_s7Z œ'Và3º„šéòàl‘ëŠËn•úMqêEÉT5×ø9O0±À `8'À®9ì8ñîÄ»ƒÕÁêàùÕÕö~?|xÅÕ'—2n:^)m‰Ç…}²6;Òì˲/˾ìvÙÛeo—¥…H¨>¶^—À+®ž^º”±ÍøJiK<öìM çfûi`aD‹2¹ó¿~™¦ë‰à­®{UŠýÇbûxyêw%ÆÞbn6q3qù•ÞúýðIàÛ#1Gó5Zœ9VÐîæü/ ®sõÔoÿšRH±<Þþ~3F+l# çDØ¥ÇÑï¢ßÍ=6÷ØÜc¶‡ |ª–ðúþJý-Ó*Mw•¡ÿëîQ%BÊOéÝï~á õÖiY§e–O*>©ø¤"@bô±ùîz}¥~ÛV•¦»Jzéu÷n›CÊOé]É‹>®Æö»-)¾_•úɵR¿bŸí9:Þõ @R ÆábLn{l â'"–â*‘§1+ÛG'æebŽF«€«Ä ü‡ôÈVy@ %g±®’ôùʼn‡Õi:¤ºO>b€ýHÃ9‘v‘¥"KE–²'\Ø?´Í~ßÑ7êoßTy°³ ýŸo‹lÜmy…±QÅ"ì9–‰³&Κ8ëÝØwcߥ pŽ>60ïèõÛ©<ØÙKÏ·umÜmy…ê écáúî4¿ÓüNóŠ*¨8ÀvK.¹Ók`–û¿h²¿l»èu¡µ«8ѵ¹.´vµ±ob?m‹8^qì´’1&ãs{Fò"®"b,Îùñ(›²çXÄ\Œ6WTêß1*çù¯«èŠçr¶¤ïˆ)G\oVjRH¾(b@ì†s"ìVîzÞõ¼ëÙø\ãsÏÙsÃnþ°f¦\ãt\Ú½ìÂÄúß´kW•¥ãý{|•Önû2íË´/g€s÷±…r?бi±² +½tgP‡ˆ*KÇû—ïE wôÎïß;¿9ë笟³Þž¶óhÆ{éZ×½Öª £w„Ö«V2®Í¡õª•û öÇž=Ç(Ž—ó@R&ÆêöíE¼EÄ^+ò#âN"eÏ>‹9—˜qÆá~±‚âÇë(ÙW„^]{Á?yb%}oß­TãrÿJy’+âŽ0œ `wô"úEô‹¿íümçoicè«~­«úzD¤\p¹ôooæïõ ¿ƒþS‹×ô*wFàÀk~ƒsúf¿˜~ˆýû6.ó¸Ìã2?Ÿø|âó‰œd®ÙÇ4òõˆHÙ(céßÞÌïî2:~K§·L^þîŒÀÊãýçô͸ž>IÉ%ïKÞ—¼C… 9d˯ê;Ásóúj].¡Þ<Ö¾{å#ñ{UŠ2Eùâ»ìß7q,â¸8¿À’·‹1¼ý£ ‡1Ÿ‰ß˜ˆ#‰˜’ˆ/ÅtÆ$æYbÎÅYFÒ‰TÓ!oÎI]n-¿]xÝÈk'? \¿éÞ/woí\dI=Ÿozûh™«æXœîkb@ü" çDØÝÇ _4|Ñpž×<¯y^iã î¬ÊÅ=Ÿ®Ú¯À¥¥ÏÇì-6lûÙš¾ÔÆþx«t~]ž±tŸ]‘³CKž_Ss˜¹§ ì÷´ðOíŸÕo»™gªl¥ÓEÇî{;÷ìܳsÏk“¯M¾6™³ À}ûXß—žÏF×-ûcKKŸWÏSlØö³õ&¾ÔÆ6Ì[:¿.7ü±tŸ]‘ ’—<¿¦fÍ %rOXÉ»ðOíŸùÍÝÌ3U†ëô±Àÿw?ú~ôýˆ¹s#æúœ÷9ïs>vWGÉT^Y–÷Ë0Ó·ô¼ÝAÍ‹ømªWgXÀeæ½Jí0ž6J]z«øoñ¿‹ÏˆÏ‹¿Ý÷Š}û/Ž…S lãy1¶ÝDÄmD GÄsDlGÄyDÌGÄD,HÄ…DŒHÄ‹â2ó)1·âl‚X%¿îA5³ž©6¹î²ML,™ofû,ó# J·.=Z¸z—ÚËNÒáùOŸjÓ2Ûôúùå:-‡Ôó)Pre£^9îfª’ít¹ˆ ƒ0œ à$äY±gÅž[VaY…eÒ:±ÁG|äê¯W½ú+g },},K9¢sDçØ3kϬ=³B’‡$IîœW¥Ø7±ŸbŸ9u vÄ8_ŒùyV"æMbÅY±b€«# çD8I;ÖáX‡cú×ï_¿ýÄ^Ô[kl­±Û'mŸ´}Òó¨çQÏ£8/ècécG¸™òfÊ›)gß™}göa9Âr„%üU)¾WìƒØÎ p1þs1/H¬Y‰˜‰ùç V¸ÀpN$€ñ_¯£_G¿¾pæÂ™ g–\6rÙÈ–»[în¹;¾•.TºPé¤瓞Oz~ààƒ>;þìø³ãT<úXúX ±Üé§ÿþ;›íl¶³Yÿ•ýWö_™gFžyfÄýªåˆ2Eù⻨sXÄAÌÄÜAÌ#âkV"æ8b¾#æ>bDÍÄ 0bée× _6ÜÝrwËÝ-# Dˆ,pöõÙ×gÖ},à¶öŒß3~Ïxã¥ñÒx)þ›:îJÌAÄ|DÌMÄ<…šˆœ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜ `p$€ÀM7AÜD‚&€#>ˆø ⃴dˆ<) `py$€ÀM$¹°øß#’G$H‘,"YD2ãñÎxg¼5ÞoׯkãµñÊxe¼2^/ŒÆsã¹ñÜxj<5žOŒ'Æã‘ñÈxd<4ÆãqϸgÜ3îw»ÆãŽqǸmÜ6n·Œ[Æ-ã¦qÓ¸i\7®×kÆ5ãšqŸb\1.—ËÆÆÆÆEã¢qÑ8oœ7ÎçŒsÆ9ã¬qÖ8kœ1ÎgŒÓÆiã´qÒ8iœ4N'ŒÆ1ã˜qÌ8j5Ž‡ÃÆaãqÈ8d0ŒýÆ~c¿±×Økì5¢Œ(#ÊØcì1ö‘F¤iDF„¡º¡š¡š¡Š¡²!²n„áÆ.c—±ËØiì4v;ŒÆc›±ÍØfl5¶[ÍÆfc³±ÉØdl26ƯƯƯÆzc½±ÞXk¬5ÖkŒ5Æcµ±ÚXm¬2V«ŒÆ c…±ÜXn,7–K¥Æc‰±ÄXl,6???‹ŒEÆ"c±ÀX`Ì7æóyÆ#¯‘×Èkø>†‘ÛÈmä6¼ oÃÛÈiä4r^†—áeä0r9ŒìFv#»‘ÕÈjd5²YŒ,F&#“‘ÉÈhd42éôFz#‘ÎHg¤5Òi4F#ñã?ÆŒÏÏÏTF*#•‘ÒHi¤4>5>5>5>6>6>6>2>2>2>0>0>0R)ŒF2#™‘LÖ£õhý­þV«¿ÑßèoôWú+ý•þR©¿ÔŸëÏõçú3ý™þL¢?ÑŸèõÇúcý¡þP¨?Ðèôûú}ý¾~W¿«ßÕÿÒÿÒÿÒoë·õÛúŸúŸúŸúMý¦~S¿¡ßÐoè×ôkú5ýª~U¿ª_Ö/ë—õKú%ý’~Q¿¨_Ô/èô ú9ýœ~N?«ŸÕÏêgô3úý´~Z?­ŸÔOê'õú ý„~\?®×êGõ£úýˆ~D?¤ÒéõƒúA}¿¾_߯ïÓ÷éûô(=JÒ÷è{ô=z¤©Gêz„¡ š®éš®èŠ®è².ë²®‡ëáú.}—¾Kß©ïÔwê;ôú}›¾MߦoÕ·ê[õÍúf}³¾IߤoÒ7êõú¯ú¯ú¯úz}½¾^_«¯Õ×êkô5ú}µ¾Z_­¯ÒWé«ôú }…¾\_®/×—êKõ¥ú}‰¾D_¬/Öë?é?é?é õ…úB}¾@_ ÿ¨ÿ¨ÿ¨ÏÓçéóô9ú}Ž>[Ÿ­ÏÖgê3õ™úúúú }†>CŸ¦OÓ§éSõ©úT}²>YŸ¬OÒ'é“ôïõïõïõ ú}‚>^¯×ÇéãôqúX}¬>V£ÑÇè£ôQú(}¤>R©ÐGè#ôáúp}¸>L¦Ó‡êCõ¡ú`}°>X¤Òéõú@}€>@ ÷Óûéýô¯ô¯ô¯ô>z½þ¥þ¥þ¥Þ[ï­÷Ö{ê=õžz½‡ÞCï®w×»ëÝônz7½‹ÞEï¢wÖ;ëõŽzG½£ÞAï wÐÛéíôvz[½­ÞVo­·Ö[ë­ôVz+½…ÞBo¡7×›ëÍõ¦zS½©ÞDo¢7ÑéôFzC½¡ÞPo 7Ðèõõúz}½®^W¯«×ÑëèuôZz-½–^S¯©×Ô«ëÕõêz5½š^MÑCô=HÒƒôªzU½ª^Y¯¬WÖ+é•ôJz½‚^A/¯—×Ëëeõ²zY½Œ^F/£—ÒKé¥ô’zI½¤ èz ½„^B/¦Ó‹éEõ¢zQÝ_÷×ýu?ÝO÷Ó é…ôBzA½ ^Pϯç×óëùô|z>=¯žWÏ«ûè>ºž[Ï­çÖ½uoÝ[Ï©çÔsê^º—î¥çÐsè9ôìzv=»žUϪgÕ³èYô,zf=³žYϨgÔ3êô z=žNO§{躇žFO£§ÑSë©õÔúçúçúçz*=•žJO©§ÔSêŸêŸêŸêëëëéééèèè)ôz =™žLO¦EkÑZ´öV{«½ÕÞho´7Ú+í•öJ{©½Ô^jϵçÚsí™öL{¦=ÑžhO´ÇÚcí±öP{¨=Ôh´Ú=ížvO»«ÝÕîjw´;Úí¶v[»­ÝÒni·´›ÚMí¦v]»®]×®i×´kÚUíªvU»¬]Ö.k—´KÚ%í¢vQ»¨]Ð.h´sÚ9íœvV;«ÕÎhg´3Úií´vZ;©ÔNj'´Ú í˜vL;¦ÕŽjGµÃÚaí°vH;¤Òh´Ú~m¿¶_Û«íÕöjQZ”¥íÖvk»µH-R‹ƒÑ hª¦jª¦hЦh’&i’®…káÚoÚoÚoÚNm§¶SÛ®m×¶kÛ´mÚ6m‹¶EÛ¢mÖ6k›µÚFm£¶AÛ mÐÖkëµõÚ:m¶N[£­ÑÖh¿h¿h¿h«´UÚ*m¥¶R[©-×–k˵eÚ2m™¶D[¢-Ñ~Ö~Ö~Ök‹µÅÚ"m‘¶H[¨-ÔjóµùÚ|íGíGíGm®6W›«ÍÑæhs´YÚ,m–6S›©ÍÔfh3´Útmº6]›ªMÕ¦jS´)Úm’6I›¤MÔ&jµ Úm‚¦…iaÚ8mœ6NûNûNûN£ÑÆh£µÑÚhm¤6R©}«}«}« ׆kõo´o´o´¡ÚPm¨6D¢ Ñiƒ´AÚ×Ú×Ú×Úm€6@ë¯õ×úk_i_i_i}µ¾Z_íKíKíK­·Ö[ë­õÔzj=µZ­‡Ö]ë®u׺iÝ´nZ­‹ÖEë¬uÖ:kµŽZG­ƒÖAë µÓÚií´¶Z[­­ÖZk­µÖZi­´VZ ­…ÖBk®5ךkMµ¦ZS­‰ÖDk¢5Òi´†ZC­¡Ö@k 5ÐêkõµúZ]­®VW«£ÕÑêhµ´ZZ-­¦VS«©UתkÕµjZ5­š¬kÁZ¤iU´*Z­²VY«¬UÒ*i•´ Z­‚V^+¯•×Êjeµ²Z­ŒVF+¥•ÒJi%µ’ZI-@ дZ ­„VL+¦ÓŠjEµ¢š¿æ¯ùk~šŸæ§Ò i…´‚ZA­ –_˯å×òiù´|Z^-¯–WóÑ|4-·–[Ë­ykÞš·–SË©åÔ¼4/ÍKË¡åÐrhÙµìZv-«–U˪eѲhY´LZ&-“–Q˨eÔÒkéµôZ:-–NK«¥ÕÒji´4Zí?Ú´ÿhŸkŸkŸkŸiŸiŸi)µ”ZJíííícícícíCíCíCííí-¹–\K®%Ó’iÉÔwê;õúV}«¾U_«¯Õ×ê+õ•úJ}¡¾P_¨ÏÕçêsõ©úT}ª>QŸ¨OÔGê#õ‘úP}¨>Tï«÷Õûê=õžzOýKýKýK½£ÞQ飯ªª·Ô[ê-õ†zC½¡^W¯«×Õ«êUõªzE½¢^Q/©—ÔKêêêêõ‚zA=¯žWÏ«gÕ³êYõwõwõwõ´zZ=­žRO©§Ôê õ„z\=®WªGÕ£êõˆzD=¤R©ÕƒêAu¿º_ݯîS÷©ûÔ(5JR÷¨{Ô=j¤©Fªj„¡êª®ê¢PUQUVeUVÃÕp5\Ý¥îRw©;ÕêNu‡ºCÝ¡nS·©ÛÔ­êVu«ºYݬnV7©›ÔMêuƒºAýUýUýU]§®SשkÕµêZõõõuµºZ]­®TWª+Õê u…ºL]¦.S—ªKÕ¥êÏêÏêÏêbu±ºX]¤.R© Õ…êBu¾:_¯þ¨þ¨þ¨ÎUçªsÕ9êuŽ:K¥ÎRgª3Õ™ê u†:C®NW§«SÕ©êTuŠ:E¢NR'©“Ô‰êDu¢:A NPÃÔ05L§ŽSǩߩߩߩcÔ1êu´:Z­ŽTGª#ÕoÕoÕoÕáêpu¸úúú:TªU‡¨CÔ!ê u:HýZýZýZ P¨ýÕþjõ+õ+õ+µ¯ÚWí«~©~©~©öV{«½ÕžjOµ§ÚCí¡öP»«ÝÕîj7µ›ÚMí¢vQ»¨ÕÎjgµ£ÚQí¨vP;¨Ôvj;µÚVm«¶U[«­ÕÖjKµ¥ÚRm¡¶P[¨ÍÔfj3µ©ÚTmª6V«ÕFj#µ‘ú…ú…ú…Ú@m 6Pë©õÔzj]µ®ZW­­ÖVk«µÔZj-µ†ZC­¡VW««ÕÕ5D QƒÕ`5X­ªVU«ªUÔ*jµ’ZI­¤VT+ªÕòjyµ¼ZN-§–S˨eÔ2jiµ´ZZ-©–TKªj ¨–PK¨%Ôâjqµ¸ZT-ªU‹¨EÔ"ªŸê§ú©…ÕÂjaµ ZP-¨P ¨Ô|j>5Ÿê«úª¾ªê£ú¨yÔJo¥·Ò[é¥ôRz)=”J%T UB•nJ7¥›ÒUéªtU:+•ÎJ'¥“ÒIé tP:(í•öJ{¥­ÒVi«´QÚ(m”VJ+¥•ÒRi©´Tš+Í•æJ3¥™ÒLi¢4Qš(•ÆJc¥¡ÒPi¨4P( ”úJ}¥¾RW©«ÔUê(u”:J-¥–RK©©ÔTj*Õ•êJu¥šRM©¦+ÁJ°¤)AJ¥ŠRE©¬TV*+•ŠJE¥‚RA© ”SÊ)唲JY¥¬RZ)­”VJ)¥”RJ ¨*J€ WŠ+Å•bJ1¥˜RD)¢QüÅ_)¬V +…”BJ!¥€R@) äSò)ù_ÅWñU|ÅGÉ£äQò(ÞŠ·â­äRr)¹/ÅKñR<OÅSÉ®dW²+Ù”lJ6%‹’EÉ¢dV2+™•ŒJF%£’AÉ dPÒ)é”tЇâ¡x(i”4J%µ’ZI­|®|®|®¤RR)©””JJ%¥ò©ò©ò©ò±ò±ò±ò‘ò‘ò‘òòò’\I®$W’)É”dò;ùüN~+¿•ßʯå×òkù•üJ~%¿_È/äçòsù¹üT~*?•ŸÈOä'ò#ù‘üH~(?”Ê÷åûò}ùž|O¾'ÿ%ÿ%ÿ%ß‘ïÈwä?å?å?å[ò-ù–|C¾!߯Ë×åëòUùª|U¾"_‘¯È—äKò%ù¢|Q¾(_/Èäsò9ùœ|V>+Ÿ•ÏÈgä3òiù´|Z>)Ÿ”OÊ'äò ù˜|L>&•ÊGåÃòaù°|H>$’Èäò~y¿¼_Þ+ï•÷ÊQr”%ï–wË»åH9RŽÁ?1Ý7yYdI–ä]ò.y—ü›ü›ü›¼CÞ!ï·ËÛåíòVy«¼UÞ"o‘·È›äMò&y£¼QÞ(ÿ*ÿ*ÿ*¯—×ËëåµòZy­¼F^#¯‘WË«åÕò*y•¼J^!¯WÈËååòry©¼T^*ÿ,ÿ,ÿ,/–Ë‹åEò"y‘¼P^(/”çËóåùòòòò\y®9Ÿì+ûʾ²ì#ûÈyä)Ÿ”WÊ+å•òHy¤ü|øùðsáçÂÏ…ÿþ{øïágÂÏ„Ÿ ?~*üTøÉð“á'Ç?~,üXø±ð#áG„?~8ü`øÁðƒáûÃ÷‡ïß¾/|_xTxTxTøžð=á{Â#Ã#Ã#Ã#Â#Â#DØ^„ëİp‚08‚3äCI@< L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€› L€Döbð‹Á/˹åÜrvÚ©Á›o¼)_³|Íò5óÏ?>ÿøŒ[3n͸ճ¼gyÏò~åüÊù•«X¨b¡Š…ztîѹGçE>‹|ùœ«{®î¹ºÔ'€¤Œ0 `L¥µ)áËá\P‡œ}g8û´Æ¤Ö÷:Ïß6Ûümó3DdˆÈa¶?y·äÝ’wËÙÖg[ŸmM[r~âLµÝþuû×Y²„e Këô„\ñz¿v3ìfXî˹/ç¾,¾+Wš\ir¥yxåᕇWèÙì!êJÔ›8 QŸ¢niÛ÷F˜0$užsÎ>­‘¾×ûððÊá•Ã+‹§?ÍöÄÇð1|Œ3CÏ =3”ÖèÌîÔ¹SçN/ó}™ïË|鮦»šîjZk²±ÉÆ&ã·UÐÜ—w½¿ó|çùγv³ÚÍj7³ü®©™¦fššÉö÷Æeo¿g‹ÝN˜09Àò“ujÔ©Q§=6À½‘& €ÃCIç\€³Ok¤ïu­>\}¢>QŸdž“yNæ9fûçXžcyŽšwjÞ©y´Cg&gö/ì_Ø¿pÚgù=!g¾ÞÃF† iý#§§ËŸ.ºÜq{ë® à'[Ÿl}²Õò. |ßñûŽßw¤…Ü `À8<Ô‚¤Áš­‰{.àZçÝ9Ï>­ÑU®wWïÃ#WG®Ž\uHÖ!Y‡ØNé\urÕÉUô‡Îl_›}möµñ~èýÐû¡í•­G¶ÙztÙÐeC— ›£6GmŽ:±ýÄöÛï§¹Ÿæ~ñžàsn̹1ç@¥•TšµvÖÚYkÅ3¾<y<²]¾ïrßå¾ËãÞZè æDޏÞOO8=áôë—Ì^8{áì…ŽNâºkXøaßû~ØgùyQÏ¿÷ü½çï=iç÷C˜0$µ ©#Ž—@sÒ<ïÎyöi®r½»n.’…Ù[fo™½¥Ù÷ŠTâñÝÇwßMOèÌ®¯¼¾òúJïdÞɼ“™M‘¸á;Âw„¯x¾-vçôRòKÉ/%·çiàÊo+¿­ü–û2'ºÞSG§ŽN]s`Í5Z–_`pÁ‹Ÿ¿8zoÝ;ü|üóñÏÇç›ov¾Ù–e¹Ô6­àNH“Àá!€®‹mý£Þ¨CÎ{b•ìûÃõîè}KÈ3~Èû÷!oÏòžå=Ë›¦~“y'óNvôÚÑkG¯®uffï°´”wKÞ-y·ˆ”üžÍ V,X±Àö3Áâ‰:zBÎp½/_³|Íò5Öå/òYä³ÈÇþï"lÛ~ìðcë¿]9yåä•“iíwB˜0. ÞÎ; `®÷ÄÝ·„9Æc'›â)äÊÿ©üŸÊÿ1Û“¥{—î]º—ž@b]ïfϤö.Õ»TïR1ý¿r~åüÊY—æ_Ø¿°aWïÙârt–Bû‡öío]ΠK,,A›¸À$€páõ†¤pÞIs½'î¾9î϶>Ûúlk±°íÔïÁ¢‹,J/ê*†5ÖxXc³sÚeC— ]6$äþ˜-¬* :tÄùß ÀýîõâéÞüãóÏ?Þºdc±ÇØÓoi[ m¶¬Kk—µ]ÖvY]½g‹ËÑY²ü’%Ëç°iùWG˜0. ÞÎ; `®÷ÄÝ7GãÅ\s]Ìeò¶\"x½ýõö×£ÿtŽ?:þè¸Ù[œ³õÈÖ#[sn̹1'!Ïé_þªðW³÷‹ÿýA²É$£'×»XÀ, )Ö0ˆi™SòNÉ;%¯u™S3MÍ45“í}vþž-.GgIÔm¾Ùùfç›Íû€îŠ0 `€›Ë V,X± uõÖÕ[W/×¼\órÍÅ¢š™çdž“yNÏ"žE<«-­¶´ÚÒáÇŠgª\7 Þá´>Ïú<ëó Èdñšdo™½eö–"2DdˆÈs,ϱ<Çô=@oÿYûÏÚ6ýÏéNÿóʉ+'®œˆß½rþz‹öþfŸxåᕇW~Ø÷þöÕÏ^?{ýìÅ/¿Tü’hWâ¥f•šUjVŸ,}²ôÉ"ç–s˹æX^×~]ûuíðÊá•Ã+‹…òªþQõªˆ6qkÆ­·ŠàŽX´Ã_þêð×Ú*k«¬­"ÎÞ“NØ[& à˜îÕ¥G—]zT¨E¡…Z˜•)ÞÌ··×Þ^{{%VM¾-ü¶ðÛÂÚuíºv½ÿÁþû Ù²)d“X|2ÓŠL+2­i΢©‹¦.šºMé6¥Û”Ëx>Žxñ8"iŽFÄõhvf{6éÙ¤g“ÄÚ·`-X ÖÌömÛümó·ÍwôuqôÚÑkG¯ 5xÔàQ•ßV~[ùmÁ,îVÞɼ“y'+óu™¯Ë|Ý7eß”}S*é•ôJú„©±os¦Ì™2gŠ)‰‘¤¸Ÿf’uHÖ!ïçCï‡Þ‹F.ÝXm¬6V¿ ù&ä›±·oÊ¿)ÿ¦<ã3bt‘Īݬv³ÚÍÄø\ì›øYŒèmÄ“ôb¥„Ľ®]«?t­9‘è¬Ëü6ó·™¿Í»òÅ•»…÷—£³f¶^…åý‚8Àu‘& paÏf?›ýlö¨Û£nº-Bric¥BÙ e+”µžâ:gòàÉÖ'[Ÿla‘œ^9½rz¥äÉ=’;â¸b*!ëÐþrDðT¤ÒczD ¤ŽNZ,é)Rû±«sË«F´+g;ïŽ8ûq—ð©ngh™®x½;[9×¶]Ûvm›xKŸYiâœî™¸g➉‰ÕÂ×_W|]q‘–‹ÝùËV‹ÿ¾¾òúÊë+c·'"Åb]¾ácø±{2Ì6±8³Ù½R$®l— *f5#H‰uf·ìܲsËNñí×ÿï¿ßÚþÖö·¶Žè™ï§¹Ÿæ~šæcši>&v-Jü°)žë-utêèÔâ'tUîU¹Wå^|õo–÷å—¡/C_†:î¾ã*ã–<|ðP¼sÔzä—;ˆ£GÎӺǜÈÒ!ïCÞ‡¼ÍÊ<¹ê䪓«bW¾ès¬Ëÿ{bñDoÐèp£Ã›•/~þ"ÖlpÄÑY?|1ÛŸ#<>ò˜˜Àu‘& pI§æšwjžøÝ}|ìÒ]Mw5ÝUËé½³%Ä$ÜòÍLñ+KX–°,añüuݰH*ˆ'ªã~\â9›ø DÞóºçuÏ«V×Z]kußú·\ŠÖyλ#Î~Ü%V8q[& ดs3ìfØÍ°b÷‹Ý/v߬±8päêÈÕ‘«¾m‹ôŒxR0~ϵe"*¦{5s×Ì]3w™•¼ûÇÝ?îþ1¾j@¬¨a–6Ï)Ú.A$`ĪÖ%ø.÷]î»ÜIëÄbÏuqf虡g†®U¸VáZqoK–‰´¸ì¹x:6. iûYþˆÁ]ï¶Nw8ÝátqI ZÏ­:b¬îüý¡{̉,õ;ßï|¿óÖ¥‰§Õã^3âilQ¦x^?±Æx¯Z¾jùªe“M66ÙhVréq¥Ç•'R¿ö|WìŽÎ´´è¢ÑEßsì–½ ñ€+"LàbÄï”Åâ{Ž Ø-þxñÇ‹?vžä8jËЧ㈅ìœ-˜ à‘/G¾ù2~N,´—Š ‰Eüwö-ß[é çÝqÁ¸¸H¬pâ¶LÀ±+çv«Û­n· ܸ9p³Y biÙˆ;"v$|«¾ë×ÿ®ÅB U,äèû˼¾óúÎëkÿ¾‰—˜•6¤ß~CúÅWmx¶áÙ†gfßõó­Ÿoý|Ëöw©OÔ'ê³Ä’°î4³}®Å=Ë2]_J-q´ÄÑØw±Ö…xÆ.mªS£N:5âÒV]qÜrzÂé §'8bÄnÿO Ü©?t9‘ ~² ~c]Z÷ÑÝGw÷¾½ýëö¯Û¿åˆÿNø1žHý6›ÑlF³¶S¿wêÜ©s§Žýß»£3Óuq×Å]›ý³úÌ_ÚýÒî—vÇN;yì¤x˜xÏ«XHM,d'Þ»%à,µËúþ¶K6û«„ ǘ•#–]µ>û•rTÊQ)ǯ~Íðk†[Cn ¹5D¾ûøîã»×VY[emñœ¨=ˋϻßÝÁšxë­í7 5ÖXs ¨ÑÄ2¹b©ä­¿lýeë/fÉ31î¯~ÞUúCWŸ –¯9°¶ ê‚ª ªÆWoiýsÂŒ^×~]ûuíZ h1ÀöÏ,bšúËÑ™ï«6ÛÏ}möµÙ׆XÀ‘& p•ÎJgÅö´¼é’¦Kš.±"-B6Ž{r1î¡z3 =òxäñH¤uã÷©Ê¿G;"vDìˆ]0"~Óc “¶~7g·éݦw›.Òð¶¿K£mï§eÈþ½öÉ´O¦}b» ÌZ;kí¬µâúö”/”¶÷vÚ‹i/¦½p†çtI;gËtþë=±Ê?¾±ü5ñŽFËgF¾%Ûî[ÄšÛ'mŸ´}’ýõ&ŽÝvY¾!Õžýœšij¦©™ÌJ‹û E²*óœÌs2Ï1ûƒ=å´®Þºzëêfû¹³÷ÎÞ;{'°%‘ ¡ÿK ¤ŽNZ¼ÅÖv™–IA{öV$nm¿U, -~8¿½„å5)Œ[I-,žKˆÝ~ž¯x¾âùŠqß[HÊ?>ÿøüãã7ÔkͲk–KD&üywtÉζ?Îß2]ëzO˜rDH´V×Z]kuÝâ™ÝGwÝ}t´gñdUÞ-y·äÝb½'Åî»_ì¾ýÇ×7nøhÃG>2;vñÆz{ÊïŽ5+ç\ÝsuÏÕÝÃì>Ûï|¿óýÎÛ_šácøf{(žw§šíV-–&Ï>Æ®|ñ,i|]Å×\?p½åS†–ÿÄ’³ñp Úñ¬§»ÞÄO%Ä”mÿ¤,îõ,Þ\÷±ºkõ‡î1'RÒ+é•ôfåXþ€À9{6³{ûÏÚÖþ3Ûk 8sêW4mдAÓÌŽB?¥ŸÒO¸À$€NmsÔæ¨ÍQfј>cwžï<ßyú.÷]î»Ü’–ÏXoÿu¶³æê à‰&6šØ(v%[.½—½ÝÛko¯½½ÌJAÉø:_"¸™+M®4¹ÒX—e0(áÏ»£Kv¶ýqþ–éZ×{”c{Uñ¤þâ狟/~n»œM§7ÞtÚÑ­wÏÄ=÷L´ýZø½²ÄsoÙzdë‘­‡Ùb°ö|£í”Oìžà\üñâlV¦e?lOiâùN³Òâ7äü÷zñ3²¸´%ÇõZŽ#~’ð½¢3ÜDrȬñ,iüÖvùšåk–¯—=w­þÐ=æD¶ßðmÿÁÆx¢WïðW‡¿:üeöùGK-qôÖ[Cn qþ%”g/œ½pöB³c±\GÀU& pjÇ4›ˆöMÙ7eߔ޸^{Þ}åˆP‚µ*÷ªÜ«rÏìo=Ë{–÷,ïlSqWOÇeÉÊøÚ[Ûï´¼.â묉wà‰'Â-ÿÙÿ¼ `G©3´L×*3aÊ1#ž ~ºüéò§‡ÎÛh[ m³Ï[>9ç¸Ö;í“iŸLûÄÑë X3{?®å{^í)G¼=ѺË{¥ý{U·LÝ2uËX—V4uÑÔEcüܪíl‰÷˺ÓÍvû·|vÐúÛvÕßUWý„ïáî`ù# k£Ï>7ú\üž5ÛK7Ûó]®ÕºÇœ¨ï«¾¯ú¾2+gMƒ5 Ö4pþ°Hýv:ÔéP§C¶—õ¾v3ìf˜«$MWX5bÕ³#²l Ä(®‚0 `€S³½¨æò5Ë×,_㈉èÊÉ+'¯œì IÛ‹^ZÛÙ{g⦅>þùxg$n™ö¼E/qk Mé6¥Û”¶ýäwRHü;ºd×:Rgh™®Ufb%€kŒ­1¶ÆXñ¦CËïú«Â_þª`ûo[ h1 ÅǵmËòñZ3fÉoñÖdû˱ò¹¶íÚ¶kÛì)G<åñÈã‘Ç#ër,ß¿nÿ¾‰µâ¾o®ÂvK¾ôèÒ£Kœ¹¿/â Zq_¶½²ãzEg¸;´®Þºzëê¶W8ˆß³¶áÙ†gžÅeÏ]«?t9‘ÙÏn„ðÊá•Ã+;sÏ&žŠ¶ý&fK¿µý­íom]¥W{kv, Þ4xÓà `€k!LàÔÄÂYfÑã»ï>¾ÛQñ.gHBˆ·Æ4ý Þi'þ{RФ IAÆc±G,N˜¸¡g(ÓviâYØÄ­Û ž\urÕÉU$€“ZØZ¦k•™ð àjK«-­¶T<ë»e<…e¿-ûmÙoŽh½e»•íV¶[Z§!öÇþý·¼ïÇeùPË¥,­Y¾Õþ} Ö‚µ`Ív¿íN#4ÛgöÑñGÇwæþÖâížb= ‘šú±Ã~ì Þ(\»Yífµ›Ù~ò;azEg¸;Øî[b÷–nÛìy°;õ‡î1'²ýC™CÞ‡¼y;sÏÖmz·éݦÛNÅÛÐ]%iz ÒJ*™‹x“1Ñ €k!LàÔòËs,Ï1³‰èíV·[Ýnåˆïµ\öÖ’ö_bG„Ï2tâ eÚ.-îojŒûÞjQ¨E¡f%Ü©s§Î:Îvµ’vô‘:CËt­22,’"éeOù¶ƒÈ9j稣¶#ZxÁî»ìî< éQ.]ô=çE¼qÙžz3KÖ :t$vuÛlF³Íf˜©XØFhÿr}¥ŽNÚ™û[Aô«Qâ†E s`Ì1«Õƪí4U\¸ëÝÁvßrÏëž×=¯ømb,—=w­þÐ=æDy·äÝ’w‹éÊÉ/%¿”Ü™{63·fÜšq«Ùÿ;êö¨Û£n;øb®‹¹.æ2;ŠüãóÏ?>—B˜0À©¥?žþxúãfÑ—¡/C_†:â{ÅÊΖ„KVŠ¿òHî‘Ü#y|…œÄoºÅ‹gŽ:q†2PŽ{ùÙ[fo™½¥Y ‰»ÄwÂ×* `çi™®Uf”SõªTýÃrµ{Ê|ððÁÃm—l:Ó~Ùzdë‘­‡ó$<¼z?ô~Ó£ùéÈOG~j]Zº«é®¦»z×ÿ®ÿ]³¿½|õòÕËWÍöG<ß»:·ý¦Ì‰&6šØÈâUKμÿŸ¨çé™ñ-byöïÖ}·î»u¹ÒäJ“+M|µç,aY²„¹JO›ã–W-_µ|ÕÒÙÆê®ÕºÇœ(ë¬C²1+'îsG_ ÖÄÛ—·þ²õ—­¿˜}&CD†ˆ ŽøÑmüËžÛþiÑ €k!LàÔÂÛ<ÅWëIDATl‡“ì*gKBX²\Øö¢p1?%óNæÌ]BŽÛÃø-ßv˜O,JélW+ `ÀI3l™Ê鑊Eem—?{áì…³ÆWëµý”RÂûӣ˄š•¹tïÒ½K÷šýíÔLS3MÍdýW¢×µ|OsL÷jÃG>Úð‘Ù^9úíÎöó]î»Üw¹Ù~Iq$Å‘ÎÓ3Çï·¨OÔ'êÛ5`‘ĪP¶BÙ e».ëâõyÖçYŸçéò§ËŸ.Oš `ÛãG$€ÅÛ—ã²ç®ÕºÇœÈìÍëÎ3¾Aê÷UßW}_Y®vЪi«¦­šš}¾æÀšktæç€m_Sâ'VD'®…0 `€S³½8›ãµ ;gØì[¦½˜öbÚ‹ºeê–©[Æö¯ì·\! ทo{¡?‘pr¶«•0 ङŽûyÏ™•oùN÷¸—ácøfß•0ï‰/~åüÊù•³>ЦKš.iºÄ¬ÆÌÞ°.pvÜÈAôêq_ª7.Ä›bÍöP$fì_aµÀb‘gûŸø‹¶-ж@Û3ÎÎ8;ã¬TL*&»râʉ+'lïCÒLÛ·8b hQf\öܵúC÷˜Y¾àÀšíõœaŒg–ú®m»¶íÚ6Û»ì·e¿-ûÍ9甆þÍöܳ¼gyÏòѸÀ$€N­Ì×e¾.óµÙDôÄöÛOlwÄ÷ŠEº\+lÏ÷Š'ìO [>‘¸Ç›ÔÀ¶Ÿê¶‰Î„ä¸ZµýŒÎ;Ïwžï<æÅw™íI¦™VdZáœuè*×fü–é*}¸XÖö·TþOåÿTþOÜ¿ÑrÁWé[Ì í4´ÓÐNfWâãˆÇ#,?¶õÙÖg[›»x‚3î5\¶[Ùne»™}‹X~9±jlsÔæ¨ÍQfû&î;Î6¶‰û·ˆçóÍÎ7;ßlÛÉïöŸµÿ¬ýgbléÞ?ƒsDù¶û–óÏW<_1~Û³í÷•Ú³ç®ÕºÇœHü´Â¬œsuÏÕ=W×™G³_ÝùêÎWwl¿ãü‡}?ìûaŸí…¾ó9`Qÿf{.~‚@tàZH“8µ&›ll²Ñl"º|Íò5Ë×8b ½¶ÊÚ*k«¸zØŒåÛ¼ŠF.ú/{8hÚ iƒ¦Ù¿·$€ã^¾å2qÖvÕßUW}g»ZW«¶Ÿzo,K˜c¼Ýêv«Û­ÌöD<èœuè*×fü–éZ}xÄŽˆ;l×ø©ã§ŽŸ—o©Ý¬v³ÚÍÌÊ?Xô`уE]e„°·×Þ^{{ÙNèZ~^Ôžõ'ÅiñõnõáÇší•x¢4±îþýÎ÷;ßï¼Ù¾…öíÚ?qïõŽøñ¼íÔ¯HÌ'µž6!Ç-[vnÙ¹egü¶çÃw ß1<.{îZý¡{̉7nÜlVξ6ûÚìkãÔ£Y›©_A,d]®y¹æåš›•Ó«Z¯j½ª9[Øö]µÔ¬R³JÍ":p-$€IœZØÈ°‘a#Í&¢}²ôÉÒ'‹#&ÏCú é7¤Ÿ»&€-‰w†ÙÞÃ’ËJ.+¹ŒpB–?¬ñ°ÆÃ›•0)hRФ øm?ây…Êoÿ÷_ujÔ©‘¸µZ)G¥•r˜•|jÞ©y§æ%Ìõ²¿Þþzûë™íI°¬k‰Ûr\ýÚŒß2]±·}÷oÙoÀ]ù¶Ó“žmx¶á™Ë RG§ŽNmöX>_}‹Ç#G¿ÍÔþ¾å~šûiî§iÿYûÏÚfV²xªL±g›å’Ñëó¬Ï³>HÃ<¼òðÊÃ+"Ø*öG\/âI_‘H³'Ä,ž¼´|ƒ²³µœ„)ß™¯w÷H ¶Ÿ€¶ìܲsËNGô-âEóúÎë;¯ï©y§æš'î/Uø«Â_öLÜ3qÏÄÉ“&äôÊé•ÓËvâçpºÃé§‹ßÚW´íÅ~-Í8;ã쌳 yÅÛˆíÙ7ËT“H’‰‘ŒèmÄ·Ä‹g—î]ºwé^³„еܗs_Î}YŒ œù™Ôøú–³­Ï¶>ÛÚþ:W?T?T?õ#j[\)â§³ÖÎZ;kmå·•ßV~kÏŠ¶Órö¯‘àZwñÓ{Z£åxûjäÕÈ«‘âN!Òä"ÅÞºzëê­«[ÿm— ]6tÙ`{Y]wí]wN$LøjÂW¾²ýÃÓÄšo:úZ³0³ò-ø›GmûÙ}Ë× ‘¸À$€.Æž¥Ïâ"psàæÀÍ"]á ÉlªAª©Ò& ñt”xv!¦Çk{ÁÒØÕCRN Gy|䱣ϻHšžØ~bû‰íÎpÞÍØ³`£ã.]4ú|ÅóÏWt¶TG—ïÌ×»;%€E‚³Ê½*÷ªÜ3ÛË÷àÆ oIq$Å‘޾jD‚Íò=ˆŽ¨¥žMz6éÙÄž=‰ßŸnØÏž—;8NÏ"žE<-Ÿ)wæþ*~¿eXãa‡5v\ÝŠ—&løhÃG>²ýZ g%Lùêõ‰úĵ]}fõ™ÕgÚ^b]ü$Æc-—ê]qN$ˆÄ¹YiÓÿœþçô?+ÝèèkíÅàƒ_ .v¿Øýb÷;eH¿!ý†ôKȰ¬sk§'œžpz `€+"Là’ööÚÛko¯ø s”Wz\éq–ÏÄ8OòÀžÅoãKcµ±ÚXOIÆnªÿMÈ7!ß„vDùg†žzf¨#λxê×29á çÝ6ñ„PB¦OzUëU­Wµ˜>íÞ-Ó™¯wwJ ¿÷ü½çï=mïO«¦­š¶jÓ}s\ßâåçåçå·áÙ†gž9º~Äó‚¶÷Gü *qÇ0b‘ç„ì»ZviÙ¥e—<|ðÐUV,ˆßo õ·ËÚ.k»¬ñ[·âyPËÕ)Ö4XÓ`MûK°gÑW×·ÄïjŒ­1¶ÆXñÞeÛŸKs;ÛXËý¡k͉,™½ˆ¤m¶Úp×° ç–s˹;E¬ÓsôÚÑkG¯%ÌQ[Ö¹¥=@Љ<\ `Àfù›tËåûbúü~çûïwÞòI‚ø Ä[(!utêèÔâ¯Äò³ñè©”£RŽJ96GmŽÚe¹Ï±;/¶ŸÉ ÷ò-k8¦ïó$–©íßrñCç9ï1½.¾¸ûÅÝ/îÆ×u!7ë⮋±h­{´Lg¾ÞÝ/,ÌÜ5s×Ì]¶÷J¼ .g3ë¬C²ÆòbiÓN‡:êtH,ú0u%ì)Û5ã Øèp£Ã‹g2D€O$ÉÄ­µºÖêZ«ëÔLS3MÍ”iGL×­ŸÜ-šºhꢩÅ¿Dú*ÓŠL+2­KƒŠ:iÿYûÏÚ6í“iŸLûÄrQ¯ø­ˆ·|bCYúdé“EÑÄÕ!ÞÉgY3"L,öJ¼#Y„ã-Ÿ1¢¥q½»¢¸´^ñVKQBg¥³ÒY©X¨b¡Š…D˜XÜ_ÄÕ$î­â=³Î^8{ab-°,˜=É$F⸜ó|YöÉb9ëM!›B6‰Þ[,iûwß•Ì;™w2±ˆhБ #AGú¾êûªï«µUÖVY[åfØÍ°›a´Û,×rwOQŸ¢U‹.Z»hù_æû2ß—ùvöÞÙ{go±ˆ«ínùñ3;qÖr¥É•&WqfŪâyÓ¤Sóâ x1 ­9°æÀšÅ$â~!î¢~ÄÛRÍÆê¶_!–‰Ž¯}v­þÐUæD¤ý#í¦©Vý”~J?ÅÚÑŒ=ÆcÙâþ¶x `À€$1©v†g¶œá¨÷Ø“ÚY  8çywΫ#)´@ꄾÅáRG§ŽNí_Ø¿°aë}OàQóH¬q#g-~ëgë/[Ùú‹íW6¸úºIaNÔðbË /ZïUïR½Kõ.Å•âhâ§-Öõßdc“M6R?WG˜0Àå‰'ÆÌ’–o¦®W7kí¬µ³Öš]ïâ c®wçg–È·\¤Zr„—¡/C_†Š'×­ëÇðÃw §þ®Ž0 `€Ë íÚ?´¿Ù[ÅÛC©%ÀqĹ/ÿï¿R³JÍ*5+~¿ËìÉQÒW®åç;Ïwž¥Ç•Wz\ìÞØuk]çe»•íV¶›XQƒZ¸:À$€.ìéò§ËŸ.ÏÞ2{Ëì-­g»ƒ¦ š6h© ÀÑÄ›wÍ’²§æšwj^Ü¿åb®‹¹.æïöþÑ<ÿ|üóñœW±áÙ†gžYŸÍVM[5mÕ”ÞÛ,ëÖÒæ¨ÍQ›£¨s€{ LàÂ?_ü|ñs³´Ó!ïCÞ‡¼ gŽ6~êø©ã§š]‰m ´-ж@\®Dñÿw¿¸ûÅ]³o鲡ˆ.8.&utêèÔåš—k^®¹åÙ̸5ãÖŒ[ï§¹Ÿæ~*)¾ˆúukYÛÊV([¡,ÏþÜ `À—ôdë“­O¶»_ì~±ûÖóÜŠ…*ªXˆZÆ•WN\9‘Ö¦¾)û¦ì›òA²ÉÄ v×ÿ®ÿ]ÿÖÕ[Wo]ݬdäÉ=’ïk³¯Í¾6üà骪ZŸÙïÖ}·î»uœÓø2nѸEãY׳úD}¢>¡žî„0 `€“Ë;G ‹5ìv«Û­n·z6ûÙìg³÷×Û_o½Z]ku­ÕÕ,!´éô¦Ó›NÎÒðÀáÃm§szåôÊé%þ[Î-ç–s_¾zùê嫯Z¾jùªå­!·†Ü±#bGÄŽa‡5Ö8Wš\ir¥±]æy€<@¦þ]]Ç /t¼`yfsÔÎQ;Gmzò¸»çuÏëž—e} •ÎJg…ú¸À$€Nê´¤ý#mL•šUjV©Y,e $<ñþÝ´ ¨RŽJ9*åxñ8âqiBW'ÒÿÖgy„ïß¾ÔO\ˆ:´¬U/?/?/¿?{üÙãÏ\;÷C˜0ÀIÅ4œwKÞ-y·œ«{®î¹º„³Äb™Žuñ>`±<×»;Y9yåä•“-Ïu–°,aYÂ8˱#R¼Y‡d’õÿ$×W÷YÝgujà®þ_{w]Uu÷¿õédù}-ó(ƒ ‘)‘!d„E'DTT‚¢*(ˆTP¥V‘"Šuı‚ȣ⢀28P+VqÆ-‚Ì$¿?¶.n{¹é…nròzµörµ'7÷žl>ÙûóνG, ˜J>nvX³ÃšöÞÃï=üÞÃÚÙP|„éíÒÛ¥·+|èÛ®O»>íú„xïò÷ï=ªíéÉßLþfò7+?_ùùÊÏ…¾¥G¸|øYwhÛ¡m‡¶]VtYÑe…Ÿ~ò6®Û¸nãºØë~oÆ^[W €¨ €(ab÷³®Dé_´ÝžX D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„X D„ø'¯-JúXœ¢ãKRt¼™¢ã­ƒ~,Mѱ,EÇòo§èx'EÇŠ+St¬Jѱ:EÇ»ýx/EÇû):>Hѱ&EÇßSt|˜¢ã):>Jѱ6EÇÇ):þ™¢ã“ƒ~|š¢c]ŠŽÏRt|ž¢ã‹_¦èø*EÇ×):¾Iѱ>EÇ·):þ/Edžƒ~|—¢ãûÿJѱ1EÇ):6¥èØœ¢ãÇ[RtlMѱ-EÇö;Rtì<èÇ®»Stä¥èÈOÍñú/Rtü2EÇ!):þç@`€ÈDDdàÀ(="ÛóÛžßö|íõv,JÑážÄîFìnÄÅÿnÄ¥ç>Ä¥çÄ¥çÞÃï¦è(=÷.=w.=÷.=wváèÝ]8U÷.=wv_awv/awváTÝE¸ôÜ?؃Ý3ØÝ‚Ý'Ø}‚SuŸ`wvoàbWào‡|;äÛ!‘}0‚ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `öÓöÞÛ{oクï⾋û.j´¨Ñ¢Fîüpç‡;]5(éÂ$ìGÂÞ$ìS\Ð+ øó³ù;ów®]³vÍÚ5³ÆÌ3kLßÅ}÷]\¶ˆt\Ûqmǵ·n½uë­[—-_¶|Ùò-«·¬Þ²Ú…ÔX58ÐÂ!ìÂÞ!ì#ŠjWö8a¿ö>aäʃ^Ÿ¸T[uÞªóV7¢çˆž#z–M‘Æ0î„qónwë¼[·.Ùºdë?@Uc€Âëÿ°û‚TíJž(ìü\@¯¢'þ_Ùëÿóúÿ¼þ?® ©%.E¶4ßÒ|KóYfu˜Õ¡l16jŨ£V|öägO~ö¤Ÿ Æª±@2Â:?¬ù‹ó®$ì›ÂÊO ½½(éÀOàˆÛÖ{[ïm½§ÖšZkj­Â,Nº«S‹š[Æž”;¼Ñ'3·ÞøfóÑó>¼³OÖöWÆýåë6 _}iÚÇm.]°èîÜV=Öíæ[ÖtÅð›ÞßKÏ~uϨY¦z›òùû÷}\4à¢}~Ûç·}~›Ÿ&Ý›¶½æ–±'µýK£Ofn=®^óÑó>ì11kû+ãz7hÓðÕ—zÿ¥Í¥ õúe«ëÖmm˺“®èxDÓûûoÉhV÷Œše*~¡Æ@iÖóam¿û‚з =œÐÏ ½Ðç =ŸÐÿ ½ Ð =¢Ð/*Ìn(ì§ÂÞÊO½‚X郻t«¶¦ëm—fÔm{ú½[ùçþU§-jüâ€çf®lzÜ…'Îú éUçm½ÿwMÎî[}rφ/uï{UúZ=tÊŇo¨|lõ–¯£W‡˜âIÉUFþ¶ümó_˜ÿÂüöõüeÃûuN+÷ú¡÷~Úæ…]ÓÞ¬Ÿ36?éÒ®]‹j|Æc·ßð§¬+>OU;­ÆÇ®Jþ¹ÝTå¦*7UÙ:qëÄ­ý’Yc3OI+÷ú¡§Tjó®iƒÓrÆæççævíZTãû3úþ²ý†?euŸ>ªvZ¥'ÔXˆ¢°nkøä×ü¡z2¡?S´=ŸÐG =¥Ð_Ú×SØg…=—Ÿ2¥§WpÌç5¨}ë…_Ï^ßtΘÏßûUÖãcÇ~ðA«VE5^²ø¹G=Ø£þ5Cë¿R¥óá3Ê_©WEKLñ$Ž” 57ÔÜPóÔœúSÿ‘̯ð>»U®3~Ùù3·^´‹þäÇoG.XpìÌñC³ïH~ññVå·*¿UÙO(Þ5¶IfñËÎ?½yÛéEô&?~;ò¼×9>£ýÅj,”|a­žüÚ>ô[Bï%UŸÐw =¨džsØs…ý—Ÿ8Ñë´XÝýåÍýìñµ¿,Ú 7ùqÔ¼Å/·øáøOGt¬÷ ½(<0Å“8"µ^ÔzQëd~UÈ={iÚØ/{Î{¦Ó¨T-ý[ç.ê•=hv‡qKš¿žÌk™x×Ä»&Þ•7.o\Þ8s(56ëic¿ìyîšN£Rú&·ÎxJö ÙŽ›®Æ@ÉÖäa}žÌJ>ôUB¥¸u~B?*ô¦’y-a/fPÒ{Gœ¿¤öGWûêå-ê¤*ôM4^7iÅÆÌ/Îh}kΑKô `ÿ€)žÀ%zŸ—ŸwϪ{Vݳªà_̽êwnYë–u=ÿvGÇÉÅméŸhÜ9xIËœö“†ÿ¾éô‚_]÷¾Ýûvï»ù˜ÍÇl>ƤRQcÜPë–u=Ï9«ãäâú&wôlNûIC;ÖRc ¸ ëð°&/xÝú'¡—RR:?¡OzV¿º°/ {4³‚’Ò+Ș‘3¤z§ËÏ|¹vóëŠ[è›hsò»¿ÊÝýô«Ž«¤^$OLñ$.™+wóÞÍ{wÔÂQ G-,ø—ñ¼áwþ6k]IYú'?©ôÌêŽe[njZ¿jÓD¯´Æ¬³jÌZßv}ÛõmÍà`ÕØf­+)¡o¢ñ“JgïX¶å¦šCÕX(ÂÚ;¬Ã­ÒCŸ$ôLJzç'ô¯ Þ…=Zد™!ç^Á¹_M»¤ñœ’ú&Gt{1§y½#2Ò7VZ¤WS< €KÚRcXÞ°¼a¹Ks—æ.Mô«·í†æS«½¼>ã…ùÇö)逨1oÓ[Û»:aÍ%“›ü—¿{ýjÄW#¾a¶¦ÆÖùMµ—×gœ×íØ>%=úó6åþºë¡Ötø½ ©ÖÛ¯ÉCo$ôI¢Ôù ½¬Ð×JôÚÃ~-ìÝÌŠO¯ þØ– +:ªú¢9-^*éÑᅦ¼¿­U™n_þ@½l½HDLñ$.9æçÏÏŸ?lÓ°MÃ6%¼÷äeg¯J·«Ý’¿ç\¥ À^þ2ô›;dí*xÙ±!sCæ†L(º›U>mÜ®vƒɹ8JÑoü8ÕX8¸Âû¿| Ñ7wÈÚížOèk…W¢ëönagæÚ^AÇ‘ç¿S{혹ïþ-kz¤¢ß¸±íi+/Ô+€x`Š'p‰q[ÛzÜÖ#Ñ/×Û{x°éÊümKuÍŽö6 v\^kæ®¶o$º&«6®Ú¸êÖç·>¿õyó(\íxyÓ•ùÛrvÍŽvô;.¯uúH5¼°®kìD+ðÐ)==ŸÐã ý®D×$ìãÌRÕ+èþÚÕ¿©ß}ìõ¬l•íè7vÒaÎÕµõ –˜âI\<·ð¹…Ï%üëªÉ?^ñLzn)ÚÄ+·=´¤Ý'‰®Oÿ!ý‡ô’ÿNþ;ùï˜KÀ¾×ØN—¦ç–žÐ7~\¹­OŽ È;ùïä¿ÖÕ‰VÝ¡ïQš;?¡÷•èú„=©ÄÁìôøõ5mêÏ+=¡oüxñ¤§Çe|¡W˜âI\¬}ÚèÓFŸ6Jô«tLËAË ,Í€ØqÉ 3²Ž~*ѵšñæŒ7g¼iFûRc^Õh`iŽ~cÇ%'œú¨ E-¬¥­´C¯CÏ'Œ¡–èZ…ýÅîäÜ6ôÒ#>/ÍÑoì8è_\‘~–^€)žÀÅÔî3wŸ¹ûÌôIé“Ò'Å—“OìR½Öò¼ùo-ËÙe;>vÊÍ[6H´ìøè‡~øè³ øo5¶aßZËóæþWÎ.ÑoìøØ)Ý>Uc („õs¢ÕuèoèóÄŽ¡zbñW,ìïÂ^Ïìâ@ô ŽJïÚ¿ú¥7|ùþ’V‡ˆ~cǾµ'ŸÑp¡^¥™¸¨Ì}bîsŸ×ð¦‡ozø¦‡¿?þûã¿?Þ•Ù?àbjÚÍÓnžvs¢_œ? ¥y—V–þ‰Æá]ú}‘Ö)þº5›Þlz³éyòä 0Ç@M\cœÝ¥•¸7Ñ8¼Kæj,쯰fëçøuuèièí$CO,Ñn.ìõÌ1D¯àš2ËnÏ6ÕL5vo5öô9m¿ñ†~Nòcè•í%®«=¤öÚæ…ïtî=è­:+…»É¹3”þ­^¥¸ðB ÂݲIL\Œ|²è“EŸ,J4•7U|åÉ.gYÜïëxÁÈ“O®»—¿ ½§Ì=eî)cÖûs0µËYbÝ}/yTm5’ÖÉñëçлÐÃÙ×1ôÊíòÂЬ£0½‚kú,¯”ÙP¬»¯cë5§ÝPó½JpÑp1rÑè‹F_4:~âÎjqãÖæ,ë÷oür¼;ý1QQØ–¹-s[¦¹¥»Æ×¶ùQîþ_N8wƒ ÿMX'Z9‡Þ…Îþ¡oUÃÐÜcÿz§??qБÓE¹û7^yö«3[4Ö+ ô8Âà ߭únÕw«MÖí'.¾5ûU úÂŒ—ÝÙ¯_ZÕøkûT“§š<ÕÄ „Ò]c®Ï~U”[˜ñ²;3û«±XXǯ™C¿Bߦ0cè›%Úñ…ý Ⱦö ®ï¹ªsVQnaÆcî<ïØÚ“õ ( À‡0x_ €‹…û6ß·ù¾ÍñSsJ·«ÖfL·”/üøéê¿ÕñŠø+ܨ}£öÚçïÈß‘¿Ã<„ÒWc;_”1]|[øñÓÕ礫±°W;òwäïkãø5sèWèÛ~ =´ø+öƒ¦!É÷ zÝ1æáwˆo ?^^ë¥ç›Ñ+ 4|Âàd€Sííü·ó߮ѱFÇã§ã†i/ê\+v9»£ïý³ó¯ÉðBê·±Òòpæõ&¾ÔòØ3ÿqÒ“•:ìŒ}´(-ë—ŒžqÖÑ Âëªûi­7+öÊqú/êwÞ¸náÂ.•}UǺ™ŸW6þ:6ô³¡Ÿ 5¡ôÕØóïè\+6ÈÜÑwPÏìükrÚœÕðÆF£ªÝ´§Æž°¡å±gþ㤳^þÏ@wÉèS_ÜSc«”¯Ø+wDó3ëwÞ¸n@Ã.•}UǺGLQcàß…õpü:9ô(ô|Šªçzhñ×9ìÃÞÐl$™^ÁUÿ»d|Ën±Aæõ+W×ÏêÕeΆGdžÑ uÅêá̳®¼ó‰F-bϼì—ó»5ëûhQ tÿö‘ûÒϯ«Úïk/¨pXÛgû^[«ëè7–Ui¹-ÑW¥k}l•[õ ˆ6pj ƒ§Ø‡}q؇ÅO¾“þÔ©YÍ-ñËÙ[οtQ“k¯7ÿ¾ñä*ó^l>å¦Ö%q3ðç#?Îø}x†á9'óU«Þ{øŠöåÃWUX]á²ë“y¥óž½³mÖ¿â¯öÔ:SëL­c6Biª±iÛjn‰0o9¿Ãôÿ¬±‡Ï©2ïÅæ½&´Î(þð+_ôîÖæ˜3šu¯wÿQ5k̨R±ê„ ­Ëíh8¾ZÓJSN::íýšënírL¯¦u¶ŽØ9»_¢ÇYõ^Ÿ){jl¹‘ÿYc÷þUóžíq­ ÿ.¬‡ã×É¡G¡çST=Ÿ0†~ZüÕ{C³‘‚{郺WmM|„yÂà+¾©wcì™uÚ4Í®4âüÙ3Z7™Rœàë¾]ygÖ¯N|eT—z[2êfOª^¹æø#'W¼­âmU¾,w{½wZÜ\yvæÚ^=?õÂ7g?ÛtfÁvñÖgÚõ»ðºÊ}T¡EÙG’y¥ý3mvãyzD›¸øÇ§Øì³;Ìî?ឯqçÄV¿‹_ȶø¤ÉIU¾ çÌøÍ˜g›MI´ä-›Ã–þ¡kÙöÝZX{½ ùùa ¿6} =ŸÑó ý´øóÃÞМ¤à^ÁÕ¼U¹å݉"Ïà’מ;稊s|ýïwÍú¦a÷¶çT­ÿS@›[~HÙÛÿý>¨5ÿÌ6·¿ÖpÄE÷=¹.ã®þïíÞøƒ6‡œöVÍóÊÞXöïe[%ÿÌÇd¯þ¿¬‘ñ×0ÑùõÏi9¶ò{zD•¸ø+a°8ev—Ù]fw™ø)U%·ÒŠróó·/]Ü5§àÍ@ÁKÞâ³øfÈ uŽmúÈ¥ʶ˜7fûàÁîŒý›ÖÂoöõÊL¹ýêŠsâÏ_™·2oež™ Q¯±å—•›Ÿ¿=wPל‚à‚cÎâo5pZöGl¬üüÏ÷Êz¶VŪ“C ›èY…ÿ=ö«’yþÉ_™)·wþ£ ùùa ¿6} =ŸÑó ý´Ð[‹ÿª°O43õ âçF…É•3ʵ{ý«Zes‡øìç¦LmôCìsè³hÒΆÝc_Kü«Ë5ôÄ#Ö†ÿ®½¨É5•º'ó½’¿2½ž³®Á4½¢J\²”ž0Xœ2ë;¯ï¼¾sü4ºlX¿Nie ¿äÝ×ÍÀü¡þs«S+=Wqt¹3Âùgüéøÿ©ÓfGß7úgçüL ¾ËƒkÆ~Ó¼mòÿôf`Åó]ÞnJüù3ÖÌX3c™ Q¯±™§¤•-|̹¯ðü¡=ë¶:µÒså况Ÿ®ÓfGßA=³ó ~&á{%zÌØ3Ÿù û™ìk ›ýJ½'kl+ªxÅóg¼­Æ@~~XǯC_BÏç€ÀùK—vízkñÂ>ÑÌÔ+ˆŸÇŒ=¯~퉅9÷5îÿ÷é•ç•¥âkeºwu‹¦'N«qéõ+W×ÏêUð3 ß+þœã²‡ ­ûÓ{sk,¨i…ͤs/¿çåIÍïüé¡cÞ \TðE?>uuÆ3zD•¸äŠv,N™e.{pÙƒñSçñnYÐòšƒ¿T÷žÎ­Tþk¥Öånûén sÞ®}×öÜų²ßLôµÉoÞ÷Èwí¯¿ã·—ÕtGüxð7ß/y¹Fç½|SnýÜú¹õÍLˆz=axËkfüRÝ^ëZ¨ü×òãöÔØF³jßµ=wà{jìþÀ÷vÎÎ9êÅä?Ì9v\ÖñôúmïúiCØ·bvù鿊ä¯Ì÷K.8W€üü°ÞË-i–¼\£ó½z>.½µø¯ ûD3S¯ ~nô]ó§¿4Ü}0à ª<ð‹&/VȬtk¹ÃÙÍVw;¶ú®ëÏYuVVãD_›LÜþú³gÔú¤ú{u×Vx¨åOÚ\c]2QîÈ^?¶ÅUÉ¿Ò}½2W/~댖êUàhˆ^,N™G¿xô‹G¿ØË_¬|è‘vœxáæ¿Œjó»ª*?Uî§EùɺL­õCÁÛ€0¦Í>bA¥Æaü¸ÎÓ'sÿÁYÄþqv§¿ywÎÌøó›/o¾¼ùr3¢^cû´n÷ÁÁ €n>ùû6¿«:¡Bë=5¶á”Z?ý†1mvÕ«*5ãÇuú-;æþøsž]rÒo³2 ù³õ¯vhËå ^Nþècß=ÜreÍó~¾3Pá¯ÌîôÁýÔXÈÏkà½|qú›wçÌÔó9pzkñ_ö‰f¦^AüܸxôÓ2>>8ð€a3ÏlÚ¬bõ*5Ëå†sŽÝõ«ê7ý†1ĺaÞwÁÌf«‹êƒ£O®Ã# ^‰}ßpÑÀ74zïÚ¬×ô ˆ*pôD# §Ì-Þòè-ÆO‘¯Ú?Q§'â¯ácyŠj3°è‘ûÒŽ®Zíª*CË7 ÿoÏÇ^P«ÇÖñ‹šd÷;˜÷IÕf ÊÝ•6•{mo_D»ÆöoÖ鉸Ø2|sQÀ‹9å©£«V»ªÂä=5öÈ[jõØ:~`ç=5¶èï œü#‡w!‡óG,ÏÊL›ZTp«Ü]~­ @鿽=Ÿý8¡·ÿUaŸhfêÄÏ+Ÿyíè]ãcËðQÌE|ò¡ì¦ÿªx[•/ËÝþߌºÙ“ªW¾nÔŠ·2ל{_vù 囿¨é“Õ3.=wÌ_4žØ~ã9ƒkÿ&ö9Ÿ–1aî‘Õ‹6c…‡*ŸZ®³^¥á7¾8JJn,N™a† 6 ~Züpû+Çué°—Åë„çêôrá7o^ü@Õ£7Öè[õËŸ?ð³ûñ3j>¶åî×/ÉN;˜Û€Ôn:Ú²Sõ£-8 ôÕØƒ»tˆ,¿šÐÿ¤½×Ø} €ß¼ø´*GoŒýPåîǧ][ó±-w_øõž[ôÑo2ãûåÌ}j›CvϤú ß–ôùÜs;u:¼¨îƇÖyG t‹_‡^„žÏ~œÐ[‹ÿª°O43õ âçÆ5Õ–=”Y!>°¼òƒ×Fµè]øxðÕL¿¹Òˆj#Ë}þ÷¦ovά6óº_¯øe漃ý†±ÖÐFu+~ÿŠB4{Æ?oÒðÉ?Ú¾À Æe­ÒZ¯€Òð_U%+ þEñù'A°uÑ¢³²‡Ä/^ºí¦)-NçÔ[Uû¦Šã÷u3°¬ãÌ“ÚÞU³}õs+ü>öúËIOe>pð·©Ý ôNï²´ö/Ì7(}5và™ÙCâˇn;þª=5¶ÊÅ{jl²p¸«nÍö·ýgí~êž›šè7<·.+êVã§t ÷$^ø«“ïn½2™ç¶¯pïô†Oª±ðïB/BÏç@?Nè­™o$ﺻWäe~Xöé=©Eßþx¢ÚµuÆUÈ ÿ|œ»úñ…é»*ŸYãwåÆþïgw¾{E£¥?ÚÁ €c]°ûÁÉM ࣦW³úæP:Í}bîsŸ—jÛ{.¾#ûµØzôÜ Ë[l¨ó‡Ãÿ\aN8güíCooRv_7µÒkÔ¨Ð)üwùÏÊç”}6üwFÓ#ï¯üqø  ’»xõýiÛ\^î‡r7—½¶ÒsG—;cÚÉ×þú¨ñ?Î~í™.ßÇŸæIÝήs¯ù¥¯Æü¿ì×b?öùÑs»ÝÔbC?TþõžÛþŽ=56Ù¸Vz¥“÷ÔØr5÷ÔØ]+>üù`†¾ážÝ¦éÒ#®}ž­ïªõFÕ¼åÍN¿¶íÒ‚_cìøêû½g¶¹¼Üe_+{m¥çÊ7.wÆ´“»|{Ôøg_8©Ë÷ñçŸyR“ÓÕXøw¡¡çs {>¡·f¾‘¼ë{¯êš•û±Ïg>vÇ­ §Vyºæùå§…sº•q{½ŸÎO>®¼´ÆŠò=—Ë-?¤ì?ý›Ú¨nÅÇ?Ì8Œcæ¾û\Öô+®{¥vóöÿûôJó‡QÇ>óAG<üÿÒ+ü8ž>ëۦזÝRî²g—¥âke·ô¾fÜÿ¤e^û§wŽÎœ~‹ü“ÊÔxÎ|J§svÌÙ1G\ªÅ¾xõâGš·?>öÿ½ã·—ÕtG^Í·zçü½àÅqüfà§_Þ“O_g¯j‹Šj!^6±vø‰Õ,ÿnøï›O¹©u†w?ר=ï^½¸ÏÆÿ¬±ç5Ý‘WsðÜœ¿'¯î­Æ6ûk½÷¾îøÕ{¯±6ô ‘v°CL¾oˆ·Ã«Ûž;ðÇì7÷ïùü\c+Þ·§ÆöšÐ:Ã;€ ±ïÖó9p=ïf_žxèg}TFìÿ{Rõ«ï­Ÿ{ýïwÍúæ¿Üa7.Ž^Þçÿjîè³hÒΟoÉëàÀ‰ÞËÛlu·c«ïÚ×çάôeõŽå ÿ}þì­›Lñ`€X¥èÀá3ÐKóѧgŸž}zÆO‚Ø{tÌ“+iΦ×_=ºËØ}Ý \øÔ)‡ÕËÝHœttÇõ5×ýôKú¹Š£Ëña¿'útXT7áu {Zvýÿ/“Â|—?/8väž[ó·U¾ûjBÿ“:½œèü*w—_«ÆPºÅ¯‡C/BÏç@÷|Bo-þ»‡}¢™©W?7®|æµ£[tBçu,_í÷É¿#6>¾¡Ñ{×f½ûµ±AiѾøª Kš¶lû˜§eL˜{dõä!ܱ8|mì‡W':¿gŸëÆ7øéÞÆuKÿ•¦^ùÁk£ZôNt~…‡*ŸZ®³^¥á7~ ]™hÁíMßôðM'ú†ó~èKœ2~ñè~?-V®|è‘v¼hw÷Éo’_ŽÌ-AQ}ßm[¬žaÆoÆ<ÛlJ¢GÛ¾gS«ùòæË›/73!ê5¶Oëv$úpãŸklÅûÊ¿Ýäà‚?6yoµ®hàöÝêL¨~XxÌìWê=YcÛwµÎ¥sû¢ý.ÚÖY·§Ææ<¾§Æþç™»Ó÷áj,¥YXǯC_BÏç@ô|Âzkñß=ìÍL½‚ø¹qñè§d|\ð;bÃG‡@7ù8™÷Úm ûhá½¹ÉmïïÇ-Kë¾¶é›3«Í,øY5˜–õX•cÂ9§.ÿ]ÚæDçÇázD8zJnèKœ2Ë\öà²ã§Èãܲ å5ñ‹×ïÿðÒÄÎÓ_:'¿Ør÷ë—d§¥·K[Wù¡pfƒ¿Õɯ¸y㺅 »T.)›ØGXÚãÁÉmÏItæ÷K^®ÑùÞ½¼ ¿~nýÜúf&D½Æž0¼å5ñ±å÷¸ úÞklaà-w_øuvZz»êöÔØªµ+nÞ¸n@Ã.• ʾT·×ºÖÂc–ûeÙ!e»~\§ß²cî?ï3þ÷{Ú[mÏItæ÷K.8W€üü°Ž_‡¾„žÏèù„1ôÖâ¿{Ø'š™zñs£ïš?ý¥áîøØòêKÞ|±å“i“€¯ûõŠ_fΫ¹£á™ŸýÈåÑo,«Òr[QÀårË){ãàß>r_úùÕ•^}ªEÓjÿ:¢{…³Â×v]y鬺½’±sû?¶-ý½Dg^½ø­3Z>¨W@T €£!¡o,pʬ^óú½|äÅeÃúuJ+›è~'b3°š6ûˆ•‡ñã:OŸpÌýÅg3Pðã¬xþ¯ËÛM‰?Æškf¬13!ê56ó”´²‰îq{ àý{pÚìªWUjÆëÆŸî:爕Ÿ¯Xý§»ŒLêüÇŒ9û:îëóOtæŠçÏx[€üü°Ž_‡¾„žÏ{œÐ[‹ö‰f¦^AüÜ8fìyõkOLtÛïßû€«¿Wwm…‡Â8¼ï‚™ÍVÇŸ3¬Æ¼ç›U¬x[•/ËÝû˜v^xEsÎixÏù«†z>wÌ_4žx\ö°¡uGÆ~àsˆ¢ÃJïëóOtæE?>uuÆ3zD•¸äŠ^èKœ2»Ëì.³»Ì^î“[iE¹ùùÛ—.îšS˜%ï¾nÂØçÆãÖ¹ô§¿û¡ÜÍe¯]qÈ_;¶»¤àg¾WIÙ L¹ýêŠsöòÁ°y+óVæ™™õ[~Y¹ùùÛsuÍ)L̹¯pûÜØ¤Ìž[öµ²×®8äŒ[Ú]Rð3 ß+þœN»ë_£VÙ"RTð”Û;ÿQ€üü°Ž_‡¾„žÏyœíKwÍ ½µ½|øv™Ýev—13õ âçF…É•3ʵ{ý«Ze&æÜ×8Œ-îï~A»~ú‚-å({öE÷=¹.㮂ŸIø^G³•Ϭñ»ò “ï ¤Ýк}•‰—ôúÛÝGÞ¿;Ñ™½ž³®Á4½¢J\²D;ô%N±‡Ÿ8üĽ|ÈÏ÷W¿ôqç[þfàÓÏþ־㨪*?UnGì׆¿EÆf íƒÍÏ­öDüù›ïÝ|ïæ{ÍI(5ö‚Îo9øð§ŸÓ²ã¨ª*´þÏ;xnÎß÷5®ó‡Ê¿®0§¸Àm¬½^€üü°Ž_‡¾„žÏxœÐO‹??ì ÍI î\ýÀ[•[Þ}ðà˼´¨ùÅ«W©Y.7ökÃû÷/Ž=?¼Ç7ܯ·jýZË¿¾W½~ÍV¾>sHÏ?žÑgѤ »ýǵڇgžü•©N˱•ßÓ+ ªÀÅ_é }c €Slv‡ÙfwˆŸXÏ׸sb«ß~é¼Ëëø¯*Ì2½0ß·h7›Ú½òv—ñg¦7HoÞÀl„ÒTc{Ìjõ»ÂÄœ±çïßýt ÿ8sLæÊlj7àa5þ]Xǯ“CBϧhàÐO‹??ì ÍF îôo3mgã%…‰9cÏß¿{÷þq ~þâ9üø×\´¼Uf†^Ñ&.žJgèKœb_öÅa_?ÉNúS§f5·¸¿ŒÞ˜Ì•™÷ìm³þæÔ:SëL­c6Biª±iÛjn)|\zÆd®Ì¼g{\«ÆÀ¿ ëáøurèQèùmúiñ燽¡ÙHÁ½‚ôA]Ž«¶¦ðp铹2ý3mvãyzD›¸øúƧÚÛùoç¿]£cŽ5:ÆO» Ó^Ô¹–Í@Áãæç^ý±Ëüd®LǺ™ŸW6þÌφ~6ô³¡&#”¾{þk € 7?waÖÞkìžÙ±îSÔXøwa=¿N= =Ÿ¢êù„Zü™a?ö†f#Éô ®úß%ã[v<^[ûía™C’¹2iãZ[åV½¢MœZBßDÀÅÂ}›ïÛ|ßæø)8¥ÛUk3¦¼X±é¯»ÚÍÞôú«Gw[z6[Ç/j’ÝoõâGš·?þšœ/4¼1\êCª6*?(~3ðéê¿ÕñŠø«×¨}£öÚçïÈß‘¿Ã<„ÒWc;_”1½àxŦ3>o7{ÓëþÑelé }·ŽØ9»ßêÅ}6¶?þšœ6gí©±¾ÝSccîm¼úœt5öjGþŽüam¿fý =ŸÂô|Âzhñ×0ìMC’ïôºcÌà î(8¾¸ÜSe,¸æñågf—žÐ÷ºQ+ÞÊ\;tȳ¿>*£Ëœ! ÈW£Ò/ª>Qî¹øøòZ/=ß|ˆ^¥øàú&C\,|·ê»Uß­J4)·Ÿ¸øÖìWm‚'êM|©å¥g3°dôŒ³Ž^FÞq^™#GÄo.»³_¿´ªñç?Õä©&O51¡tרë³_Mÿ\cOØÐòÒ/}ê‹{¯±­¦í©±{οìÎÌþj,$ÖÆñkæÐ¯Ðó)LÏ'ôÍ]½°4Ù×^Áõ=WuÎj(κòÎ'µ(=ðàß>r_úùñ×áØKSçñð1wžwlíÉz”àƒC軯ÀÅÈE£/}Ñèø :«Å[›O‹Ú¼šoõÎùû¸ÿ½¨oã¡ןSùW6õVÕ¾©âøa‡žÕ°ÁËá¯DcÏür¼;ý1Ñ?þm™Û2·eš{Pºkìqm›OAf^ÍÁssþ>îÛÝØxhãÁÕ>ÙScKo\oU•‹+ŽvhËå ^ï Ž=óË çnPcà¿ kãD+çлÐóÙמOCß,þª†= ¹Çþõ N~â #§‡ ó†{ßïšõÍqó.kUwúá¤ý¢b'pµk댫Ùáƒs·×îÞ{æ•g¿:³Ec½Jð#ô- p1òÉ¢O}²(Ñ”ÝTñ•'»œåî/ñzÁÈ“O®ûuüõ¼§Ì=eî)cÖûs0µËYîø[ðÿÞß FU[€ä„urüú9ô.tuöµçze‰vyahÖQ˜^Á5}–WÊl莿ñïým½æ´jž¢W@é!.ZBߢ".v†ÔR{Híøé{ÕÐóÇù±å~òãÒwÜÑöÚDåàÇïüþÇïÍ7Pc®±­»ù±ˆ7ùqé»§íRc`_„ur¢Utècèç$?†^Yü• û>óÂ÷ :÷ôV•"ÞäÇÜJÿV¯€ÒF\xBßA\ì|3ë›YßÌJ4¡—?9kh[ú_Æ­sõÌ”è>6õ±©M5Ó@Ý[=}NÛ¯…»[ç1÷ ¡oÑSÓnžvó´›Mñ†¿Ò¼K+ËýDãð.ý¾HëÝšMo6½Ùô¼yò˜c Æ&®±ÎîÒJЛhÞ%ó5öWX3‡õsüº:ô4ôv¡'–h7özæ¢WpM™e·g&èM4óÕyïÖž£W@é$.¼Ý½w÷ÞÝ[è[´ÀÅuºŸ¹ûÌÝg¦OJŸ”>)~ºŸ|b—êµ–çÍkYÎ.KÿØñ±SnžØ²A¢2ñÑýðÑfðßjlþµ–çÍü¯œ]âÞØñ±Sº}ªÆ@Qëç„ï–;忉-èóÄŽ¡zbñW,ìïÂ^Ïìâ@ô ŽJïÚ¿ú¥7|ùþ’V‡ˆ{cǾµ'ŸÑp¡^¥™¸¨Ä¾Xè[xàbíÓFŸ6ú´Q¢_ŸcZZÞh  @—œ0#ëè§]«oÎxsÆ›f°/5öèU }øä„SUc ¨…µt¢•vèuèù„1ôÁ]«°¿3£8н‚œÛ†^zÄçBß0ú×#W¤Ÿ¥W`Š'p ðÜÂç>—ð¯¨&ÿxÅ3é¹¥y°rÛCKÚ}’èúôÒHÿ!ùïä¿“ÿ޹ì{ítizniŽ~Wnë“£ÆÀòNþ;ùï„uu¢Uwè{”æÎOè}%º>aOg*q0{=~}M›úóJsô{ñ¤§Çe|¡W˜âI\bÜÖã¶·õHôkõöÞ#lº2ÛÒE]³KÏ`y­™»Ú¾‘èš4®Ú¸jãª[ŸßúüÖçÍ p5¶ãåMWæoËØ5»ôD¿Ëk>R€/¬«Ã;Ñ <ô@JQô»m颮١ߕ蚄}œùCªzÝ_»ú7õ»½þƒ•­²JOô;¤Ãœ«3jë@,0Å“¸ä˜Ÿ??þ°MÃ6 Û”èWìˆËÎ^•6nW»%Ϲ8ÚÛ€yßÜ9 kWÙmÈܹ!ÓÄŠ®Æf•O·«ÝàCr.Žvô;ÕX8¸Â»àuxè‡D»çúZ¡Ç•è:„½[ØÇ™9¤¶WÐqäùïÔ^;fî»Ëšíè·íi+/Ô+€x`Š'p “7,oXÞ°Ü¥¹Ks—&úEÛvCó©Õ^^ŸñÂücûDi·é­í]°æ’ÉMú¼ÔøjÄW#¾a¶¦ÆÖùMµ—×gœ×íØ>Q }ó6åþºë¡Ötø½ ©ÖÛ¯ÉCo$ôI¢Ôù ½¬Ð×JôÚÃ~-ìÝÌŠO¯ þØ– +:ªú¢9-^ŠTô{ÈûÛZ•éöøåÔËÖ+€DÀOà’¹ìx7ïݼwG-µpÔù««yÃïümÖº’¾ø¤Ò3«;–m¹©iýªM½Ò³j̪1k}Ûõm×·5C€ƒUc{\˜µ®¤G¿ŸT:{|Dz-7ÕªÆ@ñÖÞažh•ú$¡gRâ?émø¿ÍZWðþ+ìÑÂ~Í ¡8÷ ÎýjÚ%ç”ôèwD·sš×;"#}c¥EzP00Å“¸D¯;òóòóîYuϪ{V¼ìèU¿sËZ·¬ëù·;:N.)Kÿƒ—´Ìi?ièðï›N/øÕuïÛ½o÷¾›Ù|ÌæcL 5öÈ µnY×óœ³:N.)¡ïÎÁƒžÍi?ihÇZj,WaÖä¯ÛCÿ$ôRJJç'ô©BϪàWöeafVPRz3r†Tïtù™/×n~]I }ÇœüFw?ýªãê©WÉS< €#bQëE­µ.›„¹g/MûeÏyÏtUÜ–þ[ç.ê•=hv‡qKš¿žÌk™x×Ä»&Þ•7.o\Þ8s(56ëic¿ìyîšN£Š[è»uîÀS²ÍîpÜt5Jް&ëódVò¡¯z,Å­óúQ¡7•Ìk {1s€’Þ+è8âü%µ?ºòØW/oQ§¸…¾×MZ±1ó‹3Zßšs佨?`Š'p¤l¨¹¡æ†š§þãÔœúd~a÷ÙØ­rñËΟ9¸íôT-ý¿¹`Á±3Çg Ín¼£lÒÞªüVå·*û‰Å»Æ6ɬ3~Ùù§7o;=U¡ï·#Ï{ýØ™ã3Ú_¬Æ@ÉÖêɯíC¿%ô^RÕù }§ÐƒJæ9‡=WØù‰½^A‹ÕÝ_®ñ×ÜÏ_›ñËT…¾£æ-~¹ÅÇ:¢c½_è@á €)žÀQ´-[þ¶ù/Ìaþ e÷ÑeÃûuN+÷ú¡÷~Úæ…]ÓÞ¬Ÿ3¶hýïÏxìâöþ”uÅçé£j§Õø¸ÂUÉ?·›ªÜTå¦*['n¸u¢2P2klæ)iå^?ô”Jm^Ø5mpZÎØ¢{ߟÑ÷—í7ü)«ÓøôQµÓ*=¡Æ@…u{XÃ'¿æ}˜Ð“ ý™¢íù„>Rè)…þÒ¾î˜Â>+ì¹ü”)=½‚cn<¯Aí[/üzöú¦sÆ|þÞ¯²/Ú¸÷’ÅÏ 8êÁõ¯Zÿ•*ŸQþJ½(Z`Š'pÔ×½·õÞÖ{j­©µ¦Ö*['ÝÕ©EÍ-cOÊÞè“™[o|³ùèyÞÙ'kû+ãþòu›†¯¾4íã6—.Xtwn«ëvó-ëNºbøMïï¿¥g¿ºgÔ,S½Mùüýû¾.pÑ€‹>¿íóÛ>¿ÍOˆnMÛ^sËØ“Úþ¥Ñ'3·W¯ùèyö˜˜µý•q½´iøêK½ÿÒæÒ‹zý²ÕGuë¶¶eÝIWt<¢éýý·d4«{FÍ2¿Pc ´ ëù°¶ß¿}AèÛ„Nèç„ÞNèó„žOèÿ„^Pè …Qèf7öSao姉^A¬ôÁ]ºU[Óõ¶K3ê¶=ýÞ‰­ŽüsÿªÓ5~qÀs3W6=îÂg}Ðôªó¶Þÿ»&g÷­>¹g׺÷½ªGýF­:åâÃ7T>¶ú?Ë×Ñ+€ƒCLñ$.E¶4ßÒ|KóYfu˜Õ¡l16jŨ£V|öägO~ö¤Ÿ Æª±@2Â:?¬ù‹ó®$ì›ÂÊO ½½(éÀOàRmÕy«Î[uÞˆž#zŽè™ªåÅ ãNw¸y·Î»uÞ­[—l]²u‰Ÿ  Æª±@a„õØ „}Aªv%aOöG~. WÑ#¦xó³ù;ów®]³vÍÚ5³ÆÌ3kLßÅ}÷]\T ‹Žk;®í¸öÖ­·n½uë²åË–/[¾eõ–Õ[V»ð€«ÆZØ#„ýBØ;„}DQíJÂ'ìwÂÞ'ìƒ\yÐ+à೟¶÷ÞÞ{{ïÅ}÷]ÜwQ£E5úpç‡;?´¬Pc€/ìAÂ~$ìMÂ>Å•½Š?0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@DüÿÒ°6ÏŒö8'%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/elementAt.png000066400000000000000000001155661431412030200253250ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwT÷þÿq51‰1QQ,`ï  X)*öÞ{ïŠÝXÀÞ{ï½ÆÞEPãNW±Dc×hbï+Š”ßs¿çpërWY†çcΙsO®|væ3ïý|–}1óI0„Tt00000000000000000000000000000000000000000000000000000000000000000€p¹Íå6—Û‰:u$êØ¤c“ŽMŠL™&2 =¶O±õÑ[ÉõQž€äâTóSÍO5?2üÈð#ÃCý!ô‡˜1c>Ò3@òuo÷½Ý÷v{tìѱǾ;öݱï^W|]ñuEzÖ ðo#ÞF¼8éxÒñ¤ã´ÎÓ:OëìuÍëš×5»Òþ·ö¿µÿmóï›ßüû­T·RÝb,€¦®úH«º 5†ë3‚>;è3…>kÐçP¼¼¼”‰ÊDeâ膣ŽnXbA‰%Ä wšï4ßi~/Ÿ^>½|ö{„=ƒŸüüàgúHl"&DL8Ÿö|Úói„/_^C­¡ÖPêZ“ÚMj7©½ú×Õ¿®þõï&7ù»IôÙè³Ñgéy€”‰Ð@Ì»¶ïÚ¾kT:¨tPéªUªV©ZÅ.‰8pàRð¥àKÁ\°ž>rê£hRáú ¢Ï&úÌÂuk¼Hû"í‹´l°q€û-÷[î·’j$ŸZgj©un„Ý»Æuâ#2}dúÈôÒUéªtµyPó æAIõ¾îY¢g‰ž%Nµ<ÕòTË9FŽ‘¹:$,óù÷ÈwG¾;ò=ƒ¤E ¤P·ünùÝòø|àóÏíl’Ãr‡åË·*[•­Ê‡ 2|ÈÀU>*ê#¤>ZÚæH®Ï2úŒÃU€Ø.ž¾xúâé¶Þm½ÛzÛæîêåêåêu¨Ö¡Z‡jE‹9Œ«Äíñ›Ço¿™ì0Ùa²ƒ [ºg鞥{^ÝyuçÕ®ñG ÛD ¤ ·ß:|ëpÛÔmS·Mýu¿(æÞŸÅÏáB—À¹ó>ž›³¢ä½£A튥ڙ7,]&R}Úx[¹@¥EãÌå\Ԭ߬ôÕõ÷ª >c)¤H»Ú (ÎåãókêuºF(Q0¢ W@J£~úHŸ±´vŸ ÎåÇþÒcw‘vëïíás æü¥¯*-–-ç¢>]™º\ ©ñâ+e"w4˜Þ°T»¹9WrîبIÞǹ÷;;:\øº×Õg}&âjH™.¿püÂñÊ}+÷­Ü÷ëÆRÇ–¹C LË3£Fѹ‹lêàPüà€½3wyL œ»4wÉÅ#ï­ìUÒqDåmJ\\e^­bú34—:×ÏÖÊ­Yé³ñ™A‚Š *] º@t®& {:ðéÀ§/¼hð¢¯{gÙÌd÷ƳBœ.µÕ¡“ò­kå2gIaÿNVç,æÞ-÷ï3]{w½õ{N×fׯ )ú´Åš™…žÔl2¨zÞsî£jnË~3>ïëÅf›QìÍ“7OÞ<ájðu€a›€ƒ{çüÎùó(Ó(Ó(“õ¿ˆqòrL»xº_þ⃮ƴ¾ë34&¦W¯êÕjÑ·Gójß+ÙE•³ëã_rpþ_úkªœGÎ#çáúH ôïKÇÉ>þ-ç¡d_¾¨œ]DßÐþÕ¾‰9uªzõ„Ú_ÙYÓgèâé5‹*“§¼cZëMŸ•ôŠë ÀØžÆ$aƒ^ë÷/oJn~ëfexǵõ³>[qÅJtLtLôîš»kî®iýxX¬]÷\c~ñq_]/tlÂÆ½Öï=ìœWvJ]$›{+«þ '㨌£2~´ûh÷ÑŽËŽ”àÒóKÏ/=ÏñkŽ_süjÍ{¤Jº^éód\R¼î10ã^«÷}5*áS^lyÎù5Çì+úŠ¾â½°{a÷X «Ã6†ù:òuäëqê8uœUÝPëe)·þÝßW=‘T¡¯¥ýÝŸÛ¯«x¸w’™óYs.§®Ÿº~ê:5 ¹ÓG3kƽÞ=ZLÍt÷çà|'UèkiÿÑÿØÆª'¶LÛRÊÍšsÑg.}£$_ï¾;øî`§ûîwº÷¸—éÇCYÛz4 ¸±¤¼ií'%Uèki_fö´î;fä;}Óg4ê@òr·ÝÝvwÛeõÌê™Õ3î±®¸]¿µÓ¿·µ¸7î½ç§‰ý7Èœ!ç¦Üuâ>;“«ÉÕäJ=À>>þøøãã®­º¶êú?:¾÷ª<3FÍÿ«¼ç<[ }-íJ½\òXÙcͺ8׋ûì&¹Lr™äý:úu4¨ÀgÃ6ÉÞýæ÷›ßoþ?¾RÉó$ûý{3:¸W²O.¡¯¥ýžºu{Vû|'ÚO´Ÿhs8æpÌa*€M;s8æ°>jÅ=²í©;«¿gÕäúZÚߛҰ’}ŘÒó²ÿ{ãôÙ`û.]ºð?î‘͵²²}ƒª^—Ü’Ê&¯è÷¿ö?­}òeÑ.]~á÷ùnÈ´!Ó†LÔ’¯×“^Oz=©ÜÁrË´TçŽEœÂ3iýf§*1'¹„¾–öÝ}7q=÷ûºãšŽk:®ùÔðSÃO ©b#†m"’±ÛÏn?»ý,î_Òæw®´Ôm|ÌÙ^-ª{%÷è7öþþ¹[+µ-^*G­,7-ûÐ\Cs Í3RY¼K¬T¡YnÞ?w A¥¶É=úý¯ýÙS›ª{Íï<ôG·ñqÏbúLG±°M§?þtúÓÿ¸ß·dÿôÓg%ãÐ×Ò¢ËOm½Ý#îs_òrÉË%/©$/aç÷Ï_)¥ü•,Õv¥Ô]äÜéÇV»ð¢ô°äýÆÞ¸øgñR‘î5^g7Y:÷sÌi0'bGÄŽˆT :`Ø&` YzTâQ‰G%âþÂEºÒhRÙP#…¾æûˆ²=üª~èqÖ]ÈwÏR?ŒÚ5jר]Ô [£N–Æ®g›Ìw/¢lhµª ýší¥+Ë–• {FÓg=j€í¸4ïÒ¼Kóâ»J?Òeë[ãE¿±÷^KïÉ“³í/þ[Y‹QÙÚFk­mDÍÀö½ún軡…ûî_¸¿¥znqÖàÂiŒú~fŸörd™_j=’6ŸÅ¥Išío¶¿Ùþ¨îQÝ£ºS9Ã6ÉÌÛoK¼-‘­w¶ÞÙz[úeìBx«ï½›;úý¯ý¬^«»Nîå_´½¥>Y±4biõÀè#’ŇØï]°hû˜Y§Uw5vô{!|kKï&–úDŸõôú´î_ºéþ¥¸£ßò…æ-<àdìè7öÞ§åêÓÇ äê])°þhK}r°ÂÁ +P?°M‘a‘a‘aµæ×š_k¾¥î³ör±`ƒG¿fûæí¦Ÿ(4ÆRŸ Î:8ëà¬ÔÀ°MÀ@²ý.ú]ô»FK-i´ÄÒ/`Wo¶¾âÓ?E¿fûÉó½=Š^±xWt}©¾TŸZTôQÈÒ5y~ŸE¯¤œÐ×|õæÎ>ï¹Ñg@}6¤–|{ü>ø}ðËãšÇ5«¥‘ªÂ¯ {ÿ¡¤œè÷¿bàkk»Ÿô̵©rÉ}-þ¶Rþjù«å©%Øš‘YFf™ÅRÝv+öû×~)-ú½oé8+´°½Å»ü·®Ýºv+UHÉ€a›€dcáþ…ûî·ôK×Ù\-y IÉÑïö÷jSÝ÷7Ϙ‚–úêaÀÀ‡T€oIy,K¿ù´ÛZ0 æïS»ªû¦äXߟ͵©¹×K}¥Ï†T€o¯Oç>ût¶4:•»1wwpXÊŒ~ÿ+º¦Èñ•Ù_—lç]×R_½·oÿÞžŠ‚-9r"ä„¥Zí°jù‹¢ Srô{ß(͸þB,õÕùŽç;žïHER&`Ø&` ¸ÔàRƒK ,ý¢<»ÞžÒƒ‰~cï£R÷¬[mYå?ó.ÊQϼÇ|?ú~ôýý!úCôª @bÓG}ä1‘*ÿY&"G½¨Ô'W[Fô{<{ÞÌÒƒ-Í}úÌHuø6Ý>tûÐm‹kýfœ¸gSÑï­ üry+µ‡¥ëw ß~¨+$­ÇáÇ[ªÒ}Fo+P‚Ð×|ïó}ûi¹~±Ôoáׯ…_£º) pB Ù²+dמ“·eò–É[^Ö|YóeMzæë6-Ò?Ò?ÒߥŒK—2æɘ‡åCŠ4#îµ´Úy­_aK¿šnÞ½y÷æÝԀĦ6–Æ¢ç¡Â4¿ÂĽ–öcö˜_¤™y¿é3£>KRcÏ«“¯N¾:ii wÝîï=±5q¯¥}Yßsw7·Ô{¡}Cû†ö¥ÆTš84qhâ`^™îjuΑf¼ï•Ner÷šïÇL8¿²t™l©rmwHoÞ{cŒ}0öÕHi€ã/ªqTã¨ÆM# þ*À€M[3zÍè5£Í‡<ç4™ïØGEüÕcxµì½qï¬hR§ÜuK“ÇK¿—~/ý¨4‰Aa,?GV¬jRî:oÜûˆ¿BMÕ²;§ÉîaeÞ‡ú,I¥Hµš 7î½ë~ÿGYš ?ù~òýäK¥á[R:+‹s>ïħRs zãÞJs8»ÅÇA_ÿpýÃuž¶HA€ã/ö½¿q# ¶0`£^õxÕã•ÅǦ] låé=€p×ú½ÿd9ÿXóž œ8/põ 1è#ŒùÈã?¹ù•üc w­ß_ Ü*x°4'ê3&õ aݽz#ÔÒÈSþíÂpï¯u{»uOeÌ^8ÂÝü'×__}ýuê ßFäðÈá‘ÃíÚ5´kh^«¬ÌPôOÂ]ë÷ üGo.Pܼ'k¬y°æAê rÇŸèêá®ÕƒãF بéîÓݧ»›jƒb<ô'ÐýÒý §Î¢_KSÅý÷>ÜKÕH(ú¨biÌyá$œð«@¬û¥ûA1í ú›÷§>cRuV›>mú´éc>æË×­ûhbÝ/Ý—ù4]ÜUÃ⺡M›„7¡êØöÞ[xïg *t£üª¬1ãû^ *ú¿_ò8è° mJ·±ô¾>Ûäl“³¼¯)pÂ" N(À€Íyþ&üM¸¥ìÙæÎ¥+?$Ðýºý’~Š/5ïÕ G4ÑÚPôQÅ|´YR"ðDñ¥D¹_·¶Ù´¥òCKó£>{R{âï¶t[º-Ym|W} ÍL ûuû<Ójh‘ͼW7Û8lã0j‰'êEÔ‹¨–Þ×ý›„´.qŽ@÷ëö´Õ»Š}æQùµòÖÊ[+/µH €ap|6gÃÊ +7¬4¶Æ9T(Pd!n|öïúu^宥‰ámº·éÞ¦£ć>’XgÞõÓ¦T¹K”Ÿý8‡ž#‹,3ï[}ö¤Ä_@ÿ€þýÍÇ·Ã}MÝAˆŸ}¹so‡xXš%£Šþ)ú'*‰áØæc›m6¯ºâ«•Ë^–7>ûq¦Ë£K¿uðr\šÉż‡o/¸½àö*`lÀßað—"lI½˜z1õ2oϼ=óvó¡êÑ™ŽÇ*§#Äÿ~êŸ,Å:™÷ðŽ|;òíÈGˆ}$1a¦~è·­X'âÛøï9´©òg"v}öÔgRêÀ× >&|Œ¥/¼å•ÏþAˆÿ½Kïj*æ=|úÉé'§ŸP‡H f6˜Ù`¦yÕõ)°çtq•7þû¶{Ùù™?d?îý¸÷T ÀØ€¿=Â`k6äúÀë¯4˜ïrŸà6¡ö+w,Yi·y?—JH%$ê@|è#ÉgÖ¯|°¥ÝIš^¯·ÛÑçSìãIî1p£à*}]î›÷³>“R‡¾Ž°\X.,7[ 6o^Ý%ÁmBí=ÿ˜°a£³y?÷èÐ#€:D 6(ly½9üæ‘Éc|á+åË8%¯¨u`êCµÜ;Æ>[8ªÑ¿U<ÿ±ôekäŠÈ‘+¨F€Q'-Â`K€2½ÆôÓk˜FÚwƒÊ!¸MØ}…¹¹îfÛfÞÛO<}ðôÕàK飇ù¨Ra®G£lÛ’6.5€“{ ¬}·2s¹ÏÜ¥§Ï¤T#€¯Óâ`‹ƒ-š-eŸÏ:¸Ï…à6¡ö>G׿;qÓÒ1}"úDô¡‘P‚.]º`^iM®OîQpkr¼×Ö6`}ï[¤ã”\ýÌ{ûbû‹í/¶§FEl;ƒc#lddŠyó2ëÓ¬O³>5€Â¥î-ªö"²MØýöõ*åmÞÛûïk¼¯1% àK飇ù¨²ýð´Jy'ì>\:Ú¼j/ó3ÒgR}V¥&X/¢zDõˆê–¾ðͳ®Ú©¦· »/ 6íÙ³”yo_¸pû€‘`šÎl:³égþwàÜsy˜?@dÅÈŠ‘Ÿ #íªÛõ·Ë;¾ã••eŠ'ì~L‘s1¥?óÙ,¯”WÊ+Q“£"¶})3 &lBè–Ð-¡Ÿz6šjüéq›°6Qö^½rWÏnipI“&& • À*ibÒĤ±8žxò¨ž81öM“ŠyÜ6?/}V¥0Xo}»õíÖ·3OJý3öáº%„µ‰±÷\ùë‘Ϭ¸ì5Ék’×$jñwwÊÝ)w§˜×Xå½Ýƒr¯HŽÑ¯íÀú¾Ð˜r²Þ2ïùwï"ÞEP™ã!N^RNL Ø„ù¹ççžÿ™»Q¯hÓÈç턦;n®ônÊï¹ÅìZÌ/º7w¹’·œÌú"ëû™´¢=³ÝÊò}U%ßîæd©ØÎU{áÒYñó¶å¸Ã·}yÓ›÷|Ø„° a¨LÖÐG ó‘¤Ã†úMò¦·… ÔR|6ͦŠ^ýÚÖ¨³/OÍüZn¿ÌBÖ%Žo3i¥Î¹þì”TénC zá"œñó¶ÍøZ]n>‡ÌÏKŸU©LÖë°²ÃÊ+?Fz,M#u±¹5to¯u²±ëN¿‰slö\V±¸Ã¸ì]~Í4!ó:Ç·Yå_Ut^¾ÌuSµkWvÆÌñ{fÛr ìp/gÞ\ëÌ{>òyäóÈçT&âã°óaçÃÎæÕÕ)`uÑb¥l'.WäÒ¨ÒZs‡é5 uw=áç™mƒÓ—7ö6gišÉ/÷v·_—U¾Ýã‡ÜÛ‡Õ>R¹d íÀõ¢FÍ¿ÿ3ßo,¸¶àÚ*`<ÀÉ—±Ã``À&4ßÜ|sóÍŸù ÙœÝÚT9k A©r¿q­r¾.nŽ*Ù}¡»GÛ?¨xß6à5¿TkàÞÞü˜//¸¼à2¿š°Š>b˜$k~æÞÞ–`ÇàÌ#2µˆ{ /°?wLæ·—¶lÛælkð»œZ*gÍYŸU©LÖs:átÂéÄgVÿM½öæÉs¶—z/Û ŒÌèù£ï@ë?»i}wO=m›pÞnµþn½Èü˜ŸG=zEe">¦?šþhú#óêì&ž÷èo Aéð~'„R“Š:ùŒs¬G·<:ûSẶw½é¥ëMó#ž<3x&• 0`c0^L Ø„œ¥r–ÊYê3çtêåPÝ>i#Òw»Í®ò²H@¶Éާÿ³ÚF§@Ç¢óWòwë~tk“=å.hUÇ{Œü¶ÑËr?ýX!g‘ú=Áÿý Q[ €C[7mT~¸yϸwàÞ{T&kè#ÆgDÜzM`ùá¶ëFVëúGá ‡,þµŒ²÷Áì=žëú;µî]`Z¦ÔvÚUý/£O6®ö· ÅÀN§²V·7?#}V¥2Äç+›¬ï ¿q/bkq©ó¯A5¿ûÏ!ž°oå¦@ÿ&}º¿ôè˜mÉäROÇe]w±ˆw‡^C»9ìÎ1Âå¿"í²mg„í>gkgäj׳ɸÏÌ¡W{_í}µ7•‰øhu¼ÕñVÇÍ«kÔé¿ÖxþžÄAiÆ+ÊØ¹í®r4[Xìc+ñ¼Æžì»›ŸR({<[~uËÒôð”ߺyûEf;a鳜­ÀƒÃäB{ÌsÖÎY;gí¤2)á· àäÎa00`£“„›öè,ûl!"Õc]ý¨2½¶ÓìF]ÞzŸOKKá®ù¹ä;ŸµOæ)¶ßìÖ®šïgþ*|yÆå—g¤2XC1ÌG’›ÝöÕò}d›°ý]ûjvA‚Ç’Ée‹ëÿ&öªÀúÿÞQyzµR­må`7ÿB?fÙ÷¹ã€¯ÿ4žÇ¾ÚÎf¥m'(u¿2¬Ë¢†ÿ9¸™ŽÙWó†û.ÑÿßÿܯëßÿçÓû„Ìëßþ×=Í6—,5bûòËæý¯HФHT&âÃ-À-À-À¼ºÆí½ì_:,i#Ò6+ò_¿Sש?lx¾¿ôÿ×ÒWŠ~¡=—äþ`ûðÈõ§{V6?Ξë{®ï¹žÊ¤„ß&€$ù†ÁÀ€NÒösm!"=>¢©PþðÀ§žã ºNëý¸Xukîè5‰mó>àgk;—¬üà3_ Œ7~Üx*€5ôÃ|$y¶Ö´¡òÛ €;ÿÛðï¼G­ tcÿTíî>Áξ¶7Jç÷ÀE$°ŸÆ Þhñªf;A©Ëß›uûéÇ–ë\å?:[èÆ>£ìó<\+h¶—¾2%ÿÖϬ¼«å®–»ZR™HØ÷µÝÝLãìšÛBDê~¡Våì‘úAé€¶æ§ÆV½ð¬ô0—¾Eòf¾fËðØ2.–dÞýµï×¾_û>• H Ÿ:€*y…Á©lç- ¶nv%ä«f›wÍÆåF¹öl[mÃük•ޏ­²ýøMª®ó«4§Þ$†7©”µUšÛf,¿]Pî'k~öà¨W˸üßy;µµû€»Ù5žŸ¯õ auèœ!ðŒí¥Y´%ŠÕÓ-ö½¿ÿcÍà¢KžK5Ê>œµißåÖÍy¹ÿ£­ÀeM³rîmF½áÛÈùcþ7™µ…ˆÔ9¢p«ÌAúQµ/¼´sQ'ë£\Û¿xÜ¢ËåK?¤Þb Ù²+d0»Þ§K–ÏÒ6à°T]ûm•y—]±ö‡j;Ü—ŒÉZ¾g‘‚-'KŸ».ÇíÃ,—­ËÛ·ÝêV ¥Þ$†·oµBUBm3¾{48¸â}k~öFî½µ}×|n<·•¸÷éWòŸ¤Þ$¬bºõmkû­yzbqìc+WuöÉ ±¶å~ݾ\Ë9é‚ÎQoø6r,6ѱ~Ò†££Ξôü7öQ |øÇ5÷Ö·ÐáÍŠ‰E÷ÆnÁæà§—Ï–ùžzˆ-bgÄΈÀlîà3yš_ñJÓ0}¡».“ìïfr¶ ²tä¥Î9wrÊßéYñ™yç˜ÿ¿Ü å°å;€?ö:ö{ÕÖülø”£Åª¶ýÜxÎÀŒÌvî.÷×ÜqÁÁ±ÍûÔ*»£s0¾%[¸xHz¹¹Ç¡ØG¥GÂÖ·ÐgâÞÁÅoÇn;€l_ ºX:›¾™¶¶pÖ%ö72iú±¹gÈ‘µö„?½Š-¼­ÞáÒ#þ-ÑvoÏOuzl­VFÿ©ëõÚHÿ6è’ËÀÝ t+Э•ÉÆÆfͦæ#‰-¯lýÀ·^­è§ÿ”Ç4vOþo<·õ5€©L66¶ø|·5€½W­}´Xìc+ßz~ÙOŒ[Zxò±ÉÇ&£2Ùö}m k ¹\ú¿KÔúð÷ Ö·ÐñïUŽE£m9¶´°·»·»·;•ÉÆÆÆÆ–>u,ùaÉK~ gŒ·~`øá½ÒôJÓ+õѯþïSÐÀâ¾'ÞÍ?{t–}¶‘Ö­Yp”óvý¨:ÿ[ü~Þ£ÑÎ=Cªýw¬{­m›n>Gm?¾Ù­]5ßGæÇ¹<ãòŒË3R™¬¡æ#ÉÍnûjù>Jîkn°ø×2ÊÿýP§¬µm-vó/ôc–}Ÿ›qàë?籯¶³YiÛ Jc[©ïG{¯.hÍO•Ù0móŽ›Ezwø4,O‘ÐN¹–ûÚ­Ëx*£íœWÉR#¶/¿lÞÿФHŠDe">ÜÜÜÌ«kÜÞËþ¥Ã’6"}<í—/+ZÔ×úŸ­?häûü×m9¹þôbÏÊæ=ßs}Ïõ=×S™€”ðÛ„Ò3Æ ·“·LÞ2y‹õ¡¯þï¿}è0`r–ÊY*g©Ï|yíÔË¡º}ÒF¤9ëd^mQ?ž“íš ¨PØšŸ:Ü Á¥ÿ l9mÝ´QùáæÇyàÞ{îQ™¬¡æ#Ihë5å‡ÛfÜù߆ç=jÍ϶˜_ó»ÜåôŸj5¸ÖÈÜm(v:•µºýgðX*g©œ¥¨LñùÊ&ë»ÂoÜ‹Øfœç¯š©[–±æ§ò>¨Ó¯íî¯uZPô^Ém¶v°«]Ï&ã>3‡^í}µ÷ÕÞT&â£ÕñVÇ[7¯®Q§ÿZãù»íÀEgøÖrºgÕµU/<+=,×Ñb#ëÚr<8L.ä±Ç¼çg휵sÖN*~› Nî’oè0`šon¾¹ùfó!ã]ÎnmªœMÚˆÔµvöYêdz£rí ¥ZÇýïï…t¨T)§¾°íÀk~©ÖÀ½½ùq^^pyÁåT&kè#†ùH²æ—1aîím3¶¿k_Í.HðX2¹lqK?µ£òôj¥ZÇþ©£[W,ïd;÷þ¾Ë©Õ¨rÖ¼çõY•Ê`=§N'œN˜'¾©×Þ‡Ì{^ŸU©LÖë°²ÃÊ+ÍÇ/¥i¤.¶”ú­yzb±ùXÕ$ºÇÏ€)‹Oxæ÷Ÿ‹îî1²Væ ιÿóU”CãìÍÚæÊÁ÷ræÍõ™5€#ŸG>|Ne">;v>ìl^]V-V*‰ƒÒŒW2”ùÌïË%ž×Ø“}w³uÓÆªÔ#Ï–_ݲ4w˜^£P÷ây«ÎΞEÿ7.}‹äÍ|Í–àzQ#‹æßÿ™ï7\[p?³pòe¼Ð76`À&„n Ýú™!f£©ÆŸ·“6"}æÓù×Êí™íV–ï­ÿîÝ&½Ïœ|ç³öÉ<%ö¯Ó¢`>ç!6{õÊ]=»Å :MLš˜4T&«¤‰I“ÆâxâuÊ£zv[ €\å_îvv§"ö=âÏK8n“5óÝ£ÁÁïÛZ¼Ñ4©˜ÇíÏ<|{Kè–Ð-&ë­o·¾ÝúvæãI©Æ>\·ÄÖ­?ÌÙšÏäöËœ2dïà>bhÅWmíÞ_ïÀ•¿Yþ™Ð}’×$¯IÔ$âïî”»SîN1¯±Ê{»å^a Ai ch—RöÇ•õÎ:Úwt¾¿JN˲Q†m9.4¦Ü‡¬·>󄳈wï"¨L€ñ'/Æ}c#lcÐñ}éûÒ×|X©_¬‡‹“-Ä¥úñŒ{RaH‘¾Åòxe¡¯ ¬ïýnæÌ1cÉl¿IÅwF¹öl[míiÔ3Û­,ßçh¹ªý*ÿ®AùmáŒ{v|Vù3w]·÷mïÛÞ—šð¥ôÑÃ|Tyìyè}åܶëÿ]ÿß?5蘷e~-·_f!Ë&Dz™fyª®ÇœÚLøÓUÑ2oŽ¨å«Œ·µèWß×/Vi‹‹“yŸë³*5 ÀzW_]}uõ•ùxR0W³¥½L¶v×ì>cëÒsÄÌì]Ü—WøÑþ}¶’9®Ø÷Î:2Ûúl#ܤ2-ó ¬W ýåò÷¼ø#·­¿¾/ýóĵ›º˜÷ùÜsÎHM"þ"+FVŒ¬ø™oïªÛõ·Ë;¾ã••eŠÙB\ªTãt*ÌPd£÷A§%YNå8k_?sö¬Î™zåkë!gS»çÇù&Œ8{Òó_[~ô˜"çbJæ³Y^)¯”W¢&FElûRNè0`##PÌ˘—YŸf}šõ©ù@.uoQµ—íÄÀ_úÿÚæÃŸ·®ýS)oóÞÞ×x_ã})I_J=ÌG•퇧ýSÊÛâRK!î—þw[؇KG›WíeÞÛúLªÏªÔ$ëET¨QÝÒ¯ý¾yÖU;ÕÔ6cÔ¸ïëµµ»~cï ˆM{ö,eÞÛ.\ &‘PšÎl:³éLóJº_ó.YÃÖîµèšÇ½¶yï¯ÿê]ùŠ&tŸúýÔï§~O5ŒŠØ6¥ÌÐ76`À†L¯1½Æô惎ö]ã rcl-@Mîû ssÝÍö™Gç=}ðôÁÓT#€/¥æ£J…¹²m³Í5ùîµïVf.7Ƽ·õ™”jðuZlq°ÅAó±¥ìóY÷¹ØfŒš÷>G׿;qÓÒ.}"úDô¡‘P‚.]º`^iM®OîQp«­¨É}ï[¤ã”\ýÌ{ûbû‹í/¶§FEl;}c#lÈõ×^h>5 .<Þå>‘mBíVîX²ÒîϬs)•JHÔ!€øÐGóæaåƒý+í&¸M¨}£à*}]î›÷³>“R‡¾Ž°\X.|fUÚ‚Í›W÷_Ip›P{Ï?&lØèlÞÏ=zôàÞ_$°°AaƒÂ™×›ÃoŽ™<ƾR¾ŒÁmü÷£;«xþcéKÕÈ‘+"WP£"NZ„¾–¶¤^L½˜z™·gÞžy»ùôèLÇc•Ó߯?õƒO–bÌ{xG¾ùvä£ ć>’|æÁwúm+Ö‰à6þûGgmªœÎ¼‡õÙSŸI©C_'|Lø˜ð1–¾ ð–W>?úñmü÷.i¼¨©˜÷ðé'§Ÿœ~B"14˜Ù`fƒÏ<ºO=§‹«Ä·ñß·}´Ø³ÈNó÷~Üûqï©@€±{„¾Ö lΆ•VnXù™_œ*(²Œø6>ûwýº ¯r×Òð6ÝÛtoÓQâCI,3ïúiSªÜ%ÄÏ~œCÏ‘E–™÷­>{Râ/ @ÿ€þæãŒÛᾋ¦î ¾Ï¾Ü‹¹·C<,Í’Ñ?EÿýˆÄpló±ÍÇ6›W]ñ‰ÕÊe/K|Ÿý8ÓåÑ¥ß:x9.ÍäbÞ÷Ü^p{06àoƒÐ÷K6çMø›ð7á–¬g›;—®ü(÷ëöKJøu*¾Ô¼WG4ÑpDCj@BÑGóÑfI‰ÀÅ—â~ÝþÙfÓ–Ê-ÍúìI툿ÛÒmé¶di´ñq\õ143Qî×íóL«Q E6ó^Ý8lã°Ã¨=$ž¨Q/¢^Xz_÷oÒºÄ9¢Ü¯ÛwÒVï*V×¼Wkå­•·V^j'Bßø lÔt÷éîÓÝͯA1ž úå~éþ…Sgѯ‚¥)ááÞ‡{î¥ê$}T±4æ¼pNøU ÐýÒý ˜výÍûSŸ1©: «MŸ6}Úô1sŠåëÖ}´ Qî—îË|š.îªaif oÞ$¼ U‡Ä¶·ðÞÂ{ ›W`¡åWeß÷JP™ºÖïÇ„]hSº¥÷õÙ&g›œå} H€¡oB!lÔ«¯z¼êai8»ØÊÓ{±®õ{ÿÉrþ±æ=8/p^à<ê @bÐGó‘Çró+ùÇèZ¿¿¸Uð`iNÔgLê @ºz#ôF¨¥‘§üÛ…9þhM¬kÕÞn]ÆS³†ŽpÿÌß×__}ýuê ßFäðÈá‘ÃíÚ5´ûÌ“Z:VY™¡èŸÄºÖïøÞ\ ¸yOÖ`‹û²¾3æînn©÷Bû†ö íK!©4qhâÐÄÁ¼2ÝÔêœ#Íxß+Êä"èýÌcŸ'œ_YºL¶T¹¶;¤7ï½±Æ>û€ê¤4ÀñÕ8ªqTcBß„E $—\jp©¥á/xv½=¥÷ÆÞG¥îY·Ú²Êæ]”£žyù~ôýèû1úCô‡hþ*@¢ÓG}ä1‘*ÿY&"G½¨Ô'W[FÜ{<{ÞÌÒƒ-Í}úÌHuø6Ý>tûÐmK#RéŒ÷l î½÷z¹¼•jq9›~úèw€ºBÒzþ8üq¸¥*mÐgô¶¬ü™½Ï÷í§åúÅâzÞׯ…_£º) pB‰}0¡oüÉÆÂý ÷/Üoé­³¹Z,òBôów¯6Õ}óñŒ)`©¯< x@Eø–ô‘ÇÒ¸ô›O»­bþ>µ«º/ÑïÙ\›š{ ±ÔWúlHEøöútîÓ¹ÅÇÆ–»1wwpѯÏÐ5EޝÌþºd;ﺖúê½ý{û÷öTlAȉ!',Õj‡UË_]Hè«ï¥׿€ÅÇ>Ÿïx¾ãùŽT e"†m"’èwÑï¢ß5ZÒhI£%–~éºz³õŸþ)9ž<ßÛ£èKý#Õ—êKõ©%IE…,>Ðf~ŸE¯¤äè÷êÍ%|ú[ê}ÔgCj À·÷Áïƒß¿<®y\ó¸Z©*üº°÷J ~¯­í~Ò3צÊ%ôµøÛJù«å¯–§–`kFf™edKuÛ­Øïk\û¥äè·¥ã¬ÐÂö–úgíÖµ[×n¥Š)0l0̼-ñ¶ÄÛÙzgë­·¥_À.„·úÞ»I Š~gõªXÝuâp/ÿ¢í-õÉÒˆ¥K#¨¶@‘,W‡÷.X´}̬Sƒª»¦œè÷BøÖ–ÞM,õ‰>ëé3 õ iÝ¿tÿÒýKvq*_hÞÂN)(úm¹úôñ¹zW ¬?ÚRŸ¬p°ÂÁ ÔlSdXdXdX­ùµæ×šo©†;Ǭ½\,8¥E¿ÍÛM?QhŒ¥>œupÖÁY©€a›€déQ‰G%•ˆû‹'éJ£IeCýF”íáWõC³îB¾{–úaÔ®Q»Fí¢fØ}t²4võ8Ûô`¾{eC«Uý`ìèWº²lYÙиg4}Ö£fØŽKó.Í»4/ôÓ)]¶¾5øZ¿KïÉ“³í/þ[ÙJïl´¶ÑÚFÔ lß»¡ï†¾Z¸áþ…->¤ÅýYƒ §1xô›örd™_j=’6_ KýÐl³ýÍöGuêÕÊ€¶‰HÆn?»ýìö³¸¿xšß¹ÒR·ñ1g{µ¨îe¤è÷þ¹[+µ-^*G­,7-ûÐ\Cs Í3RYÇŠ—*´1ËÍûç4¨ÔÖPÑïÙS›ª{Íï<ôG·ñqÏbúLG±°M§?þtúSÜãXñ’ýÓOŸe¼è·Lù©­·{Ä}îK^.y¹ä%u‚ä%ì|Øù°óù+寔ßâŸ5TJÝEÎ~lµ /J3Rô;ââŸÅKEº;ÔxÝdéÜÌi0§Áœˆ;"vP-è€a›€dï~óûÍï7ûË—Š1yžd¿oF÷JöÉ=úÝS·ÎaϪqŸïDû‰öícÇŽ9L…°i‡cÇÖG­¸G¶=ugõ÷¬šÜ£ß{3BV²¯Sz^öûqŸ¯>»Q lß…  A‚âÓr­¬lß ªWÁ%·¤²É8úýiíû“/‹véòó‡¸ÏwC¦ ™6d¢6|½žôzÒëIå–;Xî ¥:w,âžIë738U‰9É=úíî»iŒëɸß××t\Óqͧ†Ÿ~jH…0l0`a„¨R1¤bHÜ¿¶-.ë—¶xǨñ=GV I.¡ï ç¶§|WWÏ—¿TΚqŸÝúë[¬oA=HŽô,îQ®z¾ rּἷ–ïêäúF?qµZÈâ²?ïø?þ\)¤bHÅ}F£$/wÛÝmw·]VϬžY=ÿÇ=ÁvýÖNÿ>yE¿žŸ&ößT s†œ›r׉ûìL®&W“+õcøøøãã»¶êÚªk«¸+¿êøÞ«òÌ5ÿ¯òžó’KèPòèå’ÇÊkÖŹ^Üg7Ée’Ë$—è×ѯ£_S˜#†m" %òuäëÈ×ãÔqê8ÕÎ Ûj½,åöÑ¿ûûª'l-ô½ûsûu÷îQ2sþ kÎåÔõS×O]§$wúhf͸׻G‹©ùƒîþœ¯âa[ }?úÛXõÄö€i[J¹Ys.úÌ¥ÏbÔ€äëÝÁwßìt¿ÓýNÿã9™þq<”µ­GÀKÊû˜ÖþpâÍ=äyö´î;fäî«ë…ŽMªÐ×Ã>Àyqe§ÔE²¹·²æ˜Ge•qTÆví>ÚqÙ‘\z~éù¥ç9~ÍñkŽ_­yTI×+}ž ƒKŠ×=&UèÛwqP£>åÅ–çœßYs̾¢¯è+Þ »v/Œ+€5€a›€ƒ{çüÎùó(Ó(Ó(“õ_?ˆqòrL»xº_þ⃮ƴ¾ë34aƒÞˆ¾=šWû^ÉÞ(ªœ]ÿ’ƒó¿°ûBr9œ‡ë %ÐG¼/'ûø·lœÿ…’}ù¢rv}CûWû>aãÞ«1;kú ]<=°fñAbò”wLký±é³’>Cq}ÛÓ˜§1Ocº|ßåû.ß[?N:9äþ§kË^e'ü\îÇÙéöMNØ ×kÌÒò:÷¶Cn.hërÉwMÝœÖ[Áì³Ì~nܹqçÆq}‘2}ñiħ‹Â…/ ÿ‚g ìÞÙy׺38:_ó>=÷V)~5ã^ß+Ëäê¹rÛ:·…UJôªŸ'û—~zÜ‘jGª©b²ÆdÉÊUÀzÀ°MÀ@ rëð­Ã··MÝ6uÛÔv_%÷þ,~º–È÷ñÜœ%×è jW,ÕÎÔ¸aé2‘êÓÆÛÊ*-g.çr fýf¥¯®¿W]ððûKù#EÚÕnP@q.okÔ5ê5¢`DÁˆ‚\M)>úé#a|ÆÒÚ |68—ûKÝEÚ­¿7þµ‡Ïšó”¾ª´X~´œ‹úteêr¦Æ‹¯”‰ÜÑ`zÃRíææ\É5ºK`£&yçÞïìèpáë^WŸ}ô™ˆ« eºpüÂñ Ç+÷­Ü·r߯K[æ)0-ÏŒE[ä.²©cH€CñƒöÎÜå15pîÒÜ%¼·²WIÇu–·)qmp•yµŠ ë>pÌÐüu\ê\?[+·f¥ÏÆg *T,¨XtèѸš€îéÀ§Ÿ¼hð¢Á‹¾îe0sÝÏ ðùÀçv6Éa¹Ãr‡å[•­ÊVåC†>d઀NõR-ms$×g}Æáª@lO_<}ñt[ï¶Þm½ms wõrõrõ:TëP­Cµ"‡E‹ÆUâöøÍã7ßLv˜ì0ÙÁΆ-ݳtÏÒ=¯î¼ºóêW €ø#†m"ó®í»¶ïÚ•*Tºj•ªUªVIª_D8p)øRð¥`® XO9õQ4©Æp}Ñg}fẀ5^¤}‘öEÚ6Ø8Àý–û-÷[I5’O­3µÎÔ:7Ân„Ý`íO ^"ÓG¦L/]•®JW›5j”Tïëž%z–èYâTËS-OµŒ‘c䙫@Â"†m"ðo#ÞF¼8éxÒñ¤ã´ÎÓ:OëìuÍëš×µ„ú´ýoíkÿÛæß7ÿ¾ù÷[©n¥ºÅX L]õ‘Vuj ×g}vÐg }Ö Ï ¡„y…y…y)•‰ÊÄÑ G7ݰĂ J,ˆÿî4ßi¾Óü^>½|zùìö{„??øùÁÏô9Ø"&DLˆ˜p>íù´çÓ._¾ ¼†ZC­¡&Ô'´&µ›ÔnR{õ¯«]ýëßMþnòw“è³Ñg£ÏÒó)¡ €p¹Íå6—Û‰:u$êØ¤c“ŽMŠL™&2 =¶O±õÑ[ÉõQž€äâTóSÍO5?2üÈð#ÃCý!ô‡˜1c>Ò3@òuo÷½Ý÷v{tìѱǾ;öݱï^W|]ñuEzÖ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒø¦ð‘ïŽ|wä;;H1ôœ”’=`0ˆëÿýHê#©¤>’êHª#©´h-Z‹Ö¢´(-Jû¤}Ò>iZ„¡}Ð>h´p-\ ×Þiï´wÚ[í­öV{­½Ö^k¯´WÚ+-L Ó´Ú í…ö\{®=מjOµ§Úí‰öD{¤=Òiµ‡ÚCí¾v_»¯ÝÓîi÷´;ÚíŽv[»­ÝÖnj7µ›Ú í†vCûGûGûG»®]×®k×´kÚ5íªvU»ª]Ñ®hW´KÚ%í’vQ»¨]ÔÎkçµóÚ9íœvNûKûKûK;£ÑÎhjjj§´SÚ)í„vB;¡׎kǵP-T ÕŽjGµ£ÚíˆvDS5US5ES4E“4I“4Q5Q3i&ͤÖk‡µCÚ!ívP;¨ÔB´-D Ö‚µ`-H Ò‚´}Ú>mŸ¶WÛ«íÕvk»µÝÚ.m—¶KÛ¡íÐvhÛµíÚvm«¶UÛªmѶh[´MÚ&m“¶QÛ¨mÔ6h´ Úzm½¶^[«­ÕÖjk´5Úmµ¶Z[­­ÔVj+µÚ m…¶L[¦-Ó–jKµ¥Úbm±¶X[¤-Òi ´Úm¾6_›¯ÍÕæjsµ9ÚmŽ6K›¥ÍÒfj3µ™Útmº6]›¦MÓ¦iSµ©ÚTm²6Y›¬MÒ&i“´ Úm‚6^¯×Æjcµ±ÚmŒ6F¥ÒFi#µ‘ÚHm¸6\®jZ 6L¦ Ó†jCµ¡Ú`m°6XûMûMûM¨ Ôj´Ú­¿Ö_ë¯õÕúj}µ>Z­æ¯ùkþZ/­—ÖKë¡õÐzhݵîZw­«ÖUëªuѺh]´NZ'­“ÖQë¨uÔÚkíµöZ;­ÖNk£µÑÚh­µÖZk­•ÖJk¥µÐZh-´æZs­¹ÖTkª5ÕšhM´&Z#­‘ÖHk¨5ÔjõµúZ}­žVO«§ÕÑêhu´ÚZm­¶VS«©ÕÔjh5´Z5­šVM«ªUÕªj~šŸæ§UÖ*k•µJZ%­’æ«ùj¾šæ£ùh^𗿥UÐ*h´rZ9­œVV+«•ÕJk¥µÒš§æ©yj%µ’ZIÍCóÐ<´Z ­„V\+®×\5WÍU+¦ÓŠiE´"Z­°VX+¬Ò i…´Z­€–_˯å×òjyµ¼Z-–GË¥åÒri.š‹æ¢åÔrj9µZ-‡–M˦eÓœ4'ÍIË¢eѲhŽš£æ¨9hšƒf¯Ùköšf§ÙiµŒZFíWíWíWííí-½–^K¯¥ÓÒié´Ÿ´Ÿ´Ÿ´´´´´ZZ-­ööö–FK£¥ÑRi©´TjŒ£Æ¨Qj”¥Fª‘j¤¡F¨êGõ£úQ WÃÕpõ½ú^}¯¾UߪoÕ7êõúJ}¥¾RÃÔ05L}©¾T_ªÏÕçêsõ™úL}¦>QŸ¨OÔÇêcõ±úP}¨>T¨Ôê=õžzO½«ÞU覆ÕÛêmõ–zK½¥ÞPo¨7ÔÕÕÕëêuõºzM½¦^S¯ªWÕ«êõŠzE½¤^R/©Õ‹êEõ‚zA½ žSÏ©çÔ³êYõ¬zF=£žQO«§ÕÓê)õ”zJ=©žTOªÇÕãêq5T UCÕ£êQõ¨zD=¢QuŠª¨Š*©’*©¢*ª¢jRMªI=¬V«‡ÔCê!õ zP=¨†¨!jˆ¬«Áj¤©ûÔ}ê>u¯ºWÝ«îVw«»Õ]ê.u—ºCÝ¡îP·«ÛÕíêVu«ºUÝ¢nQ·¨›ÔMê&u£ºQݨnP7¨Ôõêzu½ºV]«®UרkÔ5ê*u•ºJ]©®TWªËÕåêru™ºL]¦.Q—¨KÔÅêbu±ºP]¨.T¨ Ôê|u¾:_«ÎUçªsÔ9êu–:K¥ÎTgª3Õéêtuº:M¦NS§¨SÔ)êdu²:Y¨NT'ªÔ êuœ:N§ŽUǪcÕÑêhu´:J¥ŽRG¨#Ôêpu¸:\ PÔu˜:L¦Q‡¨CÔÁê`u°:H¤RªÕjµ¿Ú_í§öSû©}Õ¾j_µ·Ú[í­ú«þª¿ÚSí©öT{¨=Ôj7µ›ÚMíªvU»ªÕÎjgµ“ÚIí¤vP;¨Ôöj{µ½ÚVm«¶UÛ¨mÔ6j+µ•ÚJm©¶T[ªÍÕæjsµ™ÚLm¦6Q›¨MÔÆjcµ±ÚPm¨6T¨ Ôj=µžZO­«ÖU몵ÕÚjmµ–ZK­¥ÖPk¨5ÔêjuµºZM­¦VS«¨UÔ*ªŸê§ú©•ÔJj%µ¢ZQ­¨ú¨>ªê­z«Þjµ‚ZA-¯–WË«eÕ²jYµŒZF-£zªžª§ZJ-¥–R=TÕCuWÝUwµ¸Z\-®º©nª›ZL-¦S‹ªEÕ¢jaµ°ZX-¤R ©Ôj5¿š_ͯæUóªyÕ*•p%\ WÞ+ï•÷Ê[å­òVy£¼QÞ(¯”WÊ+%L S”Ê å…ò\y®Šâ£x+ÞŠ·RA© TPÊ+å•òJY¥¬RV)£”QÊ(žŠ§â©”RJ)¥ÅCñPÜwÅ])®WŠ+nŠ›â¦SŠ)Å”¢JQ¥¨RX)¬V )…”BJ¥€R@ɯäWò+y•¼J^%’GÉ£äRr)¹ÅEqQr*9•œJ%‡’CɦdS²)NŠ“â¤dQ²(YGÅQqTÅA±Wì{ÅN±S씌JF%£ò«ò«ò«ò‹ò‹ò‹ò³ò³ò³’NI§¤S~T~T~T~P~P~P¾W¾W¾W¾S¾S¾SR+©•ÔJ*%•’JŽ–£åh9JŽ’£äOò'ù“!GÈòùƒüA—ÃåpùüN~'¿•ßÊoå×òkùµüJ~%¿’_Ê/å—ò ù…üB~&?“ŸÉOå§òSù±üX~,?’Éäòù|_¾/ß—ïÊwå»òùŽ|G¾%ß’oÉ7å›òMù_ù_ù_ùùùùš|M¾&ÿ-ÿ-ÿ-_‘¯ÈWäËòeù²|Q¾(_”/Èä ò9ùœ|N>+Ÿ•ÏÊgä3òù´|Z>-Ÿ’Oɧä“òIù¤|\>.—CåP9T>*•ÊGä#òY•UYÕY’%Y’EY”EÙ$›d“|X>,–ɇäCòAù |P‘Cä9X–ƒå 9H’÷Éûä}òy¼GÞ-ï–wË;åòNy‡¼CÞ!o“·ÉÛä­òVy«¼YÞ,o–7É›äMòïòïòïòyƒ¼A^'¯“×ÉkåµòZyµ¼Z^-¯’WÉ«äò y…¼\^./——ÊKå¥òy‰¼D^$/’É å…òBy¾<_ž/Ï“çÉóä9òyŽ<[ž-Ï–gÊ3å™ò y†9ŸœGÎ#ç‘s˹åܲ‹ì"»Èβ³ì,çsÈ9äìrv9»ì$;ÉNrV9«œUv”eG9³œYÎ,ÛËö²½œIÎ$g’3ÊåŒr9ƒœAþEþEþEN/§—ÓËéätr:ù'ù'ù'ùùù9­œVN+'''§‘ÓÈiäTr*9•#ÅH1R”%EI‘R¤)EHR„ôQú(}”Â¥p)\z'½“ÞIo¥·Ò[éµôZz-½’^I¯¤—ÒKé¥ôBz!½žIϤgÒSé©ôTz,=–K¤GÒ#éô@z Ý—îK÷¥»Ò]é®tGº#Ý‘nI·¤[ÒMé¦tSúWúWúWúGúGúGº&]“®IKKKW¤+Òé²tYº,]”.J¥ Òé‚tN:'“ÎJg¥³ÒéŒtF:-–NK§¤SÒ)é¤tR:)—ŽKÇ¥P)T •ŽJG¥£ÒéˆtDÿø¯Oû’N”DI”L’I2I‡¥ÃÒaétH:$”J¥)D ‘öKû¥ýR$I{¥½Ò^i´GÚ#í’vI»¤ÒNi§´]Ú.m—¶IÛ¤mÒi‹´EÚ,m–6K¥ÒFéwéwéwi½´^Z/­“ÖIë¤5Òi´ZZ-­–VJ+¥•Ò i…´BZ&-“–IK¥¥ÒRi±´XZ,-’I‹¤Òi4_š/Í—æJs¥¹ÒiŽ4Gš%Í’fI3¥™ÒLiº4]š.M“¦IÓ¤)ÒiŠ4Yš,M–&J¥‰Òi‚4A'“ÆIc¤1Òi´4Z-”FJ#¥Òi„(JR€ HC¥¡ÒPiˆ4D"ý&ý&ý& ’Iƒ¤Òi€Ô_ê/õ—úJ}¥¾R©ÔGò—ü%©—ÔKê%õzH=¤îRw©»ÔUê*u•ºH]¤.R'©“ÔIê(u”:Jí¥öR{©ÔNj'µ‘ÚHm¤ÖRk©µÔRj)µ”ZH-¤R3©™ÔLj*5•šJ¥ÆRc©¡ÔPj(5H ¤zR=©žTWª+Õ•jKµ¥ÚR-©–TKª!ÕjHÕ¥êRu©ªTUª*U‘ªHU¤ÊRe©²TIª$U’|%_ÉWò‘|$ÉKò’¼¤ R©‚TN*'•“ÊJe¥²Ri©´TZò”<%O©¤TR*)yH’‡TB*!•ŠKť⒫ä*¹JŤbR1©ˆTD*"’ I…¤‚RA© ”_Ê/å—òIù¤|R)”GÊ-å–rK.’‹ä"9KÎ’³”CÊ!å²K٥쒓ä$9IY¥¬RVÉQr”¥ÌRf)³d/ÙKöR&)“”IÊ(e”2J¤ Rééé)½”^J/¥“ÒI餟¤Ÿ¤Ÿ¤¤¤¤´RZ)­ôôô”ZJ-¥–RI©¤Tb´-F‹Qb”%~?‰ŸÄ1BŒ?ˆÄb¸.†‹ïÄwâ;ñ­øV|+¾_‹¯ÅWâ+ñ•øR|)¾_ˆ/Äâ3ñ™øL|*>ŸŠÅÇâcñ‘øH|$>ˆÄûâ}ñ¾xW¼+ÞïˆwÄ;â-ñ–xK¼!ÞoˆÿŠÿŠÿŠ×ÅëâuñšxM¼&^¯ŠWÅ+âñŠxI¼$^/ŠÅ‹âyñ¼x^<'žω‰‰‰gÄ3âñOñOñOñ”xJ<%žOˆ'Äãâqñ¸xL<&ŠGÅ£ú—ú¯ûú$/êQñ°xX<,þ!þ!þ!ŠÅâñ€,‹Áâ~q¿¸_Ü'î÷‰{Žâ^q·¸[Ü-îw‰»Äâq‡¸]Ü.n·Š[Å­âq‹¸EÜ$n7‰ÅâFqƒ¸AÜ ®׉ëĵâZq­¸Z\-®W‰«ÄUâ q…¸B\..—‹KÅ¥âRq‰¸D\".‰‹Ä…âBq¡8_œ/Îç‰óÄyâqŽ8Gœ-Îg‹3Å™âLq†8Cœ!N§‰ÓÄ©âTqª8Yœ,N'Šʼnâq‚8A'ŽljcűâXq´8Z-ŽG‰£Äâq„8\.Ä1@&‡‰CÄ!âq°8X,‰ƒÄâ@q Ø_ì/öû‰ýÄ~b±ØGì-ö{‹½Ä^b/±‡ØCì!v»‹ÝÅ®bW±«ØEì"v;‰ÄNbG±£ØQl/¶Û‹íÄvb;±ØFl#¶[‹­Å–bK±¥ØBl!¶›‰ÍÄfbS±©ØTl,6‹ÄFb#±Ø@l Öë‰õĺb]±®X[¬-Ök‰µÄZb ±†XC¬.V«‹UŪbU±ŠXE¬"V+‹•ÅJb%±’è+úо¢è#úˆ^¢—è%V+ˆÄrb9±œXV,+–K‹¥ÅÒb)±”XJ,)–KŠî¢»è.–Kˆ%D7ÑMt]EWÑU,*‹ŠEÄ"b±XH,$ ŠÅüb~1¿˜OÌ'æóˆyÄ Ÿ„ÂGá£ðAø |Þ ï…÷Â;áðNx#¼Þ¯…×Âk!L„—ÂKá¥ð\x.<ž O…§Âá‰ðDx$< …‡ÂCá¾p_¸/Üî ÷„;ÂáŽp[¸-Ün 7…›Â á†pCøGøGøG¸.\®    W…«ÂUá²pY¸,\. … Âá‚pN8'œÎ g…³ÂáŒpF8-œN §„SÂ)á¤pR8)Ž Ç…P!TŽ G…£ÂáˆpDPUPYYII0 &áááápH8$„!Dö û…ýB$ {…½Â^a°GØ#ìv »„ÂNa§°]Ø.l¶ […­Âa‹°EØ$l6 …ÂFaƒ°AØ ¬Ö ë…µÂZa­°FX#¬V «„UÂJa¥°RX.,– Ë„eÂ2a‰°DX", ‹„…ÂBa¡0_˜/Ìæ ó„yÂaŽ0G˜-Ìf 3…™ÂLa†0C˜!L¦ Ó„©ÂTaª0Y˜,L& “„IÂa‚0A'ŒÆ c…±ÂXa´0Z-ŒF £„Âa„0\. „!@& † C„!Âa°0X,  ƒ„Â@a Ð_è/ôú }…¾B¡ÐGðü¡—ÐKè%ôz=„îBw¡»ÐUè*tº]„.B'¡“ÐIè(t: í…öB{¡ÐNh'´Úm„VB+¡•ÐRh)´š Í…æB3¡™ÐLh"4š…ÆBc¡¡ÐPh(4 „zB=¡žPW¨+Ôj µ…ÚBM¡¦PS¨!ÔjÕ„jB5¡ªPU¨*ø ~‚ŸPY¨,T* …Š‚¯à+ø Þ‚·à-x ^‚—P^(/”Ê å„rB¡ŒPFð<O¡”PJ(%x‚‡à.¸ îBq¡¸P\pÜ7¡˜PL(&Š E…ÂBa¡°PH($ „B>!ŸOÈ+äò ¹…ÜBn!—KÈ%8 ΂³SÈ)ä² Ù…ìB6!›MÈ*d² Y„,B!³YÈ,Ø ö‚½IÈ$d2 …ŒB!ƒAøEøEøEH/¤Ò é„tB:á'á'á'ááá!­VH+|'|'|'¤Òi„TB*!•)ÚmŠ6E™¢LQ¦O¦O¦O¦S„)ÂôÁôÁôÁn 7…›Þ™Þ™Þ™ÞšÞšÞš^›^›^›^™^™^™^š^š^šž›ž›ž›ž™ž™ž™ž˜ž˜ž˜›››ššš˜˜˜î™î™î™îšîšîšn›n›n›n™n™n™n˜n˜n˜þ1ýcúÇtÝtÝtÝô·éoÓߦ«¦«¦«¦Ë¦Ë¦Ë¦K¦K¦K¦ ¦ ¦ ¦ó¦ó¦ó¦³¦³¦³¦¿L™þ2666222444777…šBM¡¦£¦£¦£¦#¦#¦#ú×öú×uúÇvàozÂl!%€@L À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ€²‹ý¤㯿>þº.»pì±”ÙK§>œúpjÞÛyoç½­÷F3æÎøêΫ;¯î$÷³ÓÏB?#ýìô3ÕÏš÷`Ž˜°QÀJ8—p.álM<ö§±?ý)¥ÑÎÑÎÑÎuZÔiQ§EìÞ˜“eN–9Yâßzøº­Ã¶Û:tþ·ó¿ÿ­¾¡ú†êôëâ4ÕiªÓÔ­s´ÎÑÚÍËÍËͫھjûªíUzTéQ¥ÿhÿGû?ÚG¹F¹F¹ÆÿLgyÎòœåûëÖ¬[³nMfÀ00`£€”ìd»“íN¶³³š@¦´ñaêØ©c§ŽÝùµüZ~íÝÆwßmüº6> |¨Ç½ŽÁŽÁŽÁvñàããþŸñ<&CL†˜ _wToƒß¿ Ž}—³nzçé§wæýÄFL Ø(`àÛ«ªÄµ}Ë#,‹_7žès¢Ï‰>)¡Ç®L»2íÊ´ÌG2É|$v,^µxÕâU_7NnܾqûÆí¹\r¹är±KMå¦rS9>cø‚“ N.8»M½þîýwï¿{óþtÀÀ€"Ræû.Ò;Ò;Ò;ßù|çóÿÒˆqÈ®!»†ìú–G›=–!&CL†ZCj ©5$ök (P$àCÀ‡€_ÚäÚðµákÃí¾‰2¿—ù½Ìï_×?áS§„O)´¸ÐâB‹c·û!ؼ‹``ÀF)ó}gªdªdªdéJ•*déÿÕ€lìX¿O×üµVç_uþ/}]½·.8\p¸`é,ìïÚßµ¿Ûjp«Á­ï?´ÿÐþC7rßÈ}#÷Ç^{}ìõÌç™Ï3-T ÕB ”Ý?»vÿ¸{¦ÆÂ k,üº^ZÞiy§åÌÛÜâó›¥6ÍÙ4gÓôwêïÔß©bΊ9+æÌ¯å×òkY—d]’u‰~ü r4ÈÑ Çú«ë¯®¿ª?Jך#yø(ðQà’ÙKf/™]¯|½òõʻǸǸÇèä͘-0[`±VÅZk¥x+ýVú­ô³¾}® îÕWw^ÝYprÁÉ'õ+UòVÉ[%oéW0wÆÜsg,»¨ì¢²‹ô«,æóŠy“ãûÎ\Xª°Ta©ƒƒƒÍ_·Àþû ìׯu쟚ÑdF“M,mÇO?uü”ØGþmz¬RT¥¨JQæíÉ:&똬_úZGup”¥cûÓØŸÆþ”°ÇÿgÅ?+þYÑÒ+–›\nr¹É_×òˆ¦#šŽhjÞfU¥ªRUá†2 EÓ¼Y$ H@‘»¯¢?jUÿß÷7ßß|sB[bÇ*¶|îq÷@ìó2ãËŒ/36ù«É_MþúÒã}çœù«ëw×Í¿6ÿÚük–b¹¸å½÷vÞÛ‰Àã êôÐ×ÒÚ·qûº Ë.AÅ¿¯Öþ°ö‡µ?Xj?pPà ÀAæ¯u½Þõz×ëYú)§©NS¦¾ ~ü68±G¤Äë±3yÎä9“ÇR;—¶\ÚriË—¶9ïñ¼Çó[jsö>HØw®ð[zEý¾®ås÷ÎÝ;wÏRËgßœ}sö s=R``¤8a¯Â^…½Òï/LØH#v|ÿãLŒÀ)¹œ{Ü= ÿ¿zô¥?¬5>G®ß¿»e}µÑ†‘ #FÆ¿g2¥Î”:Sê„ê#]A=b,‹ñ?~=B³þøm-®Ó¢N‹:-,ÆxiΦ9›ÆÒky×ò®å]ËÒÏno¸½áö†‰="%^ úgÐ?ƒþ1oA¿;üëÎ%ö}ÃæN»Ÿv?íž°óÎë ¯/¼¾`éõ;õãÓ¾þLó–c¿¿˜ýr y^üyñçÅ}‹ùó-f—È– X6`Ù€ømÂNÉëÜãîýAÁzü“PÇ\ê\©s¥Îéÿ»Åüó[ÌOØ>É“*Oª<©âÃé êÿïØc?Žý˜°G®? Úš~¶X¿÷:ö Äæ©zªžjÜ-̬2³ÊÌ*–Ž-v='Þˆ”=¦ÿ‰@Á7ÜhÞBÏñ=Ç÷ÿuç¥?BÜÒ±=öìÿØ?agŸ¿ìÿ²ÿËÞÒ+žRxJá)ñi¿ûÚîk»¯µØr†˜ 1ø €”ƒ˜)‚¾v¦¾6jܱDÃô Ó7L¿eô–Ñ[Fßz}ëõ­×úý ú£†õu'ü9áÏ ÆŽô,Ý÷²"dEÈŠ¯;æ„ œ’ã¹ÇÝÍ×7_ß|}ìÿb×þ®ýÝas‡Í6W$ìûÅï¿_|áØ…cŽÍÉ2'Ëœ,Ö<ƹhÏ¢=‹ö4ÿïukÖ­Y·¦~Fz«?ÐU½¬^V/÷nÖ»YïfÖ„^‹W-^µxW0tFèŒÐ™^gzéuìÿ®¯Ü¼;óîÌ»3ëë.ëa¿ª…j¡}ª÷©Þ§º5ý¼yÖæY›gÅ}l²}~‹»eK?Ÿ^Ò3néc¯òk©…Kü[âß–ZÈ|$ó‘ÌGôˆÏq~ûÓëÄRËúJÛ_ëÅÖö…Ëÿ¿%ƤÿQ…¥sÑbŸöõU½-µ²ÝÉv'ÛñI)00R„¹?Îýqîq¯„z`æ™fZ²Æ½¦£.ßù|çóÿºˆ"¡àäxîÖô@ìG§ ‚‡àwkq‡I–èáqìã±ÔþïüþÇïÄÝZ쵊Sò,îZܵ¸kìÿÒc^y=æE´Žhñ?C½áĆNÄ}ä­·ÜjpÒ¾ï¬çSÁ§‚OK¯x+õ­Ô·¬z„xÜí¬ _¾6<1Ž?ñzldµ‘ÕFV‹û±Ø¶?ûDzGzGz›×|lúØñé1ý±Õ–ÚýÈk> % &€ÁéWÕcBK뿞»wîÞ¹{_ùåx†˜ 1âŽ@Æ=÷dÜ“/m?þ±Jò=wkz@7ïñ¼Çó[ß~§gžuzfMËúCb¿ô˜ë•¯W¾^ù„zÐkJ¸‚UÎV9[åì§:Ÿê|ªcý«Ô/Z¿hý¢qßÉýu#Æ· €ÿîýwï¿{[z­ k,¬±ÐúÖf˜]`vK­Å®Ì„=‹Äë±J¿VúµÒ¯æmf]’uIÖ%zÍØþ÷pè÷â¿9òæÈ›#ñé1ý',ú»Œ)00 n¢i¢i¢ÉÒ—ïk×8®qŒÿ×â{}ìõ±—¥WÉå’Ë%—Ë·€“ï¹[Ó…Z\hqø”ð)á_©ê÷ Çݲ³·³·³÷ÓºOë>­û¥G¾ÿÐþCûÅ}¿rJ¨^k®`ì‡Ó~iûÁÛ‚·o‹û¡Ç_×ß2Žûú®Î¿:ÿêüÖ¿îÜ7rßÈmñ±Þ¯3½ÎôúáÔ‡SNMسHŒÓѬ?ÚݼÍêªo¨¾Áögýaæ–VwÖÍòœå9Ë3¡^1vÐkþŽÐŒÏ§¤ÀÀ0,ýþ°û ì/°ßü3°ÇK—/õÕUê÷¤Ý“vOZK_ôŸ¿tþÒùKÖ·ŸX%¹Ÿ»5=û~GëÛŒ;$Ó¿>þúøë__]k{­íµ¶ñÄRÂÔïïüº£ýÇ÷ß|#zü–°{÷ î,Åu_·­o1ßb¾Åvêoßc’ƒä 9Xjsx—á]†w±ÑûY3ÄdˆÉ°dö’ÙKfǽî¸km×Ú®µãïolú:è–^Q_³œÏH € €`Xq¯ù:uìÔ±SÇ&l„ ßI™Ý?»vóW\6`Ù€e¬ÅøÄ*ÉýÜ­éØ÷òZßfìUf- Y²"dÅ×õOÜwÓZßfJ¸‚3šÌh2£É×EìGF'ÇøTýSõOÕ·ô*­»µîÖºÛ×µ¬¯Zm©e¿›~7ýnÚ~{MÜ„ªÆÄ¦?°½ñÆ7ß°fuíëõ®×»^/aÏ"vÀoN¥y4R``VÜ+/~݃g­QkH­!µ†˜¿bÇO?uüômàä~îÖôÀí»·ïÞ¾ûuÇwË7ínÚÝŒWÏÄ?K WP@®­…µß&ºfèš¡k,½Êž÷{Þïyÿu¯¨WobWxb÷Ø€ˆ",µ¹½áö†ÛÚB©?‚~ÚÀi§ Ô×ä¶æñògßœ}söMbÿ–Ñ[FoméÕ‹ƒÅÁ"0R``V«Á­·lé«ð—_f|™11^·}‘öEÚ1Åjûªí«¶Ïúvâ«$÷s·¦¢££¿î8¯åø_»”sõ;iûùÛ´›þànK÷vqsqsqûð!àC@|^E¼¶¥³˜Yef•™UꌣÇꕯW¾^yKmš*™*™*%íü²³äÎ’;KkU¬U±VÖ¬u]ê\©s¥ÎÉs&Ï™<‰ÁþÑþö´·t #F6Œ$@J@L êУB =ìl†~<Ö|b•ä~îñï¤j9¡ÚO WPd®­]ÇÄ® 1¯˜WÌk©ý>ÕûTïS=þ¯2÷ÃÜs?Xz•r“ËM.7Ù–`}•kKmê1ê·ŸSô•°«o¨¾¡úkÞ5™RgJ)uÀ¸€qãô{…;|ý³âŸÿ¬héxÕùTç“Å?/Ðï`æ³R``V~-¿–_³ôUøûÅï¿_lËÇŸX%¹Ÿ{ü{ ©ZN¨ö¹‚IÕ~âs›æmš·ingcôUcmí*Ä}ŸôóâÏ‹?/žÀÅš!&CL†Áâ`q°ø?Vö}éu¦×Cv Ù5dWì;nmá§÷Œ¥#wövövöŽR``–§ê©zª–¾ ¿}÷öÝÛ6}/T|b•ä~îñï¤j9¡Úç &Uû‰ÑfXª°Ta©,ÝÕùHæ#™èÿ&1®B­!µ†ÔbéŒÆŒ gk=¦¯Vk©Íëõ®×»^/a{i@Ä€ˆqŸKé ÒA¥ƒNô9ÑçDÛ }cÓ{ÆÒñë+‹óÙ)00 «N‹:-ê´°ôUøi÷Óî§Ýmùøã«$÷s$UË Õ>W0©ÚOŒ6×=Z÷hÝ#Km6_ß|}óõ‰w– X6`ÙK¯^pcÁ7ÚZéQ«¥6õÕyªâ¾::ý~ß½>öúØË6£_]ìpÚ\ÙEe•]Äg¤ÀÀ0¬Q¥G•UÚÒWá{Þïy¿ç½-|b•ä~îñï¤j9¡Úç &Uû‰Ñf½òõÊ×+o©Í-£·ŒÞ2:ñbŇSN}85îóRî+÷•û¶ÓcMå¦rSÙR›GupTü{æÖë[¯o½Îº$ë’¬K>ó¨çÔ™RgJ=÷ÃÜs?$—YïÀÌ3ÌLª?5l00 kß•}Wö]±ôUxën­»µî–°¡Ë½{!÷BÊýüö¥K|b•ä~îñï¤j9¡Úç &Uû Ûæƒ%–ÕùT'î5>¿.扬’|Ï=¡zàÛ·œ°ís¿}ûq·ííílM;×ë]¯w½ž¥vœ¦:Mušúnã»ï6~Ëñ°Ú¾jûªí³tT]Ît9ÓåLÂŽTÖ÷Xlú½Èz/™·é]Ë»–w­ÄX•9[`¶Àl>|HŽó]ìž1¯7ýýΧ¤ÀÀH:=ëô¬Ó3KEì:c2ÄdˆÉ`M›/3¾Ìø2cÇŸ;þÜñgK-—]TvQÙE‘Þ‘Þ‘Þ_zÌ n%ÇsOØø–-'Fû\ÁoÙ~Üm>ió¤Í“6Ö´3yõäÕ“W[jGïùo?.Ú±hÇ¢–Ž*»vÿìþï¿_ü~ñ·ï1suZÔiQ§…¥G e|ž!&CLgogogoó–õÿÞb~Òlñ¹²zoXz¨µxóI)00R„./\^¸ØY¡Ìïe~/óû²Ë,pyÙåe——½9òæÈ›#Ï|žù<ó :#tÆ,ÏYž³WVï K-Oï<½óôÎ<ü)00R³iΦ9›&±¿Ä×ïÈÜÚkÿ­ým'ÑÝi÷Óî§Ý-ýË­s´ÎÑ:|Jø”ð)I5V9[ål•³–ްÕàVƒ[ ¶¾ãßc–èÄ`©…yç=ž÷øK¯µä 9HÆ €c÷†¹+Ó®L»2)00Rœ«Ã¯¿:<1¾¾wqsqsqÛó~Ïû=ï㜉$—sO¼Hì–»}®`b·?²ÚÈj#«Å'º 0.`œ¥ÙUê*u•’v \prÁÉ'-¡c°c°cpØ«°Wa¯¾MÅ­ä­’·JÞ2o¡}‘öEÚùÒÖ¶uØÖa[ãÀ±{#6OÕSõT™÷Ò …ÒïÀÓ?g ̘-ðë¾²×–ÛåL—3]Îè6µýÑöÏ=±{ ùÀ\ÁÄn?vß~itåååZpcÁ7Zú—!+BV„¬HÚ{1ï\¼sñΟÏhýÕõW×_Mì³Æøë㯿nÞBì~¶¾µ¸WAN–p†˜ 1 -.´¸Ðbó6'ü9áÏ rï/R`` F_'5öýy¾Å|‹ùÓ¿R×W¸Ô×Luqqi[£m¶5¯Z¼jñªK,y°$ù~½ž’Ïêå ZÑ:¢uDk½gjN¬9±æÄ¢=‹ö,Ú3˦,›²lr­íZÛµvõ Õ7TßÐñçŽ?wüÙ¨ý`}m$^Ý´»iwÓbhª^V/«—Sr­j¡Z¨jéqî±×<æ} €”ƒ˜°(±ï_äÜÁL¾ýIŸ|Ëk|£ñÆ7ÌÛì[¶oÙ¾eSòéW¨_¡~…Ì{¦ÙÞf{›í¥2›¼-x[ð6KkW§Ìøc¯½>öÒïï7£Ž:8Š?V@ÊDL lZ´s´s´s¹Éå&—›lþÆÞ{ì}ÒúD?kóިУB =ôµ©¤LÀÀ Øó~Ïû=ïÍ¿ÓhÓ¼Mó6ÍSÚÝ®±Ï:¶ ãAǃŽsï/R2``dˆÉ“Á«¥WK¯–±¿Óp v v ~™ñeÆ—SB7ègªŸuì~ð©àSÁ§÷þÀÀ Ù¿—¿—¿7ÿfcÒÎI;'íL w¾N^=yõäÕæ= ¿•ßÊo¹÷ &ÉLç;ÿÛùߨßl䬓³NÎ:ÆŽ?_¸¼pyáûLu]¥®RW‰ªtÀÀ ™yø(ðQ ù÷£ Ž.8º QÏZ?»ØçëâæâæâöØÿ±ÿcîýtÀÀ YÚ1îĸã|kñB€Ë®lsÙæ²Í=FõÕcÔ…EÙF[®Ny®ÕÌ»ÛhÙféÏV4¼½øÉßüjyúôñ³æµìðÊS{ Gth4¡ÏüGÚÿñï4»w»qÃÆNÎÿ~Ÿ{w ¹§ñC·=Ðù?/& ¯j·ªÝªv•)•)•)¾M€X&Àe±¯j_Õ¾ªÜº¹usëžÇ›z›µùyÚ‡©Gty¦^×ë^øîÛÓ²³.ܶíRÍ“ç{oaÚ ølΠæ;²ômZókkݤu“ÖM¶OÙ>eûß/@l€àÒ©¬ª¬ª\ÑkE¯½jVÛå k1ù¯²Ò^ûɦ§/mî­ùœžXÐì•É×´iœöPM®ybý‰õ'Ö?–p,áX‚¯ vÀp |SüMñ7Åî}tï£{«O§ þÔhmÒ ô~»ævËZ_ô-k¯Vô6ßñÂsÃÞœÙôý®M~´ªúÏ’4#iFÒŒO‡~:ôÓ¡ö@,€à¢|‘óEÎ9I’:%uª>—Þž0ºhFÝX˽ÕÏŽO³4妛.mÙ§úO·>u}êúTûàê€à•­*[UvŽgd[öH¼÷Ç­ç~^Ò%¾ÒïóõEG¶l››[oBÃê?ïâ‹,n`o\-0œ·Òã¥ÇKŸãyßcþrÆóq}£ý@t·é¿‘^ýgŸ{pîÁ¹í€+O€ó°cöŽÙ;fWŸ?;ïûe×~ƒsFÁ¼=ïMküÎí×å‡ÑÖ¡è¾¢ûŠî³g®$jd;öî¨>ývûëÙ/­Iwú ÎY_+ÝœÒbäÇß3)Úšw/î^ÜÝþ¸2`8‡o{~ÛóÛž­R[¥¶J–9»ßðÒÈukOú=#ÿ±hØÖN-–öèpï¨hëSÞ­¼[y7{ àr€àò†ä É-mvÝ5kÅ»‡jgú=#ç/h³¹°ÉÿtÈÉìm­Ž$I<’hG\>0Dµv÷ÚÝkwG}×oý©+—H¿g¼øàü‡þ}x´½fôšÑkì+ hõòÕËW/?u×0íõi¯O{ý`¯ƒ½ö²2F€³8¼õðÖÃ[£…ÌÔ7žÈœú°Ümî’=sÖŠ£­Þ¦Q›Fme'ï?yÿÉû£Ý;ˆÁF€³Èï›ß7ÿ,?eÜtN—§{þwvÇ…“¶½&ôV?§¾óÄ€©£åÏ>ž}<ÛN€Ú,øìoõÄàš€à »6íÚ´kS´C‡n_¿tó:ÏþÖlNXX[ý¤£?¨HK\ÉEŸ,údÑ'öÔf§‚›Pcbpõ`8Ã#yä=’yÄÐîÖdžMj.ëžï|Çñ¿]~w´ƒ›£ýö?Úß®ÄàKE€Óv—ì.Ù]íX!«Ñ«Ç6Ý$è^ØÜê¹»S4Ž\Õ%ã–Œ[2ÎÞ‚Äà‹!Àic ÆŒ‰(ºuËgÑb*ò*ò*òìFà|‰ÁA0µZÅ]wUÜí8 »ÕÂ;·ýT¸½´sÊoúøã#W»¬ ¬ ÌsÀÀEƒ`jµòÃå‡ËŸåÇŸ[<0oÄz±örÌëM-Z𹿳ÆÎ;k¬= \*µ3 ÀÔj‹rå,ʉ¼áïø§§ÿ¼p®X{9æÌñ…7¼–7.g<›ñlƳö$p9Ôž,P« .\8¸ð,12}^’ܘ{‡î[ïO}뉞S‡Üü/~ý7·7œÒäÿ5¿¡Á37-lôõ÷^þþ«mgßzSßÿ““Óeæ¯þqå ±œîizK‹…‘+bÿ‰ý'öÛ™Àåî,P«%oIÞ’¼å,oÿ½¦è³­Ûc'—f¼ûëÅŸºy|§ë²ÇÖüxâ¶ßZ1½46ð-õþ¯‡_޼æý'÷ŸÜÒήŒðÅ`€Z-ò6>é›üoZ›XË¥ÍÊ2~Þë/N_â–ćÖIÓ?oØÁô!ãÏÖqß”¤…·É<"ÿ±†+nžÐüŒ¤ÝeÐÌC+¶ÇÚ'JMx¼ÿ”=‘ë_>²|dùH;¸òƒ`jµÈ[÷V‰w¾õ@çØ ¥i;Çå¾ÜïôÅýsƒß'Þ™^ò‹ìyU§þïéç•ÿÔ9õ£Ðg<Óc¸CÇ oÌÿCäúo,ÙX²±Äή®øÁ0µZäízë]çý.vBió¯²?ë;úÔµµØÞc]¿f5 ºÁOÔdvzj÷ßÅZî¼ó—ß_v–w/¸|àòv&;â+_µœ1©mÃ!7Žÿ(vBé÷~—Ò¾ÝON][ðÙßs¼3¸íÜý%wwùóóKß¾®ëÂ:øÎ±X À]Ö?ßô7Øo@¸­^¾zùêå0\5íR3)&ÞœµjÁ¾-¯¯­ë_غêéXK¹6wøOß]µÝ~­⭊·*Þ€ઉ'€»þǬ)ï¾¼¶Ìm¯&|ðçp`OµA-zøý¿0 Ã0 Ã0 Ã0Œ«?"oÎcçÀ™¯Nú ]ðÚº=üb—5_…#G{ð´ßOûý´ßÛ™†a†a†aÄÎXó‹5¿Xó‹uFÔQ§æé÷Ô߯Eï€Xy‹Þ*ñηè;¡4xmëNÊ|­uMþÕ‹Ÿû—7?k3rðñq­Úlz´EÁüì„…õ·ÕÏÕ¡ã„7æÿ!rý7–l,ÙXbgWשp;íõi¯O{½æÑ÷Ôß¿òÑ7H V‹¼]Oúæÿ›Ö&6p«ÿèuÍÀ;jò¯nù²ÏèA§Ÿ¯MžÓvO‡µ'€Sï?eOäú—,Y>Òή¼ø¾A0µZò–ä-É["o೯)úlëöX¥·uùí´¹§/kKâC ëtØ1ñ__}"ê»uoŸù·+%Þø½ÉmNý£[Kïéý³{O®˜ À·<Öû¿~9rå÷ŸÜrÿI;¸2Â}ƒ`jµÁ…ƒ FÞÌg¤Ï«S’ ¡4kÕ‚}[^‰¼Â”WûW3½SÁ/_ÙÒiÜ?~ôëµ]‘[ñT7KoyúÉæ†÷7y°Y¿Ø|spÃ=Moiq–wŸØbÿ‰ýv&pù„/ú ÀÔj‹rå,ʉ¼±ïø§§ÿ¼pn¬ýô©s®ÉÁD⯓ol28mBþßÌ)µg3ÇÞðþü³D÷g3žÍxÖž.‡pGß €Z­üpùáòÑ7ù­[<0oÄúX{jöÔµµ’ûø„_5ÉM›ßýºÄ#;ܼ3qdÒS5žp[Éoû“”¿ýC·½s¬kk×jî\ojÑÒÜÈ5Ÿ5vÖØYcíIàR©=Ñ7H V«¸«â®Š»¢Ýög·Zxç¶ŸÆfF­þ¹ÞX{ê78§üö§?Þ1rµË Ê Ê ìIàbÔÎè$@Õ€âÅŠ#ºì¾øíæ±™QãqÎú èÖ-ŸE;p©È«È«È³€ó%ú ÀPµaþ†ùÎòVÚÖ>x×…Âí¥š;­{fñ’f‘ë<¼`xÁpÏþçAôF€ª£“N>:9ÚAæ{…û?X'ß^üܼNæwzmŒ\áÒ¯J¿*ýÊ>ª'úÖ„ §Œ)S0&ò°à¶õòô7åÛ‹™»˜µ{uz´ã˜Êë+¯¯¼Þ"‰¾çK€Óv—ì.Ù]íø «Ñ«Ç6Ý$å^ØÜê¹»S4Ž\Õ%ã–Œ[2ÎÞ‚Dß‹!ÀÉ{$ȣ„v·>6lRs)÷|ç;ŽÏøíò»£Ðí´ÿÑþv ú^*0œaצ]›vmŠv¸Ðíë—n^÷°¬[£9aaýmõ“Žþ "í,?þ¼è“EŸ,úÄ~€ÚLô½`8‹ü¾ù}óûF44ÓåéžÿÝqá¤m¯I¼ÕÏ©ï<1`êÄhG6dzg϶Ӡ6[½|õòÕËEßKK€³8¼õðÖÃ[£=¤¾ñDæTÏG»dÏœµâÁh«·iÔ¦Q›FÙcÀÉûOÞò~Ñ÷Ò€ ªµ»×î^»;ÚaDçúSW.-{ƒsÆÁùýûðh+6zÍè5£×ØW@Pð9`Ñ÷â ÀpyCò†ä ‰5»îšµâÝCÒoVþ‚6› ›üO‡œÌ¾ÑÖêHâ‘Ä#‰vÀå#À9|ÛóÛžßöl•Ú*µUj´´Ùý†—F®ÛXKÓmíÔbi÷ŽŠ¶>åÝÊ»•w³—.7jd;öîH¨V·¿žýÒšäZ”~¾Vº9¥ÅÈŽ¿gR´5)î^ܽ¸»ýpeÀpvÌÞ1{Çìê3pç}¿Ì]öuÈßõ[0oÏ{Ó¿sûßuùa´u(º¯è¾¢ûì€+I€óVz¼ôxéñê3ðíÆüåŒç×~ïè6ýá7Ò«ÿìsÎ=8÷ }på ÀpÊV•­*[U} mQØ#ñÞg´žûyI—8N¿×Ùz°mnn½ «ÿ¼‹,n°¸½pµÀpQ¾Èù"狜¤NI’:ã™à„ÑE3êÆWúít|꘥)7ÝØtiË>Õºõ©ëS×§ÚW— —À7ÅßSüèÞG÷>º·úPÚàOÖ& JïW°kn·¬õEßÙ²6æ~äù…熽9³éû]›üèÏ7'ÍHš‘4ãÓ¡Ÿýt¨= `¸t*«*«*WôZÑkE¯„k—3¬Åä¿ÊJ{í'›ž¾ZÑ7=± Ù+=’¯iÓ8í¡š\óÄúëO¬,áX±_;@ì€à²ØWµ¯j_UnÝܺ¹ukƒ“›µùyÚ‡©Gty¦^×ë^øîÛÓ.mè͘<ïØ{ ÓýÃgs5ß‘½ oÓš_[ë&­›´n²}Êö)Û§ø~b“ —]Ùæ²Íe›{Œê1ªÇ¨„ Òh`ËÕ)ϵšywÛ-Û,ýÙꂆ·?ù›_-OŸ>~Ö¼–^yjOáˆ&ô™ÿHû?þýf÷n7nØØÉùßïsïŽ!÷4~è¶:ÿgÂEXÕnU»Uí*S*S*S|›±L€+êãÒK?.”9(sPfBLJÍHÍHÍXÛ{mïµ½OŒ;1îÄ8ß@¼€àª9pík\»äÉ%O.y2íó´ÏÓ>¿ZÑwzŸé}¦÷Ùuhס]‡|/ñK€r(ãPÆ¡ŒS7NÝ8uR¿Iý&õk?§ýœös.>ñ&¿˜übò‹#²FdÈZ¹a冕¾¬÷e½/ëYs€0€ ŽE†Þ²²Â2+P; ÀÇ΀wî,Üiej'☠@ qL H€8&$@€€ Ž À ÀÇ`‚`ˆc0A0Ä1€ ☠@ qL H€8&$@€€ Ž À ÀÇ`‚`ˆc0A0Ä1€ ☠@ qL H€8&$@€€ Ž À ÀÇ`‚`ˆcË,[°lAþGùåtêÏýpè‡C­ @í$„„ 0@HÀ!!„„ 0@HÀ!!„„ 0@HÀ!!„„ 0@HÀ!!„„ 0@HÀ!!„„ 0@HÀ!!„„ 0@HÀ!!„„ 0@HÀ!!„„ 0@HÀ!!„„ 0@HÀ!!„ÄÿÛ.ÆIµPë«%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/empty.png000066400000000000000000000114321431412030200245300ustar00rootroot00000000000000‰PNG  IHDRTOšgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿ«1Í5IDATxÚíÝyxTå¡Àá/Q,Û°ˆPÁ­-«¢¢¢Dµ.<PÑ¢×\z«ÖŠ ‚÷V±î¢)z½¸_«­A¼U«®¸‚Q$„Å«‚™þ19$$3a¢d&dÞ×Ç'ßÌ9sæÌɘçç9gÎäÅãa‹ óû4 Ôy3ÖlÜÒ< l&€Ü’_³¢ ¥!/ ñPùߪ÷¤75ÓËÌãÓ›#É\ñ­¸¬­6wÍ–ûÃñÕæ£ã™X‡ì,9«k/­¯¬vþÍÚ3Çk-êÂR2õ¨š½K·öœ™«öç¨~kþÐ%oýÇm½)[gþÔÿµ×²Oì_+BAi!„<{kMƒBC›Á–Ýføkà½ê]šk[Ó»³Î¾7 óCÚ§ìù ÿO€@ €@ €@ €€@ €@ €@  M €@ €@ €@ @ €@ €:"ß&øqŽžžéik ¼ÒoÓ°ØÖ¶@ À6À§€,)ÝgÞÓÓ>ó³Ï¯+:û ­ÞÜg¯‡œÙ¤ ºÇ¼|Eâg·«?ßh8y§×ó?{pí¢v#wm:ð¹¯îxJùÜE£o3óÑeó¿8?Þ¼åÇûþô¨×†œYqz奖/wÙâû>ŸÿȲÅEç·žÓnÄA;éñþé7Ôyñø–g*ÌïÓ4„f¬-Øh“[Ã_»^qÌŠ‰•ïmÖaͲÅw¶?9Õ£b±ÄÏââV·8kösGl>½í¸¢ÑÅÅ!„ïøççþøþ†¡›Ooùƪ.ÅÅ©–šXîºÂß/yt@¼cÕg¯üÈòÇ%›ó˜éÿøM!´žþÞ)yKSÍyÎß==„òJÞœ·Kwï à‡«I¯9 d\Éšv9óêùše!<=uX•[r|¯f•ó/„¢ÑÏÅBøvÔ€Æ\9ÿBXÕ%¯¤ú¥¿Ú¥\˜,ÿ¶»?õ*ׯqâçʾ ®L5Ï7šùHbÔ}ü2G¶ªËñÝ_\Ÿzúú™!Lº¨úe¬Y6øöOÖ&›òÿwîùb,6¬ýìÖÉo[:äJòNzqÉñɧmš·ô¯]ÓÇ·‹FÓßIõŒOÿnýÌÄhÐøšå%€¶¥ûœ|õ›ŸE·zm˜ø¯/ý|ÄGñg»üþÙØêèþËÆÏº»º¥œ=ûÃýBh°pøU…—›;sl£íî¦}pxû“ŸB‡òÀ tüxõ´ùC.lq‹q7¥Š­³f'²²×†©¿u튑¯îzËv{ Þ‡ßVñ‘ý'þI~O‡_î÷UâÞ/§z™øÙhB¿ÆÅ¾EÈç5~‡«Ê‚©Y‡¿ ruÅ3ëJòvk[Íùªgugë…Ðhƒ7ùZtkÁ½¯Ù|Þ±.,ŠÅ¢eÜÿ̃¢)G½ðÜ—½y6Xxãg¼_~ûû­•ßêÙ~ÎòÔçn>åÖ¶ÿù]b4{Y—&U·ÅºÂŸ-üvT"§,÷Þ~çuÔò‡ÆMNŒŸ;}Ö«‹‹+&Sóxqi4þªçEïUPôò£~T~ëKú/©8uØU ²¡G÷è?UÝÞ¶koª˜!4œ[\|ÞÀèÖœåžî«­pøÝd¯åÉ¿'òÏ` Ó A“Û|w^b4îîÃ÷N’a%EC¢á=V·¤¶ãιgóÇŸZá0oÓ½¯8°rR ¿*­Ú5õr{¶?ç–ª÷þñåÎçDã©ÿ—n¬íñú/KŒ’~¬ìŒÂØê£Ÿp€@½´±Ï½ß$F»ô›¶É“§Ñ„)e)Y3§0õ²†ßÒîºÍïÙ½ÂòΞüóy•—ÿ‹ÿ‰FQ„&3¦M²¼k°pÌNÑxÖM¯N÷÷Û1ñóÝËÿÑ£ò´â]_h•õ_R~#€ê•Wz}yjb4x|«OSÍÕû¬èbÍ/Ý•z_[Õsê*^FåÀÙU±kÓ-¯áž/v>’î+>~çh4ãåʯeÚçû”m[ PO•ãÆ‘¤ž«Ñ„.?) ÀRÏõ³i•C­â^´Î¨šq&ly ûvK•byKûþ[4~½aºÁÖéš_ü¹,÷Þ©<-:¼[éÁ·; @ ¾ào£ÑϧU—Àî±èŠ÷ž÷tb4Èþ?@õWù¥›wÏ‹UcÚŠÄ\ëŸL½¬Ô_®¶å©©í58urFèáÓÂô÷ØEg†ðäß+†Þãm¢o4Å;€@½µ:¯fó¯+Ìô¶ž“zZÛ;¢QÉšô—¸÷¡»•ÅâôÍG€»ÎÞóE€Ô߬á_œµÀ&‡¥žÖ¬C4Z³¬&Ë<¡ìÂ×óïú`Ó7 /ýô•~‰Ñ`W PŸmøuÍæ_7¯.­}þ¦µùfTM]ºtŸ™wE÷Eß)Üpî€%Þ@þ¢Ù@¦4o¶²l´|\ãsëâ®›—zw\ù~¿æÍj²Ìý?ìpزÅ!„0ýÝß›8ÜûX×ðR!üê…Vsÿ2Ï@ cZlúîñ/ûÖÍ5\Ù³ši›.å[]³¥F™¿lF!¼Ú¢—÷8 @ ž+ÿÅÊ:€oMJ=mñSѨÍôš-µ_ÙY€ß÷̰Ê?Ò¤ ÷Y>@ ^;àÃh´l~Ý\Ã×[¦Þ#÷êþÑhÿU5Ûowð};LŒ¦½‹•`¿w¸Ì»€@½vÐ}Ñè‘ߥN¨Ïfu™øgÎòL¯á“¦œÔ<º:aò/š«VIßN‰Á3Ã>ñægKŽOÜr h@õ^Áàü²ïøxjLê¹þ2öíIoOz{Ò;7ìÝ;ÓkøþiÏí–|Êó{~Z¶×²ÁÂîƒjºÜè“ÀëgÎÞ.úp»=q€@=×òòK¢œ|qò½_%y÷~“uÝò̯ã}™l½âÇtŠÆÇLi;®¦áÖýìÖeç N[1þÛÄhÐä–k½'Ô{çܺyü;U§oìsÚ¡ÑåVν(H_\}ÿª÷^Ù­ü# g|‘z½âSü©]Øç˜Äè‘Ó£û÷~ º]ÝÓ…/Ü1 Í+N]Ýâìæ¾wº¦ßŽÙ9@:êâ{·ß´ºï€@=rÓÑ(Þ1„n&]ôö¤u…_õ\pãÍí×ü‰F‰i çN¼²õ¢ì¬á÷=.ÜqÀªYwþvÔDZ{·?|—Û¾ˆ¦mí­_WÝÿÙ Kò¾;oùCU—Ú£óæWä €@åÅã[ž©0¿OÓB˜±¶`£Mü8o4ìµ…oÒÈ[:ñÊá÷&Û?VM5Ÿšzzùý—Þ|ýũ׫áÜ)ëO;®ê² F¼õðæ÷${þ ÝÿLù+\|ÿ^£ì¶¦šôš=€@†uù~ÁyÕMoÖarþ [³tø÷Œ?üwªiϽ§UŸnÉÖëÈÓYvt9èB8¼]»òÈd\§kVŒ !Ù·7œ;ðù—FŸÞ>{ë6zÀëv+My¯½4jØ^Ésù‘é,¹×Æf¢±À@v9 dɺÂ}N|ü½ ŠÎÿjߟœûdïãº:á»l­|hxÃÐfž4eÑü¢ó×.j{Gû!=:|µûÈêÖkÃÐfrÉÒOWöÜijû!í‡O^Ÿl®a{%.&½ÃeïÖ¤À;غjÒkȲ-¹—Í5HLIw½¶0wó.—~BŸ¿{¿w ›˜osÙU—Ï…«ÙºU?÷ÜK»'FƒoMs MÎȈË>^ÒjΑÊ?@Ô{_?8ÿ/„ŸÏÖ @=:`ýÌÄh°¯€ @ý·~æøo£}º¿À@Öù@-ùú…oíñq“‚ÅOÝù£¡‰û.ùßXL žúâüãBáÉò{:]Ó·[q‰-d›CÀÒfêÔ§bþê WìVúĺƒæ:ü Ô9ï¢ÚYnëg6~îˆ×µü¤Óíý?zbëò€uÂØFµ³Ü&7†PB,¶b»ÇÛ†¹ê€9Â~? ®q €@ €@ €@ €@€@ €@ €@ €@€@ €@ €Ú“_“™ãsæÍ¯p3/͇ÕíùêÇ«ðÛ0Ÿß®ù¼ ÌçÝ’ÁùòêúVÞšØ÷׊ ´Ø¶Wß!`€“Vl´¡ê‹´¯MCáÚ¯÷ùÞ/`kX;rÚŸlVñž!kÒ8ìC Ûœ÷)à|`›‹¿aA¥ø§»Cñ'r,þ @ŽÅŸȱø€9 ÇâOäXü @€‹?cñ'r,þ @ŽÅŸȱø€Y÷Ò9×ÿ{æâ/„ØèÙtìÔòøûèQƒ[̪íg€YÕà±îÉ\ü…B^<ž‰§‰ÅBaÆÚ‚~ÉYNN›@ €@ €@ €T+/·r‰=€€@ €@ €@  €@ €@ €@  €@ €@ €@@ €@ €@ €@@ €@ €@ €tü Ý.–øo-y%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/endWith.png000066400000000000000000001204561431412030200250030ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTgÿÿKš1Á®AÅ^ÀŠ¢¨XÁIì½÷Þ±%Š·;šØ0±Gc‰-ît*jÄ{,±`ÃØ¿?®|Îwïßf¹X`ž9gŽGÙ™ëzϰ㵯¹2ÄL!%s “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ àˆ‰Œ‰Œ‰ŒÐÿß"þ†Ê\YäŒÈ‘3ŒÆ ã…ø350òH€éÎëǯ¿~|J=¥žR—å\–sYÎæ š/h¾ »“ˆ­‰-‹½ˆ=Ry@RÄŒˆ3b_›}möµ±~Äúë‹.(º ¨®_b;b›bûb_ÔÀÈ -"˜ÜÛ^o{½ía‰°DXº„t é’=•ˆ½‹–ˆVqtöÜÌr3ËÍ,Kb–Ä,‰ñööNù+—دhƒhÇÀÈ k¶W¢ðÌá™Ã3S¤.`€ Ý/z¿èý¢! C†,ÌîÂD Ek9j®yÄyÄyD.Ž\¹80c`ÆÀŒ®yåmímæÐ#/F^€ôŒ®‰`ž‘îk‡êx°Dµe¿M8VÞgǧ!}÷*‹–õôÛkA>A>AŽ ì‡µ÷mZ"ë¹ß;Ì«u99â^GÖbï¢%Ž´YôNô”#iÝ[Ÿ·>o}B·†n ÝêÈU P´G\«¶ôå]yEÜÞ¨…AU÷:´Þµ0¨ªhƒh#-}ýå¸@zy9Ô4oÇò~ygåܺ39â^GÖbï¢%Œ¼É®‰Æl:½éô¦ÓŽ ãçl 8ã=üaÕÁõv¥Vèko-Z%ZèH_D¯9úÅ´iÓ6`dÀÈ€‘ÿãaÎûʵt?õÙš…þ]â¶DÍ òM…Ð×ÞzKÔ¬ _Ñ6ÑÎøû"ú+úÎ9æy•ªÕ1hx»¾K?V†¥Vèko-Z%ZÈÈ €áš€iÀë¿_ÿýúïQ~£üFùÅ?\úÒ·dñ§õ©·ÏÕB_»ap£!õö‰–Çß;QQ Î p}ÑDÿý‡#7+%–¹ù­r¡¸×µh³#½uà|3¼Šìir¡ÃõÕ–º+“\-ôµW[ê®L-gäp`¸&`€K{6ìÙ°gÚû7÷oîÿýÈñÖ¿ú?L+¡¯Ý™ƒ·þÕÿaü=Õ•á ×$­VH+â?ÿº]ïö¥^½Èö[ç»ÒVôk½í}‰¿¿¢&œÖG^¾K¦UøqfZ }íμdZ…g2ò$0\0ÀE=íú´ëÓ®þ“ü'ùO²7 ïÙªüТŸ<+Ü»@ƒÀ´ýZ¯EDïìõ]TFT‰³\Ç®L»2íÊÿÊFýåAÕæ¤ÝÐ×ÞZô+þ¾‹úpž@ÚynT¿ügojÎ\^;ü\Z~­×¢G¢wŒ¼‰C ×D p9/ó¿Ìÿ2í=µ÷ÔÞco¾tj½Ëå®ÇÝè×%¨Ž™¢ßÿZßè×%¨Žè©½:ˆ*‰Šqæ@êŠÿ®_÷/òÎÈqÿFÝjÊæ‹~­×¢¢¿Ü i}äUæóîgǨ6?j™¢ßÿZW›µGô”‘ ¡€áš€®$ . . ËÌ.3»Ø}×ö:ÍòúN0mèkg-zm¯&¢b¢zœDòâŸë·ê„r…ÜåG›´Nõë›;úµ^‹þо370¤Å‘Wù¼ÃÎÏ-gÚÐ×ÎZôš‘ÀqÀpMÀâââi÷¡‘½š‡UÞ¢_뵨€½úˆêq@JŠiÓ6¦müÑïÓoû5(’~¢_ëµè{ü1°¨!ç¸ÎÈ«üÕ‘]æJoÑïÅÀWGv™?ˆ‘ÀÀpMÀ—Ñ3¢gDO{ì •í©44=G¿ÖkQ {µ•䌀äöÖç­Ï[Ÿ€‘#FÚ{àsz»ë7þ»í=ZÔPÔ“ó RwäåÓv`§ùÓsôk½Õ`äˆ0\0 •Åj±Z¬foP=µÿÊÒW }m×¢2öê&ªÊÙÉ'tkèÖЭöÞ‡ÓÃ\¿‰›Ø^ÅD=9¯ µF^%²}Ù«ßxB_Ûµ¨ #/€=Àβ{ëî­»ÿeOß0}Ãô =hô •I`@*ë©ÿ¥þ—lÿ«TóPὟ”}Ó¡ï À-Ľ¶kQQ%Ûꉪrv@r¸âuÅ늗½‚ú˃ªÍ!îµ·õ±W=Q[Î1HÉ‘—ûOe+WÎV˲úýƒ¿÷Ú®EeD•yl'Ý›VoZ½ieoœHœ8À€Tó{èï¡¿‡Ú»´ß¬ÐÕ»Îf‚Þø×¢Jöj(*Ì™Ns7înÜÝÀ£GÚ¾ë~Ý®wûR¯ˆxY‹ZÙÖPÔVÔ™Ó RfäU}ì‚E{»ôÆ¿Ubä°EœtÖ÷þÆ0ØqÀ€ÔP>®|\yŸÑ>£}FÛ^È×h4¨R}Â]Ç×¢bÿ2ƒ×hŸÑ>£Eµ9é é—†/ _jo úìfÄèà wY‹ZÙ«¤¨3ç$÷È˧ҀëÓ'î&`VàJ®OŸÈÈ `8éD +ÂÝì# Ž0 h{´=Úž™wj·û¤<åÞé»'ð±®ãkQ1Q=ÛªŠjsÖ@’xÄyÄy»PìB± ¶ï´J‰en~«ˆuºu³­§¨³¨9§$ÇÈ+÷@Ï£^k]]=ùPkbÝ<úêêɇZ‹ê1òÀÎEì,À€”íóÏ>Ø^ªMùòkÿ º‰[‹êýË·Ñ?ðùÀçQyN@HœÈÅ‘‹#Û¾ÇVÝW®¥ûá8KThn‚×–¨Ð ?QCÛÚŠšsî@rŒ¼*?šâK ›¸µ¨#/€@œ|ƒ“‚¢NyŸò>åm{aömáâ^'îN¿nAu‰r¹¾Ó¯[P]QIÛ ‹Ês@âf ̘ÑöÝ5ê³5 ý»å&e-jø/óg ̘‘sœ;òÊ÷a‰½ø‡-ŠÚO”›ÈµØ¢¨ý¢’Œ¼À)ƒ08¡€)ªß±~Çú³½ëÞ­zTû”7ékQIÛ ‹Ês@BÝÌr3ËÍ,¶ï«…¢=zäZ78ª]PqBÜ$­Gµ *.êi[gQÎCpÖÈ«RÛ¯ }?€7ékQIF^à”Gì`@ y¶æÙšgkì]€_î›'p,ñmÒ×¢’öê,Žg#8nIÌ’˜%1¶ï¨[úÎò®¼"µBÓóÍÎSë•u{Òz ,êi[gQÎCpÖÈ«ÖÜUcf$¾uÂ|ÀsW9˜‘‘€8uÛC H!Õ#ªGT·½ÜϨy·l#‚[ç®EUm«-Žg#8äaÜø‡ÁÁÁ¶ï¨¶iÝë7p8­ÇÀ¢ž¶=õÇ‚S’2ò*Y§]‰ÁŸÜ:w-ªÊÈ Ò3`×AlB† 2hÈ ÛKìùŸ;\ ÈIdëܵ¨ªmµÅQàlGÄŒˆ3Âö½´Y¿Úïx…Ö&ßZTضòâˆpf@üF¬±~ÄzÛwѹw[êT$N޵¨­m¿Ä±àœ€Ä¼ ½_»f³¿k“o-*ÌÈ Ò'à´%ý„ÁÀ€dw8Ëá,‡³Ø^8×Ol4²RC׉Ko뺾Γ!5ç•ÍÞfA™í…«Uºâù~¾ûùBs^Êa”é›ÿJÞwhE.ð<$oíNÞÆý‚ݵz5]9¶­¼8"œ™¿¢ Š.(ºÀö]ôõžƒþÁ®Ë´®vÁ6ÝáÕ¨˜Q¸^n)_hžÇ9ŒÊÑÞº›X¥×èRû֫隰¨­m¿Ä±àœ€Ä¼|ª x0}–ËÝ;ûçꉇZyoé_ï›îÖû.«].×”Onü8Ç´Üayç]\lE™ùEs7ËЩ“߬ÙS·ÍuåXT˜‘¤OÀi—¹Ã``@² 68l°íÅòdT»ÏkNs… T»Ñªqµ€‚>y>ËU'{]‹èüWí®‹ Û¶YÎL°çÕ¡W‡^²}ÿ¬šÕ'Ò}­+¥öà<»rOÈÑ&þ+Wñ_ Çå~|jæM5w¹f ,êlÛrq\8? ¡#¯*÷f ØøÖuâÒ»–ý }U`œïûÃyùƒ~>âš°¨0#/HŸ€ÍÁ|a00 ÙŒ;2ÖöyÿÃîûêù¥nDúdm¯¹õ”›zž#¢U%ÖºËSfþí:ý}zGlü|[u÷“{Ú5­9I}üÙƒjL~áïQz¡¸'ø¿¹éа¨°måÅáÌ»¿úê?¨oûþ9¼Pǃ%ª¹r,|Øó×RÓö·XòqUmû_s·ù† qo? øÌ³Îdý“o=µ üÃÕ`QgÛ~‰ãÂù yù\b‘d׉K=OÔÞ(ó?;˜³]®LŇ|>°÷ƒŠÝÇå^9fJ¾°“¥kvé7ºW®Ÿ L(xк/~g=ü9ÚÕ`QaF^>›ð3S„ÁÀ€d×,°Y`³@Û‹âËŠ}ê4xšº©ˆuE{r<ÊndŸxv|ûµÚÚ wÿå¡”Çó Ì=Ã5`QaÛ6‹#™ ö\ÞqyÇå¶ïŸË~›p¬¼kÀ9¯å ̾Sª:ݯœøëYÅŸªûŸÀÊí]æ`QgÛvŠãÂù yÕ*¼Ò#²®+¥Ό鱸å?Íú>Ço9+*ã–ƉmýóÿŒÔ¦åËóغG.÷8ëÂ+="ë2ò€ô‰ØÜÒnL HveWöží…ðíѾς2¦nDz`ÂRõýÃb|§”ðž\óvÙ Gîèµ ‰]ó>`QaÛvŠ#™ öD÷îÝ×öýsǧ!}÷ºfÜýbË?ŠD8èZ¿ªIïZ»<\-u¶­¿8.œŸÐ‘W@æÕ·]p… ´à€ËÍþyHu¡èº¿¶ôt$еîË'ó+zû.÷ èÌ«oºÀÈ Ò'àô#m…Á\çWÞÄÝé×-¨®«…¦ñG¹o¼ûv üaÁ¹:á>+\?æLgQ-ëé碰úø»±Õ>päµ{'.<[µàÿM|àµ?OW»XÔ™ó œ%À?lQÔ¯®”æ5Š—/Û\´ÊúÞßÿ1gp™Ð{JC¿›sÖíx¿ZXȃ_^¸\ì¶(êWÎ4`Ïî­»·îÞJ H\ó±É3ôYo£’볚~߯~/ð§ ¡“òUï[ºDÛie³R¨`žÍ¹Æ¤­q¦€³O–GWÛåšðµˆ]»jßpäµ— oo°êß®b®‹:s¾€³¸ÄC’w®Š9¸ÄºUÕÌ=´s²ËE¹IXs¦{^ny¹åå`@ºà:wõj}¦F¦–YK^+ømÎk9<³ï´×æÊÑžÝÜ‹u»[nv‘éw€©¹òÀ/úýöcƒƒŽ¼öÙŒˆ² :þÛUŒ;€Àœ\áàj¿Ï›²ë¿¾ÜS3jEöˆ›& €¹Ä+Ý,žÎÂÂÂÂ’–bO‹=-öÔö²ç:sç Íy)‡!ZUÁ­ÀË|M¦®QºLÕ]›šï¯2ábùŽÃú¾jÚgc`UñªóÍ;(ÿý±ûÿ}tž6æG„3“………ÅÞ–3,gXNÛ÷OWžØñ;€¯<Ú9¹v=ñª\'reÊ~ÇÕ`{ssf²°°°$näå s×\±ü눲֭ªÞ~ßž;& €íÌÌÈ‹………%=,¶ïÿ¡ï…¾ú•1ß²güžñ{Æ÷ËÔ/S¿LŽG¿âçÓÑÀ€ô£Y`³Àf¶¿—ûÔið4u#ÒfJLôÜ,ÚÓýb¹E"ÞzöÝøGü±î¹ŽzÕŠpýXTضâˆpf€=—w\Þqy‡íûç²ß&+ï“ÖçÞßbÉÇUµÿûÚSi÷|M\-uþ·ë, 1#¯Z…WzDÖuµ‡$W~çëš+K8òªª?Ì\ÿÓåÒº¼ãU:²[¡±ßdË•Íu`QaF^>Ùûê*•1ÜNß0}Ãô އ¾âçS>ôµF Hv#cGÆŽŒµ½Þÿ°û¾z~©‘z4ͽ2çIÑžC¾ê_Ê‘WíoÑâÔÿ}tîʰ¨°m;ÅáÌ»¼úê?¨oûþ9¼Pǃ%ª¹fÜýbË?ŠD8òÚ6 e.\M¼ªÝÈÆ_^ëj°¨308käåp‰E’]-öú½QƶUyU‘¿šî&^å¾°ÌõJ›\í`QaF^>›ð34úZ#$»°ÁaƒÃÛ^OFµû¼æ´ÔH½›|²0ï0ÑžŸê6ñ¯Ü>þŸ¿¾»K:b&`×€E…mÛ)Žg&ØóêЫC¯Ù¾VÍêé¾Ö5àœ×rfß)U îWÎÞ«~ªûŸÀÊí­_±qe‰êî®ýе¨308käUåÞŒߺBPêSmÀóé¡ÿ4ë`Îv¹2U:5qÓŠþö~ޯܬÎ?çÉé–·­{iñ¢¢G>mܵÅ?¶v™XT˜‘¤OÀæ`ŽÐ×0 ÙÎr8Ëá,¶Èõ¬Ô0u#Ò>ó+¬+zêŸo ÇæÝ›û“m8°âú«';Ï®ýóíþÝ2ÔõŽØøù¶êî“_ø{”^èœË/ÇK{—|W €E…mÛ)Žg&į肢 Š.°}}½ç `°«À%ÖzíÏSFüyb•^£Kí³ÔYr°êóæ•®â6Ľý€â3­¾IïZ»<\íÞ_Q[Ûš‹cÁ9 ‰yùTð`ú,—xTòÎU1—ض°øŠÏßöù©¢ïØKúŽ™zôÇËüÜãåWsû{V,üÏë¹Z}ÒÚ³¥kÎ,*ÌÈ Ò'à´Ë|¡¯5`@²»wÿÞý{÷m/–Žù¼ã–ºéÝZÝ?®û{™¾ù¯ä}ÇñËü:d­Rôx¾¹gXÿ}Ó6%ŠzŽrXTضýâˆpf@üF¬±~ÄzÛwѹw[êTtµ8|ïŠþÕþü¤¿{éœ}⿊•÷,Õ!_îk»vÕ¾áj°¨­m›Å±àœ€Ä¼ ½_»f³¿\'.µ~˜³#㯜ËÜÝ>éRaÂèÚ ÏºÚ½¿b-*ÌÈ Ò'à´ÅÜ¡¯5`@ò«W/®ž½Ëç›q}Çþ’ºA©hÉ”;þ£J (ëUã“ bn`±®w¹Èë³BçÖû¶Ü–7Þ};þ`Ý~hŸ»AÎý{VÜYlœ+D¿¢ªvïT®W/®'&Äo_›}möµ±}ÝšyÖÚʪ«ÀâïÅŸ»¾jѵHÛbFáz¹¥¼ëòøå˜ã«{ÿæÞaÚáþ+ÊTý;\¯^ª«E¿b-jk[sq,8' )#¯Zúêü»Z \fJ¾fÒ£Âwþïç|š¿R39äû*ÿšü|”ªm‹k^¼óéê7Þÿµ°«…¾ÿÜÓ¬¯Îð8#/HÏ€]_ú }­RÈAC d{)=ÿs‡k9]!4ÿ1ÎöþÕ5þ,ªj[mq8À1#bFÄŒ°}/mÖ¯v#Ï®—Ú qú÷®³µµ­¹8œ“”‘—_ÝYË~îîš1jü÷õºæ]¿ÿÌR\wÖ²Ÿ»3ò€ôŒØ5¥ÏÐ×0 …DT¨QÝö²<£æÝ²\-@MëkQUÛj‹£ÀÙy÷0î¡G°G°Ç¿ÌJûh›Ö½~WSÓÖZÔӶ΢þâXpJ@RF^%ë´+1ø3׌QÓîZT•‘¤gÀ®ƒÐ×0 …<[ólͳ5ö.´¯÷Í8–à6ékQI{uG³·$fIÌ’ÛwÔ-}gyW^Ap묵¨§mEý9ÀY#¯ZsW9˜‘àÖ ž»jÌÁŒŒ¼À©‹Ð×`@Šêw¬ß±~Çl/ººw«Õ>%¾MúZTҶ¢òœP7³ÜÌr3‹íûj¡h¹VÅ ŽjTœø6IëÁQ킊‹zÚÖYÔŸóœ5òªÔö«Bß ¾MúZT’‘€8åú:‚¢NyŸò>åm{ömáâ^'îN¿nAu q¹¾Ó¯[P]QIÛ ‹Ês@âf Ìø/wùD}¶f¡Bܤ¬E mk+jιÎyåû°ÄÇÞüÃEí'ÄMäÚ?lQÔ~QIF^à”Aè›PÀ€”íóÏ>Ø^’Mùòkÿ D¹‰[‹êÙVUT[Tž'rqäâÈŶï±U÷•ké~8ÎäG”›àµ%*4ÈOÔж¶¢æœ{#¯Ê¦ø„Åå&n-ªÇÈ 'Bߤ ¤m¶GÛc{y.±Û}Ržro‹ôÝxŽ@×ñµ¨˜¨žmUEµ9ë I<â<â<Š](v¡ØÛwZ¥Ä27¿Uº ]‹ºÙÖSÔYÔœS’cä•{ çQ¯ƒµ®®ž|¨5næý½ºzò¡Ö¢zŒ¼°sú: 0 5”+WÞg´ÏhŸÑ¶ìõ ªTŸX×ñµ¨Ø¿|}´ÏhŸÑ¢ÚœttáK׆/µ7à|v3btƒáÄºŽ¬E­ìURÔ™ó ’{äåSiÀõé‰u_‹Š1òX#N:Bßä@ H5¿‡þú{¨½KøÍ ]½ël&Ü-ªd¯†¢Âœià4wãîÆÝ <x4ð¨í»î×íz·/õŠpבµ¨Õ¿Ìû{4ðhàQQgN7H™‘Wõ± ííN¸ÿZT‰‘ÀpÒíÞº{ëî­„¾ÎE Heý/õ¿Ôÿ’í弿¡Â{?)û¦CßA[zm×¢2¢J¶ÕUåì€äpÅëŠ×/{ÃQ£þò jsˆxí­E}ìUOÔ–s RräåþSÙÊ•³Õ²¬~ÿ௽ÿòØgËê÷þ*ªÄÈ `‹8éÞ´zÓêM+B_ç"¤²X-V‹Õì]à§¶ñ_Yú*q¯íZTÆ^ÝDU9» ù„n Ýj÷Ê7 ìVëT&îµ^‹šØ«˜¨'ç¤ÖÈ«D¶/{õOÜk»•aä°‡ØY¬ï&ôM:`€KˆèÑ3¢§½Aõ†ÊöTJè+Ö¢öj%*ÉÉí­Ï[Ÿ·>#FŒü—»©¾È;#ÇýG›´NõëýŠ:ˆšØÖJÔPÔ“ó RwäåÓv`§ù }ÿ™ñ·íÀN3ò3òÄ®‰àBBíú´«ÿ$ÿIþ“ì Â{¶*?´è'Ï ÷.Ð ÐLѯè‘è½¾‹Êˆ*q¶€ëØ•iW¦]™²Ç˨¿<¨ÚóE¿¢_ñ÷]Ô‡óÒÖÈ«p£úå?{SsæòÚáçÌýЉÞ1ò$0\0À¥=ölسaÍý›û7÷ÿå#Ç[ÿêÿ0­G¿¢ñ÷TTCT†3\Süw _·ëݾԫÙ~ëÜ`WÚ }EûE_âï/wý€9F^¾K¦UøqfZ~E/y’Ž®‰¼þûõ߯ÿå7Êo”_üCô¡/}Kú°QzûÒJè+Z+ZïDD58+ÀõÅ?7°5¥Ä27¿Ui+úmv¤wÌõ æyÙÓäB‡ë5ª-uW&¥•ÐW´V´œ‘ÀY€áš€i̦ӛNo:íÈÇÍs¶œñþ°jàz»\.ô­Ú#¸Þ.ÑBGú"zÍÑ€´(¦mLÛ˜¶#FŒŒÿݾê¾r-ÝG}¶f¡—¸-Q³‚|](ôÝ5+ÈW´M´3þ¾ˆþоs€¹G^¥ju Þ®†ïÒ•a.úú.ýX&ZÈÈ €áš€iÒųÏ^<ëäääÈ0~X{ߦ%²žû½Ã¼Z—S+ô{-q¤Í¢w¢§qHëÞú¼õyëº5tkèVG®…¢=zäZµ¥ï,ïÊ+âöF- ªš ¡ïÞ¨…AUED{i¹è£è/ÇÒÛȫȡ¦y;–÷Ë;+çÖ©úн‹–0ò$7`¸&`@ö&ìMØ›°°âaÅÊgO ©ýW—¾vDoý‹ÿÝd™ÍWoý‹ÿ]±—„¶MôHôŽ£ æsÅëŠ×¯À£G:~uhÖ¯v#Ï[3ÏZ[Y½y|ïŸuŽ97îÛÛûr¼m¢/¢__`äe­Dö/ûöûÚwá´’?NL–Ù|N+ùãD±F^€”G ×D 0‰OÛw¢Eêô"­ºTk&ÖâoÄ¿ŠŸ¯JÊ~EËE/8š>.]qâ„/ _¾´Ø…bŠ]HܤjVŸH÷µÃ u?œ¾µ‚eŒÛ¢k•Z•ÿûb-þFü«øIñ*F^×A ×D 0¡ûEï½_4daÈÂ…Ù]˜h¡h-G Ò588ÈÅ‘‹#f ̘Ñ5¯\¢m¢¢Í:`äÅÈ žÃ5Lîm¯·½ÞöаDX",]Bº„t I­ÄÞEKD«8:{nf¹™åf–%1Kb–Äx{{§ü•KìW´A´‡ã`ä€5`¸&`@ºóúñëǯŸRO©§Ôe9—å\–³ù‚æ š/pÖÇ bkbËb/bT1#bFÄŒØ×f_›}mF¬±~Äú¢ Š.(ê„ë—ØŽØ¦Ø¾Ø50òH‹€øb"c"c"#ôÿ·ˆ¿¡2W9#rFä ã…ñÂx!þLMŒ¼Ò`0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0‰ €Ã3‡gÏœÒ ‘“@šG &‘î`ñ÷áÃ3†g Ïž!<ƒñÖxk¼5ÞoŒ7Æ+ã•ñÊxi¼4^ÏçÆsã™ñÌxf<1žOŒÇÆcã±ñÈxd<2bX#Öxh<4÷ûÆ}ãžqϸgÄ1FŒqǸcÜ1n·Œ[ÆMã¦qÓ¸aÜ0n×ëÆuãªqÕ¸jüiüiüi\6.—KÆ%ã’qÁ¸`\0ÎçóÆ9ãœqÎ8kœ5ÎgŒ3Æã”qÊ8eœ4N'ãÆqã¸mDÑÆïÆïÆïÆQã¨qÔ8l6QF”e4Æã€iD‘F„aDáF¸nè†nè†fh†f(†b(†lȆlX ‹a1öûýÆ>cŸ±ÏØkì5ö»ÝÆnc—±ËØeì4v;Æc‡±ÝØnl7~6~6~6¶[­ÆOÆOÆOÆfc³±ÙØhl46Œ Æc±ÎXg¬5ÖkŒŒŒ5Æc±ÚXm¬6V«ŒUÆJc¥±ÒXn,7–ßßßËŒeÆ2c©±ÔXj,1–KŒÅÆbc±±ÐXh,4 ŒÆF£·ÑÛèmô4z=F£‡ÑÍèft3º]®Fg£³ÑÙèdt2:ŒF£½ÑÞho´3ÚíŒ6F£ÑÚhm´6¾0¾0¾0>7>7>7>3>3>3Z-–ƧƧƧFs£¹ÑÜhj45šMŒ&F£‘ÑÈhd44 @#Ð4 ŒF=£žQϨkÔ5êuŒ:F#À0ŒZF-£–QèaÔ0ü ÃߨfT3ª~†ŸágT1ªU _Ã×ð5*•ŒJFE£¢QÑ(o”7ÊåŒrF9ÃÛð6¼²FY£¬QÚ(m”6J¥ŒRFI£¤QÒ(n7ŠÅŒbF1£ˆQÄ(bx^†—QÈ(d2 ‚†‡áaxŒF#¿‘ßÈo¸‘×Èkä5òyŒGŸ­ÏÖgëÿÑÿ£ÿGŸ©ÏÔgê3ôú }º>]Ÿ®£££OÓ§éÓô)ú}Š>YŸ¬OÖ¿Ö¿Ö¿Ö'êõ‰ú}‚>A¯×Çëcõ±úX}Œ>F£ÒGé£ô‘úH}¤>\®ׇéÃôaú}ˆ>D¬ÖëƒôAú }€>@ ÷×ûëýõ¾z_½¯ÞGï£÷Ñ{é½ô^zO½§ÞSï®w×»ëÝônz7½‹ÞEï¢wÖ;ëõŽzG½£ÞAï wÐÛéíôvz[½­ÞVo­·Ö[ë_ê_ê_êŸëŸëŸë­ôVz+½¥ÞRo©·Ð[è-ôæzs½¹ÞLo¦7Ó›èMô&zc½±ÞXo¨7ÔêAz¤êz ^_¯¯××ëéõôzz½Ž^G¯­×ÖkëµôZz-½¦^S¯©ûëþº¿^]¯®W×ýt?ÝO¯ªWի꾺¯î«WÖ+ë•õŠzE½¢^A¯ WÐËéåôrºî£ûèeõ²zY½Œ^F/£—ÒKé¥ô’zI½¤^\/®׋éÅôbz½ˆ^D÷Ò½t/½^H/¤Ô êuÝC÷Ð èôz~=¿ž_w×Ýuw=ŸžOϧçÑóèyôÜzn=·žSÏ©çÔsè9ôz6=›žMwÓÝt7ý#ý#ý#=«žUϪgѳèYôôôô÷ô÷ô÷ôwõwõwõÌzf=³žIϤgÒ3èô Zœ§Åio´7ÚíµöZ{­½Ô^j/µÚ í…öL{¦=ÓžjOµ§Úcí±öXû[û[û[‹ÕbµXí¡öP{¨Ý×îk÷µ{Ú=힣Åh1ÚíŽvG»¥ÝÒni7µ›ÚMí†vC»¡]×®k×µkÚ5íšö§ö§ö§vE»¢]Ñ.i—´KÚEí¢vQ;¯×Îkç´sÚ9í¬vV;«ÑÎhg´SÚ)í”vR;©ÔŽkǵãZ´­Ek¿k¿k¿kGµ£ÚQí°vX;¬EiQZ”vP;¨Ôh´ÚoÚoÚoZ„¡Eˆÿˆ·MÕTMÕMÑMÒ$MÒ,šE³h¿j¿j¿jû´}Ú>m¶GÛ£íÖvk»µ_´_´_´ÚNm§¶]Û®m×¶iÛ´mÚVm«¶UÛ¢mѶh›µÍÚfm“¶IÛ¤mÐ6h´õÚzm½¶V[«­Õ~Ô~Ô~ÔÖhk´5Z˜¦…i«µÕÚjm¥¶R[©­ÐVh+´ïµïµïµï´ï´ï´¥ÚRm©ª…j¡Úbm±¶X[¤-Òi ´Úm¾6_›¯…h!Zˆ6W›«ÍÕfk³µÙÚ,m–6K›©ÍÔfjÁZ°¬MצkÓµoµoµoµiÚ4mš6U›ªMÕ&k“µÉÚ$m’6I›¨MÔ&j_i_i_iãµñÚxmœ6N§ÑÆhc´ÑÚhm´6R©ÔFh#´Ú0m˜6Lª Õ†jƒµÁÚ`m6H¤ Ðh´þZ­¿ÖWë«õÕúh}´>Z/­—ÖKë©õÔzjݵîZw­›ÖMë¦uѺh]´ÎZg­³ÖQë¨uÔ:h´Z;­ÖNk«µÕÚj­µÖZkíKíKíKísísís­•ÖJk¥µÔZj-µZ ­…Ö\k®5ךiÍ´fZ­‰ÖDk¬5Ök µ†ZC-H Ò‚´Z­V_«¯Õ×êjuµºZ­ŽVG«­ÕÖjkµ´ZZ-­¦VS«©ùkþš¿V]«®U×ü4?ÍO«ªUÕªj¾š¯æ«UÖ*k•µŠZE­¢VA« UÐÊiå´ršæ£ùheµ²ZY­ŒVF+£•ÒJi¥´’ZI­¤V\+®׊iÅ´bZ­ˆVDóÒ¼4/­VH+¤Ô j5ÍCóÐ h´Z~-¿–_s×Ü5w-¯–WË«åÑòhy´\Z.-—–SË©åÔ²kÙµìZ6-›–MûXûXûXûHûHûHûPûPûPË¢eѲhïkïkïkïiïiïiïhïhïh™µÌZf-£–Q˨eÐ2hÔ·ê[õ­úF}£¾Q_©¯ÔWêKõ¥úR}®>WŸ«ÏÔgê3õ‰úD}¢>V«ÕGê#õ‘«Æª±êõú@½¯ÞWï«wÕ»ê]5FQcÔÛêmõ¶zK½¥ÞRÿRÿRÿRo¨7Ôê5õšzM½ª^U¯ªWÔ+êõ²zY½¬^T/ªÕ êõ‚zN=§žSÿPÿPÿPϨgÔ3êiõ´zZ=©žTOª'Ôê 5ZV£Õcê1õ˜zT=ªU¨GÔ#j”¥F©‡ÔCê!õ€z@= Fª‘j¤¡F¨j¸®†«ºª«ºxPUQUVeUV-ªEµ¨ûÕýê~uŸºOݧîU÷ª{ÕÝênu·ºKÝ¥îRwª;Õêu‡ºCݦnS·©?«?«?«[Ô-êõ'õ'õ'u“ºIݤnT7ªÕõêzu½ºN]§®STTTPPPÃÔ05L]­®VW«+Õ•êJu…ºB]¡~¯~¯~¯~§~§~§.U—ªKÕP5T U«‹ÕÅê"u‘ºH] .P¨óÕùê|5D QCÔ¹ê\u®:[­ÎVg©³ÔYêLu¦:S VƒÕ`uº:]®~«~«~«NS§©ÓÔ©êTuª:Y¬NV'©“ÔIêDu¢:QýJýJýJ¯ŽWÇ«ãÔqê8uŒ:F£ŽVG«£Õ‘êHu¤:B¡ŽP‡©ÃÔaêPu¨:T¬V«ƒÔAê u€:@ öWû«ýÕ¾j_µ¯ÚGí£öQ{©½Ô^jOµ§ÚSí®vW»«ÝÔnj7µ‹ÚEí¢vV;«ÕŽjGµ£Ú^m¯¶WÛ©íÔvjµÚFm­¶V[«_¨_¨_¨Ÿ«Ÿ«Ÿ«Ÿ©Ÿ©Ÿ©-Õ–jKõSõSõSµ¹Ú\m®6U›ªMÕ&jµ‰ÚHm¤6Rª Õ†j ¨ª ÔjµžZO­§ÖUëªuÕÚjmµ¶ ¨jMµ¦ZS­¡ÖPk¨ÕÕêjuµšZM­¦VU«ªUÕ*jµŠZY­¬VV+©•ÔJjµ‚ZA-¯–WË«>ªê£z«Þª·ZF-£–QK«¥ÕÒjIµ¤ZR-¡–PK¨ÅÔbj1µ¨ZT-ªz©^ª—ZX-¬V ªÕ‚ª§ê©zªÔjõõõÕ]uWÝÕ|j>5ŸšGÍ£æQs«¹ÕÜjN5§šSÍ¡æPs¨ÙÔlj6ÕMuSÝÔÔÔÔ¬jV5«šEÍ¢fQ?P?P?PßSßSßSßUßUßU3«™ÕÌj&5“šIÍ fP3(qJœ§¼QÞ(o”×ÊkåµòRy©¼T^(/”Ê3å™òLy¢e¯²WÙ«ìVv+»•_”_”_”ÊNe§²]Ù®lW¶)Û”mÊVe«²UÙ¢lQ¶(›•ÍÊfe“²IÙ¤lP6(”õÊze½²VY«¬U~T~T~TÖ(k”5J˜¦„)«”UÊ*e¥²RY©,W–+Ë•ï•ï•ï•eÊ2e™²TYª,U–(K”%Êbe±²XY¨,T* ”Êež2O™§„(!Jˆ2G™£ÌQf+³•ÙÊ”ÿ(ÿQf*3•™Ê e†2C™®LW¦+ß(ß(ß(Ó”iÊ4eŠ2E™¢LR&)“”¯•¯•¯•¯”¯”¯” Êe‚2N§ŒSÆ*c•±Êhe´2Z¥ŒRF)#”Êe¸2\® U†*C•!Êeˆ2H¤ R*•J¥¿Ò_é§ôSú)}”>J¥·Ò[é­ôTz*=•J¥‡ÒMé¦tSº*]•®Jg¥³ÒYé¤tR:)”J¥½Ò^i¯´UÚ*m•6J¥ò¥ò¥ò¥ò…ò…ò…ÒJi¥´RZ*-•–J ¥…ÒBi®4Wš+Í”fJ3¥‰ÒDi¢4V+•†JC¥¡¤)AJ¥Ò@©¯ÔWê+u•ºJ]¥ŽRG©£(J€RK©¥ÔRj(5”Š¿â¯ø+Õ”jJ5ÅOñSü”*J¥Šâ«ø*¾J%¥’RI©¨TT**å•òJy¥œRN)§x+ÞŠ·RV)«”UJ+¥•ÒJI¥¤RR)¡”PJ(Å”bJ1¥¨RT)ªx)^Š—RX)¬V *•‚Чâ©x*”JåååÅ]qWÜ•|J>%Ÿ’GÉ£äQr+¹•ÜJN%§’SÉ¡äPr(Ù”lJ6ÅMqSÜ””””¬JV%«’EÉ¢dQ>P>P>PÞSÞSÞSÞUÞUÞU2+™•ÌJF%£’QÉ dP2Èoå·ò[ùüF~#¿’_ɯä—òKù¥ü\~.?—ŸÉÏägòù‰üD~,?–ËäGò#9VŽ•cåòù|_¾/ß—ïÊwå»rŒ#ÇÈ·åÛòmù–|K¾%ÿ%ÿ%ÿ%ßoÈ7äkò5ùš|U¾*_•¯ÈWä+ò%ù’|I¾(_”/Êçåóòyùœ|N>'Ÿ•ÏÊgå3òùŒ|J>%Ÿ’OÊ'å“òqù¸|\Ž–£åhùwùwùwù¨|T>*–ˇå(9JŽ’Êåƒòù€|@þMþMþMŽ#äñáŸî‹‹¼,H²$Kò~y¿¼_þUþUþUÞ+ï•÷Ê{ä=òy—¼KÞ%ÿ"ÿ"ÿ"ïwÈ;äíòvy»ü³ü³ü³¼UÞ*o•’’’7Ë›åÍòFy£¼QÞ o7Èëäuò:y­¼V^+ÿ ÿ ÿ ‡Éar˜¼Z^-¯–WÊ+å•ò y…¼Bþ^þ^þ^þNþNþN^*/•—Ê¡r¨*/–Ë‹åEò"y‘¼@^ /çËóåùrˆ"‡Èså¹ò\y¶<[ž-Ï’gɳä™òLy¦,ËÁòtyº<]þFþFþFž&O“§ÉSä)òy²r¹·Ü[î-÷”{Ê=år¹‡ÜMî&w“»Ê]å®rg¹³ÜYî$w’;Éär¹½Ü^n/·•ÛÊmå6r¹ü¥ü¥ü¥ü…ü…ü…ÜJn%·’?“?“?“[È-ärs¹¹Ü\n&7“›ÉMä&r¹±ÜXn,7”Ê å 9H’È är}¹¾\_®+וëÊuä:r9@äZr-¹–\C®!×ýeÙ_®&W“«É~²Ÿì'W‘«ÈUäÊre¹²\I®$W’+Èä ry¹¼\^ö‘}dÙ[ö–½å2r¹Œ\Z.-—–KÊ%å’r ¹„\B.&“‹ÉEå¢rQÙKö’½äÂra¹°\P.(”=eOÙS.  Èùåür~Ù]v—Ýå¼r^9¯œGÎ#ç‘sɹä\rN9§œSÎ.g—³ËÙälr6ùcùcùcù#ù#ù#ùCùCùC9‹œEÎ"¿/¿/¿/¿'¿'¿'¿#¿#¿#g’3É™äŒrF9£'ÅIqÒ[é­ôVz-½–^K¯¤WÒ+é…ôBz!=—žKÏ¥§ÒSé©ôDz"=‘þ–þ–þ–I¤GÒCé¡ôPz =H÷¤{Ò=)FŠ‘b¤;ÒéŽtKº%Ý’nJ7¥›Ò é†tCº.]—®KW¥«ÒUéOéOéOé²tYº,]’.I—¤ Òé‚t^:/—þþþÎJg¥³Òié´tZ:)”NJ'¤Ò )ZŠ–¢¥cÒ1é˜tT:*•ŽHG¤#R”%EI‡¤CÒ!é€t@: EJ‘R¤!EHR¸.…Kº¤Kº¤Jª¤JФHŠ$X$‹d‘~•~•~•öIû¤}Òi´GÚ-í–vK¿H¿H¿H;¥ÒNi»´]Ú.m“¶IÛ¤­ÒVi«´EÚ"m‘6K›¥ÍÒFi£´QÚ m6Hë¤uÒ:i­´VZ+ý ý ý ­‘ÖHk¤ÕÒjiµ´JZ%­’VH+¤Òri¹´\úNúNúNZ&-“–I¡R¨*-–K‹¥EÒ"i‘´@Z -æKó¥ùRˆ"…Hs¥¹Ò\i¶4[š-Í’fI³¤™ÒLi¦,KÁÒtiº4]úVúVúVš&M“¦IS¤)Òi²4Yš,}-}-}-M”&J¥ Òi‚4^/—ÆJc¥±ÒiŒ4F%’FI#¥‘ÒHi¸4\. “†Iä!Òiˆ4H$ ’J¥R©¿Ô_ê'õ“úI}¤>R©·Ô[ê-õ”zJ=¥R©‡ÔMê&u“ºJ]¥®Rg©³ÔYê$u’:I¤R©ÔNj'µ•ÚJm¥ÖRk©µô¥ô¥ô¥ô¹ô¹ô¹ÔJj%µ’ZJ-¥–R ©…ÔBj.5—šKͤfR3©‰ÔDj"5’I¤†RC©¡(JR©Ô@ª'Õ“êIu¥ºR]©¶T[ª-HR€TSª)Õ”jH5¤Ru©ºT]ª&U“ªIU¥ªRUÉWò•|¥ÊRe©²TQª(U”*H¤ R9©œTNò‘|$©¬TV*+•‘ÊHe¤RR)©”TR*)•”ŠKÅ¥âRQ©¨TT*"‘ŠH…¥ÂRa©TH*$yJž’§ä!yHÒ'Ò'Ò'R~)¿”_Ê'å“òIy¥¼R^)·”[Ê-å”rJ9¥R)‡”MÊ&e“Ü$7ÉMúHúHúHÊ*e•²JY¤,Réééé=é=é=é]é]é])³”YÊ,e’2I™¤ R)ƒå­å­å­åååå•å•å•å¥å¥å¥å¹å¹å¹å™å™å™å‰å‰å‰å±å±å±å‘å‘å‘%Ök‰µ<°<°<°Ü³Ü³Ü³ÜµÜµÜµÜ±Ü±Ü±Ü¶Ü¶Ü¶Ü´Ü´Ü´üeùËò—åºåºåºåšåšåšåOËŸ–?-W,W,W,—,—,—,,,,ç-ç-ç-Xþ°üa9k9k9k9m9m9m9e9e9e9a9a9a9n9n9n9f9f9fùÝò»åwËËËK”%Êe9d9d9d9`9`9`‰´DZ"-–K„%Ün Û‹ëÄÛ €S´Ã\!%' &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``p‚ìñ²÷ªÖkZ¯i½ÆÞ«ê«¬þ±äks÷‹Ý/v¿hoïÅŒbF1#Î-Î-Î-9ö>ÿöüÛóoÛÛ{®¹Nä:ñx×ã]w%Gå]ÿÜH[nß ¾\äÏ"ùSô«p¶ÂÙ g‹½{5öjÚê‹h³h¿è‹è—è#ïu€ë#&'H\È·ðÐÂC Ù{UîðÜá¹ÃŸÍx6ãÙ '7×-Î-έèñ¢Ç‹¿åÑ×£¯G_OŽŠulرadžöö¸#pGàŽä«¼ëŸiÅ[Ï·žo=›¶iÚ¦ië~…ä É’7íöqŽïß9¾Ö=jÖ¨Y£fÌÛfEL N¸ïØßÇþ>öwü¯ýí»ß¾ûí;ç¶VĺÙ|1^‰µ%Ö–Xko¿SîL¹3åŽ#û%N]Á“ƒ'O¶½wüÉÚ'kŸ¬M»ýwŸ[ßÓ,ü§ûºÿ§;ïx€+#&'H\È'îž´~ØlÊD°óžÏ{>ï¹#prÜõxåÑ•GWÅ¿_¹ˆ\D.’òp-¾%%Ï ×wfæ™™gfŠûÔ­{´dÅ’KV˜#Þ¶½G_ô÷ øcï{€k"&'HJÈ×¾Wû^í{Ù{m›m´YàÜ8­eÖ–Y[fu$q—#sñ:nsËÍ-7·ŒŽß?êÜx59ÂZÀnqnqnG5Õx”u_J-=¶ôØçcŸ}>Ö¿×âì%—”\Rr‰uO­yÍ»àj€ €À ’ò…Î :×Þk½2xeðÊ "·¤·SZùBó…æ Íî°=³÷ÌÞ3ÛYµµuÔÖQ[íí+臠‚~p|k½WÇ·¤äqLÉm¦®µ›×n^»Ù¶/+‹­,¶²˜ùbÑïº}×í»n¶ý]?gýœõsx÷\ 008ARB¾“{Nî9¹'þ-œëx®ã¹ŽIo§õ£•7R)”ìÕö¨íQÛÃÞ¾¦žŸz~êùÔ  €ã÷¢ß‹~/ú•é[¦o™¾Ö½(èSЧ ™îýµ&¾6áÑÔ£©GSë^{7ñnâÝ„û€WCL N¤Ï-Î-έȟEþ,ò§½-üpð‡ƒ?LzÔ4±ÊÄ*«üË}Ʊ^±^±b¦[Û­ø âƒŠ’¾÷§Kž.yº$׉\'r°×S%—’KÉEìšìÝ ;Èoß ?sG¡ýFôÑo„mßWT^QyEeÞ×AL Nô¯séÎ¥;—¶·…Aƒ%=`«Ù¸fãšm·ßín·»ÝîÎ6sØÌaöÚp%㕌W2&iLº7|oø^gÍþëšÇ1e¶™òÄݽ¥f”šQj†m/ŒH#Òˆ4w¬¾£¾£¾cÛwëû¡y'\008AÒC¾ï?ûþ³ï?³·_ÝW÷Õ“2Ýép§Ã92æÈ˜#£íöל]svÍÙø{!îtLJæŸ[|nqgÍþëšÇ1e¶™ò¬ïA·?ßz¾õ|ëiîßqÑÇ’KJ.)¹„ù€WFL ¸œ7Þo¼ßxk7´ÚGFq$pGàŽÀ>5|jøÔÈ».ﺼëRáH…#ìm3é!ßÙñgÇŸÿvî¼_ð~ÁÄõzS—M]6u±·å«'¯ž¼zòŸÇAgðÊà•ÁögÚ÷jß«}¯¤Ä–m§µÖvš½6L;<íð´Ã©‹ºN}=úzôõ±SÆN;¥Î›:oê¼)=¶ôØÒcóìʳ+Ï.qŒª®>ºúè¡Y†fšE<:;ù*#Ú`ÛþIù&囔ϹGM̹»µèÖ¢[‹Šù§ë«¬þ16h_ }öâ~ñ¢Ç‹/z\|=¢ë‡]?ìúáüÛóoÏ¿-Îçä¨Ã„/&|1á Û:X?>«º€ €²¥Ò–J[*‰˜'{¢ô)èSÐGüùÆúëo¬wn ±Dè+¢š„ö"9¢1ûì”;SîL¹#"´ÄU¸–-ÿZþ¶msVpXü—â¿ÿÅÞvöÌÞ3{ÏìÄUÀÞ ¦"’·þÉ®¯º¾êúÊö'=šz4õhúªé«¦¯š&® "®³×;ëGì&ýœŒ;ÙÊY-|íA¶ÙâÉãWïr½Ëõ.;÷wç¨×Q¯£^ööxjé §6$}w=Þõx—ˆ“ ,T°PÁ¤Û;ÝU ÌÛÛﱿý}ìo®e@ê"&RÙÃØ‡±cÅݱΠ¥¬ÃWgµ6þK<"Uܱ—ôö‹ûƒ“ÞþÓËN/;½LÜ?í¬Úæ¼–óZÎkÖmsV,æâµ·É/&¿˜ü"q5±÷Åq—¹õ6í=ìWˆØ±1bcB÷~±üÅòËÇ?û¯éuN¦­XÜÿíÝÄ»‰w“¤·Çú‹ Iÿ­~aø…áùê@âˆÐÔz&]çrvvvî;a…¸ qþåÈZ¿ûquR 00jî•»Wî^¹€²eÊfOfˆ.ºlhÒÛˆeO:‹x@tâq¯žW¬W¬WlòÕvõ{«ß[ýž³à•ÅV[YÌÞvj<ªñ¨„n3þ‡Kÿ²ï—}¿ì³Þæ_¡…þjïç§žŸz~êù„¶AÌjo› 5\Ôp‘sÏÉ´ß­u·ÖÝZâ‘ãÎmUåèÊÑ•£“FНt”X[bm‰µ¶Ûï;µïÔ¾S“²}ñjW'ñð|gE³½W÷^Ý{µí^JÍ(5£ÔŒ8·8·87®q@j!&R˜åWÌìhÑ2kˬ-³nøzÃ×¾¾òèÊ£+ž}>öùXñ¨ØÃµ×>\[ÌœjoÞVë¢îþ~÷÷»¿OJËím?rVä¬ÈY9åx”ã‘õß×ö¨íQÛãçÜ?çþ9÷­q·ÆÝ'f6"H#r`ÐÀ AŽ„7">t¼¢>ö‚+k"ž³üŠyvŸ¬}²öÉZ.Ú¿hÿ¢ýâ~Ç©­M¯“Ÿo~¾ùùæö¶#æ'~Ùþeû—íßfèÜй¡síÝÇ,Žˆí«ªM¯6½ÚtÛWÕù¸ÎÇu>Nh¿†Å ‹“³ÿ&®ò]òÿûÿÖì½*)-lôM£o}ó_çd¯ ^þÓý?ÝÿÓýÌÌ33ÏÌ÷F‹ymwœÙqfÇ1'®#¿;â~îÄý¾‹ßk{[^^oy½åõwÔÄ9,æ0Ž¿ýâËbëã§ŽŸ:~JÌáýèÄ£NˆP‹‡ç;R{pO(1纽½êt¨Ó¡N\é€ÔBL ¤‚yïÏ{Þûñ?¾UÌöêxˆ(B‘øÃëX×r{[.ç]λœ·õßô™ßg~Ÿù"æ‰ñ?pXh7²ÝÈv#oyO¥§ÒS‰›­×´^ÓzML³˜f1ÍÙ²ˆÞ“ãQ[â>B{[Á¿ã[ûrû—Û¿Ün»ñ{¯šðÅ„/&|aïËâ¾UÇÛP£m¶5ÚÚý÷±úX}œ’pÊlÍ‘mþW¸þ¦Î›:onß ¾ù¿Yìçç&fÚŽ›m´YÐfAâÚÿUàW_Úï6Ó±LÇ2%®&ñß.¾T!bÝ„Öß‘:‡ï ß¾7)ïáâË"ö¶/¾Pƒ €ÔBL ¤¨ëo¬¿±Þúa¤ÖòË?.ÿ8ñXÔD†nqnqnñ‡SîL¹3åNrÄc‚¸ïUÓWM_5u|/Ÿ–ù´Ì§eìmSÌêÈv¢>ú4êSG¢ß×5_×|]3quHè<Ç Ý~ü¶¸#Ù‘-‹£ðIÿOúÒßv;ÓWN_9}¥½íÈEä"r{mØÜrsËÍ-éËßá‡ÿnï>é¤ÌþëÈ9™º[sü·¦l»²íʶ±zB÷ÕõU×W]_ÙÛ²˜û9q-·¾ÛÛöNtqv%nË_¨_¨_¨öÚ<9xrðäD¾ÉºÅ¹Å¹Åÿ~bl'n'â«-öÞÉ­ïE檤<`` E}cùÆòÅ^,±*Ϫ<«ò$=6xÑïE¿ýìí¥PÁB L¾X<þ4¡Ûßµiצ]›ìmSÄ„Žl§×¶^Ûzm³·’KJ.)¹D<<6)uñ¶žŸØ¹ÁaØ­°[a·ìm­séÎ¥;—vdËâNÇøÜmo;âŽg÷`÷`÷à¤Ìÿj}w¯½ 'ål7G,“ž¸½XÏ✔ßkw=Þõx—xH¸í6ƒ~ú!臤5xÛkóée§—^–”š/´tÒÒIö¶ß¡u‡ÖZ'ýÖÞC§“þµIAL ¤q·\ñ_ŠÿRüÛÿ“W|PñAÅ"VtÖ·½»íÝmïÚ‹@Älš Ýæÿx€íÇu>®óqâZ{!àBÀ…€¤ÄobîÞ<»òìʳËÞÖ-_·|ÝrgÝ™gû˜ng‡—³_Î~ÙîÖÄÜÆŽlÇzn]kM=šz4uäÎV—Z]juÉnÜâÜâÜâß‚˜ËÖ^_¬¿‘¸£Ö`ñøtG*iϹŽç:žëèÜ–+¹”\J.{[ßc|ñ=’R‘ÚÛ¾˜Ã;)¿›Ö¿A“_üÿ—•ÅV[Y,éïcæ™7fž½^è§õÓúi®}@Ê#&RˆõÝ–öyêÜG†Šû€í=þwÙÐeC— Mèã™f}>ëóYŸ'®ÖŒN\ˆµóÀÎ;Ø{­W¯ ^ă[Uá·žo=ßzŠ(49‚Ãøï’¼’ñJÆ+ãßB½Ëõ.×û—$¹í´¶ÓÚNs¤ ‹ZüÓâŸìµáÄo'~;ñ[ü[ˆÿa¿I™ýבs2u·æÈ6E$™”í'ýwÇVü³ 'îÝÚõsl‰Ù]ÿ]}ÉŠ%+–¬°×‹Ð¹¡sCçò h å)dÞûóÞŸ÷¾s›ìˆÆ£j<ÊvÖó†:¾µä{Œ­#Ûÿµ«L¬2±Š½×Í24ËÐ,Éqd™8q[¶~̲­C6Ù8ÄÞöfx˜áa{3ïZ? 7þ6œvüÙñöÚ0ïù¼çóžÛÝŽ[œ[œ[ál…³ÎfûZq¯ö³Ïf<›‘”ú§õØú>rשÃЗC_}ÿ ÐIisÝûuï×½ooûž5=kzÖtýètÃ×¾Þðµ½^X¿3pR00BÚl7²ÝÈä{ä©=ÖóÅZ ܸ#pGB·æÈì¿IimRB¬&½›ônÒÛÞk×n^»yíæäcÖÏY?gýœä­ÛlkX̰˜a1ö¶¿íé¶§ÛžÚ{íþðÇÇÛfï^äOË|ZæÓ2ö¶c½[â« I¯Z€¯<ºòèÊ#W«CóêÍ«7¯nok–:–:–:Iimü·µoоAû%ýëÎõkç_;ÿÚÙ^›[¾nùºåk` å)Ä¿ÿ>Ù]†hOB{ÿ6o¬¿±þÆú¤T))!VåèÊÑ•£ãXqr„1b6å䯞¼zòêI{۬ѶFÛmím_ÜñlûªÒcK-=6¡-ä7ÈoŸ½»xŸ¬}²öÉ¿ÌIüÃÁþpÐ^û¿Ýòí–o·¸Ú¯)?:ñèÄ£I?Ûr1+¹½­õ:êuÔ+)­½{5öjBßµò…æ Í*þ<»þìú³ë‘F¤ùtÉÓ%O—¤ü»úáÚ‡k®m¯µ¾º¯î«síR00BÊô-Ó·L_× €Ëy—ó.çÐ^Ä¿Í7Þo¼ßx'¥JI ±Š/z¼èq{¯½ÓáN‡;’ãÈÞî»ÿíþÉ å=Ë{–÷´Ý¦x¼³ÒUÿžý{öï™Ð6l{wÛ»ÛÞÿîLÛW .9¸äà’ö^¥ÝÐnh7€Åƒ²“~:·åÅ)þKñ_’2ÿ´#ùòDâˆG—'÷»ú¥Â— _*l¯ ¥f”šQjF€GL ¤OúÒÿ“þ®{ÅzÅzÅ&´És&}û¹Nä:‘넽׾è÷¢ß‹~ÉqdÅci“¯2ƒ ²·e©¢TQªhýóñ‡R‰›½UÌ(œóZÎk9¯ÙnsôªÑ«F¯²Ý¦ßb¿Å~‹“oößä8'S!vçî%ÿ¸üãò³·5{_;Hœ[ãn»õϾrdÌ‘1GFg½Ë‰{p“£Í‚xt¿½½{4õhêÑ”kò€ €€"B/× €E{Ú W€ ´/о@û”€_¶Ùþeûä«ÌÆ!‡lboËÓWN_9}¥õ^VT^QyEå¹c8cŽŒ92&åNèZ­f»eë‡o‹Ÿ|û0öa¬½0OÌÖì¬ú'Ç^Äýåö¶öºæëš¯k&ÇoÓ© §6œÚ`{^9á+/¼2xepnÍ_5}ÕôUS{{_˜àÚ¤<`` …3ŠÅ {QAjÍa™P®Çÿí˜f1Íbš%GMîÖº[ën­ä«Œ˜YÙÞ–[hQ Eë½tlرadž¶?Y³qÍÆ5'¥%3Bf„̱ג?¯ýyíÏâ.q_²ã¡µëœ“À‚¸{ÕÞÖî•»Wî^¹”|Ï™÷|ÞóyÏ›Wo^½yõøïNv\ÒÛ&ê`oûž5=kz֌†€€bý0ÒøÃ3WæÊpõÑÕGWmïµ'÷œÜsrOrÔDÌ6šÜ•©ø âƒŠl·,î{³/‹¥PÁB ´ýɉU&V™X%)í9ÔéP§CìõqUžUyVå±xmé§õÓúi`W€Åüµö¶v¾ùùæç›»Î»P»‘íF¶éx0lý<†¤´DÔÁÞ^ÄWR¸ö)˜H!MÛ4mÓ´½¨àH…#ŽTpý^¸rüåö/·¹ÝÞk×n^»yífçFnÂOuªûSÝä®Ì÷!îCÜím?úzôõèëQŸF}õ©½Ÿ‘‹ÈEä"Ii˜ g+œ­ð¿Ì{j}çqË×-_·|ܳÿ&Ç9I,TÙYeg•ö¶&¾ àjïNÖ³qWˆ«WáÔd̼1óÆÌKÊQ88ðàÀƒím_Ì͵HyÀÀ@ ±¾ÿÒÖ¶§Ûžn{êú½på8xrðäàÉö^k :·&ã†>nxrW&þ˜ù»nßuû®›½Í».ﺼ뜻vÉß%—üöx+fDNîÙ“ãœ$¾P¿P¿PímmïĽ÷Ntåw*1çwü5©úcÕ«þ˜”£°göžÙ{fÛÛ~ë5­×´^õHyÀÀ@ ÙqfÇ™gìEí{µïÕ¾—s¡ë»¯ï¾¾[<ÙvÑnh7´ ݦ+Àû[ìo±¿…½×zeðÊà•AēΪð[Ï·žo=ãŸ{ØY•¹ÝÿvÿÛýím¿ÇÑG{µ÷¯Ÿ–ù´Ì§eœÕë°[a·ÂnÙÛ׊Ê+*¯¨lï_­gvV{€“c/c§Œ2vн­­[¾nùºå‰k§ø²‹øº†íâÜGµÇO¼x|zR¶oý\[Ö_ á ¤$`` …Ü+w¯Ü½r¹Ãs‡ç·ý?yÎk9¯å¼æÜ¨ÀÞ=Ç92æÈ˜#£hOB·éÊðßá‡ÿþIÿOúb7(]?gýœõsœUá}ƒö Ú7È‘9GµG{æ-±¶ÄÚkí]!yCò†äuVKÄ âŸ÷ÔÞ¿‘F¤Iìúð÷Ÿ}ÿÙ÷ŸÙÛÚ¢ý‹ö/ÚŸ¸-”GÊ#e{[žübò‹É/œU™G'xt"ùà…‡ZxÈÞö—×[^oy=` å)ªûÅî»_´ôÚwjß©I fx˜áa†‚>} úØî¥Ö@k %nË® ý{öïÙ¿§½-”\RrIÉ%Ioí뚯k¾®)æøLÉxø…á†_Èž@Ç2Ët,“s[býø\GˆÇP?û|ìó±Îý"N޽ˆY~ímmh–¡Y†fIÜ–ç=Ÿ÷|Þs{[nôM£o}ã¬ÊüöÝoßýö]ü€NÊö­ë`Ëúþc®}@J"&RÔ &˜T#±›¸í¿júªé«¦Í«7¯Þ¼º½ío©´¥Ò–J®9wûñWB›m´Y”6^5zÕèUŽÇŸÎ:¶½»íÝmï:¾_¯X¯X¯Xñ¨jçžÉŽÌ|l­i›¦mš¶IŽß©” €WÉ´‹‡¥»»»Ûn­fãšk6NÜ–×>\ûpíø[›¸ÔÛ²þJ­A~ƒüù%eûÖu°&ê&Þ¹ê)˜HÝîv»Ûí®½X"Ç£r<ú'\q‹s‹ssd›²=Èö [×»~ØõC{[w¬Š»W×r×€…øï´N\ ü¢ß‹~/ú%4úunÈw·ÖÝZwk‰‡x;²ß®¯º¾êú*9ÎaKKKÇ+³ÿ&Ç9ÿÖît¸ÓáNWû­I¾½ˆØÞÞ#러}²öÉÚoÔ-Î-έôØÒcKMŽ;õEtÿÆBÄÆˆ·ÑwëG÷[_ÁáJ¤`` Ü/x¿àý‚ŽÄfâ!¥Ë†.ºlèée§—^&fºA`ä¬ÈY‘³æøÎñã[¨`¡‚…ìn3׉\'rø=çï9ÏéʳuÖöcšÅ4‹iæø=²âÏG*©p¤‚8:O—<]òtÉùæç›Ÿo¾tÒÒIK'UŽ®]9Úv Í5kÔ¬QÊ„|BõÑÕGWíHïÄÝäÉцg3žÍx6#_h¾Ð|¡Ž´$|oøÞð½®Û›GYµuÔÖQ[Å#ÖÅn¬¿±þÆúÔý­I¾½Ì6sØÌañ¨‰Ûòêg«Ÿ­~›­¿è°nùºåë–‹ßGñ(êåÑ•GW‰³kúÊé+§¯óaÇ¿eñœ¤TÛ:<¶õŸîÿéþŸî<üH-ÀÀ@ª±ž™5ùˆû‰7Ù8dã¤i%ytRTÙYeg•"LÉØñ»¯ž¼zòêÉä ¢Z¾nùºåëÔšý79Îÿ>þ}üû8÷ï´‹/ØÛæüÛóoÏ¿¸í‹‡i·ÌÚ2kˬÙSxh³x^BR*cÝw[gfž™yf&0Z€ €€TvvüÙñgÇ'GÔQЧ OAŸmO·=ÝöÔY­M[°ppàÁ:·¶Õ¦W›^mº¸û0%-ì<°óÀÎñï±Ò•JW*]Iî³wá¡…‡Š¿%âéäkƒs+ÿUàW_[ç’í6;—î\ºsé¤l_ÜgŸ2ÑïêêjìÕØ«±W“^ë¾[óÕ}u_뺀 €— ¨+þž\þqùÇ%.äzîq´ÇÑGÅÃiÓJÈ”ÜÛ·¾O×z–å„ÞK=üÂð Ã/X¯”©Œ5qÿbü382âȈ#É}¢õŽöOž<9ùZâÜÊ[Y`aêù©ç§ž·Ý¦õÖ“Ôt·8·87±ï&ÞM¼›8+ô­íQÛ£¶‡øÂ„u•’ÞZëYŠ­M;<íð´ÃÜû ¤.``Àåˆ.ÅÿÕ{*=•žJ@Ù€²eEä æ(3þVˆ«W!®cÃŽ ;6\²bÉŠ%+þ ý+ô¯Pâ‡øÝwkÜ­"öÏÿü÷Ïs-‹{¦ÝƒÝƒÝƒEm›ônÒ»Iï¼!yCò&G žÜ\§µi«n/Û¿lÿ²½hs£o}Óè›2}Ëô-ÓW<ÎZ„”A?ýôC×»~ØõCsÿ¾\Î~9ûe»!«~Z?­ŸvÚάÂ`ë;w+¸Up«à&fìïâX3ŠÅ ñû+ŽÅ¼÷ç½?ï}Û¯&8«F¤iDÚû‚ˆõSx§R 00f¤ä=¦T˜Ú"þs#½U Õ¥V—Z]²­Ã ¿A~ƒüR¦&®ð8¸äà’ƒKÚîýËí_nÿr;¿)€+ &ÿîM»6íÚdo®ñôŠ¿è÷¢ß‹~âé ¶uØ;qïĽùÊà € €ÀÿðÖó­ç[ÏjÓ«M¯6ÝöS…ímÿkû_殀è£mßýûø÷ñï#^Íy¸``àmO·=ÝöÔöS…­;´îÐÚÜ÷¿Z÷ÑÚÎ;ì<À½¿€ë &Žq‹s‹s«Ñ¶FÛm­?Uȳ+Ï®<»d{íA6óuZôKôѺ׵ükù×òçÞ_ÀÕ€PßQßQß±ýláÛ-ßnùv‹ùî…¾rúÊé+mû«>V«¹÷p5ÀÀ Áº_ì~±ûEëÏ<šz4õhj¦@ô~Áûï´î—ÐSé©ôT8×DL ìÖ¸[ãn³ý„áë_—øº„9ú(úbÝ»‚>} úÜî»ÿíþÜû ¸&``Hë笟³~Žõ' îÁîÁîÁi=oþqùÇåÿ¯{ãC6!ú\00H’¾SûNí;Õús†1óÆÌ3/íöhôªÑ«F¯²îQÿžý{öïɱ\00H’'kŸ¬}²V|ÂPË¿–-ÿúÇê«,-Þ){5öjìUëö·ÌÚ2kˬÖ}䈮Œ˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ þ‡áðò[*-‘©´H¥å`*-‡R|‰J¥åp*-GRi9šJËï©´K¥%:•–ã©´œH¥ådŠ/§Ri9JË™TZΦÒòG*-çRi9ŸJË…TZ.¦Òr)•–Ë©´\IñåÏTZ®¦Òr-•–ë©´ÜH¥å¯TZn¦Òr+•–Û©´ÜI¥%&•–»©´ÜKñå~*-Riy˜JKl*-Riù;•–Ç©´‘îk‡êx°Dµe¿M8VÞgǧ!}÷*‹–õôÛkA>A>AŽü÷hX{ߦ%²žû½Ã¼Z—“#îud-ö.ZâH›EïDO9âÖ½õyëóÖ'tkèÖЭŽ\ E{ôȵjKßYÞ•WÄíZTÕ¹q¯Cë½Q ƒªŠ6ˆö8ÒrÑGÑ_Ž;¤·‘W‘CMóv,ï—wVέ;“#îud-ö.ZÂÈ yÅ/—{þU=ʵòí,ï€ a££¦Âõ«BØè¨…¢ ¢=Œ¼tÀ€4fÓéM§7vä¿As¶œñþ°jàz»R+ôµ·­-t¤/¢×}H‹bÚÆ´i02`dÀÈÿñ0ç}åZºŽúlÍBÿ.q[¢fù¦Bèko½%jV¯h›hgü}ý}çs¼JÕê4¼] ߥ+ÃR+ôµ·­-d䌼þy˜ó”’ß”kéûÉ”Ík” 5Ë…®_å†FÍmídä…Ä!¤¯ÿ~ý÷ë¿Gùòåÿz†¾ô-YüéÃF=BêísµÐ×nܨGH½}¢åñ÷NT@Tƒ³\_ôÑDÿáÈÇÍJ‰en~«\(îu`-ÚìHïD8ÀL#¯"{š\èp½Fµ¥îÊ$W }í†ÁÕ–º+“DËy@úyU4Æ7^æ–V®\b-ÚÌÈ E piφ=ölXsÿæþÍýãÿ/Αã­õ˜VB_»3oý«ÿÃø{*ª!*îIZ!­VÄÿ~þu»ÞíK½z‘í·Î v¥­è×z-Ú/úEM87 ­¼|—L«ðãÌ´õÑù¿Ì¼dZ…g2ò€ô0ò*Þ¤Õ‹ÞíkÞZ1ð·Îi÷Ê%Ú/úÂÈ Ž ¸¨§]Ÿv}ÚÕ’ÿ$ÿIöþCÓ³Uù¡E?yV¸wi=úµ^‹‰ÞÙ뻨Œ¨g ¸Ž]™veÚ•)þ¹QyPµ9i7ôµ·ýŠ¿ï¢>œ'¶F^…Õ/ÿÙ›š3—×?—Ö£ßÿú0}æòÚáçDïy€ùF^•æ~u`y™®\b-úÅÈ ñ#¸œ—ù_晿öžÚ{jï±÷Ÿ˜¥Së].w=îF¿.AuÌýþ×úF¿.AuDOíÕATITŒ3RWüß=wÿ"ïŒ÷oØ­Ö©l¾è×z-ú(úËwÒ ­¼Ê|ÞýìøãÕÃæGí1ßèÿ¬«‡ÍÚ#zÊÈ ÒúÈ+Çú<¹óΨžc~Ëݪi¯\aaQQ¢¢¿Œ¼`‹àJââºÌì2³‹Ý‡qm¯Ó,¯ïÓ†¾vÖ¢×öj"*&ªÇI)/þ§ªN(WÈ]~´IëT¿¾¹£_ëµè¯è;3T@Zy•Ï;ìüÜræþèÜv-zÍÈ ÒâÈ+ߨ’]ʪ±eÙ,­Sú¹r‰þо3ò‚5`€ ñ ñ ñ´ûè’^Íê HoѯõZTÀ^}Dõ8‹ %Å´iÓ6þè÷é·áÝI?ѯõZô=þXÔs \gäUþêÈ.ó¥·è÷¿bà«#»ÌÄÈ ÒÊÈKÄŸ5|ÿgx·ôyå}?fä•Þ\BDψž=íýeCåF{* MÏѯõZTÃ^­D%9£ ¹½õyëóÖ'`dÀÈ€‘öøœÞîúÿn`{…5õä¼€Ôyù´ØiFþôýZ¯E5y€+¼ÄÓÛ]¿ñß lï¡ÐŒ¼Ò`@*‹ÕbµXÍÞ zjÿ•¥¯úÚ®EeìÕMT•³ ’OèÖЭ¡[í½§‡¹~77°½Š‰zr^@j¼Jdû²W¿ñ|tn»•aä®9òJsý&nnà´8òÚ½u÷ÖÝÿëé¦o˜¾áA£4â· q€©¬ÿ¥þ—ú_²ýïHÍC…÷~RöM‡¾ƒ·÷Ú®EeD•l«'ªÊÙÉáŠ×¯+^ö†ÓFýåAÕæ÷Ú[‹úØ«ž¨-ç¤äÈËý§²•+g«eYýþÁ_ùÐÜv-*#ªÄÈ \gäUiîW–q²·õI+#¯7­Þ´zÓÊ^k ƒ‡j~ý=ô÷P{—ö›ºz×ÙLÐÿZTÉ^ E…9ÓÀiîÆÝ»x4ðhàQÛwݯÛõn_ê¯#kQ+ÛŠÚŠ:sº@ÊŒ¼ª]°how>(ÿwS]°howF^à #¯âMZ½èÝžk“#kQ+×yYßû?Â`ÇRCù¸òqå}FûŒöm{!_? Ñ Jõ w_‹ŠýË ^£}FûŒÕ椀¤ _¾4|©½è³›£ 'Üud-je¯’¢ÎœoÜ#/ŸJ®OŸÈ‡ã ˜¸Ò€ëÓ'2ò€ÔyÕüyùÞˆÑ\•Y‹Z¹þÈKº"ÜÍî0ÂàøR¶GÛ£íù—y§v»OÊSîm‘¾{Ïë:¾Õ³­ª¨6g$‰GœGœG± Å.»`ûN«”Xææ·ŠX7¡kQ7ÛzŠ:‹šsê@rŒ¼rô<êu°ÖÕÕ“µæÃñ<úêêɇZ‹ê1ò€”yU4Æ7^æÆõ(¡kQ·´2ò" v`@ÊŠŽ‹Ž‹öùÀçŸl/Õ‡¦|ùµÝÄ­EõþåÛèø|àó¨<' $NäâÈÅ‘‹mßc«î+×Òýpœ%*4È@7ÁkKThŸ¨¡mmEÍ9÷ 9F^•Mñ ‹åñÄ­Eõy@J޼òM)ùM¹–ÃÆF…r%JðºbØØ¨PQô5ò" N `@Š:å}Êû”·í…Ù·…gˆ{¸;ýºÕ%ÊMäúN¿nAuE%m+,*ω˜10c`FÛwרÏÖ,ôïB”›”µ¨á¿ÌJ•10c`FÎ=pîÈ+߇%>öà¶(j?ˆ'rí¶(j¿¨$#/H™‘—ï'S6¯YÈ5()kQô;ò" N(`@Šêw¬ß±~Çl/ƺw«Õ>%ÄMúZTҶ¢òœP7³ÜÌr3‹íûj¡h¹VÅ ŽjTœ7IëÁQ킊‹zÚÖYÔŸóœ5òªÔö«BßàCð¤¯E%y@r¼r¹ç_åÑ# HXã¨v\}’´.Ö8ª¨gZy;‚Bž­y¶æÙ{à׃ûæ K|›ôµ¨¤½:‹£ÀÙŽ[³$fIŒí;ê–¾³¼+¯H­Ðô|óŸóÔzeÝž´‹zÚÖYÔŸóœ5òª5wÕ˜ƒùÜ óÏ]5æ`FF^Ü#¯rí†|;˛뎳֢žfyÛC H!Õ#ªGT·½ÜϨy·l#‚[ç®EUm«-Žg#8äaÜø‡ÁÁÁ¶ï¨¶iÝë7p8­ÇÀ¢ž¶=õÇ‚S’2ò*Y§]‰ÁŸñÁ·s×¢ªŒ¼ ùF^5¶.›«uçŠã¬µ¨§YG^„ÁÖ€)dÈ !ƒ† ²½Äžÿ¹Ãµ€œD¶Î]‹ªÚV[ÎFpD̈˜1#lßK›õ«ÝÈsgêÆ¥æ €ÅZÔÖ¶_âXpN@RF^~ug-û™мUeäÉ1ò*°ÅwKíF\k’c-jkî‘a00 ùÕ‹«WÏÞeõ͸¾c!²uîZTÕ^ÍÅáÄ€øík³¯Í¾6¶ï¢[3ÏZ[Y%N޵¨­m¿Ä±àœ€¤Œ¼jé«ó<ÎGÞN~´¾:ÿÁ㌼ 9F^åF¹6k-ךdyô$>Wƒ 9IDATè!×f­M?#¯ô’ݽû÷îß»o{ítÌç¯0ÂÚä[‹ ÛV^ÎLˆßˆõ#ÖXoû.z#÷nKŠÀɱµµí—8œ“¸‘W¡÷k×löv'ßZT˜‘8wäU=ûüf»-\e’c-j›>G^é' &$»ÃYg9œÅö¹~b£‘•ºN\zk\×õužÌ©9¯lö6 Êl/\­ÒÏ÷óÝÏšóR£LßüWò¾Ó@+úsç!ykwò6îì®Õ«éʰ¨°måÅáÌ€ø]PtAѶ÷ô vÍøX¦uµk îØ°é¯FÅŒÂõrKùBó<ÎaTŽöþнØÄ*½F—Úw¿ t´^M× €Emmû%Žç$$näåSeÀƒé³\îÞÙ?WO<ÔÊ{Kÿzßt/°ÞwYír¹¦|r»àÇ9¦åËó8ïâb+ÊüíÝytUå¹?ð¢ýµµÞ*„)@PfdH˜a2*b•AAÄQÔ xQ( @*ˆA­u­”I¡ˆiˆE±ÚªÕJK­­¨HëpÈýã¥ë—®ÃÉM !;'ŸÏYk/V8'y÷³ßuÞ<û›}ö‚¦µ}ë‚ 2æÞuÛSó¢|=TXçP¶WÏe+ÌÏŒÚÊ•öøÕwÞ5=es×ïôË©Óµé ­’kü²v§:O…•«áÙ{~øÃÞørγ‘þ‹e+ÌÏÔy%v, ÜåN̘;1v±|µ`Ä9=nBPºõÝ¡gtÍ:%µöÙ5{W/¥½yþ­×»Ñ €C…cÇŽˆ™ ÏW;¿ÚùÕÎØ÷Ï.'¦îH~8 Ai¼¸öÚZÓk +~åjþ«F…µ>yí=Öcm4càPçØ‘‡ãb~”¶óêüáì ŒÎIçîksÜzSƒÒ¿›5¹äWê¶«žœóÛhžFÖy”UçUwtË©;"—žvúŽ‹J»r5/øñOÇ‹r ê¬ó / Pz`êØò£ïÙØ7£b#ÒO¾t^¿ý­®¯7«öoèZ<œ|CíÖ þÑûŠÔËò=ç©nɯ®qf[žûäìý]¿7ó‹Ì”V‹Â5Áÿù‘›Q €C…c+Žˆ™ ·ñë·¿ßþ~±ïŸSN•ߢk”àà¦ìKž9íögÏZüƒ.[ù·yO¥çNJ9¡ù5ªU±zÿ¢Ï<ØpçÐì7¢‡:ÇîW8.æ'@i;¯ÌüÅ›6ÿ::§›þ®û”Ç\~ÒˆšÇ5ŸtΕ—íï0æ†zKfuÚwkÝÜW[õ=~Ú¥5Ÿl0ý”ü¢û’1jîÇOîŽÚ ôPa@Yu^MöŸ9oT~tÞç›÷úæeÂØjœ[ëäÚ!ÜíxÃM³î;ÐùîY™¿¸¶Ýþ©s¬LùvçͽÿýqÖYÕWV1}ÀmÝÍ8ÔYçu˜™™a°€r7({Pö ìØEñË—÷>ý³ŠHC¬{è¸VßV}Æë7Ž|ºçðxáîa>啺WÖšÍ8T8vÌመ™ñ¼óô;O¿ótìûgÎ Ó_n—Í8ioRvõ5›;,™•‘žSô®ÀáßOôùïìN#£çàPçØq†ãb~”¶óêÙèþ”}¢p¢¹ý®{ïCú¯Æ Iٶܘµ´0üåEž¨S»½VníOŠîQä>H³Ñý);úè¼Êªój½`ì²é/GèJÙ-¯OëÆÖ&ïòËg®‰·*…¯Ô¹¼Ù‰­^òʶ¡Î:¯âUÞ0X @¹kóa›Û|»Ü5îóþÕ*6"ýÍôoîöìä}é·¶h;gf´é_’+zcCâh^*;ÎpDÌL€xvÛ=n÷¸Ø÷ϧ4¿Zú†hÀcÞòF“¼’ºE_5ð²žkfE-uŽ­8.æ'@i;¯¬ãøûη¢p¢ù”÷³ÞtèCªOÝÝç™! KrZ¼è¾Ô_Сmæ¶ÈF?þ¿ï|KçPVW»Snž_-:ïóIêÞToe[§Í3ïÈM.ÉÊn^å+€Cu^%W¹Âà €«På¾?þâþ}¢šå~Óvܨì¾Ù{{êòèÀ¡Âf@YÙrOÎ% €Ÿûäg×wý^I^»aÆ¢×»œòï4~¶vë¨]êl¾”•¬ÌÜ{ ž‰Â‰æ:Ûš·k38Œªèµ¿ÿÇ=ƒ[/ùpË3Þ»ûçO·kîüý¿ú"r§Ñ3sï)xÆL(+^¿ñ®œK¢ó>_K‡_wŸÆVï”¶÷¥¿ÓaÁ /íÛóÏÌØ94Êwù-~êl¾ëV¯[½nµ€*!š›üñ·ÆNíûè–šg÷ȸïïd?Ñ~É-u»kÕbøímNl4éÔSj?^óºÊµGf@YÙöé²Ý]×F3Þ›·vm¯wKòÚ?5úåÀ¬‡[Å¢‡:›oe%’¼fžüÅEGÕõôy;×̬¼'Í‹¿R€£Ññ©éË"tÇ÷Îíï¨óó¯“r’Oª?ºè8k7iô_ÍV5~i@µá]Úßð¶t2ÿ‚_õ¨,+W¨³ùvl|¹êËU_®P%Dç à]ÏûC÷㆜Ørï)w$í­Ñ°úšxcî´»áÅÉÍ.þ í®&ó³G®HhQ¾ø‹ñ/Þøë JMí¼,ÜùÞÀUè àíÇ{xxxxT•G³Ïš}Öì³Øe/:÷®»$éO5¶…Qµ?©Á—uÞþb÷V­»¬}lð³§¿ÝnÔ”¬q_yù£Ù]«þ8øü-ÿyÚýß§Î+Ç=€Ã13=<<<â=r“r“r“bß?£|à’_¼çŸkföê^Uów5«þ~Ôàx÷63=<<<ެóŠÂ=€{,_vs^›¢£ê6raÆú÷$Žs`—‡‡‡Ç‘u^Q»pl œU=÷ä‚“;÷“Ÿü¼W«œ‹î¾îO§<›5øÌ§kœ[ëäÚE÷¥Í]zÊŒç+×=€ÍÌxõ7®¿qýãÜøãJý†çW¡{Pu Ê”=(;vñû²Ãå½Oÿ¬b#ÒAZÌhøxϘ·ÓÞm’w°á¸uÙoë¾9êüK{æE?Žg8"f&@<ï<ýÎÓï<ûþ™óÂô—Û¥Vö{?{ÖâtÙúï?{j•\w`ÔàPçí³IçÕ³Ñý);úDíC’;}ûæ÷·(É«º8:j+W؆:뼊‚ÛY¿˜õ‹Y¿(yèžìCߢÀ”»©¦˜z v!üèûc6öͨ؈4åÌZ÷'½Ƴó‚s¯Î<­$¯zö¬³^û÷©ó(À¡Â±ã GÄ̈ÛàõÛßo¿Ø÷Ï)§ŽÊoÑ5š𘷇¼Ñ$¯$¯¶pÀñº†W˜zÆMŽZêì4@Yu^™ù‹7mþuÔN‘‡;&–äUMþvæÄQ¹áUÉ‹ZÿµãcQ;*¬ó(«Î«Éþ3çÊÎû|ý±í–ùÝzHÛ›±»$Qn÷Ù95ž{î0ŸÉ±õ+ÔYçu˜™YiCߢÀ”»Ü‰¹s'Æ.НŒ8§Çí‘¶XQÉaàe=×6ÌŠÚµ¿¡¶±5Çœ8²Î+µó„ý³æF⣒׬ؗ¿8v„Í—Ÿsðò':¤_?{q~úu·ízèû­ŸûåMgÔÊlØ¡Qá¡ûÖ­^Ã!Ѽsp¨°Î  l;¯žËV<˜Ÿ…÷ùwœ÷Æ„ÿøSÚfÃÏ*ó“öNÛ}Ï=ŸõÛG;tL™>æg×7ŸtΕ—í¯±§v^Ý«Â3m<ýÞs ¢‡Úê¼/ô-J @¹ûð£?úð£ØÅò‚—S¿Ý8·b#ÒzŽùAŸ—Z«·§Î·K¾Ì¿1áü{ÎoúJÝ+kÍ.úõ3‡µhÚðÚèÀ¡Â±ãGÄÌ(Þ5\óÈ5ľ‹¾[kݦÞ¢oß°üŠ®®Er«¤Ë‹_ÅÚ5<íüºµöæ­]ÛëݨÀ¡¶±cÇœ8²ÎëÔïöê1èoQ»Wbø0ç’ô_áî‰í§Oëµèõh^A*¬ó(ÛΫ[õƒÖmŠÂû|/–¯|á¡ä­m®ëtYÉφë†{$ýlÇóŸFmå µ­šWb‡¾E €(} ûö·|~søë³U±AiÉ­ïg^Û*?«Mãîõ§‡{‡mßwš|Ý`î’y}ïH[õMÛq£²,:þ7Yëô¤åW\ÒaM³¢ý†ªÆ½R¹oaß¾&&@ñ6Û8lã°ØwÑÕÇÏ}¸ÓsQ €Ã×ÿ/úꬋš o¶­QßZ›ëü¼vF»ÓŸoûBòù·¿xÅòÖ]þµýùnýn‹Zô¶¡¶±5Çœ8šÎ«çóÔË%j1pë[ÇŽ›~W¸·bÒgõ:6øCø¨ÌpÒ¼éäÁÍ/ü}·w}ôL£¨:?tÕóÔËEçPWÚ´I{ç>¹•ëíKîšñÿêÔqHµ‡4º¿ù5έuríŒ:—7;±Õ«)›»~§_Nê?'ö¹ó΢Ÿ{µõ+Ô¶êt^U'ô-J À12éªIWMº*v)ýã“çïÍJŠBhZüÇ8Çûßh~øs¨jlµÃQ0Jbß5û®ÙwMì{é ñ½4\…¸4^ˆ[Ú¯Ggj[óp,ÌI€£é¼2úÌÍyrL4cÔâOŽGóÔù¡»÷™›óä@yt^ V¥¯ê5ÀÊUÛPÛÄfè[”€c$¯[^·¼n±ËêœÙ=>h3 jje߆ªÆV;³ D>.ü¸ðã”9)sRsWÚ>µuL¿Ó£¦V®m¨glCýñ0%ަójÙ{D‹‰gGùdte܆ªê¼Ê¯óê¾:gÞÖ1Vœ²Ú†z&jç%ô-J À1òùÊÏW~¾2ÞBûõÄqµ³¯Üý6T2^ÃQ0Jnñ¾Åûï‹}G]5nnÛNË·eµ õŒ­s¨¿yPVWÏy+®Ë¯æôw|øó¼×åWÓy”wç•6bÒsÛZwÊìßGLºcnÛD꼄¾ñ€8¦Æ¿<þåñ/Ç.ºÏ·:¶ëÄ·G¿ •Œ­p¨¼PZïðÞ ïû¾zêî”±5WN,Ñ¿¹øö¨¶ Fôoê[çPó ¬:¯ŽÃo:õ¾ Ný6TRçPÞWÍäz+RÆf5É=£`„Õ稶MrÏ(êYÙ;/¡oI€8¦^kûZÛ×óWfég5œŸÜ»ðýñ÷ï#Ä=Âíûã/îß'T2¶Â¡òf À‘É®–]-û0Wùœ½rQæh!îÑlC ckjnî”mçU÷û-~ÐöʬÌÜ{ žu*ü·™¹÷<*©ó86Wzý[_¹Èt4ÛPÃÊÛy }KK À±µ»pwáîÔï¥~/õ{±KòÎ[Ͻ9³½(÷ȶ¡z±U Õ•7ŽÌŽ{wÜ»ãÞØ÷Ø.Ó†$¿X¸©`Iÿ Qn©·› –ôÏ5Œ­m¨¹¹PW§Þšš{À©ð#Û†ê鼎eçU÷Ö–?I’Õ!÷ú‚%V¢Ro;ä^_°$Ô°ru^Bߣ! l]¿uýÖõ±Ës‹uÉ·ÔN;ØdÜúì7º%߆ЅêÅV5TÛ¬8*)…)…)ÍÞjöV³·bßi·´È9)c…@·´ÛP·Øz†:‡š›zåÑyÕº²á®Æù=ÿòÀÌç9-^Šûþþå™;Ï ÕÓyûΫöÏÈ9ÉzTÚm¨[e鼄¾eE @EhWØ®°]ê´Ôi©ÓbìG& ¸ªc?±nÉ·¡b‡ù ôi©ÓR§…j›tGoûÒíK·/×p~þ^Þ´Ó§ˆuK² µŠWÉPgó  ¼;¯ÔŽþ:k†Óâ%߆Šé¼*¶óêñä² yÓ¬J%Ù†ZE¿óú–0æ¥%/-yiI¼%ü½öµíý¸p·øm¨R¼† ›ieæƒÂ ?ÈÞ•½+{Wì»îÍ#.yÚWÂÝ’lC­s÷©]Ù»²w…:›nǦóêvýÂ{6Œqмøm¨’Î WóC¿¸l¤µ©$ÛP«èw^ëV¯[½nµÐ·l €¨`WüéŠ?]ñ§Ãü5ßÎFê·ùæüqWe¯ôÆnCeB•b«ªjv”‡=÷4ÞÓ8^;º­ß²þ]ïñÆÛ†úÄ«^¨­9p,;¯ä'ÚtêtrÏM|7ÿ'Êó±Ï›ønþ3¡J:/€èt^çÝô›eý­Sñ¶¡>•¥óúfè7C¿*ô-[`*Ø­¶Øo¿mXæý­þ"î݆ÊÄ«[¨ªÙP~–¬^²zIÜ¿P~·Áºçzw÷݆šÄ«X¨§yPQW‹“ϽtüN—ÇnCet^Ñ켺ÕX0dÝsV«ÿøÔŠ †¬{®2v^E¯ú=0‘wIÞ%y—ÄûÕä¬ïxµÐ7lC5âÕ*TÒŒ(oS¦LÍšš55kêa®¦úqÙ5>úçc[/è×Oôêj[«PÃPOó  b;¯ÔáW^0»žSç‡îø;üÊ f×ÓyD¹óªñHíZufw_•3wëV®P‡P`"d~Ãù ç7Œ×`¯½tpnç U9ú ˆWŸP=³àXÚ7|ßð}Ãã½3w™žvjò¯?»cûŧ7©šÑoØ÷P‡xU 54—¢ÓyµûËÔÑ ®ªÊ'ÐCt^•¥óª{mËÑi§ö˜pߟ·_\5W®°ï¡:/0Q’U˜U˜5úÎÑw޾3Þ/+¿ì=¨Núôªý†½ŽW“P±P=“àØÛýÆî7v¿Q| \Õ®û[|ôêfþD³ójWgòç¥U¹è·Îä?ÎKÓyTÆÎ+ÄŸUíjà°¿ÅG¿:¯ªI @ä|YïËz_Öëµ¾×ú^ëãýâ²ô¶¾ï¤ýµðÝñ£û÷NØè÷Ýñ£û÷{¯¡J¡bf@ÅÚ¼|óòÍËã½c‡@® ÷ûP+s úWësƼ~ã+YÝr¬OØèÝr¬{ªó¨ìWøäªpoà°ñ>ðYç…€ˆúì¢Ï.úì¢Ì[2oɼ%Þ/1— mwuÓúŸ7º¬ÁéÙ‰ý†= {oßCeB•Ì€èX{ÜÚãÖW½XÛú-ëßõîÄ‹~Ã~¿ï¡>æ @åê¼ è×îìozܹ¬×ö7ê3ï\Ökû›aït^‰×yuœwÓo–õO¼è7ì—΋⠀ˆ´Ï'>ùóɃ3gÎ,þך߾rÞ3™Wöè7ìEñ{ª*c†DSñ“Ü<ⲑ§}õÅÉ/\xúÚÊú†ñ‡})~ýí9@bt^é‹ooÿЕýÔyØ @U輚úÅe#{ü}ù•/\X‰ÿhéï˯|á°/:/JB @%ðõ¿¾þ××ÿº6ãÚŒk3Šÿçê/Ó[6ÿìãcç÷ÝXYBß0Ú0òâ÷.T T숾âïPUÔ–9'e¬¨\ÑosIöΧ¯ój²~à[çÿµ{×¥É[n©4wIìº4yË-aä:/€ªÙyuØvã9'U®è7ŒYçEi €¨dûýc¿ì÷%ù¥çîÕYh;åã.cçô]¹Ð·ËØ9}׆–d_Â^;ú•Ѿáû†ïž55kjÖÔâßí»lL’übÁÙ+eŽ.\U0·z„BßUsû§‡±…q¿/aþ›‰ÝyÖsTÿ)#º§/ýÁ–É‘ }Ó—þ`Ëä0B€Î+¨{kËŸ¤ I¯ëã+e¥å^]07BëWZîÕsÃØÂ8u^0•ÒÛ¯¿ýúÛ¯§öOíŸÚ¿$müä‘ég¶8ñÍ—ÎÿiÏw**ô ?=Œ¤$c{öÔ¨ì¦L=˜ºdõ’ÕKV—d8uwÊØš+V›Û¶Óò ‹úw©€ÐwCÁ¢þ]ÂÂxJ2ò°aw€ªÖy5ÙyfQí2êÌMZ½¦¢N‡ŸF¢óÐy¯fr½)cÓFLºcnÛ¬ö¹Ó UÀúÕ>wZÁ¢0†0GO @%öMî7¹ßäæ6ÏmžÛ¼z)Ý6*óV{ûüy¿Êü \îæûüy¿Êü ü”ÒŽ-ìQØ;G ñìi¼§ñžÆÙ»²weï*ùê0h|¯ ׬>~îÞ{ï• îýrÙÆ½á{†ï~VÉÇö%ì—ã  ó*ªEõsÇ¿9}Ñí-šQ.wó]t{ˇf„Ÿ¢óàè;¯«ÒWõ6mÒÞ¹w[²ð³ .Û•+|ÏðýÃÏÒyQÀ$ˆýŸîÿtÿ§3Íl4³Qõ£0üÛ­ÿØhèœ{zhsæ# øIdz7þî¬v™ð|“¡£» Ûð•ð¿á™áUGósÃÈÃ^8šUcé*Ü_¸ûÒíK·/möV³·š½ud+H—Sw$?<åÔQù-ºæ¼0ýåv©Oÿh~µô [îɹ$cöO—íîº6ü;|=<':áè„£â–Æ-[JÍÈüBo†Þ ½|6ølðÙ£ûî?º?±|bùÄòÔ €Ìï´ÿiÿÓþÁ+‚W¯8úè裣’6&mLÚHÍÈüNä;‘ïD¾àžÁ=ƒ{†X‡X‡XS'²Šc…>V8Ø!Ø!Ø!Ä'Ä'ć: -€OäMó7Íß4?±ðÄ ýúׯýÚmÛ·ùÓ‰ïß3¾g¶ÝRtKÑÛën¯»½Ž:^^—}]öuÙÒ!¥CJϘ=cöŒÙ5ÔXP#F°­ ´*Ъg‹ž-z¶ØþxûãíïV»[ín5ê@z‰lÙ0²¡ h“ßN~;ùm•IU&U™”ö¬pTá¨ÂQ½u½u½u»ÿÜýçî?ïﺿëþ.ê@zy9øåà—ƒå¼r^9ï/-iùKKÇ®Ž]»¦}+>»øìâ³ûï_¼ñ}Íö5Û×ìá·¿}ø-u ½<Ÿô|ÒóI:Q'êÄÑ—F_}ÉÞÑÞÑÞ1í#X©B¥ •*4¸ïྃû†††=nñ¸ÅãÔ9ÉâÍÉ7'ߜܷ?nœWw¯î^Ýó&£ƒG¾d{Éö’-ç€)¢‚¢‚¢‚vÛ=n÷¸º³êΪ;ës`}&úLô¹VìZ±kÅ8/LñrçË/wn Ù²5Äu¦ëL×™Ÿk›4=hzPØ­°[a·8/LñìÚ³kÏ®m¸¿áþ†ûŽ;;vþ\#د‘¿Fþ><|xøpÎ S<ùöÉ·O¾]ufÕ™UgÊå*—«\®O?vY4·hnÑ|aÎ…9æ¼wåÞ•{W8/> Ã)8gpÎàœÔ >/` Ý„‡‡‡‡‡·n7Ü.¦TЦ MA›­'·žÜzòðNx'pÖè…õ ë֯߰~Ãú Ëœ#˜Uw«îVÝÿê÷W¿¿úÅœ‹9s޳@ïÊ–+[®lé1®Ç¸ã2çV¾wùÞå{ <x$nYܲ¸eœ5I1I1I1ç—Ÿ_~~y÷îÜ3çærÐå ËÁ÷ß:|+!_B¾„|œ:I{’ö$í9]÷tÝÓu[*-•–JæÁj'ÔN¨ ìWö+ûÝÝÝ8u202'` Mî ¸3àÎß)¾S|§¤n2j“¯È×…võÊíô¦ôÙùçÝ7:¼ØiÛÔ©j]­ÖÕߪ÷|¶Ô­tó)ZÓæ`Ï–Ý\om,ì}¶rãÉÃj=©0¢é½rï­Óô«ð5+׬\³2æjÌÕ˜«œM »Ñ‡¾>×}®û\OÝRv^ѽ{{[¹”(3eáµú~޽võlº©êº‡­Ö°ÖŠûèjNWì|¾¬Y(hWË®ëý½]Nø³æ-ûóÞgË·œ–lóÍ6ˆ ålÙÍ•ÜWr_ÉÝ(¬QX£°Ô!ö eÞ×·B»£e+/¾1ÚÙñÊîuól«Þ\¨á©ý¸êÇš ä—+GÔ̱0ÔuöÚ™“[¹Œw¶×R{§{jì,19-#Øni·´[Jè“Ð'¡gÈnB=C=C=Ýf»Ív›º1ıWñ¸"{8Vñ-¾ôšÇ]§¦Ýl¶¨Z%ѽõóýµÙ>j®–þx­Fì Ý]®^çâòýèÈê’ÝœzÓm»ŸŸ–,¨OPŸ >‰k×$®álÙÍÉ’'Kž,érÓå¦ËÍT^³q(^¸ÝÝÜK9·R¬Üæ.·—•©°½×èõ›+ÝüùȦüŠmP uýf¹}Å|vNo_Þ³~¿r6%ËV¯Z§HHê>×rºåtËéÂ^a¯°7itÒè¤ÑœMé…™0ðÑÞ,|³ðÍÂIu&Õ™Tç#b’“EYHKyÜpò¾º´“®nפ¤¾}½½Ó«Œ½ê?ÑËJYçã\Ói`«*ÇËÙ~ìTXúZúZúšó ˜·¨êQÕ£ª0"à#.2Ú¿Wdý¹žsucHçSõr¦ïön{ïVž~“֧ktèä2¸Ì¼äo¿ÁÑ%G—]ÂùÌÛ ¿~/üúÎê;«ïG,MïÚ±ªå¸uå&ŸrYsËioûz’’NžôöN¯òu‚Ú»áüŠ--Q}|÷y­ò”þˆ{øJ6*Ù¨d£ÓÛOo?½ó ˜·'ÅŸR¼ë·]¿íú­é£DÝÖ6OŠ7ÙdÛhqe1ü¶ïy÷zé;{™Ðkxƒ­AŽ-ž¹.ïø¾ÒRÍô}«^)¼RøÅ&›\lÂùÌÛƒŽ:>èèSÚ§´OiÓG‰ ~nÞ–S:öXðýä‘Uä•NzåJõêéUŽyR¨ê—¾Ý¾®pÉźqÎâ’éûVë‡Z?ÔúáúÐëC¯åüH;`dNÀÀGŽ Ž Ž5}B9/o=7‹—%{Ù4•¾_ÔM/[·©î³Õ>¬”•)ûì»Øw±ïâW?¼úáÕœqÀœè"u‘ºHÓG°ÅŽõï9õKl¸üs`Á¹ÚXÔ<Ô$g9/«¦ìs¿šýjö«ù:éuÒkN8`Vô>Ðû@oÓG°•ùÎÙýý #·=¤oÜkz).¬1Ó½DµÛÅ÷š²Ï£:ê<ªó»ïz¼ëÁÌÄã¤ÇIw´ßÑ~G{ÓG°u¢×+9×OŸkv¨b«<Õ½ª½²>iù³)û<%vJì”ØX×X×XWN;`&Ú$µIj³>x}ðú`“:ÖÉ"þ ÊýöÀ¾è”ƒ—GºF¥oÜkzé³<ÅÜV»Ê¶ð4eÏ+ò[‘ߊÄ?–Ó u€‘9ÿCBƒ„ ¦Í˜6cÚ S&ŽÛ{6™]åEŒmï랇>××ucå½ ]¯¹ßp©Êªr¹L9–A'‚NÑ€¬+öhìÑØ££žz6ê™)½~ï…æ-ª­ŽûÂÿ7¯r™m»íëÛ ÞÞ{œ.•>lʱœq~Äù´ ëz·çÝžw{úì{°ïÁÿqÁѦÀ®ü³þ~¾Ä¥zø¥ÇKyMù\¡¯±òúéÝ{ëÞîP­ñT_SF°kË®-»Æs‚,,º\t¹èrv~ØùáÿX ¨ðôBݤI?úÕØŸp«Ï¯“™mvéUGÙíH‹žå#¬ŸþcY\rqÉÅáÖáÖáÖ´ ëÒßÐb|‹ñ-ƧÜë­n”ÿÙ¢mï [œžNÍqùuõï>WèûÁòrõêýã÷Ìt:`—Pë‚åÿX}Á)Ô)Ô)4"wDîˆÜ´‹™0`Td·Èn‘Ý©}R{Z ÙÜucÔQÿ#HøÁ³²ó^s»ôe¸êâ^æy‘…Œ.=uÅÔSW$Å$Å$ÅÐZ€Ìæ‚íÛ ¶)`›ƒgÄV±Î¡¯±¢›ïn^WùóOÿþ üi'@ætüÕñWÇÿÇ·È=·›EUûÙüæ`jwÜìS>öÕ}V÷Y݇vdNÒéô å^Ü£ùê[•ÊfÝÐ×XÙwâÎJŽ·S>öm+·­Ü¶’v eÀÈœ€=¶~lýØ:åiŸ8öÇœ5ƘߗöäeìJ¯¼}#*O/ÛÅX=Œ7~ÜøqI‰I‰I‰´ 3¸[ën­»µRÁBtmGÕZ`Þ#Ø»5½›zöè”XéM¢±zøuú¯ÓN›2냮º>(åì\³ÍcêL2¿è7yù:FíÙð÷f½ê³m¬–oZ¾iù&Ú y„þúOè?)`Wžtú¥nM󞃽ÜÙ«]ƒeu ÚX;f¬6…o ßN›2c¥Ž•:V*ålØ^]—Wæý&/Çt>ZªÊE«‘åXT1Vûªì«²¯ m€1ÀÈœ€¤èÑ7¢oXõ±êcÕÇØTïüÉKÜò™÷—öÿ*·õmâ]uæH7»ŠçŒÕɲ·ËÞ.{Kû>¯—ÚKí¥–ò—öë»:O«{%ûŒ`‰‹úÜñŠcYý´ÝBcuòçæ?7ÿ¹™ö|^>>øø`Ê#سÜG˜wô›¼Œÿ縛ל>í•-m¬NööÜÛsoOÚðyÝ=x÷à]ã#Ø•üò×}äÜ}nýÙgkë_Ûóu‡ˆJÎ63ŒUŒPA¨ T ýŸ×uõºz]5ÖO‹­´9X¨ÞØ‹ÇöVýѼ£ßäåD«sªIOÔ;hcôGÕq!q!q´†€‘9#{³O²O²oëÑÖ£­‡Ñoîû:ù×­”¢_ƒröZ·7•Zý¿CØ!ì )Ÿ^B‹„ -<==õÐÛ‹|Û׋ʦ#ØÓ¾=½=Æ>¬1Î.ÖXý <x,¶|z±~±~±~ŽÅ‹93ÖC#>©?'ûD¿ÉËÄw'¼¿í×¶ýÞ²#þ<ñüùóçÏÓ–€Oïí ·ƒÞ²Ìi™Ó2§±úLééîñ<{ÎÁröiîµ¢ãÃJóm$cõö}Ø÷aßÓ–€O/²_d¿È~F£ß¶6n…ìÆß½vy.-³¶Ä ë]'ºNt¢($ ´. £ê}ª÷©ÞÆF0iÇ#kŒZÿu r¬'¯\.»¬\‹~à9£­W´^ÑzEÒͤ›I7i]@F“#åH9ÒØvbÎú·µ«ý&/ßnãY¡Dp±š k̯¨_Q¿¢´+àÓ8Ðþ@ûí`îèà6€yWò2ò”_©†ŒÕبÁ£L»>ÍK7/ݼÔXúòŸÇ.{ˆ~ÿëÙÀQ!嫿2Vc³6ÌÚ0kí €pz Ú´;h·¾gn¹uæÖ—_6~Ù˜šI`d;ñçãÏÇŸ·n;ÝvºáÐ{ù,m pÚ%ø$ø$øo ƒS‡ÙÎú=ë÷¬ßó'è m/X?¶µ3Ͼ¢§\mØæq­:Ɔãm^´yц–d„…Ç_xܰ߹ØYå,Ú:¡EŸ>^Û£R.ÿqlÕ·ú$c#X´O´O´- È“7OÞǼî;ï.q¹¨«aMn벭˶.´7 }kz®é¹¦ÆF°_ ~ü$˜Ö|¬±£ÆŽ;ʰOŽl¤ö»OÙ»—öíô­þÓo´è,ÕKËÖNø¶RÛ¾×g÷ÒñÆ›YøtáÀ‚ üd?«˜Cသ7”>rl|[¡ÖáOtŒ¯ûúy7,×Ëò ‹;xÊrÞ¨¼QyiÀÇòà7Ào€aŸºÖnׯuý”é’ãoýgû«pݸÝB¼Û±k^ ](ôeêçlŸÔŸ“G—xùÄ]ïœFŸ²ú.ô](­øX-ÂZ„µøÀýs÷êw tɺs°“-ۨݵû·ŽWK—®±´dˆeb±±…tÑÿ]ÿïúyÚ'úFìÑç+¯AF—²ÿ!þ‡øhÀÇrppøÀð.ªŸq¨ß½?K;´¯Õ©CYë %Ã+<-œÃ¢xQë}K.;¸P´£[ƒøbÇ›µ=®ÌÙ‰cΨvóc·ßçùgÇ¿j~Ùî„u+§r5,ŠT,´üoõÛ¯1¿ÝÖµû|³mcÏOO<Ú©ZŒ±,QMTUZ#}g„ÁÉÃ|Å%Å%Å•J%„\ûºwO÷Ï—†ÕëbY¯Jþ4Èlð®ø¦·«ŠxJV‘=Eö¡I¦KŒKŒKŒ3Ö÷ãFúÿíUÿõî¼}óyçwkb3»ø=í;u[›¹Æ­zÅk¾Èß/¿·)£ÜŒ]uÂ*nü4GºúwOÅ%·á>H¤RÚ$`ºøAñƒâ^ÐOì}b®×“Oç=™Ï;¿[“*ÛÿïöqÛ «÷WhZçlë˹뇈•>ðSOM<5‘6 ˜î}›÷mÞ·1ìMŧŠ.8 érßNÞu³âlô‚êØ 7}6Btý½üÙOô0ŽªÕ¯Ø}`%ƒ«¾W}¯úÒ&ÓEmڵݰ7Ù¶vr(|.C¢Ð|WòVÏ_Oèñk©µ;;êç½kŽSiS>¥ñêa!¥ŸäŸ–ÿZþê¦l¹qÅ¡‰¥µOרÚÎѺ¡á>Üýëî_wÿ¢MÙpæDL ³õÊó•ç+OÃÜôT¹—Öí2C\ú÷„–Ǫ—L¾o‹Ox”t¼ð{ƒN»L)£vmx(óÀOüzøzø}`Âstf´>£Á?lØ›zHNãKÏø”—§ëêL«8ÐpO>vk;Z7 ¯Zö¿FãÞåŽ[×[1¤aMçâÁ·i_óŽþïúOþÊMkWí”ÑÇ{g@×\î] th®¡¹†æ¢M¦»ýÍíoncØ›F—í~ЮӧŒ~§ëúwúðöq[û{Ââ«ÿwÎ6ÚÖñBÀïã 9í2¥ŒTß4<”qÇ{9bÇF·„üŒfÌŒ13ÆÐ&Ó]üöâ·¿5ìM¿Æ×½\érVœƒm¸ê}¨ríä[èÒÈa˜mã=o›ÅVë§¿ßWÿwßš'm'%åúGÞÝ*•ÑÇ{âB»UµéòöËÛ/oO›L2>d|Èø,þÜÆŸ³øsó-c/–ý¯þkkßÑb¿OžiµËçíwh÷Nõw7í3òq™iE:–È]Ð>ùëÇ·=Ù²j¨±íw*¹°½”üõ•îÕßX¬ýS‡•{ÔÛmó/Çõ×ÿ{òWvZ°ÈÚþA†/½i]ÍJø ˶uÛÖm[G›²àÌ/{†ÁD20[Ç?þûñß ;íÆVÞ*gŠX÷þ;…íX¼V‘ÚiùMw¦(÷­æ]Þè?ºD]¢Ž– ˜âð¢Ã‹/2ìGûW7ïš!—á÷ë‘ÃÃaÛà&ŽUNŽ©mUaq•pëoо0Ö£Mßr\3ÿm^ÕËo²[¸¢þ½½×¹4/³VqÓ˜Ÿ÷8¿.ÓWÿwý{õÛɸ,áÇ>ý¼vîIA§‚N’¢’¢’¢h™€)v$ìHØñ0RíøÇï5;dDüù¸ß?6ÛÏÎ_åàä˜>}*,®^©EJ#ØÇm_÷þÿ9[¹~ÿ™³e–'Ǭ;zÆó’á‘:D9D90va噕gVž1ìMg'ÿÔ©ÎYk¦/“omrîZj….ú7Üšþ_&–¯•Ïþ•þïUC­{X–Íèo‘Ñ~.ÔðOÃ#õ¶ò¶ò¶¢M¦›ýÍìofàGxC"wù)@~ºØõ+Ë€’¯ >ÒJ鯜{ù^èêÿÅð]úOþ.c¯œìyá™ëèâ—Jß,´EÿýâÒú{Ž©ùð§ÎÖ»þ]¹áRé›…¶è·“qðØ=džVõ2Üßݾ»}wÓ&ìƒ8kÉ>a00ÌÖ’SKN-9õ…¤æw:T×73Ä¥CòT=]îß_2úܲ,eŸåा}½½{ÞpzPúˆaÍ¿üåå//¡e¦˜ÒsJÏ)=?°T|×?ÜÿΈžkxwHÊLßrÐ- »îÕ¿KÿÔógu{þàq6åí$}Ú—=4½l¶¹¼‡õ,Ãã}÷&îM-0Å€N: èdØžžÓåðʈøsÃÕ©?nû¸íÉÓÙþ?s6Ïvÿ™³e–X_V¹V©qÑg†ÇFËLÑ.°]`»@Ã~ôú;¿e ;f­9Xä]?û†E>öB÷ƒºÕ¯o¥}ò%£3zf9¼K7ø±M¢M¢ -0EÝau‡ÕfØ&}*¹~Ÿ¾Ág÷k« WLü¯È30`E…(c®a ¬W¡J—–C _ÓmòÊÃçþ;…ª’ÛØÂ!½ªLyûÉ_ŸrÀœne‰+eª[±C’B’Bh™@v@œu™wL ³Õ1±cbÇDÃÎíþsž†k2CPÚì§òe¬Gê÷j\¯[í‹dõèW_®Ÿï]Ïå•aÍ_Œ¸q1‚– ˜Âã©ÇS§†ý(f¥ÿ7ž3¢ç^<ر™Û¤߸tˆ5,ÓrñqèÓjSÊ;èßÕno…ÄR'MßBòOVízùž=‚Íoâ>Äá¬áñÞ~uûÕíW´LÀö®ö®ö®†ý(¡ýñƒ^;3"ø¼xpÛ ·I ¾áìkX¦=nöS½¡ÿ™³õò°/’Ù¢_}9þg¿ïì[ïã;<î@ËRwñîßqcTßêÞvYk¦{“¿÷ÑØî[ê¿Iù]úפýÎã-~à’«ÌHÃÏ,Y*²-HÝVxU1©ÀãŒ>}^N?U¾“é‹9'/û^Ø);Æÿ»‡Ã‹.fÓ&®peï¦yJ”6=ÊM¾Wî.=Û”:’Ñ A;Æz6*žÇ°þßy½ózçE˲çLœ™_L ³eSÔ¦¨MÑü‚øRŸX!(M¾Wú'_ê¿ä×O(ݸDI«fk ^tr(á]äV§Ÿ+‰67ÖåòÚé _453ÀǽÛå®õذæwî ÜEËÒtññ]ßÞÞžŸw¼úØ‹€ÞËö´úYÿ®?~løÔy–éï]Ù£á"çÃŒ&#Ë ±ÎÑGz¸D+¥úîû <.x-HÝVÑ«ìÂÂñŸ+M{üßs¶ñóœ‹ë£åú Õ;”(iլ؆‚ìÖ¹Õé禵ln¬Ë5y¿K€þ9ÄŸòHw´œ3«jÃã ݺ1t#-HÝÖðZ™Ž%´Ìðñcç`‰Ö}‚¼®%ï¬ùn *ý-Ì\ãV½â¿ïª0¦ØÌ§?M¼âvÃÎU ÷¦ÝM»›v´L u#X5—V6V%2"òìj¿¼gEË:å;{—X÷J·˜R>¦´Éï¶-éx©°døÞŠ–u§X ÿ®¿òËôœå«}D8gZíòyÿ}xÇP÷ëÅ\2:n|`ثґ†õÿ0÷ÃÜsÓ2ì9guæ# »þ,¶¬ð•Ì‘¾ö»Ñpjò}+²¹àô¿™2ˆ4ž^®ˆUè½#]#ÜdÎ8<Ì7Ô½®ážôèП– ¤òâc§2JlÉŠí–Yž/ÜCÿ®}Wšï®öãðÞˆæm«­ÿ”— /=ï(º}`ûmŽÛ·9Ò2Ô`û7Ëe[4+À¯ƒÕZÿwÎV¸†©s677«Ð{GÝ|š#=Þi}žZÏ ÷äPãC5¦e©Á†^­6®¼}VœƒnA¿¤sïu.Íˬý§k«ñÕçž¿Ô!À­ þïúO¾ìóN¦µ«vú4ðáÒ­‚«4<Þ!Dh™@êF°Æk†/ý$£ãÏä÷ÝšòJ— M<Šÿ{°ûÆ^%J=3|o‰Æe6:|qiÓ÷Ä·Á²sþ]wÊÊ©\ ‹â½t§b ›Û‹X oîŹçÒ2ì9›“¬# »-––±~›"Òs_þôkA†{ØwxåŽeè¿fë_£?xWé]6"ùWñ¿„gÊ»ŸË=×4°3<º‰ &.˜¸€– ¤nû9·ó2 ³âÅÇ,< ®Ö¿ëèʶyjµ4ý½ú×ëßkífñ¾Ð·} òAÅnýëW7<ÞEà [4Œ– ¤nw¡× {笟ûr³û‡çlís”m°ÓãW¯ªô¯Ùñûžjëxw¨^6¢ÀùOýß9Û§¸øúóÝ'êFîíŸ;ÿÜùçNZ&ºì÷÷î>º¬ëËÝeš>¯b\à\›”/Téš¼çëfë«Uû”Gz6ÏONu>0 ¬X/°-HÝÖ®ÿ[;§O§\N©pi‚«Ö°vßî¶%ÿ]ü9‡åî#'*¥*ß6|}ò¥¡ým·þàXÄôÏÒ¿þß1­c‰Üí3:öÛ·ñ´ÃFì`»`»`Ö0²éLl®²Vœ#ót £õ8ë4¥ôìÌ‘تtõ¶ú½ªnýMÑ;Z7 ¯Z6ù—|Ãwé—ý8“À¯Ÿù=i8ö¤¯ÑáÕÙÍÈŠ ](0:ÿý».mí¸É-ð#îÇÝÚq“Û¿ 2'ßNÆé³àžõ=^ÐÞ€ô5¯éжY1>4pÉ’ÿÌÙ*µ(úbGë9sª–M¾eÃwýÓuiëês?gð‘Þ‹¼îþŠö¤¯µßyµtéšu`ýÚQ­ãíë–<ü±Çþ`K·õ}>Í‘^û¥sÁº‹io@úêÒiÇ Ó?oô«⯽TÇβé¿ß쪞WÀªW†…ÿþÀ×ð] UÉ¿Mÿ_µ>°Ìy¼éŸ¨½þ½É·“qÇØ¯ó®ÝNho€”íÚ´›È}VWþ¶lÁ̹l²é_æÿk*ßÈa˜mãÌv,oNÿ¼ºá{Ú¾&V«eaÿ:«/}l|[¡ÖaÓß{d[›=µ,õï-wÀ²”Etê.}š^¾´ëU¦ÁÚ¾•yÉqxÖ}°áÖ>ös»4j¶Ï¶qFiÄÕ¿­ëÐÞ€ôõ§£•—dÅ9Øã~=rx88[—XWÔBÿÞÊ/­v=øç?TÞr˦˩zkßÍêÝÀ³‹þïú׿&ù'>mÞã€ÇŠŒ>Ò°ð.íêýD{ÒWWa…ŦŸ>ôúÅ¡&.Ý«ÝlÝÒªmòý)ýÄå}‘Žý¼wÍq*­ÿc[H¾tŸo¶­qìiú§÷þk‹§Ã+ý{‹÷*]¸Ð””?+íå×=OœBho€”ÅîŠÝ»‹È™çà´”Y4kT5QD.IVmŠNá` ;Ⱥw»[Ù.-¾Wÿ®‡Zôpõ4ý½úgëß›|;Ü d-Y÷à´”YÌÿŸ9[…‹E§p0eÝ;€‡Ÿv­V~…þ]Õÿ,9È2$ê‚ß”†ÍSÞŽþ¿ºî/ia¹0uŸËÀ@æñ)ïžz¡¬kë&ù‡Ï/“¿ b¡å«ß‡¢{­{ü£Eñq«ÊöÔõ|g׊úOykå§Ôp+:WÿÊ®+WT¬Xï#ž°¢B”þ½É·ÃÀ€Ï+ݬ_?üɸ?†,ó<8½ž¬>Ó§ùBžög÷|ÕóUÏW´Lþð'u#XÖ}ðO‹*ùï%ÔÂ^>.ÝMïš²žï]þ½@ÐaZ¥ïlgôˆgìÀC¯½>ô:-“?üIÝ–uŸœ–2ùóƒ‹l.\ã?s¶Oý àI3&͘4ƒ–Éþ¤n˺ϮԱx­"µõïÚÞ­ÉÌ*ÏMßBòOÔßCü¹ž<7jnÔÜ(Z&ø“ºìÓ<xèˆ ºÌ*ý•sï"ßë?W¿ð²W®SmŽo{²eÕÐ`«84û£Ä¿ßþÚ6žU®üiÓßÛæÒLßò[ôï­²¶y¯K3:6ö àÛÛ[Z&ø“=Gà€\¹rQ3æ÷çฃãŽëûeß/û~izô«}6z0ðéï2¯ðg±e…¯d†ˆTyàÓ¤f=9úÇ—5s‡Gù^so`ú{÷kñk^ý94-¾¸ÈÐ̇‡ù†º×ýÀÿöúôèOËR7‚5ìT¦B‰-Yýî“nÅ'Ù>3ý½]+8–³ý÷À#D×ßËŸÍèïÒóŽ¢ÛÃãÝæ¸Íq›#-HÝÖ¹³\¶E³b¬<ø£ZÍzrôÊ15s‡GíŸìÞÀô÷î?¶ ÂælåËÿgΖQGz¼Óú<µžï¡Æ‡jLËR7‚ ½Zm\yû¬8+Ñɳàjý»N»´ŸPû¤éï=åÞ¾lí#“äÛɸ#=\ºUpõƒ†Ç"„!-HÝÖxͰ㥟d\ð9|Ÿ_ÙÛj}ùõõŸ¨ÿ»ÿ’­—Ýô¯I]øê¾±W‰RÏþ]“@ûñ¶ÕzÓßëÚúÇ¢Vÿ>¸~‘^÷m ftÜ©ØÂæö¢aý_œ{qL {ŽÀú°š1úàvæÖ™[gn5=ôÕ¿þÓ‡¾ÉÃlÙµ)jSÔ°ã%^êëóóF¤ukÛÜ-îùït|z¹"V¡¦¿wèÓjSÊ;èßë'9¯(S%³ÀǽÛå®õذæwî ÜEËR7qü·§¿ëÛÛÛ3k]| ú£ea×—n.PðVM¿üàÿXL>ØïFéú×ëßû÷„–Ǫ—Ìè#=\¢•R=ð÷qÁã‚ÇÑ2Ô`½Ê.,Ÿີ«öþÏœÍÍÍ*Ôô÷}Úeýæl>>ÿ™³eÔ‘îh9gVÕ2†Çº1tcèFZ&º¬áµ2KhY1n´¤¬Îêý»V5ðôrLïÊ 9·Nþ5£¿u®¸Ý°‡sUÃã½iwÓî¦-HÝVÍ¥•U‰Œ >ËÙW»[Ôòß›.ªÔyi9tlܱèª]Ó¸v›¼òpÅ—n.´¥HÛ ~©uêvµ’)¿ë—§·VóÔ¿^ÿÞî½W5¯x%£ïn|`ثґ†õÿ0÷ÃÜsÓ2ì9guY7ôMŽf«cbÇÄŽ‰†0Úýç< ×|ÞˆÔh´“â»ä¯~\V#´@T~-ÿý뵟øš;2Û"Õëç{×syõ_>F\Œ¸AËLáñÔã©ÇSÃ~³ÒÿÏ‹Yëâãû1½ÿð\l?«˜CáÓ·09¦¶U…ŸW±O±ð"_Åvòoå™”ÑG:¿‰û‡³†Ç{ûÕíW·_Ñ2Sػڻڻö£„öÇzíÌZ°ñ9[Jï’¿Zq¸Fh¨sþ3g[µ«æŽŒ>Òñ?û}gßÚpowxÜáqZ&º‹wÿöúQ}«{Ûe­9XòÙ”md‘¿-Šß²érªÞÚ”ßuӹ˰z}ô¯×¿wÊ“Ú#+Ïèøç.¹ÊŒ4<ÞÈR‘¥"KÑ2Ô`…W“ <ΈȳWÑõ9* ÿ~Ì´ü×òWÖéðF— éu¯íħ¡‹]¿*q¸ìàBÑÉ(åwy=T¨ôWÉïEÖ?™8£`ÇXÏFÅóÖÿ;¯w^ï¼h™@ö €³"ó}“#†ÙZrjÉ©%§ ;äÕùÕõý¼iä]?û†Eì–Yž/Üãßç£Då×òOè½Î¥y™µµèáêy²e»µ»îªÒtIÕ…¼«ô.‘<úýyóë2}3Û½¿ú²ç §¥?°€êË_^þòòZ&`Š)=§ôœÒÓ°Ýïú‡ûßYë⣱- ²«Z¼œXºõÝ~Ý^ןs¸U«KÕ•þíªüPö¯ä¯ÜéÑ´vÕNŸfÄk¶¹¼‡õ,ý}÷&îM-0Å€N: èdØžžÓåðÊZpä]YnXÄnYé1ÿ™³˜“BïumN–Y{àЂWÏ“-7,¬ÝuW•¹_V]8À»Cõ²ɣߟ÷´ÉûŸ9[Æi•k•}fx¼±a±a±a´LÀíÛ¶ûÀZ ¯¿ó[Ö°cÖšƒEþìÚðP5ÕúËÎÿõ\ö^5¶ÚÑ?ZHÿ­sÏÛf±ÕúZ[ÝÃÎ-ùú+®ûKZX.Ôo'£Ôrx!—o>°‚—M¢M¢ -0EÝau‡ÕfØ&}*¹~Ÿ¾‘g͇?u¶Þ¥ß¾e@É×éÿÞzïä;åþøØÒا‹[d×>¥réãçQ~êž*=¤5›+5­³¢KÞ’‹“¿²Ó‚EÖö2zñç©%®”©naôÇC!I!I!´L ; κÌ/ôMŽfëøïÇ?þ»açÜØÊûAåv™!(ÕïcâÏ‹l1}péyÓéAé#ú;ê2[ô›4¸o5ïòÆöÞ¨På!GTò³Ù¤¿3Ørv¡bõ×ÿûŸÿ4PyK¢uŸ ¯kŸæ[ç‰ íVÕn`x¤ËÛ/o¿¼=m0]Èøñ!ã {S›þ3þ,?=}ƒÏ¢{­{üãÓÀúòçö>u˜Pífë–VmK4.³¹Ð邊…–ÿ­þï®Ú·­ÖûÛnýÁ±È§‰~õeÏMëjV 0<¢më¶­Û¶Ž6 dÀ™_ö }“#’ùŠKŠKŠ+!”JxÇ×½ xºg¶5å/Ø™3ôM^îŠoz»ªhXÛ{Šì)²§M0]b\b\bœ±ÉGÜHÿ¿½êgΑ*ëŽx«÷T\rÖ¶T@*  M¦‹?(~ÑAzŸ˜ëõäÓÇÀéǦ¼Oú&/ç®"VúÀÿ5NM<5ñÔDÚ$`º÷mÞ·y߯°7ŸV(ºà€¤Ë};y×e–¾å˜ªÕ¯Ø} >¹ê{Õ÷ª/m0]Ôö¨íQÛ {“mk'‡Âç>e,šqeÊq†/ølPÖØÚÎѺáÞô×Ý¿îþE›²àÌ){†¾ÉÃÌÍ{?ïý¼÷†ÝX)òc|Í|™9LÍŠeÝxۊŇÖö“à'ÁO‚iÀÇ;j쨱£ ûÔéÈöGj¿cÌI·òu_?ï†åzY~aqǰ¶£òFåÊKk>–ß¿~ ûÔµv»~­ûëç €Í¯L¼|â®wNc_\ß…¾ }Jk>V‹°a- ûÔ½ú]ÝC˜;¥WïÑç+/£?Šÿ!þ‡øhÀÇrpp0ìSc.ªo1pf('ž íT-ÆèOÕD5Q¥5ÙpæAè›0Ì\س°gaÏ »tËIv­KVâ+wz•†uÿ³~ôž5ìY~‡—)ÁÈ“^åí)¾­ë½4¬gOOOÚ!:Gúé¤ÿ.>÷ˆ·û›à6½ÊK¥·{¸}àιÎe:—é\†v¤ÎÁþûüÀ6WªWÊáKæNéUoÓî‡Zø¶>dàCÒÔÙòtËÓ-øÙfàŒ­é½tv.{Z¯mV©Ÿa=Oï?½ÿôþ´C »!þ¼}!†¹›4!i‚¥¯¥¯¥¯a'øg÷Ÿêá‹wÚ˹ êýPéÝžzrgÛmwh†@ê$ÌI˜“0ÇØ4åe•^v Æ1þ¤Ãƒçj´;lXǾ?ôý¡ïi‡@êÄZÅZÅZÁÞtÒF7¼E|›öÒo›GGÃ>*•ŽJ´C uÞÔ|SóMMc#X¬•MÏ(fPi/[YÛÍ-Ùʰ†ÏÇž=K;RçEØ‹°aÆF°)-.é\Ïߦ½,S¹òˆ"Xï¦pS¸)Ðì†øÓ#ô50²…M÷7Ýßtß°ÃOô¯egŸÈï´”oV=óR_;¿v~íL Òbi륭—¶6ì_ ¦º?p,Ì(”–òU»^KèŒ`ïg½Ÿõ~-H‹ií§µŸÖÞ°­÷˜²Ý…8MåãR‡x”0ºtêÐø¡ñCi@Z ~3øÍà7†ýkÏÆf7ªu`•–2|žï~÷J†uk1Âb„ňħ‰OŸÒ´èìÔÙ©³“a/ëõÓúÁ•Îߦ¥t$°§óúuè8Ðq`ÒÛ¤·Ioi@vCüiú~,`d Ñ!Ñ!Ñ!Ɔ€§z\ôØÉ—ðÔ•+~kØÐÙæ <.³lÌ2Úv/ƽ÷bœ±,ª†_£†‹RWÎäv¯Rƒ,ðh5×j®mH»ˆ£G#Ž}Bíô#öž‰rSWŽŒïvÖ®¨a­®òZåµÊ‹¶¤ÝÍ]7wÝÜel‹›ã/{y2›J]Ù³¦ÓÖÒë kugÁw¤íiw¡ù…æšö²¢ÎV ™²çr×WD¹©++7x\ìóÛ¦þ3õŸ©´= {"Î8„¾iAŒldÞ¾yûæíûÀ†ZW}Tî,_Â?¶|™»—eƒ¡ÆÙˆÙ³#fÓê€ô2nñ¸Åãöµ©¿×Þ_á#ÒÇ–_t^ÿ²±ì…Å ‹´: ½øÛúÛúÛöµÅ F½v] ûÚÆ¶Þ+·gNõ±åå¯:†¸06‚Å4ŽiÓ˜V¤ƒø¤ø¤x7/7/7/þæ[wYH…D¹[öm³ãŽc¨ÑõWÂãÃãÃiz@öDœ¾}Ó 0²‘(Ï(Ï(OcÄ…/:lu³â ¹éåÀêUärx¶ß¨‡£ŽzH{Ò×Ó½O÷>Ýkl ;Ò¥Y½ÖŒK¦—TúÝF4¬É99æä˜ÃìHg÷®Ü»rìA‡ WõëëšTþ}r±wu¯žµŽY}`¶âüŠó+ÎÓÞ€ôu=ðzàõ@c#سC=Ý<ž2³2¥LlÙç˜×}çÝ%.u5¬Ém]¶uÙÖ…ö¤¯sMÏ5=×ÔØö‹ç©¨j¶Äº¦”“G]ôteQ«h›à kòàšƒk®¡½ÙpÚúf.q"ÛY¿gýžõ{ ‹bºBÛ ÖmíßÌ3/ç)—G¶y\«ŽÑ;çÚ¼hó‚ûN€ ±ðøÂã ö;;«œE['´èÓÇk;cTÊå?Ž­úVŸdôÎ9ŸhŸhZ&ož¼yòfÃ~ç5°V¨U©$—“¼‹ñ¦\îŒüõlÕ©Fˆ±ˆaõ C òä5èwÑuœWi Íö¤˜¾þÞ^̲R.×Ì÷²qùÀ£7,{Zö´ì¿"~Eü Z:mí´µÓ.¦»Uôý¾¤F¸kJÙ|íØ²õ ëÐ9È9È9(ñNâÄ;´4 ;#N» ÝA»ƒvú¦/`d;ñçãÏÇŸ·n;Ývºáð1a^ÍKö§ùrn¬|±¹çë ¾›–oZ¾i9m È81cbÆÄŒ1Ö[Qï¬Ã@F*cå#‹îSêß6V{û÷ìß³m È8ÑÏ¢ŸE?3ÖW-Ÿø•ó9"^ceøˆýÖîåÕž È´1 ã¼t~éüÒÙXÜ>§É²*ï˜k+¯„t\×ÅXíj~ªù©æ´1 ã<òxäñÈÃXìöà~wñ+ûýµ»¾“—±Ú»|öòÙËgic€Ó.Á'Á'Á‡Ð7}#›ºt9èrÑàT‹<®ùø¢ž¼LèÒg ×.Ï¥eÖ–xaXcu¢ëD׉N…DÖd´S½Oõ>ÕÛØ&íøqd Q+y;Ö¿“W.—]V®EÖXë­W´^‘t3éfÒMZÑäH9RŽ46‚˜³þmí*ĽÉË·‚ÇxV(\¬fÁ,BëWÔ¯¨_QÚðih ýöÆF°‹?wtpÀ¼+yyʯTÃÆjlÔàQƒG ¦]ŸÆæ¥›—n^j¬?}ùÏc—=ĽÉË1Q!嫿2Vc³6ÌÚ0kí €pzI~0¡oÚ#[[voÙ½e÷ŒMæÎÿ©H;¾´'=éÛÃÛcä"כ哌ÕUDŸˆ>}hQÀ§4«Ô¬R³Jë•WŽtT×™,©PßÞü.9¯/SÃX]=÷}îûÜ—|J£šŒj2ª‰±^yûú¾Mî9‰~ÚôÚÙ¦¬ç¼R5ÕÕ뚯k¾®I‹>%¿üþñûÇX¯|øMwëú˜ƒÅîöäU¨þÄÒÅJ|aXK…ÞzWèÝ»˜w1ïbhQÀ'²>i}ÒzŸ’>%}JÁÆó®Z—èwb£s#ª¶>gŸßb“a-UÐUÐUÐÅ­‹[·Žf@™0²7û$û$û¶m=Ú] çʾNþu+eç¯î³×º½©ÔÂXý;„šðé%´Hh‘ÐÂÃÑÃÑÃÑhˆ²È·}½¨l:‚=íÛÓÛcìÃãìbÕϱÀcÇiKÀ§ëëëçX̱˜c1£?/ 8ø¤þœìý&¾;‘àým¿¶í÷–i¬~Ο?þüyÚðé½ôvÐÛA–9-sZæ4ÖCŸ)=Ý=žgÓµ£röiîµ¢ãÃJóm$cõö}Ø÷aßÓ–€O/²_d¿È~Æúf±¶6n…ìÆß>øø`Ê#سÜGdŸè7þŸãn^súD´[T¶´±:ÙÛsoϽ=i?Àçu÷à݃w`WòwÊ_÷‘s÷¹õd£»~mýk{¾îQÉÙf†ÑW*h?Àçu]½®^WÆÀ+mª7öâ±½UÌFwýZ«PMªx¢ÞAËc5Gû`ˆ™0ð¯ÇÖ­[§| RûcÎcÌüKûJ¯¼}#*O/ÛÅX=Œ7~ÜøqI‰I‰I‰´ 3¸[ën­»µRÁBtmGÕZ`Þ#Ø»5½›zöè”XéM¢±zøuú¯ÓN›2냮º>(åì\³ÍcêL2ïè÷uŒÚ³áïÍzÕg=ÚX=,ß´|ÓòM´ óý'ôŸÐRÁ®<éôKÝšæ={¹³W»Ëê´±(vÌX=l ß¾)œ6dÇJ+u¬TÊ#ذ½º:.¯ÌüY¿–ªrÑjd¹UŒÕþ*ûªì«B›` 02'`à¿Ü}u÷ÕÝW)OüãëX:)°oKoWsúÒ±ºÛ›ú¿ºŒ³*]´—±c?<~x|Rû¤öIíi-@fscÔQ7F¥<‚­úÁ³²ó^ó»ì®ú†¸×°i^¤D¡ÃÆŽ}ꊩ+¦®HŠIŠIâis@¦sÁö‚íÛ”G°ÍÁ3b«X›_ô{½ùîæu•ÿ1ÿô_à¿ÀŸvdNÇ_uü|‹Üs»YTµŸÍov¡vÁÍ>åc_ÝguŸÕ}h'@æ$=HRîÅ=š¯¾U©¬ùE¿}'î¬äx;åcß¶rÛÊm+i'RFŒÌ‰ø€···”§€u#lm‹÷¿w¬ëC÷ˆ¬þ¥}ïÒæÕ«ýžòñNµšj5Õ*iMÒš¤5´ 3»½ööÚÛkSîÑÍË”l½ñÑÃîç<òfõlk—Æ!UƦ|¼ógÌŸ1mÈü®Ö¿Zÿjý”{tÇ‘M&Ølz>Mh× XŽ~åí¸fݤU.Þÿã‡;Ž«W9Ò6€ÌïœÍ9›s6)÷èÞž.Ëü¹Ã¯Pþ¦¢gœK¥¤‚} xçÏ*#ص;¯vP©¨bûS>º/v¼Øñ‚öd-w"îDܱ-l[ضpÊ}|Ëw3«TqLŠ:©x7Ì*Ñï…á[#Ý\•__dIÊG4&hLÐÚµ„/_¾8¿ þšÜlpµ"Y+ú=]¢ý¨ÚGKn(<¡Pç”Nn!·[Ѐ¬åÚ‚k ®-0eëõÇÔŠ{³VôëÿÅ–KŽß™rtÇx| í€é€‘9ÿCBƒ„ ¦Í˜6cÚ S¦‰Û{6™]åEŒmï랇2Û×õ{º^s¿9àR•Uår™r,'‚N¢ YWìÑØ£±GG=õlÔ3SzýÞ Í[T[÷…ÿo^å2ÛvÛ×·A½‡=÷8]*}Ø”c9?âüˆó#h@ÖõnÏ»=ïöô=Ø÷`߃)÷÷‚6våŸõ÷ó%.ÕkÄ/=^ÊkJ¦[äùôî½uow¨Öxª¯)#صe×–][F²®èrÑå¢Ëu~Øùaç‡)÷÷’A…§ê&MúѯÆþ„[}ÖxÌls°K¯:ÊnGZô,aýôËâ’‹K.···¦ Y׫^ýðê‡ã[Œo1>å^ou£üÏm{oØâäðtjŽË¯«—©BßËÕ«÷ß3Óé€]B­ –ߦ|,N¡N¡N¡¹#rGä¦ øXÀÈœ€›ßdóòÖss°xY²—MƒQŸëëúqë¶1µÂ}¶Ú‡•²2eŸ}û.ö]¬ŸîsÆs¢‹ÔEê"MÁ;Ö¿ç¸'ÚÖ/±áòÏ5‚çjcQóP“œå¼¬^˜²Ïýjö«Ù¯æë¤×I¯9á€Y9Ðû@ï½MÁVüå;g÷÷ƒŽÜö\ð¹B_1py`™î%ªÝ.¾×”}ÕyTçQßõx×ã]Î8`&'=Nz¼£ýŽö;Ú›>‚­½^¹Èq·ýý~ú\s°C[å©îUí•õIËŸMÙç)±Sb§ÄƺƺƺrÚ3Ñ&©MR›õÁëƒ×›2ìd‘?ÿ…å~{`_tÊÁË#]£>Wôë³<ÅÜV»Ê¶ð4eÏ+ò[‘ߊÄ?–Ó u€‘9íÍÂ7 ß,œTgRIuLÿ_ödÑcÒÒc7œ¼¯.í¤«Û5}¿¢Ç^õŸèe¥¬óq®é4°U•ãåló$ékékékÎ/`Þ¢ªGUª>"`DÀˆÓÇGÛâ÷Ьÿ#wÃsΣn é|ª^ÎôÁÞmïÝÊÓOxÒút½“\—9ðƒWƒü ò78ºäè’£K8¿€y{á÷Âï…_ßY}gõeú áÚ±ªå¸uå&ŸrYsËioûzÒ7è} ön8ÿŸbKKTß}^«<¥ÝMß·’J6*ÙèôöÓÛOoçüæíIñ'ÅŸïúm×o»~kú(Q·µÍ“âM6Ù6Z\Y ¿í{Þ½^úÎÁ^&ôÞ`kc‹g®Ë;¾¯´ÔF3}ß*…W ¯~±ÉÅ&›p~óö ãƒŽ:ú”ö)íSÚôQ¢‚Ÿ›·å”Ž=|g?ydyEå£éôŽyR¨ê—¾Ý¾®pÉźqÎâ’éûVë‡Z?ÔúáúÐëC¯åüH;`dNÀ@šÜpgÀ¾S|§øNÉŸ*6ùŠ|]hW¯ÜNoJŸÞ}£Ã‹¶Mª¶ÑÕjíPý­zÏgKÍÑJ7Ÿ¢5mölÙÍõÖÆÂÞg+7ž<¬Ö“ #šÞ+÷Þºsþ4X³rÍÊ5+c®Æ\¹ÊÙ²›°~aýÂúù\÷¹îs=ucHÙyE÷ZìímåR¢Ì”…×êû9öÚճ馪è¶XÃZ+9]±óù²f¡ ]-K¸®÷÷vvy8áÏš·ìÏ{Ÿ-;ÜjpZF°Í6Ø| .4.4.”³ d7Wr_É}%w£°FaÂR7†Ø'”YXx_ß íŽ–­¼øÆhgÇ+»×ͳ­zOXp¡†§öãªk._®Q3W`ÄÂP×ÙkgNnå2nÜÙ^Kí쩱³Ää´Œ`»¥ÝÒn)¡OBŸ„>œM » õ õ õt›í6ÛmvêÆÇ^ÅãŠìàXÅ·løÒkwšþu³Ù¢j•D÷ÖÏkô×fû<¨¹Z>øãµ±‚Ztwm¸zgˆË÷£#«KvsêM·íR|~ZF° >A}‚ú$®I\“¸†³ d7'Kž,y²¤ËM—›.7SyÌÆ¡xáþuvs/åÜ:tJ±r›»Ü^V¦Âö^£×o®tóç#›v:lð+¶Aq(Ôõ›åöðÙ9½}yÏúuüÊÙ”,[½j"!©û\Ëé–Ó-§ {…½ÂÞ¤ÑI£“Fs6¤`dNÀ@º n7Ün¸]þL© MA›‚6[On=¹õä;áðNà¬ÐÓ‡Áý†õÖoXæÁ¬º[u·êþW¿¿úýÕ/æ\̹˜sœ5zW¶\ÙreKq=Æõ—9G°ò½Ë÷.ß;ðHà‘À#qËâ–Åñ|_II1I1I1ç—Ÿ_~~y÷îÜ3çærÐå ËÁ÷ß:|+!_B¾„|œ:I{’ö$í9]÷tÝÓu[*-•–JæÁj'ÔN¨ ìWö+ûÝÝÝ8u202'` C¼9ùæä›“ûãöÇíóêîÕÝ«ûçšìŽ<:ø’í%ÛK¶œ¦ˆ Š Š Ú=n÷¸ÝãêΪ;«î¬Ï5‚Mô™è3ÑçZ±kÅ®ã¼0ÅË/w¾Ü¹5dkÈÖ×™®3]g~®lzÐô éAa·Ân…Ýâ¼0ųkÏ®=»¶áþ†ûî;vvììØùs`¿FþùkdøððááÃ9/LñäÛ'ß>ùvÕ™UgV)—«\®r¹>ýØeÑÜ¢¹Eó…9æ\˜óÞ•{Wî]á¼ø4€‘9ŸÈ›æoš¿i~bቅ'þúõ¯_ÿúµÛ·n Òkšë{Æ÷Œï™-E·ÝRôöºÛën¯£Î¤—×e_—}]6¤tHéÒ3fϘ=cv5ÔH‡¬@«­ ´êÙ¢g‹ž-¶?Þþxûã»ÕîV»[:^"F6Œl¨hZÀä·“ßN~[eR•IU&¥}+U8ªpTo]o]oÝî?wÿ¹ûÏû»îﺿ‹:^^~9øå`9¯œWÎûKË_ZþÒÒ±«cWÇ®iÁŠÏ.>»øìþÅûï_|_³}Íö5{øíÃo~KH/Ï'=Ÿô|’NÔ‰:qô¥Ñ—F_²w´w´wLûVªP©B¥ î;¸ïà¾aaa[:áè„£â–Æ-[JÍÈüBo†Þ ½|6ølðÙ£ûî?º?±|bùÄòÔ €Ìï´ÿiÿÓþÁ+‚W¯8úè裣’6&mLÚHÍÈüNä;‘ïD¾àžÁ=ƒ{†X‡X‡XS'²Šc…>V8Ø!Ø!Ø!Ä'Ä'ć: -€ÀL€™ 3A f‚Ì0˜ `0À`&€ÀL€™ 3A f‚Ì0˜ `0À`&€ÀL€™ 3A f‚Ì0˜ `0À`&€ÀL€™ 3A f‚Ì0˜ `0À`&€ÀL€™ 3A f‚Ì0˜ `0À`&€ÀL€™ 3A f‚Ì0˜ `0À`&€ÀL€™ 3A f‚Ì0˜ `0À`&€ÀL€™ 3A f‚Ì0˜ `0À`&>iœ38gpÎümèsR`Èò€ÀLd»XÿïÁ_üEpŽàÁ9´D-QKÔ´-A‹Óâ´8-V‹Õbµ÷Ú{í½öN{§½ÓÞho´7Z´­EkQZ”¥Ej‘Z¤öJ{¥½Ò^h/´Úsí¹ö\{ª=ÕžjO´'Úí‘öH{¤=ÔjµÚív_»¯Ý×îjwµ»ÚíŽvG»­ÝÖnk·´[Ú--L Ó´Ú í†v]»®]×®jWµ«ÚíŠvE»¤]Ò.iµ‹ÚEí¼v^;¯…j¡Z¨vV;«ÕÎhg´3Ú)í”vJ;©ÔNjǵãÚqí˜vL;¦…h!ZˆvD;¢Ñ‚µ`-XS5US5ES4E“4I“4Q5QÓi:M§Ök‡µCÚ!íö·ö·ö·¤iAZ ¨jûµýÚ~mŸ¶OÛ§íÕöj{µ¿´¿´¿´ÝÚnm·¶SÛ©íÔvh;´Ú6m›¶MÛªmÕ¶j›µÍÚfm“¶IÛ¤mÔ6jµ Úmƒ¶N[§­ÓÖjkµµÚm¶F[¥­ÒVihhh+´Ú m¹¶\[®-Ó–iË´¥ÚRm©¶X[¬-Öi‹´EÚm¶@›¯Í׿k¿i¿i¿ió´yÚ<íWíWíWmŽ6G›£ÍÖfk³µ™ÚLm¦6C›¡ÍЦiÓ´iÚTmª6U›¬MÖ&k“´IÚ$m‚6A› ý¢ý¢ý¢ÓÆiã´±ÚXm¬6Z­ÖFi£´QÚm„6B® ׆kCµ¡ÚPmˆ6D¢ ÖkƒµÚ@m 6@  Ðúiý´~Z_­¯ÖWó×ü5­·Ö[ë­ùi~šŸÖKë¥õÒzh=´Zw­»Ö]ëªuÕºj¾š¯æ«uÖ:kµNZ'­“ÖQë¨uÔ~Ò~Ò~ÒÚkíµöZ[­­ÖVk£µÑÚh?j?j?j­µÖZk­¥ÖRk©µÐZh-´fZ3­™ÖTkª5ÕkµÆZ#­‘ÖHóÒ¼4/ÍSóÔ<µZ­æ¡yhZ}­¾V_«§ÕÓêiuµºZ]­ŽVG«£ÕÖjkµµšZM­¦VC«¡ÕÐ\5WÍU«¦UÓªiU´*Z­²VY«¬9kΚ³æ¤9iNšƒæ 9h•´JZ%­‚VA« Ùköš½f§ÙivZ9­œVN+«•ÕÊj¥µÒZiÍV³ÕlµRZ)­”VR+©•Ô¬4+ÍJ+¡•ÐJhÅ´bZ1ÍR³Ô,µ"Z­ˆVX+¬Ö i…´BZA­ VP˯å×òkù´|Z>íííí{í{í{í;í;í;-–GË£åÖrk¹µ\Z.-—öµöµöµ–SË©åÔ¾Ô¾Ô¾Ôrh9´j’š¤&© j‚š Æ«ñj¼«Æª±jŒ£Æ¨ïÔwê;õ­úV}«F«Ñj´úZ}­¾V#ÕH5R}¥¾R_©/Õ—êKõ¹ú\}®>SŸ©ÏÔ'êõ‰úX}¬>VªÕ‡j„¡F¨÷Õûê}õžzO½§ÞQï¨wÔp5\ Wo©·Ô[êMõ¦zS½¡ÞPo¨×ÕëêuõªzU½ª^Q¯¨WÔKê%õ’zQ½¨^T/¨Ô j¨ª†ªçÔsê9õŒzF=£žVO«§Õ“êIõ¤zB=¡žP©ÇÔcjˆ¢†¨GÔ#ê5X VƒU=EUTE•TI•TQUQÕ©:U§V«‡ÕCê!õú·ú·ú·¤©Aj ¨ªûÕýê~uŸºOݧîU÷ª{Õ¿Ô¿Ô¿ÔÝênu·ºSÝ©îTw¨;Ôê6u›ºMݪnU·ª›ÕÍêfu“ºIݤnT7ªÕ êuƒºN]§®SתkÕµêjuµºZ]¥®RW©+Õ•êJu…ºB]¡¨j€ºL]¦.S—¨KÔ%êbu±ºX]¤.R© Ôêu¾:_¯þ¦þ¦þ¦ÎSç©óÔ_Õ_Õ_Õ9êuŽ:K¥ÎRgª3Õ™êtuº:]¦NS§©SÔ)êu²:Y¬NT'ªÕ êu‚:^¯ŽWÇ©ãÔqêuŒ:F­ŽVG«#Õ‘êHu„:B¡S‡©ÃÔ¡êPu¨:X¬V©ƒÔAê@u :Pí¯öWû«ýÔ~j?µÚGí£ú«þª¿ú³ú³ú³ê§ú©~jOµ§ÚSí¡öP{¨ÝÔnj7µ«ÚUíªvQ»¨]ÔÎjgµ³ÚQí¨vT;¨Ôj{µ½Ú^m§¶SÛ©mÔ6jÕGõQ}ÔÖjkµµÚJm¥¶R[¨-Ôjsµ¹Ú\mª6U›ªMÔ&jµ‘ÚHm¤z«Þª·ê¥z©^jCµ¡ÚPm 6P¨õÕúj}Õ]uWÝÕºj]µ®ê¦º©njmµ¶Z[­¥ÖRk©5Ôj µºZ]­®VS«©ÕÔªjUµªZY­¬VV]TÕEuRT'ÕQuTÕJj%µ’ZQ­¨VTíU{Õ^µSíT;µœZN-§–U˪eÕÒjiµ´j«Úª¶j)µ”ZJ-©–TKªVª•j¥–PK¨%Ôbj1µ˜j©Zª–jQµ¨ZT-¬V «ª…j¡T ªÕjµ€šOͧæSóªyÕ¼ê÷ê÷ê÷êwêwêwj5šGÍ­æVs«¹Ô\j.õkõkõk5§šSÍ©~©~©~©æPs¨9”$%IIR”%A‰Wâ•x%V‰Ub•%F‰QÞ)ï”wÊ[å­òV‰V¢•håµòZy­D*‘J¤òJy¥¼R^(/”Êså¹ò\yª#Ÿ–O˧å“òIù¤|B>!ŸÉÇäcrˆ"‡ÈGä#ò9X–ƒeUVeU?È’,É’,Ê¢,Ê:Y'ëäÃòaù°|H>$’ÿ–ÿ–ÿ–ƒä 9H”å@y¿¼_Þ/ï“÷Éûä=òyü—ü—ü—¼KÞ%ï’wÊ;åòvy»¼]Þ&o“·É[ä-òy³¼YÞ,ÿ)ÿ)ÿ)o”7Êåõòzy½¼N^'¯“×Èkä5òjyµ¼ZþCþCþC^)¯”WÊËååòr9@ä¥òRy©¼D^"/‘É‹äEòBy¡¼Pž/Ï—ç˿˿˿Ëóäyò‹ÅÇâ#ñ‘øHŒ#Äñø@| Þï‰÷Ä»â]ñ®.†‹áâ-ñ–xK¼)ÞoŠ7Äâ ñºx]¼.^¯ŠWÅ+âñŠxI¼$^/ŠÅ‹âyñ¼x^ CÅPñ¬xV<+žψgÄSâ)ñ”xR<)ž‹ÇÅãâ1ñ˜xL<*ŠGÄ#âýÅ?ý×}ýÿäE=ADA<,‹ÿˆÿˆÿˆ‹‹‹ŃâA1P Åâñ€¸OÜ'î÷Š{Žâ_â_â_ânq·¸[Ü)îwŠ;Äâq›¸MÜ&n·Š[ÅÍâfq³¸IÜ$n7ŠÅâzq½¸^\'®׉kÄ5âqµ¸Z\-þ!þ!þ!®WŠ+Ååârq¹ ˆâRq©¸T\".—ˆ‹ÄEâ"q¡¸P\(Îç‹óÅßÅßÅßÅyâàø€ãFî¹{än¯}^û¼öUêX©c¥ŽE6Ù\ds…1ÆTÓàvƒÛ n}:ôéЧZˆ¢…èçcéµ#¿Uû­ÚoÕ’÷ôæ›7nÞ8}?dfÀÀÈÖfOž=yöääsã²ZY­¬¦ÿ;õ@y j•9_æ|™óæ1jyoôÞ轑ÈZäh9ZŽ®¦VS«©ié‡[nu¸UÚ÷':0:0:ÐØ§p¾È€ €M]™seΕ9†sãe«—­^¶šú²³Ûùoç¿¿eÅ–[VL]ŒV/¬^X½ôÝ«[6·lnÙ~ÖŠ!+†¬b5Ÿÿ“#RG7­áORÒK‚C‚C‚CZöpñ‰Å'ŸH¾M‹`‹`‹`b`²``d?y“ò&åm2²ÉÈ&#“ÏŠõËrYÈÎŽ?6þØxÛ¶9ls¤=VLßñ¤×™^gzIþ)NNNæ1j½ÙôfÓ›MÀ@æ§~ûLí3µÏÔŒî¡iY´ùݬw³ÞÍ2ܦþÁœGÌ00²M;6íØ´ÃpV¼¦ìš²kÊR?@ö¤¿ë×”èס©CS‡¦ûTìS±Oʯ´Ég“Ï&ŸþÎÝ´ìÛŃ^5¬·ŸÿøüÇç„4Àçõh죱Æߊ-6¶ØØ´,Õ~çÞ{wîé·óõ¢ DˆJË8 %%e¸eýª0úb8˘``d o<¾ñ¸± D @vVM­¦VS DZ´XZ,ý±[ÓÕ×Õ×Õ7ÜZ¥5–ÖXjúh£ÿtÃílü±ñæwZÇ·Žoox¼Cb‡Ä‰¥•Ÿ×Š!+†¬’öeŸS–ò}ºüøÇü˜º-'Z'Z'Zs0Ù00fNÿl-ýâ–ú{¼öyíóÚçXDZŽc"›‹l.²ÙÚÍÚÍÚÍ%¯K^—¼¾5}kúÖÔ/“û:øuðë`ê0kÕª>0üó±ÛÑ_&Óß5kg­~Bý„ú †3áIE'T”V dgÉŸ1™Üs§çNÏ>vkO›?mþ´¹áÖJ•,U²TIÓcÃQ«Ã´Ó:L3× ÂX$³àý‚÷ ÞÓJÏ«ÉÈ&#›Œ4ÖOÓë‡)GW]yt¥±OiöS³Ÿšý”–ío;¾íø¶†[öT<O…³ €9!&Àlíª²«Ê®*ÆTSaLþT)éXÒ±¤£þï¶<Øò`ËÇîÃßþžð÷cÛïñ¬Ç³Ï2âØ=çUoÊ“)O¦<ɺµš²½³áq¿Çý÷›vjÚ©i§žkx®á¹ÒwJß)}'ùݱúxÛpkeµ²ZYM§ïQü¼çç=?ïùÀ€_ø¢À»ÀàÛ3¶glÕÉ¥­—¶^ÚjúÖô‹Eë÷ÄpkÞ½7zoL¯:™œ{rîɹíùª«¬jÀX‡´£U €S·œéý ûA÷ƒ ·V¼_ñ~Åû™ßïʾ+†ËŸ^^qyÅåæ×ãÝâÝâÝŒµŠ=_ïùzÏ×ôSàsyQòEÉ%õP›|6ùlò¥ÛSR|pÚ‚½z?ô>÷`V^E¾Š|ÙªD«­JäOWÉ/Ž›¾?qÍâšÅ5Kßmš¢Ñ’FK-1ö¹aõÂê…Õ˺µš2Ó/i-|¼ðñÂÇ)¿^/9¼äð’ßæbÙ»Yïf½›•òû‰Ã†… 3ÜZ•ð*áUÂS·ÿ¦œß´ÔÃÙ‚g ž-hlËÉJeÜç=Ì»UW ­Z5Ôp¯öFìØñ±[3Œoõ’б÷êW˜H¾X´^Ÿ©}¦ö™j®½þvþÛùomuç¾<÷å¹/é¡Àç¢ÿ‘±ÚVn+·•?ål6ãš!ŽGˆœqÌ00fB¿Le½Jõ*Õ«”ÿ“0}ß2ú"Nrú»µŒ}Jò`8«×jêj[Éû/ô_è¿Ð”ýÑÀw/Þ½x÷¢±×Œ6vØØaéu÷¼ÝóvÏ[cŸµþÑúG뙾µ”Ÿ÷¦TR·Ÿo—½]öv™±-l±±©;§úsTÛ¿¶mcKÈfĽãÙÇ…£Ž^8z²åÉ–'[R´j½Á–ƒ-[î[ýêÿPÿýý©¦lGßêWS0ÜÚïÞ¼S®ÃÍ«6¯Ú¼*ù» ,¨‡Íµí{Ú1÷ä™þÉ»Æúæìɳ'Ïžœ¾Ÿ8kþ¬ù³æûÄ5e×”]S6-Ûï½®÷ºÞë ·l?Ë~–ý,ÆÌ00Yžþr³±EzÿëþªïZ×ú»­·NÜ:1<*<*NyËú'§×Ô?/ÙðSôOVþØú ™27dnÆ-6{|ÀñÇ$_0¹µZÔjQK¿˜¡éÛLù¢çN;=¸4™Û»mï¶½[òZÕÿ‹>¤¤~²g«Ö?Ó=åñ0åXÿs“ ®\'¸Û‚>æ4¶…ØN±b;998989$ט)c¦Œ™bÞ½~uÕÕUWWMù¡ úWÙvdÛ‘m£ÖŽZ;j­þÉú‡ècrýÿg«ÿYýÏê¶ßÐ~Cû Ë'-Ÿ´|Ò-›[6·lèÝ@ê[IEoÛàmƒ—„ˆÊ>jIDAT· NßOÜòÛ–ß¶üfìG/½`ô‚´l?å‡Å0ËÀ<å-øfÁ7 ¾Iù‰³çœwpžé—3ô¯ìþm÷o»klËeΗ9_æ¼þ©`)o-å»0 /礪±»uMòbV©Õ”?ÅtEŠ Ð_Ú;4ðÐÀCϽ>÷úÜký3,õa¶~Ëó‹Ì/2¿HÆ],{ü:øu°±-w+Ö­X·bû)¿xýâõ‹×ç½ëÚôO¹xðâÁ‹m!yËaÜK Ã8¹9Cç 3ôIç'ŸtÎε”=[µ)G½ÿØþcûEDD蟡ôGÐA¤ü覽›önÚ;å#5 $¬šY5³jö¬î³ºÏêšw{36V'ÿº±;È?ÖÕqWÇ]ÇH˜NÿÓc}J¿@tú~bÊ?Õ?2 -Û?írÚå´‹±íO*:©è¤¢œw²:``²0ý‚™)/×z?ô~èýT^^Ï›”7)oÊR§<™òdÊS6¦_(8ã¢8ý“}m¹ïð¾Ãû7åS²V­2ý"¸þi”ÉŸ¼˜ò–o:ßt¾éllkú»œÓrõwQÛ~àöÀíÛ?v›úå[ÅÞé;écrc{®pRþ,ý…ÆöÖn™Ý2»eiùY’K9N¾ènv~þhölÕúñ0åÕ>–M>›|6ùôã§±ÏÕ/¾]~SùMå7.¬š~öѹ}çöÛ§¼öCz)t¡Ð…Bø1 `:·&nMÜšëSq‡}ÊsNw+w+w«´ôbýŠ Æ¶¯_ÆŸó@VGL @6]7]7]gìâÅÚÂk ¯-œöKœ1}cúÆôÕ/¨hìÙ¦|JÊ¿µïß®»þíÒ²ŸÉ/”Ò/i~µjÈ”Ëß.I.I.IÆ>ûhlzm¿ÆÒKk,MK´ÛÛno»½†[NƘ¾µèÀèÀè@c{ë½Ñ{£÷Æô ÎØž±=c[ð^Á{ï~¢Ï-Ÿ[>·Œ½÷÷r¿—û½œ±½=Üêp«Ã­ñÒ‹ü•ü•ü•ålËÙ–³?6:úËâ/‹¿,L"lV—=[µ~ì´ÇÀúè÷èÊ£+®Lù ëJ¿Dö )óVŒŠ@ÊôóFc=(#V)ЯÑòO3î±)ÁÁÁŒduÀÀdIúgU»lQùeå—•_¦ïe‹=_ïùzÏ×i¿„j콩 ù’sÝïºßu¿±°Ó”-gÝZ5¥†“Ó/^º}þµç¯=홾û¬¿ ÐØÖ’?yÎômJ…¤BR!cÛ×k\¯q½2¢o~lØp­ÿµþ×ú{åØ!±Cb¹™ÑgJÿë ô¡]v¸3;{¶jýÝÀ)/|jL³ŸšýÔì'SîŠ{ù*òU¤áôO®Ížý1å;wý$?ÉOú{Âßþžp÷âÝ‹w/êïV××äå—W\^¡¯½ä÷iQî@¹åë;úGx¤ï'FÞ¼yר'VSaL…1iï¹úg 32`®€ €È’Bæ†Ì ™kìR…þ^ØôýDý«Æ>qÅCV 1e;ú…‚Ó÷RËùKç/¿dlksÛÌm3·y×jr)×mòåXS·Ïú§'Û¾þ9Á»Íu¹ÖåZ—ËØ6õwã}ì6ŸX|bñ‰ô­[S¤¼¨`ò{»õÏÆöÚçµÏk_Z~¸€´KpHpHpÐ×v«­J´*‘ºûõÏ»5¿ú¡Uÿ]ç’gHžjj5µšª_[ÿtyý½hƒìÙ ²Óß_nú1N½1õÆÔÉkÉÉÁÉÁÉ!ûô}ýs”SîYU«„W O¾ŽˆI›NöÀ…”—’N¾ä;ã!`H?ÖëAúÿG|Êÿï”t,éXÒ1í}vÙêe«—­6ö)¿üð;g€¬‹˜€,iÁ7 ¾Yð± '|Oøžð͈Ï5ö‰ÝãºÇu3e Wæ\™seNÊw†}ì^MÎ=9÷ä܆[+U ª@Ôý ûA÷ƒÌ»VMÙšÞÌ53×Ì\“qûìñÂã…Njݚ±{ì\òºäuÉ›º |Éï24´£õŽÖ;Zg\Õ?%:ù‚ÉuÑqDÇK/9¼ä°±v{lü±ñÇÆgæQ(&–^G§¿û¼D§JtúØ}8pèÀ¡‡ôѲyü';´ê´´ÿÝ‚±NõOCÏ>ó}«0Öôk{¤}YÃe] ù/ô_è¿Ñ5ãÖzaÿ³îråú1Üè^åMÊ›”7}?Qÿs¢Œ~’·~¼5ö)#Äâ‘od]ÀÀdIúKíÆ.X¼Ì÷2ßË|ñ¹Æ>1ùý^iÙNY­¬VVûØ :Éï—JîÇç?>ÿñ¹é[Ë굚òÖôÔËêeõrÚ÷9å'%›¾ÏúçgD\ò­ºúºúºúÝOSwywrÌä˜É1™ÿ^´ìs‰ÜðNÄÝýýèú%j³úÿ}Ì»UJ£ÖŽZ;jmòZª5ªÖ¨Z£L¯¥[ly°eÁûï¼o2²ÉÈ&#ígÙϲŸ¥¿ŸU¿Dªþßõ?oºwäÞ‘{G2[=è×ð;ìÃ""">MëMþ¬kFW`àäŠ-6¶˜ÑÙš~=›ôýÄw³ÞÍz7ËØ'Zζœm9;íuòO׺þÓÕØ§´Žoß:žÿ[u%Õö¯í_Û?ó\J¾?¦ì¿þÙ™i¿È¥¿+רvUÙUeW•ìS«z)o3ü‹ð/¿H{ ¼pôÂÑ GÓ¾À²~y=cÛ «V/¬^êö0ù3› ±=c{Æ6£ûi¼[¼[¼›ég¼N‡:êtÈ*!Y6½DžlQÙv{Ûím··À¾(ðÅÇî¡þ)¹Yñÿ>æÝª? ý“k ëJÿ\۔߫_5y nºäË ëŸ››Ýj^Ô)×ÒºwëÞ­{ÇèJLœ\òhÒ?¯7}?ñUŽW9^å0ö‰eΗ9_æ|Úëä”û)÷SîÆ>E¿à?ÿÿ ë"& KªØ§bŸŠ}2Ï©}fá{wîݹglk#wÜ=r·)Û½`ô‚Ñ R~&eö©U½”·™¾÷ û”æ›7nÞØ”-x*žŠ§b¸…†çžkx.-ÝÊ(w ÜŒÂMqyÅå—W$Ƥ!ý½´õÒÖK[³Ê(Ä%òäõ ¿[1ùS Mwhࡇê—»Ì*gß\[õ§ÑϯŸ_?¿äuÕhI£%–¤ÜzŸ;=wzî”ü•i§_†:»Õÿø¶ãÛŽok¬NºëV¬[1FW`þï–œ³µ³µ³Ñ™Ÿ6ÚüióôýÄ”WˆI¾?iù”[6·lnÙûýš Àd]ÀÀdIÅûïW¼_æ¹ eii™^Q¥)\R~6ØðÓÃO?ý±ûcÞµúïvÒõ9mÆž¾lÊBš)ÿ`e•=VöH˾¥¼\aFÜ­’–óÒ¿]ÿvýÛq‘1«ûíÝw”TEÂ7`Ó·!IrɃ‚‡ 0("YrXQ\ʪk\EÑ5 Á5¾( Ä(¾ê ¸ˆº ˆbFÐ%HÂ|\ÿè=mÏÛLêé;ÏSçÜ㙹ÜP]}§­_WUäkÚâÎw¶¸óHßõE39¹V(_þzð׃£ëj餥“–NŠõ¯‚Q¿ýÚ¯k¿®ýºÂ˜¾µ8[pï‚{Ü[°so@¸å>GNðd+Ø3®¾{õÝ«ï.ì¹%‚å]b¥Z—j]ªuñ4€ä%@RÊ}ÜUÑ‹¼žøïbúÍÓož~sÞÆ:,Ú¸h㢱þÕ§å>-÷i¹’Y«E9v$˜H9og¼¿âýﯽÊg)Ÿ¥|–ÿ«-»³ìβ;c]U0mѼ[ƒð&½szçôα®'2®ö| “à5|ÞàóŸùňX‚©}‹ÿ}iÕyŒ.¬¥þ·÷¿½ÿí¹×R¬¯Új}Wë»ZßÓé/?fù1ËùeÉ/K~Y<Ÿ§¼8åÅ)/Ö<ªæQ5*ž# ‹^¬)¸‘³Gh±èùsÏŸ{þë]“y\æq™Çìß©õN­wjÅ:c·zÝêu«—ÿ÷é.ºèë,Åg]p oÀ`HJ¹¯Åµgêž©{¦ýUiÉæQ›GmŽ9â6˜¤1Ö¿[gl±u¢ÿUËñ-Ç·Ÿ·ÎšpÔjÑwñÇ:Wß}gôë_ÅŠŽú=Ôï¡~åÿj#ÇmD &S-šWðÖ-·n¹uK<‘ÿ—]pÙ—ì(mŠàU®{}Ýëë^Ÿì°V}¤‚h6²f‚/©ä>EöÆç6>·ñ¹Ü'Ûgçà¯m—~]úué}œJÓ*M«4­ä„»æíš·+æ—½Ê/)¿¤ü‘Dÿäø'Ç?ë]3ó…™/Ì|¡`ÏøÌÂg>³0Ö¯yçšw®y'ÿg > Æ:KõôêéÕÓ= y €À”š¾×ô½¦ïÅê°&×M–{‰u ÏixNÃs¢÷ÏýÛú¿õð[¿U’kµèà¿^ò×KþzIô¹*>[ñÙŠÏFŸ7Ö$¨9µçÔžS;ÿW9‘x´oº~Óõ›®…ýZ|Ôí£nuK®uþ(X·ý¸íÇmG<8âÁÆóºÿX«Î›^k{­íµ6²6FÞ6ò¶‘·åm¦„`Ôï‘®»ÄÀ©'¥ž”úSž>°ï}ì+ ¯E0åu¬VùU0O0<ÚóÑžöŒõ®¹í›Û¾¹í›‚=ãíßþñíÞB!àÓ`¬³ÔYod½‘ž¼À`HJ±Æñþöï´§%Ë½ÌørÆ—3¾Œ?6xã¦7nzã¦ÂµŽZ-úfÙË®XvEüç½ëþ»î¿ëþÂ^k­ÙkÍ^köZ¬ëùpȇC>Rx¯B0^ü̬3³ÎÌŠ>{»ÛØîijVœµâ¬Ñ¿\‹Ú³.¹ì½kï]{ïzzÙÓËž^Ö¶ZÛjm«ÅŽv¾¶óµ¯ ÞMÅóî´ê<þ?øKÞXòFôôþñ|©èü;οãü;¢ëó‘+¹ò‘+óv=Áפ¢ü, ¯È¦‰›&nšh `ˆ_æ®Ì]™»b½kzßãøÇìƒcÆœtzWæ®Ì]…ý ¶ù”æSšOñ4€$þ1°’ÑMÍnjvS³Xs÷ÌÝ3wO²ÜËöÛwlßs<ÜnùÃ-ˆÜÿÒ¹—νtnôžƒúê;¨o~ºiÂQ« W:§tNéXg¼øÀÅ.>¹{¬‘Ö£ûŒî3ºOA]çE™e^”몂¯Þ«LNëk «¬Z°jÁû³ßŸýþì²G—=ºìÑÑ{vmÙµe×–ÅyâÜ2ÅXQÖÃÚÔµ©kSo̸1ãÆŒø¯0?jø¨á£†¯ü|åç+?/þ]Ì%¡U†NOwzºÓÓ‘õpý­×ßzý­ñ¼âu¦Ö™ZgjtM®Ø°bÊ y»žàËLÑÇŒœœ¼hj&¸‹'+üvù©õO­j]ç Ziî‹$öý˜ìOW׎¿n‘‚•Å‹hªä\?Uì$í î]pï‚{‹óÓȰ’Ò««_]ýêêX/xéÀK öŒæo˜¿a~°ÂntY´qÑÆEósüX÷Òd[“mM¶û£ëbí9ÿÑùÎT­&ªë0Ö«¬:°êÀÈÐ"ÖžùoE‘"#–hÏ>öìcÏ>VõðnÊ»)ï¦Ä:ïÄ[&Þ2ñ–È×"y'Î-™]䇫®~¸zÐeÜûÓÞŸöþ4þ« ¦%ŸÔ{RïI½“kbä’Óª Ö›cÞóæ˜èyâ6ƒ±Âѵ¬b›·«ŠäDž«hêgáÐ…CÕB‚é¯ ã¼ÑïÁHS^œòâ”=]Àà¼ÕLô[FÍš=Ú¸ Î¬^ë\®špÕ„«ü_'$/°’ÒÏ~nôs£Xå¾/÷}¹ï ¶«(ÖèØÈ‘^ù9þKg¾tæKgæÞ©4÷ÿÍýsÿ_ôÏO{ý´×O{=ÿ׎ZMT×á⥋—.^šûÙo®ts¥›+ÍȳÜ׫ËÏZѱcÙ#WŒ‹gZÑŸíülçg±®³`§Å.X%§‹<ˆëøý¿à÷ÁÚäñ_IÇEu\ù|K®¿5%­U˜Ò9¥sJ§wNïœÞ9÷°-—·K‹õEœÈÑÆESI»gîž¹{f¬vL6^°g ¾ÀkóÀ|ñÈxº €ÀѦýcÚ?¦ý#Öµëšçÿ,‘óÁìøÑ&8ùÃÉÆ:×cíkÿX{ÿ× ÉK,€$–{'QAuÄl?jûQÛÊ=ÞÈ·T°ºd¬³üý¥¿¿ô÷—†´ÒbH‹èßFƨj5Q]‡‡jp¨A¬óSÝÆ Ï‚`¸`¯'Xå7Öõ\ùÇ+ÿxå öŒ—=uÙS—=뫹6¹OBØã`ƒ=&×ó'Ù»È?êöQ·ºxpă#Œÿ¼ÁÔ”Á4õŸÔü¤æ'5“=æ,i­º D¥©öÊÚ+k¯<ÒöpÁe\vÁe;J5ˆO¢¹Þpq{’Ô¹rí×~]ûuí×%Ë8Kªë/zŸÛøÜÆçbÍLPiZ¥i•¦åç:ׯZ¿jýªX÷œ÷‡i?LûaZAÝQði0ÖƒOþ’—X Iìƒ>¸áƒ ¯Ãè@—]t VmŒuä ›» î(ÖYÒJ§•N‹¹Øê»Wß½únµš{M×aŸU°W’=0{`öÀXg FæÔ¹rŸ<ü–ý·ì¿e<õoâÜD ¦—zÙÓËž^Ö¶ZÛjm«ÅßÌ@pçw>qç›GmµyT8^)­:o¦L?˜=ÆtúÍÓož~ó‘íÁÍn~pstÕ<ªæQ5úqÂ~œÿѶ^¸õ­FFÑ‘Ø÷À¾ö}=³ð™…Ï,ŒÕ6j4¬Ñ°FÃü·“`\oîíð­îou«»ç!äç©Þç•>¯ôy%ok½ÿ6Ö‘#ס/¨{‰ž§!Pyb剕'úÜÉN,€¤—{GLÙew–ÝùkFÜÝ1ÛNÚvÒ¶“..uq©‹KÅ:ró)ͧ4ŸR°#¹+Êñ:É[«‰ Zr_+4V[x×VØzo´eЖAµ¾«õ]­ï¢ÏÒô½¦ï5}/þ³ñLíD­zzõôêéº# ÊÚÔµ©kSo¸è†‹n¸èHÇ`µ;±Ý‰íN|î¾çî{î¾ð½"Zu~<µ÷©½Oí¼ÇF 5hÔ o÷¸i⦉›&FF‘:_ÛùÚÎׯ¯B¬/ãö‚±}E_cÁ´Ì¹¿ãÒrÒrÒr–]±ìŠeWÆçŠ^k{­íµÖÓâ±aþ†ùæÇ)xwç~´`þ˜Ü§}žQÁó° î"÷)è#Ÿ–^qH^`0$½ÿÔøOÿÔˆ\7wÁôÁh˜_–ü²ä—%Á —K'-´tÒ}Mïkz_ÓÜòYÊg)Ÿåg ÂX‚ѱñÇ0OVx²Â“Ôj¤ÄÀÁè·ø_Á‡¾~è뇾.¼ë¹û/wÿåî¿^ ¸fÀ5®‰õ¼Å‘±b´‹2/ʼ(Ós/?æ?:ÿÑùÆßJƒ÷æÅ.>pñÈÂZ?ZuÞì»~ßõû®^/yÖßfýmÖß ï©„ëSŸúøÔǃ¿ »æíš·k^°Öo0ò8Vœ¸í›Û¾¹í›Ä¶ê`ÒþŠÏV|¶â³ñ¼+ƒêÁìA¬<ýõà¯=ø©ß=õ»§~ä¹'X˜ ø‹ïÙõ\Šôrù—Ë¿\þû÷¿ÿû÷ƒçdð¬`Jö–ã[Žo9>÷#kñì3êýÙïÏ~v¬3Þ3ìža÷ ó*@² € $–³ü˜åÇÔÜQsGÍ…·öXÌ7{ÜìqE?j³`W k­‡©Vã¿ë‚]Ë-Z<Ó~æíȹO[:᪠WM¸ªðFr•’Ïÿéù?=ÿ§ÿ#TÛQsGÍ·n¹uË­[‚‘‘%¡ÎµêüÖå¼—È`#?G>Ò¯FÅ/ráâP‡Á•ÄçGýõÔüðT„Â{ªçÇUß^õíU߯3*Öû…±¸ (`0„Jô„“%X‡oîž¹{æî)ìÎâEm\´1÷ëþîðw‡¿[”ëÚ&K­‡peáÐ…CÍýJzßãøÇ'veâ¡u‡ÖZ÷H¶~ÕúUëWų^u~®98K•QUFU}–SjœRã”b༉ŸÓÿœþçôŸñåŒ/g|YÒ‚v­:?‚Y¢×Ö}ã¦7nz㦂:K°ˆ@dd›ÿè78fñü$Ó¸zãê«F¤”ñjÆ«¯+v{B~d̘=°0Þ§×=pÝ×=Px‚O€ù_æ(ÎÀ`¡½wí½kï]Á_ù“'œ<áä yë| &>½ä“K>¹ä“¢ÏŠ€™Çe—yœZVàx:Ÿ}ìÙÇž}¬h®'r‚ÓH§Ï<}æé3 fJç”Î)kͲG—=ºìÑï}ñÞï}Q4¯fÿÛûßÞÿvO¼#ÀÁ:ЃÏ|Þàó/]¼tñÒÚá«Uç[ôTóç=|ÞÃç=\-*r4p¬µc ö/>Ç#˜*öÞ÷v¸·CêI©'¥ž”Ÿ0)ˆ“ {þ(É‚wVô4øñ ¾jùæ˜7Ǽ9¦ß§¥sJ甎u ·|ûÇ·ìÕ€p € ä‚‘I‘£fÛÔoS¿Mý:SëL­3µü’òKÊ/ Æ]¥å¤å¤åqH°š`0=¯®Rµš7¹‡EYëʬ+³î×(+ÿÑxîûÆ}ýÃmMã5×4þîûï¾ÿî{µ§UçG°vlôó$Xý½h^µ`"Ó`Dïwq×wU˜Wa^…yÁߣóï8ÿŽóïxà÷üþß'ï_ŸÈº½vεs®¬ïÛd[“mM¶UXu`ÕÁ³‚ÑêAs¥›+Ý\é_ÿü×?ÿõÏC 58ÔÀ; [ä—8/¿úò«/¿ºÃòË;,¯{}Ýëë^<‚¸ã¢Ž‹:.º¢Ó®è9÷Oa_aäW¾¢—&ÉÚ™µ3k§×ÂA,€ÊÚ¢jµ•Î)S:Ö¤ÙÁè碯“X¯Ë˜æcši®õùy¶äþ“Ä>åJæ_^-¼O£­3¶ÎØ:ÑWÒç•>¯ôyÅÓÂD, €ÆÆêì V.ú«š÷ü¼çç=k%æ`ºQ¯@øì¿|ÿåû/\o¾ðVmа€Lúý™³öÊÚ+k¯LÔèŠxÖ–öÚ„Ï+?¼òÃ+?Dök5¢ÕˆV#|€ð €(0»gîž¹{f¬xõº®{àºÛÅ6wÏÜ=s÷D_Û ¾ƒúêëŸà“^ô'À×>xíƒ×>P?>`0橽Oí}jo¬ø“šŸÔü¤f‚/±tNéœÒÑ×Va^…yæÿ&ÛNÚvÒ¶“¢?ûµnÕºUëV>û@X €À€]óvÍÛ5¯É¶&Ûšl‹þ´Ù¦~›úmêŸ.¶Ìã2Ë<ÎDÐávçw>qçÑŸ÷2weîÊÜ¥~ ¬À`âLïüÁ ÜðÁ [m´eО©{¦î™úQ·º}Ôí‚Ë.¸ì‚ËbEª¯®~uõ««‹ÛE_gµ.ÕºTëòs£ŸýÜÈ+¼þSã?5þS#øtùyoø»Ãßþ®¯ý@¸ €ÀÄe]™ueÖ•9Rͧ4ŸÒ|JñìbûqÂ~œP=½zzõtã€Âäo§ÿíô¿ùé®Fà k4ÜíõÓ^?íõoº~Óõ›®Åù¾¢¯¼òÄÊ+OÔ9Œ‚Oq'O8yÂÉ"?ãÍ7{Üìq¾ê%X @\â€ÓJ§•N+ýù¬Ïg}>+YºØ¬ ãŸÿäø'#?Ñ>jø¨á>Ý@É!—_–ü²ä—%‘o¥i•¦UšV÷úº××½¾Çñ=Žïqüÿüø??þÏÉØ¹¬p\yëV­[µnÕay‡å–ë(H;ÖïX¿c}ä'ºà3ªOtPÒ€Àä‘ñ²7`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0à_-~?îò¯•¥ *$¨,KPù°ÈËG *'¨ü;Aå“•OT–'¨¬HPY™ òY‚ʪ"/Ÿ'¨|‘ ²:AåË•¯T¾NPù&AåÛ•5 *kTÖ%¨dyù.Ae}‚Ê÷ *T6&¨ü ²)AåÇ•Í *[T¶&¨ü” òs‘—ÿ$¨lKPÙž ²#Aeg‚Ê/ *»Tv'¨ìIPÙ› ²/Ae‚Jv‚Ê"/T%¨NPÉILYrT‚ÊÑ *Ç$¨[XE Z`€mð%Ghà­Ý·vßÚ}ñ’B+ï'¨X“ØjÄV#.þ«—œuˆKÎ Ä%gíáU *%gíá’³êpÉYo¸ä¬4láð­.œ¨5†KÎêÂÖ¶¢°µ„­"láD­"\rÖ¶r°5ƒ­l`ë'j`+[¸Ø¯ ¼uÔÖQ[G…v0…A `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@Ò›ýäì'g?yíèkG_;:øïå5—×\^SÍ@I#Hze¢õNÆö´ÌëFdeô+ظ7þí›õºÿñ쌦۫TùÒx®ùÖì[³oÍÎn–Ý,»™—Š0@ÙuÚ®Óv6hÓ Mƒ6åÖ˜_᎔?½{sÏáÍ_;´vä%*ôµý|û€Ìô÷»;ý‡ê[ÿ{™\crÉYÕ³ªgU× ±À krÖä¬ÉñŒš}ù–.ãšV,nqoîÛWí;¾Õ¿j̨pSÊ Üï.³kf×Ì®Ú$Š _–§.O]žš{,zYÇ´zµïÙñÂð”L®è7r{ø¬‘ïd¬}øÏçöm¸;÷û•2+eVжEO G˶/Û¾l{îQèÜu]v6½4yCßXÛÏZõ;ýŒÜïýñ‘||¤vEI pÄV,\±pÅÂÜãÏÕ[ÞØºEø¢ßÈí¶/éÓ~ê9åRËŸüA¬z˜™53kf–6EC pÖ/X¿`ý‚Ø©o™eZÿØøâIí6†;úÜf×Ѫã/ý¨ß8õï±*æíºo×}»®ö…M —=c÷ŒÝ3¶ò±•­|l¬˜ó§EÃÚžûsɉ~#·‡ŽyaÆ#6Õ¿?õÝXõóí ßžðí Ú0@\†/¾pxÌiŸ7ýþâêíf”Ìè÷¿FÏ16#¥Ýßj\õèèZJÙ›²7eïÞý{÷ïݯE@aü^ïûzß×ûÆŠ~W]: Aú¢ßÈ펇ŸÒ¡l¬?nü¸ñã´+óçÌŸ3NðYñÎYwκsÖ¶ó·¿í|5“7`€˜¶5ÞÖx[ãXAæówwžzæ^qo¬íê¥ǵN‹U{_øñ…_¨”d‡zêu¨W¬OŒÂà¼Ä46clÆØŒè®¨÷Ö“ú|ÎþËGtÊôæ¾}âþŒÔ´öÑuXyXåa•‡|äà#ÑÒJ¦È±¿¹ÇO ð¾ž÷õ¼¯çÅê~úéÍaéçnîÆ³=ÜmäÏ©úE¥fÑ59{ðìÁ³ko%Sèán™¸ ƒs'ø ½÷ÜkptgÓÓuÚÔ¤¯X÷H·_7`iú‡±ºðöŸ¿ÿüý:ïJ4apAü—5/­yiÍK±:˜Ü="3££@7oÛa-ͪõTt­¾XîÅr/–ÓöƒóC ð_Æí·{ÜîèOwù¦i!n~¶Y÷y­mýèº-MùkÊ_sxëá­‡·jD)0À¯v·ØÝbw‹X]HÙÕF´è¸Sˆ›ÿm÷êu&Õè]Ã+³Wf¯ÌÖˆE0À¯Œ^0zÁèè£Iï¶9¥Á1ºŒ˜qö}MÛ<ß oÓ÷ª/¬<¨Ò´rkË.>íõʧ”ßU4Ñé7]½Ûú@äµ%c¼¬wŸ[þ]ÏW޹rÌ•c´Câ! ŽE ð«®ßvý¶ë·ÑDß·:¯íÒ3Z :ãöÜ»“Àñlž;ò¸Œ±±êðà‰O4 Süág}kÕ>ºÎ§÷Þwz_m€ü+™a° 矟üó“~Ýõóé-ýžÓ3:‚Xp~¶»^šÒá™è:ïT­SµNÕ´I VÉ ƒÀ9}æõ™×g^™|ˆ8œpñsívßuúõËô{¨Þ+©-Î̪þûJÿ©4­ÜÚ²‹ë<9«âqÕ~¹ê¾û+¶Ò`ñj [Ô>½ àÃÕGÎÏøêåò]Î;ëpϟϘVcgZéªÙ•.¨<1¥yÙì&Ûª½TiAßõú¥“y\Ï©ÍWi|»äÞ}[|7lM£µÞî¥â³åî({_£U;U\yÁ½ÝÆ6Û\I¬ãT¾:%­ìîèú<œz8õpª– @aw,ȉÕÅsúôÊ×T¨súÌÊ*Ô‹üy­ï*•+ß#øy° 5mìÕ¹E› +ôLiw¤Aò÷ïý¡íÆüÀÙGtï˜Ó¥ß鵫_ÿyoÙߪZÝɹ‡¾A”{íœf›êü.þ#÷y¥îáS>Ú=óÒtØ}ÌK7¦ý®öo\çŽSvœ²ã-€Â¾0X ðp‡¯j¨º82ªŒg è æ¬{ýÉwVø÷¯òÌÊ*Ô{ps»Q /{vï¹-+¯Z0 KúÍ™»znkñ‡ v ÆÇ3®7žøo§·<éŒíÁoƒQ¹ÁYÞû¢×Ó-®Yùyÿiéåæ=ßõ­f7t«W'­Få`ϲG—U¦ÓÇmûžÚjJ¬³ßñ¿çÜ^oL°pÍ·ü¡å{u¿Õ½ûçg/ú¤fßÕç3ó…óþÕdMûuµVÏ8éGÖuøsã³¢÷\SgM5u´LŠR8Â`0ÀoÀù²é_O?ãHà Öý5RÝYfq™›¾üëÀW[÷‚FŸ·öÊJW”¿+?ðÙÏÔ[yiðÛ§~—ñbÚ´ÜÏž–S­w¥[s?fÖÑCnn{B¹ïËV/óZ•Q)[ËX}÷Àþ­kźÎà8ãŸ<ûÜ:é¹ÇÀoÕê¾äìÑû,}{éÛKßÖ2H”ä ƒÀ¿ÿc_Û^ þ÷Hàn¸èí–oýekÓ[Oo0ñ–ôÍõ;å>¢7ØF‡Ä±þU<pµ.åŸ(·*øí²+úTj¹#÷³{>ÿ§Îwžùs¬À·|NÝzg{NêÝzOýÍñÜ×.#fgœ¬ ìE§3/;õ‡È}>ýc¿Fçœ}ïóÚÌk3¯– @q\apÂà2ÅØ“ÇgtKz¤p¬x5Öo598ã釾n·¤áãÑ×·ø¼‡Oýßj¿m[­æ”*¯¼S«ÇúæÃƒ|ã¹æèí€kêOsɽû¶ø.þyµÁèäÈß~uã r­'ko„Õü9óçÌŸ#H°gFœ×µÉÃù€·uÉ5íg¿›Ò3½ù£Á„Ì7Wj9²îéýo¯|ê¸SjTx!åºX×·xù/ý6œ3³zzù})¥"÷¬7ò䬊Çcpg|ÙéÍ&­¾û~èYm¯ç.š½V£|åó_«§.®ô~ù·#¯üÛ¬Á}ÚôÓÞ«ì—²_Ê~I `ùüI;«Ï9¦Çñu¾¯ñ÷`ÝÜXg9kEõ?W>õÏ?5º·ÖýÑ¿Í[yµ×¼Óì§Zgjå•þëÚXs[•í~ÃÙ“b­òÄ”æe³ó_«‘Ç1€’ ^r¬¢(Š¢(Š¢(Š¢(Jq)ÑÝ4ùY¸Ò´rkË.öL+]5»ÒÁºóžïúV³Ö4|U›‘Áú¸±bÝüÀÿ5uéËOêTfù1ýî9gìÃo{]£RƒÏkpUÍó+>[÷Eí±ö3¿}œà.‚}^]}ᜦ«ƒ+ÉÛ6òÊc­ése«3â A»wÿüìEg¼zê«5j¿®ÖÁª“¢£ÜèíŽõÃÏèP1÷³O¸ªy·:낟¼­ÉQ§žÏ}í¿ü²Ý—¥wNX¥t°ñ½Úôh¹Ï#ë:ü¹ñYÑg_SgM5u´LŠRò†¾‘À9±ºrrÆ_~v§:ñÀ .¨2¹â_‚}^<÷‚Vg Ì="Ý0ÿOíÚU V.¨¸Ý¡ZçW­ÿ(á`bê`ÏÈ;rŸå¿ôÛpÎÌàçÁªÆ îí6¶Ù¦Ü|ÃE-Ž9ãÂÈ+ Ž¹Ï¥Ó~WûÚè{ßqÊŽSvœ¢ePØÂúFäô™×g^ŸyÑÝ:¿?|j‡ñÀ#L{¶öçÁ>5wT|£|•gžwE“çÖ¯zoÛ—7úóQç6xvï¹-+ß²¿Uµº“+OLi^6;füœ§øŽÿ=çözc"÷ ÆïS7ö¯þ;ÒÏÏÜÕs[‹?Ü\©åȺ§Ÿµj]çÓûNï;½¯6 @þ•œÐ7’ g_ï}½÷õŽîú©r{Ê®rWä|qùÀN­ãGcEžñü6ž³Í•Ää¼ÝËõg½ºÎ´è:ÿrÈ—C¾¢M7%3ô$øU×o»~ÛõÛèΠïÛ ×viÞ"RÛèíÁsG—16V×ÛÁžxðD­€ø }# €~µ`ô‚Ñ FGw Mz·Í) ŽÜÔvYï>'¶ü)ºž¯så˜+Çh‡ÄCè‹àW»[ìn±»E¬®¢ìj#ZtÜ)¾Íÿ¶{õ:“jt®á•Ù+³Wfk‡Ä"ô‡࿌Û=n÷¸ÝÑÝFsŸîòMÓþâÛül³îòZÛúÑu[þšò×”¿æðÖÃ[oÕˆ$ô=R`€ÿ²æ¥5/­y)VGÒ»Gdftåæm;¬E£YµžŠ®Õ˽XîÅrÚ¡o~€~C¯Á½÷Ý©ôôE65é+Ê=ÒíÇ Xšþa¬®ºýçï?ÿùZ@I&ô-(`€ßðõ¼¯ç}=/V7ÓOoK?w«X7žíán#?ÈØÐxNÕ/*5‹®ÉÙƒgž=X{(™„¾…A ÓØŒ±c3¢»œÜ[Lêó9û/Ñ)CÄ›ûö‰û3RÓÚG×aåa•‡Uvð‘ƒ|DK(™æÏ™?gþ¡oÁÄ´­ñ¶ÆÛÇê„zþîÎSÏÜ+âµ]½tà¸Öi±jïã ?¾ðã µ1€’ìP¯C½õú,0Àÿáõ¾¯÷}½o¬n©U—h~…¸7r»ããá§t(«ÆÆ?nü8í €@ä8`¡oþ €â2|áð…ÃÆ 57ýþâêífˆ~³çŒ›‘ÒîoµN®ztt-¥ìMÙ›²wïþ½û÷î×¢ 0€â²gìž±{ÆV>¶ò±•ÿ´hXÛs.™Ñï¡cG^˜ñÈ€MõïO}7Vý|{·'|{‚¶…G pÖ/X¿`ý‚Xg™Õe–iýcã‹'µÛX‚FýÖѪã/ý¨ß8õï±*æíºo×}»®ö…M pÄV,\±pEÌé Í‚· ¼±u‹pG¿Û^¼¤Oû©ç”K-ò±êafÖ̬™YÚ  0@-Û¾lû²í¹ÇÀs×uÙÙôÒðE¿Ÿµêÿvú¹ßûã#ùøH튒 _–§.O]žš{zYÇ´zµïÙñÂð”LÞÐ÷ðY#ßÉXûðŸÏíÛpwî÷;+eVʬmŠž dMΚœ5¹L^¾¥Ë¸¦“+úýwÕ¾ã[ý«ÆŒ 7¥ Êýî2»fvÍìª=@¢€ Ì®Óv¶ë´A›m´)÷ ´Æü w¤üéÝ›{oþÚ¡µ#ŸÈø¨¸…¾Ÿo™þ~×a§ÿP}ëÿq/“kL®19«zVõ¬êÚ$–  mÎÙœ³ù…¾/ô}¡o™¸=õNÆö´ÌëFdeôKTèûf½î<;£éöêU¾4žk¾5ûÖì[³³›e7Ënæe€â@ Pˆ¶TÙReK•¡¥†–Z*þ0¸uÔ-U:ϬyÞä&ïd­²²m›‚ z·ºäêö³æ7ìúS³éöÕŸ’º8þk«ŸU?«~֪Ϋ:¯êìõ€âF PDVt\ÑqEÇô‰éÓ'–É“†—T9Pqî ÏrjÖ”¯Î]ßè‚—×ty¨iýwÚöø¹ùèÅ{mlñx悞_5Ï~}~׋›uxü©ŽKÓN¸nÇÙïÖ¹»Í5W¹¿L>Ì9äü‘‡Ÿ8üÄá'¼šP< €ŠÖþœý9ûWN_9}åôþmû·íß¶L±”¶ mAÚ‚·Ö¾µö­µ‡N:tÒ¡“¼tPü €짯~úꧯfl˜±aƆ†ƒj8(Q¡ï=;îÙqÏŽ¬«³®ÎºÚëÉH Pìl·mܶq™¥3Kg–¾±ÛÝnìÖphá ‡æ?â­2±ÊÄ*GW]et•W»¼ÚåÕ.›Jm*µ©”:€p$½è ÷™ëž¹î™ëÔ ”4`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤'`€¤7ûÉÙOÎ~òÚÑ׎¾vtðßËk.¯¹¼¦š€’F `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB ÿÊ×b%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/exhaust.png000066400000000000000000002731371431412030200250670ustar00rootroot00000000000000‰PNG  IHDR¡ÐñH&gAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝgTi`uwu]]Qì‚ J“.‚R,€½aoˆ½ëÚ+*XèÒ{é"]Š Š ˆHï½·$óýÈ÷ƒ=CØHPÜçF¢Q¢Q¢‘þßôï£??Sð³àgÁÏ@¿ôPkù6 »ú’kœú¦ù²o1ûÐ;ó^Í{5ï•nöÝ;tïPQQQ…ñ×Ç_}œ¦L3˜f°àæ‚› nîž´{ÒîI÷Bï…Þ ÕeýïÐÿ&ýïÓ =‡ž®]7º}èY‡O‡O‡`èg<œWÜ–\7آ߮5ñÉæwr8§ ¾›ú"õEꋾ7®;s æ@Œ„´„´„ô„'žLx‚N<3Jf”Ì(Yykå­•·t)úèãÁ¼|¯At0ýèøÂ¾ðÕ¿¾^œ~qúÅé[!·Bn…ý.ô»Ðï½{¹Ÿ =A{‚öÙ̳™g3½R½R½RcÇ=Ξ[í6ÍmšÛ4FÛb³géGѯƒ9úíZ#L7x/PfÔ+zzz<ð…/|ýë%åEÊ‹÷9îsÜç°ÑÙ¨Ú¨Ú¨úÏðŸá?#Ú.Ú.Ú½í__±F±F±FG1 0 0 ÐeKô±ÑÇI3æn09‹8‹8‹ìòÚåµË‹•C!*Š*Š*ЦGMš “ “ “Boû×WLpLpL° · · ÷\®¹\s¹Øó ›ŒºŒºŒºí Û¶+bWÇ®Ž]¹Ã¾ð…/|á _¬‘÷:¬‡[·ŽÎ ¼¯k!×B®vlرaÌï…Ò~Ý``¨J¨J¨Jð*ò*ò*RSScå„þ]ý»úw³Õ³Õ³Õi‡h‡h‡~íÖµMn›Ü6™ÑhOÏ•šÂ¯†Ð—\(Êúb¥ŒúV2·dnÉ\2|dø¨wsmáåè`háv;ÈÝTÜË4~¿…Œß¬÷c¬8g~ZlÍSYioOÿoú÷é?Cÿyúïöîqéc¦Ÿ¾-˜ÒÁŒbN1§˜§5¦5¦5jjijij±²W¼Vh­ÐZ¡`Õ`Õ`Õzãzãzct˜íÞ³^Ð^Ð^ þü‰•¹žòXâÌ¢Éü&›>¹(âw|ýÝs_m%$¥~k»³…¢¢«kJŠïM+';q‡KêÂGÇhð]ÝpøÀÈÉcDŽJ;öîqù¼ù¼ù¼ãÚãÚãÚ A!(˜Sèòž=,Dgzp{ÿÉý'÷¿ãêkôŸÿù¡oW€úú-¡¤¶¤¶ÄßÜßÜß|ù©å§–Ÿb倈öFíÚ3^f¼ÌxIÝHÝHÝø3·E›_›_›Ÿ<ª™Üã'¶;©œŽ¸·›šwlªÒÞiónϬ"woEüŠøñD:‘N¤ãùÿa±‚XQ#R#R#’ ˜ ˜ ÈJ$ìô—Ó_N¥k¦k¦k¶ð´ð´ð Á¿JõÇêÕ_8¾p|Áü ÚF=>õ@åùÔ·Ê–¡áu…FvCèán_Uúߤÿ}úc1?6ú¶Ð· ó tÔTj*553*3*3êÞ×{_ï}ee¯xÙøeã—÷öö®±©±©±A‡•ô“é'ÓOÎÓœ§9O“ùäY¨”³6HüÕåm‹þ²Ö‰Œ£‡»}UåBÍ÷…ž“;·êAä4˺K[™ÛòË7.ߘ?9rþdÌ/|/ÀOÿ }»B ðÃ5D6D6D¾è|Ñù¢sãÁ7dåà×ÕÌ«™W3?¤~HýÚÙÒÙÒÙò#Æü5ákÂ×Fcȹû ¢‚Þžkу;–I3êa˜x˜x˜8žðÝžOˆ'uë6ÖmLLL4’0’0’èå…£_Û¼¶yýqÈÇ!‡4m:Út þqhÚ4mšvâðÄá‰Ã™™ã ëõS|KÞ”ZzÄ„WÚÛömÜËT ¯,´·¥>fFNßFúöbÞá_Ï‚Z-!G9G9GÙ¨Þ¨Þ¨ž#™#™#¹w{Ų/d_ȾxÒø¤ñIcå®Ê]•»Ðá§£¸£¸£ø®Í]›»6ÌÌÎDݹ¢§Åk.{ZzõmÐûu”ëäNQ¿ì ͸4§dOïdfävvv´´´˜w`àa`„¾]!øš74ohÞ5-jZÔ´]vMØ5•HøìijÏN|ãüÆùsÇæŽÍ›Y᪜U9«rÈe¶dÒ¼T„»Ì×HëcÜb4wxFKЉb¢¸asÃæ†ÍoëßÖ¿­7‹4‹4‹ì]$l®a®a®ñn﻽ïö655DW*–467676Û¶;lwø?.æ¬ç¸ÏP7Ø1Ó̺(&ª²ÌÞŒjTe™½}lôqöŒ¾½ômdž.‰‹ùwòïäß±Œ´Œ´Œœ6wÚÜis{·W,:At‚è×\×\×ÜÒŒÒŒÒ ¢“è$:ÑfVL.˜\0yvÉì’Ù%=÷jÉ|õÅ"2 ºG½–ý²Ð—Qv=”¢)=_‹p#&êÏu½ðgœï_¶ÙþªÚªÚªZ¬èàþkà…¾]!` ­ö­ö­öq-q-q-o¼yð&+‘ðQŽ£G9^Ï}=÷õܶm'ÚN0?’,>X0 ,WY©LA¬û½uÍ®9w§û’ûùôàÓƒObý@£4‚Ö$Õ$Õ$õÁêƒÕ+AAÁÞEÂFŸ>}N¶O¶O¶¯{P÷ îáGø~h33J”<(yÀLŸÞ¦ùZ5±QÜËD¥™™­£÷똒Cä9Å׋¯_wTqTqT™«0Wa®BïöŠg Ïž-lwÏîžÝ½¢QE£ŠFQD…63#nlÜØ¸±=wxœúÄM“OK¯ÖVußÉv¡oUÂúj¤ÍNfVQúÈô‘é#±€ÀýËÀ}»B À¦ÚÛÛ“õ’õ’õN¹žr=åÊJ$¬þJý•ú«˜£1Gc޶,jYÔ²ˆÑã®®Z]µº›;×¾ücýN™Ëˆr{W¿žÚ-¤ÈðÀ%åååÖ<ühÍ5Í5Í5é“Ò'¥OrüÇñÇX¹£pB`B`B`Í©šS5§ˆ-Äb :ÜÕ×ñ_Çßs–‡~4¥Ek—¿²—è_Ño×J?}[zÞ^zO°6 wÊEÊEÊEÞxÿá}É¿%ÿ–ü»w{Å;'vNì4+4+4+ÌmÏmÏm'ä yBîÊg´ÏhŸÑ=wRp¬zöE… çº$Çþýv­òO<â5ø6n?¸¤çí©Š©Š©ÂÚ2Àìoð„¾]!è7:wwîîÜý>ã}ÆûŒKš—4/i² o™·eÞ–yaûÃö‡íoŒoŒoŒ/h.h.h&ÿ$—.ç.Ž,Úì£/T¾ Êe¥îÐ>Éû´›ÃI3bfÄÌÀ €Ÿ¯U§U§U'óRæ¥ÌKnnn¬D¯<_y¾ò¬¨¨ eÐ2hƒ³«Ÿ“?'Nî¹WÎéÓ¬ößЗQ¥oWÏÛNïž}Àº*«*«*+¯[^·¼nÉ[É[É[±²o¬ß©ß©ß™í’í’íB;O;O;?8»ê®ä®ä®Ôs¯æ Þò8·ÿ†¾Œªäo×¹ì¸zÞö—f/Í^šáÙ]!fOƒ3ôí 0@?FI£¤QÒ>}ýôõÓ×[ãn»5Ž•Ã^"Å"Å"ÅäïûN]½JŠ@|ËzMoÜ-Ÿ@î°J­J­J-Ö3°ƒ6J¥’í—í—íçaéaéaÉJ$y#òFäòèòèòhš4Mš&=°»÷uË×-_·0¼˜öh“}ú#Ã笲}5ð¢ß®•¾ôíex6ð–¯[¾â¬qèëC<¡µ¡µ¡þ’þ’þ’ª™ª™ª™¬ìk¿Õ~«ýöóÐÏC?¥  ØÝóÖñÖñÖaxæô_sþ9¹0ÎÊ'ÂkàE¿]«ìCãö áŠ®)Œº».v]ì:<ã€0}"ô¡oW€Ú0Ú0Ú°,û,û,{   –µ„jQE|Û5òØFÕ3k¹_ŒŸBîsµCµCµÖ0°›Žuë:Ö}Kú–ô-Éû¼÷yïó¬DÂ/…_ ¿._:¿t>õ õ õÌÀèRIyIyI9£­6¯wØa¸5jNéA»ˆýv­ôí¥o;Ã{——”—”ãY?NƒUƒUƒÕ §N/œ6¤mHÛÆÊ^ñµm×¶]ÛöqêÇ©§RFQFQF Œ.ÅnŠÝ»‰ÑVO³Xpgi|–£|ïÀŽ~»ÖE+mÖEÅOx?Kdî FÉhÈhÈhÀ³ ÿZ}A 0ÀÑ*i•´Êo\߸¾q5>j|t\ŸŠq̼žR—|ÏÏà¶oë£aËu$BÈÝöIõIõIÅŠöש٩٩™‘‘á7Ïožßj}Ôú¨õëk¯¯½¾Ö¦×¦×¦Çž[Ýq¢ãDlj™{gî¹·› >¯™“;ïš|¾ãæ¥Áýþëlà9ÖQrŒf|•ù*óUæÄBb!±Ï&€Á ðÏÐ÷{!B@X@X@˜üÙ6éðeMD¶}\[ŽVUžòpüÐqÈ=ï(ì(ì(Äš€þŽz–z–z¶T¡T¡Tá¥ìKÙ—²¬DÂÞ½züý-ú[tÇêŽÕ«Ùa“ö%íKÚÇhÌᣠ†Ù"úý×½G ³ dÔ1z?ñÜvÐ~§ýNûd¹d¹d¹SÓNM;5•HxïÚ½k÷®‰Š‰Š‰jQoQoQg‡mÔúªõUë+£1/̳þ-r ¢ßÝxþ»€%Œ:æjëjëj‹çÀà„øÇAèË ÀƒZ«p«pk7ѯ<7ïÅ)ÃØ-:-»ªá±¸YÇXÞD˜c›™¯¬dÞôk&ZûÆ+ttr÷ïÊ1³}§¶s+퉭™±?f©<{ÆÀ·ÈY vs)ï_óþÆÊ€‡&C“¡É”'–'–'FêFêF²’ëzÜ÷¸ïq?ûIö“ì'mmmmmm?s[jkk™k?=°æAÜ˨Òûè{ôÞâùì¦S¹S¹Sù½Þ{½÷z)))¬DÂ["¶Dl‰‹‹‹h¬l¬l¬ü™Û’f’f’fÂhló÷ß ôx¸—Q•¿rÍ*”Q÷ŠŠŠð|l÷-„¾}0À –3*gTÎ(ò[¦Q‚bžÈeö‰KcŠÕVÊ*Θ7a#×âï=ÄV¯^¢TÌnpTÑFýÉäÑ•••`eÀ`@ˤeÒ2«ÄªÄªÄ^¿ ~ÌJ$ìvÏížÛ½Ì“™'3O¶j·j·jÿA#¾ß\ƸŒqCÃÃE/ÜMãñ2Sé½"÷Þ[zŸñvF‰¢DQ¢>™2ÿd~Óò¦åMKV"áÕÅ«‹W] ºt±^²^²^ò‡¼ên¢m¢mÈÈÈ$AÐHãÈeoD¼ÌÔÙcW7ìYMîáfÝͺ›uñìl³¡ï€`P • • íæŽV¯¸ÔvÊ®`‡ ´ùÑ¡Ëj¯L¾?á-}lsMº:AÈ´|ññy‡ã=7=—›ô)dÇjù[ÑMkeÿ¼Ý¾pš 9ýœà®[Änp±üÞs‹’;Wí®Ú]5¬L¤¶Ûˆm5j.Ô\HˆNˆNˆf%vÜç¸Ïq_úßé§ÿÝ\Þ\Þ\Îúóžå=Ë{Æè£ùËyíÇ!Üe¦Ò{Ũ“ô>ã ý µ‘ÚHmÌÚšµ5këýÒû¥÷KY‰„—¼^òzÉëg%ÏJž•ÔHÕHÕH±>€؀؀Xòcq‰N.š¡`çì$Žp—™*?Ö.òU9£¹{;÷íÜ·sñŒ<³.øYð³àg}û`€AÍì¢ÙE³‹ä·Ò|©=õJÙ!(¥ÇºôQq6pÄrhf^Û鯰Q¸KÞ–Ù'ž¯ÃnpkÕá#ÊçÉ£UQQÁÊø?Ÿ𯳬³¬³LöHöHö0*3*3*ë]$l3Ùf²Íä >4Íkš×4 4‚ÆÔHv;ˆÆÑÆÑÆÝÄÒ¢í­¢ë~o¥÷ÜOzŸé=Ç“ú/Z-–—“–“–“ö ñAãƒÆq‹Ç-·¸w‘ð‚ý ö/Øÿ„ã ÇŽŠªŠªŠ*æGB™M™M™Íè/K‡Ýyôˆ±î÷V1â ÓpúùmµaôÁËxØ!(M¼¾9B.ìl¥´ÖÝÛòåª̜ÑK‰Ùí<`Z˱᪑GÈ/Â/€± ¢‚¨h0k0k0{wüÝñwÇÍÏšŸ5?Û»HØì™Ù3³goKÞ–¼-iX×°®aQDEä‡-8Rp¤àù/˜ Û3^Y`o‹@÷»kxe½-½‡äÞÒ{Ž%Ê}â>q¿àÏ‚? þ´zaõÂêÅt‹éÓ-z ‹‹‹»4º4º4–î-Ý[º—h%Z‰VòƆ†’ÿ´bÙ;Ê‹åö²þîRžüm<ÿ´ZÞ§äÞ¦>I}’úK`0@ÜWºžŒÐ—u€µ7^ÜØÍÀÜGd”ëØí¬Ù®çø2ú¿T‘£»UÜ;,Ž›çÈÎ0½N¹ÀU3îXwã€ïÓtªéTÓ©}üëã_6Ÿm>Û|î]$lÄkÄkÄ›<#yFòŒºÕu«ëV„áá²Ãe‡ËòÏ}û¬jýQ.+•ÞÃnî¼Ãe‡ Ά®„(!JŠ[‹[‹[dœdœdÜÜÜz ÏŒ;3ÖÖÄÖÄÖ¤P¿P¿PŸ0!LaÆus®j¬þhŸ}ˆrY©’˯—ÛÏ!÷vë¾­û¶îà {B 0¨)æ+æ+æ“wS¨ëŽUyÊžpÝ–zFqm”_`ï2\Å[ÜúÖD¹£‚s¶ßÅ{†gÆ/®ËŒŠ±Û¶HL›¦>Q0ÀÐÂ×Â×—®“®“®ã4ÅiŠÓÝ>edoº]_.Ƨ2ÉÞ¢®¡C¿¾°yÞu[~ñ¨|*“ì-èý$÷¹!¶!¶!ë›rçrçrçG§ztJê¨ÔQ©£½‹„'O0ž`Lþþ¤$áRwß²^r\Î$3¼¬wõÝê»Õw±ž6ÀÀž j²Ö²Ö²ÖäÝÚ”£A*Y씾›¹õó¢aFÍ-œqo\!çtŽFY¤>Lß7‰o_•¨á,cö€e7ñŒ™,ˆàçh}Ñú¢õEf~f~f¾»œ»œ»+ð³7É4Ë•ýñŒ[¶ €c*+ííéý$÷9y^ò¼äyX½ÕCª‡TñÞã½Ç{B™B™B $‚¯Í²ÉF|ÛWU¸äÈ{-9rŸ <x$€Õ 0°!ö„`PS’Q’Q’éæ `™£*ØçÀ­Ç}㌥M|ÌÔŽ‰«î¼Y$($ôtmØüë9b»Ï)í\}ÄSE†þ[ÙkwE)t²,¾fçÄí€~•vÁvÁvÁ¯“¾Nú:é‰Ì™'2ÌÀ‘_JòìÜ÷U¥÷“ÜgC#C#C#¢š¨&ª±bºª›R7¥nJÀˆ€#VÌ\1sÅLæ`ùrÇS nûª.t°‰ø£› "A‘ `­ l€=!ÔԤԤԤȻ)íÙGx• Ù!"]³bŽæt/ú¨öçˆÏЧM?¬’Õs¬ûe÷®C ñìOÎux7`öÑq¹ãrÇå\á\á\aÏ8Ï8Ï8r$içF3rè¿÷ÜeϘ^é½%÷¼Y®Y®Yë g 5 5 5¡ÇC‡_é±Òc¥y?“×[ùÔ&kD¶?¢NŒX)¶–ÜóúÄúÄúD¬O€ 0°'ÀƒÚ™{gî¹×ÍA £ƒ.Æé´ÕãÆ}¢*yÏ– 0ó[aë×§ËİsLK;Ú®:Œ<Â9&sLæ˜`e°ƒìšìšìšn.þœœi¹ð¹tpr¦åRrÏés5 À<§O=žvsNjÌ5Û?Öþ Aû¼}€ÜóøÂøÂøB¬I€ 0°'Àƒšyºyºy:y7%oÉk¥)ì”ЬšbÎ}–>*ï%«Jíìùç‹‚÷.^<~'`v€[Ï–SÞFá¦ÒM¥›J±2ØAè_¡…þE#ÃlòرQ¬;¡"Ú~¿—~ü )«b×kFj†)ÆuzMú› ëÍ4ɰj2Xëz6 Å$#œ¿`žm8;ÀôÞ’{NŸ ¬IæíÚ±kÇ®ä½Í…ÙVM‘ÃÙ-:Õ<Ój9ÍxÁù¥_¹|§^Ÿ‘Äé7AŠûùD͹WD•ærl7>e,Ú¾*îôQuß ]·ˆ}¶bÁ>Ã!¾%äžßÿãþ÷ÿÀš¨{B 0¨½téþÒ¼›ýÏÆÈì”1<ûÿõÌzîã§<|¹ü¤„GÁ'uC%ßòãû†,‰÷Üô\nÒíö…ÓÍ'ér-àì`t·3ö €‹öŽR¢tsxHò¾ä}I¬Lv`:Ùt²édr3ºÂÏ~/;Ä¥!E¥vK- gæ2÷bï‚×ÞÙ3¦÷–u<ÞÍv±ÃU;ÞH8GÛ¢‹V,Z… 0P!ö„`Pû¶äÛ’oKÈ») ¥Âyì”V)ìÿ{É{¡£“ó¸gþÀPÖ‰]£Œgœxr¼N×ï¯Þ6göô‹ì°]5Þ/èæœŒ§!OCžbeüZÔxj<5žCšM·1xÉA©n¥Ž½®õv·%FWºŽÐæòCi£L¯‰q,þäüÄo=êiNœy‡õ ×£CŒ"av»H5½ÏäqÒçë g-E-E-EäýÌi: v-`ŸóeyE—~Ûhõ¯ûYºfC–(ïé4}éGw4&Ì;|R_g33!1ûl׸èIzS¨ÝýST˜{B 0¨µæ·æ·æ“wSdùfP'Ï`Ÿóeé£ÒªXxQ0IQxæ¢)×é÷¦×¥¹³(S ¬,½'êC9º[å_ç4ÓÃã©;Ç+s<~P"€ï*;lÑݲtÉÏ?ž<ÿ8V&À/~¼Ôz©õ9€tYî—`rŽ-î•{1ù°¥H×±=žÖav”þ½®Eæ&ö€é}&“>/XŸ=+Ñ+Ñ+Ñ#ïgÎßÞtš-‚RIÍI>]Ç&²áØtírúÿeñεߩz&žýàMŠÄkÀƒ``O€€QQQ%הּŽ;Ì­¼”Ýbàïý¿ìvñg"çØnUÅ ÆÍçÜCîyçíÎÛ·±&~­ÚàÚàÚ`rééC57f‡ˆÔ¦â!ňFýÐÌüV´[y›ý"ã`Ë¡úÕìÓûLî?}^°>zö‰ë×'.ò~¦è´Ó¯õ°Å¹¿C–®ÙEÕô)rB*㘠qò]4“Õ&®›S<ï;Às'mrÊ0ÀàØ` ŒŒŒÈ;+‰›Kä>±Qt: jÙ È% /g}ùá凗¦ÞM½›z·Ó¬Ó¬Ó ëàç+{Rö¤ì 9€ôÕH¡Y^g‡ˆÔXÓÂQÿËÿGeñf‡¥!óQ.ûŸLï3yœôyÁúèYlZlZlZ7wÏU»1Ú~3;D¤5ç^U¢Jüóå–˜qÙÿ `Ñ£~Ú{ €=!"óEæ‹Ìä•£óÄóf·#²íÛêR®:D<™ùûŸþxúãé)KR–¤,iÿÖþ­ýV,|*A%¨¯n¼ºñêÆ Þ¼/xƒÆ ú:ôuèë„e Ë–¡Id…Ÿ ?~"þW?hXÝùµáhTxÙ1»Ú®£ =ŸsË&ƒù¿ðüÚÛ2Ë,v€é}&÷Ÿ>/XŸ¿VãŒÆ3rÇåŽË—}(ûPö¡ì;Ùw²ïäÉ=’{¤ejËÔ–©èÒ¯õ¢ðEá‹Bò^¥ôƒ;ûµá¨B€seÒ¿îû+Ëý@Ö?–ù¿ ~ý’’y&;À¢ gÙ#fO¹Y¹Y¹Y’’’ÁJÁJÁJÁMÁMÁMQÒQÒQÒõÎõÎõÎè|/ÀÀžA}E}E}Å(€l^~èIJ/nû ^<&£:wêðñüãô9XpèÅ¡‡^ććć´¶¶b N9¢9¢9¢®û]÷»îß”³)gSGá,à,à,8lpØà°ÁóÇÏ?\ªTªTª„žÃàQ P P @ Ž¥ µJûµáhØð¼…¶{ºŽŠ 3ÿ‚_e~´®gç˜Þgrÿéó‚õù#P„)ÂጌŒj 5†j»Ìv™í2Ý>bŸlŸlŸ§§§XlPlPl@Õ¥êRuÑù!hVЬ Yä÷÷ù ïÍ÷àûµá¨¬«qm`{×Qɧ8rÄ—2ÿæÝ_øä";ÀbI8LG þ™š—6/m^[[[vóËÍ/7¿ˆÜ¹/r¿¯öE/Š^mxÚð´áéwâïÄ߉S7P7P7 óÀÎÀÿéeéeée‘?î>µYé Ùø–õúÑg»žüHr‡888Y9$±{ûîí»·G•D•D•4»5»5»a=<é)é)é)—Ê/•_*çøEÆÅŒ‹c:Ët–鬢ÃE‡‹c^` *l(l(lèæ àõ&Y]üµáhtvÅnûuÿ:Ø'§Ð¦â;ήz÷Ü’`ë3€×˜du‘Üÿ¢±Ec‹Æb}²Žzzzá‹Õ«/Vnnnº¿Èãã?>ž³ gAÎZ-€€Ùa]¨P¨P¨P7gÿ£ýÒ½î׆£rÅæ5/yY9XBúŠŽU[ŸüöŸF£ßÿ8­‘­‘­‘¾}ú”×–×–×þUûÆ›œ79orŽ’’’'¦Ó‰é˜`€àÿŠ÷ï/ÞÏèÃ-uÕÑ#*žqY©j²y¦vsY˜„¸„¸„ÎW¯:_}àûÀ÷ïJÀ•€+¬ŒPóSóSó }ú>ô}ãäÆÉ“±Âû—ö3ígÚÏx7x7x7LTœ¨8Q‘ƒ--Y²dÉ’% .&\$F#ˆ˜;ÊêËêË껹ðø”k–ûØ!"ýר޾‰°tfþw=B#ƒÌjØúÀãS®Yî#÷+“ b b báZáZáZºl,Ú5Ú5ÚµivÓì¦Ù˜µÞ‰»w=îz7÷žz}¯Ýv»4=Ðeþ/©íϸ–ÊΰpÅ‘¯Z«÷­¼¿òþÊûëLÉ™’3%lL7Z7Z7ºòmåÛÊ·˜5øµÀ¿¨5©5©5‘?ÊÖ¯½4#BÜÞÕÌ×;ß)g®[Q­¨V习ΥΥÎ͘”1)c’–Œ–Œ– +#VÄ­ˆ[ðOÀ?ÿÔ­ª[U· «ÝP~§üNùÝÃÕÃÕÕ•¹Þ¶my:¯°aðYk‘…¾²†ÖÒÃãþtÈ“}I))ªªôJy–$©r?*ÀöÆ‚¨':œ’§´rŽMLX®¶hÍ4ÃÞ=.ß ¾|7âwÆïŒß‰Ù„þ®nzÝôºéähÊsvŒ ùav €-ãu ˜:{Ø­¼Í~‘É+ƒ9ìÓûŒ˜u›75n 8.p\ïâXë#þ4({áf·ÑüÜ»`·ë6¾Úy8ÙÛ×®¦çü… ÝÝéµJÁç°óܯÃ=ŽØ_{ãÆk£2×6Þ|šEÑ ƒí½{ôÐQ¡£BG5Ÿh>Ñ|³É¼ô¡éCÓ‡’ß©çÅžòÑMf‡ˆ´ë¨¦§-:·â7¦Âã|ÍdµI ŠŠ³õ% çxoÛz¢0ëò[ó[ó[÷ˆîÝ#Ú»½SÞý"F´” ÷7ñm–Ò:'aß\GGáIoÅðJäikþ,#C¯'SýÚD;÷jÚ éo<¯-Íÿuï®E3NLþ‡÷4—xïý:ßu¾ë|555˜MøùÀ¿mMßš¾•чØ6¿Ã~Ê.t¿£æSWUZöqöÖ©ÝÜeÙ÷žï=ß{ÌÏM™¦LSþÿ%þK¼Þ9½szçX‰ ½S¼S¼Sª¥«¥«¥±þ•$¡$¡$!._._._ægðŸÕ»vñ¿‹+w4‘­j~¸¬®kÄËz­˜öÒkÉæ 3¦æŸÚ²EuOÈwüƒƒ+>®øX0º`tÁhÌ/ôG­9­9­9ä8ÊùÁóû&óÙ!"}ö,9ÙR‰ÕÎ׺†»}U«”|; $½tq·Þd,¢OÕÿ‹ù¦ÌN™2›ú‘ú‘ú³Ü³Ò{¥÷Jï‘ßç<Þ¶ôD>[Ü%·ö‚®©Û¿ÂiÙm÷­{þ-9»(g;îÙ²MLøÐ»HXz¼ôxéñrå>Ê-Ï,Ï,ÏÄsáÇinnnnn>Sz¦ôL)3³³æ™ÒÍé¯^ÿí¬ w´oƒ^æ+µ0™OåÍóV£fé³óyÌÆë33r‡ãÇŽÓ i…´BÌ;ô´´´äÊ”Ãz§[¥º•:öÝ„d6—Jezmˆ«·à äüÄo=ÊK?~‹…”µ©Û##úÏ[Õ¯fç˜ÞgÀß«ìfÙͲ›ÌGªq¯Þ[I5*úR]"DÜËL­kôås‘‹árüÇr73c6Þa¼ÃxGe{e{e;fœ‘Ö‡­[’ß‘§†Kg+Ýa‹ ”ÃulÊØÃäÿXý¯ó5C•-7¥ˆjži5ˆ”N»Óðèμ†ÓKôôfìU\%Gÿ™‰šs¯ˆ*ýÿì9Æ©°[Ìùe‚ÿÄÍ€¿W’R’R’óŸ\ÖÊ^ûÈwþŠIÂ5Éâ>Ž{™®ç&†‰‰G,½}to3cy)òRäå·ùßæ›€ 0t#ïXÞ±¼cŒ>¸f:ïŒR؇p·çZkw`ÝR3F=Œ^½>zý™fú`è†æYoódü«”&ýªÐ—auN¹­*þæ€ûñ…Ž &ˆÚLÊÿs‚—¬X²bIÍ­š[5·° ¿0?`~Àü@7÷(-ª8a¿‘‚ÒˆQ…áv#Í£þ0Ta&<3;jûÌ  ³gLïm7ç§0?`~k²‚BPRüSüSü™YœÜØNï àq{ú«B_FµãŽ¿ÛÁ·–n6RLm‹ðáÂXÝÈ$2‰L†gÊŽvý-™`Ÿ AÏt]~fÛUfö‹¦˜Jˆ,Œ•’¼ùÞ©þñ §KðìËG8Ä{“G®d«d«d‹…Ù iBš6Øe°Ë`3k`G’I´€û­ãÏÎýU¡/£z½ùÍQéëÄnhñÅ3³-Þ›½7{oÆ€00¤wQï¢^7wØânçÊéÜj~XUy/‚Þnê•c T¶,àyIîÞF§NA#h?i"›‰f¢¹tvéìÒÙ.7]nºÜ!2BdDï"á+g¬œ±ÒZÊZÊZª`UÁª‚UÄâñÏf^ ¼x¥çÏÿ4Ïa’ÍçNï òlúöX#vX?Z°€™U”9=szæt¬`aaaäØ)l\ÞÛ}ìšþÿþÄ÷bÒÌu,Õœ¢ S JìÓóÐ72üKOÚLÔv•AÔ£À0)³%QáeÇìjÙùÐôÞvÓs‰0‰0 ¬É®(r9ŠÜ3ÍgšÏ4ÿãL_§(+¡N€Énìú2ªí_ýϸ)Ei;|µÚóÖ999S}¨>T¬Š®4†h ÑB~^¨m™îÀ>çËÒG%îy郅ï¥k6dqá%ø‰Óo‚÷súå÷»tHa«SBâô®Û2IF0ZB‚}`™"ýó>%äžëÿ¡ÿ‡þX“]5½mzÛôvíúµë×®ïy¿qݺÁ|ïoe§ÉÌßÌn¡/£z-%YCê¡’ûiÿmò·Éß&ÓªhU´*<ƒº²{h÷ÐîaÏt¯¼%q…¸“r\U¨E¿]kKYÜ3eÙ+ÍûgÍíy{¸¸¸±6€åøåøåø‘'ߤ±ìvÙä®a0£ïwý¿ìyñgzoÉ=§ÏÖ$]ÛÖ¶­m[m¥l¥lž)knnèh0²ú•O‹óíþú2ªÞIN¯ žê=×Sd´½®o]ߺ¾ípípípÅ ¡ó2ó2óêæj4Ã.WXÒØ'&‡Á=Ÿ~Qhúw¦Iʬ_r€}`¡¤ƒ«oø‘{ž4:itÒh¬IºÊ£•G+òÜæ¹Ís›Ñ^âÌ&±ÕÜ#ÎgD.’Pë/¡/£z<ðÙ Ñå=ïoÚ¶iÛ¦mí"í"í"X!ÐWÀø¬óYç³£«ÆÙJ"u}é5Xwݘù>Œz¼$xIðvžëš!5Cj†<»öìÚ³kKf.™¹d& tNèœÐ9‘åšåšåJûö;í÷Áù 2v2v2vbÔ¥ñ\­_=Ÿ¥¸²ÿ†¾ Ï 6·N[ Üó:‰ª‰ª‰ªÁ+-°§–5-kZÖ£&+.—¿F³gÜß+½·äž;Ë:Ë:Ë~¶ølñÙ¢uFëŒÖƒsM¶µµo5Þj¼•QùØÁÀâ=í€vwñþýv­û€ónß^ÈØ šï`´í6î6î6îs;ævÌÅ+Xasasa3ù—gïâëVÿÚ tNÀ¶'¹'Å_–:,«®r¡Šùßåù°äå†ÿŸÌ[¦2w³ûÀÜ«gû î'÷\uêÕ=©©©u—ê.Õ]œk²Ü²Ü²Ü²ç=ÕI>Î^§õ(cËüªþýv­šOÞ«KÛ,X±YgúlFÛ¾tõÒÕKW·­o[ß¶¯`À:ÀÀ”'+ž¬x²‚чUge•â'sôûj¨Ú&Y†A×õºëu×ëúã¼×ÿ^ÿ{ýïAýô÷jåÕÊ«•Y‰„oM¿5ýÖôOŸ >P>Q>Q> ìgíMÛ›¶7^ÎNsqÙ áæá±ó—¥ ¼è·kͳ X¨$ÚóÚHŒJŒJŒÂ+-°A#h&U&U&UÝÄlkŠ+ì. ²í«Jï§.ÓF;ŒvýIä“È'‘æÍ7šo ìÅØ±¤cIdz3fgÌÎ0êI†à#y;þú2ª©¦îB6y ׿¿?eeeÝ ~IŒ$F2zç•7uØ×ù«‚R‘ Ǧk—ÓG2a¯ÿñEBÖÕQËÿãËôå|8ÚÆUrEÒW”÷tš¾ ;D¿ ÇXœy™Àü^±’€’€’€˜˜XõÁêƒÕöb¬ý§öŸÚzîÉÞ‹vB:)ôí¦ûì-#º~ïM ~!F}X5vÕØUc;S:S:S°#¬@ ßAó˜æ1ÍcŒ>¬Ú_[Ö)f2آ߈Q®-àgøoØÃV†­ £TSª)Õc 4Æ4Æ4Æ„í Û¶s ïÞ-¼¬D—ô.é]Ò{Ÿó>ç}N§z§z§úÀè’ªª*£­>ö~ë ¾mÔ!IçUlvôÛµÖœäXºž_ˆ×lü'FÉŽÌŽÌŽÄ+-°›·oÞ ts!赉‡,’ÜöÙÅŸ×&²HÖeU˜U˜UXªkªkªkcpcpc0ÑItý}Ò6Ó6Ó6»Û¸Û¸Û0Úöüéž+\CôÛµ~êqÆþ&£žx‡y‡y‡ê„:¡>˜_Át^è¼ÐyA~Ïwºäkqô—Å¥ÿX> ß2~át ^¢ë¨è—w–¥™rŸ•_l¿#Ö_úч ‚¶F—¿qiM)Ÿñ7ý'é÷ –Oqäˆ/e‹‹?[x|ý++{ÅÒ~Ò~Ò~—?^þxyŨŠQ£Æ l7h7h7š&5MjÃ}ãÝ^uó> ðè—Tw¶™}ü“QOŽ :.D¤iDöÄ wÀw éÑôhzkü­ñ7£«·×Èe ž¤võTù0°£ßG–{I¼eÔÁM‚›75[4[4[ ìUÑ"Û"Û"£££¡¤¤ÄÊÁ¯S>§|Nù$›&›&›¶»¶»¶÷³;ù}ªÿTÿ©žá¡Õ­øÎÑ^%§©ÐOôÛµ6ŒŽÎ_Æ3ûÏüñgu©Á¡Á¡Á¯·À>šv4íhêæ’³úM†‘zÛb *Øë!¾e©T>°×£÷³›{Ùºš»š»ö.6]nºÜtù›Æ7oëßÕ¿«Gd™DfÿZŒ¶± ųÌñ·Áýv­96öéŒú¿*~UüªÁü –k‘k‘kA~·åŽã^¯¨à꜒ôkïøËyg¼ë„&æ÷¹|§^Ÿ‘$v§áÑv¸ø³‚»ó‹¤ÍŒF˳g϶Þí 6 6 6:Ovžì<¹ädÉÉ’“DQETõ¯xlí±µÇÖ2ÚÆSŸQE ¶è·kÝ-hQ"xšQl:l:l:°'½ƒ¾e/e/eïNÁ‚;}X]±ÿi¯k’ ]z` …¾+øR®Ø¼æ%/ûÜ÷WbÔ•ß­fvsAãò½å{ˉF¢‘h,©*©*©rárárá>,|XøpïöŠgǪ̂™Qcíníní^p¿à~Á}Â’°$,ÙsÕy®ö\í¹šÑ¶öx¢Hð`Ž~»ÖÍ ºëçgÔ«·Éo“ß&cO ¾`è%J)¥”Rz<èxÐñÿ8ã3rç†Ögû{ôûÉc‡Šüõ‰.ãò9ãméÂe —-\ÖPÙPÙP‰ÒUÇÆŽßX¿±~c}vÔÙQgG± ïšµkÖ®YQ|Q|Q|Í›š75ob‡m<Öv¬íX7¡æ¤iÜ»9ó› bó—Qýv­Ù|o(Nf4Ë^ý†{ ÇsØGñÞâ½Å{ÉÁ’É«Q¼1.•þö&ˆr¿»ºTúÛ›Ð{Hî-½çŒf¤Å¸Å¸Å8ãPÆ¡ŒCÎ'œO8Ÿ`åòÑñóâçÅÏ«6¯6¯6' ABð×®·fÞfÞf^F£M¹ãºÆú%B_rûÝé¾ÕF}kÛÓ¶§mÏà|‹xñ:¢›xJ¨„碃ì£v tåÇÙ½~Õ,«ü 9àö¢ [÷˜Œ~òŸû›ì"•ÔÈ4a1w4¹·éåéåéåŒf¤B»B»BÛCÖCÖCVfªÌT™©½Û+ærçrçr7.5.5.ý¶ãÛŽo;hm´6ZÛ¯]ow îÜaøOýj âçú"ô%×% ñj1ê[ˈ–-#°?ÌC ¬q$ G£f£f£æžOì˜)¬ÂkVòÏÞâÅ·ûKèÛ|úеe…ײ|ïyëo8¼áð†……, ft6v6v6~Húô!éꛫo®¾a%Þxnã¹çB ý-ô·†W ¯^ýÌm‰«ˆ«ˆ«`4¶oî~~Šáˆ{ÕÀg&9ó—2ê^EnEnE.ž/ÀB‰P"Բòòƒ,ù©¿¿hÅ@÷{+½oä~ÒûLï9óSÔ6¥mJÛ”¬à¬à¬à‡Zµj± ÇLˆ™3¡rIå’Ê%4Gš#Íñg.·§.O]žºGå5Õr£‰èèn‰¸—\iÔÀ-îÇ\ÅL=è&><x$ðÈà|£êSõ©úã|ÆùŒó!¿ÛJ»uÃù;Dªý«Š<óÄ`¹ŸKg-µtÖ÷ÎQõ‡êÕžq?ã~ƽXo±Þb=VöuŠtŠtвггŠi\4.×OZj‰‹ÄE¥ ¥ ¥nþ‰ðB¡fLFÐ˨Þ^ÿiÈükÓÏ}=ޚܽkŽ×¯9bw ˜‡úLĽˆ{÷˜9$q5bÁñ¹ueŽ‹iìú6Ü8¸o™¬Å»%7EÇ0³-ÎéÎéÎé… ¬VP×S×S×gffj«j«j«²rØkùõå×—_÷wðwðw¨­¨­¨­øcîpïpïpg4†'F:’wñ2SûmÊœÝM'÷{ì÷Øïg°¢éEÓ‹¦3Š £®–6Ûe"Öe¦Ò{Ũ“ô>³>_íÚíÚíÚ_‹¾}-ò¼èyÑó"+‘pø—ð/á_ÊÞ”½){C­¦VS«ÄË¿Ÿ?ÿ>£1´ÆúyºÆ#èí¹6Ýx~Îu8£–î(ÝQºcp¾‚…i„i„it·ÛÄÁQ«0ßiÏk ĺÌÔEê6&ÑSí¦mIÛ’¶…õùªËªËªË |ø,ð٪竞¯zÎʾñ-»[v·ìÒ…Ò…Ò…(e”2JÙXcAß‚¾}c4MùwîÒôö\ÏGEŽ“XŨ‡™õ™õ™õØf €>VF-£–QW¦®L]™ÊÌÁˆ=¯Dˆ™Nïn­[ÄI¡]¥bóSCß´c;Tå¿¸íº¥~é¸Ì¼¹âLÝK{†ö íÏ‹?/þ¼3þãÐÒÒfoÏÞž½]ÿªþUý«¬öRPTPTPôªñªñª©J©J©Ja}„.é.é.éÝêoÖ߬¿É(ô—J-µ:‰ˆ—Q¥÷‡Q÷è½ý™³ÙYÖYÖYV^^îßàßàßÀJ$ÐÐÐQx¹ðráe …ÂÇüH¾Ìü2óËLòßt™mºÌ¨È |âî€X÷;ªHàa÷ó¸ ÔÈ]Íûš÷5ïëà|˪ɪɪa´#•y;Ëõ"^FUlË9Wãy o]áPáPáð3g³…»…»…;fdÌȘ‘ê‚ê‚ꂬD§%OKž–LÎOÎOÎohh`~$¦<šò¨›³¢Å߬”žÒŽ@÷»/}ñÓ²ù:[8t9æ’»úöéÛ§oŸb z†ƒ×ðãLÜo¹ßrßÜÔÜÔÜ”•C«^ð—Mßxó9!Á!ÎA*ÄïœZS"Ýž¼aÿ‚‰—7¸/P ²X0ÿ’{ðòQ'ïV-²º¼9Yð 5+{eו]WvU%T%T%`6ÙN(J„¦¦¦Ø²e7jÖÕYWgõò\á¹5skæÖ8F8F8F‡‡‡DQ@~؇îÝvsÉâ“Ûµù:åö®R&¹¨<æš>îÞy½ózçÅ(|i“{ÝVqo×Jï £ŽÑûÉ3K)¡”PJŠm‹m‹mC®‡\¹ÎJ$ì»Åw‹ï–<›<›<›Î¿:ÿêü«›‡T&” eý*ý*ý*ò_¨œç3Ô©nïjqàÓNGorW­E­E­E‰j¢š¨œ¯`F*F*F*Œöˆä¾šíDÜÛµÊäêòùĨc^g¼Îxa‡™m[Õ¶ªmU›„7 oŽÜ8rãÈ V>hü¡ññjñjñj­­­ÝDÂï:ßu¾côÎKFL“˜Š@·wõÀIWsán®‘£­­=1è`ø©šž5=kzærÁå‚Ë6¦Ï­Ï­Ï]©W©W©‡YëgÚ‰v¢½Ô¾Ô¾ÔÞõ¸ëq×ãóŽÌ;2ïHïV´œi9Ór¬Z-´Z˜ŸŸOµ¤ZR-ý|Qf°áâÙˆrY©!FæÓæ—‘{{¸üpùár,p`#'ˆÄ wmwmwmFá_äâ#v»ýÒûÀ¨KôÒûÉžSM¦FS£ËäÊäÊä   X‰„Ÿ=5zj”c•c•cÕþ®ý]û»â½Å{‹÷’òÑ+ó­ÆBqYª-~î®v»Œy Í» ×E+E+Eç å9å9å¹DDDù=—«pÚ ù¹ö£c×!ú]8ÙÂìe£}¿·wÜÞq›Ñ?d :t,x³âÍŠ7+þÑùGçV>%íòÝå»Ë7êFԨ͗›/7_Ž8q"âù'e¶¨}›ö!.+U«!ã«Ì𠦓½8KÈÎ;•w*ïvÇ€ÀðëP *AMHH8»ýìö³ÛUÜ»{Éî%»—ÄŽ;ž¢NQ§¨cržJ¾J¾J¾'ÚO´ŸhËŽ‘#;¦w«…sçÎn.l¾=kåo¼Ú¿*4Í^ë;A¡³ëxúoÜ™¨©¢Æ¨ÿ#G4ŽÀzöÑÒÔÒÔÒÄ(ê3¾da¦ÿ9’VÊcç;H£_Z)/½ŒºDïaÿšwÚÚÚ•ŠŠŠhþhþh~V"aÓ±¦cMÇ’¿_:Áë¦#!.ë5/ÓSÌÁŒÜá`å`å`åÁü VÊ[Ê[ÊËè=wò"‘æù›äSyâ;gô»hœµ{dgå„ò‰ö ÷Ln5Þj¼Õ¿æ½3§3§3çÃÍ7?ܼºæêš«kXù$5}æô™Óg’¿¦)ä¼øˆ_vÉÙ¡¡+Å5úo ¬þ‡ ¿Ðhr‡o¼=òöHì‰#€€èº„nN\N\NÜ£I&=š´[·þný¾ z×9­sZçd;Ìv˜í°tÁtÁtÁNNN4~pª9\s¸æ°ïfß;›—žYzféVV×»õ+fŸ¸¿ÇÀ朗Læy’·È·ÿnÿÝX½Àn*GVެÉ0>dq^ÿcDCñZ»­ƒ'ú¥o/}Ûu†Þ·²F£‰Ñ՜՜՜q*q*q*º,#ö^u¿…ø–õJ@s—bÔgÊBÊBÊÂÁü öæÂ› o^›gò8‘KÒÏåÿ²{þ*sõ;Ç",L€³›{"ÃË>;ðíÀ·c P¨ T…ŒS§2Ni%k%k%³²W<5Ïž‹¢}õók)v€éúo|3샒4ÃsÐ)g)g)g±'d€þ¯~_ý¾ú}Aß‚¾}[£·Fo󇺨’¢U|÷U-1 )^ÜÍ% U_¨¾P}µ ì)ÿBþ…ü =Gz/å Ú ð{ýË´è¹ô^ ðq“¸Iܬ]Q»¢vEâ’Ä%‰Kôë×?ÎLôûf«£u‚Û¾­±œ”-¿‘»]ôgÑŸEâ,Ä3Ä3Ä“Ñ~רɧ͓»ff÷âØÀŽ~ŒÐ/|v¹ç½¾7o"ÞD ìõ@ÛJÛJÛš=!{BöýaúÃô‡1¿W¼ãããûmh:`zU²à "o×'¡OBŸ„ð d€jânânâŸ>+|ÖÊì•Ù+³É‡]n®;¼Q íׯ¥/&()Iª*³.ϸ4^–¼]---XŸÀžrnæÜ̹Ùs¼ç÷%uÕºýÒ·«çm§÷g.Ž"…H©ßU¿«~×›©o¦¾™ªOÕ§êSÉ]jê«ãr ‘mßÖê±>ÎÛºùg'_ž|y¯]t¾á¾á¾á=Ç{Rnžw:5ð¢_1§óº&ÛzÞöøañÃ⇠ÒÅ!@¹—r/å^2m0m0mà4ç4ç4'wé*ïë‹R÷m=^ùÌSty»t7énÒÝ„×. C À‹ß,~³ø­›‹?/z˜½èOÀ?¢šŒ» +B!o×™2d°&å?Ïžÿ¼ç(ÔÅ×ÿº‰eÔ£²Åv¥ý7ô¥Ÿ¾-ÿqÖïóüçùϱ6èhÙ´lZ6Ë?Û»"²íã AŸ œé¾’aÏßo‰·X™t¡¡¡=G¡üo7[=­ å´ýõƒ~|—ß8Û1/fÊ¨ÎØ’ðgýny³åͬ ºùùyr—&˜–5N‹âÒßú8dþdòvñýÅ÷ß_X“@†€)K¦,™²d ù°Ksdlü²fö €S‡=VZtz÷òÕþ3WðÅò.1ÑzBg¬Ô‘¿&ñiÎ?tI ´fFÄ»¥òìÜÿdê¢6òvYO¶žl=kØ_å®Ê]•»˜¹äïsÿw«-+ûWôK33[GïÖCWM|M|M|ä^…l¶M7ŸÃnÑiÁuÏd‡z¿WÖ ¦…–öh¤êEê©ZßÀePëåeyßD+»Êcýblà.÷Sì{/±Œ0q'w¾»»+³«wï Þ0sÉ_‰ÚkŸl£ûWô+Zö‘3[—“‘“‘“õÐÕ7Ïožßº¹`¸jô™û³V³g|µ3±IJ}Iþ‘á¼^3ò+' áòàÞ̹tz‡ÀŽñRmë"¦ýyò®ßÑ|vŽçT-hèÛÍÕqN·œn9• ]!øÔgÔgÔgäC-ÓÛ§4pÍg‡ ”QÚø+ú‹Ö-­[Z·< }ú0´ç ôA¹©þã€giW­*bô*õíuÙ(ôÕ«Ô·×¥>Ξ·…¾½ômÇ Ë·Ï·Ï·'÷-Ëåñ]»¶ˆKÇîr?6Ó^Áâ7]¦yIYî49Ü‘éÿÆí {ÀN¸_·å$¼L²L²L+“¬Ü¯Ü¯ÜOî¢ÜE¹‹=ïQL¼2÷¨¨°ô­mnsç»ÞMyÄ>q¯B¦ËÞd‰àk³l¾ŽËœ”>U£çmÙ¶vÛÚmk   ±È§NœNîÛÁì‡\"›Ù3žæ:gÈøÅÌDþÿqß!"ΞðÚ¥× ù.‘ÇœššŠ• ]!øu3ëfÖÍ$j9¼u>ßFv€én¨|)p'l½Õß21~%žK»ž™´ó¿çPŽ7ª]’6=YM%‹bà§)ºªRŒ¶ +ú]B—Ð}_÷¾î}3AšÞ<=Ý(oÞ„‡"â‹»å??ô¥?.} ôñ03rú6Ò·ÓÎH   ?¹{5KŸñ;;²CPúÊÅé7Ë`ú¨ —ëUêí^áÈo)šóæÉXûüRa¯ûNCÓþxÈe{Æõ“iá•n.ªÌ–pÙ]ï?œÖ“Gûiȧ!Ÿp„„!ê+ê+ê+KUKUKUf"´q“öMIžGœ>©³è–M{´ëÏ}Þ³,÷Ö;ìy+’ƒižÂžÂžÂÄ;âñóΈöí3ÚgÈÝ»¤ôêI^ö €éÔjï¾™³óÜÛðâWÄâ?JÆoÕ ž;…;ejê¸uìÉèC‘\DœÉÛ’’’‚• ]áã ÀÈîÈîÈî jq8¡Y –Àžð¸Âq*Ö÷ˆÒ¦ë]éÿí½D_Ej'ûß9xù†E«¦"†¤aEʆOž< `þÜJ‹a— wyK%\³8ù²5×v{߯½ô¿IÿûôÇb~lôm¡oæ—3gÎ$w²}³¿‚ï¯Hë8Ÿ¥º ׫Óû[÷‹‘¯þ?z•_|–8s2úyúÈÃlí[Ì`ÿ¸Ùíy®k7wŽÌŽÌŽÌÆÊdF...¿òJå•Ê+™V§<—0Z´xžï©ÓºWåšÏ Ô·qï‚F£7þ „©G'jYM,Hk`~l»]v»ìv)_U¾ª|æ—No8½á4¹“7 >Ü™?”íàNWŽ=ÇCŸm]Á(Üe´6Ø-¾°,²]¢›3€M¹L¹L¹°2 +Àÿ!Á;Á;Á›|¨%<ÖZ|Áö €÷çlÈšÏL Ûõ·VVš®Ènð õ£s|Ã@U¬Y¬Y¬iÓdÓdÓ¤Û+Ž™Eêßt\ä}Ãø´Çø+³™D‹WÏÞ´Ìõóxßd¥@ÿoú÷é?Cÿyúïöîqéc¦óø½œ÷8ïqÞCî*my §»Ò/>÷WÀ1Ãòÿ—§Ž/u–³ºÈL”KõÈpŸJ¿+0ýçƒÏÚj›5²[L‘ Xã–ÐÍÅ«½Œ½Œ±2¿CQDÅ-ˆ[·€4ÿhþѽ2Ácæó9)3w©šnÝ%8uï‹9óÊOóë¿yi¥y±Äü+zVoÄå.þcövÞ‰“6:‡Ôvëž{Æ;oé׿\MÓÔxr{÷¸òAòAòA©Õ©Õ©Õ˜Ìï5ûõì׳_w—ŽÿÌ-ÃÉn°lé¶]Ó}zt¯å'ß“òbÿø÷WéqäqžR:¥tJ +ºB 𵵵ɇZRÿx¼dÑö €£›ì®ÈþÉÌï¾Ð4Ï”™Aÿ­9f†Mb·ó€M._ЙDž¸"‡È)¡–PK¨O?yüä±.[¢>Nú˜1u½cÌiÌiÜÍh‰ŒÀGîv¿6"õá²e’FOÁuÏd‡zæ·ë¶ØG»±[L«\ë~Üy‡uëÖaeö’(!Jˆ&®I\“¸F5G5G5‡ƒ-í¶sØÎai“Ó&§M&:‰N¢S×;Ýù“K8ëÙ'(ý×¼›˜M(îÝ…£Ù-¾õ&mÚüõäqnÚ´!+ºB ðž?1~bL>Ôòå·gãüØ3.Œ R*fæw¿ñú­Rtfç A;çݶ€›fÏfÏfÏÔ©3RgXªYªYªýü¸—þ¸ô1Ðǃyé+än´ê½Õ[Ï©½Šñ%ÃDÖ×ÙgÃíú¹lw!èè@GwËnFëkækæ‹•ÙWÊ6”m(Û`'j'j':3ofÞ̼Ÿ÷JP$(”G4iT·U·U·a^ú ¹Û¼2"K&œcÏøXšwô<ÊÀ€µTÒ}æ¿!SÑIÑIÑ +ºB ðz?ô~ØÍ% ¿=S\Ëžpû±„‡ÊIÌün«N¼°ònv€μS!q0]žnžnžnÔ©¨SQ§lZlZlZXêè‡þ7é}þÑȳ`,m0D4;D¤†Qúõ4Y_W]ÿÀžîŽÝôßÅØÅØ+óG‹ÐŠÐŠÐº&Mþš¼H H H ëAïüóóÏÏ?¯½E{‹ö–¸ßâ~‹û }þÑȳ0›Ob÷Iö €Ï ])®1@`› ÅùeäqÊfËfËâ.æð/€þƒçQÏ£žGɇZ2›}+\èïgç5ÜVZJÿ-®4®aì;IßZ..Šr©ï­·IïwvˆHm.=8iÈOU–ÅãÛvUÕ/}oö®²]ü<ÐÚÝ”ÜóSæ§ÌOae0ƒ¼WÆ3ZHnÂXÀ?<ž•~v~ yœJ4%š +ºB ð‚Ç K>ÔònÔà…Ôþ~à°õVËüÿ@’øÁIW±[lt霨È!À0˜X™X™Xusà¨@wË_‘z¦X¤›Œ§çëW`û§ìv_–îì(ç¾ÜyÇ Ç GÜA€)ä½2.î-œKÿð{_ù¨;_Š<ÎMk6­Ù´+ºB ðSSSȇZBoX8ËlgÏxΆ¬YñÌüî6³¿ñÊÒkÇ…•7x±[|æúÎü΀` q=ãzÆõ 9†¤T» þÚˆ4b¨}­Å?ôñšÙ¤šÝgæ·(!7ÝŠŒL¼t,í7ÐNØë|ØÊ„ÝàN·€‰nÈ÷¹äsÉçV&3V¬XAÞ7ÓÊψ”‚øÇÕë)¥ÒÉãü'⟈"°2 +ÀÿáÛúoë¿­'j±^}5WÔ‰=àq…ãT8"$¬ï/eô[ÞKôU¤vvý­xO§9r“Ø'ú¥×Å»ægMiG I°^°^°9†lÛëWàZök#Ò23ïQNjôñèÕéý­û%»Êcý…ÿˆë–[<îº-ô¿ÃnpÓùçg\'w>†;†;†+€[¼¶xmñ"ï›ÝK]-øÇÕsåá¿‘Çi)i)i)‰• ]!ø Ü Ü ÜäC-ûGl˜eÉžðœG3Ã&Ñÿ[sþ¡K¡á‹­’dÚMç93iç ~½®?¿ê°BÐtEv;÷—IULî<çdÎÉœ“±2 ÿzò6äm9†¬ÚësÎYŒ‚RòØ‚þ²¡š¹~:õÐÆ6šî~¡xüa¯à=ÛÒßÄ¡ëO>ßi½ÄÔ”íîþKº»—ìô’uü@ÞºŒíÛ3¶ce0CwŒîÝ1ä=´ Q‘€\=pÄU_8“<Îð¿Âÿ ÿ +ºB ðh:4šùP˸œqK8ü‰¦”WªÊìǽp<.›?åø$ÁqG8z$6]`×Äñ…ñAAJÅì×ûGÛ/EóŽÐ¡;B±2 ÿ*l-l-lí&†T´ÁN‚‚Rú%}[•›îÒešG•ÅlcÊâ€nIì¿Mw°YByÅòŠå˱2˜z,ôXè±nþqä(gaჀ\]y÷ÂÎÙ ÈãÌ=›{6÷,V&t…€)«Ç¯¿z<ù€KC^ÌýeëÙ-¦Ÿþßë5fmç‹å]:>‚ûñ„œFÒ¯D&íºó渣LcÜ+¹eÚlwî/‘’¢ªúFÇýþÂGäž;s:çtkú¯æ¬æ¬æ,r é/j]cÚÉn¡)ýL_.«Q&iæë ïêwl×3Ó¶©y`c¸ØKÊr§ÉaúÏt={˜Ý¶‚^‡›ï'w¾ýJû•ö+X™Ì(ˆ*ˆ*ˆ"ï¡-wDŸ7ð«3WˆÎ˜ð–<Î6ã6ã6c¬Lè 0SÌÌÌÈ\^+8;Ïq)£÷{¿Ï>õ^ÒI!OrÏ3’2’2’°& ;B!Ž0:–Fnq?ÆnÑi×2ú¿ìúÒ+u@„û(r· ^¼0xAtD&3(\. W7–¹Áñ†CZ[ý³Œ»E§ÌÀäÿf‡ªö^KÚ‰Ürñ#âGÄ`M`¦d¯Í^›½–|Øåì†ÝsçŒdçµ_Ö{)'T…Æç,å°!÷|™æ2ÍešÏkŸ×>¯­å¯å¯åÇú€þ(È!È!ÈIÖD?ÛìÊÎaj¬åë¼78i2 ÝÃbÂbÂbÊæ”Í)›C}I}I}‰õ гÍW7_Ý|•¼Ÿvéæ«Éùý1fçz8ÃC_„Êè–.šç5ÏkžO«L«L«¤˜PL(&XŸ€€)Ô‘Ô‘Ô‘Œ»tT½þ¨Â‹à¶¯jn¸¿‘"…ƒi ­Z/´~*öTì©XeSeSeV,0/õqêãÔÇááá¾Ï}Ÿû>Êû”÷)¯w™w™wYˆSˆSˆS¢Y¢Y¢a@èô•ü#ùGò»98>ÀyŽÕ1D¶}[çÚÛYÈ3?ã!;Bvß-¾[|—’KÉ¥äbÅ3h4F+,,,,,ÌvÈvÈvȸq;ãvºzºzºz¦F¦F¦F.g.g.gÅúŠõëûï–N œ8‘¼W¶IàžèœSˆlû¶.0ß2rº<óûÆR/¤^H}—ù.ó]fçèÎÑ£ñÜfté<Òy$A+A+A+x~ðüàùÞG½z}êöÔí©›Ÿ Ÿ Ÿ`d{d{d{ÖĬ‰YÑ1v†à;\®»\w¹Ž|%nŠCl$‚Û¾ªwÅW ­å`øPñ¡âCÝÜÜÊn”Ý(»AÐAÃl Ïž)<ã™ã™ã™³ûàrô)Å{Š÷ï™T˜T˜T|týèúÑ=æuï<Þyœá… ÷NqWFpËz¥\8âöY—eþïýßû¿§ßý´3·3·3kxС4‚Vú©ôSé§„{ ÷î9Š9Š9Šéö)???žÏrŸå>Ë5*7*7*³g3êRêRêRÈ \;8ü´9?sÊp ¸e½Þðxë$½”õ=–¥'JO”&i&i&i¶/i_Ò¾OèAg/±—ØûFôèQ]]]éÛÒ·¥o÷í¾ñaÿÃþ‡ýýüüÊ+Ë+Ë+Ñx€_0Àwø<çóœÏsÈtU¦È™Là–õÚ&ï­¬Å耟ŸŸVïFðóñóñóÙ±ÿbÿ¥(²(²(’xO¼'ÞcU$ë Ö¬3P0P0Pàø¥ö9ìsØç´5ikÒVÌ ô,piàÒÀ¥ä(ßÒó¢C8â[Öë—ÐÇUö¢ä;‰8‰8‰°Ô=›ùlæ³™¹Ÿs?ç~îˆèˆèˆÀz€ï,ç Μ÷ÑõÑõÑýUônéÝÒ»•47inÒÜFÃFÃFCö險šªšj7q£ªï ÑˈoY¯ÛL óæ“;¬tEéŠÒVöUöïÞ›››Ó*Þ*Þ*ŽçûÀõ:êuÔkµNµNµÎ_µW<ÅoŠß?›¥6Km–V¾«|Wùóðs øw‰»Ä]ž ž ž ò‡Ûì:_KE\š¥êyTw”d0¹·W^^yyå%ýÌ›2Ý2Ý2]w%w%w%q>q>q¾^Œ2eÈ”!ªªªy¡y¡y¡Äb±˼¿ •ÐJh%±/b_ľX´wÑÞE{9ؘýhûÑö£Ÿ4>i|‚¹ƒ®*U,ªXDŽ|ìÞ¯4ô!Ÿ»» ÄíeÝxÕýÖƒ(ýOzõäת=T{ˆÚHm¤6–å–å–å†w†w†w²ÔynðÜà¹á뛯o¾¾i¿Ü~¹ý2VxÿÒvªíTÛ©ä1Éc’Çè²1÷ñîãÝÇÙD6‘ý«:–x/ñ^â=ò»žÈ¥%î“uß²Ro‡ŠšïÌh¿¢4°4°4°Ã³Ã³Ãó­û[÷·îç’Î%Kbe_e‡Ò¥JÍÍÍMŸ›>7}ÆkBÿRíZíZíj8Ôp¨áPvÞ+^?cýŒõ3Þó¼çyσYøq|·±±1òGÙm§——òŠ#Äí]m?—ड़Âè0A?£©$*‰Jâ©ÊS•§* C†. eå„áqÃã†Ç¿žüzòëIšÍæ€5ÏnbbbxçðÎáÓ»YžÎ-7Ce˜ÀØ]þgíÅæ›õ@_êî­.â [â§(*ºº¦¤Ð«´×óó$¸®ðZ) ÿvèwMç™·–ÿ±µŽkùÉé3{÷è"""­<­<­<˜M ‰B¢Ðê¥ÕK«—䘧ø÷§/ï"Êí]ý–þä¬ÃtrWݶºmucxv>Í•æJs­ÜT¹©rSÌü˜ù1óY êîz¸ëá®,Ç,Ç,Ƕ1mcÚÆ`ɳ›‰‰‰øàøàøàÞͲù5SnƒßC.úH›‹¾¿Õnãú-4¥È»4=í7'‚(.vw§×Ί‚@·àÂð÷ïå2…âìlã—¿jµá‰¢ëFã—½{t+K+K+ËâùÅó‹çÿüîÑVÓVÓVs•p•p•ßïNuSG”Û»º[Ê¢]ðl71mæŽÌ™Œf„¢@Q (|Lø˜ð1áúë7®ß`)¨Ó^¯½^;$!$!$¡A¶A¶A¯ì¦^¤^¤^DKMKMK­w³,¼lŠ÷ü³UÒZsD\ZUÿùh#×í9Û-úBÇŽ©ªÒk£ÉÁÄe—$7Ê-x¦²ªCê½ÎyMá?V‡ÍY1Ý w.;Av‚ì„ÔC©‡Ra6ú`€ïÖ)×)×)ÇèCì{ŸG”E»è~oµûãÆP±Eä~îÙ°gÞ ß;Gµbµbµb~øýá÷‡ÊŸ*ªüÉÊÁ¯»+»âó—Ï_>¡ÚPm¨6xü|ùùùªÞªÞªÞÌÏÝŒŪ5·$†\.²l]èm¥±¢k¸ËzUØàäŸøÛüù÷ø=ÆÎ9´õÂñÌï]]¡sCç†ÎÅ=ª!Zþ´üiähÇÌÃPUÿ­9PÍý]æ+õ^@²;£À¬T T Tà;¦g1˜Wý¨úQõ£ø5ñkâ×° ;/s^æ¼,cuÆêŒÕ-Ú-Ú-ÚXÿ¿Àâ ñ&Ó8Ó8Óø{g0~fH¡ÕŠ ‘OŸ|ivEïÜÕºF¼¬×æÈœ×õÙIgì5¼¶¹‡›œþŽsг<³<³÷6îmÜû3Ûx3ðfàÍnnÞa%UÈ]ª½öóu>ºÌ×›B©K¥cí9dÖfÖfÖ2?;TªÕà³ûg÷ÏîwÊï”ß)ge¯XESESEÓo£ßF¿µjµjµjx9ùùhhh<š<š<š˜Ÿ» wÆMâ\m¼NéœHêçy;eþ¦ÅmR!ºF¼¬×òÅõKfùk¬Ñ’_wmîºBÌPý‹úõ/•ª•ª•ª˜eÖ!è%?M?M?Mò×™Ó¦᪠Ä'©¨ Öe¦–ñ„N_œÏè@@n[n[nëóÕ0©aRäÍÍÍõc×]?–•ƒ_×s¯ç^ÏM’6$meeež?­†VC«qrr`êàÑ.ž¾³bÙ–›®SðqÎLºÙ·q/óu~âýfÏC¼Ë4Õö33ò­Š[·*Öl¨ÙP³ó>H¹®„«u–u–u9Ôù˜ýð7ÛCˆu™¯)ò®’ÖO»¹pîX÷±îcû`¾, K²öcíÇÚIJIJIJÙÙÙ½‹„íFÚ´ù1ãcÆÇŒ¦´¦´¦4§>§>ç-Ç[Ž·¦gMÏšží]$lñÔâ©ÅÓ÷Šïß+6iÒ8„h ˆ«^-'ÕÜóÖñŒáÃ3¦¤º¤º¤‹€y€ú€öníÝÚ»}d­þ=¼~ qo×úf…ûæ…ÖŒ:1-bZÄ4v˜Ùvávává$Å$Å$Å7OÜûúŒæIó¤y¶0ÊAÊAÊÁí Û¶+0ê’Ú Þz«ƒ£–ýÑߣ_rõ<¸RP2¨çu’ñwÆßc_ g€úLÁý‚û÷}L]ñL~Ï´ìß×î*\ƒ3ú-q ©]¬Ï¨?‚–‚–‚–íííýì0ÍmÊmÊí4ÿ4ÿ4MNMNMNV{­õ^ë½Ö;Ø.Ø.Ø®>°>°>p`?kÞœ~súÍéž{² Î(Ú_`àE¿]«‚•óƒ¤3·¨ÞÚºŒQ´´´ðJ;Ø$+$+$+0Šp2‡=ª´3ÌÑï‡f÷g¶ crµjÔúã¼·y´y´y|©ÿRÿ¥þñ±ÇÇc%Žºu#êFÅ–Š-[hê4ušú€}ÂÅDq¨m¨m¨-£n„«>o³P!öw¿5ð¢ß®µŠ'cóÌž×FEYEYEÙ›»oî¾¹û†ÑûÚ>+§½Â ƒ9úÝ }{8ÿYFýñ½ê{Õ÷j|"Ö«V;ì¹ûs÷çîÊg•Ï*Ÿeeßøî«»¯î¾ÊäÉäÉä¡zR=©6¦…ÑÂhaûç.£nÜ»±(YȆÈ=¶GUiàE¿]kêÂm΋®÷¼6rrr°¯À`€>–ð*áUÂ+FS—OX4mÚÍ–uq2ÊÑY¿-ÚJËzþ_ÖPÖP6@>ÀSc¨1Ô˜LíLíLí{ÿÜûçÞ?¬öZf¿Ì~™ýó‰Ï'>ŸXSS30º”ËËËÍh«¹ÆL¾9Mn¡£•xÄÈýþ« ºª§\œ³`Kñq†gÏ8©9©9©á•vI"’ˆ¤€#GŽ0ŠpÒ7=¬¶mlÑïû+n±6.Œz0BǰŽaþq~ãüÆéµÞk½×zV"á0©0©0©Ò¥K?R]¨.T—Ñ¥ÄM‰›71ÚêÄ€—Ϭ'ìЗ\c¿nqùÚózhTkTkü!ï,41šMl³ÁfƒÍŒÞ×ÔólÝ…¶ ¶èwݘËù^2êÉ}½ûz÷õÒ+X}m}m}mOOÏ:Íušë4YÙ7¾±çÆž{ÒV¥­J[E9@9@900º¤5Ik’Ö$F[íX®\ >}`‡¾äš×´ç‹ÒÒž×CõøêñÕã±Ã@†à‡ð»èwÑï"£©sÏ Ÿ T¾ìåÐ%³vôûNøá»E¿ÿÇœ*²*²*öz ÿ‹þœQ9£rFééérHqHqHõî°—ÜR¹¥rK=×y®ó\W©S©S©Ó¿ºÑ<²ydóHF[7îþÄS8ÉÛðE¢è—TçlÚ*ܘQ—âÇ/Ž_ŒWÚÁƒú’ú’úòáᇇfnI¹pYuÁ¶îf6ú¨áþOLœ£Ÿå]F}ð™ë3×g.­–VK«Ø«¢S®S®S.Lþ˜ü1ÏÇ=÷|+‘pðëà×Á¯‹EŠEŠE(Ñ”hJtÿêÆ×†¯ _m]’pØ(kÉÁýv­Í'sÜ\^KÀ|¸ùpóá/ŠÅëGÌNÛŒ¶m3æ›ÿmþ7†—´-¼öºB ð=]ýtõÓÕ=°Hôw¹/÷zàE¿îcîpI¨ö¼íi“Ó&§M¤‹ã4qš8¿6mþZË–;,wL5Ÿj>Õ¼w‡½DÝEÝEÝÝÝ݈— /NP AaÏM×××g´- g[ø…MÌÑïÿë<×S):3+WìØîÁ¨W•Õ•Õ•Õx¥<(Š€›±›±›1£ Ç[ß2Ó$ ÃÛ?Üíô@Š~ÛdüÒ\s­04ÃhÛ½~óúÍë7j45š=HWÈZÊZÊÚÂÒÂÒÂÒ@¿@¿@?V"aYYÙ‚ t†w†w†³çV7œh8Ñp‚ÑVD¦û·Y|ÌÑo×Ú06{¨Ë5F½ ½z3ô曩&¹&¹&9ICICIC†AŽì¶Ò鉷|<4_d E¿W&ˆJ~æS—ÒâNg´í‡4iÒ¤fP3¨ƒó¬¥¹¥¹¥9V9V9Vy_̾˜}1¬DÂÇ£ŽGJLNLNLnÖ>¬}{nõ×Ó_Oex3ËŠD„sôÛµ~=³[X‘á}‘ïhÝѺ£…}E€®üpÆÆÆ=¤¸ãzü†Ð<ŠDâ•ãý7ô­¼¾Ä]M}Y=Ϩÿ8ëW&K&Kkã_¾_ˆ/Å+ŠW¯p(r(r(šã3ÇgŽOï{ÍŽ˜1;®ԮԮ´H©H©H‰ˆ#∸_»‰þ§ýOû3<È%££·Þû¢ßÝø˜óÐÄcÓŒÄvsÇ耵kˆ"HÀhð $R)‰Þý‡{ï9À+y:Úqr~sežX:Hõ¼¥‰‰‰´9´9´9X!]Q¨ T…§§§Ðy¡óBç± ûÜ÷¹ïs?÷Rî¥ÜK–––¿xó EBÑá«ÃW‡n.qüx‡sºñ‚£XÈý¢ß®µtãG§¿Írnxnxî û[þjù«å¯åC—]>ô?¼ó>ŸE%ú{ô»w¬m³Ð¡ž·ôbôÅè‹Ñ´å´å´åxÕêª}Lû˜ö1‰Õ‰Õ‰ÕÇÛŽ·oc%Þwßý}÷cycycy[J[J[Jñ»ù(Ê(ʨYu³êfÕusiôKó–Î|MSR‡è·kmÜô·l£YNNKNKNÃs€0ÀO’››ÂËÌá‰è*»³²ÃûWôë²ãv“øÓž·‹ßß߯lDÙˆ²XÌ+£–Q˨ <¸-q[âvï{M2™d2ÉÄ|•ù*óUyyy„ ¡B¨üœ­¨‰¨‰¨‰`x³ñ?†#÷2ª ÿ²Ø÷’á¡.ÿpÿpÿp3±cfÌ2Í/€IDAT.<ºðèBÓÙ¦³Mg1ã?='='=§emËÚ–>8¯4|oøÞð½äÇ 1õYe.p—ùÚ84;Òå9£¹kPnPnPþ9‹.çZεœkó>Ìû0ï3û* åwøÌà95Åÿª—ö¤Ï3d¸~fÜ{«3íÔ|õÑê"Íó*”E¦üÆÌ˜·n3ÜfXmWmWm‡—™ø9ë9õ9õy¦|¦|¦üÝ–»-w[XÙ+V–T–T–|~õùÕçWkjkjkjYáÁ‚ƒ ÈuÛD®Yð:Â]ækÎñÝºŠ ÿ9r•d•d•$ž0˜!øÅ¾Íù6çÛœ¥±Kc—Æ20béŸ §î|ôîžœDqùÆ—£—ÌéÛ¸7cŠ×ïòïÍe.ùÌóŸÌsfüw\vølóÙæ³Íu%u%u%˜ß_¥á\ù†s/V¿Xýbõ†6nØÈÊÁ¯k‰×¯%~ÜóqÏÇ= …‡ù‘lY¸eá–…ä¿)rôØÑ;+è~o•s0ñ‚á¡ÌZõZõZu¬ÿAíq‡¸“!“!“!ó½AÝ S»Õæ§ó§x®ppéãÐ×;ÐÒÝ$wé[‡ùAmùÍ^~ïØ¾¬ù²æË"—È%r1É¿€ áB¸ÔM¬›X71)2)2)ÒÐÜÐÜмw‘°ínÛݶ»?øxàã&Û&Û&[æÒ4¢iDÓF¹Õ0wµë ĺß[“‡†X ÷3H6H6Hög.4j5ƒšá~Îýœû¹ïÝWYLºÎ«qØÅCH¤²oã^­}é¹ó3ömq¬ž+;vKÁôCß;¶ðùáóÃçã…äW¡=£=£=ûšü5ùk²Ñ8£qFãXÙ+–ˑˑËñ ô ô ¬ ­ ­üŽëåŠåŠåŠ1¼šKÑ!Õeqˆu¿·j-ô¬!÷S“[“[“ë3Àì!—È%rcÓcÓcÓùåùåùå{wHb6•Çc¼é¾ ë£f]Ð_{&Pø™û£;zGŸ75Jœbr|>ï3ƒ·R)N+om—Ôzwl¬`ìæx•i—ûÉí¡—í›ä›.UÖ·BÙÙ›;;O5É7ò`åqS´S´S´;::±ªÙO‘Gä5Lo˜Þ0ý­Þ[½·zfüfüfü½›kóvóvóöw ïÞ%4¼jxÕðЍ!jˆòÃF^Œ¼y±›Õ’!dŠ(·wµÓ±àŠÛCF³Ó¤Õ¤Õ¤õó—XýòúåõËïývï·{¿±²Ç"аèö¤]KƲä=´ÁîöK~óþ&vö{­ 6í9`=J0c»íƒgŠëÌ4çñ•($ï-äY7»Y2…ÛŸ•ÇuúâôÅéK»m»m»-^0ØÎ!âq(Ÿ#Ÿ#ŸÃ¢Ì¢Ì¢lJõ”ê)Õ½›k±¥bKÅ–º=q{âö¤L¾L¾Lž T‚J~Ø£ÑG£F“ÿ‚ÇÚû%ååö®Ö¿;È»Œ“ÑìÔ-©[R·K'Àl*i}Òú¤õ+BV„¬á`K§bOÅžŠÍUÎUÎUÆ|õG­ê­ê­êq[ã¶Æm=píÀµ×XYÇ8Žqãxû:öulÛö‡m/®¼¸òâJòOŠ9ãop!.+ua»õ¦H-FsÑ^ß^ß^]ÑŽÒŽÒŽ¾kz×ô®I—}¼ôñÒÇKÄeâ2q³ÖÏP *AmÒ4¤iÈÉ’$­Í­Í­{y–ðƒóÎ?8Ÿ2†Ë .éí7_gÒ¤ßÁ>ãloÍuSaÔ~ê[ê[ê[vXQ´´´)E)E)E'Æwbܯ }oͽ5÷ÖÜÌK™—2/á™>P•%–%–%ºG¹G¹G‰ˆˆônµL0˜`0Á€ü}Ý¥ù¢lýf¯Ý¥ÐÙu´ìWïÙu)ÃþÓÎÓÎÓÎc=À`ƒ ‹ÑÑÑ¿íyÛó¶çü‡óÎÈúÁ¬åÂË…— ›19bräíû·ïß¾GŸ³N±N±N±÷*ïUÞ«\Ô½¨{Q—•Õ5çå¶['%ÜöU]°Ï€æ[Hîó:‰uë$°zá{5«4«4«|²ûd÷ÉÎï³ßg¿ÏQQQ¬D¼F<ñ`Dà¨ÀQ£2®g\ϸÞZÖZÖZ†nf­»[w·îΜ’9%sŠÛp·ánÃYYc •Ù>.^ìGõw·ˆéy+Øg´¡×ž%š»“GXü¸øqñcv^WE¹E¹E¹;v<ìP7P7P7à,â,â,be¿…ÇÇÇýDê‰Ô©Ï7>ßø|c“q“q“1žÅƒYÕª…U ŸF?~½èü¢ó‹Î³²Æªý÷Û,¸¯êM‘â™È}ΨΨÎÀyù0è €ï@ñ¡øP|>mú´éÓ¦›ü7ùoò3Kö÷Ãü5ÜöYs=Ÿb×}äH2íHì(Û{ìw3=úeçÑÒ<Š2Ý·0C>Ô½r¶¯ :û¥âŸ/°ÜðÿÁÙs&ŒS‘ˆº¦hCÐÿ/ýÛ]žþúE¡»n»À¢Ïþ±0Ô#÷ÿ½ú{õ÷êX™ÐåOÈŸ?CæžxsÆA ð®Ëõ}ôævwÙjøoþïýßû¿'ٵUt¡=àX•ŽÍTJîüÔÙSgO• ƒ`è3äC-<‹7¯[Ç>AéŒ ÅÜ5§ÿ?¶K^n˜ÎL Ûu‹¦˜Jˆ,Œe·XZ\«Ö­’ÜÿU!«Bp0ôKi^i^i^ä²jrÆvgÀ?º>\ç¤ð 0@ïX±b9„¼oV८©ôð®¢g¦îå®îæî˃`è3äƒ,ü³Ô® fŸ ”;–_Lx-}l]Ïýý{ YWG-_PjôØ„¬«qm`;»À öñ-!÷ß}£ûF÷X™Ð%''“ÈFùì*—HÀ?º®zúÒì`€Þ¹Ñt£éF77F©‰ÜOYªøG× !³gx!€Á 0ôòA…ݪçv°CDªà\™dÕul²Ê’n³[”Û»*K5å>Eî¿Õm«ÛV·±2 ?Š '-/¿y¸ê!þÑ5¼ÅOÛâ`€Þ9u*êTy߬éè¡IËž þÑõÀ!±I³ŠÀ`†ú ù ‹àuŸ‹çØ""}o¢Ôulò)Žñ¥#–Ûe¶0¤›ËÜ™¹˜¹˜¹`e@åååN [ïä*»#þÑ5jj€¨E`€Þ9&yLò˜$y߬ùñ!ãeu€t=:Rüãì:À0˜!€>C>È2÷ÙN­8Ù!"•wt¸/Üulr;Í„T 3€Lƒ–‘ûo³ÀfͬLè^ù¼òyåÓÍÀÓ¾ »Bü£kØáç+-¸ôΙ÷gÞŸyOÞ7kC>ÈÂǽ^tß%ö J»ŽMê÷›òNs˜ù-w=ï\Á{;/Ï|½çŠ"‡ëØ”±ì³]2Ÿô—ùe·3€¥ߤ8O#÷?ìbØÅ°‹X™ý¥ƒÒAé Ïì©U§VZ…þÀÀ–NK§¥ÓÈdyû'_§‡€tu~g÷Â(0@ïØ Û Û “ßÁ¿Ñöð(~@ü£+_ÊÄÄñQ€`0C }†|…«lš?û¥ódO´Ý·þÿà’Æíà&™®ùÔñ8£Ÿ_ j î;aÜîí“é¿4ûíº•ëéÿÍFÛ%vâëýóäþ§}Iû’ö+³ÿJ?þ?öî3,ŠëÿÿbŠ11öÞkLlQ£‰½{‰½Gc¯Qc»bïëNTì»(ì*(*‚ôÎîüoì÷†Ÿÿfý) ðùðºöòJ`æœ÷9»Ï‹™}g´íÈ^êr©Ë¥.Ô[À¶€mÛlHŸÏ›Æ§âkð³»Ò¿TžxwnKÝ–º-µý ~¾P'ïZU €SïÕÒeèåf¶•/ëYÖ³¬'3Àǃ@Šù1Ç9~´ÝoÉQoÙ¶IžŸ¦… ´Þþm¯<×ý˖ЖN–!;«VŸ¼`gõI³¯É_—ß= aZË<µ‹V-ñÁvºí6Ÿ\zeÛ…¿w·í׫¯:¼êÀÌL¿ffŸ™}fvÛ‘_¿4~)õAÆ^=¼zxuÛò\±ÃOÖ5'N½×¤’þÄ3¶•—gÊ3å™ÌLà]Üî ÷ÛŸà›ÿnÚóÇKÀ©÷1|`Ï&Õm+ÿû¥ß/ý~‰™ àãA ÅŒ»8î⸋¶.µn¬ÞqäRZ»´õfÎ9ÞA.çÙ ý^eêī淋k­¯ys¿]f€mËccc™™é‘¥¤¥¤¥¤í˜,;°ìÀ²ÔƒÄK‰—/ÙÆb¾Í3—u&N½×ÐGZoK°­üYß³¾g}™™À»Ÿ>7|®íÏñ^¥*~^òKàÔ{õRz4­û·må7æÝ˜wc^f&€0€³wÊÞ){§Øn¸Tm=ùÆúïÓZhjm[ùY†N]Rh@•µ3çŠ)X­ð½\#òO+(œZéÔÏÝKm[¶ïÝZÏV¿>Z"­µßúZWÛ¼å\gÛšÿ<äç!?aN¦_Þe½Ëz—µYS§ÙðÉÍ©7§ÞœU6ªlTYÃbX s³:¿×ù½Îï¶?ÙýúŽi°•à6¥^ëß/9­èȪø—ª¿Tý¥ª¦…iaAƒ=döH¿€¤°¤¡IC“†ÚÛX©Ó}Ã?§3ß:þZ´]­«ÍžÚV¸G6Žl~ýyåÏ+^¹|ÿòýË÷r&äLÈɬþ@6›Íyåi”§Ñ›#òÛ—¿}ùÛ—”³'žTxRÁ6n<ØuÇ’Uûn ò­+·뮞¾zúêéÉ‹„W­]µvÕÚ«w®Þ¹z'¢YD³ˆfÆSã©ñ”YÇ,²ø—»ãL¿S3ì{_‚[Ç_Ÿ”ëÜ m…‹õ+Ö¯X¿¢‹^,z1y«âŠs+έ8×tËtËtëy»çíž·3bŒ#†Y í#*Vx¬ðXñ/1äãúåšÔ€øÖ‘ך3—/<0ÁÞF•¥¹¥¹¥ylPlPlйKç.»4èî »ƒî: >:øèà£ç»œïr¾K\±¸bqŘá©Áÿ¤ÿIÿ“¶õw;évÒí$õÁÇ̼˼˼Ë^Ä]ÏwºPבW÷^¬n[Û›ßÞüöæ·ÖQˆš5!j­· ß*¼!lC؆°äEÂK¿\úåÒ//e½”õRÖ°Faª¡*óï+ìó°ÏÃ>Ü7ÁMº#Ý‘îÄ6mÛ4­µ3&.&.&ÎÞ*+¼Õ€ÐÆ‘„¸Ž¼Ž~þSÿ²ÿØÖvo£½ö62žÏçY³fÙÚ}k÷­Ý¿÷úÞë{¯ä­ŠK./¹¼ärçQΣœGL˜0ÙØcì1öð~ÄûºÓõN×;][µoÕ¾Uûé}¦÷™Þ'ìdØÉ0ÖüH1ÀRE°o°o°¯Ýë€w8ÏqïD”›¼×½šŒìØÖ¶ª.߸|ãò½‰ÿ4þéåN—;]î4:ttèèPG"á>ôù£Ï§—œ^rzIôÓè§Ñ\Ë•6|»áÛ ßÚV;BŽ#dê\Ùeÿ•ý¶âñÖ{’Ö4'ÄMÞkL!¿„öÂÚø£ñGãÚ‘˜Š1c*ÞYgýõ[«m­¶µš#·>_â|‰ó%^~]øua£™ÑÌhÆœÇÛynòÜä¹Év.¥ÍÖ.X¼`ñ‚Ŷ?åe­7½‚‰7y¯O{ü^´af{ëÕ¸5qkâÖØ‘—»_î~¹[Y¦,S–ýäü“óOÎÉ[çë’¯K¾.+Ϭ<³òÌ£Þz?êm”6J¥y‡âíf<›ñlÆ3ÛEeR€¤¢É_Oþzò×¶ÿ¬ý®`—ÃT¢Ü÷}ý¹¼ÓÛ#ínrm‹Û·íÝG'q}âúÄõ7ÖÞX{cí¤Ó“NO:íH$Üél§³ÎvtÚÑi‘#Fdþ¿‡P#Ô-¾°øÂâ ߬jó¬Í³6ÏJy«øËñ—ã/Û‹C}´Ü–@ û¾¯n\“Vµ­ç¹á熟þ¾c{*öTì©ûa÷Ãî‡I¿I¿I¿9 ŸÉq&Ç™¯n¾ºùê¦ÅÝânqç]€ÿãgø~Kú/鿤ÿ›sFë®u׺§Í&‡” )RÆÞ:êyh¿¿Þ%Ð}ß×Þw+j%‡ÙÖsÓo›~ÛôÛ{Qöì!ÙwNß9}çôúê¨_À‘µñÂë ¯/¼îïïoé`é`éÀV–"–"–"¶sf`§v¢>H)ÀRÑ«j¯ª½ªfo[ä—®‹}w!Ö}—×zOLÓ.ý–÷~©VåVÙVRï¦wÓ»9>^æÏÌŸ™?»³òÎÊ;+g¶žÙzfkG¶½Zú¶ômé{à»ßø.lsØæ°Í¼#ì 4šM¶5Ü×y_ç}©ð¦+«®¬º²Ê6,»mÞ¿l€qýÙ)i±î»¼¾¬ãUhë{ák\t\t\´ãã_%¾J|•‡ß=üîáwz½ÞÆ‘Hø„ï ß¾/¾ør ¥¥¥ïˆSDÖˆ¬YmgˆÏ"ŸE>‹ÒrË\[pmÁ5ÛŸøÝ§WøªÄ(Ýw½P»s³Zãì­BcëÆÖ­ëøx…}ö}Ø÷ûËî/»¿l‹ö-Ú·hïÈÚxÖºYëf­»Ûþnû»íÍ5Ì5Ì5x/œ¼³ygóÎf;C<|<|<|¨R 0€T·òâÊ‹+/Úþ7¯XrÛwëmÙ¦yÖ'â}ûk…\ƒªOÿ—[jè_ þIÎIÎIΩ1v–,?X~ðnæÝÌ»™Ór§åNËÙöj°§Áž{\\\B–…, YÆ»ÃjÛ?ÛþÙö/Ï® õ õ õ¤>À›’–&-MZj/ ¼cò¸¸ñKÂÝ·¿&yü.>_¼oñ§ þËs³ÜÌr3Kê`Âô„é ÓÕzTëQ-ײ®e]Ë: YpdÁ‘·oÞ6·7·7·ç=ò1¸:ôêЫÿråzÜ«¸Wq¯ÒrË£:FuŒêho¥ä–¥Ý–Ÿ?'Ü}ûkt¥A4±ûß==öôØÓ#õF0"!"!"ÁúÉÓ±adž:²6ž’oJ¾)ùnö½Ù÷fßD¯D¯D/ÞݧJN•œ*ýË/.¬Œ]»’ú ¥Huñ'ãOÆŸ´·ñQ®cßGo"âµ÷Z#fÁüí%íUïj¯æþ Ã™ÙÈldöÛï·ßoÿŠ%+–¬X’gužÕyV'oÛ«FÝukÔUeUVå ZAµ‚j}œï‘ò‹Ê/*¿èÍÊÔ½\÷rÝË|zö<öyìóØÇîí ¿½¯m»LÐkïõø’½•×t±­ÛªÌ«2¯Êl™m™m™ý!G3QMTUÿüðÿa¯÷^ï½ÞŽD³Ìv0ÛÓOK<-‘Ô?©RÞ/ŠÙ0æ•Q+£VFýÏ=ºŠ]Ů饤ÒÉÞêèÙóß÷5ìOÐkïuH‘*—>f[·Z3kͬ5ÓÈkä5ò~ÈÑŒž=?zþ)ñ”xJìÔ+¨W#‘ð˜c:Œép¥Ü•rWÊ%TL¨˜P‘7}Fb±X,‹í¸÷|ÑóEÏÔ)‹Àr5êjÔÕ({›U3M Zk!î}óµN¶õëNÞ³W±É “&'¤‰¡Ýfl3¶ù{û{û{oh²¡É†&ÅPüAò¶½ÊÏ.?»üìmS¶MÙ6%pKà–À-ÖçãfÔ÷EPÝ ºAumë°CÜ!îùÜÞn¿Û~·ýn¶ࢺ }^%üöd‚؃¸÷Í×{úùß7N³— .\2-Œl’k’k’ëÓè§ÑO£<4òÐHG"á=c÷ŒÝ3öIË'-Ÿ´LìØ!‘'q¦c‘a‘a‘a¶£|¿íý¶÷Û¦›n¼6^¯;Mî4¹ÓdÛ5À÷ 6Í«Æ]|¤©BÜûæ«pä×vUâí­!ŸxRàI´0¼±—c/Ç^>7ñÜÄsµÔnP;G"á!‡4Òø¼Ëy—ó.qõâêÅÕãs ýò›á7Ão†í(ŸúäÔ'§Hë˜R>¨Å /\¼Ðîõ Kæ×ÒÇýÖõÙÒøü÷ù…rA•oÛV©ÐÆB mŒ{÷(îQæ0#Ì <x,ðضýÛöoÛ_þ~ùûåï'oÛ«ø¬â³ŠÏÚyCæ ™ýùó?fl66ä‰Âª‹ê¢ºØö:X Ö‚5>1€·K¨žP=¡º½ØOÙº­Éò’æÄ§¥ÊD¿OÏߨ¶e¢½Z]]|uñÕÅiy¬Í+Ì+Ì+žo}¾õùÖ£>G}Žú8 ïØ»c~íýÚûµO(’P$¡ï¦ôâf®›¹næ²ÓØñ±ãcǧ¯¾¼>õúÔëSöÖ?½·U\U²·¥úГÍüˆ~OÿVé—Uöj¥ŸÖOë§ÓòXÇ{Æ{Æ{^þìòg—?=|ôðÑÉ„û¼îóºÏëÓOO?=ý4&sLæ˜Ì|2¤+*­¨´â_nþÝ4ºitSꃔE àƒ2Ç™ãÌq-6·ØÜb³½M_¾Xä³kÔÇýÖ«³õÏ ;‹¨an˜`¯>~ñ~ñ~ñéqôƒ:uê¬ú¨>ªO5VÔX‘¼m¯<µòÔÊSkEûíW´÷[é·Òo¥‘ÉÈddJ5©Ñ´FÓMßì]µ¦ÕšVcx¯¾jøª¡Ý«?‹i“Wα˜žÞ’:}œÑïËÂ^Ÿnk¯>®W‹«Åp7Ü ÷ô5î–––A¥ƒJ•>õÝ©ïN}çH$¬^S¯©×|ªùTó©çççÁ;+mZ?pýÀõß»-U¶TÙR%ýöèŠë×+®öÖ<üiWÙ–ˆa_üšåãŒ~/íìUËÓ^}FšGšGšÓã¸'ÎLœ™8óFË-o´œÔpRÃI=K¸s§Î:w:zÿèý£÷#G.Ž\ÌgEš³ÑØhlÌ“%O–Cþ[þÛý·ûo·)7_7_7_êƒÔ@ à?øKà/¿¼}ó¢êŠ)ú†ú;ú­ýåš®Gµ¼ù‹•™m¯;Cv†ì ùfEØþ°ýaûô8Ðã@V[UlUёͯ™Yff™™åÎð;Ãï OŠOŠOJCWN».u]êºÔ¶Í/뿬ÿ²>Ÿ@òÜh{£í¶ö"½­Ÿ9w\:4vãαŒýz¾8gSá·œ1]cºÆtÍàb°1ØüúÜës¯Ï]èt¡Ó…N s,̱0Gò"áÍ[7oݼÕk©×R¯¥Ñ;¢wDïà÷!y9{9{9ÛŽK´w´w´wÆèãªu«Ö­ZgoUÓzÎw?9c {“¿2vôëÒ²w5/{u(Ò´HÓ"M#rEäŠÈ•±ç¼¥¥¥w&ïLÞ™œò;åwÊïȪ¸a‹†-¶p v v 9r"äŸ*Òúç럯n;.{#öFì¥>H Àþcg<žñxÆÛ7,¾oԻ㸡õ.›jxÆd¤è÷'÷™+…roï»zU½ª^ý˜gHääÈÉ‘“ºu=êÚ9{çì³;²ù5iÚ¤i“¦ÝucÔQ‰‹'þg·ÈkàÖÀ­Û›m+7±ÜÄrùLwuÄÕWG¼=Ì{qööñ­}2RèköZ_úÞ½àkû¾½ï‘î‘î‘îéä8n7އ= {öärË5.×Xæ¶Ìm™[ò"áõ×w\ßñæ—7¿¼ùedPdPda6̆™÷`jؼgóžÍ{þ§þÏ×?_ÿ<ãõti­¥µ–Özûzæþ¨ž®õºd¤Ð7¾Íà ¦gÆ'ÖP¾óµ×ëB] u)Ô%drÈäÉç»À’dI²$ù÷ï7~EVÈ”;(wPòVÅ5ÔxPã–U˪e 42h$Ÿ3©âµñÚx]¼cñŽÅ;¾Yÿæõ›×oÎ/}"Hž{6îÙ¸·oRäY®i¥¤š –Ý?<?å÷´)ç•ïvÍ4¼éÛû»×w¯ï^nö/¢c£c£cO;}ìô±>;ûìì³Ó‘Hx´>Z­_þþò÷—¿¿'þNj·?lkØÖ°­¶-Ù2rËÈ-l½)æöŒÛ3nÏx{€wáÏ#{×]3”gÛ¤åé7ú oȶÑkZ®t[ü“½ž®¨¹¢æŠšÑ'£OFŸdnüP#ÔðŽðŽð¾y-òZ䚺kꮩ›¼Hxå“•OV>¹Úûj﫽#¾ˆø"â ÃÏð3ü(³#bÛŶ‹ý—zß~søÍáµ×…ÂFáík˜ ¡M¾ªl6,é;úõêÔ㻺C ÌÏýKÎx»÷šWu^ÕyaÃ6†mäñ?6Œ þÛü·ùo[{ýíõ·‹W/^½xõä­Š+”®PºBém϶=Ûö,ðNàÀ;F¸n„SfG. \ø/wýÙ7~ßø}ã©R0€4$¼kx×ð®Mî4¹ÓäÎÛ·'Êù÷únL`Ý–›&½Ÿ¢ßÊÂèË «>üÛÙyü»l¾xöòìåÙ‹ùðîâ*ÇUŽ«|~öùÙçgùlÈgC>s$´lвAËÎm9·åܖرb¤lkT8Pá@Ûó>[ölÙ³eŒ&²×\ÿqý·‡v‹:, q Xp]ÙRÉ0? Ä´úÆO|ì)–s/vÀ}íïoïKœKœK\‚g‚g‚'óáÝEíŽÚµûÖ²[Ën-sÞâ¼ÅyKò"á%í–´[ÒÎs™ç2Ïe¡æPs¨ÙØll66Sáww/é^Ò½$ÛÚF‰*U$c÷ýÐÎC;ý?~Ñ­äŠ|kò|~uJWçÚÓKè:oÀ¯—Nªðó„r½ßÞ»þý#úGÄÿEü¼ÞÉkãµñ:pNàœÀ9Ûšok¾­yù_ÊÿRþ—ä­ŠK|Wâ»ßm˜´aÒ†Iþ1þ1þ1†hˆ†H™ßݶžÛznëi[ÛÐû¡÷CïS¤`i޹¹¹¹¹ù|a¾0_x§ßUW†|:³JÝj›~<;5ME¿¦Ëž?ý1cð65ŸXæBù oïEõbÕ‹U/ö|ìó±ÏÇ2—P<¡xBñ+™®dº’iL®1¹Æär$î]±wÅÞO]>uùÔåèõÑë£×;Ò¶–O[>mùôžf׿Hÿ"ýGÆ#ãc¤†°À°À°ÀU·WÝ^uûíqݶN»/=xäV™-ÏÓ\èÛï±›Xê²Ï‰²ë¯½Kôè9Ñs¢çDësp™Ž‹éÓ?¦ÿÝ/ï~y÷Ë­>[}¶ú89ÀúkF!·Bn…Ü2~6~6~¦Âö„ƒ7«·jꪩ«¦ÃbX>† ø´óiçÓ.Ï¥<—ò\zûŠ¥eɲŠDßZß}VÝÏÓ\è{l@ÏÆÎËö6¨Yñîݲeß–}[öÇŒcÆ1ÞŽ *T2¨¤ú—ú—úWõÈê‘Õ#“·*ÎãŸÇ?ÿг+ή8ëwÓï¦ßM#«‘ÕÈJ…í)ß¹|çò߬a]£®Q— ÕHÓ<›z6õlúî[eÖu83`Æ/5OØ]ýǾµ¯Ït²`ųÃÌ=ž3gî:y¾{—6¯.´ºÐêBÆ c†1ƒO=‰ž‰ž‰ž7ëܬs³ÎdŸÉ>“}‰„;Îí8·ãÜ#ûŽì;²/òÛÈo#¿}—6DŽ9Øöhk×® dŒ€Ôf ·„[Â=x ðð.ÝŠ5Ën-êuçŹO6æ‹›ÿ8›þáCßWw+oË}ä஘Õ{Þ=\|ÑãE=ñÔö ×ƒ^zIÑR´íH$ì¾Ð}¡ûÂWs_Í}5ײ˲˲‹ ÇyÆyÆyÚÖêªÇU«ÝJ¦NbÄ:Ó"¦EL‹x—µJù…²ç+¹×©MÕê‹#Û ÜÕdè }ƒ†õÿµÑí•ÝýêÖ~¬êí2KÞ¥ÍÅ›oR¼É½Z÷jÝ«ÅüOmÖ§)»ötíéÚ³Á°Ã sdmìtÁé‚ÓïAÞƒ¼YªXªXªPá òAåƒÊÛÖj‡ÇÔ©@:{"öDì 'w'w'÷÷ÝŒ({´s¡%z5+¿à•Âqo®5½SaÆàE3Öå÷þ~ëGß½UMC›†6 õÛå·ËíÝÿŒ¹¢¹¢¹âÝÊw+ß­<«÷¬Þ³z;²íÕbm‹µ-Öî︿ãþŽaõÂê…Õ³=ãÑYGgeû½O6<Ùðd#|HÁsƒçÏÝüÏæ6ÿóî©ù¦|K_Ý<í~Ú¹llÌ£­Â”{V_ß½¥Ê yß×kÖ¾o|è9×s®ç\s9s9s9Æ÷¿ß;¾w|ï‡K.y¸DÖƒõ`G"áOt<Ññe®—¹^æ²d²d²dúØêéS×§®Ï¿<9¢nD݈úº[ëo­¿µ¾|Dùˆòï¾Vùõn™‰EÆhóZL¬Ö"êÖ †MN§lè{¶oÇ;5W?XcñwWßwµ)qSâ¦Ä¤ÞI½“zóIò_ s s sÚ¿?~|Ëõ-×·\ïÈÚxæ¼™ófλ³ïξ;ûÌYÍYÍÝUÂê|u¾:ß¶2Á‡ƒf¾!µHg÷î Ü3b߈}#ö9²%Qp\%ùç¥Î´²ôÎñýá>çÇ·¨Xhè_³³U1ÒyÁІûÍ«X¾Ï1Ç—íÑéûÁë‹¶¨u¼ÙõœÕs»ä9¼3þ0÷‡¹?Ì=·òÜÊs+0#Ìc4ÓKKKKKKoooooï…ë®_èжWýßëÿ^ÿ÷;wîܹ3¤lHÙ².uºÔénÞ˜ó‹œ_äü˜lL6&Sà?pÎ8gœ{´éѦG›–—X^by‰äuK=–˜ºíì"ÏY¡ŸÞu`ØÚfWŒ“_oÈyûÇ3'{õ8{Ñùø§_n¼°öȵuwŸr½ºþ¶‚+,Õ e?–ýXöèiÑÓ¢§1˜iS‚œ 'ÈÖ9æzÚõ´ëiGFÜ-Ö-Ö-6pzàôÀéæŸÌ?™ÊØÕS©ÔGÿóLåWK^-yeF³ËrÖrÖrÖ­´[i·Ò9Üs¸çpOÞŠ¥xñ¼;sOêõ}ÅÌ%3ÏÞUûÔ1‡4YócGµqsKUCÏÝbGµ¡¦2ÍWÙº´Vý»\Qmv™˜ZÁŵ‚óY)ÍøvÆ·3¾}½ïõ¾×ûÍ´)ò·Èß";ÚñhÇ£;Íè4£Ó GF|RÒ¤¤II7Ün¸ÝpKÅÄ þ,áÙkd¯‘ýÍ T›RmJµ)Ì+|ÀÒ± RA¥‚JÍ™:gꜩ9Ò¤ö9ÛçlŸóÊÀ+¯ d¼Ò¥âFq£ø£úê?ª¿rÉÊ%+—äû2ß—ù¾L©²¬Ð²BË Qf íдM$ ’9¥Iç"ÏEž‹ŒUcÕX•ñJ/%^J¼ä?ß¾ÿü}c÷Ý7Ö‘ùp`Ê)¦œ 8p.©aR䆣J %J$üË/dx&x&x&0‹ìqŸæ>Í}ZÝ“uOÖ=™6ׯ«ó­Î·:_dhdhd(ã•E{E{E{pzÀé}Jô)ѧ„#óáÏJVú³ÒåÉ—'_žž1ª23dfÈLÛþÊ×äkò5f> `D|Ãø†ñ Ï|qæ‹3_ô™ÙgfŸ™~K«ê誣«Ž–FJ#¥‘Á…‚ ìeD®†«áÐ' O@çZεœk•lR²IÉ&É›3eg•UvÖÖE[m]X:°t`iã…ñÂxA™´ j{Ôö¨í×Ë\/s½ÌÚ‘kG®ùáãÞ}ú>}Ÿ0?`~À|ótótótÆ%ãIº’t%éʳ¶ÏÚ>k{ÈrÈrÈâÈœÙ}÷ýÝ÷=z”X!±Bb…ôX¿~=üzØö.¬fXͰšÌ™wøcà?n(¿¡ü†ò¥º–êZªë‡_Ø>bûˆí—‡\ryHÒæ¤ÍI›—Œ'.{\ö¸ìç+Ÿ¯|¾òà¿ÿ=øoGæÌà|ƒó Îw.ü\ø¹ðØøØøØøtùÏ…‘®#]GÚöîe‡—^v`Îàà ÁÝ?ÿüýó¦—¦—¦—½?ëýYïÏr5ÏÕ‡ÿ/þ¿øÿb,1–K(sòÜûóÞŸ÷þü¿M·~/û½ìGMàÆFc£ÿXÿ±þcÏŽ=;öìØmò6y›ìH\·8lqØâ°=Î{œ÷8ßÚzkë­­¯zýÓëŸ(öÇ̼ݼݼýyÄóˆçdžzl¨#slGžyväñ}åûÊ÷U|D|D|DÚ¯ÀŽ3;Îì8cÛC6dCf†$s^66vë>Ö}ììQ³GÍU»qíÆµ;²*.<µðÔÂSZZZô£úQýèã1Ç<Cµ?f Ÿ'|žðùåý—÷_Þÿç²?—ý¹Ì‘9ÖûHï#½œ.}ºôéÒÑG£FMûh0·ÁÜsßìE¹åv–ÛÉÜÀ‡D @ª:t.èœx^L/Zîk¹¯å¾7[RĹˆsgã±ñØxÌ(ãC" U$äJÈ•ËvCjúÎé;§Û}XäµÈk‘׎M<6ñØÄ.m»´íÒ֑ͯ‰ý&ö›Øïú¹ë箟Kì–Ø-±ÛÇ6 ‰#G&ŽìêÙÕ³«§½*ùoòß俉 :gœ3Î…—/^úòÞË{/ï]>jù¨å£’ ¯׉ëÄ+o¬¼±2rWä®È]F¢‘h$¦Tc“& Lh{^w³»ÙÛ\ŸÕ}ªûÔ¾Oú>éëÐ-òFÍ5wÔÜK“.Mº4)Þ9Þ9Þùc‹¤ÂI…“ ÷Ê×+_¯|ö*óøÂã /0odp‘F¤™?2dþë#®¸>bMÈš5!É‹„WV^Yyeå+þWü¯ø‡Ÿ ?~θgÜ3î%¯iOxúÃÓlÏòêü«ó¯Î3t ÍÐ - T@©€R<7xnð,±­Ä¶Û’·*þÁý÷Ü·ÆnÝØ3°g`Oã•ñÊx•¼¦ýãèGÿ°=Ë×'®O\:|xÀ¤Š?oýyëÏ[¶Û@I“6&mtäÈqãâÆÅ»PëB­ µ†VZyheG"áýöØÏ#À#À# vMìšØ5uD’Ž'O:þ{çß;ÿÞÙ^5üžú=õ{Êìð±‰zõ"êÅíOozûÓ­6¶ÚØ*y‘ðâu‹×-^ç™Ã3‡gŽÐ#¡GB+•ÆÊwiÃÁ¢‹,j{LËIËIËIÆÀ¿ˆ4"È@s 9Ðlªnªnª^Á¹‚sçä­Š‹+v¬Ø±õ3×Ï\?Óÿ/ÿ¿üÿ2V«ÕïÒNΜ;ýÏysÖÏY?g}ãoãoão 0),ñdâÉÄ“¶›J²NÈ:!Un—Ð#¡GB+{®ì¹²glõ±ÕÇVw$îÓ3¦gÌ©¯N}uê«èÑ-¢[d¤Ñ1·7·7·0wÀÜsíUàaäÃȇ‘Ìd³˜u1ëbÖÝpwÂÝ Ûæl›³mŽ“Î:Wè\¡…! CåŒrF¹ÿùdîhîhîhû]'ž5%jJ”#‘ðoMkú[S·@·@·Àˆƒ#¦÷12ß6ß6ߢQ‡¨özíååÅ|«¸q%âJ<8÷à܃s²³ì,;; »grÏäžéÕϯ~~õó³³ÏÎ>;kû5/»¿ìþ²;•à¸Ç!C缾«Æ® ݺ5tsdm¼àä‚“ N>¸ñàÆƒ§¾<õå©/m¿Æw¬ïXß±Tÿ`RØä-“·LÞb» ”X ±@bÿªUæ.æ.æ.w/ݽt÷Ò쑳GÎéȶWó6ÍÛ4o³ïŸ}ÿìû'ôaèÃЇéq¤,­,­,­FqtÄQ{=½ÿüþóûÏ™Õ`+Þ)Þ)ÞéaÄȇ.‹]»,vJQ–|–|–|Ô@j{ö<ìù+®¸Òʯ•_+¿)ÊrÍrÍr:ã¿B @Š1—1—1—±ÝYfd™‘eÒZk-C-C-C}FùŒòµh뢭‹¶:²ÉU/[½lõ²í¸¶ãÚŽkÁǃO/£fÙgÙgÙ÷ç©?OýyÊ^ïî^¾{ùîef8¼]•„+ W%=Jz”´«×®^»z9» qâ6$°\`¹Àræ|æ|fÂ`©(R‹Ô"µc…>V¸ó‰Î':Ÿpdm<ñÉÄ'ŸÜÈy#眉&þ™ø'ƇD @йûÍÝoî~c»ä)yJžR:è@ £†Qã‘ç#ÏGž«­Z´jQþÉù'矜¼m¯jNÕœª9É÷åûòý—]^vyÙ%M÷=«‘ÕÈú×á¿ÿuØ^¼D/ÑKdžÀ»K N N ö÷÷÷÷÷ߟyæý™‰„÷?Ûÿlÿ³€áÆ'O*žTœ '¥”¥”¥ÔÎz;ëí¬çµÐk¡×BjØŠ)S"¦„{÷2îeúvéÛ¥oG"áÑYFgåÒÅK/]Œ? þNžøNñâ;ý:÷×¹¿Î=Ðà@ƒ ¨‰-`R̬’³JÎ*i»Ýß>¾}|ûtÙ¥cÆ1ãX€_€_€ßÆÊ+o¬\jg©¥v&oÛ«ÜñrÇËß²i˦-›žiÏ´gšñØxl˜t0é`R›Ãm·9ìÈæ×ô€éÓ¼*zUôª˜$&‰Ib*6=ÁH0æ»Íw›ïf¯=ÍÍÍŒ2ü?47šÿríéž^{zíéõÇ™aÌ0f„v íÚñb§‹.vZ4wÑÜEs“ oj±©Å¦·wÜÞq{GtÝèºÑu?žñËé—Ó/§½Ê\™pe• L[À*ñpâáÄYÁNøeÂ/~y÷ãXzZzZzú”÷)ïS~Q¹Eå•sdU\O«§ÕÓvþ´ó§?<#²'`OÀž{•Qò*y•¼ç\%À!J<*ñ¨„ívÃÉb'‹,F}Þ.ªTT©¨RÇ민~W§®N]ÙüšÐtBÓ M¯¹^äz‘ÄR‰¥K¥F›õZÔkQ/{m8?ãüŒó3Y°çu©×¥^—² ŸÔyRçI‡}Õ¸j\ >(|ЕŠW*^©¸¢ôŠÒ+J'/^¹6rmäÂ7 ß(9.r\ä8#Έ3â2ìzfÄ£Fثƥ3—Î\:ÃìnXnXnXlW€×ó^Ï{ݱ ±‚QÁ¨ðhÑ£E­Ê¿*ÿªüùn仑ïFòVÅ?}÷Ów?}§4R)^.|¹ðåÂŒ=.ûoÿ¦½jþ‚¿àÿ±ÍU`²²óÊÎ+;Ûn4D½ˆzõ‚ú¼¯˜e1Ëb–©}¦ö™Úýr÷ËÝ/·#‘ðȾ#ûŽìëyÞó¼çùø^ñ½â{¥T;—†. ]jï¼g#ÎFœ`4ÀÖùJç+¯d1&¶NlØ:…Okı‘#;Gv¾îÝÿºÿÚ­k·®Ýš¼HxÅß+þ^ñ÷•!W†\>7|nø\ã†qÃÈPO‚|êñ©Ç§ìUÀó+ϯ<¿bãc6yÜäq“ÇÙ®ýK$–HLé[¦4¤)@r>å|ÊùT©¯J}Uê«ä­Š¿ïó}ŸïûlýjëW[¿zöèÙ£gŒ§ÆSãiFC{í=´×^¶ […­ÂÇ3W €H®íÆvc{Þƒyæ=øææB{öí=(OJ‰;w îÀ…Ð ¡B‡uÖ}XwG"áUTPÕã{ï=¾mÛ6¶­#m[9aå„•ì˽›{7÷nŒ üÍÐ Í6VܱiǦ›>dC¢KF—Œ.y{üíñ·ÇoŒÙ³1&y‘ð"ßE¾‹|/®¼¸òâÊпBÿ ý˘gÌ3æ¥÷òÿÆÿÿoìõúBó Í/4g:ãcc.j.j.ú/¿nøÛÈßFþö¡–ÅFœ÷|âó‰Ï' %…’BÉŠñã+Æ'oU\´]ÑvEÛ­sZç´ÎéIè“Ð'¡ÆcŽ1'½Ô‘9Gæ™c¯×›:n긩ãÇ0c €H¦€† Ún+?~8œú¤ž„U «V]ísµÏÕ>㺌ë2®‹#‘p“=Nö8y²éɦ'›FÅEÅE½÷í=ׄ¬ Ybïø'wÜur£a-ÂZ„µ° ýù5òkôß¶-æRÌ¥˜KwîÜ 0•7•7•wr€ÇzõëC„4i`ä7òùÓå:§C@‡€öúxnƹçf0«ññ¸y'òN¤íJÏó¤çIÏ“ÿmÛ^}úêÓWŸêuõºzÝ_¤_¤_¤ä­ŠsÆåŒË·Ì}™û2wßþ‡}[|,>Ÿô8^Ç›o~¼¹½ž®^½>:cÏX`’Éù3çÏœ?³ÝPˆhÑ:¢5õù’Ê'•O*kî­¹·æNÍ:5ëÔ¬ŽDÂ>ïðy‡ÏÝ ºt+Ñ;¢wDïwiÆnºmèfï˜ÇbÅ‹e¤|Ì.¼TðRAÛ(1!_B¾„|i­µqâ:Äuð®ì]Ù»²RW©«Ôu$>ý÷é¿Oÿô"èEÐ Ë<Ë™€÷eDQ%¢JD•ˆzs¡Ù™fgš¡^ûŨ£^Œ2ß0ß0§ég ?;ÿìü³óöúâîíîíîmD‘F$“¥ž¥ž¥Þ¿Æby±¼Xvd۫α:ÇêÛº=t{hðoÁ¿ÿϳ߶}ºíÓmŸÚûÞC}õ=Ô—ðñ°ÞÃ68ô)íSÚ§túíWBDBDBÄãÞ{?î½+zWô®hG"áÃwß=|÷Ùg7žÝHŠKŠKŠKký Œ Œ ´û¼äSæSæSf#À0˜óÈH¼%oÉû_nªìQ£„G‰ôۯȤȤȤcO==ö´K|—ø.ñެ'œ›pn¹ëî»>,±vbíÄÚi­¿õ<êyÔ³×þ¥NK–:e¤yK À{344´Ý8:$tõI7Z­ŒV{üÛãßV/X½`õ‚/ ¼,ð2yÛ^U+V­Xµ¢&…Ia/ž¼xòâ‰ØPl(6´÷õû§íŸ¶ƒàcpÕÿªÿUÛÈ0îD܉¸©§IÙ“²'e¨P? þþ-û·ìßâH$¼¿ýþöûÛd È-ÑœhNL·Y~QüEñÅíµùd“N0®WŒ+Ì|d k,¬±°†íZ.¶Ul«ØV©§1#cFÆŒtêþÔýéïN¿;ýîäH$<2`dÀÈ€Kù.å»”/~Rü¤øIi¡ç/ž¿xþ¢½6/ŒX±0"cŒ&0ï­Â« ¯*¼úŸëA'×™\g2•I÷ÎçóOû>íû´ï¦R›Jm*U&O™Á/Á/Áï¿ê×ËF/½ld÷וŽW:^Ép5\ WÞHÇòùŒ|¶ë·{zìéñQ|‚Å­‹[·îÂæ ›/lzsèÍ¡7‰„plÀ1éÓ=¦ÇŽŠ;ê¿ê—g3ÏfžÍì>ó¸íü¶óÛqFœ—~ÇŽ€÷´3hgÐNÛm‚íg·ŸÝ~–úd@fÃl˜_”~QúEiq’8IœT9®r\å¸)Êu¹ër×å@ÆU!ªBTÛ€ðÞ“{Oî=ùH°øš};/6¼ØðbÃñÙÇgŸíH$ìrßå¾Ë}ßÒ¾¥}KÇo‰ß¿åƒ®‹zõêm¯mGë­s´Žád8N¼=úæÑ7¾±]¹¬{²îɺgM¦$LI˜r5ûÕìW³½5öÖØ[ެ{¶îÙºgë“[Nn9¹%ºHt‘è"²/—\>pù€½¶ÍÞ4{ÓìMé÷¶öÀ¼m™¶L[f»A\7¸np]êóñx%¾_‰.s]æºÌ­µ¶ÖÚZkW¯^Lmd$7Ü\psm4Û8¶qlcêceYaYaYñ*竜¯rž>}úôéÓŽDÂòsù¹üüA܃¸qq5ãjÆÕLõŸ‰c^y5Æ^{Ü»5vklô2z½k¤/++­¬´²’íš-*****ŠúX%åMÊ›”÷Ví[µoÕþ{éßKÿ^êÈz¸ÃÚk;¬u›è6ÑmbļˆyóR»ý×ò\ËsÍîý~þñùÇçã´qÚ8¾Æ…€÷ðó–Ÿ·ü¼åÍM*/ª¼¨ò‚Êàõƒ×^?ØÓfO›=mš¼jòªÉ«äm{í Þ¼@±!׆\r½nž¿yþæùTæÿ¡¸QÜ(28dpÈ`G"ám^Û¼¶yÝÝ~wûÝí1»cvÇìN&Ož<Ý^5:ÔèP#£œQÎ(Çð"Ð ÝÐóNË;-ï´7×iícÚÇ´¡u$þuï~ݰ/˾,û²„j¡Z¨–m¾1äÆCìµajÖ©Y§f5–Ëåée€x'!q!q!ÿrã_éŒtF:C}>"???G_¾}ýÉ™'gžœ9›ólγ99s>6èô ÓƒN—+Q®D¹﻽UóNÍ;5ï$ÝOºŸtŸ2HG?~nzM÷šî5ú¼·ÅÆbcqèúÐõ¡ë/Þ¾xûâíÅõ×[\/y‘ðÆ-·lÜr»æíš·kFýyôç)¶^š2'd޽ó¨} öÚ–Kˆ%„!EZP1 b@EÛÕš[·n9¨Ïû²L±L±Lñ9îsÜçøâÊ‹+/®ìH$\·KÝ.u»ìè¼£óŽÎÁ³‚gÏJ©vÞÚqkÇ­öÎ;éÇI?NúÑè`t0:¤ýšðNÜÛ»·woo»ðâÒ‹K/.QŸtÏbX K¨„Q £‚~ú9èçë½®÷ºÞËÅÇÅÇÅgÊ¡)‡¦ª\?¸~pŽTÓgHŸ!}†02†;Yîd¹“Å6Œ–¢¥h‰ú¤/ÃËð WÃÕpõŠvE»¢­¸·âÞŠ{É‹„×6^ÛxmãëòuùºY#²Fd #Úˆ6¢“״׳^Ïz=ËÞ¹öUØWa_ËˈiÓ¿ ~ülWkÝ#ºGt§>) ¡ÑÐhø8÷ãÜs¯Î³:Ïê<h\ qòVÑU/U½Tõ’ÜCî!÷x™ïe¾—ùúp}âõÄ뉽sýÕô¯¦552™ŒLi¹ÀÀ¼ódódóä{]ïu½×uîñ¹Çç§&é`Ôt³nÖÃ[„·oáÝÄ»‰w7g7g7ç%­–´ZÒªK×.]»tÍ}2÷ÉÜ's|@Í5?ÖüØ´cÓŽM;¶ Ð‚B ݾ|ûòíËŒ€ŒaKÏ-=·ô|3ö[_s}Íõ5©L*Š7âøÈ•‘+#WÞè~£ûîëÚ­k·®]ò"áåç–Ÿ[~îrðåàËÁáM›„71< OÃóÝ›:%tJè{Çß“oO¾=ù,Xþ°üÁÐ! ‰2¢Œ¨ÇK/qüÍ•[³¨fQÍxîojr7Ü ÷§ež–yZfãþû7î/=¦ô˜Òc’·Òþ.þ»øïâ·äß’Kþgž x6Àxh<4¾{sîe¹—å^{Çÿ³õŸ­ÿlmÑ,šEK›å$éÓlc¶1;&.&.&.À3À3Àó\ô¹èsÑ[¦m™¶eÚð߇ÿ>ü÷Š›+n®¸ùCƺU&W™\eò¨-£¶ŒÚb*j*j*z!îBÜ…¸g?>ûñÙ±î±î±î†«áj¸2€2ªØY±³bÿåêÏÑ7¢oDSŸ/ºGtè·oÞÜ$l6 É‹„•YTfQ™‹9/漘3´Rh¥ÐJÆcŠ1åíg6¨D#ÑH|ò<äyˆ˜UÌ*f­Ü½r÷ÊÝ“·J/ü¤ð“ÂOÖ._»|íò'Þ {2ÌkŒ5ƾ½ J?(ý ´½cŽh:¢éˆ¦–z–z–zi­xÀ zò*äUÈÍЛ¡7C]Û¸¶qmóÏÿ|ñÏM 6-Ø´à‡ŒuóßÊ+ÿ­îW»_í~uyé套—>zçè£w|žø<ñyÑ2¢eDKKVKVKVF î½?ôþPÛ¨/òIä“È'Ô'-ˆ±ÄXb,÷:Üëp¯ƒé¦é¦é¦“n>næÞ*ø™Z˜Z˜ZØ®C'†N H}ÒÄ¿ƼójŒK1—b.Åj&ÔL¨™Ì%þì³sÌ^zjé©¥§|ðýÁ÷ËiËiËiÛ3úüèó£Ïö3¤òÊC*›Ï™Ï™Ï¥*€4êÄ»77ÞÜxó´‹Ó.N»¸³ýÎö;Û߬v³ÚÍjÖ­¥Ä,‰Y³0ðîÄâ qÆ›ñÞÊ‹+/®¼h$IFõI›âfÄ͈›á½Þ{½÷zÅOñSü‰„O…Ÿ ?ääälccc=KÄÏ?Gülï»\v¸ìpÙaîkîkîˈà¿RáP…C½¹V¬³³ÎÎ:;©LZözçë¯wî~¹ûåî—M:7éܤ³#ÿ:˜ç2ÏežË}ñ¾x_4{š=Íÿwë{ߊ¾}+Úû®ß øfÀ7æææi¡&À rdã¦ÂW¾ªðÕ°¯‡}=ìëÍC7Ý<ô\És%Ï• ¨P# FŒ#ÇÈÆhc´1š:@J‰‹‰‹‰‹± ö®¶ºÚêj+꓾ÄûÅûÅûùó=æ{lûÅí·_t$>æzÌõ˜ë‹B/ ½(ž%²m¤žžε¿é^bÁÄ‚‰|üññÝËw/ܑ߽HxŸÓ>§}vÿ¯ÒPi¨4LZš´4i)•LJ¡ÐFh#lןÁm‚Û·¡>é]Tû¨öQíï8¾ãøŽn5ºÕèVÑHxˆ>D¢Ûû¿={:÷tNú*髤¯þ«þR€6S›©Í|3Æ[R}Iõ%Õ _Ã×ð¥>OR•¤*IUœœœT;Pí@5§%}*}*}šT(©PR!ªÔöóП‡þü?׉V-ZµhÕ¢T&£Š9s(æÐñŒxFìw¬ß±~ÇRöA3][wmݵub·Än‰Ý>|ï€Ih™Ð2¡¥m€ç9Ísšç4êóñ0—5—5— ìØ9°³Û>·}nû7VßX}cõ¸ã~Œû‘ #5„¼yòÂ6À“¥@)ú|<âîÅÝ‹»w±ãÅŽ;K–0,Áñ¸Ñ Fƒ JpNpNpþ}!8Äï¸ßq¿ã¶Ñ]hdhdh$õù˜™cÌ1是^¼zñêDöÙOdOf œgcžy¨'Rî滚ïjnݽxøâ዇Ôçc–°7aoÂÞ«Ç®»zl\ĸˆqÉ‹ÛÎk;¯í¼Ùr`€CvöÝÙwg_ÛÐÎØhl46RŸ‚Űsisisé¨Ä¨Ä¨Äç ž/x¾Àë¼×y¯óÇÝŽ»wÛÖw[ßm}“½zôš2#54ôjèÕÐëÍ¸î»æß5ÿ®9•ùˆDFDüºøuñë^¬}±öÅÚ+¡WB¯„ª²*«ò„ƒN8X»DíµK¼oô›}göÙw>Éý$÷“ܲCÀ‡lZ¹i妕oÆuç[tn•É,,,âœâœâœ‚ÍÁæ`óòË>,{þ“óŸœÿdûòíË·/_xsáÍ…7R £€ÔS¹fåš•k¾ÚmÞ¶yÛæmT&c066 »_â~‰û%î8¸ãà§UN«œVuðêàÕÁ+G*ûð½&¤€˜ø˜ø˜ø{¿ÞûõÞ¯¯å×òk™š¤iG£ÆÑÄA‰ƒ…Ÿ ?~Æÿ¶ÿmÿÛ×6\ÛpmÃÁì³̾®öºÚëj;}@Ε+;W>ÜÿpÿÃýÏû÷;ïw¯ú½ê÷ª3\Hm¯¿üj°K—,.Yóæ ÌGMÒ´úF}£~ôËè—Ñ/Ÿ„> }zö·³¿ýmã·¿ÝøíಃË.[nC¹ å6äø€jô¯Ñ¿Fÿ±ßý~ì÷Kç-·tÞÁ¢‹,úáËC @†b^i^i^}?ú~ôý·^Üzqë3îÎ8ùè䣓„H!Rˆü±î’°%aKÂ\k¸Öp­q±òÅÊ+ûúøúøú¼®ýºöëÚñmãÛÆ·5r¹ÜŒ€„™ 3fõêÔûúšëk®¯Ù^n{¹íåþÎówž¿ó4èÛ oƒ¾2Ö-úyÑÏ‹~Þ§FŸ}j¬r_å¾Êý„vB;¡ùùùE.ˆ\¹À2Ã2Ã2#íÔ€t#¾^|½øz¯K¼.ñº„ï!ßC¾‡.Œ ÆÎ¤I;“–ì\²sÉÎîŠUÄ*b•S¹Nå:•ë®vW»«½{ö",:8:8:ؼɼɼ‰Q`>$|Høï Þ¼'¸ù¹ù¹ù-—ˆKÄ.î]Ü»¸ç©“§Nž:2ÜmÞ¦y›æmfîš¹kæ®Ý#vØ=âöœÛsnÏ Ž Ž ŽM<—x.ñ\z¬30鯖Õ[VoYڱ릮›z°ÙÁf›]ó¸æqÍÃ?Ú?Ú?:Ü;Ü;Ü;q\â¸ÄqÆIã¤q’ðîJT.Q¹DåÔŽu«dª’©J¦QµGÕU{ÛÕmW·]½pì± Çž}þìógŸÇºÄºÄºÖ?0éÆ<¯y^ó¼’ë.Ê»(Û=·{n÷<_å|•óU¶zØêa«!B Ä9Ç9Ç9[®Y®Y®Qg©¡bËŠ-+¶L^¬›¿Kþ.ù»tÐ}@÷Ë®,»²ìÊÑ•GW]é³ÇgÏžˆ "*X>µ|jù”:nÜ^}{õí¹xÛæm›·m>|<øx°W¨W¨Wèsõ¹ú\Î#:‡¹²¹²¹²a1,†…ø¯¬‰X±&Â6Üm\¡q…Ʀ Ÿ6|Úð_ìübç7n$ÜHxÕúUëW­bbb©Þ»#€ ‚2`È € ƒ € ‚2`È € ƒ € ‚2`È € ƒ € ‚2`È € ƒ € ‚2`È € ƒ € ‚2`È € ƒ € ‚2`È € ƒ € ‚2`È € ƒ € ‚2`È € ƒ € ‚2`È € ƒ € âƒÀŸy|æñYøhXsR`H÷€ ƒøè`—‚.] ºäwÉï’ß%¯K^—¼.¹]r»ävÉå’Ë%—K—.9\²¹dsÉæ’Õ%«KV—o\¾qùÆ%‹K—,.™]2»dvùÂå —/\>sùÌå3—L.™\2¹|âò‰Ë'ºE·è=IOÒ“ôD=QOÔãõx=^ÕcõX=ZÖ£õ(=JÒ#ô=BÓÃô0ýµþZ­‡è!zˆþJ¥¿Ò_ê/õ—úsý¹þ\Ôõ@ý©þTªûëþº¿þX¬?Öýt?ÝO÷Õ}u_ÝG÷Ñ}ôúý~O¿§ßÓïêwõ»º—î¥{é·ô[ú-ý†~C¿¡_ׯë×õ«úUýª~Y¿¬_Ö=uOÝS¿¨_Ô/êçõóúyÝC÷Ð=ô3úýŒî®»ëîú)ý”~J?¡ŸÐOèÇôcú1ýˆ~D?¢»énº›~H?¤Òèôú>}Ÿ¾Oß«ïÕ÷ê»õÝúnÝUwÕ]õú}‡¾]ß®o×­T]ÕU]Öe]Ö%]Ò%]Ð]зéÛômú}‹¾E߬oÖ7ëõúF}ƒ¾Aß ¯Ó×éëô5ú}¾Z_­¯ÖWê+õ•úr}¹¾\_ª/Õ—êKô%ú}‘¾H_¤;éNº“>_Ÿ¯Ï×çéóôyú}Ž>GŸ¥ÏÒgé3ôú ýýý}š>MŸ¦ÿ­ÿ­ÿ­OÖ'ë“õ‰úD}¢>AŸ OÐÿÒÿÒÿÒÇêcõ±úŸúŸúŸúh}´>Z©ÔGêÃõáúp}¨>TªчèCôAú }>@ Ðûëýõþúïúïúïz_½¯ÞWï­÷Ö{ë=õžzO½»Þ]ï®wÓ»éÝô.z½‹ÞIï¤wÒÓÓÓ;èôz;½ÞNo£·ÑÛè­ôVz+½¥ÞRo©7×›ëÍõfz3½™ÞDo¢7ÑéôFzC½¡ÞP¯¯××ëëuõºz]½¶^[¯­×Òkéµô_ô_ô_ôz ½†þ“þ“þ“^M¯¦WÓ«èUô*ze½²^Y¯¨WÔ+êåõòzyýýý½œ^N/§—ÕËêeõÒzi½´^J/¥—ÒKè%ôz1½˜^L/¢Ñ‹è…õÂza½ ^P/¨ç×óëùõ¼z^=¯ž[Ï­çÖsé¹ô\z=‡žCϦgÓ³éYõ¬zVýýý=‹žEÏ¢gÖ3ë™õ/ô/ô/ôÏõÏõÏõLz&=“þ‰þ‰þ‰fÑ,šEKÒ’´$-QKÔµx-^‹×bµX-V‹Ö¢µh-J‹Ò¢´-B‹Ð´0-L{­½Ö^k!Zˆ¢½Ò^i¯´—ÚKí¥ö\{®=מiÏ´gÚSí©öTó×ü5í±öX{¬ùi~šŸæ«ùj¾šæ£ùh´ÚížvO»§ÝÕîjw5/ÍKóÒni·´[Ú í†vC»¦]Ó®iWµ«ÚUí²vY»¬yjžš§vA» ]ÐÎkçµóš‡æ¡yhg´3Úí´vZ;­ÔNj'µÚ í„vL;¦ÓŽhG´#Úaí°vX;¤Òi´ÚmŸ¶OÛ§íÑöh{´ÝÚnm·æª¹j®Úm‡¶CsÑ\4ÍJÕTMÕdMÖdMÔDMÔLšI3iÛ´mÚ6m‹¶EÛ¢mÒ6i›4gÍYsÖÖkëµõÚ:m¶N[£­ÑÖh«´UÚ*m…¶B[¡-×–k˵¥ÚRm©¶X[¬-Öj µ…Úm¶@›¯Í׿ksµ¹Ú\m¶6[›­ÍÔfj3µÚ m†6]›®MצjSµ©ÚmŠ6E›¬MÖ&kµ‰ÚDm¼6^¯ÓÆiã´1ÚmŒö§ö§ö§6J¥ÒFh#´Ú0m˜6Lª Õ†jƒµÁÚ`m 6P¨ý¡ý¡ý¡õÓúiý´ßµßµßµ>Z­ÖKë¥õÒzh=´Zw­»Ö]ëªuÕºjµÎZg­£ÖQë¨uÐ:h´öZ{­½ÖVk«µÕZk­µÖZK­¥ÖRk¡µÐZh¿j¿j¿jMµ¦ZS­±ÖXk¬5Ôj µZ­VO«§ÕÓêhu´:Z-­–VK«©ÕÔjj?k?k?kÕµêZu­šVM«¦UѪhU´µµµJZ%­’VA« UÐ~Ð~Ð~о׾׾׾ӾӾÓÊhe´2Z)­”VJ+¡•ÐJhŵâZq­¨VT+ªÖ k…µ‚ZA­ V@+ Ðòiù´|Z-–GË¥åÒri9´Z-»–]Ë®}«}«}«}£}£}£eѲhY´¯´¯´¯´/µ/µ/µÏµÏµÏµLZ&-“ö‰ö‰ö‰j¨†j¨fÕ¬šÕD5QMTãÕx5^SãÔ85FQcÔ(5JR#Ô5B SÃÔ05T UCÕ5D Q_©¯ÔWêKõ¥úR}®>WŸ«j ¨>UŸªOUÕ_õW«ÕÇê#õ‘úHõU}U_ÕGõQ}ÔêõzO½§ÞSïªwÕ»ª—ê¥z©·Ô[ê-õ†zC½¡^W¯«×Õ«êUõªzY½¬^V=UOÕS½ ^P/¨çÕóêyÕCõP=Ô3êõŒzZ=­žVOª'Õ“ê õ„zB=¦S©GÔ#êõ°zX=¬R©‡Ôêõ€ºOݧîS÷¨{Ô=ê.u—ºKuU]UWu‡ºCÝ¡º¨.ª‹õ¥Zɪ¬Êª¨Šª¨šT“jR·ª[Õ­êu‹ºEݤnR7©Îª³ê¬®W׫ëÕµêZu­ºF]£®QW©«ÔUê u…ºB]¦.S—©KÕ¥êRu±ºX]¬.Tª Õêu:O§ÎSçªsÕ¹êlu¶:[©ÎTgªÿ¨ÿ¨ÿ¨ÓÔiê4uª:UªNQ§¨SÔIê$u’:A NPÇ«ãÕñê8uœ:N£ŽQǨ£ÕÑêhu¤:R©ŽPG¨#Ôaê0u˜:D¢Q©ƒÔAêu€:@ýCýCýCí§öSû©}Õ¾j_µ·Ú[í­öR{©½Ôjµ‡ÚMí¦vS»¨]Ô.j'µ“ÚIí¨vT;ªÔjµÚNm§¶QÛ¨mÔVj+µ•ÚRm©¶T›«ÍÕæj3µ™ÚLm¢6Q›¨ÕÆjcµ¡ÚPm¨ÖWë«õÕºj]µ®Z[­­ÖVk©µÔZê/ê/ê/j µ†ZCýIýIýI­ªVU«ªUÔ*jµ²ZY­¬VT+ªÕòjyµ¼úƒúƒúƒZN-§–S˪eÕ²jiµ´ZZ-©–TKª%Ôj µ˜ZL-¦Q‹¨EÔBj!µZ@- Pó«ùÕüj^5¯šWÍ­æVs«9ÕœjN5»š]Í®fS³©ÙÔ¬jV5«úµúµúµú•ú•ú•šYͬfV¿P¿P¿P?S?S?S?U?U?U ÅP Å¢X‹’¤$)IJ‚’ $(qJœ§Ä(1JŒ­D+ÑJ¤©D*áJ¸®„*¡J¨¢„(!J°¬+AJ¤¼P^(/”@%P Tž*O•§J€ (O”'Êå‘òHy¤ø*¾Š¯òPy¨e¯²WÙ«ìVv+»WÅUqUv(;”Š‹â¢¸(º¢+º¢*ª¢*²"+²"*¢"*&Ť˜”mÊ6e›²EÙ¢lQ6)›”Mгâ¬8+ë•õÊze²NY§¬QÖ(k”UÊ*e•²BY¡¬P–)Ë”eÊRe©²TY¬,V+ •…ÊBe²@Y ÌSæ)ó”¹Ê\e®2[™­ÌVf*3•™Ê?Ê?Ê?Ê4eš2M™ªLU¦*S”)Êe’2I™¤LP&(”ñÊxe¼2N§ŒSÆ(c”1Êhe´2Z©ŒTF*#”Êe˜2L¦ Q†(C”AÊ e2@  PþPþPþPú)ý”~J_¥¯ÒWé­ôVz+=•žJO¥‡ÒCé¡tSº)Ý”.J¥‹ÒIé¤tR~S~S~S:(”J;¥ÒNi£´QÚ(­”VJ+¥…ÒBi¡4Wš+Í•fJ3¥™ÒDi¢4Q)”FJ¥Ò@©¯ÔWê+u•ºJ]¥¶R[©­ÔTj*5•Ÿ•Ÿ•Ÿ•J ¥†ò“ò“ò“RU©ªTU~T~T~T*)•”JJE¥¢RQ)¯”WÊ+ß+ß+ß+ß)ß)ß)e”2J¥´RZ)­”TJ*%•âJq¥¸RT)ªU +…•ÂJ!¥RH) P (ù”|J>%’GÉ£äRr)¹”œJN%§’]É®dW¾U¾U¾U¾Q¾Q¾Q²(Y”,ÊWÊWÊWÊ—Ê—Ê—ÊçÊçÊçJ&%“’IùDùDùD6dC6d³l–Ír¢œ('Êñr¼/Çʱr¬#ÇÈ1r”%GÉr„!‡Éar˜üZ~-¿–Cä9D~%¿’_É/å—òKù¹ü\~.?“ŸÉÏä§òSù©ì/ûËþòcù±üXö“ýd?ù¡üP~(ûÈ>²ü@~ ?ïÉ÷ä{òùŽ|G¾-ß–oË·ä[ò-ù†|C¾!_“¯É×ä+òùŠ|I¾$_’=eOÙS¾ _/Èçäsò9ù¬|V>+»Ëî²»|Z>-Ÿ–OÊ'å“òqù¸|\>*•Ên²›ì&–ˇåƒòAù ¼_Þ/ï—÷Ê{å½òny·¼[Þ%ï’wÉ;åòNy»¼]Þnýg–õÇ”õ-%K²$K² ² o“·ÉÛä-òy‹¼YÞ,o–7Êåòyƒ¼A^'¯“×Ékä5òyµ¼Z^-¯”WÊ+ååòry¹¼T^*/•Ë‹åÅò"y‘¼Hv’d'y¾<_ž/Ï•çÊsåÙòly¶iŸ´OÚ#í‘öH»¥ÝÒnÉUr•\¥Òi‡ä"¹H.’&i’&©’*©Ö7“$J¢$J&É$™¤­ÒVi«´EÚ"m‘6I›¤M’³ä,9Kë¥õÒzi­´VZ+­–VK«¥UÒ*i•´BZ!­–IˤeÒi‰´DZ$-’I ¥…ÒBi´@Z Í“æIó¤9ÒiŽ4Kš%Í’fH3¤Ò?Ò?Ò?Ò4iš4Mú[ú[ú[š,M–&K¥‰ÒDi‚4Aš ý%ý%ý%•ÆJc¥?¥?¥?¥QÒ(i”4R)”†KÃ¥áÒPi¨4T, –K¥Ò@ééé©¿Ô_ê/ý.ý.ý.õ‘úH}¤^R/©—ÔCê!õºKÝ¥îRW©«ÔUê,u–:K¥ŽRG©ƒÔAê µ“ÚIí¤¶R[©­ÔZj-µ–ZJ-¥–Rs©¹Ô\j&5“šIM¥¦RS©±ÔXj,5”J ¥úR}©¾TWª+Õ•jKµ¥ÚR-©–TKúEúEúEª!ÕjH?I?I?IU¥ªRU©ŠTEª"U–*K•¥ŠRE©¢T^*/•—¾—¾—¾—¾“¾“¾“ÊJe¥²Ri©´TZ*)•”JJÅ¥âRq©¨TT**‘ŠHE¤BR!©T@* òIù¤|R)”GÊ%å’rI9¥œRN)»”]Ê.}+}+}+}#}#}#e‘²HY¤¯¤¯¤¯¤/¥/¥/¥Ï¥Ï¥Ï¥LR&)“ô‰ô‰ô‰h-¢E4‹fÑ,&Љb¢/Æ‹ñb¬+ÆŠÑb´-F‰Qb”!Fˆb˜&†‰¯Å×âk1X ƒÅ 1H _Š/Å—âsñ¹ø\|&>Ÿ‰b€ >ŸˆOÄÇâcñ±è'ú‰~âCñ¡øPô½Eoñ¾x_¼/ÞïŠwÅ;âñŽx[¼-ÞoŠ7Å›âuñºx]¼*^¯Š—ÅËâeñ’xI¼$^/ŠÅóâyñ¼è!zˆâñŒxFtÝEwñ”xJ<%žOˆ'Äcâ1ñ˜xD<"‹‡ÅÃâ!ñxH< ˆûÄ}â>q¸GÜ#îw‰»ÄâNq§¸CÜ!î]DÑź9a]èYßF¢•I4‰&q«¸UÜ*n7‹›ÅâFq£¸AÜ n׋ëÅõâZq­¸V\-®W‹+Å•âJq¹¸\\..—ŠKÅ%âq‰¸H\$.D'ÑIœ/Îç‹sŹâ\qŽ8Gœ#Îg‰³Äâ q†8]œ.N§ŠSÅ©âqŠ8Eœ,N'‹ʼnâDq¼8^/ŽljãÄ1âqŒ8Z-ŽG‰£ÄQâq„8B&‡‰CÄ!âq8H$ŠÅ?Ä?Ä?Ä~b?±ŸØWì+ö{‹½ÅÞbO±§ØSì!ö{ˆÝÄnb7±‹ØEì"v;‰ÄßÄßÄßÄöb{±½ØNl'¶ÛˆmÄ6b+±•ØJl!¶[ˆ¿Š¿Š¿ŠMŦbS±‰ØDl"6‰Äb±XO¬'ÖëˆuÄ:bm±¶X[¬)ÖkŠ?‹?‹?‹ÕÅêbu±šXM¬&V«ˆUÄÅÅÅJb%±’XA¬ VˉåÄrbY±¬XV,#–ˈ¥ÄRb)±„XB,!‹‰ÅÄ"b±ˆXH,$ ŠÅ‚b~1¿˜_Ì+æóйÅÜbn1§˜SÌ)f³‹ÙÅlb61›˜UÌ*f¿¿¿¿¿¿¿¿¿????????? Á Á,˜³($ ‰B‚ $qBœ'Ä1BŒ%D QB„!DaB˜&„ ¡B¨"„!Â+á•ðJx)¼^ Ï…çÂsá™ðLx&<ž OÁ_ð …Ç‚Ÿà'ø …‡ÂCÁ[ð¼…ÂápO¸'Üîw„;Âmá¶p[¸)Ün ×…ëÂuášpM¸&\®W„KÂ%á’pQ¸(\Î ç…ó‚‡à!xg…³ÂYÁ]pÜ…SÂ)á”pB8!œŽ Ç„cÂáˆpDpÜ7ápH8$„}Â>aŸ°GØ#ìv »„]‚«à*¸ ;„ÂÁEp\MÐMPEPIIQ“`LÂVa«°UØ,l6 …ÂFaƒ°AØ ¬Ö ë…µÂZa­°ZX-¬V +…•Âra¹°\X*,– K„%Âa‘°HX$8 N‚“0_˜/Ìæ s…¹Âla¶0[˜%Ìf 3„ aº0]˜.L¦ S…)ÂaŠ0I˜$L& …‰Âxa¼0^'ŒÆ c„1Âa´0Z-ŒF #…Âa„0L& †C„! a0H ý…þB¡ŸÐOè'ôú }…ÞBo¡·ÐSè)ôº Ý…îBW¡«ÐUè"tº„NB'á7á7á7¡½Ð^h/´Ú m…ÖBk¡µÐJh%´Z-„¯¯¯BS¡©ÐTh,4 …†BC¡Ð@h Ôê õ„:B¡ŽPK¨%Ô~~~j5„Bu¡ºP]¨&Tª U„*B¡²PY¨,T* …òBy¡¼ð½ð½ð½PN('”Ê e…²Bi¡´PZ()”J Å…âBq¡¨PT(*ŠE„BB!¡P@( ò ù„|B!GÈ%är 9…œBN!»]È.|+|+|+|#|#|#d²Y„ÌBf!³ð¥ð¥ð¥ð¹ð¹ð¹IÈ$d>>>1YL“Å”dJ2%™M‰¦DS¼)ÞoŠ5ÅšbMѦhS´)ÒiŠ4…›ÂMá¦PS¨)ÔôÚôÚôÚl 6›‚LA¦ Ó Ó Ó S )Ðhzjzjzj 0˜LOLOLOLLLL¾&_“¯ÉÇäcò1=0=0=0Ý7Ý7Ý7Ý5Ý5Ý5y™¼L^¦[¦[¦[¦¦¦¦k¦k¦k¦«¦«¦«¦Ë¦Ë¦Ë&O“§ÉÓtÁtÁtÁtÎtÎtÎtÖtÖtÖänr7¹›N›N›N›NšNšNšŽ›Ž›Ž›ŽšŽšŽšÜLn&7Ó!Ó!Ó!ÓAÓAÓAÓ~Ó~Ó~Ó^Ó^Ó^ÓnÓnÓn“«ÉÕäjÚaÚaÚaÚnÚnÚnÒMºI·nã™d“l’­?‚LV[M[M[M[L[L[L›L›L›LÎ&g“³i½i½i½i­i­i­iµiµiµi•i•i•i…i…i…i™i™i™i‰i‰i‰i‘i‘i‘ÉÉädr2-0-0-0Í3Í3Í3Í1Í1Í1Í2Í2Í2Í0Í0Í0M7M7M7M5M5M5ýmúÛô·i²i²i²i¢i¢i¢i¼i¼i¼iœiœiœiŒiŒiŒéOÓŸ¦?M£L£L£L#L#L#LÃLÃLÃLCLCLCLƒLƒLƒ€?h‡ 5¤…<”R00€ ‚˜@AL ƒ &AÈ € €dÀÀ2``00€ ‚˜@AL ƒ &AÈ € €dÀÀ2``00€ ‚˜@AL ƒ &AÈ € €dÀÀ2``00€ ‚˜@AL ƒ &AÈ € €dÀÀ2``00€ ‚˜@AL ƒ &AÈ € €dÀÀ2``00€ ‚˜@AL ƒ &A@š–ã­¨o"&€46І¼u^IDAT€wGL i0Ò4`¤wMÝßö‡úHYÀÀ¦ƒ9 Ò4Â30‡àÝ@šFxæ0¼;``HÓÏÀ€wGL iá˜Ãðî€ € M#<sÞ00€Ä\Ñ\Ñ\Ñý™û3÷g]ýëê_W›ík¶¯Ù¾Ju*Õ©T'ŸšOͧ­[´nѺU²UÉV%[Ÿš}jö©¹±ÿÆþûGzDzDz|œuK^xvóéͧ7ŸNž5yÖäY Í Í Í?Lþaò“óÌ{0ïÁ’Ÿ”ü¤ä'µ&ÖšXkâ˜,c²ŒÉr*÷©Ü§r˜YÛ¶~Ùúeë—õûºß×ý¾®Ó½N÷:ÝË-?´üЂS N)8åÿÚ^2¼dx£ŠQÅè|ºóéΧ§5›ÖlZ3kk“ê&ÕMªË;ëM± bÄ.ØUzWé]¥ÇŸrüÉ&7šÜhrÃZÛÂ= ÷,Ü3G<¥o•¾UúVõ3ÕÏT?c…•/W¾\ùÒßËßËß+-ÌaH``©Îµšk5×jÖ2G²«T¬R±JÖ¿?ÓžiÏ´äµäì…³Î^ÈùiÎOs~j{–_¥_¥_%KQKQKQÇ{=ó«™_ÍüÊ^67ÞÜxsãw9λ‡g¡ÙC³‡fï>§ûœîs’WçÆ?jü(…c¹lF6#›5’lôºÑëF¯s¤k„iý{ü°øañÃ’×ÀO¦ì£FŒ:8#ÿŒü3ò/V¼XñbŽTÕöÝ‘Rýz_|rH``©",<,<,¼}áö…ÛNÙXÈz£#Ѥ“VLZaïøÖ+Séûõ\×s]Ï•+ W@®ÛãwHêÔ!É‹¾ËÑÞ%$»ÿ÷ý¿ïÿ]±UÅV[9^á7ãvGêîîîïH ýî¬W“'¯Íé7¾y#òF¤õêÞÔ¨j§NœÞ½UÀÒ``),¤rHåÊõ+Ô¯P¿BjÇ~ÎcœÇ8yßƬ‹Y³ÎÞ1­· N^•Ø:±ubëÚCj©=ÄöÈÖ«3­W0§T¨\/¸^p½‹þXôÇ¢)[ÛŸnþt󧛎\“j½ÅtލM‹6-Ú´HÙëVSã=âø­·Ñ~3ªO=ÖÛ³¿KÛ€¤ÀÀRŒõ)¿o^‹iO‡o:|ÓáýýýŸÇ#GÄMŽ›7Ùzã+ ®4¸Ò`Ε9Wæ\±>­öí·«=´éЦC›Þ·µž#=GzŽ´wä¶µÚÖj[ë}ƒ¨Ë,_°ÜÞ1w6ÚÙhg£”'[Ìm1·ÅÜ7ÿ‹µb‹þXôÇ¢?î-¼·ðÞBkàm}¶ë¾{ûîí»g}.컄p’§ä)y¾omÇ$ŒI“ðö#—zRêI©'ÖŠ]X|añ…ÅoÎk°}ûüíó·Ï[ëf½šÜÞí»mëœRNwŠ#gLè™Ð3¡ç»„ëÍ×4_Ó|Íöß·ÿ¾ý÷[wnݹu'ì“°OÂ>‰¸q;âöýŽ~G·Þžý]æC½Úõj׫ýöþ^ðßÿ¼ýÈö¾‹OTÉCL Ŭȼ"óŠÌo¿±ðá%‡—^òîq—5²z÷gÁ¾o›§×˜^cz {GÞ–w[Þmyßå8^‡½{Îã‘Ç#‡íqú}Ýïë~_'¯ªï~ÅdCsCsCós§çNÏÿ_·íÍfd3²­¾´úÒêKo?f·UÝVu[õîµµ·yæ=˜÷ ½cZo » vAì‚ÔxÊlW±«ØUL©k¬Sãâȵ¥ÚRm©Ý_‰ˆÈ‘3Âë¾o/Þ¥¶nnn²¿ð¾€ €¤ëmß¼U¬íM•­7­Mfä“ÍÈfd{{Œ4+hVЬ ÷=¾õzS{Ç,ÒºHë"­ß~̤ºIu“ê6ü¶á· ¿µ=B¹uåÖ•[÷ºØëb¯‹¥Æj­*ô¨Ð£Bkøú¾gé—Ø/±_¢½#ÿ0ù‡É?L~÷£,u²ÔÉRöŽVýLõ3ÕÏDzDzDz8þ­ò^å½ÊÛÞY¬ÏÄM© §ÆûÅ‘3v>ÝùtçÓö¾×i¦ÓL§™ÉlV6#›‘­]ùvåÛ•·wüiͦ5›Ö,íßdÀÇŒ˜@ ˜{|îñ¹Çß~­ãaOü°øañÃìÅú„ÝäåZÉk%¯•´wäŽ~ý:úÙ;ò²²ËÊ.+kï{µ?ÖþX{Gúþ.ðî<»óìΓ¼³8ràÈ#öŽl½¦ùݶ~Ùúeë—Ù;Úò|Ëó-ÏçøLx0âÁˆ#ì%÷íÜ·sßN© §ÆûÅ‘3ZÃ~{ß{×ù®ó]gGZ¾aƆfØ;~¯®½ºöêJ -#&àÄÖ‰­[—=Pö@Ù¶ÿÖ¨Z5´j¨õÙÀ)uÆ=_ìùbÏöÂ$ë³N“wäÙ>³}fûØ;²²CÙ¡ìxóë­1¤½ëž­ÏÁu¼¿oÏ*W¬\±rEëµ›É;¾woïÞÞ½S*¢›°k® »¬ß•ýÿÿÏL72ÝÈ”±ß;\žRNw#g´w›q+ëS´iÛ£r<ú¿£ÍŒÿÿÿÙZfk™­e€¤eÀÀrañ…Å¿ý†´)óX¯.4¼ÐðBÃmÏè<ÆyŒó˜ä1¡gBÏ„žuº×é^§ûÛ¯0¶µµm¶¯Ù¾fûl¿²ŠQŨbD+ÑJ´âxßßžYc9GÎbðÓWD³.f]̺3~sÚ²>ý7­0€‰˜€CVd^‘yEf{ÑÎ¥>—ú\ê“1OË -'´œ`{Æ7Ÿh›¼#¿ù¬b[=Æ÷ßc¼½ÿ›3"gDΈ‹S/N½85¥zýöðìð’ÃK/Ií˜9­Íº7o¬ý±À^7zÝèµ½ï-Z·hÝ¢uÓÚ¨ø€ €8äí¨ã7¤µ§ï}èûƒí­Wå:~ü…cŽ]8öíO™µw=nÊöôíáÙãˆÇ#Rû,ia¦Y¯T¶^áZêI©'¥ž|œð¢?ý±èïìȨ#£ŽŒŠ]» vÁ5vÀ>$``©=¤öÚCr¤Öö8Þ¯¤ºIu“ê6(Ò Hƒ"ïr^룭7‘NÙ ¿ý¼·#nGÜNí³¤ö,²VÛúôÙã 7<Þpcÿý7ö·>Q¸u·ÖÝZw{û­?ž8Ü?Ü?Üÿ}ßÖg0[ÿ¾¤É’&Kšœ½pöÂÙ Ö›i§öøø€ €8¤üÐòCËM;p劕+V®˜R½»ë|×ù®óÛϘ÷`ÞƒyÞÑïèwôÔ´þáY6#›‘-ÕÏâ0sEsEsEëͱç\™seΕΧ;Ÿî|ºjhÕЪ¡©1ÒNßS㌷îܺsëNjÔíþß÷ÿ¾ÿwZë/¼;``)4¼ÐðBÃÓN\2¼dxÉð”í£5°´wÆ]FtÑ%õ*üa³Ô8KÔÁ¨ƒQç¹ÎsçZ"{‰ì%²§Ô(p*àTÀéc€­^Ly1åÅ”ÿ{þô§9?ÍùiJU¸ú™êgªŸ±þÝzÍqÚŸÃ`EL À!Öë_ÓNlmOJõÎzKçº-붬ÛÒÞ N)8¥à”´~ȳœŽ:u:ê;å;å;őѴֶ^ízµëÕlllÚUzWé]¥£•h%Z!~Ó›× ÿtó§›?ÝL±_ªø¤ä'%?q¤mÀ>$``)s¶ÌÙ2gíE;æ £©gVЬ YAï’µÜjp«ÁÿÁ- ÓØY¬7y~÷ë¿_ðý‚ïôý¡ï}Xå½Ê{•÷‰ª'ªž¨êïåïåïõö6¤Ë8›‘ÍÈö!ÇtEÜŠ¸qmkµ­Õ¶Ö›¿¬ðan¯ýTÀG˜€CÞ¼U¬­'Ož¤Ç~]nw¹Ýåv¹rä x÷`lcÿý7öOÙ–¤—Øzµt¹uåÖ•[gï89#rFäŒè÷u¿¯û}íuØë°×á´+~ÈxÒz;åÿ*µ=Wñ=Æ÷ÿîÁð›Wü§Í 00‡´îÖº[ënö¢«U®V¹Z%}õÈzÕrµÇÕW{lÛ£†ß6ü¶á·ön±û敯)ÕžôËGå£òÑ·G¿GFudTJµ<=À~%üJø•Hkhì‚Ø± ¬g¯bT1ªü?j2iŤ“V¼{k €|HÀÀ2½ÆôÓkØ‹vöÄì‰Ù“¾z4þäø“ãOÚö%G<¶×­Ú²Þn7­Åœ©}–Ž~ý:úÙ;Âü­ó·Îßš²#•à=_ìùbÏi9?,~ØÛ[ø³ü³ü³L m"&à}÷öÝÛwÏ^´ÓsPÏA=¥lÌóôÐÓCOÕšøïÜŸ¹?s–¼#ŸÊ}*÷©Ü9?ÍùiÎOmûâ4Ói¦ÓÌ7¿~쫱¯Æ¾²×÷­e¶–ÙZÆñþ¦—ØÞUÑV72ÝÈt#SJµùqÄãˆÇ&Nª›T7©nJÕyÜÃqÇ=L^Ë­¿Na‡¶¬¿šRí´ÞÝ^ ÷,ܳpÏ´6‡ÀŠ˜€CB*‡T©l½:Öößo>C7¥ÎhïšckpkmÏû3,<,<,¼üÐòC˵=rí!µ‡Ô’Ø:±ubë7¿+âvÄíˆÛöb­"­‹´.ÒÚñ¾§—8ÿúüëó¯·w„¨ƒQ£¦Tk]«¹Vs­öaà{ ï-¼·Ðñ6[+P¬R±JÅ*%¯åö®M·š?3~f|JÍŠ·Ïm`i00€ð‡ï¾øÚ x†Î:{èlÇÞ°OÂ> ûÄ^„ÖÔ½©{S÷äy°i°i°É^€}=×õ\×sÙkÿá%‡—^b¯ï’:$uHr¤ïé%.ùIÉOJ~bï·îܺsëŽãí êÔ+¨W…zTè‘R•É};÷íÜvÃNm©¶T[êxµç\™seΕïÀÞVÄ­ˆ[gï»ZÌm1·ÅÜ”šç7žßx~ãÛoÖæ0XH§^œzqêÛcá…ðBx‘¼ã[¯¾}óÙº¶Þ¼*ôÝüö[X[¯ª|—ãôîÜ?85úž^àº-붬ÛÒÞwZÜiq'GÚl½¶Ûó;£Úú~Á÷ ¾_`ï8ÕW{\í±#-·ÞZüÍ«á“×ò+ ®4¸ÒàíßëÈ-Ðßôæ/mØõ˨_Fý’R³ËRÔRÔR”OQ)…˜@Šy{š3"gDÎÿ{n«‘ÍÈfd{—c†fÍš½ß×ý¾î÷µ½#ÿ²ö—µ¿¬}ßgµZ¯%-õ¤Ô“ROlYýLõ3ÕÏÄMŽ›7ù]¿Wm^µyÕÆ^ ‹Ö-Z·hÝä…ˆé%ž‘FþùíÁz“ð³Î^8{á}Ûv´ïѾGûÚ»A·=/¦¼˜òbÊ»¿ûœîsºÏyûÑÞœïÞre‡²CÙ‘OͧæS߬C2«ÍÈfdûaò“˜lï{Ë­+·®ÜºäÍ„ž =zNž5yÖäYooá9—s.ç\Þý,o?šõÈç'€”BL ż.öºØëbïÎYo!ë<ÆyŒó˜»Îwï:GzDzDz× ®\ïÂâ ‹/,^Z}iõ¥Õ‹+^¬¸ÝcZoÞûö[4ÛÓc|ñ=ÆÛ ª=GzŽôù¾Ç|óvÁ¶:Ÿî|ºóé”}BmJãgñîíÝÛ»÷Ûóæ/œþüôç§?ñ8âq„5z´ÎëÍ¢×î\»síÎ†æ†æ†f{G{ûS‡»­ê¶ªÛªw¹ÆtWé]¥w•~—y[æl™³eÎZÿn!Öë’£•h%ZñýÑ÷GßM±¦XS¬½+•å£òQù¨#Õ¶ÿÿQçOs~šóSëßÕÍêfu³O[Ÿ¶>m­ï²øañÃâ‡Y+ïáæáæá6ëü­ó·~§|§|§¼ýÈÖ_òxßÙõöØ{® »&ì²ÞàÝÚ¶gÚ3í™Æ'*€ä!&Ândº‘éF¦©Ì%ºüéò§ËŸï…¾=„›2nʸ)ã©@G¿Ž~ýìßzUè»-½ÀVS;Oí<µsê{¡á…†¾ç‹=_ìùâí·)~¾d3²Ùš¯i¾¦ùšÔk¹õÀŽWÛfwø¦Ã7¾ÉñYoñm½"ÿ}gEí!µ‡Ô’#@ª¸ÿ÷ý¿ïÿAT±JÅ*«´'fOÌž˜÷m•¿—¿—¿×›7d~S•lU²Uɳ.f]Ì:G"(ëYìµÿÍkšßåhé+6W4W4Wü½àï/˜²ãn½jüŽ~G¿£[ÿËŽ;:ìèðîGظ7po ½–¿ý&ÞÉc}î¯ÓL§™N3ß¼í¹ãÕ~s–¦6ë•ëáþáþáþÉ›uÓšMk6­0€ƒ˜@*Š]» võß§œRpJò"(ë­ž\pmÀ5ëíaß;"Êfd3²µ­Õ¶VÛZön™{æî™»gî¦Tø´aƆfØëÑ›Ï}ûqÒWüfµß ì“7î¥o•¾UúÖæÆ›onl}Æóÿ´'›‘ÍÈÖ!©CR‡$Ç`+ëM’ßœuÉky£ŠQŰ>+×ö,…{¾íOòê\±UÅV[¥TèÛ Hƒ" Šì¿¸ÿâþ‹oÎÇ?€¤6``È›ÑÚÀSO p}àzb¡ô(ê`ÔÁ¨ƒo>A¶jhÕЪ¡Ö±¶Ž»uXçÃèr£Ë.wdÔ‘QGFÅMŽ›7ùíãþæ×XcË’Ÿ”ü¤ä'%²—È^"{³}Íö5Û7òב¿ŽüÕzUú»·üÍYg}¢°5dµÆ´yæ=˜÷`…zTèÑøQãGY[n}ªî›Ñì*ôg|óÊ]ëuí%ÃK†— ·V;ŸšOͧZŸgl½®ºß×ý¾î÷õŠÌ+2¯È|oá½…÷¦Fk}Ò³õ˜-涘Ûbnù¡å‡–jmµ¶¿J¿J¿JÖöðÞ<ÀÀþc\ȸ§ìˆ§ö,Js5m¾Ëx¿H ÀÀ2``00€ ‚˜@AL ƒ &AÈ € €dÀÀ2``00€ ‚˜@AL ƒ &AÈ € €dÀÀ2``00€ ‚˜@AL ƒ &AÈ € €dÀÀ2``00€ ‚˜@AL ƒ &AÈ € €ðÿµwßQQœoÿÇÓ¾‰1&¡ƒ`¡(Ò«€T±Ä^°‹{ï¢Ø{ï]ìØ{GTDiv{;Qö÷Çæ9‡üv‡¬Êê0¼_sÎ}rò|y²sϵ÷î5Ÿ@"€ €H00‰ & ÀÀ$‚˜€D``AL @"€ €H00‰ & ÀÀ$‚˜€D``AL @"€ €H0H0H„d`90€’C²ð½ ÷6ÜÛ°éì'nçÔ¼Wóvá«lÕ¼]RóvYÍÛ•¯²¥¨y»ªæ-UÍÛµ¯²]WóvCÍÛM5o·¾Êv[ÍÛ5owÕ¼Ýû*Û}5oÔ¼=Tóöè«lÕ¼¥©y{¢æíéWÙž©y{®æí…š·—_e{¥æ-]ÍÛ믲ý­æ-CÍÛ5o™_e{«æíš·÷jÞ²¾Ê–­æ-GÍÛ5o¿Ê–«æ-OÍ[¾š7Ùר¢¾Sóö½š·Ô¼ýøU¶ŸÔ¼ýOÍÛÏ_eûEÍ[)5o¿ªy+ýU¶ßÔ¼•Qóö»š·?¾Êö§š7 5oš_eÓRó¦­æMGÍ›îWÙôÔ¼é«y3PóVV½Û½Ø{±÷b%{0@€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€¢“ššzDçˆÎᇇ~ØÁÖÁÖÁVã Tþ¾ò÷•¿ïmÒÛ¤·Éα;Çîû¼ôóÒÏK3Û(î’~Nú9é癃fš9¨¦gMÏšž_¬ùæwšßYá²Âe…ËÕÀ«W™gw×>^ûxíc¤W¤W¤Wëþ­û·î¯uVë¬ÖÙ/y§ø—ó/ç_nêÚ©k§®ÿ.þ»øïd9²Y³ Bξ?ûþìû¹.s]æºÔ©W§^z_þ½¥qÃÆ 7\2eÉ”%S./¸¼àòæ¹d’÷wò^OÞ÷É{À/©.y*ïIåý©¼We¶Q|å É’7äľûNì{~ìù±ç=¢=¢=¢¿äb$3’É:wïܽs÷¨ÒQ¥£Jß[~où½åÌ6|[À€oìîö»ÛïnŸ¾|úòé˵ݵݵÝ5¾ºas†Í6çŠçÏ+ž2w™»Ìã±Išþ4ýiT…¨ QÜ}Ü}Ü}¾þ;¥Ù’fKš-‰®]/º^Öê¬ÕY«9.›œf9Írš :t2¨Í‹6/Ú¼øúïû§öOퟮ^½6ú¥ÏKŸ—>%MFûŒöí·7ÛÞl{³j ¨1àë¯Æõ+Ö¯X¿âÁZk¬õî軣ïŽr\$Â]æ.s—÷nò>îëW—¼o•÷°ò~–ÃqJk‘Ö"­ÅâÑ‹G/mšbšbšòõß/=5{jöÔLZ›´6imî–Ü-¹[8.ïÞÞ½½{—ý¹ìÏe–ÿóé§œÀÌàÛ"|ûÎï;¿ï¼e®e®e®†(E¾‹|ùîãØc?Žåxá[¹¸åâ–‹[B„4i Îwʈ #6ŒØðø§Ç?=þ‰ã…oå¹ÿsÿçþãRÆ¥ŒKç;¥þèú£ëN^™¼2y%Ç €T]tuÐÕA¡“C'‡Nçj<Ài€Ó§»×î^»{ãU¼Èû2y&Îê’÷¶ò>—ã…oëÄÑGOõ²÷²÷²çûe^y=æõxû¿·ÿ{û?ޤA±ÎOýxêÇS?23ø¶€j—k’k’ku.ê\Ô¹/iªÌ1¸¨Û¾½›ÍsSë ­=YÍYv @³ÚÊ ƒ5~ÛèÜÊÁm¥M@®õ”^½ª.ìÚÛn‰ÙY‡žånê_þ’ÿîœösÚÏiÿ.ø]ð»`Ž&Ô-Ù7Ù7Ù×9Å9Åùs£¬Í^ ÿð{^!fäŸf[ Y˜9l©íÔõ•Çï³Ù4qRK‡±kÜÆö°×›ã5ÈÔ¦Æí6“Íûøs‹0ú¢…¦…¦…¦=~ü€w Ô.-5-5-µ§VO­žZ_R·e[Ù´t¾jº½ö±VÑëÛÌ ³.æ3&ѦUÏ®“Ì­Ïuß2þ¹ULJï©ÔèE—àòîCij‡èÔùÌÄٖٖÙqÉqÉqɲ7²7²7MÅ×¥&—š\jâÛÊ·•o«/º}h†sDJ=xu¸by<´ôÐÑÖ»ÛŽ¶ÔóÀ¤™Ö-º¹ûÍÒ©]ýÁþf³þ×®a”ýO³/zàE§æšwºr;ävÇQœäý—¼û’cm<Àz«îD÷£!çË¿­]uÐh³Þ¯Oìd¾)¤êŒt‹²Í“gWÉi´m|só€àû6ÝïR·Ñ¹rç‚ÌÖhÑ£"äý¯¼æhB}ò“ó“ó“v9Øå`MOMOÍÏ|$P…åº#´[´ùIð›TìzÕñnDFäZoïÈȤ¤¢=ÊÌ;]µO—棛èÇZ4­ÖZõWØ<°y`ó;×ï\¿sã  ¸xVúYég¥Û,o³¼ÍrÕW<'™E[F¶ß4ô{×#3 w5*ÚÕØyÂD“MMªÄ´<з¹f†n®þ^Õ_Û@»ví2Úf´ÍhËñýÆÌdf23yÏõ©Ÿõî-¬*üúbefÕcǦ¦º¸Õs%Öyuk×ùù–ýífŸ6|ô©¯MÞsxQ´.%^J¼”XµCÕU;¨^A+Õ)×l£SpˆƒËÛcÝüíù–X£FGÝÆlèÜÙüÀ§¾S–/^œÛ=·{nwŽ/Š`ˆ0 ˆevÌì˜Ù±sÙÎe;—Uå+¾w“ƆSŽº5°vyŸµ§K£€.EÛ~>æ= [˜œ¸­éLªv2^¯Êk®ž_=¿zþÃæ›?lÎÇ—X±{Åî»Uo‰W†Œîhçòbã‘{¾ÛŠ6îUe¼ór×sï³c>vs°ü„ë!NÄœˆ9ñƗHž0ª¼fy,ï—9âø<k~¬ù±fxPxPxJëp¿²õ~ÞåSWÏiDfµNkýC¿æùÙÓníƒ|/· I¨n×½™ýöJƒUyÍwUÜUqWj×Ô®©]9â(.€!NÀ€"“ü:ùuòkU¾Ð·ýËÆÑ$ú–{k}oû¯Ú~¨0>iÂ÷#«¸5°©Ê¾ìž·{Þîy}¨îåÁ—_ôoìߨ¿ñ\³˜`ò§NΉöK“ÝŒeÓ:Y|ýÐWh̺×# Ï† þTå2zláûe6Úl´Ùè´÷iïÓÞSEKÞ7É{¨Â‚K×Fùå® ¾;Ü¡±ØB_¡±ÏíuªÉ*=pê¦ÿ=²¼¦P¸ýOö?Ùÿ¤ðZ2© ×]ûùY¿fã=Ηó-¯»tôô›8ø’K“*Á…ï]‡àÁ‚sôsôsô©ˆ0ĉð¹êÈêÈêDDEDEDþe}«cmgÇæÅ¥ ãö4ÞãnXøž6ŽjÕ8*ûlöÙì³ ::ë謣³ ¯Ÿ!ƒÚ¿¯Òóè3á¥Äú i±¯17àW·ÃFç ßß;î<¸ó€Ú@Aç?žÿø?®0Ó©ò“Íf7×™köÔ)¡¯Pü³Z#!Îܾé…î?ýÇ}&ôvëíÖ£6|M§Ožü°amÍAÍÇTï»,ãÔàâ»{Œ]pãè²r;]oùÿÇ•Á©}Rû¤ö¡6¾œ¼W’÷M…Ïy—=ëZg—ÐWhl9u®–ÅÃÂ÷TÞSËûk*-}°ôÁÒ…×Ïâu~/m_Êò»…çó-WL[èToc §ý»æ=¡=µ`ÿÀþÁß{þÞó÷jbC q"|²üÌüÌü̾ûì{P諹õÿ ‡é…>ÒβÆÅ=ú-8¾YÒ©§¿O‹žU;¯ÚwŸI>“|&eégégñëTÈv/ݽt÷Ò›öã©KCݾ/¾¡¯â˜Ÿ•˜Tzq截¶ÿñ·k÷¯Ý¿vŸ:Á½5÷ÖÜ[SxµX8¶®Ô߯+~µm«â6(ŽŽ"ú­þwÊÆ_7þºñWꀺE·‰nݦðÉ.dÐÅyµ¥´{;DŽLZf=¦Ûq; ß÷ C/ ½0”:ù<òþHÞ+ >Ù÷¿*Y!y‡“nq~ ŽƒÚaŸR¾K•æ:‚×Ëûky¯Mµ`ÆÈ#güÇC©®ù´\îUGJç[rÜ»< 86p“óDóD¡½6Üg¸Ïpß«¹¯æ¾šK@<€!NÀ€OqWvWvw`ÚÀ´iB_Ç»í¶ïW©Á·®~ÙRjEþ5NêV=¨ê\§m†̓_k¿Ö~­?´þÐúCk §d:øúà냂OÅ6ÐÖkªy÷‘ß~ý’Š~ÇÓ÷Wº·-üäÅ]»w5¨™’)­iZÓ´¦…Wˆý„akI*lP¼ í»ùþ‡gèþ¯âŽJÎBó°Íl›Ù63j€:Ä^޽{¹ðÕØuûôŒ]好;ÝÿËú•…ÏÃÕGW]}DͨNÞÉû#¡Y­g6²g¥ck¥p1“Rô[p}âr)ç:[îªÐ@hä½¶¼ï¦rJ¦¹Wæ^™{E¨BêXšk•ïžÙµÓAÿÞ’=ß"ëÖ-((j{­@‡8¡y(Y.²\ä‹7o,¨ˆ0ĉð fÍ›5oÖ<¡¯à“îUß^ÕTv¤[ƒ Wi·"Ç­jv-4'íê·«ß®¾ÌTf*3¥~JŽä§ÉO“Ÿ U…G+û*eWfšž8ìßVÚÑoÁñæàÎÞÿ+ütêËø—ñ/㩟’ãM›7mÞ´Ñ\¤¹Hs‘PU8ï›x8ÊPÚaCÁ±ú´å§ÍrúË;YhNNÎ89ã$ÏPd®Ö¿Zÿj}¡5GgW…¦÷=®-|[rVc·9³Ží=Tø÷–4Ÿ4Ÿ4êç?˜ÊLe¦òžHh&[Þž»ÖB&ÕÐWÉØ!u•KÕZ..›•šyßMù”4›s6çlÎªŠ½ô*íË}V3paÉ9ßrâL#o7WÁκµGkÖ¢>D}ˆ¢~ðmCœ€*Ù?mÿ´ýÓ„¾vϰôÞ`ݤä4!ŠãžÖuï:½œŸ3ÌX@•i‡Ó§ª„êb u²Bâ~hTr¢ß‚ãýç{ý|† F}îÎîÎî{|ìñ±µ$my²Ù˜Š’ªÜF¹rÙµ¶km§äÖv¦yîê4»áäsÿý%3úý×ÕÀ;þôú ôN±pÄ ©(i›vrÚÉi' 0~¢ñ¦Æ%3lø×ÕÀ×V¸6ÒŸSå­’{o¾0|aø"ûUö«ìWT€O•¿"EþŠ€˜€˜ÁSêžeŒù‘ÕØmÓìÿíÓš¥î­»·îÎ_”÷>BóRyÆC ý’ýþè~ɤ³Ð\Éûq*JªÒSÒSÒS„Ž~ë¦ÖCLêæ[‡ ¼Íù–cG¹ >A|Ó›Mo6½¡¢ð­Cœ€‚rç>Î}lÕÀª•’g5Ь’Vab~@Ø©À´"Çqo<]­|„ڒׇ^z}ˆê’ž©nSݦº ÷gÕåúšýþëÙÀWnq÷üÁÄù“çOž§®¤çœþ9ýsúBÇÝ.gȹ7 Žž¥M>&øü³aŽÃ‡9RW>ÕRý¥úKWc·ðYá{»°+Œ¿½a·à•šöwØßº’“÷;BsU³yߦᄾÇ1;®vqþÛvq`+C/Å“÷ãòÞœê’Ö[EöZöºñÁÆT<îƒËšëÎË>ØeO@$çX Ž‘ã‚<ì^ ­0÷ï;Þç»1¾à¢rÒï¤ßI?ù®^½6:ûröåìËÌÌç!Z´|ÑòEË…¾X¿™Þ©«uÚÅ1ïtØ‚ÀÓ5.›ºé(Î[‡ûîw¸OuIIêªÔU©«„Þ)‰qkÌ=|ˆ{…ÆEùÃ{Øžš½w!ïBÞ…PcÒ“˜“˜“(t¬«µðìÝ‹€A0xx=©ßfÁ§hŸu>ë|Ö™ Š{©÷Rï¥ ­'ö·†/^2UWh´Îéa?a¡à=÷¾Þûz/5&ïw”|Ö7rÛ¬qÌ€”|ç[„¾ŠãHƒäuNÚBÕ%ïÍ©.)Ù›¼7yo²ÐœÜncVœ]»Ü°ë`¶UqÞÜOºŸt?)3”Ê ©1|MÀEÀTf*3Õ±Ó±Ó±SœOÂàÏC Pâ‰Í›'6B­È¹;Í+xZÓr>>«Ðþ‘¯‘`(¨—¨—¨G¥wùiùiùiÕÞU{WMÉ §ê×ÓÚ†ˆ·ð1ÿZ⣠ý¬]:(ÎaDjDjD*•& s²ædÍÉR<ʺóM˜‡{-_™àJ´PøXõ×ÎzáçÐ`½Ázƒõ¹‘¹‘¹‘TAé²tYzЯA¿ýª¸’T:Õ°I'OVÚÿÝ#g'í+¿Â#¾¦…âöÞ{xïá%¹Ää=ŽP4dñ©D‡y½…=´·¿¶í"4‡ò>Ŭ¸{ú6ôm¨ÐQ>p»Þ çœQ)||W®s+ÿ Bs¸3bgÄÎ* _ð—+xíoáƒUG P¢C«­:´RòÄ߇nï-îÑl¨>nëX{ƒ£’«¨ÿ2þËø¯|ë|ë|kê­øÚyÿåý—¯Þ5Ývš‹?v‹w ô"âUe|´cφB_î†< yÈuÀÅØ‹À/…ޝkÃiÉ;Ö*¨2zÝ[=4±Žn’©I•6Jž|6jÓ¨M£¨7BbïÅÞ‹½'´W_±|tœ +­*£G¯‹ Íä ³f7ÌJZuÉûy£8'­Œæýi©C¸û OÐc¬ÉD%w“jÕ¡U‡V¬fÅݤÜI¹“r•<»†ÕãvœEQ}<£×Äͽ»ÐjœœœL½áë þrJ=(õ TçEu^¤¡2ÂàÂþåÖÐ[Co úX}{µ³¯ÿqÚŒOíö{ÐöÏÊmÑ߯8Ÿ‡úê{¨/UWå†å†å† ½S’´×tôhH¬û©ã¼ƒ/ØUœÏNË;-ïÄ-¡nC݆*yB¶¹FÓnÝF$|êèRi²Áæ[BëOvTvTvU  üËù—ó/›\3¹frMÉmŸwZü†Õõ“oݾ[ýqJ®®¿­þ¶úÛJZÉû%?{u¶öÑí?ö÷ÔÒ.ëª>†W;7Ý©¯Ðg½¼gge+Ž^9¿r~å,x…÷õö=j\ä,Ê§Ž­WXÏ5i­8ŸË†-¶lU‡¯ƒ¸hݽ{?–0øËþ¥}|ûøöñŠ¢›ËÖêép‡ÖâóÆ ©Í¯{®TœÕr¶ålËÙæ?Ê”ÿˆÚ+^Ü;pkhê_õ}_aQîçY qmz>ë·Ç¿=þÚ+^^¦¿L™.tL=7-~¢&ÂçÆ ýë62SœÕ(Û(Û([j@Aq.q.q.Jn ÿ‡¥ŸÝLoÇÈÑI«YW?ù® =Wý?Hè3îfÒͤ›I%¡ºä½Œ¼¯Qœ‡ž?íœg{€@÷óÆSf7²˜©8«òž•­8š´wÒÞI{é”;^=«.àÌÉçüÚéÖøAðÇ‘+³Wf¯¤ö nÀêCü%€ÿxþûóߟÿ.ôÁùQ·ë‚@+Z‹/ÜÍF]WœÛdïdïdo*°ØH%ȪøUñ«¢äÙ$×&o}îÕŠ(÷KÆuã¶Ÿ¡8·£æš?j>X¼Ì~6ûÙìgŠGÓ²{»CŒ ¾dt9käÞNBŸÚùuòëäסÈùØùØùØ)®NSÆý²® +ê—ŒÕ"XÌRrW†î×»_ï~½$T—¼—Qœ‹ ÏQ­q¿dŒ°º|ܹ·Ðg½¼g}+.²~Èú!K0¤ÌðìøÌïoΙ|ÉØû°cƒÊçvWû]íwµ§¡nÀ_að§"üc^ܼ¸yqŠ“‘ZAv—i'¾|LÚÚô•‡’†$¤HÿþT`qq=ózæõLÅãè­ç¤m8˜øöËÇ÷;N ¨*ø îAÙƒ²Q‡â—Û+·Wn/Ák›.“Elðåcù@÷Ý'gø\ü¹øs\@öðèã•<^Aç¯ò½LêzÛEHšÍZúE××]¹ñÌ[¡Ï»ÌŸ2ÊüIÚ5&ïe÷½ÛŒ­A6q¿|lê9ùl• Š3,ïßY劋½•÷VÞ[Yñ8†os»oq…³%_>Þ×n󨧖’ž²ùV¡éÍ¿vèzýëU÷xÔÝ.±–eç9fgÌΘԡø%H>|@ñšL¯iÓ¼AQNƒÇž]÷«â<‡­ [¶†:0ëÖ¬[Ê®O­æß?læcVÑ¢-Þµ<È_É•g.»\v¹Hµºäý‹Pw3æÒÕuοUhZð•ôûþP-»öÅ7‘’lï˜+xÏøüø|~òU xNñœâ9Eñ>ܶ»ÏRqžÁ¸ùW«˜ÿ¿ÇûYï-&= +™ç±Æ>KB}€¿-Â`!ÀÙmÛ:·u?Û„Zß4™Lp[´ãâÆ~çlo(ÎöïÞ¸´¨å­Î[·Zè‹cΣ3?<O\ÜcàÛÎ;çywWÜ£–l¹‘j¿¾UûVí«äJnçÁÞlÒ'*(²+ÏŽ­.“pBh]ú`ýÁúƒ5Õ”P3e3e35+hVÐTrí`õrKŸÅr+þ"Ý[Îu>ðTqžý×ú¯õ_+Õ“÷/Š{ÝðÏ1*þ¶¡©â«*î×;e4è[®•â~É{y<1Kßž¾=}»â±³=f®'ó¹‹â ®·×EKq¶îY¸gáªêC,„Ád K/,½°´â‡ßÉ´FQnC‰l‹v|t¢]@ %§áZØ·°oaO5ŠÙmŸÛ>·}]ÏÑ!+½ù¶q©ô`™S’u`¬ú!ôC(5)Nyñyñy‚w•ðÚ°êdB(QAÑŽ•O6éVCq¶/é\Ò¹ÄIa „J»•v+Mɵ¿å£<Òk†°rªcÔé^þŒÉqÅ9×ë]¯w½¤WcòþEq?aiŸ¸hÇÎm×e[Vk•^XzaiV<1; w@â±[wµæûmb>wñ¢nè^ß%òW;¬¿k½*wž%3¥Ó}ÿ‰JžJžg‘g‘G5B}€Å‰0˜ snãÜÆ¹âÞÛs½ýcˆl‹xÖÍ5ÈBèKFîêÜÕ¹«©IqZÕkU¯UJžizjØ 7·ËÀêÇZvkfyMq¿®­¸¶âÚ jRœd?È~­xÔL5ƒ/¶ð#PÇè\}BõÖŠs>£îŒº3êR“@É´So§ÞN%‘ƒÝoïÎÕbåTÇh¹­ý¹¡JÑäíÉÛ“·K©ºä=‹PG3Ö/µ«‹ pÑŽáUÏMpê­äÞ*mœÛ8·aųN}:õéÔGñØ¥ýÑîxnâ?ƒQ\®ý-8úÜ0¹e¨ä'Po2ßd¾É¤&¡ÀâW2Ã``(ÑrÜsÜsÜ•œúÅ(K¿a­úÆA'_WQrÕõ#ÝGºt©Lqª÷ºÞëz¯ZÆùã»ü5 €Õ1&ö‹|ä¡$ÖZýdõ“ÕO¨IqÚ5y×ä]“š}ðÐÓ‹ŒˆÔ1Vß°|i\}Å9wï2Þe<5 ”LOw>Ýù´âÊà¡=äák¬œê]jMž¶¥ŸâœÏ<4óÐÌCRª.yÏ¢¸§5ævŠ6öC\*½X>V¬oµM·²’‡Ñ¸ç¸ç¸³î‰NSYSYSÁç7Ÿ{˜Ï¹uŒË[Ô¯«8çç¾;÷Ý9Ò¨pñRrÂ`–<(Ñî­»·îÞ:Å´ ±ž¬6‰íKüÓaí7Öx7iVõÙU5šÏµÚeìæp¯ü/úéú‹´îhÆZ…•½§÷SÀ ³FÙ³ô|ÚXǦWèp¯º8’C7ë×vQr-éÛ#¶Gl©L±ÉËËú ({˜´/¨†8à ?lðñìݺfÝ&Á•být¢õé¾ÕŒu¼h]Ú R¸sçÁ‡Ò+DŸó«.Îøï£17ü.+îWë”Ö)­S¨Lqê»ÿíþ·šûùyÅŠîº÷W‡'6²ÞÖÝo|£NK|lµÇ>«ð»æ8HÝ·z *­°šc¦S÷»6m\§M»s¦˜ƒÝß*ÆVj 8ó?|üðñ• ” oeoeo5«hVѬ¢äVüoWL\)¶Ì6¼OÖ´cåf¹𻥽ÃhD…Í]ºŽz;õë µõ©¢2«×¬ê½—½<ÕÛÕvZÛÿŠEôsœÑË+žÚ¥8çNNNR*1yÏ¢¸§¡¿¯è[õOqÀÃ>Æ¿ulë{¿ëÏÆ[*ܳ|¡ûöF½&š~å?X´ÐÙã˜]/º\©žãw ´½/æ8Ø©¿†éŽ“÷õ,~b“1%cJÆÅãÕªLÕ\“ïÅ£ÇgËÇ+KZÔ¨>Tqæ—V^Zyie*ê@\|I; &€-zHôè!ŠcÑ6éj.ž¯ï'7ªåæ]ÁF·¡v Oô0®mšÏc±5$÷Ÿ´uò¦øj§V˜Zaj*SlÞ~søÍaÅãÕ®e½²&Ä” ÀºûtFh6/ü=Ry¯±Lçmʦ͛«ï] ücÒÏA¿+¾f6:mt¸ÙHU«\­r5%צxÍ\5(^&žÓôžû–¬=1Òh˜Ó/ÞýTÿL±‰íµcòYqÀf3þÝ®¶âk~ÑôEÓM©L äÈÏÏW\ ãíoz®Q\š´B#îIùËžýƒT}vH ß¼¢»â¿É~­NJЈӪ«•¡ì¾,Ò!ïY÷q`•c ö½Ä—‹4ÿNG¥^²Sßµ-¬íÄw˜¿Ú¨ê%ýûè!ÑCXýÄ&5*5*5Jñx-ïФÚi`õo:u ñwTÒ¿ßjw«Ý-*ê@, Ò ƒ € D[xqáÅ…?ºîÔi}Ë;J _Üß­ï<ÓÿµåвuÏÊ_›ùzƒaºVsžÕènÓ%.ªñNwƒ+ZÔ©>úøÛ†¯ÝJEäx”³œ'¿&XÌÊû®¯)Î|óôæéÍÓ©L±¹«Wÿ®¾âñZ0vè0[W1Àr#;¶w¤þÂß]NìJ›¹Ó)²AË•§h~¯‘¬ô¯‘•Olx]l1°W†ã;ÃÞÒ>‘*íÖWûq¹Ê׉-.ýWä ÕBû‡Ê}÷ìòھð²‹&:¾£yŲz»nƒ;˯E+¸G®­§ý½ã¢ØöÈÆ¦GÊD%¡Èåû—ï_¾Oe%ÇÓÍO7?ݬ¸˜ßÔ½›ˆžÅnlëw§á‚¯Ðø;¿º ®Û÷¾<5Ðiý¸öëNÛté9uRUBb}¾Ì÷ˆªù´¿·È{Å} }þ†ÓNqÀr^O6oÙÿìÑv†V‹»ä×Ôvòþ*†zIF´ê‰ÿ–Ñý{9cwCq¿ä}=«ŸØ\tpÑA%ÂiÍÆ©îÕ€Õ7æ7 K |¬ä§Ï7+߬|“ÊÄ×é‚ €‹;i„ÁÀP¢õoÕ¿UÿVŠWï¸Þ¸Ëc]ù«Ò|£«~mxËÝ^!BMˆâ¾˜]Òï©3It Éø°[+¾Z«««*Sl6'lNPr"õ`ȼ#.zâ €µjj쉶_4ÑÕVþ¿)øT`ù?oõèØRüOîu½EÿʾÀÅ·õ-íi]3J<§æíR‡t\ð·J^¦yZ+Ð>f¸÷â®NV þù §©ûVœaƒ|tô•µJÉOUŽ„ ?Ne%ÇU§«NW”ÜàyÏ–“ôİ^9l 7X¾­àk³nЭüØgW]EU–µ ê'þØÜºé‰n¿XÞ³(î㘳W—;]ü^3R£M÷CÛÚ …»Bu%¶x„qb¦ãqÅ×)ïëYýÄf©ÓR§¥JVã;9mÊ{_ V÷X)Z?Vç(]$¾UL,%Å7 &€­Éœ&sš(¹…TNû.oDÇhí~¤ß §1æÖ“#ª?«¤Jã¡‹³]Ñ+¯ÕP“ë‹ýö?ÚÿHñHmµÎÚ#Eœp‡Û ®›Æ©èü«Ú]¼ö•÷[<½W¿¶Ö–¼SŠoë[I§¾eh_ñœš¯ðÜûnÝÖÞŠ}7(¯Jxð¯Û¨Î±·öÝóŒ].O­±m½âüo˜´aÒ†IT&PrÄ-[·Tq5°¿>|Ö’0Q\ûû_Ý×ÿù‘¡»U –*ë°ü©íúõÌÛŒs\uI—Û?Hû{‹âÞieêjþ,ž ´àks{Ò¼Uùm…ºÃï'NpÜ"þxt‹KMœ-_§¼¯gõ›ˆë×#®+¯—;xú¾ V÷X»SåøòÞt‘øVŸŒÀRU¼ÂàïÄó–ˆGÞOa.ç—øÂ<ë°ÖkçÞ¨qÊf…ø`ÛuFôr¨·âëÚâ­Y^íÄ»t¨[)Uþö`ø¼k.þïë&Gt­ÄvðŠÈQWìÊPoÅW•m-GõýC<§æõb+W«ú×?qHkÿã™ÁV‹^ÅÔt}2cÃî_Ü"g½Þ›#¶ØmÏì*ûü¨7Bœþ[{m{1¬WúáU†ÚúÈ_UÁ»2¨ò·â¿Øvuß®Ó뗴ꪰÁr¢Î+qÀ-gÏ-oñøón-¶xŒ^JkçhV³â.³G§Ãþ}€Õ=¶ÿÁ&ÅÔ˜z ›6m6"|cù¿‡í Lç—ø¿¿ë8Ð/*F»au×e«Üj·h´¾{˜¥yȸª¿÷©XAw‹ö¡ýÛ¾¸ÆW¸YöWê­øºµx§w8à‡qûöùñ|q?gÒ,Õó‡¿UyXa‚ÖCÍò{„^¹ãÅò¡•B_ÚN7¥ø[Câ0¼Ü}ýTê­øºÑ|{¯Sâ €sº^ ÊßfMŠ«ÐZÙûE,ðêfo좨·âË»uÍþ-EqìùÙcöí+øÚª'­Ðˆ{"Ø-oŽÆþÞÔ!N;Æ^÷ú¯T‘³^ïÍù’uØyÆDMƒ÷ND°a¿´™^%­ºŒ‡[Ð"θß÷‡jÙµ—HÜ å„óV³âîm·Îeý7«{ìØ¥ZYÓGÔñ8éwÒï¤_‰€£Ê²±±±±}ûÍíœÛ9·sŠH¦u üM<ÏÖ_¤uG3VþÚìþ0ú _{\²§¥•˾Íqq»ZëþÞaët tjTÄÙ®”o¦û½¶’/T¦Ø¶¡«‡®ºZñH]عáŒçÂâ~ð½7{"|þ¹m¬öeí4ž‹-ž3rPc›z¼SŠË¦x¤*›5Õù¨NÊW_±|T\Õ‚¯Í½å\×Ï¥»v˜þÃŽgŠóßëC¯½>P™ll%gë6Öm¬›âjà0wäµåßøç8îç¥6.øª>õ `{§¡“&ˆ9¶ï¶uÜjioQÜ;½ÎF嵬 €Õþ à§—ë:‡(¾Ny_Ïê'¶­é˜¦cšŽQ<^é':äù…«{lca^a]$Û·úd›:6ul*3#½mÝÄu×MìíÛÛ··¯êÑoЊ A+”zPêA©Ä §vOížJÈÌŸ;Í÷ÃWöºÁæáå·È_U‡Û¶Mãòˇí¼^xr£u«Î^q¢€]»U RòÑ´¹isÓæT¦ØÄý÷wÜߊÇ+úÎâß]›÷g©¿ðw—ÿ÷ KýÚb €%´ÛX¥Œ²w4ÄHñHUìP£U½ñœš/øÚU}¥¹*å²vÊÆ­w-{´û8ÄÄòLhÅ¡K½5"ÿLúS<ûåd?&sM†âü8p €ÊJŽKï.½»ôNq5°ÐWkÚ}±ÝZèªþÿÁªQ‡«Ã/ˆ9®² ¥SŸíÒþÞ"ïY”œì6KµwÑ#Vß8²ÑÙÒN抯SÞ׳ú‰Íüœù9ós׃mGûl$V÷h;Ò¨“Þßt‘øV]ð©OýxêGfF²/g_ξ¼6zmôÚhÕCß΋:/ê¼è~ìýØû±ßê•@‰6ký¬õ³Ö+~D=Ôj»Î'Z _ÙËÕÑY©uEþªÛ4íëa¡Ê_©_?åÿ-q¶+Ùwºœجø ë­©·¦Þ*SlnZÞ´¼i©x¼VVíig%θÃí×MãTùÛæsƒ4þç:¡k4^/¶¸Öf/Óò:´îÅ·õÕûËìeqÀ&烿qQå¯LÓêôn)ÿ+ƒyV6‹í `Û]}—MŸ«8ÿçC·œ¡2’ãqóÇÍ+ çª\lùºï*±­Ãå/{öþQ¥ðøþêðÄF¥,míD} èŠ;|ëן+íï-òžEqG—»øÔY‡X}ãÀý1'íW(¾Ny_Ïê'6»Ïì>³ûŒâñJîÔÌÞc°ÇÝLƒŒgÞH×H×H—ÊÄ×é‚ €‹»âúD %Úþúûëﯯøqרñ,÷ŸÄðÅݺ¶á<½~òWµÕ·¶‡cËÂÿ÷ö·«Q£œüIÀb€Ÿ´j_½Æ>ÅW1"bDÄ*Sl^÷~Ýûµ’'köü+ijÒqÀZµ5öDÛ/šèj+ôW[}§:¶ü×{?j¥¹»x¢_Ùé¤UAîB_¬©Lq2yhòÐä¡âñòz°zTbc1œš·që‘=qÑ?/+A«…ö)á›Wt¼µ²í´¶;tµþÐ 1øç‡ fgëÕj__l‘CåÛMÂv*Îü“€'O¸(AÞ½÷þÝ{ÅÕ ü à q¢xJîë“çü+>”¯Ì…ÿ•…y«Ü~„¾ˆg5Ö>gt«bMio‘÷,Šû8øDl#‡:Àê»LØký@ñuÊûzV?±¹TæR™KJîc´aV°‘ƒ&°úÆwÙ·ü 8óMú5éפ• u –i„¾@‰vcÒI7&)~tÍÍ«qÑf½¾¸wc·Á,åŸë´2ôê®;\³§ýÆWÚN÷Ùñ¬{èw¾ÖqQwºDäx”³œg0YÛUóƒp\$–†$6¾QžÛÅW¸Ûw·ïn_*SlòBòBò”ó®‰íj3¯f+ãâË)¾f³gfÏÌžQ“@ÉÔ4¦iLÓÅ•ÁÓgqµ˜åâY‡M"köi>L•uØp޽µG¬£Ã¨ó+ÿ¹ÏDÁèˆa\3fœÚm£øÊÇ8Œqã ¥ê’÷,Š{\³¿½éY`õ=ƒ (¾Ny_Ϻ'6y™y™y™J–3#  -Yj·–A^Àê7_«£Ã5%ÜËS/O½¤2¡ÀÅ‹´Cß‚€²Š1c**9=”s©k¹€ûbøúþÏ©“çƒ,¼«šxŽ?X>úÝ5Í5š¶h¦ßÛmyÖa­×Ü yxlÔR'@kE÷Nö{* ÃU Ô_¨£$JÌ™3!g5)N³e³e³•|­¿0fÃÏib €åÿ^þÏí?ÖooR)ÖØO'Zoƒ®«æ §“Ö§ ZKî¾ÂÊ%óÔIwÿ±b‹~åã¼ðÁmN*y¦©Ûy·ónÔ¤8ÝH¹‘r#EÉõµÛšØu}!¶«fÿù¤Ó1lÄtÃŽvK=~Ñz_ÖÁ(U«‡þȲkÊŽ°‰q 1ë÷Wå¶WÝÏK?l,¶×ÿOäP{ÚJîçAM%Óšk^¬y¡¸28¬™³|‚ØÖa»¨ÁçÏ7þίnƒëz]+ýfyEs—®£ÞNù-«·ë6¸³W³•§ãËÜËãööâ €­u2~£âœŸüåä/'‘RuÉ{Å=-»Çø¡v°:ÆÑ³/íqöT|…ò^žOÌžix¦¡’'¿zÛa—Ÿ°:Ʀ=,U<¢dΛ¼jòª 5 u ¿’úD ?:þèø£Šr}B¾óÜ/ž/ñ…·BÿW±5*ét8âç¦äªëÒþ¥ýKSbvÙê²Õe+%'†ºv›d™&†¸T(ÄýÔ/ž±ÊUÓͺ}”\åñ.ã]5)NN|8ñá„à­GM"’‹3F-·U"Ê{yV<1ÛtjÓ©M§”<¹¹Î_YΫŠK¤Z\ÆœÃ]µn >ì ì ì 5 u §’úD ]è|Ðù #ô1ÿ·Ä€À1‡©Åk|zðÐ_%7~÷ññ¡ů…~ ýúŠGЭÔÌ2»§Š3x(–£]äÀ¤ÙZNzç b•üTBóæ;Mª(™òæäÍÉ›#ô½Å+`åô3¿ÕÚe¾§yžz'ªqìbq·màÀ—ªÿmÅ‹¾‡üs°ñÓÀ*M&‰!ötY¬3\qž-îYܳ¸'Õ“÷/Š{Ýòï¹§,ÿW`1¾»+¹Û‡¼—gų´iÓ*»º³Í—?Â’¢4-ã®äîãÆ9Œs ¡>ÀâAè[0@öqÃÇ 7}æ´ìòwÀi‰¢«­0º ¯äDÉs­çZϵ¨FñëÔ¹SçN•œ|Y¸q„gÁmQ‹Þ µUòKùíIÛ“¶'Q‡â½!zC´’OóãÍôü‹à¶ÈnþÜizéoç¹^™zeê•¡ óæ=Ì[É 3Gýºâá7»UrƒnåÇ>“¿ÝÆ++w÷´Zô*¦fáårqªû¶åÙZ/´ÉÿÖÖ¸÷å©bXmºöœ1©¹â<¯ì·²ßÊ~R­.yÿ¢ä¦Äå­šéêÙÙÍŸ›_ªïl!Ô­Ë{yÖ:Q»+»+»[îf¹›å”\™úêx‡~U8ORTc›ÖïL+ÎóÕ›Wo^½I1B}€¿-B_!À€Œø}Äï#~Wü8Þrj­ë­äF|îÖîÖîÖT`q‘42idÒHÅãØ®U=#“·_>æžHð œ*ô=#,#,#Œ:¿,·,·,7¡ãXýÉŠn§[ß~ùhXwy[sÅ>ÖôXÓcM©C©US«¦VU\%ŒÊ9<¨žý­Ö.¾ ÖmªãQÞÞø_'Lå·wvËŸ£½¿_õËZÄîvZ?®ýºÓ–KÚÏrG{Œá³ ÿt+òçWOZ¡÷䝯‘šIššwuOêwSòO“ç&ÏM¤]cò^Fqßûõ9ü«ÝâÛ/Û—[–d£8ÃòþU®¸X¹*rU¤âq\¼Åïµí+Ζ|ùøªg‡Q~Â÷ëê“ß'¿uõ!þú}UA øÇí·Ü> øÑh£ßIgœ¬Y7« cšŠ/»Ø 3;¬8ÇÆsh X\äµËk—×Nè«ä“¥÷Õˆ%Äý’ñ¨Ñ­.¯ç¶ýÌö3ÛϤ‹—AfƒÌ™)MÛ^}ÎL‹ ¾ý¢ø$wQëc3ïÞñ,çYÎ3*€¬‹¬‹¬‹áCdž× ×ë3†íJþ¶OüÕ§©ûVõÓvÚ;ŒFTHpº<îÍúqb¸ù³cTDÍÕñН³ö‘ÚGj—ˆóÊ{%?r2©|ñíö©µ]ŒÊ4¨­äRòþE®¸Hßž¾=}»à7·W]ÍžpÎäKÆÕ¼7Y7UœÛ¥vKí–ÚQP7௃Ð÷SþÅËÓËÓËSñÃ2¶[£ën i*>o|Ôö€O‚Б{>ìù°‡Ú+^VuXÕaUÅ£9`Q›¿Ígâ~Þ˜_%±eàM£¿Ë¶ÔRr•CÊÛ”·)o©½âåžá=Ã{†‚O  Yy.Þœ(÷3Ÿ y¶ùÑž£guæ™Cf¡ö´£ÂŽ ;*(¹Uo‡­ê…|ÛÕLþJLÎâ¢xMð?×ûº™ ³4¨ô°áþN‡ÝÏK?l,†è×»Zd¿¤z™•OY+¹‹Rb·Än‰ÝJBuÉ{¡Ïúçc^Ú¯'Êý¼±óòõ­ç+ùåéåéåÉÊV…Í ›6Wñ˜nÜ×!€3'Ÿ7fÜédî¯+´ ýíø·ãߎÔÔX}}¿0à_†' O®øÁiø£vœVƒÜ×a h0>ù94¿[1¤8««"VE¬Š êŠ£wmßµ}×Vè‹æÝ»Ç{çè~ê¸û‡™§6*ΧOYŸ²>e©ºâ«éÏMnú³â‘µîÛmì¸îD¹Ÿ:º¯ž§sè¡õçu½×õ^×£êôAóƒæM¡uÃ¥Úd-¥ÄËÿ¹ºÖÒ3'ß¹ÌLÜá¹oÉÚ#…þ—ßv´OÞn‰¥â|V¹QåF•²PY¨,´äÔ˜¼¯Qœ §„Våêå~ê8¦LJmçC:ç Zh®WœUyÏÎÊVÝ-{·ìݲB«ñÛÌÎuýÏpþäSDZ1q–9Šó9òéȧ#ŸRuø:€‹¡oQ!ü[ª,U–êáîáîá®øQédlw›Cõ1>¯É+÷kB_M²r²r²r(ºâkéÉ¥'—žT<²5+xš•‹Å'­ò ÖUeÌl{♡wÊ…ô éÒ©·âëfàÍÀ›BÇ×cÝ h®þ„±ÂB¯ëuÊ)ÎäÔ§þ8•S mvßì¾YÉ7|½ˆJ­¬<½2WïM\«ÊXýÄò×q‚§#ãêÇÕ«_ÒªKÞ×ÍIXàæÒ6CˆuU›ÖŸœQ¥²’oMîîîòž5­øê´½ÓöNJnçQÊrgQToOh=×{¤ÐÊó²âËŠ/+Roø:€¿¡¯:”¸’|%ùJ²Ð‡ë£íÔ0§Ù(|̪ÙÅ* žÐîtØé°ÓJ+îrJå”Ê)%t”wèMwÌ'ÜUeìÓ±åúÊKç°eß–}[ö¥Ò¤¡·FoÞJÞ)’¼GÕÉ NPéj³jC/Ü+xÕˆÿ[ÿ·þT!¹srçäÎ1¨hPÑ ¢âRõﮯƴg¥Ue¬|®ÉÒ°Šs87pnà\Yº,]VB¸&ïq„>§Fµ¸°Àé2ánáã y'ìÓ„æPÞ§³šwO¾òý“ï…Žò¥ó! ªkpF¥ð1/5lY`‚ã¬òÁJnþUWhtôõtÕ‚ »v7¬$W—¼Ç‘÷;Šóã=4T«âd"^ÁÛ>—Jñw>hzÌn«^mÅÙ“÷æ¬`R2_6_6_&´ž¼ÛÑy®ÿΫs{ÖXf3^hör*åTÊ©Dák"þr&|˜ða¡oÑ"Êܘ¹1s£ÐGoÄaŸ,'Ðx(Ž[mj;86š·;ã3žê’žÐ ¡B+(ñJnStVfÇ ˜LÜ[p¼±§Š…Ð;e]“uMÖ5¡®¤g·ÿnÿÝþ‚Ï¡œ9¥ÓÖ) G¯«JÅ÷×dq´ÚÅû«ß_ýþê'‹•ÅÊhƒ|‚묰Nh5ö|²Ôïd-Và=}żß~š±> |øPWrò~Gh®ZNš[Æâq¯âx¶×]“Bó&ïÍ©.)Éý>÷ûÜïM7šn4UrÖ¥íQ›Ö&©²¹Ý|ƒl8ÇRpØrþÉ#ö„ Þ¶‘}’¦šä ¹-4W/®¾¸úâ*àS½ÿþýû÷Bk‹‘…ã/^^SVuÅj\Ýa™mìpíeF+Ε[5·jnÕò¶çmÏÛN]$ï}„j¬›Ñ–›c„¾ò1ääÌ,‹:Bs%ïÇ©(©ºUÿVý[õ…Žþô=ÞíÝ9Ó"oÍkíæ(4Wã‚Ç ¦¢ð­Cœ€*™½vöÚÙk…¾j«ê|·$·"WòZt®>Sh~Úy·ónç-»$»$»D-IÛù½ç÷ž|Bç ïÚ•6¿#›–Ô7ȺdF¿ïªÅ6õO±aÙK¿£Ð,½^õzÕëUÔ’´½Íz›õ6K¨´”6léYc±cÌš’9˜·oÖ¹{œÐ,ÅéÇéÇéSK¾Äuÿëþ×ïÊ`ÜÏg£u^OVÏNìQB£ß§+zœnSöšíסYzæöÌ홵¤Ä%Ù%Ù%y$4{½ò÷–ªÖ®$G¿í,ëbµEh~ä=8¥TlÝ·ußÖ}B•°ª[`?»%ù|Ë£Þí*×(#4?îuÜë¸×ÉÈÈ –ð­Cœ€ªi"k"kÒîd»“íN }íÞñ×ç~%­¹ø2Ä×SðÚ,óóóœ¬fYͲšQD%Ç–º[ên©+TïµÍ0OÍïž83ðyɉ~ߨÏ÷¯â0§êŸú·„fæê”«S®N¡~JŽ;ïî¼»óN¨´Ë(7ÎcÍBßhã9XE†& 5l¦Ñ]ðQ+ W®4¤~•SL=0U0ëÿ¤Ñs¯9«Æ$ü^‚¢ßNË’NWKpË𙳖g-ÏZR?…“÷AòžHh&{NÞ5ÜöaI‹~Ûæ,¹`ÕVðÄ'ÛlwRÞƒSE%GDjDjDªà7@‹€vUKÚù–ûmžø^/÷2÷eîË\êß0ĉð rRrRrR¼½½Û’Õæv%¢9¶¼¡†kDá­È‹£/޾8Jå”L³gÌž1{†àM¡kß2)3üô®€³ÒŽ~_8P¯Fkƒz‡5ó„fã¤ÉI““&ÔLÉ”ìŸìŸì_øZêš5ãÚî ‰?ëwѪù æ&‚v6'4cy<æ15@VÖ[Yoe=Á›BOt²óÞXÝmYØ9Ò^=ê-p;’¨[¾â‡J ï~dpÀà€5£:yOTøg}ÇF‘«^, Ño‰§Ì̓¼×–÷ÝTNI“¿7oþÞÐÛ¡·Cb>á´çc«(Ù½nmƒ|¤}¾åBXóž _7nŸ¿}þöy*b@ q"|²wkß­}·Ö9Ì9Ì9Lè‹x+ȾÐåhÀFIµ"öÝÊéÏËôµ±¹Ux+òØâ±Åc ª6LØ0aƒP˜™VÈÕi÷`àÞí>K¤ýÆ­]iâ®Wø;åàƒ .¤NëëëRxµØ7š¾¨žôÂ÷ó,™è½©k-xk»!.C\†¸ÈÖÈÖÈÖP-ÔgÞüyóçÍ\ˆ;ki†¹†L{¸ã„ôVc§¹ã*¯Qø'Ñ6£mFÛŒ¨“Ï#ï Ÿáz9á÷*—kœZÕEWJ¡ïhÝ‹·œµ¼‚ÚæU4Úwy-ﵩ–’,7$7$7¤ù‹æ/š¿ª–ƺ–ÿ«è”±«“®ÿoÒ‹~£Ö×òuˆ-|­Hyœò8…ŸEBD€!NÀ€Ïôþúûëï¯m Ú´MèK¹^e­&š}Sšµ˜X}MqoBÒî´ÿ½Æâ€*fƒŸ¦©¯©¯©Ÿö0íaÚC*Í~0ûÁìÿqJñö´ÉŽdIǃü‹oè›sõtNÀƒ =–Y.|m:¶éØ&jŻƻƻ^9•Ú5Ðé°ªúÄå.§Î÷°Á®Ê —¹c ßßq3ÆÍ7ƒÚð5­¼bðŠÁ…¯NÖ+»ëŒ¯âmiŸäQŒï¾0jU`üq‹]mö ´+|÷¶ØÛbo jãËÉ{%yß$4ÛÏ<û„ žpò¹ƒkq~{[îmX­·V–®‰f)¡ý•÷Ôòþš \Þœ¼9ysº¬î²ºËêÂW§3ºM\Ý»÷ó-¯ó;ðÛÔþ›TS“Â÷÷úŸ×ÿ¼þ'±!†8¾ÈÇĉ{é9¤ç¿¦G,sϱ•ùªÓsÿéÅ¥ ÉV6pøŠ+7í ß;Ÿ#>G|ŽdÔϨŸQŸª€-g¶œÙr¦ðZ ÈsVîw¶ï:ìS¼¢ßÓ:+‡»ÿÇÉS¹‹G/½È­Ñ!èúà냯V¥–ì÷ ¯¸8µx… nçgÝ·¿\Œ[ÿÈÂ÷nõ¤Õ“VO¢|+ûïo¼¿qá+•~”ÅO¶o]â¦jmëVÌ®÷í:vÙÚ-W½ ßÇ„z õêQEKÞ7É{¨Âç¿ñމ†æK#®\yê¼±¸„¾#ŸMtªÓ+Îä]á{'ï£å=5U%jÈjÈjLz:é餧…×R÷IöÇ+y¹»ƒ»ïóbý.íæTm‡CFN?¾w6VØXacZRZRZEq"†8ŠÌšÃk¯9¬Ê)ûïžØUÌßö2ðƒ8[‘½·ÿêã\W•}‰ÐŒÐŒÐÌï”ß)¿5U\hy¡å…–ªTW¿ŸZ½¬œýüñ‘`ß1â }¯G-ªÞ9(ÛóçrC ßssóçfÏÍž›QPÅëɯ'¿ž\«E­µZ^] ¬´ì—:·o½“8cO×Åú1á•4ˆé8R•÷~|¿ø~ñý¨bº)uSê&UÖ.ãä€ M Üuæ´ÜNœ«±Ëí©m¶%–;î¦á¿¡ð}± ± ± yÔïQ¿G¬Æj$ï¡äý”*5Övë’`«q†¾c\qù¾qÌDóժ싼w¦ ºýg÷ŸÝV•êš.ó^h];DZËý€hqžo9Ù¿Q¸[[“ýzku~/|_:¿ìü²óËì•Ù+³WR3`ˆ0 ¨OÝI½“z§\f¹Ìr™ª4'“ ªw´z÷È­¦ì›Ýnè@Ç~‹—O h[-YCe'|Nøœðáˆãó¼iÿ¦ý›ö.v¸Øá¢*õÖºl™&Þçw­—y¶þVqoþ«Ä·A¥Ž8/Èv9âüõ{ƒ0U^ùœð9ásÂóÆçÏÏqǧÊ’ÿ$ÿɲ{Ëî-»§J½éZW®t®ÚÓýçLðÚ±êNÂÄo38_š¤5Ûx ÿáF»TyåMï4½ÓôNº}º}º=ǀؼÿîýwï¿ëãÛÇ·¯*kZ¹Gn.N?鹯÷›…¾n‘³’ö:ü1Ây©wYëuN/TyåM\4qÑǹç~œËqÿšä½•ê½Xã?'üdÞyø±ÄZŽ«¾Uè;Èïø~û¤àÔÖ¦y*½/2Ëe–Ë”÷Ëq|žGæÌ™{ôñèãÑG•ª¼Ý¥fŸ[;Zû{×ùVç[²t± h5¬–½Ã!tÍ{šVª¼òív´ÛÑŽ#Žâ‚âD P‹m?¶ýØvþÂù ç/T½¯¢c°F×icÿÕþº­Ý:Ì»ƒ:ÚGÉí‚k˜D5©eæ°ËgˆÉÃÓª¿Âyóæe–Ê,•YŠ£Œ¢rüÒñKÇ/i|¢Q›º,¶üýÜŸëyäg?:]=`KÑÆ½¯'{ê7#fÛ’¡®Ç:ÝoÔËÌCõ׿>É}’û¤›çnž»yŽã‹¢r¿Ãý÷;¨^ð±©{Ùþ¡,´õسpHtç"~~dã•Gã5œkL¨µÑË|H³í=L?õ½|ðéÁ§ŸÊòdy²<Ž2ñ‹ˆˆÐHÐHÐHP}­«ä\Vè[Çü1 ×T¬ÞyÙÙS5‹ø^ ƒß>>Êa}¸öò&Gkžjž¦úk³ngÝκ]ÊÉ”“)'9¾ß–¼Ï’÷\ªAó­®“õ—´¨:k»EïASNØÛ?TGÜÛïÆáX»¨F?Ž«f^Æè73íCª¿By_,ï‘9Êørù+òW䝨¸}ãöÛU¯C½Ÿ´jj†ÍÚä3ßúQjÇ–µ½Êæ'‡e}_´ç[žu ýηêî-uW8­÷¼ÊÐ þª¿Â¶ÃÚk;ìE¥•^Tâ(£x!†8ÔîÙìg³ŸÍ×ê^«5>‹s^…jk†uw­SåÎú­5OÛß>Q±¡ÌMózv«^ÛÿÕll Õ÷õ8Õ²±£[ò­Z Žzcý=YÞøÉ¬›ÑÙÏû¯×«Q¯F½7‡ß~s8Gê“3*gTΨ凗^~øójÕèuÙ–Z1]Û4ik–¸$sDf5·ÃA ¼\&œ¸î/»Ãݼ§‰–g¦EÚ¹gïÙ3»¬ó¯³È´~bÜǸùçý×µ´´Žv;Úíh7ÙmÙmÙmŽ)Ô'64646´âΊ;+îü¼Š-oíÞ1°µ…I«ýU«Þ¿áÌ3ŽsFç¬îä²29Þì_ω<0nÉz {“¡u†WÕéìþÈd~Í æÚí Ç”Ÿôyÿõy7çÝœw3«TV©,~N Xúý1úcôz×õ®ë]?o%Ô¬¯§kl\ÙïDþV:8 ˵7¸Å¼NÍÇv_;å_oåÈÆI]ßqŠüPíþÀVsÂ,MÛ Ê­°ÍÛ¸ÎP/°ïÏ}îûS¦!ÓipLÅFÞÉ{±Ï;¾×<4šÒÇÜÔ­åwsL,öuùsƒõá!7âª;D wû¶=hcgÕiÂÚpk׿=§¯©rݯA×xã ¦Uª­Ó3ø¼ÿº¼ÿ•÷ÂM¨OÆdüñ!âCćϫժ' Ûë5êßÄi“y@dÝ Êv÷޽lhë:÷’~HCÏ'Ï·dnètÁäéAs݃¶Ï¯£ïxRtõȪ†uíÌ–ßðyÿu× ®\7\°»`wÁŽ£‰â‹âD øªÒ|Ò|Ò|FÌ1cÄ  íÚ3´çu³ëf×y^)¾÷ÆïßGÞ¼yWÌï»ví6F7ˆnÝ oeÞÊ<žÌ„¯*ÿNþü;±Ãb‡ÅóH÷H÷Hóûeé‘¥G–Éœž9=s:Ç€”dwÍîšÝ5ªTT©¨R~~~â\‡ÍË›—7/¿ÿÆþûoäêçêçêsìŠ y_&ïÑÄüY/ïså=/G _ß«Q¯F½5-jZÔ´(1¿Sêí©·§ÞžsOÎ=9÷„£i †8¾™|ë|ë|ë}U÷UÝWÕß×ß×ß÷[µU «V5\ç´ÎiÓÛSoO½=ÅÑØœ]|vñÙÅa5Ãj†Õü¶íúxíñÚãµo'ÞN¼ÈqØ<0{`öÀlêé§>üÆ?$ruuH0H0H0à¸(i.>¹øäâ“>}ú8|ÛÕ8\;\;\ûzÆõŒëi÷kòÞMÞÇ}«ê’÷°ò~VÞÛrt 61ãcÆÇŒo4½ÑôFÓ¿Õ;ÅÐÞÐÞÐ~Qú¢ôEé/¶½ØöbÇÒC q"ˆÈÇ)§|œW&®L\™QËF-µÌ2Ú2Ú2º¨²©eS˦öõïëß×ÿÐÓCO=ÍèÑ;£73â(exÊð”áóSç§ÎOõËòËòË*ÚF½Ù¶fÛšm[ï°Þa½Ã½]÷vÝÛÅœ£8zèûÐ÷¡oǪ̂™Q3[½oõ¾Õû¢}§x—ñ.ã]föìÙ³gϾv)ìRsŠ®õ»ÖïZ¿%¿.ùuɯ5/×¼\órÑ®Æ [4lѰE¤M¤M¤Í2wÊÜ)Ü—òžNÞßÉ{=yßWTÕ%ïIåý©¼W•÷­Ì<Š™–²–²–III“ŽO:>é¸Óÿœþçô¿¢]»ÔìR³KÍ]ov½ÙõæYܳ¸gqL<|+À€b&sfæÌÌ™§LO™ž2Ý;b#¶,ܲpËÂÍ—7_Þ|ywÃÝ w7<žv<íxÚÃý÷?ÜÏŒ¡$Kh–Ð,¡ÙÁ_þrð—­×¶^Ûz-jFÔŒ¨Û×l_³}Í‘FGitöØÙcg1W(É.ô¼ÐóBÏ£ƒŽ::hGèŽÐ¡Qç¢ÎEÛºxëâ­‹4>Ðø@ãøñ âÈ&É&É&1c ‰-[$¶8xèࡃ‡¶l3ØfU'ªNTm·=Üöð°Ía›Ã6ÉÍ“›'7g®ð©ä½¡¼O”÷ŒòþQÞKÊûJy)ï7™1”L[}lõ±ÕiïÓÞ§½÷=Û÷lß³­ú[õ·êon¸¹áæ†;oì¼±óƱÝÇvÛ}-íZÚµ4f ÄŒ$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$âÿ¦ü1§>Ü(%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/exhaustMap.png000066400000000000000000002076621431412030200255250ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTgãþcSŒŠ(6Ä‚(RDºˆ"ÅŠ{EAc4ÑÄh¢Q{‹]cÃD5ön¦¢(ö‚¨(ÆØbW,ûýcŸßùù9ë@w‡÷‹sî“ó<¢3÷\3ìÜ;[LЄbLh0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0Pž'ûûìï3ù4ºŽg¶_‡º|1øÌÔŸê÷a³`¼û”ïþXâãnÿí—?Ow+7,}v}§¿ú«cëÖ¼ßötß+ƒÝü|§æ§ÎYW}]õuÕ³&eMÊâC+€7JÞéÏÁüœÅ!åk¯\ò»a>ƒ§Ç- ¹î¶gg¯pçJÙ¢m†Oiµ~äŸÉ¸FLòvÙøwËä{gom²Ãynÿ~nókuøÌ¦¯U•ÿöïê¯{úk GZE ÓD »~úúéë§#R"R"RþÅÉËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎê_Z;8kpÖ଼ÿ”·nWãhœü¢·Œíýù4ÇÍV¬8r¤ Fÿ΋×ÅW¬ïóÍìùç«…9µ}ñ/¶ÍÛÚÛÚûð²ÃË/ãø…M®éÏ»¼Ÿ§}Ã\?¯a³?2ÂË+ë¹S´\Àw1—wmÐliƒàå®OÝTv®›÷mÓ_õ×FŽ/´„¦‰ZÔP×P×0noÜÞ¸½yZÐüвEÙØß.6ŸïÞ5grLjÈã‚](Éû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬vLÁž˜=1{bò^ŠÔ¹Ü«Ï7ýÛ-ž_¬`ëÞ¼î¡ßÞZ\£¢Ÿ[EßÞy*rúî;¸ï³QÏF=Å ŠþœÒŸ_y9ƒ¯ÔØ[I'ŸŒ ôñ}[÷/Ï?ŠÞ\b~¥ÀL—Ny¿î鯓qh0L04åἇóÎku¿ÕýV÷s_t¨çPq¼uÌAçvW}½t%b? -ý¶M^3fÅÆ„†œôáÈÀª‡Uª–û¾¸ví6úæò›Ëo.'¼yS2¦dLùbðƒ¿œ—òÃõа’³Š5¸üƒCƒßVéklô^4móæÃvÕO o™—}Iš”4)‰GCù¢?òrÆupö°.ÛufÀHºÑÅÆ††¾ÜÞÿdHëí)áŸ{†åe_ô×Lýõ“ À|QÃ4QC#Î>ø|žÞ5»»Këý^Ö¦¶\’ûxàçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯üÃ/ŸÕŒ™3Î+ ÎŠîG¾2µÒרèÕqÒ®õë*Ôuø²Þ?üjÝæa›‡mF€Kîä~~y<­r̦߹‡«úëÌæ.fVl“PçOCûÖ/‘ûÞ鯟úk)y€9¢†i¢†Ù;r0ä`HîË CÏzz;,~ö4zCð;æUýþŸß©ßÙÿdHëI_ùßp Î}·wÞÞy{g²@á¹´äÒ’KKrÿ‰\y—÷“ ±~®s“öµ2—Ò÷5cà ˆõ x÷Dz¹ïïÜÇsÏ}L6€¼ÐŸ/¹ŸS+Û5 ­ÿ“îQlŸÐ 󽋹ów¯™ãÚžpœVõnîû«¿®’ ˜ `˜& `˜1!QHs_DØ×¡M²—j¾Ë%ÆÆÄíígùùç¾ïë’×%¯K&'¬ó¥Ï—>_:÷ŸÂN×úëbÆ¥¯±Dïžn¹¥yÙd«õZÛ÷Iã&›4ŽœÆèÏcgmx¹±–©Uº X¦½»˜¸_CnºíÍýú©¿Æ’˜ `˜& `˜¥„2 eÊä¾ppeb·È€GÚ[4ù?¿MïØ«Y`GGÛ2VãÍö!Û†lBfÈ¿+¥®”ºRêÖZmìþ_Öj¯ú}uôï´xm¼mß!ËŒÍÃOs~šóÓ2¼J^;k>WgºÝÄçu¢ÅàRÚ¾‹9òYû$¿è¸›+u¥Ô•Rd¦¦‰fæBê…Ô ©Æ– >¶ilõÁƒN½“›¶Ðö¢É«ãó^Ñgƒ+††ÖlR9ÂØÌ¶8lqØ‚üðßÜo¿ýýö¹×Þk¦]Þòž¶«ßWÇFçâ:'Öª~¥U—®“Œ>¤Úºj몑@.;S¾8âñ•C­ìk1q!G‹Î]Ìåƒ]×LÉýºª¿ö’˜2 `˜& `˜GgytÆØÒ@­ 6¥ËßN›Ó76( è,š¼:fï_)øÏP©æ ÊÍÒ7JÜ(A–È»,,,Ÿó>ç}Îû ë³`æÉí§ŠNõûF猯Q?¬k7£¯ÓŽ•9VæX²„¢IŸcgÇСžåÆëVÅ6u/šw1­è>²ñ¯F¯®ç}Îûœ×_‡ÉL0L0ÌÁDÝDÝÄÛÛ[£¿þwïMÝŠæ¢Éÿy7ð¶è'ÁõêÆW,nýš¹rJwJwJ™ö2íe± /Æ8Žqãhô]¿ÎS»l*[D«ßWß œ·%q^ÕôÆ%Ã~36WÓ¦?L'Q(:ô™7vFtSï¦ýÌœ¡1çBîs“Ò¢Ë^›+ýu˜DÀ4QÃ4Qà ¬²\e¹ÊÒØr@jµ®G–³hòêx·Y¯­ ÍØäž“{NîI®È]®„] »ŒýÇŒ]uõ×dÂSC\Pvþ¾ó÷¿ëçpš k&¬yØüaó‡Í™™ÿ†&íÖ°[Ãn 3¶°{OëT/'JŒGŸwˆñŒÍ^ò…ä ÉȆҷ¥oKßfìghá=«oGÝklôýdV“ëÍÞžà=Á{‚É´MŸscgÁu].Mêq·blœûq §ó_ÆfO}&c0Àù—™™iì.€2ø¿¡†I‹5>j¼á ÿù°^µú²8’—qz»€õº½æ}K¶î¶î¶ºOtŸè>!i¼jÊî)»§ì6üéY!»N)·–nÅÍHŒ¥èÍ}tU†fütÇØÍÛóÏG<AÒ =úlKþv!¼gw(¹9~1RÈŸ¾MìúÙv7œCýõ™¤ÀtPçß«ïýÍepÞQÃD°;awÂÎØIþdt_9h(‹#y_ví¿)ÄÏ:ܲOÙ×,Eí)¹§äž’ä ½¿§þ=õï©Æ^ø¸Î˜¼Í‰r7cÜ‘ÄÊ¿zor3œÉŸýÔè§Fä ڣ϶aæÛöwŒ®zF—ÃJÞÆ?'vÛÒ¸®±«±þZMÞ` (€óO_èêË]‹<£ Î0LÏSÝSÝSßTßTßTÃSz[DXŠÇDþíx8»}¸ŸÑÏQÎvÎvÎv&z|9íËi_N{ÍgvŽëô|pwjÝ;ú¤ÿ”½³ƒ±W .=ºô詃6èólô±Ï³{¸7)Ï]É¿'§6úÌižá|ê¯Õ¤¦€¸`Q `˜œÓö§íOÛžÀöÓ­ç”/gTÌ…‡,…ü·±å¹ZOªt4œÛ}iûÒö¥‘=@Qv7ænÌÝc7þ¥~Þ¥\¥Ðýoc­øOGÄ´4œÕÙcf™=†ìAôy6Ìù˜3~¥ëLáNä¿OŽv 2ú‰ìúë6ÙÀÛE\x(ƒóƒ&'êvÔí¨Û†'­Tªí"ï3,‚ägLÕižÿzùuÍtÍtÍÔeé²tY$P4M¿3ýÎô×|fmÝz½»ô¤ÄÍÏè·q~Ÿ?Z»1ËìœÙ9³3 „ùÒgØXÂïÝ{\SkîDò3.ØÓtžË.ùÕ_·I Þ. à7ƒ2øß¢† yPéA¥•Œ>¦Xˆ™ÏòGþGÏõUËÚÌ4œáÔé‡S“C@Q“’’bìHÃ)‹ªH'(qó?Vk9»Ë†3,ä9B9„ùÒgØ0ÛCÆ4Ȩu‘»üŸõu ªhì*­¿†“C¼-Àoep^PĬn°ºÁꆧåòÒ!n=Xø(¨qïâ6³½¾æò7d CÈ! ¨9š|4ùhòk>~"£ùø¨+·5z»Ní¹©‚á<·®ÝºvëÚäæKŸaÃl§Dt‘eq÷QPã ;÷]µ^s Ñ_ÃÉ!Þ à·‹2Ø `˜a „žŠ÷Æõ®xÅ”#æî îòñÿz»ˆ^šòÖ¦oíÜÏØ…/çYγœg¤Pt I’8$Ñðg¢ç¬ Í×L0…êÔÿÈR‹·ºd}‘YÙÝ«M`«ïíÝÊþiu Â ›븸}UõNÀ•°ÏÝe³d£‰ÖÀÎ+>;2Ѳ‚õP›×¼Þ{ºþéú§ëI#Ì‹>·†y®¸ ÜKË/tkb[„º¿ÝWþYþ1ÅC>+w¦ìp‹;ÿÉÍ=ž4™l w1§ïFÅù¿¦Ö_ÃI#Þ `ÓAü* `˜„Ç™3gžx^ÉUÇÚ˜öçþ–Ž-jáß¢Ú¤Š¥_ÝrÓÿ úž²Kåê¯ù4¾k¿_ûýÚïdPäØäØäØ»h´rù‡;¿ÝÒÔkØd« 5¬?®~˱KÞo]ªu `±¢Ì‘2¦V×¹ÚkȈ⯹=¾;þ6™„yÑçÖ0Ïóë7-îÒÝ^ó_ èjàn‘¦Sg]i2Û诱ÚäØäØI¼yÀ¦‰2˜&á`Ùƒe–}Íß+‡´wëmÊÕïûþPwá–›~¼o}›t¯s†[¾¾Ëú.ë»I@Qp}Ýõu××½æáÏ3š5èXïí¥®ÆJŒ´Mv¹æ}꛵¸ìAËûÍ߉òrž7¨ò$ Ïâ?þ¸º±Û·_7žs¾šKÓÔ¶ó-,~±8ú꾘܃ §N·yºáœ83â̈3dæEŸ[Ã<_véúe@Œ)¼æß=ªõ!¯ª¯nÛœÄÀªÎgÌh:Þec^Ƨ;¢=ƒö˜Î]Ì€Çõÿ®¹ÈpÎõ×s2 €7ØôÍ2˜&aü³ñÏÆ?3<Á.yvµ p3……†Ûz ¬·vp g÷]c2ü*×™ãþg•*<0vi0ýøÞ–Þ¾¯y¿BOËž–=-É$ (Øá±Ãc‡‡áOC·ƒÃæ}ôv‹R×¾_žžù~É̹ßgS&~ªÿ Ë]ýÿRki»œþôÿmÝ¿fÉ:gM­n4|¹ó¡†s^eU•UUV‘I˜}n óüòiÿ¿CºšÂk~}Ý«ß*§N}­ýÌånÅØ¸·x›N^_ιþzN&ðæQ›—¢SSÃ$øó;æwÌð¤Êpîw%x¿),4ür>tO}¿¼_Lé$'#öƒÐ’F·?E—¢K!™mûfï7{¿ÙkøsÐ7vv¿ÝµßnQêСC³KõÛSþ@Õ¿kxäå‘Î>+f>Üžñÿ½ù÷ÿ7°©ÕÀ¶3u^¯ùäÔþ/ü_ø“L˜>}V 3Ø¿úJ^¦óšÈG ŽÕõÛ™êøØÎÑÜ à›7zZ4ùÙpæõ×s’ €7Ø|i» ¦†‰^"«NµV®ƒé,4œÝÕ©•ÿ÷?}ÐxW½LÃÑ `ýÖØaD•µ†ÛŸ~&ýL:ahœwKï–Þ-_óé¿—9äüv+Rûœæs£ÒÊÇVQí÷UíѨNKß¼T¹¾»ætÝÓÇpL­vÈŒj1Èó5qµ½n{Ý–dÂôé³j˜á‰•ü£ë>7Wû­::Ô¨ò•~ÛFöñ^ãhm¾Õ¯~|Ù£ÿæ×üb®þzN2ðæQkƒöÊ` `˜è%²»Ÿ³“ýsY†0ßøÇ ÇÔh¸ý·2neÜÊ ™€¢ö IJŠõ›hS«Kó>Öì}näÉWß7lš°«0ôîOɆóŸè“è“èC2aúôY5ÌðöÕá=›˜æ}Ê¢!A>®õ¿ÀÚ$»zóJU+·*¿Ìò¬K½J¡Ö©£„j)q%B6¸-ЕŽ-jÒw4w•ÿÀò›×Ý…omØÜi£ ¦†‰^"'íñ×9µ£.ìqí¸îû ·?éHÒ‘¤#$PÔ^Tºç9´I3Ó/z½»N}´é”Ç™ÒVýàVõ«Š³{T¯×¡ӦW÷ÅéiÿŒ±CL³ö¬;þÝÕ× çsÍu6×!™0}ú¬fødRÇ —™Âëü'ñ}S‚ƽºmÖ«-,;=/Ëͬe]ùÔµÝo6¾ašw1á›j¯’E Ó\[ Öó-ƒ)€a¢—È_#BoÔoO\Ø£˜Ñv¶÷ Ãí?w î@ɵW Õ}[„wºjú°Õ¥êŸÖ^n¸ýe(¿Âê©óÇûO1åí÷i1#eÛ<Ãíÿ¹ÝÏí~nG2aúôY5ÌðÕÒÝ®5nn ¯óOï8¥áç†[;´~§šM7¶ôkÐYÿg¶Ü ûÔcÅg¡îýjÞ,ûŽÅ‹ÿswcšïþ<¦{­^À0͵ `­2¯2¸˜éœÀ«¶$‡µöXJ\Øã‘ì%ý&7ôjýñiï˜zæ[¿ªþý‘'í3Íí÷M“´÷òí¹Ý´çãÀ¦ð:Ï 6Õ½>Õo•ûŸU>¨ð`}D‹?Ô|õþÅð»övoó­×Ô×ÔÀ&v3fƒ¯®ÎXòÀ\ìü}çï;§,v®m]Ñs;pa'îw×py@ÏáN”ígéæò‰¿Æ/:tÁ'gV¹_¸­ýúÔܹ•ݽÚöyu¸>±ìš©m¹_÷y±û?"oО»)½nî1å{–{wÓµY½/í››Ú¾L8ê߬îuòÀ\dnÌܘ¹‘àÀ¼€·À\ÞllÔïE•æ¾ûCŽ¿º_¼x3LçÀù7•oÕ¬AŽ~Üt•ÛUË;€ ?ŠÐ;€õÏ@ç‹/ý—áÉÀg¿ÝÏ^è¿Ð¡?Éä‹/¾øâ«¨½1—ÏÎK ¬WÞ¯Jýj:S«}ðpe¸2\!™|™þ—>«†6Ï.¨Ï¶^mùcÙé¦vcì3€I&_|ñÅ_|ñÅ_¦°¶° Ä‚ J03ÚûÚ5r×È]#c‹Ç-ž÷êWÿç‹Ðg¹¿#|ÒS; àÂ׎káá¾Ïpû“Ž$I:B2EíH¥{žC›4{ËG^>ßëËW·ÊéiÿŒ±Còþ7x4×ð×pý÷Z&ØÄUªdj°gÝñï®~Íã[7×Ù\gs’ ӧϪa†O&u¼Ðp™)¼Î—oD¶ð ž¶}èóáŸiÝ.4nš÷ïÝv(üÏÒú=ª×²âë/Lí'|SíâU²^w¼ýµ}YÈÌhƒ¾¸°fš kò^úêÿü›/}_E ½Dv÷sv²ßC\Øã;Ž©;ÐpûoeÜʸ•A2Eíˆeë 6Ѧö.^{ë=íƒóþ½NŸDWõ¿÷&VúÍcQcS+€]…¡wJ6œÿDŸDŸD’ ӧϪa†·¯ïìÙÄ^ç7ò«öWÅ`ýV5ÿ±–uåSyÿÞ/îzŒu¨§ÿÞ¾¢ë¢î¦vSqWù,¿¡€i®-P›;ó-}_E ½DVj5¬\ àÂÃ;Œ¨²ÖpûÓϤŸI?C2ÚæÝÒ»¥wK߃:/;sÈÙt `‹ÅeZ†4˜ùý“¸.ÿðÙºg{ïºSþ“ÊË«5Õ«ƒcû±WM­vÈŒj1ÈÓpæ¯Û^·½nK2aúôY5ÌðÄJþÑuŸ›æJ^îS¤÷ÚÎ÷>U6ÍBµ¥ÿójBd–ÏzÓ¹yÙ£ÿæ?ÃýÒ_ÏI&Þ< `mÐFéû* `˜¿c~ÇüŽž<Îý®ï§.Œ1'#öƒÐ’F†Rt)º’ жoö~³÷›½†?}cg÷Û]ûíV¤^§¦øn\RöO«½ºm5޵nѳ뜡}ª£Ô³[Õ¯*ÎîáСC³K_}à³þÓõ”6µO)¶é¬óZo8ó/ü_ø¿ð'™0}ú¬f8°õ!•¼LáÕþã¿ú:YמosÚꟕ«¯uûŹ…ÕX¾}Ox/Ïà#­Û'úußèÞrnƒYŸ…º÷«yóÕê7z³ë“±¦vwsóFO‹&?μþzN2ðæQ›/핾¯¢†Iÿlü³ñÏ O¤Kž]­Ü(€ c¼·¥·oàmÃ-ïiÙÓ²§%™;Û†™oÛß1ºê]vl w(yÿœØmKãºÆ®Æúk5y€) Î?JßÂ@ “5>j|ÔxÃûóa ¼jõeY$/ãôv;êu3œCw[w[w[Ý'ºOtŸ4^5e÷”ÝSvþô¬]§”[ËF·âf$ÆRñæ>º*C3~ºcì&íùˆç#ž iÐ}¶%»ÞÇ3„;”ÜÇ¿)äOß&výl»ΡþúLÒ`:(€óoçï;ßù;¥oÁ¢†I»5ìÖ°[ÃŒê»÷´Nõrb‰ÄØxôy‡?ÁØì%_H¾|Œ`(}[ú¶t£Ÿ:YgxÏêÃÛQñ}?™Õdçzc³·'xOðž`2mÓçÜèã u=º4©ÇÝŠ±qîǞΛ=ýõ™ŒÀtPç_vdvdv$¥oÁ¢†Xe¹Êr•ÑϯM­ÖõhÀrJ^ï6ëµ5p¡±›ÜsrÏÉ=ɹKØ•°+a—±Ÿ§îñ£†.­AÝûêè}iƒáå×WWý°áŒE¥E¥E¥ért9ºÒËÑåèrô™ÍgŠçØdX}ó"³ßÑàÍܹ¼:ÆwkçásÌØUWM&\05ÀåÕ÷Súæ0ÌÁDÝDÝÄÛÛ[cË÷ÿî½±©‹&Ï·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆy1ÆqŒãGc¯@¼§vÙT–ê·QZÜ–ÄyUÓ— ûÍØ\=L˜þ0D¡èÐgÞØÑmL½›ö3s†Æœ ¹Ï]LJ‹.4zil®ô×aÓD ÓD ³ñèÌ£3Î[¨5Á¦tùÛisúÆÍE“Œãý+ÿ*ÕTy ±YºQâF‰%Èy—å‘å‘åásÞç¼Ïyc?a}Ì<¹ýT-€W <2¾Fý°®ÝŒ¾N;VæX™ceÈŠ&}þC‡z–s¯[Û<Ô½hÞÅüµ¢ûÈÆ¿½ºž÷9ïs^&K0MÀ0MÀ03R/¤^H5¶@àð±Mc«têÜ´Ez×o¯è³ÁCCk6©alf[¶8lA~øoî·¿ßþ~{‹\y¯™vyË{Eè]¿çâ:'Öª~¥U—®“ŒÍɺj몭«F~ý¹`ìLùâˆÇWµ²¯ÅÄ…-:w1—v]0%÷ëªþÚK~`Ê(€aš(€a–Ê$”I(“ûbÁ•‰Ý"i{ÑäŽc¯f}lËX76Û†l²m™ ÿ®”ºRêJ©Ü_xT»ÿ—µÿ¬ßN‹×ÆÛVñ÷]²ÌØ<ü4ç§9?Í!3À«ôç…±³æÓqu¦ÛM|^'Z .¥í»˜#ŸµOò‹þ‡»¹RWJ])Ef`ú(€aš(€aÆ„D!QHÌ}á`_‡6É^ªöM··ŸåçŸû¾¯K^—¼.™œP°Î—>_ú|éÜ ;]ëp¬‹öª_ïÝÓ-·4/›lµ¾B+cû>iܤq“Æ‘Àý9bì ² /7ÖÒ!µJ×#Ë´w÷kÈM·½¹_?õ×XrsA ÓD ³w0ä`ÈÁ܆žõôvXüìiô†àwÌw¹äåÎþ'CZOúÊÿ†Spîû»½óöÎÛ;“ Ï¥%—–\Z’ûOäÊ»¼Ÿõs›´¯•W¿ W,<"Ö[4àÝËæ¾¿sÏ}<÷1ÙòB¾ä~N­l×,´þOºG±}BƒÌø©E÷š8®í ÇiUïæ¾¿úë*Ù€y¡†i¢†Fœ?|þðùÃy°»Këý^Öæµhràçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯äþ3º^͘9ã¼ê¬è~ä+s©~½:NÚµ~]…º_Ö»ŸûÞm¶yØæaäø·ôçÎ?ÍqsÅ‚-zý;/^_±¾Ï7³çŸ¯äÔöÅ¿Ø6okokïÃË/;¼Œã 6ý¹¦?ïò~žö sý¼†ÍþÈ/¯¬çNÑRpßÅ\Zܵa@³¥ ‚—»>u[PÙ¹BlÞ·M=Ô_9¾Ð `˜& `!‰C‡&u]æºÌu™Åâ^¿òÁ l°°Öò…4Ýârh‹wX9BVÛÞóÕøÈ—>ë$§¶+½/nëö—Gúâ±AÙ®³‡ýá9Ãá„oŠ]œíØÿöïÚ&Ù&Ù& ƒ…ÁÂ`ÝdÝdÝdŽ&æâ¢ûE÷‹î­ƒ[·þo¯Êw¯²Â~fµ+!Ÿ|]dzGÛ¯C]¾|fêOõ{°Y0Þ}Êw,ñq·ÿöËŸ§»•–>»¾Ó_ýÕ±ukÞo{ºï•ŠÁn~¾S-òa]õuÕ×UÏš”5)‹G=o”þ¼ÓŸƒù9‹CÊ×8^¹äwÃ|9N[rÝmÏÎ^á:Ï•²EÛ ŸÒjýÈ>“ÿp˜äí²ñï–É öÎÞÚd‡óÜþýÜæ×8êð™M_«*ÿíßÕ_÷ô×@Ž&´Š¦‰EÏJÝJÝÊ£kŽ®9º&\ “ä_Ú¿´i%\ WÂs:ætÌéÈ¡ÀÜ]üòâ—¿ì·­ß¶~ÛLóHµåÕ–W[¾Õn«ÝV»Ì…™ 3rÔS ?õç¦þ<5Íkˆþú¦¿ÖqÔPPÃ4QºÛûn﻽o‰ãÇ%Ž5kÔ¬Q³Æ›_(±²·²·²ŸµrÖÊY+¯»^w½îÊq@Û|<ðñÀ 7TÜPÑÏÙÏÙÏùm6c?ûáØ/ã⎠`.ôç¬þü}[WýµKÓ_Ó8.(j(€aš(€×¸ßâ~‹û-ö÷ÙßgŸáÑã‡G׎«W;.ÿK$vÓí¦ÛM|ið¥Á—v6ÜÙpgÃÛ“nOºÍ€.­MZ›´6~;ðÛß~Xöò–yñâ9$ÿ¯@Ê— .Ü×¹¯s_ç £7ŒÞ0úZÓkM¯5eÎ-ÑŸ×ús\¾ëÏýü_Cô×"ýuIÒ_¯˜s0MÀ@Hxžð<áy¼C¼C¼CBTBTBs Û‰Ë'.Ÿ¸¿;~wü>x8çNΜ;Ì €Üé¯úë†þ¢¿ž03  À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À@Hxžð<áy¼C¼C¼CBTBTBsswxÂá ‡'ÄwŒïß1Á1Á1Á‘9¹;êuÔë¨WüÄø‰ñfÌ8˜¡»¢»¢»ÂÌÐ `à5î·¸ßâ~‹ý}ö÷ÙßgxôðèáѵãjÇÕŽ³È7»évÓí¦¾4øÒàK;îl¸³áíI·'ݞĜ£°=üðá‡?»‰ÝÄnßF|ñmD½æõš×kžÿTW]it¥ÑŸ½÷Ù{Ÿ½·­Ô¶RÛJÝšpk­ Ì9 Û£­¶>Úª U†*C¿óý˜ïǸýåö—Û_ùOu…~úUèccc·éø¦ã›Žß|cðÁÌ9ÓG èn﻽ïö¾%ŽK—8Ö¬Q³FÍoœ•½•½•ý¬•³VÎZyÝõºëuWŽ òã^è½Ð{¡+âVÄ­ˆsZê´Ôi©Å[2Íšÿ4ÿ«.W]®ºp\¤ÒiõãÕW?vîþÜýùÛJõ„­¶NØšú~êû©ïs\ õlÛ³m϶†óÆÌo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À(B‡&MêºÌu™ë²ÿX_Õ¯|°ÂÁÁ#,¬µ|áM·¸ÚâVÎc„Õ¶÷|5>ò¥Ï:É©íJï‹Ûú„ý呾xlP¶ëìaxÎp8á›bg;ö¿ý»¶I¶I¶IÂ`a°0X7Y7Y7™£ ½“ÅN;Y̯¢_E¿Šÿ-].­+µ³¾ñÙ ÷EµÞ›Üô#—Þ›íZ­óðúDdzUçDÞöY.mh{Ö;}ûWáÍ==—ú¯p}6¼ƒ×øÚÑ~±ÿ°b×ü”g»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo04îúé맯ŸŽH‰H‰HÉûò}ÈËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎ*ïÛæ7Ào€ß€‹‹Ó‹¨Û5o×¼]³Ëì.³»ÌÎ{r2í'U\·ºN³gõ3¯Žî^ªqï‚MõÃj}ì›~½£CøϘ¨YNÕ¾ü%ô&—M.›’–'-OZÎñ-šî[ß·¾o–÷äx_¨zÕ¶ÔŠý¡mÜ2¯”èV=àLÁ¦:Mê;2¨ùî+­ï{ytÿÎ9ØþPÞ·­ú²ê˪/;qüÄñÇ‹ÚѤÞ. `hQC]C]ø½q{ãöæe™ÞúCËec»Ø|¾{לÉ1©! ¶BÈû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»å½‚ú¥jèÐúY#clCF¾­TïzÑzW1wµrV…[yÙæ»üØåÇ.™û2÷eîã°[lY°å_<Þy‰Gp×½Ëúœô¶R½ÿeÄ0ïê ïU‹¶ÍÈË6,?²üÈò/Ú¿hÿ¢H<öœx»(€¡)ç=œ÷p^«û­î·ºŸûr|=‡Šã­c:·»êë¥+ûIhé·U$¼fÌŠ 9éÝqYÑT«T-÷}qí6ÚmôÍå7—ß\N´çI‡'žtˆºu7ênîI°·þ¶Ü3éhÛ?½u9•cv„\0¡TëbcCCÏþÙ©³ÿ¤Ve>¬Ò÷Þ=Y²zÉê%¯Æ^½K´çùÒçKŸ/=0zà?ü‚Ž«eTÙ/÷Ul#{íÈ~?&<ägSKõ…°.ÅMúôtõv‹rß—rýÊõ+×/eWÊ®”]Ú>¾ÀÀÛE 8øüáóyz×ìî.­÷{Y›Z…ûxàçvë|Ëçeï;%vJìD´áŠãÇ+ŽyúÌQ¿°ò#Í+ÕGvµì÷u¥Ùå;Y®Ë}ï”æJs¥9yІëé×Ó¯§WZ]iu¥Õ¹÷µJ‹0÷DóJõ©ÑQ6 ã‡ÚÖ²š“ûÞíY½gõžÕZ=ÊÀÀÛE ³w0ä`ÈÁÜ—Ú‡žõôvXüìiô†àwÌ«Nxu|¹³ÿÉÖ“¾ò¿áœûþnï¼½óöÎdÃ|<y<2÷£s³~­šÕÓ~èÛ'ÈÏ|S},faHÂlÇ&㜿Ê}×}·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°ióMµÎ?Ö>´ââ/ƒÒ]g便qïŽ÷žöŽ50ðvQÃŒ ‰B¢˜ûòú¾m’½T3.ŒŒ‰ÛÛÏòóÿ‡Â,y]òºdrb^n$ÜH¸‘û‘Ýz/l‡Ç%í¥úÔÚ(džÇÿ¡0û8îã¸É‰y9ÙödÛ“mÿázõ~‹h÷ ÚKõyûÎ?5ú‡_Ù™»h‹´tÄ)€€·‹f)¡LB™„2¹/©_™Ø-2à‘öê„WÇ;޽švtô±-c5ÞØ}4j®¿…¶S¶©ï° àÐ65ƒ*}gÿ’{Kî-¹§ãN ¼]À03R/¤^H5¶€îð±Mc«têÜ´…¶ë„WÇç½¢ÏW ­Ù¤r„±™9lqØâ0‹ï&êªÝU»«vÆŽ]ù§eÿ*ët{P¯âÎE'ÕßõË >Ö~PëvûÍŒø£ø£ø#ù1M·–ÜZrkIîÕïµ[ÝŸ4¾_tRý2»ÿÝî}º¶ªñ®±9Ùá±Ãc‡‡¹} `àí¢†ÙxtæÑ™GgŒ-š×š`Sºüí´9}cƒŠNð ³ãý+ÿ*ÕTy ±YºQâF‰%È’éxöõ³¯Ÿ}]î‹r_”ûÂðx•»Vö;‹û÷Ózonê^4SõmLÅo;´¯ÛÐî±±T_N¹œr9…,™ŽŒÀŒÀŒ@‡iÓ¦;j¯è¹£INÑLuΰ˜s!÷£ý]j´66?I’.$]0ß Po0ÌÁDÝDÝÄÛÛ[cËå÷ÿî½±©[ѬþÏ»·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆ•)èy³çÍž7–dƒzþÒä ©Î,Þß%øžÿÕT¬`8K6¿Úüjó다I/’H”)’2$eHбTÿåÝ=²ñ4Rµ ¦fÈØðÎתÜ66WO“Ÿ&?5ËÏq§Þ. `˜U–«,WY["O­ÖõhÀrê„WÇ»Ízm \hlÆ&÷œÜsrOrõvm™¼eò–ÉÆŽÑ¹¨N7ý/“äWÇG«ûlmzÜØŒ¬=²öÈÚäêíúÃúë?¬£cJ‡í~÷Hò«ã3ïèè súǼÎØ€âŠ(nŽI .XQK£–F-ÕÏáV‹­[-²zgõÎêÍÌÀ `˜´[Ãn »5ÌX°{OëT/'*cãÑçbüc³—|!ùBò2öæÝ?sÿÌ}£3ߨ¡åŠ‹H¯±1éT§íþFS}|Éñ%Ç—±7ïIÀ“€'ÆŽËŠÊ¡åÜΑ^cãå³]7Ì06{ñâÄ0¯j¼á¢ççÃxÕêKm—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€×TeÝ~­÷Ä~‰Í˸¸wPšëÃ9¬Ò¯J¿*ý²]²]²]HÚ›42sdæÈLÃ#Òê–C§*ót3b‡Ö#·¹k&4?ç>ÎXÕ—Ù.³]f;sÉp½ z彿¹£ À«(€a¢Nذ;agl¡óÉè¾rÐP ƒ¼Œ/»ößâgnÙ§ìÙÜSrOÉ=%ÉÛ›q~Ùùeç—Kõƒj½å¦þ$6/cvJÌÒĺÏ*–·®i8“¾Ùð͆oÈÛ›qÕæªÍUc©¾u¼gÿ&'HlžÆþ±n¡5ÖØ¨¸Àp&—¥.K]–j.© .°ŸKÎ/9¿¤íƶÛn´È3Ê`PÃô<Õ=Õ=õMõMõM5\ÖÜ–âñ„ªàߎ‡³Û‡ûýålçlçlg¢WØÂO‡Ÿ?m8ÿ«G5/ï^Š”þÛñLrÔ ÿ0£ï˜¬Y;“O.t=wöÜÙs§áü/ÜÐô¡ËRúoÇKÛº„Kõóžôü#3Hp!  @ÞQÃ䜶?mÚÞpÓ~ºõœòï匊¹ò’à¿-ÏÕzR¥£áÜîKÛ—¶/ìž”…) S[ Ïò‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µë5Ÿ¦³"fEŒégƒ¸°Q wÀ09Q·£nGÝ6\¸”Jµ]ä}†b ?cÒ¨Nóü×έk¦k¦k¦.K—¥Ë"…aà¶Ûn{Í;Ú·…óüˆdægLÝõyÀùµ=k{Öö¬.P¨ $…aT÷QÝGuÍ;Ú›6Ë©¯#™ùoþÔãQ“‰FŸÙÐ+»Wv/SÎð›D CÀ0!*=¨ô ’Ñ%o!fvH<Å@þGÏõUËÚÌ4œáÔé‡S“Âõô§ï<}ÇècŠöŸbO& àÝíýj®`8ÃIÝ’º%u#‡ëÅÞ{_ì5–êôâý,‚ÈdþÇîÅ+Øo0œáÄøÄøÄxSNðÛB = `˜Õ V7XÝÀpiryé·”5î]Üf¶×kG¨ðÀè;Ûòþ(ÚVý׆x9¬²aõ¿%û~qna5–ëK c¢7»>©«ÿoý÷êÿžÂ+îméíxÛpKzZö´ìiI&óo~Öü¬ùY†3|Ú2ªMÛ¤º0Æ'%ûÎêd¸%­<[y¶ò$“ù·zÿêý«÷ÎðÁ ŸZøF’êÂ_Ø÷û6ø{Ã-ñ´ð´ð4ÑJ•ØQh 0L‚ß1¿c~Ç^ó‡Îý®Ê{%9º§¾_Þ—8óþ7ï\ÜÚÊs‹þ»Ê);ÜâνF½KžÈýïyõÏçÿq¦yútÉŒØBKÝß]Š.…dæGÄþˆý¯©Êžv‹.´ŠTÊø$6:4ÈrKÙ-Ö¼æó­—ä,ÉYB2ó#ºgtÏ螆sû ¸÷‰¦!¤ºðƺ›l3­Ë¿æó­Ëf•Í*kj9¡6w”ÁæŽ&Áp±êT«aå:ÞbúÙ]ZùÿÓwÕË4óS*|q×c¬C=ýwµßR'ÇîHÞÿ†WÿÅ//y\t(ôÇ_‡5vQe­áþ¦ŸI?“~†dlªÿ—„í±á¡ž¤ºðÆ^u\‚ª÷1Üß´éiÓÓ¦“Ìü°“íd;ù5åºkÌþˤºðÆa‡Q2×Åý[*„þZ³wåhýw-nt×ubÞ¿÷ç^A³]#ôßÛâ«ZCª|XØ{úãΆcê4Üß[·2neÌ‚Mu‹j…V~Hª {Oçé¹´3Üß+=®ô¸ÒƒdlªÝ'T¾Qá©.ì=]•ÑìZý‡†û›44ihÒPSË °VQ˜ `˜ÃåÂI{üuNí̱T¨=ßæ´U¯ÿ-z&‡ý÷ïÝr3ìSúï­óí«c…ýpѵãZx¸ï{M©p$éHÒ’Y°©þº«—cmgR]Ø©Þõ õÏÃýMœ8;q6É,ØT÷þÝålõ}¤º°S}àãvÃ|žî¯ððð©å„¸(  0eÀ0 †K„¿F„Þ¨ßÞK…JË[.Õ×ÁŸ?ýÈ·uÞ¿Wÿçõß[Å¿ü‹rv© f´í}ÂpĈ;G2 6ÕsŠ59í¼šTvª¶ëàä·Èpwß=~÷x’Y°©ÛÍ/°Î:R]Ø©NîÔ9´QÃý]gµÎj•©å„¸¨ÉOÌì `˜ÃeÁ-Éa­=–šc©PîLÙáwþ÷>Ú5VùïÈû÷êÿ¼þ{_ý{ oOdw(é7ÁoÄ/ ¡Ûê{‘êB¯Ê,;×kôy{3f÷m²Ðy©.ìTÿy¶ÛñÆ É´‡×À…&ÁpApçÚÖ=·›ûcE}ûé¾ÿâá¨Ö¶Ûìk£ÿÞZÛmìÊ?-ìRáÄýŽã`úÍXóQó5îýHua§úâ¬.#"ooÆB«¦»\ŽêÂNõµ?»?j|—¼AKÊÏ+?¯ü<^ `˜-½¸qeûy·è¿kûžð^žÁyÿ^ýçPê¿÷Õ¿‡wó`RÍ;€ypQN5ïï@ÞQÃ$.šïgwœ]wK5ýw-· ‰të™÷ï]V3ø…[]ý÷FýàT²ÚàÂ.Œ}ðBÿ…þ ýãßåë¿Ϊù~°y¥ÚØgÏè?£ÿŒþ$³`Sm¾Ÿl^©6öÀ?ÌýaîsM-'aaa†[ˤկÕ#VX="040404ïÕï‚w¼»à]^ `˜ÃeÁI{üuNí̱TzÌÓÃáåS[çïíïåý{»×q®eÿ¿Ï•&xÎp8QØ¥ÂÚq-<Ü÷îoÒ‘¤#IGHfÁ¦úë®^޵Iua§z׃ÖsõŽØ_{¾Íi«^V;,ë–í¨ÿï¶ÎßÛß;øó§ù¶~“û¸o}›t¯s†{º¾Ëú.ë»Éü;5ñÔÄS gxFzãÈzûIuaŒ‡¬>]à»ÒpO—TZRiI%2™){Sö¦ì5œáQs|Î;'Õ…1ž Œ’üëîéÔESM]dš9¡6”¾ZE “ð8óqæãLÃEF¯äªcmμ­O~µ`(ì¿çÍì?!ÄžLælÙ¯Öá*†3œÔ-©[R7rX°^ì}±÷Å^c©N/ÞÏ"8€Læì^ܹ‚ýÃNŒOŒOŒ7å„P¿-”¾Ð£†É‰ºu;ê¶á¥Tªí"ï3Tù“Fušç¿Þpn]3]3]3uYº,] , · Ü6p›áÌoÛ^Ìó#’™Ÿ1uv×ç{ çÖö¬íYÛ³º@] .†QÝGuÕÝpæW7m–S_G2ó3Þü©Ç£&þ:T¯ì^Ù½L9Ào¥/ QÃ䜶?mÚÞp±Ò~ºõœòï匊¹òzà?¾Kò\­'U:Îí¾´}iûÒÈ^áIY˜²0e¡ÑO¨õ‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µËpVWĬˆYcúÙ .l”¾È0LÏSÝSÝSßTßTßÔ×¼c2",Åã õÀ¿g·÷³4ú~2çlçlg¢WØÂO‡Ÿ?ýšwLŽj^Þ½)ý·ã™ä¨þaF¯];³vfmRWØzîì¹³çNÃù_¸¡éC—¤ôߎ—¶u 7–êç=ÿèùGf àB@é €¼£†‰:awÂÍ'£ûÊAC© ò2¾ìÚSˆŸu¸eŸ²# grOÉ=%÷”$ooÆùeç—_f,Õªõ–›ú“ؼŒÙ)1KCë>«XÞº¦áLnøfÃ7¾!ooÆU›«6WmŒ¥úÖñžý›œ ±yûǺ…Ö Xc? âÙ\–º,uYª¹¤‚¸À~jPúà?¡†I‹5>j¼áâæçÃxÕêKa—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€Ã#Òí×zOìؼŒ‹{¥¹N1œÃ*ýªô«Ò/Û%Û%Û…¤½I#3GfŽÌ4<"­n9tª2O7#¶qh=r›û¸fBósî㌾£½]f»Ìvæ’ à{´4jiÔRJ_ü[À0i·†Ývk˜±åÎÝ{Z§z9Q>ïã'›½ä É’/±7ïþ™ûgîŸ1v\6vh¹¢Á"ÒklL:Õi»¿ÑT_r|Éñ%dìÍ{ð$àI€±ã²¢rh9·s¤×Øxùl×Í3ŒÍ^ü€øñÌ+À%åJÊ•”+”¾ø·(€aVY®²\eôókS«u=°œ áÕñn³^[›±É='÷œÜ“\½][&o™¼e²±ct.ªÓMÿË$ùÕñÑê>[›76c#k¬=’Oü}Ëþ°þÃúkcÇè˜Òa»ß=’üêøÌ;::è\ù§eÿ*ëd8cŠ(> ¸9&¸`½ú>`J_ä0ÌÁDÝDÝÄÛÛ[cÕÂý¿{olêFð|[ô“àzuã+·~Í\9¥;¥;¥¿L{™ö2X™‚ž7{ÞìyÓXªÿÔó—&OHufñþ.Á÷ü¿¨¶ bÃY²ùÕæW›__$½Hz‘D¢LÁ”!)CRŒ¥ú/ïî‘§‘ê¬15CƆwv¸Vå¶±¹zšü4ùi²Y^Ù(€€·ŠfãÑ™Gg}pn­ 6¥ËßN›Ó76( hÖ ÇûW þ3Tª9¨ò@c³t£Ä7J%Óñìëg_?ûºÜå¾(÷…áñ*w­ìw÷ï§õÞÜÔ½ˆ–d߯T ù¶Cûº íKõå”Ë)—SÈ’éÈÌÌt˜æ0ÍašÑ_nXÑsG“œ¢™êœa1çBîGû»&Ôhml~’.$]H2ãGôSo0ÌÌ…Ô ©R-š;|lÓØêƒz'7mQ„ÞõÛ+úlpÅÐКM*G›™Ã‡-³øn¢®Ú]µ»jgìØé{{P¯âÎEè¾ë—|¬ý :×íö›ñGñGñGòcšn-¹µäÖ‹\]»ÕýIãûE'Õ/³ûß éÞç¡k«ï›“;}4j®¿…¶S¶©ï° àÐ65ƒ*G›‡%÷–Ü[rOÇx»(€aÆ„D!QH̽ZØ×¡M²—ª½:!q{ûY~þ¹ïûºäuÉë’ɉyI¸‘p#áFîGvë½°—´—êSk£Ï}ßã>Žû8îcrb^N¶=ÙödÛ¸^½ß"Úý‚öR}Þ¾óO‚sß÷¹‹æ.š»HKGœx»(€aö† 9’ûòúгžÞ‹Ÿ=ÞüŽ?>tgÿ“!­'}åÃéê„í·wÞÞ™l˜¯ã‘Ç#Gæ~”cnÖ¯U³zÚ}ûù™oª³Å, I˜íØdœóWÿP~·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°i3®~ýcíC+.þ2(ÝuÆ?üBÃ{q½cM ¼]ÀЈó‡Ï>Ø"vwi½ßËÚ¼ê„?·[ç[>/{—Ø)±Sb'ò  W¯8^qÌËqßâVÞc¤y¥úÈ®öý¾®4»|'Ëu¹ïÒ\i®4'Úp=ýzúõôJ«+­®´:÷ã¾ViæžhfïbeÓ0Þq¨m-«9¹ïÝžÕ{VïY­Õ£L ¼]ÀД‡óÎ{8¯ÕýV÷[ÝÏ}ñ½žCÅñÖ1Û]õõÒ•ˆý$´´  Y±1¡!'½;.k82ðƒêa•ªå¾/n£ÝF»¾¹üæò›ËÉ€ö<éð¤Ã“Qw£îFÝÍ= öáÖß–{&mû§·.§rÌŽ“{ îÙ?;uöŸÔªŒÃ‡Uúæ¾/ÕKV/Y½äÕØ«±WcÉ€ö<_ú|éó¥Ñ£FÌ= Ö®–Qe¿ÜW±ìµ#ûý˜ðŸM-Õºk4éÓÓuÖÛ-Ê}_Êõ+ׯ\¿”])»RviûøRo0´¨¡®¡®aÜÞ¸½q{óòîIë-[”ýíbóùî]s&Ǥ†<~[EÂÖ„°5gëDÛ~o•§w3Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»YäÙ/UC‡Ö·ÈcòÖÞ¼ëEë^ÅÜÕÊYnåe›ìòc—»dîËÜ—¹Ã^lY°eÁ–yOõà&®{3–õÿ(8ém¥zÿˈaÞÕÞ«m›‘—mY~dù‘å_´ÑþEû¢pL)€€·‹wýôõÓ×OG¤D¤D¤ä½`yY³fåÆë|Z|ã~ýúW=›”*Øòàî罤À¸-»Â‚<æGNuöM¿ÞÑ!|‰gLÔ,'‹j_æ}Û\6¹lrÙ”´;ᾨÖ{óƒ›~äÒ{³]«u~BŸˆLï¡êœÈÛ>Ë¥ mÏz§oÿ*¼¹§çRßà®Ï†wð_;ºÑ/öVìj‘»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À€îö¾Ûûnï[â¸Äq‰cÍ5kÔ¬ñæ++{+{+ûY+g­œµòºëu×ë®äǽÐ{¡÷BWÄ­ˆ[ç´Ôi©ÓÒ·UMóŸæ?ÍÿªËU—«.äÇéô@ZýxõãÕÝŸ»?wþ¶R=aë„­¶¦¾Ÿú~êûCÀÀÛE ¼Æý÷[Üo±¿Ïþ>ûû =<ºv\í¸Úqù¯ ì¦ÛM·›>øÒàKƒ/íl¸³áΆ·'Ýžt{sŽÂöðÇ>üPì&v»}ñmÄ·õš×k^¯yþS]it¥Ñ•FöÞgï}öÞ¶RÛJm+uk­ ·&0ç(l¶>Úúh«2Tª ý~Ì÷c¾ãö—Û_nå?ÕúUèW¡_Œ]Œ]ŒÝ¦ã›Žo:~cðÁ73çL0Pž'UÓÔ45M}¬>V«ÔGê#õú@} ÞWï«÷Õ»ê]õ®zG½£ÞQÿVÿVÿVo©·Ô[ê õ†zC½®^W¯«©©©WÕ«êUõŠzE½¢¦ª©jªzI½¤^RSÔ5E½¨^T/ªçÕóêy5YMV“Õ$5IMRϪgÕ³êiõ´zZ=¥žRO©'Ôê õ¸z\=®UªGÕ#êõˆzX=¬V©‡ÔCj‚š &¨Ôê5^WãUEUTE•UY•UQUQTAÔýê~u¿ºOݧîS÷¨{Ô=ênu·º[Ý©îTwª;Ôêu›ºMݦnU·ª[Õ-êu‹ºIݤnRWWW7¨Ô êzu½º^]«®UתkÔ5êuµºZ]­®RW©«Ô_Õ_Õ_Õ_Ô_Ô_Ô85NS—«ËÕåê2u™ºL]¢.Q—¨‹ÕÅêbu‘ºH]¤.Tª Õùê|u¾:O§ÎSç¨sÔ9êlu¶:[ýIýIýI©ÎTgªÓÕéêtuš:M¦NQ§¨SÔÉêdu²:I¤NR'¨Ô êxu¼:^ýAýAýA§ŽSÇ©cÔ1êõ{õ{õ{u”:J¥~§~§~§ŽTGª#Õêu„:\®W¿V¿V¿V‡©ÃÔaêPu¨:TýBýBýB¢Q‡¨ƒÕÁê`u:H¤~¦~¦~¦P¨ÔX5VUû«ýÕþj?µŸÚOí«öUûª}Ô>jµ—ÚKí¥öT{ª=Õîjwµ»ÚMí¦vS»¨]Ô.jgµ³ÚYí¤vR;©ÕŽjGµƒÚAí ~ª~ª~ª¶SÛ©íÔ¶j[µ­¡F¨jkµµÚZ WÃÕpµ•ÚJm¥¶T[ª-Õæjsµ¹ÚLm¦6SCÔ5D VƒÕ`µ©ÚTmªªj ÚDm¢6QÔ5@m¤6R© Õ†jCÕOõSýTÕGõQ½UoÕ[õT=UOÕCõP=TwÕ]uWë«õÕúª«êªºª.ª‹ê¢ÖSë©õT'ÕIuRë¨uÔ:ª£ê¨:ªµÕÚjmµ–ZK­¥ÖTkª5Õêjuµºj¯Ú«öªj§Ú©UÕªjUµ²ZY­¬VR+©•T[ÕVµUmTÕFµV­UkÕJµR­Ôrj9µœj©Zª–ª…j¡Z¨eÔ2jµ”ZJ-¥~¢~¢~¢–TKª%ÕÔÔÔÕÕÕj µ„ú¾ú¾ú¾ú®ú®ú®Z\-®W‹©ÅÔbŠNÑ):%[ÉV²•,%KÉR2•L%SÉP2” %]IWÒ•çÊså¹òTyª-Ÿ’Oɧäò ù„|\>.—ÊGå£òùˆ|D>,–ˇäCò!ù |P>(Èô/ ô—Y’%Y’EY”Eùùùy¿¼_Þ/ï•÷Ê{å=òy¼KÞ%ï’wÊ;åòvy»¼]Þ&o“·É[ä-òy³¼YÞ,ÿ.ÿ.ÿ.o”7Êåõòzy½¼N^'¯“×Èkä5òoòoòoò*y•¼J^)¯”WʿȿȿÈ+äò 9NŽ“ãäeò2y™¼T^*/•Ë‹åÅòÏòÏòÏòBy¡¼P^ /Èóäyò•>•>•ÚIí¤vR[©­ÔVŠ"¤©µÔZj-…KáR¸ÔJj%µ’ZJ-¥–Rs©¹Ô\j&5“šI!Rˆ"KÁR°ÔTj*5•¥@)Pj,5–KR€ ùKþ’¿ÔPj(5”|%_ÉWò‘|$ÉKò’¼$OÉSò”H ¤’»ä.¹Kn’›ä&¹J®’«ä,9KÎR=©žTOª+Õ•êJu¤:R©¶T[ª-9H’ƒTSª)Õ”jH5¤’½d/ÙKÕ¤jR5©ªTUª*U‘ªHU¤JR%©’TQª(U”l$ÉFª U*HV’•d%•—ÊKå%KÉR²”ÊJe¥²R©ŒTF*-•–JKŸHŸHŸH%¥’RIé#é#é#éCéCéC©„TB*!½/½/½/½+½+½+—ŠKÅ¥bR1©˜¨u¢N̳Ål1K̳ÄL1SÌ3Ä 1CLÓÅtñ™øL|&>ŸŠOÅ41ML‹ÅÇâCñ¡øP| >ˆ÷Ä{â=ñ®xW¼+Þo‹·Å¿Å¿Å¿Å›âMñ¦xC¼!Þ¯‰×Äkâ_â_â_âŸâŸâŸâñŠxE¼,^/‹—ÄKâ%ñ¢xQ¼(^/ˆÄd1YLωçÄsâYñ¬xV<#žψ§ÄSâ)ñ¤xR<)‹ÇÅcâ1ñ˜xD<"ÅD1Q<$‰ b‚˜ ˆÄx1^Œ×¿ü×ÿØõQq¿¸_Ü/î÷‰ûÄ=âq¸[Ü-îwŠ;Åâvq»¸]Ü&n·‰[Ä-âq³¸YÜ,þ.þ.þ.n7ŠÅõâzq½¸N\'®׈kÄ5âoâoâoâ*q•¸J\)®WŠ¿ˆ¿ˆ¿ˆ+Äâ q¹¸\\..—‰ËÄ%âq‰¸X\,.‰‹ÄEâBq¡¸Pœ/Îç‹óÄyâB/¡—ÐKè)ôz Ý…îBw¡›ÐMè&tº]„ÎBg¡³%D QBG¡£ÐQh/´Ú Ÿ Ÿ Ÿ ‘B¤)´Ú m…6B¡.„ áB˜&„ -…–BK¡…ÐBh!4š Í„P!T‚…`!X‚„ !P…&B¡‰ B#¡‘ÐHh(4 ~‚Ÿà'ø>‚à-x Þ‚§à)x „BÁ]pÜ7ÁMp\WÁUpœg¡žPO¨'Ôê u…:B¡ŽP[¨-ÔÁA¨)Ôj 5„B Á^°ì…jB5¡šPU¨*TªU„*B%¡’PI°l[ÁF°lkÁZ°¬+ÁJ('”Ê –‚¥`)Xü¿öî;*Šó÷¸MŒ ÅVDŠØ+Š;6Ä{ÁKT¬±Ä‚¢bÃÞÅÊ *‚b/ˆ ö*{ÿ˜ÜsùÝe6‹» »ËûµçÌɉ0;óÌwvæ3ó …÷Â{á½ðVx+¼Þo„7Â+á•ðJx)¼^ Ï…çÂsá™ðLx&<ž O…'Âá‰ðHx$<â„8!Nx <÷…ûÂ}á®pW¸+Üîw„ÛÂmá¶pK¸%Ün 7…›Âuáºp]¸&\® W„+Âá²pY¸,\. …h!ZˆÎ ç…óB”%D ç„sÂ9!Bˆ"„3ÂáŒ.„ áÂ)á”pJ… ¡B¨pB8!œŽ Ç…ãÂQá¨pT8"އ…ÃÂaápH8$„ýÂ~a¿°WØ+ìö{„=Â.a—°KØ!ìvÛ…íÂv!X‚…­ÂVa«°YØ,l6 ›„MB$ „ Âa°NX' B °FX#¬„!@X%¬V +„ áááa™°LX&,– K…¿…¿…¿…ÅÂba±°PX(, „Â}ú ôAèƒÐû¡÷Cï‡Þ ½z7ôNèÐ;¡·Co‡Þ ½z3ôfèС7B¯…^ ½z5ôjèÕÐË¡—C/‡^ ½z14:4:4:ô|èùÐó¡Q¡Q¡Q¡çBÏ…ž /Û‹—ëįíÀ9ºÃ  Ú‡€ÐÀÀô00=AL @OÐÀÀô00=AL @OÐÀÀô00=AL @OÐÀÀô00=AL @OÐÀÀô00=AL @OÐÀÀô00=AL @OÐÀÀô00=AL @OÐÀÀô00=AL @OÐÀÀô00=AL @OÐÀÀô00=AL @OÐÀÀô00=AL @Oø—B´ø\(¶¯Ô¾RûJåîÖŠÛ ü6s|õÃKÿ—þ/ýÍž˜=1{"ÙÊÅ+¯\<áiÂÓ„§ôüÐW¯ü^ù½òêþÿ/ZF³÷ÌÞ3{OæÏ»ûf÷Íî›ùn ÐkÑkÑkôZôZP×ц­¯ ˆW Ä­¯ˆW8jÐoÀÀ”úâÈ×Gð¹P¬·yoóÞæ¹»µ}Œû÷16È&޲îʨQ!£Bë®­»¶îšù˜þmô·ÑßF\2€~¿aü†ñ´¨z‹ÉŠÉŠ]vaØ…aãöŽÛ;n¯ÛA·ƒnkw«Ý­v7£`£`£`ó‰æÍ'6}ÔôQÓG£ÞŽz;êíÙ¨³Qg£ÄÏrNnì’BK -)”¹Å<Ó<Ó<Óròo(5 z-z-z-€^‹^‹^+/\AÒ†m[d»Èv‘mæ­jÓ¢M‹6-rþÓä$``J}qäë#ø\(VÖ¿¬YÿÜú¤$­LZ™´Òà‡p”u—ÿtÿéþÓ3ͪg«ž­zVù#Km@¥[¤[¤[T;\ípµÃÚP½á_¿„±=c{ÆöŒ N¶;Ùîd»œÙæ5}×ô]Ó7ó»÷èÒ£K.9ù7”J½½½@¯E¯E¯•® iö} ùò%„jA^CL @©/Ž|!€ös=­è¥¹Ï…6|Rö'íOÚŸDœwÄ΋;Oþh®\·rÝÊu\2€~;UòTÉS%s·zÅ;åGþ:òב¿h€xáUsÛ¿åÄ–[Nd~Çûî¸?'¿[RÉ ×¢×¢×èµèµèµô‰ö‹åÑË£—GgÞ¶R¥"JEP3ÐWÀÀ”úâÈWäÍÎîidÏæ=›÷lžóûÞ÷]ßw}ßç ÅdÅdÅZŽk9®å¸ÌÇQî,»Ç”Ú€.òšå5ËkVnU¯x9Òw¦ïLß™öc²‰³|Ù¯°_a¿bÞ¨y£æzœÿqþÇù3ÿÌþŸ÷ÿ¼ÿçÌï52udêÈÔÌ?ó)áS§„ _‚~ ú¥Å_-þjñ×ñáLJNÐkÑkôZôZôZPþˆhÏ&ÏMž›¹Û³ÉÏž%ÏÉËÉËÉkû´íÓ¶O{dðÈà‘Á·‰ß&~›(þ÷¶EÛm[ä0Þa¼ÃxMìË.Ï]ž»<¥Ö&^d”oIqž¿£ .<ºPjFùaîÃ܇¹ÓÃôZôZ½½½”¿‚¤mÛ)?D9׈ ¯€ €üÇ×¾ /×°âµ™&˜&˜&äîçåÐùCç—w³'fOÌžð¹Ö')ƒS§ ®å[Ë·–oæ#XѲ¢eEKŽ&ôÕ÷Öß[oýÏÉNþs2womy±êŪ«¿ïpûáöÃí•ÙqàAÅk+ß½|÷òݳ»G½Í{›÷6×ÄS2™ÿêQ™½½@¯E¯E¯e® iÛvJ=H`ÑÊ¢•E«Ôî©ÝS»s4¡€ €üÇׂ"äåV¼¶eG”QVþÿwÛml·±9³×ý¯ô¿ÒÿŠòÛÆçZwIÝ¥«üE@›‰éÖyXçañÖ¿Ñ~£ýFËßô[=Û€SN 8%õŽ]6uÙÔeS¶ß½˜¬˜¬˜â}‡@T~•afafafcÃÆ† ³–Yˬeª_ˆì÷°ßÃ~ƒƒƒémz-z-€^‹^‹^ Ê_AÒÅkhMè``JýáçÏ?òf +^[xÁð‚áåÿ¿Q°Q°Q°¦?5â WRÛvªä©’§Jò¹Öâ±®9·æÜšYÜ¥{6êlÔÙ(Z ºèR£K.5r©íRÛ¥¶zŸŸPïv¾ò{å÷ÊO꽌ýŒýŒýâÏÅŸ‹?÷cëÿ$þI¼¸ùõ&&&ª²_âïŠ7‘ˆó{IíKÝu?Öýè?ݺÿtñèð÷ ×¢×èµèµèµ Ê$íÜZ©+ZâM!âdSè:``ÿñ5…/£ÈË5¬xmÊ *¥¹ý Ù²3dgv¦æs­‹6_Ø|aó©3Ž#t—T?¦m%FŒ ©úP„ªüÅYÛ~mûµíUÚb²b²b]—u]Öu™Ô»˜O4Ÿh>ñ]Ãw ß5¤>z-z-€^‹^‹^ ª×˜vnmF…Œ ¸^ýFL =$F2§ŸŸ~~úù˜Ëc.¹ìvÐí ÛAK'K'K'ñɼ Μ+8[³.f]¬Wƒ^ z5ïÔûñ9âs_S”ÿÃýÙõgןMœ1qÆÄÓ§7N¿Î–)R:Ä4Ÿi>Ó|ãÆ;ŒùëÈ_Gþ*>•˜3{$n۪ū¯Zìý›÷oÞ¿9y9y9y‰‘‰xïç¿Û™`š`š ÝÓ)¼Sx§ð)nSܦ¸‰[›æœæœæÌ'+3q¾½UöVÙ[Eø¨Ùµfך]ÛVœG§TD©ˆRUnT¹Qå†íÛ3¶gÄ£°ôõÒ×K_?½õôÖÓ[ÚPê¬SñψCTiî( Ü?pÿÀýòïûG?jüQ#çOݵíw~²¢—Ôo‰•ùWè_¡…¶òiåÓÊ'óßq_Äjû½ËÖ—­/[kú'ö®òÇîÏ2–ù³ =t—®\”l9®å¸–ã¤ÞKq¯¢¼È5‘k"×H½‹ø4‰*ë_òmÉ·%ß2¯³äÍ’7KÞ´²°²°úŸ›™Ú•oW¾]yñ’U ÐkÑkôZôZôZPå ’6oóäN“;Mî$¿Í®§]O»žæ˜B×C¯ì±Ùc³ÇF ì+lEËŠ–-Åÿ~¾íù¶çÛ~lKÄ9 óæ7Ì/ÿ.î›Ý7»oV×W½é…§ž^Xj›6 lªÊ×ù¯,‹,þ±¸×,¯Y^³T9açžQÛá/&+&+&F’M>4ùÐäƒzOoVì^±{ÅnU†@Éù»êÔûŽ_B¾„| 'ÕÛ3ó§ãqþÇùçW×~©÷ÄU™ß ÿþ%ü‹ü¿Š¸&ޝX‡R[%ÎH”ÝÏu^ûÄeÞwñÖŸ Ÿ Ÿ U¶ùΤ;“îLRï±¾bzÅôŠ©Ô;ÆlÙ³]{z ». »0ìÂ0Ï"Ù{åäEÉ?TüPQê]*¯\¼rqµ½£Â9êTœ0jAÔ‚¨ò뜽göžÙ{äׯ®–¤‡½½½@¯E¯E¯•wèâ±oå§– ¯€ €¡ó>%|Jø” Þ=§ÞøA|ŠQõY@4÷Gôj‰«%®–Z³gšgšgšòï¢|¼aÑÊ¢•E+Õ[XŒÛcçÅ΋§J;$Ó|¦ù”y:Y•mÓ§Oܽž÷zÞë)>¡®úvŠÏ7«÷ˆ~0úÁèòïeóØæ±Íc.€ +š®^ñ–>©wÇ0Pï;ªwïÞ[½·zo%s¤8:‹â¿™oÕ¢‡èµèµ¨dÐkÑkÑkáÇŽˆîn¹8æGº‹˜:LüšåRÛ¥¶Kíœ !²»…I+“V&­”Z›8 ê­ù{ëï­¿·vä8Èqüš+U¬T±RÅì>Á¬L Ô©P§B êmÕz×ë]¯wýÇ}ŸIÍüÅ:g´iѦE›âÝ£Úy¥®wTæN@u‡ØU=”ÍùXñOЧ¬ê=²¾3}gúΔ/ù¹‘Ô[uú÷‰ÓDŸ¦Êã™)žG¬M÷|Óø17#oFÞŒ¼ØöbÛ‹mi ]¿()Î'õ.þÓý§ûOWïÞÍý{îßsÿ–zÇõU×W]_UùµMX2aÉ„%òC^+p­ÀµÊ|kûIñ›'= @¯E¯ÐkÑkÑk!»GDû·\jD´šskέ9—Š‚î"&†NŸ·göUüuG¾fû´íÓ¶O{œø8ñqâ·‰ß&~›(b|©Ñ¥F—ͺ4ëÒ¬K™ŸœSï}yâ;Rƒ½x8x8x8d7ØPü…uw“ÝMv7ÉîÖf7ä[l~¿ùýæ÷Ÿâ¿ÎŠ3hŒ={0Vœ)SsûÈÔ‘©#S¯Óì‰Ù³'b‹‰Ãòd®„w ß5|×P¼X/¶›ø4¹Ôðݪl³nÀ©ÝS»§vW&êkþOóšÿ³³ÏÎ>;û܈¹s#æS¾Où>åK¼™x3ñ¦8D­8<»2õÐб¡cCGŤ÷1Îú¥xÍR¿¥®ª3·ÏÜ>s[þgÔ;´x\¤¶G¨+Ôêj®êôï'õWãðñÃDZê۫ĝÅ!ë7”ÞPzCi©›oÔ{Ü¥†)?¼?— ržØfnIñÿüØeäîßS©§ðE;Fì±c„z÷nÛ¢m‹¶-’zGñ"£òk“Ÿ2@üÞ+ÕJâß2±O§,yÿ$þIüµ*= @¯E¯ÐkÑkÑkñÙÑþ-_ÓwMß5}©(è``è¤%…–ZRHñÀ™‡HUþ´÷oÞ¿yÿ&µæ*7ªÜ¨r#w‡ÿ½uôÖÑ[G¥Öyû5±…¢ÆéÓ§¿ôéÿÒÿ?Vªp†•̺.뺬ë2å·VŒ‘¯S~ˆÚì¶FæG^—M]6uÙ¤'Qª¿£â“"ñ†1ÖÕ\,§ '?ʯ3g‚>ÑûDuüY½U§¯Ÿ8Q‰øñ%âÅ{½•ÙrqÄeÖܶVÛZmkýرžâ6ÅmŠ›¦+ŠR’_³âP$󬜚ûâheaeae¡Ê»Üëy¯ç½žê:‘·wÜÞq{Å'áä_j{šJé!¬µí$JõwT<¯8‹¶*ÛöÈà‘Á#ƒé)Y¿ÄÁxµáä'»ëg/ÖÄ–ˆ¯òƒ?«·êôõ'ίú†gžt@žQ°Q°Q°ò[~ªä©’§JJ­mRÿIý'õç’n<[:Y:Y:e7 oüRel.Jª®Úáj‡«–z—ÏŸ#>G¨wïž&qÿqSKáé…§ÎÉ œ½göžÙ{”YOæqäíòÜå¹Ë3/\20ÐbêÚ»ÑF?ý |÷òÝËwÏî6ˆ+ˆÑ2V4W½â7.Éw)&+&+¦Þ½S|C‰ê pQ ×¢×¢×èµèµ“GDW¶û´íÓ¶O“Ú‹±acÃÆ†q”¡[€ €¡3Ä@TsÒf÷wæ§r5ýÅZêy\õ~PüŽ'>NÔ­‰#>©,>ájöÄì‰Ù“¼Ïï7¿ßü~Ê×äñáLJž<7ynò\}:ùù±uªw è0³0³03ù5T.^¹xåâ?ö,2Ÿ8qõîKp`p`p Ô;v>Ðù@çʬÇÃÁÃÁÃáÇ"}ºd ß°ÔžÚ<¶yló8»Û#>5þ)áS§.Jª÷ûûûI½‹8ZŒz÷NüK*õŽ™ç–æ¢$@¯E¯E¯ÐkÑkÑkiÿÑ•í?ÑûDï½%Ç´KóLóLã(C·Cg8rä8H{.þfÞUöKñ³}òœ¼œ¼œ¼r>,L¼™x3ñ¦nHHµ¶8û¬¢¬é»¦ïš¾âü¦­»¶îÚº«â¡óN¬x^e,l¶°ÙÂfg£ÎF‡öÕÅ“UÖ)õ[b¼§ü6Œ(;¢ìˆ²òëÚyh硵9ÖæOœ8+¹z÷W×AêÆ;Œw¯ÌögžÕ^ÞÓ+¦WLóÂ%ƒ¼ÿL3a‹7 æ7Ìo˜?»[xwèÝ¡w‡rQRuUÏV=[õ¬Ô»ˆ+Õ»wŸò}Ê÷)ŸÔ;V¹QåF•úzQÒ*÷K´ƒvöíôZôZ ×¢×¢×¢×Ê Ÿ8]€/5ºÔèR#©½°=c{Æö ·@·CgÔò­å[ËW{þð[YXYXY¨ëÏÞí€Û·J‡”)"õŽâ¿ÆlÙ³=¾8ªiàMŸHˆƒaŠƒcϺ4ëÒ¬KÂ;…w ׿/‚Ú‹nÄ܈¹“ùHuâ³Åw&Ý™tgRîžühz‘k"×D®‘ÿ­Ìƒ\)SÏRï.˜Ì'îÇöýCÅ?TTo¾ò{å÷JòîõÌů§Úáj‡«–ZÏãüó?ί͟šœìÁô0–h¿Ñ~£ýFgž“Lyâ âÈúñ0'Q u*Ô‘Ñám›·mÞ¶ÉÉž$óöpQD)D)ôZôZôZ´!½½½°ºÄUŽ«WYj/jέ9·æ\`è``èŒrCÊ )7D{þð›&˜&˜&¨÷ÏžâwTæi?í4q"ñ%äKÈ—q~Mõå̃ÿäÍ8ó R¯½ôjðcÏ¢)æ?ݺÿtÕïíÕ¶Xõ Ã¿„ ÿ"ÿ[™Ÿšå÷cûžÚ=µ{jwõ~âÄ'Ý¥ÞѤµIk“ÖÊl¿âaÐÔ{¼6ÀP|¼Ìi0§Áœì~ÊÔ;„¸v^êRoõ*Fc Ä΋;Oê57 %‰R@¯E¯E¯E¯E¯E¯E¯…¼‹,ª~MÐÀÀЊŸŽÍy™·Gõ½£ç–Î-[J½cæH@¾8jÉ„UßZ}kõ­ªM±m:6tlèèää´·ÊÞ*{«äÌAí€å×9ÕnªÝT»z×ë]¯w]{NeµsR¿Ûʧ•O+Å¿;2udêÈTùß2`È€!r>Ö§Oœ&`qRïX*¢TD©e¶?ó3âòĵu«ç‡¦/úôlÞ³yÏæ%âKÄ—ˆW|L§§LO™ž¢{3ÕÛþ}û÷íßK½KxÁð‚áÕ»wRó¾‹ÚÖj[«m-.J‚(…(…^‹^‹^ ôZôZôZÀêõ½õ÷Öß[KíEæóMÎÄ¡+€ €¡3Ï ’33ŒJýiW}=3ÞÌx3ã2_8þ Ô4 sÎÇêúR%9«ü5q ’Þæ½Í{›/»·ìÞ²{B]¡®PW™÷ÕÉ8Ó,’š{ÇÌëYòmÉ·%ßÄÙm?¿¨¹Zí €£D-ˆZ ÿ»Š‚V<øó‰Þ'zŸèÍ'N•}×ÄÐï¾kø®¡Ô;*?›Tæûjå½·zoõÞJ·z~ääwó‰æÍ'«ë½Æo¿aü©wÙºkë®­»Ô»w[Nl9±å„Ô;Ž 66L?ŽŸYäµþ™^‹^  ×¢×¢×Ê›Ÿ]Ù~ñjƒÔ^Tp®à\Á™ê‚n!&†ÎÈ<Õ¼¼'ñOâŸÄëâ~]l{±íŶÚp¿§®Àâ3v5VÖXYCr¨U1ZóþÍû7ïßn½uôÖQÍÅŠÚ‹ƒÄæÖ]Ù׿;ÀÙµ¶ýÚökÛK½ËÌû3ïϼ¯Þ½çS—zÇ5}×ô]Ó—‹’½½½@¯E¯E¯¥+GDW¶_¼Ú µµ|kùÖò¥º [€ €¡3ZwmݵuW©?B—­/[_¶Ö­=ŸZ¶ylóØæ±ü5.Ú¸hã¢RCìfžY·¾8ª~"¡ønM1ˆ:>üøðãÃÕµåºÇUŽ«W9w‡RÜÖ2k™õ´É„%–LX’»5¬®uNœ1qÆÄòkhñW‹¿Zü%ÿóc.¹<æ²üÏ3xÌà19Yuúú‰ÛŸ´?i’z+|Í›=6RïØr\Ëq-Ç)³ýv‡ìÙ’ZOt¯è^ѽ¸d7%ÏMž›;òìȳ#ã³~~~úùéç?¶æS%O•SÉ£#t©úv¾éñ¦Ç›µ»ÕîV»›ºN~JÞ,y³¤dعmѶEÛ©¾å³.ͺ4ë’*1Æ’oK¾-ù&õóRsÖþ˜È5‘k"×(ZŸ`qöVÅ·•¨wàß¼ü‰Sf=íÊ·+ß®¼*[.>¯éäåäåä%õ.^³¼fyÍR~Ë¥êD4òב¿Žü5/\2ÐïXÿ`ÐÒAK-Uþ}Åéî¸àþ+¦WL¯˜æÍ‹;9Qòù¶çÛžo+R:¤t·Xe¾QæÇÖÿôÖÓ[OoIí‹ø¾/V½Xõb%z-z-z-€^‹^‹^K·Žˆ®l¿xµAj/ÄsXŽ2t 00tŒÔ<šêúãú½õ÷Öß[‹sëJ­Y|Î&»kV<„µøT¥2[®¹}וع¥sKç–R¿+}©ÊŠÏšgŽùÕÕæâàœRk°ylóØæñ×­_·~Ýúc[®xhqå·üR£K.5Ê™S¾ÌOµÊn?Ü~¸½º?1¨Ëåυ šìÕ5ø3Ÿ¸œ‰ô&wšÜir'ÅkÎîÌÍ©ÝS»§v—Z›xD¸d [’ç&ÏMž»ùÂæ ›/42idÒÈDùʬv¸Úáj‡Åù¶_y=äõŽNn Ó­ø;è| ó±ŸÏîšÅß•Zsæ‘9¸( ÐkÑkÑkôZôZôZºuDteû¥®ÿ”õ/ë_ÖŸº‚."&†~5L4L4üwIå¿~,þ±øÇâÞ¿yÿæý›ÔšíWد°_‘Ý?xâ“mfOÌž˜=‘_§íÛ3¶g”_çÛ6oÛ¼m#õL^ç Μ5iωğeþ,ógÅOGýØ6Ÿè}¢÷‰ÞRt«Þ>™ŸTLYù-—Ÿ¥#s;d{ˆ”¢+k¬¬±R¼!#»í,†[Šg9‰³áª«ºÄO¢6|.&õŸÔRå«+ó3‚|â4g~:_™5‹· M«>­ú´êŠ×œùv"u;õNyÀ%͉«W9®²2·Èk\´qÑÆEÅ‘!8ÚsQòÙ‘gGž‘z6%»·¥[¤[¤[(ŠP|Þå¥ÿKÿ—þúw¤¨dÐkÑkÑkôZôZôZyá³£ý[.>Ž¢‰+@î"&†NúPñCÅÅgb”ùb*Îäq;àvÀí€ÏŸ#>GˆóíE-ˆZµ`‘í"ÛE¶ÊÄЇh–Òml·±ÝÆJÕ†]vaXv×™ù¢°¼NáÂ;…kçGÕO$îõ¼×ó^OÅÃ)g¾ ¼`xÁð‚'>N£G±~Ä¡kWì^±{ÅîÆéÓ§+>%P¼Íâ…~Å'!{«ì­²·Šò€¸mb…ˆOIŠ_ÈÖyXça ä ä d©ç&·œØrbË UZ[\ÿÜl‘iàâàÀàÀàÀû÷=î{ˆŸ²”Á)ƒS‹-q,âXÄ1ñ ¶ê[«o­¾Uñšû¾ëû®ï»ìÖžâuŠs늼‹Û&3•óŸ qØå+AþO\v?qª ð{d푵GÖ¾ò{å÷ÊïÛÄo¿M|dðÈà‘AÐ/A¿ý’y¾vÅ{!~ZìØÍ5oÔ¼Qšî™¹d  býd÷ïïÞß½¿gé„–Ô¶‹’Ùí[ö•ÚWj_©øsñçâω=‰Øw‰·m9Œwï0^ñÄy¶t·èaz-z-€^‹^‹^‹ÏŽöo¹ø†ÔöÏï7¿ßü~_è"``è°k®¸VÀ4Á4Á4Á@cÄ`cLj#vŒÈîŸmÅ!œßh¿Ñ~£57h³zÃ3m;‘0аrCÊ )7dÿÏûÞÿsv÷À‹/¼Èb£•x²VuªÏ,£5ƒ'8#>‘¯¹EåÛA#Ÿ ¥+A•gúùÄ)þ-ñvMì‹æ:èü¡óª;ñ¦%`]´³ÏÎ>;û(n[ñÛËŒ73ÞÌx#ÞŒB›ëÊEÉœéG?ý`ô]¯ z€^‹^  ×¢×¢×â³£ý[¾ôõÒ×K_Kmì¼Øy±ó8¾ÐEÀÀГ?®VVVêý:(λ¹?iÒþ¤ìþÁ~zëé­§·¤Öl]̺˜u1Õ¿ˆï"'òïR©b¥Š•*ª+àѶ q0MœÔßRKý-1Ûc¶ÇlÿÏ.Ï]ž»<ÕËd²ÿ;ˆwæáÄU' ë?ݺÿôÌm¨zk'­LZ™´2g¢_ñÉõ„§ OžþXuMq›â6ÅM`¥·Ö'È'È'H`]üÄ)³×êÝc?c?c?q{4Ðö6ïmÞÛœKÚI*vòròròÚtgÓMwhg]¿(©x®nULX2aÉ„%úQô0½½@¯E¯E¯ÅgGû·\¼Â ¿åÙ¸Ð6ÀÀÐÉs“ç&ÏÍ| ^•'·ú_é¥ÿ•|"§˜¬˜¬XæÙþçyâü†ù óŸ¹}æö™Û9ó…OœwV{¾8ªùD"Ó“”b`ÿcǽÊ*7ªÜü'›Oî*€Eâ É™«îǶÜZf-³þŸ¡Z2¿KùîŠ^ÙhíL-`ÑÊ¢•E+uz52idÒÈDõg%åûí€/[_¶¾l­xýâ@²|â4gþÉÌ·ædW‡¸qâįÕÛgμ?óþÌûòï˜y(u.h1oÍéÙ¼góžÍÏF:E«êÓEIùíù±Í3ßÈx|øñáLJëSÐÃôZôZ½½½Ÿ­Þh…W`ÄQ9²Ð]ÀÀÐC™£µ§œpÊ¥¶Km—Ú5VÖXYce©ˆR¥"ħcÅðL¼8»rÝÊu+×½XõbÕ‹U꺤þcÿª+ï¨mÛ™¹Og­û±îǺÅc-w±Äzø£Æ5þ¨¡ü €8£LæØÒ4Ÿi>Ó|•‹W.^¹¸ÛA·ƒn‡¹sæ~gÒIw&ewË—ZRhI¡®Ëº.ëºL YضtHéÒ!µ»ÕîV»[ÓGM5}$n¹8«n.ÙL_ ÅÁKÅ'wÅðLÔTlm£`£`£àªg«ž­zV|ÊÓû7ïß¼÷T@FÛŸùNáµø«Å_≢¸=bÛºovßì¾YÜžÜýtèî»kÿ'.»'Ãb刡ûÀý÷Ü/ÎeöÄì‰Ùñ“˜¹~Ä¡Ì5kâ‰sgžo›{í'Îýü$þIü“xŽQÞéW3O0xÌà1ƒÇ4»ÖìZ³kæÍ'šOûñï‘ëi×Ó®§ÅìôóÓÏO?§Nz-z-ôZôZÐO‡n³g¾YùaJ4L4LosçÈBwƒ?Ã\@ÏsÇ]û׬»_µs›ù¼çÍOœºú|í¹ç]ÞpûáöÃí©:€¿Œ@¯€^‹^ Tcv‰7ëËosçt>À§ ºŽ˜ä¡S/]< Ù²3d§Ô\õâÓÒqr‹n]Hœ28e°8Š›ü6›zl걩Sè:``‡N½t1Î<Üw¸ mtëlýÀ‹/¼ßZÇAŽƒqú˜ä¡S/Ý=ÙŸ´?i’ü¾ôèÒ£K.qr‹n]¯$Èoí¡ó‡Î:ÏÑ„~ &yèÔK‡ïc-&+&+&¿/¥CJ‡”áþ\r‹®\øXücñÅå·³¡cCdžŽ\[€>!&yèÔK×Of † /È@Ðh]9OŸ³~Îú9ëå·3üKø—ð/Gè``‡N½ô#(•ß#“Ö&­MZ¿·zoõÞŠ£@îž§kÛõ‡?TüPQ¼zy œpjÀ)n+‡þ!&yèÔK?Ni^ù½ò{åWÁ¹‚sgž wiÿõ‡iÕ§UŸV=ó¶U´¬hYÑòõ×C^áBÿ€íé×­_·~Ý*~£kèØÐ±¡c³kÍ®5»Æ‰9C<ÏüÒ†³ò„§ Ožf¾bàYijˆg® / & '€ €è ``z‚˜€ž & '€ €è ``z‚˜€ž & '€ €è ``z‚˜€ž & '€ €è ``z‚˜€ž & '€ €è ``z‚˜€ž & '€ €è ``z‚˜€ž & '€ €è ``z‚˜€ž & '€ €è ``z‚˜€ž & '€ €è ``z‚˜€ž & '€ €è à=§ô+2—^Q¹ô:ŸK¯ ¹ôŠÎñ×Å\z]Ê¥×å\z]É¥×Õ\z]Ë¥×õ\zÝÈ¥×Í\zÝÊñWL.½nçÒ+6—^wréu7—^÷réu?—^réõ0—^q¹ôz”K¯Ç9þz’K¯§¹ôŠÏ¥×³\z=ϥ׋\z½Ì¥×«\z½Î¥×›\z½Í¥×»\z½Ïñׇ\z}Ì¥×§\z%äÒ+1—^Ÿséõ%—^_sé•”K¯ä\z}Ë¥WJ.½Rséõ=Ç_i¹ôJÏ¥WF.½d¹óŠÈ—K¯ü¹ô*K¯Ÿ4õ"½E zBo`@Þ¡·ðÛvoÛ½mw6Bc¯s¹ôbNbf#f6bíŸ8ïÌCœwf Î;sßÊ¥WÞ™{8ïÌ:œwæÎ;3 3ǰþÍ.œ[s çÙ…™W˜…™K˜Y„™E8·fÎ;ó3s0s3[0ó3OpnÍÌ ÁÌ ¬õ³¿òvÈÛ!zû0@€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `@ ¢’¢’¢’"ªGT¨åååE›@×]˜saÎ…9]#ºFtªU3ª&m]w©þ¥ú—êG̘172%2%2EöHöHöˆ–îºúðêë#ŽE‹8y!òBä…Œ7o2ÞÐ2Ð]·ZÜjq«EÄëˆ×¯#""Ò Ò Ò hè®»î6ºÛèœñ9ãsÆ‘C"‡DIí—Ú/µ-@s€,¼où¾åû–¡ýCû‡öŸ0pÂÀ kÕªd ²J‹*-ª´hăF<8âtÄéˆÓkÿ×þ¯ýishÚÇ ,|ª×©^§zMöœì9ÙÓ¢…E ‹ªWuùiå§•Ÿ6¬à°‚à *z¨è¡¢/缜órmMûtðÓÁOÏŒ93æÌ˜?§ÿ9ýÏéÖO­ŸZ?U½ªËø”ñ)ãã[É·’o¥}Wö]Ùwåùˆç#ž Í¡i‰íÛ%¶;·íܶsÛf­Ÿµ~Öz»‘v#íFª^Õ%]Kº–t`9Àr€åîi»§ížß4¾i|SÚšöÅì‹Ù³ó‘ç#ÏGÎÝ5w×Ü]Ÿ>9|2Po+o+o«&;Lv˜<–=–=¦É¡qIU’ª$U¹xõâÕ‹Wl[°mÁ6—.\¨«ª{šõ4ëi¶uçÖ[wÆmÛ·•6]À€ìõÉ×'_Ÿ ¬X3°fÕ*U«T­bãJ›–6-mºtËÒ-K·<«ó¬Î³:¨âû;÷wîƒ6m ª½®öºÚë rÉBç…Î ŸX=±zbÅq*>„ÿœœœ`“d“d“”[U=çàœƒsÆý÷sÜϨ"ahÂЄ¡»Ëí.·»œ£¥£¥£enUõŒÂ3 Ï(|/ä^ȽŽ TñÅê‹Õ«&L˜4qmâÚÄ5·ªzrÃÉ '7Œu‰u‰uá¸@I/“^&½ I I IjáС…CnUõ8ÏqžãÉ>É>]Ÿv}Úõi]ܺ¸uqÓΪ¶yaóÂæ…PQ¨(TLïœÞ9½3‡ŠÝ.s»Ìí2½Wõ^Õ{•vVµù<óyæóŽ?züèñ´Òi¥ÓJsԠؽÑ÷FßísÈçÏ!í¬êÊ*o¨¼á`¥ƒ•VJ]º:u5G ŠÅ-[·ô5¬ùcvVu™…e–Y¸»Ýîv»Û}‹û÷-Ž£ÅžŽ~:úéèñmÆ·߯@‹· nÜJŒ¨9j¹…Ú‰yHô˜è1Ñc꬯³¾ÎúŒ¯êšD–‰1©ÞêjVjzÀêüû6%mýÂÒÚ׳_y6¢Ã÷;Ãk·ßbïPÿ6Om“×Îh–^gÙXÁnqõ«÷+Ïø±÷5Ž1Ž1Ž 6"l„lžlžlG¢kù®å»–ϱœc9Çr?V]VmËw4z>ìªM@µ‚+]›þjÕo¥Ö;mÃú{¦Ú9»¼ÃëÂw·¿eŸ|xœG ;»u®ë|Ð¥þìn2-\®§*­Ž¦M9š’q3ãfÆMŽ&D1cÇ4víàÚÁµÃÕU­~Æ ©P7 êà¦6ñ¶LÛW°u“z©B´çi{ϳý:Ä6ø'<®ýË?…ÌñØc7zý{·fÖ]ý^ÙOª‘ÚÄÛlxy[Uªú€Ý»vé1é1é1MˆîÙܳ¹gÓÖµ­kÛ|²Tï Mÿ®üÈí÷NÍíú´ïn5jÄÍKêöó+»j¶Íü)B`ÓÉ£×,².96yYÝÚOQ«êûö7<*çjíè°@•ªÞi¶Ól§Yšš“Và_q·ãnÇÝîú©ë§®?8˜sÉ€ò¶ÿ¨ìÕ¬_‡Æ5ôvûÀÊqDõùûëºN<±ªˆÍŒ) mjO^ºæ°µÍ¸îËö[ØùFÍô«6¸cwŸ;åRlÆ:Q¥ª7ÝÚtkÓ­Ô©R?p4!Š·ˆ·ˆ·èëÕ׫¯×ÕU‰eÏ”o^éZ“O£š3{U3Âê§?&Ì»Z·úÄž+—ÙL˜2sí[ÛÉûÖÜ·n?îär+‹±ƒÏšTíY§8ßKåwÛnoÔT•ª^»jíªµ«R~Iù%åŽ&@N"†v"†ž{vãÙg7<ï{Þ÷¼¯üɳÛ÷ªUMílÐr¢Í³gãúÔl\T&<ØÝ]]Ë·ô otàh›f¶+;,¨y½Riå·ÍqˆãÇ!÷ îÜ7àøæM¯«¾®úºje=–õX¦|帤šú—ÛlÞükÝÔ'ÓzmÔO½Uý±rÓ¦ãCºxÚùz-­mPyt6Bè}Vû¬öÅlˆÙ³ã›7½7zoôÞh`âÀĉÊWŽýÝŠOŒ‹n uogúè—^f.7Õ[Õ‰á&5kqìQÛ÷õm{O±t5=¯ü¶™­7[o¶þê•«W®^áøæMŸv|ÚñiLj´i#Ò”¯£ŽU.™Ïªí8ðÀ´iö,¬¹¿œ‹ËÆ/ªkéÜ}íΈruL\¶òNe÷fµÛËÆ¶ÙÙÙ_Xaý…õß¼éóƒÏ>?ðÛç·Ïo_6n_xYɳÊÉZû=žô þçù›÷VUsU'¬óœY÷á¤u~¦ÞÈnlv¶ØÙbg‹q|ó¦¤}Iû’öÍ*2«È¬"Ù¸}al¹Óîšë#›P½þ˜y»+¨·ªŽÞPñüb›?§¬ üÍlL«_º_ÏnU‡V ­Z‰ã 3€¡€¡œdN2§ A'‚N(uA³p‰–†ƒ·Ýk±Ò¦gÆ<ß8·õFÊ/FµÙn{Ë| ñŸ¥/(³å‹;,vHÛ“¶'m‡]ÏÝ–Ý–ÝÞÑkG¯½²ñtKE÷1u Ò&ù»MÊ­ª>ú­íªúùlΚ¤•y©Ì6ÿÕã¯õH=™z2õ$‡=/8°êÀªÙÞ9ÐÖµq)ëýê“[UúÝs¬½™Ó»ÊS”ÙæI¥&•šTê[ço¿1ìyžpÜ÷¸ïqßl $þ°oÿ‰ Î×®ŒÈ§ÞAù¥ûä—k«”s´.çÐO™m1`Ä€¾Ný:õëTŽx^~-üZø5嫺æ¶^ÿŒ-ìôWÀ¯áGr«ªëÕžv|}Tù×v¾•š±u@ë­´N¬—X/±G®hý¾õûÖïŸ [T/7ÛÈ7Ò²ã‡ú²_ÿî^,·‚„,–iƒ}ÝÝ®Ùw]ï4©I!³6å++ÞëiÖÓ¬§½ØðbË Ô€þùÜås—Ï]¼Þz½õz«¸L=Œ&—ü~©ýc{Y†‰oˆÛ]-ªjÙàÁîî·wëîìߺxõÂüÇÓ“EÌŠ˜y2øÉà'ƒ©ý“´.i]ÒºC8ô?nЩSÂËpôÉríN×IÿÙ×Ãm¶UõÝ6=ò5ôïtÃ|W¥€ÿxZȧ¤OIŸûGï½”Ð?)óSæ§Ì5bÔˆQJ=}XçüØ"Kó5º¡Ðù¹$H-íîß¡RåFó=Z)³/1þ1þ1 ­‡Ò~Mû5í×)ÉS’§$+5žÇÜ‘e¼jXq}é(m«ê=ÿ.}èQånf”šåÊÃ+¯<¤ôOº,]–.óÿÉÿ'ÿŸ”©ËCSæ8GÊÎÝжªv(±´Ó‘sfZ-é1S™}‰ ‰ ‰ ¡4Ú‰zâÎ…;î(õÔì±mCëi[„ xynMÇ¥”Ù»ènÑÝ¢»QúáQÍG5ÕTjÎQÇ6¥l'éVU_<Ú9Áq|ùe¥º•Ø©xïδ8ÓâL êA?|zЉ²DY¢¬yXó°æaÿñüzBï©ãlÎÞÐãü]©ê :Ô·üÛãºþÇH*}ûö¡Ô‹Ú‰:/Ò-Ò-ÒMñ‰î˜[vöÕ×~ý2p·k~ÝŠ2/¿tÍ­­ÿ8ççµ]ïïáîNmè®+®t¸ÒAñQö}Q·ZU³ÄYú7sÔݪN¿ì»Ú-jYÍÆ3-Ç)ÞßSvNÙ9…ÚÐ]111Šr¯¿-Þ™.ûð ᦃt·ªe΃MÝË­Ý,¹ÎbÅûT0¨`PAjCw=|ø PñQ69jÿ¹Ù Ç:ÿÄœl­+ABK§«/ž²òÓ_†Š÷÷Ÿ„þI 6t×Ó»Oï>½«ø(—ëe=×ᣃ×2ë£u¸ª]6n¼xÑÊqDõùïï¼fóšÍk&û$û$ûD…è¢WS^My5Ũ„Q £RG¹LLÍÅu‚ û»Õ᪺^Õu¢Æþ¶D¦¸ª§|Ÿò}Êwqâ$*@uÀÐNÀÐaaÑaÑaÑŠOnOvi[ÿ¬ Ëè×::ÿG`»3vg,u¢[¢žG=z®øÈ|×&ÄöþUõõ^5®üG`ö[ÐoA¿Q'ºåZûkí¯µÿþêç–mîê_Uß1í¾¤áܲóOÀ?ÿP'ºåN±;ÅîS|dkÇŠœa¥ëABOO[Tâ@ ÃØÒ»Ê´–Úwÿ™þ3ýgR'ºå‘É#“G&ÿ1_uzß ~ã\n\1JŸªºAÔߥöT\kvCjß'GNŽœ)‹’EÉ¢¨]ñ|ÒóIÏ'ýÇ̾²ÓGuw©¸ÑùbK}ªj‡°å£Ï(3´FcËoRûþ‡Ï>ødÄgÄgÄS-ª †v"†NŠ*U<ª¸â“ùGs{upù¤qBæå›š}›7éZ³qñÒ³¥ÚáÐÈC#¤f´ßÕóWÏ_=¯¸ªïïñ{ÿõ»ª?ìë—Ü´—ýŠeÓ¤Úaû‚í ¶/ f´_lTlTl”⪾qÉëgý®êÄ}Æ6suoWµ™‰ä“ýïß¾£f´ß£¢Š>*ª¸ªm+ÏÝ´Cÿ¢ßÌKçnkwDWpvXå¶^ª–,_²|ÉrjFû=_ó|Íó5Š«Úf唸ÀÁz^Õo×ô­ô ÉÏ–Rí0kƬ³fP3Úïí°·ÃÞS\ÕÖ ­8¦ßUݰßú÷çÛšy·Œî.9Oð¸q!ãBdÏdÏdϨ€C íD s7înÜÝ8©Ó×ê¿•mTºÐ‡nýb›¶Ôï8!ó2©ïÀ[®åÜÝ«66ñ”j™  .P?ÚéI¥'•žT’:v¥¾>5¬ýzxßM,óNU§LñIs½Üy¸ù³J¡R-sê¯Sú‹úÑN/_¾ü¡qã_öþÜè}Þ©êïéƒÞºõîÿ±Në*?IµIˆmˆmˆ-õ£Þw~ßù}gÅUm¿}áÃõ;NøŸhávP÷èjfZ÷èé/ù|å•wV¦~´SbëÄÖ‰­ = = =¤Ž`ýžþQ»Nåªv1ÚXåbÍjC;zûHÎê½¾åú–ë[R?Ú)ijÒÔ¤©U©úKÕ_$oÓIü«Spþµ¤=Rš¤4IiR}aõ…ÕJµW½CgäͪÎë{Ûíý@ç:QUÚJµOÌݘ»1w©%í‘f›f›fÛàNƒ; îHµ«þ¾vøzŠ2/-7½8»JÝ6={I~O»\ürñËÅ©%í‘á™á™áÙªk«®­ºJÞÐÐvÁ™}+óhU»lÜxñbµK–ù‘jŸ³kÏ®=»–ZÒ"ËeËeË{îQ¸Ga©£f?·ÕŽy¹ªkºõì5z‚Tûïv¼Ûñn”@vC;C͕̕Íõ4ö4ö4–:Y}ÿªßž¦Öy3NøŸ§ üìjQ+¢\£,ÚªvríäÚÉß¿'~O¤¬´÷ ïÞ/$C²áÞ›¦ªS ²r}ç<ªòªreä[©ìæ²›Ënþó-æ[ ¥ FÞyä}©ª~jß»C£…TuÚ*ߪn3<ºW¯ðZª­¾Ä~‰ýÂ<îZazÍé5§×” É,ôØg˜—ㄟN :½¢br£"m¶IµÕÇäÉ“©(m°øÄâ‹OH†d‡çÙQŠªv©µ±ïE?Ó÷-¼½öKµÕ»7voì¨(m84ph ä°¶efmšMU‹Ëªaí]T–£eiüÒø¥T€ò€¡€¡¶–ØZbk ©Ô¸Ê=/¹l Nȼ|Û¼ïÁ&«¥Zlž÷<ïyÞÔUî:0ïÀ¼ó¤ŽÑm¯n/œRÉ™—Ÿ‚ûlzEªÅ&Õ˜TcR ê*w F‚‘`$ùüß™.‡ßQÉ™—_ílv[æ]¾Å†R`Hê*wE:uTrVÔˆ©cÖU!HøŸYTŸ­ëéQjWÅfä[Ì+Ñ+Ñ+Q–!ËeP]¹åúðëï—œõÊ׿TòÿÜÜ0aƒÕùMe­Ì·Ö-&ßbîIîIîI2?™ŸÌêÊ-÷Ükp¯TU[í¹záb*ùªúYÐìè^åçÙ6p9˜EXn`k`kQ8£pFaª @ÀêrdGöŠm8gûœís¶lñ±ÅÇ´Ì!†V{9ö娗c¥NæoW¿6‚ÔòRR_Ç0©Ö‹½{7–!FsÁû›ïo¾—$sO—VëP½R˘ëÝ;KVõ•À+W©±œ÷Ùå³Ëg©ã²ÑĽ¤õmªWjùðVÏý.‹¥Z/bHĈ!ÔXÎK>”|(ùÔq1Ÿàm6¡#‚ÔÒá÷¥ì’bÔõ¸ëqWj,ç}·ýnûݶ´Ci‡ÒòÇ¥ú…®†¤z¥–ŽÍV\/ùý­ÖžZ{jQc9/ýtúéôÓæïÍß›¿—?.UÛ ÞϨ^©¥S‡ÕCN½’ªê rAå‚ÊQcÊ VÃwûéÒ;H};% þ1ÀÐj^³½f{Í–ÿÀÿ1¶^ýjˆ ”Y.êèbÑ+‹ç–ŒmŒmŒe¿Ë~—ýN¥å¤!.C\†d•õÚlñÙt«Ìrm¿f‰uæË·aŸ >|Ò­Ò­Ò­¨´œ4)uRê¤Tù#ÒúeõnVÈnänAÝ*^nŸÓâ¶ÍL©¯¹©S;¦v¤ÒrÒücóÍ?&,ʤ›µnÕðeÐâèÁ„Š—uÎŒIYòFªª“ü’ü’xb2GøøøÉ‹R,+§6œ´¡Áù}Ô­âeÝ“nœ–ªê„M ›6Qi9i›Ó6§mNYŒæ§ œŸ®óŠt£n/ë}˜aºñ‰TU¿½òöÊÛ+T€bÀªËüì¯b„ÁÊ#†–ºZéj¥«•¤>䟧 8Ýl 2Ëï=íss4ò(Ñß0‹K~Ç‹/r¼õ–3³þŽä³#*÷;ÝÔ™ŠUf™~ßw[t­¯åJU•oÉÝwOÜ=‘zËOÊ>)û¤¬TU¿¼â=¨ñU*V©å ÁÖîU]¶›)·J¾%×Ç­[G½åŒW ^-xµ@ªªÔY<ïPm%—A£M6Ûnf-ß’K.i¸¤!õ–3>$Hþ,UÕõ×Ì›¿û«ü²²AÓ?Û——oÉé+§¯œ¾’zË_z}éõ¥—䌿1³’·Î§V•_Vñhs¤wsù–ñzÄ믩7Å€U'ºb¸k 4Â`Å€¡…gó²/²/qqqòéCžmîÛ~&*ÈîòBzgGÉy”Ó-Ó-Ó-)=Mó¸áqÃã†|ûOmQʦ(UšÝåÍX¯oÎm$Ÿ˜¬‘Z#•Y5Îûˆ÷ï#òí¿zwÓV¨Òì.êéêâ!ùÄä¯I¿&ýJÕiÚè…£Ž^(ßþ5fvKÑ› »ËÉKÒt‘ªêO>=øô€ªÓ´Yfu˜•ÅPZU'xz÷ÏO•f{8èV+j”œüÍ®7»Þì¢ê4mùoË[þ›|û›:»×íG•f{8èa«CÃ%Ü‹?,~U …X½ƒÕ…Zç†é Ó¦YœÌ/2Z^ª`ÆTß»n ~lÙêvµÏºÊ·íÉÄ“‰'©=͹¿úþêû«¥þ8¥5ðÍï6Œúü±e¯g–ELƒå[uŸÃ>‡}Ôžæ<+ú¬è³¢RUýí½O”ëêóÇ–#â몖E´°Ñw£ïF_jOsÞú¾õ}ë+UÕÎE×=ó„àÇ–Õ":ùù¶’oÕeÓ—M_6ÚÓœ„Í ›6KUµÓÏ«üÂRŸ?¶¬y£·ÉØ,úê™3fΘ9ƒÚÓœ¤ð¤ð¤p©ªv¸¸|íñ#Ôç-kïd<½|«Ž:j訡Ô€`Í! V0´Ž×k¯×^¯å?´áEÛØß$Pe3µÛ ç]òm['µNjTYš,M–FjÂÐCC =”Åí‡<òÙýJeª²Œ[Ö3Éå¸|Ûß2¾e|KÖDÖDÖ„ Ô„©½§öžÚ;‹'Ú›6Ϩ+£2UY¾XÒçSã¹’c6ôMï›Þ— Ô„Eo½Y”Åœµµ,úõždG0 Ò“{VöZKŽÙÐ=µ{jw*PÖu]×u]7ÿÕ¨íõlx•©Ò“^ŸŽ•³Á2É2‰ñu4bWð®à]YÜüWåsÛpïWT¦*KçCçfKŽÙpïÓ½O÷¨@yÀ9ƒ08»€¡E>”ÿPþCyÉKÞa¾ËÜ"T_ÚíªhXöoùŽ»w!îu¨^_òÉÿ%¿ä%ïƒæ¸™R“jxºÝ§Ú… .ò-Ó+¦WL/êP½¾øvâÛ ©ªN.àcàêBMª¾ì]À²ŒénùŽŽˆŽˆŽ Õ+Í-Í-ÍMò)Éù¯ ¨¾4 jµ¬Ç_ò-–––AªWÆ–Œ-[¤ªÚ±ûŠ>' €Õñt{rg“ÁYœ¿üýàï§Õ,V+‹500ÈbŽöÏK>iAMª¾4/Û;y\ÓÖl~·ùÝæw”!€<àœG¬ `h‘àzÁõ‚ëÉ,7só´îC ®å‰µí–ÕÏb8â9#猜3’:T¯ÃÍ7?Ü\¾µÿþ»Ñ|‹GT£º–‘Û;wh/ßÎcÏŒ=3ö u¨^§kž®yº¦|kO{ãàenB5ªkyýo¯ŠNçåÛ¹_~ú ÕëRì¥ØKY<ÉgšÒb¶×#Âu-íë,ðÞWF¾ÛÖh[£-³¶«Yl‡Ø±YÌèY±SÃB­ŠRj›å:vÉê›Y D\É¡’C%êP½<x ßÚåÆ[Ç:v¦Õ6fƒûŠŠ'wÈ·³Ùk³×f¯eɲdY2Õpî" –B -R¯M½6õÚÈßÍìW£É£œ¼ìþÏÉ&¬~ßý¾GS ¿«²¶è^G:Öì¥N#³4ó‰ÆsJ_.R¢–aךs-J¯ê÷Ðê¹Ù¹ó“; 'sfï’útpõ‘êø2¾f|ÍøJ5ªK‹7-Þ´Èb@Ñç5ú ilGU«kù}ΠSnÍ$gYO O §եׄ^zMoçz6tiAU«k™aåêöPªªS:¤tHé@5ªËÈè‘Ñ#£åÛÙnéœÛçhd˜Í‹ë ν¬Y½GÚ¨T›úíšô/ý§©uõê†KŸ+3¼las+ëq߸Pü.–‰4™7/óÏ—oUo\ÃZ3úûN^h3uçº!â‹ÿ?óOZUþãæ|7½`áÌý‹äÛÜï¦ßM¿›Ô¤êÞu}×õ]Wù®pÒ©jóõTµ&–õ—Fí&ßæ>Ñ>Ñ>ÑÔ¤êO'žN<-ßÂÆ;­:Ù—¥ª52ô–•-„,¦üè0­Ã´Ó¨I€Ì€µ_Þ ƒ €¡fýuö×,µëYÚÅZ—Ô_雯‰ÅŽ--mŽNOq41_nó¸B¡2$ŸlS~(ÚÖƒv¸Õ¯¾µ¬_é/ÙûY·©²A -¤ Ü_çs•ÁÿÞÙ½µ¬_éZâz4*¼;ÐÏ¡Ékù-ñ.á]»5©º•i+ÓV¦É·ð^íœ^PÕšX~.2`e³,.¿¶¶km×ÚŽšT]phphp¨| GîîdàЪÖÄò›©Ïd×?³šØÀÎÀ΀šT]ˆmˆmˆ­| [GN¨½âW5?M5`ô¿ÿçÆKŸaóçvÿU>0ÿOµu3íÿÛhPÕ"æ·$C‹.ë#ÏW(5¸ÂYÓ“ÿ>‹vÜuEÇ‹â³h’Ï«-p-Ðñß'éÅß×£¹P¡á„ –ç7fOn­°µÂVjRugžxf | [•ýãøüªTµFªúkÐÉèÍ’›–É–É–Q™ª¸ÒöJÛ+måÛ¶ví3§5¥ª5²´Û8ûâ6©íIOO§2DÀº%ï„ÁÀÐ Ž—/;^ÎbŽCKŸG®yVrÓ÷ãu•ÿx+¿æ#kÛ–¶; þVÉ›† Þ¼kدh“«Š×“ùçUÎT©Ù%Sr/"¹¿÷e÷e÷©LUx†z†zf•}é5°T³­TµF–ŸtoVâ€áoYüñÎÌ̤2U1Ð{ ÷@ï,æ8tíwµ©U­¹e­}Æ©F¥²˜ßÚ0Í0ÍÊTÅÄOLÌâ¹v‡ÁË|ŽÕPïÅôê]º4òï0õâÌŽÊ Ú`ãß§üßÊþßfò?i]q\¹e}þýÉ %º•,à8rÅ–ÐΊŸEËüóÊ?»¦úÒøoKYý]ò-ÿÍù›ó7g*SóÏÏ??ÿ¼|ÛÚŸZTã@?ªZsË ûœò7Ïb€âÏå?—ÿÌH$*Y»`킵 ²¸êöÜÊ;ÖQÕš[š.mîÜÕ^¾åßí·ÿÝ~*@D¬»ô; &†–v‘”[²‹æ.¦ß:Ú­µóŸK 5:j‘*¿T%TõÖvFu ñ·:0ϨtQù5d~ÇÑlïU×øð×mU÷«°C~“o&ßLfF5Wõ¿•px°‡»U­¹e_s«ffýå÷7qQâ¢ÄET¦**®tºR0fÔñ u{HUkn9ö¼ÝÒê7ä÷÷mêÛÔ·©T¦*ì[Ù·²o•Å<©Ý×ßúP™ê­j›9&ÏËÜ¥ª5½§[SšÇ×ý(¿¿1cbÆÄŒ¡2Õ[Õ%*Í);PÓ—Ô³)uèw{ÒµÌÏ¢IEå–Öµp<+þk­‡Ný9ﲯê”–ÿÎCibóÔù›¦÷«Nؘ·KbåÛ?ºAtƒèT¦* W®2\•Ee±qðÅ™Tµæ–6žS ­õoya·°[ØMeªÂü›ù7óoYܬó hX´3U­¹¥íæYݶ„É·ü¾«û®î»JeH][ ÖuúCK»HÿãβÚu1T¨±²ìÒ}Åß:Ûf¯m¬ò¿{àE›N¶ÿÞn>ÑxNéËš\tÇÌ–¶6'³.Æ\Œ¹Heª·ªÇ÷¬_³†%U­éª>ú¡ír»Œ,B…eÑË¢™OÍUÝo¯Õ-³“Tµ¦«úÜoÇ6ø"¿¿a… …¢2Õ[ÕåßÙiÜ<çÃûž >í»n{sVâÖYâ¡f-«wÛ÷?³]~”2c¤T¨PjUÅÎfÅç°ÌF[tãÅûÿ.¾TšT%AÓƒ‹ÚÕšýSð3ùößo¾ß|¿9•©Þª.³±Æ«Tµ¦«ÚÞjAŸ}Fò픔ĕj®ê’¥W˜t¥ª5]Õ —|8ÒT¾ý—Œ_2~Éx*@êû*°>ÑÝ0˜ZÚEnöt^·³.† å»—r-ñï¬Q‘k:ýêÐVùßþßÁœK}+ù›¦C…S)í—Ù_•ßßsAç‚ÎQ™ê­êåùß° ¦ª5]Õ—:v©í ¿¿Çf›}l6•©ÞªžÑ˱‰ùNªZÓUÛ­»{Ã2òû»³ôÎÒ;KS™ê­j3‡–Ýžä|¨PúY§ä·ÇpV©¥¿Xþ6Ôgö}Åk(álô¦ì ñ·êÙL»º>^ùwþßg Ê+×Gã¡BËÅ÷­ßß5×t\Ó‘ÊToUWlß0_«‚Tµ¦«ÚáÅò„Uå÷wžó<çyÌl­æª.g^ç¹CªZÓUíÔtµã©,ækcüñ7¨L©ï«ÀúJ·Âà|Úó‘2;Û¦­í:] JÞ4œ`ðæßçh·wÛê¢üïŠ?ÿï]í™Ö£¹=½˜Þ¥ˆãê-glŠr?T·>U­ñ¨¬Dw‹†…¨·œ±l@ãÕ–3©jMWõã[½®4r¢ÞrF5¡S?_ í 2«û~Òµ€“’sC^(Ñ­dñ'ë—›°s§òï.þü¿o“i=ŒÊâ–ÇœÈO½å ³-nus§ª5•9¯®vêoê-gT¬áìײ U­éªvöZQšzTwdGöGv´-gwXׇ=?¹“àÁQÏíè¸ß¡¬ø»Õ—­TêKvß=»Ë«ï»ÎtB½åŒí¿¶ØnãCUkºªï-íá×ð:õ–3V—nzÔê"U­éªŽÜûS£·Ô[ΨþÆËxXrnÍ"Ùpö¯ówd,-yd”õŽñ×ÿùÇĦ~»&ý3o¡Ôc™‡­÷÷ŸŸƒzd㩲‚Óœ×W·”c…º•ÿý®®¹=uì½bpè¯Ô[Ψҹ͕Þ>Tµ¦«ÚikÀèÓ ©·œQéÏÆ!m/QÕš®jçÝ{ÎùRo€êR÷¤îIÝC èðÀLLW”; þÖáã}í\•ÿ]qJñw3¯‡'€õƒî>¬[UÍÀ9IwŸÖ­ªæ àœ”[OK>+f````P¡…C¨Û•ÌÛ)ÿ“Æ-ÖÚ>ÿµÎé1IK^dc^É£oü=\üÝÌëá `ý[O絪æ àœ”[O絪æ `@]òÐÀâè¼x‰/ùƒîÎÜuY­•ˆ¿µ¡´[koåw}U×oÖµÄßõšU»HåÙ}wuͼÚyµójg*S½U­»sëVUKͼxÐâA‹Q™ê­jÝX·ªZjàYÿÌúgÖ?T¦z«:·æV&ZI=õUá¦ÓèÿîQíU>1fã9æÚ¾>Íþtü7V)àüs‹pM‡ RsO83áÌ„3T¦z«:·æÎkU-5ð„! C¨LõVun͜תZjà^f½Ìz™Q™¼xñâÅ‹/^RßWWý²ê—U¿Ð2ú÷::é褣“\`på£_ñçóÐÀ€â'Âý;ËjwÔÅPaÌe;Ûêÿ†O}Œ-ÿ4}§üïö6·¬fúï¼’cÃìW¿ªéPaÇÌ–¶6'å÷7æbÌŘ‹T¦z«z|Ïú5kXRÕš®ê£Ú.·ËßßèeÑË¢—Q™ê­ê~{­n™¤ª5]Õç~ë8¶Áùý +V(¬•©Þª.ÿÎnLãæjîxÃÊúB‰ÌïRûË ”#•_ƒm‹™N›=Äß-U6¨|yù‹þUš¶YÞÛXüÿ•Üôx©üú+•m4Ê£¶ø»UFyTë}[Ó¡‚]­Ù??“oÿýæûÍ÷›S™ê­ê2k¼±ºAUkºªí­ôÙg$ßþA)A)A)T¦z«ºdiã&]©j߬“¸äѦòí¿dü’ñKÆS™RßWŰ–Ñbp;gûœís¶+úŠ?Ÿó¡ofÀÐÒ.²·£emÓãº*YÛ¶´Ý¿Ã–YU"ÎðlâÍ3šµQü[Ÿ#Üo6SüyñwMm{¾~EMïé_Gœ¦×*¿¿/S^¦¼äB•š«ºe¡jî&©jMïé Y“OVå÷÷QŸG}õ¡2Õ[Õ6sLž—¹KUkzO·¦4¯û1‹›uÆÄŒ‰Ceª·ªKT0šSv ¦Ÿ 35r;ÞÙ5O}ý>°âÔ3ÿFÔÛlYÉ_ô·®8®Ü²>âÿ7œUjcé/N!›OOù§»âרq^ü]ëÉã-¿£éçäê„y»$6‹›uD7ˆn@eªÂp•á*ÃUòmëb±qðÅ™Tµæ–6žS ­õoya·°[ØMeªÂü›ù7óoòmÛðAаhgªZsKÛͳºm “où}W÷]Ýw•ʺ¶@¬ët7ôÍŒZÚEV\PzlÉ.º*|›è³Öuy͹Æ¥W)¿†é)Ž&æËÅŸ¬åküب`j÷Aí\ešÞÓ6ªûUØ!¿¿É7“o&ߤ2Õ[ÕÿVÂáÁîvTµæ–}Í­š™õ—ßßÄE‰‹Q™ª¨tºÒéJ§åÛ6£Žo¨ÛCªZs˱çí–V¿!¿¿oSߦ¾M¥2Uaßʾ•}«,B…îëož·Ô\¨`°Ö0²„[½¿ÿüÔã?•í¾Ìþè›R¿›l¨üï3XÕkvüD>Tp¾¸ÎàÜËRç*¾ªbû?±ŸÂõW»Øi‰¯¯ø“¥Í*ÿ^uOÚëm£¼5*TOõj9ÜN¾åŸ?3~fLeªÂcŽÇ9òmë¼$°sDU­¹e­&ý6Lš'ßò÷^ß{}ï5•©Š~cûí7V¾mæ¨jÍ--[ ³˜sO¾å¯ »6ìÚ0*@ê:0°.ÒÐ73`hÇËŽ—/ËxR,}¹†êV¨ µ†?jÔ+W­C˜™çSû/VõùÜxÞÉvíbêŸÚÙ¦hÕ}™rw“VŽõºkz@ÑŒ”Á…Ü‹H†”÷e÷e÷©LUx†z†z†Ê·í—^K5ÛJUkdùyð@÷f%þfÅéŒÀŒÀŒ@*S½zô–oÛ®ý®6u£ª5·¬µÏ8Õ¨”üÖ¦¦¦R™ª˜xb≉'äÛÖað2Ÿc5Ô{½þõù{ —>Wfxæ÷ªr¹mKïvu–°Ä\>T|>¬z—.͇¬Ë<ˆ¨8£¤8H©RÑ…8«±EËêÝöÕ]ê·kuS1¢¨ûË„¯+‹šnl>¢«_柴ªüÇÍùnšPT\ÿm)«ŸÅ¼’ßœ¿9s¦2U1ÿüüóóÏË·­ý©E5ô£ª5·¬°Ï)óQò[û¹üçòŸËS™ªX»`킵 äÛÖîöÜÊ;ÖQÕš[š.mîÜÕ^~kßí·ÿÝ~*@D¬»ô/ôÍŒZaö×Ù_g•ÿ =°ëYÚÅZCq9ë’“y­úÊt†ù †¸Ïï×p]íC9³ïôshòZ~K¼Kx—ð.AMªneÚÊ´•iò-|£„W;§Tµ&–Ÿ‹ XÙ¬›ü–´¶km×ÚŽšT]phphp·5DîîdàЪÖÄò›©Ïd×?³¸äm`g`g@Mª.Ä6Ä6ÄV¾…­#'Ô^ñ«æ‚.P¶X¹>ÊŸZW´Xkû¨~Ù¹ ;w*sÑ_ $”Zµ‹Á&ƒK5ÖvwqNÓA‚¸l8aƒåùòRak…­¶R“ª;3ðÌÀ3å[تìÇçW¥ª5RÕ_ƒNFo–¼±r™l™l•©Š+m¯´½ÒV¾mk×8sZSªZ#K»³/n“Úœôøôøôx*@D¬[ô;ôÍŒZ!Ò0Ò0ÒPþCµÁÄ­³u?Ý Äå™Û67Û«ÅEÓ?k¬,{£tßÒ!%jvÿ»±åŸ¦ï"×túÕ¡mNîãÉ]í’ëß–ßÓ]=võØÕƒšTÝõ¹×ç^Ÿ+ß‹“u°¥ª5±<_ºÓ*‡-ò{X>°| OÞ¨Áý÷OÜÏâYÉ©ËÜ©y…ªÖÄòf¯pçZò{º `AÀ‚jRuÏv>Ûùl§| ›.n^¯«…æ.¬ÿ;@h—.͇¬+{ºö„z>%;”ëRÁÓð@ézFûËÜ«XçXÅ“.­Zú ›?·“‹ÁÆâ‹g÷y/¿)sÖ&T|ãò¨Í¥VUìl6ѰzÉ©¥&‹ÿ]ɽqA—õl¦]]ŸCq‚ËÆ/Ú/X8sÿ"ù6÷»éwÓé'Ôà]×w]ßuÍ"b?éTµùzªZK‡úK#fq šO´O´O45©ºÄÓ‰§³˜„Âx§U'û²Tµ&–Ž[V¶jÊ·y‡i¦u˜FMdF¬ýòNè›0´BBjBjBªü¬~lÅeoæÖLÀ™M¯'gͼô>mebÖZ¾Íã÷ÆïßKMª.¹Yr³äfò-\¹¨QÁ’{ÄÁŠ©jõ.Ç<±sªžÅS÷vÝÛuo5©ºïß=¾{H>áôÓà"îE©jõ.gowºWkSsï ¾6øÚ`jRue3Êf”•ªê†[6ºk:ZP¨>ȧ¦×ŸÝ¥ù“¾#ý dqzü:âuó¤ªC°,X,YÕùÖ £ªÕ»´¸5$lvU}¬Ö±ZÇjQ’êRmTµQÕ²dÛÙtMÒYªZ½Ë:‹Æ´_’Å-Ú;-wZî´¤2#ÖNy3ôÍŒZ¤^›zmêµÉb†¡™ýj4y”»1°>-“útpõ‘êà2¾f|ÍøJ5ªK‹7-Þ´x#ßÎÏkôÒØŽjT×òûœA§ÜšIUuZxZxZ8Õ¨.½&ôšÐkBƒöoèÙÐ¥Õ¨¶™Ú­|CÝJUuJ‡”)¨Fu=2zdtCm/Óbûœœ¼à®çKËÃ.Î-QÆhLÙ,¾ï}Ùõe×nÖQ›™Ïf>›ùL¾ëùý¹7¨Õ¨Þ¥ÑèªVµ²€?\üpñÃEªQ]–G.\)ßÎukLìµr9u¨Þe¹åuë9^’oí—_|yjÈŒX{úfF -\/¸^p½,‚.ææi݇0@]ËkÛ-«¿:‹nn䜑sFR‡êu¸ùáæ‡›Ë·öß7šoñˆjT×2r{§âíåÛyì™±gÆž¡ÕëtÍÓ5Og1$à´7^æ&T£º–×ÿöªèt^¾ûèW _êP½.Å^н›Å@Ð)-f{="PÛàÏuxï+#ßÎmk´­Ñ¶u¨^±b;ÄvoíŠjU”jTײAì’Õ!7åÛÙ¡’C%‡JÔ¡z=xð8@¾µË·ŽuìL5ªmðg÷Oîog³×f¯Í^Ë’eɲdª 3àÜEè+…ZäCùå?”—ú@¦‡ù.s‹ P}i·«¢aÙ¿å[8îBÜ…¸ Ô¡z}Éÿ%ÿ—üRUúqÐ7SjRõe+Ÿj*¸È·pL¯˜^1½¨CõúvâÛ‰o'¤ª:¹€« 5©ú²wË2¦»å[8:":":‚:T¯4·4·47©ªvšP!ü*‘€êK³ VËzü%ßÂaaaÔ¡zelÉØ’±Eªª»¯ès2šT}Y-¹³Éà,Î_þ~ð÷ƒ¿S‡j+‹•ÅšF˜F˜FÈ·yƒÏK>iAMªa þ²½“ÇÝoáÍï6¿ÛüŽ2Gœó}•A ­ãõÚëµ×kùgxÑöö7‰TYÆLí¶Ây—|ÛÖI­“Z'U–&K“¥Qš0ôÐÐCCÉ·ü¡Cùì~¥2UYÆ-ë™är\¾moß2¾%k"k"kBjÂÔÞS{Oí-ßòÁM›gÔ•Q™ª,_,éó©ñ\ÉÛ¡ú¦÷MïKj¢7‹Þ,ÊbÐþZýzO²#Péy²=+û ­%o‡êžÚ=µ;¨ 뺮뺮«|›×¨íõl8°JK§‹¯OÇJUu’e’eó¤jÄ®à]Á»²˜åºÊç¶áÞ¯¨LU–·#ÎÍ–ªêO÷>Ýût Gœ3}³‹Zç†é Ó¦Y øÈhy©‚S}ïº}$øÁ§$oWû\!‹‹€'O&žL¤ö4çþêû«ï¯–œ¡¶o~·aÔç-{=³,bšÅEÀ}ûö9P{šó¬è³¢ÏŠJUõ·÷>Q®{¨Ï[Žˆ¯wªÚQùVÝè»Ñw£/µ§9o}ßú¾õ•ªjç¢kŽžyB<ðƒOIFtòóm%ߪ˦/›¾l:µ§9 ›6'l–|ºýçU~a©Ï[Ö¼ÑÛdl}õÌ3gÌœAíiNRxRxR¸TU;\\¾öøêóÇ–µ÷ 2žÞN¾UG 5tÔPj@ °æúª‚Úç‹ì‹ì‹CœCœC\OLz¶¹oû™x »Ë é=KH>Of™n™Î3 çqÃã†GéOmQʦ(UšÝåÍX¯oÎm$Ÿ'«‘Z#•%5Îûˆ÷ï#òí¿zwÓV¨Òì.êéêâ!ù<Ù¯I¿&ýJÕiÚè…£Ž^˜Å“3»%èM<íR“—¤é"ù<ÙƒO>= ê4mV‡Yfe1pÕ žÞýóS¥Ù~¢½ÕŠZ'JUõ›]ov½ÙEÕiÚòß–ÿ¶ü·,nvv¯Û9Ž*ÍöíÃV‡†wªêøañÃâ‡QuR€Õ‹ÐW]€¡¥®VºZéj%©óçiN7CT Ìò{ÏAûÜn}õ–3^-xµàÕ©ªnPgñ¼Cµ‰ ”\]Œ6Ùl¸™µ|K.i¸¤á’†Ô[Îøü!ùC²TU×_3oþîT¬òËÊMÿlŸÅ¼¿ÓWN_9}%õ–3¾ôúÒëK/©ª¶™•¼u>µªü²ŠG›#½›Ë·äˆ×#^xM½(F¬:B_M †Vóší5Û+‹Yˆþ[¯~µÊ,ut ±Èâ∱±±ìwÙï²ß©´œ4ÄeˆËù#Òk³ÅgÓUT¬2˵ýš%Ö™/߆|*øTðI·J·J·¢ÒrÒ¤ÔI©“RåHë—Õ»UX![<¸‘»u«x¹}N‹Û63%Ÿhï˜Ú1µ#•–“æ›lþ1ùcQ&ݼ¨u«†/ƒG&0P¼¬sfLÊ’7’O´û%ù%ùQi9)À/À/ ‹ÛK9T°¬œÚpÒ†ç÷Q·Š—u?NºpZªª6%lJØD¥å¤mNÛœ¶9eq0šœ2Hp~ºÎ+ÒºU¼¬÷a†éÆ'RUýöÊÛ+o¯PiŠ«îÈÞ#{ì%ôU/`hµ—c_Ž}9Vê£~ìxÛ¸úµ‰ ¤–—’ºø:†Iµ^ìÝØ»±w©±œ÷þæû›ïoJ—=]Zm¬@õJ-c®w;ì,YÕW¯^ ¤ÆrÞg—Ï.Ÿ]¤ŽËF÷’Ö·©^©åÃ[=÷»,–j½ˆ!C"†Pc9/ùPò¡äCRÇÅ|‚·Ù„ŽÄRK‡ß—6>²KªõŽ»w=îJå¼ï¶ßm¿Û–v(íPÚAþ¸T¿ÐõÀ°‘T¯ä°ÏÍV”ÇeO­=µöÔ¢Ær^úéôÓé§Íß›¿7/\ª$¶¼ŸQ½’Ã>wX=äÔ+©ª*T.¨5  `5|·ïÞ!½¡¯zCl-±µÄVÉùkã*÷¼ä²!óòm󾛬–j±yÞó¼çySW¹ëÀ¼óÌ“:F·½º½p~H%g^~ î°é©›TcRIÌø›Ë#ÁH0’:F—Ït9ìøŽJμüj?p`³Û¥¾>5¬-ßbC )0¤u•»¢ŽF’œéÓ&bê˜uUˆ2/Ÿ­ëéQjWÅfä[Ì+Ñ+Ñ+Q–!ËeP]¹åúðëï—ªjë+\W˜SÉ™— 'l°:¿©¬•ùÖºÅä[Ì=É=É=Iæ'ó“ñD{®¹×à^ƒ{ ¤ªÚjÿÈÕ SÉÿSÕÏ‚fG÷*?϶ËÁ,Ð6°5°5È(œQ8£0Õ  `uÉü0¡¯ê€¡ æÊæÊæz{{KØ¿ÕoOSkℤC?»ZÔŠ(WÀ(‹¶ª\;¹vò÷Äï‰ß)+màýÂû…÷ ©ª~5Ü{SãÏTujAV®ïœGU^U®Œ|+•Ý\vsÙÍßb¾Å|‹¡¢´ÁÈû#ï¼/UÕOí{wh´ªN[å[Õm†G÷êñ^KµÕ—Ø/±_b©(m0½æôšÓkJ){Ë=ö'4L :½¢br£"m¶IµÕÇäÉ“©(m°øÄâ‹OH)»ÃsŽì(EU»ÔÚØ÷¢ŸéûÞ^û¥ÚêÝ»7vT”684p¨ä¬ÀefmšMU‹Ëªaí]T–j«ø¥ñKã—RQÊ#†v"†ÎøtóÓÍO’çV›S¶X©×‰Ë næ’7ã„”+ƒÊ»>v¯:ÜDòÂÇó_žÿòüjI{|ÿuü×ñ%G•Ur”üñ*o8ÅàýûÄ~û›ÚäÑl²o9·É]:×rª” UÕï?¼ÿð>µ¤=Rš¤4IiR}aõ…ÕJÞܰÑ;¤qFެꌱ¾·ÝÞt®U¥­TûÄܹÃýZ$Í6Í6ͶÁwÜ‘:j Vý}íðõ<'Xnzqv•ºmzö’üžv¹øåâ—‹SKÚ#Ã3Ã3óU×V][u•¼¹¡í‚3ûVæå¬Ú¥NË|‡HµÏÙµgמ]K-i‘å²å²å= ÷(Ü£°äÍ ñs[í¸‘—«º¦[Ï^£'HÑßíx·ãÝ(%€ì"†v"†Ž¹w7înœÔ)kõßÊ6*]èC·~±M[æ¡§~û¼åZÎݽjcO©–¹`pÁà‚õ£žTzRéI%©c'ûzxßM,óÐ S|Ò\/wnþ¬R¨TËœúëÔ_§þ¢~´ÓËÀ—/ ŠÙûs£÷y§ª¿§zëÖ»ÿÇ:­«ü$Õ&!¶!¶!¶Ôvzßù}ç÷Wµýö…ÌCOýÞê]ÍìQë=ý¥Údgå•wV¦~´SbëÄÖ‰­ = = =¤Ž`ýžþQ»Nå¡Ìhc•‹5« íèíóHªMÖ·\ßr}KêG;%MMšš4µê/U©ú‹äÓÀ‰u Ο‡ªºÁÆÅÖ¸ÜýÙÈ%Rm²tïÒ½K÷R??†Ú‰:)ªxTñ¨âŠ/Â>šÛ«ƒË'ýŽÞÔìÛ¼Iך Œ‹—ž-Õ‡Fyh$5£ý®ž¿zþêyÅU}wxßþ­ßUýa_¿ä¦½ìVŒ(›&ÕÛl_°}5£ýb£b£b£WõK^ÿ8èwU'î0¶™«{»ªÍL:HµCà»Àwï¨í÷¨è£¢Š*®jÛÊ3B7íÐó¹~»­Ýa\ÁÙa•Ûz©vX²|Éò%Ë©í÷|Íó5Ï×(®j›•SâëyU¿]76Ò·Òƒ&<[JµÃ¬³fÌšAÍh¿·ÃÞ{;LqU['L8´â˜žß¦Óoýûómͼ[FwŸ)ÕãBÆ…Œ ‘=“=“=£r~ 0´0tXXtXtX´âû“]ÚÅÖ?«qBôáÎKïûÎØ±;™?RÇD=zõ\ñ‘=ø®Mˆíý«êë;¼j:]Q¼ïA¿ýôu¢[®µ¿ÖþZûÿè¯~n9Ðæ®þUõÓîKº*Þ÷þ ø'€:Ñ-wŠÝ)v§˜â#[;~Pä +ý‹ì-*q …alé]eZKí»ÿLÿ™þ3©ÝòÈä‘É#ÅUmžÞ÷‚ß8—†×_ŒÒ§ªnµÄ7dE©=ךÝÚ÷É‘“#'GÊ¢dQ²(ªEW<Ÿô|ÒóIŠ«º†¬ÇôQÝ]*nt¾ØRŸªÚ!lùèã3Ê ­ÑØò›Ô¾ÿáó‡Ï>ñññT €*€¡€¡ó"Ý"Ý"ݟعeg_}í×/w»æ×ááC ºæÖÖœóóÚÿ'î~¸ûáîÔ†îºÒáJ‡+eßu«U5Kœ5 3GÝ­êô˾«Ý¢–Õl<ÓrÜ„SvNÙ9…ÚÐ]111Šr¯¿-Þ™.ûð ᦃt8úulê^níèfÉuÿÇ ƒ ¤6t׃Àþc¨s“£öŸ›Íp¬óOÌÉÖ:'8m\}ñ”EÀŸþ2üþIø'ÚÐ]Oï>½ûô®â£\®—õ\‡^ˬ>ÖõÌÊqDõùïï¼fóšÍk&û$û$ûD…è¢WS^My5Ũ„Q £RG¹LLÍÅu‚ û»Õ᪺^Õu¢Æþ¶D¦¸ª§|Ÿò}Êw™“ÌIæD…¨ŽÚ‰zâÎ…;î\0P±mCëéVœpnMÇ¥”Ù»ènÑÝ¢»QúáQÍG5ÕTæ¸plSÊv’nUõţǗ_Vª[‰Š÷îL‹3-δ ôóägÉÏ’Ë—.¬ø¸ï8Ó²M´Ž=Å>Í«¬SDÍ1ÆÕJ/W¼wǃ¦ôû7voìj=ªõ¨Ö#ÅÇÝ¢ªïò™õ]Ì7ö¾8NW‚„ú]ýîÚY¦VõÑïïÝþ±ûÇîK=è‡O?<ýðÔa™Ã2‡eŠ{­åý7MŽmø&( z¼Î<ÅÞaÁÕ}ÛŒÿ´¼R¨â½ >|0ø õ e‰²DYó°æaÍÃ÷𠽧޳m8{Cótæ)ö†‹ê[þ€íñF]ï]`ŸÀ>}¨õ"†v"†^ù¸âãŠ+Z¿oý¾õ\¦´¨^n¶‘o¤eÇ'õe¿ þݽ˜ iƒ}ÝÝ®Ùw]ï4©I!³6å+ÿÇüàùi±IDATUÓ¬§YO{±áņ¨ýó¹Ëç.Ÿ»x½õzëõVq%˜zM.ù5üRûÇö² ß7­P÷ÖãnÝý[¯^¸ÂÅûbVĬˆY‘'ƒŸ ~2˜Ð?Ië’Ö%­8tàÐÿqñݨN /ÃÑ'˵;]?$ýg_·5ÚVÕwÛôÈ×Ð¿Ó ó]•ïKIŸ’>%}î½ôþQj@ÿ¤ÌO™Ÿ2ÔˆQ#FPæÆ:çÇYš¯áÐ …Îкx,`áþý*Un4ߣ•2ûãããO 蟴_Ó~MûuJò”ä)ÉÊT‚ÕÜ‘e¼jXq}é(­‹Çzþ]úУÊ/ÜÌ:ÍPf_®<¼òðÊCj@ÿ¤ËÒeé2ÿŸüòÿI™J°l04eN€sd ìÜ ­ä¹ÄÒNGΙmhµ¤ÇLeö%*$*$*„Ð`h'`è#'™“Ì)èDЉ Êœ .ÑÒpð¶{-VÚô̘çç–[AÂÁ¨6Ûmo™4þ³´RO3/vXì°Ø!mOÚž´=v=w[v[v{G¯½vô2PÚ¦Šîcê¤Mò5v˵çƒ~k»ª~>›³&ie^*³Íõø«Ç_=RO¦žL=ÉaÏ ¬:°êÀ*å«:ÐÖµq)ëýê“[UúÝs¬½™Ó»ÊS”ÙæI¥&•šTê[ço¿uæˆçÇ}û÷U¾ªÍöí?1Á¹ãÚ•ùr+H°qŸürm•rŽÖåú)³Í#Œ0bÀש_§~ÊÏ Â¯…_ ¿¦|U×ÜÖ럱…þ ø5üHnUu½ÚÓŽ¯*ÿÚ籃2Û< õ€ÖZ'ÖK¬—X#žD]ºuUùª®1¸ÛŽ?¾;®´ åVUÛš1b“{…EŽ+Ü_(³Í^¼.x]ø0îøã8âšC íD =÷ìÆ³ÏnxÞ÷¼ïy_ùÓ{·ïU«š4ÚÙ åD›gÏÆõ©Ù¸¨z÷ô otàh›f¶+;,¨y½Riå·ÍqˆãÇ!÷ îÜ7àøæM¯«¾®úºje=–õX¦|帤šú—ÛlÞükÝÔ'ÓzmÔO½Uý±rÓ¦ãCºxÚùz-­mPy´òÛfµÏjŸÕ¾˜ 1b6p|ó¦÷FïÞ L˜80Qùʱ¿[ñ‰qÑ¡îí¬SýÒËÌå¦z«:1|À¤f-Ž=jû¾¾mï)–®¦ç•ß6³õfëÍÖ_½rõÊÕ+ß¼éÓŽO;>í‘6"mDšò•cÔ±Ê%óYµ˜6Íþ…5÷—SoxàÜ}íΈruL\¶òNe÷fµÛËÆ¶ÙÙÙ_Xaý…õß¼éóƒÏ>?ðÛç·ÏoŸò•Sêe%Ï*'kuî÷xÒƒúŸçoÞ«æ9VÖùGάûpÒº?So÷]FdÓÙbg‹-ÆñÍ›’ö%íKÚ7«È¬"³Š(_3%Ç–;]á®ù°>² Õë™g°»‚z«ºáè Ï/¶ùsÊšÀßÌÆ´ú¥ûõìVuh¥ÐJ¡•8¾9ƒÚ‰yHô˜è1Ñc꬯³¾ÎzƒbS×$²LäˆIõVWÛ°ºPÓVçØ·)ië–Ö¾žýʳ¾7Ø^»ýû{‡ú·yj›¼vF³ô:ËÆ v‹«_u¸_)Èxƽ¯qŒqŒqL؈°a#dódódó8š]Ëw-ßµ|ŽåË9–û±ê²j[¾£ÑóaWmª\éÚôW«~û+µÞiëÖß3Õ~ÌÙå^7ؾ»ý-ûäÃㇴ³ª+o¨¼¡ò†ƒ•V:X)uuêêÔÕ5(·4niÜÒ?Öü±æ5ÚYÕe–YXfáîv»Ûín÷-î[Ü·8Ž{:úé解Ƿßf|-Ü*¸Up«¤—I/“^rÔr 0´0 {}òõÉ×'kÖ ¬YµJÕ*U«äü©{iÓÒ¦¥M—nYºeé–gužÕyV‡ãU¼sçþÎ}cÐÆ Aµ×Õ^W{]n]–Zè¼Ðy¡ó«'VO¬8.PŇðჂ‚l’l’l’r«ªçœspÎÁ¸Ÿã~Žû™ãU$ Mš0tw¹Ýåv—s´t´t´Ì­ªžQxFá…ï…Ü ¹Âq*¾X}±úbuÀä€É“&®M\›¸æVUOn8¹á䆱.±.±.¨BŒWC’B’B’Z8´phá[U=Îsœç8Ï›nn¸¹ã =€¡€,¼où¾åû–¡ýCû‡öŸ0pÂÀ kÕª¤úI{¥E•UZ4âÁˆ#q:âtÄéµÿkÿ× ¨ûXøcá…Oõ:ÕëT¯Éž“='{Z´°haÑBõª.?­ü´òÓ†VpXÁCE=Tô圗s^Ρ͡iŸ~:øéà™1gÆœóçô?§ÿ9Ýú©õSë§jxV̧ŒOßJ¾•|+í»²ïʾ+ÏG<ñ|mMKl—Ø.±Ý¹mç¶Û6ký¬õ³ÖÛ´i7Rõª.éZÒµ¤ëË–,wOÛ=m÷´ø¦ñMã›ÒæÐ´/f_̾˜<y>r»æîrøäðÉᓺ"1o+o+o«&;Lv˜<–=–=¦É¡qIU’ª$U¹xõâÕ‹Wl[°mÁ6—.\¨«ª{šõ4ëi¶uçÖ[wÆmÛ·•6]À€D%E%E%ET¨Q=Ê+Ê+Ê‹6®»0çœ s"ºFtèU3ªfTMÚºîRýKõ/Õ˜17bndJdJdŠì‘ì‘ì-ÝuõáÕ‡WF‹8q,òBä…È o2Þd¼¡e »nµ¸ÕâV‹ˆ×¯#^GDD¤¤¤Ð2Ð]wÝmt·Ñ9ãsÆçŒ#‡D‰’Ú/µ_j?Z€æ€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€ž =A z‚ô0è `ÐÀ '€@O€žø?çBÄ~ Š<Þ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/expand.png000066400000000000000000001454621431412030200246640ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìýy¸Vãâ?ðÇÁ98‡Š ‰eH„’”"ŠŽYf"Ž™Œ'SrÌSB†Ì9 {Íu¤d¨)%ó”Òøûc}~×µ¿íÙß]í½Ûûéõz®k]®ìg­û¹×½†{½×ºW¥…:ª 8€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€¨r?ÏüyæÏ3Çý:î×q¿Ž»uÜ­ãnýꀯøê5•K À2[rñ’‹—\<íÆi7N»q輡ó†Î;ø¯ÿõà¿Ö­$Ý×ï¾~÷õïÞôîMïÞtò§“?üéÂn´p#5åðÿrÓÒ›–Þ4aó ›OØüÔî§v?µ{Ý•äÈç|þÈç“ÖIë¤õ¢Ç=¶è1+€š l¶å– [.T3@õð'æ4šÓhN£Á£<ªn 6h·A» Úí»ï¿ûþ»ï­5V0Ps€ø?¿4ø¥Á/ ¥ƒÒA銄²‡.lùêæ Üaçm?xüœýÖo³Î˜íZ{×®É÷Ø­SzøÁçïvä«—4p×ÛŸœ¹ßü6CþsËž#¶ Ž^k»Íêlxr½gë­³|˽x§‹wºx§®üáÊ®´6¨N` æ¬Ò–LY2eÉ”§îyêž§îYÖÀõòv»c›Ç&ªûµm~XÕ¢ßÒÓè¿ÿ¼¨]X¨~œ;àÜçjE,+0Ps€ŠÄÛ¿ýðÛŠ6Ï;<¹*G¿¥§/¼Ø³Î.kª«W[½ÚêÕVZ'j0@­÷Ûð߆ÿVpÀçófµýtë>Bß²ÓÛ¾ê´NëV…êíûißOû~šÖ@E€`EŒ~nôs£ŸË¡ŸøäÀ'gï7{¿Ùû©™å#¨õ.ßæòm.ߦlWs›W6îØà‘Oö=³k=qïŸL›ôkÐmƒƒ¢¯ovAÙÚ;òÚ#¯=òZ­ €ŠÀòY|ðâƒ\èAaðòÔbžðá žPèÐøÙËÇöé¸PÐ[þôÇ' é¼E¡:;j쨱£´4Ê'€åSúÙßò ƒ+N P;-Xº`é‚ÎS:Oé<¥ìðÞ]šì°¶p·âÓìyÄ.ËÖdÃy ç5œ·xÏÅ{.ÞS£ 0,Ÿ<ÐÍÃݺ& .Ÿ Vš´×¤½&íõ'ǽ½ënQ·ñ›û&]»Šu—a:´ß>ÝvìP¯éù›¬V¶R_Zí¥Õ^ZM« 0¬8apeÔJ]êv©ÛåOuá̶lw«@wù¦SuJ‡[ÊÖjƒ7¼Ñà%×/¹~ÉõÚe € r ƒW„ –ù¬Îgu>«SöÀÖäÂÿØ Ñ’Y§-í¶–(wE¦Ýçnõ`“-ËÖð„ºêN¨«P–ªŽ0xY €j™Ë_¿üõË_ÿ“aŠ›ö¼~—£Å·+>4ÿðñ{Ì/[ÇÝ~Øí‡Ý®P–ª‡0¸"ÀµÆÂ‘ G.Yè6쩯ìó˜øvŧKÞ9m~·Õê6¯Û¨î†eëyn‡¹ævÐ(M ÕO\ˆ Öx·Í»mÞmSöpuÑ»6jѼæ«w½¶÷ÅÛ¯“—ùãžGG{.¬É¥½÷¶.ûìЬlm¿<ëåY/ÏÒ(M +—0¸40@­qu|u|u\öõnË#æ·Y£àõú­ß­n‡îMm²^é’×ä21ýøƒ:mU¶¶{¿Òû•Þ¯h”&€šC,¨5ßÖø¶Æ·•=,-Ø®oÇ}~­ÉÑïµ%í¯Ùö¬²%¯Ñ¡õéývê¶e¡SÅ›-ÞlñfÚ$90ÔL«f,¨æõ™×g^Ÿ²¡}“-'m:¼æ„¦ßž~b½[=uv÷Öm^ðÇ›¶¼³ÍŒ&môS¡ƒhͶú¼þm_ÚºGÙ’µîWë~µ®– @N 5ߪ €jnþàæn.{àüeçnÛ__sâÒG¦u³Ó?pÖüxô“n²Ë‹eKmmm¨e@íRÜa° Ù}d÷‘ÝËlÆèW»O­9qéÔ—: Ã¿oûë^/·ZPvZàÏÚ»KÇÏÊ–ü¶ÍoÛü¶ÍµLr`¨½Š/ Ôƒú ê3èO†€þªáñY§3j~ŒšOkc<ï?§lÕå¿eK~ÂZ'¬uÂZZ&90‡âƒÀµÀIÿ9é?'ý§ìAå×#N9·ËtpÕMß}Ú5]_-[ò¶Ûl;PË '€âS{Ã`0@-°Ïûì±ÏŸ¼[wQ›¾K»ž.®Âéœ~}ºu)[òú[×ߺþÖZ&90·Ú¯´¸.+lɈӾïº@\ÕÓf³¾°a#í €e5ú¹ÑÏ~N @…,íÔo‹nÀU=mùõÆÿmðµöÀ²Z0bÁˆ#ÀTˆ'€= @M¶ =<ö/>>>>>ý´Û¡Ýív({Øðà•õàz×{¸ÞÃZ¦Oþ)Ûsl> ù€æÔŒOq|^¾ôåK_¾´ßêýVï·zÅ£ßüïW¡wPq'ýç¤ÿœôŸ²_8åÜ.ÓÀU7]|÷i×t}µlÉÛl;°í@-€\ÙžcË…-¶\¨f öʃÛO|rà“}ó¿¯þз40@-0¨Ï >ƒú”=|Õðø¬ÓછÎûÏ)[uùoÙ’Ÿ°Ö k°–– @N Å¡ö†¾¥ €j‘ÝGvÙ½ìAeü÷‡~µûTpÕM?kì.?+[òÛ6¿móÛ6×2È € ö*ŽÐ·40@-ðÁÍÜüÁÍe0ƒ¿ìÜmûëÀU7ýä›ìòbÙ’GFFj™äÀP»_è[š ˜×g^Ÿy2ô¾É–“6.®ºéyýÛ¾´u?|{ݯÖýj]-€œj¾â}KÔok|[ãÛÊ~l×·ã>¿ €+yzz¿ºmYè¿x³Å›-ÞL› '€šiÕ }KÔWÇWÇWÇeEï¶4ÿðñ{Ì/[ÇÝ~Øí‡Ý®P–ª‡Ð·"ÀµÌgu>«óY²°&6øÇ–Ì:mi·µ„¸+2í>w«›lY¶†'ÔPwB]-€²ÀPu„¾ËJ P+u©Û¥n—?9¤…3ÿٲݭBÜå›N]|Ô)n)[« ÞhðFƒ7–\¿äú%×k{”%€Ê%ô]`€ZiÒ^“öš´×Ÿßö®»EÝÆ oî›tí*Ð]†éÐ~ûtÛ±C½¦ço²ÚŸ ¯½ÚK«½´šV@!`XqBßÊ"¨,]°tAç)§tžRö€wo‹.MvX[¬[ñé‹öxñÁBßÊ%¨õ~þÛð߆:@ž7«í§[÷÷–ÞöU§uZ·*ToßOû~Ú÷Ó´.*B +¢ôsÀBß'(o?üöÃo?\(μÖ>[ìð¤Ð7Ÿ¾ðbÏ:»¬]¨®^mõj«W[iQTœ¨9ÀEe謡³†Î*m>}T÷kÛü°*G¿ÑÿyQ»°Pý 8wÀ¹ÎÕŠXV` æ—ùKç/ö𳇟]pPèÇدi› Wµè÷µ]zs×× ÕÉwxçw.¾sñ‹ïÔˆXV` æ¡Eã_4¾×ì^³{Í.yÞ4¾ãU­:.íܯy·ÆÅý>zß¾«ítj¡zhý|ëç[?ÿÛý¿ÝÿÛýZËG Ô`€¢õÇ”?¦ü1eÿ…û/Üa¡øóˆºÛ^Õ´ñ/;÷Þå¤b }ôïÛ»ëZç®Ý¶õVúí-{´ìѲÇÜmçn;w[­€!j0@‘[pÂÜpÌiÇœvÌiuËõ¿É‡n¶ûѵ=úzìQÛv8½a¿úgÕûw¡_ºçñ{¿çñ¿Œþeô/£µVœ¨9À«„%÷,¹gÉ=W=sÕ3W=S~ |j¿Û5¿ãû—Oüx%ôwÝ)Í»hÿÀõY‡G·k¼¬e»çª{®ºçªEk,ZcÑÖ2UM Ô`þÏ/ ~iðKƒAé tPZwº°å«›?2pp‡·ýàñsö[¿Í:c¶;hí]»&?Üc·Né៿ۑ¯^zÐÀ]oræ~óÛ ùÏ-{ŽØ.8z­í4«³áÉõž­·Îò-÷â.Þéâ~¸ò‡+¸ÒÚ : €€šC ÀŸ˜ÓhN£90Uîç™?Ïüyæ¸_Çý:î×q·Ž»uÜ­_ðÕ_ f r €Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„¨oŒ{cÜãÆ3ö˜±Ç¼Þüõæ¯7W'UM TÈìÝgï>{÷hd42yÙøËÆ_6¾ÕÄV[M¬»Â¯ÓxÆëœ1øŒÁg 5rÔÈQ#¿îñu¯{¨s€e%þÄ7ýpÓ7=²û#»?²{«sZÓꜺ+ÉÃnvã°ïÏxÆûÖ 5ßã}ïóxŸ²-YÍP=ÀÀÒ¥ó–Î[:oò“ט¼Æmh{DÛº5ÒNŸíôÙNŸ•\_r}Éõ‹Û.n»¸­UGM#`åÀ*íûÞ¹ïûÚwjß©}§å e[Öâä†ožyõ‘§lùËàzý¿ÝþˆçëܼsÛÃï9­ÝÙÙ-Cìö`<ò¾.íæ¿x×mãwéðÀéW>µc‹:±Q‹‹:þ£íº›\°"‘ðË^îðr‡%¯-ymÉkÖ&5€•K «œoïýöÞoï=&8&8&¨xÔÚq§¶Ûlrùð×5ÝiúÌ6/ŒÚ«×Ò¥'vëVYÓÙƒÂo;ßòRÉíÏïòï£Úw?¨é=ËBÓú˜ÖÇL]2uÉÔ%Ö/+—€•K «†Kg,ñtϧ{>ݳâÁêÃý¯zoÇïµ?¹ëé•÷V|úÊ wÎܵÙÎZ­±QóŠ”ùš×t¸¦Ã‚Ë\¾àr«ê'`å@‘ûeÌ/c~ÓûÐÞ‡ö>´üè´é†›Þ³Ásñ÷No÷ñâ¥Úw¼²BßBÓ÷N|úüÃ{l³Wƒ&ý?~K¿¦ýšö›1iƤ“´ª“€•K E볩ŸMýljEžš}þô›¯o{@M‹{ËŸ¾y£}÷ÚdÍMv®¿¸ü_—••¥=P=À¬\`(Bo·~»õÛ­ËEû>uè}Í?žÛ$þ©KóÚý–ž.^2a®“ïÜ墭G•ÿ{ŸêýTï§zkT50+—ŠÊøOÇ:þÓò£Ð‘¿ÞRÒö±ÚúšNîûäfíÿ(ÿ·?8éÁIš*$`å@‘xç¥w^zç¥òãÏi/XÏS‹/ú-=Ý"| sÿÝÛíØeãc ÕÃÝŸèþDwm†ª `å@­7sæÌ™3g ;7X£þ u_ûfÚ˜{¯[ÜÑoééÿ7gŸÏލ¿ïCMª™ð´ð´ð4í‡Ê%`å@-öë¿þðë îopƒûËNõ>¯wEÝK~<9èйþªý–ž.*y£c׎\k¿ãš\(þtõOWÿtum‰Ê"`å@-vÒè“FŸ4ºP´ùõ¸W>è4iÕŒ~KOöú1û,éxLÛî› ,[K ÏixNÃsæŸ=ÿìùgkQ¬80+—j¥QÓGM5½PôûÞ¿ž¾¢Ã“¢ßÒÓ9mâ];ÿT¨Æú÷íß·_íŠ'®\÷νwî½só:²æ5‡¬9oѼEó©€BÀPËütÉO—ütI¡ óÙ5ÿÓpçžâÞBÓ÷£g®ë0¯PíM8ià¤Ú+B\Y~ýþ×ïý¾ÐÖ* (D µÌ™-Îlqf‹²qÈѣػÙ6K—Lœ èýM‡~qe§>/[‡×n¼vãµ}·è»Eßii,pe)ýìoù„Á¥ € Öøpè‡C?Z(ù±УsCánE¦K6˜°×Z·Ùúã†ÃËÖä3«?³ú3«ko,peùæ”oNùæ” _ØøÂÆu+L €Zã ?úã ?ÊÃW»öÞ^ë.ëtꌧ×ë0¨PŒôGôGôG¤Õ±¬ÀUA Pq`¨>üÉàO 9~=~H×£ºË7=~ηm±iÙZŒFÚËJ\Õ„Áå@-pÖ+g½rÖ+e#Q]n™ßv´wE¦Ÿ]3ꄎ³ËÖm£z4ê±´ñÒÆKkTœ¸: ƒÊ@6oð¼Áó >û»à–×o躮wŧ=Ùë‚&QÙžº×Ô½¦î¥Rqà•E @öÒ¸—ƽ4®lhqóØóÎhu±à¶²¦¯ÿøÐ»ß_¶žÏ{å¼WÎ{E;¤âÀ50X• € F; óè\6¨ø¢Ëè:­^sÔäËûÛîÖñÔa‡LlþÐM¶9ºÑ† jø|½Û\ß¼mƒ!=wßë»&ŸßÔåÜŽ­šþ~ý¸íö9¦¦À gŒ¿£ë‘…b¡EÿZô¯EÿÒ©pM# V5`¨¡~÷û¸ßÿäÙß&çn2hƒ†K¿™8¦ÛÞ+9:]oâúÝêžûý1oݪî2š´ãcëì1±¦ÅÀþxüØ–-í‡C>òám’Š×dÂ``U €jò˜Éc&ù“ÁŸ7:÷‹V½jB\zkÃóÏo••.[ëö[Þð‰ûN¼¼û½ÞjöØÿÚ¯ž?üŸ“Î·Ý M:lrüë”þûŸçÄktþ¬æÀoœôpÝÝg—­óû¿ïðû×&©pm! Š•j¨{Þ¼çÍ{Þ,?¼óéãß·¶rƒÒùýÇ}½ÏÍælö 7ÉKµË ­¯Ùèö<ÐýÿÆ]ÿÿßÊÿ½ô· ýåÊšþòLºu—+ÊÖù~oï÷ö~ok“T„¸6ÅD 5Ô!itH£²‘Ã/Qºk—«WnP:欻îÚõÐÒ¥õÁ­gµý "néoí“ì¾ãù5h è…ÇwëÚàŒ ÷®×­lÍ/鳤ϒ>Z&å×vÂ` ¶@ U(fXzïÄ˺í°rƒÒ¡¯Hw–o0ç7÷z´çwçßjÜ{£¯ê?PÓž>¹ï?»nñeÙšŸ3kά9³´LÊ'.&Â` 6@ U6Tè6dW7=©&D¤/Œ¿­å.ëÞçð`ËKÎYûèm¶Š*â–~zxçw[­³Ñ–5-òþ¥l”­ÿé‡M?lúaZ&å+a0P[€ †*$\Ðá¸s·UƒL.3°sEþòиë[›ÿßÀçO:nã­ï­ið˜ îºw×ÃËÖÿßèøFG-“ò €WÂ` &@ U6<¸½ñ…m½[Í €ËŸ.nõÆà®^vèÉ‹·é‘ÿ–MNߨeý¾_Œ}n§MkZi'=ðØñ{|Q¶þG/½pôB-“ò €W5+ÿúà¯þú :*—€jU€ððZW]¾ã»µ+úÍßøÛåÝniœä¿¢áã ÚÕ»9^ãÞ×Ú½[ÓžýͧÓv{öÙ=»ko@U{ëÙ·ž}ëY} r €¨V.ó¬ˆÇ½î‘6kÔüÐ÷ãžÿm°çÂcwëñ¯fÿ.]þvwo¿h£%“v|l=&ÖÌè÷ÿÊÿôëXO{ªÐ†u7¬»áÒ…K.5®PÉÀT+×úVDM~xAï×OØgéõ·žuëvu¼´áeõŽÈËÜtýMïÚ`Äm½`‡V þè÷¿Çöy£&G¿žª“'€€ª  Zý‹OE?e£‚šùàO:þ÷ÝŽmvy¡õ5Ýž—sƒ)¬^÷»7:uvË­ž¯Ñù³šúVäÀ7wº¹ÓÍ´LŸò?Þðö€·Ë¶5S¬ŸQ½FõÕëèiGO;zZţߋ¾¹è›‹¾ñ` *€ †*\Ðá¸s·Us‚Òs_°WçmOÛrDÃ5òæÿýú=´ûuùßÔ®è7ŸŽ¹à®{w=¼lý¿ÑñŽotÔ2)ßã}ïóxŸ²íGÍ“oNùæ”oN¹°ñ…/l\ñÐwÈšCÖ²æ¼EóÍ[¤€ª#€ªlxÐmȯnzRÍ J;toóô&ëåeÛ'Ù}ÿÆóÚ,x«s‡Úú–žyÿÒ¶ÊÖÿôæ6ý0-“ò €‹•Ш-ÀPCŠ–Þ;ñ²n;¬Üˆ4ÜâžÎíþ/⪷ZÝ7ëv›ÞtäþªíÑo>=¹ï?»nñeÙšŸ3kά9³´LÊ'.&B_ 6@ uH£CÒ¨l´ðK”îÚåê•‘žòü!ë5ï——§ÙœÍþ±á&ÿ{ÜréÛXÖi €Nß­kƒ36Ü»^·²5¿¤Ï’>Kúh™”O\Û }€ÚN 5Ô=oÞóæ=o–ÞùôñïÛ[¹Ai§Å»Ùx³º•¤æÀ¿<“nÝ劲%ÜïíýÞÞïmm’Š×FB_ ˜€ †šî÷qeã‡&çn2hƒ†K¿™8¦ÛÞµým»5mzáÇm±aÙ:ÿpȇC>¢MRàšLè ¬ ÀP£Ðù€Ît.H|ÑeôFVÙVÖtáŒñwt=²Pü³è_‹þµè_Z#!®i„¾ÀªF 5ÚKã^÷ÒŸ<|óØóÎhu±à¶²¦¯ÿøÐ»ß_¶žÏ{å¼WÎ{E;¤âÀ5ÐX• € F›7xÞàyƒ Å nyý†®ëŠoW|Ú㑽.h•­á©{MÝkê^Ú!'^Y„¾90Ôg½rÖ+g½R6ºÕå–ùmG‹oWdúÙ5£Nè8»lÝ6êѨG£K/m¼´±HÅ €«“Р,0ÔŸ þdð'Ÿ^øõø!]å.ßôø9޶ŦekuD0"h{,+pUú”O µÆAôÇA” 6†¯ví½;½,Ê]ÖéÔO¯×aP¡¸èèèH«cY €«‚РâÀPk|8ôá-uüØ?èѹ¡X·"Ó%LØ¿ë­ÛlýqÃáekò™ÕŸYý™Õµ7–¸²}–j™3[œÙâÌec£G°w³m–.™8AÄûÿšýâÊN;|^¶¯ÝxíÆk/únÑw‹¾ÓÒX>àÊrïÜ{çÞ;Wè °¬ÀPËütÉO—ütI¡ äÙ5ÿÓpçž"ÞBÓ÷£g®ë0¯PíM8ià¤Ú+B\Y~ýþ×ïý^è °¬ÀP+š>jú¨é…¢‘÷þõôž÷–žÎiïÚù§B5Ö¿oÿ¾ýûjW¬8på*ý°Ð "ÀP‹4ú¤Ñ'.j~=î•:Mý.8ìõcöYÒñ˜¶Ý7X¶–žÓðœ†çÌ?{þÙóÏÖ¢Xq`V.0Ôb¿þðë¿þÐàþ÷7¸¿làTïózWÔ½äÇ“ƒ믚Ñ7:v½áȵö;®éÁ…bòOWÿtõOW×–¨,`V.0Ôz3gΜ9sf¡€sƒ5êŸP÷µo¦±÷º«NôûÇÄÿÍÙç³#êïûPÓÆ…j&<-<-¹Yû?ÊÿíNzpÒƒ“´ªŽ€•K EèíÖo·~»uùQhß§½¯ùÇs›Ä?ui^{CßÅK&ìÑuò»\4¢õ¨òïS½ŸêýTomƒª&`å@ÑúlêgS?›Z·ž?ýæëÛP»¢ß7Ox´ïC›¬¹ÉÎõ—ÿë’£’£’£´ª‡€•K Eî—1¿ŒùeLïC{ÚûÐòƒÒ¦nzÏÏÅ;Ü;½ÝÇ‹—NhßurM }ß;ñéó; ï±Í^ š<öÿø-ýšökÚoƤ“fð™j%`åÀªaÆÒKg<ÝóéžO÷¬[a÷¿ê½¿[Ôfüä®§¯¬Ð÷•k³'´Zc£æ)ó5®épM‡—/¸|ÁåV;ÕO ÀÊ%€Uη÷~{ï·÷T< î¸SÛm6¹|øˆëšî4}f›FíÕ«rƒÞÙƒÂo;ßòRÉíÏïòï£Úw?¨é=/[ëcZÓú˜©K¦.™ºÄúeå°r €`•öÎ}ïÜ÷Î}í;µïÔ¾SÝåÒú³'7|óÌ«û>û>û.û.û.û&û&û&û:û:û:û2û2û2û"û"û"û<û<û<›™ÍÌffŸeŸeŸeÓ³éÙôì“ì“ì“ìãìãìãì£ì£ì£lZ6-›–}}}½—½—½—MͦfS³ÉÙälrönönönövövövöVöVöVöföföf61›˜MÌÞÈÞÈÞÈÆgã³ñÙëÙëÙëÙ¸l\6.›ÍÆfi–fi–dI–dQeQfaf%YIV’½–½–½–ÉÆdc²W²W²W²ÑÙèltöRöRöRöBöBöB6*•ÊFf#³‘Ù³ÿfÿ͞˞˞˞͞͞͞ɞɞɞʞʞʞ̞̞ÌÏÏφgóá٣٣٣Ù#Ù#Ù#Ù°lX6,{({({({0{0{0š ͆f÷g÷g÷g÷f÷f÷f÷d÷d÷dƒ³ÁÙàìîìîìîìÎìÎìÎìŽìŽìŽì¶ì¶ì¶ìÖìÖìÖìæìæìæì¦ì¦ì¦ì?Ù²ÿd7d7d7dƒ²AÙ l`60˜]—]—]—]“]“]“]]] Èd²gÿÎþ]‘]‘]‘]ž]ž]ž]š]š]š]’]’]’]œ]œ]œ]”]”]”]]]ŸŸŸ›››“““•••™™™žžžõËúeý²¾Y߬ovjvjvjÖ'ë“õÉNÎNÎNÎNÌNÌNÌNÈNÈNÈŽËŽËŽËŽÍŽÍŽÍŽÎŽÎŽÎzg½³ÞÙQÙQÙQÙÙÙÙáÙáÙá١١١Ù!Ù!Ù!Ù?³fÿÌze½²^ÙÙÙYϬgÖ3; ; ; Û?Û?Û?Û/Û/Û/Û7Û7Û7ëšuͺfûdûdûd³ÎYçlïlïlï¬SÖ)ë”uÌ:f³=³=³=³öYû¬}¶G¶G¶G¶[¶[¶[Ö.k—µËvÉvÉvÉÚfm³¶Y›¬MÖ&Û)Û)Û)Û!Û!Û!Û>Û>Û>k•µÊZeÛeÛeÛe-³–YËl›l›l›¬EÖ"k‘m•m•m•m™m™m™m‘m‘m‘5ËšeͲͳͳͳͲͲͲM³M³M³ÆYã¬q¶q¶q¶q¶Q¶Q¶QÖ0k˜5Ìd ²ÙÙÙYý¬~V?«›ÕÍêfëgëgëgÿÈþ‘ý#û{ö÷ìïٺٺٺÙÚÙÚÙÚÙß²¿eËÖÊÖÊÖÊÖÌÖÌÖÌþ’ý%ûK¶z¶z¶zV'«“ÕI—¦KÓ¥éâtqº8]”.J¥ Òé‚ôôôô÷ô÷ô÷ô·ô·ô·t^:/—þ’þ’þ’ÎIç¤sÒŸÓŸÓŸÓÙéìtvúcúcúcúCúCúCú]ú]ú]úmúmúmúuúuúuúUúUúUúEúEúE:+•ÎJg¦3Ó™éŒtF:#žNO§§Ÿ¦Ÿ¦Ÿ¦§§§¥¥¥ÓÒié´ôƒôƒôƒô½ô½ô½tj:5šNI§¤SÒwÓwÓwÓwÒwÒwÒ·Ò·Ò·ÒIé¤tR:1˜NL'¤Ò éøt|:>}=}=}=—ŽKÇ¥cÓ±éØ4—¤Iš¤Q¥Q¦a¦%iIZ’¾–¾–¾–ŽIǤcÒWÒWÒWÒÑéèttúRúRúRúBúBúB:*•ŽJG¦#Ó‘éÓÿ¦ÿMŸKŸKŸKŸMŸMŸMŸIŸIŸIŸJŸJŸJŸLŸLŸLOOO‡§ÃÓáé£é£é£é#é#é#é°tX:,}(}(}(} } } šM‡¦÷¥÷¥÷¥÷¦÷¦÷¦CÒ!étp:8œÞ•ޕޕޙޙޙޑޑޑޖޖޖޚޚޚޜޜޜޔޔޔþ'ýOúŸô†ô†ô†ôúôúôút`:0˜^›^›^›^“^“^“^•^•^•H¤Ò+Ó+Ó+Ó+Ò+Ò+ÒËÒËÒËÒKÓKÓKÓþiÿ´zqzqzqzazazazAzAzAz^z^z^znznznzvzvzvú¯ô_é¿Ò³Ò³Ò³Ò3Ò3Ò3ÒÓÓÓÓÓÓÓÒÓÒÓÒ¾iß´ozJzJzJÚ'í“öIOJOJOJOLOLOLOOOKKKIIINNNJJJLLLOOOKKKIIINNN{¥½Ò^éAéAéAiÏ´gÚ3í‘öH{¤û§û§û§ÝÓîi÷tßtßtß´[Ú-í–vM»¦]Ó.i—´KÚ9íœvN;¥ÒNé^é^é^éžéžéži‡´CÚ!Ý#Ý#Ý#Ý=Ý=Ý=m—¶KÛ¥»¦»¦»¦mÓ¶iÛtçtçtçt§t§t§tÇtÇtÇtûtûtû´uÚ:mn—n—n—n›n›n›n“n“n“¶H[¤-Ò­Ò­Ò­Ò-Ó-Ó-Ó-Ò-Ò-Òfi³´YºyºyºyºYºYºYºiºiºiÚ8mœ6N7N7N7N7J7J7J¥ÒFiƒ´AÚ Ý0Ý0Ý0­ŸÖOë§õÒzi½týtýtýt½t½t½ôïéßÓ¿§ë¦ë¦ë¦k§k§k§Kÿ–þ-]+]+]+]3]3]3ýKú—ô/éêéêéêi´NZ'Yš,M–&‹“ÅÉâdQ²(Y”,H$ ’?’?’?’ߓߓߓߒߒߒyɼd^òKòKòK2'™“ÌI~N~N~N~J~J~J~L~L~L¾O¾O¾O¾K¾K¾K¾I¾I¾I¾N¾N¾N¾L¾L¾L¾H¾H¾Hf%³’YÉÌdf23™‘ÌHf$Ó“éÉôäÓäÓäÓäãäãäãä£ä£ä£dZ2-™–|||¼—¼—¼—LM¦&S“ÉÉädrònònònòvòvòvòVòVòVòfòfòf21™˜LLÞHÞHÞHÆ'ã“ñÉÿ’ÿ%ÿKÆ%ã’qùIA¾Hâ$Nâ$J¢$J‚$H‚¤$)IJ’W“W“W“1ɘdLòròròr2:ŒN^L^L^L^H^H^HF&#“‘ÉóÉóÉóÉsÉsÉsɈdD2"y&y&y&y:y:y:y2y2y2y"y"y"ž O†'%%%$$$'''Ã’aɰäÁäÁäÁääääþäþäþä¾ä¾ä¾äžäžäždH2$’ÜÜÜܕܕܕܑܑܑܞܞܞܚܚܚܒܒܒܔܔܔܘܘܘÜÜÜ J%ƒ’ÉÀd`r]r]r]rMrMrMrururu2  Hþü;ùwrErErEryryryriririrIrIrIrqrqrqrQrQrQrArArAr~r~r~rnrnrnrNrNrNò¯ä_É¿’³’³’³’3’3’3’Ó“Ó“Ó“Ó’Ó’Ó’¾IߤorJrJrJÒ'é“ôINJNJNJNLNLNLŽOŽOŽOŽKŽKŽKŽIŽIŽIŽNŽNŽNŽJŽJŽJŽLŽLŽLOOOKKKIIINNNz%½’^ÉAÉAÉAIϤgÒ3é‘ôHz$û'û'û'Ý“îI÷dßdßdߤ[Ò-é–ì“ì“ì“tIº$]’½“½“½“NI§¤S²W²W²W²g²g²gÒ!étHöHöHöHvOvOvOÚ%í’vɮɮɮIÛ¤mÒ6Ù9Ù9Ù9Ù)Ù)Ù)Ù1Ù1Ù1Ù>Ù>Ù>i´NZ'Û%Û%Û%Û&Û&Û&Û$Û$Û$-’I‹d«d«d«dËdËdËd‹d‹d‹¤YÒ,i–lžlžlžl–l–l–lšlšlš4N'““““’’’†IäaÒ i4H6H6H6Hê'õ“úIݤnR7Y?Y?Y?ùGòäÉß“¿'OÖIÖIÖIÖNÖNÖNþšü5ùk²V²V²V²F²F²Fò—ä/É_’Õ’Õ’Õ’:I¤N¼$^/‰Ç‹ãÅñÂxa¼0^/ˆÄóãùñüø÷ø÷ø÷ø×ø×ø×x^___ÇÅãâqñØxl<6Nã4Nó@ÅQÅaÆa\—Ä%ñkñkñkñ˜xL<&~%~%~%ŽGÇ/Å/Å/Å/Ä/Ä/Ä£âQñ¨øùøùøùø¿ñãÿÆ#âñˆøÙøÙøÙøéøéøéø©ø©ø©ø‰ø‰ø‰øñøñøñø±ø±ø±øÑøÑøÑøáøáøáxX<,??????ßßßßßßßß߉‡ÄCâ»ã»ã»ã»â»â»â;â;â;âÛãÛãÛã[ã[ã[ã[â[â[â›â›â›âãããâââAñ xP<0Œ¯‹¯‹¯‹¯‰¯‰¯‰¯Ž¯Ž¯ŽÄâñ¿ãÇÿޝˆ¯ˆ¯ˆ///////‰/‰/‰/Ž/Ž/Ž/Š/Š/Š/ˆ/ˆ/ˆÏÏÏÏÏÏωωωÿÿ+þW|V|V|V|F|F|F|z|z|z|Z|Z|ZÜ7î÷O‰O‰O‰ûÄ}â>ñIñIñIñ‰ñ‰ñ‰ñññññññqñqñqñ1ñ1ñ1qï¸wÜ;>*>*>*>">">"><><><>4>4>4>$>$>$þgüÏøŸq¯¸WÜ+>0>0>0î÷Œ{ÆÄÄÄûÇûÇûÇûÅûÅûÅûÆûÆûÆ]ã®q×xŸxŸxŸ¸sÜ9îïïïïïïwŒ;Æãq‡¸CÜ>n·wwww‹w‹w‹wwww‰w‰w‰wŽwŽwŽÛÄmâ6ñŽñŽñŽñññqë¸uÜ:n·Š[ÅÛÆÛÆÛÆ-ã–q˸EÜ"noooooo7›ÇÍãfq³¸YÜ4n77‹7‹7‹›ÄMâ&qã¸qÜ8Þ$Þ$Þ$Þ(Þ(Þ(n7ŠÅ âqƒxÃxÃxø~\?®׋ëÅõâõãõãõãõâõâõâ¿Çÿ¯¯¯¯¯¯ÿ-þ[ü·x­x­x­xÍxÍxÍø/ñ_â¿Ä«Ç«Ç«Çuâ:qhi´4Z-ŽG‹£EÑ¢hQ´ Z-ˆþˆþˆþˆ~~~~~~æEó¢yÑÜhn47š͉æD³£ÙÑìè§è§è§è‡è‡è‡èûèûèûèÛèÛèÛè›è›è›è«è«è«èËèËèËhV4+š}}}͈fD3¢Ï¢Ï¢Ï¢O£O£O£O¢O¢O¢¢¢¢£££¢¢¢÷£÷£÷£©ÑÔhj4%šM‰ÞÞÞÞ‰Þ‰Þ‰ÞŠÞŠÞŠ&E“¢IÑÄhb41šMˆ&Dã£ñÑøèõèõèõh\4.ÆFcóÓÿü°åÂ(ŒÂ¨$*‰J¢×¢×¢×¢1јhLôJôJôJ4:Ž^Œ^Œ^Œ^ˆ^ˆ^ˆFF#£‘ÑóÑóÑóÑsÑsÑsшhD4"z&z&z&z:z:z:z2z2z2z"z"z" †GEEEDDDGGGEEEFFFC£¡ÑÐèþèþèþèÞèÞèÞèžèžèžhp48ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝý'úOôŸè†è†è†èúèúèúh`40]]]]]]]]]ý;úwôïèÊèÊèÊèòèòèòè²è²è²è’è’è’¨Ô?ê]]]]]]õ‹úEý¢¾QߨotjtjtjÔ'êõ‰NŽNŽNŽNŒNŒNŒNˆNˆNˆŽ‹Ž‹Ž‹ŽŽŽŽŽŽŽŽŽzG½£ÞёёёÑÑÑÑaÑaÑaѡѡѡÑÁÑÁÑÁQ¯¨WÔ+:(:(:(êõŒzF=¢Qhÿhÿhÿ¨{Ô=êíííu‹ºEÝ¢}¢}¢}¢.Q—¨K´w´w´wÔ)êuŠ:F£ŽÑžÑžÑžQû¨}Ô>Ú#Ú#Ú#Ú-Ú-Ú-jµ‹ÚE»D»D»Dm£¶QÛ¨MÔ&jíííííímmmµŠZE­¢í¢í¢í¢–Q˨eÔ"jµˆ¶Ž¶Ž¶Ž¶Œ¶Œ¶ŒšGÍ£æQ³¨YÔ,j5šF›E›E›EM¢&Q“¨qÔ8jmmmmmm5ŠE¢Qƒ¨A´a´a´aT?ªÕêEõ¢zÑúÑúÑúÑzÑzÑzÑߣ¿GÖÖÖÖŽÖŽÖŽþý-ú[´V´V´V´f´f´fô—è/Ñ_¢Õ¢Õ¢Õ¢:Q¨N¸$\. ‡‹ÃÅáÂpa¸0\.„óÃùáüð÷ð÷ð÷ð×ð×ð×p^8/œÎ ç†sÃ9áœpN8;œÎ   ¿¿¿¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ ¿ g…³ÂYáçáçáçáŒpF8#œN§‡Ÿ†Ÿ†Ÿ†‡‡‡………ÓÂiá´ðƒðƒðƒð½ð½ð½pj85œN'‡“ÃwÃwÃw÷÷÷÷··Â7Ã7Ã7ÉáÄpbøFøFøF8>Žÿþ/ü_8.ŽË/þåÝýü æ‚0ƒðµðµðµðÕðÕðÕð•ð•ð•ðåðåðåð¥ð¥ð¥ðÅðÅðÅpT8*Ž G†#Ãÿ†ÿ ÿ>>>>>>>>>>>>>>>>>>‡‡ÃÃGÃGÃGÇÇÇÃaá°pXø`ø`ø`ø@ø@ø@xxxx_x_x_xOxOxO8$ ïïïï ï ï ïïïoooo o o o o o o o o o o o ooo…ƒÂAáÀp`80¼6¼6¼6¼&¼&¼&¼*¼*¼*„W†W†W†W„W„W„—…—…—…—†—†—†ýÃþaÿðâðâðâðÂðÂðÂð‚ð‚ð‚ð¼ð¼ð¼ðÜðÜðÜðìðìðìð_á¿Â…g†g†g†g„g„g„ýÂ~a¿°oØ7ìžžžö û„}“ÓÓÃÃÃÃÂÂÂãÂãÂãÂcÃcÃcãããÃÞaï°wxdxdxdxDxDxDxXxXxXxhxhxhxpxpxpøÏðŸá?ÞaϰgØ#ìö÷÷÷»‡ÝÃîá¾á¾á¾a·°[Ø-Ü'Ü'Ü'ìv »„{‡{‡{‡ÂNa§°cØ1ìîîî¶Û‡íÃ=Â=Â=ÂÝÂÝÂÝÂva»°]¸K¸K¸K¸s¸s¸sØ&l¶ w w w www[‡­ÃÖa«°UØ*Ü6Ü6Ü6l¶ [†-Âa‹pëpëpëpËpËp˰yØx=x=x=Œ Æcƒ±ÁØ Ò â â ¢ r%AIP¼¼¼Œ Æc‚—ƒ—ƒ—ƒÑÁè`tðbðbðbðBðBðB02Œ žžžž ž ž F#‚Á3Á3Á3ÁSÁSÁSÁ“Á“Á“ÁãÁãÁãÁð`x0AŸàäàäàäàÄàÄàÄà„à„à„à¸à¸à¸àØàØàØàèàèàèà¨à¨à¨àÈàÈàÈàðàðàðà°à°à°ààààààààà WÐ+èô z=ƒA G°°°°_°_°_°o°o°oÐ5èt ö ö ö :ƒÎÁÞÁÞÁÞÁ^Á^Á^AÇ cÐ1èt:íƒöAû`÷`÷`÷`·`·`·`×`×`× mÐ6hìììììììììlll´Z­ƒí‚í‚í‚mƒmƒmƒm‚m‚m‚A‹ E°U°U°UÐäíCÞ¾µá­ om8åSþ7åê°€JP·\U·Ü¯}=èëA[ÌÜbæ3óeå…ç|>çó9Ÿ[/Pó}Üóãž÷<ñ‡8ñ‡º•ä3ß8ó3Õ-PÕ®q݈ëF”>éöh·G»=ªfX>ÕyU­âòëlù5·¼Tùµ¸üºœµFÍ$P%§§U}ªº¤É’&KšpÄGpDéeåÏY#Ô|_>ñå_>ñÀÎìüÀÎyü¹ëc»>¶ëcÍ'7ŸÜ|rþ´kþßù¿Ÿ°ð„…',Úyhç¡¿ýÅè/F×öxù¦—ozù¦ºU þ¬ú³êÏú¿óõ–®·t=í j‹=éÓ“>Í#ÕšìÐd‡& ÚhÐFƒ÷nÜ»qïÖí[·oݾ먮£ºŽºb—+v¹b—W{õ¸W[Üjq«Å­ª§´·ýõ¶¿Þö×Òç!½õZÔk‘õÈò©þ‡+*îæ¶7·½¹méRõدÇ~=ö˯ÑYwÔ4`0UxzZu'©ƒ 0h@é¥äƒCÖœÓb(볺ŸÕý¬î©ÃNvê° 87˜²Á” ¦äÿ›\»êaÌYcÎsVÝj¤í@MöÍ%ß\òÍ%yÜ[YGÿa¿û}ØïU}+Ø}'Þwâ}'–^îч}øÑ‡[§,Ÿš|6;ï¥y/Í{Éù6µ…X @žžVÅ)à7|pÃ7”]Êà?0øë€šéñ¡}|hUD››œ¾É雜^[.»äÃÄ•ÿ‹êÍ­7·ÞÜüðk½vÐkÍ7kܬq¿_ÿûõ¿_?íÒi—N»ôù5Ÿ_óù5—uàhíöIÊû¨ ú fø3ß©ê[Á~ÜþÇíܾ*ÊÿØ«½úØ«¥—uÊó§<ÊóÖ,˧æŸÇÞ9áÎ wN(]¶|ì"çÛÔ4`0UxzZÉ'ë-]oézÝ/ì~a÷ KÏ¿eÿ–ý[öw¢ @Í”Úìi×Üù“Οtþ¤B%oV§Yfuâyñ¼x^ÅKþ—Ûž¶íiÛžVhÎ;.ÝqéŽK°ð€…h“8ow«PäOèVÏÙQþBÙëÏ^öú/a>u»»ÛÝÝîîνáÜαڌÕf¬Vúoò›ÒJ/ëœç,8gAé¿ùyÎÏs~ž3l­ak [k¿k÷»v¿kóÑP´*~¤®9%ÌoÊ,[Âü5mÖ 5‡X @žžVîIj¡û‚ÜòÁ-ÜÒZ ¦)d|Úuµz«Õ[­ïí}oï{û¨F}0êƒÏøðŒÏømðoƒœÿwþïýÎïw~¿óó¿/n53ÂÉ/¡–_£ï}ÿèû—oþï=ùÞ“ï=Ùðñ†7|\¸ËwÞnªGI§’N%ÊßÕŸUVýYG]pÔG]ðâ˜Ǽ8&íÅýþè÷G¿öüaÏöÌ^Ï^Ï^¿ä¼Kλä¼Òc¢²ï]ûÞµï]‹:,ê°¨CEÊùL¯gz=Ó«àÓk [kØZù»ŠKÿûE]ôÐE½|ÓË7½|Óñ¿ññ—ýî™ÝÎìvf7-Š©kZ9Ë~î\‚šF,  OO+ë´/ïà•}²g³Ö›µÞ¬µ“KjšüIÓüY“BÇÇ63ÚÌh3c±Žpì²>íºó»;¿»ó»…æ¼Ë »¼°Ë 5íi×ò/¡–á£êÎI\l0°rý:ü×á¿o1¸Åàƒ í…ò¾ÿÄ'8ñÀe=G:¨ñAj\YûºãZ×ò¸–UñDr³9Íæ4›c¯KÅÔ5­œ…žnµ«ý[í¿ ÷‚Þ z[›¬\`0UxzZY'©…î+<«ÝYíÎj§Ë@MóÂøÆ¿0¾Ð‘qÓ6=`ÓfÌ1wÆÜå›ÿÌY3gÍœ•ϧ¶9>wás>W¨œw|tÇGw|TÕ5¿ÛÀÝî6ЙÎÛÀÀÊrÛüÛæß6¿Ðþ§ùäæ“›OþzÐ׃¾´|ó_Üjq«Å­þákfušÕ©È/Ü"Ü"Üâ‚ð‚ð‚0ÄŠ‡¾'}zÒ§'}úøÐLJ>>Ô^—Š©kãy…µÉÊ%P£Oøæ÷Ÿß~ÿm®ßæúmþä¾Â|¸'õ@MsÊó§<Êó…ŽŒW}wÕwW}WÕO»ž:ìÔa§«9uÒå.ïty§Piß®ÿvý·ë¯øRòX½ÐR¶˜¹ÅÌ-fº …óv—k•e¾{ôÝ£o¡ýO>lòŠ/å§Í~Úì§ÍJVY{¼ü[ùMêùO Íy§Ù;ÍÞiö ƒ ðæ^oîõæ^ö´¬È‘ºf–6^#^#^£Ðsüùx~Ö)+‹X @žž®øIê£o<úÆ£o:•Ôq 6ó÷Þ­øR^=îÕã^=®ÐRÚÝÝîîvwלcåö­¶oµ}Á'r>ŸúùÔϧ®øRòw'ZJé7k¥Ø; €ê4kܬq³ÆÚóìÐd‡&;4©Ü½Pùûº8ñ‡XÎY¯·t½¥ëqÇwqG¡ù·ìß²Ëþù»Š­}V¼ÝÖÌÒ.i²¤É’&Î+¨™À`j|–äËäËäËó'?éüI]GuÕuTëö­Û·nŸ_¬iÒ¡I‡&v\oÇõv\ïØÝŽÝíØÝò{î~ûËØ_Æ®j56þ²ò>…¾•_\»¶äÚ’kKö?uÿS÷?µt ç¡Zþ|Fÿ«ú_ÕÿªI;NÚqÒŽÕù»ÞýâÝ/ÞýbÈ-CnrË ëœ°Î ë´?²ý‘íÌ˶ñ%_²ñ% ^jðRƒ—òÁsòAx/ïzy×Ë»FDD,갨âÕSç…þ~Îçs>Ÿóùîœpç„ü=4ùÛþ i4¤Ñ¦ë7]¿éúùÅÙ³7:{£³7ʪêþ¹ÎÏu~®“7t̾Çì{̾y çÏÄäeË»^Ýíöh·G¯ØåŠ]®Ø¥ü–Pu§zwZÜiqÙyþ»Ñ¿ý»‘='µëÂMîÛÓ¿=ýÛÓW|)_ ùjÈWC -¥ôS/5¡NÊ '?kZñ¥|tÌGÇ|tL¡¥äç½5ÿRTMî-ëùð;«¿³ú;«ççº{mº×¦{mºe¶e¶e–ŸsæåÏÏ“™öÈ´G¦åHI¾¹ä›K¾¹$ï5ôܽçî=wÏû›œ¾É雜ž÷¶;j»£¶;ê¨ Žºà¨ †vÚyhçŠÏ¿X{a``eyåŠW®xåŠB{žð·«Ü%–}î¶²^ Qv ë ¦l0eƒ)eowËqyH¦ °"Gêš\æË½ìÐË-[æ}’}’}딕E,¦FÑfD›mò;ã–ï-¥/'}ùÄ—O|ùÄò•$N¶ÞjõV«·ZÙ¥äaXe´å§¶…~Q~y¢²ºîùe |Ày[É´K§]:íÒJ^ýë-]oézÏ5®ùsÍ÷þiïŸöþ©n¥ºûÙ»Ÿ½ûÙÊr¤âJòÐwEJþYÝÏê~Vi§wùÓ0¥œ\ù…¼å«™Š{«Ù[ÍÞjVhžï=ùÞ“ï=Y¬[7hÕP¬nrß÷ø¾Ç÷=V|)ù3%å¿i¸æ\0º¹íÍmon{S—?ÿäç„+¾”‡<Ôà¡…ê$ß7Öä‹h5§g´"çóן½þìõyû·y»²Î6sùq-côŠœÍŽ9kÌYcΪŠ¨9½°ÊíU•žs~;BÙ¿É£ýª9 ªŸŸåÏÖü=¿pnÿööooÿ¶ÐÖ1ò«‘_üªr—˜ßþ^h‰ùMù˺m¾~ãë7¾~cÙ¹]7âº×ø¿½ÓÜzsëÍ]‘=€¾ž~Dí:‚äó8RÓ€À¬4?ÏùyÎÏsòûà*·kÚ¸wãÞ{¯È¡¥ª»mùΠ͹ע^‹z-ªÈR*RÎüˆ¶iÛ´mºâu›?w[Y‡íü9#¯9òš#¯©[-òwÀT]—>?ù¾ ¼ ¼ \ñÒæ]‘| ®H™ß¿÷ý{ß¿·ôó.+®þ¬ú³êÏ*ݪb{9ï“ó>9sËŸ¢^‘·õÔü­´j(îm³²ÆüÈçS[†€®åßP˜¿‡OϨêÚöÇ=?îùqÏÒÃx.ŸüùÝÒ%Ÿß~ÿùýKwVDéKêUqä­ ½°ª €ïzí®×îz­z.òþ~ýï×ÿ~}¡¥”~ûæªpVµ]>ŽW¡­£*F>˜;eS*ëÅ?nÿãö?n_ö&­Ý/Úý¢Ý/*ÿ Éòwôõô#jפPÉó+¥Ö,ÕO,f%ÈO˜:n×q»ŽÛUOì·¬%,ÿÍae/FTܰð€=úîÑw¾eç¼ùf›o¶ùf¿O¿"¿}Å/¾üÉik©;—¯ Ì{iÞKó^*}Š\=zì×c¿û­Èó%åÏÀþðGå–9¿t›¸¬¥­Èýw5s,ÿ "§]}ÚÕ§]½|k°¶lÝ”5åSþ7åœxàÄÕ†V µ÷òGårXþǵ<®åq-WËvßþÌðgʯù«ÍXmÆjzFU×¶Kߨ·âv~wçww~7޶ü÷,.ŸfušÕiV§*.Çׄ^XÕµœ|8ëByÉy—œwÉy•µ<ÿÛó¿=ÿ[¡e=üÍÃß<üMmÙó Q @¡­£²^QZùç6×osý6×W|Û¼ø¶‹o»ø¶Òsȇ}.;jE¡>Z~tÈûYúz,ëѤ旼Ш'˺­Ae €©VyˆUhÀ¨ÿŸ»ÌÖíµn¯uŸ¼òÉ+Ÿ¼rÆÜsgÌÍïøÎËßáqÍ›×¼yÍ›¥;í•{g÷g¾qæg¶%ËÔ²F‰×ßzý­×ßZ¨´ÏîýìÞÏî]Õ]ú¼n_óâ˜ÇäïËïªþt‡Owøt‡|мB§€¥m8vñŽ]¾º=gÁ9 ÎYPþüó÷Ñæ5–°Sº%äæP^où3…†Ç©¬Ó¦e­íü=gÿÝð¿þwÃü-eùsÏù`>gv;³Û™Ýªâ‚]¾¥l=|ëá[ÿ\öšÓlN³9ù}¸ùý¶ùsÒùÛÑòáæò{ü ]Î+´¬HmR©² ªù[7e=}üÓÇ?}|éZÍÿ¥âçâ¦UCëj¾2ö•±¯TÅyTî_Þùå_Ê?þæç«Bmç±nùµqò['¿uò[5g¯U»zFËw>œ“_.Ï_Þ‘_ÈÎÏáomxkÃ[–~¶uùnî}ÿèûGߟGéùPŸéûéûéûgvÆagVgÚµ¥vüÆþ)þ…¾UñzÈGª¬-%¿õŠ?·W=ÀP¾üa€üšCÙOU,ñÞsî=çÞs m¥_UP‘¹å/+=‡üø[hùñ(?þæƒ6Ïœ5sÖÌY˺7Ð×[ÕÔÞ#È}'Þwâ}':Rƒzå`0Õé¶¿Þö×ÛþZè¿­êå›^¾éå›–5=aÖ9aBsn>¹ùäæ“—²ºpS_žúòÔ— Í¡tù«îâ˃[>¸åƒ[Vd)‹:,ê°¨CEæ|à¶n{à¶/sùoªË•zYë¤ôe‘²äðG¤ª/xõ½½ïí}o¯Hù+2·£.8ê‚£.¨x9ûD}¢>QùóÌë¡âï Ì/5Vϳ&—w½¼ëå]Wîó++w리²pi7œ{ù7œûÝÑßýÝÑ:ŠZ5Ô–­rÇ¥;.Ýq鲎mß°µÓìfï4»².hÖ^ùÓByMªü–¸<.Õ3Z‘žQÅ5y8ìììT~ù+~Caiyx\YgÚùöRܽ°Š—¿âó)½ªâŒ=ò»ü Z ”¿GݾÕö­¶oUh{¼sÂâÛ{eý¥¾å¯ëš_ò¼ŸR¨üùÃ'Ö/ÕI,¦šäÆ”?hIéáj—yë-]oézåŸ]õÝUß]õݲθüÐkÓ6=`ÓÊ/s~ÒÙéþÑéeçÐbp‹Á-W]8+}ÏcÕ-¥"s+ÿMu¥ß’Uu§ÅÛž¶íiÛžVuµÑå.ïty§rãüŠ—9¿ˆ\‘è·:Ÿ„^ÖùÚ^ i4¤ÑÊ:ñ­É[7e•çJ?ETv®UV 5Mù÷•}.ó…ñ/Œa|þöÐüéÀü¿óïw~¿óû_þÜòçKV…ËvùŸíldû# ÕF>0cI§’N%ôŒV¼gTñóÀÛ¿½ýÛÛ¿­Š‘JZYe^Öa kc/¬âs®ø|òg— Í'*nE¶”ü©÷Bóéé—ž~ééš¶_úW‹ÿ÷Ç‘ªGù7Zåcfä7šèëéëÕ4µ7^Ð{Aï½Ë¿^jýRÀ`ªÉµ%×–\[Rèxµâ³|0–]Ûõ±]+ô‹å[Ê[ÍÞjöV³üî²s>xúÁÓž^è»·luËV·lUè·¿vÐk½vPÕ]|Éï _‘ºÍ‡§«È@a™Û[†Ü2ä–òïå_ñööážñáå_ ¬º 1Žpì„c—uÎù%Œêí”çOyþ”ç Í'?¡_ñm­"­bùNRó!¡ªó¢vÍܺ)+^#^#^c£A ÚhвނÞwwW…ºÒª¡¦™;eSÊ?F¯¸Ó®>íêÓ®^¢ß|D™òËÍcõ§Î~êì§Î®iuRÛ{Få·Ãå;Û,ý¬p!M:4éФCÅG¯)-x¹üç•+7®i½°Š—¿²æÖîîvw·»{EÚða#yØÈB±§Ó€BòÞ_ùûº›ÛÞÜöæ¶µqO¢¯·*¨ícHTÝKp`Y €ÀT¹ü팅vý¥¯«¬%>¿æók>¿fU »´¬AWù1dé÷àV]yò·‚­x­–€nE.š\øÜ…Ï]ø\þgÙO¥=±Wçªâ‚Wéû(—uΟtü¤ã'W¤Ìù}šå÷ñ¡}|hemkå·Šå«çhƒhƒhƒBó¹ôäKO¾ôäê<=]Y[7YSùæ–5 É;½«Â}ÍZ5Ôäm3²V<ôÝbæ3·˜¹¬×^yø·ÛÀÝî6°üš)ý2=£ê<γË:ÏéM§7Þ´ü9_ýñÕ_ýñò•9’¾²ÎZkc/¬âå_Öþç¤ÿœôŸ“*wžå÷kÎûä¼OÎûÄ9 Pö*PùäZíßjÿVû×ö}ˆ¾ÞªÙ—¯-å¿ø¶‹o»ø6/D & €©r¯ßøú¯ßXhw?hÀ ƒTîó»Ýˆkùæ\þ@¥ï£_ÒdI“%MºŽê:ªë¨Bï{«êŽw~wçww~·²«ù/ª-ï4ªÈp‹UqÁëÆCn<äÆC–¯Ìå_¬H™óÁ!Ëà¨r×QU´Šü?÷ûs¿?÷ûÊzê·ôó¿ÿuø¯Ã‹µöò3üN‹;-î´¸"dÍÜkGϨüúÏŸå­ÜcVnôý£ï}UÔCåÀ5¿V¹ý£i—N»tÚ¥•;ÂÓ°µ†­5l­Bó|ãÌ7Î|ãLÇ —¿X!òµüý[óÉÍ'7ŸüqÏ{~ÜS_O_¯&«í¡éà?0øB¿"¿QÃZ¦z€ÀT¹òߺ±|ƒå®ÈÁò„…',^¬ ½°ê+kïŸöþiun=wï¹{ÏÝÿ$¨XoÇõv\OPü~ýï×ÿ~ý çÞpî çVdßž¼òÎ/ïüòÎ/Å´Yúz«¦Ú?yå“W>ye¡_‘_E´–©`0U.?á(´ÓŸ½þìõg¯_ËÒw½Uõåƒ?¹ðÇ€?üQ¹QG!ù€o•[«ùÂ…–˜¿¥ieµ´ü ÚmF´Ñ&±úà¿l·"eÞÿÔýOÝÿÔBßþÌðg†?S5ÿÄÍOÜüÄÍ•UÏ….÷äò è+ëT»:·îšöëjcTSzÎmf´™ÑfƲ–'ýç9?ÏùyN±v µjªòWµx^ÛµÝQÛU‘½z>*CþÞÜb½}¤¸ûz«¦Ú¿zܫǽz\¡_ÑkQ¯E½YËT°˜*·Gß=úîÑ·æ\ ,]žù]‹:,ê°hÞÜÖþÈöG¶?²rØå/1ÓUå®ÍüîÂBKÜý¢Ý/Úý¢ª8)Ék;¿ë?ó÷ºåo>àˆŽ8àˆÒCÜTÝ¥áòç–=´².K•n®¬)ÿ›ò¿)ÿ«Šm|ò{“ß›ü^eÕsé·ß••wÛªz¯U¶îšÖ9¬õQM©÷‚çIë­Voµz«-k ó7'ÕÆc±V-@UþêWþYSî·yû·ÜþÇíÜ~YëüŸ?þóÇþXhΛµÞ¬õf­‹ã¢^~¾Wè—îúØ®íúXmù¥ÅÑ3ªºí®ª·èêÙïÕü^XUÔsÞ×(4ÏŠ6^þû;?éøIÇO:ºÆRçH5Ÿ:¬9gbù5‡nv{´Û£YnÞ×ëUÿ«ú_•?+\Ü[zõ÷õ´í•Õê-mòͽÞÜëͽ ýжiÛ´mêæª‡XL•Ûö´mOÛö´šs Ý¾Õö­¶oUY‡™÷ï}ÿÞ÷ïmðRƒ—¼Th‰ùÿ}ïÉ÷ž|ïÉêìÎý´ÙO›ý´Yå.±ü;²K¯ëes>àj>øÌ5o^óæ5o×´Iùs[ñacW¤Ìùûl }+~¨*¶ñoOÿöôoO¯¬zÞêÅ­^ÜêÅBó™±ÚŒÕf¬V=û®•»u‹Êª§òEKÇ$7æ¬1g9kÅŸFªNZµUù«S~ƒZ¡²•>ÏY¾ù—~zÁûë×íµn¯uk{o"B¶Ðo¬º1NôŒ–o«¯ºýyõ/V…^Xõ¯ÁûõدÇ~™Ã>É>É>IÙ9ty§Ë;]Þq±¸˜Î‘À‚®òÍ{iÞKó^ÊÇ>©øÛÝÝîîvw{jÜSãžZÕöÕÙ×Ó¶Àå›ÞtzÓéM ýŠm®ßæúm®wL§z€ÀT¹MNßäôMN¯9ÚfsšÍi6§r3å/ñŒÃÎ8ìŒÃªâÀVþrô^Ð{AïÊ]âoƒü[Áw×åVü—æ'ôù;«*w-—ü°:à•{Yjƒ)LÙ`J¡oýÑï~ô«Šm<¿£¶²jfãK6¾dã‚—·æ|>çó9Ÿ×œ‹&U·u³²Öònw¸ÛÀeÝçTÏàäZ5Ôåßóž¿…®²"¢üéáÒç`µý‚QY[f[f[fÅñ늣g$®í½°ª«çüýÇeçYVýYõg•?ÿüíÑ…J•ÿäøRmpM €óWkµnߺ}ëöYJËþ-û·ìÿÈ´G¦=2M/¦zúzÚ¶¸|ùkM*ë¼V„XL•+ÿî³êWº<+þëòî}‡îºwè^h‰¥­ê<±«ŠKù< -qñŽÝplE~iþ>¼­‡o=|ëá+²6óºÝs=÷ØsS‡:ìÔaÏ5®ùsÍ«®CR“/K•ÿFÀª €ËoËZ3õæÖ›[on¡ùäCUϾkånÝÔ„nó1û³ï1û–¾dYHþþ¤šÿ»´j¨gµ;«ÝYí meWn}åÖWn]7#ž³àœç,(ÖK™µkU=#píí…Uu=—~Ëæ²ÎÿÖ†·6¼µaÙ¿/}“«ãKU´yÀ5'¾ýÛÛ¿½ýÛŠÌ9éô~Ãö^}=m[\¾…,<`aÁ›S+r[T°˜*Wþ=ûù½Ì+«#´âó¹ê»«¾»ê»Šà÷?uÿS÷?5eõtçªbð±öüaÏö,´ÄÒCšC>ÈsÅOŒòAŽky\ËãZÞñÑÝñQ°S°S°SEN€Vµ¸üA¿ïñ}ï{TÅÖT~«XÖš)ÿ¦ü9§êÙK¬Ü­›švá,¿¯¼¶ÀZ5Tý®ÝïÚý®-´}ýï¾ÿÝ÷¿û*w‰ÙëÙëÙë…–˜F]Û÷ÃÅGÏH\{a5¡žäðG¤Ð· …GÜqÄGÜá21­õ–®·t½   Âò÷NùÍâ>wás>WÏôõXñ#im)~í®Ð¯ÈÇC²ýR=À`ª\éW»—•ôT×Ä'8ñÀêgY»îóÑ1S¹¿zÚ¥Ó.vi¡%–^×e¿›ßØbp‹Á-—BÂ:'¬sÂ:S_žúòÔ—«.¬-¾x÷‹v¿h÷‹ }+¯ÏªØÊoËZ3¥ßRÖÇ=?îùqÏUaëfåʇoí{{ßÛûÞ^‘õ^ó`­ªSùDzª¸™)¿Í«Ð·;j»£¶;ªönÑÅ´§*Žž‘¸võª¿ž/=ùÒ“/=¹ìœ>Þðñ†—]J^c…Ê“ðäÈÅ*§¤üýÒ./ìòÂ./¼qæg¾q¦Š¾Þª ¶¯¯üÚ]¡_Qúñ뚪&Såòg íô'í8iÇI;Ö®_”ß›ßfF›mf”ýEþÑéþ±ó»;¿»ó»eÿoé÷~Uõ%Œç{þ·ç«Üß>¢Íˆ6#ÚZb÷ »_ØýÂB¿î±W{õ±WË~Çœ5æ¬1gÕ´K<µå²Ôa#yØÈBßþÌðg†?S[ij{?»÷³{WVÍä]»BóÉß´*lÝT§ü=Ö¾ñ辱צ{mº×¦ï0çû½üb„c+r”•‰V¹K,xØB¡Km‘ß”SèS»~WqôŒÀµ«Výõ\:¤©ÈR®¿õú[¯¿µìßxG ·‡¿yø›‡¿)_Qúy_5¦¯·ê¨ípùgíînww»»µ=ª‡XL•»b—+v¹b—êìWµBCÓäï^ÊŸ³÷Ô¸§Æ=Uoµz«Õ[­ì_öܽçî=w_ñáVþO¤ýmÀßü­r{¡»¹sùÿ-ô݃§<ýàé…¾;ðÁ|°:Ÿ.¾xЀA (ô­³7:{£³7ªŠ-â’ó.9ï’ó*«f Íç•+^¹â•+V…­»ú;µñQ+bzÓéM§7½¼ëå]/ïZñæ!Êé}NïszŸÉïM~oò{5¿Ó¢U×Þ7<)íÚ«”VþKò¡\+w‰ßýÝÑß]¬OëÕ®½nÍœsåöjW/¬úë9?g(4ÿž°ð„…¥ÿ¼Ð“ñgvÆagfßÅgÆÜsgÌ-øxÀjõV«·Úmóo›Û|{}½USm€_¾éå›^¾©üWBغ©`0UnÔ£>õA¡~ïSzŸÒû”Ê]⣿ýÅè|8ܲŸäËäËäËå›s´A´A´A¡ßR:~«ÜK Ë×uÏŸ¤¬´j]oézK×kµ«ý[í¿|Ãsºë0÷Îêï¬þÎêÕÓ(Öøµƒ^;赃 }«YfušÕ©Ü¬%M–4YÒ¤üËÜ˺ÄþWõ¿ªÿU…æóøÐLJ>>´*öT5më®þŽDqG5y[Í;!‡¼}ÈÛ‡¼]ñRåC¹ÞxȇÜxHíêziÕTå_YmrïŸöþiïŸ •*_oå.1?¿-´ÄΟuþ¬óg.²èUVÏH\»zaÕ_Ïå/¥qïÆ½ÿ߈ï~ñîï~Qè/W¤çÔdýÎïw~¿ó mû·luËV·lå¼E_oUVÛ×Q>a¡_‘?Fb-S=À`ª\ù/~¯?«þ¬ú³*÷0VèÎúÒ÷»-ë<žóóœŸç ºöè»Gß=ú–óÜ)s§ÌRè·¯øVÕy4Ø)Ø)ØiEÖc£!†4Rhó^š÷Ò¼—*« ”?HZ±À¿Œýeì/c«ó´¾ôÝ•µÄûÿyÿ?ïÿg¡ùÜõÚ]¯ÝõZåî£jæÖ]ý‰â‹jògìnûëm½í¯­Û·nߺ}ÅK²O²O²ORzOR»Ž¼ZµUùWn[-t˽ìÐË­Ü%–?G^½=£Êê €kW/¬úë9—ßìRþ²þÝèßþݨ쿷ìß²Ëþ (>_>ñå_>QhŸÐiq§ÅÛöõõ¨íðîœpç„B¿bh硇v¶–©`0+ùЕ;íêÓ®>íêJ8 ªósŸë”Aù™§;uةà u¹ß®ÿvý·ëúnù_ôZÔkQ¯EUw ã Æ5>¨ñŠÔjþä\û#ÛÙþÈBK9òš#¯9òšòë¶ô¨e僩®xȇ@,=ÔáªWd-·Übp~ê¿"å\ÔaQ‡EJ¿·£²j&Ëo¡ùœ³ö9kŸ³våîjæÖ½²öƵ=ª™xàÄ'Ø÷ö¾·÷½½âËÍÈ:åùSž?åù·š½Õì­fµ½ë«U P•ånÅc_ûÊØWªç[~³Kùõý§?¢gTY=#píê…U=ç·ZÜjq«BKÉ_¨Qè½<¶¯€â3ä–!· ¹¥Ðž!ÕL-éëQÛàüÚ]¡_‘_·±–©¦¾¹XLõÙøËÆ_Vu—ê°ð€…äï®(4çüY®esùµ øcÀþXñX®*.¾TVÝæÏ©”?çüIÐòçÓ¡{‡îºšC>¼êŠ´±ü‰ŠÒ³V͸üµ´<Ä]¾r^ôÐE]ôPUÔó‚Þ z/è]h>y+ª¬ýRMÞº©ˆß¯ÿýú߯ôGßxô½6ÝkÓ½6­x›ÜêÅ­^ÜêÅüíãßžþíéßž^kJ«†š mÊß‚þùã?üçy@²|KÉ¿ÛkÝ^ëöZ·ÐR =R»ü«Ey=£êìUõùpñ=\zaËZþ|VY­½üÛï ýß÷ž|ïÉ÷ž,¾ýUíÝkAe)tlÚø’/Ùø½ }=Ê_Gµ¥ü…®o4h£A ÒÆ¨N`05âö‘Í­7·Þÿ½·5×QEæ9{ýÙëÏ^ÿ„uNXç„u ͹ôsŠ/mþ,é3·˜¹Å̲ól›¶MÛ¦Ÿç÷=¾ïñ}BOÁ6éФC“•{ïviLÙ`ÊS*>ÿü²Ñ•[_¹õ•[—?çÒ§ïåϳÐ_e/,k»zõ¸W{õ¸Š¼‰vU€—µmä-³"óü£ßýþè·¬ÑoåÖse Xó·n ™ÞtzÓéM+rIôO†ûG§túÇ7?qó7ßѪ¡¦)éTÒ©¤SEöNùÙlÅçœo¡åG¿¹|ðØâîAèUOϨzÖHñiׄ^ز–??£¨¬vþÿiïÎãrÊÿÿãëÃgø|ÈÒ2Ò‚Hiw’¢Ôˆ,c,‰!d)[–!4öÉV„‘-ëdÆe—-²4H–k3kCIZ®ë÷Ç5ßÛ­ïïêj.Z®s÷s»½os3ɹÞçÕûœó~vλôU*•ýº§æþt«JÕ“Õ“ÕSösQüþbàêÊÞ¸×ã^OSÎ&Âßó÷;ßï|¿³"®^€ÏCLŒJõÆðáCùsWªÜmܸ!ðö†Ûno¯o*ÍÝÅå—_\& “„IT¹å.ý(Ê š6hÚ iʦc.¿4þÒøOýžÅƒEýN÷;ÝïtùÞ^*“°)aS¦?gþ9óÏ™yAyAyA´i=ÒÚVk[­mµŠ?/¢Œ|MßÖ¬X«²·÷†ÜroHñIÒ§ºN×<]ótÍÇï¿{üNþT¨¼~ä/‹^»oí¾µûН£lKÿò0Iõßs×”i©Ò/è‹kö¶ÙÛfoçý{Þ¿çý;Å&Å&ÅFÞϹ¹¹÷{Þïy¿çú¹ë箟ÛöFÛmo(~¯n^ݼº•oÏ,¼tòÒÉ×ÛÂÿé†"ù¨õ©S®¾¾¾ÅŸµkÿPÕ€fMßghihih)ÿoùU®ü\,‚äçôÓ9§sNçÍš4_•ï9å·)¿MùMãžX£ͺ3ªœ#"Ö'€Õ{ö©ûÿÝþïö·_þ qù/€Ê×ìü¼KþÎ!Õûgõ½Õ÷Vß÷˜Ï™U“|n‡EC¸×CYÎ&ÂßsùÒ3ÊöÙˆe#–àø¢2C ®×¸^ãz yìTqpòË Ý“vOÚ=éSO“QÇ¢ŽESögN™9e攊û­ùòšz¿Ú´"úV>yt0ù`òÁäŠ{jùó4 hÐ$ æ_1ÿŠù×§þÝØÌØÌØLqLKÉÉ_]|­ÁòeÐþ ýÁÒW˜û¼ž‘OnVDokÊO7í¶gØžaªüBÃüó_Ì!Ÿ¬¬ }NUBVú*˜Ág”Ï(ŸQbúÙ÷ø#ü;£Ê<" yV^wd÷/Ê«4s]æºÌub¯¸jBUö©ï æ^¯*ÓÜc±êùªç«ž+Ûÿ;Kï,½³”ã‹ÊDL 5ŸÌ¬,¬,¬ÊyRLþELnLnLî§ž Ÿ¦=M{š¦ì;ÛÔ³©gS¯ì']ù¿"*ÿ#C#C#CUþU.ÑÊ·oåë²ÈƒÒÏ뇊›uˆrˆrˆ’¯%ÿ“½}ööÙÛ§*ÀÅ¿§É9“s&çÊ«·Û‡´i"ÿÞŠëeßm¨ÙP³¡fŸ÷s§)?ÝP¤,îèÝÑ»£÷Ž»;îî¸[ÕnS©j@S_¸øûNÊ7Þ+;U…)0ñ…ÜB»3ªü#"ŽX˜waÅ»»»WfL"_²§ôï\üµöb¯¸^wsÀÜë¡,gáï¹|¾NqÏ?õEå@y!&†š}Xüañ‡ÅÅokËòÛÐ#ùëÈ_?ó©¯z²z²zÅW#ø?ÓjÕToPýìí³·ÏÞ®œ›Cï…Þ ½–׉ââ§êû°ïþ‹¿´§L¾Øê/Å_{ø©Z¤¶Hm‘éééZÂ^•ºÆLÕ €åäÏéæææÞÔ³üoÉ_))ÿÉ­èžYpÁý÷¿[«­v¶Úù ßYº¡lÊ@¾ô¯†|5ä«sÏ]ßø¼ü·Ïld62™<ˆØ±9b³üUQå5éðyÿ·òÿÅO½„•ßxË×3*fTL‡é¦w˜ÞüIó'ÍŸhÇkÇkÇ[t·ènÑÝã'Ÿ<~’Ÿž‹¿Œ·¢/k†¿þjø+Û,Û,Û,ù±–wy Èëa¢éDÓ‰¦G'pt‚*{%_[Kþ•.M]šº4•¯Œk\߸¾q}÷8÷8÷¸ñã=Æ{ÜuwÖÝYB¸È«è ”ŸM_oúzÓ×ß\ûæÚ7×äÏOËÃx½%zKô–Èʺî>ºûè•:+uVêTþ uå+¢•>9.ÖŸn(’¯u÷$ãIÆ“ zªÄôS,_ÛU¾º›üŒ,¿6“_Éÿ[þçò×;Ë¿^>*òsÇQÅÝ í¼&œ³˜8HÜØ J=IDAT²Ýu[Ôm‘ùXó±æcu~ÖùYççâûã[Ç·ŽoŠ øåwŒfÀ½J?c yŸ‹ÿ‚¾âÃ$Åß T&``hði‹òêaömÅíU¤Y=£¬>'´›ÐnB;Ž ê\ãÑ3àΈ»0¼¨'«'«§ì%çò§Õ©a4÷^@þ¸Žâ>÷íÛ?–³<Ô…˜`ê´ø=ñ{â÷([ÓNþ„7½î„IþªRe=&_!˜^ ô+ aîíGÿþý‹¯]Ü‘ï|ä{Ž)Ô…˜`ê4©Ô@j@µ€»0Mä?ÕªÿTžj‘Ú"µE*ý€*WÂÜÛØÌØÌØLŽuã8Æq gy¨00ÀÔ brcrcrë|ð€Á À]˜Ð¼ßù~çûÊújFøŒðáôª\isoåórŠ{{0ù`òÁdŽ&Ô‹˜`êÐõdõdõë\;^;^;žšwaB³íöÛ>(ë«_›ýÚì×fôª\im?³êgÕϪ¯¸Ÿ;9vräºB@L 0õhŒÓ5O×<]“šwaB–ŸŸo›e›e›¥ØKÎmœÛ8·¡ÇPýJChû²%dKÈÅýõJC8{8§ÕœVsZß7CKCKCËçÏžp!ÀÀS€Hê_o‰Þ½%\n€»°Šö©pËC-µçöåÌ/g~9³ø¾íž´{ÒîIÌHCh€ €¦.‹îÂ>ê°M=›z6õníºµëÖ.®Õø¼+ !ìÛô­Ó·NßZ|¯üüü8¿C˜€ € 6ïciýƒª@¾ö˜ü\Öɱ“c'G·ën×Ý®sé îÂ*NöùìóÙç‹G¼ºët×é®3 2 2 êS·OÝ>u·ÿ¹ýÏíre€êä³[Å7!œIß>}ûôíÓâóoòs=gy00Ê„·ò@8€ €ˆ00‘ & ÀÀD‚˜€H ``"AL @$€ €ˆ00‘ & ÀÀD‚˜€H ``"AL @$€ €ˆ00‘ & ÀÀD‚˜€H ``"AL @$€ €ˆ00‘ & ÀÀD‚˜€H ``"AL @$€ €ˆ00‘ & ÀÀD‚˜€Hÿí\’ÊÛ5mÕ´%«i»¤¦ír¥oWÔ´]UÓ–¢¦íW5m×Ô´]WÓvCM[ªš¶›jÚÒ*}»¥¦í¶š¶;jÚîªiKWÓvOMÛ}5m¿©i{ ¦í¡š¶GjÚWúöDMÛS5mjÚ~WÓö‡š¶L5mÏÔ´ý©¦í¹š¶jÚ^ªi{¥¦íu¥ooÔ´e©iûKMÛ[5mïÔ´e«iËQÓö^M[®š¶jÚòÔ´}TÓ–¯¦­ Ò·B5mEjÚ¤jÚdêÙÎWSÓV]M[ 5mÿSQ0ˆ0ˆ„h`90€ªC´ðËÞ/{¿ì}î|…mIjÚX“˜ÕˆYXø«Wuˆ«Î ÄUgíá45mUgí᪳êpÕYo¸ê¬4ÌÃâ[]X]k WÕ…YW˜…YK˜U„YEX]«WõƒY9˜5ƒY-˜u‚Y'X]ë³B0k ~Uà—/^ˆö `@E ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ ‘ T¸¿žüõä¯'Iï“Þ'½OZ™´2iefÌ™=è·KI—’.%r~Èù![\lq±}âö±ïǾû^ð¹àsÁ'É,É,Éì^Á½‚{ô ˆÛõË×/_¿|þÜùsçÏ]H¼x!QºFºFº†žu!|2é é 錻Ëï.¿»<2'2'2§oí¾µûÖÖ*'žõ=ë{Ö_ÛtmÓµMS¤>H}P W W GÏ€zeuÈêÕ!16161vvòìäÙÉW,®X\)ûȯ_G¿Ž~qã"ÆEÄÅÆÅÆÅ>ózæõÌ‹>5+È Ü}p÷ÁݨyQó¢æù\ð¹às¡¼®ü]¸€òE ø'¡²PYèe£ËF—F{Žöí©¥&Þ1Þ1Þ1g,ÏXž±,Œ*Œ*Œâà@Åyú*ôUèŽ;:ìè`hh¨®ñù¶åÛ–o{|ûñíÇ·9.PÑR‡§O>µ÷ÔÞS{«käᄄû¢î‹‡=ú!ùCò‡dŽ TœwµßÕ~W;Ú1Ú1ڱ㹎ç:žS×ø?÷ÌÜ3sϤg§g§gs\ )+ùüÿœÿŸóÿCÏ@½€%x«ûV÷­nD\D\Dœ–€-i¿¤ý’ö/^¾xùâ%G Ê$G–#ËI­™Z3µæ@É@É@‰0G~ÛG¶lX|bñ‰ÅE’"I‘„Ce‘k›k›kÕ)ªST'!_ù]ºt=ã@ÆŒ5(»û#î¸?b쬱³ÆÎæÈo¸Õp«áÖ˜ô˜ô˜ôüŽùó;rÔ LÀ&`Àß²µ³µ³µ—œ]rvÉÙ²\ ÷+0;f´#$©­ùŸ»Õ·«s´Mï/ÜϼîëÕ¾óÙ}§¶÷>6«wˆÃª]OºåÙ­[¶¢St›“ƒkµÉoV­ñÈûÔù¼w†í Û¶¯æ¼šójGTw}ãõ×7vìܱsÇΟ7[>2©suüïQ&Ù ‚ž[ Œ©ÖVÒöTßõcÛM:·"r^û-§c7ºµË;ôcx²½Óæ€9»mªÍØ:\×tºó%u›L+Ëyç°Óa§ÃNÒãÒãÒãMPE^ß¼¾y}7n0Ü`X–Ør¬›ç—w=Â&Y5w¹ÜÁôG_½MIæ'ýâºañÕ¨Qw,fÿ°õßm¾õi²ªwëS^>3{™˜9üòÍø¦¯uº4yÔÐøóþ]¿q~ãüÆýö{ØïaMPÝýÎ÷;ßïÜ'°O`ŸÏ|»O“^ÍÞ5šÕa¢·‡Á½^ÖÁóL’;­éff4bͶ/Û¬¼ÓÒb©ß‚ŸfZ8 ›¾q·ùâþ6KŽ›êwýw@r³‘f§œ2ô¶–å¼³+dWÈ®BI¡¤_…€C˜€ J“Þ”Þ”Þܽ~÷úÝë?õ²;øNûÕ­£.oî¿ÄÑAvÀ¿‡‡D&ó÷÷ð(¯öúµw:n^|Îé§6úŸºoë篟¿~~aÍš…59Ê èù†çžorrÈÉ!'U]m%­›ïŒþÁØöểq.}d²+W<<Ê«ÍZrê¹ëŠø«bìçêèÙÛøÎM–C,‡XI“¦IÓ¤_(Až,O–wôØÑcG}êÕµóÂá-BGý¹ó…Eô¼ßoÕ´ß·`Á;åÕN¼ïg½£—Ið“3º®M·5œ®ú¾…è†è†è~Xþaù‡ådPôvÌÛ1oÇLi3¥Í”6ŸðômŠÙåÆù}ÿXt¬ÕÀÉß}a3·|Gþ9f×»HΈØfÔfuû{Ý v«¾oüù7òO¶M¶M¶åøB€!LÀPEeLʘ”1ÉñµãkÇת\^ûï³hÒûÖòA”oЫzûxø·?¹4 Jk×Èô„*ûldndnd~çì³wÎrÄ@öXöXöxOÏ==÷ôT}ze{Ðü[6/ í’SÝÊ7îU½=²t͇fm/[ÔÔk¡Ê>/tZè´Ð)?8?8?˜Ã¯ ^¼6èw¿ßý~÷UEínz%êÿ쟱ïUõòîW½ :|!Ñî]·'S]ZTSýœuYç²ÎeŽ8È×=®{\WõQ´·÷œ–­¿ðë5É÷êÿG ŠúËb޹M§=zIªìóøÜñ¹ãss®æ\͹ʇºC˜€ Ê9dqÈâ…*—Ñ?8vŒ5_úÚrÄש+ôUÖ¾Ë÷ wë¿öV—'Vžª|–m¹Ûr·årôTMÙG³fõéçÓϧ_飥qã¦ëí?m½áa»ûE²ËÝSÕú*ko ß3Õi§Wkmƒ¨ø,þÆþÆþS§Kšnšnš.5€ÊG a"€*Aº^º^º~þÞù{çï-ýry´¿M»«_~¿K¬ÐB_emΣZ¸íŸmÑ.»µ[éŸn¬ÕX«±VùÑùÑùÑT€ªàQÚ£´GiªL—Ä„-–ôZÜ[z{Õ÷§1Ž‘ÿjÒ¶aQéŸîÌ 3ƒÎ ¢TK™T&]Ÿº>u}jéc£Õ6÷€&§ J4²#´Ieí¼¯ÓjÚÏö0ó+ÓÒ?———OŽsŽsŽ3E *xÙãe—=¬¬­¬­¬K!û¥,©×*äN/‡¦š2þOš•°Åúaó\Ûÿê|[ú§Ûßÿýý©T&`0ˆ\þÒü¥ùK‡Œ2vÈØÒ/‘/¤ö3ì0XSB_emÚ·ƒÌtüNh0WÙ'í4¬Ó°Nò²²¨buÍòšå5ËÒGþ1»ûmlqÿÁé7n-4+ú-ÞI/;º§®±ŸmWúçÝí³Ûg·µ@¬¤iÒ4iZÐé ÓA§K‡=Û4ÑÞüxóãÍîÝ º(» ¨e>ßX?»­ßN·šýoóƒÆø¸×šü…IJåGeŸÝÌËÌËÌëù;ówæT 1I~ü ùAé"±ïWœDin諬M³Ë°ãÇÒ?û–”-)[x)4Q‘J¥þWü¯ø_Q6ú™,h{ZçIP“¤h»SšýþŸ¶Æí<‡ºžû¦moѵôñÿÙÔgSŸM¥ZˆIúôéJý¾‘…üÜ*^T#¿üÑÙ'öÛÖÒùo“E ë+]ÚìÄ'~8A ¢C˜€@„ “ “ “ûdõÉê“¥ì"84Ùy¾…³ÌÕ¿…‡¾˜¢_Åö§_U·­¬,c,c,cr7ånÊÝDåÐt×ã¯Ç_/}èîáèúF‹/ú-Þf™žÚìÔ¡Û—C”õÃ/ž¿xþâIÍÐxGeGeG³³³•®ï;cÄ5£óÒÙo_P¼õ5ÚtÃüž~~-y-y-¡phºÇ«¯~¼ú–ÁŠÜ³ÝòGqüsL¯;IÎÚYõØ¢?IY?„;F Œ D a"qÉ“åÉò&휴sÒNe¾?oîfl×XÜ¡¯b{Ü¡÷U‡ãÊú¤×š^kz­)ZS´¦h E@=yòäÉ“'ÊF¹F5újÿóîÑè.uÅýo?^¹ð¶ë£ ¿Új¬¯¬gN=5öÔXê€æ ëÖ+¬—ÒupÏͪeâµ`îö⊷¢gY)ës=s=s½G>ùp„ú ‰ÞÌ{3ïͼңßÉs™Ø,«:#ÿü=·‡Ú¿é¬?òqc¥¿þKø/áÔ*0„‰D%2#2#2CÙÅîžAž‹ì^Uµè·x›xàëéíN)ëŸy“çMž7™* YÞ¿zÿêý+íMÚ›´7)Žl ž6ø^kæë‘'\Vè·x[xâ’³ûRïZ݆÷U6þ?¨ñ ÆƒÔÍ:þt¼Ò§]{ý+¸½Éáª3õ¯ØŽ_»Èêeýãàà »&»&»F-Ð…‰…‰…‰N)N)N)ÊÆ·©©§$¶_WÑñ?àN´ƒUç7£†û(ëŸ+µ¯Ô¾R›ZBù"†0€H\Û~mûµíÊ.p7etmn½«*G¿ÅÛƒ‡zV³ÿBY_³8fqÌ‚Š )F$ŒH‘ t½Ã¤#w:§TÍè·x›ßÿâ®Rç!Ï&!н¤¨¨˜7)oRÞ$* €ð=1{böÄLÙÈï6aR³ß«rô[¼ó×îï,+ë«m—¶]Úv‰Š )- Z¤lL lwøOFþù¯nßp¨é°û›ÉMß(ë«7çÞœ{sŽŠBy!†0€ÆËÝ™»3Wé Ÿ§dH´ò#ôUlÃ3;×±´PÖo/ï¾¼ûò.Õ@ÈâÆ=Œ{¨l»5qÏ÷N»ˆ~‹·oíN;¸* 4&h u@ÈŠ *d¹Âr…å ÅqÌÚÒ÷ɤù™·“jo}ŒV l­ôiéßÞýöî·wT!»”s)çR޲qlTͨ!Ãí‹·s¤n´w0˜l:®q ¿Ú¿vÿÚýkËÞËÞËÞS](;àò’°?aÂ~y†ì Ù²+«[V·¬nôÌç!Ü:¸upkÅKÖG¾tÖÞ‘¿kÌx÷Ľ%´þÚz'š^4œ¦Ø{Þ‹¼y/¢ºÓ›™of¾™©lhß¿–é´íIÜ«¬½¸÷'¥Óg)!)!)!ÔaÚ´tÓÒMK•`Áu¯®”ÔcÒ_YëülxšQ´b¿Ùl¶Ùl³Yê'õ“úQc„&/î|Üù8* €ÐŒ7o:¾„‰ŒÁ =º4k-“^¹LÐûOmäïs:[?UìCý/ô¿Ðÿ¢ðEá‹ÂTáxõ<êy”²«Ö€Ñ﬘èÿ‡vΊëo%JWÞ»a¨4B³Bg…Î ÅQ«Ù>«í¬ùA·kÙ?`„/½–¾i ù.eãÿûà÷Á4”pÙö·t„Áª#Í”/Ë—å»Þt½ézSñD¸ÁÔÍÀú Â]ÕÛC[z´w.aUÈœ¢NEŠ:Qt„ =2=2=RÙÐë “^®:„»ª´ÒF—»»ß±´ku_§„eöÖØ[co ê €p)ŽW®}Ç\6¾Áä¾ê­ÿ¶}c,_*²Þg½Ï¢ÞÁ‹ú/꿨¯tÁ¯='¬mÞ0ª«ÞÚšz¦éë)ödè½Ð{¡÷¨7”pÙÉ]y¸«¥2ÂàÒ€FJqIqIq)á¼×E«¹–~Aؘ3îîĺŸÐFúwõ°qj`<µIuÅN¯_=¾:U@zìý±÷GÅ‘jgõElë~j›öxO=§%Ên&?&~Lü˜HÕP¯ÇI“')}í³wж¤5ÓúŸÚ¶»Û¾Á7Šý¹¾îúºëëRu„`úÐéC§U©º-ž²½ùSFòO~´ÝÙAvúÊΧYk²Öd­¡êðy€Ëapy!ä¦å¦åV©îÔ“¯ÍÚ­$Ðý¼6­hÐ(§нª}Iû’ö%ébébébj€ºüñ[ÄoÊnu ž%¯sD ûyí°·½Â›7UìÕè“Ñ'£OR{ÔkÜìq³ÇÍV£Y>Æt3úŸ|{ö';segÕpÅ! . `Ð0ª=ªö¨šâ‰Íà;íÿ6Ò•fŒ•yÔ"Ê-Këù®åž¬uYë²@]&™pdÂÅÑ)ÎmEž$·,í£…q¾ÎYŠ}«ë¥ë¥ë%Ó—éËô©@•ïMê›Ô7©Ê&¶æöNuµoÉT~YZç5û•Ä´‰iÓ†  .«W® Tz›Í±o©Çè]–vV¿Kámƒ•¾è‡?|ü ħ"®„ÁŸŠ4LðÅà‹ÁKxM±qÏÅöƒ‰oËÞ¦ä HvÌSìáþ«ú¯ê¿Š Pùr"r"r”>û›¿ââR÷º„¸eo½v¸L3HTìá4—4—4ê@åÛ’³%gKŽâ¸Ô'|Þ®–áLâ—½fxêˆm€b›9™9™9Éòeù²|ê@e*Ì,Ì,ÌTvå?[rE·íEFï²·.Ù#1®¥ØÃ'ÚŸh¢=uˆOE\ùƒUA £ ¶ ¶ VékÊÎ>Ò5Šø¶ì­ôúØ<êZ-´tµ+öó;§wNF•)>)>)¾„ÕÃÎOg1ƒà¶¼Ú‹¯·¾ê°I±Ÿ§™rdÊê@¥úUö«ìW}}}Åqiæ‰äÅm=™¾/¯¶Õ¢v]tCû9cBÆ„Œ #€ÊtÍýšû5wÅÉñ{#C #vyµ“óŽåÙTìgÏ=ôü‘:ħ"V/Â`e€@cܰ»awÃNñt5ÝÚA×´…ðƒÕw™aUG¾Ï÷{NìT ä½ÝîÖÕº™boÎ8œq8ƒjP™z¸öpíáª8"ýî– ×¹†pÔ3l’´w½í›+-¶Z´¬ÛXo‰NLƒüÖ‹[H´×õìàòÂài¨Ûdg ã‹“Út"´¸àqòjwoe7‡… 'N¤TŽ?êýQïzŠc‘å·¯¾¼«)Óës‡¦¶77Ý>E÷Ž|ÿ'W?êiã+´ýô­µi§ùaÅÞÞ`¼Áxƒ1Õ 2M{9íå´—Š#Ò¸g1¾VÑÂ9ý}÷æYÞrp軫éÅæ/lòt5ÓÍl°Rþßò?ûz¯µåž§&Ü9è`­»Äàˆaн””D5BuÀÂA\0hŒ§œ^pZñuÃl`^ÇXAÀõüë{h9y/iò¦±„¼Ï¿?Ö»sKÅÞö9âsćçÀT’I’>”ðì¯Áä&KéÈþ¼rÔ£‹š£ÓzWê{hM~9d{+ ­O”bUÇñŠÐbàï^;oZ Ò×¥¯K_GM¨;;íì´³“âXäÛ~Sy²Æ¬°{rø2£­ŠŸBhû<.ÅAbUBÜÞÒ²¥eKª@å†JC¥¡Ê®œçN;l¿Ycf—‰£ÐZ¨•®å Ê5g‘¿7æyêëà ö´|§¸Ïg­ÏZŸµ¦&¡:`a" &¡®®^ÂêmÆ8w}/äèwÑ‰Ž Í'(î¹ Cë[e—E†E†E†Ô$€Š–z4õhêÑ^þ¬7ùw‹>BˆKWêLjqîÿL—wlõTç—Ã=­ûüÚ,êBÇò'ƒ—˜”Ôæ S“aêÿú¿Þž®éúH8ð¥Ûµ:d)öùÆl@M¨=¦ô˜ÒcŠâX4kûe¶Â~í m½AÙµ´0÷ÙdhÛ:·÷6'2'2'’šPÑ2ggÎΜ­8 uìÝÒ Mãä€F˾2]|ß$½hj5äZÄ¿ÍvÊŸ÷•ÿ·äAŸ^MûÿÊþÛ—Î5í,´‘Ê£¡¶Õûü»Cßúî5 Õ _Õ ƒ €@äøåøåø)ž„¾:c’Òt§pBÓçëu±Ø=ÉÓÒîð¼ŽMÍÖØ=6¨­ûFÙITø¯­ž$‰o奸ç™u3ëfÖ¥2T´õW×_]Uqºþàç—·©7(Í JzÖuM³·†ÿmÜD¾Wö-ê­’ºÿ;ÎÿÿKþçÅÿ–²¯TW›½÷l+·ïû¼Ûµn׺]£&T´¢ºEu‹ê*ŽBVéX5è¸`îT{!G¿“L­/jWÓÛß ^³à>±óž¶,a%øÒÒR*@E;ârÄåH ë¾;´IÛïç—XÓ‰# & 0bÙˆe#–)žTÞ5Ùí!pŵEkÇ.t?¦¸ç’Iˆ$„ÊPù·‘Óœ†Nn' &+¼ØY•¯ìwÚýW£¿Ÿžš2ôËV„ö㇊ýÉù’ó%g*@ÅY¶gÙže{ÇŸéqç:ØymÒÜßwožå­†½h]kàß0@ká¨K;ZüT|Š_S`yÛè~ \Kºs€Ê¾òoÓÒeÀ—ºÂ!ÿÏÎ-ÔJ×rèàãmbps¸×æ‡mLƈs²þ·ü¿å^üµÏ>á« Zÿ!̳À˸ÖMû_æ¾Ì}™T&>ïç—XL47 & ÐÕ±«c×ÖÖ-´#s ®Àö­¿Ÿ‡[ ¿‡Ûªa«†­¨L•¹Jÿ»Ú–í…—ÞY\Špÿiv¿‘E­½þ~J,@Ϭá˜ß&wn*´½MÙ5ÌñwÅþO(H(H( 2Tœ@¿@¿ÀÞýüåÕ_$„3]>³ 9§íPƒÆ­’‘ïaÏ&³"Mü'÷5+n¹È~n;`B¸òwÌóÉ5üVhãäàékö›ÙÉõ§ôð£‘D;´AÓ!CÖº˜ÍòÈ?-6ñ¨í&ÅýˆŠˆŠˆ¢2ñy?¿Àb¥Yap5áüH>•4zìK÷|àŠn›eèl¬K½‚íµæÛÜЬèW¾â¯Ûõö+ôÏÈ?…ÎÏÚí„®¹áx»B{öWÞÞm¿o_'Oê €p̉¸.•<΋@­_Óäï¥Rì¶zÔ_» þzZÿðĘà`ë _4YC½·ë£›õÎù]ÝÓlZÿÛèÉÈOý,ß½=óÌ®–0Gþ   _Û= ÞT´„ý ûöT"ëìßÜCŸ¸¢[³g_Ð~F½‚Ÿûý°Ã®¦ðCßû=hw*ø¶½×Äfs‹ï»µV…zÒ›¨:ŽWþ÷\ Èýßs`¨sê €pÌí›êaßJåòuå ›½Ô®6»ß•^mÿþ…M€íd=ëêÇSo„Àã⤛÷ÂØ8ãdR»­ò1_¾oÆí-ºjOðqyºéÁ)>Dz¹9'èúeÉùËÿ\þ5Å?QÐŽ ›ì^ m䟹;yt[7ê @EËÎÎ&¨„'€y@U#ä'€ó}.úv•-^9ae-íøÆ³ ü{z¨~ÓE‡×žfm‘ÿÑÿBT×Kÿ{n€ÍÀ„FO}½×Úò€VnƒíZßÊ_ì9¾AÌ^«ãò=TiÍÈR¿’'€ 8á<ìòÓH}£Wò½j>ÃÆZÇ.¸ÃÕGCUÆÿæ5­GëüGÈgžP9ªÐÀòw ³±±±±©²µ³ngÝÎZñ´ÁÀêZ¸ÁöÛl§2ÙØØ*zS„¹ðoÎn8ÛÙ´\¨·J¾Ÿn6ª¡õb®îè,³V½=]Óõ‘ðC_UÖëÖ9¬3•ÉÆÆVq›woïÞÞ½Ç!¬<ðQX@ëjå;d”j—$ü5€©L66¶Ê¿òÎÀÅW|´7<´õÕ£ÜâŸHþ ±¦¬Ç²¹YúßšüìØ=›hù×ÿýˬC'þÖÜ\hp÷CÓ'¶ˆTìù§mž¶yÚ†ÊÄçݹk"q„¾Å€¸v'ìN˜â &âW«ÅÀ×&ìêÕÄþâž'6NlœØ˜ÊPѾÑýF÷]ÅQ(;ñ¬ƒÛõF¤£b¾©×Â_¾?ÍÞþ·ñ߯M[·bV#«èOm\Iöp×׸KƒÎ\R?©ŸÔÊPq^¸¾p}QÂ+ˆ 71ZN\qí¸÷1³¬â{~ÛÝmw·Ý¥2T´àôàôàtÅQè»}g&Úf©w„üÞè×@I@³UV[´3‹ï›ëűëŒó†¶^?Â\Ïßwožå­!×"þm¶³sÁ¨ïŒ‡©~óšÖ£uþ#ÿ>BÿÍ^u’è•ðî·’’*ª Ö\â }‹# ã—ã—SÂ+ ¿:c’Òt'pŵS‚$ñ­¼JxùvÝ̺™u©LmýÕõW×_U…®?øùeÇmê J;9xë–×ê €³÷žmåö½âv»ÖíZ·kÔ$€ŠVT·¨nQ]ÅQ¨Ñ*«̽“ê`O\mŸØyO[nRìùÒÒR*@E;ârÄ刋â(4ìÐ&móHáŒç-[Kžêê©~/ÿú@ýÃGl íÙßyÏnÕ±VÜg½®z]õºR“P°fwè[0h ýpýpýpÅÓO~›1Î]ß—sàoëa¢ì”_dXdXdHM¨h©GS¦–°U˜Þäß-ú¨7(5®ßôÇFÑâ €/Ø®Õ!Kq7Ø8`ãj@åè1¥Ç”SÇ¢YÛ/ë´ ®ˆÖdhÛ:·û<'2'2'’šPÑ2ggÎΜ­8 uìÝÒ Mh£ú€åZ¦amö´Ð?.2¸q]ƒþòÿ–ÿù€ËÓMμíaÿ\hѯ¼òèD¨mµžº>ôÝ¡ïQ“P°ðUз8`Ð N/8½àt ¿“n60¯c¬¦<\< òþþpXïÎ-KX}íˆÏŸ#T#€Êñ!éCÒ‡$űÈ`r“%td^9êÑEÓWÛZûÝëaçM+öyúºôuéë¨I•cg§vvR‹|Ûo*0OÖÄA ¹ —â ±RìmË––--[R*‡4T* UBÌ;œvØ~³0Åçóþ¯Ú¯/ØÓòboŸµ>k}Öšš„ꀅ©j†¾Å€Æ¸awÃî†âiiºµƒ®i Í €…ßnwëjÝL±·gÎ8œA5¨L=\{¸ö(a=ÈßÝô:× ²-¯¶àqòjwoe7… 'N¤TŽ?êýQïz%D’cܾúò.‘mù¶¾µ6í4?¬ØÛŒ7o0¦T¦i/§½œöRqD÷,Æ×*š»ÜÚ w:Xë.1ø²a˜bogeeQP°púG £ ¶ ¶ VÙ‰*ïüè#]£nËÞJ¯Íó¨®ÕBKW«„'ÀÞ9½szçD5¨LñIñIñ%<v~Ê8‹·åÕ^|½õU‡VœrdÊ‘)¼û@åúUö«ìW}}ýÖƒœy"yq[O¦ïË«mµ¨]ÝžºË˜1!cÅ 2]s¿æ~Í]qDrüÞÇÈPˆ]^íä¼cy6ûÙóGÏ=¤ñ©€Õ‹ÐW`Ð0Áƒ/_Tpå#ôU0h˜GÕU{T­„õ ¿Óþo#]iÆX™G-Bܲ´žïZn10QìáËZ—µ.kQÔe‘ G&QâÜVäIˆoËÒ>Zç뜥طº^º^º^2}™¾LŸ PùÞ¤¾I}“ªlknïTWû–Lâ—¥u^3¼‹Ñ*žiÓ&¦ @]V® \¨8:õ6›cßRÑ»,í¬~—ÂÛ+;·~üáã ñ©€+¡ï§"ä¦å¦åVÂ)íÔ“¯ÍÚ­$Äý¼6­hÐ(§нª}Iû’ö%ébébébj€ºüñ[ÄoJŸ.x–¼Î}QîçµÃÞö oÞT±W£OFŸŒ>IíP¯q³ÇÍ7[qŒpdùÓÍLå^;ýÛ³?Ù™+]^G’'É“P{ÔåUÆ«ŒWÊÆ¨à°”@‰##ùçµ_­ üм„_ýYYge•u¨=|àŠCè[À ‘R\R\RJXL«‹Vs-ý‚°1gÜÝ t?¡ôïêaãÔÀxj“ê%¼^»z|õøêT!èý±÷ÇÞGªÕm°=L”û©mÚã=õœ–(} ñcâÇDª€z=Nzœô8Ii à¢-iÍ„þ§¶íîöŸoðb®¯»¾îúºT!˜>túÐéCGªn‹§loþ”‘ü“õÇîì ;}eçÓ¬5Yk²ÖPuø<Àå‹Ð·¼€fÊ—åËò]oºÞt½©xÂÛ`êf`ý±®êí¡-=Ú;+ö¤NŽNŽNNQ§¢NE(:B™™©ì†çuÐI/Wb]UZi£ËÝÝïXÚµº¯³S±'÷ÖØ[co ê €p)ŽW®}Ç\6¾Á´¾ê­ÿ¶}c,_*;“¾ÏzŸõ>‹z /꿨ÿ¢¾²ñjÊžÖ6oÕUomM=Óôõ{2ô^è½Ð{ÔÊ‚¸ì}+0h°tßtßt_e§ÀG‡¿õs. Ü-½}=bkse}x>î|Üù8* €ÐŒ7o:ÞTqԜУK³Ö2é•ËD¼ÿÔFþ>§³õSÅ>ÔÿBÿ ý/ _¾(|A¥ŽçQÏ£žG)»j XýΊÉýh笸þVò‡²>Ü»a¨4B³Bg…Î ÅQ«Ù>«í¬ùA·kÙ?`„/½–¾i ¹ÒHé}ðûà÷ÁTÊ‚¸ìö'ìOØOè[¾€@ã·nÜZñtØúÈ—ÎÚ;òwïÞ€ ·„ÖÀ_Û£QïDÓ‹†Ó{Ï{‘÷"ïETaz3óÍÌ73•Ýíû×2¶=‰x•µ·÷þà”£¬÷RBRBRB¨1´i馥›–*}tÝ«+%õ˜èWÖ:?žf­Øo6›m6Ûl–úIý¤~Ô¡É Ï Ï W6ò÷\3;Ðd#¼Ò×>8»ÎÎTYï%ìNذ›CÙ—]Qߢ¾E} }Ë0h¼Ü¹;sw*})P†äA+?â^Å6<³sK eýöòîË»/ïR]„,îaÜø‡ÊƱ[÷|ï´‹¸·xûÖî´ƒëe=4&hLÐê € *T4Èr…å ˊ㘵¥‡o“Ió3o';Ô`Ò¿xëc´j`ëÓÊÆÿßÞýöî·wT!»”s)ç’Ò_aU3jˆÅpFûâíÜ©í &›Žk¢Øcýk÷¯Ý¿¶ì½ì½ì=Õ…²#./ÅŸ&ô-;`‰kÛ¯m¿¶]ÙÍÀ¦Œ®Í­wúÊÛƒ‡zV³ÿBY_³8fqÌ‚Š )F$ŒH‘ lL{–täNç¢ßüþ‡t•:‘x6)aH'P'P'0oRÞ¤¼ITá{böÄ쉙²‘ß=l¤f¿3õ/oÇüµû;ËÁÊújÛ¥m—¶]¢¢hŠ…A ƒ)ÓÛþÓÆ€‘þ«Û7j:ìþfrS¥¿úùæÜ›soÎQQ(/À&`•ÈŒÈŒÈ e¸{y.²{U•£ßÄ_OowJYÿÌ›¡~h¢7óÞÌ{3O«T“ç3±YV…žúÝs{¨ý›Îú#ß7VÖ'¿„ÿþK8õƒŠ@ a"*L.L.Lî“Õ'«O–² ßÐdçùÎ2WÿúâŽ~ÚøUuÛÑÊúÁ2Æ2Æ2&wSî¦ÜMTMw=þzüõøÒ'ƒîŽ®ßi´¸£ß,ÓS›]ƒ:´³qûrˆÒ Ï_<ñ¤fh¼£²£²£ÙÙÙÊF<—#®=˜—vÈ~³¸_£M7ÌO—~|-y-y-¡phºÇ«¯~¼ºôoläží–?Š{äŸczÝIrÖΪÇýIÊú!ìD؉°Ô *0„‰DëãÍ7?Þì^н {²‹àZæóõ³Ûúít!¦Ð7?hŒ{­É_H,[~TöÙͼ̼̼ޙ¿3gNµ“äÉ’”>û~Å I”ø¢ßÔ1» ;~,ý³oIÙ’²%…: &Ò@i 4ÐÿŠÿÿ+ÊF?“mOë< j’mwJT@Ûyu=÷MÛÞ¢kéãÿ³©Ï¦>›Jµ“ôéÒ”>ú}# ù¹U¼ø¢ß)Ù'öÛÖÒùo“E ë+ûì?œøáÄD¿¨pÀ&`¹ü¥ùKó—;dì±¥ß\HígØa°¦G¿iß2w Ðño8¡Á\eŸ´Ó°NÃ: ËNÈNÈN BˆÕ5Ëk–×,KùÇìî·±Åýw§ß¸µÐÜзHzÙÑ=uýôh˸Ò?ïnŸÝ>»}¨ b%M“¦IÓ‚Nú‡§`‡=Û4Ñý|ú•>Z7nº¾ÑþÓÖ¶»_$»ÜÑ=Uh¡ï­á{¦:íôjí¢mõŸÅߨߨÿqÊã”Ǽð@•Ô.©]R;U®–]¦ŽH6úmz—³Ó쌷¾ãŠëo% lênš¬ÊgY¾vùÚåk¥‹¤‹¤‹¨UM~óüæùͧՙVgZUÆÌo‹Öëš×™×ë¦Ì~–à^ò<óxºÍCß¾o›ÞR峤é¦é¦éR¨|À&`¨¢2&eLʘäøÚñµãkU.£ý÷ÙN4é}kù NÔú>þíO.Í‚ÒÚ52=¡Ê>™™™ß9{çì³q=–=–=ÞÓsOÏ==µT¶=hþ-›…vÉ©îê },]óÄ¡YÛË5õZ¨²Ï :-tÊÎÎæ°Àkƒ×¯ úÝïw¿ß}UFQ»›^‰ú?ûgì{`U]]“þA‡/$Ú½ëödªK‹jªŸ³.ë\Ö¹¬Ã¹ãºÇuëª>ŠööžÒ²õ÷~½&ù^]ãÿ¨AQYÌ1·é´G/I•}Ÿ;>w|nÎÕœ«9W9âP`0TiÒ›Ò›Ò›»×ï^¿{½Ö' ¾Ó~uë¨Ë›û/qtðïá!)߸÷úµw:n^|Îé§6úŸºoë篟¿~~aÍš…59Ê èù†çžorrÈÉ!'U]m%­›ïŒþÁØöểq.}Ê7èÍZrê¹ëŠø«bìçêèÙÛøÎM–C,‡XI“¦IÓ¤_(Až,O–wôØÑcG}êÕµóÂá-BGý¹ó…Eô¼ßoÕ´ßW¾Óý/ÄûYïèe<Á䌮kÓm §«¾o!º!º!º–Xþa9½óvÌÛ1SÚLi3¥ê£«aŠÙåÆù}ÿXt¬ÕÀÉß}a3·œßî`v½‹ä܈ˆmFmV·¿7ÐÍ`·êûÖÈ¿‘#ÿdÛdÛd[Ž/„€ÂD ø[¶v¶v¶ö’³KÎ.9«Uý ÌŽí‰pjk~ççÀnõíêmÓû ÷3¯ûzµï|v@ß©í½Íêâ°jדnyvë–­èÝæäàZmò›Uk<²Á¾u>ïßa;Ãv†í«9¯æ¼šÃÑÕ]ßx}ãõ;wìܱóçÀ–LGê\¿À{”IvDƒ çVcª…µ•´=ÕwýØv“έˆœ×~ËéØníòýžlï´9`În›j3¶×5îü_IÝ&ÓÊrÞ9ìtØé°“ô¸ô¸ô8GT‘×7¯o^ß † 7–e¶ëæùå]°IVÍD.w0ýÑWoS’ùI¿øŸnX|5ªGÔ‹™Ã?lýw›o}š¬êÝú”—ÏÌ^&f¿|3¾ék.M54þ¼×oœß8¿q¿‡ýö{GTw¿óýÎ÷;÷ ìØ'ðóFà&½š½k4«ÃDoƒ{½¬ƒç™$ vZÓÍÌhÄšm_¶Y5*x§¥ÅR¿?Í´p6}ãnóÅým–7Õïúï€äf#ÍN9eèm-ËygWÈ®]!…’BI¡„£ á †0JðV÷­î[݈¸ˆ¸ˆ8-[Ò~Iû%í_¼|ñòÅKŽ”IŽ,G–“Z3µfjÍ’’aŽü¶lÙ>:±øÄâ‹‹$E’"¦~ Lrmsmsm£:EuŠê$ä+ÿ ëA׃®gÈ8q€£ewÄý÷GŒ5vÖØYÂù ·n5Ü“““žß1¿c~GŽ„‰ÂD ø'¡²PYèe£ËF—F{Žöí©®Kïïï˜3–g,ÏXFFFqp â¼ }ú*tG‡vt°´´T×ø¿|ÛòmË·=¾ýøöãÛ¨h©ÃS‡§ŸÚ{j墳Õ5òw_Ô}Q÷E‡C‡ýü!ùC2Ç*λÚïj¿«íííØñ\ÇsÏ©küŸ{fgÒ³Ó³Ó³9.ÐÀ&`À'“ÎÎθ»üîò»Ë#s"s"súÖî[»oíòºÜ÷¬ïYß³þÚ¦k›®mšú õAꃽ½=zÔ+«CV‡¬‰±‰±‰±³“g'ÏN¶¸bqÅâJÙG~ý:úuô댋1.".6.6.ö™×3¯g^ô9¨Y¬@VðàîFÍ‹š5Ïç‚ÏŸ åuåïòÀå˃СB?\M¹šr5%÷fîÍÜ›t<¨×»¸wqïâ. ¾0øÂàE!‹B…8Lv˜ì0¹ì#Cï†Þ ½GöÙcd½‰{÷&>=÷ôÜÓsô9”/`@…ûëÉ_Oþz’ô>é}Òû¤•I+“VföÈì‘Ùƒžq»”t)éRÒù!燜r±ÅÅ[Ð' nû~ìû±ïŸ >|’Ì’Ì’ÌîÜ+¸W@Ï€¸]¿|ýòõËçÏ?wþÜ…Ä ‰¥k¤k¤kèP` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `‰ÿú‹Ù„ŽÉÓ=%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/filter.png000066400000000000000000001356431431412030200246720ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwT×ÿÿqcн¡Á^@v°£ÆV"н+ö^cWl±÷ãNGQ±aïbï¬ å÷Çæ{ŸßºdÔey>8çO³wï¼ç2ÌkçN¦D€EÈÄ€e  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€… ÌÔÅK\,qèûCßúþðèãþ°èâ‹æ/âzÄõˆë¡§BO…ž:¼÷ðÞÃ{J$”H(ÁÈ0'üOøŸð]º4téᇇ~˜¸.q]â:F€ù;–ãXŽc9B»†v ífff˘H/Žä;’ïH¾PÇPÇPǰæaÍÚ3&¤0ð…¼iü¦ñ›ÆÇæ›wlÞŒïg|?ã{Ϲžs=çæL#¾'}OúžÜT`SMn®¾¹úæjÆ@ZyUìU±WÅŠ„ +2yÚäi“§Uœ[qnÅ4˜Ár5ÍÕ4WÓ®>]}ºúl}´õÑÖG·Ýn»Ývc̤•¨:Qu¢êhAZ4îí¸·ãÞºŽuë:6õ3X¾è|Ñù¢»ëºëºëv®ß¹~çú»;îƒ1V^ô{ÑïE?9»œ]Î>ªÉ¨&£š8utêèÔ1õ3X¡i…¦šÖ«P¯B½ íi´§ÑžF~zðÓƒŸsiåÙØgcŸÕ‰:Q';?ìü°ó¥œJ9•rJý V8Oá<…óôëÙ¯g¿žÁׂ¯_{äóÈç‘c@RÀÀgñ&üMø›ð½ö~ØûÁ»³wgïÎ9¿’a¡ÃB‡…žw8ïpÞýÀÑ!Ñ!Ñ!;wî ¬6µÚÔjS¿Ö 6¦ù˜æcš_.x¹àå‚ì¦x±ýÅöÛ7‡mÛæ>Å}Šû”¯5ƒM ™2)äÚk7®Ý`¿0ÅÓËO/?½¼öîÚ»kï:µwjïÔþkÍ`3¢fD͈Š9(rû€)ÿôø§Ç?­8¹â䊓ųÏR<Ë—Ÿ»ò6ÎÛ8oãy™çež—ùÎÅ;ï\d¿ø2 g¤ÐÌ¡™C332øº€49¨ä ’ƒJæ4K¹ísÛç¶ß¾9|sø;áðN`¯лp-àZ@ÀÀ€Ís³élÓÙ¦ó_üs:ætÌiö½‹›.nº¸©K`—À.æ9ƒ•è^¢{‰îÁ‡‚ú°øÃâ‹ÙkcccÎ,9³äÌ’65ÚÔhSÃá>»zvõìêØzb뉭ì_À²=.ô¸ÐãBêøSÇŸ>!®8\vR…áŽJÀ¸I{*Õœ-íí_½úš5ááiÕV-ôDòvùqð¥ù?Ú5ð|ÐàþŠ,Y6²lä¹çœkÀþ,Û½¶÷ÚÞkÛ¼Hó"Í‹˜>K”öó¬k5¾m—¹?—7ÄU^ZþpÚ^þ ,O…o};}_ú¼‹mýÌ…$ÓûV9[ål•³]peÀ•ì_©G óD |‚ÐØÐØÐXÓO(¹ ó)8äèÑ SÓö4×ô¶GË­ÅœF9Ÿ«7±Ð&Súì»Àwï‚—Ù^f{™=X]”.Jeú ¶À©æ§]¯üê,IÛ¸×ô64K‹¼•4È\ÜÛæ¹)}¨P) Ò«ÄW‰¯Øá€EÙ×}_÷}ÝMŸÁ–åõ³s÷}Ýôš›¶q¯é­¼$¸â”Ön7 í6¥ÏCÛm?´ý».ﺼëÂ,Ä£ÄG‰¶µÞÖz[ëOVù__§Ú UGæ¥mÜkzë²bèæ… ”.ÑÏñ±)};>v|l¬{¬{¬;»°-[$¶Xº&tM¨Ik—7gγmŠÿq¯Tñû/ qþZ×Á|c–ä,“ÕfG‰|y½LéùùÿÈÿGþ¸q#âF°Û¤ 0Ì0ðâkÇ׎¯=qòÄÉ'›râØvûÜ9¥–Ž­z¦°»Ý×:Ù5ÖŽ•+—ßëÙÌ·‰ÝiSÞ˱c!ÇB¨ ýŠ={8öðЧCŸ}jÊQ¿ûlc·??|ãÿ‡wñ¯úkoúúÖ®þ ë®rç‹4彜|fð™ÁÔ~½Ûõn×»]=÷÷Üßsÿ\p´Ïµ#çÔ¿Ÿ-tñ¨·èhaïñ_+ô5Ö^9±swµ›mÜêO°÷5e»¼øòâË<'HÇ^]üuñöÚ?hÿà?f°ÛV¯¬§”?8viËjçWÿvÌák…¾ÆZÓl·Þ±¾îîUó?î]¶[`·ÀnA¤m¤m¤-5¤_ú[|FúŒô™üQosµÄïy[v_»©œã“ ™.¼òøÙ¬®ƒ]ððè·kJ¹}%ã+Ÿµú¬\D¹ˆr÷³ÞÏz?+5àSÃ<FEuŠêÕ©VL­˜Z1ÉŸ&6í1f]q§ñeÎq×Ì-ô5Ö ÑÕq‰.\}¾Utòïnõ®Õ»VôåiàÓÀ§å¯–¿Zþê< ¼Œ×—²‰¹{檛ÓÜB_cíåÎí¨6«JHáè‚{“wÛžo{¾í9õ¤/÷oÝ¿uÿ–C>‡|ù’?Æ7ý<ÅÕÕ)1:\©[ÇÜB_cíÙA›£<Ý–X“á²ìC=éËå¹—ç^žkÊ Ö)zù„2»ÓË0}ëÿͦóN?›òîŽö9Úçhê€é€až€¸ïyßó¾gò§ƒÅŸyT)ÐnH6¹mùÒ×)ïG–DZ^<«´˜üû`3Áf‚MâÊÄ•‰+©ÀœÝ\usÕÍUÉÑ‹–èg»îáƒÎ§keO/¡¯±vs‡úa®#’¿s&Ï™²Mþ´¯[­5 ʆ[Þ)oÒv싳mÝÛUyÜîº][cã02pdàÈÀĄĄÄ*0·+ß®|»rò3X˜®åÐÊs-/úMÚ¾[Ù½¡W—v eßÙ'‡“fLš1‰šÌÇ•¾Wú^é›ü vºÑÆáUÇZ^ô›´}£v­3»Q·ê¶FV]²aɆ%¨À|DüñOÄ?ÉÏ`S§7ÝÞ×ò¢ß¤mÕBAÿHß[ýV¦Ty£Omß¹!rC$5˜#…>R8ùlàn]U——–}lxûÃ…]ÏÙ )¾/¯«±qØãºÇu+5À`˜'` ñõÕ×W__µéaÓæ‡±S½ÞÑ{Üœ³Xö)ïÿ´m/Îõ(UúÀõEî“Åo¿]ü–ú¾®Ú íÅÜuqeGû‰Õ.Zvô›´M˜ßã–÷ëáV'JÎ36&ë7®ß¸~#õ|]ö?Úÿhò3Ø­Sûk ¶ìè7i÷ÏQOïé=î·š_¬ˆ±1ÙÝuw×Ý]©à뺽ÿöþÛÆg0œÓsn¯¼eA¹¥-;úýŸ¥¡mWæs³ËçY³A6c#”J ¥©à뺢^Q¯¨ÆŽÓ‚Ëì÷ç©>âÜ‘Ý~Í8×ÁÆØœ.í&•9V}¿UŒÑUûöú`ˆæ‰[©ÄR‰¥ZÖjY«e-c§wý„4p>™¢_ƒ¶Á¼ÁŠV5úü6a›°R¾¼xŸxŸxŸZNµœj9;BoÎ÷m]=:ãD¿ÿÓ>éÙµn­*–Œ56>G‚ ¦–€//Ö/Ö/ÖÏ© SA§‚ÆŽÐûAûלžq¢ß¤m»cñu hÙzw±!ÆÆçÌ™3gΜ¡–€/ïmß·}ßöµÊl•Ù*³±#´ÊŒEotBƉ~ÿ'Þ¶*â軺ž×\06>×~¹ö˵_¨%àË‹ ˆ ˆ 0ý¶´÷ÌSräõãÕ*$fÌ+`cœ‰u¯_ö§% f76Jw+ß­|—gøÀ0OÀÈÐßY|g±Ñ;\{ý¸óz¹n9úý·~ñG…š#ýÙ»½DÛã~û<Õ ø¢¦žZxªÑ».j×·šs~“¶yz檛Ëï¼óš¢FŸnþÌ÷™ï3_* ø’†6Ú`h£^¹²gCÌ3úMÚÆ·:ì½½E1¯Y…+«W•^UzU‰Š¾$¿üþñ3ºìsåþóGþ];cF¿ÿWZé¶¶`W§î¯ G)Ï»<ïò¼{ó.æ] |!k×$®in×Ü®¹±lDБºªqlL½ÓƒÝNØž.•3ïÃQ*­+­+­û°úÃê«)+zÀ0OÀÈ .„\¹bì”·cé%¿—±â”7i;¾æù îá¥m«³úÈgE«¾®úºêë!AH¨.às;Þýx÷ãÝÍ`Ò¶_‡Tˆ~“¶±#üÛygqÙaã^à#Ïm¶´ÙÒfK¯'^O¼NuŸ›%GÉQÆf°cÓ×¼­âJô›´}»6t¸WiëЂ•rŽ˜_¿~¨+àËØ×z_ë}­Í`îW¦:mÙIôû?Ïž°4³ü—±Úoh¿¡ý¨+àËØ¸h㢋Œ^üóÈe×¾þçÙÀÑa%*d16bS×N];u-u@8­„ì Ù²S?†S6OÙŸ×O_?}ýÔØ1¸bɘïœO÷k#ïµ­QÂØèÉArDŸÏ çÎ/œƒNá}ŽL{FÜk¬õ7½ÊöÆFïxãã7¦Æ€Ïça­‡µ}ðY§{ËÊlçz—±6à¯5Ëy½ §.œºpŠ@œzñÍã›Ç776ß§ 02œ5»ÖìZ³ËpÉ»ÃÊ.ײ±ÇÏÚ¸7å7ù¶ûûM‡œ²›ŽŸ·xÞây * øæwtÞQÃãÎ¥¤MæÍâ}zôðÞJЛ|ûSÓžcÍ`¯›¿nþº9•|ã6ŽÛ8n£áqçݧr„MáD—ðÒu ô&ßnšqªÂc3XLÞ˜¼1y©4àsèëÝ×»ïG;wÏ æT¯¶æÏðýɷeGwŸ8v¶áZuµêjÕ5niÜÒ¸¥Tð9´ÛÜns»Í†GŸgß_ì4®q™Ò6^5"¬XMÃ1tqqI¸•p+á•ddÀ©—ôÞß䛎H´W´W´—±‰£Ï/{:;çà¤ÖôÖsŒï*»ÜK7ôÁÐCPo@Úz²ûÉî'»Í`×uhT½á®émÛ{egÛ‹†#9=ÓôLÓ9;ÒØ‹w.Þ¹hl»×&äeÍš„»&µ‡/¨ëáݵòÑ\zf陥g¨7 m] ¾|%ØØ VeÚ¢—ºý„»&=øÉêåÇFä/Q´z©†#¹¥Ã–[:Po@Ú:ÝðtÃÓ Í`£¼ŽG»9puË”vÜÐs^îSóV.Ð"× Ã‘Ü¿rÿÊý+©7 ##N=} «wsšŒ08y\âD2kϬ=³öNÕb:»îÈéì'/pt…‰Æ&ßûÓîO»?ªÒJà‚À µ ³«ì-ýœ@÷SÛÏ;ªyÁèJyŸç}Î]t@šñwðwðw0<ÖÌúÊé0±î§¶7ƒöô¯þÚèJ-^·xÍZ,@šiÞ¡y‡æ 5Ç={Ll@¬ûÉËA—™Vzk´Ñ• êÇÔáââãã<½=½=?²zoµÅa¥q]ëSÛž-¶ÝrŠ06ƒÅEÆEÆERz@ÆDœ¶ƒÓ 02„×a¯Ã^‡›†‡¾íÉlÊÚ_×O˜Qü#Ïó¾xøâá‹©= õž>|hl‹®èW¯NiÝ”µÓúzÞ)[ÛpTgÚÌ´™iCí©wÿðýÃ÷›ÁÞM:TÊ«=nÊÚ!qN•,ð‘§){¯ð^áMí©w}Çõ×w›Áªu]ùôHÝ”µ…#k=lÖÆpT·çÞž{{njH½³Ï6>ÛØð(+àl3&wÿñ».ôpÉ­”µNåk?*ø‘óÛ&ü3០Ô1>„Á©AŒ aÃÝ w7Ü5œ¼v÷zá°œ“×Ô´£ÏÚæ¶ÉØTûÊù•ó+g*HEÍ5[ÔÌðøš;¡Æ=§|„¸©i_¶ê¶°¶ÎØ ö~êû©ï§R@jLl=±õÄÖ†ÇךZã·ºÜ ÄMMû¨ð{µ¬Þƒ2 n@Ü*H~oú½é÷Æðø*÷~ÀÈ?ö⦦­ä2û½.†c›wpÞÁy'·nˆ£»ùœ8öx¶ÍÙé¯Jß¶:fÛŦ\ñŠy åVòj9ßZ,Ö/ÏëŠsZ}c[¥Ç[V:u5çÓßâï=| |äNëÇ¡C‡RÀ§1tÄÐC ©Q­UygΑꃵ†•ûIßÛ«>í¥jÌ:~ÕÓ¯nâݬ¾É{ë#OYÎ=:;Õ|*¿Þ~½ýzS—[í˜Qm†ù¨Ê½ån•ªw_Ý"¼è*gÛRí 䵚–W®ØRS‹ºå ò©\ã±ííYuTw´7õPY¯æ'\8v»nf£OYŽxñ.‚j>•Ï5Ÿk>¹®RÈÜòÁ>æz†ÿ™óЃR%ÚÇ ˆµqõhZ«[¾±.%JäŠÌw¨@«¬¥Ë¹ ±{\ýfã¾®›F[­Øažpµ)«:¹nt)ûlqÙâ²QÀ§r¿ï~ßýþG>„wîp´kœù«c;žiï^¦d÷J' \Ô÷|À7¸t6·~Ž hçclKPÔ•j2`óAœ0,ׇĉ¬kÁZ0<¤ÇT9ÝÑí¨9œ2Öÿs`X‘Ç9'漜ÓÔɨ~™ E4óïÊ¿+ÿ®ü”$`º„ >›> ñÿÛ»¦™†©Ù{樛ӳý´BÙ“öÙüïþs¶—â’Õp´¥\R.)5 ˜.®o\߸¾F/‡u?6ÓûñWŽN³‡ç¨›sÀ“kJ8æüD'\ÖÿT%ÜÜbà™kú‹e?ò[ãø˜ãcŽ¡&Ó½oñ¾Åû†GSî<ùý­ªU÷X3-|Û× M=OÏ·½hþŸŠ<(ÕÞô¹Ë¾CþÍ›WϹ&Gxs‹‹Y7­Þe¦aŸ/ù^ò½äKM¦‹Þ½5z«áÑäЬœc¾ÓéåÎÚêB—…W¾ óìmÅÍ­œlëööö_·ÿºý5 dÀæ‰0˜ë¥×K¯—^Y”8oÍwýÍá4±Ý¼V¥¤¤}+{§æº‚­ š0°øÃîžG9Õÿ[ÿß“~g»¹ómKÝ3·ßán‡®¸†}dÂLí3µg¶>ÁÃ~û=ìgx4u‘Ê,2Ùœ£ßIºªËô1ì¹ùÀ·zwÌR££aÏde@j0ÝÍnþpóãiX±ÎûK¶3‡¸tNþAƒµÿy8HÕ·óoZÖeTçf'Ö®ú­þÎà]û*»×Ö³P§yøäᓇS“€éÎýtî§s?}dñçíÖõ¯ö•ï—½µzô±æ/–»S1âßn-Ïu8··Ã©úß´ñpZÔÇfZN÷o'MÚXÃeäÐ .Ù—«}ã×Å9«ç\›óxÒ÷bn°Û·ã;®u1ó%­—´^ÒššL62ldØÈ,þÜkòúô°øsÛmsg•Zjìr¼™.½au¥²yÇ–Õ[VoYMM°ù˘a0‘ ,ÖÑÙGgmxжnò!¼þ÷rùÍœ£ß~!%Ãòe²Ú™+8}À#vPÁÛ°·¾;}wúî¤&Œƒ8}É8a00,ÖÂã / z´LÚ«=çôq»hJ ›ô§¼”Ê ­ß›ÛBЮ—ËÖ/ðÔpäc¯Å^‹½Fe¦hÜ*¸ÕG⇪òÒCÊæ¯”–hݺ^ÀŸúþä=d÷°¨›)K:WZ3çžÿ{Je’»Í-ε#_Éü«?ò1bûû{*0EµÕVhxý.BrÿÅ<ÔÑ…Oöw (òs÷ü¿ü{–µ ×?óÒK<ÁúbQ¼Fÿ K K £2Œ€8ý²ì0˜«mBÛ„¶ †ç¨'s¸µ1Ÿ'š”¯ÛðGë"¦ŸÎ&}/5\º¶(|ÈÜN[ î^ÒÕpäÏÝ?wÿÜ}*0E­'µžÔzbxÅ,óÿÁëœ9¥çö·mä9vî5ö;ƶé7žÓ FÇS†ý¿ùòæË›/©LÀ¥ÜK¹—r7<Žâ[Ýï½ýëF¤+jV…”-æ|¼Æ:Ÿ*‹ô?eÝÎê~î?Íí>à‘¿ûý\ª™áÈ?jó¨Í£6T&²‹wÿÆ¥ÅÖ4 ïüu#R‡„ú ÛDçíi«9´ëT­tÃʦD¹•÷/èp ÛGÞ‘™Àö‹¼Š¶¨dØÏ¨ÂQ…£ S™@Êf°|+ J¹™ó½¿mZV¶ý7@-; Æ•‚.ãBλÿ™nà /zx8ÅzÕ+ô£aŸßy¿ó~çMes&N,/ &†Å²/`_À¾€á9þõ…›?|ÝSÃ2VÕÆ[ý{ñ±ù¨I™K¸™þ³ÍœX¥Dö¤'ÇævâÛ£ÇÖzN G>xGðŽàT&š‹‰ïzv¯ëeþ1jú €Z7U<>rßOh`h`h • ¤l+ã]l^¾8sˆH÷™[Ú={€_k¡Øˆþ?¶/U\2=ÄMz÷p…ÇŸ¬Š™[¼­Éô©ŠŽĺˆuë¨L e3X¡¬Î#+-2·¸Ôô¶Ló®O'½oØ<à2‹»myÇpü¯—¼^òzI*HÙ ææÒÔÞÆÚ?Èú 냬T&1g`àôÎ2Â``d iצNñyÌáÔк~ÑyNüû\à ¥¥£MÿYßÚ‹O—þ÷yN6åŠWü¿gљωï ÍÂãòu Ç?¨WP¯ ^T&²¬N»¢¥­7¥—5ýÀ矵=ö‹Ó§-NT&²¬}¯FY ˜Û‚ÉIv6å;[ÊÞ' ÿ{ð  –XjnðÑvk~¬üÌpüÔ?Pÿ@}*HÙ Väv£næ›Ð[±ÃÌ—E¸½a¢‹ÝBó;qlP¢íÿ<[·ìkÿ˜ñýÍ3v‰veÑcÃñ„0ÊR6ƒÕ_9ðh‘Çæ—öì¼í½ÓùÜMò|Èy*WÏÜ9'þ~tÃ^ÇuI¯n¥¯¸]ÁyK‰Y oæ¹™çfR™@Æœ €-Iú ƒ €‘¦]§u¼d§†ù–ëš¾Wþ›³9å7ýgõ߯ÿÙüm­³æ.en§Â#NÙX¡©áø™;fT&²ì÷¬ÎûŠÖ!þÜí½2zÕüÈå†ùçœ?ÊR6ƒží¶´”³yÀÉ·ñŽG{¯Ù²[|©ÆÿÞ¡`U:·ÿÝ5mÌ­·WžíÛ0ê#ëHU®\ÊR6ƒµê5Ý¡d93º^ôáÈë mó–8’×_ßCŸB+Šõ4¼®•¾`¿=ëN8~ä¯àÐ’¡%CYÃÈ 30°¥J_ap&ó9$€Ï­bö–¶9ÌáÔ0×µ<®9·è{Õ·Ù¾ÅÎ#MÿYý÷ÿûÇ|’í˜Ï‰ï(éÄQ·†Ô¶†Ez(9™øs·OC»Ö¬õœzÒÖ¬†j;:¤¯èWÿÄß:§+ͶVþýàÝÆ|sý!·ô`Ås»÷WßÞy|¥ÆKê H[eu?5öEú €“*ÿ,ðôÒƒæÙó3¼vl¡Þ€´Õ¡×¢¶¥'™Ã•¢ñ+.Ôuäü¬Þ®Bÿ®Lສq7ëEr\Ìîñ‘+Z†ïÅœà€ö;v–+M½’²3dgÈN`೨âÓ6Ü®˜¹-Ýã‡-+ºšþ³ÝÿÚäåøï¥=ýSRÌíTxô†SíÜ‚¨7 mq«œ·Ô+àÏݾ(Ù­híáÔ¶ærÞiù‡¾W}þÊWíƒo¥Æ}Æ&íÅEåâ¬N¸¬ÿ©JøÿÍiæØÿû—þ¶­É9Æÿ È1É>½<ñ·ÚäUmŽ\®”0/OÈ—-C#.´qõhZ«[ÒwTÁuÌ©•wÌn ëQ³šïjF½i«£°Ô¿LCs¸RÔ ç 9Eÿí•]dé'ù2lÞ¤B„±+Z†ïÅœàÞî»— £Þɋݻ#v0ðY˜ÏÀ%ÆWô,0óßÓñeKË”©þ ÏZZ:Zÿ³I·ÃÀ€eã`îÒ/s¾8¶]Xg¯Ä©súÌ)›3_pÞ‘¹~Ó÷Ù>‡ÍÂ<;æþ0ØÙ16¦çáõ^Gÿo63ß›;€Ï!½Ül¬Õ¿ Ûú•uÞ'“¾/î2s¸¸Ç³mÎNå|›kMNßÑÜb`cÏž=3zf4•É_)›ÁÌáÀ¿Ýü# T¦´½€>ÜùÐ×Cæÿ à ‡ ‡ *“/¾2æ ”%(KPFÆò¾öîÜØóÛžßöüÖôß\úïÏ@Ͼü]æ6uŠwÈë`§†5Öu³.üTß+wí×›6kLÿY÷f¿°ù÷À5ów»kŸÛÜàA›…Çåë|ä×^¯ ^A½¨L e3XvEK[o"þÜíùgmEÏC†ýßâ´Åi‹• ¤lkß«Q‡æ”FFïW£v™ÅväÿNßCý¿Ãf®ZUy²þ{ÒWô«o¶[ócåg†ã þúêS™@Êf°"·uë0ÿ놣UV-örÿÏ}ɯýcÆ÷ÿ„xµþ„ªë|ô?›;Ìjµµµ¹À.ñî,zl8þaB˜&P™@Êf°ú+-òØò`s»Ö®à¼Æ¥DÞ›ynæ¹™T&1g`}XÈÈX}p;eó”ÍS6›þ{Jÿý_>ôMŠ˾€}û†Þø×nzüðuO ;[v°Ì¿K7çÙ”¿e®Ú£*¿éf÷K+o?±ÙÍKÿýúŸíÜ}Eã2Ímé›=¶Ösšh8òÁ;‚wï 2”8þE¼ëÙ½®ðçkZ7U<‚?râHe)›ÁÊx›—/Î|‚RÏ®[ e×÷ÍK©ÜÐúýs;ádmÏôú&m·5™>µBQÃñX±.b• ¤l+”Õyd¥Eæv¯C~ï­¼LÿÙ²¿ün7ZÕÿ¬õ&·¥5Ê™[\fq·í#ïŽÿõ’×K^/Ie)›ÁÜ\šÚÛXåÇ„U>~ÓÍnÀ7¸t6½Mú.ºH+7–mhøÍç:Xý}_‰2ÿYd}•Ê2æ LœÞ¥ßÐ7)`X¬¶ mÚ&„£œÌáÖæëžŽy±Àý;ëƒÅúåymú§½ŸôÍSäßûTl֔Ȕ·æØˆ³ÅÜ›™[Üjèt÷’®ùäãýs÷Ïݧ2SÔzRëI­'†ÇQÌ2ÿ¼Î¾vNƒýOöÿæË›/o¾¤2S”r/å^ÊÝð8Šo}t¿÷ö¯‘ŠE–Ô®è§ïO®orÏY÷†ýî†ÕW¥÷èWߎüÝïçRÍ GþQ›Gmµ¡2”]¼û7(-¶¦Ixgó €s.Ïu8·w…9c_­nŸüOUn7¿âþÇy±YeÿïLjK”jÜó–¹Àö‹¼Š¶¨d8òQ…£ G¦2”Í`ùV”r=2ç§çšò `}èkνuŠõªWèGÃñçýÎû7• d̘8=²ŒÐ7)`X¬…Ç_xÜð€ì·g&ç(s;ÕóŒêØ£p–nÖd*+ õSw¹:ê?çXui‡ìv ’~g»¹ómKÝ3·Ï<êÛŠ³[&ÚV1|w/F½õb• ˜b|×ñ]Çw5<ŽnÇu\^ãoàÏ×6ÚX¢–íTÃþ¿ùðæÃ›T&`ŠÞíz·ëÝÎð8zrZ—©VÈ×HßÕ"{ÑžÿÞ?e—-o¡T1;0O¹ŸÚš[ìz¹lýO G>öZìµØkT&`ŠVÁ­‚[}d-ªòÒCÊæ¯‘zD̨¼cE®È|‡ ôIÚ·¢'š4èÜÔyÁ ¿¹¥õK=»Ø )4¿S‰Ö­ëü™tÁgýÓõ J›ÛSŠsíÈW2ÿjÑO°O°O°§2STXm`µ†ÇÑØï"$÷_€?Kk}±¨G^£+x…%†%†Q™@F@œ~Y^è›0,ÖÑÙGgmxp¶n+ÖyÉv_7(µÏa³0ÏË €/Üß¶Îó#¡ûäᓇONM¦;÷Ó¹ŸÎýdx4•<Ðn]ÿjæšþ»˜sëÖõþ´RÊ«Ð=OóB­m›åÚ¯Bþ]®”Záü·ÝÁê>ö8uï=cjËê9×äÏanѯ¾uûv|ǵ.†c¾¤õ’ÖKZS“€éÂF† ix4µè5y}‰IÀŸ£íºau¥²A†c¾eõ–Õ[VS“@ÆAlþ2N蛑 ,ׇĉ¬kÁZ0$|Hø`ìäãÃÿ¿½k¦—E•ÓKüçl/Å%«áhK¹¤\R.j0]\߸¾q}®ÒýØLïÇéýi»æÖÎ\Ó_,û‘ßÇÇs| 5 ˜î}‹÷-Þ·øÈŠ yòû[U«î±fZø6s‹“uÍ3ôMÚ³nZ½ËLÃ1¿ä{É÷’/5 ˜.zkôÖè­†G“C³rŽùN§Ç'›[qs+'Û:yxÓ_·ÿºý5 dÀæ)c†¾IÃÂÍz?ëý¬÷†‡±ß¸uCÝ9UMÛ¶ø{Ÿ¾†£ý8ôqèãPªøT#†Ž:b¨á1u"ªõ¡*ïÒKœÚW=ýêÖ)ÞÍ꛼· G;:{töèìT#ð©üzûõöëmxL]nµcFµD¶iÕ&\8v»nfc¸¾‹xñ.‚j>•Ï5Ÿk>× ©J!sËû˜s˜š¾ÚjSVu8rÝØ —-.[\6ªøTî÷Ýï»ß7<¦†Ÿ;íÇ•«´jÇ„G´s‹1ú‘G5AMP©F ã 6„¾IÃÂ]{zíéµ§†‡´Ó%¯_ ÆsšVí°º¡U]?ò$cÇ Ž+P‡@ÊD<‰xñä#aië<¨¨5ÁmZµ7Çû6«þÂpœ½ü½ü½ü©C eõ:ÔëP¯\| íWòo‚Û´jÏÙZËó# ¶/Ú¾hû¢Ô!2û{íïµÿ#3XÉí õ¿@p›Vm…¿Ç ]óÝGžWÚ§Ÿþ}¨C e6=ÙôdÓGþŠlÑgòæô¶´9·]mW5*`8ΓzMê5©ud4À_¡¯1À°t£G'޶òµòµúÈ©Cïjs\ã´5õmÃ÷CïÝû‘§žÜÚrkË-ÊH™øéñÓã§;MyáÚ­dí@âÛÔ·ÃOWÌ]ò áøåÀ/~¡”‰µ‰µ‰µ16ƒ½i§ «sƒø6õ­ß–浊:Žðaé°tX¢”ySéM¥7•ŒÍ`ÕlVæs!¾M}kSÁã×Z¿Žð™Ø3±gb©C ež_{~íù5c3ØxŸó:÷S\ÅJ}[´|ùÁùûŽðuáºp] Œ†øË#ô502„ w7ÜÝp÷#wwíîõÂa9§­©iGŸ;µÍm“±)õ•ó+çWÎT ‹š-j¶¨™áñ5wB{NùˆoSÓ¾lÕmam±ìýÔ÷SßO¥Ô˜Øzb뉭 ¯5µÆou!NUû¨ð{µ¬.: n@Ü*H~oú½é÷Æðø*÷~ÀÈ?öߦ¦­ä2û½.†c›wpÞÁy'‰oß&¾¥Œ†øË ôýTÀÈ^‡½{fl ~ø¶k §°)k]?aFñ,²=|ñðÅÃS{@ê=|ø<ÐØ ]ѯ^ÒD¹)k§õõ¼S¶¶á¨Î´™i3Ó†ÚRïþáû‡ï6ú„ÚI‡Jyµ'ÊMY;$®Ó©’ Gu…÷ ïÞÔz×w\ßq}‡Ñû€»®|z¤ QnÊÚ‘µ6kc8ªÛsoϽ=7µ¤ÞÙÆgŸmlx”p¶“»ÿø]z¸¿äŠVÊZ§òµüÈùí?þ™ðÏjȘ€?BßÔ F2kϬ=³ö|äO÷˜În…;r û©m`ÀÑý&›dïO»?íþ4ªH+ .0<Ö&Ì®²·ôs¢ÜOm<ï<¨æc3Øó¼Ïó>ÏKÕiÅßÁßÁßÁðX[0wè+§ÃD¹ŸÚÞ ÚÓ¿úkc3Øë¯[¼nAÕi¥y‡æšw0<Ö{ôì1±Qî§¶e¦•Þml‹©S?¦>U¤¸Ä¸Ä8OoOoOoÃcÍ·Úâ°ÒǸ®õ©mÏÛn9E]%2.2.’Ò2&à´Eè›V€‘D{E{E{› úü²§³sNgMo=Çø®²»ù‘'+?ú`èê H[Ov?Ùýd·±ìÚ¡ª7#Ö5½m{¯ìl{Ñp$§gšži:gG@»sñÎÅ;Í`÷Ú„¼¬Y“Xפöïðu=¼»V>bó‘ç+/=³ôÌÒ3Ô¶®_ ¾ll«2mÑKÝ~b]SÚjOV/?6"‰¢ÕK0É-¶tØÒzÒÖ醧žnhlåu<ÚÍ«[¦´ã†žórŸš·r¹Žäþ•ûWî_I½pêú~\âD†³fך]kv}äiC;¬ìr-{ü¬{SNm“o»¿ßtÈ)«Ñ;çZ‡qÇm·Ñð¸óîS9¦p¢Kx麈x“o·GÍ8Ua‚Ñ;çòÆäaõà³èëÝ×»ïGs÷ÜÐ`Nõjkþ ?LÄ›|[vt÷‰cgŽ¡UW«®V]ã–Æ-[J¥ŸC»Íí6·ûÈÅtÏ2¾¿Øi\ã2¥m¼jDX±š†cèââ’p+áVÂ-* ÈÈ€S/dgÈ΄¾i‹NÜ™¸3qg&9Lr˜d8}x5èUÙa8§¶F—}ö<Ú½Â`c“ï†%–lXBŸOÌð˜á1Ã,­~ʱ¯±öaÞÎãkÞ46z{wíݵw5|>¯Ÿ¾~úú©±cpÅ’1ß9Ÿ&â5ÖFÞk[£„±Ñ“ƒä 9ˆ>ŸÎ/œ_8;Âû™öŒˆ×è²Ïã¦WÙÞÂØèo|¼ññÆÔðù<¬õ°ÖÃZÆŽÁN÷–”ÙÎõ.cmÀ_;k–ó66zN]8uá5€8õâ›Ç7oNè›¶€‘A]¹r!ÄØ„Ò±ô’ßËXqš›´_óü÷ðÒ¶UYŽXÕ×U_W} $ Õ|nÇ»ï~¼»±LÚöëŠqoÒ6v„;ï,.;lÜ ô5±fK›-m¶4ñzâõÄëTð¹ÉQr”el;6}ÍÛ*®Ä½IÛ·kC‡{•¶-X)÷G¡õ+àWÀ¯u|ûZïk½¯µ±ÌýÊT§-;‰{“¶U',Í,ÿelĆöÚoh?ê ø26.Ú¸hã"cÇã€ÿ¬þ°úÃjÊ €0Ì02¶R‰¥Kµ¬Õ²VK£‹áôkÒÀùdF>ñm0oð€¢U°MØ&l£”€//Þ'Þ'Þ§–S-§ZNFC”ù¾­«GgÐè÷IÏ®ukxP1°d¬±ñ9|$øH0µ|y±~±~±~N :4úñ² ýkNϘÑo»cñu hÙzw±!ÆÆçÌ™3gΜ¡–€/ïmß·}ßöµÊl•Ù*³±#´ÊŒEotB~·­Š8:Ä®®çµŒÏµ_®ýríj øò¢¢¢Œ›[Ú{æ)9òúñj3æ°±Îĺ×/ûS’³¥»•ïV¾[™Z0Ì0øúê뫯¯Úô°éaÓÃØé]ïè=nÎY2ЉoÛ‹s=JÕŸ>p}£wH/~»øíâ·Ôðu½Ð^h/´œÉº²£ýÄj3Nô›0¿Ç-ï×íƒy䜞s{å- Ê(¢_Û•¹ÃÜìòyÖlÍèˆK ¥…ÒÔðu]Q¯¨WT£1ð2ûýyª8wdw…_3Ð]¿6§K»IeŽUßocldÂ>„}û@ý0D óD üë‘í#ÛG¶É_‚ìVkMƒ²áþiÇgÛº·«ò¸Ýu»¶ÆÆadàÈÀ‘‰ ‰ ‰ T`nW¾]ùvåäg°0]Ë¡•çZvôûne÷†^]Ú%”}gŸ`lfLš1iÆ$j0Wú^é{¥oò3ØéF‡WkÙÑ﫵kÙºU´fl–lX²aÉj0ÿDüñOò3˜ÇÔéM·÷µðgý úGúÞê·2¥Ê Å7DnˆÜIÍæãHá#…N~¸[WÕ奅?ë·ýá®çl†ß—×ÕØ8ìqÝãºÇ•š` 0Ì0ð?n¿¼ýòöËäO}út-6yB§‹Ë<ÊXÒ)ïP5ØÕ©ð”²Ùò}Ræ ¸Aqƒâ['¶NlMµææêЫC¯M~[‘Í«¼ónË‹~#Uß°íç·ÎsÐØ{Ÿ°tÂÒ KccyÚ`vÎ:œu8ëü ¶1tr¬«­åE¿Wïl\MIþ½ÏõŸë?ן:ÌÓÑ—G_ý¿"3XýÇmË‹~ÝWO¶ù?V£ù³ÇŸ=þìAæIº'Ý“î%wiüç²Å,/úí9f{Y§›É¿÷-˶,Û²Œ:<`˜'`à#î{Þ÷¼ï™ü)`ñgU ´’Mn[þŸô~Êëk½xVi1ù÷;Áf‚͛ĕ‰+WR!€9»¹ê檛«’?¢-ÑÏvÝÃO×ÊžÞ£ßÍꇹŽHþýΙëtúŠ~ÝMPÖÅæ¾aõÀzXòïNö‘}dêH_.Ͻ<÷ò\Sf°NÑË'”Ù¾¢_ÿo6wúÙ”ww´ÏÑ>GûPLG óD ü‡øÚñµãkOœwN©¥c«ž)ìngn'»ƒcåÊå÷z6ómbwÚ”÷r,äXȱjH¿bÇŽ=<ôéЧCŸšrÔï>ÛØÇíÏßøÿá]ÜÜBß›¾¾µ«?身Üù"My/gŸ|f05¤_ïv½ÛõnWÏý=÷÷ÜŸüñžÛ>׎œSÿ~¶ÐÅ£bÜ¢£…½Ç›Ý"Ï'vî®v³[ý ö¾¦Ì`—_^|y15¤_¯‹¿.þºxûí´ð3Øm«WÖSÊŸ »´eµó«;æ`n¡¯G‰i¶[ïX_w÷ªùSòïÅnÝ»‘¶‘¶‘¶Ô~½Ìö2ÛËl>#}FúŒLþ¨·¹Zâ÷¼-»¯ÝTÎñÉ„L^yülV×Á.xxôŠÛ5¥Ü¾’ñ•ÏZýÇ V.¢\D¹ˆûYïg½Ÿ•ð©€až€O›Ód܆ù rôh…©_ë”·GË­ÅœF9Ÿ«7±Ð&Súì»Àwïýé>{°$º(]”.ÊôlSÍ;N»^;ø%ÔYòµBßÐ,-òV:Ð sqo›ç¦ô9 R@¥€J¯_%¾b‡e_÷}Ý÷u7}[–{ÔÏÎ5Þ÷=tÓkî× }Åà%Á§Ô°v»Yh·)}Ú~hû¡íßuy×å]ö8`!%>J|´­õ¶ÖÛZ›>ƒ•}äq|jƒV9™÷µB_—C7/ìT t‰~ŽMéóøØñ±ãccÝcÝcÝÙ퀅h‘Ø"±ÅšÐ5¡kBM™r·Ë›3çÙ6Åÿ¸WªÀøý†¸GµÇœÅ,ÉY&«ÍŽùòz™Òó?òÿ‘ÿüq#âFÄ`·H`˜'`à“½™÷fÞ›yc«Ž­:¶ªéÆ|íÐ"O‡¦—ÆúoÑ/xç4>—íì,w??uÝCÇFž3|÷ÙÝÉù‰¤ï¥ï¥ïÙ¿€e‹öˆöˆö48hpéóƒ“C¡;ù×,ÏZç´óЫýÛ¯ž9mƒÞw[»7õò7;Q±M÷D—~E÷}ÂäU;g휵/<¼ððBö/`Ùžû=÷{î×sjÏ©=§š>I¸û8U° \]|Üq—•7Êín]}mÚ½¯âÕîuæüSp‘µÇÈγšþX¤†é}³«gWϮމ­'¶žØÊþ,ÛãB =.Ôñ§Ž?uüÉôYÂêpÙI†;*ã&í©Ts¶´·Ú½UK=‘¼]~|iþv <4ø„¿"ËF–,y®Á¹ç°Ëv¯í½¶÷Ú6/Ò¼Hó"¦Ï¥ý<ëZoÛeî촮 q•—–?œ¶×Á†?ËSá[ßÎAß—>ïb[?s!Éô¾UÎV9[ålW\peû@êÃ<©r«÷­Þ·zûŽ÷ï;>gŠØmÛ5÷òŠëZ·­å“)°±ÎíÆÏÿ¶Td×r«z–í÷{‡õoÇú­[·Ç±V§›Ë»”ÙÚÚeF`ÉþÞÛú¬sxîX¸ÖÏr¦ÂÊe+—­\s)æRÌ%ö&Ñ\ ¸p- ù•æWš_IÙRlVÝyww·q±.:~Þåš~NÝvtm¸¡Âr݃f}*Új…šë*MRJ6ÿ¶RžM¬Ýƒ×ø×uvy0z}¥¥ÎÔ=UlM¿ÔÌ`÷mÜ·q߇ˆ"Ø›@Fs1ëŬ³Ö»VïZ½k)›CJÅ—oOÏÒ­+¿àê0g§‹;WÏr¨pGXt¶¢—öëŠ_+Í•_,\)KðýyîÓVM×Ô%0ðT·E¥ÊÕÞUq»õ¸ÔÌ`;¥ÒN)¾G|øìM £‰ðŠðŠðòœæ9ÍsZÊæ|ÁWJ~ã^ïU›¢¥Ow©:\(wf@æ?¬Ê/!,iëº|TôŠQ®9GV[VßYôzî²M5æl±ìMówù­à7Ž5Üz¦f éÒ#¤GÂÊ„• +Ù›@FnnnçrÝåºËõ”Í!ööŽ…òõªÖ§SÂÎÍ"Æ,¾±ÃÍÅEKoí6lÍÆ²×?´a»ãZ¿‚kÇ<XRªL¶æÛ'µ.áU³ª_q{»bªæKÙëZM²šd5IØ-ìv'K–8Œ½ ­Ã<i&22222rPÉA%•Ìi–rÛç¶Ïm¿9|søæðwÂ;áÀ^ §ƒ hž3˜Mg›Î6ÿ ø+ீ˜Ó1§cN³×è]ÜtqÓÅM]»v 4ϬD÷ÝKt>|(øÐ‡Åàù¾cccÎ,9³äÌ’65ÚÔhSÃÅ}ÊךÁ&…L ™ríÆµ×n°_˜âéå§—Ÿ^^{wíݵwÚ;µwjÿµf°Q3¢fDEŠ9ˆýÀzüÓãŸVœ\qrÅÉâYŠg)žåËÏ]yçmœ·ñ¼Ìó2ÏË|çâ‹w.²_|À0OÀÀò¦ñ›Æo›wlÞ±y3¾ŸñýŒï=çzÎõœ›V§¹¾'}OúžÜT`SMn®¾¹úæjÆ@ZyUìU±WÅŠ„ +2yÚäi“§Uœ[qnÅ4˜Ár5ÍÕ4WÓ®>]}ºúl}´õÑÖG·Ýn»Ývc̤•¨:Qu¢êhAZ4îí¸·ãÞºŽuë:6õ3X¾è|Ñù¢»ëºëºëv®ß¹~çú»;îƒ1V^ô{ÑïE?9»œ]Î>ªÉ¨&£š8utêèÔ1õ3X¡i…¦šÖ«P¯B½ íi´§ÑžF~zðÓƒŸsiåÙØgcŸÕ‰:Q';?ìü°ó¥œJ9•rJý V8Oá<…óôëÙ¯g¿žÁׂ¯_{äóÈç‘c@RÀ€™ºXâb‰‹%}èûCß}xôáÑ}Xôa#ÀüE\¸q=ôTè©ÐS‡÷Þ{xoB‰„ %æï„ÿ ÿþ¡KC—†.=üððÃÃ×%®K\ÇÈ0ÇrËq,Gh×Ю¡]ÃlÃlÃléÅ‘|GòÉêêêÖ<¬yXsÆ€Ô  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…ø¢phæÐÌ¡™s@†¡ÏI € Ý# ‘á`ýý&ô›ÐoB3…f ͤ%h Z‚¯ÅkñÚíƒöA‹ÕbµXí½ö^{¯½ÓÞiï´7ÚíöZ{­½Ö¢µh-Z‹Ò¢´(í¥öR{©=מkϵgÚ3í™öD{¢=ÑkµÇÚCí¡öP{ =Ðh÷´{Ú=í®vW»«ÝÖnk·µ[Ú-í–vS»©ÝÔnh7´Ú5íšvM»ª]Õ®jW´+Úí’vI»¤]Ô.jµóÚyí¼vN;§ÓÎhg´3Z„¡Eh§´SÚ)í¤vR;©׎kǵp-\ ׎jGµ£ÚíˆvD Ó´0ívH;¤…j¡Z¨¦jª¦jЦhŠ&i’&i¢&j¢¦ÓtšN;¨Ôj´Úíoíoío-D ÑB´`-X Ööj{µ½Úm¶GÛ­íÖvkiii;µÚNm»¶]Û®mÓ¶iÛ´-Úm‹¶YÛ¬mÖ6jµÚmƒ¶A[§­ÓÖikµµÚZmµ¶Z[­­ÒVi«´•ÚJm¥¶B[¡­Ð–k˵åÚRm©¶T[¢-Ñ–h‹µÅÚbm‘¶H[¤-Ðh ´ùÚ|m¾6W›«ÍÕæhs´9ÚÚÚÚ,m–6K›¡ÍÐfhÓµéÚtmš6M›¦MѦhS´ÉÚdm²6Q›¨MÔ&h´ Ú8mœ6N«ÕÆj£µÑÚhm”6J¥jZ 6B¡Ð†iôaÚPm¨6T¬ Ökƒ´AÚ m€6@ õ×úkýµ~Z?­ŸÖGë£õÑzk½µÞZ€ h=µžZOÍ_ó×üµîZw­»æ§ùi~Z7­›ÖMë¢uѺhµÎZg­£ÖQë¨ùj¾š¯Ö^k¯µ×Úií´vZ[­­ÖVûMûMûMk­µÖZk-µ–ZK­…ÖBk¡ýªýªýª5ÓšiÍ´&Z­‰æ£ùh>Z#­‘ÖHk¨5ÔjõµúZ}­žVO«§ykÞš·æ¥yi^Zm­¶V[«¥ÕÒji5µšZM­ºV]«®UÓªiÕ´ªZU­ªVE«¢UÑ*i•´JZE­¢VQs×Ü5wÍMsÓÜ4WÍUsÕÊkåµò𳿬9kå´rZ9ÍQsÔµ²ZY­¬VZ+­•ÖJi¥´RZI­¤VR+®׊kÅ´bZ1­ˆVD+¢9hšƒVX+¬Öì4;ÍN³Ñl4ÍZ³Ö¬µ‚ZA­ f¥YiVZ~-¿–_˧åÓòiy´U«ÕÇê#õ‘úH} >P¨÷Õûê}õ®zW½«ÞQï¨wÔ[ê-õ–©Fª‘ê õ†zC½®^W¯«WÕ«êUõŠzE½¢^R/©—Ô‹êEõ¢z^=¯žWÏ©çÔsêYõ¬zVP#Ôõ´zZ=­žTOª'Õê õ„®†«áê1õ˜zL=¢Q¨aj˜¦R©‡ÔP5T UõUQUR%UREUTEU§êTzP=¨T¨Ôêßêßêßjˆ¢†¨Áj°¬îU÷ª{Õ=êuº[Ý­îVÿRÿRÿRwª;Õêvu»º]ݦnS·©[Ô-êu³ºYݬnT7ªÕ êuƒºN]§®SתkÕµêjuµºZ]¥®RW©ªªª+Ôê u™ºL]¦.U—ªKÕ 5H R«‹ÕÅêBu¡ºP] .P¨óÕùê|u®:W«ÎQç¨sÔ?Ô?Ô?ÔYê,u–:C¡ÎP§«ÓÕéêTuª:U¢NQ§¨“ÔIê$u¢:Q¨ŽWÇ«ãÕqê8uœ:F£ŽQG«£ÕÑêHu¤:R TÕ@u¸:\®S‡©ÃÔ!êuˆ:X¬VªÕêu€:@í§öSû©}Õ¾j_µÚGí£öR{©½Ô5@ P{¨=Ôª¿ê¯ú«¿«¿«¿«~ªŸê§vU»ª]Õ.jµ‹ÚIí¤vR;ªÕŽjµƒÚAm¯¶WÛ«mÕ¶j[µÚFm£¶V[«­ÕVj+µ•ÚBm¡¶P›«ÍÕæj3µ™ÚLmª6U›ª>ªê£6V«Õ†jCµ¡Ú@m 6Pë©õÔzj]µ®ZWõV½UoµŽZG­£ÖVk«µÕšjMµ¦ZC­¡ÖP«©ÕÔjª§ê©zªUÔ*jµ²ZY­¬VT+ªUÕCõPÝT7ÕM­ VP+¨åÕòjyÕEuQ]Ôrj9µœê¤:©NjYµ¬ZV-£–Q˨¥ÔRj)µ¤ZR-©W‹«ÅÕbj1µ˜ZD-¢QTÕA-¬V «vªj§Ú¨6ªj­Z«ÖjAµ ZPµR­T+µ€Z@- æSó©ùÔ¼j^5¯š[Í­æVs©¹Ô\j5‡šCÍ®fW³«¿¨¿¨¿¨?«?«?«?ª?ª?ªYÕ¬jV5‹šEÍ¢~¯~¯~¯fV3«™ÕoÕoÕoÕLj&5“’¨$*‰J¼¯Ä+qJœ§Ä*±J¬£Ä(1Ê;åòNy«¼UÞ*¯•×Êkå•òJy¥D)QJ”òRy©¼Tž+Ï•çÊ3å™òLy¢J/¥—ÒK P”¥‡ÒC顸+þŠ¿ò»ò»ò»â§ø)~JW¥«ÒUé¢tQº(”NJ'¥£ÒQé¨tP:(”öJ{¥½ÒVi«´UÚ(m”6Jk¥µÒZi¥´RZ)-”J ¥¹Ò\i®4Sš)Í”¦JS¥©â£ø(>Jc¥±ÒXi¨4T* ”J¥žRO©§ÔUê*u/ÅKñRê(u”:J-¥–RK©©ÔTj*5”J ¥šRM©¦x*žŠ§RE©¢TQ*+••ÊJE¥¢RQñP<ÅMqSÜ” J¥‚R^)¯”W\ÅE)§”SÊ)NŠ“â¤”UÊ*e•2J¥ŒRJ)¥”RJ*%•’Jq¥¸R\)¦SŠ)E”"JÅAqP”ÂJa¥°b§Ø)vŠb£Ø(ÖŠµb­T *+ÅJ±Rò+ù•üJ>%Ÿ’OÉ£äQò(¹•ÜJn%§’SÉ©äPr(9”lJ6%›ò‹ò‹ò‹ò“ò“ò“ò£ò£ò£òƒòƒòƒ’EÉ¢dQ¾S¾S¾S2+™•ÌÊ7Ê7Ê7J&%“’INä9^Ž—ãåòùƒ+Çʱò{ù½ü^~'¿“ßÉoä7òùµüZ~-GËÑr´%GÉQò ù…üB~.?—ŸËOå§òSù‰üD~"?’Éä‡òCù¡|_¾/ß—ïÉ÷ä{òùŽ|G¾-ß–oË‘r¤)ß”oÊ7åëòuùº|M¾&_“¯ÈWä+òeù²|Y¾(_”/Êä òùœ|N>'Ÿ•ÏÊgå9BŽO˧åÓòIù¤|R>!ŸOÈár¸.“ÉÇä#òùˆ&‡Éaò!ù|H•CåPY•UYÕO²$K²$‹²(‹²NÖÉ:ù |P>(Èä¿å¿å¿å9D‘ƒå`9XÞ+ï•÷Ê{ä=òy—¼KÞ%ÿ%ÿ%ÿ%ïwÈ;äíòvy»¼UÞ*o•·È[ä-ò&y“¼IÞ(o”7Êëåõòzy¼N^'¯‘×ÈkäÕòjyµ¼R^)¯”ÿ”ÿ”ÿ”—ËËååò2y™¼L^"/‘—ÈAr$/’É‹ä…òBy¡<_ž/Ï—çÉóäyòyŽR©Ô[ê-õ–¤)@ê)õ”zJþ’¿ä/u—ºKÝ%?ÉOò“ºIݤnR©‹ÔEê,u–:K¥ŽRGÉWò•|¥öR{©½ÔNj'µ“ÚHm¤6ÒoÒoÒoR+©•ÔJj)µ”ZJÍ¥æRs©™ÔLj&5•šJM%ÉGò‘K¥ÆRC©¡ÔPj 5Hõ¤zR=©®TWª+yI^’—TGª#Õ‘jIµ¤ZRM©¦TSª.U—ªKÕ¤jR5©ªTUª*U‘ªHU¤JR%©’TQª(U”Ü%wÉ]r“Ü$7ÉUr•\¥òRy©¼ä,9KÎR9©œTNr”%G©¬TV*+•–JK¥¥’RI©¤TB*!•ŠIŤbRQ©¨TTr$É^²—ì%;ÉN²“l%[ÉV²–¬%k©TH*$YIV’•T@* òIù¤|R^)¯”WÊ-å–rK¹¤\R.)‡”CÊ!e—²KÙ¥_¤_¤_¤Ÿ¥Ÿ¥Ÿ¥¥¥¥¬RV)«”EÊ"e‘¾—¾—¾—2K™¥ÌÒ7Ò7Ò7R&)“”ILÄ1^ŒãÅâñƒ+ÆŠ±â{ñ½ø^|'¾߉oÄ7âñµøZ|-F‹Ñb´%F‰Qâ ñ…øB|.>Ÿ‹OŧâSñ‰øD|">‰Ä‡âCñ¡x_¼/Þï‰÷Ä{âñŽxG¼-Þo‹‘b¤)Þoˆ7ÄëâuñºxU¼*^¯ˆWÄ+â%ñ’xI¼(^/ŠçÅóâyñœxN<'žψgÄ1BŒO‰§ÄSâIñ¤xR<.‹áb¸.ŠGÅ#âñˆxX<,‰‡ÄCú‹ú?÷õ¿äE=ADA<(Šÿˆÿˆÿˆ‹‹‹ûÅýâ~1X ƒÅ}â>qŸ¸GÜ#îw‹»ÅÝâ_â_â_âNq§¸SÜ.n·‹ÛÄmâ6q‹¸EÜ"n7‹›ÅâFq£¸AÜ n׉ëÄuâq¸F\-®W‹+Å•âJñOñOñOq¹¸\\..—‰ËÄ%âq‰$‰Aâ"q‘¸H\(.ŠóÅùâ|qž8Oœ'ÎçˆsÄÙâlq¶8Kœ%ÎgŠ3Å™âtqº8]œ&N§‰SÄ)âq’8Iœ$N'ŠÅñâxq¼8N'ŽLjcÄ1âhq´8Z)ŽGŠb (‡‹ÃÅaâ0q˜8D"‹ƒÅÁâ@q 8P ˆýÄ~b?±¯ØWì+ö{‹½Å^b/±—ØSì)öýEÑ_ì.v»‹~¢Ÿè'v»‰ÝÄ.b±‹ØYì,v;ŠÅŽ¢¯è+úŠíÅöb{±ØNl'¶ÛˆmÄßÄßÄßÄVb+±•ØRl)¶›‹ÍÅæâ¯â¯â¯bS±©ØTô}D±±ØXl,6Š Åb±XO¬'ÖëŠuꢗè%z‰uÄ:b±–XK¬%ÖkŠ5Åêbu±ºXM¬&V«ŠUŪb±ŠXE¬$V+‰ÅŠbEÑ]tÝÅ b±‚è*ºŠ®¢‹è"ºˆÎ¢³è,:‰N¢“è(:ŠŽb±ŒXF,-–K‹%Å’bI±„XB,!‹‰ÅÄ¢bQ±¨è :ˆ¢½h/Ú‹v¢h'ÚŠ¶¢­h-Z‹ÖbA± XP´­D+1¿˜_Ì/æó‰ùÄ1BŒ#¼Þ ï…·Â[á­ðFx#¼^ ¯„WB´-D /…—ÂKá…ðBx!<ž Ï„'Âá‰ðXx,< …‡Âáð@¸'Üî w…»Â]á¶p[¸-Ün ·„›ÂMá¦pC¸!Ü® ׄkÂUáªpU¸,\. —„KÂ%á‚pA¸ œΠ焳ÂYá¬!DÂiá´pZ8)œN '„ !\Â…cÂ1á˜pD8"„0!L8$ ¡B¨*¨‚*¨‚,È‚,H‚$H‚žNÐ :áááá€p@8 ìö û…!Dö û„}Â^a¯°WØ-ìv »„]Â.a§°SØ)ìv;„mÂ6a›°EØ"l6 ›…ÍÂFa£°QØ l6ë„uÂ:a­°VX+¬V «…UÂ*a•ð§ð§ð§°BX!¬– Ë„eÂRa©°T‚„ a‘°HX$, …ùÂ|a¾0O˜'Ìæs„9Âla¶0[˜%Ìf 3…™ÂLaº0]˜.L¦ Ó„)ÂaŠ0Y˜,L& …‰Âxa¼0^'ŒÆ c„1Âa´0Z-ŒF #…@!P† Ã…áÂ0a˜0L" †ƒ…ÁÂ`a 0P( „~B?¡ŸÐGè#ôz ½…ÞB€ =…žBOÁ_ðü…îBw¡»à'ø ~B7¡›ÐMè"tº…ÎBg¡£ÐQè(ø ¾‚¯Ð^h/´Ú m…¶B¡ÐFh-´Z ­„VB+¡…ÐBh!4š Í…fB3¡™ÐTh*4|ÁGh,4 …†BC¡¾P_¨/Ôê õoÁ[ð¼/ÁK¨-Ôj µ„ZB-¡†PC¨!Tª ÕOÁSðª U…ªBe¡²PY¨$T* ‚‡à!¸ n‚›PA¨ TÊ å…ò‚‹à"¸å„rB9ÁIpœ„²BY¡¬PF(#”J ¥„RBI¡¤PR(.Š E…¢BQ¡ˆPD("Ø ö‚½PX(,l[ÁV°l¡PH($ …B¡€_È/äò y…¼Bn!·[È%är 9„B!»]È.ü"ü"ü"ü,ü,ü,ü(ü(ü(d² Y…,B!‹ð½ð½ð½YÈ,d¾¾¾2 ™„Lº]‚.A¯‹×Åë>è>è>èbu±ºXÝ{Ý{Ý{Ý;Ý;Ý;ÝÝÝÝkÝkÝk]´.Z­‹ÒEé¢t/t/t/tÏtÏtÏtOuOuOuuuutttttt÷u÷u÷uwuwuwuwtwtwt·t·t·t‘ºH]¤î†î†î†îšîšîšîªîªîªî²î²î²î’î’î’î‚î‚î‚î¼î¼î¼î¬î¬î¬îŒîŒîŒî´î´î´î”î”î”î„î„î„.\® ×ÓÓÓÑÑÑ…éÂtaºCºCºCºP]¨.TÙ^¹NÚNüEß0|æ‡@ &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &Ÿà͆7Þlš4;hv‡zêu¨ç±Þc½ÇúA‚ •^zxéáuN×9]çtòÛÉ™,Óû“VÛAzñ`Úƒi¦¹UäV‘[ú½lŸÃ>‡}ލÛQ·£n3>©÷pÄÃGåÿÿ¯´Ú¾þÌM§?£ÓŸÝéÏôzÀÀÀ$—/^ tÉî’Ý%{N“Û0>U‚m‚m‚m£ßýÖè·¤{yNþ9ùçäg|˜›ûA÷ƒîé? •tÖš>`ú€é,õ]ëC­¶vÚÚ©ëõ®×»^¯»®îººëœmmm­¦YM³šfÝκu;§ªNUªzïñÞã½g´ûh÷Ñîÿtü§ã?ããã©àëºj誡«>÷9ön¸ýá–tËë7®ß¸¾þ¬½Rƒ˜ü‡è³Ñg£Ï:6tlèØ0ç'2¶M`|ªi㦛6.éþ-¦ÓŠiìkzÊ=åžr¯ÿýìÿ£û^÷½î{õA£­§­§­§þ¿èÿ¯üüüÝçîþµ’ÎZEÏ=SôŒåÍZú;õqoÎ4²úÝêw«ß%fOÌž˜Ú¾$ý‡0Šï+¾¯ø¾Ï}Žý:øuðë`ÎäÀç@L þÃÜæþ0÷S.×êïs*lWØ®°]z €½”侨„¯åâô‹Ó/N7Ü¿‹ÿ\üçâ? #»™ófΛ9›”iR¦I™”ת_«~­zÚöê†ý ûö†¯µ´ÿÒþKû[ÒøoضaÛ†m9?³gåž•{VŽj¾ )”GÊó%?d¹àØ‚c Ž%Ý~Þм¡yC‰@j€ÿðÛüßæÿ6ߨ Ïž <œß|~óùͦ_¦1Ï85÷4ã³Èž˜=1{ƒ! †4’t/èŸ6Í2²##Œ<2Ò!“C&‡L© MùÐÒ§êv²ÛÉn'“¾J9ÇrŽå-iÖÒß¡›ó‹ðXï±Þcý‹/r¼ÈAåŸ[›‰m&¶™ø%χßM}7õÝTÃWÑ?øƒ=R†˜ü‡äŸû{Ì÷˜ï1ßOÝf÷ÕÉ}™¾`ËfìÞ²•ÅV[YŒñ2&ý]¿¦D¿ú‡”éQ¦G™É§}ûö9ôwoçöŸÛn¿áö·ôÛÒoK?Ë]M]M]ÍäÇ3÷Üwrßi;¸íඃ÷Øw`ßýØÆôŒéÓóiµ§ÕžVÓ´0-lÄÀG ,P( P@òÛ¬·°ÞÂz ã<ã<ã<9 €ÏAÿôî¯u>¼¬Ë².˺pÒ 00ø¹¢sEçŠ6v9æýð÷ÃßÿZ}#¶TúÀ0¶±s²s²sb_™OeŸÊ>• çç\ßäú&×7ÃÇ?||ò3¹þ; ÿ»~Ë©é›ášUü«øWñ·ŒYë͆7Þl(¹¸äâ’‹­~ÞoÞ$¼É§® ÒÔº©uSk~_Ò‡F}h´ðàƒ š~_þç艱û€õå‰mÛ.¶û ˜Ž˜üs¾Kl©ŒÝÒ§bŸŠ}*²/€ŒI¹§ÜS·5ÛÖl[3Sæ‡Ï1Ûë×Ã0ÜÎ>úècã?÷ýÜ÷sß±¢gŠž)zæÁ´ÓLKÙöããã“ß/Iïüæˆ>õøºî|ÝùºóÞ#{ì=¢¿ÿÞ”5¾äù0çá ­€ÿ@Ì…§/IOy©©¥¦–úÈ] ú%C% cêgÕϪŸ•áÌÐùCç?¤ÕSätbЉOí[ãúë7®Ÿt;õ'ÕŸT’%ýîHz7³¡ý³öÏÚ?+õ¯òÜî¹Ýs»¤ë=ðH™ã5Ž×8^£zÙêe«—MÛ's¾>ËßÉßÉß[]@¿B {˜‚˜ü`.7I뎮;ºî¨± ì #sSÝT7Õp~‹ˆEÄ"Ÿº5cϲ­¸¨â¢Š‹LŸmô¯n¸##Œ<2Ò2FþΡ;‡î2ö›ÑÙÖÙÖÙ6mççäwyÚåi—§@ò‚·o Þšó3ø|}N°M°M°ål¤00øÀŸïýê—ãÓ/jª¿çÌ{÷ï=NUª:UÍ¿1ÿÆüm=m=m=]²»dwÉî[É·’o%ýòȯB_…¾ ý|c«. ¿>u;ú y¦?+ºf|Íøšñ†#?¶ÀØc p<™u;ëvÖí ç‡gåž•{VîS·ö¤ñ“ÆOn­°]a»Âv¦Ïù†³V›‰m&¶™hIAÅߣÿý÷hc¿Çe—u\Ö´}Eý‹Æ^±Ò”JS*M! ’—`½‘-G¶ÙÒðu½/ÅKaÏS€}É CiuQ)eÛ1‡K`;\w¸îp-=¼ôðÒÃSöºI—Ǽ·éÞ¦{›¾d=~ÿ£€G&Ÿx|âñ:§ëœ®sºÈ­"·ŠÜJzÿnò¯xÒá¤ÃIc¯x~óùÍç7›Þýbѹ¾ÉõM®o ·Vw]Ýuu×éÃéÔ•>ü0ÖóµWÔ^Q›©GU €õ÷§~êÖî†Ü ¹b¸µB… ˜2Ãﹸçâž‹I6Wt®è\Ñ–^Xza©%ÕÞ¼GóÍ{d¬vßß}÷ý´}Å—™^fz™ÉØ+Úç°ÏaŸƒHÞÑÞG{íÝìçOû2‡8ânÄ݈»Ü Rƒ˜ü‹øsÀ/£^F½ŒjjÝÔº©uÚö!i(òeê!éw& ˜¼6ðÚÀk†?ëééižwuŸÊ}*÷©ÜƶÜ,®Y\³8.SâËÏÕ–ZÕ"*DTˆH«Ò0¾ÕKú*Æ~V¿~CÒÅ¢õzLè1¡ÇË;êõk0«Š.'\N¸¤í+FŸ>}ÖØ+êWÈ`vÒão™Ô÷d°8X,²§@ò€ €À¿€?_¬_ž´zÙêe«—ÍùE|îzøÐèC£üçùÏóŸgJ’€“Þ›>PIÙ»x»øíâ·‹m¹àˆ‚# ŽHÙˆéG Šÿ*þÆ–ýwfggŸ=|öpx“ð&áM ªZ¯ŸU?«~V†}«™­f¶šÙâ<ã<ã¾Õ¯U`¸µÞu{×í]7ù1ܸbãŠ+’þT¾à|Áù‚oŸ»}îö9Ë«:c#¯§_"m_1ù"”šZjj©©ÀÀ×ú‹àËô¤ûêî«»¯f)CL þÕ©àÇ¿’¿dì§’­¯ÉwªôOöM~ûúe÷6Ùo¯µ½ÖöZ\šL­¶vÚÚ)é¨êÿ‹>¤d|2fU럘žül“| ¬ÿ¸Éh÷Ñî£ÝmA,"‹ÛBl»Øv±íÊ9–s,ç˜ô§†>~øxK=ê_¿~üÜîã_Ÿã—ö_Úicû¨Å©§ZœbŽ>ó €—uYÖeY‚)CL þÃç¸ìòuà/ùNçþ0÷‡¹?$ÿßý³öÏÚ?ËôWÑgçŸ:ÿÔù'c[.z¦è™¢gRsiþSï9.T ¨@~ç}ô9Ðçô«Ó¯N¿Ò?eSf{­QÞ£¼GyÝ{šM•sûÏí?·ßØ’îfÔ0 €“š>`ú€é·Üþq{æçŒVÕ¦¼ë½GöÙ{ä~Ðý ûAúûSC–‡,Y^oa½…õû©†ÝvoØ=ùwjHØ4²idÓèiµ§ÕžVãÈM=}„o±'µàØ‚c Ž1V€9ÿfI=ýòòÆú _šžýŒ!&ÿ8e[Ó/”šü2­w#îFÜMáHfOÌž˜=ù><þñøÇŸc>/ófΛ9o¦p¬ôË· •ÓêR£>„6ö.ôNò¯¥%Œõ¶äâ’‹K.þ|÷Ãe4ÉÀIÝÕÿûô·§¿=ýmF¥ŒYÕúÙ&ùµ>•}ûö9®;_w¾îlìuõ‹o—ØPbC‰ IvÚ¸iã¦ãci%ùNé÷û«ÐW¡¯B+àËŸùɹN¿â‚±>è—ñgc€ €À NÙÖ&é&é&éŒmmU¾UùVåKýE´˜ž1=czz¬÷Xï±ÞØ3;?Çhè¹$º$º$>ñpÄÃ)ë¿~YQcÛ¯»®îººëÒöRãI‡“'rßÉ}'÷ÃWl~£ùæ7ŒýììⳋÏ.n¬·›lz°)3FZ‘¿“¿“¿³šf5ÍjÚ§†yåý+ï_yM"lz—1«Z¿vêc`}ô{xÙáe‡—%ÿІc¥_kè7­èÜä÷×n¸ýáÆ˜_ëÌÿË}Æú74ohÞPf` 00øÀŸº5ý3Jm§ü‹ò/Ê¿HÛËU»¾ßõý®ï¿ähèé¯NMÏ¥ì;°ïÀ¾úhÙ2fìŒPÕ©©ÿOÝÂãöÛ?no¸Íc6Ù<†3„Oõn껩ï¦N0}Àô¦¡¶ž¶ž¶ž§_~uú•¹Åíé}v¥ÿæüÛÍükûKöG?ßëÉ`q°8Xdv†€ €À þÔ­é#cÛy‘ãEŽ9¾äžJzŸ_Z†zA½ ^H}Ÿ“_¸UWSWSWóëV¸1ãbÆÅŒ‹1ÿK½çyÒ-»FºFºF~jô÷£ëûµìy;½Wõ—4tÕÐUCW%¥ÊC+­<ÔôQÒßç:÷ýÜ÷sß7Ò`Hƒ!¥¦–šZjj¾à|Áù‚KLê˜:®IDAT/=¼ôpý×xèΡ;‡î²¼‘ÜáºÃu‡kÙ¶eÛ–mkJ5êïØÖ?ßÚwûœáXý=úïÑNþgõËq' ÔM—cþù7êÿý~øûáß1~øøáãõ÷ 3» òÛÍ¿ùüfË8~3Î%rý+Ž8bàˆvNvNvNŸÚÛ}ô9ÐGÿôÜô²÷-µª¿Œ¿¿¿¤cUoa½…õ&_½ÏÊ=+÷¬\ÒïL=ý2ÔéeÜ^¿~<²åÈ–#[šþ+.ª¸¨â¢C[m9´…× òÛÍükûKöç†ý ûöÆz¢_S"&ÿøS·V( P@¡ó¹éå啯c›=1{böÔWWÁGaìU¢nGÝŽºm>ÕÞ«U¯V½Zq‘Ñ’æ´JS*M©4åS©/³89Uýµ\ép¥Ã•†c63lfØLc?¥¿ë7m£_½Ú7k߬}3¦gLϘžæšýŸ§ÒFçŠÎüÙ÷6ÝÛto“±±m\¿qýÆõMYÆùQÀ£€G~kô[£ß ·S ¨@P 3 9²'fOÌ>X,ÿãɾѹ¢sEÙ9dç–´L.1Ïü¿üñ«?4Ö[O[O[Of`ˆ˜üàOÝš›ê¦º©Æ¶sëέ;·îdÌýn(é“Û ]õ¹êsÕçs¿Óð&áM›dÌçüAïxã5Ž×ðŸç?Ïž)ûÝü`ª:ešßh~£ù¤£ÑcB =&$?2Iïg5¼ë÷Iã'Ÿ46½úØ>‡}û,y:÷ýÜ÷sß›ÃXõíÛ?6ùZrßë¾×}ïÑÞG{íMu–qæÿåeýÙ ±ž”éQ¦G™Ì0À00øÀŸº5c÷oép9árÂ%cîwCúxÀØ«èŸ(ùùÞ£þnl×H×H×HÃW¯™­f¶šÙ*DTˆ¨aø“>é™Y"}y7õÝÔwS×]wtÝÑ65ljؘŽ6Ò`Hƒ!ú@Ë<ßU¿”ÿý;ôoÃÅóMùÈNýIõ'ÕŸd8žKû/í¿´Êú³ðàƒ nSÿûåëŽÕš‡k®y˜ü‘’ô~_æÀ’Îü¿üqôC$†*.ª¸¨â"fð‘¿ò€ €@ò€?uk£ÝG»v7¶]ow½Ýõ6cîwC-å–rKÙØ«ü=úïÑþ|ïÑØâ¥yCó†æ =·ÿÜþsûm9´åЖ\ßäú&×7†ßéSÙ§²Oes^87§û’ãpÃþ†ý ûQÞ£¼Gy›ÞÃüóoÌ¿1À/À/ÀïÌù3çÏœ7ÿKÌ¡ª?‡ºëꮫ».é8 ?|üðñ¦ìñ’‹K..¹Øp$#îFܸ›²þè?*d¸Í¤‹“ùQŠŒŽŒŽ4úÔv}EéïQÎaLzŸ]é¿eüvûZµý%û³ÖþYûgëIëµ­×¶^K €ÿ@ü©[ÛsqÏÅ=m§Ýïí~o÷{Ú!wCî†Túñ/åžrO¹gûÝPÒˆÅÐÆWl\ñ9ªZÊ#å‘ò{Ýi㦛6.é;M¿|3æ%òÛÛ[ý%ã§ZœjqÊô^é—%ŸÙbf‹™-Ò×ýŒSÕië@Ÿ}ôIú®õÏ&Zíiµ§ÕLÙ‚þ^aÃÑ{ü:øupÊzõ*ôUè«PÃm&}­/?V=õÔs±j™]|vñÙÅ3Nå Òà/cö Û6l3Ö“G 1¿×€!``ð€?ukÏÊ=+÷¬œ±í侓ûNî;i{ùÌØ=ÇIïð3‡ýnhù¯Ë]þ«±WÑ/‚š¶õü2êeÔ˨¤OŒKªŠÿ*þ†ï1úlôÙè³Æú©‹Ìó²oƹD®ëæþ0÷‡¹?8UuªêTÕôžx)^Š—²Ãu‡ë×ôxù>£UušÉž˜=1»gÏž ’Ë“gìYæ§rŸÊ}*wʺ¦¿{Øp›Iï6þ’CuoÓ½M÷6«–šñ5ãkÆg´;ðPé?ð—±àØ‚c ŽëÉŠÚ+j¯¨ÍßkÀ00øÀŸck=&ô˜ÐcBê÷ÎËL/3½Ì”|¬eΰþ)¿Æ^¥ÿýìÿcÚÖs÷ÕÝWw_m,˜O>°I~ÂfqÍâšÅ¥¯ã7½_"oÞ$¼‰ÿ<ÿyþóL]ýbÈ¿ïú}×ï»N:œt8éÞ/Ùg´ªN+I#½¢gŠž)zæSë¡a÷†Ýv7½EÛm_´=e}Ó??Øp›IŸ7ü%Ç*hvÐì ÙÆêä`ÓƒM6å숕þú³Ac=ÑŸ ð÷0DL øíÝ{œÍuâÀÿÊþÚýú–»r"Eb˜Ê=×BY‰UYå’°.Óæ‰éª”¡­DB-¥ÒºDY¡Â—J.]±¶rËÄîºF1#3¿?N¿Çozœ=ÓÔàœó™çóýx|ûØÍÌ9ïóžé½Ÿ—Ïç?C ÝT6ï_mÍ}kî[sßé;‰v¢í‰¶'Ú†žÖé+‡òFì|îá2o˼-ó¶Hß%teÞ©ú^¹ßšûጇ3ÎÈË»sãÜh96úØèc£_YûÊÚWÖ6Kh–Ð,!ï§ã/}ëÒ·.}ëñiO{|Úžä=É{’ƒñIYÕ¿ÎhüCã+Ó®L»2-ç{œüÐä‡&?ôK¿Ú3{žÙóÌžð«|Vå³*Ÿµ{Äî»Gäý«í»aß ûnÈ™¢s =a÷ÌÏX¤×”QvDÙ~ïAÁÙùŸùŸ÷ðû4„”I-“Z&Õï X~†²·ËÞ.{»œÚ¯Y<½xzñô_m‘ì"ÙEòò5=Xô`Ñ…{îQ8ÒW®?±þÄúcá3ÊÏ÷:U·Ë}vsñ7þ]ê¼_çý:ïçý»„òL(턵 +4®ÐØéÈSåëJ_WúºÒ}7ßwó}7ÿÒk°šŸßüüæçÿíÉ¿=ù·'ƒ÷‰XÕùñÒ±—޽t,ç{¬U³VÍZ5Ý{Ü•º+uWjΑS›{ÚÜÓæž¼dàЧ)µ^8éÂIN ÝŠùŒNV‘ì"ÙE"ý”å\¦‡ßpæwþgòßGgqtF¤×ó·¥O ' ÀÀÏ€Cî™wϼ{æ…n¹œÑ?£Fÿ¼œˆ?Pñ@ÅCWæå„Zè¶Ÿ_LùbÊS¯<¼òðÊГMW?±ú‰ÕO÷HÆ 3xÌàÓ÷ozëÐ[‡F ðkÿ¼öÏkÿüK¿fάîæ7¯¸y…ßù±è…E/,z!ï¹7´ò{œèq¢Ç‰œ×ßu~¬ê_çøðãÃ^òÌg>8óÁÓ÷;3ן›úÜÔ禆~?Yxdá‘…¡gý†®<Ž”óCÙòÈ–G¶œùU–ž–ž–îF»`çæú>œõá¬gEz c{Ží9¶§Ï ˆD€€Ÿ!çÿDغsÖ³îœÊ‡*ª|èô …ŸYg œ50ÿ§çÎ䉿Pð>ßñÕw_}÷Õw#}Íw¸{Äݧo%Kù1ûöٷϾýg¢Ú¡Ê‡*¹wäÞ‘{C!£ ̹U¡çòæ|/ ‡5ÖpXþßWè¶ü§ãw{Îg Ÿù[^ryÉå%`°ó?ó?}‘n°òå˜/Ç|9ÆçD" ÀÀÏ(8øþV÷·º¿Õé; ~£ÑS¥bbÅÄŠ‰o~ÿæ÷o~ªNÌù‘¾W÷êÝ«w¯þK¿ÚŽ;6îØék&I*’T$ÿï%ô]Ê%—K.—þ].ªxQÅ‹* ¿N¤|uç«;_Ýùå¯^þêå¯ Z ²ªó#tO…ðgë¾ýÀÛ¼ýÀ©ú.¡[ôçL¶ùO¿¡¯k?‰0Ìÿ™üé íóÿ˜ `€`àgœ|lô±ÑÇFŸîÓÐ9¿KÙeG”ñë¾c膷½>ëõY¯ÏNǵgþÄ_ΜæTuFÕUgü‚ï[$»Hv‘HÏÑ,~vñ³‹Ÿýþïñþgf®:?ÚùÑÎúMòK…²Sè9Ð]¯ëz]×ë>XýÁêVоVu¾…ßjþºg¯{öºgOÇŠÊy5p¤gGúç£uÃçpá×L ÀPwþgè§/×§?úÉ£Ÿ<ú‰O È,?£ fͼ-ó¶ÌÛBïúúQ׺~Tèi‘¼vÁk¼Vó÷5_ó÷­_iýJëWzîQ¸GáüÌO芴ÐWè½¼÷òÞË›ÖhZ£ijÏU{®Ús¥V–ZYjeèz»¤ì¤ì¤ìP =Eò?“þ3é?“‚ôél/¶½ØöSÖ©úËgrUŸùïlÛjo«½­ö7;¿ÙùÍN³gUçGèYìá¿OBÏV?3ŸZèF¦¡+z/}ÙèËF—^Xzaé…¡ßö¡׌ûí¸ßŽûmð~·þÁ/•ó¯|…?î$ôlrŸ;Xøgþº‡‚|ÍS¤w}Wý»êßUßjòó»%÷ÿ&º¿å|F!ª ¨6 ZøïÉ[æß2ÿ–ù~gy! ÀÄ…³Î^8;ÒsŽ?>üøp³<ý3úgôÏù¼ùÓ÷Ôv Ø`€’U!«BVÏ}(hæÿgþæÿ'|ïרo£¾úÚy' ÀÄœ7¿óû7¿ßµvéÔ¥S—Næ xB;½ðà‚5 Ö,Xc~€¼€`bO‘ì"ÙEÂw­¥–^Xz¡ë?‚ä`уE ßû5iÔ¤Q“Fö~À/% ÀĨ¿Yñ›¿q#h€`{|ÚãÓŸ¾ß[qdÅ‘GÌðK À01-|ïšÐ6¡mBÛok}[ëÛZæ ~¨x âŠ¡Ý]Îý^ïå½—÷^î¯ý¿Ž,ÓvØ=b÷ˆ +4®ÐØuÀAò`Õ«>X5çî®bbÅÄŠ‰{’÷$ïI6?À¯# ÀÄðl™Ô2©eRˆG¡]\ÙeG”‘s7kଳú«~@~À0qÃó€‚aØ‹Ã^öbÎ]rïäÞɽíî€ü€`âÆÑGgÚÁ6iÔ¤Q“F×®»vݵëœ(ˆ‡vÚqhGÎ]‡ÿíð¿þ׎8U`XB€€€€` `XB€€€€` `XB€€€€` `XB€€€€` `XB€€€€` `XB€€€€` `XB€€€€` `XB€€€€` `XB€€€€` `XBþÑæy¬ŠÒX¥±&Jcm”ÆGg||¥ñI”ƧQŸEi|¥±.Jc}”Ɔ(Dil<ããŸQ_Di|¥ñU”Ʀ(ÍQ[¢4¶Fil‹Òø:Jc{”FÚßDiìˆÒØ¥ñ¯(Giü'JcW”Æî(=Q{£4öEiìÒøöŒQ£4¾‹Ò8¥‘¥q8JãH”ÆÑ(ï£4ŽEiÒȈÒÈŒÒ8qÆÇQ'£4²¢4²£3Vž¥qv”Æ9Q…N×€KˆÀà0Pp6ïk¿¯ý¾ö¬–Z\ýqõÇË·âí‹·/Þ¾g»žíz¶›½göžÙ{vÔÙQgGsppàÁ®(²¢ÈŠ"÷ßxÿ÷ߘØ=±{b÷üïÁÊ¥–K-—zg¹;ËÝYîïmÿÞöïmwÞUxWasÁ ?‘¾(}Qú¢y)óRæ¥4Ýdt“ÑÅ¢äÁŽv|°ã¦²›Ên*ës‚mÿ¦ý›öozù_/ÿëå%vIì’Ø%Z{°±‡Æ{(mHÚ´!>€Ü…ï¦VZYhe!3Ct À@öÖä­É[““ïN¾;ùîb1)¡GB„o$¿‘üFrƺŒuë|j@ËÈÎÈÎØ0yÃä “;7ëܬs³ØÜƒ%-NZœ´xÉ×K¾^òõÉ¢'‹ž,ê£ÈI&6 ÀP@…¢oÇÍ7wÜüëN^ò— ç—šß'!©|•‘ÏljÞ;±×Üž¿ŸqÕ Kwu¸«~…Êu\Ú`Ô{Õ:žÓ ä¢¹7–¯»pzßÖµ“v=ðjƒ¯/ÛÐúóK†$ ÌÏéÈ×Þzí­×Þ:±þÄúë}š@¼Xßr}Ëõ-§6NmœúëvA¥VÞ\íìÊ_w¸s•êëî¸zø²Zz²ÌÏX6ùÖ+_¸?ý¯÷_Yì¾&Ï__{Å#ãvÖhÿ§Ãþã’"í/¸ãeϮ٬NÿüìÁõ[ÔoQ¿¬iYÓ²¦ù4`b“ Hz½ôzéõ†N:i褼ŸæK¬\nçÓ_øÝµëjÛ2¨Ë'M eg÷ïߺõ©:›Ý§}ËÞËövø´~ç>ÙI«¼õ ÎA^Sìšb׬zvÕ³«žõù±io¹½åö–ë^¸{áî…ó¾Í)³ªÆ¨«†×|/ùáQoÐü©å 5m:}úÇŸªãÕÕ'í[Þ*é†~5þ*¶i¼«Íμ¿¶i5Òj¤ml³±ÍÆ6>_  €‰M0K-=´ôPÞOêMHl¾3ñÍ#•{g];ùÔæÞ¼Wž{S©ï´)ti«„yyÍÉ ’$78œ}8û°ˆ¶=Ù{²÷Ìé4§ÓœN¿ ¬îéûåÈk› y±òšgNmîÍû1é¯Ãf>{û…Õ«¬¹7/¯ydæÈÌ‘™™u3ëfÖõ±Ll€ °2We®Ê\5lÿ°ýÃöçåäÝüÜЮÎÔg÷}²Õ¥Ñо‘ŽÛ»u»¦é®žoÖúçÅKòò^6 Ý0tÃPk8óŽ\zäÒ#—vÙÕeW—]¹ïXJì(s¸üãWlLyhÊÍMþùÒ?ª­èéX¯jj…Ù;Ëo«Û²ùÏ\»\qBÅ '¤UH«VÁ ˜Ø$@íOÙŸ²?åŠ-Wl¹bKî§ê¦]ÞòDRìý‹·.kÑ7ÒqS.¿mò—F‹.J/» ÷w7çÀœsXÀ™‘6!mBÚ„¼üeµZ+}ü—u±–{s?ÖòÈ{¯d–øºÌ®ò÷æþîV´[ÑnE;ë(`b“ ²ýÅí/n1÷Sr7T©:°Â+»wõX×¢H¼DßHÇ™]¯_}åˆÜßïÓ=ýØÓYÀé³®ÒºJë*å¾'©ô·–Ýnzôêû'\11¾ÒoÎc“¿4ö£^ÕG÷øã½“r¿3KÎ,9³¤µ›Ll€ ¶ Û2l˰ÜOÃýõü–WÔžïÑ7ü˜ö~·ÕÍêWºá‚ò%#Þ ú‘)LydJvFvFv†Õœ*k¿[ûÝÚïr߃Õ.4ø¥'wÄoôt¬ûÒã÷Îü ÷÷>µßÔ~SûY'@P ÀÄ&âÞŽ†;îh˜û©·ÕKoÖp\ðÒoÎã±i}~ßòŽÛ²j«”iÆŽ;jì(kÈ¿õï®wý»¹ïÁêÓþõÁK¿9W—›ôîòÿ§Ì/¿ìŠÅ‘æaFÚŒ´iÖ <0±I€8vðƒƒü™«.6Ïíòh“/ƒ~s³Æ÷û¦Õ‘áeê}Zí™Hsòêk¯¾öêkÖðëìX¼cñŽÅ‘«o±1Å^o8kB­wª;ýþäÖЦ•X]§béÆÍÛœib–U_V}Yuë˜Ø$@\:Ùîd»“íZ$¶Hl‘éÛöñÝ:5M/8é÷'Ç}ý{¶n1bWý”j™‘ægÍÂ5 ×,´–€¼û~À÷¾P¦P™Be EÚc4;ñèÒe'ýþ$ÏyqýÚ{*¶n¼µÍ‘ægëy[ÏÛzžµƒLl€ .¾hôE£/ŠtZíËoФvM¿9%ûo]¼÷?kO¯R?Ò\}ÛíÛnßv³¢€¼èýnïw{G¼ísÃAãï{ûš‚™~’Lë»úå²=ï®{$|–J+y¬ä±cÇ2ŽeXQ@¼€‰M0Ä™Oú|Òç“>‘N;.Ÿó‡{ê/“~s3Gô½­Õ¹Isê^8 |Æ:Lé0¥Ã”ìmÙÛ²·Y]@$ouz«Ó["íÁên8kžôû“g?2¥ÐŠ7"ÍØ°Ãh]ñN>UÍ[4oѼÐ>>óñ™Ï³6|”T-¡Ð…N¶ëׯÕl¡7÷㻉íû×{(Ò†òHÇ#t´Ò€œ´Ðj@«ðCźg´yºi“éS?^%ôæ~¬ñ@ŸGz*|Ëô,Ó³LϦü0å‡)VàüËyíoîÄༀ 웿oþ¾ù‘¶>[?ìÚ¶iq7ïÇ[ÿ]ã©Jÿ>“cÎsÖ»#àG›n^¸ya¤=X£Ô‰ß-],îæé©Àû^zá£T­Òô²OÃgrV×Y]guµÞ€x$ç_(è†ân±<ƒsç'Ä” )R&„otyªÑ‚êÝ_zÜu Çæ_DÚ>(u ÔRVбkÇ®»†ïjöëßïÑ6²î/¾ôå©Õg§GÚƒe\Ÿq}†“w@œ€O-1øT€ ¦H9r %Òæ&½~ïë®­.èþºcê€Æ;k\>«O$<‘ðD‚µÙ¶¹Ûæn›iÖ¤ç´ýkntÝñ¢´»;tŸÕ×K¼^âõÖ_àÓG ÎbÚÄ;L쾕÷H³'–qósüî–^Ï^³4Òfñøè㣶 `xtàÑGÃwµŽ¾ïÉ"n~Ž ’žzrARøÜ–Zjh©¡Yû²öeí³€x!Ÿbð/%@Œ:9æä˜“c"m_^Ù«Ú5)"nþÃ×Õ/QmIø ¿sÞ;ç½sžuÍÑGmñÚß„iEW'‰¸ù?&\Uï-þ>Ã27dnÈ´€x!Ÿybp^À£Öï[¿oý¾ðÍJï[k©R^¸=UÇí#»uhz0|ž[ömÙ·e_ë šÅw.¾sñá{ƒj_w)7è áöT¯zûáaÓ>σît× »¬C ^ÀÑ%G"@Œ1lİÃÂ7(Ÿêôa£c±œTŸ]ÒâÞZ…C¯vK».Ë›œˆé |¸ïÖ×^Ú«ÌÙ¥¾ù/OY.’^$½ˆÕG»­í¶¶Û¾+h°hÜ ÛÅB:müñÔbj—g&\Y¯}‹^¥ªœTµjñ´Ò^xW™ßU¯•tOŽM·ß0àÊ¿=Pæ¯sc37yüÅ®k¶E:%÷Ãù?œÿÃùV#ûàØ!ç$@ÌÉ:‘u"ëD¤Mɉ{ú¾ÝªyŒÆÔ"ý‹¶.Ö¸M¥ÔrEr¾æØ¿xêS-ßKú]øl//¾¼øòâÖ$Ço:~Óñ›Â÷%J^зL“¦õ¦§~<'ºÑ´ÞÐ1¥_¯rAá‹w]Ö%ï§´*u½vPÇŽM‹M/úqÑXËÀ—”oßôŽ'Â_óWݾêöU7kˆ}plƒ`ˆ9»î¸{`øäŽåµî»ø±XN¿£–^ýèåw…¿òØÀßü¹û¹Íº‡¿òÁç>wð¹Ö$ o,¼±ð¹ùó;·½2¨I”¯—ýæ¥>êXöËZ;ë¯ÿñe½P|U‰V•?¿þìÎõ'Þ•Z¬î9£F½Ö,é¾aÍ&|U©Ö5_ÿá¹bM‹½\쓜ï%ÖpsFv9)|Î'wšÜir'kˆ}pì+˜1X€˜³dü’ñKƇo;L½áxÝßÄB.Ý“|ÇY-jÎØ&ñÊÅg4J¨>áÊ´ ¿½ð@¤ Sìà“è—Üjιâ§V‰Z%je§g§g§[™lÏöügϾ¨³gTÝ›¢Jk÷¾{ÃÓ?ùkv‰}þøVÆÿwñïÿ5p¬eàâsKW»à¥ð™Ïª”U)«’• Ä28~; ÀsZìk±¯Å¾ðíEÆó}Ûrc,„Ò‹omÛø¡q¿m¶¸ffø1~ðÓmš ªùyøëßþÝöï¶ge@°E:ÅÓô’é7~Ü#º‰´rÖõÏvN/տ•—T¼½Iõß7ÌKÊm¸xB×wzý—wc¸ÒÄ–Unjþ:]tè¢CY™@|í!àx¼,@l̨Çú÷iÝ2ö3jüà%åÛ¿Wï¿\÷³2eeÊÊ+ Ú¬Üïjß×`b¬åÒ¼/ïØó‹”u9¯ŽÍ|ùs½^¿ogøüo«¶­Ú¶jV&_{H8Þ# ÀÇko«R½üßâ%£Æoþç··þ_ãÃ_ÿ¬ÄY‰³­L(h{°‹w´íÕu|ì‡Þú]ŸøîõuþñhúŒG“*ÞSnüí×lSõÖŸ<[·Æ‘¾#ÅfN:yïæ‰{Ãçõ²ÕËV/³2€øÚC ÀA¿1X€8Ø8þéwµßªr­|ºÿ¾üö;›× ýãï÷ø»­L(h{°ËèVdHרÀ¥·^|sµÃ_ñGKM/}$±ð}Û˯¿Î†G¿qøë_ØtaÓ…M­L ¾öpPÅW >+v~$€HîM«÷NµÇàÓ}Ü¿²gó¬7 ¤ÆÄ>Ÿ?t0~pNW|›²nÊ’Ø|ýõþ9¶åÜYÖAµhÞ¢y‹æ ÀÀOmgÌÝÂúþ¿t|³ƒõ@PeÎÍœ›9W~ÂÀ®μx¹8Ò1ô.*\ßpi«Ïr¾/WÀ™T€®ÝÝ0 Ã0Œð¾Eð àè>xðæÁ›o¶2 Ã0 £ íÁâåÀyÉÀ!¥U¸¢Rv¬eàHÏ~"ý‰ô'Ò­LÃ0 Ã0âk9éÜIçN:×Ìo,NYœ²8¥ÿ9ýÏéNÞÓoèŸ/@Ïò~ŸŒko«R½üßàÓ}üç··þ_ãÃ_ÿ¬ÄY‰³­L(h{°‹w´íÕu|tãh£Ÿ«·¬ÄO®K>Ò7cä _W¯äêWÚ…þl‰Õe^*_>ÖpÒÉ{7OÜ>ÿ«—­^¶z™• Ä×2 ÍL0„Âíã3ŸùøÌ¼GßÐ?æ£oN0ÄÁÆñÇŒz¬ŸÖ-àÓw\R¾ý{õþ—{ÊÊ”•)V&´=X¹ßÕ¾¯ÁÄX»Š·ò­Þ¹¥eÞÿlóþTñ÷C¶üßêLiV+ÖðåÏõzý¾áó¿­Ú¶jÛªY™@|í!àx¿Ñ7'bN‹}-öµØ¾Èx¾ïo[n€Oßñé6ÍÕü<üõoÿnûwÛ¿³2 Ø"ÊizÉô?î;¸Ø ÅW•huÕÓ~©Kîªámãë/Þ[꼄+]ú£U/»eaÿob-WšØ²ÊM ÂgþÐE‡.:t‘• Ä×RŽGÁˆ¾9 ÀsFöÙsdÏð-ÅŽº¿ÐìmøôÛ¾VµE…Ñá¯ÿ艣'Žž°2 ØnYxËÂ[þ˽@®^1åÃ÷fF7‘Ö[?¶áÜ¿O+ýá…wå|mU>½±Möµ' é=®zèVÏIï)7þöª:]—<5ç ŸCOÿ ÝP:ÖžR\|néj¼>óY•²*eU²2€X&ǯàEßœ`ˆ9KÆ/¿d|øöbÁÔŽ×ý|:Ž'ÿÐ/¹ÕœðW^¢V‰Z%je§g§g§[™lÏöügϾ¨³gTÝ›bçFÐ%¦”)Rîö¼Ÿ¢*[±æ u¶×+3úÐìÙ±vío㳞÷þ᯹uBë„Ö Ö$ûàøì蛓 1g÷ÀÝw ßjܱ¼Ö}?&ŸŽã7î~n³îá¯|ð¹ƒÏ|®5 ÁÆÂ o,¾¨öÎm¯ j;ÑôÇ›9wêt]òÔ2ïÕ¸÷ª>%;–ëT¡Cñù¥¯ºàÍ 7_ö×ÚoW\Ò´]Û¿'öùóØÑ77-6½èÇEc-ý†ŽuÎÙýå¤ð9ŸÜir§É¬I ö À±¯àDßœ`ˆ9Y'²Ndˆ´ù8qOß·[5—›*ÇKžúTË÷’~>ÛË‹//¾¼¸5 Áñ›Žßtü¦ÿrG’ô-Ó¤i½é©ωµ œ{ÖÍè›óxIùöMïx"|οêöU·¯ºY“@ì€cSÁŒ¾9 À£F 1lİðȧ‡:}ØèX¼à88îß»õµ—ö*sv©oÂg;½Hz‘ô"V#í¶¶ÛÚnkø® Á¢qW,lË15¾ŽM±ëšm‘N½ýpþçÿp¾ÕÄ>8vˆ¾9 À£Öï[¿oý¾ðMIï[k©R^¸=UÇí#»uhz0|ž[ömÙ·e_ë šÅw.¾sñÿåFÐ_w)7è áöT¯zûáaÓ>σît× »¬C ^ÀÑ%úF"@Œ:9æä˜“c"mS^Ù«Ú5)òmþÃ×Õ/QmIø ¿sÞ;ç½sžuÍÑGmiÖ$aZÑÕIòmþ WÕûC‹?…Ïð†Ì ™2­C ^Àgžè›0Ä´‰&v˜Ø!|Ë2î‘fÿN,-ßæçøÝ-½ž½fi¤MáñÑÇGm@Á4ðèÀ£†ïj|ß“ äÛü$=õ䂤ð¹-5´ÔÐRC³öeíËÚgñB>3Dß_J€˜v å@Ê”H›˜ôú½¯»¶º”û뎩ï¬qMø¬>‘ðD ÖdÛæn›»mnÄë€{NÛ¿æF)÷×/Jk±»CçðY}½Äë%^/aíñE>}Dßü€ ¤LH™2!|CóÈST? åþÒã®=†4ÿ"Ò6ñ@©¥”²ê€Ž];víØ5|·P³_ÿ~¶‘ré±Þå©Õg§GÚƒe\Ÿq}ÆõV_àSKô=U`ˆûæï›¿o~¤-ÎÖ»¶mÚAÖÍûñÖ×xªÒÿ…Ï䘳Ɯ5ÆîøÑæ…›n^iÖ(uâwK˺y96Ù÷Ò ¸ j•¦—}>“³ºÎê:««õÄ#8ÿDßÓÁ)NˆϬ}fí3k÷;IÕ ]Øád»~ýZÍws?¾›Ø¾½‡"mt<ÒñHG+ Èi@«­´ ß9T¬ÛxF›§›6™>õãUoîÇôyô¡§Âç°LÏ2=ËôüaÊS~˜b¥ñHοEóÍ[4Oô=µ`ˆÃ3†g ´zrJÓÏkÞ%ñF:î.Õcdóí‘foÁ› Þ\ð¦5„;Xû`탵#í"?¾kMê·oÄÛ>?<¦Ñë7Eš½Onøä†On°Æ€ø%çßÉŽ';žì(úžZ0Ä™Oú|Òç“>‘¶DËçüážúËäÞœÇÌ}okunÒÜ„ºŸ±S:Lé0%{[ö¶ìmVÉ[ÞêôV§H{°º›G'Κ'÷æ<^ýÈ”B+Þˆ4cÃ8l uÄ;øTÉy°è›0ĥѾhôE‘N¨}ùámšÔ–~³Kö/ÞºxïÖž^¥~¤¹ú¶Û·Ý¾ífEyÑûÝÞïö~7Ò¾¢á ñ÷½}ôÛ¤Á´¾«_.Û3ñîºGÂg©ä±’ÇJ;–q,ãX†Ä;˜Ø$@\:Ùîd»“íZ$¶Hl‘éäöñÝ:5M/ éw_ÿž­[ŒØU?¥Zf¤ùY³pÍÂ5 ­% ï¾ðý€ï”)T¦P™B‘öÆN<ºtYM¿s^\¿öžŠ­omóE¤ùÙzÞÖó¶žg-Á ›`ˆc?8øÁÁŠåjóÜ.6ù²à¤ß¬ñý¾iudx™zŸV{&Òœ¼úÚ«¯½úšõü:;ïX¼cqÄíW½bcнÞpÖ„ZïT/@é·Â´«ëT,ݸy›ó#M̲ê˪/«nýA"›`ˆ{;îh¸£aîxõÒ›‡5ìô{lZŸß·¼ã¶¬Ç*eEš‡±£ÆŽ;Êšòoý»ëß]ÿnî{°z£Ç´}@ÀŸõ[nÒ»ËÿŸ2¼ü²+"Fñi3Òf¤Y3@ðÀÄ&b˰-ö Ëýä_ÏoyEíùÁK¿iïw[ݬ~¥.(_rI¤÷þÈ”G¦<2%;#;#ÛÓæ€Sfíwk¿[û]î{°Ú…¿ôäŽà¥ßº/=~ïÌŸ¹ÍÔ~SûMígA%›`”í/nqû‹¹Ÿ†»¡JÕ^Ù½«ÇºEâ=ýÎìzýê+Gäþ~Ÿ~ìéÇž~ÌÚNŸu•ÖUZW)÷=I¥¿µìvÓ£Wß?ùàŠ‰q|«ç¿4ö£^ÕG÷øã½“r¿3KÎ,9³¤µ›Ll€ €ö§ìOÙŸrÅ–+¶\±%÷sÓ.oy"©Fv‰þÅ[‹—軩G—ß6ùK£E¥—]û»›s`Î9¬àÌH›6!mB±<¨µbÐÇY_é·ÎGÞ{%³Ä×ev•¿7÷w·¢ÝŠv+ÚY@A ›`¬ÌU™«2W Û?lÿ°ýy99ÿ7´«3õÄÙ}Ÿlui¬Eßíݺ]ÓtWÏ7kýóâ%yy/†nºa¨5œyG.=ré‘K»ì겫ˮÜw,%v”9\þñ+6¦<4åæ&ÿ|éU޵è[¯jj…Ù;Ëo«Û²yáÜßKÅ 'TœV!­BZk(8`b“ ÂÒCK-=T,Ï&$6ß™øæ‘ʽ³®­è»òÜ›J5x§M¡K[%ÈËkNnÜ ¹ÁáìÃÙ‡}à@´íÉÞ“½gN§9ætÊû¬Æž¾_޼¶É+¯y&ZÑ7é¯Ãf>{û…Õ«¬¹7/¯ydæÈÌ‘™™u3ëfÖõ±Ll€ I¯—^/½ÞÐIC' ”÷‘‰•Ëí¼`ú ¿»v]ía[uù¤i¡SzÍîÓ¾eïe{;|Z¿sŸì¤UÞÊûk+vM±kŠ]³êÙUÏ®zÖç Ħ½åö–Û[®{áî…»Îû6§Ìª£®^ó½ä‡Gý½Aó§–/tjCïÕÕ'í[Þ*é†~5þ*¶i¼«ÍÎ_ªÓj¤ÕHÛØfc›m|¾@A&›`( ¶&oMÞšÜqsÇÍ7ûU.ùË…óKÍï“T¾ÊÈg65ïØknÏßϸꅥ»:ÜU¿Âå:.m0ê½jÏiPrÑÜË×]8½oëÚI»xµÁ×—mhýù%Cˇ×Þzí­×Þ:±þÄúë}š@¼Xßr}Ëõ-§6NmœúëvA¥VÞ\íìÊ_w¸s•êëî¸zø²Zz²ÌÏX6ùÖ+_¸?ý¯÷_Yì¾&Ï__{Å#ãvÖhÿ§Ãþã’"í/¸ãeϮ٬NÿüìÁõ[ÔoQ¿¬iYÓ²¦ù4`b“ üƒ“ïN¾;ùîb1)¡GB„o$¿‘üFrƺŒuë|j@ËÈÎÈÎØ0yÃä “;7ëܬs³ØÜƒ%-NZœ´xÉ×K¾^òõÉ¢'‹ž,ê£ÈI&6 ÀÀO¤/J_”¾h^ʼ”y)MF7Ýdt´N8>ØñÁŽvÜTvSÙMe}.@°íß´ÓþM/ÿëå½ü¯Ä.‰]»Dk6öÐØCc¥ I’6Äç;˜Ø$?ãð%‡/9|Éê‹W_¼úâÇRK},µþ¸úãêËÿéÅâí‹·/Þ¾g»žíz¶›½göžÙ{vÔÙQgGsppàÁ®(²¢ÈŠ"÷ßxÿ÷ߘØ=±{b÷üïÁÊ¥–K-—zg¹;ËÝYîïmÿÞöïmwÞUxWasÁ §Øúmë·­ß¶ò󕟯ü|Õ‚U V-ȪšU5«ª™8}>*úQÑŠ®ì¹²çÊž«+¬®°º‚9€‚I `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€BˆÿµG8™uÕÉÃ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/find.png000066400000000000000000001244231431412030200243170ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTWãÿq)šäQ°@±š"¢bï½÷ÞÀn,رÄ{%н÷Þe:XcAl±wcï‘ß“ïùísÖáAYpYÞ/ΙãIØ;3wîÜ]æ³÷ÞT±›Š*Û@ 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A ßÀ›ao†½v°äÁ’KFÔ‹¨Qïšç5ÏkžÔ €”&Ê)Ê)Ê)ürøåðËW\upULhLhL(5 ¥9”íP¶CÙÂÂÂŽv?Úýhwê@JóðÐÃCE¨ÿÿGÿ/Ô À—"KØ»%vË¥{—î]º·lç²Ëv6û½ÙïÍ~·³JM+5­ÔtFúég¤?étÒé¤Ó»Áï¿LŰ6/×¾\ûríáT‡SN5~ýøõã×—Ž,Y:Ò]a»v:¸wpïà¾îͺ7ëÞܘycæ™Ô9ëtW¾+ß•·ßv~ÛùÀéÓ§çx“ãMŽ7 ïÝÒ¸¥qK3üöðÛÃo˃åÁòà§žnxº:`m>¾úøê㫳òYù¬5ûÔlÚݵ&ך\kâììwïQW©àèäsnƆö¾÷¿Uèk´Ù{4MUÜûç^ïñŽEsÖÏôcÜçÒf]›umÖ½Züjñ«Å´ºõçÖŸ[.>Ÿ¦jE­ÍŸn臣Û=w|«Ð×h«•~„ñ9ý¬¹ú€ø#†u"Ri±Z¬6#`FÀŒ€¸ÿüsJçëXýZ™’3¥=õ¬-ô5 ƒ.x0 ÐOÍôê÷Ù5³kf×ÌîÍË7/ß¼¤Q)ÓãˆÇ#¼^x½ðzwz£²³ûšO[»?ªòÁÚB_£íÅ£­¦ù]-—Õ¹dÎAqŸÝ:uë¸ÉÌɬ'³žÌjt_‡«ßÉ;ѯé6ºz·µU¼¼$§ìÙç˜×X­Éµ&ך»5vkìVZ¼ (9 ä€’Fýዊg%o¢_ÓmT鵪oa£Ûõaׇ]hW@òò\y®¸©´_â^£íÚ‹–˜kT{Oß=}÷ôm H.¯^ ¼j~/èêU7›ëèògWz#î5ßê5£×’yíéµJ뀔Œ8ábÆ4Œihôwað×!`Sng¸áv£· ¯·þX_ 7î­ošóÕý†£=&ìš°k- °~so̽1÷ÆgÖ>_›ãmÖŒ×v/Våw‚Þ¸·BÝú³½½ Ç >{ñìÅ3Z`Í>ú|ôùè“¥C–Y:˜ßÅK{ŒNã±™ˆ÷lŸ«Vl–½ÚÊ<Ÿù‚`ß}Wô]AK¬ßÉ“!'CŒ>Õ Ú¤¹—¨LÐ÷V¯%£:Ôk˜–)p™Žýapü°)­µzÔê‘ùCÁýÍÆôô$Üý‚U—ŒHµpšÑí{¯÷^ï½ho€uz<àñ€ÇŒîß‹ýZõò;J¸ÿmÛs®]œ/›×ä¸ùãæ›O{¬ÙškF¬a~ÿ–Xô}¶³Ÿ¦]Wåo|¶¯†ýRÁð ‚—^zxé!í °Rî±î±î®ƒ\¹úÌŠ¿§e-ìL¸û«Wœ–µ°³yMê5¬×6Rà„Ó]=ܵ‹7ÂะS]Lu1•á´ÏA Ó†Ï&ÖýÒ­c;Ÿ4U‹š×çŠ+®H«¬Ó(ŸQ>£|ÌïÜ‘e~)ü˜@ײÓA?jð¨Á£´:ÀÚ¼ {ö.ÌèÎ=_}ÃS¿Lĺ_º]Ökô_ÿ˜×g“ŸšüÔä'Z`”=Êeù›ójÞG™Ö^|®¦×bÝ/˜zñ¹š^ôÚ3¯U½¶iuÒ[a°¥°­o·¾Ýú¶y×ï¶ oã)ÞD¹_·-í6mÜŽüFo«ÑE¢‹D¡íÖã™û3÷gîF÷ì³­vWŒ$Ðýºí”³åÆ»TøÌ¡ãCLJÒök³¾Øúb닙߳µ†Móyå~Ý6:ס·UнË\½uõÖÕ[´=ÀŠDÆFÆFº¦uMëšÖüžíþiC×]º_·Õkï3ã€Óº¦uM«×< RàÄCœÀ’½û#î¸?¨»÷´Äåð¢Ü„lód®8µ«yÝî﾿ûþî´@ÀzÌ™2ÿ3«»Mq(WÁ%!nB¶Ïu.V)»Ñ{ÍÛFo½mD ¬Á§­Ÿ¶~Új_Ö¾¬}Yó»õÆöYü{å&d»ùÈ” žÍë¶ÿ€þú Öã¬ËY—³.æw«sK·rY¢Æ?XÊ“(÷+·Aç–òÔkÒ¼†õš§@ÊAœ4ƒ¿0€doÖ–Y[fm1ïÜ]ZøÍL|›ð­·ãä"›#ÍkØg Ï@&‚¬Â§"ŸŠ|*bôa÷qߎÁ³â&|;byé+…O›×ð®Î»:ïêL;¬Aä„È ‘ÌïÓ7+ÍpzJ|›ðíû?®|Æèçõý×÷_ß§Ö àTÀ©€Sæ÷i—V¶qéHˆ›ð­^“æ5¬×<-Rà¤GÀ’±O·>Ýút˨C/»t~{¥ ñ­E¶KÉr!o­B³Íëù~èýÐûL |cgN9uæ3øÚýà:ØùÁ­¥¶7®·-îd^ÏåF”Qní°½Îö:Ûë¬ù}zôÆr_â[‹m' èós±ÏÌÁ³¯ü¾òûÊÓoëíò·Ëß.7úK9øÄ™k^«ˆo¾ÕkÒp†˜åo—¿]Nk€”€øÛ" 6B »êÕÿª¿y÷íô²Ü§Úó¬'@õ=¶È.â^á‚­>öûàP¢T½ ²Œrö(XÐþz–ˆl½²§-âæ1ÐéA¹kµ{—X3"ûÂMÖ»UéSý+æµ½ªÎª:«êÐokä°‘ÃFûLàqµÉRŸ*Ö îÜW§ƒWåN'Üýó~ôžët(û§l!¯ÚkE»ç¸žõûöÑn%ò6—_5xZ:­5ÇÀÅ6ælžµÎgVYnÿ¬ý³ö´Fà[‰5úóþãÚ#nU~OʈtÎÁWÝ~Ö÷~©Î–,~Ñ_ZÂGßÃWé™)*Ówvì¾ÊÝ=ÊOJŒ³»™}gÿqæ{¬^?¼~8­ø¶"ÊD”‰(c~‡Ö? m>ïÄ D;ßZ™×¥i™–Íó;F9]/ò0KªÌ9³9Úä:¿O¦W®¾?æ8R«îà¡ùNŽ :u´ä•/^y÷ñw×-¥¿krÔ±ƒƒ[ïÌ93*™5»7zùÞÓ›¤vôéþӺŮI:¾Y¯UóÚÖ¯­R`ëAlŠ@2öç«?_ýùʼË.ÑtxöÐNÖš–0)ËÆ|YÎ{¯p«ø¿åäi]©oÆåì–e8–Áz`Ÿ«óbÅ,Ÿ÷v³ÜÍr7iÀ7Ó>¶}l{£þäÈn­«üômãÒ'N•оm‹¸pÞÿžpàf¯{…~´ÎxÙ‰ªM=>™ó A‚h’À·rîí¹·çÞšß›CwwS¸H’Ž‘M,CU;ß%ÖçLoz$_ZÎår["Ë•°K€Ä €c…cVõÎæ‘e…ýFóý¾{ôîÑ»G´Ià[éÓ«O¯>½ÌïÍ~ûB=úZ8Íp>})»rB‡?r/ùÒ>*°ê¦Inyã³—ê‹úÊûÀn¬Ýßv¥âSrõ¢ý>åÕ’&ÖkÕüô«@k€”€Ø:HÆ| úô)ø™ÉŸ_/襎þ¶q©ß¥#Ž6ÌqÞí–÷ÿ­žj0cç“ÕS7/å:·—ÃD;¯ïÆ[íï1lÿì yÜ*^m0Ï®œÝr»¿þ+^µ²qÀ™OäN“¯ùgó |7ðëßÀƒ?üñàó»²u!—®Î¬!.mÙ¥˜˜ç’~Tö/ì4»½¼KȶŸ¯½¹äùSß5û£lïÍùj>ö<¤6=‹ÙG+8¹FY[|ëdÛþÿ˜×yõ=Ö÷XO›¾•yvóìæ}æø¿z¬èë³$)£ßqa=ZýLôò¥¥í1ûB)§ÿî;»F…LšÉmS|¶¯v©¯+íK¼óÒ»m±Zægz6ølðÙ`Ú$ð TŒ­[Ñèæèºg¯“–?k¯r&ÿíÑñCá™w4L7Ö§`úÀ}›¸U×G×ì>ð~¾±Y[äJ›±°éïk|¬®g¤Qù-f6),™þ~±[åWähÚ dLÿÿtõ]=Üåˆþoý¿›þf˳ ßIìX¯U£:ׯ l°õK™a00€déÃàƒ? 6dÏý0ÿXkJÝ;÷?=ý¿ü¹víùÇ„Æúÿ5wõÿR`Q£OÝþE‘µ[þ_Šœ±¶¸PH˲}v›×üE·‹nÝh™@Ò“¼%oé3“ÎmÙZktIço”ê±®~<oÙ;Úíˆ{zgý7·Ý­Ý¸ä2ûÔvvU}3¿ËôóÓ rVìo=pLl÷õUN>æ;{,ö-Hz•ÒWJ_)½ù]ù:‡V¹Ò©Äˆ?ïîÏSÁe]Ÿ‰v%ö¿ïÞ½Èì׋ÕÉöİøÂòõ¸÷ßÀ£EÀ¬>_WNâm?_¹Ìç3£®ý¼èçE?Ó&¤÷øÉã'?Ó y¬Ü¡—eƒÏ‘#g{}Ÿ=ÄéeÆ¿—÷{÷®YÕ]ý¿˜¿Jÿ羚2úÍàÊQ¼ç<›÷J¦5úïè“KëcŽ”¾×¬•ã&ýßúkõr;ÖkØüxô+BËÛFœ¼¤œ0˜@²tëá­‡·šwÄV4¶ï¦YCPZ°iÓj‹ô£ÊáôO¾’ñ™Ò¹ô²éOw¾ÿ¿Á¿ÿ4°õÀžGõ\²Ù¼æ7^ÞxyãeZ&ôÆwßi|'ó»òú„6Ûü‹~Û ´]×QÎôã^¥t«Âcÿ/ºøß¯ý\pb]ã€,(ätÍü8_y5æÕZ&”bNÄœˆ9a~?æ:Ÿ£ZÆDÿºü˜ûÅ}âÿÈàKËï›®UáÿŽ{kxµr“Ü…­-~á£üP©¨ù™6_Ú|ió¥´L éý•î¯t¥ûÌ]YsZÂù,y¶ÿ{Q–¢ÿµ(F›]!ó‹¼0 tÍc`]‘eŸfïgþ;í‚(:ùßYd.g*a·nH–C<3Æ]¾éïÇ0[v«×ðgf¡H÷Wº¿ÒÑ2À¶'_¶H–´ Z-ƒyçëÑeà‡Ù£¬!(uþT}Nó™5çNíüŠÔ,Ÿ(·ÌžÙ­÷}&ȱ¢•€3Ìé»ÿùõ êÔ—– $½êÙªg«ží3³vWyú·H‹?uØ”m~¦Tó\Nµr,ÏxÆÍ¥Ð’¬W[v©Y&Ï¥¥?ïðÑ×!NÊ3-/–*˜ë³#ž$µÏ<ðÜü~òüð-ÏV–<Ûþ³cÑìe ¶ªêÔËï|»÷¹Æ? 5=ììäz6‹dþÚ¢ÙýFgþaø¸4K~A8n¬OÁ(ÖÏÿbÄ€õ6¯yýŠÐ2 ¥=™!Nîl# &, ¯7¼Þðzæ¬ÏÒye…ìÖôz·žülKdɨ±/Võp˜sV»¼.5 ¶Øbz.Å^u{?º¯µÀåJ,ql¡yÍg>˜ù`惴LÀþÌðË”'*§¯5D¤ÕÇÈêðï p :Tšå^?þ¯y¿| kWýµ%UÇýÙ[YÛDÐNµ<í×Ó¼þWÞ^y{åmZ&”þpð‡ƒ?˜ßBªöÞù’cü2\-SiŒék³®Îâm?5>ªóõuˆ¼±k—ÿ¤9Ó>y[ö/0™°µ«Ô®R»Šùý8JˆúΫfb‡ ñ€=¢jTÈùï`ÿrå~dþÚ\Õó­ÎtÜtréøI›ŠóN9¦¿ÖÁ­€w有=´^Ãæ5¯_Z&¤´'3À¶$ù†ÁÀ’¥ö¿·ÿ½ýïæ«ïð…YÃW[œårÞÆ…–˜¿ýØÌ˲¼rý¹G×ß/Yõñ»å)žÿ ùëü3£]#×9Îï­!"Y°L†ÂÏô£*4/ûé,ž8uT*þpúš]›‚åÎ:¹fi©ü¿«x¶Ì\9ã"k €ï n_µüóúŸº|êò©Ëi™@RÚQiG¥•ÌïÇS‹Vï-;39À§¾[í_ö3“¸üÖ4UþŠ+üQų¥þ;ÛîNÛZrYϪÍKå¿kŸÚî/»ÿÚoÒŒž2¹ß@>Ö Øãb‹=6¿G??÷w©;Ž{;ºÈÙ^Z%Ÿ€öÎNÿNþœ*ûfû]G*¹‹_3ÿ}Ó©¡»9¯ýkÖøïKÿý¿@Ó"WÚŒ…;Ökؼæõ+BË€”öd†ØV%¯08•õÜp~5/;ô8ùÀ¦Š?zjþë<þ}\CK¥½Ö©ÿ¸’û Ö³†ˆôÙóN'*^+”c|–ã¦G¸vdõ¨£¯¿hó·Å7óºüS¹à¹ù->ù>œñ“ÿ—¦Ñïÿ{Ë8îÿƽYOüdwÇ÷ÛÒÞkvñÖfÕïVr €÷õš3§TcýU%®«“íɆú“&yæ7-ÙüUûÛέ_jògbàD>Ó…GGs¿L{¬Ù˜ ó¥<¿Uô«¯ø[X*[(û¿cd3•Ì2ÅÞ¡SÌò™.?E³ö—3•°[§ÿßÞõwÎsÿ=꿯¿Ö´œD<Ó ó¥lú°éÃ&`øJÉe°ÑV? Çêeªœ0=/Fˆ?ëü_qiªN*® zM+xÒ#Ö¡Q¶Ñö/ì4»ú1g·?eŸ§É¶"Ÿr;³§E-ßQ¦gäéØ!{~ýߌÉwpB¶[2OæùIߣGl‘3ÙF3@ÒŒ•ß«~ »ß¦ç³Ë¨dÖìÞè{϶ͱcÆÐ:9‡.Ì0ªíéV^ÿþ-wiG{ûfûw}ñ¶ æ-Zî ÖÞ2¿È ýµ¦å0|+)h°>:?üðÃÏ×ýÔî^»{íîæÝhrY8>1𿡈cñ<ÿ~iÆúצeòÃOÒÿ˜ß‰Ö³°Ñh`ýßúäÏ7Ï´â¿å]P×ÐʳMg~ßJ¥ÝÿõÛb@±ÎyVY[l´po¿Þ~½ýh™üð“”? úcЃÌïÇä»pB¶¦ëg]ÅûÿO¡ŸÔkÓ2ùá'éò¿Éÿ&ÿóû1±×î7`F y¿wïšõW}úÄËU~ì9ÆyϰÆÇêzF~i[Â¥Vh®>ú«WŸP àñø¿¶ÑÙñm ®Ñ_[bIíN¹æ&vl´°~Eh™üðÃ?)íÉLÈ!?†üHÍØÞÏž¡{†îð]ÀwßÅ?úÕ?­ 1¼ÞðzÃë™w¦>K畲ÛpÔgɼRBFÓ£*öªÛûÑ}ã_BÉêcÊ®¨£¿6ã¡ìKså²¢¸Ä²Çš×|惙f>HˬaV¿Ly¢rúZgÿmƒÇ…Cœþ·1¥R¹ú.y¬í/œjyÚ¯§yý¯¼½òöÊÛ´L )üáà0¿…T!í½ó%ÇX¹Z²t9ùÕ‚ Òi¯¿Øì_1þ¯ÝqxF¯ôú]j,˜µ_bÀ}ò¶ì_`òçÎ@R«]¥v•ÚUÌïÇQBÔw^5#øüm»ð±xU‡eSe.¯ïKÿw·9kϺúšNŒü¥%û¯è”+÷#ýµ^ZƒkËâÿZ¯ú ²9ü»pù¬nçɘذ^Ãæ5¯_Z&¤´'3zXHÍØ=¸¿vüÚñkãú꿟ô¡¯)`ÉÒâ•‹W.^iÞ±–zùÇŠÍù­m¯sÖ*ûšTŽÿk‹ýÚÅi„ª¿6ך’óýݬ'öóZÜöÐ<óš¯U)ªR-°†?3þ}ì~. eU¿o‘.¬X¹Š»àç“çfÎÊ¿÷*Yp~|^u©N+É/Ú>µ] Ý¿ñ‰þ_¬-7Èëý™ÀC~"?‘ŸÐ2¤téÄ¥—N˜ß óXï¾;9À~>ž]sVÖ_U}œ¯¯Cdü_Ûïaëe]ô×v–6ÌW"±àòb©‚¹ì€k0àù€çž›ßCž¾åÙ*1‚Ï…KÞÌ–]ßK‘eŸfï7$úð+϶ \Û/8PôßÏZ™Ödml_qx™¿®•tŠûUÃ7_[²²þûúkÛw]X»èùÄžþZ¯aóš×¯-RÚ“àä.ù†¾¦€$KZ-ƒ–Á¼“õè2ðÃìQÖÛ…ÚÌXÅsú¨—K[Åýª2-gyïyùW‡%yþýcµ`á&»nXOì“aNßý‡Ìk>¨oPß ¾´L éUÏV=[õlæwå»À®ó*Oÿ¶éÑ6Múúþw>ƒ[öŽv;.hœ®L]£ß;¡kÅÊ­k5+˜Ïq þª–]Љy.YÛäÏúvNê %\¯›×ü•ÆW_iLË’Ò3¿g~ÏüÌïÇîštΟ%9À†_î‰óUò÷óxGÚ¿°Ÿô+¬k‡n*½!Ï´Æ1ßªŽŸ9Ðvì:Ð2¤·¬÷²ÞËz›ß”½îí¸êÞܲ‘g§lËRþÝÁX»¿íJõoy`…G”¥ÆÚŽ|9Ûëû\ò÷Éôê¿Ö3ŽóUUöΔ÷{Ó±ÈúÊĉë5l^óú¡e€m#¶ ¶úš",Ýzxëá­‡æní»iÖ”–Šü£Ì¦…ö׳Ddëez„ùŽ×­Ñ¾žûìß:Ï(¢Oõìá40ç¬v›6­¸ÈtÂg}õ_}BiëYý׳ó¨žK6›×üÆË/o¼LË’ÞøNã;ïd~W^ŸÐf›Ño”¦Èð¹#ø½C‘Ùò÷ æyGŠyëßôî<©Ÿ_¥b#J\wü)Û“çNH•µ]¦Û×ìÚ,wÖJ'©^P8ÈéšùÙ½ójÌ«1´L )Åœˆ9ó™À¹Î稖q_r €Ÿß”åJY ÍË”¥Ã¿«i¾°Ÿd7¢ëÒFÇò-Ù¹oÆ]¯ÊÇê.ŸéÓvS‰ÉßyÎìYµy©üwM£ß.[¥ÏØc_ø(?T*j~¦Í—6_Ú|)-Hz¥û+Ý_é>sWÖœV p>ËFž¥ï5kå¸I/?{ˆÓËŒÿèÿ®¿-øFÐ/ÝíÅü\|Ÿ·ížûG=~ÔYÝZÂ¥ƒ´xu±šeç·Nï4Ûô7[ΘåXøNbOþ¬oõ6?ZýŠÐ2À¶'_¶úš",}üað‡Áæo–ì¹æk=qé¿ãÞægOŸ³]üßBr8¹„–¼V*û„çë×[Ñê¿å–-;v¬PH˲}v›óE·‹nÝh™@Ò“¼%oÉÛü®Ü²µÖè’ÎÖ”êÇcîÆ­X‹œe²ú÷h:Âç˜uŽý‰í¾¾ÊiÃñyÇbÅ£eI¯RúJé+¥7¿+_çÐ*W:•¼`Ó\˼™uMü?Iv¼Rÿï¼ï‚"îUžØçxüùÊe>oÍaÑÏ‹~^ô3mHzŸ<~òø3Ÿ¸¼ Ö?îÐ˲‘g¡®¥g;og!qï«Zå¾½òŽWAcíþ¶+U³ûÀûùÆ&vèû_«¬Ü¡—ùáèW„– ¶8y±íÐ×0€ḑ OAŸ‚æÝqÙ× z©£­-ÖÇøfWŠ öìš©aΦŽõí·eñ̺5ÛÅ Ý÷:(W§Öv×®=ÿ˜Ð¸œÝ² Ç2X[ô«o3ŸÈ&ßg&¶z7ðÝÀwi“@Ò{ðǃ?üa~W¶.äÒÕ¹‚õ„¦úQÍøÉˇ*Ûó§spË“!ë™69¹fi©|ù˜¼Õs9éÿ÷ETçÑ•j[gô«oolûÀÿó:ï±¾Çúëi“À·2ÏnžÝ¼Ïü¡þW}}–$ÇØ´œ?G =åv«fW¿]ŽåòÎ=>ó„Ìá™Dû<…'ä+™%¤]Ž:÷œ ÅCÆ{»™¾*±ÏqbHï¶Åj™ŸéÙà³Ágƒi“À7P1¶blE£—£ëž¼NZ*ò̶ͱcÆÐ¤ €õm—¦+ºŒ(y¥~]‡Æ¹ªç[éxF%³f÷Fÿ·—ÖàšÃ²nÎkÿãš5)£_½V ¿X1¶blE&Ø6`ë—rB_SÀ’±?_ýùêÏWæ]s‰¦Ã³‡v²¶èÔôãþk;òWÿ½:/VÌb^Ûån–»Yî&­øfÚǶmoôQõÈn­«üdmªQ¸ûß1‰5F¿úvÙ‰ªM=>™×ö A‚h’À·rîí¹·ç>3uèîNc ùVA[6Ž»œ¤ }ÿÝ Çþ¬êÍ#Ë ûŸùjà£wÞ=¢MßJŸ^}zõùÌhÔ~ûB=ú&e8šÛ¸㤙ðÙt«×ªymëWÖ)°uJ™¡¯)`ÉØUÿ«þWýÍ»i§—å>Õžg1jòݺUéSý+æµ½ªÎª:«êÐokä°‘ÃF3¿C^m²Ô§Š5‡©Éq[lcÎæYë˜×ö³öÏÚ?kOk¾•èÐèÐhñh×q«òû·mi{3ûÎ.þãÌë¹~xýðúá´FàÛŠ(Q&¢ŒùZcü€¶ù¼“{lm[½VÍk[¿ ´FH €­¡¯)`ÉØ§[Ÿn}ºeÔq—]:¿½RàÖ"ۥǎd¹·V¡Ùæõ|?ô~èýPZ#ðm9uæÔ™Sæwh»\;ß#²µÔöÆõ¶Åýƒ>3ˆr#Ê Ö ×Ù^g{ýÌbn,÷õ!¸µØvÒ€>?a^ÏûÊï+¿¯<íø¶Þ.»üír£¿”ƒOœ¹æµŠà6á[½&êY¿ ´FH €¿-B_#À’½Y[fm™µÅ¼wià?63ñm·ގ“‹lŽ4¯aŸ>}X÷° ŸŠ|*ò©ˆÑ‡ÚÇ};WÌB|›ðíˆå¥¯>m^û:ï꼫3í°‘"'DN0¿Oܬ4Ãé)Ám·ïÿóÁ.?¬lãÒ‘ø6á[½&ÍkX¯yZ ¤ÀIÐ7>€${÷GÜq„Q·î7h‰Ëá%„¸ ÙæÉ\qjWóºÝß}÷ýÝi€õ˜2?d~ˆùÝ:Å¡\—lÄ· Ù>Ô¹X¥ì†#<½mô¶-°Ÿ¶~Úúi«}Yû²öeÍïÖÛwfñïEˆ›íæ#S*x>6¯Ûþúè?€X³.g]κ˜ß­Î-ÝÊe‰tþ`)OBܯÜ?XÊS¯IóÖkž)pÒ ôýRÀlDëÛ­o·¾mÞÅ»-èÛxŠ7!î×mK»M·#¿ÑÛgt‘è"ÑEh{€õxæþÌý™»Ñ=ûlk§Ý#‰r¿n;ål¹ñ.>ó‡DèøÐñLƒXõÅÖ[_Ìüží¬5lšÏ“÷ë¶Ñ¹½­RÌè]æê­«·®Þ¢íV$2626Ò5­kZ×´æ÷l÷Oê¸î"Êýº­^{浪׶^ó4@H9€¡oB°S]Lu1•Q§ï´0mølÝ/Ý:¶óISµ¨y}®¸bà &¬Ô(ŸQ>£|ÌïÜ‘e~)ü˜(÷K·÷Ow(T¡’ÑûË£3öwë ×AzmÓè ¥!N8BßÄ@ À¦ÜÎp;Ãí Fo ^o'ü±¾ ánÜ[ß4 櫆øvMØ5a×Z`ýæÞ˜{cî ó»¸èÚo³fü¸¶{±*¿îƽêÖŸííeÔ¾xöâÙ‹g´4Àš}ôùèóÑ'K‡,²t0¿‹—öÆc3áîÿØ>=&V­Ø,{µ•yÍë°ïо+ú® ¥ÖïdÈÉ“!FŸjmÒÜKT&Ü{«×’Qê5LK€”‰8ávoÞ½y÷fB_Ë"`ƒfTžQy†áf¾õC'k/z?»]zìhži•Ó7ú̾ò™Ëg.Ÿ9vhìÐØ¡´1Àú}èñ¡Ç‡F=á¤-~-‹M&âýºiŸ·VÛZmk5Ú\½{ôîÑ»Fwô…‡›Jûõ'è5Ú®½8aa‰¹Fµ÷ôÝÓwOßÑÆ€ä"ðjàÕÀ«æ÷r®^u³¹Ž.v¥×1‚ÞÏLû\þìJ¯cz-™×ž^«´.HÉ€.¦aL؆„¾–E ÀE×®]ßq‡ãÇæo¹sûOªS£œë²Àc¿úšn]rw=&·Ñí­4·ÒÜ⃠̜Ìz2ëɬF÷uرú¼³÷šn£«w[[ÅËKrÊž}ŽyÕš\kr­É±[c·Æn¥uÉË€’J(i8¦ âYÉ›¸×tUz­ê[ØpV˜»>ìú@»’—çÊså¹bt_WÕÇ;oYâ^ó­^3Fõ¦×*­ R2`K1Lè›pÀlÖ¥_/ýzéW£?Ò h¹¾oUBßWüÍ5¬Ã‚AFuµ>|}øúpZ|M.6¹ØäbF÷øÙ…-–ún'úmàZ5o€Cñ2ùÝŒêêáþ‡ûî§EÉÑÛ¾oû¾ík_̾˜ýgúÊ׽Oçšmwèi•"D¿wÝöüY¾ŸQOØ5ºkt×hZ|EtŽèÑÙèo¾lšP¸<¡ï¿+þ.›&.oTWzMÒ¢À°NÀlÜÆ¿7þ½ño£?ØŠÞî¼|DÞ”ý–Ì;Z[¾Ý¨~z^èy¡çZÜÅ\‰¹s¥êÏU®ú³Ñý~eKëååRêªÀ1Ý«V±¾ôõÂQFõs𗃿ü…¶$w_]|uñ•ÑÞ:U­aÎ¥cêÙZe}ÊŒ~¥ s© ÕOÎ9wäÜñ&úMô` Ù›î8Ýqº£ÑýÞöñüýE[¦äèW¯£úÑkVÐÃ:HÆÌ3wŒáêeEkwÔ†îIiѯgé‘70ª“Ò.¥]J»|¨õ¡Ö‡Z´À6<Ïó<ÏóäøÃÿÿ=F=@ƒ£7PÇ :¯”*a³Ñï óJ©ú™Õƒ^KzÑr¦€a€¤ 1ö1ö1ömg·Ýv¶áÔv=–ø¤÷Ù7o¢0Ô–B_¿£K½Ž¼.°²qæn‡ŒÎ=㑌G2yõ0êa­°mW®\ ˆûqÿüj•ЏÛÛ^ô{³zÛæþÓówͶ"óZ£sõèFý{;övìmZ `ÛB£B£B£âîÏä_7Ì·íE¿[VNyTÒ)îs?–÷XÞcyi'€m{ÓþMû7í}FùŒòe8GT…¦¥¬vj@Éã¶ýêg¤ŸÑ¹ë5£×­`ŽÖ‰@Š35fjÌÔÞ}{÷íÝ7î^Å{ñ Ù•Ü£_ïÚ“l™šùfîŠù £ŽÂ¡…C ‡>Éñ$Ç¾Ë ¤ 7šßh~£yÜ=aõýŠ:\¹·±}Ëò‡’{ô»~O5ž©ã>ß)~Sü¦øÅÆÄÆÄÆÐB€”cõ²ÕËV/‹»˜»5h‘[…O=ŽN¯ò0ù†¾Ï‹ÈîuÞÞ°z>÷¸Ï7Ò=Ò=Ò¶¤oû½í÷¶_Ÿ:>u|âîgo¶sóMîѯ~qŸ©^zÍÐBF€a€¤TZ¬«Í˜0ãŒsJçëXýZ™’3¥=õ’KèëûpÑÀƒ…~j> WϸϮ™]3»fvo^¾yùæ%H™G<ŽxáõÂë…׋¸{ŒÐ•Ý×|ÚÚýQ•É%ô½x´Õ4¿«å²:—Ì9(î³[ç±ÎcíHÉ$ÉArˆ»¯ÈÓÏáF&íø£•‹|Þ$¯èwóà)©;½ôÚ UâF ëD ±Rf)³”Ù.òª?¤SÞ2‘³·ì;iu¡oãÐá?ÛÚ­`p»øœËìK³/;û[ìo±¿ÑDŒ=p¨óPç¡ÎñéC¶ÄÖZRÒóÃŒnªüjm¡ïõAm6øìRÁýH¾úñ9—S³OÍ>5›6@w­Éµ&ך8;;ÇÝ{ÔU*8:ùœ›±¡½ï}k‹{cöMSE÷þ¹×{¼cÑœõ3ý÷¹´Y×f]›u¯¿Züj1m€ný¹õçÖŸ‹Ï§©ZÑAkó§úáèvÏÖúêG¥a|ÎE?k®> þ€a€à_÷÷ÜßsO­µZÔjŸ? s·,_¡n©’¯ÇµZýó· }ËŒ™µsïäï›äÈco'ûŸì²?W€)•”JJÿ^efòe]k¾xÖyJ¥Fß*ôhÐhz™ïkõ/èê8,>ÇÜ-W·\Ýr½´{i÷ÒŽ+ÀÜû›ïo¾¿<5xjðÔøô*¥Ê¸>̾eßµ9KõþV¡oôÈÃUªT\ò(x‰ÇÌø÷áGmµqTì‹Ø±/¸îÌ]¹på• ®U]«ºVO¯R.¨ƒ}î‰}#öÞð¨ý­B_}ïú‘Äç˜õ³ÓÏ”+øRÀ°NÀðßÂbÃbÃv\ÛqmÇ5»/”oEˆv«<ÝG\|ÁïÆÒGY6îõº:Áw\¸mëMý¯Úÿ•eB6‡øÛT—©.S]Þ¾|ÈE/³¿Ìþ2ûàšƒk®ÿÞ¦X†œNY‹Î?P©±{±‹a­&ù]²lÐûnl×%•çŠòžÖ}^ñŸòiWm~ ü@ø®/€ø‹5ø4âÓˆ]A»‚v%¤Gòÿ¹ä霛‚êtXRhÑ¢+£ÒxäÜyyfj¯Ú²¸ Žw´6zá Ò¡bÑ?«{wݲkÊû’yçΚâæÛãx³óùºœ/8'댯ۯß[¿·~oO§>útj®&€„xúúé맯ƒóç Γþ°DÇZïs®1e@÷|eš·ŸV³p±éKß%ÕÊÆ.íõ­þ_ôÿ«ÿ¦þª„ìW?rý,¸š€„#†u"€xyÕíU·WÝ–T^RyIe;+6rÇÈ#wÜwüÝñ\5‰áÊô+Ó¯Lﹺçêž«­³'Ìq6ÇÙg7ÞtxÓá÷ ß7|ß«À²>ÞþxûãíNœ8¹¸¸XgØ"°E`‹À(ÿ(ÿ(ÿرc?ríXÖ“|Oò=É7}öôÙÓg[ó_ÊúêGËUX0¬0|¥“mN¶9Ù¦÷ÈÞ#{üVÄÖ»[ïn½»üøð{ñ>â}×@Rz9üåð—÷\ÛrmË5ÿÑþ£ýG«þpøöáÛ‡o¿ûBî ¹¹.’Þõ4×Ó\Oó‡Ë.¸|«žÐ­£[G·Ž+V¬X±bÅcÇ=¸.’Ò§.Ÿº|êÖnz»éí¦«þPß»~$úQqu‰‡Ö‰,aKì–Ø-—î]ºwéÞ²Ëv.ÛÙì÷f¿7ûÝR¾VjZ©i¥¦3ÒÏH?#ýI§“N'Þ ~7øÝ`*€µy¹öåÚ—k§:œêpªñëǯ¿¾tdéÈÒ‘è Ø°+ÐÁ½ƒ{÷uoÖ½Y÷æÆÌ3o̤ÎX§»ò]ù®¼íü¶óÛÎNœ8=Ç›or¼±@ЛÆ-[šá·‡ß~[,–?ÝðtÃÓ Ô9kóñÕÇW_•ÏÊgåùçgœŸ±Î¬:³ê̲Ô_ÊzizÉú^ô=RóÀð ¼öfØ›aK,y°dD½ˆzõ®y^ó¼æIÍHi¢œ¢œ¢œÂ/‡_¿|pÕÁUWńƄƄR3RšCÙe;”-< < <àh÷£Ýv§N¤4=<ôðP„úÿôÿBÍ|)`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0؈$ €ÃÓ„§ Oc)†ž“@²G 6"ÅÀúOž:Z­ÖKë¥õÒzj=µžZ ¨jZ€ uÓºiÝ´®ZW­«ÖYë¬uÖ:i´NZ­ƒÖAk¯µ×Úkmµ¶Z[­ÖFk£µÒZi­´–ZK­¥ÖBk¡µÐšiÍ´fZS­©ÖTk¬5Ök´FZ#­Ö@k Õ×êkõµºZ]­®VG«£ÕÑjiµ´ZZM­¦VS«®UתkÕ´jZ5­ŠVE«¢UÖ*k•µŠZE­¢VA« UÐÊkåµòZ9­œVNóÓü4?­¬VV+«ùh>šVZ+­•Ö¼5oÍ[óÒ¼4/­¤VR+©•ÐJh%´âZq­¸æ®¹k榹i.š‹æ¢ÓŠiÅ´"Z­ˆVX+¬Ö i…´BZ­€V@˯å×òkyµ¼Z^ÍYsÖœµÜZn-·æ¤9iNšƒæ 9h¹´\Z.-‡–CË¡eײkÙµ¬ZV-«–EË¢eÑ2i™´LZF-£–Q³Óì4;-ƒ–AË ýGûöíWíWíWííí-–NK§¥ÕÒjiµµµµ´´´4Z-ööö–JK¥¥RcÕX5VQcÔõ£úQý¨~P?¨Ô÷ê{õ½úV}«¾UߨoÔ7ê+õ•úJ}©¾T_ªÏÕçêsõ™úL}¦>UŸªOÕÇêcõ±úH}¤>R¨Ôê}õ¾z_½§ÞSï©wÕ»ê]õ¶z[½­ÞRo©·Ôê õ†z]½®^W¯ªWÕ«êõŠzE½¤^R/©Õ‹êEõ‚zA½ žWÏ«çÕ³êYõ¬zF=£žQ£Ô(5JT#ÕHõ”zJ=¥žPO¨'Ôãêqõ¸zL=¦SªGÕ£êaõ°zX=¤R©j„¡†«áj¸ªSTEUTI•TIUQÕ05L S¨Ôê>uŸºOÝ«îU÷ª»ÕÝênu—ºKÝ¥îPw¨;Ôíêvu»ºMݦnS·¨[Ô-êfu³ºYݨnT7ªÔ êuºN]§®UתkÕÕêjuµºJ]¥®RW¨+Ôêru¹º\]ª.U—ªKÔ%êu‘ºH]¤.Tª Õêu:_¯ÎWCÔ5D§ÎSç©sÔ9êu¶:[­ÎRg©³Ôê u†:]®NW§ªSÕ©êuŠ:EýCýCýC¤NR'©Ô êu¼:^¯ŽSÇ©ãÔ±êXu¬:Z­ŽVƒÕ`5X©ŽTGª#Ôêu˜:L¦U‡ªCÕ 5H R«ƒÕÁê@u :P P¨ýÕþjµŸÚOí§öQû¨}ÔÞjoµ·ÚKí¥öR{¨=Ôj ¨ªÝÕîjwµ›ÚMí¦vQ»¨]ÔÎjgµ³ÚQí¨vT;¨Ôj;µÚNm«¶UÛª­ÕÖjkµ•ÚJm¥¶P[¨-Ôæjsµ¹ÚTmª6U›¨MÔ&j#µ‘ÚHm¨6TªõÕúj}µžZO­§ÖQë¨uÔÚjmµ¶ZS­©ÖTk¨5Ôj5µšZM­ªVU«ªUÔ*jµ’ZI­¤VT+ªÕòjyµ¼ê¯ú«þªŸê§ú©¾ª¯ê«ú¨>ªZF-£–Q½UoÕ[-¥–RK©%Õ’jIÕSõT=Õâjqµ¸ê¡z¨ª›ê¦º©®ª«êªS‹©ÅÔ¢jQµ¨ZX-¬V ©…ÔBjµ€Z@ͯæWó«yÕ¼j^ÕYuVÕÜjn5·ê¤:©Nªƒê :¨¹Ô\j.5‡šCÍ¡fW³«ÙÕlj65›šEÍ¢fQ3«™ÕÌjF5£šQµWíU{5ƒšAÍ ¦WÓ«éÕ_Õ_Õ_Õ_Ô_Ô_Ôtj:5šVM«¦UTTTPPPÓ¨iÔ4êwêwêwj*5•šJ‰Ub•X%F‰Qb”ÊGå£òAù |PÞ+ï•÷Ê[å­òVy£¼QÞ(¯”WÊ+å¥òRy©Šâ£”QÊ(eoÅ[ñVJ)¥”RJI¥¤RRñT<O¥¸R\)®x(Š‡â¦¸)nŠ«âª¸*Å”bJ1¥¨RT)ªV +…•BJ!¥R@) Pò+ù•üJ^%¯’WqVœg%·’[É­8)NŠ“â 8(J.%—’KÉ¡äPr(Ù•ìJv%«’UɪdQ²(Y”LJ&%“’QɨdTì;ÅNÉ dP2(ÿQþ£üGùUùUùUùYùYùYI§¤SÒ)?)?)?)?*?*?*ß+ß+ß+i”4J%µ’ZI­¤RR)©äOò'ù“#ÇÈ1r´-GËäòùüN~'¿•ßÊoå×òkùµüJ~%¿’_È/äòsù¹ü\~*?•ŸÊOä'òù‘üH~$?”Êåûò}ù¾üüü|W¾+ß•ïÈwä;ò-ù–|K¾)ß”oÊ×åëòuùš|M¾&_‘¯ÈWäËòeù²|Q¾(_”ÿ–ÿ–ÿ–ÏËçåóò9ùœ|N>#Ÿ‘ÏÈQr”%GÊ‘r¤|J>%Ÿ’OÈ'äòqù¸|\>&“ÉGå£òQù°|X>,’ɇä9BŽÃåp9\VeUVõ@–dI–dQeQ“Ãä0ù€|@> ï“÷Éûä½ò^y¯¼[Þ-ï–wÉ»ä]òy‡¼CÞ.o—·Ë[å­òVy‹¼EÞ"o’7É›äòFy£¼^^/¯—×Éëäuòy¼F^-¯–WË+å•òJy…¼B^!/“—ÉËä¥òRy©¼X^,/–É‹äEr¨*‡Ê äòùOùOùO9D‘Cä¹ò\y®J¥Òéƒô^z/½—ÞJo¥·ÒkéµôZz%½’^I/¤Ò é¹ô\z.=•žJO¥'Òé‰ôHz$=’J¥‡Ò}é¾t_úGúGúGº+Ý•îJw¤;Òé–tKº%Ý”nJ7¥ëÒuéºtMº&]“®HW¤+Òeé²tYº(]”.JKKKç¥óÒyéœtN:'‘ÎHg¤()JŠ’"¥H)R:%’NI'¤Ò é¸t\:.“ŽIǤ£ÒQé¨tX:,–I‡¤CR„!EHáR¸®ü×ßö%(‰’(…IaR˜t@: öIû¤}Ò^i¯´WÚ-í–vK;¥ÒNi‡´CÚ!m“¶IÛ¤­ÒVi«´YÚ,m–6I›¤MÒiƒ´AZ/­—ÖKk¥µÒZi´FZ#­’VI«¤•ÒJi¥´\Z.-—–IˤeÒi‰´DZ,-–K ¥…ÒB)T •B¥ùÒ|i¾ô§ô§ô§4Oš'Í“æJs¥¹Òli¶4[š%Í’fI3¤Ò iº4]š.M•¦JS¥)ÒiŠô‡ô‡ô‡4Iš$M’&H¤ Òxi¼4^'“ÆIc¥±ÒXi´4Z-’FI£¤‘ÒHi¤4\. —†IäaÒiˆ4D ’‚¤ i4H$ ”J¥ß¤ß¤ß¤þR©¿ÔWê+õ•úH}¤>R/©—ÔKê)õ”zJR (HR€ÔMê&u“ºJ]¥®Rg©³ÔYê$u’:I¤R©½Ô^j/µ•ÚJm¥6R©ÔJj%µ’ZJ-¥–Rs©¹Ô\j&5“šIM¤&R©±ÔXj,5”J ¥úR}©¾TOª'Õ“êHu¤:Rm©¶T[ª)Õ”jJ5¤R ©šTMª&U•ªJU¥ÊRe©²TIª$U’*H¤ Ry©¼T^*'•“ÊI~’Ÿä'••ÊJe%ÉGò‘JK¥¥Ò’·ä-yK^’—ä%•”JJ%¥R ©„T\*.—Ü%wÉ]r“Ü$7ÉEr‘\¤bR1©˜TD*"‘ I…¤BRA© TPÊ/å—òKù¤|R>ÉYr–œ¥ŸˆOÄ'â#ñ‘øH|(>Š÷Åûâ}ññññ®xW¼+ÞïˆwÄ[â-ñ–xS¼)Þ¯‹×ÅëâUñªxU¼"^¯ˆ—ÄKâ%ñ¢xQ¼(^/ˆÄóâyñ¼xV<+žψgÄ3âiñ´xZŒ#ÅHñ¤xR<)žOˆ'ĿĿĿÄcâ1ñ˜xD<"‹‡ÅÃâAñ xPŒ#ÄýáŸþç¾þ&/êQñ€x@< î÷‹ûŽâ^q¯¸GÜ#îw‰»Ä]âNq§¸SÜ.n·‹ÛÄmâ6q‹¸EÜ"n7‹›ÅâFq£¸AÜ n׉ëÄuâZq­¸V\-®W‹«ÄUâ*q…¸B\!.—‰ËÄ¥âRq©¸X\,.‰‹ÄEb¨*†Š ÄâñOñOñO1D CĹâ\q®8Gœ#Îg‰³ÄYâLq¦8Sœ.N§‹ÓÄiâ4qŠ8Eœ"N'‹“ÅIâ$q’8Qœ(NÇ‹ãÅñâ8qœ8N+ŽÇŠ£ÅÑâh1X ƒÅ‘âHq¤8B!އ‰ÃÄaâPq¨8T ƒÄ q°8X,ŠÅâq€Ø_ì/öû‰ýÄ~b±ØGì-ö{‹=ÅžbO±‡ØCì!ˆb€ØMì&v»Š]Å®bg±³ØYì$v;‰Äb±½Ø^l/¶ÛŠmÅ6b±ØJl%¶[Š-Å–bs±¹Ø\l&6›‰MÄ&b±±ØXl,6Š Åb±XO¬'ÖëˆuÄ:bm±¶X[¬)ÖkŠ5Äb ±šXM¬&V«ŠUÅÊbe±²XI¬$V+ˆÄ by±¼X^,'–ˉ~¢Ÿè'–ËŠeEÑGôK‹¥ÅÒ¢·è-z‹^¢—è%zŠž¢§XB,!–=DÑCtÝEwÑUt]EÑEt‹ŠEÅ¢b±ˆXD,$ ‰Å‚bA1¿˜_Ì/æó‰ùDgÑYtóˆyÄ<¢“è$:‰Ž¢£è(æs‰¹Äb1‡˜]Ì.f³ŠYŬb1‹˜EÌ$f3‰ÅŒbFÑN´íÄ b1ƒøñ?âÄ_Å_Å_ÅŸÅŸÅŸÅtb:1ø“ø“ø“ø£ø£ø£ø½ø½ø½øøø˜ZL-¦b…X!Vø$|> …ÂG!Zˆ¢…÷Â{á½ðNx'¼Þo„7ÂkáµðZx)¼^ /„ á™ðLx&<ž O…ÇÂcá±ðPx(<„Â?Â?Â?Â=ážpO¸#Üî·…ÛÂmá¦pS¸)Ün7„kÂ5ášpU¸*\. —…ËÂ%á’pIø[ø[ø[¸ \.ç„sÂ9áŒpF8#D QB”)D ‘Â)á”pJ8!œNÇ…ãÂqá˜pL8&Ž G…ÃÂaá°pH8$"„!BÂ…pATAdAdA$AtaB˜&ìö û…}Â>aŸ°GØ#ìv »…ÝÂNa§°SØ!ìvÛ„mÂ6a«°UØ*l6 ›…MÂ&a“°AØ lÖ ë„uÂZa­°VX-¬V «„UÂ*a…°BX!,– Ë…¥ÂRa©°DX", ‹„EÂBa¡°PX ,ó…ùÂ|!DB„¹Â\a®0G˜#Ìf ³„YÂLa¦0S˜.L¦ Ó„iÂ4aŠ0E˜"L& “…IÂ$a’0Q˜(LÆ ã…ñÂïÂïÂïÂXa¬0V-ŒF ÁB°,ŒF #…Âa„0L& † C…¡B$ ƒ…ÁÂ`a 0P( „þB¡¿ÐOè'ôú}„>B/¡—ÐKè)ôz B (B€ÐMè&tº ]…®Bg¡³ÐYè$t: „B¡½Ð^h/´Ú m…6B¡ÐJh%´Z-„Bs¡¹Ð\h*4š M„&B¡‘ÐHh$4 …úB}¡¾PO¨'Ôêu„:Bm¡¶P[¨)Ôj Õ…êBu¡šPM¨&TªU„ÊBe¡²PQ¨(T*„ ‚¿à/ø å„rB9ÁWð|…²BY¡¬PF(#”J ¥…ÒB)¡”PJ()”J ž‚§à)Š ÅÁCðÜ7ÁMp\W¡˜PL(&Š E…ÂBa¡°PH($ „B>!ŸOÈ+äò y„„}ûö.ì]Ø»°·aoÃÞ†½{ö:ìUØ«°Wa/Â^„½{ö<ìyØÓ°§aOÇ={ö(ìQØ£°a„ݻv?ì^ؽ°{awÃî†Ý »v;ìvØ­°[a·Ân„Ý»v=ìzØõ°«aWî†]»v9ìRØ¥°Ka‡ýöwØ…° aÂÎ… ;v6ìlØÙ°¨°¨°¨°Óa§ÃN‡ ;v*ìdØÉ°“aÇÃŽ‡;v,ìXØÑ°£aGÇ;v(ìPØ¡°ˆ°ˆ°ˆ°ð°ð°pý±½þ¸NÿØNœ¤' ‰ÁòP`°``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``(^¯z½êõªi!ÓB¦µ®ÖºZëj¥V–ZYje¶l!ÙBŠ *TéT¥S•NÅ]Ž]œ¨gKùVõ|o⽉÷&潑÷FÞú¾òdÈ“!O†ç7Ÿß|~“ë`ýôOnú§8ýþéNÿ¤Gý€¤GL ,ìÂÐ C/ õHï‘Þ#½]<Ä]pÒHúzþäøÉñ“c­fµšÕjfº¯éY§gž•ë ÀÚÜ ¹r7Dÿ“i¯5©ß¤~“ú%÷³ë6³ÛÌn3í’Pn§ÜN¹hW€¤M›þHÏ#=ô¸yàæ›«l¯²½Êöb-е(Ö"ëꬫ³®Ö¿|YñZÅk¯õ{Øïa¿‡Ú!ívHÿ‚*> €“FRÖóùIç'Ÿ”9À<¶qrurur¥m)Y2uÊÔ)cÞóè±kÐè ÑA£´zÐêA+£>Ê< Õ™–üuÇf>³…O7Ÿn>Ýôqx¶Qÿ;ï8¼ã°yíéS¶&|2X w7änÈÝœ9sõ„½¼{y÷òŽÏ=«ÿNÀo¿üfTš¾æú½‰÷&Þ›øuǬv¨åPË¡–ùWyøÚHlÀÀÀb˜®™kgÄhˆþ°’¤LÊåŽrǨçÙPCý õãÓ?˜þ¦9ívH;ô¥Çf:k…©}½öõÚ×Ë–z­Yg]œuÑüL‹?-þ´øSZ)` :K¥Î’Q/×tyÓåM—q¡écÓǦot²ÑÉF'J6núëŽÜ(f^ä¹Ès‘'W$```1À\;súèÞ O(<Á(˜¡…)SŸì}²÷ÉnÞ3´nÝ>úKKk—£]Žv9ÌKûíøoÇ;þ¥ýLí굫׮nZNõqÕÇUg{W¡ßÃ~û=4¯·'|/=šôhÒ£‰Ñ^B„6mðu½þI¯Ð¼Bó Íc=`”€ €€ÅX¬?¾7ÿ1úýç7Ÿß|~söÑÙGg­—«^®z¹J\/q½Äõl!ÙB²…äÉ'Cž z´ cÓcƒÄ>‹g©ž¥z–jõÂÕ W/l]­uµÖÕÊ6/Û¼ló¼7òÞÈ{C?6wGwGwǪ+ª®¨ºb„ׯ^Ç=Ž{÷HúkW>¦|Lùó2Ge•mT6¢ %Óט4ï»=v{ìö¥¥=¬ý°öÃÚæ¥åvÊí”Û)!½Vó±ÍÇ6k«WÁ#½Gzôæõ6ãÝŒw3ÞÑKßV5Öhô ÍR_L9¸àà‚ƒ ŒöR«Y­fµš%d/Ãk<¬±yÉ••ÊJe…~$``ðÅì,*!û²Ô‘›ÿ¦ú…qKŒ‡Yoæ½™÷fÞ裌~eW–]Yv}]mûùøùøù˜[bÀ'œO8Ÿp6*óìÚ³kÏ®ùúdÑö©íSÛ§6/Mº-5ž88mpÚà´FG¾°âŠ +Ò áhÕF}¬>é—–v{÷íÝ·w›—–30g`ÎxM^ºýüöóÛÏ›Oznþ¹ùçæÛ^DñÑ÷£ïGßLQ™¢2E™×ÛÖ¶þ°õ‚à[yâôÄ鉓ÑäÏú×õu|-°³ô±écÓë_—1šZ?ž¯+>òväíÈÛFïA§^žzyê%WX00øb¶ëAËq€8@Løyéæþè\\˺–u-k©:Ïx+ã­Œ·L-1àþ—û_îÙ¼4}õו9xÆàƒggÈ´i!ÓRÛ'3žÌx2£iý˜Ò'JµØÃV Å·jÏHÏHÏHó£ÚvwÛÝmw¿´4óøV§ï%îׯ¸Ä¸Ä¸˜N­ë>¦û˜îclµí]³»fwͰç?õÝ©ïN}G |+ú—„ŒîÐÆrc¹±lÙ=6:Ùèd£“F{ ß¾7|oBÊ÷ˆõˆõøÌgNÓÏÞ\w`)ÀÀà‹Ùjü>ø}ð{˞ݗ®=iJ-áüÜù¹ós»D³ôÇ¥?.ýѲõ¬GéW\Up•yiz òu%ë#¡Ž3ÇCr ùº’£kE׊®åÓͧ›O7£)dיּ³æÎP~¨ƒQ£«{¬î±ºÔ­Z§Ožo~låÿSþ?åÿÿ£ÒãÛJ§*ªtʼ´žU{VíY5îôIõM_¥ÏµpóÌÍ37ÏØê]o´Ú±N_n€;øVLWÞ571xbðÄ`ËöN¦O˜>aºÑç_œqþ„ì±ëÒ®K».5/¹ð„ Oà vÀ²€ €Àk—ãó?q‡ˆF¯Š{_Iš|hò¡Éæ“ìù;ø;ø;lɼ%ó–Ìÿ ùgÈ?CôUõ1z¨ŸuÍÔ5S×Lÿq>Íð4ÃÓ Fª)=Ö×ÓÕWùÕ'è{½êõª×«. ½0ôÂÐ9æ˜s@wk4­ŸeëY¯Ï¸'›MÈÄ#=ô<ÒÓ¨ü:eꔩSæKËû¡çÆ +l¬@ô›ëÛ­o·¾yÝê!%õ“2[µrG¹£Ü1:B}l´>M±Q ú×Mô•ÎÊ19ÍKøÐòCË-Ý\Ü\Ü\L_4:htÐhÛnu‹<y.ò4¯1'W'W'WÓߌX±.bÝ %ƒ– Z¢¯‘œ_˯å×ô˜Ü9•s*çT¥V–ZYjeÓåM—7]þç¨?Gý9êjž«y®æáÑL*ºu}ÖõY×Dz}¸þy5î>9!{\ÐaA‡ŒÊ?Úæh›£m¸îÀR€ €€Å$Æ4ÂI›?úï6³ÛÌn3õ` î}­8²âÈŠ#qg‹-´ÿcî,u–:Kq—©?dXûa퇵ãSò» wAï‚c”¶¹áU†W^%îiEÞÞâŽ|–dY’eI–ø”sfÏ™=gödÏž9ܼœö?·ÿ¹ýÏÜÝ g›~ÑáA«­´Jɵ”2[uí굫׮ntÖ¯U¼VñßyŠï†Ü ¹r?ð~àýÀÝ¡»Cw‡V›SmNµ9F¯­Ùµfך]ãÞ»y áPË¡–C­G~üùÙö×>ŒúêrÅÊ+WLþ^þ^þÞhù—Ò¿DOÄŸéWÌ™Nm©=ªçÔsê9£=êK$dúWÊ׿Îȗ퀥‹I¾°)}Q}Tbü÷R·hÝ¢u‹•Y´{ÑîE»Ç§}‚ÜøD¿ú¨¸¯«‡/]çøKË7¾ÕT¶l!ÙB,5â3îH[pâ>~½Ž¶Ð¼Bó ÍÓGTó82áŒ`óIw-ûEä%e¶ê¸W¢MÈ*ìWܯ¸_q7:S}òmó¹cbUëÔªi«¦­šš×^ÖÕYWg]mÙ+’)*ST¦(úR þ|køÖð­atO%Æ{Ó>Óœ>/NBÊ׿XiÔØNãÏÕ GL ,Æ6`}º/-×ú]ëw­7*S‡Ÿrºlí²µËV£rôðæEÔ‹¨ zŒ®¯—iº>±¥êùÕ®W»^íÊx+ã­Œ·ÌË©º¢êŠª+,ÛêN8Ÿp>áltä ¯6¼ÚðªÑYL+0­À´F¯=Pï@½õxi)úhÂì³OÌ>ñ뤸§¶%)³UÇ= ö—F¿\ppAÜgj^WùNç;ïôËð—á/ÃS½o©Ñ½_JŸH–^ˆ›G¬G¬‡ágW}–ËîQŸ‡Ãhž‘ž‘ž‘ ß‹Ñzíú§eý«9\}pÀÀÀb’{¬™ûºã¼\îr¹Ëår´ú˜<ÓæV/\½põBKÅ{¦ì™²gŠe`)“”IÊdTÎÐNC; 픱ʘKc.¹d´ßUVmXµÁô÷ÿîñw¿{Aéû¡ï‡¾¸£ƒ¾¾µ^Ï®e]˺–h¤¤×ÿ­ß/¶]W)³U'd4p­fµšÕj¦Š‹»ŸyöüÙógÏõ¨Ø´}åÚ”óµœ9sÆg䮾0ÁÞ{GìqóÌÍ37Ïè£Õõš<7ÿÜüsóõÚÓÇÆçz-ýqéK¤WŒØY`gFwþUËîñùÍç7Ÿß4Úc‘ "AE‚¾Óµ„ÍéÓPsõ@‹IîðäF“Mnôu%›NýuG»ãðŽÃ;½Ö9•s*çTúÔy–º^Ÿ?9~r4Ÿþ4!õ<ûè죳•3¿ïü¾óû&F¸¢×LÙæe›—mn¾ßÜN¹rÿ;á­~ÖU¶WÙ^e»ùoê£m^¯z½êõ*Æþ&6}$º^ÏõrÕËU/Wü£>}:qýßúz·¶W?´jÓ³(©–TKªú$Øzl©Eë]¨w¡Þ…ôñ妝лdóp]_ Þ²}¬5Ó×QŽû.+q½Äõ×M×ìŒWÑécÓǦÏTÒúžô)gésqE#1ú+½L£=:¹:¹:¹&|/óÍ[4o‘Ñ^B¦…L ™Æg0pÀÀÀb’{¼%ó–Ì[2«£á5Âk„—Ñkû¦ë›®oºÄ¸jñY8þ¥é£ ÊÙPCý õï¡^äíÈÛ‘·öÞb@‹-ý_ûö/ì_vxØáaÖüØÑΊYöìrµÌÕ2W˯;=Z¶~5%´ê„·ÿø— Opj«¬¹väÚ‘)'r0mæ¼vxíðÚ¡O0›: ß¾7|oÜwk·™Ýfv›i 5ŸÜ{WŽßšßݾŽÞ‡UúØô±é-»GýëDqÏð½˜ö·æL?—ò·H```1É=ÖWÿýV5P³kÍ®5»Æ=Ýkb<[3uÍÔ5S-UÏuÊÔ)S§ŒQ9aåÃʇ•Oìv8©ß¤~“úÅýøÒü¿¿~ü>¹ße¶ôˆÜt­k}$büDÍ©ÿ[Ÿ¢6¹÷®¶Ýª“Ò %ƒ– ZbZKe•Tf{ħ„;k³fÆ»ïf¼«1°ÆÀ O(<¡ð}<«>Eªþßgü4ã§?ÝŠ¸q+ÂÚêáôÙÓgOŸÒÿó?wCî†Ü ±Ô}=µäÔ’SKµ^}ÍøÛ»oï¾½›Þ•˜ØTŽ!9†äbtTïÞ¼°ìßNx;áí£=fŸ˜}bö‰ ßËþ¶ûÛîok´—úë¬ÿ‘$00°˜äëõ¿U èÓ™½6ê`ÔÁ¨ƒ‰ñ8L,UÏÅŸZü©Q9'œO8ŸpNìvøÑ÷£ïGßø¯C©O±›\¦~M¡ÈM&•m²­É¶&ÛìSÛ§¶OŸ£2}€®¯’›{WÛnÕIC_¹Ö|u}]Û¸Û°^“z n:ýx|˜Nƒ¬¯››Òj^?ë¼7òÞÈ{Ãp=à·Kß.}ûm#TŽßÚàüZ~-¿ftTúz½–Ýã³TÏR=Ke´Ç|§óÎw:á{ùËÿ/ÿ¿üö¢OøÏ{H8```1É=Nø´± 9Zý±šÑkõiKãªÅg%Èø—V`gv•s=õõÔ×S'Mk<7ÿÜüsóã>/= :»öìÚ³k“ËX‘ë®æ¹šçjÓU ¿î˜ã?îÓØj«N;v6­«jsªÍ©6'îW=v{ìöØMÿÍ„ß#¯U¼VñZʼ.Ãk<¬±QÍ´ËÑ.G»ÀÀ¼»™rwtwt7œùa퇵Ö¶ìÿòÏ ÇëÇcÙwpsúœ ¼g€„#&“Üào[F“¸&ÞDº¸§ûûÒš‰{ºÂÄ­·±ýkì_FÇÓ£I&=špç&w¯W½^õz•~MK/=¾ôøø?Ö7³ž\ΗVý¥.¶¾Øúbk}ªaÓº:4ùÐäC“®¾>ê×RÑ/1ðž){¦ì™bT'>Ý|ºùt£­¦ôûÂè®Ñ{6Ëîñü¤ó“ÎOŠ{n‰„ïåi†§žf0Ú‹C-‡Zµ¸ú ဠ€€Å'¤ü\-sµÌÕ2é`=ä°TÍØ¿°aÿ¨}Û¤iúyùÖð­á[#>“sÿÚj_dû­•ký-VýuLG—êšm>¶ùظ_œ68mpZ£zÖ'4™2-dÚ©ïN}wê»—á/Ã_†ëÝÏÝ8wãÜΩœS9N¦:Âk„ׯ”s¥ô)¸jCŸ=‚¶ ˜jð¸Áãîù{ù{ù{ËîQÌ+æóí±nѺEëMø^¢kE׊®÷ºà\}pÀÀÀb€R~ÑîE»íž”ýéù=ò{äg©šÑÇm•£O¦š4­qôƒÑF?ˆÏh¼š]kv­Ù•ÀÌVéáœmÀ´ê¯»ú¦+Fë_R‰{Šl}=x£µ~kW¯]½vu}Zþ¸k8î öõò¾ö|rñj׫]¯vÕFæðÌá™Ãé¯Sƒ– Z2h‰Ñ]³jê «6X¶Ÿ_¹åþ•ûö8@ ¾GýÓ Ñ^}}}¹ú ဠ€€Å'¤ü2ƒÊ *3ÈèµgöœÙsfOb\µ C/ ½0ÔR5£¯ÜfTÎ¥:—ê\ª“ØíðXÝcuÕϸOS :,è° w±møËÿ/ÿ¿ü»Íì6³Û̬«³®Îº:¹À´ê¯Óðjë ¯šÖI÷1ÝÇt÷«¦gžuzV£Q¿ú×qâßZâŽg¼›ñnÆ»”ÕëóXÕC~-¿–_£ïL…6mÚÀè®siÌ¥1—,Û{ĽĀþž’ð=êŸö¢!’«Ž˜X pBÊo²­É¶&Û’rœ‡nc…6V°TÍxíðÚáµÃ¨œ£m޶9Ú&ñZà›yoæ½™Wâz‰ë%®›ï½üÊÿ§ü<#=#=#ÍÿoÎÀœ91™éëX¯8²âÈŠ#þþþñHk ¬1°ÆÀ#=ô<ÒÓ:¯>­ú+ÿòݾ7|¯imdÙ•eW–]7nݸuãVÜuR}\õqÕÇ™×çü¾óûÎïûuõ9çÀœs˜—Y«Y­fµš¥„kto⽉÷&²0ò+ù•üÊ让ÿKý_êÿbÙÞôÌÏL:mr< Ù‹é{®9ï¹Þs½çrõ€þ*$&–Bœò'O žlôÚ>Ùûdï“=1B‚!ý‡ôÒßR5ÓXn,7–ÊÙ;b#¯šNNh>¹¨>Š:î3­S¦N™:e¬9Œ±³bIYWó\Ís5Ïð*ë ¯’'Cž y2ÄçõÑÀ;v>}öôÙÓg¿ÕñÓª[ÕUWT]aZA£ƒFŽÏk Í+4¯Ð<󚌼y;òö×ÕäqãÇ=ÌË,T$¨HPRÖŒ~K²|þG_ 1ö±.b]Ä:£VÚtyÓåM—Ó»&¤wåømãÝÍ”¾²¸þ壩’?9~rüäh¥M›ÞÉÕÉÕÉÕèçÙógÏŸ=Oø®öLÙ3eÏkî €m &CœòÔ;Pï@=£×:§rNåœêCË-?´´ÔõÒƽöð—ÖŒ±•³záê…«&FÛ“2I™¤L¦+}šÒÃuÓßï÷°ßÃ~ŽsqþÅùçOŽw™­>"×ÛªþȸÑÉF'4ºÖæôiÉ'7šÜhr#Ó¯­¿GM9­Ú²öõÚ×k_ócÍ-(IDAT/Ós××&ÿÕ7Š[ôUl¿î¨ô ǼL}_IY?ûÛîo»¿­Q;1þÚ²ûÕïA£ýÎÝ8wãÜßöÞ$@åø­-ÖÅ=*W¹£ÜQîXài¡Ù¬ æ£-uF¦³Ú˜3ýb"[€}Â!&–BœòõxÀtÊVsk¦®™ºfª¥®—yL’ðš‰{½:ÓIP-uúx£[ŸV4ºVt­èZ¦¯zõ"êE”Ñqêq‘u>|L9Èõ¸nÆO3~šñ“kYײ®eã$••ÊJeeS‰M%6•Я~òz”œÒZµÅ¤M›Þ·†o ßæayüÏÝh-ó“Of<™ñëÍtô°)}´qRVÒëU¯W½^er›N6n©=ê_à0šÆ\wnþ¹ùçæ› ™2-dšÑ±éëš'ü8{4éѤG£½$d|s³Î>:û¨Ñ¾V\XqaE`pÀÀÀb€^¾>9­Q ¦“&ä8?ú~ôý諯²fÙGŸú*¿FåôM×7]ßt–}¨×ui×¥]—šï+ã­Œ·2ÞÒ£=Æ= aýõ?Öÿhm mûù±ºÇê«Ûmf·™ÝfêÓ5Çg¿úÔ”]¶vÙÚeë çÎ'œ­bgZubÐ#ÓóÍw:ßé|§MG߯§œš]kv­ÙÕ²£TMãSúzÃI_W¦k›ÛqxÇá‡-µ¯¸GûU¼VñZÅkô®¨ÀF³æÎ£cË’-$[ÈõÔ×S_OýuåßõIª³OÌ>1ûDórLGæ%¼¶·Ÿß~~ûy£c~ü>ø}|Êéð¨Ã£ŒÊYöϲ–ýÃÝÞNx;áí„GVYqÄßÁßÁß!þm²ÀÎ; ì¿xüâñ‹ïÞ¼h‹iÕ_GÿR‹ùÓ?Gý9êÏQ_Ú6fÞŸyæ}£©ø¿´´‡µÖ~X[¢ÍËœñnƻõ®Ü¿rÿÊýF-ÄtЄìE×k:úÜœéòôŠ€‘¸'ùo²­É¶&Û¾î>2}­9}zËž‹ù< :ýÓ£ùü_‡˜X °¥Êïx¥ã•ŽW,¿xð>àK£ß¯«£±eúøE}Ò„ÔóƒVZ=h•÷FÞyo˜ï¥¤ZR-©¾ zô.(>ǯÇ3FçîèëèëèK8a)Wó\Ís5ϰÆÃkœ'Cž y2Ä¿–ÿOùÿ”ÿ>ºþU[º.´ê„XúvéÛ¥oMÏÑÍÅÍÅÍåëÖM¿7ñÞÄ{j¯ÆÀk ŒÿU¨S¦N™:eŒÆí™ŽíKÊÓ§e.W¬\±rÅŒÎÔ#Ö#Ö#öëŽM‰žÛ)·Sn'£ò^mxµáUzE >nï¾½ûöî¸ß%{ê]¨w!ý´———¸§}Öû(Óþ0ág¡Ô? šïQï-¹ÖÀR€ €€Å[ªü¸Ã›ÿ‘öÜù¹ósýßÇ=Ž{÷xâôÄé‰Ó›yoæ½™w©Î¥:—êècà<#=#=#ÍK¨]½võÚÕ-[3“úMê7©ŸQië"ÖE¬KH=·Ðb@‹æ%Û¿°aÿâHÏ#=ôüÒ#×cE£cn,7–ËÄÀ ±;twèîPûÔö©íSǧmgŠÊ•)ª}tûèöч‡vxXrŸØ™VôPÜ|½äµ#׎\;2!g7æÒ˜Kc.ö½&£õI¹_ízµëÕ.}­_½×5Šóuzùß¶öâ3ç„)}„úÙµgמ]«9úÊÓ[_l}±õÒ—þ¸ôGӀ܈¾ª·þnE¿ Ä_Üëëô/vlɼ%ó–Ì·"nEÜŠÐûIý Xú”ìe•TfPÜåèkñZöøõO€F{ü£ãÿèHŸ,…˜X °eËÿÒGó_Êk‡×¯ÏR=Kõ,•e\ŸöÓ¨4ÓéU¿´ä¸§-ÒHÿ!ýrõiFåëM¹Ó¿ÎúvëÛ­oŸ/4Œ~0úÁèßjddÒ£U'„麼:=؈ϸ¸éÓ&Fß«¯1lZþ·­Ã°òaåÃÊ'ÍZªÅZkQ¬…é{}#ð¥â¹›pý/÷¿Üÿrb¹Ñûºó“ÎO:?‰žX 00°àÄ(ßt䟥”_z|éñ×_\qýEbL­3_S×¶HÛ"m‹|iÉ7ÏÜÕ|µ9ÕæT›“û2­›}bö‰Ù'Æ¿ïÕ_ï­gÔ¯Ó/a|é*ÝæÜÝÝ×õY×g]}L6='`YúÄìæÓàÇŸ¾bú¾^ûzíë•Øïz…æšWhžù1Œýkì_cÿ¢–EL Ìü3äŸ!ÿ Ñ?Å5:Ùèd£“¥V–ZYj¥“«“«“«6xÄzÄzÄê£Í¦gžuzÖ¤ŸP÷šÝ5»k†õp‹«™r\q¿â~ÅýÆ­·nÜâ!/B_;Ö|äô¡É‡&šœØ­ëÞÄ{ïM4Ñ[xBá …'dÙ•eW–]z¼Q}\õqÕÇÍøiÆO3~ºr7änHrló¦£n¸yàf}}ßâO‹?-þ4WË\-sµÌ1$ÇCôÑêz?*Û¨l£²\ppÁÁ1.1.1.Üï@b3ý‚EÀo¿üVéT¥S•N *T$Hïô¸²RY©¬ô¬Ú³jϪú¸=šMìûÔü+_¦_O4“†« ,…˜ÀF$ÞÈæ„0Z´—w/ï^Þ<ì`«}¯m÷o)í|[º[“þzê]¨w!ó#i²­É¶&Û¸F 1 íZ¿ký®õæŸ?õñʶê}Àû€÷¦ëÍ'Þªí¦€ €ˆôi K/=¾ôxóO¡Ûîn»»í.µ`{ôOzæŸ}ºùtóé¦O@M-€Ä@L €D·õÍÖ7[ߘ mÕ´UÓVMù`{L?é™ÚqxÇá‡ù00_úØô±éË6/Û¼lsÓO¡YveÙ•e×Ó O3<Í@%ØýÓþIÏô³ŸŸŸŸc@b#&@‘¿—¿—¿7ÿ,úû¦ß7ý¾‰Q ¶aüâñ‹Ç/6ÿÔ'¿’_ɯøÔ00’TÇ+¯t¼búYÔ¡–C-‡Z< Hîž8=qzâdúéN×Yê,u–¨4€ €¤þòφ˜"YpdÁ‘©€äKÿDgúÏÉÕÉÕÉõ~àýÀû|á$ ``|k¦®™ºfªé'Òì³OÌ>‘ǂɑñæøíÝktUå½èa5ÇÚCÇð$µ¨ ²)P+„&” ИÈ%†Rݶlö¦^ŽÖb-C°(z@Ø %ºÝZ·Øz¡ED"DA(W…¢¢ ŠÜŠÅ@çCüŽÅJYa²Þ<ÏŒ9üÀZÉœëý9]}ÿ³Ñ6ú‡ÿ©_ÑÝEwÝío<àt€`"sÇCwÌûÐwD’ÅÞ­{·îÝZõ¯¸žßèùžß¨ú—ž«œN° B€€@À0X! À@ `„,€` ° B€€@À0X! À@ `„,€` ° B€€@À0X! À@ `„,€` ° B€€@À0X! À@ `„,€` ° B€€@À0X! À@ `„ü•¥ªñ,hÞ‰hÞhÞ‹hVœöYѬŠhÞhVG4D4F4k"šµMqDóÑiŸuÍÇÍúˆæ“ˆæÏ͆ˆfcDóiDóYD³)¢ù<¢Ù|ÚgKD³5¢ÙÑlhþÑìˆh¾ˆhþÑìŒh¾ŒhJ"š]ÍîÓ>‹hJ#š=ÍÞˆf_Dó÷ˆfDs ¢9Ñ”E4‡"šÃÍ‘ˆ¦ü´OEDs4¢9Ñf–ќќѤÔÕÀÁ€l®äê`pÉOJ~Rò“¥ËêlþÑØ“ØnÄv#>ów#®?ûןˆëÏÞÃE4õgïáú³ëpýÙo¸þì4láðvŽjáú³»°}…í(l/a»ÛE8ª]„ëÏþÁv¶g°Ý‚ílŸà¨ö ¶C°½Ïø]Kú—ô/éì7€¨ 0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„ ‘ù Á >hP4¾h|ÑøÁ«¯¼ªò¿]N ‘™Ø}b÷‰ÝSc¸2œ"#X0DF ±`ˆŒ @b À€Ä€ 20‰%@d`K€ÈÀ$– ‘€H,"#X0DF ±`ˆŒ @b À€Ä€ 20‰%@d`K€ÈÀ$– ‘€H,"#X0DF ±`ˆŒ @b À€Ä€ 20‰%@d`K€ÈÀ$– ¶cÉŽ%;–¼¶þµõ¯­ïÿdÿ'û?Ùè`£ƒ¦ÖZFJFJFʰíöÛ¾dÈ’!K†”N+V:Í5 ’ µ²9esÊæ”‘mF¶Ù&5"·eÜ–q[aaaaaáî¶»Ûînës¨Ÿ`8 Û+¶WlŸßt~ÓùM3ûeöËì—zFº±ÿýoì_ܹ¸sqçãÇ+ŽWøìêþ‰cà ?6|öÐÙCg­M”íÜ ýÚÆ¯ ½®ÏøïŽ÷Ùˆ”¶ßøô©³¯ø×%‹þp]Çò¥>_§±‹Zéѱ﫳Gnßü™ß•‘sçûׯo¹¢ÍúËž¾pô©ýÜܲܲܲµg¯={íÙ>M€° ÀWñ°âaÅÃZgµÎjUóàzÓªkF6ûûœé¿ýÕ³÷,žÖmùñã+Wvïž¨ãæ‡gµêÜjÒ=Üñûcszµ{­ñIÄà[ n-¸µàË©_NýrªÏ <0üƒÃ[o=¼µà‰‚' ž¨IRíðƒï•\üê¼ÏŸÞÝá®Ä†ÞšËýn~~·ñ» Æ·}ªæ1xúˆé#¦8¾ïø¾ãû|îa€à+Ÿ÷þ¼÷ç½›4)hRP}:ýñ[]/mšýñèi?ÏÙUôw<:wEJþۋ掙Ûñ‘K[7îyÁת?—[Šn)º¥hÿ û_Øÿ‚5ì`8¾¸Éâ&‹›TJ›ÝÓdËKßß5i\öÁ3-úVœ1dÔYYª?»´Mi›Ò6m黥Ö@ò€¨×&O˜ðíNGüÞÌü©õ'ýV=îúú‚6]—Æ»>g5žÕxÖÁòƒåË­%€3™ @àÊ– ,˜–ž–ž–›6»mî¸ö’ÇËSß)ÍoU?ÓoÕ㎌7Çt¹'^î[Þ·¼¯ pF€Ü öƒÚj/jîüVV^Gé·ê±¸Ó”·s.wÅf™}döë H”93æÌ˜3£òŽã‘)LydJiÒ¥=\™S#¬;VìX±#^Èü¤ä•N¹÷ʽñŽS6<ú|»gâ]½ÒC¥‡JYc@míu´×Ñ^ñî;ÄàS# ŠìŠìŠì†}öiØ'ö!‹w>˜Òv†ÄûOŽ¥+uïvýÅ?œÔìÒØk8°p`áÀB+ ¨ªßý­ž\s0zyøËÃ_ûÈ ÝàÖ‡/ZwlÔŠ¢ü}oMŽ%›|£ëã=‚ÙX²±dc‰õœšÊ [wSkL ®ž @P-8´àЂx Ö÷˜Vš{¬{²Ç \Õö¯±×³÷y½Ïë}žUÔžœ(0A™š>5}jzìCÛ—öúi‹,)÷ÔŽå—¼S–Ÿï˦m›¶mÚfí‰"׆ @ ŽÍ<6óØÌ´+Ó®L»2öAÀ–×ßhØy€”[›ãŒ÷FuÍÚ{mïtï {Y@]ƒO– @ Ö<ºæÑ5ÆÞöÿÛÖ¼ÑMKåÛÚYþîÕÅ{¼r`çvZ‡@݃kB Ö X7`]ì­þŠ-s²åÛ„twƒôá±×y^—y]æu±€ÓC ŽG é•-[>6Þí}Å”÷2òÿût&Ò§çٔѠò§o¼îÕ†¹å'û9ïþ9ÿW_pNê—©§dÇso~Ù屺8»­¿ñËÎÇþÄžËz.ë¹ÌjN?1¸*€¤÷qÙÇe—ÅÞÌß?ç]Þê´~Göü•ÿ§{jÎÚMm|~ÕßädßçÓ«^]sU»ÔZ¨»||áÊ1Ý;^Ô¶aaÚôØŸ{hס]‡vY“@TÄ`€¤÷l곩Ϟà~Õ…³ÇŸÎôûð‚;oj= ö79Ùw›;üwŸthZõ~·bÈ·¿WüÜÿÜAÆ+59îŸýö¼yuw¾¿y¥_{¦ë Ö¬+°&€3AýŒÁ0I/ïü¼óóνi?ÐhéÕyÖEþÜÙÿͺ¶)ºû7©íÞ,8|Ç­~×nsúuý-Þビ}ÿÊÜ[ùÚô¿ÓÿÂìS{Ÿº;¾¿wÒ„ì|ëz\ƒq Æ5°&€3Mý‰Á0Iìè꣫®Ž½E¿d}£~³¿ÿ:ñ“‡v~?»æ Nöýþïÿ{ùwW¾¶×¦«{ÿËågZÞ—ýÖ¹y­cÏô†oxñ†­LàLv €Hb{r÷äîɽ-¿cZïÛ[6¬»üùÑ›EË1ú¼A™mŽÄk€¯½þª{.üÕNÆ¿øE×Ë/W}íï>0*³qeZîr´Ã —4mrm£‰ßü(£ÍwÇ_¸é¦_^óƒf_üZÁ¬¶ÏUîC|:Ï´Ë¢—]rÂo<$Ÿ0b° @[~îòs—Ÿ{û½ð¬ç~Þ±E2à¿/{ûyU}í…“vL{¢&z<œ“ÓdͶ?ÍžÝù/§çLïn~Ó½ßy\“¼1X ‰ÍÊ›•7+/ö–ûÃq“ç^ùT2àÏ™ÜùÊ»bß¡ßÿûéY-»Mï:2?ë¦ÊóÚŽÿ™Ù~¯ºßС厴³SW¥þÃÏ==ßõø=ƒÛ´€€°%W Ž,§@Ù°mÆÛ¹Û’1ÏðôÓþ£òUí6§_wÑߦõ|챬–Uß9öUüÙ3=;<~‚ \ÇgúüŠ_§g~j½Ä3gÆœsfÀP+›:¼vóU“’wàØw;ÙŸ{ó¯}ýÛ=êúL'^ñP¿ï7´Þâ9òÊ‘W޼"@­$ï7€ks|õ[£È:VùÛoõÑEú0@´êÑ7€—¥cŒ1ÆcŒ1µ‘÷¼oä}±7ØÉ»pmŽU÷¾prÃŽiOÔõO·°•iŒ1ÆcŒ iÞ¼ÿÍûß¼¿ß9ýÎéwNÍÓo忯G{@í-?wù¹ËϽÍ^xÖs?ïØ"ð[Û¾ÓUKöÿah§¯oÞ7« s·š¿vÖ»£[]q~åOlsÍe—]xO]à»›ßtïw?Ñù$·ÊpûÈ”G¦<2¥æÑ·òߟþè[• @Û¸zãê«co¹Ÿo9|jæœd À¹ÙY}_]ùªçä4YSó×ÞSró„ËÚT¾ööŽzµhW׸ˢ—]’*aHÞè[• @Û“»'wOnìí÷ÓzßÞ²a2àxªÕ’ÿõûùפíK{,uxå¿_úÎó¯tšV‡gú£•9Ý/=Á/Ú'µOj+HaDߪ`’ØÑÕGW=Á7€/Yßè‡ßœ—ŒxïÖ%Kò.üî³Í‡6ìSùÚʬÛ÷Å_ÙbüóFï¸âê•?žøTöÏ^i÷ø9YOýªû Z~9óßÏoѯ®¿û»/û­sóZÇžé /Þðâ /Z™À™,¼è[• @ÒË;?ïü¼ócoÎ4Zzuއɀ«¾Ã÷®¼lë…/×üaÄmŸõüsó?ú§/®þ]]Ÿãû{'MÈ.‹ýÆ5×`\k8Ó„}«€HzϦ>›úì nÔWÝY80{|2àªï3fÄýfl»¦oîìK¯j±ö_ùÖ£ßZvÁ¢´f—?Ú¢}ÃçnmtÝßÞµðûÏ=Ò1£ê«êúóÜ]?K¿6öL׬+XW`Mg‚ú}«€Hz—}\öñ ¾zÿœ_<ö:Ïë2¯Ë¼.Ö!pzˆ¾ñÀbÍ£k]óhìíý¿mÍÝ´T¸­ýñð˜åï^ýQ¼Ç(vØy`§uÔÑ·&`qlæ±™Çf¦]™veÚ•±7ü[^£aç"nmŽ3ÞÕ5kwìµ½wнƒîduAô=Y0A™š>5}jzìÍÿíK{ý´E–ˆ{jÇòKÞ)ËO÷`eÓ¶MÛ6m³ö€D}kC (‡ZphA¼Çë{L+ͽ@Ð=Ùã„®jûרëÙû¼Þçõ>ϪjOôM€½<üåá/}4Ðnpëí;6jEQþ>Y·&Ç’M ¾Ñõñµl,ÙX²±ÄzNè[`T‘]‘]‘ݰOÃ> ûÄ>,xñÎSÚÎwÿɱtå¢îÝ®¿ø‡“š]{ ,Xh¥µ1gÆœsfˆ¾‰%¬;VìX±#ÞãƒOJ^é”{¯Ðï8eãϷ{&ÞÕ+=Tz¨ô5ÔÆÑ^G{í%ú&– @àµÔ~Pûxö ~++¯£Ü[õXÜiÊÛ9—Ç»b³Ì>2ûˆu$JÕµ'¸²e˦¥§¥§¥ÇæÌn›;®½äñòÔwJó[I¿;2ÞÓåžxé·oyßò¾åVÀ™L ^ذÃþ ûã¥Í›Ïºöow:úã÷fæO­Ÿéw××´éº4Þõi<«ñ¬Æ³–,?(œÑ`ê‘ù ç/œ¿0^æ¼iï5“›•ñÎðü¯×ŸôûÅ€¹¿í2/µZÛ^ÚöÒ¶—¬€3Ÿ @½3)Rþ¤üx±3÷²¬ëwÙÓyñÐno†~ן5mnnJõéwígk?[û™5,`ꩱÅc‹ÇWŸ??jYô@Î-á¥ßW'ÚÕ¾iõç¾²ùÊæ+›['ÉE ^›ïýyïÏ{7)hRФ ú\úã·º^Ú4ûãÑÓ~ž³óL˽Gç®HÉ{ÑÜ1s;>riëÆ=/øZõçrKÑ-E·íaÿ û_°’ ÿàðÖÃ[o-x¢à‰‚'Rk Ã¾Wrñ«ó>zw‡»¢Š¾å¿~7?¿Ûø]ãÛ>•ZcÓGL1}Äñ}Ç÷ßçsƒ q+V<¬uVë¬ÖY5«7­ºfd³¿Ï™þÛ_]1{OÁâiÝ–'6÷n~xV«Î­&ý×ÿ?6§W»××üWK½µàÖ‚[ ¾œúåÔ/§ú|Â#À?qlø±ádžÏ:{èì¡©µÐ¹Aûµ_z]Ÿñß7î³)m¿ñéSg_ñ¯KýẎåK|þ¾NcµÓ£cßWg:ܾù3¿:*#çÎ÷¯_ßrE›õ—=}áèSû¹¹e¹e¹ekÏ^{öÚ³}ša€à$Tl¯Ø^±}~ÓùMç7Íì—Ù/³_êéÆþ7ö¿±qçâÎÅW¯8^᳨`¨•Í)›S6§Œl3²ÍÈ6QåÞŒÛ2n˸­°°°°°pwÛÝmw·õ¹ÔO0$ØŽ%;–ìXòÚú×Ö¿¶¾ÿ“ýŸìÿd£ƒ6:˜€Ð›’‘’‘2lû°íö/²dÈ’!¥ÓJ§•Nsͨ$@d&vŸØ}b÷ØÐëÊpj`ˆŒ @b À€Ä€ 20‰%@d`K€ÈÀ$– ‘€H,"#X0DF ±`ˆŒ @b À€Ä€ 20‰%@d`K€ÈÀ$– ‘€H,"#X0DF ±`ˆŒ @b À€Ä€ 20‰%@d`K€ÈÀ$– ‘€H,"#X0Dæƒ4ø AÑø¢ñE㯼jðªÊÿve850@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ þ?A6 œ¥w %tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/findIndex.png000066400000000000000000001260311431412030200253040ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝuTUYãÿqgœuf;ÅJQ±°»;ÆÛ1°sŒ±“±»»‹Ó`7ÖØíØb+"¿?Î|×ï>ëzxPÂ{/ïkåšážØ{Ÿ}¹çs÷Þ©b6!E¶l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚¾7ƒß ~3ø€×¯^u"êDÔ¹îyÝóº'% ¥‰tŠtŠt ¿~%üÊ•VX3?f~Ì|J@Js0ÛÁl³………ér¤Ë‘.” €”æÑÁGŒPÿÿþ_(€/E ‰asìæØÍ—ï_¾ùþÒKw,ÝÑä&4ùÃ.‘Tl\±qÅÆÓÒOK?-ýI§“N'Þ x7àÝ €¥y¹æåš—k¥:”êPª±ëÆ®»®ÔéR§KN„®°€]»íÜÛ¹·s_ûf훵onN¿9ýætÊ€eº'ß“ïÉ[/l½°õBðÔà©ÁSs¼Éñ&Ç›„w‡n©ÝR»¥rgÈ!wäòyÀ³õÏÖ?[O™°4_}|õñÕ9ùœ|Nž›qnƹkͨ5£ÖŒÄú¤¬ïMß³~ýˆ”<0|¥“­N¶:٪ǰÃz ³ûFêÜ«s¯Î½ýþûý÷û¿xñ>‚zœ^y9äåÍ×7_ß|=`dÀÈ€‘ߪ?²mȶ!Û.澘ûbnê@ò»‘úFê©ÿtùÓåO—oÕºýæö›ÛoË—/_¾|ù'O<¨ÉéSÇO?uŒ‹‹k3µÍÔ6S¿U¨]?ý¬¨@Ò1' Ož:<5%ƒo‹âåUçW_u^\iq¥Å•ì,ذíöÛ~oì½±÷ÆRk’ÂÕ©W§^ÚmU·UÝVYfO˜ã\Žs9Îm<´ñÐÆCï뿯ÿ¾>µ q}¼óñÎÇ;ûö;íwrrr²Ìþ°Yp³àfÁ‘‘‘±c?Æ~¤î$®§ùžæ{šoêÌ©3§Î´äOÊúêgK­0,0z3æÍ˜7cfæž™{fî„|ÔtøÝÇ¡Bׂ÷ >ç²3¸å˜Ñ}û™¹¿DÀàÓóÓ”è6¤í|©ø¢æ¤u ï¾uüÉÂ-®ö>“Û;àx­¥öQY¢³mûºãvÛun×¹÷·Üßr µ !®î¸ºãêŽF“Mj4éëz¤|=²UÎÜ«cS÷3ùMoZÎ˵òÆŒÕÇyNÛ_·•O&í×ú»KT¼ë§)•u×åÚ.ÞÒÒë•[ÿ~X³ÒÎ…£«œËÎa]BúáËV,[±,ºetËè–Ô&€¯óiè§¡Ÿ†î Ù²3$!=RÀÏ^grn ©Õnq¡… ¯Oí‘sÇ•éßy×”Åyµ|¢µ‘ ú—š/ý«ªO§Í;'½÷Ê;{nÈ$7¿®Ç›\ÈÄåBÁYY§}Ýqýßú¿õ{æ»3ßùŽÚÏ^?{ýìõˆ<#òŒÈ“þ°Äo5ÞçYmRß.ùJ7m;¥zábíÒ- *–¾cª ]Úê[ý¿èÿWÿMýU 9®~æúUP›€„#†e"€ÿ¶ýúöëÛ¯q¼±¼VD›•žîÃ,ºèsÉÐ# Ê–]ºôèÑÄÚz_ç·V.ܺåÆ>×ìe—Í!þç6Ùe²Ëd—÷ÁïƒßSÉâãeö—Ù_fP}@õÕãßÛËÓ)kѹû+6t/v)¬Åÿ˱±AA•+'ÖöÝèN‹+Í/Õ+ä3¥Ëœâiòñ#¿ðýáûÃ÷S¿â/rHäÈ!E=‹zõŒoÓüXõ?ó¼ÜµaF7ïÏGHë+ˆ=z´råÄÚÞ³½H@‘£ÇøŸïW¿ÄÖœ_29êˆ6#ÚŒx¸îẇë¨_ñ³4fiÌÒ¥–XZàKÿúª<»g™¼~Á“6¥v+=jÔ… %K&îVß³~”/=7ýŠô«£–_‡–‰þõ`÷ƒÝv×hV£Yfñù ˜»y¹òµKz½ÓbÕωôÆ[zÔŒ{&xß(wÐ|óúdŸ“}Nö¡Æ‘RI©¤TñïU¦w-WƵú‹ç&Ul¸qoü·õL-ýC>]Ççœ;çꜫs®—v/í^ÚQã̽¿õþÖû[#&˜}ÈæØ‹½ð×oúmoôoµ> `Çòî‡óÕϵœšyjæ©™´ºë®7ºÞÈa„Çq÷µ•òŽN¾ç§­oë÷à[…¾FÛ˜=GRªâž¿öøŒu,š³n¦Ÿâ¾–Vk[­mµöÕ¢W‹^-¢ Э;¿îüºóñùkªFtÈšüé}8²Ísû· }¶úYégŸkѯšÚÄ0,0€”J‹ÕbµiAÓ‚¦ÅýñÏ)ŸcÕ륽¦K»ëXZèk?ZØï@P¡4Mûvï÷Õ5±kb×ÄîÍË7/ß¼¤Q)Ó“ˆ'O"¼_x¿ð~w1ÿf%g÷ÕŸ¶tyøÁÒB_£í¥#-¦ø_+›ÕÙ+gÿ¸¯n­ÇZµ´ %“$é,±‘§·ÃÍLÚñÇ+ú¾±´Ð7îí¦“Ry^Šûêì¯Ù_³¿v³ÓÍN7;Ñ€”éãË/?¾ìçÓϧŸÏÿé[½­š{ààÔGÏ]–úmõ³ÕÏ<î«ÓK@/ Z nÀ°LÀRœ˜É1“c&÷èÕ£W^qä+Þc èNk }¶>5'îß<9ó­Üò­1ºÒÂó Ï/<ÿiާ9žæ …)Çͦ7›ÞlwOXu_¢WïohÛ¼ÜAk }¶ëvW[íù]Ü×;É’ÿ$ÿؘؘØZr¬Zºj骥q÷³·„,t+ÿ©ë‘©¬+ú5ÝF‘Ý+<î°­~Õ|îq_ïi÷Óî§Ýi@Êñ¶÷ÛÞo{×ò­å[Ë7îþ!xæ&;7?k } Wž¹ÉÎí¬¬—†^2´€`X&`)HŒ}Œ}Œ}ë™­g¶žiô/gžé}÷Î/ ²öè×tëd‰÷á×V4ÌÜù Ñµg<œñpÆÃ"E>Фµ¶íjÐÕ «ÿcþƒ¹U*q··öÐ×|{«jë¦Sówʶ<³á×b†ÿ8üÇá?ÆÞ‰½{‡Öضù‘ó#çGÆÝžÍ¿v°_+ë }¶›WLzìå÷µÍ{4ïѼ´À¶½iû¦í›¶¾Ã}‡û7ê J•o\ʱÿ°*§úz·öè×t«_‘~uF×®—Œ^J´€9`X&`)§ØO±Ÿb;ÖïX¿c}£u2Õ¯Õqˆÿ‘%ž‡_ÚRôk¾u{Ý»ïäuFå54khÖÐ(‡(‡(Z`{“öNÚ¸÷G i°¸tzÛ‹~M·ïºu ­4­õa×vÎ•ÃØ c/Œ½@›lÕŠÀ+zÿ‚žMr–{ …TØm{ѯéöBªõ{üSÇý¾pæê™«g®ÒfÛó!LJrìØ°Û¨¨W`ä†ê¨þ”’%l)úý¯mÿ JÉú••ƒ^Jz‰Ñr¦€a™€¤£fš=j¶Ñ¹¢5Óí¶íÐ×|ëYjØÍE ¿ßíRÊ¥”ˇj|¨AûlCTž¨Ùˆ~M·ÑU;¯ ôö–œ²gŸe^b5&Ö˜Xcbì–Ø-±[h]€uéëÕ׫¯—Qø¢ŸâYчè×tYjêWبÄv~ØùaçÚ`]¢”(%J1º¯+Ïèé“· ¡¯ùV/£rÓK•Ö)pbÙµiצ]›ô2»fìš±kžU}VõYUJæë°AÓ*M«4­’ÑÇ3¿ºó'j/ˆ{?»]rôHž)•Ò7øÌT`å2—Ë\.sì ØA±ƒhc€åûÐõC×]z ›ý››HÜk´}p¦]¡òJoK•-U¶T¡ÖâȽ#÷ŽÜ3\ûüÑÆRþ}ˆ{¶k.[Pb¶Qé={÷ìݳw´1ÀZ_ ¾|Íü^.ÐÉ»v6בåέð>JÜk¾ÕKF/%óÒÓK•Ö)pÂÅÔ©Sßèsað×!`Sîd¸“áN£· ï·ãþ\W 7î­_êysÕ}†£=Æí·s- °|³oξ9ûægÖ>_“ãmÖŒ×t)øAoÜ[¡vÝ™>ކ㟿xþâ9- °d}?ú~ôÍÒ.K»,íÌïâ%]G¦öØDÄû?¶ÏŽŠ•+4É^eEžÏ|A°×ò^Ë{-§¥–ïdèÉГ¡FÕôߨ¹—¨DÐ÷V/%£2ÔK˜–)p™Žýapü°)-·xÜâ±ùCÁ}MFuó$Üý‚UMµ`ŠÑí{ï÷Þï½io€ezÒ÷Iß'}îßK½[t÷?B¸ÿmë󮯘—䘹c掙K{,Ùê¡«‡®j~ÿ–èWô}¶sŸ&Yø‚ˆ7>ÛG×Â~)oøÁË.?ºüˆöX(÷X÷Xw×þ®ý]ûfÅß S²v&Üý‚U+LÉZØÙ¼$õÖK›F) pÂé®îÚÅapÜ€؈K©.¥º”ÊpÚçiÃgë~éÖ±oêÊEÍËsy¿åý–÷£Õ–i¸ïpßá¾æwî0‡Ò¿~B ›¸ÓA?®÷¸Þãz´:ÀÒ¼ {ö.ÌèνPuý3ÿLĺ_º]Ú}ä1Ì˳QšFi¥¡Õ–IÙ­ìVv›ß¹9¯å}œiÝÈEç«{?$Öý‚é ¯îýP/=óRÕK›V) pâ" N,ÀlDË;-ï´¼cÞõ»ÍëÕp’Qî×mK¹M³=¿ÑÛjt‘è"ÑEh{€åxîþÜý¹»Ñ=û|Kû]Nè~ÝvÒ¹²c]ÊæÆü±óÇΧí–f]±uÅÖ3¿g;hõçó$Êýºmt®ƒo‹½Ë\»}íöµÛ´=À‚œŽ={Ú5­kZ×´æ÷l—Oëk¹î$Ðýº­^zŸœÖ5­kZ½äi€r'Âà„ `õ }0ôÁP£îÞ¿ÿb—C‹‰r²Í“¹Âäz®æe»¯Ë¾.ûºÐË17tnèÜϬî6É¡ly—l„¸ ÙF=îP¬bv£÷š· Þ6xÛ€X‚O[>mù´Å¾Œ}û2æwëÍm;²t'ÊMÈvÓáIå=Ÿ˜—mŸ¾}úöéK ,Ç9—s.ç\ÌïVçæne³DŽ ¹p ¤'QîWnC.(é©—¤y ë%O €”ƒ8y)`VoÆæ›gl6ïÜ]ZŒÎL|›ð­ãÄ"›N›—°o?ß~¾L X„OE>ùTÄèÝ'½~Q! !n·C—•ºZøŒy ïì°³ÃδCÀœwzÜéqæ÷i½[§9=#¾Møöý_U:kôŽóúÁë¯ÐKt*èTÐ)óû´ã+Z¹üFˆ›ð­^’æ%¬—<-RàäGÀ¬Ø§ÛŸnºmÔ¡—Y2·­Rø6Q¶KŽÎr1oB3ÍËùÁüó0ý)ð=uöÔÙÏ<àkó£ëçû·‰µ½y£uñ€ór.;´ìвCi‡€%è~®û¹îçÌïÓ#7—ùùß&ÚvBßž?ûÌ<{Ëí-··íø¶Þ.{»ìí2£OÊ#Nœ½î½’ø6á[½$ gˆYövÙÛe´FH €¿-Â`#À¬Øµ€k×Ì»o§—e?Õœc9ªßÑ…v÷ lñ±÷‡%ë”oŸe¸³GÁ‚ö7²Ddëž=m7~NË^¯Ù£Äê¡Ùl´ÌØ-°gÕ?¯š—öÊZ+k­¬Ek¾­aƒ‡ 6ø3ǵFK|-'@ݱ·V;ïJíO¸äýè3Ûé`öOÙB3^³×ŠvÉq#ëm£ÝJäm*¿ª÷¬TZKŽ‹mÈÙ4k­Ï¬²ÜöyÛçmiÀ·=?z~ô|£÷×v ü#9#ÒYû\sûY?úåZ›³øGé>úú;°[¦ÈLßÛ=´û*÷Bw?,7!)®îVöƘ±nxÝðºá´FàÛŠ(Q:¢´ùZmlßÖù|’.íp{E^—Æ¥›7Íïét£È£,©2çÌæh”kþž™^¹úUø˜ãpÚå;9,äÔ¯«_¼òî“õî®›K}ßèˆc;·>™sfT2kvoôýûLmô£o—4k¹&ëøf½TÍK[¯Z#¤À–ƒ0Ø0+ö׫¿^ýõʼË.ÑxHöùí-!4-ÙwB– ù²þœ÷~áñËÉÓ²b¯úõËÚ-Íp4ƒåÀ¾×æÄŠY>3îíVÙ[eoÑo¦mlÛØ¶Fýɇ¡[¦ù¶qéS§ß” ~­‹¸pÞÿž°ß&ïû…~²Ìxé‰Ê=>™Ÿóþý!ûCh’À·rþíù·çßšß›ƒvµU¸H²Ž‘M4Ce;¿j%ÖåLoz&_ºŸ+e7Ÿ.[Â.’.ŽŽþUÙ'›G–åöÌûîñ»ÇïÓ&o¥g÷žÝ{v7¿7{{ìïÑ+‘CÐ Ò—´++´û3÷â/í£‚+oœà–7>G©º°ÏÁ¼íFÛýmW2>{®Z´÷§¼ZòÀz©šŸƒ^ ´FH €-a00+æ[з oÁÏLþüz^wuä·Kýo.z¤~Ž n·}þoõÜùö2:Ÿ¬ú]Ó’®³»;Œ·óþ~̘Uƒû̼˜Ç­ÂµzsìÊÚ-³;ö_ñª…Î|"wê|M?ó˜¯ß»~ïXøþùðχšß•- ¹tr.o qióŽÅÄ<—õ³²a§Ù íîSB.à°íBÍM^N}ßäÏ2=6å«þÄó >Øô*f)ïäiiðí“­üc^æ]×u]×umøVæØÍ±›ó™ðǺ.ïå»89£ß1a]›ýLôò¥{Û3tæÅ’NÿÝ+pv 2(“ÛÆøl_íT_WÜ›t×;>´Gëb5̯ô܈s#ΠMß@…Ø ±Œhެ}Nð>™¸ñgÍÕÏæÿ¯#:~(Ü,óöúéFûL¼wS=·ªúÈàê]ú=È7:k³\i36ýýÁ Öög¦þ׃?×NÝþ×Pÿ¿æá®þ_ ,lð©ó¿£(²vÎÿK‘³– m^¦ç.ó’¿ävÉí’-H~’ä#}fÒ¹Í[jŒôrþ¶A©ëêç“ñ¶½£Ýö¸§wÖs뽚 ½–ÚglWÙÑ/ó»L??ËÐ>g…>–ÇÄvYxÆð1ßÑØ£±Gi™@ò«˜¾búŠéÍïÊ×9´JO%Eüù x_žò.k{Ž·+±{Äû.]ŠÌ,q£X­lO û‡/Ü¿÷þx4+œÕ÷ëö“tÛãQ+–ú~fÔõŸþ¼ðgÚ$üž<}òôÉgz!ï‚u;tOÜàsØ£Ó3½Èêô2ã¿_ŒËûƒ{§¬¿ê®þ_Ì_¥ÿwÓWýæˆJ‘½ä<—÷j¦Õúïè“KëcŽ”ºß¤…ãFýßúkõý$u ¬—°ùùè5BËÛFl]RNL À*Ý~tûÑíGæqå í;k–”lܸJðBý¬2G8ý“Ï+>S:—Z:õÙŽ÷ÿ7ø÷ÿ¶œØ³Ãðn‹7™—ü†+®l¸BË’ߨöcÛmo~WÞ×jk@Ño”¶Éá:Üù±~>CKµ(<úÿ¢‹ÿýÚÏ'–5¸Þ¼Â!N×ÍÏóÕ¨W£^¢eÉ)æD̉˜æ÷c® 9ªdLÂñ¯Ë.ŽzPÜ7þ ¾tÿ½Òµ(\àßqoõ¯Uj”»°¥À/|•+5¿Ò¦Kš.iº„– $¿c鎥;–î3weõ) çKÜȳíß ³ý¯E1Zí [ä…Q k는(ó,{oóßi3bÞþ¢ÿEæJ¦vkf9ØÞ3cÜû7ýý¸æÄÝê%ü™Y(ÒKw,-l°õ²í0˜€UÒ2h´ æ¯GÇ~f·„ ÔùSÕYM_drÔœ÷;µñ/R½t|¢ÜÒ»g¶Üû™ Ç‚VÎ0«×¾ƒægÒ+¤WH/Z&üªf«š­j¶ÏLÌÜiN¥©ß6"-þÌac¶ÝúùH™êùùÌÿkwͯÅ{«þÚ’ûÜ|%,-žõ]ù®7ÌKþjë ¯6¤eÉé¹ÿsÿçþæ÷c—õ:äÏ’tñçÙÝkŸú Ÿ–¦¯»ËómÂàMÊövì÷ïJÆíÛ—/œÕr¢ß·ÕŽúUvüÌ‘vvíìÚÑ2ä·´ÇÒK{˜ß”Ýïo¿æÞ4q#ÏúÏÆ+Ø<þ“9›nƒ"7È®ÿÇë÷쯘Ǵ¦ë ¯\=]®¼ñrMÏ*Àã·¹#’:ÖKؼäõ¡e€m#¶ ¶°J‹V,Z±h…y‡[òåŸË7å·´i“ã¿-Zÿ·óƒN™Ž¶´Øß{Q냟Y^¯bdÅÈŠ‘´LÀ>fü3œj^ÙÿÛF¤úÎúùîÖ([鍸¿Vÿ}ýµµJ<ïxËÒ`ñx½¼>ÍK^~*?•™èHV—O\>qù3#€äºÎ}×· G›¾vn¯Á“ÜsêÑr¹˜’Ms99Ôȱ,ãY7—B‹³^kÞ±zé<——ü4b»G¨¾qr^i9±dÁ\Ÿñ ¹õêÕ7Êü~uè¶g‹Ä<[þë·¢ÙËlQÙ©»ÿ…6ïs×@k:zØÙÉõ\ÉüµE³ûÌ.ü; Â1© z}A8n´oÁ(Ö;àR¤€õ6/y½Fh™ÒžÌ[;Ûƒ €X¥!u†ÔRǼ“õ]2§ŒÝòƒ^Ÿ–Ÿo>í9úÅÊÑNýrÎh“×¥ZÁf›M¯¥Ø«ÎïGö²´¸l‰¥C.0/ùÌ2È|€– XÂÇ ÿLy"súYBDZuL¬ÿ®7¯]ÅîuãÿÚéÊ»vÒ_ë¥:îËÞÂÒ&‚¾xªùÿnæå¿âΊ;+îÐ2ätàÇ?øÑü~R…¶õÉgðËpµtÅQ¦¯Íº*‹ýäø·<Åó_å1`™3Ú4påüÞ"ÒaKg(ü\?«Bs²ŸÉÒî©ÓoJ…ÿN_·kU°ì9'×,õ2•ûwÏæ™+e\hiðým+—Ûo^þ“—M^6y-HNÛ+n¯¸½¢ùýxjáª=e¦[c|êûUe>3‰kÐïS寰¡üŸžÍõßÙzoʯ¥Ý*7-™ÿžýwvÇìþë¸É3xÒÄÞý\<øË°Åž{Rì‰ùý82êüß%Jê8îíÈ"ç†zk}ƒÚ:;ý;ùsªì›ìwö¦ä.~Ýü÷M§†îì¼æ?®Yã,ý÷ÿýM³\i3NêX/aó’×k„– )íÉ °­²®08•åÜpþÕ-=øÄz`SÅŸ :5w¿ežŽž®óK¥½–©Ï¯}ëXBDú<ªý‰ ׋„ä›å¸é®V5²ÄÈ/ZýPáÍœŽÿT*x~n³O~¦¥ ØíòÁ4úý¿qoÇü߸7Ë €Ÿîúí}…Ö´7À’]º½Iõ¿mðÞî³f•l¨¿ªÄbµ²=]_wÂÏü¦{6վֳ떜ø™8‰¯tÁ‘aÅܯÐÞK6*äBDIÏoýê+þ–ÊÊþïÙL^Y&Ù;´Y6Ýåg£hÖþJ¦vkõÿÛ£îŽ9îƒãDý÷õךî' ¯4äBDIOZ0²kÓ®M»6ÀWò³¸é¡¿­eÅ_ÿ?7=ôw©OÓ3íêí±¶ÿéY³J”¬S¾½éy–vrÑmK;óœ×KäõKE{,SÈŸ<…4Ë Jõ³Ê¯e‹È,Äÿ*†g+Ý¥HAýßÎQY÷üßÄ}–s]Ïßµ?]á&í °d×JnmYv…õ®l¾·/=nË*5¶9WMê+]æ=*¨xÚ`É’?ôíýÝÞjm½®Ö­íÐÐôLò>ôx—µYpåÜòÆ}n¦S@wI³v‘ëoñ?z§Í«+¹<×_›³}Þ,™F&O9ÐÒ€‘?lü°‘¾’µŒ6ÚêWáXµtXà Óëb0€ø³œÀÿ—¦jß·ÂÚ¾¢÷”‚'=bdiÿÂN³ªŸsæpûSöym-ò)÷ѳ»›ÕðnzEž§Ûeϯÿ›ÀâÏzG'd»9ó¤ÁžŸô#zÄ9›m$#€$Ïàá§#ó{×­f÷ûÔ|v•ÌšÝýèÙ¶:þ–q~­œƒäÞúL ï?Kƽ·‚#}ü²ý»¾xëys‹-ûkï [ä…þZÓý0|+)h°>:?üðÃÏ×ýÔìR³KÍ.æÝ¨µ¬ŸøßPÄ×±xž¿4cùkÓ2ùá'ùÌïDËYØh4°þo}òç[g[O Øü.¤ÓüJ3Mgn¯Š¥ÜÿõÛ¬o±yVZZl´pÿþ=üi™üð“œ?öÿ³ÿŸýÍïGë]8![Óõƒ³®Êâóÿ§ÐOî5€i™üð“ü?ùßä“ÿùý˜Ôk÷î»/£Ç¸¼?¸wÊú«~D}âåÀŸºrÞ=¸áÑÚž§¿4‚-áRc~®žú«VW àñø¿¶Á¹±­ ®Ö_[bqÍö¹f'ul´°^#´L~øá‡Ÿ”öd&ô§ÐŸB¢dlïg÷ Ýƒv ú>èû ïãý꿟‚Ö€„RgH!uÌ;Sß%sÊÙ¿m8ê»xNI!£éY{ÕùýÈ^ñ߃WÕQe–×Ò_›ñ`ö%¹rYP\béУ ÌK>óÌ2 e–0«Š¦<‘9ý,3Žÿ¶Þ“¡NÿŽÛ˜T±l]—<–v†O5?ãßͼüWÜYqgÅZ&œüxàÇ?šßBªÐ¶>ù¬1VîÎ÷*UV~5/¤TÚ/¶¨ÿ×n?4­ˆwzýˆ.Õ ÌÚ;©àžy›÷)0ñs× ¹Õ ¬X3Ðü~.D~ï]=)‚Ïß· ‹WvXZ0Uærú±ôwžµæœ«ŸéÄÈ_ºç€åíså~¬¿Ö[«wÝaiü_ë]·^6‡×.—µý<“:ÖKؼäõ¡e@J{2£‡…”ŒmЃ۱kÆ®»&þ¡¯þûÉúš"`•­X´bÑ ó޵äË?—oÊoi£x³îmT)þ¯-ökG§¡ªþÚ\«½æ¸YNìィõÁ9æ%_1²bdÅHZ&` 3þ}ì~>¨yeÿo‘.¨P)Ð]ð÷Ís+g¥ß{{œŸW]®ÕBò¶ÿÎ.ØîßøDÿ/–‹ÇëåõùLà!?•ŸÊOi™@rº|âò‰Ë'ÌïÇù‡®sße°¿¯g§œ•ôWUãççp:þ¯íý¨åÒ‚.úk;Hõëç+‘Ôp9±dÁ\vÀ€%èÕ7ªo”ùý80êÐmÏI|(ìu+[vý(EJ”y–½÷ÀèC¯<['vÝË)îW Ùp|W%ý÷õ×¶í´ fÑ I=ýµ^Âæ%¯×-RÚ“`kg½¡¯)`VIË eÐ2˜w²û}˜9ÜÒ`»ùö2zNþrI‹¸_Uºù ŸÝ3ÿê°8Ï¿V n´3è¦åÀ¾fõÚwмäCz…ô éEË’_ÕlU³UÍf~W¾ î4§ÒÔo‘iÕ¨—oáç3¸mïh·ýÀ¼†éJ×6úý·ã:U¨Ô²F“‚ùûé¯jÞ±˜˜ç²¥Mþ¬og}W¾„ë ó’¿Úðjë i™@rzîÿÜÿ¹¿ùýØe}£ù³Xcløåž8_%ÿ0w¿Ïiûöþo…uíà‚¥Ö'á•V;êWÙñ3'Úή];Z&ü–öXÚció›²ûýí×Ü›&näÙ>ÛÒTÅ„0Úîo»’}šï_î™Xcm‡=:=Óû‡\ûó÷Ìôê¿Ö3ŽóUzdÊûƒéXd}e⤀õ6/y½Fh™`Û€mƒm„¾¦€X¥Ûn?ºýȼÃ-°¼¡}g͂Ғ§ÿ,½qý,Ùº›ža¾ãµ«µ­ã>ó÷ÓŠèS={8õË9£MÁÆ«/4ðY_ýWŸPÚrVÿõì0¼ÛâMæ%¿áʆ+®Ð2ä7¶ýØöcۛߕ7ƵÚPô¥éƒ2|.ÅñÞסÈLù‡zs|N‹yëÞòé0¡·ÅbCKÜpL“íé¿s'¤ÊÚ&Óëv­ –=g¡“TÏ+âtÝüê^z5êÕ(Z&œbNÄœˆùÌà\rTɸ×à¨[²\1k¡9yC²´ûw5Íöì†vZÒàh¾Å;öN»ç]éhíeÓ}[o,1ñ{ÏéÝ*7-™ÿžiôÛqKƒôù‚’zìï _åÇŠEͯ´é’¦Kš.¡eÉïXºc鎥ûÌ]Y}JÂù7ò,u¿I Çúþ³‡:½Ìøþïº[GÜ,0ÿK·FG1¿¿¨Ö]rÿ¤ÇÏý;¨[J¸´“­*V½ÌÜ–éfšþfói3 ßMêÉŸõ­^Âæg«×-l°õ²½Ð×0«ôaÀ‡˜w¾Y²ç~”´åÄ¥ÿŽ{››=}Î6ñ Éáä2ßëzÉìã¢Ö­³ ÕË.]zôh¡Ðæezî2?çKn—Ü.¹Ñ2ä'ùH>’ù]¹yK‘^Ζ”êçcîÆ­X³œ¥³ú÷h<Ô÷¨eŽý‰í².ðŒáø¼£±GcÒ2äW1}Åôӛߕ¯sh•*ž²®Øt®e Þʺ:þIþvµîßy#Þ…Dܯ43©¯ñxÔŠ¥¾oÍÏaáÏ ^ø3mH~Ož>yúä3qy¬{Ü¡{âFž…:•:ží‚]"‰ûXU*õêžw@¼v4Úîo»’Õ»ô{otR‡¾ÿµêpÁºÇº›ŸŽ^#´L°mÀÖŶC_SÀ¬˜oAß‚¾Í»ã2¯çuWGZZ ¬ñÍ®àÙ)SýœëÚoÍâ™uK¶K…¸ïqÚ_¶Vm®ºý9®aY»¥Žf°´èWßf>‘;u¾ÏLlõ®ß»~ïúÑ&ä÷ðχ>üÓü®lYÈ¥“syË Mõ³š–&`·Ë‡ÀmùÓ9¸åÉõÇL\³ÔËT®\LÞª¹œôÿû"²ÃÈŠ5-3úÕ··O¶~ðy™w]×u]×u´Ià[™c7ÇnÎg>¨뺼—ïbk €M÷ó×ðA§ÜnWïä¿Ó±l¾3¹Çf—9<“hŸ§ð¸|^YBÛä¨ußù±P™—öþý!ûCh’À·rþíù·ç?3uЮö£ ùVA'n÷~’'ôýw+ý«²O6,Ëí7|æ«ß=~÷˜6 |+=»÷ìÞó3£Q{{ìïÑ+9ÃÑ¤ØÆ'τϦ[½TÍK[¯Z#¤À–)e†¾¦€X±k×®˜wÓN/Ë~ª9Ç2cTëݺö¬úçUóÒ^Yke­•µhÀ·5lð°ÁÛߡG®5ZâhÉaª5n‹mÈÙ4k-óÒ~ÞöyÛçmiÀ·=?z~´áX´k»þñmc`[ÚÞʾ£cÀór®^7¼n8­ø¶"JG”Ž(m~‡VÛ·u>k€-m«—ªyiëµ@k€”€Ørúš"`Å>ÝþtûÓm£Ž»Ì’¹m•‚·‰²]rôp–‹ykši^Îæ?˜ÿ`>­ø¶Îž:{êì)ó;´Í®œïÙ&ÖöæÖÅB>3ÂвCË¥– û¹î纟ûÌbn.óó%¸M´í„¾=.6Ô¼œ÷–Û[no9Ú!ðm½]övÙÛeFŸ”Gœ8{Ý{%Ám·zI•³^ ´FH €¿-B_#À¬ÞŒÍ36ÏØlÞ‰»´ ™ø6á[ljE66/aß~¾ý|Y÷°ŸŠ|*ò©ˆÑµOzý6¢BâÛ„o‡.+uµðóÞÙag‡h‡€%8=îô¸ÓãÌïÓz·*NszFp›ðíû¿ªtÖèçõƒ×^? – èTЩ Ï|A°ã+Z¹üF|›ð­^’æ%¬—<-RàäGèÀ¬Þƒ¡†>jÔ­û÷_ìrh1!nB¶y2W˜\ÏÕ¼l÷uÙ×e_Z `9æ†Î j~·Nr([Þ%ñmB¶Q;«˜Ýp„Gƒ· Þ6 –àÓ–O[>m±/c_ƾŒùÝzsÛŽ,Ý q²ÝtxRyÏ'æeÛ§oŸ¾}úÒËqÎåœË9ó»Õ¹¹[Ù,‘£B.(éIˆû•Û Jzê%i^ÂzÉÓ å N„¾_Š€hy§å–wÌ»x·y½Nò!Äýºm)·)c¶ç7zûŒ.]$ºm°ÏÝŸ»?w7ºgŸoi¿«Âi¢Ü¯ÛN:Wv¬KùÏ|˜?vþX¦Á,κb늭+f~ÏvÐê7ÎçIˆûuÛè\ß3z—¹vûÚík·i{€9{:ö´kZ×´®iÍïÙ.ŸÖ×rÝI”ûu[½ôÌKU/m½äi€r'Bß„ `#.¥º”êR*£Nß/dAÚð™º_ºul㛺rQóò\Þoy¿åLþ X¨á¾Ã}‡ûšß¹ÃJÿRø Qî—nœiW¨|E£÷—Çõ×{\VXšwaïÂÞ…ݹª®柉@÷K·K»<æñyy6JÓ(M£4´:À2)»•ÝÊnó;7çµ¼3­¹è|uñßê%¦—žy©ê¥M«€”†8qú&`6¥Åã[<6(¸¯É¨nžºñß–X<4Õ‚)Fo¨ï½ß{¿÷¦½–éIß'}Ÿô5º/õnÑÝÿ±nü·­Ï»vt¾b^’c掙;f.í °d«‡®ºú3 …”èWô}¶sŸ&Yø‚X7>ÛG×Â~)¿Ïèåò£Ë.?¢½Ê=Ö=Öݵ¿k×þæ÷oÓ S²v&ÖÿV/±ÏŒýíïÚßµ¿^Ú4:Hi€ŽÐ7)°)w2ÜÉp'ƒÑ[‚÷Ûq®+H¸÷Ö/õ¼¹ªá¾ãvŽÛ9Ž–X¾Ù7gßœ}Óü..º&ÇÛ¬?®éR,ðÂݸ·Bíº3}¼úÃÏ_<ñœ–X²¾}?úfi—¥]–væwñ’®#S{l"ÜýÛgGÅÊšd¯²"£yöZÞky¯å´4Àò =z2Ô诚þ5÷•wãÞê¥dT†z ÓÒ e"N¸]›vmÚµ‰Ð7q°AÓ*M«4Íðƒ™_Ýùµ½ŸÝ.9z$Ï”Jé|æ_¹Ìå2—Ë;(vPì Ú`ù>týÐõCW£žpÂfÿæÅ&ñ~Ý´Ï[ªl©²¥ m °Gî¹wäžÑ}ñÑÆRþ}z¶k.[Pb¶Qé={÷ìݳw´1ÀZ_ ¾|Íü^.ÐÉ»v6בåέð>JÐû™iŸË[á}T/%óÒÓK•Ö)pÂÅÔ©SŸÐ7q°AÑu£ëF×uÜî¸Ýq»ùFîÜjU+ëº4øè„¾¦[—Ü]FŽÊmôF{;õíÔ·ùð2'³žÌz2«Ñ}v´n{ŸlĽ¦Ûèª×z{KNÙ³Ï2/±kL¬11vKì–Ø-´.ÀºôõêëÕ×ËpL?ų¢q¯é6²ÔÕ¯°á¬0v~ØùvX—(%J‰RŒîëÊ3zúä-CÜk¾ÕKƨÜôR¥u@JFœXLÇú&0›uù×Ë¿^þÕèCZ¡ýÍ×õªLèû¹·›×ߨ¬Ö…¯ _N‹¬×Äb‹M,ftŸ[Ðl‰ß6¢ßØ6A®•ó9/ßͨ¬í{´ïÑ>Z`ÞözÛëm/ûböÅì?ÓV¸ás&×Äh»ƒÏ‹ýÞsÛýW¹ÞF=a§èNÑ¢iQ€õŠèÑ!¢ƒÑ=Þté¡p9BßWü]:E(\Ψ¬ô’¤E€a™€ظ oø{ÃßFØŠÞé°lhÞ”ýzå©-ÛfT>Ý.v»Øí"­°v1Wc®Æ\­üsåŸ+ÿlt¿_ÝÜrYÙ”º*pLP—ÊCוºQ8Ò¨|ürà—¿Ð–kwéÕ¥W—^Ýé-SÕì\*¦öá-ëRfôû8m˜Kyͨ|rnϹ=çö7Ño¢ßVoªãTÇ©ŽF÷{ë's÷mž’£_½ŒÊG/=Z@G ËD E5{ÔìQ†«—­ù›6hwJ‹~=K »¹èƒQ™”r)åRÊåC5>Ô ý¶!*OTž¨Å~ŠýÛ±~Çú “/©~­ŽCü,ñ<üÒ¶£_·×½ûN^gTYC³†f rˆrˆr å¶çNÚ;iï¤ûÄ‹K§·íè÷]·N¡•¦µ>ìÚÎÙp–ˆ±Æ^{6ت+Wõþ=›ä,÷<@ ©°Û¶£ß ©ÖïñO÷û™«g®ž¹J›lχr|Ȱ;`wÀn£ ^‘ ¨£ú_PJ–°Ùè·ÿ¥d ýJÊA/%½Äh9SÀ°LÀRûûûÖ3[Ïl=Ópj»‹}Óûî3^dK¡¯ÿ‘%Þ‡_XÑ0sçƒFמñpÆÃ?Š|ù(’Öض«AWƒ®Åý¸n•ŠEÜím/ú½UµuÓ€©ù;e[žyѵÿqøÃŒ½{'ö­°mó#çGÎŒ»?<›í`¿V¶ýn^1é±—SÜ×~4ïѼGóÒNÛö¦í›¶oÚú÷î;ÜpލòK9öVåT_¯ã¶ýêW¤_ѵë%£—­`Ž–‰@Š39frÌä½zôêÑ+î^Å{ ôÝiíѯO͉û7OÎ|+w…|†QGáù…çžÿ4ÇÓOù.3‚Ülz³éͦq÷„U÷(êpõþ†¶ÍË´öèwÝîj«=¿‹ûz'ùOòŸäC RŽUKW-]µ4îþaö–…nå?u=25ð‘õ†¾QEd÷ ;l«_5Ÿ{Ü×{Úý´ûiwÚr¼íý¶÷ÛÞµ|kùÖò»ž¹ÉÎÍÏÚ£_ý*â¾R½4ô’¡…ŒÃ2H©´X-V›4-hÚÿç”ÎϱêõÒ^Ó¥Ýu¬%ôõ{´°ß BišöíÞ-î«kb×Ä®‰Ý›—o^¾yI£R¦'O"žDx¿ð~áý"îcþÍJÎî«?méò8ðƒµ„¾—Ž´˜â­lVg¯œý㾺µk=ÖzЀ”Lr$‡¸ûŠ<½nfÒŽ?^±Ð÷uE¿›LJåy)¿fÍþÚÍN7;ÝìD{R¦/?¾üø²ŸO?Ÿ~>q÷e«·Usœúˆâ¹ËZB_ýlõ3ûêôÐKƒVˆ0,0ÄJ™¥ÌRf»xÈ?¼îÀöyKŸž¹yïI‹ }Οþc±- ŽhŸk™yyæå™—cý=öwÚ€è~Ñý¢û rä<È9>}ÈæØ‹½ðWK }oôoµ> `Çòî‡óÕϵœšyjæ©™´ºë®7ºÞÈa„Çq÷µ•òŽN¾ç§­oë÷ÀÒâÞ˜=GRªâž¿öøŒu,š³n¦Ÿâ¾–Vk[­mµöÕ¢W‹^-¢ Э;¿îüºóñùkªFtÈšüé}8²Ís»¥…¾úYégŸkѯšÚÄ0,0üëÁî»ì®Ñ¬F³Íâó±0wóråk—ôz=¦ÅªŸ¿Uè[zÔŒ{&xß(wP»x;ÙçdŸ“}¨qF¤TR*)Uü{•é]Ë•q­þây‡I|«Ð7¢^ƒ©¥¨Ñ§ «ãàøœsç\suÎõÒî¥ÝK;j€¹÷·ÞßzkÄä“GLŽO¯R²´ë£ì›÷^Ÿõ¤doúF;Xañã‹=¦Ç¿ß0|Ãð Ãc_ľˆ}A½0wõâÕ‹W/ºVv­ìZ9>½JÙvö¹Ç÷ŠØsÓ£æ· }õ£ëgŸsÖ¯N¿Rjð¥€a™€࿅ņņm¿¾ýúöëv_(ßòZmVzº;°è¢ÿÍ%C4Hܸ×ûÚ8¿µráÖ-7ö¹f,˸lñ?·É.“]&»¼~ü>˜J/³¿Ìþ2û€êª¨ÿÞ¦X†œNY‹ÎÝ_±¡{±Ka-&ø_NÜ ÷ÝèN‹+Í/Õ+ä3¥ËœâiòiWm¾?|ø~ê@üE‰9¤¨gQÏ¢žñïmš«þgž—»6Ìèæ½óùi}…‰÷Þ³½H@‘£ÇøŸïW¿ÄÖœ_жÑfD›×=\÷põ >b–Æ,Yº´ÀÒK |é__•g÷,“×/xÒ¦Ôn¥“d5ßI›R»•Öò¥ç¦_‘~uÔ2àëÃ2€¡7cÞŒy3ffgæ¶K‡ß}*t-Ø¡qŸàs.;ƒ[ŽíÑ·‘™ûK >=?M‰nCÚΗŠÿ0 jNZ×ðî[ÇŸ,ìÐâjï3¹½Ž×Zj•%:Û¶¯;n×¹]çv{Ëý-÷·P›âꎫ;®îh4©Ñ¤F“¾®GÊ×#[å̽:6u?“¯Ñô¦å¼\+oÌX}œç„°ýu[ùdÒ~­¿»ÔHÅ»~šRYw]®íâ--½^¹eñï‡5+í\8ºÊ¹üçÖ%¤^±lŲË¢[F·ŒnImø:Ÿ†~úièÎ!;CÒ#üìu&çÆZíZ¸ðêðÔ9w\™þwMYœWË'Z¹ ©ùbÑ¿ªútÚ¼sÒ{¯¼³ç†Lróëz¼É…üG\.œ•uÚ××ÿ­ÿ[ÿ·g¾;óÝ™ï¨M ñìõ³×Ï^È3"ψ< éKüVã}®‘Õ&õí’¯tÓ¶Sª.Ö.Ý bé;¦ZÑÐ¥­¾Õÿ‹þõßÔ_•ãêg®_µ H8`X&`ˆ—W_u~Õyq¥Å•W²³`öÛ>lû½±÷ÆÞK­H W§^zuj·UÝVu[e™=aŽs9Îå8·ñÐÆC½¯ÿ¾þûúÔ€ÄõñÎÇ;ïìwÚï´ßÉ=È=È=È2ûÃfÁÍ‚›GDDÄ~Œýû‘º¸žæ{šïi¾©3§Îœ:Ó’?)ëg¨Ÿ-µH\À°LÀð•N¶:Ùêd«Ãz ë1ì[}ˆ­s¯Î½:÷öûï÷ßïÿ>â}Äûê@rz9äå—C6_ß|}óõ€‘#F~«þpȶ!Û†l»˜ûb©ÉïFê©o¤þÓåO—?]¾UOèö›Ûon¿-_¾|ùòåO<žx<ñ ^$§O?uüÔ1",","¬ÍÔ6SÛLýVý¡~týLô³¢vI‡–‰ÃæØÍ±›/ß¿|ÿòý¥;–îXº£ÉMþhòGb}|­Ø¸b㊧¥Ÿ–~Zú“N'N:½ðnÀ»<KórÍË5/×Ju(Õ¡Tc×]7v]©Ó¥N—:]a»vÚ¹·soç¾öÍÚ7kßÜœ~súÍé”9ËtO¾'ß“·^Øzaë…à©ÁSƒ§æx“ãMŽ7‰ô¦vKí–zÈ!w†Ü‘ÈäÏÖ?[ÿl=eÀÒ||õñÕÇWçäsò9ynƹçf¬5£ÖŒZ3듲¾7}ÏúQô#RòÀð ¼üfð›Á¼xðЍQ'¢ÎuÏëž×=))M¤S¤S¤Sø•ð+áW¬<°òÀʘù1ócæS2RšƒÙf;˜-<(<(<èH—#]Žt¡L¤4>:øè`„úÿôÿBÉ|)`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0؈d €ÃS‡§Om)†ž“€Õ#‘â`ý¿‡þ]øwá©ÂS…§Ò>iŸ´OZŒ£ÅhÑZ´­}Ð>h´wÚ;íöV{«½Õ^k¯µ×Ú+í•öJ{¡½Ð^hQZ”¥=מkϵ§ÚSí©öD{¢=Ñi´GÚCí¡öPûGûGûG»¯Ý×îkwµ»Ú]íŽvG»£ÝÒni·´›ÚMí¦v]»®]×®i×´kÚíŠvE»¬]Ö.k—´KÚ%í¢vQ»¨]Ð.h´sÚ9íœvV;«ÕÎhg´3Úií´vZ;©ÔNj'´Ú í˜vL;¦ÕŽjGµÃÚaí°vH;¤ÒjµƒZ„¡EháZ¸®©šª©š¢)š¢Iš¤Iš¨‰š¨…iaZ˜¶_Û¯í×öj{µ½Úm¶GÛ¥íÒvi;µÚNm»¶]Û®mÓ¶iÛ´­ÚVm«¶YÛ¬mÖ6i›´MÚmƒ¶A[¯­×ÖkkµµÚZm¶F[£­ÒVi«´•ÚJm¥¶\[®-×–iË´eÚm‰¶D[¬-Ök‹´EÚ"m¶@[ Í׿kóµ¹Ú\m®ö—ö—ö—6G›£ÍÑfk³µÙÚLm¦6S›¡ÍÐfhÓ´iÚ4mª6U›ªMÖ&k“µIÚ$m’ö§ö§ö§6A› MÐÆkãµñÚXm¬6VûCûCûC­ÖFk£´QÚ(m„6B¡ ׆kõ¡ÚPm¨6D¢ Ñiƒ´AÚ@m 6P  ÐhýµþZ­¯ÖWë«ý®ý®ý®õÖzk½µ^Z/­—ÖSë©õÔºkݵîZ7­›ÖM Ö‚µ`-H Ò‚´ÎZg­³ÖIë¤uÒ:h´Z{­½Ö^k§µÓÚimµ¶Z[­µÖZk­µÒZi­´Z ­…Ö\k®5ךiÍ´fZ­‰ÖDk¬5Ök µ†ZC­Ö@k ÕÓêiõ´ºZ]­®V[«­ÕÖjiµ´ZZ ­†VC«®UתkUµªZU­ŠVE«¢jZ VI«¤UÒ*h´ Zy­¼V^+§•ÓÊieµ²ZYÍ_ó×üµ2Z­Œæ«ùj¾Z)­”VJóÑ|4Í[óÖ¼5/ÍKóÒJh%´Zq­¸V\s×Ü5wÍMsÓÜ4ÍEsÑŠiÅ´bZ­ˆVD+¬Ö k…´BZ!­€V@+ å×òkùµ¼Z^-¯æ¬9kÎZn-·–[sÒœ4'ÍAsд\Z.-—–CË¡åвkÙµìZV-«–UË¢eѲh™´LZ&-£–Q˨Ùivš–AË eÐþ£ýGûö«ö«ö«ö‹ö‹ö‹–NK§¥ÓÒjiµ´ÚOÚOÚOÚÚÚZj-µ–Zû^û^û^K¥¥ÒR©±j¬«Æ¨1jŒúQý¨~T?¨Ôê{õ½ú^}«¾UߪoÔ7êõ•úJ}¥¾T_ª/Õ(5JRŸ«ÏÕçê3õ™úL}¢>QŸ¨ÕÇêcõ¡úP}¨>P¨Ôûê}õ¾zO½§ÞSï¨wÔ;êmõ¶z[½©ÞToª7Ôê õšzM½¦^U¯ªWÕËêeõ²zI½¤^R/ªÕ‹êõ‚zA=§žSÏ©gÕ³êY5RT#ÕÓêiõ´zJ=¥žRO¨'Ôêqõ¸z\=ªUªGÔ#êõzH=¤TªÕ5BPÃÕp5\Õ)ª¢*ª¤Jª¤Šª¨Šj˜¦†©ûÕýê~u¯ºWÝ«îQ÷¨{Ô]ê.u—ºSÝ©îT·«ÛÕíê6u›ºMݪnU·ª›ÕÍêfu“ºIݤnP7¨Ôõêzu½ºV]«®UרkÔ5ê*u•ºJ]©®TWªËÕåêru™ºL]¦.Q—¨KÔÅêbu±ºP]¨.T¨ Ôê(ï•÷Ê{å­òVy«¼QÞ(o”WÊ+å•òRy©¼T¢”(%Jy®+Ÿ•ÏÊ‘r¤)Ÿ–O˧åSò)ù”|B>!ŸËÇåãòQù¨|T>"‘ȇäCò!ù |P>(GÈr„.‡Ëá²*«²ªw²$K²$‹²(‹r˜&‡Éûåýò~y¯¼WÞ+ï‘÷È{ä]ò.y—¼SÞ)ï”·ËÛåíò6y›¼MÞ"o‘·È›åÍòfy£¼QÞ(o7Èäuò:y¼V^+¯•WË«åÕò*y•¼J^!¯WÈËååòry©¼T^*/‘—ÈKäEò"y‘¼P^(/”çËóåùòJ¤Òé½ô^z/½•ÞJo¥×ÒkéµôJz%½’^H/¤R”%EIϤgÒ3é©ôTz*=–K¥GÒ#é‘ô@z =þ‘þ‘þ‘îI÷¤{Ò]é®tWº-Ý–nK·¤[Ò-é†tCº!]—®K×¥«ÒUéªtEº"]‘.I—¤KÒßÒßÒßÒé‚tA:/—ÎKg¥³ÒY)RŠ”"¥ÓÒié´tJ:%’NH'¤Òqé¸t\:*•ŽJG¤#ÒétH:$”J¥)BŠÂ¥p)\ÿó_Û—t¢$J¢&…IaÒ~i¿´_Ú+í•öJ{¤=Òi—´KÚ%ívH;¤íÒvi»´UÚ*m•¶H[¤-Ò&i“´IÚ(m”6Jë¥õÒzi´NZ'­‘ÖHk¤ÕÒjiµ´RZ)­”VH+¤Ò2i™´LZ*-•–J‹¥ÅÒbi‘´HZ$-H ¤ùÒ|i¾4Wš+Í•þ’þ’þ’æHs¤9Òli¶4[š)Í”fJ3¤Ò iš4Mš&M•¦JS¥ÉÒdi²4Iš$M’þ”þ”þ”&H¤ Ò8iœ4N+•ÆJc¤1Òi´4Z-”FJ#¥áÒpi¸4L& “†HC¤!Ò`i°4X( ”J!Rˆ"õ—úKý¥~R?©Ÿô»ô»ô»ÔGê#õ‘zI½¤^RO©§ÔSê.u—ºKݤnR7)X –‚¥ )H ’:K¥ÎR'©“ÔIê u:Hí¥öR{©ÔNj'µ•ÚJm¥ÖRk©µÔJj%µ’ZH-¤Rs©¹Ô\j*5•šJM¤&R©‘ÔHj$5”J ¥úR}©¾TWª+Õ•êHu¤:R-©–TKª)Õ”jJÕ¥êRu©šTMª&U‘ªHU¤ÊRe©²TIª$U’*J¥ŠRy©¼T^*'•“ÊIe¥²RYÉ_ò—ü¥2R©Œä+ùJ¾R)©”TJò‘|$É[ò–¼%/ÉKò’JH%¤Rq©¸T\r—Ü%wÉMr“Ü$ÉEr‘ŠIŤbR©ˆTD*$’ I¥‚RA)¿”_Ê/å“òIù$gÉYr–òHy¤<’“ä$9IŽ’£ä(å’rI¹¤œRN)§”]Ê.e—²IÙ¤lR)‹”EÊ,e–2K¥ŒRFÉ^²—ì¥ R)ƒ”^J/¥—~•~•~•~‘~‘~‘ÒIé¤tRZ)­”VúIúIúIúQúQúQJ-¥–RKßIßIßI©¤TR*ñ“øIü$ƈ1bŒ-F‹ÑâñƒøA|'¾߉oÅ·â[ñµøZ|-¾_‰¯Äâ ñ…%F‰Qâ3ñ™øL|*>ŸŠÅÇâcñ‘øH|$>ˆÄÄÄÄ{â=ñžxW¼+Þo‹·ÅÛâ-ñ–xK¼!Þoˆ×Äkâ5ñªxU¼*^/‹—ÅKâ%ñ’xQ¼(^/ˆÄ â9ñœxN<+žÏŠgÄ3âñ´xZ<-žOŠ'Åâ ñ„xL<&ŠGÅ£âañ°xX<$‰Äâ1BŒ#ô‡úÇ}ýM^Ô ¢ â~q¿¸_Ü'î÷‰{Ä=âq·¸[Ü-îwŠ;Åâq‡¸MÜ&n·Š[Å­âfq³¸YÜ$n7‰Ä âq½¸^\/®׊kÅ5âq¸J\%®WŠ+Å•ârq¹¸\\*.—ŠKÄ%âq‘¸H\$.Š Åùâ|q¾8Oœ'ÎÿÿÿCÅP1Tœ-Îg‹³ÄYâ,q†8Cœ!N§‹ÓÅ©âTqª8Eœ"N'‰“ÄIâDq¢8Qœ N'ˆãÅñâxq¬8V+ŽLjcÄÑâhq´8R)ŽGˆ#Äâ0q˜8L*‡ŠƒÅÁâ`q8H$†ˆ!bˆ8@ û‰ýÄ~b_±¯ØWì#öûˆ½ÅÞbo±§ØSì)ö{ˆ=Änb7±›ØUì*vƒÄ 1Hì,v;‹ÄNb'±ƒØAì ¶Û‹íÅvb;±ØVl+¶[‹­ÅÖb+±•ØJl!¶[ˆÍÅæbs±©ØTl*6›ˆMÄFb#±‘ØPl(6ë‹õÅúb=±žXO¬#Ö눵ÄZb-±¦XS¬)V«‹ÕÅjb5±šXE¬"V+‹•ÅÊb%±’XI¬(V+ŠåÅòby±œXN,'–ËŠeEÑ_ôˈeÄ2¢¯è+úŠ¥ÄRb)ÑGô}DoÑ[ô=EOÑS,!–Kˆ¢‡è!º‹î¢»è*ºŠ®¢‹è"ºˆEÅ¢bQ±ˆXD," ‰…Ä‚bA± ˜_Ì/æó‰ùÄ|¢³è,:‹yÄ Ÿ„ÂGá£-D ÑÂ{á½ð^x'¼Þ o„7ÂáµðZx-¼^ /… á…ð\x.<ž Ï„gÂá‰ðDx$< …‡ÂCáááá¾p_¸/Üî w…;ÂáŽpK¸%Ün 7…›Âuáºp]¸&\® W„+Âá²pY¸,ü-ü-ü-\. …óÂyá¼pV8+œ"…H!R8-œN §„SÂ)á„pB8!Ž Ç…£ÂQá¨pD8" ‡„CÂAá pPˆ"„!\ÂUPUYIIÐ… aB˜°OØ'ìö {…½Âna·°[Ø%ìv ;„Âa»°]Ø.l¶ […-Âa‹°IØ$l6 …Âza½°^X+¬Ö k„5Âa•°JX%¬V +…åÂra¹°LX&,–K„%Âba±°XX(, „Âaž0O˜'Ìæ s…P!Tf ³…ÙÂ,a–0K˜!ÌfÓ…éÂtaª0U˜*L¦S„IÂ$a’0Q˜(L&„ Âxa¼0^+ŒÆ £…ÑÂha¤0R)ŒF#„aÂ0a˜0T*  ƒ…Á a0HB„a€0@ ôú ý„¾B_¡¯ÐGè#ôz ½…ÞBO¡§ÐSè.tº Ý„nB7!X‚… !H: …ÎB'¡“ÐIè t:í…öB{¡ÐNh'´Ú m…ÖBk¡µÐJh%´Z-„B3¡™ÐLh*4š …ÆBc¡‘ÐHh$4 „úB}¡¾PW¨+Ôêu„:B-¡–PK¨)Ôj Õ…êBu¡ªPU¨*TªU„@!P* •„JB¡‚PA(/”Ê B€ ”Ê e?ÁOðÊe„2Bi¡´PZ(%”J %…’BIÁKð¼OÁSðŠ Å…â‚‡à!xn‚›à&¸ ®‚«PL(&Š E…¢Ba¡°PX($ „B!ŸOÈ'äò y…„}{ö.ì]ØÛ°·aoÃ^‡½{ö*ìUØ«°a/Â^„E…E…E…= {ö,ìIØ“°'aÇ={ö0ìa؃°aÂî‡Ý»v/ì^ؽ°;awÂî„Ý»v;ìfØÍ°›a7Ân„Ý»v-ìZØ•°+aWÂ.‡]»öwØßa‡] »v1ì|Øù°óaçÂÎ… ‹ ‹ ‹ ;v&ìLØ©°Sa§ÂN† ;v<ìxØñ°£aGÃŽ† ;v$ìPØ¡°CaÆ ‹‹‹   ×Ûëëô?Û €“õ‚ )XBJ ‰€˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜`S^¯|½òõÊÐ)¡SB§´¬Ò²JË*%W”\QrE¶Ðl¡ÙB‹„ )RñTÅSOŽ»8QΉ%qË™Z³öÄ·uüýñ÷Çç½™÷fÞ›z æÉ'Cž Q·¢nEÝ¢|,Ÿþ—›þWœþþ×þ—åH9€ €6ââ ‹ƒ.òHï‘Þ#½]<Ľ7b­äAL Â|rüäøÉ±F“Mj41­Á©Y§fš•Ú`iî…Þ ½ª½Ï´×šÐ{Bï ½­ýê:Oï<½ót»d”Û)·Sn'ÚÒǦM¸Ûán‡»õÛÔoS¿MÛ·n+Ö¬X³bͲ®Êº*ë*ýKÉ®W¸^ázïG½õ~¤Ôjõ¿ÇëD&{Möšìez§×¬Z³jͪü]H9€ €VïEä‹È‘.Õ]ª»Tÿ£®¸÷I¬•<€©AX‚ñ#Æ?´îòkùµüš>§å@¹«ÜUîöJ×+]¯tÞÛ½·{oÏÕýX¦½V¾3ùÎä;ój端vZû{Påå•—W^N Xù•üJ~å¥z©^ê×݉îŽîŽîŽ‰Õƒéý¡éÌ.º?ûó·?£¾)00ÀêMK3-Í´4ñùP­‰ÏC.b­äAL âÛº0á„ 2‡gÏnZwsÎY8g!õ¤d×í®Û]·«]´vÑÚE¿4ƨީz§ê’¢¹–çZžky2EfŠÌizĹ½æöšÛË6z­; ì(°ƒ°|ú˜]ó¯¤$\p‡àÁb\b\b\r†3Ì<2óˆéžõ¿úþîúw׿»RƒÛFL °zMf4™Ñd†Ñ‡g¿j~Õüª[sn͹5Œ¶4ÀÔ ¾™ô±écÓWëW­_µ~¦µ¦OKø.ä]È» H™ >4øÐ`çTΩœS%ï‚]²#¾”ývÕeT—QIwovZÒiI§% éEߎ{;îí¸Bs Í)4ÇtϦ P›[EL °zq¯û{¤Õ‘VGZ}é‡[ýöÑežX€©A|++ׯ\¿r½y­-Ê¿(ÿ¢üÔ 2é£~ãýêKoíR´KÑ.qÿfž y2äÉð^åìî³»Ïî¶ÿÎþ;ûïL÷¿¶çÚžk{ÚF¯¥_£QIÞŽ¸q;‚V XóvÍ•iZ¦i™¦k†­¶f˜Þ»ê_°Óÿ½zòêÉ«'—î_ºéþqïgJ)¦HÈÙÎk7¯Ý¼væ{ÖÏÚØ*``€Õ³aÿÂþ…ÑfƱY2`jÉï}Ðû ÷A汓«“«“+}&’Õ*]«t­Òæý¹»†Œ 2òa‹‡-¶0êùÍZéž¿îÜÌg|ñíìÛÙ·³>Ï6Êû¡í‡¶2/=}ÊÖ„O áî…Þ ½š38gpÎ`£ž°»OwŸî>ñ¹gõß ú=è÷ ßö¦¯¹~üýñ÷ÇÝ9ëã€j8Ôp¨aþUþnØ*``€Õ#‚¢îh Ü}ˆ?£Q úÃJêH™”»Ê]å®Q¾¾îúºëëÆ§0ýMsÚAí vðKÏÍt6S{»ïí¾·»-õZ3.͸4ã’ù•VüYñg´RÀt:H$£^®ñ²ÆË/ûâ¦M›¾ÁÉ'œ4Ú³étÓ_wæF1óBÏ…ž =©Y€í!&X="(ꎖÀ݇øÐG÷Wx\áqFÁ u¤L=³÷ÌÞ3»yÏÐ6ºmtÛè/Ý[›mr´Éa¾·ßÿ~ü÷ã_ÚÏÔ¬Z³jͪ¦û©:¦ê˜ªcl¯z?êý¨÷#ór«÷¤Þ“zOh¥À·õÏÀþ3Ðhö©s Ì1PŸªýëþšºyûæí›· çWxaÿÂþŃàÁ‚¿îüåääÌ÷l:+ µ °%ÀÀ«GEÝѸûË/?¼ü°Ñƒ?[šFÀ—òR½T/Õ¼óŠyż_Ú«‡• +VÎ|o>³}fûÌŽÿÞLnêÐàCƒ ¶½÷šºë~¬ûÑüz{}èõ¡×Þ[okn¯¹½æöŠ{Úç„¥k£®º62:Êüzóëͯ÷u½þ—^¡9…æšÃzÀ€”€˜`õ,?‚ÒSšÿý~Ô­¨[Q·f™ydæ‘:¹ê䪓«Ä7JÜÈš-4[hž y2äÉ ?BÕÇëèG“ú*ž§zžêyªU V-Xµ e•–UZV)Ó´LÓ2MóÞÌ{3ïMýÜÜÝÝ+/¯¼¼òò¡ÞC½‡z÷8îqÜ#yê.éZ5ømï>}u4}zR}ôXà¶ÀmÛ\˸–q-“uUÖUYW9ú9ú9úy¤÷HU©V¥Z•Ò':~þ2üe8ý¤®\L¹˜r1æ55<Ûðló-)™¾Æ¤yÿðÄí‰Û·/ÝÛ£šj>ªi¾·ÜN¹r;%¤×j:ºé覣mµôw1ór›önÚ»iïè¥o«Z¿jýªõ3ú»7±¾˜r`Þyæ¥F“Mj4IÈQ7ÜppCó=WR*)•ú€-!&X »D•c%Ö™›ÿ¦=„[R|h3çÍœ7sF>ùpäÃ,;³ì̲óëJÛß×ß×ß×üܬ%¦“§Ím,±±ÄÆEBŠ„ ùº3wrururÕÿ}wõÝÕwWÝ™èÓ#ÛgÿýwæGÑ#óÄA;"툴#Ò]Ñ‚ *,¨ð¥û<á|Âù„³Ñ>Ï­9·æÜšø×šµ—@«6gôÎ¥Ogú¥{»³ëή;»Ì÷–38gpÎxM^ºí¶ Û.˜Oz~îù¹ççÚ^DñÑï£ßG¿L‘™"3Eš—Û–·ü¸åG‚à[yêôÔé©“ÑäÏú—;õu|á`écÓǦ׿.c4´~>_·ûÓwNß9}Çè=èÔËS/O½¤Æ¶˜`5l5Ö(÷ûŠ}Å„_—þ"áõ¬úËÄ*óŒ·3ÞÎxÛôÜl#¦·ÌŸG=z¥œNÜ»Þ4Þøºs0mÀ´ÓŒö:%tJ蔄ÔÚÉŒ'3žÌhZΦô©A¿îñbŸ+}®ô¹b¾O}lzJ+ €VmÎó´çiÏÓægµõÞÖ{[ï}éÞÌã[~”¸_«Ïú`:Y´®Ë¨.£ºŒ²Õ¶wÝîºÝuÃ÷¯SߟúþÔ÷ÀÀ·¢IÈèm(7”ʉ{Ä'œlpÒèˆá{Â÷„ïIÈþ=b=b=>ó—¼é'ê`í€ €VÃVàïG¼ñ>q¯îKר3¥+Ü9Ê9Ê9Ê.É,ùiÉOK~²˜L¬2×'-[¬l±²Åì’˜¾ŠÛ—ž¡>¢ÚhŸ9æ˜cà×]{tèÑ5|;ûvöíl4iª>‚ùK÷¯A¡àÊ‚+ ®4ß³¨|Ý9[ci@y ò@䣵Ö>Z›Ò Uëô% ÌÏ­ÜÊý§ÜâVz|[ñTÅSO™ï­[ån•»UŽ{úR¦¯Òg°¸uöÖÙ[gmõ®7ZíX§/âÀ |+¦+ïš?büˆñ#·w7uÜÔqSޏ(ÿ¢ü‹ò'䈖tZÒi‰ùž +<®ð8¾`° ÀÀ«Ñ&ÇçâŽyŒ^÷±’'˜<8ñàăÍ' pppØœysæÍ™ÿøÏÀêkÊêß=מÆ'âZ=yõäÕ“ãžÏ2<Ëð,ƒQPdJõuCõ5bõ‰È^¯|½òõÊ‹ƒ.º8hÖþYûgí×ÇM_fí05˜Xe®úʾqï³î/u©ûËšak†­vãÅ7^¼ yò.D¿öcÇŽŒ>6úØècΩœS9§2Ú>Ñë®ù»æïšÿ¥íáp·ÃÝw3Ús­ÒµJ×*ý¥%÷c¾ å7”ßPþëZ²ÞJãžl6!÷ˆu•tëÚ¬k³®yÙê!%å“2[µ¾ÎºÑêc£õiŠö ÝD_?Þh?¦1§ù>4ÿÐüCs777ÓW…Œ 2Ò¶[ÝBÏ…ž =20ý͈µk#Öö_ÜqÿÅúÉùµüZ~MÉõ÷¾’+J®(¹¢ñ²ÆË/ûkø_Ãÿ~-ϵ<×òpw_Çh&ÝÚžk{®í™¸}¸þ) î>9!Gœ×n^»yíŒö¤Õ‘VGZQïkGL °zIû%O0iþˆ³óôÎÓ;O×€Æ}¬å‡—^~8îólÖ·Yßf}ãΤR)î}êÕ|TóQÍøìYç’b”vò´j0yjpZšii¦¥‰{ßÝ“vOÚ=)þû×ÇKÅ}†ùÎä;“ïÌ×µ¸CŽÅYgYœ%>û9»ûìî³»3‡gÏn¾Ÿ¶?·ý¹íÏ i½C‡ Œ{ZÑ„÷ÃÖRÐÀ¦_yØâa‹‡-Rr)¥ÌV]³jͪ5«]u…ë®Wøwžâ{¡÷Bï…>~ü Xÿ2M•YUfU™eôÚêªwªÞ)5j8ÔxìÿØÿ±¿míè¯ÖgÅ0Aþ¥ô¯yÑñgúÕs¦D'ÖÕóêyõ¼á"?ÖýX÷cBލÔhÿú—Dù²ÀÚ¬žõÀ¦ôÉõÑWñ?Jí¢µ‹Ö.j´Ï¢]Šv)Ú%>ûÑ'Op¨þùºrøÒUr-¡%PƒI]ƒú”§YWe]•u•Ñ„«ú¤Ö_YécÓǦûùpäÃ/ÝÜѸZĽO½.L§W5UhN¡9…æè#³Ò†öŸ-4[h¶ÐÄñi-¥Ql>énâ~QÀº¤ÌV÷J´ YÛþªûU÷«îFWªO¾m>ƒERL¬j™Z4nѸEcóÒ3zLˆL‘™"3EÒ—ñçWͯš_5£{*)FØ›ö™æôÙ†²ýëªF=Œé4þÔ>Àz¬žmÀúD[_ºÿëv®Û¹ÎhŸúx£øì§ã–Ž[:n1ÚþúEä‹È z\¨Oókºº­-ÀÔàוù˜°1acÂâc—ð|ô>è}ÑQôÕ7¿î('œO8Ÿp6Úsýkõ¯Õ¿f´ç)¦˜RÀèµûë쯳¿NB®ýÕÎW;_íÌx;ã팷Í÷_yyåå•—'nolÉ¥SúhÂìã³Ï>þ뤸§¶%)³UÇ= ö—F¿æ˜w`^ÜWj^Vú /Ã_†¿ O ÷~bîýRúD²ôŠ@Ü$üz¥LR&)“ÑY j?¨ý öI«XfiÀœ¾r¶^ήe\˸–‰h¤ÏO ÿ[ï…l»¬Rf«NÈhàMj4©ÑDw?ó<êyÔó(=*6݃¾rmÊùÚGÎàœÁ9ƒã3rW_îaÏÐ=C÷ ½uöÖÙ[gõÑêzIžŸ{~îù¹zéécãS_K~ZòÓ’Ÿè#F¯êô¯ª$î£nEÝŠºetÄ"!EBŠ„$ü(¦k ›Ó§¡¦öÖ‹˜`õ¬=žØ`bƒ‰ ¾nϦÝÙn?´ýÐöCF¯uNåœÊ9•>EXbÕ×'ÇOŽŸͧy´Þ˜üº3?8ñàă^›Ó~ê〲Ïí5·×Ü^_wD½„Ë4-Ó´LÓ¸G른-p[à6óßÔÇ—¼^ùzåë• ¿ö™Gf™yĨ„r½ÖXˆ›þe ½œë䪓«N®øG}útâú¿õõnm¯|hÕ¦Wá¥z©^ª> ¶Þ£êcÑzêQ¨G!}|¹é«âÞ³y¸îæâæâæ’¸ï\–L_G9Ä7JÜ0]³3^»6Y!õ¯‘éSÎÒæâþŠFRôWú>Žèäêäêäšð£ÌY8gᜅFG :%t ƒ¬00ÀêY{¼9óæÌ›3«³ê=Ô{¨·Ñk{¥ë•®Wº¤¨µø¬&k -Lºœ–fZšiiwJíø¨Ö¯Z¿jýÌØ6ºmtÛè„Ñt­bsÍú6ëÛ¬¯ÑÿµaÿÂþÅ¡Á‡œXW­24:âúºë뮯›tõ,­4’ÿÝçÛJÜ«ËÕšSÿ·>E­µÿÕaÛ­:9õ_ÜqÿŦ¥Tºéþ¥ûë±G|öpwõÝÕwWO{7íÝ´wú—{ +<®ð8}<«>Eªþßõ¯Ýޏq;ÂÒÊA_€``ŸÏÿÜ ½z/4±îëÉ^“½&{µ^}Íø;»î캳‹Þ•˜ØTŽ9æhtVú3‰{Ä·ãÞŽ{;ÎèˆÙÇgŸ}|²¯õ¾ÖûZ¥îǺë~$X/``€Õ³öX|ù­J@Ÿ¶Ñ赑"DHŠýúãNÛ€©Á¯;sßξ};[Î#Eý|^2ý>ú}ô‹ÿÊ‹ú¤²I1y ¾Ž²ÑqO8Ÿp>áœÔý³å”Fò¿ûØì#r“Iemm´µÑVûï쿳ÿ.>geú]_%×ÿê°íV<ô•kÍW¯××µ» ë%©ê¦ÓLJé4Èúº¹)­äõ«Î{3ïͼ7JiÉÛ%o—¼ý¶‘*çoip~-¿–_3:+}½ÞÄ=âóTÏS=OetÄ|gòÉw&áG9p,àX€ÑQô ÿyÏX/``€Õ³ö8áÓc&älõÇF¯Õ§gLŠZ‹ÏŠw–ШÁ¤«Á¢]Šv)ÚÅr)êã«|ÎÏ=?÷üܸ¨‡çÖœ[snMR<Ö,°£ÀŽ;ŒŽ~ã»ßÝø.yziK(ä÷I9ȯ幖çZý¸úª„_wÎñ÷i lµU'àÁ‚;˜–U•YUfU™÷«ž¸=q{â¦ÿfÂï‘ ×+\¯p=eÖËà†ƒnhT2mr´ÉÑ&00ïn¦ÜÝÝ 'd~TóQÍG5÷ˆÿ ügà?†cŽõóIÜwpsúœ ¼g¬00ÀêY{ümKÀh²Ê¤›ÐL÷´fÖSƒ_wææë>~[ÎQÎQΉ<9íèc£>ftÄ®º6êÚ(éúƸ§+LŠÑ*–\H¯W¾^ùz¥^§¥Æ–[jlüïAÓ1ëÖr½´ê/u©å¥–—ZêS ›–ÕÁ‰'œhTûú¨ßÄŠ~‰wOÚ=i÷¤¤ž°%qÏ[£÷l‰{Ä .L¸0!î¹%~}É££8Ôp¨áPƒÚX/``€Õ#NÈþs5ÏÕ»ûìµ‹ƒ.º8ˆ8%× —ê¥z©F¯½yûæí›V9æàhí£µÖŽÏHGSóÚÍk7¯]➉¾r›Ñ/׺\ër­”SøVŽ 8Ðyzçé§g]•uUÖUÖÓª¿Nýkõ¯Õ¿fZ&]FuÕeTܯššujÖ©YFýê_rŠk‰;žönÚ»iïRBT¯ÏbTú׳è»Sóëͯ7¿žÑ]3êò¨Ë£.'nï÷ú{J¨ÿ5htýk¦Ô>Àz¬pBößhk£­¶&ç÷ÙuÊo(¿¡<pJ®ÁMj4©ÑÄèµÇ=Ž{÷°®¾Hµ\âF‰%n˜_Q¹ÿ”ûO¹ÿxžö<íyÚüÿš®ˆœXçã½Ý{»÷v£>ÒêH«#­RNi y諃/?£lë+$IDAT¼üðòÃñH«õ«Ö¯Z¿ÃÝw;ÜÍ2kŸVý•O!ö„ï ßc>å¾þEŸ¸Ë¤ê˜ªcªŽ1/Ϲ½æöšÛëëÊsÖþYûgí7ß§é»’m×Èýñ÷ÇßÏÀ@üɯäWò+£»¦î/u©ûKâö¦ûṳ̈Ó&ç“£˜¾çšó™í3Ûg6µ°âO"ÀÀkGœý1~ÄøF¯í™½göžÙ“âaèÀ>û ìCœ’kÐtÍEs[Þly³åuõE¦Óñ™O§©ÆŽ»Äj•®UºVéΝ†rC¹¡lt¬=C÷ Ý34å”Fò¿û|[ÉY×ò\Ës-ÏÀ!CódÈ“!O†øœ¡>8¸Cp‡àgÎ9wæÜ·:ZuR«¼¼òòÊËMË!ddÈÈ‘ñym¡9…æšc^’§ïœ¾súÎו¤þ#ó} )R$$9KF¿ŠÅY>ÿ£/µÇX±6b­Q+m¼¬ñ²ÆËè]Ò»rþ¶ñîfJ_Y\ÿòŠÑTÉŸ?9~rL„ƒ¥M›ÞÉÕÉÕÉÕèçyÔó¨çQ ?ÔîI»'íždɽ AL °zÀ Ùÿþ:ûëì¯côZçTΩœS}hþ¡ù‡æ‰U_úѸW®%N 5¸í¶ Û.½¶yÇæ›wL܇}wvÝÙug—>i¶ùrW¹«Üýº=K™¤LR&Óµ-Mé!½éï÷~ÔûQïGF×¾(ÿ¢ü‹ò'üzõˆÅè(«¬Z°jARôÉ–YÉÿîc«Èõ@dÜàdƒ“ NÕµ9}Zò‰ &6˜ØÀtqËÿK#å´êĵ·ûÞî{»›^»¾6yükß(nÑW±ýº³Òƒó}êÇJÎòÙ×z_ë}­Ú‰éô׉{\ý4:îì ³7ÌÞðmïMTÎßÒ`]Ü£rò—ä=¹5›5Á|´qb]‘é\AæL¿îÉ3€5"&X=à„ì_ j:5¥¹Õ“WO^=9±êËüq0pʬÁ'nOÜž¸éãÌ_kº¾fb¹Ñ˜c=ÔÑÏçK÷©À0ŠÃõ‰4£kD׈®aúª‘/"_D•›$üÚã^¯ÎtÔÄ*aK.ä÷±¥Gäz\7-Í´4ÓÒ¸–q-ãZ&þgRI©¤TR6–ØXbc ½ö­ëQrJkÕ‰&}lúØô~ÕüªùU3ËãíFk™ŸÌx2ãÉŒ_wj¦£‡M飓³^¯|½òõJ£Ût²ñÄ:¢þ£iÌuç瞟{~.00°¹Ð)¡SB§›¾®yÂϳk£®º62:JB&À77óÈÌ#3kA…T X/``€Õ#NøþõI8ö`:cBÎó£ßG¿~újRÀÔ î·«¿]ýíjR?J{žêyªç©Œ&ÓÓª¯Ûs§%–tZb`ë…ÑùÇ=í^Ýu?Öý˜k×Wù5Ú¯t½ÒõJ—¸õ,¹4’ÿÝÇÚ‘­}´öÑÚ§wžÞyº>]s|Ž«¥£ã–Ž[:n9á|Âù„³åOìL«N zäoz½ùÎä;“ïŒéèÛøì§z§êªwJÜQª¦ñ‰)}½áä/+Óµ‡Ím?´ýÐöC‰u¬¸GûU¸^áz…ëô®¨ÀF»úîj£sËš-4[èïn|w㻯Ûÿ­³·ÎÞ:›c`Ž9ÍRp/ô^è½ÐÄ* Ó¿Íé ¬00Àê'|ÿqEº&3šÌh2#!çÜqÿÅý'Ý#ž”[o |hð¡Áqïgé?KÿYúÏ׳>2ÏtÝMs¦AEü÷÷Ö#Þx?â}|öÓîq»Çí'ŵëSgŸ}|öñæ{6™—ð6lù¥¸½÷vÜÛqË/?¼üp€C€C€Cüïô; ì(°c좱‹Æ.zü øA°m<,¦Uý«BæcLÿþ×ð¿†iÛ˜þ`úƒéÌËM_ààK÷ö¨æ£šjêQ´ù>§½›önÚ»äo½+ö­Ø·bŸQ 1ýêRBŽ¢ë5}nÎtQ zEÀHÜ“ü7ÚÚhk£­_w™¾Öœ¾}â^‹ù< :ý¯Góù-°.ÀÀ«GœXû{,æ×…ˆïƒÞ½úÒà8¥Õ`܉ý ûö/þÝgúØô±éã³Ïgžex–¡íÏmnû³ÑžõÑÌz\ÿ³}Øâa‹‡-òÞÌ{3ïMó}z©^ª—ú.ä]È»ø”ƒH¡£Ÿ£Ÿ£_BZšÑØ2}ü¢>iBZ¯u•L]Ës-ϵ<ƒn8¸až y2äÉÿ»»ÜÊý§Üôéåõ¯ØR½ÐªbÉÛ%o—¼5½F777—¯[þþøûãï7*½jýªõ«Ö/þµ`ôe }ÜžéØ¾ä,1}Zæ²ÅÊ+[ÌèJ=b=b=b¿îÜô‘è¹r;åv2Úýkõ¯Õ¿F¯ÄÇ]wvÝÙ÷»dB= õ(¤ßÝqï-Æ%Æ%Æ%îiŸõ>Ê´?LøUèš.¹bJï-©k€µ#&X=àÄÚÜ©ÿkäM”s”s”þïãÇ=Ž{ž§=O{ž6ßCͪ5«Ö¬JL êô£ÇçÌK®(¹¢ä }O}<“>¡¨¾FéÁ‰'œ8Ùk²×d¯¸vgŠÌ™)2îé[4ëÛ¬o³¾FAõán‡»îö¥ûÔƒ4£³m(7”Ê_×Þ&ôžÐ{Bo£=G¬X±6!­×ºJº]ówÍß5__ý:>÷~¿´nÝ6Ú|Ծ항úë衸ùzÉk†­¶fXB®nÔåQ—G]6|G3 ¬÷ê¯v¾Úùj§¾Ö¯þ^fçëôýÛÒ‹ÏL¦ôêçÖœ[snäè+O_jy©å¥–K~ZòÓ’ŸLr#úªÞ¦ïÂô@|Ľ°NÿbÇæÌ›3oÎ|;âvÄí½ŸÔ¿€¥OÉ^ºéþ¥ûǽ}-ÞÄ=ý/@£#þùÛŸ¿ýù}ÀÚ¬pâîÿKA~)ïíÞÛ½·ëk²Sƒ¦N}êûSß'õêqz„³¶çÚžk{~éyÆ=QçÀ>û ì“– Á2Ú¿þ ðK÷©ÇäFû4^õK÷l¥ݺ6ëÚ¬kŸ¯‰Œ|8òáȇßjddò£U'„麼:=؈ϸ¸éÓ&Å;‚¾Æ°éþ¿m†• +V.yÖR-Ö¬X³bÍLß#è/÷ÈÝ„ës¥Ï•>W’âÌ&Ø×]˜paÂ… ô kGL °zÀI±ÓN‰¥ÔØRcK½ñâÆ‹/˜š4rqÐÅA%ÅC4}%Å-o¶¼ÙòæKÏêÖÙ[go5¬õ¿&çLï‘Þ#½>~:!×®ÅèüMÇ4éžÍ×ãÔµ.ÒºHë"_ºOk/ Àeš–iZ¦é²‹Ë..»ÿ)Žm­:!ô™Ì×ÖÝ3tÏÐ=CëŠô‰ý7ú5ݧ唧rW¹«ÜMºH)p[à¶Àm¶´b7ð­˜.‚¸L0mÀ4}™’¤¸OMÿ4_怚Ø``€Õ#Nºý›Žò4]‡õKG[êß^;îí¸·ãLÏŠ˜4bz¬s Ì1ðëŸéS×¶?ÑþDû_9Š1}lúØôF+Gê“èªçÕóêùÄjú„¥FWÔttÓÑMG鱌&P-¸²àÊ‚+¿`o6QÐ`}å¿–UZViYE;¨ÔÚöÄδê¤c>Õ|•YUfU™•Ç2­›}|öñÙÇÇÿAÿ}½?´œQ¿FL¿„ñ¥«t›swtwtwÔg¿ÐÇdÓs‰KŸ˜Ý|üøÓWLßÛ}o÷½Ý“ú]¯ÐœBs Í1?‡ÑÇF}Œþ`€ €@¼ü3ðŸÿüÂ58Ùàdƒ“új¬ú¨Jý¡ªG¬G¬G¬>ªfjÖ©Y§fM9‡RƒIG[¦ŸC©ƒÔAÒ×TÓ]eÏž9\9§Ÿ¿hÍY8gᜅ÷Bï…Þ ¥^·»nwÝð£nq¤Wݯº_u¿yûæí›·¹;úÚ±æ#§õÙ“ºuÝüýñ¦#z +<®ð¸,;³ì̲S¨:¦ê˜ªc¦¥™–fZë}G0ØoS¿Mý6éëûVüYñg¹šçjž«¹þe)}´ºÀÏ6<Ûðlæ˜w`^ŒKŒKŒ ÷;ÔL¿`ô{ÐïA¿Wî_f“ú>5ÿÊ—é—>Mgú¡6ÖŽ˜$HÒ‹5øugN 4b´þhwŸî>Ý}(7¶úŽfÛýõÞ­É= õ(Ô£ù™4ÚÚhk£­ÔÀ–)ÂÎu;×í\g´:2€­zô>è}ézóI·j;–€˜Hôi K-5¶ÔXóO[ïm½·õ¥`{ô¿ôÌÿôíìÛÙ·³>5¥°%ÀÀ@ ²åÍ–7[Þ˜"hѸEãùñÿÚ»ûèªÊ;Ñãjtì¥k0)Ey¿ˆ”‚„ "H µZ[†)õej-–r%-*H´ ‽¾Ð""•A,‚0D±¨€(D¤Ê;CÅ@H Ü?âé:&ErtŸóäóù­µ‹çìóüqöþ²yÂSõ›^Uóß›ÿÞü÷| <° uIýŠúõ»ÝØíÆn7V½"h¸ á‚† ŠÏ+>¯ø<' •ßî*¿éUýî—•™•™•éÙ_B% ÀPçœ]pvÁÙ±×ÌydÎ#s<†1ÏynÌs±ßú .8ì[¡€`¨£nÛrÛ–Û¶T½.hv]³ëš]çV @²ûk‹¿¶øk‹ªßî* X>`ù€åÎa€`¨£>½÷Ó{?½7öêà6´y ó¼*¿ÑUýŽ×â’—´¸doîÞܽ¹þÁa€`¨Ó^~üåÇ_~¼êÕA£G=ÚèQ·’Qeâm|oã{ÿÝ?õ›yçÌ;gÞé;u,·?tûC·?TõaøÄá‡Otf’Ë=Sï™zÏÔªßëräÈàÌPwÀ0PqäÅ#/y±òê +3+3+3û£ì²?òŒ@²8¸óà΃;«~‹ëóÍ>ßìóͪßôœ%êX! À@ `„,€` ° B€€@À0X! À@ `„,€` ° B€€@À0X! À@ `„,€` ° B€€@À0X! À@ `„,€` ° B€€@À0X! À@ `„,€` ° BþÜŠ?žò¬ŒhÞhÞ‹hÞhV}í³:¢YÑ|Ѭh>Œh>ŠhÖE4ë#šÂˆæã¯}6D4ŸD4#š?E4ÿ/¢ÙÑlŽhþÑl‰h¶F4Û"ší_ûìˆhvF4»"šÝÍÿD4{"š¿D4ŸF4{#šÏ"š¢ˆf_D³ÿkŸ¿F4Å͈æ`Ds(¢ù[Ds8¢9ÑhJ"šÒˆæXDs<¢)ûÚ§<¢9ÑœŒh*¢™wΈhÎŒhΊhR¾ª€‚%"Ø\É ÔÁà¢ý¨èG+ÞùÊæ=‰íFl7âÄ߸îìC\wv ®;{ÑÔ½‡ëήÃug¿áº³Ó°=†ÃÛ]8ª=†ëÎîÂö¶£°½„í"lá¨v®;ûÛ9ØžÁv ¶O°}‚£Ú'ØÁöNø]‹r‹r‹rƒ}€¯‚  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!@d>¬÷a½ëÍœ:sêÌ©ÃÖ [3lMå¯N ‘y¡÷ ½_èÙàôÀ€ø€ 20ñ%@d`âK€ÈÀÄ— ‘€ˆ/"#_0DF ¾`ˆŒ @| À€ø€ 20ñ%@d`âK€ÈÀÄ— ‘€ˆ/"#_0DF ¾`ˆŒ @| À€ø€ 20ñ%@d`âK€ÈÀÄ— ‘€ˆ/"#_0DF ¾`ˆ³={ ö¼¶ñµ¯mÌ;!wBã£6>šZkR:¤tH¹{äî‘» † /^<»xvñlç€J0ÔÊö”í)ÛSƵ×~\ûÔˆt¸­ÃmnËÏÏÏÏÏßßqÇý}.u“ _BùîòÝå»—´XÒbI‹ŒAƒ2¥&¤›roʽ)·°GaÂååå>;€º@€à䨓£NŽZ0bÁˆ#je{Ô뼾ɜ×÷Ÿú/S¦lÒ±Éë~âÌË~P°ì÷×w)[ñà³÷t¼¬Ý¤kº |uÁøc[=õ»ã;t¿ãƒ6¶^Õ~c›'ÏŸxzoVIVIVÉú3ן¹þLŸ&@Ø`¨VáÈ‘…#Ûujש]§S®7¯¹v\Ë¿-|å·ÿqÙ‚yËg÷ZYQ±zuïÞñ:nx~Ûm§ÿæá.ßܽ說5ù1øÖ¼[ónÍûlÖg³>›åó çØÎc;íÌ{<ïñ¼ÇO%©^~Å%E^]¼íÉý—ÿ*¾¡÷Ôe¼—“Ókê¾¼©Ÿ8õüÊèWF¿2ºâPÅ¡ŠC>w€0Àð¹mý¶õÛÖ¯Y^³¼fy5§Ó¾uUó™ŸLœýóî{£Š¾ÕO,Z•’óö²E“uÓ¼]“> þ©æ÷rËÌ[fÞ2óðs‡Ÿ;üœ5ì`¨XÞly³åÍj¥-ïj¶£ÁŠöMŸ’y4Ñ¢oÍǹÃÇŸÑiSÍï.mkÚÖ´­;î¸c õ¼`ê´—¦½4í¥i5Çѧæ˜Ò᪓w¬šS”\é·êñ`Û‚Œ^ûü¡ï5eÔü~×e¬ËX—am$#€:jráäÂÉ…5§Ð[ϼ¿û-É}«;¾:}ü¾Î-j~ï«[­nµº•u\`êœé9Ós¦çT>³Útº¡IÏ=–èõFxé·êqã³e¥Ôœ×oY¿eýk YÀÔ!K–.Yºdiu±óæƒ×¾Ô²ìøèwGå|#ìô[õø—Á‹~ÛsqÍx׋»^Üõ¢õø`ê„M‡7Þt¸ºÀùÓ3®»ÿ®'~øþ¼œYu'ýV=îûÆ›í¯ZQÝùi2¿Éü&ó–-;Zf-$2€À• )R2$-=-=-=6möÚÞe}ÓÇÊRß-Îi[7ÓoÕãžoLêyWux`ÙÀ²0@B€ÜÐÎC;í\]Ô<4ì­NÙ]¤ßªÇ®3Þî~quglÁñÇ·®€xY8wáÜ…s+¯8ÆÌ3cÌŒâkН)¾Æ™9=0ÁZµgÕžU{ª ™*šÓ5ën¹·ºãŒMcŸ½ô©êÎ^qiqiq©5ÔÆ‰¾'úžè[Ýu‡|z`TžYžYžÙ°Ãþ ûÇÞDxþŽS:ΕxÿÁ±xõ²Þ½nhô½é-›ÇžÃ!ùCò‡ä[i@mT}ö·fbð©€ÐË£^õò¨Ø[—kwì‚ 'ǯš™sHâ=•cÑÖ7¿yÕWw fsÑæ¢ÍEÖpz*ƒneÜM=ebpÍ`‚Rúf雥oVw›`ã5³‹³Ⱥ_ö8mðƒk:~{>ûÛïÜ~çZu@í‰Áñ"”Yé³Òg¥ÇÞ°¢ïO.ê$åžÞ±¬é»%9éÕÝpÙºkë®­»¬= ^ÄàÚ€ÄÉy'眗Ö-­[Z·Ø;þðzÃ¥ÜÚç¾?þªNûcÏíÝCïz÷P+ø*ˆÁ_– @ Ö]7vÝØØËþÝ™=±E±|[ûã±I+ß»úãên¯Ù{dÖ!ðÕƒO… @ o¼að†ØKýU;^èž)ßÆíøŸCﬗ>*ö)ù¤ä“’Ø‹ùûþâ¡‹Û&D:­¿ú¼Þ©wýtZ›ö©_Ò§×Ë\@xéêI½»\бa~Ú+±¯¶t_é¾Ò}Ö$1X é=útêÓ_p¿æŽü!™S!šN8ÿ׿n¿¢êk»¤[›ç¿üûþ#¿ŸÑgí…ÓWv;«òÉàq·ÝùÇôùÍ»7¹µA½ª?à`ÁÙ½¶%N~ô™_ý,ýºØs¾!oCÞ†ãó7>oe‰,ì,ÄdÈ:{Y~ûì~Z7L„Púl¯Qog,=½ÿÌyMüë3Ÿúçøœãs`¨•D~øøÍïþüꊱOHOm¸àÛ÷§ÝPùš[ž×ìÉs&ž;4£ýñcƒVN¿úýÊßOä€í `€šÕ¡'€ßI1ÆcŒ1Æcj;ãîwϸ{b/°sà?_ùêº+/½lþ%¿iôDåëlPØà¬ÔÏF_0°¸m› Îîµ-ñ£ï©ìlecŒ1ÆcBš7î{ã¾7îtÖ ³uêé·òçëÐÀP{+ÏYyÎÊsb/³—žñÌÏ»\”8¡tû¡ùy=zµ»½õœóÏ®|…•¿~÷±©S¯x¤òg’+ýVïluóÝßy,öü[™@²« ·cfŒ™1fÆ©GßÊŸÿú£oU0IlóÚÍk7¯½ä~¶õ¨Y '”vÿþ¥³šÔ¯|mW¿uŵMKÿÚbéÚ^Ý“1úV=ö\vy›¦©0†ä¾U À$±Y²dÅ^~ß>»ß€Ö !‘.k5©W—•¯*íÌÔ5©½·¶|íÚ+§&{ú­øþêî½›Áþ©ýSû[™@²#úV%ÄN¬=±öÄ<Ütcãï}kq"„Ò_Îû·ú ª|UlñÏßnRùëgþë¾æ|ÙcâàC™o“Ý.öÌßøüÏßø¼• $²ð¢oU0I/»~výìú±çG¯¸:û£ˆÿ“ä—ߨ´Ejœ$Nþààôi™%±¯pJ½)õ¦Ô³&€Dvô­J é=útêÓ_p¡¾æŽü!™S£ ¥-Ïködƒ9áàGŸùÕÏÒ¯‹}…ò6ämȳ&€DPw¢oU0Iï“’OJ>ù‚§Qï[ø‹‡.n›Äûì&æqéêI½»\бa~Ú+±ç¼t_é¾Ò}Ö$•º}«€Hze“Ë&—M®î2¾|ÆûrnãuÜÙèõ_öx8ö<÷y§Ï;}Þ±€¯Ÿè[• @ o¼að†ØKúU;^èž)ÜÆíøŸCﬗ>*ö,úÖž @àJ†” )’–ž–ž–›3{mï²¾éce©ïç´•~÷txcRÏ»ªK¿Ë– ,³¢™ @°éð¦Ã›W—6zÆu÷_ØõÄߟ—3«n¦ß}ßx³ýU+ª;?Mæ7™ßdþѲ£eG`€„&P‡,Yºdé’¥ÕeΛ^ûR˲ã£ß•óº“~ÿ2xÑo{.N­Ñ®w½¸ëEë ñ ÀÔ9Ós¦çLÏ©.vfµétC“žz,Ñë°ÓïÆ3f/ÊJ©9ý®ß²~Ëú-Ö @²€¨£&N.œ\Xsþü¸õÌû»ß^ú}uúø}[ÔüÞW·ZÝju+ë ¹ÀÔi/M{iÚKÓjN¡OÍ1¥ÃU'ïX5!§(y£ïÁ¶½ö øCßk.ʨùý®ËX—±.ÃÚHF0T,o¶¼Ùòf5gÑ–w5ÛÑ`Åû¦OÉ<š\éwîðñgtÚTó»KÛš¶5mëŽ;îh=$/>·­ß¶~Ûú5Ëk–×,¯æ\ú÷®jÞ"󓉳Þ}o¢åÞ‹V¥ä¼½lѤE]Æ4oפOƒªù½Ü2ó–™·Ì<üÜáç?g $;þαÇvÛ™÷xÞãy§ž‚˯¸¤¨Ñ«‹·=¹ÿò_E}Ëx/'§×Ô}yS;>‘zÊ^ýÊèWFWª8TqÈçªU8²pdáÈvÚuj×éÔÃêÍk®×òo _ùí\¶à@ÞòÙ½VÆ7÷nx~Ûm§ÿæá.ßܽ說59õ—–zkÞ­y·æ}6ë³YŸÍòù„G€à䨓£NŽZ0bÁˆ#Rk¡G½Îë›Ìq}ÿ©ÿ2eÊ–Ñ)›¼þç'μìË~}—²>{O×ÉËÚMº¦ËÀWŒ?Ö¹ÕS¿1¾C÷;>¸acëUí7¶yòü‰§÷÷f•d•d•¬?sý™ëÏôi„M€/¡|wùîòÝKZ,i±¤EÆ ŒAƒRÒM¹7åÞ”[Ø£°GaŠòŠòŠrŸ@] @­lOÙž²=e\ûqíǵ*÷v¸­ÃmnËÏÏÏÏÏßßqÇý}.u“ q¶§`OÁž‚×6¾¶ñµ¹r'äNh|´ñÑÆGãzS:¤tH¹{äî‘» † /^<»xvñlç€J0Dæ…Þ/ô~¡wlèuf8=0DF ¾`ˆŒ @| À€ø€ 20ñ%@d`âK€ÈÀÄ— ‘€ˆ/"#_0DF ¾`ˆŒ @| À€ø€ 20ñ%@d`âK€ÈÀÄ— ‘€ˆ/"#_0DF ¾`ˆŒ @| À€ø€ 20ñ%@d`âK€ÈÀÄ— ‘€ˆ/"óa½ë}XoæÔ™SgN¶fØšak*íÌpz`€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@üh$M!ÊÉ[Ó%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/first.png000066400000000000000000001045631431412030200245310ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTwÿ¸}Mr'+*‚ì"ŠJ+ö{{‹±ÄØ{Á†Q‰½¢ÆØ+vw:ì]c b,Q¤üþØ|ÏÃý¬ËJ²Ëp½æœ9žDpwö=Ÿ.v'K2@²p@À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'ÀXLì›Ø7±oŽùó=æ{´áцGÞ™qgÆiqîö¹Ûçn‡ ?~ðXıˆcIÑIÑIÑ©3®Æuø†×Ž X›ã厗;^.¼]x»ðvAAA`Ò’¬$+·¼nyÝòZWv]ÙueÛgoŸ½}ö¼é¤öÉÚ'kŸœ2/d^ÈYå¬rVyçùÎó'ЇWÍ_5ÕüèÆ£nœºzêê©«=‡xñòù«Gþºùëæ¯ÛË­—[/·m¶MØ6áAíµÔæ˜zb<¯ç¸ñ|7žûŸ¿†×"ãºd\£ŒëÇ>Öã ÇAƒÂr…å ËõýWßõýWE&™PdÂç¯Õ® \¸6Ûbl‹±-¤.R©Ëólϳ=ÏÆ1 s"ðYÎý~î÷s¿®=¸öàÚy-¤y®æ¹šç:¼ùðæÃ›ãFÆŒÉãX¿—_|9p[ám…·öuóuóu³Ô29Ûäl“³ÝØwcß}<.@FaÂë=¯÷¼Þš74oh^k6þøøãã?²}dûÈ–G °7†ÝvcXŸ°>a}¬sõ(¾¦øšâköÛSlO±ø¥ñKã—ò¨ÖÀx>ÏMãyjkˆq}3®u¹÷w©äùkèªÉ.î‡Æ ïYnn@ªsŠæøœµkKÉ-%·”L˜™03a&&ðo2žwÆsðsÎâÂuÝ}«Î)ý컋½"Ëßï«MvqÏ?ümH¥Ê%Æ[>·òìqÂJŸJ=FÛ/™^aèàKsæ;{vûnD½â‘9[÷.ÐÕam‰yŸöï×=ãÈ£ @¯’.%]Jºt î@ܸÏY«Ëœñú®y­V}rת÷ôee§t³ô•K•^M×;¸–î½kÃL×=½×z•?ѹÿ¢6ÎS[äŸx¶L¿¦]:žsïì_ òßË¡°oaßÂ糜ÏržŸÀ'"Ã:ñÔÀ‡D$G$Gì=¿÷üÞóû-ôOöž;ËF+×*²ªGâ“~ëÎ$'÷ï_¯^zí/_îÐÖoúÏoj|çj(œ=ÿñ|ߥý¶ÛÛÛÄ•Œ+W’øç¼Øübó‹Íƒ' NHûê¾Äyª]ÿUU&L¨øúÖŠ]…ýë''Ÿ:U¯^zícˇ®›ËÐrñu¯„^M¾{WÊ>í·­ wAï‚Þ«#VG¬æñþñ/CVG¬ŽXm<ï>âüõê”ÿî]%ŸQ!‹¯ûu\±%¼°¿ÿÚµ§N¥×Þû‡àr» —÷í½{„‚­JvžšöÛf\k#/}¸²æÊš+k*쬰³Âδ¯‡•74\dIׇ˶»´3"âd•S¦\»æå•^û߈C+un·iî·NÏÊõ.n”öÛÖ)¤SH§§¥Ÿ–~ZšÇÒŽ ëDà¿DDD4¹ÓäN“;iù&¹ë(·Ú%ŽŸóiW£Z­ô ½iß?É8¡æí)ßpçø­ó³«Ï®>KÈÒÙ¡~‡úê—ö3qq‘Q/+tˆÍž¥î×é›{Ó¾Wί(åSµndÕE’Órz î5¸×›ñoÆ¿Ï#¤ã9e<¿Òôº^_÷ÂU{T®7öñŠRézÓ¾÷kµbqxçÛÝ{Žz™öuϸNòˆȈâĉ?2­Ó´NÓ:¥éWsV¹¾¶]è´âŽ‹š¾¡7íûI—/?õÜØæÈ¬mN Ó¾Voî²¹Ëæ.ÉW“¯&_åq€Ô€aÀüM¶‘md›´|3<ÚÅÛÃéÜ“¥{j&X*úšÛǶé}¾®]èä€îiºÂhÈ‚! ’Û$·Inà Ÿ&nvÜì¸ÙC‹ñtQ°Ý˜šƒªü¤¿ô›r?¤èCîR_«Ï8wâÜ fÀ°N`@&2­ù´æÓš›ûöuñ»ÚM+ÌÑwô5ÝWZ¬ºÀÜ1ñLðLðLˆ‹‰‹‰‹a~™=kó¬Í³6©ÿìö±Ý_ùÏÖwúM¹O|p²LÀé¡§:Ï,[ÆÜ1ÙR|Kñ-Å™Àx.˜Í ‘;užYýjhÇ“eô~Sî½7ßÞýUêëªqíe~ü;¤iÒ4iš¹©RÙ†ŠØMì{q §›¾ÓoÊýHñhÎÊkòõ.P*ï5sGæ^±{Åîc~df`X'0 SØÑpGà Í}˺,±Î Š¾™-ý¦ÜŸjëï»ÁÜñ= z@4S„Ì)Á#Á#ÁÃçºÏuŸëæÎ‘ûk÷^¨±>ó¤ßÿÚo85½^åìr©ìtsÇçLž3yÎäa–9çßÜÙQªR“Î].ù»­xjzæI¿)÷>Kæß{ÁÜñ1®½Æu˜YðϹ}óöÍÛ7ͦßE~)â7éÊå§ž3OúM¹ýèĹ*íl䯑w›éñÉ?4ÿÐüCߌx3âÍf @æD†u"tîVÎ[9oå4÷Íü¬ŽÕ}ËÌÌé7å^-Õ2Ч‰¹cµÙw³ïf_& ™Í¤r“ÊM*gÙp§Mõ÷™4ý¦Ø'ýxrQÀ³.“šl,1ÏܱzþöùÛço™(dÆ™7wF8¾­‘£ÉÆê¯BwŸ\”9Óï½ØmN§6掕qf¢üÞ]ywåÝûõöëí×›®?eªy~eç8qãÅ›žµ3gúý¯W× ÷®<ÒÜZø(ðQà#& @æD†u"tëý¶÷ÛÞo+î_Ü¿¸¿é—b¹þX¢aò¬þÕë•'ý¦Ü¯ïZ/¦R{³¯t´¿oßžéBfpüÀñǘ;»¬*ås†ô›rÿ.þXÓº»œ’JFØŽ2=bí_µÕþUrRrRrÓKJNJN2μé¹P`«ã¢’~Q«ºkJúM¹¯>þÇU¥Ì­ºÆ5™á¾Æ8qãdnåë~*o•£¤ß”û~ÝW®âsGl÷¬Ý³vÏb®d6àô²ÇþûwaЦ MA›ž7xÞàyŽÌ§!t+¤`HÁ‚æ¾5}3¬÷Ø:Qä^sû¾GÝ•ºgzܪo¯¾½úöäöÉí“Û3cЫ·aoÃÞ†™[=~;²•Û}r¯¹}Tòþ­5]ͽCuÕ=T—ƒ¾çÜÜYP5炚û·’{ÍíG–ÙÊÜÑ3®ÏÌ€ÏwvåÙ•gWš[m~è¹÷`ÅÉä^sûN¶¿|åœÏìÜ/=»ôì3 ó ¾Ä–‰-[š{f!0@‡¢ÞG½zoKQíüš“xSß¿~Û»iæŽáÞ,{³ìå«èÖ샳Î>ølSÓ½Q¡®I¾'ûÜ%ô¦¾ß+Îö 0·†ÄŽŽ;šIƒþgÛÜäWTŒ›MâM}_ýqèÏ'ûÛ%:çrodz ë3“às$VH¬XÁ¡C‡>¦ëLËiÓlÊz“xÓ²÷´i±±èŽáÿþü™4™øó¥|íoêˆÁiÇn:ÔÕ³«gWOÓ/¦>®VÅŸ›ö}xl«A>ÏÍ}ÉõÎðÎðÎÀ¼AOžÌy2çÉs3wFXù.ÄÝ4íO¬W﻾uÜ/™ÉùÕçWŸ_yƒþgÛtæ‹®÷Þ[ÇÝßmè©“$Þ´ì}*þ<+¬¼¹ÕظV3o>ͶQÛFmûÀå*ŠF•ý©@»Éã¯æñŒ$î¦e?:áDl•næÖê뫯¯¾¾šy€?Ÿ1èãnÞ4#§Ž Е›7n:˜}ÍYµÞÇêÚu?vßn’Ë–â¦ÇsmØÚ°µ¼ #teXð°àaÁ¦Ó>ëÎà®å‘u?úí Cö·­YÀÜšüâÖ‹[/n1uÐã<››vŸ·ó÷·%ë~ìÞiJ‡ØÁ]M§q­fê|¬x§x§x³Wü4,,ÅJdÝÝ·;?·…ÓÞ«éŦ›^dêdàôE N/`€®tóïæßÍßô‹€í‚«“r?mo\ל5º›û+^ˆâf]L¿˜~1ýÌÍùëåê½:aÝOÛOºÔ¯‘ólÓ£2)dRÈ$fú`œgÓ9/Þzt¿F¤ÜOÛûåZ~@½gne6®ÛÌ€´ÛYugÕUM×ÏŠ-nBÊý´ý¤}—÷xš½šòÍ¥7—Þ\ÊìÐ7ð?‡ü9ÀˆîÝ=Úl¤|ÒW å~Ö¾÷âŠOKõ4=¶¯¼zð*ˆŒnnôÜè¹Ñ¦¾äÐÏ ˆ¸Ÿ³6Bh\» Ù_"éß1¾#ˆŒË8Ãæ&ÜwûâžBcRîçì]\{tóK{×m&@šÔJ®•\«ÐåB— ]þÀû Ì7|áþ”û9û®ŽK[¸ØšÛaÃò®QtŽüï ,0@'nZ¸iážþ×Ö¬WÂýùöó÷·ì;ëïlz„½#¼#¼#˜@d\   æ¾UxùF>W§0÷ó÷C&ušVæ†é“Ä$1‰9DÆeœaÓÙ.Ú(¤Ó4òíçï«Í^æ Ÿ3·J×pæ@ê®t¹ÒåJÓ5¤üƒšë µ%ߦÃë€í/…zš7¬¯³¾ÎÊÐ+ð¿œ`@Æg›l›lk6Þììe[ç[òmzíݯ °ezœŸìx²ãɆÑék§¯¾öëÀkYÆÎR¹ôfÓ¶Õÿëjj=ßl±Ó®z‚éqnæÔÌ©™sˆŒË8Ãø©ŠswÚ‘oÓk_"®Áôö‘¦ÇÙ¸†3‡R7\®WM×¾å6r³ÏˆÁuhÖC ÝSÞk¸UMZºéqÞ[oý½õ™CzE¶,b°9`@†húDÞ1¶üëâ $ÛôÝï—«cz´×ÿ°þ‡õ?0Ȉ†œrrÈIÓ©¾³)ÈÏŠp†ÏÀ›NͨW¹ðû&ù†~àu![_o}½•iDÆbœ[ÓyÎgWðGû&þnk¿?5ƒp›^{ÏA 6™mãÎ40'ANds?üxÙÑs8½ö?íUÆWzizœD7ˆnÀ›öÐ-°õ §DdxË_-µü•é“·¼ô»3Þ‘lÓwÿ¼^ÏŠµ'šm¿R~¥üJ1ÈX’ì“ì“ì;­è½ˆŽ!àôÝ/®4ú‹ ]?ðíñÓð§áO™Id,ƹ5gç{݇Œþ‚d›¾ûê¿®"Ì^kÙ¸ž3“LÝØzcëü²Nm=]‹=ϸo¹lxʸkg¼<ìv9æ[azÌßÖy[çmf€þ€­1˜ ÈðüþôûÓïOÓ'쿆ö2ÔB²ý'öånQ°Á¾¥üöñÛÇÌ$2Ѝ-Q[¢¶˜Nò€—í\K/³ð&ë4ß®°k®ÿ®7úÒèK£/1“ÈXŒsû7ž\ººé1¿0ãÂŒ 3˜IúC¶~™3€Xü³øgñÏLŸžÚï·mN¦ýçöÁÃý{¸–7=ò×_\qý“‰ŒbŸÇ>}¦“|ø‹EÙ½F€ÿ‰ýû×'Öt6½_68l`&‘±çÖtž«\ãvb-±öŸØ»Y~QvÓcn\Ï™I¦{6ölìiºnŒk}&·‡øŸØ¿|÷² x‡ŒÅ ‹'0“ô‡œ±džLd`QqQqQq¦OÉãïù¼)w×Ú¢é“Ñk¾™1Ïo~ù¼íB\v÷©|×á»?í–ä»c£¹ô+t·àWu•R;‹¼›W°FWíOÇJm?ë ÀEZ¿«izä·~µõ«­_1™È(FuxÔaÓI~ôð SÍåÖ€Ïñ[j?t®ßxO‰¥µâµ vKl_ÛhU.¸~k_z¼gïåýé(œ­íg͸V_¯­E¼LïÝ;¿w~ïü˜LX?㬚Îp¡ynÉ^[­ô-”ï…Ž?ÙÒuû€ÚÓzÙ豬F…ü“ ?uÌe3µÀZÛו^å² T&YºtñžÙ^Hû*ÝþèÏïË5±Î<¥ëµ¥^.æn9“ @Àú ¿Ld`¡ëB×…®ûÀ_ïx¥ú k¥o6ôþ¹ÎsçQ…‚lÏüý£á ö£m]<­9À­ÏÑÍ­vUµ¿| Cc¿‰òëïžûd›ç[Ôùãk‚ÿû›dë Àïó÷]àlzäke«•­V6&÷›´Âì{çe ‰Ô\þûM z.7õHóŹ¼”Ý~Þå±v°}ÇefÙdÍ{:o½”3Éádˀ߭-ïýmþ5ÏüBÌIŸ“>'}˜LX?㬚ÎpEñǘù׬-š:\ª6¬Á—ßĈ|òQfp«ïû<¯Ôct¡%AUb&Û­½ìì×­ÿˆÞùwëñ_aµóœ;/XÛ=ÊçP0Ⱦ7Q@ê"»Ev‹ìfºV45qa™NVJó\Ëí•×mg£…^ü׳ɳú» ïlSaæ~§Â}KlÊåV°õ‘–}íæW;¡P„¹¯­íMªËûÕ˜P¨k5€Ìù³pF§Ld`ÖNX;a­éÓí-{ØÖºl ¡Ô˜uÿ~«±Wyµ¼ã¯é¸§z{sq×ô¾”ºh÷}V÷FÐ7úwªçÿ·SÛ`³Á†«x"“ÖtgÍú Ö€ó=È7L¨´$È»‚ñ祿*°ñÏÛjͨÒÑú¯|þÊoQÕV›ÞÎ]λœw93™°~ÆY5aO—é_þeEW̽6²ç¢߸6ÇòT’Æø/M6þ_ãNù÷ÿ~6ŸZ`­íë”÷ËÚp‘?<¬YŸ¨ u'CN†œüÀ»–\qÕE±†DÚéé‘Îÿõ½aãf#Ç”:gü¿æ~¸\ûx¿%ÅßY®y³wõâ­Y«dΟ-€õ$ãÆ`0 ëiÛÓ¶§­éSllõÞÇëæ³†Pzblk¡ê‘¡1“˺Μä÷´|½´¼¢×4[çë€ÝV±)(ð-=ôôMÚý:Ü+ÓÝ:pÛ-~/y4-A7åG5êS}Ÿƒ¿µà{¹ÃÕh`zü—·ZÞjy+&ÖÏ8«¦3ìÓðç›a‹¬'”:FûG6ùÁxÛŠ]¨u¸…CZ‚î½/‚J®¾šµà’U6íp¯@¤îàôƒÓN7]+úßÚvÁ-Ù©û¥†µ 'o•ñ- ÓòQ“ê^úÃs¤ã ç’nXsn6}|ÁÒ÷Y«dΟ-€õ*cÅà,ÖsJ^â—ôíËê^5›â5¾æþo¢k¿ÎëCnÔ w[eý¸Î‚RþE˜7èɤmý\'[g–_/å“--{pü/×½ÿïmçK±u±¶×?­}8k­RÌô§ê_®Îj=¡´ V¦bù¦ÆÛ–òµ¿ÿãšÁ.KžIõ½ÏýmÏ7>kç=ßgm¸ŒÐºG?Wæ À§ù!q_xŽÖHâËu(ð÷÷S]Ë-íáboüsZ>Öô~Y[n›cvU§^ÌFûwìß±€ÏòþRß›m¬3¿ÈÒsxíÍRþïü¼W„~°Í}ÉD»ªýœË¶ŸZ>GñÁÅm·æiî~YÛ}iW6‹C7æ ztúû·.Qրݷ¯ÆÃ´|ìâ»ù¯ùÐb-8æ¦!{­CÌôÇ·ë¢þ†ìÖH«‡­‰‰Xœò¶ùÔýùdØ$kK¹Ÿ¶/ݾÐ÷o™7ŸfÈÆƒÛÜk[6ŽNuþ¤Çí”·jèãÃ7Ü·§ý3tûkÅ4—Ý)?ƒµàös^^ΗyÀ(~{üöøí`>ï ÕÊ^|¶DÛkÕ¾h‘Ãéãô|lòš}Õl• ÝíKwÿ£BpÉy¦ÿ—Wÿ4k~p\ÿc¿ÖHËǾq´|ÝÎZCx0ðϲžWûœ›?yß¾”·ÍïÔª¼Gë#ó `ŸÃ^üS¹m¥ÿúe8cNûgø~ÚîáþëÍðy0Ö,½ØøèllllllŸ³5kݬu³Ö¦O¨Öv `»%ùîØhÆÛæž»H¼]£©§«9»xíÛÒôˆçØÛ;óï÷¾qßÍ^ƺٴ“ôßáçÿâMƸ0“É–Q¶ü@Њ¯œöWß}6©FmãGå¿”ÿ‹¼ÑÖ€Í]x¤:R©2™lÖ¿gÕt†­çÀ~«VN8Zþ¿âtÇïÑúÀæ®Ìd²±±¥Ü~îûsߟûš®Öp àIû/ïóü¯‹þ ëxd½û¥´†ÀßWÙº$Ys6w `&“-3ülaÉ×K¾^ò5GFÛ1ÆÓÿ‹þ_ôÿ"íé×ø÷3Ñ5€ø|ÖNX;a­éÓê-{ØÖºl ‰´Iƒ²ã¶oUÛ–<šäÐoÀï©gÝ;õ®~Ôªðþêù›ÞB› 6l60™È(Lg¸éΚõ2ú5€4_œËKù¿_:q¶·kdmøü•ߢª­6=þ»œw9ïrf2aýŒ³j:Þ.Ó¿ü-ÊzBiÊÛVå« ~«Ë¦å£¼ÖÏÚ¸-Òy`·÷#K8ï^lÔrÿ¼kóœÊc=÷«Èž?Ö¬ÿ¡¯”àÿs2ädÈÉÓµ"°äŠ«.Š5$Ò”·ªëòe..þ‘W‡‹-}ÓšpÍ›½«oÍZ sþlÁ 92ú` ·A›‚6mJ{ô5þý?ú¦Dd`¡ëB×…®3}н~½ã•ꃬ!”m\`u¾ËÆ[u²K›!¾åÒòQGš7¿òñÆ:ðûü}|àßµ²ÕÊV+“‰ŒûMZáö½ó²ÎÜãv‹ßKMËǶ iðeqãGuÞp\ñ Ö€÷þ6ÿšgMÓãÒç¤ÏI&ÖÏ8«¦3\Qü1fþ5ë À%Î5ÈÚÞ+M¯¯}Ôø‡Îÿ‚ý/.Q•·XÛ+€ó9 ²ïMTºÈn‘Ý"»™®Í_M\X¦“µ`—9þ í£ÒôêẗþðYìhùq¶M¬9—÷«1¡P1Öj™óg àŒ.ãFß”À€ ,<4<4<ô×ThÓ4Þs­5„R×F…)8Ôx«¶Õjä[¥cê?j·š5‹¯lÍ8Æ­û¦ZømúFQ€ÉDFáÝÈ»‘w#ÓI~ßí„[€¯µà|òä *- ò®`՚P¥cÊ:ºyuÙªöÖ“~ûEyºÄšù¨BQ…¢ 1™°~ÆY5á²ñíò´žPêæ3ð]Ð’¿o\D¾ù¿¨|eü–UÌý}ï sºî´Í—»`{û¿ͫԙf ›ÿl ÷¨zÇÕ—N¸™yãzÎdHéÕÜWs_Í5]1¼¤V‹‹¾±†DÚ¹ó¢ÎMo¡¹¿?yåÕzžOëlP®DÝ´”ö]¯-õr1÷Ãq&€þ€õAÑ7%0 ‹Š‹Š‹Š3}êÏçM¹»ÖJû.pÿ­Ô•¿_yó²àÁ…=\ÿûJï_î\cçÓݳÔr=º¹Õ®ªö“â|‹:ÿb?3¿·M¼ùo•­%Giý®j¤é-ÜúÕÖ¯¶~Åd"£uxÔáQ‡M'ùÑÃN5—[[.»¡ÄÛ¿”6Þ³÷ˆr‡ 5Gx½ ;1ßÙ3÷`ûŽËÌJù÷õ©¾ÏÁßÚ^ûkÜ×êëµµˆ—é‘ç÷Îï“ ëgœUÓ.4Ï-Ùk«õàêakb"›ÞÎ2«Z%õÝVÉcÔŒÅ#§œýõ[—=ãÇ5,àëP©øß?ÀÊß²p[‡ÖvåàªýCút2½GÆõœÉRÒʤ•I+?pÙšïòÕÌ;vʸkg¼<,Jó\Ëý/ˆòV|VWámÖΚèT³o‰M¹Ü ¶Í?»¾SŸ %ëþ\¸ ñï8r.Yà†uàqoÎ:yt6½_- - - L&ý!g\ú‹¾)€Xü³øgñÏLŸ†Úï·mn ¡ôê=rÕ:çÒ¯ÐÝ‚_¥ýˈßvÊQ}^©‹vߘ‘ò¿7nW¶”ÃOÖp¿‚‡û÷p-ÿ7ß~qýÅõL&2Š}û<öy˜Nòá/e÷am8üàª>÷ °wÎ×7õ5¤¢C¹NvÝ·¯ÆCk Àï_ŸXð:lpØàÀÄ‘ÁçÖtž«\ãvb­µ½´ñÍœÓòuH¾eö¹ ws;¢Æ/׭絿ƽû±‘åe7½ÍÆõœ™`ª±gcÏÆž¦ëƸÖgr{8YC.m{¼g•|e'{ûÙÍIË*]ê\åY7ðuàï—ï^Vá©é-_œ°8aq3 @À‹¾£oJ`@†ç÷§ßŸ~š>1ÿ5´—¡ÎkÈ¥ÆÛ39Ú÷'çÿò%ªk¼6°q_;²dB‘9K~®=½ÂöD×~Öÿ×µ úº[ð«" ÔÍ·j@¯Ja¥G[Ã=*¿¸p‹‚ LùÛÇo¿}ÌL"£ˆÚµ%ê9dÀËv®¥—Y[6þwãŸß7,Ù¾´V¼v¡ào¶Þ6s=T×cö¦ž°ÊÅë¯pµj)ÖùÚßÛvÍõïgzÌG_}iô%f‹qn?ðvÄs‚§ìškm×ÍýûëŠÉ=û .ÜÓ}¹ï7ùb U.r-ß@»q…Öë&yµ/5´i™®W«>üåÏÃÅ­íö÷%~®_¥ëÞ@~KÔ–¨-Ì$S+‹¬,²²ˆéºÑ÷êæ†n-­'šoUËìS}ËævÞàwÐ~IÁSEÎçkV °ƒMÿR+É'6ê÷ÓÓRS'Œ:Òã¶5¿t“¥£—®nz /̸0ã f€þ€­_找)€ÞòWË_-eú$-/ýîŒ÷_Öó¶É©¿³¹ÿkmoþü¼^ÏŠµ?p*¿R~¥üJ1ÈX’ì“ì“ìÍ}¡Ÿp/¢c@ˆes©¹ˆû±ÿÝzö‹+þ¢B×|{ü4üiøSf‹qnMçÙù^÷!£¿°Î€š2ÚÿµØÛYÿºFˆèhnÅ6®çÌ$S7¶ÞØzc«éºQc[O×bϭ躹&1ØÜOù­îê¿ã®ñò°Ûå˜oÅ~]¸ÎÛ:oë0“ô‡l2gôM‰ Èð"##MŸ°;Æ–]<ÁzÒ©>ö;¤ÆåªÄ˜íõ?¬ÿaýL#2¢!'‡œrÒtª/Æl ò³³æ˜šÁö›NͨW¹ðû&ù†ší×[_o}½•iDÆbœÛ¼…²]Áí›ø»­ýþÔ kÎÀkï¹ ¨Á¦ Ó£m\ÙFæ$È r‚l“/;zN²Î œ÷?íUÆWzizœD7ˆnÍ4Ð+°õ ú¦Dd|¶É¶É¶æžÂ_îìe[ç[Âmzíݯ °ezœŸìx²ãɆÑék§¯¾f:ÕƒŠµ,CN¿7µn±Ó®z‚éqnæÔÌ©™sˆŒË8Ãx#èŠswÚnÓíÍŸãLoizœk8s uÃÕáêpõo]nS!7{Âmº½ùóÝ1UK·1=Î{ëï­¿·>s@¯À–Eô5‡ Љ…›nZø§ùµ5ë•p¿C¸ýüý-ûÎßú;àÜÞÞL 2®„€„€„³¿DòF>W§0ùöó÷C&ušVæ†é“Ä$1‰9DÆeœaÓÙ.Ú(¤Ó4Âíçï«Í^æ Ÿ3ûvý  Ì!€Ô]ér¥Ë•.¦kHù5×jK¸ýüý$ûK¡žýÌ­Õ¯³¾Îú:+s@¯Àÿ>¢oZ€:Ý=º{twsOðïCújDÜÏÚ÷^\ñi©ž¦ÇöàÕƒW^e‘ÑÍž=7Út—ãYáùösöÏFk4·>ÇwŒïß‘ DÆeœasî»}qO¡1÷sö.®=ºŽñ4=¶Æu› &µ’k%×*t¹ÐåB—Mדaó _¸?$â~ξ«ãÒ.x_®aÆ1€ôüï ú~,0@Wºùwóïæoúd¿Ý¡Qp•`"î§íïëš³†Ù¸/Ä ñ³‡Œ.¦_L¿ó¯ZX®Þ«FÊý´ý¤Ký9Ï6=ª!“B&…Lbö Æy6ó2á­G÷kDÄý´½_®åÔ{æVfãºÍìH»UwVÝYÕt=ñ¬ØâvÑ!DÜO|íï¾Ë{¿úüêÌôÇ8Û¦3_t½÷Þ:îþþkCO$ë¦eïSñçYaåÍ­ÆÆµšyði¶Ú6jÛ¨¬ÕQe*Ðnòø«y<#ɺiÙN8[¥›¹µúúê뫯¯fÞdàÏGôý'€:õ>ê}Ô{s_\ŠjŸàל¸›úþõÛÞMëœ0w ÷fÙ›e/_E@·fœ}pöAÓɯZÓ½Q¡®I¾'ûÜ%ñ¦¾ß+Îö 0û~ £cGÇŽfÒ ?ÆÙ67ùÕãæGwSßWúóÉþv‰Î¹Ü™Cãṳ́ø‰+$VpèãÐÇ¡é:ÓrÚ4›²ÞÄÝ´ì=mZl,úc8À€ÿ& @æAþ|ûwìß±Ñ7}ñ£[€n… )RÐÜ— o†õ['ŠÐknß÷¨û¡R¸ê^õíÕ·WßžÜ>¹}r{f zõ6ìmØÛ0s«ÇÂoG¶r»Oâ5û¶ÏÉû·Öt5wôÕ=T÷P]f úfœssgAÕœ jîßJè5·wXrd+sGϸ>3c>ßÙ•gWž5{åÚzî=Xq2‰×ܾ“í/_9ç3wôž]zvéÙ%f @æAþ|‰-[&¶$ú¦/0@·Þo{¿íý¶âþÅý‹û›~éй‘ë%&Ïê_½^yroÊýú®õb*µ7÷%×}ûûö÷í™.dÇ?pü€¹s!¼ËªR>gȽ)÷ïâ5­»Ë)©d„íÞV±ý«ö¯Ú¿JNJNJNbº sIÉIÉIÆ™7= lu\T2Â/jU·cMɽ)÷•ÃÇÿ¸ª”¹U׸&3\Ò×§1NcÌ^x¬û©¼UŽ’{Sîøu_¹ŠḴݳvÏÚ=‹¹Ù€ÓKÊ×}? s·rÞÊy+§¹oPgu¬î[~$Ñ׸WKµ ôibîXmöÝì»Ù—‰Bf3©Ü¤r“Ê™;/n6ÜiSý=é7éÇ“‹žu™Ôdc‰yæŽÕó·Ïß>ËD!ó0μ¹3ÂñmM6Vºûä"Ò¯·ÛœN;mÌ+ã:ÌDø'¼»òîÊ»+öëí×Û¯7]ÊTóüÊÎqâÆ‹7=k“~GÖ ÷®<ÒÜZø(ðQà#& @æD†u"2… w4ÜÑÐÜ7«Ëë ªè›™Óïé ¶þ¾ÌŸÑ¢D3EÈœ<<<|®û\÷¹nö•ñk÷^¨±>“à §¦×«üã].•nîøœÉs&Ï™<Ì2'ãü›;;JUjÒ¹Ë%·µOMÏœé×gɼó{/˜;>Ƶ׸3Kþ9·oÞ¾yû¦¹µ¨Ò¢F¿ñ›tåòSÏ™3ýŽ~tâ\•v6ò×È»Íôøäšhþ¡oF¼ñf³ s"Ã:€™È´æÓšOknîûÅïj7­0'³¥ßãJë‘U˜;&ž ž ž q1q1q1Ì2³gmžµyÖ&oªnÛý•ÿìÌ“~œ,pzè©Î3Ë–1wL¶ßR|Kqæ0ž æÎ”’‘;užYýjhÇ“e2Ñ«~7ßÞýUêëªqíe~ü;¤iÒ4išÙ \¶á…"vû^èé–‰^õ+ÍYyM¾ÞJå½fîÈÜ+v¯Ø½b̀̌ ëDd&e’Ë$—éëÞ×½¯»Ùë<ðq*×3qh¿Ÿöè;ýî>Ú¤¾Ç2sÇ¡@Ç t|ô"èEƒEæŠÌ™+õ\qêûu›}{ë;ýÆ:‡ª›«õ”€ÕÅf˜;ó™ÿËü_˜ %ãyaî¬qð«º$`µ_‡›Ã é;ýzŸlX·9õµÔ¸Þ23þ}›ælš³iŽÙ_Ùyèþ¢`»15#UùIßéwHÑ‡Ü ¤¾VŸ;qîĹÌ €aÀ€L'±ybóÄææ¾•­›£ÔÀ"çž•ëÑ»öWzо‰ú…œž<Ï·µó>³ßÇ/Í»4ïÒççg¦0u=÷õÜ×s§þã°Ðõ“+¸Ö_ú½ã°»ÿêBMíç+kî¾Ïœ2sÊÌ)Ì `Žñ1wÙ\³ÝjרûàÜ|»è/ý–Ð÷Øä ©¯ŸÆ5–9`Y¡ß†~úmêëÕ÷ýv×®p]é·‹¸d‹ó›Ôïûñ‡ÇÈœ€Ö‰ ȤO$žH<1ÄnˆÝ»Ô¿¹5LlQÏû댞~o-ì\Õ?ÀåjálÌÝÓ²‹Ë..»øÙÔgSŸMeB€ÔÝZykå­•©¯ß«3Ù1&úɑƵ¦dàôûâ”T¯Î¯­¦ÙTšŸúý]øráË…/™ -ŒçKêç”ë²_N³ñ¯¶vé))ãF_ߊ ¯i\ô€÷_u&§~ë*³Àzl·eÜ–q©¯]ÍÇõ(-MqõKÏÛ7úŽËz•‡ïŽÙÝS¿¿g[žmy¶%³)€aÀ€ÌíbòÅä‹ Ôê5õotÛµuY^ÜåaínÃkúe”è7¹ORÝs3§øE—¯Ÿú½kÓ«M¯6½bƒcƒcƒ í¢=£=£=]"]"]"S?ËÖ¾žâUéëä§~ªç–QÒïÕç[·ø%{¼v}fß'õ{·kø®á»†3ÀÇ2ž;©Ÿ_v.e‡¹>ój7óÀÖ-&ý:¯ízê'×Òý~™â•ú½3®ŸÆµ”y`ÔjµAê«™íÜBl¢ú‡lkîö(c¥ßÎ/×rÞ•7 "ËE–‹,Ç<€)0¬€¿É6²l“–o}G»x{8{²4pOÍk‹¾±mzŸ¯k:9à†{XZîKÈ‚! ’Û$·Inà Ÿ&nvÜì¸ÙC¦}Lû˜¿ÚþÕö¯¶Ì˜C†u"ð_¢¢¢šÜir§É´üø²ë(·Ú%ŽŸóiW£Z-KEß'9'Ô¼=Åàî—7Íή>»úìjq }êw¨ß¡~i?õ²B‡ØìáYê~m©è«œ_QʧjÝȪ=Š$§å6î5¸×à^oÆ¿ÿf<8^Œç”ñüJË™XØ×½pÕ•ë}¼¢”¥¢¯_«‹Ã³8ßîÞsÔË´¯{Æu’G@F$þHü‘i¦ušÖ)-+^ñU®¯m:­¸ã¢Z*úNº|ù©çÆ6Gfmsj˜öµzs—Í]6wI¾š|5ù*;¤Ž ëDàC"’#’#öžß{~ïù¼é'{Ïe£Ž•kYÕ#ñI¿ugÒ7÷^¾Ü¡­ßôŸßÔøÎÕP8{þãù¾Kûm ¶ ¶ ¶‰+W2®$2ðÏy±ùÅæ›' Nœö3Ô}‰óT»þ«ªL˜Pñõ­» û×OßÐ[>¼pÝ\†–‹¯{%ôjòÝ»Röi¿m½ zôŽX±:‚_þù/CVG¬ŽXm<ïÒ~ž¯W§üwï*ùŒ Y|ݯãŠ-á…Ó7÷zÿ\nWáò¾½wO˜P°U©ÓÎSÓ~ÛŒë¡qmäñ WÖ\YseM…vVØ™öõ°ò†&ƒ‹,éúpÙv—vcFDœ¬2#}sïoÄ¡•:·Û4÷[§ge‡z· JûmëÒ)¤SÈÓÒOK?-Íã iG†u"ð?Äž={~¡íBÛ…¶y?Cóx§ÛŽ“§^©æêâó«Tÿ‡J›4 ó²Q6´¬äã®®j9×§ß‘.Íox…o™ÑpQ娹Õü·»¶ïVÈmb‰? ·Î?_OûwŒ0fÀ˜Ç={ðhÿ¾•oT¾Q¹YÝfu›Õý´³¸ì÷%æÙ:ôíÓºw©Ó!{FÔs[¸ýÉœùU —L÷® UZéã3KÉ»|®OîýÝC*yþºj²‹û¡qÃ{E–›P êœ¢9>gíÚRrKÉ-%f&ÌLà­ž•ñ¼3žƒŸs®ëî[uNégß]ìYþ~_m²‹{þáoC*U.1vØò¹•gVúTê1Ú~Éô C_š3ßÙ³Ûw#ê ÈÙºw®kKÌû´׸î×@Mz•t)éRÒ¥qâÄ}ÎZ]æŒ×vÍkµê“«ø¸V½§/+;¥ë˜¥¯\ªôjºÞÁµtï]fº®èé½Ö«ü‰ÎýµqžÚ"ÿijeúø5íÒÐñœãxgÿ‘Ÿöïúö-ì[ø|–óYÎóSbøD`X'žÚø¯÷¼ÞózOhÞм¡y­Ùøãã?þÈö‘í#[5ÀzÜvcØa}Âú„õ ³ÎÕ£øšâkНÙSlO±=Åâ—Æ/_Ê£Xãùh<7ç©u®!Æõ͸Öñ¨ÈlÛ$¶Il#8 Ž‚cåG•U~dkuÛ€¶m.L¸0á„äÉ/’_ðØÀç Ã:€ø,ç~?÷û¹ß×\{pmK}ß £0ž³Æó×R«‡qí2®cÆ5ÇRºWá^…{‚ý‚ý‚ý,µV—_U~UùUkC׆® ý£Þõþ¨Çãé‹ ëD ý(ÉJ²rËë–×-¯ueו]W¶}ööÙÛgO¯oÝkŸ¬}²öÉy!óBæ…œUÎ*g•wžï<ßyrà}xÕüUóWÍn<ºñèÆ©«§®žºÚsˆçÏ!Ÿ¿z䯛¿nþº½Üz¹õrÛ6aÛ„mÔ~PûAmŽ9 'ÆóÚxŽÏwã¹ÿùkˆq-2®KÆ5ʸ^qÌàc=zô8(,WX®°\ßõýWßUdB‘ E&|þZíÚÀµkƒ±-ƶÛBê"u‘º<Ïö<Ûóls2'0û&öMì›c¾Ç|ùmx´áцwfÜ™qgG@Zœ»}îö¹ÛáÆ<q,âXDRtRtR4G@êŒk…qÝ0®!Æõ„#Öæx¹ã厗 oÞ.¼]DPDPDǤt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èÄ¿€Ã¿ ÿ2ü˼i;)2<0èD¦ ÀÆÿž5-L Ó´=Úm¶[Û­íÖvj;µÚm‡¶CÛ¦mÓ¶i[µ­ÚVm³¶YÛ¬mÒ6i›´ß´ß´ß´ Úmƒ¶^[¯­×Öië´uZ¨ª…jk´5Úmµ¶Z[­­ÔVj+µÚ m…¶L[¦-Ó–jKµ¥Úbm±¶X[¤-Òi¿h¿h¿h!Zˆ¢Í׿kóµyÚV«ÕGê#õ‘¥F©Qêõú@½§ÞSï©wÕ»ê]õŽzG½£ÞVo«·Õ›êMõ¦zC½¡ÞP¯«×Õëê5õšzM½¢^Q¯¨—ÕËêeõ’zI½¤^P/¨Ôóêyõ¼zV=«žUϨgÔ3ê)õ”zJ=©žTOª'Ôê õ¸z\=®UªGÕp5\ WUQUR%UREUTEÕ TƒzD=¢Q©‡ÔCêAõ zPݯîW÷«ûÔ}ê>5L SÃÔ=êuº[Ý­îVwª;Õêu‡ºCݦnS·©[Õ­êVu³ºYݬnR7©›ÔßÔßÔßÔ êuƒº^]¯®WשëÔuj¨ª†ªkÔ5êu•ºJ]¥®TWª+Õåêru¹ºL]¦.S—¨KÔ%êbu±ºX]¨.Tª¿¨¿¨¿¨!jˆ¢ÎWç«óÕyê#Ÿ‘OɧäSòIù¤|R>!ŸOÈÇåãòqù¨|T>*‡Ëár¸¬Êª¬Y’%Y’EY”EÙ dƒ|D>"‘ɇäCòAù |PÞ/ï—÷Ëûä}ò>9L“Ãä=òy¼KÞ%ï’wÊ;åòvy»¼]Þ&o“·É[ä-òy³¼YÞ,o”7Êåßäßäßä_å_å_åõòzy½¼V^+¯•CåP9T^-¯–WË«äUò*y…¼B^!/——ËËå¥òRy©¼D^"/‘É‹äEòBy¡¼P‘Cäy¼@^ Ï“çÉóäŸåŸåŸå`9X–çÈsä9ò,y–R©—ÔKê%õ”zJ=¥îRw©»(JRW©«ÔUê"u‘ºH¤NR'©£ÔQê(µ—ÚKí¥vR;©ÔFj#µ‘ZK­¥ÖRK©¥ÔRj!µZHÍ¥æRs©©ÔTj*5‘šHM¤FR#©‘ÔPj(5”êKõ¥úR=©žTOª+Õ•êJu¤:R©–TKª%Õ”jJ5%É_ò—ªKÕ¥êR5©šTMò•|%_ÉGò‘|$oÉ[ò–<%OÉSò<$©²TYª,U’*I•¤ŠRE©¢TAª U\%WÉU*/•—ÊKÎ’³ä,9IN’“TV*+••JK¥¥ÒR)©”TJ*!•JHÅ¥âRqÉQr”%ÉArŠHE¤"Ra©°TX²—ì%{ÉN²“ì$[ÉV²• H¤R>)Ÿ”O²‘l$)”GÊ#å–rK¹¥œRN)§”CÊ!å²KÙ¥ìR6)›”MúZúZúZúôé?Ò—Ò—Ò—RV)«”UÊ"e‘²ˆIb’˜$&Љb¢ø^|/¾ãÅx1^|'¾߉oÅ·â[ñøF|#¾_‹¯ÅWâ+ñ•øR|)¾Ÿ‹ÏÅçâŸâŸâŸâââbŒ#ƈOŧâSñ‰øD|">‰Ä‡âCñ¡ø@| >ï‹÷Åûâ]ñ®xW¼#ÞÅÛâmñ¦xS¼)Þoˆ7ÄëâuñºxM¼&^¯ˆWÄ+âeñ²xY¼(^/ŠÄ âñœxN<'žÏŠgÅÓâiñ´xJ<%ž#Ä1BB¡ÐKè%ôz =…žBw¡»Ð]…@¡«ÐUè*tº]„NB'¡“ÐAè tÚ í…öB[¡­ÐVh#´Ú­„VB+¡¥ÐRh)´Z-„æBs¡¹ÐTh*4šM„&B#¡‘ÐHh 4õ…úB}!@„ºB]¡®P[¨-Ôj µ„ZB ¡†PCðüÁOðü„jB5¡šPU¨*T|ÁGð¼/ÁCð<„*B¡ŠPI¨$TÜwÁ]¨ T*n‚›à&”Ê åÁEpÊ å„r‚“à$8 e„2B¡”PJ(%”J %…âBq¡¸PL(&ÁA(*Š ……ÂBa¡PH($Ø v‚PP(( „B>!ŸO°l!GÈ#är ¹…œBN!§CÈ!ä² Ù…ìB6!›MøZøZøZøðá?———ÂÂÂB!‹ÅdH2$ ‰†DÃ{Ã{Ã{C¼!ÞoxgxgxgxkxkxkxcxcxcxmxmxmxexexexixixixnxnxnxfxfxføÃð‡áC´!Úmxjxjxjxlxlxlxdxdxdˆ2D¢    ÷ ÷ ÷ w w w w w w · · · 7 7 7 ¿~7ün¸n¸n¸n¸j¸j¸j¸b¸b¸b¸d¸d¸d¸h¸h¸h8o8o8o8g8g8g8c8c8c8e8e8e8i8i8i8a8a8a8n8n8n8j8j8j7„Â?¶7þ¸Îøe;ø_½ÃðO°†J€t@&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0X‘7Þlx³aÉÏK~^òsçúëw®ïõ«×¯^¿Ú-±[b·Äy”ó(çQuÎ×9_ç|êŸ'oª8ν"€À*\s}Ìõ1î¹Ýs»çΛ©60 s"€ÀÂ^]zuéÕ%×F®\åM³Ô?'9€ À`aó¿™ÿÍüoÒ}o]̱˜c1ÇÔ?'øŸSWImãø€e€ À`aíBÚ…´ 1kýú5ôkxeÓ•MW6ñ `kÀ±kF&€…¥~Ýß“]Nv9ÙåcãbŸÐÔ6Žùç €5#€ÀÂl^Ù¼²ye.(¾õnÔ»Q%ëAkF&€…y¼é…L #(òxÒ ˜ FPäñ¤0,Ìúƒâ‰±Þ>öó$9$9$9¤ýªÆog¼ñvÆŽR;Jí(5\.뜯s¾Îy—~.ý\úéX¤c‘Ž „/u±ÔÅR=TÕC ü6ðÛÀo<]ðtÁÓû—ï_¾9³=^™€ Àð/É›®>çßJ¯[nîï?ðtÀÓSOO==õ´1Ù–¼Wò^É{iùØ×û^ï{½o¢ÝD»‰vÅ‹9süœ£d“Õ&«MÖO»ïÿæãH/`0üK2C6¾î¶ào+ø›¹2¾~×ôcÏÿuþ¯óÿoÞ€ýLû™ö3Ó~À€ Àð/Ñk~ßø}ã÷û.è» ï‚´ÜrÓ|!êBÔ…(G7G7G·¼ÿ°”qÚz/@z!€à_ҭЇ·Ôá¹Jýßú7ð€^z è•öš2ÇwŒï߱ꈪ#ªŽHý£ê/¬¿°þÂ-ݶtÛÒíâ•‹W.^y‘åE–Y^]zuéÕ¥+›®lº²i{åí•·W6¾ét꟭ºouß꾩óñ¤0,ìŸxåè¿€çœWp^AÓÿn·Än‰Ý’a·†ÝvëРCƒ 2¾½sÔþ¨ýQûßz7êÝ(ãgÞ8wãÜsÍ^Á÷•Í+›WƬû±·?-):ü`øÁðƒÖðxÒ ˜ –q°MV›¬6YSþ—*ª\¨r!2odÞÈ4ý[­åÖrkÙÜçŸ9i椙“>ñ°æNΜ»™K3—f.æ>ÿ¸€qã>ö˜€Àš€ À`a7§äžìžìžüdô“ÑOF§ý_)ß¡|‡òÌ}Ϋˮ.»ºìsŽÃÒ‰K'.hîówjÛ©m§¶`Ð0,Lø@ðàÁûù „/nîs>Ïó<Ïó<ŸslS¾yRÜÿ[]zuéÕ¥ À '`0XXFÀ5sÕÌU3×§ÝÎbŽÅ‹9šûÌÆ«ÿf†Ç ^À`°°Œ€ƒV­ZýiŸ¹ÖŸµþ¬õ§¹Ïìàçàçàgma• ÖŒL ËèX½ª^U¯~ÚgžÝcvÙ=ò¦Ù¡A‡ôvÆÛogèéñ¤0,,£à»Yïf½›õÓnçËû/Ÿ÷#Ù-±[b·Äøçà:Áu‚ëhǵãÚñØÅ±‹cgÄÇ ^À`°°Œ€_¼|ñòÅËÏ9¯\¼rñJÞÀõ1×Ç\cý ½€ À`a='çNΜûóÓÑOF?müœ6Ym²ÚdM¯ ì¡z¨ªñÏÆ×[ÛãH/`0XX†Àÿ€+›®lº²Éøù«\¨r¡Ê…ôŠÁ%²”ÈR"‹õ[@ú"€ÀÂÀi¿ óßÍ7ÿ]ÓªM«6­Zht¡Ñ…F~ΈG`˜ FN¯ûØax‡á†§= Ûî³Ýg»ïc﬘ FN_og¼ñv†ñ¶¹'»'»ÿÛ?rþÈù#ç§ý¾€Àš€ À`aàN\ÿ¸þqýS¿ý^¿zýêõ+ôL ËœxWì®Ø]±3'}x»|àòËÒëŸjvªÙ©fæn‘ŽE:éhÙ£H/`0XXæ ÀÃÅáâpÑÜçœ7)nR\z%ÕW—^]zu‰ ™˜ –9ðüwóßÍgîs6˜Ö`Zƒié•T-?¶üØòÔßÚ²G^À`°°Ì€O×8]ãtÔ?³òPy¨<üü#ÜoJ¿)ý¦˜ûWyòä^G#É!É!É©K!€ÀÂ2gNΜ;9·ó(çQΣÌ}f§ÅN‹Ú¿ß1¾c|ÇQ“GM59õÛtóÑÍG7§ý_Iý³EwŠî݉©K!€ÀÂ2iNNNNN}ú6ômêŸß&«MV›¬Æ?ÿ¶ò·•¿­¼ÙôfÓ›Mÿ ÿ+ü¯ð¸þqýãúß}u÷ÕÝWáÆ Z´:huÙ e7”ÝúgîþG÷?ºÿñ±·¹@xðáæ>çO;~ÚñÓŽY^dy‘ÅxÛn|¸ñáFæþ`0XXfÀÆ7Ln‘£EŽ9òþ‹üú5ôkø<Ïó<Ïó|ì½ðíëÛ×·ïÇþ‹Ì9ü;À`°°Ì€bÇ.Ž]üï¤ßÖrk¹µüòþËû/ïÚí0.`\¬˜ Fþ[îäÜɹŸÓµ‘k#×Fé}k­Q´FѰa'ÂN¤¼GŸv3ßÎx;ãí 0X'0`}RÄà”¯ÜuÏížÛ=w‰—%^–xi¼oÁß þVð·ÒZi­´æõ«×¯^¿~ømà·ó¿™ÿÍüo®Íº6ëÚ¬"ÄÆwŒïßÑø9Lk0­Á4—~.ý\úo1`×[_o}½õÆÛÃC ÿ0ÁXçkmyÕ/X0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð ðß´£iÞŽYh;n¡í„…¶ m'ÿõí”…¶ÓÚÎXh;k¡íœ…¶óÚ.Xh»h¡í’…¶ËÿúvÅBÛU m×,´]·Ðö»…¶ÚnZh»e¡í¶…¶;Ú"-´Ýý×·{Úî[h{`¡-ÊBÛC m,´=¶ÐöÄBÛS mÑÚb,´ýa¡íÙ¿¾ýi¡í¹…¶Ú^Zh{e¡í/ m¯-´½±Ðk¡í­…¶wÚâ,´Å[h{ÿ¯o Ú-´%YhK¶ÌžÅB[V m_XhûòŸÚÀ [`Ð Ý`#`™‡npLó˜æ1͵ðl;j¡ks5b®FlýW#Î<×!β}dË£™€ÿ!ö|ìùØó mÚ.´ý¬×éÆ;Ývœ<õJ5WŸ_¥ú?TÚt0 Y˜—²¡e%wuU˹>ýŽti~Ã+|ËŒ†‹*Çέæ¿Ýµ}·BnKüQ¸uþûùz|Ú¿;`Ì€1Æ<öxìñ؃Gô À‡D$G$Gì=¿÷üÞó\²÷ÜY6êX¹V‘U=Ÿô[p&9¹ÿzõÒkùr‡¶~Ó~Sã;WCáìùçû.í·-Ø&Ø&Ø&®d\ɸ’<È ?`þKt@t@t@“;Mî4¹“–¤Úu”[íÇÏù´«Q­Vú†Þ´ïŸä œPóöƒo¸s\ÚcðÙÕgWŸ]Í#zBào²l#Û¤%Žvñöp:÷diàžš –оæö±mzŸ¯k:9à†{XZîKÈ‚! ’Û$·Inà @FGdn“/&_\ .P¨©‡Òvm]–wyX»Ûðš~Ö}Ííã&÷Iª{næ¿èòõS¿wmzµéÕ¦Wlplpl0CI%žH<‘xbˆÝ»!v©ÇQÃÄõ¼¿Î(Ñ×ÜþÖÂÎUý\®ÎVÐÁÜ=-»¸ìⲋŸM}6õÙT&2"0 ÓIlžØ<±y````` ¹Z7G©EÎ=+×£wí¯2zúM¹O|Ð/4àôäy¾­÷™-ÞKó.Í»4Æ9Æ9Æ™i€Œ… ÈLÊ$—I.Ó×½¯{_wsõsì§r=‡öû)`žÒ¯é~÷Ñ&õ=–™;:èX ã‹ A/‚È(À€LdZóiͧ57—<¿«Ý´Â}G_Óýq¥õȪ ÌÏÏÏ„¸˜¸˜¸æ¬)ìh¸£áކæ2ç²Ä:ƒ*úf¶ô›r:¨­¿ïsÇg@ô€èÑLX?0@çn引óVNsisVÇê¾åGfæô›r¯–jèÓÄܱÚì»Ùw³/ÖŒ Э÷ÛÞo{¿­¸qÿâþ¦9³s#×K4LžÕ¿z½ò¤ß”ûõ]ëÅTjo.ß·¿oßžé^öïØ¿cÿãO ƒ6m Úô¼ÁóÏpd>  [!C †42ß ë=¶N¹×ܾïQ÷C¥î™·êÛ«o¯¾=¹}rûäö̀ϑØ2±ebKs?Å%0@‡¢ÞG½zoKQíüš“xSß¿~Û»iæŽáÞ,{³ì嫟%åkSG N;~t С®ž]=»zš~‰0õqµ*.~ÄÝ´ïÃc[ òynîK®w†w†wæ À§1]cÜÍ›fÄàÔ€ºrÓá¦ÃMs_ÄVë}¬® Y÷c÷í&¹l)îaz<׆­ [ÆÔø|ÄàôBèJ7ÿnþÝüM¿ØîÐ(¸J0)÷Óö÷ÆuÍY£»¹/°â…x!^`ö¤bðç t"º{t÷h³‘ò}H_-€”ûYûÞ‹+>-ÕÓôؼzðêÁ«L €1øc€:±pÓÂM ?ðô¿¶f½îwÈ·Ÿ¿¿eßù[gÓ#ìááÁø§ƒÓ‚ Èøl“m“mÍ=µ¿ÜÙ˶ηäÛôÚ»_/`7Êô8?ÙñdÇ“ #€1Ø0 Ë Œ Œ 4}"ï[þuñ’múîwHËU‰1=ÚëXÿÃú˜Fÿ>bpJ`@†·üÕòWË_™>yËK¿;ãýÉ6}÷Ïëõ¬X{¢éÑö+åWʯÓÀ²ˆÁ`@†ç÷§ßŸ~š>aÿ5´—¡Î’í?±/¿øÿµwïÁUÕÇ—éb•ˆ .ÅJx„$@§¥ˆ^ò¨Ï®‚â‚RuJe‰,Z;j€²% ¡Š®â( EÖ¢‹ˆà# ‚(µ¼H³dÿÈÎå²h®Þ{O>Ÿß̆› çüîoæw†ïœ{›_Û´_蜟Øbÿ‰ýÖ$ êg €ˆc•‡+WÝžÛöOYŸ\(Ó~ÇywåŽËè:ó»Žì:²ëˆ• Äšúƒ`âXyEyEyEè–<óãnÇÚ}kÑôÀ½E¿ïuìáùÙÿÖ!á†âölÕí§µüÇf_5{¢ñÞÄ×ÛO¾ø£¦ úlL]Ýâäü¦=oÊxý«KÇmÌώͼµÅ°“Ý÷…ÎüÊ+¬l`e±,Ø1X Žm*ÙT²©$t^?|peæâØÉ¥?Ú¿[‡4é•ð-}ºyôç=?‹µ|¨ãØåyÅ¡g;-iZÒ´$+ˆÁ‹Á0q¬dIÉ’’%gø â]#ß͹5Bé±eëýuú=ÏM~»æÜÒ–¥Ü›Ü~Á½¦v¼yséuèž²óùŸ ̾ÿÕ£C¾îÖðЬKÒ¯y&¸öÅZ>ÕdÒ‚ôЙÏk˜×0¯¡• Ä£`Ä`€86kñ¬Å³‡n·_—œ·3BiMÖ­9«Äo^O˜¹kÆÈ59#ÂÅÝÐkI}§Ù-IÇÜAïžrcßÜгM\–¸,q™• Ä»øÁ0ql|òøäñÉ¡[ìñœ‰[ú4Ž…PúÆ}Ã^îþÒ‡:ÏNËxäì/:ô=—'zC#ql>Üñ·-›¾|¦óŽøŠÁQ À ð½©|bÒÍbî©ÙZÏø†{µ*cò¨‚¥Å»{mêøtìàÞ Rs[¬µÞÂY_¶¾l}™ urê/“>(›øÈyãïÊ/}¥É쮿-ùQÁsž¸¿Y÷Ééi#æt¸°Õíÿ|iòÊ&ÓÃ]W¬]Ë€Š´óZޱÞ©\U¹ªr• uÛPcì àm­¯ÿïç_{aÛO/}¨ñ§‰-Â>5{Õµ›ò“±_^>¯ÍüÐW= _êÑÀ›þÁ0 Ã0ê:®vͰk†…n¨±öÀÍžh¼7ñõšsëôO-*› ˜óVôö]þ´bðK™÷}xŨ_äN>5pRiA—šßú`ð¯äœ ½®xù`+Ó0 Ã0 Ã0 Ã0 Ã0Œ çgúÖ&ÇJ–”,)YºÅîÚ5òÝœ[c!”^20陯;kÎêÍ›†ß‘Õî\~ë¥ÂÂw»lŒå|ªÉ¤…é¡g˜×0¯a^C+ˆGñ}k€ˆc›J6•l*9Ãw* \™¹8BiÆ€æ7½³æ¬žËuÕȳÿ|ùú1½z]RóMÀ±€u»<¯8ô §%MKš–deñ"Ñ·6€8V^Q^Q^ºõÎü¸Û±vÅB(´ Ó¤¾[sV­ÿÚô…¤æ¿{ñê[®üý';GÏë¹ú‹©cÏËËØ\zݺ§¹¬ú²êË&ušÔiR§pÉó¾ç»µm7¾êÎÉw¬ vúýãæAWwþM¸yH™42i䑹Gæ™káÄ €z§ª°ª°ª°¨¨¨¨¨(\þìsaêÏ[l?ÜnÜÄüAоUŸN.)xköü¬aé wí O&<™ðä¡ôCé‡Ò­€ø"POU½QõFÕw4»£ÙÍÎjÃý×öíú£xO¿{Žêž[Ðþ½æ ›¶ w¥i‹Ò¥-:<çðœÃs¬€x$P¿½SýNõ; ^[ðÚ‚×Ξo¸¾ýS­Ú–?æ®^Ùñ}+fßü÷>ÛùeöÁWŸýê†O>aø„ãóŽÏ;>Ï¢ˆ_0ü¯W_M|51áÜÛ¾kç¶Û[úì£+]ñ芚?›¾ `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B `€€€B þj`}GvüÁ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/forkJoin.png000066400000000000000000000766021431412030200251650ustar00rootroot00000000000000‰PNG  IHDR¬šˆŒgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“ pHYsÄÄ•+|„IDATxÚíÝ}tU…è}ÿxÖ³îºÏº³6ò’ o á5òÂK€€@¸¨0-t°8Тõ5hE ô­;ƒÞáÖÔÚ›˜+Nc¯­½bkjæ^†ASŽeFÚ¹íø˜õÌx3}2‚:ÏÀ$<{r8ÄdŸdŸs>ŸµWW ÉÉá·O÷>ßì³÷¾ê<d«Œ 0`À €@€@€ 0`À €@ €@€ 0`À €À €@€ 0`À`À €@€ 0`0`À €@€ 00`À €@€  p$uvv¶¶¶¶¶¶vvvZåY«­­íСCmmmF66k°8í;wîøñã+W® ®ÀÊ•+?~îÜ9/…ŒÑÙÙÙÜÜ\[[[PP𱯂‚‚ÚÚÚææf¿››ƒ5Xœº»»[[[7lØôÆ Z[[»»»½&ÒTGGG}}}^^^Ÿ_yyyõõõ† 66k°™->À––Óœ6Nœ8QWW„ª®®îĉ^i¤­­­ºº:Ä×@uuµ›MMÁ¬pTœ0ýåºò³ížs qöËuåLß¼¾hVqîe¾·°°ÐN2cS3±xü ë§ÜúÀôÍu3·5–~m÷ÌmÓ7×M¹õñ7¬Ï™XlSзÁŽŸ>¢ê–1«žð¹†É·>;õöïM»õÙ©Ÿk˜¼êá U·Œ?}„Áöqç5:wsyQã’é/¯(?°jö¡ÏÌ9°jöË+Ê—Lß\^4k´—²)€»ººššš.µÝ¸ròÏo¬<_³ì —ŸßXùpåäK=ZSSSWW—WIµ··_êç+æïÙUÖñÊ¢óG–]ÉÒñÊ¢=»ÊV,Ì¿Ô/ÔÛÛÛ ÒnS0ª|aɦ]s¿ýJUÓ‘+Yæ~û•’M»F•/´)¸ü`§-¹î‰É_:Túð¯f]Éò¥C¥ëž˜4×ÎKéÀ§Nª¬¼ Do›^p:Å{ŽørúŽ¥·M¿à~ô•••§Nòº`{÷îMÚ‘Ú='¥é›¸Ú='é§ïÝ»×J(l JÜÒôM\JÜ©›‚Þƒ½ý{ÓRš¾‰Ëíß›–=ƒ=´zÎÀ¼9_³ìÐj;/ ¤[Ÿ9sfá .Èùäâ’ÛsÄ—'_pØÂ… Ïœ9ã¥3`’~}ž;bÈ;û XýÆ–wö-Ê1įÒ!:›‚!ÃGÌ}|߀ÕïGWŠ~|ßá#2lS4Øa#†l=8sÀê7¶l=8sXÆmc“w^C‡¼³aÑ¿ygâܡv^HŸÞ°aCâVûÇ+ʾ~cËW”'>“ 6xé Œ¤S§f•ä~ppÉ×olùàà’¤+c9¥ kS3±d^ãÁ®ßØ2¯ñ`Ò•±ÒzS4Øñ3FŸºº:¯žTëììLªßS-K¥~cË©–¥I ìÒš0𛂜‰%óŸj”úýè”à§Z’8M7Iƒ?cÄ×Þœú-_{#¹3c°³F瞺}é ¾9uûÒ¤¶óÀ €#§µµ5qKýý奃[¿±åûËKŸUkk«Pêtww'Þ4"wÄÁ:ö›t8ñ³ÐUUUn±¹)2|Ä`ûM:œøYètÜ$ v؈!ƒuì7é8ð°4߯&&¬c¿IÇ? mç%€AGËû￟ؙWNŽBýÆ–‡+''>·÷ßßk(EG=ðçý^æ|àÄ'ÖÐÐ`eÁ€m þ¼ßËœœÖ›‚¤Áüy¿—98“;ðçý^æ|`;/ )µoß¾ vîÜyòäIüÉlܸ1¾Uš?öš®»ª£À]wUÏ{MüémܸÑk=ÚÛÛëšÏ}¸.t{{»U°)Èk>÷áºÐi´)Hì@^ó¹×…NßÁä5Ÿûp]è,ßy `WWWWâ&ʹ~ã7g×qó¢Hí<Î×,ë¸ù‚ß¡¾ñÆ^ñ¡«®®N¼ßo¤ê7¶$Þ¸ººÚ*ƒTo &¬¾#Rõ[ïœF›‚ÄÁ.½{\¤ê7¶$Þ8MûÐÜIQ{s¾fYâý³|ç%€!\±Ã¿I¢™Á‘ àâââøÈžÆ©¿½—çN...öŠWKKKâÿsN·.`Ÿn]šø$í>!Õ›‚ù»[#Àów·¦Ý¦ i°+`?t¬<Ý{úŽ¥|sú;/ )qòäÉ;wµ ŽV©¢ÜáÝQúðsâÒ}WuQîðøS=xð }ˆ ã³=Ð8;‚õ[4ÎŽ?ÏÂÂB+R·)˜¹­1‚õnkL¯MAâ`omšÁú-·6MMßÁX5;šo`Î×,;°ÊÎKCVgp´8ñðïá5•‘Ýyœ¯YvxM¥ƒÀ©ÐÖÖ–xߣÈÖolI¼+R[[›Õ©ØäL,‰lýÆ–Ä»"E|S8Øñ3FD¶~cKâ]‘Òh°³FçFù Ìùše‰wEÊÚ—†¬ÍàðñãÇã£)ÏúÎã|ͲòüžýÇñãǽÖC‘xÕ‘g+#ÀGž­t2¤zSP¾ãÙˆpùŽgÓeS8ØšG<€k~XœŽƒ=íßàŸ¯Yvd—†ìÍàpMMM|(¯Fì‰]^M¸šbMMWyÿuttÄG:&ohÄë7¶ŒÉÚsͶŽ+ÂÝ ™ñú-CGæES8Øœü«#^¿±%'ÿêôì˜áC£ÿæ|Ͳ1ó}ç%€!k38*|úôéÄqœ‹êÙ¿‰Ë¹»ª/¸ÜÅéÓ^âýT__Ÿç‹»ÊúÓ¥¿yiAìqRÀ/î*‹?çúúz+ÂÝ”lÚ•\²iWô7‰ƒ]÷ÄäÔUëýÍ3b?¥ÿµî‰Éé5د/K‹~ñúlßy `ÈÚ ŽJ·¶ö\HóÑùSÓbçq¾fÙ£ó{.ÑÑÚÚêÅÝOyy=‡P>8¸$”NuppIüåååY‰î¦`^ãÁ´ày£¿)HìƒGËÓ"€dÙŠ…ùñŸÕÙÙiUBX›‚Qå Ó¢~c˨ò…QÞ$vÚâ‘)ýÜrˆüð¯fM[<2]»¢(?]ÞÀœ¯Y¶¢(«w^²6ƒ£À‰ÿò®tøüsléºðSÐ^ÐýÑÜÜŸäžþ}þy€xO§ ›››­JkS.Ÿîý)èn ›ÒÏ?‡À‰Ÿ‚Žø`÷¤ÉçŸcËžë³zç%€!k38üî»ïÆÿÁŸ+—F;ó5Ë>W<.þäß}÷]¯æ>«­­Oò}‹Ò(€ßÙ·(þ³jkk­JkS0÷ñ}iÀsßåMAâ`·œ™F¼õàÌtì;¥Ñ˜w6dõÎKCÖfp$øèÑ£ñêóËKCÙ¬ÿÓÍ‹™?õ³SÆ–æçä\=dÊÈK FÕ-œvâ ‹ÃÝ<¿¼4þä=êuÜg=WA{½:ÄþÅ›·þ†q…c‡å R6-÷k·O:±qˆ|îõžX•Ö¦`Áw_«N¢pJÁŠÏÍþÏ? 1€|÷õ(o »ýxE(iºãxÅ2qÚ⑹£¯:bÈØâá×Þ9öË-¥áðöãé2Ø/áÙò™9_(?eäˆW)5âÆ)cúûÝ¡~D.ñZžY¸óÀµ‰njjŠÿ#ß¼i~ÿ·éWÏp}ÿ$ÿðù…!î?Þ¼i~ü‘›šš¼‚ûæìÙ³ñ1Î*Îí”&ððaC’^Æ;þÂüxVqÏM¡Ïž=k…Bÿ79‹C¼BÕ¨òª‹îŠ¿øhˆ œ3±8š›‚ÄÁŽŸ>"”.ÝözÙ”¹êÚÇ&…ÀÿjÖøé#¢?ØY£sCy_Ñ}WõÖŠ‰ìšÉcþõö0/²5ktöî¼0dmG"€·lÙÿçõÿí¿Þ¾dòÈáAå|Qqëgæ¾yÓü¿Z5g{å䜫? ¡w'¾°8þä·lÙâµÛçW||Œ›×…ÀA\Vo^_ÿYƒx_oȤMÁøÖ‡Õ¥ùó–A\=tÂgî˜ùÕ†²M“7|iè¨Ñ±4{×Kaý ñ7¬æ¦ q°U·Œ %J‹—|tmªéÿñš5N¼óûÅðHQq«B àª[ÆD°›Ë‹By_ñGó¦Asõís'ÿOÍúëç}ï?Î\<~TÏy=὇Ù\ž½;/ Y›Á‘à+VÄÿagî\ÚÏ­ù_­šÁ ø»?\¸«èùœOΰwgî\ÚsùÇ+¼jûæí·ßޱñé!ðÕWûfŸ?²,v2pÿýOÊB?=¸ñéñÇ|ûí·­Pèÿ¦`Ê­„¥3¾ü_‚ †\=sÛ“UMG‚ ˆýyC† ÿ¨ C à)·>ÍMAâ`W==¾wèÆþêúùaðËu=wª7¸áÀìo¾<§îÏà à™Û£?Ø[ŸÚÿ"ÍŸ4,‚Ï?9墕úà[Ÿš;¯U³ûÿŽâ¦©cƒ hù̜˼ßëdãó5ˬ²óÒÕ¾}ûpòòÞ­‹¬šýLõŒ¯Ï¼vêØ1^KGÖ¡ÝsB àØ»°÷ßþß?® ÷SЇvϱâ \¥_Ûâ•™ç<ö“¸Ré×vG°·oZ?sô¡_|tØðþ¿˜qÑ/ØðÔ”pøöïMKƒ×%ªõ-£s?öæ ëmÌ¡ÏØyéêÌ™3¸gùëç}zâè«/¼ôoY~î-%ãpô…{øÃ×–öþÛÓ­Kà `G€!t¡žó­½±G›ÿtëp–ÞúWݘ÷¡_”_ô îùqI¸œ=G€s‡ùØûG€,78G€[BRXXÿ—„rpìjÏ3Få|cÞ”½++ÞZ_uöÎêó5Ë~³.µç¶Ð'‰·Â ÷à‹nÿÉ † -€Ï¶6!”MA(çÏßÝ{´¹ßþépâ9À‘lÿÏÞþæG7æÝü?.~øæ§C>œxptw^aœÀyî‚àðšÊÞõ?>5+ôvà°^åñ1†{à/|z|ï¿ýìò±AÜtÝØ°8ñ>ÀÖ&„²)ë>À±G·|í¥nÛ›;¥4÷Žì`C¹ðG¿¤¨ºøU ÇLn'Þ8º;¯0îüÕÙƒ ¸kæE®óüáKç½fÊÈÿ¹jZ*î,€ŒOßpâ'ˆÞ¼i~?·æÓ®Á¿¾,éÏÿqâ²üÜÐøÍ›æÇ³©©É«¶oΞ=ã¬âÜTÜ8¾ÄïÜú§sú Ò¬â\ án r&‡¥Åwï ‚ ¸zhéמNüóÙ»^ºzDn¿sÒ­€s&GsS8ØñÓGô¿H×ÿ—žÏ$'þùŽ_V,Ù8î¢ÕŸeüôÑl(gþÅgçApõà§¿_‘ôWÌ™ûA¿øì¼°ÞÃÌ+€0dOúF(€=ÿç=¿¼´Ÿ[ó;gA0nİçþãÌÿçó {˵­Ÿ™»½rrÒ…%ÂÚy<¿¼4þ˜GõÚí³‚‚‚ø$Ͻ^VÇîuôµÛ'ýÏúY?ùVŦ?üèst×/Èëðï¹×«ãϼ  Àª„°6 ¾ûzˆ‚‚`Âgîœù•úò‡Ÿ›rëƒÃòÇA0ôšü°NNüAÜ$vûñаA0ý?^³æ?M¼óûÅ7þÉÄ’¥×Aî}€·¯H—Áž»«:Ä+kÖÌ,üþòÒ_|vÞÞ•Ÿ26ö‡7ë=̹»²zç%€! Ó7Büî»ïö\œ£x\?7èÿü…k§ŒqÑ þ¯u r>Ú+ßP”ÊþãsÅ=¿ê~÷Ýw½‚û¬¶¶6>Éwö- +€[žžsMîÕI¯„é“rþaï°ø}‹â\[[kUBX›‚¹ï ëSйSJ{ï®Î½fÆ—žëðïÜÇ÷EyS8Ø­gö¿K¿ÚVV4;§÷T JGÜùýâxëÁ™é2Øw6,êÿûŠïXúù„·‰>5qô¿Ý±4¬~gCVï¼0daúF(€Ï_xG¥®~ÿ5‚•“«Æ]“7ìê¼aW/?ªaqI×ï~Ó9eäˆQîÞx±l>éÒ•ðÛSŸ}í§æææø$÷ì* +€ÏYÁÍŸ_8v؈áCʧå~cã”yuIXõ{þȲ=»Êâϼ¹¹Ùª„°6%›v…uvnìªZ×̨¼z䨫sFŽ,žU°òósŸø‹/]²iW”7‰ƒ]÷ÄäPÒ4‚Õß(š/{WVÜ4uì„Üaï2#/gÍä1{WVÄÞá„õ#ö\ŸÕ;/ Y˜¾Ñ àM›6ÅÿÍ¿YWÊ'ˆ.õ?CÜyüf]UüioÚ´ÉK¹?:;;{®§½0¿ÿ]š˜¸—úï¡,+æÇŸygg§U am F•/ ÷6EI{Ã:ö•/Œò¦ q°Ó ëìÜX'}.:éû¹L[<2]»"¤—%~:ï^ïš‘µ;/ Y˜¾Ñ àÖÖÖø¿üÑùSæêÿý_?5þ´[[[½ û)///>Ï. 7SS´|ppIü9çååY‰î¦`^ãÁ¸oÿ—y£¿)HìƒGËClàÔ--O¯Á~pÛ’´xóÁmÙ¾óÀ…é­>}útâB¹ŒDª—s~þùôéÓ^ÖýT__Ÿç‹ýþôÀ,/&|þ¹¾¾ÞJ„p7!~ :¥KâçŸ#»)HlXŸ‚Nõ’øùç´ì‹á} :¥Ë‹×gûÎKC¦o´øüùó555ñA¼ºzNôw¯®žÓs©Æš¯ìþëèèˆtLÞдà1yCãϹ££ÃJ„p7CGæ¥E™ýMAâ`sò¯N‹ÎÉ¿:½;føÐ´à1ó}ç%€! Ó7r|üøñø8Êós£¿ó(O¸«ðñãǽ¾CQ]Ýs\ýȳ•¯ß#ÏVÆŸmuuµÕ©Ø”ïx6âõ[¾ãÙtÙ$¶æ‡Å¯ßš§ã`¬©Œø˜#kì¼0dcúF.€ÏŸ?_\ܳ«;íýÇá„Gqq±—xXÚÚÚâƒU’ñžUÒóK¶¶6«R±)È™XñΙX’.›‚ÄÁŽŸ1"â<~ƈtì¬ÑQÿ%þ¬Ñv^²1}£Àö\D¤(wxwTÏº(wxü©Ã7ÞxÃ+>t‰'S=tǤðCwLr ä¦`Âê;"ÀVߑޛ‚ÄÁ.½{\xéÝãÒ}°ÍÁ~h®—†”Ø·o_ôÓ7¢|þüù7öüÊì5]Qú t×]ÕóÇ^z7nôrO…öööÄÿóÚ='Rõ{h÷œÄ§×ÞÞn•Ál JÜ©ú-}pwšn ’{û÷¦Eª~oÿÞ´Ì졈ÝÒâÐj;/ ©ÒÕÕýôn¿ÿþû‰ã{¸rrtvWNN|nï¿ÿ¾—{Š444$Žú}‹"R¿ïì»à# V ئ`îãû"R¿sß—Ö›‚¤Án=83"õ»õàÌLì;¢òA¶w6Øy `H­ØAà(§otøüùó­­œUõýhœ üý„Sƒ hmmõBOîîªø´sG ùàà’A¯ß.É1$þ¬ªªªº»»­,°MÁá#æ5ôú×xpÈði½)Hì°C<:ø'?x´|Xšoc“w^C‡|pÛ’AóÁmKr‡Úy ` Â|þüùºººÄÚÜ»²bpw{WV$>Ÿºº:¯žTëììLœù¬’ÜS-ƒyA¬S-Kï{Agg§Õ¼)È™X2ÿ©–Á¼ðÕS-‰÷=JßMAÒ`ÇÏñµ7³¿öFyâ}2f°³F瞺}0/ˆuêö¥‰÷=²óÀ €£kÆ ‰Ûë¯(¬ÇW\p9Ê 6xé ŒcÇŽ%5ð`þàà’¤ú=v옃²)È™X2XÇç5Lªß´Þ$ vüŒƒuøÁ£Éõ›Iƒ5:w°ŽpÛ’¤úµóÀ €£ëÌ™3 .LÜj?¹¸dàwO.¾à½ÎÂ… Ïœ9ã¥3`öïߟ8ÿÜCþ|àwö-Jüäsû÷ï·j`7C†øóç>¾/ñ“Ï™±)Hì°Cþ|à­g˸mlòÎkè?ø ‹?ùlç%€¨ðùóçO:UYY™¸í¾mzÁ€Ý[ïôKo›^øÓ+++O:åu3ÀöîÝ›tQõ¼.tÒ5Ÿƒ Ø»w¯•QØ äu¡“®ùœI›‚ÞƒÈëB']ó9³;×…Nºæ³—Ò#€ÏŸ?úôé•+W&mÄ~ceª÷?¿±2釮\¹òôéÓ^4ƒ"éWé±ûøZjO þ𵥉÷ûõësˆà¦`Âê;æ?ýZjOú}úµÄûýf䦠÷`—Þ=îëS‘ÒôýúßT$Þï7KûÐÜI¦ø÷øÞ±4ñ~¿v^H³>þü¹sç¶nÝš´)¿¯|Â{·.NÅžã½[ßW>!éÇmݺõܹs^1ƒ(锪˜³ST¿g÷þqN‚hn fnkLQýÎÜÖ˜%›‚‹öÖ¦©)ªß[›¦fó`¬š¢ú=°ÊÎKéÀ1/¼ðBïmú7«¦…˜Áïݺø›UÓzÿ”^xÁk% :;;o/¿2Ö‘g+CLß#ÏV&]ï*vÓ—Í„(o r&–”ïx6Äô-ßñlÒõ®2~SpÑÁŽŸ1¢æ‡Å!¦oÍ‹“®w•ƒ5:÷Èš0?ÎvdMeÒõ®ì¼0Þ|þüù·Þz«¸¸¸w Þ_^ôëu ú³Ûøõº÷—õ~äâââ·ÞzË %:º»»z¯©1yC_ÜUÖÏô}qWÙ˜¼¡½¼¡¡Á-!-6CGæ•lÚÕÏô-Ù´kèȼìÜ\j°9ùW¯{br?ÓwÝ“sò¯6Ø v^Ǿx}Y?Ó÷ÅëËÆ ·óÀ@&ðùó绺ºššš‚Kx¸rò':=øç7V>\9ùRÖÔÔÔÕÕåUAíííÕÕÕ]k+æïÙUÖñÊ•^)ºã•E{v•­X˜ÑG«®®noo7pH»MÁ¨ò…%›vÍýö+Wz…ço¿R²iרò…6—ì´Å#×=1ùK‡J¯0z¿t¨tÝ“§-i°³ó*Êßs}YÇÍWz¥èŽ›í¹¾lE‘—2=€cNž<¹}ûöà²ÖNûèü©Ï//mþÔ¬WWÏyuõœæOÍz~yé£ó§®2öòß»}ûö“'Oz}D\KKKaaáeÖã¬âÜÍ님þr]ùÆÙ‡vÏ9Ð8ûåºòƦo^_4«8÷2ß[XXh§™±)È™X<þ†õSn}`ú溙ÛK¿¶{æ¶Æé›ë¦ÜúÀøÖçL,¶)èÛ`ÇOQu˘UOø\Ãä[Ÿzû÷¦ÝúìÔÏ5L^õð„ª[ÆŒŸ>Â`û¸ó»¹¼¨qÉô—W”X5ûÐgæX5ûååK¦o./êý9gƒÀ@æp̉'êêê‚PÕÕÕ8qÂ+#´µµ]êê}S]]ÝÖÖf°`S`S`°+€9ÝÝÝ­­­6lèÏncÆ ­­­N•I_õõõyyy}~ äååÕ××wtt&ØØ¬Á `@GݹsçŽ?ÞØØØû¾ÁµråÊÆÆÆãÇ»¿Q&éììlnn®­­-((øØ×@AAAmmmss³‹d‚MMÁ,€ÎJkkkkk«ýD6kkk;tè‡MMÁ,€ 0`À €@€@€ 0`À €@ €@€ 0`À €À €@€ 0`À`À €@€ 0`0`À €@€ 00`À €@€ €60`À €@€  0`À €@€ € 0`À €@€@€ 0`À €@ €@€ 0`À €À €@€ 0`À`À €@€ 0`0`À €@€ yÚÚÚ:ÔÖÖfY«³³³µµµµµµ³³Ó4 Ö`±ó o›››kkk ‚SPPP[[ÛÜÜìýe&9wîÜñãÇW®\\•+W666?~üܹs¦g°‹`€¨ëè訯¯ÏËË ú*//¯¾¾¾££Ã0ÓTwwwkkë† ‚~ذaCkkkww·y¬Ábç•Áâlii1  NÚÚÚª««ƒðTWWû°Yz9qâD]]]ªººº'N¬Á,v^  ---………—y70«8wóú¢Æ¦¿\W~ qö¡Ýs4Î~¹®¼ñé›×Í*νÌ÷Ú)FßÉ“'·oß~ù7…ùó–O¼éÞâ{vÎøòwJ|ªôÁ§f|ù;Å÷ìœxÓ½ùó–_þ{·oß~òäIƒ½¨ÒF]·¥`íc“nyzêíÏM»ý¹i·<=uíc“®ÛRPzÃ(ƒíó`×Nûèü©Ï//mþÔ¬WWÏyuõœæOÍz~yé£ó§®2Ö`í¼ì¼°È:ííí—úÅùŠ…ù{v•u¼²èü‘eW²t¼²hÏ®² ó/õ õööv ®®®¦¦¦K½,ZSSþ窚Ž\áRþçŠÖÔ\êÑšššººº 6‚e›ÆoÜSòð¯f]á²qOɲMã öcûpåäŸßXy¾fÙ.?¿±òáÊÉkçeç%€0@†ëîînhhè½³“7ôÅ]eWø¾áRË‹»ÊÆä íýà N±‹”·Þz«¸¸¸÷šÃúÙ»ö\y÷ö^fïÚ3þ†õ½¹¸¸ø­·ÞÊÚÁVÝ2æ¾Wf\y÷ö^î{eFÕ-c 6ÉýåE¿^·àÊ»·÷òëu î//ÊÚÁÚyÙy ` É:;;«ªª’?*V’{äÙÊ~¾{H\Ž<[9«$ùfUUU.¶/¼ðBï÷y“Öož÷äþ¤oâ2ïÉ“ÖoîýS^xá…lì _)Üv¸¬?雸l;\vÃW 6‚oVM{ïÖÅýIßÄå½[³jZ¶ ÖÎËÎK `€LvìØ±Þoï4ÎñÝCâr qvïwìØ1+b;wnëÖ­ÉG}¯_bú&eðøë×%ý¸­[·fÞ½g.:ت›Ç<^ú&..«ºyLÖö¾ò !¦oRßW>!kçeç%€0@†Û¿Òîü¡;&}øÚÒ½ˆ-¾¶ô¡;&%ýÜýû÷[ƒâôéÓ½ï’ú‰NôíÛRþçzß…õôéÓ™=ØOt¢oß–{J²p°ŸèDß¾-?¿±2³kçeç%€0@†Û»woÒŽüÐî9)}÷¸Ú='é§ïÝ»×J`§Nª¬¼àmýØ%«æïnIuýÆ–ù»[Æ.Y•øÓ+++O:•‘ƒscþC¿(OuýÆ–‡~Q>çÆü,ìmÓ Nß±4Õõß±ô¶é9X;/;/,€2\Ò¯ÏsG ygߢ{[ÞÙ·(wÄ¿J,gΜY¸paâü§|aÛÀ¤oâ2å ÛŸÃÂ… Ïœ9“aƒ]µcÂÀ¤oâ²jÇ„Œì“‹K&}—'—dØ`í¼ì¼°ÈpI§NÍ*Éýàà’~[>8¸$éâ"N©06lHœüôûøú-Óï,ñ™lذ!“»¾~òÀ×olY_?9ƒûãå_¿±åÇ+Ê3i°v^v^Xd²ÎÎΤ7§Z–ʈØrªeiÒÛ—ÖuuuÔï–Ç«~?jà-'>ŸºººÌìç§ VýÆ–Ï7NÉÈÁî]Y1Xõ[ö®¬ÈŒÁÚyÙy ` ɺ»»o‘;bÈ`ýú<éWé‰'«ªªr‹Å”jmm½àÖ¦÷<2¸õ[Šïy$ñYµ¶¶¦û`×>6ipë7¶¬}lR† öûËK·~cË÷——¦û`í¼ì¼°Èp ‰ïØþÔ©ËœR•øÄ¬¬yÿý÷G]´¦& õ[ŠÖÔ$>·÷ß?}»lÓø(ÔolY¶i|Æ öáÊÉQ¨ßØòpåäô¬—WÖð¾}û‚ عsçÉ“'0@&koo¬ËföáÒšíííVY*lܸ±ç(ÊÔ²ϼ^ðÌë¹SËzn´qcšvBEÎŽãÑ àÇ+&TädÀ`罦ë®êèp×]ÕóÇ^“¦ƒµó²óÊÎîêêJ\_QÎ` Ð_ÕÕÕ‰·LŒÔˆØ’x‹Åêêj«,to¼ñFâŽî·_‰NýÆ–¹ß~%ñ¾ñÆé8Ø/*NýÆ–/*Í€Ávܼ(:õ[:n^”Žƒµó²óÊÚŽþMÍ ÀýÒÒÒ’¸­?ݺ4‚ï!N·.M|’Î ]qqqÏ©¿wïŒZý~t2ðÝ;{ždqqÚ 6"§þ^þdàtìóÑ8õ·÷ò|ÂÉÀé2X;/;¯¬ à“'Oîܹ3¸˜¨e°è—ÂÂÂø&þ@ã쾈-gÇŸgaa¡¢ƒÆg;,Ü‚gG3€Øþ¹°¾¿yF ö7ëªBlÔÎ[® ‚૳'¦"€³®*⃵óêù¬ò¨¡cF }ëGU¡?r–ï¼2é^PƒžÁ /š››ãÛë=a„,þKôÿõâ‚ÐyOÂÉš››­ÊPÞ‘A°à™×Ó%€ØÇ+Ò%€w¯H£Áv…}÷£þ=_³¬ëÂOAÛòDy畺%Ëw^™w3äAÌ` еµµñ-õ;û¥(€CÿÙù#ËÞÙ·(þÌkkk­Ê>{÷Ýw{.$³pEºÔol³pEüÉ¿ûlŧóúߥÀÿjVŧóÒb°Ÿ+ýË_%.Ÿ+ÙÁÚy Ì’å;¯Ì àAÌ` Ð='û{½:ôôMÅ À±åÜë=ÇR ¬Ê>;zôhÏJïÞVš–lÚ•7{ñÐQ£‡ ‘3±dâÚ/Ϊ%þ¡å°~JñÝ=o8Ž=ÙÁ®}lRˆüÕŸ•]{çØÑ“‡1$Ò°²ßÏ»çÇ%áðÚÇ&¥Å`Ÿ_^ö§”SxðùšeÏ//ì`í¼æ··Y¾óÊÔ” ÀŸØÙ³gã›æYŹáîã‹Æ /÷Ñ EÇûŸáþˆYÅ=÷Õ<{ö¬Ú7MMM=*ùAÿ£tþÓ­ùó–_ô@éמŽÿ÷P¸â‘İ©©)²ƒýâO¦‡ÀyEÃzÏö¶? óK_üÉô´ì›7ÍO¯~ó¦ù‘¬×E‡›ŠÏæWfðg°èË6:¾QÞ¼¾(uï!RñKôóG–m^_þƒx'út·eË–ø+ë÷÷?JÇ.^{´±‹?]rã¹â{éÄ¡peýþønÙ²%²ƒýêÏÊB à VÿQÑæÿ9ã+­¥k8bÔÕ¡4ú«?+K‹ÁžøÂâô à_XÙÁÚy XgóÎ+xÀ2X|bo¿ýv|sÜøÀô´ àÆzR½ýöÛVh߬XÑsí‚?mëg‘–~mw졦Õ<\Õt$q—?ñ7…À þ´­çJ°+VDv°_ÿÛŠÐxH°qOIbî&N5¬þúßV¤Å`Ïܹ4½øÌK#;X;¯ àlÞyeO@ `€OìØ±cñ ñËuåiÀ/וǟÿ±cǬо™:µçÞ¤UÏî÷áßOA?·ºwâ.xæpNQq¸\õÌáøN:5²ƒÝñËYaðœÏæ'…î¶Ãe¡ðŽ_ÎJ‹Ávßµ,½¸û®e‘¬×€p6ï¼²-€SšÁW…²&²ÖÆÙiÀg[qáê‘æL, ‚`Æ—ÿËE-ô#ÀIY¡Diì¡þðÛ“æÑi1Øܪ7µ»Íé²óJQÛy‘hß¾}`Ú='íøÐî9V\¤xÁw?º1ïœÇ^¾èÌøÒ¸ŸEZóß‹°f`v^) `;/9sF G€é”ΩûóØã̺õâmÞù}ÜÏ"½¿y†À ÌÎ+p˜Ôœ#À-Y)ñn"é~°µÙg………=QÚ¿s€ç>ñ—?<ó+õ!pÂ9À………‘lˆçL'žåÁ¦õ9ÀQ¬× œœmë.þohhÈžõOúÓššš‹ÖoMMÍàœ 2é*ÐÖfŸ…xèøG g~¥þ¢_0å Û à,¼ ôÀ°«@» ´Wê8›w^‰åïòW® 0Ûåø†8ÝïlmöY¸÷Ž=Nþ¼å‰ÕgçNžngá}€&€ÝØ}€í¼RÀÙ¼óÊžv`€(:{öl|s<«87íxVq®î¿ÄV<òƒ~éô-ǪøîI5iÝý!žoüÑIÅü þ€MMM‘ì2=½ø‹?™žƒ}ó¦ùéÀoÞ4?²ƒµó°ÎæW6ð¤¯軂‚‚øvùÜëÕiÀç^¯Ž?ó‚‚«²ÏŽ=ŸdïjíÃ2zþòØ£]ú™’M»Ê¿ñ½â{ÿÓè×A»IR0äê°¸øîž7Gì`×>6)½xíc“Òb°Ï//M¯~~yidkç50œå;¯ÌàK_ Ðwµµµñ­ó;û¥Q¿³oQü™×ÖÖZ•}öî»ïÆ'9fáŠP.Ë<î?~¶÷îÿš™•eýiÃòdžÀcöœúî»ïFv°ŸÎK¯®øt^Z ösÅãÒ+€?W<.²ƒµó˜ÎòW¦ð§¯è»æææø6zÏ®²4 à=»zÎQlnn¶*CyGÁ‚g^¥g|é;czDáä!ÃGäNž1y×üéÏb?"wòÌPxÁ3¯_pGœhvÇñŠt àÇ+Òh°]wU§KwÝUñÁÚy @gùÎ+óxPÒWô]gggÏ%Iæ§â=D*N :dÙŠ…ùñgÞÙÙiUöǦM›âܽë¥ïЛôß‹ïýOAäͺ6”ž½ë¥øÓÞ´iSÄ{Ñp ñž½ñÿìÿróŒ4ìoÖU¥îž½a^®Šø`í¼ €³|ç•I<ˆé+€ú%/¯ç³Ž\’¢^ wùàà’øsÎË˳û©µµ5>ω7ÝÛŸ(-úì=¹SË&}~ËÅ?±|í§ƒ [ý¡ðÄ›î?íÖÖÖˆöº-© àp—붤Ñ`?5]øÑùS#>X;¯T°Wf𠧯è—úúúø†ûÅ|,Ë‹ !«¯¯·ûéôéÓ| ú»}ÿô´š‡ƒ >v¼†I5ëO^ ®AɽÂ矿{ÁçŸOŸ>ýÁn³"úõ»ýÍŠ´ì¹P?¢åÜ…ŸŽæ`í¼bËÿ÷ê’°WºpDÒWôKGGGÏ5ò†¦EÉÎVbÿÕÔÔÄGZúàS}¿1ïùŸ±k\AP|ïšóø¾ùO*ÿÆs“oþòÐkFA0¢pòü§[ûÀ¥>Â555i1ØÛŸ›ý¾ý¹ii7ØWWω~¿ºzNZ ÖÎë_-ùÏ÷OKQÛy¥oG*}0@UW÷š8òleÄë÷ȳ•ñg[]]mõ…âøñãñ©æMëç©¿C† ¿è»„¡£F—ã{¡|þ9§¨çêñãÇÓb°ãJ†G?€Ç• O»Á–ççF?€ËósÓb°Y¾óúÖ–ž ËÒ¹£Â `;¯4 য诶¶¶øÖ|VInÄxVIÏûȶ¶6«/,ÅÅÅñÁ–íhêï–¯ ‚`DÁäÂU·Í}â/B©ß²M=÷...N£ÁÞõÃâ(×ï]?,NÓÁ^Såú=¼¦2›Í;¯XÜtÝØØ»0ܶóJ»Žlú `€Æ7ëgG¶~4ÎŽ?ÏÂÂB+.DŒÏvXþ¸Ïîÿ% çÿ×Wç<ö“y{_ºw?:<,¿çfªL£Á^3~èŽ_FôL࿬¸füÐ4lQîð Ü}WuQîð4l6ï¼þõÐ’ÿçÏžýYuèw1°óJ¯Žxú `€´´´\p–Ö¥¬ßÓ­KŸdÆÜE0:©ß½3¬û!…»ß½3í¦%víc“¢Àk›”Öƒ}~yi4øùå¥ÿÚyÙy¥K§Eú `€p$žLõГ"øâ¡;&9*¥ÞxãÄýÜo¿µúûíWŸáo¼‘ŽƒýÒ¡Ò¨Õï—•fÀ`;n^µúí¸yQ:ÖÎËÎ+kxß¾}ÑO_ ŽöööÄÍý¡Ýs"õâÐî9‰O¯½½Ý*K…7Ƈœ;µlÁ3¯G§~<ózîÔž›ˆlܸ1M;¡"gÇñ}zÇñŠ 90Øùc¯éŠÒ¡»îªž?öš4¬—WvpWWWôÓW„¦¡¡!q»ÿξEyñξ Ž¢444XY)òþûï'ŽºhMMt¸hMMâs{ÿý÷Ów°Ë6N/Û4>cûpåäèðÕ“Ów°v^v^ÙÀçw8Êé+€BÓÝÝ]UUÕspÄ.ô7\’;bHüYUUUuww[Y©ÓÚÚšøŽ­øžG"qêï=$>«ÖÖÖtlDNN<õ73ûýhœ üýå¥é>X;/;¯ì àt!€ÂÑÙÙ™ø¦mVIî©–Á¼¦È©–¥‰·Ž‚ ³³ÓjJµºººÄ™OßòøàÖïô-'>ŸºººÌìç§ ný~¾qJFvïÊŠÁ­ß½++2c°v^v^Xd¾cÇŽ%½¬_¥ppIÒˆcÇŽYAcÆ 4ðý ZýÞÿXâ3Ù°aC& v}ýäÁªßõõ“3x°?^Q>Xõûãå™4X;/;/,€2ßþýû÷ܹ#† ü)Uïì[”øá± öïßoÕ ˜3gÎ,\¸0qþS¾°màëwʶ%>‡… ž9s&ûjÇ„¯ßU;&dü`Ÿ\\2ðõûäâ’ ¬——ÀYaïÞ½I·ÈKk&]63‚½{÷Z)ìÔ©S•••‰kaì’Uów· LúÎßÝ2vɪğ^YYyêÔ©ŒìœóúEùÀ¤ïC¿(Ÿsc~– ö¶é§ïX:0é{úŽ¥·M/ÈÈÁÚyÙy ` ’~•»Å⇯¥ö¬ª_[šxËD¿>\§OŸ^¹reÒê(ÿÆs©®ßòo<—ôCW®\yúôéÌìÆ=%©®ß{J²p°?¿±2Õõûó+3{°v^v^Xd…¤Sªb4ÎNш³{ÿ8§N ®sçÎmݺ5i¥Œ¿~ݼ'¤"}ç=y`üõë’~ÜÖ­[Ï;— ƒ­ºẏËR‘¾.«ºyLÖö¾ò ïݺ8éûÞ­‹ï+Ÿ ƒµó²óÀ +tvv&Þ^"~q‘#ÏV†øîáȳ•I— ‰Ý4Âe3#â…^èýönÒúÍ!fð¼'LZ¿¹÷Oyá…²m°7|¥p[x¼ípÙ _)4Ø ¾Y5-Ä ~ïÖÅ߬š–mƒµó²óÀ óuww744ô~Ÿ7&oè‹»ÊúùîáÅ]ecò†ö~ð††·LŒ”·Þz«¸¸¸÷šÃúÙ»öô'}gïÚ3þ†õ½¹¸¸ø­·ÞÊÚÁVÝ2æ¾Wfô'}ï{eFÕ-c 6ÉýåE¿^· ?éûëu î//ÊÚÁÚyÙy ` ÚÛÛ«««ƒ‹Y±0Ï®²ŽW®ôb›¯,Ú³«lÅÂü‹>Zuuu{{»GPWWWSSSp Ekj>ÑéÁåßx®hMÍ¥­©©©««Ë`ƒ X¶iü':=xãž’e›ÆìÇöáÊÉŸèôàŸßXùpådƒµó²óÀ ‹´´´—6«8wóú¢Æ¦¿\W~ qö¡Ýs4Î~¹®¼ñé›×Í*νÌ÷Ú)FßÉ“'·oß\Vþ¼åoº·øž3¾üÒŸ*}ð©_þNñ=;'Þtoþ¼å—ÿÞíÛ·Ÿ:êóËK›?5ëÕÕs^]=§ùS³ž_^úèü©k§Œ5X;/;/,€²Z[[Û¥~¡Þ7ÕÕÕmmm›FNœ8QWW„ª®®îĉk°‹—FDNGGG}}}^^^Ÿß:äååÕ××wttfšêîînmmݰaCÞAnذ¡µµÕYsk°Øy `0@èììlnn®­­-((øØ÷ µµµÍÍÍ.’™IÎ;wüøñÆÆÆÞwa½¨•+W666?~ÜÝb Ö`±ó ÚÚÚ:äãaYþþ²µµµµµÕ[Fƒ5Xì¼@€ € 0`À €@€@€ 0`À €@ €@€ 0`À €À €@€ 0`À`À €@€ 0ØÀ €@€ 0`0`À €@€ 00`À €@€  0`À €@€ € 0`À €@€@€ 0`À €@ €@€ 0`À €À €@€ 0`À`À €@€ 0`0`À €¹¼¶¶¶C‡µµµEÖêììlmmmmmíìì4 ƒ5Xœ o›››kkk ‚SPPP[[ÛÜÜìýe&9wîÜñãÇW®\\•+W666?~üܹs¦g° €£®£££¾¾>///諼¼¼úúúŽŽÃLSÝÝÝ­­­6lúaÆ ­­­ÝÝÝæi° ŸHâ+Ó40©ÒÖÖV]]„§ººÚ'¥Óˉ'êêê‚PÕÕÕ8qÂ` Ö`A €#¡¥¥¥°°ð2ïgÎÝ\^Ô¸dúË+ʬš}è3s¬šýòŠòÆ%Ó7—Í{™ï-,,lii1äˆ;yòäöíÛ/k—}ôÞ©Ïï,mþάWŸšóêSsš¿3ëù¥Þ;uíò±—ÿÞíÛ·ŸøÔŒ/§øžoº7Þrƒíó`KouÝ–‚µMºåé©·?7íöç¦ÝòôÔµMºnKAé £  €Î:ííí—:껢(Ïõe7/:_³ìJ–Ž›í¹¾lEQþ¥Ž···xuuu555]*®™üóç*ÏYv…ËÏŸ«|¸fò¥­©©©««Ë`ƒ (ZSSþ窚Ž\áRþçŠÖÔìÇvÙ¦ñ÷”<ü«YW¸lÜS²lÓxƒE €3\wwwCCCï7|c†}ñú²+ŒÞK-/^_6føÐÞÞÐÐà»Hyë­·Š‹‹{¯©û×ýzÏ‚+ïÞÞ˯÷,¸}QïG...~ë­·²v°ãoX?{מ+ïÞÞËì]{Æß°Þ`“TÝ2æ¾Wf\y÷ö^î{eFÕ-c²v°`p&ëì쬪ªêý9ç#k*û™¾‰Ë‘5•½?]UUåJÑñ /ô~»ÿÍÍÓÞ;°¸?雸¼w`ñ77OëýS^xá…lì¤õ›ç=y ?雸Ì{òÀ¤õ› 6‚¾R¸ípYÒ7qÙv¸ì†¯fÛ`ÀàLvìØ±Þo﬚bú&.VÍîýãŽ;fE ¢sçÎmݺ5i¥Ü·nBˆé›”Á÷­›ôã¶nÝšy÷ž¹è`Ç_¿.ÄôMÊàñׯËÚÁVÝ<æðÒ7qyàpYÕÍc²a°`p†Û¿Ò»º‡æNúðŽ¥)ªßØòáKš;)éçîß¿ßê§OŸî}—ÔOt¢oß–Ÿ?WÙû.¬§OŸÎìÁ~¢}û¶”ã¹,ì':Ñ·oËÆ=%™=X08ÃíÝ»7éýÜ¡ÕsRš¾‰Ë¡Õs’~úÞ½{­”vêÔ©ÊÊ Bô¶U§[–¦º~cËé–¥·­*Hüé•••§NÊÈÁŽ]²jþî–T×ol™¿»eì’UY2Ø97æ?ô‹òT×olyèåsnÌÏÈÁ"€À.éØoîÐ!ïlX4`õ[ÞÙ°(wèÇË™3g.\˜8ÿ'·• Lú&.On»àÀÚÂ… Ïœ9“aƒò…m“¾‰Ë”/lËøÁ®Ú1a`Ò7qYµcB†  €ÎpIçýÎûÁmK¸~cË·-Iº2–ó̆ 'ÿãÇʾ~cË+O|&6lȤÁN¿ÿ±¯ßØ2ýþÇ2x°ëë'|ýÆ–õõ“3i°`p&ëììLªßS·/”ú-§n_šÔÀ® =êêê.øüùãƒU¿±eïã‰Ï§®®.3;}ËãƒU¿5ð–Ç3r°Ÿoœ2Xõ[>ß8%3‹@g²îîîÄ;å2XÇ~“Ž'~ºªªÊýSªµµ5ñÕ÷)Üú-ߤ4ñYµ¶¶¦û`‹ïydpë7¶ßóH† víc“·~cËÚÇ&¥û`Àà ×Ðи+øó~/s>pâkhh°²Räý÷ßOõÃ5“£P¿±åáš >Yúþûï§ï`‹ÖÔD¡~cKÑššŒì²Mã£P¿±eÙ¦ñé;Xpˆººº‚ ())yíµ×¬2íííƒuÍç>\º½½Ý*K…7Ƈ<¿ìš®×«£À]¯WÏ/»¦çÞ67¦é`s§–-xæõèð‚g^ÏZ–ƒP‘³ãxEtxÇñŠ 9i:XpˆöíÛ’2@GEuuuâý~#U¿±%ñþÀÕÕÕVYèÞxãÄ÷R¯,ŠNýÆ–ŽW.ø,Ào¼‘ŽƒûíW¢S¿±eî·_É€Á~éPitê7¶|éPi:œº')ƒp$´´´$î™Nß±4‚|úŽ¥‰O²¥¥ÅŠ Wqqq|¼Ïï,ZýÆ–çwöEqqqÚ ¶øîQ«ßN¾{gZ6"§þ^þdàt,8\¯½öZII‰ ÀRXXß!X5;‚õ[¬šž………V\ˆ<Øs†ê¸á݇«£À݇«‹Æ ?Õƒ¦Ñ`‡å[ðÌáhð‚gË—¦ƒ½füп¬ˆfïøeÅ5㇦Ñ`À2@g¸¶¶¶ÄûE¶~cKâ]‘ÚÚÚ¬¾°$L;ÜTÍú-‡›*ÓèZâ`Ëv4E³~cKÙŽ¦4ì]?,ŽfýÆ–»~Xì 0Xà¨H<û÷Țʈð‘5•ÎÝñãÇãS-Ÿ–åú-åÓz~rüøñ´lNÑ´(×olÉ)š–vƒW2<Êõ[Æ• O‹Á"€e0€ÎpñϘáC#^¿±eÌðžÏvttX‰ýWSÓs#œWŸšý~õ©ž«‚×ÔÔ¤Å`K|*ú\úàSi7ØÛŸ›ý¾ý¹ii1X° À®¾¾>¾Ëyñú²´à¯ï¹eK}}½•ØO§OŸN|çqîõêèð¹×«/¸lÛéÓÑì‚ï¾ý^ðÝ×Ón°Û߬ˆ~o³"úƒEË`œùòòòâ;›n[n©~çÚ’ ~³nA¸ûÁmKâÏ9//ÏJì§ÖÖÖø<½wj(zð©9w|¦`ú¤œÜC& _¹0ÿ?ß?ítëÒøÑ{§ÆŸvkkkÄ;ñ¦{û_§óŸn´îþ¼Y×W4dxNî䣫V”~mw¸ <ñ¦{Óh°×m)=V¿þ7çäApóŒöº-,Xà ×ÙÙßǬ(ÊýPíü±×|´Wû‘WåÇŸygg§UÙ›6mŠó7/Uõ?Mï__\ÂÏŸ íòZ¿y©*þ°›6mŠø`gïz©Ÿ]:ë?ý÷ã']tªc—¬1€gïz)n£Æ–ª[ÆÄ?ć½¿yFÄ‹–Á8Ã577Ç÷.{Âþüó͛ҳW;€÷$| º¹¹Ùª ëýSW¿?ÿ\WûѹŽÅE#þëƒÓÿú¹yŸšó'›¦æ_óÑ™ÛïýÕâP¸ëÂOAG|° žy½Ÿ÷(Y2;‚`ÈÕã–¯-þâ£ôßf|鉱‹WÅDx÷Cz=»ãxÈŸ¾é[ü–!Ìû!¯È°VAË`œfjkkãû•w6,ê—þö–kp]éöÊÉ¥ù9ì•Ãàw6,Š?xmm­UÙgï¾ûn|’Ÿ[1®ŸQúo­KÇAEqî{µ8‚ø_Aû«Ä?ìçò¹=÷­}÷Ýw#;Ø1 Wô3J§o®ûè× ÷nýnÚ7}xîðÿšUñé¼È,ƒpæ+(è9'íÜ]ÕýïÒg—ͼèG4Càswõý+((°*ûìèÑ£ñI>¿³´ŸEÚüY±‡z¹®¼wèÆþjéÜQaðó;KãOþèÑ£‘lñÝ;ûY¤E7n ‚`Øè‚Þ5§îÏC?\|÷δìÚÇ&…X§_ûëòñÓGA°ôîq) àµMŠì`À2@g¸³gÏÆw$³Fç†Ò¥oÞ4ÿ[ §Å—Ôðùše³F÷Ü öìÙ³Vhß455ÅÇøææ÷³Hwmúe>ç|ôÏ*ƒ •{uXßüÁüø“ojjŠì`+ùA?‹tÜòµÃòÇ^p}ïÊûDsè\ñÈÒb°_üÉôëtöäA0uáÈÄ+6‡À_üÉôÈ,ƒp†;yòd|²¹¼(šÒÞ\Þs¥¥“'OZ¡}³eË–øOìïïÙ¹?ùVÅÆ ï[7ᢉ;>\6-7¬>±qüÉoÙ²%²ƒ­¬ßŸºMù¶ØÁḲ~Z ö«?+ +MW=ýÕŸ•Ev°` €3ÜÛo¿ßy4.™žvܸ¤çXÊÛo¿m…öÍŠ=g{ži í6EMÜ?¨Aíç‹Â à3mK{.c¾bEd»àOÛÂÞÙ»^*ÿÆ÷flýöøënŠýˆ©wîó:XÚ–ƒýú߆s¬š_=4rupû÷¦Å¢7Eüõ¿­ˆì`À2@g¸cÇŽÅw/¯(O»~yEyüñ;f…öÍÔ©=wÓí>¼,Äûô&]±ù['ApMîÕÿ¸oQXÛ}¸ç56uêÔȶê™Ãáððñã>dØðâ»ÿ8äËÏN‹Áîøe8Geó‹†A°r[a¼xSÀ;~9+²ƒEË`€ì à »X5;íøÀªÙ¡JQýý³Ê%sFA0bø¿jœîJ‹Á†þ±çÄŽ™¹­1Ü‘ƒ £H+¦ÿÇk‚ (]1*ñÏSÀ‰ ¤pw €ðåúÌœ´ àCŸ™cñþÍK âw*š]’ûóç*Cÿ)ÙÀUMG|÷gsß7ãKßÉ›umì§”=ô§ø“.×ÕA0zòðŽ”%> †ôU^^î=1 €°#À hŸi[úȧ6$‚±yC¿µeÚ‡¯-MEcgm'–jþÜêÐP6ð]?,†C‡¹çG%I&€Á`€ à–ì“x7‘t?¸…¾*,,Œ1¬s€ÿþ¥ªŠâÜ † ¾~Çä÷þjqšÏW'ž\XXÙÁ†~ðEcuXþØÐ8áà(¶Ÿçö›“®ðÍôWZKC?8jƒ%M%¾P³ç_}èÐ¡ÆÆÆ¢¢¢Þÿo-**úéOê=1 €¹ˆLº ´µÙg¡_ºý' §Ž‚`JሶïνÔ¡]º7%šz王~AùÃÁÕ¹£Â à,¹ ô•pX‡‚]šÐeáaO—¿À}”I÷¶6û,ÜûŸ?²l~é5A,;*v“Þ¥o¶Ý8ö8ãª×\ôo§Þþµ F•/ +€³ä>À-¿¿yÆE—Øãßò§SãÿÓ}€ÀÒ@§·³gÏÆw³Fç¦]Ï+€û/ñ“ðoþ`~?‹ô/ŸœÁ ø¿\•êú=dÙ›?˜òMMM‘lÅ#?çŒÜ!W—}ý™¤¿šûíŸËAÑšš°¸â‘¤Å`¿ø“顟£›x¦îýÍ3Â}Ø/þdzd‹–¾8óÄ÷"çîªN£>wWuüÁ ¬Ê>;zôh|’Ïï,íg‘Þþ™‚ ÆAö’K-aðó;KãOþèÑ£‘lñÝ;ûY¤³þäÅ!Ãs>zÁÿþÍÓk¿UþðŸÍØúí¢7Æ>ù<,lÿ3Ç—â»w¦Å`×>6)½xíc“";X°ôÀ™¯¶¶6¾/ygâ4 àw6,Š?xmm­UÙgï¾ûn|’Ÿ[1®ŸEºhÖ¨¼ÜtüKA¼û옅+B¹ÒÕÕ¹×\tž#§•Ïzä…¯=fኴlŧóÒ+€+>ÙÁ"€¥/€Î|ÍÍÍñ=ÊžëËÒ(€÷\ßs*]ss³UÖû§®×«ûS¤có†Xw½^ñw~‰OoÁ3¯‡ÒÀE7nÌZ6ôšü!ÃGäLš>ºê†â{‰ýUhw~æõ4ìŽãéÀ;ŽW¸M XúàÁÔÙÙÙsIÒ¢üTœ©ËàÐsEQ~ü™wvvZ•ý±iÓ¦ø0óRUªOÜ kùÍKUñ§½iÓ¦ˆvö®—B¼ãQÒŸ„{S¥Ù»^J£Á†~6uKüÚZ‘,XúàÌ——×ó‘¼n[’¢wùà¶%ñ眗—g%öSkkk|žÞ;5]øÑ{§ÆŸvkkkÄ;ñ¦{Sz+à—‰7Ý›Fƒ½nKAºðu[ ">X°ôÀ™¯¾¾>¾›y1Ÿ‚NÅòbÂçŸëëë­Ä~:}útâ»sýûôÀ,ç.üüóéÓ§£?Øß}=úõ»à»¯§Ý`·¿YýúÝþfEô‹–¾8óuttô\ªgøÐ´à1Ã{N4íèè°û¯¦¦&>ÒWŸšý~õ©9ñ'\SS“ƒ-}ð©èpéƒO¥Ý`onZôøö禥Å`ÀÒ@g¾êꞃiGÖTF¼~¬©Œ?Ûêêj«/ÇOµ|Znô¸|ZÏ] ?žƒÍ)šýÎ)š–vƒW2<ú<®dxZ ,}pækkk‹ï{fÎxÏÝS>mmmV_XŠ‹‹ãƒ=ÜTåú=ÜÔóKâââ4lÙŽ¦(×oÙŽ¦4ì]?,ŽrýÞõÃâ4,XúàÌWXXß X5;²õ{`Õìøó,,,´âBtðàÁøl‹Æ ï>Ñ3»Wë9˜vðàÁ4ì°üq ž9ѳŸ9<,\šöšñCwü2¢gïøeÅ5㇦Ñ`ÀÒ@g¾––– .ÐrÇÒÖïé;–&>É––+.\‰‡ÔžßYÍ~~giÚLKlñÝ;£ÀÅwïLëÁ®}lR4xíc“þ%ËXúà(J<ø¡¹“"ÀÍäìß”zã7ßšt¼²(jõÛñÊ¢ÄgøÆo¤ã`ç~û•¨ÕïÜo¿’ƒýÒ¡Ò¨Õï—•¦ã`À©{’Ò@GE{{{âÎéÐê9‘ªßC«ç$>½ööv«,6nÜòü²kº¢tK¤®×«ç—]z7nLÓÁæN-[ðÌëQúðóë¹SË2`°*rvСw¯˜P‘“¦ƒE‡hß¾}Ò@GQCCCâ®ô ‹"R¿ïl¸à¸_CCƒ••"ï¿ÿ~⨮™~¸frâs{ÿý÷Ów°Ekj¢ÀEkj2f°Ë6N/Û4>}‹QWW—ôÀQÔÝÝ]UUÕsœjèn[2èõûÁmKr‡‰?«ªªªîîn++uZ[[ßQ}ÿ‘Hœ üýG.ø(ikkkº¶øžG"qêï=dØ`#r2pâ©¿i:X08óuvv&îMgÎ=uû`^ëÔíKï{Agg§Õ”juuu‰3ßûxÅàÖïÞÇ+ŸO]]]f vú–Ç·~§oy<#ûùÆ)ƒ[¿Ÿoœ’ƒE €3ß±cÇ’x°ŽpÛ’¤ú=vì˜406lØ8ù?V>XõûãÇʟɆ 2i°ÓïlÐê÷þÇ2x°ëë'Vý®¯ŸœIƒE €3ßþýû÷©¹C‡ üùÀïlX”øÉç öïßoÕ ˜3gÎ,\¸0qþOn+øú}rÛwÎX¸pá™3g2l°S¾°màëwʶeü`Wí˜0ðõ»jÇ„ ,œöîÝ›tÓ‚¼.tÒ5Ÿƒ Ø»w¯•2ÀN:UYY™¸n[UpºeéÀ¤ïé–¥·­*Hüé•••§NÊÈÁŽ]²jþî–Ißù»[Æ.Y•%ƒscþC¿(˜ô}èåsnÌÏÈÁ"€ÀY!é8pìþÀÞ‘ÚS‚?¼ciâý~û\§OŸ^¹reÒêøùs•©®ßŸ?W™ôCW®\yúôéÌlù7žKuý–ã¹,ìÆ=%©®ß{J2{°`pVH:8æÀªÙ)ªß«f÷þqÎû\çÎÛºukÒJ¹oÝ„÷,NEú¾w`ñ}ë&$ý¸­[·ž;w.;þúuóž<Šô÷äñׯËÚÁVÝ<æÃe©Hß—UÝ<&‹@g…ÎÎÎÄ{#ůŒudMeˆé{dMeÒõ®bwöÑ{§>¿³´ù;³^}jΫOÍiþάçw–>zïÔµËÇ^þ{·oß~òäIƒ½¨üyË'Þtoñ=;g|ù;¥>UúàS3¾üâ{vN¼éÞüyË ¶Ïƒ-½aÔu[ Ö>6é–§§ÞþÜ´ÛŸ›vËÓS×>6éº-¥7Œ2X08«µµµ]êhpßTWW·µµl9qâD]]]ªººº'N¬Á,`pätttÔ××çååõùíc^^^}}}GG‡a¦©îîîÖÖÖ 6ô§"6lØÐÚÚê”oƒ5XÀà4ÐÙÙÙÜÜ\[[[PPð±ï jkk›››]á9“œ;wîøñã½ïÂzQ+W®lll<~ü¸»Å¬ÁàLÐÖÖvèÐ!ŸmÎf­­­­­­~ßa° €@€@€ 0`À €@ €@€ 0`À €À €@€ 0`À`À €@€ 0`0`À €@€ 00`À €@€ €60`À €@€ apKKKƒ¡¥¥E €0¸?Üò;‡àСC‡½ ¯¾z¬÷Wd±d«¿$ûì'ûüÏA‰v.5)ÕÿÀ` €À`À €@ €0X €0X €00`À` €À` €À` € 0X €0X €0X €@€ €À` €À` €¶&À €@€@ `°@ `Rë_ÿõ_Ö¯_?kÖ¬œœœÉ“'/Y²$ÊO8¸PVýô(<À¤¥¿û»¿›1cFЋÀ €È|ðÁ´iÓ‚‹À0™ã[ßúVïôÍÉÉ3fŒÀ €ÈŸýìgSjþüùÇwX€ Ó$ý{øðá´ª,à;.äe €À|¼!C†$¶Ü¿ýÛ¿¥ÅÓÎò,€È––À €0ØÐ@€À €ÀŸ¨åNž<ùýïÿæ›o^°`Á„ †>qâĪªª›o¾ù?øÁÉ“'?ÑÓøY‚K}Mwwwüåt àp'ÖŸ©¾ÿþûO<ñħ>õ©ÒÒÒœœœ±cÇΞ={Ó¦Mù—éÿ`29z/åRßþ/ÿò/=ôÐðáÃ/ó½Ã† ‚àý÷ßïÃSJüóßþö·ßøÆ7–,Y2~üøÄ¿ýD úá‡~æ3ŸIüú¹sçþó?ÿó€pè»Â'pѯyâ‰'Fu©§±téRÇ´ÀàóçÏŸÿë¿þ뢢¢+|„ÂÂÂ+¬©‹þÜÇ|Ĉ‰5eÊ”Oš gΜY³fMâÏ™3çŸÿùŸû“yŸ(€S1±¾pww÷–-[>ö9Œ;V €ÈöþÙÏ~–ŸŸ|±ƒŸ4€Ïž={çwö~´OÀgΜùìg?›T¿ý ¼+àM¬o¼}ûö+|³gÏÖÀ`2Á†I哸WIßõÛßþvܸqI_ÿ©O}êG?úÑ?üÃ?|øá‡ÿøÿøãÿxÕªUI_3zôèOTtçϟ߸qãEÃìðÙ³goºé¦¤®ëý^y¦nb}à¶¶¶ø=Ÿ.\øÒK/ýÓ?ýÓûï¿èС{î¹§÷¨ŸþyÿO@Q®ü`æþá&~åСC›šš.ú•ßûÞ÷bg´ÆÅBô ŸF]]]ü¿çäälÞ¼¹¹¹ù¿øÅ?þã?^ùE°Îž=»nݺį™5kÖÿûÿþ¿¡ؼ¡¥nb}à’’’عóÎ;Ïœ9“ô]ög–ô˜»Ê@™üꫯ&}eSSÓe¾þ{ßû^Ò×:tè ŸFü@eYYÙÛo¿}ÑŸrù§}îܹõë×§¨~¯ph)X8fÉ’%gÏž½è·üþïÿþE¶€ »øæ›oNü²Ï~ö³ûÈk×®Mü–[o½õ¥ÚŒ3þéŸþéRßr™§}îܹ¤vWTTüö·¿ ñxæ• -¥ës>|øR_¿wïÞ¤«Rû€¬ àwß}7éºo¾ùæÇöäßþíß&~ˈ#.s«ÛÞ©öÓŸþ´Ÿ>wî\Ry–——‡[¿W2´TO¬o¼hÑ¢Ëüô¿ÿû¿Ü»+ €0ƒÀ/¿ürâ×Ì›7ï |îܹ‰ß¸oß¾PRíRO»««ë–[nIüó²²²ËFNÝÐR=±¾ð®]».óűF `0YÀ_ÿú׿æþè®°Ž~øá+üƤ§±sçÎOzä®®®Øg†ãÆŒÓÑÑ‘ŠûØ¡¥zb} à—^z)”‹K€ cxÅŠ‰_ó“Ÿüä ëèG?úQâ7®^½ú 8v©+ÚÝÝÝ·ß~{ïÏQÿÅ_üÅ  -Õë[>|¸ÿ/ÀdrWTT$~Ío~ó›+|ð_ýêW‰ß8wîÜ+|íííŸèißyç½opìÞ??´TO¬oüÎ;ï`0ørÍSTT”ø5'Nœ¸Âïìì¼Â;ë$=÷Þ{ï=íDÇOüŸ;vìøs€S=±¾pWW—@ €/×<999‰_sæÌ™+|ðÓ§O'~ã¨Q£ÂJ¯KÕï}÷Ý×ûv>÷w7ÀCKõÄúÀ¡¼@ €/"é—¹µl(|ß}÷Åþvݺu‰~Ýu× ðmR=1 €À¤$€ûüÞwß}7ñ'L˜ºŽ×ïùóçÿñÿ1éoŸ{î¹K=ÔW/ÊÐR=1 €À¤$€“.éô÷ÿ÷Wøàÿ÷Ÿø)Jµûï¿?é žxâ‰Ä/7nÜ^€úctWW×'½VèÀ` @J8é¦>þç~…»ýOÜõ×_?`©vîܹyóæ%~Í=÷ÜÓŸ[ Åýó?ÿó'½ RèÀ` @Jøk_ûZâ×ìܹó ëèÿø¿ñë0ì•|ý‘#G¿fÈ!¯½öÚÇ>ÔÇ^€ú׿þuâ×çææüÄ0X’þÑ~”ø5 ,¸Â:J:{œLµûî»/ñËfÏžÝû‹óóó¿æ¿øÅåôÏ~ö³Ä¯Ÿ6mÚÀOL €0) àÎÎΡC‡&~Ù¯~õ«}ä¿ýÛ¿Mü–«¯¾ú·¿ýí§Ú{ï½—ô•uuuI_3cÆŒ+¬ô˜çž{.ñë«««~b,€HIŸ?þsŸû\â—ýáþáÇÒüÁ$~Ëç>÷¹ÓëÊ¿þ?øAÒ'–“¾>éžI7ß|óåpíÚµ‰_¿}ûö‹~}J'&€À€Tð’¾ò¿ý·ÿv™‡}æ™g’¾þ¯þê¯+Õ~ÿ÷?ñ‹×¬Y“ø-IOuÈ!ó7s©‡úÙÏ~6dÈįomm½èHéÄ0Xª>þ|¬ã†~©¯æ™g’>üÙÏ~6ÜôúD_ÿ›ßü&éëüãÇÿ¶÷Ǥ«ªª.ú˜o¾ùfaaaâW.^¼xP&&€À€ðÿþßÿ;èeõêÕ/¿üò;ï¼sæÌ™wÞyçG?úQÒáÖØ=xÿéŸþéòžêT‹]‡9nòäɉßõ­o}+é'L˜Á«¯¾zâĉ÷Þ{ïðáÃ_úÒ—b›x¬øÕW_½ÌOOÝÄ0XÂ>þü¡C‡‚O(??¿­­íc9Õ©öoÿöo3gÎLü–¯~õ«ñoìîî¾é¦›>é?­÷õ´lb,€HmŸ?þðáÃWÞr'NüÅ/~‘ŠôêCªýå_þeÒ5–;ÿÛS§N]ù¿kÈ!WR¿©›˜@ `RÀçwÒì°aÃ.rÇß¾}û¿üË¿\ácLª}á _Hü®k¯½6é{ÿìÏþlúôé—oÔeË–]êÂW61 €À œwß}7‚ÏþóóæÍ+,,6lØ„ æÍ›wóÍ7ÿûß?yòd4 êcŸUWWW_þò—-Z4iÒ¤#F\sÍ5Ó¦M[¾|ùýÑÅçfÏÄ@ÀU™‘G{§51À` €À` €À` € 0X €0X €0X €@€ €À` €À` €¶&À €@€@ `°@ `°@€ 0X €0X €00`À €À,€ÀŸì Z2Ýà0 $ €;€ÏŸ?oâd~wvvúx=€S‚Egg瀀4"€À €@€ 0`0`À €@€ 00`À €@€  0`À €@€ € €”4Ûï´··›†Èðú1 €À €0X €0X €0X`0€F`0€À` €À` €À` €À €ÍÓ°@ `0€ÿøÿØL0@zëììlnn®­­-((~çª^b^PPP[[ÛÜÜÜÙÙit tttÔ××çåå—”¾½åååÕ××wtt¦ˆ¢¶¶¶êêêà ü»÷ï.ÀqÕÕÕmmm+€¢¢¥¥¥°°ð2)›3±xü ë§ÜúÀôÍu3·5–~m÷ÌmÓ7×M¹õñ7¬Ï™X|™ï-,,lii1d 0˜ÚÛÛ/uÔwTùÂ’M»æ~û•ª¦#W²Ìýö+%›v*_x©£Áííí.€ZwwwCCCïR:2¯dÓ®+ŒÞK-%›v y‘³ˆº»» _ ÎÎΪªª^Ÿs.)ßñl?Ó7q)ßñlÎÄ’¤ŸRUUåJÑ` ;v¬÷±Ù™ÛCLßÄeæ¶ÆÞ?îØ±cV„H¡ýû÷'µè„ÕwÌúµÕol™ÿôkVß‘ôs÷ïßou`€”Ø»woR…–>¸;¥é›¸”>¸;é§ïÝ»W²¤c¿C†˜ûø¾«ß®ýø¾!ÃG8,€R%é¼ßœ‰%ópýÆ–y“®Œ•Íç `€0uvv&Õïü§Z¥~?:%ø©–¤ÎÚëB `€Ðtww'ÞñhÈðƒuì7é8pâg¡«ªª²óþÀ 4 ‰ÇZþ¼ßËœœøÄBüWïÛ·/‚;wžÉ–––þÿÃOž<¹sçÎàb¢–Á ………ñ𛹭1‚õnkŒ?ϰþùi‘Á ¿ÚÚÚï{Ùú-‰wEjkk qÏ` Ð_‰gÿ–ïx6â\¾ãÙÐÏN‹ ÀýÒÑѼ¡#ó"^¿±eèȼøsîèèHÅX"˜Á _êëëãiW²iWŠ’uAü¿?s¸ÿV²iWü9×××§n8‘Ê` Ð/yyyAü‡ÿëÿ¼ªGqោ½µ›G^»úâõ‰3ø¥Â OpÁŸÄC4///Õ#ŠH `€¾ëì쌅Üø÷ÿÇUW]uÕ„Õ#¯]=òÚÍý?êûÌã#c±zíãŸäù»Ðý½u/%þÕ´u«G^»zä„â«®ºêª ›sÊÆ+´³³sf5è,€ú®¹¹91€“š³õ{8~ÌöâùìÑ|ýï¯+Žå½ø7Ö®ŽðÄ„OA777ØÄ1ƒ0@ßÕÖÖ†À úü½²ù÷®ºêª«V¼öãxæãûâåY[[;Às” À}WPP’#À—_ž½ÜY¾#kL»‚.ÿîëñæ,((”é p `€>:{öl<؆åüûKðKÓÖ­þ½øG“'¬}é²~¾ h/ò˜Ï½ÈŸÄÊöÚÇ«š®(€+šŽäL,Ž?ÿ³gÏÖ,ƒ0@ßË-žjùS‡_¢9ãW¥*yíê‘×TÂ.v¡¬g.rD7é1<óúů}•põé+ àñ7¬?ÿA¹1ïg°裷ß~;i…sò.Öœ¿»ùеW|\Ùöº³Ñe/‚•täuʼn_y…<åÖâÏÿí·ßŽÈïR—Á Ž;ϳI׎½HsÆjóªÕÓ.]¡{çÞ àg{®}ÿ)WÀÓ7×ÅŸÿ±cÇ¢3Øep¿8 ‚ ˜R=¾ws~tS¢Þ7ò핬} à…^ûªêðÌmé8ê}ûö `€A3uYaïæŒ…èUV¼6i‰ üÑ)»‰—¶ê¹Ò³ð3½øhOÐ^ØØWÀ¥_ÛŽ£>sæŒ4;ü»€/é‚#À úðèg.¸ö•#À) à€,ÖÔÔ¯²‹ž|¹ýøåÂî}룞sŒ¯ú½ ʼnËï»ø÷&ÿÞ×ߺä9À‘ìOúÓššš‹ÖoMMÍàœ Í>ö*Ð}º÷9À½–U®ý»¾œ¤Km]â*Й}ù+ ÐßZ‹çÙÅï|©«@÷áð'YúpàÌN_ Ð/gÏžGÚ°œ¹ûOØ<í‚Ót_š¶nõï­{<ùzÑ­½H_ìËúÀ9‹£À¾ ¿ b©öþýÿqñæüèŽG± .þ½ Å=ÿ3þÑègã׋þ˜Nþ²‹ž|e\þÝ×ãYPPÙé+€ú«¶¶öc8~¼·çŠÐÅ¿7auaíï¾ò™Ã—8[øÒû²KÔïðÌÇ÷Åk³¶¶6³ÓWôWssóðÇ.±»]5²öòçÿîË6îÓO¹ €'nÚoÎæææÌN_ Ð_!p,JcÇu{®ýQ÷Tqâ—õ;€sÊÆË³³³3³ÓW„ ///ÀW_9òÚÕ#¯ý˜‹T]x¤Xèö¾RtìxoqáŸ$öðêi—þäóÇ\zÝê‘×®»Kðø/þ‡ßÅg^^^Ƨ¯A}}}ÿáÿú?Ö+=$›øáçŠu«/–©‰×»êõe}»©ÒG¦ÝOÐúúúŒO_ ‚ŽŽŽxÔ ™×¯Ï''Þë誫~oÂæžÃÂÏéÿ#Ç—¡#óâϹ££#ãÓW„£ºº:^wå;ž ±TSQ¿å;ž?ÛêêêlH_ ޶¶¶xãåL,éW Æ/‚õì‘ðCºéHUÓ‘œ‰%ñgÛÖÖ– é+€BSXX½™ÛSÔ®ý_fnkŒ?ÏÂÂÂ,I_ š–––Ä꛿»5‚õ;wkâ“liiÉ’ôÀaJ<xÂê;"ÀVßúÙ¿ûöí‹~ú `€0µ··'F`郻#U¿¥îN|zííí¡ü«»ºº¢Ÿ¾ d ‰58÷ñ}©ß¹_pœ¶¡¡!Äuì p”ÓW„¬»»»ªª*Þ™C†˜×xpÐëw^ãÁ!ÃGÄŸUUUUwww® ¦ÎÎÎÄc­9Kæ?Õ2˜¾zª%ñ¾GAtvvfçªÀ!;vìXRÖqày“ê÷رcY»^0@øöïߟ˜C†øóç>¾/ñ“ÏAìß¿?›WŠH‰½{÷&Ýh ¯ tÍç öîÝ›åkD¤JÒqàØýç?ýZjOú}úµÄûý:ö+€BÒùÀ13·5¦¨~gnkìýã²ù¼_ 0p:;;ï¿2VùŽgCLßòÏ&]ï*vÇ£¬½æ³ÝÝÝ ½Í™W²iW?Ó·dÓ®¡#óz?xCCCvÞïW ²öööêêêàbF•/,Ù´kî·_¹Ò+<û•’M»F•/¼è£UWW···¸L---………Á¥åL,Ãú)·>0}sÝU¿3}sÝ”[Ãúœ‰Å—ùÞ––CÀQÑÖÖv©£ÁqW]èò_\]]ÝÖÖf° Š:::êëëóòòúÀyyyõõõ†)€Ò@gggsssmmmAAÁÇpAAAmmmss³+< `€Œ¶ ˆÀ`ŒÀ,€À,€À,€0@#€0@ `°@ `°@ `°À`ŒÀæiX €0Xb···›†  0`À €@€ € 0`À €@ € 0`À €@€@€ 0`À €@ €@€€tðÿÁ¸ŠÕ %tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/from.png000066400000000000000000000675141431412030200243510ustar00rootroot00000000000000‰PNG  IHDRT¤FÚgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷ÜncIDATxÚíÝwXWØøý¡J‡Pн ö†=öØ=Fc‰5(Ñ(5š(vco±ÇÞ°+–ØP슽¡QÞDÚ¾žçGÞÍò,Â" ßוk33;gæž³»Ü{ï9££T*•J¥”/|õ}õ}õ;›w6ïl.@p,þXü±x·4·4·4m·¥K¸@ô ÂAˆŠ·”!eH’RRJJe†2C™ù8ërÞ³òϧööÌñÌVrÑbæ\²>GÙIÁ‰CÁ?ªÂu„_èÈóàÝ è\ ¢ÁUéã\e <æqÞ>&ùøX£¿ˆgÄ‘ö#,8ŸøEíêÐ"­äg+Ú{¥–hÍã”÷Þäw(0>0>0¾x`ñÀâ¥ú•êWªßY׳®g]‰òßûùï翟ïÖß­¿[ÿ(×(×(W+¥•ÒJyÿÁý÷X8Z8Z8ª>K¡P(ŠÏk1:::::ZÛç65ljØÔG§zt*ëòÖwZßi}‡ëšXysåÍ•7§·›Þnz»¼}Ï Ž Ž v­éZÓµfŒNŒNŒNñûÅï¿ï»Ëw—ï.»Év“í&h`|¦gÓžM{6­ßÊ~+û­|£ûF÷ÍÿÌ.s]º.]߉kß­}·V!)$E>ÆAé¤tR: o2¼Éð&Qó¢æEÍËÝ‹¹s/¦®ô[X,©´¤Ò’Jë׬_³~Í¿V($…¤ø¯5KÉR²¼ñÝïn|·¿õþÖû[ßÓ¿§O?tWè®Ð]º|èò¡‹µ¿µ¿µ¿ýHû‘ö#]Í\Í\Íz¾ìù²çK·>n}ÜúèééÑo³'JJ§§Ÿž~zú©§fœšr5äjÈUñƒ€°1acÂÆèùëùëù‹Ÿàˆ"S£ßýÞè÷fU›UmVõ«;_ÝùêŽîݺè2a)YJ–WN_9}åôå'—Ÿ\~â·Èo‘ߢ`ß`ß`ßEŒ"F÷ îAÜ ' ' 'E´"Z]îM¹7åÞˆ¾Ñ: u@ë€Úµjð¾‘SâCªïºâSf\ÅqÇUüýåï/)~„4¢ÑˆF#YudÕ‘UômhƒŽR©T*•ùÓ˜¯¾¯¾¯~góÎæÍ³.?,þX¼[š[š[— à‹ÿ0þa“ÉM&7™, š?—0òÓüYógÍŸ5ïÏyÎûS,±9jsÔæhD—ˆ.]²ïypFÍŒš5«Ì«2¯Ê¼ß~øö÷_öµv1ñbâÅĉw&Þ™xçe×—]_vý¼ýìk±¯Å¾m¼Ûx·ñ¦÷f%Š»S‡O>uøÁºë¬›û}þùîÏw¾l;Øv°­+ÅJ±ôÂHô‡EmµYÔæÉú'러Ïý>÷ Ú3hÏ vËÛ-o·¼(¼oä~pöﺉ'O$žpè0Ða ¡J9¶Ìh™Ñ2£ßŒ3þÍ8û-‹yó*æeäeäeäÇÈO<]ðtAc¯Æ^½².Ÿ»xî⹋G=tôÐì÷}XLl®ní£5Ö±”,%KQ`ȺØ~”ý(ûQSžúóÔŸs߈(ñªû§íS\7~Ýøuã¿T€E çÇ?Žøq„6J8‚uˆuˆuˆh«hvä­É[“·&k»ô+tü¥ã/‰±Š±Š±¢oü÷·áw‡ß~WÛ¥_¡ä‰’'Jžíʵo >$\ÛïêÃÏ ?7ü\Ö%¢ôëÖÞ­½[{>º·( Çžýúì×g¿ª[»Äf‰Í›j}«õ­Ö—¢/òßÎ;7îÜxmõ ×6d]>iÿ¤ý“öö>¹oȾ!û†œZ|jñ©Å_ê–Ú.µ]j»{Éî%»—¨Û¦z‡êªwXûÓÚŸÖþtWº+Ý•Þz?êý(ñxÍô5Ó×L¯úCÕªþ}[Åã‹Ç/j}ø\«s­Îµo?Þ~¼½Údþî݇wÞqøß{þÞó÷ž;Vw¬îX…õëÖÿeÍ—5_ÖÛoN¿9ýæ¤7Ko–ÞŒ¾Q0-±üÅòÇ®»~캺mÄ]ƇæÓŧ‹O—§£ŸŽ~::tnèÜйâçY[·$nIl4Øh°‘ájÃÕ†«³oW¡«ÐUèò¾‘FSŒ¦MYÐcA=².÷=í{Ú÷tnn:¨b hä˜øjUÝñu­˜ü™X!?¥ü˜òcʵ•µ•µ•Y§ë´p´p´pŒ Ž Ž Ö¼œý×ñùYH£ÄĨß_{ÿÚû×ÞšüñðÇÃÕ­ýæü7ç¿9_óëš_×üúóöïäàäàä ®ø$fXØja«…­äÚ‡Åø¿Ç{ïy¼Gu­³¹³¹³yÿ?úÿÑÿÜ·¥T*Å”Âê¶éñ²ÇË/é˜üæw7¿»ùêÚ¶Þm½ÛzçU[;ÖïX¿c½ºµOíû´½ã÷Žß;^<·àÄç¾Þ}½ûzãíÇÛ·oéØÒ±¥cÅ+¯T¼b·Ön­ÝÚÚ–µ-k[vwèîÐÝAL¿)Ê š‰×µvéÚ¥k—vmÒµI×&µ¥ÚRm©ô˜ÒcJ)5µÔÔRSk ¨1 Æ€“L0iãW¿Úø•æûÏ©õ6ÖÛXOuyïC½õ>TîªmÞÞÞêÖl3°ÍÀ6¹ó‰'œX ö ½ ½ åáG§ztJÝÚz|èñ!o{òY׳®g]Õ­}²þÉú'ë5)õÑ7´M\ uk›ôiÒ§IŸ¼êÕ~¨öCµÔ­ýðí‡o?|ËûFîéééi3¦Í˜6ªkÅï|î Ws*•J¥R™?„›@sy;q¢&_òfߢêÂÇ„ ³~èú¡ë‡^п Aÿµâµâµ"Ê5Ê5ÊUŒþ|´æÑšGk²o7Á7Á7ÁwáÐ…C]¾<|yxîÏ7Ð?Ð?Ð_Ý$«Ú¸"">¢=üÂð Ã/œku®Õ¹|ºw!îBœkºkºkzÖ墬¾òÜÊs+ÏÍh0£ÁŒŸw{í´g¸ïcîcr·ÜÝrw˵ŽnÝú?z—ïZßµ¾k«õ­Ö·Z_mD;÷ÇcÜq7ÆymöÚìµ9×Èà‚ÁƒÜ¿â4zå:G;G;—‹+W.Nu­•ÒJi¥ŒÑ‰Ñ‰ÑɃ-%KÉR¡«ÐUüÇ•EÉDôCùõÅ;ÏÌÊ3+Ϭ¬ºvëã­·>îjßÕ¾«}^µ«««SƪŒU«Ï»²ôüqjñ©Å§«ÿ½±ÜÆrˉ{ç¾­äyÉó’çÙÏ·Ÿo?_u­™›™›™›øÄÌ>ÎòëšüE”Óý‹¹ÄÉ´ýN€üTꡌ@¡$Š%•wVÞYyçâ6‹Û,n#î¥*J¿šïG”Å]Wóªô+ˆ}Š£ÊŸ˜¼ìú²ëË®--ZZ´´ø¼Ò¯ÐqrÇÉ'gý²[Œ¥îùºç랯sSúú­ì·²ßʼúyÁßgþ>ó÷Õååî•»WîžÛ(·Qn£ rOn°¢ÁŠ+%äì_~á£=ö<Ú£nmT‹•b¥Xu+E G®ïiQ.Q.Q.êÖ:trèäÐ)¿x û@÷ºµIk’Ö$­¡obŠcñ“&Õö£ìGÙçÙ»\ø·á߆«ã[&£LF™ Þ7òŠKi—Ò.¥Õ­~pøÁáù{Ÿ™ñiÓ:§uµ|ÔòQËÕ“Óœ˜öùSuù±ëÇ®»ž??@~(@­nÆÿýOÏÒ„»½»½»½¸;onö#ʽVuXÕaUö[¶0maÚÂtKè–Ð-¡Ž?8þàxXÿ°þaýî|¸óáN1)k«W­^µz¥n‰'O$žAkûkÜ€Zµjeþ¡ÿ@÷¿ümäobäй¡sCç^>qùÄå3 gÎ44Øa°Ã`‡º½‰âcgÇÎŽOÏ8=ãôŒ¬k›6jÚ¨i£ w.ܹð•Ó+§WNobÞļ‰9rõÈÕ#W¶Øv`Ûì6Ú*Ú*Ú*7ç{ý§ë?]ÿIÝZQ`àUœ{O>Yød¡ºµe£ËF—Íã{ö£ Ÿ}6öÙXùÅyÎÆ9çl °øï%W•\UrUÞ¶xã»ßÝøNÝÚêªw¨Þ¾Qt¤ü˜òcÊk6­Ù´f“ºm†1b¬Iá–¾¡¹zë]¬wQuùûùï翟OÏÀçÑ'PG>U—g_ÈT÷¬ÜÛ¹çþû³.)æUÌ«˜—(7¶_Ö~Yûe¶smçÚε¹lsÙæ²Í%›K6—T÷3!uBê„Tu­è]Ö»¬wyI‰%%–”p¯â^Žз±·±·±Ôäÿý+-ý¿]¥®RWI!)$…¤Lÿ˜þ11R9ë>ã‚ã‚ã‚;ï8¼ãpm_5ÃÕ†« Wï꺫뮮½^÷zÝëõ¼èyÑó2¿j¯!þ…Õ«6K1K1K‘õþˆšì_gùÍò›åwôäÑ“GOJÃ¥áRæy5ÿö6ÛÛlïÅÅŽÿ£àýÕ?_ýóÕ?Ÿw¦Ç}Žû÷Q·vâ‰w&Þ& “†ñRΕƒ^ z1HÝZ1 mÞ¶Xºc鎥;J¿K¿K¿«®•k‘Ï´“i'ÓN¦¦¦Ún+½Yz³ôf«bVŬŠQ·MËÔ–©-S÷GïÞMß·Èæ‘Í#›k8®á¸†÷î'ÜÿIæë^¨{¡î…î-»·ìÞ2ZŠ–¢yßÈ3uïÖ½[÷®ºµîÅÜ‹¹£— § €BILPìçéçéç)&n·¼ÝòvË]Í\Í\ÍÄÁ¢<œõY—Ÿ\~rùɉ}'öاnÏYK¿šOP)¶T-ýfuò¯“üKÛ〧}5í«i_‰ÒoöÇ/Öj^úl4Øh°Ñ¬”Y)³R4‰Œ&Û<:õèÔ£SŸ“+~Wü®ø©.W½îÈìÇj—î_ºéþyÛböûŒ.]&º Ó¢æÆÊ›+o®¼¢ºVLÏ>$eHÊúFa'ÆõÆXÅXÅX½=ùöäÛ“OÖ?Yÿdý®»6îÚ8®ý¸öãÚWxPáA…âJuâ~êÛ¯m¿¶ýZ>é«Y­fµšÕÔ~Ò¾rúÊiz2rŠ0 ™2Ñe¢ËDß}|÷ñÝâ±æ_Ioª¸©â¦ŠêÖ¶ŸÝ~vûÙ9-ýf¥É³zïu¾×ymDFŒ~wGÖüø”=Pö@Ùì·1¯a^üƯõ~­÷k½œFæï=ïù{ºµQÎQÎQÎ9=S1±ö=½{z÷ôT׊ðJÉ+ 'N$œP·VLož·-Šþ¦öxŽ'O8Îuù<Þ%¼Kx—øÍø7ãßÔNË?¶ÞØzcë‰éßé…×}½ûz÷õlwÙî²ÝUV§¬NYj ¨1 Éä&“›Lþqâœø÷¿oü}CÝÜÚ»µwk/>míGÙ²Åû†6d;1&›Ÿ5 §( ñZìµØk±(vjþ¬(×(×(WQüP·ÍôŠÓ+N¯øy¥ß¬Ä}vÕ­=úôèÓ£OµñeîÈ¥#—Ž\šÓã×ä^Œ#6د y»åí–·[ª[ÛqxÇá‡çí˜Q›7=nª[;qÿÄý÷çm|*©p¤Â‘œ>+ûÉ'…ª“ªNª:éóŽÊpµájÃ<þ¢ÿU­Wµ^ÕR·¶ø›âoŠ¿áõ’W>Îû8ïã<µýç˜Á1ƒcyÛ¢þeýËú—Õ­MÜ™¸3q'×EäyÉó’ç-ðXà±À£úè꣫>_ç|óuÔm/&ÎSÁ׿\ÿrýËô Ýͺ›u7óUDt‰èÑ…¾¡=Å‹ü¼O=@`M5mÔ´Ñç=÷víÛµo×V·Vwu©æRÍ¥šºµwÊÝ)w§\Þ¶èØÄ±‰cmD¾ ©}ÕâU‹W-Ô­UÄ(b1¼^òŠ‘—‘—‘Ú‰US¦ L˜·-~úñÓŸÔŽ’78npÜ€Qžÿá`݃uÖ­ç_Ï¿ž¿×f¯Í^›³ß¾üÅòË_<üöðÛÃo[:¶tlé˜ÓÁÐ7 2×t×t×tñX\Ùˆ5"j¼rzåôÊéÝtÿÑãJÅÙï­ýÊö+Û¯ŒvŽvŽv¦ohCö?]zÙüeó—ÍéÕÐ`NÕª;Uÿ¼ç† 6FÝÚ*sªÌ©2'o¶ò•ÿ¨¬vªêwkß­}·6oﬤ¤¤ÈkoÏŸ'äDȉµ“‹f?Ž 9eÚÉ´“i'uk“=“=“=ó¶ÅOžŸoþúFÁ—õÊê]Ö»¬w¹øýâ÷‹ß¯Y+²VdfOØueוÌû㪛³! V@­€ZSfO™=e6}C²ÿä ¹r5äjÞþÍy£ €BÃ*Æ*Æ*æóž§n­õ}ëûÖ÷óöhm.Û\¶¹üyǃì%ø&ø&øª[ËÐyËt€éÓêÖjãžÖه̾6ûÚìë¢|EÄÝUíýkï_{7wkîÖÜíÆ¸ãnŒËþY•çTžSyαÝÇvÛ½véÚ¥k—M1šb4…¾A”г¿jê¨{ ®&eHúFNe_ÎþSPE…†¥£¥£¥ãç=7û‚«YS³¦fMóöhÍÜÌÜÌÜ>ïx½ì¿ W*ŒÎ3Ùœ‹¶Š¶Š¶ÊÛ³ßgö¯,y»ùÝÍïn~×xnã¹ç®:»ê쪳Ùoo?Ê~”ý¨å~Ëý–û=›ölÚ³iMú4éÓ¤O^Ý!?Ù÷ôféÍÒ›Mx>áù„çô¼¥ˆVD+ÔF>áJ•„+ôOhŽ0 X)VŠ-,«EÿŠ¾Ú¯k³¿[!²—ýH¯ìGž!§lçÚε«nmèîÐÝ¡»ó¶ÅwëÞ­{·NÝZkkkÿ¢v–‡/_Þîh»£íŽ? ~üHÝ–ŽŽŽ3 gÎ4Sͪ<¨ò ÊyUô¥o«­^´z‘ºµþoýßú¿¥oä­ìˆ–´6imÒZz&4GE‚¥…¥…¥…ºµÚ[¬n­"F£ˆáº|Óþ¦ýMû«[Ëèê¼UñHÅ#¨[ûv×Û]owåm‹¡kC׆ª-uTZYie¥•Ú(g¼·-ÉR²œôϤ&ý3³òÌÊ3+«ÛPÜ¥{Ħ›Flï<³Rf¥ÌJÑv”èrÕpEà W¨½²'ßž|{2û‰ éyû7CöŸz€* À(²/G•‰*U&o[Ì~:J+¥•ÒJÉuù<Ù”ŠrŽrŽr&Jy%ûBΫZ¯j½ª•·-¾.þºøëâêÖVÚ^i{¥íE!ò"&DLˆø«ç_=ÿê©öêl¯¸½âöSSOM=5uÃÐ C7 ΂¾QØÅêÄêÄêlößÿ<~ðøÁcm´›ýøÝ·'Þžx{‚¾‘·²ÿä2¯a^üŸGÐ` ¶«lWÙ®R·öé´§ÓžNËÛŸ,x²àÉukK-q´ÄQ®ËçÉþ«pmÜ]²(%FukïÔºSëN­¼mñv‹Û-n·P·¶ÒŠJ+*­wÌ·…m Û¶¥ä–’[JªÛFŒ÷}1èÅ ƒ¬h°¢ÁŠüÝHßж § § §Ÿý÷¿_müjãWÚh×à˜Á1ƒcÙ}#oýàšæ5ÍkòyÍQ@‘P;²vdíHuk5¹£aNe¿ÏÚQµ£jG1Uéçq6w6w6W·V㹋²º÷êÞ«{OÝÚÛµo×¾];ûÉ`sÀR²”,/\0¸` ºRÿ˜þ1ýcݺ;twk´ãããÝ«¸Wq¯¢ºV'V'V'ö·÷¿½ÿí}Öñ¾ô ¹ö E "P¨níãõ×?^¯v#]"]"]Ô­-±£ÄŽ;èy+ûO®ì?õU€P$Ô½X÷bÝ‹êÖžüëä_'ÿÊÛOì;±ïÄ>ukëo«¿­þ6®Ëç©p±ÂÅ j¯&S@ç-373737ukãÆ?Œ˜WmùîõÝë»WÝڦ훶oÚ^ÞÑž?kþ¬ù³Ô­^az…é~³ûÍî7»‚ðóúÆ—õdÝ“uOÖåY5‹‡×^{xMÝZû_ì±ÿ…¾‘·²ÿä*¯ü½ò÷øÑ4GE‚[·>n}Ô­wRÌ«¯ÑÅWçN=:õèÔü þ@÷îƒ!¥†”RŠëòyÄWáêÖRÖ¯^3¼f¨[ÛÏ£ŸG?Ü·²kã®»6ª[ÛqDÇGȵº;twènu¨Y+²Väì³?ÌþPÐ"@ßжo|ÛàÛªË|||µÑ¢ÏŸ!>CÔ­m^ªy©æ¥4‰6}Csš€ù$€æ( H°9jsÔæÿ¸çn§Þzwêû¶f¥ÌJ™•¢ní×½¿îýuo®Hn¸š¹š¹š©[û²ëË®/»¥¼ÕÕ¾«}W{ƒ; þcê×C%•8T"7?¡~ü(øÑŽ3;Îì8£ºV´Û¥r—Ê]*Ë5ÂGÞyw亵ÓzNë9­gÁ,bÑ7´­Ç‡z|P·vPåA•åÙ¹G6lÙü¯žõü«§ºmÚz·õnëMßÈ[¯Z¼jñªÅç}êªô ŠŽCz‡ôéõHï‘Þ#]u­˜´Y±O±O±ïó -[‹m-¶µØY“³&gMÔm3ìì°³ÃÎn3ÝfºÍ”+òyj¥×J¯•®ní­–·ZÞjI”òV©~¥ú•ê—ªHU¤þG©æ“ç'ÏOžm·¶ÝÚv«¸§+ÅJ±šïÿçW?¿úù•ºµƒ6®æYͳšgô¨èQÑ£rzüêղ§Ëž.{ú¥"¬nÒxãÑÆ£G÷^Ó{Mï5ÑR´Mß(r}£UD«ˆVêÖþ}æï3ŸÙ®Ø®Ø®ÈÍO”NJ'¥Ó¨í£¶Ú.u—ºKÝU·©s·ÎÝ:wÛÔnS»MmMzcaïù)ó“ëštMú×äÛFSŒ¦Mi;¯í¼¶ó æ; &¥R©T*ó§1_}_}_ýÎæÍ;›g]~,þXü±x·4·4·4. @Á—ýxÜ|­½=kÞŠ3”:0u`ê@Í[¥ßñ&ãMÆ«-ý¶ŸÝ~vûÙ§gœžqzÆçKá¼&c¼rÚŠº}ŠI¶3jfǪ̂Yð{cÁ‰§&Þž|{òíÉÚÊÚÊÚJñQ·e”y”y”¹NNNºmÄ5ú©êOUªªn _1¯b^żîÅÞ‹½k7Ùn²ÝdíEì‹]YKÉR²Tè*tÿ1G—y óæ5Ä=SÅ{H~Úîq»ÇíGß(ø¯zqÏ]1)tN3Æ*Æ*Æê‡m?lûaÛ™ÁgŸ¬nËÃ?:üHL]Þ7òç]7igÒΤ¥Ç”SzŒêÚfU›UmVõò“ËO.?áÀ…EA¨‡2EÎc¯Ç^½­n´ºÑê¸à¸à¸à¬k³~=-¾ðÝvmÛµm×êÞ«{¯î½GK-qôC—]>t¹Ùíf·›Ý6ÕÛToS½K&—L.©-ý*b1Š˜eï–½[öÎ6Ú6Ú–/pó€ç÷žß{~ïµÙk³×æ¬ËEy€øhC鎥;–î¨n<_VÅã‹Çß\bs‰Í%ê®w¸ÞañÚwº½¶ðÚÂk WvZÙie§'러²^Ý~æì›³oξªwªÞ©z'zrôäèÉò‹j`H`H`ˆä$9INªkEéW<?É׃'“ÆÑ7 ‚H‡H‡HëëëÕµYï,>¹ÖL_3}Íô†+®h¸¢äª’«J®*¶ºØêb«Å½fŸ,x²àÉ‚3CÎ 93d•Î*U:Ò`i°¤¶ô;j¨ £&t«Þ­z·ê9-CÒ7²wOÿžþ=µßΉð‘«G®¹Êg4Ç`äXaœµ-ÓN¦L;%žH<‘xB±£÷övÛÛmo·Žs:Îé8§`Ƨ0Ž€&“›Ln2¹°÷Æ‚OmCn ½5ôÖÐ[âùÓ¿Ô•½`sÁ悺©é¿,mÌU@ßÈ«!WC®6¯Ñ¼FóÑÎÑÎÑÎÚnñëv_·ûºÝqŸã>Ç}ò3Ú¡oäÏ»îòðåáËÃgVžYyæÜ«øšç5ÏkžU~©òK•_øû °(õP].Š&ñE­(ýZ_²¾d})o÷o;×v®íÜ£W^=z5÷¥_¨ªúCÕªþ nmWû®ö]퉒ö„w ïÞI{ùÛÈßFþ¦NÁô¡ó‡Î:Ó7èšphâÐġɅ¸ qâ¬h°¢Á m´"&ažù–Ë-—[.®é®é®é”~µÇã¦ÇM›ªËý~õûÕïWm6+ÊDoÏÚ·Kõ+Õ¯T¿ÏÛ›“ƒ“ƒ“ÞA{í´î·u¿­û­è¼jÄ”òô úFNcrrþÉù'ç‹%ö£ìGÙÊÍ>EÑ·K•.UºTùÇꫬæÏš?kþ¬¼6}ã_,%KÉòÈ»#S]Ùͤ›I7z;>ó/|¦€@N‰¢š\¿”ÌZ2£H_¹¾r}å6&lLؘqOß’—ü»äßT-L[˜¶0%JÈ=F•©-R[¤ª.7s3s3s‹rrrÍ}+Šlq ›£6GmŽ6/Õ¼TóRã*Ž«8®¢¸?tƒ V4à^›ô úF‘¶òæÊ›+ojû]=Ú9Ú9ÚyõÕVȺü›CßúæPw‡îݸÈ+€ÈÐÓÑOG?m^ü†y ±$Á7Á7Á·|Pù òAÚn2pAó¢é‹¦/š^ ½z)töÙ7fßà.› o ?ýiô§ÑŸFâ“H,cÍç웳oÎ>zò`2d;×v®íÜø‡ñãf]n4ÅhŠÑ”ð1ácÂÇ¥¢† èÈâgC¯ ½6ôʺ|aë…­¶®¼³òÎÊ;‰ò`²¥ZÔIž—øR 2Ad‚0È` À €@&(€LP™  2Ad‚0È` À €@&(€LP™  2Ad‚0È` À €@&(ç˜ß<¿y~ó®¤\I¹’"d.  ÐQ*•J¥²(‡ bbÄĈ‰wBî„Ü ñéîÓݧ»÷ïÞ"gDΈœ‘›=[϶žm=»{‰î%º—hçÝλw‡:ulÙ,²YDç@æd^Dy«È€ß›¼7yor(èPС ¹çnœ»1a^¼„|ý-¼Ù³)fS¦›:lê°N=œz8Ù%Ù%Ù%ѹ™W¹!÷°£ä(9úyúyúyÎ;c쌱7-oZÞ´,h‡Y?¶~lýØÙ+g¯œ½²‘W#¯F^R°,ÓA€"ÌȼȼGäXŽ‘b¤ß=¾{|÷ i3¤Í6õ"êEÔËén*¥ZT4ZÕÔ¦ä`‹•wY^1N´Ÿg\Þ`¡y;ƒX=Iÿ{Ým:éi›3¾SêÅû¤Z¦Kï¦||•:éYÿئM¯D„o÷Ü îEò˜œ¶ksËæ–Í­-g·œÝrÖ­¯[_·¾’•d%YÑY2UÅœ7š8ì®ch¼Ø:¼¬aW³£%Æé¿3ìmj®ë k«·SçHFXúe×”}‰ñ! ]>¬H³,ù:5åHH¿;)Ž ü>%Ç¿.'sPt2¯bÝlMOšþYágW]£mvÎÅ N[ÙÔÖ]bda2Lç©Þn½qÊ*éýÒWdx$Ç%mLmëq7ù»÷qŸÇ¿\|?ãÓá°ÄàŽd^Ȳ*– ,XnÄF¸Ùúfë›­5yVÓþ%=Í·]_¡_IóÆwKz™[ÙÕ4Ö1ü%¯ŽêýƒÊ”×j‡{ÆÇlúáåîðø+»Â½âiòÜúç럯~C¯ ½6ôrpp ËE3sq¸^§…ñZ×%=ÚXÍ)½¢VyãÚfólÊê?Í«£J˜ñ:­ÊÛq÷^}¼{ßãÐÙ˜i! ï\ü8ŠÌ@ÑɼL7VØèÚÈúº[ƒÎƒLË–·®ÙÔ`—å>ëð¼:ªÔþ±½#K&¾~ùàJdCßǶ'{9ì¾™òV¡/+]”.J—u³ÖÍZ7Ës¨çPÏ¡ÙooyÑ @oé’5õ}Êdôìî¼ÓzÔ^*Ï¿•8-½•bzˆé1úf»7º±-RË¥OÈþI^›¼6ym9säÌ‘3uüuüuüé¾€\3—b˜;éÎj3ÿ—Ûß+Õf¹­TNr“Lóõ $_)ñÙ¹³¿Ä‡¼À!lú§_ãƒ2f’¹Gæ¥gd¼Ô¬WéV}Bݯ[=©Ûr¤d!U—åëAÇI$¿˜ªw,/¬{ûÏÞR˦'œp€Ì ¹Qˆ Àý#úGôïåÐË¡—ƒÿ_þùÿ¥nËJ{,F]µ¶aŸr+ê}kó›Ù#©§ä$/§qP ’¢nýñ[Bõ1£®ï ÷¼o܆ä6ê6wî2Üeø!BlvÙì²ÙE'䑹ŸP¦–a¥öo¦ùØn±O©±Î¸—TYj#™ˆÓx&•âß>ùñÀé2sÚ… ‰Zúæ^Ês2…+ó*6Áv¢SKÇu*OüÊĦŒoÕdÉJª-µ,§#Ý•.$E¼q{b- [tÌ 9U( ÀþÏýŸû?oѰEà ³ßòPÉVu+/mùÌ®’e¡éô*¿Û¿Gø?·Ÿýc‚/^¿xýâu—J.•\*Ñ•€Â›¹ôú}™_éÇÎÑ ”¦Ý ËÙ*nè$z˜îÞèm52?ó*{ôÇÆó3̧UîWç\a9»ø9Ïvßùêu—Õ×&ë’yAsº…ëpÏo:¿éü¦ì_Æ?u¬ZÜîC˜²Ï•z; WéWÇ,Ž_œ‹º-EDLèÊ@áÊ\êmøP1ß½ü%©¢Yá*ý â˜Åñ‹s!sPÐ2¯MZ‡õéTãéâoOt-\¥_A³8~q.d^ÐD¡|Bï„Þ ½-Z¨ÛæhÝÖgªLozÖv“Åi9]¤+m†Ƶïrû|Û§¿«ÛfGÜŽ¸qÒ;¥wJ§[9sé=uU}‡ŽÉu–›ì–Ó¹Ýù)©ß¾¹cn†Ì&sðe3¯r3ÆžZÔÀÌ»â3×9r:÷„î/*ߟ0{e‡‰7ȼ N!,~­ îelÔFÏF'à‘i·ÞµÊ˯ô+ˆóç(ÎWu~ÙÌÌE?Ö0H§ûˆM‡‡•}-¿Ò¯ ÎKœ£8_2ù™yé¬1Ð7œ\UgVËÞò+ý â¼Ä9Šó%ó¼ òàìçm¯4Æ¢«ÑÁ³®ílªÏ1ïmðQO¯(\°ø}©ÆéémîûD<šö|Uܑ䞪Û0Ï;Pp2—â½Ê¤: ¸ü×a§†ßšÚë:…˜¤üø.#pg³áÝ‚JDx£—Bæ@{™W±¶Ýœ,+4ò¨±¢¹Þ2£’&?…˜¤»'‡'-é·äá¸KŸ6„Š%ó‚P@GGôèÑ?ûÒï“öÔ^tJ¿‚8_qî"ªÛˆ¸‰ÒÅ€/•¹ˆÒïÀõ›CæÒ¯ ÎWœ»ˆ™ md^¢ô[1iâìÕ­‹NéWç+Î]ÄÌ B++]”.J—^½zýÇbd1ê×xª¾—n…¢yÙĹ‹8¨›ZÄPÄ“Žägæ"&@£~ æ…èÎ.šQç.â nRh2Ÿ—y‰ Ũ_݆ŠýX4£$Î]ÄAݤÐd^E®W´Z7kݬu³üÿòÿËÿ/Õµ·¯unåÚ¶¨úUGÄAÄDu­ˆ¡ˆ'±ò3sùþÀ¾Ye–µQ¿êˆ8ˆ˜¹È«Ì«Ê¿6ÝÒ¸¨úUGÄAĤ0f^'ó²ÑéŸÁDIêbUÐ2¯Æë¯o¼^ŒôÍ~KŠÁšûÒ`GÉQrÒfH›!mTW*Ùªnå¥Fvzúº¹Tš±qS]›gGÉQr$V@^e.½~_æWú±þKÃsº¤±q#s IæUöèçgè.53ìM¨4!b%âV3/1±³g_Ͼž}_7zÝèu#ŠÁypõ¿ló~ž~ž~žõ"êEÔ˺¼Ò‹Fg[®¶3·\ËEÊ)7ìËEœẺûÌ¥ø„2µ +9ßmpÍ´-QÊ)7C2ê2¯bl':µ4ÿ©²kùD)§DÜD ~æE18¯è(•J¥Rù¥šo§ÛN·îMË›–7-³.?Óªí™jÝê´ÙdöŽçç¹Õ3bh‚}Ûδ}|8ëòú±õcëÇúdødød% 7™Kÿ¯ڗ­ñÊxQú<ï^?,ÿqË®C#J7!sȼT3¯ &6,ÿݤB™¤ªˆÒçIzùÆä‰ßˤ¥#~š^3/QÐ]3dÍ5CD¹W“g‰âñè-£·ŒÞ"JËE犱ÀïMÞ›¼7Q}[^4Ð[ZÏÑf”ÙU^¹!b(â™u¹ˆ¹ˆ?Q>/s)ö‡¹“î,û—5†3ÁT®ˆŠx’¹d^Y—ë/5ëebTfSUjF¹"b(âY3/FçÔ+ :t(Huù’5õ}ÊdHˤRY^¹²Lj •ÍŒ§Æñ É_Îmæÿbû»ÔVò”l‰R®´•<%ÛÌx’¹d^Y”nÕ'Ôýºä õ“<ˆR®8Hý$ÌxòÌ‹b°&¾D8VŠ•bçnœ»qîÆÿÈý;”ºeµ+?gÕÙ§ï¯(»vݸñ²k\ŸÇs³·›ßEK~÷êã—'ªyz;Þõ*ybÏÅ›Šªó¼/ßí1,À÷×—3¯ÿúá›øIùsvêâ™ÿX)VŠå}ÈiæRÖ¬±·©¾öúþö×IeN>ÕåÝÆ¿¾ëióúÆòµ-Û½¨»®q—µ¯ÎïóS1xÅõ[[¶G®KKúŸ‘ã*tÌÃ~=Oü6#þ]õõû» ù³E³ˆçÄþ›Ï¨öN?tŽÿµ5ò'ØêâIæåÌ˼w5ã ´ÑlÆâ4÷‡ð÷>wº$¬:øËÚ'­~[:pàƒm+tÞöüƼÅ#ö¾Ù¿±ù¬í £_N¾ÿ™ÅÑÄo~yl³µÙÜ›OÌxÖ¯Òƒ÷/;z?öšÞ¾ßè K[÷ͱHìÐóÑŸùluñ,¼™Å`u¾À=€#&FLŒ˜XqcÅÿõbnÚ¿¤§ùö£«¿zSuE>Š¥´SºÑÌí¤çÃŒ‡×bæ%e–ã£û÷ÏùŠ×æ·CV,ö°^è8¥¥´Sº‘ýö“6V¿UjÅÔž.‹¶kûD»üx®Ì“qWv…{ÅʺüŰÃ^ ³Yd³ÈfŸ2€&™‹Ãõ:-Œ×öÙ³jžã’èôŽ¿?IþÒOR›ì·/¹½ýÀo ívj0ø¸¶cþÊ}…ÙÄé‰Ã^»ï'×Ì‹{ÀwBî„Ü Q]>t}…~%Íóé ,¥Ò9ý'† ÊZúý<û{¼™°ÀãáóІ¢ôÛ¤O‰Óæ.ó‡Ô­âlrl÷WíªÜÅrñ¬…ÃÕ w uàýHmŸ®ºØª»Ôýµìº¤G«9ÚhñÆÚmW£êd-ýš‡ÛuÔßÞúÓÏÕJf س©•S£o¬,îЮI¿Ϭ6ìhš¬k'¶Üyc˜WPÔ'ÿ„ÉéÔíÿé_>3âæûý¼©cT%Qú-ý Ö ãv­¼<†–xÚ§Æê±§Åc±\<Ë/tsñ¨.O-δ‹;¤í˜«‹-™ PÔ2/ëën :ÊÛ¶”Û•/•^ÁÃvÜYx0³ô»Pç„n}Å?b;Trœ3ÈlŠT1nâÄÕ®eÆüàú»Ÿ•S;­æŠro̱Û[Ο÷—ÜuÚêdßJô±Û[Οw=mýw3Qú5mR~DÍ¥&ôê7æ×r¾ãÖ/ ‹åâYáƒNïø;%&èv¦j;æêb+§Ì‹‘Á_ ìÓݧ»OwÕå %f›OÐF‹ác’פ†îÿæJÄ„Y)÷w©ë,ù~À¢o-ÍÕèÛ´Î-•1Ózß]d(–ôù³LSë¥Çw·iWÕò–ÛO“:÷;çóÔU<¾º÷CûxÿÞ[œƒ­û‹í§¿Ó"èžØöb®.¶ê®u-—jãòÂèbÞ¶•6:å¬òέ˜ÎQ;Å’â Î} Ó¾°=ÑÙé|±ÅÃuí®Wkå´¹îq“7J ²>šr2Ñ(㽑—E°îSñ¬UgÛ^zÕBuÿ—ÒJ([]8¹lÞ‡÷bIÕNlÌ/÷­±fŒ£Ï?žK6}¨²÷á+CÚ‹ÇokÞ÷ѧʓö_›gþÿBÛ?/|¸$ö£½˜«‹-™ PÔ2/ÓõåFW·ÍÛ¶â~÷ïí[úcã šÏ2ó&Ç›¯L²ttï¿åçUÁÓ¶'Ì“Œ›::V\dq¹úÐFñ1Awêü3µÄ௾íûFloØ×&ÕþŠºý+íÒ+¦÷|7ùÐìµuÄ«=õæ|u¦üÕŸÖ/ºôÀîU¸­øáçâqâÕW ´šV/î« ±}hÇC1k~ûÑ^ÌÕÅV®™WÑ,°÷ïÞT—Ûn7¾mÐW-žþéíé‹‘[¯ôÿÓöq»éµâ?•ËýžÏt76fš(0ë]Ö)=Ÿ»±ÎE§Z Ý]:72§’Výï¾!Ž‘»Äöâ¹%|÷Œ¼ù\{1W[u×€º¿–MÛÙп”·mEÝš˜’ìç˜QE,q;<ª®u¨(èzx\»V©’ê³Äò¬Ï²/WýµÑ÷ª[¾nzín¢M’[TÝôÑ:·ôÊIëZžqoQ²ÅƺÏ3÷£úß§UO&¶ÏýóV³ /Öiñk5±%sŠZ楿Ȣ¯õŒ¼mëc\Ȥµ2÷Üâ©uÅÞúsÚœK\\–-;s&ëöb‰µ~ÓØ.]Ä’”'kÞ%ûû»»·m«ºÿx¿'ßÜh¶+¾Ktoé´nG½¸R'{XŽ^ Æ ‹½©þ7fÎ-‹sºb{ñÜ>:Äk/æêb[2¯¢S Î×pÚÍ´›i7#gDΈüWǪ”jQÑh•^Æ:çµÑn×ÖËMÛþöÑu—C¸ês³ç3ÝCÇÆN[ØyYVxpPïn«ìï",Ö¦7S®“2¿Äz«Â’Zü5‡ˆ­ˆsÖåâZˆëÂÇ }æRÜÉy³¡‰î2ݳ:só¶Å¸’ïN¦}›u‰ÓæzÇM^«+ýfÕÿò_ÞŽâqD«€yŸÆ,YÒ¸ñóýÀôu³kw3o=SæÇ†OL=פv<ð*#ûý‹µÊzéÒH±ÄµLϯ,µx?*[g2 hf^źٚ:žÔÙ¦›¡»,o[LÝ×%ª·~ó£Š}&ë[U6ÐdJg’úã ~ÌüŸlïæç÷ø›­ÅcóƒUëμeÚØoΨ––³Ê\Û>ãdº…Xb­ß4æJÎÚ b+â\”3/yƒóµœà™à™à©º¼©MÉÁ+´×nõVN&×Ü“«)ÕYõ¿¹Ùó£S1IÅãv[JEZ;ôû¯.Ò£îlç–âñ“u±«?îÔvüÕÅYÝuŠ&u!;ì®ch¼X-š5¶Y­¾zɯX ªy­[˜eku“9«úhÛ;=3³3Ûgó~°ê6_~üä$—mÐ$Å´¸&¥eAÜ8s?­^y¥ŒÑvüÕÅ™Ì( ™—éŸ~vÕJõʱeóŸŸU{ôGÀ^«2¯‡O™µ<ûÒ¬»áîÔ‹ãÄc1nXÝ–ÉûBÏdÎ>kþCµæ §j²¡Ôæ^ác3ëMÉF¡A¯7h;þêâ\43/ùƒóµãã㮺¼ò.Ë+Ɖ…±CÆ'Œÿ”&ÛÎ5¾lÐ]óçÚÎ1¾dÐC<~£—P2ÙW¡ØµëÆ í­º8«».@Ѥî/dëð²†]µÑb…-&™9µÿö×ev×Ûî›`¢ùsï¥ì¯“Y ušÓ IÍÿøÂ¢VhÅT«Ì$¿±õj½̽dÚØzµÞ¹Ìýœ ”®:Â8o©‹3™ P2/£mvÎÅòÿx>9…w 1LZÔãù©¸7=¯­ ‰Ú=gIHèùƒMV·ÛغvT|×TÝR #«¾Ïœ3ÉÀË¢]ñQš·nàeÙ®xæÜKŸžF®}÷IÝDÓyE]œÉ¼äQ Î×p܉¸q'T—ÛÏ3.o°°0v‚„+ié™/u›ËF &kþÜÇŒŽøŸý¤zd4ÓöѪ‹³ºëMêþB6;Zbœþ»ü9†ìGè*weìT.¾xjùüïß4»v7ÉÆ Æh“ÎŽ/¾Ó/¯úÜ”êI÷3,Åc“±Š‰ú4?“×Å›ée?Ú>wuq&sŠBæepÚ2ȦvþOÀok†O¹ó²Ùb§1‹ßÄmHšq8*äZøÉïu~Ö_fâ˜2°Ï¤›Öšìî4PݸތÉ«’~õ[þ¢yëúifK­êþÏ~>­üø“¶ÏW]œÉ¼²*¼Å`ýül,É9É9ÉYu¹y;ƒX½Byá“=Óëft‘NH·¤Ÿ-- þÒ)IÒI£Yéÿwû1Ò¥¤5é3ÓßHÍ$Iª¤½£ÍŒó¥ÿÿò»[ìn±[ÿ¨aØÛÔ\×Aòù’Çð®Ç£°Wÿi¶tï{< KŽÓ«`ð«ŽY×ë ‚K÷Þ`Ý-öµ¡‡Ç5éßà´Ñ)g”·¥’$IÅ\ÍæëŽ$I’4šˆ,sû ÒTiUêïÉÕ2fI'¥ÿ½+°ã¼Q #sŠÝ%F&ä Êñ(§¹§:îJú‡,´ÙgÞ£òý:Vª[f,NsOuÚK’d¡j\ÎìšTIò—ÊjÒJæöb?µR¾þ´]’¤“’…ÖãÜH’¤ýd^9à'ùI~šo.ŠÁµ6ÕÚTkSG©£”_Uà|œæ‘æ‘æ¡º\ÿ{Ým:é…ñ*Û\.ö¿£~ã¤Ú¥jþÜÓôaâqñÀb»õM´}´…7Î@øÂVo§Î‘üo7zfGJµ#='‡:íj6¼{°ÍûÂ’¯^æ½aǾÅצ;°þifˆ¡ºqÃ&c­&êeŽúM9™h”‘ƒqÌɃã¦O½,ƒõžÊ5Î §z»õÆå»U‡Îìòwš“–v8u½JÔ,½ß—Y÷ÃÅ?þ0+W©Eí^b›×åW·œÜ;1á•Ë;Õ=èß1KûŸQ¿é““u“kÞzzÄǯ~ÍÜÏÓ§æérsÑÔFÙFÙF™¯ß`ägcúKô—è/Q]ž¶9ã;e¡l—徿Í?ý6_óçFº|ÊHýG<.5ÊøÃsÚ>ÚÂg  ÈK ìš?m¥wKë¢,umÉ_§"Ÿo½0pê›Õ/ë^¸”p¶ØVóžº ›™ü¸È¦ÿ ‰Û†9ßßyc˜WPTöSF›6¶Y­Ÿyßߤ1‹Ò_j~$ cz§gfŽfN%*kÿ§«ùg²Jz¿ô_ªuÓºõâ [Z-)1ÀbUõ{ &<¿x÷€y£ªûëgfU¯–·ò¨©ú\/‹ÿ½oZ½˜Üü4mHÂêØö™û ±üÑæ¼ã\ÔœÕ9«sV'?[Ì×) MMMU—Çû¤Z¦KÒ)ª°]0»_Œ ½îψ–’¤ß&Ǧ:Há’‘ªÉs#º$wJËü͈ýH“_ Ïß_m¤Å£ÍŒ³ŠcñÇâÅóò2“yËW–¯,Ý3Ü3Ü3².OÙ—Ÿ"Yj·õè¸`·”‡ëNú&tN”Yà¬}Òz夣õ“¾õPìj°}ð­â¥V%µøjRý ƒ®¯äáqí×JÿÇ­dÌöÙ Ö —žMú$%ŒJM[*5‘$i´&Ç“T&úJúñÌý8•¨¬o.={øI‹ÈŒ3™ P$3¯ 两’$•Ðæ­g4'îøëïçþMÛÖb‰~5ó²VÑþþîîmYï¬Üò‰M©YˆôÒ<íqüëh…$I’ôV“VÒô&ÄÜ B¬~´ ühbúR‹çõ¿q–þå’y©?9~rüä#óŽÌ;2o—Å.‹]MÐÝ?®\ÿ¸Æë¯o¼^ê!õzäÏÑækØ¢“E'‹Nªó†¿›òñUê$I’’}áºØn¦¿~/I’$M¾ ÿ¾fì¢!R…ð’4yš±â×ÜL~7"-–fK[µw´™qV¹°[š[š[/]@(}´ôÑÒG¥ï¤ï¤ï².OèòaEš½ê_Ôy%¶VhÅT«}Ñc£BN'˜…ïMÓ7[V2F¿Ö×§fo·_QúWW]ã”%K/yþ<ûñ¾ªÌ'Ûý¦?]'IÒÖÀi7|’ºüÓ=ÙJ£çM»é“ô03§›l;Ë`º$I´ÿÌ8o”ú¹E/óJmëqW: IRj^µ•ö}⪸ö'L}Þ+³Ø\:¤oØ„!Öšìî4P“=ThäQ}E³—~K»œ±8Õ=ÕAê(ÿ÷6†îв%KJ’$I=w½c-¹mì¬YäýÌåN¬$I·%ÉÀ]Q¦dIi³ôA›ñÏŒóUI’Z’y©Ó1¦cLÇ5CÖ Y3DÜÍW²,þ¯{3ÿ²ö—µ¿¬½eô–Ñ[¬NZ´:™ÿGž¯S@[-³ZfµLuù³þ±M?šÆ ÿÕû@ËÌyÞOÍx;8æIüÃÿûNÀ ¾©éMOÿôötLfió}«nÑÑýû7h ½£-¼q BæYòujŠïM{ä—É¡¡þ îáVi÷ìËUmôý Ûœöü:Ê-8³›ÓÒ¯PæUÃ-¦›Åã€ßI‰[SN&e¼ÏþY)Õ’îgXôõm–x-s?Ý2ñý¼cМ¶ã   g^Éß½ ÌãI‡ô7›Ž±8uIR¹€ j¾‡W‚ƒŸOß8|ª`­ºù˪^õÚ‰ÇqÍnô3×äNÀé;>­üøSܘGµü®gîǤj©úºYÇkƒ6â,¢èëµÇkמ²~eýÊúe–~³%о¯½nôº‘g_Ͼž}¿TéWÈ×°™—™—™—êò+á[ã å¦[¿²›kd7ÙØÁÀë“gFe§fû—Þ¾’ý³×Ü*T!¶/ÕÏøžaBëWö^Ú>ÚÂg  d.!ýî¤|üY-®ºQ5ÑëÃû—.Ÿ’¥Ÿ¥ëR¥ŽU~;f7tM‰¯Žä¾àê<¦áSSOÓ}6ƒõBÒG§œUÞYù¤Mí—qÙ?ëz‹­c¢.ˆíÅXd±mÇ_{qPð3¯Äñ/ßÏÐvëÑsn™ŸÓIìÐóÑŸÙo™ê»:Â9L:9kûob‰é¬²ÕŽþǨ’Twžþq‹§Ö”‹ÓÜS œ<®ÛÊì÷þÞgàNW±½Aq«4›æª$Ö›§íäOœ y}³Ê×) õëë×ׯo=Ûz¶õìÈ‘3"gˆåÏ â^$I?¥LUNÑë ÓXç|aéżôîè}¯ø’z#ër÷*7¿6ëžêèW¼x•I– ãŠNÅ%5ò6 nµãL€^„˜8Zšý¬öÇ>%ïîy|K-ikpú)å5eëçqo’Çd].®/l@“Ì%*(ðû”¤ ÷ SåTÝeºguææU‹î#U•ŽK’‘E)Ý#›Nô÷¦JË­ãï—XxGÚ#Eç`ouî÷MRlø×­1l£S'qIÄôt‡¬Ë}ܽ–…Ý«\髵f'­»”õ.æþaàˤONÏŸŸßñQÅcºqÏÅ–Í£Ç:ÚìXÖ¢YÄ‹ê×$íŒÎpÏh£œµ$01e™ P43¯O‡Ãƒ;*eèfTÓÙ¦›¡»,¯Z¬tqjÕ‹^X.\ôã}e­ÔNŸ¶¿’–Iã%ësÍwO0»Z±t­çÇ-ŸXWH{ÿ:ºxR£ÀšO›GŒ»4úp÷ŒÉãÅÝmF´šõµÝæÎˆþk„®îÏúË CÒüãªDþëæ½!Q»ç, ±QkN‹F×í9ïNÞÿöüëò1îM½86ºíõ­§3oœjŸÑõÚk¼÷hÖñ¦KÉeÒ™1Úˆ¼ò» Ý ÷OÃåÌë_Ó;û-ð[à'‰Ùú×ôÎ}­úZõ•Ä¿‚öúÊÿ&»—è^¢{‰ÒFiã¿–‡ úX7uO©&’a‰ÂÕEÄÔÍÜö¿³¸Í£w¡Ï·…½Júp~›ôÊåƒ$ýû÷ñz’¤+ x~_³néq½6:ß²^ÑKrvµÖâäÏ"¶’$½ù¯kÁÇ  yæ’èÑ+­¹¹TR2ȳpôÌ@”j’$—¤dÏ8ÇŒ*bù…Áº~˜”Ó½Õñè{MñZ1’Ø÷ÒºÕ­®ßÚ²=jÝCç#»cMJG¬b{Iû¥!’$í—$)D’$]骋Üäí+ë.UâÚFYô¨âÑV²ÐâäÏ"¶’$m#sŠvæ•61nOäl«Þy— ³åäªôOýúÓDÝùF&Ý2&'ë&ŽüêÒ5ï‹‘Ò%É[lø.ó >Òué°ä#]—$c ‡…î: ìó˾Ǧ:÷ÊpqY&ý× Íbêæ÷vÇwnö÷ñ¹¾óç¨ká'¿šymDæÐÐJ’‰TZÒ“Ü%IZ#¹HË¥³¶ƒ:ý=ø“ÕöºwZZ9Õ]ÖJ‹1±•$I’¾)j™—¼‹¾Yéæ“í¼Ûy·óV]~=úÃŒø¥…·ÓüZ×¥¥ƒÕ‘«­WTÞ¥ŠÃ…»í\£K= vè–Òi/w3vtW¼<¾®ÍæªF“6Ö¸UzEþ›ºØª»ÔýµzÖ¿br‹J§¤Þ8ý1â±eƒZ Íž”Oø©æ[Ûíí~k˜?1W[¹f^ò›ÞY_`p‡:uT—oúáåîðø’³d¯Ç#ÆïŠÇ Å®]7näfoͪÚ^µðïúôü¸§7¢GgîY|±FŠ–FK’4@¡ØUìÆèý¥ òçEl¥]š^ êþZ¾ïqèlÌ´Ê{Ú´1_’Wm¹ï3©ÂÉCš$UÊŸ³s¬Q7Âäô¾ºc/…<÷ð¸6¿RtQ’$Ij"ÙH’ô”,IK¢ë=Oñ®å×AeÆVÚ#IÒ(2 (g^‘ }oÛnåWGjù»6ÚE\w÷¶mÅß̲îâmö$ùû»»·=«p©¿¼ÍYé¿Gýªcæ[±t­çkVÖž´-sÿv’$IÒ.©‚$I’ÔY ñpoÕ¶­&Eå¼"b+­×ôZFEg¤¯::J¥R©Tæk›±R¬ë¸Öq­ãÚ„y óþu#ë -ß ¯[ϼ›A¢ž®„\‹?œjšžá4dÿ_·oýëMgŠÙ³)Á£‚G’,%KÉ’Xšg.cíÏ©`dØß´„®¡Ê½”]‰2‚V¾kÓõe2™ @æ%Tß4ÆážzY›Œ&T¹—>>92iÍ£¡“gw;(¿Ìë_E_ Æø ÿ*úª1¾ÙûEVKÉR²œ:lê°©ÃTWž9Z/¦?/¼¢.ž™ñç à³2—× ×º'¦¤¼¢.žd.@Qμâ÷=þ˜»y[¡I< oæU4§wÖÄeÛé‡Sÿø¥¼Çè›íÞèJîÒ é5/Å\q—nH¯3ã©qühò—óÙÉ ¦Kg$/)Œ(åÊÉK ËŒ'™ @æ•ÅÛö–ZÖP ‘vKKˆR®„H»¥%™ñ,ä™E_M|±°]’]’]RýØú±õc³.m‘Z.}Â­àˆµ Mx=憈¡ˆgÖå"æ"þD ø¼ÌåÓ¯ñA3ßUxø×Ç“D)7D E<É\2¯¬ËÓ“?NH8”üfèjF¹"b(âY3/о9õ…ï³;{å앳Wª.3êúÞ€qÒ9éËË2ÇÎIï¤ØÌjs9Í\N—™Ó.lˆôFò“‰R޽‘ü¤ÄÌ’¹d^j²€à‘;Ÿ-:'ÅKO¤[D)Çâ¥'ҭ̪̋¢onè(•J¥RùÅÚw”%ÇŠ*^¨x!¢^D½ˆzYW*Ùªnå¥-ŸÙU²ÜÅ+Ts*¿Û¿Gø?·Ÿýkì¯Í-›[6·^´|ÑòEK)X –‚‰ûÌ¥×ïËüJ?vŽn 4íN¨4¨¸¡“è}`º{£·ÕÈ\dŸy•=úcãùæÓ*÷«sŽPi.~γÝw¾zÝeõµÉº?óEß5CÖ Y3D“r¯ о£·ŒÞ2zKÑ,÷ªúÂ#€E—ÚrvËÙ-gUWŠfòûô´Œ\*MˆX©–~…Ì8ó §™‹(a¦UHù*ƒ$S#"Vª¥_2€ÌK]æ%J˜RmSö*MˆX©–~ ZæÅH_mÐ-áöÛ7nßÔ?_ÿ|ýóªk½<œ ™Ï¥Ò„ºX‰ØŠ8%@™ËUƒõ7"÷%M¨‹™ €ì3¯° 'Zm !JšP«‚–y]ûáÚ×~ è›·¾ôÐY– ,X®Vt­èZѪkÖm}¦Êô¦gm7Yœæ²©ºÒ&lh\û.·Ï·}ú»êÚ{Š{Š{ çççbh/sé=uU}‡ŽÉu–›ì&Vª‚îü”ÔoßÜ17Cf“¹ø¼Ì«ÜŒ±§50ó®øÌu±R•ÐýEåûÓf¯ì0ñFÁϼ2zeôÊèe}Þú¼õ”ü™ÞùóèœC]Ík“×&¯MªkEi3Ô!)-%’Ë–•ˆ‰ºÒ¯ˆ'_ ù“¹ˆÒf|ð¿Rùé꿈˜¨+ý’¹Ð<ó¥ÍÔ1‡>$«¬DLÔ•~ fæ¥{@÷€î›vnÚ™y­é›{h° tQº(]Z¶oÙ¾e{ÿ¿üÿòÿ+ëZ£6z6:ÏûôèZ§·yoƒzzEùâÅïK5NO¯´÷Б;û’ϦG(Ëe]ë2Üe¸Ëð §/œ¾pZÇ_Ç_ÇŸîäOæ¢k¤Ó}TÅ·ÊŸ4üÖÔ^×¹(Ç*åïÄwk_tª÷ªcšeŠ“Ò›Ì@î3/5ú†“«þ1yßc½eF%M~*ʱJwOOZþ8å×ù½«)G§¦¥Ì'ó*Êt Ú‰nw ä@Èÿ˜—\”9ÛÜ÷‰x4íãÜ4ÏŒ—Eó²‰sqP-ý "†¼Œ€üÏ\D™sg³áÝ‚J¤NKvȘQ4£$Î]ÄAµôKæ 7™—(s¾ô[òpÜ¥Œš)-?­.šQç.â Zú%ó*¢¯‚68+ÿçþÏýŸ·hØ¢a‹†ªk+±èjtð¬k;›êsŠÎh`1êW”~Ÿ¯Š;’ÜSu›‹×/^¿xÝ¥’K%—JtqàËf.Å{•I7tpù¯ÃNŠÎh`1êW”~£¼ÑK !s ½Ì«ØÛnN–yÔXѼ茣~Eé÷Ó†°ÃA±d^t òÁ‰îx`ñÅ«®åO1rQ¸7°8Gq¾êJ¿"V¼Œ€‚“¹ˆò§˜¹(ÜXœ£8_u¥_2y›y‰ò§˜¹(ÜXœ£8_u¥_2¯¢¬@Îê„Þ ½z-Z ´P·ÍѺ­ÏT™Þô¬í& Y}¥r¥MØÐ¸ö]nŸoûôwuÛìˆÛ·#®Sz§ôNétk  g.½§®ªï0Ã1¹Îr“Ýr:÷`£;?%õÛ7wÌÍÙd.¾læUnÆØS‹˜yW|æ:GNçžÐýEåûÓf¯ì0ñ™ÔÑ-,*º©º_v¢D:sÀ½ÓAÇS¬ÒÇd¸Þ #Ž_œKö¥_^Æ@aÉ\D‰ôRՕ憥Nm¬ -¼ç+Ž_œKö¥_2ù™y‰é;³Ãý6,ÍØ›v3uEá=_qüâ\²/ý’yA(4#€³Ê~ž÷¬•lU·òÒ–Ïì*Yî*,gw¡òûç±ý{„ÿsûÙ„ì·dÞv@™K¯ß—ù•~ìÝ@iÚ½°œ] â†N¢÷éîÞV#sPð3¯²GlÇÍüçÞê14Á^:(IQèdJAR”86qœÙ—~Åùfž;/c@™‹(£nQöýFz÷úaù[¤gÒY)¾Ì3é¬/ŽMgö¥_2-óeÔg_Í 6'éå“'~RŒtWºP€N&Fº+]Ç&Ž3ûÒ/™Ô)”#€³Rº(]”.ëf­›µn–çPÏ¡žC³ßÞò¢A€ÞÒ%kêû”ÉèÙÝy§õ:©½TZ²Ê׃>-½•bzˆé1úf»7º±-RË¥ÿã}½6ymòÚ4ræÈ™#gêøëøëøÓ}¹f.Åþ0wÒÕfþ/!¶¿WþªÍs[©œä&™æëAH¾Râ³sg‰;;yCØôO¿ÆeÌ$s ÌKÏÈx©Y¯Ò­ú„º_·zR'¶åHÉBª.5Ê×ƒŽ“I~1UïX^X÷öŸ½¥–5LOþ8!á™r£Ð€³ ,X.°Üˆ#Œ8p³õÍÖ7[kò¬¦ýKzšoº¾B¿’æï–ô2·²«i¬cøK^Õû•) ®Õ÷ŒÙôÃËÝáñWv…{ÅÒä¹õÏ×?_ÿü†^zmèåàà@—Šfæâp½N ãµ®Kz´±šSzE­òÆµÍæÙ”ÕšWG•0%âuZ•·ãî½úx÷¾Ç¡³1ÓBÞ¹øq™ €¢“y™n¬°Ñµ‘õu·™–-o]³©Á.Ë}ÖáyuT©ýc{G–L|ý*òÁ•Ȇ¾7ŽmOörØ}?2/ä-Y€3ÅH1RŒïß=¾{†´ÒfH›ˆzõ"êåt7•R-*­jjSr°ÅŠÊ»,¯'ÚÏ3.o°Ð¼A¬ž¤ÿ½î6ô´Íß)õâ}R-Ó¥wS>¾Jô¬lÓ¦W"·Æ{n÷"yLNÛµ¹esËæÖ–³[În9ëÖ×­¯[_ÉJ²Êç1Ê IæRÜÉy³¡‰Ãî:†Æ‹­ÃËv5;Zbœþ;Ãަ溺¶z;uŽd„¥PvMÙ—Ÿ’ÐåÊ4ûÈ’¯SSŽ„ô»“òñ稠ÀïS’È\y©S¬›­©ãIÓ?+üìªk´Íι˜ÁiË ›ÚºKŒ,L†é<ÕÛ­7NY%½_úР䏤©íc"î&÷>.ðSâø—‹ïg|:–Ü‘Ì ùCŽà¬%GÉÑÏÓÏÓÏsÆØcgŒ½iyÓò¦eA;Ìú±õcëÇÎ^9{å야y5ò’‚¥`)˜  d.@æEæ…<"÷°Š÷&ïMÞ› :t(hîÆ¹çnL˜—0/a^~ƒÙ³)fS¦›:lê°N=œz8Ù%Ù%Ù%ѹ™W¹Qä Àª"&FLŒ˜x'äNÈŸî>Ý}º{ðþàý!rFäŒÈ¹Ù³õlëÙÖ³»—è^¢{‰vÞí¼Ûy×q¨ãPÇÁf‘Í"›Et>d.@æEä‘·(ç˜ß<¿y~óÒ<Ò<Ò<ô—è/Ñ_ÒhJ£)¦d.Pt( …B‘uɱøcñÇâÝÒÜÒÜÒˆ¾ À@ŽQFÁ¤K@(€LP™  2Ad‚0È` À €@&(€LP™  2Ad‚0È` À €@&(€LP™  2Ad‚0È„>!rjÝÒuK×-½~êú©ë§vhØ¡a‡Þ½z|Y:J¥R©T(ì˜d‚0È` À €@&(€LP™  2Ad‚0È` À €@&(€LP™  2Ad‚0È` À €@&(€LP™  2Ad‚0È` À €@&(€LP™  2Ad‚0È` À €@&(€LP™  2ñÿñ,ŸP;ê%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/fromEvent.png000066400000000000000000000635441431412030200253520ustar00rootroot00000000000000‰PNG  IHDRT¤FÚgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Üf{IDATxÚíÝu@Ùðÿ¹€bPWA,0ÖÀE ÅÄÅU0ÖÀîZókba¢XXk+vw!(&º* *Ò JÜßãóüØçzY”æ¾_þÞ3wâsÎÌÏ=gd …B¡PyÂGËGËG«“n'ÝNº¨ñ'âOÄ[§Z§Z§æö¶47HƒV~Ø 1ã-¤ éBº ‚B‘®HW|û;cy–þþ¹OåýšÙÏÜ[3ûŸ?·’-~›«@ÒÇ(Ù=É?qÈÿ{U°öðíy\ Ô§-ˆ­ Ñ¿³õ üÍß9û7Èÿ³t@Ä8"ö¼ ïaþùÆW·Öa‹l%/·’{gzA‰†zî§´×&½ýÉÙ;ùìŸé6&Ý»uïÖ½›Z'€EÖéÖéÖéÿ*’ 2A&hŒT ÿºh š‚&!¸p5Ôÿ§pÀ=À7>)é|³|§KˆøJ\AWÐ~Ù+q¹y‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `-B@Á•´;iwÒîïw¼ßñÞç¬ÏYŸ³/ú¾èû¢op|p|p|‰àÁ%‚Ë:•u*ëtÁâ‚Å "†œ"—Ëåry~ÞÃèèèèèhZ WÄâˆÅ‹­­­£,¢,¢,  ÅÃG=|¤g¢g¢g¢>WÎhøµWWu¸JKïãBãBãB-êXÔ±¨#‹‘ÅÈJ<,ñ°ÄCŸ=>{|ö”žRzJé)œ#H ` ¤çÓŸO>ÝÉÃÉÃÉãÆ7ÿgV[Â-á–øg¸øo}øúðõB´-ðè …©ÂTa:¨é ¦ƒšF-ŠZµH,«=V{¬vó æÌIˆ@öñÓH»ÇŠ?]utÕÑU罜÷rÞKñ'eƒ­[ ¶º±èÆ¢‹èçHS@PÀÄ?Žÿ¸ûƒîº?øWê K\–¸,qçuK 7<>dÅCVð dÝÐ9Cç #ŽýKnøÝð»á7í÷i¿Oûø UŒ €Ùb¹År‹eXѰ¢aE3_RÛMÛMÛ­ˆ[·"nÄ ²®íµ¶×Ú^SU{¾Åùç[äÆvŸ-y¶äÙ’em–µYÖFX)¬VŠå^Lx1áE¹‰å&–›Ý+ºWt/Ú@Á½ÖÈKÅ;ïP¼Ãxÿñþãýg 3…™ßÊ— \2pÉÀ®£ºŽê:ªšG5jÄ )! @ã»Ôw©ïRa–0K˜¥\[»Ií&µ›l跡߆~Öì‡Yû"|¾6ä©¥-—¶\Ú’8 àºÓõN×;]UVçÆ¤úú‚¾ ?aè„¡†¦vJí”ÚI,.3¬Ì°2à 8r9³Œ %$€(`žÏx>ãù ACÐøÞ«–.7\n(¦~ùxü*ƒ :4èq²n·×n¯Ý^¾ƒ}ûÎXþ×Á¿þu°tdéÈÒ‘ÑnÑnÑÌèøz¬ì±²ÇJâPp™Zdj‘©N8qàda²0ù[¹øÊ Ï™ž3=g%¤„0LpXpXp˜`*˜ ¦ÊµæåÌË™—#õ Å×_G|±@±@±@‘±\ÏDÏDϤWÇ^{uà6Àm©_À/#Î0D º¾ÕúVë[m®õ\ë¹Ö > > >bù‚‹ ..¸8|ÞðyÃçñÿ’Hƒ! `Q˜*L¦ªjÅ÷þ%((¶'oOÞžün﻽ïöf,ïZ¬k±®ÅJ¯/½¾ôz¢¹Á¤–I-“ZÊå¦åMË›–'>^Çw6ëlÖÙ,cyØÍ°›a7ÝsÿÍý7â €4€_à‹ë×/®Ë«-¯¶¼šr-“m@n«U/ª^ÔwÊ?ÕûTïñT{lÏU=Wõ\¥\îÞн¡{C¹\.—ˉ6 `øt;Ðí@·ˆÅ‹#g,/ëTÖ©¬“uëÖ=˜†rOÝÔº©uS¿SžV7­ni0HµÇ¶(Ó¢L‹2Æ /ÌX.ÎGÂû€Þ ¾¹5ãÖŒ[3”ËÏo<¿ñü¬¯Gœ¤úkﯽ¿öþÑ)©c b b ÎŽ=;öìØ3ËÎ,;³ìUÝWu_Õ˜1-bZŒ,F#+\"¸D°ñZãµÆk+?¨ü òûIö“ì'Ùm³Ûf·Í Æ Æ &?Äç¡æC͇š[Km-µµÔ­Z´Þîy»çížøÇñã—™RfJ™)t+èVÐu¼èxÑñ¢ã]Ç»Žw‹õ*Ö«X¯Ì÷äý´÷ÓÞO;ltØè°Ñ©§œ:z3ôfèÍ#?Œü0R¡¯ÐWè—xSâM‰7â;¡[ßk}¯õ=ggg—¬¬Qzô:éunœ½qöÆÙcÇ"ŽE¼ xðVL.¾ù~äû‘Úë´×i¯+P2 d@šujÖ©Ù¼FóÍkˆ}CÇZÇZÇ:?œ;q¡q¡q¡;"vD숸ÐíB· ÝB}B}B}Þž~{úíé¢S‹N-:U|di5ÏjžÕë}Öû¬·f=ÌzXΞMù¹·äöUEgŠú|Ëp­“Ƶ.ÿÏ©J²J²J²ŒåAŠ Eâ'V¨/è ú»½v{íöšU}VõYÕ?µøÔâS‹]M¡]…vÚ%ž‰a»Âv…í*Þ¡x‡â~ÕÕ5¯Òù&b¹wŒ_G|ñuD¯!½†ô¢êê]cH!5†÷=î{Ü·äµ’×J^Ëí+þ€Æ¦¶Mm›ï¤Ì¯„^ ½j¡c¡c¡#€”ò¡L ~Øê«?¬þP§Yfuš¹·qoãÞæ®í]Û»¶S¿Yy¨*¦@7n,®óçR¿"1õ+þ-®3/'î{Ùåe——]lõlõlõ~ô¡¼H|(_txÑáE‡gÜsñ-¡¿ýô{ЬF³ÍjôsQ[G+‹•Ūó”†âH5yŒvõü–áZWЯuùŸ˜0«˜^1½bºXR1ºbtÅèŸKýFWˆ®]¡£SG§ŽN#íû´ïÓ^ÕÕÛl²Ùd³Ébê·Ê£*ª<Ê›+Îâ ®á;÷*þ;ýwús à" ²DL¯[=lõ°Õ³«Ï®>»ºøKöŸ[›8Mb×r]Ëu-'Ž$ÎÙ½ìÙ9²³ø«ÿÜ~l!>P皞k‚ãƒãƒã³³¶ÏžŸ=?{þvõ·«¿]÷¼_Ù~eû•½bxÅðŠaö÷VœºSLªçq¤x—Ò]Jw)­\+>Ž¿Xÿbý‹õsj‹a7Ãn†Ý¼=úöèÛ£•kÅ©AÅÏJÂOL±tiÚ¥i—¦â‰9ŸŒ ‰ã7Žß8>·[dî˹/ç¾Üüûæß7ÿžýµ‰ÅW_P}Aõù³‡‹I ·NÜ:qK¹¶ÑŽF;íÈ©=—^oQÏcWÏo®uýZW°ÔýT÷SÝOßþVñŽÕ̉iËÎM;7íÜôæþ›ûoîÏÙ='@'7–F‹«CÄÄÔo_«¾V}­Î÷;ßï|?åe¾¥~o¿yü¦˜úÍÊÝ`ö{ì¿î=¶7ÚÞh»r¹x¯ÎU€‚ˆ0ùT×¢ßÿ—ŸÊбeÆ–[fßì}³÷ÍÎÎzÄt¯óçÎ Ä÷ªZÒ¦¸Mq›âÛÞm{·íÝ£“N>:ùÞù½ó{çÇ»ï~¼{û“íO¶?ÉüMxâã]qÊÇÜ{ô3øÊà+ƒ¯¼®ûºîëºßn°i<Òx4ôCÿ7ôâT®ï¾[ønáõS×O]?5»ðì³ ‹“Ô©Zç+›W6¯lÄQÔâ”Åk›Y5³jfµ{é—¾2}eúÊôMÌ›˜71Çn»yìfï¶½Ûön›ù>GDD,t_è¾Ð]=;^r¼äxIUí±ðcáÇÂs*2‡ªªr¨Š˜Q®íÓ°OÃ> ³²-ñÍ—Nóæ;ͧìSµ¤mŠmŠmÊú1ëǬó äAȃˆaÃ"†‰Ó^°¸`qÁbâ…‰&^P5Z4uÕÔUSWÞ|zóéÍ¹Ñ ~Ëü–ù-[õeÕ—U_2–‹“ nÕÚªµUëÙðgß 'u?~úøéã§û4êÓ¨O£Ì×ü|úóéϧ{Îôœé93¿]io¹5æÖU?|±¼byÅòJöc+½Þ¢ÎÇ®nß2\ë¤q­+XÄVÈøwÖû­Øc{ì豣ǎÎüsæŸ3ª–l¸£áކ;Ö-[·lݲ±bĆO Ÿ>Eü{ïè½£÷Žî[½oõ¾ÕÅ‘ôÊkïœÅéÖ îý›:DLüá¬øóåk¬Hü‡˜ú­z£êª7²>óGvzìwî=®Z^µ¼ª\.&Ñý»úwõïÊÿ›P )òÐ Íš74 ”ˆå ™Ê5¯(µ¢ÔŠRÊåÆžÆžÆž^Nx9áåÙÑgGŸý þAüƒø°Sa§ÂN%OMžš*׊®^Ѻ¢uE+;[ÇØ©Á&Ž£Ò±Ö±Ö±Î|=ïö¾Ûûnï­ ·.ܪ\+¾ÑSìÛÎóç;ÏÎ ó5ë+ôúŠÌ'÷'iÿbü‹ñ/rvôLHXHXH˜øwƒ+ ®4¸âqÎãœÇ¹R§J*u*óýÇÆµ(Û¢l‹²ª–y˜ð0áaB~ëá7ünøÝðS.¯™µìkÙײÏÎú¥Ú[8vuø–áZ'¥k:ßH­ªÇŠæŸ›nþ¹Ž#G8 ±B¬›•–ûÉ™‘gFžQù’”5/Ö¼XóBœ‡ˆå‡ˆ¥5OkžÖ|@ê€Ô©'Ïú9;½å`«ƒ­¶RÙúú4êÓ(+ëßj´Õh«‘ª·n/ܼpóÂÍ6µmjÛÔþÉLj±B¬›ù#Qñ§¹wqswsws7ò1ò1òÉúQdÞÃ?ôùÐçCŸüs-'¥xð$à‰r­øñÕÙÙŠ:ôõ"ök#&¦~]^¹¼ry%¾7Wy™ªWý»êßâ„Ïù'õ+_ ¦•kÅŸ˜ˆ/ଠ`! ~€øàÒÌÓÌÓÌ3ë-¢,¢,¢,T=ͬ:³ê̪ÙOÍŠ££TÕvüÙñgâÛs62CW ]1tE™Åe—YœõOUŠ®]é?b8xëà­ƒ·þè»ÁDÕþ®öwµ¿UÕªz§>ê߯¿þ}ñg ʵâhõÈÚ‘µ#kÿÜú½x7ðn \.n±éঃ›μMÅwÈmOÞž¼=ù;ý'¨RP¥ ìül"#qäǶÄm‰Û•kcãbãbã®ù\󹿓³­P7­nZÝ4ñ=?zÕ=ª{T÷Èÿß,Õˆ‰Ç5èÞ {ƒî‰?T^¦Ê±*ǪGýVß]}wõÝùs¼¾x¢ê sÇöŽí[Î} À KÄ—âøÚ}lá³ÏgŸÏ>U(kµÿÿÿeÿHí&µ›ÔnRcH!5†(׊£}—ù.ó]–³ñGïýè§Ê7-ß´|ÓÌ—Qõ8&+*èVЭ KïÍœã]Ç»Žw•Ë£ ¢ ¢ Ä©ËtžöùøÑ]=Wõ\ÕsUɰ’a%Ãr*öƒìÙ*Ö«X¯b½”k}7ùnòÝ”³š;Úu´ëh÷së,X=\|èœ{Ç¢½E]Úß2\ëø6/XÄw¦F,ŽXñdˆ?Yø¹d¿²÷Üopß@a 0øÎû>ö}ìKÄò>bâϹ|dð‘#…>RXyñ¥9ù?õ›•ëŒ8¥þÿ©Ȉ0È»Uv«ìVýÜÿößµ½k{×VU­ø6g(ضl?XUí½J÷*Ý«”³[Ýÿ£uÄ)×2_¦Æ_5þªñ×Ï=0Rõ6/dÔýb÷‹Ý/ªª=~4ühøö–C 58ô±¿â»‡]œ]œ]²²ž[3n͸5CUm«W­^µz•³ÑûŒEq‹âÅ•k}—ú.õ]š³[¬rµÊÕ*Wî³ÙŸ09/½ªûªî«ºªjK¼)ñ¦Ä›ì¬_z‹ZŸ)’þ–áZ'¥k:¸5æÖ˜[cTÕv²ëd×É.§î35i<Òxä³Þg½ÏúûÂÿûo‹ /&¼ by11õ;dÇCv®r¸Êá*ÊËèëéëé뉩ß9éW)\"¸DðÏÝÀüI‹€¬ß˵DX",ùáÏÞ­w·ÞÝz‚Ÿà'ø)×þܨ¦Ì™×4¯i^S(.¾ó`÷^å{•ïUÎÙ-š45ijÒTB„œ]sA÷“ÿred6Ùl²Ù䚯k¾®ùZùÍp™O]®Ê¡*‡ªª"„ a¿ƫ٦ئئ”³/g_Î>+Qº5úÖè[£…ÍÂfa³rmÕcUU=“³11:atÂè;Ɇ·§ßž~{:gÛ÷[4vDïˆÞ!í«è+›W6¯lTÕÊcä1ò˜ìÄVz‹:»´¿e¸Ö¡`§ôWU+Κ“³[,ëTÖ©¬“ þS¾ïZ½6z-Ëíˆ)L¦ Óak†­¶Æ»•w+ïVª–'“çƒ)(wÅ™ÿíe‹—-^¶àÜ `! ²Ä´–i-ÓZÑéÑéÑé?úÙ÷#ß|?RUØlÙ³9ûp¤úüêó«ÏÜ7ÁM¹6|}øúðõ9»EqdgnD>÷ÖŒŒº_ê~©û¥¹Â\aî¿Ê#;GvŽì|b'öfe=â#ΰ°ïLUÚ§mŸ¶}ÚÊ_Ë_Ë_g¥ÇÇÇ«ª­$«$«$ä‚\È£éøO&žL<)t: sjå:”ëP®ƒ:ô±°Sa§ÂN •„JB%åÚÌGÞd…:ôu>viËp­CÁ$’©ìâË„aÂ0a±’RĆO>iø¤ýô?Ð?+ËOº7éÞ¤{!òyˆ¼ »v3ìfÁú‰'` h%111?÷YñWðªjK>,ù°äÜÝ[Ãë†× ¯ÿÜþ@=9^r¼äxIUíѤ£IG“²29¡wïÞß™üYœ P|dÖŸÅÈbd1²ü¥ŸŸŸœ]g饔^ },óèe huè-»Tq­CÁmmm ª¶ÔÎR;Kí$U&½ˆí›½oö¾ÙÊåª&Û8þÅøã_äÿ·çfžæ{ €‚ˆ0È}}}“Ÿûlæ Wf:ÍtšåìÞêXëXëXÿÜþ@=™–7-oZÞò¨åQˣʵǟ~üyæk'ñ>ñ9üøO|WŸ:ô±ÌžÊƒåÁòlV‡Þ±K×:°›éO2¿ %bRŠXÿ/ý¿ôÿ²-q[â¶DUˬy±æÅš~#üFøÈÏÇ"–GËU&àn$ÜH¸AO `! ²&Vˆb ÊÎjÝк¡¥ò!Å—_F|A“B™8´ryÄâˆÅ‹Ïö9ÛçlUŸ½îwÝïºß‡‘F~©\ûmòçÿ‘Ò1¥cJÇüÿeG²k²k²«ªÚ⽊÷*Þ+;ëWçÞ™RÐÑ‚Òõ¼ÐÉB' $JÒŽXÿý?ôÿ°¢ÐŠB+ uø£ÃþgyQ^2µSj§ÔNãSƧŒOÉÏã€3ÿInÒú¤õIëéÉ,¼ä:qòÛÂáÃwjÅǬ9ûj¿¸Ð¸Ð¸PUµòyŒ<†v²n»}ìöqª0U˜úÚcÇ"ŽE´“·“·ûλܼ[y·òn¥ü©Cj ©1¤î⺋ë.Ž¢…è>w"…H!ò;µï¾[ønaÑáE‡NÛåÅ‹;wN„„ïÔŠ3”J%²u¥UÏÞ™B yÉ@a 0P|> Ÿ¾wg{2ádÂI}A_Ð'TŒØ·Ô¯á Æ »¸ÿâþ‹ûŸ©ª xð6àmÎ>שr¢êEÕ‹ÊÏoá¯եL—2]ÊÚUhW¡]ʵG“Ž&MÊØ¼x7ðn ¼d»ÕíV·[mxÜð¸áqå)£³¢þëú¯ë¿VUz3ôfèMÚ« ¨ [A·‚®ªÚìÏ… Î½…3…ò´ÇÕª¤ªöaÂć 9{Ÿéáïáïáß2ýÿý×Ù¾³}g{"–GË4õ+Ò¼®y]óúʤ•I+“T-³ëü®ó»ÎŸZrjÉ©%ù§2¿ÉüäO$€@®kpµÁÕWUÕžÞ|zóéÍ9»ÅSN8u@Umà w4ÜA»@qÒò6—Û\nsY¹öhøÑð£ß&‚N^”¼(yÑ©ý§öŸúÎݲ3ùsVúêþ±ûÇLßž~{úíé¦S¾ÿïÚ»k﮽£‡üœ*W«\­¢òJ˜ý) Õ¹·p¦t´ –F«­n´Zå­ûi÷Óî9»Å=^{¼öx=(ùÿþßžKÄò[Ä,Zµ<*¾-X¹V¡¯ÐWèOŸ2>%ÿü 5óûßüöà·ü|€‚E‹€ÜfÝú‡uññiÍÓš§5ÏXûèÉ£'žøºúºúºf[}û>öýçÌ?gþ9£\«ñHã‘Æ£&“šLj2éçFdB}t¿ÔýR÷K§…ÓÂé•U ªTéú©ë§®Ÿ:ksÖæ¬MbñÄâ‰ÿzg°ÑN£F;íÙ-²[”žfÝÓº§uOq*iñMÃkÏÌ:3ëÌ,á€p@8SG½aö†Ùf? |ø40c¹,V+‹­}¦ö™Úg„‡ÂCá!=äG‰OUÕŠ^ÅG«?×gÔ¹·p¦øûZJ³öÍÚ7k¯ªÇÞµ½k{×Ö¿¹sÿæÙßVøúðõáëŸì{²ïÉ>åZ³f ÌÈ—Ë—Ë—çç;[õŒØÿ ÿ¯ðÿ o3Øf°Í@¹öùôçÓŸOŸ]xváÙ…óCe%̹@ÁÂ`ëÄ)p; î0¸Ã`UËÌ{9ïå¼—Ùÿ]ùœ¯s¾Îùªª¶ãÿèøG©µ¥Ö–ZK» söƒìÙ*Ö«X¯b½”k… ?Þ¿xÿâý‹+×:Íqšã4Çð±ácÃÇÙÙ‡K<,ñPœ’Z¹6½Nzô:Nœ&8MÈþ¹+‹•Åʶ'oOÞž¬\ÛàJƒ+ ®ˆûCßø9:::ªj_vyÙåez Ç®žhAH©ÇŠf—ž]zvéì÷X¯†^ ½ªªm?¯ý¼öóˆXþŒ˜¾B_¡¯ØÐoC¿ ýT-³xÂâ ‹'䇑µ¯l^Ù¼²ù¹{?‘yd`àÀÀªjÅI›×-[·lݲŸ[ÿvííÚÛµ/8\p¸à j— .\.0}²¢èð¢Ã‹ÓÀʵp`€ªÏöêÞ«{¯î9µ'C¶ Ù2d‹ªÚ½Ë÷.ß»|Õ³UÏV=û¹õ‹cqú6éÛ¤o“¸Ð¸Ð¸Påe†>~øxΑÂTaª0ýÑOÕM«›V7­ÈÔ"S‹LU®½c{ÇöŽ-½…cWg´ 4®u¢±fÿýOÚ=V¼³]í·ÚoµßÏ­?àmÀÛ€·+µWj¯ÔV® Öv[Ûmm·”YmÔ3b=VöXÙce‹²-ʶ(«\+¾L¤íö¶ÛÛnÿµWU÷!â}‹xÃüI,2…B¡P(òfc>Z>Z>Zt;évÒÍX~"þDü‰xëTëTëTš€Ìeþh ;ÿ[ž{kΨDZÇz;ßï|¿óßù-|¡]…vÚ•Ò;¥wJï¬oQLýN¼;ñîÄ»ÊSL‹ÚÍm7·Ýܽ£÷ŽÞ;ZÝ"ŸëÏ|K[.m¹´e~8_thСì¬áŒû÷3îÎóç;ÏÏÊòõï׿_ÿþÅŠ+^¬˜³Ç2ðÓÀO?®r¸Êá*ß¹­‘…ÈBćõÑéÑéÑéB¬+Äf¾Îƒƒñ-tG )|ä;“V_P}Aõ>{|öøì'r§‡¿èø¢ã‹ŽâDß?ºæNNœ:9ùœõ9ës6c¹8A}èµÐk¡×T;—voÉ©väL)èç -(k]VRYÒH&eÞcÅkû’~Kú-éçrÇåŽË¬ô؇š5j|=ðõÀׯ뾮ûº®ò2“—O^>y¹ë×®ò¦çäÍUú×F,÷Îbqž†×^o¨òÚ²ýÉö'ÛŸd>N:7$íNÚ´Û¤…I “⌠k›×h^£yc7Ý”w€<µêݪw«ÞÕj 5¿S+¦~Å¿ƒƒƒúéÿ¥ÿ—¶3©eRˤÖ×/®_\»v ìrsßÍ}7÷­Ö_­¿Z?6.6.6Nyb d½Íz›õ6†é†é†éÑB´ §Žª÷Š–:.u\ê8]6]6]&ŽlÙ"²EY§²Ne2_³8ÈGð|þU.>r}°áÁ†š M…¦ôŽ]MтҸÖÑc3^Û' “„IÂþµû×î_{[~[~[þ öAìƒXã…Æ ~²ødñÉâÙ’gKž-¹ÐòBË -7o Þ¬œŠ•³/g_Î~Œñã1ÆñÎV=#VåX•cUŽMÞ:yëä­K&,™°d‚ò2SWO]=uu¿õýÖ÷[Ÿ—{ø@ëÖ-Uѯ®ü?#€(` ú`Ñ ¿~7ü:Ûw¶ïlŸ{±Ò­­[[·öþ®û»îïj¿À~ý‚üéÊ?rªßŠ“Uîx¿ãýŽ÷ª–ÑvÓvÓvÇKé™è™è™äƉc\lõlõlõrñBd!²õ3×Ï\?sèö¡Û‡nW·n=Ìz˜õ°'ûžì{²/gûÛÓO7>ÝØtJÓ)M§(×Îy>çùœç³«Ï®>»zö#S°zKζ#gJA?iÁ‚~­SŸÀßzlÂć ¶&¶&¶&¹·kkë3£ÎŒ:3ª™s3çfÎÙo‹¼œŸ#–Ûg±øó”&SšLi2%¨RP¥ JÊË 8|àðž[<·xnÉ›sdõ‡ÕVï=”k}]}]}]›¸5qkâF€¬ËùPÞ ~fVͬšYë|®ó¹Î¹±~q|Àñ›Ço¿™ýÔ/àxÉñ’ã¥Ì—élÖÙ¬³Yî¥~Eiii~#üFøÈõ‹û¿Uk«ÖV-ñ­uêyî´zÝêu«×¹±æCj ©1¤òƒÊ*?P®½k{×ö®-½…c-XЯuj×cu,t,tr¯ÇŠcX$I8’õÔ/Ëo,èÞÀ½{UËl¿aü†ñW_}|õqÞ앪{qÔ²Ùd³Éf“ùŽ  " ~™†;îh¸ãMð›à7Áb‰8áÏ­M|ð¸äqÉã’ï˜ß1¿c.Žâ²¯¹Us«æVâ T-Ó§mŸ¶}ÚæÍØhñ]•áS§„E*NÎùsk§?“ܾÓ|§ùNë_¶Ùþeչŧ·šÞjz«Ü[¿CŠCŠCŠr¹ß ¿~3è-;hAi\ëè±E¦™ZdêÏ­ML¼3ðÎÀ;×}®û\÷ió°ÍÃ6¥tg«žkùªå«–¯~¿ûûÝßï*׊S1+6®Ø¸b¹~W©/è ú·Fß}k´re×b]‹u-VPfýʘä#QQQ¿…üò[H—2]Êt)óÊâ•Å+‹÷#ß|?R|«øNßR;Kí,µ³ê±ªÇªk?©ý¤ö“Ú­j·ªÝªJ²J²J2’¾È=ùó-h > > >&L:™tê~¸ûáî‡_Œz1êÅ(ñÜùdþÉü“yñ^Å{ï%–˃k·¯Ý¾vû¦=šöhÚÃá«ÃW‡¯5]kºÖtåÜÉH|+y©S¥N•:e5Éj’Õ¤°°0ñ-˜âU¨¬sYç²Îe‡–ZvèÖÄ­‰[³²æ7ò7ò7òzB=¡ÞwjÝcù¹~çúë¤R)ˆ€‚%ôŸÐBÿße¾Âx…ñ c±¼ô”ÒSJOé9·çÜžs_佃ƒñ#cyšujÖ©ÙÉ®“]';ÎM¤wÀ¯+Ä ± -(´ ƒŽƒŽƒŽXœÒ;¥wJïu[ÖmY·e©|©|©œ² ófæÍÌ›e,Ñ3Ñ3Ñ3ÙþvûÛíoM››67mÎ5 È{ž+û|öùìëߦ›þm"-#-#-t5Ú]‹›œ.¾²ÊD ";JëUÐ.tV?İžÆò"zÅ\dÏ4÷jŽV˜¥9¥­IŸ—ä•Ò.Ö4ò~òŸqÁ_ǽt˜þåèûÄPûÝ®áÃ;†w¶]ØvaÛëžÖ=­{ ‚`@Ãâ?î3IY‘:#uFêŒ36ÎØ8cz™ée¦—ÉÒÇ {„§ÆíÃþ”éEÕþÐäï¢Ë—¯b›c»õVØ'¬LÜ4äIB컇C®yEö»üÕ»JÖW°9fsÌæGcGcGc!Bˆ"hk@A\9¸rpåÁÞƒ½{û·òoåß*+Ÿ*îUÅ˪ä-ëFú¯ô[É:Í íÑ?PòCNíUŠsìŸJ%½úôèÆ§Æ>·OüèòÒå¡_–n(.5¼ÔðÒ&ÇMŽ›+¼®ðºÂkZªþÓ¨'QO¢ì*ÚU´«˜¨™¨™¨™ùò†«lŸ8z>µqë¶³ðÍ–ÆÓò~Ÿ?¯xçòúÐGÃKúc,üÓ.ìÈ|yóCæ‡Ìí®¿»þîúåôËé—Ó§Ý‹Â\a®0ß0gÜ s\ºt˜ùòšEŠ®Ðq,ײǻ±· žÖµ*è µ«<Ýé8áÁ/¦Æ=ý+Þ^Þ_vUã´äÏã¼3ÿÛ·-n[†Î:{èlY€,@@ë##ÀÀ÷¤ iBÚV½­z[õ&žPxBáÌ/kñû’ä;¬<ÚÒì«=±è¦üs(©– Ú±+"^IóžøáÓù‘{Zg¾ünïÝÞ»½í[Ù·²oEGä‘ΑΑΎåË;–ذ9`³ª%µÇO2µ5ÙЫú¤ÖÅ +úÔH „z‚m¾8Œá¾p%)òõÓ"¡Cw?_vñËŠ÷ËB®¨ZÜ|ù óAÞaÞaÞa†{ ÷î¡'@Dø—¯¾~øúa丑ãFŽ;xúà郧U-iT£ÕÉÚÆÚökûnÒH/Ü®H™üt©OãC¢ÞÉxþóõÞÌ˪–üKï/½¿ô\»>v},Ó•éÊté€ü&àEÀ‹€6mÛ4Î|ÉJÇG4Yœ®;½ºSý‹åèâ<ß{¯uPçu¾S42_òê­«·®Þ2¯f^ͼ½$€€oâÆ/Œ_h×À®]ƒgNÏœž9)/£¡_xF‘¾U䎭ÙVD¯ŒKÅK÷xÖ¿Ô Øñºé—‰«ZÆa…à ‡›Žn:ºé¨Öa­ÃZ‡é'€üàÒ–K[.mqœè8Ñq¢ªeŒš¶zߣƒñ–ŽûkiôÐjXhtA<Òôý©þ)kÞ<é¾-õãÍKÆûO©ZÒÛÝÛÝÛ½ÕÀV[ ¤‡¨3À€û(öQì#Ë1–c,ÇD>ˆ|ù@y™’NÍ¿vÙY6ºÛ¥#dášÏ5½¥qìi]’ç$»u÷ü‹ FÏÚß™©¼ŒÍl›Ù6³˜09`Rȱc!Gú àW9¥yJó”fo½Þz½õT-SyÖ¨3Ëé©úÜb”Ž=Á!°úÃé¯çz´Ÿt[Õ2»âvÅíŠëÖ!­C½E=i¨³¤)IS’¦XyYyYy©Jýš¤öîû×ãrOº{Ž6–RêW¤y¬Èì≕ †7]8¸‡ýÊ?ƒ”—¹:çꜫszé]¤w‘ô¡éCÓ‡ÒsyOõ«*õ+ó,¤UxJ ÙÛÝG¤—ú‰Ç%£x¼ÊˈñcEŸQOŒ€šJ‹M‹M‹í¼£óŽÎ;|gùÎò¥¼L¥)Ãg.*®{Ṵ́Áõ‰LT]¿À3ža;öx¸R®¤=H{öÒˆ¥K#èE€¼‘ù»~µw5Õ¯b5¡öšš«Š”*6F-îdÆ&HZýÒoùãÑ×¾lz4$VyÞ ¬žH@MÍ4ži<ÓØã«ÇW¯Êµ•{޲YºQçiÕßëVRÏøDß.z~Xhì®!K^)׮ܰrÃÊ ýzôëѯ} {"##«ž©z¦êåZ1õ[5iÒÜu­4¾¢=BÝâ“^ç«í—uÅ–ÍqIU8°}`ûÀö†{ ÷î¡G©¦€€Ú9}ûôíÓ·U¥~+–l1w–:§~Eò >·]_¶áï›F,V®7tÜÐqC x4àÑz 7(Ìæ sÇòŽåË+׊ ‹£~Õ3õ+]ŒƒªI¡ÅŠñ¤_©E¯ P’?$HîÕ®W»^í”kˬrX74JϰöÀ&͉•Èð‹MR·ú%ª41·¿¤\ÛâH‹#-Ž$&&+@ÎÚ0gÜ s6lج\k6bF³mMÔgÂç̉qc¢\+ÆPŒgþÜÿÓ‡O>}X.—Ëår·}nûÜöÅØÇØÇØÓ²?‡)  Fºv7ìnx1íbÚÅ´Œåº¶5n4|]éѰ) Çå„ÂXb•‘Â?µnJ©';fmqzž68q{Ü¿¦}÷dÜ“qOf—™]fvbȾàÊÁ•ƒ+×®]7Z¹¶ò¬Qg–5Ò9Rõ¹Åb¥,Á!°úÃé¯çz´Ÿt[¹öüü¼Âë ¯+¼Î{›î˜î˜îXòRÉK%¿óS³Éë'¯Ÿ¼~ø¶áÛ†o38mpÚà4훌€Z¸ærÍåš‹rêWdzîÏ®OIýª"k¨õ Ð‡*Æ7\ýÁ$+k®¬¹²æË//¿¼üB¬ÙòIø$|ì=Ø{°·r¥QÓVï{t õ›91>b¬”k¿Åö“ðIø”öölŸ³}ÎöQU»dØ’aK†Uò«äWÉ‘ÁYG—6=mzÚô®Q]£ºF)×Vì3D6Ï]Ó²XÝÂÄ*sÚûŒÒÊ•(³ÒÁcèGåÚÑWF_}…(²Ãç ÏAŸƒþ­ü[ù·R®5Üár¿òD)+TÅJŒ­çü°ŸM66ÙØd£8Ò7ó%Ig `HÜÉC'<$\®W2–ÝdÚ®ºŽÞíZ“­tˆRÖ®mqÖaƒr¹Ÿ“Ÿ“ŸÓÃî»?ìN”?ÌD0Lú·éߦåÊJÇG4Yœ®±¢Ðûª¬c%ÆM¹ö[œMÁä×î§8±³kOמ®=ƒ¬‚¬‚¬Hç@ëHUztztzt¿ˆ~ý"”kMþéúWc¡ˆPV¨L¬²NVT³VãJŸ‡~\¨¥\ëzßõ¾ë}¢øQ~®~®~®‘–‘–‘–˵ÇO2µÕSÝ¢þb¢ô£Ä¸‰1ÌX.ÆYŒyþÙ[’Á9…0$ëÖÙ[goU.×éPí|ý„"—J­0•(ýðû-'ÊÚi)T?c¹o”o”oTˆGˆGˆQdݬQ³FÍ¥\n²¡WõI­]¡†`I”~˜®PC°üÃ,Ç*—k-ÓëYrßÚ¹q¼ªb«ª-¤D}’Á$€ )÷ýïûß÷W./²¬´…ù·]ñ¡ðÛKyø¾¶^3dâîƒ{7®4N‰ŠÑŠtQœO•¥:K6QkU¡0#÷ÖQ=7WJúvaZ•µ°ñÝvÍÍW­:>÷"¯Y®ØmÝmÊ剉‰ôL@F1ccÆÆŒU./²£´^íÜÛ.ßÚ™ÇYU»¨i$ƒI@RBׇ®ý÷Cº?dº²Þ²î²b²ž¹±Å([?ý3/ÄÉηùŸ“Ó‹Ín)ƒ>©Z^|¤[v±ÃÌa÷ Ý)ÑÆx…X.¿lÛ¾šòòÕM¸©‡ø·âCÚšÔµÿôž2º«‡ªõÇÚÜëq%Aü[ËY÷¸ü€îK³E–v¹y Zî…_+—‡´iÒšž È(îTÜ©¸SÊå…Îê‡Ö˽íò­yœUµ‹z*¸É`­_2¹\.—Ëé:ÈmZ³õj•h+ôÊ­õ'¿xç$Â-A(®ó[@÷Yµ#‹Ð Ô<”buáý·ñCI‡‚¦<)ª¼d‘ä2¦ ‚ ûÅý"š—S^R|£aLØýé×B„ŽÂß‚ ÚиíÔG{ÆWm÷*·Ç î—4l…ú‚ ükªí›µnÖºYK.Èþ‹Æò"zÅ\„!|kçî·ö·8[ ‚p0c¹Í^›½6{ñ”ù ~‚_Ö“Áu·ÔÝRw‹½`/äUX‹–€´i,(t«pmAœ…èÜXÿÓ]´…7‚« ¼¶^3dânAa÷®'mEbõ8Í­±cÛ¶Íü±oœß“î·[¥/ÿZýËß ŸÔî+–'ýöúòãÇ©:qk>}Kä–­íbʤw]5ø|nÇYö›0FX.è ^B3zà'¿MžiîÕ-Âhá+ßÚyçÿ'ŒÜÐFÑFÑF‘§w¿Ò–>=¥ñ×ǹ·þ¯.Ñ]Þ×ÉþzÒv}ñH£ª¶ú¾™ZÛ›Š+ê¦tüò÷ãUé´#ã21-îõ¼/þ]tƒiËê…2ŸÖ2g)^ «… ô7@¶¾MÌÒœÒÖð­]Ð㌌.È.È.Èòr‹¿lð‰øñ'âirä¬Nºt;éf,I÷O”8’¦nl±›ž]Éa_…OžáB…î¯Íî[äv™e|âÄ™‚ ~.,x5à;•Ú ÝËÎa¬ðmòIƒé–q­Ó…ã‚ Š¿Ò;¤ûǺ=´»öNA—pi|×Îû­Vˆð¼K…~bz«ô+‚ x Å2×®X»b튋-z´èý z¥ÿJÿ•þØô±écÓ3–§OHŽKòÁHÊ·vîù¿qýŒåäïT‰Ÿ?%~ʱEÇ[´GoÞ½¬|Ê9Î9Î9®ÉÆ&›lº Ý„ny³·¿,ljjJw@Î2q5q5q ]º>tý·¢ŠxÅ.Å E’¢¨¬»¬˜¬gÎn±ð £ åš­òI?/k«¥(T]ûE©ÖåOýÜÚÌ VµÎÚ¼qÍoñÓUx¥­I]›8üÕÕG¥Sâƒbä²Rš£µFê?©ÿºå­’­šÙu9Ÿ7‘O_ž:ñke¡ž ËkO¨=¡öë¾Ö}­ûÒ?¢rÇË/w\øSøSø3cyJ»XÓÈû‚· )¹±]¾µÿ盂 Øf,'—QŒ}Œ}Œ½gÏþžýÅ·ù z‚žð©ßÉë'¯Ÿ¼~ø¶áÛ†o38mpÚàtÞï9S@@Rj;Ôv¨í \®“¢ûuKnl±È(㡦âß±£ïG\=’•O¥ŸO•¥<ñÇâÖCƒž†Íéòþܹ[»'fþ)³¨9š»æÂjáBº}ò¸ÄÄG^Ú‰iq¯Çÿ™FR¯k2Mk<1t=ùû‚¼Œ|ÚÛ¤Fñý•Ë«¯Z¼jqz& #ƒU« V)—'ÿü%÷¶Ë·vÞĹà“¾nûÜö¹í«äWɯ’ß·Ôo¦Ä¤oUU•kOמ®=UêWD’R¯b½Šõ**—§š$\‹i”[”?kdÜfªøwô‚;ºeqz‹û9dþ©ˆ 'æz9'Ï|Wûõ”¨­H=«š^ÊüS…m –õ„1B›o[·ldm[ýa½ßÞ,(Øøn»ƒææ«V?Ÿ—‘ÿZûÓ¶ˆïL\iddDÏd¤ã¦ã¦ã¦\ž8î¥ûÃôÜÛ.ßÚyç‚EIߌH@Rê5¬×°^CåòäI ƒså½kEõÊ/­zÿÛü¥èîÿæÆ¦A3C ïÚ¿´a´™ÿû ‹?Ç…ýX/öè£ð›OƒÖn|8Ó*²÷åHï’â‡ô×]ØÂ#ðÍÒ¯# tëÑ5üߟ_œ¶"©zœ¦–³îqùÝ—f‹,íò>òŸM‚Ÿ<»¯\^U»ªvUmz& #­†Z µ–œ[rnɹË¿}Ÿj¯ø3]#},ßÚ¹AŒ­çŒåÊm!mÒKúfD’b6Âl„Ùåòógkï¼É½íÖ~ï¾ú”‡~‹Íˉ%Ñwnûœ3Ý¿sáâ âcâàJ›ÍßüŸ-~ºâ2:•«ÙÔs4éÑwÚ”ÖYßVM­ùãöß–ÊNi4þV¼T|A%ÚиíÔG}ÇWm7-ï#3õ~±«Êå冖Zn(= ÌÁÈÁÈÁH¹šzóitK?ý3/’Šo|:/-2©SÂŒB-åËœµ Jµ69]bjÓ¦õ»Ö)Ó´F@Û±WÛÖÈúôZ5u+É£ÅqKËå–­íbʤw]58O§‘Lßz)eîçÚ¡c_\ÏX^âp‰Ã%+T¬P±BôL€2»#vGìŽx ^‚׿ʇ¼öüç½_ýK¶ú¹±]uþÖc+lê|¯-'ÁIp’R“¾žý=û{ö_â·Äo‰Ÿ þË”˜ô¾mø¶áÛ zô4è)ˆÿ ™B¡P(\b %¸ÿáþ‡û…ùæ_˜Ÿ±¼ÆÈ¹î{ÿ,t]_«dßÜÞ‡€€±cÛ¶ÿV~L,Öæì;ÿrcY‘Ô'Äëùƒ—“ÝFý•±|jÂÔ„© SR¦¤LI¡O”ENŠœ9©ªWU¯ªÿÊ÷ªâeaõÛªÑ ËæåÍž¨Ï·ö«±kt&ÍLtyéòð_IÐ@—@—@Ãe†Ë —ô~õ¯¤oÆøŠþ•ôÍ÷c|3Gtâñ‰Ç'÷mÞ·yßæËËõîÑt¬eÉGÖ=;¹¥œ6jŸ|eHÔ›žtÉX~£Ë.7ºÔÚ^k{­íD ð±B¬k²Þd½Éú„E ‹e¬¬µeñ¬£¿k®,R²ØpB•}iã’?%yþ3pÊÜ®‡2–ëLÕ™ª35tXè°Ða‚¾ /èÄ£#é›ï€5ßÚ|kó­Êåï4­ë-¼Ü…QD)ûÒû¦<ùÚS9õ+2knÖܬ9Q¨¤/è úÓ\¦¹LûÎ÷Hü'Ÿoß&H9EU<¿Å¿¦~Õç¾?Š0$Hß]ß]ßÝf†Í ›Ë;R¦Œÿl&{ù–(e_ü”zÞJU.ÿnü»ñï4iÒD”™ëfÚÍ´›©rùÛËûË®j,„ {…åD)[„½ÂòoñÌrüó'’¾YA’5¥Ü”rSÊ)—‡W>ºySñÉÅ…–âBHÛ¿;¸UQ®íïÕß«¿QdEé¤ÒI¥“Æ6Œm›±<-ùóøï¤ä7Ÿ6%JÙ!ÆPŒgÆr1æbüóóþ“ôýQ$€ YÛ5n׸ry©mïé$·ŠØ¼ˆ(ýœ„2O{ÜqWœMMN¹—±¼I‰&%š”0e:Ê”I¶?`®Ç\¹Êå¡Cw?_vQˆž wˆÒ‹ž w¾Å0Ë1ÏHúf `H–†\C®!ß^z{éí¥•kCkí2YzKHÞ ¯‰UÖ)>§]H½TtƒÑ´ïLþìVÏ­ž[=¢øQVnVnVn†w ïþ+ÑûeÅûe!WâW?xo QúQbÜÄf,ã,Æ<ÿì-Iß»¦ë@Ú:þÞñ÷Ž¿ ¶‚­`›±üóà³Ïâý³Ä/(e]äÈkíŽ U.·Úkµ×j¯ÅA‹ƒ‰à‡… ¡Bè¶ Û.l» \Ôyïôñ)Æ_ª¬c%ÆM¹ö[œC…P!ô×î'IßÜ@§¹@sæ‚£%Ž–8ZB¹öÍΊ™Óî$…Ç%V™ûÒó£æÛ¨ðqGFm0R®]c»Æv-Qd‡uwëîÖÝ^jx©á%åÚ÷›NµÜF”²BU¬ÄØŠqÎûé;Äwˆï’¾9‹0ÔB ¯^-¼Zk¶Öl­©\b·£“[ á­°_XE¬”)üS릔zYj…ÿ™rí¸'㞌{RE»ŠvmbÈ–’BI¡ä&ÇMŽ›•+?Þ¼d¼ÿT‚C`õ‡Ó •*b|ÄX)×~‹mI¡¤P2?ìm»ív¶Û©ª–¤ïÏ! 5².l]غ‰¿ò´™å³.÷>¸ƒ(){[ëàè5ŸÒ'në¡\;%aJ¦Ñä˜ ¯+¼®ðÚm‹Û·-ʵ¯çz´Ÿt;åQÌá‰Ä*#1&b|”kÅxбÍ?û¬á­á­á½{Ëî-»¿µ5Ißì“) …BA  >Nß>}ûôí^ízµëÕN¹¶bÙÁsgéÖؤ9±ŠÔ¾Zìð½wþ‡¯›¢\{ÍášÃ5‡:[ël­³•Xr–Â\a®0·mgÛζ]Àæ€Í›3ÖÊ< ižR³ðü)žh®*RªØuŽUÚØäI«Ÿ|±øšŠá)©_g¬5d>È|Е³WÎ^9+ Èè]ÒÆ`¨ûFöì*<ªð¨ÂʵoÞmz8knBÀC‚Ô9JÑÁ·‹ž¦*õ»rÃÊ +7úä1UéææýÙ;Ä4çK¿åG_K¯óÕöË:õŒ’xìb”S¿"1†¤~ÕèÜa0ÔSZlZlZlçwtÞá;Ëw–ï,åe*M>sQqÝÓf† ލOd¢êúžñ Û±ÇÃýrí íAÚƒ´—F,XA/ä€/^Ø4¶ilÓX¹V{°qWSý*Vj¯i¡>£ÅQ¿bê÷˦÷GCb•—¹zëê­«·Ì«™W3¯F/RŒ€šÒÔ×Ô×Ô?v0ì`Xé~¥û•î§¼LÐbÏyS£ïݾs®ŒÄÃqW ¨ÿÞìŒâï*ªR¿mw¶ÝÙvç⮋».îJÿä%1…éíîíîí®\+¦?Å ÕáÝÀâ1ŠÇ«*õ+ÆŠÔ¯zb0 Ä>Š}ûÈrŒåË1‘"D>P^¦¤Só¯]v–îviÄY¸æsMoi{Z—ä9‰ÅƒÇnÝ=ÿb‚ѳöwf*/c3Ûf¶Íì&L˜r,äXÈ‘>øUNižÒ<¥Ù[¯·^o=UËTž5ê̲F:Gª>·X ¥cOp¬þpúë¹í'ÝVµÌ®¸]q»â:¤uHëFoQOŒý:úuôëÜk{¯í½¶f{ÍöšíU^æÓÞë…õùÇoê ‡®Éqá^oZô£NXÿR'`Ç?ó§D94U•úuXá°ÂaÅÁ«¯¼JꈩMU£EbŠ4\ç¨Ó¦éûSýSÖÜã÷_<–ÌS¿bLHý‚ÀÀ¿|ýðõÃ×#Ç7rÜÁÓO<­jI£­NöÐ6Ö¶_Ûw“FzávE À4Ñ©OãC¢ÞÉxþóõÞÌ˪–üKï/½¿ô\»>v},Ó•éÊté€ü&ówgTéøˆ&‹Óu§Wwª± ]ü‚ç{ïµê¼ÎwÊ éä]¿Èˆ0ð=iBš¶Uo«ÞV½ …'žP8óÅËZü¾dÄù+ö‡4ûjO,º)ÿJªe‚vìŠÈ£WÒ¼'~øt~äžÖ™/¿Û{·÷noûVö­ì[Ñù_¤s¤s¤³cyÇòŽå6lجjIíñÆ“LmM6ôª>©u1Ê>5’¡ž`›/#F¸/\IŠ|cý´HèÐÝÏ—]ü²âý²+ª7d>È|w˜w˜w˜áÃ=†{è ‘þÓ¨'QO¢ì*ÚU´«˜¨™¨™¨™ùò†«lŸ8z>µqë¶³ðÍ–ÆÓò~Ÿ?¯xçòúÐGÃKúc,üÓ.ìÈ|yóCæ‡Ìí®¿»þîúåôËé—Ó§Ý‹Â\a®0ß0gÜ s\ºt˜ùòšEŠ®Ðq,ײǻ±· žÖµ*è µ«<Ýé8áÁ/¦Æ=ý+Þ^Þ_vUã´äÏã¼3ÿÛ·-n[†Î:{èlY€,@@ë##À@–¤ÎH‘:cãŒ36Θ^fz™éY›ð¹¡°Gxj\Ñ>ìO™^TíMþ.ú±|ù*¶9¶[o…}ÂÊĽACž$ľ{8äšWd¿Ë_½«d}›c6ÇlŽq4v4v4"„!‚¶tÁ•ƒ+Wì=Ø{°·+ÿVþYšÓ¢¸W/ «’·¬uê[¼Òo%ë4+´Gÿ@É9µW)α|*•ôêÓ£ŸûÜ>ñw¢ËK—‡~Yº¡¸ÔðRÃK›79nr¬ðºÂë ¯ie¨Bøa‘"'DNX\eq•ÅU6Oß<}óô]ƒ¬„æ­>º kmiœTÔ¸ü¾ªI…ï”hc¼\³wq½]3 -¬+¼S<Ó;¤lú¢“Ú7qIlã¯#—„‡røyxüǧ×üüÜþO/7½ÜôrÃ.»<첎‘Ž‘Žm  !FˆñÙç³Ïg_ÿ6ýÛôoiiiù£«Ñîj\Üätñ•U&ZhÙQZ¯‚v¡³ú!†õ4–Ñ+æ"{¦¹Ws´Â,Í)mMú„ä¸$¯”v±¦‘÷“ÿŒˆ þ’8î¥ûÃô/Gß'†Úÿèv ïÞ1¼³í¶ Û.X÷´îiÝS0 ÿqŸIÈŽ >$xUôªèUqIÚ’´%iùs?m[´mÑ6çúÎõëë™è™è™Ðv5b"˜&~®~®~®³FÍ5k”¿¾¿¾¾{åAÃØ†± cçzÌõ˜ëaåfåfå&„ ¡B( ˆ¬# ä˜444ëw¯ß½~×3Ð3Ð3ð\ßs}ÏõÍû=qªàTÁ©‚K —.5,‡Y³&Ø6‚ m€(¢XD±ˆb‡C‡YèµÐk¡W¢„E ‹òrt¦êLÕ™:ÍešË4—n¦ÝL»™–N*T:‰ÖAvrQÊü”ù)óŸÍ}6÷ÙÜ«qWã®Æð?áÂÿV—[]nuÉþú[7mÝ´uÓŽ×;^ïxÝÚÎÚÎÚ®ê̪3«Î”YÈ,dÄ€¬‹œ9)rÒ½°{a÷ÂÎ9œs8çpäã‘G>~šõiÖ§YÙYsɹ%ç–œë`ä`ä`dwÄîˆÝ‘úåë—¯_Þp™á2ÃeD9‹0¼=òöÈÛ#Áƒ?”͓͓ͫݬv³ÚÍt¯è^ѽB|È?üù-ò[”:!uBê­åZ˵–[Mµšj5•Èà×" ¡A@H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À ÿå¯Qè0F̺%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/fromEventPattern.png000066400000000000000000000657001431412030200267040ustar00rootroot00000000000000‰PNG  IHDRT¤FÚgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Üj×IDATxÚíÝg@çðýY@Q¤ Š Pƒ±ƒEbW F±ÅÆÞ5ˆ{ïŠ-±‹=ö®(н+6ŠŠŠtiû|Ÿç%ïºd•]dgÿ¿|8ž{†)×ÜmçÚ‘Éår¹\.ä‰`ƒ`ƒ`ƒ¶&mMÚš %J:”ä’á’á’¡é}énƒüpbÆ[Ȳ„,A.ȹGÉIþ‰Cþ?*í:Âtäjè tçZ ®‚Dÿ«O ü›«÷ßD ÿ­Ò€ˆqF¹¶aþñuíê°Gö’—{Ñ\K×–hèæqJ{kÒ;õÎäsßÒµ6&:vêØ©£N'€E.Y.Y.Yÿ*’ 2A&è züR€ ü«7Ðô}BÐÐ:ŠO sæ#>)µtFv€1]BÄWâ &‚‰ðÃ^‰Ëä $‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@" ´}ÜúqëÇ­›ßn~»ùmð±àcÁÇžô|ÒóIÏð¤ð¤ð¤¢áEˆ—ò*åUÊë¤ãIÇ“ŽD êbaaaaa‘Ÿ0.....Ž+]k;†††bÿ_ôeÑ—E_:”v(íPºÞôzÓëMo±¸Åâ‹Kø–ð-á˵´KôìèÙѳ]ººtuéëëëh.7—›Ëoß½}÷ö]SSS¢¤‰ž9Î(ÔuÌùóܵñŠ€V3+P{©oš™™éXݱºcõxY¼,^VôvÑÛEoo Þ¼»|ºŒ°d=žðxÂã ^˼–y-{©÷Rïåÿýµ÷áŠpEüçñ¿UoV½Ye!Xt²Ð¹‰ uºæ³ßg¿Ï~o„ÿï¿ûÂ}á¾°-p[à¶@ƒC‡ eXdXdXÜ0¿a~ü܋r/ʽ n@~&·•ÛÊm}ø4ði;+vVì,±|¸ápÃᆤ~¡k³)æx€™3+@wˆŸú‡VZah…iO§=öTüRx?ç~Îýœ,?°üÀrY„,BA¬t €– ¤{I÷’îuºÕéV§[ÿJý£Œ¶m3ÚŠÿnÔ QƒF òÿ¯ùÌñžã=Ç[|Ö‹XbuÐê ÕÁ)iSÒ¦¤¤­ÿ”þSúOÉ^r1äbÈÅ¢IE“Š&ÝÄ/€%h½Óz§õNQ…£ GÎyMñA …  HHLHLH$z Šæç›Ÿo~^ÙÒO4>ÑXÛÏ1åpÊá”Ãâ¿uó;¿š»ÊºP7Íy4çÑœY‹f-šµ({ù¨'£žŒz20n`Ü@¾§€Äi]¤u‘ÖÓŽO;>íø$÷Iî“ÜÅrñiüš_7‘– Ës/Ͻ§|NM& “¾”ˆOûsiáÒÂ¥ñÑ5$€%èñÄÇOô½¯=â{Õ«VUºTéR¥K\—¸.q]ˆ~ÀP´ÇgÏž| ‚àÃ¥€n·ß…ß…ß-ô,ô,ô~:÷Ó¹ŸÎ=s}æúÌUqÅôîéÝÓ»7yÖäY“g\ ?ظ5pkàå~—û]î—½|ìî±»Çîî×'®_ @‡Wh\¡qsžÌy2çÉŸ{ÿÜûç^±\|i¿Ö5¼V‚£££”-u(íPÚ¡4Q B‚ Nû._¾œóêg~:óÓ™Ÿx+0ðc¥ J”6hÆ©§fœÊ^njcjcj3*fT̨¢€nêùsÏŸ{þ¬X^¦A™eˆ?ó Jº€°Émå¶r[eKÅ÷þ%@v…Xxà ù ù ¹E¼E¼E¼²5'ÖžX{bm"ü(›R7¥nJ}½ýõö×Û³—w0ê`ÔÁˆø ËÄß+–G]Šºu©øá⇋&Jº€0øÂ<Þ<Þ<>Î<Î<Î\Ù:çßœsþ ±òÞg¿Ï~Ÿýü¼àç_ù&oçEu^Ä£œÀ¾ä}Éû’ËKy•ò*å%>]Œ(I `ð/gôÎèQ:Cˆ¸q?â>‚òÞ®Ž»:îê=;zvôlÅoíZµkÕ®QK6.Ù¸¤b¹øD1ëmÖÛ¬·%i3 PÝ•‰W&^™¨X^oz½éõ¦«¾ñ!ÕiÝÓº§uÿÖGRǛǛǛ~lø±áGçwtÞ³Ïj<«=>z|ôøxY¼,^V4¼hxÑpëåÖË­——¿UþVù[­Æ´ÓjŒûF÷îÅ߷凸ÜÖ¿­[Cñ Å7¿epËà–Á«m¯¶½Ú–t/é^Ò½’¾%}Kúڙؙؙxžò<åyÊóºçuÏëFÝŒºuËùHÞŽ;þíø½ÅöÛ[ìð®Ã»y)òÒ»Áï¿,7“›ÉÍŠ¾,ú²èKñÐ¿ÜøåÆ/7ºzwõîê­Êö¡²ªgUϪ~ñØÅcˆ>} úΫ;¯î¼ o¿üv°á Æ+,ïXÞ±¼S½Jõ*Õ«4ªÜ¨r£ÊbÝ0v1v1vÉm'12121rsôæèÍÑ';žìx²cdpdpdð«#¯Ž¼:Rx\áq…ÇYÏ´ži=Óyšó4çiâcQ›¬}X{ñWÈqqq 3f44nhÜи¡™©™©™©ý9ûsöç*ͨ4£Ò ±ëªþý ú¸‚Òîr3»ÐöÞ&Ð)Ð)ÐI±ü·½¿íýmïÿâþ÷?üöW»Úi‚,A– ;¼îðºÃëÄYÐ ‹/,ÞÌ~3ûÍì”Ã)‡S—˜Ybf‰™âµ«·¤Þ’zK<Ò=Ò=Òkݬu³Öͼo¡Úx̺&?·iÌ£hŒÔÜ'ÉM|¤Ttó>I~¾ÓE¿J$™Y1³¢ÐÞ™ƒ,B!‹üÛàßÿ¶üäò“ËOf_ê´ßi¿Ó~z$i“Éår¹\ž7; 666hkÒÖ¤­IöòCI‡’%¹d¸d¸dpIT§Þ__©òÀÀœ÷¨¸q½¦ïš¾kúž58kpÖ@lbccÅ_«Ü_yåý•9ï798989xnß¹}çö]ònÉ»%ïr¾áwÂï„ß1µ1µ1µÉ›+"ÆGœÖûœõ9ësöT“SMN5ùÖ½œM<›x6Ñ1Ó1Ó1S±Ó_vjÙ©e§üëú×õ¯û}g±£çŽž;zº/q_â¾DÓÑÈŸ-ë˜ÿ1ÿcþ^K½–z-U\ÚñiǧŸ®·\o¹ÞR½û]Ûwmßµ}ÿÜûçÞ?÷*.ùdä“‘Oü‹ùó/ö­[ÞS{Oí=µ'ºOtŸèþfÕ›UoV}ëÄ–"NjÅ6+¶ß¼l;â¿—…. ]:É}’û$÷ïÛ×Má¦pS(W6®l\î-?ô´š >f¶Äª«J|¥¶\QpEÁâƒb¾ùxÌ3ÁL¼í²4tièÒЛåo–¿Y^]G>cÝŒu3Öùœò9åsJ<Î{•ó¾þH»Èýì"?÷6ÿ±µò7Ëß,ß4®i\Ó¯l-xUðªàUUºTéR¥‹.I¾l§9û´òÓÊO+çvšÛin§…?/üyáϹٚâ\K=³¶³*ýXÞÏë4~TZÕ ´·g“F+È}ýg¤–öMÇGõGwî“äÏ;]ÜÉËvÁÌŠ™3+fVy?s“ß®Õ\«¹VË?=.ÈùP '¯·VÜZqëüfó›ÍovÝíºÛu7±cú†°üÍò7Ëׯ^;\]b‘¸Mñ¨ò&&OÛ?mÿ´½›©›©›é÷}¤µòmåÛÊ7ûP!¦j~}ñë‹__äæ#Èk™×2¯eºüpWñ[„Ê–v|ØñašˆOPí ÚAµ•-íÞ©{§îTßZBbBbB¢G2e¼Ÿ{?÷~þ}“‘8éÿ]÷`݃uæe ?´=3öÌØ3¹™X‹šÈ›È›ÈÃz†õ ëI_­Œø]HeKÅoG~_-ê:¶ëØ®cû~èû¡ïõ~äMð™à3ÁG|ˆMœ]œ]œn^A)õš˜]hcoó÷‰¿Oü}B±\üý‡Ë—.r¿ml§×<\ópM½-õ¶ÔÛ’ûÛ¢¦áMÛ†k®žkã1ëéVù³g£0RsŸ$7ñ‘RýÑÍû$ùíN÷@òs¿ÊÌŠ™3+fV¹Ÿ9ˆO¶P¶ÔgÏŸ=ôWREj“Ñ6£mFÛK,°drÅÉ'WÌÍÖć!ˆ¿t¿ç¢Þ£iÓ.¦]‡ÒJw(7x—¥]–vYžžž”›íˆßçúéÜOç~:'~c´W©^¥z•:kuÖꬕ¦2fr3¹™E¼E¼E¼nNp 28¤l©ø˜õî1êRÔ¥¨K9?ÄéŽÓ'•Rnâ$ }ƒö Ú78—r.å\Šz6{ò¦†L}:õéÔ§ë~]÷ëº_s¿5ññY=ë÷¬ß³¾ø@zoE!óBæ…ÌS¶´øßÅÿ.þ÷·Ö™–ËZ.k¹ìèü£óÎÏ›³ø½ÊïU~¯"~×Xw®ôzõÎ.´±·o1¬wZï´þ+®»¹î溛sÿ]]ml§â·˜ø6ðmày?ò~ä}uUöë¥Þz®Ç¬;¤:Zå·žVÀHÍ}ê.ß'ÉŸwº¸’ßÚ3+fV̬˜YibfÕyQçE)–ºrèÊ¡+ôoREX‹u(üõÿ4ñWª^rxÉá%wLÞ1yÇäÜlGœ·\ÞryËå9¯éZĵˆk‘¯7¾Þøúî?wÿ¹ûÏÛ®o»¾ízoë½­÷¶nz°éÁ¦9¿SAìÄÅ;hº›{^ãyç5¾4¼»zwõîöÿ_ÿÿõÿŸøØÆ×3_Ï|=óÂá ‡/ž\prÁÉ l)°¥Àe[{æúÌõ™«M[›¶6mÅÇõd_Úй¡sCç­s·ÎÝ:÷™í3Ûg¶/ã_Æ¿Œ?péÀ¥—º7ïÞ¼{óœV|ë†.·/1Vß:d~Ÿ=ö{ì÷Ø+[Ú£N:=ê¨rs_œœyM÷šî5]œ*[Ó-Ý-Ý-}Õ°UÃV »q+âVDô€èÑ^È_È_ÈO:žt<é8úäè“£OŠq•mG– K%hºí,²^d½È:{‰£±£±£ñƒ   |4ðÑ@ñQW±Sek1bÅ4Êyk^Ó¼¦yMû¾sT¥oï¼¹óæÎ›uá*ëB›Ù…öö6â­ÍÕFml§>g|ÎøœÉù˜Åm¾oû¾íû¶ªlS¬9æßEªÇ¬z ÏoŸw¾õ¨¤=Z埞Mª­€‘Z½#µôîÀ¨+>Ò®?ºpŸ$ÿßéâHÞ´ fV̬˜Y1³úQ3«ë5®×¸^CÙ^&[O¶žlMfMzùP™ø?y“lÎ/=Öš{•ºêßp¼³Ûu·ënךBM¡¦Jû½ððÂà Ň6([gñ£Å?^ix¥á•¾õ\T?þï‹’*ÛŸòxÊã)Å8¨²Õ¹W¡^…zÚ”º)uSªêÇŸóöKø–ð-á+~H½ÑÖ–Ë=~ôøÑ+ׯ\¿r½&ÎEü†²²GuõîêÝÕ{[à¶Àm9ïåõö×Û_o¯:°êÀª—Xx`áG|t°k5×j®Õ¾ù˜Í3Á,çoPŽ|2òÉÈ'þÅü‹ùÓDÛ©}¶öÙÚgÅw]¨«†—ò*åUÊKŒ^þ©á? í˜ f‚Ù’°%aKÂr~¼ŒøÍÖÛÉ·“o'«r$g~:óÓ™Ÿ~ý5ö×XÅ¥öìØßû¥¹ˆéÂUÖ… 7³ mïmš˜61mbzKÿ–þ-ýì円†âûírSµ«^ëp­ÃµÍÏ7?ßü¼²uÜ—¸/q_"¾¯Ns3:ÕÛ¬6ó·n9ïçuê=*iVù¡g“v+Pe;ŒÔº|&÷ñÑ…ú#íû$Úu§‹{ šn̬˜Y1³bfõ£fVéÝÓ»§w/~¸øá⇕Õjñ÷ÐÔ$?äCy4Ô¬l\Ù¸²qÿlÿgû?ÛÅ«Þ1­¯°¾Âú Ê–¶˜Úbj‹©ß7!V}ñ<íyÚó´&"c=Óz¦õLÕ?Òˆ‚Ê• *—ó:&ÕLª™T›è4Ñi¢Ó·Fæïïø{‡²¥±v±v±vš›\þ(·õoëßÖWå8;îtº“Òú ÊC¢r¶»é›*[*>(F•kº¡Ø†b”N8f®›¹næºïœôˆ„!A|ðÔÏË~^ö󲯴_§õNë4÷ ”€ùóæëñoY³eÍ¥z×ã]w=t§§za=Ãz†õßÁ#>¼Èé‚Ó§ 9§~Ų͜?sþÌo¸ ‡<òxˆÒÔ©{§îrÿáöJ÷+ݯtW¶ôíසߖö•Õ… 7³ íímÄÇ÷)¦~Eâ2r¾ÚÕN×ô]ÓwMßœçZ¹¹Í!úPæC™eÔU£´ñ˜óÿ¼N½Ç¯ £ÕíÙt¡0RçåH­k÷I¤]tá>‰vÝéâH~h̬˜Y1³bf¥‰™UίQìÁ#_KÐýð¶‰Û&n›ØrtËÑ-G«¾eñ…í?Eüñ“Ò7 \ÜvqÛÅmU[VmYµenâsïò½Ë÷.7jݨu£ÖŠK ®(¸¢àŠ´AiƒÒ©÷;bâw‚Ä奄Íå^”{Q®V|­øZñÊÖ:*tTè‚: ê,¨ó­Ç,¦‚êª{¨î¡Ü¨øÖÚòcåþ»iâ›!Ä÷}_Ë#/^Åaþ¥ÅK‹—9o9£mFÛŒ¶Å‚‹ V\ZîE¹å^ˆµH]·`öÜ_pÁÞEzé]$ojKÌ™52ÅÈ·n9çïkî˜óæY yiÑ›Eo½QrDÉ%U?»?÷þ¹÷Ͻ›ßn~»ù­âÒcƒ >6Ø1Ó1Ó13W§Âw3µë*«¾e]èr3»ÐöÞæ¬ÕY«³V3;fvüJä9ÈsçŒu3ÖÍX—›˜hK;³‹³‹³+ŸX>±|¢²¿]1ożóÄߎ侶‹_”é:½ëô®Óu瘵qF—ûs”öhõc{6]hÌÕÕ;RKïLn⣠õGÚ÷I´÷N÷@4×.˜Y1³bfÅÌêÇάÆ-·xÜâÕÿ[ý¿ÕÿÓÄý.dÇ/€!)â¨Êð•Æ°#xG°ÒïWŠSá†]vmØ5÷ÇY­~µúÕê+[*Nˆ5Ÿïû¥N™e”ió:NgÎ:ý¾®ÙÎÄÎÄ΄ڛ³Ñ'GŸ}ò+áyœyœù÷móî>PüØ#Rý‘×Ü®¹]sS¶´Ëâ.‹»,Vï°Ýʧ•O+eKg÷žÝ{voõÆ¿{÷6îÔð¼'Þ&X`µÀjÕ·¦~Es:Îé8§cô€¯ÿ§†|‚ §YŸf}š¥›×Hz€ÜÌ.´½·¹wäÞ‘{G4½Gmi§Á;ƒwïTú:Þ"Þ"~ИAcQWü[,n±¸Åb];fÝ$íÑêÇöl´Fjä&>ºP¤}ŸD{ïtqäǶ fV̬˜Y1³ÒÜÌ*çzàààO?&%$€¡6î‹Ý»g'+¾5!ç®V½Ý·ømPeKÇì³{ÌnõÆG|ËÅ·þUÎgU[ylå±ßwTb‚‡Ú›³N§:êtJÙÒÞïz¿ëýî[·¹§öžÚ{j+–Ë"d²Õ¿©we╉W&*[ÚôYÓgMŸ©79×™Ës/Ͻ{|öøìÑc†ôF«Û³Ñ ©‘›øèÄg=Iß'ÑÞ;]Üù±í̬˜Y1³ÒÜ̪hxÑð¢áßwÚˆ0Ô¦¡sCç†Îß9-®y½æõšÊ–ªë-wÙ9Tq¨âPEÙÒåo”¿Q^½{´i`ÓÀ¦&"¯¿qŒû¡¾õh+ýYéÏJ*[zèÊ¡+‡®|ëc|öØï±ßc¯Xî–î–î–^­[µnÕº©4õze襓¿ *¨p /¯ì«#¯Ž¼:¢Þ‡•nUºUéVô±ê%~ð(¾¼øòâËk|¨ñ¡Æ‡!u†ÔRçèࣃ¾¼öòÚËkJ;”v(?oç‰ýo"ô_ÒIÿ%ºyu¡ÈÍìBÛ{ñaÊ–ŠßïÎÏõS½í4ç¹bÍu6×Ù¬‰þªöÍÚ7kßÔcÖ–¶ôÒùa´ú±=›.´F꼩uí>‰.Ôiß'ÑÞ;]ÜùQí‚™3+fVŒŒšžYåüUò§Ÿ6~Ú˜ù›”¨‹mUÛª¶U…,!KÈúÖ¿};øíà·ƒ…!DùÊÔsF¥•f„‚Ú:ñŠÓ+N¯8]„Å¥oV½Yõf•Å‹5kÔ5pŠß™ÒDä5·e©ú¾k*¾hêû©ï§¾Ï^Ó.¦]L;Õ·ú{èï¡¿GDEDED).íѼGóÍ÷Äí‰Û£Ò†'…'…')[ZNVNVN&XB½c&埔RþQóôºuéÖ¥[SosS{•±hkÑÖ¢í»Áï¿|&îLÜ™/[Ž›7=î‡=Ä/³Qf£ÌF‘÷"ïEÞ¿{ø¼ÜórÏË…µ kÖîÁŽ;ì¸w÷ÞÝ{wGÁQpÔÍú  =@nfÚÞÛDŽ:uX('”Ê}åc[ŽßÛ•^;ý2WÜ)ì¾òÐ3ñ +š8Ó/ïä›&L¦éÂ1Cz£ÕíÙhŒÔÈM|t¡þHû>‰¶ßéâÈj̬˜Y1³bf¥¹™UÎw¢.E]ŠºdÑÞ¢½E{žï" $€¡6æñæñæñß÷·_o%,o[Þ¶¼­Þ£µº`uÁêÂ÷t“çiÏÓž§§VŸZ}juÅ¥ýÖ÷[ßo½*Û ªT;¨¶pP8(Ì^nfjfjfêýÜû¹÷ó_…_…_U:ªxY¼,^–¢”œœ¬Þm–˜QbF‰‚—à%xQÕëGM沪gUϪÚ!´Ch‡Ot<ÑñvòíäÛÉ'=Nzœôø×ª·²ý·WØ+ìåªéZ›Ù…¶÷69ÇSÓ€Îoí4çÚn½Üz¹õr¡¾P_¨¯Þý~Ù²Î3¤7ZýØžVÀHÜÄGê´iû.îÐ.˜Y1³bf%½™UÎ `ú4éáÐP333ML‹74n¨Þ£5v1v1vQ×´ºÀ¶ŒmÛ2Ê–||ðñÁÇ9?ôCn+·•Û®þßêÿ­þŸâÒN{;ííôÍ“Úx½x½ø|Ô“'''©y¢ wWï®Þ]j ¶K9œr8åðÌ=3÷ÌÜceeÕryËå-—Ïo6¿Ùüf_ùȧ²Bã +4N7£ª =@nfÚÞÛäüÑË"Ü"Ü"\wÚiÎõÅˆš¸ ¦6¦6¦6ºsÌÞhõc{6Z#5r]¨?Ò¦íwº¸B»`fÅÌŠ™•ôfVqqJ ’|1ùbòEú.)! 5Îm…!A[Öà¢ÁE¥ÝÙçAŸ}Ä%…¢YÃg Ÿ5\±ëá[iâN÷@h̬˜Y1³’ÒÌ*ç¯}\õqÕÇUô`’šäâw”Þ ï„wJ;Sõ>À?12121RÙR‹x‹x‹ø÷Â{á=ÿÒñ}Ç÷߯ _û¢áàfƒ› n¦ìoƒš5 jªX^ùÊTþ£Éš&kš¬‰ℸon;1BŒ󕥯g¾žùz¦8]ÎË(åáë6¯]™xe╉Ë=–{¨ô° ¾%|KøÖÝ\wsÝÍNûö;í¯Ú¥j—ª]<_x¾ð|ñiå§•ŸVž;wþÿ6’^B/¡WG¡£ÐQÈù»çÒ=餪H×"]‹tM’…ä¯}*LLHLH,*ŠêD;k{Š"¤(×Y V‚•š¯BÎ3Fé3££•&Æ)]nŒÔ þpµýN÷@h̬˜Y1³’RóÕïB$ IB™Dð `ä£LÙÒØ²±ec˪wqæqæqæÊ–šËÍåær® _^|yq¥SØo¼9ðF±<£mFÛŒ¶›ßn~»ù­âÒîÍ»7ïÞüûÞÆšs]}ßî}»÷íò>J?êͲÈ?Ò»§wOïÞ«t¯Ò½J+[G!‹Ex¤y¤y¤]ÜvqÛÅmâ·ÈÅv4´ÂÐ C+4½ÑôFÓqÙ[zÝ‘ó7scíbíbít§æòmŸ°}Âö û î+¸¯`Õ–U[VmɰÜw@âc+î½ôþQÅ¥zwõîêÝí]ªw©Þ¥èì³ÀòåË{?÷~îý¯oŸ½(÷¢Ü‹r‚…`!lLÙ˜²1E("Šd_§ØßÅþ.öw·Ýztëçççóm§‹K—.Ê–õ?êÔ_]mG´zòêÉ«'? {ö0,{¹,A– K谦Úkh;ˆºu)Jé÷.íÚ´WÛcö¯»]w»î¦££'=€¤‰½¾ïc›ôÚ©óXç±Îc…sÂ9á+7Rsÿ@lE'­”~h86pl ²yMñšâ5%÷ÇPôvÑÛEo+[šU=«zVu¯Q^£¼Få~_ ²Y‚liØÒ°¥aŠKkŸ­}¶öYjDF T¶ôyÙçeŸ—Íý^Þ÷xßã}ÿŠþý+êfœé¤ÍÑØÑØÑXÙҧퟶÚ^wÚ©±‹±‹±KÎëXÏ´ži=3é^Ò½¤{¹ÙWf£ÌF™ü+ùWò¯¤kÇÌhÅh¥^´FjPt™ôîtq„vÁÌŠ™#£¶÷Ï\Ÿ¹>sý¾»ÐF$€‘ìÕß«¿W_ÙRñQ6¹yÅ&ÃM†› Ozœô8é¡lï“Þ'½OòÝ=¨¢ðÀ +Úî곫Ϯ>|tð‘âÒnºuêÖI]5íèࣃV¶tû‚í ¶/ÈMÛÉh›Ñ6£mÏú=ë÷¬¯l#Ž8’¶#’£Ë(ݪt«Ò­”-=æÌÿ˜n¶ëëëØíntûC| ”®ò·n™@ªjdÖȬ‘©lé5·kn×Üt­ow¼ÝñvÊ–¾ÿvüÛñ¶lÙ6oX|ß^Æ{÷ïýxÂã 'èæ13ZIi´ÊhŒÔª^é¿ÿÓµDýÑvRºÓÅ=Ú3+m™Yõ;ÓïL¿3̬èT¿“Ph\¡q…Æ5?ßü|óóôfR"“Ëår¹{r5í˜tþÑù]§wÞuº*ë׺Yëf­›7jÞ¨y£¦z' 9Ç\!‹Eˆ‰¥¸¬¸¬¸,!AHrÞf¼y¼y¼ùÈô‘é#Ó÷ÜWp_AÅu*Ψ8£â qR˜ßÚΪáOÚ7­·¢ÞŠz+ÄGâd_šý7…zzz³GÎ9{¤8ÀÛTµ©jSõ³ßg¿Ï~aíÃÚ‡µ¿´ãÒŽK;¦É¦É¦É„‚BAá+“ý úô/¬r]åºÊµF\¸´/æzÎõœë9A6A6A&~K:¦qLã˜Æ¥¼Jy•òÒ…toÞ½y÷æË|—ù.óUüΩø‘OœŽ‹=ù¾ä}Éû’ËÆ–-@©¥$_L¾˜|1êHÔ‘¨#âtWÇ]wu¼uàÖ[÷h`` ÖaeG%¾›ªlfÙ̲™âÞóçUþ¾-ÓH•_¿>~}6lؽ\Lýêf;oaÔ=T÷PÝC9¿éªî–º[ênéU¸Wá^…ÛUjW©]¥r±åbËÅŠßn7pªÖ©Z§j­°vÀÚŠÃjèÜй¡óÅ‹!CrmmþÚxÌÒþŠ.ŒVù­g£0R««=êÚ/€©?Rú©]wº¸¢ÞvÁÌŠ™3+fV?ªXònÉ»%ï&Wœ\qòWÞŸ}Ùï²ße¿JVú³ÒŸÔ$?äCy0ò)±³'Ä–ç-Ï[ªùéóÖ3­gZÏ”ÑÄ–^ö󲟗h|¢ñ‰ÆâG¾µnkÝÖºiËUÖܖ餧ò•ÿ¨ü‡²¥9ß¼v;­³¹Îæ:›ÅÛª<ÐLuâ‡Þ]®»\w¹šÉÍäfr]>fF«ü?ZiZ#5¨?ºLJwº¸B}ffÅÌŠ‘Q»\w»îvý+íÅþ€ýûõêÔ “ÀЂÉñu»ëv×íöØw`_ñß·5ñ­*#RG¤ŽH½æpÍášÃ—A‚©r­‘s#çFÎ9¯Ó£yæ=šçM}÷r¥û•îW¾g|Îøœi\µqÕÆU+®¨¸¢â ±íØÙÚÙÚÙÖ××÷hÑ£E+W®|½òõÊ×+¥Ú‚rs^iÝÒº¥u·ÐrzËé-§WPe@•Å·ßZ|kµÖÕZWkíþ—û_î‰}‘îÔ7Uúð>1}búÄÔŒ«W3N¬{b=ë¤X?‡UVqXÅcC =6T•襎K—:N\ÓµŒk×2å„rB9¡¬YY³²fÍ4?ÐüÀ÷!îCÜ4þÑø{•ó²þèr Þæ…ù óæ2 ™…Ì\ ]n§ŠÇ¿¶ãÚŽk;zÞô¼éy³îßuÿ®û·muÛê¶ÕKÌ*1«Ä,±ž·þ£õ­ÿXX|añ…Å_m{µíÕ¶Uϵñ˜¥=»ÓöV ŸhŒÔª´GMŒz|ÖÓÞú#¥û$ºy§‹vÁÌŠ™3+z€¼qáò…Ë.+Φ,--_&¾L|™H_§ ù!Ê;€!Ê~û·W€ïk;´ uÅ“þظibËÚu´ôºÐc÷¬Ø³bÏŠKB–„, ¡J©fLa´"æDF—Gjñ½¡%V•XUbÕ—h„[„[„‹y¤Ptù ríhŒò̈ =€ê†W^ix¥Ío7¿Ýü6{yóMÍ75ßt¢×‰^'zÑF4!?äC ¸ :)€¶C<‰[ÞlY»Ž–+%[ÖlY³eM÷?ºÿÑý_oÞÿqÿÇýçúÍõ›ëg``@;•Fm§…2ZÈèr###³—ØVµ­j[5Nˆh.Ô® ˆ*ׂ«LdˆÀI”6(mÐþOû?íÿ¤¸Ôûš÷5ïk;ãvÆí¤½Hï´@«Ñ­F·­X.Þ"Ïþ)´Ý›Ùof¿™½Ä¦ªMU›ªÜ¼PÅÑIG'”˜˜˜½\|—¶×R¯¥^K‰’´‘´€,B!‹Øøzã믗¶qoãÞÆ(¤áèü£óÎÏ^âjäjäjDdT±sÄÎ;G(–ûõñëãׇ/ÕéÀ€ÖèP¢C‰%Ë÷:Þëx¯œßi@~y?ò~äý¿ÿõø¯Ç6lËKø–ð-á;öÌØ3cÏ%€œÅ›Ç›Ç›ÿsüŸãÿÏ^^½Jõ*Õ«ôlÙ³eÏ–DI´G‚ $ìKÞ—¼/9{qz÷ôîéÝ @{94thèÐp˜ó0çaÎb‰©©©Í¦W›^mzÅïTT±ráÊ…+*–O;>íø´ãÌ©t `@˸¦»¦»¦+–»»»Ä:Æ:Æ:%€v±:huÐê`ãRK5.5´ÂÐ C+ˆï¹¯»´îÒº¼£à?ÄÙÅÙÅÙ­Z´"({y§½övÚëQÆ£ŒG¢¤;HZéÑÀG 4©fRͤšX’œœüSÄO?E€v kÖ0¬áù×ç_Ÿ=õêÔ«S¯ò Õ-*´¨Ð¢Bâ±D|žÊŒ]3vÍØÅÌJ×´’õLë™Ö3“î%ÝKº—½¼Ð¸Bã {7øÝàwƒ‰@»pkà[‰wÖz®õ\뙽|nÓ¹Mç6­¸µâÖŠ[‰’®! h1Å婳Rg¥Îâº`~ùuæ×ù´òÓÊO+Å’nºuêÖ©ÿ¦þ›úoâ vº‰0 õ^-µüÕrñßÕ«T¯R½Jí³µÏÖ>kaaaaaA|žÄÈÄÈÄÈ5#׌\3R¼à–î–î–¾u÷ÖÝ[w“úÕe„ÐvFÝŒºu‹ë×-®Û¿Ä qö ñ-¿$z¡ˆ_€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H„A~8ùyùyùù‹—.^ºxé?V• 2Aö‘ýJu¿D˜ý²_öKOÅ~Ù/ûe¿ì—3e¿ì—ý²_öË™²_öË~Ù/ûe$b¿ùl¿2™L&#ÎÒݯ†å‹p»6íÚ´k#0Ìs€ïÃ# @"ò4ì’á’á’AÐ@òôÐ111=}ú£©¦>šz.ñ\â¹ÄC¡‡B…^i¥ý•ö¹ßþ/ ~iðKƒ6Ú\hsÁÅÝÅÝޤ “*L’9ÊeŽÄÕÅŒ‰3æFÔ¨QÇ=Ž{÷Ø÷~ßû}ï?øðÿàŸ›-[Nµœj9Õ£˜G1bîûÜ÷¹ï«U¦V™Ze¬æYͳšGä¡^$€µÉ4Î4Î4¾pýÂõ ×W†­ [v¼çñžÇ{æý‘xÙyÙyÙyWö®ì]Ùi€Ó§‚«à*¸rEEEíØ±7bfàÌÀ™É³’g%çé¯xÇ37Þ{¼÷xm;Ú–øXâc‰\ä ` WÞ%¿K~—X6°l`Ù9™s2çdæÏ㜵qÖÆY»ÖêZ«k-SSS®@‡Ø6‚Mˆ_ˆ_ˆŸÿÿ!þCBÍBÍBÍòÛaÖI¨“P'a격˦.spp"…H!’ Õ‘¾Y̨˜Q1£fÛ϶Ÿm¿nº ë&|ëdEõûô0™Yu}½…­Ëì¨ð±àµ¢Í¬èw/²Ìt‹Þ¤û š¯å{…•Y­Ó×~6Îè™2'¡^Ú½˜9oÞ|ê±÷ñ›¤÷χÞú¾ãŸPzBé ¥œpfÀãbÆÅŒ‹qM/Ä ñÁ;‚wïèݬw³ÞÍbœbœbœ¾u3†¬‹Ø)²È~´£^¡Í%Lí 3‹°ª©· ©‘·ì‘þvý¡òJ™^™K³F¥&~ Lo‘`s3õ÷èÄðÏ)#žÎ¿õyÿÛ”ÈVߺ_«kV׬®m<¹ñ䯓.]\º¸tÌsÁœ ‹ÿ˜g’T‘11cbÆÄ5×L\3qBÉ %'”TéÏêÛ„‡Öe[Eý.3­ö®þ_…ß—)c禮Ãz%ì¥lñǃä„×·ÿ8ÓëLZ½êX¿.~]¼§µ§µ§µ-D Ñ\k€¶ /^>¼|¿ ~Aý‚B›†6 mªÊ_ ´tt¶¼âR·mÏ"å~²¬Þ°À6³]–ïÔuTé]~ûP<åųw/~¨|õÐ_)ÞO½o‡¨4¡8]çtÓk=×z®õ´{n÷Üî9WÊþÃØ±bÝ˺—u/›¢Ÿ¢Ÿ¢ŸóúV‹ÝxZ=t èøwÁKE¬Ççý1ZøÚûùž÷V§Ív¥Ä;†fžÜœóú{ö8ìÙZkk­­µJ›•6+mÆuh¹ƒÜAî°zÊê)«§øõõëë×7çõõ ^hìYºIç×ï˜?¬•àÖ_0ª ÎyzЉÂ}!$¾ò ³³«_ÙYjq½ÌÔO#“ƒrþ£€õëÖ÷ŸÜrÿɲ;²;²;\}dGøšL!SÈÜ`ºÁtƒé¨‚£ Ž*˜óê¥3h”Åfçe-÷è÷4]xmþ9• §dÄ…1ûÏf~÷áÄàm¿ä¼þÖ ­A[ƒZ5mÕ´US* ÿ‹éÓ5¦«gÏ2že³îÎ:ekŽ´cëf³º[Å1¿Y• ®œ*˜ 5·|qñÂMáìǘ—. EößúxÞ©Ï ß΋8«luŸ ¨ ¨ («mVÛ¬¶Q " üKÚ»´wiïíÆ¤3aÊÖk:Öt¬©ß=¿{~÷d&2™ ußÜyrçÉ'®õ\ë¹ÖËyÍrÕŸe2¡¢W­SÚrvI3o¿ñË‹v+.ûê弿¹+箜»âð³ÃÏ?S+@ø"ifÒ̤™îµÝk»×~äõÈë‘—â:zf'êio1êÀÒ…LKz—=­½ç›¼ê©ñÍÏ,õý—²u<z,ôX¸vÿÚýk÷ì5Øk°—zÈN¯?½þôzÏÑž£=G+[§Xƒ¦o;·¶^ßfto½Îu ÕÆ3ÍÚ™š¾ômßæoÌxé´õÎÃÊÖ š4?h~Ó¾Mû6íK Ñe$€!ánÂÝ„»N܆9 ‹¹s+æ–â:–^ÒÚÿ]*®ãéAƒdoôëIãÜ3Û§NI)>|ÃÖé§’‹=jym’â:®“]'»NÞe³Ëf—MÏž<©3€å°þaýÃúÝM»›v7U¶Nyÿ!GçÕ5ÞWá±ã ){²GXÅÛžO]ÖrÌUeëlIÜ’¸%±ufëÌÖ™ÔݤG Ë>ú~ôýèëèè¨,õk“ѽçØ{¥tZ9ÔZJ©_‘þB“‹¤”7Ø`æ ëέýþBqsSÎM97¥{¡î…ºÊêŸÕ?«?5÷Ä_ý*KýÊV0(è[Y6Åmë>é¥~Eây‰ç(ž¯â:b|ÄXQgt¿€ŽÊLÈLÈLh·¹Ýæv›/û_ö¿ì¯¸N9ß“f19Rɪö>݉Ll°£+£6o[6âRCCùÑs£çFS‹y#çwýö³î`kfï<ªÚÒÆú‹ 7¦3™á©ï>.y²àÞÐóŸ×¾Ý‘ ¸ïÖM$€ £&YO²žd½,mYÚ²4Å¥å» q»Æøa…_k”ÓÍøÄ…_-|b@d–?æ<:¤“U'«NV§2OežÊÌ^nâVùbçåîð9L(-t†«ìä¡5Ò‹?Øì¿Þëqf¿”M‰ÿzìóˆ#Œx0¹ää’“K+@î…—/^¾F\¸qŠKËû9:¯®ñ¾ g+EÉaoOx>uYË1W—Þ²¸eqËÂî¹Ýs»çùáh³<³<³<-O[ž¶üÊWÍþ\õçª?W Ü8pãÀæG̘áúª‚_@'œ÷>ï}Þ[1õ+²=þû!¿‡¤~•‘Õ1¸Uàý»‘u–|åÇ$‹ª,ª²¨ÊÓÏO??ýL¬¹òAø |èÔ/¨_âÂb š¾íÜšÔoÎÄøˆ±R\ú%¶„‡üp´Çzëq¬‡²¥sÌ0g@¹r!åBøe°êH@â2'dNÈœÐ!¶Cl‡XÅ¥e{ü!›6_ßɨ¤IAb•3ÃÅ2K-¹ÈcYÿ÷ŠK‡žzvèY¢ÈàÝÁ»ƒw‡6 mÚTq©u¿Ögz•!JªP+1¶bœóÃqÖ_SMý5â/}s^“d°êH@âþÙóÏžög…³ÂÙìå…×Ú¶¨hlzµêŸÎÆDIuVËóX­Xâââu»ÓíN·;%À7³l›ÞÍz7ëÝLqa¹ƒƒêÏÎÒ[XàmÁß•*ÄX‰qS\ú%Î6‚`ócS|°³_¿.~]^8¿p~áL2X WŸ@ª²â²â²âzE÷Šî­¸Ôæ~÷ȱõ„BB)¡<±R¬°~3ƒzå>õ?Ó@q©ßM¿›~7‰à[…ø…ø…øÅ8Å8Å8e/7i=ÆÖÍdXEÇZ³‰Ò·ã&Æ0{¹g1æùçhI« `HÖ•cWŽ]9¦XnÜúçµ’ .ÑßnQú>Æo*ït-kaP¨@­ìå—c/Ç^ŽX±,bQ¨Îˆÿÿ!Šå6«»Uó‹`"TœˆÒ73* N_b¨rÌó’Á¹A’5ûÕìW³_)–—|ÞÁ§_ â“2Y†¬™í‰ž‡ýž*.Ýè½Ñ{£7Q¨"Ú(Ú(Ú(Ô,Ô,Ô,{¹~¡Â = •]_ùQÊ 1†b<³—‹1㟟Ÿdð·" J0:aô¹é禟›ž½\ö»A‡ G”‘Û—&J¹g2»êŽz_yôÂR K-,•¹.s]æ:¢ÈÙÞˆ½{#ËK7éüzø¡Œà%Œ"J¹RFðF}‰§ÊñÏŸH«‚0$èBŸ }.ôQ,/•ùëûA[{a´ÀŠÕ@ï¯U î(º¦Áæ6ŠK]xtáÑ¢P*AHfÎ œù•qÄä·*…ëÖ%Hê¢,ž_⟠$ ÚuF$ƒ•ÎШîžMÇ6Ûô•·ÿššWó¬_…ø¨WÑøúóZÅ*–Úzhë¡­Ä LÌ´˜i1Ó’g%ÏJž•½¼H } £³þ¢B–F‰’ºˆñc›½\Œ¿x-´÷ìHgG’’é–é–évrúÉé'ÿõðg¡¸Ð\èZà³Ç–ˆ’zj]ª\ùŠåkN¬9±æñ(s#êFÔ(ÅrË+.uÛö$>š ,¶Ê®…6"L’ò¦å›–oZ*–[%¸†u4L…ª‚3QR/½nM øksãçÙËc;ÆvŒíø1ýcúÇt¢PtÜã¸ÇqÅò"kʬjM|4AYl•] m§›É`À”G+­x´B±ÜøN¥ÁNeóæ’W>-|gCÄùM»f˜>Œš<¸kÄ]ëÑÃZy¸~ÊÁ÷^ô_í:qb¢é½"!ò¿äOåʶóz˾b«ãîÜ>¼yó;=GTh1>£OÊòĪÃÇåŸýò·w†oÞüË“|ÒÜY›ÏªùÑõ+¿®~µúÕêW«©™EûÞï{¿ï½b¹Á<Ó.–þŒÚš8_e±Uv-¤Dw’Á$€ )7Co†Þ U,/4¯D¨Ý^ÍíW¼)üªÏîâË.?wYúÇè­ñæ7.ž­—oã-?‘!Kœî{òíȤÁj\¹òòâZŸI)/W¬¹=±~–^ÚÑÔ7ŠÛ4¯Õ°É•/ÿg¬¼uV胑ãŸxf©r< ®7;ŸMÿ-+®?Ô`°Y|­FÿokP8Ò®J¥šŠåaŸÃ>‡}¦f²ËÍÍýàÿÁÿÿ’‘†¬‹Ø‘mÖËÒ[̨­‰sc+Æ9{¹x-Äë¢ 5PÚÉ`À”›/o¾¼ùR±Ü Ò¸±ùUÍí÷í߇{l*ôaä…®ûýe£ ˆ*6ÿ—Ø.ëÊ}ìÿjf¦ýòÑË— ívq¬iá˶w+žÿ*iõƒóWgÜ»5öH»ß·i4ØvïÏÿzœµIÿ*ëNøC¹# šÅ¯½9þܱÀ´Cõ’ *?°òûçך‹@Á{–½K|åMÀÊ=*÷¨5]²_²_²Ÿby‘Eö£5ž½bÔVge×EÚ¤— & I¹·ïÞ¾{ûËeK $쫉=¦=ú°òMê»â'>l{¯—U°e¡’ÆŽYéXrSû¿|ìLœ«ì®sÚhµm“ŠŠz×»îô©~DõÇ®–§×÷p;ñ‘9ï+yïcÇñ™¾©z÷+['%ìe¡ÁéÞqíß9ˆ%}ë]o±ÛÁañâ'4yýÒFWM6*–‡¥„¥„¥P3ÙÅ?\±¼Ðæ¦v†šÛ/£vÎqVv]t‡4’Á$€ )‘«"WEþû&Ýo2YwY'™‘¬‹&öëbvô‰ø°Çb'šýÏËëɺ€tŸÊÖoé–ší1iÀ׊6³^(–[œqNhù³âú?×7zmgñßòw™K3–ßïî;´Ã2eÛOp½Ñùl²øoƒ®&-v™<­4ËÉ]Ó‘×e0¿àsÅòˆ_"~‰ø…š È.ñpâáÄÊ厙EXÕÔÜ~µs޳²ë¢›´7lð£BfaaaaaAÕ€¦L6­Z´¹ÐMSÛO}òÚãÅ A®BãŸîT«Ê¯vdÑúaú{ÒbO¾ýòû¡{^ø>(¬¸f¡Ô’¶eû ‚ ;ųBŽ}•V\S|£a|ÔÍ ç#„6Â_‚`ñ°Žuóqw·¬Ð♦K$Ì×;­ç&Ôá_Ú¾TõRÕKU- Û€ÿ¢· ©‘·ð£¶fGí/qvawör×í®Û]· âP"„!ª¯.&ƒk¬¯±¾ÆúVB+!¯²À\)H›ÞŒW V¡«§‰í¶}×>ÊPx)ø Âs—¥ŒÞ*‚ lýÖíd.L©˜¨Ç`øðæÍs¾í›ò ÓÕ¦Y Ò*~þKïVÁ {Šåz~æÞ½ ãÄ¥Þ‰%Nõ\ÜãKfuXÜã,ûI&,Ì„@¡!µð£É#ýíúCA*¤1jçAœÿ `hB3y3y3yžÎ~ :¤-kBz½´{šÛ~šw\û·Õs¿Ì-Ÿ—}¦liÅ“ 65ÿ-¯‘Þæó_÷6µo»9û:ñot9›$þ»ðjÛ& äüXKõ’?–£¨o€\&•2½2—2jk{œ‘ÝIÙIÙIY^îñ‡ýøPÒ¡¤CI\r¨W[“¶&mM²—dLI¼+þ’¦·&öX ÀÔÝr@šðaåÁ®Sßó“{ºZr^Ùopâ$Aú=f<ëó•…†3¬æ—š"ÂpáËÃ'Í'8%þ’%AÍjšpÛýükAÁ¢¨w½ëîA¯ "„Çíó(ô£³šf!P0Ê^\­lµ²ÕÊκ;ëÔO€è™Ù3³gfó†g ÏÊ^ž5*5ñc  Å„þŒÚšóÿâ,fÙËÉß)“ä›ä›ä{`ÖYfm3ÝfºÍT•¿êšØ5±kbý5õ×Ô_#t: óæhXØ%Ã%Ã%ƒêõ²ñ³ñ³ñ‹\¹*rÕ—¢]ò$ùùùGyaY'™‘¬‹z÷XðP1»ÒÒì?oNÈšÈ T4|Rü—2‡¿okæ‹Qí¹‰ ï­1‘f.ÍXž2ðÙ¹»%2’“^Ä[ÈŠë5lö Öó&W,›6to"o"Ÿµ ctZy¡¦ ÑÙË«ª6ªÚ(—ž.=]zR?¢ÒK,}Pø]ø]ø={yz‹Û˜›B éšØ/£ö¿â|I·ìåäﲋoß*¾ÕÊÞ+{¯ì-¾ÍW0L…ÿHýþ¹êÏU®¸qàÆ͘1?’÷GÎ#  )Õ<ªyTóP,—K7I[¯‰=bÝßÖQüwÂЛÑçö©òWY'2déŸü6û—þ/FMÜ5âíñãW¶ŽÎù¯*ÅNÑßÚGp–'³Z¥ŽHI¹=êi«}ñotþ¿‘4íP½dƒÊ¬üþùuF^F>óÕǺI½Ë+©P¤Bj& ;óÅæ‹Í+–§þþYsûeÔΛ8k/1é°#`GÀŽr!åBÊ…|IýæHLú¾p~áüÂÙ¯‹_¿.?*õ+" I©Y¶fÙšeË3l’ÏÇ×ÕÄ-Õµn6NüwÜŒk&§d‰¦÷Š„xäüWÑ'M ìš:éuµç¤ÇÆÄx›:WÙ]çtÎUÐÍ|A±nÂa˜ÐìËÞ꺸Ç'T¼]óâ—7 Zô­w½Ån‡Å‹OœÈËȧUû°1ú+®¬ô¢Ò‹J/¨™€ìŒŒŒËSF<;KsûeÔΛ8ki$}³# I©Y§fšuËSÇD× ×È{× ›–™[áæ—ÿ3VÞ:+ôåŵ>“R" nÙ9·N\¥Ð·'gJŒV3aÿÝ7—¾X¾æö$ç˜îgb‚,Å?2ëWcfãea/ç¦ ²úÖ½ÇU}{bvæÂõ ºš´Øeò´Ò,'÷¼ü'›ðn*–W0¬`XÁš ÈΠŽAƒ:–S-§ZNÍ^þyÿÛ”ÈVòß³ô²†3jk‚[1ÎÙ˯…´I/é› `HJ¥A•U¤Xžìðhùµ—šÛoµ·ó—^fVȱO£ÒbIܵ«ÁÇÍ#wþ=söIñ6qx¹u³&Kjt}ˆ‰¸ŽqùŸ]kzÚtî9Þ÷Õ÷UÅ`úˆ×„¹²Ãzu„¿äOå_~Aeñ°Žuóqw{ެÐb|ÞG>~ÜM£saŠå¥û—î_º?5 È£˜G1bŠåcw|Ð`2R—Gme±Uv-¤DÚIßì è\ %%–ÐÑù§ÅC“çMË›#ÑQûÙð¥Æc&¥x?õ¾ý¯$h˜w˜w˜·Õ<«yVó´½^ý+é«Âo|EÿJúæûßøæŒ0$èнC÷ÝëÙ¨g£ž²——îÞ¹Áp'Ë».]Ú%u‰²ÃbQDì—~ÿÇ;{ùÅöÛ_l_uSÕMU7%ÀW$ B‚Í*›U6«’g%ÏJž•}aÕõ³ý÷ÿª¿¨¥Ñ@B•{™#R?|\y¿¯ïÔ{²—3g<.r@ä€È‚™`&˜iãÙ‘ôÍŽw@‚mh´¡ÑÅò×ú{Š­è.<æ CˆRîeõLÖE1õ+ªÔ¨R£Jˆ@)3ÁL0ï=Þ{üWÆ‘¤]>]½JÔEY<¿Ä_ S¿ºóNßoEd6ßl¾Ù|׉®]'f/—oÎØŸ>ò“m”ìé+¢”{I¾÷»\ÉP,ùzä둯õ}ô}ô}ˆ gm;Úv´U,ufg©Åõ„(a»°€(åJ”°]Xð%ž*Ç?"é« À,ßÒ¾¥}K+–¿)¿ÝÚhâ“ò}rùɈæµ°W\Ú;°w`ï@¢PE‰%>–øX'¡NB„ì噩ŸF&}L}Ù÷a¢”b Åxf/c.Æ???IßoE’U¯E½õZ(–'~Òü†qjÓèÕ᳈Ò÷I.ù°óµùòc©é7²—×/Z¿hý¢¶Cl‡ØòmÀ7˜ºl격ËË#ûo}<ï”$<®¥o–$<®}‰¡Ê1ÏHúæ `H–ž…ž…žÅ¦›Jl*¡¸4²ê›¹W„TáµðœX©Nþ)ódÆ•…Wÿ•‡?Ô ¨P“(¾•s€s€s€Õ5«kVÿJô~^øv^ÄÙ¤%oßð%JßJŒ›ÃìåbœÅ˜çŸ£%é«¶90UÒÖæ×6¿¶ùUpÜ·ìåŸúE{œœX÷þœd¢¤º˜Áç[ìë¯Xî¼Ýy»óvÇÝŽ»w%À7‹"…È'7žÜxRqá‹v+.ûêeL·NÛE¨T!ÆJŒ›âÒ/qŽ"…È{œ$}50$N†þ ýû‹î/º¿¨âÒ—¯‘Oyí㛤4b•³Ï]Þ뿊}3bßÕÅ—.u[ê¶Ô(rÃ¥“K'—NuN×9]ç´âÒ·k7ÙE”T¡,VblÅ8ç‡ã¼üÇå?.ÿAÒW½H@'4lØ8ðý_ôÑW\á¾¹m@eá•°SXL¬ÉC3j¤Z|aè0™âÒF<ñÀÞÐÞÐÞXrÅR°,×z®õ\멸ðý¥ÓÖ;'{„U¼=P)#ÆGŒ•âÒ/±µ,Ëüp´-þnñw‹¿•-%éû}H@‡¬ˆZµâ+¿†I:û°ahù÷þgºïÞL”½ªº{èÒ™ýR6%vV\ê›ì›ìËc´jc÷Üî¹Ýó€õëÖ+.}>uYË1WÓïÆï}ŸB¬²c"ÆGq©O1¶ùç˜õ‚ô‚ô‚¶®ßº~ë—kMÒ7÷dr¹\.—èŽ#W\=rµ[‹n-ºµP\Z¶T?Ç©þ¦VÕúÖoD¬b Ïí½ñ:tO¿¾ŠKÏ{œ÷8ïQ}Cõ Õ7+€zÉär·n-ÜZÜYwgÝuÙ—ÊV0(è[¥àtß]ô*n4L—c•9<õÝÇ%Ò&Îþ­Š|`zFÚììK|||Î;{ìì1ÙÙÙj—´ñ `èœVu[ÕmUwHÁ!‡T\úòõÚÛþS“+‡í¹õB—£~µð‰ÊR¿‹V/Z½h5©_€æˆ©Ê ¨ ¨ ¯<½CLs> Ypoèù¬êinŸWèf”Äsã ˜ú‰1$õ«Cm‡_@7e&d&d&´ÛÜns»Í—ý/û_öW\§œïÀI³Š˜©dU{ŸîD&¶FHØÑ•Q›·-›¿Gq©¡¡áÜè¹Ñs£©E€¼qçÉ'wž¸Ös­çZOq©a?ë¶föΣª-m¬;¿õ+¦~?¯}»?"AqsWÎ]9wÅág‡Ÿ~¦é~ ¥o¦o¦o¶;jwÔJô*ÑKq³WN—wãêµã%%ŽëBy­·•ŽÊÿ²W–úmþwó¿›ÿ=»Ãì³;PyILaÍš4_q©˜þ€¬ ïÏQ<_e©_1V¤~u¿„„» wî: sæ4,æVÌ­˜[ŠëXz5Jkÿw©¸Ž§ ’½Ñ¬$sÏlŸ:%¥Høð [§ŸJ.ö¨åµIŠë¸Nvì:y—Í.›]6< xð¤Î~”Ãú‡õëw7ínÚÝTÙ:åý‡W×x_…ÇŽ3¤tîÉaoOx>uYË1W•­³%qKâ–ÄÖ™­3[gR[t¿³êfÕͪßh~£ùæ•¶WÚ^i»â:¶_(x Çýq=:¤&¾ |ÙTÛÏ:yÕSã;›ïO÷õh ,õë±Ðc¡ÇÂÝçvŸÛ}ŽÔ/ ?S›Ê~ ,S¤oŒ÷{­]˜µ3#4}©öž¯xüâ¹äœúcBêüø—´wiïÒÞ 1xÄà»ì>²ûˆ²5‹UnúOgCkÃVË{®ÕË*Ø¢<&:ãaRD\±×²=æ+‹O»1éL˜²5ÇšŽ5kêwÏïžß=™‰ÌDfBÝä79¿8»rÕŸe2¡¢W­SÚrvI3o¿ñË‹v+.ûþÇO:y×/²# |M¦)dn0Ý`ºÁtTÁQGÌyõRŽ¿Î4Êb³ó²–{ô{Ž.¼6ÿœJ†S²a˜ýg3ƒF¿ûpbð¶_r^kÐÖ ­A­š¶jÚª)ÿÅtéÓÕ³ŒgÏ2wÖÝYwg²5 GZ±u³YÝ­â˜_Œ¬ÊWNÌ…š‚[¾8xá¦pöcÌK—‡…"ûo}<ïÔç…oçEœU¶ºƒƒƒOPTPTP”Õ6«mVÛ¨ ‘þÃØ±bÝ˺—u/›¢Ÿ¢Ÿ¢ŸóúV‹ÝxZ=t èøwÁKE¬Ççý1ZøÚûùž÷V§Ív¥Ä;†fžÜœóú{ö8ìÙZkk­­µJ›•6+mÆuh¹ƒÜAî°zÊê)«§øõõëë×7çõõ ^hìYºIç×ï˜?¬•àÖ_0ª ÎyzЉÂ}!$¾ò ³³«_ÙYjq½ÌÔO#“ƒrþ£€õëÖ÷ŸÜrÿɲ;²;²;\}dGPIÆÄŒ‰×L\3qÍÄ %'”œ ÚŸëÛ„‡Öe[Eý.3­ö®þ_…ß—)c禮Ãz%ì¥lñǃä„×·ÿ8ÓëLZ½êX¿.~]¼§µ§µ§µ-D Ñ\k€¶ /^>¼|¿ ~Aý‚B›†6 Ué™Eí-¯¸ÔmÛ³H¹Ÿ,«7,°Íl—å;uUzׄß>OyñìÃÝ‹ê_=ôWŠ÷SïÛ!*M(N×9]çôZϵžk=ížÛ=·{ÎU†2$€€o3*fT̨Ùö³ígÛ¯›°nº ߺYQý>=LfV]_ïcaë2;*|,x­h3ëúÝ‹,3Ý¢7©Àþ‚&Âkù^aeVëôµŸ3z¦ÌI¨—v/fΛ7ŸúDì}ü&éýÃó¡·¾ïø'”žPzBégœpƸ˜q1ãb\S€Å ñB|ðŽàÁ;z7ëݬw³§§§oÝŒaë"6GŠ,²í¨Whs S;ÃÇÌ"¬jê-(djä-{¤¿]¨¼R¦WæÒ¬Q©‰Ó[$ØÆÜLý=:1üsʈ§óog}Þÿ6%²Õ·î×êšÕ5«kOn<¹ñ¤K—..]sÁ\0çÂâ?æ™$€€Üx—ü.ù]r`ÙÀ²eçdÎÉœ“™?sÖÆYgmìZ«k­®µLmLmLm¸vb#Ø6!~!~!~þCü‡ø 5 5 Íw¯<¨“P'¡NÂÔeS—M]æàà D ‘B$ª# ¨M¦q¦q¦ñ…ë®_¸¾2leØÊ°ã=÷<Þ3ïÄËÎËÎËλ²weïÊNœ8 \WÁ•k€(Ú(Ú(ÚhoÄÞˆ½3gÎ Lž•<+yV^ƒñ8ãqÆãÆ{÷ïÝѶ£mGÛK|,ñ‘«ƒÜ  hPúôôééÓM}4õÑÔs‰çÏ% =z(ôJû+í¯´ÏýöiðKƒ_´¹ÐæB› .î.î.î&U˜Ta’ÌQæ(s$þ¨.fL̘˜17¢nD݈:îqÜã¸Ç¾÷ûÞï{ÿÁÿƒÿÿÜlÙrªåTË©Å<Šysßç¾Ï}_­2µÊÔ*c5ÏjžÕ<"õ" ä#¯ö½Ú÷j_øíðÛá·eÓdÓdÓª5¬Ö°ZC“³&gMÎòY!³BfeŒÊ•1Ê`ÁƒÎãœÇ9#2ø±H€DèÀ $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0H `À $€@"H€D‰  A$‚0HÄÿq‰ø)ßê-]%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/generate.png000066400000000000000000000675531431412030200252030ustar00rootroot00000000000000‰PNG  IHDRŽãåXgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ün‚IDATxÚíýw”eþlƒ®ëêîÄ€ ŠbEEA@P\ÄœÀœX³0‡]ÀVÀ¬«"`1`X§2Š‚¢ˆ9b@ETQ$ÎûGýÎyçyz{žQÂÌô\WSgÌTßõ­»ººêÓUw½òUhâêWŸ¸z#€:#ÏIWM&[O °òÔ¹8ÿ÷‰õ'ÖŸXb½‰õ&ÖË–e˲eÙÒli¶4[œ-Îg‹²EÙ¢ì×ì×ì×lA¶ [ýœýœýœÍÏægó³yÙ¼l^67››ÍÍ~Ì~Ì~Ì~È~È~ȾϾϾÏfg³³ÙٷٷٷÙ7Ù7Ù7Ù×Ù×Ù×ÙÌlf63û2û2û2û<û<û<û,û,û,û4û4û4û$û$û$û(û(û(û0û0û0û û û {/{/{/{7{7{7{;{;{;{+{+{+{3{3{3›–M˦e¯g¯g¯gS³©ÙÔìÕìÕìÕlJ6%›’½’½’½’½œ½œ½œMÊ&e“²³³³‰ÙÄlb–fi–fI–dIeQeafaV–•eeÙ Ù Ù ÙóÙóÙóÙsÙsÙsÙ3Ù3Ù3Ù„lB6!{*{*{*{2{2{2{"{"{"ûOöŸì?Ù¸l\6.{<{<{<{,{,{,{${${$“ÉÆdggg£²QÙ¨ìÁìÁìÁììììþìþìþì¾ì¾ì¾ìÞìÞìÞìîìîìîì®ì®ì®ìŽìŽìŽìöìöìölD6"‘ φgóeÿÊþ•ݚݚݚݜݜݜݔݔݔÝÝÝ]Ÿ]Ÿ]Ÿ]›]›]›]“]“]“ ˆeò!ÙlHöÏìŸÙ?³«³«³«³«²«²«²+²+²+²Ë³Ë³Ë³K³K³K³K²K²K²‹²‹²‹²ÁÙàlpvAvAvAv~v~v~6(” ÊÎÍÎÍÎÍÎÎÎÎÎÎÎÊÎÊÎÊÎÌÎÌÎÌNÏNÏNÏNËNËNËf³Ù€l@6 ;5;5;5;%;%;%;);););1;1;1;>;>;>;.;.;.;&;&;&;:;:;:;2;2;2;";";";<;<;<ë›õÍúf‡e‡e‡e‡d‡d‡dgggfffdddûeûeûeûfûfûf}²>YŸlïlïlïìoÙß²¿e{e{e{e=³žYÏlÏlÏlÏllll÷l÷l÷l·l·l·¬[Ö-ë–íšíšíšuɺd]²ÎYç¬sÖ)ë”uÊ:f³ŽÙNÙNÙNY‡¬CÖ!Û!Û!Û!Û>Û>Û>Û.Û.Û.Û6Û6Û6k›µÍÚfÛdÛdÛd[e[e[e[f[f[fm²6Y›lólóló¬uÖ:kmšmšmšµÊZe­²M²M²M²Y‹¬EÖ,k–5Ë6Î6Î6Î6Ì6Ì6ÌšfM³¦ÙúÙúÙúÙzÙzÙzY“¬IÖ$['['['k”5Êe ³†YÃì¯Ù_³¿fÉþ’ý%ûsöçìÏÙZÙZÙZÙŸ²?eÊþ˜ý1ûc¶F¶F¶F¶z¶z¶z¶Z¶Z¶ZV/«—ÕKËÓò´<]š.M—¦KÒ%é’tQº(]”.L¦ Óé‚tAúKúKúK:?ŸÎOJJJç¦sÓ¹ééééœtN:'ý>ý>ý>ý.ý.ý.ý6ý6ý6•ÎJg¥_§_§_§_¥_¥_¥_¦_¦_¦_¤_¤_¤Ÿ¥Ÿ¥Ÿ¥3ÒéŒô“ô“ô“ôãôãôãôÃôÃôÃôƒôƒôƒô½ô½ô½ôÝôÝôÝôíôíôíô­ô­ô­tz:=žNK§¥ÓÒ7Ò7Ò7Ò©éÔtjúZúZúZ:%’NI'§“ÓÉéËéËéËé¤tR:)}1}1}1˜NL'¦¹$MÒ$Ò(Ò0 Ó0-KËÒ²ô…ô…ô…ôùôùôùô¹ô¹ô¹ô™ô™ô™tB:!>•>•>•>™>™>™>‘>‘>‘þ'ýOúŸt\:.—>ž>ž>ž>–>–>–>’>’>’ŽIǤcÒ‡Ó‡Ó‡ÓQé¨tTú`ú`ú`ú@ú@ú@zzzz_z_z_zOzOzOzwzwzwzgzgzgzGzGzG:2™ŽLG¤#Òémémémé¿Ò¥ÿJoMoMoMoNoNoNoJoJoJoHoHoH¯O¯O¯O¯M¯M¯M¯I¯I¯I‡¦CÓ¡étH:$ýGúôéÕéÕéÕé•é•é•ééééeéeéeé¥é¥é¥éÅéÅéÅéEéEéEé…é…é…ééééyéyéyé tP:(='='='=;=;=;=3=3=3=#=#=#======ý{ú÷ôïéÀt`:0íŸöOû§§¦§¦§¦'§'§'§'¥'¥'¥'¤'¤'¤Ç§Ç§Ç§Ç¦Ç¦Ç¦Ç¤Ç¤Ç¤G¥G¥G¥G¦G¦G¦‡§‡§‡§ýÒ~i¿ô°ô°ô°ôÐôÐôÐôàôàôàô ô ô ô€ô€ô€tÿtÿtÿtßtßtßtŸtŸtŸtïtïtï´wÚ;íî•î•î•öJ{¥½ÒžiÏ´gÚ#í‘öH÷H÷H÷HwKwKwK»§ÝÓîé®é®é®i×´kÚ5íœvN;§»¤»¤»¤ÓŽiÇtçtçtç´CÚ!íî˜î˜î˜nŸnŸnŸ¶OÛ§íÓmÓmÓmÓvi»´]ºMºMºMºuºuºuºeºeºeÚ&m“¶I7O7O7O[§­ÓÖé¦é¦é¦i«´UÚ*Ý$Ý$Ý$m‘¶H[¤ÍÒfi³tãtãtãtÃtÃtôiÚ4mšnnn®—®—®—®›®›®›®“®“®“6N§Ó†iôaÚ m6Hÿ’þ%ýKúçôÏéŸÓµÒµÒµÒ?¥Jÿ”þ1ýcúÇttttõtõtõtµtµtµ´^Z/­—”'åIy²4Yš,M–$K’%É¢dQ²(Y˜,L& ’É‚ä—ä—ä—d~2?™Ÿü”ü”ü”ÌMæ&s““““’’’ï“ï“ï“ÙÉìdvòmòmòmòMòMòMòuòuòu23™™ÌL¾L¾L¾L¾H¾H¾H>K>K>Kf$3’É'É'É'ÉÇÉÇÉÇɇɇɇÉÉÉÉ{É{É{ɻɻɻÉÛÉÛÉÛÉ[É[É[ɛɛɛɴdZ2-y=y=y=™šLM¦&¯&¯&¯&S’)É”ä•ä•ä•äåäåäåä¥ä¥ä¥äÅäÅäÅüCAþ6ÄIœÄI”DI”IIYR–”%ÿMþ›ü7y>y>y>y6y6y6y&y&y&y:y:y:y*y*y*y"y"y"ŸŒOÆ'ã’qɸdl26›<–<–<–<š<š<šŒIÆ$c’ÑÉèdt2*•ŒJJJJHHHþü;ùwrrrrorororOrOrOrWrWrWrgrgrgr{r{r{22™ŒL†'ÓáÉmÉmÉmÉ­É­É­É-É-É-ÉMÉMÉMÉÉÉÉõÉõÉõÉuÉuÉuÉ5É5É5ɰdX2,’ I†$ÿLþ™ü3¹:¹:¹:¹*¹*¹*¹"¹"¹"¹<¹<¹<¹4¹4¹4¹$¹$¹$¹(¹(¹(œ N'$$$ç'ç'ç'ƒ’AÉ äÜäÜäÜäìäìäìä¬ä¬ä¬äŒäŒäŒäôäôäôäïÉß“¿'“ÉÀ¤Ò?éŸœšœšœšœœœœœœœ”œ”œ”œœœŸŸŸ›››“““•••™™™žžžôKú%ý’Ã’Ã’Ã’C“C“C“ƒ“ƒ“ƒ“ƒ’ƒ’ƒ’’’’ý“ý“ý“}“}“}“}’}’}’½“½“½“ÞIï¤w²W²W²WÒ+é•ôJöLöLöLz$=’ÉîÉîÉîÉnÉnÉnI÷¤{Ò=Ù5Ù5Ù5éštMº&“ÎIçd—d—d—¤cÒ1é˜ìœìœìœtH:$’“““í“í“í“öIû¤}²m²m²mÒ.i—´K¶I¶I¶I¶N¶N¶N¶L¶L¶LÚ$m’6ɿɿɿIë¤uÒ:Ù4Ù4Ù4i•´JZ%›$›$›$-’I‹¤YÒ,i–lœlœlœl˜l˜l˜4Mš&M“õ“õ“õ“õ’õ’õ’&I“¤I²N²N²NÒ(i”4J& “†É_“¿&Mþ’ü%ùK²v²v²v²V²V²V²f²f²fòÇäÉ“?$Hþ¬ž¬ž¬žÔOê'õ“zI½¤^¼,^/‹—ÆKã¥ñâxq¼8^/ŠÅ¿Æ¿Æ¿Æ âñ‚øçøçøçx~ñÞñÞñÞñßâ¿Å‹÷Š÷Š÷Š{Æ=ãžñžñžñžññññîñîñîq÷¸{Ü=îw‹»Å]ã®q׸KÜ%îïïïwŠ;Åâãããâââãããâââöqû¸}¼]¼]¼]Ü.n·‹ÛÆmã¶ñÖñÖñÖñVñVñVq›¸MÜ&Þ"Þ"Þ"n·Ž[ǛśśŭâVq«¸eÜ2n·ˆ[Ä-âæqó¸y¼q¼q¼q¼Q¼Q¼QÜ4n77ˆ7ˆ7ˆ×‹×‹×‹×××׉׉׉ÇãÆqøaÜ0n7ˆÄ‰ÿÿ%þsüçøÏñZñZñZñŸâ?ÅŠÿÿ1þc¼F¼F¼F¼z¼z¼z¼Z¼Z¼Z\/®׋ʣò¨á>á>áÞáÞáÞaï°wØ;Ü+Ü+Ü+ìö {…{†{†{†=Âap÷p÷p÷p·p·p·°[Ø-ìîîîv »„]ÂÎaç°sØ)ìv ;†ÃŽáNáNáNáŽáŽáŽáááaû°}Ø>Ü.Ü.Ü.l¶ Û…möaÛpëpëpëp«p«p«°MØ&lnnn¶[‡­ÃÍÂÍÂÍÂVa«°UØ2l¶ [„-Âaó°yØ<Ü8Ü8Ü8Ü0Ü0Ü0l6 ›†ë‡ë‡ë‡ë…ë…ë…MÂ&a“ppp°QØ(l6 † ÿ† ÿþ%üKø—pípípíp­p­p­pÍpÍpÍðáÃ?†ÿþ!\-\-\-¬ÖëåAyP, –Ë‚%Á’`I°8X, ƒ…Á¯Á¯Á¯Á/Á/Á/ÁÏÁÏÁÏÁOÁOÁOÁ¼`^0/ø1ø1ø1˜Ì æßßß³ƒÙÁìàÛàÛàÛà›à›à›àëàëàë`f03˜|||||||||||||||||||||¼¼¼¼¼¼¼¼¼¼¼¼L¦ÓƒiÁ´`ZðFðFðF05˜L ^ ^ ^ ¦S‚)Áä`r09x9x9x9˜L &///ƒ‰ÁÄ Ò â â ¢ reAYPü7øoðßàùàùàùàÙàÙàÙà™à™à™àéàéàéà©à©à©à‰à‰à‰`|0>Œ ÆケÁØ`lðXðXðXðHðHðH0&Œ F£‚QÁƒÁƒÁƒÁÁÁÁýÁýÁýÁ}Á}Á}Á=Á=Á=ÁÝÁÝÁÝÁÁÁÁÁÁÁÈ`d02 †·········777777×××××××××ÂaÁ°`H0$ü3øgðÏàêàêàêàÊàÊàÊàŠàŠàŠà²à²à²àÒàÒàÒàâàâàâà¢à¢à¢àÂàÂàÂà‚à‚à‚à¼à¼à¼`P0(œœœœœœœœœœœœœœœ ƒÁ€`@pjpjpjpJpJpJpRpRpRpbpbpbp|p|p|p\p\p\pLpLpLptptptpdpdpdpxpxpxÐ/èô          öööö ö ö ö ö ö öööþü-ø[°W°W°WÐ3èô ö ö ö ööövvvº݃îA· [Ð-èt º]‚.A—`—`—`— SÐ)èìììt:‚ƒƒƒíƒíƒíƒöAû }°m°m°mÐ.h´ ¶ ¶ ¶ ¶¶¶¶ ¶ ¶ Úm‚6ÁæÁæÁæÁfÁfÁfÁ¦Á¦Á¦AË eÐ2Ø$Ø$Ø$h4šÍ‚fA³`£`£`£`Ã`Ã`Ã`ƒ`ƒ`ƒ`ý`ý`ý`Ý`Ý`Ý``` qÐ8h4  ƒAƒ Að—à/Á_‚?þ¬¬¬ü)øSð§àÁƒ?kkk««««««õ‚zA½²eeËÊ–•--[Z¶´lqÙâ²Åe‹Ê•-*ûµìײ_Ë”-([PösÙÏe?—Í/›_6¿l^Ù¼²yesËæ–Í-›S6§lNÙ÷eß—}_ö]Ùweß•}[ömÙ·e³Êf•Í*ûºì벯˾*ûªì«²/˾,û²ì‹²/ʾ(û¬ì³²ÏÊf”Í(›QöIÙ'eŸ”}TöQÙGe–}XöaÙûeï—½_ö^Ù{eSöNÙ;eo—½]övÙô²éeÓËÞ,{³ìͲ7ÊÞ({£ìõ²×Ë^/{­ìµ²×ʦ”M)›R6¹lrÙä²—Ë^.{¹lRÙ¤²Ie/–½XöbÙIJ‰eóËöùåºüc»x•®0ÀÊPòP0À %B,J„X ”°(`0P"À` D€À@‰ €€!%B,J„X ”°(`0P"À` D€À@‰ €€!%B,J„X ”°(`0P"À` D€À@‰ €€!%B,J„X ”°(`0P"À` D€À@‰ €€!%B,J„X ”°(`0P"À` D€À@‰ €€!%B,J„X ”°(`0E}=ìëa_Ûô³M?Ûô³üscˆ-¶l8÷ó¹ŸÏý|e¿ú7ƒ¿üÍà`ûÿ÷d»ÕeeŸ§äg[ù™W~–Ÿ‘åggêP`0ÿòæËš/kÞ§oŸ¾}úVüÜxÓú7­ÓúùÏ+» çßwþ}çßWøÙÕÖàÿ4(oPÞ ›”MÊ& ¹wȽCîÝoëý¶Þoëíçl?gû9­êµª×ª^“éM¦7™Þjn«¹­æî0c‡;Ì8$>$>$¾¾Çõ=®ï1µÕÔVS[)$5í<å†7t¸¡CÅåïó·}þ¶ÏßœT…X Àÿ0ìŠaW »¢â'ÆÖYë¬uöó¨ŸGý¯÷y½Ï«XŸ­.Üê­.Ì/»¯š†ô»ºßÕý®¶½¨x„:j¯£ö:j¯F«Ä Ÿðñ ;îP½ç) †.º`h›mF´Qñµ*Öc» €€:A\£õØ¨Ç ësoë{[ßÛzÕÔêÑc=öÑcm/*ºeÖ-³n™UùÑ!ÿºÒ ¯XxÅÂÉGO>zòÑß þfð7ƒñˈ_F¼=æí1o¿Æø5ƯqfÓ3›žÙtý‡×xý‡+_æÈGÞ8òFõ zÏSî<þÎãï<¾ðGß0ú†Ñ7Ø:…À` N(VnစغÿÖý·î_±2-Úµh×¢Ýʾ÷wqŸÅ}÷¹í…Û^¸í…&Ó›Lo2Ýö 7÷ó¹ŸÏý¼y׿]›w-v\È •Xõ#E>äAåGœVõZÕkUÏÑ nª9ç)ù}ÀÍú4ëÓ¬OÅWl»wÛ½Ûîí8PH,êbåŠ}£üôާw<½ãŠªÒÒ¶KÛ.mûñvo÷ñvO½üÔËO½<øœÁç >§0x¶½ÈÝüëÍ¿Þükåj^žåÔí£nu«ü¸óà+¾òà+ŽA¥ª¶œ§ 8wÀ¹Î-|Ý{v¼gÇ{v´* €€:A XL~wï–C·ºåÐÂÊd“²IÙ¤å©Ò«Ý_íþj÷nÛtÛ¦Û6+j\Fý îèùdÏ'{>Yx,Øpð†ƒ7níãÖîÒ¯K¿.ýò(1¿Sg½ ëMXoB«¹­æ¶šÛ¾¼}yûòCâCâCâKz^Òó’žQ“¨IÔdI×%]—t]±õYõ'ê5¹·T´ÛÒÝ–î¶´°&—opù—o°üõðûä÷f;Ü~ùí—ß~ùŠ:.|ÚèÓFŸ=î´h×¢]‹v¶@)©½ç)ù•¨ÂWß3Ù3Ù3qÆ €þÏsœûãÜ|<•Æõ×o\E}è_Ù§cw»Ãضºp« ·ºð÷µ6¿¤•ÿbã#~ëZ¬ìSRªsnÖÀYg ¼úÕ«_½úÕoôx£Ç›~¶ég›~öúgƒòå Æm6n³q›íþÃî?ìþÊ:mÞìÍÍÞÜìÍüç…X8`ùë°*Oàk~oÉMm5µÕÔVÅÚðö˜·Ç¼=fù÷©WN{å´WN;àÏ¿m“?”»Øqª×ƒ½ìõàòß·»âOWüéŠ?Û wïq÷wïáóz5+ϳ×?{ý³×Û^ùÑvE ]0tÁÐb¯Õ¬O³>ÍúØûì}èÕzu)©½ç)ù¯‹µáŸÞøéŸl_° üõu^_çõu–'ª©(¿W¸âGÿ•qzÇÕùݱ+6®¨ W¾îùé÷ pP8(\þöç÷¯¨ö—R+ºeÖ-³n™•ßZì¯ò{v‹½V~—v¿«û]ÝïêF+YÅ‘ÿ–§+;®]½%wÎGç|tÎG…¯˜ßs_½ïÌàÊ]pó7_ps±úäwá/ÿ‘q/Öùb/ —À’–°$ÿ ˆm^ÍÊ“É,ÿLR8½tçKw¾tçŠ:.|öÅg_|öE±صw×Þ]{Ûûì}èÕu§W¿{Íÿžô®šsž’?O«° ¯®Ø^@]&uZ~“?ŠvÅ6m÷n»wÛ½WÆý…ßoûý¶ßoÛm›nÛtÛfeowœuÇYwœµòNòÿ½bá ¯X¸b[ž? zyNxJ¯Î‹û,ϩ·œzË©·T¥UÅàùæO˜?a—ów9—ó­BûümŸ¿íó·ªlÓU×ÆÞ’ñb‹Q[ŒÚbTá«ô¿ªÿUý¯ªÞKàÊý2â—¿Œ(VŸüq뿯Vù{EçS;ŸÚùÔÂ%oÒb“›´ÈïJ·-~Ÿé/MiúKSö›²ß”ýTC¯®Éò! >iùIËOZÖ…õsÙ˜ËÆ\V¬·ø¸ÅÇ-.ÕbïsLÑ«õêßzvY—Õœó”Sî?åþSî/lC>l™/Ö€À@•¯¹ÍáÛ¾Íá•|ï}^ïózŸ÷øîïþøîŸ¿õù[Ÿ¿•?6?©ËÇŒé{kß[ûÞZø·{ݶ×m{ݶ¢NòñD+Þ YLþ`¢ü2ÖŒy3æÍ˜—ç:§áœ†s棩åþmU¯U½VõŠ-'pÖ3w=s×3w­Œ¤I×MºnÒuç5ž×x^ÅïÞ¬{³îÍþ³îÖý켧 þfð7ƒóûMóÇyÖë´^§õªJT6ú†Ñ7Œ¾á·¶¶ôêœÿïÀ“ž4ð¤ªÅà³µè¬E•ÿmþ(é¡7 ½ièMùV®XŸïvýn×ïvÍ/Wå{V~×lU½žÿ~åu8vÃÿ=U¾äbUª½%ß.•?°N\óå­+V¥}wÙw—}wù­Ë÷ÜÊ÷A[ayzlamó Êê£WW—<,¹Áý î_ÐiH§!†ÔwÝü³}þù³X?‰ÿÿ!þCiWÃÞ瘢WëÕU?»¬ËjÎyÊÇßyüÇkÉä£'=ùhÛ ¨ËÀ` ŽºðÊ ¯¼ðÊ¢˼ÆóÏ«x§]U>Êç©Û`ä#7¹20{óš7¯yóš•Z8RZåËü±Þõ~¬WõÑXWì Ò¶m·m»mÛŠÿ’ߟºèˆEG,úÿxà탯<øÊƒ¯TÞòÃ>èðAê|Óú7­Óú…ÿž÷Õü!ÀÏŸþüéÏŸžôå3_>óå3yníãÖVíåWìb}Å;ò¿=òÛ#¿=R¯Ö«W¶/^üâÅ/^Ìǰ,öõ£x~Íú4ûÿx_]ÒuI×%]‹õŠ6#ÚŒh3â‡?´ø¡…ú/¿bë+ªøU›šð… ½º”äãææO¹¨üópm€óûzó'mä_n{çŽwîx率ï~øî‡ïΟ(Ó¼kó®Í»[÷fì0c‡_üjäW#ëN?±÷9¦èÕzuåŸÆíw5ç<%ÿê|±sÒü‹­Ôe`0Pç\tâE'^tb±ëù£h—ÿUªòÈÙªÿGÙ?ÊþQVùw–—ÿc}~™¬Ø«ä£­¼8<Ño]~þîbËÌ¿]õ¥Õ…:·/o_Þ¾<°öo}•‘7޼qäU¹Ïxyêóþßßÿûû/ö*M¦7™ÞdzM8Q¯½½%ŹØEÿ^öz°×ƒ.¬ÔFS[Mm5µU±ŠôÉAŸôI±êݸù›ß¸y±¿}aÿöa•_QòÉ6ÖtXÓa¿o,ðü2´^­WWE{ŒzlÔc£Ûµó®wí\õž–‡£ù—™j×ZçW£åЧoŸ¾}ú~=ìëa_«›ï~ö>ǽZ¯ö9¼¶œ§T z ¯‡äC<Øj@Ý$uHþíÈ|tÒbÖ__çõu^_gù?¸¿wÑ{½wÑòÀù}x›?½ùÓ›?]ø·ÛÏÙ~ÎösòQHWT•Ư1~ñkkí›o¿ùö›o¯Ø¤ü›Ô¿¯µuû¨ÛGÝ–ÿ¬.Ô9WñqÄ¿uùç;oÜyã*Þ'Zqªx±u¹JS…;_«÷D½¶÷–¨IÔ$jRli¿"ãÂJmtÕ‡W}xÕ‡Åê–‡@?ÿÊE±ûò1¿UueÈïJÌëÜ®K».íºüÖ1ÚóŸóûôj½º¢<¶Ì¿¨TqÈ€ªè|jçS;Ÿzoë{[ßÛ:ÿÂPm|×ý}p¾g>ïÄ1ÅÞ瘢W×Í^ísxm9O¹àæ n¾àæbíIßIßIß±Õ€ºI,êüƒo±Å‡wÞqøŠ}Å®½»öîÚ{yN&]7éºI×ûÛaW »bØ+ö4#¿ãp£ Üh`±‡c¯Ø±]¯;øºƒ¯;ø÷­EÅGF/Ï X]¨óòí«Rþ åš×öÞò¯Éÿšü¯É•?_\{å_uêÒ¯K¿.ý*¿k|YóeÍ—5ïùdÏ'{>Yìi?úyÔÏ£Ô|eË¿2RñI$U¿pŸ'ÿ9›P¯®›½zÊ~Sö›²ß‰SOœzâÔbãS»7èøïŽÿîøïòGC—Æ;íòßì}ÏÞç˜â˜¢W{o¬-ç)#îqψ{е§âs¼l; ® €:¤â#j Uü.ðŠzÅÊ[•׺yÍ›×¼yÍûØäªè}^ïózŸWøŠÇ->nñq‹Wl0ùŸuÿ³îÖ­Þ`¯.ÔyȽCîroÍ?ñ«øµš×öÞ’ß©P¬ýðØ ®í*Ž?]èðA‡:|PÑQÃç5ž×xÞË¿|ñË×äj7ªÁVìÚm|ÄÆGl|ÄïkÉŠ}^]säF>öçî?ìþÃî?T½WluáVnuáµ'\{µ'Ì8kଥ÷¾º¢àý¶Þoëý¶vÜqLqLqL)ícÊoÝ/|Ò®iç)c.s٘ˊµgP8(Úv@Ý$uÈQ{µ×Q{ûXüä»O¾ûä»+öcñø_Æÿ2þ—å9=¨üä3Ø×ʨÕ1[³Õ1[¾bþ è{‚”fÕ{Vê\ñøš¶oæwrÝaìcw¨ü!í5!®í½eß]öÝeß]е¿l·²ÝÊvsa¥4\sö5g_svå#jþû ¯XxÅš¿v¥}±¾¢yÓçMŸ÷[j‡;ÌØaFÕ[²mÛmÛnû÷ý8÷ǹ?ÎÕ«k¯oüöÈoÌ+°Å¨-Fm1ê·™ùgÝ|¼Ïºö^š¯õ÷Û~¿í÷Ûæ¾äwD» °¢ŠûcŠcŠcŠcJiS–g¿ð»¦§ü÷˜ÿóßcеç€%,9`‰mÔM`0P‡ä£šûXüá¾îûá¾+ö«2ðò´yÕËÛ³bOfŽž9zæèê=« užQFýõWý~—_rý´Ñ§>ý¿pñÎãï<þÎãó…ûôíÓ·Oߊ[[yÂVÔ2k{oÉG).¶´©­¦¶šÚÊ…•Òï}Ý›uoÖ½YUúR„äwÖöKo¥t±þÿ¡Â(é‡>qè‡>Ѹ~ãúëW¥UÞpð†ƒóŸó õêš/¿“µÿUý¯êÕzÖ›°Þ„ª¬uó®Í»6ïzþ}çßwþ}õÁQåý³*ï'ÅÆøÌrÿ)÷Ÿr]®¡cŠcŠcJm?¦¬¨ýÂQ£¦§¼ÚýÕî¯v/Öži‡´Cj«u“X Ô![÷ߺÿÖý‹},þ¡Å-~h±b_qö>³÷™½ÏòœTÞæU/ÿÞ÷Š=AZþ‡‰-ÿ X]¨óÊûž~¾óÇ ]ýêÕ¯^ýê!ñ!ñ!qåA㪿¶¢–YÛ{ËæOoþôæO×´/ Ôü +µ×;w¼sÇ;wT^Ï+/ÎG6]žÓƒª?îoÕÈÛSÓN–ùê\uñüx~<ÿ·Ž>XìÁq»vÞµó®óÇ*ŽÛlÜfã6«x±©fÀµ½·4ž×x^ãyÅ––ßæÂJ)Én]{wíݵwUä¨b¥¤âV^ç‹u¾Xç‹Ê÷¬|\ÚßJ¯WKUN*oóg_|öÅgµà»œ5?VçÊåß‹o3¢Íˆ6#Š-?¿¯ô¸µ[û¸µßzö­gßzvy^½&Àµ½·äÁ|±ö¸ï‡û~¸¯ +¥aÊ~Sö›²_UîÑ©èÎãï<þÎãU¯4¼ÚýÕî¯v?õ–So9õ–õ^ÿáõ®íëKµWWåàBKÛ.m»´m©öÞëýXïÇz¼÷¿§7ß~óí7ß^¯›rá2ºc Ž)µ½W €ëÎyJ~WùD¼ƒu“X Ô!•éõôóO?ÿôó+öŸ»ô¹KŸ»tyNúôíÓ·OßbûZû×Ú¿ÖÞ Òò/_+÷ÐúïCÿ­<ú}þôçOþôš³MWÞ2k{oÙ驞Úé©bíŸ|ôä£'íÂJm—߉¾ÃŒfì0£°z»ýu·¿îö×üžÂÂÿ­x—¿JÖ. †.º`胯<øÊƒ¯toÖ½Y÷fU¿ ›Fzå´WN{å´š¹õK»WçOÈø­—Ñ·9|›Ã·9¼¦=¿aE©ü9:g6=³é™MWÆ6]8`စJ;º°÷ᘢW/ϧq{GM;O©¸¯ê8¼ãðŽÃm5 n €:ä¢/:ñ¢‹},rï{‡Ü»b?²_wðu_wðòœ\ºÓ¥;]ºS±¿ÿËø_Æÿâiù—¯Î•;蓃>9è“Ê÷š¿.+j™µ½·kþµVj»Aá pPXX·u'®;q݉…÷èÚw—}wÙw—š\íF5ت¬Cþ¬‘Kz^Òó’ž-¶lزaUZ˜ß¹•ßušßIYó÷¯ºÐ« ûv“éM¦7™^õmšÿœ?šµ4ÞÍŠõêžOö|²ç“+ck~5ò«‘_,VçöåíËÛ—×5Ž)Ž)Ž)µ÷˜²2ö Ÿ´kÚyʳ×?{ý³×kÏaöÀaØj@Ý$uÈ_=ñÕ_ûX¼kç];ïÚyÅ~dß3Ù3Ù3YžÓƒ'ß}òÝ'ß-ö·Gœ|ÄÉGœ¼bÛüå3_>óå3»œÿ¿§df23™YÓN–ùê\¹b߯x¡yEÕgƼófÌ«Épmï-^yá•^Y¬ýßýðÝßíÂJí5‰šDM×o\¿qýº »bØî¨øûgÏ>{öÙ³‹ÕùÞÖ÷¶¾·uÍ\Óºy±~YóeÍ—5Ï/óüúÁ¯üz±m]l\öü«ißíúÝ®ßíZ[ö¦ºÓ« Í=sôÌÑyË[Ím5·ÕÜß×'÷YÜgqŸÚøž¶Ç§{|ºÇ§…k”g¿2^ñ¿Çü÷˜ÿSù}Ž)Ž)Ž)Ž)µñ˜²¢ö Ÿ·kÚyʨÇF=6ê±bí|ÎàsŸcÛu“X Ô!³÷™½Ïì}*¿—âí1oy{Ìò¿VUFÿ­ÊGðü~ù7‘ ÿ¶âxE+ªJÅînÌO’ßk~¬Î•Û`ä#7(z7L>ZÞŠªÌØÆî0v‡š×öÞr×wx×ÅêpÛ ·½pÛ 5áø·úqîsœ›òUX±Î§v>µó©…!мéó¦Ï+zLÌ#–šYóºs±>¿°~óš7¯yóšíº´ëÒ®KÕ[’-_Í·~íÚƒêZ¯®Ü¯þzá¯æ-ïÒ¯K¿.ýªÞ¶µÅ¨-Få?3ø›Áß ®-k}Z¯ÓzÖ«Øzåwé­ØW,v_`nèMCozS]89¦8¦8¦”ö1eyö ŸºkÚyÊ¿&ÿkò¿&kÏÝ{ܽÇÝ{Øv@Ý$uα»á±Vþxœåÿp|âÔ§ž8uEÒŸðñ Ÿðq±%ô¿ªÿUý¯Zþ6ÿXïÇz?ÖkÑ®E»íŠð×̤µ|u.¦U½VõZÕ+¶äüQoË¿¿=òÛ#¿=²âˆ†53®í½%å·XËÏZ묵ÎZK\rÿ)÷Ÿr±/%¼¾Îëë¼¾N±êUþถ°ä€%5­ò¥}±~Ê~Sö›²ß©·œzË©·T|´oåò/¦œ<þäñ'ŸÚjj«©­jû^S×zõòì¿~T•~’ÿœX“×±òÑ‘OïxzÇÓ;®¨í˜cG÷,ôj÷W»¿Ú½.‰SSSêÚ1¥êû…OÝ5í<¥â\¡üÀ¶ê&°¨s^|äÅG^|¤òì÷/¸Áý ~ßòóÇÃVýñYUYæË¿|ñËW¾œóïoþýÍïksþMçŠãªx_fM;AZQËWçbºöîÚ»kïbK®8Öõï[~~kU™¾òàü!xu¡·,:bÑ‹Žh:¬é°¦Ã —Yq[×å +g´ùÿžjÎq­òÇ’_±ðŠ…W,¬ÊrŽÿîøïŽÿneôg*·`è‚¡ †>øÊƒ¯<øJ÷fÝ›uoVõ``ó§7zó§ó±Øg œ5pÖÀÒ¸À§WÿVŸ}ñÙŸý_¼I‹MZlÒâ÷EMù}Æ5g½ò£sþ°Ùÿñ$Œyç5žÿ!þCü‡å•CâCâCâb•ÉFí˜bïsLqL©;½Z\3ÏSª~¶žŸñÕÞa –ŸX ÔQ}oí{kß[‹}dÏ}ÿïÿãý¬ú2ó1†‹Å*ËzPù g~ ìÿ–Ù ¼Ayƒª,sNÃ9 ç4níbKî8¼ãðŽÃ—t]ÒuIךy‚´b—¯Î….ßàò .ß òû²IÙ¤lÒo]r>Ò^±G±óû_Yù2óûëNoéÓ·Oß>}‹Ýñó¨ŸGý<ª._X©Þ1ùª.ï·›~¶ég›~VØÂi‡´CZñ±±•/-(¡Øú6ïÚ¼kó®.ü­(ùPrñ!Ò²aˆ-Vý=p·¿îö×Ýþ:ú†Ñ7Œ¾!ÿJG)m½zùåïáùzíüÐÎíüPÕ{WÅ‘†¿xñ‹¿x±&¬Ñ›ß¸ù›¯ŒG°æÇÜCŸ8ô‰CŸ¨¼2ÉÌdf2se|EÏ1ÅÁ1E¯®™À5ó<¥ðˆ_ì) ù—‰m/ . €:*?¬Ê)ñ>Ûçoûü­â…°…X8  òøê¨½ŽÚ먽 ÿ6dV±%çQqÕÛüC‹ZüP¥û9ò‹}wœuÇYwœõÎïÜñÎ?MüiâOóGÛMºnÒu“®»¡Ã nèPù="y^ùã°j Ҋ]¾:ú਎úà¨Ê—_1ìÌïÅ™1oƼóò IyUó‡E|øãÃßménKw[Zli•:\ñ U¿s·Ø¨½¹óÆ7î¼qù#—ó}|æè™£gŽ.ÕÞrÍÙל}ÍÙÅ^%RB]¾°R[.Ö>èðA‡*¶?æwý­­Í/[ëŠwÈù,ñûnñq‹ Ÿ=PzõÑ«Wö{ZÕûÞÊÕþ÷YÚviÛ¥mÿö¿ýãoÿ¨z¬•Gbó'ÌŸ0B~ÿS~Gcµó©O]ã®ÕÆÞ’‡ÐÅ^ë–Y·ÌºeVõ^,Wî¡ÿ>ô߇þ[¬mƒÏ|Îàs–gù}rÐ'}Rlù£õبÇ|Šø}=öÑc=¶*wa^ùí•ß^ùmþe”ºpñN¯^5òX´ð~µbòOË5¡åù1­BGväaG–ÇÏ+ï+zŽ)Ž)Ž)zuÍ$®™ç)UʵâÃl«þˆ¼‹N¼èÄ‹NÌGåÌÿýÃ}?Ü÷Ã}‹ýU~¡myÚ\ñã o8xÃÁ¿ïRWþ(°§ž8õÄ©+ã[áµ7Vçÿ¡AyƒòƒÉßWÍÞÜìÍÍÞ¼{»÷¸{Š{MÅW9`ÉKX²¢àÊïÈ_Qu«-½%wÕ‡W}xÕ‡…¯¾Å¨-Fm1J\ã.Ö7(oPÞ Íë„õ×o\?}'}'}gEµðöËo¿üöË‹U ßÕý®îwµK¿U~±>ÿä!‘¡^G/­êÕ5l[äë~à÷~à÷yýkZœ«xWîVnuáV.è{t§£;Ý©âS=Sì}Ž)Ž)u¹W €kæyJÅÞÞfD›mF¶áêW¯~õêWm/°àÈ¿Ï{óš7¯yóš½Ïë}^ïó¶9|›Ã·9|ý‡×xý‡ó;w{>ÙóÉžO¹wȽCî-ÏŽ«Tø˜èÕæŠ÷pœuÛ¦Û6ݶÉO òÑOóo"·/o_Þ¾<¿@0âž÷Œ¸ç«‘_üj¤Óuþ­òqõò5:þ»ã¿;þ»íçl?gû9yòjä•É«tF›3ÚœÑæùÓŸ?ýùÓ«r/BÅßéÞ¬{³îÍò§·lزaˆù>xZ¯ÓzÖ+¿û¶*mÎÇ$®x¿~¾Gç{wÛ½ÛîÝvï^öz°×ƒÇ­}ÜÚÇ­]Ú½åÓFŸ6ú´èÅ‹ü™½¾Ø…5á÷ùx»·ûx»Šw1ª 5ÓG}pÔGÕü^Zñ>Ýs_;÷µs_Ûãý7ÞãŽÃ;ï8<ÿÌsó¯7uÒiH§!ù¨÷­wßz÷­7cÞŒy3æ­Ê5uLÁ1…š/€pá¤25AáW=*~¥iÕ×j&° J~ß·;'<:áÑ ûÛ<¸ZÙÊkòxcu¡‡ÔÍ:¯Ê»½kæ2kWo)6†ÙéOïxzG￈Pq,=ï{uù3‰c Õ%ÿjuáÑíÐ'}âÐ'Ô '¬DÃþøðÇ‹]xÊï0®Õ«ØWU*>â».×çÛ#¿=òÛ#+V&¿]ÏÀ1€Uiစ¨8ÎtEÏ]úÜ¥Ï]ê  'uNþ¨ÕM?ûOùcâVìk»¯ÎGs æÈž™?ó÷¯\Ú¦}9íËi_V¬Iþ°nïÞ8¦°*ågg…gmOí|jçSó±U 'uN>òn±Pö;Þ¹ã;–ÿU>iùIËOZ6™Þdz“é…¯²ñ±ñ †.º`¨-ÔãÿËø_ ߯Ž<ìÈÃŽ<¬._˜¾æìkξæìŠ5¹ëÀ»¼ë@ëpL`UªxvVÑS/?õòS/;šT$uÎЛ†Þ4ô¦bð1[³Õ1[-χæ%]—t]ÒõÀïüþÀÊÉãOòxÛ¨A”7(oÐ¥_—~]úU|¿ZoÂzÖ›0§áœ†sÖb|þÖço}þÖï=ðÞï5ÖtXÓay5¶ºåÐ-‡Î›>oú¼éº Ž)¬ùY~vVñ|m×λvÞµ³{ €À@“_‚iT©³Ö:k­³Öú±Þõ~ü ïÒßoûý¶ßo[ñ1n…×o\¿qýÉGO>zòѾ› Ô4ñâ?Ä(|ïúçØŽýçØºó®UlDäWN{å´WNóî €c «Ò{‡Ü;äÞÂcJ7ñ¹‰Ï]|ÈŇ\|Hˆ-¶lXù2…ƒÂA¡ú5Ù Ÿðñ W|ïjÖ§YŸf}êÎe…ÖYë¬u¶ßÖûm½ßÖùñbæè™£gŽvaÇV¥ZüÐâ‡ÏÈr'E'E'EêPŒX ÔQùø»V¡îͺ7ëÞ짉?Müi¢Ë=@M–Á¥ð}ì²-.Ûâ²-êN¼Wà˜@õÊÏ Ÿ$1kଳ:¾#uZÅ8våÉÇž?aþ„ù|4j‹Ñ7Œ¾aô ßÍ*Ž\¨>+Oñn8xÃÁþ?¾žûÈ™œùÈ™ÎË*'üŸüý°]—v]ÚuYþзK¿.ýºô{òÝ'ß}òÝòå ÊøhÔFý¯êUÿ«*¾¿]pó7_p³Ê¬<çßwþ}çßWñ\làIOx’ÊT…X ðÿ°¬ù²æËšçïù]{Ÿ²÷){Ÿ²ÍáÛ¾Íáù˜+ëN\w⺷µÅ¨-Fírþ.çïrþ¡OúÄ¡OÜ2ë–Y·Ìšöå´/§})ôJÃÏ£~õó¨üÝl×λvÞµs7z¼Ñã ïo+ÃÜÏç~>÷óŠg^üù€?ðçŠggªP9°à7(v¿¯Ê@M %B,J„X ”°(`0P"À` D€À@‰ €€!%B,J„X ”°(`0P"À` D€À@‰ €€!%B,J„X ”°(`0P"À` D€À@‰ €€!%B,J„X ”°(`0P"À` D€À@‰ €€!%B,J„X ”°(`0P"Àÿ'{±ÊÓKÕ4Mª¦éåjš^©¦iò*Ÿ¦TÓôj5M¯UÓ4µš¦×«iz£š¦iÕ4½YMÓôjšÞZåÓÛÕ4½SMÓ»Õ4½WMÓûÕ4}PMÓ‡Õ4}TMÓÇÕ4}RMÓ§Õ4ÍXåÓgÕ4}^MÓÕ4}YMÓÌjš¾ª¦éëj𾩦iV5MßVÓ4»š¦ïªiú~•O?TÓ4§š¦«iš[MÓ¼jš~ª¦i~5M?WÓôK5M ªiúµš¦…Õ4-ª¦iñ*Ÿ–TÓ´´š¦eÕ4•WÏ4±^5Mõ«iZ­š¦ÕWÖ$(Y`€Q²pÎꎒ €gï?{ÿÙûgWÚôb5MÆ$6±ÑˆkþhÄugâº3qÝ{ø­jšêÎØÃugÔáº3ÞpÝiØÃ¥7ºpu1\wF6®°…%la£W×(Âugü`#3ØhÁÆ 6Npul„`c×øQgœ=pöÀ’½€•A P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%B P"À%Bü›M:i褡ÙÂla¶0ÿYM€š@\>ûÜÙçÎ>÷ù¾Ï÷}¾ï¹£Ï}îèÍnÝìÖÍnm´ÜòåäËÌ—Ÿ¿–š+C €¿^ëëµ¾^kÄì³GÌn6¬Ù°fírùëæmÈÛ£#˯ÔàfåÍÊ›M>iø¤á=ë÷¬ß³~£)o[Þμͺ&ð[•b<§|Nùœ‰·O¼}âí­?jýQë~_(»óŸ[ìÔtÔ9›t¸m‹Nw¼Ô£ßvížÜoŸ‹;<ÝvàiŸË~>¸A§ ùÏù¿ç¿“ÿ~þ·¿ïuó6çíÏ×E7ª¢¤à­f´šÑªçÔžS{N­zàºÏ€-®iþÔ¸Õ÷þlÇøë7ë¿Ûååôêµ¢æù2óåç¯õî žÚsjÏ©ùzé¬@åj}¼¬Ý²vËÚ7rÜÈqU‰T7™¶ÞMîÛï1;ÞSþÜ€ýzí¼bãÞ*ÍŸ°_¯ó6äí©JËóuÌ×WÇ Õâxv¿Ùýf÷ë6¨Û nƒþ?æü|‹óš¾:åÀC§t>¶|ì€>½:TCè[l>v@Ÿ^ò¶åí¬|]òõÍ×]÷*ª•ð´÷§½?íýªÜ5mq`Ž÷Õ ¸· ó¼ÍUY»¼:1«eppOpOpOå±èe‡ï²é–‹6<å­='Ô®è·â:4Ôeµ ®ü®ß¦‡4iÝø‡™{òn;–^ô[qž¯c¾¾î Õè¸ò±~w¾¸Å1MÃyžtN¥ýVœç뛯»±€Šjh<»ßì~³ûUýþòÏ“?ßsÓºýVœçë^y œ×P€º£ÆÀËÚ-k·¬]·AÝuTìÏuí®ßÊï.öP輆y=ut¨ j\ñö‰·Ûœ ¾>åä=ÏîVež×ªX%ó:ëôÔy ›‡»ªL\¹ê€›•7+oÖú£Öµþ¨pãE[Ø£ã}bÝß:ÏëVXϼÎyÍu}jaðŠRÍð¤á“†O^¸©v~¾ÅyM_-/p@¯ŽÝßV”»<ó¼†ÿc<àú=ë÷¬ï€šOü[U[üõZ_¯õõZ…c“iëýÐä¾ò3ìØks!îrÍϰc¯ÍózÖ9¯¿· j apUT[wxN¼²çy ÛŸo»1ª]að* €' 4tÒЕn;ð´Žà•>ÏëÜX%ž÷̸gÆ•lœ-Ìf W;ûùà&€Wö<¯³Ý VEc]4ÖÀ`w@­Wâw¸fŽöäÝv÷Vœç5)V±¼ž::5SÅû€…¾Ë¯ÆÀËÚ-k·¬]·AÝuTg6=¤IëÆ?Ì{ô¤szôýæuÈkRX«¼†y=ut¨ êÕÌfÍî7»ßì~ÅîjÝùâÇ4 ùçÉŸï¹iÝŒ~óuÏëP¬Jy uq¨;êÕäÆM{ÚûÓÞ¯<®kwçë[yô›×M瀺¦^ÍobpOpOpO±°3r]8_Çb|ÎåµÒ­ nªW[:aµ «MX­Q¥²MétCéE¿ùzU¾îy}th¨ËêÕ®æV~7pî²ÃwÙtËÅ žòÖžjoè›·?_—Ê××]¿@®^mltåcWmq`Ž÷Õ®è7osUÖÎX¿@EõjoÓg÷›Ýov¿nƒº ê6¨ò tçç[œ×ôÕ):¥ó±åcôéÕ¡…¾côéÕ!o[ÞÎÊ×%_ß|Ýu_ ¢zµ}–µ[ÖnY»‘ãFŽ9®*wÍn2m½šÜ7¶ÿÞcv¼§ü¹ûõÚ¹Bßçì×kç¼ y{ªÒò|óõÕq€BõJc5N[8má´Á-·ܲÑo´Ï€-®iþÔ¸Õ÷þlÇøë7ë¿Û+6îÍ—™/?­ßÚÂ|½òuÔe€bj}ünów›¿Û¼É7M¾iòM£jç?·Ø©é¨s6épÛîx©G¿íÚ=¹ß>wx.ºíÀÓ:>—ý|pƒNòŸóÏ'ÿýüoWl{òuÌ×WÇ ÕâxtÑ=F÷¨JtzãŸÎ¹¿í=OÚ¥þÆ_4ª‘ò¶åí¬Êïçë®ûÕ¶xò=Ê÷¸xöų/ž]yDzý³§´í½ì?“'ö\T^>eJ¯^ùü뵞ë±Û#f¾mÛa͆møæ:Ÿ­ú¸7ݼ y{*¶0osÞþÊ—“×!¯‰® ÔšxÉZKÖZ²Ö1-iyLÑQ~7˜¿~ׯï½ÿ§±ûízaÅHµòùìs_xn÷žï{ÛÕ;ïî裗lqóf·nrȺ.Л/'_f¾üüµªÞ¶|]òõ*ö*yMòúèÐP—Õ‚xÉõK®_r}ßÑ}G÷],=ù³ƒwÚlЂé/ž²çéUWß|ÒÐûîÞåÙ»ßêôLþóÊ~Å|½òu,V¼>y­tk¨›jv<¨|Pù þû7î߸XðyË>çµk×£|ڔѽº¬ì ¶šçÓ¦ŒîÕ%_ßbÕÈk•×M瀺¦FÀ×ítÝN×íT,ì¼ÿç+ÏhÿZ‰‡¾Eæùº«L^7êš¿°Û »½°[±€óžû.{³ý_êfô[qž×¡X•òêâPwÔ¸øëë¾¾îë늅šWÍðÓÖkˆ~+Îóš«X^Oꂚ_\~qùÅ=ÿÑó=ÿQdîÓ¸ûêÍï[vÈäK{~%ô­8Ïk’×§°ny=óÚêîPÚjP<¾ûøîã»»“uÎÙá»{\#î-6ÏëS¬zymuw(m5"þ¹ïÏ}î[,¼Œ¿¸s`§?ˆx«2ÏkU¬’yuz(U5"¾éœ›Î¹éœÂÀòèÿì3¥ÕbÝß:ÏëVXϼÎ:=”ªj€Úã§=~ڣث_znänÿèþÖy^·bUÍk®ë@驿øî]îÞåî] CÊ˺ÒsËŸE¹Ë3ÏkXXÛ¼æº>”žj €—ö[Úoi¿bw©~{Ó kì~†wyæy ‹U8¯¿JIµÀ¯]õÚU¯]ULžxô»nú¹øvEÍózÖ9¯¿JIµÀ¿åï·üý–Â`rÚí£/í2Yp»¢æy= ëœ×ߥ¤à%k.YsÉšEM|Ý+3z>WsÔdæ]:u;åþƒ§lvßvÍ·ô†Co8ô†Â0rîðø=þP½A鯾øõžÿj5·Å_×Ý(oÕNOµ»ºé-y ›ÿKá_åÿ^ñ¯ŠýfuÍóÚÖ<ßv( «6~¨ü¡ò‡Š=<¹ü)WõÚ¾zƒÒçO¿í¶©Øª'ß½éôïV%ЭøW{&»ì½ñ¯5èAÐL¹ª×öE+ÿPùCåÙ ¶[¥ð‚‡<´àÀ5ï¶XZ‚Ò»÷¸4Ý.ø}s~µûƒûvžÿÕÆG4ýj{jÚ}Ày ëŸo;Ôv«4žué¬Kg]Z@þcÑ߯Ýúâš‘>õòÍ[íÔ`àI‡­ŸµÖ‘[nU=Ä­x÷ðŽÓڮݴuM €ó:Ö?ß.v¨íViüÁÖlýÁÖ…ä¨Aÿøiûi5èÉv®Êo÷œºÉÿÝ|îkÇl¸Å5-Îë\Xÿ|»Ø ¶[¥ðk—¿vùk—ÏúׂÛÔ̸òùÒ¶¯ŒèùàŇœ¸tË}òuÙh`Ó­Ö9õËgž9{·f5­µy ëŸo;Ôv«4~©ùKÍ_j^@&Ù]uÚ¹vE¿ùˆ¿=ÞètãÆI¾ë?¼^ÇÆ7ĸㅎÓjÚ½¿ù<¯saýóíbg€Ún•À/žòâ)/žR@¦WÜ5¶Óñ5?ôýpßÿ¬·ëâ£;ísF«ÿÇ}̇o»¤é²×Ú?´vç)53úÍçy ëŸo;Ôv«4žrñ”‹§\\@þwÙð©;ÿ§f†¦‹Ž˜tÜžåCo:ý¦m­7aÝ‹÷ÍÛܲa³ÛšŒ½yÍAÛµ]´pÀKíùJMŽ~óy^çÂú¹Ö—k}¹–j»U¿ÛõÝ®ïv- yo؉;¼^ÓâÒºýgZ·vzªÝÕMoÉÛÙdz“Õ}{ù§ÌÙj‹çÆØãÓšúVœçu.¬¿ÝJÃ* €¿Ú뫽¾Ú«0€¼¾åÙ›¶mZs‚Ò󞺢û[÷o=vý?ä-ÌžtÝ}÷íòÏüwjWô›Ïó: € T­Òøçµ~^ëçµ È£î3¼Õµ5'(íÚ{‡G7j·mÏd—½7þõ‡ÁÔ=ºÖÆÐ·â<¯³JÕ* €—½¸ìÅe/|²~ÛÆÓkBDnzûOÊ[Õ¸~£Wõú¤å{w»¯¶G¿ù<¯³JU½Uÿ’=û÷ìß³a ùË {î¹QõF¤'?¸Áfòö´šÛâ¯ën”ÿ<òÆ‹šl;ö·ÎkNô›×¶°æù¶°@i¨†ø–/nùâ–/ ÃÈéÛŽùo×-ª7(ÝméÎý6nÑh©9p^ÛÂæÛÂn¥¡à7.yã’7.) #¯+?ûOm«94mÙ°ÙmMÆ–^œ×¶P¾-ìPª!^0qÁÄ ÃÈõN\·sã=Ëœru¯íkûh»5hþà”«{mŸ×¶°æù¶°@i¨W]/|ðopð…‘ä'<ñQ·W·+jž×³°ÎyýíPJª-úýƒþ…ÁäerçVÜ®¨y^ÏÂ:çõ·@)©¶ø×=ð׋žûs½¬}ÉâÛå™ç5,Vá¼þv(%õª÷å¯Úæªm®Ú¦0ž¼»õ¥n÷Œwyæy k›×\×€ÒSÍð7m¾ióM›bw©þ4'=²Çõ¢Üß:ÏëV¬ªyÍu}(=õjB#Μ~æô3§F•W7¸ÖÖèþÖy^·ÂzæuÖé TÕˆxÖE³.šuQ±;Vßï5ö²]‡ˆu«2ÏkU¬’yuz(UõjNSn9è–ƒn9¨0¶Üô‚ç¯ÛiÑ»“ÒžÍD¼Åæy}òZÖ0¯­î¥­À‹N_tú¢Ó›\ßäú&ÿcüÚ‹Þ<ñö-·ô›çõ)¬[^ϼ¶º;”¶z5­Ao}sè›C‹=Äøñ5¯mºã¾âÞŠó¼&Å*–×SG€º ^ÍlÖíÝþØí 5Ó§îz»Ói¢ß¼Ū”×P€º£†Àå——_^~ùч}Èч 8'}ß%»\T7£ß|Ý‹U&¯[^C]êŽz5¹q¿öÿµÿ¯ýÛwhß¡}‡bagÙÁ#ÞÛyI݉~óõ-V¼VyÝtn¨kêÕü&þ¸ë»þ¸ëÆkl¼ÆÆk >ïúêÒ‹¶SÚÑo¾ŽÅ*×'¯•n uS½ÚÒкýÐí‡n›Ôߤþ&õ‹… ÇÔß÷/­Ÿ·Uük-J#ôÍ×%_¯bk×$¯ uY½ÚÕÜŸºþÔõ§®»´ÛI»Ô¨RáÀÛ/îx^í~óöW¾ŽyòšèÊ@½ÚØèÅ÷.¾wñ½ƒ j4¨ò„´Ñ>Gvßµù>ºq|£n{ÖüÐ7ogÞæÊ×+_÷¼:1«WÛW`ü¥ã/i£*8âø½wnùá;W?vhׯjNè›·'o[UÖ"__(T¯4Vã«ã¾:î«ãz7îݸwãªÄ¨›Ý°Éþë^ðp÷Þº}ùìÝ_¸y÷«&îÍ_+ݼ Uim¾^ù:ê²@1õJjm•/*_ôBûڿоÑoÔüÖhÒüÊÅvØêµdâ]uê8ÿ¨t|Q¿/èÍÿ6_N¾Ì|ù¿µUùºä륳•«Wª+¶h梙‹f>²ä‘%,i´‚lÒiãïš\ºÓ¬vc›Þ³ë­;>¶Q¿üçüßWÔ«ämÎÛ¯ƒUW¯.¬ä’;–ܱäŽx÷x÷x÷=ÏÙóœ=ÏiTcäíÉÛ–·S§~Ÿzusµ¿›ÿÝüïæ?Þõñ®wíݦw›ÞmVMÜ›¿VþºytA`E©§}2á“ ŸLxjìScŸ{eç+;_Ùy¿]÷Ûu¿][^Øò–Vîæ¿“ÿ~þ·ùròeª-°² €J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ D€J„ Düÿì uê:PWZ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/groupBy.png000066400000000000000000002767661431412030200250500ustar00rootroot00000000000000‰PNG  IHDR[ÂyígAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTgÿÿÆ$&,ˆÄ^¨¢ "¢‚{ï]Q°·Ø{AMìKì±DbìÆv]콋 ¢(ûûcïÏù’ߺtYŸιNÎ}ËÌì5ïërœ×Î5™ô‹‰.Ë@ ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ÷"áE‹„ð§áO߆/ _¾ìa“‡M6¡gX†Ø†± cò9äsÈ'¼vxíðÚ7²ßÈ~#;=À2¼_÷~Ýûu‡æšh~XTXTXÔ…2Ê\(Cϰ³õ³õ³Ý=t÷ÐݰÕa«ÃVŸ ;v2ŒŽ`I»v?ìV?¬~Xý#ñGâÄÓ'¤7`d0‰ž‰ž‰ž?FüñãÊš+k®¬Ù¬J³*ͪäN#õïÔ¿SÿÎâ‹‹/.¾x®×¹^çzÅ?”žð™œÔŸÔŸ¼6èÚ kƒÖ\7rÝȶmÛ¦Õ,çÛÓ·§oϹ•çVž[ùÔøSãO›õmÖ·YéxŸÓ­…·ÞZ¸yÜæq›ÇuÒeH—!i5ËyÉ^²—<#`FÀŒ€£­Ž¶:Ú*f\̸˜qô9€ÏéÞð{Ãï mÚ8´q@«€V­òOÏ?=ÿôÔÏrnoÜÞ¸½™ÔmR·IÝ´'ÚíIT¿¨~QýèsŸÓ£üò?Ê¿+rWä®Èþyúç韧HH‘"!©Ÿå²:duÈ:ºÜèr£Ë‰sŹâÜçóŸÏ>Ÿ>àcüõÐ÷Ð÷8Úúh룭{åí•·WÞÜ_H»Wí^µ{¥~«~«~›)!Sc@š9ívÚí´ÛÀ3Ï <ó¥f¹Æƒj<èïjWû»Ú;Ÿw>ï|8/ÒÊÅe—]\6Úa´Ãh‡/5ËùÎòå;kgæ™wfŽ å¼H+×f^›ymæÔSKL-ñ¥f9__ß-·4ÞÒøEÔ‹¨QœiåNÖ;Yïd½öþÙû¿Ô,WnI¹%å–¬)½¦ôšÒO—=]ötç€ù0žµÂ²„e ËBÏàË"Ä‚Ùy¹àå‚— ÷]ÜwqßÜflæÂ™ g.|:ýéô§Ó9kR.æQÌ£˜GkÖ¯Y¿f½9Ïrã +<®ð}í¾v_ã¬H¹·Áoƒßo«º­ê¶ªùoç¿ÿ¶yÎrƒ²Ê:(ëMÿ›þ7ý9kR.~`üÀø{*í©´§R© ¥&”š`ž³\÷FÝuoQ0¢`DA΀”KX›°6a­8[œ-ÎvïëÞ×ÝLïεˆmÛ"ötÅÓOWÔßÖßÖ߿ܸR€až€a¢gEÏŠžìì쑚‹¿V3˽(ªNåݪü³M[ê•r+pÀ¿I>†Jló&ž¾jÃæ=[ýÝ¡ÉhY›7×»ë6k–[µ_6·ãpÈþVÞ¥V]s_û´ý޼8òâÈ‹‘¥#KG–æl0û]ìw±ß-:´èТC©™åšlªyÆnÀ”ÍA“Ë;oØ0µi…uû=®ñÈ©¬ Ñ{º¨ëVñ <ØwI Ã[×ÍÌìö~vÀbŽÝ»th\¨X\¡]6ÝóŒø´ýnܸùÁ•W\ál0·"nEÜŠµ3ÖÎX;#5³\áBnW½_”šÐbmµú¼™¼ÇÕsx߇ÝÇ, 9è6alÈÊìªÜ²äµ³ëÀl³f”=ÞùÛa!öÕýò7»–wx!Íö¯åÚmk·­Ý¶›on¼¹‘³ ÀXBÝ„º uC¿ ý.ô»ÔÌre{zÛ8ú ,[,oË…Á›K?èR9¤jù!=­oçèÚkÎÆFŽs»ŸX3ÖaC‡ õåj6¾4nSɯí³Ú¹ÖJŽÉûæÓö[ïV½[õn]šyi楙œMð£þGý„³Ú`µÁjçÍ6Þ+ì7²ÿy­‡o™j+•ZÃ\®ìvhäè^R^ÞìdåWÚÚæÏ=׉³›e¯0°N´jOûµYWuÜô£ÞuÊßýØc )R(¤Ðû6ïÛ¼oÃY¾jgõgõg÷Œß3~ÏøI†-ïüwéÃá7V7­R2A:ö}í0½þøñ:uÒª½w«‡÷¹}†îr¼XH° Ê3*åÇö‹ß/~¿ø½|ù6’“ @9§œSÎ}ì,WlAÝmªUˆ·<ºZöU‡ûø¬]{üxZµ×fuØ~¸¼C÷£+äÛ`7¾ø¶”Û˜À1ccbb8¿Nf?™ýdvÛom¿µýö#dÖµXP$¦[ëU/ÊŒ>U¼R‡É“/]òðH«vˆßÁ1®'Z.ÞTúA±QÎÃóßHù±Íš4û¹ú\}®r~\*y©ä¥’žVxZáiÊg’Ö/ʳϻ»c#w—çvÝe_ï´½/w§fçÖÕçüÞ¾^€[õŠ×(\0åÇÖ6´mhÛÐG™ezÄ}oŸ 0Ìâ ¸3ìΰ;Ã"‘¤héøÝv”Y÷Èÿ€O§_*ô5Õ¾ ë^«øÚ²“–¸F¤ä³Ì_;íüµújújújÔ`ÙN.?¹üäò}®râ­Ž{ŽŸ;qwЗ }MµÕr­zp(Þ¹ÁÀ³Rt-7!Ë„,²¼ø~àûÔ`Ù"b#b#Rô>· _Þ1èí/×N_*ô5ÕNìû°/õXž°™a3Ãf&?HÌ›Õêê±ü­ZyÙd”ûr†vW¥†§+=KÉ×w®º>êú(ê@Ú"†y"F:ŠË—5.k»]ívµÛ•üå×û–+ªlÊX—Æí9¶½Ëä]cÕ3·É70Õh\£qÆ1ƒbÅ ¢B€Œ.!*!*!j°ÿ`ÿÁþÉÏrÏ.êq3£„¾¦ÚëyvŒðéîX T¢u/SŸ´T‘REJ‰Ì™/2dx7ô7ô7‚óç Λü,çv)èùË!Þ}z÷éݧ`Vä\‘sEÎÿø¢Û„ài¥oMn{i¶GÙ ýµ£&±«èî6©¡Ká_’ÿ¼111Ô`¶{o÷Þîü¨Ÿ;»ú,Ç þ}z×Þšqï˽ÝSòÒ÷™[í’g’ÿ¼'\N¸œp¡6¤`˜'`¤‹w5ßÕ|W³^özÙëe7u±ÕnªCý–W¯zFúÍÎèÑoÒöÝãÞ¥j=V±e)“OË9Žví8:ú}ôûè÷T %ŒI“0¦ÛönÛ»m75Ò}OW/üLÕ‰5#3zô›´MÌq¬Ní‹“çþ^îEòÿ¨6¼ ™j2¤­ú­ú­£zŽê9ª§©1žßžbÉ[žoæÅïm‘ѣߵU×.9.”[×uëÈ,ÉÏr·šÝjv«Åd\sç:Ïu69ȇå–rWtfÿצ7ô5Õ¶ÿ«\æfò³Ü¹gçž{F×úës¬Ï‘üHÿçt›U{XÒ}9C»§V£Åî=’ÿìácÂÇ„¡N¤0Ì0ÒØûöïÛ¿oßèz£ë®›ºÀšóºz3G¾o [R–w‰™´]»®Nm×SýP![…l²Å6ŠmÛˆÊ2 ½Þ§ÏÌ>3û˜\>ktH~e‹'øÝ^{‹%E¿ÆíÎßæÖ¨tÌT?äÙ—g_ž}/ ¼,ð²…d,“rLÊ1ÉäíBû~-›;Uûf•xèˆEE¿F­[Ã1oWx%ëðÁÞ{ì¥f€ŒeiÀÒ€¥¦ÆµSß­ÿuʾRË‹~“¶}{ý9Áyrò³ÜU§«NW¨ cÙ¶dÛ’mKLëŠýl«Ú䈜Ø}º¯eß—»Z²ÃŽjÑÉÏr'Gu’E¡¤ 0Ì0ÒÎcýcýã~‡ûîwØÔEÕæåõ®»[öÅ¥q{`X“’­MõI³ýÍö7ÛŸMæoÚœis¦Í15¢G<íÜÔ²C_ãöÈÄ5]ª˜|ÿq¥î•ºWêþnû ï6P?€ù[™ceŽ•&£ßR7Zë³ËÇnmµãþ–ý&m=Šë· ¦ú$Ÿ–O˧½²}eûÊ–úÌß¿~;üLèªE:¸ÛNúñB}÷–ý&m‡ž+Thú+»4~ÒøIcê0ª›ê¦º™¼Õ¡l7»3owüUkÍ×s_îÉùnÁ5Ç Í»1É¥°ozÞô¼éIýø4À0OÀH3!CC†† 5u!õG ýŠ=¾¶è7i+Ülz´r+Sý3ÅiŠÓ¾U ˜µ?[üÙâϦFñ²ÇcJ8ÇmÑoÒödý v^&ß´8)pRà$}¢>QŸH-æI9¡œPN˜Å¥k¶ÎTïë }ÛÊ9gÅ….2Õ?6Øh`âŠÄ‰+¨%ÀÔ?[û|\×?¾àk€ ­{ßig~4ÕWóëͯ7Ÿ›†€Ù‰>}0ú ©‘ëQ¿~¡„I-/u?óuF¿IÛ!º ® ¦újDĈˆT`nÞ…¿ n›h›h›h2>2>²xþâù‹ç7­íOûÿj£z¼SÒD¿IÛ £¦ºTXfj–»t;èvÕ˜…ºúºúº~Ëü–ù}`ÌÚœtXQqqµ9¿ý|DOô›´uðs…LÍrçlÎÙœ³¡¸óѽS÷NÝ;Vë…ûå©:Þët—JG‰~“¶}ælé4×Ô,§~¯~¯~O]æc|¯ñ½Æ÷25f_Ôêáì;ž{qIÛˆ_Ûï¯ÖÑT…z…z…zQWRŽ8­ì ݺ7ÔЇÓ7Oß<}ó‹z/ê½àkÖŸˆ©2ªÀ¨£ OpŽƒ ­µïÙ{]m7.+ÛÄë}êdmدô,Û]ƽ×áy‡çžS]€9X°0`a€©¾Î¥yû$î5ÕViu®¤û–X|ZõiÕ§újújújÔðem½¶õÚÖk¦f9¯‘‹ê†÷šjK×k](¨‡q¿ÌU0WÁ\ñB¼/PcÀ—%FH#LÍr†wß÷šj›˜ò®´É7‰¾îñºÇëÔðe©r¦Ê™*&¿”6¶íEïÊÜ…3Õî˜ÞàL¥f&ÏpyæòÌ…À©—Ð<¡yBsSs2að§!Æ'ºz)ôR¨É§»JwzV½1—’É·ÏtwªyÇTR©‡T* øRîo¸¿á¾é§»¬6oð.JÄ›|ûº“6Ê囹>Üygçw¨4àKy¹é妗›LP·&c³®¨OÄ›|[­ûê§GæVèµ­q®üiåO+¢Ò€/åíη;ßî45Ëu·ðïr•ˆxÿ£Í})—G½žÙT7îÃɾ“}'ûRiÀ—’p,áX±%K”,QÒx„.Ýà;Ûy'wÞRÒvoêüWñ\÷šÜkr¯ÉT€” N½¤Ïþ&08å€ññžéŸéŸUÏV=[õlÆÃoŹZE\6pù˜òvgÆ£+í7îÉÂÅ /\½joæž[JÚöhí»ÄÔ,w±ØÅb‹Qo’Gœz†@×îæN1Âàäã£÷>î}ÜÛx°åëkõ§ÕOï õ~S»—Ñö t«SʳVÑ –2îÕ}½÷õÞ×›ª>§«¯>¾úØäbwç´‹~qĺÛ¶+[¿¦ý"ãþ\¸&pM U|N<ðx€ÉeŸ'/¾ª[I¬û±m‰{tÝþŽúN÷ÎrÀgõêŸWÿ¼úÇä²Ïƒ„\‰u?¶mœwl“’:ãþìóªÏ«>¯¨:àsŠ·Ž·Ž·65Ë©Ù6sÕ½ÜmûØv«uý¾n×û³ÞØzcë¥ê$8m§`|´ê¥ª—ªþ¨RÉ×,Þ3—ŒŸÖžsh»ßû½Z¨P¡B… %^M¼šx•Ú>®/»¾ìúÒx°°0ã‘XsR@gû_ˆr?­ï{º_¥ã¦f¹‡3Îx8ƒÚ>'wžÜyÒx$¶=áPÚ~wØ>­}Õ§NíÅVãr/ËÝݸo/Û^¶½lKí0…8ý§0>Âõ&×›\ob<œŠí¶^—ï'}¹À‚u¬¹dLM[§PI×"uŒ{ø„Ó §NT ÞžfyšåiS—ñõ©íA”›š¶w–õJhXí t_è¾P*Ho¯¼nðº©Y®ê»1êB¢ÜÔ´¥—·±éûÇV;ȶ&Û‚ÒÝûRïK½/ej–ñ2¼‡Û¢ÜÔ´-WëJ?1îÛißMûnÚwT îèè+W4Îx$^«Ø1¿+÷ÖRÓîsjÜÀý¬qßìØ°ƒ` ðçAü±€ñFõÕoT¿ܸ_Úxˆû.SßÚ:«×dãnצ]›vm¨@ ½-±^b½äKiýötâo®ó‰oSß^{¸£µÏÞÆç~Áý‚û*HoÎÿsþŸóÇ`éÙ­_õK|›ÏÛ.Z}Ðä‰_%¾Jd¡T …Ï Ÿ>ÏxôUiÖ6ŸíiâÛÔ·ã*œš[iÉ5]ÆÄ‰Cé'"GDŽˆÆ£¯ÖÕ 'rW-õmüéÞWj·4¹¦Ë”è)ÑS¨CÆ€??Âà” FŠÄçŒÏŸÓÔ°yÜ;S­Ó\&¦¾MÕ'¢ösSýüªé«¦¯šR@ºðÐ{è=L¾¨²²‹ï3âÛ´jÝÎ9øxúÅõõ©E ¹;¸;¸;| ±›?ro ñmZµ¶¼®×õûÀâ6—m.ÛP‡@úiW¬]±vÅŒG߀Y»ß»Ì!¾M«¶fé^’}ã~>´úÐêC«©C ýŒÚ5jר]Æ£OÛü–gwÕÒª]ø fY§+Æý¼c;æR‡ŒY„Á¦#Eþ)úOÑŠ’Q«+w)óØü/ݬ9Â9»á˜¯6ê U‹7ç£]2Ï·´ó0ãÞþ;èï ¿ƒ¨F =Ür¾å|ËùÏß;Ô÷³_dnªrE%OŸ€5-Ž—øÍŶl‡ùlfXï°Š+\¢Rþ¥ªTb{çW¿Á>Žö±Ááµ:šÛñïÈ4»R¥ŠÆ½½.纜ërR@zˆ\¹,r™ñ¸+àQ:Ä©˜ùD§ÞÇWåX¶t‡÷ƒãЏy4©Ù#ÿ„b®¥K[ÝÊ^ ¿Í÷åœ]‡Û=ñ¹Ùp€ÛïãlVn7ϸ¢ÕøÞ«;~àŸ—9¦ç˜žƒjÒCl‡Ø±LÝÜ™üý¥oB·YEû@€mfÇ9iÓÅÖfæ÷Þx€šÒÖõ×k\¯ñŽVl]j„9Ü˺æÓÑÆÇ-w*˜OlhK÷°éš¿°ñq¾Žzõ:Šš°y" &ƉÕÇêc­Ÿ[?·þÀÒÄq7{O¬mgÎÑïT]Õ)å?°8•Y‡Öå Õ±65%¬LX™°’ÂÒ–O´O´OôÞñóBYà×ÜBÓ¹ÖC‡:jÿŠmª–¾cý{H·±õ]šž*¶áPÕo OÏê>0Üa—­w¡.y³'ýó/£ä¬¾7Í'vú£Œ—µbÜç±ãbÇÅŽ£&´Õ£B =*|`ñçñ ~ß?úËÆ¥Õn¯w¬yÁKÎw+Ÿùßa­°:”§v±êenëá´¸‘¹Ý¿™:uSu×1?W_aïì{£Ù’Ü>¹×å>‘ô³˜ÝBÐßxÞ¨õgG"C"C"C¨I mMÙ>eû”íÆ#n`Ͻ#].™ôÛnÛ¼_Ë.7ù³YsV=[Ø—1>Ú›Ñ7£oFS“@ÚZÓsMÏ5=?0œmÑÕó¡9ÜËÚ?®ñ»¤Ç¶ðXM;§sKçøNsÞž’6fO/w¿f´ô¸š™Tã>?|*øT05 )`ó÷u†ÁÀø¯Z¼jñªÅ¾I}£t+Û…æsYö8¨[¦šŽ[ÖwrÛ7ñW‘r ÝnÙ~WÀäûtÍÙêg*¶+õå}.~¸øáb*H+ñ5âkÄà›Ô¥ÊØÏËwÞ‚Ò·#ÃÖZX,Ê.G¾B†csßå4Åf¾!Ðý¿9íÿÿ[†ÿ=éo™ú“_ª“iHˆãTãžø.⻈ï¨L ÍtÔwÔw4uEäóíšÇîÙ Ô¥ç³sÿõu=§€~³‚[þ_ãp÷³ôª‰½ÿ0ü·uï’?–;on°Ó¢þ…fäüÀ€Ía›Ã6S˜@Ú*¿¨ü¢ò‹ŒGÜ„-go¸û™sô;Ðco—Ãù3Ù„ZíÉXpÏñë‡8ºíö‘ÛGnIMi«Y¶fÙše3qQ{$ø¾7‹¸ôXM;§s†£rhW¨ŠµWF¹ÿfª=ÿº]wïÙÆ}¾`ä‚‘ ˜åü pÆòõ„ÁÀøæ]˜wažq¹‡|ë7ÐÅÛ|.ËÖEÔ9PÁ+åÃÕü/4wgndëþ¥f”_”_”_¨L ­Üÿûþß÷ÿ6kc={î(;Ñ‚Òý-òh™ôØv^šÛ¿Ò¥”ºI«–RÅ¿ð[ó €9­ýÓËÖ¸ç·lÙ²eË*H+Ñ?DÿýƒñX³ ¬Vß¿»9¥¥[·®´ÊpTùÂ함”’%=×Î}±ûÝÿåØÿïi`ó €+÷ýÕvÇOÆ=?;rväìH*H+qcãÆÆ5kÅ4ç7ùߘsô;®è©A•‚Šgu °þß\Qkaß¿‹ÍÏ(ðÈàCýÜî|`AÚVZ hEei&Ÿ>Ÿ>ŸÉ»[§ÛÔ©jw±ýPñd)ÉpTÍo”*Z6£À¯OöZå÷Ö¸Ïýoûßö¿MaHŠ8ã²ì0˜ÿ!tJè”Ð)Æ%~Ü¥•èÕÆŒ¾—·¯]ï 󾫾Ï1θ͈ðõÁña|ä ».캰+• ¤•p%\ ÿÀBÄ{òÌwpokAéJßqª‹ði‹9Ÿ¨¾¾‘×bÃonoó Ï*óyøé%]¶šû{~X»a통£2´r¹ÐåB— µòçz½lAi±Äz‹ÚFç ´ÕŠ´ëR­œ•”D¹Uö-ìx Çži6Ÿ7÷\q"¬¶ñ6ë߬³þT&VÍ}4÷Ñ\ã±V«LPb±þæW.Ò²ŠíÿB‡ÁÕ¯t¸÷ü÷U%žTäB€»ô¿_V•_U~• ¤•˜¢1EcеK]‹Ù›Ï]¬mJ—°n8¶Ñ=*o.kq£ßÿµ÷»Ô©aúÁø€-ƒå…ÁÀøSßL}3õÍ"ÞеMðŒrÑ–àW#zŠ~ƒ¼ÇË/{¼¤2´²ÎjÕ:+ã±véÙƒªyšCPºëȼrî9ƒz¶JŽôC‡²ÿ÷­ê}z¸âÇì6%Í'Žïu¤Bmï„7 > > T&VV?Xý`uã±æ¦Œë»ÊÆÜ–MNy[¾y÷‹£O'}nØìÞ\|­ÿñöÆ=o]Ôº¨uQ*H+§'Ÿž|z²ñXk~Á²ïÍ3:m¶tòR ÇY¨Gñüy'ð«é6*c-mh •¸÷2Ñ~n_¾}ùöFÙüÀUüÍóÎÛòA~ž.… dÔH(^¯°]‘ùVç9ïìX¸Žõö½Dû«k²ÕþÃu©>g`®:f}®ñË2£íj3ËH°å±Œ0˜ÿ¡sHçÎ!Æ¥ü¦e¯Óµ §_›¯O‹Úøö·ç+ÏWž¯¨L ­Ll<±ñÄÆÆcíé–ƒwj†šÏ‚ÉÆ ;§äO¶”kŸ*ú¿'€‡žì\°ôr3zðÃãûù>5þV[­¶Zý¯¹Tžöëà#Í?è­Üñ——ž©tnJôÆ)®và -èRܱ~év&ý,1½ßMdv°ÏÚµÇ[Ÿ-ÕÙa³~öÝÝwwß]ãQøí¶vNûÌ-. ìºí­Ó…<óÆçþÇ*0OPî)½ŽnÜå¸>iЛ±`7}£ ïa–ÒÏIí¤vR3e»‹5*ë^Ü,`ëyÕï__ıޔgªÕì”Ü(¯7µ”u‘3wÃ;?¨~ß<ïÎ™à™§lkf9É#¶l7 &ƨþ´úÓêOË÷ý‘>µ%NÇ6"°Cjxj$Ú:Ú:šÊÒJÏç=Ÿ÷|n<Ö^‡kÇýbÍ3N¾Mp<º¤öú1-{$”mø¿'K‚lÊåé}oïÞÁ5Š˜ÛѺHe¯¨Â?§ô3íý´÷ÓÞ2/‡EGV1ÿ8ÿµâ-Ëüf|üVSò­Í㔽oÀ´«æ|ü¶‹½¶×ý–YH?ëó¯Ï¿>¿ñ(ÜèÀ)×Ñæ”ŽŠ?S±³m¾ÒGòõ6a£B£W– 4Žx3Vì›·w'{³~tUtUtøÓQë–oªÜ0‡ûW§¿i3«ê€|gh…v%}ÿ¨éïU±½áÏüõ aËJkûÕq (ùÀ*sî Üÿº_gžO/]äìÊ, yÀ_Œg2Ÿ!ŒEŸ%ðÇ:9€Ó»µ­”ïuÞï©7àó‹«vؿֻŒýÞøëwÚsNaåÿ¾y¿²Õl9ëòƒ•Ϙѳ¿IÚÚ˪D)K½Ÿ_ÕaË.É?gÜ8© ‘£O/?hžÇ_¬[ ­‡QoÀç7üW¥r…{fñ®Ü•ë¸?v‰¬»£ÐÿV/pû­a‹'纔ÓãánÆ €ýGüüM‰ÔðùwngãÝÕî\èߤøÿ½xÈí–íwžokZÿVÅ’IïÈÿÖß›Œñøå1°™Ý—ûýÛzuݨ7@êí ݺ7”€~B`•:å€Ó»-Õ°ÀÛ|ר7àó‹ŸzÄ¿¶Ÿù‡¾Wý™¿Z|'φŠMHzü•;¿·I<éº!»×ñÿ›÷Ìñø¾©¾×ö,õ|~U¯„بy3Ê«Mû­í‘Ëž‰óóîìºåç3‹qóhR³GÒOTÑmü?«ïšÛ‘ÿÝk‡ ÔðùýüP[ìÖÖ"Òú¹‡Î-ñ¿£²»UîiþLcZo\ñ_ÎËèp£:£—A½Ÿß¥íW«`Îwá>ö~]ǺŽCŠÕ3·ÏòGY׊­¨7@êÅmÛ·Oó0`á%›ñÀqíw­¥žÛ®Cîü{ò±jc8fû\EåÝ>ï»a.Žqïm¨uôÿf<ó °yøR2ÊÀ¦Zç°­WEWûTÒÏÅÀ Ìá à>‘Û\œþÌýÆjmîNy+åÿÕªH?«ÛœŽÐÔož`Ì|žNMûg¾u+&>‘«¾H‹“x`©¾¢'€ k ócþ?c*ÆTŒ1.VÞü¥Þœß+¿W~/*“~Òê§É¾&ûšì3kæùàk>žñqsßå4Åf¾á8óžËûMî' ¼(Wúe”œÕ÷æÿÍrcÙjSï¦2ùá'­~úLê3©Ï$ãQ–QÞœ’Ø Ÿ—m{½¹ÅÀ¦ÞLeòÃOZýŒo9¾åø–Æ£ÌÞÜææì ²™Òö¶ÑH—ð³náæÿ`*“~Òêg¾Ë|—ù.Æ£Ì|ÞœVï¶Þ”gªÕls»kgêÀT&?üð“ôÇx–Xšmi¶¥ÙèËûÙ7zßè}£¿ ü&ð›”_ÃþüWô`dC:‡t1.Ù7-{®U€8ýÚ„|}ZÔ^e|䞯<_y¾¢2´2±ñÄÆµ§[Þ©j>Aé­è]«û–ïSr»uVÃþûð/¿ýVešáÏd¬èWÿðøþ:5L]Q™@ZYmµÚjµ•ñ(«<í×Á;F~ÙpÔë·%Bž¤GåÓûݤA)ßB¥z“«®odøÝ<‡mÖ.ln°õÙRf1ËégßÝ}w÷ÝýÀM–o·µsÚgy°¹=ì¦oôcá=Ìr@ú9©ÔNjÆ£lw±FeÝ‹›Ãý+å~óúž>rL³žßߊît¹ºoÊwבFß¹ç4|"GÿB ­›Û]»1<ó”mÍ, y¦¾&BÏXCp;}óôÍÓ7§üŠÝðç?è›0þÃÔ7SßL}c\¾7tmS#œ8ýÚW#zŠ~ƒ¼ÇË/{¼¤2´²ÎjÕºD#—žý1¨š§ùÄ¥Þõݶúß?Œk)Uü ¿}n'œòõÎ`¡o’6¾×‘ µ½{Þ'Á'Á'ÊÒÊÁꫬn<ÖÜ”q}WÙ˜ÛS¼Å¬khU+å¿ëðS/»qªáw ÿ^iyug3 €‹¯õ?Þ޸筋Zµ.JeiåôäÓ“OO6kíÏ/XXöý— GÇV9q³’ÝàÌê»vMy›ôSt“Vorð7þÍ'.TâvÞËD#@ú¹}ùöåÛeókTuò7‡ûWÕ¼ìïªe8ªzSKY9“òßü´Ò¤Òކßí)¹,/áfnwí¿,3Ú®6³€ä[žŒú&EŒÿ:%tJèãR>îÒJôjCœ~íõÁña|ä ».캰+• ¤•p%\ WŒÇÚž<óÜÛšCP*_æ[¹§á¨¬2ç>‘»Î û¿ü}~˸ѯ¡}zI—­æ~ãžÖnX»aí¨L ­\.t¹ÐåBÆc­ü¹žAc/›[œ{…Õ¡<µ+ÎðjM‡ä«Jû•÷=É÷S‘ßì} ¿Zºl«=·Í'öî¹âDØn6ë߬³þT&VÍ}4÷Ñ\ã±V«LPb±þæüöÜ”¼ØúšçqN*r!À]úÀß/«Ê¯*¿ŠÊÒJLј¢1EÇZ‡%Ž®ÅìÍóž[Jî¼ÉY›-©|Æ*:·–{œáÏk‡›¿÷ÜfFwçîvaÍ*)Cl,#ôMŠÿá¼ ó.Ì3.ëoýºx§_»;s#[÷ÂÆG®ü¢ü¢üBeiåþß÷ÿ¾ÿ·ñXëÙsGÙ‰æ”öÚÑ"g‰Àÿ=e—#ßÿ‚œ¥sFçuÞþ±­ùÀÇœÖþéekÜó[¶lÙ²e • ¤•袈þÁx¬ÙV«ïßÝ‚R3³ªl_iu+xþI°ÄÉÆõ»6qY8´ç¼r†¥ž]í†ZÐ¥tëÖuƒV%]ðÙðö_Ã‚Òæ³øs徿ÚîøÉ¸çgGÎŽœIei%nlÜØ¸±Æc­˜æü&ÿàôkGêçvǸç´Ðj@+*H3ùôùôùLƧÛÔ©úeï_EÝéYÖϺÌ›³ù»ýï‹ËѹµÜãÖ¸6,ñÛ×:Þ¸Õ1¯ÎÛÝüUœß¯Ž[@ÉI£ß^;\^ýß¿yÍç¾Ü듽Vù½5îsÿÛþ·ýoS˜’"θ,/ôMŠÿáU‹W-^µ0.ñ7J·²]Hœ~í€3Û•õÅ·?\üp1• ¤•øñ5â?ð­ÞReìçå;oAi¶…íÒêqæÏÉ4$ÄqªñF|ñ]ÄwT&f:ê;ê;šš|¾]óâØ}óy8Ïr›œ…º¤|N+h縢ÒM›à¨­[Ííí¿N‹úš‘ó76‡mÛLai«ü¢ò‹Ê/2q¶œ½áîGœmÏñë‡8º÷ùö‘ÛGnIMi«Y¶fÙše3qQ{$ø¾7Ÿ;oNU EZÿžòk¹î×ï;2`E-³»Çxþu»îÞ³yÁÈ#0ËøàŒÅ²Cߤ€ñ_bõ±úXëçÖÏ­Ÿ}ÜÍÞkÛ§q[>°PkSMÂÊ„• +)L mùDûDûD¸èÊ¿æ_6(µÏUdQÞí–;ýQÆËú‹oÇŽ‹;ŽšÒV =*ô¨`<⪌_ðûþÑæšþo1çÖ­ë­²QFT ÈÛ¼PkÛ¦Vå¯h½£À•²+]öÛôiÔ`§S@¿YÁ-}r¯Íu<—¹E¿†Ööϵv÷ydHdHd5 ¤­)Û§lŸòë¥=÷Žt¹DœmV=[Ø—1îó›Ñ7£oFS“@ÚZÓsMÏ5=?0œmÑÕó¡¹Ý[6Á÷†ó]ÿ€RGm}Jœ-Ð/_p¾0«ÓVöeƒ :æ_Ú¥ Ó„bÏ„ MgTvNú[ævwnḚ™Tã>?|*øT05 )`ó÷õ„¾I#E&´™ÐfBãpαí~ïRå9`s¾¬LÚÞmØù@õcƽÝyIç%—P@zXÙ}e÷•ÝÇ4ryãÊ;3î{vͳ}!•ñ]cÜÛ^ö^ö^öT#öìÛ³oÏ>ãqçÔ¦_‡`ks‹NÿõŒr²ÆÜŽüoÿ½¶ªÖ!ãÞ¶Ò[é­ôúúúÔ$¶Ž·>Þúxë¬\õÏÈ%â2âBÐæÜNÚt±µ{¤©Ûdï¼?ðþ5 ¤­ë5®×¸þ•«­ØºÔˆŒxÿÍüïΕîaÓ5ÿ^Íö:êuÔë(j@RÀæéë }“"FŠüSôŸ¢ÿ5 £VWîRæqÆ €Í¿]2Ï·´ó0ãÞþ;èï ¿ƒ¨F =Ür¾å|ËÙxܵs¨ïg¿ˆÈ6mÛ™fWªTѸ·×å\—s]NªH‘Ë"—E.3w¬ÛµR¬ãâWد°_aª€1`óAè›0R$>g|Îøœ¦†Ç»àÞ™jæ1õmâ¨>µŸ›êçWM_5}Õ”jÒ…‡ÞCïajôE••]|ŸܦUëvÎÁ¯ÀÓ¼ã\ÿPÿZÒ‘»ƒ»ƒûžL­b7äÞ‚Û4[üyƒ×õº~Æý|Ùæ²ÍeêH?튵+֮؞›µû½Ë‚Û´jk–î%Ù÷7îçC«­>´š:ÒϨ]£vÚe<ú´±Íoy†pW-Í~P³¬Óã~Þ1wÇÜs©CÆ€¿,B_S€ñ1šýFõÕÏx¨ì[Úxˆû.SßÚ:«×ä<ƒØ¦]›vm¨@ ½-±^b½äoàþíéÄß\çܦ¾½öpGkŸ¶Æ=ì~Áý‚û*HoÎÿsþŸóÇ`éÙ­_õKp›úÖËvÑêƒYLýó2ñUâ«ÄWÔ!~Âç…Ï Ÿ÷¯¹4k›Ïö4ÁmêÛqNÍ­4Èä3ˆcâÆÄ¡ô‘#"GDãÑWëj‰…¹«–ú6þtï+µ[ššå¢§DO‰žB0Füùú¦0>Âõ&×›\ob§Æ ÜÏ~`‰û;vP€L!þ<}?0>ZõRÕKUÿÀ?ª•|Íâ=sq±øií9‡¶û½?Ы… *T¨PâÕÄ«‰W©=àóèú²ëË®/Çã¶ÈYY*Ö%Äý´öNÅÝcªÿbòy‘~qýâúQ{Àç1aô„ÑFÄrºûù!î'>û{zÉá²ÉçE6EoŠÞDíŸGHXHXH˜ñH¬9) ³ý/„¸ŸÖŽ÷=ݯÒqS³ÜÃg<œAíŸÇΓ;OîÚqïãÞǽU¾¾VZýô¾Pï7µ{qáøm¿@·:¥§«¯>¾úØÔÄësÚE¿8ÝmÛ•­_Ó~ÑžŠ \¸&ª>§Çx<ÀÔ,ç5yñUÝJÝmKÜk¼ ëöü³Ówºït_ªøœ^ýóêŸWÿ˜šå†fTp%ÐýضqÞ±MJêŒû³Ï«>¯ú°¸=ðYÅ[Ç[Ç[›šåÎÔl›¹ê^î¶}l»Õº~_·ëÆýYol½±õÆRu’Gœ¶}Ó 0>Þ3ý3ý³êÙªg«žÍx˜­8W«ˆË.SÞîlØpt¥ýÆ=Y¸xáâ…‹'lOØž°¢>¿.W»\írÕxlNžRî)nÊÛðg«ÛW)cêâìm··ÝÞv£Þ€ÏoÜÚqkÇ­5•ö[k´˜C ›òÖ£ÁŒÛF›šå^f{™í%‹?_À²¶ËÚ.kk<*Ëúä°‰˜ÜçÒV'bÝ”´Ã‡(Ù+\55ËÝ[qoŽÔðùíÈ´#ÓŽLÆ£²T_›¬ùî&ÔîÓ«öfî¹¥¤}ñgÖ¾KLÍr‹],v±õ yÀ©G蛀ñ‰.…^ ½jjàÝ.ÝéYõÆ\D&ß>[ÐÝ©æS}xH=¤R©4àK¹¿áþ†ûLÐsV›7x%ÜM¾}ÝIåwÓTî¼³óÎÎ;Tð¥¼ÜôrÓËM¦F¨[“±YWÔ'ÜM¾­Ö}õÓ# óN+ôÚÎÖ¸Wþ´ò§•?QiÀ—òvçÛowššå:Œ[øw¹J„»ÿÑæ¾”Ë#wÙÕ^Ïlªàk‘¾“}'³ÂðÅ$K8–p¬DÉ%K”4¡K7øÎvÞÉ·”´Ý›:ÿUüWŽ&÷šÜk2• %€SooèÞн¡„¾i‹©2ªÀ¨£ BÇÁ…ÖZŠ÷ì½®¶—’Æmâõ> u²6ìWz–í®ÜŒxÞáy‡çT`, X`r9è\š·ßI‚^Sm`•VçJº÷[Õ§UŸV}ª¯¦¯¦¯F_ÖÖk[¯m½fr9è‘‹ê†ôšjK×k](¨‡q¿ÌU0WÁ\ñB¼/PcÀ—%FH#L.}Z¬P¡)A¯©¶ùˆ)ïJ»™¼îñºÇëÔðe©r¦Ê™*&¿¸<¶íEïÊÜ…3Õî˜ÞàL¥f¦zï™Ë3—g.Ô€” N½„æ Íšú¦-`¤Êë ¯/¼¾`jXsQæG.(Û9Í«çs\jò3ñYâ³Dª 0ñ‘ñ‘ñ‘ÅóÏ_<¿ñhmÚÿWûýÐãê”&îMÚn5Õ¥Â2“«DݺDuf¡®¾®¾®ß2¿e~³6'VT\\mÎo?Ñ÷&m]ü\`¡éU"lÎÙœ³¡¸óѽS÷NÝ;Vë…ûå©:Þët—JG‰{“¶}ælé4×Ô,§~¯~¯~O]æc|¯ñ½Æ÷25f_Ôêáì;ž{qIÛˆ_Ûï¯ÖÑT…z…z…zQWRŽ8­$}˜Ð7õ€‘N^:yéä%S—M«]k%¸:qqihÿú£¡O¥E¦úJW_W_WŸŠÌ͵ðká×ÂMÜEdrp%ô5´ª~enÏñ¦újsÁÍ7¤¢sóØê±Õc+S#·øPÿlíÿñq];üø¢_÷¾ÓÎüiª¯æ×›_o>ÿ4ÌNôÁèƒÑM\׈úõ %Ljyá¨û¢ß!º ® ¦újDĈˆT`nÞ…¿ n›h›h›hvk«÷ÿz¢_"Áú­‚©>ɧåÓòi¯l_Ù¾²¥~ó·Ão‡ß?“1p‘îv“~¼PßýÀ×ýÞ…œ;YO?iü¤1õ˜?ÕMuSM¾½»Y‡²ÝìμÝðW­5_Ï}¹'ç»×_04ïÆ<Þ¦zæ¦çMÏ›žÔ€OC óDŒ4ö¾ýûöïÛ7ºÞèz£ë¦.ªæ¼®ÞÌQ§ïèV§”e_b®]W§¶kŒ©~¨­B¶ ÙbÅ6ŠmDå†ÞGïÓgfŸ™}fšÝ£Czô+[<ÁÿèöÚ[,;úÝùÛܕޙê‡<ûòì˳ïe—^ p€ŒeRŽI9&™Œí[øµlîTí›Uâ¡#–ýº5óv…Wò¡Èƒ½ö>ØKÍËÒ€¥KLk§¾[ þ=6ê”}¥–ýöíõççÉÉÏrW®:]eµ* ƒÙ¶dÛ’mKLëŠýl«Ú䈜Ø}º¯eß—»Z²ÃŽjÑÉÏr'Gur5 5€až€‘.ÞÕ|Wó]ÍzÙëe¯—ÝÔV»©Aö[^½êé7Û’..ß=î]ªÖƒa[–úÙÔgwí8Úqtôûè÷Ñï© #J“0&aL·íݶwÛnj¤ûž®^8ø™ªkFZR蛘ãXÚ'Ïü½Ü‹ÿxRä'<ùƒj2¤­ú­ú­£zŽê9ª§©1žßžbÉ[žoæÅïmaQÑoÕµKŽ åÖuÝ:2Kò³Ü­f·šÝjF±×\ç¹ÎsMòa¹¥ÜÙÿƵ©åE¿mÆÿ*—¹™ü,wîÙ¹gçžQ'@Ƶ>Çúës$?Òÿ9ÝfDU |eÛžZ»÷Hþ³‡ >†:zÀ0OÀHGqYã²Æem·«Ý®v»’¿ä:bßrE•MýâòœGÛƒÞeò®±ê™û†©OZ£qÆ5Ç Š3ˆ 2º„¨„¨„¨Áþƒýû'?Ë<»d¨ÇÍŒý^ϳc„OwÇ¥­{™\¶H©"¥ŠDæ‹Ì™ 2¼úúÁyƒóçM~–sž:(ç/×3zô[Åeþö}U >v)èY ùÏ{÷éݧwŸR €eX‘sEÎ9“õ-'O+}krÛK³=ÊfÜÐwÔÄ#vÝÝ&5t)üKòŸ7"&"&"†Ú,ÃvïíÞÛ½“õsgWŸåx#Á¿OïÚ[3î}¹W£{J~Cú>s«]òLòŸ÷„Ë —.Ô€´B óDŒt—Ø&±Mb› C& ™0$ù˯>]£Jfy6·»cÍ;æâòHÏk~SFµ­\»Ì•ä?]в eAËâKÄ—ˆ/AUåšþšþÚÝÝ]òó@ëNu­ŠFß»ºwn’%ô}wäÐóZ7g¶åðóÜuléØÒñMõ7ÕßT§(˳áÚ†k®%?|âbçi[yü¯íw´Ï(¡oµ+kzó(_¯ûÞÑ¿'ÿé¼]½]½]_l±ýÅvê°<{f홵gVòó€Ý€r%ò]é¼ËÃÅ3ÃD¿#.…{¸µÙ=Û®LTòŸ®øºâ늯{Ø÷a߇}©Àò„Í ›63ùy @bÞ¬VWåoÕÊ+ƒ- ½«RÃÓ•žåN룮ºÎ‚ÏÒ0Ì0>«SwNÝ95%dÓz×)7Rê¾Ê·´¹]VFïÙݯʢ®5[9½NÉgYwb݉u'8ûÀ×@>"‘¤dfÙ£ÛŽ2ëùð©ñÔÜBß7ÁaÝk_[vÒ׈”|–ùk篿V_M_M_,ÛÉå'—Ÿ\ž’™¡Xå:Å[÷?wâî ³ }s­zp(Þ¹ÁÀ³Rt-7!Ë„,²¼ø~àûÔ`Ù"b#b#bS23¸½hø¢ðŽAox¹v2·Ðwâ™ówÝ7um²²dùÓ¹έåvû/+GEEÅ&Ä&Ä&P€e»sûÎí;·K_úûÒß'?3Ôk_*[‘#çÖ¶½ë]ÃÜîË%vëóOíǪóž­JÖ/°,ߺä?K«~­úµêÝ1ºctGj@z †y"Æ—¸ÜvgØaž£=G{ŽNÉ?­ûæ¯ðºäÚ‹#ÛE{ßûR—7;tªéó`ÄX…e¤è¦gX±°ba"D<àŒ_ûoÅ6Šm”¢ˆö7Ë©¶ª­j˾6±c Æ^gxáuR2W”~Y9¡ÀŽ!kï:<þR¡ïø¿ÏøTzÕlùäŸK=Jù,·ÇmÛ7Î8ðµ‰oß8¾qpàÁR2W¸zÉ^ åÞ­ÜÿüR÷åŠöiS{Íú]u³Wè›òYî÷¿çø=‡~Ÿ~Ÿ~ç@ú!†y"Æ“¸>q}âúÍ?nþqó¹?Ò¸+žÑeo¯ÐJòj«?ئNÕ´½¬<í×f]Õq†§?öØB … )ô¾Íû6ïÛp–¯ÚYýYýÙ=ã÷Œß3þcg’aË;ÿ]úpøÕM«”LŽ}_;,mãÞ y·zx/œÛgè.Ç‹…› <£R~l¿øýâ÷‹ßÛÈ·‘o#9É”sÊ9åÜÇÎrÅԭѦZ…øÑqË£«e_qèqÚÆ½×fuØ~¸¼C÷£+äÛ`7¾ø¶”Û˜À1ccbb8¿Nf?™ýdvÛom¿µý6å3‰‡®Å‚"1ÝZ¯záPflô©â•:¤mÜ;Äïà×-o*ý Ø(çáùo¤üØ‚fÍšý\}®>W9¿.•¼TòRÉ O+<­ð4å3Iëå‡ÙçÝݱ‘»Ës»î²¯wÚÞ—»S³sëês~o_/À­zÅk.˜òckÚ6´mè£L2=â¾7€Ï„承a¢gEÏŠžììì‘;ZÍ,÷¢¨:ý•w«òÏ6m©WÊ­Àÿ&ù<*±Í›xúª ›ôlõw‡&£=fmÞ\ï®Û¬YnÕ~qØÜ~ŒÃ!û[y—ZuÍ}íÓö;òâÈ‹#/F–Ž,Yš³ ÀXìw±ßÅ~·èТC‹¥f–k²©æ»S6M.ï¼aÃÔ¦Öí÷X¸Æ#§²6Dï颮[qÄ3ð`ß%%<o]73³ÛûÙCŠ9vïÒ¡q¡bq…vÙtÏ3âÓö¸9psàæW\yp…³ ÀXÜŠ¸q+ÖÎX;cíŒÔÌr… ¹]õ~QjB‹µ½+:ÖêófòWÏá}vs³$ä Û„±!+³W¨>rË’×ή³ÍšQöxço‡…ØW÷ËßìZÞá…4ÛO¼–k·­Ý¶vÛnn¼¹ñæFÎ&c uê&Ô ý.ô»ÐïR3Ë•íélãèW(°l±¼-o.ý Kåªå‡ô´¾£k¯99Îí~bÍX‡ 6,Ô—«ÙøÒ¸M%¼´ÏjçRX+9&ï›OÛo½[õnÕ»ui楙—fr6|Àúõ?;v ÌjƒÕ« Ÿ6Ûx¯°ßTÈþçµ¾eª­Tj s¹²Û¡‘£{Iyy³“•_ik›?÷\'În–½ò¸ý®Ô`‰ä[Ùy|ÿYn7K¹¸t.¼¿@‰OÛoåÚ•kW®}jÚ©i§¦q2|~À0OÀ0;/¼\ðrÁ⾋û.î›ÛŒÍ\8sáÌ…O§?þt:g @ÊÅ<ŠyóhÍú5ë׬7çYn\áq…Ǿ¯Ý×îkœ5)÷6ømðÛàmU·UÝV5ÿíü·óß6ÏYnPÖAYe½éÓÿ¦?g @ÊÅŒ?pO¥=•öT*5¡Ô„RÌs–ëÞ¨{£î" FŒ(ÈYr kÖ&¬g‹³ÅÙî}Ýûº›éݹ±-b[Äž®xºâéŠúÛúÛúÛœ;_ 0Ì0Ì[}}£­¶>ÚºWÞ^y{åýR—•í^µ{Õî•ú­ú­úmB¦„L Œiæ´Ûi·ÓnÏ <3ðÌ—šåj<¨ñ ¿«ý]íïjï|Þù¼óá¼H+—]\vqÙh‡Ñ£¾Ô,ç;Ëw–﬙wfÞ™9&4&4&”ó ­\›ymæµ™SKL-1µÄ—šå<|=|=|·4ÞÒxKãQ/¢^Dq^¤•;Yïd½“uöþÙûgïÿR³\¹%å–”[²¦ôšÒkJ?]ötÙÓeœæƒæ‰ L¢g¢g¢gÄ?Fü¸²æÊš+k6«Ò¬J³*iuAYÿNý;õï,¾¸øââ‹çzëu®WüÐø¡ñCéyŸÉIýIýÉkƒ® º6hÝÈu#×lØ6°m`šE =}{úöœ[yn幕O?5þÔø·Yßf}›•Žð9ÝZxká­…›Çm·y\—!]†t’V³œ—ì%{É3fÌ8Úêh«£­bÆÅŒ‹GŸøœî ¿7üÞðÐÆ¡C´ hÐ*ÿôüÓóOOý,çöÆíÛ›IÝ&u›ÔM{¢=ÑžDõ‹êÕ>ð9=Êÿ(ÿ£ü»"wEîŠìŸ§žþyŠ„ )’úYÎ!«CV‡¬£Ë.7ºœ8Wœ+Î}>ÿùüçóés>0,Ü‹„ /Ÿ†? ¾,|Yø²‡M6yØ„ž`bÆ6ŒmxÈçÏ!ŸðÚáµÃkßÈ~#ûìô Ëð~Ýûuïךhþ¡ùaQaQaQÊ\(s¡ =ÀBÌÖÏÖÏ>t÷ÐÝCwÃV‡­[}2ìdØÉ0:€%9ì~Øý°{Xý°úaõĉ?OŸÞ€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!>k–%,KX–ÜðÕ0ä¤Àစøê`Ãÿ–9,sXæ°La™Â2i‰Z¢–¨%h Z‚¯ÅkñZœ§Åioµ·Ú[-V‹Õbµ×Úkíµ£Åh1Z´­EkQZ”¥½Ô^j/µçÚsí¹©Ej‘ÚSí©öT{¢=Ñžh´GÚ#í¡öP{¨Ý×îk÷µ{Ú=ížvG»£ÝÑnk·µÛÚMí¦vS»¡ÝÐnh×´kÚ5íªvU»ª]Ñ®hW´-B‹Ð.i—´KÚí‚vA;¯×Îkgµ³ÚYíŒvF;£ý£ý£ý£ÒNi§´Ú í„v\;®׎jGµ£ÚíˆvD;¬ÖkáZ¸®…iaZ˜¦jª¦jЦhŠ&i’&i¢&j¢¦ÓtšN;¨Ôj´Úm¿¶_Û¯íÕöj{µ=Úm¶KÛ¥íÒvj;µÚ_Ú_Ú_ÚŸÚŸÚŸZ¨ª…jhhhÛ´mÚ6m‹¶EÛ¢mÖ6k›µMÚ&m“¶QÛ¨mÔÖkëµõÚ:m¶N[£­ÑÖh¿i¿i¿i«µÕÚjm¥¶R[©­ÐVh+´åÚrm¹¶L[¦-Ó–hK´%Úbm±¶X[¨-Ôj ´Úmž6O›§ÍÕæjsµÙÚlm¶ö«ö«ö«6K›¥ÍÒfj3µ™Ú m†6C›®MצkÓ´iÚ4mŠ6E›¢MÖ&k“µ‰ÚDm¢6A› MÐÆiã´qÚXm¬6V­ÖFk£´QÚ(m„6B¡ý¬ý¬ý¬ Ó†iô¡ÚPm¨6X¬ Öiƒ´AÚ@m 6Pë¯õ×úký´~Z?-H Ò‚´@-P Ôzk½µÞZ€ h=µžZO­‡ÖCë¡uÓºiÝ´®ZW­«ÖYë¬uÖ:i´NZ­ƒÖAk¯µ×Úkí´vZ;­ÖFk£µÖZk­µ–ZK­¥ÖBk¡µÐšiÍ´fZS­©ÖTk¬5Ök´FZ#­Ö@k ùkþš¿VO«§ÕÓêjuµºZm­¶V[«¥ÕÒji¾š¯æ«ÕÔjj5µZ ­†æ£ùh>Z5­šVM«ªUÕªj^𗿥yjžš§VY«¬UÖÜ5wÍ]«¤UÒ*in𛿦UÐ*h4ÍEsÑœ5gÍYsÔ5GÍAsдrZ9­œVV+«•ÕÊhe´2Z)­”VJ+©•ÔJjŵâZq­˜VL+¦ÕŠjE5;ÍN³ÓŠhE´"Za­°VX+¨Ô j6šf£YkÖšµ–_˯å×òjyµ¼Z-–GË­åÖrk¹´\Z.-‡–CË¡ý¤ý¤ý¤ý¨ý¨ý¨ý ý ý }¯}¯}¯eÓ²iÙ´oµoµoµ,Z-‹ööö–IˤeRõª^Õ« j‚š ¾Wß«ïÕ85NSß©ïÔwj¬«ÆªoÔ7ê5FQcÔWê+õ•¥F©QêKõ¥úR}¡¾P_¨‘j¤©>SŸ©ÏÔ'êõ‰úX}¬>VªÕ‡êõú@½§ÞSï©wÕ»ê]õ¶z[½­ÞRo©·Ôê õ†z]½®^W¯ªWÕ«êõŠzEP#Ôõ’zI½¤^P/¨Ôóêyõ¼zN=§žSϨgÔ3êiõ´zZ=¥žRO©'Õ“êIõ¸z\=®S©ÇÔ#êõˆzX=¬VÃÕp5\ SÃÔ0Õ@QUQ%UR%UTEUTuªNÕ©ÕƒêAõ€z@= îW÷«ûÕ½ê^u¯ºGÝ£îQw©»Ô]êNu§ºSýKýKýKýSýSýS UCÕPõõõu›ºMݦnQ·¨[ÔÍêfu³ºIݤnR7ªÕêzu½º^]§®SשkÔ5êõ7õ7õ7u•ºJ]¥®TWª+Õ5D Q—«ËÕåêRu©ºT]¢.Q—¨‹ÔEê"u¡ºP]¨.P¨ ÔyêJo¥·Ò[é¥ôRz)=•žJO¥»Ò]é®tSº)Ý”.J¥‹ÒYé¬tV:*•ŽJ¥ƒÒAi§´SÚ)m•¶J[¥µÒZi­´RZ)­”J ¥…Ò\i®4Wš*M•¦J¥‰ÒDi¤4R) •†JCÅ_ñWü•úJ}¥¾RW©«ÔUê(u”:J-¥–RKñSü?¥¦RS©©ÔPj(5”êJu¥ºRM©¦TS¼oÅ[ñR¼/¥ŠRE©¢TV*+•ÅCñP*)•”JJE¥¢RQ© TP*(®Š«âª8+Ί³â¤8)NŠƒâ 8(å•òJy¥¬RV)«”QÊ(e”RJ)¥”RR)©”TŠ+Å•âJ1¥˜RL)ªUŠ*vŠb§QŠ(E”ÂJa¥°RP)¨TlÅF±V¬k%¿’_ɯäUò*y•/Ÿ“ÏÉçä3òùŒ|Z>-Ÿ–OɧäSòIù¤|R>.—ËÇäcò1ùˆ|D>"–ˇåp9\—Ãä09LVeUV €,É’,É¢,Ê¢¬“u²N>(”Êäòy¿¼_Þ/ï•÷Ê{å=òy¼KÞ%ï’wÊ;åòy‡¼CþSþSþSÞ.o—·ËÈÈÈ[å­òVy‹¼EÞ"ÿ.ÿ.ÿ.o’7É›ä òyƒ¼^^/¯—×Êkåµòy¼F^-¯–WË«äUò*y…¼B^!‡È!rˆ¼L^&/“—ÊKå¥òby±¼X^$/’É äòy¾<_ž/Ï•çÊså9òyŽü«ü«ü«ü‹ü‹ü‹²ì#{ËÞ²·\U®*W•«ÈUä*²§ì){ʲ‡ì!»Ëî²»\Q®(W”Ýd7ÙMv•]eWÙEv‘]d'ÙIv’eGÙQ./——ËËåärr9¹Œ\F.#—–KË¥å’rI¹¤\B.!—‹ÉÅäb²½l/ÛËv²l'Ûʶ²­\X.,– É…äB²l#ÛÈär9¿œ_Î/ç“óÉùä’ä#U“ªIÕ¤ªRU©ªä%yI^’§ä)yJ•¥ÊReÉ]r—Ü¥JR%©’ä&¹InR©‚TAr‘\$ÉYr–œ%GÉQr”$ÉA*'•“ÊIe¤2R©´TZ*-•”JJ%¥R ©„TL*&“ì%{É^²“ì$;ÉV²•l¥ÂRa©°TH*$’l$ÉF*  Hù¥üR~)Ÿ”OÊ'å‘òHy$+ÉJ²’rI¹¤\RN)§”SúIúIúIúQúQúQúAúAúAú^ú^ú^Ê&e“²IßJßJßJY¤,R)³”YÊ,e’2I™ÄD1QLÄ1AŒãÅx1NŒãÄ·â[ñ­+ÆŠ±âkñµøZŒcÄ1ZŒ£Å(1JŒ_ˆ/Äâsñ¹ø\|&>Ÿ‰OŧâSñ±øX|,>‰Äâñx_¼/ÞïŠwÅ»âñŽxG¼%Þo‰7Äâ ñºx]¼.^¯ŠWÅ+âñŠ!Fˆâ%ñ’xI¼ ^/ˆçÅóâyñ¬xV<+žψgÄÄÄÄSâ)ñ”xBq¸GÜ#îw‹»ÅâNq§ø—ø—ø—ø§ø§ø§*†Š¡ââââ6q›¸MÜ"n·ˆ›ÅÍâfq“¸IÜ$n7ŠÅõâzq½¸V\+®׈kÄ5âjqµ¸Z\%®W‰+Äâ 1D CÄeâ2q™¸T\*.‹‹ÅÅâ"q‘¸H\ .ˆóÅùâ|q®8Wœ+ÎçˆsÄ_Å_Å_Å_Ä_Ä_Ä™âLq¦8Cœ!Χ‹ÓÅéâTqª8Uœ"N§ˆ“ÄIâ$q¢8Qœ(ŽÇ‹ãÅqâ8qœ8F#ŽG‹£ÅÑâHq¤8R!ŽGˆÃÅáâpq˜8L&‡ˆCÄÁâ`q°8P(ˆÄb?±ŸØOì+öûŠb (ö{‹½Å1@ {Š=Åžb±‡ØCì&v»‰]Å®bW±³ØYì,v;‰Äb±ƒØ^l/¶ÛŠmŶb±ØFl%¶[‰-Å–bK±¹Ø\l.6›‰ÍÄ&b±‰ØHl$6Рņ¢¿è/ú‹õÅúb}±®XW¬+ÖëˆuÄZb-±–è'ú‰~bM±¦XS¬!Ökˆ>¢è#V«‰ÕĪbU±ªè%z‰^¢§è)zŠ•ÅÊbeÑ]tÝÅŠbE±¢è&º‰n¢«è*ºŠ.¢‹è":‰N¢“è(:ŠŽby±¼X^,'–ˉeÄ2b±´XZ,-–KŠ%Åb ±„XL,&íE{Ñ^´íD;ÑV´mÅÂba±°XP,(mDÑF´­Ek1¿˜_Ì/æóŠyÅ¡À„ ˆÅÅâbq}N}N}NÎBJ<œñpÆÃÅo¿]ü¶¡‡ísÙç²Ïu'êNÔÔœeú_j†¡`Î ³«a¦5T¬a6ÌÆô@Z!&ÆrQ<6xl J^¢m¢m¢mƒ6 Ú4h“´÷æZϵžk’Þ#„ƒyÎ0ôOJÎ}œûßÿîüwçÇÇÇÔÉìJ³+Í®”´çÖkX¯a=j ­Hc¹ÍÆkC® ¹öÞû½÷{oÎKR3&Θ8cbÒ¾*©•ÔJj¯7¾ÞøzcêÏ2=Œ/5Øç1+÷•ûÊýA? úaÐî»Üw¹ï2¶Þ¶Þ¶Þ†ÿÅðÿÊYå¬rÖô>þ’ö[‰³%Ζ8³'fOÌKÅF=õh”!îÍ¿'ÿžü{RówŠ«ÞUïú¿ LÍj†~Nºú‚Á¬î³ºÏêÎH=``i,·™é_¹åþ• & .ͼ4óÒÌ|aùÂò…%í¥%«–¬Z²*å½D óœaÌç8oæ¾™ûfîÆå—o\þcg-ÿÿÿ€ôøD7ìoØß°Ï{.ï¹¼ç’îqù åƒ–²¤ñ»qÛÆm·µ+jWÔ.=þfi)·”[ʩ鱅Ç[x,é6 3óå¾—û^îËHH ``i,ù›æ+š}Ê!žœøn⻉ï‡ Ú¤p“ÂM [o²Þd½)%7ë×d[“mM¶¯úÄäÔçÔç4¼59iÏ”Ynd¹‘oG¾ùvdZeF¾Ô cGxdÌ‘1GÆËT,S±L©‰“†—iul=Nõ8ÕãTÒ½Þ§×>®}\{˨5±kb×ÄšÿKbƒcƒcƒË,)³¤Ì’¤ÛLº8?ãàÓHcŸ3žy™ée¦—)ŠX KÍ·Ô ÏÃ÷Ìê’«K®.ù±=°&¹FÒ9מá©ß”D¿ŽþŽþŽþåû”ïS¾OòÒ>—}.û\©Ÿ»Îï;¿ïü>«ÌV™­2'Ýþ–[nhs£®†®†®†ñóÍIå¹›çnž»í†µÖnØî»ì>`x*ú]à»ÀwϪ=«ö¬švX;¬5dÔQC  *”ü9ª»¨î¢º‹>­Cº…t éf¼Íßgÿ>û÷ÙŒw€OCL }©çóÿ±øÅ$¿÷õG×]ôk;#†`Ã8j²s²s²súØg˜Ò¨J£*ªÏ<†Øu䤑“FNzÒáI‡'LÍQÆ­AÒ-Ú±µYÐfA›I·éÕÛ«·WïDÛDÛDÛŒÞó†÷—?M›”a<ÞøxããSÞ“ÉŸ/ãe´?öÈ ÏiP¤A‘Æ_à9`€OCL }ÙZ“.ži¬Cë­;´þÚn©›zÂŒ·#iE¹¯ÜWy¶5ÝÖt[Ó”Œµ¤Ò˜áÉÔ=¶cŽu:ÖÉxkúè ¿eÌóÞÎ{;ï­©~+q¶ÄÙgÎx8ãáŒOû¼ Ž Ž ŽÉÿí–ôÉïݾáÕÆÛ\UqUÅU_‹˜@û²ðv·ínÛÝLí½Â‹ /*¼øzÎ…áéÞ²ÁeƒË› “€Ôh3Ðf ñ(ëß5¾küÇn­KÁ.»4ÞÚГCO=ù±c¶a½†õÖKºzSëM­7Õ’úßð4³©™߯û~Ý÷kêçºçvÏížÛ%ÿwœáï Ý²œUÎ*g5õÔ2³4ÀÇ"&ƾl|oï½½÷öšÚ»ámŽ_Ϲ0,ym*T°Œ¥_sPI­¤VRÇšX\,.ÿØÙÏð.[ã­U^\yqåÅ)ßZÒ½'udÌ‘1GÆXF¬x7ünøÝpSs¾‹­‹­KÏr“¯N¾:ùª©=v{ÖíY·gÛ·†ÙØÔÖ¼àc|"à Ç9¥æ”šSʰä¬á&c¥–XjxÞ®öÎÚ;kïÓrLË1-¯t¼ÒñJÇÏsl†»Æ?»ÃíÈO{?è‹\/r½Èµyüæñ›ÇwÍÞ5{×ìÕ¼ªyUó*µ»ÔîR»óïÉ¿'ÿÃNÃ3R[n¸e áw©1Sç1ù³yçüówÎOÕMÕMÕùøø8UuªêTÕz“õ&ëM†ØÏï´ßi¿Ó†·Qžt=ézÒ5müËÀ†÷Ýš\¢3ªXT±¨¯§Šj$ÔH¨‘`Ü L(0¡O•i¥pûÂí ·7k‘ΑΑλµ§ Ÿ6|ÚÐxkEíŠÚµKÍ ÐvJÛ)m§XRÏï·Üþq¦æü‰ßOü~â÷i;ר~¢ú‰ê¦öè9ÝsºçôOÛ²áŠÑx›µ”ZJ-… å€ €>Â˨—Q/£ ïi³Êl•Ù*sîTHºå´ Ì>v;ƒ=šrbʉ)' Ñ`ñÛÅo¿ý±Çð*ìUØ«°ñ¥Ç—_Úñ~ZÏä Ë–/ÌðßQw¢îDÝIý¹ûü‘dê÷˜ò-z>`MÀš€5VÑVÑVÑiU™¥·“2|ÀÔÞk䨑£FŽ”lÇðã-”ÔJj%µôxv¶×Ž^;zí0Þ£a¶1|é$å[;UìT±SÅLõÃ…Í6_Øœš3òeÏ2¾fæY{¦à¹¦V2Hù;/í¼´óÒ¿f’h«h«è‹Ë/.¿¸Ü’ÆéüÇóÏlªþzð׃¿¤íç}™ée¦—™LíÑ>—}.û\Ÿ¶å3÷ÎÜ;sÏÔ–O¿:ýêô+f€” &H‘òü“çŸ<åF–YndîT3<+œôvä— € ·M φšú-Ã3£ÉïÑ5•ÞXzcé¹Ó”!lKý­[K € O–›Zzôc%í3Vo'u´ßÑ~Gû™Ú{Êßǹèࢃ‹šÚΡC!‡BÒê˜cƒcƒcƒMH†5>v›C® ¹6äšñÖÜn¹Ýr»eXRíU“ûLî3Ùòê!ézÆÒc•‹èsÑç¢Ï™Ú£áš*5ÛwÕ»ê]?PçÃÄaâ0‘9 %€ €þÃ¥™—f^šiX66m£MGGGÿôx"3ùíÄ7ˆoß ÷üÞó{ÏOÉÞ“€ ËÛzÛzÛzçN7Iƒ±O;–ž@Júe‚´bxJl»Ûv·ín¥·“ÝctÑ=Lí=éb¡Éoǰ˜¶©íŒ2jȨ!iõ‰v¼ÙñfÇSûZûhí£µR¾/ÃÓɦ¾a2zÌo©Î:wèÜ¡ã7>Þ˜ÞÈXµ7Ðf Í@S«¤üØ ñ­a5ã­õ«Ó¯N¿:ÉoaÓÊM+7­4þrOÒ9Í’êÁTÏÖ8IÛ=¾hj†—€¤fû†õ§>'ó@ò€ €L2,«ëÐΡC»äo7×^xýáÔü£æ5 7X o!½ÿûýßïÿ¾gëž­{¶¶YÐfA›Æ¿[wQÝEu}Î8¨gPÏ ž)MÀ†›ªÅ2ËT,Sò[hR¸Iá&… —a1LCÿ–¸4<Õ,²Yd³Èä·cçdçdç”¶}’qà–rK¹¥lü¿7ý±éMÜ}`÷Ý,}°ôÁRÃÓ¥×]®»\wù-ÿoùËïÕÛ«·Wï”/Ämþ½m`øŒ†÷pï·Â‹ /*¼øØ¥›M½C×ðfå´úD<;yvò4õ$™añù”oíð/‡9ü‹©þ_é»Òw¥/°yÚÚek—­]ŒûÓðÅúÇœkO¹¯ÜWî›:ªóFÌ1ï½÷{ï÷Þ¦¶`˜Æ¹sçnj;bq±¸XÜÔ'k×>®½³£³£³cÒß2¼ñÝRë!fOÌž˜ÿ­]ñÜîÿÿ“{\>hù åƒL£ÿ´ø§Å?©Ù~H·n!ÝLmÿX§cŽubH00€I†¦É?%i¸ høó)¹õZ"´Dh SUzÀs­çZϵ6þß ÇcX0ö@ÿýô7¼gÎоùväÛ‘Æ{iß«}¯ö½Lí+ï¹¼çòž3<¹˜ò#߸mã¶Û’FÆÚ k7¬Ý°íË €“Ês7ÏݱŒ85Õ˜ü‚É›lr°É—ímÃm÷‡3Îx8Ãaž­7,ˆšôíÅÆ5oÕ>m¿†§ŠM}–)'¦œ˜r"5ŸkóøÍã77µ}ÃgüØí']rÖø«iõ,)pz0›zWwZÅù‹9×^Ò¿OÓŠ}.û\ö¹’ÎEÆû}³äÍ’7KŒ~Ÿ1qÆÄ•ieÞwó¾›÷©3eXÅðµžÔô¹áInà Æ{Iº<8gÀ``€H>3,hœú½žíûœpR®zW½«þѨG£úؽtïß5ÞÔ– ‹]§¾ÚNi;¥íS{éqªÇ©§Ò*LM*ú<°á ÝÔ§á}“U~®òs•ŸMí%i­¦Õ‘§7·[n·Ün}ÚS¿Æª¶­Ú¶j[ã½T^\yqåÅ©Ù~«¿ZýÕê/SA‚!HùÖ K¡šúòJõuÖ×Yo>crV9«œÕf†Í ›ŸVùÉ/2lÌ¿öŽö;Úïh¿´Š~… 9’ü§›SjN©9¥’þn‰³%Ζ8›ú0æû3ߟùŒ¿H—ÔìJ³+Í®”V{4õhÃ*)†ÈŸó` 00À¿â–â·‹ß.~ÛÔ ¾òü“çŸ<©¿jX´öKÀû~Ý÷ë¾_?vû‘ΑΑÎÉ/Ñ|~ßù}ç÷¥¾Î:wèÜ!S{1<ó"׋\/r¥¾OÒ£–>O|¢ú‰ê'ª§þS$­“o¢Íô2ÓËLiuäé§Ì’2KÊ,¹aÃþ†}ZßYÝguŸÕÝÔ¯6ºÚèj£Ý¦áý”¦F“aIöݦ”WÊ+å5uœI¿Úྗý€IDATbS 3›ñÛ¦SþÖö¤ïCµ¼þÉ(µ—š§´iЦA›”Ìc†w„¢â¤[X6aÙ„e©’SŸSŸs霥s–Î1µÎ„£¿£¿£ÚÆí†÷F›Ú£a-N€)ÀÀÿ’üâÆ†§ýÒvÞõ½ë{×ÿœ°ayØO;Ú—v^ÚyÉÔ– OI¦mÿ$ÿdªá½‰©ï“ô¨¥ô€ Ëw§ÕÑ&Ú&Ú&Ú/j¼qêüóHz³þÎù;çïœOMÿ$ÿu¤ï Nù6×d[“mM6SÛLúaÊ·™ôÝ“¦– 'ÎX Ïè']"å£ é»¥ _ͱŒ>Ɉµ—ô+©•ÔJªáí¼…‚  2ÌçÊ (3 Œá)𤿕ü–'_|uòÕ¤Û7¼¡öc×@R÷¿ÿûýß›ßh~£ùäëÍð¤µák@i[KV-Yµd•©ýbiæ[S€ €þ%ic,émÖ´ÚãTÝTÝTÝç €§¯ž¾zúêOÛò„ L(`jËI?KZõñ­íOÛ£åÀ¿ŸøýÄïÓöø‡žzrèIS{œ¶}ÚöiÛSßÛŸ_Ò§l Ot}ZÿxlðØà±Áxû5Ÿ×|^óùÇž‹FUUiTå˳çtÍéú‰G8(nPÜ 8Sý°­é¶¦Ûš~ pn3–¶Ÿ®pûÂí ·ÿ´#1DËñojËøòAêÿI‡'žt0DÈI·ôÍâ\×¥\lplplðÌÁ3Ï\pTÁQG%_i¶Þ¶Þ¶Þ§_~uúUzôvòoˆ&‡‰œeS€ €þ¥cÝŽu;Ö5u»-éó¯iµÇov¼ÙñæsÀIŸrþØ-7¬×°^Ãz¦¶¼ëÈ®#»Ž¤qÿ|»ãÛßšÚcÒ§sRÓ'éQKé'í™´:æM+7­Ü´ÒÔ“¾­ÖzûíÈ·#ߎ4<§e¨½Îå:—ë\.ùw4´h3ÐæÓö˜ü×5îí½·÷ÞÞ”lÇðîm«h«h«è´ýІ©PÙ@WCWCWÃ|*<ýXvœTô¹èsÑç’¾÷:åGbxNÔð߆e„3ÊßÔ<}nðóo?ÿöóoI?»aÍ ÃŠ)Ù‚aþœ÷vÞÛyoë¯?¼þð²ÁeƒËVP(7²ÜÈr# ÿû¼ïæ}7ï»»áwÃï†[^OnwÛî¶ÝÍ¡C;‡v);†'¶O;UìT±ô«º¿;ÿÝùïÎ¦Ž¡éû¦ï›¾'0…˜à_¼z{õöê¶oúL^JÞü±ÛL~k·2ßÊ|+ó§­û.÷]î»>gÿ\šyi楙¦öh¸Ùú>IZJïøJÇ+¯tLÛc>sï̽3÷2bo'u ÿþú?—Ô‚+ ®,¸ò±[Nþ½Ô)_`9éÒÆ®ù\ó¹æói}UáE…^˜Ú²!®0Ÿ O?_Oü/9õ9õ9“~]#ù/C$•ôyÇË}/÷½Üלÿ¦&6,koüVÚýãöÛ?.ù~0, =ñÝÄwß%]$<% ïƒ7ü·á+8·Ï^8{áì…:ë묯³>%ŸÝ0šFN9iä$óÂé]o'ªŸ¨~¢º©ã1,$Îu;€)ÀÀÿR¾Où>åû˜ºÝöÜî¹Ýs»´ÝãÓ†O>mø9àÔ<é•ü;b?ÿÎWêû$=j)½àôèmÓ©±·-›°l² ¦ŽÁf†Í ›Ÿv<®zW½ë>cÒçã“ßB-¥–RK1Þ‚ßi¿Ó~§Só©Kí.µ»Ôîôøò‡yžåO;6‹ €Ü°¿aÃÞ°_;';';§O;æ”?Qjç÷k¸V êÔ3¨gÒO]wQÝEu%ÿ[‘ΑΑΆ?™úJö½é{Ó÷fÆêó˜=1{böŒi9¦å˜–yîæ¹›çnJ>iåÅ•W^¾%|Kø–Ïùy“Ž_c†gµ¹n0…˜à_’Ÿ¢á¹™´ÝcÒçH>Oœšw &ÿ´ÐçïÃùJƒ>Ié§Go¿YòfÉ›%¦öX¤A‘E˜go3¼ß´šW5¯j^¦ŽÄ°ðéÇUÒ·/'eˆ ‹©ß½}÷öÝÛ&#‡n!ÝBº¥¦—’oeÔ¨;Qw̧Âñ9½Þøzãëÿ}}ÇsºçtÏé)ú’>YnŸåk®=ÃÚÆáåá_ÿrøS=`øû"­¢ßŒët¬Ó±NNUª:UMÉç2,½.b]ĺÃß&Ÿÿ3¾Èõ"׋\©ÿàëDL ð/yÏå=—÷ÜçŒÜâÄ7ˆoðYàTøüpòý“/,_X¾°/Û'é·Ç϶™{Û”5ÙÖd[“ÍÔ‘t)Ø¥`—‚{TIßûhlýÑõG×5õ»s­çZϵ6þ-ÃÌó¬Ú³jϪ¥¦—L½WØà½÷{ï÷ÞæSáø²Œ¿¾ü95,lþOx[öYK:k´ÒvJÛ)Éÿ–©¯­¿]üvñÛ†¥éOsú›Óß¼ {ö*Ì0×-þcñ‹ÿ(–©X¦b™Lmaœû8÷qîæÙÿóÏ<ÿqòWwIŸ’7ÌÒŸg‘çÔ\ÿÆ,ó€)ÀÀÿRâl‰³%Î~ÎEw ÛÌ(ðç_Úð<¥©=¼ý²}òIÞÄ™±–€N@3Œ³ëídžú2u$>>>Ÿ¶eSO’µ^×z]ëu¦>©w}ïúÞõ«Í‚6 Ú,Hýç5<fêó&ÿt²ùÌ3øü ±°ùŸ£¤ïu6|áãÂæ ›/l6õÙïÿ~ÿ÷û¿›úò–aáú'žtxÒ!ùÞ{ô8è±É·ª¶oØ—YtVN}N}Îaâ0q˜øoö¶Š¶Š:ºÇè£{oÓz“õ&ëM†çç’þyÃù2u$¡%BK„–H}ÿÞ ij/W]mtµQZõ-pFw¢ú‰ê'ª÷žß{~ïù†º%6gÍo4¿ÑüFÒOÚgrŸÉ}&'ÿ[¦V0<õû´áÓ†O¦¼ß’?mQýô0(nPÜ ¸äëÄpýp´ßÑ~Gû™gåflSÇ_¾Où>åû0˜BL ð/õ‡×^¸©Ûm»ì>°û@Úîqÿ¸ýãöË(°ái¡ÏÙ?»Žì:²ëˆ©=úøø|Ù>1–V¡~ò[ØñfÇ›oÒöÈ·»mwÛîfj†Ñan½¼»áwÃGœ460è&ýóÁsƒçÏ5õGÃr£ÿ{ÿUÒÿÿßîªë®îªˆ‚Š(0 @EsÀ€ Ú¢˜#Ì9‹sÆÀQATDA1  €äÌ0s~Ìõ­›Ï=‹ 8Ãð|œª®­ëèyŸîÖ:/N·âŸ7÷_Ѿ]Pµ%.Z¤cLºE¹u ëÖ5ò~Ϋtî«NTVÜÆÞÃk¯=¼–ó3V¹\år•Ë9Ï—÷µ]–wYÞe¹l•vOÝ=u÷ÔüUlÛÍm7·Ý”ýžÝí»Ûw·Wî]8ôíзCßr!Ò÷}333UyÌäþ·ŒùvóíæÛYÙäþ+š˜ 'yoõI­Ü¿rÿÊýû¸p]ßu}×õ-*pÎsþ~M}Vœ]qvÅYy?q~¿ùýæ÷ËËOü•Á…ÒJ_(]ØpÎ3ÍøÏùÿªNµsw}ÒõI×'Éë‰ÙG³fóù­Ë å…òòÞ¸!!!Êùyåí.0±ÿÄþûÔçíw¯ß½~÷ä}^鯛ÔÏR客 û•uþ2Ê‚Ž :.è¨WA¯‚^…¼ôPú6ð„1ÆLó2èeÐË U‹W‹[ÜéH§#ŽäüŒs—Ì]2wI^¾¶þŽú;êï­RÀ—€/_òW±g&ÏLž™È~φsÎm8WYUú˜ô1éc’¼Í®¥[gKßQ.*÷ýêú«ë¯®—7봂 ðïvy€ €þ‹‘#/FÊ{ÜÖ¦U›VmZì#æ^¼:x•XúÖ鯬Oë­¶˜û[°ŠG’ٖٖÙv–ÞôwÓßMWØpÎw=  Óå…òBy£nFÝŒº)¾M±êÄ3KC—†. •דÁcK©×4®i\Ó¸°`)é›XŠ÷ü¶émÓÛ¦¹Wû›ó7çoÎE%–nþ\͹šs5gy=9På@•UéÕƒG=x”û·‹´i/Ò–÷¶œ4´+¨O½ÇnÝ;yýɹq«â?‹X`i¸¹Ìæ2›Ë·6nmÜ:ï=‘þú‘tãwQwQwQ÷¢&‹¸¼P^(oÙÕ²«eלŸnõâÕ‹W/Îû'•·KÁóJÏ+=¯”¿®Éû¥éÛÆ¿¾T'"NDœþ=%Û«¶â¶â¶b±‘ØHlT´†€ë×'®Oäó½íö¶ÛÛŽ@``€^mxµáÕrßvOñ‡n£ýGûö/Z°ÔP‹¡C-r«RñŸ•ûf¶Ò>äý»åZŸØpbÉ Š÷y™ß2¿e~uOóò}zéôÒ饣HÏ¥dîoZ\6pÙÀeª3óò‰ì·Úoµß*¯UWW]]uuôè!ÑCé•4T¨û îƒºdŠt]y}È Ôg—žò+ï'Nýkê_Sÿ".êðÓžO{>íé°Åa‹ÃévÍyù¹•V~XùáØ c/Œ½à¯ï¯ï¯_tCÓâËžÈ^çe—u^æ|û6/ß§Û¸n㺓­Òö3ÛÏl?“¿Šå –>È–þ÷…´ iÒz6êÙ¨g£Ü¿ô¥¼ŸD›Ó¹:çꜫ“—ÞæÜÎ÷±Óc§ÇN±cÇ6–> kÖ$¬‰ô½ôMÙïpôÆÑGoüÊ8'»X»X»Ø+{®ì¹²GZ+éûO*~¨ø¡¢4$nåÐÊ¡•CîßGú@_úy¶Úª¹õ®Î`Á:ƒ_½ zT°sAúÆ^Î7êr·õíÖ·[ß^L²fÚšik¦ÉûéÒÿ)À…A:só¾?„ô—?FˆFˆFˆ|çûÎ÷_Ž=éZÝh|£ñÆçüDî.î.î.Š|º¥¡KC—†æþwkγ¥çÙKÏú•¾y\ûSíOµ?ÉûÒïÿë+ö1écÒÇ$õÛì=÷}hÖŽZ;jí(VZ€Üü‡œ[ ¬ÎÛ:oë¼Mº½gîe¶Ï¿òáøƒG=xTØR¥ïñZPë憎£þŽ¿¿øýÅïŠ÷_º‰eÁöPºIãêÅ«¯^,™ ê.äå;¬8»â슳õY¤'&J7*W¤Îªðð]º)÷¬s³ÎÍ:÷½Í÷6ßÛöãré»þ¹÷ªw¹Þåz—û5«–ì¢RÃk8¬!°j’·Øz`ë‡C‡‘¾'Zœë¬~c/ùaòÃ䇲gë^[xmáµ…õ¹â+ÄWˆ¯P°ÑoÎï©:ó¥¨À9W霚Ýov¿Ù}ÖI€¼ &ø q5ãjÆÕÌù&ßÏÆ„óFÏ=o´tÃXéÿÚ#´Ghy_%p~¶ŸÊz8ž˜˜˜÷sps??xñŸ‹ÿ\ü§ô±xÁö<ç÷Ìý¼áÜ™&‚‰ oC]é†Ãò®‚½÷JÝ+u¯”Iy“ò&åó÷Y¤ÛtçÜNS‘ ÿšÇëÒ{'Lš{4÷hî!=ÅyÝýu÷×Íyòå¯Y¤›×4®i\ÓX^Ÿï=¾÷øÞ_Ó+y›¾38fpŒX5I-éßÒƒdwY Jê7öd·m—îWQ?+çÛºÒc&ò¾êJÿ¼tmQÖ[¿9ɾ3]äàòBy¡¼ôWßäí2Â:ÀÀùþ*üUø«Íe6—Ù\¦ë¬®³ºÎ2d8Èpô½Cé›»/u¼Ôñ’t«^yuÊžÚøk¶œï7Kße‘¾Á&=aW×ó¬çYÏSú¿K£;éI‡¿ò¢œ›ñÚoµßj¿Uº]°4¦•FÑÒ;ÛîC»í>L®?¹þäú¯=¼öðšôAmáõóg.KÈœgKK·•žÝ(ý,ÒO×éH§#ŽH%çÜ.¸(Ž4U ~ä½¹% N¤¿|ðkz"=õYžûÁ÷ƒï³’«é©ÛŸ>úüé31Oq ýÅ2é19g¨BGäYÎ_”‘¾ÑÛ`UƒU VIÿ¾ÆÒ=K¤ÿÚ)ìíë!ïX é/Ô/iÀÀ&o\>uùÔåSò¾Ö©“S'§Nêô°¯¨¼¹¥ =,ØZñŽf¡+/”Ê76jlÔØH¶Ú£ýGûöÿõ’¾Û-ÛŸIæ“Ì'™3Å¿£Õ•ô—Ìd+ßÿbÿ‹ý/R€¼#&P²Ü70”¾sÃ×â‰ñE‹ôZy÷+ç Á¿²Wò~Å$çVÕÜ;P®LÇLÇLÇZ5kÕ¬USvÅ.ØÓ Š``€ží*Ý87çe¾Ý|»ùö‚ýYòÞÏã‘€‹ÇŽ3gÈÞ)é)ÅÒ“¿}¯$º]‰®ÅJ‹•+eûv1òbäÅHî(—t5–]¥[9´rhå Ýa‚*ä00ÀHOÞ•¼IÏLUü§¼×{¯÷^O3P3P3Pö§HÏ M_•¾*}w¤x".*R¥K=&³²wjÎæ9›çlVî]»v!íBšl߆ 2`ÈF(WÎÕ8'___Vi€ŸEL ð«6­Ú´j“¼àmXÃa ‡5Täaœô]@»X»X»Xy?eì…±Æ^à^gÀEÅÁôƒéÓåÝ)}}}%ßµòBy¡|ë­¶˜³oU.W¹\år|…ø ñ¸ðëIW`éjœs}nÓªM«6­x÷ € €~ üUø«ðW¹ÇoSÿšú×Ô¿J$”Hø‰ÑÅ6ŽmÛøßÎÿvþ·³¼ï¬ñ›Æo¿=údè“¡D}ŰêK¹œr9å²i¼i¼i¼ì=²2´2´2TÞÞ+u¯Ô½R²ý\qvÅÙgWðë­Ü¿rÿÊý²+ó½”{)÷RX™ò‡˜@®…Í6_Ø<÷®VÍZ5kÕ”þ÷Úwjß©ýéó§ÏŸ>g Μ5ø›ó7çoί=¼öðÚü~óûÍï§WA¯‚^…Ü¿çÌ;3ï̼CýA¬ ¤Û;ûÎ÷ï;?zHôè!i;Òv¤íxÚóiϧ=»ë6®Û8y÷èÒëK¯/½Vµû5*lTب°œý¬Ñ½F÷ÝWð+ÅÕŒ«W3ç ,5æî˜»cîREÈ%=·â/d]ú†uä‡É“Æ€X|¨ø¡â‡ŸžËæÛÍ·›oWÍ­;¥¿˜"Ûgî8üÒU7ç:\Ó¸¦qM㨠Q¢&ðw=€"€ €þCÎ8¶ðHÏ–n'Ë#?H«‚Ÿ €ëyÖó¬çÚ#´GhU¾S'6œØpbCΞW]]uuÕÕŒ.(lÒˆ·šs5çjÿç×qNN99åäÖaÅü鿌[·6n­xèÛz`ë­J7‰•¾)È#?ÈŽ7`åÊ{lRÞ¤¼Iù ÷ ÷ ÷¢rÆ/¿tüÒœŸbÎæ9›çlæ¾@á™}`öÙr®½ÆL3a •((ÀÀ?M¢+Ñ•èJÿ%='Xz¨á ÃA†ƒ¤g¹U~Xùaå‡Ç Žk9»åì–³û_ì±ÿÅ-Q[¢¶D| øð…й[œ™ÛE}~ é3žÍx6ã™4âÕÞ©½S{gù ç6œÛ»\ïr½ËúvèÛ¡oٖٖٖEkFKO8–ö¹M«6­Ú´jÿ¢ý‹ö/X— 0$†'†'†ç\i¥ä\©€â€ € ïkÅm¦S T005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005Aü?¼ó|ù(éz¤¤ËWI×c%]O~ùõTI—Ÿ’®gJºü•t=WÒõBIW€’®—Jº•t½úåW’®`%]¯•t…(éz£¤ë­’®P%]ï”t…)éz¯¤ëƒ’®¿üú¤¤+\I×g%]_”tE(éŠTÒõUI×7%]QJº¢•tÅ(éú®¤+ö—_qJºâ•t%(éJTÒ•¤¤+YIWŠ’®T%]iJºÒ•te(éÊTÒ•¥¤Kô˯l%]b%]%]‚r®‡%”tý¦¤ëw%]% ë"µE jBm`)n0€âCmà˜^1½bz=xXh—·’.Î$æ4bN#VýÓˆ‹Ï9ÄÅçââsöð+%]Åçìáâsêpñ9o¸øœ4ÌÃêwº°²Î.>§ s®0' s–0§sа²N.>çsr0gsZ0çsN°²Î æ„`ÎVùSc&ÄLˆ™ ¶o 0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A 5/ŽÇ‹½c¼c¼c¼wyïòÞõµ××^_{Qê!Ý6Ý6ÝÖÇÊÇÊÇÊ»£wGïŽï˾/û¾,•€â‰EŒÄBb!±)R.¤Ü^›½6{mìZÚµ´kY±€t ïÞ5|{ðöàíÁcÇŽÍÍÍ ò~‘gÂ3áÙ»©ï¦¾›zxîṇçtè8б V¹vcÚi7f“ù&óMæþ.þ.þ.¥2Je”¢ð €¡ÚF £…Ñ<ðxÀXͱšc5+*É äAɃ’ï—¾_ú~iq q 1s@yaöÂì…Ù”€)S”µÊõœÚsjÏ©7ÚÜhs£M¦U¦U¦÷Èìs¶‡%–|X’Ê@¹± r¶&lMغ}âö‰Û'VTak\׸®qY³2f%w @Þ¥|Kù–òíà‘ƒGQåUn¡ÎB…:"D<ல€¡š€¡’Ö&­MZ»ªÅª«Z(Wô_Ó0¾Öý•É–ý}?~²K=3íëÝzUnaë•Þ§—E»û¶}¦Xô¿1¤×¼kÝÝ»|6[»Ö¬Í:C÷Áó }ô>jîÔQñ]þ~îÜà¹Ásƒc b b ¸›d¥—I/“^f›Ï6Ÿm>Ьr½ŽÛÔœ¼Ì}ÂÒF]ÞÛôðµ®[”÷:ä&X4¹x¯…ã͉;ê´xtêðšß̲7Œ›®o4jøžÕõ³ª{TUiNþ~®£»£»£{äÛÈ·‘o¹›€0T0”FrDrDrĽœ{9÷r?ý^Ú[‹¤ö¿Ûj àïhß©µ 8:vêTPí‹öö‡[/\ùزS£Ï?Û7·ênÕݪgÛgÛgÛs—bí¥ðRxyÙå²Ëe—Ÿ]IfîvÃà‘÷ûý½[Öß}ògLJ‚ðôi§NÕižjaéºiü £àê·«N¨äœ÷¾­k¿®ýºö±±±ÜdgÀPMÀP‚ð™á3ÃgZ̳˜g1//aÃÄ*¦©uÏ”dù¥`ƒÞ¼·† µ±Šœ³ …kýÉyé³þCý‡úC"C"C"¹ã@q}&úLô™é=Ò{¤çeÅzÍ6P¯ð±þ­ 6èÍ{ûmÅu§¶ËMèШFÞÃ`ÿ’þ%ýùç,Š)`¨&`üR—–_Z~iy^BéÛ·±wGíkg ¬ÐW^›ä2fTû–ÛFØô7NÍËg9ìwØï°w(îùÞó½ç›§­ãG¼Pÿð·n×­ÚÆ(+ô•צ­z8ªCíC –ì0 ÉËgÙrhË¡-‡„6B¡ cÅ0T0 Ä^b/±_4}ÑôEÓsÆÿk’X·ä÷M£ŒlÂU-ô•×&ûŽy×~™ó@óŽõßæþé&ìš°kÂ.QQQF VÞ ï„w[om½µõVîëÀ€¡5j%} ½²©m]U }åµ™¾>q>¬é;9ÑpvŸQ?£~FiÖiÖiÖ ÀPMÀ(DY¥²Je•ä1ÈcG^¿=-•ÐW^ØbàMËúš5ÆT|/ï“¶íÙ¶gÛž)SS¦¦Le„E8Qœ(NœÖmZ·iÝr_ån¾Ü1£Å‡¢úÊkÃ*]˜c5ÊH»žDk¬¼OZ¯F½õjÄVŽ­[™õF ÕDŒB‘i“i“iÓ¥l—²]ÊÊ -7œ w29yLlû E=úÍÙfF9Ôë9ùaÓ~õä¾-g4ÏhžÑ¼¤ì¤ì¤lF P‰ç‹ç‹ç<;òìȳòfz»æÞ:«¾ß¿uÇ&¶¨G¿9[É?O:u ^ºÅñDÃøÜcoéYÈŒ¨+`¨&`°ìÁÙƒ³÷ëÖ#L^$°1ÕÚÎè–0ÑѬS=uŠ~eÛC‡;u4I‘WÓ?Lÿ0ý#½GzôŒ È°¬«ñkƯ¿FÞìžç6Ú©Amq·Çg;žT§èW¶½t`SÛfOäÕ¡ÒÕJW+]MÐNÐNÐfà@ýC5£àD QB”Ó#§GNä…î»»„™­RïÐW¶½>³WÝäÕÄîšÝ5»kâ$q’8‰A¨¾Wl\±Qތޞ8÷EãÞêúʶ¾‹o)÷üãf£šj6*óhæÑÌ£Œ¨`¨&`·n3ÜfÈ Î8vëÚttq‹~s¶·?ô~lÞ_^}–/3^fÌ(TÙù¾çûžï+o_§±¨¸E¿9Ûg]Öl ¯>ŽK—8.$‚D0– €¡š€Qž½~öúÙkyý÷›t›çè7g{ñŒ­U³mòju«ë­®·º2¢UóÎû÷;oy3wu­É% MŠsô›³½/ì­há"wˆjîÕÜ«1¢ €¡š€¡Ô Ô Ô yúg=l_¿¡¯l»±ue£òêö]ò]ò7ä• ŠÅŠbkW©]¥vÙÙ:øE·õz)ÂŒ§C;ýæl:/obºKÞ*÷i§ Ÿ&0ºPÔ”+箜»rNZÕî+ÝWºÇw‰ïß…Êä0â¬í¬í¬-»ÀM«~HËYdáp¸£q¯l+ /îTÊÖÉ`­®‡lõ†Ä ‰ÇèTë8×q®ã䙩X¶FÜ+¯ulÙ?°nsÙºµŽiÓ:Fh#´Ú0ÆPt+NÜGÜGÜGÞ3XÂàü!F>½>÷úÜësrßî2úݺ'Aoîí÷­£ŒmÂåÕÐç¾Ï}ŸûŒ4@Y"ŽF8*o†j¸µ¬EÄ›{›:ôsûòjx)üRø¥pFŠ.`Åå|÷7w„ÁyGŒŸ÷]ø.|·þÃúë?d§ßžÀ5š%ÜÍ{{ÉÖv^³k²•Ô©­S[§¶ø¬ø¬ø,ƒøõ†‡*;7—.vtkC¸›÷ÖûûþÁ-ëËûG[ÆÈŒ‘#o(Š€' t¥ánÅ<# Î0~ÚS˧–O-e'[å‰ç5þήîÖq,±îO´NŽfêYt¨õWµz²U½êpÕ᪣ø•B£B£B£änûø ¸}±î϶ƒtµÑÛ&[σŽ:2êP,Âà‚BŒŸf]Ϻžõ¢J¯Êv"‹ ºùk ^³üAU«W¯^½zuI¨$TÊØ~ #F$ÈÎÇÓ±kK6íL”›¿6¼©ç|ëuòþ‰–å”å”åÄØ@ÑB\xƒAŒŸÖ+¬WX/Ùé¤ï©u¸òßBCÇj´ˆri;U¯kR£“l…ýŒýŒýŒ@a‹)S2¦¤¼:ˆºúÖèØ‚(W‘Ö¡m¿.uü`·ƒsWÏ]=Ç@ÑBükÿ,`üg'g'g§<¸ßÙszóhâ[ÅÛ§1JµZ*[áAöƒìÙ3¶Ck‡Ö-Ù9x fñ“-Ä·Š·ï¾^`5P¶Â̓š5b h!þõƒó‚y"*/*/*/oÚd®r(Ñáñ­â­Äy|HÇ8yuNîÜ;¹7£(-„B y³/±Á½&í¾ßTkhØ^;F¶Î_…¯ÂWÆ"Š `å" –‡yò¼ÖóZÏkÉNçýæÃëG©~°ºí¦ÍœÆe¥}í1än‘*÷vÇævgÊVûÆ„nL`4…ácã?6þÁû÷†]ÛëmSµÕ+bO3 «qû>­s ‰nƒ!Ú•«®Öº ‘Õ`UfUvöhi­¾¾ý4+#½ôUÞ†þUµþ_(±¡Y³¦²Õ>\þpùÃå(*€UapNÀÈ“Eö‹ìÙËNŒ@£×,ë©t\Þ±B§Š–]õVWÿ?o0«rŸ?Û»nýD¶ÚÃv Û1l£( {Gíµw”ì¼»;wwOóK*–Z¡SÅi1ÿ20ªø“ž™-Ûê©êÀñ!wë·;(ÛÏVz­ôZé1PT«&Â``ü—t!]H׊ӊÓúÁÖÄYw¬©ÊÑïò[­—5š$Ûs•­9Vï¤%oïïïe`Ë*É*É*IvÆ%Å{mmßGBÓMZ3f=ÈÙ7ãÖáZ'ÜF.èÚ¤·¿þQŸÖ¿Kß ^;jŠ·¡‡®eõášesþù„Ä{¥Ú}PØøLýVZ^²5O_˜¾0}!cªXõÏ0˜ÿ!¹orßä¾²C¿û{ƒþº®ªšFMYÂÆèä”®ÆfWg¶ªÑÐÕì£nm¹çéªþ¶Õ“šªçüƒ32·Ýþu;#((¢¶¢¶¢¶²s­^}½Í•_©BPš1×ûkWýÄšÿT®.í[sãeU·HÝÿ·¦ýÿ•ôÏùUòþ¤²Ú%¦»-—­|H™2!e™P}ÀEKñ ƒ €ñ‚6mÚ,;ÜÝJ·ŸÒÄRuâÒÃ!®›¶ÊûtUýØó·ºÍud{îµÎk×:F&PP"nD܈¸!;×XŒ¹Ð`±*¥×'mÛÖ¢_ξ]z½iR³×y ts~U¯–Ýt2T'~b|è|+]ÙÊŸà¢K½Ã``ü‡sËÎ-;·Lvˆ?mÒÿN+{Õ‰K_]ÔÝrÑæ2ÖW²dÛ¢‡MûwÕÙž»Žpá:‚‘ o/o/ïlD|¹ÒÃæU!(ÝÛnáý&·ó·™³Ÿõ‘­¶K¿JgpÕÈJûTç=à˜×·þ°¹&[ù™ƒfš9ˆ‘ ÕG¬Ô/ &ÆXž¶:¾­·êǨҶ(ÀÉsÆÜi?M¶ç£F'ŒN`då°Æaòsíõ÷3SÛX¨BPêỹaóòÆ ¸]×yê_CÔ»›÷7çÛÃMŒÊV­«:°h¬¯iGKÙÊ[‰­ÄVbF&T°úQ0˜ÿa˜Û0·an²C9­ßØ´ € ¯Wß·ã>Ùž[$[$[$32‚²¸çâž‹{Êε˜“7ÃmΩΆɲ;çåOö»×Ñ¿ÖÿÞžñlX5ƒÝ*tð×§×:µ•¿Q? ê€Õ[Ñ ƒ €ñ¬c¬c¬cd‡o¶ïø×bâ8¤SÙžk%i%i%12‚2&nLܘ8Ù¹–êýàiûtÕ €soÅFwt<2¿ßhq[ég©>¡jÃJ_®\™Ö¶†ªõ¶ÉÝoµ[ (".>ŠV\Bu¦Š¡¤c¹Nÿv«Û¬rªæŸŒ7à×Ëjó¨[‡Ì¢ýJOümÿÂb£ÎÿN5Ö:^Å\cýR»oš¨Ð»¿9ÚŽ»Z&ÕhÀx ®®œ»rîÊ9`Â"Ç–v[ÏV;£ò;Æð뉖ûvëØ^õCßÐç«´ µ°¬¿(gÿÍ·7ή*yfr´l«§ÿoÝSÅþÛ¦Y_Ñ}Éx ®²ÎfÍ:KŒ"€7€yPó¿’Uø à¬ÁFtVmš´É°b•Ë•çkØKû¬W¡Æ6ͳ›ËÌlb”•éès´Ããÿ·â©n€ÍÀÔ[1zXº:—ê_MSš¦4M‘¬œ¬¬3€«´ªÒªJ+F&WA]½®öºÚëªì\SÍ3€ßY°2kîa¼¬êi?55¯½H{\|Cƒ„Ä{¥Ú}ø«\ÑØ¶ZÞÀŒL.................Õ¿dŸkíücç;ÿ 2êw]wuÞÕyŽ¿;þîø{Þ£_éŸ/Fg£¨æ6Ìm˜›ìMë7öEmàÂkÅ•Ç÷í¸O¶çÉÉÉŒL  ,çâž²s-æäÍp›sª”~LòXlÝ®ÑøºgµJI{(ýïGëh¹BúgŠVô+|}z­S[yÿ0bd@õÉ{±Ê¨ip»Ò}¥ûJ÷¼‡¾Ò?ÿëCßœ€ñ–§-O[ž&;|¿aßÖ›¸ðÚä9cî´Ÿ&ÛóÑ £F'02‚rXã°Æa Ù¹öúû™©m,T'.µìjvªzyiß:xµì¦“Wó¶;Ë"úæhEc}M;ZÊVÞJl%¶32 ú€ÕOÑ }s"Æ8·ìܲsËd‡òÓ&ýï´²'.¼6lÚ¿ë¬æÈöÜu„ë׌L  x{y{y{Éε˕¶6¨ AéÚ»Ú™‘öJã·Š~;½×»ØÍê@Ñ~¥mÌë[Ø\“­üÌA3ÍÄÈ€ê#VêúæDŒÿ´9hsÐfÙaíVºý”&–À…×zþÖC·¹ŽlϽÖy­óZÇÈ JĈ7dçÚ‹1,V… tì…¾åë8J{¥ŸXóŸÊÕÿwšÈÆyšÏþl«:ðãCç[éÊVþäÉ“'Oždd@õ]êúæDŒÿÜ7¹or_Ù!Þý½A]WàÂk'4TÏù›ooÿºýëvF&PPDmEmE?8‰¶^}½Í•_©BPÚVÜb NÍŠDuà%¦»-—íaH™2!e™P}ÀE‹z‡¾9㿤 éBºVœVœVœì Ïúà°¸cMàn9Vï¤%o¡ïïïe`Ë*É*É*IvÆ%Å{mmßG¹A©^…Û4Ϫ_l|¦~+­l¾¾0}aúBÆ$T°ê+>¡oNÀÈ“Eö‹ìÙËN€@£×,ë•÷€s†ÁªÜÃ϶î[?‘·è,«¾¬ú²ê¯_¿6OOOf|ŠÛ;j悔£dgÜݹ»{š_*ºçìªfr·~»ƒòV9ç&ÎMœ›L ˜0I" …0> š€USñ }s"Fž<¯õ¼ÖóZ?xL¿ß|xý¨¢«~»cs;ƒÆ3ó¾$Í;1ïļ/»¾ìú²kvµìjÙÕ±ÀÏúØøcãeç× Ã®íõ¶Ùl{¡Ä†fÍšæ}•›:aê„©üÌýÌý̳L³L³L±PÀªƒÐ7'`䉨¼¨¼¨¼¼é‘¹Ê¡D‡·Š·çñ!ãßâuZì´Øi±Ïj=«õ¬V–K–K– cø-„B ys*±Á½&í¾ÜTkhØ^;F‘UÎa¨ÃP‡¡>×}®û\ÏhŸÑ>£=C¿°rúÊCŒŸàìäìäì$;U®îì9½y4ñ­âíÓ˜¥Z-•­pÃí ·7Ü®HX2þûøïã¿?:ûè죳{3öfpŠ0ð;´vhíøÁ Üb0ÙBp«xûîë…Ve+\3²fdÍHEV¹a ûkØ_÷Rï¥ÞKM+ŸV>­<ã…ø×#ôÍ `ü„°^a½ÂzÉN}O­Ã•ÿ:Vë¤Eˆ«HÛ©z]“d+ìgìgìgœ9-sZæ´'<ùãÉN¾N¾N¾Š„%à ?6ü˜WªWªWjÚŒ´i3á@Lɘ’1%åÍQWß[â*Ò:´íץ΃ü"ѹ«ç®žÍÍÍÑêE«­æÔŸSN}EV¹~SúMé7åFôèÑÉ[“·&oe„ `ÿ„¾?‹?ͺžu=ëz²É«²È¢!nþÚ@Ã×,PÕêÕ«W¯^]* •„ÊÞ QsQsQó烞z>hÖ©Y§fR$, =@{€öÍ´›i7ÓRJ¦”Lá¯(S#F$ŒH#§c×–lÚ™7mxSÏùÖëä­?YNYNYN²÷"û{ö÷ìïA­ƒZµ^teÑ•EWYåºmì¶±ÛFÏ]ž»pnÿA^ /…_ ¿^(7o§°SØîîîºóöÎÛ;o×Ò¬¥YK3«œa;Ãv†ídÈ:ù!òCä!IH’˜# VÜ•sWÎ]9Gè[°€¡gmgmgmÙIh4­ú!-g‘…ÃáŽf½²­$l¼¸S)['ƒµº²Õ7$nHÜ/½‘K„%Â’OáŸÂ?…cÚŽiºFºFºFù KŒ«W7®~Èüù!ó¯K¾.ùºDÈ2„ æ Š"×q®ã\ÇÉݺÂËöÏz嵎-ûÖm.[·Ö1­cZÇm„6B›_t#c…X!6rnäÜȹL˜0m¤ÝH»‘vþV9½Nzô:íÚ°kî Ÿÿüûçß…£ÂQá(ó ¸!Vœ¸¸¸¡oÁ"†BRƒRƒRƒäMËY›Ç×/GÜ+Ûnìc]Ùh§¼º}—|—|—(ùÖ~> Ÿ#^E¼Šxµ/q_â¾Ä– ,Xæ/,©Ý¨v£ÚvïÞüùüçóŸÏ W„+ÂfTŸ(V+Š­]¥v•ÚUdÇöàÝÖë¥3žíd@Ü›³=ê¼¼‰é.¹»DLø4áÓU¸¿ÑÚÑÚÑÚLJ~|x³WÍ^5{•¿U®JÉ*%«”Üüfó›ÍoÞ‡½{&”Ê å™A긠ä|˜ÐWqÀ(Ï^?{ýìµ¼ÇâûM:ˆMŒ }¥íÅ3¶VͶɫխ®·ºÞêªÊ÷:Ê%Ê%Êå˜á1Ãc†MK7-Ý´tþ­d­d­ä­·6ÞÚøÃÎ;?ìŒcÁ˜ÙÕôÎû÷;oyãyu­É% M}¥í}aoE yµr¯æ^ͽš*ßëØ)±Sb§œít¶ÓÙNÖÝ­»[wWäÜôÕVXýáíô·ÓßN—˜IÌ$fÌ&uB ÕDŒã6Ãm†Û yÁÏ8vëÚttqŽ~oèýؼ¿¼ú,3^f¼¬HÆŸßÿ‡?SóLÍ35Û¬n³ºÍjEÂ’µm×¶]Û6Ô"Ô"ÔB2T2T2”™Õq¾ïù¾çûʽ»¢æ×i,*ÎÑï³®Gk¶ WÇ%ŽK—A"HŠÖ}OXœ°8a±G¤G¤Gd×y]çu§È*·xÿâý‹÷Ý ºtO\Q\Q\‘™PtC5£àD QB”Ó#§GNä¾ûµ»K˜Ùªâý^ŸÙ«n‹òjbwÍîšÝ5q’8Iœ¤!^ˆâ…KO.=¹ô¤óƒÎ:?P$,YZviÙ¥eƒ·o Þ*î$î$îÄTƒr­Ø¸bãŠòFìöĹ/÷.nѯïâƒÃ[Þ’W“f£šj6*óhæÑL59%7¹[r·än7ÚÞh{£mßÑ}G÷­È*7Wk®Ö\­^CK-=´´"«Ü”ÎS:OéütõÓÕOWg¦e¦e¦1íT0T0 E¦M¦M¦M—²]Êv)+ï÷ å†ôN&'‰m¿ABßÌ(‡z"'?lÚ¯ÞlyŸÝhžÑ<£yIÙIÙIÙÅs„¤ŽI“:ænÏ»=ïö2nȸ!ã K¦úMõ›êç7Íošß´¬Y²:0QØÄóÅóÅóGžyväYy#³Ý soUßïߺc«N¡¯äŸ':/Ýâx¢a|îs3úLô™è3Ås„dü•ñWÆ_>5}júÔ7b܈q#Y寙Ž3gêó›Ïo>¿¥ éB:S@%C5£e•Ê*•UjÇ A¹?ÚöÕë·§åñ¢ý¶xÓ²¾æA1ßËû¤m{¶íÙ¶gÊÔ”©)S!9¥ŸM?›~ÖÛÀÛÀÛ`̳1ÏÆû}öû ÒA¥ƒJ/¼hð¢ÁŠ„%ݲ»ewËöüàùÁóCB|B|B<FþHϾí‘Þ#½Gz^ÆÞÐk¶ú{ýƒõom¨¬Ð÷ÛŠëNm3– šÐ¡Q¼Ïÿ’þ%ýùçl!’XH,$o×¼]óvÍš?×ü¹æOEV9k-k-k­³uÏÖ=[7vXì°ØaT@ÀPMÀPÉÉÉ÷rîåÜËýì#ì…o-’¼jÚÿn«‚¿£}§Ö÷¾ho¸õBé[È?Û7·ênÕݪgÛgÛgÛs—•0®ÊIÊIʽ¹ÿæþ›û«Ž¯:¾ê¸"aIÛ×m_·}}®Û¹nçºÅFÅFÅFQaü„—ÂKáåe—Ë.—]~vìÍÜ=ì†Á#ï÷û{·¬+¾ûäÏŽ 6î Ò<ÕÂÒuÓøFÁÕoWPÉ9ï}[×~]ûuí3b3b3b¹ÉJPI¨$TzŸü>ù}ò–ß¶ü¶å·*mª´©Ò&«\³Í4;p¼õñÖÇ[G—Ž.]šä0T0TBÒÚ¤µIkWµXÕbU EâºþkÆ×º¿2Ù²£ïÇOv©g¦}½[¯Ê-l½Òûô²hwß¶Ï‹þ7†ôš×b­»{—ÏfkךµYgè>x¾¡ÞGÍ#*¾ËßÏ<7xnp¬A¬A¬wSÕH’$I’¤÷ï-Þ[l:½éô¦ÓšÝ5»kvÏß½náÔ©…Ó‰I'&˜½7zoô^*Œ¼H/“^&½Ì6Ÿm>Û|Yåz· ¨9y™û„¥=º¼·éák-\¶(ïuÈM°hrÿð_ Ç›wÔiñèÔá5¿™eo7]ßhÔð!=«ëgU÷¨:ªÒœüý\GwGwG÷È·‘o#ßr7UÎqá¸pü³Ög­ÏZ»qûÄí+ª°5®k\׸ƬŒY³’»VÄl¶ [ÃÂÂv:îtÜéXswÍÝ5wço$^7¼nxý`·ƒÝvûúç×?¿þ)¤)B e†<)ßR¾¥|;xäà‘ƒGTy•[¨³Pg¡Năˆ¸kEL²,$G&E&E&¬u°ÖÁZ†Î†Î†Îù 5Ck†Ö ݹcçŽ;Â…/ _$l¶ Û)30T0TÛha´0úñ€Ç«9Vs¬¦²‚AɃ’%ß/}¿ôýÒââbæŽz‰b„˜È^‘½"{íÿ´ÿÓþO 6<Øð`þF‹Þ=½{z÷v}Üõq×ÇÏ?7þÜXpÜwÊ y^˜½0{a6%`JÀ”e­r=§öœÚsê67ÚÜh“i•i•iÅ}Q?Ñ«£WG¯>ÑáD‡Z·0naœ¿Ñ¢¹Is“æ¦Mo6½Ùôæ½Ý{»÷v’4Iš$ €â†ª‰ EŒÄBb!±)R.¤Ü^›½6{mìZÚµ´kYPH×ð®á]÷oÞ86plàXÑ Ñ Ñ *_á}Â{Ïëž×=¯wóêæÕÍK‘UnÑúEë­ªT;¨vvdvdv$ 0($axÂð„á<xèZ®k¹®å Kg-ÎZœ”””*®)®)®I…(WòäÉnþuó¯›õ;Øï`¿ƒŠ¬r³E³E³E/ô^è½Ðc  0@K6J6J6º.º.º.ê“Þ'½Oº"aÉÜYsgÍõBx!¼DWEWEW©0åJ«žV=­º—¦—¦—æ°–ÃZSè †Éu&×™\çIÈ“'!™72odޠ€"€ Ð¥z¤z¤zÜÓ¸§qOãß½ÿîýw¯"aÉ”“SNN9ùôÁÓOd•Í*›Åf¿”,£GFŒ>Á>Á>ÁëÖ9¬Sd•l©±¥¼»xwñî’~#ýF:‘0ð€@ Ò“Ò“Ò“¼?zôþ86klÖØ,EÂ’q;Æí·ÃÇÚÇÚÇ:C+C+C‹ P®¬VY­²Zùõñëã×gêΩ;§îTd•²Èþ!ûïN¿;ýîôÔ©3RÙ8‹TBfLfLfÌÓñOÇ??EcŠÆ EÂ’¡m†¶ÚæÞ¬{³îÍJ M M ¥Â”KôQôQô1`UÀª€UÎCœ‡8Qd•³K²K²KºÞÿzÿëý“"’"’"¨0 E *J´O´O´ïÅÉ'_œœ>'|N¸"aIß}}÷õÝwcÌ17Æ$J”<ˆ P.±µØZl<+xVð¬%o–¼YòF‘U®³ÐYè,\J¼”x)1A#A#Aƒ  x"€"Cü§øOñŸAG‚ŽYì´Øi±“"aI×+]¯t½âùç?žÿ$lIØ’°… P.‰½Ä^bªªª»¶âÚŠkYä*¶ñnãÝÆûLç3Ïtþžú=õ{*@q@ E˜ÄXb,1~kÿÖþ­ýêó«Ï¯>¯HXb½Úzµõ곓ÏN>;9viìÒØ¥T€’5 ?¸|pùವÄÖ[Kh×:¯•ϵ®iǦ›v<ÖÿXÿcý£\£\£\)0Ô0¨—²BY¡ìû‡ï¾¸ùôæÓ›OW¾[ùnå»ù Kšk6×l®y|Íñ5Ç×DEEQ`Jæ)x žŸw}Þõy×î“»Oî>©ÿMÿ›þ·ü­r 6XØ`á~Ýýºûu#¢#¢#¢…!BàDaaÀ î ‡„CáÑáÑáÑ»Fì±k„^)½Rz¥ò–4Øh`£†z`hä¦ÈM‘›„8!Nˆ£Ì”&CÈ2¾Nü:ñëÄCúûÐßFoÞ½Íß*§;EwŠî”ûwìß±ÿ“è“è“HX.,–SfÀPü$ ‰BbäãÈÇ‘Wd-²YSa6`€B’—%/K^vÃû†÷ ï~Íû5ï×\‘°dÎà9ƒç ~1èÅ ƒD+D+D+¨0åJ›66m¬×K¯—^/‡O>iø$EV9'±“ØIüÄà‰ÁƒÌ…™ 3Ra,`@K+‘V"­Ä½—÷^Þ{94`hÀÐEÂ’É+&¯˜¼â©æSͧš™þ™þ™þT€relÎØœ±ùÑúGë­eü•ñWYåFüpãÃ7¦ÏHŸ‘>ƒ @À€B—Ñ"£EF Ÿ]>»|v988(–Œ0vÂØ Þ«¼Wy¯JHH Â”+kfÖ̬™~‚Ÿà'L»6íÚ´kЬrƒ; v¸sþÎù;çSë¤ÖI­C…wÀ%È2È2È2ðÓöÓöÓžÚ|jó© mýo™Ëü[æ®ç]Ï»ž©R7¤n Â”+»bvÅìŠ/ _¾4œ7sÞÌy3Yåz_ê}©÷¥kk®­¹¶&iCÒ†$V9ÈE P ¢ç¢ç¢ç½zôš›=7{n¶"aIŸa}†õvÝíºÛu·ä’É%“KRaÊ%v;ˆ^k¼Öx­±ôÛÒoK¿)²ÊuºÒéJ§+—j\ªq©Füùøóñç©0¤€*Jl*6›· nÜvÉÂ% —,T$,é2¹Ëä.“=Zz´ôh™`š`š`J…(—d¶d¶dvèùÐó¡ç×i­ÓZ§¥È*g9Ãr†åŒÓãO?=þûºï뾯£ÂÅ0 Èôôôxó6æmÌš«k®®¹ªHXbenene~fË™-g¶ÄV‹­[ P2+ÁJ°úXæc™e¶Š·Š·Š«êWÕ¯ªŸ¿UÎ4Ê4Ê4êè䣓NŽÒ‹Ò‹Ò£ÀÅ0 (Óôý½>ôúÐkË©-§¶œÒ2Ó2Ó2Ë_XÒôFÓMo;rìȱ#Q7¢nDÝ À”ìžpO¸÷¥ê—ª_ªºíwÛï¶¿Nï:½ëôÎß*W¿Zýjõ«í3Þg¼Ï8brÄäˆÉÂ;áðŽ2¨`€z9/œÎvúìôÙi÷€ÝvП¬?YrþÂ’© R¤îŸ¼òþÉ‘•#+GV¾ _…¯”€Òˆ‘ úúùë篟¥J?”Þ¸eã–[æo•«ñ{ßkü¾ýØöcÛ}šõiÖ§Y a†0ƒ2]Àu—&¤ i_Û}m÷µÝÁ[o¼e4Úh´Ñèü…%ºÑºÑºÑ;’v$íH ¯^?¼¾°VX+¬¥Ì”+f\̸˜q'Ëž,{²¬E¨E¨Eh>÷Ç?ZñhÅ£‚7okÖ"¬…äää(*€ÅTôËè—Ñ/O„ž=j®a®a®‘¿¬¤Ò®J»*íÚÔdS“MMÂRÂRÂR$‘’HI$ \qGâŽÄ9|>ø|pûí[´o¡È¹é+¼Vx­ð ¹r!䂨Oì'ö£Âª‰€ÿ‰Ó‰Ó‰Ó9çqÎ㜇Í\›¹6s KV¬2XeðfÞ›yoæ‰Eb‘XD…(Wâ®Ä]‰»® ¹2äÊÝ{tïÑ]‘UnᘅcŽ   ÏÞ˜½1{#PÀÈ•X#±FbË.w¸Ü¡ûîî»»ïV$,q v v ~uýÕõW׳g?Î~L…(WJ—”.)]ní¾µûÖnûªöUí«*²ÊÍôšé5ÓËÿ¹ÿsÿ碲¢²¢²Tà×#à'$‡$‡$‡ÜÜxsãÍý§÷ŸÞº"aÉl«ÙV³­ž_|~ñùE‘ÈNdG…(WÚ…´ iîo¹¿åþ–Fq@‘Unâ뉯'¾~<óñÌÇ33­2­2­¨0@a#@!i¶i¶i¶^[½¶zm^zxéᥠK&œ4rÒÈ'£žŒz2*sKæ–Ì-T€reddø¶ómçÛÎñƒãÇЬr£Ž:>êøƒÀÓÒÒ¨0@Á" €e8g8g8?êõ¨×£^ãíÆÛ·S$,c9ÆrŒåÃgŸ=|–¾.}]ú:* @¹²ÎdÉ:óì̳3ÏÎL3ýÍô7Ьrƒš j2¨ÉíèÛÑ·£SSS©0€"€(tY#²Fdðóöóöóžf?Í~š½"aÉàƒ_ ~q'ñNâÄT«T«T¶T dÙm³Ûf·}ùüåó—Ï篛¿nþ:EV¹^ÓzMë5íêÍ«7¯ÞLjšÔ4©)È;`” »Dv‰ì)))óªÌ«2¯Š"a‰]M»šv5¯ù_ó¿æŸt:étÒi* @¹ÄÄÄ^Ÿ~}úõéeéËÒ—¥+²ÊuœØqblj;]ìt±S|øñ=¨0€<À¨ñ ñ ñ àwÁï‚ß-ݰtÃÒ Š„%ëu®×¹Þ¥1—Æ\ÿ"þEü * @¹$®W‰ë;›w6ïlÖ×X_c} EV¹Öz­õZëZsjÍ©5ßõ¾ë}×£ÂRÀ¨(‰“ÄIâêêê²öÎÚ;kï(–XFXFXFœö<íyÚóûùï翟§Â”¬¯ÐWèûqóÇÍ7»f¹f¹fUÛRmKµ-ù[åL6˜l0Ùpdå‘•GV~;ýíô7öBÅ0E‡¹`.˜xóá͇7[Ý·ºou×>ª}Tûhþ³áfÃ͆½uôÖÑ[Q£:Gu¦À”ÌOðü¾ìú²ëË®=[ölÙ³¥îµº×ê^Ëß*WÏ£žG=½­÷¶ÞÛúKâ—Ä/‰B (Rf Þ€(Ên ·„[Ÿc?Ç~ŽuëîÖÝ­{í×µ_×~¿°¤þ–ú[êoÙç²ÏeŸKÄ®ˆ]»„Âáe 4A"H¾ ú6èÛ Ãá‡Ã‡7ÙÕdW“]ù[媻Vw­îºíÔ¶SÛN}Œÿÿ1^)ŒFRf N€P/YB–õõÆ×_or?ä~ÈÝøñãù Kj,¬±°ÆÂí™Û3·g~:üéð§Ã‚³à,8SfÊx2ædÌɘV¦­L[™*²IþúÀõëßwüÝqÉ É É * Š.`Š…››÷;îwÜïXŒ·o1>1‰FmÚµ7o4Þh6.l\Ø8‰ŸÄOâG…(W|™ø2ñe.œ»pî¹Ë:,ë°L‘Hx¹çrÏåž!Ú!Ú!Úââb"aPdPLÅ-Ž[·øü†óÎohçÓΧ"aÉJ•:+uB>‡|ù,‡ˆC¨0åJLILIL¹Úèj£«znì¹±çFEV¹½ôZÐ+Ð&Ð&Ð&{döÈl6Ž*ŠüO¢s¢s¢ó•*Wª\©bff¦HX²ðþÂû ↑öªÚ«jÙû²÷eï£Â”+Å-Å-ÅíöˆÛ#nØw`ß}Yåf™qdÆÿºþuýëfffRa  €€\)†)†)†·ÜpkÀ€sÎ 8§HX2«ö¬Ú³j?ÿóùŸÏÿÕÕՠ”+-3-3-óAÏ=ô02`d€"«Ü„ .L¸àëåëåë•!d(0ø i;Óv¦í¼owßî¾Ý‹#, KœZ;µvjýøÂã /döÍì›Ù— P®ÌJ™•2+ù¦ù¦ù¦MüsâŸÿTd•9{ä쑳h=Ðz •ö9ísÚg* 0PHÆÍŒ›7}Kû–ö-í8ßq¾ã|EÂ’ÑÿŒþgô?+=¬ô°Rz‡ôé¨0åÊúœõ9볿½¿½¿ýŒŒ32YåìSíSíSo×»]ïv½”¥)KS–RaP°€@ËÚµ;k÷³éϦ?›>}Îô9Óç(– Ú=h÷ ÝwŒïß1N‰K‰K‰£Â”+{röäìÉÓ§N[phÁ¡‡Yåz6îÙ¸gã+±Wb¯Ä&¾I|“ø† E€B—m’m’mòr×Ë]/wÍ7žo<ßX‘°¤WX¯°^a×~»ö۵ߒú$õIêC…(—ø’ø’øRHÇŽ!W”ZQjE)EV¹zô:è]˜|aò…ÉqQqQqQTä0Pñbñbñâ×s^Ïy=gÙÞe{—íU$,éÚ1´cèÅ7^Ü?9~rüd* @¹$$$Þ¼ x°AoƒÞ=EV¹–O[>mùô¤ûI÷“î111TÈC T‚dddÍ»Šï*¾«¸îẇë*–´ÞÚzkë­§‚N úÞá{‡ïœ% @ÙÆ ã„qŸ´?iÒÞ–º-u[ªN :%ò·Ê5iÒ¤I“&‡÷Þ{xï·ßZ|k!ˆ± ¦Ì€¨*[ÁV°ý8ê㨣\¹s=V­Jµ*Õªä/,1-iZÒ´ä‘WG^yõ-ð[à·@ @É‚…`!8B+B+Bkï²½Ëö.3¨iPÓ fþV¹º=êö¨ÛcO×=]÷tý2ýËô/Ó_ÁWð¥Ì7À èð|ß/“¾Lú2iõë=Öu­êZÕµÊ_Xb`d`d`´wÃÞ {7DèDèDèHÃÊ @¹¾ùóÿæäé‘§Gžš¤š¤š¤æo•«V·ZÝju]Ï»žw=ÿÑá£ÃG¡‡ÐCèA…PoÀ ( bAüÍô›é7Óî‡]»6Ño¢ßD?a‰N :¶ Û„m§Ÿj|ª!8‚e \ßÛ~oû½í)¿S~§üZ¯h½¢õ E6É_ç¿Îÿ;­wZï´$ë$ë$ë¨0ꄨ¡˜ó1çcΟ¥}zPþAùåGN9aäEÂ’‰•'VžXÙWì+ögVάœY™ P®L»L»L»Ç'Ÿ||Ò©‰S§&Ьr#:Œè0¢Ãý÷Þ˜æ–æ–æF…øõ€~BFvFvF¶ïußë¾×'ptÂQEÂ’‘a#ÃF†=ð`ÀƒiÙiÙiÙT€r‰ª‹ª‹ª?ÿíùoÏ›¥5Kk––"«Ü€›n¸ykØ­a·†¥4Ii’Ò„ PØ€’à¯ë¯ë¯;cçŒ3v*– >pøÀá·Çß{|ʾ”})û¨0åÊÞ“½'{Ï«J¯*½ª´ðÊÂ+ ¯(²ÊÙFÛFÛF_ѽ¢{E7qaâÂÄ…T€‚E PÀ²‡gÏØ*°U`«tXÐA‘°¤çžž{zî¹ÚôjÓ«M333¨0勃ÅÁ!a!a!a++®¬¸R‘E®b»ÀvíÏo?¿ýüö¸q+âVPaA PèÄÇÅÇÅÇC4B4B4–Ÿ\~rùIEÂ’›;lî°ùÂÕ W/\/_.¾ \’§’§’§a#ÂF„ØXgcu445454ó·ÊY̲˜e1Ëý‘û#÷G1c:Æt¤Âä0€HŽKŽKŽ¿;ôîлCë}×û®÷U$neÕʪ•ÕÉ”“)'SbBbBbB¨0%›+Ìæ~Ú÷iß§}Ûã·Ço¯1¹Æä“ó·Êºxèâ¡‹_ï~½ûõ®%d Y”YÀªa„0Bñ1êcÔǨm·Üv°úòêË«/Ï_XÒäx“ãMŽŽ9s8æÛ°oþ $‚DPfJóAø |ˆpppÝ7sßÌ}3ë/«¿¬þ²ü­rµ#jGÔŽpëïÖß­ÿç¤ÏIŸ“„ÛÂmá6e€@U Bà—˜/1_böší5ÛkVïX½cõŽå/,©ëS×§®Ïž={öìÙóeß—}_ö ~‚ŸàG™(WT»¨vQíŽzõ8êafgfgf—¿UNÛCÛCÛc륭—¶^úðþÃûï ÁB° Â€â† èAòíÄ·ßNYpdÁ‘&‹L™,Ê_XRí`µƒÕn+µ­Ô¶R·Üþq»ÐOè'ô£Ì”ëûéï§¿Ÿ–² ± ± Qd“üµ¾k}×ú†.]º\2I2I2‰ Ô0@‘÷]ç»ÎwS‹O->µ¸u¥Ö•ZWR$,Yo°Þ`½Á»Îï:¿ë,Ù&Ù&ÙF…(W¼_¼_¼ß¥!—†\Ò¹j窫*²Ê-ݵt×Ò]ÁŸƒ?¡ÂuB  †â»Æwïz±ÍÅ6ÛtÖqXÇaŠ„%Ë_þûòß__|}ñõEñ&ñ&ñ&* @¹’N$H:qÍçšÏ5; ; ; EV¹yzóôæéˆD¢ìß³Ïþ Š.`€b!É$É$ÉäªÇU«½ÆôÓkŒ"aÉüówÌßñ2èeÐË ìvÙí²ÛQaÊ•Ú:µujë;Qw¢îD ~8øáà‡Š¬rÓFM5m”ŸŸŸŸŸ_Ö¨¬QY£¨0 ¨ (¦R^¤¼Hyq;üvøíðAµÕT[‘°dú—é_¦yæñÌã™GÖ¹¬sYç¨0åJ_¾:}õCï‡Þ½Ç˜Œ1c¢È*7~èø¡ã‡>ðhÀ£ 2d, ÂÕD €ÿIo˜Þ0½áƒ§ž>x:Êm”Û(7EÂÇÇÇß®¾]}»f¼Êx•ñŠ #/D[D[D[¼L½L½L/”¼PòBÉcU$,qfÄ™gî﾿ûþî444*\ìŒÆc|›ø6ñm²äÙ’gKž&&&V,PC¼‡xñ>ÕéT§S"ÚD´‰hCá!¨—¨—¨×óSÏO=?5»é즳›*2öú/꿨ÿ¢›;n#94949” OÏž9Tã¾Å0’½>{}öúÀwïß-´pÐÂAŠ<¼î1°ÇÀ¯Œ¾2úÊèĽ‰{÷Rá¢%&>&>&~ÕâU‹W-®¨ÂÚ9´shçàÛÞ·½o{á‘ðHxĽƒ<âLq¦8óÍÌ73ßÌ\¥³Jg•Ž"cÏf¥ÍJ›•çnž»yîf\­¸Zqµ¨pÑ’››ë:Ãu†ë U^åÌ®˜]1»rG|G|G,é*é*éʽŠ`0ñññ““!'CN®¸²âÊ …Þnß¡}‡öÎ8ÿáü‡¸q'âNPaUÿ!þCü‡…[n]¸5wY+¹ÞC£êÚö eg\{¢ÇJ+³‹ Í÷µ¨¶*õÔy+«C‡ž>•¶–Î{Ë?ÜÓ¬ÍRí#5›|š9x‹CƒCýgöÕ=Û*³³Cþ~z£>ú4êóxÙãe—q7‘’I„$",.,.,nS½Mõ6Õ«´¦ÒšJkò7Ík™×2¯uâˉ/'¾DGGSaU“˜˜¸Þe½Ëz—üÝeÝõÛV^hí6úïZQF¬}Vñï#qF¶“Z_ºÔ¤æÒ¥¯_·h!m»½ZÞÜuÂÔ³/›ŒÐÛó²Ñ½^U]´ëi6;Õ+¥Fûüýtm{m{mû»5ïÖ¼[“» À(t’û’û’ûa&a&a&ü6øm𫸭ⶊÛò÷ Û"Ê"Ê"ê¤æIÍ“š1b&ÄL ÂJ¸§Ã%Ã%à ;6ìØ°¼ß»Jµ¿W7kè6bËœð–G]õ¯WÍîlkâ;§éöJ5‡¶©ÓÍ,ï=ìÓ­O·>Ý"wFîŒÜÉ]ÆOX#¬Ö„ׯ^{Ç·ßv|Ó Õ Õ Íß*g4ÍhšÑ´ƒÞ½zíüµó×ÎBš&¤Qæ_*H‚<þðøÃãŸÞúÛ~ÎÚ:/§¯»™aò%g¸[°í›#eŒô,žÙëÍ{߬5¬5¬5Þ/}¿ôýRn2 ®€  Ó…éÂôOS?Mý4uûží{¶ïÑIÖIÖIÎ_XÒ¸sãÎ;þíðo‡ûúõëׯ_‘ D”¹0|6ølðÙÀ|”ù(óQy¹;uOÛ•ýÊüÛ†—þ,¼¸7÷¶æ¾ÄGe›4˜^yã\Í£:jºå¥çÇ7ßp|D#Ÿ¾ _…¯‘"+DVØ?fÿ˜ýc|mðµÁ×ü­rú ôè/Ø=b÷ˆÝ#>Oû<íó4á‚pA¸@™ CLû˜ö1ímãmãmãórw,_kUS<%èªU“ì‹{so—LŠkþfäÈý% õf @qQ—£.G]>ævÌí˜[Ó3MÏ4=“ÏÓm´l´l¶xnñÜâù¡ÿ‡þú µ…ÚBm*¬ˆLx0!/õït}ÊüÚ]èùy4«¢¬Ð7÷ÖÉïbBãÌ•[fWÕø£ª´¯Ò¾JlZlZ,o™j‚*-J'J'JçèØ£cŽ5 5 5Íç–ªUMªšT5qýÓõO×??þóñŸÿÖ‚µ`M…ÿCC¡¡Ðp¥ßJ¿•~¹W¸öß]î 2jåµãðí}ªúþ mshÿÓG&gíq-—QôéÚ§kŸ®1(P°b«ÄV‰­rfõ™ÕgV[5²jdÕH‘sÓ×x­ñZãõ6ñmâÛDIOIOIO*œn ݺ5̽¶Mïö¬“:ûö[³nªúÊkÇN:¦i´{ùìå3F O‚q‚q‚±‡‰‡‰‡I—‘]Fv©È*·dõ’ÕKVwîÜYÜTÜTÜ” ÿOs¡¹Ð|ÁÄL̽†£ºp3t.Z¡¯lëò=`[óRË:­Õ¿žûçõÖ÷Ö÷Ög€E0мøÓñ§ãO_Ò¼¤yI³ÓÉN';T$,Yš¼4yiòkí×Ú¯µÅãÅãÅã‹[=³í²í²íìÿµÿ×þ_yUÒíÓò]ÇôÖ{v÷öÒ(êѯlÛÄvúòMå>Nž{>îù8f~$!IH®o½¾õúÖ>v}ìúØ)²Ê9—q.ã\&`@À€€¢Q€( ØÔH0Œ¦¼Ÿò~Ê{yUª·´ù"ís÷ùl5‹.êѯl;¦ËM£:¹“{Ýîu»×ÙEÀPCIk’Ö$­¹¶øÚâk‹{ë}¬÷1EÂ’y‹æ-š·è¥ÙK³—fÙ•²+eWR׺I®I®I®*?ªü¨òòªa?°þ¤¿¬šZñô„úE¿9Û}VŸ8½=÷±ñ:éuÒë$f~½Ôµ©kS×Þ=s÷ÌÝ3CDCDCDЬrSÛNm;µ­_M¿š~5³f5Ìj¨¶… bA<¿ÆüókÈ«†•çÈùµö.ÐödÆE 0Š…T½T½T½;'sbðÁCQ$,™öpÚÃiŸýñìgdÍΚ5[=ª´Ä~‰ý{yŸÚÐeܪE[Õ;ô•m[vÙ"\=œûxø¶ýÛöoÛ™eP®tÿtÿtïEÞ‹¼6vØØaЬrfff>|øÈh™Ñ2£¥zTiW›]mvµ‘÷©» žõ¼ŽËÒY¯ïµ0Sïè7g;oôãSM—Tw¬­¯¹L^eÂJ‡•+Í,Š `SéÓÒ§¥O{¸òáʇ+G?ýdôEÂ’ñ÷ÇßÿѶGÛmËØš±5ckѪÆÙ£gž=*7ú=ç »¸_q‹~ÿO üÞõõßåÖÇÕÐÕÐ5Ë%Ë%Ë…™Õ‘é—é—é÷ôï§?ý{ò¼Éó&ÏSd•ú~èû¡ïï½½÷öÞÛ´’i%ÓJ­jÜ»}ïö½Ûr£ßõ³ë×ÙT|B_Ùv¾ŸVÓôª)µ¶k–‘W¥äÌäÌäLf ú€€ÿÉœ—9/sÞ“ZOj=©å”ä”䔤HX2Üy¸ópg¯·^o½Þ¦OŸ¦¢g ‡U «VUÞ§¨Ÿ6dÌ´æÅ9úÍÙZ,Ø4Ïs”¼ZÍ7wÞÜyÌ#¨2ÑRÑRÑÒ}^ôyÑgN¯9½æôRd•ë×®_»~ín<»ñìÆ³ä•É+“Wªæ§ŽêÕ/ªŸ¼OaýhôZK_?jÑ´8ÀÒÖ¹Þ£EMµåÕêßÙÿÎþw¶.¤ éÌ&@•r‰ÚˆÚˆÚ<Ÿö|Úói³gÎ T$,éÝ?ºôÍ·7ßÞ|›œžœž¬äèÙvÙvÙvõþª÷W½¿d{[ëëV¶Ÿ­ê²êDô›³mVm‰ûáMòîòƒv>ØÉÜAQ‘””ddd·(lQØ¢0EV¹n#ºè6Âsžç<Ïy ÷î'ÜWòÇ›*L¦v²ëd×Éî¿àÒÞb³¶ßbIióËD¿9Û©£®531”w—/”ºPêB)æ Ê€€Ÿ}=ûzöõW ^-xµÀe’Ë$—IŠ„%¶š¶š¶š—]/»^vMl›Ø6±í¯ü,;’v$íû–³¥Ù£sˆ{嵆eÆV\x^^õҜӜӜ™/(Š$:‰ÎÛ²o˾-»ºÞêz«ë)²Êµ5okÞÖüìdzÏ~Œ½{-öÚ¯ü,g…³ÂYA^ßœí7m@Ü+¯ýW´£COyÕ‹={.öóPMÀ€BÄqâ8qÜ›76olVz­ôZé¥HXb“f“f“v¾ôùÒçKÇÙÄÙÄÙFŸ¿UùVå[y}h>`ÅÆ;ˆxÿ£ýçP™§¥«M3>ÔÂT¶†«ÜW¹¯rgv@=H$‰Dò~þûùïço6Øl°Ù@S¢)Ñ”äo•kþ¨ù£æN”8QâD‰èqÑã¢ÇFŸ“%-JZ$¯cšþfTˆ7/m‹j}fÕ¸#[É‹'.ž¸˜Ù¨&` €IÞIÞIÞ…Ý »vg£ÿFÿþ•ÊU*W©\þÂsWsWsWwSwSwÓèìèìèlÅ{èpÓá¦ÃMÙŸUo`ߺã¶îþÄ©À6Ey&Ê»w_C¿†~ eF@ ív »Ã‡?¾óãÎ;?Öê\«s­Îù[å +V4¬x ä@ÈHÿHÿH!QHéàòËo,¿ñƒµQ¿>ºÕˆuóÞÎûçqå¦cäÝ»·:ouÞê0!UC ¾åÂraù§ÔO©ŸRwlÛ±mÇ6ݺ#tGä/,1úfôÍèÛ¡*‡ªªòuêש_§ B†‘—Ž||þñùÇçò¾sëL·ù÷]‰u¶m =ÄÚÞ›n;Ývº-ÃÅBœ'ÄE®\¹ö@ß}ômÔ­Q·FÝò·ÊéUÒ«¤Wiׄ]vM ‡…ÃyéHì¤ØI±r7çŸÛÌûÙ#bÝŸmí­_\?P¶ž}žõyÖçÃP5À€2|¾_""""""ökî×ܯÙ`Jƒ) ¦ä/,ÑOÓOÓOÛí±Ûc·Çç}Ÿ÷}Þ'x ž‚§ìuêàÔÁ©ÃBe ý—Ï#ÊÍ_kYoÏ:É»;ßç}Ÿ÷}CÅStýèúÑõ/>¾øøâ楛—n^:«\eÿÊþ•ý7_Þ|yóå÷OÞ?yÿD('”ÊÉþÄ5GÖYsDö;t ží^çQnþÚÅó^Ù6_#ïî|õaÔ‡QŒv@u*$jSÔ¦¨MÇlÙ³mjÞÔ¼©yþ­;Zw´îl-»µìÖ²–}XöaYüø!ñCäýyËØ}ó}¦å*Ò6LyÁ¹¿lm·n1ÜbÈØ¤bÆ.Œ]xvìÙ±gÇZϳžg=O‘sÓW__}}õõ·Cß};4]+]+]KÞŸœßí©US¢\EÚ!ÉÛÖ4üW¶¶3"fD̈`lªƒPiß¿'~OVñÖžTõφMfÕŒ¶ú`;ÙìĪ{Ϫf ¬¯Óñqÿ²uhÐ: 5£È‹äÉ’Üø÷Æ¿7þí»¹ïæ¾›Yå¦_¸ÕÒ$¡Ä«Ã^iÞ¨þ8‹gÚ¯¥=ŸöÛõ®&#T­Ÿ]Bf4©-–­óíz·ëÝ®ÇèT0Pä%}Jú”ôézë=®÷°‹°‹°‹ÈK(Rý¨éøÖªš¶˜¹¦Ê™:Zekm0$޿í§öécUñP…§T'nµ¼Å±·²½uöpöpö`¬ù“’’roò½É÷&5j:Ô4/«DUšVº¹tæë;-LU?¶º=rm­²ŸBÕú9cÀíMëËös ë@×®ŒU@j(ujêÔÔ©w'Üpw‚Íl›Ù6³eÖ7é;}ï¦ÊKÛ|:¸ðIŸj¯6ø_·öhøTê¨ÿ¼Ëo[oŸTcuÅæ¿/_~ÜÚdþlk×½ÆíÞÛí¨hUñpE¿œŸEuà6Ž~óu”G µ„ZB-Æ' ¸ Í Í M  ‹ÞQ½£zGÉÎ8»~K$õT?útzóú»å­*×gë×£ZèÉëmÖÕ¬«YWŸ€rjn`ƒ þàÔÆV£¶ÏºUM¹qi“1Ó_nš”³WÆãœÖ®ê'ýeÃ]éÿRo__‰Ãék9Ô-×ð•ªm]kjÛÕ=·ÊÖ<êRÔ¥¨KŒI `9¿r~åüê›?[ÞœbòX•£ß)-®Ôoò¨J‰ªç4.™xéë×-Zt¼>é¦~²lo߆¾ }ʘ”‹P[’ý’ý’ýòB«F‡F=uVnPj0`@ç û¤ý©ì]ó[fyÙÒÙâЦxÏÌÿ÷1þo«Nܤê´OÍek~çÚkw®12‚Ukz­éµ¦ËθÅÛ^97ߢšêÂZþS›M¨]ªÉ8­¿¥½íà:ñ†þ–¢;œ?YÒ¸£lo»w9‹P[ñâ7ÄoøÁé¹Ví+Ù…¨BPª/é²m`ReGÝú7koÓ°[˼D¹-¯ºþ{}ô"m• €-Ún¼ë1M¶‡«J®*¹ª$#((Ÿ3>g|–kþæ´©ò»¿æ5úµÔ­,í­á4ë·ÕL_yu¹ù¾¢Ï«þذé¶»·zÜêq«™€rj+È'È'ÈGö½Ñ_ã­–øªÚ¶Éyoõ<ïEÎ÷†U-¶ôÚï}[¶òÝfv›Ùm&#((©©©²s­óö©¢Ú[U3:µÛ¹tz½oÒ~V]»Šæ’9ÝÚ˜9­- —lnÙü«lokGÕŽªÅÈ”‹P[Wƒ®] ’}@ßtÅ¢W›ª~ÐkþﺄóÍ—%[fRsVõ­Ãku5t>çg1LqÈ\2UÕ`+³C žî‘ç02‚òì䳓ÏNÊβ¡•v,hxSÕBSǧ3Œƒ*õÔU|®áXiBÅecó0:’3è-*°´­õw#‹*XåUC ¨­=†{ ÷Ê>š7ÏÚðñ’êÀUÞÕîWÿ€lÿ5–U>T%ŸìÄq+BU¹ÿÚñ >š…èòØËc/•e&ž}Ò¸±C»»•|õIDATê¥Î"ß”¦Ãt+øVvö°Gõy{ë:ÊF¼E+n>ßnT5¬r€ª!ÔÖò–ÿ³üÙG󭜶o¿eStàœLcç½Ø}S5û_³§eZ× ¢ ðshÌ¡1²³lºÞM+“{*±UòÞàNÍ£šÄv¾Pý»˜°­³}i…×å[ü Ü-Zpû³êw`•T 0 ¶f­˜µbÖ ÙGó­·ì6½UTNüm³âÀ@ß7’-šW¦™œœ°m[ ³½lFÿŸM­Í\žïÿ¬j=×÷ì|ÊÞ›h(<ÛÎn;»í¬ì,›ãõÞ¬”*D¤]+ÎØT罪ù±aL•óû=íÙ4@^¸[´àî&s:Õa•T0 ¶¦ ž6xÚàÀ/vgxE•X¶•~ Ý.-ouôÏù¹T­ŸµWt³R•h(<[~ÛòÛ–ßdgÙ쇚Ù*7{º‰ñùŠi‡*ÕlVe½F ' §ßÌ=Ö-Z°­hÞ¸ºÃXåUC ¨­¹eç–[öpß]SîÆÝ8g ,U¹•®©ž j1°^zGû~>D#@áÙ¶#lGØÞ®qo†é]冣ö6LhP¢bšÛÄû¥™·êÀ]7ÍœT§« j€µµÚ{µ÷êlÎÙò›kê†Ê G[ØÑâv¥œ½2LqÈ\25ïß¡Y—¥­ô~m¥GUêè¨Z\ãÅÐ…çØìc³Í–eSg]ëob¦~°ª½ÜvƘÕz¦¬r€ª!ÔÖ¡¹‡æš+ûhÞüŸµ©ç6ªÚ[¼úZ¯÷ï÷¯5ü{lÍ…÷¥_«s¢ÙnëÆªW¹¨ÿÜ ™h(<7nݸuã–ì,sØîll©ÜptAK¿ÍjNûízW“yos~Š‘w÷7ì&ûÿªNl2·Ëáêa¬r€ª!ÔÖgwžÝy&ûhÞ4}^ìîOªWÜ£áS©cÓM‹’Éý«ZÞj~5ºòß5赓~©Aƒþ—?©Pü÷¡ßŸHd+¯»@wîF&PPGŽ %;׮ظ¾¹*Ÿž›—3€¥¡¯*÷Vûšî¤Jû€UC ¨­wÝßu×]öÑ|í#æÌ¹¯ Ai‹€µ-ÏîÕøXÅ[{RÎÖyÖ³ëˆ^M\gŒÙÜPºÕ³IÍYÕ·70 ó„}97|–žþ+ÝPZuÞým-q[sÿèB)ñ@ñ@1#((1¥cJÇ”–kmŽ ÖkK\xíⵯÆ7ß([ù¦š6jÚˆ‘ (0 ¶RìRìRìdÐ×XaÞ¯§êÄ¥ÿ;ÇwwÕòÕ‡çýÌj5ö4ûТêªÄS§Tmóç«Öô:3Y¶ÏÛ"¶El‹`dEôIôIôé«Üöz1•- € ¯ýòÁT³üý2{Üìq³Ç12å"ÔW€ È PÛ<=hñ8SÕb`é;¾U½ ç4§Ù§úÝÞ«4Õº ý¶ÁÞ&×jÞ´êÑý’ñ8§µ«úYU±d|µ%»ekþ¤×“^Oz10‚ÕbN‹9-æÈÎ8—Õ/¾6ûL\íH½}[ «ÈÖܳ‰gÏ&ŒI@¹€57yáä…“Ê>¦··©™çŸªæìaîFÕzž³­¾À$ºÕÞNÔOÔOÔgLkƒË— .²3ÎéŸ Gß(Šï«~Ûêêà5»ÈÖüË©/§¾œbLÊE ¨¹Ûñ·ãoÇË>¦7¬>Öva¶*ǨE±µ4Ü£ý`¨¼·®­Z´x¶×Ù^g{ÅΈ;ƒñ (îe³—Í^6“q]&õÓÿ@X[À§ÿz¾ºØ|¯¼UÎì¥ÙK³—Çškv¬YÔ²¨eQËŸÀ¯G ¨¹Ä¬Ä¬Ä,ÙÇôš«« 5Zµ<´ùée‚Û‚jM+Ì­´Ã,ï'7 oÞ,üøøãã®]#º#øYY²:du7Ë–4 ÚØÜ‡à¶ Ú‰3Ïïj¼*ï«\ƒî º7è¾O´O´Oñ&âMÄá‹ðEøÂ¸ 0P,tžÚyj穲æÍ÷¬¿ráÁmAµÕDMúYŒ®¨€F h} õÖ‘ #F.b…X!–1 äÎñ¤ãIÇ“²sÊ1êÌׯ% n ªµH·Ÿ£{I‘UN·µnkÝÖ;æï˜¿cþ§oŸ¾}ú&,– KÃ@A!Š…›®7]oºÊ>ˆ¯cdÛcè=‚[Å[‹#›Ò/—”­p5zÔèahbhbh’¿°¤VíZµkÕÞùhç£Âw‡ïß-ìv »Õ@NÏ—?_þ|¹ì 2)ÑùEõË·Š·óæ=~Ùt¼•ÊÜÒÜÒÜ2«œF„F„FÄFÏž=Ã.„]» y#y#yèò‡(2§fNÍœ*ïá{« ;&ÝDˆ«H[[Ôýâ¿i²µ=7éܤs“¤w!zzôôèé'´OhŸÐnÝ<ºytþÂÍÍÍÍoþ{óßï'½Ÿô~’D$IDŒsg’É’É’ÉòfÍ ¿; M{â*ÒÚs¨ÛN¶¶Û¶;lwÞ…8Û8Û8Ûó:çuÎë´«Ú®j»ªŠ¼+¼òøÊã+¿1}cúÆT-ŽG3΀¼ Š‘-ƒ· Þ2Xö!{½õ}}Æâæ¯mi°eÛU¹!GºOºOº¼;{?ö~ìý³égÓϦ·ÔvPÛAŠ„%«Ë®.»ºì›¬7Yo²$U%U%Uó(nNm<µñÔÆ¼ŸÚ¼ßXÝ„¸ùkç·zZ»écy+O\p\p\°¼;’Ø5±kb×Ëî—Ý/»Û6·mnÛ\‘UÎÅÎÅÎÅî•Ó+§WNÙžÙžÙžŒy@0PŒ$$&$&$Ê{°nqv³ÖeCÝŸmkõkkÒSO¶ž»™>™>ÌuâßÅ¿‹×y£óFç옷»´ôp½DÂÝÜÛÅ“_™7_Q½¬þ<ÍѲ5ÜYkg­µ ïfìÎØ±ûÑñGÇÿqüÇñYåFŸ}zôé‡3Îx8#Ý1Ý1Ý‘9õF S·ÎÝ:wëœÜí -6ñèAÐ+¯Õ/Ùqa¿´œ3ªe®e®%‰–DK¢åÝÌh›Ñ6£­Ï%ŸK>—ììì KÆZµkííäíäí”þ(ýQú#æ Š"ÿ7þoüßÈ}OTr©K“²½òÚNǧ ®ÝN¶nš/4_h¾••ýÒgJY ²d-xVõYÕgU§}šöiÚ'EV¹Á­·ÜúŽë×;®©US«¦rb:Ô 0P¬ :‘}"[•ïµ(X, pppp®ë\×¹®"aIÓ>¦}L¯/¼¾ðú¤´¤´¤4fTSæáÌÙ‡kõ¯Õ¿VÙ‘¬ç`´£ÊR×™Í"‰~'Äž;Ûx°¼Y¿å– [.¨ò½;‰ÄN¯ë¿®ÿºþ² Ë*,« È*×iU§UV]”\”\”ÄŠ?ˆÙ€¢‚€8=pzàtyÁõê´»eçØÆï`«ÇÙÅ3úmºaQìÁ~r7’â4ÄiHQ¼ïbs±¹Ø<Ø>Ø>Ø~ÉÑ%G—U$,ébÝź‹µ‡Ž‡Ž‡NB„: u˜YPß|ÿñ½¼Ñk8Äúrµ†‹V¾<ÔܼxF¿“¯\îÜDî¹æ½×õ^×{ä²ä²ärѺï’y’y’y¡C†>\×z]ëu­Yå,Û[¶·lºëé®§»~_ð}Á÷Ì,¨&`ÿã±Ûc·Çny¾k hÛ¢gƒ6Ýöx]|¢_³ó׸–W“–·ZÞjy+kcÖÆ¬ê1$v;‰]h‰Ð¡%Ö¼[ónÍ;E«2Ve¬Êœ™~fú™é±ecËÆ–e–A¹¼õ½õ½õåØF¿·\õÊÂKϧ5ÛS|¢ß‰½ÎÛ7ž'¯&Õ—W_^}yÊ””))SÔdØ6‚ÍG:u\õ]õ]õ«ö¯Ú¿jÿü­r¦×L¯™^;Úãh£=¢*DUˆªÀ,€* ðì=¹÷äÞ“òvW0üÚ4£uÍ>w«¨wôk<Ãéâªr7Ç®\#8©ZRµ¤jj> ê u…ºFýaôÿ-þ[üµ´´ò–4]ÝtuÓÕÇ–[zliÔ©¨SQ§˜qøõ.ô¼ÐóBOy£´Ú½.š gg?¸n6\½£ß{{6 É}ÎFuˆêÕAÍÄ}á¾pÿK£/¾4r»çvÏí^eu–ÕY–¿UÎ Ò Ò r_¹}åö•‹ø7â߈…P!TeÞàW"ð;wîܹsgî¹›^qõ„Z…¾–!û,|têTìž<ÔVÞ§Ö¢3DgHì¡ØC±Åõ<È‹ÂEáâg—Ï.Ÿ]v;ïvÞí¬Hÿþ¡ü…% 4xÐàÁ~Ûý¶ûm#ü=òw!Rˆ"™ƒ(l§N:uêTîãsœ÷ '£tu }¾Šl~¼ËÌé‹kÿÇûýŸ“>'}N*¦ƒC$ˆÑ×ä¯É_“W;\ípµÆOl<1«œŽ¿Ž¿Žÿö%Û—l_òiÔ§QŸF S…©ÂTæ 0¹Ž=:ôèÐÿð¦ý5èMçý;½/ºÑoó•+뺬˜Y)Vó¾¼Ojcc“ J%ˆÿGº.¤íûµï׾Æ 3Ún´Ýh{þÂÝ+ºWt¯ìx¾ãùŽçáU«„WV «…Õ”…áòÑËG/ÿÇé׬'6ПåbóbB³§E7ú¶ðFm“µºsëÏ©¼ZÞ'Õ>¢}DûÈ·kß®}»ÆØ3;fvÌì“N6:Ù¨åß-ÿnùw>÷ÇŸ\qrÅÉ.n¸¸ábXí°Úaµ%w%w%w©0 0€ÿpçë¯w¾þÇãìÝ÷*Y5­ïrvÿU+ËC{Ÿ>TýзÕóÏnÕii;khrîntÔè¨ÑQ™ƒ3gf<ä]txtxtø Ñ Ñ ‘y;óvæíò—•T]it¥Ñ›Êm*·©\ØÇ°a%á’pI8FAñ;êwÔïh^FãÈÓû—vXÚàu«UU?ô]àò̾YóÎý§®­½ ÷ÏÕ£d’=J&?J~”üˆñwqã.Æ]<Ÿz>õ|jûqíǵ§È¹é+ÜV¸­p q q q??s/OÀòäS¹Oå>•«ã^ǽŽ{î°«.ktÑl|³ÖK5Žh«\èë¿ãéí€úo˜ª——ÇñÖXs`à'ø ~ŒÅÅ5Œk×ðÜËs/Ͻ´q·q·qW$,ùÿڻ®†íɉ‰‰Æ`ÁÞ± ö‚Šb¯ˆ;bWì±÷ö‚¢b±S‘" Hï½×S÷÷GÞoÆÌ y G©¿ëÙó̼pÎZ÷Z{efߞÞöü°ç‡ yAó‚æÉòdy²<†2ß%¾K|×{`ï½þûÞk4^}míVó®Wo¿kçú—î]KQéÛÛ3ª[“±1;z«ßùšûè°êaÕêò‘ò‘ò‘ìåeZeZeZ=ÙðdÓ £6ŒÚ0jƒ2§Ü–¾[únéëëéëéë)Ý+Ý+å»ðU(€ü²f²f²f{2ödìÉøªÏn¬Ó M‡]Ʊ{Ü{77ïмXKß^W޾³ÕR5u´:ÔlÝ`—ñŽ_3æI-’Z$ººº°âß[fÛ̶™mm m m GºŽtéªLY²õÞÖ{[ïù]õ»êwUê,u–:“0þ³»Â]á®Åz‹õë¿~ïM½§S«÷ëÞæiÊŠ¿ô]dkÖéf?‡9Gš^þú1{O÷žî=ÿÞr&äLÈ™ðêÉ«'¯žLÑ™¢3EG™SnÅ‹5ÞO¼Ÿx?‘T’T’T"a(¢PDééé=£zFõŒúú‡×õzµqïÒ§Ý©^ÛR{ü¾?ùÞŽ~]¯lywá|ºwø)µ—ºØoÔ¶·è§;C?ï¿>X¿(½(½(•†JC¥¡¬oIÉŽÉŽÉŽyyûåí—·']štiÒ%eÊ“:&uLê¼?óþÌû3]‰®D—„ñõ"m#m#mõŒõŒõŒ¿~×5 k_[°£¥úÍeN¶3;]Ù±ÿS+­hå‹Þî».]ÐÓjm{·—œhöŸÿÒöÑ-G·Ý"º%º%ºÅú–”¼y/ò^8Ýqºãtgö»Ùïf¿Sæ”[rwÉÝ%wÝ Ü Ü DZ"-‘ €€rÎ g…³Ž•+;Vn:¡é„¦Šø {WM5b­íÑ|Ð*µ…c;:´i?«‡‰Z»S ¼·¥µ“,ª¹ãhÛs»mÒmõtÊãÖÍFÖ_­ÎŒ–©mî)óè|W½]õvÕ˨šQ5£*‹Y:åMÉ›’7åõÝ×w_ßÕeV—Y]”Yñ¥=–öXÚÃC×C×CW´O´O´„ñ5ÜýÜýÜýºˆºˆºˆ”Ùíõ®¨¿u@ØüAÍ&º±é¤šÅÄ?Íœ[½˜´f_g.ã«îêÛªºîø5?µl¥]MZ“?[ ïV§¥RŸݼfóšÍI=’z$õ`K§‚à‚à‚`777£ß~7ú]™7Üd¸Ép“ó3çgÎÏò[ä·ÈoA 0€oÌí¡ÛC·‡º»uwëîV)•Ìg˜Ï0Ÿ‘£•£•Ã'¥Ê¤‚]» v¹.v]ìºxÑæE›mVf?Ì«1¯Æ¼o½yôæQþŽüù;HÿÎçÏŸS†N:ehé<å\9påÀ•TíTíTmÖ«,???özãõÆëÍêJ«+­®¤Ì~Я¤_I¿’··wŽ[Ž[Ž ”oÀ¾£¤kI×’®]év¥Û•nÖvZÛimñ!+/­¼´ò’···¬·¬·¬7ëRþˆ‰‰y†z†z†®Ü¾rûÊíÊì™iצ]›vÍÞßÞßÞ?·kn×Ü®$ŒÂ¤¤¤Ü:zëè­£Ú>Ú>Ú>ÅÊ-ÈZµ ËÕÍÕÍÕMR]R]Ru)¤Ã¤Ã¤Ã>Æ}Œû·Éf“Í&eö̘ÁcüôâÓ‹O/fididi0@yB  XÉåÎrg·ÆnÝð<àyÀS'H'H'H™ÙjÏÔž©=3Ö3Ö3Ö»›7ÿn~Ôå¨ËQ—I»"“þ*ýUúëǪ«~¬º±ïƾû*³ÇÆfŽÍ›ùì᳇Ïf]̺˜u‘„ñï<í=í=í]?výØu½Vz­ôZ)³»4viì2ÿàüƒóÞly³åÍ–¡ÓC§‡N'çŠLv\v\v<àuÀë€×¦M›6VféôÑé£Óç¡ÆC‡éýÓû§÷'a€²‹P!ÈfÉfÉf}Êú”õ)k§ÍN›J}~nhÞм¡y†>úhhºSºSº (Yrs¹¹Ü¶}loŸ¼}òöÉ”Ë)—Sø :€’6Y˜,LްŒ°Œ°<Ùäd““Mê»Ôw©ïR´S®³AgƒÎ–ó,çYÎK8—p.ᜠ䂜˜J `þ?mA[ÐO O O9îyÜó¸gÝ ºAu‹øåš4;hv¸vîÚ¹kç{$öHìAÀJ˜—à%xÅXÇXÇXŸ{|îñ¹ÇjÉjÉjÉE;åÔw¨ïPßq¾þùúçëDŽDŽDŽ „Âb(YÀÎ^°죅h!Z8»ìì²³ËZþÞò÷–¿­,ј¥1KcÖ…é¦_˜kkk&„ aB1(1rA.ÈŒŒŒ,²üÉò§NîÜ;¹í”k0«Á¬³Nî9¹ç䞈ˆˆa¦0S˜IÌʼn€ÿB,ˆqü»øwñ﮸_q¿âÞ!§CN‡œ¢•%té6Ò=õéÔ§SŸ"D‰<"˜&‚ 1(YÉÑÉÑÉÑÖU­«ZWÕž£=G{Ž2_’ðÞÁ{ï…9r\n)·”[’0À÷C À7<6ylòØ›a7Ãn†õ´èiÑÓ¢ˆ=IªJªJêáßÿvø·Ðñ¡ãCÇËÝänr7P²ÒUÓUÓUx=ðzà5äÑGC)S ›6=lz8ðÇÀ”]•]•]%a€o…€ï"íHÚ‘´#÷oß¿}ÿö ÜA¹ƒr•)KvçîÎÝèèè%ó•ùÊ|I@ÉÊú1ëǬŸ:üéðѯF¿ýJ™Sn³Æf;m}Ûú¶•N“N“N#a€¢¡ ˜dšešeš=Ñ|¢ùDsTÕQUGUU¦,ÙrvËÙ-gý*ùUò«$5—šKÍI@Éʱʱʱ²Ûl·ÙnóÔmS·MݦÌ)·zãê«7zWó®æ]MüNüNüŽ„¾0%&§GNœ¯V½ZõjÕäàÉÁ“ƒ•)KÖˆÖˆÖˆ¼3¼3¼3$µ%µ%µI@ÉÊÿ)ÿ§üŸœ;/v^ó`̃1iÁiÁiÁ$ Ê `Ê!™™ÌLfp(àPÀ¡]N»œv9)S–èÜѹ£sçኇ+®HŸ>;}6 (YòÇòÇòÇ!q!q!q‡téÒQæ”ëu®×¹^çní½µ÷ÖÞdËdËdKe0‚ü°ü°üpˆZˆZˆÚĉ•)Kzö6ìmhmkmkm›¢•¢•¢EÂJØba±°8²mdÛȶ§êŸªª~Ãn »5ìV´S®£¼£¼£üꦫ›®nJPOPOPd‚L3(ý(€¨¨Æc„1k#ÖF¬=ávÂí„[}Ýúºõu‹V–tþÐùCç–6–6–6 N N N  „B@lëØÖ±­Ï[·:oÕj\«q­Æí”Sk Ö@­Á¹VçZk3;fvÌlÁUp\‰”6ÀàÿsÜ÷˜m1Ûb¶3T9Ä9Ä9ÄY~W~W~—„”¬ôõéëÓ×?¼öðÚÃk:2™ŽL™Sn×ö]ÛwmX°(`‘l³l³l3 €ï‡|iÙiÙiÙL˜>02hÈ !ƒ”)KLMMµµµd÷e÷e÷I@ÉÊ2È2È2xVçYguÆÈÇÈÇÈ•9å6©lRÙ¤òqÏÇ=÷HÛIÛIÛ‘0øV(€Àw‘••õ´ÒÓJO+3zÌè1Ê”%›woÞ½y·ïß9¾s¤FR#© (Y9ù9ù9ùöíÚÔ¦ÿLÿ™2§Üªi«¦­šæ5Ûk¶×lñ ñ ñ EC ŠIÎþœý9ûízÙõ²ë5UuªêTUeÊ’ÕÁ«ƒW{õê=T&‡‘0€’•¯—¯—¯÷Fýúõ¹íç¶ŸÛ^™SnñŒÅ3ÏpÍrÍrÍ*°-°-°%að5(€@‰ÉKÎKÎKvnãÜÆ¹ÍœSsNÍ9¥LYb”d”d”äãã#ª*ª*ªJÂJ–hšhšh𻳻³»³±¾±¾±¾2§Üìú³ëÏ®ïÔש¯Sß¼#yGòŽ0PD JQeQeQe7_7_7_#o#o#oeÊ’9æ<šóȹ·soçÞyYyYyY$  dIšKšKš¿¯ÿ¾þûúkû¯í¿¶¿2§ÜäÓO>üjЫA¯å´Ìi™Ó’„0(ÕÄAâ qwwïîÞÝW;®v\í¨LY2µëÔ®S»ÚéÙéÙéåÏ9žsœ„”,éUéUéU¿6~müÚl Û¶%L™SNï•Þ+½WO~xòÓ2Wd®È\AÂT4À Œ‘ΗΗÎ÷ç;ÎwÜæ%›—l^¢LY2zé襣—>U}ªúT539393™„”,Yˆ,D˜˜˜eÖݬ»YweN¹A×]tí¾É}“û&i&i&i&$ @ùF Ê<ÙmÙmÙí@@@ Ó÷¦ïMß+S– ™3dÎ9,X<°H“¥ÉÒd$  dÉßËßË߇® ]ºöððÃï1¼ÆðËvÊõÔé©ÓSçæ›7nÞHîžÜ=¹; PžP€rHn-·–[‡Ø†Ø†ØL=˜z0U™JX»ºvuíê·ünùÝòKvKvKv#a%l“°IØù òAäƒÓµN×:]«ÑÕFW]-Ú)×áR‡K.]9zåè•£ñ÷âïÅßÄ‚X3e0¨ CÁ0B!‹|sòÍÉ7 ž7xÞàyÑÊ’Nk:­é´æªÇU« £F%Œd‚Là³ÂJN„!DÄ^½{ý‚ùó æO4žh<)Ú)×âQ‹G-Õ<«yV3:":":Bx)¼^3¥0¨¨ü?Á/F#‹‘Ÿx~âù‰êêêE+KÔN¨P;qný¹õçÖLj9s@ð<bP²'$NHœpÍïšß5?Íš;5w픫»µîÖº[>~øøáðwáïÂß Z‚– E”6À“ð4áiÂSË –,/t~ÐùAçE+Kê×7®o|"âDĉˆˆ;#v ã„qÂ8P²R^¤¼HyqÛã¶Çm¾UúVé[E™/Éßo¹ßr¿eðòàåÁËå‹å‹å‹I€’E ð?¤´Mi›ÒÖú²õeë˽õÔ{2eÉÁþxðÇÍÍMùQùQùQP²Ò?§Nÿühã£66lذaÊœr;Wî\¹så'¯O^Ÿ¼d“d“d“H€âD ðŸ¥OIŸ’>å¡ÁCƒ‡:‡téR¦,Ù¼+xWpÀù€óçeûdûdûH@ÉÊzœõ8ëñ³ègÑÏ¢Çõ×\eN¹ ¢ ¢ ¢Ñ¢?DK$‰DBÂ|?Àß@VŸ¬>Y}žú<õyê3æØ˜ccŽ)S–lZ¾iù¦åí?Ú´—ö–ö–ö&a%+whîÐÜ¡•*;Tž–1-cZ†2§ÜÊ^+{­ìåiãiãi#ž&ž&žFÂ|+ÀßENpNpN°ÜNn'×£?FŒ2eɪ—«^®zéuÖë¬×Y±•ØJlEÂJVþñüãùÇßD¼‰x1Ï`žÁ<eN¹E]u]ÔÕµk×>« V¬&aІ ˜äwÍïšßÕ9Î9Î9ÎÐÅÐÅÐE™²dñëů¿vëäÖÉ­SÁ»‚wïH@ÉYˆ,Dk<Öx¬YºuéÖ¥[•9åfÆÍŒ›÷zëë­¯·æ É’7„„øÀ%F¤#Ò鸛¹›¹›-É]’»$W™²dööÙÛgowÚê´ÕikÞͼ›y7I@É’L–L–L~ïôÞ齓‰‰‰RŸž4~ÒøIã_n|¹ñåÆì÷Ùï³ß“0Š(€JÉŸ’?%zGxGxG¬ [¶&L™²drÁä‚ɯv¿ÚýjwNÿœþ9ýI@É’zK½¥Þ~î~î~î[³¶fmÍR改n云ël;Ùv²í”Y+³Vf-€ T“žžžðÍöÍöÍÞ²}Ëö-Û•)KFµÕvTÛ'CŸ }24óHæ‘Ì#$  dÉä2¹L´/h_о=÷ Ü3P™Snàä“N¾wþÞù{çÓTÒTÒTHPÑP”1²÷²÷²÷»Cv‡ìQ¦,¬:Xu°ê}ÇûŽ÷Ó,Ò,Ò,H@É’'Èä a•Â*…U:2âȈ##jÚ×´¯i_´S®{Z÷´îi7ÞÜxsãMÒÛ¤·IoIP¾Q”yò·ò·ò·¡CB‡„9”q(ãP†Š‡Š‡ŠGÑÊ’žÏz>ëùìföÍì›ÙÉÉÉ$  „ £´¢´¢´Ì«šW5¯ÚäÏ&6ù³h§\ûþíû·ïùÚåk—¯Åwïß]Èò„P²D~"?‘ß;õwêïÔ—Y.³\f©Ì)7ãÑŒG39Ú;Ú;Úçää0 h(€PLD»D»D»F>F>FëÖ­[·n2§ÜDÕ‰ªU_<|ñðÅÃìÙ³7’0àkP ÄH†H†H†¼ß÷~ßû}k%k%k%Ê”%“ì&ÙM²{iÿÒþ¥}vrvrv2 (YÒi´À‘ÿ"ÿEÛÞþóöŸ•9åFtÑeD—ÇÓO<=Ã6Ã6Ö„Š(€PŠH¤R¿~'üNl=µõÔÖSÊ”%#cGÆŽŒµ]k»Övm¦f¦f¦& (YòfòfòfŸ›~nú¹éÞ‘{Gî©Ì)7à׿øõî뻯ï¾N½•z+õ (€PªÉ²eÙ²ì ÉA“ƒ&›Å›Å›Å+S– tè:Ðõ^ܽ¸{qi]Óº¦u%a%ìGáGáǰ#aGÂŽqtÄѵ»ÖîZ»kÑN9­ÓZ§µN[…[…[…'MNšœ4™€ ¢¡@#GÈ#B}C}C}gÎ>œ]s@Í5­,éaØÃ°‡áM•›*7U’R’R’RH@ ;'œÎE=‹zõÌâ'‹Ÿ,~jº©é¦¦›Švʵ kÖ6ìÒÓKO/=³‹³‹³2„ !ƒ˜ ¼¢@Ùg&˜ fQU¢ªDU9ýôôÓÓOŸl|²ñÉ¢•%ퟴÒþÉåœË9—sâgÅÏŠŸ%ä ùB>1(1éBºw.î\ܹKk/­½´¶íæ¶›Ûn.Ú)×4¼ixÓp‹aÃ,†E…F…F… —„KÂ%b€òåQœ'ÄÅæÇæÇæ_Ôº¨uQ«õ•ÖWZ_)ZYÒܹ¹ssç3GÏ=s4ú@ôèÂ#á‘ðˆ˜”¬¤I=’zX]¶ºluY«»Vw­îE;åjŸ©}¦ö™£ÇŽ;z,ìIØ“°'B¡ŠP…„ ,¢@’x)ñRâ¥ëK¯/½¾´ë¢®‹º.*ZYRgýuö‹;w,.|EøŠð‚† !h0€’•z0õ`êÁ»»ïî¾»»¿uëþÖÊüÝô½'÷žÜ{òóðÏÃ?—·‘·‘·!a(ý(€P¡¥þúCêwfÜ™qgFß„¾ }”)KöåîËÝ—\=¸zpuùDùDùDP²2ÎeœË8÷¸Åã[èèè(sÊm»}ìö±þ'üOøŸý,ûYö3 @iC üMFƒŒ l~µùÕæ×á͇7Þ\™²d‡Ý»vŸæšÿi¾¬·¬·¬7 (Yننن/6¼Øðbû vì”9åÖ¹¬sYçâcácác!±XH,HJ0ð?d¥e¥e¥=7znôÜh|­ñµÆ×R¦,ÙÐCÿ ý?˜|0ù`" –K‚I@ÉÊÎÎvÜç¸Ïqߌé3¦Ï˜®Ì)·,gYβœw“ßM~7Y+ŠÅ’0' `à?ËÝ”»)w“ƒ™ƒ™ƒ™½½½2eÉŠ +6¬Øà9Às€çq7q7q7P² 4.hüvüÛñoÇ/°]`»ÀV™Sn~Èüù!.^.^.^ùÉùÉùÉ$ ß0ð ä¿ÎÿÚÅÀÅÀÅ`~Ëù-ç·T¦,Y¸táÒ…Kß:¿u~ë\0´`hÁPP²Ä*b±Ê;ÿwþïü—».w]îªÌ)7}Ëô-Ó·8Èd²ÜÛ¹·so“0|+ÀÀw!r9Š=’<’<’– X6`ÙeÊ’™ f6˜ÙÀQp…¼šy5ój’0€’%y%y%yõAåƒÊ•õÇ×_\™Sn|Àø€ñÏãžÇ=ËVËVËV#a( ` ˜HÖKÖKÖûtñéâÓe]Ýuu×ÕU¦,™¸}âö‰Û_ä¾È}‘›mžmžmNÂJ–¬…¬…¬Å§ÊŸ*ª¼£ÎŽ:;ê(sÊ Ož4<ÉfŸÍ>›}“2&eL"aøÀ@‰‘&I“¤IþšþšþšÛnn»¹í¦2eɈË#.¸üøÚãk¯eøgøgø“0€’%((øÙæ³Íg›}öMØ7A™S®ßÓ~Oû=½{'öNlêÀÔ©IQ¥ˆ\U®*W J J JÙ“¹'sO¦2eÉ€õÖX¯ê½ª÷ª¦z¦z¦z’0€V_¨/ÔoÞ0¼á±ÇF¡j¥j¥jU´S®[Ÿn}ºõ¹.¾.¾.NŒMŒMŒ%` J5¹H.’‹Âf‡Í›}$çHΑœZ¶µlkÙ­,éþ{÷ß»ÿ~£Ã7:$mNÚœ´™„”0kÁZ°ŽîÝ;º·…ÈBd!jÛ,¶YlÑN¹6›Úlj³é¢ÛE·‹nqƒãÇ ’„$!‰˜TÀ@YsZ8-œŽ:u0ê ù}óûæ÷›þÐô‡¦?­,i7©Ý¤v“.ÿzù×Ë¿ÆÅÅÅÅÅ YB–EÌJLŽ#äīƫƫ^6¼lxÙ°]h»Ðv¡E;嚬i²¦Éó±æcÍÇFéGéGé G…£ÂQbP^Qe_ª*¤Æ­Š[·ê’Ú%µKjmnûsÛŸ‹V–4Óo¦ßLßâ¬ÅY‹³Ñ¿Eÿý›pM¸&\#f&¸OpŸà>ö^ö^ö^–­-[[¶>xöàÙƒg·öÜÚskÏ 7|Üðq[æ¶Ìm™G>ùpäà £F7Œœw9ïrÞþ,üYø32Ä×Hº™t3éæÝ7vߨÝýH÷#Ý픫¥^K½–ú‘cGŽ9Ö&¬MXyº<]žNÂÊ ` ÜJª‘T#©†Õ« Vº9usêæT´²Dµ®j]ÕºGãÆ‹ ‹ ‹TA…„+ŽTÍTÍTMÛû¶÷mïÏë?¯ÿ¼þ*ßjÕ:ªuVû¯ö_íÿzûëí¯·goÈÞ½üQèÎÌIÍI͹7ûÞì{³ˆˆˆ•Ù{öïÙ¿gMM¼Š¼Š¼ (‹(€€ $uqêâÔÅwµïjßÕîß«¯þ½”)Kö¦îMÝ›úyãçŸ7ʻɻɻ‘pùÓ §ANƒ»w5îjtÉî’Ý%[¥D”””Ûÿfÿ›ýoâNâNâN¬ “!Êeˆç>Î}œ;²ñÈÆ#+³÷¶õÛÖo[?¿\¿\¿\i4HDÂJ? ` BËØ˜±1c£M°M°M°î"ÝEº‹”)K¶ßÙ~gûwwwYMYMYM.+âÄ=ˆ{°aɆ%–¨”z'lOØž°Íšš55k*k‡—ý,ûYö³—ƒ^z9h¢d¢d¢D™½gbmbmbý>ó}æûLÉ<É<É<Æå=Ö{¬÷ØFÁ‚47hnÐ<Ò-Ò-Òdð­Pø›lllZ/´^hM?aü„ñÊ”%ëÕ׫¯W÷ñññññ‘Ü’Ü’Ü"áÒ#mzÚô´ékw­ÝµvWÑÖwꜶòf -6 éõúÌø=;È?-ýI/:´°k®úü™ƒ?¾4ÑÝí°kÿíê~V?Õ¸iËà¹'枘+‹ƒYS|¼Nyò:½Ö}­ûZwæ±™ÇfSæ”[ú~éû¥ï=®{\÷¸.º%º%â”Ãÿ°:uuêêTŽD2øV(€ü¹î¹î¹îŽÃ‡;Ÿž3=gzŽ2eÉòÉË'/ŸüîØ»cD"‘HDÂÅÊP0 ¯Z]µºjõõ«Ö3°é€úÃn­Ôí¨ù,áùlû?ÿ{Å«Ì5|üŒ~ýb,܉;æ4þµvLMù×ÓNÇNÇN‡EÆU0»`vÁl×ß]wý}aĈ…ÊœróîÍ»7ïžK-—Z.µò­ò­ò­H‘K¥ÆŠ{fEîŠÜ¹äƒo…ÀVðKÁ/¿¼­ý¶öÛÚ Æ.»`¬2eÉ‚ .ø¶êÛªo«T*¨TP‰„¿‡èOÑŸ¢?u×í®Û]÷kÖeŸSß9íŽÄ·žÝfÀ­ïW÷~Í5ø¥AB¿Ú+zv W÷øš‘Ï>{øìáY¦Y¦Y¦¬;ŠFO™²dzìôØé±Žýû9öËuÉuÉu!ae<Ó{¦÷Lïk’?ã>X¿SÇ<—ùâ!K¶ô-ìšò̰÷Àä-²žB븯™ÑǸqãØPž$M’&IûðäÓO6ÜÞp{ÃmeN¹qæãÌÇ™?oø¼áó†YžYžYž$\l6ßl¾Ù\q?ˆG‰G‰G‘¾ `ß…ä¶ä¶ä¶O O OàzÍõšë5•)K& š0h í^´{Ñ.{`öÀì$ü?¼Þo‡;öïÙ®HêÖ\=+=n®Ñ ËÒYúvÚ4sIÿs#òԅƳþ}Ž>:øè ›ß–l„l„lħ«Ÿ®~ºº³ÕÎV;[)sÊ »:ìê°«lÙ>²MÏMÏMç Ë×ny({({¨¸î S¦.L%|[ÀЉ¬¶¬¶¬¶¿¿¿ÏöçÛŸo®LY¢«¯«¯«oóÁæƒÍ‡ “ “ þ‹|¢|¢|âʱ+Ç®ü_Íí>lÒo½ËVéû×ðÅ3†ö¿o9rs·&ÿ>ßsµÏÕ>W›‚ïx÷Í–Ï–Ï<,xØþiû§íŸ¦Ì)×w~ßù}çß©r§Ê*)))$\vöìØ_q•]k¸Öp­A>ø¶(€”ywywy÷Ï;>ïø¼c¯x¯x¯X™²¤ëþ­û·¾Ûùnç»Sç¥ÎKWáò4‘›ÈMŽ]8va¡Õï¨÷Õ›ü”Yy®ÿ ˜2_ý*\#ÒgöØpIí5¯–À©Ž§:žêÈ݇bÒIè$t ¿~=üúñáLJ^·^Ýzuëí”ӌҌҌº^ûzíëµW'®N\MÀe…©ØTlúÿ+˜[0·`.ùàÛ¢PšÔj5ÂRÂRÂRŽfÍ>š­ÚFµj›¢•%Ýv{Øí¡Õp«áVÓª&UMªZns bA¼ö·µ¿­ý­°4¶îïÕ­Í/ò™‹¼uÊ_õûå5oè|!µÇ-l=¿‰oai\±»bwÅŽ%à©ðTxý*úUô«3égÒϤ·Ýbt‹ÑE;åZ×k]¯u½ A‚.źƺƺ QB”EÌ¥‡ü¾ü¾ü¾âÚͼ8óâÌ‹äƒï@év]¸.\þ3úÏè?-¬,¬,¬š-i¶¤Ù’¢•%m²Ûd·É¾TÿRýKõãŒãŒãŒ…!EH)ë!œ~rúÉé…Íúøço:\(ߥ¯âUš²hˆÎÉU:×j¹¹°d^5yÕäUn2”0‘ Dñ‡âź2æÊ˜+c:ôëЯC¿¢rmükã_OO9=åô”HÿHÿHa»°]ØNÌ%%Ä3Ä3ÄSq¥^{=îõ8òÁ÷@  ¬É²…츔¸”¸”Ë5/×¼\³Ý‚v Ú-(ZYÒ$­IZ“4ókæ×̯E™E™E™ §„S©²†ã/Ž¿8þRØìŽ9 ˜ÞafE«~¿¼Ê]tWÇÏðsǘ.…¥Î…Ò&¹nrÝäº7Ý\tsQ¸q=âŠvÊÕxPãA‡>røHèùÐó¡çåŸäŸäŸH¸xªs¨Î¡:Šë’§™§™§I>ø(€”I;“v&í¼ÑóFÏ=»7ìÞ°{â•%µ,kYÖ²<$þH|˜~˜~˜¾¼@^ /(móMh¸27Ýl»Ùv³íA‚5’ÅÊbe±$üÍæ ó“ŸTeR•IUˆß0€r+õCê‡Ô÷êÜ«s¯Î€½öØ«LY²'fOÌž˜ Ø Ø Xy-y-y­›ØIá¤pR·²neÝÊŠãœÜrvCWYÏE³u®Sý~yÍl:7|PRaë»3zgôÎhî”-™“3'gN¶}kûÖö­Þ\½¹zs•9å¶¶ÝÚvk[¿I~“ü&IïIïIï‘°2"kFÖŒ¬©˜óË‘/G¾I>ø~(€T AAAï=¾÷øÞˆû#LY²íì¶³ÛÎú·óoçßNš M&Ï,Ö|XóaÍÂF•ÚÎpÁ ÊÔ½…]ýnëëSè_ö÷ô÷ô÷äNAÙ•S-§ZNµWU_U}UurÉ=&÷Pæ”[{hí¡µ‡Þ?üýpIgIgIgþz'“O&ŸLVL5ûeöËì—äƒï‡@…–}.û\ö¹òòò‰G&™xD™²dÝïë~_÷»OŸ6>m$&‰É·mΡœC9‡ {w{ßqj=Rñ~Íõľ•;¼Q̰ˬ.³ºÌÚ í„vÜ(ò6åmÊÛäô›ÓoN¿Íz3ëͬ7ÊœrÆÖÆÖÆÖî9î9î9¢%¢%¢%$üüÁ¿AVƒ¬Y_¦7²ÝÈv#9[ðÝQÀßäÕÉ«“Wçõo¯{ýÛÌ63ÛÌl£LY²Ls™æ2MHHH‘ÈNd§ÌØ\:péÀ%Åw™aÓ^Ôüµî×_¥•¦éÌnW»~Í]ÿð­m^¶yÙ†{åUee¥«£«£«ã⪋«.®ªÌ)7wûÜís·¿Ñ£ÿF?Vþ¬üY$[#¶Fl ŬËËËÈß0ü# FŒxëùÖó­çÂM 7-ܤLY2¿öüÚók»Œwï2>ß.ß.ÿ«*áÌÖ™­3[öš 5foF­û_¯Ó'­Ðþ‡TëèÕÑ«£'%%ÅþGE 6›ŠM½:{uöê¼ê÷U¿¯ú]™SnÚŸÓþœö§ý:ûuöërÿÈý#÷Š–çùç7žß¨˜L†,C–AŒïŽþ3qqqÏážÃ=‡¯Ø³bÏŠ=Ê”%÷ îÜwØì°ÙasîºÜu¹ëßñ¤×I¯“^Š¿»ÓMÛ­„*W™ëž-77 RÌÖù†ó çìvTLÒ&Ò&Ò&§}œöqÚFçΕ9åÆN;eì”g£Ÿ~6:kuÖê¬Õå;½V*­TZý-UVX…}…âA ߀$T* ý°õÃÖ[7èmÐÛ §LY2þ§ñ?ÿéùì糟ÏN H H (ì'SëÎô#%®2WŸ%Sö6S̶¿Ð_èÏÖþl•l•lU@߀¾}wiíÒÚ¥¥Ì)7têЩC§> þ0<ýDú‰ôå#¥ÅùÞ[|oñ½Åì" `ø.d}e}e}?-ý´ôÓÒ;Y>Y>9X5X5Xu¥ý•öWR¦, 85mz_µ’­N¥}UÒ1®å[cJRÑfg>+{À¾ÒPß_5Ò¨[-Åž¹}æö™Ûì^à« †C":FtŒèxBç„Î zûëí¯·¿hçC³.f]Ì®µ¿ÖþZû!AH(tŽïß9þËYt¿ÐýB÷ l ' `(9­…ÖBëp“p“p“cYDzŽeÕ9Wç\s_SÈE‹« ­Z²¥iH¿éõúi*Sc—ž8ëü¼¥ƒ(ްe\˸–qlU ˆœgÁ9¦oLߘ¾g£ÏFŸnù´åÓ–O‹vb´²ieÓÊæ|Âù„ó ±#bGÄŽ> Ÿ…Ï¥a¢)½Sz§ôVóÃ7ß8ÌF@q¢€ÒÄF°l¢E‹>¶u÷ÖÝ[w+Ö {âû‡úêsH±ÝÈ×[Ð~ȘÒP—®ø­«—ºÃ_£Ö:³ië²^‡Ÿ˜1¹_¶bæ;5vjìÔ`OÅ)Í!Í!ÍáA­µÔ|jð©Á§”ùÂùÝkv¯Ù½&Ð4Ð4ÐTæ$s’9}«q¦/H_¾@ñ/_6¾lÌ:¢øQ@©#[%[%[¥X'´«[£öØÒS—ŽœÒªeãµmãÜ7[×)»Õï_Wñï » Iû‡Žî5º×hv&P²2m2m2mžœ~rúÉéQ7FÝuC™Jx‹êÕ-ª¾¶¾¶¾¶ÒÒÒEÕÃ-·<Ü¢øúñ âÄ7`ÕPü(€ ÔÉè—Ñ/£Ÿb°dŸf3µ—¥§.ýrlgV îÙ©ÁÑ_û?m/ k1¼a“F#k_¬é×±}áu¦Íogß,øò/:w:› Õÿ9´TJ¸Y‹:Õj=RÌŸ ”69³rfåÌzõñÕÇW§¬š²jÊ*e*á5+Ö¬X³Âû¢÷Eï‹b±X,Ít^ë¼Öyýåë4Ëi–Ó,Gøëÿ€bG ¥Nh÷Ðî¡Ýˉó͇ôêô¤4T¤ÙoæÞùåØêXÕ4­qèk*–á¦êu}ˆv™×?¶tÀÓO´?Ü\Ÿ(‹ò\ò\ò\œ\\\gçÍΛ§L%¼d×’]Kv¹tè>PÔ^Ô^ÔþË÷Ê™52k¤âoùùÌÏg~f-PR(€ Ôq?ì~Øý°b©ðò1vÝ•†ŠÔ§Ò”ý½—)Žpñê.újƒî ¡ÝuÚ_?ó0Nob·+ÆC5¨ÅÕøQÅHåoŸ.Ÿ6µé½­­0P>ÄÄĸ­u[ë¶Ö¨›Q7£nÊT†c ÇŽu¾à|ÁùÂÃ'Ÿ<|¢ø3Ñ¢D y” `(už{>îù8ÅRÁ3uò<íW¥¡"}¾tL‹îÿ•fDã_ë¦Ý«ÑUí˯†Vü­3Çlê~àjàRVŸ÷²¡S0P^‰_‰_‰_y…x…x…¬n»ºíê¶*߈ê*ÕUª«kÁZ°&g” `(uîO½?õþTÅjÁŸþ™>÷Jç×&}•û匦k¿ªùðÒ6—› Ã%šg(€ŠC:J:J:ê£ì£ì£lÓçMŸ7}V¦£:FuŒêÓOw<Ý‘Õ «AVFq¢€RçnÏ»=ïöT,ªOkÛ÷—ÒYýõ~í‘úÊÿšQg¡Ñ„º;JÛo×ÑõèZ—¨Èd2 ™E@@@@@€é`ÓÁ¦ƒ•©„uþÐùCç‡UVyX%½Kz—ô.$\4™‘™‘™‘êmÔÛ¨·¹Xûb틵ÉD0”:6:6:6:ЇOS{õ,ëð—?¸ŽUMÓ‡JÛA[>ö{—%À¾$?'?'?bbbÔ½I÷&Ý›(S k;h;h;XëZëZë¦ü˜òcÊ$üï²d7ÈnÐLÚLÚLúe’gÎ:u"Ÿ/Q@©ãxÈñã!ÅÂà̓ zF”†ŠôuìxÝžýsÆ¥÷¬‘5#¨ÿ ¯ÿ]·Q¿jUÿkFíG48Qgei+€0¼Ãx `Šòûç÷Ïï¯x>Œ;>¶¾¸¾¸¾¸h•pç¶Ûvnk9Ør°åà„ý ûö rA.ÈÉü/vÉvÉvÉ…¥gnhnhnHJ¡€RçcÈÇ!Џï„XÛuki¨Hûj7‹j0ä¯Q 7U¯ÓèÃ×ÿîÊän;Zµÿëwç9t:ÓR³´À+óºínÕ‰€¢7?½ùéÍOŠçÃç矟~.¼Þ ïc^żŠyuîÓ¹Oç>©7Qo¢^ÄÏ «V­>ú\þ¹üsù1^1^1^‚à#øTäü–;,wX^Xb'rNäœÈa—R@©ççç¢øhÛL½ÏomíKCEZØÃ÷ÿ-ÇŸÇîñ¡F–Š³Ê–¿~ÞÙu¼´çíÒö%Õ^·Ðl¨B @‘a®a®a®âù $$ô¿ ä‚;¨ÈD£E£E£χÍw4ßÑü¿¾ZrVrVr–u;ëvÖí´iÓ>¦Ì_>¸ïྃûB¶„l Ù"¿$¿$¿TVäÍí7·ßÜ.4“´ƒiÓ*æ^¥€Ò'^ˆâ {¨-?´(\'«ô|¸Cï©un|}QaÚ1¶…KÁú熜(mŸýÍ0š{~ÐkÅ1Ïø0ãÃŒlL "s¿ê~Õýªâùð©Ú§jŸª)ÿúé-Ó[¦·|ü ùAòÈ!‘C"•©„M™.2]"» » »P^×ŵ›k7×n…å°oò¾Éû&W´½J ¥Ô“& Lg'˜óÇÀ®¥§4ýkTÛ…uŒ±@ݽq¿–ë×ÞSûM ŸÍZï©ß^Õ|VýÛš§Øu»·GÇ/«´Ànc&ÞéõP1ó«™W3¯f²'ŠÌ¸¥qKã–ŠçƒLM¦&Sûï˜U=«zVõ§óŸÎ:tÒè¤ÑIÊT›ØüÃæ|kùÖò­% PžVÇý¾û}÷û…Í}÷ýÝ÷wßò„|øðá?”‘6£ô‚ºe•¶êôkjÝÒYú~yÝü°§iësŠ™œ 8pŠ= TL’º’º’ºŠ'Ãú ë/¬/ÖOÖæ<Ìy˜óÐÎÂÎÂÎbê©w¦ÞQ¦^=nõ¸Õã¼r¼r¼rÄÎbg±sY_)φž =6ß’’!\ÂË÷Ž¥€R*¡]B»„vŠ°Ç®jý{“ó¥¹F-‹Wù¾Ea:Yÿ^–¬ñYã³ÆÇ;Ð;Ð;PRMRMR] TÞo‰·DñLøP÷CÝuKvlùÕó«çWw6u6u65Ô0Ô0ÔP¦620202p;ävÈíPAJAJAJ™\¯ Þ¼76Ç­=·öÜÚSx.<ž—×K ¥•£à(8Ö[Yoe½•а³\æm¬Kqû­®Û¦ÙôÕÿ¯eÉ’ø%ñKâÝ·ºouß*$$ĶÊŸµU×V][UñØKì%ö¥m´"5‘šHͽ{÷6K¦/™¾dº2•ðœ¦sšÎiêáá‘÷>ï}Þû²²j>î>î>î…Íkã 7.Ì3Á¬üíX `(ÕN>=úôhŇ׷§èFwU§¸ýV×5cµæ·z¢¢4ç†O Ÿ:‡:‡:‡æwÎïœß™= ”]Ò³Ò³Ò³Šwúrßå¾Ë}ËÊ,ÄÙâlq¶÷ï=Þ{Öè®Ñ]£«Ì)7åü”óSοJ}•ú*5Ç(Ç(Ǩ4ÏÝ·ªoUߪ…ÍÅdÉ“=Âaˆ0¤<í[ `(ÕâÅ‹?¦øØºÞíZCjV’Ç.þaè/Ô·Ê\³Ÿwzp¡Ÿý]qtÅÑG•)KôèÐ`—k—k—›À®Ê ¿j~Õüª)Þ×ïBÞ…¼ )»ó’n’n’nò½ä{É÷ÒæŒÍ›3”9åF}õqÔÇ'ž¶vùqÂÊžY”¸Ê\-ê zÚÑS1Ûý½ö÷Úßë¯ü¥}¥}¥}?¾ýøöãÛM›7mÞ´Y™²dÌÎ1;Çì|úöéÛ§o³zfõÌêÉJ§-w¶ÜÙrGñ.×××,O3•ÙÉìdv+W®Ø=v÷ØÝc•9å; vìô Ëƒ.º¤y¥y¥y•†9̘0¿°1/»´ìÒ²KòÓòÓòÓe}5)€  ð ó ó S|`­Ñ«ÞU=¹Ã¢,9Uîþìoýyçú×1“>%}JúTØŠÈÈÈXXXîJØ•°+A™²Dg‹Î-Ç=÷p\úøôñéãÙó@É’ùËüeþŠwë§N œ*Bò§ò§ò§!âqˆøÑ!£CFÊœr½Œzõ2ºµèÖ¢[‹’O&ŸL>YRó Ú´9¨ÐÄctÊè”Ñ)y[y[yÛ²»vÀP8 Ž‚£f¶f¶f¶âëGáz»Qèþ×ëÎ~Ú§Ú„(æ¹æüšókÎÿ×%’——éÒ+¤×Áꫬ®LYÒ[³·foMëSÖ§¬O¥¨§¨§¨sÅ)0 0 0@ñÞ|;íí´·Ó*h(K„%’Ⱦ‘}#ûžêsªÏ©> 5\ÔpQÑN¹Žž=;z^Õ¿ªU?¡vBí„Ú‚T Òâ™JðîàÝÁ» Û‚- ¶,Ø"»/»/»_ŠÊ ¯“^'½NöÀ:3i^»Áõ¨u¿æú9ÄàTߨB?ûkždždþ l¼0^±7boÄÞ)'RN¤ÔßRKý-E+K:_î|¹óeËã–Ç-'^ûxíï¸xï„w»˜c1ÇbŽ3=gzÎTíšÚ5µkE+KÔ]Õ]Õ]Ï??üüð˜ü˜ü˜|ÁWð|¹GeÈ=ärÅ;nÆâ‹g,&Ÿ¯‘žž~ík\û£ËÔ.S»L-Ú)Wïe½—õ^žXxbቅ"D † Äaßv´áK׆/-l 3[Îl9³¥ô¨ô¨ôhYÉŸʘğJü©°GÕ÷RFöìšKÑ[ØuÇvíÑm–žXK¬%Ö*Öå” 2A–0!aB„«þWý¯úwÚÝiw§ÝE+KÜhp£Á“ÏN>;ù,"/"/"O0 Cîàë…„„(Þ_ŽÇ9#Ÿ¢I™™23eæíª·«Þ®Ú;¶wlïXe¾$ÿ€éÓ¦Á)Á)Á)òòòÊ0R/R/R¯°wÔÔÔ”$K’%É¥?m `(“¬Í­Í­Í {Tí÷QRŸÝÔ½_^wÕQK½°Ä|æúÌõ™[zÖ7Ù;Ù;ÙûVø­ð[áÚM´›h7Q¦,9y0ò`dȽ{!÷ä·ä·ä·¸ƒ€Â®¸þáúŠ÷Qn\n\nù|+éféféf:=tÚ~hû¡í•9åvMÛ5m×´€ñãÆËÖÉÖÉÖmTÑ£G7.ì]&ttÒQIOIOIÏÒœ-0”MiBš6óÞÌ{3ïö¨:ÆÖÈ-©~=ü&×\XJÇ/¿tüRé_ðôJé•Ò+=°|`ùÀrÈÊ!+‡¬T¦,1u6u6ulØ4°©ì–ì–ŒJ„õÂza}Ÿkü\ãç/ï— <&xÏ÷–µ0kaÖÂg]Ÿu}Öulû±íÇ*U oLܘ¸1ñãŠ+>®ªIÕ¤j_?’˜ð˜ð˜ðÂ^yœæ8Íqšâuâuâu¥3I `(ÃrGäŽÈ¡:Zu´êèÂU'ŒŸm1 ¥bV¿æN­ÞÛ¾°d&\špiÂ%¹ŸÜOîWW?3=3=3ýiÓ§MŸ6½eô–Ñ[”)K6ÏÜ¥AþäüÉù“ß x3àÍ€¹SæN™;E™Snq×Å]wu t t ,¸]p»à¶â;&h'h'hö ÃG 1|DGGA)úŒ80”~çýÎûÿ÷‡Ý'Õî]¾«ß»ÏG¼ízÿßsH¾Ÿ|?ù~EØy¹y¹y¹ÎCœ‡8™ã8ÇqŽ£2e‰‘£‘£‘£›‡›‡›‡¨’¨’¨÷ʉp!\o4»ÑìF³¿Ü󺱺±º±ÄSš‰æŠæŠæº‡¸‡¸‡ï4Þi¼S™SnVê¬ÔY©N-œZ8µÈÛ·;o÷_ï’ø1ñcâÇÂ~kðëÁ¯¿ÎÏÏ/ ™P@¹âãäãäãôï¸Ï½R«Ó%á‡Å¿­V>J_QÍþClM^t©ñ?>ó^‘wˆ¨º¨º¨º[Š[Š[ŠQQQ2eɳ9fsÌœ›97sn–ŸŸÏ=ˆ²(öpìáØÃŠ;üq»Çí·#Ÿ²EÒFÒFÒæ}—÷]ÞwY»píµ •9å&Ï™h}ÐúãšãšãZü³£€rNl!¶[¬ß»~ïú½_óØÚ"~påŽQå>ClJQé»pŽýÀKÛzöZÛ¦Ã×Ìâ|Ïó=Ï÷Î ç…óìåÉÈÈö ìØÇ4Ï4Ï4O™jdˆæÍ!š6>Øø`cZzZzZ: £¤$öKì—øŸã¼{øîệɧâ”” ݺ/tßaãÃÆ‡kl©±¥ÆeÎ:õ*êUÔ«d[f[f[ç\(€ qžè<Ñyâ×?¼6®¹P-îƒßÔž½‹¿ôuŽœðKχãò[Ÿm’ó5£m¥ÚJµ•jÐÀ AYëïM~O~O~/Ä=Ä=ÄýPÍC5ÕT¦&éÚ+´Wè­Ç·ßzœü<ùyòsFñ¸f}ÍúšµâžL=–z,õùTh[„-–HçHçHçÓMO7=ݴѪF«­ú¯ç[ÕªT‹sàÀPᨨ¨™­4[i¶ò¿>Èž¤S\Ë9¶»GÝÕZ•¹kÞσP¾èº=sK+ënº&š1†¶©Û´ÿ•¥½¥½¥½°OØ'ìc}KÌ|a¾0?R%R%RådÂÉ„“ R¤6H-Z%ÜiP§A]½uõÖÕ[ }ú$ôd‚L3¾-ÍÁšƒ5ÿíË{u´t´tH¦â®“®“®K[Ÿ¶>m½¿¿¿¿¿ÿ£C=:dzÙô²ée½?õþÔûS™à’ò:åuÊëâœ0ThñâÅ7Z¡²BeÅ7ø«‡-[˜5l¸ ãóÖkôµµz¾Þ¿GmW+guÓkUmFåöÏš¯î¥ßtEýyÊ¿×Á¬ƒY³rÒrÒrÒXÇRÊ_ðücÿŒý3öÏó&çMΛ´ªÚªj«ªE[qµÙj³ÕfŸ›|nò¹É1b6ÄlÜwÁ˜¡ }7}7}·/w𕵕µ•5É”uò8yœ<.Ç>Ç>Ç><#<#<Ãq›ã6Çm§^tzÑœ;sî̹ÓB¯…^ =•ï¬øçN ø?ÉzÉzÉz‡¤‡¤‡¤*¥L홵gÖžymÔµQ×FåŒÎ3šõ*»ÜÜÜþúÜvç¨ÎQ£Š¶+ê÷¨ß£~¯N¼:ñ*byÄòˆåÂha´ÀÞÀ–?&Lþ˜7ßt|Ó1Õ;Õ;Õ›LJ©l![È]]]I°N°N°öªîUÝ«º•—•—•×Ú„µ k´ghÏОQœÿ…j1§ÅœsæØÏ±ŸcÚä´ÉiÇýŽû÷‡„„HÀ€By[z[z[®‰]»&¶8¦×ZTkQ­E{6ìÙ°gÃg­ÏZŸµX‹ò-E;E;EÛÚÑÚÑÚ±÷ªÞ«z¯Rfÿ9r $¤IH“&òƒòƒòƒ$ ”~²²²?fü˜ñc`ïÀÞ½m?Ø~°ý°÷õÞ×{_ûcÜãþ(þ~¤×\¯¹^sÓ¦L<:óèÌ£3þaþaþai[Ó¶¦m•nnn(mIRþƒxƒxƒxƒ&/L^˜lÚ´=hЪA«ý÷ºNKEKEkTçQGu>Ðò@Ë-Ç;wŸÚ7µoj_rFúüôùéón|¸ñáFW:¯t^)Sáì²Ýe»Ë6À,À,ÀLf*3•™’0Pü¢~ú5êWçUΫœWíu¶×Ù^ ,0ÐÔÔ,ÎZW«¥VK­–+÷®Ü»r¯å0Ëa–Ã< = = ããã nÜ*¸%|> ŸÊbÎÀ  ÈÒÍÒÍÒ}šö4íiÚ‡1c”©6 Û4lÓ°7>ÞøxCÚMÚMÚ„ïMã„Æ ߯ÖmäÜȹ‘ótÙtÙtÙñÇO?agjgjgêêꓽ>{}özùFùFùÆò30(“râsâsâíØ7°o ¿I“þ&eª£UÇW_uÜk§×N¯â‹â‹â‹$ |[ªuªÖ©ZÑîÐa5†ÕVcû–í[¶o¹?äþûC|ø.ð]““#y%y%yE¡åD~¿ü~ùýÞüðæ‡7?fff(S /6_l¾ØÜ­Ž[·:¯ ^¼&a@g?ûûÙß¿¼Ë:9wrîä¼´òÒÊK+_ºzéꥫ®g]ϺžI‹I‹IË?Ÿ>ÿ¼`%X V¤÷õ(€@¹%%%å~Ùý²ûeã¦ÆM›*S Ïž4{ÒìINsæ:ÍÍ»˜w1O ã?óøÅã_þÚQC“†& Múú)ôS(Éà[¡ˆ¤®¤®¤®wwwÁÚ_×þºöWe*áÉž“='{¾Züjñ«Å9]sºæt%aü;cwcwcwŽD2øV(€@…&=#=#=ã÷»ßï~¿o¹¹åæ–›ÊTÂzR=©žôIë'­Ÿ´ÎÜ™¹3s' ã/-‰–DKqϬÖ ëˆß 0ÀßÈüeþ2ÿ@ÿ@ÿ@³Jf•Ì*)S Š;(öþ•ûWî_IÛŸ¶?m? WLï§½Ÿö~šâñyáóÂçùà[¡øäîrw¹{¨~¨~¨þaÕê‡UUAE(Z%ÜsoϽ=÷Þô½é{Ó7ydòÈä‘$\¬½½ööÚÛŠûArUrUr•|ð­Püwë„uºÈÓ‘§#OŸŠ:u*ª‘A#ƒFE«„;ÄtˆésÅþŠýûx—x—xA,ˆ11—R©ÔFqÝ—wZÞiy'òÁ·E ð-„ áBxìÁ؃±/,¼°ðÂB+4V­n!j!j!:kxÖð¬a´(Z-ì;ÁŽ˜Ë"¿~ ü(®ò»ï6¾ÛH>ø¶(€¾£Ä>‰}û\³ºfuÍJ³Ÿf?Í~E«„ëºÖu­ëzÜñ¸ãqÇð¸ð¸ð8¡—ÐKèEÂ¥ßÖa[‡m¦¸¦¢LQ¦(“|ðmQ«”ë)×S®ß¾tûÒíK}ÞöyÛç­ŠöÚÿiÿ§àƒÁƒÊ—Ë—Ë—“pé!K”%ÊWmAýõÔ'|À%,Ý5Ý5ÝõÑØGcö˰_†ý¢L%¼Ój§ÕN«OÉŸ’?%ËfÈfÈfpI jÔ>¨½â¹d¹d¹d‘¾ `€R'ëjÖÕ¬«Ï^>{ùì可ý0îe*á6vÚØéãOúø“´²´²´2 ³ófçÍÎ+®H¾(_”/"|Àe@nܹ=ìÃìÃìæÙL³™f£L%¼rÕÊU+Wyú{ú{ú‹ˆˆð·%’Ƀ“Ÿþjú«é¯Èß0@™”¿;wþî7/ß¼|ór^³yÍæ5S¦^´tÑÒEK]g»Îv]°½`{ÁvVFèíÐÛ¡·svTwTwT'|?Àå„è è è Çxñã—ê,ÕYª£L%<«Å¬³Z¼¾öúÚëkyò&äM á¯wØú°õakÅTs_æ¾Ì}I>ø~(€Ê-‰žDO¢÷þÊû+ﯘ¨™¨™¨)S O::é褣/¯¼¼òòJvDvDv ÿƒÂaG€5¾LoB½ õ&Ô#|oÀˆÔEê"uñ³ö³ö³Þújë«­¯”©„G>ùtäSÛ©¶Sm§fªgªgòåÆBdtdtd´bV/T^¨¼P!|oÀš¬@V +222ÞóÇž?öü¡L%<Ð| ù@ó{®÷\﹦©¥©¥©U´4>4þHÝ#uÔ­¹¶æÚšk‹V ÷èÒ£K.72ndÜÈH I I )·ÁE ÑBtã;4îðeºt;èv`_¡xPàÙ+ìöF5ŒjÕðtðéàÓÁÝ»5v+Z%ÜÞ´½i{ÓË/¼ü1~tüèøÑBž'ä•õbýbýbýçkóØæ±Íc6Š0þ»x!^ˆ«W%®ÊÅ)§\œÒÚ¯µ_k¿¢UÂÍ6?Úü虥g–žY½>z}ôzáð@xP¶"¹u!ëB–âì2g,ÎXÌ–Añ À7“x?ñ~âý뇮º~¨ë™®gºž)Z%\gRIu&s:ætÌ)|zøôðéBK¡¥Ð²4ϽußÖ}[÷ýrý$ý$ý$ì ' `|G©¦þ™úç-w¶ÜÙÒ¯n¿ºýêª(aŸÏ>Ÿ}>ŸEŸEŸEò±ò±ò±¥aމÛ·%nSíÝšwkÞ­É@q¢@±ÊhÑ:£µººúð1ÃÇ £L%¼ãôŽÓ;Nói̧12-™–L«øgt½ýõö×Û+Ž-urêäÔɬ8Š0JX–8Kœ%~¾çùžç{Æ?`üe*á u7ÔÝP÷ì³>Ì’øIü$~ß{ü]éúK×_¾C·]ÝvuÛÅÊ¢øQ ÔÉ5Ë5Ë5s¸âpÅáŠA’A’A’2•ðб+Æ®ë©á©á©!n/n/nÿ­Æ™••¥øŽVm¬ÚXµaQü(€Pä¿Ë—ÿÎe­ËZ—µóGÍ5”2•ðÂA -ôöÖÛ[ooô-è[зh£ºÓôNÓ;M_?Qš(M”²j(~À(“Dî"w‘û»ŸÞýôî§eFËŒ–)S ÏH›‘6#Í1Æ1Æ1&ï×¼_ó~ýš1ôÝ×w_ß}_¾N›7mÞ´yÃê ¤P œl—l—l÷ÑõÑõÑ]7`Ý€uJý-á‰&N˜8áEà‹ÀÙ²døò½Ò…t!]Pü­‹¢‹¢‹"Ö%…å–4Cš!Íð×õ×õ×Ýö~Ûûmï•©„G¬±rÄÊÇfÍ›ÝÜpsÃÍ Š?7=nzÜt’GI¡@"o o oð¹ÒçJŸ+í­»·îÞº*ßHãË/7¾,$ ÉB29£¤P B“KåR¹4lMØš°5Gë­w´^­¤ZIµ’ŠVkiiݨv£ÚjIÆIÆIÆ$ŒâD ü…`!XD]ŠºuÉÜ×Ü×Ü·i·¦Ýšv+Z%Ü®e»–íZ^н{)6Î?Î?Î_È2…Lbþ¯R&§LN™¬r_å¾Êý£?ýéèOd¢ˆø_R…T!5nWÜ®¸]=öØc 2_ݬU³VÍZY¬³Xg±.*/*/*O¸*\®s¡ñ»§º§º×®Q»Fí_&ypÝÁuבϗ(€€¯’;?w~î|ÅBwvÃÙ g7ì–Ý-»[vÑ*áÚQµ£jGu>ê|Ô9ìC؇°B5¡šPÌÿâjåjåjUXz{Cö†ì ä‚\“0ðUÆ8Œq£X@† 6ô¯ŸI]Ÿº>uý]ý»úwõû/꿨ÿ"e>+¼×m¯Û^·Ïó?Ïÿ<_ÞYÞYÞ¹"çïñ£Ç?–Õîn»»íî&ä9BNEN‰ø* ,T¬å9òy¡¥cÆÞŒ½{mD6"‘®¹®¹®¹2•ðöÝÛwoßíÿÈÿ‘ÿ#Y5Y5Y…û”°çÏ%žK ËgÇ–[vl> Ÿ…Ïs—RÿCþÝü»ùwëÆ=¯÷¼Þóú¿¾Zö¸ìqÙã^Œ{1îŸ Û&l›°M™JxllÌç¹ÏsŸç’«’«’ ñ·„½Ý¼Ý¼Ý ËdËó-Ï·<lÁ¦¢íU `àpÑpÑpÑP,ƒ>}ú üëçúåúåú9Îuœë8wF³Íf4S¦^Þay‡åÞ­·þÝzQ¦(S”Y^×åCu>Ô),‡ qâ6Ä […­ÂÖŠ³W)€€ÿaž÷<ïyÞÿðåÏÊÿ”ÿù=Þ±àÏ‚? þ|ÛñmÇ·l\°qÁFe*áuÔYPÇ%Ó%Ó%3_”/Ê•§Õñì;Ùwras7©lRÙ¤² -h Úa¯R…ÝÝÝW¬·™l3ÙfRœ#ÿ,þYüó»Gï½{´üðòÃË+S O>ýùôçŽ-[:¶Ì}‘û"÷EY_)ÿ½þ{ý÷6ßUuVÕYUGž O'”ïK Êã™Ç3gŠ…¢¿ª¿ª¿jÉŽMòHòHòÈ'Ã'Ã'cý´õÓÖOS¦ž :Au‚ê‹ê/ª¿¨žÝ-»[v·²¸^·nÜ.lŽËê-«·¬ž|Ÿ|Ÿ|_yݱÀ@¡–¦-M[š¦X%J£¤QÒ¨Ò6ZYYYÿ8ÿ8ÿ¸íÛ#¶G(S ë¶Õm«ÛÖÆÆÆÆÆ&cQÆ¢ŒEeeÕ‚^½z]ؼŒþ0úÃèyyyƒò·c)€€ 1’IŒþáoÊÆ˜Ä˜Ä”•YȵåÚríϧ?Ÿþ|z_Ó}M÷5U¦î'ê'ê'º«rWå®Jê¤ÔI©“JóÜƒÝƒÝƒÝ ›ËüìùÙó³eeeËÓ¾¥þO%ŸJ>•‹CŸZ>µ|j•á‰Õj µÃ„0!L8VïX½cõTg¨ÎPQ´J¸ÛönÛ»m·Ò°Ò°ÒH”$J%¥mº¡N¡N¡N…λ9ïæ¼“Õ–Õ–Õ.û–ø&n&n&nŠ•¡d¹d¹dy¹šê á†p#ºEt‹èîîîÍ.6»ØìbÑ*á6¯Û¼nóúbþÅü‹ùqqqB²,$—ìÃï†ß ¿[ؘgœšqjÆ)é&é&馲¾˜ÀÀßHäaÒ0ÅšpYÕeU—U­d ÙBvœ,N'»Üír·ËÝÚY´³hgQ´J¸ÉË&/›¼4ßn¾Ý|{Ôê¨ÕQ«… áDñO+räþÈý…Sœþ8ýq‰¿Ä¿ì.0ð7þ¿øÿâÿ‹bAèáîáîá^‘“I:žt<éø©7¦Þ˜Ú]¯»^w½¢Uµ–ÕZVkÙç#ÎGœÃtÂtÂtä9òyNñÌ"Z?Z?Z¿°±M& I3I3I³²¸FÀÀßl›¶mÚ¶iŠÕ ÈVd+²%Ÿ/¥F¤F¤FÜÓº§uOkÀ³Ï_##>#>#þñ»Çï¿6"lD˜2•ð¶ÕÛVo[í_Û¿¶mi”4JõmGçççYØ»ëuÖë¬×YtPtPt°¬äO üŸ § § 'Å"Ð¥—K/—^äS4Ù7²odßxÙðe× '¾šøjâ+e*a“H“H“HŸ>5|jH–K–K–+?„ +VöŽÃl†Ù ³)¸Sp§àNéO›ø?{¬öXí±R¬óç?ÎL>ßJ^³¼fyÍ^«½V{­6sÒÌI3')S /ûmÙoË~ópópóp==q¥’~Iú%é—ÂÞepëÁ­·ÎwÈwÈw(ÍÙR‚\«y­æµš+¾r¿#ýŽô;’çœçœç\:“¤„°ža=Ãz*~†††äSüÄýÅýÅý=çxÎñœ³âÁŠ+(S ì2Øe°ËaŽÃ‡9¹Æ¹Æ¹Æÿþî©UR«¤V©×³^Ïzÿ°+z%ôJè•û<÷yîóÒ–0 ¹}äö‘ÛŠUß×”…(’IŒ$æÃ©§>œÚ°fÚ k”©„Ç}÷iܧ烟~>8+4+4+TñÓÖ¤­I[Óx`ã*¾‚–¦–¦–fΕœ+9WJOJÀ¨ØŽ Ç…ãµôjéÕÒû[A4.h\ñ”f²A²A²AŸv}Úõi׎Ì™;2•©„‡E ‹õ(ìQØ£°Œ*U2ªüõ.éÒ?¤hѧEŸ}«óòÎË;/ÏÞ”½){SiÈ„ZÔ¨…Q ‹½ç:ÏužëOÙ"Ÿ&Ÿ&ŸÜ6¸mpÛýû5ök(S ÷½Ñ÷FßwºÞéz§kxŸð>á}4Úh´Ñh£ø“í.´»ÐîBÖ°¬aYÃJ6 `ThæFæFæFŠ•^VXVXVù”yí„vB»ðýáûÃ÷¯s¼Îñ:u|êøÔñ)Z%Ü¥u—Ö]Z7_Ó|MóøêVv­ìZÙeVάœY¹¤¦K €Š*YH’›œmr¶ÉÙ¿}pì°Øa±ÄSnÙ ¶‚m´e´e´å‡3gZTiQ¥E•o¤¹Ws¯æ^éÓ§?.þÉQ ‚Š7&nŒb÷(âQÄ£ò©@ „¡ Þ$Þ$ÞäJó+ͯ4o/j/j/R¦®Û£nº=Ò&¥MJ›TœS¡@u1òbäÅHÅê.ã·Œß2~#$ÿ˜ücò7jܨq£†–±–±–ñ­Û/m¿´ýÒâ30*¨6—Û\nsù˺®¯u_ë¾Ö$S!<ž ÏòEù¢|QìÉØ“±'ݸp;p9ôrèåÐeû—í_¶¿Ëñ.Ç»WæsÀY½³zgõ.ÎiQ ‚ZqjÅ©§¾¬ëîhÝѺ£E2eD.‘Kä©ËS—§.÷ëã×ǯσyæ=˜·#~GüŽøá.Ã]†»¨‹âŸ;0*4I„$BñÁìƒÙ³¬Y²Ié$¿"¿"¿’v ì@Øû}öûì÷ˆ:u"j¦ùLó™æM¬šX5±R)F}ƒû÷ ^ÿqýÇõo©ÝR»¥æýÑû£÷ÇÄωŸ?JÀJN”%DB¿>~}üúwzïôÞé]Û|móµÍ«YýËê_º§tOéžRœµ®º\]®.Ÿç9Ïsž§EŽEŽEŽÓ:§uNë"'GNŽœœ{4÷hîQA]PÔK[œÀ¾»O÷>ÝûtÏÆÆÆÆÆÆ¬¶Ym³Ú£Þz?ê½J±3wÌÜ1s÷ÌÙ3gÏœÇ/¿|ü2`EÀŠ€éÛÓ·§o—&K“¥Ée7g `ß];›v6íl¾_­ÛóLÏ3=ϬYºf隥×/\¿pý‚gkÏÖž­ª'TO¨.###$ ÉBrùΙÀw§ÙV³­fÛÿZë63nfÜÌxvÝÙug×=ÕøTãS¶8lqØÞ+¼Wx¯œq9ãrÆÉåÎrgþ 0€ïî|òùäóÉ_–»#f˜5bÖ.í]Ú»´®|¸òáJÿŸüòÿ)53535SÚKÚKÚ‹Üþ+ `('(€ œ €r‚Ê `('(€ œ €r‚Ê `('(€ œ €r‚Ê `('(€ œ €r‚Ê `('(€ œ €r‚Ê `('(€ œ €r‚Ê `('(€ œ €r‚Ê `('(€ œ €r‚Ê `('(€ œ €r‚Ê `('(€ œ €r‚Ê `('(€ œø:gž‡‡%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/ignoreElements.png000066400000000000000000001050361431412030200263560ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTçÿÿ}5ÑDMA X±ˆ]±÷.öÞ jŒÆ‚Ø{-ÖØ-vQÔ¸ÓQ,ѨآÆÞ+Vî?æó;‡ï½.®Ò–áù˜s®ãQ™½®‹÷µÌ‹™I0„4t00000000000000000000000000000000000000000000000000000000000000000€p¡Ã…:„| ùòñÈ”#SŽL‰J•.*=¶O¯ØzõÖ+¹^ÕéH)N´>ÑúDëÀÀÀÐ ¡B3ļyóžžÛ÷²ê˪/«ùæÈ7G¾9<þðøÃãïì¼³óÎNzÄ0€Oxù:òuäñÇsÏ1£ûŒî3º{_ö¾ì}Ù.tþ¥ó/ÙôǦ?6ýq#Í47¨EÀôêªWZ½ê&T ×W}uÐW }Õ Ï ¡„{‡{‡{+“•ÉÊä±ÍÆ6Û¬ÔÂR K-Œ wZà´ÀiA¿*ýªô«²KØ%ìîeº—é^&úJôéèÓѧÿõû×ï_¿U?®úqÕ~ üø5H¨OãuÕºj]uaĈ…gÓŸM6}ä¤ÈI‘“èy¡ €˜7ßt|Ó1¨|Pù òµjÖªY«¦]2 ذ?`ÿù}ç÷ßǸ€õôÊ©WÑäªáú ¢¯&úʸ€5ž¥–þYú ?oøyÃÏž7½áô†Ó^ ¿~-œq«È1rŒ|¢í‰¶'Úö-Õ·TßRÉUÃ[µj$]’.I—¢2GeŽÊÌà@Ò0¯É!ß„|ò =ƒäE ¤R7jܨq£Æà§ƒŸ~jg“–;,wX¾EÙ¢lQÞey—å]F tzUÔ+¤^-m³’뫌¾â0jÛ¹“çNž;Ùѧ£OGÛ¬áîÞîÞîÞ묰~Ôˆ¨Q#5н¸õâÖ‹[Kw-ݵt— ›ê0ÕaªÃÃW_=|Ũ@â!†m"R‘‡nºq¨cÚŽi;¦ýºòïÍYÃ!¬ÇÈRù >œ—·ªä½­iƒªe;™Z4+_!J}ÜâÏJ#•6-²WrÙ_¯I«ò—ÖÝ©#”®2þ¯â4uUœ½âó£ËjuµºZ,Y$²£ µÑ«Ÿ^ ãSK4­²ÞÙkü}vï´îÎÄ—¥«ì¯·à^ùKJ›å‡+¹¨W¤­4ÒÔbñÅ QÛšÎlV¶Ó¼¼C«¹G÷ÙܯàÃü{s8„}Ýë꫾1šR§°£aGÃŽVX}`õ_WKs´Íì:£À¬º%Úä/¾±kp€ƒÇŸwÏÞQzúÈyKó—Y<úΊ~erŒj¸¼C©ËCkίï6¢÷àqà 7lz¾{“\íJ¶*:>+H[[[´k´k´+£ µyõèÕ£Wf¹Ír›åŸZê9¦ÞŸ¹¯×óR§à™6«gG}ÔuÝŠà{Þø#¯{«^ùÿ˜íÞ¿ÛÏ«òºy¶s™»¤˜uø”BkËUnZ:¯‹ýìAv¯¾îu‡.ºhè¢Çƒ~<˜Ñ€„E ÛD Üç7ÎoœÇ˜Æ˜Æ˜¬ÿÁÀ5ÆÉ;GúÅ3kör)¦ýí*Ãcbúõ«S'¡ÚÈ}Z×þVÉÝüc%»þe†~ö¥?ºÈärÆ@j W¼/­“üÛ¶(üLɽ|Q%»È¡ƒjsâD: Õ^ŠÙ^¯ÊðÅ3GÖóâSÀ+GzëM_•ôŠñ`lcÇ<Žéñmo{|ûOêu.>Äóo÷¶ý*NÊTé»_3î™êë»ví‰ Õz[ú^^ëÙqØõ…]Îû®n”×úc+’»Hî"¹ÏL83áÌÆ€Á9Æ8Æ8nK³-Ͷ4_úi¼f©~M äî»âϵ%›è{±k…|'^¼X¡BBµúî®éq©þ­¡Ñ…ZÛ-´{c÷÷“X±(bQćQF}Å @üÃ6†¥]Õ®jW­ÿ`NNßUîMŸ_ïÑ·ÆÚ„{­oön¹Ï+¸y£b\NZsÌ]úué×¥_øÆðáqF¢W6½ÊYS›7ª™ÛåäÑÞkz'lÐk}ûüºT²ÆÚ99ßrojý꣯VŒ8C‰Ž‰Ž‰ÞYog½õ¬¯‡nzç÷CÏUCÇ'lÜk}[Ú>Àyqu§´Åsy¶³êz²ŽÉ:&ë{»÷vïívFr'üNøp_ÑWô­©‡^bÛ3Îo.j^ªJ½ַCˈWJ®™±_æY¬9æe²²æ½œ¸râʉ+Ì)^ͬ©{ýû´™^8èv¦}…ªJ®Ð×RûÞÿȆZǶÌØ\¶¤5ïE_¹ôUŒ9 åzsàÍ7ºÝív·Ûݸë^¶«9:v,Ý,àÚ¯*¦5ŽL®Ð×R[á×½·ÍÊR)wÍÏ|wœé8Óqæ=ÿëù_O怔.X‚k>ÁÖ9¥„¾–Ú]*W+î÷;Ù~²ýdû˜C1‡b1CØ´C1‡béU+îʶ«ÑœAåj¥”Ð×R{gVp³jöUcÊÏÏý™kãôÕ Àö………}æÙ|+ªÛ7­å]dÉ ©bÊŠ~ÿOûýš·ÇŸ—èÑ#Ó(‡¸ßïúlë³­ÏÆÜ`û>4ûÐìC³®«»®îº:îÊÖÛwã8÷ã)%ôµÔþ4{_šRsswŠÈ¦Yz§•T:PéÀË)/§¼œÂ kÃ6)ØÍ'7ŸÜ|÷( ºW[ZrbÌé~mêx§ôè7v{÷L—-Õ:z”ÍS?çuKï}x¾áù†ç‹ Œ Œ d¶°911z¥²x•XÙ¢r^¿{fÓjSzôûÚÓ'6Öñ^Ð}øw%'ƽŠé+“€m:ùá䇓>s½o™A™gÎIÁ¡¯¥D{Mo¿µtÜï}Éó%Ï—öþØûcïV{[ímµ×RíªoXúBm&¦¿Uá#E¿æm›»s†Kg©Š *6¨Ø 7Ãß 3œ™–Ã6)ÌëR¯K½.•«®þ¹ú[ú€Ñî[?cG¿ÿ§Ó¯j÷ÉÞþ%:[ê“¥‘K#—F2ؽ"Y¼‰}`ÿ"%:ÇÌ91¤Ž»±£ßØmXÄ–¶>~–úD_õôù yÝ=÷üÝóqG¿^Eçÿ¶ßÉØÑoì¶JÛU'ºæë_md“±–úä@å•Tfþ°C‡:u´T¯Zwšy¬è8c‡¾æm÷˜5ÜöYŒÃÔ_PATxTxT8óÌÃ6)Fô›è7Ñoš/i¾¤ùKÊ/]o±Ê TýšµSø”.qÑâUÑM¤&Ræ€ä¢W!K5jê‚ÇJ\L=¡¯y{éúöRUYê}ÔWC怤÷®Æ»ïjp/à^ÀÝR¥ªüãoýÿRROôûbàËkz/—ocõ2MZüiÅë’×%/æ€ä²fËš-k¶XªQmsÌ -fŸÚ¢ßØm/·?V»ÿd©FçstNf˜#†m"RŒßöþ¶÷7‹·':¯Í"ïa©9úý_ûo¿u|©R.¦H€¥¾ºp?à~3 @RÒ+¥ºôK•N[ŠÄü{bGßÔëíé|[{³ÔWújÈŒôtÐ}@wKÕ©Òµy;÷…§Îè÷ÿÄÀÃW?º"÷Ë2|Yê«·öoíßÚ3£$¥³]Ïv=ÛÕâ/¦›0È585G¿±Û.+—?+ñ›¥¾ >|,ø3 b#†m"R€óMÏ7=ßÔÒ‡ï}¿6ÞU~(ÑoìöcÚ¾j/«þwÁEy›÷˜ï{ß÷¾ï£ßE¿‹~ÇìØôj£WóŠTýï ‘yL{lhíeD¿±Û}¿ÎŸ]~¨¥µO_™]’ÆÁ›o¼iñY¿Y'ïÚ@ôûž ü|y;µ¥ûiÿOûÚϼ4".G\ޏl©"Uù¶óŒ|?úš·MŒýÓµ”¥~{ñ0âa³ tÀ %xGðŽàÿ»OÞæ©›§n~^ïy½çõ虯C Ø´(ÿ(ÿ(— .\*˜/$ãî{oEÜk©}Ú}Mb–~\Ù´sÓÎM;™c›^m,Õ¢§¡ÂŒň{-µãî÷YP¼•y¿é+£¾J2Ç$žÇ_qÜR wßêï3¹=q¯¥¶¢ï¬y;[[ê½Ð¡C2Ç$¶ñ÷Æßϼ åJ“o«Cæq“ή(OÜû©Ö÷b· ù<ïÕïž'yïù9ø9ø90»@G[|lñ±…Ҧ`À¦­»zìê±æ%Ï9]ö[ö#ÿéX;7AoÜmÈï~ +]±´x<¯ñ¼ÆóÌ4‰A¯0–êOÈï+ý*]!â»ü'ÔT;·sºÜ¥í?š÷¡¾J2Ó$žá†7þ‰[ç]Xq|'¾e׎=±Š 7îÖ}¯›Éc,­†|?ø~ðe¦H WÞ]ywå¥ú3$Ý¡ŒžÜöù3màücÊγԇJw¥»Ò™ÀñûÚ߸[°Q/ú¼èóÂâmÓÎlWÎçgÂ]ë[ÿ©¥åÂãÍ{räü‘óGÎg¾H z…1¯<þS[_,<žp×úöÜÈ-‚ÏÏ–ÖD}Åd¾HX×B¯…^ µTy¼^ÿ–ç/®ýµ®µ[›õDVLjb‘ž¥Í{rÝ•uWÖ]a¾H õÔ;Pï€yåiê?v“«á®õmך+²”øûËa3»fvÍ¢££™oR3àøÓ]=ܵ³apÜ€5Ós¦çLÏOüŽjL¹ûEü t¿´}æÔ]¬QÙÒRq÷ýÝ÷w3ë$½ªXª9Ïœ„c5*ë~i;$¦S@óþÔWLf€„Õa@‡˜×·B½zu!ÖýҶ‡™âŽº–VÆ¿¿?f€„rÚï´ßi?K5g\xX‡òˆu¿ x1¨B©¢×¼V:~"äØ]lw±ÝŘuR3à„EœP€›ó*âUÄ«K…ìɦîå«ß'ÐýºvI©Ý<–š÷ê¨f£šjÆÜPôªb^m–”yÌc)Qî×µO6™6W¿oi}ÔWOæ€ø»)Ý”nJ–ªM•+߇f'Ðýº¶ÀŒº®mr™÷ê†FlÁÜPê¬_°~AójÓM[µÃ­î×µƒü‚Û—:ci}üøìã³Ï˜{R'àÄCÀ€ÍY¿býŠõ+ÌËÖ‡Ê®Å—âÆ§}óS¯Àš·-- ¯3¾Îø:#3@|è•ÄRyó“6­æm¢Üø´úŽ.¾Ì¼oõÕ“ þ d^gJ¸hú6BÜø´•žÍ»\ÚÒ*ý}ô÷Ñß3ÄÇÍ…7Þ\h^a¼s,Íæ2Átalù×D¹ñi=&×®”»¢yÙtdÓ‘MÌ@©pÒ þRÀ€-iÓ8¦qö­Ù·fßj^ªœêz¤zFBÜø·ÓßUÉéÖͼ‡·ÚVh[!¦!€øÐ+‰y…™þî§?ݺ߯¿}pêàÆêŸˆØõÕS_I™‡¾Nĸˆqã,8ð‘W<=ü!nü[—t>ê)æ=|òÑÉG'1ÄÇ„·ÞNxk^a:>X\®øvâÛø·\wôP?ñdåÙMg7Í :'=Â`k6äÊà+ƒ¯ 6/LÍ÷›èr—à6¡ÚûÕ»–©¶Ó¼ŸKI¥¤Ró@|è•äϯ~`PµÉš^i¼3G•±'¥ÇÀÍ÷Õèr×¼Ÿõ•”yàëË…åÂróÚR¤uë:þ+nª-÷פõœÍû¹O@Ÿ€>ÌC_'ê÷¨ß£~·tÂwì/§•rWSbà:8íÁúž]c¿—d>ªb½*89ü’#2Û'îè>$|Høf#€Ô†8y[B Ø™ugÖY×¼iß´ª4Žà6aÛÊóòÝÎõ§yo?¾÷øÞã{ÌF_J¯æU¥ò¼ÒÍsý™¼q©yœÒc`í›Ù+}â*=}%e6ø:m´9Ðæ€ym©øtÎ=.· ÕV9¼¦Ð±ë–NÄDˆ9€ÙàKë|®ó¹ÎæUÅ·x×iù~J¹WÜÚ\<ñâÅ ü®LíSd‹yo………1¤6À¶ƒ086`ÀF*SÌó˜çŽ;>6/@Rï6µúÙ&l»õPƒïËú˜÷öž{ZìiÁ”ð¥ôêa^U¶šqµ¬p¶ÒáÖµú™¿#}%ÕWUæ$ëEÖ‰¬YÇÒéßkkŸhIp›°­«Ø²oß²æ½ÆuÀ¾Øôo§;ý[óªâ¿jG!ªÀ Ûß«ù”ùÄ -g·œÝ’AHu€ma00`ÅÈ÷¹ïs_órÓÄ­hi'ÂÚÄh–ëú¤z~ó>ïìÛÙ·³/sÀ—Ò«‡yUyXîàÛêù €£mâVm³‹“ùûÒWUæ$ë]zqéÅ¥Ÿ¸ùs¾VKû™k£-Ÿiòš=Ìû|Þàyƒçq3_¬ TP*ø‰G±Œ+~&¦¼p·]/®¨àfWÇn]Aó>ªU5ª*s@êAlûRgL Ø„ÐÍ¡›C?Qz6˜êþ]ú&am¢´Þýò×Ém©¸Ç¤‹I“Ž™ À*ébÒŤ³XO¼O”®“›81Ú ¦)n¥oš¿/}Ueb°ÞºNë:­ëd^OÊ^íÂÚÄh}F®ø1äO\öžâ=Å{ s€õÞD¾‰|i^OŠŽ«ôÎñFÊ~m:žxñb… Õw÷Êÿ‰ç.ßžv{ÚíiÌL©pÊ’zÂ``À&,È¿ ÿ‚O\zÙµCó*m'4}0²ë¦jo¦Íõ™çf×fA‰Ýù+•¹áüã3Ç%öײi%ú溑óÛZJ¡yÞÍÍYµ“»öÌ¥»RÃÇ–cà.ëKî)˜Ù¼çÃ'…O ŸÄÌ` ½b˜W’.ë›øÌl A©¥øtºU½êX·ážõ kùkd—äxM+{Æ=“Sá1å{ /vð™‹pª†mÀ—]w”¬rÐü}é«*3€õº¬è²¢ËŠO„‘¥—¦“zØÜ3to®s¼…ûvÿ“»çÙTnYU‡ ¹ºü˜mRöµ9^ç\Txe‰ù…²7JÓ©SÅY³'îúÕ–c`‡;y æ[û‰«ÇžF=zÊÌ`Ë //¼¼Ð¼’4þ8ºDá½¶èN(~~Ly­µÃ̺E{»«Q.×z§%.¯ì8lÊÙ2[ü[Kþ˜cYõ›}2äß:¢AHõ2#m9î°ª„Û'næÈùó!gf&€Ôƒ8å2vL ؄֛Zoj½É¼”¼ÉÛ«CÍÓ¶”*w[Ô¯äëR2Gs‡jv_èöáÎ÷ªÞµÍxõµ›zv6?æ /,¼°™ ÀzÅ0¯$«îÙÙ–àû²ÊÖ&îîº7Lö×ç7ÿù§Ï>[ €ßäÕêÖ/kjŽ“ÿ{Ú§‘9JÌXÍ¿dïÃ[üvy9Ûß®¡Ï8ùuó畾ÿ¾rÞâ õk‚ÿïFm1mß²¹W yÏ￳ÿÎþ;ÌLÖÐ+Æ'nDÜ~õH¯@[€u£k÷ü«Ø¤CMÿXAÙ}ï×]åÖrjßßuF¶´vÛÕ‰ý?£·¨ý¯ ÅÀN'ëØ›¿#}UefˆÏ)Ç7Å^y·µ¸Ô9Ì{H½oþwˆÇìÛ9¤sä7 ÷óÒÝGæZ2µìã ŽkÏ÷éÒox/‡yF¹üŸH»bÇYá;ÏØÚ;r·ëë7ákè¥þ—ú_êÏÌ`9ÛçlŸ³Ý¼’ —‹–ÞeqiÖ‹Y*Ø•ÜYóp®ðØGXêiÝ]¹w¶ò˜\4wŸ›,™³å¡iÏŠ¼.éS#*×1KŸÞm'sòŸÕåþ0?ÂvGÛmw”™ 5ÿ4AœÒ# &lt‘(éŸ;:ç[ˆHõXW?ªl/í4»1—Ûï©ÒÖR¸kþ^ u}šmÀ×{uªíûÀü˜—g]žuyVf&kèü’\ïµ§¾ïÛ €íoÛ×¶ J/™ZÑCÿ?±Ÿ ¬ÿy[õ™µË¶·ý'—ô/ú]Î=Ÿ:NøúOãìkooUÞv‚RÏ‹#z,jö¿ƒû=ÛûÚ¥¥@ߥ1ú¿þïzåXÿÿŸÞ'e_›ãõÿ¹¦ÙÆà2eGm]~Á¼ÿI‘‰™ À}×õ]×wÝ'~ÍqÝÉÅåªÛBPÚááo#ŠÿŸ³( ›Œ,ôþ¯–N"×í»$ÿ;[€'ì¾à_>üg´J” `fHÍ?MIÊ ƒ €]$šg,VÃE´…ˆô訖‚סÁËM(â>}¼ÏC·:Ö\ÑkÛæuÀOÖt/SýžùqN˜8a℉ÌLÖÐ+†y%y²Æ´¾ú=Û €»ÿ×ìß‚‡­ tcUƒÞUö9ûÚZÜn›pxšCkl‘šûTü}M†ÚÛ<—Œsôê[¼HÛIn™óÊç’c«ÃKïËÖÞËë×½Õ e¾H ¯_kEk†Úf|ûð¾}UïZóµ×òïnà»úSõÜVàþ'Û\,|œù a¹¹ö4Ö&ž\%hõãc‹c[¥Z¿okQî×µ•ÚÎÍt†ù 1Lx|át…o“7púx¹ÿbÕàû]öÜnýº¼ú}r‰Ý±÷`kp¾ãn“s4a¾·Èí‘Û#·°¹+€Oh}Ñ;]³ÌEo»L±¿ÍÙ.ÈÒ‘—=ãÜÍ©p·'³ Î5ÿW®zØòÀïûù£Ö1k¾6bÚa·Z?UϹ€‘ÙÎÀ•þ™7aß¾ØÇæsb¥ÝáûÆ€¹@â±…+€‡e–[—>û¨ôHØú= ˜¼{¨ÇÍØ{à `R¢Tt°~t666}3/¶ö `Ç%öײiú±yfÉéØ`ÒßÞÅKTØ÷gãCåGýWªãß¾öÙR»‚þUWwþoØ K)ÏîåÚ˵—+3“ÍšM¯æ•Ä–ŸlýÀ7^¯ZCÿ*‡0‡tvþ_=·õg33ÙØØâóiÜvžì³rÅØÃn±Í«ý‚Šû#¶ô à©G¦™z„™ÉÆÆfÍæãéãéãi^IláÀãƒÏí+ÿ5¤ý¡õžaÖï¡ë¿+s”ˆ¶åØÒ3€™™lll©ù§‰%–dX’ž1Þ¶?pàþÀ~éú¥ë—ÎúèWÿÿ©èÀâ¾&¾¤îèœ{l!"mT¯Èç­úQuÿÏãnÁÃÑÎ}ƒkÿw¬{¹c‡^UÛ~|½W§Ú¾ÌsyÖåY—gef°†^1Ì+Éõ^{êû>HéÏ>Ôtñ”ÿ÷ @ÅØZ\Ò¿èw9÷|jÅ€¯ÿ4^À¾ööVåm'(}le¿볪ˆ5_UaýŒMÛ®ïßåÈÅC»å Xîk·6뉬¶ó¾Ê”µuùóþW$ER$f&kô]×w]ßuæ•dôº“‹ËU·‰ˆ4–ÎË—•(áký×62úmá+¶OØ}Á¿|ø'Îh” (ÀÌššÐÃBzÆôàvêæ©›§n¶>ôÕÿÒ‡¾±6!oÙ¼eó–ýÄÉk§~uì“7"ÍÛ0û*ûsúñïÔêçÊŬùªCM›žÿ-À¡í[6÷ 4?ÎýwößÙ‡™ ÀzÅ0¯$¡íWô ´Í¸ûÍþ-xØš¯m³ Þ7ù+é_ÕnhýÑù7ØPìtÂ±Ž½yÏë«*3@|NÙ8¾)öʳ¸mÀþ©—¶mk¾ªà½†?uüßõµN KÜ)ó§­]ìn××oÂ'ÖÐKý/õ¿ÔŸ™ Às¶ÏÙ>g»y%.-½ËÖà³|ë;ݱêêáZaOÊÈwØmtŽF¶9ùÏêr˜÷|»£í޶;ÊÌšš NéRnè0`Zoj½©õ&ó’ñ&o¯5O'oDêÞ ÷œƒõãÙV½Aå²íãþÿw‚»T«–W°íÀ«¨ÝÔ³³ùq^Xxaá……ÌLÖÐ+†y%YýøpÏζÛß¶¯m$”^2µ¢‡¥¯ÚV}fí²ícÕá-«Šx9Ùε¿oòjukž6ïy}Uef°žÓ1§cNÇÌë‰oÚ5ן±… ´d¥þï¦.ùßa³oç®Ìù1®ô·øl]Ywæ°Ï’³­Sqý‹ lR¿kÓÿ½/› € öªÿoûEæ=ÿôãÓO?23Xcßì}³÷Í6¯$½Çn|î~݂ҎU->Îü-^Y»âBòkn÷/V –õ_•ôíÐ’âÙÒƒÌp惙f>`fH=€Á¡olÀ€MXAþùÍËÇe×Í«LÞˆ´Ï|Ï…Îÿïjƒ9dÏýÇ_u”Þtë\çÙUw>ôï–¦ºûá-~»¼œÆ¿¯œ·øB§é³EZ*ˆ¶wY_rOÁÌæÇ>)|Rø$f&kèü’tYßį`fÛ €‹l(p(G ýÏcÊ÷^ì ©ÚâcÞW¼|–ANíû»Îˆýÿô®²ÏÙ×Önþ|ÙuGÉ*Í{^_U™™¬×eE—]V˜×ïÒKÓI=l!(­´úñ±ÅæGèºÒ/ºÏ¶Òå¦->VnÄÄSd*±³GäèúÙ+;—Îÿ¿SQ-r·vnf›Ov¸“·`¾O<8êiÔÓ¨§ÌLÖ¸¼ðòÂËŸøuÌÆG—(¼×&âÒ¬³TøÄ’ROëîʽ³ÕÚãŠVëS`ó%s¶v˜Y·ho‚µ~ÍSÿ?.‹Ì~Ù6àn«J¸}ânv‡œ9rffH=€S.ã…¾±6!tsèæÐO”˜ ¦º—¾™¼é“*ݬþO‰¾¹näüÖú"øoÿ™«Ì-tÖq@öi±ÿ¾a›"…œ‡ÙDìÝ/܃êt1ébÒ13X%]Lº˜të‰÷‰ÒurÛZr`¥¥›¹ýŠÛ÷‰»ž—r.ÖÁ1ûíÃûöU½kkðÓ·Ò7?qóíÍ¡›C731Xo]§uÖu2¯'e¯Ž¿¿v‰­ÝZ¿™³5ŸÉí—9eÉÝÅsÔðª /ÙÚµ¿>#Wü²ü¡ûï)ÞS˜“¬÷&òMä›OüzÑq•Þ9Þ°¸tdŽÐeí‹L¨èã8Ëš^èŸ23rnЃaÛ €«ïî”ÿwó#¿=íö´ÛÓ˜™Rà”ÅØ¡olÀ€mßç¾Ï}ÍËJ·¢¥]œl!.Õg£ÊÊóu+à{”þl`½­q½`TžYK~­1ÅcûG÷¾k¯ÿ?O¸é›ëFÎoó´Ï^Ë~¥ÏÒA…GÚÂ;zX®ë“ꟸ꺳ogßξÌI_J¯æUåa¹ƒo«ç·µXÿ{ýÏ]?4íZ°ma-ìBÎ9*f›SNu?âÔaÒßþ+KTx¢zÕœhkѯÞ6q«¶ÙÅɼÏõU•9 Àz—^\zqé…y=)’¯ÕÒ~&[»jöŸ±'ôè;jvîžË+gÿ6W™<íû;ŽÎµ.ר’R…¶…7ví|ÁëîÂgå·µã×Ûò™&¯ÙØÃ¼Ïç ž7xÞ`æ$€/UP*(”̫ʸâgbÊ;ÙNhªU‹Œ“*ÉR|ƒÏ§%9Oä9mß${nGçlý u,-ç× ï°‡…& 8}¼Ü6z è®WTp³«c7È®à'îâP5ªjTUæ$€ÔƒØö¥žÐ76`ÀF*PÌó˜çŽ;>6/4Rï6µúÙN ü¥ÿj›7Þz¨Á÷e}Ì{{O‹=-ö´`JøRzõ0¯*[͸ZÖÇâRK!î—þ½-´ÒáÖµú™÷¶¾’ê«*s€õ"ëDÖ‰¬céÇ~ßkkŸhi›1jÜ×õÚÚU¿±[W±eß¾Ÿ¸qhX@X@XsÀ—šþíôo§â¾eþ«vò¨j;°yléïcÿ«­]û;|¯æS¦®yo·œÝrvËÙÌF© °mJ¡olÀ€ ™YwfÝ™Ÿø­}Ó"¨Ò8[ PSz[y^¾Û¹>që¼Ç÷ß{|ÙàKéÕüªTžWºy®?m3FM¹­öÍŠì•Æ™÷¶¾’2|6ÚhsÀ¼¶T|:çÀÛŒQSb[åðšBÇ®[:á9 r@äf#€/u®ó¹Îç:â—xŠw–ï'Û €SnëwejŸ"[Ì{;(,(,(ŒÙ µ!¶„¾±6äÊà+ƒ¯ 6/@Í÷›èr—È6¡ÚûÕ»–©¶óϹ”JI¥$æ!€øÐ+‰y…¹_ýÀ j; nªm¾¯æ@—»æý¬¯¤ÌC_GX.,>ñTÚ"­[×ñ_Ap›Pm¹¿&­ßàlÞÏ}úôáÚ__)ê÷¨ß£~·tbwì/§•rW n -vÑ«‚“Ã/9"³•6ïçð!áC‡0¤6ÀÉ‹Ð×`À–4ŽiÓ8ûÖì[³o5/INu=R=#ñmüÛéïªätëfÞÃÛ m+´­Ó@|è•ļÂL÷ÓŸnÝnãß>8upcõŒæ=¬¯žúJÊ<ðu"ÆEŒ‹gé¼âéῈoãߺ¤óÉPO1ïá“N>:ùˆy >&¼ðvÂ[ó ÓñÁârÅ·߯¿àºë¤‡jÞÃMg7Ý”›?H¥€“¡¯5€›³~ÅúëW˜—§ •]‹/#¾Oûæ§^5o[Z^g|ñuFf €øÐ+‰¥:óæ'mZÍÛ„¸ñi'8ô]|™yßê«'3@ü 0ȼΔ<4pÑômÄ·ñi+=›w3¸´¥U2úûègˆ› o.¼¹Ð¼Â8xçXšÍe‚éÂØò¯ qãÓzL®])wEó>²éȦ#›˜R'à¤Aèû¥€›ó*âUÄ«Këɦîå«ß'ÊýºvI©Ý<–š÷ê¨f£šjÆÜPôªb^m–”yÌc)!î×µO6™6W¿oi}ÔWOæ€ø»)Ý”nJ–ªM•+߇f'Êýº¶ÀŒº®mr™÷ê†FlÁÜPê¬_°~AójÓM[µÃ­!î×µƒü‚Û—:ci}üøìã³Ï˜{R'àÄCèÀ€šé9Ós¦§yñSî~¢Ü/mŸ9ukT¶´$Üß}÷ýÝÌ: E¯*–jÎ3'áXʺ_Ú‰éPÄß¼?õ“Y auÐa@‡æ5Ç­P¯Þc]ˆr¿´­ða¦¸£®¥•1Â/Â/ÂY ¡œö;íwÚÏRÍÖ¡|Ý/h^ ªPªè5¯•ŽŸ9vÛ]lw1f€ÔŒ8aú&`ÀF½èó¢Ï‹>–ÊÙ¹‘íÊùüL¬k}ë?µ´\x¼yOŽœ?rþÈùÌ7‰A¯0æ•Çjë‹…ÇèZßž¹EðùÙÒš¨¯˜Ì7 ëZèµÐk¡–*×ëßòüÕžXתÖnmÖY#ŠEz~âæÏ뮬»²î ó @b¨w Þz>ñ´Zÿ±›\=ˆu­o»Ö\‘¥ÄߟX›Ù5³kÈ|šÇ¡ob lÚ걫Ǯk^ÚœÓe¿eÿ1òŸ>µsîÆÝ†üî×°ÒK‹ÄóÏk<¯ÁL(^k<¯ñ¼†¥úòûJ¿JWwãn#ÿ 5ÕÎíœ.wiûæ}¨¯’Ì4‰gx£á†72¯?yV_ã‰oÙµcO¬"â»ußëßfòK«áß¾|™iÕwWÞ]yg©þ Iw(£g0ánÜmàücÊγԇJw¥»Ò™Àñ¼#xGðBß„E Ø´(ÿ(ÿ(— .\*|â¶E÷½‚‹·"âµÔ> í¾¦F1KKŦ›vnÚÉØôjc©= fÔ(FÐk©w¿Ï‚â­ÌûM_õU’9 ñ¼8þâø‹ã–j¸ûVŸÉ\l±­è;kÞÎÖ–z/t`èÀÐÌ1‰mü½ñ÷Æß3¯B¹ÒäÛêyܤ³+Êô~ªõ½Ø­B>Ï{õ»çIgÞ{~~~Ì.ÐÇßÇ[|lAè›°€à|ÓóMÏ7µTþöýÚxWù¡Ä½±Ûiû6ª½¬úßåilÞc¾ï}ßû¾~ý.ú³ @bÓ«^yÌ+Rõ¿+Dæiü1í±¡µ—÷Æn÷ý:vù¡–Ö>}edvHo¼y𦥊T>ëä]ˆ{c·ÞÏ—·S->Îæ§ý?íÿi?ó @Òˆ¸q9â²¥ŠTåÛÎ3òý@ÜkÞ60öO×R–úíaÄȇÌ.Ð'”Ø×úÆ0bü¶÷·½¿íµôáût¾6‹¼‡ýÆüÛ¯Cß_ª”‹)`©¯îܸÀŒ”ôÊc©.ýR¥Ó–"1ÿžØQÇ—è÷t¾­½‡Yê+}5dFHzºè> »¥êTéÚ¼û‰~« _]üèŠÜ/Ëtòid©¯ÞÚ¿µkÏŒ”Îv=ÛõlWKu©yº ƒ\¹ôÿÚ.+—?+ñ›¥¾ >|,ø3 b#†m"RŒè7Ño¢ß4_Ò|Ió%–>ˆ_ºÞþb•A©9žºÀ§t‰‹–úGj"5‘š0—$½ Y¼¡Í‚ÇJ\LÍÑï¥ëÛKUdñÄÜ’æKš/ÑWC怤÷®Æ»ïjp/à^ÀÝR¥ªüãoýÿRRiô{yMïãåòm¬^¦é@‹?­x]òºäÅ\\ÖlY³eÍK5ªmŽ9¡ÅìSsôÛËíÕî?YêŸÑ9Gç“Yæ€a›€æu©×¥^—ÊÕ?Wÿ\ý-}(‹h÷­_*Š~çô«ZÇ}r ·‰Î–údiäÒÈ¥‘̶@¯H–êÕäÀþEJtŽ™sbH÷Ôý†Eliëãg©OôUO_™?’×ÝówÏß=o'¯¢óÛ¢ß¶«NuÍ׿ÚÈ&c-õÉÊ*¨Ìü` †:uêh©^µî4óXÑq©-úí³æ‚Û>K}RAýõD…G…G…3À0l0"=(õ ÔƒRqŸx’.6ŸR1ÔØÑodÅ>5j½ësÚS(tÇR?ŒÙ1fǘ̶F¯N–jWŸÓ-ºY1´v­wÆŽ~¥‹Ë–U {EÓW=æ Ûq~þùùççÇ]»Ê?žÖcËkƒ?ë7`éyj®½¿T¬f©Ö4_Ó|Msæ Ûñ±÷ÇÞ{·ÚÛjo+‹ÙªoXúBm&¦¿UÁàOnswÎÐbé,õC±AÅôfø›áo†3sÀ`Ø&` »ùäæ“›Oâ>ñ´ {µ¥%'Æœîצ޷‘¢ß»gºl©ÖÑ£lžú9¯[zïÃó Ï7<_L`L`L ³€Í Œ Œ Ô+•¥:æQ¶è†œ×ïžÙß´ZGCE¿§Ol¬ã½ ûðïJNŒ{ÓW:& ÛtòÃÉ'?Ä]Ç<Ê ÊHY¢_F¿Œ~9ÅeŠË—¸«\Å#­z87(søB™#)%ô³à¯rókM쿲À¬¸ß]Ïv=Ûõl÷þáû‡ï2+ÀzÀ°MÀ€¡D½Œzõr‚:A ÚYak@ýçeK¾÷ïý¶Ö1[ }ogê¼¶ê¡þ}Êd/dÍ{9qåÄ•W˜R:½šYS÷ú÷i3½pÐíLû U=dk¡ï{ÿ#jÛ0csÙ’Ö¼}åÒW1怔ëÍ7Þèv·ÛÝnŸ¹ÏA¶«9:v,Ý,àÚ¯*¦5Ž´¹›<ÿ:£÷¶YyC*å®ù™OãŽ3g:Îü¯ç=ÿëÉÒ ÁB°`Í'Ø:‡Í-Øh¤Shß²¶úŽÞtrU¹Í^OhãºÛš÷²*ÓªL«2ÅDÅDÅD1àKÃ6†¥]Õ®jWí¬6'§ï*÷¦Ï¯÷è[cmr…¾G{·ÜçܼQ±.'­9æ.ýºôëÒ/|cøÆðŒ8#Ñ+›^嬩‡ÍÕÌíròhï5 ½‚“+ô}~]*Yc휜ƒo¹7µ~õÑW+F€¡DÇDÇD﬷³ÞÎzÖ×C·N½óû¡ŠçªÆ¡ã“+ô-m༸ºSÚâ¹<ÛYsÌc²ŽÉ:&ë{»÷vïívFr'üNøp_ÑWô­©‡^bÛ3Îo.j^ªJr…¾CˈWJ®™±_æY¬9æ3áÌ„3_çãã¸-Ͷ4ÛÒ|é§ñš¥ú5)»ïŠ?×–üm¢ïÅ®ò%lÜ; ïîš—êß]¨µÝB»7v>ÖÛ¢ˆE‹">Œú0êÃ(ⶉHEnºqèÆ¡Ži;¦í˜Öî«äß›³†CX‘¥ò|8/oUÉ=z[ÓUËv2µhV¾B”ú¸ÅŸ•F*mZd¯ä²¿^“Vå/­»SG(]eü^!Å;5hêª8{ÙÅÃjuµºZ,Y$²£ µÑ«Ÿ^ ãSK4­²ÞÙkü}vï´îÎÄ—¥«ì¯·à^ùKJ›å‡+¹¨W¤­4ÒÔbñÅ QÛšÎlV¶Ó¼¼C«¹G÷ÙܯàÃü{s8„}Ýë꫾1šR§°£aGÃŽVX}`õ_WKs´Íì:£À¬º%Úä/¾±kp€ƒÇŸwÏÞQzúÈyKó—Y<úΊ~erŒj¸¼C©ËCkίï6¢÷àqà 7lz¾{“\íJ¶*:>+H[[[´k´k´+£ µyõèÕ£Wf¹Ír›åŸZê9¦ÞŸ¹¯×óR§à™6«gG}ÔuÝŠà{Þø#¯{«^ùÿ˜íÞ¿ÛÏ«òºy¶s™»¤˜uø”BkËUnZ:¯‹ýìAv¯¾îu‡.ºhè¢Çƒ~<˜Ñ€„E ÛD ¤R7jܨq£Æà§ƒŸ~jg“–;,wX¾EÙ¢lQÞey—å]F tzUÔ+¤^-m³’뫌¾â0jÛ¹“çNž;Ùѧ£OGÛ¬áîÞîÞîÞ묰~Ôˆ¨Q#5н¸õâÖ‹[Kw-ݵt— ›ê0ÕaªÃÃW_=|Ũ@â!†m"ó¦ã›Žo:•*T¾VÍZ5kÕL®NöìØ~ßù}ç÷1.`=½rêU4¹j¸¾‚諉¾²0.`g韥–~ÃÏ~Þð³ç Ïž7’«’Oo8½áô†×¯…_ g\À*rŒ#Ÿh{¢í‰¶}Kõ-Õ·TrÕðÖA­ƒZI—¤KÒ¥¨ÌQ™£2384€a›€|ÂëÈב¯#ç8žãxŽÝgtŸÑÝû²÷eïË õcIç_:ÿÒù—MlúcÓ7ÒÜHsƒZ L¯®z¥Õ«nBÕp}EÐW}¥ÐW úJ¸w¸w¸·2Y™¬LÛll³±ÍJ-,µ°ÔÂø×p§N œô«Ò¯J¿*»„]Â.á^¦{™îe¢Ï ¡DŸŽ>}ú_¿ýþõ[õãªWýè×À¯_ƒ„ú4^W­«ÖUF,ŒXq6ýÙôgÓGNŠœ9‰ž±ºH:\èp¡CÈÇ!L92åÈ”¨tQé¢ÒÑ3`ûôŠ­Wo½’ëUž€”âDë­O´ Íš!4CÌû˜÷1ïé°}/«¾¬ú²ê‘oŽ|sä›Ãã?<þÎÎ;;ïì¤g@|€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A$iòMÈ7!ߨ@ª¡ç¤Àâ€A¤ºXÿû´!iCÒ†¤ I’F‹Ö¢µhí£öQû¨}Ð>h´H-R‹ÔÞiï´wZ„¡Eho´7ÚíµöZ{­½Ô^j/µÚ í…®…káÚ3í™öL{ª=ÕžjµÇÚcí‘öH{¤=Ðh´ûÚ}í¾vW»«ÝÕîhw´;Ú-í–vK»©ÝÔnj×µëÚuíšvM»¦]Õ®jWµ+ÚíŠvY»¬]Ö.i—´KÚEí¢vQ;¯×Îkç´sÚ9í¬vV;«ÑÎhg´´´´SÚ)í”ö·ö·ö·vB;¡ÐŽiÇ´cÚQí¨vT ÕBµPí°vX;¬…h!Zˆ¦jª¦jЦhŠ&i’&i¢&j¢fÒLšI;¤ÒiµƒÚAí€v@; kÁZ°¶OÛ§íÓ‚´ -HÛ£íÑöh»µÝÚnm§¶SÛ©íÐvh;´mÚ6m›¶UÛªmÕ¶h[´-Úfm³¶YÛ¨mÔ6j´ Úm½¶^[¯­ÓÖië´5Úm¶Z[­­ÖVi«´UÚ m…¶Bû]û]û][¦-Ó–iKµ¥ÚRm±¶X[¬-Òi‹´…ÚBm¡¶@[ -Ðæió´yÚ\m®6W›£ÍÑæh³µÙÚlm¦6S›©ÍÐfh3´éÚtmº6U›ªMÕ¦hS´)Ú$m’6I›¨MÔ&jãµñÚxmœ6N§ÑÆhc´ÑÚhm´¨jÚHm¤6R¡ÐFhõáÚpm¨6Tªý¢ý¢ý¢ ÖkƒµŸµŸµŸµAÚ m6P¨ Ôh´š¿æ¯ùký´~Z?­ÖGë£õÖzk½µžZO­§ÖCë¡õкiÝ´nZW­«ÖUë¬uÖ:k´NZ'­ƒÖAë µ×ÚkíµvZ;­ÖFk£µÑZk­µÖZK­¥ÖRóÓü4?­¹Ö\k®5ÓšiÍ´&Z­‰ÖXk¬5Öj µ†Z­Ö@«§ÕÓêiuµºZ]­¶V[«­ÕÒjiµ´Z ­†V]«®UתiÕ´j𝿫ùjU´*ZÍ[óÖ¼µÊZe­²VI«¤UÒ*jµŠZy­¼V^+§•ÓÊie´2Z­´VZ+­•ÒJi¥4ÍCóÐÜ5wÍ]sÓÜ47­¸V\+®ÓŠiÅ´¢ZQ­¨æª¹j®Za­°VX+¨Ô j´Z-Ÿ–O˧¹h.š‹–WË«åÕòhy´QŸ¨OÔGê#õ‘úP}¨>Tï«÷Õûê=õžzO½£ÞQ嘆ÕÛêmõ¦zS½©ÞPo¨7Ôkê5õšúŸúŸúŸzE½¢^Q/«—ÕËê%õ’zI½¨^T/ªçÕóêyõœzN=§†©aj˜zF=£žQO«§ÕÓê)õ”zJ=©žTOª'Ôê õ¸z\=®UªGÕP5T U«‡ÕÃjˆ¢†¨:EUTE•TI•TQUQ5©&Õ¤R©‡ÔƒêAõ z@= PƒÕ`5XݧîS÷©Aj¤îQ÷¨{ÔÝênu·ºSÝ©îTw¨;Ôê6u›ºMݪnU·ª[Ô-êu³ºYݬnT7ªÕ êuƒº^]¯®WשëÔuêuºF]­®VW«+Õ•êJu…ºB]¡.W—«ËÕeê2u™ºD]¢.Q«‹ÕÅêoêoêoêBu¡ºP] .P¨óÔyêjeµ²ZYõR½T/µ¢ZQ­¨VP+¨Ôrj9µœZV-«–UK«¥ÕÒª§ê©zªª‡ê¡–TKª%U7ÕMuSK¨%Ôj1µ˜ZL-ªU‹ª®ª«êªV «…Õ‚jAµ Z@- Pó©ùÔ|ª‹ê¢º¨yÕ¼j^5šGÍ£æRs©¹T'ÕIuRUGÕQÍ¡æPs¨ÙÕìjvÕ^µWíÕlj65›šUͪfU³¨YÔ,êêêjf5³šYͨfT3ªß«ß«ß«Ô j5½š^M¯~£~£~£¦SÓ©éÔ4j5£Ä(1ÊGå£òQ‰R¢”(%R‰T"•÷Ê{彡D(Ê[å­òVy­¼V^+¯”WÊ+å…òBy¡„+áJ¸òLy¦Šâ£TV*+•/ÅKñR**•ŠJ¥‚RA)§”SÊ)e•²JY¥´RZ)­x*žŠ§â¡x(JI¥¤RRqSÜ7¥„RB)¡SŠ)Å”¢JQ¥¨âª¸*®Ja¥°RX)¨T *”J%Ÿ’Oɧ¸(.Š‹’WÉ«äUò(y”'Ÿ“Ãä09L>#Ÿ‘ÏȧåÓòiù”|J>%Ÿ”OÊ'åò ù„|\>.—ÊGå£r¨*‡Ê‡åÃòa9D‘CdUVeU/²$K²$‹²(‹²I6É&ù|H>$”Êåòù€,ËÁò>yŸ¼O’ƒä y¼GÞ#ï’wÉ»äòNy§¼]Þ.o—·ÉÛämòŸòŸòŸòy‹¼EÞ$o’7ÉåòFùùùy½¼^^/¯•×Êkå5òy¼J^%¯’WÊ+å•òïòïòïòry¹¼\^*/•—ÊKä%òy‘¼H^$ÿ&ÿ&ÿ&/È äùò|y¾r/¹—ÜKî)÷”{ÊÝåîrw¹›ÜMî&w‘»È]äÎrg¹³ÜQî(w”ÛËíåör;¹ÜNn#·‘ÛÈ­åÖrk¹¥ÜRn)ûÉ~²ŸÜ\n.7—›ÉÍäfr¹‰ÜDn,7–Ë å†rC¹Ü@n דëÉõäºr]¹®\[®-×–kɵäZr ¹†\C®.W—«ËUåªrUÙWö•}eÙGö‘½eoÙ[ö’½d/¹’\I®$W+Èäòry¹¼\V.+—•ËÈeä2²§ì){Ê¥äRr)¹¤\R.)»Ëî²»\B.!—‹ËÅåârQ¹¨\T."‘‹È…åÂra¹\H.$ Èäür~9¿ì"»È.²³ì,;ËyäJ¥R”%EI‘R¤)½—ÞKï¥)BŠÞHo¤7ÒkéµôZz)½”^J/¤Ò é¹ô\z.=“žIϤ'Òé‰ôXz,=–J¥‡Òéô@º'Ý“îIw¥»Ò]é¶t[º-Ý’nI·¤Ò é†t]º.]—þ“þ“þ“®JW¥«Òeé²tYúWúWúWº(]”.J¤ ÒéœtN:'…IaR˜tF:#‘NK§¥ÓÒ)é”tJ:)”NJ'¤Ò é¸t\:.•ŽJG¥P)T •K‡¥ÃRˆ"…èÿõe_Ò‰’(‰’I2I&étH:$”J¥Òé€,KÁÒ^i¯´W ’‚¤ i·´[Ú-í’vI»¤Òi‡´]Ú.m—¶J[¥­ÒŸÒŸÒŸÒfi³´YÚ$m’6I¤ Òéééi´NZ'­•ÖJk¥ÕÒjiµ´JZ%­’VH+¤ÒïÒïÒïÒ2i™´LZ*-•–J‹¥ÅÒbi‘´HZ$-”J ¥Òi4Oš'Í“æJs¥¹ÒiŽ4Gš-Í–fK3¥™ÒLi†4Cš!M“¦IÓ¤©ÒTiª4Yš,M–&I“¤IÒi‚4A'“ÆIc¥±ÒXi´4Z-’FI£¤‘ÒHi¤ HÒpi¸4\& “†I¿H¿H¿HC¤!Òégégégi4H$ ”J¥Òi€ä/ùKþR?©ŸÔOê#õ‘úH½¥ÞRo©§ÔSê)õzH=¤nR7©›ÔUê*u•:K¥ÎR'©“ÔIê u:Hí¥öR{©­ÔVj+µ‘ÚHm¤VR+©•ÔRj)µ”ZH-¤R3©™ÔLj*5•šJ¥ÆRc©‘ÔHj$5H ¤úR}©¾TWª+Õ•êHu¤:R-©–TKª)Õ”jJÕ¥êRu©šTMª&ùJ¾’¯TEª"U‘¼%oÉ[ª,U–*K•¤JR%©¢TQª(•—ÊKå¥rR9©œTF*#•‘JK¥¥ÒR)©”TJò<$É]r—Ü%7ÉMr“ŠKÅ¥âRQ©¨TT*"‘ŠH…¥ÂRa©TH*$ H¤üR~)¿ä"¹H.’³ä,9Ky¤ŸˆOÄÇâcñ±øP|(>ˆÄâ=ñžxO¼+ÞÅÛâmñ–xK¼%Þoˆ7Äkâ5ñšøŸøŸøŸxE¼"^/‹—ÅËâ%ñ’xI¼(^/ŠçÅóâyñœxN<'žÏŠgÅ3âñŒøøøxJ<%žÿÿÿOˆ'Äâ1ñ˜xL<*ŠGÄ#âñ°xX<¬ŸüÓÜ×yQ'ˆ‚(ˆ‡ÄCâ!ñ/ñ/ñ/ñ€x@< î÷‹ûÅ}â>qŸ¸WÜ+î÷ˆ{Ä=ânq·¸[Ü)îwŠ;Äâq›¸MÜ&n·Š[Å-âq‹¸YÜ,n7ŠÅâqƒ¸A\/®׋kŵâZq¸F\#®W‰«Ä•âJq¥ø»ø»ø»¸\\..—ŠKÅ¥âq‰¸D\$.‰¿‰¿‰¿‰ Äâq¾8_œ/ÎçŠsÅ_Å_Å_ÅÙâlq¶8Kœ%Îgˆ3Äâtqº8]œ*N§Š“ÅÉâdq’8Iœ$N'ˆÄñâxq¼8V+ŽLjcÄ1â(q”8J Å@1@ Äâq„8L&‡ŠCÅ¡âqˆ8D,‹ƒÄAâ ñ'ñ'ñ'q€8@ öû‹ýÅ~b?±ŸØGì#ö{‹½ÅÞbO±§ØSì!ö{ˆÝÄnb7±«ØUì*v;‹ÅNb'±“ØAì vÛ‹íÅöb[±­ØVl#¶Ûˆ­ÄVb+±¥ØRl)¶[ˆ-Äæbs±¹ØTl*6‹ÅÆb#±‘ØHl 6ˆõÅúb}±®XW¬+ÖëˆuÄZb-±–XS¬)Ö«‹ÕÅêb5±šXMô}E_±ŠXE¬"z‹Þ¢·XY¬,V+‰•ÄJbE±¢XQ,/–Ë‹eŲbY±ŒXF,#zŠž¢§XJ,%–KŠ%Å’¢»è.º‹%Äb ±¸X\,.‹ŠEÅ"b±ˆXX,, ‰…ÄBb±€X@Ì/æó‹.¢‹è":‹Î¢³˜GÌ#æs‰¹Ä\¢“è$:‰9ÅœbN1‡˜CÌ!:ˆ¢ƒh/Ú‹ö¢h'Ú‰YŬbVñGñGñGñññ1“˜IÌ$f3ŠÅïÄïÄïÄ b1ƒø­ø­ø­˜NL'¦ÓŠiÅ´BŒ#ÄÑB´-D QB”ðAø |Þ ï…÷Â;áðNx+¼Þ o„7Âá•ðJx%¼^ /…p!\ž Ï…çÂSá©ðTx,< „GÂ#áð@x Üî ÷…»Â]á®pG¸#Ün ·„[ÂMá¦pS¸.\® ׄkÂ5áªpU¸*\®W„………KÂ%á’pA¸ \Î ç„sB˜&„ g„3Âá´pZ8-œN §„“ÂIá¤pB8!œŽ Ç…ãÂQá¨pTB…Pá°pX8,„!Bˆ  ª  ² ² ’ :“`LÂ_Â_Â_ÂAá pPØ/ìö ÁB°,ìö {… !Hv »…ÝÂ.a—°KØ!ìvÛ…íÂva«°UØ*l¶[„ÍÂfa³°QØ(l6„ Âza½°^X'¬Ö k„5Âaµ°ZX-¬V +… a…°\X.,– Ë„eÂa‰°DX$, ¿ ¿ ¿ „Âa¾0_˜/Ìæ s…_…_…_…ÙÂla¶0K˜%Ìf3„Âtaº0]˜*L¦ S„)Âa’0I˜$L&„ñÂxa¼0V+ŒÆc„1Â(a”0J…@!@„Âa„0L& † C…¡Âaˆ0D,  ƒ„A a 0P( Á_ðú ý„~B¡ÐGè-ôz =…žBO¡‡ÐCè!tº Ý„®BW¡«ÐYè,t: „NB¡ƒÐAh'´Ú m…¶B[¡µÐZh-´Z ­?ÁOðZ-„B3¡™ÐLh*4š …ÆBc¡‘ÐHh$4 „zB=¡žPW¨+Ôj µ…ÚB-¡–PK¨!ÔjÕ…êBu¡ªPU¨*ø ¾‚¯à#ø>‚·à-x ^‚—à%T* •„ B¡‚PN('”Ê e…²Bi¡´PZð<OÁCð<„’BI¡¤à&¸ nB ¡„PB(&Š E…¢BQÁUp\…BB!¡PP((ò ù…üB>!ŸOpœg!¯WÈ+är ¹…\B.!—à(8 ŽBN!§SÈ.d² ö‚½`/d² Ù„¬BV!«EÈ"d~~~2 ™…ÌBF!£Qø^ø^ø^È d2é…ôBzááá!NH'¤ÒiLѦhS´é£é£é£éƒéƒéƒ)ÒiŠ4½3½3½3E˜"L¦7¦7¦7¦×¦×¦×¦—¦—¦—¦¦¦¦ç¦ç¦ç¦§¦§¦§¦'¦'¦'¦G¦G¦G¦‡¦‡¦‡¦û¦û¦û¦{¦{¦{¦;¦;¦;¦Û¦Û¦Û¦›¦›¦›¦¦¦¦k¦k¦k¦«¦«¦«¦+¦+¦+¦Mÿšþ5]2]2]2]0]0]0777…™ÂLa¦³¦³¦³¦Ó¦Ó¦Ó¦Lÿ˜þ1444000777555…šBM¡¦Ã¦Ã¦Ã¦Sˆ)D?m¯Ÿ®Ó?¶'é€Ä` y(0$``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &ÀgØÅ‰þlá;ÑP[¶€˜ŸAHØþw"0:``|! `û߉Àè€ €ð„4€í'°F-%®þ€1à3iÛÿNü½yòoÔ€5°ÀÀøŒÞkâÚè i/¶!ˆø¾00¤Àø¾¬AL )0¾ïk@ @ €ï;ÀÀÀàû°00lÂí÷ß>ü«ë¯®¿º6lÓ°MÃ6¥œK9—rv\â¸ÄqI±iŦ›V{Oí=µ÷Œj9ªå¨–—;^îx¹cÒÛÑQŸÞ,ýÿ·^Üzqkáñ…Çoš§iž¦yÊÜ(s£Ì ý½äÏš?kþ¬U\TqÑ §ANƒœÄ‚bA±`Ò¼—çYŸg}žuóØÍc7íš©k¦®™ªT®R¹Je×½®{]÷æØ—c_Ž}E]\t±¯›¯›¯[×]?tý°eЖA[é_k;ýlI´s´s´ó»€wï¾ôk?ºtÿè®ÜUî*w9ùËÉ_Nê³®¤wIï’Þ97æÜ˜s£³³³gÏ,žY:UêT©S¥åÝ–w[ÞíUÈ«W!‰×?À_Ç–ÇôKçüét§ÓN§×ªy«æ­š·°VX+¬éµE?~½æ¬»´îÒºKo6¼Ùðfƒ5Gò`䃑F.ùuɯK~mìÕØ«±—gŒgŒgLnÿÜþ¹ýsÌ52×H·vníÜÚµÚnh»¡+j¬¨±¢†õûgmguHšï»ˆiÓ"¦í(´£ÐŽBCÅ¡âP±æéš§kž.Ñ·Dß}ó´ÏÓ>Oûì!ÙC²‡:[èl¡³åÔrj9U_•æ?œÿpþÃ[çn»uŽOGø:ÀÀøŒÄ;Yþ"üEø‹~¿ôû¥ß/ÙÒfK›-­]<$Þ1[¿ý´¾~jûK¿–RK©¥$F˜§G c‹Œ-2¶ˆñ~]ë'ëõ?ë1FÒÌ4Kÿÿ¡ÿCÿ‡þ“þžô÷¤¿õh¡àÍ‚7 Þüº±Þ^f{™íeŠ(ðuýãRÒ¥¤KIýÏw7ÝÝtwSJùN4^mIécûÿè¿xá÷ß?~ÿ|éñë¿Ìa©?õ_•XpyÁå—¿®2ÄþŽKŒbŒL®ÕÁ.AYóН÷½Þ÷zß8ÇqŽãó¹äsÉçŸW4ÿTÀç1X˜Ÿ‘!Í?öÿØÿcŸÓú±é× Ç>ž¤ €õE¿Â)þïE¿,¡NvŸ*pªÀ©E6ÙPdC†úu‡ {RÞúñÒ¯Ó¯ü³ôUúufq¿¢þ+úux Û?±c[þN4^m1Ƙêÿz¥ñ•ÆWÇ®o_G¿~7öžõëã›E5‹jÿž‰ÔÅ¿OŒ4‚É»:$e|úÕéW§_éU×.8Mwšî4Ö#&Àg$lHsqÆÅgxQàE {‚ؽ{÷ u%“5= ÿëø÷ãߟ°ïE¿h|Nvë·!Õo‹j—h6P‰»Ÿ?4üÐðCÃ>óûÌï3ßšc‹;~êñÔ㩇~›k»D¶ìçe?/ûÙÖ¾W[Œ4¦úöúÍê˜Ëž){¦ìýÏm´YÐfAÂöI4ÒHŸÙh¤´…Õ!ià3wÎÜ9s'ö•Ö‰'ö/ýðÙ q#&Àg$TH£ßˆXŠdÜû¬?¬þ°úöUßV}[uý)€ïû½ï÷¾Ÿ~Ï}îûsߟ–Œº¿Õý­îoI‡Î :+ÛËl/³½Œý÷ú³9wfß™}gvýÉšzœ£…j¡Zè€:ê ¨cÍÉîMs6ÍÙ4çKV¿1rì0Æý»]ow½ÝõV³ÞÏw‚ïß Þ}o÷½Ý÷š?mþ´ùSëo²š3MÿWÿžþ=ý{ZX €õç‰êÏ{Í27ËÜ,³þ¼ä/o¼¼ñR¿nR¿%ïßUÿ®úwUýÔq÷¶~}dðïÁ¿ÿn ߉ƫ-ÆÓÖëZ¯k½.öߨ߶¿m{ļóFÌ;¿ùüæó›ß.~»øíâ°#aGÂŽÌÍ97çÜœÖÜÆÙÒ5šê5ª×¨žþŽô 6²½×p¯á^ÃãÞ§¾.ÿÙåÏ.v9{þìù³çõÙõ2ìeØË0}>ë·ûÖoæ÷ÞôçÖ nÀÀøŒ„ i&L˜`ñtüËl/³½Œ}U–5ûßQhG¡…—8.q\’°Ï2´¦<Ü=Ü=Ücÿ~}ª~Z<î×Zlý±õÇâ>ÎvCÛ m7ôK¹}¯ö½Ú÷²´O‡0‡0‡°µÖ>XûÀú}nغa놭±ŸœPGkM?ëá–ùßëã>äê«C®xpàÁúmHõ[…Ì_eÞwó¾›÷]ÜaöþÙûgïŸmýœÑÃŒ¸G³ÐÙBg MŒþ!6ê˜Æ¾êQ(-”Jǽ7=tüÒ«*õï/kªîýñ׎·ØÏ*NÍ#h›«CÂ~ßé!tÜkºë~éþ­™·!B„à,!&ÀgÄÿdñ厗;^î¨_Á–7äÔcऀcÓ¯[ÒoSlý«4)ѤD“ñyŠmlúµzq§ý~]?è1pÜûׯcKØ™û £±of{ÝîºÝõ/Sý rKOÖŸ“ªßÎô+¡,1Yb²ÄÝ?Mx4áQòÆ6Fª-ÆSþÄkë÷ßíI·'ÝžX³çANƒœ9}é17öjìÕØËÒ>‹M+6­Ø4ë÷–FÐV‡Ä¨$-å–rKÙÒ~¦Ÿ>~úø¯, Yb²Äd‰»F×]{tm®€%ÀÀøŒøŸ,ìØ#°GÜ7"ŽÿqZssËÄ;żÓñNÇ;}éþõÛY[Ú§~Å­õ{ëú¡ë‡®,íM¿ivüû¹í¤¶“ÚN²ô*=Nõ8ÕãTâõ³gŒgŒgŒ~ëÔ/}•ɦɦÉ&K{^cuŽÕ9â'è·Ñ¶ô*ù\ò¹äsI¼þI.§ÓNw:]Ò×ciÑÅE]1-bZÄDªúµÂqïY:øãF=nô¥G¾÷àÞƒ{Æ}½2ß•¶¶:$ì÷.î:\XvaÙ…eñ»¥ã–Ž[:ÎÒþ;´îкCk`XBL €ÏˆÏÉbýv—o¼Yð¦¥=ücÿý?öñ?{)ðRà¥À¤€«ýXíÇj?~Ý1_õ½ê{Õ7þG«?³3î[4ŸÛnÿ¹ýñïgý™£qÇ?úó8¶Ÿu±okýžõkï\÷ºîuÝk¾ÏÒÏK?/ý\ iB}×ìJ¿+ý®ô–Þ…þÌÄèŸÔ§†1ýÕõW×_]¿t¶_Ë-ÿµüqïy╉W&^ùºj ßÑ!þU+5Œ -¬ û}[Ü+Î×­±Å¾ÇÃø÷ÿÿmUáU…W&€%ÀÀøŒøœ,Žû¦ÄU\TqQ­O}Ÿú>õ“2žå7Ëo–ß×í9öMAãs´{.碥=x·õnëÝ6aûÙk¸×p¯á–^1ø÷à߃OØ~ŽO”÷³Qõ[•&l _q˜Û?·nK7<ÿÒW$NmcûZ^ë÷û)³q‡~]ÿÄ}5­õûL #h «CÂ~ßÅûÊisúÓù€äBL €ÏˆÏÉâ¹9çæœ›31®B³$îŠ&F¼3ûÎì;³'ïéøqŽãÇ9ZÚCì>I¨~Ž=v õŠq÷ÃÔUSWM]õuïbÞwó¾›÷]ÂÞ Õõ‡ÕV˜ù+ƾYwBõOj €SØ޼}óöÍÛ‰QUôk+“k]H=#h «Câí³ú³êϪ?‹û6ã\¡ €äBL €ÏˆÏÉâŽu;ÖíX×Òׯ¾n5¡Žv×Û]ow½MÊX*’«‡uê5ª×¨ž¥= :t4û9Λ©¶¸ÖâZ‹k ¥Ä¾šüK¶ÝÐvCÛ M¼[•ZÒ¹xçâ‹›¿bí=µ÷ÔÞ“ôóÄHµ%5Œi´s´s´sbôm|öœP³15Œ -¬‰·Ï™ÝgvŸÙÝú_98ðàÀƒ¿ô™ÖÀ×!&ÀgÄçdqå>•ûTîcék¯4¾ÒøJã„=Zkžœ°=pwÓÝMw7%WëÊ•*””ý|qÆÅgXzEýÑ Û7ÒÞH{#í×mÜó0ééÇ“ôó$õÔÆ4±gKü÷ŸFÐV‡ÄÛç‹[/n½¸õ¥ýì¸Äq‰ãýϳkή9»¦ª…j¡o¿]üv1Ÿ¸P€ €ðñ9Y\¢o‰¾%úZúÚg.Ï\ž¹$ìÑ>nô¸ÑãFItÿèþÑ=¹zXWdC‘ E6ØN?ëãž°ýþ"üEø‹¯;Ú¸çaÒóp÷p÷pOúy’zj cjûpjA[X{ŸgÏŸ=ö|bŒˆþë\|À×!&ÀgÄçdqžöyÚçioék#ÛG¶lŸ°G«ß^2)àäía]ìkªl¡ŸõqOà~È“%&Ë×mnÿÜþ¹ým'j*ð¢À‹/lm¦¬Ú˜¦ôªÅ&×þcŸF>ù`¤¾‡li³¥Í–6¡Æ¥œZN-§êÖ¯9æS¬AL €ÏˆÏÉb‡0‡0‡°¤ &?4üÐðCCàäíçì!ÙC²‡ØN?çØ—c_Ž}¶5éÇckó0eÕÆ4¥W-F0¹öŸØÇ|~óùÍç7ë{+{¦ì™²g,¤OS M4)·â )à3âs²¸ÐÙBg MÊ[ëûLmpÒßú©ÇS§–^Ñu¯ë^×½¶ÓÏ…µÂZaÍÒžSʳ' €S#U-F0¹öŸô•Dßó¼wóÞÍ{ר«±Wc¯\#sÌ52þ‘0ŸÐ` 00>#>§_cß¼ÑÜUß«¾W}öh¯å¿–ÿZþÔ—*T>()ûYß§¥WÔÇvú9îyxóöÍÛ7oû;1µÕÆÔö«#˜\û·…Jbþºí†¶Ún¨õÁpì+ÈùœsÀÀøŒøœ,®?¬þ°úÃ,}íÞƒ{î=˜°G{`Ì1Ƥ¶¸Q½FõÕKÊ~:t4訥WlлAï½m§Ÿ¶iئaK{>éyÒ󤧱¿÷ŽÓ”^µÁäÚ¿-W’ØO—÷ŒñŒñüÌÑŽ˜7bÞˆyÄÀ0GL €ÏˆÏÉâÀ={XúÚ©«¦®šº*aOÝÎò›å7Ë/µÀcÊ)?¦|Röó”íS¶OÙnéGµÕrTË/}ÅÄëç¸ûg×Û]ow½5öw¢ñÞcjìªÅ&ÞþSJ%yßï}¿÷ýâ>Ú Tø£ÂÀ0GL €ÏˆÏÉâÝ÷vßÛ}ÏÒ×V©\¥r•Ê {ê¶–RK©¥¤¶XK’²Ÿ½Ûz·õnwxc;ðž‹{.î¹hiÏí{µïÕ¾WÂöÏà;Áw‚½†zSî*w•»¶6SVmaLSzÕb“kÿ µâLÿéíÜþsûÏíO¨Q;ÑäD“M,mžöyÚçiÏç4˜#&ÀgÄçdñãF=näææfiç7Ÿß|~süÓš§ÿ5¶¦Ÿ/θ8ãâŒømØ‘°#aG,½ŠýmûÛö·ú?ôèo;ýüÔã©ÇSì!ÙC²‡X:愚,]ݘ-m¶´ÙÒêÇckó0eÕÆ4¥W-F0¹öÿ}‡ŠCEK{ÿ~üûñïª^†½ {F €/EL €ÏˆÿÉâ.¹ºäê’ËÒZ¯k½®õºøŸ,îqªÇ©§Rg¬ëT©S¥N•ûŠº–rK¹¥léUôcHÞ~°¤ûÝÿëþŸ¥ý÷Øwb߉ñ­ð4áiÂÓ¸”t)éRÒüUô+Ôm³RbmaLSzÕb“~ÿñßç¼wóÞÍ{giõ&×›\orBõÀ‘åG–Y÷- ùœsÀÀøŒøŸ,>¼åð–Ã[âÞÏšˆ5k"¾îõ[‰êWq¥æXr$‡¸÷¶qÅÆW|Ýq®É°&Ú qï_~-¿–_Ûf?utÔÑQq¿ÊÚk¬}ðuûÿÐðCà {5öjìeiÿÛËl/³½ŒmöOJ¬-ŒiJ¯ZŒ`Òï?î}F;G;G;ǽ‡¿«þ]õïªqïçën©m.ö/˜Xq`ÅùœsÀÀøŒ„:ÝfA›mXÚ~ûb=b´~Ÿú3†¦;Mwšngµäê¤Ù«Ý­v·Úmio9ö娗cß—îY—¸o1­¯íôƒ%Ýžt{Ò퉥WÉö2ÛËl/ÿ÷ŠYb²Äd±fŸÏ³>Ïú²}À„€ â>ÚØ¿^Ƨ5ÄFL €ÏH¨ÐúiekÚFõÕkTOÿóí÷ß>ü¾ßû~ïû=ù`䃑uþ«ó_;ÖíX·c]ó¯íµ«×®^»,íYŠ“«’fÿ÷–Ü[ro‰5ýÜâZ‹k-®é×OßÝtwÓÝMúiwýÏ»Þîz»ëm“MJ4)÷~ ¤)¦@}t’÷ƤÖxæòÌ噋5ý£ß\tÙÏË~^öó…e–]Xö*äUÈ«'UžTyR%tVè¬ÐYsÊÍ)7§\>—|.ù\âþå†ìÿ±ÿÇ>ñúÇv$ýˆuLm§ª$öþÁ¤Ü¿¥ç.ë†í¶cØý¦ÙúÊ«¯æûÑïÛ÷ƾ3‡~ÿ‰+¯4¾ÒX5}ÿ7^ÞxyãeÈ!¦®šºjêª"Šl(²!î=ë¿4À'4XBL €ÏHØбoœ°êþV÷·º¿EL‹˜1-î¨2y{ iö¯…j¡ZhbG}Î>Î>Î>zèbû‘Ul§ÓNw:]b÷~åâ–A[m”Øý“š`£Ž©-7%ÆþÁ¤Ùå>•ûTîÿïkýfÑÍ27ËÜ,sRVŸú>õ}êëWxsí/,!&Àg$Æ hkž h½z“ëM®7ù©ÇS§qÿÏ}Kô-Ñ×z iö¼ÓñNÇ;%Æ)xýöž±[îK.^ ¼˜ýãRÒ¥¤KIý*ê¤ùN$6Þ˜ÚòwSâíŸLìý®=ºöèÚ õ}ývñÛÅo'Mmi)·”[Ê/n½¸õâÑ/âFL €ÏH¼ܱoûû)Ö°¿mÛþv`À=ô'8ê¯ß^ÒÒW•¹QæF™¶ÓI³ÿðá/Â_è{‹ûæŸqÓŸ<þûñßÿ^¿gž‚OúXûªñ\#sÌ5òëúG¿©lS=Nõ8¥ß45)û‡ØxcjËßM‰½F0ñö÷}2¾òµ²Äd‰É¢ÿO÷î Ü$T=©š·jÞªyƒŽ :»Oøl€¸À&Ü:wëÜ­só¾›÷ݼïê«?¬þ0·vníÜÚåܘscÎú•»µ÷ÔÞS{þŒ@K§òŽ::ê訸ošû9öuÒ‹w.Þ¹¸w[ï¶Þm k…µÂš»îuÝëºWÿû®™ºfêšióØÍc7M ·ÜŒl÷”zJ=%_7_7_7ýŠg½ôg‹zÆxÆxÆèÏ¢^¼rñÊÅ+c?}™ïhÆŒ -ÓŸøû.ú:«¯¹zˆ[g}õuÖë«Àì:VûÊ]Ï,žY<³xQàEú¨é¯¥¯>úÓõ×Ò? \œqqÆÅIók@0``Ø´/½iߟûþÜ÷§¥x@uÔáT²5ýÌiwú‡1#Èj˨ %"&€¡,Ú¶hÛ¢m–N.ë×q¢À¨€ €èôÛr¼ùÿß*.ª¸¨â¢„}­×Z\kqÍR|`Ì1Æ00þä]K¡ì…e–]XÿW¹–ÿZþkùÂÂÂÌ_%Oû<íó´˜1-b#`TÀÀHtÓæN›;m®¥¸sñÎÅ;ÏU¹Q>Q>Q>ÍŸ6Úü©¥W鵫׮^» c#&@¢»uîÖ¹[çìâôsÆŸ3þœ1ýÏbA± Xðæí›·oÞŽlÙ>²ýƒ‘F>r ä@ÈQ-GµÕ2ÖüYóg{ŸCÅ¡âP‘þH € €DôçïÚ%¡ªy«æ­š÷UÈ«W!\û  IÅŽcþ<à×û^ï{½è õ &@²Ñ?‹–ô.é]Ò;þ¡¯w[ï¶Þm÷\ÜsqÏŘ,1Yb²ý¤6ÀÀHfÑÎÑÎÑÎúçRý9Á z7èÝ ·[;·vníò6ÌÛ0oÃì!ÙC²‡ÙPdC‘ ^ý†{ oµ»ÕîV»ç?œÿpþÃ3wÎÜ9s‡ÐÀÀ°i–®÷¥g`Ž˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €ðÿh‡­ÞŽ$ÓšLÛÑdÚŽ%Óv<É·É´ýLÛÉdÚN%ÓöO2m§“i;“LÛÙdÚÂ’i;—äÛùdÚ.$Óv1™¶KÉ´ý›LÛådÚ®$Óv5™¶ÿ’i»–LÛõdÚn$ùv3™¶[É´ÝN¦íN2mw“i»—LÛýdÚ$Óö0™¶GÉ´=N¦íI2mO“|{–LÛódÚ“i{‘LÛËdÚ^%Óö:™¶7É´½M¦-"™¶wÉ´½O¦-2™¶I¾E%Óö1™¶èdÚb’g I“L[ÚdÚÒ%ÓöMbmÀ`XÀ`† €u 0€Ôðð㦛>nª…$Úv8™6žIÌÓˆy±í?8õ<‡8õ<8õ<{ø\2m©çÙéç©Ã©çyéçIÃ1ø0” ÀK þŠ epbðœ epOb° epûŒÁ0” ÀÛ²Ÿ,@™¼]Ù1X€28C^ € LΓƒ`(€³m7 ÀP&ïǶbð¿>¯@’q‡q€6ïãåãåãEؼÝž¾nffffffffffff¶Å}N}ÏwÏwÏwN&o¯O¯O¯O777—§ßéùý¶ësð›b¡“É0…Ûãéx:ž.¾Óó×¾s0” Ày¶}ç`(€3dDß9ÊàíÊ‹¾s0” ÀÛ’}ç`(€ûÛOô€ LîiŸÑwN€2¸ÑwN€2øo‰¾_€ L¾>Ñ÷0” À×!úV ÀP&ÿÑw Êàu‰¾k€ L^Nôý 0” ÀËÃ8Œƒè».Êàå·óá|}×%@™¼–ù=`Ñw9Ê`z€ L¦'Ê`z€ L¦'Ê`z€ L¦'Ê`z€ L¦'Ê`z€ L¦'Ê`z€ L¦'Ê`z€BÀ!`€0@ „ B!„€BÀ!`€0@ „ B!„€BÀ!`€0@ „ B!„€BÀ!`€0@ „ B!„€BÀ!`€0@ „ B!„€BÀ!`€0@ „ B!„€BÀ!`€0@ „ B!„€BÀ!`€0@ „ B!„€BÀ!`€ÿ¨´œ$¥Y…%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/interval.png000066400000000000000000001026541431412030200252250ustar00rootroot00000000000000‰PNG  IHDRT¤FÚgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚíÝwTgÿÿ5åŽ1·bG¥X`D±‹`ï½k$*vÅnŒF%öнwc‰Kd:ØP#–hì½ÆÞüþ¸ò9?ò]—{•¶»<{ÎO3×\{Í쾯3“..E~ùYägfˆœ4e2ÙtÀ|Ò\,þ{dúÈô‘é#ÓE¦‹LgıF¬ñÞxo¼7Þo·ÆãñÆxe¼2^/—ÆKã¹ñÜxn<3žÏŒ'Æã‰ñØxl<6ŒGÆãñÀ¸oÜ7î÷Œ{Æ=ã®q׸kÜ6n·[Æ-ã–qøaÜ0®×ëÆUãªqÕ¸b\1®—ŒKÆ%ã¢qѸhœ7ÎçsÆ9ãœqÖ8kœ5ÎgŒ3Æiã´qÚ8eœ2N'“ÆIã¸qÜ8nÄ1FŒñ‡ñ‡ñ‡qÔ8j5‡ÃF´mDƒÆAã€qÀ8`ì7öû(#ʈ2"H#ÒÐ ÝÐ ÍÐ ÍP ÅP Ù Ùˆ0"Œc¯±×Økì1ö{ŒÝÆnc·±ÓØiì4Âp#ÜØaì0vÛíÆvãWãWãWc«±ÕØjl1¶[Œ_Œ_Œ_ŒMÆ&c“±ÁØ`l0ÖëõÆZc­±ÖXc¬1Ö«ŒUÆ*c¥±ÒXi,7–ËeÆ2c™±ÔXj,5‹ÅÆ"c‘±ÈX`,0óùÆ|cž1ϘgÌ5æsÙÆlc¶1˘eÌ2f3ŒÆtcº1ݘjL5¦SŒ)Æãgãgãgc’1ɘdL4&ñÆxc¼ñ“ñ“ñ“1ÖkŒ5ÆcŒ1Æhc´1ÚeŒ2F#‘ÆHã{ã{ã{c¸1Ün 3†ÃŒ!Æcˆ1Øl 6F¨j„ýþF£ŸÑÏègô5ú}ÞFo£·ÑËèeô2z=ŒFˆb„ÝŒnF7£«ÑÕèjÁF°ÑÅèbt1:ÎF'£“ÑÉè`t0:íöF{£­ÑÖhk´1ÚmŒÖFk£µÑÒhi´4Z-ŒF3£™ÑÌhj45šÆFc£‘ÑÈhd40 ŒúF}£¾QרkÔ5êuŒ:F-£–Q˨iÔ4jF hÔ0j5ŒêFu£ºQͨfT3ªUªFe£²QÙ¨dT2*Œ FÃßð7ürF9£œágø~†¯ákø>†ác”1ÊeŒÒFi£´QÒ(i”4¼ /ÃËð0< £„QÂ(a3ŠÅŒ¢FQ£¨QÄ(b1 …†›áf¸‚FA£€QÀ(`¸®†«áb¸.†“ád8ùŒ|F>#‘ÇÈc8ކ£‘ËÈeä2r9œFv#»‘ÝÈfd3²†ƒá`d1²YŒÿÿ5þk|c|c|cd22™ŒŒFF#£ñ•ñ•ñ•ñ¥ñ¥ñ¥ñ…ñ…ñ…ñ™ñ™ñ™‘ÁÈ`d0ÒéŒtzœ§Çéïõ÷ú{ýþN§¿Ñßèoô×úkýµþR©¿Ô_è/ôú3ý™þLª?ÕŸêõÇúcý‘þH¤?Ôêõûú}ý¾þ·þ·þ·~W¿«ßÕïèwô;ú-ý–~K¿©ßÔoê×õëúuýš~M¿¦_ѯèWôËúeý²~Q¿¨_Ô/èô ú9ýœ~N?«ŸÕÏêgô3úý´~Z?­ŸÒOé§ô“úIý¤~B?¡ŸÐcô=F?¦ÓéGõ£úQýˆ~D?¢GëÑz´~H?¤Òèôú~}¿¾_Ò£ô(=RÔ#uAÓ5]Ó]Ñ]Öe]Ö#ô=Bß«ïÕ÷ê{ô=ú}·¾[ß­ïÔwê;õp=\×wè;ôúv}»¾]ÿUÿUÿUߪoÕ·ê[ô-úýýý}“¾IߤoÐ7èôõúz}½¾V_«¯Õ×èkô5ú*}•¾J_©¯ÔWêËõåúr}™¾L_¦/Ñ—èKôÅúb}±¾P_¨/Ôè ôz˜¦‡éóôyú<}Ž>GŸ£ÏÖgë³õYú,}–>CŸ¡ÏЧëÓõéúT}ª>UŸ¢Oѧè?ë?ë?ë“ôIú$}‚>AŸ ×Çëãõqú8}œ>V«ÕÔÔÔGë£õÑúúúúH}¤>R¡ÐGèÃõáúp}¨>TªчèCôAú }>P¨Ôèôz½¿Þ_ï«÷Õûê}ô>z½·Þ[ï­÷Ô{ê=õz½‡Þ]ï®w×»éÝônúwúwúwz°¬ëßêßêßêõÎzg½£ÞQï¨wÐ;èôvz;½ÞVo«·Õ[ë­õÖz+½•ÞJo¡·Ð[èÍõæzs½©ÞToª7Ñ›èMôFz#½‘ÞPo¨7Ôëëõõúz=½ž^O¯£×ÑëèµõÚzm½¦^S¯©éAz¨êz€ èÕõêzu½ª^U¯ªWÑ«èUôJz%½’^Q¯¨WÔýuÝ_/¯—×Ëë~ºŸî§—ÕËêeuÝG÷ѽuoÝ[/­—ÖKë¥ôRz)ÝK÷Ò½tOÝS÷ÔKè%ôzq½¸^\/ªÕ‹êEô"z½°^X/¬»énº›^P/¨Ô èôº«îª»ê.º‹î¢;éNº“žOϧçÓóèyô<º£î¨;ê¹õÜzn=§žSÏ©çÐsè9ôlz6=›žUϪgÕ³èYô,zf=³žYÿFÿFÿFϤgÒ3éõŒzFý+ý+ý+ýKýKýKý ý ý ý3ý3ý3=ƒžAÏ §ÓÓéé´8-N‹ÓÞkïµ÷Ú;íöN{£½ÑÞh¯µ×Úkí¥öR{©½Ð^h/´gÚ3í™öT{ª=ÕkµÇÚ#í‘öH{ =Ðh÷µûÚ}ížvO»§ÝÕîjwµÛÚmí¶vK»¥ÝÒnh7´Úuíºv]»¦]Ó®iW´+Úí²vY»¬]Ô.jµ Úí‚vN;§ÓÎjgµ³ÚíŒvF;­ÖNk§´SÚ)í¤vR;©׎kǵ-F‹ÑþÐþÐþÐŽjGµ£Úaí°vX‹Ö¢µhí vP;¨Ðh´}Ú>mŸ¥EiQâK8 hª¦jª¦hЦh’&i’¡EhÚïÚïÚïÚm¶GÛ¥íÒvi;µÚNí7í7í7m‡¶CÛ¡ýªýªýªmÓ¶iÛ´-Úm‹¶YÛ¬mÖ6i›´MÚFm£¶Q[¯­×Ökë´uÚ:m¶F[£­ÖVk«µ•ÚJm¥¶B[¡­Ð–k˵åÚRm©¶T[¢-Ñ–h‹´EÚ"m¡¶P[¨Í׿kóµ0-L Óæjsµ¹ÚmŽ6G›¥ÍÒfi3µ™ÚLmº6]›®MÓ¦iÓ´)ÚmŠ6Y›¬MÖ&i“´IÚDm¢6Q¯×Æk?i?i?icµ±ÚXmŒ6F£ÖFk£µQÚ(m”6R©Ô¾×¾×¾×†kõáÚ0m˜6L¢ цhƒµÁÚ`m 6P¨…j¡Z¨Ö_ë¯õ×úiý´~Z­ÖGë­õÖzk=µžZO­‡ÖCë¡u׺kݵnZ7­›ööö¬kÁÚ·Ú·Ú·Zg­³ÖYë¨uÔ:j´Z­ÖNk§µÕÚjmµÖZk­µÖJk¥µÒZh-´Zs­¹Ö\kª5ÕšjM´&Z­‘ÖHk¤5Ôj µúZ}­¾VO«§ÕÓêhu´:Zm­¶V[«©ÕÔjjAZ¤ÕÐjh5´-@ ЪiÕ´jZU­ªVU«¢UѪh•´JZ%­¢VQ«¨ùkþš¿V^+¯•×ü4?ÍO+«•ÕÊj>šæ£ykÞš·VZ+­•ÖJi¥´R𗿥yižš§æ©•ÐJh%´âZq­¸VT+ªÕŠhE´"Za­°VXsÓÜ47­ VP+¨Ð h4WÍUsÕ\4ÍEsÒœ4'-Ÿ–O˧åÑòhy4GÍQsÔri¹´\ZN-§–SË®eײkÙ´lZ6ÍAsд,Z-‹ö_í¿Úµo´o´o´¯µ¯µ¯µŒZF-£öí?Ú´/µ/µ/µÏµÏµÏµÏ´Ï´Ï´ôZz-½–NK§¥ScÕX5V}¯¾Wß«oÕ·ê[õúF}£¾R_©¯Ô—êKõ¥ú\}®>WŸ©ÏÔgêõ‰úD}¬>V«Õ‡êCõú@} þ­þ­þ­ÞSï©÷Ô;êõŽz[½­ÞVoª7Õ›ê õ†zC½¦^S¯©WÕ«êUõ²zY½¬^R/©—Ô êõ‚z^=¯žWϪgÕ³ê_ê_ê_êiõ´zZýSýSýS=©žTOª'Ôê 5FQcÔcê1õ˜zT=ªU¨GÔ#j´­F«‡ÔCê!õ€z@= îW÷«ûÕ(5JR#ÕH5RÕU]ÕÅ @UTEUTY•UYP#Ôu¯ºWÝ«îQ÷¨{ÔÝênu·ºSÝ©îTÃÕp5\Ý¡îPw¨ÛÕíêvu›ºMݦnU·ª[ÕÍêfu³ú‹ú‹ú‹ºQݨnT7¨Ô ê:uºN]«®Uת«ÕÕêju•ºJ]¥®PW¨+Ôåêru¹ºT]ª.U—¨KÔ%ê"u‘ºH]¨.TªóÕùê|5L SÃÔ¹ê\u®:G£ÎQg©³ÔYêLu¦:S®NW§«ÓÔiê4uŠ:E¢NV'«“ÕIê$u’:Q¨NTÇ«ãÕñêOêOêOêXu¬:V£ŽQǨ£ÕÑêhu”:J¥ŽTGª#ÕïÕïÕïÕáêpu¸:L¦S‡¨CÔ!ê`u°:X¨Tª¡j¨ªöWû«ýÕ~j?µŸÚGí£öQ{«½ÕÞjOµ§ÚSí¡öP{¨ÝÕîjwµ›ÚMí¦~§~§~§«Áj°ú­ú­ú­ÚYí¬vV;ªÕŽjµƒÚAm§¶SÛ©mÔ6jµµÚZm­¶T[ª-Õj µ…ÚLm¦6S›ªMÕ¦jcµ±ÚXm¤6R© Ôjµ¾Z_­¯ÖUëªuÕ:jµŽZK­¥ÖRkª5Õšj ¨ª5Ôj µºZ]­®VS«©ÕÔ*jµŠZY­¬VV+ªÕŠjµ‚ZA-¯–WË«åÔrj9µ¬ZV-«úª¾ª¯ê­z«ÞjµŒZF-¥–RK©%Õ’jIÕSõT=UÕCõP‹«ÅÕâj1µ˜ZL-¢Q‹¨îª»ê®º©nª›ZH-¤R ¨Ôj~5¿š_uQ]TÕYuVÕ|j>5ŸšWÍ«æUUGÕQÍ­æVs«9ÕœjN5‡šCÍ¡fS³©ÙÔ¬jV5«šEÍ¢fQ3«™ÕÌê7ê7ê7j&5“šIͨfT3ª_©_©_©_ª_ª_ª_¨_¨_¨Ÿ©Ÿ©Ÿ©Ô j5šNM§Ä)qJœò^y¯¼WÞ)ï”wÊåòFy­¼V^+/•—ÊKå¹ò\y®öAVdEV"”%BÙ«ìUö*{”=Êe·²[Ù­ìTv*;•ߔߔߔÊe‡ò«ò«ò«²MÙ¦lS¶([”-Êfe³²YÙ¤lR6)•ÊFe½²^Y¯¬SÖ)ë”5Êe²ZY­¬VV*+••Ê e…²BY¦,S–)K•¥ÊRe±²XY¬,R)‹”Êe2_™¯ÌWæ)ó”yÊ\e®2W™­ÌVf+³”YÊ,e†2C™¡LW¦+Ó•©ÊTeª2E™¢LQ~V~V~V&)“”IÊe‚2A¯ŒWÆ+ã”qÊ8e¬2V«ü¨ü¨ü¨ŒRF)£””””ï•ï•ï•Êe„2L¦ S†*C•¡Ê`e°2X¤ R)¡J¨ª P(”~J?¥ŸÒWé«ôUz+½•ÞJ/¥—ÒKé¡ôPz(!Jˆ¢tSº)Ý”®JW¥«¬+ÁJ¥‹ÒEé¬tV:+”NJ'¥ƒÒAé ´WÚ+í•¶J[¥­ÒFi£´QZ)­”VJK¥¥ÒRi®4Wš+Í”fJ3¥‰ÒDi¢4R)”†JC¥¡R_©¯ÔWê)õ”zJ¥ŽRG©­ÔVj+5•šJM%H R‚”J ¥† (J5¥šRM©ªTUª*••ÊJe¥’RI©¤TP*(Å_ñWÊ)å”rŠŸâ§ø)¾Š¯â«ø(>ŠRF)£”QJ+¥•ÒJI¥¤RRñR¼/ÅCñP<”J ¥„RL)¦SŠ(E”"Š»â®¸+nŠ›â¦R )…”J¥€’_ɯäW\ÅEqVœg%Ÿ’OɧäUò*yGÅQqTr+¹•ÜJN%§’SÉ¡äPr(Ù”lJ6%«’UɪdQ²(Y”ÌJf%³òòò’IɤdR2*•ŒÊWÊWÊWÊ—Ê—Ê—ÊÊÊÊgÊgÊgJz%½’^I§¤SÒɱr¬+¿—ßËïå·ò[ù­üF~#¿‘_ɯäWòKù¥üR~.?—ŸËÏägò3ù‰üD~"?–Ëå‡òCù¡ü@~ ?ÿ–ÿ–ÿ–ïÉ÷ä{òùŽ|G¾-ß–oË7å›òMù†|C¾!_“¯É×ä«òUùª|Y¾,_–/Êå‹òù‚|A>'Ÿ“ÏÉgå³òYùŒ|F>#Ÿ–O˧åSò)ù”|R>)Ÿ”ËÇåãrŒ#ÇÈÈÈÈGå£òQù°|X>,GËÑr´|P>(”Èäò>yŸ¼OŽ’£ä(1ù'Ê}ñ!/ ’,É’¼WÞ+ï•———wË»åÝò.y—¼K—Ãåpù7ù7ù7y»¼]Þ.ÿ*ÿ*ÿ*o•·Ê[å-òy‹ü‹ü‹ü‹¼IÞ$o’7Èä òzy½¼^^+¯•×Êkä5òy•¼J^%¯WÈ+äåòry¹¼T^*/•—ÈKä%ò"y‘¼H^(/”Êóåùò|9L“Ãä¹ò\y®r¹ÜKî%÷’{Ê=åžrˆ"‡ÈÝänr7¹«ÜUî*ËÁr°ÜEî"w‘;ËåÎr'¹“ÜIî w;Èíåör{¹­ÜVn+·‘ÛÈmäVr+¹•ÜRn)·”›ËÍåær3¹™ÜLn"7‘›ÈåÆrc¹¡ÜPn(×—ëËõåzr=¹ž\G®#בk˵åÚrM¹¦\S’ƒä ¹†\C®!Èr€\M®&W“«ÊUåªre¹²\Y®$W’+Éä rÙ_ö—ýårr9¹œì'ûÉ~²¯ì+ûÊÞ²·ì-—‘ËÈeäRr)¹”\R.)—”=eOÙSö=d¹¸\\..“‹ÉÅä"r¹ˆì.»Ëî²›ì&»É…äBr!¹€\@. ç—óËùeÙEv‘egÙYÎ'ç“óÉyä’ä#yKÞ’·TZ*-•–JI¥¤R’—ä%yIž’§ä)•JH%¤âRq©¸TT**•ŠHE¤"Ra©°TX*$’ I¥‚RA)¿”_Ê/¹J®’«ä,9KÎ’“ä$9Iy¥¼R^)”GÊ#å–rK¹¥\R.)—”CÊ!å²IÙ¤lRV)«”UÊ"e‘²H™¥ÌRfééé)“”IÊ$e”2J¥¯¤¯¤¯¤/¥/¥/¥/¤/¤/¤Ï¤Ï¤Ï¤ R)ƒ”NJ'¥‹ˆˆˆxñ>â}ÄÛˆ·o#ÞD¼‰xñ*âUÄ«ˆ—/#^F¾úøjrïõía·‡Ý&•þ_Œ$71ÂÅh#_∠`€ €`3€ŽåOëëë\·eÝ–u[ÆßÖô\ÓsMÏ•2{=xÙàeƒ—YÑ,s\æ¸Ì{ìu°× -ƒ¶ Ú¸=p{àö­K´.Ñ:×Ú\ks­-6´ØÐbC«_ª~©ú¥þ÷úßëÏØoì7ö‹þ¤Í¶Õæ©>S}¦úÄuõjÕ«U¯Vªõ l€ €`3€ŽåO3qôÄÑGÇߊ›áf¸)söxïñÞã½Gáß ÿVø7k8ƒ©ÏÔgê3ÝG÷Ñaoý ÷6¤Í¶ÒægáÏŸ…ó €´€˜6ƒ¸†–ЋŽeS§'žtz’éVæ-™·dÞ’”Ù_%»’]Éžºg0q•g¿Œý2öËè DÈM›­¿Í³Í>4ûPüuæˆÌ™#’ö„˜6ƒØ’x€qŽådŽË—¹ö ÚƒjŠ¿~q»Ý”<^Zm5¶ÕØÔ:rE$Ù}L÷1ÝÇ8$³¤º™0mN¾6¿œðrÂË ¦ë7Hçìû@L ›ÑuyB¯´ÐÀH #9©¶²fÓšMk6™®©ÛR·¥n)³§;n츱c깦O~5U¡U…VZ­ÿaýë¸äpÉá’롯†¾*þ½n꺩릖\~pùÁ)³/´9¹Û¼°óÂÎ ;ó9{EL Ø `¤…‘œøõ¿yò:¤x÷âÝ‹w¿fOOÏä>RÞÖ}[÷mÝ9{çì³×òk:“£%7Ãn†Ý Kx»½ýzûõö³¤ âæÃ ¯-_›|mòµIÌÑæ”i³¹ë€=êxÔñ¨ó¦Í›6oÚp¦€í"&l0ÒÂHNüúÍ]Ýhyg Ô](y¡ä…’;ì8°ãÀ°Ã `<§Ö‘¬+Áй-¶XÙbe‹•½õÌq™ã2'¼/â6È´ÙšÛœ2G"Z€ €›AŒ´0’³fqCÝ¢ŠN(ú«ýÆ~cbÖ¸Êá*‡«T.Q¹DåIûTפíáÛÃn»=Ìܶò Ë3,ϰkQ×¢®E}Úú¯\»ríÊ5±Óõg}’õIÖ'»_´9eÚŸú¹ú¹ú¹éšÅ1ˆ+é9_À6ƒia$'fÍ«®:¸ê ¹@+ñëß¾1|£C2HÚ^ÐoA¿ý;âļ‹/j¼¨1m¶¶6ÇëëëÌg ì00Ò¨#>ü2÷ó¯>¾úøêìC³Í>Ô0_Ã| ó•¹\ær™Ë¹Ãr‡åËŸ%–üYüæúÍõ›Û×±¯c_G¹ \P.˜´mNùIÜäV»¡ÝÐn„ =z$p{àöÀíž<+xVȵ6×Ú\k+:Wt®X*s©Ì¥2·/×¾\ûrâ¼O#ŸF>´žwЈ+GíoœÇ\¹s=lZØ´°i¾îôu§¯+´ªÐªB+ˆŠ+ s†ç Ï^àqÇ—Š+W*®™ÚLm¦~ø}à÷Jv%»’ý]ÅwßUL™‘œ˜5W}_õ}Õ÷¦ë•{TîQ¹ßr[ €kª=¨ö sÛú´#ÅÔ¾…ûî[hn+u[ÖmY·%m¶¶6›ÑlD³ÍL×\C«¡ÕÐø¶[DL ›‘´ñ‰åk¡ob¢K—.9$UÛR&XÚ\fs™ÍeŠ -6´ØÐOÛ®‹§‹§‹§ø÷u7ÖÝX—ºãáN;=îô{xì᱇Ž 8VðJÁ+¯ˆŸ/8­à´‚ÓÌ­­óßÿîüwrŒjsO«~¼ûãÝï~Äê2ÇeŽË¼¥Ð–B[ U{PíAµI;–æþ2÷—¹¿$þưÉ1b8Zàhsë<µþÔúSëÿ~ìu°×Á^2}Ü+%à.\¸˜ÛŠøS•$Ûb‚Ï©µüÅ´9eÚlŽø3®€=!&€ÍHÉX\:P(”›‰0àl»³íζK|Û’/~ôøÑãGÅõÍIÛ†|mòµÉ×&iƒË÷zæ™wfÞIøç‹]/v½Øõ”l¿PsNÍ95ç˜ÛîùÊç+Ÿ¯lÉzÄê­Æ¶Ûj¬CŠ˜5Ë€óÎ8oº6q¥~ê†X)‹ç›ÛЏ¶;%DK¶E›­a™[§øäl 00lFJÀ£_~=úuÒfâÑâ¦Ê‰i[rÀ÷½î{Ý÷ª\¢r‰Ê%R&>Lîñð¶îÛºoëv›Ùmf·™–´'þ3bS&¨»u-êZ”¹­Ä†^ϳðgáÏÂË.?¸ü`‡T¯V½Zõj‰kS÷XNø9¦ÝÇtÓ}Œ5Ÿ»’v\‰'šÛÊÄÑGO´{7aú„馛ÛâR·¥nKÝh³5´9a]—w]Þu¹éš‹N(:¡è®€m!&€ÍHÉØT§*NUœ¶æØšckŽÛÃn»=L\s)®ëÔ+¨WPRÅŸó|ø•ð:ÍýVÂÛ´x²oÂë7³]ÿÃúÖÿpùÉå'—Ÿˆçæ>Ìò0ËÃ,‡«®r¸Š¸ÁrtÒHgö†¥é³¦Ïš>ù®Wz÷îlù;"`ýOýOýOs?#’¤Ï _—¼êઃ«Z²ž~oú½é÷&á½7»ÒþÉû'ïŸÿü»Òß•þ®tb߉}'öýRí—j¿TWǧRëì–{dnm‹«/®¾¸º5Ÿ»’6Z3w%´°¡ï†¾ú&íÞ­›ºn꺩æ¶8dÆCfÐfkhs¾=0l 00lFjÀñ¯"Mü:[l=°õ@kèaÆfügÆ~Žï®)»¦ìšbùVÄOvúºÓ×¾6·æBÇ /t<ùn#l*wXî°Üa"¶ÙÓ{Oï=½==öôØÓë;¯ï¼¾SD¡ _Kÿ©Æ‰Ïæ®·ÎÛ#o¼=,ÙŠnÞkÓ›BlçˆÌ™#ÒÜú[¬l±²ÅÊÔÉß~ø} 5W)×/_¿|ýòæ¶"þ`%i÷.á?›hô®Ñ»Fïh³5´9aGJ)u¤”¹õÊ=*÷¨Ü|€­ &€ÍHù8àXÀ±€cŸ›Yr«áÔíën¬»±ÎÜÚò Ë3,ϰ˜ë1×c®b@•9.s\æ„ÛüãÝïþx79ÆC|Þ1Þ1Þ1—.9\²¨¯† 6`Ø€ä‹ëÄ“}Í­9$4$4$Ô’­Èå‚rAsëñÑ}t=¹¯´þ´ñœ´}[õ¿Uÿ[õ¿æ"ÿ´W¬]±vÅÚæ¶r1ÿÅüó'íÞ](y¡ä…’ ß;!á}¤Í)Óæ„½ió¦Í›6 ò=¶‚˜6#åàCíµ?Ôþc×¾1|cøFsëŒ=eêöÀ¸ˆqã"Ì­mYÎe9—åL|4õ:äuÈ벫ˮ.»Út+®.®.®.É÷–Š+W*NܲÛò5'|%\Ïæ=›÷lž˜>Ï5·þ¨ Q¢6X²ž°iaÓ¦™[Ïô\ÓsMÏ•øãõü«§¹­d?‘ýDö©‹ç›[OЪ UA«ÒZ,Ƽ¹­ˆ«Æ“vïî¶½ÛönÛ„ÿü"á}¤Í)ÓæÄŒÕÄ|r)˜6#%àø×~ìš¾¾Óžœú¶îÛºoëš[O釥–~˜´ýÛ¾ØöŶ/R>Â7¯NÚñÿ ÇŸ¶fß¾;|w˜‹«-_ó -ƒ¶ Ú"®s5}Ëp,ñ IðæYp%wjÀJv%»’ÝÜz†wÞexë?w%í±Vø·Â¿þÍÜVžF>|™´{'ž†nn‹Å†ZlhÂûH›S¦Í–ÏæIÀ°uÀÀ°)Nn:¹é䦟Ö΄ãUk€÷OÞ?yÿdsë×§&í{'®6·Åýô[Ð/i{#1¾0öðØÃc'í;xüÔñSÇO%ǨK>/潘÷bžuÀ³Í>4ûPÒŽ«”?w%m¨ÿÒ¦Äm~“vï¾u°%OΦÍ)ÓfKÌ[2oɼ%æ¶"î:À·X?``ØŒ” S·æØšckŽäkmêÀ3þ3ã?3þ“´7¾NLû;½íô¶ÓÛ¤íñKÇ/¿41­==éô¤Ó“Ì­¿ß›~oú½ùØuŽþjôW£¿2][Ö'YŸd}r}çõ×wZÛq··áÞ†{Zg,ÞsëÙÔhS£M¬ÿÜ•´°Kf·’9.s\æ¤Ý»XçXçXçÄÜ$œ6§L›-±þ‡õ?¬ÿÁÜVÊå2ßF`ý€ €`3R2LM|jÍpë­¶hn=³<Ìò0KJ¾ƒÛ·nOÚQÿSÿSÿ3ùÚìf¸nÆÇ¶ÙËÃËÃËÃtmï7¾ßø¾õÜ^U\ž¹Ìæ2›Ë¼RðJÁ+Ö×/_¿|ýòæÖQ5¢jDUë?w%íûžgXžay†™ÛЏ?i÷îå„—^N0·EljŽ'&¼´9eÚl‰ß;üÞá÷æ¶Òè]£wÞñmÖ˜6#%ÃÔën¬»±.ùZ›º°7ÿnþݬFüö$Uo\N9ýåô‰uÓ O+<­pâ{^üI¹5ˆ¨5eŽ£wßU|Wñ’Ã%‡KÿD¤ ;/ì¼°³x¢pÝ–u[Öméêâêâêò±ïcÊäøÏ«6u´ÀÑG Xÿ¹+iàøš`J:O€õ#&€ÍHÉ0õ½Ç{÷É×ÚÔ €‹w/Þ½xwë €ã_›T½ñèñ£Ç'~Ô]¹våÚ•kæ¶"BSKÖ3dÆCf˜®!~ÔšTGнFq`„x’q3µ™ÚLMî÷1åGráß ÿVø·äþ#€ä>w%í»_Ò¹¤sI³7 ¾Wï^½{õ’vïn»=ì¶Ùkaã·‡6§n›-q1ÿÅüó›ÛJÑ E'@ ëGL ›aaê§­?uÛœ·GÞy{XO\àqÇ'qˆ˜¤ÏàLL’ð“;C„ =’øQ÷,üYø³ðŸ6ÿ´ù§ÍIûîÄ¿µ¬µÀ ߆79®Â´ž³9 _ß¶ÝÙvgÛ%íÞ%ü´ì ­*´ªÐ*á}¤Í)ÓfKˆG˜ÛŠS]§ºNu €`ý€ €`3€“jm9Ãs†ç ·ž8~{¬çŒoþ¨ù£æú´-j7´Ú s¿õG¶?²ý‘-1mSŸ©ÏÔgîkÜ׸¯IÌ» ÂÔJþ•ü+ùw]Þuy×å[ m)´¥5_œõIÖ'YŸ˜[¸ÙµõŸ»’vÄÆž´)õsõsõó¤Ý;¹ \P.hn‹ Š7(Þ xÂûH›S¦Í–Ïÿ6·•lײ]ËvÖ˜6ƒ8©Ö–ðÓ+_Ì{1ïżÔz­çŒïN;=fzD³ÍF43÷»}Šô)Ò§ˆéo•\~pùÁ‰i­¸É³å­¸^¹C±Å:›uvÖÙYg¥ÒRi©´%ýfpüëMÝ÷ºïußËúÏ]I;b/¼lð2s[Y³iͦ5›’vïVÿ¾ú÷Õ¿›Ûâ@y L¡[øfŽË—Ùܶ,ÿCÚœ2m¶Ä®)»¦ìšbn[-V¶XÙb%0¬00lpR­mûéí§·Ÿ6·ž6ßµù®ÍwIûÞ]ßy}çõâ©·¦/í†vC»amïàÇn·ôÃÒK??órÂË /ÍÞšx碋v.JL¼c¼c¼cÌ­ÿX†cŽeHªý½üäò“ËO¬3úãЇþhn=k¯]¼v±õŸ»’cĦÌ#wGîŽÜðU°–o‹6§L›&ž^ln[à 0lßF`ý€ €`3€“jm÷½î{Ý÷2·žlײ]Ëv-iC)s×gMŸ5}ÖôÖùš³¹Ìæ2›Ë$¼õm_lûbÛ¦ÿ½ðo…+ü[â[˜;,wXî0s[þ,üYxJîojÀ ?‡51OYNÉsWrŒØ°iaÓ¦™ÛV÷1ÝÇt“ø­ôlÞ³yÏææ¶² ß‚~ úÑfkksÂfš}hö!sÛZ\}qõÅÕù6ëGL ›Aœ’kKªèâQºGé¥3·•Z ­†f[ð‹y/潘gn»?mþióO›Û—k_®}9Óÿ?OL ¤+®€Ù^=~êø©ã§¿§wÛÞm{·m‰Ö%Z—hm°xʯ¹õôËØ/c¿ŒÖîJŽ{cÝu7Öå Ïž3Üt[ñÿ€àÓÖõäÕ“WOšÛ±Ý›a7Ãn†ÑfkksÂÄQcn‹Ñ ¢D7àÛ¬00lpÂk‹uŽuŽu¶|mFq`DòESoë¾­û¶nýòõË×/onÍâêRkIµõR™Ke.eöi§'žtzRâ·^±vÅÚk›ÛÊ䦓›Nnš˜õ‹kÄãÇóÖ¿ió¦Í›6æÖ#zÉúÏ]É7bÞbó_›ÿÚüWñ|Ù]³ø]sk(”ÊÉq–£ÍIÕæ=·8Ntœè8‘§ÿÀVÀf'¼6q½fÒ®3듬O²þóüWËŒ‡Yfy˜¥Ó×¾îôµ¹5ûÍõ›ë771½ºð®)»¦ìšby8ZýRõKÕ/%UÛFå•{TnsÛÊ™#2Gä§më÷¿wø½CñîÅ»ïîð‘¬íXNŽ›™[ÏÙÀâÙÛæ®OýØ?yïñÞã½G·#×¼Þšxkâ­‰´ÙšÛlêùšçkž¯1·ÅøÊ÷X?``Ø à„×6hË -ƒ¶ˆ[.¿yò:DÜž4áu>pyàòÀ%þ³i&ž7ùç‚?ü¹àiäÓȧ‘Wú»Òß•öOÞ?yÿä©>S}¦ú$¼†ì'²ŸÈ~âldû#›õŒ‡%®o¶<]–sYÎe9“jëgÛmw¶èIKÂ{õsõsõóËO.?¹üD\5+Þwq³è¹¿Ìýeî/UßW}_õ}ÂSÂûx1ÿÅüó[q%í{7©ÿ¤þ“ú§îxHù³AÒn]ØšckŽ­9®E]‹ºõjè«¡¯†Š÷tͦ5›Öl*?¸üàòƒ^ƒxFlâ÷ˆ6§L›ã‹Úµ!jƒ¹-þüíÏßþü-ßC`+€ €`3€!á5Ëp,ñ x\à±C²‘䆾únè›Üq‹5ŒÉ¤zhrŒKäí‘·GÞÛ¾ØöŶ/>öw½ùëÍ_o¦Ì{'þ8uGË€óÎ8Ÿ´ûB›S¦ÍÂÌ;3ï̼“Ü·¯R00lð÷ß~˜pü6{yxyxy$mháâéâéâ¹íŶÛ^¤L§Ì˜Ônh7´ ·$X V‚•äh•¸Ulr„LeW—]]võ©õ§ÖŸZ/þ˦F›mjdpÂëìP¬C±ŬùÜ•2#6áç%'ÆCf ™‘{A›S¦Í‚8RL·ë£ûè>:7€m!&€Í ~9áå„—’/6ÝJžay†åöi[7(îr´ËÑ.GÅͨSòJ»”“âvÇ ·DÜ~9‘9.s\æøAû§½_…Ž:^è¸Ù[ËÆÛŠuÀcÎ97æœéÚÜ׸¯q_“ºñ•5À¦íù´'=Çÿ3‘=½÷ôÞÓ;%¯`¦ÍÉ}15öðØÃcó ¶…˜H OÖ'f*?þfµÆÕWkœr­Íµ6×Z:u<ê­ Z´ªÓ×¾îôub¶%žòÿJÖÊ%*—¨\¢È¼"óŠÌË™#2G¤«‹«‹«K©¸Rq¥âÚÕlW³]ÍyKæ-™·äfØÍ°›a\7–ò£Nèüwç¿;ÿ]úa釥Š÷H¼_â½ïcŸ"}Šô)by¼$žW*~²ŠS§*NÒHW ]þ,ù³äϸ=p{àö^A½‚z~fø™á)¹ï—.9\rÈš>kú¬é­óFÐÉq6HŒø¾p,àXÀ±bC‹ -64gxÎðœáâÜRC«¡ÕÐÄ;ÿªwÚlm6öûýænÚ/žÎÙ¶…˜°yÖö¾úøjü‘ß(S£L21ò`¯€ €Ø ``v‚˜€ &`'€ €Ø ``v‚˜€ &`'€ €Ø ``v‚˜€ &`'€ €Ø ``v‚˜€ &`'€ €Ø ``v‚˜€ &`'€ €Ø ``v‚˜€ &`'€ €Ø ``v‚˜€ &`'€ €Ø ``v‚˜€ &`'€ €Ø ``v‚˜€ &`'€ €Ø ``v‚øF”ů}©ôÚŸJ¯©ô:˜J¯C)þŠN¥×áTzI¥×ÑTzý‘J¯c©ôŠI¥×ñTzH¥×ÉJ¥×Ÿ©ô:J¯3©ôú+•^gSéu.•^çSéu!•^Séu)•^—Süu%•^WSéu-•^×Séu#•^7Séu+•^·Séu'•^wSéu/•^§Òë~Š¿¤Òëa*½¥Òëq*½ž¤Òëi*½ž¥Òëy*½^¤Òëe*½^¥Òëu*½Þ¤ÒëmŠ¿Þ¥Òë}*½bSé—:¯Èt©ôJŸJ¯ ©ôú,¹^À`·€ÀNØm,ðH;ì6¾×ð^Ã{ Èd{E¥Ò‹gó4bžFlýO#N;Ï!N;O N;Ï>™J¯´óìá´óÔá´ó¼á´ó¤až1lON­g §§ ó\až(̳„yŠ0ON­§§çóä`žÌÓ‚yN0Ï N­çó„`ž lõO¾×ã^{=ìö `@r ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€¤ ¯›¼nòºÉ¾6ûÚìkU,ªXT±³oϾ=û–žÜÄÙFœyÄYHœ‘èÉmÿ„ýöO0^¯×âßô */T^@å…´€€mz÷6îí…3Î\8³zôêÑ«G·Ù×f_›}I¤Ê…*ª\˜òrÊË)/9|äð‘'^œxq‚Ž ÎâÌ Î⌑Tçq6g6q–gÞùxçІ¡ C:¤’:ãꌫ3n×”]SvMyyàå—x_û&ŽtqÔ‹3@jÄÙOœ y_€´àVÆ[oeœwoÞ½y÷œ&:Mtš˜òg±]ÑÑÞ€Ê‹Ê •*/*/X?`VêEé¥_”^]iu¥Õ•¬ØÐcC =vmëµ­×¶ò®öAÑâè¶æó8Cг%ï`óœâœâœöÏÝ?wÿÜÀôéÓ[ç™G´M´S´™· ò¢ò@å€Ê‹Ê Ö†€yÕäU“WM¸,pYà’˜HÏîµóœ šÚ׫ ‹Å“Ë™ÓÉqQTq)8|UŒGÍïê®>í1¬óËe_•hß&ï̆Eåzm†5p+Vv]Ó^N÷sUË{)[þOÛnpÏàžÁ=¯O½>õúTÞMÀ¶ˆ#WÅŸvpΔãF¶¸N/¼Jl9mP•Ë6Õ®}Á»àÞ¨FéËž×å& ËõÕÆ5)\®è®³ &û¾^õ²f¡Ò#ÆÔ÷_Xìrý¹î¯_$æ¼'Μâ,Ê» ØŒ‡qãFΜ9ßí¼Ûy·óŸv(›És¿ãš®íº—[°oı’žÛLOï³[™³ Øo·ñ|qL¹pñoñßÅψŸ¿ûiÛmíûÂ[ ¤µÊ+ß-ß.U˸ÿ·yÇB¢Ç,ÕvÐùÙ­Ê”±gáí2¿ºèbi§¡ç…x>êSqÒØ¢Áí”Ï]WV+ܰ]¶¹å-GåPy},1o#æpÄ|Ž˜ÛósÜË-ØЪ¤çöõFøìVæ4îå·ÛxÞ4s¹pñoñßÅψŸ¿Kå…”D Õçâ^ŽÚóûžß÷üþ±~•Çv.ì:å»Ûkîzl}ýÔ羿ŒsútÙ²Iµì³/<¸äÊnß÷vÓrWwZžm°åmŸ{|îñ¹_N~9ùådÞdÀ:‰#T­–Ý®î9·d6Ë·êÏ¡.o“¾âý¸¸  ¤Z¾[ÔÝ=pLdƦ9ËýÞ€OS÷¬{ngTqvå]¬Óå— \.x4ðhàQËîz!Uj9ïØòÙä5Þê­ã»¯T=”TK±N±~±­øûô£GŠýâýì¯ò*x´návÕËü6²êâ+•–Í>èV¹òŠÑÑIµ,[sâ„M½Š9uübÐõl/óøå»HåPy‰y1'#æg’vÎGÌ#‰9%1¿DåPyý_åå>ÉyÇ–Ïê\ñVoïԽ걤ùëëÛ¢òBr jî;ßw¾ïÜì\³sÍÎYòñVæD=%ßÚk¿\ðJŸ´_ú-_ݵO)ó¤Ö•Ð*…ÒYþÁ|(ס\‡rñŽÖC•–ż*ö*þæÞΑÕV%í—~Ë—‡¿mQÚI«Ç%|òO°¤Íâì*δ¼ã€5ˆõŒõŒõ Û¶%l‹EnãÔ%û²ÍÝ'{x/‰Û=;¨lÒÆ½-wGÏ*+Ú ÚcIËÅ>Šýå}l±òrÉ]±fí\> Ç4ZÕ=iƒ^Ë—þuæzìÝëþ¾UóÞ5¨¼€´Sy‰ù1÷’Z3?bÞIÌAQyi£òÊù û²ÍÝë¬÷^·;¤APÙT˜ùÙÒ ¨¬hƒh•@*ˆò‹ò‹ò³äc¬Jè·\Ï®¦,“?µ¾ú›[þ0íØcŸ-ý¦9`ɾLž;yîä¹±ãbÇÅŽc ©PŒ‹;N‰–³k*Õ\R:òåήMktK­Ð×ÜòfÃŽgª ñÍâ>Æ’}g]ÆZ×ê^«Ê+¬<ðÜRlW#ÇÃÑWÎöï·9zrO*„¾æ–›£'ùˆ¶‰vþ;µ ¬<°ò@±ïŒÀú+¯B%ëµh]¾Þ¬L»¶§VèknYqíâ…Q<öõ˜9ŽÊ °ÃÊKÌ«ˆ9k›ùóQbnŠÊ °¯ÊËeãáèÆÍ£ý;Æm©äcE3?›Cêùˆ¶‰vRyáÓH± .6.vþñùÇçOøCËky`¼U¶V\Kÿ`m_ýÍÞ8¨ñÉÏ}GÔk1¬¦[‘ÿq ‘6õÚÔkó¬ò³ÊÏ*3(€”!Ž8qô%|„Në]ÅÅcÉÛîÝvV´¶Ð×ÜòjÃm«ÌläVä¾ËÏ ï8‹³1£H1Åüó—%Ó…Šû‚Ì~ˬ(îµ`)ÚlÉÞ‰~`<ÖVy9}WöQuïr¦/ým†µ…¾æ–•Ú-=sÀ»è·í~ðÊ °ÝÊKÌŸˆ¹[™ùóTbÎŠÊ °åÊ«q€ß2[™óKÑf*/|,`É?ÿp2ödìÉ¡êPu¨šðGTÇ[‹úßl+_ýÍ-CkK¥ ðò|œ3ÊÜžæ[ou¾Õwýïúßõg„ÉGeâˆ3w¯Ú×3Äì­Ôp5\e(ë^«{­îµJ8ú}ñSdçÓNô)ö=áXô!c HÚÊ«˜C‡‹ƒ¶§Ð×téûíOáëPy)_y‰y´<ó#澨¼€”­¼\:8Ê/~úîj‚isÎGì{Â10•WZC É\)v¥Ø•bæ>`§öî[àzZ.â/»=Ú0ȳ­¹¾Z~pùÁåQ€åÄQcî˜:P§ÙÆòÛÒrô9Ú»üñb]Íõ•8“3¢KÄzÆzÆzVXy`åænøœÖ®úMøj`s7…}(ú“q$¾ò*¼¦YžnGÒrôéýÓ¨SË}©¼€”©¼Ä\s>b)æÁ¨¼€ä¯¼²»e}Ö®úMøj`s7…¦òJk€$÷­ß·~ßÚsšç4Ïi¦-%=ƒ:åíûãÍ?”Í@ÙÆufË¢fÿfÿü“óOÎ?at GйãhSÓÚW¼ SÄ_Æîéþ(ð]ãºEÛ¸1í1q&guF°°-a[¶˜;ÿ¤…gý~Ú³Íõ˜èOƘÊËi©ßª€¼•â–Ÿ;t˜è7þÒóIŸ€I“©¼€ä«¼Äüó<ñ—bL̉QyÉYyÙÿ³~?íÙÀ¶XyíܲsËÎÞëñëǯ¿þa­‡µÖâ(ø4À’À¢I‹&-šdîCåûL‡§ûdæ«¿¹eå[Oºn6í·RKJ-)µ$68686˜1˜G‡8RL >+Ü«ò¥ßìß„nPÖÜy[œÕc€9— \.p¹€¹#ÈXTn*q¯¹¥ès½'ú–1|ZåUaå‚îZiâ^sË‚/ê®nwƒÊ HÚÊKÌi0·cn)æÄ¨¼€ä©¼šD—›Ê ¹¥è[©¼Þ7yßä}s­% þ4ÀåÎê;«ï¬6wjî1fó/¾îÿåÓŽ=ö1ûTàM 6-Ø´€‘˜G‡¹cçåήMktãë~ÂË#[[lö¿m®Åž‘üËßqÇýx4ðhàQÓ£æ‡Ö]Û}KÄkÉRôÕr4ðhàQÑÏ 7ÀòÊËgúØ|«{ñ&¼¬¸vñ¨†T^@ÒV^bNƒ¹„—b~ŒÊ HºÊ«|Á¢o™Õ±d)úÊú+¯ø×þ&Œ0ØrÀ¥‡k×®¦'âêMºÊÃW|Ë—!ËéæyÏÜÛó‡Ï>ÈxqD˜;^¢O6ç?’¯ø–/‡õö«WäâþˆÇµ‡kWÆ_äüÈù‘óÍþéÉ­¨Á5îZ²}e®'E?3ÞK*/·– ß};šp×ò¥ÏoW¾¡ò_y‰y æs,_й2*/ )*¯®ßÕÀ|Ž%KÑWÖ_y‰@W„»# N0€Ot9êrÔå(³·}nu$§OQ¾ÜìÒïLó›šöçüLó3ÍÏĨqD˜)]†”t-x›/÷»|š#xA@[³7Šºu9ŠQÄ9Å9Å9¹w;ïvÞôHQÜdö[F¬û±KÑo´Î»w;/úœ¡$\yUÐÒ¶ë~ì2¿sõ SyŸVy‰¹ æp>úvЭŽäô)Jå$®òjà·Œ™œ]Š~³•Ê‹08©øD=GôÑs„é©¶ÅîÉÝŠ,áký§-·×W•)nîcì•Ï+ŸW>Œ=¤eâ(0wŒÜœØñ~ÕŸøZÿiËÕejú—žhÚ«âlÏØöÏÝ?wÿ\Óc¤ì¯Fއã"¢Ã‚üt?zä'úдoEŸ3ös•—Çì‡c_å~Ú²|ËY^».RyŸVy‰¹ æp>m)æÍ¨¼€¯¼\9Ž‹iäÇÎG/#Bù‰>´­Ê‹081€|´ÇpÜÜéuTÃãÕ} ó…>1Ëʳ;WsiÚ·ÛJl+±­#i™8 LŽþ³}:¹;ò…>1Ë×u»Þ­¡›;·‹3?#iY`úÀôé?pÛùÆ+gûw$ÊMÌRôážJ•>0}`zƨ¼Ì}:W|¶dƾ)D¹‰Y´ÝÊ‹0øcøhKŸ-}¶ô™éÉ´ÑŒÑë Ïà«|â—]äÝ¥{˜öp±ŠÅ*«÷&îMÜÆ!Òœ7qoâÞˆ£Àôè¸r¢ƒg•A|•Oü2¬võž^øktqæg"mº•ñVÆ[M ×§.Ù—Åõ‰nT˜7QË>Ñ­ƒ ‹þ4ígÑÿŒCPyÅW<÷·y‡] ¾Mü²\ßéM+IåX^y‰ù æm¿shT^€e•WÎÙ—Åõ ñ*̼M¢–}B¼ƒ ‹þ´õÊ‹0ØÀ>ÆÑ¸£qGóUÉW%_Óè°ˆ¼kó%>©–îãüªåžbÚÏ×z_ë}­7ƒiù¦GD•‚ÂòîàK|R-ï/úvFuÓ~g~ñ)ÀhDZ3ïÞ¼{óî™›»Oöð^B|›TKÑŸ¦ý,úŸq*¯øü›7LêF|›TË<®Ë|®Sy W^bŽ‚¹š¤ZŠ94*/À²Ê«Îzï%ÌØ$ÕRô§=U^„Áæø72ßÈ|#³ééÒ³[@Í`aM¥5•ÖTú@PnÑÛâ¬ç t­%ö¼ë0Öá/‡²–œâkï[а¶2àûžGÊúx} n/ìYس0£iù¦GÄÓ Áë‚­4LÍ’%È¡bíüóþk×úàÝù¬.û•io‹OF#ÒŽ{¡÷Bï…š õBªÔrÞaÑiæè,Aýïµ[áîñ±GJ­þÚ?ÚÚb`Ñ·¦­ïcT^¥ºþlödkMËœ”ó—B¹¾.x«h[ËÏ<ùÛôkÒ¤²ÃŠ,ÑY¬'®ppÁUí(•på%æ(¬?®,uþÙõ·6µÒ?ý/·èmñT^€ùÊË}’³UÜõí|åvŽ•Ë8$‚õÀb)úÖ¾+/Â``¡î€ºê0=-_q(—÷ ÿÎ7`õÌüˆ¾M;•WÚ ƒ €Xä}¦÷™Þg2= fŸ™Ë+k…1£N/뛺_šG×8ñ·ï¼§ ^ȾN´­|›VnÎ'Æd9ÙüeÀånµlë¼Yü[ü®Xõ~}µð"Ó–ÇÄÆÄÆÄ22‘ˆÑnz„M¯þ“×fkøÒ|§GçtÕ<6ô­íYf×è×þNÅf—¹ìüŸÜÌylà©0¯CºæÉv8ëÓö‹OF&Ò‚Ðu¡ëB×}à¦|9vFT-ºAé«¡Q·jÌ.ðØå¿9òŠVùîðë8Sºÿw¶ùKü÷ø¿eî'Sk)úÖ´ÏÅ{Á˜DZ®¼²ÏñSÎc•+­X½/uƒÒ’ÁŽOÿן¸yvíõó„fâÿš†»â¿^Ò4¶Û/âß¹º¹e*vÒÚàânßÏAå*/Ó£@ÌKXsôÛ·ìÎ"%÷çLç¸%k¸mÀb>MÌ­QyÊëC•WÇ.UK[Ã<‰ˆ{ÿ¹Ü¨uÞò¹ümf†ÇÌRômÚ¬¼ÒNL À"w«ß­~·ºé‰¯ò˜În®“­áKsÇÑ ÷ŸüÏäÈùìe6 ˹¿‹w¶„¿èÇÿyë, z>ß6Ük»iÏ/?³üÌò3ŒL¤b´›Çv·™H Í*4«Ð,Ó£àÝ®ƒþS7(ÝÓ{Μ²Íâ·jûéé½}N[èÆÿ­Zù:ù^YO,úÖ´ÏÅ{Á˜DZ®¼ ­[¨]UkJÝ[´¨Ùc‰hUŽ(—Û…|,¹¥s¹ÓþöúÿÊÈÿÿj`ë €} {²ö•¨¼L1/aêH×£ý|zü¼d×\ßüóÝfvÏß Ì´™XܶzLg7×ÉT^ òúPåÕ½TàDk˜!é—ÑûHáî:ÙäbÑÇ®Em=}Kåeßa00‹^yxåᕦ'»6gf-,úÞÚžòR:¨NÆ|-ÿŠª”ú¶©k”Ýhß¡–Þèù··7F&Ò1ÚM‚‡ºt¬¾Ø¾4ŸÜÕºnÅQ3þSe—ÇÓ¥íÀ¿œ®3Àû{Óö‹OF&ìÛÛCo½=d:þËfòÜï¸Æ‚ÒÅÕGê%¥O»™óá*«êûÏ¿•¯ãÍlK¬í:`ÑϦý/ÞÆ'ÒfååU©¯×Ï{­!(-[kN«'9Bœ{]:V*V§¼%Qnù]³Ûíéò?)¶ž'»†E+ù¨¼@åõÇ~í;ÔÒ{¥uF§~NÍÊ;ÿsí~‰þUÎæ)5zçÉpß%¶‹¹5*/Pyý»òrñu\c=3$u[ºrôÏY±‹ßú¢¹l7ú¿ýLå%Ø_L À"ol¼±ñ†é ®×ˆ_ƒ½.ZÃ×å⎕~tüg´É÷ã>s÷±üw›dëïž9~Á`=eÀÅNô5L{¾ô‘ÒGJad"-£ý·ÃòìÞ.p•õ™¶Ý8&¦•_…ӦퟌLØyáð0àa€éøàÚî {9kˆHw˜QÌ7sà’Û°~Ûý¿¿FÿØ«‡½c<¾vt³¶Xôóþô'àaÀÃÆ'ÒfååÛö§%ë6XÛm“?âËM¾ýsø±ø× [[\iDz{çQyÊËô(óÖš63 ðíéÕ¥`Îì?©Y­Ì0»ô˜Ó§Ë–skT^ òúwåå3ǽœuÎí,èP®d^ñGÿU߬•ÏÅ©nŽ¥ÙNzyä Êu±Íw%äüç–øK©°¸Ì!Y‚¬zHô3•×F¦]„ÁÀ,òóÆŸ7þ¼Ñô¤6x»Q¾L5|]ÎW«ÐÚìÿ*íÃÃ{bùﶯ>ïX±žMåäUØïÿžŠg=Å@öu¹še­þ¡ °¦#?÷¼l²¶£Ún|«b§RU·˜¶_|"02aß.m¿´ýÒÁ°`߈c%=­'(5½±³%?ÙL <êúÏÀ¡G:äq_`m°ègÓþï ãi³ò*?|Ö¢Ý=­?èõk7ùÑÖŸcŸ¬[ÊePÞY zÔvo½5þ¾”xÖíõý¬-ˬcs¬Èù”Ê T^‚˜‹°¶¸4¤Ó¦Wž§²5ÈþÖá¬!Ùz8Œýîàš«âÏäØV,æÖ¨¼@åõïÊ+ UIOk˜y|.`Lü¶åZ›m\Ö©–ĵÆÎås-ªÃÍ*7¬sæGô3•WÂl7 &`‘~Áý‚û›žÈ¾ÏsxOvkøºœ34ϬçE«ºXÿ_Ï\–ÿ®øù>Â[çû*[Qk+ ó“Ûi0 !Tʘÿ¼å €“{ùdzp÷€J¦íŸŒLØ·˜î1Ýcº›Žÿí ¦§÷ÙmpÂË÷ç®ѬËû¢õþ¹V¦‡c±lÝ®ïÜÙ¿ª“µµVô³iÿ‹÷…ñ‰´YyUX¿`¸VÓúàœç 6+²Ì´ýYÇæX‘ó™ç×=»þtΚÛ︻DkïªT^ òÄ\„õÌ {{à™wçîrt-¬Ÿwøb·Ó9Û €ÅÜ•¨¼þ]yÕá³ÛæFŽehùs…>xHDhéÖnÕ©VÇß»ø™_oÖkæ³¢WP™®n7³¦wèáð¯!ë¼Xô3•—ål+ NµØ€]øaÞ±XŸ[Öðu9ëùìe6ˆVõiôÛ¼’#,ÿ]ñóÿLLÄ[õ%ÔtÎ;›ñüs›wÏ¢[]Ó'÷òeT×Ö5z0Þ€ø”9 ‚ýl,Oü 8VnZ>íÿþb=§_Ö©êç öúÅXÛµ¿b)ú™ñÄWqÃâUQmm7ޝôýáÇìµÎö;*çÍx1aÇZügï’÷knËûÏÊ,«×%ßÜ1YNg.ûÙÓ}±æXÌ­1Þ€W^{ùYE¼§wÂÿ÷2—ÿ“ûÁ¦Fµ/{»ÅŸó1ý­ß;4Qvòb`+›ùýÌxK;·ìܲs 0›1ªÉñ _wk»t÷ÿlXêù­å¿ÛuëºÄïŠ'ÇX[yP&®~¦|áŒ7@h]¿D‹ü‹ €“{ùºa׿kŒ7 >ãùâ˜ráÖúž«¿5g¥·íËÕëS`TüöûÍõzç{¤Ôê¯ý£ÿïŒdíýÌxâ«ø|Éì}3l剿•~ZÖêÀ_åbgfßÙ¿Ô†Á1sæ8•)Û°Z—ø{ä]æ‡?–^³¶–»«8ªv{Æ ˆ¹k˜©í:½Ð?­r¹\ì^Ît#šE7ðŽ17{cº/Ö‹¹5ÆðïÊ«iæráÖ<Ïó±3Bíjz (PËÚöEô3ã-e¼Ùüfó›ÍÀl†õ\ìþ£_ÅÜ“E«:,\P¼xåxpxØ‚bOÄïÆ_WÖ‰+€¹H-Ö|ð›6û;Õˆ›0½÷ô9ÃsŒÈÚR´9§9Ù7ÏøÏÀ’o^‡ì[]ãàÿ‹¬7Àæ `À”­\ln)ö¹VùˆÀ£ñ÷‹+€kf Ww¿¿©¤çV‡YW8´Ïî“sJV§^Y·mòÚ›ð¼é¾p0`k•—µ\œ˜åÖukzÇŠ=*çÔ4÷\œ–¥¡+€#?ãÅ‹—-½Z5lÕ°UCÓÓ–õ<¸ŒGÝEùúŠV5«5¡°ûË·é©ñíÝ׉ß7²¶òÀÜ3€™¼ÒÂËtäó àÔ}°øD`dò²ï׊l+²­Èf:þ­óÀç+o©\Æw‡çXÇ™¢ÙOdÏàpwT¹?z¬~^ý’õ‡¾–<˜‘É+-W^¶ò `Kb`!‡¿séüqÖ›{0#“WÚ¬¼¬áÀ-/MíQ4]ÒNÁ-u¼L”õ?˜Ê‹WÚ®¼¬åÀIõüà\k³Ë:ÕÚæ…Ì=˜‘iîµkø®á»†‡dÉ’ÁòÏñóièÀlËÏÞøóFÓ“×àíFù2AÖðu¹Êª.ù\ÿ­ò5_rZaùïú6jœÛéŸgWÍÕåzþlÖg_—«YÖꊑûg:òsÏËv!«AœÜË[;•ªºÅ´ýâ‘ ûviû¥í—¶›ŽÿûF+éi=Aéå';FW©^¼»Ûæ\Ÿ‹ŠlYùŸÄÏØVô+–¢Ÿùæ*¯øÊŸµhwÏÔ Gý—Í++ýkжijn¯ìgù|j©°ª¾øÝlû—çËgmpÖ±9Vä|ÊùT^ÿüIÙº\ͲV·¿ØÚæ|ÄÜ•¨¼þ]y´*éi s#Ú&µËUVŸ5~Xî«ËOÚÿU¥ºå¿»ã@ýÿøf{äQ'ïì\ý­m^Hô3ß|&‚Ûñëǯ¿ÞòOñó)úÆG À"ol¼±ñ†é‰¬×ˆ_ƒ½.ZÃ×厣î->9~‰ò}ù×|\þÇ_Yþrd½Oøñj§®‹ë?m=eÀÅNôýÀ38K)}¤ôF&Ò1ÚM‚÷žÝÛ®"N¾eLL+¿ §MÛ/>™°ó/àaÀÃÓñ?ÀµÝA÷rÖ”V¬]fcÞ&jhåëä{õÀE:Z½¢-†¾ñ—¢Ÿ™†•W|¾mZ²nƒµ]Å[ Wàžæ5,ÿÝß|ç2R¿›oÏ‚*^ÖWÚ±ìÞÁyT^ ò2= ļDª][þð%—þé÷Ô.ÕÉòeüöwV–®-QÇôÿZÏ̘[£ò•׿+/Ÿ9îå¬an¤’þ«ykˆVÕW8—SŒå¿ÛÿžÏîâwƒ•’ •±¶y!ÑÏT^™6úÆG À"‡W^yx¥éI­Í™Y ‹¾·Š'¦Ü‹™íûy¾½n}³?³ü/:ïõÉ^ðŸ+fœV¸§ËQuTÌ 7ßFÖS ßw¨¥÷z>Ä-Ä-Ä‘‰´@ŒvÓ£àá.«/&N¾å/§ë ðþÞ´ýâ‘ ûööÐÛCo™Žÿ²™<÷;®±†ˆT.8¿º_°hUÖô‡‚.æÿµNåe¶ýŠ¥èg¦!@åŸW¥¾^?ïµ¶ØaQÖ}Ù½§zºü<Ÿ¸|›Y~»îæøÆiYþþôÖ½hóð+ÖWp ‹VòQyÊËô(óÖü Ý„Ÿ,B_kn­˜[£ò•׿+/_Ç5Ö9«cÉÜŽúyãy~1YŸ8#ÅÏû›¼+·ÉÚf~D?Sy öúÆG À"w«ß­~÷· ®<¦³›ëdëüŠ/T|Ü¡»ë—]r¯HWB¬o+ã!þö³Â‚v™]fÿ+Ìž1˹è kû;ОϷ ÷úÀP–ŸY~fùF&Ò1ÚM‚c»[­Fœ|Ëþý|šºà«­øD`d"-(4«Ð¬B³L‚w»úNL݈ô»mM3 ùç ¼Ç.ÿÍ‘Wü;lÚðì^›?vi=ѯè[Ó>ïci¹ò*x´n¡vU­!(-ósùÍ‹³^Ε»÷¿ŽÓ# jwjXrvhðŒbâVÏ¥\åÕѽE‹š=–Ä¿á³xú¯¸¡´õÜüÙ·ð¸'kPyÊËô(óÀÉ·skT^ òúPåÕ½TàÄÔy|5¸h@®"óçìüÏà>q0Fv]^ª^¡e¿í©ßÙ·Ftƒæ‡ü;l.SgŽ÷Ì^AeººÝŒý~·­äÓÿ«Ý¬gÎGô-•—ý…¾ñ°ÈûLï3½ÏôçÁÌÌ啵˜Q§—õµž¯Î5kôë]pˆEgë±9”­Ó}ÐBc­³ hôëè«…™6<&6&6&–‘‰´@ŒvÓ£ lzõŸ¼6'ËòuH· ÀÜ!ÙgÝó›ogzŸé}&F&Ò‚Ðu¡ëB×™7r쌨Z:uƒÒªï˶Êç’TÏÀ³žXô­i Å{Á˜DZ®¼²ÏñSÎc•+­X½Ïz®ζÀ1sÞŽ–Ÿmò¸x,ò¹TÖqÂã­íé¿Åݾ žƒÊ T^¦G˜— N–å¨ÓÇËúй5*/Py}¨òêØ¥jië™Ûñ¬÷~®u–óùö‚ׂQ¯†v]Tc¶µÍüˆ¾M›•—}‡¾ñøuÔPwÀn´âP.ïyÖö5ú»«ïyŒô¹Ð¨S³|µ ­Í~$›–Ãpx!þík4¾ä´¢[õÿõÌeÍE‹[ï1¹N™öù³ÅÏ?[̘DZ F»éQà¿Òõnž-Àɱ|8¼Kõê?›¶\| 0&‘vìi¹§åž–¦Ç–Ï&¯ñVS7(ÍŸÅiNöÍö‹¾5m¡x/“ òªà¶H¾h=¡é?7snÑ¢f%ŽZ‰!Þ]³7ÉÛ¹QÖ_szçÚ–ûlÑÅ%w»ì­\¿îvÏ®½~žÐ¬²ÃŠ,ÑY¬-úKÇêÅ®—îHå*/Ó£@ÌK'Ëc¿VÊå=Ê 0_yÕ¹â­ZÛ ÏüQÕ/z]«ÓµðAçÊ…Žçî•cBŽÈ¬Ç²æ/:!GΰŽyšJk*­©dz*ìTnÑÛâ¬ùKÿ§ýßÔ]~ßóHY/ÓÞö,ìYس0£iù¦GÄÓ Áë‚må¦Ê¶ïÎ×`uÙ¯L{[| 0‘vÜ ½z/ÔôX¨R¥–ó[ήu.Eßšö¹x/“ ò*Õ}ðg³'[[tú¯‡%ø3ÖÖòžþ{pÁUí(•på%æ(l+¶þ¥˜O£òÌW^wØâ õÏÿˆ¾µïÊ+m†¾ñø72ßÈ|#ó ãn5óœá‹{—_.ZS|—io/È¿ ÿ‚üŒF¤5bä›»v4éûÈV`[YÖŸåþÊùÅn¾”ùFæ™HCÅ=Š{ä4Ñi¢Óžôd›öm@ "Û¤ZŠþ4ígÑÿâ½`H‚Ê+ß-ßÎUKYgŒj»ËRÍEÎö§ò®¼Äs5I»óiT^Àÿª¼‚Ô`®&©–¢?íµò"ôÀÇ8w4îh¾*ùªä«bz¢q`‚wm¾¾'ÕÒ}œ_µÜSLûùZïk½¯õf0"­#ßôˆ¨R°@XÞ|}OªåýEßΨþ§ŠŠ3¿ø`4"­™woÞ½y÷L‹ÍÝ'{x/!¸Mª¥èOÓ~ýÏ8•׿„ñÛ¼aR7‚Û¤ZæqõXæsÊ H¸òsÌÕ$ÕRÌ¡Qy–U^uÖ{/aÆ&©–¢?í©ò"ô5‡ÀG[úlé³¥ÏLOšfŒ^_x_â¿è"ï.Ýô‡‹U,V±XŸ7qoâÞ0‘漉{÷F¦GÇ•<« âK|â—aµ«÷ôú@ Îü C¤M·2ÞÊx+£éqáãÔ%û²¸>Ñ­ƒ ß&jÙ'ºuPaÑŸ¦ý,úŸq*¯øŠçþ6ï° ·‰_–ë;½éo%©¼Ë+/1_Á¼Mâ—bÊ °¬òÊù û²¸>!ÞA…™·IÔ²OˆwPaÑŸ¶^yúZ‚ÀG{püÁñÇÍFG5<^Ý·0_峬<»s5×™¦}»­Ä¶ÛJ0‘–‰£Àôèè?Û§“»#_å³|]·ëݺ¹s»8ó3‘–¦L˜Þôèˆn¼r¶GBÜÄ,Ešö­èsƨ¼Ì}:W|¶dƾ)„¸‰Y´ÝÊ‹Ð÷cøD=GôÑs„é)µÅîÉÝŠ,á ý§-·×W•)nîãê•Ï+ŸW>Œ=¤eâ(0wŒÜœØñ~ÕŸøBÿiËÕejú—þÀ³vÄÙž±쟻îþ¹¦ÇHÙ=^ÇED‡ùå~ô2":,ÈOô¡iߊ>gìæ*/Ù!Ǿ$Äý´eù–³¼v]¤ò>­òsÌá|ÚRÌ›Qy_y¹ r<Ò(È9œ^F„4 ò}h[•¡obøD—£.G]Ž2w’ý¾Õ‘œ>EùZÿ±K¿3ÍtnjÚŸó3ÍÏ4?£Äaz¤tRÒµàm¾ÖìòiŽàmÍÏÅÙžQÄ9Å9Å9¹w;ïvÞôHQÜdö[F û±KÑo¦ý)úYô9CH¸òª -8¤m%ÐýØe~çê7¦ò>­òsÌá|ìRÌ•Qy‰«¼ø-c&çc—¢ßl¥ò"ôM*À¥‡k×®¦'ÜêMºÊ×{Ë—!ËéæyÏÜØó‡Ï>ÈxqD˜;^¢O6ç?’/÷–/‡õö«WäWÀˆ3<ã ˆ/r~äüÈùæÎ?/oE ®1€X×’¥è+s=)ú™ñXRy¹µløîÛѺ–/}|~|»ò •øÊKÌc0ŸcùRÌ•QyIQyuý®Ææs,Yо²þÊ‹Ð79H”;«ï¬¾³ÚÜ)¸Ç˜ÍO¼øŠÿ?–?L;öØç†¹>Ü´`Ó‚M i€)qt˜-vvmZ£_ô^ÙÚb³ÿms}(ÎðŒ4à_þŽû;îïÀ£Gš5?´îÚ¦è[Â]K–¢¯>ðô©£GŠ~f¸–W^>ÓÇæ[Ý›p7áeŵ‹F5¤ò’¶òsÌí$¼ócT^@ÒU^å }ˬŽ%KÑWÖ_yíܲsËÎ-„¾I‹@X4iѤE“ÌÞ:Óáé>™ùºonYùVç“®›Mû­Ô’RKJ-‰ Ž Ž fŒ¦ÄÑ!ŽÓ#h@€Ï ÷ª|Ñ7·|2 ¸}€Ù qVgŒæ\.p¹ÀåæŽ #`qP¹©D¼æ–¢ÌÞü°Àå— 0Æ€O«¼*¬\Ð]+MÐknYðEÝÕínPyI[y‰9 ævÌÞö9Óáé>™©¼€ä©¼šD—›Ê ¹¥è[©¼Þ7yßä}BߤE )NЭ߷~ßÚsšç4Ïi¦'è’žAòöýñæŸÊfà«üe×™-‹ªæ>ØÎ?9ÿäüF0q¤˜½’£ií+Þ…ùÒ»§û£ÀwëmãrÄ´ÇÄ™\œÕ]@¶„m 3ûÊ7òíT«z÷Æ_Š>1×c¢?W@b*/§¥~«òVŠ[~îÐaâÞøKÏ'}&M¦ò’¯òóÌóÄ_Šy01'Få$gåÕñ»ªÞÌöÄ_Š>±ÅÊ+þuÀ„¾‰G É\)v¥Ø•bæ>Z§öî[à:€Xv{´ag[s}µüàòƒË2¢Ë‰£ÆÜ1u N³å·QˆåhïòÇ‹u5×WâLΈ,ëëëYy`啚MŽÍrMÈúàÉF­}@ѯèÑ'¸rh`啊þd\‰¯¼ ¯i–§ÛB_±ôþiÔ©å¾T^@ÊT^b®ƒ9±ó`T^@òW^Ùݲ>x²1x@@s>¢DŸPy@ WÃÕp³Wµ6øâûrn»ÒrÐkÚ¯ã¼Ì>ñ·SN=:õˆû#î¸?KÀGø#î¸?ÄdîøŠyÕ*°Âå´\Ì|^µ¯gˆ¹þgo†ð±îµº×ê^+sGVÙ^®Žò‹Ÿ";×(˜6£_±ï¢Ìõ’èCÆ´•W1‡mOËѯï·?…¯;@å¤|å%æ=Òò̘û¢òR¶òréà(¿øé»«5 ¦Í9±ï¢¨¼ HSLm0µ¹›zÆð/Ýêu:¦¬oÚ)zTÚ<ÜËÕ\Ÿw,îXÜñåî—»_îfüŸFAâh2w¬qi1Ä*^…t ª1½I•1æúDœ±?@bÄüóWÌ_ ÇÀiíj`±¿ G¿¢ß?@òU^E§µ ]Y¹ÒŠ%ÑQi'úõ c¬zGå¤nå%æ@ÒPô;êtLY_1ßEå¤^ååÒÁQNkW‹ýM8ú¥òJ›€$=q{âöô{Úïi¿§æ>xª ùö× £wžüÍw‰}—\Å7û·ùÂ}Ÿû>÷}8@≣)á#n×3}ßÙwð®B÷ ½Bûûfsg®ÄYZœ±9@âIK¤%ÒsGœ¸rZx6°ØGs7|D_1f€”©¼ •®×¶ýñJã–µ:ð—}G¿¥: º1;˜Ê °žÊK̇Ø÷œ˜×s\T^€uT^Ùݲ>H Ïûhî†ÏT^ ŒbûÅö‹ímîCÈmŒ·šëÊмQ›ËÈvUdøóUÙLµ¸¢P„Ë¡[¡·Bo…2Z€¤%ެ„¾‰g*}]¢MìÓ/‚2ÚSp׫síj­üïçÿ2bnßÅ™Yœ¥-@Ò Ïž!Å7ÛzZ[ ,]¨€—çãœQæö4ßê|«ó­¾ë×ÿ®?#H>â(Gœ¹ãÑû©soGË9ÛO¨â`ëÀ® ¾ó½šð™VœÅ™™$Ÿ„ÿ&]ø¡u×6E߾β¯CpÛ }Eûž$¼¿üí9`=•W©šƒ–Ìþ­G¿åòN«±ýD®W…ÿôp£ò¬¿òó$bÎÄÖg~Äü•`;•Wù‚Eß¾ÎÒõdpÛóíûBåKH±Ùˆ¸Ø¸ØùÇçŸ<á(¯å=òVØZq-ýƒÍÜð§ñÉÏ}GÔk1¬¦[‘„÷®^›zmêµyVùYåg•@ÊGœ8ú>B§õ®ââ±äm÷n;+ÚJpµa‡¶Uf6r+rßåç„÷NœÅÙ˜Q¤Œ„ŸPŸâ¾ ³ß2ÛŠ~E›-Ù;ž8Xgååô]ÙGÕ½ËM˜¾ô·¶úVj·ôÌï¢ß¶û}ÀC*/Àv+/1"æRleæGÌS‰9+*/À–+¯Æ~Ël+úm¦òÂÇ" ¢ü¢ü¢ü,ùЪúí×óƒ«éËä·¶¯þ?L;öØçFK¿)EX²/“çNž;ynì¸Øq±ã@ÊGŸ8-9f×Tª¹¤täË]›Öèfm_ýo6ìx¦êÐÐß,îc,ÙqÖe ©å^«{­îµª<°òÀÊ>ZËîñjäx8ºñÊÙþã6GOò±¢Ðwsôä Ñ6Ñ΄÷Eì¯ØwÆ`ý•W¡’õZ´._oV¦]Û­-ô­¸vñ¨FûzÌGåØaå%æUÄ‹µÍüˆù(17EåØWåå2ÈñptãæÑþã6‡Ô ò±¢™ŸÍ!uƒ|DÛD;©¼ði€¤šûÎ÷ï;7;×ì\³s–|.s¢ž’omȵ_.x¥Oµç»ìÚ§”yRëJh•Bé,v(ס\‡rñŽÖC•–ż*ö*þæÞΑÕV¥VpøÛ¥ý—´z\Â'ÿKÚ,ήâLË;XƒXÏXÏXϰ-a[¶Xr»Æ8uɾls÷ÉÞKâvGÏ*› ¡ïîèÙAeED{,i¹ØG±¿¼ï€-V^.¹+֬˧á˜F«º§Vèë_g®ÇÞ½îï[5ï]ƒÊ H;•—˜os/©5ó#æÄ•6*¯œ²/ÛܽÎzï%q»C•M…™ŸÝ! ‚ÊŠ6ˆöPy!ñ€¤¶Wq¯â^íù}Ïï{~wøH•Çv.ì:å»Ûkîzl}ýÔ羿$í—þ>ûƒK®làö}o7-wu§åÙ[Þ¶ñ¹ÇçŸûåä—“_NæM¬“8BÅÑjùÑíêžsKöa³|«Nðúçò6é+ÞOÚ/ýïuw™±iÎr¿÷àÓÔ=ëÇžÅUœ]y—ët¹Àå—  <xÔò£»^H•ZÎ;¶|6y·zëøî+U%mÜ+Ö)Ö/¶eyÛľˆýâýì¯ò*x´návÕËü6²êâ+•–Í>è–´qoÙš'lêU̩ヮg{™Ç/ßE*/€ÊKÌÈ91?“Äóº~êsß_Äœ’˜_¢ò¨¼þ¯òrŸä¼cËgu®x«·Žwê^õXÒÎüˆuŠõ‹mQy!9°¦‰&¯š¼j²ÀeˇDðìP;Ï™ ©}½ ú·X<¹l‘9E—‚ÃWÅxÔü®îêÓÃ:¿\öU‰ömòÎlXT®×fX·be×5íåt?Wµ¼—²åÿ´í÷ îÜóúÔëS¯OåÝl‹8rÅQüigçL9nd‹ëô«TÁ–ÓU)à±lSíÚ¼ îj”¾ìy]n²°\_m\“ÂåŠî:Û`²ïëU/k*=bL}ÿ…Å.ןëþÚùEbÎ{âÌ)΢¼›€Íx÷0îaäüÈù‘óÝλw;ÿig€²™<÷;®àÚî {¹ûF+é¹½Áôô>»•9 ‚ývÏÇ” ÿÿ]üŒøyñ»Ÿ¶]ÑfÑ~±/¼¥@Z«¼òÝòíRµŒû›w à1!$zìÁRmŸÝªL¹{Þ.3ðû¡‹.–vZq^ˆç£>'-ÜNðÜueµÂ Ûe›‘ûQÞrT^•×Çó6bGÌ爹1Ï#æ|Äü˜ óBbŽHÌQyT^ŸZy¹ø:®àê3ǽ܂}­JznoPo„ÏneNã^~»çM3— ÿÿ]üŒøyñ»T^HIÀ¬Ô‹Ò/J¿(½ºÒêJ«+9X±¡Ç†zìÚÖk[¯må]ìƒ8¢ÅÑmÍçq†gKÞ5Àæ9Å9Å9ퟻîþ¹éÓ¦·Î3h›h§h3o@åEå€Ê ••¬ 0›q¼óñÎÇ;‡6 mÚ0µ>z댫3®Î¸]SvMÙ5åå—^à}ì›8ÒÅQª¢ïB·IDAT/Ωuþg?q&ä}Ò‚[oe¼•qÞ½y÷æÝsšè4ÑibÊŸyÄvED{x_*/*/T^¨¼¨¼`ý€ئ·qoãÞ^8sáÌ…3«G¯½zt›}möµÙ—TºU.T¹På”—S^NyyøÈá#‡¼8ñâÄ‹t<q6gq–gŒ¤:ÿˆ³™8³‰³œ8ãÑóî…Þ ½º§åž–{Z†® ]º®Ð¬B³ ÍJü™G¬G¬S¬_l‹>@å€Ê ••l0€4áu“×M^7Ù×f_›}m¢ŠE‹*vöíÙ·gùZ Ù‰³8óˆ³8#Ñ3’Ûþ û'ìŸ`¼6^¯Å¿éT^¨¼€Ê i0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0؉ÿrQú•å§u®%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/isEmpty.png000066400000000000000000000441131431412030200250260ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷ÜGbIDATxÚíÝ{”Oõâøÿ=c(wã’”KtQ*Iä2§¨å„H™Ê©•Ô9:]u8©ntUI>ݤ!JÊ-%Gr:¹”KSc cÞ¿?vßõ›Ö4sfffÏãa-kÖÞû½/¯ýžQë9¯ýŽ‹Åb±X, ˜‹7Ñ D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0ä[b6óæ'ÌO02. "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ(43&͘4cRbbbbbâ° Ã& ›°­Ã¶Û:™ý‹Åb±˜€¼ ƒeÖ%ÓÒ§¥OKOÊHÊHÊ0>y‘Ù-³[f·j³«Í®6;ûÚþ£ûî?úÆq7Ž»q\•UfT™aÄò ` ¼ÿ×÷ÿúþ_sZ;¢Ïˆ>#úÔ_TQýEfç ‚Vϵz®ÕsáLßÜ·ƒóÎ#  ß<º`…A÷™žÏô|¦g˜{óò*‰ÎN€|€1ø@Àoð¡!ç— ù&zbp^Àopáƒs"@¾ ÀE‡œ• ù&Mb° ù&}%3 ÀopñRrb° ù&_ÑŽÁ0ä› Ñ‹Á0ä›=шÁ0ä›mÅ7 ÀopÉQ¼bp¡àìßQòÚØ×Æ¾6¶C×];t=4GŒ7èC»X»X»C:W8(fÅÍŠ›w(˜PX—>Ý- 8êX±cÅŽ³.ö˰_†ýrê¾S÷ºÏøDIúéw¦ß9eø”áS†¯4¾ÒøJyyÕåÛ/ß~ùöVϵz®ÕsA× kpˆ]hŸ ÅWbbbbbbÖ%áȤŒ¤Œ¤ ãSÜm밭öÏô|¦ç3=GôÑgDŸ¼¼ªÿèþ£û¾qÜãnWeF•Ufú3Opó~}X4bQþÉÕï¢or•ä*ÉAø§À@ 蛕 ” Ñ‹¾Y À@ÄE;úf%Tr¢oV0%3úf%Ř蛕 3¢oN` }óBŠ(Ñ7¿` }„ 2Ñ· À@!}( ¯_xýÂëG\;âÚ׿¾¥è›wñ†8ôÎåüWÎ%§µaô]Ûrm˵-$H\eF•Uf·Ü À@!ˆŸ?1~âkc_ûÚØp‰è{àâb±X,3w‰‰‰‰‰‰Y—LKŸ–>-=)#)#)ÃøPẌ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"".‹Åb1PÜ™ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„  ‡ò`óæ'ÌOèX±cÅŽ =PLKŸ–>-=)#)#)ã`Ë `€ˆ€""¡(œD8å9È 2ƒÌ Ä‚X,3–ûíë¬Ëóôõþ½êÐïÙy¼=;ÿ¢y”8b,‹Å"~‘=“¢3Eÿ¬Š×Ò™ÀOƒ’s/Œ†»ѯèÿ|íë‚ýÚ¯óôßFÌ9óâ~†Eç_ü’vwÑQåQÞwzq’yžÑÞ[ôΧ`ÿKþÀ¿Ó‹í˜\Òõ’®—t-Ñ8””™”™”ù»EqA\Äñf*A𻟥‚RA)C~øi%”ÿSÿ à¿À¿ø@”¾ÓýËþMù óæ'ƒŠAÅÂûŸ'"Aˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€""ÁÅ]bbbbbbNkSSSSSSKÎõÑs(.Ì €ýD Q%D„G@àÏóþ<ïÏórZûÁÙœýÁÙF à`€"å¡s:ç¡s ÷îøèŽîøÈ½(i>»è³‹>»(§µ‰Abèó¡:(öºì>²ûHãêývï·{¿]Èçôz»P` Ø{öêg¯~öjão¢Aˆ "|0@Žvß=|÷ðcfŒ™1fÁó ž_ðüU¿¨úEÕM£7Þ4:m{Úö´í¿öýµï¯}+Wª\©r¥Äm‰Û·rÁ)œrÁékO_{úÚ®?vý±ëuN®sr“gîß³øžÅ÷d_Þâþ÷·¸?ûò—úw©—zñˆxñˆe Ë–%|?þûñßO_‘¾"}E­;kÝYëÎzëU¬W±Û‡Ý>ìöa·Ï»}ÞíórW”»¢Ü¹ŸÉ–[n8©Æ¤“jLsú›Óßܰ` ¶Þ´õ¦­7Å*Ç*Ç*Wý®êwU¿k|tã£}ÞÒó–ž·ôò^—÷º¼W^öŸßÈ}6|µá« _½´ù¥Í/m^ðÆ‚7¼.ÙrÓ–›¶ÜT}^õyÕçÕêS«O­>ÍßiþNów.té¤K'5ý¢éM¿ð®ˆž¸X,‹ÅÍÁæ'ÌO˜ŸÐ±bÇŠ+f]>-}Zú´ô¤Œ¤Œ¤ ·ȯÄÄÄÄÄĜ֦¦¦¦¦¦æ}o;§ïœ¾súC×>tíC׎úuÔ¯£~= ÿéJ‹K‹K “á²´eiËÒêeÖˬ—Yt®·xÝÇmU¶UÙV¥÷œÞszÏùðœÏùðœüeÎö9Ûçl?mßiûNÛ—uy¬n¬n¬î“>ùá“:sЙƒÎÜ¿«˜på„+'\Ùþñö·¼`G ë8옿cþŽù·­¾mõm«ß¸å[Þ¸eÿÎvQßE}õmø@Ã>P°ç™wYß±í§¶ŸÚ~ê’«–\µäª¬ÛTŸZ}jõ©ß\ñÍß\·>n}Üú‚:úõï\ÿÎõï¼ÙóÍžoöÌþ»ü“åŸ,ÿ¤vëÚ­k·ö“È‹¢ÐC=à7ÿÞñïÿÞqæÔ3§ž9õÀÓo(L¿á×-‡µÖrXÁƳ’cuçÕWwn[©m¥¶•ö/ý†:ÜÙáÎwf½ ¿øuÀ¯.^{ñÚ‹×Hú ]öäeO^öäÁ»Ë«®\uåª+ÏÉ<'óœÌI¿¡³’ÎJ:+©è¼'/*{QÙ‹Êf_žÒ)¥SJ§ªéUÓ«¦Ô±ÂùýÙÓo¨u÷ÖÝ[w?õÂS/<õBß}@ñ"Ë¿_þýòïÛÖi[§m^ÿáõ^?G ƒS™§Ë<]æi8¿’ŸH~"ù‰uéëÒ×PÜõÌ®gv=sìÜcç;7œG{õQWuõQsªÏ©>§úŸg˜üÇŒ»|éÜKç^:7Ìá¾·½=ööØÛ#œS[Þ“ku®Õ¹VNko¼öÆko¼¶ Žõ~¿÷û½ß/§µÝGuÕ}TñO”d>(ÑÂÖ§vŸÚ}jç¾eø ¬½–ôZÒkɉýOìbÿº'×=¹îÉñ_Æÿeø©«_øzÄ×#žûôاÇ~Þö󶟷;Ÿ=}÷ôÝÓ÷ÔF§6:µQøØá‚}¤mT­i²¦Éš&á×á˜_7ñº‰×M¼êÈ«Ž¼êÈú?×ÿ¹þÏß6ù¶É·Mfu™ÕeV—¡/}qè‹áý;·oÛ|ÛæÛ6u‚:A?8ÖŸZþ©åŸZöíÖ·[ßn-žhñD‹'J-/µ¼Ôòå+—¯\¾rÂà ƒ' ~õƒW?xõƒœÎ6µJj•Ô*c²'ð¶{Ûîm»·÷Û½ßîývÓ5M×4]æçðWæý0ï‡y?<ñó?ñÊ +'¬œ}Ÿáû0aZ´„iaÎ=|æ4O÷]ïìzgW~_•U=mñ´ÅÓ †C `$'ž;ñ܉çf_þŠF¿ûØïÄ«R¯J½JŠŸ {ò™¸¯?úú£¯?zã}7Þwã}ð¿LëãÖÇ­ÓvLÛ1m{­éµ¦×š¼ÏÌû|ÊüÎ2,™Ÿ ãÜø‡Æ?4þ¡nk»­í¶6§ë ÷ÞÁ0pæå—\fp™{÷Ü»çÞ=¹d^Îö¼Îûè¼ÞjòV“·šì{&LàŸóð9ŸskÊ­)·¦ä~¶ûÎÚwÖ¾³ª¯¨¾¢úŠÜ÷|öQguöQï|õÎWï|u(¿³YsdÍ‘5ûp0ÞçáÌï:ët¬Ó1ûÚ0T‡1Û ` ¿|0@!›xÆÄ3&ž‘ÓÚ;½óÑ;Íoú ¥f¦f¦fæ¾ÍÍÍon~ssw!ïî>ïîóî>/÷ôûÛø§¦¦¦¦æ=ý^}øÕ‡_}x^ÒoÖýç¾ÍWï}õÞWïŒG+{dØ#ÃÉKú •ú¸ÔÇ¥>ÎË–áŒáÂ}tmÖm³n›u ûwæ»3ß™ÓZŠ;(Ñþóìžýϳ9­ CÔ~¦ ´ -HÞox¿á9~ÎèÚĵ‰k 8³%ª—úw©—:wªæÐšCkÜppÃÁ ó~G&ÖŸXbýÜ·©xJÅS*žrO³{šÝÓ,¿÷ú• ¯LxeBNk®÷s½Ÿëì8„3tïwç¸;Çíß;ó§Ú?Õþé<ðx,k°¬Á²œÖ†‚>ýçôkᣳ{\ßãú×ûÙ_0P¢m¹iËM[nÊim­þµú×ê û?Ôù£ÎuË–?þsÞÒó–ž·4JãÙ¶RÛJm+Œ=ßðØ ÝðX~“gýÔú©õÿÇö×½x݋׽xü'Çrü'ù=«^>áå^ÎimøyÏ;ƒj ª1¨ÆÌO =þžñ÷Œ¿'§mf<2ã‘î<à¼xàÅÙ—ÿ÷îÿÞýß»÷ïÜRë¥ÖK­÷ÁÕ\ýÁÕÙ×v]Ýuu×Õ~*Å]‚!J²òW”¿¢üiAZökg;ûØÙÇ^\\¼Ÿû?&õ˜ÔcRƒƒÁ´zU°*Xå.äÅiN«pZ…ü¾ªvëÚ­k·¦Óƒé9mÓlN³9Íæì_R­W±^ÅzÍ;÷عÇÎmצ]›vmRƒÔàÀžOþjBNkFºÎ¯ÎGv>²ó‘Cƒ¡ÁÐ?X~Zs~÷9eó”ÍS6å‚rA¹ìk“G&LùHê#©xø3PŒ™ ”h¹?lö–r·”»¥\á΃$tÜ”ã¦7%¿¯*ýjéWK¿šû6'ÝqÒ'ݱgUæé2O—yúÐŒ@§ZtjQPŸM·>n}ÜúÜ·¹ã…;^¸ã…ºã hø@ÃrZ;åë)_Où:¿ûÌéáÏÇd“yLæù¯œÿÊù¯ø^Š;(Ñ:ÜÞáö·ç´6}EúŠôá×ažù÷™Ÿù÷ÝÃwß=¼h^Qj¡:x×U§uÖuZŒ=ÊY¼¢É¾&ûšì+Ø}>ýðÓ?ýpNk—%,KXVÈO»ý­Ûߺý­ìË¿hðEƒ/äý—3¶ Ü2pËÀÿóñ>þOöµÝGvÙ}äÁ~0P¢Ýð¯þuÿò¾}òËÉ/'¿\ëÁZÖz0ŒO´{¤Ý#í>YôÉ¢Oízf×3»ž)ÉãyðZ^f¬µ=¬FÉ’%ì>O¾àä N¾ §µçoœ¿q~á΀¿¨ÜEå.*—ÓÚ{>ØóÁžyÙϤ“jLª‘ÓÚîãºë>ÎÏC ` D«T§RJuæÍŸ7ÞüjóªÍ«6/¿{¸ÿóû?¿ÿóN:uèÔá¨G ÷9Êë7®ß¸~ãg}vÑge_›<*yTò(¢DøMÍ¡5‡ÖúÒ—¾´0V9V9VùoÇÿíø¿ìÜcç;÷À÷?|äð‘ÃGÖk\¯q½Æ…ûX]%|’ðIÂ'9­Ý=`÷€ÝŠÂyv®Õ¹VçZÙ—gžšyj橹¿öí3Þ>ãí?˜û[êãR—ú¸ÿ¤þ“úOòN¢DøáŒÀ!Ÿùtȧ߶ù¶Í·mÂåÿÚü¯ÍÿÚ|ÖIgtÖIeo,{cÙä(20y·ã“Ÿìø¤`÷™ûßÊ•*Wª\©(\ûékN_súšœÖ¶¼ýãíÏimNn÷Q»Ú}ä}D ð?¤fÑï°~‡õ;lÊ‚) ¦,ØõÌ®gv=nsßÌûfÞ7³Cï½;ôÎ{.ýjéWK¿*“)g§œrvï󬔳RÎÊimâ¶Äm‰ÛŠÎôíÖ·[ßnÙ—ÏI˜“0'!û÷Ѫ+W]¹êÊ W,\±0û«<üˆ*`?e Ã77¿¹ùÍÍ_{赇^{(k>&õ˜ÔcrÌK{{ìí±·Ç ÿºá_7üËx’»•Ï­|nås»Ï¯Þû꽯ÞËim©5¦Ö˜ZtFࢲ•½¨löå{úîé»§oöå9Íý­T!©BÒµ?]ûÓµ?y_Ñ#°¬axqßÅ}÷Í}ûªTý£êÆÜ-«º¬ê²ª»ÏÏOÿüôÏOÏiíé?Ÿþóé?9²g¾tæKg¾”ÓÚ.?vù±ËY—ä€/*wQ¹‹ÊyGQ•`€’é]ïìzg××#¾ñõˆìk;¶èØ¢c‹“/8ù‚“/8£”yºÌÓežþàû¾ÿàû?Ïûó¼?Ï˾Í÷Ó¿ŸþýôÄ›oN¼ÙiÉÉ»o¾ûæ»oƒ bw•ƒÊAå)šò§)Êi“fsšÍi6§ AZ¤‰AbðLÿàê®þàêÄé‰Ó§Ï]1wÅÜ«;¯î¼ºsö-»ì>²ûÈ'zò¨'ò¾¢GJ¨O}²è“EcFŽ9fdöµ»·ìÞ²{ËÉÁÉÁÉp¬†4| áÁYÁYÁYFžý~¢mX?üf;ûØÙÇn\°qÁÆÙׯÿeü—מzí©×žÚ5èt-Bã0uÆÔSgtêЩC§Y—súÎéá×oŸñöoÿÁÜßZ}jõ©Õ碓/:ù¢“ý²U ”Pµ[×n]»uNk=´è¡EÔ±V,\±pÅœÖý—£ÿrô_Üò¢Mù6åÛ”?=ÄêÆêÆêj8¨á †9mÓ~\ûqíÇÍh}]ëëZ_—ÓÚ+.¹â’+.yû¸·{û¸ìk»¿ØýÅî/J¿@´ À@ õ§óÿtþŸÎÏií¢‡=¼èáÄÄÄÄÄÄ?ÖK›_ÚüÒæœÖ¶x¢Å-žpGÈ‹¹;çó@Þ™ÿlñÏÿlñÕ{_½÷Õ{9msÍÖk¶^³µ`Ciž|?áìäœÖ¾ÑóžoôÜðÕ†¯6|•}m÷QÝGuå]D›G@%Ô_œñÅ_ñA|ο[shÍ¡5‡.¾gñ=‹ïiq‹û[ÜŸ÷ýïí±·ÇÞá<Ë×{ý±×ËiËËn½ìÖËn}¼ûãÝï~à×5æâ1¹¸(Œpï·{¿Ýûmï´ƒ¡ÔÇ¥>.õq˜ó’i3:ftÌèxߪûVÝ·ê©­Om}jkN[žuÒY'uRòËÉ/'¿œúxêã©Ô9§œrvÊÙ5‚AØÛ¤R“JM*Õu_×}]÷e¿ÒìÛŸÒê”V§´Jê“Ô'©Ojrjrj²wU0PR¥iAÚÈÝ#wÜ}K­[jÝR+û&[n¸e`‡´iÒbOÅžŠ=õôÃO?üôÃÍßiþNów޼óÈ;¼³Ì«e^-óê¦7=¸éÁðUçý0ï‡y?Œ»pÜ…ã.ÜzÓÖ›¶Þ”Ó)t]Ýuu×Õwáq—Ú=µ{jà;>ºã£;>* |Gâ‰w$zÜîÁ°ï¬}gíûíó¤Ã üÚC¯=ôÚCM×4]ÓtM•X•X•ئћFo=÷—¹¿Ìýå¹kž»æ¹kVÎ_9åüœöyذÆ6läè‘£GŽnÚ µAßµ‡º=Ôí¡nwÇÝww\ÙËÞXöÆ0 uÙQ—uY~÷†ê`E°"X‘—íù¿ÿññïýD[\,‹Åb‡æ`óæ'ÌOèX±cÅŽ³.Ÿ–>-}ZzRFRFR†[äWîÃÍ=@†¥­š^5½jú¡<çp>âÔSL]Pe[•mU¶Ôõ5yÀr kÏy¿#y9JîûéÿhÿGû?:âַޏµ`ïQ8ŸxÜÎq;Çí¼ò‚+/¸ò‚ý“yg¼#Æ­[·þ«W¿zõ«Wkõ©Õ§V?3€ƒ§(ôPŸ ”haúaèCzhŽØnr»Éí&¿ûì»Ï¾ûl~Ó/%Ù€k\3àš‚Ýg8wlµ±ÕÆV;ôº¹ùÍÍon~(ÇäÎot~£sîÛ´©Õ¦V›Z4Ðh€wPÀ¿e°ÔÌÔÌÔÌpIíÖµ[×n]Pû?­ÂiN«ðò{/¿÷ò{³ºÌê2«K¥:•êTªcäɯ¬ö˜Ìc2ÉÜ¿ýœ»ôÜ¥ç.]8`စ®ntu£«øLè»Ï½ûÜ»Ï=”£Ñ6£mFÛÿñ»óáß=Š(9|0PìXÚI Ò‚´Ô 5H ‚ÊAå rb|b|bü?¾ùÇ7ÿøæË•_®üråêΫ;¯îœ¶!mCÚ†ô/Ó¿Lÿ2~}üúøõaЭº®êºªë]ßèúF×7Ù×d_“}ç9ÈùCZ k5¬Õ°Ž-:¶èØâÀ϶¸¤¬ü>ø`_Waíÿ`<²;<ÖÞ{{ìí1ëœYçÌ:gRI5&ÕX±`Å‚ ¶Ü´å¦-7¥¯H_‘¾¢æS5ŸªùÔQ—uùQ—‡Ÿ›ÛíónŸwû¼uÓÖM[7­—Z/µ^jAÌáw~×áwmýrë—[¿v&•ƒÊAåÓêžV÷´ºafκ²Ûìn³»ÍžxîÄs'žë{84ŠB5 ßÄ$¼?‹Âù|¼èãE/Zßz}ëõðÀöä‘É#“GŽI“:Æw+P‚ø ` XÿÂøÆ¿}yµyÕæU›×}J÷)ݧ% ¤€€bæ—×~yí—×r À—̾dö%³P2 À@1óæÅo^üæÅ9­M•<*y”Gµ%“ ;§ïœ¾sú¨Ý£vÚ}mã£ÝøèsSÏM=WúJ¨Cáã¿\ùåÊ/W6ø®Áw ¾«T!©BÒWï}õÞWï >rð‘ƒ\Ûcmµ=²¿öö·nëö·:ØéÄN'I d€€"dëM[oÚzÓÁÁÿoÑ»Á»Á»¹¿ªá høÀU­®juU+J2€б¯Ôx¥Æ+¯¼÷Ê{¯¼'ýÀ@±tLæ1™ÇdNÞ1yÇäÍ?nþqó €G@@‘pË–[¶Ü²Å8TŸV}ZõiAÇ cÐ1L¼›Üôফ®«º®êº†O4|¢á]¿íúm×oûØïÄ~'6Jn”Ü(959595ÙèÀP$ .3¸Ìà2Æ¡BR…¤ IY朘˜˜˜˜¸)Øl 6•ÞTzSéI5'ÕœTóªÔ«R¯òÀg€ß€€"Í'ûäψ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€""¡(œDl^l^lÞ' >YðÉ‚ÿ±i\ÄÂ):nTk„×q×O*Çu\Çu\Çu¥Žë¸Žë¸ŽëJ×q×q׿DŽ[ÄŽgœ£{܃¬HàNvº°Ó…P%¨T1 쀈ˆC€“2’2’2 :ÀÁpHÒ%¥KJ—©Ó¦N›:í À“ý]©+u\WêJ]©ãºRWêJוºRWj„]©+5®ԕaWêJוFú¸…ð ÁÞK¬á ohxÃ!ºˆX,‹ÅŠ9Ÿ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀooŒ{cÜãn»ì¶Ën»,üzÝÎu;×í42®¸X,‹Å ä]bbbbbbÖ%ÓÒ§¥OKOÊHÊHÊ0>3€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "âb±X,3”d)·§ÜžrûÒK7.Ý8³ËÌ.3»Lþqò“üiÐOƒ~t {®6¤ÚjCºÔèR£Kö“ÛOn?¹ií¦µ›Ö®þpõ‡«?lä)X0%Îær›Ëm.7iý¤õ“Ö}aè C_Ø1|ÇðÃå9T¸«Â]îØk`¯½ºÖíZ·kÝ#9ò—#qw80QW'¨ÔY4`Ñ€EÝ<èæA7/©¼¤ò’ÊEí4›§5Okž6äÉ!Oy²å°–ÃZ 6‚ n y'EÛ‚mÁ¶ùæO˜?¡g»žíz¶Ki–Ò,¥Y~wSµn½Ë”«ýzÓ2e©¶µ~é2+L­ñ·„Me.-_1¾v|ÍR¯ÅMÉܲïŠXç=oîLÏܸ£ÓOdÔú鈵{÷LÙxÙÒ=»nûyýºköä{^oõϪVý³q³ÆÍ7+)9)9)9¨T ª¸±äN RÖ5X×`]ƒë&^7ñº‰KÎ]rî’sóòªÚ‹›¶);ú´G»¶«òÀÑO49¶ìé†W¯ŸðuAÕŽ»RÖfœøýß–}»ë‹ß:iÖ¶»7¶X:wWŸ¼¼¶ùìæ³›Ï~¾ÛóÝžïVoM½5õÖ¸ËäD Ø‹5Ž5Ž5~öÞgï}öÞ׸vÀµ¹oØýëÆßÛîÁþkÞ×ð¼v#*Ö IAùCzÒk‚ùÁÎÿ~8«ú–Ywލ½åŸ¿Þ“¾>spî/6vØØaco|ÃàÇ-[·ÜÝ'+€b,åò”ËS.ïV»[ínµ—Y>fù˜œ¶¬úcš”9áüïîžYs\­=§<[¶[Ð0hT,—ñß`V¾©ÌŠvM|ÿ˜Úoéùócß-ÛóMN›7îݸwãÞ7NÜ8qcõñÕÇWï@H XZþÍòo–Ó¦E›mZä¾e·ûF-:ze½Ô3cå»—«[—øiÜÎÉÿÙ¯å÷rßrî⹋ç.n|BãŸà]A¼! x™=vöØÙcsO¿Ížï±"ñÁ~ÇÎ Ž¯P¼Òo(<çðüÃkÉiËpÂ1ñÞÀ `Šé¥¦—š^ªG¥•zTÊi›K>Õ¼ö :»›>^îõ(]û†Ã—þý—ËÞzÓ’CrÚæÕí¯nuû_öýeß_öy·”LfP „3\sJ¿ ieÖÇu¹nì;½ê¯^ú …×^cx½Ù· ÇÇlà’Ì `Š´Ü?ë·j·cö•©}ÅÇcÞ©ûc™¿–¯_¯$ŒÉžWvnÊ\÷ÚY½/Z_ãç‰ß•Ú³1û6>¸d2€"*åò”ËS.Ï=ýöxîÅê/9é7^oxíá8dß&·p ½—J€"'Ö8Ö8Ö¸[ínµ»ýAÚ €Îú-ýÀá㇔ÌQ ¯=‡œ Ža8žÞW% @‘óì½ÏÞûì½ËÇ,³|Löµ×L|óÞc+i³~sŽC8&Ù׆cŽgÑ<ÿ“fLš1)11111qØ„a†MØÖa[‡mÜÙýã3€(BÖ5X×`]ƒ&©MR›¤f_{éÀ§š×TgwÓÇ˽n¬²ÛpøÒ¿ÿrÙ›CoZ²ñfE/K\–¸,±Þšzkê­) g›Ù-³[f·j³«Í®6;ûÚþ£ûî?úÆq7Ž»q\•UfT™áþæ…À ???]7ñº‰×M̾²Ùó=V$>(ýæ.Ÿp¬²¯ýml ~ ~* gûþ_ßÿëûÍiíˆ>#úŒèSQýEõ™œw0EÂü·æ¿5ÿ­%ç.9wɹÙ×¶Þ{ý™Õ.1Jy‘ÓX…cŽsQ8ÏVϵz®ÕsáLßÜ·ƒóÎ# (lu‚:Aãç?çø9)ÍRš¥4˺²Û}£½²^ê™±ò] UÞ­Kü4nçä‰ÿì×òûFY—Wÿ¬úgÕ?[ÕvUÛUmƒ Á†`CQ8Û0è>Óó™žÏô so^^å1ÑÙ™ @![4`Ñ€E²§ßªÿ8¦I™ê}qæÂò6JùŽ[8†Y—‡ãŽyÑ9Û0ßH< ym˵-×¶43xÿ˜ @!kß>¾}ü’ÊK*/©œuùå]ŸßZgA­ú§|[¶§QÚ?›Ö®8v׸ñ“®;bCë¬Ë›§5Okž63sfæÌÌ¢|þfç—ÀšÍå6—Û\.{ú=ìþŠuãï­µú”Þe}Îë Ç0ϬËÃ1Ç¿(Ÿ¿™Áù%Ph&­Ÿ´~ÒúìËÛ=ØcÍû‚?‚šÙ×î[½÷þØŽðïà‘ Eð‘ÌÑŸƒAÍ߯3Ïã_4‰Áy!PÒ‚´ mè C_úBö•õ+´š\>!§—Žšrö»«~ÿNݾ>iOÙ»œÆó·ñO Ò‚´âuEbpN` AÊ})÷¥Ü·cøŽá;†g]^{qÓ6eG—¹¼|øºF© „ãŽmÖåáø‡÷¢ø^œ• @!Xºq鯥³/?íÑ®íª<`|†œÆ6§{Q‰Á0…`f—™]fvɾü¨vW>×ø 9mN÷¢¸+™1X Lþqò“̾¼|ûêæe_þ裭Z}óMøwÖå/VN^øÝäœÖfmêàõ·îi”qãžY±¥s–ܽõùgöv˜ømæØé—þmíYáöá6¹ï3»ý{UhãÌ/^ýå‰w+j´)á¹z´¦\ø Çc~¼øÂ5¯LjqÛÞï«~ûO&î¸;vT¬_lêþyNc›Ó½ˆ’’ƒ`©Œ%K2–ü4è§A? ʺ¼jÝz/–)?*~VÜÐì¯*7¿ê神 ÿκ¼ìžÊo–ÊÌimv™Í÷­‰Ý0eó]o¿{é¬ çlk³ë‰mï[}èÇ!L¹³{dåÖø7Vô}rãùÿ½÷ƒÊé+wôÛZ%cÙ¾Õ{ïíØþò¦Ÿ3Î\›¼àì‹Þ©sÇÃ?\ýØí­?]Õpo•Ý×föÈïñ Ç9ëòð^„÷¥$¼£ƒ`©v Ø1 ûòÚ¯7-Sö‘œ^Õgâ»{Ž},ü;ëòËv=÷h‹sZ›Ý’¾Ò=uðwg-üâ—êá’&eº­¨zÊ¥×Ué|(ÇaÁÑÏoûiÚ²aoõÚöu¸¤yŸ+“?ï:éѧn}Å„±çÔmyþ_ïUsñ‘jÔùðêY_ûÄ sþ³zðþ7§qÎé¾D[ôb° À!µ­ß¶~Ûúe_^mkýÒez‚]yåô'¶~}klaæ Á¹7ßž~Äq§_Õ½qâù}tóþI›ýÕ{·~:åÿšýüC¸äê^«YoÆYåú>\ãòI]oíûý‚#Ÿ4ôðŸO>âÂ3+_yÅÇ/L®›’}?ûw¶9sN÷¥äˆF €8¤¶Oß>}ûôìË+L­ñ·„MûèuNišRöý[o]¸ð„kÿû~.?Øç°"aj«´äØøÌׂGZ/¹þÿª=[­cýɇõËñn 'ÜÒìãÕÇßuñ)Všß œÓ8çt_J¦âƒ kȽu•¹´|ÅøÚÁ̃{”ú’>®ÐêÑ“[uý¦Ò¡É½Ù¥,ýö£_ÛAÏÖ¾¦É’²Ç<º¢ÕÕß|“ûùÄŸðcÜG2:¼Z©ÊÊe3zlßöÃM+.Û= xv¿Æù…`Ëï—·y½Íëm^Â?d·(X,Êûæa n2¶ÉØ&c;‚CUÜ)Š‚øš¥^‹›Á¾ƒy”ª;Žé^:#ü²°®4uûúÖ{»‚7‚„7Vô}rãùáòüÎåÝ5 ­Î¾“n-¿ðõöcœÏôž;øÚÅÚÅÚÅé÷‘A (ÈÜ²ïŠØAÿ àÊWÖªZzqaÍý m?bóŒ½Wø~ö6úåß™•Šæ8š7+nVÜ¡-}Zº[PÒ|[ùÛÊßVî—Ù/³_fÖå{ÞÜ™ž¹1¨|p¿¤Tƒ¸gƒŽ¿ç_ÿ¼£mæ¼àÓ`áÿÚ²|ËjO'|˜6û‡+÷^ö`­õÕ;6˜|Øßó}È´ vå÷E¿s6ú]NÒïL¿3ýÎ)ç Ÿ2||¥ñ•Æç)º_¾ýòí—ooõ\«çZ=t º]ÍÙZNÊHÊHÊðv(iŽžzôÔ£§WWWe]¾£ÓOdÔ æ×ëÚö—ïŸÜóqði'ç¾e•çëì+ý`Ú±?{¯)u\™{â*$Þ[w^™•‡æ<ç‚î¿_®ßýînvØÖa[‡gz>Óó™žá§ù•‚JÁÿH¿ýG÷Ýôãnwã¸*3ªÌ¨2ãП¹G@pHUUeT•QÙ—ÿtÄÚ½{¦ÍsþuùŽ;÷=Ÿû6k?]pØÎŸó²·j7S¯Lƒðëon˜5nGƒ¼|úï¾Õ{ïíxùµ+˯[ÿ\½‹NZSnñgã^þéÙü^KQçÂFßa†M6¡þ¢ú‹ê/ú-ýæ*Œ¾k[®m¹¶å€äÉ’ +ý†`© Ã* «0,ûò—-ݳë¶üîmß¼Œ±s ö ßSùÍR¿{"/ûoôa‡Õ•¶†_ÿç¤÷ßÝÞ+/¯údõ3¥Svü¸yuã_wïè·µJƲú·:½|J^âñsTE#úf%pH%4OhžÐ¼ÚjCª ɺüçõë®ÙóKf¿Ìv±ÿc?Ä :…_~ýüûƒÒÜ™ôó7þ2ñç½ø–VyC©¯+Ÿ{ÔË¥—|xÌCí¶NSkzÆÖ öNøùÙïÖíY³ô´ åR¯{ãü¾Wnø[õŽP橼ìÿˆ4<åð»Oé×id¥e±ñ™¯„Wîåy3ŽÛ~ÄÖÇþ»b÷ß>4¯öŽÆ“߸ý“ï[}¾rüäÔíáN8áÜÑf„û¹õÖ… O8!/Ç Ç6ç¬Ë³ß‹h‹^ôýÝ÷—1z]jt©Ñ¥Æ Á Á ¿[¾sfJ·Œ³+G¥‡æôÚ¯Wî°u?«‚_ƒO§¼Ôìç>òR™ŸÿÁÙApk× š»vóïìtÄ3¸åÿ¾÷ëQ;úeþöèç¿(míéA\ÁÕAÜñÿ®hÄ»G;&¸øÂµyÚÿykïø æ_VSƒíApT¬_05\þÞ…Cjlþ$‚ ø$(Alüÿ_U·j³AåÊ\ðîàkõèñ­Z}S!ï8Û ^ú£{í÷Ûï>ÓwшE#áŸ\ýî3}“«$WIÂ?E˜À‚ö“ÛOn?9ûòf-?~w›Ü_û—çï½çÈë¼xÆ»e¿+Ó¡üîø#K¯,wZüöÄJuæ—žTPgXï¦3ÿS~@˜f½ã¬å—W¼³æ½ ÿ,u\é{â*TZVkUémMg\6¬Êæ¾W½?ñØ;*]Y«jéOK=S¦]\ÓðïÜ÷î'k¾=6þ¬Úåß,×­jéRÿˆ'ajðCåw¾¹ôŸêŸÙú×òU/Ú÷à†£.¹¤çjóøñmþ¹*é7÷±Íé^wў雓¸X,‹ÅüˆàPJ¹=åö”ÛáøŽÿÝàÚ‹›¶);ºû„§†×y4/û ›œßºr:VÁžCî{;c½‘|Ó]nÝØbéÜ]¿‹ «z­êµªWõ‡«?\ýáâþ¾úÝLß<äÞÐïfú«Ü› @aH Ò‚´:£ëŒ®3zÇðÃw ϺòæZ³¦wx™ËË׈¯k¨Üžñ;Ì\ÿä¦vWïκ¼Â]îªp׆>úlèT*•‹ãÕ‰¾Yy4…¡rP9¨<°×À^{e_¹vÇÂ.;3 RAÉi<ÿb˜~Kæãó ` Íær›Ëm.wÒa'vÒaY—vźñ÷Þ4af“ã þ j«ýôA0,ØòTrûe«oýõžôõ™ƒ³®üϯÿùõ?¿ùË‘¿ùKÑ¿3}óB µoß>~Iå%•—ünêå]ŸßZgA­ú§|[¶§QÚ?›Ö®8v׸ñ“®;bCë¬Ë›§5Okž63sfæÌÌ¢|þ¢o~y4…lÈ“Cžòdöåïó@û-=ƒï‚EÁN£”oß‹‚¿ažÇ¼(ðxça0…­NP'¨süœãç?'¥YJ³”fYWv»oÔ¢£WÖK=3V¾‹¡Ê»u‰ŸÆíœ<ñŸýZ~ß(ëòêŸUÿ¬úg«Ú®j»ªm°!Øl( gk¦oA1€Â¶!Øl7kܬq³²¯ fÆq{ÎË”÷ò$«ìé7ôÛ8ôk¦ïÁ P$$]’tIÒ%Íg7ŸÝ|vöµ J?÷éOo¥¼Èi¬Â± ǹ(œçÂë^¿ðzÑ·`y4EȺë¬kÐ$µIj“Ôìk/øTóÚƒêìnúx¹×Uv_ú÷_.{sèMK6ɾvYâ²Äe‰õÖÔ[SoMQ8ÛÌn™Ý2»U›]mvµ?Hþï¼Ì  óä°±ÃÆ›}m˜6ÓOÙ:fïûÆ*«pLrJ¿áxôŠŸ?1~âkc_ûÚo÷ÚLßg0EN¬q¬q¬qÛóÛžßöüåc–Y>&ëÚ„´2ëãºô9~úgÇÎ(ó×òµâë•ä±ÚóÊÎM™ëF¯úK³o;dTÞS769ëÚÆ½÷nÜ{ÎûsÞŸó~Üò¸åq˽»¢Í `Šœ0UNÜ8qãÄÙ׆™óµ³z_´¾ÆÞ»w×ÎT2G)¼öp²§ßP8†Òo úÞ1€¢lù7Ë¿YþM›mZ´i‘}mÕnÇì+SûŠÇ¼S÷Ç’38œõ¦ßŸ'~WjÏdò¹‹ç.ž»¸ñ Oh|‚wQÉa0EZ˜0'>2ñ‘‰d_æÏðÈ%á³Ãk ¯7§ôŽ•ô[2™ @±1½ÔôRÓKõ¨Ô£RJ9mséÀ§š×TgwÓÇ˽¥kßpøÒ¿ÿrÙ›CoZ²qHNÛ¼ºýÕí¯nÿ˾¿ìûË>ï–’É `Š0mæ48&Òy'=YñÇ^ûÞÙÛ*öCñ½ÞðüÃkÉ=ý†c"ýb0ÅRîŸ œU·ûF-:ze½Ô3cå»—«[—øiÜÎÉÿÙ¯å÷rßÒgý’•ÀKaò\uÁª V]иwãÞ{ç´e˜QÇÅ.¿ñ»`ÓÚÇîü7˜¤¡‹ùo0+HÏ-<ÏÜÓox½¿]»ôKfPìÅÇÇ?{ï³÷>{ï€k\;àÚÜ·?ìþŠuãïm÷`ÿ5ïkx^»k ‚¤ ü!=é5Áü`ç?œÕ?}ˬ;GÔÞòÏ_ïI_Ÿ98÷ ;lì°±7 ¾að ƒã–Ç-[îî“• @¤¬k°®Áº×M¼nâu—œ»äÜ%çæåUµ7mSvôivmW壟hrlÙÓ+ ¯^?áë‚:«w¥¬Í8ñû¿-ûv×ÿ¾uÒ¬mwol±tî®>yymóÙÍg7Ÿý|·ç»=ß­Þšzkê­q—ɉ @m ¶ÛæO˜?aþ„žíz¶ëÙ.¥YJ³”fùÝMÕºõ^,S®öëMË”}¤ÚÖú¥Ët®0µÆß6•¹´|ÅøÚñ5K½7%s˾+b÷¼¹3=sãŽN?>‘Që§#ÖîÝ3eãeK÷ìºíçõë®ÙóK~[ý³êŸUÿlܬq³ÆÍJJNJNJªU‚*n,¹€ˆº:A Î¢‹,0èæA7ºyIå%•—T.j§Ù<­yZó´!OyrÈ“-‡µÖrX°!ØlpÉ;€gs¹Íå6—›´~ÒúI뇾0ô…¡/ì¾cøŽá‡ò*ÜUá® w ì5°×À^]ëv­Ûµî‘¿ùË‘¿¸;‚”ÛSnO¹}鯥—nœÙef—™]&ÿ8ùÇÉ?þ4è§A? :=WRmHµ!]jt©Ñ¥FûÉí'·ŸÜ´vÓÚMkW¸úÃÕ6ò,ò-111111ë’iéÓÒ§¥'e$e$e K¼!ˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆH0_Ï>öìcÏ>¶ø½Åï-~¯Å-.hqAíKk_ZûR#CኋÅb±XÌ@w 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!DÄÿª@Åû®QØÈ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/last.png000066400000000000000000000750401431412030200243420ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Üy7IDATxÚìýyœÍåÿþ¿fÌØc—]$ÙJYJ¡EÙ Q’ö,omÚË’J‹R)©”%JEz+!ÙR”¬QR’-ûÞc73ç÷Çôýþ¼¿Çø(â8îw·Ûû6ïëºÎy]¯çëjÌñ˜ëõŠ …B¡P(à«ÑA %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB DœÙ—Ͼ|öå3ëͬ7³Þœ>súÌé£&ü3‹žXôÄ¢'fΟ9æüYgMœ51tMèšÐ5*@¸=3÷ÌÜ3sV•YUfUù¾í÷m¿o»úÜÕç®>We€SKL( …B ü{6ÝðÙ€”;RîH¹ãXÞ¹ØÄb‹MlѪE«­®uŨ+FwÝy×w]âúÄõ‰ëU ú¤¤¥¤¥¤-^½xõâÕ__ûõµ__;6mlÚØ´¥ë–®[ºî˜>Š3¨å–ZhÜ·q߯}kŸ_ûüÚç—|§ä;%ßQy€SÒëÁëÁëËW/_½|õ÷ƒ¿üýà/&|1á‹ “›Mn6¹Ù±¿ýù/ÈAþfï5{¯Ù{õ×Ô_SM¥•jTª‘íìlgg;[ù€“E gk­]´vÑèFß0ú†^c{í56T3T3TóDΡÈKE^*òÒcE+úXÑf6»°Ù…… *P¨€«pjIé–Ò-¥ÛÔþSûOíßwUßU}W-®°¸Ââ '~&÷M¿oú}ÓÛ½Ñîvoœ5ð¬g tu"Ó‘ G.9tâЉC'ÿ|øçÃ??ñs¸4ñÒÄKïÞy÷λwÖ+[¯l½²ñóâçÅÏsu¢Obbbbbâ¡-ãSƧŒO©›Z7µnªúp²€c’¾)}Sú¦ÙgdŸ‘ýñmo{|ÛÒšKk.­ió¼ôƒK?¸ôƒ'j?Qû‰Úç­=oíykƒó‚ó‚ó\A€H³"ߊ|+ò½òÅ+_¼òňf#šhi3ÌS$O‘Xê“Úþ@ÂѼ¶ç—=¿ìùåÝ9îÎqwެճVÏZÝ¥8µ€‰L`àÿúkꯩ¿ö]×w]ßu½Ûônӻ͑Ǘü4WÞ¬_¼ðpûKjòC‰e‰NüœÓ?•uÙgU¶,÷Ôž³oÕàÐРG0æÈ¯zcüãßßn~»ùíæ]‚.AWàßðUó¯šÕ¼õŒÖ3ZÏ8šñÏŒè[òëÛ¿o:±ðŠ\½rÄd9 ÏßýnØOßî¼é¹áú­+3{Áâì»®9òøv%Ú•hWâÅâ/±x®‰¹&æšèºü3›7lÞ°yÃíÞ~áíÎÚ9kç¬ÿã>^ ýÏ+V¿eáÇ.ÙæÒåKþX¡Ò‰ŸóÁ‚É=·ÛîšÑàó[¶¶žúùÈGóªoÞøæoÞ¨Þ®z»êí\w€S…˜È$2µ¾ÑúFë5ÔpPÃA«m¬¶±Zf#k¾Wp_îR¯Œ¿ cé¹U&ÌuMäœEèýPÏÐç3‹nÉ—òyû‡¿¿â½Ík÷u88+³ñ—n»tÛ¥Û†µÖ~Xû¼CóÍ;ÔJ8v_=øêÁW»ßÖý¶î· *7¨Ü ÿãÎ+ï_ûdLùѧ×ÙžxÜò¸bŠEιü‘mÃû^éµjhÑu“?«üÍþ?Ÿ9òøo÷|»çÛ=UöWÙ_e¿•pô¦ 6tÚÐV¶z°ÕƒGYpê¥7¶nTèÌËß¿>)¾yž7Ÿœ³HÏr`ò¾ÍIÕæ¥M}ý{£&ö›|äñÏ|näs#ïZsך»Ö‚A+ ’ €‰L`à0f5vÖØ&·6¹µÉ­™‰»;æÃ˜`|êåYÏUû…BŸæyùT9» %וL*Øn×·}–M8òÈySçM7µüùåÏ/¾UðÏl/¸½àö‚WèõA¯2˜·mÕ /jU<åºÝ÷¾¿&á΂¿EþÉ¥¿–ÚíÀ9[6N¾aDå-í& ù`Gf#ßÛøÞÆ÷¾›ãÝïæÈÞ5{×ì]- €È$&2 €ÿ1æ1Œùãöón?ïöó2Óc[µçJ\tÿwç -Ö Ký˜š1SOÅ3ÝÝ)õӴۻݿàŠ5?¿ÑŠ/¶¾•ÙÈɡɡɡš;jà 8zþ£ð…Ï;xÞÁóf6æ’RÕåY8¸X÷r垘8+¾Ü©{¾#ߟ²|[ŽÎ]út^9=³1O=òÔ#O=Ò¥[—n]ºY!‡J??ýüôó»,ì²°ËÂ>Hø Ógè–vWú cóô­Øÿü§îùî_¾åɵV4}}ÀCR?Ii›t˜¾Å»ï^¼û·¾íðm‡Ä„Ä„Äë Ò€‰L`à/%”üQòÝeî.sw™ÌÆ|µåʉçl®_à½ÜWGÓ¹O|v}lÒж¯ÌøpYåÌÆŒ‹7.îâ­o½x«ÕpdË–-[¶lY­ZµjÕª•Ù˜—¹ï¼Ò‹î<ãê>EÚGÓ¹¯n²ñÜý¿ÖŸÖyîâë’sìnšv˜GŠ<4ì¡a ëѬG³Í‚,A– ‹5œÎÒ>Oû<íó[ëÝZïÖz_”û¢Ü‡ùe œ?”Ë]ys™,6&~Sü¦øMK,Y°dA \XàBk r€‰L±J|öôgOötfÑoé«sÌ–yýkãÎû6ú¢ß zOO¼}þ—ÍêV»4³1W§^zuêüjó«Í¯fÍdfÍÇk>^óñ‘£ß‰í^«_iDôE¿ýü<¡ØÙÎùíºQWœ·ºñŒ ¿È7*|Ì+·½rÛ+·½üÑ˽ü‘5œÎB3C3C3;®í¸¶ãÚÌ¢ßB÷_þF›Šg¼ï²WkDSô›!æùØcK 5Ÿ×aH©×n»¾Ç%ác=Xô`Ѫù«æ¯šgÊΔ)VðüŒa0œÎfΘ9cæŒfÍ›5oÖ<¼÷’Æ…åY:ªOƒ^_È^"K|ì/§CM¶Ÿ½ðÁgkwí¢n;œ”6?|Ìõ¨ÿCýrcÊ)7Æ*Ȱãú×︾씲SÊNÉl̼󆬺¹ü´ßä¸út¨IèÑÐüЈǟ|ëÀš;–óäæÃÜúÍo|sà×ÝxÝ×YEÀéæé\Oçz:×kY_ËúZÖðÞ3†µJº§~Á¾õÞoÞãô©É®O—_»(meùþ%jÞ[¹i妕›~ýØ×}ýX|ÕøªñU­"€“Ë`"“ÀpšZóóšŸ×üœYô[oo‘yƒO¿¿tÂÙ—Ÿ>Ño†¿ekßcQ“kšW&ÏâÓ³d sþôó§Ÿ?}W]v°–ÒK¥—J/Õâú×·¸>³1?|Aõ,§Oô›!¦OÌ1m_üóî3KïøÏ[n(r˜ý¾ww¼»ãÝç>7÷¹¹ÏYKÀéã“IŸLúdRfÑoñK®[yßW§[ô›!÷µå?­–åÌ™÷Oï×9¼÷—/~ùâ—/YôÈ¢GYE@fÀpÚ98ôàЃC/k}YëËZ‡÷ž¹;O|¶ £šÔ¿ë¬nqÄþsÆéY¥„®Y¿{rA¨Ù„j/g6¦ýÚökÛ¯ –Ë‚eÖp:{᛾yᛟ:üÔá§á½³o<³jÃÒËŠmÏvþiZ ’A‘ Ûó—tÎ^úºV^Ú$ÿïáC®zùª—¯zùÏe.ûÓÏ–@”ûýÕß_ýýÕŽ7t¼¡ã á½EÏlVðŽ’’/wuúé\¥\Ëþxεe¿¸«Á‹‡ Èß»ç½{Þ»gtúèôÑéVN §~{á·~Û¾eû–í[Â{'ÿÚ°åÚÙ>Ͳ©ø'…?)üIaµNOó_›ÿÚü×^:ÿ¥ó_:L¸;¦[Ÿ‚ÿ¨øzé=9’Õ*&kÌAÝãÝR.OéœEgË>¦Cã;46›‚M*DŸƒßüîàw :5èÔ Sxo°ó.­ÿ\á a»¶ªU†<]+¶¬ñEñ¡mïoÞÛ¾@ûí ¬¿nýuë=D€SÞ—Ÿ}ùÙ—ŸeÜR»÷ǽ?îýñŽÆ;ïh¬2ÿŒN#‹¿XüÅâ/úì;°ïÀðÞéE®ÚXù½üå³M+¦V‡ªpsÞ-9Þëâµv†÷v,Ó±LÇ2[ŸÝúìÖgÕ 8}8çÀ9Îiøtç>ÞÛsÒK¼_ÿ‘óF$\¯V‡ŠŸ×;¶ùÄû^»ºÒÃ{§mŸ¶}Úö/}±è 7ö¢PÿEýõ_´·øÞâ{‹ÿOÇm1Ucž+ùÝ£Irå‚*ju¨¯\Ô­iç„í5j48Ì/ëßZ÷Öº·Ö > > >R+NEé­Ò[¥·ºñŽï¸ñŽŒ–>ÿéóŸ>ÿ);»ìì²³…ÁÿŒN ¡¡¡×í¹nÏu{Â{ŸYy^ñ’óªý–ÿÁ\oªUfšÝ[òÑÄ+®ŸVæêï„÷>ÚâѶP%àô1àÆ7¸1¼½ìÌ3îÉö^—q×)–E•2Sô±²öþøÌg¯?«vxïMmnjsS›ÝSwOÝí®<@”X;f혵cžéþL÷gº‡÷žõËc— œ;7ëðl Õê0bƒ¬Aö+nøåÁÃÔ燧xú‡§'žXx¢û“pJštÓ¤›&Ý”Y¯0øŸþøœ¾Hø"á‹„M7uÜÔñÐö„uñ[³ è<®bZÑ‘ªt4^j}þ3¥/ osɘKÆ\²xøâ዇«ݶ¹íÌmg>õÊS¯<õJxï?x¾YÅÙ±ÏÄîé§VGvåüÚò…5«Ó/ßaöI¿5ø­Áo V% :<ºòÑ•® o/r~ã²·4Ͼ¿X¹2w©Ò‘eiŸ­OŽÉåªÝýÕK‡¹?YÛëÚ^×öº«¬>°Z­8µ\8ðÂ|ôíGß~ôí#=0D¹Ô­©[S·Þ<öæ±7 ïýì‹ËÎîšå–˜Kc¾U«£‘wEÖãnòÈEïŸÙ?¼÷þþ÷÷¿¿¿*Ñ­ozßô¾éáíývãgT-÷|ñ,ÙP¥£÷êþûW–¹:¼ýùIÏOz~RÒ ¤AIƒT 8u-m»´íÒ¶Ÿ™øÌÄgÂ{ Ýxù5m¨ÒÑËœµøÜ9¹GVÜpþ#á½ÿ-ýßÒÿ-­JœZò}™ïË|_vmÓµM×6«ê¬ª³ªŽ0øØ €!ÊMi6¥Ù”fáí—+V+¡Ùy×ç¿5×YªôwµÈSêÇüE²Ý;-fÔ¡í?,ûaÙË–¼¿äý%ï«}þÜñçŽ?w Ø1`Ç€á½]¾móq±¬ªôwU YÖþ¥ß\üŒµá½ïþñîïþ¡JÀ©ëéÂO~ú0·&.~û˜ž©±ïÅ—Ëú®*ý]Å«\?â¾GÃÛïN¼;ñîÄÔ¯S¿NýZ•8 ƒ0D¯ùÁü`~—O»|ÚåÓðÎçóÔØZª‰"ýÃo÷ÆlŒyyxâ%“*üÞûRÑ—Š¾TT•€èóQîr”;¼ýéÙ^.Ù*Oëœ÷eñÜßè?ß_»¿èÃÛŸ}ëÙ·ž}kÿšýkö¯Q%àÔ²¹ÒæJ›+}ùþ—ïy˜_’ÎÛ«ÚÔºUéŸÉvcÁ¸3~L¸ùÜûêfðôÓwLß¡Jœê„ÁÇB QkÙÜes—ÍÝZek•­Um¯Þ"ñÝœŸŸU=oÃTéX\V¬Ø„¤ðöÏÚ|Öæ³6É’$P% :¤·NoÞú‰BOz¢Pxï-4y¨PMU:ù*ç7¢SƒsŠ´ïqåŒ+g\©JÀ©eÄCF o/1ÿÆ™ä‹ù4¶Bìwªt,ŠÜÜä£[¢÷ÑkD¯ê@T}bÿM`ˆZüöÁofêÓIçÆ•,«>Ç.K瘆13_H­1¼Ô¤ðÞ©«¦®šºJ•€è°xÌâ1‹Ç„·_·éòÚ:ç»*÷Ô¸OOü¬–_³®ÉÞ/6œ;7ãOõ:wz°åŽ"·†·¿œçå@tøhÍGk>:Ì-ˆ;o¼¶`Ññ‘3ÏS=.{ö;³÷,pkÂÙq·Ú>wùÜås—§ôMé›â'Là°2´2´2Þžðúy…ë_åÞìæ\®JÇA– {³èøkþhß%¼sZi¦P$¢›083`ˆB«ßZýÖê·ÂÛÛþ·lû‚—g½3ööØUéx)<5Çcñg–¸+ç›Yï>´ýçQ?úyÔîþ»ûïî¯JÀ©+ô[è·ÐoïT~§ò;•Ã{«®<³xÎ3Ué¸)ä â»Î¿åÙâ‡Ù3·`à‚ *ù&?0ùÉ„·(sqãk¾QŸã+ÏŠJ/Õ<Ì?X\9påÀ•êÀéC|(0D¡™ógΟ9?¼ý†ŸÊŽ/¸D}þ w_ö¾¢—†·/I^’¼$Y}€S×æí›·oÞÞÞêŽKëå_wY–ëbö¨ÒñuÅýµ^Î÷XxûاÆ>5ö)õ"ß°Ãr ËÞžóÎRoœUA}ޝ¸A¹nÎ;2ËöÜ·æÛ}hû‚ j,¨qà’—¸D•8݃À…Æ–[fl™ðöj%ÖÎiïï¿¢Áª¢sî oŸñØŒÇf<¦>À©+ã¾&áí-oª?²Àêóo(yOáK²ÞÞþþ‡ïøþ‡Áþ`°_•€ÈtàÛßøö÷øßã?´=þ·üw™[,ë»Ù_T¥Cô‹W]]+¼}ÍÄ5×LTNg§g,†èò`ð`ðàäÇ&?6ù0¡c¾Yׯ½9“ÝÜmo½Ÿ½ðÚÏ×Ͻ¡ÿôF¿ï<õøwYôí™÷DåÎcûqZÓ¯üeìkE~ݵቤÒûoHÐý%eîË=>Ûáí‹O,>±¸… œºfv˜Ùaf‡ðöê[*|‘óÈœóOY–=¼ûì›=µqYl…ï®{lÁcEßnRiÞ,º½þ¢•=k üdÍCI¥wf‰ÔŸ-c7Å^3ò¯ªVÍ“ûÐöÔïR¿Kýnïƒ{Üë×:µùÍÍon~3¼=ñæ Þ¸üÙÈœshxhy¨÷Ÿ]æ¼7iÀŠÎý÷=|ç/—wmÔ겟>4©ô[›gRoý~ý¯ŸÜúúëû¯Þºzý·‘y¹SÏúþÜ/ÃÛ¿¶øµÅ¯Y™áô ƒÀUö”ÜSrOÉðö+Cg$&üÜT ŠF½ø©õÁ¤žnÝñÛÊsSrì/·¿kzÐÕFî=÷@îùÍ·ß¾»èÓ~·îêr;?m¾`ñºïw?±h¤U>ûª,×ÄÆd9?æ¼`Ò¡íóÎ;8ï • œº¾©òM•oª„·¾(ûø¬‘9ç†ãî»ø×Íãç̼%iö¶«w,Hmµ¿ëÁ¡«WÔ_—uß¶þË>¸©Mí·î‘±'8ã ÌÈvS\„>U·Ê‚|-rn°€èvAžJ“rd bƒ˜H›[ìϱ5ƒá£Ëö~´b©g&wJ,õíuÓ»eù½ù5Å.)žÿÃ÷öMøpkïA ºu=³à¡¯ÊŸrå´yµ#í\Jä/\-ëaÂ’õÛ×o_¿Ý:"ÓŠj+ª­¨Þžå\ "èé¿;ßùuÆÜçR.ùåÝÙy‚—b&ÄÖ,»ç?ëŸK+¶ðšš–¯útÀÞ®}rµ*Ó眽…b/«s]Ç´Ûw¿¹óª˜‡âúůËx‡¥ãŸ+s{ýÈ9£˜¢qÅ=Þ¾èÁE.òàø¢# CTIÚ›´7é0¿i[¨Wö,ñË#a†Ù{gY3îöeå(\â±¾UÎ*>§Î[nùybRRÛ¶µjeüïÿœQRÛ¶µj;«ÉûUe´l¯·ÿƒÔGŒ˜;7Òê_¼O®K³^hÑ­l¯3êd{=2çÖâ@½7òçoµªkŸ¥kþŸŸ'§Lù~ÂÌøºÕ´KŸ/°íÐW]t}ÕóT‹´sI¸;w¾¸áí›»lî²¹‹uD¦u+Ö­X·"¼=vvÖ¡ÙDÎ<ÿ,0«Ç—ý’MB­swÕûmUË·=þ×/ªUë×oÊ”CÇg´dÜ:£%çÓeKœ3.‚J_0¨´ˆ»*OÄö‡6ï¾wúÞéV&ü3§n|Òv&&&&&&Z:pbäîiì›Áä SðêÉIíg ý7ÏKµƒBAž3‚'ƒ§‚à…×ë3Ÿ^5”ºyò§òï8¼ÁĈþË xü°¸»‚Ø ±ïx@ô*ðUÂÇquƒºÁÐH›Û-Eš -|ù¤îSÊ×;òÈ‘÷>3û¬¼7ô¢Îï;—×_—uß¶ÄĆ çn840>¹²™5GÌ´ ‚àÊCÛŸ8û‰³Ÿ8û‰à‰à ‹8eÄ|›¥S–¢A ŽŒùì[º±ÅªU_çÿóÂg­)]í¶~ÝçùU•Ïè½â³Ú©_í™”òMÌ䨯±µ‚ ,Šœ:Ç]÷•Ä®©“R‚ÿ}@˜—8‘šåi–§Yž 1H |ïF³ƒÙÁ죞Ÿûî¹ïžûnã qp¢Rà8W NqSbÚÇü™sûcG«ö5Þù¦à¦ÙÉ;W§ìºêªÄ]S÷¿ºôžÃ÷6žµs˰”Åɵ6K{'òë»*¦\ÁR«ˆVY›Æo‹½'2çvæOÅ/ɶ"¸(‚Û<ò¬á¥ÌþtAðÀ–»“®;qòˆ½'vCÌËAO+ˆ µ‚Q1Ë‚ÅÁΓ=‘Ð#éMÒç¸zk—õßf´d{®àËÅŸ‚`IÐôȯÍR0çøÜÏfi“3ÈýþõwÇCq¯gÝAK"É¡+BW„NèOЧƒÔ†¡Á¡³#g> Ëm¿o÷Ô–¹§uû­~¹µŸ~¼ gË´¯/}äþœóÚÿѵßþ%#7n™øÊúøï—}Büè–ËKõÈÿdä×ùàÁô²¡•ÖÝ|q°`ú‘9·Â$&ý?Og<²b ®ÎúU$×9ýô3B[o@”˜\ªŸÜK$¿µ­ô¡-q½®Ìß):ÊœþJê}롆 ÒL™35æDñ¤íŸ2>e|ŠKÇ×Â… .\øD½'ê=ñ?·¼ÛÕïà×éwA02(rg8§ÇÖÖ)4tZ¶ßžØß5½jèê2•smÉvQ«ieª8«ÆÊü¯çjxös _æØ^ªD®ÚÙÄU‹ý&&ßòkvž¿÷žÏ‚5ÁŸOGrýw¬?x[ê[AÉàÿ󻶾㧮¿n_vˆí—'·Iý.‚u‘7Û-7%%,Q"(dû?Fn¾ûÏën^ ^ ‚,ßfÙüžvIZÞà¬È9—}ì ]¼÷ÿýä~Çš;ÖܱæÚÄk¯uC9 â<÷ês¯>÷꬞³zÎúŸ;„.I{'mSÌâØ ËIžaÜ‚Üiù=´%íÕÝwf‰ ‚‚§|ýSÇí|(©wÏþo»—8‘Ÿ˜zïé½§÷žªiUÓª¦©O4Iy,å±”ÇÆ¾0ö…±/ŒÈ;"Góª¶;Ûîl»ó¼p`Ð2h´øääÏðÙ}³nÇþ7Ó[…:\ûC©_ò1¸ÁESÏ,˜ÿŠ‘çÕ‚àºà÷¤¤¶mkÕ ‚à› ß_‚‚¹‘_ÿõîþúÀ¬ ÎñˆaO®ZÕsÃìý÷_%‚ó"m²+ª¯ÿvÿ™%‚­²ýÏ^vóÚWö>A– yɺ… g»íØûöGй$¿¹kGê³Aî ž:´½Nï:½ëôö&™ª¯©¾¦úšð8½ÎÛ÷; þý¬žÜƾfÖaAAÃŒ–£¶Åo¼8þ¢„ à‡G~í¾›²®.˜2û×Öó. nŠ-ÓµPã;Z=T ^¦žäÒo fcR¥Œþß§ÿ樟£~ŽúuÇÔSwŒõ pb>1eD¿~b;ïh¼£ñ€ÛÜ6à¶Œ§ùyƒ¼Áÿý>úö£o?úvça‡u–ïË|_æûò$üÌãâA4)xgÁ; ÞÞ¾üù”¹û"â/›³üYvw¥Œ¯ÿóTÅ—ŠÞ³&f\̽¡ïÿýþd<8ò뿸Ǝ1{Üj ˆróS–\µë’ -HB‘6·÷7O¸}ËQÝØyðåc÷ly,ãëJË´ÏÑ.ÒÎeÝŸ[XÞ^¼@ñÅ X‡@d:sÑ™‹Î<Ì“qÓîÙ=%ù±ÈœóŸóæÎœœïhFn»|Ƭ136~øy¡w’’æÏ™99_DD¿AAhSê+©¯„·Wë[­oµ¾V&½ŒÐ·÷ǽ?îýqÙÙeg—ýWô{D¡ïª:«ê¬ªÓµM×6]Ûœ¬è7ƒ¢JbûÄö‰íÃÛçÖÜöNÊÐH˜a¾PÖÝqC2¾^³n÷Üý5Ž<~ý—{–øõñ^ ^^sgD—>-¡¯Gnú$ùëˆ&Õ“ª'UO:´%´,8#˜v`Oê•éÃ#m¶c²Î¸çÏ?§Õ˜?%ySfcF_öu·í'õœgÇo-÷Ô¼nT±‡’’¦L9Ü/#ž,‹W®||Ïaîd]¼Jñ*Å«X™@dª£BŽ 9ÂÛ÷¿±í› k"gž%Ïn·éÑÞ_'˜{Ôù»,ϱ(Ó9Ù¿cËWëšì8{Þ–©/d´äº¨|‡j.ZÔ¥KÆ‘pF©÷ŒØùqxûé¤_neÀ‘EGè{(0D•œks®Í¹6¼}r̆¤äêÁ[ÁÒ`ÓÉaÝ« ÈóWDýȘù=WóᔕY¶Þ¾ö—Ýgîï¼åî}nø~Ô–«R=}à§qk¯¾`Ñø½?­\Q?å³}Û"¹òûʦM¥ýZ\uh{Íøšñ5ã­LàÔÕ`qƒÅ ‡·oùþÏÁDÚl ÎHx4þ±V«ºöYº¦g­Ÿ¬yè«Kç¥ï;~ÎÌ[’fß_ìÕa«.o¿ðùy+&dŒ¿èúªæ©Ö´Óƒ[–ì‹´s™š6oNòa"öÂc -<ÖÊ"S¹Aå•Þ¾§ãª7Ù9óÌ×ý‚”ËÿŸûX\•þeZÞ•uûw|è£·Ž½yðê”=K6ÌKßsáêªKëo{`FÛÏ{®ÈýúÏlI=0q߯,—å¼2OƒÂ¯\ñg›AÕªõë7eJ$œÑþª[ŸXwixû_ðñ[™.úBßC €!ºô ú}¯|ñʯ|ñ0ßÎj(™zßÉàsÿ­Ñ©Ô3nÈñcÖ]I¥ܺçžëç|°ªsµ‹Ç>ûÓí?ú,ßÂuM;}uÛ’}¯ùuׯ'ö½¶4TxN»¦«>Y`F¶›âþç†QÍnøjò’ê‘Pø?^ßÕlÿ†ðöFë­o´ÞÂN]uÕT÷0ÿ”ÿSáeM÷tŠ´Ù¾[ Çgg~™óÆìÅbÛô_öÉÀMmZÿØíªß‹ÞÜè©ËbßÛ7áíí÷*§hÓlqïÜúxPnD¤EzÑôÉ¡f]þóÏ)»m»8î⸋sôÍÑ7‡›yªÈÝEî.rwx{Òðù÷|Õ#ræóRì„Øš_gæŒÅåf|½õ¡¯òÜ~Õò·_ìvÕòwú^vOÖ ·.üƬÔ_SVíHŒ}1{zÎæ%+Ý´ùÑ–Lè¹´íY‘sF»â~¿èÇÆáíUî¯r•û­LÈÝ¡ï¡À…®ùãš?®ù#¼}Ñ÷Isöœä**0#ÛMñm¹÷ܹøýœÅ&U+žX9çݹëÆõý.ãk,Ì¿-W÷Þ=k¡ï¡â\xˆ>u/¨{AÝ ÂÛGV_Õl[¥zA‘ÝySNî “’Ú¶­U+1qÄ ¹We|Á¼`Þÿ;`^$ö1bîÜÿ$Ul[´VRðט Gœ;wnRRÛ¶µ>‚`BdÔüÍQ¿eßôux{¥„J •¬IàÔU¤@‘E „·~÷ëVz»écŸ„Ä]–庘='~nåÇ–˜£i4 ‚CCÜŒ¯6œ;1)iÊ”ZúªÄĆÍý½GÒíSJ|—”4%ˆ¤è7ÃÔ׿>¼ãÅ Z×Ú~ÍS×ݶ©™ú/«~Ûw_¯íï%ÿ–:ìÐöZåk•¯U>σyÌã'LàP.¦\L¹˜ðöäûn™>.­ÿ¾v{Ê«Òqì ölj6¶Ìà~á—m¿lûeÛ €è&ôÍŒ¢ÖMgßtöMg‡·?™øcêÚUês>g M Õ}³õ™­Ïl ï}¿Ì„W¶ÎS¥c±ã—]mSÛ¾ó͘ڛÿÞ[or½Éõ&«pji{gÛ;ÛÞÞ¾î‚ê¾´#tmú²ô‹UéXl>áÆ÷âÃÛ{¶íÙ¶g[õ ª>1 }ÿî§x‹¢ÖÁÁý®íwm¿ÃìÆè–² Ðš ŠôϤ÷ =|sÒ·W-;ÌëG6=²é‘MªDŸwݸëÆ]áíOÖôðÚÑ)ÿÝózZš*ý3o_ôi¶M­ÃÛ{ÜÕã®we+•­T¶RªœZŠ,)²¤È’Æ·4¾¥ñ-á½;{.ºbf¼*ý3û?Ú–ºáÜäá?¾>ã¥ðÞúùê竟O•8Õ }…¢\Ãñ Ç7ÞþÕÕç&_8êÏ÷vÿ®Jט”5çþ¹yÿé—…®?´ýü çW8¿B¥[*ÝRéU¢Oþ|ùóåÏ×9_ç|ó…÷ö»äã6¨ÒßµéúíãÜûbìðõJ†÷ÞQæŽ2w”Q%àÔõä–'·<¹%¼}uìнâÒo=¸òÀªôw­_<ªíë}ÂÛßLz3éͤ¸Kã.»T•8 }0D¹¸Bq…â ¿fø5ï ïmÙtZòo½ÓÞ}ºD­ŽÆÎ3<–úÁ/}ËŠ{Ã{_»÷µ{_»W•€èö`샱æ³ä+gtÓ†ŸWv[Ÿ¶ï|U:zd{­ÜãÂÛ»]ÕíªnW%vHìØA•€SWÅGTÑè‰FO4z"¼wëG_ý¸†*½]ÁïU~¬½ë†¥güp˜½¿­W·^Ýzµ*pjúþÀpZhšÜ4¹irÑExh{r‰ƒ…Ò:¸zi–M7¨ÒÑxä¿?<±úëðöß¶ø¶Å·Un®rs•›U ˆnW\QpÅS=õÐS…÷¶¾©Ûø¥uÒŸHÏê¢VG6ù‚9ƒvÄL?»ËŽQá½wµ¿«ý]íU ˆ}Êõ)×§\xûæ¾\õþçû²m\ùÇ[ªtdiƒ÷?º÷Ê•‹Þ¼ü‘¼á½#>ñɈO²–ÎZ:kiµàÔ2«ã¬Ž³: }/0œbÆÄŒ‰óIÎOr~’3¼÷‰r ׯ­¹èì?ûî¾[­23¾ÿÚ>ISG]öǸíóQvLŸ1}ƨpúèüQç:Þ¾ªî†7ößÚïêQwnô<àLmzqû²]Û¬è1ê÷9á½|üÁÇ|œëŠ\WäºB­€èP²EÉ%[<ñÜÏ=ñ\xïï•_œÖñ‚ôZnÞ?E­#=8ì[wæÈÊ}SŸóŸ<ÿÉóŸl´¥Ñ–F[” €SÑU\õÁUdÖ+ôýgÀp©Ò´JÓ*Mìø`Ç;†÷Öß<©Ø/·þ¹|ýÔju¨eÃwÞûêÍ=¿+¹ì0¿c;ð ü£PB= õP+àô‘õ׬¿fýuÊ“Sžœòdxo¯«†,]wËô—¶M¥V‡:X;µkúç^¿Ü’Öá½—¸¬ÀešVkZ­i5µ¢Ï½Õî­voµës¬Ï±þ:†…~u_{ñG­^Jv+ƒÅju¨í}ÿü’ ,XðÍa~1è½™ïÍ|ofpcpcp£Zp*Š;:vôGï~ôîGïf´}CU•N7ŸýøÙŸ] p ‡÷^yΔ{™³ÿÚ´òévÛß×îà͵îû¢ßÏuÃ{¯ZÕú«Ö_·åº-×ù[à4uÁýÜÁýüðÈüÞÛâùG·--³ô¾Õ9÷&¨Uè@èü`fçf} ¯LY½gÓ—û³CzЗƒ¾ôeP4(U1 úÄ_qüÅß¼óÍ;ß¼Þ›|Û¯§wßLùpD_µÊÒ{ég š®¿ýã¤×&„÷Þ>xûàíÅ?)þIñOÔ €S]ã–[6n™”””””$ô=v`8ý>nÝ{üíÓþ;í¿ÓþÞ»"WÊÁýg\?aú[¿?ŸZ&½zhÃéY¥äÞ.I}ºFÌø&‹ÎlÌà’ƒK.T*¬+àtöxƒÇ<Þ ú êƒª ï­3¼}ÝŸ§¬®°±ÀþNÓ­ 6û»};`ßêOF÷ýzŸg…™ôð¤‡'=œ¿Bþ ùýl D¹³8ë³8ràÈ#Ã{7­¿íݵÛ¾»zÜiýï–»¬:÷×OW5}ë›Ç„÷ÞúÆ­oÜúF«ØV±­üë.p~D€ÓT©ª¥ª–ª:þóñŸÿ<¼wFŽÍÛw×^ôu“ß¾Ú·.í`zåÓ§2ÛÏÞ?øà³Õ&Œýü§'RÞ>›¶?|Ìõ¨ÿCýÜÛsoϽÝZˆ]»&v͘QcFÉô†Ïçn»¥ÆOiË/[×`ï¸Ó§2¡GCóC#ËÿæŠÕùÞnýÙ›ssÎ7¾9ð͵º×ê^«»µœ>®»êº«®»êþ÷¸ÿ0çúo?)÷úåÛœqËçÏžn•Ùõéòk¥­¨ûZý.Â{+7­Ü´rÓ—ª½Tí% 2ÿœ®p:«[¯n½ºõÞ½ÿÝûß½?¼÷Û/·TK©X§Û­þ|{‹ýŸ|%º«±bvÊš}¹Êoþ4×Â+w.>8)m~ø˜)%§”œR²Ü˜rcʱ~•oT¾QùFýôöOoÿôvfcj.¼=þç"sîùåÙ”¢»ûn>P/=w»›Ÿ¬¶ì‡%Æ<¹yzø˜î¯w½ûë7^wãu7^gý§§ž“{Nî9ùÚg®}æÚgÂ{7Ü6:ñé/›eð=¡¡¯B·Ew5vܱpæô^+Ë÷/ùP£ðÞ³sÌÎ1{€ & ˆ¯_5¾ªõd&& …B!…>Jþ(ù£ä»ËÜ]æî2™ùjË•ÏÙ\#¾À{¹¯Ž¦sŸøìúؤ¡m_™ñá²L÷:‹7.îâ­o½x«ÕpdË–-[¶lY­ZµjÕª•Ù˜—¹ï¼Ò‹î<ãê>EÚGÓ¹¯n²ñÜý¿ÖŸÖyîâë’sìnš64|ÌCÃöаÍz4ëÑ,Èd ²X3Àé,íó´ÏÓ>¿µÞ­õn­÷E¹/Ê}Q.|LÎÊ宼¹L–ž)wKΡyÆFǹ‡º¥·K_½©÷¸ß‡ôÚúÓ´‹F­ ¿)~Sü¦% –,X² À….,p¡59mŸ2>e|JÝÔº©uSÕ‡“Å`à/7&ܘpcÂÐ…C]˜Ù˜Ë Onôk‘WÒ~©²!.mzh^èŠS÷|wwJý4íö.Kæî\uÁ‘£ßɡɡÉ!Ñ/ÀÑ«P¡B… Æ/Œ_ŸÙ˜‡+¿¾puµkª?\dÉ;[%]xpå©~Ö#ߟ²|[ŽsgÝRè§]™E¿O=òÔ#O=Ò£yæ=š‹~2diž¥y–æï_ñþï_qSòMÉ7%‡ÙsþÊ]¿ùõÜ®y¯Ý›òàÒ{Ø{ªŸõþå[ž\{`ÉèžSneýï^¼{ñîK÷-Ý·tŸè8zv‡1k쬱³Æ6¹µÉ­MnÍlLÜÝ1ÆãS/Ïzö¨Ú/ú4Ï˧ÊÙM(¹®dRÁv»¾í³l‘GΛ:o꼩åÏ/~ùó­ €f{Áí·¼â™+ž¹â™?ºýÑín™ì;¿Ë”2WÜÞ¢Y»Â3‚Ÿƒƒs#ÿì–îXsÿÞª·OyæŽåY–tü㡽39xüàñƒÇ·ªÛªn«ºV@¦F£‚Q¯~ûê·¯~Ûëƒ^ôú ³yÛV½ð¢VÅS®Û}ïkñkî,ø[äŸ\úk©Ýœ³eãäFTÞÒnÒvd6²ñ½ïm|ï»9ÞÍñnŽì]³wÍÞÕÒˆLv™À@¦Ö7Zßh}£†ƒj8hcµÕ6VËldÍ÷ îË]ê•ñt,=·êÀă¹®‰œ³½êú|fÑ-ùR>oÿð÷ãW¼·yí¾ge6þÒm—n»tÛ°öÃÚkŸwhÞ¡y‡Z Çîà«_=øj÷ÛºßÖý¶Aå•TîÈãß¿öɘò£O¯³=ñþ¸åq?Ä‹œsù#Û† ö½ÒkÕТë&Vù›ý>säñßîùvÏ·{ªì¯²¿Ê~+àèM:mè´¡­lõ`«<²àÔKolݨЙ—¿}R|ó9g‘žåÀä}›“ªÍK›úþú÷FMì7ùÈãŸùÜÈçFÞµæ®5w­ :‚V@$™ÀÀÿ!õ×Ô_Sí»®ïº¾ëz·éݦw›#/ùi®¼Y¿xáá÷—Ôä‡Ë7œ„WŸ‡Ê‡ºì³*a[–{jÏÙ·jphhÐ#säW½1þñoŒo7¿Ýüvóƒ.A— ‹«ðoøªùWÍ¿jÞzFë­gÍøgFtŠ-ùõíß7XxE®^9b² <ñsþnØOßî¼é¹áú­+3{Áâì»þ_ylW¢]‰v%^,þbñ‹çš˜kb®‰®;À?³yÃæ ›7Ü~áíÞ~ᬳvÎÚyäñ ýÏ+V¿eáÇ.ÙæÒåKþX¡Ò‰ŸóÁ‚É=·ÛîšÑàó[¶¶žúùÈGóªoÞøæoÞ¨Þ®z»êí\w€S…˜È$þ†¥—\:ðæo~ðæ—Å/‹_4¯jxe±ù #nÉwf¶B .šZø©¼¹ó¯È–5îòã5«u9v×ÞÿÈÌÿl©–òíÀV¿Ÿ¹9Û‚«ÿ,½û¥£šÛ솳Îîß/¾_|±rÅÊ+ç*œ;wìܱsG¯E½õZ4¤ùæCšÍ«JŽ+rIÖ ÷º~A±Y .ªÑ á™ò7”¸?{­ã5«}4LOø¾î¢Rv~¼zê/ÛZŽzõ«[¶?~T°›Ä4‰i2a΄9æÔY^gyå®2Àq3"Œ·dÜ’qKnéKÿ[úýK |W¯y‹vù?ï›úäü ìK•/‹¹&foL½ã5µ½/¬¿ze¿”{~=΂ͭ'¾ôÁ’PŸÔöŽæµ=¿ìùeÏ/ïÎqwŽ»sd­žµzÖê.5À©ELd_½ ^Pojƒ© ¦6h[©m¥¶•RïJ½+õ®¿û6•ûä«ã׋Úž”·zÅ›ò6Î>ªÈ›9fgmçոѱK²\S3fÊÁl¡³B«wƘ›öëÆ§÷>}à’%Ù“¿ÞûõŒ³7ïÛ™íwíÞÿùß=nù{Ëß[þÞw^{çµw^«±³ÆÎ;]R€“kEüŠøñÓrOË=-÷ß}‡‚‹ó5‹ûâ²Gί0·ÊÈrgç\Q¼ká'³ÖLè–»DÜ“ÙΉÿ9¦Cz|úCÁ+»{ìû>mØÖáIVY^yÝÞ}›æ$þ¿ë­¹¯ÿÚy×ø6ÿW¸rÀ•­‡´ÒzH\î¸Üq¹]S€ÏÞ{ ì-0èÃAúðɶO¶}²í?{ŸÜÏT| ÆÊœkJW¬T5kÓ‚¿ë7)÷´„ò±³ãg¿88'æ™`TúŸ?pQÚ”=cRÆlùgÑÍ›ö&®ûeùwŽù5çÜ5¡+¾¸×ß=îÍ•o®|såî»Wì^±È"CŠ qMN]`"“8&é›Ò7¥oš‘}FöÙßöø¶Ç·-­¹´æÒš‘6ÏK?¸ôƒK?x¢öµŸ¨}ÞÚóÖž·68/8/8ψ4+ò­È·"ß+_¼òÅ+_Œh6¢Ùˆf‘6ÃjÏÌ=3÷Ìü©ÓO~ꪪªZ|Iñ%Å—”þ±ô¥TàT!ˆ±JÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %âNäÁfÆÍŒ›×,O³<Íò(=p:Ÿ2>e|JÝÔº©uSÿícÙ %ÀQ".&‘±å9HÒƒô „‚P(=”úëëCÛêëöªÿÎæùï½³ùGæQŽáˆ¡P(ŠòsŒÚ™DN"V§Ö OÒÌÃwƒÓçZ¨†«¥_Ó'_ûúø~­'ðë£ú@Åœ‘™Ÿê3Œœ¿ñO·«ãˆŽr"òïý—~ªTãôœgt¿[ôÍçøþ$ìÿ¥Ÿ²5iݲuËÖ-Oë8CÝôºéuÓÿ§)&ˆ b‚Ø ÖNe þç»A– KEIÀwß à4哸ÀÏào| šþK÷7;ø;=ŠÌŒ›73.Èä òœ¼OD0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D‰8% 111111³Þ¤¤¤¤¤$U€Èg0@”D ·€€S@à g4œ‘Yï”zSêM©§J€à0¿ùüæó›gÖ›$‰žÖ €[@D 0@”D 0@”D‰8%àÄX´~ÑúEë¿õý¨ïGÍé1§ÇœË®YvͲk’ò%åKÊ—”˜”˜”˜zqêÅ©ç¾8÷Ź/NÈ›7!oùéå§—Ÿ~ösg?wös—/¸|Áå .©tI¥K*eù6Ë·Y¾ý7æ¹ï…}/ì{áËÁ_þrð÷ƒ¾ôý …ùæ_˜ãÛßÞøvòÎäÉ;÷ßµÿ®ýweÌ0qGâŽÄUUiT¥Ñy«Î[uÞª–[[nm¹µdå’•KVvÝ8‘bB¡P(:1›73nf\³<Íò4Ëshûø”ñ)ãSê¦ÖM­›ê’œx‰‰‰‰‰‰™õ&%%%%%ýí7M‚„Ï }Vè³BýçõŸ×ÞÂr Ë-,w¼æüÜàç?7¸ýWí¿jÿUÖ·²¾•õ­cy·ÝvOØ=á¥;^ºã¥;úíï·¿ßþcú°““J%„~Lþ1ùÇäÒé¥ÓK§ûµø»þáµà‰„<Ô- 8Îv®Ý¹vçÚ¶´}¤í#wl¿cûÛoô›¡{ûîí»·/2¢Èˆ"#’J'•N*ýÏÞç§]?íúiW­qµÆÕwìÑo†Œè7ãë:½ëô®ÓûøÆº·€à¸ÉØGÛhz£é¦/¸dà’'渷œsË9·œ3.a\¸„ 9H’æU·¤nP¥A•Uþ½¹eÜP:crF lW.ÿ0ÇM†=öh¸¤Ý’vKÚe6&ÿOùÊÿS‡O;|ÚáÓ© R¤ëT¬S±NEŸ/ú|ÑçwÍÜ5s×Ì/n|qã‹K»/í¾´ûð߇ÿ>ü÷fl˜±áе‡únöw³¿››››$ÿWºz°ÝÁvÛý§ÄJü§Ä‘GÖ~¶ö³µŸ½sÞóîœwö£g?zö£¥*—ª\ªrìϱ?Çþ¼ö—µ¿¬ýå·>¿õù­Ï[ï¾õî[ïþÐà‡?4Ÿw¸ëÀ]UÏ©zNÕsB¥B¥B¥bÖĬ‰Y>²yŽæ9šçoÿ|ïç{?ß›Ù<3{§Ïà8<x{½íõ¶×+ÿsùŸËÿœÙ˜F5z¨ÑC_™øÊÄWŽþaÜø¸ñqãS›¥6Km>æÊׯ|ýÊ×?¾ùã›?¾ùÈï6²ïȾ#ûv~¦ó3Ÿ9ÌGå51kbÖ n0¸Áàw®¼så+ÿî³è7Ãâï¿øû£‰`GŸ?úüÑçgÖûXßÇú>Ö÷ïF¿Í3=)=)ýÈcî©yOÍ{jZ3üÀKïYzÏÒ{2ëm׺]ëv­}—êœvsÚÍÉôæÒ›ïÞ|÷æ»æ}–¼³ä%ïdÖ{M±kŠ]SìÎ69H’_èòB—ºd6dUâªÄU‰Ö ÿÏà8XYfe™•e²õÎÖ;[ïðÞKï¾ôîKï>ö£œ5ü¬ág bƒØÃýBsÚ%i—¤]r4ïóWTüeðeðexo±G‹=ZìÑ cÐ1èøÏæyU¿«ú]ÕoÓæM›7mïÍxа5À¿A ÀqЧeŸ–}Zö ú}×ýŸà?ÁŽý({_ØûÂÞ‚nA· Û±¼O®sݘëÆä 9H>Lï´3§9íÌkƒkƒkÿáû—I*“T&éÉàÉàÉÃu/ –ˬþ n À)c椙“fN:ö÷)÷c¹Ëý˜Yïý9ïÏyΣy–0D0-µYj³ÔfŸžÿéùŸžßéõN¯wzýØß³ñÃnüpf½)‹S§,Îø:#ž|ßäû&ß·ï…}/ì{Á ’¹4'MÆS{×.^»xíâç®8wŹ+Ë®,»²ì²«—]½ìê_?þõã_?^üóâŸÿœ¼3ygòΠzP=¨~ìÇíôT§§:=õü§Ïúü§G3¾Íð6ÃÛ ÿëÿ¼¼¼Øãüç÷8¿ö³µŸ­ýìù Ï_xþÂstÎÑÙ5àäð/J¯š^5½ê¼æóšÏk>¥å”–SZþ´ë§]?íšÚbj‹©-þgè‡üù,ø,øìß›UÞ’yKæ-9c挙3f¶Lk™Ö2m{½íõ¶×;úwxö‡gxö‡ qÐ8hüWS· [Э۵ݮíví5E¯)zMÑŠÏU|®âsÖ'’[@pœíž°{Âî ûk ¬+°®ÀºFo6z³Ñ›¯\ñʯ\q˜è÷¨e<ûãÙ?^ó¬zNÕsªž3sÄÌ3G\}öÕg_}vLrLrLò±¼gÆY×y«Î[uÞʸ}ô‹O¿øô‹Oï\»síεÖÿ60ÇÍôÝÓwOß]cG5v¼tçKw¾tç?{ŸŒÛ)g´×¿výk׿önw ¼[àßx o‘ç‹<_äù÷g½?ëýY¡„PB(áÞ ÷V¸·Â™ÓÏœ~æôcÿ^{áµ^+]­tµÒÕ2"aë€[@pÌé1§Çœ-Þlñf‹7f|ÑÇŠ>Vô±Zï×z¿Öû|~Áç|^¹Må6•Û´ZÕjU«U{ì°wÀŒ¤I3’þzÁ­Á­Á­-ƒ–AËàß‹Q“’’’’þ:bÿÄþ‰ýÿ:ÊS›žÚôÔ¦¯.ýêÒ¯.ß`~ƒù 2føÏŽ’1ÿCÇ‹€cr°ÝÁvÛÝzñ­ßzqfcbÖĬ‰YÓ¼hó¢Í‹><úáѾ¸íÅm/n;6Œ Þ«ð^…÷* ‚Á‚¤ )ˆŒT4< íò}—ï»|hüüÌäg&?3ùûQßú~Ô7ñßÄ4Ápü‡ñÆ(àß à˜ŒºmÔm£nÛ|ýæë7_Þ›ýŽì>²ûÈîm²¶ÉÚ&ëÐFC mtêŸá3¿§æ=5ï©yh0\&©LR™¤?ÿHüã0;•3"óNOuzªÓSÖÇ—€còiùOËZ>³ÞGþûÈùo›ám†·Ý»]=»w¸ëÀ]E‚"A‘LÇ]ðë‚_´~8¾À“Õ)«SV§dÖÛ¤}“öMÚwMëšÖ5íß>ÖÑø|ïç{?ßû[ŸßúüÖ'¼·Yífµ›Õ®Ü¨r£ÊŽå(YßÊúVÖ·¦¬Ÿ²~Êú†3Îh8#|Ìú ë'¬ŸxOâ=‰÷¸4Ç‹€c²îûu߯û>³ÞòãÊ+?îxë‡?4ø¡Á±¼Ãw³¿›ýÝìÁ¯ ~mðká½û6ïÛ¼oså rPù8̶âsŸ«ø\pIpIp‰uÀ‰«‹œsvÎÙ9³Þ•eV–YYæØ²õ¦­7m½©gÅž{V<–÷)qQ‰‹J\”Yïì—f¿4û¥ãU™Å³ÏZ<+³ÞâMŠ7)ÞÄúàøpLŠ7.Þ¸xãÌz'õœÔsRÏcyÿ?«ÿYýÏê7v¼±ã×¹þËõ_Ë»]|ÕÅW]|Uf½³_žýòì—½2ïozÓû›2ë­Ý¿vÿÚý×U• • •²pL._pù‚ËdÖûâ/>ðâÿ,Rrë”[§ÜzÉE—\tÉEó›Ïo>¿ù±Ïöü…ç/<á‘Çy¾ÈóEžŸÓcN9=þîûlw°ÝÁv]{uíÕµ×Ⱦ#ûŽì›ÙȼáÁ<^OÿÝVo[½mõ¬FÀ“v Û5l×0Ë·Y¾Íòmxoj³Ôf©ÍbÖĬ‰Y“OŸ?=~uÊê”Õ)qiRé¤ÒI¥þõç_þõ­Ño~kô¥é—¦_š~ýØëÇ^?vÃÈ #7Œ<ô=³õÎÖ;[ï#ÏjUÙUeW•=̾Øä 9H~mãk_Û˜Ùk7wÛÜms·ÆÏ7~¾ñós1dÄC–_³üšå×ìš¹kæ®™î:p×»2Îb椙“fNê=´÷ÐÞC«4­Ò´JÓ·_}ûÕ·_Íìý[.o¹¼åò¦švjÚéx]…—Z½Ôê¥VÉ1É1É1s ¯§ƒ˜P( …NÌÁfÆÍŒ›×,O³<ÍòÚ>>e|Êø”º©uS릺$'Þ‘wèÍ.ÕãuÛäÌä¼1ç9o|kÐ[ƒÞt[®ÛrÝ–ëè_ûÞ¯ïýúޯ׻¦Ø5Å2Z2‚áü)ùSò§œÈ:W¹°Ê…U.÷ý¸ïÇ}ŸoG¾ùv¯ktdÇkŸ1G y¨ÀÛKl/±½Ä¿ñÎg½qÖg½1¥Þ”zSêeD¿ƒ j0¨Á±¼gÆŽä Ïox~Ãó'¦>WŒ¹bÌc¾xç‹w¾xçïF¿î©yOÍ{jZi™€ãññòçØŸcNJOJOJÏhÉ[2oɼ%ÿÙ»˜Q`F/×x¹ÆË5~¿ç÷{~¿çœ6ç´9§MÆNÖÖÓZOk=íØçœ£sŽÎ9::畸¨ÄEÇ«&ÕsWÏ]=÷ð‰Ã'Ÿ8µÅÔS[KMº_Öý²î—YiYœpÜnœ$ÉIARô?·,ÎxêíY~Ìòc–?«ÿYýÏê»?ÚýÑî ,*°¨À¢"oy³È›ç¦ž›znjÓ+›^ÙôÊ6õÚÔkSïΤ;“îLº3¸3¸ó0GÙÔuS×M]‹¾]ôí¢ogD­kÖ­Y·f](!”J¨0¼Âð Ã+¾ñÿÿ<<òȲãîºðÅô<Ý+ÞPã«SåìRž[:rÁå«®~kÖc±G9}Îô9ÓçT;«ÚYÕβ*ˆUN-ÓÞöî´wýºè²Í×7©òÛ+7M¸æÔŠ~3dÌ9cþç’ÙÈŒ:dÔÄÚÀ`N²LÈ2!K»¼íò¶Ë›Ù˜r=ï™ør­Üc*,­þ\4û®Ë*þÔ}e¯7=<7³1îüpç‡;›¤5Ik’fµœžìà±Ã5³è7f@|\ÖÇ*Å<Ýà£1ÑýfÈ8¯ŒsÌ8ßð1õ±øtf0íÈÏúÍÖ¡HóR åëéU4ØÿÖ²œ/÷¼kZf1ð²FË-kTpDÁGXQ§·€ K…ª…ªµ*ѪD«á½7@ÎØõ{zF¿2Î=£™Ý:£†õ´®N‹U¡Dšwž~çéwž^4xÑàEƒÃ{Ͼ«ÇÅÃ.<}nø|duȨIxoF 3ê™óÿò³/?ûò³ÄÄÄÄÄÄÞ÷þ¸÷Ç;ïh¼£±+ûϸ4du¹ÕåV—;7éܤs“Â{Ëõ¼gâ˵r©°´úsjnW‹e꾲מÞûcâ‰?&–^Yzeé•‘0ÛôVé­Ò[˜V`Ziá½¾ýèÛ¾ÝyXça‡åû2ß—ù¾t}†ÀD†íÁö`{‡ÑFwÞYè¢Ë6_ßDô{dõɨUxï_µÝl¶GÂl'Ý4é¦I7eÖÛç?}þÓç?eg—]v¶ÁGO @D˜ùß™ÿùßy—Í»lÞeá½E:4ùúÖªt42«UFm3ê ó¼pà…/˜±Ó÷È#…ÁGÏ- 8ÙJ%ƒ’¾©ðM…o¶]°í‚mÚYvÜ]¾˜ž§{Åj|¥TG/å¹¥#\¾êê·f=ö?›B Î/8¿àüe –5XÖ X¬ ÖFÂl3Ý· ¸mÀmqïѼÊm¢ÃÙ ÀI6»ë쮳»†G¿Ù(òp©yî«X½Æ‹ªôweÔ-£†‡¶gÔ9£æ‘3ÛŒø¶k›®mº¶YUgUUuì þgìà$»2öÊØ+cç%ÌK˜—ph{ùœ zý™œåËì©TG•þ™=Ëÿȹdöò=¯v¸ï‰CÛk&×L®™<9}rúäôHž¿Á—€“fSÎM97嬔­R¶JÙmÏ’=Ç«¹[UÎù¨Ïö%‚‚ÕêZŒ úþ²çñë[æLÛ·÷]£í\²Éþ%û‹î)º§èžÈ?aðÑp hNšÏÖ|¶æ³5áíÅ/½~C—9¢ßã DpCðà_õ<êúG&·‰>`N†ä 9H~~ÈóCžÞ™çºsrÔª¥HÇKfõü«þÉAr|j‘083n ÀI°íámo{¸Â C*üOœkHù!ÕëœÙïÞ]/?£JÇ׊.ýs?üÄî;—ßùÓìCۗݹìÎew|¹àË_>ÕÏÑm¢íà$X°nÁºëÂÛ Ì©[«ÙÍêóoȬ¶™]‹S‘Á`N‚É-&·˜Ü"¼=×Àr+QŸCfµÍìZœêNÏ0X ÀI0f똭c¶†·Ç½œ·Mž‘6ÛÐðÐòPï?»ÌyoÒ€ûï{øÎ_.ïÚ¨Õe?7|(hRé·6ϤÞúýú_?¹õõ×÷_½uõúo#³æ™Õ6³kMNŸ0Ø3€8¡Rç¥ÎKWèÊBWºòÐölÍ‹ä*ùeÅUÝž7.rf›öؾØ=ŸÿñÝ öOìÞ=`yŽECæU%ÇÝ<ôñ¯»_°óòôH«ÿÒ²Ïw»#uÿç›w¯ýŸ sëä­“·NŽ«W3®æé³£ï™ÁvpBí꺫뮮áí¹^+ÿPõˆK¯Ö”zaïÞE¿“bgÙYèÖËoº~UÙk;çèýè™ËÈÖï»bUš·íx]–¡¹îÎ;)ãUk¯~û —ï/µ¥ùº¬‘vF™Õ9³ëÝ¢og°€jG—]vt oÏþ~Ѽ¥³EÎÛhMéj·õë>ÿȯª|FïŸÕNýjϤ”ob&Ç6Ž­ÁØ`QÄÕ¹Nÿ=´½þÈú#ë 2þnv0;˜}ôÃ3Âàsß=÷Ýsßm4NT l0!æ·,#³Ü 3 =’Þ$}Þ«·®^ÿmFK¶ç ¾\üé£ym–‚9Çç~6[›‚‹}—uHþ±E©óéìŠÐ¡+B'òˆ`"Bèì´ÒúGÂL–H~k[éC[âz'\™¿“:ówM™35æDñ¤Ýz|Êø”ñ).9ÀéfEŠ„ ]Ò»¤wI?´=ýÁ};÷ ‚ Pp’£Ö¸¹Óò=zhKÚ«»+îÌ$Oùúÿ¿u‚„CÛåw™Iy,å±”ÇÆ¾0ö…±/ŒÈ;"Góª¶;Ûîl»ó¼p`Ð2h´Û”nT«h]02èû˞ǯo™3mßÞv>´sÉþ%û—ì/º§èž¢{"ÿTìô=vpÒdD5“k&×L>´=#ªÜ³ï;–\¤JÇ"£†áÑoFÍ#?úµÓ÷ïp’õz£×½Þo_Û飥/¤K‚ùªô·¥K‚ùÕð¨k „¾ÇÂ- 8ÙJ%ƒ’¾©ðM…o¶]°í‚mÚYvÜ]¾˜ž§{Åj|¥TG/å¹¥#\¾êê·f=ö?›B Î/8¿àüe –5XÖ X¬ ÖFÂlÝÞùx±€“mm°6X;l갩æ†wfD˜é,rà¥:µ ~3üUçˆ~íôý7€ˆu[×m]·uÍi5§ÕœÞ»yЄKß[§JG#³ZeÔ6£Î‘0ÏYguœÕQè{|¹4du¹ÕåV—;7éܤs“Â{Ëõ¼gâ˵r©°´úsjnW‹e꾲מÞûcâ‰?&–^Yzeé•‘0ÛôVé­Ò[˜V`ZÃDþnïüÏØ @Ɉ'{¿ÛûÝÞï†÷fD›ÞñÙÖÝju¨ŒšdýfÔ3r¢ß ±£cGÇŽþèÝÞýè¯km§ï±³€ˆªªªÖàªW5¸jÑàEƒ >´7f@|\ÖÇÎÉúìcŸüš¥_öÂ9ï;k•Öeß–=¯ÿz Ç‹×ê|0õÀ‹‡öVk_­}µößLúfÒ7“bÅ,ŠYduE7;€ˆ8Qåèu£×>̳l3bÎå³û.¾wFzÕ ö¿uzV)ãÜ3êýfȨ¡è÷4úoÇ`"Ù¢ßý¾è÷úµë×®_;¼7[‡"ÍK%”¯ó`•þõNŸÝÀ»~3¢ßýƒ6¾&9|Ìô9ÓçLŸSí¬jgU;Ë*:}Ø @Dˈ0G¿2ú•ѯ„÷fÄŸ7@>ž œqŽç›Yô›Q+ÑïéÉ`N²LÈ2!K»¼íò¶Ë›Ù˜r=ï™ør­Üc*,­þ\4û®Ë*þÔ}e¯7=<7³1îüpç‡;›¤5Ik’fµœžìà”‘mf¶8CFDº1÷ç7 z5}T꼃ýOÝó͘ƹ9úͨ‰è;€8%ùÙÀ‡*;î® _LÏÓ½â 5¾:UÎ.å¹¥#\¾êê·f=öléô¬_%à¶­í¶¶ÛÚ¶*ѪD«‹/¼hpf#³=PäáR J¾scŇ/ÏY°ÌÌJû‚|ÁyAƒˆ8ÁÂà›=Ûþ¨»$ûÚN-}ù«ý¯n~yÍ7™ ¯Ö¾ZûjíG¯½nôº‚# Ž(8ÂJ ƒ€S^¨Z¨Z¨Ú;O¿óô;Ow½£ë]ï8òø,Ùs¼š»UñK¯ßÐeN¾%5’t ò•ƒ:'tÒ;ƒ_‚Ù;*-Høæõ_:£_í´}{ÿíÜOHÞuÀñGרÐ1˃híÐ%F2Sx:‰Ø‚ GDV‡BáÅ ?t¦Ë /c(R‡!>‰xJЋ٥Ã2üs°ö:ÿ°±?O×]“VŸ^¯ã¾¿ß—Ïçø†ßG»ã>Ô?Ú?Ú?Úq¡ãBÇ…¼¥¼¥¼%Ûça0¡¬œX9±râÜø¹ñsã‹ ‹ ‹ sªpääÈ©úÒ…Ôko½WøâK¥¯¼~øë¢oKÿ|Z·ºûîvëæó{¿ÿ¶ùË›us?M~µ×~£ýúü㜭­­½Ür¹årKõrõrõ²-ów`"ÚJl%¶æ®Ì]™»ÒÖØÖØÖ˜===}Ð×yû…ÂÊï ??ùÉ©ü£_–¯>rø‡¢Õä«ùŸ=^О÷ë¡o}{ùþ;÷¿xðñí[û#wߨ®Êþ|ûý[+wö>¼ñéõw¾ûcoí̓~7y5y5yulflfl&u6u6u6Qœ(N[,&]e¢2Q9ß3ß3ßÓÛÙÛÙÛ¹X´X´Xôo»fívívívßpßpßp}}}b-±–X³@Ÿ ÀÿÎFÁFÁFÁÄêÄêÄêÅ‘‹#GvvvþÉ;ë>Ö}¬û|ûùöóíÍUÍUÍUåûåûåû¶Ã“€ ‘íÊve»®­_[¿¶>žNO§3737377{7{7{ŸäÍ¥}¥}¥}é²tYº¬)Ó”iÊÔTÔTÔT$“ƒÉA“çé€àÀJJJJJJ~2¹3¹3¹“º—º—ºg><+ùFƒ „ „ „ „ „ „ „ „ „ „ „ „ „ „ „ „ „ „ „ „ „ ÄsFuièÒÐ¥¡…©…©…©º3ugêÎT´V´V´š ÏV^.—Ëårð_çÐAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAÀAü:-8ˆP÷Õä%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/map.png000066400000000000000000001330161431412030200241520ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwT×âÿ}Æ$&T (vÅÞ¥©(ì5¶ØEA%jÅE%öÅŽ ±·3ì½wEc‚AE<Ïç~×Ãý. Èax¿f­YYföìÙìÍ™³w&#@2Q À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À ÀÂŽÅ‹;Ö,¬YX³£5Ö}:û¬³vÌÚ1·†Ývk˜ñ´ñ´ñ45`Í€à¿<_ú|éó¥A¥ƒJ•.·¸Üâr‹s§‘Ùf˜}à~ÖûYïgå¾Ò¯+K¯,½²ÔßÉßÉß)­FU™3=fîʼ+ó®Ì1!1!1!Ü@zôÎýû;÷Cn‡Ü¹µÖjX«ai5¶=?ôüÐó窫v®÷‘™’aY²„e¡f¶€dlÆcĹê窟«Þ>¶}lûØÜV©æ šƒjg‹³ÅÙñkâ×įáÖ¬ÓÛÀ·o·ºluÙêbaaac밬òËz×ë®×]/îÀš=Ôjµ€Â… ç¶bAë‚Ö­‹yó$æ w qÃ:È ÎL=3õÌÔÚžµ=k{~Þ‡ÛÊ= (PbÈÌjwKU^,yÔ®4>tpó£5š‹³Ûf¯ ­i÷²ÎZyYÛÓµÿÞãÔ²BÍ’+•F#+ß½¦–G7×Å6*öyçµYo³ÞfýÁ°ƒaÌ߿7~Ïݤ­÷+Þ¯x¿bÍô5Ó×LO΃ãf>®¯ì¿žðó€êåœ×.™¼·ªÓþbóÖ<«4_~¸Na5veö:ã c¿©uÛâ™Ó«ùcîÈåíú•m{«DnÇ]ö·òýðyçí²µËÖ.[ïn¸»áîî&À<ºñèÆ£>Á>Á>ÁŸ7ºå)’ÿ7»>EÛ×wjU¨l•î…G8V<7äêŒÌU¿“mq‰j?ó^q¬šÛØËU†ŒÎ· ¨Âfß¿µ)ݦSUßÉEZÖZßà|rÆô…GYx$ö›Øob¿ánôÖ‰@ò$Ó“LO2uéÒ9$é\ë?*^¿pÁM]›zW«w¿ANõæ>>§Ôþ¥CÙÃuO÷–î5+wzU~d±¼I/[ÕçUŸW}~µäÕ’WKr_žrQ¹¨\üԇƒ¾ùÑ­ä*¹Ù²èÚï”#OÝ6OžlÜ8¥ö××n?ê¶bÉÿª•ö•¹V|«í'L9Ög¬ÏXŸïïoî/àKzù6òmäï oø{ÃOzòÏ´ó-;ÿ§v¿ì®¸dK-w÷5kNžL©½ÛÙ †'¾­žsüO«Ú”ðm™«Ç¡O÷÷Žß;~ïxãããî2@€a€èÝ~ã~ãþM96娔#éP×ín’½ê ø¢ô JÙ¸7éû}ó[ÙÔÜQŹHö’RæÀ ĵŠk׊ÛH=Q³£fGÍîãÒÇ¥KRF¨Ö•ŒphÔkõຣS6èMú>*‹lãñ`ÎÖ_ŠUØšôßT{Õ^µçŽRÛ™,g²œÉ’ôªtýN™}Õ=¸ ïÁÁ)÷&}_ãØ”3:ýª^ÅIúS°–±-c[Æ>ÛölÛ³mÜq€žÃ:ЭèîÑÝ£»wÜqpÇÁ‰-Ù¬ÀÒ|kU¯v?×éø±÷À³žOÓ*ôµ´¿¸¦ó×úM»–ÊVäØÿxðméoK{?â~ÄýÚ e^vzÙéeIyÈëS¹ãÉ’ÕïÛïñ­7-­B_Kûw׎Ä5º¿Ýqæ›ê³“r-²LÈ2!ˇ¡†~J¤7£›ÑmÞšykæ­IÊxä?°À¤Å®ƒVÜë“V¡¯¥}Ýõº—,Ùº[ïФ\‹|L>&£ ôÖ‰€Ýö»íwÛ/);w×hq®Æ k‹{ߟ°íØÑÙ®ÀǼYmn&~ua3Âf„Í =’oý­õ·ÖßJ|ÜiX¿Ž}á5·^„vuïbm¡¯¥}üûµ<Ï/mҵįεŠk×*¯¶¿Úþj;íÿÔû§Þ?õ:TèP¡C…ÄGŸ2º¬ù9Êí‡?oyim¡¯Å0øëyå÷͵_꼿‰MâW7ß0ß0ß`¼e¼e¼E«¤_À°NÀtåTåS•OUþ뾨æYòüßþý¤†#ÒWô›pï5p€ç–¹³ëͬp'ñëÝîºÝu»+mðÉîïïæ Ìø?Ö§ñúývõsé%ôµ´¸gÝúÖ©S ðêį÷ÁóÏ<§>Ud¾È|‘ùJ)U¤TK£Œí(G›RkO5,ô×ôúZÚW-:¦Ñâ_U‡{ ÷îE ¤GÀ°NÀt"|løØð±‰°Üۨ墚}ÓoèkiöÜ¿ºôý«çX—c]Ú I¶··øõóëç×ÏÒÈR~sÉ{ùóþ5g_ûúyÓ{ôû_ûÈ“Bc…ÏÆd©”/ñ±õ^Û{mïµ¥±’´öíÿXЧPÇé>›Üîýr¢qz~îg.zc ^®t£v¸¥kï½½÷öÞÛãÇÆKk¤/À°NÀÒ½Ó~§ýNÿ Ÿo–ìê­¿è7á>rbŸivÕÛ»Øå°T[o]¼u1m¸I9&å˜dq4é7·]ÅeÞ-=r¬Ñ%]E¿f{åÅ ç:õÿãѾGûí£Í,y]àu×òìϳ?Ï~K£Iå®#vÌ­¯§Ð×|ïvpõ‡ãÛKÎk³»ï`Kõ0pÆÀgÝîFwZ ½ †u"ŽÝ­s·ÎÝ:–>: É»!ë³K½Œ×wô›pÿv·÷ÎFAm»•íípÞRͨÕÔjj5ÚÀÜÊ+s¬´ýNê-Ÿ–OûÛþoû¿íi?€„Þ­·þÝú}jô©ÑÇÒ8Rý ÿõÔwôk¾/w©w³1ç,ÕÉÔ9SçLCû¤À°NÀÒ¥˜¦1McšZú¸h–·Užo^5î[ÙcBƉ~îãθéÙ¡]™²ÛŒ–jéîûï>¤-L”SÊ)唥QcJߦåí3Nèk¾¿²Ð튥úi9´åЖC?®ø¸âã ÚÀøÑøÑøÑg’Ï$ŸI–ÆŽc'ß^ïѢ߄ûòúæ[ÂRýìh¿£ýŽö4%€õ#†u"Þ¼1¾1¾éîÝÝ»»·¥ŠO?ö®Ý eÆŒ~îßUô¾ÛÈP{·Ã…‚_›×’ýGûöß…¿ N³€Œì©ÍS›§6–Fա˺ž-µÑ¸ÿäüƵ2rlÚ_(»)Òå¹¥ºš×t^ÓyMiQ€à‚Áƒ Z/ªM·zeîŒý&Ü—©ÐùñÏ™,ÕÕ­ð[á·øÄ °jÀ°NÀÒ™ççgK¯ÍêzÀ­;ÑoÂý«F}+yŒ·Tcãûï?¾?í 2¨&Æ&Æ& —6\Úp©ùá6ªú¢Bí> >fôü•è7áþ€Ë‚õµrY[/Ú]´»hG「)Â7Â7Â×ÒQao¡ß*úþ׾Ě'røÅÍÇk–y·-n[Ü6.2.2.’Ö°NÀ)e_Ⱦ}!¦:œ<-xZ𫦯š¾âϬ?0€tãEå•_T¶ôA:tZóó5Ú÷ZÚ_×ùŠkmKµw¾îùºçëÒÆ £ÙrkË­-·,/úF4¸FÜki?e’oßò¥Ìë­`®‚¹ æŠâ„86ˆ›ÑÍèæòÜåù¿ÍáX·qÙŽ‰{-í]K,ÿ¨¹Zúd÷ïÞ41€u"N¾øvñíâÛYúM€0øóH7úOî?¹ÿdó O›J;‹o$âMÊ~ÉzÙ•v™×a‰’%J–("þDü Zd¯7¾Þøz£¥Wj¦Íê4"âM|x¬…gÃâ_;Øç+j^‡+XùÃÊhiq캿ëþ®û–ÆV×j+*i~½‰ïk.Ö3x½¥:|¸þáú‡ëiikCœ| ßýMapÒH®8^q¼âh©Óµ£o'Å„»IÙÇ{ìï\j]Ö|þå-êL¡™B CX°&`ùXàݾýœ³ w“¾¿²s«¿k”¥ßR^g{íu6ÚèÛÛÞo{¿ími,¨n3¾ÿª®„»Iß—.Ðq¼Ïróšìy³çÍž7iokCœ|¦@×îæN2ÂàÄñ @:Ðt\ÓqMÇ™wñ[ò7Tí6±î§îÏ7èœÙeŸ¥3.\þ¸ü´:Ы§??ýùéϧ}^jXÙà/bÝOÝÿZ ×ö2?þËÇQiÓA>A>检ƒ£«O³ºŸ<t³£´+–~W¹ùôæÓ›OiuëAœ²ƒS 0«vÝþºýu{óÝ& ÷ÒÜ}>D l칈@÷óöO9•.6Á¼nwÞuz×iÚèÕÿ þüÿeu=ÿÑ÷+*D¹Ÿ·YA¸îQÏÒÑèÑ£7Òö@Þ~?øý`KýÉsgïK ûyûJ¹š™Å¼V{½îõº×kÚÀz§Âàä `Õ¼C½C½CÍ;ñý[5¯y79û[Õ»ÛºW1¯Û¢ï‹¾/úÞ8ß8ß8Ÿzò¦ù›æoš[ú€S[]ÐðO¢Üäì§–´­üoæu”-([A€íÙ²ÿ_Ö«+v­Ñ›M q“³wë´êȱ"–~oyžåy–çþýñïÓ@Oj^®y¹æeó>¿vÀ¬C;â&ï$øqâjó^œqþÅ,]° À_apR°R¡sCç†Îý— *5([ñÁmJíµqíîÕYn^Ï~»ývûí¦€žÔtªéTÓɼÏØ}_LýÄ·)µï´²IÃb™ÌëùºÝu»ëv´CÐ‡ÇÆÇÆÇÿòÀ7¿RªŒSC‚Û”Ú»ô]$W¶ô×XËXËX‹ÖH[Ài‹0Ø`Vªaᆅ6ïš7éU£~¨5Gª 7øµRvSio¶ì&¹ÅYsiß/àí™ÓÒ@ïïïGk€ô.riäÒÈ¥æý|ÍZíFY[€ª<\Q£Ž»wPû“%VW¶/Û­@>»éùCmÞ— ,QÃvI˺õžÙߟÕp¸{…b±áNº[[ùÃ_®ê^·Ì¿|¼Ì1-Ç4f×X›smεÿòIªÒµáv³kXCtêzòÏÜáË–îöaøû"ÕjµnÐ×v‚c•Ò¥mîÙ†b÷m¹JUF9˜—¼m¶¶ÙÚf£M@:ÖÝØÝØÝÒõñú‰‡³¦ñû²cÂ7Zàå#_¡ÿLL½»â»y¦@÷ÿFÒÿ÷»Lÿžð»,}eZí7šž³Ú¾yLÀôëÚ7×¾¹öy_¶e÷1#–§mPZ¹ßˆ sÿë’+zžØÁôÍÃ]Ó¿”ú³ýÇÛþ³†ñ€’ß—»dAç+ZäV±?Ìk>®~\ý8f®¤àô%ã„ÁÀ¬ŽW„W„W„y'ûætÿ?¾µ†¸tíµÆ«:'}x°þØxÎçÇÆ.˟ϘϘ– éQôwÑßEgÞ·w]îÕ§ØckJY¸°V‡„eÛuuîW“è&ü®FJ]¯Âo­'¾5=ô÷Y­pväìÈÙ‘´LH¿6oÞ¼yófó¾úý‰ï×ìHÛˆ´t§NM|ÿ4•'_¸Ã“5’2¥s5s_íy÷/Õþÿo[[\2¢mH¿Póšxèᡇ‡h™€´Bœ~é; &†Ìÿ<þ˧gãúÖ—^Úߥ¹ë„?¾©·¿Â{ó}º €>>w[\¡Šã¿¬bS4¦hLQZ&¤G× ]/t½yß¾¢à¸ë•ý­!(]é V>o2çSõÖµt^dú®Â]íåùÓzÞþ§w˜g£©ù¶CÚi;„– é×È.#»ŒìbÞÃ;ÿ´ÈÛ-m#RÇMvŽÎçc¯9vèéVΫnR¢Üºût?Ø÷_&X¶²¸ò…‘æ9™—3\ WÂZ& ­ëƒþÂ``é`ÈlõºŒ¿ƒgz‰QÓo<ϧ¾KE/óòG\¸q– éÑáz‡ë®÷/G[ÿiWç„5¥»ýQ®fNß~„’~þëV¶””ô7áÛÃÕÏWÈnWÒŠ&‚z²kãRæ5Ÿ¿hþ¢ù‹Ò2 ýrww7ïáݺ­ºr¬ªuNžœø¾|»>WüÏ%|oØ:àZ3Únf^ókmÖÚ¬µ¡eÒ °þè# &†Ì±êä)Û‰8µ÷{[–­Yܼü§µÓÚi– éÑ*›U6«lÌûöÛyBǸ÷±ž “Í'vNÊWv=ÏýÏÀ¿œîQ°ô2k[ ¸z%§™Œÿö»@?ŸXÿ—Ö]3ÿäkzkwÿýõŽó5.N‰Þ0¥ŠÃ¨Bó{¯Ð¬t— ¯Â)fÀ»Iì3vî°¨ùáûæ5?±ÕÄV[Ñ2Öó»°ž¤ß0˜@:2—,ô¬BœÚûãù;üS÷Žyù u u ui™Mý0õÃÔæ}û³ ‡ë6°Î8ñ}|…ã‹=×íÐ7¾l Óµòµ+—gÀ_ûö ¯_ÄÚJÛ©e“¯‹¾"}bÍ_®D³²7¬ÿM_Û[Å;”Ym^~›)ùÖØÆTÌ>È{êMk.¿kãC´“æåï÷²ßË~/i™ëùÝ€X¯ÒWœÉz~$À’M_7mR͉8Õ×6®ÔÅεí 2‚¨)ò膙ÒWôkZñ·á¹:s +ÿyà¾Ñ¶¶Íl9ë²ÃµÏ[Û»¿¦½ï7F–ìG{}+Ô£Ê̺Ñé7N¨j¤ÿ¹e‡­³ünÅW•8êE{éѾ}!ûB€à¿l+ëU¥zGàÔÞ_=Õu¸[UÚd/Pó6cý¡ïÍ–;lÝâ~ªÓâgÇ Ë_{Q¥vOWYŸÝùäÿ¶ÖXþaÁÝÖ—z@{}+|¼æWõö¥—ݦ®î|ìzóòî^eóèó ©V«uƒ¾ ¯¨zµñgW=°º’÷^õô0H—Þo¿ýýv`ø/¼ÌÀ€”eÍo¿ïz´W#càÜ!srÛîÍ7ÖæGS™‹å*²0ïö?¾Y¹Âûw>GÖ7:þã¬õؼ AzyØÒÞtöMë<Ï$¼.ÞH)è `Óèllllæ›yçÈÀi»ð¼Êó*Ï«LËdcccKÛÀI' œdÞ·[çÀ·Üwœw¯VswÅ)vóLåÌ{1ïW¹ŸM(àýª\é×QrV»Öú&e `Z&›ž>±¦—5€“›äs¶¯ZÌhm1°¥5€[ïo½¿õ~Z&›=Íζ$Û’lÔŒþ¶ýþûý÷ûû|åó•ÏWI~M_ŸÖ€¤Ï0vBÖ”Þ‹Þ=±žGù%·çÏj*¡é¿þ¾zuÝ©¦¯I_ѯi_½’ÓÌÆûÝ ŸO¬ÿ Jë®™ò@Z…£Î«×ò$,SÌ€w“†%ý5šNvY×Òô½yŽÚ.lm°s‡EÍß7¯ù‰­&¶šØŠ– °žß La!5£¦àvZð´àiÁI}M_ÿåCß„€¤ƒ!³Õë2þžÀ©½ŸçSߥâ¿L¨q=âzÄuZ&¤G‡ë®w¸Þ¿|mý§]Ö”º6«¶¥PNSÙ)u½ ¿}é œñpM¡ïöCOvm\ê_Þ+š¿hþ¢´LH¿ÜãÝãÝãÍ{x·n«®«j=oñ:æ÷<رQÒ¿×é‡þªé{ oª±¬^%k €kÎh»m˜yͯµYk³Ö†– H+Àú“~Cß„€¤ƒ!ó?ÿòéÙ¸>pêí»-®Pű˜yùcŠÆ)JË€ôèz¡ë…®2ïÛWw½²¿5¥bñ¥µÿ³J®MæÜ§r7¾Sl§—ûêtýOžlÜøŸÞažþ¥æÛi;¤íZ&¤_#»Œì2²‹yïüÓ"oC6ë €s¯°9’dzúÜ uKü»êv_{ÿ³|?Y]ÌÃô­¥ËvÜëampå #+Ìs2¯ùp%\ Wh™€´B¬ú}"`u¼"¼"¼"Ì;Ó7§ûÿÙð-pªìÏùüØØÅbôžÏ˜Ï˜– éQôwÑßEgÞ·w]îÕ§ØckJû‡¶ÏYÂç?ï*E9äÈ÷ŸÐtÉÿ¼•¶êÞŠÖ3žúƒ{CóšŸ9;rv$-ү͛7oÞ¼Ù¼‡¯~âû5;ÒøÙó3ën_isÏ6¼À„e+qºU³^­+/ø¥ßåLS=WqUh~ÏÒ:5ñý3á„ϦÕMJ[Û*Å%#Ú†ô 5¯ù‡‡zxˆ– H+Àé—þBß„€Xùcæ™?Ƽc½ô¦K×ÙÀ©±Ú7Þãÿ¼¥”­m¶¶Ùh“Žu7v7v·ô¡åãõgMÛ ´~|­Î…r§ë €7šž³Ú¾yLÀôëÚ7×¾¹öy_¶e÷1#–[CPúŸu|—Ùå,Ô3échA‡ +jÜ­eµe‹µ½ûkÚç+ZäV±?ÌKW?®~\}Z& ­§/ú}"`uΞ <hÞÉ.h¹¢Jœû° í{Õyl^ò ~Aý‚úÑ& ½ë[µoÕ¾UÍûùÇ­ø×ß•¶Ai±\EæÝ®¿¸}»F¡E=ÌK¹IUº6Ünv kSÓãÞ¡¸«o³†æµ}¯Ò½J÷*Ñi‹Øzú&D ÀJ…Î :÷_&‚~Ô lÅ·)µ×Ƶ»Wg¹y=ûíöÛí·›vzRÓ©¦SM'ó>ÿa÷}1õܦԾÓÊ& ‹e2¯çëv×í®ÛÑ@ÿËßüJ©2N ‰lSlòç¾KƒäÊ—~¨e¬e¬Ek¤-à´Eèk 0+=%zJôKtܹ7<;ß&ßèf‰ƒ…?š×ðµ×r\ã-%ЕóvÌÛ1ϼÏÿíÉ qåGÜ&ÿlÖá, †Xúíåãßÿþø7íô¤æåš—k^6ïókÌú1´ñmò÷Nò€'®6¯áÅùç_œŸ°À_¡oR°jÞ¡Þ¡Þ¡æõþŠ­š×¼@|›œý­êÝmÝ«˜×mÑ÷Eß}oœoœoœO =yÓüMó7Í-}Š©­.hø'!nröSK ÚVþ7óº Ê”-(-ôgÈþý!æ=±kÞthJ|›œ½[§UGޱô{Ëó,ϳ<çÁ:À*„¾ŸŠ€U»nÝþº½yÇm{iî>¢6ö\D”ûyûΧœJ›`^·»Nï:½ë4môj‚ÿÿ þÿ²È‚ÿèûBÜÏÛ¿¬ \÷¨gégôÆèÑi{ ?ï¿ü~°¥þ¿Îä¹³÷Œ%Êý¼}¥Ü?ÍÌb^«½^÷zÝë5m`=€S¡orHšŽk:®é8ó®|KþfƒªÝ&ÊýÔýù3»ì³8½vþ¸üqL¥ºõôç§??ýÙÒ(ðb©aeƒ¿t?uÿk^ÛËüø/;=¦yLó Õ€¾ùùù˜Ž®>Íå~êÞµÙŠQÚK¿«Ü|zóéͧ´:€õ NY„¾)…@:pÅñŠãGKû«};y,&ÖMÊ>Þs`ÏàRƒì²æ{`^“¡™B3…2.@†°&`MÀó±À»}û9%fè&}eçV×(K¿¥¼Îö:Ûk&{Ûûmï·½-ÕmÆ÷_Õ•X7éûÒ:Ž÷Yn^“=oö¼Ùó&í `m€“Ð75ð @ºÑrÿÉý'›wô}ÚTÚY|#ánRöKÖ{Ì®´Ë¼K”,Q²DÉøñ'âOÐÒ #x½ñõÆ×-}ˆR3­hV§ánâû¸Àc-<ÿÚÁ>_Qó:\ùÃÊVþ@K€Œc×ý]÷wÝ·4¶ºV[QIó#ÜM|_sé´žÁë-ÕáÃõ×?\OKXàäÛ²/d_¡oÊ"n¼¨ü¢ò‹Ê–ºþÐiÍÏ×hKÄkiq\ç+®µ-ÕÞùºç랯K€ŒfË­-·¶Ü²8tÈ×z-í§Lòí[¾”y½ÌU0WÁ\qBœ'ÐÆ q3ºÝ\ž»:8Öm\¶ãE"^‹Ó>—XþQsµô;ÉïÞ ¼ibëDœ|ñíâÛÅ·#ôMYÀÒ™ççgKƒÁµY]¸u'îM¸Õ¨o%ñ–jl|ÿñýÇ÷§]@ÕÄØÄØ¤áÒ†K.5#ÜFU_T¨Ý‡ÁÇŒž¿÷&ÜpY°¾V.KcëE»‹víh\1EøFøFøZ#*¬ñ-ô[eâÞÿÚ—XÓâäO¿¸ùxÍ2¯±â¶Åm‹ÛÆEÆEÆEÒºÖ‰8¥$|˜Ð7ù€¤7oŒoŒoº{w÷îîméCõÓ½k7hIôû®¢÷ÝF†Ú».üÚ¼–ì?Ú´ÿø.ü]ø»pšddOmžÚ<µ±4ª]Öõl©Æý'ç7®Eô{¡ì¦È{¯Ëd^ÓyMçñÑ` .\0¸ ¥ñ¢ÚÄq«Wæ&ú5íËTèüøçL–êêVø­ð[|bX5`X'`éRLÓ˜¦1M-}D´ ËÛ*Ï7¯÷­ì1!cF¿qçÜôìЮLÙmFKµt÷á݇wÒ–&Ê)å”rÊÒ¨1¥‡oÓòö9ú½²Ð튥úi9´åЖC?®ø¸âã ÚÀøÑøÑøÑg’Ï$ŸI–ÆŽc'ß^ï‘£ßòúæ[ÂRýìh¿£ýŽö4%€õ#†u"ŽÝ­s·ÎÝ:–>. É»!ë³K½ŒÏ8ÑïÛÝÞ;µíV¶·ÃyK5£VS«©Õh?s+s¬Ì±2‡¥dRç»Ë»žôjì˜q¢ßËÒÁõ¥:ɧåÓòiÛÿmÿ·=íлõïÖ¿[_£O>5úXGªÿ1០ž-ú-w©w³1ç,ÕÉÔ9SçLCû¤À°NÀÒ½Ó~§ýNûåNÔÍ’ÝBÝ¢õýFNì3Íîú`{;‹î·.ÞºxëbÚ q“rLÊ1ÉâhÒon»Š%ʼ[zäX£KúŽ~•+œëÔOüwŒGûí{´6°äu×^ȳ?Ïþ<û-&•»ŽØ1·¾¾C_·ƒ«?ß^r^›Ý}[ª‡3Î8Ãènt7ºÓré0¬0>6|lâh÷6j¹¨f_ýE¿gÏýø«Kßį}]Žu9Öå ’d‹q‹q‹_?¿~~ý,,å7—¼—?ï_söµ¯ŸWWÑoäI¡±ÇÂgc²TÊ—øØz¯í½¶÷ÚÒXIñlÛ³m϶%>²”.ÔqºÏ&·;A¿œh¬§è×yæ¢7±àåJ7j‡[ºöÞÛ{oï½=~lüØø±´@úB ëD @WNU>UùTåÄ?TzQͳäù¿ýûI G¤ßÐ7ÞkàÏ-sg×›YáNâ×»Ýu»ëvWÚà“Ý1Þ1Þ Ì˜70oâcMˆ×ï·«ŸKïÑïÃ=ûëÖïØ°N…W'~½ž?xþà9 ð©"óEæ‹ÌWªH©"¥ŠXelG9Ú”úX{ê¬a¡¿¦÷è·jÑ1ÿ’ø¨:Ük¸×p¯ø¨ø¨ø(Z ="†u" C·ýnûÝþ“B›ì®Ñâ\é+ú=aÛ±£³]y³ÚÜLüêÂf„Í›A{$ßú[ëo­¿•ø¸Ó°~ûÂkn½íêÞ%½„¾ñïOÔò<¿´¹ÿ¦J׿:×*®U\«¼Úþjû«í´@rüSïŸzÿÔëP¡C…}Ê è²æç(·þ¼uäez }ë~=¯ü¾¹öK÷7±IüêæææŒ·Œ·Œ·h€ô‹Ö‰€nEwîݽãàŽƒ;NücgÉf–æ[«zµû¹Nǽžõ|jm¡ïÅ5¸ÖoÚµT¶"ÇþǤaß–þ¶ô·÷#îGÜ  RÖée§—^–”?±ò©ÜñdÉê÷í÷øÖ›fm¡ï»kGâÝßî8óMõÙI¹– Y&d™åÃÐC? ¥ RŒ›ÑÍè6oͼ5óÖ$ec}ÆúÄxÇxÇxs_ÒÛÈ·‘o#oø{Ãß&}äÊã¦oÙù?µûew͸À%[j¥lÐëv6¨á‰o«çÿÓª6%|[æêqèSÇý½ã÷Žß;ÞxÁxÁx» Ð`X'`Ô™©g¦ž™ZÛ³¶gmÏÜŸ¥r ”2³ÚÝR•Kµ+Üühæâì¶ÙkhkÚ½¬³V^Öötí¿÷8µ¬P³äJ¥ÑÈÊ7F¯©åQÆÍuE±…Š}ÞymÖÛ¬·Y0ì`ØÁ0ã÷Æïßs7iëýŠ÷+Þ¯X3}Íô5Ós'C3×Wö_Oøy@õrÎk—LÞ[Õi±ùGkžUš/?\§°»2{q†1‹ßÔκmñÌéÕ‡ü1wäòŠvýʶ½U"·ã.û[ù~ø¼óvÙÚek—­w7ÜÝpww` ÝxtãÑ Ÿ`Ÿ`ŸàÏÝòÉÿ›]Ÿ¢íë;µ*T¶J÷Â#+žruFæªßɶ¸DµŸÇy¯8VÍmì‰åÆ*CFç[Ta³oßÚ”nÓ©ªïä"-k­op>9cúÂ# ,<ûMì7±ßp7úF ëD c‹0F#ÎU?Wý\õö±ícÛÇæ¶J5ÕTs8[œ-ÎŽ_¿&~ ·`Þ¾ |¸Õe«ËVÛÛÛë[‡e–uXÖ»^w½îzq×Öì¡öP{¨(P8· Z´.h]Ì“˜'1O¸k€ŒƒÖ‰þËó¥Ï—>_T:¨tPér‹Ë-.·8­><Ï>0ûÀì÷³ÞÏz?+÷~]Yzeé•¥þNþNþNi5ªzÌô˜é1sWæ]™weŽ ‰ ‰ á¾Ò£wîïÜß¹r;ävÈ­Õ°VÃZ K«±uèù¡ç‡ž?Wí\µsÕ¸/€ŒŒÖ‰þ‡—ó^Î{9Oœ+Îçú—ó/ç_Î)«SV§¬ÉÿÀ\dy‘åE–É3$Ï<»#wGîŽ|bûÄö‰-uз{ î-¸· 8 8 8 çˆž#zŽH©‡Ñβ³ì,O÷žî=ÝûxÇãwŒ ˆ ˆ  Îzõ6ëÛ¬o³žfü™ñskÏ­=·¶G?~ýRjlíìÓÙ§³ÏÚ1kǬskØ­a·†OOOSóÖŒRر¸cqÇâš…5 kv´æÑšGkR'|žk?¬ý°öȼ#óŽÌ ‹ ‹ ‹º\ær™Ëe¨>Ïìw²ßÉîîîyÄýˆû÷ر-b[P3zB :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :A :ñEà°,aY²ä€ Ô“@ºG :‘á`Ó¿‡eË–9,SX¦°LÚGí£öQ‹×âµx-N‹Óâ´÷Ú{í½öV{«½ÕbµX-V{£½ÑÞh1ZŒ£EkÑZ´¥EiQÚkíµöZ{©½Ô^j‘Z¤©=מkϵgÚ3í™öD{¢=ÑkµÇÚCí¡öPûKûKûK»¯Ý×îkZ„¡ÝÕîjwµ;ÚíŽvK»¥ÝÒnj7µ›Ú í†vC»¦]Ó®iWµ«ÚUí²vY»¬]Ò.i—´ Úí‚v^;¯×Îjgµ³ÚíŒvF;¥ÒNi'µ“ÚIí¸v\;®ÓŽiÇ´£ÚQí¨®…káZ˜¦…iª¦jª¦hЦh’&i’&j¢&jÍ ´ÃÚaí°vP;¨Ôh´Ú>mŸ¶OÛ«íÕöj»µÝÚnm—¶KÛ¥íÔvj;µÚm‡¢…h!Ú6m›¶MÛªmÕ¶j›µÍÚf-X Ö‚µÚFm£¶AÛ mÐÖië´uÚZm­¶V Ò‚´ mµ¶Z[­­ÒVi«´•ÚJm¥¶B[¡­Ð–iË´eÚRm©¶T[¬-Ök‹´EÚ"m¶@[ Í׿kóµ?´?´?´¹Ú\m®6[›­ÍÖfi³´YÚLm¦6S›¡ÍÐfhÓµéÚtmš6M›¦MÕ¦jSµ)ÚmŠ6Y›¬MÖ&jµ‰Úm‚6A дmœ6N§ùkþš¿æ§ùi~Ú¯Ú¯Ú¯Úhm´6Z©ÔFj¿h¿h¿hõáÚpm˜6L¦ Õ†jCµ!Úmˆ6X¬ Ö|5_ÍWóÑ|4m€6@ ykÞš·ÖOë§õÓúj}µ¾Zo­·Ö[ë¥õÒzi=´Zí'í'í'­›ÖMë¦uÕºj]µ.Z­‹ö£ö£ö£ÖIë¤uÒ:h´Z{­½Ö^k«µÕÚjm´6Z­•ÖJk¥µÔZj-µæZs­¹æ¥yi^ZS­©ÖTk¢5Ñšhžš§æ©5Òi4ÍCóÐh ´Z}­¾V_s×Ü5wÍMsÓÜ4ÍEsÑœ5gÍY«£ÕÑêhµµÚZm­¦VS«©ÕÐjh5´jZ5­šVU«ªUÕ*k•µÊZ%­’VI« UÐ*hN𓿤•ÓÊiå´²ZY­¬VF+£•ÑJi¥´RZI­¤VR+®׊kŽš£æ¨ÕŠjE5ÍAsЊhE´"Za­°VX+¨Ô jvšf§å×òkù5[ÍV³Õòjyµ¼Z-–GË­åÖrk¹´\Z.-‡–CË¡ý ý ý }¯}¯}¯}§}§}§}«}«}«eÓ²iÙ´¯µ¯µ¯µ,Z-‹ö•ö•ö•–IˤeRªQ5ªñj¼¯~P?¨Ô÷ê{õ½úN}§¾ScÕX5VýGýGýGQcÔõoõoõo5JR£Ô×êkõµúJ}¥¾R#ÕH5R}¡¾P_¨ÏÔgê3õ©úT}ª>V«ÕGê#õ‘ú—ú—ú—ú@} >P#Ô5B½§ÞSï©wÔ;êõ¶z[½­ÞToª7Õê õ†zM½¦^S¯ªWÕ«êeõ²zY½¤^R/©Õ‹êEõ¼z^=¯žSÏ©çÔ3êõŒzZ=­žVOª'Õ“ê õ„zB=¦S©GÕ£êQ5\ WÃÕ05L SMUQUR%UREUTEÕ TƒzX=¬VªÕƒêõ€z@ݧîS÷©{Õ½ê^u·º[Ý­îRw©»ÔêNu§ºCÝ¡îPCÔ5DݦnS·©[Õ­êVu³ºYݬ«Áj°ºQݨnT7¨Ô ê:uºN]«®UתAj¤®VW««Õ?Õ?Õ?Õ•êJu¥º\]®.W—©ËÔeêu‰ºD]¬.V« Õ…êBuº@] ÎWç«óÕ?Ô?Ô?Ô¹ê\u®:[­ÎVg©³ÔYêLu¦:S¡ÎPg¨j ¨NS§©ÓÔßÔßÔßÔ)êuŠ:I¤NR'ªÕ‰êxu¼:^ PÔu¬:V«ú«þª¿:F£ŽQUUUG©£ÔQêHu¤:R¡ŽPG¨ÃÕáêpu¨:Tªþ¬þ¬þ¬Q‡¨CÔAê uê«úª¾ê@u :P P¨ýÕþjµŸÚOí§öQû¨}ÔÞjoµ·ÚSí©öT{¨=Ôjwµ»Ú]í¦vS»©]Ô.jµ³ÚYí¬vR;©ÔŽjGµ£Ú^m¯¶WÛ©íÔvjµÚFm­¶V[«-Õ–jKµ…ÚBm¡z©^ª—ÚLm¦6S›¨MÔ&jcµ±ÚXõT=UOµ¡ÚPm¨z¨ª‡Z_­¯ÖWë©õÔzª›ê¦º©®ª«êª:«Îª³ZW­«ÖUk«µÕÚj-µ–ZK­¡ÖPk¨ÕÕêjuµªZU­ªVQ«¨UÔJj%µ’ZQ­¨VTT'ÕI-¯–WË«eÕ²jYµŒZF-£–RK©¥Ô’jIµ¤Z\-®WUGÕQ-ªU‹ªªƒê Q‹¨EÔÂjaµ°ZP-¨TíT;ÕN- P ¨¶ª­j«æSó©ùÔ/Ÿ“ÏÉçä3òùŒ|Z>-Ÿ–OÊ'å“ò ù„|B>&“ÉGå£òQ9\—Ãå09L“UY•US K²$K²(‹²(dƒlˇåÃòAù |P> Èûä}ò>y¯¼WÞ+ï–wË»å]ò.y—*‡Ê¡òy‡¼CÞ.o—·ËÛämò6y‹¼EÞ"o–7Ë›åMò&y“¼QÞ(o”×Ëëåõò:y¼N^#¯‘×ÈAr$¯’WÉ«ä?å?å?åò y…¼\^./——ÊKå¥òy‰¼D^$/’É å…òBy¾<_ž/Ï“çÉóä¹ò\y®H¤Ò{é½ô^z'½“ÞI±R¬+½‘ÞHo¤)FŠ‘¢¥h)ZŠ’¢¤(é•ôJz%½”^J/¥Ò é…ô\z.=—žJO¥§Òé‰ôDz$=’I¥‡ÒCéô@z Ý—îK÷¥{Ò=éžtWº+Ý•nK·¥ÛÒ-é–tKº!ÝnH×¥ëÒuéªtUº*]‘®HW¤KÒ%é’tQº(]”ÎKç¥óÒ9éœtN:#‘ÎH§¥ÓÒié¤tR:)NH'¤cÒ1é˜tT:*•Â¥p)\ “¤0Ó¯ÿ¦a_2%Q%ƒd Òaé°tX:(”J¤ÒiŸ´OÚ'í‘öH{¤ÝÒni·´SÚ)í”B¥P)T ‘B¤i»´]Ú.m•¶J[¥-Òi‹,KÁÒ&i“´IÚ m6Hë¥õÒzi­´VZ+­‘ÖHk¤ÕÒjiµ´JZ%­’VJ+¥•Ò i…´BZ&-“–IK¥¥ÒRi±´XZ,-’I‹¤Òi4_š/Í—þþþæJs¥¹Òli¶4[š%Í’fI3¥™ÒLi†4Cš!JR 4Mš&M“~“~“~“¦HS¤)Ò$i’4Iš M&Hã¥ñÒxiœ4N'•ÆJc%?ÉOò“ÆHc¤1Òhi´4Z%’FI¿H¿H¿H#¤Òi˜4L& •†JC¥!Òiˆ4X, –|%_ÉWò‘|$i€4@ yKÞ’·ÔOê'õ“úJ}¥¾Ro©·Ô[ê%õ’zI=¤Ré'é'é'©›ÔMê&u•ºJ]¥ÎRg©³ô£ô£ô£ÔQê(u”:H¤R;©ÔNj#µ‘ÚH­¥ÖRk©¥ÔRj)µZH-$/ÉKò’šIͤfR©‰ÔDj,5–K¤FR#©¡ÔPj(5H ¤úR}©¾ä.¹Kî’›ä&¹I.’‹ä"9KÎ’³TGª#Õ‘jKµ¥ÚRM©¦TSª!ÕjHÕ¤jR5©ªTUª*U–*K•¥JR%©’TAª Uœ$'ÉI*'•“ÊIe¤2R©´TZ*-•”JJ%¥R ©„ä(9JŽR1©˜TLr$É^²—ì¥ÂRa©°TH*$’ì$;ÉN*  H¶’­d+å“òIù¤Ÿ‹OŧâSñ‰øD|">‰Ä‡âCñ¡ø@| >ï‹÷Åûâ=ñžxO¼#ÞÅÛâmñ¦xS¼)Þoˆ7Äkâ5ñšxU¼*^/‹—ÅËâ%ñ’xI¼ ^/ˆçÅóâyñ¬xV<+žψgÄSâ)ñ”xR<)ž‹ÇÅãâ1ñ˜xL<"ˆáb¸nzøgú¸oäEADA<,‹‡ÄCâ!ñ€x@< î÷‹ûŽâ^q¯¸GÜ#îw‰»Ä]âNq§¸SÜ!îwˆ!bˆ"n·‰ÛÄ­âVq«¸YÜ,nƒÅ`1XÜ(n7ŠÄ âq¸N\'®׈kÄ 1H W‰«ÄUâŸâŸâŸâ q…¸B\..—‹KÅ¥âRq‰¸D\".‰‹Ä…âBq¡8_œ/Îç‰óÄyâ\q®8Wœ#Î爳ÄYâ,ñwñwñwq†8Cœ!N§‹ÓÅiâ4qšø›ø›ø›8Eœ"N'‰“ÄIâDq¢8Q/ŽÇ‹b€ ŽÇŠcEÑ_ôLjcÄ1â¯â¯â¯â(q”8J)ŽGŠ#Äâq¸8\.‡ŠCÅŸÅŸÅŸÅÁâ`q°8H$}DÑG ˆÞ¢·è-öû‰ýľb_±¯Ø[ì-ö{‰½Ä^b±‡ØCüIüIüIì&v»‰]Å®bW±³ØYì,þ(þ(þ(v;ŠÅb±ƒØNl'¶ÛŠmŶbk±µØZl)¶[Š-Äb ÑKô½Äfb3±™ØDl"6‹ÅÆb#±‘ØHl(6Š Äb±¾X_¬/º‹î¢»è&º‰n¢‹è"ºˆÎ¢³è,ÖëˆuÄÚbm±¶XS¬)Ö«‹ÕÅêb5±šXM¬"V«ˆ•ÅÊbe±¢XQ¬(V+ˆÄòby±¼XN,'–ˈeÄ2bi±´XZ,)–KŠ%Äb ÑQtÅbb1±˜è :ˆ¢½h/Ú‹…ÅÂba± XP,(Ú‰v¢˜_Ì/æmE[ÑVÌ+æóŠyÄ´ù@‹MŽÙ5fט]#a­¶hÚ¢i‹¦zj9ø<ÀÀÒÀô‰Ó'NŸ˜ðSII­¤VRK³˜ Hçâ+ÄWˆ¯PjO©=¥öXC,ÇÈ1rL µ†ZCÍ ‡[n}¸uz¿;Ë{/ï½¼wÂëêÖ©[§nh·É³7foÌ^+úsX ``_ÔÕWg\aþ©dñŸ‹ÿ\ü'õ|)¯”WÊ›x˜šÚe0½y9ì»aß û.w*0…Üéñî¬?´þÐúC ¯¥hÿÐþ¡´Ûä[pbÁ‰'Öm¾°|aùˆ22``_JNcNcÎf£šj6*áçÓ°<¬’£ó”ÎS:OI«Øýœá×¼Žzõ:*([P¶ lMkú[Óß98äàÚvâbccÍÛ‰i‰ê c"&ð…lغa놭æŸGV•\UrUIêø<[zné¹¥gR¢ÓÔ+ƒùj¬æ\:»tvé<>x|ðø»¹ïæ¾›û혷cÞŽ1ý÷¦Ù›foš]wtÝÑuG§íµ|ª­m¶¶ÙÚÆR9M®ù=2­Ö¼ÖþYûgõ,س`Ï‚æß;¸ñàÆƒÓ“Â|’m¦ƒÈÈ€ €¤ºw>ï|Þù”X~`ù ?‰8Tt¨èP‘ôÀ§Šk×<®ùÂà /<œôwgS£$–æ7Âo„ßó?§H«¸ŸÔOê'Y:c§µÖvZûÉgÏiÌiÌ™øµ˜¦›¶†{$‹‹ÅGŠ#Å‘bcccòCß>·ûÜîs{ãÊ+7®¤‡LºôòÖ8R00€Tdšâµl`ÙÀ²ÿòn–vT;ª¥–€„NÕ;UïT=w'w'w§”}£4eËùÄï‰ß?Kç*èWЯ ßƒðáÂ?ïø"D<0Çüø6Ñ6Ñ6ÑÖì™JeúÃÓJ´–j©ê«ª¯ª¾š>qúÄéM÷À29ä¬rV9«y=›þ`Â4µHE뎯;¾î¸¥Çñ„€¹½[önÙ»%5¦NÙr.¶lزaÉŸö9q‰_ÑŠ¶+Ú®hk¥72§1§1çóœÿã|Kå/7¦Ü˜rc^¸½p{áFËO¾öí?Úó0€ €tîØØß,}ý¹¯Î}uî«¡vCí†ÚÕ+R¯H½"%µ’ZI­À’K ,©’³JÎ*9[n]¸uáµ×Ö^[{í͆7ÞlHJILïŠ-™³dÎ’9-붬۲®iªÌB¾…| ùšÞñrêâÔÅ©K—‘]Fv¹Òc¥ÇJ¤?9Îÿuþ¯ó™ÊÖ+{¯ì½²»tvéìÒÙRšÊf»×v¯í^Ó䜦’w;Èäqžã<ÇyJy¥¼RÞ®\?¸¦Þ]KüÞÝ¿tÿÒýK¿~3üfðòöòöò®èRÑ¥¢Kþù7æßhº–†çžkxn̤1“ÆL:]åt•ÓUR»nëÇׯoþdB &à'0—^àf£šj6ÊÒ¹﯒îÈò#Ë,·tÓûµÖyÿxûÇÛ?Þ&,mÞ‹y/æ½X©B¥ •þkcÓ¨j /iÿÉ7¶ÃØc;˜·–FJ#¥‘BýdÀÀ:—”0àU®W¹^åj¶ýÙög?/T0ÅÆæg7=Ξcþù7’ZrpÈÁ!)V)999CJ„”)Ñàeƒ— ^¦lIJhÛ¢m‹¶%gªÉ¤9‡ýöw˜wwwPrÊ|Íÿšÿ5ÿ”m{gÏ8žq´tÆËÁ—ƒ/'ýh¦É¢m2Ûd¶Él~´Æë¯k¼.¥â“‰ßNüvâ·–JnúÓú¤žãƒ>>¸Í÷Ÿ¶}Éø¥ÃK‡—–ÎR,W±\År¥Ø]Ø:'‚>úûÑßþn^Ú©Û§nŸºÝ¼äÖö~jzïoMÔÅ{À00€Î%þôfË›-o¶¬l_Ù¾²}râÄk4šÎkZùµÍ‡6Ú|H~¤šð1trj#ê~Ôý¨û§tžÒyJî/“¤ì]3¹ÑýF÷Ýk¨5ÔjòËiz¿9e‹¸5âÖˆ[æçªv¯Ú½j÷>ï\©qÍs6ÏÙ<–Žœ°=Ó· }õö)ÛnM¡¥³˜fGHÙ3~ù÷›?Od¥ÈJ‘•L;',[ÝÑuG×°œ©7Ò¥—:OíþÖÒ‘GŠ#Å‘"=€¾è\ânFqÉWý|õóÕÏ›ÞIM|ÕÃÏã˜É1“c¦Ï{³7foÌބ࿌M[4mÑÔô[JÝ5“äÇö©÷.]â«0œÜš>$¥ÈYå¬rV»évÓí¦êôæ;òíÈ·#Ÿ)@¢&“Óo¤Ô¹ª««X<£iÞ…”½:ÓÛቯ@OœÚÒc›z‹Àšè\âa€éì§ÓôvWâGž|sòÍÉ7?ïÑêî7ºßèžRaƨQ!£BLïžšo)ö–aNcNcΔ*sRŽsªÞ©z§ê%¿àûgퟵVJÅíR^)¯”×ÒÑüûú÷õïûåÛ¹yùì®M’zwª¢KE—Š.Ÿ›z-ÞÌNþOAr”ÚSjO©=–ÎòwØßa‡¥ìÕEݺußÒË)7¦Ü~f­³¥¥mkZš•€2``Kü¡§é]ÞO=fâÓ*šì[±ožŸWæw>ï|Þù|É0#ùþYüÏâ™8eßuûhÿÑþ£}J•|Á‰'œH|ÂêÔ¨ÿÄÛdQ‡¢ELÿmº^Ï]ž»õúLÓϋųä4æ4æLÙ«KüOU>uš}dœþ6x|ðøàñ–ZÎHq¤8Ränè00€Î%˜©[Û‘“r|kxÐ×<®y\óíÕ¶WÛ^­xDñˆâ_&ý:ôëЯSöZ6®Ü¸rãJKg츳ãÎŽ;“rœ–u[ÖmY×Òq õ õ õÓ¶Í[ŒÕßM|7ñõHú€-]iµ{ÕîU»÷©å1½þ:êuÔë(zû”½Gý úô³tÓ,){u±±±–ΘpmiÆ}ëd{¨Ç¡‡zX*I›m>´ùÀ}Ð``K½0à˼ ˜Vð×®\Mï1›bËå½—÷^ÞÛ´¢pó›ÿØüÇ„]¦lH–øLk$§ìõšÞå²tƺ£ëŽ®;:)å¯úªê«ª¯,çŒãÇ3Ž©ÝæM÷.éwÄ¥³Kg—Îé%:Ê8ðI°Æ¶éÏl2Ûd¶Éü©%4­Eš1{û”½G%µ’ZIÍÒYLëõ¦ìÕ½Îô:ÓëL–ÎXâB‰ %.yÖßßžªwªÞ©z–ÊSC­¡ÖPi9úCL  sÀ–˜&‰5MA9åÔ”SSNu;ÈdkÉ?ÂK‡—/R¶<ñ{â÷Äâû|å–X~`RÊ_jO©=¥öX:νÌ÷2ßËüeZþ•eW–]Yf»×v¯í^Kå1ýßËÁ—ƒ/ëã'Z·°…zðá7ÂoDÂõ_“îàƒCIþ\é«m¤Ô¹*ÛW¶¯lqBæç-ž·xÞâKöQ ËøÿåYs{§ØbwŠY*UÙÀ²ei9úCL  sÀ ÅìÙ³×´¢mÊF_ ' Míø}×÷]ßwMÙvòÏâÿ³ØÒ‹4/Ò¼Hó¤”?ñ‰aSã½ÀäÔä Žƒ:êÈ£=õru¦Õ™VgÚ§þü~™ÉÉÓ¶µ§l;wà<ÀyÀ—œ¥àꌫ3®ÎÐÇ{üó÷´êo_åz•ëU®änH_€ €tŽØDŽ‘cä˜ÒJo(½!9A¯)àtsvsvsöòò )R"¤Ä—|85`Ó1-1_X¾°|aI)¿M´M´M´¥ã˜& ý2-ßtE®Í\›¹6Künòè_¯ý^÷&Ý›to’çAžy$eER}÷ö)ÛÎÛF¶lié,rV9«œ5e¯N,.‹[:c«ò­Ê·*ÏÏrZ±æþ6®y\󏿖J•°à>è 00€Î›&yNz@kš²G¹åz”›cþù7„ªBU¡jRΛ~§€~áöÂí…[ò××Lø6•¹ÈJ‘•"+}™–?éÙ¤g“ž%åŽxy{y{y›V™¥ÇÐkXnL¹1åÆ§Ô¹F¯½zôjKgÙ°uÃÖ [SöêÖZhý!Kg)ŽGŠ´ö´bÍý­iܱT{W{W{W`ý!&йŒ›ÞI*³¸Ìâ2'76½±Ú+{¯ì½²_Úiÿ¥ýɹŠ/§Æôª×ü¯ù_ó·tÆj µ†š”ò'\OÑÜÍ–7[Þl™Úmþd«“­N¶²þUl‘zNÕ;UïT½óÌ0/)÷øS­h»¢íж–Î2ùæä›“o¦ìÕ™Vj·tÆå½—÷^Þ›–ÿåYkw’¿Â=Ò``ËÈpâoŒ™¢ßƒC98ÄÚÞZNü¡ÿ„þúOʶ“íÕ¶WÛ^ÍÒ›j6ªÙ¨¤”¿æîš»kî¶tœ?øéÄO©×ÚM+W»Wí^µ{æg¯Ÿ£~Žú9ªŸ¯~¾úyóÿ[È·o!_b€ô(60606pÝñuÇׯW¤^‘zE’A™ÚöñÁǬïÞ>eÛ¶iR}Kgió}›ïÛ|Ÿ²Wg:¦ÅI§cä9†Ÿ…/)½ô·¦ŸnK-§ö¢Ú‹j/¢çÐ``ËÈp»;íî´»cé{§­š¶jÚª”}ìûeà‰ßNüvâ·)ÛNüûú÷õïk錦ÿ›”ãt;ÈdKÇ9p à@@êµvÓ4°–Ö06½á¾9|søf›Ì6™m2›e˺-붬kÍÓAç¶b_²î»SìN±qžã<Çy&½„ù7æß˜£o?ß~¾ý.\¾pùÂe=?_òýöwØßa_hZݜƜƜÉ_¡³¿Ý?kÿ¬ý³,µŸNk;­í´–ö ?ÀÀ:—‘`KûêÜWç¾J©z¾}/ú^ô— €MoÙ¦XÉiÌiÌYÁ«‚W/Kg )R"¤DR6fÒ˜Ic&Y:ÎÆ•Wn\™í\Ê+å•òZ:ïô‰Ó'NŸ˜°þÓïtÐ3þhÿÑþ£½)Èi¶ýÙög?uUïßÛÿÞþ÷öúžîûËߣ/sưaÂ$þ¶1Þ—”¾ú[ÓŠÔ–Îë7Âo„ßî)€þè\F€ ,)°¤ÀKß³7foÌÞ”ªçħPNÙ8eëY¨*TªZ:~žyäyôs%¾2èÂà /<œ²-üuÔë¨×Q ×qLÈy€óçæå¾}1ú¢¥ri^¤y‘æÖ)eœø…Û ·n|óÇ7|SÑ¥¢KE—¤—¤‘ÒHi¤$ü©¤·OzX2gÉœ%s,kàä“NNþYuÔqPGKgY6lÙ°eÃ뿌ôØß.8±àÄ‚–ξÒc¥ÇJî,€þè\F€39frÌdé{MÀ&¿œÏº=ëö¬›S§.N]¾dܺpë­ '§ä¦·*]:»tvélé,§tžÒyJÒKnZå×Òц}7ì»aߥl ÷òò²]ŸÍs6ÏÙ<–¾7ñ©AÛ|hó¡Í‡ôõÞà“­N¶:ÙjÀ¼óÌKúyMSÎöíÚ?ôŒãÇ3Žó}Ð/?ÜôpÓÃM¶{m÷Úî5?WÂ?Áù¼ãß¿tÿÒýK–®ÅtÞGK-y´„±þËHý­iܱt^SŸÃÐ``ËȰk3×f®Í,}¯iJØä”0²Rd¥ÈJ¦w S6$û2ÁÛØc;Œíø‘98äà¤ó}×÷]ßwµt4ÓI©¶½ëꮫ»®Z\)ùÝÄwß%¥~ÒïtÐé]l`l`làºã뎯;^¯H½"õŠ$½Í—ÚSjO©=¦•¼Ÿú>õ}êËJ«–œø;î츳ãÎÏ[çÕô½–Žœp Z~šR[úío-ý&`7ÝnºÝtÚ€^è\F€'˜P`BÄßü¼Òêq¨Ç¡–¦Áü’pÞ‹y/潘ô#Ç5k×||éñ¥Ç—NüÈ-붬۲îçÕOJM(m‰é­ëâÅ#ŠG˜Ÿ¥†ZC­¡&ý,Ï[0W?Gýõslš½iö¦ÙÜ‘Ôè3?Ï_ûþÚ÷×>Kï'dšu ñ£ÅWˆ¯_!ñiŸMï?žþxúãéÜ÷Ô–~ûÛ7Þlx³!5Æ8X?``ËÈðî7ºßèž0"5gmmmúo9«œUÎz/ú^ô½hÓ›¬/^:¼t0M½hÛ¢m‹¶Õ¯_?>ñX"ñ2›°ÄƒäLûožûV<ñ{â÷Äï혷cÞŽ¹›ûnƒ²e Ê–pÆÄ¯âvåÛ•oWþ¼{7cøŒá3†§^ é2²ËÈ.#-ÝÍãƒ>>øS™0V4×Aî wéO’ÃÔ2?õzÅõŠëwlì±±ÇÆÕ¤vŸ™Úg7Ù‘oG¾ù„?nê£L½â†­¶nØZwtÝÑuG'~Óº­´‡/#ýö·á›Ã7‡o¶t–™}fö™Ù‡û  WÀÀ:—‘à¤'9 ùò-äúuèס_ê÷î|´óÑÎGŸZfÓ´·©q-¦Èm÷±ÝÇvKÎ}¼²ìʲ+ËR£…¬?´þÐúC–Žé7Âo„߈äŸé SÏ–ž[zné™xÝ:F9F9FMz6éÙ¤g¦õe©óôÕzS»¿qkÄ­·h_Fzïoç=÷tÞSKG¾:ãꌫ3¸ËzEL  sÀ¦ ES#Ѝµ¾ÖúZë/_¾lú—­m¶¶ÙÚ&µà¤×OÒô+èWÐÏTžÔ¾ƒ=Êõ(ףܧíþ¥û—î_²tÌ*9«ä¬’3ù%7Åꛟ¥¨CQ‡¢„OŸÇRìÒÙ¥³Kçµ×Ö^[{ ÝúÌäH|ðäøõ_ÿøõÚÆ—¡þÖ4Ö$Új¤GÀÀ:Gü99ÿy`íPÑ¡¢CÅÏ !J\(q¡Ä‹&8KjÀ ¿2áãøOÕîN»;íî˜&¾NÙâ“oN¾9ù¦ùKo(½¡ô†O8WNcNc΄ë5þ×4¤™m2ÛdV¯¨WÔ+_槦ó”ÎS:O¡oùT¦Ø´t÷&Ý›to¢ÕŽjG‰a¾L»ýòõl:ãç­•nR©B¥ •*rpÈÁ!´“/Dým¢cñ”SSNM9Å­Ð7``|¦/³¢djœ=áo½_ô~ÑûEÕWU_U}ezß(_X¾°|ae—Y\f±»“»“»ÓÏe~.ós™¤‡¦U-M_Y¯H½"õŠ8frÌ䘩X®b¹ŠåòÜå¹Ës×àÆƒn|Íÿšÿ5ÿÄK˜”ÇôÖiÕþ¡ýCû‡šÖÑ,Q<¢x„í^Û½¶{+xUðªàÕx]ãu×™'œ¨95î iíaS`ü8*õÚƒõœQßL«JG<ˆxñ€ÚÓ_m‰i½sÓÙ}~ñùÅç—†çžkx®Ü˜rcÊ1õN¦¸‘ÒHi¤˜úFå¡òPyH;±ÎÖbýýmÂ?.1_·ØôOÜe}#&þ#õÞ–ûÔ#§Ô;|Öó ¹!µ‡ÔR›VÐß2õ7R–é϶Ì[WÇwvÜIKÈ€ €«c=“¸&ßÞ-{·ìÝb~¦‰¸MoKsÇÉ÷ÎçÏ;Ÿ„ë't à@Àj # &¬Žžà„ÀòÎ õì|´óÑÎG棌óçÎq2``Àêè/. ý'ôŸÐ̯¥[§nºu⎒Ï4¦˜5»í>¶ûõqVG‡ïËæ4æ4æ4¿Û½¶{m÷òV 9^åz•ëU.óQÆÍÙÍÙÍ™Q £!&¬Ž^'L–³ÊYå¬L HYÓVM[5m•ùÈ"ÇÈ1r õÑVGß+æš_Q‘æEšiY)²Rd%î> é^:¼txé`GŽ,ý¤~R?‰?0Ș€ €«£ïø‰ß¿'~ö®ö®ö®¼ HŽñ¥Ç—_:á8âPÑ¡¢Cŧ¾O}ŸúR?00`uô[ºF»évÓí¦óȦñ¢ _A¿‚~ G“ÍC7Ý<”?*ÈÈ€ €«“àį”6HÜèÕ£W^pìðíçÛϷ〠€«3ñ]b›ž®ô͆7Þl0}*qsvsvsnx®á¹†çx|°$ê~Ôý¨û ÇŽ6ß·ù¾Í÷Œ0!& ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ÿC Oòv$¶£i´K£íxm'¾øv2¶Si´N£íLmgÓh;—FÛù4Ú.¤Ñv1¶K_|»œFÛ•4Ú®¦Ñv-¶ëi´ÝH£ífm·Òh»FÛ4Úî¦Ñvï‹oi´ÝO£íAm¥Ñö0¶Gi´=N£íImOÓh{–FÛó4Ú^¤ÑùÅ·—i´½J£íumQi´E§Ñöwm1i´½I£íŸ4ÚbÓh{›FÛ»4ÚÞ§Ñ÷Å·i´Å§Ñö16cÚla™ÒhËœFÛWi´eI­t‹tB·° 7@Æ¡Ûøyëç­Ÿ·ÖÂRm O£5‰Y˜Õˆ­5⌳qÆY8ã¬=|)¶Œ³öpÆYu8ã¬7œqVfaý­.œVk gœÕ…YW˜…YK˜U„YE8­VÎ8ë³r0k³Z0ë³NpZ­Ì Á¬ lõ«?÷}îûÜW·oR0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0¤°cqÇâŽÅ…5 kÖìhÍ£5Ö¤Nø<Ö~Xûaí‘yGæ™u¹Ìå2—ËP3|ž;Ùïd¿“=Ü3Ü3Üóˆû÷#î±-b[Ķ fô„þ‡—ó^Î{9Oœ+Îçú—ó/ç_Î)«SV§¬¹“­Èò"Ë‹,’gHž!yvGîŽÜùÄö‰í[ê o÷Ü[poAp@p@p@Ï=Gô‘;…8Ëβ³<Ý{º÷tïãw<Þ1& & &€:èÕÛ¬o³¾Ízfü™ñgÆÏ­=·öÜÚý<úyôK©±µ³OgŸÎ>kǬ³vÌ­a·†Ýf_ú|iPé ÒA¥Ë-.·¸ÜâÜidöÙf¸Ÿõ~ÖûY¹/€ôëÊÒ+K¯,õwòwòwJ«QÕc¦ÇL™»2ïʼ+sLHLHL÷½sçþÎýÛ!·Cn­†µÖjXZ­CÏ=?ôü¹j窫Æ}ddæ£dX–°,aY¨¤-`[„1Âq®ú¹ê窷mÛ>6·Uª9¨æ šƒÄÙâlqvüšø5ñk¸uëô6ðmàÛÀ­.[]¶ºØFØFØFXçØ:,밬òÞõºëu׋»°fµ‡ÚC- p@á€ÿ¯½;«1ÿÿ?Îða¶fÚí«´ïÒ®D¢F([c©Dv†IefŒ)3¶ EÈ–†¡±ÌŒ$ 2v"K|lCƒd,©óýãô»ýšÛåô9©8çô¸ŸÛí}ë–ëºÎ¹ÞçåzŸë<»Þ—®² ËX“±&cMÅŠ;wx×Í0d0€fêøœãsŽÏéØ1°càëÜÚÖýEËtì|§«æö‹÷ïh—”;¦Ç!—¿-{¿cbAfï¿ÝWï[VÔññÏÖ!6®f+ò»L¶¿øy¦›{o¯t£uíŒ^ïyU²T²T²vØu`×Ñ¢DðnÞ®é/Ò_¤g~•ùUæW ùâØz´ï »@û1G Ã+æ«´²/ÝÊ*#fÙšLŸá±kÛØÌŠê¹êGëø»Ò¢-‡ JøÈ,ÉÝ&BC¼v¼ÁïªW^ïyl°iÀ¦«k¯®½º–w n]¼uñÖŸì¸ì¸ì×ÝTõ4¿ÔŽ2ìãgÚÎÒ!Rw’±í‰±ççµtü`j›Å¦Nã¦Ç¦vòN8²\ä0ösõE6F¹|ÙË¢W„ã¨Yz!nYO6dLÿþà÷¿?ø´íÓ¶OÛòn0d0€fäN‹;-î´èŸÓ?§Žô'®~·LütuÖ Šuò½Þyp„ï·"Q\\×®ÕþmµÏßëçÈWûˆV“Ô¤mŽ÷ï9Þ;ovÞì¼ï/àÍË?:ÿt}¿öœ<è¸AJŒáê£6É_ÊruŸ5ëüy7·Æj'¸åÝrÐïU0³¥y¦îHÓËj¤m q q q±±±¼¿€7éYÙ³²ge_|ðu@=‚^ÍùÚ£,Ó>íýÙv×Ê”%Ý|€D˜5IDAT|23m¬ÖûÏŒ€#ï:”ôéÊ^¦£B>¼»¾ãþޤI;’D§D§D§x—Ї²‰€¢Ëå‰òÖ+­WZ¯$ý êšíÝÞw]e8²_`FãÆ½Ò·;ÓBU\·:x软ÕWš×œ¢•¢•¢UZZÊÛh:géúß°f&™ïª{ï¼¼¼ly°åÁêÐÿøþãûo_›¾6}mê}Ú9î‘÷‡?–ü[ÖB_‰aðR­v.Ô_ê‘×M¥î½KÛ›¶7m¯¨DT"*¡*ò‹²‰€B9fÌþ˜}Ý'™£ï;š|<-æ÷€IòýÖn«‚GŽܸpï|›+uïï¯-^[¼¨ @½]]]IQKQKù÷§4oÑñîòúJj§<Íìô®åÙÚNuïï{7îݸGê«L½L½LÝ\Ï\Ï\OÒ(£1ÅXżºãœo&ä~!/¡¯¤ÖÑpj—ÅŸÕ=ªN ž<1¸êQÕ£ªGT@C6P… … … uŸXîèòƒk´ü†¾’Ú?OôûÂ3úÜÕXiÒ%ê •¢¢ñ1ñ1ñ1’F½}nê=¦ŒÞWíX,ïÑï¿Úøó‡Ýœ?Ÿ”cîP÷Øz-ìZص0Š ñ½oÿÇ }Ú…·ÞûJÆgGºÊ{ô[»õ˜ÿÓ½¿éœµ»Ø±PÒ¾Û2l˰-U U U T @¾C6{EñEñEÿcÂçKfƒr½Ë/ú­Ý–͈šë¯í"‘•ÀMÀäØU÷«îWÝ%:ê䨭Uõúḛ̈”ÎIŠýÖnŸmý©KFØ Ëa'%õÌ~§ýNû¨€Ð ¥J+$F¿]uÆE›¨Ír>ꦧØÑoívÜ Ÿ7Ø'Iêõõõ‚ÇúõëS?€Úžg=Ïzžååå%iqþ.ùŸŒ!Šý Ûg†uŸzBRŸÌùvηs¾¥~ò‚²‰€\ªªª’tº¨}@-Tµíƒ®ÑöþÉÍ'ú­ÝVžq)°oïö–› D’zéêÍ«7¯Þ¤–bùÇòå“4jtSž j2¼ù„¾ÂvÂö_ö9t•Ô?!ãCƇŒ¯N¯N¯N§–¢jQµ¨:nfÜ̸™’Æ—„Y—³ š[ô[»µ­™`*©¶öÙÚgkJ û€!›€È›'¢'¢'‘±‘±‘±’NïVëØ9¤yF¿µÛç¶±W»ìí¸Ýà”΄½¤_­_­_ý¼ðyáóBÊ š³»*wUîªHU½3‡¤úÍr>Ýͪ9ÀâvÌÚŸ6ÛÝ—ÔW©A©A©AT ['['[GÒxá4cúªÊÍ9ú­Ý¶·é{\ I}URXRXÂ+@¦C63999’N/|3ðïH¢ßÚíƒ.Ñvþ'®Lž4óŽ þFØc&&&•e•e•eT@67–9;svæˆûpnöÜì¹Ù‚=àϬ_0¹qßþ¾ý}{I'Ò¹s{œt #î•ÔžžÞÿœWGI½w²ÓÉN';QcÐÜl,ÙX²±DÒèßþÐ,gmâ^Im7£ ö&£…ý¦ó±ÎÇ:WþZùkå¯Ô4#Þ"o‘·ç=Ï{ž÷„£ƒq§®–ᧉ{%µ^¦Ë« ¼$}&Y»(vQ,%MÀ WÕ»ªwUoIŸƒ_0¹1|ÖðYÃg €¨^v?™¬#╦]’å¿Àn›°MÍLÍLͪŽT©:B¥@sðpÝÃu×I:¹Šy˜ån3ˆˆ·îvÆÐ3®3´3 [«¾â‹þ®øpŇT4Û®o»¾íº¤±ÕË)Ý® ž ·îÖuéÜ!ÙY’úðfÖͬ›YT@Ö7\íkëF,=`ràœñ9ãsÆ’ú¶FGø/&Ü•¦­ 9<0Û|´vkõ¯¸ŠºEn‹\Æh333…cA'×~7ôîJߎ;¾ã3ûµ’>¥Úé2±n}Û“û·ôÜ)ià¬Ô¬Ô¬Ô¤ê@QÝwwÜÝq§}î|h«³±n}ÛήË&½âtÔ®ÿ\ª[F\F\Fœp00öŠëÞ™@·ÞÓAwOŸRpNÒg•Kw/ݽt—ªÈàÆEÜX€È´býbýb}á]%Qy©rÔËG#»þ@ ûzmÿcÖFɾÝV´­h[µŠ*yZò´äiÂãèï‰ fOˆr_¯öÎ-œ%^ûU¾®|]ù:jÏ‹1/Ƽ#éøï>k႟t_¯µS—1¿•°W‡>úpèCj ;€›apCi±¹±¹±¹Âƒxžmh×S„¸ iKœ#5|„}køÂð…á Qš(M”F€"yÒãI'=$ M¿qü]—¢Ü†´ÝîNüÆäw-Êh“Ñ&ƒ‰ @ååäåä½âÈot¡Ë“¾A„¸ i½#V<¬'és˽V÷ZÝã‹u€L ~3ƒë‹€Œ*Ÿ]>»|¶ÄiŠOŒ¸Ø—·ám—K¦»t«…=|Aé‚Ò%êÉÖÔ­©[S…ÇünÇ&4É"¾mx;µ[a¥S‘¤O/Õ«W?¦@‘¸žu=ëzVxÌï˜øM¿ÜB܆·ÖûFô›±JØÃ‹5k.æÖE™@üæKƒ€ŒÊ]˜»0w¡ð0½èVgKÛ‹·ÕLï}Í}ù+î¹=~{üvꉫµ«µ«µð˜?¥(ƒã âÛÆjwévös±v±v±6uŠá¶è¶èö+¾ðÕÌ7oo@pÛX­gôÒŒ}ö’¾Æ¹‰ÜDnT#àí"~»ƒ%! £ttt…‡æÛ݆ºøå¾Éˆôû=¿°{_üì—Býî]Ù­ù4|‚‡eôq{_“—¦êÌÕ(ÒØ¡j¥ÒÏ2EÇFcIÔe»›&…‡úþÚiϛٻËFÄ~$i ¬Š¯Š¯Š§@Þ•--[Z¶Txœ7>lW­ñ¬©јY&6ö7Ó?mp­Ã=êí´ôUât÷˜W«°õò©óGÐ/¦™þ™4õÄ—ËõÝþȲMö¶[Ýß ?¢?LÏμ£z;Õ|õåÄÛï¸0¼¥¾ÇȶVÚF½™8öÄú$›ÊWœ^*ÍUšËì  V´ú£Õ¯8“²»0Q{KSD¡^GT.¼mi1èåÄzNnŸtŽÖH6v°°P¹¦Q¨5VûÝvS þò¹ÚsœÓúDí[^ïYœïÍÔÊ&Íö-¶÷=FóÍÀާ§%, ¾†Q+¢VDQ€·‹X69ÇSާOyÅäω[Úî“Ñï—{=g[}Å4SõÜÚ¦^ݯ9›ÕÞBp¬ùú>Ë&¸Û·;ðKŸ÷RñÏâß×^rsç`çM½¿Nõê~[¸§111Ô$È»hÇhÇhGáqþó=ݺ7EÚs}ü3ÿÚÏ¥ÿÂr€úöÞïÍö°øhÔ®œ0» ñ•ÁÁ#§Ü5­9@÷]UËÚË'ô=ê|RÒö¤†[þ^{yë~kt"–̚d~'ÖkÝt›?Ä?‹_{Éߥé[ÞlêØÁ½K3ôÖ9ow£ãÉš§IW9¨hügPËþn¶?ŒÕûJÙõ/¿\çëð¹ï¢ â+w…!nÝÏb[>®ó¼yµ—× vžâ½ÃjfôÈ„oœÎ&nüq”øgñïÿuųѸÓó›|"èÝË~ÎOö¹O¹O¹O95 x»€e_ó ƒ €Èœ´©iSÓ¦ ¸gž ˆòZÐñçÝQÃZt¶Ù0¾»­SÞŒçz9]Óo«õ·Äû I½åÊ#6ºY¬ÕŽ×°¯›áÐÓt•8`–dx®ýcÓ¸š¿ª^«¯a%ÞNÓÀÆGWù¿¾’°6amÂÚP“ Ç"E‘¢HI#ÎÌÎ]wkÛ¸ÁgÒ½“‹\[k/1x¬zGü,&­íc5?ºâß×ÿ¾öZ’–œÑåô}×/Ú5¹¬¶^¼Œxriñ5Ç’¸ßî7H‹øgñºâí4]<Àma¾å¤W|} û@6… òëBÛ m/´á-C"§NZÞ¸Á§}̤S ÿõGɶ±cæ§ôÿ«0ÜÿÆüÇ>Õ#6×Ü“x„ÙÎH ˜#V<¬¯§_`¼§æºá]]~èsT|ݰÄk‹¿îòNŸšY²Ä늷ÓÔ1°º¡^‰ÑwÂ×SéWéWÉÌU€·†X¾4Ÿ0˜€Ì . . .dŸ ÿ1àYSÄŸ«/tÝåè!ýá^ú-ïLÕpýI¼–Úi•/”ÿºï¥ÔùϺ·S{ù†O=-U{"®_WO‰û«.R©S™ Êß+¯ü=á±Ýye¨‘î_M|-þQêºös}ºcɲå’]a ,ÖÁÉóöDá2Cf,ßcõuͤÊ%jNÊâ5E;«Ö½ýÚË×07V;qéî^‹„=¿ lAÙ‚2*ä׆ 6lØðбõúŒ™[7ò´ˆˆè6êÇš¨µÐàŽ©‹4S:»g.|ðóóÿw‘ìÿ¿X¸¤ƒÁ”viCj–üCu€Ú;~ÈÚ^÷uõ——þ:ㆷf¥a91¹Âž¿¹ûæî›»©LÀÛB,¿; & CfM ù߸!]ýš"þ<“7 ‡Wòwm}ól^Û†Àï¹Ì´°¯þS‡jãÒo¡ö3N*q¹hÕÔAZlã`üŠ»XUVVR™ ŠÛ·+n'<¶÷Žš}ÆÂº)‚ÏÞ¾AÿݦÞÓÔ8?OÛ`áþ–——S™ öøîñÝã+<¶Ç¾¿ÎÜfWSŸƒ-—FYi{Z êj0Öûü熽¥hk_=ll`{VãwáºVÚÞ3µ­‰±§ÙÊÂ¥áô{³=,j¦¬´žè{QÇ¡ ïì}~ˆ›¡°ç5 5 5 ©L_>U>U>UÂ#¼÷ •ç;6u*MkÕ;êÜ´µ¯–ë¶Ku´ñ(ÿ«Õå˜oÿSgÙýbz÷š{ë9]÷zÖÔûå–2/lóaϯVY­²Z…ʼ-ÀŠG1Â``r0d&$»«ZFÈcÜ~±ö)aâµ¶ï™ãr^úuºÕ³¯KÍßbw˜ª3W£¨©'‚þÙ8ÄÒÕD¸¿EEET&È£•*+UVªí‹w8d7aü)¸îVš%NwïÜ®æ `ß5Ѻ†÷…ëê™®S+ª=¹´ô¯äSÿÅ':Ô\±¤ggÞQ½]SOmtÂ6Dcí«>K猵&^í”™vô—7ôvŒüúáÖ“.§g—¯-žÌÙĦ»Å€Í?a]1âùÌ ’`õ%á&SÅÿ*¾ßp=®Çu›ä÷mÍ„Ìê†ÓL5õDÐ}è±çº°çg„ÎJedç³°"‘ß0˜€ ™K¾÷O±Ë‘ÇXw zÕš;6\Þ÷½N¡Ò¯+^¾f2./õgjï7uü‡fß:]îïÞN{;ííDe€<šórÎË9/…Çö©#º:]x3pÝíÌg] <â†ÔLþÜB;GeÇ”¤|CÇ«ÂåkO =Â8[ÉVSúç/_s%îÝwU-›:vL þFדûŒU³ƒiwË‹oþJ_“¾íW _ÊlõL Û÷GÇιT÷T½4ÿÒ¾Usc§¤?WÞþÙÅË‹×U]¦ýQ»!M{uM[pT¸¿1Çüó7• ÏÀŠJ¾Âà²ó_$YÿŸ nNÖò«VùBù/ñZg³¬õÚ!ýºâåÅëÖÞNÓíé»Ú^C©7h–=ä|çíF¿â;þZþîÙ^»æj.ߨèEW­Nµy_R4«R¢æ¤¼Aü¯ãzý¼Ø>Aúg/_óåx­í4Ý>z<øÌ`0õŠ­Ý`‡ùÊe'®Í±lÚ‰e{$ÞÇ÷ÕjtÓNy´qc=&dÖNy´qcÍÓÔÚNÓí¯·ÉJÓCÁÔG;svæìÌ!€Ùlìà.ïS@Nèûk§=Ò¯[¸¡On'mñºæ?kªWÔ÷ÙëÛž?6p¢·#õÍÁôŠ’]¼Þ|è;±å®îC].÷ Õë[ûõ˜üåðLsÀ¨®[æÙÕÜŒ@ÒjO=²í†•¶QÒ?{ìÖõ]lŠ×mm¢¡6³îçjxëc:4Ép õŠM÷×w|w¾­;þzÏYÕÿp±{uªÚΉ>?ùý÷zNnŸtŽ®ý %]Ý[{ hç…É3Õã àÖI^+-Äëª{è;Õ|×ׄ{:låÝÃÀ@.½ØòbË‹-Àð/ò{°¯žñí~¯õó®a®]¤_W|Ï`ñºµ·ÃÀ€†{“W'ŸVóCñóŠ'^l3f–q^Bߣ¡Î'ëÁ:ÙôH×­û¥˜[I¿nŸ³s?µX/^×iUÏhÝš:–t`*“<éŒõmÝXšXLÒºú§='Õì‘õ’سÉO¥ß¾õÈØ€dñºïxý'h_SÀ’îüIÞ'yŸäQ™û¬mÍÔÓ¯¾ú®‰Ö5¼/^×µ ìª^¦ôëºö ÓÒ«¹°ŸfôT›:6:a¢±öUŸ%ŠsÆZ|vÊL;úKc…«»ýªZ{ûÖ#žÏœ ý\‚fy® ¯«zH;CWWКú÷\4XGü{î~­CnK¿}Cm߉!ÖâuM'†˜>×Ô°Gßzì¹.ìù¡3Bg„R™Ùùl  éÅ nçfÏÍž›-}è+^þ͇¾µƒ!3ôaûiòïLÕp­™ºYk‰ê•‚òÓ13zÖ½Öã1—f‰—¯ûKbèa7ƒ¦ÞÓÔ8?OÛWL¨UZ\Z\ZLe€<Úã»Çw¯ðØûþ:s›]M|š[º\ת¹“}'ÏÚã+W8nxà:dÆò=V5S7«­×ì«â?½Ó±«.u¯5}sQ¶Kñòâu‡Æ®èiu¾ ¯ö>?ÄÍðW‰jjR™ ¿|ª|ª|ª„GxïA+Ïvlº«x5w…w©Çº7HÜ/^Ww½Ë2_;a@ë`0¥]ÚšY:f«gjTxîX¶&zÝ[ö¼±Üu'ñòâu>÷]t¡©¯ivK™¶y‚°çW«¬VY­BeÞ`Å#¿¡omÀä`Ȭ‰]ÿ7¤«Ÿ|ÀϦƦwYd™¢c£±Dú-Ìxî¡×a‘xI«‘:×4[¿8â“.¢¦ÞÓA‹mŒ„û[aXaXaHe€<*nWÜ®¸ðØÞ;jö ë¦>£µ2[XÿZó4³•‹•Ý& ܳÆátc]k›tïä"×Öº{ÌÆ«UÔÞ£º× ¼7Nͤuík‘Åw&nº8ñþŸg]¶ {>llØØ°±T&ȯÉ&˜<@x„÷øô‡Ø½mš.VNW9¨è¼0ùqÆ º×ê40­cÞ_êê­2ªù³' Ëðq¥ÂØëèÊ…·Õ Ô}·àÚ­ùѾß)^RÃÄèC³-Þ–+] mêØþÔd›TkaÏæææS™€·…X1(Fè[0™\\\*<˜>)þcÀ3ù €%ma\{çvæ½3éu½cÌ­%CûÍÛóÉ'gÝòG‡;)™ýëËâ̓=œ6õäÏ¢qýºzJŒÞÕEê"u*äQù{åï•¿'<¶;¯ 5Òý«)‚O÷Ûýéo?‹öƒÇªwÄ?÷úiF©yz}[IÏ"Ü#¯GƒG¶ÇÏŸÇìÏu²öûÊuÖÁžË"?2XT{Éߥé[ÞlêÉŸ'.ÝÝËa‘ðu.([P¶ ŒÊùµaÆ 6¼bl½>ãEæÖF¾æõäüN[V¨\Ó(Ô[û¹L‹B»ýÄ~Ñg1ßuOõ,¾–×""¢Û¨kOø,¾û¯xBi©bfeeeee›î¶:¦ÆoZê/Ž“Û|ñd±’qf·ñýâk/ig4îôüÀ¦žüYÜš•†åÄä _íÍÝ7wßÜMeÞ`ù¥x¡omÀdNÚÔ´©iS…Ö3ODy-ÇXÜÎ>æÙÁÊMš!D¥¥ò(å®ó£¼´ÞþföñÑøè*ÿ—¯¸J©MX›°6Ô$ȱHQ¤(RÒˆ3óŸs×ÝÚ6nðÙ>Ö½Hë¼r#©û¹ºu™0Öä ©64[¹XÙ-xä”»¦³›pÚçZí·…ù–“^ñE@öìÙ&ȯ m/´½ÐVx„· ‰œ:iySŸ5÷ñ]¦ýQ»!Ò¡:6é.WÝ´SmÜ(M@+¥Ú´òjåcíÓv_ØÔ¡oíVÝP¯Äè;áË©ô«ô«ô£2o °|Qìз6`2çxÊñ”ã)ƒì¢ÄÎ-m÷Ëo,n÷Ÿë½Æ}ò§î6G“Û/Ö>¥1Lc‡ª•J?ñÏCtl“ï\Þ÷½N¡orœê3Ôý¶pO3b2b2b¨IwÑŽÑŽÑŽÂãüç{ º;uoÜàSë'ý(Õô7‹ÛáY÷l].÷ Õë«dºN­H5_½@ùñÏ®aWõ2Gg+Ùj¾™èWÜ:˜)·Û/Ü£²åeËË–S“ ¿ž&>M|š(<Âk˜´mïÑtñgÍdÎÝFý¨oý…s¬Zïvú½T~ÒpÖÌÕºh¹Âþƒ=>!=¶ÙÆŽ™ŸÒ×G9óã£×÷Ú\§øésÓüåsµç8õ%á&SU,ÔÕÄ?võkrÛÙ)éÏ•7Þdôë¹{ÙÏùi¯H¢Ë}Ê}Ê©IÀÛE,ûšOè[0™óäÑ“GO ¸ÑÚC5tß|, ƒ›z;M>á³ ÷‡s„ù+® ºìwÙï2I roGÞŽ¼yÂã|ÿUßî¶ô{“±hÓµuÆM=ásí6Yýä%W•WÌð!R©ˆDÇDÇDǨIwFFF£½§É’3¿·oê¸îX·á27õöëÛ:žž–°,TØÛ+¢VD­ˆ¢o°ljž¡omÀdT€n€n€®ð|»ÛP¿Ü·+RûbÙˆØÀ$ xUñUñUñT#È»²¥eKË– óƇíª5ž)F,;mì‰õI6•¯8Tš«4W‰jŰú£Õ­~Å™”Ý…‰Ú \Þd8ÚZ¯QÝ„½}ÍîšÝ5;ªðvËBßÚ€Ȩ܅¹ s¾b"è[-m/Ü6V[0½÷5÷åÂ~Žß¿=~;uŠÄÕÚÕÚÕZxÌŸR”¿ÁñÁmcµŽ;ƒ‹t» û¹X»X»X›:Åp[t[tû_øjæ›·· ²m´ÉŸ£—fì³—ôu­ÈMä&r£oðÛEè+ 0U>»|vùlIèÊ#.ö%¾mxÛå’é.Ýja_Pº t«”@¡lMÝšº5UxÌïvlâ@“,‚Û†·S»V:IúôRý¸úqõcê‰ëY׳®g…ÇüމßôË ¾mxk½oD¿«„=¼Xs±æbM* €ß³_+éSÊÃ6Û\ñ!•ÍǶëÛ®o».ilõrJ·+ˆ'Ü­»u]:wHv–¤>¼™u3ëf•5À ·3ggÎÎB߯E @nÜ·¿oß^Ò¡?wn“.aD¼’ÚÓÓûŸóê(©÷Nv:Ùéd'j š›%K6–Hœºý¡YÎÚ½’ÚnFìMF ûMçcu>®üµò×Ê_©1hF¼EÞ"oÏ{ž÷<_ñ‡AƺZ†Ÿ&â•8í³éòê/IŸIÅ.Š]K‰dpÃUõ®ê]՛зq3999’ƒ ß üÅ;’¸·vû K´’¤Kž4óŽ þFØc&&&•e•e•eT@67–Ú×ú60yóDôDô$26262VÒIõÝêa;‡ý>·½ÚeoÇí§tþ#ì%ýjýjýêç…Ï ŸRVМÝU¹«rWEÒ¨ê9$ÝÐoÖóénVD¿cÖþ´Ù¾J J JåÔ ÊÖÉÖÉÖ‘4^8͘¾j…2ѯ¸moÓÿö¸’úª¤°¤°„3V€L#†l" —*‚*‚*‚$"jP Umû k´½róŒ~+OޏØ·w{ËÍ"I½tõæÕ›WoRK±ücùÇòI5º)OP5Þœ£ß ÛÙçÐURÿ„Œ2¾:½:½:ZˆªEբ긙q3ãfJ;\f]Î2hÎѯՈhÍSIý³µÏÖ>[ûPJÙG ÙD @Ž]u¿ê~Õ]Òé¢NŽÚZU¯¿Î KéœÔ|¢ßgÛcê’6Èr˜ÁII=³ßi¿Ó~'ê ´Bi…Ò %I#HWqÑ&j³œÏ‡ºé5ŸèwÜ Ÿ7ØK¼™‚zzzÁcýÇúõ©@mϳžg=Ïr‰r‰r‰’4Ž8—üOÆæýv83¬ûÔ’údηs¾ó-õÀMÀä^Q|Q|Q¼r.™ Êõ.Wìè·lFÔ\mç1úžÚ¿¸ß´xÓâM‹©@Ýf*ÍTš)q4q1Z?9yò©Y®ŽŠýÆÜʲ´éW÷gŒ[;oí¼µ“šHòPë¡ÖC-Õ<Õ<Õ 7õSFï«v,V¨è7þüa7çOÆ'å˜;Ô=¶^ »v-ŒbHã¯ÍmþksÝ#‹E»ð¯âÖ{_ÉøìHWEŠ~=æÿðdïo:gí.v,”´ïö Û2lKUBUBUÕ/ÀMÀÊ1ûcöÇìë>©}ß)Ðìäãi1¿L’ßз*xäˆÀ øÎ·¹R÷þnñÚâµÅ‹ÚÔÛÑÑ•µµµºÇšAóïà.ïÑï”§ùÞµüÂ#[Û©îý½qïÆ½÷(@}•©—©—©›ë™ë™ëIe4¦«˜WwœóÍ„Ü/ä=úu4œÚeñguªƒ'O ®zTõ¨êGÀMÀÐåøËñ—ÿǤÐbÛ]zžp¹/_Ñïðpm­jµÖ*—êÞ»óÌ;0z4\VIVIVIÝãŽe‚ÇVm—‰‡v¯qX-/¡ï̯ÏYºþ7샙Iæ»êÞ;///‡[ly°…z4Ä?¾ÿøþãÛצ¯M_›ºGŸö#dŽ{äýá%ÿ–—зÓR­v.Ô_ê‘×M¥î½KÛ›¶7m¯¨DT"*¡*ò‹²‰€Â*,, >&|Lݧfݵ–ª¯ÞÜ{œ{xõ°‘Þ•µÐ÷tfÿ^~AÍÛèþ“†½kñ®Å»×K¯—^/¥«hYѲ¢eÒü‰•GÚÀ.ž“;ÿöãç²ú&/:õ‹«×ÀÊ´ Þ“f_’[%·JnõrüËñ/ÇS€Fã-òy§f¦f¦fJ3YWÔš¹ØktúõQ2úæ,òÝåcföÉ a¹Òì˾Ãûï;L 0d0E—'Êå­WZ¯´^IYjk¶w{ßqt•áÈ~o+ôÝ™ªâºÕÁCï}­¾Ò¼æ­­­ÊÐÊÐÊPÞv@Óy´àÑ‚G ¢<£<£<¥¡ì¬»¬l§3bJö*[§·ú&DýÔùLÏÉñ fŽÒد¿_¿>ï8 ©ou¼ÕñVÒP~-Gué´kQô®1o+ôu9<ûøÚpÃw|m{ž–æ5‡< yòT|/dÞq€"!†l"ÐŒÜiq§ÅýsúçôÏ‘þÔÚï–‰Ÿ®ÎúA±N¾×;Žðý¶qƒÞ¿ ¢öù{ýâãjñÀj²‘šô¯Íñžã=Ç{çÍΛ7ãý¼yù§óOçŸV®'ÏɃޤĮ>j£‘üÕ©,×F¾ð·¼[ú½ f¶4ÏÔizYí‚ô¯-!.!.!®"¶"¶"–÷ð&=+{Vö¬ì뀯¾~äR5М¯=Ê2íÓÞŸmw­LY²Ñ­qƒ^ï?3޼ëüQÒ§+{™Ž ùxðîúŽû;’v$íHâ](`È&`ÍÔñ9ÇçŸÓ1°c`Ç@å×b?X÷-Ó±ó®šÛ/þÝ¿£]R\zü¶ ìýމ™½ÿv_½oYXQÇÇ?[‡Ø¸š­Èï2Ùþâç™nþí½½ÒÖµ3z½çUÉRÉRÉÚu`×]Dˆ>}À» x»^¤¿H‘žùUæW™_)7€õhß:vöcކWÌWi9d_º•UF̲5™6>Ãc×¶±™ÕsÕÖñw¥E[>”ð‘Y’»M„†þxíxƒßU¯¼ÞóØ4`Ó€MW×^]{u-ï&@ܺxëâ­‹qÙqÙqÙ¯7º©êi~©eØÇÏ:´¥C¤î$cÛcÏÏkéøÁÔ6‹MÆMM?ìäpd¹Èaìçê‹2l6Œrù²—E¯ÇQ³ôBܲ:ŸlȘþýÁï~ðiÛ§mŸ¶åÝ(6`È&`Í[©¨TTzÂù„ó ç>Oû<íóTY&¹Žví:ú·¿-ømAUfUfU&o@6=Ky–ò,e“ç&ÏMž¥¥¥²9¶Nh=¡õ„ÖWƒ¯_ æ]Ȳ›7 n$ê&ê&ê*˰Œ5k2ÖTÜ©¸Sq‡w Ð|C6À¿Ü[zoé½¥wXÜañÛ:y^ðË‚_ür½õõÖ×[ó¾ä×¹¥ç–ž[:Ízšõ4ë·5ªúÏ÷Ÿï?[Ëm-·µ¬È©È©Èá}È£ç>Ï}žûìöÞí½Û;tBè„Ð oklrüÉñ'O8p:áÄûh΀!›€àø;õïÔ¿S[øÛÂßNë0­Ã´Ö­­[[·nø ³Þr½åzËǪŽU«º½l{Ùö²;w4îhÐçÅvmѵE×e'f'f'™4dÒIõe´Ç>}û¾Šý*ö«Ø?Âÿÿ#¼"±"±"‘>(ªg­Ÿµ~ÖúxÒñ¤ãI ;.츰£ŒŒLc­ýãúÇõ[=uõÔÕSK&”L(™ *‰ŠèyYF ìpåáÊÕºè~ û!×C®‡\é^ÏËÕ/W¿\}0õ`êÁÔ<:ðèlû³í϶§gx=WÞ¿òþ•÷   úô9èó´çÓžO{Ò3Š„0(`PÀ  €@A€‚ A ‚0(`PÀ  €@A€‚ A ‚0(`PÀ  €@A€‚ A ‚0(`PÀ  €@A€‚ A ‚0(`PÀ  €@A€‚ A ‚0(`PÀ  €@A€‚ A ‚0(`PÀ  €@A€‚ A ‚0(`PÀ  €@A€‚ A ‚Äÿ`ÇgÝO¨÷¼%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/mapTo.png000066400000000000000000001215211431412030200244530ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTgÃø}Æ$&TE°aEņ("ŠÅÞ5vQì1Æ(Š%Æš(±×(Ø‚Q ±—ŽJl±÷†FcC…`÷÷ÇÞÏy¹ßÍr£‚ìßÏœ3ç9÷#»³×^;ÃòÍÌä0t!Cú@ €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A€ ÷*îUÜ«Øæ±Íc›ô8èqЃ1àݼ^ózÍë5æ˜w`^lblblâ™ g*œ©ÀÈðn®æ½š÷jÞýûöð=à{À÷YËg-Ÿµddô„ ÿÃÃyç=œ'†‹ábxh¥ÐJ¡•Ür»åvË]ð½•X^by‰åà +4¬Ð¶„m ÛîØß±¿cϘôíú‚ë ®/ˆ ‹ ‹ ë5ª×¨^£ f/ÙKö’gÏ žüGÇ?:þÑ19,9,9Œ1èÕóÜÏs?Ï}lⱉÇ&†{†{†{ú÷÷ïïß?£Ž­]Bº„t Y3vÍØ5c/¼<òòHãQãQãQFÀš€à¿Ü_zéý¥å#ÊG”¯´¸ÒâJ‹ f‘9»çìž³ûFî¹oäæ}Ø®³KÏ.=»4Ô-Ô-Ô-«Žªþ³ýgûÏÞšskέ9“£“£“£y_¶è…ï ß¾{}öúìõi5²ÕÈV#³êØ:âĈ#N¯y¼æñš¼/€ìÌü(›+6Wl.FY‹ {‹7Æã×:^ëx­öÏÚ?kÿ¬ Uòâ1Äcˆ8Gœ#ÎI‰L‰L‰ä­X§ç3žÏx>cSýMõ7Õ····ÎcëÈÜ#sÌ}-ðZàµ@Þ5€5»¥ÝÒniaNaNaN­XÄÚˆµk“ï$ßI¾Ã»È>À°N`ÙÔ±iǦ›æààðn_nÝ{:ív(;lvÍkåÜKþžÕ&Æ mq°v qNÛ¼žaZd»‡u×ÈËÚõüg»[PוJãÑîÇDÖñ¯àã½¢Ô†â¥ÞíyíÖÙ­³[·'vOìžXãçÆÏŸón²ÖË/W¼\93rfäÌ÷ùÃqóïGÎO>°V%¯5K¾ÛQÃmW©ù=þTZ,ßW×I}¶2oÝ †±‹ŸxæÞ¼xöÌZÃ~ ½¼ªcÿŠm/—-Xz«óå"_¼ÛóvÝÔuS×M×Ö_[m=ï&Àܾxûâí‹!Q!Q!Qïvt+T¢è÷Ž}K¶÷skU¼bõN£JW=>ìܬœ5>›gqÙšÃ'¯ˆ«é3þÐrcõacŠ,ˆ¨²qpíïÛ”oÓ©ÆàïJÕY×ðÄûÓXx`ágŸ<ûäÙ'¼›}#Ã:€d#wrÜÉq'G—è.Ñ]¢ÓÿÅÕïv?§b¿tk\³Á†=;5˜k4†„4i’Që‡.}eïí=‚|=Ü;=ª<ºTáôo[û5î׸Îõœë9WÞ_À‡§œRN)§ÞöÂC>éìãºJn¾,É3þ…rànã+FãáÃMšdÔúš-}V,ÙZ£ÚÎ çËl²‹ËcŽ2>$98989˜÷ð!=Oxžð<á‡F?4ú¡Ñ[„^—¢³Wœÿe»¯·y¼š±ä×:¾¾‘‘‡gÔÚçψF‡>­•â—«Ú”T çÞ·=îc⎉ƓƓƓ¼Ëý!Ã:€èÝ.ã.ã®_òý’ï—|éÿ‚ºv[Ó¼5†¤”Ô9 "csoú×;ç·²óø­ºW‰¼Ò³Í3f8ÌpxÕêU«W­xÛ™'qNâœÄ9}ë÷­ß·~zŽP­«5åÒþ`àê¡õÆdlèMÿ:1—lçsKUÙ”þßTgÕYuæd¶c¹Žå:–+ýG¨ò~rn\oÏ‚~{†flîMÿºvÜÔcë;–ü¨AÕ–éúOÁ‚ž= zvoó½Í÷6óŽô„ ëD [I=’z$õè8´ãÐŽCÓþ"êÚÜai‘5j`»áu;¾é3èÏ€»Y}-­OEv¹éí׬[¹<%âþÇ>-ÿiùOoÄ߈¿Ïd¬£ËŽ.;º,=ä qïxØµÖ çíƒLϪèkiýâüWol)=ûI­9éy-“rMÊ5)×ë¯G¼Ád£Ñg^ä¼Èy‘é9¹¥ r˜²Ø{ÈŠ±}³*úZZ׋^Ð`¯«këî}bÒóZä89NŽc ô ëD CWÆ]we\z¾vn«ÝòxíÖ–{Ó^²ïØÑËÑáMáÜv—Ò~u±³bgÅÎb>ÞߺËë.¯»œöq§‘_]g§ÈËbºùvµ¶èkiòòP€K[„þRí|گλºwuïê¶<Úòh óð>ž6xÚàiƒU:TéP%í£O…]#‡'ú|ñóå­-úZŒÁÏ«¼3Üy©×®¦vi¿ºù†ù†ùãeãeãefÀv€aÀtåˆû÷#îÿ㾃j¸žø'´¿Ôh”m¥ßÔë”ÀA~ ŸÓ`v•«i¿Þ-Þ[¼·x37oíªñªñêŒÂ3 Ïø÷§üáJ­ã¶}-­omßUϯc£ºuœV§ýzoÞ¿yÿæ}&àm%I(’P¤\‰r%Ê•°t”±ÿ¦´]¹7žÓ~ó­­D_Kë%Ç6^üuÚGÕ¯¿ ü*0%1%1%‘°E`X'0Ø?~ÿøýãÓþb¹£qÐ"~¶}-­ÿ<ÞùÛúýþÇ]ó­Í·6ó.¿5þ:®ÿ¸þãú[:²TÞèz½há¿æîlïWØÖÓï­ MüÞ›«Z‘´­×Û^o{½-“¦{ßþúï83䟫_jbëé7õÚkö¢'±Ø™j=÷[zí}¶ôÙÒgKÊø”ñ)ã™-ÛB†u"°yGÇwô\ðù’k÷Ÿ$ý¥ßÔë„É}§û;Öê\ß1Ÿ¥qØ´xÓâM‹™3€´MÉ7%ß‹G“þáíª–­ðb鏯§u•~ÍÖʃ^uýÒþãöÎÛ;oïdÎ,yìðØá±C¡]…vÚeéhâÞmÔoá~zоækŸ=«_ÿ±Åu^›mý†Z‡A³Í4Ëèkô5ú2s¶‚ ëD`îսV÷Z]K_‹E^_ÈûÞé>3NÔwúM½~¾-ø÷Æm»WìãrÂÒȨ5ÕšjMæÀÜÊ|+ó­´˜~§t´­R”±ÛáÀ&¥õ~S¯ÏH¿ Þ{-I­ˆVDûÇù眙?€Ô^¬{±îźÚ}k÷­Ý×Òq¤ÖO“žFôÒwú5_W:ݧùØã–ÆdÚÜis§ÍeþlÖ‰ À&%7Kn–ÜÌÒ×EÇØÂ­ }ò¨I?wÿIÙ'ý¦^¿:1ðR@‡v*nv1Z¥k·®Ýºv‹¹0QŽ(G”#–ŽS{nVÙ9ûD_óõŨè…>g-OЈ A#Þ¬x³âÍ æÀøÆøÆø&dJÈ”)–޵ÇweKvK¿©×•ö+:¾¬¥ñù­ýoíkÏTX?0¬€­yb|b|Ò#¸Gp`K_ï¾éãÙ0({¦ßÔëUƒ¯56xns9YìcóQr~ãüÆùÍ‹ý/ö¿ØÏ´€ìì®Ý]»»v–Žª#–uû³Üã®Ãó›ÔÉÎØ´>Yñ—„ú÷-Õ¼fóšÍkÆŒD‹*UÌÒñ¢æä «WÌÎé7õºB•.Ïai¬.ÿ2ßXV ëD`c¢½¢½¢½,}9<ÿc·Ý>=H¿©×÷«æ?ÑÒˆM0qÀÄÌ+Ȧš››6ZÚhi£¥æÇŸoj-*ÞîõÐ8cÀ·¤ßÔëÝõ¬«SÀÒ±õ”ã)ÇSŽL.ÈžâÇŽléQ%rpñï݉¾ÿµ.Ùòð—._û„þh>beìËØ—±•ð*áU³ `ÀegôÎèѦ1œ5=jzÔ£fš=â?³~G`6ãû÷î–¾HÇLoq¢v[r¯¥õ© ]Îz{Z½õNÔ;Q9Ùͯ—½üëeKG‡} £ž'÷ZZO2¸_åræãV¬@±Å ¼^ ¯æd#>F£OýûõïÿÛµ"J×kR±ã)r¯¥µwÙåo4oK¿“,^¼ ˜)°Nà÷—Ò.¥]J;K¿ ƒß €ÍðÝ€ï|g~èÛ¦Úïe6xÓ³^²ÎNµ­æcXÖµ¬kY×”C)‡R1Ó ;x¼áñ†Ç,}¹Rs¬h^·1‰7íõ«q-•ùØÅ¹HIó1\ùÅÊ/V~ÁL€ìcë­7¶Þ°tlõ®¹¢š6ŽÐ›öÚcéô^Që,á­u·ÖÝZÇLXðûK}îoÚˆÁéG`Ζ>[úliK;ýG¿õë俘¸›žuJÀ Qå†8æ.ró_΢Γ#†ãd a‘a‘a‘æÇ‚àöíç–CÜMÿúìï›B½-ý–ò8Ïã<ó0ß@ßž÷yÞçyKÇ‚Zv¬êFÜMÿº¼Clj!ËÍG²×¥^—z]b¾¬ øý™‚®)îL7bpÚøC?ÐlB³ Í&˜ïâ-Ú|HÍ+dÝ·]ŸhØ%gý–œ¯Š¾*úª(³ôêîð»Ãï·xÙ祆• ÿ"ë¾íú[‡Þ[*tþ—¯£þÓý§û3ë@ß"B"B"BÌ.¥½Cš7$è¾õå ›¯øF;kéw•Kw/ݽt—Y°àŒE Î(`Ví‚óç Îæ;t»°‚K ö}8¨IÀ"‚î»­»q+_j’ùØn=ºõèÖ£Ì=ЫI¡“B'…þËÝõBÇܨªrßmý°ŠpÁ¿¥/¢I’6$m`î€þ¼úrèË¡–öÿu¿ Ÿ³}XXð‡A ~[`V*ijÒÔ¤©/S||àÅ€DÜ÷_7¾TvÓó>Ÿï|¾óù˜‡ '¿ÍûmÞoóÌ÷ùßß2¡òòíû¯ïý¸/WÃa–~{yóÏ›ÞüÃ<=ñ8ãqÆãŒù>ß3ìÇÎ1ˆ¸ï¿v“vž¼Ú|„]\t1·.Xð‡G N0+þ/¨¼Ý°bÕ‹„ÛŒZkÚ]¯»Ü|œÇm·mÜ6æ!艇›‡›‡›ù>ÿVÉ~ É·µî´²i£R9ÌÇù‚ãÇ ŽÌCЇ¿ÿþ—?øUÊUpkD¸Í¨uý~K#dwKÆ5Ö1Ö1Öa6²8kƒ-!°Rœ95r2ß5ÿÝ´wm¿kNª ÷5ü¶Z^ÓÖ^ ê.ù¼²æ­}¹l`p@~K”q)ãRÆ1ÀÖ%,MXš°Ô|?ïQ§jiÇo¬- *·VÔ®ëÑþpÙÕîλ;qœY4ÆîeÅekÛ/ ª×àžó}å[¥Ô³ûÝ÷°¶íßÿpUzþåëe¾éù¦su Љ5ù×ä_ó/ߤªÿÊqNmkH§Þ‡.¸ÿïŠå»¿þêe‰šuZ7ìg?©tõòåí®Ûïwæøi¥jÕ¿q¹ç{­åðš¿„9®ÜbÍØ¥Œ÷àæÌGûzµëÕ®Wc6²ØzƒS#°:OŸ$>I4ß—ïçØÛÞɪϩÍR IAïæ¥fÿ¯?XÿyÀÃÿ¨Õ©Ü·æc~ÅïŠß?æ$غ»vìÚ±Ë|?å>£hÍV‘Nó.ФàW÷{D–¯Rð-­¾.¯×aë ÀÏÿ<àÖxƒùvÚíŒvFãããæ$Ø:¯R^¥¼J™ïíë—YrZªµ¹´ÎèYö›ËÍ[æïŠÝÓ<-Õ£ÑÈví| F8\ÀÚpS¡ã—µ2ßæ•}Wö]Ù—ÙÈZ`ëD &°:Çf›qlÆ¿\ü9¬aΪª5§ßï õ§Vþ—;ÿYŽ=Ù¾wݿͷ<¢DÿˆþÌI°uýjô«Ñ¯Æ¿\W£õîP¿­ÖMË~ýu-õ¶U­_þFÑ_–÷™ÐܽͱÒëÔÿÈtfðì¾#ö»msö.Þ«pÞÔÿþq¢œÛÿšõdàöíÇ”ô7ó„å Ë–3'Àv= {ö,Ì|o¯•ù¤‚WÖ†RŸøˆ°C튫vÓóÄ6k…ÝB¥ÿl–³Kª‹†•˜YÐã£ï¿ßРúø1 œ/UÍÿjÛÅ} ®)x$õk±º Aï]¶]™o>æ¾I¾I¾IÌI@Ö"[¿ìƒ À¬Îü±óÇÎk¾Ã=ý¤k_ï9ÖKïî“£a•#šW­¹kò ¯•Ô¼îü‰ÃC‹÷%²úœ8¢_Šÿkó-o›§mž¶y˜“`Ãz{{X:B½¹pèV“ÜY|¾ìØý7^P:Ñ%_‘âÿ¹0õ¶ªS療îÿIÿÿ?eúßSÿ”¥™UëCf毹ó_þÅÄÛuþ“óŸœÿÄ|_1¨ÇØQ˳6”º÷u2ü¿þ£äªÁCgÏè`úÿšÇ]ÓÿRîçöonþÏ=Œº~^é´u^ºHÉ—Kýd>ò¯ü^ù½âÊU€,C¶-Ù'€XÀøÀøÀxóì“£~nôÜréšóMöÔðJÿáÁú°ñxHç&õ-nccf&Ø¢¤Ï’>KúÌ|ßÞmy`ßR[C(Ý3láÂ:RoÛÖsáÃjŸKOÐMýS•zNÏ­'_žó…ï¿Ü­pNœ„9 ÌL°]7nܸq£ù¾ÖÉ/#ËÚDZ¾S§¦ƒ6mO‘ý.wÊÖNÏ%ëF†?ÚþâÿNªýÿζ¶ìß6ºŒùÈßÚ{kï­½ÌL@V!Û.}Ç`08dþçOÀ…ôjâg ¹ôô®®-¼'ýôIƒ]U^š¯m2CBš4龸JõÒÿr«ä’É%“K23À](~¡ø…âæûöÅ&\pµ†PºÒ?LuÞíbÎG¬ òZdú)§nŽ· ýl=ç?íÐø_F¾í°¶ÃÚcf€íÝut×Ñ]Í÷ð^_. 6äÉÚDZúM³…]’Š„8k¥÷¹ôò©X/=)·Þ®=öôû— ,[Yv?9ºÊ<7óíܯìWö+ÌL@V!ëƒþb0€ 2[=®ê`+Õvð¼¿úUÍ·?þBü…ø ÌL°Eûìk°¯Á¿|mý³cÝCÖJ·ÅýTÉ#ÿàþ×q#?ë^±œ”þˆ›úìáZ'ªäutµ¢ A8Ü­I9ó‘/Z²hÉ¢%™™`»|S|S|SÌ÷ð>ÝW«aON{]¹]ß³¡ÇSŸ7l¸ÎŒYm74ù5vkìÖØ13Y…¬?úˆÁ`6pÈ?©n¡ŠÀ™½Þ^:¨¢Góí?ªÕŽjÌL°E«ìVÙ­²3ß·_)3Ö·¯õ\0ÙüÂÎéù—ä€c%ÿsð×G{+¿ÌÚî\«šÛlã¿ýnÐÏ7ÖÿäÒz‘óï¶æÐëÙã‡Ç¿¨}jjÒú©Õ]¾)>¿W™*ÍËwý-õ«pKøbÊHë À^µØwÃ|ä'·šÜjr+f&Àz~7 ë‰íÆ`08d.Yè?£Z48³×íð´ÞUóí7Ô3Ô3Ôcf€-šözÚëi¯Í÷í÷Nî«×0Ì:pÚë”*,X;¾C¿”Š-M¯¥ø`ÇJ…þµsçW~%¬mk;5ý¸ä#0èûkÑJe›W¼hýgúÚ_.Ó¡Âjóí·›Z$Ò>¹jÞ!ÁÓ.Yóö{7Y1L;l¾ýýöØÿ!3`=¿€õʶbpëùH€%¿|ܬiM7p¦ßÛ¸ZWGïÞÌ7ȧÊcå°­ôkºão£ãuç:)ÿùƒû{O»9rîeûëÜ~Ÿ2«Ê d¾[´3zgôÎh0ü—Í«×êHÎìõ¹#ݾò©Á|€ìàŸjáFc­?ú^ úÍÞçÕ—u[/=)õö{.ªöÚñÍÑêëòzþ¿£­5nÿȨîëÊÝd¾€¾9ýáñQƒ¶rÇ_Ÿi«»Ä]¨ûf^á_Uß8æÄÂ…%jÖiݰ_êWT«æÄ?WÝ´º-ï³ênؤ—[^ny¹… ÿ…3€9±¬ù à—Ýönlœ>,Ü­ ýŽ"ãí:›¶¹T oùé“ÑîU^¾9°®ñÿwœµÞ€ÍÀØÊÀ–Ö¦Wáܬž!àXê×ÅÀ%lº: ‹ùb¾säÀY{àyîóÜç¹33YXXXlq4eДASÌ÷íÖyà˾¿ð­é±­êTÇy¦í,|ªðGïMr~T©üãD9·ÿ5ë¾é¹03“………EOßXmåÀéÉÀ&E¼œk”2Z[¶tàÖ»Zïj½‹™ÉÂÂÂÂbEÍγ$Ï’<ŒŒþ–]¡»Bw…†|òQÈGéO¿¦Ÿî é¿BÀøIu UìDÎìõöÒA=ʘoÿQí¨vTcf€-Ze·Ên•ù¾ýJ¡˜±¾}­'”^OÚ6¹åA®[Šæ6m¡éÿ>øÃêÕõ¦™þm¥_ÓºV5·ÙÆûÝ Ÿo¬ÿ ¥õ"çÞUqÔkõâ:B¡ÔÛã–<ðÅ”‘é„Ú;«¿6Èô³…:F89Y[ö갨žæ#?¹ÕäV“[13Öó»)22ú` ·Ó£¦GMJô5ýû}S#°Cf«ÇB]À™½žâW¿ê¿\P+þBü…ø ÌL°Eûìk°¯Á¿|mý³cÝCÖJ½›×üµx~Ó¶5Vê:=è"ó÷¶ÅèûŸõˆÃÝš”û—³ÄJ-Y´$3l—oŠoŠoŠùÞ§ûª³q5¬ç,ÞÒEötlœþŸuûb€K˜júY§_j/kPÍÚp³Úni>òkìÖØ­±cf² Xl7ú¦F`‡Ìÿüñ÷¯^MüÀ™·î¾¸Jõҥ̷?¹drÉä’ÌL°EŠ_(~¡¸ù¾}E± ÜC­!”Še–ú{þç.¹v9 )Øäj©ß}WÛpú5>ܤÉÓ>±ÿeäÛk;¬í0f&Ø®Ñ]GwÝÕ|ïõå¢`Cë ÀWØ(P+|Ò?ÝÓþ©zÝæ{îºWä‹«Kù›~´|ÅŽ;Bâ­-»Ÿ]ež›ùÈïWö+ûf& «€õAÑ750«o¾3}rtÀÏž€3e}<¤s“úÓ{ccf&Ø¢¤Ï’>KúÌ|ßÞmy`ßR[C(Ó>Ùÿœ«”蒯Ȣ钹¡…«myÛµÝÏxf̾ÌG~Nœ„9 ÌL°]7nܸq£ù¾ÖÉ/#ËâsdOÌ®·e¥ÝuûýÃRo[Ù£­š÷ní¾àëþ?U2]깺Ë7Åç÷*ß©SÓÁ?§¾à³é J[Û]Š]ãÛF÷1ù[{oí½µ—™ È*`Û¥¿è›€Õ™?vþØùcÍw¬§Ÿtíë=‡œëÄýRü_ÿËYJyÚæi›‡9 6¬‡±‡±‡¥/-o.ºÕ$wÖ†R¿”:]œ\ fë À‡ÌÌ_sç¿ü! *6*6Љ ¶ëü'ç?9ÿ‰ù¾bP±£–[C(ýÏ}|—9æ/Þ+ýÇÐb.UVÔ¾VÇqF⯿ZÛ¹¿¦u‘’%.—úÉ|Ë_ù½ò{åÇÌd°mÑwôM Àê›qlƱæ;Ùa sVU À™±Ž=Ù¾wݿͷ<¢DÿˆþÌI°uýjô«Ñ¯†ù~þïÖ»Cý¶fm(-U ÄÂÂ[ô€Û·kSÒß| –',OXΜÛõ,ìYس0ó=¼½Væ“ ^Ö“Kÿs1çNšþÙQqû¶VpávÅ;9·±ûݾVч‹WºïvÙçÔbkÕࡳgtð-YàpëL¿õ÷.Û®Ì7sß$ß$ß$æ$ k€­_ö‰¾©€X'‰OŸ$šïpË÷sìmïd+÷ÓMƒ­;‡ÿQ«S¹oÍÇüŠß¿+ü—Ô`óvìÚ±kÇ.óý|”ûŒ¢5GØî}v­sýüÏn7˜¶ÑÎhg411aN€­ó*åUÊ«”ùÞ¾~™%§¥ Ö–ÓκÖ}S¯kœ ¿¬•ùh¯ì»²ïʾÌF@Ö"[§ì}S#°Rœ95rú—s•šö®íc[Øš×/— Èo逗2.e\Ê8f#غ„¥ K–šïç=êT-íø É6c×û®êQ¯Â¿|Ì7=ßô|ÌFЇ5ù×ä_ó/ߤªÿÊqNmkŽ©¶¸v)ã=¸y#óѾ^ízµëÕ˜€¬E¶DßÔÀ¬TLxLxLø¿\úvÊU/n3j­Mhw½îróq·mܶqÛ˜‡ 'nnnæûü[=v&û5$ÜfÔºÓʦJå0ç Ž/82@þ6þmüû_þà[T)WÁ­É6Ã.þÜoi„ìnñÖuŒuŒu˜€¬EÎZD_KÀ¬TÒÔ¤©IS-í _x1 ùöý×/•ÝãôÆ|„Ïç;Ÿïë˵zØûV7Û’/K¾,ùÒ8ß8ß8Ÿzò¤Å“OZXú"”ì©.hô3÷}ÖÓÊ Ù\ù{ó±È‘'"3ôgWô®è]Ñæ{þRç?éÐŒ|û>kŸN«Ä•°ô{Ëý\÷sÝçë«@þ0ˆ¾o‹ Àª]p¾à|ÁÙ|ÇmVpiÁ¾¯5 XDÊ}·u—#nåKM2Û­G·Ýz”¹z5)tRè¤Ð¹ÉBè˜U"î»­V.ø7°ô…3iCÒ†¤ Ì=П—C_}9ÔÒþ¿îwás¶'å¾ÛºZÁá³s™jïǽ÷~ÌÜXpæ!ú¾0ÐlB³ Í&˜ïÊ-Ú|HÍ+¤Ü·]ŸhØ%gý/¯]ôUÑW\J tëîð»Ãï·tx°Ô°²á_Ý·]ëÐ{K…ÎÿòµÓºÿtfè[DHDHDˆùQÀ¥´wHó†¤Ü·]{7_ñvÖÒï*—î^º{é.³`=À‹è›QÀlÀÙÒgKŸ-miçþè·~ü“uÓ³N 4 ªÜÇÜEnšdLŽ˜1 [‹ ‹ ‹4?·o?·ì‚nú×gßêhé·”ÇyçyÌÅŸ@çž÷yÞçyKÇ‚Zv¬êFÖMÿº¼Clj!ËÍG²×¥^—z]b¾¬ øý}3è`3|7à»ß™ïèû¶©ö{™ ÄÝô¬—¬óŸSm«ù–u-ëZÖ5åPÊ¡”CÌ4Èox¼áñK_¢Ô+š×mLÜM{ýjF\Ë€Fe>vq.RÒ| W~±ò‹•_0Ó ûØzcë­7,[½k®¨¦#öX:½WÔ:KcxkÝ­u·Ö1ÓÖ†üþvFïŒÞMôÍX`6ãû÷î–vý1Ó[œ¨Ý–Äki}jB—³Þž–FïD½õNÔcŽ@vóëå_/ÿzÙâå ûF5FŸú÷ë߯ßüèPº^“ŠO‘x-^ö¹ìò7š·¥ßI/^ÌX'ðûKi—Ò.¥Ñ7c€ؘh¯h¯h/Kƒó?vÛíӃܛzý¨q¿jþ-ØÄLÀ¼€lª©±©±i£¥–6Zj~Œðù¦Ö¢âí^3|KîM½Þ]Áº:,[O9žr<åÈä€ì)~püàøÁ–ŽU"ÿÞÜû_벑-éòµOHàæ#VƾŒ}ûW ¯^%0»Ö‰œQRŸLô}`¶æ‰ñ‰ñIàÁ=‚-}©¾û¦gà ÒÁ×<·¹œ,ö±ù(9¿q~ãüæÅþû_ìgZ@vv×î®Ý];KGÕ˺ýYnƒq×áùMê~OVü%áßÎë2™×l^³y|5£ŠE‹*féxQsò„Õ+ ’~Më Uºü=<‡¥±º¼ÿòþË|cX50¬€MJn–Ü,¹™¥¯ˆŽ±…[úäQ“~îþ“²gú}ubीí*TÜìb´4J×n]»uís `¢QŽ(G,5¦öܬ²svN¿£¢úœµ4>A#‚Fx³âÍŠ7+˜Kããã›)!SB¦X:vÔÿÝ•u.Ù9ýVØ¯èø²–Æç·ö¿µÿ­=S `ýÀ°N`6ìZÝku¯Õµôu±Xtáõ…¼ïî3£áÄì“~Ÿo þ½qDÛîû¸œ°42jMµ¦Z“ù0·2ßÊ|+óY:‚Lé2h[¥(c·ÃMJgŸô{FúUðÞkiLŠhE´"Ú?Îÿ8ÿãÌü¤öbÝ‹u/ÖÕî[»oí¾–Ž#µ~šô4¢WvK¿•N÷i>ö¸¥1™6wÚÜis™?[A†u"°yGÇwt\Á4]rí㓤ïô›0¹ïtÇZCë;ZüÃý¦Å›oZÌœ¤mJ¾)ù¦X<šôoWµl…KÄ5>­ïô«¸Átk‹¾/ÎxÕøÆ–Ò³ŸÔš“ž×2)פ\“r½ñzÄëÌ@†ñ1ú}æE΋œ™žã‘[Ê ‡)‹½‡¬¸Û×ê¢oô‚{|]][w×"ÇÉqrS `X'0½ÛeÜeÜõK¾_òý’¯`º­ÝÖ4o!)%uˆÈªè»s~+;ߪ{•ÈëÐ!=Û<Ãa†Ã ‡W­^µzÕŠ·yç$ÎIœÓ·~ßú}ë§çÕºZÃQ.í®ZoLVEßÄ\²ÿ͹›¾.UeSúPUgÕ™wÙŽå:–ëX®ô¡ÊûuÊ9¸q½= úíšUÑ·vÜÔcë;–ü¨AÕ–§Ò³ÍAÏ‚ž=3Ý ™w '`X'0€läNŽ;9îäèÝ%ºKtú¿ZûÝ.ãçTì—nÍ‚k6¸Ñ°g§s36ô>té+û{oïäëáÞéQåÑ¥ §Ûjܯq¿Æýs®ç\Ϲòþ><å”rJ9Uð- ù¤³ë*¹ù²$ÏøÊ»¯dlî½°fËAŸK¶‡Ö¨¶³Âù2›ìG¦ÛƇŒ’œœÌû øž'[™·îÃØÅOãùŒç36ÕßTS}ûxûxûxë<¶ŽÌ=2÷ÈÜׯ^ ä]X³[Ú-í–æææTЊE¬X±6ùNòä;¼k€ìƒ ëD€ÿréý¥÷—F”(Q¾ÒâJ‹+-Ϊ/ÏsvÏÙ=g÷Ü7rßÈÍû°]g—ž]zvi¨[¨[¨[VUýgûÏöŸ½5çÖœ[s&G'G'Gó¾lÑ ß¾/|÷úìõÙëÓjd«‘­FfÕ±uĉ'Fœ8^óxÍã5y_ÙÖ‰ ÿÃÃyç=œ'†‹ábxh¥ÐJ¡•Ür»åvËýþ_˜K,/±¼Äòa…†Vh[¶„m wìïØß±gÌúv}Áõ×D…E…E…õÕkT¯QõÇh/ÙKö’gÏ žüGÇ?:þÑ19,9,9Œ1èÕóÜÏs?Ï}lⱉÇ&†{†{†{ú÷÷ïïß?£Ž­]Bº„t Y3vÍØ5c/¼<òòHãQãQãQFÀš€ ƒÅ½Š{÷*¶ylóØæ=zô`Lx7¯×¼^ózÍy昛››x¦Â™ g*02¼›«y¯æ½šwÀþ€ý|øð}ÖòYËg-=!€N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :Aø 86Wl®Ø\ Û0uR0Ø<0èD¶ À¦ÿ=6glÎØœ±9bsÄæÐÞho´7ZŠ–¢¥h¯´WÚ+í¥öR{©=מkϵgÚ3í™öD{¢=Ñ’µd-YKÒ’´$-QKÔµÇÚcí±öP{¨=Ô´-A»¯Ý×îk÷´{Ú=íŽvG»£ý­ý­ý­ÝÒni·´¿´¿´¿´Ú 톯ÅkñÚ5íšvM»ª]Õ®j—µËÚeí’vI»¤]Ô.jµóÚyí¼vN;§ÓÎhg´3Úií´vZ;©ÔNj'´Ú íOíOíOí˜vL;¦ÑŽhG´ÃÚaí°ö‡ö‡ö‡§ÅiqÚAí vPÛ¯í×ök±Z¬«©šª©š¢)š¢Iš¤Iš¨‰š¨4ƒfÐöiû´}Úm¶GÛ­íÖvk;µÚNm‡¶CÛ¡mÓ¶iÛ´­ÚVm«ö»ö»ö»ö›ö›ö›­EkÑÚfm³¶YÛ¤mÒ6iµÚF-J‹Ò¢´ Úmƒ¶^[¯­×ÖjkµµÚm¶F‹Ð"´mµ¶Z[­­ÒVi«´•ÚJm¥¶B[¡­Ð–iË´eÚRm©¶T[¬-Ök‹´EÚ"m¶@[ Í׿k󵟴Ÿ´Ÿ´p-\ ׿hs´9ÚÚÚÚlm¶6[›¥ÍÒfi3µ™ÚLmº6]›®MÓ¦iÓ´©ÚTmªööö6Y›¬MÖ&i“´IZ˜¦…i´ Ú-T ÕBµqÚ8mœö­ö­ö­6F£ÑFk£µÑÚ×Ú×Ú×ÚWÚWÚWÚHm¤6R¡ÐFhôaÚ0m¨6Tª Ökƒµ-D ÑjµZ°¬kýµþZ­ŸÖOë§õÑúh}´ÞZo­·ÖSë©õÔ¾Ô¾Ô¾ÔºkݵîZ7­›ÖMëªuÕºjµÎZg­“ÖIë¤uÐ:h´öZ{­½ÖVk«µÕÚhm´6Z+­•ÖJ Ò‚´ ­…ÖBk¡jZ ÖLk¦5ÓšjMµ¦Z€ hµÆZcÍ_ó×üµ†ZC­¡æ§ùi~𝿫ùj>šæ£Õ×êkõ5/ÍKóÒêjuµºš§æ©yjš‡æ¡ÕÖjkµµšZM­¦VC«¡ÕÐÜ5wÍ]«¦UÓªiU´*ZÍMsÓÜ´JZ%­’VQ«¨UÔ*h´ Z9­œVNsÕ\5W­ŒVF+£•ÖJk¥µ’ZI­¤æ¢¹h.Z ­„VBsÒœ4'­˜VL+¦9jŽš£VT+ªÕì5{Í^+¬Ö k…´BZ!­ VP+¨Ð h´|Z>-Ÿö…ö…ö…ö¹ö¹ö¹ö™ö™ö™ö©ö©ö©–GË£åÑ>Ö>Ö>Öri¹´\ÚGÚGÚGZ-‡–C5ªFÕ¨¦¨)jŠúZ}­¾V_ª/Õ—ê õ…úB}¦>SŸ©OÕ§êS5YMV“ÕÔÔÔD5QMT«ÕÇê#õ‘úHMPÔõú@} ÞSï©÷Ô»ê]õ®ú·ú·ú·z[½­ÞVÿRÿRÿRoª7Õ›j¼¯Æ«×ÕëêuõªzU½ª^Q¯¨WÔKê%õ’zQ½¨^TÏ«çÕóê9õœzN=£žQϨ§ÕÓêiõ”zJ=¥žPO¨'Ôãêqõ¸zL=¦SªGÕ£êaõ°zX=¤R©qjœ§TªÕýê~u¿«Æª±ª‰¢*ª¢Jª¤Jª¨Šª¨TƒjP÷©ûÔ}êuºGÝ­îVw«;ÕêNu‡ºCÝ¡nS·©ÛÔ­êVu«ú»ú»ú»ú›ú›ú›­F«Ñêfu³ºYݤnR7©ÕêF5JR£Ô êuƒº^]¯®WתkÕµêuºFP#ÔuµºZ]­þ¬þ¬þ¬®TWª+Õåêru¹ºL]¦.S—¨KÔ%êbu±ºX]¨.Tª Ôêu¾:_¯þ¤þ¤þ¤†«áj¸:G£ÎQTTTg«³ÕÙê,u–:K¡ÎPg¨ÓÕéêtõ{õ{õ{uª:UªNQ§¨SÔÉêdu²:Q¨NTÃÔ05L¯ŽWÇ«¡j¨ªŽUǪcÕoÕoÕoÕoÔoÔoÔÑêhu´:J¥ŽR¿R¿R¿RG¨#Ôêpu¸:\¦S‡©CÔ!êu°:X¬R©ƒÔê@u :@ Pû«ýÕþj_µ¯ÚWí£öQû¨½Ô^j/µ§ÚSí©öP{¨=Ôîjwµ»ÚUíªvU»¨]Ô.j'µ“ÚIí¨vT;ªíÕöj{µÚNm§¶QÛ¨mÔÖjkµµ¤©AjKµ¥ÚR TÕ@µ¹Ú\m®6U›ªMÕ&jµ‰ ¨j#µ‘ÚHõWýUÕOõSýÔjµê£ú¨>ª·ê­z«^ª—ê¥ÖSë©õTOÕSõTë¨uÔ:jmµ¶Z[­¥ÖRk©5Ôj µºZ]­®VS«©ÕÔªjUµªê¦º©njeµ²ZY­¨VT+ªÔ jµœZN-§ºª®ª«ZF-£–QK«¥ÕÒjIµ¤ZRuQ]Tµ„ZB-¡:©Nª“ZL-¦SUGÕQuPTÕ^µWíÕ"jµˆZH-¤RíT;ÕN- P ¨ùÕüj~õ õ õ õsõsõsõ3õ3õ3õSõSõS5šGÍ£~¬~¬~¬æRs©¹ÔÔÔÔj5‡bTŒŠQIQR”åµòZy­¼T^*/•Ê å…òLy¦J¥ÒKé¥ôRz*=•žJ¥‡ÒCé®tWº+]•®JW¥‹ÒEé¢tR:)”ŽJG¥£Ò^i¯´WÚ)í”vJ¥ÒFi­´VZ+AJ¤´TZ*-•@%P Tš+Í•æJS¥©ÒTi¢4Qš(•ÆJc¥‘ÒHi¤4T* ?ÅOñS( ”Šâ£ø(ÞŠ·â­x)^Š—RO©§ÔS<OÅS©£ÔQê(µ•ÚJm¥–RK©¥ÔPj(5”êJu¥ºRM©¦TSª*U•ªŠ›â¦¸)••ÊJe¥¢RQ©¨TP*(”rJ9¥œâª¸*®J¥ŒRF)­”VJ+%•’JIÅEqQ\”J ¥„â¤8)NJ1¥˜RLqTG¥¨RT)ªØ+öнRX)¬V )…”BJA¥ RP) P (ù”|J>å å å %¯’WÉ«|¦|¦|¦|¢|¢|¢äQò(y”ÜJn%·’KÉ¥äRr*9•œJ%‡’C~#¿‘ßÈ)rŠœ"¿’_ɯä—òKù¥ü\~.?—ŸÉÏägòù‰üDN–“åd9IN’“äD9QN”ÉäGòCù¡üP~ ?È÷åûò}ù®|W¾+ß‘ïÈwäÛòmù¶|K¾%ß’oÊ7å›ò ù†|C¾._—¯Ë×äkò5ùŠ|E¾"_–/Ë—å‹òEù¢|A¾ _ÏÉçäsòYù¬|V>-Ÿ–O˧äSò)ù„|B>!—ËÇåcò1ù˜|T>*•ˇåÃò!ù|HŽ“ãä8ù |P>(ï—÷ËûåX9VŽ•UY•UÓ@–dI–dQeQ6ÈÙ ï“÷Éûä=òy¼[Þ-ï–wÊ;åòy‡¼CÞ&o“·É[å­òV9FŽ‘cäßäßäßä-òy‹¼YÞ,o–•••7Êåò/ò/ò/òyƒ¼A^'¯“×ÉkåµòZ9RŽ”#å9BŽWÉ«äUòÏòÏòÏò y…¼B^./——ËKå¥òRy‰¼D^"/’É‹ä…òBy¡<_ž/Ï—çÉóäyr¸.‡Ëså¹ò\ùGùGùGùùùy–R}©¾T_ò’¼$/©®TWª+yJž’§ä!yHRm©¶T[ª)Õ”jJ5¤R É]r—Ü¥jR5©šTEª"U‘Ü$7ÉMª$U’*I¤ R©¼T^*/¹J®’«TV*+••JK¥¥ÒR)©”TJr‘\$ÉYr–œ%'ÉIr’ŠKť⒣ä(9J’ƒä ÙKö’½TD*"‘ I…¤B’d'ÙI¤R)¿”_Ê/}!}!}!}.}.}.}&}&}&}*}*}*å‘òHy¤¥¥¥\R.)—”SÊ)å”rH9¤âñøFLSÄñ•øJ|%¾_Š/Åçâsñ¹øL|&>ŸˆOÄ'b²˜,&‹Ib’˜$&Љb¢øH|$>ŠŇâñø@¼/Þï‹wÅ»â]ñŽxG¼#Þo‹·Å[â-ñ–xS¼)Þoˆ7Äâuñºx]¼*^¯ŠWÄ+âñ’xI¼$^/ŠÅóâyñ¼xN<'žψgÄ3âiñ´xZ<)žOŠ'Äâ ñOñOñOñ˜xL<&ˆGÄÃâañ°ø‡ø‡ø‡'Ɖqâñ€x@Ü/î÷›þøgúºo:È‹&‚(ˆ‚¸OÜ'î÷Š{Žânq·¸[Ü%îw‰;Äâq»¸]Ü.n·Š[ÅßÅßÅßÅßÄßÄßÄh1ZŒ7‹›ÅÍâ&q“¸IÜ(n7ŠQb”%n7ˆÄõâzq½¸V\+®#ÅH1RŒ#Äq•¸J\%þ,þ,þ,®Wˆ+Äåârq¹¸T\*.—ˆKÄ%â"q‘¸H\(.ŠóÅùâ|qž8Oœ'†‹áb¸8Wœ+Îg‰³ÄYâLq¦8Sœ.N§‹ß‹ß‹ß‹SÅ©âTqŠ8Eœ"N'‹“ʼnâDq¢&†‰aâxq¼8^ CÅPq¬8V+~+~+~+~#~#~#ŽG‹£ÅQâ(q”ø•ø•ø•8B!އ‹ÃÅáâPq¨8T"‡ˆ!bˆ"ŠÅ`1X û‹ýÅþb?±ŸØOì#öûˆ½ÅÞbo±§ØSì)~)~)~)v»‹ÝÅnb7±›ØEì"v;‹ÅÎbG±£ØQì v;ˆíÄvb;±­ØVl+¶[‹­Å 1H [Š-Å–b (ŠÍÅæbs±©ØTl*6›ˆMÄÆbc±±ØHl$6Рņ¢Ÿè'ú‰¾¢¯è+úˆ>¢X_¬/Ö½D/ÑK¬+Ö늞¢§è)zˆ¢‡XK¬%ÖkŠ5Åšbu±ºX]tÝEw±ªXU¬*V«ˆUÄÊbe±²XI¬$V+ˆÄ by±¼X^t]EW±¬XV,+–K‹¥ÅRb)±”è"ºˆ.¢³è,:‹N¢“è$‹‰ÅDGÑQt‹ŠEÅ¢¢½h/Ú‹…ÅÂba±XH,$ ŠÅb±€˜OÌ'æ¿¿¿óŠyżâgâgâgâ'â'â'b1˜GÌ-æs‹‰‰‰9ÅœbNÁ(£ðFx#¼^ ¯…×Â+á•ðJx!¼^Ï…çÂsá©ðTx*<žO„„„„$!IH …ÇÂ#á‘ðHH„á¾p_¸/Üî ÷„;ÂáŽð·ð·ð·pK¸%Üþþþn7„B¼/Ä ×„kÂ5áªpU¸*\. —…KÂ%á’pA¸ \Î ç…óÂYá¬pV8-œN §„SÂ)á„pB8!Ž Ç…cÂ1á˜pT8* ‡…ÃÂ!ápHˆâ„8á pP8(ìö û…X!VˆTATAdA$A$ÁÄ ƒ°WØ+ìö{„=Â.a—°KØ)ìv Û…íÂva›°MØ&ü.ü.ü.Ä1BŒ-D ÑÂa‹°EØ$l6 …ÂF!Jˆ¢„ Âaƒ°^X/¬Ö k…µÂa°Fˆ"„aµ°ZX-ü,ü,ü,¬V +…åÂra¹°LX&,–K„%Â"a‘°HX(, ó…ùÂ|až0O˜'„ áB¸0W˜+Ì~~~~~~f ³„YÂLa¦0S˜.L¦ Ó„iÂ4aª0U˜*L¦S„ÉÂda²0Q˜(L„0!L/ŒÆ ¡B¨*ŒÆ c…o…o…o…o„o„o„ÑÂha´0J%Œ¾¾¾F#„Â0a˜0L* † ƒ…ÁÂ`!DB„Â@a , ÁB¡¿Ð_è'ôú }„>B¡·Ð[è-ôz =…/…/…/…îBw¡»ÐUè*tº]„.B'¡“ÐIè(t: í…öB{¡ÐNh'´Úm„ÖBk¡µ$ ABK¡¥ÐR…@¡™ÐLh&4š M…!@ …Æ‚¿à/ø …†BC¡Ð@h ø ¾‚¯à-x ÞB}¡¾P_¨'Ôê u…ºB]¡ŽPG¨#Ôj µ…ZB-¡–PC¨!Ôª Õ…êB5¡šPM¨*Tª n‚›à&T* •…ŠBE¡¢PA¨ TÊ å„rBY¡¬PV(#”Ê¥„RB)¡¤PR()8 ΂³PB(!”Š Å…âB1¡˜PLp¡¨PT(*ŠE„BB!¡`'Ø vB¡€P@È/äò ___Ÿ Ÿ Ÿ Ÿ Ÿ Ÿ Ÿ Ÿ Ÿ y„ïÆ4z¦‘4ªi„M£Íø¶ˆL€l„l‹Þ8¿q~ãÜ¢s‹Î-:§™ð¢áE˦ý³i­þÆêÝ^ïœÚsjÏ©ú_¶lÖ²YËf¦‘g¿Ø0²°-š9yæä™“S‰«æª¹j鉸éa=Õ»½ÞäÉ;’wdŸLè˜ Ùضœ›unÖ¹Yæc²øçÅ?/þ9=@Nÿë]phÁ¡‡RÿË"±Eb‹Ä’ÛB&@6²gØža{†­h›1KÚ™-£žE*,– g»·*¿1¿1óošÓü›Ô£Zil¥±•Ʀ?I€ÓÿzŸÍx6ãÙ óoºø6{ÀV€ À€w”Ýî/û!­ß´~ÓúM棺Êu•ë*׌zÀæ–÷YÞgyf5`»À`À;"g†!/B^„TTyPåA©ÇÓ¥ªKU—ªo;¶à·}½–ήX%°JàËn/»½ìÆ,¬˜ xGàÌ`é ÔažÃ<‡y¾íØV­_µ~ÕúæV­Jµ*Õªèïʨ×ËÜl˜ xGD²Œõ|ìó±ÏÇVœQqFÅ9U;¨Ô¾ícö¬Ô³RÏJæÖ«X¯b½Šéïʨ×+ç–s˹ÍÇtf¶é,mf,`À`À;"g¬µ¬ýcí–¢ã»êÜrsËÍ-gþ˜áEˆÕßfÔë}ãüÆù33°E`0`uâÆÿûbéßÿèøGÇ?á8Âq„cƒ J4(᪹j®šÃ‡%Kªç¯ž¿zþÖN­Z;­9¿æüšóOÖ?Yÿd}z¶äθ;ãîŒ[2wÉÜ%sƒêÕ ªWÝXÝXÝX|pñÁÅWl\±qn]ݺºuí:ºë讣Wú¯ô_éŸþÇ'þ:ñ׉¿LÛÖ;oï¼½óÖïR¿Ký.¦TfÚ6ûö;ìw”N,X:Ñ´åäryBÀ„€ Ra©°Tøµ÷kï×Þ™÷®¥ýÞÝ8}ãôÓß¾7|o   6]À¶è†¢Šn0½–FÇot|ì”±SÆN9Zýhõ£Õ­g®ÚJ{TàQG¢&FMŒšhš->^>^>^å¶—Û^n»ižTX\aq…žn¾n¾n½_õ~ÕûÕÆGlaúÙ³~)~)~)æ#9Éa’Ã$‡w{LÓ<7LÓ®úû$fìëßa|‡ñÌ­±ÒXi¬p´¬˜ XôD5S”jÿgû?ÛÿY𘲱ù³›Î{›qþÅù ¾‡=Ãö Û3,Ã%¿1¿1tÙè²Ñe>lø°áÂjÑæE›m~ŸËº¦çYLÿòŸØbÿ‰ ŽŽŽxŸm>z>ô|¨õÏÕ¬bç‰å'–ŸX>£æIâĉ72ck•>VúXiKÏ{&êLÔ™¨w{dÓ¾"ÃÞ#«ÿ$fìë5åmÎl ˜ X´cÃ¥ KA—‚ÜÝÝß'´˜ÎÌK0L÷móºÍë6¯ß?äØå´Ëi—óý‰)¹u™Úej—©?ˆ‡.]ºdì»fr±ÇÅ{ÔVk«µÕ÷ßNÓY•Y› ¬3Œ™bjùõå×—_Ÿ±sÃtný‘Gi±Û<êò¨Ë£.›?cÍë5¯×¼þþã™ú1Mçà¾ícÚÊ'1£^ozæùhq´8Zä˜X0°:iG‘ÔAèýÕ:QëD­¦s%;Ïï<¿óüŒM8¥s”ÎQ:Ç»¥—äÉ;’wÔSoL½1? –ÍZ6kÙÌt¦cF½k&ïŸíÿ%´'Ù%Ù%eUpµ¶lºàvfϧnNÝœºeÔkLû^³ƒ¾ôÝ ï2ö2]à:ýÛo[ŸÄ÷½æ,¯_qFÅgp0`mÀ`Àê¤?ºYèf¡›ßþôíOßþdºHìÓÅO?]|êÀ©§„ /^4õy¢ï`v®Ø¹b犄j Õª=Îñ8ÇãêYõ¬zvHÇ!‡tLÿ£½í8Œ|9òåÈ—i?f™ø2ñeâg„ÏŸ~ð‡ƒ?üázÒõ¤ëI¦³™ø<ðyàcÍ 77ÜÜÐt/äÔg'gÔ6¿Û·ù¼Íçm>ß¾gûží{n/¹½äö’g3žÍx6ãŠû÷+î«íWÛ¯¶÷è5Ðk`ÚS$¶Hl‘Ø¢¬'ß|wðÝÁésÓˆyó4æéÍý7÷ßÜoºàð_;ÿÚù×Îßoÿ~û÷ÛmÚ&´MHûq\ªºTu©úþ¯Ô4o-=‹é¾ÚY»G²­ObfXÞgyŸå}¸4`+À`Àê¤'‡ÝPtCÑ B ¡†P#íü`~žhz˜âqzÂFzÍt¯âô€)¥ý˜æ—¢}ÛNMÍuZÓiM§5û®¥Îö«\W¹®rMÏ–¿ö~íýÚ;=ܪr«Ê­*[Ï\ý[Òm@·ÝXڒ§ Ÿ*|*òNäÈ;éß¶ôÌ“®£»Žî:ú}¶|BÀ„€ Ömñ“˜ŽV?ZýhuK[8Éa’Ã$Ž\€õ €«“žÔ7ïî¼»óî¾mÊJŽ#G8fìù¯o{¡T±ŒXF,céÑRßC7óƹò Êƒ*ÊŒ^6rÙÈe#ßmû3ï|ëÌó ¦óÑÓÞ’·M¿rÌýòùåóËgþhK–8,ÉÚl‹ŸÄÌð²ÛËn/»YÚÂFÇotœ#`=À`Àê¤C*,®°¸Ââ·Í!©Ï¶ÄÙÛÙÛÙû~Ëû-ï·|Ûm6]Ä8íó•Ó¿ÍKæ.™»dnÚg'¿ÿ8_raÈ…!iŸ3š±Øt†îû¤¬”*)URª¤ý,½Šõ*Ö«˜5ÌÕ³ ©ïðj.õ­3ï•ö;ÖïX¿coû˜¦{ëZzÌ&k›¬m²6kç-~?ülϪ °°„L¬NÚ©in¹¹åæ–{ÛǼZêj©«¥Ò~äï.}wé»Kï–1.ö¸ØãbŒ:Kò›èo¢¿‰6i¾ÿèøGÇ?Ê€ÎoÌoÌŸQÛœžÇ9ÒàHƒ# ÞÃwý¸ëÇ]?fTnϼ¹šÙÏnº/uÚÛpz×é]§w½ÿs™î_›±c.– K…-=fh¿Ð~¡ý²v_d‹ŸÄÌcºÛ:w¬˜ X´ƒé\Þ·}Ì´/aj²sÅÎ;W¼Û6¿yò"ÄúNjO?]ütñ‡ ÀµNÔ:QëDFÀç7Îoœ­a´³öÙ·žÛznë9KÏ^¿Ký.õ»dì–dì˜/8´àЂCi_*<;ìñ2ö“˜yÿ¼øçÅ?[Ú6ÓÙÒ¿k@&V'í3þfüÍÌxäk¯¼–‰—ɵ¶¼¯õ¾ÖûZ˜<ùÓÉŸNþôCΓi[¦m™¶%kçjf?û$‡I“,=û÷†ï ß2öSŸ%ÿþÏ8òåÈ—#_Zz´Mm6µÙÔ&;ìñ2ö“˜y¢&FMŒšhiÛF‹£ÅÑ"Ç/À€ À€ÕI;˜Îþ´¶GNÏã[CÂyÕâU‹W-¶ÔÜRsKÍ2ñeâËĘóqÌÇ1gìkÙ°rÃÊ +-=cÇß;þÞñ÷¬«™ýì-›µlÖ²™¥gß·-n[\Æ>£é}´ôŒí®¶»Úîjú-¨^P½ z–Íàgð3øéu/—yŸÄ̳·çÞž{{ZÚ¶6¯Û¼nóšã` À`Àêd^É츒µ çµ÷kï×Þ¦ó˜MñlyŸå}–÷1ÝÇ´Eç[t.éRÒ¥¤KÁ·ôþ¯ÝtäŒ}½'þ:ñ׉¿,=c½1õÆÔ“Ùcžµ¹Îc›Ç6m–žýRÐ¥ KAûŒçf›unVFyG5ÕxdéÑŽ•>VúXi[܃eí'1ó˜îámiÛj«µÕÚ*w¬˜ X°%)URª¤T‰7>nüÔ#SL=ÒAî w f²÷í]ºä˜?›ñlƳ–žÑ©›S7§néíÅÆWÌbÂO¼‘x#ñ†õì—l哘yxTàQ¬ýÄH0°:`9YN–“Ó>Ë3=L™ÍÇËÇËÇ+8"8"8"ºltÙè²ò à̈‘¦Ç´ôŒEb‹Ä‰%gì3šî\›Qcn—d—d—déÑLR¶†=’m}3OÚï~¡›…nºI¬˜ X°éÒ²éÏB¦‹¯ö¬Ô³RÏJó/ο8ÿ¢PC¨!ÔHÏóÚî% ø<ðyàcéËž,{²ìI.±Ï˜P-¡ZB5KϘú’Îéy´Ô猚3=WÖî‹lñ“˜yÒ~÷½½½ À€5 €«“°é¬Í ‹+,®`ñâÆ¦ó&{çí·wÞÓ»Nï:½ë}^Ň À{\ìq±GÆÎ“ó¡çCχZzÆÚjmµ¶ªïì±Íc›Ç6KÏ~Ù÷²ïeߌ}FÓcZzÆÔÛ“žGK}×Xs—‚.] ʪ½í~3éÉÚ»nH0°:Ù9¯Û»nﺽi§=Ãö Û3ÌÚÎZNûbžÆcý.õ»Ôï’Qçy2vÊØ)–mÃÊ +7¬Ìª½í~3ÏúMë7­ßdiÛÆ7jÜ(Ž_€5 €«“°Ã‡%K,ýlòŽäÉ;2jœÓ¾„rÆàŒg¡†PC¨aéñ Ý,t³ÐÍ̲6×Ýoy¿åý–fÌO8uàÔŒómW´]ÑÖÒc.Ü·pßÂ}Yµ²ÝObæYphÁ¡‡,mÛJÿ•þ+ý9~Ö€L¬NvÀ¥s”ÎQ:‡¥Ÿ=yæä™“gÞ;ïu¿×ý^w·®n]ݺ~ÈÜÚ©µSk§÷Ùò7Îoœß8§}j—©]¦v™špz¶¡Û€nº xÿgIûrÍ_Öý²î—ußöU›îòké1G~6ò³‘ŸeÕ^Èv?‰™ÇôŽXڶí·:ÜŠã` À`ÀêdçìÝÜ»¹wsK?ûCûÚÿÐþ}¶0¡ZBµ„j•ÆJc%cÏÙ-ø–ÞmûMw™Mû‘÷ Û3lÏ0[Ÿ«é'– K…3oÌ#òDä‰È“ö#ËÉr²œü¶ü²ÛËn/»YzLÓg!«öB¶ûIüðcâ8Óq¦ãLîþ X0°:Ù9Or˜ä0ÉÁÒω-[$öݶvoϽ=÷ö¬<¨ò Êƒ2#Ö¦ÿÑ Ÿ*|ªð©ô?ò«¯Z¼j1±üÄò˧ýÈAõ‚êÕ³ž³o­çSc¿Ã~‡ýŽ·Ýªô¤ßÎó;Ïï<ÿ}^¯5\Ê[OŸÄÌðdý“õOÖ[Ïç@ÚÀ`Àêdç|±ÇÅ{¤N¤æì’ì’ì’þsæen9·œûzÒõ¤ëI¦ó)ºN|œ8nÔ¸QãF¥¾gíÛ2Ý?xò§“?üé?±ÿÄþ›[ûÝ¥ï.}wÉüÙ˯/¿¾üú,O›ú$fÞk77õÈÔ#Sp̬ ˜ d#™‘Ò~ü÷yöÔß_ú<èó Ïƒj<ªñ¨¤KI—’.¦¼g:;Ó×Í×Í×mx…á†WØ3lϰ=ÃÒó¼¦;ïšþeƒ J4(aºÃk©¥ ”*°5`kÀÖ¡M†6Úä|èùÐó¡ioazR¨é>©¦»ÿˆ3 ¦Þ˜zcê)_&¾L¼):V ¬X%°ÉÚ&k›¬5¥¦Ô— Î3*c·3õ9µõ»ÔïR¿‹«æª¹j¦ùSn{¹íå¶›þ÷Þy{çí7jbÔĨ‰æ5šîúl—Ó.§]Në ê¶òIÌXÚAí vÐÒýMÿGÀÚ€ ÀlXæE²·}äŒ:Öšã_v˜?ÖyFõ0ÏažÃ<ù$~øwǰͷ¡ãïïø;ŸMÀ:€ À¬ùbȰ;~ÝñëŽ_ÍçéÂ˦³c¥ãEÈ‹!¦3›Íß‘Ýa»Ãv‡1J€u"€ €ñþÞ8¿q~ãÌ\²¦{ ›¿×@¯^y/kF&@ Ú!£Ä¼é«¦¯š¾Ê|Ìåd9YNf|ëG&@ ãÃÌ«-J´(Ñ"¡ZBµ„jŒOÆzèòÐå¡‹i„Sy©¿Ô_â³ Ø 02™áθ;ãîŒsövövöf^e¶‰å'–ŸX>õ»Tu©êRõîໃïf|[A&@ ãCÎ.Ç™Ž3g&3Ši$‹+6®Ø¸Ôã¼qÄÆGð)l ˜ €Œ¬šcŒÌû³zÌê1«Sêàþƒûî϶ˆL€ 0ùEZ ãƒ÷÷dý“õOÖ›¾Åûxùxùx5:Þèx£ãDÊ÷‘x#ñFâÔ£Úæó6Ÿ·ùœQl˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L àÿÐö§{9EËÁ,Zâ²hù#‹–C|9œEË‘,ZŽfÑr,‹–?³h9žEˉ,ZNfÑr*‹–Ó|9“EËÙ,ZÎeÑr>‹– Y´\Ì¢åR-—³h¹’EËÕ,Z®eÑrýƒ/ñY´ÜÈ¢åf-eÑr+‹–ÛY´üEË,ZîfÑr/‹–ûY´<È¢%áƒ/³hy”EËã,Z³hIÊ¢åŸ,Z’³hy’EËÓ,ZžeÑò<‹–Y´¼Ì¢åÕ_^gÑ’’EË›,ZŒY³ÄæÈ¢%g-eÑ’+³0ètB·Ø„7@ö¡Û|¿õýÖ÷[k±™¶ìÏ¢…{s7bîFlýw#Î>÷!Î>w Î>÷>EKö¹÷pö¹ëpö¹ßpö¹Ó0÷ÖßÝ…³êÃÙçîÂÜW˜; s/aî"Ì]„³ê.ÂÙçþÁÜ9˜{s·`îÌ}‚³ê>ÁÜ!˜{[ý]ï¾?øþ`Ýž È `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€ ƒÅ½Š{÷*¶ylóØæ=zô`Lx7¯×¼^ózÍy昛››x¦Â™ g*02¼›«y¯æ½šwÀþ€ý|øð}ÖòYËg-=!ÀÿðpÞÃyç‰áb¸Z)´Rh%·Ün¹Ýr|o%–—X^bù°Bà +´-a[¶„;öwìïØ3æ}»¾àú‚ë ¢Â¢Â¢Âzê5ª×¨‚ÄKö’½ä™Á3ƒgÿÑñŽtLKKcÌzõ<÷óÜÏs›xlⱉážážážþýýûû÷Ϩck—.!]BÖŒ]3vÍØË#/¼<ÒxÔxÔx”‘°f`ø/÷—Þ_ziDùˆòå+-®´¸Òâ‚YdÎî9»ç쾑ûFî¹y_¶ëìÒ³KÏ. u u u˪£ªÿlÿÙþ³·æÜšskÎäèäèähÞ€-záûÂ÷…ï^Ÿ½>{}Zl5²ÕȬ:¶Ž81âĈÇk¯y¼&ï ;3?JÆæŠÍ›‹‘AÖ"ÈÞâñÆøãµŽ×:^«ý³öÏÚ?+h•<†x ñ"ÎçˆsR"S"S"yëÖéùŒç3žÏØTSýMõíãíãíã­óØ:2÷ÈÜ#s_ ¼x-w `Íni·´[Z˜S˜S˜SA+±6bmÄÚä;Éw’ïð®²0¬@6ulÚ±iǦyxx¼Û—[÷žN»Ê›]óZ9÷Å’¿gµ‰1C[¬ÝBœÓ6¯g˜ÙîaÝ5ò²¶G=ÿÙîTÅÃu¥Òx´ûÅ1‘uü+øx¯(µ¡x©w{^»uvëìÖí‰Ý»'Öø¹ñsãç¼›€¬õrÅË/WDÎŒœ9ó}þpÜ<¤Üç' ¯7«’ך%M"j¸í*Õª‰ÇŸJ‹vê:©ÏÚýVw‚al›Æž¹7/ìZkØOá îUuì_ѽOÙ‚¥·,òÅ»=o×M]7uÝtmýµõ×Öón¬Áí‹·/Þ¾õnG·âÛŠä)ôm¯îU—”~9'Ø×P¥ï¯kš¯®ùzßÖ×êT×´ ¯¢D¶s¯ë¾»N«è:ù×­kÚ¿Æš©QõKT®ÖzCÑeøûÓXx`ágŸ<ûäÙ'¼›}#Ã:€d#wrÜÉq'G—è.Ñ]¢ÓÿÅÕïv?§b¿tk\³Á†=;5˜k4†„4i’Që‡.}eïí=‚|=Ü;=ª<ºTáôo[û5î׸Îõœë9WÞ_À‡§œRN)§ÞöÂC>©ñØu•ܼmŒgü e`ÑÆW2öØzaM÷R>+–l÷_Pmg…óŽ÷íßâò˜ãCƇŒINNæý|HÏž'úÌjïS×mÌ‹¸Å_³•cë_—zµòsíôeeß’Ii¿ºù†ù†ùãeãeãefÀv€aÀtåˆû÷#îÿ㾃j¸žø'´¿Ôh”m¥ßÿúƒuà ¿†Ïi0»ÊÕ´_ïï-Þ[¼™€·vÕxÕxuFá…güûÓG¾®uÜvª¦õ­í½VûulT·¬³Óê´_ïÍû7ï߼πÿ×Þ†UU¯ÿ·2l¢‘ADPQQTdžGP)e†;§sÇ=…þÐRR+D2ÐDÂZŠHƒ1çD1ÄBED!„ýÀy`×b ÄÚ‹÷k_×÷Á9«µ¿û>ß{ßûÃ^Oª\£\£\cHÿ!ý‡ôë2&Zý–k†]SŒp VöÞzøÜ*–E­wÕw¼ßñ~Ç»±²±²±’ (#`H0™È[œ·8oqëƒå÷‰[„(û-\>3í=»¿øUcÕª;U©@›ìVìVìŽë,#Òtj5ûü¾~Öhç>²ê­åQÁž®ÝqYgªÑzo½î{Ý÷º/Åh‹æß¾m½³¬L°ýføý&ÕÈ Krê­w;¹”»žô‡nœØsÚ´7hoãâÆÅ‹©€r!†4PzùÑùÑùqÃ竆33ªäý>¾–/^ãªm>WÏN[UlölÞ³yÏfjкª+TWˆv“Ð fqƒ‡Õ%Fôr¿ ïÞšs×ïukçÖßcÜ̺™u3‹šˆ©ÐªÐªÐRÏVÏVÏë&™Ÿ¿þÉØ“òîªÞ‘i1[­Ž Û‡Èu‘ë"×)Ž G* ,€!MÀ”X‘u‘u‘µØè¨“Þç uû;‚â\–Ê{~|­Ýþµ{’ïL£ gÅvæø˜ãcŽ¡~BÛU·«n~WØ: OÜ2ñØ}zëÅ£Ó÷ÚÛ\\ÜzôèQ?€ÇÕ¥Ô¥Ô¥Œ <6X¬ü¸|òQ›#ݧ«6¯Wº”™¾!¶'«×¯^¿z=õPÀ&`J©Ú«Ú«ÚKl\Ô>ÑÇG½×}Ï3×eÝmn^ÎF\õ˜ì7Ìè« ±]**)*)*¡–ÍrNåœÊ9%Ö5V½e×c„^÷ìªÍë•Ô™+.‰íÏÄL\д­i[Ó6j  hR4)š¢VD­ˆZ!Ö;òÇO³=Û{kb©›ŠiƒØþìóßç¿ÏŸRH0¤‰€²©QÔ(jÃÃÃÅÅÒ¦ +—‰Ýyn^ëF†¹±Ú?àœÎóÂ]ÒkÒkÒkªË«Ë«Ë£¬ ;+U+U+Uëª >1ß9d—";ÊÇÓ’ÞzÎ(`š]™Ø^%x%x%xQQ€TTTÑ{2)ü2­—ÒU›×µúöyÆ£Äöª0¯0¯‰ iÀ&`J&Ý6Ý6ÝVl8¼üጃŒÐ¯÷ÝCL]—ŠíØÒ°¥aKè+è¦Æ)Æ)ƹ%º%º% {„ÿ jûù=š©áñýôñõ O†åkb½õ¼öyíóÚtOÅo¿]ü¶XH‰7yt"ôOë?£,<‡Î8c|Ó Z¸cƒúê;¨oCyCyC9Õ&àŽ’•ž•ž•Þ¼‡kRפ®I½ïußë>fý”€(»fwÍ Òk&œëËð,¶ž_pÉÞJl÷ÎÚœµ9kC@w³»pwáîB±îp78X×å2=Tl]µÂNuÄá¾é¼¦óšÎk ß6|Ûð-5݈ƒÂAá`WfWÖÒ½"¢lF»ZÐ=Å֚צºå‹½'Ù¾)|S8%&àökôkôkô{'@üt€(°•a+ÃV @ð¦_ÚÅÀÜ–uKŠk¼i¦p6lØx²ñdãI* ºƒŠ]»*v‰Þš²‡Ÿñøäó"\IDAT¿µ;}³õµ!.⨇۠ç5iè ÷pû+Û_Ùþ •ÝGæÌ™7ÄzkÍ›aÿt+¢{þÅ.«¤Ûë‹íaIJIJI •àö{ü»¿­# n;`JàÒÀK/ ;ôïï ™êº™Q¹-k£Gd˜Gê9Ú=5~ká[Ô=2zdР[ˆÝ»#v‡°„û2OÇlûzéë/ØWнK©P©P©P¡Þ@ÞjƒjƒjƒÄzAÞ]ÿŸl†Ñ1Û¾®\n»wx ߢžuuÖÕYW©7€Ô·_s Ûîön3ÂàÖñA?%àµÄk‰×á¿[süœ1ןt=ëðŒ]–XãlÐlÐlФê@®Jç—Î//zÛçÄ`3—ßé•Oº¾§e9Ø´ÆQ×5®k\©:·¤¨¤¨¤(a˜ndìeð]ò‰o}>ìs·z±÷*WK¯–^-¥êÒAܱƒ; 0I+Ð+Ð+Ðèj±½{?ªŒôôø˜ñøéÖ€SÆC – ÷63?3?3ŸÚ¹Z³,fYL ¿®ãÒcdýñéÖ{&Áß»:‰ ¢U»ªvUí¢ö@~êçÖÏ­Ÿ+vþß0Ë×éºäÓ­{ʽû™îêìŠÙ³+¨=€twÂàö  iáááÂC<{¤Ï‹sŒÄíY Íû:Žî­~½~½~½b£b£b#rR3¡fBͱ©Ú*LÅíSúc{ÖÕCìÒF¼/ÜÛ$•$•$n 2”žžÝÂïÕE8Z;8—ÎØžµa|Dª‡¥Øû–²çÊž+ãƒu€$ÿ=ƒŸ0‰ªZUµªj•èmŠÏD\ñ˜ÌHÜþÕýêàÿê6 wø²êeÕ˪Ô!Èɾ„} û„gþû·í6ø7=±ýëƒæºÌ{÷Òô éAÓêäÄâ¢ÅE‹‹Â3¿ðV`€c±ýëçeÉ£Zx÷²Ys³æf~º À?Âà¶  Q26dlhá•7]ŒF^a î¨5w‰ßuë­Â}ŽÞ½?z?urbalala,<óKg-uv¡'vÔ:uûˆ)=„û\ ] ] M€<ÜRÜRÜjáß1çõžÕ*£vÔZirÃõ®ØÇ¸ K…¥Â’jt-à®E,†€D¹éºéºé æ[ãfuÎ` þ“ˆpWÅactctc4ÕÊ®<±<±c«ñ9ƒ[RëGrê­…kÇ:º w>¾<¾<¾œÊå•–––––&<áOŽœò–­]µóÖ%ÖÖS– w¾äPÉ¡’CT& «+/y‡ÁÀ” eþ/†ü=j–§³ÆÎœ¿ñÖŽFöõíãÜû ý–÷ÖM§iŽÓ37›ŒØÂ¯XUëWëWëS™ Œ úô+è'<Û·é¸]2‹‘N’_oý#(ì‚{ ;ï;Ïwžï<*”×»Óßþîtá _öKÐ-—ƒtÕÎ[¨O\i ¼æ¼œ¼œ¼*ÐU€åA~a00%h™>ÃbxHaà¬ù"l½Ûýá‹tÖôÍo¾¶¡_hG÷‘PêüöÈð¼4ÿ í ÙÓ'Ø/;Ví{ßú…åu¶ý‡ojþ ë?…Ù’§¢œíFz ÷¿¸ ¸ ¸€ÊetØé°Óa§ÆÑIþfÖ'é­¸.ˆ2÷"ÜyM}M}M}*”—c£c£cc 7"‹Èô°§«vÞúËݱÖÂOVKVKV£2]…X~äP‚–¹x™µºÑT) œÍCróU©UõÎí{9fF¦C€Ø¨,|.ƒÏiÍÕˆ“æ8ýÍÀ‰Fƒ„לŸ›Ÿ›ŸKe€2úLí3µÏÔ„gû5õÀHÇ`zkg¯æ¦z†Z-¼·¡2@NëÿÎö[Q³»úžUòîªeiA¿¸¤ ¯y¹ÏrŸå>T&@:ï €åDyÃ``JÐ2·|ägš.…óÇÅ“¿µ9üNÙØCMÖ.·/5ölËßG GniþUõOš“ÿ°ùUxGlŽØ±¡2@­~´úÑêG³ýι 5.±ôÖÎ^§Na­Ÿä=±šÕ-Ô²¡«vú÷›ó¶º=^gè½Ð{¡÷¨L€tÞË•r…Á=¤ó óåó^ãÆKóo[ŒM"=vn¼â|bä§Ò§/˜N×¶ŸM½@wP¹*´§[zkg¯o÷ý†¡ÔÈ›Gâ`E#ºjg¯õîîuÔPFYéYéYéÀð'_y2Ÿ"Íqº¢GÈ»®iGûøÚ[mKRñøjÔ–eZ6‘Ǭ2~Ù`þ€¾{ú¼'ö¼$÷‹J§f¼ã0šz€îàÁ¦ÐŸÜÑ[;{]˜:ö…!¿Qo o¯ÿ1ô[½stÕÎ^ÞøÎÃzʨ~oýÞú½Àð'RûðéS±{ö—‡ý6`µúojz½÷‹]¹ùY½ m໦Ú ýqšo@÷!µo˵·ò `è¤ö `¹vU¾ ”W7úpó=ÐyðàÁCøŽRû `­-꿪å6_Û¨Wuëµ¼W²>ÂòÀ-_3 ü‡cdĈ4ËæÿÕÕ‰3:4Hœû à³³3*“<”ñ¹"rEä áÙ.µß–koû `*“<ä4±Jí7€åÚUÅ~xRö¤ìIÙT&T&@:ï šÃBvFšƒÛ5©kRפ¶=ômþçÿþÐ÷qÀ” eúT ‹à!…³ÿÏÔ/4_ÕÉ7§,´mÓm¾OštÑ2GúãtB”³ÝHoáuP™ Œ;v:ìÔÂ8:ÉßÌú$½µ×QæžC„W¨©¯©¯©Oe€òrltltlžð a™ötÕÎ[¹;#ÖÁZxÉjÉjÉjT& «Ëò†¾# -óÃçïQ³ºúï©M¼ûmÒ|§ùz¾rñ¶5ŸÑú?ÿ{Ö,gçþÍ¿«$ýqzæf“Q „×Y­_­_­Oe€2*èWЯ ŸðlߦãvÉ,F ÝG®½õ ° î-ì¼ï<ßy¾ó¨LP^ïNwú»Ó…'|Ù/A·\ÒU;o= >q¥E€ð:óròròr¨L@W!–y„¾# 9ÞÅÞÅÞÅÂô&?ìS·Ú®8#Fí|±ùzVjÔè—rhÜÜÑ_Þ¸ðÖ‡NûJßêáb’—æŸa£½¼Î¶ÿðMÚkûX©Õ‹FÚÒ§ÏDMó´½N …†BƒÊeTõbÕ‹U/ Ïö[ÏÜ’B’ko-\8ÖÑMx…ñåñåñåT&(¯´´´´´4á rä”·lõ誷.±¶žj´\x%‡J•¢2]…XyÉ/ô}0ÉÙ¸h㢋„ë…šéÁöñ];pÞuVuùyD¤ÎuÍžmo sf¾ì°að9­¹qÿç¦ ¬÷/) Ò• B]µð-%__j”X "P(Ö¡š "yö¤·vÆš6g¼É˜¬>H=‘z"•Âåu¹×å^—{ Oøõ=ÿ0yŸ®ÚyëaZeZ¸ù¶sƒsƒ3• è*ÀÊEÞ¡ïã€HÎé¸Óq§ã„‡ì¦X—gF—ÂØÙ|=+îØþkøOŽÆíú-nþ¥¥æÕµhÐ#ݶ¬w]mº·Ñ$2ÐcçãÏ¢yסá®þéÛ¡£÷FKá8ç?Ûú–pÏ“B“B“B©IPv!£CF‡Œžó·&ͶvΤ·vÆêï7¼¿¾«pÏË·–o-ßJM€òzû0öa¬ð„ù•®–f]µ3Öªû¡ºù ÷Ü±Ê±Ê±Ššt-`éë>¡ïã€HNMeMeM¥ðÀ¢=»¯®tþú¸õ›b‰ý·Ò¼•ÖüŸÌ§yO¸çל¯9_ã/©@éÈ>} [xΧšyeY@oíØµöçð#»­¦PS¨)§§§¨IPv¶¶¶ÂÓþþå0×$ºjÇ®Gù[e w{{ðöàíÁT# kKS÷ }G @¢ÜtÝtÝt[ø®Ò¸Ùc3¤6Ž*ïZÿID¸Ç«b ¯1º1º1šjeWžXžXž(<ç-,õJ´ÿE7ìØ5ïžÿI›a-Œ‘ªkTרR ɯ&¿šÜÂ$•ÑcÂçcÍ醻N76oð‘p·¯›^7½nJ5º°tú>Ž€DelÈØ±¡…Aßt1y…¸£ÖÜ%~×­· ÷9zôþèýÔ!ȉ…±…±…±ðÌ/ œµÔÙ…žØQëÔí#¦ôháµ ´ ´©C‡[Š[Š[-|à;æ¼Þ³ZetÃŽZ+Bn¸Þû¸Va©°TXR€®Eܵ}ŨªUU«ªV‰Ð g"®xLfnÿê~uðu›„;|Yõ²êe¾¥²²/a_¾á™ÿþm»M#þMOlÿzçà¹.óÄÞ½4=hzÐô€:9±¸hqÑâ¢ðÌ/¼à@glÿúy™Gò¨Þ½lÖܬ¹Y“ Hðßз-€HZxFxFx†ð°Îé3ÁâÃp{ÖBóÀ¾Ž£„{«_¯_¯_¯Ø¨Ø¨ØH€œÔL¨™P3Alª¶ Sqû”þØžuõ»´ï ÷6I%I%I… ùÉNÏNÏNžüΣÖÎ¥3¶gm‘êa)ö¾¥ì¹²çÊø` ÀBß'E @Ò ô ô ô„·ZlïÄÞÁ*#==>f0~º5à”ñPƒe½ÍÌÏÌÏ̧ö@®–Å,‹YÓÂ,ĸô™C|ºõžIð÷®NbgÕ®ª]U»¨=Ÿú¹õsëçŠÿ7Ìßòuú€.ùtëžrï~æã„»:»bvÅì j À‡Ð·=€(¯%^K¼–òÝšã猹Æ`ü¤ëY—€gì²Do¯­Ù ÙÀ­´@¶Jç—Î//Öî&›¹üN¯|Òõ=-Ëùæµ0vº®q]ãJÕ€¼%E%E%E »Àt#c/ƒè’OºÖœûÜ­^ì½ÊÕÒ«¥WK©:€tw,BߎB @ \xià¥b‡ûý}!S]73$·emôˆ óH2G»§ÆoÂÌè‘Ñ#ƒ¾ÝBìŽØ±;„½ Ü”Ùàx:fÛ×K_ÏxÁ¾Rì]J…J…J7™« ª ª ëywý²FÇlûºr¹íÞáeœuuÖÕYW©7€Ô·¡ogàƒ~J#leØÊ°•ƒ>ø Ó¯íbHn˺%Å5Þ4S¸‡ƒ 6l<Ùx²ñ$•ÝAÅ®Š]»Ä†¨ã=üü­Ýé›ñÛ„qG=Ü=¯yLC_¸‡Û_ÙþÊöW¨4è>2odÞȼ!Ö[kÞ û§[ݳõõ¼Z@º½¾Ø–¤”¤”¤Pi©!n¿¬ô¬ô¬tBߎE @iÜ5»kv×LìèÏX3áìX_fÑAzIÀ%{+±Ý;ksÖæ¬ 5ÝÍîÂÝ…» Eo¬ër™*¶®Za§:bˆpßt^ÓyM絆o¾mø–€nÄAá p°+³+³káÛ«Q6£Ý -螢·}~-lª[¾Ø{’Má›Â7…Sbi"n¿F¿F¿F?BߎE @ɤۦۦۊ5ƒËÎ8èÈðüøzß=ÄÔu©ØŽ- [¶4Œº€njœbœbœ[¢[¢[¢°G8üË ¶Ÿß£¹‘ïÑO_ÚùdX¾&Ö[ÏkŸ×>¯Mq@÷TüvñÛÅo‹õˆ”èq“G'ÒIÿ´þ3ÊÂsèŒ3Æ7 ª…;6¨ï ¾ƒú6”7”7”S]i"î(˜Ð·ý€(›E¢&0<0<0\l¨.m ²r™È ]72¼ÈýˆÕþçtžî’^“^“^S]^]^]eÝY©Z©Z©šXW]ð‰ùÎ!»ÙQ>ž–ôÖsFÓZú^W³¯¯FS€"U'U'UGô§~™ÖKéªÍëZ}û<ãQb{U˜W˜WÈÄ 4`H0¥TíUíUí%6"jŸèã£Þë¾gˆ™ë²nú«„g#®zLöfôÕ…Ø.•••PK€f9§rNåœë«Þ²ë1B¯;<}%uæJ‡Kbû3qÁÄ4mkÚÖ´Z(šMЦ¨Q+¢VˆõŽüñSãlÏvçÞšXê¦bÚ ¶?ûü÷ùïó§”ÒG i" ÄЬ‹¬‹¬ÅÆEô>_¨Ûß¹çÒþ¶ºvø×îI¾3‚œý{ó1ÇÇCý„¶«nWÝ®*ÖAVØ: OÜ2ñØ}zëÅ£Ó÷ÚÛ\\ÜzôèQ?€ÇÕ¥Ô¥Ô¥Œ <6X¬ü¸|òQ›#Ý-úý¸Ò¥Ìô ±=Y½~õúÕë©€² †4PzùÑùÑùѽ[uÕpf†C•¼GèòåÁk\µÍçêÙi‹~p¿góžÍ{6S3€Ö­P]¡ºB´›„n0‹<¬.1¢—ûy÷Öœ»~¯[;·þãfÖͬ›YÔ @L…V…V…–z¶z¶z¶X7ÉüüõOÆž”wWmôŽŒðH‹ÙjuÄhØ>D®‹\¹Ná¨pT8R9eA i" y‹óç-ný#Úî?¶‘ß ýó™iïÙ…´þÜwªîTÝ©JÚd·b·bwththt¨Xg‘¦S«Ùç÷õ³F;÷‘Uo- ötýèŽË:SÖ{ëußë¾×})@[ÜùêÎWw¾j½³¬L°ýføý&ÕÈ Krê­w;¹”»žô‡nœØsÚ´7hoãâÆÅ‹©€r!†4•Sf§ÌN™µ>TϹ;ÆÃð샘УnÿPò¿žÞ½!Þé?&¿¶þ|÷ÚïµßkOmžØ¯Š_¿Æõ‰ë×§õ^“îíýÈüŒ²<]òͬϧ¸YÖÓý¼õçû[Ùoe¿•Q €'U®Q®Q®1¤ÿþCú‹u­~Ë5î©F8+{o=|î Ë¢Ö»ê;Þïx¿ãÝXÙXÙXI…”0¤‰€ ]‹¾}í/n ÝlÿØ×ÏŒ½«\#ôɾS¦Øjk5õé©vµõgwb݉u'ÖQ€öK)L)L)l½ï¸96ÐÝQx7p†ãt¥ùƒªúÈT³‰\ÿŸéåÖŸý(ûQö£îソ÷þ^êÐ8ýáô‡Ód“É&“MZï>ëü¬ÿ]÷c„Ž{‘²ôÖ߯Îòq6œúæGýªÖŸÝÆ#l<¢(T* © €ò"†4­ªÀªÀªÀ)s§Ì2·õ±Óp¼V¢Fòqo¿ùÖSš‚"ö(•Ú}~GÀoöÎ^3†¨ôÿ±õç2ô…¡/ }áFñâÅÔ cå’ÿIþ'mù«(³ÑΆæ7ôÞòrZ#µ®Zw9BßýÆÞÞñæñmy.Ëž[öܲç-x´àÑjÐa ‡„ ;v´¥í0òÔuù¸°Ö[o{ÏþعlQˆeé°ä¶<—c?ûñØ”@€!MÀä.[‘­ÈþRõKÕ/U{·ÙÎýã^=§Q?ršGRWÐY}Ô,ö²íÿ’Öä¶\sœVœVœVƒOƒOƒ/; óTÆWÆWÆÛÛÛµ¥CM2–0ÀÿïÉlþÝU]µò¹ ®¿­ßãdi²§íïŽë×;®Ç+èl§Ÿ;ýÜéçÚÞ¡VM·mÑÿöêÙ{œk»ª·ž¾4M×ÎøÍƒ& ··åš'>œøpâÃæßBæÈ 0¤‰@7r»Çí·{¤¤¤·}´v¾9ÈYWçË^ácœn¸¼5Õi}ÇŽÍ÷sµÿ&p¢£…ÙÔû#Þ5èÓök]6ºltÙ/†¿þbÈë øûåœÏ9Ÿs¾÷šÓkt…ágÇÆûfX×åDhº_ëØÞZ<ÓÀaÛ–o\7™f »¬]ÖwaÛ¯mqÔâ¨ÅQÕáÕáÕá¼¾€¿Smymymùn¸}àÖöÎÕï[—Ô£7D:-1¹t±Ïôyö›:øçŽFnô8‘÷«ÿ Ãw?±X>ô‡'íû–Xz`©âœâœâ¯2@~€!MÀº©Ó«O¯>½ÚÊÃÊÃÊ£÷S1{K÷ ÖàyÿS4ÄlóQW+Ó¥s'ü0vÂwñ¾/YÅæîð»g|ìß|«ßO4±0Üžãþ®Ù•ï°tæ`¿Í`W?ƒ§û÷ª¥¨¥¨¥ü÷ÄOü÷„âeÅËŠ—y5]«~[ý¶úm;ÖîX»cmïv5dŽÞóËæÛ¬n›¼Å3i´q¶§ÅÏ9ü^³Ö=þÐoŸõ’#‹Þp·êùÕfïéæóþoƒÓ‘Ú¡FfAƒ{ÌÔÜ¡ñÊÓý{§ï™¾gúž¢/о(ú‚W 7¯Ü¼róJTjTjTêÓu·~û5TÔß›5sä–õñáŽGL‚w'ÿ|Ì£Ãs&Yþp<ÙoƒuTÎ?3k³ƒ–>é–¯¦¤Œ ¼*Õ®ÿÓI»†}7`~{zúGßôýGß?ìõ°×Ã^¼šy#†4èÞŠÅŠâ3ægÌϘû?ôèÿ°·$Y̱˜c1ç»øïâ¿‹oÜѸ£q/@šjãjãjãöØí±Ûc×·¸oqßbiöÖ…=ö\سȻȻțW e%¹%¹%¹±º±º±º½%,igÒΤշ«oWßæUtÀ&`ø“²Ä²Ä²Ä¤¡IC“†ß<|óðÍ]5<ÇŒ?ðFÏ=oôäu(¯K‰—/%ÆÇÇwUWuýë\ÿ“ùLæ3™ÏT§W§W§óº”Qccã!‡C‡|ú,ôYØU½uÁÙgœ=3æÌ˜3cx]Ý0¤‰þ½„{ ÷¾Ûð݆ï6Ä 3ܸ§qOãží˜ûoí¿µÿÖyêóÔç©ï/ß_¾¿üvßÛ}o÷eÏòv}ÓõM×7¥Æ¦Æ¦ÆÎúǬÌúGG}m{Ìö˜í±µákÃ׆ÿ4å§)?M©Ž­Ž­ŽeÏrUÛ³¶gmÏÓKO/=½tƒÕ« V®¡®¡®¡Õ[¢¢¢’%/J^T¸°paáBE¾"_‘ÏÎH0t°~lø±áÄøãOŒÿÁâ‹,؞ΣäGÉ’¿Oø>áû„•'*OT^vqØÅaì Oç×—~}é×—ò<ò<ò<¾wüÞñ{LJ¯?|ýáëì €œ€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€L€LüÄa‡°DP2%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/materialize.png000066400000000000000000001312271431412030200257050ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTç€q[Œ)°ìŠŠ€ØE±`o±÷Š]c¢¨Økb‰š`7vQ#}§ƒ[ì vETˆûý±÷;‡{p¹(˜Ýžßœ3ÇcpvöÝ—–'3“ÉÐ…L èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èÒYxBxBxBhÓЦ¡Mzõ<êɘðiÞ­·þÝú#‹Ž,:²(4&4&4æ‚ãÇ ŽŒ ŸæÆ×7¾¾ñu˜o˜o˜ï¯#^G¼^7ÝüusF@OÀð?<]ôtÑÓEâBq¡¸p|ÅñÇWtÎæœÍ9[ž4+¶¢ØŠb+†Ù³f¿'zOôžè‡ù星1èÛ­%·–ÜZØstÏÑ=GçI'µäZr-y΀9æ ø»ÃßþîȘôêM¶7ÙÞd;5éÔ¤S“V_X}aõýôkÐ/½Ž­ü;ùwò_?ný¸õã"FFŒŒi<-Çô_üzä×#¯¿|ýåë/y5úF†u"È@fz˜éa¦N!B:…¤þƒ«c·‡ žïTkAŽ ÅÇ´•òºM˜6íÒ¥jÕÒkçÑ£ÇðeN®n7šå-Ú!õûæååu©ì¥²—Êòúþ}Ê9åœrîc)<äK·çe×ÈMÛìªùVX áu£Ñß¿Q£ôZ_YßµdÝ•Kÿj°¤ò>ÇË…¢òÄå1'øOðŸà7 n@Ü^_À¿éMô›è7Ñ?ûüìó³ÏG„^¡Ð`û€…ƒ¾ßãrñBÞmÕê,1oÔ(½Ö‰Ò±¾¡a7Ö´®YvÌò‡ÊýØãþÞI{'ídÈÛ¸Þ?º ˜*\œìg©èkn=¬Óîû®œy=-ü?~)P>GùåsÜŽ¼y;’9H_'—Ÿ\~ryj~Éëïêæ]Öã¶C&õfY*úš[¿½<°DÃÛ;JùÍ÷˜Ÿšç29ë䬓³¾ñnÄ»Ì@º©k¬k¬»hÝ¢u‹Ö¥æx´®ÂÔ *—_ÍíÓ°´¥¢¯¹õC¿ƒ^ÞQãúöÞå¸>5ÏE—Ãåp¦@À°N`:t=àzÀõ€Ô|ìì¹ôS&k˽)¯ßö¢ÒƼ— l³k—ò³ :7t.óv#6FlŒHù¸ãã]¦dÑuOºuñêlmÑ×Ü:1~P°ï™eͯ|9ågW§J*uª<ÛñldzÌ@Z¼ª÷ªÞ«zí]Ú»´wIùè3·Ýðç߆yÚð¦µE_së»×ö-ô.û]÷Æv%bS~v‹ ‹ ‹ Æc„1‚Y°]`X'0]9ázÂõ„kÊ2kGv›W|ûĹ'W­a[é7ézj AžáÍo¯^öÜ3xGuvÔan>Ú ã ãÙygç7åcMˆŸß;Ó¶}Í­ïýÕówï>5Ê8ý=åç{'êNÔ(&àcEç‹Î¯\±rÅÊ3w”q)Xî}þ×íwõêc+Ñ×ÜúðÙ ï«ÝLù¨:Êo”ß(¿Ä˜Ä˜ÄfÀ€aÀt"lBØ„° )°ìq}ù§ö¶}Í­‡ÌÚy òÿ¸ˆå†œrnÈÉ<¤Ê6ã6ã¶€~ýú™;²8m-ü¦@Þ» zºyçµõôû_ëhÿ>üú¸þÜÊùR>¶Þjs«Í­6L@j˜î}›ò‘eÚ"ÿ-Ÿ½Ïy¬‘ïE[O¿I×OTƒX?ºÁéêaEg›{î½wôÞÑ{Gâ„Ä ‰˜-ÛB†u"°y'Nœü|ùô c•.úK¿I×;ÃGyø–|ZijþæÆa{Ðö íAÌ@ʦ朚sjNsG“~ ]g—q|»là— Ïë*ý&[+OÚ6¯áòÏ÷÷Ýßws`Îó‚Ï >/h¿ß~¿ý~sG“Ý¿/ô®zLOÑ7ù:Ñïï¾[ǯè;´Bisã0hî ¹ƒæ½Œ^F/fÀV€aÀlØÍ7kܬaî£c¾Í…ìí–Žó?RÝý²¾ÓoÒõä/Ïhž9]= /2ÚÜȨêÎü$·*窜«Ì¦ß©jÕ«lìâïÒ¨”¾ÓoÒõ©óŽ:‡Ìþ¼¡åÓòi/^8¼p`þ’z»ñíÆ·«ö©Ú§jsÇ‘ð)k{Ö4è;ý&_ÿ3îtåÖæÆdæ‚™ f.`þlÖ‰ À&Å5‰k×Äì¯b«le7züœ¿£<ægœô›t=eÆùnžó\ƒ,²ØÜ(ݼwóÞÍ{Ì%€‰rB9¡œ0wÔ˜Þ£v&'‡Œ}“¯¯wV÷¢¹ñi1¢Åˆ#Þ¯|¿òýJæÀøÞøÞøÞªÿTÿ©æŽ'›n,^ëLFK¿I×ËM(S9ÁÜøìl·³ÝÎvL%€õ#Ã:€Øš—Æ—Æ—ÝtÐm€¹Šã²†Ítß—1Óï \ÿ¬“gÉÒoÜòèž|”Þ;¼wxÿ6ìmØÛ0¦ddìÙ=²3wT±ÜcC¹ÍÆýþ-UËÈØ´>[¡SÇÚQæÆjQ“EM5aF‚ .löšLÆUyjLÊÈé7ézN‰á™œ«˜«ˆ°ˆ°>±¬Ö‰ ÀÆ„Ô ©RËì/©ÿÜ÷Þõ9é7ézüì¿zÌ77b“úOê?©?ó 2¨ÆÆÆÆÆ>Ë|–ù,K~Œ¨ûCÉ7EÚ¾:(ŸïXÒoÒõÚ-wUËmîØz®Ð¹Bç 1¹ cŠ98r°¹cÄÆ€®nˈ¾ÿµþþx÷F廜ö›W2.ùˆ•Î_:éü Ñ Ñ ÑÌ.€u"§—}!ûBö…˜ÆpVð¬àYÁÏš}ŠÖ¿Lî5·ž>µvN§rÉÇ­pî¹ çN„9H]c]cÝÚQµ£>t­ÿšΕõ$÷š[¿Ì­Õñ9iîg’%– X2€)°Nà´Kl›Ø6±­¹ŸˆÁŸ† ÀfôŸÖZÿiÉÕ›·ŸçP–Ä›šuëÃS^”[“| Ë”-S¶LÙÄc‰Ç1Ó #x¾ùùæç›Í^š2SÛv5’xS^'Ì(ùú”þ¢€œ¯Dò1\õíªoW}ËL€Œc÷íÝ·wß6wl}Ù] ð¹IèMy}Î.xcæÆðÞÆ{ïmd¦¬ 8í’žû›2bpê€Ø€‹¥.–ºXÊÜ›þøCÇx¬!î¦f=ÕóÂbÏ£E¼K]ÎûCò‘Ü•iW¦] C\¸.p]òcÁ€vU\ËÌ'î¦~}ñÏ.9êĘû)åyöçÙŸgg¾€¾½éý¦÷›ÞæŽaOÖt©éHÜMýzÚÿ?puÏk=¯õ¼Æ|XpÚ™‚®)îæI5bpÊøE?Ðdb“‰M&&‹ï<ç—Væ“u?v=´Ú®¨ÊGÍ8 $H(À¬½z4üÑðGÃÍ^öyY×úwɺ»[°ÚpÇŽø8Ú`VƒY ˜u oký×ú¯õÿÀ'Ö Më—ü• ûÑ—ƒ>§]ô‰7÷³ÊµG×]{ĬXpú"§0«vÅáŠÃ‡¼£‹vÞyü¦æ¼ÐÜóA÷ÓÖîjóµE?pî×î“»Oî>Éܽš<~òøÉã?pw½ñõ3URH¹Ÿ¶~êÒçHƒzæ>ˆÆnŽÝ»™¹ú?4~hüPsïÿ·=þšPïg‚î§­·Gÿ”Õ£qòQíõ¼×ó^Ï™{ëAþ|ˆÁiA`Õì°kÀ®\úéÈJO§õDÜ´¬G8ôU•™ÉǶD|‰øñÆÅÆÅÆÅÌ@Г—Í^6{ÙÌܤ¸êý³û¬&å¦e=³\í­N3’íÚìk³¯åBРCûCö‡ìÿÀýêz·oRF#â¦eÐ4¼˜o5s?·DeÊÅ/ÖVüï ,0+;=vzìtsoÜS¦Ÿïê9ˆ›öuE¯:_úÀý€/缜órNæ!èÉÎE;í\”ü=ÆÃÚKœ~$ߦ}ýx^ï¡õ‡™ûéåý‹÷/Þ¿`€žx^ð¼ày!ù{~ă]ßyu"â¦}ý{Ԕ߫|à§— A‚¸uÀ*€ÿ}ÄàÔ °R»îZ¸kaò·é–±Ëe'ܦ׺ÿ¦Mc\–&ç€={ö0@O<==“¿çßëÖs’w}òmz­¿[åÔ¡d¦äã|¥Ð•BW 1@|à¾îçœ} FnÓkSAvmðÄܯqՌՌ՘Ë"[1Ø0+åSÔ§¨OÑäoÍ?î׸7!ܦ×zò³s<»˜;&$$0ÀÖE/‹^½,ùû¼g5‡{…~ Ù¦ï:ìi»c5?ðñ2笜³¸ºèÄú\ës­Ï•üÝ~W¦ùU«znÓwÝÙ¹©OÉ_“ö­Ê·*ߪÌlXØzƒ“"°:/c^ƼŒIþF\d_é-yW“l?Ǻ®W§%J$óëÞ×½¯{3'ÀÖíÝ¿wÿÞýÉßçƒ]›ìsA²Mßõ›nN>ÚvF;£ÑxÂxÂx‚9 ¶®VÉZ%k•Lþnÿì²äØ`-É6}×Ò¸å-«ïN>Ú«ú¬ê³ª³`Y`ëD &°:§fŸš}jö.þ,N*û’Xû9Öšl^är2ù˜¯í·¶ßÚ~ÌI°u}ÝúºõuKþ>ÿ U¯Þ»I¶ŸcÝ®mÅb%$óèÑ+¢W0'Àv½|ø:0ù;|¥?kPˆµŸcûLYìÓ6ù˜{ÅzÅzÅ2'–E¶~3€XÅã[<.ùî°„¿2»ö Ö~Žõ„_Žï÷¸—|ÌÛdo“½Mvæ$ذnÆnÆnæ>̼¿2è]£lÄÚϱÞ:¤©‹û¾ü" 8484˜‰ ¶ëò——¿¼üeòwø™F¯p™A¬ý|ërŽ%Éw>ùÈ'x'x'på*€Å€mKƉÁ`VÇ/Ò/Ò/2ù›l঺T]jÙPXâÔȪƒ‹«X:ßÕÿü_Þ;} ?ÿ÷Ù=s®¬gëÒ«¼)ÐÙô¯œGÕ»Z¸ÊÔUy>²Š <äÒÎj•ÍÞŒùŒùŒù˜™`‹b¿Šý*ö«äïí]V8Ÿ-ùÀB©Xºõíêý’îÛé,ª=<5ÿö¯ƒ-z{6Lúoÿ±ïèV»†5<¯ˆ9ݪzù$ùùÑó£çG33ÀvmݺuëÖ­ÉßáUZ·³–ƒ5„Òòq%âJÄ•`f€-ºRäJ‘+E’¿·¯,ìsÑu¼5„ÒwueñZ*Sžyïþ÷¯žÿ÷¿í•PÙ½t'Ó×WUêšúû¹×¯z÷?ßð#ßfX›am†13Àvé<¦ó˜ÎÉßá£.²×? lx¯ý"gÏNÉ÷3L SÂf&ÀRÀú ¿L`‡Ìʹ.’ÛÚ.›œt z[nÿÃX¿ÐúîI¿fxë¿‚\'Ø·Ì›çÓW¶o2»\ù“Ö–~Mëê­ìºäãy%òJäf&Ø¢Ãõ×;\ïG[µs­qÌz.˜œtß<÷ÏWhQÊ_ÿrSÿ>Ï ä]d_Åô¯~nW÷•ó#ë ÀÆþÊ%ù% ”(P‚™ ¶Ë+Ñ+Ñ+ñ"îîæ[ÇzðËMÚnŸg)¯µ£«vÔØ^`sþêvóMÿª÷“Ö¥Zg¾ôä‘uk$ùõvëíÖÛ13–BÖ}Ä`08dú´òŸQªœµåÒä—ƒNšu§V¼è©9^©Tð½éï]£ï*²ÓšïÜ£í²íNå“ÿIí¤vRcf€-Zc·Æn]ò÷öëöÝyõ±ž|pX«ÒÕÚèÜ£ýöÖMoy”5}]æ<ƒó4ºÛýJ½Öv'`Êe ?ô¼úùÄúŸ÷öÇ4ò¶•ûéÞÝ·o”w±ò›JÎïdÚÿ:MÝ·Éõ*(txÃòÖ¹ÏQ[ß®’|ä§´œÒrJKf&Àz~6 ë‰íÆ`08d¶þkÊýr«¬3š&¿t·‚rTÜÔrôÄWe¯%=?øÇ~ê.wë<÷×´Ôf[‰J’¿¡¦¡¦¡&3lÑÌw3ßÍ|—ü½ýñÙÞ³êZO(ï2°UCcñJùÛäõNMî4Ýù›’#L_ÓdF¹ÅÎXѹ¿IÖßµpªQâôý‰ÕUªpµ`M[I¿q{Õ—>kwr‹.|É´ÿ¥bŠçÌW$òÎ_uê³æ{¿ ÓŽû¼N>þýžö{Úï)3`=?€õʶbp&ëù–s:ÙÍW*䱿sg“îmá祚ç횯HA;Óßt®±P«ð½5§_Ózت=]]ë1ß #ˆ™Þ/›O&kË¥I÷Ð;g©gE&ÿšç™úŽi°5ÿ^{'»Ž¦¯\›Ý÷*K­3þÒí—²ý˜o o¾ËjÆ«`ýé7Ñåï ß ß­oܸdÓžÛß±÷ͳGŽ[1®FŽÿ?’ZïþÇ×=ê×ð-ó Ø¢}!ûBö…€à¿t™±8G…HkN§æ.]up«™Å*[óž']è°¯‡ëYæd/–ôûÛgœµåÒ½ÛZöüÀµ(’~Íú˺Õ2ý½)›’°µ=ÓzdpÕåî0ß@ßš¿ª·Ïá¬õ౿ôþÆñû¤{´: cå±ÿ´µöýO˜îçëÃ|¶(~GüŽø`ø/Öpòó€M:·ÎñŠ­`΀ŒÃ:Ï~3nÀʆKŠvÉ×Ð~uÒ½Mú5­Š:þT¼¥éï»×p9^jrò¯á `À¿ÉúÏ^Õ Pu’îóÀEíg—¹`+—­æ ``ë2ÐÀ¦k ³°°°$_’¿9Zó=€MëQ™6­Ò+éeŸML—ƒHóèaýØÜ=€¹.r]äÊÌdaaa±ÅeÐÔASMMþÞnm÷6w!h¿åþvð2ýý㮽»ÔïcÇÎ!ÏÓÝÞâKÏ\Öù,R¾03“………EOŸX­ùÀï ¿«½1]êÙ´·Þ9=Wyøf\؃†Kl+›»p«ý­ö·ÚÏÌdaaaa±žŸ –f_š}ivFFËþñûÇïïŸÅ?‹–Ô§_Ó×g {@ê¯àÓÊF©rÖM§V¼è©Uj;òûχÿJékJ¿IŸ…õàm—mw*Ÿ|üOj'µ“3lÑ»5vkì’¿·_·ï6È«uFÓ]¯šÅWlÚO»Ø N”C"=ó~mÚòZÉù„»ûöò.öÿÇ#[ ÀQ[ß®’|ä§´œÒrJKf&Àz~60ÅBFFLávVð¬àYÁ©¾¦¯ÿ÷£oR`6pȬœ«áà"¹­3š6¯ðMÙÿ|x.йhû ?öSw¹»$=_¬œáô§5àê­ìºä{y%òJäf&Ø¢Ãõ×;üËû‡¶jçZã˜uFÓWAý6,_8 ï"û*I÷¹Ñ†²}Šõ7ýyd|UÇr¯þÿ—×V€Gø{4*—|ä ”(P¢@ f&Ø.¯D¯D¯Ääïð ýÃÝ|ëXC(}ÜõPDý>•j—¿]`‹ißò…æíJ†m]S¾f![L¿¦õ¥'Œ¬[#ùȯ·[o·ÞŽ™ °°þØnôMŠ À™ÿ9ƒö‡KJ5w+ºcîõ=']ÛÛ+ù´<ÿùtûóŸ–Kz¾¯ÛA¿³E›˜þ¦èá²#òÆM8z¢ Çë ÀU ´Œ-fŸ|äãJÄ•ˆ+ÁÌ[t¥È•"WŠ$o_YØç¢ëxk>w6éÞÖiZrN‘\Iÿ&|B{¡æakÞÿW½ûŸoø‘o3¬Í°6Ø™`»ÆtÓyLçäïðQ— Ùë°l"5]ØÙçtE•¤û–ôÀ¶˜~Më½ö‹œ=;%ù0%L S˜™K!ëƒ>¢oR`VÇ/Ò/Ò/2ù›i঺T]j ¡tJÃsO<Ç–[é¹½ —iß\¾«?¤pà´Ü—rUû¯K=›þkþï µ‹°êËA¹´³Ze³—2ËgÌgÌÇÌ[ûUìW±_%oï²ÂùlÉÖPÿ¨ïWË£Ëî³èPtmÁ|V}î¯Ñß¿Q£ˆ9ݪzù$ßÿùÑó£çG33ÀvmݺuëÖ­ÉßáUZ·³–ƒei¯¯[n,]:é^õ=Õ&¨ô»¸½êKŸƒ/7i»}ž¥fmxb~»*LI>ò÷Ý;tï3`)`Û¥¿è›€ÕYªè^ûY¡QÿuNs‰S#«¶†< ÉæE.'“ùÚ~kû­íÇœ[××­¯[_·äïóZõªá½ÛV.mr­EW©n‚5ï³iÝ®mÅb%$ßÿèÑ+¢W0'Àv½|ø:0ù;|¥?kPô€­-Ç>Sû´M¾‡^±^±^±ÌI€e€­_Ɖ¾I€X—1/c^Æ$Ã-²¯ô–¼«­!—~Úeœ“ÿ+ë¹t]¯OK”H>æ×½¯{_çÿ¤›·wÿÞý{÷'Ÿvm²Ï}„5gTÿïÝ:—ýOFmp³ô»¢?[ÿ¹¿oþ`h¸9ùhÛíŒvFã ã ã æ$غZ%k•¬U2ù»ý³Ë’cƒµ¶{ŸÝ¤!ÙzöG·¼eõÝÉG{UŸU}Võa6,‹l2fôMŠ ÀJùõ)êS4ù[ðûµîM¬îº6»žüì\'Ï.æx‰‰‰ÌF°uÑË¢—E/Kþ>ïYÍá^¡¬3£¾ êÿ°aùbÍò­±ÿÏÅ—ô©áZÄúpØÓvÇj:~àcdÎY9gåd6€>¬Ïµ>×ú\Éßíweš_µª‡­`k[wvnêSò×ä£}«ò­Ê·*3–E¶DߤÀ¬Ô®…»îZø AÇ^,—p›^ëþ›6qYš|œöì ØÃ<=ñtötötNþž¯[ÏIÞõ­-£®{ب§[6Óæ=g76Ïã'uûä¬ÿõ_üù»UNJfJ>ÎW ])t¥óôáññÁ~áë~ÎÙ§`É6½Ö1d×OÌ^¤ºš±š±³`Y`Ë"úšC`¥b§ÇNnî zÊôó]=ç‘oÓ¾®èUç‹B?$áË9/ç¼ÌYJ +;í\´sQò÷ük/qúѲÑôyLßS n¾ÜÔϳã-;«Õ£ÌÙ‚CóÍ6íaßS®õJ¿³þsÏë=´þ0s?½¼ñþÅûÌCÐÏ ž¶%âKÄ—ˆ7.6.6.f€ž¼lö²ÙËfæ>ÅUïŸÝgµ¥Òé<¯Ö.¸“bÑ.ùÚ¯¾Ú­kÿºaÖîïÌrµ·:ÍHþ,Öf_›}mvf èÏþý!ûC’¿óônߤŒF¾MË:¡ix1ßjæ~n‰Ê•5Š_¬¬øßAôýX`VíŠÃ‡+xçí¼óøMÍy¡¹ç!Rî§­ÝÕæk‹®K>´»Oî>¹û$sôjòøÉã'Oþþ¿d|ýL•K¥Ó•m|¢\gÛß±sȳǴ?µ–8_xÝßC;¬cýçþ>ués¤A=s8c7ÇnŽÝÌÜý‰?4~¨¹÷ÿÛM¨÷3)÷ÓÖÛ£ÊêÑ8ù¨özÞëy¯çÌ=€õ >Dß´ °M&6™Ødbò·òÎs~iUa>)÷c×C«íŠª|ÔÜ2¡@B.¥ºõhø£á†›; v6˜Õ`VfèÛZÿµþký?ð‰µBÓú%%å~ìúå9í¢O¼¹ŸU®=ºöèÚ#fÀz€ÓÑ7½€Ø€‹¥.–ºXÊÜ›ûøCÇx¬!ë¦f=ÕóÂbÏ£E¼K]ÎûûþîÊ´+Ó.Ž !® \øë@ hWŵÌ|ë®Ö³¾øg—ubÌý”ò<ûóìϹø3èÜ›Þoz¿émîXödM—šŽdÝÔ¯§Mñ_Q1ê·‚ºÖóZÏkÌ7€µ!§Ñ÷sàýlFÿiý§õŸ–ü¾zóöóÊwS³n}xÊ‹rk’a™²eÊ–)›x,ñXâ1fdÏ7?ßü|³¹Qj¦¶íj4$N˜=Pòõ)ýE9_‰äc¸êÛUß®ú–™ÇîÛ»oï¾mîØú²»às“¸›òúœ]ðÆ:%Ìá½÷6ÞÛÈLXpÚí Ù²/„蛾ÀlÆ×'®O\ͽõw[ñÛöŠKH¼æÖÃï>êZÚÜè©y¦æ™šÌ1Èh¶El‹ØaörÐ}ú­™Ðkn=}jíœNå’[áÜ…sÎ $ s 2ºÆºÆºµ£jGÕþÀÙ«þ5;œ+ëIâ5{ÙçÜZŸ“æ~&Y2`É€%˜bëDN»Ä¶‰mÛ}Ó€ ©R+¤–¹ƒÁˆ?÷½w}NîMº?ûï‡óÍØ¤þ“úOêϼ€ ª±±±±±Ï2Ÿe>Ë’#êþPòM‘¶ï†Êç;–Ü›t} vË]Õr›;¶ž+t®Ð¹BL.Ș"GŽlî±1`†«Û2rï­¿?Þ½Qù.§ý敌K>b¥ó—Î_:BtBtB4³ `Àé%éyÀDß´#°5///» è6 ÛsªÇe ›é¾ô;¹þY'Ï’¥ß¸å)Ð=ù(9¼wxïðþmØÛ°·aL+ÈÈÙ=²{dgö®ZÜfã~ÿ–ª‘~ÏVèÔñCçu™,j²¨É">šŒÁ…ƒ 6{«ãª<5&‘~Më9%†gr®bn¬"Â"Â"øÄ °j`X'0›×$®I\sóU/ØÊnôø9GyÌϘéwÊŒóÝ<ç¹5.Xd±¹Qºyïæ½›÷˜Kå„rB9aî¨1½GíLN9ý^ î:­îEsãÓbD‹-F¼_ù~åû•Ì%€ñ½ñ½ñ½ÿTÿ©þSÍ;N6ÝX¼Ö™Œœ~—=šP¦r‚¹ñÙÙng»í˜JëG†u"°a7kܬq³†Ù ¼¹½ÝÒqþGª»_Î@gý~yFóÌéêÙhx‘ÑfÿswÕ]ugþ’[•sUÎU9ÍA¦vªU¯b°±‹¿K£R'ý^:ï¨sÈìÏZ>-ŸöÂá…à æ ©·ßn|»±jŸª}ªö1w Ÿ²¶gMCFK¿¿ÅŒ;]¹µ¹1™¹`æ‚™ ˜?[A†u"°y'Nœ È“¢‘O:Vé¢ïô°3|”‡oɧ•¦æßin¶mÚÄœ¤ljΩ9§šÍÀýºÎ.ãøvÙÀ/ž×wúUž´m^Ã;åŸ1îïþ>æ ÀœçŸ|^Ð~¿ý~ûýæŽ&»_è]õ˜¾£o¢ßß;|·Ž_Ñwh…ÒæÆaÐÜAsÍ5z½Œ^Ì€­ Ã:€èDØ„° aRþmëË×8µ×_ú2kçÊóS~îrnȹ!'ó*ییÛúô ègîÈâ´µð›yï.èéæWWé7Ú¿O£¿>®?·r¾”­·ÚÜjs« “ÿxüÇã?R>²L[ä¿¥â³÷95ò½¨§ôûD5ˆõ£œ®Vt¶¹çÞ{Gï½w$NHœ8Ù°-`X'0]9ázÂõ„kʪkGv›W|ûĹ'W­a»Ñwj AžáÍo¯^¶CÊÏwGuvÔan>Ú ã ãÙygç7åcMˆŸß;Ó¶ž~ïýÕówï>5Ê8ý=åç{'êNÔ(&àcEç‹Î¯\±rÅÊ3w”q)Xî}þ×íwõêcëé÷ðÙ ï«ÝLù¨:Êo”ß(¿Ä˜Ä˜ÄfÀ€aÀtèzÀõ€ëÿã¢Ð&Ý#—>pÊd[éwÐñm/*mÌ{¹À6»v)?»Ð¹¡sCç2i·1bcÄÆˆ”;>ÞeJ]ñ¤[¯Î¶}ãûžYÖ¬ÁñÊ—S~vuªÔ©R§Ê³Ïv<ÛÁ|¤Å«z¯ê½ª×Þ¥½K{—”>sÛ qþñmø‘§ oÚJô½{mßBï²ßuolW"6åg·Ø°Ø°Ø`Œ0F#˜ÛE†u"ЭØn±Ýb»uÚah‡¡)ì,¼¯äƒ¼ûçÝø£Ë€©ÂÅÉžqÖ}‡uÚ}ßµ‚Ó#¯§…³¦ü\Êç(Ÿ£|ŽÛ‘·#oG2éëäò“ËO.OÍÿbåïêæ]Öã¶C&õfY[ô}{y`‰†·w”ò›ï1?5ÏerÖÉY'g}7â݈w#˜€tS×X×XwѺEë­KÍñh]…©AU.¿šÚ§aik‹¾ýzyGëÛ{—ãúÔ<9\—Ù} Ã:€èÝ~ã~ãþ-9·äÜ’3Oª}7ñ§DǹSË\í©X*úöœ¸â/§¹%9]Î_)5û<»à삳 &´Lh™Ð’—ðùÄÌ™3¿Oí>µûÔNͪUeÇEÅÛõk߬斊¾1YûžopgÁözÕ\¶§þçÕAuPxÅŸÛ©¬§²žÊšú#Ôô΃:{8óàPï7–о§.nêPÛ¹ûæçJ­JÍ>·xÝâu‹×¦{!óŠô„ ëD<Ìô0ÓÃLB:…t IýGkÇn5<ߩւŠi+åu›¾¡7 !<ΣGáË"œ\Ýn4Ë[´Cê÷Í-Ê-Ê-êRÙKe/•åõüû”sÊ9å\ž4äK·çe×ÈMÛìªùVX áõôͽWÖw-YwåÒ¿,©¼Ïñr¡¨ü#S¿oü'øOð7 n¯/àßô&úMô›èŸ}~öùÙ'õG®"B¡Áö }¿Çåâ…¼ÛªÕY’¾¡7Q:–Ã74ìÆšÖ5ËŽYÞãPù£{Üß;i綠“Œgggy•úC†u"È NÍ<5óÔÌê¾Õ}«ûæù$ÅN¥ò]gs÷{Å£[·œRµÜønóû­â¾~ë:;Ÿê¿Ó—ÕýnÈéRªÇwËö89¶s™éY~„÷»þcKö,×ÊÓ±`¹O{\»ví6 =z0Ôøñã7¼šËŠ_¿2~åº9ëæ¬›“' šú—âðÅäá5çV¬µ~i£µnÎûK¶läùÒ¬mîEÕ×mwÖ˜h׺aõlùuööËÂz+êWÁµw™<¥vX—ïÛO{ÜÎÛ;oï¼ý榛›nnâÕXƒûWï_½Õ?Ø?Ø?øÓŽnEöêc?¶g×–EJÅÏ0º”KŸmëçfvwxHP™jGÕõ+Ãkø+ëVk¸¨¶dmµ\7Îhí¶~zðàiN•[m®¦øð´Ó=òë‘_¼þòõ—¯¿äÕèÖ‰ c‹4F#O{œö8íÑîu»×í^ç±JžC<‡xç‹óÅù‰ë×%®ã¥X§7³ßÌ~3{{ííµ·×Ι?2¤u[Gf™md¶›~7ýnúñª¬Ù=ížvO ,X4°h+¶vÃÚ k7Ä=Œ{÷W q€aÀð_¢–E-‹Z¶¶üÚòkËW ªT1ÈRžç˜`þÛÙng»×`»..»¸ìâ²ñÎãÇ;[ê¨Úà§?5øiwæÝ™wgŽ ‰ ‰ áuØ¢·^o½Þzª{¨î¡º-G¶Ùr¤¥Ž­#ÎŒ83âÌi÷Óî§Ýy]Ö‰ ÿÃÓEO=]$.Š ÇW_q|EçlÎÙœ³¥ýs±ÅV[1Ì~˜ý0û=Ñ{¢÷D?Ìÿ0ÿÃüŒ9@ßn-¹µäÖ’àÀàÀàÀž£{Žî9:½~]K®%×’ç ˜3`΀¿;üÝáïqqqŒ9@¯Þd{“íM¶S“NM:5iaõ…ÕVoЯA¿ýÒëØÚÉ¿“'ÿõãÖ[?.bdÄȈ‘ƓƓƓŒ<€5#@: OOOmÚ4´éQÏ£žG=>Í»õïÖ¿[dÑ‘EG…ƄƄÆ\p¼àxÁ‘‘àÓÜøúÆ×7¾ó ó ó=âuÄëˆ×ëæ¯›¿nÎÈè t‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èÄ¿€C³†f Íš2 S'%€Í#€Nd¸lúûÐÌ¡™C3‡f ÍšI{¯½×Þk‰Z¢–¨%h Z‚¯ÅkñÚíöF{­½Ö^k/µ—ÚK-N‹Óâ´X-V‹Õb´-F{®=מkOµ§ÚS-Z‹Ö¢µ(-J‹ÒkµÇÚCí¡öP{ =Ðh÷´{Ú=í®vW»«ÝÖnk·µH-R‹Ônj7µ›Ú í†vC‹Ð"´íšvM»¦]Õ®jWµËÚeí²vI»¤]Ò.h´ Úyí¼v^;«ÕÎjg´3Úíííí”vJ;¥ÐNh'´ãÚqí¸ö·ö·ö·®…káÚQí¨vT Ó´0-T ÕB5US5US4ES4I“4I5Q5ƒfÐ Úaí°vX;¨Ôj´ÚmŸ¶OÛ§íÕöj{µ=Úm¶[Û­íÖþÔþÔþÔvj;µZˆ¢…hhhhÛµíÚvm«¶UÛªkÁZ°¶YÛ¬mÖ6i›´MÚmƒ¶A[¯­×ÖkkµµÚZíwíwíwm¶F[£­ÒVi«´•ÚJm¥¶\[®-×–iË´eZ¤i¿i¿i¿iK´%Úm±¶X[¬ý¢ý¢ý¢-Ôj µùÚ|m¾6O›§ÍÓ~Ò~Ò~Òæjsµ¹ÚmŽ6G›¥ÍÒfi3µ™ÚLmº6]›®MÓ¦iÓ´)ÚmŠ6Y›¬MÖµ@-P›¨MÔ&jãµñÚx-@ д±ÚXm¬ö£ö£ö£6F£Ñ¾×¾×¾×Fi£´QÚHm¤6R¡ÐFhôaÚ0m¨6Tª Ökƒ5Í_ó×jµÚm€6@ë§õÓúi}µ¾Z_­·Ö[ë­õÒzi½´Z­‡Ö]ë®u׺j]µ®Z­‹ÖEë¬uÖ:kµŽZGí;í;í;­½Ö^k¯µÓÚií´6Z­ÖZk­µÖZj-µ–Z ­…ÖBk¦5Óši~šŸæ§5ÑšhM´ÆZc­±æ«ùj¾ZC­¡ÖPk 5ÐhõµúZ}Í[óÖ¼5/ÍKóÒêjuµºZm­¶V[«¥ÕÒji5´Z ­ºV]«®yjžš§VU«ªUÕÜ5wÍ]sÓÜ47ÍUsÕ\µÊZe­²æ¢¹h.𳿬9kµŠZE­‚VA« 9jŽš£VN+§•ÓÊjeµ²Zi­´VZ+¥•ÒJi%´Z ­¸V\+®ÓŠiÅ´¢ZQ­¨VX+¬Ö i…´BZ­€V@˯å×òkyµ¼Z^Í^³×ìµS£Õh5Z}¢>QŸ¨ÕÇêcõ‘úH}¤>P¨Ôûê}õ¾zW½«ÞUï¨wÔ;j¤©Fª·Ô[ê-õ†zC½¡^W¯«×Õkê5õšzU½ª^U/«—ÕËê%õ’zI½ ^P/¨çÕóêyõœzN=§žQϨgÔÓêiõ´zJ=¥žROª'Õ“êqõ¸z\=¦S©áj¸®UªGÕ05L SCÕP5T5QTEUTI•TIUQUƒjP êaõ°zX=¨TªÔêuŸºOݧîU÷ª{Õ=êuº[Ý­îVÿTÿTÿTwª;Õjˆ¢†¨¨¨¨ÛÕíêvu«ºUݪ«Áj°ºYݬnV7©›ÔMêuƒºA]¯®W׫kÕµêZõwõwõwuµºZ]­®RW©«Ôê u…º\]®.W—ªKÕ¥j¤©¿ª¿ª¿ªKÔ%êu±ºX]¬þ¢þ¢þ¢.Tª Õùê|u¾:O§ÎSRRRçªsÕ¹êlu¶:[¥ÎRg©3Ôê uº:]®NU§ªSÕ)êuŠ:I¤NRÕ@5P NP'¨ãÕñêxuœ:N§ŽUǪcÕÔÔÔ1êuŒ:Z­ŽVG©£ÔQêu„:B®W‡«ÃÔaê0uˆ:D¢V«ƒÕAê u:P¨Tû«ýÕþj?µŸÚOí£öQû¨½ÕÞjoµ§ÚSí©öP{¨=Ônj7µ›ÚUíªvU;«ÕÎj'µ“ÚIýNýNýNí vP;¨íÔvj;µ­ÚVm«¶V[«­ÕVj+µ•ÚBm¡¶P›«ÍÕæªŸê§ú©MÕ¦jSµ±ÚXm¬6R©T_ÕWõU}TÕGm 6P¨Þª·ê­ÖSë©õÔºj]µ®ZG­£ÖQk©µÔZjMµ¦ZS­®VW««ÕÔjj5µªZU­ªz¨ª‡ê¦º©njµŠZE­¬VV+«•ÔJj%ÕYuVU'ÕIuR+¨Ô ª£ê¨:ªåÔrj9µ¬ZV-«–VK«¥ÕRj)µ”ZB-¡–P‹«ÅÕâj1µ˜ZL-ªU‹ª…ÕÂjaµZH-¤T ªÕüj~5¿šOͧæSíU{Õ^µSíT;5·š[Í­æRs©¹ÔoÕoÕoÕoÔoÔoÔ¯Ô¯Ô¯Ôj5‡š]Í®fW¿P¿P¿P³ªYÕ¬j5‹šEͤfR3)FŨ•D%QITÞ)ï”wJ¼¯Ä+o•·Ê[åµòZy­¼R^)¯”8%N‰S^(/”JŒ£Ä(Ï•çÊså©òTyªD+ÑJ´¥D)QÊcå±òXy¨eŸò—ò—ò—²GÙ£ìQþTþTþTv)»”]Jˆ¢„(;”Êe»²]Ù®lS¶)Û”`%X V¶([”-Ê&e“²IÙ¨lT6*ë•õÊze²NY§¬UÖ*k•5Êe²ZY­¬VV*+••Ê e…²BY¦,S–)K•¥ÊRå7å7å7åWåWåWe±²XY¬,R)‹”…ÊBe¡²@Y ,Pæ)ó”yÊÏÊÏÊÏÊ\e®2W™£ÌQæ(³”YÊ,e¦2S™©LW¦+Ó•iÊ4eš2E™¢LQ&+“•ÉJ ¨*•‰ÊDe¼2^¯(J€2V«ŒU~T~T~TÆ(c”1Ê÷Ê÷Ê÷Ê(e”2J©ŒTF*ÕáÊpe˜2L¦ Q†(C”ÁÊ`e°2H¤ R*•J¥¿Ò_é§ôSú)}”>J¥·Ò[é­ôTz*=•J¥‡ÒMé¦tSº*]•®Jg¥³ÒYé¤tR:)ß)ß)ß)”J¥ÒNi§´UÚ*m•ÖJk¥µÒJi¥´RZ(-”Js¥¹Ò\ñSü?¥©ÒTiª4V+•FJ#¥‘ÒPi¨4T|ÅG©¯ÔWê+ÞŠ·â­ÔSê)õ”ºJ]¥®RG©£ÔQj)µ”ZJM¥¦RS©®TWª+Õ”jJ5¥ªRU©ªx(Š‡â¦¸)nJ¥ŠRE©¬TV*+•”JJ%ÅYqVœ'ÅIqR*(” Š£â¨8*å”rJ9¥¬RV)«”VJ+¥•RJ)¥”RB)¡”PŠ+Å•âJ1¥˜RL)ªUŠ*…•ÂJa¥RH)¤P (”üJ~%¿’WÉ«äUì{Å^É£äQò(¹•ÜJn%§’SÉ©|«|«|«|­|­|­|¥|¥|¥|©|©|©dW²+Ù•lJ6%›’UɪdU2+™•ÌJ&%“’I~/¿—ßˉr¢œ('È r‚/ÇËñòùüF~-¿–_Ë/å—òK9NŽ“ãäX9VŽ•cä9F~&?“ŸÉOå§òSù‰üD~"GÉQr”üH~$?’Êå‡ò}ù¾|_¾'ß“ïÉwä;òù¶|[¾-ß’oÉ·ä›òMù¦|]¾._—#ä9B¾*_•¯ÊWä+òù’|I¾$_”/Êåóòyù¼|N>'Ÿ“ÏÈgä3òiù´|Z>%Ÿ’OÉ'å“òIù¸|\>.“ÉÇäp9\—ÊGå£r˜&‡É¡r¨*«²*«¦7Y’%Y’EY”EÙ dƒ|X>,–Êåƒòù€|@Þ'ï“÷É{å½ò^y¼GÞ#ï–wË»å]ò.y—¼SÞ)ï”wÈ;äòòòò6y›¼MÞ*o•·Ê[ä-òy³¼YÞ,o”7Êå òyƒ¼N^'¯“×Êkåµòy¼F^-¯–WË+å•òJy…¼B^!/“—ÉËä¥òRy©ü›ü›ü›ü«ü«ü«¼X^,/–É‹äEòBy¡¼P^ /Èóäyò<ùgùgùgy®r¹Ü[î-÷–{Ê=åžr¹‡ÜCî&w“»É]ä.r¹³ÜYî,w”;Êåïäïäïäör{¹½ÜNn'·“ÛÈmä6rk¹µÜZn)·”[Ê-är ¹™ÜLn&ûÉ~²ŸÜDn"7‘Ë寲¯ì+ûÊ å†rC¹Ü@n ×—ëËõåzr=¹žì%{É^r¹Ž\G®-×–kË5åšrM¹†\C®!W“«ÉÕdOÙSö”=dÙCv—Ýew¹Š\E®"»Ê®²«\I®$W’]dÙEv’d'¹¢\Q®(;ÊŽ²£\^./——ËÊeå²r¹Œ\F.%—’KÉ%å’rI¹¸\\..;Ȳƒ\T.*•‹ÈEä"r!¹\H.(” Êùåür~9ŸœOÎ'ÛËö²½l'ÛÉvrn9·œ[Î%ç’sÉßÊßÊßÊßÈßÈßÈ_É_É_É9är9»œ]Î.!!!g•³ÊYå,r9‹œIÎ$g’Œ’Q2J‰R¢”(½“ÞIï¤x)^Š—ÞJo¥·ÒkéµôZz)½”^JqRœ'ÅJ±R¬#ÅH1Ò3é™ôLz*=•žJO¤'Ò)JŠ’¢¤GÒ#é‘ôPz(=”îK÷¥ûÒ=éžtOº#Ý‘îH·¥ÛÒmé–tKº%Ý”nJ7¥ëÒuéº!EHÒUéªtUº"]‘®H—¤KÒ%é¢tQº(—ÎKç¥sÒ9éœtF:#‘NK§¥ÓÒ)é”tJ:)”NJÇ¥ãÒqé˜tL:&…KáR¸tT:*•¤0)L •B¥PÓÿ¦Ã¾d"J¢$JÉ ¤ÃÒaé°tP:(”H¤Ò>iŸ´OúKúKúKÚ#í‘öHJJJ»¤]Ò.)D ‘B¤Òi‡´]Ú.m—¶IÛ¤mR°,K[¤-Òi“´IÚ$m”6J¥õÒzi½´NZ'­“~—~—~—ÖHk¤5Ò*i•´JZ)­”VJË¥åÒri™´LZ&IARô›ô›ô›´DZ"-‘K‹¥ÅÒ/Ò/Ò/ÒBi¡´Pš/Í—æKó¤yÒ<é'é'é'i®4Wš+Í–fK³¥YÒ,i–4Cš!ͦKÓ¥éÒTiª4Uš,M–&K“¤IÒ$i¢4Qš(M&H¤)@ ÆIã¤qÒÒÒÒÒÒÒ÷Ò÷Ò÷Òhi´4Z)”FJ#¤Òi˜4L& •†JC¥ÁÒ`i°ä/ùKþÒ@i 4P Hý¤~R?©¯ÔWê+õ–zK½¥^R/©—ÔCê!õºKÝ¥îRW©«ÔUê"u‘ºH¤NR'©£ÔQê(u:H¤öR{©½ÔVj+µ•ZK­¥ÖR+©•ÔJj!µZHÍ¥æRsÉOò“ü¤¦RS©©ÔXj,5–I¤FRC©¡ÔPò‘|$©¾T_ª/yKÞ’·ä%yI^R]©®TWª-Õ–jKµ¤ZR-©†TCª!U—ªKÕ%OÉSò”ªJU¥ª’»ä.¹Kn’›ä&¹J®’«TYª,U–\$ÉEr–œ%g©¢TQª(9JŽ’£T^*/•—ÊJe¥²R©ŒTF*%•’JI%¥’RI©¸T\*.9H’ƒTT**•ŠHE¤"R!©TH*(” Jù¥üR~)Ÿ”OÊ'ÙKö’½d'ÙIvRn)·”[Ê%å’rIßJßJßJßHßHßH_I_I_I9¤R)»”]Ê.}!}!}!e•²JY¥ÌRf)³”IÊ$eß‹ïÅ÷b¢˜(&Š b‚˜ Æ‹ñb¼øF|#¾_‹¯Å×âKñ¥øRŒãÄ81VŒcÅ1FŒŸ‰ÏÄgâSñ©øT|">ŸˆQb”%>‰Ä‡âCñ¡x_¼/Þï‰÷Ä{âñŽxG¼-Þo‹·Ä[â-ñ†xC¼!^¯‹×Åkâ5ñšxU¼*^/‹—ÅËâ%ñ’xI¼ ^/ˆçÅóâyñ¬xV<+žψgÄÄÄÄSâ)ñ”xBb}±¾X_ô½EoÑKô½Äºb]±®X[¬-Ök‰µÄZb ±†XC¬.V«‹ž¢§è)zˆ¢‡è.º‹îb±ŠXEt]EW±’XI¬$ºˆ.¢‹è$:‰NbE±¢XQtEG±¼X^,/–ËŠeÅ2b±ŒXJ,%–KŠ%Å’bq±¸X\tD±¨XT,* ‹…ÅBb!±X@, ó‹ùÅüb^1¯˜W´íE{1˜GÌ#æs‹¹ÅœbN1§ø­ø­ø­øµøµøµø•ø•ø•ø¥ø¥ø¥˜]Ì.f³‰ÙÄlb1‹˜EÌ,f3 FÁ(…÷Â{á½ðNx'¼„!Ax+¼Þ o„7Âá•ðJx%¼^ /… á…+Ä ±Âsá¹ð\x&<ž ÑB´-D QB”ðXx,< …‡Âáð@¸'Üî w…»Â]á¶p[¸-D ‘B¤pS¸)Ün7„B„!DׄkÂ5áŠpE¸"\. —…‹ÂEá¢p^8/œÎ ç„sÂáŒpF8-œN §„SÂ)á¤pR8)Ž Ç…cÂ1á˜.„ áÂQá¨pT„0!TBUPUYII01Á  ‡„ƒÂAá °_Ø/ìö û„}Â_Â_Â_Âa°GøSøSøSØ%ìv !Bˆ"ìv;„íÂva»°UØ*l‚…`!XØ,l6 ›„MÂ&aƒ°AØ ¬Ö ë…µÂZa­ð»ð»ð»°ZX-¬V «„U a…°BX.,– K…¥ÂRá7á7á7áWáWáWa±°XX,, ‹„…ÂBa¡°@X ,æ ó„yÂÏÂÏÂÏÂ\a®0W˜#Ìæ³„YÂ,a¦0S˜)L¦ Ó…©ÂTaª0E˜"L& “„IB ( „ Âa¼0^/ŒÆ ㄱÂXa¬ðƒðƒðƒ0F#ŒF £…ÑÂ(a”0J!ŒFÄaÂ0a¨0T*  ƒÁ_ð …Âa€0@è'ôú }…¾B_¡·Ð[è-ôz ½„B¡‡Ð]è.tº ]…®Bg¡³ÐYè$t: ß ß ß „B¡ÐNh'´Ú m…ÖBk¡µÐJh%´Z-„Bs¡¹Ð\ðü?¡‰ÐDh"4 _ÁWð …†B¡Ð@¨/Ôê õ„zB=ÁKð¼„:B¡ŽP[¨-Ôj 5…šB ¡†PC¨&Tª U…ªBUÁCð<7ÁMpªU„*Be¡²PY¨$T* ΂³à,8 N‚“PA¨ TGÁQ('”Ê e„2B¡´PZ(-”J %…B ¡„à 8B1¡˜PL("Š……ÂBa¡ PP(( „|B>!Ÿ`/Ø ö‚`'Ø ¹…ÜBn!—KÈ%|+|+|+|#|#|#|%|%|%är9„ìBv!»ð…ð…ð…UÈ*d²Y„,B&!“ÉðÞðÞðÞhH4$ †C¼!Þoxcxcxcxmxmxmxixixiˆ3Äâ ±†XC¬!Æcˆ1<3<3<3D¢ ц'†'†'†Ç†Ç†Ç†G†G†G††††û†û†û†»†»†»†;†;†;†HC¤!ÒpËpËpËpÃpÃpÃaˆ0D®®®®®®.........ÎÎÎÎÎÎNNNþ1ücøÇpÒpÒpÒpÜpÜpÜpÌpÌpÌn7„ŽŽŽ a†0C¨!Ôjúµ½é×u¦Û Àÿê€ÏÁz(Ò˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ À›‘'EQC%¥…ñùÀ`H˜ ŸˆÆ˜ÛâsgÞÐ70>!íß7`mJ ó10>Ì7°6`0|"‚˜o`mÀ`øD90ßÀÚ€ Àð‰r`¾€µ!€‹ ŸðáÅÜןÎr:Ëé,# (4¢P½bõŠÕ+VV+«•Õ .-¸´àÒ*¹ªäª’«UÑVE[]yýåõ—_nz¹éå¦ÔìÉÀ‡–.Xº`é‚5[ÔlQ³Š±Š±Š±Èà"ƒ‹ .P8 p€sgçÎÎ;é<¦ó˜U V5XÕ õÛO‹3wÏÜ=s×´o½¾îõu¯¯kwªÝ©v'§ANƒœ™ö-ÿÞü{óï-S*¦TŒiÏÛËíåöòD߉¾}¥¼R^)ï»:ï꼫“¾ûöï¹D—D—DåžrO¹÷ýÉïO~Òw·ïnßÝ•jWª]©vÍ6ØìPÇ¡ŽCÓ|è^£{î5Vô^Ñ{Eï¡/B_„ZÏ|6ç½Ã{‡÷oƽ÷fœ¥¾7­sÖ€3Îw€´ €‹IMÈy–ûYîg¹ÛýÓîŸvÿäùHŽAŽAŽAæâ)³-¾ºøê⫦”õ±Û/Y:²td:ǧ\Æ\Æ\!eBÊ„”©ÿ´þÓúOó¤“2gËœ-sÖôç·þoýßú§ý•ú4Ÿ60;Üw¸ïp¯8®â¸Šã>íq‹W*^©x%ÓŸïm¹·åÞ–>'õhð£ÁO?1ýÄô>§}NûœN:£ÌýÛÏA­rÖ}¾çžöí䱨´ÏUëÿn`0`1)çk-®µ¸ÖÂÕÁÕÁÕ!-±Ät¶bÒ-›Î­lý®õ»ÖïÒcì2Ûe¶Ëœö0s;ævÌíNÓ;Mï4ýs$Óy~–Ê]©“ç1ÏcžÇ˜ÎêNß}(Ú¥h—¢]Ò7Þ§þù.z´èÑ¢G¦3,Íý+Ó¹¶ûZèiÖ}¾çž1°m}7H 0°s9Á¥Üo¹ßr¿•^‰ÂãŒÇ3¦?w\ÜqqÇÅé›@Je*•©T¦OK q{ãöÆí­ùcÍkþøof¤æMš7iÞ$5ûüïç«èÊÑ•£+{9{9{9îqX>rùÈå#?ß|6ýׄf Íš \4pÑÀE©Ù«Ï€­Ö}¾çžÑ°-~7H 0°s á»õß­ÿn}Ò¿±¿cÇþÎØ_Æþ2ö— Á‚/¿ zô*èÜ‘sGÎYX`a…RsgST3¥ö­Ü·rßJS,yžéy¦ç™Ô‹êEõâC: éšø´:huÐê4#ãGÆŒOÍå¦g/œ½pö£?ýùèÏ·boÅÞŠ5Íü¤î“ºOêšFãúÔÿ£¾é<¿¤g'›cúú”÷°gá/)oÙÜ¿Jù±L÷%Mz¶¨9­¿iýMëo‚'O ž”t4L— ?QïD½õLXNšçÍÃmzõ?Ç|6ý×Áý÷Ü/õ!ís`ëŸuŸï¹§};%Š®%é ÒþLm÷» @Z€ À€Å¤&ƒ™.“+¸ n‚[Ê[3ª=_Í“î¹ío<´ñÐÆC)o-齊S3¦„–rº6]ž÷õì׳_ÏNßЕ<·§ï+øi³â—/ùò—/S¾óèþyûçퟗúÇ2åüÔß­6}ç³iŽ%ÿû‚K .-¸ttÄèˆÑ‡vpØé§_œ~qwßÝ}w÷™òÛçsÛuÖ€?Ó9â~üø 0·o¦ÿ &#|7H 0°˜Ô„"ÓÝRSz?éý¤÷“ÔlyD¡…FúØ}nQ³EÍ5Ím³Âì ³+ÌNýÖÄÒbi±´¹­UU«ªUÕ¡/B_„¦%¥,¾ºøêâ«{¦iÚ_ÁÝÚ½-÷¶ÜÛbîθ¦3#ÏÜ=s÷ÌÝO\Æ\Æ\)ïóÔÇSO}œ¾9<ù±¦ ’ßÌs3ÏM ÄKÛuúÀC m4´‘¹½jÝ&ºM´éŒÞŒðÝ -À`ÀbRŽŽAŽAŽA¦sS¿MÓ¹Â)oÙ¡ŽC‡:QÍ£šG5ÿØ8ñ×Á¿þu0åó•S¿µ¥ –.Xº 5gަeœ¯ ¹2äÊs’÷\ÞsyÏ}ŽWðc·6Ã0Ã0Ã`nk¿çÿ=ÿïùÓ>oýßú¿õ7÷(¦Ëð~Žó¡Mª««< x`©³®mwÖé5/9¶äØ’c)'ùç1ÏcžÇ¤~mý» @Z€ À€Å¤œa”[PnA¹7JÞ(y£dÊ[žvmÚµi×>-K\ívµÛÕné~ù!䇤NºœÎr:Ëé,éORq®ÞçxS¿ÓÅoËýUî¯r%ߎÛ3·gnÏRîcjìúb×»¾0·çg/œ½pöBúކIÒËíZjÌmwÖé/›.ýmkk›|OJæ.™»dîë®×]¯»¦~ßôñÝ -À`ÀbRÎ0IÏåMý6ã»Äw‰ï’ò–÷­Ü·rßÊO‹=)Ÿñf纽 zô*ÈšpÊ÷ož3eΔ9SÒwlM¯c‘ÁEœü—\>rùÈôÍŠÞ9½szçüÜß5úžuz À—æ^š{in±fÅškfî iåžrO¹—1¿›¤˜ XLÊ&òNäÈ;Ÿc˦{¯~¾=·¶q>Üêp«Ã­¬9ÿòå/_þò¥¹íë~¬û±îŸcl›þÐô‡¦?$Ä^ ½z%¤oVœµfÖšYkÒþ,leî}ŽY§]9ºrteWWWsû°ÚcµÇjOÛ¾>¾›¤˜ XLÊæ½Ã{‡÷Ö¶åÔl߯ÖtØî;Üw¸—Ž,Y:Òšpç1Çtcn;Ïr?Ëý,÷ç¥{TìQ1ù#úîöÝí»;}GC½¨^T/ê;îYgëØt}s¡ÔÄtî´<Š>¾›¤˜ XÌçË0Ÿ;ðX6½«ó®Î»:¦ó˜ Þoƒ÷ŠÞ+z¯èmJGÍ:6ëØ¬c‰â%Š—(ž'Õ,;µÖXk`«aÚŸô[™oe¾•Ùvçž5Ì:[ÀC m4´‘¹ÇmýMëoZcç´<Š>¾›¤˜ X ØœD—D—D—ð áÂ'L?1ýÄôíåör{Ùí™Û3·gŸ#ÒXvœ9 rd=ɪ²Ke—Ê.é;ÏcžÇ<±æ¹gý³Îvð’cKŽ-9fî=Îxœñ8cš!iß}|7H 0°pRq{ãöÆí¹c掙;Jæ.™»dîô 0…æšShŽ5à"ƒ‹ .2Øz’U©˜R1¥bÒy4rssYÛܳ­Yg‹øà°ƒÃ³‹µ‹µ‹MþX¦1ðŠðŠðJ¯G×Çw€´ €‹!›ÈqrœW~SùMå7¥%´(P8 n­ºµêÖ°vÀÚkCÊ„” )órÓËM/7Ysο7ÿÞü{­'Y™öÇÚf]ú>Š-Î:Û À—_\~qy±fÅšk–üQòžË{.ï99›œMΖ¾«ï&iA&C6]n7õgìU˜]av…Ù=*ö¨Ø£ââ«‹¯.¾*¸ n‚Ûíó·Ïß>Ÿò>Xs.«•ÕÊjæ¶ó*èUЫ Œ<ŸÓ÷QlwÖÙJŽ®]9º²éÒÇæee›•mV¶ùóPßMÒ‚L,&#àø.ñ]â»899™ÛŽé²±½¾îõu¯¯Ïï?¿ÿü~kˆgŸc›UÕªjUÕÜv"ïDÞ‰¼“‘çsz=Š­Ï:ëÀ¦núCÓšþ`nû£#FGŒŽø|óPßMÒ‚L,&#à‡6Úx(ågº{¨5ß·8½¶Ù¬c³ŽÍ:šÛÎÉ*'«œ¬’‘çsz=Š­Ï:ëÀC: é0¤ƒ¹-·*Úªh«¢ï꼫ó®Î盇úøn`0`19·½ÑöFÛæ¶0kͬ5³ÖXÿh§×6===Ímg׫]¯v½ÊÈó9½ÅÖg5`ÓűÍmÓý–û-÷[Ï3=Ïô×ÍmmдAÓMKû+hº oñJÅ+¯”üQ* •†Šuκ´?Š­Ï:ë ÀOê>©û¤ne—Ê.•]ÌmgùÈå#—´Ô»«­7H 0°˜Œ€ë4­Ó´NSs[ø¹ÝÏí~n—–½5ug 0yRásŒÃ{‡÷ïR¿µð áÂ'¤¼Íu×=\÷ðÓö6¡YB³„f-j¶¨Ù¢¦¹í'=oÕÚf]ÚÅÖg5àø.ñ]â»4™ÑdF“æ¶02~düÈx˾»Úúw€´ €‹ÉÈxrÁÉ'4·Óå[µ£ÚQíèÇîÛ¡‡zêá4ÈiÓ <©ö0àaÀÀôÓ™ »ÍÞOz?éýÄÜ6“Þi՘˘˘+5Û|–ûYîg¹{}Ýëë^_›ÛrõߪÿVý·wuÞÕyWÇ:g]ÚÅÖg5àÁý÷ÜÏÜ¿5QSµ†ði»ßMÒ‚L,&#à«Ý®v»Ú-åí$Í3r69›œíVì­Ø[±¦sŸZüiqÓe{ûã·?~ûÃ;Ñ;Ñ;ÑÜÖR¾ÿkÇÅw\ü±gϨÉ!?„übºHì[ÿ·þoýïm¹·åÞ–”·iz^©É‡Õ6VÛXm£éB»¦»±¾}ú"ÔtyÞ£?ýùèÏó«Î¯:¿j‰â%Š—0»Í¼çòžË{îûìÿ±·ž bŽG±õYg 8å[8 p@áÓŸM³îó-©y¦¶ûÝ -À`Àb2r6™Ð~Bû íó|6E\dð®/v}±ë‹¤wýL½”÷¿ÖÀZk LßmšœÎr:Ëé,y>3SìÜ:b눭#¬Ö¥×£Øî¬³þüoJýóµÅï&iA&CNtItItéY¸gáž…Ó7ƘÎç»|!øB°éo¶·ÞÞz{ëÔoáÏûÞÿó~Êû?Ñw¢ïDßÏ®.¿<þòøÏ«ŠW*^©x¥]¯v½ÚõÊúçsú>ŠíÎ:pZf”m}7H 0°ðä2æ2æJšR>-Ô9[æl™³«¬j°ªéî›ÿµ?¹Œ¹Œ¹Z¿ký®õ»ô À¯g¿žýzöçWI%é%v?–éâ´}Oõ=Õ÷”ébÔÖ–fÿÕG±ÁYGNûŒ²•ï&iA&°"q{ãöÆí5}Néý¤÷“ÞOÜž¹=s{fºï¦éž»ŽAŽAŽA^Î^Î^ÎÇ;w<8ìà°ƒÃÞŒ{3î͸”3LÒ¯©W¬^±zÅJe*•©T¦’¹Kæ.™Ûw·ïnßÝC m4´‘é|ÁÔì³éî°¦m6™ÑdF“Nƒœ9 *°¹Àæ›]ü\ü\ümh´¡Ñ†^_÷úº××iÓ}IMÕOê'õ“Lã`Óø˜ÆªŠ±Š±Š±[ãn»5Z´:hõý¥÷—Þ_J¦ÒǬCÚñÝè˜ Àü›g3[ç6?m|TgÖï&&`0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L `0 €è˜ @'À`:A&Ð 0€N€ Àt‚L àÿÐÂR½±ÐrÔBK¸…–¿-´û×—ãZNXh9i¡å”…–,´œ¶ÐrÆBËY -ç,´œÿ×— Z.Zh¹d¡å²…–+Z®Zh¹f¡%ÂBËu -7,´Ü´Ðrë__"-´Ü¶ÐrÇBË] -÷,´Ü·ÐòÀBËC -,´<¶Ðe¡å‰…–è}yj¡å™…–çZb,´ÄZhya¡%ÎBËK -¯,´¼¶ÐòÆBË[ -ñZþõå…–D -ï-´-³„f²Ð’ÙBK -Y?×BÝ"€Nè6›ðÈ8t€£ZEµŠj¥…~¶%ÌB ÷$ænÄÜØúïFœqîCœqî@œqî=|ÞBKƹ÷pƹëpƹßpƹÓ0÷ÖßÝ…-uáŒswaî+Ì…¹—0wæ.–º‹pƹ0wæžÁÜ-˜ûsŸ`KÝ'˜;so`«¿+pÔà¨ÁQƒu{0às €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ :A €N€@'À `Ð 0èt‚ |´­¿oý}ëï£;Žî8º£éÏ·ânÅÝŠcd`Y`à£åI&4khÖЬŒ ,‹ |40¬øh`X'0ðÑÀ°N`ࣀaÀÀG#Ã:€€F†u" ëD>Ö‰ |40¬øh`X'0ðÑÀ°N`ࣀaÀÀG#Ã:€€F†u" ëD>Ö‰ |40¬øh`X'0ðÑÀ°N`ࣀaÀÀG#Ã:€€F†u"@: OOOmÚ4´éQÏ£žG=>Í»õïÖ¿[dÑ‘EG…ƄƄÆ\p¼àxÁ‘‘àÓÜøúÆ×7¾ó ó ó=âuÄëˆ×ëæ¯›¿nÎÈðiÀ°N`øž.zºèé"q¡¸P\8¾âøŠã+:gsÎæœ-Oš[QlE±Ãì‡Ù³ß½'zOôÃüó?ÌϘôíÖ’[Kn-   ì9ºç螣ó¤“Zr-¹–yâŠU_»Õ·5èeå*#²ÿ4§Âñ_ŒYQ²žOþ6y(¢9D|ÚãvÞÞy{çí77ÝÜts¯&ÀÜ¿zÿêý«þÁþÁþÁŸvt+²§Pû±=»¶,R*~þ€Ñ¥\úl[?7³û»ÃC‚ÊT;ª®_^Ã_Y·ÂXÃõ@µ%k«åÚ¸qFk·õÓƒOsªÜjsý3ҧå˜þë‘_üzäõ—¯¿|ý%¯&ÀžŸŸ…. ]º¬lDÙˆ²ŸøÉ±te׊x]ì½·Ä–6ò´Cå^vÿ~©cň¾áë«:¿ésÓU—m¦?›þÞô5¦¯7ýÛO{\Ó>›ößô\xI‘`ÈÃL3=ÌÔ)¤SH§Ôb»Õ8Tð|§Z rT(>¦­”×m´i—.U«–^뀄ð8=†/‹pru»Ñ,oÑ©ß7·(·(·¨Ke/•½T–×ðïSÎ)ç”sûñµÔâÆÞëº%Œ_[÷ëÕ—<òòZ·îøñôZW‹ø©ëŽ£NÎ}ºŽwË·±ø¤ÒÛS¿oü'øOð7 n¯/àßô&úMô›èŸ}~öùÙç#B¯Ph°}ÀÂAßïq¹x!ï¶ju–Ç7j”^ëDéXßаkZ×,;fyCå~ìq綠“öN2ž5ž5žåUü›n•ºUêV)ßS¾§|O¥þÈår¥A«ÂÁ].YR±ÒñÚ>÷éûÛ`Ó6MÛ7=ÖGœ|Ê÷”ï)ÓóâõEÊÀôn¿q¿qÿ–œ[rnÉ™úCéwJtœ;µÌ…ÑžJúàS¿î9qÅ_NsK rºœ¿RjöyvÁÙgLh™Ð2¡%/;àó‰™3?f~ŸÚ}j÷©ª»U«Öµþhö“kþ>4}Coê×µ»-ûI¶«0¼Û­ïK¦þçÕAuPxÅŸÛ©¬§²žÊšú#Ôô΃:{8óàPï7é›{S¿>uqS‡ÚÎÝ4?WjUjö¹Åë¯[¼~üÇã?ÿÁ+ø|ÞWz_é}¥¥!KC–¦ê ‚¿:T¶_ÔÕa‰}Å|Óz]ZUÍÙ¿ îuiU5gÓ>˜ö'5{nzަçËëŽäÀt+¶[l·Øn†vÚahÊËÂûJ>ÈÛ¸Þ?º ˜*\œìg©èkn=¬Óîû®œy=-ü?~)P>GùåsÜŽ¼y;’9H_'—Ÿ\~ryªÎñ­Þ¨t‡ã5&-œò×`KE_s뺹Wß?’P¹Ùˆ®?½LÍs™œurÖÉYßx7âÝæ ÝÔ5Ö5Ö]´nѺEëRsÒâU½Wõ^ÕkïÒÞ¥½KÊGŸ¹í†Ç8ÿø6üÈÓ†7­-úš[ß½¶o¡wÙïº7¶+›ò³[lXlXl0F#ŒÌ @Zœ¹ræÊ™+©ùmpß%ë.;ß·­ß›ö95ÏÎ4̘€èÊ ×®'\S>ÖŽì6¯øö‰sO®ZööI×Sk\ò o~k|õ²ÿãžÁ;ê쨳£sðÑnooÌÎ;;ïì¼)k*Ï™ëçë¶}Í­kº.Ú±¿fáG®…kLùùÞ‰ºu'Š øXÑù¢óEç+W¬\±rÅÌÞw°`¹÷ú_·ß5Ö«­D_sëÃgƒ¾¯v3å£ê(¿Q~£üccc˜!€%¬V «S>Ö4Ü>än©å“=Îæñ,f»¿ 6í¿é¹¤ü|McÂÜ€N„M›6!åƒ_ëË×8µ·Ýü¹õY;TžŸòsßsCÎ 9™'€TÙfÜfÜÐ/ _@?sG–ü®%=ÊÞªñê—„}íl=ýþ׺öº ãBÅõ½¶û·]¸ÕæV›[m˜,€Ô0Ýû6å#Ë´Eþ[*>{ŸóX#ß‹¶ž~“®Ÿ¨±~tƒÓÕÊÎ6÷Ü{ïè½£÷ŽÄ ‰'0[©±7ËÞ,{³¤|líÿÓ&_—úûm°éy¥üÜMãÃ<ÉÈÀlÞÉ€“'ÿÇŸG>=èX¥‹þöI×;ÃGyø–|ZijþæÆa{Ðö íAÌ@ʦ朚sjNsG“’í|Ú·­T7ËjñH¸®Òo²µ{ó oVÖJùgŒûûî90çyÁ矴ßo¿ß~¿¹£ÉîßzW=¦§è›|è÷÷ß­ãWôZ¡´¹q4wÐÜAs^F/£3`NÊgýæË\ Ö®×!Ê÷nÏôýÛ`Ós4=_ÎFr`6ìf›5nÖ0{°ß\ÈÞné8ÿ#ÕÝ/ëû`ÿ_ùòŒæ™ÓÕ³Ñð"£ÍŒê®º«îÌÿ×Þ‡EUþÿ×4Ë>Ql² ²ˆ²É2(ˆ"Šdî¹ç‚Šâ®˜‰Š¢©¨¹(¢¢áJ"MÍ5E±Ì ‰ –™¸ äB0¿?Žßë¢ß™¡Aœž¹®ûê²™sÎÜç}Ý÷̼8÷Ä’t’t’F¿-®÷ͻǿYŠß™íŽ~«¶^æ1²G~ÞÈ2Ì2ÌzlñØâ±õ¨êYÚ³´giž¡ž¡ž¡Šæ‘SÑÉükwô+n×<šù“KOE}²h墕‹VR?±êïõk3²µŽ‘Ó»³G=ëίÁÂûÞ;÷FUÀ4Ripipi°ÂŸbÛ÷Л6kÉi©ÇŠº3ÙWm£þoˆd¹kBc³8E½tãöÛ7nSKÁñ³ÇÏ?«hÖ°ëЯá¸àºúŠÛ6,{ž±ZQÿ|<ùãÉO®ÜP¹¡rµUÊ*e•áóÃç‡ÏW4wäwMkæs¾®E¿UÛÄ»³›»”+êŸ]}võÙÕ‡R¤¤¤ª~£*~|ìù]Ýü5XxïÕÇÀBRKu0MS&+“• 6$LÑd6³AÎ"÷}us²ÿÇÕÀ~n%±²yê¦kô©¸—,*-*-*Ÿå<Ëy–CY@]vWï®Þ]=…_¤#B úÑ¿uÊggâêr,´’ñ‹Îo-VÔW±Á±Á±ÁT`›é6Óm¦ ×d’%é¶[—£ßªíËIõ[+ê«ÂœÂœB¾±@Vé\é\éì?ݺÿtE >×µ«~«¿XÑ¢ÐB ýI]ÕÀ4L†O†O†Â»ñMþï¾JׇLöUÛY1§ÿðX¡¨Ç掞;zîhê ê¨.².².‰‰‰â9Â$ßqƒÇ¿•_Ï8%#ú­Ú¶ž4Ã8>MÑÜzÁä‚ÉŠ ꦢqEãŠÆ)š#Ò"ºº%úþ£8óig»A?…,·*•ó‡hMlšØ4)/././¦º nZ›±6cm†¢¹µ.Üë÷åî ¬¨Ç„þTÏs½/c_ƾçzñ¶ÅÛo{ü øfý’€hŒ{®÷\ï¹*šº†¬_“îϯ¨Øew®«Âû@xŸ÷>ïM@]³£pGáŽBE³ƒÏÌ5‡O#îUÔÚ÷37RÜo¦š~húaù‘ò#åG¨1¨Cüd~2¿vÒvÒvRñìîýÉ[ q¯¢¶ìÃ,ßÀ|EŸIâÃâÃâÃ(1¨knZß´¾i­hv½lsÓJ~õUÔ ý£¨÷„¾UŸs]Ñ»¢wEoEGKür€hŒÑ F/½@<´éÖw¹…-“º2mÏCÑ[l÷asÛæ¶Ím+ò*ò*ò¨4¨ ny¸åáE_®Ü{Ìi¸¡+oõ­_è&é©n‹ÌÊšYˆû0éý¤÷“Þ§Ò îØ}k÷­Ý·Í­eŸfEÞ è­¾½ ·-Í×RQÞN»v;J€:ážìžì^й sAçÄ3B§ôñ¿Y¯ã—^eZ¡¯Ä}(ô­ÐÏêp«^û[=Â`åЗ¬/Y_Rø×^³æuôØÄt®L;_r1N’k`}Åà3qOfÖˬ—ɼuBTJTJTŠx.°ÚÑ)¬ÏJÂ]å[¯–Ä¥ÏRô)åa£‡6¢Þ@»=ñtÄӊ悜{›y·$ÜU¾]¾ÞAÎUÔî»:ì*õuAvbvbv¢Â[Úm9oæYÌ/½Ê´B_)êI¡ŸÕጠ®îê*0¸züÐ@Ï žŒÏ1¢IDATu)ð¹¢Ï*Wï^½{õ.UZË\f.3·-´-´•s»¢‘ñ)Wç×Ýš¶B¿‰ûSèg¡ÏÕ§ƒ_`j­À¢À¢@Î²ŠºGõtCæë\ì&9Èþr­û‰nÉMå\ûµ;wþî|j´Õ¼YófÍ“sŪÃàay3nå¾\ëóSÂù#оˆ–l)ÙR²…Úíó|Âó Ï'(ÿoy|7»ý—º/צ/kàÑEÜ«Ã8ü!µÚ*wMîšÜ5âñßf~ë#¯¡—¿öräwÝ·¡—¿örúPÜ·BŸ«g=¿ `j-,3,3,SÎÒO'7HZ¥2y¿J;uòÁÆ­‰ûÖò¹åsËç²8Yœ,Ž mRöQÙGe)ú‚ÔîÙúÙ'â‰r_¥µ[×ßdü·â¾Mn”Ü(™… @ íÏØŸ±_ÎýêÆô nžEˆû*my×SæA^Š>·HHHP }‚êÕª/ùÃG¤?w¾Ä/º¯Ò }(ç~ÀõƒêÕWÿÚ ®)`jªä‹’/J¾P4pGñ¿Á’åLÛ¯Þ:øû¾m"ç~ÀWt®è\Ñ¡@›ìŠÝ»+V<æÛ­è÷xüâÛ×p°ÅêM‡(úôRù¸òqåcê´‰ä¢ä¢ä¢xÌ/¼“ÙÏ!î«·_K£¿n-çÓK‚Q‚Q·.­r§ñÆw‹Ç|ãÕ.ú± ü.õ²ä·ÜWjý.õ²úSÜÏBÿkJµ+ƒ€šÊ\•¹*s•x˜î^u©E#ULóÎ_°•ô Ü9ÎÞº“¹K‹6†fÂψÏppWÝÔ;ö훜C…}™¾gyÈàŸ=ƒ¢šuž{ÖØã©ª'þÑ›7OwZ+îçÈ=‘{"÷P‡ M$ŽG‰£xÌ÷n;s_©*Q?ûMž¹ÃmíµoÔAÃRËYÍ {t‰šüäË£ª b=VÍ{œ³Þ OOUD¡ËB'ç8/·­b÷q[»¸‹ê"ØŸ/nûÌWÿÅŸU]0xK÷ÏD°µrð@Ç®V«Å½}Óå¦ËMª4ÞCÙCÙCó%æKÌ—ˆGû9gOxš¿®VèOq? ý/œ Í-%Â઀¨²Geʉb³}6[ 6ªnò³JwÖi²NØWßC1÷íJkÿƒÂèÓ›÷8}S5 ŽÞ÷¿½’ªÞ»ŸÿÐû––â>¿p-àZ5 šnïþ½û÷îóÎý' Ž1R]j”ÕÂÕñca_Ž9cÆDï©Í™_\‰µ5Ê$igÕ0ØoÑ×N¨n¿¾…;”s¥µžLO¦'“••¥&@ÓùXùXùX‰GûW~hÙ1Y!¨ûMÇïÿßÝå£÷´^[›K1 ûÍÊMÚÙ6½jü·ï©‚  ªÞû3×uo³[ÜÛI¡I¡I¡T#h:i„4B!ç :ö0ݦþ‘ªfÀB+ô­¸Ï…s¡uEL @휋9s.FÎâÏÇ¢æÚ–©zªLÊÚ;Ô5¥ö§ÞèNîI>¿wUï7,xK¬S¾x¿É£’G%¢&@Óté6ÒMÎâÏsã¶~?KÕ¬À«ó’/ÒÃjÿ¾¼~ý6Î…v×[Ý ƒ €¨¢¢"ñ µùÇAžkßlìeynŠç¸fl yñWÞ»sLþË}vÏ_°•ô´ù³õS£/–ÁœÚþÓÖó“.u–ÜU‹(züå]^.Ц7™¡ÌPfHe€&*i\Ò¸¤±xloî×5$TbW·ØÈôÄŽUŸ#ykáÂ-í•Ù¾ëñˆ¿¾ú½êk=/|Q²ù u€ÛŒ_n‘ù¾x¿+ŠW¯(¦2@smß¾}ûöíâ>Ï9e—…:Ä®º¯L=à9mGeÚG‹÷~ûà탷R™ ¹šÇ5k'á£]l*É$VÉ:”.6•ÈY³J8u§ö´; & v ¬ >»|ÜË]®»}ñ¿¿Ð-ÐõRæùÁ§åÚü)<§I=“ ½½G<ݬ½êM]‹ìiÔ½Ä\_¼÷RËRËRK*4QYY™xlouaÔ¸9ê wä5èmÖÏ¢gMZËo:Ø÷.<ßØÊ®ÓIE¯­ýØwÔ†³ÙArVטØkb¯‰T&h®é§œ>PÎ=ó.nÔá{í€kºýÚ €÷êÇ:Jˆ÷žs<çxÎq*4Qy^y^yžxl·qqÝed¦)aª&ÀB+ô³œÕ5òÊóÊóêZ5j_L @툇Q—:3ûPÝ^®úLcóuúŸ}’ÝÁ=²ês&õü.Áu¶~wƒrÝ…gö Žia—¯TÀ\ëðÇ'fgÙ¦ˆ÷^TPTPT@e€&:ÔþPûCíÅc»ûñ¨ñMÔgáå̪Ýín;ñ/ñjÀ†Y»õn6É1ž(¼ªåéAW¦ÌWŸØß&%äÌ ñ~,,,©LÐ\þþþr~*}Ê-ÈW}à²ÍY»Tßfå&íl›n´¥I½«FÜëia³J=àË÷¾â×V¼÷T½T½T=*4уÀå|_»4b¯åV`U·B?‹û_8/uº2µ" & vÄCg`ð…Ö-T7Õ K4×4v/]õUó.FI²Zx'W ÿîZÜ%Ól—:ßxhïÄôVvâ½çgågågQ™ ‰6émÒÛ¤'ÛÛ,Z>5s¦êâO?ûMž¹Ã•][oŸq~õjåŸï\2©ÃÒ¥ÿ÷$ÝTݳm;­ÌÛ­nw#6ú¹ÅPÇeò~(hÏ7Öcû3ßwPEðù|PîðN²×»þ¶oßÔs»Íև𴶿ÛÕ}‡Ù%dOêd§žK@K·ºÕ!CΡݣ»Gw§2@ÝØ}c÷ÝrVN:¶à`‹2`U·B?‹û_8/Ô§@sÃ``ðuºçwÑ¿·HRÝT7ãrÖL÷Þ/»Š—ƒòc»›»O›ó—íÕª×Ïu"ÓÝ©¦××f<¶×KçÙâ½ö>ì}Ø›ÊM´èïE/ú[<¶û8®>uÈ[uÁ§÷Ò¸ÓßoU>vcý\“ä¦M•y~³·|ß>&<Çì¾{O__å¯0®ÍØbÏÎ.o€vcuýÁþcoÕŸw–|¿5à‡×»–î=Qx Ý·bÓËÂv¬5Ó14+úõ;ßö3ÕùÀe9YgŸˆ÷>êþ¨û£îS™ ‰Î=?öüXñØþiÄÚ–…Àªn…~÷¿p^¨O1Í ƒßX¬ J ·â¸½ CнWºÛ¿¸òÕ4Êj¡gMcתGkúк›Á`C3c ½pá_¶]•eQãP¹Öà‰I{»¶§Þ .h7=ñò±ª >ÛŽºx­°/ƒëæ:–‹•‰]ÿ1Ÿvsv–$‰ŸÓ®ÕÚâºèÙD¾ø£%Çœ1c¢÷¨gl=¢sZ¿éÔh· Dïs{ÕŸ[W,^ë"ì«ùÏ–‹ c„ÿ®év*œN'}Ó/µK«·„-èÿª¤»çXéú™mßU~›â¨ø¹_nH§gÔÔ#O¥z:>%Vu+ô3õV;öeìËØ—A ÿ0haÜ»öEªXöy`úWËí×ÿ×"Tƒ°¯®º«š¿Ø¯ò[S´´ç¸‹Ì]jzl£û¥I¢tÿÒKÑýTÿ¸a–î_½ç,l`ç÷£·g¬ê¦üÉŸìêú3õuA»_Ö›œ0PŲÏÎYw-É7°5Í6±¤sKÝ«&¾¸›`õ[p}0}Ilªøh«>Ç©g¸Å‚»Â¿ 1° W¿e÷È9‹7<Ҩ穷TxU«k£–G½-ÜKXu°ÍÖƒÓ¨7ÐnÝþj¿ÏâgU,û¼cØ’|÷b«ÍWìö³jâ*Çû­é6?ÿjÄZFT=ò„‘ý]>¯éÖN\Úð¨ít½½¥ºQMöÎÖë¿¡WÔÛ®1Â}…U—/<H½@]0úÆæ_œv«ºú™z«Ïw>ßù|'0üƒ*®ž8nÏÛ®.U÷ò±Ù¬$ÛðùI—:Kî¾Êd_Uÿ ËSZ¼ÊÖšünÖ^ÿÅ_g‡nNn㸖+€¯NWK-ÎßîVu/öÿýtÏtW¿¢ä¨¼ÞÊlÁ÷ÌFÝœ;ú¾Fšü^u;UŸcîîÕ£ÃHáß›ýé£Û$ñsª¿X¼ñÓ1³[h¤éÚÅ\ xª¸øÂÉín¾ÁU÷òÕ;Ó]žWZäõ*¨éÖ’:Fp=RukcbûÆ4¿ø*G(lÇü#ÓTýÿ ÿ}Ämíâ6.\ xu\ÌÀÚ§]œÝ€<ä?ă£*îX¨»Aï¤~ð]ã#F}å ÔÕÉEÉQy½­‚|ÒéŦŸêK Žz‰^”bRû÷¦2yðàÁC›¾±ªâÀ…þ»Îû»‹÷õ8û„wàå·s8 á´×Sa©ga :’$³?žÎ̹Ó)þåŽM¡Ç.ø¤“íûÂ6 ³ ŽêYžbâý¨öïÜcý=öS™úž_‡î ʯØ#|¡u ÕMÏ­*Û뛾Wu5k.FI²ìh×ÒäÅ=™\ßíli6Rˆ~_n›=Ìia/¼Ê*ÝY§Éº—³fº÷Võ”?´wbz+;qÿçgågågQ™ ‰6émÒÛ¤'ÛÛ,Z>5s¦*"Oaûf÷Ý{úú*ºŠ÷_‚~wêÎ¥/^6QÏSoé‹ùzþȱ³— ÿ-,1-,:­Ì6Ö _ñùuáµFY-\?ö^wúû­ª¾°ÑÏ-†:.÷?• ÚôõÅØ~çÌ÷^oä)l9x¡¯¯ùùÎ#ÿþÚKëÒÃ|¥¾fà ^|۵Ͳêhxä·}û¦˜+¿q»úÐç×]^lÓý¦ãÇÆ÷ï,ù~kÀª¾°tû¡[2Ä=Ý=º{tw*4ÑÝ7vߨ-Û{[p°E°ª[¡ŸùÆZ=!¸]¼mñ¶ÅÛ”}…ç×~è[0 ø:íòA§qfªz’K. ±®2¯íæùÛ_ž6}Wß~ƨ™îNâw1ìñ†…­þ«Ì6[l¤û ¯ê{(æ¾]iM#ä—k?>1;Ë6E|äEEET&h¢Cíµ?$gy÷ãQã7ªðÊתû–\öÛóµôt‚R AOÚp/{’ÞÍ&9Æ«nÇ,ÖÍÉ'ëÅWëý!…ƒS>Z69îø¹G˜ð|Çœ1c¢÷Ô4–®qk“rf¸ç,,,©LÐ\þþþâ¾|ô)· _UŸU÷",¹\át:!èEÏÿsðÁ¡Îíìnm­z…nÎöMvÞ&¯ý ­ŸG˜Ù‹5’Eïi½öÕ·©L{ùÞ·SüÚŠ{>U/U/UÊMô ðAà9÷w÷¿4b¯åV`U·B?Ë©L }«" v   >»|ÜË]SݬI§x,’³Çêï˜{mO¾k_ýã†Yº) kÝ„üÜôÅ}›š²lP:;÷¬±ÇSåéðáéO/ÖΔïiÔ½Ä\΢+¥–¥–¥–T&h¢³³3ñØÞê¨qs Túü½vðÑ/å|©Ù$¾Õoî;ªþ‹Çªy“¿ÜÖ<ÍæoOUõµ¿¾£6œÍ’ó—ì{Mì5‘ÊÍ5}àôÓŠGxéåÃ:|¯ŠàóÁ‡G¿ì8MÞ³ÿÿ3……j»²éñªÏ¬zà×HŸéžë3TÕѯÐîÕu” ÷CÎñœã9Ç©LÐDåyåyåyâ±ÝÆÅu—‘°ª[¡Ÿ €ÚúVE @í„……‰Ó¨Í?ò\«Š©N¸ç®òpt§ ÷$ŸW½Nש_‡ñ¦Q >¼ü—®xúoaú¹^¡òÑrM£è×ÐŽ¿¼ËËEáRf†2C™!• š¨¤qIã’Æâ±½Y¸_×PÕÅŸÂ=w_%v±šta™œÕè=›;öƒ_%NVùµ¿Â‘Ç/·È|_¼ßÅ+ŠWS™ ¹¶oß¾}ûvñŸçœ²ËÇBÁ§pÏ]eàáïuO³±©úœ‘çz%Øü]º÷DYà²ÍY»(Ó*×ε¿B;§í¨LûhñÞo¼}ðöA*4Wó¸æqÍãä,òÿèbSI&°*Z¡oÅ}.œ‹ºS{ÚúVE @íÄÍŒ›7S<°N,ÿ®¾ëÐÚYºúصËþ©^6_,¥efl¡>õÎÁ_ZïTô*ñ–GV¤Æ:½§>ðì¯Îì÷¸-ç*¥F½õjDM€""¢èK‹ÿÛÉòn×ÎBÐ5]Ûýº^rÂ[ïÛ´©º»=ýÇO0RÿØyõD³%ˆ÷›½-{[ö6 4וw®¼såñ¿²Þ´õN U*»ê¾&ê·hiõ•áÿä,¾PP@e€æŠØ±5BÎBÄŸ¥ŸävŸX­Ð·â>Î…v×›v‡¾UP;çbÎÅœ‹²ÝE͵-{³ð¸½\‚õ Üu_üÅ÷ÇËg¶]U}L+\aìàÞîÉÔ\ÓlynŠç8u€Ã‚·Ä:å‹÷›<*yTò(j4ÝH·‘n#ÝÄã¼÷ܸ­ßÏRÏXÑÚ¸|9tW“Ú?’š¶oµ½ÞIÎßS¯/^_¼žšÍõ$êIÔ“(ñïümK£ãÚWëÖ~\òàx\ ¼•EJüKüK¨IÐtúè ¿xœ<&>ÞÁ™X­Ð·â>Î…öÕXÝ }«" vÊ•=*{$pÍöÙl5بW¿\(+~•òW «zÊ÷ózßÒR¼ßk×®ñ—Ô ñöîß»ï~9?U÷Ÿ08ÆH`ëN?êWOx­ée—_Ûœ]A² ïþ[¸±ÓIGñõdz2=™ì¬ì¬ì,5 šÎÇÊÇÊÇJ<Ú?¸òCËŽÉo*~½ûRŸø‡™ëº·Ù-ÞoRhRhR(ÕšN!FˆÇy§‚Ž=L·«¢úVÜç¹Ўºª›¡oUÀÔT`ÓÀ¦MÅCðŒýY݃ßl\;jçHæ=¸0@2HÑ„WYYI5€¦+N,N,NóÆ^vë­Õ3ö´á^ö$ýñÆsLS…×¶š?rììåê{èͳIβۋuë,Ö¡@;¤~úAªœ¥þ3ë­ðôôÐôXÝŽd c×@«ÕâýÞt¹érÓ…j÷PöPöÐ|‰ùó%âÑ~ŽÃÙž&À¯«úSÜÏBÿ çBsK‰Ð·*`j*sUæªÌUr‚.‰ºÔ¢‘¶À¢еy$£7ožî´V¼ÇÈ=‘{"÷P‡ M$ŽG‰œ+S½›ÅÎÜWªn°“ÍØ/8½xÙiýoùLY“vø“_«¿>÷DYmÀi>׺Š÷X`R`R`B€v¸#»#»#öî¥Ú—î=Qx 6ä‘ý1׎÷.Rí%ó’yQ ¤ Ò©œ… -âõ €_ÛâÏñú†â~ú_+‡ÐW`jªä‹’/J¾P4@Gñ¿Á’媀'èe¦»šómþ6ÏNª›tçÎü)ÏóÚÄq{Þvu Ü9ÎÞº“°÷&õL2ôöª:vð÷}Ûä3ñ{¿¢sEç W)€VÙ»+vW¬xÌ·[Ñïñø9µKZ/2Úòw»_×KNxW}f»‰óŽ5ô Ø00k·§Ùüí©±×Íu, ¯²réx½W‚òÁ­ïƤ¹9Ž’C‹ó·»ÙþÚkߨƒÂkõ?0`â ºØÇbõ¦C }z©|\ù¸ò1uÚDrQrQrQ<æÞÉìç?@ÕðO·üÝnóãìÞ TÁ>‰Éqì4äÂÉín¾Ás‚F´ñ=Ýlœ‰ƒþUÀ_K£¿n-çÓK‚Q‚Q‚ÚäNã;ï4–³rÕj ýØ~—‡zY¿Rëwy¨—¥ÐŸâ~ú_Sª…ÐWÀÔZXfXfX¦x°vrƒ¤Uªªàe6#>ÃÁ]uSïØw¶orï·Ã¤0«Eª €§N>ظõ"ñ~-Ÿ[>·|.‹“ÅÉâ¨@Ð&e•}Tö‘¢ù®Ý³õ³OÄ«:¸DM~òåѪÏlùtð¸©þâgêûýiò{›zËÎf ¨Á"Ì«æ=N,ÞZó¿»_ñÕÀvëú›ŒÿV¼ßäFÉ’Q }ögìÏØŸ!ùÇô nž¥êXÑüË£¹ª‹`OÍNì}H¼ßÏ¿ñŸ–ª €Ë»ž2Rø=]Ú@Ú@Ú€ íT?¨~P}ñÈ>"ý¹ó%àWi…>÷­Ðçê_„¾5E @­XXXȹêè†Ì×¹ØMrðuMó“.u–Üí²ª—ÍFó»z†µ›FY-4ðô»<ì™eoáÊ`Õí×ýD·ä¦)â®Ý¿;w>µÚjÞ¬y³æÍÿƒ‡å͸õzQ¿¢ä¨¼Þv‹úŒÔÄÆê}ÛŠàV×F-z[wƒÞIý á9&^ÇÜÜ<ŽD/J1©id[5®$¶Y2Ø^¸2X%×þþ”pþH¢/œ%[J¶”l¡ö@û<Ÿð|Âó ŠÆÿ[ßÍnÿåë D+-òz,<<~P«‰­ÆÚî4jXûpóŸ-ÆLi<ؾÅ•ÁªÛozñ²]Ľ:üáð‡ÃR{ ­r×ä®É]#ÿmæ·0òZzùk/Gà·¡—¿örúPÜ·BŸ«g=ú¾ ` xNðœà9â¡|à’¯zدPÿ;+¼ÊGUly‚W¦Ô%WÑYnTnTÎRZ µîNº;éî$E³€Ï‚5W'©îþ¸ÿ²tsÀ†Y»}:®Ñ?´®ê5į÷ŠdUyóᧀ ß)çkgÇÅw¤ê@»%‡'‡'‡ËùÆjßµƒÕêÚ¿Soí´ª»ö·ìBÖ¥ÀçŠ>«\½{õîÕ»Th-s™¹ÌܶжжP< ŒŒO¹âø»ÚÝUwF|†ƒûˆn¯;ÚªçïÌB¿‰ûSèg¡ÏÕ§}_`à’õ%ëKÖŠ÷Yó:zlÒÖøõ¶ó%ã$¹fÖW äÜ÷7³^f½L樢R¢R¢ä¬aµ£SXŸ•o*ÖÄÖë£%qé³}JyØèa£‡,þ Zî鈧#žŽP4äÜÛ4È»¥¶ÆÀªhD‡¯wʹÔÕaW‡]¥Þ .ÈNÌNÌNT4·ÎÝrÞ̳˜_z•i…¾RÔ“B?«Ã'ôU~è 1F/½`ôñ@ߦ[ßå¶LçÊ´=E?n±IÎ=m›Û6·­È«È«È£Ò .x¸åá–‡[}‰rï1§á†®„»ÿ²Àuè&é©n‹Ìʚɹ]EÒûIï'½O¥@ݱûÖî[»o)š[Ë>ÍŠ ¼A¸[}{Ao[𝥢>¼v;ív•uÂ=Ù=Ù½ sAç‚Ήg„Néã³^Ç/½Ê´B_ɹïï¹ sAç„~V‡¾/c_ƾ Bß׋€æÌû®÷\ï¹*ú‡¬_“îϤ®¨Øew®«¢Þ;ï}Þû¼75uÍŽÂ…; .=sÍ¡ÃÓzµvÁýÌÆ÷›é‡¦š~X~¤üHùj ê?™ŸÌ¯´´œ«Wý?¹`+!âU¸ìó‡Y¾ùŠ>“ćŇŇQbP×Ü´¾i}S᪣—mrZɯ¾ŠZ¡õžÐ·ês®+zWô®èMèûzÐ0>>>Š&ƒÉÿÝWéú ¾j;+æô+.™2zîè¹£©+¨£ºÈºÈº&&ÊY\Ë$ßqƒÇ¿•_Ï8%#î­Ú¶ž4Ã8>MÑÜzÁä‚ÉŠ ꦢqEãŠÆ)š#Ò"ºº%÷þ£8óig»A?…,·*÷˜M›&6Mʋˋˋ©.¨›Öf¬ÍX«ðÚÐÏ2ŽG¸=àભÐ'ŠzLèOõ<×U¯&ô}uÀ4M™¬LV6$lHØ0EÓØÌ9‹Ü÷1ÙÏëðs+‰•ÍS7]£OŽdQiQiQù,çYγÊ ê²»zwõîê)šUm"B úÑ¿uÊggâˆ~%ãߪðþI±Á±Á±|5ȶ™n3Ýfªh¾8!KÒm;—èWh—XNªçØZQ_ææòê´JçJçJgÿéþÓý§‹g ÃúF%zÃçØ=êi̯ÁB?}"î+¡…þ¤®ê`©4¸4¸4XÑWDÃ6Æ=ô¦ÍZrZê±¢nNöÑ ÿ7D²Ü5¡‹±Yœ¢^ºqûÆí·©%€àøÙãgŸU4kØuè×p\p]Ž~Û|°ìyÆjEýóñä'<¹rCå†Ê Ô@V)«”U†ÏŸ>_ÑÜ‘ß5­™Ïùºý&ÞÝÜ¥\Qÿì곫Ϯ>”@    ð—G¶Ö1rŠªøñ±çwuó×`á½ ý ¨—„>¤–ê`ìFÛmo´Uo1Ñ×[;3üd÷+uèªßwÎgIt\%'™MSø÷æî'ÜO¸S?±$$$E3H‹ë}óÆîño–âw&¤îD¿^æ1²G~ÞÈ2Ì2ÌzlñØâ±õ¨êYÚ³´giž¡ž¡ž¡Šæ‘SÑÉü×µèwÍ£™?¹ôTÔ'‹V.Z¹h%õ;_p¾à|Aõ1p]»Xx¿ÕG¿B¿Q?u 0—™™©[­)÷´l=H»'ûÈ]§¦zYÝwžßd—¢~HOHOHO fÕ›¯3_g¾ÂتO`ßÞÎ~omš~"Ü ™3PJçJçJçµk3Öf(3C¯¶pÑl¯ï`¸`øå$/Ç7ðkððËI^ŽÂ1ǣ̑ ïQx¿œwˆ¨Cþ¨÷G½?ê È1 Cù¯Ö-‡´=hü¿>+ßµo6½÷n³_ïY~ªÔcèÐI‰…­\Ý®dÐôåÍMê&u“^¶½l{Ù–ó ¨}Ç/¿pü‚n YÇu èïçV>ëùº¿÷6^9y÷õƽ^…ËïÌmå:x–›aZ³¹6éÊÛìðÙá³ÃKÃJÃJÃ8¿€Úô´øiñÓâ/¿ ü2Pù™ËìˆÉ8ýÈUc#ö8]ºh°ÃË7þõ½?ä½”s}SOoÛé놴˭鼿wîÞ¹{çÊ~–ý,û™³ ¨M7­oZß´:t.èœò3—SAǦۉwpžñ3˲(|¹ýL˜>0ýÆæ›olælÔÁï¿üþËï¿„o ß¾íåf7³=&¡úŸÜÝÌúùаiÖN¡;R—ÖwÿûÐø„æ^¹'R7œj~¹úäê“OÞyòΓw8›€7ìììAvbvbv¢m¡m¡íK~s´qqÝedæiÄ^Ë­½Ž-8Ø¢ìÓˆµ- GžJõt|:úÆæ_œvÿ-ü»ðáùÂk_n¿Â1 Ç/¼N)”A  n+’ÉŠ~òøÉã'>Oú<éóDW-IÆKÆKÆ]qtÅÑ)))œ:€zzó4æiLz»ôvéíš5)jR¤žs딆SNix#äFÈÎ@Ýκu;+ªiTÓ¨¦ºj,ù›äo’¿)ý£ôÒ?8k5e.3—™ç®É]“»&¨~Pý úê9« Ç&§pÌœ:Ô0üƒ4Qš(ML¶K¶K¶sHpHpHxSÓüŠïW|¿âû[ o5¼ÕóÐ\—/%^Jœå8Ëq–㛚U;.븬ã²Ýõw×ß]¿4£4£4ƒóÐDÏüŸù?ó?èwÐï _÷)ݧtŸò¦æÖÉç'ŸŸ|þ'÷ŸÜrç¼4ׯwßiœ M&HÍ—˜/1_Rû³ª°_á„ãá¼àÕÀ¿¸{?ö~ìÑUGW]5Ëa–Ã,Ç†Ž ¾†©}½ùzóõõ'êOÔßS¼§xOñMþhòGú ÝnÆßŒ¿¿-j[Ô¶¨aÓ†M6íu}mö9æsÌçØ’°%aKÂNrú“ÓŸ”F•F•FÑçmõ´áÓ†Ož›{nî¹¹«Ú¬j³ªMÇQGuõºæÖá„§ÎL™:³pJá”Â)²|Y¾,Ÿžh+i„4Bq ÿþúGlرµy\ó¸æq¯>« Û¶)l_Ø}U €×ìTù©òSåÙ]³»fwÍ•äJr%ô /çïÔ¿SÿN={2ödlö£ìGÙ.¶¼ØòbKz€—sý½ëï]/'('('è¤ÿIÿ“þOº=éö¤=À˽٠²d7 gðf5F õD Ô0Ô0PcÀPOÀ@C=5F õD Ô0Ô0PcÀPOÀ@C=5F õD Ô0Ô0PcÀPOÀ@C=5F õD Ô0Ô0PcÀPOÀ@C=5F õD Ô0Ô0PcÀPOÀ@C=5F õD Ô0Ô0PcÀPOÀ@mÿzû×Û¿žÖZÿiý…ÿ¾Yz³ôf)=ƒ7‹´0h `ÐÀ %€@K€– -A Z‚´0h `ÐÀ %€@K€– -A Z‚´0h `ÐÀ %€@K€– -A Z‚´0h `ÐÀ %€@K€– -A Z‚´0h `ÐÀ %€@K€– -A Z‚´Äÿ²¤ ”Zerñ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/max.png000066400000000000000000000771721431412030200241740ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü}‘IDATxÚìýyœŽeÿ?ðŸ3ƾŽ]ö­´ˆHY¡”B’P–´I…ÒBÛ m"D )Y"²¦E‹%K"ÉÝBö}c¬c–ßsÿ~?}¯Æ‡l3—çÓãq?æ>Žã:Ïã|ŸG3sy9®3"999999 ‹T€ð `€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0¥§×¢„E ‹nI¸%á– »2ìʰ«úÕ¬þ£ÊÀÉJ•8*qÔ1?Æü“Ô!©CR‡è«¢¯Š¾ê’?.ùã’?ÔNÖÚìk³¯Í¾µÖÖZ[kE‰8qäŠ\Wäº"W–iY¦e™¦>á!"99999Y!RóVÌ[1o-KZ–´,iÖ»³Þõî”USVMYµ9Çæ›sœÊ‘s¼šãÕ¯6ªùSÍŸj´ªÑªF«ªU¨V¡Z…B; í(´CåW민~ð w,Ü1óÀÌ3L1eÄ”§~äK&_2ù’É·Œ¹eÌ-cêÅÔ‹©si…K+\Z!{ïì½³÷VyÂÏ‘ŒG2Éø[¯ßzýÖkö—³¿œýå´ŠÓ*N«¸ôÓ¥Ÿ.ýôÔCëZßÐúÆÜ7æ¾1wÍÃ5×<\ö®²w•½+¨T ª¨?@Ú$ø›]ïìzg×;3úÏè?£ÿ+Ý^éöJ·­½¶öÚÚëìÏäÙqÏŽ{v\Ë&-›´lRühñ£Åº;¤G¿¿óû;¿¿óñ }<èíÍoo~{óÙŸC•^UzUéÕíÉnOv{²þÄúëOÌÞ<{óìÍÝÒ—øºñuãëÎNž<;ypÕÁUW3rÎÈ9#ÏþLÚÏn?»ýìŽ;vìØ±Ò’JK*-qw8?EGGGGGÛ2=nzÜô¸Z µj%¨çŠ8¿m6~¹õ—[¹õÅy/Î{qÞ7E¾)òM‘´6ÍòmË·-ßö•2¯”y¥LÝüuó×ÍÙ.²]d;7€´æH¿#ýŽô›6}ÚôiÓóà˜Ç­t´ÒÑJimžöwØßa×F]umTjF©¥f¸w¤M[æm™·eÞ°;†Ý1ìŽAt mÎsÀ ƒ º­ám ok˜½PöBÙ ¹wœÀ¤M`à<õsŸŸûüܧó÷¿ïüýŸ‹ÿ\üçâ“=B®˜ ¢3Æ—[u^ÖùÇ•mšùu tŒ*ù›ó"ëF>U3âçä7’z/Åç=0&)Óßv÷N¸a÷²uõã÷nn±lò¡ù;g¯Ú~dçIã18bð¸RãJ+ÕèúF×7º>Øìö»§œ+Gß?úþÑ÷Çî»{ìî®ýºöëÚïß§FëËÖæñ}âKµ)Õ¦T÷€sk몭«¶®zqé‹K_\:ö±Œ}àd™#S,·æ¼ú’±W}‘uu±½å2g=«Ðº¨ZÙ+å,Ñ)ªCÆÑÁÏÉ÷$_TùèG>L¨½¿Tìäø±»·T9˜¸î±ß›îŸ»ò¡Ÿëþ»ù¿ôùKŸ¿ôy§zêuª—åp–ÃY»§„+0i“8lر=¢Û¤n“ºMúâî/îþâîyU¡&ÆgžwÅšÛo‰¾±Xá+²g½+WåÂó2~}ºfu¨glñÄ ›[¶íÐ/¿v›vuì…k«üxà„Ž_zUéU¥W©1¦Æ˜VUXUa•» ÀÙ4gÅœsV4­Ó´NÓ:'þª¶‡®¯˜¿Ëúõgä»®ÆSåLÈtMÆ ‘O׬VŽÚp¨å·y—<[t@¹q½¶~µ½úž{Ž<‘×viÝ¥u—Ö={&öLÌþNöw²¿ã.pvÙsdÏ‘=ƒntû Û_^òò’—OèC•#seê•¥MÁ×/lÛ8gçK^ýbÖë.ÈVzÈéšUòÀä’묻æ‚7ì½óç©ß?¸{Ì܈©·ŸøF?2ú‘ÑÜxÛ·Ýx[P1¨Tt¯'`Ò&0î¾¾¾wû¸ÛÇÝÞ9Cç 3œÈ‹=Ôkw¡ž—޽éñ\Õ#ÚGÞñøÙŸøêø¹«÷·ø~×€r;?Ž·¥úÑÇÿdæ'3?™¹ÇÕ=®îquÔ”¨)QSÜ|΄}ý÷õß׿û¤î“ºOšôßIÿôßã¯[⊻s]÷T±vñEËVŸqYûœËÎÁœ£4J>|Ü´Ü;ö¾wøÞM÷žÈ«¦æœšsjÎ:êl¨³Á}àÌù9ê稟£ê笟³~Î_°r£Ø6WæëYçî¦2¾œëš¼íÏþœ¾º¡âÊWwÖœÕ~ìs±¹~Ù8ïÿø§`u¶ÖÙZgëðÃg ŸQ EZ¸ï„0i“[qwÅÝwW§<òtÊóõÇ_üõÇ©Ì:&Ïï®nr×Ko)Yl|•¬YûGüqGDý´s-;[•ûȾo¾žeǪ--/s(Õ¿(x¸àႇgý9ëÏY/Q¼DñV§ËÒw—¾»ôÝëž¼îÉëž<þÈÖ%~¿lÏ=í?(Ú¢ø†B3Ÿv®"þÏ£•“ÞŸÞx^|Ì„N1}Š®~ñøã»Æuë÷ìCÏ>ôìCda€•ÀipMpMpÍ[÷¼uÏ[÷<ßõù®Ïw=þð¢»ïÈܽOô#U_÷S䯙¾ËÜ9í\ÊÑnûFìyl糊{t×®Ù3>ëpüñ“¿˜üÅä/ê^]÷êºW[¤w`Ò&0†ÖôZÓkM¯ªC«­:ôø#oþ¥ïïì-ÿáµ{s\•^®nKã_‹zdB·fnú,±zü}Éߤ6rzÏé=§÷¬õD­'j=aUp*F¯½zôꇮ|èʇ®LmLÕÊrføÎ§OÕ)ûEÙ|E»gÙö¯+éhr—ä×Þk>¹ûöÌOýðvç ÕSyY©ËJ]VjÚ³Óžölž[óÜšçV«€ç凮=tm»Ýív·Û=kÓ¬M³6¥6²P«ÆÛ­/8ºA­;#ªDýquÚ¿º£ ö¾²sÞ¦AŸ¼1°wÜS¿µ^”êß:öþ´÷§½?}¸ÔÃ¥.” Êe­ Ò#0i“+K*/©¼¤rƒõ Ö7XŸÚ˜KiòL®÷ê뾦à™Žd{82)=^iòçIß%¿µxÜècÞ˜Wùí?w¥úÌàá— ¿løe·Î½uî­s­NÂÚ`m°¶_µ~ÕúU{%ñ•ÄWS8¢æÓKÊ~ß|Ƶ{ò¥ãr´eÆ®Gâs·{é…5«n\òÇGtOm䯫~]õëªbù‹å/–ß2àÄí)°§ÀžÕ³TÏR=ËÎý;÷ïÜ:&ã½Ñö”ÉÓ¥ýk=3YàŠ¢·¥ßë[ÿû¨ÅãÖÆû©×ðÔÆt¬Ù±fÇš¯}}ìëc#sEæŠÌe¾€I›À@˜˜ÿÌügæ?sÓ›†Ü4$µ1·,y¥ÿ ʾ¦Fްz’ßö¨?Ön5úÕŽwlHõC,%J”xç¾;÷ݹÏjàÿ0!˜LèõU¯¯z}5ôÓ¡Ÿý4tÈïä_–)ÃW›ßzì’ h÷Oeª&×¾'Ø$ IœØhÛòg.–sCªo×—Õ[VoY½’“JN*9É’àøvNÜ9qçÄ ï¹ðž ïImLÁl Ÿj=´Ð¼›vvü ¢CÄå/‡Çµ'4Ù[lÜÚ›ÞÙütæCµ6\õçM¡cšo>¼ùð÷—¾¿ôý¥‘/E¾ù’5@z!&mŠT ½[Úki¯¥½ŽývXóI¡R7†_ô›¢PB…’Y>éüÁËV˳¦x÷Œ„Žy8ÃÃÎðéÐO‡~:ÔšàøzwêÝ©w§Ô¢ßÛž¯_<_¡Ÿc>Úvùì°Š~Sä rQ] ´XX¸Ê”¿^»¤BåÔVþ®òw•¿Û:sëÌ­3­R[8¶plá Ù+d¯=µ1%o¼ûƒç+.פÈÝåÂ)úM5=ǧ¹s–ÛÔ½Ì[Ûò¿pí¨w†Žù¬Óg>ëÔ%W—\]ruƒºA]+àT€tl]u5ÖÕ¸nèuC¯û‡P3êí,‘}hýùEeæ\br¦¿Â»YÍ}_†ØöE>®_ª]ÉòWµËvwè˜{{ÝÛëÞ^s«Î­:·ªõ@¨á¹†çžëÍ ofx3Cho÷îUdØ{‹{/ŸéþŒ" ïj\“¯òÀ\™~øì݉—OmÌå9/ÏyyÎý%ö—Ø_ÂúàXñ£ãGÇnpSƒ›Ü”Ô:©uRëÐ1eÿÓuË€¦¹7UÚWûµð®FÄË‘£#K\0±ùžÚ™×¼Æ߇Ž×w\ßq}û4ëÓ¬O3ëàT€té@ã4¾â+þ¸âÐÞ¨‹2׸û¾ Sþ,s0[‘è‘QíΟÊdx:Sþˆ‹›7í¿§è%û\9[ïÐ1·¬¹eÍ-kÖmY·eÝk €s–ÌY2gI =2ôø‡è÷±[ÚT¿ çsc;.>"¼”?*sɵ¥se{ýÇa#^ª8?´7áæ„›nnsk›[ÛÜšü~òûÉï[KÉArÜmu·ÕÝVÿ5é¯IýÃÃÊuytÉà\Ù'•™péCç[y 9O¿¹'ex:b|³ ¯å+Ú?ï¶ÒA¦›CÇ\Säš"׉Ÿ??~¾ep>Û‘wGÞy›6hÚ iƒÐÞö¯Üø]·ŸiÝñÆbEÎç*•oUüê¬ÝæºúÒU¡½s?œûáÜM4qÐD+ €OŠ~Rô“¢cßûæØ7C{Ët{èÍ׃lsKλè¼þ©‘ÿ÷k^k6®P±~o·7´·ã7¿éøÍêù«ç¯öŽठ€t泆Ÿ5ü¬áôñÓÇOÿ‡clÿá˜=%×e{>ï­QÿQ« õ2NŒ(xÇ›Ãþ(^9´7.o\Þ¸¼/|yäË#Õ à¿ðù…+Ь(²¢ˆZœŸ6tÙÐeC—=pèC¡½Å¶ÉÖ£dŽoËGVúZ­R:ÔøÞ»îÊÕ©bëšÏ„ö6jÖ¨Y£f {ö$ìQ+o3?›ùÙÌÏ¢£££££û~Ò÷“¾Ÿìm¼·ñÞÆ*óï€tcwåÝ•wW¾û·»»û·ÐÞ&¯¾ü^‘óýRúÏÌÔêXYŽæŠÉðÉ]W4³dÞÐÞ·&¼5á­ Ëk.¯¹¼¦Zœo& ™0dÂ%O-yjÉS¡½Ÿí~eõE}2 ÊðSÄÏju¬ëçU¿(ÏÕuoÓâ‚¡½5:ÔèP· ß&|«Vç‘k‚k‚kÚ¼Ðæ…6/„vF_|Uá†só¿ºïõðwEƒ–Á#%&ß5¤çäÐÎ=G÷ÝstXÏa=‡õT*WI-’Z$µhsw›»ÛÜÒòê¯>ð꥖^Xz¡0øßéFÏ=[ôlÚ~QíÏäÌá¶ú—å¥J©)P«|žÌù¯Ðmcþ¡½·î¼uç­;“'-NZ¬VçƒØ±±ccÇÞwå}WÞwehïÔ½¯Õ¨pe¾á¹[g|D­RóT¦vÛ‹–È{ WΨÜǶŠ8q(âæ6ý°©*œ?¦ž6zÚèÿ–ÿoùÿ–í-z¤e¦GƨRj"‹f•åÍòýžh:lphï³ãŸÿìø-£·ŒÞ2Z­ ü|yç—w~ygj½Âàùû•ißïe~/ó{™ ý'ôŸðáåu<ñyÁ^ªt"®èÕòƒ<g«½0ýǶïÞµ{×î]Ó®švÕ´«T à|ðÆÑ7޾q4´ýöë®{.ß³u’+÷ÎåÂÿ!ê© ÏGd˜þéwUXÚÛ#ªGT¨ØÌ±™c3«@x;r÷‘»ÜÝîòv—·»<´·lÄ#-ûß™#ÓcYnU«ãË:¦hý²ÌÜð‘Ö¯†ööºº×Õ½®V%?5Þ­ñnwŸöİ'†¤0øÄùk x´í£mmÚÞø©ÿÔ-ül–…9‡d¦J'"âæÈ†]o=øf¾¢ÿðWòtÈÓ!OB¡„B …Ô \í躣뎮ƒºê:¨khoŸ†s•h¥J'îâ[J5ÏÖòþÌ͆º>´÷íÚo×~»¶*„·qYÆe—%´=Wôe­k\‘½bÙÚ»«Ò‰+X¥Ñ¡6ÿðÓsJµ)Õ¦TûkÇ_;þÚ¡JNòÌÌ33ÏÌž­z¶êÙjmõµÕ×VŸ:0¦­,±²ÄÊ /¼ðï5)¢rP³ÂË sVT¥“~;Ýä¢]Yº–™Z{@ö¡½3gΜ9s¦*„«·s¼ãí¡í/>xßòâSòÝŸ»RÆ»Uéd=Yà®ËŠnû‡·£K_]úêÒ¸±qcãÆª@ø9úðч>Üml·±Ýþáûü[”ëRS•NVäL—e9P"h7 W\hïË™_Îü²O×€°% >m¿SYL@ZöÆ 7½1(´½i–W\pGÄ㑯E<£JÿN݉t.°)´ýáŠW|¸b0( R%€pr°ÉÁ&› |{àÛßííøM“)ÿR¥'ú×\û¢2?^ íûôíÔaR‡IT ü|Sÿ›úßÔmϳðÊÍ ªgš•7¡fªôïänTùÂkŠ„¶O.5¹ÔäR»¢vEíŠR%oÂàS!Ò¨¸—â^Š{i|‡ñÆwí-ýM ³ûЧS¯øÒLSŠ\~Ù,{plÁØ‚±ÿ|úϧÿ|Z•ÂÉW¾jôU£Ðö´}è‚û²/ÌZ=Ã'ªt*Y«BÛCÛ»eë–­[¶äýÉû“÷«@8yî¢ç.zî¢ÐöB£o¸ûÎ\ês*"¶eX•á³¢“[]ßíÍÐÞ ù&ä›O•àü! >Y` ú6Ç·9¾ý‡¨¼fÃÃó ŒLÎðLÄxU:uµïïÜ5™ÐöÇ|8æÃ1êNú¼ÛçÝ>wìqÓS«Ï©+ðXž…ÿlôúÕUóì í]U~UùUåU Í·m^ttÆ?þø×-›n<4#-̪뭭Šù‡Ý`L<0ñ€Õ¾Îýuî¯s‡¶.Ô$öîØ´0ä7ºÆÛ±í«¶c*­Ù?dÒÃ~¯÷Ÿ7Û¶ýõ£åš|´òÇ~oÜ;~ݧïyaÔþÎ=ùˆ´Yç «²Fd?WÞËÚÔ¨Ú»þðúÃë[p>§F ¤9÷Üwpß’K,ùÛ_’f“wh†7r,Î?$jÏÙŸÕwí߬´ãñíãÿ¸îH”–r·Z°nò ½øàê`å¬Z¯NÛÞùÓŠíÙôÕ+®Î¾Ê[ËÍ“pðH\òØ-w}˜Xl㊥ù]ÿÜwÞÞ]ï­a×6ú«ê¶y¿M=¼ë ¾õ|Ä_/¿eMîøË‹u Ö-X·ÀšHï–\XraÉÐöÇŽ´9pA|º¼¤ÜAƒàÇqý¿þ)í=ÿ¯êú ?g>´ýµ}¯í{m_°$X,±&Ò»ay‡å–7´=çΪwnçvøªm=Öß±²îË¿wê±mÇŒüÜ¿fåìŸ'³nÇŽäÊGo:2êp–­Ö½·ïÂåWÌûhMçA‡{tÚP⣟ûö – ÒZµóM¹&ºYöÐöYWκrÖ•V#B|,0æüùöŸoÿùvhû•ÙÚþ}ÇÙŸÏï9c_§å->ëÛýßáÇaÍßSåØ#äÜQ¸qÔ¨úG»¤`R›OFÔ+Qý¶_ç-Ö¨æ÷þ™ï±L³Ž,œ2rÌúnØsdùþ'ß;s×xq¶FåœÚ>·ÜÜrsËY“éݤ^“zMú‡Ot¨[êŠ{r]—Î.&wÐ øñåI#oÚt׊kî;˜æÞÑd®œqdäÈëê_92w•cÛ“£“£“£÷,ݳtÏRk ý:üÜáç?÷ÛÞßöþ¶÷ØöŒÓò*tI†bÙ–äøø\Í-yTò_É}7v½ôµIñ™ö\¼mFðZÄç‘Õ¢¿«{Ã…Å_¾+ÇSAù}=z¼]©T—û*½¸0O‰*Këõ .Þ fí¾dä·ß.ºF4ŒHk5϶µd ÿK4࣠°&€PÂ`0æÌ‹;ï>2«d­«_ÌÞùlÎd÷ôµÍŽ œÕ²_™íÅþÝ:ÇÏJ^úÓÞÑ%÷üïyºy÷—¼=SB»6£”,ñmæ7~ÛYxÑÅ}²ì)ñAÕÙÖU¿àî=ù¦ÅÏ<%i[–¾¹6Fþ‘òª!³ÎY]÷Ì]iÊ_˜¹phû”¦|4å#k »+¸+¸kâÚ‰k'® í,ôjÞ.™nMËÓßÑ%¦åÑ-ã»}ÓpW÷â‡ßxsÕå®ùeÍë·þ|˨´<óÛ‹4h—¯Ghûï¹~Ïõ{.  ýZÿêúW׿ÚžïÕšÝoêpnç¶ïÅå-(z¨Æ†ŠþïýcñÅmç=ž»x×Ö#²ñéQûûYk/^þõ\s/½»zÜÞ K«|׫@ûëîlµ.e|¦Vù™—Öjžá¥,»³ÕˆÊã§<ÿ9¶}y‰å%–—H¨—P/¡ž• ¤æü ƒÀ@šóEç/:ñAožñE[g¬qvæptø¡w’®œ¶´gÝ­ æ9|wrÛ+_l;>ú…“=Ά=?õ>¸ç¾âIRZjMy j¾-)î£.Xpá…¡¯Ji?öUEÊ\º6KÇ3w½™Wå8œá~t}—í»lße ‚V&@z71nbÜÄÐö_­ykžß#.ŒØÔOËóÿò‘…‹öæºÿÃ~ÁšÖ ·õÙ5•7Ï=R&íW¾jñ I9Þm_ÔpQÃE ­L€ôë—~ùè—øg²Ù‡”ë]é¿o:´oÓã«*§|5#×ùÊE¯örƒ¯SZ.¿|àÀ¯¿>v|JK¾¨Ú±7ßœÒÿû®¡[/_ÞµkÃ4÷Ó*ÏœjË” mßÑkG¯½¬Là„~£8oÂ`0æÌ¯4¿ÒüJ¡í—e¹?ò½³3‡¯û,Ú>~OŽõã㣊v¬ôcÖRµËv>š?ÇÉg_Á­3î<¶¥ÄWÎȶ6µè÷X­ç¾?¹øÿžþ»«Þš~Gºôï_£ÆÊ•gä‚ ‚,å2]³!Ç?ü\8ý@öÙ­L€ôhkôÖè­Ñ¡íõž¯òdîAiþUÖ^”1{Ãÿº§d±¡ÿ›–g~ÁŸùkdú=´}ÞæýgÞ¬L€ôkñäÅ“OmÏüt‡Š¶:·s;:nßÍ{ZFµÎ9-zB¶wKÖ»(ã‰|¤sDÁ¨‡3>ø¿ÿ“&Ÿœ"{lÙç*>Ú¾.óºÌë2[™ÀÉ ï0X ¤%’®l“-9È ¢Îô¹~.0὘©îŸõ{\B¶y3fèÞäÏ—ï/Òx@›ÚmW=v²GËQ#ÿÛQß^Zð¦«rÝUqAÓí¹ëŸø‡9ÊÛ2ñߥsLÈß.j㙾ö"ŸVü%Ë›¡í»¿ÚýÕC€ôhCù å7”m¿øªÒu³6Kûó¿ô†2«³-èz¸Õû4 ýß´<ó¬¹2ˆü‡>õÃÔ¦þ0ÕÊH¿~üøÇü‡§üfHÊÚ-Ç¥çvnůmó±?/ùïKkÆç)µöž§^x+t×o¨Ø÷~î5ûᔯSö §ÍÊgžQ |ÑØ—¼ºÙêf«›Y™À©¿0X ¤ê•¿ sÁ3}–­kV”>ôÁì™_Ù¹5¢ud›à±›î{qD‘2ïÌoòóš¡'²g7T¹6uÏQâú;ŸXxQà O­)´éÄ_»,þÓËö&¥|]âå«e«x¦+= ø¶L/‡¶ïÚ±kÇ®Ö!@z´qùÆå—‡¶™›¯C¦aês º¥Ë–(Ú+s̱Íñ±ñ±ñ±Ê~-Ï·<ßò|¡ík2ÌÊÐ7-ÏüH‰M7e:8dCó•_ì[·¢ç‚Á›öŒ{¹ÿ¦-ßNªùöµ)c UjÝ®vڜԒñ¹ m_SgM5u¬Làt 0X ¤9ï-twÔ“gîø‡zÆO¬0}úÓ˶¾•4'±@P¯ö”ªäß2áú.wmzøßE¿©9þÑ’Ç&I~cöo½²sÛº: ~>˜?ãÞ,#"F_µª]TÞ¸Ó;“PÙ’óöÈÐ2´=托'bž°Ò£­;·îܺó~¶~Ÿ}v†¢ês¦•-Yìé,{Õ ¼e*’¯F჌Aî _Zžçšÿ ½ç©¥Õy£D—7Öí{ïàsSölZ°cfLjǢfÜT<¾íí/ÎwcÍq7¶=‘}Ãg_ä¾Le²lmß4rÓÈM#­CàLH¿apÔ¹*Yttttt´¥œˆ,wå\•¡GÐ=(œæø3ù‚ä®ÉÓ>ß÷üƒ[çÇ%ìèб̛µ[d¹Z·»ÍûtµÇîZ”÷³s[›ÿwû¡ùßÕysüÎ[¶5ÿïöÃû2”ËøLDŽ[½º±hË÷ò5]›éÑGg2ÎxSÖÚ‘ó‚ï‚o¿í÷Û~¿í÷ :ˆ|ß™§d¬ùbP1‚Fªqæäÿ*w׌Yƒ÷½_QÕrÖ‹.¬ ‚ ]~ÆCò ]Û˜itðZõYîóOÈÙü¢_ªäIkóŒø+ÃçQχ¶ZæÓ2Ÿ–ù4ø4øÔb Mh’³IÎ&9ýmjØZ, žøð”0¸òˆÊ#*h4ÎV åNi_äc¯~ ’‚Ÿƒ–§ù{uá÷\´¾Ç¢ƒ\ËŠ¬Ê¸·qç;®Ý?¢FäÊàÑ`Ap&óߘç7<ÉÜ¿†fܵÿ¯ªßÏÙŸ?¥=ïÊRÛ25¾áÎg^4&_§—6d:Ó{ÿWç/3dA×Xuaþ³5Oäðà© ZKÏô¹¢£6üñÇúÉóõ×W]NuÎôaÆÊÏ¿“_]2>•i^ðxðAP -Ïó⻟¿ùãË’OŠJ\t´ç¾¯÷ ;*¢h†2Á´jï|4zìU£Úÿ”÷‚!öXýxµrw-È{á£.xælE¿)ŽÎ84/)å¯-~9¶ý…’/”|¡dÕUWT]a}¤/?÷ñs?7îÍqoŽ{óØö#MÎMz6‚–é9,®óAÆŠ;OxøMáTÿ]b}-˜dÿû`ï†ÂékÂâ¸ïb¶‚;Òç¥<ñwù®·5¬ŸÒuIÎÒyb–/ïÚµatÚypr¹Ä^~ F m¯;¶îغcoòx“Ç›XŸ¤…ß úì{°ïÁЉ+&ªO8‰{2îɸ'§ö›Úoj¿±¹Ææ›ëD^Õz_ë}­÷Õx·Æ»5Þ š̓ægg¶ç,®•P+¡V‚åüƒ§#Ľ·}DÂ+AÕ EÚ~j°õ7]³æ¦GƒÿwÏnlå-åæ™óОM_îϱc|BTŽ÷FU¾é‹Þ£Š *úL¥È¬ñýû×è¿råÙÜïê`Äž×'ApïßÛk®=¸öà*µ«Ô®RÛòH_Væ]™weÞqÁ¸`Üßß´\{ nâæ»óÏøÊM-öyÖ›ÎÏú¯^¿éåÃy‚ èãÝ@ø¾cߺ{Á¶«‚4¹Vpù¾\ŠtFÚwdgÒ?ü¥y­[jÝRëõH¿®ºóª;¯ºsy°o»oopq0#²äÏuAäÔŸ·|x]…k?ìöK×–Ÿ1'q´*¿´:ýÞ™èöààð_ñsjìO íÌ~ ûì¬L€ô¨HL‘˜"1Aæ sùØöï^XúJìÃ÷M;j¯Jg–‹v-ˆ¿8‚¨`ɱíµÿSû?µÿ£>éWµfÕšUköþÌ÷g¾ÿ·ò;òòÎÁ›?‰º3ÇØs_8»×ÅÃ__•ûµ×ü%¹òÑŒZ ºù¾¹¦F³ý9æ—/ZyeƹÏW.á·¸µ1yV__ñkv=<§ó”fIŸîvà@ÊÓóß[ï…Ûòþ ÉÀ»¿N;•?{uï__‚àî Ã±í¥Ž”:Rꈕ œ¬ð }%Òœ†Þ0ô†¡óƒùÁü¿;¾}óØ£ ô-ûlæts-1ϯ4þ’ fÁážûŠ'UHiÿ¾ý€J;?Ù£Uy´Õ‚è3²cøHùýYSþòâÒcÛë¬w°ÞÁàHp$ðv ]ÊÙ"g‹œ-‚éÁô`ú±íŸ?1ÒÞ‹“ë&¿ì¸0bKP_­N¯%ÿˆÜÿXAÐæØö«¿¾úë«¿N›o8•ÚUjW©]5Èd=¶ý@—¿žûegö ôÅ—;WsËòp¡JTJ^~ô¦#="_É’”­iÒ“‡#NÙ}Ýœ“gïæ“Snýß ¾ S‚¯‚EA5W±×Êý\|MÛÛŸ˜ð[÷^%[$]~ùÀ å¿ÁÞk_>k]h{Á>ûì4 þ?þ Õß(Â:ô=V¤› ¤5µs×Î]ûþÉôú={`h:ûqrÓæ!Gç¥ýyîübÕÊ#ÛBÛ›¶kÚ®i;k Œ Fµ(Ý¢t‹Ò¡ÛŸØ3$~’" ã·Îúh÷ë¡íï»xßÅûÔ ý*ùDÉ'J>Ú¾û‰ùoΙfxùå~ýuJô[°Q£«Û¼‘eJÑûËÞž¡~¶F9¯ø0cÙL#3ÿXøõ’ãrM¸¼N­Šß~g¯'”ß÷x¡•W~¥ä}÷¥!íÔ<ñ™Ãù.HˆÝåÞÿüíJ7\¾áò QßE}õ• ¤&%ôíûIßOú~Rzaé…¥¾úÀ«¼úÀñ_•ú®­¾¶úÚê=[õlÕ³Už™yfæ™™^®:"99999ÙíÒŽƒûî;¸¯hÉ¢%‹–<¶=Û˜¼C3¼ñÀO3*—}G•N¯¯gõ-´}û¯Ë§–‰=¶}Iå%•—T.ó]™ïÊx; Ž}þÅç_|þEÛÖm[·m}lû°’Of*Ó¾Õ²3òÿ®J§Ë‘eG;$u(\ïÆÍ?=ø··^111{–ìY²gIP5¨TU+€ô«VéZ¥k•þmïo{Û{lû¥yûÎû¬P†bÙ–äø8-Ìsùò®]þo_lj±nʘ´ú+nÈŸ+—¾¸¶ÎÛCžœslûë·¾~ëë·vÞix§áÖ$çJtttttô±-Óã¦ÇM«•P+¡V‚úœ+Ûé{qoŠ¿íôMWqo(;€4'[®l¹²åªš½jöªÙm?ØfOçÄÇöWÛÕ%!¯*.‰'¼\.4úMQªF©¥j¨@zW}}õõÕׇ¶¿‘yLö-™ÔçôZRò+¼Úþx®Çs=žKô ØóÀžö„¶Ç}¾²ÁÒœigž)±îñÃÝ´ý¦ØÝtNÌä¡í ~jðSƒŸ¬F Åù¹Ó75` z¸ÇÃ=îÚþG­¯Ç}«>§Ë–Ï—;T'´½ó¨Î£:ŠìÙ'²*¤wyïÏ{ÞûË-_´|ÑcÛW­Üsø½-wí¼8þ¨*.'}²u럡í-²·ÈÞ"»ú„‡†± cþÃ?¢Ý¶}zî¹ÕçtI,(ùÀ=ûö¬³`IhoÉ,%³”Ì¢Jp>ú¦F ¤Qõ÷×ß_hûœƒjîÌ–‘øRòíªtêæ½3tà®5¡ííÛ´oÓ¾ú„“^÷õº¯×}¡í¼>£ßŽjêsêv¾±·úÑ‹¾ê±hÉÞ<¡½åW•_U~•*„‡ÂAá pPþ‡ò?”ÿáØöø¦;·o^r¤îÎÏ7¿¦J§nï]?Ïü¾[h{ŸL}2õÉ, ‹T λß„¾'@ ¤Q9ŸÉùLÎgnyûÈÛG†ö®½nÁÊUéTÄìÞX%¾éÖå+²~ïØöÜ;rïȽ㢗/zù¢—U œ4úªÑW¾ m½ÂèÁ[Þ=PýÐÂÄVªt*Þ{gò'Û …¶88àà€ƒ9"rDäP%€pÒûÏÞöþ‡O}ØÞö‹ïSŸS‘\8±|bóÍÍ>ùr@÷ÐÞ–»[în¹[•àü!ô=Y` M{ìáÇ~ìáÐö)‡ŸÈ¾e\òkI'¿¤JÿÎìo ÝY,´}Яƒ~ôkðpðpð°*„“lÓ³MÏ6½ëƒ]ìú`hï×Moº£œ*ý;1÷åJ8òÚÎÑ÷ly=´÷Ö‘·Ž¼u¤*„Ÿë¾½îÛëþáE{«ÿTtÖÂø{vmŸ¬JÿNìWËVÎÙÚÞl]³uÍÖåOÈŸ?A• ¼ }O…HÓ.Üpᆠ7T¨úCÕú[Ç­ÉË‚ù<ýu†¸_Uédí˜þgþÃ×Ü2¯Û®¡½7nܸ±*„«÷?¸ÿÁxȳo¿{ùƦ»ß‰ýåèU:Y¯ìµbsáxÛYå‰*OTÉÙ:g뜭U üd”qPÆAZh=à¾Ïoù`â_Cæ«ÒÉJÊ¿âpö ÁGÝúä í}úÈÓGž>¢J®„¾§‹Húî?ºÿèÐö™ýþ3{Û‹‡«ÇuI|@•NDò´¤¯“NÊÖ}÷æI¡½#÷ŽÜ;roÔö¨íQÛÕ \Xp`Á|xàÃC{{}=t߆OTéÄý>uÝg'¼sdr§í_†ö>8ïÁyÎS%€ðvÇá;ßq8´}_ÌŠ± ~>ðëêy¿¾©J'nÇÒ¯²Žù‡ŸžM7]Ütq¹‚å –ó@(+Bß3A ¤¯¹xÍÅkZ>ÚòÑ–†ö~óÖ«7îè£J'âç>:îýýಘê‰{îo¾üùòçËó7ÿxóªp>x,ãcËÚ>þ›ozï~qnIJçö%©Òñ%ôK|!9±ÉmúãòÐÞ×^Ox=!÷‘ÜGrÛ¥æ2È<"óˆ–´ü£å¡½«“ßšðèçIûãß8©À¤“ DV‹¬YM­Î¹[çn»õ»?½ûÓ»?…öÞ’çñü´»SìØ£o©UjúÅThó†=Ù÷Å%ÄÛž59krÖäöSÚOi?E•Î7·½¹íÍm/]uéªKW…önÎÿòù—{6Ày§e—–]Zv©Ú¯j¿ªýB{›ç{²ìŸ½N¼2ù µ:Ö—µþ¹wÑoŽ™¸eghïWY¿ÊúUÖ¨úQõ£ê«ÀydN0'˜3æù1Ïy>´3æ÷·}]gO§E=¿¼G©þfs0!xkC³Q]ú6 íÌ›1oƼèû@ßú*„«È‰‘#'Ž1fĘ)-BßS‘œœœœœ¬@ºq08¼«û]Ýïê>}üôñÓLJy nÆãeÆd{>ï­Qÿ9ŸK•øÝÑÉ;FÍl¿e}=…×ñÓŽí͹'çžœ{þZðׂ¿dª™©f¦šÀùiGÞywä½(ù¢ä‹þá}AûWnü®ÀÛJtŸ[z@pCP#Ès>×ê׋ÿ*s`ô5Û:—ýoùÐÞª¿Pý…êÌ|dæ#Þ”œ×>¹à“ >¹àCzàPho™n½ùzãÛò‘•¾V«í{f6Umû¦/.þè~ÇøiÆO3~šQ¶fÙše½c ŠŽŽŽŽŽ>¶ezÜô¸éqµj%ÔJPÎ;€ô&[-È6lð Ã6¤6äý+oýqí¬Ã™öåOlu~))2ñåäÛ'·||÷æGC£ßs¶ÎÙ:g«è€‚{ î)¸gʬ)³¦Ì íýðÉÏëí|ð¥±|¾iëù\¥UŸl\th@jÑoöuÚ×iÿp‹‡[<ÜŠ ÕæV›[mnݽu÷ÖÝC{× ܽGp°ÎúÚž×?5v]<çñÉw¤ý~pÝ×}pèàßéRö™ÙgfŸùs…Ÿ+ü\!´7áÏ#³“G¼[¢éEk²ÜÓ!á£ó§2‰/ÇïJþý³)æÝ¼e}¯EG>:fj™©e¦–)uA© J]`-⚪×T½¦ê뉯'¾žÚûÆÔ1 ·Äõn=|ÛÆ»ƒ¶ÁóÁªó§2¿}¿vßÁW=p÷3¿þÃ_@GM‹š5m̤1“ÆLЏ'âžì @DAÄ€²Ê([îÖr·–»5tÈ_CúW}hß[×´üïàó­<;ßþ~ÜÄŒ[>™?dwhïãÏ=þÜãÏ5û´Ù§Í>µ”þ0Ž•ZPjA©ßtþ¦ó7C{<œ”ÜsØØÿ\S}ÏCšÅ— ïjªûnbî·ÞùíºÖ¯úñ£ƒ#BǼ×ç½>ïõ©³¤Î’:K¬BuÚ×i_§}Ý»'vÿ‡øÍ/ÆÝµõ{«õݸ:Sü;G“ú‡w5æì^Öu_|­æ÷µXq{jc–Ç-[—cCŽ 96X?+SÛLm3µ5cÖŒY3"ÇFŽ:fõ^ÐmJl±_rÍ{<¼«‘ütRÛ¤ [Z|–w؇[k¶`ص¡cîèyGÏ;zöšÜkr¯ÉÖÀ©é^•>UúTé3£ËŒ.3º¤6fd™VÛ×}þWÛ9 ö—¿ lúcýáVC;ÞðÁêÅ{Ël|óhÇÐ1ƒ%J¼­ómoëlÍp|Ï nøsÃ;ßÖù¶Î·…ö~ú·wo¿"º]áåu7¿¹³_|xý£¢=Á¾ aÈΉշ-mZîñßþX–ÚÀeõ–Õ[V¯Hã"‹4¶fHMîm¹·åÞöÇ?üq µ1ë?Ññ…eÛþš¾uÄ_É#“—'?NHh²ÿ¶Ø¸¿Š½¹æ‘»žÿþ®‰‡Ži>¼ùðæÃ‡ì²oȾ`v0;˜m圊ˆäääääd…ÂÃ’ÊK*/©Ü`}ƒõ Ö§6æÒ_š<“ë½z㺯)øF¦#ÙŽLJWšüyÒwÉo-7úØ7æU~ûÏ]_§6røeÃ/~Ù­so{ë\+€“°6X¬íW­_µ~Õ^I|%ñ•ÄÔލùô’²ß7Ÿqíž|O¤ßËÝ2c×#ñ¹Û½ôšU7.ùã#º§6ò×U¿®úuU±üÅòËo™pâöØS`OêYªg©žeçþûwî“ñÞèˆ{ÊäéÒþµž™¿,pEÑÛÒïõÆ­ÿ}Ôâqkc‡ýÔkxjc:ÖìX³cÍ×Ǿ>öõ±‘¹"sEæ²NH_¢£££££m™7=nz\­„Z µÔ‡sE „¡5½ÖôZÓ«êЪC«=þÈ›éûû{ËxíÞW¥—«ÛÒø×b‡™ó¡™›>K¬_ò7©œÞszÏé=k=Që‰ZOXœŠÑ«G¯½ú¡+ºò¡+SSµr…œÙ¾óéSuÊ~Q6_ÑîYv§ýëJ:šÜ%ùµ÷šOî¾=óS?¼ÝyCõÔF^Vê²R—•šöì´g§=›çÖ<·æ¹Õªàß9tí¡k]Ûnw»ÝívÏÚ4kÓ¬M©,ÔªñÀvë ŽnPëŽÄˆ*Q?d\ö¯î肽¯ìœ·iÐ'o ì÷Ôo­¥ú·Ž½?íýiïO.õp©‡Keƒ²AYk€ôHLÚ$ÂVÜ]qwÅÝÕ)O§<ò|ýñ×ýqj#³ŽÉó{†«›ÜõÒ›EJ_%kÖþ?DÜQ?í\ËÎßVå>²ï›¯gÙ±jËEËËÊ™ÚÈ‚‡ .xxÖŸ³þœõgñÅK/a%pº,}wé»Kß½îÉëž¼îÉãl]²á×ùËöÜÓþƒ¢-Šo(Ô1ó÷iç*âÿôìCÏ>”a@†X œ×××¼uÏ[÷¼uÏó]Ÿïú|×ã/ºûŽÌÝûD?Ruñu?Eþšé»Ìièá>G»í±ç±OÌ*6îÑ]»fÏø¬ÃñÇOþbò“¿¨{uÝ«ë^m!Þ €I›À@¸û"ø"øbÜíãnw{ç 3tÎp"/jôP¯Ý…z^:ö¦ÇsUhyoÄãgâ«ãç®Þßâû]Êíü8vÜ–êG7ü“™ŸÌüdæW÷¸ºÇÕQS¢¦DMqó8öõß×_ÿOê>iÒ'ýwÒ?¾n‰+îÎuÝSÅÚÅ-[}Æeís.;sŽ:Ð(aøðqÓrïXØûÞá{7Ý{"¯ššsjΩ9ël¨³¡Î÷€3ç稟£~ŽªŸ³~Îú9Od|ÁÊbÛ\™¯g»›VÈør®kò¶?ûs>øê†Š+_ÝYsVû±ÏÅæúeã¼:Ç_gk­u¶Ÿ1|ÆðZhQ …û@x“6 €óÈöˆíÛ#ºMê6©Û¤/îþâî/î>‘WjRa|æyW¬¹ý–苾"{Ö»rU.èöA·¿¼äå%//9‘WEæÊÔ+K›‚=®_ضqÎΗ4¼úŬ×]­ôÓ5«äÉ%×9XwÍ+nØ{çÏS¿p÷˜¹So?ñ#Œ~dô#£¹ñ¶o»ñ¶ bP1¨è^NÀ¤M`à<õsŸŸûüܧó÷¿ïüýŸ‹ÿ\üçâ“=B®˜ ¢3Æ—[u^ÖùÇ•mšùu tŒ*ù›ó"ëF>U3âçä7’z/Åç=0&)Óßv÷N¸a÷²uõã÷nn±lò¡ù;g¯Ú~dçIã18bð¸RãJ+ÕèúF×7º>Øìö»§œ+Gß?úþÑ÷Çî»{ìî®ýºöëÚïß§FëËÖæñ}âKµ)Õ¦T÷€sk몭«¶®zqé‹K_\:ö±Œ}àd™#S,·æ¼ú’±W}‘uu±½å2g=«Ðº¨ZÙ+å,Ñ)ªCÆÑÁÏÉ÷$_TùèG>L¨½¿Tìäø±»·T9˜¸î±ß›îŸ»ò¡Ÿëþ»ù¿ôùKŸ¿ôy§zêuª—åp–ÃY»§„+0i“8¿m6~¹õ—[¹õÅy/Î{qÞ7E¾)òM‘´6ÍòmË·-ßö•2¯”y¥LÝüuó×ÍÙ.²]d;7€´æH¿#ýŽô›6}ÚôiÓóà˜Ç­t´ÒÑJimžöwØßa×F]umTjF©¥f¸w¤M[æm™·eÞ°;†Ý1ìŽAt mÎsÀ ƒ º­ám ok˜½PöBÙ ¹wœÀ¤M`€¿Ùõήwv½3£ÿŒþ3ú¿Òí•n¯tÛÚkk¯­½ÎþLž÷ì¸gǵlÒ²IË&Å?Zü¨»@zôû;¿¿óû;úxÐǃÞÞüöæ·7Ÿý9TéU¥W•^Ýžìöd·'ëO¬?±þÄìͳ7ÏÞÜÝ }‰¯_7¾îìäÙɳ“W\upÕ9#猜3òìϤýìö³ÛÏîØ±cÇŽ+-©´¤Òw€ó“˜´I ðˆy+æ­˜·–%-KZ–4ëÝYïÎzwʪ)«¦¬ÚœcsŽÍ9NåÈ9^ÍñjŽW›?Õü©æO5ZÕhU£UÕ*T«P­B¡…vÚ¡ò„«õƒ×^?xᎅ;î˜y`晦Œ˜2bʈS?ò%“/™|Éä[ÆÜ2æ–1õbêÅÔ‹¹´Â¥.­½wöÞÙ{«<áçHÆ#dü­×o½~ë5ûËÙ_ÎþrZÅi§U\úéÒO—~zêÇ¿¡õ ­oh}cîsߘ»æáš‡k.{WÙ»ÊÞT ªUÔ mœf‹%,JH¸%á–„[2ìʰ+îê?Vÿ±ú*'+qTâ¨ÄQ?ÆüócLR‡¤I¢¯Š¾*úªKþ¸äKþP8Yk³¯Í¾6ûÖZ[km­q$âHÄ‘+r]‘ëŠ\Y¦e™–ešú„0@˜ˆT€ð `€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0u6OöCÔQ?D5ÉÙ$g“œJœ¦ÇM›W+¡VB­„3}.;€„ LD¥…I¤ly’‚¤ )H’ƒää¤ä¤äÿ}}lû }ýï^uölžgîÈæŸ6Ïr gLNNNNók Û™¤:¤ýY¥¯ž£™Ÿ†ïçϽP w!L¿>¥w ¾öõéýZÎâ×'ô;€Š¹"3Oï3L;?ñÏ·»ãŒÎr6ÏræþKO/Õ8?çÞG ¿ùœÞßäOý¿ôt[“ÛšßÖü¶æçuœ¢VR­¤ZIkŠ"‚ˆ 2ˆ´S‚¿}7Èd2( ønໜ§¼S¿øüÄÂé¿t?ÙÁÏô0òCÔQ?D9ƒœAÎs÷æ €° `€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0¥ágÑ3‹žYôLhûÕ/]ýÒÕ/…¶ÿ’á— ¿dø à?(¸,jYÔ²¨Íc7Ý<6nEÜŠ¸Ež,òd‘'Kæ,™³dÎß´ø¦Å7-–´XÒbI¶6ÙÚdksü™lïµ½×ö^Ÿø¬Àg>Ÿðù„Ï'lœ¿qþÆù;ºìè²£KrîäÜɹó®Ë».ïºË‹^^ôò¢×-½néuK[wjÝ©u§9þ©X¾yùæå›çŸ?~þø”Š­ºeÕ-«n‰É“'&OLtLtLtBí„Ú µsÔÎQ;GíܹrçÊ«Üìr³ËÍ®ðr…—+¼œ2Û:×¹¸ÎÅæf˜›a®µÀ¹‘œœœœœ|vNöCÔQ?D5ÉÙ$g“œÇ¶O›7=®VB­„Z n À©‹ŽŽŽŽŽN­7&&&&&fož½yöæ¹çû{¾¿çûoê}Sï›z'{–ï÷}¿ïû}•+%VJ<¶=¹Dr‰äƒ¿üÍàož»ê¹«ž»êß]Å'w}r×'w5z«Ñ[Þ: EÉär§DуZn}Ü¿;KÖÎY;gí|hè¡¡‡†¦„ÊGzéy¤ç/ÝñÒ/}Ÿÿûüßç?¥·¬±±±)±hÊñÿÝqömÜ·q߯û?¼ÿÃû?üâ/Þøâ3]ÿ5¹ÖäZ“+z}ôúèõ§~¿RœJ–å[–oY¾zIõ’ê%…ö^»ëÚ]×îJ¹_§rÒBêÀçVƒZ j5èT¢ß)ÑoÙÙeg—½ÿ‡ý?ìÿ¡ýí/hÁ©G¿)R¢ßè½Ñ{£÷žHDêÀç>?ðù ƒo|Ãà³ý¦hwI»KÚ]’²çøDÆo鳥ϖ>©õ¦íÿ® Mš$4éÒ²KË.-C{S>ÔzÈ„!†Lý„0ÀygMå5•×TþßÛÂ_#üõþÿÜÿŸûÿóð†ý0,%ŒœûùÜÏç~þ|¦ç3=Ÿ)ã茣3ŽNíh«ë®®»ºnñ&Å›oòås_>÷åsÇöÖ®^»zíêc^óÚ˜×V—X]bu‰u{×í]·wêü©ó§ÎoÛ°mö ?Û”'òþ»+}¦á3 Ÿiøû»¿¿ûû»©ÉûKÞ_òþòäóO>ÿäó3Ÿžùô̧—mX¶aÙ†ml{`ÛUü«â_Sªñþï_ñþu³×Í^7{ÊîäÔŽ™òÁÎёёÑ'ô¾;%âýòÎ/ïüòÎÐzN ÚSž4|â¡rŠ×¼Þàõ¿}òÛ'¿}ÚûFÙ7ʾQöÒΗv¾´³ÿ.ƒ€C'²[4å9µc_ûÚØ×Z¬m±¶ÅÚÔö€¦-%˜Ly¾ï‰Ì!%<~!þ…øâ¿»ôDf{Ýw×}wÝwŸVþ´ò§•Oä컯Ù}ÍîkÊýZî×r¿¦6æ†Çnxì†ÇŽÝ|â»`Sæ5=jzÔô”]¶¡cRž^œò$ãÓ{ïNdžÿýâ¿_ü÷‹Ú­k·®Ý:´·Y|³øfñ“3MÎ49“½¿§‹€àœyúº§¯{úºãG¿)RzO<úmŸ¥}–öYN$ú=öøÇ“gžøÇ /ß¼|óòÍ©õ–›Znj¹©)ÑoÌ1N¼z)ãS‹~S¬˜¿bþŠù'ûÑÍ);SëÍQ+G­µŽÌÄ:‰uë…úêÓ?ÿüý=ñ €Î;)àó=Ñóx8±ôÄÒKLÎËr^–ó²g®|æÊg®<ÙpñãO>þäãORëÝSrOÉ=%Oüh>ôçC>”ZoÛÛÚÞÖö¶S?µ]ÔvQÛÔz·wÙÞe{—“=fæ¾™ûfîûmô·ÑßF§|@÷±½)ÏZ®¿´þÒúKS;Â[ÛßÚþÖöe–eX–!´w𗃿üeôúèõÑëý·~¢”à|sÿ›÷¿yÿ›ÝcºÇt?‰ø³tLé˜ÒÿÇø{?¸÷ƒ{?(_­|µòÕb‚˜àdÒÕ G]8êÂQ©õÆ?ÿ`üƒ'~´5¥Ö”ZS*%L í­×¥^—z]N½’ÿ›sdùOÿÀ:e'î¿;òk®XsÅš¤è¤è¤Øéûm•o«|[%:ˆ¢ÿ¶zåC+ZùPï½wöÞúª;:ìè°£eÁ–[<Ù»@za0Ày§RŽJ9*å8ÙW«Y¬f±šÇså÷W~å÷ÿngmÉœ%s–Ìyº®ñÕæ¯6µyÊÇ)‡þ©”X)±R⩟åP¿Cýõ;swjÇ;nÜqcj½¹såΕ;WÊÇA§|@÷C×?týCׇŽ,S*¦TÌÈ‚# Ž,ècŸ›༓òÜ“}UÆÑGg}ü1?~ñã?þïf•éíLogz;}Uò‡/øò‡/ÏÜñSj>{Åì³WDMš5ýØÞØ}±ûb÷5¾§ñ=ïy{ÄÛ#Þ±¸Ýâv‹Û;&bCĆˆ Þö̰gD¿ç0Ày§xÍâ5‹×<G>½»xÓ¦„& MšLª:©ê¤ª÷¿uÿ[÷¿u¦ÏxyÑË‹^^4弡½3ߟùþÌ÷ŸiùLËgZ†övÍÜ5s×Ì7 ¹aÈ C¬|€ógœwRv…¦¯#Ÿ)OíݸbãŠ+VW^]yuå5¥×”^SzÕÍ«n^uóoŸüöÉoŸ¬øuů+~MÙ}T *•ÎÎÜv]¶ë²]—å_‘Eþ'2þÒ.½áÒPh@!{Î`Î#I“*&U\ÜtqÓÅM¿nþuó¯›ÿ²ÿ—ý¿ìŸÕlV³YÍþ6tÙ1> > >;·3Ï07ÃÜ sç¿;ÿÝùïÖ-V·XÝbGÛm{´mèÈ”Ž~7îݸwã.{ÉØKƺïç0aîÀç>?ðùÀÃ<üÚ¦×6½¶)rÌŸSå©,Oeyêp¿Ãý÷;;×rñ}ßwñ}G£FNmÌí#oyûÈZ_×úºÖ×1­bZÅ´²Îž @Øš}`ö٪쭲·ÊÞ×:½ÖéµNÿî8Y;g휵sÅK*^Rñ’ÛÜ>àö#òÈ7"ßÙŒ~S¤ìú½¬Æe5.«‘Ú˜Iå&•›TÎÝ8?Ù @ZôÌ¢g=ÓlH³!ÍNhoá' ?YøÉ«>ºê£«>ºrÊ•S®œri«K[]ÚªÅÚk[¬=4ôÐÐCCçÄ̉™óÿ}’nû }оyЀ°2¾Ãøã;lïµ½×ö^¡½)Ñ︧Ç==îéÉ™&gšœéÒ.½áÒbޑ֮(eGïýoÝÿÖýo…öVN¬œX9±ìì²³ËÎíÍÖ&[›lmÎæeÎ-;€+ÇîãŸ>þé㟶ÕjT«Qi3î õ\…ç*ÿû·¾ëû·†öö˜ÕcVY)^òÄßc£ßcÍý}îïsOù8h+ ¼yã@XÙ4ÓüMóSë-7­Ü´rÓN×¹–\»äÚ%מ‰«ˆÝ»/v_—–]ZviÚ{I«KZ]Ҫ߀~ú 86ÌÞ0wÃÜ sS;fŽZ9jå¨åã ›€°’­s¶ÎÙ:§Ö»¦ÔšRkJúYvÞ¹óÎw>wÑs=wÑ™¸Š'>{â³'>Û2n˸-ãþö6þ×È_#2aÈ„!B÷1ç¼,çe9/ûÌØgÆ>zÌý?ìÿaÿ×îºv×µ»¬€p% ¬m\´qÑÆ©õ~ùÜ—Ï}ùÜ©O¥=•öTjs_›ûÚÜ·yææ™›gžÞùOûcÚÓþßm|·ñÝB{)øHÁG ÖKª—T/)µ#ÜðØ ÝðXj½)+m0@¸V®[zÝÒë–¦ÖûJ÷Wº¿ÒýßÅŸ_·ÿºý×íëÔ¬S³NÍŸšþÔô§¦§wæ)»Š»eë–­[¶ÐÞrSËM-7u@¡…:‘g¯ª½ªöªÚÑ{£÷Fï íMÙ+,?`ÂJÛ†m¶m˜an†¹þái¸ Mš$4‰Ø±!bCJü9;ã쌳3®[·>îhÛ£m¶)S2¦ä¯¿ýúÛ¯¿½=ñí‰oOLÙq{ûÔÛ§Þ>5ôc™3÷ÍÜ7sßãÏjméµ¥×–N.‘\"¹DjcºéZ¤k‘”ÆÇ¶§ÌvÈø!㇌?‘è7Eþiù§åŸÖç>oôy#´7nEÜŠ¸ &7˜Ü`²5N"’“““““ÏÎÉ~ˆú!ꇨ&9›äl’óØöéqÓã¦ÇÕJ¨•P+Á-8uÇßÙyâ!âÙ<ò‰ÿÄÏr¦÷¶fk“­M¶6o¿÷ö{o¿×!{‡ì²Ÿøk?üíÃß>üí–"·¹¥HJËè¯G=úë‡nèö‡nßùîÎww¾{舡#†Žøw>]UàøÒBj0ahw±ÝÅv;G¾pð…ƒ/üõ5__óõ5)Ñï{×¾wí{×þ»£müïÆÿnüojÑo©¤RI¥’N%úM±|ÞòyË祄֡½¹såΕ;—ƒ`Âñí¿Fþ“““”Ò’«x®â¹Šÿ»£å›“oN¾9¯Wy½ÊëUV>´ò¡•]Òê’V—´J eoûö¶ooûö¤š;Èäîro—{»ÜÚûÖ·¾µðÔ÷æ¿´ø¥Å/=8æà˜ƒcB{c÷Åî‹ÝwÃc7 LœÕ¸VB­„Z Šp&œÕ€ÞÕlW³]ͦMŸ6}Úô3rŸìïJ]©óºRWêJוºRWê¼®Ô•ºRv¥®T…]©+UaWêJו†õyÏÁ‚­¥SvÑýÝÑýgé"’“““““Ò9Ï`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!`€0!€“6~äø‘ãG>vÇcwþøÌ/å,ùBƒWžØTèÅ‹®kðjÎBA™ Vý¬NzMðCpàÏof=·}Ö“¯Ûþì‘gâ6$=üõÑwDß÷?ÿó÷?±?«”rí)uHíC¡Sj˜ROëê|  Íyç…w^xç…åï/ùû¡½'Nx¡Ô›çÛ®ßÔ¤Ô!¥&¡½)5L©gÚœÿÌÏf~6ó³èèèèè辟ôý¤ï'{ïm¼·±;ûïx0iÈú2ëˬ/S9¦rLå˜ÐÞ–½†T+ö\ñÃUÞÊ6N­Bm̲ô‘ƒwLèÓeñ¦Ø½,zYô²è’kJ®)¹&-Ì6©ER‹¤ù¾Í÷m¾oC{Ÿöİ'†uÙydç‘yfæ™™g¦û{"ì mØìvß;ñÞ‰÷N í¼ò½¶+¢_ý_J}RjÚû¿Úîv»ÓÂl¿¼óË;¿¼3µÞWxõW(½°ôÂÒ í >q`Ò„>ýáÓ>]\qýÅõC{k½ïª|·©Ò‰H­V)µM©sZ˜gwk¼[ãÝ”¾Ç) >q>€s­xP<(^þûòß—ÿ~ו»®Üuå±-^¸°èo%c®JÎÞL©NÜúè#Lžøl×ê›/9¶=ÿOùÊÿÓªkW]»êÚ`c°1ؘf›èí0´ÃÐ)qÊÇD‡²€slaÏ…=ö ~óv/U9Ó…%¾jAö†ªt²Rê–RÃcÛSêœRó´3Û”ø¶g«ž­z¶Z[}mõµÕí þwìàkÙ(²QäâÜ‹s/Î}l{ëæïí(>¿HéËVgí JÿÎÖµ+Ê9ö³{ n¬yl{µØj±Õb¿Jú*髤´<;ƒO–Àœ3Û²m˶-[hô›ù¥œ%"_(ò×e÷dõœ×S’RÔzÛžRó”ú§åùÛ|²Àœ3ŸmølÃgBÛ¼òĦB/ ƒžA!U:% ƒžA¡ÿÕó„ëŸ6 ƒO„€s!6ˆ bû ï3¼ÏðÐÎÒ9jLÎuö'•ø×Ñ—’÷ÞÔñàúû÷¯Qcåʘç7<ÉÉgCÇ%7,5ónÞ:üýv·æ_ûã[îm´ªê;5n¶úÛ _u)¿qТŸFŽÚýNÂÁ#qIcÏôu¥VÏÿÕ?6ˆ bÓ×ò§Æ3€8võØÕcWòÃË/ÿ·¸Ø¢*u³»ý“!ýŠ÷?û³šUëÕiÛ;/oñYŸØîǶ?úè‚^ø¼øàê`å¬I¯>³ýÍÐ#_›«†÷,‘·píKnÉ’ÿÌ]ÝøV]žÚøè¦«—Î>ô·'é®ê´ªÓªNù_Ïÿzþ×ÓûºòÌ`;€8–nZºié¦ÐöJý›7ÈóòÙŸÏï9c_§“ nõã°æï©rìrî(Ü8jTý#]R0©Í'#ꕨ~Û¯ƒókTóŽ{ÿÌ÷X¦ÆÙGN9æÇN}7ì9²|ÿ“‰ï¹kL­¶©Ý‹ôÈÎ`0çÀW;jöU³Ðö \¾*Ëì³9“ÝÓ×6;2pVË~e¶ûwGHè?+yéO{G—Ü3&¥%ïþ’·gJh×fÔ’%¾ÍüÆo;" /º¸O–=%>¨:#Ûºêܽ'ß´ø™²$mËÒ7ׯÈ?R^5dVÃ9«ëž¹+M­¶©Ý‹ôîü ƒÀœ“wNÞ9ygh{öFù'FÍ9;s8:üÐ;IWN[Ú³îÖ†Gó¾;¹í•/¶ýÂÉgÞŸzˆ?Üs_ñ¤ )-µ¦”)¶eâÿ2»ò·‹Úx¦¯=µ:§v_Â[ø…Á`Ϊ½]÷vÝÛ5´=ߎÒ3Ýr¦Ï¾uÍŠÒ‡>˜=sà+;·F´Žlß÷yh{ŽiŽÚzæÎ{¨glñÄ Ó§?½lë[Is õjOy Jþ-®ïrצ‡ÿ]ô›šã-ylÒ˜ä7fñÖ+;·­«³àçƒù3îÍ2"bôU«ÚEå;½39ñ:§v_ÎOé7 Ž:W%‹ŽŽŽŽŽ¶tH‘©eöœ‘Å‚¯Nÿ‘“/Hîš<íó}Ï?¸u~\ÂŽ ˼Y»Eö—«u»ëѼOW{ì®Ey/<;׸µù·šÿ]7Çï¼e[óÿn?¼/C¹ŒÏDä¸eÑ«‹¶|/_ÓØµ™}tAp&àÿÕyx°ýïíuÇÕWw\ò‡P ƒ…ÁžWQyDåƒÆÁÙJ£Ü)Ò‚ÈBÆDL ‚ ñtyaá÷\´¾Ç¢ƒ\ËŠ¬Ê¸·qç;®Ý?¢FäÊàÑ`Ap&óߘç7<ÉÜ¿†fܵÿ¯ªßÏÙŸ?¥=ïÊRÛ25¾áÎg^4&_§—6d:Ó{ÿŸ:_eÍy ’$7H>«ÿ):iAÒöÄ6ɧùÀ[º¬¸ãPÏ[FäÝ}óÿöÚ^Ñ÷û"_™ÕpÎêºg.pMlšpsò ú¿ÿÅî•~߶׺·ÿªúýœý³2˜óÖÈ×êd{ðõü­ïêñQ§’¿Œù±Sß {ÎNô{æêLjfEÌŠ˜q6Ï‘œœœœœ|ö/õ‡¨¢~°ÿ༳:÷êÜ«swMêšÔ5éØö›;õ-Tä§ò¹¯œ³Íé:×ïú|о¿¼âÅ1Ûòœ®c>PrÆœ23²µÈ›1ª{ho̾µâ›Oðøm[^Þ“cýøø¨ˆŸ2” Þ¹ò’ÖÍ¢s]uKûŸò^p¦ãçã[û}³¸1Ó†÷ܾõÊcÛ§ÇM›g}†Š{2îɸ'§ö›Úoj¿±¹Ææ›ëD^Õz_ë}­÷õiÔ§QŸF)O>;³=gl­„Z µ,€óMÑiE§´ ÚíŽmßóÎA E‚9i}þÃÖßtÍš› þßø6¶ò–òGóLˆyhϦ/÷çØ1>!*ÇÀ‚{£*ßôEïQE}¦RdÖøþýkô_¹ò\E¿«óðàö¿·Ë·ñÞÆ{í0´ÃÐ)Oó r¹‚ÿ#ú}bØÞÖydç‘GžÍÐ÷XöàpVå˜g`ž¡í» ®=?õôž«|›ºç(qAìekKÕ?ñW}»Õ‚u“S¾nþYÿ·‹ÖÌS¿è¨ŒC{5õ‰'·lY¾ÛŽ< ‡‹”¹tm–ŽÍÚ¼‘±èî¡n(¶zjJè{n£ß3Wçðð·Ðwá« _]¤ü9®¿…¾­ò´ÊÓ*HùsŽœ³€àü”°8aqÂâ 4*ÐèØö¼%J~)[‡ÛÆU(UìÜΰÿ5V®Lùºcì'5J5‹~¡DÿL¿¥6~ý/>Ðwâ‘®y6· Þýû„K ñyˇ×ÕI ¡ï±F~zÇë6íÙ°¾cüÁcÛcbbbbbÎ·Õø;}O@ZØé›;€8«¢ªEU‹ª–¯w¾Þùzï~n÷s»ŸKiO‰$“º&eOî90rVDŸôrEÿ]öyÛ}{ƒ‹ƒA%® "§Žø¼åÃë*\ûa·_ ¼¶4ø$8™\µÊ/­F¿w&æ™Ô5©Ar¯=ý׈ïpl{ʽ8V`xìôMõ¿/ßb8ûšhV YáÁð`øßÚ|µ«EÂ59ƒ‚AÆtÇ<¿þÑøK‚ ˜‡{î+žT!¥ýûö*í|üdVåÑV ¢ÏÈŽá”ÚAðÑ?Ý‹ð^oáú+Ò7ξF“Mn49´}ˬåå×M_ײ÷¦ÍCŽÎKûóL­¶©Ý‹ô.%ôíûIßOú~Rzaé…¥žÈ‡<§„¾k«¯­¾¶zÏV=[õl•Ö>äùø<€s`W]=võ(?¼üðòÛ\lQ•ºY‡ÝþÉ~Åû«Òé5¾U—§6>ºéꥳý-]ÕiU§Uò¿žÿõü¯§÷k ¿gúž,0çBlÄV|Xñaûûíï·¿ß±™5µ\–L­³ˆ,¡T§.~ìIompË_‡mÏñTާr<µñl| Èär§Ç«úËG@p.är¹{uêÕ©W§Ðεû4; H§Kjõü_ýÓaô{~~¼ó‰°€sf[¶mÙ¶e»8óÅ™/Î|l{æ—r–ˆ|¡Ë'_U.×?hô ©Õ¿ôuÐ7Ø>¤U£e=z䙸 IÏÛùû‘ßü~¤ðÁ Lû—b§ï‰pŽ5ŠlÙ(rqîŹÿmjëæïí(>¿HéËVgí JÿÎÖµ+Ê9ö³{ n¬yl{µØj±Õb¿Jú*髤´<¡ïÉòМc½÷Ü{phû—¥^n´½C°.XP¥“¶.Xø_ O¸æiw>vp®ŠÅË_þûòßïºrו»®<¶³Å‹ý­dÌUÉÙ›)Õ‰[ýcÄÉŸíZ}ó%Ƕçÿ)ÿOùZuíªkW]l 6ÓÂlíô=]ìà\Ûl 6Žœ5rÖÈY¡)fB¹øë’Ä{'$¥V¡ÑoŠÿÕ9 D¿vúž `Ò„Z·Õº­ÖmÕ¾­ömµoC{çg|÷ÇÝŸªÒ‰H­V)µM©sZ˜ç‚ûÜ·à>¡ïéå# HCÖ—Y_f}™Ê1•c*Ç„ö¶ì5¤Z±çŠ®òV¶qjjãÿ§½û‹©ò¼8~@Çê)8mz„U3÷'ËÙFd¸Eãˆ2“ubtuN1v©í’ÍtbWŒt×èÌV—”T™ÓÔ˜igœft‹‰ ÃY–©)¤S v*Šgo/H(DgÓÂÃçsÉûxžß{¸úæ9ç‘ÆçºVÜúLC[åÀ«ç2ÏežËÌmÎmÎm«í+í+í+Í:‘u"ëC’¿wþÿ8 À0åÉªšªšªšW£´Ùùåwwß;fVýE3,ýFó>é7’žLO¦'÷×ì¯ÙÿÁ³vÒ÷á9 À°“J¤©Ä‚Å /XÜ´»iwÓîþWÇÞÌhM+yúsGÎÎþcÆ÷'<–ž;šgÕýû;WúZ^½¸dî[ßî™Ò“ªí5Q–(K”ªUÝÞØq©ç ï<{î­»ûûÕÝx¡­ ñÔݧïçµù'òOäŸx­ôµÒ×Js›s›s›=e#¢±±§œ>púÀª¢UE«Š:ævÌí˜û ¿æÑœÜßeŒ¿ž—1nGÖ»O|*ãɉ˜öìØ+Ë&LJ§O³?í;k½O¥žì>x§³¯íöwÚ_éyìúg.Ýë~³mEc÷ÝŸ¼×Úòƒî®ý»Ùg³ÏfŸÝ[··no]áòÂå…ËcScScS=X†&º™±™±™gÊÏ”Ÿ)¯X_±¾b}Ô†) S†Û2óoæßÌ¿Y¹«rWå®yUóªæUÅ.Ç.Ç.{€Ü?€Qçêø«ã¯Ž?Ôz¨õPëÖ=[÷lÝs{Ûím··}œk˜¸qâÆ‰7­Ù´fÓš¥9Ks–æÌèšÑ5£ËÓáaÀëØÐ±¡cCc[c[cÛñ’ã%ÇKjÛkÛkÛ¯W\¯¸^ñ0¿9«2«2«²dZÉ´’i‹jÕ.ªÍ‹çÅóâÙÛ³·go7y>Z0<°ÌÌÌÌÌÌþ?9Üy¸ópgaOaOaùðII7€0À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  cTõÎêÕ;ëÖ­?ZP\P\P___f2|²ÒR©T*•2€‘ÎG@B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€ñ?@‚dÄV0%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/merge.png000066400000000000000000001774431431412030200245100ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwPT×߀ñ$¦#v+ Ò› ‚€½Ä޽ ö –Ø{‹;н‹ £¢r‹ "ÆнbEAØ÷~ï ™uÉ*¨ËõùìÌ™L¢ÉîÙ/9\w÷+@¾b @À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!Àø¢=ûîÙwϾ‹HˆHˆHˆØ±3bçÃQG=ÅΠk¢Œ£Œ£ŒO4;ÑìD³“6'mNÚ°'èš7­Þ´zÓ*²cdÇÈŽfffW2¯d^Édg€O‰ EÉÚœµ9kó¥×—^_z½òøÊã+·˜ÐbB‹ z¤É¦&›šlZÖcYe=.̼0óÂÌ·6omÞòhÞÛ³Ðg¡ÏBŸ9~æø™€)S¦XôµèkÑ7ÿçuï Þ¼ …Âþmû·íßöàуG±ç¼·LU¦*óZµ„k 'mœ´qRÇÈŽ‘# ê*»îµº×ê^›—6/m^ZÌ™˜31g^Ÿ}þõy6È0 ±ìôìôìô“Nn8¹¡ç¨ž£zŽÒûL:¯ï¼¾ózùŒ|F>“u0ë`ÖAžr{|æñ™Çg‚—/^nngngn÷¹Níù>ó}æûÜ’oÉ·džÔýÓãŸÿôÑbD‹->×yÝxZãi§ý=ïïyÏK;•v*íÏ ‡ú©aØÑ°£aGvr#£I’<$yÈâ-‹·,Þ¢§Ãæ˜7bÞˆ'§Ÿœ~ršg ðŹ¯º¯º·,nYܲ6ÛÚlk³M7ÏkûmöÛì·¯|¼òñÊYs³æfÍå©|i^Û¼¶ym³Ñ}£ûFw]¾Ê7&nLÜ;!wBxÖàKFm€Q¼hÿ¢ý‹öS¯N½:õj~.Û2ï^凙GÜ‚-Êo1nØÊÖöðÜ–ޤ¢­Ú;7œ[ù9ÿvÄ EOÇq[k5ØmöÔ½;‡Uy½‡I‹Î%•{nàüaÿÝÞzè=àîü»óïÎçÙ€/ ´A†ŽÊ¶É¶É¶ÙxtãÑGß÷RpÒ7.‚Y§˜í\תÒüûúx©Tþþ>>µž-ÝÞ¶¶Ë´=µ'š÷ßû4!hBЄ·Yo³Þfñ,”!É7É7É×wïßÚŸ‰õZ9üc¶9{F [óÛßh_w’JíãSPë³Ç‹z6;°eQ‚C½öƒܯb­ý}³N±N±N¹r)äRÏ/@!ÒUéªôÃG9|ä}¯db›˜tö´=0¡Þê[îËÖ.‰ªV§ÎºuÑѵ:6˜5sÇ@³ ݾûýnÉ´òN†×µ¿o3ÊÍ(7£\ÚÜ´¹i¼“|À  0tÎÍf7›Ýlfgegeg¥ÍÅÞà²v¥Lš'LêxÀ½cÁ†^í×k–‡Õñè0Ñ4R›û\½aõ†Õ&6MlšØ”gP(‰*Q%n¶[íD»Áeª½MË·ÉQ}¼ 6÷j¿T-ÞåpÊ:ÛìB¹ÉZýXÙ{†÷ ïL£L£L#žv@aô´âÓŠO+¶Il“Ø&Q›³¯R9·ÊÚ·˜Òrƒ_Á†^íWׯ5ÃÂL³:´ä¥ýw§Ëž.{º,Ï8(´A†Ùý`÷ƒÝ´¹¨›£ï>Ùbý³½Š{ü\ÑWÓúbp¯·ž™:Ö«aYG›Ç²yçæ›wòì ‹”­)[S¶¶×n\»qyŸqƽ*×*=XŒ_eæ\;»ÙéÑÞw?WôÕ´^øf[w·v,ÜÂ+¤åýXª]¬v±ÚÅÛÃn»=ŒNNNÚ\™×jÚ®K´KÓÅEÿÞ÷¹¢¯¦Õmóê•-kFöÿsÚ)mËÜÀ¹s³§eOËæc˜@À  0>³¬°¬°¬°€à€à€à¼/áþa;¾ZʳŽ=ã=ëZôÕ´¦˜öö¨oò{o‡ÓWy?º!û‡ì²ÿm±·ÅÞc*ºéÚÛko¯½Õæ¯ûV/¬kZ×roÞëé¿Ö©\íË—*W±dù¼|U¾*_e:*[•­Ê^þÏò–ÿ“÷‰V¡ãsO;ç™ ×X¤kÑWÓêÞyMÂ)»=;žœ÷£kÚ±iǦSë¤ÖI­ÃP€’€@`|6é—Ò/¥_j}®õ¹ÖçþãMœn¶]çê]X¢¯¦5nwûÓµó~¤>Ó|¦ùL{õôÕÓWO™€îˆ¹s1æbÞ§Ø€"í]ª½´#ê÷(\é7÷š5"êŒ÷þEíG¶ü%ïǻӧÿNf ;²/d_Ⱦ0F#Œùh°nð{Ð’ KôÕ´:,ðÚw¾lºÉ¥šÕ4=RÆ 7>r}äúÈ• e €6Àø Ò^¦½L{é±Ùc³ÇfMi]C-}«^|5¹Ïäú {úͽ¦oè»Ãkµÿ%›‰Õ|5=v;';';§Ôí©ÛS·3-€Ï+Ò)Ò)ò?Þ:òÀ¢Eµ oôÕ´ÆuÛ<«öÔ¼ûzÓõ¦ëM™Àç•=4{höPÿhÿhÿhMg–~Kó6+\‹þÕçÈáž~ÿµþœ}úMõ¾íÿ™÷©ý`ăF0-PØ€@`|R™¾™¾™¾ lØ4°ÑtI¶d¡Ç–‘ª}þM}””~ÿµfùûùøµ÷ÚYKãi:—u.ë\6}úþôýLàÓ‹µŒµŒµÌû©WÖí^à~Qyé7÷úôê±Už–ö;k†ê·Õ´Ûwmßµ}3ø ««}9ôåЗ?ßצi§.ÿ¸O[ÛáÔeE¥_µÕºëï÷–ôÎû»—§öOíŸÚ38Px€@`|*»T»T»úÎí;·ï\o¥Ùx€ÝÅF_ kèÊf¡£5íI‡nºuè–½1{cöF†ði܈¹s#Fãë‡<Ë”xôÈÿH’G_e§ßÜkú‹H¯Ý­–yU¬¬¯igÄ>b±óø”æ7Ÿß|~sMgS]¼G¬¯ã¾.(:BÙé7÷j?bмAã¶6×7×7×O;”v(íó…´AÆ'X%°J`M`{Ä&ì»}ié7÷zø~‹ŽC4íϬ糞ÏzÎ>¶Ô©S7j:Ê5-s¸Äþg·Ž÷õôûrÒoîõí÷§B¼»·à%Wn¨i—n4ºÑèF#f ð±… ¡B¨ÆÏú5Óëzý÷}_NôU_zNÝrJÓþtïß½÷þª³ª³ª³Ì.`Ð]Ôý¨ûQ÷5]tmøÎç´×—œ~s¯»\/³[¢i¯„Âáø(Þ¨Þ¨Þt‘»È]dM'ÑÃG=l¿Ìô›{}3$r«×i#k»òÔw©BÏ =+ô|3ñÍÄ7+ÀÇpËì–Ù-3MçµÉ¦6åûù’ÓoîÕnúƒ4íUpTpTp… ´AÆGô2ãeÆË MZã.8ÛÔð'úª¯³öºeZü¦iß’}“}“}™.@Á q q qÓtúÄßÙéïîHúͽ&ï ÿÑs™¦›PyBå •™+@ÁÊòÍòÍòµ\`¹ÀrÁ;þÒ§ õ ÜUÁ‰§cH¿¹WË”Áõgkü8ª«)WS®¦0]PX€¥:¸ûàs¾®gl±uÆÖä†É “²3†Œh¸ßp¿á~êG²}‹Š õë½mé÷³÷0r¯úšíâ'xßðÖ7>[¡¨úîõ2êeÔˈé”'!OBž„hú‘hÈây×í ȽšÖ ¶Û¦»u×´{qÃâ†Å cÆeÕìU³WÍÖtîÔ^¿ÂO´!÷jZ^7ÙØùžú¾YYYe÷ÎîÝ›ÝG”'«UV«¬Vš¾Ë%0>ŠóÏ?>ÿXÓ—ë]Ãnß×}CèÍ{}T®‡‡GkM{ýkô¯Ñ¿2i€üë›Ò7¥oÊ;>ïa‹VFmH¼Ú¬ËOŽûÑ*U}«¨: ê€¬ ¬ ¬ & 7>Üøp£¦+Dû…S 7"ñ潺m^½2¢…¦=ܱbÇŠ+˜4Ð}`@yr¿ö7oÄ`í€QÐv¨v¨v8ŠŽ¢£¨þŹnˆ­uq÷=>Ø¡q ÝŸê;iœjœjœš=!{Bö†ða.ݽt÷Ò]:àr|‡çxâ®6kÖȨXïýÕË•-㥾“»_ì~±ûóÈþ•ûWî_Yý”©Ö¾ÅÛž“ˆ»Ú¯öö“3×kü°ªWɯ’_%3o ËÀ€òäÝœ¸«§5bpÞÀ(`‘g"ÏDžQÿR¬èR:­ÔOYf~¼×“ußãí øíóƒõW†¯Ê5PßÕ£þGýú3u€ÓØ ±AcõóeÛ73Ãl×’ußwý§è–Kµ5õŒ¸Œ¸Œ8¦ð¾nFÜŒ¸¡ñmŸÅ§Å²îû®U*znûí7õý\^tyÑåE™:Ðe`@ÙˆÁ…Œ‚“¥ÊRe9®u\ë¸VýË/b[ë=.úÝ[Ï·wªíöŽ×;;;©¨¨0€í]¾~ùúåëš¾i~åî=› ûakÇ­ª$¨ïêÞ°½a{Ø=Àû0nÀ¸ãÔO–šKü“§¦‘r?lui¿Øêoß ¥Û§Û§Û3{ ›ÀÀ—ƒœ`˜Ës.ϹÙӱޝúÞV2ªdTÉH5^5^5ž hãÙ?Ïþyö¦l¹¥-ŠœGÊÍÏjt±‰KçÎê{»ÇbÅ &tø2ƒßfxùá凗ÇÛmÙÅ©ù6ÿëÉžmÚ¸¼ãÏ}÷hÜ£qÆL @)é)é)éš¾-Î\pê7oo"nþWŸÙ®!º©ïp|½øzñõ˜C€6Ö¤®I]“úŽ?f]®§ÁØkäÛü¯ÎC¶>PK}‡ÍÜÌÜÌÜTª Usº† €¬ 0 À›Ùof¿™­ñGÉßö[àmJ¾ÍÿšµÊoº÷QMûüjÜ«q¯Æ1€¼íݳwÏÞ=êçÈâ•£ì,|®\šØ,¤Œ{fîûSØð‰AöÎïxÍÖç1Îcœ™CÀˆUŪb ëÖ5¬«~š¸X:öX?òmA­å+×\kW}Ÿï º3èÎ †t @nÄ`MÀ(§§Ÿž~zºú—Ф ®¿šÍ!Üìº0«îþši껾3|gøN¦7¯k^×¼®©Ÿ#÷7ýýªÞ<Ý À…=gÜ9í]IÓeFVý¬úYõ™F€&÷~½÷ë½_ßñî=êY“l vµnóû‰%®ê»½¢ÊŠ*+ª0 kÀ4!çFF}kô­Ñ·Þñ&‡í:z»—%Ùìz#ªKÿ:ïøF§ïᾇûfš¼îøºãëŽê'HµñUŠ–Þ¥ÊŽ>ýùr©òpÎ:´M§ž&qêë긫ã®ò¾6¹orßä®~‚Xû*²d.ɶ`×ÚQ+n‹±ê»mibibiÂ4€®!Ð1˜Œü W…«Â5}©¼uñûÚ{ ɶ`×ì±~ ÞÏ4íyöÔì©ÙSL€º³ÃÎ;;ìoþlüû%Ë‘Ÿ7”*5GÄ­ñv©ªþ¸ÖVX[amf I“áM†7®~‚ÔÖ[¶êøu’íÇXõ=ÍîÚtSßóÔÕ©«SW3“ ;ÀÞ×—ƒ ÀÈ—ç7žßx~Cý £Í,³…•gk?ÞÚ÷’uwãê;ÿèð£Ãx0à–Ä/‰_¯~v\(¿m¸['ðÇX_<¢êë«?® Z4hÑ€™¨Ë*šU4«¨úÙQ" ôô2quÜ×EGk?Æj^­§w@iõ?—}.û\6“ ºƒ ?¾œLF¾œ39grÎDý‹!x¾÷uëP]‹¦Ic»o©÷jæB·Ezí›ï­âl{³âåž•[Vòz ÙܯüͲßz‰Æ!†é ËÖíRS~V©§è馛x·yãçvQê;¹5rkäV& ®éÖ¦[›¾ã[ÛW=äñõoêfŽûfsÝÚƒ;7h²¯jÃjrÏÒÇÊ-+“ZB¶;WógýjúŒªqøY¥c±žn:š¯Eïñ©£ñ};R²S²S˜L@n<y>òT?5Œb›w®§›éÔýVð„Ó­jîêï9­§áûu­JM6xX©X‰©¥×•I-X-ÈüOãÒM¿êÒÅiî¼){èæ£p0™–²ùÌ;~¾‘œœÀd€î ((ÊŽÁ`äËÖ~[ûmí§þpöVû‰µûéN.ïµjä\§’e™ßJÕÓ{Ow"ºÞ¯{O×ðåa~u_¤~oWÚ¬´YiÃd´¹Hþß«l¢wù¸ëf.Zz\‰öyŸÔ&ª¨J§^ܺ}»[¨nfà. šT¢~Ï_n}¹õ%l ð/1ëcÖǬW?5¬Ü‡XÍ Ó¹OÏ ]±Ao8Öþ‡:ô¿Ê¶”…Ì:£s¥ò²èpCõ{ë_Í¿š5&tùÚ– ÿ”ƒ ÀÈ— #'Œœ0òoD|¶ÇtñºJ_mê³ ~²Ù˜ò3ÊüïOòšnÒ[Æüχõú[öØÖz‹þ…¿}›¸ý!¤þ–ìüã¤7®Ì–ä¼&øßoA©[øÅW½.xÞQßù5ÖXƒÉhs‘Ü̼îŠ×u!‘j À9Æ{÷>RcjX‹¥ÅŽ÷ì±_7D¿ã“Ù%¾Ö‹Ñóù×kj+žnå}Y×ðâØQ,Wª?®[nU¸Å'þeû½í÷¶ßS?5:MÚ²M×¢iÅóµ‡7,ò¿»UÒ·Ô7&CZì›lÓslùe3ìO.·î‚™[7ÿQ}J…Ž«ô¯w±rê<÷yÈ9zóþµ£–ªï¼Í›36g˜LÐåk[0€‚¥ŒLF¾´Ín›Ý6[}ÐÓ›ô륟œ“uÿ÷™I)z²Þ„„€ŽûÜ;hŠ»êÅøŸrKÏÔµœy¾_¢w[õ{ëéãéãéÃd´¹HûªçãêYº€KÞ)é­·ÿ˜Í²NV9¿&÷§çüõN9Þvuÿ“ƒCýÙΡúýŒ9s6æ,“ ÈmÎö9ÛçlW?5\¯:4@wr©uüè^-ÿwçV•ˆ,émPg¹*çŸæüíÜ¿þWåSK¯+“šûqéZÒ.1µôº2/ßõÝ@w¯m À>žÂƒ ÀÈÇéŽÓ§«wÖu¿5ÞѺJOksÌ%lØcûɦ5gMr{há£Í+zÕ#±Î½x¬¿“O õ{XµxÕâU‹3™m.’—:ŒýÞª›nàž×Z^6ŠÐ&èæþ]ûº‡V¬£køt©u+]Ë©ïX¥°Ja•˜L@nC{í=´·ú©Q{늱î„ÒJêÜh:8ç¾U>çq¤eEm‚nîGdð§MMWY×°þ! _»z`(\×¶`ŸFáŠÁŸ-ëAÑT‹üëùXêÚ«fs¿ÆWÓ?ͪé×Ù{Ãâ+õNXétVùûûø”úªD ½#ÌàÃl¦×²¹­›XH]9ÆùGm~ï¡ K+ýÿ=T +c®k¯¾¨·ÝÎm óÈ·m«7DtÒPZV6©eÑ,ç¾å~íï|ήù²§á œÌß¼ïçu “¼Ñµ\á´sÍúÑÌ ÖÁÝwÜMF¡§JôïìSG7ðó¯zôÜ^ê77§UÁß{ï´^öG9?3ÓS-ŠVR¹R™¥Fk|\:öX ½K»•\μ>Ìö'³kÛÓÍ|'"4´î=m~ïõ*{×Yû®S[WpÂÆ]_¹÷dÞùáö*hIä"Ýü¬\g¯§÷OÒµ”û¯l6sû£Qæ +cWÆ®Œ]`zºö àØªíâkÓ²hõ;•¦—¼S¢¢Þ~M÷Üî\ÅúÕz<±šg´ð‹WD—_üÆ?r£W”6¿7mf„…WçwÚ¼ ºó `糋&‡†þë¾EéE˜ÉäÆ7]¾¶ÕŸ¥?K;÷}û;àü¿ñÿÆÿíÓoίÿ‚>ÊÐ6»mvÛlõNoÒw®×,]¥MšN¨¸#ç^õ¼fuÏ("»¢ßAïËygÝ+;õqÐåœy¾_¢w[õ{èéãéãéÃd´yÿ•±¯z>®žUØ?8¬ÅÒbŽâÿÿ1/3ýru-‡6ú³Cõý9s6æ,“ ÈmÎö9ÛçlW?5\¯:4@wBiîûf÷íD·5¦Úü.Ç ³·ì¼a6 [æèªf'{T³²ŽÞºâÑÅuçq•˜Zz]™—ïúi@w¯m ;v4ìÈÎørÂ팭3¶Îت}ôÍùõŸ>úæFF¾L9aä„‘êÃýèléãu!”VhRzMÉ 9÷êt—¶C]khó»ÂZ´¸øÿ?JÖÍüâ«^<ï¨ßÃ5ÖXƒÉhs‘Ü̼îŠ×u3÷¼Öò²Q„6¿·ýâ†Eª8çü.ß‘ÆWÙ¤kxqì¨N–+Õ÷ÿV…[nU`2¹m¿·ýÞö{꧆C§éA[¶éf®z¶á×µù]F÷› î¼î¯ÖZb~×v»î<"õÏ6ÎasÆæŒÍ&tùÚ–  `Þè›ù²µßÖ~[û©úÙ[í'Öî§ ¡´fcƒ%e‡åÜ«]í:æýëïìV¯^…œOÖå|yX§_Ý©ßÕ6+mVÚ0™m.’ÿwº%Dïòq×µ\òNIo½ýÇl–Íp²Òô»vzÌñ¶ë˜ûwEl[cꢯ;é7gíÒ i@Õ)ê;ÿrëË­/·2™€ÜbÖǬY¯~jX¹±š¦;¹ÔÒy@úŒeÿ»sQ%}K}c{qÂö þš~½“ÕÜ®!eJþZ¶ƒ¾YÎo2>Ó¼Q÷ÿ½Ùµ.<¢Ú•—E‡¾ã-ûªùWó¯Æd€._Û€äŸ2¢on`äË9“s&çLÔ‡>x¾÷uëP]¥ýþ´Þl|ñ*ùEÙC¥ 6i0ÐfËí ]çÕ yØ¿ÇW5#¶µÞã¢?ék³%ú³J9•ÈÐø#r À»Í?·‹R¿‡‘[#·Fò£dÀ;4ÝÚtkÓw| ûª‡<¾þM] À¦›ª†•1Ïùë }FÕ8|´ÞÒ(Çôý§™9ü:D¿ã“Ù¹}ã¾î¡ëèÚkU×¢÷øÔÑô}EvJvJv “ Èí‘ç#ÏGžê§†QlãÎõtÿõ²&A­³ûí´±3si”ýè)±6é•1¾Qi׊6Uþ÷#ûR­ ÚUl©kŸì`2-eó™wü|#!8!8ÉÝAPP”}s##_žßx~ãù õ/€6³ÌVÖ‰Ï~âÞ³˜ÇYs¿ò7Ë~«ýð劺/4þ§ÜÀÒ3sÿý&íM+þ® «ï%ëîÆ;ÞñæÛ‡~t˜É¨[¿$~I¼úÙq¡ü¶ánt-Ÿ8Ôßù–A}³’ýò>µkU¬Ñ©\é;¡¡uïéZ~ñLˆª¯¯~Ÿ[4hÑ Ef .«hVѬ¢êgG‰€ÒÓËÄÕq_©koófÎÚ\k—\¡ÿ«A7ëq£ê.IÐ×þæ¬æÕzz”V¿Ïç²ÏeŸËf2@w€䇲£on`äO¸*\®éKâ­‹ß×Þu!—æÜŸÉ\7‹ªcQµ¶Á¸œÏÎY=o½5œ»lçt«]Y5ý:{oÈý(râ±aÇÒ^%ƒú÷¶Ù_mìç},Ùcý¼Ÿi|-ÑÔì©ÙSL€º³ÃÎ;;LýìXlüû%Ë‘º€sþ~Î_wÏlÑݨC5¹Šgéce7—q*1ß^ª©ßijLÿ sÇ—'$—úStªèhŸˆ¸5Þ.UÕ÷|m…µÖò鿚 o2¼Épõ¤¶Þ²UǯëN4ÍÍ'÷ò7Ï —õJ×J¾.ok_r@¹ñå×—gîØÁxX3“®—\î-yv¤Š®ÝÿœUßÓì®M7õ=O]º:u53 ºƒ à}}9Ñ770 Àè[£o¾¥þåß®£·{YÝyÛä¼ßÆYÓ?Õµ7¾Õ¥w|£Ó÷pßÃ}yí/@£×_w|ÝQý©6¾JÑÒ»TÙѧ?w.Õqß÷ïëÎ:´M§ž&qê{~uÜÕqWÇ1“M6¹orßä®~‚Xû*²d®nÔÜ1øÃþégûôߨ·ÅXõݶ4±4±4a@×€hãËŒ¾¹€QNO?=ýôtõ/•I\5›£;éT묺ûk¦©ïvøÎðá;™F@Þ¼®y]óº¦~ŽÜßô÷«zót9¦®5ãÎÉhïJš.'²êgÕϪÏ44¹÷ë½_ïýúŽp?pèQÏZ—pa\­Ûü~b‰«ún¯¨²¢ÊŠ*L#è0Mˆ¾¹€QÞÌ~3ûÍlM_<™ßö[àmJ¸ÍÿšµÊoº÷QMûüjÜ«q¯x-à?ìݳwÏÞ=ïx#è•£ì,n j=1"ÈÞùõ}ã<ÆyŒ3sø±ªXU¬a]ú†uÕO×KÇëG¸-¨µ|åškíïªïóAwÝÄ0€®!Èè« fxùá凗WÿB:z´e§RäÛü¯'{¶iã2N}‡{4îѸGc& ”ô”ô”tlkÁ©ß¼½É·ù_}f»†TxÇçÆ×‹¯_9hcMêšÔ5©ê§‰y¹žc¯nó¿:YØú@-õ6s3s3sSe¨2TÌ!è0¢¯6À(0—ç\žsyÎ;.M·—O/[JµÆßÛÇšˆ›ŸÕ=¬j ƒê;÷gÜŸq2íù9ø9ø9¨Ÿ)í°”|›Ÿõê“=ëøªïm%£JF•ŒTãUãUã™@€6žýóìŸgÿhú–[jТÈyDÜü¬F›¸t·{,öXì±`@7€/Ñ÷}€Qp²TYª,ǵŽkת™Elk½ÇEŸˆûaëYãöNµÝÔwÕØÉØÉØI5@5@5€hïòõË×/_×ôÍñÛ°(wïÙ¤Ü[;vhlU%A}W÷†í ÛÆìÞ×€qÆ xÇ{AÕ\âŸ<5ˆûa«KûÅVkü^(Ý>Ý>ÝžÙÝD¾Dßü £€Ež‰<yFýK®¢Ké´R?e™ùuò^OÐÕ~Í~àÿµÏÖ_¾*×ào¯íÔÿ¨?Sø0 46P?_¶}33Ìv-)÷}׊n¹Tû®¦ËŒ¸Œ¸Œ8¦ð¾nFÜŒ¸¡é|©-®8-†tßw­RÑsÛo¿©ïçò¢Ë‹./ÊÔ€.#ÊFô-(`´ªªŽ¢£è(ª®âckDÖÕ~ÝåÐ8ÐîÏw¼ö7Õ8Õ85{Bö„ì àÃ\º{éî%Á2ÙåøÏñd]mÖ¬‘Q±Þû«—7*[ÆK}'w¿Øýb÷ æ ý+÷¯Ü¿²ú)S­}‹·='tµ_íí'g®ÏÐôýÏ«äWɯ’™7Ðe`@yˆ¾ÅùÇ矬éËò®a·ïë¾!îæ½>*×Ã㵦=Œþ5ú×è_™4@þõMé›Ò7Eý¬éþ°E+£6Ä]mÖå'Çýh•ª¾‡UTPu@VPVPV“ȇn|¸QÓ¢ý©†wó^Ý6¯^ÑBÓîX±cÅŽLè>0 <wÜ}p7Ñ·`€ñ ÷î7Üï—¦-*.Ô¯÷¶¥ßÏÞýïxÛg?Áû†·¾ñÙ EÕw¯—Q/£^FL  < yò$DÓ7Ö!‹ç]·7 ñjZ/Øn›îÖ]ÓîÅ ‹7Œ”U³WÍ^5[ãÛA¯_á'Úz5­F¯›lì|O}߬ƒ¬ƒ¬ƒ²{g÷ÎîÍŒ€î#Ê“Õ*«UV+¢oÁ"ã#z™ñ2ã¥Æ7VwÁÙ¦†?¹W}µ×-Óâ7oÈé›ì›ìËt Vˆ[ˆ[ˆ›¦Ó'þÎNwGroî5yOøžË4íØ„Ê*O¨Ì\ V–o–o–¯åË– ÔOŸ kœ6Ô7pW'žŽ!÷æ^-Sן=WÓ©}5åjÊÕ¦ 0 T¹_LôÍ?0>º¨ûQ÷£îkºÐÚðÏi/¢ïÿ>ñ×µñ2»%šöJ8 0Q€âêêM¹‹ÜEÖt=œqÄÑÖôûfHäV¯Ó.FÖvå;¼ã‡ï=+ô¬ÐóÍÄ7ßLd¬Ã-³[f·Ì4×&›Ú”ïw†è›³ÚMÿãb°ƒ¦½ Ž Ž Žb¢ p!€6ÀøD«V ¬¢é¢kØä}·/9ý¾ß¢…ãMû3ëù¬ç³ž3E€-ucêÆTŸ/X®i™Ã%ö?»u¼¯§ß—™~ß~*Ä»{ë^r冚véF£n4b–[¨*„ šÎ#3½®×ß÷%§_‡žÓC·œÒ´?Ýûwïß½¿ê¬ê¬ê,³… ´AƧ²KµKµ«ïܾsûj|Û¥‘ØùÒÒoèÊf¡£5íI‡nºuè–½1{cöF†ði܈¹s#FÓÙ¤ïY6 Ä£GþG’<ú~9é7ýE¤×îV˼*VÖ×´3b±Ø‡ù|Jó›Ïo>¿¹¦³©Æ‚.Þ#Ö×q_ñå¤_ûSä o5퉹¾¹¾¹~Ú¡´Ci‡˜(ŒÀ  0>©LßLßLß6 lØhº[²ÐãGËHÕ>ÿ¦>ŠM¿Yþ~>>Aí½vÖÒxQê\Ö¹¬sÙôýéûÓ÷39€O/Ö2Ö2ÖR/OWÖí^à~QÙé÷éÕc«<-íwÖ Õo«i¶ïÚ¾kû.fðVVúrèË¡/5SÆ6M;uùÇ}ÚÚ§.+;ýZwýýÞ’Þy÷òÔþ©ýS{ /0hƒŒÏ íeÚË´—›=6{lÖtIÖ5ÔÒ·êÅW“ûL®ÿ@Ié7}Cß^«ý/ÙL¬æ«é±Û9Ù9Ù9¥nOÝžºi|^‘N‘N‘Nyÿ õÀ¢Eµ•—~ãºmžU{jÞ}½ézÓõ¦Ì àóÊš=4{¨´´´Æ÷ðhi^Âf…kÑ¿ú9¬¨ôûspöé7Õ[ø¶ügÞ§öƒF<Á´@aGm€ñÙ¤_J¿”~©õ¹ÖçZŸËû"íôͶë\½ {úÛÝþtíÀ¼©Ï4Ÿi>Ó^=}õôÕS& ;b.Æ\Œ¹˜÷)6 H{—jA/­Åˆú= oôÍuÆ{ÿ¢ö#[þ’÷ãÝé¿Ó§?³ÐÙ²/d_#ŒÆyŸbÖ ~ZòCaO¿Î ¼ö/›nr©f5MÔp£áFÃ\¹>reB@À  0>³¬°¬°¬°€à€à€à¼/Pþa;¾ZʳŽ=ã=–è›bÚÛ£¾Éï½bL_åýè†ì²Èþ·ÅÞ{[Œ©è¦ko¯½½öVO ûV/¬kºp¥ßÓ­S¹Ú—/U®bÉòy?:ùª|U¾Ê<tT¶*[•½üŸåÿ,ÿ'ï­BÇçžvÎ3®9°¨°D_÷ÎkNÙÕèÙùÈðä¼]ÓŽM;6í˜Z'µNj†”„ Ú C‡ì~°ûÁîÚüXy޾ûd‹õÏ^ô*î9P×¢ï‹Á½ÞzfþéX¯†emËæ›wnÞɳ(,R¶¦lMÙÚn\»qíÆå}Æ÷ª\«ô`1~•™síìf§G{ßÕµè{á›mÝÝÚ5²p ¯–÷c©v±ÚÅjo»=ìö0fPXD8E8E8isej\«i».Ñ.Mý{Ÿ®E_·Í«WF´¬ÙÿÏi§´y,sçÎ Ìž–=-{3ÊCm€¡sn6»Ùìf3;+;+;+m.í—µ+eÒÏðžá=Ã;Ó(Ó(Óˆ§P=­ø´âÓŠmÛ$¶IÔæì«TέA£²ö-¦´Üà÷¹¢¯kãÀšaa¦YÚòÒþ;ÓeO—=]–g” Ú CGeÛdÛdÛl<ºñèÆ£zïiÒ7.‚Y§˜í\תÒüûúxlî=[º½mm—i{jO4ïÿ¾÷-hBЄ  o³Þf½ÍâY(C’o’o’¯ïß¾ ´?ëµrøÇ msöŒ¶æ·¿;о ½Ï/êÙìÀ–E õÚjp¿Šµö÷Í:Å:Å:åRÈ¥K!<¿…HW¥«Ò9|äð‘÷½’5ŠmbÒÙÓöÀ„z«o¹/[»$ªZÁæ^dzfîhV¡Ûw¿ß-™VÞÉðºö÷mF¹åf”K››67m.O2| À  0 í_´Ñ~êÕ©W§^Õˇv‡Ì»Wùaæ·`‹ò[Œ¶²µ=<·…¥c'©h«öÎ $çV~ο1hÑÓqÜÖZ Ú™=ÈÝÓb¼o ‹öU‚JÜÖ;®7öÃþ»ãÛŽo;¾í³iϦ=ãí§ ›››î\ŹŠs•;7kýR£y9½A¿ùþ`b´tåØ6V£ö´™?ÊÞçø¤åóœä Õóœ× ëW:9½:à±h–ƒÙêû=jÝ•Ð}\õFníjØ~à7 ôè8ìzØõ°kvfvfv&Ï&@©Ò[¥·Joµ¢ÒŠJ+*åç*ÛðC¯z¶¦ÅÚvó^s¦ôÔ(ëN¿_]ÒÁÖyÜá•I¶#ÇYuݦ·¥þ–ϻ͞Z£wçðá¯*¯÷0iѹä¢rÏ œ?ì¿Û{@ï½ÜwþÝù<›ð¥!€6À(d’‡$I²xËâ-‹·èé°y#æ˜7âÉé'§ŸœæY|qî«î«îÇ-‹[·¬Í¶6ÛÚlÓÍóÚ~›ý6ûmÇ+¯|¼rÖܬ¹Y¼rðÅymóÚæµÍF÷îÝuù*{Lܘ¸1qwBî„Ü áY€/´AF!–žž~rÃÉ '7ôÕsTÏQŸëB´óúÎë;¯—ÏÈgä3Y³fäÙ ·ÇgŸy|&xyðòàåævævævŸëÔžï3ßg¾Ï-ù–|Kæy@Ý?=þéñO-F´Ñâs×§5žÖxÚßóþž÷÷¼´Si§ÒNñ¼r€@`(JÖæ¬ÍY›/½¾ôúÒë•ÇW_y¼Å„ZL(¨KÐ&›šlj²iYe=–õ¸0óÂÌ 3ßÚ¼µykÃÎ𾞅> }züÌñ3ÇÏL ˜0Å¢¯E_‹¾ù?¯+xWð®à=P( öoÛ¿mÿ¶%0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A(K/U/U¯ÈÄÈÄÈÄ›Ol>±9¶[l·Ønl ºæÆÙgoœhÑ6¢m¤U¤U¤ÕëŸ_ÿüúgv]s²óÉÎ';Ÿ¨z¢ê‰ª'oœ¼qò{€.# »åï–¿[~—¼KÞ%÷ éÒ'¤tBé„Ò zùfjj:¥ø”âSŠŸvb؉a/B^„¼aÏx_éûÒ÷¥ï;;üìð³ÃM\4qÑÄúë_¬Q¯€´/Ö¾Xûbëš­k¶®YâÚĵ‰kUAª U;Àûzxèᡇ‡Î<8óàÌ¡.C]†ºTN®œ\99ÿçuõZÕkU¯5ºè袣‹-´üÑòO+>­ø´"{À§DèœÄ¬Ä¬Ä¬©öSí§Úë}&N܆9 Û^}{õíÕŸ÷|ÞóyOžrËø9ã猟ä0)Lj¹­å¶–Û>ש=(fPÌ ˜Ø§±OcŸò¼ î£îŽZlºØt±i™Ø2±eb?ýym<Àx€ñ€UÁ«‚W?÷pÜÃq2Ùe»Ðâ×r‰ößµZiµÒjeTRTRTO&€Â… ÝD|R1ßÅ|óA¦A¦Aæ{¼!³M›® {¬ZãgQg‚SìJûáS¦ÄÇ;:Ô:¼d˜©uX§™?˜žªòÀrT™]Úß·víÚ%wHîÜç  o¶¿Ùþfûóæ ̵?õmK•+qþé:·j޹`å«ïÖ]¥ò÷÷ñ)¨5»™ßIﻑÚ˜ºtÕËÑ¢ºÕûþpyÿ·û¿Ýÿ­j·j·j7Ï2@&.L\X{jí©µ§j&þöº~p¥Ô½]øØOy\:lÇ<•*:Úǧ Ö»òÁñõ*oœ•f›á³ÁõD…>Úß·çZœkqîn﻽ïöæù ûÀÐM`ÀG÷:øuðëàSGL¡Õåhõ .NåžôÊ\?¯æOzµ_' ·Oü­Òä`“pí/S 8À3(¼â¬ã¬ã¬µ?û&Wuµ0[}?¦ûõ 6÷j¿Æ9µ_S; ûË·FÎÚÜçFéÒ¥?txèðÐgP½ÿ6~¡ÉB“…&Z½{ÖDcË2û|dÚ,ØÐ«ýšrú„wÆÖ^3ëÚŽ+û¦Ì˜ÁÚÜóµ·×Þ^{[eª2U™ò¼ÐM`è&0à#ŠO‰O‰OÑæ¢Înws7ÃäaMÇXý\ÑWÓ:éï ¡AÝέjh¾Y«×?øhà£ô1écÒÇ0€B`žjžj^`‘À"E´ú„ÝSÞŽÖ-^ÅõYSÿÍ犾šÖ‡=»gy˜³qzUÃK›ÇrÜò¸åqKFPX<(÷ Üƒr6ñ6ñ6ñyŸqõ~u2H:+m.V»»êMt¤÷çJ¿ïXËG—ó)¹kMŠKkKsÓ‹e7üÇÇ0mo¼½ñöd»d»d;f€®!C7€Åï|àû¼/á*û™_)c9(uÿ«Zu-új\Çp¬Õ¾Ü¼_ªËûÑ™™™%5HjÔ€y覴i-ÒZtø³ÃŸþÌû\›ÑÙ­¢ùét¹ïß^u-újZï·êv¹ÞXßëóªüÇ©½Ðj¡ÕB+Õ~Õ~Õ~¦ ›¢ËF—.«ÍoŠø*h½sŠå^-ÖÃßýåéè®Í£K0M0MàÕÀtº‰ (`+j¯¨½¢vÞlmmf­n8¥Oü&Çš…&ýª­cmN.±3´ l¼ÄÐ-ïÇ{¥Ô•RWJ1Ýñlí³µÏÖš2d>Hã‡2ÌÖ-Ó5±Q§cî™…%újZ{¶|æ4ð?ÞÃ#y`òÀä¬vYí²Ú1!Ýêêê™÷)6sê Å2Çòôö(\é7÷úÚë„•W©‘—»>1½ô‘{LĘÞs €N C7€f¾õ|ëù?5°Ä¾’õV ktø¤õ˜Â}5­íĹ£«ÿÇ']´¾h}Ñš9|^Oú?éÿ¤i©´TZÒtfMLriof˜5Èo¤÷Þž~s¯Ïlzžò¬× ^µ  ³4=öÎ/:¿èüâíÅ·ß^dZŸ×ŽK;.íøzúÛu ]KÞè«i=ZaénÇä¼û±ÛÇn»Íœø¼ÀÐM`@ìØ%°‹¦K2+3¯UúœbWØW^úͽöÛ`Õ2ï Ô«]¯v½Ú•™|z/Ö½X÷bþjýÕú«5S!Óš ³/§¤è«¾fó[á}jâjW³Ÿ5íC¯µ½ÖöZ›˜˜Èä>½C =0TÓ9eV5¦L­‡ûøz¸)/ýæ^o–Ù÷OÝÿxSèH›H›HfÀçB†n"òe÷ÐÝCwk¼(u³íbP)r²ÍŹ‘ÊN¿¹×mùÚTÏûõqÇu×a~ŸFFpFpF°«‰«‰«‰Æ·RŒlæRIÙéW}]±¾~“Z÷dr‘ÉE&óƒÀ'••¥ñ•¯^1.­ 3^;QÄëe§ßÜ볨ãm<{U_o4¹L/M;sÙø²ñecæÀ§G†n">PÜØ¸±qc5¦ß§]»WþvJÍøzŽå¿œô›{ý}ØÙ汦ý±I·I·IÏ´Ê´Ê´b–Ûà¿ÿ5ø/o9¥íDWë/-ýæ^WŸò]+QÓþ옵cÖŽYLàc»·íÞ¶{Û4GÞµ]¶U(õfz䯳_Núͽ¦dŠ«ë·­naT­L#M»ô¼ýóöÏÛ3K>%0tðÞ^<}ñôÅSM—[¶šL4ôŸ<öÒO׿Ìô›{Þ4l®õYM{Ð- [@7& ðñì4Ùi²Sã+\ïý6ÓéÔ—œ~s¯óf×é_ÓZÓ^]©z¥ê•ªLàcxkûÖö­­¥l)[ÊêgYQãÕeB_ûž¨ã¥ÿe¦ß½¸÷ñï<›j:¯›l>²ùHÕPÕPÕPæ À§A†n"Þ[·ùÝæw›¯þ;^¥J†MœwÛþ6é7÷Úïܶº–?XŽ”#åHæ P°î\¼sñÎEM§OðPïóÖ!Dß­aþ-}œºWµ¼eôŽr0ìeØË°WFFFFFÓ(XsNÎ99礦SûÑ‘0S1¤ßÜëõó{ãëhܱ 7\Üp‘¹ði€ ÊÁÝwܳ‡3¶ÎØ:ckrÃä†É Ù™C¼‡cÁÇ‚kºÄÙ=ÜÂf¹WÓúÛÐ)V&ß^òuÅ×_WdÆ P¨ ôtótótS?qz=«Õĸˆê?o¢¯úúzPŸË^ô–èyèY©ïÞ‚Õ V/X͈ J®„] »4]'Æ”Ú`á:—Ü«i=,ÿïè§i÷îÇܹÃŒøØÀù—Õ*«UV+Mÿ?'0@+éÅÓ‹§×t wØÇl‰7ïur꥛Ž?T7uîRNRßÃiñÓâ§Å3i€ü;xïགྷ÷4Ú/ïö~P¡7ïõâ_ÙMãëŠî8Þq¼ãȤò¥¦ª¦ª¦ý·ößÚ«~ÖÌ}>4«f1¯6ëЯ;™SßÃv§ÚjwŠAð±€ à6×kóF Ö •ÀäÀäÀdõC×âf½5åÛNÜцīÍ:ò†ð³ÍvMßÄÜ;ïü½óÌàü ~üFã{uHýZuîDÜÕ~9×mÅ;þœo¼o¼/l /G¬XyÇgÏ—nTªk‰o3Kž|îmFÜÕf}™*u«?_Ó÷?±f±f±fÌ€‡œ9A7'îêiœ70à?¤¼Ly™òRãÛ>;¾Ê¦7Y÷}צI>Õ:¨ïç€[n ¸ÅÔ>̦7ý¸éGõó¥ue³Ÿ*;tßwM«×·ºWSMß%d&d&d2u€÷•å—å—å§÷\ï¹Þsõó%ê«`Ùå2Y÷}×ãtpTßO§GNœ©ž¨ž¨ž0{>pÁ"0à?,o¾¼ùòæêǪç¿*oI¹¶Nx|ö¼½Æ76I:št4é(³Ð^æŒÌ™34,7–tiWç%A÷ÃÖ=6MöÚ×QßÕŽbG±£ÈìÞ×1ƒcÇ ÔO–†inK+<&å~Øš½åôqïtã ÊKSßÛs5ÏÕó8Ð^ع°saçÔÏ”ÖV>F½‰¸ùYßzû}ï=XãÛÚ‘´#iОí¶?Øþ ~¦\øs[œÛ(Rn~V±æÊ Î¥Õ÷¶½^{½özÌ€üiƒß ‘¼F^#¯Q?8]Ot\U©)ù6ÿëøè3×ì›kú%³xfñÌâÌ!@nWÝ®º]U?M.?íäæ¾“ˆ›ÿucH?›wüÁ¸EwÝYt‡ hãÆÚko¬U?MìÖ[ÜÓ7PeGŸ&âæoÍzyÚÆ;NÓUöÓñOÇ?Ï(XàO¬ 0@£¶‰mÛ&ª–Cšü­ÖÙÂ\‡}}¸‘u÷ÜEîUÝð^Í*¿RßçS³NÍ:5‹9äíÑ Gƒ R?G,Ö´.ÛX•æß×Ç‹|›ÿõå·½ÿªß^Ó²÷eïËÞÇ4ò6«ø¬â³Š«Ÿ#‡ûþµÀ±•.‡ÕÌ&§*z;η–Q³½T3R¿S¹eeRKÈ&ª¨J§êÚ½ ;¹˜õ^õ}Þ½1zc4s `€?/b°&`À;¼|ø:ðgãù½õ~›boïXŽ\PëàK¡“jmQßlÿÅþ‹ý3€¼mÎØœ±9CýÙ1¨Ñc;sÂmÁ®ÝÖXî1úY}·¯9^s¼æÈ442P¨ 4ý:ÍûDšW3]Àã½{©15ï¦ëν}jzìÏoÕï¡••à`€u1870ࢆF ª~63ªæ_xßrY7ðä€K?;\×ô-H–e–e–%3 ÐÄ£“G'Nïx“ðž«=MH¶»Ê“ZÝv^¥¾ÛËŒ—/3fšÜ{wìݱê'H×ÍW½®ûo­\}©Ñ˜2=rîóØá=§U¿qyÀ®Õî SC¥WõëZÎY_ZÿZ¾™úž¿ðáÿŸ™PPÀº‰L¼Ã¤ã“ŽO:®~µøû¼uyðÇXë\ïq¢òvõ=¿åËÿ—¦€wHOIOIOQ?;LKë×/ó±öc¬©Gú8Õ?¢¾çNANANAÌ$@“ÇwßùŽ«ì#;9.Ðýœû>ç¤_Ý¿ÏÁ“­ÿ~G˜I:‘t"‰™PPÀºïËŒÁ`À;˜2=dzHýØûãÕù^ ÀcíõǺP‹›ê{ÏLÔ%6Ll˜ØPýì˜ÕÑ-Ñ¢±öã­5ÏD”]¨¾ó?fü˜ñ#“ P×#«GV,õ³ãÉwGÍ=䀛…”qÏÔýû|ÍpÏÄ:½Õ÷|š÷4ïiÞÌ$€‚B.\¾œLüË›„7 oÔ9ã9¶zeèZÐlvq‚ƒÜ®ÔœÕûÖŒò´/¿AY¥—%“Jm)Û¦„g•–Åʬð¸Õïû*;F7>áa;V—ð蔈~¶{Õw~Ø”aS†Ma2êvOÙ=e÷õ³#²në$W]‹¦'µnç|«ç5«{Fæ~åo–ý¶ìæ’ÓJÌ·ªièSöz»õæí«|ó÷¼æƒdWô;è}Y—ðk×Ef—ÕwþvÊí”Û)L&à_’TIª$M?PÎŽ;}Ýçkݾ…åÓs¯oGžðúGýÞ:orÞ伉ÁPPÀ…—²c0ð/<x<ðP?ؼ—ú£êÝÉ¥ƒ£ŽÙM7×wŸ¬Lûã¹CÄ‚ÌMu3Oºsñ‡ê÷Ù*À*À*€É¨ X°0à¯C}ا{¶‡….„Òœ”ûûn‡Õ¿×þ¼n»×,»rô«M}ÔOÖÍ|ø¯ÖŽ]Ôï¹,‹ÁL& ·tÏtÏtOõS£±µûÜŠ¶ºü ZÓMUÃʘ笹ï¹Ñ­JQ¥[æþ§ºü(ª\ªh]êÊ»¢5 °2(/€ÿ»%vKìõìSÆ_™uÕ‰\Z<þWG=ËúåŸç¾‡µž6ØcÒÖjÖÁêýªn-fY¶MØÌg¦©–nžoËGi:¤uí5ÍåçVY]Ê…KS€6|Úø´ñióŽ7"®Õ¯®×k]¥ÓŽÖžj>(ç^•[Vòz yÒ.’Yç°-.:бUÛÅ×þfÓŽ‘6×ÏdrK:œt8éð;®FUþYæ?êþ)Þ·€ÎY»[672ç*ÀÇCVeÄ`0à_BW„®]¡~€ù¿ØùÊê{]H¤þ5Ú¬CîûÖ¤ùèã³9ÿTÓìyÒoY•tÝÀ6›ÖàÒ rKË--·ô§ÆvÿF>vŸ7‘ÞüºËu)y§DE½ýýK=.Ù/~vÇîFš~}Î=µÖÑ£º›îg৪ž¡žê÷3À:À:ÀšÉäv)úRô¥hõSck‰*[?ðÇ^çôeq€«lXÙ o &þ%x|ðøàñê‡ÖðâaU­èB"µ>ßÈÃàmνÊy h­Þ`Ùëü‡Ñ•™•¾¢Ë¸^`o¹Š—¦€ûACõTý×eFéB"SÛÌü0knk÷×µI¹™MúmóvÌùTàœ_?ÐǶoµûº€Óüû:zµUßÿ®Ö]­»€ÿ«~j[~Äi&øc¯c¦ µÙÁU6€Oy]FVªÂƒ¿Ò/ €.e/u±­  ‰´bF ßÒûÿ÷cÖË{šëkŸruÿÀJŽXb\‚y|˜:öUëLÐ…Dê;Ò¢w•MÿûñÇ¡Öíœoiÿ{s?"Ç•ëŸÔµœ9²ß!ïºÌ ?N_[ïìêMþØë~‡…íŸ0o€Ïëàî&tÎè™'vØÎÿ¼qt☸Óö×rß«aŽ\±Þ¥ý¿¡ÛËUÓÌ÷æþ7èZnòhÌœjE˜7À‡ñ>Xíç µt!‘:ì¯TZÿÏü?¢jr¹ˆÒÇrþZwðÛ@?cïIÌ ?b6µ«mAþØëßo—Œpüšy|^»2veì"tŽ.¼ø÷¢B;›Ã¹ïUNÖþß0pÚÞ‘V·rÿx0@ItçÀú³J9•ÈÈÿ#ÊýïáÀ%áÀ¼ðåø‚^œóèܸqãÆM×nã{Œï1¾‡ú¥ Ÿ<éà…P‡ Ý«Ža¬Ïkÿoè~9¨ŒyvîCaù `&“7nܸ©ßÔÏ Ýù `ë_ 3Ê5ιWûâ›î¶OlÖ)Ü=óÃV] Àš>¸ñÖÆ[oe2¹qãÆ[îÛŠJ+*­¨¤~jðÀŸ÷3€™Lnܸ}¼ë²eß/û~Ù÷ìŒònüðw€ÿ7þßø£}úÍùõ_ÐgtSèŠÐ¡+ÞqP½ØùÊê{]H¤¹ïUו+ÌÍëhÿ{›ÿºZ¢.`›Í k¨ï?“ PWni¹¥å–¾ãÔØîßÈÇîó&ÒV×k¼¨ü¿íð FŽmtís|ó³>Uõ õtPßùëëk&Û¥èKÑ—¢ÕO­%f¨lýÀ{ÓoH”Å®²|<šþˆ ;£ 9ávÆÖ[glÕ>úæüúO}s#þ%vKì–Ø-ê‡V§Œ¿þ2ëªkØ|nFúwµzõ°×ù'£+GXŒ/ÓT—pù¹UV—ráÒ  Ÿ6>m|Ú¨ŸµúÕõzýyéØáNÍ«ßȹ?~Sl¾ªö‹6¿ëßW^QnªÌ2øÕܯüͲßΫ_§eÍ*º€:ý힦¾ó«Ï¯>¿ú<“ È-épÒá¤Ãê§Æ•–ùà½v·lndÎU6€‡¬<…7úæFüË<Ô0弄þ¨ú@içÎuÍþxÇų†_?yõ%‡‡õwõ¯QÕKûßõÞàúÎÅovªßC«««& .`aÀ€…êgÇÃ>ݳ=,>o"{ÙþníM9÷§äõöÿ=¯ù`‡yÿ®qmœ¿©ñ¯?ª•óïѵ|ø¯ÖŽ]Ôw^ ƒÅ`&[ºgºgºç;>8ÀÚ}nE[ðÇ^«\ªh]ê ÀÇCVeDßÜÀ€y“ð&áM‚úaf<ÇV¯ìÈ¥Åãu|Çq[ëiƒ=!m×Íþ£z½~U·³,Û®ÔœÕûZy-0(›ók* 23*}E7ð蔈~¶{Õ×°)æ ›ÂdÔíž²{Êî)êgGdÝÖI.®ºJßñ¡#l|«ynØð¼í䜸º½Y˜Ã¸ö‹Í÷VqÎý+»ÿl™`d¤kŸþ›³N±v]dvYýÑÝN¹r;…ÉüK’*I•¤éÇÙq§¯û|Mþë›Å‘'¼þQßsçMΛœ71˜ ¸ðR^ôÍ xÓC¦‡L©o¼:ßË¡³.äÒ±eNö²+i:ÙÉ­Ü\mfã³¶³ËnÊ Ãº€{ý±.Ôâ¦ú=‰‰‰g&ê&6Ll¨~vÌêè–hQGBiÎ[:w5³4©ªýåt Ãês*5OÓw•×Ý À5ÏD”}Çk¯3~Ìø1ãG& ®GV¬YêgǓ{Èà±^3Ü3±Noõ=Ÿæ=Í{š73   € eGßÜÀ€w˜t|ÒñIÇÕº¡Ÿ·.¯;Ñ4ç^µúiª«é¯f›Üé/+mW²yiƒrKøw¶ÊþÑØï÷‡ÆS'މ;mM—ߺÎõ'*oW¿‡·üoùßòg&êÒSÒSÒSÔÏÓÒúõËü¤kÑ4畾¾#-zWÙdr@¿réÔ2¡%ÍK´·VUh]nrÛ½fÙ•£s~MîWëÚ£H=ÒÇ©þõ=w r r b&šì<¾óøÎw\eØÉqøc¬Á“­ÿ~G˜I:‘t"‰™PPÀºïˉ¾¹€ï54jhÔPõc¯™A@P5݉¦ê1XÓßÏýOu-ýN¸ô³ÃuMßjdYfYfY2“M<:ytòè¤~‚< ë¹ÚÓD×ê¿?{ïÝÿT×îsîUžÔê¶ó*õÝ^f¼Ìx™1ÓÐäîØ»cïŽU?AºÞhv¸êõ€ Ëçþæ¬Î/­-ßL}Ï_ø¿ðÁ³P`ÀºéËŒ¾¹€ïð:ðuàëÀwœçKôÖûmŠI¼½c9ÝÌÀ…q|)tR­-ïø”ÄÅþ‹ý3€¼mÎØœ±9CýÙ1¨Ñc;s]Ž©…qí¶ÆrÑÏê»}Íñšã5G¦ ‘Ê@e éÇÍiÞ'Ò¼š®¼ªËëSÓc¿x~«¾Ï6V6V6V #€‚EÖDßÜÀÚ&¶Ml›¨~(ivð·Zg ·µÖ ïÕ¬ò+õ}>5ëÔ¬S³˜C@Þ z4èÑ õsÄbAë²Uiþ}}¼·ù__~Ûû¯úí5ýÈ {_ö¾ì}L# o³ŠÏ*>«¸ú9r¸ï_ [n ìÍŸÇN.f½W}Ÿ7FoŒÞÍ(XàÏ‹è«  ‘¼F^#¯Q? ]Ot\U©)á6ÿëøè3×ì›kúF$³xfñÌâÌ!@nWÝ®º]U?M.?íäæ¾“|›ÿucH?›ê;¼è΢;‹î0mÜX{cíµê§‰Ýz‹{úªìèÓäÛü­Y/OÛxÇiºÊ~:þéø§ã™C‹üé}µAh”¹1scæFMG昀È6¶×‰¸ùY[~Ìt–úÞÎ<>óøÌãL @{açÂÎ…S?SzX[ùõ&ßæg}ëí÷½÷`Mß%íHÚ‘´ƒ hÏöÛlP?S.ü¹-Îm7?«XsåçÒê{Û^¯½^{=fÀÇ@þ4ˆ¾ï‹ øË›/o¾ü¯Rõ¼àRå-÷ÃÖ Ïž·ß­ñGÉG“Ž&eöÚËœ‘9#s†¦“寒.íê¼$å~غǦÉ^û:ê»ÚQì(v™=Àû:fpÌàØ;>¸ašÛÒ ‰¸¶fo9}Ü;Ý8¨rçÒãÔ÷ö\Ís5ÏÕdö| à‡è›`ÀHy™ò2奦ud±ã«lztßwmšàS­ƒú~¸5àÖ€[LàÃlúqÓ›~T?_ZW6û©²)÷}×´z}«{5Õô]PBfBfB&Sx_Y~Y~Y~zÏõžë=W?_¢¾ –].tßw=0~ÑAGõýtzäôÈé‘ê‰ê‰ê ³àc ,¢oA!´˜˜˜¬~¸Zܬ·¦|Û)#ã;ÚuµYGÞ~¶Ù®é›•{çï¿wžy|˜7Áo‚ßk:e¤~­Æ:w"ëj¿Îœë¶À¢¸úNúÆûÆûÆ3o€ü8b}Äúˆµú)SºQ©®%¾Í,yò¹·YW›õeªÔ­þ|MßÿĚŚŚ1o>pþ}?0@+éÅÓ‹§×tÜvØÇlq7ïur꥛Ž?T7uîRNRßÃiñÓâ§ñ£d@8xïགྷ÷4Ú/ïö~Pq7ïõâ_Ùí¤¦=¼ãxÇñŽ#“È—šªšªšößÚkÿ­úY3÷ùЬšÅˆ»Ú¬C¿îddrL}ÛjwªÝ) ÀÇF.€kØÝwÜMô-X`À{8|,ø˜Æ×ìna3‰Ð«iýmè+“DM»÷ºâ늯+2c€¨ Tzºyºyº©Ÿ8½žÕjb\DõÆ¿Ÿ7¡W}}=¨Ïe¯ zKô<ô¬ÔwoÁꫬfÄ%aW®„]š®cJm°pKâÕ´–ÿŠwôÓ´{÷cîÇÜaÆ|làüËj•Õ*«Ñ·`€ï­Ûünó»½ãí•ôõ*ýP2lâô¸Ûö·É½¹×~ç¶Õµl©é›9RŽ”#™+@ÁºsñÎÅ;5>ÁC½Ï[‡{ÿµ†ù·ôqê^Õò–Quõ3ìeØË°WFFFFFÓ(XsNÎ99Gã;O<:fê1†Ü›{½~~o|;¶á↋.2W> pAÉý:`¢oþ€ïíÅÓO_<Õt¡e[¡ÉDCÿÉc/ýäpô;¼iØ\볚ö* [@·€nLàãÙi²Ód§‰¦“(üÚo3N‘~sÖy³ëô¯i­i¯®T½RõJU& ð1¼µ}kûÖÖR¶”-eõ3Ȭ¨ñê2¡¯}OÔñÒ'ý>ë}ü;ϦšÎëæ#›l>R5T5T5”¹ði€¡›À€76nlÜXM]nO»v¯ü픚ñõË™é÷÷ubg›ÇšöÇ&Ý&Ý&=Ó*Ó*ÓŠY|lƒÿü×à¿4J§§´èjý%§ßÕ§¼F×Òø1 ;f혵cSøØîm»·íÞ6Mç‘wm—mJ½™yÄëì—™~S2ÅÕõÛV·0ªV¦‘¦]zÞþyûçí™%Ÿº‰ È—ÝCwÝ=Tc¶íbP)r²ÍŹ‘_NúÑö˜¯Mu½<=®ó¸Îã:ÌàÓÈÎÎv5q5qÕøjàˆÈÖa.•¾´ô»b}ý&µ4îÉä"“‹Læ7€O**9*9*YÓÙäãÒÚ0ãu±E¼~ø‚^õu¼g¯êë&—é¥ig._6¾lÌüøôÀÐM`@ìØ%°‹¦Ë0+3¯UúœbWØWvúí·;ÀªeÞé÷j׫]¯vefŸÞ‹u/Ö½X§¿ZµþjMçTÈ´&ÃìË);úfó[á}jâjW³Ÿ5íC¯µ½ÖöZ›˜˜Èä>½C = ñ[›†U)Sëáþ#¾nÊN¿7Ëìû§nÞÙz‘6‘6‘6Ì €Ï… ÝD˜ùÖó­çküä¼ûJ>Ô[5¬Ñá“Öc”—~Û‰sGWÎû¢ô¢õEë‹ÖÌ àózÒÿIÿ'ýKK¥¥Ò’¦3kb’K{3ìA~#½÷*)ý>³éyʳ^ƒzÕ‚*ÌÒôØ;¿èü¢ó‹·ß^|{‘i|^;.í¸´ãRÞWš§¿]·Ðµ´òÒïÑ Kw;&çýØÝ>vûØmæÀçE†n" ØŠÚ+j¯¨÷EZ[›YG«Né¿É±fá¾cmN.±3´ l¼ÄÐ-ïÇ{¥Ô•RWJ1Ýñlí³µÏÖš2d>HÓùU}¶~l™®‰:sÏ,ìé÷¸gËgNó>¯&L˜œÕ.«]V;& ;B=C=C=ó>ÅfN4âXæ¸SžÞ…7ú¾ö:aåUjäå®OLÿ#{GŒ‰1†Ù  ÀÐM`ÀGqàûßø>ï ¶Ê~æWÊXJÝÿªVçB“~Çp¬Õ¾Ü¼_ªËûÑ™™™%5HjÔ€y覴i-ÒZtø³ÃŸþÌû\›ÑÙ­¢ùét¹ïß^ Kô½ßªÛåzc}¯[Ì«ò§öB«…V ­TûUûUû™ €nŠ.]6º¬ž"¾ ZïœR¸Òïáïþòtt׿Ñ%˜&˜&˜2tº‰ øˆâSâSâS´¹„³ÛÝÜÍ0yXÓÃ1Öcu-úNúûB¨CP·s«šoÖæ± |4ðÑÀGécÒǤóç‘…Á<Õ<Õ¼À"E‹hsÒ­9åíhÝâU\Ÿ5õßèZô}س{–‡ù8§W5¼´y,Ç-[·d…ŃrÊ=(gooŸ÷WïW‡ ƒ¤³Òæbµ»«ÞDGúxëPô-]Χdä®5).­-ÍM/–Ý÷ci¼½ñöÆÛ“í’í’혺† ÝD|t¯ƒ_¿1uÄÔSµùQlõ .NåžôÊ\?¯æOŸ+úNnŸø[¥ÉÁ&ázZ;p0à`Ï8 ðг޳޳Öþì›\ÕÕÂlõý˜î?Ô ü\Ñ7ΩýšÚÝX¾5rÖæ>7Jo”Þ(ý¡ÃC‡‡<ã€ÂèmüÛø·ñ Mš,4Ñæì«1ÑØ²Là>Ÿ™ö?WôÍ9}Â;ck¯™umÇ•}SfL‰`mîùÚÛko¯½­2U™ªxÕ/E†n">©˜ïb¾‹ùÎ Ó Ó Sû.;Ù´éZѰǪ5~u&8Å®´^°¹wxÉ0Së°6N30=Uåå¨2»´¿oíÚ ´KîÜ!¹Ï/@Þl³ýÍöæ ̘k&êÛ–*WâþüÓunÕsÁÊWß­{Á†Þìf~'½ïF>hcêÒ}T/G‹êVzïiÿ·û¿Ýÿ­j·j·j7Ï2@&.L\X{jí©µ§j&þöº~p¥Ô½]øØOy\:lǼ‚ͽwåƒãëUÞ8+Í6Ãgƒë‰ }´¿o-ε8×âÜÝÞw{ßíÍó @÷€¡›À€Ï K/K/Koçµ×v^Óˇ»kÿ¤ï]¿™ÿ”ªÕڄμcšÒ­ÁÊæczÜн¦MŸ9›|j.è)÷³î´`I‚™kóýúU{áê仩REÃÆ/J]ý°ÿnã)§4ž’à›à›à˳ P¶¤ÊI•“*\=põÀÕvn–ïXjFI³®ƒ-ëV˜]gjͺÛ=·}æÔ"Æñ¨´¸Õlç>âÞVŽÎ¶‡4 6ýÐ`¶Í¡ijw0oÝò| «JûòóÝÂbÅ‹=^×y]çužM€b-U-U- ÿ)ü§ðŸ îÜ5¸ûaç¦ËDëq厜Øu£©¸ªý„ŸkÍÚßpa„ý ¡âгNñrÔêçá?/OwZ±·Õ7û?–Û,±úgHXÇG&»lZüZ.ñÃþ»V+­VZ­ŒJŠJŠJâÉP¸€¡›À€Ï,Ó:Ó:Óú@à 4¬öcµ«ý¨§“zm赡׆„s çÎñ¬¾L÷Ýtÿѳþ˜õÇ,=¶fÞšyk楧§ó¬¾4Ù³f”b¤)Æí±Ûc·Çºy^7}ÜôqÓÇ1µbjÅÔR­T­T­ä¹P€¡›À“˜•˜•˜5Õ~ªýTûÏu!ê4Ìi˜Ó°íÕ·Wß^ýyÏç=Ÿ÷äy ·ŒŸ3~Îø9L “¤–ÛZnk¹ísÚƒbŠЉ}û4ö)Ï ê;êî¨Å¦‹M›–‰-[&öÓŸ×ÆŒX¼*xUðÃqÇ=Çó@ÀÐM`@a¸X-·üÝò»ä]ò.¹OHŸ>!¥J'”NÈÿ%¨]¨]¨]è”âSŠO)~b؉a'†½yò"„=à}¥ïKß—¾ïìð³ÃÏ_4qÑÄEë_¬±þÅ‚úÁqûb틵/¶®Ùºfëš%®M\›¸V¤ R±ó¼¯‡‡zxèà̃3Îê2Ôe¨KåäÊÉ•“ó^W¯U½VõZ£‹Ž.:ºèÑòGË-ÿ´âÓŠO+²ç|J`€²ôRõRõŠLŒLŒL<±ùÄæ›c»Åv‹íÆÆ knœ½qöÆÙˆ¶m#ÚFZEZEZ½þùõϯfgÐ5';Ÿì|²ó‰ª'ªž¨zòÆÉ'o°'è20(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `P0(‚ A… €B€@!À `PˆO€O9QäD=øbätR0z`Pˆ/.çüý_ŸøúÄ×'¾:ñÕ‰¯äl9[Ζ³ä,9KΔ3åL9CÎ3ät9]N—Óä49M~%¿’_É©rªœ*§È)rŠüB~!¿ŸËÏåçò3ù™üL~*?•ŸÊåÇòcù‘üH~$'ÉIr’ü@~ ?ïÉ÷ä{ò]ù®|W¾-ß–oË·ä[ò-ù†|C¾!_—¯Ë×å«òUùªœ('ʉòùŠ|ENä9^Ž—ãå‹òEù¢|A¾ _ÿ‘ÿ‘ÿ‘ÏÉçäsòYù¬|VŽ•cåX9FŽ‘cäh9ZŽ–£ä(9J>%Ÿ’OÉ'å“òI9BŽ#äò ù„,É’,É¢,Ê¢.‡Ëáòqù¸|\>*•Êar˜&–ˇåCò!ù|P>(”CåP9TÞ/ï—÷Ëûä}ò>y¯¼WÞ+‡È!rˆ¼[Þ-ï–wÊ;åòy‡¼CÞ&o“·É[å­òVy³¼YÞ,o’7É›ä òyƒ¼^^/¯—ƒå`9X^+¯•×Êkä5òyµ¼Z^-¯’WÉ«äò y…¼\^./——ÊKå¥r (ÊKä%òy±¼X^,/’É‹ä…òBy¡<_ž/Ï—çÉóäyòyŽ’·ä-yKõ¥úR}ÉSò”<¥zR=©žTWª+Õ•Ü%wÉ]r“Ü$7ÉUr•\%ÉEr‘œ$'ÉIr”%GÉ^²—ì%;ÉN²“l$ÉF²–¬%kÉJ²’¬$KÉR²”,$ ÉB2—Ì%s©†TCª!U—ªKÕ%ÉD2‘ªIÕ¤j’‘d$IU¥ªRU©²TYª,U’*I•¤ R©‚d(J†Ry©¼T^Ò—ô%}©œTN*'•‘ÊHe¤ÒRi©´TR*)•”JH%¤Rq©¸T\úUúUúUúEúEúE**•ŠJ?I?I?I?J?J?JßKßKßKßIßIßIE¤"Réééé+é+é+Q%ªD•˜%f‰Yâ[ñ­øVÌ3Ä ñøF|#¦‰ibšøZ|-¾SÅT1U|)¾_Š/Äâ ñ¹ø\|.>Ÿ‰ÏħâSñ©øX|,>‰ÄGb’˜$&‰ÄâñžxO¼'ÞïŠwÅ;âñŽxK¼%ÞoŠ7Å›âuñºx]¼&^¯‰‰b¢˜(^¯ˆWÄ1ALãÅx1^¼(^/ŠÄ âññññœxN<'žÏŠgÅX1VŒcÄ1FŒ£Åh1JŒ£ÄSâ)ñ”)FŠ‘b„!Fä|Só¿QQÃÅp1\<&‰GÅ£âQñˆxD<"‹‡Å¿Å¿Å¿ÅƒâAñ x@< ÷‹ûÅýâ^q¯¸WÜ#î÷ˆ»ÅÝânq—¸KÜ%îwˆ;Äíâvq»¸UÜ*n·ˆ[Ä-â&q“¸IÜ(n7ŠëÅõâzq¸N\'‹Áb°¸F\#®ƒÄ 1H\%®W‰+Å•âJq¹¸\\..—‰ËÄ@1P ÿÿÿ‹‹ÅÅâŸâŸâŸâBq¡¸P\ .ˆóÄyâb±Ø[ì-ö{Š=Åžb±‡ØCì&v»‰]Å®bW±³ØYì,v;‰D_ÑWô;ˆÄb;±ØNl+¶ÛŠ­ÅÖbk±•ØJl%¶[Š-Åb ±…ØLl&6›ŠMŦbc±±ØXl$6‰ ÄbÑGô}D/ÑKôë‹õÅú¢‡è!zˆõÄzb=±®XW¬+º‹î¢»è&º‰n¢«è*ºŠ.¢‹è":‰N¢“è(:ŠŽ¢½h/Ú‹v¢h'Úˆ6¢h-Z‹Ö¢•h%Z‰–¢¥h)Zˆ¢…h.š‹æb ±†XC¬.V«‹&¢‰h"V«‰ÕD#ÑH4«ŠUŪbe±²XY¬$V+‰Ä bÑP4 Åòby±¼¨/ê‹úbY±¬XV,#–ˈ¥ÄRb)±¤XR,)ê‰z¢žX\,.‹‰ÅÄbâ/â/â/âÏâÏâÏâOâOâOââââ÷â÷â÷â·â·â·b±ˆXDüZüZüZüJüJüJȲ…l!KȲ„L!SÈ2„ !CHÒ…t!MHÒ„WÂ+á•*¤ ©BŠ"¤/„ !YH’…gÂ3á™ðDx"< …ÇÂCá¡ðPH’„$á¾p_¸/Üî ÷„;ÂáŽp[¸-Ün 7…›Â á†pC¸&\® W…«ÂUáŠpE¸"\. —…x!^ˆ. —„KÂá‚pA8/œÎ ç„sÂ9!Nˆâ„X!VˆÎg„3B´-D §…ÓÂiá”pJ8%œN '…!BˆN'„‚$H‚”ó?!\Â…ãÂqá¸pT8*„0!L8, ‡„CÂ!á pP8(„ ¡B¨°_Ø/ìö û„}Âa°GB„a—°KØ%ìv ;…íÂva»°MØ&l¶[„-Âfa³°YØ(l6 „ Âa°NX' ÁB°°FX#¬‚„ !HX%¬V +…•ÂJa¹°\X.,– Ë„@!Pþþþ ‹…ÅŸŸŸÂBa¡°PX ,ó„yÂB¡Ð[è-ôz =…žB¡‡ÐCè&tº ]…®BW¡³ÐYè,t: _ÁWðÚ í…öB;¡ÐNh#´Ú­…ÖBká7á7á7¡¥ÐRh)4š Í…fB3¡™ÐDh"4 …ÆBC¡¡ÐPh 4Þ‚·à-x ^‚—à)x ž‚‡à!xu…ºB]¡ŽPG¨#¸ n‚›P[¨-Ô\ÁEpœgÁQpÁApì;ÁN°l[ÁZ°¬…ZB-¡–`)X –BM¡¦PS0ÌsÁL0Ì„êBu¡º`*˜ ¦B5¡šPM0Œc¡ªPU¨*TªU„JB%¡’PQ¨(T CÁP0 A_Ðô…rB9¡œPF(#”J ¥…ÒBI¡¤PR(!”JÅ…âBqáWáWáWááᡨPT(*ü$ü$ü$ü(ü(ü(|/|/|/|'|'|'ŠE„o„o„o„¯„¯„¯ÂUáªpUxVxVxVøÛð·áoÃ3Â3Â3Âß„¿ žžžþ*üUø«ðÔðÔðÔð”ð”ð”ðá/Â_„'‡'‡'‡? þ,üIø“ð'áÇ?þ0üaxRxRxRøýðûá÷Ãï…ß ¿~'üNøðÛá·Ão‡ß ¿~3üFøðáׯ…_ ¿~5üjø•ð+áWÂ/‡_¿~)üRø¥ð áÂ/„Ÿ?þíÝwX×ÿÿýt“˜(vŠ ‚ TéE{06»XÀ»Q,±ÅÞ v{ïbTvfTŠ +ì+‚ Âþþ ßëæs/KPÚ²<s]çÊe`˜=ó8{^;s®J—¥ËÒe)VŠ•b¥)FŠ‘.J¥‹Òé‚tA:/—ÎKg¥³ÒYéŒtF:#EJ‘R¤!EH9Ãÿœ?ûRQ%Q’I2I&…IaR˜t\:.—ŽIǤcÒQé¨tT:"‘ŽH‡¥ÃÒaé tP:(H¤}Ò>iŸ´WÚ+í•vK»¥ÝÒ.i—´KÚ!ívHÛ¥íÒvi«´UÚ*m‘¶H[¤MÒ&i“´QÚ(m”6H¤ Òzi½´^Z'­“ÖIk¥µÒZiµ´ZZ-­’VI«¤Ò i…$IAÒri¹´\Z&-“–IK¤%Òi±´XZ,-”J ¥Òi4Oš'Í“æJs¥¹Òli¶4[š%Í’fI3¥™ÒLi†4Cš!M“¦IÓ¤?¤?¤?¤)ÒiŠ4Iš$M’&J¥‰Òi‚4A/—ÆKã¤qÒ8i¬4V+–FK£¥QÒ(i”4B!†KÃ¥áÒ0i˜4L* •†Jƒ¥ÁÒ`)@ ¤AÒ i4P( ”úKý¥þ’Ÿä'ùI}¥¾R_©ÔGê#õ’zI½¤žRO©§Ô]ê.u—|%_ÉWê&u“ºIÞ’·ä-u‘ºH]¤ÎRg©³ÔQê(u”:H¤’—ä%yIí¥öR{©ÔNj'µ‘ÚHm¤ÖRk©µÔRj)µ”<%OÉSr—Ü%w©…ÔBj!¹J®’«Ô\j.5—\$ÉEj*5•šJM¤&R©±ÔXj,9JŽ’£ä 9H’d'ÙI¶’­d+YKÖ’µd%YIVR#©‘ÔH²,$ ÉL2“Ì$SÉT2•Œ%cÉXj 5HF’‘d$Õ—êKõ%É@2êIõ¤zR]©®TWÒ“ô$=IWÒ•t%IGÒ‘´%mI[Ò”4%M©–TKª%ÕjH5¤êRu©ºTUª*U•ªHU¤*Re©²TYª$U’*I?I?I?I¥ŠREéééé{é{é{é;é;é;é[é[é[ékékékéKéKéKé é é 1[̳Å,1KÌ3ÅL1SÌ3Ä 1]LÓÅ41MLß‹ïÅ÷â;ñøNLSÄ1YL“Å$1IL_‹¯Å×âKñ¥øR|!¾_ˆÅà ~.IDATÏÄgâ31QLÅ'âñ‰øX|,>ŠŇâñø@¼'Þï‰wÄ;âñ¶x[¼-&ˆ b‚øøø/Æ‹ñbœ'Ɖ×ÅëâuñšxM¼&^¯ˆWÄËâeñ²xI¼$^cÄ1FŒ£Åhñ‚xA¼ žωçijâYñ¬%F‰Qb¤)FæLþå¼ÝÏù#/æDAÄ01L Oˆ'Äâ1ñ˜xLü[ü[ü[ CÅPñˆxD<"‰‡ÄƒâAñ ¸_Ü/î÷‰ûÄ}âq¸GÜ-îw‹;ÅâNq‡¸CÜ!n·‰ÛÄ­âVq«¸YÜ,n7ŠÅbˆ"†ˆëÅõâz1X ƒÅµâZq­¸F\#®W‰«ÄUâJq¥¸R ƒÄ ñ/ñ/ñ/q™¸L\&.—ŠKÅÅâbq±¸H\$.ˆ Äâ|q¾8_œ+ÎçŠsÄ9âq–8Kœ%ÎgŠ3Åâ q†8Mœ&N§ŠSÅ©âqŠ8Eœ,N'‹ʼnâD1P Åñâxq¼ø»ø»ø»8V+ŽLjcÄ1â(q”8J)ŽGŠÃÅáâpñ7ñ7ñ7q¨8T*‡ˆCÄ1@ ‰ƒÄAâ@q 8Pì/öû‹~¢Ÿè'öûŠ}Å>b±ØKì%ö{Š=Åžbw±»Ø]ô}E_±›ØMì&z‹Þ¢·ØEì"v;‹ÅÎbG±£ØQüUüUüUô½D/±½Ø^l/¶Û‰íÄ6b±ØZl-¶[Š-Å–¢§è)zŠî¢»è.¶[ˆ-DWÑUt›‹ÍÅæ¢‹è"ºˆMŦbS±‰ØDl"6‹EGÑQtDÑA´íD;ÑF´mDkÑZ´-EKÑRl$6‰æ¢¹h.š‰f¢™h"šˆ&¢±h,‹ ÄbÑH4Äúb}±¾h ˆb=±žXO¬+ÖëŠz¢ž¨'ꊺ¢®¨#êˆ:¢–¨%j‰š¢¦¨)ÖkŠ5Åb ±†XM¬&V«ŠUŪ¢†¨!jˆ•ÅÊbeñgñgñgñ'ñ'ñ'ñGñGñGñññ±‚XA¬ ~'~'~'~#~#~#~%~%~%~)~)~)ȹ ²…l![ø(|> ™B¦)|>„t!]HR…T!Ux/¼Þ o…·Â[!EHR„7Âá$$ IÂ+á•ðJx!¼^Ï…çÂs!QH…§ÂSá©ðXx,< „GÂáð@¸/Üî w…»Â]áŽpG¸#Ün ·„!AHn 7…›B¼/Ä 7„ ášpM¸&\® W…ËÂeá²+Ä ±BŒ#Ä…‹ÂEá‚pA¸ œÎ ç…³ÂYá¬pF8#œ"…H!Rˆ"„á´pZ8-œN 'IIÈ!d‚L8!œNÇ…ãÂqáoáoáoá¨pT8*ŽG„ÃÂaá°pP8(„Â>aŸ°OØ+ìö »…ÝÂna§°SØ)ìv;„mÂ6a›°UØ*l6 ›…ÍÂ&a“°IB„aƒ°AØ  ÁB°°NX'¬Ök„5Âjaµ°ZX)¬V AB$ü%ü%ü%,– Ë„¥ÂRa©°XX,, ‹„EÂa°@˜/Ìæ s…¹Â\aŽ0G˜#Ìf ³„?…?…?… a†0M˜&L¦ S…©ÂaŠ0E˜,L& …‰ÂD!P…ñÂxa¼ð»ð»ð»0V+ŒÆc„1Â(a”0J)ŒF Ã…áÂpa˜0L& † C…ÁÂ`a°  a0H(  ý…þBÁOðü„¾B_¡¯ÐGè#ôz ½„^BO¡§ÐSè.tº >‚à#tº Ý„®BW¡«ÐEè"t: „NBG¡£ÐQè t:^‚—à%´Ú í…vB;¡ÐFh#´Z ­„VBK¡¥ÐRð<Á]pÜ7ÁMp\WÁUh&4š .‚‹à"8 ΂³ÐDh"4œ'ÁIpGÁ^°ì[ÁV°lÁF°¬+ÁR°, ÁB°ÌsÁ\0LSÁD0L„†BC¡¡Ð@h 4 CÁP0 A_Ðô…ºB]¡®PG¨#Ôt]AW¨-Ôj Ú‚¶ -h Z‚–PK¨%Ôj 5…šBu¡ºP]¨*Tª U„*B¡²PY¨,T* •„Ÿ„Ÿ„Ÿ„ŠBE¡¢ðƒðƒðƒð½ð½ð½ðððð­ð­ð­ðµðµðµð•ð•ð•ð…ð…ð…,[–-Ë–eɲdY²LY¦,S–!ËeÈÒeé²tYš,M–&{/{/{/{'{'{'K‘¥ÈRdɲdY²,I–$K’½’½’½’½”½”½”=—=—=—=“=“=“=•=•=•=‘=‘=‘=’=’=’=”=”=”ݗݗݗݓݓݓݑݑݑݒݒݒ%Èd ²›²›²›²xY¼,^vCvCvCv]v]v]vUvUvUvEvEvE+‹•ÅÊ.É.É.É.Ê.Ê.Ê.È.È.ÈÎËÎËÎËÎÊÎÊÎÊÎÈÎÈÎÈ"e‘²HY„,B‘3mŸ3]—3l'.Ñ ÅAòP`(ÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL @MPÀÀÔ005AL   ;;1ïMÙ×Ç~ûUìWÃ5‡k×lV»Yífµë‡×¯^ke­•µVZV²¬dYÉKÇKÇKgSü¦øMñï·¾ßú~kAŽ$qBâ„Ä +­\´rQ{§öNí,å–rK¹ö`íÁÚƒµ&hMК`êcêcêã3ÆgŒÏ˜unëÜÖ¹|ÿ…‘e–e–evêñ©Ç§¾8úâ苇<y2obÞļIÍm5·Õܦë¬ë¬ëœÓ={:öt\ÓwMß5}ßF¼x¡:gP™lÝlÝlÝôñéãÓÇê÷>Œ|ù0r‘á"ÃE†m½Ûz·õn¤ÛH·‘nNU4œÝpvÃÙ9=6±óÄÎ;ÿÓãŸÿô(ÝÊWås ¥‹˜@¦¡Dî¯IªœT9©r§K.uº¤ñ‰¬h°¢Á Å}æÈ —ý³ìŸeÿÔ­Z#ôS÷¯_ÿ¾þ}eû/¼½Ö{­÷Z7o<^ã³è™ë™ë™çü÷ãí·?Þ^òg0·gƒŸ ~6xFôŒèÑ-b[ĶˆÍ݇ïÉ7Éo’ß$Œ0ºÊ—U¾¬ò¥F!äÕYVýs ¥‹˜@–Ì–Ð>¡}Bûœ»9 ïåÜ¿›{Ï9wšvøØác‡…–;€,|ŸäD›9÷1k)__ߢ« ”.}¶ôÙÒg9÷¶*û.ÿü⥪—ª^ªZ˜5·ÜÕ•ÿ+*L¿•­s ¥‹˜@¦,ÖJ~ü ùõ=ë{Ö÷Š**³¹lsÙærÎ{/ó^潬h£¸z_Ôû¢Þ…‰â^Y¼²xeábêbêbªQÌVX=bõˆâ;ƒ9ÿ7³mfÛ̶ƒ–Z:hiAŽ*ÿ8nnÜܸ¹õ’ë%×K.ÚÞ0kcÖÆ¬Í§Þ+¬®çJ00€2LY”ÕuS×M]7åþ—ª«>¬úð÷%¿/ù}Éõ×w\ß‘º"uEꊫQW£®F-®¹¸æâšyŒsNĨøïíZµkÕ®ÕѵG×]›Ú½ùâÍo¾8}ãôÓ7†tÒeH—‚„p+‚W¯þÔ°0gEØœU`ó߇Š*v¨¸cÊŽ);¦ÜK¹—r/%çnæœeG7‹nÝ,ç˹iew-ç¼Þâ8ƒ9ÿwpÿÁý÷/x„©,ÎYõ6g æü÷Ðzlë±­ÇîqÝãºÇõÁµ×\ûð!àC@Σ’Cw…î Ý¥,þoùWË¿ZþUTpÙ=§Pº€ €”a s,X V‚Uþ{;3ÿÌü3ó?õ¾Éœð8÷ñ(Ûÿ–[Nl9‘ÿÞr¯U\ð~XRaI…%ò_óõï/ø{AÁÃÈœ;ÿ£5¸bpÅàJaîZοWÿ½ÖÊZ+k­ukÔ­Q·Ž;>ìø°Ø·±ocß>:úè裣9Á§âO?mü´ñÓ”Ÿ)URª¤ä¾ÿµ ¯hŸÁ>ƒ}9Çóy««ë9€ÒEL   +Hä–³vlÁ­¾/û¾ìû² {®9\s¸æ§s{§öNí”í³á솳Î.øÞrîLU¶2nÎêÅ—]~tùÑgFz•ä•ä•òï‡iϧ=Ÿöüóö_u‘s?‚û®Æ]»Ÿ¦þÓãŸÿôȹÿ»8}œm\ÖÏ)”.``eXþ!Vƒ V4X‘6;mvÚ'Dª9÷ ç¿g]g]g]çí^´{ÑîSC²#Ç?r<ÿû• ¾·™²™²™2e{ÛPcC 5 ãå<YÙO©£WG¯Ž^ÑÀ¹YÊ-å–òÄ ‰'|êO ô ô ôS¶g///Â×ao­ÞZ½µŠ*.ëçJ00€2,ÿ°m‘á"ÃE†ŸbÝ©{§îºùïyzÂô„é ŸåÜ“Zø˜0³mfÛ̶†G Q܃U’U’URÎ:²EÕÛ¾=ðío•ó•ëW®_¹^´g0Gî|Ͼ¾¾ú÷õïëßW¶çKU/U½Tµð1g|`|`|`á`õ8§Pº€ €”aù‡m¹ïå-ø>s‚Ãü÷|tíѵG×~^p˜ÿ—ßgþ+Ï™:gꜩE{gΑkÖ¬=XÙƒ”?õ'æßÍnþsóŸ?ïhOß8}ãô e{vrr*ÚjtníÜÚ¹uaάzœS(]ÀÀʰüöûï?¼ÿ°8öœ³mñyAö°¤Â’ K*(ÛÃùžç{žïYÑ]뱭Ƕ«øûdöÉì“Y´ð¬õ³ÖÏZÿy¯bqÍÅ5×,Ž{¸•ÉÿÑÍùYêqN t(ÃòÛ²u³u³uUmÏÙAöà3ÆgŒÏe{HªœT9©rqôy/ã^ƽŒ¢Ç!C‡Š¶rßÅû©{îѲGË-•íùPÜ¡¸CqEmH=z µ0gV=Î)”.``eXácÔ’ßsQí¿ñ ÆƒÒP9ÇS´ýpïË{_Þûòóz8ÿþIhŸÐ>¡}ÑVcAV.çJ00€2¬<À&þ&þ&þªZ˜Y˜Y˜m?¼I~“ü&ùóz8ÿþy­÷Zïµ^ÑVã‹v/Ú½hW˜3«çJ00€2¬<ÀÚƒµkV°°^r½äzÉEÜ•ä•ä•>¯‡u|u|u|•í9Ã7Ã7÷h«1mvÚì´Ù…9³êqN t(ÃÊs\#´FhPÕ sŽGuú¹ÚÕjW«]-É8³mfÛ̶…yEêqN t(ÃÊs\?¼~xýpe{H]‘º"uEy>ƒW ®\)ÉG@çì³0¯H=Î)”.``eXy€mOÛž¶=­l÷Þxÿay>ƒù÷Ï-—[.·\ŠöµÜ©{§îº…yEêqN t(ÃÊsÜÖ»­w[oe{¸hyÑò¢ey>ƒ­Ç¶Ûz¬²=9~äø‘ãEûZŽM>6ùØä¼"õ8§Pº€ €”aå9žl7Ùn²²=H=z µ<ŸÁ@¿@¿@?e{žµ~ÖúYë‹êlæ˜ßi~§ù óŠÔãœ@é"&P†•çøPÜ¡¸CqÊöà;Àw€ï€¢ 8}tôÑQ§qyo§Ÿz|ê±êôóÁ'Ÿ|¢lÏM7mÜ´qÑöû)÷Sî§ óŠÔãœ@é"&P†•çø•Å+‹WÕ#ªGTPÜCÕ‡UV}X´a¡²ûS«|YåË*_æêôó‹v/Ú½hWíjµ«Õ®*Ûÿõ×w\ßQøž)Èê¿yEêqN t(ÃÊsœ£ßí~·ûÝV¶ÿéþÓý§þ˜ß|ñæ‹7_è™ë™ë™+þ”œ;_U³Ÿ{kõÖê­¥lÿ]7uÝÔuSá–_Œ_Œ_Lá`õ8§Pº€ €”aÀg'žxvbþ{Û˜¸1qcâçgfÛ̶™mÛ;µwjï¤lÿ{­÷Zïµþ¼ž)î~ŽÜ¹3rgþ?%$-$-$íóöŸóÐæœûe‹*.ëçJ00€2Œ8Gß—}_ö}©loURª¤TIùwÏ•ä•ä• ²Ï¤ÊI•“*÷ù±Ï}~T¶g‡ ‡ ‡ Î?:«f?çð^æ½Ì{™²Ÿ’ó˜èïB¾ ù®àûÌYcXsŽæÍ9VÎ)”.``epŽ×z¯õ^ë$€´ßb¿Å~Ëê«G¬qcõÕ7V¿xñ6âeÓ—M_6=3ÿÌü3óÚ.´]h[G¯Ž^½üCÓKU/U½Tµ0}R2ðóîÏ»?ï^þiת]«v­rþûaäÃȇ‘>|Hœ8!q‰^'zèÕ£e–=Z*~ï€ 8 lÏ9Qqy8§Pº€ €”aÀ¹Å~ûUìWÅ,çÞÓÃwß9\õû9·“ïN¾;ù®8ú¤å_-ÿjùWÚì´Ùi³•}M½/ê}Qï‹òpN t(Ã€ÅÆÆGL¨g®g®g~ õ@êTÕ?ƒÊD7‹nݬ¨ú¤ÕÌV3[Í|eñÊâ•Eþ_iâoâoâ_Î)”.``e°2¹ïFÕš 5AkÂç„9ö‹ñ‹ñ‹y¼ýñöÇÛ‹6š-ù8Gî,ç^O· ª>¬ú°êÃ@¿@¿@¿œµrsþ=¡}Bû„öʾËúžõ=ë{åáœ@é"&5—³"lλ¿þR©¿äbêbêbÚ`Eƒ VT¨Q="guXK¹¥ÜRž³ÆíŠàÁ+‚Ÿ¬|²òÉJõ\{píÁµ%–TXR¡õØÖc[5õ1õ1õ©¹­æ¶šÛrîÜõ8äqÈãЬõ³ÖÏZ¯,4=;ñìijóL4çŠ00”S¥u÷mÙíŸü¿>tWè®Ð]Êús¨çPÏ¡žÅÝ·œS & í Ú´GYøšs‡1A,7``€ÚÊy²þýÿÿæääT´?«ãŽw:ÞQ›|lò±ÉÀPÜ€ €j+gå]e¡ìÕ7VßX]øŸr§îºwêV»Zíjµ«Š?EÇWÇWÇ7mvÚì´Ùœ(nÀÀµ5{ñìų+ €{÷2îe\˜»r?:tþèüë«__ýúJÙOp`À8P2€ €jëÁµ×\ÓÈ׈Fü0â‡7_¼ùâÍ'¼CeñÊâ•E–=Zöh©lÏU¾¬òe•/Ï÷<ßó|Oþ %ƒ˜ æ&ÛM¶›l— \G¯Ž^½œÿõE}QÿþÃûï?ÌðÍðÍðMœ8!qBıˆcÇ&vžØyb纕ëV®[9ÿ}ŽLjcDúJ00@Í嬿«Q‚šÕnV»Yí·o#ÞFpï/”$``@¹;Ž->9ë¿ }ú.”èJ00 ÜÉy/lÞļ‰y“‡¾Mº5éÖ¤Û¡¸Cq‡âä•ä•䕈~ ´Ê©lÝlÝlÝœ÷Å9ë·Øf`›¦>¦>¦>µÛÖn[»mõˆêÕ#Œ¶m5Úê4ÎiœÓ¸.»ìrp鳥ϖ>»üèò£Ë}@ue÷ûÒ3 Ê€ €¨ ``j‚˜€š & &€ €¨ ``j‚˜€š & &€ €¨ ``j‚˜€š & &€ €¨ ``j‚˜€š & &€ €¨ ``j‚˜€š & &€ €¨ ``j‚˜€š & &€ €¨ ``j‚˜€š & &€ €¨ ``j‚˜€š & &€ €¨ ``j‚˜€š & &€ €¨ à…Gx‹*¥íL)mgKi;WJÛùß.”Ò]JÛÅRÚbJi»TJ[l)m—Ki»RJÛÕRÚ®•øv½”¶¥´Å•Ò_JÛÍRÚþ)¥-¡”¶[¥´Ý.¥íN)mwKi»WâÛýRÚ”Òö°”¶G¥´=.¥íI)mOKiK,¥íY)mÏKi{QJÛËRÚ^•øöº”¶¤RÚÞ”Ò–\J[J)moKi{WJÛûRÚRKiK+¥-½”¶¥´e”Ò–YâÛÇRÚ²JiË.¥M^:[Ä¥´}YJÛW¥´}]\0¨-`Pjçà(?Ô6~áõÂë…WxD±m‘¥´±&1«³±ê¯F\~Ö!.?+—Ÿµ‡¯•ÒV~Ö.?«—Ÿõ†ËÏJì1¬~« —ÖÃåguaÖfEaÖfaV.­U„ËÏúÁ¬ÌšÁ¬Ì:Á¬\Zë³B0k«üªÀ/¿üb°ÚÞ (À &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0¨ `PÀ &€@M€š 5A j‚Ô0ʵ×ß¾þöõ·‘ñ‘ñ‘ñ‘{"÷Dîy6îÙ¸gãè  ó“ûÉý¢¢¢"¶El‹ØÓ;¦wLo:(ëΜ38gÑ>¢}Dû3Vg¬ÎXÑ'@Yw÷ÒÝKw/Ev‰ìÙ%Ê"Ê"Ê"õÇÔS¤g€²ëCÇ?tŒòòò4Ž4Ž4þ'óŸÌ2é ¬;ÓãL3="êEÔ‹¨wæî™»gîÒ'¨2`¨•¬mYÛ²¶ÝH½‘z#u¸F\#zMöšì5Y£ˆ´ÝÚvkÛ­+û®ì»²ïµÙ×f_›ýÑê£ÕG& b÷Hë‘Ö#­½á{Ã÷†Ø?`ÿ€ýÕã«ÇW/üumjj:½òôÊÓ+GŒŒ12yòþäýô9PÜ^‡¾}*^/ЧNœn:Ðt éÀÂ_×µ=j{ÔözrèÉ¡'ï<¼óðΧϟ>úœ>Š[ú¡ôCé‡.º4êÒ¨%S–LY2¥Åõ×[\/ªÑ¸÷ÏÞ?{ÿ¼±ýÆöÛ'lHذA,–Óó@1Ê”gÊ3oÇߎ¿¿eê–©[¦úFùFùFÕuÝìv³ÛÍn/H[¶ -úbôÅè‹©WS¯¦^¥ãâöìØ³cÏŽ}töÑÙ#œF8pª“T'©NRá¯ë4jÐè÷Š¿Wü½¢LK¦%Óz¥ûJ÷•.}@I"F–žž~fó™Íg6÷×o\¿q¥¤Ç¦›zl ¿~1übÖѬ£YG9;@a$d%d%dͰa;ö´®k‡‘#Fîj°«Á®oú½é÷¦ç(Œ_\|q1dUȪU&6&6&6¥uu/ô\è¹Ðó~øýðûᜠ02~Ìø1ãǰÓa§ÃNwØÙag‡¥u]‹=,:æUÌ«˜Wœ ð®ô½Ò÷JßÑ^£½F{•ÖuÝff›™mfþ½àï/H;›v6í,ç(ŒGã{4n™Ñ2£eF5bjÄÔˆ)ùëÚ`ˆÁƒ!kCÖ†¬ y6ñÙÄg9/Ôƒâo¼ˆ¯#¾ŽøšžAé"F“4§ø‹ûù“çOžÿ1ç9ÌQåÑøúë¬_ðÎàÁ;οT«T«T«-M·4ÝÒT•¯ëñ±ãcÇÇ>ÜÿpÿÃýœ5 ÙC³‡f=}:út´ó çÎ/Tóºn÷¢Ý‹v/¢E7Šn$_#_#_ùPC5£ HöNöNöžqkÆ­· 3¬ìz̤OÝ ³O8‡˜jm7hÕÑÚúø|/sûî§+vôvlyÚ±£¿ã¯'´½úÙOÜѨÕQëás‡5u3äãeê]7¸Ê QcÂçýÜI]&u™ÔåõÌ×3_Ïäl9²4²4²4öÜÞs{ÏíÂ\× ÷5ùAÓ£Eû€éõêwýÐ(¥wË5ÝLÆ÷³¹™Õ€y[=Íõ;2È4¤û¢åñÆ9[õtuF$WûÌß*m¦·™Þfz¼O¼O¼gÈ-&=&=&ݱ®c]ǺŸw}5ú©á/µ4†ýêSÁPÅš -Æè¼pœ­§8uÕ‡Àðàu 7žÜ´ÆÁáý×%sìŒ×=™âÚèÁ¸ø>´v~aÓPÛú3¡Ñ8¢qäxãã7ÎÎÌÎÌfµBà_‰uë$Öºn躡ë>ïòÒò­6«ªq¯ß̛Ջ\pÁe†Y³]n­'Y? sðŠ¶—^Öq®ã€S;Ú;ZòË){í­Zε:6³u“n&:\mh¡w¨0£…e®Ë\—¹¦º¤º¤ºp6éÓ;¦w\­·Zoµ^a®/§v~Í­~îÒ;`”Ùì€ 3ÎYv{ky7kljÇ×$Z™4~í«ÚãW˜¿ùÍyý{H£Þ×ÙäjèÕ£ê’Zo´?ïçöÒHÿ!>Zøh!gø× ù ù éééíGÚ´}Þõå4År¢ÖÐ1Szm1:µÖ{òænµ8Ò6ù¤îêKqáçÖíwÜ-ý¸*ÝaõÁŽ‹œmÿXe¸ÜâÊð0ßç†{­›Vª•ðy?×bÅ‹5çÏ%žKäd([€¡š€¡¢²­²­²­¶È¶È¶È>uÈ8õ+§“ÆÝ£‡vµk¼Až0ÐÓ].ðô,ªöRuoë&N34™b2øS-xrðäàɳ>f}Ìâ,£|Šþ6úÛèoµ3µ3µ3?áÌV{éêô]»ÞßÔe²CÌÛQÓ§ÇÅÙÛU;ªj˜‘eXg‡ÙŒÎÖ}j>®ÆÞ‚ÛP›¡6Cm’º%uKêÆùEù”è“è“èã³Èg‘Ï¢‚_;Í;Ú]ÑNÛ–=«¡µÉƒox7›*—_¸àéYTíë¡bE·öG¶/‰·kî=¬å“º–?6ËËË”ûo쿱Ÿó‹òéî»>ìZd²Èd‘IÁ¯MëjµªšÎ}ŠvžÝÞÿŒÇ£¨§œúŒó³7m`ñ©£ñÃßþæð7ò}ò}ò}œe”;éòtyúñÇO?ñ©×Ž~L[ÃnÖG&7_w¿éÊ ËÏÕwqÙ¸ñÂ…¢jí[Ι½{¨qíÞߎ}T5MËAçNÁmV­YµfÕJ›Ÿ6?'y œJXœ°8aq“Mf4™Qðkç×Ô!zïöZäi;ýEõ°a® Šv4þ(üè¤æuvÍI³ÎðÜÜ8¢ö€‚›×e¯Ë^—õÔÿQÎ/ÕG ÕD •s¯ý½ö÷ÚÛXØXØhBç·š6Õ ‰Ÿê{¤©oÑN0¼½mÞc¤‹ÿ˜ »)FQ9æ­´jÐ*¡]B»„vœq”©!©!©!£gŒž1º@oGlvr¨õÒ/sÓ³Š6è-x;eT¬d›ð«Þ´C©àoS <ÈG¹pJ~J~jûÉí'·Ÿ,ø5²Ùi†­U‡IçxíSÁÛ£òe{íÎZf_«5­@ÓʳÆ}Œ[l¸Øp±ažž5ÅÀ¼FÐ!ÏE™¶GKkž½ÿ|„GÆ¿Ùͬ'ÖüPc|•‚ù†lx 7’É8ïT0T0TȾ§ûžî{ZÁß<ͦÓL7½Nö«ì6´´¦™”µÉ¿ù}tË\jß¼¡¹KA^˶=ÛölÛÃÙ‡ºŠK‰K‰K)ȵ`³ïg¤‘íŽG[N(­ÐWY;õïk¡vÁ½/¯me²­@÷?ú|èóôñéãÓÇSP?);Rv¤ìè:±ëÄ®ó¿ üê4ªþÛ©¸µÆŽM²ÛŸÿÝãQiM6)k¯}µ³s×Ö¦ÎRí´ü_Kýëõ¯×¿þ`䃑FRPC ä ä ‚¾ú:èë­°{ÖÃÞÒë}ì€õ->¨ÚhüY¿>Y®&­Þ7,Ph$š‹æ¢9%uéééPkÁ Q»®=/8µ[VñïC¥ú*k·­[ÙÁ,jðÒ™g òZæÍš”=3{f6Ë0A =­õ´ÖÓZVqVqVqÿñÄJvÁÚ‰—Noû¹Iù‡ Qž*4׺P˳jÔÞõ)NÌMŒ®×ÜüË0íj³«Í®$›$›$j€ª!†j"F)Ë Ë Ë üÏý ýÃzRý”×¾ýâÜÚ¨Ú4“²6Ũ¿k ñýí¢Þçÿê†~xøá?üùãÏTÔÑïŽ|wä»ü+¿Ž¿É?5̇½;ü¾QU }•¶¿Å±oä]kÁO „ü_¡¾¡¾¡~bËÄ–‰-©¨‡Ûo¼ý± ¯‡Ö-nf{^ÕâÞüÛóm”7¶ÕªVK·ªVþ¯.üVø­ð[ÔÔCšWšWšW·¥Ý–v[úwÃ÷pÖ59Ÿ>ðo÷-ee4þ¤cï›Í'øÜ1]P÷?þj/¶Xl±ØB~X~X~˜ª@™—-Ï–g¯º²êʪ+ùW~íöoÜlg/^d‰ª…¾ÊÚ¦=ÖÇŸµiدljQIù¿ºv¾í|Ûù¾syçòŽõ¿¡&.Ô¼PóBÍ‚ŒÆ#¿Þä˜R¶FãÇ¿ýË;iA^]¼Q¼Q˜nŸ÷ù&Aù¿RÏ™ž3=g¾õþÕûWTÊ®ÕMV7YÝ$ÿjïb5GÖ@gú€¸­öfe&úUh'XYn£cÔf¹Žsþ¯÷ŸjÿTû§µ²+úzôõèëù×ù¯½ê¿µ<Ù¢oÙšlÊÝf>wÑãðï1¿™ÿ”ÿëݰ'`Oµ²ëõ†×^o0f2Ìd˜ÒEæjÆÔè•к»Ð4³¬ÆE·¯†þÇGN“†& MÊêšÕ5«+‚²(ûZöµìkãOŽ?9þ?h°l96xy…²ú*kµ¹ºZ3Ýð†Y}e¯Tg‹Î-Ï?oü¼1‚²+Ô-Ô-Ô-ÿëzöŒa³LΜxÖÍÃµìŽÆSÝ#,Ü«¹Ùë¥Ñÿ¹ÇGŽä™[T0T0JAÚÛ´·io]·¹nsUú0Õ^¡æ>õ®¿Ÿ6`Z‹§e}²)w›¾yàn÷u7¬¦Ô÷Qú \‡w»Þíz·‹jAÙ²Ðr¡åB¥«V9Tõ™ÆÚ‘­Ÿ±_vC_em×SóoðO2¸nyÝòº%u‚²%Ê!Ê!ê?ydÉ’H»&ewšIYÛ{Ûœ&ÿ±rù&£MF›¸ÿeÌËÁ/¿\ýtõÓÕO+«í)‰NÞÆ:YÃüÇxT§Ñøk«~gÝš·l^?¸öe¯½Gräɯ¼þñ:Õ‚²"{Döˆì.\PVÛšLªX­n\ñ¯'Ž—õè÷ÚC²ÏhàåãýÛ<Éàéè§£ŸŽ¦ZP¶ì¾±ûÆîÿˆBϳqqãêê7—Õ^±Ïþ?îõ„Ô €ÒE ÕDŒ•é“é“éÓÒª¥UK+eC·å‹]¿7’ hçi§N“MÿÓfø{z{»ïi¤ôAšŽ5k:ÖL?œ~8ÇС êÔ3¨§²z¶0v_«­9Ù!fµí(õ‹~s·ƒc÷ZtÈÿ ê­^·zÝêEÍ@õŘǘǘÿÇÝí÷-jz]ý&›r·¯n kÝÌm÷˜…jvQÖ»öîÚ»k/5Õ—¼1ycòFÍušë4×)«çý3ÛŽ´­¥¶ãpy@€§gÖeÿÕg§¬sjlü£²~ðÛà·ÁoCvBvBv••v\~\~|ÄÛoG¼Uº¾¯U»î=¯4¹¡ÛÙ›jý*´–½Æ>^Þ?ÿÑË+ÛW¶¯l)¨¾##ŽŒ82BY%…Õ‹®ÑèÙá>®Îê=¿WãЕfÿñPè(«(«(+j@i!†j"FIÙ+ß+ß;pþÀùç+}”bT›!6ãÕ{²I± ]Ó>Ôîwe}Ò­w·ÞÝzgoÉÞ’½…"‚jÚ7b߈}Jß”:[÷ÔÖ‹šfu}¾]”zG¿¹ÛÑ]«ù¿A}áòÂå«‘AEݾ}7ZéýCn5«<p"Ñu zO6ånÓ“£<Ý÷u\é®[GSYÏœpjÀ©ÔTSFHFHFHcÃÆ† •>J1ªS˜“^y¯ÞÔ¢m#¥}2íëi_Ocâ*má/ Yø‹²n¸¨§ÇèM.M7_ˆTïè7wk;zzøf¥¶6Ñ4Ñ4ÑL;–v,íõÕt.é\Ò9¥w¾ºG;uÒÉHý9âk÷ åg4þúœØÙͯÁ&ýi5ü”õÌMƒ›7 ¨%ª‰%$¨nPÝ ºÊ†hNµ}jÛ»¼M6ån?ñò²®¬æ¼™ófΪª&vBì„Ø J£ßW½úÔùfºY\s{­òýænÇn<ÕÃê…²þ±J·J·JÏ´È´È´ – :Þmy·åÝeu[«]ãU¿¾/tó/?“M¹ÛßÝïѧÓ÷ð:­”õÒÝÖw[ßmM-AÕüö×oýö—ÒGGNï2¥±ey¯;ëþ{£eý³{Îî9»çPEP5¡'CO†*]ë×X£×±‡ÊOè«ØÚõû3tûYeýÓgpŸÁ}Ë/É/É/QKPw>Þùx§²ºõhâ´³vµFp¿T>Gã)™§ÖµèÒÀT¿~ÖÊzé÷ï7ÞÔ€’D ÕDŒbwîɹ'çž(–mþÖó¼•{yžlÊÝîmÜf¥Íre}uòÈÉ#'PQPɯ’_%¿RV«ÖµÛNÑ ˜6áÆvwÊgô›»Õ.l¾å%e}Ø;°w`o* *áƒüƒüCÏðžá=ÕUì³Y'ì]­ËçdSîöÃð¨îçô-m´º)öRí~µûÕî÷aʇ)¦PVP{ ÷îQz‡«tû×Ùg‡ç´ æº 6³TúÐûzÿÔû§Upßø¾ñ}ceµj¸µ³Ö ‹å9úÍÝÚüùÇõ;e}r.ä\È9* ªà£õGëÖæáæáæyŒÆ+¬«šêáâ®Éhüuñ[·vÊ®ë_Æü2æ—1òòòÔ€’A ÕDŒbô6ãmÆÛ e²‰×­0ͤØÎ9èœiú«²~KòIòIò¡ºPºz/ì½°÷Â< «¡W¡jØ”?cØ> úÍݺ¼³™¹ÒµÃ£Â£Â£¨+”®ýÎû÷;+«Ò¸‡{šÚ3Ù”»M: }ï¶RYM®3¹Îä:ÔJ×Ãë¯?¼®4öáqÕr?cïÿiÃ:x:ô©g~_?¥tütütü222222¨.”–,Ÿ,Ÿ,óEæ‹Ìåñ!¤õ›[h7•‡$œ&úÍÝš§üÖb®Òå¨n¥ÜJ¹•Bu¡tÍ;3ï̼3ʪôù‰0#×ñŒÀs·w®ŒsQÚc›¯o¾¾ù:u d•£ûŽî;º/§g혵cÖŽ¤VI­’ZÑ3Ÿ‡Åh”ÿ(ÿQþŠ¿þl½tk6ÿØÁÿG‘L3)¶ÙNþ'=îzh\ª]Q±÷üôýôýô©.”!DB”½ÅÓG2µšJÜ«¬ýuÄt C¥—LÕMÕMÕ¥ÆPò^î¹ÿå~e•¹Ù‚;¶ÚL0)k¯YïüÓ¹²Þ‹;2v$5†R$’¹9»9»åñÁ¿×Ú|-ÿ0ÈÓƒ±·b›:lÀM÷ÚË5\5,{oѺEë­£ÄPZÖÎ];wí\ewšlZíÊŠ¸WY«ŸÚvKÇŠýfllœÝ?»vj %/~oüÞø½Ê®ëèj›MÏgÔ­¬=þWœ½¿²Þ{ý$úI45 ¸^VǬŽY•ý>' þ<À(W_\}qUéÊ—tz×ìSKù·Ïkõuuí¤¬/TºPéB%* %)½rzåôÊÊj²Ç¨ Ƴˆxóo§½»qϾB#ÇžµN+öá̸™q3ã¨4”¼)S¦ä±6Þ3¯Žú™T*H»êÌÄï-Þ)öa½!õ†Ô’œœL¥¡$}|ôñÑÇÊþj¿}Ôÿi‹yŒ·óo¯ð wVz_ÑCû‡öí©4”¤g[žmy¶EYMÚ.ž¡³eoþ­ó¶uk"½”®ö½z÷êÝ«©4”(3¹™ÜÌöÛol¿Q¬ÉùoFd™ýÌH» íˆ/»ë Š}Øõl׳]ÏRhŠp¼‡Íuïoþƒ ŽEm·|·|·ý)ûSö§/ÎÃ=­-™Nú„UíÚÙ,UìIƒwï ÞeOΞœ=™¢CÉJ J JR¬FÓ{Í×ku™>&N´·"â-H;æîÉ­v)Ä<¾úøêã«ÔJÆG7Ýx¤tÑ'q·Û$¦“ Òf9ãq¸–~ÍîŠ=¹/y_ò¾dê %ãCȇJŸÕqzPÇ ŽÝc¼=ßy‘i€ó‰ó‰óác[(Qƒë ®3¸Žb5Ö÷öúØo*ánÁ[[Ûi™›”.Võ>é}Òû$ê %ã„å Ëy¬=_½uµ^U¾É¬zæ‡1#í‚´oßîÝb¡²ë:Æ8Æ8ƘzP|€ /'ÐÍ w5 Œ08À(bQ£.F]T¼uª§Uû!ËØ¿»Ç&&’>áqÐO¾ô¬`ù…ÎûZ-{U Pu(n)oSÞ¦¼UúØçŸÅµVý‰u?µm—èY¿›b¹?äþûTJFí6Úm´ëpçW³Ã¬70‘ô©í•ŠÛo4Q¨gÄfÄfÄRu(n[¿ßúýÖï+°Sãê80ºþÔ6­ùÀîí”]×ñ™ñ™ñ™TŠÛ½È{‘÷"•>öùÔêó§öë~j[W×m篿*ö窊«*®ªHÕ¡¸eùgùgùk¼Ñx£ñF±Ï}ît“Ñõ§¶G&-9jg¯ØŸÏž;<—¿”¿”¿¤öà¢E\T€Q„£Wy–<Ë~ƒýû Š—_äÎNœ4™Bú¼ö’·C“<Öo3p0p0p‘‘¡Q|Vý²ê—U¿(V Û5ÿýu?å~^;ùÅ¥«¶Jl’(K”%ʨ=Ÿ›wnÞ¹yGY~ ;×Ôc.SHŸ×úvkcQ7^±W† ;Fí¡ødÎÊœ•9KÙu}wyÏ®.oW^{ÀªíA[Å^õ=å{Ê÷µ‡â6dâ‰C&*V Ùò€¤iD¹Ÿ×:y/³ø[éX(Ý6Ý6Ý–ÚCñ´m!b¶Js^Qû#êÏk³·Ÿ=Ò ‚ëô¨žÇïÌËf—Í.›Q{Špñ! . `ÝTò¼›ónÎS¼ØLvi¥×¬&_àáiÉäQaÚ¦aõªh÷UìáØ¥±Kc—R(–©ä-™[2•®46>0ª³õ¢Ü´&ü)ÍQìÛÙâlq¶H¢øøÛùÛùÛ)ÖÞQƒe_Ú­`ò¨0í­—|]|ûVO_O_O_>I>I>‰ Dq»v9ì²bíõµ´ðÔïÏXº0íGÿï<~Sú±­Ý‰»wS(¯¯¼¾òúвÚs~¼$jQnaZýëmzôPìÛ¦L˜R(>Ö¬+XWP¬½kKwÆ:cD]˜ö”͎ٚÕûÖ[Ã[Ã[ƒÚP€Kað§"F‘¥5Jk”V)–uèéPi£Â·gúuîì”Çgû¶éÛ¦o*Å!|}øúðõŠU×8Âw­^;âÛ·“.\¼mû‹²JfåÌÊ™•©C­”ô”ô”t¥U·èì¯L¾õœÛxíÞŠ=×<®y\sêÅÁù–ó-ç[ŠUwóUwç¦{K¾Ý²¿¥¿UŒ[òpÉÃ%©@‡õïÖ¿[ÿ.Y×ê§=á6ñmá[Çá‹;i¤ØÃÆÎÆÎÆÎò y†<ƒ:DѺ»áy<9Ïf“écMmyö…óŒ¥ ×f½=oå«ìýΫI¯&½â㘊pÉ# .`s?Ìý0WéTò7ƒy1aTø6k­ÿŸ2eýü~âû‰ï'R(Z]º$tIP¬·áíþÚèRY \G~y¼µeŸÜ¯EŽª™ä×¾Î{Å~>;ç윳s¨C­ƒ8x@±Þ–­gc¾¨´¦iÚï¯Ñ43÷ñ”õ‰§ˆÑÁ¶Žyܳ5Þq¼ãxGêEëù°çÞS¬7ÓõÚj¶‘§ ôtg,]øöí7ýÿjá­l4ž}(ûPö!ªE&F#Ñi¦ÓL§YÇ<²b‚0ˆø¶¨Z­:fl)öóÃa‡=F1¢hÍ©<§òœÊŠõv|à_‹ì;ªòø6³íY]û…¶#3̺ڞ6‹Òì^kewU ԕW§jG2aÚÏ–ûyË…-¶\ -àÒE¬ 0ŠÀù?ÏÿyþOÅKhêµÆ•Œç1UT´íâ¬f‡ÍÒ{[Ú#í‘öP(*©A©A©Ayüm¼Z¥¿Æ¯Ó ãlíkUûÛЩ¶+vvÀ²€e˨F-÷Ûî·Ýo+ÖÛ“­¿o¾@uà²g<ðøÀãT#ŠÊ¹çFœ¡Xiíµƒë”ÝG.«f<-ðÆvw”EæYæYæÔ$ /Õ7Õ7ÕW±ÆêOª[±úÞÒ}ÜœúÀ9íˆÎÝûæñº[oM¼Ås;Pd\»»vwížÇCÃú­s3dü\´møÔŽ×*ööJƒ•+ ¨F•­M·6ÝÚT±Ò,ýÇ}½|>‘mѶMέ~p*F±·Í Í Í ©F•GMx4A±ÒzÝm¼ÞÕÙ6X¡?¾Fßœcž0ªßÌwoÙ»®éâw¡§ß·8®š£wÇ·–•´Ú+öyr@r@r5  ¨«&Â``Ž$—ä’²K壓ÿ—C™$*Ú6{‚¼Çk¥ž›‘=#{…‰Â›*N§ŠŠ56Âôï«–ZÀÅѺÜéQg—bŸß¸pŸ·¦(—F^yid6{Ã|LéNͨk»ÞéžâëÚP{Cí µ©I^zJzJzŠbU×lQãFÎÅѾ;1À¡Å Å>wvv¦&QTÚŽj;ªí(ÅJk¢±r­x‡È¶8ZM7ãGV½ûüݺwëÞ­£&Qx{Ä=âž<ÞeŸÔÝ~‘êlssNô«úÇ4ÍÀòï<‚™ÄˆÄˆDj@Q!V}å3 &F¡¼¹ûæî›»ŠFç9Æ‹ëÌaz¨øÚ7,ûìVìùçÇŸÎ}À(FÇŒŽS¬±?Þ_õ³ëA\­ßCMï)öùþ¸ýqûã¨IÞò¸åqËãkìšÖÎQÎÝ €‹£M~}ò\ MÅ×åÕÒ«¥WKj…—Ð*¡UB+Å›ãëœ`꘹øZ³ËÚ‘5+ö|Æ÷ßg|Oe¢0²*fU̪¨X]U«ÿY#Ö¥éÆà Q„µÅÑšÔïçX]±ç/g_ξœMe¢ðúfõÍꛥXc/¿•™¸†—­8gô®úÇ|[çÀ—þŠ}>Óc¦ÇLj@Q!.[ÊOLŒB¹lxÙð²¡âŲÐãŽe¨ªMÓ$Nè³½ùûÙ‹—˜jx/39X×Ñúžn…Z¯k­¬z§J¸‰¿Ö½šß¸Ÿ2د“¾¸f³žfá¯õúrsVÍ)§}&mÞØœSìù¨Q;¢vP™(Œñâ?Ä+V—Á¨Øó#§œ>r:•‰Âk·£ÝŽvy mß÷ ŸÔâžjÀ±_mkÖä·-۪ת~x]·êB­•5ÞU ·¹lö£fýÉvÆ5<þZOˆqsVщ§Ûxº(}nGJvJv •‰ÂØ7}ßô}Óó6ë”èÔXÕF°Ç:uu¼ßï¶ÅcýÈœ±wÍmUgVYha¦ãYóN×M&Þu¿ú{Á/¿Ù=ÍÖõ?êqS•àé–—ßTìù)Rp]£Pž»=w{î¦X]ú1m z4WÍè´éýÉç;šíì6³ŸÎvÛÕÍ,ªMÓ~¦÷s•Õ7ÖxW3¨~°ÉRƒêí¾èÙÓaþ‚驿«°3œ™²íbóñ!ñ!ñT& %Qž(OT:&Œ=ÇóKÕ}ËÊ꿹ÛË¢"ܯ(­ãVÇ­Ž[)LE…¸ìRï0˜…²cÐŽA;)^—î{Oi2Hu&hN=îØÚÑEϼƯ՚k|¢‡‘½ž4{¬jSN7Gv¯Ôt‰âÑ®±ZcµÆŠÊDa±Šwþ׵ᑺòêï®ïصË9T5'žz¶lX/ˆî펷;Þò±-JàâÀÅy܇úl@ŸlWS•X¾D×ÿ¨Çͱûìž6ø®à¯»4ήsáýÖ‹Z$©f|ü//KûžŠG~*äTÈ©*…½)zSô¦<Æ„M‡[Ì S¹ÕsCWo>5Ig‚m—‘¿ÆÍÇíŸsQå^K•$Å£ ¨P? >•‰ÂHwKwKÏãƒm,›Î×µVå;h¶Ö «a’ÓþÏGRîë«Þ!÷ÿUåWQ÷†®eµò ­ ¸æ[€Ë"õ ƒ €Q(“ÇL3yL"¾Ô÷O×Iª05“3md<^kV?Ék´UsB “¥Ïš6¹³Ó'Íkû´uþãä»_“¿Ÿú¡qmãå9÷ÿï Pµ¦œ’¿ð»æöP±ç‡6ÚphC*…³=f{ÌvÅêêžñ×_ƽT".­WÉ^Ã|‹H­7¹°Ñ«–´÷w±˜s´ö z;~6¯Ù9lök£wæÎnµÎ)û#­j÷4kͯ»®šoMQ2oHÚ›4»«{G&e”À9&yô?ÑpF˜×ŠŸíO|²è€íÆáš¾C çVùR#ZãîKÈÖ=ßÑ㦪M9-‹×Ý|M+|×¾_û>+£P<;{vöìœÇƒˆ j枪 £Ö™²&3L†åUÎ{ê÷N§{„yy]·?S¯k\“¯¶îneuÛí®þGùyýTÅ8Á¡ûßMÓvÝÕuW×]¥2Q»ïz¼ë±buÙuÿ3xûNU Mu¯6Õêëñ\UŸj_ï4t`’U¿ Z+gÙ¼˜Vkã5cçÞãTÛ¯3QïÆä=æ¿ÙY…îc>¼áŹŠ=ouÑê¢ÕE*…‘x<ñxâñ<ÞʲL¾/+‹›”ÅG@ç´}Ì‘ôMx—  $ç[€Ë:õƒ €Q(]²»dwÉV,ôô¶绫ÄÀ9±î¿k&¥h„kLŽô=Ô´›²I¥<{{¥ÖÐê³UmÊ)óê .ŠGëæéæéæIe¢0BW‡®]Ç'ß“÷¼·øN"ÒîÏþúÝø®â¶¿ühp)çÿ*ûìvÆeÝtÕ€­ºµ1ÖiÈ[S”Ì’ ïû½h¥špÕ‡U=4 V+g9XäžrÊýß{\çyØøªþèB[/íj7@ñ8£/E_оDe¢0j­¨µ¢Vq…|W@kO›Ò¯Þû²çÍ~ªú°Š®ÆaíÁÕ^T7×·[S}e_Ÿsäã6Ø»6pVýø•¼_¨›âqZZZR™(Œy»æíš·K±ºœ—­=6DuâR˸ßý‚:ü{pk«DUõ°’]VÉsþoÎ?çþúߕϨ¾±Æ»Ü¯KÕ"í*3ªo¬ñ–Ñ8ŠÖ 7.ܸ XW;ªÌ’[ûw;oÐðs¦G¸®”ä| °:)»a00 ÅþOû?íÿT,î¬;þë=.¨ÂÔÌÙ‰§°‘/l§™Í™êüÌÔ³ SHŠ!±ÊM+Ȉ:³í ö9«ÿû„OëõŸ¨Zœ0ÐÞ=cö²ìeÙ‹…2¢ÿˆþ#ú+VW“«OµT Tï¹ËÝv¿å[Ë®':è$ÐÍýŠ´—Z™5WµXó˜©MsFã(ZQ1Q1Q1Šu%†­:á0›¸¸Û-Ñ3GXíæºP’ïË€ÕUÙ ƒ¿PKêD¾$ ¹§¹j>®-ÿ‰§,3ÿ›—ýÓ<Â`”yò„€ž.ª¿ùÂoŒÛN©Ú¯ÎkC¾óØc¹òZNþÆFÝf˜V¬;¼Ž^ÝÕ~WúºTìµèxTw®ºŠzCÉø}vÄnë…¥ŽN{Þövî£ùôÄ?–{ ¾‡Þo×Î49˜{ª·}>~^ý¯©7”Œ]/ç6±ùY5à‡‘¡¡Íä{ïÔ=ØÆeC^µUeÊ)~ËÞ/šö£ÞP2<ŽÖÿ±v#U©ÚÖ«®¹´ð¯¨~x­ÈꂪÆ?ùxL¥ÞP’œß/Z¢škå:º/:xªªE¹Ÿyg³±ó­{Ro(1ñ[»61%.îöïËGÛI½JWÆÞŒ½{ €Qæ©ÚÀ1õºÆ5ùªCÅõþÌY‡LÙ‘Û\Öí«Y¿ïK‹ú‹óx]ÜŒrLî[ñdW«ã¹*'.ø†Î<8Æâ~î=p0Ê3U¾øC@Ô÷sùÞ´Ù‘¦î=òú«ÍÀ(Tç`Í9ÕªdþåÞw£à}¹É#ë]ªóŠ×6ÎauÑê¢ÕE*…‘x<ñxâqÅêš.È2ùž¸¸Û>æ¿Hú&¼ËP’ó-Àe]Ù }s#F¡ì´cÐŽAŠ…~é¾÷”&ƒTajƬöòš#sŽjk›Æ6¾ùý££½›7¯³°*À7Gv¯Ôt‰â®±ZcµÆŠÊDaÙ®¦¥;^}ëý¨ÉÖÿ»¢«èjþ{Á/¿Ù=Íÿ»&vvüªáÿ|T+g?ªÿËËÒ¾§bÏŸ 9r*„ÊDaDoŠÞ½)1aÓáóÂT'.5w’>kå¿w®ªOµ¯¬¯OÞ+´Ñ«–´÷wÙ8÷ÍÕÛñ³yÍ®Õæµl0ÐBß}‘vÍœ¯Ñf¬_ýÕ €O‰d}Pñuœ>rúÈéT& ¯ÝŽv;Úå1„}ß7|R‹{ªm­VãßÏéO¶0®áqYóçìÓŸ]blWi¸¦ïùÿ3}6°i¨®‹ªÝû+¿}ဧ‹²qEvJvJv •‰ÂØ7}ßô}y|¼ ªY§D§Æª0jÍ#JmåSßmÇ”VW­§å„»¡»Ú‡ÙMô^frðÿîæÏÑçGóx}}U‡ç´Ó-/1¾©øê¤wÜê¸Õq+…  ¨—]êúæFŒBys÷ÍÝ7w/€ÎsŒ×Q‰5€_6í÷³ë¥œÇÇü¾9¤{Ŧ‹ ®ÔZ}vîoëmd ;V^×À–} vçñðíãÏ??Ne¢ðŒŽ3:¦Xc¼¿êg×CâÒ 5ÎøÙT5šæà\k~A®kƒKÖsknÍ †U3öûcc¨é=Å#ß·?n5‰Â[·úÝê‡×u«.ÔÜVáÊBÛÓfQšÝgD6±qÚ©Åt•»÷W~á‚§gdìz§zŠ}¾¡ö†ÚXýE =%=%=E±ÆŒªk¶¨ñƒª…¦9wúúŒ1í_w«áÍ:ÕßÕ­jRÅÛR^»S­i]g×¹ó5¹Çðªö*ÞàÐâ„bŸ;;;S“(*mGµÕv”b¥5ÑX¹V¼£:¡iîØdšŸÿÄÚ~–kW¨šªe­WuH­IZ›´&šKöÝ F¶7ìuÃéñò×'êªÚñç´šnƬz+öù»uïÖ½[GM¢ðöˆ{Ä=y¼Ë>14¨»ý"àâhC‚¦XþG0“‘‘HM(*Àª¯ü„¾¹£ü~ÿ÷û¿ßW¼<âºúz4­©:“5ùO!)û¿ª6ñt÷\ÏÁ.yüQx|àñÜû‹"snĹçF(VZ{íÀàúªš*†ÁÊþ=÷ÿUµèwZàíî(jd™g™g™S“(¼TßTßT_Å«?©nÅê{åÙΫƤRáÿ]uÚ»÷3ŒUìó[oM¼5‘šDQqíîÚݵ»b¥½ ë·ÎÍPÕÔüXQÍÐ7w>µãÇµŠ½½Ò`¥ÁJªEekÓ­M·6U¬4Kÿq_/Ÿ¯šjî0øóþo©­þ{nõƒS1нmnhnhnH5¢¨<šðh£ Š•Öënûãõ¸¬¬û›Ó:¾µ¬¤Õ^±Ï“’’ù˜5€"C¬šÊgè›0ŠÀù?ÏÿyþOÅKeêµÆ•Œç©òôMYlg5;l–¦ØÛÒi´‡jDQI J J ÊãoàÕ*ý5~ngk_K5cà²Øþv#tj£íy¬’¸,`YÀ2ªEËý¶ûm÷<õï÷Í”­ Un3ž¹à¡§ôƒ-²Zdµ QT¶elËØ–¡Xi»‡µ~acÂø¹hÛÞëÍèÿ¨ØÛ·íoÛß¶§QTWz\éq%ÅJÓyj×·¹¥*Àe±µì<6bycÅÞ^]wuÝÕu©Fm¹¶\[Ùø0Í#"ͽ=£è¢j_ ?¹å±œ•…•…•Å h«BßÜ€Q>Ìý0÷Ã\eOæ7ƒy1UTø6k­ÿŸ2eýü~âû‰ï¹—E¬KB—„. Šõ6¼ýÑ_]"¸-ª¶™ä×¾Î{Å~>;ç윳s¨C­ƒ8x A¯gc¾ˆ©¢¢j#FÛ:^QìçñŽãÇ;R‡(Zχ=ö|˜b½™®×îT³<-` §;cé·o¿éÿW o¥K±Ê>”}ˆjD‘‰‘ÇÈctšé4Ói¦Xo¬˜ "¸-ªV«ŽÙÛGŠýüpØÃa‡QŒ(Zs*Ï©<§²b½ø×"ûŽŒ¢‹ìáϦýlyP±Ÿ·\ØraËê@Ñ".]„¾Ê£ÈŒÒ¥5JKñB’É:ôt¨Æ„QáÛ3ý:wvš¨ØÃ}ÛômÓ· ˆâ¾>|}øú<¦œ"|×êµ#¸-|;éÂÅÛ¶¿(ýMåÌÊ™•©C­”ô”ô”t¥U·èì¯L¾õœÛxí<ÖŒk×<®9uˆâà|Ëù–ó-Ū»ùª»sÓ=Œ¥ ßnÙßÒßj‹b/y¸äá’‡T ŠÃúwëß­§Xu&µúiO¸Mp[øÖqøâNG)ö°±³±³±³þvþvþvеwÔ`Ù—v+˜6*L{ëå_žÕÓ×Ó×Ó—O’O’3å„bv9ìrØå<>,hiá©ßŸ±taÚþßyü¦lD”¸;qwân*Åáõ•×W^_QV{Îï‚—D- Ä-L«½­SŠ}{Àô€éS*ÅǺ‚uë ŠµwméÎXçqŒ¨ Óž2[³Ù±ºbßzkxkxkP{ŠpÉ ôýTÀ(:Yò,y–ýû öy|’1rg§NšL}^{ÉÀÛ¡‰³b¯888ȇȇȇP€(>«~Yõ˪<îRu»æ¿¿îGBÜÏk'¿¸tÕvŸÒ©dY¢,QFí¡øÜ¼sóÎÍ;Ê*ðcع¦s™<ú¼Ö·[‹ºñнz0ì`ØÁ0jÅ'sVæ¬ÌYÊ®ë»Ë{vuy˸úóÚVmÚº(öªï)ßS¾§¨=·!‡L’dz Ì–$ÍH#Äý¼ÖÉ{™ÅßJÇBé¶é¶é¶ÔŠ -h y¬Ü*ÍyE패?¯ÍÞ~^ôH7®Ó£z¿3/›]6»lFí(ÀŇз0€QÄ¢.F]Œº¨xÉé:UO«öC–±wML!¼Í~ð¥gË/tÞ×j™Çãµd²ªÅ-åmÊÛ”·Êþ ŽùY\kÕŸ@÷SÛv‰žõ»)öçûCî¹OÕ¡d´Ñn£Ý&‰§_ͳÞÀÒ§¶W*n¿Ñ䑲ߖ±±±TŠÛÖï·~¿õ{Å ìTÇø‡:Œ®?µMk>°{;e×u|f|f|&U‡âv/ò^ä½HeuØäÔêó§öè~j[W×m篿*ö窊«*®ªHÕ¡¸eùgùgùk¼Ñx£ñF±Ï}ît“Ñõ§¶G&-9jg¯ØŸÏž;<—¿”¿”¿¤öà¢Eè[T€QÔvËwËwÛŸ²?eJñ"Ü8ÜÓÚ2‘‰¤‚·{íÚÙ,ÍãÞßwï ÞeOΞœ=™¢CÉJ J JR¬FÓ{Í×ku™>&N´·"Ö-H;æîÉ­v)¬<¾úøêã«ÔJÆG7ÝPX&9‰»Ý&1‘T •ÆÆœ‹ñ8Ü@K¿f wŞܗ¼/y_2õ†’ñ!äCȇe×õéA'8vgŒ]ðvö|çE¦•{Ò'Î'Î'ŽzCI\gpÁu«±¾·×Ç~S t ÞÚÚNËÜ”¡ì÷äû¤÷I7”Œ–',OX*ÖaõÖÕzUù&³ê™7ÆŒ´ Ò¾}wºw‹…Ê®ëããcê @ñ!.Õ…Ò"„!‚ÒûŠÆô‘L­¦ô*k1ÝÂ0AYï¥ê¦ê¦êRc(y/÷¿Üÿr¿²ÊÜ¿lÁ[m&•”µ×¬wþéÜGYïÅŽŒ;’C)’ɃܜݜݜóO¾nÔÖàkù‡€AžŒ½ÛÔanº×ÖX®áªa¡Ø{‹Ö-Z·h%†Ò²vîÚ¹kç*}ô¦Õþ§¬z•µú©m·ôÈãÃ1–Á–Á–ÁÙý³ûg÷§ÆPòâ÷Æï߫캎®¶Ù´ñ|FÝÊÚãáÅÙû+ë½'ÑO¢ŸDScŠpáeuÌê˜Õ‘зh£½Íx›ñV郕&^s´jÀ“b;ç s¦é¯JÈé“ä“äCu¡tõ^Ø{aï<¯¤©¡W¡jØ”?cØ> îÍݺ¼³™ye×uxTxTxu…Òµßy¿ó~geU÷pO@S{&˜r·I¤ïÝV*ë±Éu&×™\‡ºBézxýáõ‡×•UiÈ«–û{ÿOÐÁÓ¡O=óûú {LÇOÇOÇ/#####ƒêB©Mùdùdù˜/2_d¾H±Jk¯wØÜB»©<$á|4qoîÖ<å·sç+û}x+åVÊ­ª ¥kÞ™ygæ)}òÄóaF®ãçnï\=碴Ç6_ß|}óuê @É .*¹ï&ô-<`»sOÎ=9÷Dé€ì[ÏóVîL6ý»âoã6+m–+ë«“GN9y„Š‚*H~•ü*ù•²Zµ®ÝvŠNÀ´ 7~°»Cô;ª]Ø|ËKÊú*°w`ïÀÞTTÂùù‡žá=Ã{†+«Øg³NØ»Z3ÙôaxÔ÷óNú–6ZÝò˜|ïW»_í~¦|˜òa eU°ÇpáCe×µtû×Ùg‡ç´ æº 6³TÖWÿÔû§Þ?õ¨(¨‚ûÆ÷ï+«Uíµ]$ôÍimþüãzˆÒœ 9rŽŠ‚*øhýÑú£µy¸y¸y£qãŠëj„¦úD¸¸k2Ý_üÖ­²ëú—1¿ŒùeŒ|„|„|u dC5£„Õ ªTWÙàìÀ©¶Om{—çɦãO¼¼ì‡+ëŸ9oæ¼™ó†*‚ª‰;!v‚²ºu~Õ«Oo¦›Å5·×*ŸÑïØ§zX)] Ý*Ý*Ý*=Ó"Ó"Ó‚Z‚êx·åÝ–wJ׬ծÆñ*‡_ߺù—ÏɦßÝïѧÓ÷ð:­”õÒÝÖw[ßmM-AÕüö×oýö—²º=?½Ë”Æ–åy4¾î¬ûï”.Ó°{Îî9»çPEP5¡'CO†žTV·Æ½îŒ=Tž£_»~†n?«¬ú î3¸Ï`ù%ù%ù%j ªãñÎÇ;ïTV·MœvÖ®öáϨî—Êçh<%óÔº]˜êׯÑZY/½ñ~ãýÆ›ZP’€¡š€QRöÊ÷Ê÷œ?pþ@¥]ÚÕfˆÍøò6Ùº¦}¨ÝïÊú¤[ïn½»õÎÞ’½%{ EÕ´oľûF(­{jëEM³º>ß.ªüD¿£»>V 4òõÂå…Ë êªénôÝè»ÑʪWÓ­f`•çÏN$º,?“MéÉQžîû:®t×­£©¬gN 85àÔêª)#$#$#¤±acÃÆJïŽŒêæ¤WÞFã«7µhÛHiŸLûzÚ×Ó˜¸J[øËÂ_þ¢¬†.êé1z“KÓÁ"ËOôk;zzøæÊúÄDÓDÓD3íXÚ±´cÔTÓ¹¤sIç’”Õ°{´S'ŒÔŸ#¾v¯PŽîú='vvók°IZ ?e=sÓà¦ÁMê@É#†j"F‰ÊôÉôÉôiiÕÒª¥•²áÚòŮߛGÉ´ó´SÛɦ¬OÏ`o÷=”¾)u¬éXÓ±fúáôÃ釩¨¾ žA=ƒz*«g c÷µÚš“bVÛŽRïèwpì¾@‹ùG¿·zÝêu«5Õcccž=ÿ³qߢ¦×Õ{²éÕ-a­›¹í³PÍ.Êúa×Þ]{wí¥f ú’7&oLÞ¨¹Nsæ:eõ¼fÛ‘¶µÔ;ôͺì¿Úãì”uNTÖ~ü6ømÈNÈNÈN r ÒŽËËx;â툷ÊêÙÀª]÷žWšÎÜÐíìMõŽ~-{}¼¼þ£—W¶¯l_ÙR8P}GFqD釭ÂêE×hôìð Wgõß«qèJ³ü/k(«(«(+j@i!†j"F)H{›ö6í­ë6×m®Û” Ýz…šûÔ»þ~Ú€i-žªÓdSúæ»Ý×ܰšRßGÙk·q°q°qx·ëÝ®w»¨”- -Z.Tºr^•CUŸi¬ÙúøËñêýv=5ÿ÷!ù¿)½nyÝòº%u‚²%Ê!Ê!Ê!ÿÚ>²dI¤]õ›lŠí½mN“ù¿öMF›Œ6Q'([^~9øåàê§«Ÿ®~ZYmOItò6ÖÉæ?Æã :Æ_[õ;ëÖ¼eóúÁµç({í=’{$÷Hþxýãõש”Ù#²Gd¸p!à‚Ògxt0©bµºqÅ¿œ8®VÑï!Ùç?4ðòñþmiþµŸŽ~:úéhªeËî»o쾑mŸÿfãâÆÕÕo4.«½bŸ}Rþ¯]x <P'J0T0JMúôé7:]ît¹ÓåÿÈÞë²±±GYŸlŠÝç}¾IPþ¯Ôs¦çLÏ™ï_½õþ‚²ku“ÕMV7ɿڻXÍ‘5Й> n«½YÙ }'XYn£cÔf¹ŽóÜ%YíŸjÿT£6PvE_¾}=ÿ:òµ·Sýà·–§"[ô-»ÓLY£Ï]ô8¼Ä{Ìoæ?åÿz÷ì Ø@m ìz½áõ†×L†™ 3¦¬ÎÌÕŒ©Ñ+¡uw¡ifY‹n^; Íÿºš44ihRV׬®Y]©”EÙײ¯e_rüÉñ'ó¯vË–cƒ—W(ëѯ£ö"÷CWk¦Þ0«¯ì•êlÑÙ¢³åyãçŸ7¦BPv…º…º…ºå]Ïž1l–éÏ™Ϻy¸–ÝÑxª{„…{µ17{½4úØ;r|äøÈñÔU@ ÕDŒR–––øwÎ ýÃzRý”×¾ýâÜÚ”•i¦£þ®- Çö·‹6zŸÿ«~xøáá‡?þüñç?SPG¾;òÝ‘ïò¯ü:þ&ÿÔ0öîðûF=ÊLôû[ÜûFÞµüÔ@ÈÿÕêêê'¶Ll™Ø’z€z¸ýñöÇÛ5 àкÅÍlÏ—­É¦óm”7¶ÕªVK·ªVþ¯.üVø­ð[ÔÔCšWšWšW·¥Ý–vû;çfõpÖ59Ÿ>ðo÷-ee4þ¤cï›Í'øÜ1]P÷?þj/¶Xl±ØB~X~XÎò+(û²åÙòìUWV]Yu%ÿʯ=Àþ›ãìÅë,)+¡oÓëãÏÚ4ì×ãĨÿ¸/°o;ßv¾ï\Þ¹¼s¡( .Ô¼PóBÍ‚ŒÆ#¿Þä˜R¶FãÇ¿ýË;iA^]¼Q¼Q<Ïà B€¡š€¡Bö=Ý÷tßÓ‚ õæi6fºéu²_e·¡ª6Í”ü›ßG·Ì¥öÍš»äµlÛ³m϶=œ}¨«¸”¸”¸”‚\ 6û~qÖIÙîx´åU }§þ}-Ô.¸÷åµ­L¶äµ }>ôùÐçéãÓǧóyd¨¡”);RvtØub׉ù_ ~uUÿíTÜZcÇ&ÙíÏÿîñHÕ¦™®}µ³s×Ö¦ÎRí´ü_Kýëõ¯×¿þ`䃑FRPC ä ä ‚¾ú:èë‚ü¥[ÖÃÞÒë}ì€õ->¨ÚhüY¿>Y®&­Þ7t/ÈkÍEsÑœ€ºŠtˆtˆt(ȵ`Ш]מœÚ-«ø÷!U }·­[ÙÁ,jðÒ™g òZæÍš”=3{föLjêçi­§µžÖ²Š³Š³ŠËÿZh^É.X;ñÒém?7é#ÿp!ÊÓC…FãZjyVÚ»>Å©“¹‰Ñõš›ó-mvµÙÕfW’M’M’ 5@ÕC5CåÜk¯ý½ö666yk÷[M›j†¿ÄOõ=ÒÔ·´¦™n›÷éâ?&ÈnŠQTA޹A«­´Jh—Ð.¡gåAjHjHjÈè£gŒžQ kd³“C­—~™›˜ýPZ¡ï”Q±’m¯zÓB %;x4ðh gåÂ)ù)ù©í'·ŸÜ~²à×Èf§¶V>&àTZ“MGåËöÚµÌ6¾VkZAŽy–Ç,Y™ú™ú™úœv”±–±–±–¿®§Õklj¼îItŸ ̓Jm±ïõMû 1ÿ¨ïXcnÞ:½uú3»gvÏì8ã(^é¾Ò}¥Û9¡sBç„‚\#zµœ[¶®ië5½ÃfÿÒ }· 2 3ÊêÖe˜{Á#¯y¾æùšœq”ã>Æ}Œ[l¸Øp±aA®Ž†S Ìkò\”i{´´ÆáÙûÏGxdìð›ÝÌzbÍ5ÆW )È‘ox°áÁ†r#¹‘œ»~¨(`¨&`¨¨l«l«l«-²-²-2O4õ+§“ÆÝ£‡vµk¼Až0ÐÓ½h'˜.U÷¶nâ4ó@“)&ƒ?õØ‚'Ožü1ëcÖÇ,Î2ʧèo£¿þV;S;S;³à׎ƒUç^º:}×®÷7u™ì³ÆvTÑÆ½£ª†Y†uv˜]Áèlݧæãjì-ø± µj3Ô&©[R·¤nœ_”O‰>‰>‰>>‹|ù,*øµÓ¼£Ýí´mÙ³Z›<øöˆw³©E;Áôz¨XÑ­ý‘íKâíš{kù¤î'Z–)–)–)7öߨc?çåÓ‡]v}صÈd‘É"“‚_;šÖÕjUy²ð¼Ë}³ñ×,|4ûí8<»½ÿGQO;9õçgoÚÀâSGㇿ9üÍáoäûäûäû8Ë(wÒåéòôã'ŽŸ8~âS¯ý˜¶†=ܬLn¾î~Ó•–Ÿ«_´q¯}Ë9³w5®ÝûÛ±ª¦i9èÜ)ø±Íª5«Ö¬ZióÓæ§Íç$£|JXœ°8aq“Mf4™Qðkç×Ô!zïöZäi;ýEõ°a® Šv4þ(üè¤æuvÍI³ÎðÜÜ8¢ö€‚›×e¯Ë^—õÔÿQÎ/ÕG ÕDŒ2 Ù;Ù;Ù{Æ­·fÜÒ(„®ÇLúÔ­0û„sˆ©ÖvƒV­­Ï÷2·ï~ºbGoÇ–§;ú;þzBÛ«ŸýÄZµ>wXS7ÓI>^¦Þuƒ«<Ð5&|ÞÏÔeR—I]^Ï|=ó5Ÿþ•¥‘¥‘¥±çöžÛ{næºn¸¯Éš-ÚL¯W¿sèì‡F)½[®éf2¾ÿ˜Í}̬ÌÛêi¶¨ßÉA¦!Ý-7nüËáɃê'7vðÙª§«3Ú ¹ÚgþVi3½Íô6Óã}â}â}8›@n1é1é1éŽuë:Öý¼ë«ÑO ©¥1ìWŸ †ú+ÖLèl1î@ç…ãl=Å©«8†¯[à¸ñä¦5ï¸.™cg¼îÉ×FÆÅ÷™Ø µó ›†ÚÖŸù åˆÆ#Ço|¼qvfvfv&gÈ‘X'±Nb¡ë†®ºîó./-ßj³ª÷úͼY½È\f˜5ÛåÖz’õÓ0¯h{Ùéeç:8u°£½£õ±!¿œ²×ÞZ¡å\«c3[7éfÒ©ÃÕ†z‡ 3ZXæºÌu™kªKªK*ë€ÿJï˜Þ1½ãj½Õz«õ s}é<µóknmôs—Þ£Ìf\˜qβûØ[Ë»Y;N<¾&Ñz̤ñkïXÕï¼"ÀüÍoÎsg4ìßCõ¾Î&WC¯U—Ôz£íøy?·ÿþCúy´ðÑÂG 9›À¿VÈWÈWH?H?H?h?Ò~¤ýèó®/§)–µ†Ž™Òk‹Ñ©µÞ“l4çp«Å‘¶É'uW_rˆ ?·n¿ãnéÇUé«v\älûÇ*«ÀåW†‡ù>7Ük½Ø´R­„Ïû¹k,ÖX¬9—x.ñ\"'@ÙB ÕDŒ2&ixÒð¤á˶/Û¾l»† [0zÁè£_žyþåyοLËLËLË#­Ž´:Òªþ÷õ¿¯ÿ½j^×~›ý6ûmŽ¿9þ2g øOäOäObWÆ®Œ]Ùygçwªæum»Óv§íN±ŽXG¬“5?k~wÿuq?òüÉó?æü1ç9ª<_¿`ý‚õ Þ¼3xgÀYò—j•j•jµ¥é–¦[šªòu=>v|ìøØ‡û³ä/{höÐì¡§£OGŸŽv~áüÂù…j^×í^´{ÑîEt£èFÑäkäkäk8wÊ"`¨&`”åálzvzvú™Íg6ŸÙÜo\¿qýƕրµÇ¦›zl ¿~1übÖѬ£YG9;@a$d%d%dͰa;ö´®k‡‘#Fîj°«Á®oú½é÷¦ç(Œ_\|q1dUȪU&6&6&6¥uu/ô\è¹Ðó~øýðûᜠ02~Ìø1ãǰÓa§ÃNwØÙag‡Rû¨Ç°èaÑâc^żŠyÅy ïJß+}¯ôí5Úk´Wi]×mf¶™Ùfæß þ^ð÷‚´³igÓÎr^€Âx4îѸGã–-3ZfT#¦FL˜’¿® † 1²6dmÈÚgŸM|6‘ó@=C5C­dmËÚ–µíFêÔ©kÄ5âÑk²×d¯ÉE5Tm»µíÖ¶[Wö]Ùweßk³¯Í¾6û£ÕG«Vôç¢ÏEŸ‹ž×`^ƒy Ô¯¨_Q¿R²­¡FC†óýçûÏ÷?[ýlõ³Õo%ÜJ¸•@…ÖçðÑÃGm6»Ùìf³‹?Žæ¦ –©þyà¢íFƒÑ†-±ˆ„ñã;v”½Ÿ=²c»k—/÷tnýe´Hÿ‹æƒïc+¬8°âÀ-µ[j·Ô_>|øð)úãjîjîjÞ¹Iç&›Èr1=X, ömß·}ßv¿P¿P¿Pjˇ>|øð‘ŸÞC½‡z%¯a¨ >|øðáÇü./¸¼àò‚ñÕÆW_­ø«U…__‰Þ üBPŸŸŸ¨Ù¡f‡šé/Ó_¦¿¬dKÆõ|êùÔóÙ1}ÇôÓc‡Ä‰"L¦ S)séÉ{œ÷8ﱋ¥‹¥‹eqÆH³WíÊ-N>êú¯a»Ô¨1·Û?ÿQqoqZñ5§T[ÑݼþŸÚ>ä¢s¢QqúÜF·nÝØ_b‰ý…€âÈÞ˜½1{ãí'·ŸÜ~2Öf¬ÍXY"a§®N]ºÞéz§ë®9óræåÌ£Âàg1c<ÆxŒä •O…Áíªc«Ž­:Vüõ¨Â¯/ûÐ÷kÀ¨€’'-NZ|¼íñ¶ÇÛ¶Õl«ÙV³„kÆ( ØxpãÁ_Õ}U÷U]ñ ñ ñ *,»—Ó_N9½î̺3ëÎ,zÚ/ÒŒª7ëaâ M³e÷§Mx02Øú÷ÅÆ&>Í|‹3¡NÏ:=ëô,F¾W®k®k®ë=Ç{Ž÷';Mvšì$K$l/²Ù‹6l ؘÕ5«kVW* Ê0€ü+¿¡ï×€Q)|¾òùÊç+…zâ‹dY8^¹våÚ•kŸmy¶åÙÑmÑmÑm*\|—_\~qùÅÿãnl_e'Åó÷z ˜hª%o¡¯Ô0xÌÈýíRÇx´h¡™VôÖÍi5§ÕœV7 nð  „òûæ÷ÍïûÈç‘Ï#Ÿ9çtœÓQ–3û€ & ˜pmíµµ×Ö¦G¦G¦GRaP€äSÅ}¿FŒJêË©/§¾œº´êÒªK«zl걩Ç&YŽë,ÖY¬P°²`eÁJ*,ioÕ½U÷V-º’;r­?ë÷)èéô‡í´òýJ¶wÃú¿jû°è-í×9®s\Öü¬ùYó™ »‚{÷ îE܈¸qcÉ«%¯–¼’åÌÞmK·-ݶøXùXùX}Qý¢úE• ÙÈŠú~øŸŒ!C2†\¿uýÖõ[ƒ†:h¨, dzVÎZ9kåÓO><™'Îç‰+sm7*oTÞ¨\tŞƭo.*¿¡¯d›1ØA±Ã‘‘7ôëiv•¶Õ†µ kÖJ§‹ÓÅìƒðc‰ D¢‚çKž/y¾duóÕÍW7—åÌn=Ízšõ4ïÓÞ§½O®û¹îçºT|/`€Ÿ«b‡¾_#¤ÊòËòËò ¼x%ðÊȘ‘1#cdY8ž¸g➉{Bz…ô é•Û2·enËÊPí£·ŽÞ:ZZMºö׺¥fš^uì¶+RôûÚ×ã‡w´Ú}¥C¿:Òê`ôÑè£ÑÇìCÙ‡²±ß@éljãÄq¯r^å¼ÊÙl¼Ùx³±¢‡¢‡¢GÉÎìm~oó{›ßF<™ø(ñQâ#* ŠF Pö*Oèû5`à;äÄäÄäÄÜu¼ëx×q‚Úµ j²D£G;Žv¼uòÖÉ['³Õ²Õ²Õ*R­Ž›7;n&5ïÜê÷Ƨ RlmwTØèW¢½¨Ò£qk i5éý¥÷—Þ_D÷E÷E÷Ù× Œ¬Ö ëÞê¾Õ}«»3ggÎεtµtµô’Ùõ†ê ÕzðÒÁK/Å[Å[Å[ YB–E™@!`€²Q9C߯2É»’w%ïʃG=x4Se¦ÊLY"áÁŸüùFÀ€å±&¡ê¡ê¡êÒ¶qÚÃl­çâÌñ¿v¬Yy¢ß¯Ûkkz%K}C°ËN—.;ٳ৉â…ø¸:quâê쟵ÖþYÍÄÍÄÍÄ%;³7thèÐÐawïݽw÷~7þÝøwã…3Âá e r"(=„¾_#~°‚®] º>ùòäË“/ ƒ- ’%î¥ßK¿—þå-—·\Þ’Ö0­aZCyÞöäñÉã“ÇKÛ{“æ: }ÅÜîÛÆWÎè÷ëöìÉn1FRß3}Ùó²çeOö&o|¼ññ†çqÏãžÇ   Kvf¯­][»¶öÖÃ[o=Ó-¦[L7¡¡ÐPhH…¨ €~,B_i€R'Ú!Ú!Úº¢ÅŠ+ZÈ Û6µmjÛôÜçþ;÷_ŠIŠIЉ\läCá¡ð°×?½þéõdŸuST§×¶Ëm3îÍM¢ß¯Û-·­DÍKëîÝ?º³€|J®Ÿ\?¹þ)·Sn§Ü,ÛY¶³l'Ëù}íÙµg×žŽŽŽwww§ÂT<À²#ô-`à'ïïï~9â列#6ôÝÐwC_Y–ŒMŸ›>7}~b艡'†~úãÓŸþ(û-:+>+>+õñ˜ñV#[¶ó&îýFÛn¼fÇz}î4[£þño®Ú»jïªBž'ä±×€üK5J5J5º`yÁò‚eç9çtž#Ëù}霥s–ÎyjþÔü©¹È@d 2 Â”wÀ%Cèû½€ù0H$ zsêÍ©7§¶ëo×ß®ÿßëÿ^ÿ÷ºdKÆ666‡px@‚k‚k‚« Ä‚¸4:žæææ-­'WÏöÚc¼ ·è6¥Æ˜Úí§I«áÍ7;ÜìÀ.åQú/鿤ÿâ{À÷€ï¾ãúŽë;N–Hx^æ¼Ìy™aݺ…u˘ÿ0ÿ! |!(>B_Yòê¡ðPxøþüûóïÏï½½÷öÞÛZÕ´ªiU+Ù’±Öx­ñZãÝÿpÿÃý÷Oß?}ÿT„0Ù»¹Lc™Æ2 Éß8<¬y†„»Åo¯6íåh¼DÚæÌ™?’ÝÊ»ÌÍ™›37ûùúùúùÚýk÷¯Ý¿²DÂÓšOk>­ù}ÅûŠ÷ó´ò´ò´¨0òŒ h„¾? 0P~ˆ± N˜ž0=aúaÅʇ[¼iñ¦Å›’-«vRí¤Úiûœís¶Ïyþ&üM¸0\. /~w===¤ýüĦ£:Y"ÖýŽ6}¼CǺ5ö¨¿^²ž'œxpâ;T<ÙáÙáÙáA‚6mp˜î0Ýaº,‘°£†£†£F°k°k°kNëœÖ9­©0òƒ@¡oi ʽ¤Ä¤Ä¤Äª'TO¨šÎ5k:W–…ã îÜ7¸¿\órÍË5b±‡ØCÚïu¹ãrÇåŽäOؼÁj­ÞkÝ’µ/´‡·H—6: :p2€ .÷qîãÜÇ¡uCë†Ö²qÊÆ)e9³2<Äÿÿÿ™âLq¦˜ ð³Hºä}Éû’7¡ïE T@)õSê§Ô?ûâ싳/lîÚܵ¹+ËÂñŠE+­X•••-:(:(:˜q?ã~Æ}i_Ÿn7öb‡‰D¹²´ÃêèUiXãïv¿é~Ó•MþªüUù«<üñð¹£æŽš;J–3{ÿæý›÷o~ÕÿªÿUÿt—t—t* @Ù $ê+ê+êKèûc•BÚoi¿¥ývyÀå—ô ëÖ3L–…ãAJƒ”)Iþÿ•†fgtVßÊÞFÝ:ÕÂ@²ÂV×­®[]g> 2 2 2#í"í"íœSœSœSd9³wíÚµk×®']œtqRêõÔ멜k(ÀÒ|}0¡¯ì€J*ãdÆÉŒ“7ÖÞX{cíà탷Þ® ³¸6#µ›I|ûÚ¤ñ£;¶o¶û?C•½ßx¿²Z¢Z¢sð5±ºX]¬­­­´ÆxñcYÎéí¶kØ®áé'§Ÿœ~’|.ù\ò9* €ì€P6€üOöïÙ¿gÿ~kέ9·æŒV­0ú;–‰Ûn×Xõßt‚ÛÛž¸Ûå´á/’ÕöÜî¹Ýs;3P4± ÄÂë¯W¼^±¥Í–6[Ú(×V®­\»d‘p볭϶>ëõÅë‹×—ĉ#GPa¾0Ê0©r5r5r5Bê…Ô ©7Ñv¢íD[i‹Â§wmo8‚ÈöǶŸkŒ¾Üþ÷oY¶²leÙŠù øn{„=ž·Þo½ßz»¥º¥º¥jŒÐ¡1¢d‘°N®N®Nî!Bâ‚ã‚ã‚…/Âá e@`” `ßaÐÞA{}ë¡Ä£ºZ&²-VWQU£¶ŽdͳdÈ>ÀœÈä³ðYø·-n[ܶcŒ90Fg”Î(Q%‹„5ò5ò5òw Ý5t×зñoã߯ ‚‡àA™(D €²A  XÄ=Å=Å=¥-ø Æ[vÔ#¬-vãRË`='ÉšG-ŒZµ™ ( ‰ú‰ú‰ú^›½6{mn]¿uýÖõK +_R¾¤|iË‘-G¶yíÿÚÿµ¿PS¨)Ԥ€ʉeƒ@±$OMžšxÙô³<¥™ž›:¤hÏûo•ʃ¾5ñ¬;_EgëÇvš :ÞïlÛº—‡t3wöÏè“bò»K®i}m×Â{‚ÿï_¼å+.Pw̶'Yù¶“ÛNn;™™ évévévW'\puB?Ï~žý` ÿ Y&”w9usêæÔ ¶ ¶ ¶·Üþqûe‰„ÒÒÒƒ^½z‘ššJ…Q(`kÀÖ€­ëœ×9¯sîiÖÓ¬§™Ò¥JŠ?»ê¯ª¿ªþªAÇtÜu›ë6×m!C:†t¤¶dA €²A  XF­µfÔÉ¿¦fkdÓEîîšýê_i*Òs²³=¼-ºÝíæûä?éUõI,*ž¼?óþÌû3ôNèÐ;SÏN=;õ¬,‘°Ýv»ívÛýÿòÿËÿ¯Ìs™ç2ÏQáŠ-bOÄžˆ=Î9ÿåü—BR÷U÷U÷Ý}l­ÕZ«µV²u–-[>>•u*ëTVr—ä.É]¨ðÏ•×$¯I^“Íû6ïÛ¼ï{Gsè\Ý 1§ou½gxþóàÑOÛÿ€—•Ä´nhùêÐÇŽ~--»èhõ«Ÿý½½:¾úøêã«…ëÂuá:ã (mÀŠeuãÕW7–\Ìú8eT5ëæò‘vïÜd±ÚÉÂ^~¥ÿA3H¬ætÉöyѱn´Ý0‹ ù€Õ'©ŒWêI €Tu„:B………­Æ[·«¬SY§²®d‘°Ñ £AFƒ¼þòúË믟?~þø™—ÏÏÏâÔ¨Åú£5焞b:»ì¯ÐnõþØf|ç}Zõ£ŠÓ[ýú7ôo¼¼þòúKb`@)"P,^Þ^Þ^Þ’ËX‘§†x™_’‡ˆ´~7åýŠ…½º7|À4ÓfÅù®k½zEÈs,Vp:gûT²‡º6º6º6ÌL¤:.Ž¿kù®å»–»âwÅïŠoÒ ¤AHÉ"am7m7m·ý/ö¿Øÿ"®{\÷¸îB’$$QfÙô-è[ÐwiÖÒ¬¥Yŋ͟­¼õ2²>ûݦ­ü\³%äŒ|j­8wƒñî¦3г³=f{Ìb„!†9ø±€Ë]‡»w$—®.èu`”(‹nz]U]kO/ìÕ)뮦†C‹þú÷—F´kW¿ðMÀò§-;¦ƒé7îwI•2*…™ ÀwÈ2„Œø?ãÿŒÿó`öÖ Ô Ô ,Y$¬¾Y}³úf·1ncÜÆ¼óvÌÛ1ÂVa«°•2ߧ럮ºnÒä‡I¢«½"Úl£ÎÌ´£c§wh/oOjùF¬6rE»Øqí ´ý?îA³fÌš1krss™€…@±ÄEÆEÆEJ.Z-4k“Ó¬“<,´9n5ðjô¿6üRûŠ²ê‘«&µ<ú6Â~ƒÕ™FU±Ö :ÞïlÛº.¹¦õµ]ë®QjS+OÚbœü, >í2$Öü¹dw‡íÛÆÌ@v‰$8:óèÌ£3gÏ6ž]²HX©½R{¥ö›l>²ùÈk£×F¯Ä_Ä_Ä_¨°¤WÞ¯¼_y]ÏÖÛÕ¯»îõ"»Ï–å?ô•ÖÞ¿5p€é…¢·´E­µZÔJù3åÏ”?™Ù(–ü©ùSó§J.WiEÕÕS.‡ÅµO£ÿ¶~¤ãôß›Ú5Š¿Pû|â°?-67zRg’òê¯ÿ·AM©Í–‡íòhÚ±ŽÁ3Éžßov¿ÙýfÌLJCò§äOÉŸ¼{y÷òîÕîM»7íÞ(È`õÕVx~óùÍç7Å5Å5Å5+sm#""Š®˜«S»Üæ7ÄÕœNÙ†—ßè÷ë6{ݸ6çM1L×z*u³*,TX˜X%±J"OÈ„¿Xø–Ý-»[v—\­J?8öa‡ò°¸VØŸ¥‰¦³µC,uš©.,|7paÛ>F³ Þz·MíWêŸé9ÙÙþz+ ÃãzC•m÷MÛòBãùò°E]öj-QûÆ á—F_}iÄœ l¤¦¥¦¥¦]üpñÃÅÝ~éöK·_d‰„û9÷sîY5²jdÕ‚W¯ ^U†>ñ|ÄóEWæöñ~}L^WŒÐWZ{ü÷.¿¶:Xt’§$OIžÂ~(`ßaÛ·=n’KT û.5)?ËjE?ÆYÚŸÊÛß³7޳±±—¬v­ãµŽ×:îáìáìáïïï%ä ¹B.ó€²”~.ý\ú¹k†× ¯öÛÿmÿ·²DÂsüçøÏñ$z$z$ÊwÊwÊwªHµŠ×‰×‰×)º//ÚÙZö¨ØÑï×ímQ¿i&_¤U£I¯&½šôÊz–õ,ëûà{ø¯_;¾v”\¢©Ýü½¦våY°+›öÖ¦¾ñ&û‹³d¬¹Gsæž=š{4÷h¾‹zõ.J¸*\®2c(KYÚYÚYÚffföóíçÛÏ—%ž79nrܽ ÷.Ü»{:÷tîéòX“l—l—l—ê Ô¨KÛÒ÷“F4n÷gå¼Þ{Ø{`‚Ù_Ò*3Xo°Þ`=¡ð@±øâ q8HÚUºÿØç–Üþ¨¶ÿ$í•ËJ¶d\g\quÆm[¼mñ¶Å111‚‘`$1‡(K9Ãr†å ...p¼çxÏñž,‘ðØ ±Acƒ‚4ƒ4ƒ4³OfŸÌ>)ÿpœì8Ùq²´-z6ü•W}w>ô_Ùv·´*ííí±7ŠÀwÛ¢¸Eq‹¢äâÔÑ”Îû[d Oö6qò¨QÖã¾±þ7Za´ÂhYŽ×m[·mݶ/^8ˆÅŽbGæ3e)¯c^ǼŽ÷çÜŸsδðiáÓÂe9³³f?ÌÞ¯‹_¿.™£3GgŽ–Ÿ-={òìɳ'¥õüчA.fN\õ}Ýžï–iä(­bO:<éð¤{ 8€|·øãñÇãK[œµt²·=ž,íª æš:%këaëaëa›››{~Íù5ç×tÞix§á²,/±lIJOŸ> õõõc†P–òóóÃŽ‡;>çüówÊrfïs¶ÏÙ>g}u}u}uÓÂÓÂÓÂË~‹>UûTíS5i=<¶¢sd+ž#µ]n’Úì•dÝ”+=Vzœw/ï^Þ=ö@Ñ€”Pÿµý×ö_+¹8ås¿ÇÝÖ,ê•°My4ft{©ïýMóKóKó“‹´«iWÓ®^I½’z%µOÿ>ýûô—eáx~Üü¸ùqaÏž…=ËÏÉÏÉÏa¶P–DDDžî|ºóéÎeµ–ÕZVK–3{§k®uºv>è|Ðù ”‚”‚”‚Òîÿ(ÃQ†£ %{boмYÃËBÁx§Ž¶\õIkóÕwÙê5zQgªò7®´·ß>~ûxö@Ñ€”PääÈÉ‘Rßè–{Òñ›g,á}÷==Ln6ó“¬çò‰Ë'.ŸXüÑÉìžÙ=³»Ÿ¢Ÿ¢Ÿâ°_†ý2ìYާ7™Þdz“ûÇî»,oPÞ ¼AÌÊ’Ø^l/¶aöÂì…ÙºŽë:®ë(Ë™ÝÂÙÂÙÂùÔ§þ;õß§˜O1Ÿb~T?Þ„= {"í÷¦ôÓªýR®÷ŠÓ>ךná"­’IÎIÎIÎìi€Ȥ÷ï½ïý»ä²Ô¶Ùí4_Åâ]ñÛèÏÃöZÄI[æû¼çóžÏ{d©l·l·l·ÛŸnºýiìÔ±SÇN•eáØIÃIÃIãŽÁƒ;9Sr¦äLa_ L5š ÍcöÄì‰Ù³­õ¶ÖÛZ×.¨]P» dgöV­ Zxjyjyj}\øqáÇ…ßÝŸL!SÈ4ëoÖßìO"9Ý®ënÃí\ï}oëìÛÖS»«d=çžsxÎav€4ÀdòÚöµík[i‹‰¯4í¦XŽcñ®èVÔÇi‚íIý_ê™ÔŽ”¬áν;÷îÜ[c—ëžëžë~ÏåžË=—ÉÛ&o›¼M–HØ>Ì>Ì>,`FÀŒ€YVYVYV씩KÂ%áÒ» ï.¼»°ûåî—»_jjj–ìÌÞ̰™a3Ã}Iû’ö%}ûö!Lx'¼ÞIûåcÇ<Ž‘ü9êZ*=•,E¹NÇløêûÞ6mäØZI½xiÒÒ¤¥L|€$`?ÀòeË—-_&¹,Õ¸z%ÊÛòº;vµ)` OZ»ù«¡zÒ–öòLóLóLËfó‡äÉòèÁ£Ì™2gÊœ)²DÂ,X °¸6ùÚäk“ÓCÒCÒCØS(S9BŽ¿"~Eü   ‹æš7jÞ¨dgvµFjÔ휰sÂÎ ±1±1±1ÂRa©ð¿²¯_ÿ¾þ’ßå?ªÏ•6q\ïÉÒîìÛþ_ýq’µ]¿rýÊõ+™æIÀ~€œZ9µrjI[.œù‡QR“É,ÞI¶¶}'™ô—V·³Ì~0ûçŽlÁã‚Ç#Â#Â#Âk8×p®!K$Ümt·ÑÝFû4ôièÓðËß_þþò7ûe/éߤ“þ=6èØ cƒÚÜos¿Íý’Ùkݯu¿Öýåu—×]^÷ÜFACá?q'?Û®údºxÙØ1L¥þcÁ‡yó2«_#ðÄ…‡…‡…K[œÚbe Â^aûÂoØGKiµZ]uuÕÕUås”ÅUÅUÅUŸ»>w}ßê~«ûÉ [·³ngÝÎ{“÷&ïMŸÿøüÇç?Ø({Ÿû~îû¹ï3:gtÚë·×o¯¯ 3/‡Î¶ú«¾ÕÎ42Êo2G²ÎÁí‚Û·c¾F às/p/p/¶è-t³2Ì­Ì‹wïrìs­¾H«ùAóƒæE5D5D5Êˈ‹ʼnâÄ×½þëõ_›‡m¶y˜b”b”bTÉ‹£Œ£Œ£Ž^µÆD¶?¶/vzn›"­æùó;æwd– (šššÝ‡vÚ}¨´…*·®í'êï¯ v#=7Û_tÌùÚýµûk÷ ;!> …qÚqÚqÚûwîß¹§vKí–Ú-K 7lÙ°eÖ»›ïn¾»ù»ï¾(œN §Ùï(KÞ¹Þ¹Þ¹’gê3úÝúU'²-vÑj“YͶIÖ<Ú)Ú)Ú‰9 (D  å8ç8ç8[‡Z‡Z‡J ó_6ŠÏn5NÓ¦KÅ[¤;Ù¸ËcCÕ¢ã̧sŸÎ}:·rÎ>>øøÀóžç=Ï{†††%‹„U2T2T2¶:ouÞêccc"¨ j‚û ¥gâÞ‰{'î•Kû,-:Æ{²s°‹y¹¿_äË/c"Û¿}N?RóZÑÛû¬àYÁ³fÈ×’u“u“uO]>uùÔeËi–Ó,§)È`íúµë×®~ý$ú‰¸“¸“¸à( „•D•D•DÉ󯸊ÓIÛpy»B»}¥ß@“ØÑ¯ô?hé8ý÷¦vÚ^Š+jmÔ׫ױöë‡t5¨vyCÏ)­ãÅjN—lŸËçufêÖ1'Úß“¬¹]]W•€ÿ!PFDMEMEMgÎ6œmXth·xŠÉ½fÁé¿ÝÑap¹‰~]Ç[wÔ??¶ûr£Eo]ýœú9õsâÅ-Š[Ĭ(ŽTëTëTë Ã/ ¿0¼³ggÏΞ²DÂK{-íµ´×Ó&O›¨7õ[½@€üDÑ)Ñ)Ñ)´i5Ò*NP·ú¥ù)݆ªŽ°k×üg-·e_××fœwz73Ã,µ^Ê‚Ò?Åéùé9§çœž#ˆ‘ bÜKCæžÌ=™{ü"ü"ü"ìÌìÌìÌd‰„§Õ˜VcZÐÜÐÜÐܼúyõóêSa¾Y%²JdÉsèñ„.C[=‘‡ˆôMÕáÎV)¾«¥¦pAu‚R’¢cÔÚ¡ƒ-4¥}}aÿç0¶nj.ÿ1ðÌÓ­›5ÙF †ÀOV X X ¸ë—]¿ìú¥ø®§ê€ÚÝö[ØV30Hé5¦Uû¥¥·Äæ[¥g®±ù g z¿‡CÞ y3äÍÇ /|¼À(—½ìWÙ¯²_yyy9¸;¸;¸Ë Ë—1.#x~ðüàù9º9º9ºT…>ÿòù—Ï¿ß ¾|Ëm¾Û|·ù=z:ô4b<ÄxHÑóªÞÌz3ëÍ´]e»ÊvÕœ¶sÚÎi{Ìè˜Ñ1£Q„(B$î/î/îO…ȧÀøÀøÀxÉ#[àȾsL†ÊCDºü¾™¶Žqa¯Ö÷³ÈÒýXœ(7¿›ãq[ã·~ý¤Ž­Æ5Ž“·Øu@»´æ¾Ài€È‘ĉ#GL¹>åú”ë% ê,£.T=´t©iOíó§uõ0ÜR­JÛçÒ–Ï>L±¢íåŽ=û·~¶5µÝäæNƒõt +ÙooÙ¨e£–ô{ÐïA?FSÞä>Ë}–û,´ehËЖS.M¹4å’,‘ðð}Ã÷ ßçÞÿ¼ÿùÌôÌôÌt*\±å¹æ¹æ¹† 9rdfŸ™}föQ(:tè p}îúÜõùëÐס¯C òÀçˆÏŸ#’G­GÙƒV™M’‡ˆtÈ,ݱ < {uûJ¿&±ÅÿÞ¯·Èøˆú”ºwä-öÜÚézË(`€4ÀäT\ϸžq=ø-ð[à§ Ç:uêÔ©S§Ð^¡½B{1jåKþÆüùÏ~<ûñì¹ëæ®›»N–™Ð¿Jÿ*ý«\=|õðÕÃé³Òg¥Ï¢Âå]ŒzŒzŒúüÇóÏ,?ÇœÚSkO­=õP·CÝuKsJsJsb¤”½3³ÏÌ>3[ò9kÈVóãò‘¶¾ ®\w«ìGÝÆ·ê)ß·AŸVïºÁp0@`åÁba±°øB³ Í.4³L·L·Lÿ¹ÌV«­V[­’j&ÕLªÉàT$ùùù‘3"gDÎp©íRÛ¥¶,ó¤ký®õ»Ö¿ØóbÏ‹=S½S½S½©°ü{²ôÉÒ'K;‡víú£ŽÍ.5¢r¨µJóßêNn­Û¥Î§†¡j©ÊŠ?êç;wrîäÜéÓ²OË>-c”sýÎõ;×Oòˆ¡<äs¹xtÝ5JmjåÉ~ŒýúçÈO|Ò¨K¤¡0@`å’hhhPÀˆ€#æu˜×a^‡Ll0ñǽÃ> û0ìɸq'ââOÄŸˆ?Aå+±¦XS¬­­­½ÆnÝ;Yf”Õ«/V_N_8}áô…äCɇ’Qay{;övìí>»ûìî³û{Çt¤QÏÛšº§Ö0œû¢Í™êY‚Ú±cÉÚ;Ž 1}»Ójþßú£,.Ríö½ýÙh¿Ñ~£}öìÙY¥çjæÕÌ«™’G¡Ð^›N‡ˆÔàŸzyuºöê|Two£¨=†ùYä—¬•·ø€³íƒyÀi€T@ 4zbýÄú‰õu¯ë^×½NŽ?9þäx.]<º¸uàÖ[Gÿ9úÏÑ.©^R½¤zoç½÷vÆ-[·œêáÿ¡ºP]¨þz×ë]¯wm¶eØ–aÊÝ”»)w+Y$ÜÚ¹µskg¯Ç^½'öJì•Ø‹—üìüìüìͧ6ŸÚ|ªøãµ¸Žƒ}³óQNæYÔ–%è-~›}<ÈÖf¬¿ÑîØ6/ûÜé°Pýcñ{{»Æí·k0ÖJý÷Ü{ yäñîÕÕx²q>q>Bª*¤Ræ%ævÌí˜ÛMÿmúoÓ‹‹:uT6×òº8qËñÖ­rƒ}l–Mè[t›}­µóZ·©MtWgFͱ›c7Ç.w^î¼ÜyŒ>€åõ?¯ÿyýä1gOZ‡»-¦ËCD:F›žMc {å´¬e•Æç»rÇË´ 1ïÒ`ê?:Nÿ½©]cCËÞz ä-™¯ßJs00@`~´!EH‰;w8îð•VX©ãªãªSÂHXãŽÆ;»Úìj³«ÍÛˆ·o#„ýÂ~a?eþ^¾|;øv(NÍ}®o=ÛÚYâÞ¢ÛŒ';^©:ñ°Î²¢·H³½f{Íöú|èó¡3€ìR}R}R}$6&´ôi¼@"ÒÇéƒÞ›yöJñ]-5… —7ôœÒ:¾èïZØß¤Z³î_oQáÏ‘·XëX]Uå/Ài€(#‰V‰V‰V^g¼ÎxiÝ£uÖ=J +/U^ª¼t‹Ë—-.¯O½>õú”ð«ð«ð+–f‡ß¿~EWuÕôIguåü´Ïf±üG¿’ml« ç¬z·û½õ.Õø¢·ôñšÇk¯aV…ÈMä&r“<Â4üPû¢rù J%{8~fË!Û[Ò9¼ÕÒÂp×çDk­Ú¦s®ÉÿyË{ÍæÏ45åíí¿yÙŽkmIn—QM£šF5™™€BÀü4ɮɮɮ§]O»žvµò·ò·òWÁšek–­Ymmm)n*n*nZ©‹"„!K·.ݺtëÿ#ïµÅlUy }¿ÑN Ö±É~çM‹Þê ç ç göA²°˜c1ÇbŽä&[\C›Îò—>ÒÙ^»¹VCŸâŸO{ÕkºN½gμq{m\å-ŽM´omµào©?³øÌâ3ÌI@!`äHªGªGªÇEƒ‹ º$wIî’,K$ìbébéb¹6rmäZQUQUQÕÊSI—l—l—li•évßòÚæ4‡€¦ +Hô+Ñ>Jöja6¡è|;øvðmö;%³¹þæú›ëK[ž<¼Û\IÞ›\x§ïYºcxj]¬«¡œ¡â£¨SkP¿_¥Îi‹5B ¿æë»‡åm+NþÓ审ŠdÍoZÜ´¸iÁœ"@®¥;¥;¥;]]uuÕÕUýžô{Òï‰,‘ðÜ s/̽ðxãã7æoÏßž¿½âUl[ö¶ìmR£ß™¿wn2IärËölE~¿nãͯLlç­lªÔ·VUi5‰9>r<û€ïõ8âqÄãˆo<‘â_s?ÝæòJ>ZÚŸÊgÏ ÛnçšØª­•¬ù‘ŽG:é˜b’b’bÂÌPÎd&d&d&øïôßé¿søôáÓ‡O—%žòfÊ›)oB»†v íš››[~+sIé’Ò%%©÷C_w2Ñ^)ø‡îéhR¢ß¯Û››Û/iЪþY%©AMª’T%‰+Cß!'8'8'XÚQE¨9þŸŽÿÊs˜Z¾Ú G‡ºŽçÌnúÜô¹éóCO =1ôÓŸþøôs*–ù(÷ræ4Ìilll?.d\ȸY"a‡»wîdÇgÇgÇË^æ½Ì{™'m‹f¥Ø‹šD wBtl[٢߯ÛÏÛoê´(­J&ULª˜T)¸^p½à:û€â=,zX´äQåYó¡;,:Üþ¨öbÃÚ­5Kvf7°1°1°9<àð€Ã\\\± ÄÌ^¨¨€¨€ò”ó”ó”Cß„¾ }35zjôÔhY"a;';';'¿T¿T¿ÔL¯L¯L/9ÚÒYy³òf©÷Uï«ÞW²ç½ï·¿¤~Vv¯¶íÝÊý~ݾMôùÃꢴ±^—³.g]{€â jÔ&¨äñdrX«<-+‚ÛЦŽÓ±ƒþ‡zëëü¦ðƒhׯ5Þý÷?ÜÿxÿôýÓ÷O…0!Lc>@Å@ @¥ïŸïŸïV/¬^X½yGæ™wD–…ã¾}ûú>÷}îû<]=]=]ýgm×êØÕ±«c¥õ3ýf`ëK }%Ûàд"­núúúì5Šu~Y’¿$‰´ãIòÕÑ{ÛkâÊÒFtÒÐÜáOnØa²ÃdGÂô„é Ó+V<¬ØâM‹7-Þ”ìÌ®ÚIµ“j§ís¶ÏÙ>çMø›ð7áÂpa¸0œå0•”HK¤%ÒzªðTá©ÂÒfK›-m&K$Ü9¢sDçˆ /,¼°0µWj¯Ô^¥Ýÿ—{^îy¹Gj„9òø ó‰½E·ëµ§ÒýFTиJã*«ˆ‚EÁ¢`öÅáºÉu“ë&ÉãÉŠ fÎ:qei»›5™§ö·ÿúu÷ëî×]r,’““O¨žP=¡j:×t®é\YÎïömØ·aßË5/×¼\#ö{ˆ=˜í ÿ€Àÿˆ;ˆ;ˆ;D߈¾}c­ÃZ‡µ²,[´€âHII‘vÌøµO–É_„»Åi÷ é°¹E/É63kfÖÌL¼R¼R¼òÇŽ]ÆÉŒ“'o¬½±öÆÚÁÛo¼]–Hx¦ãLÇ™Ž«>¬ú°jÞݼ»ywÙ; ,Ùd ™Bf¼Z¼Z¼ÚÁgœ¡›©›©›Y²%cu;u;u;7+7+7«·}ÞöyÛGØ,l6þª(ý(ý(}Éïj£yNeºÐ6Ô ãD¹%kcã.ZYÍ—ú ÑN¢N¢NLvÅáåå%íxòyÃèÄöˆx¥µÏµ†~±p–V½°Åa‹Ã—Í8fÿžý{öï·fßš}köh…Ñ £eI„&̘0cÂŒ»{ïî½»7çKΗœ/ì)Pz€@©H<“x&ñÌÑíG·ÝnìeìeìU²%c¥¿”þRúk³Ëf—Í.vÓí¦ÛMÿƽ¿»wlãLˆ+{kw±ûo GIVøNÒ¤;IÌjÅ2J%Œ²íbÛŶ‹äñ¤óZ­ºõÃEAN;lƒˆ{¿nÓýÆ>ï°TÚÙpá …ƒþäG+çjäjäj„Ô ©Ro¢íDÛ‰¶²D£ŒG2L L LÉŠÈŠÈŠ`×€…”‘äüäüä|ï)ÞS¼§X+X+X+ü(Žwómç”}\ú¢Ç‹ü¯{RÞàpŸãÍm$+\ø8Pæ0€âKÐJÐJÐ’úÖØ§&[›&ôýß789Û^éÞ´É4µo¼ñWQ¬(VçtÈéÓAÞF9/%/%/åႇ .˜e8Ëp–¡,góA]tñzÁõ‚ëÓ2¦eLc?€’!?Mª*¤ >Õ|ªùTëfØÍ°Ûw/o¼5c¼ÞœŸ—JÀå>®úgÇ¥U;³wfïÌÞÌ[ÅwÃñ†ã GiG• ­ ô‡VæèWœ6þ—ŽLú£UïÆÏ¤U)úZôµèkåeÄ æÌ+˜îîîºèÅ¢‹^È ÷Hê‘Ô#éRà¥ÀK_‚¿ fŸ€â r$ýFúô×z_ë}­÷€ü;àߢ—†ß$^˜oÕŽøÇ¶ÛšÌ~Ö|–ävÝz|ëñ­ÇÌRßkˬ-³¶Ì’v$w›Ö~¾¾W¥‹~;]±}1uºáv­}Ò*sIá’Â%…ò>ú¢«¢«¢«ÏÆ>ûlìJó•æ+Íe‰„;¼èð¢Ã‹³Ög­ÏZŽøñ™GÀ7¹––ž–ž–.m!XÐ Uï¨LücÛWNg¯ZΖܮYÎúsÖŸÌIßí³ðYø<­Ï´>ÓúH;ž¯øÃ¬Ž8i|µŽ¿Wìè7g׸£6{†Ýгl¨-­{Fï½gtEb±ØçeÊË”—)n¸q ,‘pÛmW´]q|ÁñÇ$¹'¹'¹³Ã0ko}Þú¼õ‘\ðó׈—MëýÜ ´¢ÀCFÙº~c•}Â:…uB´-D33|/ÑÑчÑJ£•F+I óúoÒÞª±.½êX׃*^ôû¡÷ˆùí¬šN®{KeÔWo4Þh\é&Ça‚0!Ö0Ö0Öp‡öíÚõº×ë^¯{É"aýxýxýøCM<41A-A-AM( „öA•0k—^\zqéo¼ñ·Û„6Mä3~\ÍËÊlŠ]§nçvn|«A{åuÜT2jÝ2 Ó«Y·ñâÖsšù~V¿ñ°½¹<ÇÀ}œ:¨GHn]zDzD:ÜPB"‘ÈgâÙ‰g'ž-:Æ{0eàÓç#ú½ô²góÖþEo¯«‚«‚«3äž Ï„g >|0p÷q÷q÷iâÔÄ©‰SÉ"áÆÕWk\moí½µ÷Ö~?èý ÷ƒ„`!XàÂ*,` ×–ö_ÚiÉÅÜŸ.m7Z>`å…µ½­u± œyìÄ sù €w [pAÿÑ{ô/Ñ¿DÿÂÌ “UÂ*aÕÚýk÷¯Ý_ôÑrn¢ñõ¦«ÓÚíÖA·|…¾qG*¶Û;°žŽ–Æ»¢·ñ专ãNŽcRGB\B\BÜáüÃù‡ó[Z´´hiQ²H¸nTݨºQ® \¸.xÓíM·7Ý„.B¡ P1¹Öej—©]¦J.Ýæ:ûØ<”ϸÐ"Û±W›-¿Ökç߯çâ65ò˜ZwèD­µµª*ÜWèøõWŠÕîõµ}.opž'&‚ävù.õ]ê»”™ àG¹põÂÕ W‹Ú4·õ78œ3gÜ^›mòú¦ö³­ýµÕ›Ì7ëþ[œ-z0àÁ€˜²ø4ðÓÀOOäÈ;‘gjj*Ë…×ïZ¿ký®9/r^äˆWŠWŠWRaå0k***ßxÏîÕÐå-V|§h«páFK·Umô ¿æë·þ÷)ëu¶†CåÿÍÁoþ8bõ·d?wõÙÕgWf&€ëMÄ›ˆ7úŠúŠúŠÅ ê¶*¶Smnœ¸rÔëI?7ô}:üžUÛ³Úx7S-NϸpàšÒ'¥O ÇÒR‘âœâœâ|îü¹óçÎwTê¨ÔQI–Hxù”åS–O‰53V/ü®&ž ¯©èÈÛ}ÀY5nØü"Yÿq#Æ7‚™  ´}Òý¤ûIw²0Y˜,”,¨=Bÿ²æñƒN¶ NßyÐQÛí‚æø:•‹Žx³g3³8µï"“ánoÚÖ÷0_û£†_Éú°®ûºîëºçþûwîߌ©üÈ(È(È(¸ÙófÏ›=‡<ò`ÈY"áftšÑ©ðÞy[ò¶äm¡Â•Aî£ÜG¹.Ö¹Xçb¡&CM†š(”²Î :'x=ñzâõ$9#9#9ƒQ€4À@®I.~ é4®ÁŸò¿ òñ±úPœï}Ýà\WËòü èœÁÚ6^’=:,tX(3@Yz×ö]Ûwm§oŸ¾}úv¹·nźëV¤¨¦¨¦¨2våEvïìÞÙ½o·¼ÝòvË1íÆ´ÓN–90¾Ëø.ã»Ü‰»w'.çlÎÙœ³T¸Ü{,<ßè~£ûî6¿Úüjó«<mt›è6ÑmrêÙ©g§žåÍÈ›‘7ƒ@!` ×¾ñöÄ›wh<”Ï8w|ð›â|oöê ];¹€w‰mvKöÐ.Ì.Ì.Œ™ àgù²õËÖ/[½Vx­ðZÑt`ÓMþܦB;…v —n]ºuéVöûì÷Ù!×>×>×>äaÈÇ“&Mš4i’,ódä/#ùK`ËÀ–-³Öe­ËZG…å_Öœ¬9YsÜß»¿w¯PN¬|¿òýÊ÷É“?&d*3` ×$¶:57kQEy¿øMÚ«ö…ߥ®TM!QÞàL«[£:<ûÆ]MÇ?™ @~|Œüù1òL•3UÎT:èü¡óK/\o=Þz¼õÕWG\‘Ú<µyjsê_yäkåkåk=jü¨ñ£Æ³ûÌî3»,siàüóοÞúzëë­3Ô2Ô2Ô¨°<©‰ÔDj^Æ^Æ^Æ%Ù)õ†xjõ>“¶QÛÈà™Ñ©c¿÷ìu£s=,^¹¸½º±ÎÂ;c5§ö\õ¹RóïíÉÆ{lì‘]%»J6«•—€@®I.fiÏnôYåAyðµ^;ÿ6(ü.ƒ´ëÖé*op²Òu‘õ7êïœêœêœÊÌP^<5xjðÔàÊ_Wþºò×Þß÷þ¾÷÷åó–Ï[>oÖÌY3gÍœúh꣩æ(ÏQž£¼jùªå«–P9 r@åú®ë»®ïŠv‹v‹v£†¦À³À³À3Â(Â(ÂhqêâÔÅ©²DÂÝv?Úý¨OšOšOÚ— _&|™@…ËRøÀðáœip¦Á™âŒ—VhÃZʹ‡]–Oj925Î/¿ý«Ò¾6Ë¿{×Ù¶ïùA›7ºj)2º£z¢ø³ëæØ›coŽe”*` ×ÔÞ«½WûÆc÷„A¡;6·xô«ÞÏ5ƒŠó½ƒ¶u®ÞÀ¤ð»†Ì겨§¼À/CÏZYö•¬ü¾Ô}©û€øÑkÑkÑëgÏ ž¬ê¼ªóªÎ²DÂí7µßÔ~Ó§3Ngœ>Oý<õóT*üc‰‰‰m8½áô†ÓÅz€ã€ìÆí^Œ9ÓIJª<\­Å]»òk»­Ë•'ü£ówqú?¡Ý„vÚeÍΚ5›Ñ¨Ø€€\ëW£_~5$°²n'Út‘·Xñ¢­Â…-ÝVµÑ—ö]§¬×Ùýú»‚ŽïoÒ¶®üD¿…­ŸÒ.¡Í^ÉÊû÷ï7ž™ @qˆ‹‹¿ZòjÉ«%›†l²iH­QµFÕU²HØDßDßDÿØ®c»ŽíJÒOÒOÒ§Â%“ì˜ì˜ìhž`ž`žPtÍWö_Ü(<®îåÕí&ÉÛÕÚ×mê.¿›íCWÌŸ¨¥3¼8séeðËà—ÁÌ€ŠŠȵõÕÖW[_MrÑê͈ [5”·¸‰gÃk*:…ÿ½¸µÃœf¾×Ûí 1ιpw‹vë¦Ö:Qkí×_ßuœ…š¥¼Ýû[Øn ž1Io®dåcÌbÌb̘™”Ð"a‘°(Ö7Ö7Öwg£v6ªµþÕúWK 7_Ó|Mó5...ñ^ñ^ñ^B®+äRfi¢kF׌®YtU.P;«$„<öÖ¼¥<‡¾ÒÚwO|ü­ºÔ3?W?½è- œ8?p>³ â!rÍošß4¿i’ËUçÓ7/7z-oðí+û&˜ÄªN¨«­èXôr[ µfÃê(¿ òñ±ú Ÿ°uoãÝõZ~ãÞk½l½l=f&?L¬+Ä~8ýáô‡Óû¼öyíójú éƒ¦J kîÑÜ£¹gæÍ=šï¢ÞE½‹® W…«”ùaäÃȇ‘EWoíô©¿ë.»Þó¶Í(ѯd{4bÕ£VC‹ÞêócÏ=Ï‚*` ×$£ß¼:wôlR¿± ¼_s¿æ~æ$eããÐC?=òîÈ»#ïZínµ»Õî’EÂuÆÕWgܶÅÛo[( F‚Qå©äÃ܇¹s‹®Ò­‘îv&Û+Fè+Ù>~:ÍâhÑ8·ëÜ®s»Øï*` ×Äb±‡´…*Qó¶‡´÷{ÿ¿ü´Õ2(YíáqÃã†Ç¥lLÙ˜²‘™ @Ùûð)àSÀÉç'ŸŸ|n¡n¡n¡® ƒuÛÖm[·íŸã^Œ;ŠÅޝbÑÇ£G/º¯ŸŸ{aRQ£ß¯Û”±7´_Ùê©®m$iÕðSõSõSe_(ï€@90-gZδÉ%ª¨j'}-ªW†»²l]:úi.z©Ô¬À¬À¬à¤êIÕ“ªŸ>9|r`–PöRbSbSbϯ9¿æüšNvì:ÙÉ /±lIJOŸ> õõõ+¿•ù\ísµÏÕŠÞÞG¯ö²6­lWzÙ‚”mvˆ5Ù[/HZež¥=K{–ÆþP~€rà^{5îÕ\œšï5útÓ$"ÛÕô¼o;­dKÆ-§¶œÚrêµ#jGÔ²²²™·”½´«iWÓ®^I½’z%µOÿ>ýûô—%ž7?n~\س°gaÏòsòsòsä¿¢ƒ¢ƒ¢ƒV³¬fYÍ’ýnºjnmT™¯ú²Ou±q0öÖïT÷ž´*¥×J¯•^‹}  <"å@ÞŽ¼y;¤-Ne÷º-Øô&¾•½½°o³É'…¤‰{÷&îîÏÜŸ¹?ûÐþCûí…çÂsá9ó€²”Ù=³{fw?E?E?Åa¿ ûeØ/²œß§7™Þdz“ûÇî»,oPÞ ¼Aò¶½›ÿÝüïæ¥>ð¹ý9Ë£\õ¶_ôü[¶—zí7køCׇ®]ó²ó²ó²Ù/äÓÛYog½5:`tÀèYF¼n°îJà s:/ü¢iäPñ´óº ì—(éõ¯¶,AwÛ¸ çwÍ_93³‘i÷yóU=ZŽ0ûE–ßhÓܦ¹MóðåáË×3Ž I\U\U\õ¹ës×箫û®î»º¯,G]ëvÖí¬ÛyoòÞä½éóŸÿøüGqúà1Þc¼ÇxÉŸ6:¨w°¦?×{%kw.™o©?M²ªSæM™7e3@þ€r)ñjâÕÄ«Òox»%´éÊâ]Ñ­ãªþοqGÎÕnW»]r…\!·´Ç1ë^Ö½¬{ááá£jŽª9ª¦, ǧMœ6qZHëÖ!­s›å6ËmÆžò³dœÉ8“qfIð’à%ßýîÞ&ÊæŽßj˜¶´¹Ç³€ÝwN[Zzx„†ÊÒZïygwë«Ôõnn¯>ëªRT½<ÉÅïÕˆ#ŒXðqÏÇ=÷0¾ 8Qœ(N|ý×ë¿^ÿµyèæ¡›‡*>U|ªø´dgvã(ã(㨣>G}Žú$ú%ú%ú}ý» þ)ø§àißûî£O˜U2×{%k³¹dc%­¶É¿%ÿ–ü³@ž€rÌ«ŠW¯*RR×ýR|;K–ð$Û“§Ö†¶•Z·_?üúáן5¦9 9 9 w—Þ]zwé„N:MéAÁ£ÍG›6¿µõÖÖ[[³•²•²•ØkJ[€Z€Z€ZñÇHkO¿ Çýmoxx6Uö ÷{Û¶ó¶í¸2V{ÛÈùso¿ÏÇzëu¬c ŲQØ(l|kùÖò­¥[}·únõÕ›ª7UoZ²3»^3½fzÍn?¸ýàö3fgÌΘI~͘Ë}Vhfs½'{»ëâ‚\ýÉ ïHÚ‘´#‰© Ï€@yf!X][vmÙµ¥äâTÇúÏ•2}ovÈ` ¯°}Ðõˆºi˜´EÕãŽ8þAÞ9Ï?Ï?ÏÿAƒ„ 3-fZÌ´%08`pÀ Ïž7<3.g\θÌnôÆ(&/&/fÞåy—ç].Öò}Ä„+«šŸq¿4«ìC_©w 'Ü}o®û¯íÃkuTz£œWôVôÖwXßa_ì¿Ø±gÀwø(|>ÆiÇiÇiïß¹çþÚ-µ[j·üQosÖ生E/y¾ËïvWÍÖx£Ñô<½FzÁu‡ÕqSɨuKëbAYŽ®ZS7û]n"­ÎâAâAâALgùD ʽäÑÉ£“GK[œê´Õlqý=yGîì±U¨ÌÑï‹€3Ó,kK½Söîè»£ï ™B¦)ÿ#^л wAïðßÃÿ}aòÂä…ɲ,÷ªÒ«J¯*—g^žyyfšršrš2ûTñ%­MZ›´¶åŒ–3ZÎ(ºÎÚG¾×ÍÜßýsÐuù }¥†Áwê…$éošÖ|Câ̢狞/z¾ˆù²øøàãƒ<ïyÞó¼g˜a˜a˜ñ½çtµªc•þ.…nëh,ÏWe‹lÇ^m¶¼èm‘ŸÞŽœß3OówZ?ÛôlÓ³MÌ[ùD *ˆG2I](ì«ß!T£JžÕn6¹•-ú}©|æœe3i•Ñl¥ÙJ³U¶s¶s¶sù}ÑÑÑž¨Ø¨Ø¨ØV X1@–HØ&Û&Û&ûlÞÙ¼³y):):):ì_’^ y5äÕ¢+©ÚÉ CÛm[l=sÙLþC_i­ÙªÝ þ7Néø`à±¢·7(<(<(œ¹?J²n²n²î©K§.ºd9Íršå´¢Ãû6- 2ø]þ¯ÍšîÔœ§2ª°ÏógŒ^Ñ4æùÄÓî›3|3;øÊ[|×ø VÛ“’Õ^ûií§µŸ˜¥ò‰T(S.¦\L‘¶,Øî¢±F½ÒbVwèU¢ßGÍ=w›Y½TšŸŸ_ñf‚xŸxŸxßËY/g½œµaæÊ ›3=fzì„é Ó¦IyIyIy•y/{šô4éiRÑÓñûï¢1–µ<”B•Êoô+Ùt›}µNÑÛ~ýÈõ#×p4€ÒjjjÝyBç 'HßϸdÞî/ù¿Bû?ϘxÚÝb³<÷6§gЛµ’ÕVÿUýWõ_± ÄÌLyC * £Í6?Ú\j>£¯ÐT¡Îë>ç¦[ž¨¨Ñïå ÅEÇT1ÝbºÅt«DÓb¨0TúÆïß¿í}·÷ÝÞWUQUQU±d‘°’’Òa£ÃF‡–%,KXV@_Æ¿Œ_te W9?;ض"…¾’mï _ÎÕ/ºÞÞÞàÇK}ƒøý½äŽ¿–¯øE3*ùòßçÎ~æêÇHÖÍú4ëÓ,v/݃çž?x.y¤=®ºúa«#ò|µÖijá5Âöëžkƪ‡(÷þúOå³ÿaŽú𽔬üជ{îÉÌ7À Rˆ:u>ê|qB»5zSjê~Ùê¿´Cuy^FŒžæídÒ½¦¥Xm_Ñ[dwÖî¬ÝÙ,û,û,{fBÉ$å&å&徸ð}À²¼Q¸ðÄ…ï'.|W±­¤UÌ­‘[#·Fì; ‹¥Ç–[ú†•øæšµ péµùoïºÚþÆ?rf=Ìz3@Þ€JêªíUÛ«¶Åè, _«:ž}¹ñ‘ƒXûÞ0Û—¥½ÐWíòœvŽ[÷ÍžÜ|@ñûÙîE»í^ÄöŒíËãøÊTšršršòå™—g^žÙSè)ôd‰„&/L^˜þ{øïá¿ô.è]л,·%}Tú¨ôQÒú¦ÛÄaÚ]â^im«6 }÷$H«^L͘š15Ù_ dF6Ù|dsÉ£kÖóÛ‡mZ—bz¨£©dåëΩ;§îf&€¼!•Zæ…Ì ™ÖžY{fí™ïèê†Ö~¯øÇ¿‘NM;\¸´¥^뚯|ÏæY®ùîûzz꘩{¼_¦Ó²úЩ]Û5x]²Èз‹oß.‚‡à!x0²ò ãRÆ¥ŒK7ís²…ù àÒkSøÅ·’¬ü¤¿'ý=éof&€¼!*¢ÉÂdará›}wôØÑcGzKë-­·´ø°É„Íí/þGpû£ZóI{ßß+­ÚB=¡žPi E É É É’<ŠzÚ`g˜I\zíÓú'1$Yùýíÿkÿ_ÌLyC TÏ…çÂóí?´ÿÐÞý™û3÷gZ¯µ^k½–\Ì­uWeQ, =‡î#¸ý±­zž•b÷³’5÷æÝ›wo˜¤P´Ä‰HE§ôr_kpéµG.®ÞÒK²ò÷‡Þz(3@Þ•Ô“à'ÁO‚¿ñðçgÃ~v°¶T6÷òŽ’5?qæÄ™g˜“P4ÑiÑiÑi©OSp ßQŸ¸4Ú~A¶55ì$kžr&åL ç/¹C TRnoÜÞ¸½‘\Ìm­½²ª×ÂÚÒhMwílx=[²æö­í[Û·fN@q î7¸ßà~’ÇÒŠ¾/¬ë–—¸¼Ü¯œçuÇݶÖ7ž¢PK¡–BæôÌé™Ó™“ò†¨¤zGöŽì)¹¤k–¹gràRy‹N-b.¾×Wïô„ö+F×;j´ÛJ_i©êGõ¿k-WöPɨ½£ñ>­”»W>¼Íú ËÎn’ÓXÅC#´±Ô{×. —…ËÌL(Ú¹cçŽ;&y=:bÕÌVíÊK°Z^ÚGëOWOWOWg–ü\À@%%mײ¥ÇÜÐòššùì>°¨Þ|£ß,§+[ó[“Ϭy Ÿ1pýYm4ÚO“ìsÖú¬õYë™™P´d£d£d£où=›×ö#²ý±í!ç´ú)|§Î‘#;G^Xxaá……©½R{¥öbÞ”%` ’’\®­7Ó0Ãrˆ¼Å¥jáf3:Wÿ_C‡(UÓšÚoÒ¸”–£çÿç¶Ê0iimóãç8(©·P=äë-jc·>õL˜¼mQÓÉC.MýK²þÌ?˜0gf@q˜ï2ße¾KòXúæó!VÜÊÞf¶¹5¬ÃS…Äò åA˃§žžzzêi²i²i²)s ô•”äâl㑽ëŒ>,?A©AÔÜ1;zÿ¯s{k+Ú¶ô[`¹K(üÓÿ-(õõÿ{+áre•Œÿ³è,g°þ–i­7ü#Yÿ°aÂ03 8.û_ö¿ì/y,µÔÞ«I ñ­ì­W‡•;ZU‘¬ð<÷yîóÜ·Ý:tëP•›*7Un–,6jbÔĨ‰g’g’gÒÇW_}|ŬøQ€€JJr)Vç¯Q9óÏÉOPªžhÓ}Jaß4¬¯öV+N ûõ©nm©gzKÞàVŸ§í –¬¿ÿŸþúÿÉÌ€âÈUÊUÊU’.&5»¶Øz+!nÉÚ¼·wBmÕ¥Õ6® ® ®àÃpR8)œ|góÎæÍîš»kî®Ù@Ô@Ô@T²HX{¬öXí±û}÷ûî÷333…D!‘ÙŽ¨¥QK£–î;»ïì¾³£vŒÚ1jGãC5>ô½sÌ$Æ$Æ$fÎ9Cæ 9ëuÖë¬WöºìuÙë¨0 â!*©o¼=ÑlRõUžò”Ö¾¥ÕB·Gaß¾¾÷÷ÿñÎ`·d¿Nmâ7zÿÍÄcsÊÅ\y €[wYépt”dý/^¼ÈÌ€âs]êºÔu©äu¶÷ˆmM%Ê-Yëùfe§–%«:|ÀðÃü?†$SÈ2ãÕâÕâÕÎ88ãà ÝLÝLÝÌ’EÂêvêvêvníÜÚ¹µ{ÛçmŸ·}„ÍÂfa33¿¢úôòÓËO/ÅŠ;×fm›µmÖ*”!û»öwíïúöí7Zè#ôú0"€ò‹¨¤$—½ô'Nõ[?G"R‹ ’BvþŸ;6l6Ý»à"oQnÉZc­5õN¼‘¬¿÷Cï‡Þ™™P|iéiéiéÒ✗]ϼ°lM [üöËeÿýþ’ZOá¥ð²„#•x&ñL♣Ûn?ºÝØÓØÓسdÒßJ+ý½Ùe³Ëf—× ^7xÝ@üYüYü™}¡<ÏÏÏø7à߀­m¬m¬mäÌŒ¶3ÚÎhûjØ«a¯†1^€ò…¨¤¾qpèä»k’å!"5y´e©Ï×}3ݧ_1àÖçW;þwŸË>—}.›™ ßkÏõ=×÷\—<®ÇéϬûTìpo½íGÂÝâ´Óþ¦«õ7+;f:f:fþØQKÎKÎKÎóžâ=Å{е‚µ‚µLAÝêù«ç¯žÿüøóãÏ‹ÿ*þ•ýBN…!Bȹºçêž«+{@«§Ñ£ÑåúÛœè Ù°mÇ&™tŸ>ü³æËn}ì6¨×þPŸNªûZö3ͬu[ejm‘,¿«Ë.Cº ‰TˆTˆT`ò¨¤$¶t›:ÌZb ©ù>÷%Aº_÷­íÐmm.'VŒØÐÏe‡†dý¯û_÷¿îÏ̀(oQÞ"i±Íž‹Î¶˜B¸[tëï¿§W›©ïTþ;é錄K{S…T!Uð©æSͧZ7Ãn†Ý e‰ëœõœõœõ"## ¢ ¢ ¢ØS~®àÁ7‚o¨ìRÙ¥²«øãXÛ»ñ'lík#³ç9¶±òÄÑ«?àI3yCï]n¥²°Ûž¡ z9ŠùÞÙejjoooÏÈä0PII.f5Qà6þªü¥_÷ͰÆóýMŠõ€åÃkžŠÑž8"nCí;£4æí±Tðø7ô_ùÙ®‰³ænÝ YÿNœ813 dîî½»÷î^iMX“£ÌÎôJ¶ >¾Û¬«K«Ûáû‡ï¾ÿ³Æ4ýFúô×z_ë}­÷€ü;à_Y"á9nsÜæ¸=úðèãù£òGåb¯)m©UR«¤VUTýQõ‹uGï|µ¬†¢æâ)Žk¯Z(ìK¼SµLŸ@£¿iå…¦MõžòGñç•G+V­„ÚBm¡6#À@%%¹€¥^Ó¼Açwò7|Ô¹ê`ãâ|—f\·)v…ßU×Uç}«òv°öŠ‘=殓¬ÿ›Ô7©oR™™ ‹* T¨H‹j>ξªm­Oè[Øæ´ ºh³B7M+¶öpÉZÙV³­f[M¨*TªÊÏøfee 0ÐÞÓÞÓÞS–HxòõÉ×'_¿·çÞž{{räÉ=Âô£Ï ž<·8£ Ö ­…­Žñ?«ŸœX.o×l-ÍܱÅI¡·Â‹Zµ‹Þ ›»6wmî~Rù¤òI…ÑÈ` ’’\ºª•¢’]ç”ü,º57™˜³Êí Q¢T­Uäâû&Hûú6úëíϨ(þS{p]íÂojô g—‘½ ÿ[~¶Kcs»„^KÖ?½qzãôÆÌLEîÁ܃¹i7Òn¤-y¤Õ¨]/Livzõ€CUæè·àsˆƒíŽþ¶—46I}ìs¤I5äÄsrrîÔ¾SûNmÇ Ç Ç Y"á±{Æî»'è· ß‚~ËöÈöÈö`Ÿú^;gsfÑu®ó¨Ù‚Œ•W¿?±[þ_Þañð Õ½êú—§Ýpª8³èáîf&~.` ’²jeÕʪ•䢕yÄ>½à¿äb¹í¤’=ÔÚ×Oìxª¥Ñ¼Õ;CŒæ.{x¤¦Î™1y‹º(›ªµlð¿`[©¯ê@µÞr÷æ`s÷Ð …`ÅîŠi’Û%>!>!>ÁÌÙ½ïü¾óûÎÒâƒÏÚwê,Nð¶Ã„Jý~±·u½¥÷>Í‹ÒêZ?´~hýò;úy=ózæõ¼¿ùþæû›§L+˜V K$<¬Õ°VÃZùéûéûégÊ”9ˆýK’¨¨¨Á$Ñ$Ñ$QÑõÔ?5mý†%– <Ú‡ö‘ÿèW²5{¹G=°^£fÝ­†Ÿ.zK}~óùÍç7æàg!*©5šk4×hJ.Wµé°þÀ™ñòö è‡9g¡VqwÝTG,œcåúLÞîý5{³G7PW²Ï];wíܵ3s~¬ûÛîo»¿MÚù¢Q}õleû¤u×îY­ Ñoöç …63ûEØÖÖ)­&§Žž:zêhÅ› ù_ò¿ä   ˜cþù7d‰„û,볬Ï2ß|ÿñý'-8-8-¸2ïeù“ò'åO”6(mPšÔû}_7;Ù"´íšmw®)¡¯´¶UÝ…ƒöŒ/z¶³8fqÌ‚£1 ì•TðéàÓÁ߸wA÷„c-[y[b+ì›ÎÒ1N 7¨Ž1Øcú›bÖ­êE)N¬³è¿Cÿ-lîg<¸ÑôZöOÛ~pý|µ|.&,ýÛã®dÍ÷´ßÓ~O{æ$”†o<¾ñ¸è&rñ‰µæ'+jô›PÝ÷·v/´_7¶Vù ­îæîæîæ•gVˆzˆzˆz<=õôÔÓSËL–™,3‘%î´¡Ó†NÎ=ôüÑ””””””JQC{‘½È~ðöÁÛo—V™Æ+{ocj±ç€{ˆAEŠ~¿nÛvßöÇeo¥ùªÕ’¤ÕáÄÍ7OÜäh (KÀ@%õ%êKÔ—¨oÜ¥‘Ö,Ñ ¾Oý4õÓÔOÒ* ³k̹…‰5ô•l͇î=}[MõJK/3©wØßÜ}s÷MÞ (#À@¥fðÙà³ÁgÉ%*ÓÇ;Ão¼¨<Ëv¥þ>ーC:áØ1Ó1Ó1óNí;µïÔÎqÈqÈq`®€ìB\B\B\Š>wþÍ,º¾Ï»>O¬>—ÇÐ7uƒßÅöw'­<¡qfÑ[zzÇé§w0+¤_$ ‚AŒwŒwŒ÷¶!Û†lR§e–uZ–,nÚ*´U¨g Ïž5>Nü8ñãÄò[˜Ý‰»w'JÛR½Mãc—¨¤×{ÚûMî8Ô·0ža½EZ}¢S£S£SÙ½¥¨Ôï=¼÷ðÞo,Þ­º<„àöGµF—™î)˽Dö^ö^ö^ Ì2Ê2Ê2bö@ɼ‰}û&¶Nµ:ÕêT+úØ»æÞ”•ºƒ²÷™ÛŒ’ëèW'T«cíCm–MhY»8ç”ûï7¾ß˜™ðÝ®W„+ï‚Þ½ Ú-ìv šã4ÇiŽ+Ù™½YÕfU›Uݲ/d_È¿~ü„·Â[á­< äZȵkRïúí5:tAW}æ¢}ÞÁêºê|huBZ­2dÉ<Â.(=À@¥öiò§ÉŸ&c]jm­µò-rÝ;ÃBžì­ÚrÓÙo(üP( P¸ÖûZïk½Óo¤ßH¿Á|€âËžœ=9{ò”SfL™Qœ£îú Ó\uS’,®m´Þ!¡oúÊÀß;Ìòx¹¬Q˪Åéç¿:ÿÕù¯¤gIÏ’ž1ú?L®+äÆïˆß¿ÃÃÞÃÞþù€æš(Ù™½~Jý”ú);;íì´³SìýØû±÷…%Âa‰!}B:; ôz‡ôé"¹8eøç’þûmX“¥5y±ÅË烴å¿ü~ùýòûE$F$F$:ë:ë:ëÊ w3êfÔÍȧºOuŸê©BªÀó xü&øMð›PüãmïSí÷«¿ùrWD›M¹úÁsl®—zè«Z¯£RhëC‹M‡86ïß¶‘_ñ{ëÕÓ«§WOÁJ°¬벑¤ž¤ž¤~lî±¹Çæ¶µµ•ìÌ^Ë­–[-·MK6-Ù´äÕ¶WÛ^mGˆ#Äe¿Eã—_6~™dkŸjüAç³Å¼­îãªO²mó׺4ïõÒÆ7À?À?ÀŸýP€N?8ýà´ä²”J”¦mÓõ–<º…Ú±„W²¶á‰NøÆrü4¯i^Ó$ÇBü‹øñ/Ï=?öüØêy«ç­ž'K$l­`­`­à=Õ{ª÷Ôäüäüä|f;H“eŸeŸe¿Vq­âZÅï=Þšiñø?³­goî’ã±Ò´–,qo˜úQ5³3ûn.I2PêzÕ"K­Ï÷ög’Ç$IŸÜ>¹}rcdåÁçQŸG}u¦Ë™.gº´·ooßÞ^–óûª)«¦¬šò\ñ¹âsEÑ;Ñ;Ñ»ÒëùýÛ÷oß¿-­'m«mmti×{E·Íu'>Z5FZ s.å\ʹÄ>ø±€ÂIá¤p²ù…æš_\–ji5ïøÎ,ï¾ûžAëßœ‘úØçìµÙk³×gpÄŸÅŸÅŸ_7xÝàuƒÍΛ7;+ý¥ô—Ò_%[26ö2ö2ö:ºýèö£ÛÏ$žI<ÃôII£’F%Z<|ñðÅÃÔ£û•ë*µQÈm¼¼‚ò­ ²•ÓꜪ]£ÖÝõóÇ4ÓhL£˜é1Óc¦3‚òï‹Ý»/v>>>ÝçuŸ×]¦òµ¤î’ºKêFt‹èÑ­àdÁÉ‚“²÷PL}XÉ–Œu3u3u3Î<8óàÌxµxµx5!SÈ2Ù# PZÝ´ºiuu=ÔõP×:>u|êø(ÈM›26e|ÿqüÇñŒTy—Q+£VF­ëu¯×½^w`÷Ýv—enÌ^8{áì…,Y<²È×Ë×Ë×ûÞþøûûã 1k2Ü"ÿàÃ{׸êûŽ×‚4Û4ý‚ÔÀ÷åö—Û_n³~`ÿ?± Ä]mºÚtµ‘\–ÒÒë»Ç!–Å»b=èïòäµkÜ¥-ðåmÈÛ·á]¢($ƙƙƙÿÊþ+Úc´Çh)Ù’qqqñîš»kî®ùÎæÍ;›Â{ÄÙE PŒŒŒÿÎé;§ïœÞ¢e‹–-Z–vÐ[/¬^X½°UV}Xõ!23232S<_<_<Ÿ±¨Ø²\²\²\UUUF<ñlÄ3YfÑ$·In“ÜBBBrss¥^úŠ}žªÝT»©v“ü9FV4ó áz¯dmãÛ}ú5“¬ê6ímÚÛ´™ó€…Àÿkkk(mé°ÕÛÅû°x'õÞŽ¦›&_øMZõn«ÝV»­V–£ùñÕÇW_y&z&z&iii•lÉXÅOÅOÅo밭ö‹iÓ8¦± *¨ ªì/P¨ ¡ ¡ á™Ñ3£gF§]O»žv]œ°8aqB¯-½¶ôÚÒôVÓ[MoI;Æ6 …ÎÖ­;[Ï~8ûá쇞Gi#’k™k™kÉ<ÈŽÀ7ì2ÝeºËTÚâTÛ‰Û&_1` ïëÖ|¹{óÛ·O×í®ê-Y1ÇwŽïßÉÃÈ&·Mn›ÜöÔÓSOO=µqxâðÄaÁÓO<ýO!R쪘bù¯Ç?¡ÿpí'{Û&rãÄsW%ËÜþaû‡í2‡²# Ubßľ‰}¥­þ·¶y’ñVóçûLƒÕ+é^=ÃPKMß®o‡}’V¥'éOÒŸ¤—¯qOWOWOW÷}îûÜ÷y߀¾}dY1žç9ÏsžgXý°úaõóýóýóýÙ³(K¢Y¢Y¢YQ¢:EuZÞiy§å¾÷l®»hœ³ó‚ÛÖZxì VvV¯©Y[²Ú)1)1)1Ì[€,€ü?}øtÿþ;ýwf&d&d&°÷Pz^îz¹ëå.É3r“GOð'¬-•'ʈFÜ»%íZHh*4š23%C à»]|qñÅÅExÍbìmg}²XuÀþî›r¼<ׯcCèYýnSíÖe½½®ž®ž®žÌ¯åoÏßž¿ýñÆÇoœ{~îù¹çe‰„û…÷ ï~uõÕÕWW§;¥;¥;Qa~oOoOoOÉóo«´%¿î“»k9ýÅS³×߬¿¹ÍÌö/•ÎÔ[¨R뜊aí³u7§oÕTaðæÉ›Í§ìýt{JýõögT¾Þ"yÛ e«±=T%+Ÿ:4uhêPf& d€”PÈÊ•!+‹í7×ù¬ÚÚhÏrË#{ËWôÛ&|£Ã¹ ªZ… xµp³«ÿj¡Uäâû&Hþù¹æÔ sÜàò^²‡ùùùÌL@ÉÉûqïǽ§ýQû£öÇ¢àÔlÛž· hS{}-ï rú&¶‚íÆWiÆvi·©8KŠaãÃÆ‡gÈBÜTÜTÜ4Ú2Ú2ÚrͲ5ËÖ,“%¶ ° ° 8½ýôöÓÛ“]“]“]©0ÅÑnS»Mí¾qýcÑuÿÁ;IòpÖ@¿ýë>;¿î[ƒ*í»÷~®Õ|É™€IDATß`Jø:[#Ïå#77iÝêþÅ ‰åçúÓ0Æ%ÕÃC²‡Ò/¤_HgfJ†À?#FþŒ•ûVî[¹¯8AÝáúQmZ-Y´ÛýËÖ+BÚ;ƒ[·X©è•¥ñ—U·î¹Åéù˜'cžŒy’ö0íaÚCƽTü*ü*üúúÔëS¯OmqÞâ¼ÅYÙEÙEÙ¥d‘pëž­{¶îéuÖë¬×ÙD«D«D+ €$©A©™ÇÎÐ?7"mutq]÷Ó_÷J¯÷xµe ÿTZÏ›îÚqjüÀ&›S.~ã*Ôµžk=×zÌL@ÉøÁ"D¢‘N[¶:m‹Ôi®ëÚsXsCÃ%aû?”bÜ{sÕÓã–Z¹4Ç7þÞ(1@;@;@›ñý ö û…ýo#ÞF¼Øe¼Ëx—±F°F°FpÉ"aí:Ûu¶Xy`å•qGâŽÄR„!…2C¸(\.FV‰¬Yåèü£óΟ5bÖˆY#Úwnß¹}çÚÇj«}¬èÙ¥«ª«ª«:tîйCçn¼¶ñÚÆk7ãnÆÝŒ‹Ÿ?=~: Ï$iu›4ÑÛ ÷þViß½÷óÿ=QFµ­Ž­bqB\‹Øƒ‹ïõ­Ó³É‡æËå963Þ¥è7W²‡s›Ïm>·93P2ÀJG]¡®P÷ª «.¬*áó|7ÔÚ¥XSã¹õ“Þf:GÛ,P2ð›[g{Š‘ïòýžu,ë{´µú?á®åÊöGZºÏ¼k†î’qkœ]Æv6¼Hi±ê µ‚’uÁ}¢ûD÷‰¹»swçîfHåHª*¤ÆùÄùÄùð:àuÀK'X'X§„‘°†«†«†ë.å]Ê»”ß¼ x ¸ î‚;e®ØÞì}³÷ÍÞýwößÙ_ï´Þi½Ó ebìì±³ÇÎö»èwÑïbV›¬6Ym ò@òxUïEk‹vUå!"­³¸é<}«Â^Dͳ£wñC\ù¿Ø|ÖÞ‚Û߈¨ÇœsjÌ)f& d€”º|Ÿ|Ÿ|Ÿ‹O/>½øTÓTÓTÓTAŽúüéóV©V©V©²Ì–5Ã× _3®5¹õÐ:-èêé«LQÚP[«V[Ù¾aÃ:†u‚‚‚Aeép·¶·mŸÉÛûqÍC÷)ÅÇë?6®2=6[®à;ûª=•ìáð›Ão¿ÉÌ” 0¹ðâÔ‹S/N¹g»g»gwsïæÞÍýǽ...[ël­³µNø ðAშyå”êêê}±çÅž{v­×µ^×z²Ì+—:.u\êDΈœ9£ ¿ ¿ Ÿ ÿ\¹É¹É¹É;v:ìtøÞÑl¼Óð]íø^'ëjÙL˜u:Z¿å²þQ«Œ›.[elü½í¬]~[ºŽh¸§¶ÎD Eûƒµ¾·?¦GMšš51j"#  ´I…TU[\4yýsÃѶ\?_m ËÀ-æ­Þ"×ð{N>–ìáDÑDÑD3P2ÀÊ»½ïö¾ÛÛg®Ï\Ÿ¹Ç6Û|lóá]‡wÞu´çÑžG{^hz¡é…¦A‚  V(¾ôYé³Òg]=|õðÕÃý„~B?A–Hxîº¹ëæ®{<ûñìdzó7æoÌßH…ËF¨k¨k¨kñGJïmû‘ÿ}p‡îñÅ ýc´¶dAï÷¶3¢®/1u³;¡Ñýâ÷vaÀ€…ÙöÙöÙöŒ5€Ò yäQJ®o¡qKÞ]èÿ'èôýtÁcy€M­wü{m§d— Ë…åLL@ ðd¦g¦g¦ûŸó?çnø¾áû†ï“%žryÊå)—C[†¶ m™û,÷Yî3*ü£Ô.¨]P{Yà²ÀeŋާÎÐì4Wïöß­¦–MÜ[t»ô¯È®­}ÇŽ9Ü^OO}ž¶±ò«âlEøðá}?–Ö­)ZS¾ñ áàó{!?7"ý?¦7›Ñ¹z±ÂãØƒ‹ïõ­û»¶¾\?ÚØwíçÓ¦’=<ôöÐÛCo™™€’!àÿ!G7G7G7x~ðüàùãÒÇ¥K—éÍÓûö9ì ò ò òÊ~•ý*ûþ^I¶I¶I¶†††EW»Ã‰ vXðêÞÃòúÝ:œôtÖÛ­8]¹Â‹¢·ë¨ÕQ«£VÌ?ʰ™Ãf›)y´1¯µ'80ãçF¤-Rf­Ùzèë^57™˜³Ê­èïjÖdXÁôûùì¢ëÙ ™^3•ÉÓÍ}ÏÌ’ÿÐW²uy‘ÙúxŸË\´‹ÞRçΜ¿ ¿ ¿27ÈÂu’ë$×I’Ç™6ªë5¼oÿä TÁãßÐÕ«™ÿÒÙÿÿí}mvô Õ_<5{ýM£ðåižË›§M±^»V}„…v×¶…_SgqÓyúVÿû†½µ‚må-nÒm`£ S%+ÿÎýû;wf& d€øòïäßÉ¿fff8ïþ¼ûóîË ÷ÝÞw{ßí¾×}¯û^O¯•^+½~”ü(ùQrÑuë¹yq³Æ–nzÚ¼õ‡òýJ¶ÓO_e°§ö–zNŠfÒ¶Úéo§¿þdžüìÝwTÙÿ]wÝöqí]±wQTì(¶5ef’IbÅ^°÷Ž{/‹½Wì½÷Þ°¡(vEé’ßìïüüþ²ñ‹ãóqÏÉñ ÌÜyß› Þ—3àË\>~ùøåãæŸ0ö³ú%NÌAiJJ¬W lí–š3i¡…Õ*×»P£úøÛkR¾’§^ÑjÅM-η®ôÙŠ§Íû"þDü f&àËðU$WL®˜\Ñ·¬oYß²îZw­»ÖšHXé©ôTzèp ÃaÇ5þq*ygúéw¦º>=]¶´¯`¡¯ùë„rwk¨ûSë™E[ª@‡=öxh¾ûøîÌY3gÍœeM$ÜpPÃA í<²óÈÎ#!•B*…T²½Šù¹ø¹ø¹|ºCûŸš\­ª­F¿ÿǫ˃µ*¨OŒ]j¥j¸E»E»Eó^ðÙö˜ö˜öXúliPyM“+ƒ3N üqü鯧Ü:å+Eª×Ò6î–qàÑîµÖ'ýÇÝ,úhúhú<ðàÿÀ?yEòŠäLOÀç"àÛ)j*j*êWÛ¯¶_í…NX8!odÞȼ‘_ ׈ªU#j³×f¯Í^oo¾½ùöæ÷[˜ˆŸ#~ŽøùÓÇ;rüÅÕÕgýѯ٫èÞ ÌNK•Y·wÝÞu{y{ø\O<>ñ?níØkÒš7¿ÙSr´îÛ/_s•FÖèQÞ¯ãßÃÞ§þg‹Ýi|\þ÷:àâA—k1=ãÀ%›«F¸äKÍù}LȘ1!>¿ùüæó[’œ$'ÉÌUÀ§‘ì2í2í hÐ* ÕrûåöËíK8”p(áðe‘p…êªW¨¾f隥k–¾®ðºÂë ¦·¦·¦·º¥M¥M¥µaÚ0m˜¥ãqÿÂðêú3úýøUtr+Tº˜¥*Ý\tsÑÍE¼¥¤Þ½A÷ÝdþyR|M³F†ß*(­,÷.:émJOòÊÅ×”éS¿âÒ3ŠOÿT­;³êîZ•#.×»Üÿ>a·Jñ>³þÎ7>¾êÉ¥ÖÜdhá ‡6¼t3èfPÂÙ„³ g™½€±E›¢MÑoª¼©ò¦ÊºEë­[T¹\år•Ë}Ù’±]y»òvå—YZdi‘— _6|ÙÐ4×4×47ãîêÝ«w¯Þm©ÿƒJ¹êŸè÷ß×áÎÖªîô¶£K±,–*Ù8²qdcÞFR#ùpòád‹Ï¯¯_ÖçÌÛôKë Z¼édË<õŠV+nú¸?)·w®c\˜ûð`§F+Û^Øï¸yrçM—+,ïh> 1 1 1·<Ï·Q?tr­¸r>ºN³y^&Ö?´|ã¹±–¾óÛ¾6¸´®Ìµ¹<ò'jn^U¯^¼:¤f\’Æ'Oï³Ýg»Ïöq?ûiÜO֜٥SÒ)éÔáM‡7Þ~,üXø1f>Ø`~ ‘×"¯E^;ÑïD¿ýZ:µtjédÍÂñˆ#ŽxûÖí[·o%º$º$º|n’›$7In’cHŽ!9†˜oßµý¦¨ÊˆuSÿêþÀwWÍd»²å·ä9o^ÏÃk¯9¼†w€Ôx}íõµ××,}þ×m²0øÈôŒ¬~/¯•}OÝn^ÉÚ-j·¨ÝÂäcò1ù|ÙH%ŸI>“|æá臣ŽžÚujש]­9³7ÝÙtgÓ{Kî-¹·ä‡Ë.¸Ì{¾GÀüÐbœcœcœÏ >7øÜàŽw:ÞéxÇš…ãþÿôÿ§ÿ?^½&zMŒ_¿*~Õ§÷~¬ó±ÎÇþãÚß c˜9iÒ_bÝÏí—kïÎ*'þãyÏb.1—hÌaÌaÌÁÌ“ªOª>©ºùçIáá5âvnXeýÀë³ w?ýZ÷€‡|¬…¥óæÝ–w[Þm™¶£f°ûÀî/†\ ¹»4viìÒw³Ë´Ë´«L2=Êô0ÿ©µö­:„(ך×Ê/*8Õ¼¶—ò]Êw)ó@jD Œ5ÐÒ'|å3}ÆNÙIÄkñ¶Ïáëöxy ®jW§¨yõúÕíW·_ÝtÈþ¦þ¦þþÍý›û7_,-–K…Ý »vÿ²3{•CUU9´A½A½Aô¿ ÿýÏ”dJ2%ñ~€Œƒü_$´Jh•ÐêÆ–l\fp™Áe¬‰„ÛýÒî—v¿¬wYï²ÞÅüoË>®ý0ÿ6âÛ4¸¸û>§*Ì+¬˜¢˜¢˜Â¬z§ÆœsjŒ¥Oõš;§­ÙMÜkþZ¾q{Ý^–êž; xð$À8Ñ8Ñ8‘w| Àà«0ö0ö0öxâúÄõ‰ë¬…³ÎZøéEá&¿ôü»ø‘ï÷–Ë3v»su{ Ù¼Úõû×ï_¿?³Àçz9ÿåü—ó-}’ç_è…ÝOõÞ.-vºÁý^7{ucK•Ñ4Õ4Õ45þdüÉøÓ÷>Bç†Î »Ï{Ÿ÷>ïæ›7nÞØšHx²r²r²òââ"yXò°äa¼ËÀzÀ ½8šMŽã6ŽÛ8n£ùpŸ»»ÇWÑW»:çùÛtÇüóGÌLLŸë–î–î–îÓÁ^¹ó÷ôü!nøl²r~YKu(¿§üžò{¢gFÏŒži«ó!¢DÿˆþGmt´‘ÜXn,[ öí;Ú÷®ë]×»®I%’J$•àŸ‹¤+GgGgGgóßñ]½79úWÍŠqN¥ßš×üîé»§ïžfNø2|/ø^ðýt˜WýƸ¹«›Ù^èÛàÞ:ƒW‘rs\ œiéØ í,´³ÐÎÐ¥¡KC—þhs#ú×è_£=ÝçtŸÓ}ÚÆ·ooM$<ÄnˆÝ»›N7n:%ÌH˜‘0ƒw|0H' ÷î'Ü7_Ø-Ö§âÓ¼U2Z ë^áþ¸šZ垥(×£òµ&Ž7Xj™+(÷–|-r6)¾Ã>[Þåý{f-¾c¤úbãên9î÷óÞÅUŽ˜W~Íš5kÖ¬af°Æ¥ KA—‚>à•}צH¿Äu×ô¾²é{~ëXØãðÓã+n¨ÞÂÒñV¼[ñnÅ»¡×B¯…^c†¤ˆu‰u‰u¹(^/ŠÝúvëÛ­¯5‘pïb½‹õ.v寕WnÄm‰Û·… ÀÇ€@:y³ëÍ®7»Ì—q›¹öí[bRƉKG¸vªÆÔЏ8•úÅè6—æ%–3f_Ìʉ1©0€0H'7Ýxtã‘ù¢mûÍ‹OWXš!âÒìþª•Ã~OÓKÃ>îaÕÅÞB{ZV™q¸\¡ž%¶f³Ï×âÄôe£ìš$¼fi1:]Í|ÅwaÍ8ó–®UºVéZÌLiåÝËw/ß½tªäTɩҧ㺢#ê‰ÍgÔ1§ÑÞº4ú­¶~äõÅÕòª¼¤EjÈ™·gÞžyÛ8Â8Â8‚™ðe+'VN¬|Ûé¶Óm§á£‡>ÚšH¸•ØJl%ž,p²ÀÉQ¹¢rEå¢Â~À ìm±·ÅÞÿXFï{boÞ*k2BPÚîí¢‘Ú|Ü7A3rt©Û)ki‰¹É•^K‹Çeä8åµÈ޲¹ò43ï'3@ÚJn“Ü&¹Í|§ùNóRÔÉ^Ó¿Ñ}ÇbîÇ7x6Zçá5ð[…¾õcV Ìù0§½h/Ú‹©êÊÖiÔ§dÍÛÓÿ·mò׋{­np¹dµ]£^vÐîzÉBTê{8ìÕ°WÃ^Enܹ•QNOÉÉÉr=Êõ(×´ÓL`M$ܤS“NM:íQíQíQ}èò¡Ë‡.T€m édJß)}§ô5_~u³»2´FÞŒ‘M(ß6Ï”^u,¿¬kÅ©r3þÀõï´lçI à[9ðÛßüöeA]JVUËRvv«÷}‡T æ¾pyJóÆ(’š ×±º{̆H{E¿²Óî–T3\ìs^Ì; _Òçö¡ÙŸÍþlöçCç‡ÎÍŒÃxÏxÏxïÙ?ÏþyöϼqóÆÍ—sIÎ%9¿ð‰Âµµµ[Gn¹uä»b+F…|€@:c7ÆnŒùbëh£×ч¾m8:~”·—ã³{5øÍñÇ»R¿…N‘+§TÜ—‘àÆ9\—w%ðmKKKîY¿gýžõy•y•y•920í}í}íý»ï¼[±ûnŒ77÷¿áÃÿÆ’æKš/i^äC‘E>|Ù°oeßʾÕúNë;­ïôfñ›Åo›âMñ¦xÊ ##édlí±µÇÖþø¶WÏ›¿m8:üϳ­ªû¸W)‘pê·ÐoʾaUü3rÜhz÷íÅëÈ@ª›ª›ª{÷ï=¾×½^÷zÝˡ1 bÞySäM†ÈF¼4½4½ <x&ðÌê««¯®¾Z>SùLå3}Ù )Ù³dÏ’=WdZ‘iE¦€K—.™ŽšŽšŽRf¤Þé³§Ïž>›2£Š-z´èу¡C†R¤`N¦/ž¾xúbó…ÔQî—;WñmÃщ‡ïª¹úã^ q9±ÑÁ'õ[èühuÞŠÆŒ×+Óvª]~`Y|D|D|Ä­#·ŽÜ:25vjìÔØ ã+Œ¯0þk½j;µÚn}íõµ××ö/è_Пk|8oû¾íû¶ïæŸ7ÿ¼ùçê^Õ½ª{}Ù\Ê_=õüÕÿiûOÛÚúíöÛí·ÛTÍTÍT ×I.“\&ñ[¾`NVÞ\ysåM󥮡ΧjT+ž"Ò{ÕqÅòЦþg5CÆÆ”~’‘`ûâM®<ËR#€ïWÐØ ±Ac¯î½º÷êÞûwìß±ÿÅ?ŠžøóÄŸG6Ùdd·Ün¹ÝrOm<µñÔÆ+T+T+T‡zêu¨×Ý•wWÞ]™´=i{Òv* KÞ{¿÷~ï½#nGÜŽ¸šškþ“Á¬~³úÍê÷D÷D÷DgìjìjìJ…ëëëf>[fL™1eÆꃴB ÒÉaûÃö‡íͼzÞYÖþyF €+În¨*ð*UW7óy_sd±K•Ææ3rœ?¦èã\û €H½Ð¡B?ì÷Üï¹ßS1[1[1ÛšHxRÝIu'ÕõÝé»Ówg²”,%KTøGsqÍÅ5טÏÇÎ;S¤`NîÞ¸{ãî ó¯6+çí/ß0#D¤íÛ/v®0á?–k-|¿û*ßæ5ß6ÝÕ§|‰f©ÿ©ôuÏ}¿UÍ“æ=t8åpÊá3€Ô‹¸q9âò±lDz˦s×¹ëÜ­‰„ÝN»v;}çÜswÎ%†'†'†SaÛÖ-¬[X·0ó™`,g,g,G}V€@:y?ÿýü÷óͼ\íäWLÊqiöÕúÅÙª!н…ö´\?sB¹F=KlÍfŸ¯UîYŠr=ª”l6¯P¾”ï±ë_¡džÇ3vkxe{bæÇ5Ào€ß?f&ÖˆnÝ:ºõû3ögìÛUkW­]5k"áAɃ’%ߘcþù šM‚† Û†øIñ“âÿ㹿':Ot¦>H[À $7In’ÜÄ|Ù+oÏ‚]s>Ì@qiÞ+Ýjä*ë^Û)ªnóXêvõ™ù6§Ã3îYlëïöyÍ{¾½Ïö>Ûû03H[±ëc×Ç®¿ôë¥_/ýÚ}y÷åÝ—[ ÷ŒîÝ3úJ¾+ù®ä‹sss¥Âß#¯Z^µ¼þãÞŸuÖýYÔi‹¤+å¯Ê_•¿š/~¹{£RÄŒš¦ôJÿûäzeÿª°Ùéh¥ù®öÎ¥ÉS(Ñœ½Kµ¯v6ßu¯áoKM?ÊÛËñYF¾tsiÀé’¥Í{øäÆ“On0'øÚâ7ÅoŠßäµÜk¹×òþ'úŸèšH¸£gGÏŽžçZŸk}®uŒcŒcŒ#Îøúç~óÑLΜœ993õAÚ"éjm¡µ…Ö2_üêÞw£®r•Œšš‡Á–¾þñßf´èwR×kkUÊy'wñžæ5÷¹ìsÙçròñäãÉÇ™™¤§Ä.‰]»Ü¼x;pÄ’KF,±&n™£eŽ–9NÈ'ärä©ÈS‘§¨p릉M›šÚȃ#Ž>>I£’F%b®ž’$=Hzp/ø^ð½à •&TšPÉšHXpÇCYe9”%Ìf £ÀßÌíi·§Ýžf>FÞó¼çyÏ£>ø€@º222²´X9Îãv=Ç…·iõªQŒÝQúæ—-sæ8ÌñÖ˜[cnIMMeö®¿5ýbüÅøË£­¶>Ú:}ÔôQÓGY 7ÎÑ8Gã»î¸{`HbHbH"NÃc‡Ç5‘Äʼn‹S| Àà˜szÎé9§ÍÂÚZt½Bo‚[ë_'>¾Ys[Ž4Õ·yßæ}›_+r­Èµ"ñÅâ‹Åc&žŒŒŒž^üyñùæO˜?!÷Ÿ¹ÿÌýç—ÙkyÖò¬å¹eÑ–E[ï Þ¼‡ §­¤ÓI§“þã7Þ/¼ð’úàë!ßÀ««¯®¾ºj¾–çNö9=Ý_ù^¨•™ך׮wÖM­ôÏýí&w“»ÉWW^]yueŸÁ}÷lM$Ü5gל]s^qaÄ…±¿Åþûs€t5ß4ß4ÿ¥üR~)/u^ê¼ÔÙ®];»v_vf¯S)¦R̺¡ë†®ú¦è›¢oŠš¢MѦhÊüeî-¼·ðÞBó:_® ×ꃯ‡|3ÊwÊwÊwæ‹bÝÛo¬]¹!î—½º}ÃkýQ°B±ˆÜÌkë{É÷’ï¥G!áJ•„+·2ÝÊt+ÓÐC{ íaM$Üfq›ÅmŸšyjæ©™Q;¢vDí`ž®‚MÁ¦à×õ^×{]oÍÑ5G׭ЭB· ݾìÌ^ÜXÜXܸüå,ÿ# Y@³€f¦¦&Îï©2~Áøã˜W5Þ?Þ?ÞŸúàë!ßÌ­â·Šß*þ×ï-P*çJwÕýC5oè~îk—|«'TÊe^ÕºÏë>¯ûÜd4MÆOKRë¤ÖI­}Šùó)66ÏØõø”±©±©±é\ÛG-µxÔ¼J—Î]:wés_0øÆ|.û\ö¹li1qäÕKE«o$ÜMÍkóçO”li^C±²XY¬œ¶£f\o\o\ÿtÆÓOgÌY5gÕœUÖ,×UoT½QÛ o/¼½ð»àwÁï‚y_ 5âÄ81N4ŸQKG.¹t$õ€Ï¦ Ó†iŒ90æÀå=å=å=kÎïîåÝË»—÷Íá›Ã7Gr™ä2Ée~œJN ˜0-À¼&±obßľa¦ák#B_ç¾Î}Í—É*Æ8ÿRð×Iÿ{ðG­ìD¼–^{OÜYÕþ…¥å×Û_l±ý«a{S{Sûw_Ü}qwшE#(Ô¼PóBÍ¿lɸªUÿªþso̽1wР!ACRsójüh.û\ö¹ìc>y8äáêÖ‹´‹´‹´;öèØ£côçôçô笉„GmµyÔæ;Eî¹S$ñlâÙij¶W1£ŸÑÏèg~ìí{·ïݾ73 éƒda•Ã*‡U¶´\¨í;~k™*½æ¯nK¯6¯ÑÀRÝv&ìLXûží{¶ïiM$<ðÉÀ'Ÿ\÷¿îÝ?!OBž„<ß{}žy?ó~æm~¤gÂÏ„Ÿ gþ }€ äôÑÓGOµ´DØåíš°Jm}S^'\ñÉ]S*U¢Z›|}ÍkUí÷j¿Wû=éIÒ“¤'h€&£Éää䱱寖[:4shæÐìË–Œ >/ø¼àóEUU]TõÅÎ;_ì4µ6µ6µæ}ô#H¨›P7¡®ù¬56jlõ€ô”r[ãKg/½tÖõŠë×+ÖDÂ=®õ¸ÖãÚåN—;]îW"®D\‰ï«ó>Ìû0ïƒùqE{F{F{2[>€@†3áÏ NøÓÒ²`q—G•Ò?rôëÞúþšwÛkû©`©Jùóæû^Füýïïÿûv—í.Û]ê=¬÷°ÞCkŽçèçèçèŸvzÚéi'ãrãrãrÞS¶ç†|C¾!›¾ÏŸ >¨|[ñþñþñþ×Õ×Õ×Õ^ x1à…5göC: é0äì’³KÎ.‰ŠŠÊ ‡=Í4Í4-W½\õrÕû¸ÿú ú ú Ì ¤'`á$}Húô¡i–¦Yšf±¯ß]®J£.ú­vVÍËu\Zu/:ÞRe.Ì»0ï¼ï}„Ö ­Zg_}öø»ìßeÿ.kÍÂñ”ªSªN©úàÆƒn$/N^œ¼˜wÙ÷nÇ Aæc46ilÒXêMâ¢ÄE‰‹¼çxÏñž3rÿÈý#÷[sf7ø| >ǧŸ~|zd¯È^‘½2Â1¾Ìú2ëˬæ½=öøØãc™HOÀ ƒŠØ±-b[¡\…rÊeiù¯Ûí +%üÑïx•·›ã-‡ß/ Y¼E¶ç Ïž7lv>(QüÈ‚# Ž,ÐÚkíµöÖ,¹<æò˜ËwÃï†ß OR'©“Լ㾉~‰~‰~æc:L3L3LC}à{‘œ99sræû3îϸ?cbƒ‰ &6°æÌ® Q…¨BV;Xí`µ°õaëÃÖ§ÿ-9°äÀ’æ}‹´‹´‹´cÄ‘ž€@†|0ø`ðÁO/ùéÏMSV˜ÔñÁ²Zm/ú>ú\jÏ $Û˜ûwKX6yÙäe“´¹u>ê|ÔùSçN;u®MH›6!Ö,Í;4ïм7½ozßôN8šp4á(フéÎÔ;SïL5Á[³nͺ5‹úÀ÷ËXÎXÎXîqÃÇ 7œ1iƤ“¬9³;Ÿs>ç|n×¢]‹v- ñññøŠ]4š‹Î+:¯è¼û ôUú*}Y¤?`ðnÜ(¸QÞåy—ç]ni™¯ÚYõóÂÂè¡×.טfÑo§·+‡VÜýéÅÍÏW<_ñœ’"¶hlÑØ¢v\ØqaGמ]{víiÍÂq»>v}ì®öºÚëj¯8¿8¿8?*œ¸µqkãÖÆ|¼¢¢¢¨Ø”¬¦¬¦¬Ïw>ßù|ç‚ &,˜gbž‰y&~Ù™½¦¦¦¦¦Æs¯ç^ϽÁÎÁÎÁÎiÕÍÀèÀèÀhó={`ìL€o€|7ÂK„—/áTß©¾SýO/ðuì½Ì§b•Iu´ªUôû }GýyÉ£ú1GµV,RêÓǸ7ÓÞL{YÛù¿ˆ¯_-¾Ú5Í5Í5Mßå}—÷]nM$ÜùEç_œ?vþØùc1gbÎÄœ¡Âé)¹arÃ䆿ãÒ·sßÎ};Sø!¬1­1­yyïå½—÷–ÕZVkY­b—‹].vùËÎìU\TqÑÚ©k§®úzÓëM¯7™BM¡¦ÐÏîTõ5Õ×T7ß~˜&‡É ÒÿHß™Ä5‰k× óæ?ÌÿÓ‹z%TY•7°ï¬=§«ÌËÈ¡ïØG7c Rç1J§êŠ–ÛsnϹ=‡™ðeŒ Æã­·vÜÚ1l갩æZ ·n׺]ëv'/œ¼pòBTÛ¨¶Qm©ð×ã;Ôw¨ïPóQ¸VùZåk•©ü ÂLa¦°×‡^z}h­çZϵž/U¼TñÒ—Ù‹-*¶¨Ø¢ey–åY–çå¹—ç^ž3­2­2­útʯ*¿ªüª·ÓpCà 708øV€ÀwìÐåC—¥êšÒÕjÔÈwÙuóæa•—f„Ð×­Ì• 5ò«]†ß.5>5ýoQ¤E‘EB³†f Íʸ§­¤©IS“¦úœó9çsn\ÅqÇU´&–æKó¥ù‡§ž~xzøÎðá;©pZq÷u÷u÷5¯y|™ø2ñe¨àcÁÚ`m°ÖÓÛÓÛÓ»æøšãkŽÿ²3{1˜G\Ð~AûíŸ/¾üùrSSS–”½¼]ývõÛÕæ?µóÁÎ;0 øV€Àw/øtðéàÓmbÛ͉MýržÂaºä ÁyõsèùÕCß~öÖªÚ±Ð2uÅÜå§Ô;[ vêû¹ßy¿ó~gÓÓÓÆ:}$_L¾˜|ñႇ .˜:cꌩ3¬‰„›Žm:¶éؽYöfÙ›åÃÑG?¥ÂŸËØÚØÚØÚ¼¶]+w­Ü•k©²!dCȆ]ûwíßµß9Ì9Ì9ÌšóûŒ3:Ìè0÷éܧsŸšÿmH½z!õ¨9¾``S®äº’ëJ®bŠ=(öàsò*_iâPpƒüȽ\™­=On+d¯úÜ wX­ÓÕ†t¸±ô\…øÆÙ\ïž7_{9O}nO&š&š&š"ÎEœ‹8ǘfÆSÆSÆSÏ <+ð¬ÀÜus×Í]—£eŽ–9Z~Ù’qÝRuKÕ-µ­î¶ºÛê¾÷nÜ»qTøÓž~RøIaóJ^˜~aú…éÔðeÂv‡íÛ}PsPsP£.¬.¬.œÃjöçìÏÙŸKJLJLJ¤ÂøV€€ 2Ž4Ž4Ž<ÕâT‹S-ÊU*W©\¥ÞØÀ±cß.{»ìí2Fð;0Ð4Ð4п­[ÿ¶‹-´xPáC…>ôe£_er•ÉU&o¨°¡Â† o’Þ$½I2¥4˜L&“iV¶YÙfe3¯[löØì±Ù© ­D‹9ìøÆão4˜ &ƒÉšßîFÎ9kä,ïáÞý‡'ÎMœ›8— #}€Âýc÷Ý?Öߥ¿K—Œ÷–UvVÙY[o¼upÔø¨ñQã£ïÞcÓcÓãÀ-[¬JX•°*¡ì­²·ÊÞú²RjU©U¥V­¸³âΊ;¯j¼ªñª†é‚é‚éÂWÕ ¦ ¦ æõi³¯Í¾6û˜t€¯-:2:2:òì¾³ûÎîë°ºÃê«­ù pÀ‘G¹^ízµëÕâÆ?ŒH…?û®§Ÿ>þ÷¶Û½Ç÷ß{¼ñãÆ?¨ÌÇ€Àêú„ë®OÛll³±ÍòÉ7&ߘ¯÷ „FB#ÏÏÏ73ÞÌx3ƒúÿ8Þþúö×·¿nj°©Á¦ÕÖU[WmÝ—Í¢ (0À£†G /J¿(ý¢´©©©©©©mWÏo¬ßX¿±æÕ8µòÔÊS+™]€ôW)®R\¥ê¯«¿®þÚúß]W»®v]}Éó’ç%ÏØg±ÏbŸQaKž>yúäé“ÿ¨a7×n®Ý’ç$ÏIžC•Rü¿öšöšö>òpÈÃ!W\}põü?æÿ1ÿþ¹úçêŸKÿLÿLÿ¬i˦-›¶lT¨Q¡F…T“T“T“:.踠ã‚q™Æe—i½z½z½úò¾Ëû.ï Ê”#(E…¹÷ÃÞ{?lGÝuwÔuªìTÙ©²5 dz¥ÙÒléÉ­'·žÜ2Ž5Ž5޵¥Z-L^˜¼0Ùü¨£öGíÚÏ\¤¿°‚aà šŸ›&\Ÿp}ÂõAYe”Åš3{{§öNíÎÜ?sÿÌýè•Ñ+£ùOÿzžõyÖçY-Õ­KÝ.u»ÔMΔœ)™ô“øÖBW†® ]¹/t_è¾Ð惛n>Øš…ãÉ%&—˜\âAµÕTK˜<0yàwY”¦¦ùväÛ‘oÇÇG§ Õ„jB™3€ov‚Êr Ëÿˆx_×]ÿuý”ïI¼’x%ñÊwjÜ©1êÆ¨£nXsf×/Ò/Ò/:vòØÉc'#sFæŒÌù#×ß/Ô/Ô/ÔR­:dî¹Cæ$×$×$×¹JÀ@†1:btÄè£v<ÚQ(”Z³pt8\—Ãeë{Xù~åû•ï¼—zKê-©·„±|+g&Ÿ™|f²ùyðy‰ç%ž—È= >|&øÌ–ƒ[n9XË·–o-ß/;³çz˜ëa®‡óÛÍo7¿Ýóÿ=ÿßóÿƒÁÆàïk¼‚7n`é›Ìh2£ÉŒØÕ±«cWÛêŒ%~hÉAÉAÉAÊ=*÷¨Ü´EÓM[dM$ܤj“ªMªî©¸§âžŠ   ©ïIpLpLpŒù6·WÝ^u{UF ð­´;ÖîX»cæg(ãã㇌Ùç¿øýÃï»çîž»{ncçÆÎ­ú/_Ó Ó Ó <y<ò0f6f6fÎø£öî» ï.äöÉí“ÛÇüˆ„4i³.f]Ì:Û›±ÀþƇƇƇÏ<Ÿy>óœ·aÞ†yr^Ïy=çõ/[2®}³öÍÚ7·¶ÞÚzkëwÙße—ÝÒ~·–ÙZfkó-¼‹zõ.Šq¤¿Ø³±gcÏþG :zúè飿¯c Ïž-<ۡ⇊*.tº]¬‰„'ü<áç ?ß»wïÞ½{Iw’î$ÝɘGR?¤~Hýo ¼-ðÖü(ê6«Û¬n³èEÑ‹¢ÙÒ¼%ðãnr7¹ûûùûùû-鳤ϒ>EK-Y´ä—-Û—¶/m_z}ƒõ Ö7x3åÍ”7SLq¦8S\m÷ÚîµÝ?þN‡L™XÃ|3—Ú\js©ù¹ìѶGÛmûÞ.òZäµÈk'úèw¢_K§–N-¬‰„G 1pÄÀÛ·nߺ}+Ñ%Ñ%Ñ%ãé‡M6}ØT4¬hXÑ0óž;Îuœë87jtÔè¨Ñ¶1oùå Àç 0˜½½½W¿[ýnõ»òÕËW/_ýË–Œ‹?-þ´øSó¯o,¿±üÆòð­¸Ú¹Ú¹ÚýÇÍŸ³³³ÚÞñÆ8Ç8Ç8Ÿ|nð¹Áït¼ÓñŽ5‘pþý=¼Ü½Ü½ÜãWůŠ_õm.,SX¦°L%ß–|[ò?®®z¥ê•ªW"õ‘úHý÷>ŽÀÒÌÛ1oǼ³¹Ìæ2›ËTOªžT=Éš…ã©Ã¦›:Ìo¥ßJ¿•&{“½Éž ÒGü™ø3ñgþãÖÇöì'ü@磸qâ\q¸âpÅ¡—]/»^v֜ٻì>°ûÀ‹!C.†Ä.]»4ý(\ —Â¥r÷ÊÝ+wϼ‡£*FUŒŠ(Q$¢È÷;jÀ¾¢÷~ïýÞûí,°³ÀÎ Æ7ß`¼5 dz³³Oœž8=q2v4v4v¤ÂÖx9ç圗sÆM7uÜTÓ>Ó>Ó>j)¼Þx½ñzc~&º÷îÞ»{ï~äÊ$´Jh•ÐêÆ–l\fp™Áe¬9³·û¥Ý/í~9“ëL®3¹¢Åh1ZLŸ£ˆ˜17bn录÷VÞkÞ«²¹Êæ*›+ìA؃°ßãHW¡I¡I¡Iû/ÿb3©™ÔL²fáxR®I¹&åò]â»ÄwI²"Y‘¬ Â©ñÊðÊðÊðq%Ýö»íwÛoccC}`€Ó§ÿñLܤI’PŸ%Æ%Æ%ÆÝyxçá‡nnnÖœÙu-u-u-† ?q<âxÄñ¯×óÈÓ‘§#OW›PmBµ æ=)Q²DÉ%C§†N ú}0€oæÐŒC3ÍÈ‘¦Ü–¸-q[rgûíw¶'''Sgs–ª7Ü{¸÷poS-S-S-ªàÇ”8*qTâ(óOÈËF,±Œú¤F²!Ùlð=ï{Þ÷ü¤N“:MêdÍ™]ÑAÑAÑaÿŒý3öÏõõõOÛÞFùGùGù×r®å\ËÙ|ïEJ)]¤ô‡ÒJ(ý½ÔŸÀ7#þ$þ$þôñ2kASASAS´c´c´ãÕÕU»í:´ë`ÍÂñ {ƒî ºwcÄ7F$4OhžÐœÊßß|óýÍ–*6øÅàƒ____Q+?ïªÞU½«š6Þ~}ûõí×ÔçË{{{ám¾´úâè‹£/ަf ñ»âwÅïòÚïµßkÿÀþý­zâ`ÇÑGw}®þ¹úçêÇTŒ©SñÇ‹GÏ={ôÌRezûööííkÌcÌcÌü`Û’Þ&½Mzûÿ!æTÿSýOQŸ¯î¸é¸éxÀƒ€V”\QrEÉ’ËK./¹üËÎìån•»UîÖê-«·¬Þ¸+pWà.“¿Éß”ªÛGÇFÇFÇF7«Ü¬r³Ê–¶ÿv×Û]oweÌBøZ>jù¨å#óåTS[S[SÛ/Ûfb¯Ä^‰½n'ßN¾<â̈3#ÎX ·hÐ"à„ã ÇŽ‘û"÷Eî³íyòêÉ«'¯,UÃõ„ë ×ÉK“—&/eö°U÷î;Üw0ÿ ôZáµÂkõùâMñ¦ø7žo<ßx®Ÿ¸~âú‰öÓí§ÛOÿ²3{‘EN9±¤ô’ÒKJûó?æÌ4Ö4Ö4ÖÒÎãüâüâü”••-m3(OPž  ÷¤€¤«˜î1Ýcº›/¡Îé3§Ïœ>i»¯¤gIÏ’žÝÏ|?óýÌôôôÖDÂÂ/Â/Â/ ‹‹‹°½ÑyöôÙÓgO-U ‹G.ÉÿKþ_òÿ˜ÉlÏ„6NØhþé¿9~süfê“q¼«ò®Ê»*[—n]ºuiû:öuì¿ìÌž³kή9»Îk;¯í¼¶ÏÆ?ÿl¼ÑÛèmôþx_ñ'âOÄŸì%{Éâ^^÷{Ýïu¿ŒS`éêœ÷9ïsÿqóç§ýžö{úÕOÿ0þñèô£ÓNO_3}Íô5ÖDÂüù7òß-ï–wË!ïCÞ‡¼·1ò»ìwÙï²¥£îоCû퓆& MÊ|`Rntoþ‰×}U÷UÝWQŸŒïÃÀ? ÜÓkO¯=½šÌm2·É\kÎïÓ”Ó”Ó”“&?LN~žü<ùyÂÌ„™ 3uËuËuoIýêÈ«#¯Žd„jHWzwêÝ©·ù²©q•q•ñ,²ÃáÆðçŽÏŸ;Îß4ÓüM¹çnœ»ñ—-×^kx­á[†m¶eXðÚàµÁk¿ß‘òßè¿Ñ£¥#m›¿mþ¶ù¯'^O¼Î¬ð½{ü(øQ°ùgÝ¥ß.ývé7êó= ïÞ'¼Ï¡ðCá‡ÂEOÑSô´&>.|\¸·‹·‹·K‹¤I-’,}çËÈ—‘/#¿í±H'qóãæÇÍ7_*¢œ¢œ¢Ì@]hZhZø²ÛËn/»-íº´ëÒ®vóíæÛÍÿ²%ãJ*]¨tannîÍÿÞüïÍÿLQ¦(SÔ÷2jƒ ¶ø¤ä‹-.¶¸˜˜/1_b>f8€ï×ôé!ÓCÌ?åb7ÄnˆÝ@}lCTѨ¢QEO:žt<éØjT«Q­FY WíRµKÕ.–þÖ¿„ ÿßêH €¤“+³®Ìº2Ë|‘ôÁ£<ÊÐ]gzgz÷Z|-¾×<^óxÍã K*,©°äË–Œ‹{÷*îµìͲ7ËÞT ¨PÍ´Í´Í´-# °Z`µÀj–ŽHî&w“»%èô zæ9€ï‹1ÎgŒ3ÿdkW£]v5¨m‹™3+fÖy‡óç:ÿÜùçÎ?çHS~ýû5Nÿã"Nzíﵿ×~óåÑäeÉË’—}Gô6ämÈÛÏ?=ÿôüÓ±•c+ÇV_¶@œwvÞÙyg/¬½°öÂÚ~9ürøå0å7å7åÏhÇûúåë—¯_Z: !Rˆ"ã'ÆOŒŸÈlð½xÞáy‡çÌ?ÓÎT=SõLUêó£‰Û·7nï•×W^_yÝ[Ù[Ù[i} üÌðÌðÌžGA à«Kš04a¨ù’è¿1~cüléHC”!ÊåÎèÑ;£z7ônèmÍ’ñÌF3Ílôxëã­·f„c š4-hš¥>+F(F(FÄ­‹[·Ž™ ã›6?l~˜ù§YtëèÖÑ­©âvÆíŒÛy~Îù9ççt›Úmj·©Ÿ{6o›¿mþ¶éúŸº€|u7’o$ßH6_õÉä“ÉÇÆW)Ã:„uëp`ùå–«~Rý¤úÉšHØý'÷ŸÜºŸp?á~Br±äbÉžÕq.\ØR?›7 n»?vì~æ?€Œ,÷žÜ{rïùøL7E7E7…ÊØ¸=¦=¦=±×b¯Å^ lØ0°áÕ¿®þuõ¯uu×Õ]W·ÿÙþgûŸuØà°ÁaƒõW'^O¼žx==ŽÀW7øÐàCƒ™/‰&i’4Iš­‘#+FV<},úX´þƒþƒþƒ5ËÊ£Æ7jÜŸïü|ççÄc‰Ç¥ç±¼Ûøn㻹{äî‘»‡yßÊ å†rÌ¡˜C1‡xȘÖ÷Yßg}Ÿ–Ćņņ]z|éñ¥Ç®®®Ö,O÷XÛcmµ—ÿ¾ü÷å¿ã Ĉ+ð5úüaú‡é¦ZtjÑÿx>¢c„c„cDÔ?QÿDýÃøþõÔôÔô4Î'Î'ÎçM™7eÞ”ñòñòñòÙøtãÓO‡4ÒhH£š¦š¦š¦ôŒuËF—.íºÒu¥ëÊå«—¯^¾ú|Âù„ó þûý÷ûï¾})ú’ÉÑähr̘E%ð4zÐèAæK« §N%œ¢>©ÿ6þmüÛëÝ®w»Þmàïø»5KÛšwhÞ¡ùÙ1gÇœý,úYô³´êgh@h@h@É %'”œ`¾_‡*UªDöìÙ—1€ÍJ(1µÝÔvSÛ‰ab˜–#ÝÉåÆrãgœQðxH<$>xüàñƒÇ¡B/„^Hþ-ù·äß¾÷:ø*’{$÷HþçÂö©Ó§NŸ:ÔÇz‰«W%®òÞä½É{ÓÈÇ#|lÍ‚¸ÁÓàið<ÞçxŸã}"ÛG¶loMß«‡W¯^®o¹¾åúšï«RûJí+µ¨Q+¢ã?G¥£ÒQù5bݺSêN©;exõáÕ‡W÷¬ïYß³þu7ÖÝXÔ)¨SP§øÑñ£ãG›BM¡¦Ð¡ÎÀ¾ŠÙdÝ|‰öꨫ£®Ž¢>_Cò¯É¿&ÿzíýµ÷×Nì>±ûÄîÖ,¦«Î¨Î¨ÎÌ}0÷ÁÜa‹Â…-úÜþD 1´²ª²ª²ê?n°9¦ì˜²cÂ"Ã"Ã";ø8;:;:;¦þLT¢G‰%ztîÜ9xñµÅ×_;›ål–³Yü–û-÷[5+jVÔ,ã}ã}ã}jû1`_ŤÀI“Ísããã©Oú0V6V6V~lxlxl˜±eÆ–[¬‰„:/t^¸kØ®a»†…L ™255}ˆÜ¹9rsµ‚Õ V+ø‹ûsJÌ)1'tCè†Ð Œض·7ÞÞx;åó_pœçÉÑ“£'Gïÿeÿ/û¹?øþàûƒ?ÔùPçC¤¶Im“ÚR±/C GGG˜G};'vN¤>ߨï¦ßM¿??ûüìó³ 6-Ø´`SžCyå9ôe‘pÍ¢5‹Ö,ê9ßs¾çüàªÁUƒ«ZÚmÔµ¨kQ×j>®ù¸æܪºÈü"ó‹ÌÿÐäC“M"¬A =Ùýd÷“Ýæ!ßy¯ó^罨O†³Þ´Þ´þåë—¯_¾^ÖvYÛem‹%K(–ðe‘pÅ®»V캶ÛÚnk»½þçõ?¯ÿ1}0}0}HÙU´_´_´_½yõæÕ›gþ³ù§äŸ’Êûûïï¿çfž|!`ilvîÙ¹gç6÷b.Ç\޹L}¾á¦pSøë˯/¿¾¼öêÚ«k¯VŒ«W1îË"áb‹u.ÖyiøÒð¥á/÷¼ÜórOÌ´˜i1Óœk8×p®aþý¹úæê›«ï»¶ïÚ¾ãæŸ|6`i§¡©¡©¡y¤×zdë‘­GRžï]p§àNÁ<Ã<Ã<Ãj§æž/‹„óäÏ“?OþÙþ³ýgû;ýãôÓ?–¾óíí··ßÞ¦ò¤0€4ó"달/²šÇx'’›úÚ }!ûBöíº»ëî®»Š7*Þ¨xޝ ¨vPí ÚT€Ô fþIø'áŸÿxvlTç¨ÎQ©Ï ìdØÉ°“ûìw°ŸZ¥V©Ui< xðˆ ðiÀÒÂYÓYÓÙE )PäãÐNÚ)í”vRžYäÄȉ‘Ÿ=~öøÙ•[TnQÙš˜zðiÀÒÀ«ü¯ò¿Êo×^~xùáåÔçÇ”øWâ_‰½s{çöÎíN£;î4ÚÙug×]GµÕrTËškv®Ù9õѯÝu»ëvש*ŸF ¬X¹b劕æ¡]øÁðƒá©-1f7f7fÐEè"tOBž„< 9x<ðxàüºóëÎ¯ÛæM›7mÞäË–?,mŸIŸ¤×Çëãõ±úX}¬>J¥ÒGè#ôúP}¨>T¢чèƒõÁú`}>H¤Ôêõú}€þ…þ…þ…þ¹þ¹þ¹þ‰þ‰þ‰þ‘þ‘þ‘ÞWï«÷ÕßÓßÓßÓßÑßÑßÑßÖßÖßÖßÐßÐßÐ{é½ô^ú+ú+ú+úKúKúKúóúóúóú³ú³ú³úSúSúSúúúú£ú£ú£úÃúÃúÃúƒúƒúƒú}ú}ú}ú=ú=ú=úúúúíúíúíú-ú-ú-úÍúÍúÍú ú ú úuúuúuúÕúÕúÕú•ú•ú•úeúeúeú%ú%ú%z½‡ÞC¿P¿P¿P?O?O?O?G?G?G?S?S?S?]?]?]?E?E?E?I?I?I?A?A?A?N?N?N?Z?Z?Z?J?J?J?\?\?\?T?T?T?H?H?H?@?@?@ßWßWßWß[ß[ß[ßCßCßCß]ß]ß]ßUßUßUßIßIßIßAßAßAï¢wÑ»èÛèÛèÛè[ê[ê[¦L4½¬—õ²^£×è5zA/è½J¯Ò«ôÍõÍõÍõÍôÍôÍôõõõÎzg½³ÞIï¤wÒ×Ó×Ó×Ó×Ö×Ö×Ö×Ô×Ô×ÔW×W×W×;èôz{½½Þ^_I_I_I_^_^_^_V_V_V_J_J_J_B_B_Bo§·ÓÛé‹è‹è‹è ê ê êóëóëóëóèóèóèsésésé³ë³ë³ë³é³é³éÿÐÿ¡ÿCÿ›þ7ýoú_ô¿èÑgÑgÑgÑgÒgÒgÒuFQ—¤KÒ%éâuñºx]¬.V«‹ÒEé¢tº]„.Tª Õ…èBt!º`]°.X¤ Òéuº@]€.@ {¡{¡{¡{®{®{®{¢{¢{¢{¤{¤{¤óÕùê|u÷t÷t÷twtwtwt·u·u·u7t7t7t^:/—îŠîŠîŠî’î’î’î¼î¼î¼î¬î¬î¬î”î”î”î„î„î„î¨î¨î¨î°î°î°î€î€î€nŸnŸnŸn·n·n·n§n§n§n›n›n›n‹n‹n‹n“n“n“nƒnƒnƒn­n­n­nµnµnµn…n…n…n™n™n™n±n±n±ÎCç¡óÐ-Ð-Ð-ÐÍÓÍÓÍÓÍÖÍÖÍÖÍÔÍÔÍÔMÓMÓMÓMÑMÑMѹëÜuîº º º º±º±º±ºÑºÑºÑº‘º‘º‘ºáºáºáº¡º¡º¡ºAºAºAºººº¾º¾º¾ºÞºÞºÞººººîºîºîº.º.º.ºNºNºNºöºöºö:‹ÎE×Z×Z×Z×R×R×R§×éuz¬“u²NÒI:I'è Sê”:¥®¹®¹®¹®©®©®©®±®±®±®¡®¡®¡ÎIç¤sÒÕÕÕÕÕÕÕÖÕÖÕÖ9êuŽºêºêºêºªºªºª:{½Î^WQWQWQW^W^W^WFWFWFWJWJWJW\W\W\g§³ÓÙé ë ë ë ê ê êòéòéòéòèòèòèrêrêrê²ë²ë²ëþ§ûŸîº?tèþÐýªûU÷«îÝ/º_t?é~Òý¤Ë¤Ë¤Ë$'ËÉr²œ('ʉrœ'ÇÉ1rŒ#GÊ‘r¤.‡ËáòùƒüA~/¿—ßËoå·ò[ùüF~#¿’_ɯä—òKù¥ì'ûÉ~ò3ù™üL~,?–Ëå‡òCù¾|_¾/ûÈ>²ì-{ËÞò-ù–|K¾._—¯Ë×äkò5ù²|Y¾,_”/Êåsò9ùœ|F>#Ÿ‘OÊ'å“òqù¸|\>"‘ȇäCò!y¿¼_Þ/ï•÷Ê{å]ò.y—¼CÞ!ï·Ê[å­²§ì){ÊåòFy½¼^^/¯‘×ÈkäUò*y•¼\^./——ÊKå¥ò"y‘¼HþGþGþGž/Ï—çËså¹ò\y–’tGº#Ý‘nI·¤[Ò é†tCº&]“®IW¤+Òé¢tQº(—ÎKç¥3ÒéŒtJ:%’ŽKÇ¥ãÒQé¨tT:$’I¤Òi¯´WÚ+í–vK»¥Òi‡´MÚ&m“<%OÉSÚ(m”6Jë¥õÒzi´FZ#­’VI«¤åÒri¹´TZ*-•I‹¤EÒ?Ò?Ò?Ò|i¾4_š+Í•æJ³¤YÒ,i†4Cš!M•¦JS¥ÉÒdi²4Qš(M”ÆKã¥ñÒiŒ4Fr“Ü$7i„4B! “†IäÁÒ`i°4P( ”úIý¤~Ro©·Ô[ê)õ”zJÝ¥îRw©«ÔUê*u’:I¤R©ƒä"¹H.R©ÔFj)µ”Z¦ü³R’%Y’%¤‘4’ ’ ©$•¤’šKÍ¥æR3©™ÔLj,5–KÎ’³ä,9IN’“TOª'Õ“jKµ¥ÚRM©¦TSª.U—ªKU¥ªRUÉ^²—쥊RE©¢T^*/•—ÊHe¤2R)©”TJ*.—ŠKv’d'– K…¥‚RA© ”OÊ'å“òHy¤ˆ÷Åûâ}ñ®xW¼+z‹Þ¢·xS¼)Þ½D/ÑK¼*^¯Š—ÄKâ%ñ‚xA¼ žÏŠgÅÓâiñ´xBq¸GÜ#îwŠ;Åíâvq»¸EÜ"n7‹›ÅÍâqƒ¸A\'®׉«ÅÕâjq…¸B\!.—‰ËÄÅâbq±è!zˆâq¸@œ'Î牳ÅÙâlq¦8Sœ)N§‰ÓÄ)âqŠè.º‹îâq‚8A+ŽÇŠ£ÅÑâhq¤8R)‡‹ÃÅ!âqˆ8H$û‹ýÅþb±ØGì%ö{‰®¢«è*v»‰ÝÄÎbg±³ØQì(vÛ‰íÄvb[±­ØVl%¶[‰-Äb Q'êD]ÊéQL¡Õ¢ZTˆ Q!þ-þ-þ-6›ˆMDgÑYtˆ Äb=±žXO¬#Öëˆ5ÅšbM±†XC¬!:ˆ¢ƒXE¬"V+‰•ÄJb±‚XA,+–ËŠ¥ÅÒbi±„XB,!‹‰ÅÄ"b±ˆXH,$ó‹ùÅüb1˜GÌ%æs‰ÙÅìbv1›˜MÌ&þ!þ!þ!þ&þ&þ&þ"þ"þ"f³ˆYÄLb&1“`Œ‚QH…D!^ˆâ…!Fˆ¢„(!JÂ…páƒðAø ¼Þ ï…·Â[á­ðFx#¼^ ¯„WÂKá¥ðRðü?á™ðLx&< …‡ÂCá¡p_¸/Ü|ÁGð¼oá–pK¸%\® ×…«ÂUáªpY¸,\.„ Â9áœpN8-œN '…“ÂIá˜pL8&ŽG„ƒÂAá °_Ø/ìö{„=Â.a—°KØ.l¶ […­ÂVa³°YØ,l6„uÂ:a°ZX-¬V +…•Â2a™°LX",–‚‡à!, …yÂõ>õ>õõõõNõNõNõvõvõvõõõõfõfõfõõõõ:õ:õ:õjõjõjõJõJõJõ2õ2õ2õbõbõbµ‡ÚCí¡^ ^ ^ ž§ž§ž§ž­ž­ž­ž©ž©ž©ž¦ž¦ž¦ž¢ž¢ž¢vW»«ÝÕÔÔÔcÕcÕcÕ£Õ£Õ£Õ#Õ#Õ#ÕÃÔÃÔÃÔCÔCÔCÔÕÕÕýÕýÕýÕ}Ô}Ô}Ô½Ô½Ô½Ô®jWµ«º›º›º›º³º³º³º£º£º£ººººººº•º•º•Ú 6¨ jZ§Ö¥ü•ò¡¥V©Uj•Z¡V¨êfêfêfê&ê&ê&jgµ³ÚYí¤vR;©ë©ë©ë©k«k«k«kªkªkª««««««Ôjµ½Ú^m¯®¤®¤®¤.¯.¯.¯.«.«.«.¥.¥.¥.®.®.®¶SÛ©íÔ…Õ…Õ…ÕÕÕÕùÔùÔùÔyÔyÔyÔ9Õ9Õ9ÕÙÕÙÕÙÕÿSÿOý?õê?Ô¨UÿªþUý³úgõÏêŸÔ?©R™T&•I•¬JV%«T ªUœ*N§ŠVE«¢U‘ªHU¤*L¦ S}P}P}P½S½S½S©‚TAª×ª×ª×ªU€*@å¯òWù«ž«ž«ž«žªžªžª©©©¨¨¨î©î©î©îªîªîªn«n«n«n¨n¨n¨¼T^*/ÕÕÕÕ%Õ%Õ%ÕyÕyÕyÕYÕYÕYÕ)Õ)Õ)Õ Õ Õ ÕQÕQÕQÕaÕaÕaÕÕÕÕ^Õ^Õ^ÕnÕnÕnÕÕÕÕ6Õ6Õ6•§ÊSå©Ú¤Ú¤Ú¤Z¯Z¯Z¯Z«Z«Z«Z¥Z¥Z¥Z¡Z¡Z¡ZªZªZªZ¤Z¤Z¤úGõêÕ|Õ|Õ|Õ\Õ\Õ\Õ,Õ,Õ,Õ Õ Õ ÕTÕTÕTÕdÕdÕdÕDÕDÕDÕ8Õ8Õ8ÕÕÕÕ(Õ(Õ(ÕÕÕÕPÕPÕPÕ`Õ`Õ`ÕÕÕU?U?U?UoUoUoUOUOUOUwUwUwUUUU'U'U'U{U{U{•‹ÊEå¢j­j­j­j©j©j™²°š² ‘ò«VÊ´R)UJ•Rõ·êoÕߪ¦ª¦ª¦ªFªFªFª†ª†ª†ªúªúªúªºªºªºªZªZªZ*G•£ÊQUMUMUMUEUEUEUYUYUYUAUAUAUNUNUNUZUZUZURURURULULULUTUTUTUHUHUH•_•_•_•W•W•W•K•K•K•C•C•C•M•M•Mõ§êOÕŸªßT¿©~SeUeUeUeQeQeQeReReR•F¥Q™¨LT&*ã•ñÊxeŒ2F£ŒRF)£”áÊpe¸2Tª U¾W¾W¾W+ƒ•ÁÊ7Ê7Ê7ÊWÊWÊWÊ—Ê—Ê—J?¥ŸÒOùLùLùLùXùXùXùPùPùPy_y_y_é£ôQú(½•ÞJoåMåMåMåuåuåuåUåUåUåeåeåeåååå9å9å9åiåiåiåIåIåIå1å1å1åaåaåaåAåAåAå>å>å>ååååNåNåNåvåvåvååååfåfåfååååZåZåZåjåjåjå å å å2å2å2åbåbåb¥‡ÒCé¡\ \ \ œ§œ§œ§œ­œ­œ­œ¡œ¡œ¡œ¦œ¦œ¦œ¬œ¬œ¬tWº+Ý•ã•ã•ã•c•c•c•nJ7¥›r¤r¤r¤r˜r˜r˜r°r°r°r r r ²Ÿ²Ÿ²Ÿ²²²²§²§²§ÒUéªtUvUvUvUvVvVvVvPvPvPº(]”.Ê6Ê6Ê6Ê–Ê–Ê–)ÑRVÊJY©Qj”¥ ”BÊ´R6W6W6W6U6U6U6V6V6V6T6T6T:)”NʺʺʺÊÚÊÚÊÚJG¥£ÒQYMYMYMYUYUYUYYYYYYYQYQYQYNYNYNYFYFYFYRYRYRY\Y\Y\YTYTYTYHYHYHY@Y@Y@™W™W™W™[™[™[™C™C™Cù—ò/å_Ê?•*ÿTþ®ü]ù»2«2«2«2‹2‹2‹2³2³2³Â¨0*ŒŠ$E’"I¯ˆWÄ+b±ŠXE”"J¥ˆPD("¡ŠPE¨â½â½â½"X¬V¼Q¼Q¼Q*Š—Š—Š—ŠŠŠŠgŠgŠgŠÇŠÇŠÇЇЇЇŠûŠûŠû …ÂGá­ðVx+n)n)n)®+®+®+®)®)®).+.+.+.(.(.(Î)Î)Î)N+N+N+N*N*N*Ž)Ž)Ž)Ž(Ž(Ž(***ö)ö)ö)ö(ö(ö(v*v*v*¶+¶+¶+¶(¶(¶(6+6+6+6(6(6(Ö)Ö)Ö)V+V+V+V(V(V(–)–)–)+++< ÅÅÅÅ<Å<Å<ÅlÅlÅlÅLÅLÅLÅ4Å4Å4ÅdÅdÅd…»Â]ᮯ¯¯«««pS¸)Ü###ÃÃÃýýý}}}===® W…«¢«¢«¢«¢“¢“¢“¢ƒ¢ƒ¢ƒÂEá¢pQ´Q´Q´Q´T´T´$N×€¯!#ä¡À€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €°)“žLz2éIŽTð¹ìsÙçrzöíÓýIÿí°=ÀÀØ”ªE«­Z45ðÄß&þ6ñ·ô M €|mÀÀد^¼:äH5ûúöõíë°%ÀÀ؈a§‡v:ÇgºÖïZ¿kýÒ§‡À¾6``¾{INININ¥î–º[êîçÀÃwß=|wúD§À¾6``¾{'lt²‘¥@´æšj°ô·¥/”¾Pú0Û@L Àw¯çž {.´ˆnï´½ÓöNŸMÏä>“ûLî¯ÝO`_00ß±Øé±Óc§v)ìRØÅüßû…úêS¨OôæèÍÑ›guÕuVWK¡iß–}[ömùµT`_00߱ݥv—Ú]ÊRÚc]u=Ö¥|çãöÛ?noé;íìíìíìã{Ç÷ŽïýõzK àk#&à;ÖvXÛam‡YŠBOU;UíTµcÑz=ëõ¬×ÓÒ÷Ï¢NEŠ:¥T Cu:ÔYÑeE—]"/F^Œ¼˜qFÐcQcQcѸQq£âF}îÏ\ ¸pi^™yeæ•Z ­…ÖU‹V-Zµhʬ(?½üôòÓS*6¦Å˜cZ¤\“úmg~FÓO Ë–),SÞCyå=dþ/ý2Ë,s0åè>þ©Ù†Ù†ÙKÑiçÄΉ¿^ŒJ àk#&ð¯ÔD)¡ÙC³‡f7Ü6Ü6ÜÎñ™Ê-)·¤ÜKñLJèøÏãÿóØR õi%ýKú—ôÿzñϮ껪ïª^aT…QFåø")·ØMùsà–À-[Ò?ö¶ÏÛ>oûL¾1ùÆäM½›z7õþ¸†©¯dXxXxXx‡öš3sÎÌ93ç°BjŽ(­F9ã駭˺.뺬–úæ6ÄmˆÛóZ=‘žHO$K?U`FfDŠ:u(=?g€¤``ÿút”’¥\ÍiM¼—rýîÇ[N¹ÒTN’“ä¤Vû8€´¾&)ÑfÊuÌ9ÒTa—Â.…]Ò6¬J}¶ðí· ߦ\Ûjé§*öªØ«b¯Oïñv®Û¹nç²&@ýØÇ³ëÓGdMݾ¯1ý´”k¬-õ'å}KýqR9©œT–~v‡¼CÞ!§çç 0€´BL à_–¢”ð—á/Ã_VQýEõi•Õ¸SãN;)nýOëZÿ“¶Q\‰L%2•ÈdMR%¤JH•†•VjX)ÇW¶|ÐòAË}½LùÛD!QHz.ì¹°çÂÔôêÓðƒ™f>˜Y"¼Dx‰ð´­Feueueõç^+l«cjIÊÕÆ–®·v<ïxÞñü§·0§éœ¦sšZêÿÇïÊôùœ!V€ €üËR”ÒjC« ­6|ü•\¹rŒ\0rÁÈ÷·ÞßzkÌ’˜%1K|.û\ö¹ÝûtO}„i)NyêmÊ3˜?½ÕpÕpÕðw6ÞÙøå½—÷^Þ‹ïß;¾wJxyhû¡í‡¶[Šÿ‹‹‹Ò*äû~ÇÔ’”›¥[ÚûÇOùµ´…gUŸU}VÕÒò\Ìs1ÏÅ”£NŸÏ`i…˜À¿R ¦Ü4øTµSÕNUûô֮̾2ûÊìϽn2%<þ¸?–¶¿éø¦ã›Žzk?«8õuXðë‚_üúég¾™sdΑ9©œRìO÷¶ÔÝRwKݵ&¾útUÍ¿žiþ¥ù—y:äé§Çú묿w¤w¤wä«Ã¯¿:œ|šïe”û(÷QîƒÏˆœ9#>¾þ55G´»ÔîR»K¥ôçËžl«cjIƒz ê5¨gi¿/2¿Èü"U7BÿôvÖÅ®‹]›žŸ3é¿¶‡˜À¿R¹¥<;6õK—÷]ÞwyŸš-,0°ÀÀŸÛg©®TWªki›å§—Ÿ^~zê·–reª¥'ã¦<½øÎ«;¯î¼úÂé/Ó_¦¿>]÷`÷`÷à/Û~jž‹üñ-¸ýrøåðûŒÀìqûÇí·O¹þûkÜú8%NÛø{Ssú>êû¨¯¥}¥\9ú­Í+3¯Ì¼2–¶öñû+}>gÒ;l00€}:P)·¤Ü’rKb§ÇNýŒH5åZáOo¹¨SQ§¢NïÄwâ;ñsÛƒÇ;xìÓ×+§~kSNN99夥­­Í»6ïÚ¼ÖÇK)·A¶´—bvÅìŠÙ¥mü1“ƒÉÁäääö¹{Ýmt·ÑÝ,mY[X[X[ØúyØ©`§‚ ¦Uü½éçÑšÒkJ¯)ú}=/þ¼øó⟾žûÍŒ73ÞÌHŸÏ™ôßÛCL à_ŸT>¾R0õÛüt¼”bÒ“IO&=ù²Ø&åšT룠D!QHÊ,s°ÌAó-T ­Z-4å9²iUí½¿ìýeï/–ú|÷þÝûwï§í¦øøFÇ©ßr‚K‚K‚KIÿ’þ%ý-mùv®Û¹nç²>~{8úá臣­€mcLÍ9üåð—Ã_–žÚûÁîƒÝ»ÏÝfÃJ +5¬”¶ÏÒþ²YšþÛ`{€ €üëÓÊÇ×ò¦~›)Áá§·|xåᕇW~Ylóé+/S¿ÍO?±xÆÄgLLÛ`)¥ç…úêS¨¥)§m$Ö([£l²}YoÏûž÷=ïki˵×^\{qÚÎF'•“ÊIeÍÈÚÆ˜~ìºæºæºÆÒ¹¸º¸º¸~Ù–-=%:E¿&~Mü€|/€ €üëÓŠ€€ÀרrÊ“h¿^ÏS³…¿.øuÁ¯–¶àÕÁ«ƒW‡¯,©†«†«†›ï±sbçÄΉi‰M[3mÍ´5_vŸ­¹†Û’Oßè85û²1ý؈µ#ÖŽXkéˆöÆìÙóeÛÿøiÐ_ï}šVïÖ´ÝÛCL à_ŸTŒEEE3Ú–S³ýÔl¡í°¶ÃÚ³´…Ðì¡ÙC³šw¬Ð±BÇ æ{ü{ÿßûÿÞŸ¶uøø*ÞÏÝr{E{E{…¥-ï°ÿÁþi¼}g~ÙÈÚÆ˜¦H¹Uµ¥ÛYÛÙÛÙÛÙÇŠ7Êšž§\#n©bsšÎi:§©õ£L àk#&𯯨|í¨Æúí×ëY¯g½ž92Œ”þ¤m^d~‘ùEæ/«ð§ëóDz"=‘Òv6¦æIÀ?˜¦8]òtÉÓ%-m¹_ó~Íû5·¾æ âÄ-ˆ³´—:ÓêL«3@ÆGL à_?r\±WÅ^{eœ°°Jå*•«TNÛ:„…‡…‡…Y…?]Ÿvì>Ø¥íl|'¾߉֌¬mŒiŠ^“zMê5)#Åý­÷·Þßš> €XBL à_?r\¨O¡>…údœ°°Dx‰ðái\‡¿L™þú² v)ìRØÅÒ–\\\Òv6ÆN;Ýš‘µ1M©C¡ˆPDÈGáììlÍ;—À×FL à_?rœ÷PÞCyeœ°0¥?§Î¹}rûäöIÏ8QHkŽÈ6Ætï/{ÙûKÆ9ŠªE«­Z”@FFL à_?r\úBé ¥/XÚBÌ’˜%1K~ä,u·ÔÝRwÓóÐ)Û´æˆlcLÛµjת]«Ì çÎ7œ¿í,%` 00€ýȰãyÇóŽç-mÁ?À?À?àGÁO×çiç Ÿ6LÛcy^üyñçÅ­9¢ï}LÃ2…e Ëdé:æ<ó\Ìs1å{¾ÆÞUÃUÃUÃ-Uo”û(÷Qî_6¯€|mÀÀþõ#ÀBk¡µÐÚÒn:Üt¸éð#à§ãÀƒÇ;x,må踣㎎³æˆ¾÷1]´>h}¥þ·ÚÐjC« _oïË-´|¥½—Ý\vsÙÍÀ2&``ÿú‘àq5ÇÕWÓÒöÆìÙó#àèn£»îfiËÓÖL[3mMÚo³ ³ ³ ÖÑ÷>¦R]©®T×Rÿ·Žß:~ëø¯v¾™ñfÆ›Ÿ®ÿ¹Àsç¿Õ,%` 00€ýÈðþûì`i .®.®.®i,½:üêð«ÃuGüwû¶Ñš¹}¯÷½Þ÷ÚÒ–ÔkP¯A½´­O³sÍÎ5;gÍ}¿cúzé륯—æŒÈ‘3¼çù<óyæóŒð‰ð‰ðùÚŸ ŠEŠEŠE–j8 Ü€rÊ}«à–€%ÀÀþõ#À!UBª„TIy®ªùˆ×ŽYn!IDATrä ȶÁ’¥ëSsfΙ9gæ”þdœ:¿߉ïÄÜ>¹}rûXÚþý­÷·Þßj}eRóôßÔÑ÷;¦^^^–Žº]«v­ÚµJŸÏ„¥ó–Î[:ÏROŠg/ž½xö———ôŸ¥À,!&ð¯9NÑõY×g]ŸYÚN¯I½&õšd}ŸÃ2…e Ëdgogogo¾—”+_3f;ìT°SÁO?•Öú}u»ÕíV·[ÖÀßï˜:q.â\ÄRŸwUßU}Wõô‰9·n ÜòéQ82çÈœ#sÒ–°„˜À¿€¯Ž¹:æê˜Oom}Ðú õA_ÖÏD!QH>ýlWk⽯]çKÛ.m»´íÓ{Y».v]ì—m?å¦Í)×˦Uü}éé‰ôD²´3 Ì(0#zsôæèÍéùÉð÷þ¿÷ÿ½ßR¯>ìÓs–°„˜À¿€Styßå}—÷–¶öñ“YM™þ2ý•šm†fÍš½óÿèü‡¥-×^\{qíÅINININ³Î)ZÿÓúŸÖÿXÚKÊm¢×e]—u]ÖÔo3åÃ)gŽT³½1¶fÚšik,m-e_éÿɰxçâ‹wZêU¡>…úê³$fIÌ’ôœ¥À,!&ð/àì>Ø}°KMYkS­Mµ6-´|ÐòA¾Ë}—û.¼y1òâûï¼opeö•ÙWfÏuœë8×±˜]1»bvŸMoçºëv.kj’>‘Xp»àvÁíRSQ)*EeÊŸ.\ ¸ß;¾w|ï · · ·ãw<Þ±½¢½¢½Âüg]÷ºîuÝûékamoL«…V ­ji›)1yúœ¯¿:üêð§ë–r•szÎR`–øðǼòþÉû§_Yʵ§Ûn¸m`ƯóÇÎF:õ5j¢X¤X¤X;=vzìtKßS"S‰L%2ÙÒ˜Þt¸épÓÁÒ6 »v)ì’R“oõùÐÔ»©wSoK=l;¬í°¶ÃRs¼À¾6``ÿ"6÷pôÃÑG˜ÐÎÞÎÞÎ~oÌÞ˜½1-¹á|Ãù†sZÕD9E9E9%¤JH•*ŸþΊ½*öªØË–Æt”û(÷Qî–¶ÜýL÷3ÝÏ|ÛÏ///K=Ì{(‡ÂÂÃÂÃÂÓg–°„˜À¿€-ùøjÔ‚nÝ º}Y@˜r[àn·ºÝêv+pKà–À-iV}«Hìã,ü<ÝÔÈ+ WÀèn£»î–ò¬Ü”¯?‘žHO$K?UýEõÕ_ØÆ˜&WN®œ\¹ìæ²›Ën¶´—Ã+¯<¼òÛF›/ï½¼÷òÞ§«±áᆇ¦Ï,%` 00|†”'Â~|]fÃJ +5¬TnI¹%å–乘çbž‹)O‡u09˜L)ϸ]²zÉê%«_/}½ôõRÛ¨Rb¿.øuÁ¯ªáªáªá•ÚVj[©m>Ï|žùýý‡¶Ú~h»¥zökÞ¯y¿æ_»¶Œ)|€ €Îâ‹w.Þi)|M¹Â˜ `Ž˜*)7@.éÿÿoµ×^\{qÚîKÿ\ÿ\ÿÜR|tÜÑqGÇÌR%åÉ»–BYßå¾Ë}—[¿—çÅŸ^<·OnŸÜ>æ{)ìRØ¥°KìôØé±Ó€9``@ªLŸ?}þôù–àŽ:VèXÁš«r“œ’œ’œt!º]ˆ¥½¸îuÝ뺗±XBL H•—÷^Þ{y/Ç' ú}Ðïƒ~Ë–)ì3þµR%¤JH•öŠöŠö K[Ι9g朙½:xuðêÀÍŸ–>øšãjŽ«ù鸘]1»bv)>]òtÉÓ%ýüü\\\‚܂܂Ü.½xôâÑ1-Æ´Ó¢xöâÙ‹gÿô6‡vzØiêø4``ÀgHyþnŽtä\Ĺˆs‘È‹‘#/rí/àÓ€ €Ÿíã8öëIypÔ¡¨CQ‡ˆ~©AL °JÊ¿+íëÛ×·¯o}è[¿Mý6õÛì°ÿÁþ¦¿L™þ"ú¤00 ‹‹‹¦ü3å9Áêêê•ÚVj[©m¡ˆPDÈs1ÏÅ<Ën.»¹ìæº#ꎨ;¢å¾–ûZî[øváÛ…oZóêÎ+B_€5€ €_¥ë}© m°ÀÀl00AL ÀF°ÀÀl00AL ÀF°ÀÀl00AL ÀF°ÀÀl00AL ÀF°ÀÀl00AL ÀF°ÀÀl00AL ÀF°ÀÀl00AL ÀF°ÀÀl00AL ÀF°ÀÀl00AL ÀF°ÀÀl0Ø8`°6§`€ü8l6¾ÖèZ£k ùSÑ XÝ ¦Q+du+œF­ˆÕ­h5;«[±4jÅ­n%Ò¨•´º•J£V:Z«[Ù4jå¬nåÓ¨U°ºUL£VÉêV9š½Õ­JµªV7‡4jÕÒ¨U·ºÕH£æhu«™F­–Õ­vµ:V·ºiÔêYÝê§QsJ£ÖÀêÖ0š³Õ­QµÆV·&iÔšZÝš¥QûÛêÖ<šÂê¦L£¦J£¦¶º iÔD«›”FMcuÓ¦Q“­nº4jz«[Zi‘F­¥Õ­UµÖV·6iÔÚZÝ\Ò¨µ³ºµO£ÖÁêÖ1Z§4j­n]Ò¨uµºuK£ÖÝêæšF­‡Õ­gµ^V·ÞiÔú¤Qëkuë—F­¿Õm@µV·AiÔ[݆¤QšFm˜ÕmxµV·‘iÔFYÝÜÒ¨¶ºI£6Öê6.Úø4j¬nÓ¨¹[Ý&¥Q›üÿµkúkúkz›½ðÿ´wßQQ\ïãÇšöI¢ÒéÒ›tPª4»XQì {¯¨`ï5ö†bï½+TÀ±w‰ÝØETÚþþ˜|ÏœeÉ¢¨³³ï—çÜ“Egî<÷îsï³3ð%P‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(Py9/s^æ¼<±óÄÎ;g›Ì6™mÒÚ£µGk›X›X›Ø JÐwÖwÖw®}«ö­Ú·âWǯŽ_½«Ï®>»ú<¨ý öƒÚô0E„YB˜1„ÙC˜I„YE™ùG˜©„YK˜Á„ÙL˜Ùèa¨³«NW®:­µ^k½Öºïµ¾×ú^óè;Ðw`¥¹7toèÞ°k£®º6J(“P&¡Ìù™çgžŸIߪáZ ×]ˆ!”!Þ„ØâPˆIúVÚòå?Ê”Ú?µjÿy£æš7ª}bûÄö‰ƒ9 R&r´ÐþAû‡0“0“0“Øs±çbÏm+¿­ü¶òwÖßYg==,mïþ¾ûÑKG/½4=qzâôÄæ»šïj¾ËbÅ ¥âǰ¡aCÆá“Â'…O×e\—q]ömß·}ßö¿§ü=åï)ô0Xy±ò@y€¨˜ô)éSÒ§Œh0¢Áˆ¾¢÷[ÜoqŸÿ>ÿ}þï¼[ðn×P¨fa6øšó0ã ³×ÒódÅ“OV$.N\œ¸Øo¬ßX¿±_gdÙ¾²}eûjŽÖ­9Zí2Úe´ãZ¨"áÚ ×Q¸¦_'~„XâVˆa®…*ºrþÊù+çÇÅ‹§ÛX·±nã¯? Û4lÓ°Íö–Û[noùºÁë¯p-TL°,X|úÝéw§ß ¸1àÆ€_33ìdÙɲ“eÒÙ¤³Ig?®ÿ¸þ#_,+/V^¾±ùYó³ægµmضaÛ†Â߈¸q#‚žÁ·E€¨=øtâÓ‰Ó.L»0íB‘é°½ÃöÛ/´½ÐöB[ÙGÙGÙG® ee…Ñ-Œt±Í?¬(Ì\.¨–œí9Ûs¶q`ľ×|¯ù^ÏÈ2kaÖ¬Åz»õvëí²ºduÉêÂõáº×H¸^â‰!ž…Øâœë%6/˾,û²ì¼½óöÎÛ+¶Oöˆ‰#&ž=z:TVUVUV•ë%6&<˜ð`˜!c†Œ"¶øéÓ3¦g̵·×Þ^{Ë•+/V^¾>ùÙãx™ãeŽ—¡gðmQ :÷&Ý›toRŒOŒOŒÏç'릥tdZëzší08ÞÀz‰q‹†ím:§‡Þ¶¨hèm?Ê ¦nðçÿ+N«V;­NLLä ªKňþü™Á~”åDÝàÐÛÕl ½¶¶7NoP}ªq‹€ž¦ÇMKNÐZ÷ùÿŠ0[ 3'W┣›£›£»ºËê.«»”ÔfœîË‹敚ºÍõûËð…÷²v•^y lªÿ“mçdZ¥´®þ¿2Ãx†ñ ã·æoÍßšs¿¡ÿ…kñù×Tû‘Æm ›ªƒM†UìVïˆõÏÆ¥=³É2±¯½ÔòŽQ·×FÝõíK*J…˜âŸëø­<éú¤ë“®Û l7°] Ì<¡5Í-3<­ô"sCêü\ePØ]ƒ v±þÎúwŒãmCµï~þ¿b<Úx´ñèý9ûsöçÈöÉöÉöq¿•›¹7soæ¶ŒmÛ2öó¯¬ùcã³ÚªÿæÙ©’YøÅêïŒ7¸tÜxGH¨÷“J7mÖV×YúùÿŠ¿«¿«¿ë™+g®œ¹Â„ú¬¼tš›î¶œhÐÍyg5[Ãå^[ƒí }={WŸZÑÉጇ©–YÅý†Xyør(Cœ(…×_o|½qÈØ!c‡ûÁÍm힘¶Xû V¤kúõ§-ø=ÉbbÂÂ>­}X¿íÕÀÁ‡´Üòj?¸«ç3ëÄâ÷mïÛÞ·¯8_q¾âÌ•ÄO­ÂÈ-îxܵý.ëÄCZó<½Ú?¬¿{kà`™,--,ìÓÚëO7ò{°öÁ„®éÍmk1-ömÂ,*̨\YˆÁ¾nûºíëVì-¼Ó.–6º-Óúìw»w;a²ÏÍÆG ýýÒÒŠÛúÅ/­ê´GÕ±î«Ííºu¬<Ì]ÿšýQ·“Å=ª¥V”ZQ*¯O^Ÿ¼>\Ù/Mèg¡Ï‹ýpæ]f ÚÍ“—«Rê¼e³÷>[rí:ç†vù´Ìðí’Ng‚‡¦ÈšÖ«¦5åžÿ‡ûï ôu­Š{TÂXàÊ~YîYîYî\'¸Np-ö×:#C^ØD\š<ßzu¯&»ZU9?*îÊEOQ£®\ñô,n;¸|ò|×}Q㺄öèáev]ËL§›†®òÇc­i­i­y¶ïÙ¾gûre¿ŽgŸ5~Ö8F#‹‘7~ÚMÿÙ<`³Ë”™îeoý½ÕÌÖçd†÷¦ìœpuoÍÙƒ<ëöÞÐrµe±„[ëQ­GµÝѹ£sG‡+ U_yYX…·m¿ËeÚåó<«ÖùËî­Ÿ– ­W¥Éæ›N9nèÑiB£W>gjaåàsP†8Qðí*½«ô®ÒÊ'Ù]»»ì²zö^3ÇÜr_‡vøœr¯òí_·ÚÌØ:³IàLÇ‘ÊmlÏØž±=ß§¾O}ŸÊµÄC•ÂU~DÏl2 ×qä_·v– Øú9ÛyÊ·¹åNí ípöÞÊ6>Ž]»G³ªüÑ ³+×_ßÃË/?¼\«|­òµÊ+Uîmcšj¹Üɨgê$Ÿj·æä*ÿ9ÛyÊ·¾ÿ[°éè%— ƒuçxLtѬ– Ôý[¶æ¶æ¶—;]ît¹×úKúVège®HØ ‹F†-÷ ây&sr”eðæ¯“¾èÓánPø·ÚnÍì šèÖQªS¾VùZå…1µþŽ\:réÈ%å?+=^7r6ÜÒ¥Á:cÇa#{§ópþ´BoqÛ‹Ži¸49æG+å¶»Ww¯î^oíßÚ¿µçZ—°‘²‘²‘kmÖÚ¬µQþŠôÏnû½Õ­‹mÖ®ñíšï™zçë䇷[nâ¿a‹žËíÛ*´SÚLi3¥MNÇœŽ9¹àÿÊËÖ¼­þ€\ïÓ3w–ú:™¡_ìR¿S»ÜSG_^ÙÆ¬Ø_ÇXyP`ˆ`ß@æ‚Ì™ ÚgµÏjŸ¥L2½ø§éUž¾YÛ©opð×ÙÔ+ºÍëÞ¥èÖcçɼ7ºŽ4üKïª2gqéÄ¥—NpõoK‰ÊŒYבößé]=vnÑvïyÝSN†~¥¢oÑ훵GZ/þiD«*O•9 a¦f]®>¾´mÆÛŒ·)õ^“ÐÀRõþòçO:ÒÊÞ5jîˆV¬¼0ĉ0€¯êfÔͨ›QʤÎóZwºñÑ&úVÈ>ñlí)jiì}Yg¦©Fƒ¢Ïk½ùzóõ¼Gø„Ñ÷w".ÐŽÖhp|ÌâêޗŰ©WtûÑæDŸ}óZ ÝîtC™yU˜‰”¬Üƒ¹sn=¸õàÖEG`¥Çݽ¦¤ny*ž¢¯¢¶šÉìÄý¿˜‡ÕÔB¿èó þ*üÕÛ1oǼC<—ÐoBÝÏ=7¹ÕµìótNûÞÕ{‹?3¼µ²ÕÿÑõæZe½ÿW ´ÜzpkaÅõ Ûƒnº™û›û›ûÝϵ .‹rO§Ô*þüpß’?FyÎWæ¼övßÛ}ow"ßjå¥a¦Õ];Ú5møäÅÕÅŸú>_<ìD»:’†ngå@`ˆ`_Iò äAɃŠN‘›ýj7ÒÔà©YûÐêMÅ¿µ'ßæúu)ÚcÞÛàŸþã›×c¿ûýØïeãdãd㈠à '''Œ¸ÿøÒÉÛavNù¹~§®‡öÿÖž|ûÔlßæêM›ýZc©AÑg*ÌÆ„>ß;ãwÆïŒÃ6†m ÛXtÔ¹,ruÞ0ñoí)j=ƳYÓZSS·£¾·Â;W~ÖýY÷ç‡ .xÈ=JúJè7E½j0\ëf·ô]ͧøþ¢Š™¡ÐêÖ ÏkÀ<ÈzcØÆ°Â˜"6”‘þcúé?Ý«6§|¼ôëõ?sø©K¢ø‹¾…Ü|êòLÍŽNõ¶þg&õYÝguŸÕy3ófæÍ$6”±»ã;Ý«1ŽMS,\_U8Ü8hƒ*f†OÄ„ì™Ô¼×Aû­EŸéœs>ÎùHTàk®¼ìb:³ó»4òÔuUÌ «ý<»õ¾ÍF{}Ìj,`å@@âDÀ·wùÞå{—oÌ«}Çí°êníÉ·7jµ<è—£P«ŽæŠÎºwÇÞ{wÌŸ‘?#q”,ad £LÑÔ?¨{]ó‡µ6kúå¨âÖž¢vcÞä·ÃÿqÏÇò½Ë÷.'Nði^]zuéÕ%›X›X›XE1fÜÑϳvmŸ¾óÎ'õPÝÒï¿Þ 繤ÃÉE–«šTê|¾èñugÁw(+$ôOÑ}çUõ¢mçìU»…jH#3|=¸S© üÃìO˜ÞUX°Œµ‰µ‰Æq¢ÈÉG'|Ttü4Y=>Õêù(·+õ< U±ô+ß(ŸÔÆeŸ‰¯ÝEgÝâç?·ø9gA΂æ…ÖZ{hí¡¢ãgŸì³ž›¥”ž_¹z¼Ï™ÿø‚²ÉX“±&²ç²ç²çÄ ¾ÄÊKã€NÝë^Ž“[nÖ”Ff(´NzÝœÀÊ `ˆ`_ÐþNû;íïTt*|½sË¿“R*ýl߯‹éÔn““Žy …eàÐÞ¡½Ceñ²xY<1”€xY¼,^YŠÆ]»Má•Ík¼_—ÒIJ|Ûë7µ÷;Yô ,ÌÒ„ ”÷¶áÛ†oZ>¶|lùXá]!Ö í_-á´RÚà+Ø:› 0žùwýUé¯JU"f ú¤è~Û•P_Ïc›T3CÙ³˜aAóÜ‚Ž:¥+êa| c˜)(%#%#%£èøé6fó§)Ò(úÊ·q/†xŒøÐq«éOŠz Ò-Ò-Ò-/(/(/ˆ˜)h}•õUÖWQø’‚ÌŠ­5“îmݹ* Cª™á›ÆG*W©3ɾQœÂ2ð²±ËÆ.#ZP²+/“ÙÃ+û&.š•&ÕÌЫô¤ôMíYyêŒ0ĉ0€/â´Ëi—Ó.Š_ûï t­_tîp3¨®d7ø ¶á1ÖaÆcÆùô´k§¨OÆ 3|Ìp"ø|ÂhR8ÖÆu«b×NžV=ÌXª|ÛýT×þ{Kk]kE}"ÌØDŠ–½-{[ö6Ÿó>ç}Þÿê1 uVT·ö y4t¿±×üRôfßó«Ï¯>¿JüýPt_¥×oåóV-2CYLLXØîƒõã=Þ*ê a¬ ãŽø¹ÖäZ“kM?¹ÂÞ Î»Ýçê$ÕÒ¯|Û`hÜ(Ë‰Šº¤Gräɲ Y†,ƒø9hqÐâ …¢¾ ^ïݧÒÞÌ#GeÁÔ!3ÌóHYº²w·–ý-/)ê“ùµçמ_›ÈÁ篼¬†FìéVÅß0Á3­º:d†ÕnÌywèG@Ón–¬¼µCâD@ »¿òþÊû+%»6Fwõûd&GùTŸ ¾‚팻?9Ú+êŸu£×^7š(>0‚¯wû_w´W‡­=ù63ùXéàƒ6Žºú}õ0{E(D¦,S–s8æpŒÂG‹»FÇÖY˜¨>¥ßÝóá>¹ïf…w•¹wî>¥ß‚m„í¤îÖ=¾Ûõõœ×s^«óÇ×µÊ×*_S?õ·T¯`ìù1÷¤^ÈSµËg¦ sŒß)×fŽ¢þ9 y@ó€&I>måes£Wÿëê™úê,8¬´ž»Õ¬¼õAâD@‰É6Ê6Ê6²Ì±Ì±Ì‘ÿØ3Û¢»Lû—·¯;= žªž|Û1W}¦ÚõS´¸äqÉã’(O5 ïú½Ú­—]?õ,ýlß¾>Ú*xªÙ£ëڅܳ(ÌÞÂLND¡ -V´XÑBÑørq<`Î6õÜà+ØzŽŸXCE½4hò Éƒ&«gü箨g®ÊÆòš¢^:±ãÄŽ;Ô-~2Éü%SáüÜÜÚ\sâRȵΤ-óîy²…ƒå E}•± cAo•F1V^V“"žvëEfèólAƒ£­´ú1ºÎÊ P€!N€”˜á놯¾NÑ2àÉÎö†ÕýØàû§Œ±3k?Þ)Ú|°¢{ßó}Ï÷=‰+ hÂHQ4ŽÚ?c>X™V+ÌŒ°Ð>Ù¹¯Eu?E=&ÌäÄ×½®{]÷R-}cÆîÃ_ÁÖ5sዾyÿÞý{÷ïUŸøÎWQo$G6žYõr‚íŠqaÙ. ß (ŒGõ‰ŸÙ3fϘ=CQoô+} ÅåJ¿Û ‘]*šÞUÔc/e/e/Õèó«ÓŒN3:)ŒŸ×ùI—ƒ É …6÷Ï”z¡ÓjøûøN(äåM{í÷ÚïÍ‘;#wyŠ^y™ª~Æß8Á7­9¡ÐVÍœ]i_ V^€: \b»×-®[4>ÕøTãS×^[xm!}ò9((§Wž^yZácŸÏ]n6Ô§›zòíû›ÑíCzü¦uJ³‘|¿ +5¬Ô0fià?#E~ü¦—¡ÙèýÍä!½ØÚ“oÏ]^eèÓIứVž^yš‡’©µ<³<³<3«¶Vm­ÚÊGˆ¹M­Š‘KØÔSÔÚ=ê´~¸£¢ñõêÙ«g¯žI;~„sTÔ ÇçW™I¨¨í©é¦iY¿{ªÚZµµj+ŒMiÇÏ óæ7ÌÅO§j˳Œ)÷Ê·qeë+»º Ð-äuíõÛë·×W‡Ï¯ýÇöÛLQüÜúuK?ÿväòík“$› §Šúmæ¹™çfž#;‚¢•—F®®‰^†ïÆE[“{Ê·îÇĬ2dåHà’âµÜk¹×ò‚=I1øsPZðYr2s2s2µFhÐ!ÿQ7÷`Ч=läÝÞxÖ2ÛßDÑbà²Õe«ËVD O ß(ùlóïþ&lçÝÎ=8ÔÛi|ï ³º0Ãiêi鎥;–î(ì•¶â+$°Á÷­yB­´•n{„þ&ß…=szæôÌ‘vüç(îõ¢¬=“õŠq ³$TøÁÑíCzUH©Ð´B5ù>ƦdCÇEæ"sqoìÞØ½±ü¹‡•éégþ+…Þ¢Û§E¹†+|tì‰Ø±R Ÿ,Ÿ,Ÿ,E羡â$+·†ä~E·g/ø|¯¨ï5¾×ø^cr$V^ò¼êM>´ùw2Àÿø‚ c‡vC½YyREøó ÷þV(Åà⢠à³,Ÿ¾|úòéòÓ±Sv¥Yz¿æé2/ô$yÊ´ ¢‚gUi(ß“ž <x6%Êe‰ÄðDY¢,Qò£fATlÝ*lð)ÕæIÕ=é”m¨÷«|O 3<á¦n^•}UöUYEË-ï±N«+±…§ÔCÿòfWݧ¨'¯¾zøêaéÅp^ _ò ½Sõšd}Ê´ç+5{ë³Iá}äe_•}UVzñ³Ûe·ËnEg=2*½‹‡%^eÚ–ÏfÇÚFÊ÷¡öEí‹Úó¾Ëû.ï;éÅÏä“[L.äQ«õzj=—]L[æKî§L;Ú¼kE»BÆ`SŸ¦>M}È”Xyd·¥c^l]²>eZ¿ôeuSµu˘Ÿ· dåHàÏ·GkÖ­ J£¬ À>QÖÏY?gý¬p[ÓºÅ,¿P6ï”osGw1 Õ×ÒúUãŽ|Ûslϱ=D F„üHÑ×Òmªq'wtŠFh,›wÊ·W­7,ñ U4Ÿ ³=Q§>F2e, •ËÕyÑ:”Í»â¶uc*Œº"ߟµŒjÕ2’^üçUȶæÑ°­.ä{Åmût?gÕJ¾?…q*¥ÈÉÉÎÉÎÉVôIÔÅmíSÇ>”u‹ÑV½ÒÜÓ¸r¬Ë{݉òý¹%~Kü–x)ÅÏó^Ï{=ï¥(~îçìZhO¾§|ûÞùøÃšŠúób‹5.Ö _b奱Pû™nS¿™KǤhï)ßzΚ8`ÃV^€ôP.)¹Z¹Z¹Z[VnY¹e%ÅàÏGÀ'Zœµ8kq–ü„ÛÝ͵­EvŸÖ&?l|²j!V²··—m“m“m#ö Ö¶É¶É¶ #B~¤$?\QÕŠm»Ok»»5·¶ÈïUa¶'ôÔÁËÉ/'¿œ¬hAUíÏ9éo°mWì»=F-mpꜢ^½bxÅðŠ¡4âG8EgšëÔ9/4†L¯¸í §'ƒõª0f¥?Ûm?´ýP!O 9b`JA÷ÓÚž=v¤T£(~ò~Éû%ïiÄÏØ¾cûŽí+Žã†ußmwžïÓÚíM¦ŸsÏ”ïÕºÞu½ëz“5±òr+?¢Ã’2½OkÍN×ÈjnÍÊ  À_ÅàÏG@±åË9–sLÑ$û0¥Ý³Ù°ûÄöBLd˜¯GS£×ú±ò}{>õ|êùT"êL…<–¶©cUýXÙ…´µ<ÜïSÛ‡){4g+šÛ…™Ÿ”¶Ùé³Óg§Ë_}ë»-Mzßb«îsZ箞5K¾oÛTnS¹MeiÄp.òç¸Ç²þjÏÿ‘ã}N;ù”¿¹C!fÆ¬Ê‡Ž¯ÌWækèeèeè%޽›î1r¶¦”û9­óõZu òåû6),),)LÕÃçݰwÃÞ S”½¼þ1I'è>9Þ'¾(dJÊÝÐ=Z.š£+$Ë÷íÝwGÜA+/=_«ŽUý=Æ¥­%ÇûÄ…tš±G“• %€¿4ŠÁŸ†0€b;ªsT税ü”ëܳò6éJà>àa—VýM¾‡ÛŽi;¦í"êL…Üû;lI骿±U÷ùmtnÍÊ;ä{X˜ù‰@É.¥âsãsãÞûûj®×¡ÖlÕ}Ö}À‹—®N PÔÃÏO7>W…ç{aÜ…qÆò^É;þ7+–¢|[÷Ùq§Êùذ1`£ª~m<ºñèÆ£…<&ýAÌ»ÒäuŸßn«6í{!™aìÐØ¡±CÉ Ôsååš3ÂtIi²»ÏoMÓBN7ÑdåH௺ƒA1Xi€[xÛð¶ám yïï’‡ýÚ±I÷ùm^J—9¡ 7Rß:¾u|ëHBÝ‘¯ð1†)©BO|ýM±õ6ëøå<•ð’ ¹~íä{X˜ù‰C©J»–v-íšüu7ó«Úô Ûs%ÕÚ‰Ê÷ó“2OÊÕ<ªyTSÅϯµ×\{PþŒ¶¸Nméî/þ\ËzŽù`öÂ1éÛaŒõkÝ6.ò›ž¹óè»à½bË'/·î•oŠ|oX<`ñ€ÅdSê³òò~1ã¯]®är%ÛÚµëXzØÏ¬¼UGXt{ƒe2`ÅÒãTS=NÉOŽw“ZŸðbc®„Û¹1AaNŠ>rfæÌÌ™ILBÑ®ðÞˆ¹iCÜ(—l{7i{d€—üy ŸĤ”Ü:uëÔ­B>Ù+O¬×§­7[r_¢uü£‡Ñ ù>ß×t_Ó}MU+~„c–?—µ½k9ºî&—ûíƒVÏäû\˪?“ºNê:©«ü¹tÛúƒÓ À_¢5›é´Tç¡|ŸgÍ<šyTµâ§þõ¬_سÊÈ®.®Uð˜…Ò¯˜6whÊÿB‡)ÌÆCd!²r*uXyùÛ%tHJ.W²­·Ï´ Û#YyªŽ°˜©s1˜0å,•-•-UøöÍc]f‡&³%÷%ÚX3ïú6…,¶ïZݵºkE`BÑ.? bÍ:-±öm·Ã¤ZÎ;–úKh²Âm¾¥²¥²¥D¦4¬n´ºÑêFòWÙuÏðú‹Þ°%÷E¶ùÞÍx¿«ž|Ÿ÷YÜgq»J8æBžÍ0¡m•@ ²¸/Ñ7ilä}X¾Ï…±¬ZñS%°J`•@ùsñ÷ù™e)‰¶Á严–Óäûü϶¶ý³­ÊláÅåÆåÆÉŸ…¾¶n„Æ]ÙË´ÃaAªUòIñsëu³ÌVÉ÷ü³ãÏŽ?;NN%í•—Å­†Ë:-!‹û­ßŸËÂRaå¨: À*“IªY1˜0¥¼éø¦ã›ŽòÓ_³jv3L-Ķ5öxH»ÕïÆO÷a_¡ÙL»­¦Þ®w~Ô{¡7Wó¶Æ1».ïê– 9Rys¥ÓuZ;{aÜáH¯8·ù’RÞñÊ—ïùíí¶·ÛÞŽÈ„:¢]~$¥,ˆðÊgøÏÒ«|z¶ªQg›YM‹c¦AÚõæêdjs;ïð?}‹áQmö¾0>x6ÈWÌÛ|ͪÕ8dj!vÂ'‘) vØa üU®ö×Ü_Yˆnƒ,cÙðÔF»éPiµûü'­xƒ'Æ¿iŒÖNÐÉÔýÃb±Ýë–jÝÚkò”Q[¦‰t›o×ÒÌ”BÄj8Üp¸ápÕŠᘠùj o—¡«DW:ÝÓ8Â;£Ã-§æÉB6¨»JsŒÆT'‡Jaº·#–Û53-½{Jýžòºì ½&ÎÌðÅÔOƒ ¹ëZ˪9٦٦م¼iÞlªÓ<ûb+èÆÛ^îq,BkR ëh‡” ÷Š+ôç¿Õ|¬µZ·‰FézÇßtæWÏèüƒéúAµWw"æpËmSªèÉ÷üÂE -\¤*ñó¨Ï£>úÈŸÅÀ±íªY{ªJÑWUÞþ[°]ï>±Ÿ›±üÑž|uòÕÉWäTÒ^y¹j«¹ Bl9•Óð^ï'2œîÕ/è¦ÖæJÃŒS4¶ê¸énÑn=Ø)ÀºBóé=¦ûö\øìxO/§Ém6ëüënf‘‹ÑQ¿‡Xyª‹°*R‡b0`J¹rÿÊý+÷ Ù,8R±ÊrñlŠyШ–·¿±£NC­À Åt/¹ÍÀbÛæ{ôg»Îçävø áƒ†"2¡„h—þÜs'ðœ8 À:;µ‡i4+zαÜa*Óμ´fÝ:ßâÜæ[xzxT•BÊTÂ'‘) z‹ôé-*䥗ÝK½$žM1ŸóW‰­4ÄýGÿ>ʲ;ë±y‘¾ ¸—ãOùcþ¸ñãÆÅ9Âqòöß$s—JÄ“G ¥Ü›<Yÿ |ä4Ýj›o’öneÔ´à—bË ó“»d†²Á$ŒeU™yF=Œz%¡)=®˜}O¹thÏ”ƒncíôýâõ*?Í“§åØÔg8ÖáôI÷ŠòÇÜæH›#mލJüœ°V3´%Üüïo[‹k›/Û¹s@HV!d‰¡‰¡‰D&Ôíò£ Ûùd`H–8 Àÿ<¤:´Ó>›ÑûÃçüæydëÃi[Üzé·èf9Qã» §+üë.|£ÔF¡×ĶÍw²ÕÒaU‡ÊŸ—ð‰@dJu™ªÿÆAÃÝItwEÜæKÑŒÔ*mÙ«q÷è—.†Tœ;Îíïx½„‹¶¾mcF ÷<#¯V“_m>/¶3²Œj\/ú¤|ÿ?ùûÉßOþäÇYÈÃ{ïWmjk žúYô³ègäTÒ^yù™.©t2P ”©SÐí†s ›i© º ®9™ö¼0)Ô}åèv‰'£»OßD™"±x2C·f#C–cåHieMXuI©L€RæèÍÑ›SÈãÂ2[g4Å£’3¾ôþI8*7ŽU~uh‹m~ÍmáÉŸKåt½îÚãE·Íw1&2ÌWþh5ÓüMó7"ê@ˆöB¶¹/¦­ ó[Xóžfh…í]æŽór*¸ÁWð¿7TŸêÖBüûËÜ~0 ‰üq ŸD¦T—©æÛkŸm™.ží0ç+ƒ:þÑàÿ<¢qB3ÔåðPÿy2áwå7ïþÉFk'èdŠùAŽÝ5Çí•ïÿËc/½mí·Í\W×_ô¯§84ˆ1õ¤`(Ïza‹°^Éâ/{7ž–½ý +/@J+k ÀÒ êÅ` À”2dÖYCfÉOg/»vô EÑôÔ°&«îïó·{¼•Ä8ß'öaÊlØÉ‰Å¹Íç2Æp¬ÞRÕݦJ6vcç§·T aòà·\3OV¦ [ð§jGûí4òÛ6ßË®‡Î—ïáÈ”êø²Éo“8 Z<ÛaÆOýïÔí)›Éùêû)³aWðŒ ~wq¨vLl`W³a}r¿éq÷ãîÇÝÅ9ÂqÊÿ‘ß~ôþM ¹ÓèÓ>¶vÿê&7ö˲¢LŽ—S§óÚPOá­Àÿ”$Ã\£-Š-3ü}v`ÇÆª›þqìc“?þþç?sY)†©ó…ZÕ r…£­ÌOÅ…\xæ1ȸ‡­¹öu1€ïÖjV©”êÆO Íš-4åÿƒ_òÞ±€¿`›™v4,X¾ç5L5L5LÉ©¤šêÆY´²óŽ¿¥‚ê6¸&•‘AU»PMerB¿ŒeÃSéÕ·zà8ZÌ`Ÿßæþ~è<+/@Jó'`éQÅbp)ñ ª(+<êlˆ®8ŽWô6_žC—V¡+f^<î¸Xüà:›¬‚&oÀ?wálòße4Aœà¤Ìƒ½Ræg÷ ŸuÕÓøÿYÿÿß'žm¾¬ðã^!ºÄ›ºqXݵʘÚâÙÓ=fYžÞ?_þ(pïïl¢ÙÍ}~¸†×£©«¶ýè0ýåŽb+»ß£±rôâç\H³Ÿ`1äN‘ýí;™þ³,?¾§q„wFqsHg¢qOý“bË Õhï²Lzñ3$ääN73QÜ#›m©½]8ª66ó:Øé+_ÊÿÀ¾ÕZ[§H/~r7¤¸†Ž£ü¥[ëŽæ tš’/©J“Ü}ýw‰!wÒn=Ø)@8ª‚OˆQægŰoû…GŽ{o m³ýëì_)PþŠ>²^œàW¥:öZ{X«¡¯×Âe?„npž;R¯j[«æ£í1íeb¬³^k¢óÛ¹4s±›jjN¼‚f.5v›š‹³|/yç΀ÊüìmÓ­µý ½³_,|þ:Q-d=ñ¦nœ|zÙMÚ)†0¿íKÿNù×;Þ¼C¦¥n[)÷ÓZÏ2ã·¬‹^ü\òî»X ¹“Çvcmýß?ÿŒ,Žé%k[~¸áÏڽ܆I/~†ýœzÚmÏ·-ŽŽügªû¿OÝçѾëΕÿÚ¾]8ÆnkÁ¿Alàê.QL{K/~ò RÃC¯RþÒ­[žƒƒ¾ù’ú0:âãUc·èrBÝiÞÛŠñ|çaf]•?;€ï,np¢ñÒörùËå/—S 2>ŒŒ^2[<ÛagÍ"®ø”nð‹õ=ã±Â[ß¹Ûy£öúíŸ9M1Ÿ.ÿ»b+7°½i²›xM#ÂBLv‹³ü1æDbHŠ2?û~|²}H«ÂæÑ€G&?™M¼©Çœžm'nÅ»ÐÎ͈߹³à±ù¦-®üH`Kã×.”^ü\¬YÙ·³r'ý Z^ÙŸFÿñd†ëGÕzëVEzñ3ôxjc·„o[ðKR„Ë¿ÞÏ-”„•ÿºÙÚß)£àß ¶p`T§^¦Ò‹Ÿ¼G©Ö¡g(éÖå­Ýl½=äKêÃ(ªš^XÈ7Î ¦¿ÜññsrB©ãª­ v"*ŸY¬üœxi»nqÝ⺅Z€æ¿ø¥J¿l‡Ù³-ä>ƒÌWQu‚OˆçÀzs5oküóF1çr•²õj o€Û¹®Þ~a·ª´êëßEx»›ðS7êµ<üïâ8 À¡,Œ ù6(‘É/uø%ù¡ª9VSõ;€ï¾Ù$ü”Ö­ÒžŠ­œùê˜Eð ùþ>ˆL©Ž/û›7Å—ÅFØâE#’í [Õ3½v?•Fؽæ(Ÿuåû?àvÀí€Ûâá8åÿ´_Dåj¢øj  GµíJÝMîW„¬ïÓZ±å‡Ë†…^uÞªº™¡K†K†K†üñŽ¥|ÑwËÊ-+·¬ÌÕÊÕÊÕúúÇL€R–é,ÓY¦#?…Ýðh¹Ë/K a†u´—h^Ž*µuÓÞÕl”ù©ýáá—þ¯#Ò°~ŒV˜¦üšY™Y™Y™PB´2NõÓtÃ4ÅVîp«Á5óde~¶ÙÌšeL½…ŸŠì_+Öt¥Ø À7<6—öË’ïyáÈ”ê2Õ´UpïF ÅY6;Wó»æžÊü”ùÃ:=[%üóßYv÷]׉í`û¶Ñ#µäûÿ榛›nnäÇ)ü‹ß„V§®˜ Àºi•þÔ¬¯ºñ3¶öØÚckËÿݽ·«W¤üåÚœŸN>µ.äÙ<B/„^ §’öÊË_3A'MW<9¡ÑŸ¾5Ë(U<ÎX6<µ‘þO¶N΢~´—íäðÍ¥YyRZYS–U,úD€RŽ,?²üÈrùéì@½nžÙbØs¨m0K·pTª×®æÖ¢è?WÛÀ@CáMÀb.gÙE%…ü&„ë#ÖG¬'2¡„h/ä>»ã!¿‰­¬yO3´Âöƒ.sÇy9)ú© Õ'…ºµ(øSÉk—XUÕÛ6ßzs.xòMáÈ”ê2U§ºiOKñl‡9zwû0nîÿÝ«©UÚõÒðu‹»*Ü>sšÜf³Žf9Ýæú¶ÂU>S¿V»p±mó™‡×ú£…¿|ÿ¿ýrôËÑâá8å¿çm·6–±bÈ þ|Ûì¾ÏÊÿ›™5Œ*lß=¥~OGEÿÔ°&Þ¥mþUºþ±€í10ÔµQÝÞE·‹n ¹°Yÿ)›­oŠ¡DÚªÕ¶#åPÑŸ_t9ÌãIðÆ®6f!ÊÿÔ7xÀõõ‹™kåÐ-É-É-IUâgý™õgÖŸ‘?‹s +ßú4§üŸ 3ýÀœêÉ÷üÀ†lHN%í•—o‹…ëŽ|ÛÜ©ÊËþ~ÿ×®”%ýS6V-sûd+Ú ѳa<OŸs• ¥•5`Õ¥êEß‚(PJ†M†MF!ÛL{ùÙ‹b›¯óïΫ*_úç¡×º{´ ÷Õèî²ú¯‹m¦l~Òµ}©êÉko©ª÷±š¡í,ý Z^ —âÙà»­Ùê¤!ø›¶nÚºiëˆL¨!ÚåGÁmÍ­þ‹ÄV¶Zi¶_ÇNøïáQmöœ“âùaû©¶åzé·èf9±àŸ¯í·ÓÈ_l÷þ íÄ^½~´•ïyáÈ”§ãNÇŽË_e¿þK+Ÿš-†í0ù‡þ ,7Îï¼Ax û Qgÿg·¹cvl-íjF.¦ÿ,¿µD5盃µ÷¯üƒüyåæåæåªÀƒ4…ã”?~›ºuu&‰'’?˜~.‘AkFÔ¼à/ww®«·ßcX³™v[ÿï© ‚vÿs¼jn.¶Ì0ç~çŒÐæòç%ŒeU™yžox¾áù†B ÿkuÉx¯(ʥ寔ó,dPåy-››&LiØÙlÍoŽºZ“jXG;™‡L3ÐþŒq[síëâ,žb’ëcùóêóºÏë>¯U%~ÎG:%+:nîÒ‚ð—kÏìIPí©|ϯ±Zcµ†gSI|ååµkê¯[¿qU!¡|ZyãÒ¾ß×Lú×Ókö†üÑ8Íix¯÷“¹_ýfåhÇ7=«OœhÜÖ϶vUáÏè ·ìðÏ,Ô8¡*¶°u÷Èí½~då¨. ÀªNJEß‚(PʇÆh,?ÍU»eZªâ1l‡=óëð[õsÂÃú”Ÿ¦¯ukù‹ßôÊézݵÇüÿušYU6 †óÚt©Ž³ÛKù#?šp4áh‘ u D»ü(ØtiJm·—b+ß³¸«w†AW}[ÍÎEÏ?UŒlZêißKÞ¹3à8 ÀÕn¹L­x@þÈ…O"So¼mð6ù«ìýþ÷R»"Åö háaÎÊ|¾kÎ×/gÐÖyØÀ€YWŶÁç{~±Å‰ï ÙZmïÕÞ«½jÅpÌ…Ìó£×„,C%<Ò¹­£¥ÙNåóÃðJÖ“Œë½0d–Ø À÷ç´u,äµ,ÂXV•ÈÉ;w ¯ÏÍ»Ú5J~嬧»Ê¥CtNvtÓ´Š÷òÕ›¬LäT>ç:Qw¥Pg8êúÊ? ¹x£óFçΪ?/w¾Üù²ÝjA·f-)¹vΜ! yˆîÅ›o^¼IN%í•—ÓÒÞ§ÔONh–P£W³!ÊÌÌ¿»8T;ææ:âÜ’{ÿ¼Õ¸À—Å“ê׳ûÉe*+/@uQVER-úD@1Øö·íoÛ¿”4)zWÈ ñÜçÿ´ÚÛ{3ƒa»…6èŽyn¥És§uÚ˜çÐ¥U芽߫KÅ»ºe+µÐÑ\ܵ“Ëv‹!b8£¶ŽÍÞÈ÷ùÓì§ÙO³‰I¨!ÚåGA[zyfoÄV.¸©×.'¼ys‹c¦AÚuWéxiLu?êpB¿åèÓ]Ûy¾=~´jð(q–~?$0 Y!ßç§1)%û*﫼¯r!Û|}\§6Û]³ÿ|^Çwì2lŠAGçÕ~Ô̪èZéŠf7½ØŠË+s<ìÙ¼rŸz–m.W}0ëÅ>S±¿Ðz†Lˆ]ߦ§ª™xdâÕŠá˜åÏåòÔÈlß'b{l²p§odûN¦+-wè›hgêìÔ´Óhæ,3l¬ßt«m¾Išðg f•b;‹-öu6»ûÉ÷¹0–U+~êî©»§îùsfúÄíxЦÂQ5úyt5«r¶+}÷èÏÞ¡«m g¤S¹•K’îÈÚ]<©b{Ü_qWlÛ|¹†³B£>¤ÚAæ s &¡d2Ec!×ðTRh”¶ð>ÿÿ‹§ý³üªZ>} )PÕ™XgbBRRÛ|‘O#ŸFÊ_k#˪uBýÄY@-¸ñ÷i¿ûm[›­>ö«.ßç§3NgœÎP­ø޹U\uØ)¶Ò©üC¡ÅŸ Ê·M~°mkÒ­¯F>|©Zñ³üÕòWË_ÉŸK‡ËÚÙ/OÑT¾¬èÿü]±•~G^éäiª(›Ê‰Ì‰ÌQ±øé>¾ûøîãåÏåÎúmqþT¥¬*÷+¿Ûvì@p!_J¶]e»ÊvÙ”ú¬¼üF, =•¤*9aÁÿ/<Zø?†®žáÕ;Š'Wô(;fʪZ¬¼UGXÌÔ­è[`Åþ0ýaúÃB:wÄëWë=bÞ,SÅ6=µù,ßòò½=èÖ [ƒnP7BäˈôÔ5Ý}Ë«Êö™ª´ƒ´Ï¶.ä®,áS€h””=²=²=ZÑZÑZÑ…¼sÀ¢ÒÇ'‹¹ ¬b­CBLÚhÊZý´{Ê÷vV^V^Vžj…pÌò碓¨i¡ÑX¶"¦F˜ ]IµYû¢Þ…8É÷¶0~…±¬Zñ“‘Ÿ‘Ÿ‘/FnëûTz)ΰê¶ýõmré"ßÛ‘½#{GöVů¤ƒI“ʟѬ“ƒŒÓÉåJ¶MJ[ÐÌ«Ñ:Ë{–÷,o’)õYyyL羦û·Ê£¬¶7ëÖ]Wÿˆý ·h›;mBû?SþgMÎWß×àŸû€M‡Z7/ž°…gøìöÙ¬¼UGXlÔ¹è[`Å——§hŠÌÞÞ¹w¨6Ûs%Õö‰r·*'ßÏgWœ]qvÑu#D¾üˆèÕÊ˪s%Õfo?¹*T[áBq9q9qD£ôLž=µ°sΠô?îR¸-©ÖkÒ”¸-…¼I´ÑíF·ÝVÝøŽ¿‡ÊÚ·êãß…Œ®¤ÚýºáIž;äûY¿*:n27™›¢OœØµg܃)Ü–T[gñà2•ŸÊ÷óþ‡ûîWÉCæéÌÓ™§ÅOþ©Ô«a¥ÈëJªmô2¤ƒI!w…Þn}»õíÖäQê³ò2?]Ǩ•×·Ê£ÄzòÏW͘.±ìêc7÷ùáÿñêó“ªn\TáƒæßZ‡þyщiÏ “BÅúU]Òõä*V^€4Pоò((¶A}õÔW~º<Ô¿áw^ƒØžûü6ó@”Wð~…¼ÕÏÕÏÕ'¡n„ÈW4.2Í ÞÏöÜç·‡úÏí5¨gôÔwP_âPªîö½Û÷n!Ÿìú]ìÚ¸äQ¸-±;<ŒÃk´Ÿ+ßχk®u¸–êÆpü…«}œ¶7¬ºë9û@½Bîf~"P²rd9²‡Û· ¹Ó3gÒáM5)ß~Në3`Þõ¤!ŠŸç~œûq®ê†püŠÎîõøN?Gv÷9íõ-[û%É÷­0f…ñ«ºñóhÓ£M6)ŠŸøØË¿yÜ¡ˆû9m;Ï…ìNÊ÷m÷kݯu¿¦ê_©ÕS«§òVõF/B:˜8Ý}~;)»·¯ýeùNOO'RÏ•—Cã«Q™ßö¿£µt2•ßè×Ú\i˜qŠû…ÑoVŽÅß«%ÌJÛ«›diaÈÊ  À_E_åQP|Y²,Y–s´s´s!‹<ý8¢cµýlÕ}ZûqrçÒ!ç}P=Úùhç£ Ô™0 Q&Ÿ8rž­ºOkO?^‘^­g³½0óÒ¶çÇ=?îùQ>Œ|§ÕêK÷sZ›­»õ» ß·“Ü&¹Mr“Füç"ŽÓgLv¸CŽ÷9md´}[Óåò}+ŒYiÄOC‹† -äϱýê%±öAq?­Ÿ{Ù×ã±¶¥ž‹F÷B K¯/½¾TÕ#'ß0ß0ßPQfxó×Íëü­Éñ>­}ÓúˆY°«Â/÷ä¼ÎyCî¤Î+/¿R‹wŸ8ümËÀfçj~×ÜSþžàî÷õ®<ÄVßâ^Ã]öU}0ëÅ>Sñ¼÷×=fÔò鬼)¡ü¥Qôý4€|¢#SŽL92¥„µ¹¡Ž^KYµÓ06ìŠÛ.Zѹ{Û§´OiŸBÔaDÈ”%ÃFŽpæ>àâ·ÕÒ\ œ›Û6Òk)ß«ÂlOÔ©ƒœc9ÇrŽ)Z8y:Np__ŠRn±Wøçœôƒ7õê³Ï6>Û(øÎEÑ™¾¨ÒádP ™^qÛ˺‘g}Ï*|;౜c9Ǥ?ékÒפ¯Qt¦qK.Nòøƒ‚nqÛ6æyÛÒŸÁe‚ËKj;rãÎ;7R¦ ?P=ø™Þ§µãÎtow_¾W‡_~aø²&V^öC¢ñm³¬‚]_Í'¾ó™–º=ÎgçüGbýÉoÜê'Ø¥¹èÖ¨¼Ê¶+/@J( }?`Ÿ(ÿUþ«üW]-ºZt•Ÿj·O©ûÚ£ÛvÊ·Ï^uhPýƒ¢®»Þw½ïzu€@ *¯dTÿÀ¶òíö)Ó³=JÉ÷¤0à ³=Q§>66ÚØhc!RzúVUýË.û;õ.e]å[óvµRZÄË÷çãÆ#Œ¥?ÂyÉŸo/·–ÓÉ÷”oó/tùVÚ}®Ñ:ý†òý)ŒSéÅOÈþý!…<‹¢IóñÕ­.PÐU¾Þùì ÷QŠ2¥óÏ?>ÿXJ‘“ã—ã—ã§è|“‡/)[µùžòí_Uv ˜¤¨?ÿÎø;ãï ò%V^‚j³æhÈ ßS¾­2¾_ÀôlV^€ôP.)}K`Ÿ%å生S~V4ù¾téh4”-2ÝåÅ]eÚ çÎÓM“åû0"."."NªŸ_»^ïz½ëµ¢øÉºr»n¦Gi…Ä/_c€`Ñí²ŠqG*ŠŸ÷fïÍÞ›‘#±ò’Web¿¼(Dqë‘06mµQ®Ï›škXyRE¸>k–¿\þr9Eß’E@ xºòéʧ ¿É¸´ehwçÞlçÉ··«´J÷WøÁ¶eâ–‰[&]@Ñ„‘¢hÝ®²5Â9ÛyòíÒ–qNνõ›0«]è~¼ûñîÇå#D«™A”QGßý‹n%¯dSï_­IB@Z]ãæ~ZµäûÍ]Ã]Ã]#_'_'_GÚ‘#œ£p¾…ltV·ßjzAÖ:Æ1ÌŒl°`ûÁ":6$ÎLO·³Öù~Æ£:Ì>Óu‚¢~[¸(p‘Z|©ôÎÌ;3ïÌTÔÛt§]rß@(ßž[ÝÕ'YQ¿{tìѱäE(zååu`ªñÖ²AùÖ>1ZçÄÊ 6 À%eüÂñ Ç/¤è[R((1;w$îHT”Ô mtÚ{*[{BûêCÇ?ƒ2õUäûÈ÷‘ïeÏdÏdψ+à?<“=“=F¢1õêCÒÏAlí í±ÐE5¼§*ê+a&'¬ È É É Q-&Aïë]ö×I0N3gkOhmtZžê³[QeôÍè›ÑW}âG8_E½1å¶ÿ$‡`rÂZ똊a:mË:2Sxç´0Õ'~’S’S’SõFë³sOØfSôÚñ^s¿kèjé§]I¾¯üNøð;‘ >ñ“P+¡VB-…oAž¹z°O 9¡Ð>î¶·yàE}Õïm¿·ýÞ’Aù•—Oä¼ÑI?“ ­ë´Ø”E5Xyê€pIî¦è[R((a}èûCß%¸éó›Çû–Uç ¾¬³Qy!®îîFcõ}õÒ›¶oÚ¾iK,ÊF¢1åîîÐLß'ëìñ!®ê¼Á—>M˜oYE½$ÌÞÄä¥ë§ë§ë+ŠKÛFÓ£Òý}æ¦Rç >‡s]7y®ðž³ÒÛJo+­žñ#œ»¢žYÙ½Æf—sj]ú}Ó1,høzï ›‹ ógýtýt}õŒŸ‰ƒ&š8HQÏD_õÂáŽ:—~ã¢.ZyŒr¼R¾b¾¢^z²ïɾ'ûÔ.td ²„惛n>Xásbªmmë¿R3ÃWMO: ¯£¡QÈëM¾7ùÞäû><úðˆ\ʯ¼ô¾·Ìshæ;dÑoǨsfè?NwM+/@}P†8QP²odßȾáqÄãˆÇ…ÛXëš÷ýIíJ¿ÎQGCÊû›šy(܆¸:úêè«£‰"àÓ#HÑøò7u70œå|Ü8¤¼Ú•~×­iìû“¢žflaö&Š ÈÚ¹k箫° œÓÔ&ÆÞß/aiÚ)uÛàs4ë¶y\UE=·.n]Ü:âGèE½´Z§f=×*jWúÍéÿ¦ÚÛ4E=#Œ;uŽœüèüèüè‰ (|ÎPô¾ÕÍÞª]é7ðÂC.skϩ䧨gRï¥ÞK½§Îñó®Î»:ïêè¿Õ«ÿVQ/ÝÊÚjçÿ‡ºe†/wþ5hžE-“{Ú _Htßä¾É}>¿ði+/ý¥Ý |[.ÜxÜXíJ¿cÆ™®iÌÊ P7€!N€|/>¾øøâcѯm?¶²Ñ+ïê°Á÷laçê÷íµ LtíõFÒȤ‘I#‰àó £IÑX³×²tÕµ{¶ðÀÒê÷ÕâÏ+Íô^Qôl,ÌØD”1éð¤Ã“+Š%ó%µ§¶î7cilÊßàóMX˜vÌözûVƒ+|DíÅÖ[_Ìÿ#ÿü?ˆ¡„>QÔcsÊWÏrj&{"íÌ0w`ýС½¹eY^UÔÂX#rYúYúYú¶‰¶‰¶ ËÀm­ÙõP‡Òolÿ3aî.6;|´ô>VtKÔ–¨-QDŽàÁ«¯¼*:ú³ôªŸžêÞ¾+4°|…§öU¨®¨7Ξ<{òìI"Ÿ¿òÒ 6ígéZmô·,U‹>/^fÑLV^€z¢ q¢ à z˜û0÷anÑéï²²¡ëçȮǴ ó—ÞßE£HMßVE÷ÀçÎ;œ‰ d #«èÑwÑhí@ßVÜໞ¶)ÌYÙ¸mÎsŠîa–&ZP 7e7e7c5b5b5ÅUÅúŽÎ˪íš°¯ô¶ö|Ï/®|¢”Y¿°Û‡õ@}Íúšõ5sÊç”Ï)OÈ$ô‰Ð?Šz¯k´Ë‹!æF¯Y ½Ìðùš™jš½6x¢¨„ñ%Œ5b¦ —Q/£^FUô¨èQÑCQïÕ½8´²EÃøÛ—÷xȤWúí뽿‹ó© Áb*˜)ê®+\W¸-…||ݼyóæÍ¢ó¢ÍÕ§,qÿIª¥ß»e÷«þõ_Ñxlà±D ¾ÄÊËãôøÒkJ°ôë•09m“}rçè¸m¬¼uFâDÀ÷ðÕÃWÿã;בGìãMw½ÜÖ±YÐ\UßÚËOèò(ôý’ßB^9[}Ö»Êì*³‹Tø‚„QVôH\òÛH[gËü„Ô½¡ïUþ~Ûÿ/hnä‘Z{LwýÇÄ«‡¯¾"Bð‰ÈÈÄׯ_·èHsÍa¾¤¬46ø<ïLê´ñ‚¦±î$ýnŠÎ·™V3­fZÙë²×eóØg…„þúJQOÔþŸæÐkÛZZù-•Fé7yxãeUË=^„1%Œ/âD‘—f/Í^šY¥Z¥Z¥*êIÛ}¾·ô— Ú—ü½ë•/ýÆ\ÙàéÔbþL{›ÇEÇÏÊC+­¿º¾´Ô{]ô ³®0 ø’““Â+(Á.¿Sæðɾ“…¿'έ=¿eK7§ÔªÒ¢ï–éAʜъ+N¬`kï³}¨Loo[Vw¾{Znj¯Ð)âÌ ß;D›†Ô\˜b_e£2g$ŒbàÓäÌ;™wrt¹ÑåFÿÇ—/õuŒ54Dï_ÝÒ!sT¿+<]ÄYô™2ßmDXýž‡Í-•‰Ÿ+³®Ìº2‹Hø4YáYáYá­w·ÞÝzwÑýRÍûn¥k—×ëø^sfxïáÎsÏ;kdUù?âÇ-Î-Î-îɬ'³ž?øÆ+¯ÊucZ߯ún¶É¾vb.ýºo=<ñ™î KoûHV^äQ†8QðÍlß»}ïö½Êlmx<2¶Ö_œÔ¼áN¯ûbØÚ»Ù*ÃCOo7SËeŽ`ÔÀ¨QF|ña×ø¶„‘(ŒJeÆoOïÈ–·#·òß †­½¤æóó¼î{šèjt¸ËDÓwʧ NA‚Þ^x{áí®{ ø(û(û¸Jk•Ö*-eú?Ô¾êbà §—9VÝ$†Ìðò‚õ]|ŸµŸ~Ãf|L®{®{®;b[y™W©åyÀëøT¯­ƒÄPôuÉVf~ž^sëï׳òP4 À' À¾±¿Cþù;¤yõæÕ›W¯ ´XmïZ6ƒÓ-›Gø<ÍëÚ¥_èÖ/·©wïL›'– Õwö3ËÐݦ­«üqž28epÊ€« ˆ“0B•ÑfÆßië.:r„³ß½3;÷<úrÛyy]SN„nM·\ý·ÏÓXíN³m+œÂŒ*Ì®\e|++«¬¬²²Šòqk°ÇeOÇ*§úÿö{™jæÜ8øð ¾³íí‚ÎG‡¸6‰ÕZØÚÄ>`c½bŒ¯‰U'VX5¯Q^£¼F\å/Aè[¡Ÿ•¿.m&;Ö6K;Z±Q+ïÚ™º>ÿñå2Ã~Nï¸S¯—G½½-6ÎRþ8…qÁUþrÞxsà͘11cbÆ(]*v°39ÔÕkcO'£‘¯/´òhù˽׎ź6n¶sª©õãݶ‰Úo”?΃Ñ£Fs•¿œ{?ÝûéÞOaåÃʇ•WþºŒµë¶Ùnìåwë7û•’5M 3ýrùá”msýesZ±pê¢=Gk†R+SãÆ7Œoœ¿}þöùÛ\e¨ÊÊKk„Áãïì‡D9ÂûüŒq;÷Á/^V!å„G·±®þÛâzÃyf³òP\€!N€ˆÈÉ­'·žÜjvÀì€Ù Å0Ûì¨Áé©Aþ›"‡7l䵦¸Ûyçsš‡ùÜ]ö,ì;ç´6ÿs¬h¶©Â'Y4}ÑôEÓ³—f/Í^Ê5ÄO­ÂÈý´Qßæõ´Ì6-{ßÙ9í|ÎêTŸ»ÅÝÎ;>ßÉkÍÔ ¾e"f{øœ.î13§0‹rM!Ï??üüpÏþžý=‹Õ´¼´MÍ×ÖÞÚrƒSh¯°I7ªEÿ1ö€c1¶ó~^œ~â¯*ûûý5ã´Åˆ×;=Öîf”jv¼¸GÒ4¾i|Óø»/Ëý¾_•ÐçBÿ÷ªYmÑ®ãçÝÇfÆŽùõšzø}ÜÓY+ä†ò™á³ŸÛgW?¶±Tíx·±½·¹ÿjù@§º†L÷¸G"Ä¿0¸¦_ÓŸ{þÜóç·#nGÜŽ÷ª™_w¾©Û¸–c¿£• Úç/Õ±o[ÜG÷^¼gs@3“)•¬“¼kF„ þ´cúéw¦ßyïøÞñ½#×ô+¹%»%»uè·C¿úíÓ®ZI>ƒ çÏœ3ÐÙqÚÑm /yw/nf˜z}¹gµE»FV¹‘Yc¼©ö§ÉšØ5±kbó¼ò¼ò¼¸°ÆÊËD3 m=-û×ßÄwöè8v×êÔbß×›6´Ã|'ÛVeû–­èápßÕ€ÏGâD€H¾pøÂá Ž¥K9–ª zs_Ï}=÷uö£ìGÙ¸v€ oI<Ê~”ýHÑâŸy„R˜-¹v¿‡ï¾ø¾ß~úÿøj>¿ùüæó¯ô¹ÒçJ®×B¸.â!Î…˜çÚ‰Á©:§êœªã³Èg‘Ï"ñÇÏ”!S†Lò.î]Ü»8®ìJÚ•´+Éè¶Ñm£ÛâŸåç–Ÿ[~.dþÈü‘\;°òbåàë  q¢ @\½rõÊÕ+ýCû‡öCê_ci¥5–Œ:u0*çYγœg\#@z„Ñ-ŒtaÔ‹aþfBaVäAu½z÷êÝ«w‰åË%–3×1×1×Ãøú}ûïÛßþxÃã 7pÄL¸FÂõCä1,ijÛ\#1»=óöÌÛ3G 1hÄ 1ÄÏHŸ‘>#wFïŒÞý!îCÜо¢–¾6}múÚ˜-1[b¶ˆ!~·nܺqë㯎¿:þ*tþèüÑ\#°òbåàë£ q¢ @Õ‘‘ùóâŸÿ¼8öøØãc[ µj1ôË%ýËu.׹ܾ¥û–î[ú&þMü›x. ž„@˜ „™áËÍ<ÂÌ&ÌrÂŒ'Ì~\HÕÃ9ç<œ³ºÑêF«Õ;VïX½c_n|ùôé7rÁä“L¾½ùöæÛ›éU'\Gáš ×÷ËÅŸB¬ qKÿ«ºK»/í¾´{Êã)§ó§ý2í—i¿lNÜœ¸9ñbÀÅ€‹ô¤zzSëM­7µöoÛ¿mÿ¶ùíç·Ÿß~è¡¡‡†긷ãÞŽ{›•jVªY©¦¹Ms›æ¶Ki—Ò.e Ç@³Rf¥ÌJÙ™º3ugê½ÿÝûß½ÿÑ“+/> ` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H` À €@"(€DP‰  A$‚0H`ˆÿ6‘f¿DÊr %tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/mergeMap.png000066400000000000000000002205211431412030200251300ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTgãþcSŒŠ(6Ä‚(RDºˆ"ÅŠ{EAc4ÑÄh¢Q{‹]cÃD5ön¦¢(ö‚¨(ÆØbW,ûýcŸßùù9ë@w‡÷‹sî“ó<¢3÷\3ìÜ;[LЄbLh0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0Pž'ûûìï3ù4ºŽg¶_‡º|1øÌÔŸê÷a³`¼û”ïþXâãnÿí—?Ow+7,}v}§¿ú«cëÖ¼ßötß+ƒÝü|§æ§ÎYW}]õuÕ³&eMÊâC+€7JÞéÏÁüœÅ!åk¯\ò»a>ƒ§Ç- ¹î¶gg¯pçJÙ¢m†Oiµ~äŸÉ¸FLòvÙøwËä{gom²Ãynÿ~nókuøÌ¦¯U•ÿöïê¯{úk GZE ÓD »~úúéë§#R"R"RþÅÉËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎê_Z;8kpÖ଼ÿ”·nWãhœü¢·Œíýù4ÇÍV¬8r¤ Fÿ΋×ÅW¬ïóÍìùç«…9µ}ñ/¶ÍÛÚÛÚûð²ÃË/ãø…M®éÏ»¼Ÿ§}Ã\?¯a³?2ÂË+ë¹S´\Àw1—wmÐliƒàå®OÝTv®›÷mÓ_õ×FŽ/´„¦‰ZÔP×P×0noÜÞ¸½yZÐüвEÙØß.6ŸïÞ5grLjÈã‚](Éû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬vLÁž˜=1{bò^ŠÔ¹Ü«Ï7ýÛ-ž_¬`ëÞ¼î¡ßÞZ\£¢Ÿ[EßÞy*rúî;¸ï³QÏF=Å ŠþœÒŸ_y9ƒ¯ÔØ[I'ŸŒ ôñ}[÷/Ï?ŠÞ\b~¥ÀL—Ny¿î鯓qh0L04åἇóÎku¿ÕýV÷s_t¨çPq¼uÌAçvW}½t%b? -ý¶M^3fÅÆ„†œôáÈÀª‡Uª–û¾¸ví6úæò›Ëo.'¼yS2¦dLùbðƒ¿œ—òÃõа’³Š5¸üƒCƒßVéklô^4móæÃvÕO o™—}Iš”4)‰GCù¢?òrÆupö°.ÛufÀHºÑÅÆ††¾ÜÞÿdHëí)áŸ{†åe_ô×Lýõ“ À|QÃ4QC#Î>ø|žÞ5»»Këý^Ö¦¶\’ûxàçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯üÃ/ŸÕŒ™3Î+ ÎŠîG¾2µÒרèÕqÒ®õë*Ôuø²Þ?üjÝæa›‡mF€Kîä~~y<­r̦߹‡«úëÌæ.fVl“PçOCûÖ/‘ûÞ鯟úk)y€9¢†i¢†Ù;r0ä`HîË CÏzz;,~ö4zCð;æUýþŸß©ßÙÿdHëI_ùßp Î}·wÞÞy{g²@á¹´äÒ’KKrÿ‰\y—÷“ ±~®s“öµ2—Ò÷5cà ˆõ x÷Dz¹ïïÜÇsÏ}L6€¼ÐŸ/¹ŸS+Û5 ­ÿ“îQlŸÐ 󽋹ów¯™ãÚžpœVõnîû«¿®’ ˜ `˜& `˜1!QHs_DØ×¡M²—j¾Ë%ÆÆÄíígùùç¾ïë’×%¯K&'¬ó¥Ï—>_:÷ŸÂN×úëbÆ¥¯±Dïžn¹¥yÙd«õZÛ÷Iã&›4ŽœÆèÏcgmx¹±–©Uº X¦½»˜¸_CnºíÍýú©¿Æ’˜ `˜& `˜¥„2 eÊä¾ppeb·È€GÚ[4ù?¿MïØ«Y`GGÛ2VãÍö!Û†lBfÈ¿+¥®”ºRêÖZmìþ_Öj¯ú}uôï´xm¼mß!ËŒÍÃOs~šóÓ2¼J^;k>WgºÝÄçu¢ÅàRÚ¾‹9òYû$¿è¸›+u¥Ô•Rd¦¦‰fæBê…Ô ©Æ– >¶ilõÁƒN½“›¶Ðö¢É«ãó^Ñgƒ+††ÖlR9ÂØÌ¶8lqØ‚üðßÜo¿ýýö¹×Þk¦]Þòž¶«ßWÇFçâ:'Öª~¥U—®“Œ>¤Úºj몑@.;S¾8âñ•C­ìk1q!G‹Î]Ìåƒ]×LÉýºª¿ö’˜2 `˜& `˜GgytÆØÒ@­ 6¥ËßN›Ó76( è,š¼:fï_)øÏP©æ ÊÍÒ7JÜ(A–È»,,,Ÿó>ç}Îû ë³`æÉí§ŠNõûF猯Q?¬k7£¯ÓŽ•9VæX²„¢IŸcgÇСžåÆëVÅ6u/šw1­è>²ñ¯F¯®ç}Îûœ×_‡ÉL0L0ÌÁDÝDÝÄÛÛ[£¿þwïMÝŠæ¢Éÿy7ð¶è'ÁõêÆW,nýš¹rJwJwJ™ö2íe± /Æ8Žqãhô]¿ÎS»l*[D«ßWß œ·%q^ÕôÆ%Ã~36WÓ¦?L'Q(:ô™7vFtSï¦ýÌœ¡1çBîs“Ò¢Ë^›+ýu˜DÀ4QÃ4Qà ¬²\e¹ÊÒØr@jµ®G–³hòêx·Y¯­ ÍØäž“{NîI®È]®„] »ŒýÇŒ]uõ×dÂSC\Pvþ¾ó÷¿ëçpš k&¬yØüaó‡Í™™ÿ†&íÖ°[Ãn 3¶°{OëT/'JŒGŸwˆñŒÍ^ò…ä ÉȆҷ¥oKßfìghá=«oGÝklôýdV“ëÍÞžà=Á{‚É´MŸscgÁu].Mêq·blœûq §ó_ÆfO}&c0Àù—™™iì.€2ø¿¡†I‹5>j¼á ÿù°^µú²8’—qz»€õº½æ}K¶î¶î¶ºOtŸè>!i¼jÊî)»§ì6üéY!»N)·–nÅÍHŒ¥èÍ}tU†fütÇØÍÛóÏG<AÒ =úlKþv!¼gw(¹9~1RÈŸ¾MìúÙv7œCýõ™¤ÀtPçß«ïýÍepÞQÃD°;awÂÎØIþdt_9h(‹#y_ví¿)ÄÏ:ܲOÙ×,Eí)¹§äž’ä ½¿§þ=õï©Æ^ø¸Î˜¼Í‰r7cÜ‘ÄÊ¿zor3œÉŸýÔè§Fä ڣ϶aæÛöwŒ®zF—ÃJÞÆ?'vÛÒ¸®±«±þZMÞ` (€óO_èêË]‹<£ Î0LÏSÝSÝSßTßTßTÃSz[DXŠÇDþíx8»}¸ŸÑÏQÎvÎvÎv&z|9íËi_N{ÍgvŽëô|pwjÝ;ú¤ÿ”½³ƒ±W .=ºô詃6èólô±Ï³{¸7)Ï]É¿'§6úÌižá|ê¯Õ¤¦€¸`Q `˜œÓö§íOÛžÀöÓ­ç”/gTÌ…‡,…ü·±å¹ZOªt4œÛ}iûÒö¥‘=@Qv7ænÌÝc7þ¥~Þ¥\¥Ðýoc­øOGÄ´4œÕÙcf™=†ìAôy6Ìù˜3~¥ëLáNä¿OŽv 2ú‰ìúë6ÙÀÛE\x(ƒóƒ&'êvÔí¨Û†'­Tªí"ï3,‚ägLÕižÿzùuÍtÍtÍÔeé²tY$P4M¿3ýÎô×|fmÝz½»ô¤ÄÍÏè·q~Ÿ?Z»1ËìœÙ9³3 „ùÒgØXÂïÝ{\SkîDò3.ØÓtžË.ùÕ_·I Þ. à7ƒ2øß¢† yPéA¥•Œ>¦Xˆ™ÏòGþGÏõUËÚÌ4œáÔé‡S“C@Q“’’bìHÃ)‹ªH'(qó?Vk9»Ë†3,ä9B9„ùÒgØ0ÛCÆ4Ȩu‘»üŸõu ªhì*­¿†“C¼-Àoep^PĬn°ºÁꆧåòÒ!n=Xø(¨qïâ6³½¾æò7d CÈ! ¨9š|4ùhòk>~"£ùø¨+·5z»Ní¹©‚á<·®ÝºvëÚäæKŸaÃl§Dt‘eq÷QPã ;÷]µ^s Ñ_ÃÉ!Þ à·‹2Ø `˜a „žŠ÷Æõ®xÅ”#æî îòñÿz»ˆ^šòÖ¦oíÜÏØ…/çYγœg¤Pt I’8$Ñðg¢ç¬ Í×L0…êÔÿÈR‹·ºd}‘YÙÝ«M`«ïíÝÊþiu Â ›븸}UõNÀ•°ÏÝe³d£‰ÖÀÎ+>;2Ѳ‚õP›×¼Þ{ºþéú§ëI#Ì‹>·†y®¸ ÜKË/tkb[„º¿ÝWþYþ1ÅC>+w¦ìp‹;ÿÉÍ=ž4™l w1§ïFÅù¿¦Ö_ÃI#Þ `ÓAü* `˜„Ç™3gžx^ÉUÇÚ˜öçþ–Ž-jáß¢Ú¤Š¥_ÝrÓÿ úž²Kåê¯ù4¾k¿_ûýÚïdPäØäØäØ»h´rù‡;¿ÝÒÔkØd« 5¬?®~˱KÞo]ªu `±¢Ì‘2¦V×¹ÚkȈ⯹=¾;þ6™„yÑçÖ0Ïóë7-îÒÝ^ó_ èjàn‘¦Sg]i2Û诱ÚäØäØI¼yÀ¦‰2˜&á`Ùƒe–}Íß+‡´wëmÊÕïûþPwá–›~¼o}›t¯s†[¾¾Ëú.ë»I@Qp}Ýõu××½æáÏ3š5èXïí¥®ÆJŒ´Mv¹æ}꛵¸ìAËûÍ߉òrž7¨ò$ Ïâ?þ¸º±Û·_7žs¾šKÓÔ¶ó-,~±8ú꾘܃ §N·yºáœ83â̈3dæEŸ[Ã<_véúe@Œ)¼æß=ªõ!¯ª¯nÛœÄÀªÎgÌh:Þec^Ƨ;¢=ƒö˜Î]Ì€Çõÿ®¹ÈpÎõ×s2 €7ØôÍ2˜&aü³ñÏÆ?3<Á.yvµ p3……†Ûz ¬·vp g÷]c2ü*×™ãþg•*<0vi0ýøÞ–Þ¾¯y¿BOËž–=-É$ (Øá±Ãc‡‡áOC·ƒÃæ}ôv‹R×¾_žžù~É̹ßgS&~ªÿ Ë]ýÿRki»œþôÿmÝ¿fÉ:gM­n4|¹ó¡†s^eU•UUV‘I˜}n óüòiÿ¿CºšÂk~}Ý«ß*§N}­ýÌånÅØ¸·x›N^_ιþzN&ðæQ›—¢SSÃ$øó;æwÌð¤Êpîw%x¿),4ür>tO}¿¼_Lé$'#öƒÐ’F·?E—¢K!™mûfï7{¿ÙkøsÐ7vv¿ÝµßnQêСC³KõÛSþ@Õ¿kxäå‘Î>+f>Üžñÿ½ù÷ÿ7°©ÕÀ¶3u^¯ùäÔþ/ü_ø“L˜>}V 3Ø¿úJ^¦óšÈG ŽÕõÛ™êøØÎÑÜ à›7zZ4ùÙpæõ×s’ €7Ø|i» ¦†‰^"«NµV®ƒé,4œÝÕ©•ÿ÷?}ÐxW½LÃÑ `ýÖØaD•µ†ÛŸ~&ýL:ahœwKï–Þ-_óé¿—9äüv+Rûœæs£ÒÊÇVQí÷UíѨNKß¼T¹¾»ætÝÓÇpL­vÈŒj1Èó5qµ½n{Ý–dÂôé³j˜á‰•ü£ë>7Wû­::Ô¨ò•~ÛFöñ^ãhm¾Õ¯~|Ù£ÿæ×üb®þzN2ðæQkƒöÊ` `˜è%²»Ÿ³“ýsY†0ßøÇ ÇÔh¸ý·2neÜÊ ™€¢ö IJŠõ›hS«Kó>Öì}näÉWß7lš°«0ôîOɆóŸè“è“èC2aúôY5ÌðöÕá=›˜æ}Ê¢!A>®õ¿ÀÚ$»zóJU+·*¿Ìò¬K½J¡Ö©£„j)q%B6¸-ЕŽ-jÒw4w•ÿÀò›×Ý…omØÜi£ ¦†‰^"'íñ×9µ£.ìqí¸îû ·?éHÒ‘¤#$PÔ^Tºç9´I3Ó/z½»N}´é”Ç™ÒVýàVõ«Š³{T¯×¡ӦW÷ÅéiÿŒ±CL³ö¬;þÝÕ× çsÍu6×!™0}ú¬fødRÇ —™Âëü'ñ}S‚ƽºmÖ«-,;=/Ëͬe]ùÔµÝo6¾ašw1á›j¯’E Ó\[ Öó-ƒ)€a¢—È_#BoÔoO\Ø£˜Ñv¶÷ Ãí?w î@ɵW Õ}[„wºjú°Õ¥êŸÖ^n¸ýe(¿Âê©óÇûO1åí÷i1#eÛ<Ãíÿ¹ÝÏí~nG2aúôY5ÌðÕÒÝ®5nn ¯óOï8¥áç†[;´~§šM7¶ôkÐYÿg¶Ü ûÔcÅg¡îýjÞ,ûŽÅ‹ÿswcšïþ<¦{­^À0͵ `­2¯2¸˜éœÀ«¶$‡µöXJ\Øã‘ì%ý&7ôjýñiï˜zæ[¿ªþý‘'í3Íí÷M“´÷òí¹Ý´çãÀ¦ð:Ï 6Õ½>Õo•ûŸU>¨ð`}D‹?Ô|õþÅð»övoó­×Ô×ÔÀ&v3fƒ¯®ÎXòÀ\ìü}çï;§,v®m]Ñs;pa'îw×py@ÏáN”ígéæò‰¿Æ/:tÁ'gV¹_¸­ýúÔܹ•ݽÚöyu¸>±ìš©m¹_÷y±û?"oО»)½nî1å{–{wÓµY½/í››Ú¾L8ê߬îuòÀ\dnÌܘ¹‘àÀ¼€·À\ÞllÔïE•æ¾ûCŽ¿º_¼x3LçÀù7•oÕ¬AŽ~Üt•ÛUË;€ ?ŠÐ;€õÏ@ç‹/ý—áÉÀg¿ÝÏ^è¿Ð¡?Éä‹/¾øâ«¨½1—ÏÎK ¬WÞ¯Jýj:S«}ðpe¸2\!™|™þ—>«†6Ï.¨Ï¶^mùcÙé¦vcì3€I&_|ñÅ_|ñÅ_¦°¶° Ä‚ J03ÚûÚ5r×È]#c‹Ç-ž÷êWÿç‹Ðg¹¿#|ÒS; àÂ׎káá¾Ïpû“Ž$I:B2EíH¥{žC›4{ËG^>ßëËW·ÊéiÿŒ±Còþ7x4×ð×pý÷Z&ØÄUªdj°gÝñï®~Íã[7×Ù\gs’ ӧϪa†O&u¼Ðp™)¼Î—oD¶ð ž¶}èóáŸiÝ.4nš÷ïÝv(üÏÒú=ª×²âë/Lí'|SíâU²^w¼ýµ}YÈÌhƒ¾¸°fš kò^úêÿü›/}_E ½Dv÷sv²ßC\Øã;Ž©;ÐpûoeÜʸ•A2Eíˆeë 6Ѧö.^{ë=íƒóþ½NŸDWõ¿÷&VúÍcQcS+€]…¡wJ6œÿDŸDŸD’ ӧϪa†·¯ïìÙÄ^ç7ò«öWÅ`ýV5ÿ±–uåSyÿÞ/îzŒu¨§ÿÞ¾¢ë¢î¦vSqWù,¿¡€i®-P›;ó-}_E ½DVj5¬\ àÂÃ;Œ¨²ÖpûÓϤŸI?C2ÚæÝÒ»¥wK߃:/;sÈÙt `‹ÅeZ†4˜ùý“¸.ÿðÙºg{ïºSþ“ÊË«5Õ«ƒcû±WM­vÈŒj1ÈÓpæ¯Û^·½nK2aúôY5ÌðÄJþÑuŸ›æJ^îS¤÷ÚÎ÷>U6ÍBµ¥ÿójBd–ÏzÓ¹yÙ£ÿæ?ÃýÒ_ÏI&Þ< `mÐFéû* `˜¿c~ÇüŽž<Îý®ï§.Œ1'#öƒÐ’F†Rt)º’ жoö~³÷›½†?}cg÷Û]ûíV¤^§¦øn\RöO«½ºm5޵nѳ뜡}ª£Ô³[Õ¯*ÎîáСC³K_}à³þÓõ”6µO)¶é¬óZo8ó/ü_ø¿ð'™0}ú¬f8°õ!•¼LáÕþã¿ú:YמosÚꟕ«¯uûŹ…ÕX¾}Ox/Ïà#­Û'úußèÞrnƒYŸ…º÷«yóÕê7z³ë“±¦vwsóFO‹&?μþzN2ðæQ›/핾¯¢†Iÿlü³ñÏ O¤Kž]­Ü(€ c¼·¥·oàmÃ-ïiÙÓ²§%™;Û†™oÛß1ºê]vl w(yÿœØmKãºÆ®Æúk5y€) Î?JßÂ@ “5>j|ÔxÃûóa ¼jõeY$/ãôv;êu3œCw[w[w[Ý'ºOtŸ4^5e÷”ÝSvþô¬]§”[ËF·âf$ÆRñæ>º*C3~ºcì&íùˆç#ž iÐ}¶%»ÞÇ3„;”ÜÇ¿)äOß&výl»ΡþúLÒ`:(€óoçï;ßù;¥oÁ¢†I»5ìÖ°[ÃŒê»÷´Nõrb‰ÄØxôy‡?ÁØì%_H¾|Œ`(}[ú¶t£Ÿ:YgxÏêÃÛQñ}?™Õdçzc³·'xOðž`2mÓçÜèã u=º4©ÇÝŠ±qîǞΛ=ýõ™ŒÀtPç_vdvdv$¥oÁ¢†Xe¹Êr•ÑϯM­ÖõhÀrJ^ï6ëµ5p¡±›ÜsrÏÉ=ɹKØ•°+a—±Ÿ§îñ£†.­AÝûêè}iƒáå×WWý°áŒE¥E¥E¥ért9ºÒËÑåèrô™ÍgŠçØdX}ó"³ßÑàÍܹ¼:ÆwkçásÌØUWM&\05ÀåÕ÷Súæ0ÌÁDÝDÝÄÛÛ[cË÷ÿî½±©‹&Ï·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆy1ÆqŒãGc¯@¼§vÙT–ê·QZÜ–ÄyUÓ— ûÍØ\=L˜þ0D¡èÐgÞØÑmL½›ö3s†Æœ ¹Ï]LJ‹.4zil®ô×aÓD ÓD ³ñèÌ£3Î[¨5Á¦tùÛisúÆÍE“Œãý+ÿ*ÕTy ±YºQâF‰%Èy—å‘å‘åásÞç¼Ïyc?a}Ì<¹ýT-€W <2¾Fý°®ÝŒ¾N;VæX™ceÈŠ&}þC‡z–s¯[Û<Ô½hÞÅüµ¢ûÈÆ¿½ºž÷9ïs^&K0MÀ0MÀ03R/¤^H5¶@àð±Mc«têÜ´Ez×o¯è³ÁCCk6©alf[¶8lA~øoî·¿ßþ~{‹\y¯™vyË{Eè]¿çâ:'Öª~¥U—®“ŒÍɺj몭«F~ý¹`ìLùâˆÇWµ²¯ÅÄ…-:w1—v]0%÷ëªþÚK~`Ê(€aš(€a–Ê$”I(“ûbÁ•‰Ý"i{ÑäŽc¯f}lËX76Û†l²m™ ÿ®”ºRêJ©Ü_xT»ÿ—µÿ¬ßN‹×ÆÛVñ÷]²ÌØ<ü4ç§9?Í!3À«ôç…±³æÓqu¦ÛM|^'Z .¥í»˜#ŸµOò‹þ‡»¹RWJ])Ef`ú(€aš(€aÆ„D!QHÌ}á`_‡6É^ªöM··ŸåçŸû¾¯K^—¼.™œP°Î—>_ú|éÜ ;]ëp¬‹öª_ïÝÓ-·4/›lµ¾B+cû>iܤq“Æ‘Àý9bì ² /7ÖÒ!µJ×#Ë´w÷kÈM·½¹_?õ×XrsA ÓD ³w0ä`ÈÁ܆žõôvXüìiô†àwÌw¹äåÎþ'CZOúÊÿ†Spîû»½óöÎÛ;“ Ï¥%—–\Z’ûOäÊ»¼Ÿõs›´¯•W¿ W,<"Ö[4àÝËæ¾¿sÏ}<÷1ÙòB¾ä~N­l×,´þOºG±}BƒÌø©E÷š8®í ÇiUïæ¾¿úë*Ù€y¡†i¢†Fœ?|þðùÃy°»Këý^Öæµhràçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯äþ3º^͘9ã¼ê¬è~ä+s©~½:NÚµ~]…º_Ö»ŸûÞm¶yØæaäø·ôçÎ?ÍqsÅ‚-zý;/^_±¾Ï7³çŸ¯äÔöÅ¿Ø6okokïÃË/;¼Œã 6ý¹¦?ïò~žö sý¼†ÍþÈ/¯¬çNÑRpßÅ\Zܵa@³¥ ‚—»>u[PÙ¹BlÞ·M=Ô_9¾Ð `˜& `!‰C‡&u]æºÌu™Åâ^¿òÁ l°°Öò…4Ýârh‹wX9BVÛÞóÕøÈ—>ë$§¶+½/nëö—Gúâ±AÙ®³‡ýá9Ãá„oŠ]œíØÿöïÚ&Ù&Ù& ƒ…ÁÂ`ÝdÝdÝdŽ&æâ¢ûE÷‹î­ƒ[·þo¯Êw¯²Â~fµ+!Ÿ|]dzGÛ¯C]¾|fêOõ{°Y0Þ}Êw,ñq·ÿöËŸ§»•–>»¾Ó_ýÕ±ukÞo{ºï•ŠÁn~¾S-òa]õuÕ×UÏš”5)‹G=o”þ¼ÓŸƒù9‹CÊ×8^¹äwÃ|9N[rÝmÏÎ^á:Ï•²EÛ ŸÒjýÈ>“ÿp˜äí²ñï–É öÎÞÚd‡óÜþýÜæ×8êð™M_«*ÿíßÕ_÷ô×@Ž&´Š¦‰EÏJÝJÝÊ£kŽ®9º&\ “ä_Ú¿´i%\ WÂs:ætÌéÈ¡ÀÜ]üòâ—¿ì·­ß¶~ÛLóHµåÕ–W[¾Õn«ÝV»Ì…™ 3rÔS ?õç¦þ<5Íkˆþú¦¿ÖqÔPPÃ4QºÛûn﻽o‰ãÇ%Ž5kÔ¬Q³Æ›_(±²·²·²ŸµrÖÊY+¯»^w½îÊq@Û|<ðñÀ 7TÜPÑÏÙÏÙÏùm6c?ûáØ/ã⎠`.ôç¬þü}[WýµKÓ_Ó8.(j(€aš(€×¸ßâ~‹û-ö÷ÙßgŸáÑã‡G׎«W;.ÿK$vÓí¦ÛM|ið¥Á—v6ÜÙpgÃÛ“nOºÍ€.­MZ›´6~;ðÛß~Xöò–yñâ9$ÿ¯@Ê— .Ü×¹¯s_ç £7ŒÞ0úZÓkM¯5eÎ-ÑŸ×ús\¾ëÏýü_Cô×"ýuIÒ_¯˜s0MÀ@Hxžð<áy¼C¼C¼CBTBTBs Û‰Ë'.Ÿ¸¿;~wü>x8çNΜ;Ì €Üé¯úë†þ¢¿ž03  À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À@Hxžð<áy¼C¼C¼CBTBTBsswxÂá ‡'ÄwŒïß1Á1Á1Á‘9¹;êuÔë¨WüÄø‰ñfÌ8˜¡»¢»¢»ÂÌÐ `à5î·¸ßâ~‹ý}ö÷ÙßgxôðèáѵãjÇÕŽ³È7»évÓí¦¾4øÒàK;îl¸³áíI·'ݞĜ£°=üðá‡?»‰ÝÄnßF|ñmD½æõš×kžÿTW]it¥ÑŸ½÷Ù{Ÿ½·­Ô¶RÛJÝšpk­ Ì9 Û£­¶>Úª U†*C¿óý˜ïǸýåö—Û_ùOu…~úUèccc·éø¦ã›Žß|cðÁÌ9ÓG èn﻽ïö¾%ŽK—8Ö¬Q³FÍoœ•½•½•ý¬•³VÎZyÝõºëuWŽ òã^è½Ð{¡+âVÄ­ˆsZê´Ôi©Å[2Íšÿ4ÿ«.W]®ºp\¤ÒiõãÕW?vîþÜýùÛJõ„­¶NØšú~êû©ïs\ õlÛ³m϶†óÆÌo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À(B‡&MêºÌu™ë²ÿX_Õ¯|°ÂÁÁ#,¬µ|áM·¸ÚâVÎc„Õ¶÷|5>ò¥Ï:É©íJï‹Ûú„ý呾xlP¶ëìaxÎp8á›bg;ö¿ý»¶I¶I¶IÂ`a°0X7Y7Y7™£ ½“ÅN;Y̯¢_E¿Šÿ-].­+µ³¾ñÙ ÷EµÞ›Üô#—Þ›íZ­óðúDdzUçDÞöY.mh{Ö;}ûWáÍ==—ú¯p}6¼ƒ×øÚÑ~±ÿ°b×ü”g»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo04îúé맯ŸŽH‰H‰HÉûò}ÈËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎ*ïÛæ7Ào€ß€‹‹Ó‹¨Û5o×¼]³Ëì.³»ÌÎ{r2í'U\·ºN³gõ3¯Žî^ªqï‚MõÃj}ì›~½£CøϘ¨YNÕ¾ü%ô&—M.›’–'-OZÎñ-šî[ß·¾o–÷äx_¨zÕ¶ÔŠý¡mÜ2¯”èV=àLÁ¦:Mê;2¨ùî+­ï{ytÿÎ9ØþPÞ·­ú²ê˪/;qüÄñÇ‹ÚѤÞ. `hQC]C]ø½q{ãöæe™ÞúCËec»Ø|¾{לÉ1©! ¶BÈû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»å½‚ú¥jèÐúY#clCF¾­TïzÑzW1wµrV…[yÙæ»üØåÇ.™û2÷eîã°[lY°å_<Þy‰Gp×½Ëúœô¶R½ÿeÄ0ïê ïU‹¶ÍÈË6,?²üÈò/Ú¿hÿ¢H<öœx»(€¡)ç=œ÷p^«û­î·ºŸûr|=‡Šã­c:·»êë¥+ûIhé·U$¼fÌŠ 9éÝqYÑT«T-÷}qí6ÚmôÍå7—ß\N´çI‡'žtˆºu7ênîI°·þ¶Ü3éhÛ?½u9•cv„\0¡TëbcCCÏþÙ©³ÿ¤Ve>¬Ò÷Þ=Y²zÉê%¯Æ^½K´çùÒçKŸ/=0zà?ü‚Ž«eTÙ/÷Ul#{íÈ~?&<ägSKõ…°.ÅMúôtõv‹rß—rýÊõ+×/eWÊ®”]Ú>¾ÀÀÛE 8øüáóyz×ìî.­÷{Y›Z…ûxàçvë|Ëçeï;%vJìD´áŠãÇ+ŽyúÌQ¿°ò#Í+ÕGvµì÷u¥Ùå;Y®Ë}ï”æJs¥9yІëé×Ó¯§WZ]iu¥Õ¹÷µJ‹0÷DóJõ©ÑQ6 ã‡ÚÖ²š“ûÞíY½gõžÕZ=ÊÀÀÛE ³w0ä`ÈÁÜ—Ú‡žõôvXüìiô†àwÌ«Nxu|¹³ÿÉÖ“¾ò¿áœûþnï¼½óöÎdÃ|<y<2÷£s³~­šÕÓ~èÛ'ÈÏ|S},faHÂlÇ&㜿Ê}×}·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°ióMµÎ?Ö>´ââ/ƒÒ]g便qïŽ÷žöŽ50ðvQÃŒ ‰B¢˜ûòú¾m’½T3.ŒŒ‰ÛÛÏòóÿ‡Â,y]òºdrb^n$ÜH¸‘û‘Ýz/l‡Ç%í¥úÔÚ(džÇÿ¡0û8îã¸É‰y9ÙödÛ“mÿázõ~‹h÷ ÚKõyûÎ?5ú‡_Ù™»h‹´tÄ)€€·‹f)¡LB™„2¹/©_™Ø-2à‘öê„WÇ;޽švtô±-c5ÞØ}4j®¿…¶S¶©ï° àÐ65ƒ*}gÿ’{Kî-¹§ãN ¼]À03R/¤^H5¶€îð±Mc«têÜ´…¶ë„WÇç½¢ÏW ­Ù¤r„±™9lqØâ0‹ï&êªÝU»«vÆŽ]ù§eÿ*ët{P¯âÎE'ÕßõË >Ö~PëvûÍŒø£ø£ø#ù1M·–ÜZrkIîÕïµ[ÝŸ4¾_tRý2»ÿÝî}º¶ªñ®±9Ùá±Ãc‡‡¹} `àí¢†ÙxtæÑ™GgŒ-š×š`Sºüí´9}cƒŠNð ³ãý+ÿ*ÕTy ±YºQâF‰%È’éxöõ³¯Ÿ}]î‹r_”ûÂðx•»Vö;‹û÷Ózonê^4SõmLÅo;´¯ÛÐî±±T_N¹œr9…,™ŽŒÀŒÀŒ@‡iÓ¦;j¯è¹£INÑLuΰ˜s!÷£ý]j´66?I’.$]0ß Po0ÌÁDÝDÝÄÛÛ[cËå÷ÿî½±©[ѬþÏ»·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆ•)èy³çÍž7–dƒzþÒä ©Î,Þß%øžÿÕT¬`8K6¿Úüjó다I/’H”)’2$eHбTÿåÝ=²ñ4Rµ ¦fÈØðÎתÜ66WO“Ÿ&?5ËÏq§Þ. `˜U–«,WY["O­ÖõhÀrê„WÇ»Ízm \hlÆ&÷œÜsrOrõvm™¼eò–ÉÆŽÑ¹¨N7ý/“äWÇG«ûlmzÜØŒ¬=²öÈÚäêíúÃúë?¬£cJ‡í~÷Hò«ã3ïèè súǼÎØ€âŠ(nŽI .XQK£–F-ÕÏáV‹­[-²zgõÎêÍÌÀ `˜´[Ãn »5ÌX°{OëT/'*cãÑçbüc³—|!ùBò2öæÝ?sÿÌ}£3ߨ¡åŠ‹H¯±1éT§íþFS}|Éñ%Ç—±7ïIÀ“€'ÆŽËŠÊ¡åÜΑ^cãå³]7Ì06{ñâÄ0¯j¼á¢ççÃxÕêKm—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€×TeÝ~­÷Ä~‰Í˸¸wPšëÃ9¬Ò¯J¿*ý²]²]²]HÚ›42sdæÈLÃ#Òê–C§*ót3b‡Ö#·¹k&4?ç>ÎXÕ—Ù.³]f;sÉp½ z彿¹£ À«(€a¢Nذ;agl¡óÉè¾rÐP ƒ¼Œ/»ößâgnÙ§ìÙÜSrOÉ=%ÉÛ›q~Ùùeç—Kõƒj½å¦þ$6/cvJÌÒĺÏ*–·®i8“¾Ùð͆oÈÛ›qÕæªÍUc©¾u¼gÿ&'HlžÆþ±n¡5ÖØ¨¸Àp&—¥.K]–j.© .°ŸKÎ/9¿¤íƶÛn´È3Ê`PÃô<Õ=Õ=õMõMõM5\ÖÜ–âñ„ªàߎ‡³Û‡ûýålçlçlg¢WØÂO‡Ÿ?m8ÿ«G5/ï^Š”þÛñLrÔ ÿ0£ï˜¬Y;“O.t=wöÜÙs§áü/ÜÐô¡ËRúoÇKÛº„Kõóžôü#3Hp!  @ÞQÃ䜶?mÚÞpÓ~ºõœòï匊¹ò’à¿-ÏÕzR¥£áÜîKÛ—¶/ìž”…) S[ Ïò‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µë5Ÿ¦³"fEŒégƒ¸°Q wÀ09Q·£nGÝ6\¸”Jµ]ä}†b ?cÒ¨Nóü×έk¦k¦k¦.K—¥Ë"…aà¶Ûn{Í;Ú·…óüˆdægLÝõyÀùµ=k{Öö¬.P¨ $…aT÷QÝGuÍ;Ú›6Ë©¯#™ùoþÔãQ“‰FŸÙÐ+»Wv/SÎð›D CÀ0!*=¨ô ’Ñ%o!fvH<Å@þGÏõUËÚÌ4œáÔé‡S“Âõô§ï<}ÇècŠöŸbO& àÝíýj®`8ÃIÝ’º%u#‡ëÅÞ{_ì5–êôâý,‚ÈdþÇîÅ+Øo0œáÄøÄøÄxSNðÛB = `˜Õ V7XÝÀpiryé·”5î]Üf¶×kG¨ðÀè;Ûòþ(ÚVý׆x9¬²aõ¿%û~qna5–ëK c¢7»>©«ÿoý÷êÿžÂ+îméíxÛpKzZö´ìiI&óo~Öü¬ùY†3|Ú2ªMÛ¤º0Æ'%ûÎêd¸%­<[y¶ò$“ù·zÿêý«÷ÎðÁ ŸZøF’êÂ_Ø÷û6ø{Ã-ñ´ð´ð4ÑJ•ØQh 0L‚ß1¿c~Ç^ó‡Îý®Ê{%9º§¾_Þ—8óþ7ï\ÜÚÊs‹þ»Ê);ÜâνF½KžÈýïyõÏçÿq¦yútÉŒØBKÝß]Š.…dæGÄþˆý¯©Êžv‹.´ŠTÊø$6:4ÈrKÙ-Ö¼æó­—ä,ÉYB2ó#ºgtÏ螆sû ¸÷‰¦!¤ºðƺ›l3­Ë¿æó­Ëf•Í*kj9¡6w”ÁæŽ&Áp±êT«aå:ÞbúÙ]ZùÿÓwÕË4óS*|q×c¬C=ýwµßR'ÇîHÞÿ†WÿÅ//y\t(ôÇ_‡5vQe­áþ¦ŸI?“~†dlªÿ—„í±á¡ž¤ºðÆ^u\‚ª÷1Üß´éiÓÓ¦“Ìü°“íd;ù5åºkÌþˤºðÆa‡Q2×Åý[*„þZ³wåhýw-nt×ubÞ¿÷ç^A³]#ôßÛâ«ZCª|XØ{úãΆcê4Üß[·2neÌ‚Mu‹j…V~Hª {Oçé¹´3Üß+=®ô¸ÒƒdlªÝ'T¾Qá©.ì=]•ÑìZý‡†û›44ihÒPSË °VQ˜ `˜ÃåÂI{üuNí̱T¨=ßæ´U¯ÿ-z&‡ý÷ïÝr3ìSúï­óí«c…ýpѵãZx¸ï{M©p$éHÒ’Y°©þº«—cmgR]Ø©Þõ õÏÃýMœ8;q6É,ØT÷þÝålõ}¤º°S}àãvÃ|žî¯ððð©å„¸(  0eÀ0 †K„¿F„Þ¨ßÞK…JË[.Õ×ÁŸ?ýÈ·uÞ¿Wÿçõß[Å¿ü‹rv© f´í}ÂpĈ;G2 6ÕsŠ59í¼šTvª¶ëàä·Èpwß=~÷x’Y°©ÛÍ/°Î:R]Ø©NîÔ9´QÃý]gµÎj•©å„¸¨ÉOÌì `˜ÃeÁ-Éa­=–šc©PîLÙáwþ÷>Ú5VùïÈû÷êÿ¼þ{_ý{ oOdw(é7ÁoÄ/ ¡Ûê{‘êB¯Ê,;×kôy{3f÷m²Ðy©.ìTÿy¶ÛñÆ É´‡×À…&ÁpApçÚÖ=·›ûcE}ûé¾ÿâá¨Ö¶Ûìk£ÿÞZÛmìÊ?-ìRáÄýŽã`úÍXóQó5îýHua§úâ¬.#"ooÆB«¦»\ŽêÂNõµ?»?j|—¼AKÊÏ+?¯ü<^ `˜-½¸qeûy·è¿kûžð^žÁyÿ^ýçPê¿÷Õ¿‡wó`RÍ;€ypQN5ïï@ÞQÃ$.šïgwœ]wK5ýw-· ‰të™÷ï]V3ø…[]ý÷FýàT²ÚàÂ.Œ}ðBÿ…þ ýãßåë¿Ϊù~°y¥ÚØgÏè?£ÿŒþ$³`Sm¾Ÿl^©6öÀ?ÌýaîsM-'aaa†[ˤկÕ#VX="040404ïÕï‚w¼»à]^ `˜ÃeÁI{üuNí̱TzÌÓÃáåS[çïíïåý{»×q®eÿ¿Ï•&xÎp8QØ¥ÂÚq-<Ü÷îoÒ‘¤#IGHfÁ¦úë®^޵Iua§z׃ÖsõŽØ_{¾Íi«^V;,ë–í¨ÿï¶ÎßÛß;øó§ù¶~“û¸o}›t¯s†{º¾Ëú.ë»Éü;5ñÔÄS gxFzãÈzûIuaŒ‡¬>]à»ÒpO—TZRiI%2™){Sö¦ì5œáQs|Î;'Õ…1ž Œ’üëîéÔESM]dš9¡6”¾ZE “ð8óqæãLÃEF¯äªcmμ­O~µ`(ì¿çÍì?!ÄžLælÙ¯Öá*†3œÔ-©[R7rX°^ì}±÷Å^c©N/ÞÏ"8€Læì^ܹ‚ýÃNŒOŒOŒ7å„P¿-”¾Ð£†É‰ºu;ê¶á¥Tªí"ï3Tù“Fušç¿Þpn]3]3]3uYº,] , · Ü6p›áÌoÛ^Ìó#’™Ÿ1uv×ç{ çÖö¬íYÛ³º@] .†QÝGuÕÝpæW7m–S_G2ó3Þü©Ç£&þ:T¯ì^Ù½L9Ào¥/ QÃ䜶?mÚÞp±Ò~ºõœòï匊¹òzà?¾Kò\­'U:Îí¾´}iûÒÈ^áIY˜²0e¡ÑO¨õ‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µËpVWĬˆYcúÙ .l”¾È0LÏSÝSÝSßTßTßÔ×¼c2",Åã õÀ¿g·÷³4ú~2çlçlg¢WØÂO‡Ÿ?ýšwLŽj^Þ½)ý·ã™ä¨þaF¯];³vfmRWØzîì¹³çNÃù_¸¡éC—¤ôߎ—¶u 7–êç=ÿèùGf àB@é €¼£†‰:awÂÍ'£ûÊAC© ò2¾ìÚSˆŸu¸eŸ²# grOÉ=%÷”$ooÆùeç—_f,Õªõ–›ú“ؼŒÙ)1KCë>«XÞº¦áLnøfÃ7¾!ooÆU›«6WmŒ¥úÖñžý›œ ±yûǺ…Ö Xc? âÙ\–º,uYª¹¤‚¸À~jPúà?¡†I‹5>j¼áâæçÃxÕêKa—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€Ã#Òí×zOìؼŒ‹{¥¹N1œÃ*ýªô«Ò/Û%Û%Û…¤½I#3GfŽÌ4<"­n9tª2O7#¶qh=r›û¸fBósî㌾£½]f»Ìvæ’ à{´4jiÔRJ_ü[À0i·†Ývk˜±åÎÝ{Z§z9Q>ïã'›½ä É’/±7ïþ™ûgîŸ1v\6vh¹¢Á"ÒklL:Õi»¿ÑT_r|Éñ%dìÍ{ð$àI€±ã²¢rh9·s¤×Øxùl×Í3ŒÍ^ü€øñÌ+À%åJÊ•”+”¾ø·(€aVY®²\eôókS«u=°œ áÕñn³^[›±É='÷œÜ“\½][&o™¼e²±ct.ªÓMÿË$ùÕñÑê>[›76c#k¬=’Oü}Ëþ°þÃúkcÇè˜Òa»ß=’üêøÌ;::è\ù§eÿ*ëd8cŠ(> ¸9&¸`½ú>`J_ä0ÌÁDÝDÝÄÛÛ[cÕÂý¿{olêFð|[ô“àzuã+·~Í\9¥;¥;¥¿L{™ö2X™‚ž7{ÞìyÓXªÿÔó—&OHufñþ.Á÷ü¿¨¶ bÃY²ùÕæW›__$½Hz‘D¢LÁ”!)CRŒ¥ú/ïî‘§‘ê¬15CƆwv¸Vå¶±¹zšü4ùi²Y^Ù(€€·ŠfãÑ™Gg}pn­ 6¥ËßN›Ó76( hÖ ÇûW þ3Tª9¨ò@c³t£Ä7J%Óñìëg_?ûºÜå¾(÷…áñ*w­ìw÷ï§õÞÜÔ½ˆ–d߯T ù¶Cûº íKõå”Ë)—SÈ’éÈÌÌt˜æ0ÍašÑ_nXÑsG“œ¢™êœa1çBîGû»&Ôhml~’.$]H2ãGôSo0ÌÌ…Ô ©R-š;|lÓØêƒz'7mQ„ÞõÛ+úlpÅÐКM*G›™Ã‡-³øn¢®Ú]µ»jgìØé{{P¯âÎEè¾ë—|¬ý :×íö›ñGñGñGòcšn-¹µäÖ‹\]»ÕýIãûE'Õ/³ûß éÞç¡k«ï›“;}4j®¿…¶S¶©ï° àÐ65ƒ*G›‡%÷–Ü[rOÇx»(€aÆ„D!QH̽ZØ×¡M²—ª½:!q{ûY~þ¹ïûºäuÉë’ɉyI¸‘p#áFîGvë½°—´—êSk£Ï}ßã>Žû8îcrb^N¶=ÙödÛ¸^½ß"Úý‚öR}Þ¾óO‚sß÷¹‹æ.š»HKGœx»(€aö† 9’ûòúгžÞ‹Ÿ=ÞüŽ?>tgÿ“!­'}åÃéê„í·wÞÞ™l˜¯ã‘Ç#Gæ~”cnÖ¯U³zÚ}ûù™oª³Å, I˜íØdœóWÿP~·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°i3®~ýcíC+.þ2(ÝuÆ?üBÃ{q½cM ¼]ÀЈó‡Ï>Ø"vwi½ßËÚ¼ê„?·[ç[>/{—Ø)±Sb'ò  W¯8^qÌËqßâVÞc¤y¥úÈ®öý¾®4»|'Ëu¹ïÒ\i®4'Úp=ýzúõôJ«+­®´:÷ã¾ViæžhfïbeÓ0Þq¨m-«9¹ïÝžÕ{VïY­Õ£L ¼]ÀД‡óÎ{8¯ÕýV÷[ÝÏ}ñ½žCÅñÖ1Û]õõÒ•ˆý$´´  Y±1¡!'½;.k82ðƒêa•ªå¾/n£ÝF»¾¹üæò›ËÉ€ö<éð¤Ã“Qw£îFÝÍ= öáÖß–{&mû§·.§rÌŽ“{ îÙ?;uöŸÔªŒÃ‡Uúæ¾/ÕKV/Y½äÕØ«±WcÉ€ö<_ú|éó¥Ñ£FÌ= Ö®–Qe¿ÜW±ìµ#ûý˜ðŸM-Õºk4éÓÓuÖÛ-Ê}_Êõ+ׯ\¿”])»RviûøRo0´¨¡®¡®aÜÞ¸½q{óòîIë-[”ýíbóùî]s&Ǥ†<~[EÂÖ„°5gëDÛ~o•§w3Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»YäÙ/UC‡Ö·ÈcòÖÞ¼ëEë^ÅÜÕÊYnåe›ìòc—»dîËÜ—¹Ã^lY°eÁ–yOõà&®{3–õÿ(8ém¥zÿˈaÞÕÞ«m›‘—mY~dù‘å_´ÑþEû¢pL)€€·‹wýôõÓ×OG¤D¤D¤ä½`yY³fåÆë|Z|ã~ýúW=›”*Øòàî罤À¸-»Â‚<æGNuöM¿ÞÑ!|‰gLÔ,'‹j_æ}Û\6¹lrÙ”´;ᾨÖ{óƒ›~äÒ{³]«u~BŸˆLï¡êœÈÛ>Ë¥ mÏz§oÿ*¼¹§çRßà®Ï†wð_;ºÑ/öVìj‘»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À€îö¾Ûûnï[â¸Äq‰cÍ5kÔ¬ñæ++{+{+ûY+g­œµòºëu×ë®äǽÐ{¡÷BWÄ­ˆ[ç´Ôi©ÓÒ·UMóŸæ?ÍÿªËU—«.äÇéô@ZýxõãÕÝŸ»?wþ¶R=aë„­¶¦¾Ÿú~êûCÀÀÛE ¼Æý÷[Üo±¿Ïþ>ûû =<ºv\í¸Úqù¯ ì¦ÛM·›>øÒàKƒ/íl¸³áΆ·'Ýžt{sŽÂöðÇ>üPì&v»}ñmÄ·õš×k^¯yþS]it¥Ñ•FöÞgï}öÞ¶RÛJm+uk­ ·&0ç(l¶>Úúh«2Tª ý~Ì÷c¾ãö—Û_nå?ÕúUèW¡_Œ]Œ]ŒÝ¦ã›Žo:~cðÁ73çL0Pž'UÓÔ45M}¬>V«ÔGê#õú@} ÞWï«÷Õ»ê]õ®zG½£ÞQÿVÿVÿVo©·Ô[ê õ†zC½®^W¯«©©©WÕ«êUõŠzE½¢¦ª©jªzI½¤^RSÔ5E½¨^T/ªçÕóêy5YMV“Õ$5IMRϪgÕ³êiõ´zZ=¥žRO©'Ôê õ¸z\=®UªGÕ#êõˆzX=¬V©‡ÔCj‚š &¨Ôê5^WãUEUTE•UY•UQUQTAÔýê~u¿ºOݧîS÷¨{Ô=ênu·º[Ý©îTwª;Ôêu›ºMݦnU·ª[Õ-êu‹ºIݤnRWWW7¨Ô êzu½º^]«®UתkÔ5êuµºZ]­®RW©«Ô_Õ_Õ_Õ_Ô_Ô_Ô85NS—«ËÕåê2u™ºL]¢.Q—¨‹ÕÅêbu‘ºH]¤.Tª Õùê|u¾:O§ÎSç¨sÔ9êlu¶:[ýIýIýI©ÎTgªÓÕéêtuš:M¦NQ§¨SÔÉêdu²:I¤NR'¨Ô êxu¼:^ýAýAýA§ŽSÇ©cÔ1êõ{õ{õ{u”:J¥~§~§~§ŽTGª#Õêu„:\®W¿V¿V¿V‡©ÃÔaêPu¨:TýBýBýB¢Q‡¨ƒÕÁê`u:H¤~¦~¦~¦P¨ÔX5VUû«ýÕþj?µŸÚOí«öUûª}Ô>jµ—ÚKí¥öT{ª=Õîjwµ»ÚMí¦vS»¨]Ô.jgµ³ÚYí¤vR;©ÕŽjGµƒÚAí ~ª~ª~ª¶SÛ©íÔ¶j[µ­¡F¨jkµµÚZ WÃÕpµ•ÚJm¥¶T[ª-Õæjsµ¹ÚLm¦6SCÔ5D VƒÕ`µ©ÚTmªªj ÚDm¢6QÔ5@m¤6R© Õ†jCÕOõSýTÕGõQ½UoÕ[õT=UOÕCõP=TwÕ]uWë«õÕúª«êªºª.ª‹ê¢ÖSë©õT'ÕIuRë¨uÔ:ª£ê¨:ªµÕÚjmµ–ZK­¥ÖTkª5Õêjuµºj¯Ú«öªj§Ú©UÕªjUµ²ZY­¬VR+©•T[ÕVµUmTÕFµV­UkÕJµR­Ôrj9µœj©Zª–ª…j¡Z¨eÔ2jµ”ZJ-¥~¢~¢~¢–TKª%ÕÔÔÔÕÕÕj µ„ú¾ú¾ú¾ú®ú®ú®Z\-®W‹©ÅÔbŠNÑ):%[ÉV²•,%KÉR2•L%SÉP2” %]IWÒ•çÊså¹òTyª-Ÿ’Oɧäò ù„|\>.—ÊGå£òùˆ|D>,–ˇäCò!ù |P>(Èô/ ô—Y’%Y’EY”Eùùùy¿¼_Þ/ï•÷Ê{å=òy¼KÞ%ï’wÊ;åòvy»¼]Þ&o“·É[ä-òy³¼YÞ,ÿ.ÿ.ÿ.o”7Êåõòzy½¼N^'¯“×Èkä5òoòoòoò*y•¼J^)¯”WʿȿȿÈ+äò 9NŽ“ãäeò2y™¼T^*/•Ë‹åÅòÏòÏòÏòBy¡¼P^ /Èóäyò•>•>•ÚIí¤vR[©­ÔVŠ"¤©µÔZj-…KáR¸ÔJj%µ’ZJ-¥–Rs©¹Ô\j&5“šI!Rˆ"KÁR°ÔTj*5•¥@)Pj,5–KR€ ùKþ’¿ÔPj(5”|%_ÉWò‘|$ÉKò’¼$OÉSò”H ¤’»ä.¹Kn’›ä&¹J®’«ä,9KÎR=©žTOª+Õ•êJu¤:R©¶T[ª-9H’ƒTSª)Õ”jH5¤’½d/ÙKÕ¤jR5©ªTUª*U‘ªHU¤JR%©’TQª(U”l$ÉFª U*HV’•d%•—ÊKå%KÉR²”ÊJe¥²R©ŒTF*-•–JKŸHŸHŸH%¥’RIé#é#é#éCéCéC©„TB*!½/½/½/½+½+½+—ŠKÅ¥bR1©˜¨u¢N̳Ål1K̳ÄL1SÌ3Ä 1CLÓÅtñ™øL|&>ŸŠOÅ41ML‹ÅÇâCñ¡øP| >ˆ÷Ä{â=ñ®xW¼+Þo‹·Å¿Å¿Å¿Å›âMñ¦xC¼!Þ¯‰×Äkâ_â_â_âŸâŸâŸâñŠxE¼,^/‹—ÄKâ%ñ¢xQ¼(^/ˆÄd1YLωçÄsâYñ¬xV<#žψ§ÄSâ)ñ¤xR<)‹ÇÅcâ1ñ˜xD<"ÅD1Q<$‰ b‚˜ ˆÄx1^Œ×¿ü×ÿØõQq¿¸_Ü/î÷‰ûÄ=âq¸[Ü-îwŠ;Åâvq»¸]Ü&n·‰[Ä-âq³¸YÜ,þ.þ.þ.n7ŠÅõâzq½¸N\'®׈kÄ5âoâoâoâ*q•¸J\)®WŠ¿ˆ¿ˆ¿ˆ+Äâ q¹¸\\..—‰ËÄ%âq‰¸X\,.‰‹ÄEâBq¡¸Pœ/Îç‹óÄyâB/¡—ÐKè)ôz Ý…îBw¡›ÐMè&tº]„ÎBg¡³%D QBG¡£ÐQh/´Ú Ÿ Ÿ Ÿ ‘B¤)´Ú m…6B¡.„ áB˜&„ -…–BK¡…ÐBh!4š Í„P!T‚…`!X‚„ !P…&B¡‰ B#¡‘ÐHh(4 ~‚Ÿà'ø>‚à-x Þ‚§à)x „BÁ]pÜ7ÁMp\WÁUpœg¡žPO¨'Ôê u…:B¡ŽP[¨-ÔÁA¨)Ôj 5„B Á^°ì…jB5¡šPU¨*TªU„*B%¡’PI°l[ÁF°lkÁZ°¬+ÁJ('”Ê –‚¥`)Xü?öî;*ª£øxbŠIŒ ¬¨ "ˆT`E±c¯ Xb/Øb‰½k”ØQ#±w4*н÷‚ìDTDöýcòž—ç]»°»|?{Î=Ïy"»÷ÎüvîÌüöÎD›D›DŒ.]0:tþèüÑ¿Fÿýkô/Ñ¿DÿýsôÏÑ?GçÎ7úÇ裌þ>úûèï£óDç‰Îýmô·ÑßJ I!)¤t)]J—Ò¤4)Mú$}’>I¥ÒGéƒôAú ¥H)RŠôNz'½“ÞJo¥·R’”$%Io¤7ÒéµôZz-½”^J/¥çÒsé¹ôLz&=“žHO¤'Òcé±ôXz(=”J R‚” =H¤ûÒ}é¾tWº+Ý•â¤8)Nº-Ý–nK·¤[Ò-é†tCº!]—®K×¥«ÒUéªtYº,]–.I—¤KÒé‚tA:/—ÎKg¥³ÒYéŒtF:#’NI§¤“ÒIé¤t\:.—b¥X)V:*•ŽJ1RŒ#–K‡¥ƒÒAé t@: „()JŠ’öIû¤}Ò^i¯´WÚ#í‘öH»¥ÝÒni—´KÚ%í”vJ;¥íÒvi»´MÚ&m“¶H[¤-Òfi³´YÚ(m”6Jë¥õÒzi´NZ'EHR„´VZ+­•ÖHk¤5Òjiµ´Z —Â¥pi¥´RZ)-—–KË¥eÒ2i™´DZ"-‘K‹¥ÅR˜&…I ¥…ÒBéOéOéOi¾4_š/Í“æIó¤9ÒiŽ4[š-Í–fJ3¥™Ò i†4Cš&M“¦IS¥©ÒTi²4Yš,M’&I“¤‰ÒDi¢4^/—ÆIã¤qÒXi¬4V#‘ÆH£¤QÒ(i¤4R)FH#¤áÒpi¸4T* •†HC¤!Ò i4H( ”Jý¥þR©ŸÔOê'õ•úJ}¥ÞRo©·"…H!R/©—ÔK ’‚¤ ©§ÔSê)õzH=¤nR7©›ÔUê*u•:K¥ÎR'©“ÔIê u:Hí¤vR;)@ ¤6R©ÔZj-µ–ZJ-¥–R ©…ÔBò—ü%©™ÔLj&ùI~’ŸÔDj"5‘I¤FR©Ô@ª/Õ—êK>’ä#yKÞ’·TWª+Õ•êHu¤:R-©–TKò’¼$/ÉCò<$wÉ]r—\%WÉUª)Õ”jJ5¤RZ´ð€IDAT ÉIr’œ¤êRu©ºTMª&U“$ÉA²—ì%{ÉN²“ì¤ÊRe©²TIª$U’*J¥ŠR©‚TA*'•“ÊIe¤2RÉF²‘l¤ÒRi©´TJ*%•’,%KÉR²,$ ©„TB*!™Kæ’¹TL*&“Ì$3ÉL*"‘ŠH…¤BR!ÉT2•L¥‚RA© T@* ~•~•~•òIù¤|ÒÏÒÏÒÏÒOÒOÒOÒÒÒÒÒÒÒwÒwÒwR)”GúFúFú&*=*=*=êsÔç¨ÏQŸ¢>E}ŠJJJúõ!êCÔû¨÷Qï£ÞE½‹z•••••••••õ:êuÔ먗Q/£^F½ˆzõ"êYÔ³¨gQO£žF=zõ8êqÔ£¨GQ¢¢¢¢â£â£â£îGݺu/ê^Ô½¨¸¨¸¨¸¨ÛQ·£nGÝŠºu+êFÔ¨Q×£®G]ºu5êjÔ•¨+QW¢.E]Šºu1êbÔŨóQç£ÎG‹:u.êLÔ™¨3Q§¢NEŠ:u2êdÔñ¨ãQÇ£b£b£b£ŽF:#¦íÅtè¶“ÎÖ ]Ї|( `ÐÀ$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ À$€ÆDm[‹l-²µHΞ­8õÏ™ú5§>žúxªÍ}›û6÷EÍ–.Xº`邉$>Ð$Â)[è³'¡OBŸ„JÕþÿ%£ŽI›'mž´9ã÷Ýwïß5Ùy¥@«E«E«ÐjÑjÑjý¬13 f ÄY‰Ù1“@­ÚB˜0Àà»ïr:Ûv¶íl›³gÛż‹ys“,¢– Wºeºeºeã¶Û6n›±Nç˜Í1›cÆ”ŒÛ°•ÃV[©GÑ[@Q@QàDß}Oôºeè–¡[|vøìðÙQ¹]åv•Û™E˜E˜EØŽ°a;¢îݺwëÞø|àóÏĉ=+¾ËÙy²sóÎÍ;7oÆóOóOóOËÎ{(1 Z-Z-Z-€V‹V‹V+7Ì éùÍršå4Ë)ãY5iФA“ÙÿíŒ `À#é¾++>µøÔâSsªsŸ²(eQÊ"“¯B-®©ã¦Ž›:.cm–=RöHÙ#ê×,±Cô¹Êç*Ÿ«”ÛUnW¹]ú½“&Lv:ìtØé°‰ö7Ûßl³ì9ç%Ý–t[Ò-ã§whÓ¡M‡6Ùy%’A«E«E«ÐjÑjÑjå†$}8·äÈäÈäH¢ÐÀ$€FÒ}×·Ö¶”m)ÛRHçצ]›vmšrm.Z¾hù¢åLÀ¸(| ðÂ9½â—ò~ðó€ŸMt@L¼êîüÿÞ÷÷¾¿÷eüÄÀmÛ·eç=”H­­­@«E«E«•fôç œ\prÁÉŒçV$¦HL‘bÐ `À#é¾ËéX¿cýŽõ³ÿ<»½èö¢Û À¹BEE†Cm84c=ŠåβZ§Ä QÀÄ€‰s*zÅtdð„à ÁLtìëd»|¹,tYè²pÚÀi§ ¼÷í½oï}›ñßlûaÛÛ~ÈøYR¤HÍøoÞ$¾I|“þcøá?6ø£Á þØÛoo¿½ýhaZ-Z-€V‹V‹V ê׈þœáû)ï§¼Ÿ¢|†bc)jÐ `À#é¾Ë)V,¬XXvvñåºï$€ÕÚk7®Ý¨\+Ê®(»¢lVß-(\Õ‹Ò†¾ÙÐeC— ]r¶eSÞ=K™{€{€{Àº±ëÆ®{×ä®É]“#>Œø0Büïfý3ëŸY®Ã\‡¹Óŵlôßè¿Ñ_îÝÄ$£rIŠ}þöÌÜ3sÏL¹åûúöõíëK ÐjÑj´Z´Z´ZPIßÎSy‰ræˆÍ‘& 0’î»`hh˜³æÇwßy\ùÓmîÛÜ·¹Oؘ| ùò1¤Rp¥àJÁkÐÊÎÊÎÊŽÚ„±úÔøSãOÿÜÿçþ?÷çìO[…= {¦úsû¹ôséç¢Î9ˆ…U¿[Éö%Û—lŸÕ+êlÛÙ¶³­.ž’Éx×#2Z-Z-€V‹V‹V êÌ éÛyÊ=HP¥Q•FU¥¶OmŸÚžÚ²Š0 `€‘tß…þÅûï_\ùÿo7¤ÝvC²ç {œíq¶ÇYõϰá’û•®ú“ €>“twªÞ©z§ªøiKè ÐA¡ƒ”ôS-[Ï=ô< ÷‰mV·YÝfu–?½€¢€¢€êkK ªÿ–Ñ6Ñ6Ñ6C¢‡D‰vP8(šODv¿ÓýN÷;Ë"–E,£µhµhµZ-Z-Z-¨?ƒdˆó]Ô&U$€IŒ¤û.üþà÷¿WþÿÍ"Ì"Ì"tÝi‹\ÉÛ (LØ8ˆº®8¥â”Š™üJ÷Hì‘Ø#±” ÑéZ§k®åUÙ«²Weí>?¡Ýó|ú$ôI¨Üg™‡š‡š‡Æ?ôëÞÿ~üýøûñâ}”ßß4É4É4I“ë+~D"ö÷’»–j¯«½®öz긩㦎µÃý Õ¢Õhµhµhµ É ’~ž­ÜŒ–øQˆXŒ:ÔG˜0ÀHºï‚:‹JéîÜ"7DnˆÜÕ…©I¢5'ÖœXsBn`F=Âpɵcú6)¹xÀâ‹h¾¡&wœ¥Í—6_Ú\£Ë( ( (Ðv~ÛùmçË}ŠíÛ¶#^x¾ð|áI|´Z´Z­­­41ý<ÛtËtËtKæ‹m!LPËñQ™¿äþýù<çóœÏ#–{­eQË¢–EÙ#e”=R,¬XX±0‡ 4+Ù¬d³’«¯¯¾¾úú»µïÖ¾[«Î™ˆß`†Í›6ÛÏÕÏÕÏU,nS¢w‰Þ%z‹ßNVnW¹]åvbÁÛeu—Õ]VWý÷ׄH¼zxèᡇƒÏ >3øŒÏŸ>;ìÜíÜíÜÅó—–––¢:ÕìT³SMñ{Ì·1ocÞÆèO ªîЉ'ÿ²ú·â·±³ËÍ.7»œøýiU˪–U-ETˆçE‰j5ªÕ¨V7;Þìx³cÎF¾~Ö©:]aÕKTé®Ä·n ܦü¹¿Uø­Âo²è~!áBÂ…Ñbtý¥ë/]qppIJÑb,Y4R¤¨E{Òê`«ƒ­Žöí3ÚG<µœæ‘æ‘æ¡»o¢êïãƒË.?¸üGÔQD5 jÔ((cŠk©w¾ÞùzçGŒ1~Äø3gÎ8èúÛQûsíϵ?+×ÝïÅ~/ö{1î›0\†2)Ùphá ‡Ê}Ö×Ýå•[rlɱ%rŸ"îæš¼ÿÜs?Ìýñ= _*|©ð%û*öUìÿçÇL¢ß(ú!D)@«E«ÐjÑjÑjA“$}>g1+¨|ÎÞ‡¼y¢Nõ‘& hÔ]ÈØix]ðuÁ×[žky®å¹¯ë¬‹´±ò§‹èü›óoο©É``o¿½ýööÓEùlvÜì¸ÙQüjòëÎÍÊÎÊÎÊNüï‡ÿ<üçá?Ù_ƒ=íý´÷ÓÞOO<=ñ´H,ÙÜ·¹os?ã~ê|î›Ä7‰oC‡ ¬I݉÷Ñ䊌©NÕ¹öƒÉ“&+ÿ×"1EbŠÄ袻/–â‘;+±#‘:ç¯Ñ¹PPØRfK™-e꼪óªÎ+íN(,Ü´pÓÂMš,:¤þµ‹………krÎ×G^y}¤vëú¬õYë³ÖrŸxeÝ•uWÖeg{h׉¾'úžèëŸ/k¯ìœ”|eõÊꕕܧ”.Xº`é‚ZûD•{Ôi²8aìŒØ±3”ßsÒæI›'mV~m•$- hµhµhµZ-Z-Z-ftõùœÅOù‰%@s$€IZèÀÝò»åwËO<Í©I¢"ãÞ'âsÅ“¦þiþiþiš'oL¿5ýÖô[muDJRüFR»I¦’íK¶/Ù^»õ»MóžÎ{:ï©ê¯Nø\¡s…ÎÒ$š‘ˆ®kÓ®M»6M+úºÒ3”:U窳!è=3÷ÌÜ33“ÅŸ¿±þÆúužNÖäÜ$>H|01`bÀD“l!&´[w‚xöÝé°Óa§ÃšŸ§x¾Y»5>èö Ûƒn+–ã=Ç{Ž÷˜2=%]G¯Øc[îSÄÙÙ‹Èêg½´iÿÒ^¹‡à:Ìu˜ë0Õ÷ Íûr´0­­@«E«E«ÅwÇpÏ|Hôè!ÑÔ, À$€-tà2Núk®ú…êª_O¿©Þ§äë(§£²Jt¦½*{Uöªœ=©&]×à§ÆŸjÜk^¯y½æ©s>ªÀ"M«‹r¨Ò¨J£*ž7yÞäy] ¥NÕgÕCVí¶Á‚'OPgo$í–OrdrdrdÆ¡löhÒ Iƒ& Äïµµ;°×üÇ4ÚýåxFª÷ã1 ëöŠ;ò×¹tìÒ±KÇN5=ÕôTSJÃÐ'%ÅnprŸ2uÜÔqSÇi÷ê¦Ì™2gʹO\QvEÙeÕ·ás‡Ï>Wy)Bå•`R¥,JY$×NŠÞ - @«E«ÐjÑjÑj!«5¢ÿg.·"šØBŽˆÔA˜0 µ®¶P(¾P|¡xÑÝ Š¥˜zžc6ÇlŽYÆ'Ò¾.é²{é—Š¤Ý›oÞ|óæ›ÃW_=|µOë>­û´Ö]NE,Z¨Ý«“û9Ñ?RIóOóOӼܴõ/iaZ-Z-€V‹V‹V ªkDÿÏüŒÃ‡3rçÿ{±ß‹ý^ŒúT#LÐZW;ãÞ±ÚzO¡ñþÅû×î“vY]0D<™*÷nb÷â .$|eGª€¢€¢€êsÿlü³ñÏtWƒ—à¾kr×än:…b×RÕïœÕÔ¯òù«ÿD¦:Ÿb¸ušÕ«–û—Í_6Ùü¥æíƒÜä}}ûúöõÕ]8Ú&Ú&ÚFî2î¡«»ÖO< ¯‹vOóï‹.¦Hj篿v~¹ŸŒÖgªÀBÆõ9”ˆƒþLJz4ôhèÑPîSâJÇ•Ž+­Ý«ë È}b-‹Zµ, åJ ÐjÑj´Z´Z´Z|wôÿÌU¯6Wï|½óõÎS¿€j$€IZèÀUXTaQ…EYí@d|VXŽ¥‡¥‡¥‡Øó5«ç,–KUý¼²úçüGÔQDɽ›X‚Uó.”X¨§Æß5þ®ñ·ò§”²*eUÊJw !…ƒÂAñ$ôIè“Ь¾ÿÈ#{Œì!÷ÎbA]]§â²Ú5Ü:ÍêU‹_(+ÿK±&×(•;“¨ÚQµ£jënè6;lvØlÕkhÞúÝès£Ï>rŸ’Õ2Tÿ ]MêE'¿»˜w1ïb®þ{н–åÞM,FXŸüþà÷¿/>µøÔâS³Ú–n-²µÈÖ"â)sJR&%ÅýZîSÄêÚ½:ñt¸êŸŽ1) ÐjÑjÑj´Z´Z´Z†R#†~þÚÝÚ 0V$€IZèÀÍ.7»ÜìrY}Oñ«IÕï<áÖ„[n}Ýí\gRÕygÕ)®j¯«½®öZ»Žm?lûaÛÚí4«Sb¡ã¬¾³ê_ä ç +t®æ%s}äõ‘×Gjž6ô:Íêû¤[¦[¦[êb&R¼ê/þ¬Ý¡ûÐ-C· Ý"ž=U~iíùE5žäÖnXì'­ù‰g\º\óÁ(| ðÂrï&~”aÝÍíÜíÜíܳš w|M¶$`RRsåv•ÛUn—ܧ¼yó6F»W—ø ñAâ¹O´a;Âv“’­­­@«E«E«e(5b(ç/öÀ&®€¯C˜0 …œx–7«ï©Nâp÷ÒÝKw/ýºsO^j>Hˆ;#v†ÜßN7uÜÔqÚ-mÕg.†Õn f\Ö5«ï¬z¯—…. ]j·C¦yØÐëôë®Zv?¡|þùüó}ÝuõséçÒÏEýÅŸ³讹”E)‹ReOX»¿ìV'ñ¯þg-8¹àä‚“Úm—˜2ÈYŸϸNCV]ÞsyÏå=”gv¶l%z—è]¢·Ü§ˆþ•v¯NuŸÍÊÎÊÎÊŽII€V‹V‹V  Õ¢Õ¢Õ2”1”ó_´|ÑòEËå®B¬ G-rH“´Ð»?þ~¼.ÞYìD›³ƒ„¹yçæ›WîoOv:Ùéd§ì,󮟺~êúI»å0yÅä“W|ÝyŠ…vU?íݒQ½t³:5kèuúuWóoÌ¿1ÿ*ÿûBñ…â Ågu ƒÍêâÏÙ?t×Üþfû›ío–= àq?ûiÜOÙÙzOÚ«ç 6_©ezJº‹^Ó$Ó$Ó$ÙO) ( ( Ý«SýƒÍ7`R Õ¢Õ¢Õhµhµ5b(ç¿n캱ëÆÊ]Åè!ÑC¢©e@ `À€:p¢«ªoשּׂAB»!톴"÷·¯ ¾.øº`v–¹ÏŸ>;´»h°xŠ÷ëγcýŽõ;Ö—{ç×v\ÛqM»%³-e[ʶMjÖÐëôë®Z» AGÛDÛDÛ(¿Cé‚¥ –.øuÏ"ëÏPD,¾Ùq³ãfG›û6÷mîgOX,®Ýk‰X±,b™Ü'¶ÞÞz{ëí꼟«Ÿ«Ÿë×¥üiÊÀ¸ÀrWêxÏñžã½¬žxjüMâ›Ä7‰ô”´[Gæ¡æ¡æ¡rŸ"ÖœÐîÕ½Ÿò~Êû)rŸ˜qoi&%Z-Z-Z-€V‹V‹VKÿkÄPÎ_ç}÷u–]Ó.Í?Í?Zä& äp.{žgÒäSÜz¹õrë¥?SüÏG[åpïÛ{ßÞûöëJXuùÜò»åwËO»Ñ¨þNÀÆZ§šÄ³Ü_‰ôžúµÐ¿xÿâý‹+¿OŸÖ}Z÷i­Ï `ñì²X]@¤-—t[ÒmI7±£pã¶Û6n[ʪ”U)+]¤ßT¿ƒØ¹\»×{!áBÂ…¹Otæ:Ìu˜:çŸqoleg­ÏZŸµÎ S¹'ü?2ì„-~4`ú­é·¦ßfõ oô¹ÑçF&%5WöHÙ#eÈ}ŠØCN»W÷æ›7ß¼ùFîË\,s±ÌEc”4Æíå Ÿm;­­hµhµhµhµrÃ7ÎÐÀ§k®uº–ÜU8v:ìt˜ŸrH“rx:^ÿÀ•‚+W ÖŸî}û*öU´›Öä -ÕåóÊê•Õ++íFãó&Ï›êø¨‰§'žžxºÕÁV[Ôç¡—î¾/OBŸ„>‘ýõzÆï‚ê÷)·«Ü®r»tñ#’ì¿/èúžb„ `™r:(tPÆ=ÉÔ··ßÞ~{ûi¾Î‡¡ô”´[GU-«ZV•]ÑAÜ%³³%Éx>LJ‚T ©Z-Z-Z-ÊV‹V‹V‹°¶Ä•Ž+WZî**N©8¥âÀ€>çCI?­©Ïýšw˜Jô.Ñ»DoýéÞY'Z'Z'j7¬É6ª÷‰LmŸÚ>µ½v£QõâHêÔ¬¡×©&ñ¬ùBГ&LVþ«ŒOÍfÿÐ=92929Rìh«ÝÚɸܖ®Àºø¾¤,JY”²Hî-[4¶h¬Îù«^M»¿‚×ç0T×WÍÉ5'לœÕo™v—×Ïž’v£Wõ:ºXKàÚ´kÓ®M“ûD÷÷÷&%A*…T ­­­hµhµhµHk—ئMó9 w"LÈáéxýO,Y4RºwÏGʹð¥Â— _Ê΄–ØŸU“š5ô:ÕÝ QP£ FAªÿv@ê€Ô©ÊÛ»gïž½{fX$¤Ë¯-¿¶üZMjA$8=Ý<Ý<݂ƒƒ·”ÙRfK™ìzéîû"ÞSî‹Ä‰)£Îùg|F\™XX[ÿï8ÈÎ>ƒØ!¾P|¡øBñªëtÜÇqÇ}4îž’v£·ùËæ/›¿”û”ƒßüþà÷Ú½:¹}ß…¦•šVjZ‰IIJ!•B«E«E«Z-Z-Z-ÀÙ9˜q¼ÉHPF˜0ÃÓñúŸV½û‹xº.§jDÊ9ãn4Êt±¤­xOMjÖÐëTóÚŒ;#v†òߪ^ZõâÏû:ï뼯svÝÅ"ÏêÄÒ@m;Ûv¶sþÍù7¥jR5©š:Ÿ›= `]|_^x¾ð|á)÷‰êï&•ñwµÊ^Ú¿´i¯ÿwäTËf;Âv„íÀÚú¬a+‡­¶RîSÖn\»qíFí^ÝßûþÞ÷÷>¹O=$zH4}Z€V‹V‹V  Õ¢Õ¢Õ2”1”ó³ rWaéaéaéAtrH“r¸§ÿ `§ÃN‡Ëýíýøûñ÷ãss ª.ŸÛ^·½n{i÷ZTïÿ¡Îuzj¡6 ( ( dõ}_=|õðUå©þâÏÚúVЧZ+,ª°¨‚ìâÆ"™Ýõ—®¿týåòžË{.ïÑ$æ³'¬‹ÅÄ®¼>òúH¹OÌø]Pý>wÖQvËï–ß-?¦ œ®uºÖéZ½æõš×kž:ßÀYµ´ùÒæK›Ë}Ê„[nM¸¥Ý«û©Ë}â’nKº-éFŸ Õ¢Õ¢Õhµhµhµ ¥F åüÅlƒÜUT ®\)˜èä& äpNÿÀÛ6nÛ¸­Üßžq8ãpÆ!7×`á ‡6*÷λöîÚ»k¯v¯åß1ÿŽùwŒ&5kèuª­Ú1~Äøã•ß¡Á þhð‡ò¿|fð™Ág”ÿ}ÈàÁ!ƒ³3¬ú÷Ñ"õ»·ßÞ~{ûéOK¢ÎûlKÙ–²-E»Ñ²Ùq³ãfG¹OÌøýUý>Î;w:ï”{Ÿ“Nv:Ù‰)ƒÜIì˾æÄškNÔ²¨eQËBýçòEžè{¢ï‰¾ÆÝSÒnôÊíÅ.øçóÏçŸO»W'ÞSv!ÄäƒÉ“éÓ´Z´Z´Z­­­–¡Ôˆ¡œ¿-Ê]…ËB—…. ‰.@ `À@wàô?<ÆyŒóçìLØV Žì1²ÇÈrïQ¤Z³ó[Ù"®E\‹8ÕQ§Ý@ö$€Çý4î§q?i7ZTCÅUç}Zlu°ÕA¹÷?ËÈ S¹sÇ5eb%†Ñ>£}Fû¨†fffb¿ð‹W.^¹xŘêÙYGocÞÆ¼É¦eÐT®¡þ>âLJ´Z´Z´Z­­‘¬?5b(ç¿gæž™{fÊ]E›ÕmV·YMtrH“r¸§ÿ à×v\ÛqMîoÛ¶l¨ÝÒNذ;a·ë°Ì_‡zxè¡þ”óöGÛm$÷ΞnžnžnÚ-ïCÞ‡¼iR³†^§Z«M•CÍEË-_´\üãë®?º^ùßXÙYÙYÙiwGjuÞ­ú…êª_ûÛóyÎç9ŸG[uw/é^Ò½¤ìI‹§lµvª4ªÒ¨J#¹OÜRfK™-eÔy3¹çÅ…ˆeË"–å†)ƒÜ™?ï–çZžkyNý³‹‡+ÿp‡IICùĘcþùWõ0LJ´Z´Z´Z­­­–aÕˆ¡œ¿Øu[î*B… D-²wÀ$€œíÀéø¥ýKû—ör[(¾P|¡xívžäžOU~.SÊùy“çMž7Éž¡‘ú»ÿªþDC¯Sí–³è.+¿ÏŸ>;Ä¿ºeè–¡[”ÿMð„à Á²?\,¬XX±0¹¿MŽLŽLŽÔVÝ©^BY» `í~_¤jR5©š¶â\õ>XîÿsÿŸûsÔAîI¿ð|áùÂsnÞ¹yçæµs·s·sWÿLÄÏt2~wè)é¢Âf‡Í›-÷Y¢}ÖüSú´îÓºOk¹OY<`ñ€ÅèÓ´Z´Z´Z­­­–aÕˆ¡œÿ‚“ N.8)wËê.«»¬.µ È!LÈáœþ'€Õymuýß|óæ›7ߨžR×·°:ï/–dÑüSzœíq¶ÇYm¥C ·Nµ[›b÷VÕÉií.ü«yÝYcýµl©Š¥e5¯»gžuxÖ¡r»Êí*·ËÎp³’ÍJ6+©É™‹ç5ÝÜÜä>%`bÀÄ€‰êŸ¹\œ~ðó€ŸsÔq'€O5=ÕôTÓ^ózÍë5OýÏ Ón ܸí¬õYë³Ö¹sr'û'%þóðŸ‡ÿ,Y4Rù³2þPæëÞÿÁå—\–»ñ¹Â…= £O ÐjÑjÑj´Z´Z´Z†U#†rþb¶Aî*Ä–Zä& äpÎPÀr»¥jëœ?5þÔøSc?W?W?W¹wOSég9Ë-¬­ÏR½hó×}–áÖ©–ÏVåBÐbAlm-þ¬­o¥GC† åþV,6«I<‹gÄÕ_l\Ok{£Zj5ª•êwÎêÎÍ©íSÛ§¶—{7Q#L–÷SÞOy?e͉5'Öœ¨eQË¢–…ú‘YnW¹]åv‰ý¶Ÿö~Úûioj'§–éVý‰­··ÞÞz»hç³úÎâoåÞyHôè!цXï´0­­@«E«E«ÅwÇPÎ_nþ§øÔâS‹O%®ÕH“r¸g( `uÞÍ4É4Éô¿½BÕ¼.øºàë‚]éúK×_äÞÙe¡ËB—…š”IötÁUJáK…/¾”ÕOT½Ç°®rúY§º¨Í‘=FöÙCý²ÍøŒ`ö+/ö{±ß‹©~ñëÎm_ç}÷u®\)¸RpöÇ›&ßñƒƒ±åÇ–[^õ;güQ‚¶êN» §3e ;b!}u~" ¬vþÚùkçÿgÖ?³þ™E]èϤ¤Øc^îÙ”ŒÄÚªßís•ÏU>WQ½¡xÞåñÔÇSO¥O ÐjÑjÑj´Z´Z´Z†X#úæïÖ¾[ûn­.f6€Üƒ0 ` ‡;p†•~eõÊê••xòIwûµ\]|uñÕÅocÞÆ¼»*ÆÎˆ;c–Ó,§YNê$Î:Wè\!ýï‚‹%smîÛÜ·¹¯Nùˆç_ãÆ?ú1äcÈÇ'¡OBŸ„Š$\Çúëw¬¯üWb¡Q¹÷Ìêo ±NuQ›bÙõSA{fgfN}+ov¼ÙñfÇŒ)RÕÉûƒßüþà÷÷’î%ÝKO²Šz‹E/Ü´pÓÂMµ?×þ\û³êA¸ês©5ÕÃ~MøÝ½t÷ÒÝKÅwäÈ#>Œ¸kr×ä®Iøá?†ÿèÖË­—[/Õï ®âNÕ;UïTýºº›6pÚÀis¶ÝæŽüuDüdõ']?uýÔõSÆõ(I}›”ÌjÛ²µÈÖ"[‹ˆ;¯hIDÛµvãÚk7ºsæ:Lõ;ˆ}¶ 7haZ-Z-€V‹V‹V‹ïŽþŸ¹êµ§wŸÞ}zwêP0 ` ‡;p†•Îç9Ÿç|ëDëDëDÝíæ(ÒWëû¯ï¿¾¿þ—³òg•è]¢w‰ÞÚ-“úÖÿ³þŸªÿMÆÝaµNuR›*‚ÎÈÒÃÒÃÒCw篻唳JÄð¶¶ý°í‡¬þ­xr=«ç,ÔÕŵˆdÞÎã;ï<®I݉Ÿ>6Dºl財ËÚÏDëDëÄñÏÆ?ÿLìyF™ʤdö´Šƒnº=è¶¡G- @«E«ÐjÑjÑjñÝÑÿ3Ÿ÷tÞÓyOåÎÿÚ´kÓ®M£~ÕH“r¸gˆ àŒïl_žŠ}ívúÅîªÛR¶¥lK1Ü„ŠxgõŸV­Á þhð‡Ø™U<»)÷/3.Þk¬uª»Úí3Úg´ê÷   ׇ°X>Kï×ø»ÆßWÖ]Yweø6úoôßè¯ë°.¦ÌCÍCÍC3.¥®»ö¤³mgÛζLè'¹°{€{€{Àê뫯¯¾N9ú¤¤ê½º51|îð¹ÃçGlдZ´Z­­­ßý?s1à|æN‡;&¢u& äpÎpÀÂû)ï§¼Ÿ’1Ñ¢Éóy=Îö8Ûã¬.ž»Ê©.¸HÖH: 5㒼껊fÜ›V¼ç-¿[~·üäþÊñžã=Ç{š\—þשîjóŒÃ‡3ê,D¬GßÊ Ï.‹Dû×ÕW™‹e.–¹(»Ü–ÚOHkžÎø/ 8p(ðuWÔ"®E\‹8±ðµv¿énM¸5á–ò'–_[~mùµ†µbAî!À¢] ì‰={$–R5¦IIåóùºÍ3þjo¿½ýöö3¦8¡…hµhµZ-Z-Z-¾;z}Ò*g`&žžxzâijP `À€^tDrêýµûébGXñž=ô<Ðó€We¯Ê^•+,ª°¨Â¢"1EbŠÄ”²*eUÊÊAá pPˆ)øEË-_´üQØ£°GaÆÝ!W77ïܼsó6Úphá•ÛUnW¹Y„Y„Y„8ùìðÙá³C,„+—4͸¥êe¢©SýüVêîÓ3FB·Ý^t{Qíuµ×Õ^‹:õ%êNÔão~«ð[õ‡Üb'ñ/kYÔ²¨e!–/]°tÁÒEôöõíëÛ×÷úÈë#¯Ô|0,~c.’îb÷k±k”x¶¾hdÑÈ¢‘UUiT¥‘ïß5¾kÄ@(ãBͺ¨#±÷°é·¦ßš~ËÀÞPˆ½ŸïÇß¿OåžvUìJ.>=dpÈàÁõÎ×;_ï¼íÛ¶#D"î¿Þ‡¼y-Ø¡‡‡zHœ´Z´Zhµhµ`ßógü±²òÆjâgîÔ, À$€äXg‹î¾\ù¨þ÷‘"7Dn+O1 ¢N¡IŒéîµ9úó›weý\ú¹ôs!êCì™P2hµ€V DcÎ?ÖW>çÖÛ[oo½o >À$€ÀÀ,Ü´pÓÂMr]Xñ„1¥ÃzâFî§b!nñ´45@N1¬ù‡!C>†ˆUÜ”Ïùß1ÿŽùw u ¨0 `б²X–6ãËe¡ËB—…Úý,±³©\–î qèeˆ àŒËñ wôaÖ·?Úþhû#å³uëåÖË­ó @V‘& :ìPj·sW:®t\i¹÷/Ù¾dû’íéÂp¿)†xEÛR¶¥lKQ¾–m:´éІ §Öüƒ˜IP>ÛÇwßyœÚ²Š0 `Ђ)s¦Ì™2G®[ÙÙ¶³mg[EEE¯{ÿ444æ/›¿lþRîS·n ÜF†8ô2à¸- ( ( |-E#‹Fäû@N1”ù‡×_|]Pù<=Ý<Ý<ݘ[¾ `À .?¸üàr¡øBñ…âU§¸Þ|óæ›7Yhù_Ú¿´iß±~Çúë˽§é·¦ßš~{²ÓÉN';Q0Ä¡—¡f~ðûƒß³4úÃPÆé“WL^1y…òyL>˜|0™z¾ `À ón¥2ñÄp´M´M´Íýøûñ÷ãSÛ§¶Omÿ$ôIè“ИcþùwT«Q­FµRç݆D‰Mª †þ1¾«³hlÑØ¢±øµ@ÎŽÓõmþá•Õ+«WVbö ãö<Ðó@ÏÌõš L´æý”÷SÞO1ÉFµ,jYÔ²xó6æm åÃzÇFü€ÃÒÃÒÃÒƒç€ÈYú?ÿ0¶üØòcËg<7+;+;+»§½Ÿö~Ú›4A˜0h™HÇê:õ+öNŽLŽLޤÌaèC/cJ‘*_Wñ©Å§ŸÊà €œ¡ëÏüƒ˜%055Íxnëû¯ï¿¾??%4G˜0è¼£içnçnç®yÒ×=À=À=`ǵ×v\£#cz_<³0ŒÍå [9lå°•ϪwÏÞ={÷döÐÀ$€@çÒ-Ó-Ó-E{;ÆyŒóçFA‚UnW¹]åvbŸ"1EbŠÄ”_[~mùµ®Ã\‡¹k½½õöÖÛç=÷tÞÓ .$Є¡÷QÕ˘®ôÝÚwkß­ßYO7O7O·zçë¯wžo1ÙCŒÇ3¾ôaTžø ñA⃌3þùüóùçcÆÐ.À$€ Çäž§!È$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€ÿsä¨Ú¯c9ôŠÍ¡×ñzÈ¡×ÉlÊ¡×ézÉ¡×ÙzË¡×ùz]È¡×Åz]Ê¡×ål]É¡×Õz]Ë¡×õzÝÈ¡×ÍzÝÊ¡×ízÝÉ¡W\½îæÐë^¶¿îçÐëA½âsè•C¯‡9ôz”C¯Ç9ôz’C¯§9ôz–C¯ç9ôz‘C¯—Ùþz•C¯×9ôz“C¯Äz%åÐëm½’sèõ.‡^)9ôzŸC¯9ôú˜C¯Ôz}ÊöWZ½>çÐ+=‡^ŠœyÅ|“C¯osè•'‡^ßéêEŒ `0F›¨`¹‡Ñ&€Ÿ7{Þìy³#1:{Í¡{³1»ëÿnĹgâܳqîÙ{ør½rÏÞùg×áܳßpîÙi˜=†owáœÚc8÷ì.̾Âì(Ì^Âì"Ì.Â9µ‹pîÙ?˜ƒÙ3˜Ý‚Ù'˜}‚sjŸ`vfo`½ßøyï罟÷6Ú'€º@Œ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€-ˆM‰M‰M‰)S>¦|l@l@leCwbò‰É'&Ç´iÓ6¶blÅØŠ” Ýé§kœ®3%fJÌ”c}<öQqWqWq—’á:wçÜswbþù7æßc'Ž8v"ýYú³ôg” ×å—\nó4æiÌÓc‹->¶ø³Ég“Ï&”Œv‰¶B´¢ í %£ 7jݨu£ÖQó£æGÍõ>ÖûXïÔî©ÝS»S2ZvWqWqWôñDOôý(:1cs1N§L€:H™xÙðe× £zDõˆê1˜è‰¾™è§i^΢ß(ú¢?)ú–´ÛÐ51^cg1ŽcjÍ£ZŒñÅx_ŒýÅ<e@îDP<ÝÿtÿÓýË*.«¸¬bÙ2eË”-c’íŠZµ.j=ïïyÏû;¡jBÕ„ªÔ 4ñÂ÷…ï ßUá«ÂW…W^^yyåå&9d¦ÇL™÷íïÛß·§^ ‰W_|u0"1"1"Ñ1Å1Å1%§¢zòŽÉ;&ïˆû!¨h"±ObŸÄ>›Jl*±©„›››]NEõøŸÆÿ4þ§›‘7#oFR/ÐD²}²}²ýv‹íÛ-êx×ñ®ãSQ=Ês”ç(Ïk^×¼®yki‹ï¬øþæT9‹¶K´c¢M3¾rNyœò8åqdJdJdJ×® \sª´‡úõêi奕—VkT‹þ•èkåT9‹~¦èsŠþ'm;4!ÆÂb\œSQ-æÄü€˜+ ^@»”ÛÞ˜ïb¾‹ùŽ’AÎ"ŒÜçoÅߊ¿O¯;½îô:¿h¿h¿h½äQÀ£€GÃ~‡ýû¥·Mo›Þ–ªƒ¬7Š7Š7Æ^{alŸ6>m|ô3ª9>r|$YIV’ÕçÖŸ[nMÕAµ«Å®»Z¬sXç°ÎaúÕ¶Ól§ÙNÛ³wÏÞ={ÓŠ¦M+J­Aµ›ƒnº9(hgÐΠúÕ¥W–^YzåŽR;Jí(•úWê_©QkP-n^ܼ¸y¿-ùmÉoKô3ª‹Í,6³ØÌMÍ65ÛÔìC܇¸q†XÎâû(¾›â{ªŸ¥-Ú7ÑÖnT?ô`ЃAÚ k2¬‰‰‹hÑ(¢‘HQb9‹¾“èG‰>•~–³è‹Š~)m>Tã\1æã_ýŒj1o æÄ|uš  ýD¹ÈÉÁ'Ÿ\uEÕUW|eúªšÅ±bÇú¬þW¹•å­»Ýþøv—&…B£ÓšWwYt$¦Å§šVnþ·ËÍ=šõÚ†>qY!µNW›~%4‰êíÎÛ·;¾òùÊç+Ô&„›Ž7o:6õnêÝô+Ÿ†,ÒÙr•õœÒw}~mhëÜ¥ù0_ûý/͘[­{hñ°IŽÓGKËj:Z´d–Cá!ïçW«ü ×‘ñ•ʾl~±çÝÞn®34‰ê 6l6ؤMM›šÆ¦øOÜÕ¸«qWÛ¾iû¦íW.æ\xqI'«ßJÔëÞ¢vÅÛ]‡Ü¶wë_~ú¶jÞ#ö…ås?zå2SÇÊ£æ-Ùåà8´ýümUœƒc'„– iÙ>èz‰ŽCW´{¢ Ôÿ¨Ž¯_%¾J·€nݾîz ],~¸dýRçëDú›UœÐÉjpûï~>í\µò#:.šï8|ô„¥ÏFm]rË¡ùÐý ì« ™=qd¹„VqÁ§KnrZW«®&µ¼4liØÒ°?~üñãú\΢$úKš\¯è³‰þ›èˉ~èã‰þžèû‰~ èŠþ¡è+~ÝçŠ>ªè¯r/€ Ƴbl«IT‹ñµk‹q·ƒ‹ñ¸›‹qº³‹ñ»Ë‹qýW®åP­„[ 1·@mÀ×! ýÄ­F.ábÂÅ„‹þ·üoùßÊÂɧ²e-jm¨Ùp„cBÂÐ.kçW(BB|}µu|þ[·ƒu·ïiRÏiQ‹/”*š…®yo·Þn½o™Ü2¹eBýæNOË>-û´l‡ùæw˜¯~äx¥ZO-±!¶þ»j©÷ÇvÎ_«»v£úuéÖu‡E¶ñ[æ0¯²IéAYHBoµßj¿õÊÊ++¯¬¤~s§—f/Í^š&&&©9.7¬î›ç_åÛÌ!õîl¼.i7ª“öY¯Á¿w›¾¬áÔy´·õqõÏÍf…Í ›çΞ;{î,õ›;½Yÿfý›õýÓú§õOS?rÌZ–9m;±²[àö±c]~›Yq[ /¯U«NÒÖÑ£ýÒ 1%ªÕ1ÑõÒ¾õ*7ÿ…ss1s1s9±âÄŠ+¨ßÜéíí··ßÞݺ5tk~¾ð¸”™ý•Zw¿7òv·Ó×l)«å¨N\>õØ„jwF._jÝÕwU›þYø>RàH#ô­´ÅwM|ïÔ¿–žMªþV¦xT ÿ5ÒR*ôÖò(æöÒŽî^õ—W÷^Y5Ù!Ì®Xˆúç&ÚCÑ6êO9§lMÙš²ub¾‰ù&æËÂφ”8dyöoÅðò5O3Ùd©Ý¨ö´ÒêølÇßG/Yö‹ÍàF?¶¿Õ¨Ž*U*ª”¾Eµè‰>Rž¾mçm}\ôÇDßL»Q-ú¢?)ú–ꟛ車~,÷ˆÜIŒaÅxVýÈãe1vãhíFµ¿˜PÿÜÄ<ƒ˜s ~@}$€¡ŸHù+ÜîáûÂ÷…ïSkBó§B MCþ¹Ù`‘cÇôiÁq>‰Úí|«ÜÛdÓeÛ@óß‹žPçÌg»Îvíš¶9msÚfªÝÈ]U\U\]ßi}§õ²ðt‹•ïàj&i#ƒÍ}FæTTïùÐ4¬Æ7ŽG,ÒŠ=VçœÿèðG‡?:¤îOÝŸºŸjÏ ¶‡mÛž…å—9y×®ºïãŠ^?{_É©¨Žúä?ÄÅÆýEé@sµ~ã?²ÈÈ"#‹|hý¡õ–=Ïöï Þœ……Äïtë1"Ñ£åÒE1ßh7… þÑÑwÔã¥eJ¸9”pí®V"§gÿžý{¾ónÌ»1ÔxnpðüÁóÏ«ÕÿéôçŸÜÿXüóÁÝ9ÕÕ+Ý»"¶äSçàÚjíØÚ³qÏÆ='UOªžT=§ÊY|§Ä÷K­'ï–ÙWRqè|‹:5]sꞘòsàN“jßNýídÎFuì¹Øs±çÔ?ç !íÖÿöÉmÙ"{)oNEµSÞñýWûZÎr[è«Ö¢²'Nœx5ôÕÐWCsªœEÿGô…Ô9gÑ¿}­œŠjÑÏ}Î,¬¶=l{÷‹Ü@ŒUŸU­•äŽX¤{,ÆÅ9ÕbN@̨OÌ?ˆ¹êT# ýDFåõÂ× _/lü²ñËÆ/Uwd«”/1É,ø˜]Ëû®5?†üê[ §:â™ÓB‚}}λ´]á>²N^›&%K«¾‡±cÆ>Zùh壕ĀñyÛæm›·mž<x®:¬ýÌF~wðtó{.Št‹àHŸzÕŠ_ßË÷Úµ÷˜Ú¸`ùŸ,¿0­i“Ï&ŸM¾û!÷Cî‡Æ'eyÊò”å}ûöùÂtª 0´¿D³C5"?ÿìç³DߢúF“ßxNmuÑvc©Å_xZ(¨pPá [{ní¹µ‡0>§œþqúÀþûTëéêLJä›÷gŸ•y÷Ï©D‚ÜÑeñÌmÛN”*]kº_#u®åÊÔ+S¯°4´Jû9íç´ŸG¿ý~ô{µÖó˜2 ØŒ'žV+ŠÆºê[T×ì8§èλ¥ùØ´RkC–³wÎÞ9{';K[|ÔzÒßÎÉ:úΨŽs¼FêÛ=ñÓ®^ç}šîºå÷›³ZûæŠ6S´ŸÙSΟŸŸS¿›úÝÔïÔ9C»š}>N^ìql™âèE}‹j×BóZí>j³²ÑÜÔ¹–ØÈØÈØÈìŒjÑçýÕç&úQ¢O¥oQ-úŸ¢/*ú¥_x&¸O`ŸÀ>¢¯Ë}Äøˆñ©«ªŽ1æã_}‹j1W æ ÄÂ~Jò<àyÀs1/A €ÀÐO$€a$®Ÿ¸~âºZOÍþÛ¡iT 3}ë‚«>]Òrƒ«Z¿˜>Ùîd»“íˆãp·âÝŠw+ªõ{s·&EœFVTŸÚÓ:ÑmXÉùEÚú‚T‡np¸ñ`Þ'¼Ox_2¢dDɈ/üÞüpÃ&Ž' +ª/Œ (îSq°y¹¢ ¾ðäSÄÞˆ½ăqxæüÌù™s¥»•îVºû…Ÿ• ^0¡†—íªÎ§†ê["AîX£íÔ=7«T~P•/ü´nÛmC¶ !ŒÃ«¯¼zà:ßu¾ë6›¨´ ÇêQ×<Ÿ…/>9ÌP¢Ú¥ÅŒs[ÿ1ÿÝîl/ü)bGÄŽˆº.mñÝQ}&NÉ–gŠ]}ÝÞÊCa0wÆy!µ}íV%ûö¬öã¢èn¥»•Tw圤HR$)êG×®ý…ç×;êä9ie‡ã· %ªkzÎÞ¹³[ÉíN{kµýÂJ*]–uYÖE×Q-ú9_(çÁæåŠ.}'Ãêï‰>ªê«}]ÑïåžbĘô õ>¿H»BÄ8×°¢ZÌ'¨3ó æ(ˆPFú‰0 Þ1Ÿc>Ç|TwR_vv)¿ô]rà&ïo «#þ?¿©ßÝë¼OÓ©C=VöV}½»Úïj¿«=±a¸Î¶8Ûâl Õµü¨Z¹²6I{ö¨çf¸QýùLð_>±ó+Öž`7Tõõn½aô†ÑĆáºs%æJŒêZî4§Ê ëù¯n÷ø©n/Ãj…Gˆµo‰¥ƒê½¯:[õõ†þ}ø÷Ćẽìö²ÛËTײÅ—·õÆ»UýóÊþƆ’HÈäè¾ê¯Sª,îýݦª¯÷ÏÄ?ÿL$6 ׃n<¸¡º–Ktr˜âúÚ5`¾Ãž{Õ^«V:eïÖ¿üôíª¯wZ½iõ¦ÕS¼Q¼Q¼Ñni‹ï‹êOÿ»e}ßjsoBzøÖ3Ü;ã³'ÝæÔ™Ðü\Å™V_XÏF´«Ú-ç'£ŸŒ~2Ú¬Y!³BrŸ[ìJÅÙU#jöÓhWYCꪱC~™«P]Σ?þ4ú“Ø8I»¥-ú6ª?]ô‘DÉp£ZôWEßõ ëdÄ\‰¹ÃýÅp‰q¨êZãY1¶5ܨs bžá ëd´8Ûâl b2" ýD,údôÉè/üöv›f×j1àD‚Ìñä®ÖóÜ<¾0»¶áÚ†kĉa‰}û0ö¡êšÝñ¢I¤Ómã‹ê ë*ºŸýBÂì—ð_Â!N Ëùæç›Ÿoþ…öꇆŽ7Œ/ª¯[·Ÿëù…Ÿìü¹øÏÅ.&N Ëõ× \/ ºf+Ç÷:6ÞÞÐ ™<=ùï¬BÛ˜^+º±Xc¹kŸ:aê„©ˆÃr×â®Å]‹/ìWý¹Û‰Ð¡^ž«VœŠ5¦¨®;78ra‘ÍVKm.Ê]û¨c£Ž:¦ˆUÄ*b5/mñ‘û,s¿Âã •³ìxÊk…ñÝÃ×øjÛ}»öß‚~ ú-(=>=>=^óÒý™/Ô¬uû¹žÞÆÕ¢«úÚE˜{acOÕ5+ưÆÕbÎá Ë?Œ}û80ô `¤Ø‚±c ~aiš)Zx½1¾Žøÿüš¾b·úuÚV¬i^°è$¹rØ9`瀈ýwîø¹ã玫Žêý:üê9Ǹ£úÕÖîïëvr™iSjõzãKýfÆÜÒÃ5Ìg…\9Ì]0wÁÜÄŒþ{¸äá’‡KTGµã¢ÑñËBŒ<ªŸ/r,¸Ôí:·ýÊ•ÃÄñÇO¯Ii‹ï…ìN¨lg•š’bxÀ;¿qßOõm}Å-ð £¹üwóßÍÿuåü¼ïó¾Ïûª~‡Äá;þkÜQíÙ}ÅËãMmº6<Ù^öC#‡FT$( _WÚ¢#÷þ¢ÿ#úBÆÕ¢O«šèsßÑb¼)Wb¬*Æ­ÆÕbþAuT‹y bHC?‘†¹w#îFœ\׳ü/ÅkÍûª]÷kuwG<ã1¥[àeï¾¾ek[øË•Ì “&'Lˆýt¿ÔýR÷KÉÕ]‘dÓ¦•Ÿöë–§Ž]î‰ê£ƒÒ¼Ï´îg›P*J®düqà?úéñ²ÇËaiÜøÇßÖz™{¢úÓç^Ï}:÷x]µq™ïäÊ$Ò)Ò)Ò‰øÑO/[¿lý²µê¨vY7óÎöï;ð?©…«áíO–³¹Û¸CÇ©²Ï÷—ÞPzCiâG?%5NjœÔØÔÏÔÏÔO®ktœ»ñ@î‰j/³UeNU,×§e× Ù]½W4\ÑpEì–¶ø.ȽçÀSNCË—ûîs:÷Üïë¸ÁkºêvU´½ê—sʘ”1)cÊþXöDz²{;%ýÑ*âÛ\Õ5WÍ>µ£Â™ö æÊ•ɼ-ó¶ÌÛ’Õ¨ý¹÷}ÑÿÉ=Q-ú·ª£Zô“¹é'1Æ”«;1>cÕÜÕb.BÌKÈ•Œ˜Ó ~äf$€¡ŸHÃ`¼¹ôæÒ›KrÝÍr“‹(ò4iAÏz^¹§#þ? ³³½Jzßó=X¶ŸE¹RzøãÃþH,éwÃÞ {7¬ðÀ T®¯Âñ¦£M^¾Lê¾­®cîŒê´QÁ%|Fµi]ɽ”ìywnݹu籤?>ÖùXçcò3ËÏ,?S®Öž¬êY;=wFuúà«>/=ªÆ–i*»WÜ+7®Ü –ôGšSšSšSÍë5¯×¼.Wk5Ãæœßu!¥2íVõ95©Lµ&;ÉöÓÎ; .W>{Ûím··:Q-ú*rï#ú9¢Ï“;£Zôue¶>³üÌò3EŸ™û‘þãJ¹ZcR1>ÍQ-æ%ÄE&s ,èú¨ë£®d“dýº®®ý–¨NÍÓËÞû…ÇÀÒa%Š)—Rñ5Å×_óáʇ+®Qú`À­·ÈN?/~^ü<¹rý¹¿}ÑÏ!ªE¿W®¬DŸ™û‘>cI1®T®)1cR¢ZÌQÈEµ˜ß ¢äN$€¡ŸHì-´¶ÐÚBr]̸ÒO{­¤#žñø¼~·uþ’+±i]§uÖ•¸ÊYÛ§mŸ¶}š\] h÷È㑜ñø&¢ÇŽºgåJld…‘FV ®r–d&™If²Ïÿn³ËI“ÿ9¾s ¬wUn9µÞyzç釸ÊY±{b÷Äî‘Ý5fÌàåeH$üÏ.ª Ë»ó+²Ñj¡Í å H H HR¤+ÒéDWN¹ÐïB¿ ýdwE=;Ü{¡-‘ü??n¾Òþøêâö¶k«ÈdÓßßE¨"Tú?®HW¤‹˜Wþ« éÅ?ñ!5è´÷6î†1Z:Õ<#Ÿ¢MVŽê›5oÖ¼YSî¯ì· økæl"ù¢:!|ÒÉN%§9ÕôÚ‘I²ÜÄÉÄÉ$ý§ôŸÒR.mÑ?‘Û¶FômˆäŒGÑ–‹OÑæÞ”³ÄXR®ŽÄ8”HÎxór%&æ:ˆ+¹ `mÙ½e÷–Ý[DN^7yÝäu¯¼nðº%óuHC¯=òxÈã!rÝÊ÷6«Q™Î·ÜñtJ›`·h¹Ò»vãÚk,1š^^zyé¥ì"™›Û4ZU}1Ñ+w¼r¡Ý.Ù¨>»ì첳징Þz½õzë%W/«,| ;0(¿âåŽÛ¼fË•^Lï˜Þ1½‰±ì÷~çûïwÊÕ‹íð®6Ã[’B;ºþ:¯öî²KŒzïõÞëMŒe¿ONŸœ>9u-êZÔ5“%IO´ÝÞwÑ+wt«·Ðlÿ Ùþ[¥Í•6WÊXÚ"Îåþ}‚¢K‡ÚU¸Êÿü¥Ž³Ý¹Òí³(çχ>ú|Èö¥íKÛL–$-“ÔTêš@ôÊÝ[üÕûÀ¹r/^"¼Dƨ}ÙmY.wÜæ5›è•;Šþ°\鉾4÷©ì'Ʋ۲\h·Ë#šè•;й ÙUú.½¼ôò1 ÷ ¬¹Ï->·øÜBîÎB2øë†^ ˜0)`’òþ·!Õk”ëI‡[㬖^‘U:eòÜ’¹£¹£¹âWůŠ_‰´ìÔÛ«·WïLReÖTykFĪs\Ú½^RÕéÊehddôÙþ³ýg{"-;L™:2U¹F?.ßÎr¡bvH-_¦¹¿p\7¹ÁUÇ rÝÜÔ–©-S[iÙiú¿Óÿþ¯r]ûl›ß¡‘çãðÙ'CH¨>V=<øãÜgrQššJ¤e§Å¡‹C‡fòÜž«¥]éTÏ‘+kßJܪ>V{=òòâCrQ¸:quâjÛrÿfW´_gîzªénÁ}î¹Ö.dÞY¹ Eû,¢ú÷ÜÿqϤ ë›0Iôx°<à˜q«úXýÕxëU÷å"öùÙçgŸŸý¹#ú0Äí޳CjùV}ãLV3J™:2•ûT¶N1Û¶ÿl/ÆÊ5"ƛĭ:G1‘ÉjF^½½zó³¹ `Íe|öW5’Áê# =u®Ô¹RçJÉþBvlÏCõÓÕVçø©c¯­>nf~…z˜f2µ7ßÞ|{óoÙãúŠë+®Ë>;òªt÷Cu=ˆXuŽŸo/÷9Yé]‰"fe•KrÓˆM#6 Þ²Çýâ÷‹ß/.ÕÏvíUû«Ö±WˆƒoY¯uÖ½Kd2²"nEÜŠ8â-{<™ñdÆ“rQ]³êìi;+“0Pó~ê¤Å—]õ”Kr®ç\ϹžÄ[öxõþÕûW²;ÑÖX2mú¦}D¬úÇÒ&uo^2“}j[4n‘ˆmåÿÚ¼WÅ@«KŠÏ!ÁÜõÔ;Þ›Òi{­J²Ûý÷kܯ²;þ^™ø~ítbUýc¿&»;×W.ÉþOû?íÿTôC”ÿ«è·ˆ> «ÎQôåâVô«¹ge1fT®1ÆãM"V£˜Ç‹j1B¼È HkN$tEr×Dm$ƒU# ý“¬HV$»Æ¹Æ¹f2ÈÜéßä–Ó[:ÙY=žøÜÚÏMvåÏvŸí>ÛzºæwÑï¢ßEåòÓ ˆc~¢4«ÇK×>x4‘}b²Bj…TvÖ¹®»»îîº[¹üÿÚT÷µý+¢4«ÇÛ;;z{ùÉ>1ùsÊÏ)?uº6hæ ™ƒff²gç„v)ý;“$Èê±æû¹Ÿw·‘ÝWïö›Ûonuº6±ÅÄ3YJ«ìpÿ®=¾%J³¼t£…•öï1É¢„ù]káN—Õã´8Ͼ•3ybÒç’Ï%ŸL6U±öð­Ö:Ž(ÍòrÐ}ÿŠ:Ø"«Q-ú-DiV¢Ÿ¬\ž¢_Í=K×Ä8Q.ªÅ“(ÍêQÌi(—§˜!êä$€µ‹d°¶†Þ¹h}Ñú¢u&ƒùYf Š|Ÿ>&ø†Ïkº×_wltµÜ[˶Êe»?iÒþ$bOwnýuë¯[ÉÝœÒjëÓ—øüÊ%§ìòYG(—êV×­®[]‰=ÝIÈŸ?!¿\Txë½™øüºcÿøêÊe’ZX¼*xU0±§;σŸ?–‹jüKö¾O’àëŽåbZ…7R.Õùãæ›?ŽØÓÄ5‰k×ÈEµûa¡Ñ;ˆÏ¯;V¼ØÙbˆZiàq—Ü Ø²”èW“—V®·SýI×S –îÝM|~ݱòæ^æãš©S΢¯B|~ÝQô“e,’?!B~î_º#Ɖ™lÉ”`—Ï:‚øüº£˜Ó‹j1Bì0n$€u‡d°&HCï< xðTùK{0óÅ.—èXkr¼2¦ÝBÊe[5µjjÕTEš"M‘FêBŸ}vöÉdêjçN¿oœ&259ÆÍï˜âµW¹lÍ/›_6¿¬¨£¨£¨Cê˜Îc:Édg¾ˆºõÓ«)ˆLMŽævyS{Šìš Ý>wûÜÔ…YÏf=›•Éžµ•ªtï<ҙĀFOLn^ÔCj,»fCûÔö©í‰@]XÞvyÛå™üø¯B倄~iD¦FOLžZüôÐ5u¦^ë>¡®w7MŽa{ë.´ÿBº½ÌÛ¦»>!259zì\st’:Q-ú*D¦FOLÖ­Ÿ^-“ÉbÑÇæþ¥uuuÄ81“…åçwLñÚKdjróÊe+æC@Æpö œU$€¡G^•|UòUIÙ)ïèàù>1t©5?:o´2->'“ω¸q'ˆCíJþ6ùÛäoe§¼_÷šìcMLjáéö r',½”KøJ§+®t"µëþû>ì“‹ê÷y‚L¼½ˆIÍóسޤ\Â'cNÆœŒ!µ+Í'Í'ÍGö)Éé‹-ž#1 ùÑ&¼Ñü(—ptztzt:q¨]é§ÿþ·\T»µ_Øe? `m<Ýþ¾µEˆìøeÀ¸êËÝ䎦ù1ñ]ϪõJ¨žÖ©ùvîÛÝ ˆIͶÅ;¿zQ®œEÿ„˜Ôü(ú̲«éìû°ïÃ>îeÚ%Ɔʥ-ƒĤæG1¿!Õbn„8`¬Hg?’Áê  =Q=¢zDuå¯åÊ>þ]èLkë¸oi³ù52YŽxò€É& µkWý]õwÕW.í9sjM¯r—hÔÖñغV]›+—óÃC9LjסЇ*ª¨\ÚcŸ¹ØZÚ:^˜`å~\¹œ»çéž§{âP»N_;}ít&OòYl0)à.Ém]ªÎ躵˜r97­Ð´BSvmײk-®µ¸–ÉŽžV­<ó6ÊO4jm—ëksÿм$»è¥‡ƒžiÜÑ´uìWÊqO¹LÚâ^¶7«µ µ¶fƒïB«ýëå¢úÂÔ€’îLjFmEÿY¹œE›{™v‰±¡ri‹±$Ѩ­£˜ëP.g17B0V$€sÉ`9$€¡Gª7©Þ¤zå¯â‹ Ý+ÔÉÖTÙŸûë ·ÿ忉¿¥úóñÅV].m_7®ù¢"É¥F–I4-_xL‘QEŽZ=)ãTú›ºMüoTŸóûÛðÙ”Z°[Õ÷Ô”BÅÌϤ¿—¼1ycòF¢Q[&$LH˜ \ÎÕCßž‡¨ÖîÑlPYûJy”KûÕÈîñuýµ¼Ï¢GpŸ¾…/™7yfòU…uy[{š!Þ/>÷È$lÙËÍ·Q­Ýc‰Õª»Î$~LºªÝ›¨ÖÖQôŸ3Ùvx§á†s/Ó1”‹1–$ªµusÊW$æFˆFÆŠ°þ œ `è…ÄÔÄÔÄTå/^kVã‹g﾿B úšx4,=µDŒgòuï6y…GJ7L¿5émâ«NC3i³ûíJk²çJ»²·°Éd7¾ø-ñ[â·“š{_ï}½÷™¤$Kç7û¾ðfÅÛ@ßzDµvƒï;»—_®|77ÞÜx“¤‚|òûä÷ÉO®®ß…äóÍOTk÷8iûÍJ«•Ïá|Èùó!ĤæÒ‹§O/.Wמ¯”N´×î”z!ÓŠn*cö‹ÍãŠÔŠ”îXo@‹^&« ž*¨Î§”¿ßösßK&^&«MN«óþåw¶íÓ×,›½ßm@h&©²˜§1Ocž“Z¡ˆPDÈFõ7Ë÷‹&ªµ{¬r¹wô¤L¢úßJM××ȧåt‘WÇâ^Ž&P'© ŸwÆ´ûÁµ}æËÆö½ð‘'›ÕÚ:V5¸ù\SåsØ`×pˆã¢ZkÇïBòùæ—MLú}òûäÇmMsb<¨\Âbü¨“Ô~nŽê·!¾õļG&Õ{_ï}=b ` &Œ\ä˜é1Óc™ /WZø´vèžé„?¢Ü'Vê—Ib#‹ï¶Ñ¿á½êe•÷•Y< ^ͪ%bþmÙ¦æ}ñ¿•÷.ÝT§‘[õöº¾Þý›½¯qUùJ7vØØacbRs¦\˜raŠr Ï~_«E•(¢ZÇãE[…¹f²ßá²’ËJ.+ILjîÖ¾[ûne²ûï˜5¯W:_zÆÌ Ûf)—yè¥ÐK¡—ˆIͽhû¢í‹¶™<%¹ß½lýDµ.Ž®5æÛÓN¹ÌƒN:t,³N»÷…Ç4=^Ã*ã§,8YÇÊîRØìº“ì7«sLŽ t®·×p«=)»8“=€?Íûuw0Q­µ… ÿ^Ô@ÊdËc+ž)Uˆ¨ÖîQô¥3YF~ß­}·Ø X ÄxP¹„ÅøQuJT‹yL–‘ŸraÊ…)Ä$À L¹È¤w“ÞMz—É‚¢Î‹z9è¢3ú´w·oêTYß¿¡ãžqÝ,l8Þ³Ì[ì•ì“mê/EÛ¸×zŸå×-úß”}P¸C“2+EÒBNඪoË„ü÷ËîµÅC‹Vï£»îø‹íÝ]ë“®…ºêZˆ˜ÔÜ¢´Ei‹Ò”Køb¡€fîˆj]ßæë¹¨^&Ó¯;7v&&5‘É0þئV&®-ˆj]?Xòþ=“¥‰MœMœMˆIÍE:E:E:)—°Ã±á•þ¬å§©zº8ç~¸`Ôwú”Vâ¿*' ÄÿSnyËô^›Äÿ6ëU6ŸíeÙ¤E›ÇŽ[ ±ÿ½æË™ªµ»äǼ¾ùd¯÷–â–â‘© ÿ(ÿ(ÿLReÉ‹Ô[KTën±©BÛM1Éäæ¾,}Yú2"S]»vÍdCïîçêúÕº;VÚjžjV$“ý­MÓLÓL‰LMŒØ7b߈Lžkw ™ôoíN¦—oÓ¦~ïÿ–©;;ª³LhÍUs^ïúø(ûO˜)ÿK«¡%æwùï_ž(Ô®p· ÿŽj­úY´Œÿ^ýg×4?šÏ±SÔÈd1Æ<>x™š˜~|úñéÇ•ËÖåÀ¬ Û»Õº;Znuÿ¶þÀL %{.«×Q[w„?W?SîÀÏbÆUL,UQ[w"C¹3>zØÕ¤öår.ëÜln·d¢Z»Gëyõ=Úº(—ö‹mÝkÖyJTkë(úÒ™$íºv ìÊ}Mb ¨\¶b̨»™ˆj1ï¡\òbž„È@$ƒI#W7‘V3Š)ÜFwÑË{Ú5öø}nÞZ{ª¤*5I* |î4¾|ñW­·Û¦—:¥þ;düÄA·n–×ùò×Mj•µ\ŸÉ¾,—Þ_zÏ2ŒZŽêÿ"aWˆŸ¯3Q­»c7[ûz6=”¯7iVÒ¬¤YD¦&J*u¨Ô¡L’ëUƒ£|îÕº;9î<¯üEåë}žú<õy*‘© —F.\e²—dû—ŽÛiy=½ÁŸIâÉ-«.ž¶\Õ™¾wݳ ãÞLÚ4åió¨ñoÿ{²Ör¸[Sßê§2¾s™"M¾éÔI×I…ò© ûeò,N‚y‚y‚9‘© ¿É~“ý&+—­ÇÜe­cRˆjÝ+Õé¾rä4åëºù´Ãχں#4n[¾ŒåPñÎ#{¸¬«h¦­w6”;ã§.½¶ùdòã°bË+ܱ?DTk÷h× o•É7•¯ë|ß¶;Ü'ÕZûqvÕà(Ÿ;Êå,úÞÜ×4!Æ€Êe+ÆŒº«S¢ZÌ{ÈÿlHƒd0 `äâ&²³›]eë½Ù´£¤ÊnqV“ ¾kÊv·øoÙ½¥Íë=¯:Eý¿]Ò­Þüªþâo-7Àò']_é»ÝÇUê£|½?>þøø#‘©Ý¨n˜·œ¯Åk¢Z×WºPQç}Kåë½Ûån—»]ˆLíFµãd‹‡ÅnÕº¾ÒµëÇW{­|½W_|e0‘©Ý¨.di6¹x ®§Ô³RjÑýêÈóŸE“K”˜W­ŠÛñ_+Ýé9sÌYø”­=RG7üoJ Çt}]U£?Ÿ{M¹üOÖ±¿£øQTíÏ6 JZY4.²¢Ðeû*%}ÍâÚVŽ.}+üGŸMabiPcº3–ØS$o¡ê$\‰jMŽNk&¶û;Z¹œ·žk<Ë©"Q­Ý£èW“*Ó.1T.U1fÌžqJnŽj1BT  ’Á$€Aù?¦îõPTniˆI… ‹Š_,ÚMüÕŽkM¶8]Sÿo·?jÒÊé¿ßƒÛŽ0Ÿ\ôŒ®—åY?¡¡“ãþL’ §®œºrŠÈÔnTëX£b;¢Z×Q½çUÓÎé™$柜r>‘©Ý¨î¾Åþ²Í~¢Z×Q}ô—–Cj&+_otÞè¼Ñy‰LíFuÉ΃k×ÏþäKÇo¶^pº41iíD±@¨M•†åÛmÍxn•“{}?@.©P$̪µÍ鱇eÒ±5Õž½í¿ÔEr©‘euJq®4黈åòßf»Ív›-‘©Ý¨.¶ªÂ3û‹Dµ®£ÚÅ~F—­fÊåþÑ÷G‡³šß ÞÆô¼UoBÆw6‹(ô‡é,u¦!üQÎÌâBüÑÎj=4Ž;£ßÖ y,Ó²?œÛ¢ºfÒÜW»ë*—óÜaµîÙ&ªµ{ýjReÚ%ƀʥ*ÆŒº¨G¢:ãQÌÕHƒd0 `ÐDþ5þ¾«µ6ĤBÉöE¼ ý·kÔ±%­~vmªþߊÿß‚`E>þE×Ýñ›Ïw9§|½GÆ '2µÕ ¾©}Ñ.‚¨ÖuTŸnÙ¦²ÛbåëýwÒ¿“þDdj7ªÇwr«c»¨ÖuT_k×Þ׳˜òõn(º¡è†¢D¦v£ÚƵ¡_»ûÙŸ*+zÛ¦U…•Êçc:±Èª¢Év¿ô štKõ;ò0{Vü‘ø«êŽcÏ­ˆWÿÓÅ¿ÿïèÅÅ ”è¢ó¤BÃÙ·v.T¾Þ%-—´\Ò’ÈÔnT[5÷ü¦Ñ÷Dµ®£ÚõÑ‚Ä}e•¯wš‡gÕÊ5¿œÏÓvºûoÊï2¸Z»²u7ÕiäV½½ø7bŠ¿¯¯cPÙG¦ßšô6ùŸ;¦Üf†ugü-¸ºc¹nÙŸÎmQí^÷/·™ì×>ìbVÕÚ=Š~5©2íc@åRcF]Ô#Qñ(æ@ˆj$€A28§’ÁßèÏWÈhûµ&M–bR¡ð%Óá&Ïþ{Žv]»µ‘êÿ­ø÷âo3¾î®ôÔç6ùÜ&oÙcu¬ïÎj5ˆj§Ê µ¯â™—xËó{ÖþËnQ­ë¨¾w¹ÓÙZîÄ[ö('µê\EReU{9òüâý²{Cž(Ô®pñ/kŸ’¸aƒúŸ.þý“á}t˜*‹[peß·Ä[ö°)Ôàr;_¢Zç©2¿Ê˜£|¡ë]zTx¡ù½`o¿f65Zý·Ã=˼Å^môox¯zÙŒ÷Då¿Ú×¹Ù¨32I-øqÜ&W…íxýIkT{,ˆ)ª|A%J”OTk÷(úÕܳ²‡3ꢉêŒG1B¼ ìÞ²{Ëî-$€“Ýë›–pÞeèËŠÕJrÍÂâ¨G×·ÜæZü¿ è]ÅKIÖuwüÜ˶Ü{oÙcÝÏ Ö9ÕºŽê›ó:„z^ Þ²Ç_Eëî±?ETë:ªãïu~Së9ñ–=Ê? 0ïû>§v‘ôœ´2àøšéó ïè°~Ø…?ÿ´p¬Ñ¬NŒg(÷ÄXÆeE«Ïùýmx‡,O}žJdjÂ¥‘K#—FÊeëÙ~Å¥ãvºK•™,5=Vȧúœß߆wøÂ¢²íç»ìyVäW‹•¥ÿ{«|ÅÖ‘!÷•“ §–›}\ä¨Õ“2Nê§CÊj578XüË¢6¥-»Ù³â §Ø®ºN*”O hØÏY¹äÌÌ̉LMøMö›ì7Y¹l=æ.k“BTëîX©N÷•#§)—üͧ–x>ÔÅ]O;×Áï›/r¹`šdrÄdŒø÷Gb[¤ÕÜh¸wÆO]zmóqËäI÷åîØ"ªµ{´kзÊä›Ê¥}¾oÛjmE_Z¹Dß›ûš&ÄP¹lŘ1{F(¹3ªÅ¼‡|i `ô%Œ\ÃíŒÛ·3Ê_žvAw½£ +© ÷¿U¨^¢\‹hÿ.=…uy[{ÚþfÍ®Ô8Ô§µcþ²[3þËMu¹Uo¯ë¥xÒ?†äõÍ'Û¿¥¸¥¸EdjÂ?Ê?Ê?J¹l“;©·–¨ÖÉñmH o½BÛM1Éä&¾,}Yú2"S]»vU.ÛWÞÝÏÕõ!ªuw¬´Õ<Õ¬ˆòÙ¦™¦™¦™™š±oľû”ËÖ5d~п´;^ãÂt×ÍËLï=Z¬_ÆÏ*s¦iîͪ.Üs®­X>T<V¾M›ú½—g\DTì())U+u!v5®Ò°|»­Õæ…nü«®HQTûqø»Eù­WÕïß64ã¿´/ýÛ¥é>Ù³¦ù;ELö•üàñÁパ©‰éǧŸ~\¹l]̪°½;Q­»£åV÷oëT>Û·%{.«×Qó{A⃞ë™UXTübÑÿö¾©‚ p‡&eVîÚë×ÍÙûTÓÖ'Ý:ovlôgõy}}ƒÊ>ʘNÜVõm™Õw.ý¿3>zØÕ¤öåó,ëÜln·d¢Z»Gëyõ=Úº(Ÿí‹mÝkÖyJTkë(úÒÊç)úÞÜ×4!Æ€™¬ø²Ýô“ubü¨ÝÚ$ªÅQÌ{(Ÿ§˜'!2I_ÀÈE&½›ônÒ;å/ÒmçŽE½ 1© ŽO»ÛVª¡N“aú­IoßéÝ=—WÞ™=×øb{w×:O•Ϥk¡®…º"&5·(mQÚ¢Lv&»X( ™û#¢ZÇ·ùz.ª×NùL;7vnìLLj."*"*"“Ÿ5ÛÔÊĵQ­‹ãë QÞ¿+Ÿ‰³‰³‰3¿×‚H§H§H'åv86¼òŸu·t¡ÅÅ ”è¢þÐÂܪÊR§»5ŠOIܰAI‘Pë­½LV›œ®°´½oÿ£ºN$ˆ£çð•vÇW)ŸˆåZ˵–k‰IÍ<x8P¹„í‹ÿ¶wzY¢Z'Qý.|ÿÉ5²?¬œRÛ×N»÷>;÷/ÍþQ¿´»ß±hsT<7fèwÆ}yšµ«1LùLªÞRgž/Q­µ£óªI§dcìs|p¸Ïi¢Z[GÑ—V>Ñ÷澦91Ìä:ùz.ª×Nwã”ÜÕbÞCùLÄ< 1 €0Hú’F.rÌô˜é1Så/ÕJ ŸÖÝ 7© އ¯¶XSsH§šUNYÿ.~Z4²P%Ó¶âw1·ûÝúű%­~vmš×¸c³÷5®*_éÆ;lì@Ljî” S.LQ.áÙïkµ¨ETëâx¼h«0׿•¯tYÉe%—•$&5wkß­}·2yVrÌ‚š×+ž%ªuq¼T'à G%å+±xÆâ‹‰IÍ%lHذA¹„­gׯ޶Šî&Öÿ[ ´M›ú½—?Tyxõ Â-J´±ô7Ý^´ºÙ¶b7+.«ú¯Õ~/¿Æ;ì‚úNŸÒÊËdUÁS³ú¼—cèèÉK­žyÝmò[‘0«Ö6#LËSd”øß¥|kï÷¸ºãØs+â³)àµjÕ©S.3fNØ–ÉbŒ¡—B/…²ý„¼hû¢í‹¶™¤Ø÷»—­¿‚¨ÖÅѵƼc{2ù ZÐI‡ŽeÖéîø×ïuãìã•;aéUæb±¾E¦‰1=oZZ, *î\R5ÿ©.öÿÊÐ«=)»X¹´k~š÷ëî`¢Z[G·¿5**—s‹±Ï”*DTk÷(úÒÊ¥-úÞÜ×4'ƃÊ%,ƺ­äΨóÊe.æIˆI$€AÒ—0r‘ÄÔÄÔÄTå/XkVã‹_Ê©€¿®óýuï“=‹ˆf7“Ÿho°k8ÄñQ­µãw!ù|óËEµè{s[Óœ*—°?êÃhŨ¢úmH o=1ï¡\æbž„˜@$}I#שޤz“êM2ÙahB÷ uîælؘŽïwµð’kàÒߥ¿KG4jKƒg ž5x¦\Î+té]Û™hÔÖñÓä^|êÉEuÚÁ´ƒi‰Fmé4¼ÓðNÃ3Y´eGO¯D£Övj·Žò¹#Õ[|lñ±Ѩ-N89àd&KmÏ›Ü`Ýäìœp7ò£Ýª¾§¦*f6¸x&ý½äÉ“ù±ŽÖLH˜0!A¹œ«‡þ¾%<Ѩݣ٠²ö•2I¿Ù=¾®?w4­-(ú< Ü£X&O·÷r³ðmDj÷XbAµên§•Kû‘I—Cµ{Ú:Šþ³r9‹þ6÷2mãAÙDûä^|êÚ:йårs#D#cEXô͈0ôHDõˆêÕ3Yº€¿CºÑZÛ7ki³ù5þʤ™0yÀäÄ¡víª¿«þ®úÊ¥=gN­éUîZÛ7k]«‚®Í•ËyÈá!‡‡&µëPÅCe²$àØg®¶D£¶ŽæX¹Ïdo°<ÝótÏCj×ék§¯¾–ÉBÐL ¸K@k‹?WÑuk&É›¦šVhZ8Ô®k-®µ¸–ÉŽ’V­<ó6ÊO4jëXóÚÜ¿"/ÉM"ÜòïpÐ3;š¶ŽýJ9î)—IRÜËöfµD£Öö]hµ½\T_˜PÒýѨ­£è?+—³èos/Ó.16T.m1–$µusÊå,æFˆCÆŠpÎ"é+‡0ôÈ«’¯J¾*)÷…ü<ß'†Î´æGçV¦Åç(—p܉¸q'ˆCíJþ6ùÛäoå¢:õu¯É>ÖĤæG±£’r _ét¥Ó•NÄ¡v}Ø÷a߇}rQý>O‰·1©ù±s»bÖ›”KødÌɘ“1Ä¡v¥ù¤ù¤ùÈEµûôÅ–Ï‘ÐühÞh~‡?”K8:=:=:8Ô®ô¿ÓÿNÿ[.ªÝÚ/ì²?˜ÔüXî}k‹ÙñË€qÕ?–»ÉMóc⻞Uë•P=}SóíÜ·»“ZX¨¿xç÷C/Ê•³èŸ“ZX—+O‰·—\9‹þ6÷2ícCåÒcIbRó£˜ß‹j17B0V$€³I_u†Þ xð4à©ò—ó`þæ‹].Ñ¥ÖäxeL»…™ì|S5µjjÕTEš"M‘FêBŸ}vöÙ©\ò;wú}ãü3‘©É1n~ǯ½Êek~Ùü²ùeEEE"PÆtÓyLgå’¨[?½š‚ÈÔäøhn—7µ§ÈþªÛçnŸ»º0ëÙ¬g³2Y´¿R•îG:“Ðèy²Í‹zHeÕ>µ}j{"P–·]Þvy[å2¯P9 ¡ `Žî§?=tM)†—úO¨kÆÝM“cØÞº í÷¨.ç2o›ìú„ÈÔäè±sYÌÑIêDµè«™šEŸY¹lE›û—NÔQÔQÔãÄL~?¿cŠ×^"S“£˜ßP.[1B0n$€³I߬" ½sÑú¢õÅL~3h=ËlA‘ïÓÇßðyMÇú+Ÿ’¼Zî­e&“€û“ö'íO"ötçÖ_·þºõ—ìµ5ƒ¿õéK|~ݱS‚]>ëåRÝêºÕu«+±§; ùò'ä—}jáeP¬÷fâóëŽýã«(—É4÷ªàUÁ«‚‰=Ýyü<øy°\T{ä_²çð}Ò_ù”dL«ÐàFÊ¥:ÜüqóÇ{º“¸&qMâÙ§Û ÞA|~ݱâÅÎCö¨3Ý0î’[ÛéÜݾ$°r½êOZ°tïnâó뎕7÷2×Lr}âó뎢Ÿ,W¶¢ÍýKwÄ81“}—ìòYGŸ_ws²"üuë¯[{Œ `Ý!é« ÀÐ?ÉŠdE²kœkœk\&OLú7¹åô–îuV'>·ös+$û<™Ýg»Ïv„ž®ù]ô»è—ÉrjcqÌO”fõxéZÀ&²Ï“UH­ÊŽ’:×uw×Ý]w+—ÿ_›ê¾¶E”fõx{gGo/?¹¨Nù9å生‰:]4sÐÌA33ybrB»”þIdy‡Ô÷s?ïn#Õon¿¹ýæ6Q§k[Ll11“ý€Ë÷ïÚã[¢4ËO´7ZXiÿ“,J˜ßűvîtY=N‹óì[y¡ryú\ò¹ä“ÉîËÖ¾ÕZÇ¥Y~¢½ï_Q[d5ªE¿…(ÍêQô“•ËSô«¹géš'ÊEµc¥Y~¢}Lƒ"Ž™ü8XÌurÀÚEÒW[HCO+u®Ô¹Rr_æ·c{ª7˜N¶:ÇO{mõq3ó+ÔÃ4T¹$÷æÛ›oo>â-{\_q}ÅõrQýªt÷Cu=ˆXuŽŸo/÷9Yé]‰"fe•KrÓˆM#6 Þ²Çýâ÷‹ß/.ÕÏvíUû«Ö±WˆƒoY¯uÖ½K„)—䊸q+∷ìñdÆ“OfÈî1Yuö´•I¨y ?uÒbË®zÊ%9×s®ç\Oâ-{¼zÿêý«÷rQ]cÉ´é›ö±êK›Ô Óyâ PIDATý½y&ûþŽ[4nѸE"¶•ÿkó^­.)>‡s×SïxoJ§íµ*ÉÅmܯq¿Æý*÷_®L|¿v:±ªþ±Œ_“Ýëgò¤ïÓþOû?ýåÿ*ú-¢CĪs}c¹¸ýjîYÙCŒ3Ùøã]‰"feÅx“ˆUç(æ1ä¢ZÌorÀš#é« $€¡×&L Èd¢ß†T¯Q®']mu޳ZzEVé¤\†ŽæŽæŽæŠ_¿*~%Ò²So¯Þ^½½2YrjM•·ÖaD¬:Ç¥Ýë%U®\†–A–A–AŸí?Û¶'Ò²ÓÈÔ‘©#S•k¤ñãòí,*f‡Ôò­Bܪ>®›ÜàªãÙ'Ú[¦¶LmI¤e§éÿNÿwú¿ÊuQì³m~‡FžÃgŸ !a úXõðàsŸÉ>ÑššJ¤e§Å¡‹CgòsÀ"®–v¥S=G®¬y|+q«úXíõÈË‹ÉEuâêÄÕ‰«ElËý›]Ñ~=œ}¸ë©>¦»ô¹çZ»Tygå2í³ˆêÜÿqÿÇ=“‚®orÀ$ÑãÁò€c>Ä­êcõWã­WÝ—‹ØçgŸŸ}~VôCäþè÷_8Ωå[Eô•ËPô¥¹Oe'1fãGåãMâV­-™ÖTykÉXż‘ ÷ ¬¹Ý[voÙ½…¤¯v‘†^{<äñÇCä¾êÿîmW£2n¹ãé”6ÁnÑr¥wíÆµ×ncÙï套—^^’«—Ím­ª¾˜è•;^¹Ðn—‡lTŸ]vvÙÙeÄXö{ëõÖë­—\½¬²ð-ìp•è•;Þ¹Üq›×l¹Ò‹éÓ;¦71–ýÞï|¿ó½ì®“¶Ã»Ú oIÚ@îèúë¼Ú»7Ê•Þ^ï½Þ{½‰±ì÷Éé“Ó'§¢®E]‹f²÷aùm·÷@ôÊ.û\o¡Ù~Ùu\6WÚ\is¥Œ¥-â\v9hE—µùi”ìñÏ_ê8Û=+=Ñ>ÿ—Â9ôùÐçC¶/m_Ú¾Tþ—e’šJ]ˆ^ÙeŸ[üÕûÀ¹r/^"¼Dƨ}¹/ú3D¯ÜQô‡eW8ózëõ–TYãG¹zcO¢Wî(æ.äJOÌ{crÀšûÜâs‹Ï-Húj `€µ…ÖZ+»m\鎧½VÒùÎx|^¿ÛŽ:ɕش®ÓºNëJ\å¬íÓ¶OÛ>M®Ž®´{äq‡HÎx|ÑcGݳr%6²ÂÈ #Ùñ7‡If’™d&WGg·Ùåö‚HÎx|çXïj‘dÓ¦•3ùÕ|žÞyzç!®rVìžØ=±²;}:ÆŒ¼¼ )„ŒG„å]ŽùÙhµÐæ„r‰$$$)ÒéŠt¢+§\èw¡ß…~rQípv¸÷B["9ãÑsøJûã«‹ÛÛ®­V@¹Ä|S|S|S¡ŠPÅÿ>Ñž®HW¤‹˜ÏdOñô⋎øtÚ{wÌǘN-jž‘‹OÑ&+GõÍš7kÞ¬)÷WöÛü5s6‘ü?Q>éd§’ÓœjzíÈdm''“ôŸÒJÿI¹´Eÿ$“µ’M˜V}"9ãQôåâSôŸ¹7å,1–”«#1%’3Å|…\‰‰¹â @nCX[2>LÒWs$€a¦(¦(¦ø›û›û›ËþºðI÷Íu舧ì |ë]¥RL‰\ùpåÃ"J ¸5àÖ€[rQýÀ¥s‹Z3‰ê´°à²>ãýÚ—·|*WVÉ×’¯%_#¢ôÁ¸Šã*Ž«(WS.v3:l5%à™¾ýäB«÷µò5ùG®¬^¿ýþõ{"JÌÞ7{ßì}r5å¼kòîõEˆj¯J«º µ~Ù kÀ6¹²zæüÌù™³\9‹˜—ûÛNãª<²ž“>8øªÏKvËú,ë#»+p±ñá«'ÕâX6º¹WÏÒre?/~^ü<¹rý¹¿}ÑÏ!ªE¿W®¬DŸ™û‘>cI1®T®)1cR¢ZÌQÈEµ˜ß ¢äN$€¡ŸHÃ`¼¹ôæÒÙ…sËM.^ ÈÓ¤=CêyåÎŽøÇ³½Jzßó=X¶Ÿ…ìÄÇÃþøðGbI¼önØ»a…Xx r}Ž7mòòeR÷musi’lTp ŸQmZWr/•(»ÜÜ­;·î0u¢G>ÖùXçcò3ËÏ,/;áõdU×ÈÚé¹t_Ã!ÁW}^zT-ÓTv¹¹Wn\a‰~=’æ”æ”æTózÍë5¯ËÕZͰ9çw]È¥é»U}NM*S­IÇN²ý´3ÏÍQ-æ%ÄE&s ,{¼®Ú¸ÌwreéééDüè§—­_¶~ÙZuT»¬›ygû÷¹è©ß«áíO–³¹Û¸CÇ©re²¡ô†ÒJ?ú)©qRã¤Æ¦~¦~¦~r5X£ãÔØrQ’ÌlU™SËõiÙ5è®\™¬h¸¢áІY-mñ]{ϧœ†–/÷9>8Üçtî¹3Þ9Öqƒ×tÕíªh{Õ/ç”1)cRÆ”ý±ìe”}8éVßæ¢¨®¹jö©δO0W®Læm™·eÞ–¬Fµè·È½§èóˆþOî‰jÑ¿UÕ¢ŸÌ=H?‰1¦\݉ñ©«æž¨srÛÖbNƒø›‘†~" ƒ[0¶`lAÕê»S:µðzcÜñg»Õ¯Ó¶bMó‚E'É•ÃÎ;ì@Ìè¿sÇÏ?w\uTßè×áWÏ9ÆÕ¯¶v_·“ËL«˜âirå°nƺëf3úïZìµØk±ª£úâé€?=LŒ;ª“¶öRÏÛ·YÙz-äÊaÙ‹e/–½ fôßÝüwóßͯ:ªJZ½ÞÈ÷úm·t}Œ¹¥‡k˜Ï ¹r˜»` ˆý÷pÉÃ%—¨ŽjÇE£ã—…yT?_>äXp©Ûunû7”+‡‰ã'ŽŸ8^“Òß ¹÷o5ÁvV©))¶¼ó÷ñTßÖWÜ¿0šË7ÿÝü_WÎÏû>ïû¼¯ê÷wH¾sá¿Fþ3î+^ojÓµáÉöäÊahäÐÈ¡‘ŠE‚"áëJ[ôaäÞ_ôD_ȸ£ZôiU}cî;úOŒ7eð7Ó*¦xš·wT‹ùÕQ-æ1ˆ  ýD,údôÉ蓪;£ûÛ4»VãˆñuÄOîj=Ïí ãË ×6\ÛÀþ‘&öaìÃØ‡ªkvÇ‹&‘N·/ª/¬¨è~Võµ‡ÿþKø/ĉa9ßü|óóÍ¿Ð^ýÐ0Ðñ†ñEõuëös=½U_ûŸ‹ÿ\üçbâİ\/p½Àõªk¶r|¯cãí/àòï¬BÛ˜^+º±Xc¹kŸ:aê„©ˆÃr×â®Å] ÕQmû¹Û‰Ð¡^ž«VœŠ5¦¨®;78ra‘ÍVKm.Ê]û¨c£Ž:¦ˆUÄ*´¼ß¹Ï2÷+<¾Pù8ËŽ§¼Vß1|Ï#‡}ª#M´±š—óÑG>©ú³*(:ŒØÞËj•Ç©†ÆÕ®Ñ í_¬O…Úvä®ý· ß‚~ JOO×¼´Eæ 5kÝ~®§¦E?Võµ‹þ0÷Ã"ÆžªkVŒa/ªÅœƒêksÄ $€¡ŸHÃàó9æsÌGuÇtðeg—òKß%nòþÖ€—ÝÝë¼OÓ©C=VþB:aWû]íwµ'6 ×Ùg[œm¡º–ƒU+WÖ&ibÏõÜ 7ª?Ÿ þË'v~ÅÚì†~!A8zÃè £‰ Ãu%æJ̕յÜiN•Öó_ÝîñSÝ^ü{bÃpÝ^v{Ùí/,un±Çåm½ñnUÿ¼²¿±§ÜWýuê@•Ž¿ûÃô ?hHü3ñÏDbÃp=¸ñàÆƒ/¤1Jtr˜âúÚ5`¾Ãž{†ž$³wë_~úvÕ×;­Þ´zÓê)Þ(Þ(Þh·´Å÷Eõ§ÿݲ¾oµ¹Š7!=|ëðªEOºÍ©3¡ù¹Š3­ž«¾^Ñ®j·œŸŒ~2úÉh³Bf…Ì É}n±+gW¨ÙwN£]e =ª«Æùe®Bu9þ4úÓèO w…»Â]»¥-ú6ª?]ô‘DÉ€W-ºÝ㧺½DßUõõŠ>0÷Ã%Æ¡ªkYŒgÅØÖ€W-šØ³G=71Ï úzÅ|±‘†~" #qýÄõ×O˜¨áßM£j˜VGüè’–\‹¨su'Ûlw²ñ`îV¼[ñnEuê}»[“"N# lé¿=­݆•œ_¤]¡ ª¯îpƒÃ 7 ŒCÂû„÷ ïKF”Œ(¡ºÞ×nØÄñ¤=Å>6 ¸{LÅÁæåŠ.P}u{#öFì ŒÃ3çgÎÏœ+Ý­t·Ò]Õõ^¥lð‚ 5¼lWu>5ÔP 5ÚNݳqC±JåUùÂŽ†Û†l²mñ`^=xõàÕ×ù®ó]¿Ø¨´ ÇêQ×<Ÿ…/>9Ì`žbo1ãÜÖÌ·;[£ê«‹Ø±#b‡®K[|w¾°°|²å™âAW_··òPÌq^Hm_»Uɾ=«ýø…(º[én¥»¢-Õ]9')’IŠúÑõ£ëG«>ŸŠ‰Ç uòœ´²ÃñÛó»çì;»•Üî´·V[ÕW·¬Ë².˺è:ªE?ç å<ؼ\Ñ¢ïdXý=ÑGU}u¢¯+ú½ÜSŒƒ“~¡ÞçiWhƒçVT‹ùufÄñÊHC?‘†Qy½ðõÂ× ¿lü²ñ¦)«”/1É,ø˜]Ëû®5?†üê[@ºài!Á¾>ç]Ú®pY'¯M“’¥¿°ÕX‡±c­|´òÑJbÀø¼mó¶ÍÛ6Ïž|á™ k?³Q…ß<Ýüž‹"Ý"8ÒGïÔ½|¯]{© –ÿɲ§êk±Ég“Ï&ßýû!÷Cˆ㓲}¿0ùnVµP€é ý%šªùù‡`?Ÿ%z·3V“ßxNmuÑvc©/,{X8¨pPá [{ní¹µ‡0>§œþqúÀþûì¯ÎôYÕãCòÍûƳÏʼÇûë]zlñÌmÛN”*]kº_#u®åÊÔ+S¯L%ŒOÚÏi?§ý<úýè÷£ß« öS›ñÄÓjEÑXW½KuœStçÝÒ|lZWçZÎÞ9{çìì,mñ=RçÜ:ûÛ9YGßÕqŽ—ÞýøïÓ®^ç}šîºå÷›su®E´™¢ýÌžrþ¬ø¬ø¬˜úÝÔï¦~§ÎÚÕìóqòbcËG/êÝ"Ï…æµÚ}Ôfe£¹&¨s-±‘±‘±‘ÙÕ¢Ï#ú?ªÏMô£DŸJïÖ+ú!ØÏg‰è‹Š~©êký[Ñ×å>b|ÄøTŒUUG‚óŠñ¯¾Eµ˜+óbAõµˆ¹1/A €ÀÐO$€aŒÜî ÷ð}áûÂ÷©36û©PCÓn6XäØ1}ZpœObŽí³ÛdÓeÛ@óß‹ªõ4ól×Ù®³]Ó6§mNÛLµ¹«Š«Š«ë;­ï´¾“‰ÚV[ù®f’62ØÜ'Ǧ÷|hVãÇ#iÅ«sÎtø£ÃR÷§îOÝOµçÛö‡mS?ª—9y×®ºïãŠ^?{_É©¨Žúä?ÄÅÆýEé@óêœóÈ"#‹Œ,ò¡õ‡ÖZSã¹ÁÞà½Á{ƒÕjÛ;ÝzŒHôh¹tQÌ79•Hpôõxi™n%\»«sÎý{öïÙ¿ç»1ïÆ¼CçÏ<ð¼úQ]ñŸNùÉýÅ?ÜSQ]½òؽ+bK>u®íªÎ9÷lܳqÏÆIÕ“ª'UÏ©rß)ñýR眽ï–ÙWRqè|‹:5]sꞘòsàN“jßNýídÎFuì¹Øs±çÔ?ç !íÖÿöÉmÙ"{)oNEµSÞñýWûZÎr[èûHs8p"àÄ«¡¯†¾šSå,ú?¢/¤Î9‹þ•èkåTT‹~¦èsª!¢OËý"7cU1nU'6ÄXXŒ‹s*ªÅœ€˜PŸ˜sÔ;¨Fú‰0Œ\ÂÅ„‹ ýoùßò¿¥~7×çSÙ²µ6Ôl8Â1!ah—еók·óýü·në„oßÓ¤žÓ¢3*^(UTýssëíÖÛ­÷-“[&·L¨ßÜéiÙ§eŸ–í0¿ÃüóÕ¯Të©%6DØÖW-õþØÎùku×nT¿.Ýúî°È6~ËœƒæU6)=Hýs³ßj¿Õ~ë••WV^YIýæN/Í^š½4 L L LR?r\nXÝ7Ï¿*Ê·™CêÝ;Ùx]Òò>X{ެ×àß»M_Öpê<ÚÎÛú¸úçf³Âf…ÍŠsgÏ=w–úÍÞ¬³þÍúþiýÓú§©9f-Ëœ¶XÙ-pûر.¿Í¬¸­„v“í—nˆ)Q­æˆù‹®—ö­W¹ù‡,œ›‹™‹™Ë‰'VœXAýæNoo¿½ýövèÖЭ¡[Õœ"Kù—Ù_©u÷{#o×x;}Í-ï±ê‘¸|ê± ÕîŒ\¾8Ôº«ïª6ýM²èH#ŽзÒß5ñ½SÿZz6©ú[™âQ-ükÔHK©xÐ[Ë£˜ÛK;º{Õ_^Ý{eÕd‡0 »b!ꟛhEÛ¨?圲5ekÊÖ‰ù&曘Oýk)<¤Ä!˶}»(†—¯1xšÉ&KíFµç •VÇg;þ>zɲ_l7ú±ý…¬FuT©¨RQ¥ô-ªE¿Hô‘Ô¿Ñý1Ñ7ÓnT‹>¤èOо¥úç&ú®¢Ë="wcX1žU?rÄxYŒÅ8Z»Q-Æûbì/æÔ?71Ï æ¨_P `è'ÀÈEN>9øäàª+ª®¨ºÂä«8V³8VìXÿ‘Õÿ*·ò¯¼u·ÛßîÒ¤°ShtZóê.‹ŽÄ´øTsÃÁÊÍÿv¹¹³G“Nï—Ž¯÷¹êü!’óìòç\o• 7ÿuŸk~ÅüŠù•èþÑý£û+¦)¦)¦Q›Îsþ›ó߸•p+áVâë¢Ë¾iÉ–fûžs\\îûEÞu¶ï¾­Tã NnÑ=üS]YÐâiÍ•75¿ìò~×P¿ÎÎË]½WU}7¼MI=W[ÿT¢£‰ö|ÜóqÏÇôKé—Ò/Q›øo¥ö•ÚWj{·ðnáÝâëâªRwó;fyz[V[\6äÏ1uºÚ¥mý¾qê©ÒIÿC.þGº·¸VóσqÍ×ü.r²ßfçA+^úÔshúÄed…Ô:]mú•tÒ$ª·;owÞîüùÊç+Ÿ¯P›n:Þt¼éØÔ»©wS﯋«"-WYÏ)}×ç×V¶Î]šóµØÿÒŒ¹Õº‡›ä8}´´¬¦£õ¨AKf9ò~~µÊz_©ìËæ{Þ-áíàæ:C“¨Þ`³ÁfƒMÚÔ´©i,õŒÿÄ]»wµí›¶oÚ¾ùº¸*¼¸¤“Õo¥êuoQ»âíήCnÛ»õ/?}[5ïûÂò9޽r™©cåQó–ìrpÚ~þ¶*ÎÁ±BË…´lt½ÄGÇ!½5‰êÕ—W_^}9õUê«ÔWú\Îâ{'¾ƒš\¯O‘2g-òR³_ÅYáË}öîîæ§pþûIó5 ©ÖâhÍiRUÿ©.ö›Ÿ4ºV}ßüµ#íþìä°¨Ìéò}‹÷,jùuŸ+Ú=ÑêTÇW‰¯_¥[@·€n_w½….?\²~©óu"ýÍ*Nèd5¸¿ýw¿ Ÿv®ZùÍw>zÂÒçŽN£¶.¹åÐ|èþöU†„Ìž8²\B«¸àÓ%79­«UW“Z^¶4liØÇ?þøñG}.gÑGý%M®WôÙDÿMôåD¿NôñDOôýD?Pô EÿPô¿îsEUôW¹@ãY1¶Õ$ªÅøZŒµÅ¸[ŒÁÅx\ŒÍÅ8]ŒÙÅø]ŒåŸþë>WÌ'ˆ¹j¾ `è'níÈ}þVü­øûôºÓëN¯ó‹ö‹ö‹6ÑK< x8ìwØï°_zÛô¶ém©:Èz£x£xsaì…±ƶñiãÓÆG?£Úñ‘ã#ÇG’•d%Y}ný¹õg–ÃÅ\-vµØÕbÃ:‡uÓϨ¶f;ÍvÚž½{öîÙ›V4­hZQj ªÝtsÐÍAA;ƒvíÔϨ.½²ôÊÒ+w”ÚQjG©Ô¿RÿJý‹ZƒjqóâæÅÍûmÉoK~[¢ŸQ]lf±™Åfnj¶©Ù¦fâ>Ä}ˆ3ÄrßGñÝßSý,mѾ‰¶Îp£úÁ ƒ ÖdX“aMLôXD£ˆFR§<øðàßÇý>î÷q8<гbAłЗ .\jëÙ­g·ž}Øÿaÿ‡ý)sèZR³¤fIÍŽþsôŸ£ÿL\1qÅÄΜ8Ð<ª {ö.ìÝÓ®§]O»Mc7Ý46¾n|Ýøº”9t-Ù&Ù&Ùæø±ãÇŽ›²qÊÆ)]߸¾q}£­Ií®ö]í»Ú¯·Xo±Þâžâžâ^®.mñ½ßqñ}ß}ÍËY´E¢]m”h¯rg9§”I)“RæÔ¹SçN›ñÏŒfüãÕÓ«§WOmEuG›Ž6mÖnX»a톸µqkãÖææ¨}0Ñ}3ÑOÓ¼œE¿Qô!ERô-i·¡kb¼,ÆÎb-ÆÔšGµã‹ñ¾û‹yʀ܉0 ±)±)±)1åcÊÇ” ˆ ˆ  L`èNL>1ùÄ䘶1mcÚÆVŒ­[‘2¡;]ãtÓ5b¦ÄL‰™rìã±Ç>*î*î*îR20\çsîNÌ¿1ÿÆü{ìıÇN¤?K–þŒ’áºÜàrƒË bžÆûûìï3ù4ºŽg¶_‡º|1øÌÔŸê÷a³`¼û”ïþXâãnÿí—?Ow+7,}v}§¿ú«cëÖ¼ßötß+ƒÝü|§æ§ÎYW}]õuÕ³&eMÊâC+€7JÞéÏÁüœÅ!åk¯\ò»a>ƒ§Ç- ¹î¶gg¯pçJÙ¢m†Oiµ~äŸÉ¸FLòvÙøwËä{gom²Ãynÿ~nókuøÌ¦¯U•ÿöïê¯{úk GZE ÓD »~úúéë§#R"R"RþÅÉËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎê_Z;8kpÖ଼ÿ”·nWãhœü¢·Œíýù4ÇÍV¬8r¤ Fÿ΋×ÅW¬ïóÍìùç«…9µ}ñ/¶ÍÛÚÛÚûð²ÃË/ãø…M®éÏ»¼Ÿ§}Ã\?¯a³?2ÂË+ë¹S´\Àw1—wmÐliƒàå®OÝTv®›÷mÓ_õ×FŽ/´„¦‰ZÔP×P×0noÜÞ¸½yZÐüвEÙØß.6ŸïÞ5grLjÈã‚](Éû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬vLÁž˜=1{bò^ŠÔ¹Ü«Ï7ýÛ-ž_¬`ëÞ¼î¡ßÞZ\£¢Ÿ[EßÞy*rúî;¸ï³QÏF=Å ŠþœÒŸ_y9ƒ¯ÔØ[I'ŸŒ ôñ}[÷/Ï?ŠÞ\b~¥ÀL—Ny¿î鯓qh0L04åἇóÎku¿ÕýV÷s_t¨çPq¼uÌAçvW}½t%b? -ý¶M^3fÅÆ„†œôáÈÀª‡Uª–û¾¸ví6úæò›Ëo.'¼yS2¦dLùbðƒ¿œ—òÃõа’³Š5¸üƒCƒßVéklô^4móæÃvÕO o™—}Iš”4)‰GCù¢?òrÆupö°.ÛufÀHºÑÅÆ††¾ÜÞÿdHëí)áŸ{†åe_ô×Lýõ“ À|QÃ4QC#Î>ø|žÞ5»»Këý^Ö¦¶\’ûxàçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯üÃ/ŸÕŒ™3Î+ ÎŠîG¾2µÒרèÕqÒ®õë*Ôuø²Þ?üjÝæa›‡mF€Kîä~~y<­r̦߹‡«úëÌæ.fVl“PçOCûÖ/‘ûÞ鯟úk)y€9¢†i¢†Ù;r0ä`HîË CÏzz;,~ö4zCð;æUýþŸß©ßÙÿdHëI_ùßp Î}·wÞÞy{g²@á¹´äÒ’KKrÿ‰\y—÷“ ±~®s“öµ2—Ò÷5cà ˆõ x÷Dz¹ïïÜÇsÏ}L6€¼ÐŸ/¹ŸS+Û5 ­ÿ“îQlŸÐ 󽋹ów¯™ãÚžpœVõnîû«¿®’ ˜ `˜& `˜1!QHs_DØ×¡M²—j¾Ë%ÆÆÄíígùùç¾ïë’×%¯K&'¬ó¥Ï—>_:÷ŸÂN×úëbÆ¥¯±Dïžn¹¥yÙd«õZÛ÷Iã&›4ŽœÆèÏcgmx¹±–©Uº X¦½»˜¸_CnºíÍýú©¿Æ’˜ `˜& `˜¥„2 eÊä¾ppeb·È€GÚ[4ù?¿MïØ«Y`GGÛ2VãÍö!Û†lBfÈ¿+¥®”ºRêÖZmìþ_Öj¯ú}uôï´xm¼mß!ËŒÍÃOs~šóÓ2¼J^;k>WgºÝÄçu¢ÅàRÚ¾‹9òYû$¿è¸›+u¥Ô•Rd¦¦‰fæBê…Ô ©Æ– >¶ilõÁƒN½“›¶Ðö¢É«ãó^Ñgƒ+††ÖlR9ÂØÌ¶8lqØ‚üðßÜo¿ýýö¹×Þk¦]Þòž¶«ßWÇFçâ:'Öª~¥U—®“Œ>¤Úºj몑@.;S¾8âñ•C­ìk1q!G‹Î]Ìåƒ]×LÉýºª¿ö’˜2 `˜& `˜GgytÆØÒ@­ 6¥ËßN›Ó76( è,š¼:fï_)øÏP©æ ÊÍÒ7JÜ(A–È»,,,Ÿó>ç}Îû ë³`æÉí§ŠNõûF猯Q?¬k7£¯ÓŽ•9VæX²„¢IŸcgÇСžåÆëVÅ6u/šw1­è>²ñ¯F¯®ç}Îûœ×_‡ÉL0L0ÌÁDÝDÝÄÛÛ[£¿þwïMÝŠæ¢Éÿy7ð¶è'ÁõêÆW,nýš¹rJwJwJ™ö2íe± /Æ8Žqãhô]¿ÎS»l*[D«ßWß œ·%q^ÕôÆ%Ã~36WÓ¦?L'Q(:ô™7vFtSï¦ýÌœ¡1çBîs“Ò¢Ë^›+ýu˜DÀ4QÃ4Qà ¬²\e¹ÊÒØr@jµ®G–³hòêx·Y¯­ ÍØäž“{NîI®È]®„] »ŒýÇŒ]uõ×dÂSC\Pvþ¾ó÷¿ëçpš k&¬yØüaó‡Í™™ÿ†&íÖ°[Ãn 3¶°{OëT/'JŒGŸwˆñŒÍ^ò…ä ÉȆҷ¥oKßfìghá=«oGÝklôýdV“ëÍÞžà=Á{‚É´MŸscgÁu].Mêq·blœûq §ó_ÆfO}&c0Àù—™™iì.€2ø¿¡†I‹5>j¼á ÿù°^µú²8’—qz»€õº½æ}K¶î¶î¶ºOtŸè>!i¼jÊî)»§ì6üéY!»N)·–nÅÍHŒ¥èÍ}tU†fütÇØÍÛóÏG<AÒ =úlKþv!¼gw(¹9~1RÈŸ¾MìúÙv7œCýõ™¤ÀtPçß«ïýÍepÞQÃD°;awÂÎØIþdt_9h(‹#y_ví¿)ÄÏ:ܲOÙ×,Eí)¹§äž’ä ½¿§þ=õï©Æ^ø¸Î˜¼Í‰r7cÜ‘ÄÊ¿zor3œÉŸýÔè§Fä ڣ϶aæÛöwŒ®zF—ÃJÞÆ?'vÛÒ¸®±«±þZMÞ` (€óO_èêË]‹<£ Î0LÏSÝSÝSßTßTßTÃSz[DXŠÇDþíx8»}¸ŸÑÏQÎvÎvÎv&z|9íËi_N{ÍgvŽëô|pwjÝ;ú¤ÿ”½³ƒ±W .=ºô詃6èólô±Ï³{¸7)Ï]É¿'§6úÌižá|ê¯Õ¤¦€¸`Q `˜œÓö§íOÛžÀöÓ­ç”/gTÌ…‡,…ü·±å¹ZOªt4œÛ}iûÒö¥‘=@Qv7ænÌÝc7þ¥~Þ¥\¥Ðýoc­øOGÄ´4œÕÙcf™=†ìAôy6Ìù˜3~¥ëLáNä¿OŽv 2ú‰ìúë6ÙÀÛE\x(ƒóƒ&'êvÔí¨Û†'­Tªí"ï3,‚ägLÕižÿzùuÍtÍtÍÔeé²tY$P4M¿3ýÎô×|fmÝz½»ô¤ÄÍÏè·q~Ÿ?Z»1ËìœÙ9³3 „ùÒgØXÂïÝ{\SkîDò3.ØÓtžË.ùÕ_·I Þ. à7ƒ2øß¢† yPéA¥•Œ>¦Xˆ™ÏòGþGÏõUËÚÌ4œáÔé‡S“C@Q“’’bìHÃ)‹ªH'(qó?Vk9»Ë†3,ä9B9„ùÒgØ0ÛCÆ4Ȩu‘»üŸõu ªhì*­¿†“C¼-Àoep^PĬn°ºÁꆧåòÒ!n=Xø(¨qïâ6³½¾æò7d CÈ! ¨9š|4ùhòk>~"£ùø¨+·5z»Ní¹©‚á<·®ÝºvëÚäæKŸaÃl§Dt‘eq÷QPã ;÷]µ^s Ñ_ÃÉ!Þ à·‹2Ø `˜a „žŠ÷Æõ®xÅ”#æî îòñÿz»ˆ^šòÖ¦oíÜÏØ…/çYγœg¤Pt I’8$Ñðg¢ç¬ Í×L0…êÔÿÈR‹·ºd}‘YÙÝ«M`«ïíÝÊþiu Â ›븸}UõNÀ•°ÏÝe³d£‰ÖÀÎ+>;2Ѳ‚õP›×¼Þ{ºþéú§ëI#Ì‹>·†y®¸ ÜKË/tkb[„º¿ÝWþYþ1ÅC>+w¦ìp‹;ÿÉÍ=ž4™l w1§ïFÅù¿¦Ö_ÃI#Þ `ÓAü* `˜„Ç™3gžx^ÉUÇÚ˜öçþ–Ž-jáß¢Ú¤Š¥_ÝrÓÿ úž²Kåê¯ù4¾k¿_ûýÚïdPäØäØäØ»h´rù‡;¿ÝÒÔkØd« 5¬?®~˱KÞo]ªu `±¢Ì‘2¦V×¹ÚkȈ⯹=¾;þ6™„yÑçÖ0Ïóë7-îÒÝ^ó_ èjàn‘¦Sg]i2Û诱ÚäØäØI¼yÀ¦‰2˜&á`Ùƒe–}Íß+‡´wëmÊÕïûþPwá–›~¼o}›t¯s†[¾¾Ëú.ë»I@Qp}Ýõu××½æáÏ3š5èXïí¥®ÆJŒ´Mv¹æ}꛵¸ìAËûÍ߉òrž7¨ò$ Ïâ?þ¸º±Û·_7žs¾šKÓÔ¶ó-,~±8ú꾘܃ §N·yºáœ83â̈3dæEŸ[Ã<_véúe@Œ)¼æß=ªõ!¯ª¯nÛœÄÀªÎgÌh:Þec^Ƨ;¢=ƒö˜Î]Ì€Çõÿ®¹ÈpÎõ×s2 €7ØôÍ2˜&aü³ñÏÆ?3<Á.yvµ p3……†Ûz ¬·vp g÷]c2ü*×™ãþg•*<0vi0ýøÞ–Þ¾¯y¿BOËž–=-É$ (Øá±Ãc‡‡áOC·ƒÃæ}ôv‹R×¾_žžù~É̹ßgS&~ªÿ Ë]ýÿRki»œþôÿmÝ¿fÉ:gM­n4|¹ó¡†s^eU•UUV‘I˜}n óüòiÿ¿CºšÂk~}Ý«ß*§N}­ýÌånÅØ¸·x›N^_ιþzN&ðæQ›—¢SSÃ$øó;æwÌð¤Êpîw%x¿),4ür>tO}¿¼_Lé$'#öƒÐ’F·?E—¢K!™mûfï7{¿ÙkøsÐ7vv¿ÝµßnQêСC³KõÛSþ@Õ¿kxäå‘Î>+f>Üžñÿ½ù÷ÿ7°©ÕÀ¶3u^¯ùäÔþ/ü_ø“L˜>}V 3Ø¿úJ^¦óšÈG ŽÕõÛ™êøØÎÑÜ à›7zZ4ùÙpæõ×s’ €7Ø|i» ¦†‰^"«NµV®ƒé,4œÝÕ©•ÿ÷?}ÐxW½LÃÑ `ýÖØaD•µ†ÛŸ~&ýL:ahœwKï–Þ-_óé¿—9äüv+Rûœæs£ÒÊÇVQí÷UíѨNKß¼T¹¾»ætÝÓÇpL­vÈŒj1Èó5qµ½n{Ý–dÂôé³j˜á‰•ü£ë>7Wû­::Ô¨ò•~ÛFöñ^ãhm¾Õ¯~|Ù£ÿæ×üb®þzN2ðæQkƒöÊ` `˜è%²»Ÿ³“ýsY†0ßøÇ ÇÔh¸ý·2neÜÊ ™€¢ö IJŠõ›hS«Kó>Öì}näÉWß7lš°«0ôîOɆóŸè“è“èC2aúôY5ÌðöÕá=›˜æ}Ê¢!A>®õ¿ÀÚ$»zóJU+·*¿Ìò¬K½J¡Ö©£„j)q%B6¸-ЕŽ-jÒw4w•ÿÀò›×Ý…omØÜi£ ¦†‰^"'íñ×9µ£.ìqí¸îû ·?éHÒ‘¤#$PÔ^Tºç9´I3Ó/z½»N}´é”Ç™ÒVýàVõ«Š³{T¯×¡ӦW÷ÅéiÿŒ±CL³ö¬;þÝÕ× çsÍu6×!™0}ú¬fødRÇ —™Âëü'ñ}S‚ƽºmÖ«-,;=/Ëͬe]ùÔµÝo6¾ašw1á›j¯’E Ó\[ Öó-ƒ)€a¢—È_#BoÔoO\Ø£˜Ñv¶÷ Ãí?w î@ɵW Õ}[„wºjú°Õ¥êŸÖ^n¸ýe(¿Âê©óÇûO1åí÷i1#eÛ<Ãíÿ¹ÝÏí~nG2aúôY5ÌðÕÒÝ®5nn ¯óOï8¥áç†[;´~§šM7¶ôkÐYÿg¶Ü ûÔcÅg¡îýjÞ,ûŽÅ‹ÿswcšïþ<¦{­^À0͵ `­2¯2¸˜éœÀ«¶$‡µöXJ\Øã‘ì%ý&7ôjýñiï˜zæ[¿ªþý‘'í3Íí÷M“´÷òí¹Ý´çãÀ¦ð:Ï 6Õ½>Õo•ûŸU>¨ð`}D‹?Ô|õþÅð»övoó­×Ô×ÔÀ&v3fƒ¯®ÎXòÀ\ìü}çï;§,v®m]Ñs;pa'îw×py@ÏáN”ígéæò‰¿Æ/:tÁ'gV¹_¸­ýúÔܹ•ݽÚöyu¸>±ìš©m¹_÷y±û?"oО»)½nî1å{–{wÓµY½/í››Ú¾L8ê߬îuòÀ\dnÌܘ¹‘àÀ¼€·À\ÞllÔïE•æ¾ûCŽ¿º_¼x3LçÀù7•oÕ¬AŽ~Üt•ÛUË;€ ?ŠÐ;€õÏ@ç‹/ý—áÉÀg¿ÝÏ^è¿Ð¡?Éä‹/¾øâ«¨½1—ÏÎK ¬WÞ¯Jýj:S«}ðpe¸2\!™|™þ—>«†6Ï.¨Ï¶^mùcÙé¦vcì3€I&_|ñÅ_|ñÅ_¦°¶° Ä‚ J03ÚûÚ5r×È]#c‹Ç-ž÷êWÿç‹Ðg¹¿#|ÒS; àÂ׎káá¾Ïpû“Ž$I:B2EíH¥{žC›4{ËG^>ßëËW·ÊéiÿŒ±Còþ7x4×ð×pý÷Z&ØÄUªdj°gÝñï®~Íã[7×Ù\gs’ ӧϪa†O&u¼Ðp™)¼Î—oD¶ð ž¶}èóáŸiÝ.4nš÷ïÝv(üÏÒú=ª×²âë/Lí'|SíâU²^w¼ýµ}YÈÌhƒ¾¸°fš kò^úêÿü›/}_E ½Dv÷sv²ßC\Øã;Ž©;ÐpûoeÜʸ•A2Eíˆeë 6Ѧö.^{ë=íƒóþ½NŸDWõ¿÷&VúÍcQcS+€]…¡wJ6œÿDŸDŸD’ ӧϪa†·¯ïìÙÄ^ç7ò«öWÅ`ýV5ÿ±–uåSyÿÞ/îzŒu¨§ÿÞ¾¢ë¢î¦vSqWù,¿¡€i®-P›;ó-}_E ½DVj5¬\ àÂÃ;Œ¨²ÖpûÓϤŸI?C2ÚæÝÒ»¥wK߃:/;sÈÙt `‹ÅeZ†4˜ùý“¸.ÿðÙºg{ïºSþ“ÊË«5Õ«ƒcû±WM­vÈŒj1ÈÓpæ¯Û^·½nK2aúôY5ÌðÄJþÑuŸ›æJ^îS¤÷ÚÎ÷>U6ÍBµ¥ÿójBd–ÏzÓ¹yÙ£ÿæ?ÃýÒ_ÏI&Þ< `mÐFéû* `˜¿c~ÇüŽž<Îý®ï§.Œ1'#öƒÐ’F†Rt)º’ жoö~³÷›½†?}cg÷Û]ûíV¤^§¦øn\RöO«½ºm5޵nѳ뜡}ª£Ô³[Õ¯*ÎîáСC³K_}à³þÓõ”6µO)¶é¬óZo8ó/ü_ø¿ð'™0}ú¬f8°õ!•¼LáÕþã¿ú:YמosÚꟕ«¯uûŹ…ÕX¾}Ox/Ïà#­Û'úußèÞrnƒYŸ…º÷«yóÕê7z³ë“±¦vwsóFO‹&?μþzN2ðæQ›/핾¯¢†Iÿlü³ñÏ O¤Kž]­Ü(€ c¼·¥·oàmÃ-ïiÙÓ²§%™;Û†™oÛß1ºê]vl w(yÿœØmKãºÆ®Æúk5y€) Î?JßÂ@ “5>j|ÔxÃûóa ¼jõeY$/ãôv;êu3œCw[w[w[Ý'ºOtŸ4^5e÷”ÝSvþô¬]§”[ËF·âf$ÆRñæ>º*C3~ºcì&íùˆç#ž iÐ}¶%»ÞÇ3„;”ÜÇ¿)äOß&výl»ΡþúLÒ`:(€óoçï;ßù;¥oÁ¢†I»5ìÖ°[ÃŒê»÷´Nõrb‰ÄØxôy‡?ÁØì%_H¾|Œ`(}[ú¶t£Ÿ:YgxÏêÃÛQñ}?™Õdçzc³·'xOðž`2mÓçÜèã u=º4©ÇÝŠ±qîǞΛ=ýõ™ŒÀtPç_vdvdv$¥oÁ¢†Xe¹Êr•ÑϯM­ÖõhÀrJ^ï6ëµ5p¡±›ÜsrÏÉ=ɹKØ•°+a—±Ÿ§îñ£†.­AÝûêè}iƒáå×WWý°áŒE¥E¥E¥ért9ºÒËÑåèrô™ÍgŠçØdX}ó"³ßÑàÍܹ¼:ÆwkçásÌØUWM&\05ÀåÕ÷Súæ0ÌÁDÝDÝÄÛÛ[cË÷ÿî½±©‹&Ï·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆy1ÆqŒãGc¯@¼§vÙT–ê·QZÜ–ÄyUÓ— ûÍØ\=L˜þ0D¡èÐgÞØÑmL½›ö3s†Æœ ¹Ï]LJ‹.4zil®ô×aÓD ÓD ³ñèÌ£3Î[¨5Á¦tùÛisúÆÍE“Œãý+ÿ*ÕTy ±YºQâF‰%Èy—å‘å‘åásÞç¼Ïyc?a}Ì<¹ýT-€W <2¾Fý°®ÝŒ¾N;VæX™ceÈŠ&}þC‡z–s¯[Û<Ô½hÞÅüµ¢ûÈÆ¿½ºž÷9ïs^&K0MÀ0MÀ03R/¤^H5¶@àð±Mc«têÜ´Ez×o¯è³ÁCCk6©alf[¶8lA~øoî·¿ßþ~{‹\y¯™vyË{Eè]¿çâ:'Öª~¥U—®“ŒÍɺj몭«F~ý¹`ìLùâˆÇWµ²¯ÅÄ…-:w1—v]0%÷ëªþÚK~`Ê(€aš(€a–Ê$”I(“ûbÁ•‰Ý"i{ÑäŽc¯f}lËX76Û†l²m™ ÿ®”ºRêJ©Ü_xT»ÿ—µÿ¬ßN‹×ÆÛVñ÷]²ÌØ<ü4ç§9?Í!3À«ôç…±³æÓqu¦ÛM|^'Z .¥í»˜#ŸµOò‹þ‡»¹RWJ])Ef`ú(€aš(€aÆ„D!QHÌ}á`_‡6É^ªöM··ŸåçŸû¾¯K^—¼.™œP°Î—>_ú|éÜ ;]ëp¬‹öª_ïÝÓ-·4/›lµ¾B+cû>iܤq“Æ‘Àý9bì ² /7ÖÒ!µJ×#Ë´w÷kÈM·½¹_?õ×XrsA ÓD ³w0ä`ÈÁ܆žõôvXüìiô†àwÌw¹äåÎþ'CZOúÊÿ†Spîû»½óöÎÛ;“ Ï¥%—–\Z’ûOäÊ»¼Ÿõs›´¯•W¿ W,<"Ö[4àÝËæ¾¿sÏ}<÷1ÙòB¾ä~N­l×,´þOºG±}BƒÌø©E÷š8®í ÇiUïæ¾¿úë*Ù€y¡†i¢†Fœ?|þðùÃy°»Këý^Öæµhràçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯äþ3º^͘9ã¼ê¬è~ä+s©~½:NÚµ~]…º_Ö»ŸûÞm¶yØæaäø·ôçÎ?ÍqsÅ‚-zý;/^_±¾Ï7³çŸ¯äÔöÅ¿Ø6okokïÃË/;¼Œã 6ý¹¦?ïò~žö sý¼†ÍþÈ/¯¬çNÑRpßÅ\Zܵa@³¥ ‚—»>u[PÙ¹BlÞ·M=Ô_9¾Ð `˜& `!‰C‡&u]æºÌu™Åâ^¿òÁ l°°Öò…4Ýârh‹wX9BVÛÞóÕøÈ—>ë$§¶+½/nëö—Gúâ±AÙ®³‡ýá9Ãá„oŠ]œíØÿöïÚ&Ù&Ù& ƒ…ÁÂ`ÝdÝdÝdŽ&æâ¢ûE÷‹î­ƒ[·þo¯Êw¯²Â~fµ+!Ÿ|]dzGÛ¯C]¾|fêOõ{°Y0Þ}Êw,ñq·ÿöËŸ§»•–>»¾Ó_ýÕ±ukÞo{ºï•ŠÁn~¾S-òa]õuÕ×UÏš”5)‹G=o”þ¼ÓŸƒù9‹CÊ×8^¹äwÃ|9N[rÝmÏÎ^á:Ï•²EÛ ŸÒjýÈ>“ÿp˜äí²ñï–É öÎÞÚd‡óÜþýÜæ×8êð™M_«*ÿíßÕ_÷ô×@Ž&´Š¦‰EÏJÝJÝÊ£kŽ®9º&\ “ä_Ú¿´i%\ WÂs:ætÌéÈ¡ÀÜ]üòâ—¿ì·­ß¶~ÛLóHµåÕ–W[¾Õn«ÝV»Ì…™ 3rÔS ?õç¦þ<5Íkˆþú¦¿ÖqÔPPÃ4QºÛûn﻽o‰ãÇ%Ž5kÔ¬Q³Æ›_(±²·²·²ŸµrÖÊY+¯»^w½îÊq@Û|<ðñÀ 7TÜPÑÏÙÏÙÏùm6c?ûáØ/ã⎠`.ôç¬þü}[WýµKÓ_Ó8.(j(€aš(€×¸ßâ~‹û-ö÷ÙßgŸáÑã‡G׎«W;.ÿK$vÓí¦ÛM|ið¥Á—v6ÜÙpgÃÛ“nOºÍ€.­MZ›´6~;ðÛß~Xöò–yñâ9$ÿ¯@Ê— .Ü×¹¯s_ç £7ŒÞ0úZÓkM¯5eÎ-ÑŸ×ús\¾ëÏýü_Cô×"ýuIÒ_¯˜s0MÀ@Hxžð<áy¼C¼C¼CBTBTBs Û‰Ë'.Ÿ¸¿;~wü>x8çNΜ;Ì €Üé¯úë†þ¢¿ž03  À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À@Hxžð<áy¼C¼C¼CBTBTBsswxÂá ‡'ÄwŒïß1Á1Á1Á‘9¹;êuÔë¨WüÄø‰ñfÌ8˜¡»¢»¢»ÂÌÐ `à5î·¸ßâ~‹ý}ö÷ÙßgxôðèáѵãjÇÕŽ³È7»évÓí¦¾4øÒàK;îl¸³áíI·'ݞĜ£°=üðá‡?»‰ÝÄnßF|ñmD½æõš×kžÿTW]it¥ÑŸ½÷Ù{Ÿ½·­Ô¶RÛJÝšpk­ Ì9 Û£­¶>Úª U†*C¿óý˜ïǸýåö—Û_ùOu…~úUèccc·éø¦ã›Žß|cðÁÌ9ÓG èn﻽ïö¾%ŽK—8Ö¬Q³FÍoœ•½•½•ý¬•³VÎZyÝõºëuWŽ òã^è½Ð{¡+âVÄ­ˆsZê´Ôi©Å[2Íšÿ4ÿ«.W]®ºp\¤ÒiõãÕW?vîþÜýùÛJõ„­¶NØšú~êû©ïs\ õlÛ³m϶†óÆÌo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À(B‡&MêºÌu™ë²ÿX_Õ¯|°ÂÁÁ#,¬µ|áM·¸ÚâVÎc„Õ¶÷|5>ò¥Ï:É©íJï‹Ûú„ý呾xlP¶ëìaxÎp8á›bg;ö¿ý»¶I¶I¶IÂ`a°0X7Y7Y7™£ ½“ÅN;Y̯¢_E¿Šÿ-].­+µ³¾ñÙ ÷EµÞ›Üô#—Þ›íZ­óðúDdzUçDÞöY.mh{Ö;}ûWáÍ==—ú¯p}6¼ƒ×øÚÑ~±ÿ°b×ü”g»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo04îúé맯ŸŽH‰H‰HÉûò}ÈËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎ*ïÛæ7Ào€ß€‹‹Ó‹¨Û5o×¼]³Ëì.³»ÌÎ{r2í'U\·ºN³gõ3¯Žî^ªqï‚MõÃj}ì›~½£CøϘ¨YNÕ¾ü%ô&—M.›’–'-OZÎñ-šî[ß·¾o–÷äx_¨zÕ¶ÔŠý¡mÜ2¯”èV=àLÁ¦:Mê;2¨ùî+­ï{ytÿÎ9ØþPÞ·­ú²ê˪/;qüÄñÇ‹ÚѤÞ. `hQC]C]ø½q{ãöæe™ÞúCËec»Ø|¾{לÉ1©! ¶BÈû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»å½‚ú¥jèÐúY#clCF¾­TïzÑzW1wµrV…[yÙæ»üØåÇ.™û2÷eîã°[lY°å_<Þy‰Gp×½Ëúœô¶R½ÿeÄ0ïê ïU‹¶ÍÈË6,?²üÈò/Ú¿hÿ¢H<öœx»(€¡)ç=œ÷p^«û­î·ºŸûr|=‡Šã­c:·»êë¥+ûIhé·U$¼fÌŠ 9éÝqYÑT«T-÷}qí6ÚmôÍå7—ß\N´çI‡'žtˆºu7ênîI°·þ¶Ü3éhÛ?½u9•cv„\0¡TëbcCCÏþÙ©³ÿ¤Ve>¬Ò÷Þ=Y²zÉê%¯Æ^½K´çùÒçKŸ/=0zà?ü‚Ž«eTÙ/÷Ul#{íÈ~?&<ägSKõ…°.ÅMúôtõv‹rß—rýÊõ+×/eWÊ®”]Ú>¾ÀÀÛE 8øüáóyz×ìî.­÷{Y›Z…ûxàçvë|Ëçeï;%vJìD´áŠãÇ+ŽyúÌQ¿°ò#Í+ÕGvµì÷u¥Ùå;Y®Ë}ï”æJs¥9yІëé×Ó¯§WZ]iu¥Õ¹÷µJ‹0÷DóJõ©ÑQ6 ã‡ÚÖ²š“ûÞíY½gõžÕZ=ÊÀÀÛE ³w0ä`ÈÁÜ—Ú‡žõôvXüìiô†àwÌ«Nxu|¹³ÿÉÖ“¾ò¿áœûþnï¼½óöÎdÃ|<y<2÷£s³~­šÕÓ~èÛ'ÈÏ|S},faHÂlÇ&㜿Ê}×}·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°ióMµÎ?Ö>´ââ/ƒÒ]g便qïŽ÷žöŽ50ðvQÃŒ ‰B¢˜ûòú¾m’½T3.ŒŒ‰ÛÛÏòóÿ‡Â,y]òºdrb^n$ÜH¸‘û‘Ýz/l‡Ç%í¥úÔÚ(džÇÿ¡0û8îã¸É‰y9ÙödÛ“mÿázõ~‹h÷ ÚKõyûÎ?5ú‡_Ù™»h‹´tÄ)€€·‹f)¡LB™„2¹/©_™Ø-2à‘öê„WÇ;޽švtô±-c5ÞØ}4j®¿…¶S¶©ï° àÐ65ƒ*}gÿ’{Kî-¹§ãN ¼]À03R/¤^H5¶€îð±Mc«têÜ´…¶ë„WÇç½¢ÏW ­Ù¤r„±™9lqØâ0‹ï&êªÝU»«vÆŽ]ù§eÿ*ët{P¯âÎE'ÕßõË >Ö~PëvûÍŒø£ø£ø#ù1M·–ÜZrkIîÕïµ[ÝŸ4¾_tRý2»ÿÝî}º¶ªñ®±9Ùá±Ãc‡‡¹} `àí¢†ÙxtæÑ™GgŒ-š×š`Sºüí´9}cƒŠNð ³ãý+ÿ*ÕTy ±YºQâF‰%È’éxöõ³¯Ÿ}]î‹r_”ûÂðx•»Vö;‹û÷Ózonê^4SõmLÅo;´¯ÛÐî±±T_N¹œr9…,™ŽŒÀŒÀŒ@‡iÓ¦;j¯è¹£INÑLuΰ˜s!÷£ý]j´66?I’.$]0ß Po0ÌÁDÝDÝÄÛÛ[cËå÷ÿî½±©[ѬþÏ»·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆ•)èy³çÍž7–dƒzþÒä ©Î,Þß%øžÿÕT¬`8K6¿Úüjó다I/’H”)’2$eHбTÿåÝ=²ñ4Rµ ¦fÈØðÎתÜ66WO“Ÿ&?5ËÏq§Þ. `˜U–«,WY["O­ÖõhÀrê„WÇ»Ízm \hlÆ&÷œÜsrOrõvm™¼eò–ÉÆŽÑ¹¨N7ý/“äWÇG«ûlmzÜØŒ¬=²öÈÚäêíúÃúë?¬£cJ‡í~÷Hò«ã3ïèè súǼÎØ€âŠ(nŽI .XQK£–F-ÕÏáV‹­[-²zgõÎêÍÌÀ `˜´[Ãn »5ÌX°{OëT/'*cãÑçbüc³—|!ùBò2öæÝ?sÿÌ}£3ߨ¡åŠ‹H¯±1éT§íþFS}|Éñ%Ç—±7ïIÀ“€'ÆŽËŠÊ¡åÜΑ^cãå³]7Ì06{ñâÄ0¯j¼á¢ççÃxÕêKm—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€×TeÝ~­÷Ä~‰Í˸¸wPšëÃ9¬Ò¯J¿*ý²]²]²]HÚ›42sdæÈLÃ#Òê–C§*ót3b‡Ö#·¹k&4?ç>ÎXÕ—Ù.³]f;sÉp½ z彿¹£ À«(€a¢Nذ;agl¡óÉè¾rÐP ƒ¼Œ/»ößâgnÙ§ìÙÜSrOÉ=%ÉÛ›q~Ùùeç—Kõƒj½å¦þ$6/cvJÌÒĺÏ*–·®i8“¾Ùð͆oÈÛ›qÕæªÍUc©¾u¼gÿ&'HlžÆþ±n¡5ÖØ¨¸Àp&—¥.K]–j.© .°ŸKÎ/9¿¤íƶÛn´È3Ê`PÃô<Õ=Õ=õMõMõM5\ÖÜ–âñ„ªàߎ‡³Û‡ûýålçlçlg¢WØÂO‡Ÿ?m8ÿ«G5/ï^Š”þÛñLrÔ ÿ0£ï˜¬Y;“O.t=wöÜÙs§áü/ÜÐô¡ËRúoÇKÛº„Kõóžôü#3Hp!  @ÞQÃ䜶?mÚÞpÓ~ºõœòï匊¹ò’à¿-ÏÕzR¥£áÜîKÛ—¶/ìž”…) S[ Ïò‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µë5Ÿ¦³"fEŒégƒ¸°Q wÀ09Q·£nGÝ6\¸”Jµ]ä}†b ?cÒ¨Nóü×έk¦k¦k¦.K—¥Ë"…aà¶Ûn{Í;Ú·…óüˆdægLÝõyÀùµ=k{Öö¬.P¨ $…aT÷QÝGuÍ;Ú›6Ë©¯#™ùoþÔãQ“‰FŸÙÐ+»Wv/SÎð›D CÀ0!*=¨ô ’Ñ%o!fvH<Å@þGÏõUËÚÌ4œáÔé‡S“Âõô§ï<}ÇècŠöŸbO& àÝíýj®`8ÃIÝ’º%u#‡ëÅÞ{_ì5–êôâý,‚ÈdþÇîÅ+Øo0œáÄøÄøÄxSNðÛB = `˜Õ V7XÝÀpiryé·”5î]Üf¶×kG¨ðÀè;Ûòþ(ÚVý׆x9¬²aõ¿%û~qna5–ëK c¢7»>©«ÿoý÷êÿžÂ+îméíxÛpKzZö´ìiI&óo~Öü¬ùY†3|Ú2ªMÛ¤º0Æ'%ûÎêd¸%­<[y¶ò$“ù·zÿêý«÷ÎðÁ ŸZøF’êÂ_Ø÷û6ø{Ã-ñ´ð´ð4ÑJ•ØQh 0L‚ß1¿c~Ç^ó‡Îý®Ê{%9º§¾_Þ—8óþ7ï\ÜÚÊs‹þ»Ê);ÜâνF½KžÈýïyõÏçÿq¦yútÉŒØBKÝß]Š.…dæGÄþˆý¯©Êžv‹.´ŠTÊø$6:4ÈrKÙ-Ö¼æó­—ä,ÉYB2ó#ºgtÏ螆sû ¸÷‰¦!¤ºðƺ›l3­Ë¿æó­Ëf•Í*kj9¡6w”ÁæŽ&Áp±êT«aå:ÞbúÙ]ZùÿÓwÕË4óS*|q×c¬C=ýwµßR'ÇîHÞÿ†WÿÅ//y\t(ôÇ_‡5vQe­áþ¦ŸI?“~†dlªÿ—„í±á¡ž¤ºðÆ^u\‚ª÷1Üß´éiÓÓ¦“Ìü°“íd;ù5åºkÌþˤºðÆa‡Q2×Åý[*„þZ³wåhýw-nt×ubÞ¿÷ç^A³]#ôßÛâ«ZCª|XØ{úãΆcê4Üß[·2neÌ‚Mu‹j…V~Hª {Oçé¹´3Üß+=®ô¸ÒƒdlªÝ'T¾Qá©.ì=]•ÑìZý‡†û›44ihÒPSË °VQ˜ `˜ÃåÂI{üuNí̱T¨=ßæ´U¯ÿ-z&‡ý÷ïÝr3ìSúï­óí«c…ýpѵãZx¸ï{M©p$éHÒ’Y°©þº«—cmgR]Ø©Þõ õÏÃýMœ8;q6É,ØT÷þÝålõ}¤º°S}àãvÃ|žî¯ððð©å„¸(  0eÀ0 †K„¿F„Þ¨ßÞK…JË[.Õ×ÁŸ?ýÈ·uÞ¿Wÿçõß[Å¿ü‹rv© f´í}ÂpĈ;G2 6ÕsŠ59í¼šTvª¶ëàä·Èpwß=~÷x’Y°©ÛÍ/°Î:R]Ø©NîÔ9´QÃý]gµÎj•©å„¸¨ÉOÌì `˜ÃeÁ-Éa­=–šc©PîLÙáwþ÷>Ú5VùïÈû÷êÿ¼þ{_ý{ oOdw(é7ÁoÄ/ ¡Ûê{‘êB¯Ê,;×kôy{3f÷m²Ðy©.ìTÿy¶ÛñÆ É´‡×À…&ÁpApçÚÖ=·›ûcE}ûé¾ÿâá¨Ö¶Ûìk£ÿÞZÛmìÊ?-ìRáÄýŽã`úÍXóQó5îýHua§úâ¬.#"ooÆB«¦»\ŽêÂNõµ?»?j|—¼AKÊÏ+?¯ü<^ `˜-½¸qeûy·è¿kûžð^žÁyÿ^ýçPê¿÷Õ¿‡wó`RÍ;€ypQN5ïï@ÞQÃ$.šïgwœ]wK5ýw-· ‰të™÷ï]V3ø…[]ý÷FýàT²ÚàÂ.Œ}ðBÿ…þ ýãßåë¿Ϊù~°y¥ÚØgÏè?£ÿŒþ$³`Sm¾Ÿl^©6öÀ?ÌýaîsM-'aaa†[ˤկÕ#VX="040404ïÕï‚w¼»à]^ `˜ÃeÁI{üuNí̱TzÌÓÃáåS[çïíïåý{»×q®eÿ¿Ï•&xÎp8QØ¥ÂÚq-<Ü÷îoÒ‘¤#IGHfÁ¦úë®^޵Iua§z׃ÖsõŽØ_{¾Íi«^V;,ë–í¨ÿï¶ÎßÛß;øó§ù¶~“û¸o}›t¯s†{º¾Ëú.ë»Éü;5ñÔÄS gxFzãÈzûIuaŒ‡¬>]à»ÒpO—TZRiI%2™){Sö¦ì5œáQs|Î;'Õ…1ž Œ’üëîéÔESM]dš9¡6”¾ZE “ð8óqæãLÃEF¯äªcmμ­O~µ`(ì¿çÍì?!ÄžLælÙ¯Öá*†3œÔ-©[R7rX°^ì}±÷Å^c©N/ÞÏ"8€Læì^ܹ‚ýÃNŒOŒOŒ7å„P¿-”¾Ð£†É‰ºu;ê¶á¥Tªí"ï3Tù“Fušç¿Þpn]3]3]3uYº,] , · Ü6p›áÌoÛ^Ìó#’™Ÿ1uv×ç{ çÖö¬íYÛ³º@] .†QÝGuÕÝpæW7m–S_G2ó3Þü©Ç£&þ:T¯ì^Ù½L9Ào¥/ QÃ䜶?mÚÞp±Ò~ºõœòï匊¹òzà?¾Kò\­'U:Îí¾´}iûÒÈ^áIY˜²0e¡ÑO¨õ‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µËpVWĬˆYcúÙ .l”¾È0LÏSÝSÝSßTßTßÔ×¼c2",Åã õÀ¿g·÷³4ú~2çlçlg¢WØÂO‡Ÿ?ýšwLŽj^Þ½)ý·ã™ä¨þaF¯];³vfmRWØzîì¹³çNÃù_¸¡éC—¤ôߎ—¶u 7–êç=ÿèùGf àB@é €¼£†‰:awÂÍ'£ûÊAC© ò2¾ìÚSˆŸu¸eŸ²# grOÉ=%÷”$ooÆùeç—_f,Õªõ–›ú“ؼŒÙ)1KCë>«XÞº¦áLnøfÃ7¾!ooÆU›«6WmŒ¥úÖñžý›œ ±yûǺ…Ö Xc? âÙ\–º,uYª¹¤‚¸À~jPúà?¡†I‹5>j¼áâæçÃxÕêKa—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€Ã#Òí×zOìؼŒ‹{¥¹N1œÃ*ýªô«Ò/Û%Û%Û…¤½I#3GfŽÌ4<"­n9tª2O7#¶qh=r›û¸fBósî㌾£½]f»Ìvæ’ à{´4jiÔRJ_ü[À0i·†Ývk˜±åÎÝ{Z§z9Q>ïã'›½ä É’/±7ïþ™ûgîŸ1v\6vh¹¢Á"ÒklL:Õi»¿ÑT_r|Éñ%dìÍ{ð$àI€±ã²¢rh9·s¤×Øxùl×Í3ŒÍ^ü€øñÌ+À%åJÊ•”+”¾ø·(€aVY®²\eôókS«u=°œ áÕñn³^[›±É='÷œÜ“\½][&o™¼e²±ct.ªÓMÿË$ùÕñÑê>[›76c#k¬=’Oü}Ëþ°þÃúkcÇè˜Òa»ß=’üêøÌ;::è\ù§eÿ*ëd8cŠ(> ¸9&¸`½ú>`J_ä0ÌÁDÝDÝÄÛÛ[cÕÂý¿{olêFð|[ô“àzuã+·~Í\9¥;¥;¥¿L{™ö2X™‚ž7{ÞìyÓXªÿÔó—&OHufñþ.Á÷ü¿¨¶ bÃY²ùÕæW›__$½Hz‘D¢LÁ”!)CRŒ¥ú/ïî‘§‘ê¬15CƆwv¸Vå¶±¹zšü4ùi²Y^Ù(€€·ŠfãÑ™Gg}pn­ 6¥ËßN›Ó76( hÖ ÇûW þ3Tª9¨ò@c³t£Ä7J%Óñìëg_?ûºÜå¾(÷…áñ*w­ìw÷ï§õÞÜÔ½ˆ–d߯T ù¶Cûº íKõå”Ë)—SÈ’éÈÌÌt˜æ0ÍašÑ_nXÑsG“œ¢™êœa1çBîGû»&Ôhml~’.$]H2ãGôSo0ÌÌ…Ô ©R-š;|lÓØêƒz'7mQ„ÞõÛ+úlpÅÐКM*G›™Ã‡-³øn¢®Ú]µ»jgìØé{{P¯âÎEè¾ë—|¬ý :×íö›ñGñGñGòcšn-¹µäÖ‹\]»ÕýIãûE'Õ/³ûß éÞç¡k«ï›“;}4j®¿…¶S¶©ï° àÐ65ƒ*G›‡%÷–Ü[rOÇx»(€aÆ„D!QH̽ZØ×¡M²—ª½:!q{ûY~þ¹ïûºäuÉë’ɉyI¸‘p#áFîGvë½°—´—êSk£Ï}ßã>Žû8îcrb^N¶=ÙödÛ¸^½ß"Úý‚öR}Þ¾óO‚sß÷¹‹æ.š»HKGœx»(€aö† 9’ûòúгžÞ‹Ÿ=ÞüŽ?>tgÿ“!­'}åÃéê„í·wÞÞ™l˜¯ã‘Ç#Gæ~”cnÖ¯U³zÚ}ûù™oª³Å, I˜íØdœóWÿP~·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°i3®~ýcíC+.þ2(ÝuÆ?üBÃ{q½cM ¼]ÀЈó‡Ï>Ø"vwi½ßËÚ¼ê„?·[ç[>/{—Ø)±Sb'ò  W¯8^qÌËqßâVÞc¤y¥úÈ®öý¾®4»|'Ëu¹ïÒ\i®4'Úp=ýzúõôJ«+­®´:÷ã¾ViæžhfïbeÓ0Þq¨m-«9¹ïÝžÕ{VïY­Õ£L ¼]ÀД‡óÎ{8¯ÕýV÷[ÝÏ}ñ½žCÅñÖ1Û]õõÒ•ˆý$´´  Y±1¡!'½;.k82ðƒêa•ªå¾/n£ÝF»¾¹üæò›ËÉ€ö<éð¤Ã“Qw£îFÝÍ= öáÖß–{&mû§·.§rÌŽ“{ îÙ?;uöŸÔªŒÃ‡Uúæ¾/ÕKV/Y½äÕØ«±WcÉ€ö<_ú|éó¥Ñ£FÌ= Ö®–Qe¿ÜW±ìµ#ûý˜ðŸM-Õºk4éÓÓuÖÛ-Ê}_Êõ+ׯ\¿”])»RviûøRo0´¨¡®¡®aÜÞ¸½q{óòîIë-[”ýíbóùî]s&Ǥ†<~[EÂÖ„°5gëDÛ~o•§w3Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»YäÙ/UC‡Ö·ÈcòÖÞ¼ëEë^ÅÜÕÊYnåe›ìòc—»dîËÜ—¹Ã^lY°eÁ–yOõà&®{3–õÿ(8ém¥zÿˈaÞÕÞ«m›‘—mY~dù‘å_´ÑþEû¢pL)€€·‹wýôõÓ×OG¤D¤D¤ä½`yY³fåÆë|Z|ã~ýúW=›”*Øòàî罤À¸-»Â‚<æGNuöM¿ÞÑ!|‰gLÔ,'‹j_æ}Û\6¹lrÙ”´;ᾨÖ{óƒ›~äÒ{³]«u~BŸˆLï¡êœÈÛ>Ë¥ mÏz§oÿ*¼¹§çRßà®Ï†wð_;ºÑ/öVìj‘»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À€îö¾Ûûnï[â¸Äq‰cÍ5kÔ¬ñæ++{+{+ûY+g­œµòºëu×ë®äǽÐ{¡÷BWÄ­ˆ[ç´Ôi©ÓÒ·UMóŸæ?ÍÿªËU—«.äÇéô@ZýxõãÕÝŸ»?wþ¶R=aë„­¶¦¾Ÿú~êûCÀÀÛE ¼Æý÷[Üo±¿Ïþ>ûû =<ºv\í¸Úqù¯ ì¦ÛM·›>øÒàKƒ/íl¸³áΆ·'Ýžt{sŽÂöðÇ>üPì&v»}ñmÄ·õš×k^¯yþS]it¥Ñ•FöÞgï}öÞ¶RÛJm+uk­ ·&0ç(l¶>Úúh«2Tª ý~Ì÷c¾ãö—Û_nå?ÕúUèW¡_Œ]Œ]ŒÝ¦ã›Žo:~cðÁ73çL0Pž'UÓÔ45M}¬>V«ÔGê#õú@} ÞWï«÷Õ»ê]õ®zG½£ÞQÿVÿVÿVo©·Ô[ê õ†zC½®^W¯«©©©WÕ«êUõŠzE½¢¦ª©jªzI½¤^RSÔ5E½¨^T/ªçÕóêy5YMV“Õ$5IMRϪgÕ³êiõ´zZ=¥žRO©'Ôê õ¸z\=®UªGÕ#êõˆzX=¬V©‡ÔCj‚š &¨Ôê5^WãUEUTE•UY•UQUQTAÔýê~u¿ºOݧîS÷¨{Ô=ênu·º[Ý©îTwª;Ôêu›ºMݦnU·ª[Õ-êu‹ºIݤnRWWW7¨Ô êzu½º^]«®UתkÔ5êuµºZ]­®RW©«Ô_Õ_Õ_Õ_Ô_Ô_Ô85NS—«ËÕåê2u™ºL]¢.Q—¨‹ÕÅêbu‘ºH]¤.Tª Õùê|u¾:O§ÎSç¨sÔ9êlu¶:[ýIýIýI©ÎTgªÓÕéêtuš:M¦NQ§¨SÔÉêdu²:I¤NR'¨Ô êxu¼:^ýAýAýA§ŽSÇ©cÔ1êõ{õ{õ{u”:J¥~§~§~§ŽTGª#Õêu„:\®W¿V¿V¿V‡©ÃÔaêPu¨:TýBýBýB¢Q‡¨ƒÕÁê`u:H¤~¦~¦~¦P¨ÔX5VUû«ýÕþj?µŸÚOí«öUûª}Ô>jµ—ÚKí¥öT{ª=Õîjwµ»ÚMí¦vS»¨]Ô.jgµ³ÚYí¤vR;©ÕŽjGµƒÚAí ~ª~ª~ª¶SÛ©íÔ¶j[µ­¡F¨jkµµÚZ WÃÕpµ•ÚJm¥¶T[ª-Õæjsµ¹ÚLm¦6SCÔ5D VƒÕ`µ©ÚTmªªj ÚDm¢6QÔ5@m¤6R© Õ†jCÕOõSýTÕGõQ½UoÕ[õT=UOÕCõP=TwÕ]uWë«õÕúª«êªºª.ª‹ê¢ÖSë©õT'ÕIuRë¨uÔ:ª£ê¨:ªµÕÚjmµ–ZK­¥ÖTkª5Õêjuµºj¯Ú«öªj§Ú©UÕªjUµ²ZY­¬VR+©•T[ÕVµUmTÕFµV­UkÕJµR­Ôrj9µœj©Zª–ª…j¡Z¨eÔ2jµ”ZJ-¥~¢~¢~¢–TKª%ÕÔÔÔÕÕÕj µ„ú¾ú¾ú¾ú®ú®ú®Z\-®W‹©ÅÔbŠNÑ):%[ÉV²•,%KÉR2•L%SÉP2” %]IWÒ•çÊså¹òTyª-Ÿ’Oɧäò ù„|\>.—ÊGå£òùˆ|D>,–ˇäCò!ù |P>(Èô/ ô—Y’%Y’EY”Eùùùy¿¼_Þ/ï•÷Ê{å=òy¼KÞ%ï’wÊ;åòvy»¼]Þ&o“·É[ä-òy³¼YÞ,ÿ.ÿ.ÿ.o”7Êåõòzy½¼N^'¯“×Èkä5òoòoòoò*y•¼J^)¯”WʿȿȿÈ+äò 9NŽ“ãäeò2y™¼T^*/•Ë‹åÅòÏòÏòÏòBy¡¼P^ /Èóäyò•>•>•ÚIí¤vR[©­ÔVŠ"¤©µÔZj-…KáR¸ÔJj%µ’ZJ-¥–Rs©¹Ô\j&5“šI!Rˆ"KÁR°ÔTj*5•¥@)Pj,5–KR€ ùKþ’¿ÔPj(5”|%_ÉWò‘|$ÉKò’¼$OÉSò”H ¤’»ä.¹Kn’›ä&¹J®’«ä,9KÎR=©žTOª+Õ•êJu¤:R©¶T[ª-9H’ƒTSª)Õ”jH5¤’½d/ÙKÕ¤jR5©ªTUª*U‘ªHU¤JR%©’TQª(U”l$ÉFª U*HV’•d%•—ÊKå%KÉR²”ÊJe¥²R©ŒTF*-•–JKŸHŸHŸH%¥’RIé#é#é#éCéCéC©„TB*!½/½/½/½+½+½+—ŠKÅ¥bR1©˜¨u¢N̳Ål1K̳ÄL1SÌ3Ä 1CLÓÅtñ™øL|&>ŸŠOÅ41ML‹ÅÇâCñ¡øP| >ˆ÷Ä{â=ñ®xW¼+Þo‹·Å¿Å¿Å¿Å›âMñ¦xC¼!Þ¯‰×Äkâ_â_â_âŸâŸâŸâñŠxE¼,^/‹—ÄKâ%ñ¢xQ¼(^/ˆÄd1YLωçÄsâYñ¬xV<#žψ§ÄSâ)ñ¤xR<)‹ÇÅcâ1ñ˜xD<"ÅD1Q<$‰ b‚˜ ˆÄx1^Œ×¿ü×ÿØõQq¿¸_Ü/î÷‰ûÄ=âq¸[Ü-îwŠ;Åâvq»¸]Ü&n·‰[Ä-âq³¸YÜ,þ.þ.þ.n7ŠÅõâzq½¸N\'®׈kÄ5âoâoâoâ*q•¸J\)®WŠ¿ˆ¿ˆ¿ˆ+Äâ q¹¸\\..—‰ËÄ%âq‰¸X\,.‰‹ÄEâBq¡¸Pœ/Îç‹óÄyâB/¡—ÐKè)ôz Ý…îBw¡›ÐMè&tº]„ÎBg¡³%D QBG¡£ÐQh/´Ú Ÿ Ÿ Ÿ ‘B¤)´Ú m…6B¡.„ áB˜&„ -…–BK¡…ÐBh!4š Í„P!T‚…`!X‚„ !P…&B¡‰ B#¡‘ÐHh(4 ~‚Ÿà'ø>‚à-x Þ‚§à)x „BÁ]pÜ7ÁMp\WÁUpœg¡žPO¨'Ôê u…:B¡ŽP[¨-ÔÁA¨)Ôj 5„B Á^°ì…jB5¡šPU¨*TªU„*B%¡’PI°l[ÁF°lkÁZ°¬+ÁJ('”Ê –‚¥`)Xü?öî;,Š«}øxbšÆˆØÅ†]QAEPš XE;*  ÆnÄKb‰Ý‰Ý½ce•ˆ;"*Š »XAØ÷óüÁï]f]Ù]Ø]¾Ÿ½®¹r=ÌΜ¹Ïì9çž9'Ò4Ò4²tdéÈÒ‘¥"KE–Šü&ò›Èo"¿Žü:òëÈ‘%"KD~ùUäW‘_F~ùeä瑟G~Y,²Xd±ÈO#?üTRH I!åH9RŽ”%eIYÒ{é½ô^z'½“ÞIo¥·Ò[)]J—Ò¥7ÒéôZz-½–R¥T)Uz)½”^J/¤Ò )EJ‘R¤§ÒSé©ôDz"=‘I¤GÒCé¡ôPº/Ý—îKÉR²”,Ý•îJw¥;ÒéŽtKº%Ý’’¤$)Iº!ÝnH‰R¢”(]“®Iפ«ÒUéªtEº"]‘.K—¥ËRœ'ÅI¥‹ÒEé‚tAº “ÎI礳ÒYé¬ôŸôŸôŸ+ÅJ±Ò)é”tJŠ‘b¤é_é_é_)ZŠ–¢¥ãÒqé¸%EIQÒQé¨tT"¤)B:,–K‡¤CÒ!é€t@: í—öKû¥}Ò>iŸ´WÚ+í•vK»¥ÝÒ.i—´KÚ!ívHÛ¥íÒvi«´UÚ*m–6K›¥MÒ&i“´QÚ(m”6H¤ Ò_Ò_Ò_ÒŸÒŸÒŸÒzi½´^Z'­“ÖIk¤5Òiµ´ZZ-­”VJ+¥Ò i…&…IaÒoÒoÒoÒ2i™´LZ*-•–JK¤%Òi‘´HZ$-”J ¥ùÒ|i¾4Oš'Í“æJs¥¹ÒiŽ4Gš%Í’fI?K?K?K3¥™ÒLiº4]š.M“¦IÓ¤©ÒTiª4Eš"M‘&I“¤IÒDi¢4Qš M&H?H?H?Hã¤qÒ8i¬4V+–FK£¥QÒ(i”4B!†KÃ¥áÒ0i˜4L ‘B¤)X –‚¥!Òiˆ(J’¿ä/ùKƒ¥ÁÒ`i 4P(ùI~’ŸÔ_ê/õ—úIý¤~R©ÔGê%õ’zI¾’¯ä+õzH=¤îRw©»ô­ô­ô­ä#ùH>’·ä-yK]¥®RWÉKò’¼¤ÎRg©³ÔIê$u’:H¤R{©½Ô^r—Ü%wÉMr“ܤ¶R[©­ä*¹J®’‹ä"¹HÎ’³ä,9IN’“ä(9JŽ’½d/ÙKv’d'µS  €IDAT”ZJ-%ÉF²‘ZH-¤Rs©¹Ô\j&5“šIV’•d%YJ–’¥ÔXj,5–I¤FRC©¡ÔPj 5Hõ¤zR=©ŽTGª#Õ–jKµ¥šRM©¦d.™KæRu©ºT]ª&U“ªIU¤*RÉL2“̤JR%©’TQª(U”ÊKå¥òRY©¬TV*#•‘ÊH¥¥ÒRiÉD2‘L¤o¤o¤o¤’RI©¤TB*!•ŠKÅ¥âÒ—Ò—Ò—ÒÒÒÒgÒgÒgR1©˜TLúDúDú$"'"'"'";";";â}Äûˆ÷™™™o#ÞF¼ÈˆÈˆÈˆxñ&âMDZDZDZDjDjDjÄ«ˆW¯"^D¼ˆx‘‘‘ñ,âYijˆ'O"žD<Žxñ8âaÄȇ"D<ˆHŽHŽHޏq/â^Ĉ;w"nGÜŽ¸‘‘‘q#âFĈĈĈĈk×"®E\¸q5âJÄ•ˆ+ñññqqq—".E\Џq!âBÄùˆóç#ÎFœ8ñ_ÄÿEÄFÄFÄFœŠ8q*"&"&"&â߈#þˆŽˆŽˆÃöb¸N4ÛIè €.èC>”0h `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `ÀŒ `À@-¦jÛY~gùå ÷hÅ1¨Ì\_}ÐsiÏ¥=—š”Àõë×síÎy8çáœÚwjß©}G”LÍÒ5K×,ýêî«»¯îîy= }ú(Tjþÿ¸â€ñ¡¾ÔwJÓÖ‡£­tÑbG%Zò¢UÏU`H“ùì¸ÊéoÑߢ¿Eávn˜ 0`Fذn¸(GQNõœê9Õ={zöôì™»dU\TqQEC/™ñëÆ¯¿Nî& …Ééa§‡6nǸãv¸ïqßã¾§q¯Æ½÷ª¸±âÆŠ-&XL°˜ÐöVÛ[moz:ê騧'bNÄœˆWŠû @}@}Gáö£õçØØ,°Y`“ûØ:wèÜ¡súÈŒ `À ŸW9•çTžSyNZxZxZxÁgúòôåéËÍBÍBÍBIÀ†hδ9ÓæLË]&uOÔ=Q÷Ä› o6¼Ù`¸ç•Ý$»Iv“zûêí«·OîQiQiQi6ÇmŽÛÏ_¬6­Þ´zÓêÜñê;@}§¾£pûÑúsl¢Ïž{á—A¿ úe×€¡#Lä³ãªÚvëíÖÛ­ þ8w¥ïJß•þ±GËõÕ$€ KÂÜ„¹ sËG—.»L–¯Y¾fùC/“£åŽ–;Z®pïâž‘%F–YB»qâââ/Á¹óÔw€úN}GAö£õíý5öרÜG(Zø×†^zm(W€á"Lä³ãªZßö}Û÷m_ð]ÜÏ>øŒ°!:4üÐðCÃÅYÕMÓê+®ùþÅ'÷0bºT& …IÇqÇu—»TÅä„o'¼ðv‚¡Ÿ¢ïLß™¾3 ëŽ!††ƒfÍšÁã õúPß©ïÆÔÖ·#̘1;cvƒå –7Xžû8s/òÂu`ˆH“ù츪V)¬RX¥°×ѯ£_Gdǵj諾«ö& ®¸îlغa놭ʥº¶îÚºkëz o°eÀ–…?Êë±)sôuôuôÝ4uÓÔMSo™Þ2½e*Rïâ¿ÿYðςطo?^õ~Ö[Xoa=¢Eõ ¾SßQð½ý<ΕW\9PùhEÔq"À$€@>;®¹ÕzUëU­WÊÿ»j)˜#Ü{j墳§”AyM#ÒD,å“?ï‚ß¿ nÔ(¨QPîò¬aYò†¥á¾ûûÞó½ç{ÏeG–Yv¤\\¹¸rq…?„=«R%¤JˆÜ·o5¼ÕðVêLð(þMð˜à1Ácäö&šy8çᜇsˆpÔwê;¨ïÔwn¯D?SZ¹ Ö´XÓbM ®&ÃB˜0ÈgÇ5·¨Ï£>ú\ù¯¸±âÆŠ_Ý}u÷Õ]Ý›xïPùie!÷*­¤‰X®¸&µ¬á솳ÎV.Ï1'bNÄègÙžq9ãrÆÅ¹±scçÆÚZ]OÇù(ôQè£Ð2©eRˤ*£Y¨Y¨Yè½ïý{ïßüÃ{wîݹ'wFâ{‡<yB´ÃpQߩSß©ïúß+Ñ磕ë×ç~œ‚k ÀP& òÙqÍM´ûÐîrß²ªÛªn«ºQG`¸¨ïÔwPß©ïÔwýï•èóÑŠV}ƒå –7XÎzÀ  `ÀôÚ©Iyäþý…bŠ](&¦{u©æRÍ¥ZÝuOÔ=Q)¬RX¥°f&ÍLš™t­Úµjת^ýóêŸWßlx³áÍuŽD<·¶0laØB/{/{/ûfŠfŠf ±Šxn·q¯Æ½÷Þ®n»ºíê¶êï_"ñvìþ±ûÇî9;æì˜³î{Ü÷¸ï±t´t´tï_VwªîTÝI”@?»~výìÄ4ž¯£_G¿ŽÖŸ+¨º’¿Õ%ÅóÔ ë-¬·°žgOÏžž=›VoZ½iuâm6Qb“¾›ôݤï®÷½Þ÷zßÂ|ý¼¦ê —ŒÌ™92SnZ3Ýuwvì Ø¥ü½ß7ø¾Á÷ Ô?~m¹˜|1ùb²¸cø}í÷µß׎¾Ž¾Ž¾"U&îÂ+„W)jq?ù.껨ï¢&»OvŸì.ÞZ©kÝÕDÕõñîå»—ï^þ)⧈Ÿ":v ì˜;Ź´»ÐîB» ¦O˜>aúÙfg›m¦ÏC-ú9ìò¢ô‹Ò/J‹‡$D´´vhíÐÚ¡Þ¾zûêíq"†`Ä;.~ïýÞû½ßr·cnÇÜŽK  `À ¬¡¬ÜÐÃߪW¾‘“û©FåoIÇ¥×—^_z] Áìþkß©}§öÝ5Ž·[o·Þnm1Áb‚Å„üuqkXÖ°¬a)þûþ?÷ÿ¹ÿOÁ_ÁÜÄäT3ÏÌ<3óŒH,å.CõKòå«—¯^¾«×”ù´Ì§e>ÕÖ@€®‡ ôùšªsîQiQiQiÊÿoùèòÑå£ÅuÑnŒ½ ~ü.X¤Ã•¿7²vdíÈÚ:î1Q˜(LvÔÙQgG×ç®Ï]Ÿkk*÷ÕâLuwíñAàúÀõë妪ӇuÔ´{ÖO”óÔúSëO­Ÿ¿ß—Ü5Kü·î&Z?Wë\­sµäŽ!~Sü¦øMú< tzØéa§‡y—ü¸OAÆÏóÏk<¯!Wãj–®YºfiqŸÑ—™(L&æ5Ìk˜×›(R­P"ê;õÔwê;õ]ÿǵôÿ˜ÅÍr5åÂë ¯/¼æÊÐ$€I0°†rîær¢W¢W¢—x›S“…x/÷žÅ›¦ÞYÞYÞYš§pr' 5/‘Bï1k÷y窽«ö®Ú[»õ»ÖK/y¼ä±x³Pî¯Ä‡ª¿ñ|ÙóeÏ—Õ$š[îèR}Fš”›¡\SuÎ]õDжnغa«vïæ˜`~“?Rë“ZŸä~ƒV×N¤Ü|gúÎôiªcâ-ðü­:ç.Þ}·9nsÜæ¸æG›;©©o¿ …{T"™ZCý õ7h7BÄŒº8»Ñ7Fß}Cù­o[ß¶¾]ÔZ º(áÜ+(+sh÷U?6}0ú`ôAZ¡ ÇA}¨ïÔwè"ê åÈÅ´»:CóË×,_³|ÍÇ6úÅ[•¹ßÿ“#&¶kIÞN½z;U¼Í,&Ê>ãrÆåŒ‹˜`9wBZî­eq¾º¸‚âÿ ñññW?±!—“©Š5˜UïA¬À´Íu›ë6W±¾©˜VWL•,Ö‘’Kÿ·_Ö~YûeÚ20Äkªþ¹‹z!7]­¶V-ÍìÙ;³·ÜDgRs©¹Ô\wooË­v¬< ¼ˆ‰™3/f^î+ø¬õ³ÖÏZ‹{”ˆIñ¸:“–‹¯­k—;1¯{ûí;´ïЃ°aÂ2fgÌΘ}³éͦ7›®«°®Âº C†8 QšbcàSMLn¯º† "v¥ïJß•.Ö/÷¨äýÉû“÷ï~°ûÁîÝRº¥tKQ*xMŽ\Ä­Ü·ˆÕîIkNîkA¬÷¬ÝïýgÁ? þY ÷¢5Å1èqPßê;õºˆ:C9ò•W\9P.¢bûÅö‹íÇõ ÏH“`ÀÝ3AL,’=ª÷¦z [ŽHç>¹ýÿ}øïÃV½·Ü“2©_‹¿ZüÕâ¯Tô+O„«zŸ"­þú£Ú½‚¢T•ÿ÷Ja•Â*…‰®ò¡á‡†.V—É‘6Sþ– Ó'LŸ0]õ;ˆ¹ßUçŒÄz®âxt±â©!^SõÏ]¤·ëí«·¯Þ>åùçÕ?¯þyUóûÃáþ‡ûî¯ÎäÏÚî‰[Õ”ˆI¡EºT»oë*?£­}æ~˜F¼ ÎžE9«³ç.º4êÒ¨ ‡<ô'Ü; w@ï¹#)W.®\ÜþxôÇ#õ÷)&TÏ\WÖkl¯±½Æjr¾“Ý'»Ov—Ûÿ…bŠ](V4[ Úý./{/{/{¹ïÊ=¤¶¾Qî1ÿ=ü‘k Ú¢ ÇA}¨ïÔwh7ê åÈÏ6;Ûìl3¹ˆú±Ò•~¬DDÐg$€I0àî™ ÖŽU¿Ñ9ðÙÀgŸ©³ç•GTQY»Ý¼ÿM•£6ñfªÜʸbõâ‹É“/&ç³Ùm¢0Q˜¨.‡éO¦?™þD»)CåwÅÜ·Lo™ÞúˆN‘XµT¤¬t1õ±Hk7l¸×ôcÏ]î™÷Üï/jr{ƒ|˜Ç0aºY;²¶Ü~ĺâ­tMÎqéõ¥×—^Ïßtèù»—j^_&ž8xâ`Õû?ÒõH×#]o€/Ãp‚Hýæï¨DXõþÅðbþŽ¿M©6¥Ú”’{XGLã_4[ Úý.§ŽN:Ê}WRͤšI5µûâ=~¹ot©æRÍ¥­PÐã ¾Ôwê;tu†räbÎ-¹±‹vÚ]hw0}F˜0îž5XÞ`yƒåâ;õ÷™{bX9bƧŸv~Úùc›³bºTÕï+«¿·Ÿ"~Šø)Bnob VÍÜbŠQ¹oÉ=Å®v¯ ÐLÑLÑLñ(ôQè£ÐýÕ '1™ªæq8Àl€Ù3m%€ ÷š~ì¹ç~ª]ù}G1•zþÎN¤j–®YºfiåýG´‰hÑFù¨´5ܶ0laØBuÞn×ä ^zm赡ªßÕnMoèjrÌâÍoÕë"ç®MÆ4À'Çï½ß{¿÷rÇ &œ×ü[Äçrß2øÜàsƒÏ}ìY‹U®å¯ñøËã/¿Šr D»ß%~å¾KÌ: Ýo|ÒçIŸ'}ä¾Q<’E+ô8¨ïõú]DaîD¯òB?bñ5®2ýD˜0îž-¬·°ÞÂzÛ€OÚªÞóŒÄ‰3ó×4ï¤jÞ±).¹It›¿hþ¢ù ‘nÑViïúb×»¾;æKñ—â/Åk÷ ¹':VÏâYT±ÆªÜžÏ—=_ö|YÍ»XW'^xu¢æ `C¿¦{î9ÕsªçT¯¿¡þ†ú”ÿýúŒõë3òw^¹S¼Ê“?˽•¨­ážq;Æí·#÷{¹?bR\-tìÕx“[»5Q¬'­ù‘+O]®üŒ˜®¼pAtýíâÕS4_>pùÀåšXIZu™ìÚÛGË-w´œÜ>s?|S4[ Úý.¹ßAÌ( Ýo|u÷ÕÝWwå¾Ñb‚Å‹ ´BAƒúPß©ïÐEÔÖñç^=Z™˜ñˆ« @?‘& À€»g¹ßåUŸ"q¨zÏûWí_µUþšæªß¼TŸªW,ž3mδ9Ó´ÛyG^%¤JH•¹‰aµ›v“‹æïhUO¬Úê·V¿µúM»Ñ¨z /uJÆÐ¯iþÎ}läØÈ±‘y¬AUÒ»¤wÉüïðVÃ[ o¥þäÏ?Ü£9ñ$uÁ$€µû6€êÄ¿¾%|Kø–ÂýÑõ·ïIØ“°'AîÛ}}}µûªß½¿kêïíר_cU=U8 `m‘»K ¢Ý¢ÝoTÝëÐÓ =ê;@}§¾CQgXÇ¿|Íò5Ë×ÈÅUîù±¸Öô `À ¸{vçÞ{wîébÏb%ÚÂíX.þjñW‹¿’ÛCl¿Ø~±ýtÑÈî8®ã¸Žã”¿1÷D¦Ú*‡Ykg­µ6g‘{¢]í¾Ã-GõÔÍê|—¡_Óü{ôÁèƒÑ•ÿ½˜ZVL´®þ¹d9e9e9ÕzUëU­WêOþ\ðÃ=škåLxZñiŧ×n9Œ9;æì˜³rßøóöŸ·ÿ¼]×%_¸WüÇJ?Vú±’ܷ羟hësß÷4ÿÆ‘™#3GfÊím«÷Vï­Þ$€µ¥Lj™Ô2©²ße¢0Q˜h÷ŃÚšd ¾Sßê;õêGaÿ¦©›¦nš*W¹øæZÐ7$€I0àî™èÞèÛžµÕ±ì5¶×Ø^cåöð±“yª¯¿E‹þÊßè¾Ç}ûí–Cî·x?vÏ}Û÷mß·½Üžs¿{§­’Ù•¾+}Wº&WÖЯiþÎ]õû kë®­»¶®úW*²vdíÈÚÊûëËMþ\ðÃ=ù#Ž»õvëíÖª§7×n8÷TáÚ:—«7®Þ¸Zî»ïî¾»ûnãNwîйCçrß¾÷ÔÞS{Oiù¥rÊwŸ$Ÿ$Ÿ$õ¿ÑËÞËÞË^noâa‹¢ÜÑîw™…š…š…Ê}—˜ËA»ß˜1;cvÆl¹o¬<§òœÊsh…‚õ ¾Sß¡‹¨3¬ã?ÜÿpÿÃýåâÊ;Ë;Ë;‹0ýD˜0€"Ú=ÓuÇOóý; qâ0ÄToˆãÑn9Üþôö§·?Í_ «.ŸD¯D¯D/íF£:+÷5ÕäÜs¯››[î$“:Ç0¢òˆÊ#*+ïgh÷¡Ý‡vןáeâÝe1»€Hž­¸ràÊ¢d<{zöôìi^ü†y õ¯ ¶®X¹\»ç{1ùbòÅd¹o“ÓŸ2Û½¶{m÷ä=*anÂÜ„¹Ú*s±*¹ÜÞÎÕ:Wë\-Z ÚR÷DÝuOÈ}—XÏO»ß(Öá–ûÆ:—ê\ªsécËêÄ å yRß©ïÔwê;õúnX±jè à3.g\θȕ€Íq›ã6ǽ ŸH“PD‡_õ?Ü(¨QP£ ýéØX5±jbÕD»åðòÕËW/_寄U—ÏóÏk<¯¡Ýh“kre ýšjrî'Wž\yr¥ò_‰‰ÑžôyÒçIÕ{Èn’Ý$»‰Ü{±¹'L.¬Z/ŽðÔ¤S“NMšyfæ™™g¾‹ú.ê»(Õ‰´‚S½]Ô—G¡Bɾñ ê‚áþ‚¨Cõ*ÈúØ2¯·¯Þ¾zûtñø-eM«7­ÞTvÂÆ*_ó*ŽçcË$„HQßA}§¾S߉UuJذZÅI5“j&Õ”+†³În8›ÑKú‰0 `EtøUÿÀUBª„T ÑŸŽXuUËå ÁºGU{Wí]µ·Üž3{göÎì­ÝhT=¡–:WÖЯ©&ç.&‚Cå¿]ÝvuÛÕmUï'*-*-*MùoÅ[³ª'Ö]­O O O +ÚŠi¨µuuÄm“ÖE}I_ž¾<}¹Ü7Vó¬æYÍÓpAÔQ)¬RX¥0ý¹G‰{¦ú{S=i¡.ÞY):-eªç‡ÐÅ;úªßwôuôuôýØ2 !BÔwPß©ïÔwbU6¬V±X¬ªp{v?$€I(¢Ã¯úŸ®^!¼B¸þtlÄñèO9—‹+W.® “+"ŨÉú5ÕüjŽ_7~ÝøuÊÛ)°S`§@Õû™92sd¦ò߆ø‡ø‡ø|4Š„´ê·<Õ!Òl­Z;´v\¸>pýŽ:;êì¨ófÛ o6nXìSîËG—.m¸¿ ê(ø°ê{ÔÇ–¹x;_nobJsZ ÚÒ-¥[J·¹ïŠú<êó¨Ïµûrë© ]uiÔ¥ÑÇ– H‘¢¾ƒúN}§¾«ê”°aµŠU÷2ÊÞ+{¯ì=F/è'À$€ÑáWýO«^1H¼]W”¯ XÁHnϺ˜^UìS“32ôkªùÕŒ™3/fžòߊTÓÃ9ç<œ£üWbje¹Ò;ÜÿpÿÃýÕ9mE£˜äYý÷¹Å{Ïý-ú[ô·Xz}éõ¥×¥æRs©ùÝËw/ß½¬ú &¬‹úò¬õ³ÖÏZË}£Ü d†;À§¬à§€N±J±J±’ûF1¥³ú{ÏòËíM|-m‘{8FذuÃÖ [µû½þûð߇å¾qläØÈ±‘†8@ Pß©ïõú®ÿQgXǯº—QÝ©ºSu'®2ýD˜0€"Ú=Óÿ°Íq›ã6ÇåöpçÞ{wîå+¨º|n8ßp¾á¬ÝsQ½ò:gdè×T WÓDa¢0±˜`1Áb‚òVŒ\1rÅH彿rüÊñ+Êÿ^Lþ¬þ›”š¿ø®Ë,o ;¹±Hfû}í÷µß×—\>pù€&1_0 `]L@wuâÕ‰W'Ê}£¨ †{ÿQ‡í^Û½¶{ ò%ö)÷âxÔߛ܄íB¢W¢W¢-mYÕmU·UÝä¾kFâŒÄ‰Úý^±N¹Ü7®¸ràÊ ƒõ ¾Sß¡‹¨3¬ã-¹¸jÔ(¨QW€~"L@ížéس§gOÏžr{8Ûìl³³ÍŠòì8®ã¸Žãäö¼ïоCûi÷\N98åàMÎÈЯ©¶®æ„é¦O˜®¼‡?uø©ÃOÊ{svÌÙ1g•ÿ}ð˜à1Ác òøU?S/R¿‡†~h¸þÜIÔÙÏ®ô]é»Òµ-Û­·[o·–ûFQ ÷þ£ŽÎ:wèÜ¡ ïQ{Oí=µ÷”Ü7ЉÖÕß›êvl¿Ø~±ýhh‹Üç‚wIï’Þ%µû½¹÷™Ç¤”¹Ž‡¶(èqPßê;õÚ:Ã:þÓÃN;=L.®ZýÖê·V¿q•è'À$€Ñî™þ'€§ØN±b[ ú‚O+…U «&·‡´ð´ð´pm];ÕS(k7¬ÝIÈ¥æRs©¹Ü·ˆ8ú(ôQ¨q'€Õ¹G%ÌM˜›0WóïŠ;w2î¤ê2ò8äqˆúûT½jݲ#ËŽ,;bÜ=?a Æ-”ûFqßÓüÛ‡vÚ}hw¹o‘[‹ ÇA}¨ïÔwh+ê ëøý5ö×X¹èZÝvuÛÕm‰.ú‰0 `E´{¦ÿ `aÐÍA7ÝÔuwñå'/?yù‰Ü„QâÍWý,çf̘©žŒHóï|nð¹Áç4Oú5ÕîÕkˆÊ%§ïÜ»sï톳În8[núYí&AÕÙC­Oj}Rë¹=\Š¿)^ó¨~ÒçIŸ'}÷jÜ«q¯‚Lw­ÚµjתšÄž˜ÂNõ{¨¾3}gúÎ4ô_õõ³ëg×ÏN×ïý«ž®Yƒ¶j¨0²ÄÈ#KÖ®ûÿÜÿçþ?rß(@¹ýéíOoš¿ýß½|÷òÝËf¡f¡f¡ÊûTŠIøÂ=ê;@}§¾CwQgXÇŸ»å¯ì¿.ÿuù¯ Ñ@?‘&  ˆvÏ %,·Zjn<úãÑòwœï=ß{¾÷ô²÷²÷²—Ûî7õ­œå¦Îm}ÆúŒõùÛ¿˜´Y¤$µ•6Ükªå«i¢0Q˜È¥9s'Æ4ŸüY[ÇïÔÑ©£SG¹=ä^%:×N¼“­ÎdãºH +®¸r`þŽ?÷*³r>våf}¾Ï«ãh¹£åŽ–S}$šL§¼þËõ_®ÿRõþ£Ò¢Ò¢Ò>ö¬E-«<§òœÊs”÷™».ÐÑ®QOG=õTî{»ïî¾»ûîüCî¿U66rläØHZž ÇA}¨ïÔwè:ê ëøåzÁ¢§ ƸÊô `ÀŠh÷ÌPÀÂÀgŸ |&··2©eRËüo­P‘TSgŸ/J¿(ý¢´ß×~_û}-·çV¿µú­ÕoYNYNYNúÜÁî¹´çÒžKå¾ELÁ*Ò$êïS¬1,—üÐüŒ ñšêâjNv`N¼™ñ±G%®‘ê)¦Å½Q“#÷ìéÙÓ³§Ü´Òo6¼Ùðf-ík·«þöï|ßàûâ{Õ{Ën’Ý$»‰êi!Å»Gç<œópoo€õ ¾Sß¡ë¨3”#­ýÜ‹Unÿ> `ÀŠh÷̰ÀÏk<¯ñ¼†:É›–·ü»åßbŸ++®¬¸²âuôëè×ÑÏZ?ký¬u̼˜y1óØ,°Y`c^ü†y ÕI óeÏ—=_V“2)˜¶˜2WòéÜ¡s‡ÎÄßû÷Þ¿÷þ}ü.ø]°H¤‰$\ßö}Û÷m¯ü·»vì’Û³H÷5ÕÅÕÌ=a”:Ì?0ÿÀüÂ:þë}¯÷½ÞWõ~r'ï£>ú<êóÛ©·So§Š÷)Åu“Eÿ¶í·m¿mk“Ý&»M¶êÕé=ñߪ‡ŠLó¥[J·”n)ûWí_µ•¨#o'¼ðvÂ-Ó[¦·LEÒaˆÃ‡!ª÷#ÎâfÓ›Mo6-È!ýIçžvO5Ÿ$Ÿ$Ÿ$1÷€˜0PDŽøï]é»Òw¥wiÔ¥Q—Fª÷#¦+×|­å¹£æŽš;Jî[Ä ´@tAõz‚scçÆÎw–ßY~gyñ‹&j¨X·~ÃÖ [7lµo?Þ~¼êýˆ•Ûhs‚õ ¾SßQ0Qg(G®zƵ_ý2è—A<^@Ÿ‘&  ˆvÏ +,\(v¡Ø…b¦:&ÒW›Gl±y„þ—sn¹§9Õ®öËÚ/k¿,cvÆìŒÙªÓ-Æ}Mur5M& “&štjÒIõþ«;Uwªî$ö…{üêLt¬‰*!UBª„ìúb×»¾È½&´&o¢«þ÷³ÖÎZ;k­.ÎEe±ýbûÅöÓE}o°¼ÁòËs?V¢­c¶¾m}Ûú¶ò7ö·èoÑß‚°îˆ÷¿u-?,þañ‹År ÛÔw€úN}GAF¡yîÖ~n6ÇmŽÛçÊÐ$€I(¢Ý3ÃM ¹ßF‰MÞÏ|nð¹ÁçÄ£ÚíV;÷˹§äU‡XáF¬M›»óœè•è•è%÷W"AbÜ×TwWól³³ÍÎ6S½1±½Ál¢0Q˜äN´çïzÕ¹TçRKbж<kL& ï,ï,ï,]'€1mu3“f&ÍLòwFbc1ñuápègXxùêå«—¯Ä‘ˆÕ£óWÚbýàiŧŸV\L¯‹³›‘8#qF¢ò·×ßPCý $€ †˜ücW Ïͪ‰U«&‡†~h8-L€úPß©ï(¬¨3€ƒ6Q˜(LĦÊÇ?óÌÌ33ÏðýG˜0¼ÜƒþþGýúë‰ÆºH-ˆÕa›)š)š)Ä·Ë×,_³|Mî•)µ|î^¾{ùîåÅ_-þjñWÇu×q\ã^{5îUqcÅ7ŠÎ¶û÷=î{ÄD¸rIÓS“NM:5Iõ4Ñ\Ó¢)-<-<-\”ùÀgŸ |ÖüEóÍ_ˆk$®—¸vâ:~ßàûß7Ã4bM/Õ×+÷¿q©æRÍ¥š˜r¼f隥k–Ñ;Ìc˜Ç0ñ6¹:ƒª r¿— V¿+Õ¾SûNí;"é(&îöøËã/¿Ä@î邉 õåžc@’á­†·ÞŠH0Äß5ÔwÔwp•‰G–•¼ûîî»»ïæš0$€I –ß¶ý¶í·mrÉñ†1rÊ CHøXrÁäžRT÷Åôùhß¿ ~,æ²R>òƒSN98…–?CA˜0À€‰ Å´´¹?­~kõ[«ß´û]ro¿Ñ‚!:ÆÇ“ÚͲ›e7Kýõ§úb†Òÿ­zåcvâ0Äaˆ˜rœk ÀP& 0`bå]¹´–X‘TóoIª™T3©f¹¸rqå┿¥j諾«öΘ1;c6W†2è@ù³+}Wú®tå(êÓ£O>=ˆ(@u_LŸ6w«>·½§öžÚ{ŠÖ>ÃB˜0À€Í^4{ÑìEri­þý-ú[hÒEÉrÊrÊrê–Ò-¥[ŠÜ·ì ذ‹kÃt Œ|2Q˜(L}}}sGQ…ð áÂ_”~QúEi ë‹éçqŠ–¼hÕç>ÚÖ­Z;ðî/CD˜0À€Ý½|÷òÝ˪“[#KŒ,1²ÄËO^~òò#~sS¬R¬R¬ú¶ïÛ¾o{¹=—ù´Ì§e>íÛ/¶‰4Ö  `h"êó¨Ï£>WŽ¥Ÿ·ÿ¼ýçíÄ ×ÓÏ㜵vÖÚYk•6*-*-*>CD˜0ÀàM±b;ÅVuŠË¼†y óâ¿#kGÖŽ¬}çÞ{wîeöÎìÙûQè£ÐG¡Ñ£Fœôݤï&}W³tÍÒ5K«ÞçØÈ±‘c#)â  `hnÐÍA7ÝÌKÕ<«yVó$®¹¾˜¾áóÏk<¯‘»%/øõ?ê”+Àp‘& 0xbý]ÓäRÍ¥šKµ×ѯ£_G“ê€!:†æÄ£3Ê5µþÔúSëS>€þ÷¿Dë=÷Ö°¬aYÃòqÈãÇ!ô.À$€F"w:VwÄzÀiáiáiát„`¸ƒ$€¡-ÿ,øgÁ? rGTå9•çTžCtúÜÿ)^³P³P³ÿóXçæ›GlA{€¡#L`´],KGKGKGÍ“¾Ž¾Ž¾Ž¾{ö$ìIP˜(L&t„`èƒ$€¡]A3‚fÍÈW?,þañ‹)ÐÓÏþ×øuã×_—ûØBüCüCü¹jŒ `À£•S=§zNuñK'Ö îØ)°S`ã^{5î%V¸)]>º|tý õ7Ôß`?Þ~¼ýøî»»ïî¾{Éã%—<¾˜|1ùb2I_ºiïT}(hî͆7Þl÷ÉÖ­Z;´»ÐîB» Ü9P”‰¶qî>Õ«»¯î¾º›»Åî]Ò»¤wÉÜ­z®CG˜0 ˆâmH0>$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€I0$€ÿçÄ¿jNÒ'¦>§ ésº>±þù¯>g és¶>ç és¾> és±>— éWHŸËþ‰/¤Ï•Bú$Òçj!}®Òçz!} és£>7 é“THŸ[…ô¹]àŸ;…ô¹[HŸ{…ôI.¤ÏýBú<(¤ÏÃBú<*¤ÏãBú<)¤ÏÓBú<+¤OJžÒçE!}^ÒçU!}R éóº>i…ôySHŸôBúdÒçm!}ÞÒ'³>ï ü“UHŸìBúäÒGQ8ŸèO éói!}ŠÒç3]}H€Ñ" FÂhÀ@Ña´ à§]Ÿv}ÚõD´Î>ÿÒ‡5‰Y˜Õˆõ5⢳qÑY¸è¬=|¹>EgíᢳêpÑYo¸è¬4ÌÃÆ·ºpa­1\tVf]aVf-aVfáÂZE¸è¬ÌÊÁ¬ÌjÁ¬Ì:Á…µN0+³6°Þ¯ ü4äiÈÓ£}  $€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AŒ `0$€ÀH#AЂ˜ô˜ô˜ôèúÑõ£ëÇøÆøÆøR&0t§gžuzVtÏèžÑ=cÆ4ŒiH™ÀÐiy¦å™–ѳ£gGÏ>ùî仓ï···(®ó7Ïß<3ú`ôÁèƒ'OŸ<}òtΓœ'9O(®Ë.w¸Ü!úqôãèÇ'Wœ\qrE¶i¶i¶)%£]â^!îâ"î'”Œ.\s¹ærÍå_³Íþ5;r2ädHæ ÌA™ƒ(-»¥¸¥¸%Úx¢½'Ú~ 苾¹è§S&@$€<¤tLé˜Ò1bpÄàˆÁ?üðC@ƒõ Ö7Xoª1óæ ÌŒ¸1âÆˆû÷;îw|<çñœÇs(sèÚ‹â/Š¿(~´ßÑ~GûMòžä=É»I‡&štÐ<ª«N­:µêÔaŸû|Øç{Kí-µ·ÔÃYg=¤S {¹çåž—{Ž9>æø˜§ý8íÇiÍî6»Ûì®æQ])°R`¥À ó ó óçvžÛyîþˆû#î Ì¡k©]S»¦vý÷Ÿÿù÷Ÿ™kg®¹Öv¤íHÛ‘šGu9·rnåÜü-ý-ý-·MÝ6uÛÔ{mïµ½×–2‡®¥ÕN«VûÔÉS'Oœ½uöÖÙ[í_Ú¿´iª%~V~V~V›«m®¶¹ÚmÅmÅí"]Ú¢^‹:.껨û𗳏‰û’¸G‰ûUÑ,çô:éuÒëüwþ¿óÿŸ÷ϼæýãìïìï쯭¨î[»oí¾µ7lÙ°eÖ¤ I’6å¨m0Ñm3ÑNÓ¼œE»Q´!E{R´-¹oC×DYôE?Zô©5jÑÇý}Ñ÷ã”9E `@ñøÈã#¬n¸ºáê†uëÔ­S·Ži«P«B­ µ–ü½äï%'7MnšÜ”ëM<óxæñÌãõ¬ÿc}ã5×4^cZHæ;ÍwšïtÇêŽÕ+® 4ñ<êyÔó¨¯6¾ÚøÊ:Ý:Ý:½°¢zÖžY{fíIú"鋤/¸.ÐÄ«¡¯†¾º­Ê¶*Ûª8X:X:XVTO/>½øôâ×ï‡_çº@iViViV»«í®¶»š«›«›«[aEõ¤Ö“ZOjàœàœàl¬¥-ꬨ¿…UÎâÞ%îcâžf|åœþ0ýaúÃðôðôðôöì;ØVióç=Î;n]ܺ¸uÆÕ¢}%ÚZ…U΢)Úœ¢ýɽš}aÑ/.¬¨cb|@Œp]@»”ï½ÑŸEý%ƒÂEEÏߊ¿ŸÙtfÓ™M^‘^‘^‘¦zÉÉÄÉÄÉä¸×q¯ã^9=szæôäÒAÖKÅKÅË‹S/N½8µ‡{÷îúÕÖ¬X?jH5¤Ùݳ»gwçÒAµ+•®TºR©Xÿ°þaúÕs-æZÌ=pèÀ¡‡²*dUȪÀUƒj×G_}}tàÞÀ½{õ3ªk®«¹®æº=æ{Ì÷˜gþžù{æï\5¨–´$iIÒ’ïW~¿òû•úÕ•æWš_iþ¶®Ûºnëú6émÒÛ$C,gQEÝõT?K[Ü߼Îp£úî軣ïŽßy|çñMõØÆN;mì$RÔ†X΢í$ÚQ¢M¥Ÿå,Ú¢¢]Ê=ª‰~®èóŠþ¯~Fµ7cb_îÖ¶„Õ ]æž[l"{g¶sâWŸÇv뢶u»Ü*cß8¯¶¶kìÝþhúæ‡-nÐúÏZÅ«ôÕ¤ÛyàÝwÞåÄåÄåÄq5!Ä·‰o߯ÍÇÍÇÍ'qÕhÙÍŠÅBª7_Q7xÙW?ˬŸ{º¶È”b½µò>1È'ÁnYTR·‡vŸ…ÏòÚn;zmŠ{»f=CµšØ ÓÕ¯öðª6šDõnÛݶ»m³ã³ã³ã¹š®[_·¾nÝÅ­‹[—|¾ YXeÿ Õ‡6[^çÌÒ=mÂ-—mÔ)¡Åa©©÷œVV'šûük7÷˜i·wv&ûz)lÿ^¿Æ=¹Ù¡Écí†7\à^¾Î¹j%5‰ê-µ·ÔÞR;kNÖœ,­Àÿ$]Iº’t¥çËž/{æs2çÚÃ+>,ßÒSÓÅu,'·)aÙx[l§á-B#–ywiUòÄ'>{ì¦këóÙϺ8Úžþ³£ÇOÍ«L}gßϼÃÑzMªÝÒ$ªÿ¼üçå?/g>Ï|žù\ŸËYÔ;Q59_q÷q÷ qß÷q?÷qŸ÷qÿÉß÷Šûž¸êTßkr¯É½&}úôÍßùÖ¨XÎk`²ÕÜÚ •qéÛäøÖ->mawäwù–Ÿ÷Yo7æØXs»ºþîòƒmÊ_K=ršûOuð´ØÕy`ýYÕwkr•W…­ [öîËw_¾ûRŸËY´‘D{I“óm6Ñ~m9Ñ®m<ÑÞm?ÑmBÑ>mÅü}¯h£Šö*¿DVôm5‰jÑ¿}mÑï}pÑ}sÑO}vÑ}yѯÏç\Uª8Tc \MÈÀÐOü´ÃÈ%_J¾”|É;Ñ;Ñ;ñ#†HÞ×­[Íe‹]Ç ÖÉÉã4lSJ¡öðÐÖöé÷£\×ï>йÍrŸy /šWøˆ¦yˆCˆCH¢i¢i¢)×·hz\÷qÝÇuû,í³´ÏRõ#Ç9³Öœ*[6Z´Ó<óÎÔþ¥\i7ª_Ô\«íøð^«mƒ|—46­9ú#’Ð;­vZíŒ_¿.~×·hJ©˜R1¥b@j@j@ªú‘ÓêZ;f¥þˆðèÚ,óÖ—ýj;Çi7ªS£ü'¶ëpðV—”–6ý'[ºÕ:õ‰µµ×Ö^{þÜùsçÏq}‹¦—›_n~¹yDÖˆ¬Y±aX5ËJÁkZ¸­kšvcU_GçöÚêôÆQn¥"|¼[¶ÌòïÜôû:•Õ?¶Š­*¶ªØêôÚÓkO¯åúM¯o¼¾ñúFèÎС;?b¦„fÃ*Dþ¾¨m²ÕÃëf}:·Þ¯Ý¨~çxßíèÑÝÆ·Š ù´ùºƒ>vàû„É “&úVÚ¢®‰z§þ¹ˆz-긨ïÚ-mq_÷(q¿RÿØÄýPÜõ§œÓw¦ïLß9³äÌ’3?âA™Z;+®/_ò× ®5-ãfôîÞº¦vËù}â$÷žÇÓ}vÚM±²Åßõ6~lTG˜G˜G˜ë[T‹v‘h#}ÄÛ·“-Ýjí1Ñ6Óni‹6¤hOж¥úÇ&Ú®¢ËoDÑ$ú°¢?«~äˆþ²è;‹~´v£Zô÷Eß_Œ¨lbœAŒ9p}@}$€¡ŸHÃ9*Žë¯?¼þ°ZšÅËv,üÏõË­ûæÌ Jr¥ÝÆ·úÛ=17Ù\¶0û±ÂiuŽ|¡ýBû…öYÛ³¶gmç²¹+Š+Š+›ûmî·¹ßG¼ÝRÃcLsÓ¬‰Afî +ª¼íÖòëÕ²*=Tç˜êóSŸŸúdÉ<’y„Ë^ìÛ¶û#¦w^mãÖ¦éáwk‡”p‹/¬¨Žxï=¶UmÇg5ÌÔzÆbù‰å'–Ûým÷·L{^$ :t(Hý¨^^Õ5ÓªWz‰€½n_VT»àãjgïv«Î᪠µ9þ#üGø¿™òfÊ›)\ñ¢ êBÔ…¨ êGõ¢x—¿›<ï_§]¹ÂŠê“ã¿Í²÷ðZS?«ú[µR§žþžþž©-R[¤¶(¬ruJÔ/µÞD¼UçpU…¨¿…UÎâÞ%îcêGˆ¸OnTÇœ9s^ýcžë׺uãДšƒµ-VX¥û¼ûF‡Ž=ê5²0WkRYßÓ¾§}O?÷|Üóq…U΢ý#ÚBê³h_‰¶Va•³hgŠ6çG̶;lw¿E諊~«Z3ɨ–Ué¡èVT‹11> >1þ Æ"¸î  `è'À0*/~{ñÛ‹ßi=ç»K[ÍW¨>—råË&Hï~y÷Ë»_F5bÔuÔö%z}oÛùý¾!Ü»è[TßœÔw‘óÄþÞ–6µ"Õ9—ø9ñsâ™Úe•È*‘UbrÆäŒÉêDÂ_ÏO[Äe6âä–¦oQ}gXÿ/]ú™Ûì¯:—Õ9—s7Ïݯèÿê[T‹±1n Æ>ð(ÉSß§¾OŸ1rHC?‘†‘¸zúêé«j½5{°O—ˆ–õ­ ®zûïÊo·Ø«õÄtl¯Ø^±½ˆãp«á­†·ªõ¼¹Cçò6 +ªÿ;Ðý•ÃøªKË÷*û ©Žw8ÞáxâÁ8$g$g$gTÝXucÕLf¸ùxÇÎÖ±†Õ§úVvŒn8Ƭ^…_?ðæÓÆCm$ŒÃÛ'¶OlÝjt«ÑV$ý#Íÿù—Š%Ám<, %ª¯¼è]ÃIa“Výlå ßï»k쮱ăqx~÷ùÝçwí—Ú/µÿÀb+ηëÛ´iŽgPŒ{²¡Dõâ}¿p®ïZ±v·ªuUŸÝÆ=÷lÜ£ëÒuGõ‘ˆ:(ê£Áü2. nãa)î{ªÏNÜ?ŽTw圪HU¤*ÚG¶lÿG[–|צ…¥{–KÐgîà ¥´oÿ×ï?ûΓë/®~à3© X=`õ]Gµhç¨>Ñ^m'Ãjï‰6ªê³m]Ñîå7Å8ˆ>é®ûÒò½Êný\Êj1ž Îȃ£ @ `è'À0x'ÝOºŸtWÝHsÙ¶UýUoÒ¶¹}jX ñÿóLýþ!Ü»Ìçt¿±ÛÞ+꽯÷¾ÞĆá:çsÎçœê«ô y½ºµSgúnç`¸Q}6èw÷˜¥ Ṵ̂§ú|·LÞ2yËdbÃpÅGÇGÇG«¾Êý5yVké󃋷b¸Q­p ®åQeÕèvMª>ßõŸ¯ÿ|ýçĆằúÆê«U_ånçίñôÉ£‹\gpT¿ ìÑîïoÛ{4_¬ú|—½ZöjÙ+bÃpݽv÷ÚݼMèþkìj Ìð¼Í,ŽjEp°‡Ç¶ÿ: oú‰ÛÍm7·â¥â¥â¥vK[ÔÕß.ꨃ†[Îâ(ÏWÜWµ[Î&?šührŲËV,+÷½vß›W6kz'º—Q†Õû®y ·õT]ΓßO~?ù½X8I»¥-Ú6ª¿]´‘D{ÉpËY´WEÛõódDÇGÇGóûb¸D?TõUýYÑ·5ܨc bœáódøœó9çCl@n$€¡ŸHÀEÆFÆF~àÙÛ#=º&´p¿ú¢c€õ5ã‹ê«µz/nýGv–­X¶bÙ âİ\5¹jrÕä÷«¿Ü4;l|QT½ïÎkͼÊM/[_îÜç̘3cÎ âİܪv«Ú­jX¯úD[{«™ÁC<Ü)ªï­îŸàr£a‰ÊÙ&Éû¤““NN:©ˆQÄ(b4/mQGä¾KÔ/Q׌ï"îª#MÜc5/çûïO¼ÿwÚæ9÷oÒPáÜØ£¦1•ó£µ~ûÚä´ìP£så½rçþ}à÷ßæÜ˹—sOóÒí™\ÙZ½·v3¾¨íXÕç.ÚÃüÖÑ÷T}eEÖø¢ZŒ9|`bùû1÷cî' †~" ƒS:¦tLéLM3»ŸóKãkˆÿŸ§élïÚ³¡Yé ?Ë•ÃÞ‘{GîIÌè¿ó§ÎŸ:JuT_Þç›Ö‹Œ;ªŸï”Ѷ_«ù5¢+gɕæy›æmšGÌè¿„˜„˜„ÕQ}éŒï2'SãŽêÔþcÛ¹yt­Û®šì›ý«Ÿ­~¶ú1£ÿn•ºUêV)ÕQýß°îñÆÕéGÝJ}7Ãbùl¹rXüëâ_ÿJÌè¿û+ﯼ¿RuTŸésÃ.̸£ú]õÀknÕµú£¶ì›ý3§Ïœ>sº&¥-ê…ìJ¨3,˜Ïõ˸K[Ü'?Л+u«Ô­Rù+ç§Ãž{:Lõþßíº½åfã.ç÷¿ ‰rwѲÅõɕøðqáãÂÉŠdErþJ[´aäö/Ú?¢-dÜ¥-Ú´ª‰¶1¿;úOô7宣諊~«qGµPÕbƒ˜ÀÐO$€a`®%]Kº–$×ô¬ÿue— _=ï5(¡mGãnˆÿŸAØ—ݪxxÔmSÍ[®dN›ž6=mJüè§;æwÌï˜Ë]»òieî–iüxøÀb®–E'ªßMÌr;Û}¸E²y„\ÉýéèOG"~ôÓÃÕW?üÀÔ¸÷öí’Rt¢ú}ö§îý¿hêYç3¹2 · · ·!~ôSJ÷”î)ÝUGõÍ“}·8ÿRt¢:û^Ðz÷3£þ³W¿žìûý5·ÔÜR“øÑO©ž©ž©že¼Êx•ñ’MW”èݰõE'ªMƒ«zTúñ3ûµäÊdmǵ×vüØÒuAnŸ¢‰:UtJ[Ü3UßWŽWýrNŸ’>%}JÝ/ë~YWvíáó{{wì[„¢úVp?—y­s?—]ùxÇ’Kv|lT‹v‹Ü>E›G´ŠNi‹ö­ê¨íd~ƒô“ècÊ];Ñ?}Õ¢Õb,BŒKÈ•ŒÓ ~e$€¡ŸHÃ`¼Œ{÷2N®¹YoVe“òSõnç\„:ó¹fç†Tu»íUwxµ¡r¥tÿËû_Þÿ’XÒoÆ¿ÿf|¹QåF•¥|½ÊÝ+3Ù4%%uЮ¶ÖE3ª³&UqŸÔ£{#GsÙòn&ÞL¼™H,éw®ï\ß¹ÖŸ_~ýùrWíÑ~ámrŠfTçŒ ºâžàÔ4¦NÙµâ®Å_‹¿F,é,›,›,»«vWí®Ê]µ»ôŸèòWÑŒjņàÖcÆØ–«/;ÉÙÒgKŸ-M,éïïïN=;õìÔSîª%¦öÉr®UD£Zìá1í½Cu Ù·uO¬:±êÄ*uJ[Ä¿Ü~DÝõ¨h–³¸Ê®Î{ÕîªÝUqþ@AÿªøUñkŸâ}Š÷).··ËËz9;ýP”£zÁeçûMd§Å>ÔëP¯C½Ô‰jÑV‘Ûhçˆ6OÑ,gÑÖ•}l}~ýùõç‹63¿GúCô+定蓊þiÑŒj1.!Æ(ò»UnT¹Qb|ƒXP4‘†~" C0[1[1ÛÛÌÛÌÛLöÙðGƒ¶·mV”;óÿ{xoÀk·&¢««˜GY5ÎhœÑ8ã}êûÔ÷©„•>ð{à÷Àïl’l¸ßŸm^ՙņX¹=sU3¬J%åRªüWå¿*ÿõ6þmüÛx"JŒL™8Rvèän«þ>.ó‰ê¬° ºîÓ½z׿Wý±\Y¥%¤%¤±Ž»^˜ÖpZÃi e“dûH­ßÕ9c‚®¸§ô›ÖäA-Ù©_d¼Èx‘AD郅‡^(»kÜzß{NmˆjÅòà¶VÃîZ¯¯WB®¬žØ>±}b+WÎ"æåþVÔQw(mq/•++qVÕ«‡®ºZöAØÿ\ºG;ô¡œÅvÒ4»² {ÈÎѲäÞ’{KäÊY´OäþV´mD;‡rí^¹²mf~ôèKŠ~¥ò•ýPÑ'%ªÅ…\T‹ñ " @ÑDú‰0 À†²Ên(+×ÄLªÙ÷Œó:â¹·OÛÜãú»\‰Íõ›ë7׸*\»çîž»{®Ü5ºâÛëÓM"9÷öåÆÁ{Úž“+±‰ &6˜Ø€¸*\RE©¢TQöý¿ã=ö90hò¶oZ´»"7ZH±b!ň«Âs æ@̹¨Žî÷­ÝY"9÷ömfà·] r*¿«0A¹Ä|S}S}S9ŠEÑUX.¿8üâpÙUQ›t jù#‘ü&ðOòȽ¯ƒ£y´YX뛦{¤{¤+B¡ŠÐÿSÐ9ŠEŽˆyå¿uDÔJ8÷VÜWåâSÜ“•£úºÝu»ëvrµ³‰§·Íg”íÿyd§qÐ÷ž›ë·­žÇ:î6¦6¦6¦9ÅsŠçW.mÑ>‘[¶F´m(áÜ[Ñ–‹OÑ~æ·©p‰¾¤Ü5ýP"9÷VŒWÈ•˜ë ®5$€µeÿŽý;öïe8kÓ¬M³6½èð¢Ã‹”Lþ†^{8öáØ‡cåš•uIj٘ƷÜöLz ‡HÙÝ®%\K`ŠÑB——";™ùöþh±‚è•ÛÆ_ìµÏI6ªÏ­>·úëi‚×ί_;Ë]—?ªy”kÆP ü ˆ—ûîr^(›b ‰‰!Æ ^ÆÞŒ½{å®Ë²¯]m-ï½rÛdÅ€>mšÈN1êvÈí1VðÞÛ¼·yoSÁ¾‚}{åë2«¦ÓW$¢WöñÊoîw])Û~k´½ÑöF¹K[Ĺܿu„R•ÛŠ{¬\é‰û³(çìcÙDzY¤X¤Xä1%éý[Îi0„ò”}¼òÜàcmeßå]_e}•õUrGµh“È.Ër¹ï.ç…”ªÜV´‡åJO´¥ù*x¢ÿ(»,ËÅ^ûœ"‰^¹­»¥/.%.%ŽPtÖ\¶O¶O¶Ü/ Éàü! ½æû³ïϾy¬'÷ýØ-ëùÓàVk§oÛôS.Ck3k3k3Å7Šoßi)Ä9Ä9$TY¿¿š¼®Fγ]5¨]jÓ_”˰z`õÀêÙVÙVÙVDZAš˜91sb¦òñ|X¿Wõß ƒ]<æþÀvÓ¬W¬gÈ5s3¿Íü6ó["­ ýr𗃿T¾ömÌÍúç8E¹ß&nUo÷Ez ¶u—‹êôÐôÐôP"­ ­]º"TùZÔÛQ¹zùÔ¬/‡mù´å"¶•ÿ_QD½  ÕÙŠû­ì2@ß$}“ôÜÿ{¾JOGÊPýíØ¯l;Õߨ\’#x<â±h‡(ÿ¿¢Ý"Ú0”¡:[Ñ6–‹[Ñ®æ7«`ˆ>£òU}LÑß$bÕÙŠq Ù6ÆÚ«k¯®%Þ$€5'º"¹kª6’Áª‘†þIS¤)Òì“ì“ìóèdîõîœhóšFöÇnOgw÷r]G9Û2Û2Û’ÐÓ5¯K^—¼.)—ÿÆ)Ê[—"J?v—àûÖ©³ì“ 2d²*°Îùí÷Ûï·_¹üßÖö…Õs¢ôc·7ööusö’}c²Dz‰ôD®ž?zþèùÊå?7©õ°Æ¿¥=ôÒÖmÊË®«wãå—7ˆ:]›é3ÓgfSiM,Ûê—†Ÿ¥=ô˜Ç]ÿ0ýH¢.Pz»÷^åòtssÏãá’àÍ;Öµ£Ü>vûªÇà×mÓ?6ªE»…ÒûØ­h'+—§hWó›¥k¢Ÿ(Õ¢I”~ìVŒi(—§!ê$€µ‹d°¶†Þ¹TëR­Kµ”+p­-ÿyΔ kî/h^çoÛéJ½×Õ{*—í‘Ô#©GR‰=ÝIü=ñ÷Äßå~œ²ì‚>uF|æsÊ©dË’µòx_a§ýNûöÄžî$—J.•\J.ªß¦Ƹm'>ó·q¯ÅÑzòXM9è ?‚ˆ=Ýyô4èi\T§­ hÜn/ñ™¿í´8‹<¦î_:mé´¥Óˆ=Ýyõ׫¿^ý%Õ/Ú¶l;•øÌßvñ>— ËZê Cˆø§Äò·÷^õ}Ýõ;çʃ•ùÜ®›å>¹ÙDuÊY´U(±ümE;Yöa‘RÉ¥’Kñû¥;¢Ÿ˜Ç’LÉ–%km$>ó·crQ-ÆCˆ=ưî Ö `èßǾ}+WÚ¨RÝV´Š£a­É6~J¯ßœ¶*—mÓ̦™M3YŠ,E¨ C÷Ý;4¡«½{½>±-Adj²MZÚ7ÝùrÙš]6»lvYáªpU¸º0¥ÿ”þSòX™ocÛö9ÍD¦&Û‹¼l3[vΆÙ³º°àÉ‚' ž(—yØ¡¶¿Y1Ì­Ñ6eü m+ÊÎÙÐ;³wfo"PÖô\ÓsMÿÍ©ât¢qS"S“íkÿmíÕzñO‰i²÷aÕåüÃà–¿4¢¬4Ùfdw¯NT‹¶ %¦Ñ“mÛç4Ïc°X´±ùýÒ W…«ÂUôó˜X~ißtçCD¦&[1¾¡\¶b<„`ÜH ’Á‹0ôÈóªÏ«>¯*;ä´Ô=š&µæ[Û­5ÊT^”G‡çtÒé¤ÓÄ¡v¥}šöiÚ§²CÞ/†Ìr¯ELjáíöÀz§«;+—p|¿ø~ñýˆCíz{øíá·‡å¢:£X ©›31©ù¶1ËJµ¶)—pltltl4q¨]YîYîYîrQýêÓvUˆIÍ·#§µxWïºr GæDæDæ‡Ú•ówÎß9ËEõÓØ÷\ÉIÍ·Ó“FYÄÈ•³ˆyJI ¿ñoÚ®Ê&Ùž> ISÊJóíÒm¦ZŽ‘+gÑ>¡”´n/hêæ,;›Îá·‡ßæ·L»DßP¹´E_’˜Ô|+Æ7dgÓù4íÓ´O‰CÆŠpÁ#¬ÀÐ#l±±…rµ\gâîÝlimm¯êº´eÓÏ9k䬑ġvík¿¯ý¾öÊ¥½h‘Ë/MnÚÚžÜô]iûnÊå<öøØãc‡Úu¬á±†Ç*—öÔ'ö¾ÕˆFmm/.ò­áxJ¹œTlP1âP»Î$œI8“ \ÚÃÍ­Ô«D4jk›èÝ'ªu–r9wiÐ¥AVmײŸŸ„<ÖýímÙxsÍóD£¶¶÷žöOsy.;é¥wŸ¨ÖY”’¶¶âž¬\ÎK̓ͶR>Z[åÚoà×5rQ}qŽoUÇ“”’¶¶¢ý¬\΢½Ío™v‰¾¡ri‹¾$Ѩ­­ëP.g16B0V$€ É`9$€¡GZtnѹEgåªølÆ ®š*[vÄõ«¯ÿ7pãÕçhë÷šì-¶_÷‘ ŸkêR;Ëb‚Ù¬ g+„—mT¦gÃÙfM*„ ºiu¿ö¿§&}'Ù) g÷ú¸ÉNX—ó&çM΢Q[:<éð¤CŠÞo0 ¤-Q­­íûYCŽº·“]e9*+*+ŠhÔ–~?ôû¡ßÊå|c]ßÖΈjmms¬‚"ÜoÊEõ;Ÿw>ï|ˆFm;2vd¬r9_zê»Þ©Q­µí¦àŽÖUÂʽ/;*÷B¶¦mMÛJ4jËŒäÉ3’•ËùT‰ï–ÚÿATkwÛܾZp¥…Ê¥ý|â {m½)mmmÅ=Y¹œ»°¸e~ˆrÖîÖcGÝ!Õ†ä1ù³é€cmB(mmmEû9õhè÷C¿ø-ÓÑ”kW‹¾$Q­­­ëP.g16B40V$€õÉàÜHC/¼Ê|•ù*S¹âµL¨1½rÁ®ûk\ÚÃÔ©cÍ9ULrIþö6k­SËF×Ê|jbê¡ÎæçíŽ7ýU0gêw̪ZmOåc¸·ãÞŽ{;ˆIÍe´Ëh—‘GJ²f©ŠŸ—Û®xàÑŽ¨ÖîvÌ[Çúy¼¯p}ëõ­×I*hÁ{¯÷^ï½ä®µâ³à’¥ˆjínÞäx½ÑŸÊÇp!øBð…`bRs9•s*çT–}|äNP÷¥Dµv·Ë›·-f•Ç âÑ£G?&&µ`£b£b£ìã#ó†s»HTkw»aVûƒÍã•á`£.›[–¤´µµ÷dÙÇX+ís¿J9km-Ïͳl¿R>†-–ÇZß%ªµ¶ý,¸¤G)ÙĤ×{¯÷^ü¬iNô•KXôqÒòöup€G;1î‘Ç‚Aí2Úe´#&É`À(BN–9Yæd™<&®æÞ½Ù ‚lˆÿá8³Ñð<¹·­Þo·¨«¼®ÌŠ‘íìšV‰>øm»;â¿•×.ÝæÚÉ¡Eo]Ÿï‘­]3Z^Q>Ó­}¶öÙÚ‡˜ÔÜÅÙg_œ­\ 3\|šDպ؞ªð]˜}ë®®ººêêªÄ¤æ'NÌcõß)¿Ú]mxލÖÅ6ÎÕ7Ê©‘ò™Î[1ożĤ撷$oIÞ¢\Â!¯š?ª»‚¨ÖÅö¦UßÑÎAÊgGLjîYÏg=ŸõT.ážeM¯Y•¨ÖÉÛN7ìh“Çc ±ÍúÖÙDikw+îÏy¬¼e€c3ÊY[Û”NƒF·ýFùL}¦6[S[S[SbRsá6á6á6Ê%|¸X×^-ÇÕ:™´?mÈ#÷¾ÊGR}Cõ Õ7“š;p<àx€r o«Ø©Q‹nDµN&íÿ)è†ûKÙó]ÜÆÃ’ÒÖÖVÜŸ•$ÜÆk‘­嬵íÅ`_'¹ãɾ´Þý ¥­­­hK+‰h{ó»¦9ÑT.aÑä—Q'“ö—õíêø@ùHÄ8 1 €0H“FâpÖá¬ÃÙ<&©³ ¼å¦“w%ÿ¼êq¨¹ƒúÕ[ý=ï_Õ¥‚ínñWåâÊü`úäYëA¥\Ï«ÞOî¯ùD@j T½ þÊ£¤ìù&*‰D¦&¼#¼#¼óH•¥õ (ßnQ­»É¦Êî.óµi?Þ9«sVç¬&25ààà—LJnƒÎ·u'ªu·m´Ó,³bù<&(.“U&« ‘©‰ ‡'žÇ{íîû™¶YITënë:¤öȪ-•Ï÷­Ó[§·ND¦&~9õË©_N)—m’sßçDµî¶= ­i’G‚¡ªÿêv})mmmÅýYùL'nõuƒý”³v·C?ižRwµòù>Û5ÈÎõ1¥­­­hKç‘´ó ð ðãwM¢¨\¶¢Ï¨»…™ˆj1î¡|¦bœ„È@$ƒI£Hß"kÌ«0¶\Ý5F/èåéôãâ¯\4ÉTÞjÒõÔfzý&⯺ï¶È1ÿOý=äþÆÑ7l®××ùô×]ê‡VߜǺ,qqLèå¨þ_$ì öò°%ªu·haÕ®ö`åóM]º u‘© ócæÇÌå‘\oá~“¨ÖÝvì)Û%õ/)ŸïÓ̧™O3‰LM´êÔªS«Ny¬º7`È.w¢ZwÛÙU¥ç1‰«Y²Y²‘© ¯Y^³¼fåѺs ´pó"ªu·ý½nÛ«óÊç{ýqŸ•­ïSÚZ›E`À]îy¤UZuª±­r å¬Ýí?w;¬°î§|¾†õÜã8‹ÒÖÚÃÙMƒ"Üo*Ÿ©h{ó»¦ ÑT.[ÑgdÄI‡÷}Á^¶ò o  ’Á$€Q„o‘ý,×:T@k±¨llsÜ㯺ƒªýoÚ½UÝÚ=m:[ý¿]9°ÝÒ¦Þâo;Ž«7²zq]ŸéOû§5ª|¾ß=|÷ð‘©Ý¨îøU=j/ˆj]Ÿéo ×—Vß*Ÿï­·Ü@dj7ª­gU»_éQ­ë3Ýð®ý½æ/”Ï7~Lü˜ø1D¦v£ºÊò_•@TëúL÷môêmÛFù|cíbíbíˆLM” +V&,Xú3ØÃ£9Q­»íñ/|ºÛåñŸ´Í{«N”¶v·â^­ù:š”³êí¹Š=âòø­ÜyÞsMCJ[»[Ñ®&U¦]¢¨\ª¢ÏH{O×g*Æ@ˆj$€A2˜0¸Eþs9)ds¼ÁòÊ—* µ'¡ó›õÿv÷ƒÎßÙü!þÖb‚Ù¬ gu=±yFGë#y$þ‹ÿ/þ?"S»Q=¾oˆ ,‰j]Gõç]~µÍÉ#©°4viìR"S»Q=h‡ÕåÚGˆj]Gõ¿_;Ö.Mù|#¿Šü*ò+"S»Qíµ³A±êYDµ®£úB|ÏkŽk•Ïw—Å.‹]D¦v£º•_}•S‰j]Gub×>Q­³”Ïwý;/›£´µ»÷jCLV9'‡°h“ÇÄæ‹Ç»Ü¶,Gikw+ÚդʴKô•KUôùeÔuT‹1¢ ` & n‘ÿÇ_Þ÷›w7ÄæxÕÞåÝÊ®uråw%컨ÿ·âß‹¿­îTþm¹¯uÝ?ú®ÛÒVyLU÷ïú×ÿ»žÈÔnTÿúI›K–‰j]Gõ™o{4vX¡|¾>øóÁŸ‰LíFõô~®[ˆj]GuB¯Þ­+)Ÿï– [*l©@dj7ª¿ja]o Q­ë¨¾cÒïžKåó]ùíÊoW~Kdj7ª{×j¼¡æ¢Z×QýxäÀb®y sÏujÝ´ñ(J[»[q¯6İa•óËiƒÿn{2[/µü®AJ[»[Ñ®&U¦]¢¨\ª¢ÏÈ/£®£ZŒÕHƒdpa%ƒ?ÑŸ*ä¶;¡s›5†Ø/WæÓ'ÿ{vS¯ Náêÿ­ø÷âosïGwgú_v’³ˆ·‚ñgŒÇÞæ-‰j§ÊÊönÒú+â­`,õoó»å ¢Z×Q}ûr¿s.ŽÄ[Á˜¶Í^a1¨Öyª¬­ß+×:Ä[Áþ‡õ£z6DµÎSeý‡µT>ßÐÍ­7xFikw+îÕ†˜6¬rN¯ ¹}£|¾UšU©3ÒÖîV´«ùÍ*¢ÏÈ/£®£ZŒoûwìß± `Àtÿæ.Ul÷ú„<§&}'ÙÄä¨ÿnþv—}eñ·õöU6/Ÿ¦ëæøù”ž3Cˆ·‚±©D‡MÖDµ®£úú’>¡­/oã÷ mXýGTë:ªïÝîÿÒå)ñV0fqjß(™¨ÖuT?MøØõñV0Æ6µíU'Q­ë¨Ná?¸CåomÛ»þ.J[»[q¯Öä|)gu¶ñܾW>_¿6–Ïj[QÚÚÝŠv5¿YCôùeÔuT‹1â !s{æöÌí$€~Ø¥Z­ßªìµï×@[7õÿV¬à"þ6÷~xØ8îÀ†Õ¼\ ÷ `ÊjÞ.H†û°aE5o$Ã}ذ¢ÚÐß6¬Ò6Ü7€ «œ ý `Ã*mÞ.H†û°aE5o[zXÌ·ø(WÃ]¸çÒF»kÚ‰¿ZWÁݧ™Ÿú»¶®ÛÛfÄßúÎl\²æ]7ÇåÖþÝéw§ßˆLíFµá®lXQ-·ðÂ! ‡,Bdj7ª w `Êj¹5€g.›¹læ2"S»Qm¸kVTË­üÃñŽÿpœÈÔnTîÀ†Õ†¾°a•¶á®lXålèkViË­Ìïš&ÑT.UÃ]ذ¢Zn `"“>E¡öeØ—a_R2Æ÷90ñÀă‹ .¦~êWüû"´0 úð9‡œ¿5Äæø˜³¶6õÿ—|`fùc­xÞ¿¿…e½Zÿ[‘el¤íÂúçuÝß<££õåóÿ/þ¿øÿˆLíFõø¾-6°$ªuÕžwùÕ6Gù|c—Æ.]Jdj7ªí°º\ûQ­ë¨þ÷ëoÇÚ¥)ŸoäW‘_E~Edj7ª½v6(V=‹¨ÖuT_ˆïyÍq­òùî²Øe±Ë‚ÈÔnT·ò«±¯r*Q­ë¨NìÚ'ªu–òù®çñe³s”¶v·â^mˆ `Ã*çäÐmL”Ïwñx—Û–å(mínE»:¯óEþ‰> r©Š>#¿ŒºŽj1BT(š½0‘,¤dŒƒHÜÎÚ4kÓ¬Mê'}Å¿/ø¤/ `À-²¿ƒeãZ‡ ±9¾U— ¶ÿ›H§RXÙ¤2'Rãü§·ë¬ú¯^Gû'¶›!þ½øÛƒSºœjYC×gúÓ~Çi†*ŸïÃwß=|Gdj7ª;~UÏ£Ú ¢Z×gú›Âõ¥Õ·Êç{kÀ­·™ÚjëYÕîWºFTëúL7¼k¯ù‹<Ö?&~ ‘©Ý¨®r üWe'Õº>Ó}½zÛ¶Éãa»X»X;"SeÂÊ„• Ë#–þ öðhNTën{ü ŸîvîÊç+móÞߪ¥­Ý­¸WbذÊù\ÅqyüVî<ï¹À¦!¥­Ý­hW“*Ó.ÑT.UÑg¤½§ë3c D5À éKÜ"ÿó*Œ-×Ûão'®rûµál³&ÂÔßôwÕ,~ÿ²QÙ튟göÒÕM¡ë3íìR?´úfåó͈ˈˈ#2µÕÿ‹„}Á^¶Dµî¶-¬ÚÕ¬|¾© R¤. 25a~Ìü˜ù1å²Íiá~“¨ÖÝvì)Û%õ/)ŸïÓ̧™O3‰LM´êÔªS«NÊeû~À]îDµî¶³«:4JW>ßd³d³d3"S^³¼fyÍÊ£uçháæETënû{ݶVy,­rýqŸ•­ïSÚÚÚŠûsoºwª±­r å¬Ýí?w;¬°î§|¾†õÜã8‹ÒÖÖV´¥•ÏT´½ù]Ó„è*—­è32â¤Ã3Ýìåa+;*$€AÒ—0Ї³gÎ*Wžw–·Ü" «9.·‡ï´¨RÏ'²¶÷ÝVþ¼n3÷H×®ñ- ín]ªîÎÜÿr›k'‡½uý {λ௒êªo¨¾˜ÔÜñ€ãÇ”Kx[ÅNZt#ªuò`åOA7Ü_Ê>X¹4¸‡%¥­­­¸?+I¸×"[?ÊYkÛ‹Á¾NrÇ“}/h½ûJ[[[Ñ–V>ÑöæwMs¢?˜Ç:%ý—·ëÅ/£.¶bÜCùHÄ8 1 €0Hú’Fr²ÌÉ2'Ë(WªuÕÜ»7d¸Íñÿ­vÅç/»±ýìšüWëÇË+_ª0°BxÙFezŠÿ`fùc­g'W~W¾KAžã‘­]3Z^Q>Ó­}¶öÙÚ‡˜ÔÜÅÙg_œ­\ 3\|šDպ؞ªð]˜ýßÊgººêꪫ«“šK<œx81w%§üjwµá9¢ZÛ8Wß(§FÊg:ożóV“šKÞ’¼%y‹r ‡¼jþ¨î ¢ZÛ›V}G;)Ÿih\h\(ËOhÁ³žÏz>ë©\Â=Ë4š^³*Q­‹íý›v´é¯|¦±ÍúÖÙDikw+îÏyL ¿e€c3ÊY[Û”NƒF·ýFùL}¦6S1NBL  ’¾$€Q„¼Ê|•ù*S¹‚µL¨1½r\a­Ë’»i®ëýÌ^¹·~ǬªÕöT.ó{;îí¸·ƒ˜Ô\F»Œví”K¸f©ŠŸ—Û^X“MwT¹cëXMkïm½¾õúVbRsï½Þ{½÷’}Ãé³à’¥ˆjínÞäx½ÑŸy¬½|!øB01©¹œÊ9•s*ËEuÖ 6îK‰jín—7o[Ì*TYôãèÇщI-ببØ(Õïæ )æv‘¨Öîvìö›Ç+—öÁF]6·,Iikk+îÉr±S9hŸûUÊY[Û½›;gÙ~¥\Î[,;޵¾KTkmûYpIRrQ-ÚÞü¬iNô•KXôqÒÅÂLbÜC¹ÌÅ8 1 €0Hú’F‘Ó¢s‹Î-:ç±ÂÐŒA \on£Ü˜¶{}Üe‡NÞä¼ÉyC4jK‡'žtx¢\Î÷ icK4jmBÑYCŽº·“MáDeEeEÚÒï‡~?ôû!Iû×õmíÜhÔÚ„¢VAî7eS8>ï|ÞùÚ22vdìÈØ<&íê»Þ©Ѩµí¦àŽÖUÂʽ/;J¹´Ó¶¦mMãa­™‘<#yFro;•øn©ýD£v·Íí«WZ¨\ÚÏ'º×Ö›òÑÚ„¢O}×;UR.çî,n™¢|´»õØQwHµ!Ê¥ýÀtÀ±6!”¶¶¢ý¬\΢½Ío™¶ˆþ l¢}Ö£îíˆF­ÍŠÑ`@H›<&Üc#D#cEXôÍ0ôÈÆl‘ÇDÐ&îÞÍÐŒÖÚºY«º.mù{·¹‘³FÎIj×¾öûÚïk¯\Ú‹¹üÒäѨµu³6}WÚ¾›r9=>öøØãÄ¡vkx¬á±†Ê¥=õ‰½¯E5¢Q[Û‹‹|k8žR.çAÅTŒ8Ô®3 gÎ$(—öpsëõHkm›èÝ'ªu–r9wiÐ¥A—Ä¡v%ø$ø$ä±¢doËÆ›kž'µµ½÷´šËs¹Aó”’¶¶âž¬\ÎK̓ͶR>ÚÚ>õxÄu\T_œã[Õñ$¥¤­­h?+—³hoó[¦]¢o¨\Ú¢/I4jk+Æ:”ËYŒ‡Œ àÂEÒW `è‘çUŸW}^U®BfG-u¦1­ùÖvk2•)—pÒé¤ÓI§‰CíJû4íÓ´Oå¢:óÅYIÍ·ë®î¬\ÂñýâûÅ÷#µëí᷇ߖ‹êŒb¦nÎĤæÛþÅ,+ÕÚ¦\±ѱѱÑÄ¡ve¹g¹g¹ËEõ«7þMÛU!&5ߎœÖâ]½ëÊ%™™™CjWÎß9çü-ÕOcÞs '&5ßNOre#WÎ"æ)%Í·â>¬zø&yú€&mL)+Í·Kk´™j9F®œEû„RÒ¼\ÅMÝœåÊY´·ù-Ó.Ñ7T.mÑ—$&5ߊñ ¹¨c#Ä!cE¸à‘ôU `èßǾ}+WΨRÝV´Š£I­É6~J¯ßœòXù¦ifÓ̦™Š,E–"‹Ô…¡{‡îºW¹ä÷îõúĶ‘©É6iißtçCÊekvÙì²Ùe…«ÂUáJê”þSúOÉcÏmÛç4W™šl,ð²ÍlÙÇ¡fÌHê‚' ž,ÈcÒþ°Cm³:@dj²M?hFÛŠ²CõÎìÙ›Ô…5=×ô\ÓS¹ÌçTq:Ѹ)‘©Éöµ‡ÿ¶vê 1ˆø§Ä4ÙŠû°êrþapË_QV¥$3‡»W'ªE[…Ód+ÚÌÊe+ÚØü~é„«ÂUá*ú‰y<¿´oº3“Ék¶vø^¯OlK(—­!7Àƒ¤ïÇ" ½s©Ö¥Z—òxf°Ö‚Š¿–ÿuF|æoÛ/Ù²d­Ê¥ºÓ~§ýN{bOw’K%—J.%ûÖBJ`ŒÛvâ3Û÷Z­—Ç0÷AýDìéÎÓ §AOƒdßZXиÝ^â3Ûiq&¿(—êÒiK§-FìéΫ¿^ýõê/¹¨~Ñv°eÛ©Ägþ¶‹÷¹dXÖRg¸AÄ?%–¿­¸÷ª?¸óè®ß9×R”[þ¶ëf¹On6QrmJ,[ÑN–}—½Tr©äRü~éŽè'æ±îr²eÉZ‰Ïüm؆ì‚¿'þžø;±À¸‘Ö’¾š  ý“¦HS¤Ù'Ù'Ù'åñƤwçD›×4¯?v{:»»—CYÙ÷É,³-³- =]óºäuÉëRoLNéPÞšªÞÆ%ø¾uê,û>YƒÌ™¬(©s~ûýöûíW.ÿß·µ}aõœ(ýØí½}Ýœ½ä¢:½Dz‰ôD®ž?zþèùÊå?7©õ°Æ¿¥»M^:ÀºMy¹¨~yãå—7ˆ:]›é3ÓgfëO,Ûê—†Ÿ¥½Bê˜Ç]ÿ0ýH¢.Pz»÷^åòtssSþ߃;4ïX׎rûèI¶{ ~Ý6ýc£Z´[(½ÝŠv²ryŠv5¿Yº&ú‰rQ-ú˜DéG¿Ñ>¥Cyë<c D€¢€°v‘ôÕÀÐSçÍÏ›Ÿ7—«Ì¯§úk7†F¶:Û÷}‡ìtw¨èUvp™På’£òU}LÑß$bÕÙŠq Ù6ÆÚ«k¯®%Þ$€5GÒWHC¯ùþìû³ïÏÊûû±-ZÖó§©­ÎvÁ·ÎáMú)—¡µ™µ™µ™âÅ7Šoˆ´‚âââœÇ”S5y]+ŒˆUg»jP»Ô¦yL%Z=°z`õÀl«l«l+"­ MÌœ˜91SùŠx>¬ß«úoŠ…Á.Mˆ[ÕÛM³:\±ž!ûFû·™ßf~K¤¤_þrð—ƒÊ×¾y Yÿ‡ (÷ÛÄ­êí¾H¯Á¶î²o´‡¦‡¦‡iiEèŠÐy<XoGåêåS³¾òÜݸU½*Ùí÷VqrQýêÏW¾úSĶܿõ‚’T½÷Xq¿U.CqQýã?Žÿ8*ÿ›2ÍL'™v{û"ð”ÛÊSõ6vx÷ñå"öé¹§çžží¹#Ú0”ä¶ ƒ]<šˆ¶qó1dNÌœ˜ÉïTA}FÑT¾"¢¿Iܪµ$Ó_M^×ÊãV1îA¤(:HknÿŽý;öï é«]$€¡×Ž}8öáX¹ª~ðP—¤–ipËmϤ÷rˆ”+½„k ×®c/%.%.Evèp{N´XAôÊmã/öÚç$ÕçVŸ[}n51Vð^;¿v~í,w]þ¨æQ®Ù¢Wn{órß]Î åJ/:$:$:„+x{3öfÈ®:¹ìkW[Ë»D¯ì´ÏŠ}Ú4‘+½Cn‡Ü¹cï½Í{›÷6ì+ØWÈcíÃY5¾j$½²Ó>;p¿ëJÙö[£í¶7Ê]Ú"Îe§ƒV èÓ†G£d·â+Wzâþü¿αìcÙÇ,R,R,R”ÿåý[Îi0„ò”Û¾<7øXÛ¹r^_e}•õUrGµh“Èý{Ñž¡Tå¶¢=,;Ùókç×¤Ê è?Ê]Ñ÷$zå¶bìB®ôĸ1 è ¬¹lŸlŸl’¾ÚE`CÙ e7È®_›T³ïçu4¾ÿÏUû{\—+±¹~sýæúW…k÷ÜÝswÏ•»FW|{=pºI$ÿŸ!ªƒ÷´='WbLl0‘ ™TQª(U”»Fg÷ØçðŒHν}Ó*  Ý•òieî–ÉãÍ›b!ÅBŠW…+æ@̘²éù~ßÚØ%’soßfžqÛÕ §ò» yL«è›ê›ê›ªÈQä(rˆ®ÂrqøÅá‡ËEõá&]ƒZþH$ÿŸåTÒ‡Å=Y9ª¯Û]·»n'÷W;›xzÛ|FÙþŸw¬q¿á¹¹~Û곕KÌÆÔÆÔÆ4§xNñœâÊ¥-Ú'Ê%Ú3¢mC çÞŠ6°\|Šö3¿M…Kô%宑è‡ɹ·b¼B®ÄÄXq ¨!¬-¹ß&é«9À0³³³½Í¼Í¼ÍdŸ.|4h{Ûf4ÄÓ÷¼vkÒ(ºJ±Šy”UãŒÆ3Þ§¾O}ŸJXé¿~üÈEõ£á~¶yMTgbåöÌiTͰ*•”K©ò_•ÿªü×Ûø·ñoã‰(}02qdâÈD¹¨¾Ûª¿Ë|¢:+,¨®ût¯ÞõïU,WVi i i D”>˜ÖpZÃi å®TbÇ>Rë÷DuΘ +î)ý¦5yPk‘\Y½Èx‘ñ"ƒˆÒ /<¼ð°Ü•Š[ï{Ï© Q­XÜÖÃjØ]ëõõJÈ•ÕÛ'¶OlåÊYļÜߊú"ê¥-î¥re%îê£zõÐÕCW•ÛÃ.Ý£úPÎb;iš]Ù†=äÊêÞ’{Kî-‘+gÑ>‘û[ѶíÊY´{åÊJ´™ù=Ò¢/)ú•ÊWJôCEŸ”¨crQ-Æ7ˆ(E `è'À0/ã^ƽ”8·Þ¬Ê&å§þêÜιh6ÄßRÕí¶GTÝáÕd>îyÿËû_KúãÍø7ãߌ/7ªÜ¨r£”¯W¹{e&›¦¤¤ÚÕÖºˆ&É&UqŸÔ£{#GóW²ÓÍ%ÞL¼ÉЉyçúÎõkýùõç×—ðzô‡_x›œ"š$tÅ=%À©iL.²ÓÍ]‹¿Ïýz$Ë&Ë&ËÆîªÝU»«²7üÑ¢Ë_Et@pCpë1clËÕÿYv€ÒgKŸ-M,éïïïN=;õìÔSöá†Ô>YεŠò0÷´÷Õ-~•+Ÿ«N¬:±JÒñ/·QwD=*¢I²?úOtùK®|ĽW܇?Pп*~UüÚ§xŸâ}ŠËííò²^ÎN?å¨^pÙù~“‰²Sô÷:ÔëP/u¢Z´Uäö#Ú9¢ÍSD“dø…·É‘+¥¨qßIDATÑNmf~ô‡èWÊ]5Ñ'ýÓ¢Õb\BŒQä1v1ªÜ¨r£Äø± h" ýDæZÒµ¤kI²]©¯+»Tøêy¯A m;¡·~\v«âáQ·M5o¹’9mzÚô´)ñ£Ÿî˜ß1¿c.wíÄtj‡,æjY„h˜˜åv¶ûp‹dó¹’9úÓÑŸŽþDü觇«®~(»žÖÿÞ/yØÿµK|Ÿ=ä©{ÿÁ/šzÖùL®LÂmÂmÂmˆý”Ò=¥{JwÕQ}ódß-ο¨Î¾´Þý̨ÿlÆÕ¯'W&[jn©¹¥&ñ£ŸR=S=S=Ëx•ñ*ã%wJônØú‹"4ÌÝ4¸ªG¥?³hQK®LÖv\ÛqmÇ-mQäö)ꑨSE§´Å=Sõ}UÜ{Õ/çô)éSÒ§Ôý²î—u¿”Ûçù½=‡;ö-BQ}+¸Ÿ‡Ë¼ÀÖ9ŸË•É’Kv,Ùñ±Q-Ú-rûmÑþ):¥-Ú·ª£Z´“ù ÒO¢)wíDÿTôU‹NT‹±¹ek1¦Aü(ÊHC?‘†AŠ)S:¦´ênÕ­Ùý|œ_wCüIÃí]{6´3+]Aö›½#÷ŽÜ;’˜ÑçO?uþ”꨾6¼Ï7­wT?ß9(£m¿VókDWÎ’+‡Mó6ÍÛ4˜Ñ 1 1 1ª£úÒßeN¦ÆÕ©;ýǶsóèZ·]5¹rXýlõ³Õψýw«Ô­R·J©Žêÿ†uw0ò‡Ï,Žº•ún†ÅóÙrå°ø×Å¿.þ•˜Ñ÷WÞ_y¥ê¨>1Òç†]˜‘?|V=ðšÛÁAu­þ¨-ûÓÌé3§Ïœ®Ii‹z!·Q§Dý2îÒ÷ÉôæJÝ*u«TþÊù鰧ÞS½ÿÃw»no¹ÙÈ>ûeH”»Ûˆ–-~¬';9ÿ¸ðqáãÂÉŠdErþJ[´aäö/Ú?¢-dÜ¥-Ú´ª‰¶1¿;úOô7宣諊~«qGµPÕbƒ˜ÀÐO$€aÀ"c#c#cU7FôèšÐò„ñ5Äc÷u_âðþå–„- [X?ÒÀÄܹs_õ•Ýó¬s¸Í ã‹ê‹›}:žS}îë¿^ÿõú¯‰Ãr¡Û…nº}à~õEÇëkÆÕWkõ^ÜÚMõ¹/[±lŲĉa¹jrÕäªÉîW¹?hvØø¢:©zßÿœ×šy•›^¶¾Ü¹Ï™1gÆœĉa¹UíVµ[ÕTGõòmí­~Tdñp7ª7öV÷Op¹Ñ°Dåì “äÎ}ÒÉI''TÄ(bZHÞˆ:"÷]¢~‰ºf|÷qoTiâ«y9ߟxâý‰ª¿k~sÿ& ¾Á=jÕÄkýöµÉiÙ¡FçÊ{åÎýûÀï¿̹—s/çžæ¥-Ú3¸²µz/nm„i`ÑŽU}î¢=Ìoa}OÕWVôa/ªÅ˜ƒêscÄ $€¡ŸHÃàt?é~Ò]uÃtÌeÛVõW½I Øæö©?Á½È÷.sÆ9Ýoüt¾ÞûzïëMl®s>ç|Îù¨¾ÊAš×«[;u¦ÿàv<}èÙ ßÝc–6l3ÃrÜ„“·LÞ2™Ø0\ñÑñÑñѪ¯r¿EMžÕZúüÆàâm‡ð ‰Sp-*«F·Ëhºð ÂÏ×¾þsbÃpÝX}cõLuÞí|Ãù5ž>y4p‘ë Žê—Áƒ=Úýým{æ‹?ð@ëe¯–½"6 ×Ýkw¯Ýý@Ãý×:ÙÕ<˜7ày›Y†>À½í¿NÃ[„ª>ß¹íæ¶›ÛNñRñRñR»¥-ê‹êoõNÔAžµèÑÀE®3ÄýPõùŠûªvËùÑäG“M®X¶bÙŠeeWþÞ¼²YÓ;Ñý¸Œ2ô¨ÞwÍk¸­§êržü~òûÉïŽ G…£vK[´mT»h#‰ö’ÏZtcpñ¶CDÛUõùŠ60¿/†KôCU_eÑŸ}[žµh¦ÿàvbœAõùŠñ br# ýDFâêé«§¯ž6UÃÁ>]"ZV4¬†ø¿+¿Ýb_^³‹íÛ+¶ñ`n5¼ÕðVCu®ûn‡Îåm&ØÔº¿r_uiù^e·¨>»ãŽw8Þx0ÉÉÉU7VÝXu£êë¾ùxÇÎÖ±öûTßÊŽÑ Ç˜Õ«ð«ê³;´ñÐÆC‰ãðÄö‰íÛF·ÝjtKõuÿ#Íÿù—Š%Ám< fM÷+/z×pRؤU?[9PõÙí»k쮱ăqx~÷ùÝçwí—Ú/µÿ@bcÅùv}›6Íñ ŠqO6”¨¾Q¼ïÎõ]+ÖîVµ®ê³Û¸gãž{t]Ú¢î¨>QE}4˜_Æ%Ám<,Å}OõÙ‰û§¸—ꮜS©ŠTEûÈö‘í#UÏ’ïÚ´°tÏr úÌ}¸¡”öíÿúýçbßyrýÅÕ¨>»ÕVX=@×Q-Ú9ªD´—DÛɰÚ{¢ªúìD[W´{ùM1¢Oúë¾´|¯²[D?×°¢ZŒ'¨3ò Æ(ˆPFú‰0ŒÊ‹ß^üöâ7ÏÏÏÕÍÖ&õ«ü\1è¤å·wì[*¾ þÆÃDšàYÁAîZõ\ë8Ñõ«Ú«ÖT}.ͦ6›ÚlêƒuÖ=XG Ÿ×=^÷xÝÃ÷©ïSß¼3QË«â¤ro¢Ît»ÝJ‘S-(Ü]ï&Ô½|»Wo§9ž¥ë¯î¯ú\j—¬]²vÉ;Áw‚ïÆ'}Múšô5C† U ›–õ-3úH•®ÇZ†gäå¾RïVÆêÜç“Ös¾»d±ÕüÓ– ,X.0ñ@âÄÄ€ñy÷Ë»_Þý2jĨ£F¨3|¶/Ñë{ÛÎï÷ ¹àÞEߢú椾‹œ'ö÷¶´©©Î¹ÄωŸ?‡0>Y%²Jd•˜œ19cr†:‘°Ã×óÓq™ †8¹¥é[TßÖÿK—þCæ6û«ÎeuÎåÜÍs7ÏÝ,ÈÒõHcuSÔS½›¯hß î]ÄýMs÷Lqÿ,˜rÎVd+²s>›óÙœÏÔ9Âu˜híù¶_à·ùúVÚ÷k jc3rr‹·õ®©s.1á1á1áÕ¢Í#Ú?ªM´£D›Jïæ+ú"ÈË}¥h‹Šv©êsí[ÑÖåwÄøˆþ©è«ªŽÑçý_}‹j1V Æ Ä‚êscb\‚9$€¡ŸHÃ9*Žë¯?¼þ°:áŠÅËv,üÏõË­ûæÌ JrUhë¬ÄtÞdsÙ"ÀìÇ j½Í¼Ð~¡ýBû¬íYÛ³¶sÙÜÅÅ•Íý6÷ÛÜÏTmÖðÓÜ4kb™{¡ xÛ%¬å'Ö'ªeUz¨Î1ÿÔç§>?õÉ<’y$ó—½(ض;lw˜úQ½ÚÆ­MÓÃïÖ)á_XQñÞ{l«ÚŽÏj˜½Sç˜'–ŸX~bù·ÝßvÛ+^ :t(Hý¨^^Õ5ÓªWz‰€½n_VT»àãjgïv«Î᪠uŽy„ÿÿþo¦¼™òf W¼(ˆºu!ê‚úQ½(Þåï&Ï_Åû×iW®°¢úäøo³ì=¼ÖÔϪþVcö÷ô÷ô÷Lm‘Ú"µEa•³¨S¢~©s̢Ίú[Xå,î]â>¦~„ˆûdáFuÌù˜ó1çÕ?æ¹~­[7M©9hPÛb…UڱϻotèØ£^# óê³ïißÓ¾§Ÿ{>îù¸Â*gÑþm!uŽY´¯D[«°ÊY´3E›SýmZ~/ŠÑWýVubCô…E¿¸°¢ZŒ ˆñõ‰ñ1ÁuÕHC?‘†‘K¾”|)ù’w¢w¢w¢úÍ\÷÷uëVsÙb×q‚urò¸ Û”Ònãûé÷£\×ï>йÍrŸy /šWPÿØBBBMMM¹¾EÓãºë>®ÛgiŸ¥}–ª9ΙµæTٲѢý›æ™w¦ö/å2H»Qý¢æàZmLJ÷ðZm令±iÍÑê›ÕN«V;ã×ů‹_Çõ-šR*¦TL©ª~ä´ºVãŽY©?"<º6˼õe¿ÚÎqZ^+Êb»ouIiiÓ²¥[­Sê[íµµ×Ö^{þÜùsçÏq}‹¦—›_n~¹yDÖˆ¬YêGN³°j–•‚×´p[×4íÆª¾ŽÎíµœªiåV*ÂÇ»eË,ÿÎM¿¯SYýc«Øªb«Š­N¯=½öôZ®oÑôúÆë¯o„î ݺSýȱha6¬Bäï‹Ú&[=¼nÖ§sëýZNÕ8Þw;ztg·ñ­"C>m¾°î ÓtÂä„É }+mQ×D½Sÿ\D½u\Ôw-O ½ª¯£s{q÷+õMÜŽQÊ9}gúÎô3KÎ,9³¤úçRkgÅõåKþzÁµ¦e|ÂŒÞÝ[×Ôò»Ô‰C’Ü{O÷Ùi7yÄÊ×Ûø±Qaaa®oQ-ÚE¢¤þ¹ˆ6˜h‰¶™vK[´!E{R´-Õ?6ÑvíX~#Š&чýYõ#Gô—EßYô£µ<ïÅÔþ¥\‰¾¿PÿØÄ8ƒsàú€úHC?‘F;&vL옦k›®mºÖ4_¬›W;Yé䈉-~¯·î÷¯Úî¶:µ»Uçr6¡‘YÝZ´Z~"Úç½Ý–¨ÆÝþnu}ïàÎwm2VMo—ÝtéXÉvaýóö‰æëͦçï{ÍâÍâÍâ#GDŽˆ¡˜«˜«˜ËÕ„pá“ Ÿ\øÄ¡ŠC‡*ù‹.«.U¿­xØyëõ>_îÖ¶„Õ ]æž[l"{g¶sâWŸÇv뢶u»Ü*cß8¯¶¶kìÝþhúæ‡-nÐúÏZÅ«ô5ÕÀwÞx———ÇÕÄÿ†QÚÄ·‰oãæãæãæ“¿¸j4ÈìfÅb!Õ›¯¨¼lŠ«ŸeÖÎÏ=][dJ±ÞÇZyŸä“`·,*©ÛC»ÏÂgym·½6Ž]³ž¡ZMléêW{xUM¢z·ínÛݶÙñÙñÙñ\M×­¯[_·îâÖÅ­‹[þâªþ°Êþª l¶¼Î™¥{Ú„[.Ûþ¨SB‹ÃRSï9­¬N4÷ù×nî1ÓnïìLöôRØþ½~{r³C“ÇÚ o¸À½|sÕJjÕ[jo©½¥vÖœ¬9YLõŒÿIº’t%éJÏ—=_ö|™¿¸ª=¼âÃò-ý75]\Çrqr›–·ÅvÞ"4b™w—V%O|â³Çnê±¶>ߨ™ø¬‹£íé?;züÔ¼ÊÔwöý,Ì;­×¤Ú-M¢úÏË^þóræóÌç™Ïõ¹œE½uP“ó÷qO÷q¯÷ q÷qo÷qÏ÷Ÿü}¯¸ï‰{ þGõ½&÷šÜk2Ðw ï@ßüo€ å¼&[Í­½`Q—¾MŽoÝÒéÓvGÞy—oùðøyŸõvcŽõ1·«{àï.?ئüµÔ#§¹ÿôPO‹]ÖŸU}·&WyUت°Uaï¾|÷å»/õ¹œEI´—49_Ñfí7Ñ–í:ÑÆí=Ñöí@Ñ&íCÑVÌß÷Š6ªh¯ò[AôgEßV“¨ýkÑ×ýnÑýqÑ7ýtÑgýwÑ—ýúü}¯Oc \MÈÀÐOü´£èù[ñ·âï3›Îl:³É+Ò+Ò+ÒT/9™8™8™÷:îuÜ+§gNÏœž\:Èz©x©xyqêÅ©§öpïáÞÃ]?£ÚúõëR ©†T#»{v÷l¦ÃÅ\©t¥Ò•JýÃú‡õÓϨ¶˜k1×bîC8”U!«BV®T»>úúèë£÷î Ü«ŸQ]s]Íu5×í1ßc¾Ç<ó÷Ìß3çªAµ¤%IK’–|¿òû•߯ÔϨ®4¿ÒüJó·uÝÖu[×·Io“Þ&b9‹ú(ꦨ§úYÚâþ&îu†ÕwGß}wôøÎã;ïlªÇ6vÚØic§ô‡éÓb9‹¶“hG‰6•~–³h‹Šv)÷|¨&ú¹¢Ï+ú¿úÕbÜ@Œ!ˆñ®h‚0ô `@ñøÈã#¬n¸ºáê†uëÔ­S·NÁ7¾+ÔªP«B­%/ù{ÉßÉM“›&7åº@Ï<žy<óøcýëÿXßxMã5×VÇr¾Ó|§ùNw¬îXݱâº@Ï£žG=Úøj㫯¬Ó­Ó­Ó +ªg홵gÖž¤/’¾Hú‚ëM¼újè«¡Ûªl«²­Šƒ¥ƒ¥ƒeaEõôâÓ‹O/~=üzøõp® 4‘f•f•fµ»Úîj»«¹º¹º¹ºVTOj=©õ¤Ö Î Î ÎÆZڢΊú[Xå,î]â>&îiÆWÎ"½žžžÞÁ¾ƒ}ûÂ*íqÞã¼ÇyÇ­‹[·ÎX£Z´¯D[«ÐZM·N·NmNÑþäÞMˆ¾°èVT‹11> Æ ¸. ]$€¡ŸHyHé˜Ò1¥cÄàˆÁƒø!à‡€ë¬o°^óf·ùóæ FÜqcÄýŽû÷;>žóxÎc&T„ν(þ¢ø‹âGûíw´ß$ïIÞ“¼›thÒ¡IÍ£ºêÔªS«Nöù°Ï‡}¾·ÔÞR{K=œõpÖÃY”9tíåž—{^î9>æø˜ãc~œöã´§5»Ûìn³»ZxW,°R`¥À ó ó óçvžÛyîþˆû#î Ì¡k©]S»¦vý÷Ÿÿù÷Ÿ™kg®¹Öv¤íHÛ‘šGu9·rnåÜü-ý-ý-·MÝ6uÛÔ{mïµ½×–2‡®¥ÕN«VûÔÉS'Oœ½uöÖÙ[í_Ú¿´©­Am?+?+?«ÍÕ6WÛ\í¶â¶âv‘.mQ¯Eõ]Ô}ÍËYÜ‹Ä}IÜ£Äýªh–szô:éuþ;ÿßùÿÎÏûgÞ?óþqöwöwö×VT÷­Ý·vßÚ¶lزaKÒ†¤ IŠrT‹6˜h‰¶™h§i^΢Ý(Ú¢=)Ú–Ü·¡k¢¿,ú΢-úÔšGµèã‹þ¾èû‹qÊ€¢‰0 1é1é1éÑõ£ëG×ñññ¥L`èNÏ:=ëô¬èžÑ=£{Æ4ŒiÓ2¡;ÓòLË3-£gGÏŽž}òÝÉw'ß)n)n)nQ20\çož¿yþfôÁèƒÑOž>yúäéœ'9OržP20\—;\îp¹CôãèÇÑO®8¹âäŠlÓlÓlSJF»Ä½BÜ7Ä=DÜO(]¸ærÍåšË¿fÿšýkv2ädÈÉÌA™ƒ2Q2ZvKqKqK´ñD{O´ý(:Ñ}sÑO§L€:H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  F‚0 À`$H€‘  ÀÿkÏdù[ßã+`BL`€  0!€&0À„˜ÀÊÎMˆýêó%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/min.png000066400000000000000000000702511431412030200241610ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷ÜoÀIDATxÚìýyœOõÿ?þŸc7»¬‘Ò†,!$Bi³U’”Ò& ¥…¶WÊRI‰BEJ–"[IE©,Q´"û¾/c73ÏßÓ÷wÑçÙxkÁÌq½º\^—y=ç9Çý<š™§›sž1‘H$‰dp±J`€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB qJðßš“4'iNRÒ5I×$]“ik¦­™¶Ö˜[cn¹*WòˆäÉ#æî˜»c¶)mSÚ&\˜paÂ…çüvÎoçü¦>ðw­È¹"犜jm¨µ¡VÌÁ˜ƒ1/È}Aî rg›˜mb¶‰ê1‘H$‰(@Zv¼¼ãå/ÿòCÊ)Ó_›þÚô×&,°tÂÒu¹ÖåZ—ëß9×s¹žËõ\³Gš=Òì‘FK-m´´Zùjå«•/¼¹ðæÂ›U€°Z5pÕÀUgož½yöæ©{§îºw° Ã& û÷G>gü9ãÏͨkF]3ªÞŽz;êí8·ü¹åÏ-Ÿ³GÎ9{¨<ás0óÁÌ3ÿÒý—î¿tŸùÉÌOf~2ñü‰çO<Á >XðÁ¿?þå­.ouy«+ò\‘çŠ<¸èÀEʶ)Û¦l› rP9¨¬þé“àO¶Ù:dëÉý&÷›ÜïÙÎÏv~¶ó†îºoè~âgòø˜ÇÇ<>溫®»êº«J.q¸ÄaW€Œè×!¿ùuÈ;Þð΀W×½ºîÕu'~•»Wî^¹{ç‡;?Üùáúcë­?6g³œÍr6suÈXÕ=T÷PÝ™‘™‘™‘UVXåËá_ÿrø‰ŸÉ-3o™yËÌ[o½õÖ[o­8¿âüŠó]NM G¶LJœ”8)±VR­¤ZIêÃÉ"Nm«ƒÕÁê…Í6_ØüéYOÏzzÖgE?+úYÑô6Ír­Ëµ.×úÙ2Ï–y¶LÝu Ô-{sìͱ7»€¤7ûìs°ÏÄI'MœtϨ{FÝ3êpÅÃWLoól»§íž¶{:5êÔ¨S£Ò“KO.=Ùµ }Z?ký¬õ³ß0ø†Á7 Ø;`ésž/ xiÀK®mxmÃkæ,œ³pή§0é“8E}ßëû^ß÷j?£ýŒö3Ï[½àéO/}÷è»Gßýw›+K×lÍ㫟3ú³/+¾óŒ¬™‡'L/¼2®VΊñebÚŵÍ<2ø>r{¤zJ¥ÃW|+©öžÒ»Æ½5y}å}É+øµÉž¯–Üû}Ý6ÿg¦<3å™)í굫׮^¶Ùd;àšV`Ò'0p Ù³)fSLçqÇu÷ñmßöñmÇòªÂW•/ë¬ –_MÂÅ‹\3{›Ü•ŠÌÊüé5«ýÝv•H.¿î6î_øcç‰Õw¹¢ò×É{éø§/=}ééKGÕUsTÍòKË/-¿ÔUàDúò§/úò§&ušÔiRçØ_Õzÿeçèw]ýú“ó_Zó‘ó÷Ç'e¹8óêØöÿÕ¬–ŒX´ÿºÏóÍ¿gW±—ÎÓ}ôM5¶ßqxø±¼¶C«­:´ê–Ü-¹[rÎ!9‡äâ*pbÜ~pûÁí®pý€ë{Îï9¿ç1=T96w–îÙn,Ôõ²Ù­Ç·?§aõ§³_zZŽÓ_ù¯féy;Rg_Ýå§ýtùΛ¾ÿhÆ=ÛF}óÑõÇ~„‘÷¼oä}W\{ŵW\œœœïZ&`Ò'0v¹~Ìõc®oŸ©}¦ö™ŽåEîí¾­p·sG_ù`î1·ÄÞóà‰Ÿø²C_-ÛÓbÆÖ—ÎØòή1ëk^sôñg}8ëÃY»VïZ½kõ¸ qâ&¸ø»ûíî·»_—q]Æu7îçq?ûùèãë–¼à¶Ü—>RüæCÅÊÖ˜|Þ-ñ?œ„9Çím”4t蘉y6ÏîqÇÐkï8–W}ÿQüGñuV×Y]gµëÀñó}Ü÷qßÇÕ¯_?þXƪÔh×Uów«s[“ò™{æ¾8ß-'~Îûž[}þ’ç¶\4ý–ÑOìʽpͬÿ㟂ÕÙPgC C'}'­‘ÙGåý5Sõ«Ú<óbÑRÅß«œ={¿˜¯cnˆ©Ÿ~ֲ嗥yîþ¬ßl›—®?kQ™ýiþ¥@¡…:0}ñôÅÓ—(Y¢d‰’vÿ•¯-xmÁk—>|é×>|ô‘­J5ü´@ÙnÛoy³X‹« ßšuFúYšŇ+¥¼1©ñ¬C;Þo·£W±eO}|§ÄN‰¿÷ñ{¿7ÓK™^Êô’Ààâàâàâ—oùö—o²Ó“žìtôáŶݵK¯„ûªÌ»ô»Ø³|‘µ}úYÊáλ‡m`ËCÓ‹¹ëÖ™“?l{ôñã?ÿñøëV¯[½nu€ŒNLú$Bhy÷åÝ—w¯2¨Ê *ƒŽ>òê…½=mg¹·.Ù™ëÂŒ²ºõ,¾ÿ¾÷ãïºöÃä‡îŒ|–ÖÈIÝ&u›Ô­ÖCµªõ]À¿1rÙÈe#—Ý[õÞª÷VMkL•JåãsöòÁ#uÊ~\6±.Ù¶¥ÿu¥Žtˆ<ÿz³ñ]6e}äëWÛ¯®‘ÖÈóJŸWú¼ÒŸøøÄÇó6ÏÛòK«9iþ­cz|Ðノ¥;–îX:(” ÊÚdD`Ò'0*ó+ͯ4¿RƒU V5X•Ö˜s^õXî×ë鲼РYæè›’W™’òEäåycF¾µã…Y•^]¼5ÍÏ zÞÐó†ž×ü«æ_5ÿÊàoX¬Vô©Ö§ZŸjÏ&?›ülrZ‡]ôèü²3šM¾d{þ üOŽÖOÞzß¡<7?óÔò¥WÌÿí·ƒ{»¤5òÇ¥?.ýqiñÅ /`›pì¶Ü^p{ÁÙjd«‘mËž-{¶ì‰“ùŽ„˜‚ÛËäípËóݲ~Rð‚b×fÜõ&®úuļ1+v þ®ûдÆÜzÑ­ÝzQßÑ}G÷›;6wlnû€ŒELú$Bâ›Ç¾yì›Ç®|åÊW®|%­1×̶ßi ÎyqÍ\¡ú$¿Mq¿­:Ðräs·Þ°:͇XH< ù¦Ý7í¾i·ÝÀÿáýàýàýîÓºOë>mЃ>ôAôÓ†ø!K¦ië^~àœ X—‚d©’µovI¯$m´qÑcgŽ_æÛõêýPï‡z¥Æ•Wjœ-ÀÑm»eì–±gÞ~æígÞžÖ˜B9>ÒjPáYWn¹õ͘¶1bz†cíIWí¹vWâŠ+‡¬{4ëþZ«/\|eô˜fC› m6ôo,xcAì3±ÏÄ>cÏQ€IŸb•Èèt_Ð}A÷£G¿m—¿[¸ôá‹~SN*_*Û»íßüøÖ²Õò./Ñ%ó›Ñc:f꘩c¦}0èƒAö G×£]v=Ú¥ý^ûdýù ¿ãíf†*úM•/ÈÄu(Øbv‘Ê~þœò•ÒXé‹J_TúbÃÔ S7LµgHË®"»Šì*R>gùœås¦5¦Ô·½ùd¥"g\Uô¶3Âý¦Š›”ëƒ<ñg¬íRæåžºdD‹›¢Ç|ØîÃv¶ë»CºAÝ ®ðo€ leÍ•5WÖ¼tÐ¥ƒ.ý‹P3îÕl±1½ïn5å¬2³ó ,9>Ëïá®FöóÜ™i×-Eß©_úæRå.¼9ÇmÑcîè~G÷;ºUå«*_U±ˆ64÷ÐÜCs¿˜éÅL/fŠîírù #Š~}^·ee¹+s¦ØûÃ]‹óWêŸ;Ë×¾6ö¼÷ÒS!¾B|…ø=%÷”ÜSÒþàH‡Fyhdƒ+\ÙàÊ”V)­RZE)û¿Në_j’gmÅݵŸw5bzÆŽŒ-yÚØfÛï¾¥è¬f5ïž=fLï1½ÇôîÕ´WÓ^Mí€C dH{ïm¼·ñ¿]ðÛ¿E÷Æ•µnÌmw®ž°¸Ì¾E†ÇÝ|êT&Ó£Y ĜݬI¿íÅN+Õ«zÖ=¢Ç\³üšå×,_¹~åú•ëí%R}9ÿËù_Îïš©k¦®ý>pÍ5N‹bt»"%†#ƒ§‚r§NeιäôÜ9úÎ<ì™ó¿‰îMº:é꤫ol~có›GÞˆ¼yÃ^ ˆ‘ ÒyYçe—ý>î÷q¿ÿŇœÑáþùsçWæýsï=ÕÊSðžKnhqø´–-²tÈÝû|ç{<ßcüµã¯­­ðÏ€Œf_°/ØwwÉ»KÞæ}6·7îÂÓd;”{k¦wOÑoî)™y¯éûÏç/Ö/ßÆÓƒ,WG¹¸èÅE/.zè›Cßúƶ8•mη9ßæ|M4iФAtï-Ï^ñEÁWkuëÅ‹žÊU*ײDõì¿,2hÙ¹K£{¿zë«·¾zkÀØcŒµ£x·Ø»ÅÞ-6úÅÑ/Ž~1º·Lç{_ìäøªÔ¬³NéŸ~½øù¦c ¿ü×›wF÷ÞúÙ­ŸÝúÙ²o–}³Ì;V€¿M d06ü°á‡ '½7é½Iñ0Æ[Þµ½ÔÊOæk÷?µÊT/óؘB7¼8ø·•¢{ó%æKÌ×sxÏá=‡«À)êòàòàò{ߨûÆÞÑçßQ¶gŽú/üx_¥Ò ƒËƒšA^;ÿ×3–çl=æÜ§ž‰î}rö“³ŸœýSÑŸŠþTT­NM«;¬î°ºÃÝûïÞ÷þèÞâýoÌѵT®ÏËÅVüT­RÞßøŽ6mr·;¿ÕEE÷6jÚ¨i£¦IÛ“¶'mW+·©Nýpê‡ ½ßíýnïww6ÞÙxgc•ùgÀ@†±­Ò¶JÛ*ÝöËm¿ÜöKtïUÏõ|½èÓùž¾8k#µ:R¶Ã¹wdz·Mõ·§–ÊÝûòû/¿ÿòû‹.ZtÑ¢‹Ô àTóþ+ï¿òþ+ó™ÿÈüG¢{?Üöì²³ze默ïÕêH—ͪqVÞêt¹±Åi£{ío´¿Ñþ¤Ï“>Oú\­N!ßøÔOÝøTtgÂÙiøU¾¡Õ{_æÃþ¬Xp]p_Éñm^é6>ºsûá퇷Ümp·ÁÝ” Â*¥EJ‹”7Þvãm7Þ–ÚòÜÝÏÝýÜݧÏ>}öé³…ÁÿŒÈ0ºµèÖ¢[‹èö³j7x,¾À™ëŸ?B•ÒR°V¹¼Y \ò~ç5ûE÷6ßÒ|Kó-)óRæ¥ÌS+€SÁ®Ñ»Fï}gÕ;«ÞY5º÷£Ï×,_5ÿÐ<­2ß§Viy$ËÍ›Š•Ì·7w|\ž#Û÷ÇìÙóV“·š¼ÕD•NGN9qäÏå~.÷s¹èÞb¯Ërß(UJKl±¬#²½X®ÏCMŒî}ü½Çß{ü½õ#×\?R­ |>¹é“›>¹)­^að?üýJ €ôï×2¿–ùµÌûýÞï÷þ_„——Þ÷ДBÝUéX\Ðýº7óž£RÂìLwÙ¾më¶­Û¶N¼pâ…/T%€SÁ ‡_8üÂáèöë/½ô‰ü׉Tê‘Û;…ÿCÜ#™žŒÉ4éƒÚ”_ÝÛ5®k\׸]YweÝ•U­Âíàmo;xÛÍn®ps…èÞ²1÷]×ïŠØ\YÈÖ\­Ž.û¨bõËžU(kÃûZ=ÝÛ½z÷êÝ««„OÍ×j¾Vóµ‡?4ø¡ÁG) >vþZÈîo}ëû[G·7~äu‹<žmvü+™«Ò±ˆ¹:¶aL§æû^Ì_ì/þê¡mÞ¶yÛæM*œT8©°Z„ÕæN›;mî4 Ó€N:E÷öjØ>wÉ–ªtìξ¦t³×Ý•µéЗE÷¾ZûÕÚ¯ÖV%€p“mL¶1Ù¢Ûs'œ×ªæ9Ï/[ûü.ªtì Un´ÿÆ¿øé9¡Ú„jªý¾ù÷Í¿oV%“¼SóNÍ;µ[Ën-»µ\QcE5„ÁÿžH×–”\RrIÉÙgœýçÇ@‹©\T¾gÃäøóUéo¿¾ê¬­Ù:•ù¨öK9ûG÷N:uêÔ©ªV¯æz5׫¹¢ÛŸ¾çÎE%&ä¿+OÅÌ·©ÒßõpÁ6çÛøoG<·à¹‰£G'ŽV%€ð9ÜñpÇÃ;î<ºó_|Ÿ?íÖgt¸H•þ®Ø½YÎ˶·dpóKÝ£{{f홵§§k@h ƒÿ³ß©l& ={aÀ ^ÝÞ$Ûs{O»!æÁØçcS¥¦îØûÚ\ÝÞñüŽçw“øÌ{mßkû^ÛèÞÓ?«yfN}úWò—XeBÑ çíÍö§ÏÞUhW¡]…?ºøÑŪ@˜Lk4­Ñ´FÑí]k}ïiw朽F¦wUé߸㮦- oŠnsŽÎ9"{"{"{T Lž8뉳ž8+º½ðÈËo»)·úü13-Íôa±ñ-/ëübtïûùßÏÿ~~U€S‡0øïéÔç¹>Ïõù_< òâÕ¿)¸/6’鱘÷Téß«}WûNÊD·¿5ê­QoR€0éõZ¯×z½Ý~k×+)4O}þ½‚äyq£¾Õ«äÝÝ»´ÜÒrKË©@8l 6ƒ¥µ–ÖZZëÈö, .V%ëÌ‚W{P•þ½¼#.h|ÉKÑíÝu?ÔýPP=¨TW%8å~C0N è; ï€¾Ñíå¿nto|ý?Ÿäß?Ù3rí­ûV½Õ¯_ÍšK–ìxrõý‡Îù»ÇY}ëü+÷•žúÛSWoúÆÍÍ ¬˜ûòàK-­2¤æÕƒ—}þþ´åÖ ˜óÝðÛ†$í;˜˜rÜ?/ð´+*¬ÍþUtû 6ƒÚ j“Ò=¥{Jw» £Û>dûíC–®[ºnéº#ÛËY"!Û§(øk–Ìq]¯Lÿ ÿÆY Îûû5k¯Ø?9=̪Só–E‹þÅÝ`c÷ŽÝ;v¯ÝŸæù4ϧy¢Û‹¾j×m»Òà S^Hêt¨øæÓZª¸|Ï+ãük½ÿ½Øºõow=㪷—ÌíóÂï­ü`èÅOØÓþ÷‡®NŸuδ4{LÎ7rç;ïÆšU¢{WXu`Õ»NeÂà´€tgßî}»÷íž¿wþÞùúKÒ£ò ÊôB®y^‰Û~âgõÅ-/VÜüà¦÷~»ô`ÍÔ–7ó´üvåøczñ Aõ`ÉôZÏMÜÔþƒóïݾvÚ¯S>ÞšXgw¥ åçMÚw012zïu[ßJ.¾æ§ö_öõ—C^ÝVïåÁ—4ú½ÊÆY¿|t`ëq|;= îɘßϯpÍò<ñ—+¿]ùíÊoíI€Œnv©Ù¥f—Šnàà{O;”!—”'hÌÓïÓïÒßçÿUYUþûœOF·?¿ûùÝÏïæóƒùö$@F78ßà|ƒóE·Ç_qæôʉ'wn.ÜØuÕ Kêöüµ]×›'x³ÐžåKf~?öpÿ+7oŽT:|åÁ²mX½òõÝg.º`ÖÛËÛ8еÝê’oß»w°(¸/hÞªÂÅ MsF·O¯:½êôªv#J|$0î,~uñ«‹_n¯š£õ¯ 7œøùüzö'“w·[ÔâÃ^»ºü³#Ìüö7Û+y„øÍEǨðs ¥Üøî°z%k\ûãÀ|Å]tËó?¥qαERGŽšÛ®÷êííy8ùõã·Æ³s\>"~\tûWg|uÆWgØ“ݸîãºû‹':Ô-}Áí¹/Í`‹É4æö7üʵm~úvùûÒÝ;š¬•2~iýªÃóT>²=’Iˆ$l_°}Áöö$@Æuà‰Oxâ—¿ìüeç‘í™'æÛ_øœLÅsÌÏõÎÉš[dDä÷Hï5íF.x~Ü¡,ÛÏÞ89x>fJlµ„/jìºüÌ=Ûäz$(·»k×W+–îpgŧgç-YyA½^A…àå`úÎIó‡þù¢ SLØôVóJÕ,ÿ±ôÛ/½ýÒÛ/Ù“@4a°HwfíšµkÖ_<2«T­êOçl"g²mÒŠ¦ûO¿®O™MÅÿÙ’ÚšYðÝΑ¥¶ÿñyºùö”º>KÒÍ7ŽØ[ªäçY_øesl‘9g÷ʶ½ä›U&çXYã´Û¶çŸxhêÞl)³õν&ö·ÔW½2½á—Ëê¿•¼¼Ü™Y‹D·Ox{ÂÛÞ¶'2°6A› ÍØcWŒ]ÝYø¹|²4OÏÓßÜaÇu‡×¿×ù³†[»ñïKÌk=ëÁ<%:µþÀ+k±§O½v‰åúæþêÜÛj$î\½ òÝ ÞréM-W¦ŽÏÒ²ÀᢳÒ[Í3=“m[Žšqyr}—÷G¶/*¹¨ä¢’Iõ’ê%Õ³3€´œša°Hw>nÿqûÿ"èÍû^±V™kž˜9ºHJÕ‰ ºÕÝÐðpÞ·EZW}ºõ{ OýÝã¬Þþ]½‡tÛ]"¥|jK­ wWÉ¿>5нÿþo¿=óÌèW¥¶ùª¢eÎ]‘íÖã·Þ¬KsÈô?º¾ÈñEŽ/rƒ‚AA; #J›86qltûÏ]Ô<ï¯1gƬê§çùrßì9;sßõVŸ`y«— ³áñå•Ö}u°Lú¯|•åSr½Ý>§áœ†sÚ™×·¾½ð/þ™lÎWÎèQñ$¿oÚ¿{íƒK+¥~79÷oùÏHx¯ZÏŸ¦¶T¨Ð¿ÿ§Ÿ9>µ%\í]W_Úrè×­ƒ6X´¨S§†éî§UÞ/«-jP:º}s÷ÍÝ7w·3€cúâ” ƒÀ@ºóMÅo*~S1º=óÙîŠ}ýÄÌaZr¯9›ÞÛžkÕ{‡âŠÝZqnöҵ˶?\ ×ß=ÎîB¦&ÝtdKÉ7«Nα"­è÷H­¾zc|‰?>ýwk½å}vèׯfÍ%KŽË‚ åƒlgd¹xu®¿ø¹°7çÞœ{sÚ™ц„ ¢Ûë=Yùá<Òÿü+¯8+sΆÿÛ{©â›£ÿ7=Ïü´Åjfù5º}ÖÿfýoÖÿìL€ŒkÞøyãçnÏúhÁ{‹µ<¹s;ˆå?¾ÿÍ™Sû?»eCL«Øƒ®¼óéaEË ùæªï—:–{v£qcÝs•¼ì¦Çú™ÓðýG–^{ì¯ýáÐçíLIýºdÏ å8ÿxW ᥳôŒnߺyëæ­›íC€ŒhÍ¢5‹Ö,Šn/úUþ¶Y«ÏqôRÐ%8½lÉbݳî8²ùЮC»íR€ŒkQþEùånYžiz¦ÞéyæKnn²6˾WV7[òñî•?uûvàÚíczö[»þóq½zIê˜Â'Ü\;}Î?n~®Cyîn_^gyåuìL࿎0X dñw¾-îáãwüýÝv•H.?iÒ£?lx9åËä‚A½Úî®\`ýû—uh³¶ã?‹~Órô£EF§ŒŠ¼0ó㗟ݲqeo¿ßW óÎlÃbF^¸ôæ¸|‰ÿíL¢åˆäëšéºèöíxhÇCö!@F´aˆ-¶üÅÏÖ9gf*¦>Ç[ÙRÅͶSÂ-KÑü5‹Ì 2y‚üéyžËÿ7èöGü^ç…’^X¹ûõ}OLؾöÛÍSoy ®æµ%µ¾þÁyù¯¸hÌ­å¾á/vw–2Ù6E·¯¾vøÚáö!pˆû0Ï=ÞovÖÂÊyÓÛù²`a|\÷¯î:´ñö³VuÓv_û‡¢K3ïlÜõÉvEj÷‹©»$¸?ø68žùïŽ'Wß蜯~”yëžß«ÌørOÔö|KJoÌÒøò›ï_dΨüížYåxßûûG?É”)A\lׄügkÞØ¡Á#A\,8ÞçJHhØpîÜcúɸãÓO/¼0LuÎòVæJ1Ow¿“¯˜™É2+x0x3(˜žçyömO^ýÎy‘Sâ’çî¶ûÓ탼¿îóåe·>;㉱ßïY¾dæ÷cW”}õ’‡¯+[æ¾/úý˜3WÙEçoLG ¨|gÙs@FÓ Ò Ò r"ÏèÐ@òÂáO‚Šÿí1×wøé†ýݾ]?,ß¶«ÿ¸×ö‚Þ3Š~úÊô†_.«{ü×ä&IWGNû¶ßo[òÖŒÖÝW¾ú{•_õ­øæ±Ï×ÉqOß­Út}»]©…£æ¶ë½zû‰‰~ÿ¨óeÉÉAGû à”øÙº3¥]ÐGŽ·C·þ!ò”:„[ä•Ã}ÕÎ(³ù$¶q¦ÝY.ÉÛ¯à¹_9÷‡êÕS£ßøgPíóÔ1Ë–¿\ïþóÓÝÔgEl7 Cš3=fz̉<ãI»xRâ¤ÄI‰.9íGdáÀˆÄrÉ}ƒÁ®àµÿê,;v¯®u¸YP6Ò)È›"Á;AÛ`õw÷ëW³æ’%Çrœ#GÞ]jò—e&çh‘/s\—¿:ãšZ‡šM¨òàµë{nϵê©Cq1Å2• &VÛwÓý £/qËwùN{e_îˬvF›oóyÿýß>v¢¢ßT‡'’ú× lªÔS¥ž*Uå§*?UùÉþÈXÞyâ'ÞybÌ‹c^óâ‘í›þ*åñ ®Ë4çxÏa^73Ÿ¿å˜‡_¦úom´«ÿá烯‚œ¾Ø»!€0½cMš—øÅŽAÁà†Œ¹¢ÔOü]4»Óµ ë§¶ÄzÞ‹uêÔ0!ý|päŒä+’ž æ#‚†G¶×]wtÝÑ^õàU^e~7软÷¾ÞûÎO>?ùüdõ “ćN|ø£>õù¨ÏèÜ£sÎ},¯jµ»ÕîV»k¾V󵚯Í‚fA³3Û“×Jª•T+ÉvþBÔ§#$¾¾iXÒ³A• EúþÔ„Á«®¼xù•÷ÿï=»»*­/w8ïû;îݾö“=¹6¿——«¡q•®ü¸Çˆ¢Š=V16û¡~ýjö[²äDÞïm_Ìö¾ÉïApÇŸÛk¬=°öÀʵ+×®\ÛöÈX–ä[’oI¾1Á˜`ÌŸß´\²·nòº‚Ûò™ûÎø¨ø”ìWžšõ_¶jmÏyƒ èåÝ@xß±Ú°íÛyƒÆÁ˜ s'Èâ'•tëÞWv_öK—îKZ¤¤¶[ÛrS—¶ù¯¸hÌ­éçuûÏPç÷Ùý~îøUÊ ‡;.4:§§Â§ä>´ü@áèö ]0è‚A~¶~~7H~ýl ‡w6ÞÙxPÛAmµMý4ß w;ø?¢ß‡?4ø¡Á퇷Þ~xÞ©y§æzâgî3€ `ËK×ÜT ‚ÿ..wcÝs•yð™3»Ÿ=´ïÒ<Ï÷½ga¤Òá+ŽXô:ù?»¸fÓ=¹¾)W¬Ò’Ì“óüšÿŒ¤_WìÈ·¯Æªó»xkÇ/ÛOhš2å@ç½{S?ý·Àõžº6‘7¯êÛ§é§ò{ó,ëñcÏ n ÚÙ^ú`郥Ú™Àß¾Ð÷H` ݹ|Ðåƒ.ôMðMðÍŸ¿_¿nôáo ö.ûxÖ ³–O®ºÿÐ9AL‚Ýv—H)ŸÚ>ã–—*nyðï­òý-¿M8.w ,·'[rê_^œ{d{½}õöÕÛ ÞNdHñ-â[Ä·&“‚IG¶Oyè›q;ÏŽÔ<ì‰93f}P_­þ[ó×ü»ç ‚àÆ#Û«ZýÓ꟦Ï7‡‹Š7W¼¹âÍAö {ýÈö½~bá–œÁégŸSüdÍ-[ÇÂw—¬YtøÊƒ]cŸÍ–’£IÊÃb÷MØvé—ߎŸ¹-ø2Ÿ:pÃ/˜Ì &Ó‚9A=wñçÏø¾ÄòÖ×?ôþ/]º—j‘R¡Bÿ å¿Á΋çU˜¾2º½P¯B½ õ  ÿ¿Ç_¤ùE¨Cß#źØ@zS;Oí<µÿâŸL¯úzÎã{e°'W®{åð¬ô?Ï-/]rpct{“››ÜÜäf{ ŒF´8½Åé-NîÜôÐöWS¤ãá½ ÓßÞÖ7ºýìÝgï>{·úd\¥*õP©‡¢Û·=ôÍ‹“‡§‡V¨Ð¿ÿ§Ÿ¦F¿…5ª~ã Ù&»«ìõ™êçhIÌ[™Ëfžun‘¾¥Æä~¿BZo—¸þ¦î7(·ûÁ®ƒ*-9ðl©;ïL=Bú©yòcòïû6iמª;ÿ÷§•®®°ºÂê¸/⾈ûÂÎÒ’úö~·÷»½ß=}öé³OŸýÜÝÏÝýÜÝGUj転Ɗ+jtkÙ­e·–y§æšwjFYuL$‰D".?~ìÛ½o÷¾ÝÅJ+U¬Ô‘í9Få”é…»¿›\©ìUúo}:½wáM›~\ôQ™]»ŽlŸ_i~¥ù•Ê|Qæ‹2ÞNd`S>žòñ”[·jݪu«#Û—z8K™[ZþÐ`r_Ué¿rð‡ÃmSÚ©wźïîùÓ[¯1;bvlŸ¿}þöùA• JPE­2®Z§×:½Öé¿ìüeç/;l?7_ïYÎT<Çü\龜y.ZÔ©SÃ?î‹M+ÖM“ÞBß#%¾²xÉ‚§WÔyõ•‡¿<²½oó¾Íû6o7´ÝÐvCíIN–„„„„„„#[&%NJœ”X+©VR­$õ9Yþt§ï1Ľ©þt§o†Š{£¹HwräΑ;Gî*9«ä¬’óÈö}7noŸüÀžj[;$åS¥ÿJrǤ§"gDG¿©J×,]³tMUÈèj¬ª±ªÆªèö²ŽÊ¹>‹úü·æ—ú킽OE·?˜ûÁÜæý„ÃÝÛïÞ~÷öèöÄ)K,ˆO?óLuî¦çè7Õ¶&_î¿7º½Áw ¾kðݤ:5ïôM‹H§:víØµc×èößjM˜ø¹úüWÖOYT|èöö#Úh?"¶Wl¯Ø^ªÑå»+ß]ùî*W¬\±rÅŽl_ºdÍŽ¯¯o³åìC‡Ué¿ÒÜ»6,Žno‘³EÎ9Õ îj¸«á_ü#Ú›&å–G}þ+ÉåöGöÞ¾{ûO£¾Ý[*[©l¥²©œÊ„¾iéTý=õ÷ÔßÝþeÉmÉ‘“üLäzUú÷f Ôëòèö[n¼åÆ[nT€0é~g÷;»ßÝþfßÉ}6WSŸoË ;k>kZ×9ówæî-·´ÜÒrKU ŠE‚"A¹¯Ë}]îë#Û5Ù²iÝüƒu·LY÷¼*ý{;Û|?uFçèö^Yzeé•%˜Ì 樜r¿!}H§â‹,þ±ë‡_?üúáѽ+.ývÉÞBªôoìØ¶¦ò¡&ý”óÀëG¶çÙœgsžÍgõ<«çY=U LMk4­Ñ´èö¾åG\ÿÚÞûg'·T¥ãõ!ãßÝT8ºý¥}/í{i_L®˜\1¹T Lz,Ç_<õaS뇽³[}þH‘ärÉÍÖ5}÷“—ºD÷^·íºm×mS%8u}ÿ.0®=ÐñŽtŒnŸp࡜ëÇDžOy0òŒ*ý33[¼C•þ™çïÎtðù-#o_ß7º·ùðæÃ›W%€ð¹ôóK?¿ô/>¢hgïŠMŸ}¨Áö­›Æ«Ò?³kÚK¾ÜÝÞteÓ•MWH*T I• Ü„¾ÿ†H×Î\}æê3W׸·Æ½5îýSGóÈÁ7¿=úi¦ÄUéïÚP#±Còݪt,"S>ô—£Ë¶uã¢{‡ï¾søÎ¸Mq›â6©@Xê_¨¡þûwìß±to÷Oí^ý®*»_?Zùá¾÷‡ßnÓ'ѽ÷̺gÖ=³T Ün8pÃD·ïÞñÓèo¿ßûã²Y?¾¨JÇnó‚iÙGýÅOÏ&óšÌk2ïŒBg:ÃB@¨}0œ½üìåg/¿îþëî¿îþèÞÏ^~îŠÍ½TéX|ßëý[wþºï‡5’ÿô¹¿ù ä/¿ÀÕs¯ž{õ\U8<ùÌdŽnï³Ïzl{ú«˜žØ¢JG—Ô'ù©HòU×>0ⷠѽ}“ú&õMÊs0ÏÁ<îR¹¬Ã²Ë:ìíEo/z{Qtï²ÈËïß?%eÏ¡ŒS«£ÛãºÏ—-Þ|ðÓ—G?ÝÛkN¯9½æ¨„Ï·w~{ç·w }ÿ[` Ãè=¶÷ØÞc£ÛÏšþLâÖ%E>ÿ)±*¥eË×KwÜ:㺗Jlù‹}\ÁqÇŒ­[-¶šZœ ò´ÊÓ*O«×¾{í»×¾‹î½&ïƒßþöݶv»F~Y­ÒÒçÐÛ…×­ÞžswbÒ®#Û³G²G²Gn™pË„[&¨À©ãêÖW·¾ºõ¹KÏ]zîÒèÞuYß?ôòª”–”uÛè²ô‘ç&Ü}otïÓ×?}ýÓןÖú´Ö§µV+ŸËÞ¹ìËÞI«WèûÏ€ #ÿùÈÿðs†3ìœèÞI=zdžǷU\qÖÁiju¤™w'$·1çæÆ«¶G÷ÞwÝ}×Ýw]…o*|SÁgSœr®ëp]‡ë:TéS¥O•>ѽÍò?\vq÷äŽÉU#¨Õ‘>©={ñÎ9/¼8jìú-ѽӲOË>-{\ý¸úqõÕ àòeðeðå¨'G=9êÉèοÎÝøiííætûäv¥ú“uÁûÁË«›Žèлitg¾Ìù2çË|wï»{ßÝ[© ¬bÇÆŽ;jبa£†¥¶}ÿ½˜H$‰DÈ0öû‚}mº´éҦˤ÷&½7é½è!w'N~°Ì¨Oæk÷¿S¹TÉ_nÙaztï[O©·åžgF¿9eí†S¹JKß]3gÿKiE¿un©sK[:¶èØ¢c ; €–ëZ®k¹®U—V]Zu‰î]þÒÀ.]ƒ}uVÕ^|JÿÔØzö—Ž¿!­è÷ÍKß¼ôÍKE¿ÿŒÈrNÍ95çÔïË_þûòѽI‹ÎŒ {­d“³–çØ·aGÛ¤·OÊ$÷<´5òë‡îÏ·nýªîsî{"zÌGe>*óQ™Ò§•>­ôiö©.®rq•‹«ôMî›Ü79º÷…FÍ^ŸØ£ÕÐkn ZOKOÊü2cÅî}]/¼û¶Ç~ü‹¿€Ž›71nâ¨q£Æs{Ìí1ì @Ä1AÌKe_*ûRÙ3šŸÑüŒæÑC~¥_•{wïm¾üºŸžjåÙòêŒ1c3¯wì¡W¶E÷>øÄƒO<øDÓš~Ðô[ àŸXéoK[úÛÏÚÖþ³öѽI÷H‰t<úŠÅËkl¿wuÓCg„»ûÏßõZrž·6ÜôùÊ·W-ûö¾aÑc^ïõz¯×{Õ™_g~ùöÑÚín·»Ýî.É]’»üE üâÇcÚl¸ûŽj½×,ËrhÈáä”~á®Æ—Û~è´ûP­fw¶øéú´Æ,J\”¸(1×ê\«s­¶8R–ÖYZgi=}òôÉÓ'ÇŽŽ;:z̲ÿõ?­ó„]Åæžõ`¸«y4¥uÊêõ->Ì7ø­ µ?üvð%ÑcnèvC·ºuß}|÷ñöÀ¿!2¼Ê½*÷ªÜkr‡É&wHkÌð2-7­œò{ë/¿ÝS2|Ø÷Ûª-Ýzù›Ëæí,³æÅ÷F< y@òµí¯mm{{€£{bèCŸÚþÚö×¶¿6º÷ƒ§>_³mÓ 7YTwÝ‹[ú ×?*Úì’^Ù2¶ÆÆMÎxð—ß~Hkàõ~¨÷C½¢‹6.ÚØž -y6æÙ˜gão{ÛûÛ޴Ƭš2ìÖ§~Øøû¤ Ã~ ,Š<¦ $]µçÚ]‰¿qù}E¶>9£ÍØw¢Ç4Úlh³¡¯ì~e÷+»ƒ™ÁÌ`¦ðoÄD"‘H$¢@8̯4¿ÒüJ V5XÕ`UZcÎ]xÕc¹_¯7¦ËòB/d9˜£clJF\idJÊ‘—çùÖŽfUzuñÖOÓ9ô¼¡ç =¯ùWÍ¿jþ•Àß°"X¬èS­Oµ>ÕžM~6ùÙä´»èÑùeg4›|ÉöüeÜ実¼õ¾Cyn~æ©åK¯˜ÿÛo÷vIkäK\úãÒâŠ(^À6àØm/¸½àö‚5²ÕÈV#Û–=[ölÙ=&ó 1·—ÉÛá–ç»eý¤àŮ͸ëM\õëˆycVìü]÷¡i¹õ¢[/ºõ¢¾£ûŽî;:6wlîØÜö KBBBBB‘-“'%NJ¬•T+©V’úp²€ZÞ}y÷åÝ« ª2¨Ê £¼zaï_OÛYî­Kvæº0£¬n}ã‹ï¿ïýø{§®ý0¹Æ¡;#Ÿ¥5rR·IÝ&u«õP­‡j=dWðoŒ\6rÙÈe÷V½·ê½UÓS¥Rùøœý‡|ðH²—Í_¬K¶mé])‡#"Ï¿Þl|—MYùúÕö«k¤5ò¼Òç•>¯ôÄÇ'>>ññ¼Íó6ÏÛÜ®àŸÙÉþKö_r󶛷ݼmúÚék§¯Mkdá–ûß¼ªÐȵnHŽ©÷uæeéu‡¿Ýùì–Yk¼ûBÿ‰üÒjNšëØãƒôø c鎥;–Êeƒ²ö‘˜ôI „Vb›Ä6‰mÚåm—·]ÞOßùôOßIkdöQyÍTýª6ϼX´Tñ÷*gÏÞ/æë˜bê§Ÿµlùeižƒ»?ëß7Ûæ¥ëÏZTf|Z# (t Ðé‹§/ž¾¸DÉ%K”´ø¯,xmÁk ^»ôáK¾ôá£lUªá§ÊvÛ~Ë›ÅZ”X]øÖ¬3ÒÏ*->\)åIgÚñ~»½Š-{úèã;%vJì”øø½ßûø½™^ÊôR¦—ìþ¿|ûË·¿|û“žìôd§£/¶í†¬]z%ÜWeÞ¥ßÅþ˜å‹¬éèÃ}wÞ=lû[š^|Ìý[·ÎœüaÛ£ÿñøÇ\·zÝêu«Ûdt`Ò'0v¹~Ìõc®oŸ©}¦ö™ŽåEîí¾­p·sG_ù`î1·ÄÞóà‰Ÿø²C_-ÛÓbÆÖ—ÎØòή1ëk^sôñg}8ëÃY»VïZ½kõ¸ qâ&¸ø»ûíî·»_—q]Æu7îçq?ûùèãë–¼à¶Ü—>RüæCÅÊÖ˜|Þ-ñ?œ„9Çím”4t蘉y6ÏîqÇÐkï8–W}ÿQüGñuV×Y]gµëÀñó}Ü÷qßÇÕ¯_?þXƪÔh×Uów«s[“ò™{æ¾8ß-'~Îûž[}þ’ç¶\4ý–ÑOìʽpͬ:G_gC u6 òBJ÷à™CùöŽJɲ÷—m=’.ßöÃÊú‡v®kñÃøýßl™¹tÓÁ-û÷À˜1Ç”SzLéF—5º¬ÑeÁž`O°Ç5àd9üÆá7¿1zÛèm£·uêÓ©O§>ÿì85[·"~ï…™Ïm«ZÙ³‹õȶ«à³yóŽ“ãÜl{2]óAl“àÖCOÚé³³äžIí×ÜœïÐû? YVßÏžû.Ø•´ãæÄªIq÷¼_oüzã×{êu¨×¡Ò7–¾±ô®)'׆¥–nXúô‚§<½`ôÝ£ï}÷ß=Bl®,]³5¯~Îè ?ξ¬øÎ3²fž0½ðʸZ9+Æ—‰i×6óÈàûÈí‘ê)•_qð­¤Ú{JïhôÖäõ•÷%¯|à×&{¾Zrï÷uÿÙüŸ™òÌ”g¦´«×®^»zÙd;í€k @X €IŸÀÀ©mu°:X½°ùÂæ ›?=ëéYOÏú¬ègE?+šÞ¦Y®u¹ÖåZ?[æÙ2Ï–©[ nºbo޽9öf€ôæ`Ÿƒ}ö™8i⤉“îuϨ{F®x¸âáŠémžm÷´ÝÓvO§FujTzréÉ¥'»v¤Oëg­Ÿµ~Öàß0ø†{ì°7}Îó¥/ xiÀµ ¯mxmÜ…sÎYصàT &}üÉÖ![‡l2¹ßä~“û=ÛùÙÎÏvÞÐ}C÷ ÝOüLóø˜ÇÇ\wÕuW]wU‰Ã%—8ìêý:ä×!¿ygÀ;ÞðêºW×½ºîÄÏ¡r÷ÊÝ+wïüpç‡;?\lý±õÇæl–³YÎf®Ë¡º‡êª;323232°ÊÀ*«|9üËá_?ñ3¹eæ-3o™yë­·Þzë­çWœ_q¾«À©ILú$ø?ìxyÇË;^þ!凔R¦¿6ýµé¯MX:aé„¥ër­Ëµ.׿9r®çr=—ë¹f4{¤Ù#–6ZÚhiµòÕÊW+_xsáÍ…7«<aµjફÎÞ<{óìÍS÷NÝ;uï„a†Möï|ÎøsÆŸ3þšQ׌ºfT½õvÔÛqnùsËŸ[>gœ=röPyÂç`惙fþ¥û/Ýé>󓙟ÌüdâùÏŸxþ‚|°àƒüË[]ÞêòVWä¹"Ïy.:pÑ‹”mS¶MÙ6Aå rPYýÒ'0ÀlNÒœ¤9II×$]“tM¦­™¶fÚZcn¹5æª ü]É#’G$˜»c;RÚ¦´Mi›paÂ… žóÛ9¿ó›úÀßµ"犜+rn¨µ¡Ö†Z1cƼ ÷¹/Èmb¶‰Ù&ª@8€B"V ÂA `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!!‰¸y²¯ã¾Žû:îªø«â¯ŠWzàT0)qRâ¤ÄZIµ’j%ïs¹ $À!—&‘zËs¤)A$ˆ‘HJ$%òÇ×G¶Ó×ÿìU'þÈæyüŽlþéó,ÿ⌑H$ ùC;“ôS‡ô?«Œ5Ó4óÿà»Á©s-TÃUé×ÿꂯ}ýß~­'ðëcú@ŬÈÌ3ú ÓÏOüSíê8£³œÈ³¿ÿÒ3J5NÍy†ûhá›Ïû›ü¿ÿ/=ÃÖäÚf×6»¶Ù)§ª•R+¥VÊŸšb‚˜ &ˆ bÝ© ÁŸ¾d 2™”|7ðÝNQÞ)€ßü~âaú/ÝOvð3=D¾Žû:îë¸ >ˆâOÞ›'BA `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $â”ÒêݱcÇŽ;T €ôÏÀ!! 0@H€B"N àú—®éú—Ô€ŒN Á[†Ü2äu £óh€„„ $|0À)mÎcs›óXt{õgª?Sý™èö…™fZ˜éÍBoz³Ðq?Äý·nôºÑëF'þ”øSâOE.úpчKÅ—Š/ßⳟµø¬Åüó[ÌÏqcŽsÜxô™l꾩û¦îü°à‡§¼?åý)ï¯ùfÍ7k¾ÙÜas‡Í"y"y"yò­Ì·2ßÊ Å*«PìÒ—.¸tA«v­Úµjw,ÇOÏUݽf÷šÝkÞÞøöÆ·7No6½Ùôfk¾^óõš¯×M]7uÝÔìd$û#…{îU¸W§k<]ãé&9šäh’£Þ²zËê-³‡8RL$‰D"'æd_Ç}÷uÜUñWÅ_dû¤ÄI‰“k%ÕJª•ä’œH Ñí;vìØ±cGê×;óîÌ»3ïí3nŸqûŒÏê}Vï³zÇ~üÔØ25Ü=ò˜©"%#%#%~6ð³Ÿ=½ôé¥O/=Üúpëíýøùæ[˜oáöŠÛ+n¯}ü_‡èjüWUM5pÞÀyçõy©ÏK}^Ú;eSŽý,U'TPuÂwM¾kò]“³vþ+é!u0iúýšß¯ùýšks_›ûÚܫ꭪·ªÞß=Bjô›½}ööÙÛ§Æ¢©QåÁn»ìvÊVܰbFføg3L~cvÅìŠÙuäñÓsUScï‡Þzè­‡Þz£ùÍßhþÏŽ“ýæääd”µp¼ù `þBêC‰[h9 å€U‰«W%þ›£í´ÐþAeg–YvfjTyËi·œvËiÿ&ú=Rê¢v&ìLØyô{yÓƒ¿÷ø½Çïÿ&ú=ÒΘ1;cÎêyVϳz¦ÿµp¼ €ø w̸cÆ3–WZ^iy¥?Þ@þûcìwýï®ÿÝõ¿¯=øëÁë{­ïµ¾×WS¾šòÕ”'³<™åÉ,™Gf™ydZÇ\VwYÝeuO»á´N»á“'>yâ“'Žì­]£vÚ5F=?êùQÏ/+¹¬ä²’+w®Ü¹rçGß|ôÍGß´nغaë†GŸó޼;òîÈÛë…^/ôz!}F¡³ûÎî;»oÿƒýö?xd{Å\sUÌõfÜ›qoÆýÖþ·ö¿µ_µhÕ¢U‹&N8uâÔ›.¼é›.<ú‘?ºøÑÅz|Ðヷ{Ne À_˜vß´û¦Ý—úu–W³¼šåÕÑ׌¾fô5õÔ_PÁ‘#ÏKý³é¼MçmªÑ·Fß}ƒÆiyý˜õcÖ9²%5<î<µóÔÎS£e\'õÏ{uÞ«ó^ÍOk~ZóÓ{¯¿÷ú{¯OëøŸUþ¬òg•ÓgUïzë®·îz+Ò3Ò3Ò3µ¥åS-ŸjùÔ€9æ ˜ShJ¡)…¦ì赣׎^©½µKÔ.Q»DíOjRû“ês«Ï­>·ãe/ëxYZÇÿhÃG>ÚÐ>¡}B{ƒ8E¹€ÿã—>z飗¶XÑbE‹GY£k®5º6û½ÙïÍ~?–#ß’í–l·d뼩ó¦Î›R[Ž[¦Þ\çì:g×9;­1?üóÇ?œ>ãÏÕkW¯]½6õë*3ªÌ¨2cà´ÓNû#ú=êœSï¾ø´‹O»ø´´Æ,ܳpÏÂ=¢_€S™€4îU¸Wá^w»sØÃŽ=V¼©áM oú?×^üyñç=Võ±ªUý»kN} uZ½ÛKm/µ½Tú¯mïz¿Ðû…‚_üºà×Ç^Û£¯}óM›oÚ|“} p*¦»^¼ëÅ»^,úlÑg‹>{ì¯:}Çé;Nÿ?âÌ;Þ¼ãÍ;Þ,7«Ü¬r³þî«gŽ8sÄ™#Òê=tÏ¡{Ý“ž«Z)¹Rr¥äjoW{»ÚÛwíg ¦êŒª3ªÎøg³*_*¾T|Æ­ê•®lte£¿{ßs8ÖÀñ& Mg|tÆGg|ôwïRÍ<2óÈÌ#>æìÏ~ðìÿÙ§Õfy5Ë«Y^ÍÀUyÆÌ3fþ³×ÆMŠ›7ÉÎ -`ÒT⢕¸èxùT¾“µXãb‹5þgá7€4ŬŽY³:c9ý+vE±+Š]awp<€à„*Ò³HÏ"=Õ€ãA 'ö­ø±?Æþ¨—wJ`€„„ $À!! 0@H€BB `€„„ $À!!‰8%8•íØ±cÇŽëÈÇãøéùh'þød\î 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!!‰¸ô0‰È—‘/#_ÎúfÖ7³¾ù?†Æ1AÌI˜¢ó†õ¼*ì¼Îë¼¾S9¯ó:¯ó:¯•:¯ó:¯ó:¯•:¯ó:¯ó:¯ŸDΛÎΣÎá=ïq–.૯¼úÊ«¯ €¼AÞ ¯2ðÏx4@HœÐ¸VR­¤ZIŠp<œÐG@omºµéÖ¦'Mœ4qÒq9'û[©•:¯•Z©•:¯•Z©•:¯•Z©•ª°•Z© [©•ª°•Z©óZi¨Ï{>!Ø^ú×κ묻κë-"‰D"‘€ Îg„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB Û{ÃßþÞðnxà†nHýzÕÞU{WíUN®˜H$‰DŽ]BBBBB‘-“'%NJ¬•T+©V’úp²¸ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€ˆ‰D"‘HD!8•míºµëÖ® Ö.X»`í´¦ÓšNk:~Ëø-ã·l{bÛÛžø7GÎß#ü=šlZ°iÁFão4¾rñÊÅ+/з@ß}Užÿ–€SÎÆslÌñáêW¸º×Ð^C{ ÝÓgOŸ=}När=’ë‘\to×½]÷vÍJ6+Ù¬d‘}EöÙçêðo€»A‰ Äìn³»ÍîöĽOÜûĽóòÌË3/Oz›fµ]ÕvUÛÕc`=Öè]£wÞÁš`M°ÆäØ €£ÁÎ`ç×ï~ýî×ï¶mжAÛ[«n­ºµêß=Ì™‡KLÍöJícs8kt©¬Ù÷íSà‚ÌÏÇ7ÊÑ.Swk¦Ž1ÉIo&ˆdJœ¶ohr°á‘­ß~pq«U÷眵uaÊîŽK2¯i| Ãß=oï |Wà»áÓ‡O>½VËZ-kµ òyƒ¼.,G' TV•YUfU™;ÆÞ1öޱóêÏ«?¯þ±¼ªv«Š5âGÜöÚUm Å×üþüÚñy‹œŸs–‡þ«Ymüq[¡CÏ}{Á³w»s҈͉³F/œØæX^[íójŸWûüõ¯·x½E©å¥–—Zî*“0^¤B¤B¤Â§†<5ä©n·u»­ÛmGŸgf®™^ì7¨ÓœÒ)Í›^rWþ!ÁeA|í'Áì`ç¸ñ3†l»ëþöý«¯ŒÝUwÏØä.GQïa½‡õvדw=yד1‹bÅ,rõ9’€ lk«­­¶¶jQ¼EñޱèEo¤5òÌwK^’mú+ƒ»^Zf@Õ›Î>ëç ypI/],c\0#ØþÝ;¿fÛsn‡»û~¶¼ã’–«ghÖð ·W¸½Âíc׎];vmÑFm'J @†´hÉ¢%‹–Ô­^·zÝêGùa¡gSÎzñ’Å•?Ë“a‚Òg-¸tW«f›Ž]üÜìóaG~ïk|ýE¶lŠL¹¦êÈŒý¦JsêüS×’ÖÈÔ:¤ÖÄÞÀÀdS2MÉ4%SëÜ­s·ÎÖ˜‰Uú^XþñÚÓ+öÌýI˜Ö>«ÁÂGw_võü®s{:­1#wÜ=r÷ÉW$_‘l·œšÜ @z‡kZÑo¶YŽYþsÎQã+• _ô›*u]©kL]oô˜Ôú¸øTæ`Òµ£Öï™JæÉ6nzÅŸÛ3þº÷eÊt*Ô$ñý}/''7XØñËŸ]òÊê]šGñÙÀ§&wNmmµµÕÖVG~gäxµþy·Ÿ:ÑoªÔõ¦®=µÑcRë–ZC{éÔ! ݉TˆTˆThQ¼EñÅ£{S€œz×oöîYï‰=ãÔ¬RêÚSëÖC¡Sk˜ZOûêT  ÝòÔ§†<µèEo,z#ºwþ·ÃkVlxªÝõ›–Ô:¤Ö$º7µ†©õLŸóŸúáÔ§~˜ÐûÝÞïö~wgãw6veÿŸ @:²ªÌª2«ÊTÚQiG¥ѽ«ô½°üãµ§Wì™ûµŠ6«ÁÂGw_võü®s{:º÷‡„~H(µ¼ÔòRËÓÃlSZ¤´Hi‘ÿóüŸçÿ<º÷¡Á ~hpûá퇷žwjÞ©y§º¾ÇÂÀ¤Û‚mÁ¶;ÆÞ1öޱÑ÷5¾þŠ"[D¿G—ZŸÔZE÷þQÛmÁ¶`[z˜í'7}rÓ'7¥ÕûÜÝÏÝýÜݧÏ>}öé³Ý|ìÀ¤ _ðõ_0¯þ¼úóêG÷vëwKñâ«Ò±H«V©µM­sz˜gÍ×j¾VóµÔ;}>R|ì<€“­DP"(QnF¹åfl­ºµêÖªGv~XèÙ”³^¼dqåÏòŒVªc7㬗îjÕlóñ‹»Ù^à»ßøné%K/YzI°&X¬I³M tµÔvPÛÔ¸÷X^å1ÑÑÜ ÀI6»Ûìn³»EG¿g¾[ò’lÓ/yµò³y«Òß•Z·ÔÙžZçÔš§ŸÙ¦Æ·ÝZvkÙ­åŠ+j¬¨áÎàÆÀœdbÅ6Š—g^žyyŽlÿ´ÞËOŸÓ¤ê¸³käÚ JÿÌwͽ§hÃ/î{ü— G¶WÛUmWµ]ÓR¦¥LKIÏówgðßå`Nš96æØ˜#:úÍ33W‹L/V-qö7¹¾Q¥#µ†©õ<²=µæ©õOÏówgðß%à¤ùpõ‡«?\ÝÞoP§9¥S‚þÁýÁéªô¯ôîNÿ£žÇ\ÿôI|,Àœ »‚]Á®^C{ í54º³áå^˜wtF\Ö+Ó?È¿qVBBÆsçþ~ÍÚ+öON³J«žÔW°+Ø•±ê, N‹€“`ëÓ[ŸÞúôž>{úìésd{íVkĈo’£}¦Œ–då sÇôûô»­qémj©õL­í‘í©õO½w/ ƒ$à$X°vÁÚk£Ûo{íª6…â3Øbò ‚¹=Ç ¿rm›Ÿ¾]~ç¾tšÁ¥UÛ´®EF$ pLk:­é´¦ÑíÕÎ-ß%=Ï|s‡×^ÿ^çÏníòÔ¡¡C×\]eQÛ‹.ï{íÈ)ëG¤ç™§UÛ´®EFwj†Á`N‚ñ[Æo¿%º½ðˆüOdn™žgþÉ}³çìÌ}×[}‚å­^*ÿôùG¶ß–çªO •ae§ØÒ¹3îê6œ;7õëô?PºÊÊÝÃvMºlóoG¶¯¨²¢ÊŠ*y§çžwú)º3C{4'ÔÎN;;íìÝ~ÖèRY³ïUŸã-­:§u]NáxL´€j÷”ÝSvO‰n/Ú§À™ŸWŸã-­:§u]NM7 Ž;Y%KHHHHH°uHß(G»LÊp¢êüeðÁŸÛ뎩;¦î˜ õÑf³ƒÙÇ><5 ®4¬Ò°JÕǹR¤q·fê“Á¡ã®#?©÷èvìøôÓ / aû`އ‘‘‘yF€ ]Hz3y@Ä-Àê*Óc¦ÇL9‘gœP¹zçê«wtû¬­ SvwTŸãM”úö~·÷»½ß=}öé³OŸýÇý¾G•ú®¨±¢ÆŠÝZvkÙ­åɺß7š€*®Z\µ¸jù{äï‘¿Ç‘íK2¯i| CòÇ)"õUéxH­mjl¾á¾Ð÷H`N‚¦›lZ0º}S›m=¿«>ÇCZµMëZ„I¸Cß# €8 o4¾Ñøèö9;~Þ”ø¢úiÕ6­k‘Ñ:¡ï‘âltN¼ÊÅ+¯\<º}Ø“FlNl\òtþ ¹®;>ýô h¸2ýÌ-µ¶Áèc½Qjè;¨í ¶ƒÚ>7û¹ÙÏÍRÿUjèÛ~xûáí‡çm™·eÞ–AêŸ (&‰D"ßb8¡v»‚]%—\bðž>{úìésdçêášW©ß$GûLžhûHœ°oPrJɶMÆÍÿîÈö\äz$×#kî^s÷š»ƒîà¤Ù˜ccŽ9ÎÎzvÖ³³Ùžgf®™^\9ôÃ}UzýƒûƒÓÕêêô V”n×,Çüî»êî›ÜåÈÎ_þzð׃EöÙWd_ú_Š;}…;€8iR£Çj»ªíª¶ëÈöÔ¨ò»5¿^´ç"Uú7Rký¦Ö<ýG¿îôý»Àœd=öØc`t{‡»û~¶¼cðYð]°K•þ¶Ï‚ï‚]Ôð˜kž}ÿ €àd+”J”›QnF¹[«n­ºµê‘z6å¬/Y\ù³<£•êØÍ8kÁ¥»Z5Ûüpìâ?Ýû[à»ßøné%K/YzI°&X¬I³õxçÿŠ;€8ÙÖk‚5çŸ>|ztgj„y`ã¡÷SÎSªc‘Z«èè7ÕuNѯ;}0éB­kk][ëÚjŸWû¼Úçѽ½ïkíÚgUéX¤U«ÔÚ¦Ö9=ÌóÛ;¿½óÛ;…¾ÿ-€ YUfU™Ue*í¨´£ÒŽèÞ‰Uú^XþñÚÓ+öÌý‰ZE›Õ`᣻/»z~×¹¿=ÝûC ?$”Z^jy©åéa¶)-RZ¤´ÈÿyþÏóÿEäïñÎÿŒ;€HGRãÉÞÃzë=,º75Ú\_|ËÞCÛÔêH©5I+úM­gú‰~SÅŽ;vÔ°QÃFýq­Ýéûï¹€t'R!R!Rá’Ë.¹ì’˽±èEoÙ›­A–‡c–/¹þý_*_]Žû2e:•k•øþ¾—““Ï|ïºs¼`ú¡g#eŽì­p{…Û+Ü>ã“ŸÌø$fQÌ¢˜EvW¸¹€t'5ª»vìÚ±k£{ScÎ ;~ùó£û{|5å÷S³J©kO­Ctô›*µ†¢ßSè¿wž-Z²hÉ¢%u«×­^·ztï™JæÉ6nzÅŸÛóÔ¹8õ®ßÔèwÉ+«wh=f朙sfΩpf…3+œi:Ü @º–aŽ}aì c_ˆîM?S€|*|6pêS×›Vô›Z+Ñï©ÉÀdS2MÉ4%SëÜ­s·ÎÖ˜‰Uú^XþñÚÓ+öÌýI˜Ö>«ÁÂGw_võü®s{:­1#wÜ=r÷ÉW$_‘l·œšÜ @†‘m¦u7pªÔˆôÉ_qõäCyHé”q×›:ÿÔµ=úM­‰èw!ý³ôa¡gSÎzñ’Å•?Ë3:£¬nÆY .ÝÕªÙæ‡cw9úHŸõË‘Ü @†”y.½|éåK/¯p{…Û+ÜžÖÈÔµú´v=õú®ù¯³÷ Æ3‚íéh1ã‚ÁöÔ¹¥ÎóèÑoêzÿX»è—#¸€ /R!R!RaÈSCžòT·ÛºÝÖí¶£Ï33W‹L/öÔiN锿M/¹+ÿಠF÷„Nú“`v°sÜøC¶ÝuûþÕWÆîª»glòÿq¿oïa½‡õvדw=yד1‹bÅ,rõ9’€PYUfU™Ueî{ÇØ;ÆÎ«?¯þ¼úÇòªÚ­*ÖˆqÛkWµ)_óûókÇç-r~þÍYú¯fµñÇm…=÷í?ÎJÜ9ìÎI#6'νpvb›cymµÏ«}^íó×[¼Þâõ¥–—Z^j¹«LZÀ„ÑÎ`g°óëw¿~÷ëwÛ6hÛ mƒ­U·VÝZõïæÌÃ%¦f{¥vб¹œ5ºTÖì{‹ö)pAæçãåh—)ˆ»5Sǘä¤7“D2%NÛ749ØðÈÖï?¸¸ÕªƒûsÎÚº0ewÇ%™×4>Ðáïž·Àw¾+ðÝðéçŸ^«e­–µZyƒ¼'øe2 0aW"(”˜Ýmv·ÙÝž¸÷‰{Ÿ¸w^žyyæåIoÓ¬¶«Ú®j»z ì1°ÇÀ½kô®Ñ;X¬ Ö¸€;0§œ96æØ˜ãÃÕ®þpu¯¡½†öº§Ïž>{úœÈ9äz$×#¹éÞ®{»îíš•lV²YÉ"ûŠì+²ÏÕáß@°µëÖ®[».X»`킵ӚNk:­éø-㷌߲í‰mOl{âß9ü=ò÷hZ°iÁ¦o4¾ÑøÊÅ+¯\¼@ß} ôUyþ[`øÛŽl™”8)qRb­¤ZIµ’Ô‡“%V ÂA `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!!‰8%€¿kÈ‹C^òâœç|<çãê—W¿¼úåů+~]ñëT†“+&‰D"…Èè< $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $Àÿ¿öì@`¿õ=¾Ò`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜¬·¬o6 ¡K%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/multicast.png000066400000000000000000001513661431412030200254120ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝutgÿÿ¨P¡7î,x$ $!¸SÜÝ 8E[ w-Nq/Å%ゼ(Z¤ÅÝ’ßW?ç·÷w;{/É&Yy>rÎN›ÌÌÎ^{íûº^#Ébn!‡Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0€Ø‹o/¾½ø6²pdáÈÂZhy å놯¾nÈ‘’Šø ŠÏ£ølŠÏ)GêX€:ècéc¶nèÅé§_œ>zìè±£Ç&¿œüròËàËÁ—ƒ/§q–Zhy`åÈ•#W޼|áò…Ëb߯¾¥Ü̽}ûV|^ÄgG|Žõ©ŸqñyŸ}ÑpàÔ±Ô±u,ÐÇÒÇ€§!\Þ˨—Q/£vMÞ5y×äZcj©5&Mé_¿ýþõOu8ÕáTÞ@|Äç"©>•¢Oýƒè+x_Ô±Ô±u,ÐÇÒÇŽbý)Ûÿñþ÷Ì‘AÒ"\Ò_nürã—Á'Ÿ|2[Yae…•^”xQâE Þ5¸7ÑÎE›wæO¥è7D» Ž¥Ž¨c€>–>ˆ`8'`ÀeÜœrsÊÍ){tîѹGÜŠ¹œ)3ÜJÛþ…_ñ¼Í¦ Îã³tCÍš—ýóî‹l¼Ô%]n¸ LomLÃüe íºXoRàë/«ç+1lTÝ …¯ÖSàuÎñ)%ç{Í÷šïõªá«†¯x*Ü„hÏ¢mÇçÓQwNHÉœ/FÕ ëWøêŠ—£•¶ëâ¬æ¯µ1 î”)¤Ë ¯”é½/rnX©KjNíŸwêÀ~Ï}–¶Q¿uÞf9Sf+“.6nÛý‰è[x7Î\Ǧ›žùQ¶2¹–WÊ_¿u¡Î­•~Ï}}S~Âè9—ŸVrÀðÁ ¯”,3lÏ‚;Å[ ¼4«¹Ï¸°#£øO“vaý²ßìR’:Hˆ:Ö·{åšY/T›ÒÛ/oPÓE“JœÝ>ËÂÈ"Rç+¢}ªw©½ò¼Ï/—~^´MËl3ê’ë´RÏ»p©5z渟©R¶?Ò妎@k>WPàuÎb^NÌщù:1w'æñÄœž˜ßs}bÞOÌÒljƒΉpj/'½œôrÒØÌc3Íl¡–«@ÆÍé‡Ì ç;øÜ²–ÉËß «VÍQËw »¨:jÿ2–ÙÛ·_@£i?´”ܳwÏÞ={c_žŠ}Å» WÉžŠ}%Úð‡¶ü¾ýZ‡H»ÿ‹E×Êì}·ðwÕQ±±GŽT«æ¨å¹ez–¿?3pàMßÁ¹ d¿’~ˆýû&úÑçð&’ªŽM÷2kéìW çh÷éÀ›¥ª·¡gÅŠ?ÿ|䈣–æ-uÈ»äö!‹®å=^;ëPêXPÇÚ£âèùsMîrgÕ=ŸM#ožý$pã¨QçÏ—*å¨å7vt.¶¼ž÷ð^ÞZæÐËÒ ¢ŽàIs ¤ólbÎͱóxbnPÌŠ9CúXÀ±€áœ€'u8ÓáL‡3Ù_ó+߳ț¿¾í°¿Ò Ç–‰ö/vlZ"hqóÇEr³gŸÿÞø÷Æ¿ßÏy?çýœ¼ãp~¢­ŠvkO oþ¸f¦ÜãŽv\Ñ=h±cƒ^û—}»o_¥ãüzU)òÆþþDô?¼ã€Ä©c ¼oÞ¤W• Zs|öíslÜkÿ2 þ¨+º{e._½f&êXPÇ–<]Gɾ:ìÆÆË~ÉôÚ¿¼ë€RòIkýƒó%£Žà^sErshI5ƒ'æÅ\"},ÀpNÀ€‰3&f̤9“æLšcOᵪBõÅ%ö¿ÜÙµQ•nIU2š-ÿ¬ßîBÈàþa© Œ²çµD–Ž,Yš6ç$Ú§=-¹X›#FýY×ÖÁIúš-_îŒlP¥Ûª c¢Jì·çµˆ¾HôK´€cëXŸá3ÆD•_½hAdƒ¤ }Í–eëÌL¹kk¾buš¶9B Ï©cƒûwŒÊuiP%}@ÉÜIúš-¿›zòqÀ­f¥'W-E À5ç S%æÊœmOÌ+Š9FúX n€áœ€§ð¬â³ŠÏ*ÖiY§e–¶Ë¬©½‚½|¿íÞm[ÕòÎV2š-¯×oÛ*xFï‚÷½&Ú~u?úéÔO§bcbcbchHb1±1±1¢MÚn· ¼Cý½&^¯¿}zð g }Í–o»GùW-?µW¿‡>‹m¿:Ñ/‰>ŠFˆO[¨cë½ýVh½äB”¿³…¾fË2ã¦-Ù>=G—RBý©cá~u¬ß²ªáÙB´Pr•øÎÙB_³åȯÏ|8¬NÓ!Õ½ RÇp‚÷½&Š91W™Áóbî‘>°0œ0ÄîÝ º”}eö•ÙWšUþOsöÊâs5c›qÁi\¥d4[îêW¯KàuÛEä`u°:X9s&æ -I0š;s&æŒh‡¶Ûê®~³> ¼î*¡¯ÙòjÆ­§ƒÓø?õñÎâcöJE%ú+ZÀþ:6Ó«üç|¼Ëd›ZeëiW }Í–Å«\<ë3êX¸GÛîöÂoŠlr•Ð×lÙ¿¦TµD¾<~¾3FRÇp¦¹‚z]¯»ú ž˜‡s’ô±€mÀpNÀ@’¹ÝÿvÿÛým—Œã/Tø²h˘§aŸVûÂÕ GËå=¿5+5ºŸ;EVÅ쵇 ;v$¦OLŸ˜>´$Òp®OLŸ˜>¢í™µÌ û%ægUîùíÝS©¹«G¿–˘§‡_Wûbü…ofý×o‰¾‹ÖÔ±¶¿/ ÖoÑ웿\søµ«G¿–Ë ”³»ìÝ“¥A‘´%æSǵêXïQþj¦kƒ³En*)»zôû_Ëν*•²æÆ?ç«B éæ r§Èªˆù.wšÁs’b~’>0C çD $û÷îü³ïÖ›øÎJFëå»rÝ?ªÚ³ßÀtƘ‡>Oû<íó4vOìžØ=´$ =±{b÷ˆöfúÌž¾mNó®\ÔoU{ºSôk½ÜuwVçÀw¶û(ÑÑp€:ÖZñ¶oÍêìN¡¯õ²Â˜¥Í£~ËW¢N«6§¨cáüulð·Oäº^Æ{—焾ÖËžSãw‹:@ÂÌ„ôö óä<1‡I ÀpNÀ@"YvhÙ¡e‡Ì £¨Z×—ÝâÉ…£år¤ÙS…»š«k…¯¾V˜…ømɬ¥ôïv¬pWOŽ~-—Qµ––Ýbv¬DÿF‹Ϭcýüþì²@OŽ~-—ùW5ÎÚíu,’¶Ž­:¥Wï<7=9úµ\v{´n o+êXŽ›+({ªpWæîÄRÌgÒÇÀpNÀ@‚»ôäÒ“KOÌŠ¡ j^óÏOÉh¹ŒÙÓýQÕw_×.ÔÒë_¦Ï|§úNõú¾Åûï[к7¢ýˆ¶dÝÆ¾®]9›×±˜=‡V}Gôk¹ÜÐhÂ$ÿüf½™èëh]à9u¬ï“o*O˜Dèû_ÏŽ]öûá£9–”^Q9u,¿Ž-æ[­}¶Þ?üy.ªÔGD¿–Ë–¹f4+¤RLjß\A¡–^ÇÄœsw–K1·I OFì(;7ïܼs³8†c׎];víÃk<¬Á‘‰` ÅtŽéÓ¹øââ‹‹/¶þèW9àç!”‰fË'ý:·©\ʬ|\8aá„…hcˆÑ~ÌZד~Z‰Ê¥ˆ{Í–ý*·¾U Äú¸‰¾Nô{´1pï:6ï‹Ú+[ß"î5[–[>¿»V‚:‰_ÇOytZ@*â^³eÅÛÎäÚD ®sÛT.Å|ÙRÌsÒÇÂ3Çßû†ï¾ohÖÇ 0€6Ìß0Ã|³nëåήªt£@´½<öKÓMAwÌŽáÝ•wWÞ]IKƒýD›1kQÇ~YÙ+è¯íåË‘õ«t3½«Áü ó7̧¥€{×±åW/ZYŸ ×ö2`Úèì+{QÇ"qêØðQ›žøñþåwSO>¸E àÃç šn ºÃí¥˜ç¤…g"Ž?Ëkm# ¶0 ž?|þðùC³NêÈ™&ï‚FPÚ¿Ò«t‚Wþeš#Wx®ð\´7ØO´ë¶4¤WÇ‘¯îÚ¿wˆÔ:ñ¯c‡DDó¯I|ë¨e1¥+ežL ÐÇþß\AÇé¡^Ì¿9j)æEécáÞ€“a°`ÀaæçžŸ{~në®d×¶z#9s)6{_¥oý¾{û{ÝVJ…·Î_>ÖYàUÎÖGûVª[©n¥¢5BíÁºÔR<ç g Pµ[ ÊT캬ё|K‹å,Ô*s†,ã3mIû¦Ð¸|çÕ-|/çõÉ•ûVôÉýr\dÑ*­mÿwm›øÈúh‹¾‘Ö®XÇoÅÂUEvQÇô±b®Éf½Þ•ïþQÕžéO§ý6ͽ4qòç¼vOC&8Ãkó¢ô±poÀ΃0Ø0à0¾ù}óûæ·î>ž–ë¼¶rg' SS…¥®–¦|ÍÜã³ýWáëüðîìõV–úÜúh¯ª°ªÂª ´F¢=X·“ÝÙgM*õ¹SD§©Ž¤®–¦ï_­.àó¡Ã¹cÅW~tÄyà§å´ã•;ÿË4e~ßü¾ùiàŠul¹Có¯kÇ“6.-5`BÆù2}™÷v¡VöKæn]¹OÆÓüœúHjg €‹wôñ¬IÔ±ˆ[۾̷E¢\æ »R‡‰¹–Z¿ gÛÏá=Ž• ð£ŽècÅ\“3Ìz]ªØ:KÅ’iâÁy`1/J ÷F윃 €x¶èÙ¢g‹¬;‹ å¹îeÝìÌÑr£‹üËíþœ?~8´ShèDë=¯Ý¯v¿Úýh“D{°n'‡ÊWB':Ch:-Sÿþ>Æ Ê¸žiÍ‚Ãkkp<ÏÊå>WOìØ;²è¶œå³µKÿ¥åï?z¬~ú‡óÄÀAËK´ËºÙú˜‹~’6 ®RÇf -|³D»¤ J+\[6âpìçýn”Žþg·¦=®jž5’7/å;§WŽñi?3fupñaƒ‚g]Èízåë¹i*¦Yžæ¨åkq¶¸\šy å+Ô±ˆ[;ôçÙüç:ôÛbÃôÉ…æ›M«9ç>{·õ•é,u,àÙsBC':Åe#êE•ú¯ÇŸÍ:\ÉË÷ô¼©¡?úm²gùlG—ÀÊ{œgOÌ‘ÒÇÂ];?Ï ƒ €ˆŽ‰Ž‰Ž±î æM ýÑo“3”YwÃ;$«ä³®wMß’»F¾ÊQxVÉ«9?ËüÀ¬ks爼ëV­jæ°tGÓî±Þÿ÷)ß§|Ÿ’–éÉD°n™Ã2žL»'öõ‘Õª&mPújpäí*³ò<öúO†lbß·ùŽÎ2Cºÿ÷IüÿJüwË¿2ûͤZΛ64ƒß&ë#/úIZ&¸J[Ä»cÕ¡’6(-ֹߩiÿuª¢oמÇ5ÿ×:Üÿ%ÿâF1Ý6Šgêæ²ð§»t…Ÿ9vh†3ž¤Ž…ýulú™üÒ–õýùS¥9úí]jgÁb3&˲9í× €ü:òzþ…Ô±€§Î¤;šv˜kr†Y/÷Š}+Ú"[ÙLA.3_g²s¤ô±pWÀ®ÅsÂ``À–]XvaÙëNáäîfÇËÍs†2kù…j{JÙß¹JùØ·O@£ÿ²ÿ÷Bï…Þ ¥ez2ѬÛFß>­C 8E\º§×ìÙ¥[îÛÖóÓzœ·'еü«*ZÙZÙ_9O|r÷êcåæYyÑOÒ2ÀUêØÀücž¬>–´Ai¦M«‡/û“!ÒëN¾{né\æçi·¿þ¿‹ÿÿ«-Î{¼v¾Ö!Ô±°¿Ž­8ªƒw®IÎýŽÈu¼O@xÞOŠuÍôÕ?•ê¬{óÌp•¸Çó-Cý¶RÇž:WШ€͆õùÂÿX~Eì[Ã+…ç*äê°˜#¥…»"v]îæææý/·Ž‰êÔ.t‘3”Ygvµ¨]þûéŸïòyc½tÝxãùZýü‡[ïÿÑåG—]NËôd¢ X·ç'îóî Aé¢Ðz1)n7s>¼¢nÐñWÙ[fù3Ýbç¹øa”’=ô_n%*úIZ&¸J[.×¼#Jö¤HóÄÔ˜ÝüI†°œFž}^í*®UÖž(·ì®Y­÷tú—ðÌÉ`¿ ½ý&…ýulË 3zïÌpéËæÌðÏõj}ƒ/f->r癋]%zàp3ÿåÔ±€§ÎÔêç?Üyæ»j7+/çÀnþß©ôÚB™\7úýçQnQÚ1W÷EìÜ/ & Ä±ÇJû—¸ùvo]u…óa®GG7/]î¼õþ¯¿µþÖú[´LO&ÚÀ¿Ü\(zͺrç!(Ý5½p`ªðÎM%ï!}¾hUèÿÎíýЫ‡ý£}¾Ìâí<ð{ßCs«®°>ò¢Ÿ¤e€«Ô±¶-ýëÐ\§»y²Ë" ;žzÒòºaç €[ý¸xÍ:êXØ_Çöökg¿+Î~=oT¿üwÄ~fë”7cú¾­µ¿RÉ!®u è ŸhPÇž:Wмt¹óÎ9S7¿Oå2Ų‰K8BÞç­‘Ý+Gí KÒñóÉ^-Ó•–]ŠÊ¹_–¢êÆâóbS…¥®æ¤szbŽ”>îŠØý¸GL $HŸynºËi W‰Q]7¾]¾}ñÍÖû?qýÄõ×Ó2=™hÖmãvùÝ=B6;Ï “­oìlÏo6V«ÏõÏÀýµÍZ`¾³= 8óÜŒOÓÿÖ·œ½ŽM;:ÃÏŸ:Ð[ºõ¤G¿DœýdÕèâ^³Íl—×§f¿X¾–¢Ïº½þ¡sÀe‡Î\¸»u,ì¯cm5Ê–¬æl¡iXû ¯|Ϧ«—þmšiÃÒ…§ÝåЪm>+,ƒ^W €Å2ýšLÓ†RÇž7WоxÈfg˜ézº¿óï•GYî[¦Õ鯤bOðPcLþL9¢oD¶ý3ø–sÎã‰ùRúXxÂ¨ŠØ¸nL $H_á‹Ü'²•%Nèå“i»W®`½ÿ}:÷éܧ3-Ó“‰6`Ý6žLÓªW®àœðÿ¸²ÖçÐܪ+†5îô¾P®®ÏR8]·›;wö Éál{[á ÿleÔ€+Ö±YvmáâüpÆKy\j`?óý²G×wæý/·vþP­:u,ì¯c‡g=º& ½ó¥CÞF=óo›3C¨ ÝÄÖÍ6t‘w˜uÄëZpþ1£2—¦Ž€;iè[è—\É€zù2²k‹*á´7Øïedd«*á®ýŠ'þV>YfjvíÿÎÿÍX:íõ“ùûJG;Ûµ¿bÙзò‘\ÉhoàŠr.ãSùˆëÀÿuSÁûCOÎßçœû_~Ý¢‘­ho°ßwsOÆÜvŠ[%/:W-ðn±ûÕ·dûçšû’KëtÊ>gTêó©JýK¸ëZp±ùÕsf›E{t~¯uuŸ~yj8Ûkó¥´7žéͦ7›Þl"\Ws0œ“3_ü¦åÁöUbÇMë5­hšŒ;2 KÛLìsîÔ9f§ß4ý³Å|Þ¼;°²Ê¡ÿûœ:o€ÍÀàº\å `³¥x9k”¨zÜòuq0\3\Üýþ†b¾¿¤y‘öç4mÒdœœ6GÏ´[6øí{höWÖ¯…+€8ß\³\Ÿå/jW÷¯¨xlŽF™à `pt°¸:?ü¸Çõ‡™g'í3€›×o^¿y}Z¦'ÿˆ6`Ý6œóÀ—*þ]±dà6ßÑYfˆýL:ýGiî}Ÿ¹ëÃÂ=V? ýãÿ>›®qÛj³gÓ2ùá‡~œ¿Žu•gÛ ‚r–Èël1°Ù3€©cù1«cáÀÍþ˜^ÈÁ÷ƒ‹Ež*éüϦeòûÏ8Ë3€õüàL«ÓI;ÅÙfùÌžLËäÇýFUóRÌK1/GÆý~v Ý5t×аÂ> ûÈþŠWü¾=pïǼgž›îrZƒ8¡—·Ë·/²Ùzÿ'®Ÿ¸~âzZ¦'mÀºmÜ.¿»GÈfç J¯>Ù628´HwïM™>{(þ}pÒÒ¥e¿ãZѯXfž›ñiZãßú€³×±iGgø9ãÓ¤ Gƒ–Î-%¥³Ü«¢Ïº½þ¡ýk¨1ªÜŠºâoÓ̲,{vg €Ë¹pwêXØ_ÇÚj”-YÍý`g»&8ýšLÓ†RÇž7WоxÈfg˜éÒn5¬Y¦¢úìë‡e>¿ú¤ÍoÁ¡öÿí¶¨ºŸ¦¯È§V¶Y™ú:Û,Ÿ˜/¥…'ŒªDXÈ‘q"¸»vìÚ±kí¯oÅï'~èk‰p€ÇJ+qÌúCþÞ·{ëª+€nݼt¹óÖû¿þÖú[ëoÑ2=™hÖm#:zͺrç'(-_³äúlÿ ϪhekeõÀK:ZÞC_±|ï{hnÕÖG^ô“´Lp•:¶Â¶¥šëâo;+Åæç+é<³|bŽ”>îŠØý¸nèk‰p€0ï0ï0oëüèNíB'ÜrãùZýü‡[ïÿÑåG—]NËôd¢ X·ç'îóî A©œ÷§ÐÒÿ¹Ö*yš£iª]Éýk­ŠK]7úˇQJöÐEÿr«ï0ï0oZ&¸J[.×¼#Jvç €Ó,L{ ]Uÿiß?]Öê\YÛrfé]÷2|•ciî®á+P¨ÉްkÎûUèí7qu,ì¯c[^˜¹ Ð{g~z®=Ï¡¯sîçЇ›ù/§Ž­C 8E¼ÚeK£TùÂþ¹ªé±×2dûç!S‡¦÷Ûô¡Kç €Oî^}¬Ü<ë#/úIZ&¸J˜Ì“ÕÇ’6"-=±ì¦Ei¯fŒÌÜËrßò«W³}ýb³úwž^XÜ깸×Àl3ÛhÚ´zøbË>‹§ÿŠJ;ÛSŠó¯¯uu,ì¯c+ŽêàkpÂ-{<ß2Ôo+u,à©s 8ÅlØãë UÎTpn–S;üsÊø“4Fš]—¯“oéö=u;V9R¯Éá ¶›JÖší?£gµ’]½ÿ´Œ~»l)öôÿfœèùÄ»›g®î‹Øu¹_èk‰p€è˜è˜è˜yØû´Ðý6'ÈòuX·jU3‡¥;švÏ¿Ü|;åû”ïSÒ2=™hÿò|î°Œ'Óî‰}}ä@µªI”†¼/Õ<»—£žšæ<ð¼iC3ømú—jÅDÇDÇÐ2ÀUêØ"Þ«Íà Aé?ÏñŸ%U¶vö3fõòYðG©,ã¯_ïl×þV¬ðóâ#ÒÍðcƓԱ°¿ŽM?#“_Úr£¾?ªT pB,ü:òzþ…Ô±€§Î¤;šv˜krž™:ßrÙîgZcýÓñ²ß­¼‘¯w]Xe–³Íã‰9RúX¸+`×âÞ¡¯%`Àž-z¶èÙ¿ÜÆ$hy®{Y7'È­c†v h½çµûÕîW»m‚hÿr{ö¡ò•ЉI”æNcvúMî-/Ñ.ëfë=ý$m\¥ŽÍZøf‰vΚþs3ç¦M«‡/΢ýÖ¿kú†Ùšælö׌þ™¶d¾XhQ±Ý^û*Ö­½Õ·kωãWLósê#©.ú­øóÏGŽ”K3o¡|…:q«c‡þ|8“ÿ\à„Xz·õ•é,u,àÙsBC':Û|ÝO߇^ñ»Q«kþC9+æ;•¹g†qö§=™6w¡qY}2Îk—Õ÷û<K%Œ/ígùWÎ6'æHécᮀŸç„¾–€‡ñÍï›ß7¿u7ñ´\絕;»ÊM•]%Þ½ÞÊRŸ[íUVUXUÖA´ëv²;û¬I¥>wÝçì:çòi9íxåÎÖG[ô´FpÅ:¶Ü¡ù×µãÎÛŽu3ôµ\ï>èãY“¨c·:¶}™…o‹D¹â y9¼Ç±R~Ô±}¬˜krÅù:gžÍó¢ô±poÀÎÉ3C_KÀ€ÃÌÏ=?÷üÜÖ]Æ®mõF>r•ØU–ugx•ó…õѾ•êVª[©hD{°n'ug†Ïù‚ÈÖ±Ë]Ûf>²>Ú¢o¤5€+Ö±ÅÜ?+È™ÃTW\f¿Ø!¤8u,âVÇúv«\=ë"[Ç.Û§X¸ªÈ.êX€>VÌ51çæØ¥˜¥…{#v„¾–€‡¹ÑëF¯½¬»à¼yæeÛFÁç¨åý…§‡þË“S³gÎ{<öxìqZ#þq<öxìqÑ6¬ÛÌý…R·P/‚[G-ƒóÜ̶Íú8‹¾‘Æ®XÇfÍå³4à&‘­£–AÛ瑺QÇ"þu숨qþ5 nµ,0¦t¥Ì“©cúØÿ›+è8=Ô‹ù7G-ż(},ÜpÒ"ô5C 8ΛØ7±o —/\¾pyëåÚé¶¾Á)û⿜W3´‡ßbë#¼äÙ’gKžÑ aM´ ë63¯æË~‹ n㿼vz{±àÖGXô‡¢o¤€ëÖ±ezOk´½ñmü—E2wÌ6ä2u,â_Ç6˜>rmþé·ñ_ð’w—§Žècÿ{® ´‡ßbæßâ¿s¡ô±ðÀ‰Ð×À€ƒm)º¥è–¢ÖKßYí d¡ø‹Ïòuí®÷ªèfÝ÷ƒSN=8E „5Ñ6ÌZÎëÚ&WÑ qã³ì;«uëY¬­èiàêulÞ³µË¶nM|Ÿeùg‹§˜L ÇÖ±ß×?˜Ÿ7>ËŠ³:TÊ5ƒ: ý·¹‚®÷ªèÌÅÅg)æBécá €¡ï‡"ìUÀ«€WfÝÍŸãÛÝù‘0nË•%«•o}T{ ë1¬Ç0Úlíĺý¬,9úe‰ñ„¸q[þ9~וÍz<ÑÒöÀ=êØ²ÍfúíºB”·¥Ï¬°‡£_RDZulÓÝ“º\Lˆ·å 6úŠ’E¨c˜ÏT*1ž¹¸¸-Åü'},<pÂ!ô` Aü”ò§”?¥´îz:}[,WÞ;‚º|š¡óüÊ­Ì:ô«‘W#¯FÒê`›h'f­èií—Ê­t?tÙéÛ¯¿Î{ÇúxŠ>VîTÇæÎºî믉r?tYN›Xû…: WÇo~,c@!Ý]–¾Ð䇜¨cü¯¹‚Îó+·b^îC—bþ“>žƒØ±}…HÏ>øü¡YgtäL“wA#(í_éUºNÁ+ÖG2ž‰8þÞ7|ßð}CB_Ç"Ü¥'—ž\zbz\£š×üóS&Z.cötTõÝ×µ µô:f}Ä|§úNõú¾Åûï[кÇ’¢Åûï[ˆ¶dÝÆ¾®]9›×±˜=‡V}GÜk¹ÜÐhÂ$ÿüf½™èëh]à9u¬ï“o*O˜DÜk¹¬»ì÷ÃGs,)½¢r6êX$~[Ì·Zûl½øó\T©ˆ{-—-sÍhVH¥Ž¿¹‚B-½Ž‰9+æî,—bn“>žŒØQ,¯&ô?` ‘,;´ìвCfÅPT­ÆëËn¡dË‘þeOîjv¬®¾VøZaZâO´%³–6Ò¿Û±Â] }Å2ªÖ²À²[ÌŽ•èßhQà™u¬ÿߟ]Hô+–ùW5ÎÚíu,’¶Ž­:¥Wï<7 }Ųۣu}[QÇpÜ\AÙS…»2w'–b>“> †s"ˉر'Ú‡·onVE¿j^µÜUO.g<éífv|v¨;Ô*M Ž%Ú•Y«›ñ|àVß0OŽ~£_­‰*wÕìøˆ>Môo´%ðä:6°ã;ÖDyrô[8MÛ+·RÇÂyêØzŸ/ã½Ë“£ßžSãw‹:@ÂÌ„ôö óä<1‡I ÀpNÀ@¢z¹ûåî—»‹d)’¥H³"é˜WÓoƒzPáø*¬kµ*Óð‰6;&SêM©7¥í G´1³8­aÿå>ѱ¯ŽDV«â9Ñï1¯ï‚šщ>öÔ±B@ÿQÆŠwýVøyñ‘ÈBSÛTí¿œ:ÎYÇÖ1†¦ð®3êûóÑ¥='ú ¯°i¨_.êX ?W<À'ZÌkyÎ<ž˜·¤,Ã9Ià~Àý€ûilÚu·ÞŒ@7¦È»rÝ?ªÚ³ßÀtƘ‡>Oû<íó4vOìžØ=´$ =±{b÷ˆöfÖû÷msªÀ˜wå¢~«ÚÓ½£ß]wgu|g»ý ¨c­o;ðÖ¬Înþ¬ß1K›Gý–¯DVmNQÇÂùëØào;žÈuyäÎ3Û»wôÛ>×Âè"*u,€Ä+LW`Œ˜ãrïy<1WI X#†s"’Ìíþ·ûßîo»l¡Â—E[Æ< û´ÚîT2ÞóëP³Ró û¹SdUÌ^{Ø‘°#aGbúÄô‰éCkAâíM´=³–t¿Äü¬Ê=¿½{*5w§Ð7æéá×Õ¾á›E[Úî—DßEkêXÛßë·höÍŒŠ_.‹9üڢߠ”³»ìÝ“¥A‘´%æSǵêXïQþj¦kƒ³En*)»UôûѹW¥RÖÜ8àç|U¨c$Ý\AîY1ßåN3xbNRÌOÒÇf€áœ€$v/è^н ì+³¯Ì¾Ò¬„òš³WŸ«ÛŒ Nãòg ö«×%ðºí’q°:X¬Æœ‰9s†‚$Ú‰9sF´Ãÿq¥~¿YŸ^wõè÷jÆ­§ƒÓø?õñÎâcöJE%ú+ZÀþ:6Ó«üç|¼Ëd›ZeëiW~‹W¸xÖgÔ±p:¶Ýí…ßÙäêÑoÿšRÕùòøù>ÎI À™æ êu ¼îê3xbRÌIÒǶÃ9NáYÅgŸU¬Ó²NË:ÿã|º©½‚½|¿íÞm[Õò®R2^¯ß¶UðŒÞï{M´ýê~:õÓ©ŸNÅÆÄÆÄÆÐ*Ôc»Ø˜ØÑ&m·ÛÞ¡þ^¯×ß>=x†«„¾o»GùW-?µW¿‡>‹m¿:Ñ/‰>ŠFˆO[¨cë½ýVh½äB”¿«„¾eÆM[²}zŽ.¥…úSÇÂýêX¿eUó… h¡ä*ñ«„¾#¿>óIà°:M‡T÷.H À¹ç Þ÷š(æÄ\eOÌ7йGúXÀ~ÀpNÀ€3ÕcbÆÄŒ™4gÒœIsÒØaU…ê‹Kì¹³k£*Ýœ­dü³~» !ƒû‡¦.0Êž×Y:²tdiÚœ“hŸö´äþamŽõgý][C;[èûrgdƒ*ÝVUUb¿=¯EôE¢_¢ [ÇúŸ1&ªüêE "8[è[¶ÎÌ”»¶æ+V§i›#Ô±ðœ:6¸Ǩ\—UÒ”Ìíl¡ïwSO>¸Õ¬ô䪣¨c¸æ\A`ê£Ä\™³Íà‰yE1ÇH Ä 0œ0à¤g:œép¦4vçW¾g‘7}Ûa¥IU2íØ´DÐâæ‹ägÏ>7þ½ñ￟ó~Îû9yÇáüD[íÖžÞüqÍL¹Çí¸¢{Ð⤠}ÿúvß¾J+ÆùõªRäýý‰èxljSÇxß¼I¯*AµæøìÛ—T¡o@ýQ Vt÷Ê\¾zÍLÔ± Ž-yºŽ’}uØ—ý’'Uè;x×¥ä“×úçKF À½æ Šä'æÐ’jOÌйDúX þ€áœ€§örÒËI/'Í<6óØÌöd¹ dÜœ~ÈÌÀq¾ƒÏ-k™¼ü}Ç–‰ïv/PuÔþ/e,³·o¿€FÒ¦ù@{öîÙ»goì«ØW±¯x—áb^žŠ}%Úð‡¶ü¾ýZ‡H»ÿ‹E×Êì}·ðwÕQŽ{Ï-Ûгüý™oúÎU û•ôCìß7Ñψ>‡7Tulº—YKg¿R8G»OÞ,U}ü¸ =ôV˜·tÖ!ï’ÛG„,º–÷xíü­C©cAkŠ£;äÏ5¹ËU÷|6¼yö“ÀŽ{¿9°£s±åõ¼‡÷òÖ2‡æX–nu,Oš+hT ­˜gsnŽÇsƒbžPÌÒÇŽE çD ¸Œ›SnN¹9¥sÎ=:÷H'9Sf¸•.¶ý ¿ây›MœÇg醚5/ûçÝÙ y©KºÜpA™ÞÚ˜†ùËÚu±Þ¤À×+^VÏWbبºA _­;§Àëœ/ÒÄÃ|¯ù^ó½^5|ÕðUCÞM¸Éø®á«†¯жŸOGÝ9!%s¾U7¬_á«+^Ž>TbØ®‹³š¾ÖÆ,¸S¦./¼R¦÷¾È¹a¥.m¨9a´Þ©û=÷YÚþEýÖy›åL™­LºØ¸mWô'¢oáÝ8s›nzæGÙÊäZ^)ýÖ…:·Vú=÷}ôMù £Kä\~nXÉÃ/¼R²Ì°= îo5ðÒ¬æ>ãÂŽŒ>Tà?MÚ…õË~;°SHIêX !êXßî•kf½PmJo¿¼AMM*Upvû, #‹Hw¬ˆö©Þ¥öÊó>C:¼\úyÑ6-³Í¨_H®ÓrH=ïÂ¥Ö4ê™ã~¦JÙþH—›:}¬ù\A×9_ˆy91G'æëÄܘÇszb~OÌõ‰y?1H $`8'`À%ÝøåÆ/7~|rðÉÁ'Ó8±•VVXYáE‰%^”à]ƒ{í\´ygþTŠ~Cô!¼kêXêX€:ècécø †s"\Þ˨—Q/£vMÞ5y×äZcj©5&©ŠÅþõû×ï_ÿT‡SNuà}ÄgA|.’êS)úÑ?ˆ¾‚÷@K PÇ},},à(ÀpNÀ€zqúÅé§;zìè±É/'¿œü2ørðåàËŽ*[hy å•#WŽ\9òò…Ë._ˆ}û6ö-G0õ6ömì[ñyŸñ9rÔ§R|ÆÅç]|öE?ÀPÇRÇÔ±@K ž†@ìÅ·ß^|Y8²pdá-´<ÐòuÃ× _ó„3 ɈϠø<ŠÏ¦øœrd Ž¨c€>–>`0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚Ü0¸ `pÀà&€ÀM€› 7A n‚ÜD¢Àû?ÞÿñþÓ€Ç9)0¸<`p‹ÿ¾?ùþäû“ïO¶?ÙþdFŒcÄï÷Æ{ã­ñÖxk¼1ÞoŒWÆ+ã•ñÒxi¼4žÏçÆ3ã™ñÌxb<1žÇÆcã‘ñÈxd<0ŒûÆ}ã¾ñ—ñ—ñ—qϸgÜ3îwŒ;Æmã¶qÛ¸eÜ2n7›ÆMãºqݸn\3®׌?Œ?Œ?Œ+ÆãŠqɸd\2~7~7~7.‹Æã‚qÁ8oœ7Îg³ÆYãŒqÆ8cœ2N§Œh#Úˆ6N'ŒÆqã¸qÜ8j5ŽGŒ#ÆãqÈ8dDQF”qÐ8h4"H#ÒØoì7öº¡º¡š¡Š¡Š!²!F„aì3öûŒ=Æc±ÛØmì6v;Æc‡±ÃØfl3¶[­ÆVãWãWãWãããc³±ÙØll46 Æcƒ±ÎXg¬3ÖkµÆjcµ±ÚXe¬2V+ŒÆ c¹±ÜXn,3–ËŒ¥ÆRc©±ÄXb,1‹ŒEÆBc¡±Ð˜oÌ7æ???s¹Æ\cŽ1ǘcÌ2f³Œ™ÆLc¦1ݘnL7¦ÓŒiÆcŠ1ŘlL6&‰ÆDc‚1Á˜`Œ7Æã±ÆXc¬ñ£ñ£ñ£1ÚmŒ6F£ŒQÆHc¤1ÒøÞøÞøÞaŒ0FÃáÆpc¨1Ôj 1†CŒoooAÆ c1À` 0úýþF_£¯Ñ×ècô1ú½ÞFo£—ÑËèeô4z=p#Ü7ÂŒ0#Ìèft3º]®FW£³ÑÙèlt2:ŒF£ƒÑÞho´7Úm¶F£ÑÆhe´2Z-–FK£…ÑÂha43šÍŒ¦FS£©ÑØhl46ŒFÆ×Æ×Æ×F£ÑÀ¨gÔ3êuºF]£¶QÛ¨mÔ2jµŒF £†QݨnT7ªUªF£ŠQÅ5BP£’Qɨd„!FˆQѨhT4*Œ F9£œQÎ2‚Œ £ŒQÆ(c”6J¥@#Ð4Œ#À(i”4J%ŒF £˜QÌ(fø~†Ÿácø>FQ£¨QÔ(l6 …ŒBF!£ QÐ(hä7òù oÃÛð6òy¼F#‘ÇÈeä2r^†—áeä0r9ŒìFv#»‘ÕÈjd5²YŒ,F&#“‘ÉÈhd42éôFz#‘ÎHg¤1ÒiŒÔFj#µñã?ÆŒ¯Œ¯Œ¯Œ”FJ#¥ñ…ñ…ñ…ñ¹ñ¹ñ¹‘ÂHa¤0>5>5>5>6>6>6>2>2>2’ÉŒdz¬«Çêïõ÷ú{ýþN§¿Ñßèoô×úkýµþR©¿Ô_è/ôú3ý™þLª?ÕŸêõÇúcý‘þH¤?Ôêõûú}ý¾þ·þ·þ·~O¿§ßÓïêwõ»úmý¶~[ÿSÿSÿS¿©ßÔoê7ôú ýš~M¿¦_Õ¯êWõ+úýŠ~Y¿¬_Ö×××/êõ‹úý‚~A?¯Ÿ×Ïëgõ³úYýŒ~F?£ŸÖOë§õh=ZÖOê'õ“úqý¸~\?¦ÓéGô#úý°~X?¬GéQz”~P?¨Ô#õH=R߯ï×÷낦kº¦+º¢+º¬Ëº¬Gèz„¾Oß§ïÓ÷è{ô=ún}·¾[ß©ïÔwê;ôú}›¾MߦoÕ·ê[õ_õ_õ_õ_ô_ô_ôÍúf}³¾QߨoÔ7èô ú:}¾N_«¯Õ×ê«õÕúj}•¾J_¥¯ÐWè+ôåúr}¹¾L_¦/Ó—êKõ¥úb}±¾X_¤/Òé ôú}¾>_Ÿ¯ÏÓçéóô¹ú\}®>[Ÿ­ÏÖgé³ôYúL}¦>SŸ®O×§ëÓôiú4}Š>EŸ¢OÖ'ë“õ‰úD}¢>AŸ OÐÇéãôqúX}¬>V£ÑÇè£õÑúhýýý}¤>R©§§§ÐGè#ôaú0}˜>TªÕëƒõÁú·ú·ú·ú@} >P Ðèýô~z?½¯ÞWï«÷Ö{ë½õoôoôoô^z/½—ÞCï¡÷ÐÃõp=\ï®w×»ëÝônz7½‹ÞEï¢wÖ;ëõŽzG½£ÞAï wÐÛéíôvz[½­ÞVo­·Ö[ë­ôVz+½…ÞBo¡7×›ëÍõ¦zS½©ÞDo¢7ÑéôFzC½¡ÞPo 7Ðèõõúz}½®^W¯«×ÑëèuôZz-½–^S¯©×Ô«ëÕõêz5½š^M¯ªWÕ«ê•õÊze=TÕCõ=Dуõ`=X¯ WÐ+èåõòzy=HÒƒô²zY½¬^Z/­—ÖKé¥ôRz€ èþº¿î¯—ÐKè%ôâzq½¸î§ûé~º¯î«ûêEõ¢zQ½ˆ^D/¢Ò é…ô‚zA½ ž_ϯç×½uoÝ[Ï«çÕóêyôQŸ¨OÔÇêcõ±úP}¨>T¨Ôêßêßêßê_ê_ê_ê]õ®zW½£ÞQ飯ªª·Ô[ê-õ†zC½¡^W¯«×Õ«êUõªú‡ú‡ú‡zY½¬^V/©—ÔKêEõ¢zQýMýMýM=¯žWÏ«çÔsê9õŒzF=£žVO«§Õh5ZVOª'Õ“êqõ¸z\=¦S©GÔ#êõ°zX=¬F©Qj”zP=¨T#ÕH5RݯîW÷«ºª«ºèTEUTE•UY•Õ5BP÷©ûÔ}êuºGÝ­îVw«;ÕêNu‡ºCÝ¡nS·©ÛÔ­êVu«ºEÝ¢nQQQQ7©›ÔMêFu£ºQ]¯®W׫ëÔuê:uºF]£®VW««Õ•êJu¥ºB]¡®PVVV—©ËÔeêu‰ºD]¬.V« Õ…êBuº@] þ¤þ¤þ¤ÎSç©óÔ9êuŽ:[­ÎVgª3Õ™ê u†:C¦NS§©SÕ©êTu²:Y¬NR'©“Ô êu‚:^¯ŽWǪcÕ±êêêêhu´:Z¥ŽRG©#Õ‘êHõ{õ{õ{u„:B¡W‡«ÃÕ¡êPu¨:D¢Q¿U¿U¿U©ƒÔAêu€:@í¯öWû«}Õ¾j_µÚGí£~£~£~£öR{©½Ôjµ‡®†«ájwµ»Ú]í¦vS»©]Ô.jµ³ÚYí¬vT;ªÕjµƒÚNm§¶SÛªmÕ¶jkµµÚZm©¶T[ª-Ôj µ™ÚLm¦6U›ªMÕÆjcµ±ÚHm¤6R¿V¿V¿V¨ Ôj=µžZO­«ÖU몵ÕÚjmµ–ZK­¥ÖPk¨5ÔêjuµºZU­ªVU«¨UÔ*j¨ª†ª•ÔJj%5X VƒÕŠjEµ¢Z^-¯–WË©åÔrjYµ¬ZV-£–Q˨¥ÔRj)5P TUÕ_õWKª%Õ’jqµ¸Z\-¦S‹©¾ª¯ê«ú¨>ªZD-¢Q «…ÕÂjAµ ZP- P ¨Þª·ê­æSó©ùÔe²GÙ£ìVv+»•ÊNe§²]Ù®lW¶)Û”mʯʯʯÊe‹²EÙ¬lV6+›”MÊ&eƒ²AÙ ¬WÖ+땵ÊZe­²FY£¬QV)«”UÊJe¥²RY®,W–+?+?+?+K•¥ÊRe‰²DY¢,R)‹”…ÊBe¡2_™¯ÌW~R~R~Ræ*s•¹ÊeŽ2G™¥ÌRf)3•™ÊLeº2]™®LS¦)Ó”)ÊeŠ2Y™¬LV&*•‰Êe‚2A§ŒSÆ)c•±ÊXeŒ2F£ŒVF+£•”””ï•ï•ï•ï”ï”ï”áÊpe¸2L¦ S†(C”!Ê`e°2X¤ R)•Ê@¥¿Ò_é¯ôSú)ý”>J¥Ò[é­ôVz)½”^JO¥§ÒS W•p%L S”nJ7¥›ÒUéªtU:+•ÎJ'¥“ÒIé tP:(í•öJ{¥­ÒVi«´QÚ(m”VJ+¥•ÒRi©´Tš+Í•æJ3¥™ÒLi¢4Qš(•ÆJc¥¡ÒPi¨4P( ”úJ}¥¾RW©«ÔUê(u”:J-¥–RK©©ÔTj*Õ•êJu¥šRM©¦TQª(U”ÊJe¥²RI©¤TRB”%D©¨TT**” J¥œRN)§)AJRF)£”QJ+¥•ÒJ ¨*J€ ”TJ*%•J ¥„RL)¦Sü?ÅOñQ|¥¨RT)ªV +…•‚JA¥ R@) P¼oÅ[ɧäSò)y”#Ÿ‘OɧäSr´-GË'äò ù¸|\>.•ÊGå#òùˆ|H>$’£ä(9J> È‘r¤)&ÿÄp_|ÉË‚$K²$ï“÷Éûä½ò^y¯¼[Þ-ï–wÉ»ä]òy‡¼CÞ.o—·Ë[å­òVùWùWùWùùùy³¼YÞ,o”7Êå òyƒ¼N^'¯“×Êkåµòjyµ¼Z^%¯’WÉ+äò ùgùgùgy™¼L^&/‘—ÈKäÅòby±¼P^(/”È äòOòOòOò¢’yïóÞç½£¾ÄU8¶¿õjŒ©1¦ÆO˜âtݘ¤]V[?|¾h]ðä÷ŽÑ1œ‡ëŽCóøPÀÀÀ˜©xD;·íuØë°×aEºé^¤»åV¼|½|½|{íoBlKœm} ™O-ŸZ>µø,€=ÔOÔOÔO̾wü£ý£ý£E/ýªœWÎ+çµýÝwê쩳§ÎòíкxïxïO‡2æð¡€ €€0ÃixD;·Íìlâ^¥{•îUÚ±[L¸m…õëÖßzÍ‹ýû/ö§E€mýõ?Öÿ˜Ù÷βËR,K‘ÐÕÑ×÷¿¾ÿõ}³}˜ØqbljÝ»B£.­ ¼w@Bpq(c^ö#&À §áíÜŒ8ӹиBã ³ÞŠqÐ8htÔz[f×®YžåM»3!ÿ ùOÈ̾w®Ý¸vãÚ„Þ‡•{Wî]¹×lêÔ¨S£N `€ÖÅ{Ç{xæ8”1/û`†ÓðˆvnfÅ¡‡V2@ÆäŒÉ“ÓU¶%ÖPpnÁ¹çòl$øPf£‚c`ær±ËÅ.3Ûñ|b¾ýZïïà™ãPƼìGL x´¨aÿþcöû'?:ùÑÉzgé¥w–àÁ9‚sxÞ†·‘y^æy™çOUó÷™]q[Ãk<¬±õVªhU´*Ódp•ªãñõÇ×_ŸuxÖáY‡Eu!¢/QuäN;uîԥ甞SzލLÄóSçµ¼÷yïóÞG»¥ÝÒn‰›WÝZukÕ­¾å|Ëù–Ë´:ÓêL«s–ÏY>gyQµ)Ó¦L›2â¶{O÷?Ýÿt?íÁ9‰÷Îì{ç4¤ù#ÁûOÑBÌöA´+ª\Kb"X}¦>SŸõhÒ£I&bœR`UUV‰÷T<PÔ6¢¾:|4øhplªØT±©\ëø¸bÿã<;!"ã‚ø×'fD_”8§ ¹SMu#òFäÈ©ù§æŸš¿v³ÚÍj7+–³XÎb9ž‰³D/'Æ8[_l}±5ŸSÆ¡Œy؃˜ðhö Ÿ¦~˜úaêF'ht"Ͳ<#Ïl€4óâÌ‹3/Šaÿ‡®?ïµ¼×ò^‹Oa—øSŽÚbÜÖ“Æ¡’ìØ¦ŠM›jÕ†UVm“qÛËV÷ldzÏv8à N›*6•˜.©ô ÒƒJu´-_éë°×a¯Ã⿳âU‹!_.¯\^¹¼â³‡i“§Mž6yB´gǶLKÇóÏs<Ùzή=»öìZGõ‰¹-qÚÙ¶N>=ùôäS¾áœU‡ &(Åó‡ö =鳩䦒›J\xpáÁq룼|½|½|Å¿o­¹µæÖš݇#Gš­ûží{¶ï‰Û«!89Élý/w¼Üñr|Ž¡Ù“Û„mQÛ¢¶E%U+šÙ¾ý’á— ¿dHœ=¹×ÊÖ{׺ö¯áÔÙSgO-µ²ÔÊR+ãS9ˆïMç©ó¹ÿq•Š=©jK×åÉã‚ýÛ»áwÃï†>:úèè£"·œ—0ûÛÄ9ÛUjªG=~ôXÔÖ­%>ï2Ÿeχ2æ```€©XÓ²ø÷º¿×ý½®8û2>å¸å4¢X³8+¶Á»ï¼‹ÿ ÎrÀàlÓ4 ·EÏ €x=ðzàU«k­®µº:öµXÞò1nû&Ϊn>ºùèæ£Ó$0qt|öV ‡,Ÿ‘ãXYÆgŸe¼£¦zn’®ß¥~—ú]Jœl&æ¶q5¹õÅ•œ g«:Äia–í3>ĵ,ŽjçbšR\1ãØþÊrBÖþýÑÏéçôsfë´tÐÒAKãöÚ·9ÜæpÛû,®ªŒÏñ×bZ¯Y\O–´WHÛ~—-«bWÿܹz¼ö»µß­ý.n§ZKw#Ýt7âLâh;[ÿã*;0ã‚„€ÅõͶï!ŽdB÷®[SHw"݉tñ9‘Åö÷2°§Có°˜`*ö_ˆ(K”ƒŽzùGûGûG‹7›Ùlf³™ŽÚåI–'Yžd‰£:ÃħÀWø»ÂßÄÍ“.X·ËûÐ=çË—TvPÙAiQujÔ©ñ¡{+Γµ¼þ#áXNŽ8ÛD˜1†õºê>ªû(Gõ‰¹-K]—u]Öu™Ùä©+ÞôÒ9>púÀéGê©w¤G#>“•#_|=òµc{q3Ãø|¾îûÝ÷»ïW±hÅ¢‹&tŸ9¿Ïü>óûسWâ:ݵsÔÎQÛ±¯zúgÓ?›þ™={+NüÐõ_M~5ùUÓ«|DÄ•´­´Ï›>oú¼±ýÚ-c-×ýܹn¼÷þÝûw‹Óâ“8wñÜÅs;ÃÑvÎþÇU*vÏ €ÅÁ¯ä¾’ûJnÆŽ €Åwn·Ýft›aÏ!vΚêü„óÎO=rì¾™Xö¡ÇÙýªzO‡2æ`00ÀTì¿hº¼éò¦Ë­Ï‹ÿvú·Ó¿.nób/æŠyZ¦i™¦e²ç|³3‹E”µsáÎ…;ŠÉŽGÉ%{”L\ã"žæeÿ”c¯0pÎi¸¸­§]Öÿ±½6³¿JœW*žs&žfÏu±«­^´z‘˜bϯÿÞ=b÷ˆÝ#ÄSÇlßfêCo-nÏd±Xç¸i㦛vpÒÁI']}rõÉÕ'âjx1Y&>MâigbÜžÛa‰ß·g?ß´|ÓòMK{‚ê곫Ϯ>{}»õíÖ·7WŸGñ 6ш›Š›žÙ^[…  A‚œ§e â]0[³xʸ£úÄÜ–%ñ´?³íŠëüøŒ?ñI±>ÂbºãcÏ÷‚øŒ¤}’öIÚ'–ÿ]<ÅSÜt÷Î;Cî '¨ƒÆÁžÕzVëYÍžÚ`Í”5SÖLùнß>–w\0Ó eƒ” RŠë-ûvñ ñœQq£H˓լ‰>_ÔBöìaëê­«·®n¶6qƒÊ}ÕM~mòk“_í9ªK3.͸4ã‡ö]Ë/,¿°ü‚Ù:goö¾¤[ö¶ÝÛvo[{Ž€x6¡ø÷…¡†^êZŸ;× €­oµúÏ'ñ]ƒw ÞíX¿cýŽõÎûsÞŸóDx¹Øåb—‹-ñ^â½ÄÛž*H|ãöPÇV¿ÎÜÿ8Åžøµeâãñe/—½\ö²ÌØ2cËŒµ¿½1.°ç“+þoxçðÎáí#“6vΚJÜÛ£h‹¢-ж°½þšk¬9PŒpÅ“¤ÅÃÄ-ëEov9h«ñ9ÎîWÕ{Â8”1/Û€ €¦bí:WW*!•Jħ¸4#ÂcËý1[ÿʽ+÷®Ük{m–Ï*v×I±Ä@Æç88j¶¯FƒÛ9çlœ³QœÝiÏúÅt˜í=œþjú«é¯l¯M·¶O}7…[Ž}—­O×°½61\·}$Åôc'j-¯×qžiëáU‡W^ÕlÍ'?:ùÑÉõ©OÌmY:VüXñcÅͶ+žñæZ×µ8'³©"Ësí?ô™žVuøùøùøùXþq˜ž¶ÝJWZqhÅ!Û}E‹-´àØoq½Ô®É»&ïšl¿$&Ímï­å“2m¯MLú›­gCƒ 64°ÿõŠðÆòº:ÛÄ“€?ô¨š]¥ayUqÒöKâZ™ÿ„ü'ä?ñ¹Iòs³P_}¦>SŸ1.ˆÿšÅL…Ù @ⶺ{zíéµ§—¸öÍ7wÞÜ)NÂHªñ»sÖTƒüÃàl·7ËûسþÍù6çÛœÏòd¬ø_ì~U½'ŒCó°˜`*öϹ±¿`êðw‡¿;ümÏš{gé¥w–Ýçºeë–­[Ölÿܿŭ'Ås™´°¸zÃö3–þ™HŠqm‡í)0qƱÙä¼r^9¯Ùô=@ç;ÇçHμ8óâÌ‹z޹µÆjcµ±j¶žñ#Ç?2ŽÍ:UlªØTõŠÔ+R¯ˆÙú-ŸÎð 5›Ü“Ž=Ë;1·eILô˜}‚,¯ÒàÛ0>̦Š,Yž&’pS-îQuˆ–iÒØ³fÛýýý¤ ®21ûìd’uHÖ!â¶™qüY„f~¸÷ýîÙ^¿ØO³5ˆëçìßC1ymÿjÜžlö̿⩊§*îD7è·©tì *WmXµaÕ†Ûão¿=Þy>wιEûª¸z)nû9´ÓÐNC;Ùó®%ækw•þǵ*ö¤ýDÄßX ®gµ|^µ{`Æö¬ÙútñX«?Òü‘æ§¿;OMu±õÅÖ[Ûn·ñ¹½ˆ:vݪÞÆ¡ŒyØFL x4Û¥mÁ¹çœ+®\´âZaÛk×—üUç¯:ÕùÐRlûží{¶ï±}½²{OŠ%þ2©^éØ%c—Œ]b¶qÛðø¿#Cú é7¤ŸÙVN¤;‘îD:³¿7uÞÔySí9g<>{ø[ßzüÖÃöµ/ö¬ÇöM·ÎÍ?7ÿÜüøìíOßÿôýOß›­¿UÓVM[5u†‰ñÌf³iˆj+ª­¨¶ÂQŸ÷ÄÜ–³Ûñ‰§'Š›òmê'ê'ê'YÆgŸe|Üb¡wåß•WžªÃòFmú·4[§híö¯mLĘˆ1fk‹Û­­‰¸Âl+¹¼ryåò²g+AÝ‚ºu³} =ûcù K5ÆÔScŒíkvíY¿¸ ¯Ùz-´tÐRg›ž³l Gô!fWŒ9O噘[´ç¸Åÿ‰ÑâªwÛ·Àµ¼¡hâ¼v×ê\¥bOÚOć½8ùÀò†Éö£lqŠãÇÖ'Åc‹Ç7Ov†·«ÔT¶Oµ‰O.Øs“p{Žƒ;Uõž6eÌ À 00àÑl¯SóOÍ?5ÿ‡®ä¾’ûJnÛkõû¨ßGý·¡Ž8‡Ô9cÔÄÜ¢{Àbà$®çvì€öC§w-o„eý·7ÜÔóPÏC=ÍþVL9êSi¹SçN;µõ¶,Iõ9ç«Æÿ=²¼žÃšxÊ—kõQq[ç¬Ã³Ï:lûdŽzÇs[fÌ®ê,¯bç;ѱ½Šå• öOY>ÉìÌ®3»ÎìòœªcR£I&5Š[k´ç¹žö¬çः“N²}KLÇ~^DU“-<[x¶ð¸õ‘ë"×E®3Ûçå–_X~áìsªØT±©Ì¦hÅýZÌâaûŸlù›–D¤šp׿:Öãë¯?¾.ö¼|Íò5Ë×L¸+ƒãö Z÷¨um¯AoÌÖ¹¡Á†8ê8$æ¶Ì¬ýníwk¿3Û‡òy€ì ï{'æØW—½eö–Ù[ÆmO{í—³½Ë–Wš&U1ý³éŸMÿ,¡¯c³Vs`Í5Zo±ýÛöoÛ¿µ½Eqž—¯—¯—¯õD´`{ fÏ»-µ²ÔÊR+ÅïXNZ²ÿIÀf[óÑÍG7í­Z„ܶ¯vŠW_”*6UlªÄÿ\$þm¯A\AèØýï¬ÿ±þÇ̶ØïR¿Ký.%t¸èŠý+VìI‹“¤ÅFm×äÖÄÓÓ'vœØqbGGMØ¿fË›œ;Ïþ;Meù8$kñ¹'œÛ·Ð÷´ªÞÓÆ¡®2æø€ €f»$Ï­çnÍŽ>'ÜqˆÏ:Û”iS¦MÛ礻wù.μ¯Ôž©d{Ö)¦ì”î鵧מ^úpçŸè©[¶nÙºeÍÖâ¨ýOÌm™ÙÛvoÛ½mÍö¡Á»ï¼#NÌï‚'§Ÿœ~rZ¬¹äÕ’WK^µO,Ÿêúèñ£Ç»SÕ!â¤í1Z h1 Å³5Äÿ–˜fÚn[¸maë-VÝZukÕ­ö¬Áìéwâv²¶ÿv±ÿbÿÅþÖk9uhù‹ô·¿õø­‡«W⺮¤í1Ä“§í‰ý±gÏ-ŸiM\ãkö·f7gÞXic¥•,¯=õ6¼ oÃú7m? Ø,`nDÞˆ¼é Sr–¯:¼sxçðÎ–×ØÙoÕ†UVmpïZ×öÄ)ŽÝçè›Ñ7£ošmÑþ[Ççµ»bÿãŠ{B"N~tò£“uÕ}T÷QwdÜ‘q‡=G[ôƒ–Z:h©õI3 qØ¿æ«É¯&¿šÜÙößÕk*Û§ŽÅ=OöœªÞÓÆ¡®2æø€ €FLœpÇ!>ë,Ú¢h‹¢-ÌþV<Й?Yâ†NQâ†E }tôÑÑG«ÕƪíaXâT§Îž:{êlBìƒr;%®‡Kè)žÄß–™+¹¯ä¾’Ûl +4®Ð8gøÔxhlóý2»©¯=â§Ä—ã+¼ø¿Eºé^¤»ó´=quˆ={~gÈ!w†˜M5Ú~Ò›èì™>¶¼%¬%ÛOnÿeû/ÛiýWe•Tv'×áâZ:q4BÞ‡¼yoO«Èó8Ïã<¦:g­k{ ¼x=ðrì>‹OÙŽXúµ»bÿ㊻c?â´Î-Ÿnùt˧ÕgWŸ]}¶ýG¸\órÍË5'Ð<_õ|ÕóU‰_u0.°gÍŽº:31ÇïÎ_S%DO.úªzχºÊ˜@â#&<0p‡ø¬ÓöÓt’öæcfžíx¶ãÙŽ7ý¸éÇM¹SçN;µ£&P²ŒÏ2>ËxǾG–öŸ›lqv­ø·¸¶ÀÙzË3¬­ÅŸ“j[fÄM#Íö!GíµsÔæÛÐ9YN—[fl™±ö-O7ñ„ªÃQëÏž-<[¸ó0"ê³ÿTªT!Èz=-»´ìÒ²‹õq÷¢°V<¶xlñY¿åíš-Ù~°ÙuÃ#?ùùÈÏ=áÚ_{ˆÉzû¿÷—½\örÙKw­um¯AGê3õ™úìCŸìevë'1}ßuY×e]—mη9ßæ|–ÃÅ„h«–7èóöövØÔa²<Éò$KªVd&í“´OÒ>IœÖ•˜Û2#ž'm¶én¤»‘î߆®ø­-Þ;ÛŸ‘‘¯G¾ùÚy6ç¯ ì¿]gâûcÿõû¨ßGýn½q݉õõ@f7ŽîѤG“M¬Û¥Š—*^ªh¶·Ö·s·ž6û}Ë„O·¥mQÛ¢¶EÙn–Ï^u¿Z7ñ`±N³-ŠÛó&ôkwÅþǵ*vÇ~"ÄÜm¯MÄÃâi»wÃï†ß wþÏÓÆ‰ÙOzZl»HˆžÜö¨Ç™O‹LˆªÞÓÆ¡Œy˜!&<p¢,ž ClûoóÊw*ß©„¾ Wü‰›<Ûņ¸õPÛÂm ·-<óâÌ‹3/J%¤R‰ëg®Ÿ¹~ÆöñI̶*Ö9ýÕôWÓ_Õ-[·lݲ¶Ï ¶Ÿ3´Lqþ¯Ù:ïûÝ÷»ïç¨#™˜Û2#¶ÿIm8ñ”A`Ç®ßìZU!qžqÿo%³ý?‘îDºé,?¬Xÿ°þÖ¿¹zÑêE«™7³[F[? X<áÞú7Åsî-š½oö¾Ùûfþ÷G]f¿o ~Sð›‚fï¦o9ßr¾åֵܵ½†„¸qèßþ®ðw³-úÔò©åS+¡¶+ö?®R±'Ä'Âv,¢SËgK»úŒ»Ž ³Ÿô´Øvÿ=¹X§«À ]Õ{Ú8”1/3ÀÀ€G#NÌá¸Í°=ë´}¾ùµ×n\Kâó7Å9Ëçœ[Ðô†â¬[ñìÃ3»Îì:³Ë™ùºõZ h1Àþ ËëZ’öU›EfW°ÅGbnˌ؊íkSø6tGƒ î6£ÛŒn32­Î´:Ój`Ç®ßòf•Îùíc›¸Æ×ì1Ó?›þÙôÏ,F±œÅrËiý›WŸ\}rõ‰Ùq벥˖.[¬ÿÊúIÀ–W©Zêðw‡¿;üílGÏöÍ*çf‰–ÔOÔOÔOÌöGÜ&Ú]k]Ûk¸Øúbë‹­»çây¥f[,_³|Íò5úh»bÿãü{Â}"ì¹ØZüŸÌêœÇÐuljÙOzZl»O÷qlË´ýXg €ºª÷´q(c^f€ €Fœ˜ÃÇHÜ;®9°æÀšÍþv_ý}õ÷ÕOÚÏÎʽ+÷®Ük;úÝÓkO¯=½œ­Í;–å“–Ä3#mïç·Ó¿þítGMÇmŸ·n Üf¶ÎÃm·9ÜÆQÇ'1·eæPÏC=õ4Û‡ÒsJÏ)=‡oCç$>_â&½Á9‚sç°ŠYô¢–ï¾{WŽZífµ›Õnf¶†cÅ?VÜù[ŽˆW­÷ÿëû_ßÿú¾ø÷­5·ÖÜZ· 2³Gÿד€SŦŠM%ž!jý›k¦¬™²fгMÅÚž*abîí§Ù‰«¨ÝµÖµ½†-/¶¼Øò±{¾©ä¦’›Jšm±UÓVM[5Mè£íŠýóWì ÷‰wñùиh‹¢-жHÌ+ð8O?éi°íþaûží{¶ïql Ü=b÷ˆÝ#œyÔœ˜U½§Có0CL x4àÄlùt˧[>%¶gÃk<¬±ÙßN®<¹òäÊŽ}Ä CÞÿ¿?ujÔ©Q§†õï7¼ÒðJÃ+f{8vÉØ%c—¸Ê§ÕQ^‡½{f{?K­,µ²Ôʤèi¬6V«fëŽ:&‰¹-3»&ïš¼k²Ù>4]ÞtyÓåÎÿ}”´ó8ˆødxÕáU‡W5»ŽÓš¸n@\tê쩳§Î:çµÎ_Œ8"01c§„`ygKâÚ,q‹õíÖ·[ßÎúwÄÕ½¶×oy}°Ù5%Ö÷½øç©äi“§MþW¿êüUÇÙŽ[µÕVT[aöº~¾óóŸï$ægÊöÍ Ë5/×¼\sw­uÿÞCú é7¤ŸÙ§L ˜`ÏãóÚ]±ÿqþŠ=ñG=¶Ÿ{jýÝ-þ-nëNó ®2.HÌ~ÒÓࡆvÚÉöxÙ±GxR£I&5¢ª÷Ìq¨«Œy$>``À£Û^cŸN×ïR¿Ký.Û³Î_ÿüõÏ_ÿ4ûÛÊ'+Ÿ¬|Ò±C¸ nAÝ‚ºYoKL*Yÿ¾í[ÞY>Å'þûf{ªÝž­ˆIÃñ#ÿýGLÓ;êH©w¤Þ‘zfû)n°™´-sðƒüƒÙ:Ep⨣‘˜Û2³jê «6˜íƒå”·3¹k“3&gLN1aÑèD£NˆxÌž½W+Š©.˧WzfÕá¨õo=¿õüÖófkhÙ¥e—–]{œoî¼¹óæÎ²ƒþýG»¥ÝÒn}è:ﵺ×ê^+³¶¹.r]äº>_ôù¢ÏÖÿwYŠe)–¥°ç5úùøùøùX¯ÁòIÀÖBÿý#ôçlŸäòÙlÏëg¯Ÿ½~öÄü”Xp`Áfû#n¯í®µ®cC£ÿ!UlªØT–×eZ“óÊyå¼ »bÿãü{âYÞ_Áì.öx[ûmí·µ¢oa\ø­ÂUÆïŽ]¿íþ¡BP…  AŽ=ÂU´*ZªÞ3Ç¡®2æø€ €Fl{=ç'œŸp~Bü÷öÙŽg;žíðòõòõò%¶g⪗ û3ìϰßö5Fñwþœ÷ç¼?ç™m¥û¨î£º²ÞçÌó2ÏËlúWâwÔçÔöm í9ž¶'µ{%Í“ÓON?9íÌ= ¿^øõ¯ÍÖ9{ßì}³÷9êh$æ¶ÌˆkeÌöaQè¢ÐE¡ ‹§RIDATÀ‰9U$¦uÄÓX}Ëù–ó-gÿžˆ‰-Ñ'ˆ©aךÈpþÚÀö·Oºén¤»áØcnvÍŸ˜4ŒÏ BCþòŸÿؾæÆì»Õž×Ø£I&=šX¯ÁòIÀÖ&ôÐwB_çl·;î\¸s¡íV$ÂŒÄÙÛßÝëz¯ë½®wü#Iç¬uíéç9žçxžøï¹¸M±ÙVr–ÏY>gùs_Ì}17i«_ç윿bOüo"K¯¿üj°åUûöã‹›ê‹ßrgÈ!‰Ó·xÚ¸ 1[…§Àân¶¯‰?»öìÚ³kã¿·ö<€ÀÓªzO‡ºÊ˜@â#&<°í‰£žQ7úè裣:v@âÞ°`{ÙQWBØ~w,ofhùWy’åI–'™Ù_‰›5Å¿‹«¸l_•bϘþjú«é¯Ìþ¶Æ˜cjŒqÔgÓöK⪤m™â‰Gfë´¼*.þG#1·eÆì:?Ë0ƒ8¡¿³Äqî6£ÛŒn3,oùh›˜R·äQGRÝÂÎù«Ç®ßö·ý1ƒm’=Jö(™Y`&¦ã³þ7ý¸éÇMÖk6{&œ·ámxö¯íwk¿[ûõzòoÏ¿=ÿv³[:öŽ%®…ûŸHמšwþ·ì¶Þq ÚÓýO÷?ÝoÏž¸b­kÏz¼kð®Á»øìù{Ÿ÷>ï}ÄÕ®f[é¥w–ÞYœ§úuÎþÇ™+öÄÿ&²ë–¡¾=õ€ø·xÎe|öqARµ O €…vYÛem—Õl=âÆ¼ñßçNÇ;ïtœªÞ“Ç¡®2æø€ €F,n¶c¶ž’WK^-y5>û¬¤WÒ+éíÞ;çRÜÎ(ñߣ¨aQâ†Ù^Ïò Ë/,¿·w'úfôÍè›f£Ù³…g ¾êùªç«¬ÿ¶|Íò5Ë×4Û+ËçÅmßÄöÜÆÊž­ >|4Øöâv£Qk–S“Öz•îUºWé¤m™âù—YÆgŸe¼õ:-ßÙøÄÜ–³¶*ö*án0èÉ^Ž{9î帇VZq(8GpŽàö‡Í"|×hÞ ¿~7ܦ*\¥6°çÛG<6nû)>wuËÖ-[·¬Ùú-ïýŸ JûÛ^û/ÛÙþKû×oy›SûÛ¶¸Ý®3·ÒÅþ‹ýûÛ~-–O vìÖE¬[ukÕ­U·šmýûÌßgþ>³{׺ö·+qMOÜöÜöí1…cÅ?VÜQ{î®ý3Wì‰S[ÆÍµ×n\ûçS“Ë+—W.¯¸¦&®3¶»Œ ¿>Iüñ»óì­xð„íµ-{¹ìå²—qÛOqó|ûo¶ì9U½§Có0CL x4àæ£›n>Úž)Ñ]³x‰å9¡¶oæÌ°¸5©Þ£wø»ÃßfëŽÿLÿÙ=­,®@²œô´&†jfkÓ¯¶Ïð5ƒzÜö¶ÝÛvoÛ"Ý‹t/ÒÝþáåÿ¸5\ªØT±© .<¸ð`³5œ[pnÁ¹qk?bxiÏDªå@RµL¡v³ÚÍj73kQöO#:Û¶,‰5›MÊ‹É_¾EÜznXãa‡56»öÑŒ¸U¯¸O|šÜõütW© ìùöIû$í“´ÿ<ÝþoŸ‡©¦~˜Ú²®°VzNé9¥çÄÿɬb*Üþ'P.谠Âz¬l“Z·ŒvþV*Ž[­®µºÖêjû9öjàéN¤;‘Îöä²ø7[¶»®XëÚߊPÐþpQLí4´ÓÐN¶×,®ÓrÎê×9ûç¬Ø³¶ŒÍfÝ·ØÃ²Ÿ¿y#òFäÿØã‚D¯Oüîl{Ûlf³™ÍfÚîÉ—¥X–bY û×)ž1lpÆgÏÝ©ª÷„q(c^¶xs¾Íù6ç³§”·F´¼õ–¸FS”›—‹].v¹˜8wÕìªÍ•{Wî]¹×9`Ûv7Üä}È{³µÙ~ê°å ÚìüwÑ>ÿÇ>[œ=½zÑêE«‰'·‰k’Ä»/^ÅþÝûwïß-&Ý,ŸRfFL :CË,ŸCi6!娞61·eÉö÷;Nì8±#7Š?ñÜPû¯<“\íß¶Ûþ­õUSTγ~û¿}Ädýü>óûÌïsnþ¹ùçæ‹>S<îः“Nš0%`J€ík¼DÛA £ŽIg¥³ÒY±çUˆçð}èvmßpÏÒ–[^lyá*íÜös+mSŸ©ÏÔg¤ù#ÍiÄ7”o¿=þöxqãÇmQÛ¢¶E͸;ã5ÖXs í>DLp‹Ë<¡Öµ½†2cËŒ-3Öú¿7:ÑèD£»&ïš¼k²81N\)¦ò—x/ñ^âmö·–Äç4nWk%~õë<ýsVì‰Y[&Ü7¦ý5†ýÏŠf\˜õIBlŵj*ÏÛÓ†ëÔ¨S£N ËÄ»)zuqªtëê­«·®nvâŽíoRO«ê=aʘ€mÀÀ€G#g@WŸ]}võÙiŒxf•c÷ܱG8¨[P· núºsO>=ùôäÓ4 ,GíµsÔ>³ëÌ®3»ìÙOq^pÂí¸©xª™í[¨ÙsœE0Ü eƒ” R¦IDâvL⺓}÷¢e b’Ôl bRÞQýUbnË’åš­Ÿp~Âù †ão}»õíÖ·³çêœîýpï‡{–7Î¥êpæÉʾ},žY›pÄ Cëz¯ë½®·cÛ†å:MÛg²<Éò$‹ÛÍ™í Åôèãë¯?¾îZ-V i’TÆwdܱ¯þ¾úûêÇñe¸`­k{ "ÐMˆW!â˧–&m/äŠýsVì‰S[&Ë6Ÿ³|Îò9ËÛsŠíu2.HÌú$!¶âŠ5•h™ Ñ®Äwœ8•äT;VÕ{Â8”1/Û€ €F,üUç¯:Õqì Dœ=~äø‘ãGZNª:g<¼êðªÃ«:s,\zaè…¡ 1h×X>ËžýyïóÞç½O»¬í²¶ËêØý×sX^µ¡Á†Ø¿qS,ë}~1÷ÅÜsgЧ±ÚXm¬ŠIçi™–Ìn*ضpÛÂm ;v ˜˜Û,×l)@Ðt¾Ålª¨\órÍË57&W¡1õàŠ“• ýíãåëåëå+®ŽMˆc.®à´¼#…µ–]ZviÙ%në·çšq5ë¶[qí‘å‰Y‰óZùdå“•Ož>púÀéñoîUëÚ³ýœ~N?çØO¢TB*!•p¶^Èûg«Ø³¶Lhâê[±Wfµ¥=0ã‚ĬOb+®[SÙójûÕScL1¢Ú±ý›âKžYÕ»÷8”1/Û€ €Fl6œW«ÄmR<¶xlñX³Ûédoië'©Ž€í³e'¶ÞÛ}ê%qSå~—ú]êwÉò¶u¼C©bSŦ²œJ‹Ûþä;•ïT¾Sâéhâékÿµ?©bSŦjð®Á»ïâ[ï³O-ŸZ>µ5Ï/7·´l ñ¯b’nÔï£~õ»õ,o^ç¨þ61·%Þ_Ëç·Y_§Eé(bªH!â–t–·iå8»Çd¥u”uHÖ!Y‡Ä­Ÿ5F§ãŽw:ž8׎ˆ(Ñlfoö¾øìƒíÛêμ8óâÌ‹îñYøsÞŸóþüçq –7LvÀU˜ÉÓ&O›¼~öúÙëg§|‰ëó{Ü\¥Öµÿ³,nŸ#ßtyÓåM—[¾³ÎÙ ¹bÿãt{¢Ô–‰Ê¢žÿúþ×÷¿¾/zû`ƉS?$ÄV\½¦²ü,Û>MÍìô#ñ4wËQ³¸E¹Ù_‰Ô3«z·‡2æ```ø|âéªb0,¦®ÄíøÄè¡„þúÇ7¿)øMAñô#Ë!´k½jñlZËsiÅy²™VgZiµ8â©]í¿lÿeû/aŸ-ŸÒ'ž&%n,–{þíù·‹I.q›&ÿhÿhÿh±ç‹ýû/ö·¼nÉQûcù2±?%–xXâ¡xîšxr•¢T,Z±hÅ¢¢åì鵧מ^öœMlù;bJEÜÌ*wêÜ©s§®ºµêÖª[{VëY­g5qíŇNúXž¡_”í-:*úJ¸õ;Ë€vLĘˆ1ÍG7Ý|´ˆÛ‹å,–³XN˺Q|{Š hñÜ_ñ”Sqë]ñôÓÄœbv¿ZWìˆ +=¨ô Òñy¯Å²ZSá¿õø­Ço=œ9àq§þÇÙ*vWõØãbë‹­/¶Ž×±òàq’Êõ3×Ï\?#ZŽø~ß>â=ï¯çŠçL›¼bý^ëÛD{fUï®ãPƼìAL ˜Öñœ×ëêïTR½ŠÄ<;Û½dB¼ê†W^ixÅz½J÷*Ý«´c_iâlKLÓ[o¥É¯M~mò+=9à9ß> n¤ÖMÌ×’´=€+ö?γÏôØŒ àê½÷Žõ;ÖïXoÖ>ÅIÒžÜBÜoʘ€=€ €€G3›,°¼¡·«lK<«R\÷c½•Ý#vØ=‚©1§€@R™³qÎÆ9Íz`q…±'÷Æî4eÌ À~ÀÀÀ£‰Ûxš=Ãò00À?ÔOÔOÔO¬+¥7ý¸éÇMŽÀuì¶Æ.»dì뵩ÏÔgê3¦žH8‹B…. 5‹²ŒÏ2>ËxŽOsýÌõ3×ÏØ>9¦Ï}¾èóÅ£d’=ú€òû~÷ýîûµ®ÞºzëêfkN›4.–³XÎb9Ÿœ~rúÉi¾—x2Ë86áˆç?Ûñldzôºî1eÌ >€ €LuÕ}T÷Q–UÓ·Ó¿þítgØÖ ¥ƒ–ZjùûáÃ;‡wæ] !Ø×êZ«k­®·ÖÜZsk ÓÓ`Iôоå|Ëù–‹è[®y¹æåšo=¿õüÖó±©bSŦ¢×u§q(c^ñAL `êùªç«ž¯õR…  A‚*Ÿ¬|²òÉ„˜V°[¯?¾þøºåÿm²AÊ)-×À{€c‰ qË›OŠçûŠkÎÄó&õsú9ýœø}¾‘ÀLLΘœ19E?)ž,N)Ú¢h‹¢-ÄÓ^3ìϰ?Ãþ« ¬*°ªì ²ƒÊjòk“_›ü:ã3îFߌ¾}“Ð×]Ç¡ŒyÄ00À°žWá˜@Âõ±ô´€EL ÀMpÀÀÜ007AL ÀMpÀÀÜ007AL ÀMpÀÀÜ007AL ÀMpÀÀÜ007AL ÀMpÀÀÜ007AL ÀMpÀÀÜ007AL ÀMpÀÀÜ007AL ÀMpÀÀÜ007AL ÿ_{w®sÿüÛÌTÓøNiA¥h‘ɈdßI“S”=ûvŽTH–ꛤ4B$)Š©HË(K»êÙwZŠ$Kvçþýñi®ëÌïv›‡û¾?çñø\×ëškÆ™îsŸ×ýîu^O÷ýBB,BB,BB,BB,BBü«Ó³|Í‹Óõ¯8]óãt}§kÁ)¿ÆéZ§kqœ®%qº–ÆéZ§kyœ®qºVÆéZuʯÕqºÖÄéZ§k]œ®Ïât}§ë‹8]_ÆéZ§ë«8]_ÇéÚpʯqº¾‰Óõmœ®ïâtmŠÓµ9N×–8]ßÇéú!N×Ö8]Ûâtý§kû)¿~ŠÓµ#N×ÏqºvÆéÚ§kwœ®=qº~‰Óµ7N×¾8]ûãtˆÓu0NסS~ŽÓu$NWFœ®H|®Oþ'N×iqº~§ë÷'ë„– $Bü€€œ#´ð¶”m)ÛR>þä¤]éqºÜ“ØÝˆÝ8ñïFœsîCœsî@œsî=¼*NWι÷pιëpιßpιӰ{ ‡ïîÂñºÇpι»°û »£°{ »‹°»Çë.Â9çþÁîìžÁîì>Áî¯û»C°{'ü]·¥mKÛ–Úwp2€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!!"ŸúüБWÒ‹¤9Üp^‹y-·;Ðè@£ÈhÏ ÄKð ^Ák3xzfÀ æXg¬3€cCí]¹weäöE‹-><ÿ±}íÛÿ¯jë«­ßýsîܹsÿœ µÅ¼ó~™8yÀä¯_¿nýº#ŸGEyÞáEE"Áë%xí¯£ìzU¯ñàõ¼öƒsÀ€9Ö æXg¬3 §CÒÛ7ßüȽ³›õØ¡^uÕ´g|v‰¿µöJ镲¯èŠv+Ú¹ÂÏ‚×Bðºˆ×«28‚ó!8+ü\0ÇšcÁ àŒuÆBv‰~•}òûO~¸’g†øCRúöµo_Ë(ßwYßeûŠ×°˜•:¹Êä*«ì½nïu‘v~j„[ÐçAÏ'ò«287‚3ÄO s¬9̱ÎXg,œ0‰I Iã»Ç¿{<£fÇn»í­t|ÃÜ¥¹.Ø´åͶ{‹—˜ÕiXïj—ýã´:uÖüNúM§Ý³ä£÷=ÝcÝÜA®ê9kÖç ‡öû¾ZW~o`ƒŠO?÷jƒ' H/~"£ä¸ã ²¿ÑþF‘A~š„CÐÏAoŸÈ«£Á“ÕK¦Ø µçs¯¾°ï¡O¿7ëóQÍú;èéï{Îúèýñ_õX÷Nú˜Ô{–L«ó÷‡Ö»ç/cÿØvoJ«Y.Íuqù-oß?78O‚³ÅO€DžcÏ‘ïçŸ~*øüõW}—vuÇV¬oSìç;*¯ûþºKúV^Ó²äÝ÷õ]]«dù{ç¬îS¢eï/×ì½fpêÂÏÿTøÏ·¶ùúúü[ÊtØ’fŽ…“1ÇëzC¹çÔ|üÎâOÕ䙡eï_ÓöÂñéw´êøÖ Ë;¯éToòÚNÛí{îÝRZ\üDJß+ë·è×pØÈ²/6¾ýƒy¯¿øëÍḵ€36ö® ðôâÁ^.ØÑûº`wìñ‚^°ß v}ÁÞ/Ø:cáÔ“˜ÀÐö Ý74Òç‘|äÛß,ëƒZÁÂy^Ý\fd™êƒG·^3±ÅiÞŒDRSkÖÌ®zx|×µ_û䬯yîú±GÏÒ§½ò[GÉ9oÏyûИÈþÈ~?c’ï7¹ÈþH$èáßÚù=z¶ª1í•OÎzfã]?ÿi¡Ú¯E" Ö¬™]uÍÄi·wxsd™Þßn]°pþ¯6—Éúc ΙàÌñC ^sìyû.*÷ÓÓE.isú— ÊÖztðŠRU«Nš´pavÕ*cŸµèæ’oÞ_}õùW,©wÕÆõæX̱Y©UjwÕ”¿tú~ÊÖŽ|·úå?8píÚ²e³«Þ1ï­ŽMRº¯ûÐóÕ¸d⦒æX 'í J7žöJ°g vnÙ»Ç vƒÁž0Ø:c!{ €IL`HP ò.È{xBÖ²ÁÅ+ßþLÙm}Ú}rˆì³^µor]Ú‘f;‹–~<æ[¾¸å‹_®ß~éöK3–ù‰“ø‚^ ú6+Þlg¼ï]´¨ý ]ÓŽdoЛõº­Ï;ïܲapñî{¦lÖÏ“àüñàÔ̱…4»õ«*Ö}òš%²7îÍz-2𦕟ÈW¹Ö¦—̱˜cK®¬ÿÁìò©ß¾²¾u»ì z³^ûΚ÷A͵7öª6º²9×® hé÷. vhñÚàûÃ`—茅'&1 €!d ÊÙ2ôÉ¡Oî#+ƒ×”*µ&<²zßÌÎë×È«nNi³®ÙÐ^©eΙZ3+ßKz¹ôr‡Sô‰)èϬtr¯ÔÛN­¹9eÖ?› Wè«î›™~Sý¢Sª šÿÈê¬|/ÁYœKz€ìc¯™—öÄgë*ÿã™§Ÿ¯Ð7V­Pd®¥éW^[¿ÉÆáæXrÎ[­Wûù/Ñïñ0ŒÑõp¥®¿«½§W2çM­ëy¸k÷]»÷™™9¤s8‰æDæDýóž==n[1µúáJó?«½'LÑotõèŽý?öœcÀ]K´î½iÍž0…¾ÑµÊ çš-j{åuõ[n|ÜKâϱÕú´_ú¸3W½Y¡P¨¢ß¨Ú¶àøåwÜdŽNí® ÌyS«;®pïñ‚]¥3¢ €IL`8¥öÍÞ7;Òÿ¯þõÂ]1ÿÎàâMú¤õ ÷Èøujçšõ†7ªv÷˜n±ž“Ç>Þpÿ"ýÃÉôX¬Þ¨×ócºEö/L¯Y/ÜÑo溸À ‡ÓúÄzN‚s,8Óô€96¨¥{ üxå´pG¿ÿQ«Lš°pÑÕÃn»q}es,‰9ÇÖÿ¸ÿoøÀÚåe+‡;úÍ\ÓªLïÛRs,pòwÕîÓ-Økåœ=^°·tÆBf`“N•¥‘¥‘ÃmÓÚ¦ýr(Ö´|³»ü>E¿Qõ‰_ªß9zh¬çç­ßúðP­Dö ú*V×=ñKsBßèº|ÿ‹ó»Ä¼§Zp¦ç›^ÈÉsl™ö¿µb[Š~£j‘Ü­¿úr•9–Ä™cž~_ù¡ŸåœÐ7ºÞ>ìA-þhŽNή ú£‡æä ^°ÃtÆB@LbÃ)2ñÓ‰ŸŒùq1óëÞ2µûæœ<8f®JUX1©X¬çjc‘E2rë(N\ÐK±:m@©.‹'ËÉÑoæ:¿îÄ2Ý7Çz®‚óMGäÌ9¶Ôì^Õ-'G¿™ëUSn¹èëÑæXâ;ÇÞøx÷;ÇMËÉÑoæÚåç—{·{ dß® ÂŠIÅìî‚ì3± &1 €á¤ûr×—»ŽÄü¸˜iël8ÀȘ¹fÌéús­â7×»ºÅGC¢Ÿ±bÊ ÛµàHó#Í#«tÇ'蟠—¢{ìæz7\üÑŒ9 Õ*.úÍ\§5þûÐbfÁY§»rÎ[l×7¬Û"ôý{G&~±ðÈ%Ï–{aóZs,§~޽¶XͶï_óàæ5óË•ýf®- >Ñ´o~s,pb»‚«[|4$ØYÙÝe®ÁnÓKN&Î.3_ùê¡NÁsøÈK¼´¿ÝŽÚ;jgìòÌ0œD3:F6•˜Pb®£|\^ÏJOš–Ϙ«îêÙñ¶”bãÿ>þïÞÐcŸ bu×®žs¯KùAÜ«ö¼¡Õ¦iù¢Ÿ·à¬ Î==î9öнõ&o|WÜ«Vz~\×Åß™c9õsì}¹ ¯þ‘¸7V­º¥ÝªÉƒÌ±Àñî :Þ–òƒ}]¬ì9±äLàw¤Ñ‘F‘˜·Ô0œDÓÆMwpF¬ckßÌÎë5 ».~­Éô´˜¼óÃä&g<¥ÓȺ gbuÔâ×&wOË-â=vÝ73=¥~јŸj0nÚ¸ƒ3t@¸çØÊÿxæéÅç z]K(ÿÊ'ͱœš96màô]·µñ»þß°e;+¿lŽ~û® Éô´ÜvtÇ®ÁžÓKÎ$>q™ßû{ì* Î:0œ¿ìøeGä¶X‡ÔÂU·îÖÎh˜õÚ¯{¹úS2޲æ(˜VpïXýFÖ=ÝKýº·0%C¸›õºpÕ󻵋uÊg ~ß[ºôƒ‡V~-ÜÍz-Ô4åð†‰æXNÞ[£Q—Ïîîf½¦N|¥Kë¥æX k»‚rõ§dØËe½;Og,9øÄnîf%g…NЧr=•ë@¿è#©CŸk ¾5Á8ø[ëî :ŽKéë ß¾!=ã,]DZ}«‹v_0÷µ”>bÝßZ;ô¹ùæ·&D?ŸÁ¨ëÂ4Ç^vi—¿;S û›?zšc9ysì}Íç©þ7±îo­åÖÝúàë4ÇÿmWÐq\J{¹ßZƒý§3–œCœ½„ÁÙE Ùléý¥#cC›m³½YƒàñÕÉ%kU<2úYívo·{÷N×{[Ð'Ñý3¹äCûå_Ýü謯šuˆuâç¡ÞÇ[¡éÈâKÝ÷÷8ë5£Rw|~š9–ìc›ÌÚåþ—D¹ÇWï¹í£êžiŽbï jU<Ò.îøj°ÿtÆ’s€Oað‰C6{½èëEŽ>tzŒ*ÝvÚh#à‰Ôõ:o­—+Ö±þÓŠŸVdlÓD z#Vç¨7ï±z¹D¹'R{ŒjÕjÚèèç68u @²Ï±W¬®WaãZ!î‰ÔÊ{&ŒX´ÚKö᤬¨Q©»(÷DjÕQí®Ÿògs,8c¶+è¼µ^.»¸©Á.ÔKN >5„Á¿•²ÏÁÈÁH¤Hå"•w Š>h6®l]¬å»†¿¯cëÔè6bnô3üìžg÷ø^-èèž[§ßúsÅ·'^7®|óÚ–ïF?ÃÁyœ$ï[þÎá—õâžxýk¾öyš9–Ÿco1à¥Á3Ä·'^ï.ðþìo˜cÁûŸ»‚ÝF̵;ñìB±äàSOœ`È6ßvÿ¶{Féèc¥Ú—]ÚÛØ—]uûøö#·Œ~žóWË_mçäÈ’È’ˆ¿EÈ¿-‰,‰z#ºg¶¯Kã–âÛìªÕ®(ýÝÒÞÑÏsp6jF€dœc/*xÍs?¼(¸Í®ZñÍ1ý–L6Çrâsl¿wçþÛ#âÛ쪅•»~QCs,8cÿ½+h?¢qKû·ìªÁ^ÔK¸ €ãK‹²Í¸ËÆ]v`HôQ2kFÃûûÍHäQlô;×÷ùë½u¿hÐòƒ¶m|l0²ðþôÑÏö¦³7ÑP7ú!ºOŒ¬^"½D¢¨s7/ݳgç‰θíÚK¯nùùç>š÷õ­[¯|eé¯ÿÞ Bµ­éw>vCªO=µopzÑúõíñÏš1ªb¿ÑÏvp6êF€dœcKÜÒû“5‡â#”NȽ藫 ·<¼~Ä%%˦l)žçËKüøÄ¹ò¤ï¸÷Â?)¾up­U¿þ.£ä‹÷_¸º@"ÇÀù·”i·%ÍËñͱźÜPkîyɬ>ÐzEËJMþÒ¹üâ_þzk¤ÓæÔi”žh³íã§ÜÑß ÎØ`×”[¯Ã•»þ®öîóWžÛç§²fd®›Ç¶ÙݬY"|/Á^ÔK¸ €‡0830d›bW»j×ÇÑÇÇîJ_JIÔ¿9xvê95wV®sÙ£ËïÍü˜?ž¿áä~©ÑÏö”*Sªl  ýÝ'³óÚ/5!¢Ó³žSsgm­&M»õ·þ:·¸Ää?¥¥%N¼»ÒÜ%)Gyw~p6êF€dœc+}:î›ÅéñKËÞý÷<+ÎÎû§+¶üxyÖÿ-yY«îúvUÕÜ“ÎYøs¢À%ºÞóû5?šc9¾9¶mùñ‡î(’4wØ}¯ÝÉ󣿋D{œ÷u[\¶zas,8cƒ]S"l½¾¬ÚêÂ6o_ô›hp°uÆnàÄ$ C6ØóÌžg"µ£‹ŠÏܺâ¥DŽ~½[é¡ »£yâÀ;úw¨ÑèŒèG^¯g½ž{¦êIA?D÷ÉŽþïÕèŒDM‡çíÕk̘ÿø¨Ráo¾¼îév÷Õ6lÉå“ç¥~¼3xHû;ÓÇí¸´òÅm¶<‘ùÏÿ¼óÃ?Üt(qbàŠÏ_×fÅKÑÏypNêI€d™c/¬Qä»­Íã”VÙ8ñþEy/Z[üÛÎûõ±?wÞÏ._Zû´o¦{²û%Ÿ•,ó»AƒVV(qï=ÕÖ¬¿¬x¯¾=»jîç^˜ù{I´¸Rî±ã—´0Çr|slÿI òÞpnâG¿Í§x¬ïg±Öj‰ù˜ µ.5péRs,äì]A‡ÎHˆ·=Üßp~¿+3?¶Q ®/0ªÊØa51"+uÏ[Ê4l˜8{¼`GêŒ%¬À‰/g†Á`ÈË3–g¹$ú€;¼ÆÃ#†'˜õCZ»ÿiÒäå;ë{è³*^2qbÉ —ž¹®X¬£- î#r µKͺùRÏ[´mfôã?’ëH®È2™“=ÝùRó,Û63r`Ἒuã”î¥Þ¤Ëwøów‚ÇVfF±‡Ö Ý¿ÿÿ¯ þûÌ_ëOÆ«ŽÞÿ‚ãŸùàœÔ™É2ÇþµPû¿Øß ôÚŽ=W¬}ï?þšTçÛ‡|Ö4ø_£ÃÝ࿹jB㌯ŸþsÞ.…rm[›p]eÒ„…‹ÎíÁÃ;›cÉú{þy‹o+?ðµ+ÊVJäè÷β3ÿrëŒ<ÿsá«ß“\ðMo øfðýæXÈ©»‚óm›ìšaëĽÁc+Úüâ ë';.F v¤ÎXÂJœ\rN,†l0qÝÄuònÔe³›.é²%Ƭç×Õœóè£Y?Î’e|ìqWéÆÓ¦G?þ­5¶ÖÈx^gædAD÷F»ZUŸ6=‚Ò9ÝGîÛ7ócûçÚáÝïÿKVÝÌ_õ·¹ê.ì8ð²ÙÿXÜeKô3œ“: YæØ2W ÚµòÒø¥…›4©õõéÁã¹ ½À÷Û gå#ËO¾cYʯßK¦w'Z |Å’zWn\oŽ%ëslÕí M¹:‘£ßû .¹«Úÿ\ñ‡k;¯üǯ“ê¨no¿!Yàn¿¼Þ¿åiæXÈ©»‚Ò§MOœ}×]g•ZüÊ+ÁckôÕÕ;çvKö8Ø‘:c +pò w,†lZ(µÐÞÁGùè˜ùÚܼ4ƬU³š×ëtΈ3«Ízr[tMÞø•µu{>x{ôã_ôü¢çÏÓ™9YÐѽñÊÚ!ï˜8ð‘bŸŽ©}”{Iç¤ÎH–9¶ÊŒç¶-ª”pžœ…ú×Fí×|±<óû†3.Óòá +všcÉú{û½otlQ81£Ó›ÇìùÈ™Á㼸Ãy6\اî'××”\ý`‘Õ÷—ïjŽ…œº+hV®KÁÄÜÔ»ë†òÃ+oá¨~äŠÚK®¼¤ÞÏ~_¥ø5ùk~ñp‹NEß÷܉gÜøÊ!‘³SÏ©¹317xÁŽÔKX €Ã'a°NÊŸoÌyë·I–5yà-•Û–húmôã2uÈÔý>:/G z º7¶TžÝ­é·‰óÉÑ윕?yˇ7.ùð×w÷ZÜú¢—#‰v'à|còìÞ6æhg ‰>ÇžûГvÌKü ·\«¡?/¿¥ôʇv­l]¢@ï‹×^}Å5u Ó&ó÷RtO—Ÿ?˜˜p…þ#Ç/hŽ%ësì=ÿü¸B{-4Mm;m›òç5<ÿÐöZ禞—öÓû>2£Óù™ƒÞd €ƒzþ‹yoÙ–Ç 9oWжDÓoaÓµû“Ž_4<ù±åýÇyƒ~¼>+ÁCíAWå?ÿÛôÖ›[´HÌ=^°/uÆ’~«‡Iò†Á`8)G|•³.[ºl·ød×]Ã;vMYýøïêxWǽ‡ufNô@toì>·VÊêÄ €ÿË;k¯ùtLíÚ÷ÞÒáÈäÉ¿¾»"íÂ"?ŒúnæÌÍ_K´G[å¬RÕ—íöK@2αÎ.Úü‡ƒ‰çùòŠ[~¬+À.ö§n?{>‘¥—Æõ_¼ÁKÖçØû.Zôbõi‰”ö;4Ïß.»ô‚Âó¿x3x„ .îÿÌã-¢#Þä €¯TfàâŸÍ±óv»¦¬Nˆ{åþ®é®Gù4‚Ô^×5£å+××­øàÚàϼ±¹þ-÷¯¼½fÉί5?÷´Üi?ßø§VB¾8Ø—:cÉ ¿U €Ã*¹ÂàÿIœ—„ª†©6*võksŸìº/½sóú—é75ëu_zzËú—%WôÜñ÷†eå‡-ºüßÿ7O¹¯ÿðãÞéõi¢½÷7¨ŠÝ°pîúMUU5ë% Ê_³ùÍä €ÿãC·÷_¶zFb>þÊ/?óÂâsõ›šõúc–eTž•üÌššå¦_»½Öëïî [Éçêw˜=là9kÏ.»3úÏ'W|í¸Z—¾wŸ~SÕœ·+èܼþe‰°éšÓ=åŠßò©ä†KÏ\WlÚMu6 ˜yƒýUo·N¹·Ïâ£ÄÀ ¶Ç ö¥úMUÕœYg¾:óÕCÀªšôµyƒ¢MÞ]'>Ùõ@Jçë©ßÔ¬×)óFÔ;3ñCß/¼–§mÛÛÊ׿ãís2?þrO?¼jÕâ“ÿ”––˜ÑoP›7¨sÛ»ëô›ªªj2ÖE*?°i\²Üñ·ÊÃÏ5[Ô¶|Æç/ûC‰—ïY¾fö%%˦l)žù;*Uòÿ–®z5áà_&ŒZ´J¿©Y¯4ZQ³RZ"D¤ur÷>ê×;XØPdÛºy÷Þ²°áõÛc…»É—Œ4È5k§~SÕœ·+èüc½3yk÷[÷{­j]Óóí·í{ ö¥úMUÕœYN?8=2U¬ªI_½Ø;€ÕĬ‰üàƒ-þÕ¶nÝÁû¿3Ï[ÜûãÁc¾ìœKFo>âÌ»¯}rÛÔy“ëþ’Èѯw«ªª&{M–wǪÁwqií ïnn˜ùûò`5Ùk"¼¸ëöi×¶Ù{﹓vô;¿tžÇ¶-»ýÜ×§µXyìX7¹`ïVÕœº+H”wŸH}í‚zµøõFi%"—4þì!ïVUUMœšƒÞ|ºª†£F¿˜Ý8¾÷n–Ò,å—~:3'× ¢{#1ïüeÕ×–·y«ÌŒb­)<ÎóWžÿ»Ÿnx _ç“öý¼óÃ?Üt(ñC߬ÜXgªªª&þ›,÷ÎJ Ô *^zÝö1‰Ǻ°9V5Ç&Â=€›~ýxÚ½ÿÊÞEXßkÓWÔ:;ñï¬3U5컂D¹pvÝ?8ï?Îôãõ‰¶å‹u`©†ï·ª±gŒ=ã@WÏLøê¬þ³úê™ú»Ôßí}8ëoðçsÐ=€!Ü·yÏ7æ¼õÛÆ€OvÝR¹m‰¦ßF?þ!S‡LÝÿ¼ÎÌÉ‚ˆî-•gwkúmâ¥vÍЪÕ_»šþU©àÿù_CŸ{îŽ;‚?“\ÑoPóɳ{Û˜£-$ú{îCLÚ1/¾áhÅçÆ”]òVæGUtO—Ÿ?˜õÿ‡ÒµVZ¹$øÚóþuáÄŸæ&Z\¡ÿÈñK'šcÉú{Ï??®PçÞðÀ‰öžàó_Ì{˶<æXÈy»‚¶%š~››®¹›ÕéÙóÃ=7ïèué†]·}ÖªUÖ¿vÆügÞ÷ëg\S÷âQ_~™h[¾`_êŒ%'üV„…ž™p‚ÛG^zä¥ýí²>ßþÔ‡¾™ €!\·øºÅ»ÏŽ~‘)ÖµUíÚà“W—/oV®KÁèÇ?uÓÔM_Ò™9YÐѽ±|ù‹/w)˜8Aiå:%§.¿7xl›[¡îÂÞ?xoI£#ÉúõH±OÇÔ®ýÌç¤ÎH–9¶ÊŒç¶-ª”8ïâ½<ïs¾­–õ¯-ú¿ |Q9øÚü/–·eB¢ÀeZ>Îþó4­±Ê 9uWP·çƒ·'æŽ.+›ºÿpó˜^Ÿž»+÷Ç;Æþã5:Ü#âlð‚©3–°‡C8BßÌÀ &®›¸îàÑ/þe³›.é²E|òj»J7ž6=úño­±µF†ÎËÑ‚ˆîwµª>mz"¥^o|ö›gýú®¦þü]…_ï2¬ÿù#FüÖš8ð²ÙÿXÜeKô3œ“: YæØ2W ÚµòÒøF¤e—©°ü“s7äIßqoæÇvåâ†u6žsí¨^×>|Ôs‰½/^{uá&Mj}}zæ|îþ| t¢Ý¥øŠ%õ®Ü¸ÞKÖçØªÛšrµøäÕn¿¼Þ¿åiæXÈ©»‚Ò§MO„M×Îo:^}ÓMsአe~ý+ã»r¼c\ç‰%êϸíÍ9 ÚÝ»|aÃ[t›;½dÝѽ½fÉί5ÏývzýÚÝÿÞ6$Ðý‰g7]bW@x €“WøBßÌÀ –g,Ï8rÉQnö>¼ÆÃ#† €OJ=Ú¥fÝ|©ç-Ú6ó(¾ëH®È2™“=p”ûs§æY¶mfäÀÂy5ëÆ7(­~¤l³%Wf×]Ó';¼ÿ#†åµ2–g¹Dg$Ëû×Bíoübo"¥¿ÞÇwÜ…gÿ´9ëÿf¼¨À5ãx±ì…ƒw®hžhïý­ZeÒ„…‹ÎíÁÃ;›cÉú{þy‹o+?ðµ+ÊVŸŒzÓ¾|¿9rê®à¼EÛf»¦ÄÙÔ«tñö/¯ËúüÓ~}ñM3síïÛy|½I‰¶Ç v¤ÎXÂJœ\Âúf&†l°ç™=ÏDŽr‹ŠÏܺâ%ðIùè˜þj4:Ê»Uêõ¬×sÏT=I 臣|<{ÿ÷¿jtF|ƒÒËιdô¦áá €+>]›G¹£RpNêI€d™c/¬Qä»­Í'4ýõÜ›4©õõéÎ-Úç‡]ç7º¸ÉO7ŸûFžR;&æûüêg¶N/ðNÕ›®,Öùö!Ÿ5­š{Ò9 N¸è·ê¤I VÊ=vü’æXŽoŽí?iAÞΟŒZ¨u©K—šc!gï :ÔhtF¢íëžz ÆWÃ7Õí|Õ§ÿêqåŠ|·óÍŸœ»lûØ«_tÍ×osQ±fÏ~ﺛí½0óW%Ú/Ø‘:c +pâË9¡of`È6Å®*vÕ®£‰Ý•:¾”Ò2Y>T9YàÙùNî—ýlO©2¥ÊÁº‘@ÐÑ}2;ÿ¨¡ýR“÷>»‰YwWš»$¥eô³œº çØJŸŽûfqz¢ÅÀÇŽu3ôÍ\Kt½ç÷k~4Çr|slÛòãÝQ$?:‘ë}Ý—­^Ø ÎØ`×”ŒûºDÞæ{Qg,á&NL93ôÍL ÙfÜeã.;0$úȘ5£áýýf$Kœ,µÁÈÂûÓKD?Û›ÎÞtvFCÝH è‡è>i0²z‰ô"Ûì­³fŒªØoFô³œº çØ·ôþdÍáDS“±æßR¦Ý–4s,Ç7ÇërC­¹ç‰l³·¶=cü”;ú›cÁìšìܲ·{Qg,á&NBßÌÀm¾íþm÷ŒÒÑÇGµ+.»´·/»êöñíG4>ÊßÌ_-µ“#K"K"‡u#¿ZY9ôFtÏlÿ^—Æ-·ÙU«]Qú»¥½£ŸçàlÔŒÉ8Ç^Tðšç~xQd›]µâ›cú-™lŽåÄçØ~ïÎü·G·ÙU *wý¢†æXpÆþ{WÐ~Dã–öoÙUƒ½¨3–pÇ—Ð70dŸƒ‘ƒ‘H‘ÊE*ï} l\ÙºXËw}'^ÇÖ©ÑmÄÜègøÙ=Ïî9ð½6$ZÐÑ=3¶N¿õ#æ nO¼n\ùæµ-ß~†ƒó08HÞ9¶üÃ/ë#¾=ñú×|í/þò4s,'>ÇÞ4bÀKƒgnO¼Þ]àýÙ Þ0Ç‚3ö?w5º˜kÿvâ5Ø…:cÉ À§žÐ7+ÀÍ^/úzу‡£—£J·6Úðw"õ@½Î[ëåŠu|ÿ´â§Ût тވÕ9êÍ{¬^.!î‰Ô£Zµš6:ú¹ ÎCìsì«ëUظV|{"µòž #­6Ç’½sì)+jTê.Ä=‘ZuT»ë§üÙ ÎØ£í :o­—Ë.îDj° uÆ’€O ¡ïo%†l¶¿ôþÒ‘±Ž›Í¶ÙÞ¬ƒðøêä’µ*ý¬v»·Û½{§ë=Ž-è“èþ™\ò¡}ƒG q¯n~tÖWÍ:Ä:ñ‚óPï„cŽ­Ðtdñ¥ïŠr¯^3*uÇç§™cÉÞ9¶Éì¡]îIˆ{|õžÛ>z¡î™æX ö® VÅÁ#í⎯ûOg,9‡øäúž0œOåz*×~ÑGO‡>×|k‚Að·ÖÝt—Ò'Ö¾!}CzÆYºŽc ú$Ví¾`îk)}º¿µvèsóÍoMˆ~>ƒ3Pׄi޽ìÒ/w¦(÷·ÖJsÇ-X¼ÐËÉ›cïk¶8Oõ¿ tk-·îÖ_ÿ£9øo»‚ŽãRúØËýÖì?±äàì%ôÍ.`8)~ÙñËŽÈm±£…«n=Ü­q0ëµ_÷rõ§dD?“iÓ î«ßȺ g¢{©_÷ö¦dt³^®zþ`·˜CXpê7€ðͱ¥K?xhå×bݬ×BMSo˜hŽåäͱ5uYðìNnÖkêÄWº´^j޲¶+(WJ†½\Ök°ótÆ’Ó€OœÐ÷dÃI4mÜ´qgÄ:žöÍìܸ~Q£á±ëâךLOËë9üaò“3žÒid]Ð3±:jñk“»§åî»î›™žR¿h¬ç08÷t@¸çØÊÿxæéÅç w]K(ÿÊ'ͱœš96màô]·µî»þß°e;+¿lŽ~û® Éô´ÜvtÇ®ÁžÓKÎ$>q3_ùê¡NBßì%†“(£cFÇȦJLØu(ú¨êyCéIÓòcÕ]=;Þ–òC¬ƒ~üßÇÿýÀzŒãôO¬îÚÕsîu)?zcÕž7´Ú4-_ôóœuÁ¹§ÇÂ=Ç^±·ÞäîûcŸŸ×uñwæXNý{_®Eë$èU«ni·jò s,p¼»‚Ž·¥ü`_«{Ng,9“øÄit¤Qd•Ð7{ €á¤ûr×—»Ž,Šù7à×Ù8p€11s͘ÓõçZÅo®wu‹†D?cņ¶kÁ‘æGšGVé.Žs¤h~¤ydUÐKÑ=vs½.þhHÆœ‹j÷f®Óÿ}èÀ±N³à¬Ó]9gŽ-¶ëŽÖm÷f®U"¿Xxä’g˽°y­9–S?Ç^[¬fÛ÷¯ypóšùåJ‹{3ןhÚ7¿98±]ÁÕ->ì¬ìî2×`·éŒ%'g—Ìïúž80œ"?øéÁÓc CóëÞ2µûf#cP”ª°bR±XÏÕÆ"‹däÖQœ¸ —buÚ€R]O*&ô êüºËtßë¹ Î73çØR?°zU7ÑoP¯šrËE_6Çß9öÆÇ»ß9nšÐ7¨]~~¹w»'̱@öí *¬˜TÌî.¨Á>Ó `“N•¥‘¥‘ÃmÓÚ¦ýr(Ö`´|³»ü>'ŽOüRýÎÑCc=?o}øÖ‡‡šh%²WÐW±ºî‰_zÿsôМý.ßÿâü.¿õügZp¾é%€œ<Ç–iÿð[+¶åäè·HîÖ_}¹ÊKâ̱ O¿¯üÐÏrrô{û°7µø£989»‚êwŽš“7xÁÓ 0‰I §Ô¾ÙûfGúÿõ¿^¸kd¬!iq&}Òúä Áqjçšõ†7ªv÷˜n±ž“Ç>Þp¿‹á$ z,VoÔëù1Ý"û¦×¬—s¢ßÅ^8œÖ'ÖsœcÁ™¦̱A-ÝkàÇ+§å è·Ê¤ ]=ì¶×W6Ç’˜slýûŸñøæ¬]^¶rΉ~ÓªLïÛRs,pòwÕîÓ-Økåœ=^°·tÆBf`“â`{éí¥3–Ç•‚:뇆Oô{<Ü#ãáJ]W{O¯eΛZ=Öóp×î»vï;=2'2'rHçp͉̉ ú-V7öêqÛŠ©ÕWšÿYí=áŽ~gý0ªc¿Ç}Fç˜Æ0ÇF×­{oZ³'ä÷úô\³Em¯¼®~Ë›cIü9¶ZŸöK_7`æª7+ wôÛ¶àøåwÜdŽNí® ÌyS«;®pïñ‚]¥3¢ €IL`ˆ›-½¶ôÊè}ì±éÑuUþ4þ̌ݩ§×:=L#ãÖâíêܺ âöËÎXÑ+Ö÷žº0uáÞ‘weÜÙ¬[85‚~ z/VgVÜ~ݸ½¶{έ Âúfì^p Öé®»ã‰ñgû\ Î.Ý`Ž=ö¿/þ’Ò¼éWUªþibÆÂ_ÂýVÌ5ºÓÒk.¼é¯çnm`Ž%¹æØBK}¸ôɾ§O¯U"TÑïïÖì/wfWîž4r§9ˆß®à²3Vô ö]aÚà;É`?錅XÀ$&0ÄÙÖŠ[+fLÊ?9ÿäScP¥v_Ú}mÚ†<· nu éÿ¶`φúm<öÈØ÷þ*cUäGB~µ[•±*òcЇÿåú=GÙoc²G¿òüse«¥v_ShmZ¬ï48£‚óJ‡õ96ïþ«Ölk_þâa[ön²G¿%jõž°ö s,á˜cÛlÇÓ“=úíUç½Sþ÷òâÅv®þ½9H¤]AÃNý6&û/ØC;Ig,›˜Ä$†„°§êžª‘õ[Ôo±gα‡ÈaÝ«{ö¡®]fÔ’,#ã7)­[¶ìxS¡¿lÿ¸Õ±¿»§V<µâÀÑŒH†ž þ¿ÛE2"‘ 'Ý·7ªQêãVߤ¼9¢eÇd }u_ªÎaÝ{î{ö±¿»à\ Î(MÀ‰Ì±W·oõöú¶UZ=»nуÉú–<üÙe/éTöç-0Ǿ9¶øÄÓ>8ïîælps²„¾n^õ‡ ŸÖoÒ¯Ö°qæX ±wÙþq«`'–,¼`ßì±u`“i†”1(²eè“CŸÜÿƱǬ N©RkÂ#«÷Íìܸ~ÑD7§´Y×lh¯Ô2çL­™•ï%½\z¹Ã)z€ÄôgV:¹Wêm §ÖÜœ2ëŸÍ†&Zè»ofúMõ‹N©2hþ#«³ò½gQp.é²w޽f^ÚŸ­«ügž^|~¢…¾ê̵4ýÊkë7Ù8ÜKΙc«õj?ÿ…çî¹þ£»ë–N´Ð÷ÿ†-ÛYùå¦å»ñ¾uæX 9weΙúë®,Ñ6xÁ^1Ø1:cáø€IL`HP ò.È{xBV¯ .^ùögÊnëÓî“[6Äkd\Ô¾ÉuiGší,Zú½‹²ò˜oùâ–/~¹~û¥Û/ÍXæ'Nâ z5èÛ¬tx³uò¾wÑ¢ö/tM;¯Ðw[ŸwÞ¹eÃàâÝÿöLÙ¬Ÿ'Áùã'À©™c ivëWT¬ûä5KÄ+ô-2𦕟ÈW¹Ö¦—̱˜cK®¬ÿÁìò©ß¾²¾u»x…¾}gÍû f‰Ú{U]Ù „kWP´ô{;´xmð‚ýa°KtÆÂ‰“˜ÀÐö Ý74Òç‘|äÛß,ëYÁÂy^Ý\fd™êƒG·^3±ÅiÞÌÞ1ñðø®…k¿öÉYóÜõcž¥O{%ë-¨sÞžóö¡1‘ý‘ý~Æ$ý‘ý‘HÐÿµó{ôlUcÚ+ŸœõÌÆ»~<<þÓBµ_ËÞ¸wÍÄi·wxsd™Þßn]°pþ¯6—Éúc ΙàÌñC ^sìyû.*÷ÓÓE.isú— ÊÖztðŠRÙôVûܨE7—|óþê«Ï¿bI½«6®7ÇbŽÍJ­úP»«¦ü¥Ó÷S¶vÜ0à»Õ(ÿYöƽwÌ{«c“Ô†…îë>ôÅ|5.™¸©¤9ÈI»‚Ò§½ìÙ‚[öîñ‚Ý`°' v†ÎXÈ^`“’Æw÷xFÍŽÝ:vÛ[é·Ž’A½4×›¶¼Ùvoñ³: ë]íò±œV§ÎúƒßI¿é´{–|ô~£§{¬›;¨ÑU=gÍú¼áÐ~c_ØWëÊÁï lPñéç^mðdáéÅïŸÔqÆ80d£ý"ƒü4 Éïwö7Š zûD^ ž¬^2½øÀ©=Ÿ{õ…}}:ø½YŸjÖoìÜAOßsÖGïÿªÇºwÒǤ޳dZ¿?4pð°Þ=ûǶ{SZÍêti®‹Ëoyóøþ¹Áyœ-~š$ò{Þˆ|?ÿôSÁ篿껴«;¶ú`}›b?ßQyÝ÷×]Ò·òš–%ᆵïêZ%Ëß;guŸ-{¹fï5ƒS~þ§Â¾µÍ××çßR¦Ã–4s,œŒ9¶X×êÌ=§æãwê¬&Ï -{ÿš¶ŽO¿£UÇ·^XÞyM§z“×vÚØnßsì–Òââ'Rú^Y¿E¿†ÃF–}±ñíoÌ{ýÅ_o^cŽœ±±w…¤örÁŽ.Ø×»»`ìô‚ý^°ë ö~ÁÐ §†˜Ä$†¤ôíkß¾–Q¾ï²¾Ëö=t"£äÉ®“«L®r°ÊÞëö^iç§F¸}ô|"¿*ƒs#8CüÔ0ÇšcÁ àŒuÆÂ‰“˜ÀôöÍß7?rï¬Çf=v¨WÝAuí¯a±WJ¯”}EW´[ÑîÈ~.¼‚×E¼^•Á™œÁYáç€9Ö æXg¬3²‹˜Ä$†Ú»rïÊÈí‹/Z|xþcûÛ·ÿ_ÕÖW[¿;ÛÆÄóZÌûeâ䓼~ýºõëŽ|99äy‡c89‰¯—àµ¼Ž²ëU¼Æƒ×{ðÚÎO<æXs,˜cœ±ÎX€œF D>?ôù¡#¯¤I/r¸á¼óZnw ÑF‘Ñžˆ—à5¼ƒ×fð:õÌ€9̱ÎXg,Ç& 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!! 0@H€BB `€„„ $À!!‰ÿsæ¯*Óc›%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/never.png000066400000000000000000000075071431412030200245210ustar00rootroot00000000000000‰PNG  IHDRTOšgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿ«1ÍbIDATxÚíÝyp”õÀá7!¨õ€¬B½ ¢Ö±ŠxQ‹€ Z¬" B(£PzŒRqê(2µÚÑz¢vÔÑZ+µ"m=’UAo­,Š—G+ºF+U²ýcy³I²ÁÝ}ßeŸgÆá›äÝÝ7?^ï»GY*´éÙŠa;Ä^íÚþ_µµM¹e(-í+Ê 1H¥ƒT°ñ?ßüNv?-ôí sûì¶ØÄV©ÞWζnßýnÞ-6ÿVYÞ:Uˆ}ˆæž#݃Tc ~³üüÙ#§ò¿q¸—Bݪ}Gi®·,ìVùߢõÕÜÜ{Îýír÷“Ülßò¿íy¸ïQ#ò€Aп1‚ (sæ0oʃ è`¬lÑð_Ǫ£´ÔVÓÑÛcóÙŠ ë§ìù— ÿO€@ €@ €@ €€@ €@ €@  %€@ €@ €@  €@Š]…%r#‘hš–½CûÜN_ŽíQ™íí§NÃúì<5—û“½TU²rib^ljgÐ/Qþ׋Q€ŠÀCglÞù²œjøÅËá8hU¶é5ù»á\]÷ͳwQ8÷‰Äg3S€b¯ªÛçF½£ï §ùf¤ÏßN;¾Vý^|V³ÛØÆ^Ž) w<È‹å+w??9&7÷5ñ¨ì·½ô©Ì¼ïµÁ†çðe›O3š.Ÿ¸í}9ߟìîgýÿ`êû³^:í‹2ßÝieÒA@ îÊë‰Ü\D=ûÑvlûµ¯®~éʦ§¾çdqãεCñºîÖdî÷'ëûéÜüõs–•©\­&€KÀ@Þ4öêµÿúÑîè9eËÓÓ 7·}¸î÷g¥§¯vrÔë—L6¾ÕeŽ(@1Ö½gúÏú7º,ŒvOv=/U•žR¯ÔÖÖ5‹ÃiäÛñXÉdcf®žëÈ [·v §m.úÕÀ·¿NônkÛé5ÅVL^4dÖ²þ¼²€›6ø±púâ†A_F»/'nN¯Òz@-|~醟wï9øµ¸¬e¿Ñá´j€# €@Œ-9"±:=Íëíy«NÝ3ó•][Û2ó àØœÿ ‚`·SÂiíBÇ ëRsÍãáœXöÉÀ(÷åþçéõ‹À3š.¬‹ÏJvx=œºÖ8®ÄÚØcÂ)¹ÇåWG¹'ÇÞN‹f·|6rÉ©oþ2=íýôÀþñYÇw÷ §]Æ;ªÄÜ+•[_Ÿžåeà­îÊÌã¯ji«ÌàQsãô~{ïN{-uLˆ¹=ß[7!œ»÷Œòƒáf<NÝâ6™ ÀoÇi_˜N£ïóFЀboÕá´bÑîçG·GNï¹és‘ËW¾þ~z: oŸ)ñYÁeåwÿ6=ízÞèŽ(@±×aÁœá'q”×Gw¸lù…û„óÅ_lj‹x¾ø­ F=þ·}àü;> È£C_MmȾÆ^ô]? Ã‚͹—ìÓqÞšƒÖoêû?™|džv<Ò{SOÌ\ñq!ö§5©ªŸ¿bÑŠEO5uJ°álä¯ÿ;z†þ P$VNé66=-|¾KïˆÔiÓÐkÿpZ±(‘Øø\ÚG7¾|Czê=ïàAÉìO!™Þ›wÓ_lßÿº[.Ú×ù? —\òj»ãÿ|a8o}}t—õ½pwæÆ?«y3œF¾·ÐêÑøÌÔ‹—€ŠÊ±Mï¸nÂÀÝ¢Ú‹QÓÊÒÓ´®ghø À²†“¾ŒÛê--?¸j®ÏrÌ%` ïÞzØ‚†5Aó?øæضe‹–Ï0VuKuNOÝøõŸ|2ð™úôÔ÷œžã’'fÚãèdøt‡ðå4ßž3€@Þu} A‰Õ«†çï‘ZK³[ö§Ÿ-iþýÚ¦­Ëý+€[¿¿dKëÿöØÊk¯ê–ÙvǵŽ#@E%ÙØ4UŽ¿-š}ȼ¾wúçÍÏÌÕ,ÞðŸÃúKÞ‰Ér5tëwäv¶|åž ¿ÕaAÂ…`@E¥á†ÉöhïhR&±,œ>=¨ÙŽ­™sTz:rÛØesòÞCºÔ¤çõî9Ña@ ¨ìýôÿ~ÎÝú}63Š}¸w¯p{L8;%œâôСΩÌó™“E€ŠÌÇýÃiåsá{ֳéfqx2|pÇ)ŒŽãªeÞDgéŽ.(2µO _ÉZ¶<Š˜ùθpZ³"ýçg3g>”ž?ÏUëÖ/œV¯q (:?˜žªJO©ªžÇ­Pø=xdÏpªžAðÄéM_×ÅóÍ–3¸ÆÛÀ(F+jÃiÑì. ÿøƒšÞèyÖ¤D"¦o¸¼Íåg¿ÏëÜ©)W8~¡íû?81œ£ø`¸òúpúüÁ X7ᱮ鯎»:þk÷Õ0Ç ¢”y!ƺ ö+üãÏéNÿ?·é­¡GÖù´]@äÍâqº§§ÿ*ü£Út©÷ñÓÇ\šž¶ïZ_/€È›¯‹öÙlã¯Jÿ¹nBø¡?ö·”– KZ²1Ñ®ÿùœ4²=[Ÿýhë?=ùƾS]ww2ºý€@)hxéÔ#ŽÏ|2H[.m×{ô]šhýù|{ý3øÚ‹O«GÏhßs»?Ùûýé 7\"°ÏŸ²Ï¿Ü»þÊæ_°K±¬ZÍbG "öŸã£{ìêºæ_ÅýÀNµ/ú08@E¬ã”Ùç—5DóØ]h>ŸØ3Þ+ÕkÿÌ|EoG žäH{Ï£õùMêÎÖn³¹çå²9KÖü¾yúýZÚŸöÞÏȺ³Þ¥È-g¢IÆüÜk¾ãêÛß¿ü €@@ €@ €@ €€@ €@ €@ €€@ €@ €@  -€@°¥¨hÏÆ©ùÏ<×ì˲,oïí¶ŒßÂ߆íüíÚÎQ`;GK·+‹û*ç2‡UÌAeqï¾KÀ%&«ìÿ•…ØRdu xÕI5µ­nç«þ[Â3Ü›±¾VÄŠX+Óß¡,v¿Ã¾çfq©” (%ž €@ €@ €@ @ €@ €@ €@ @ €@ €@ €@ €@ €@ €@ €@ €@ €@ €@ €@€@ €@ €ØÍš–H\ÿ—ÕC õxe©”EˆNcõNsÓÓew›\9+ÿè @¤þþÓpºé¼=_(Ä™@©¾÷\vwæ«BD KÀ‘[=äwgÜt^óïäór°(±€% Ä"P”X @€‹@Pb(J, @‰E (±€% Ä"P”X @€‹À¬0‘°Ìñöà†Œh{«r °¥œÕ©=°Åx²,›­*²½»Úµ– >ÖŽŸqÃÔNÍ¿sÊš¾÷Y\ö"€¢ãUÀâÏûˆ? þ @©ÅŸ(±ø€% ÄâO”Xü @€‹?Pbñ'J,þ @‰ÅŸ(±ø€‘›5mÌ™…‹?¹Æêæ.þ @ Ìš6æÌBÅŸ(Aå–@ €@ €@ €@ €@ €@ €@ €@ €@ €@ €@ €@€@ €@ €@ €@€@ €@ €@ €€@ €@ € }þ”DOÌ:%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/observeOn.png000066400000000000000000001141541431412030200253410ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwtÕãÿ°‚ø¦W)Ò{¥‡Ð!D Ò; H ¤÷¢ Eˆ¢ô¡·žÐ{¥CB ûûã~¾ç—÷YwßKv7ÙLž9gŽ“™;wîÎLîkïTV€)¤¢ À€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€À$€øîï¿¿ÿþþýÿ_Ä¿P3)MÜ¢¸Eq‹ö­Ø·bߊðËá—Ã/ŸÎw:ßé|Ô ïA HqbŸÅ>‹}vV=«žUf^˜yaæÀ9sçdt±5±e±±GjÀ;]Ÿ}}öõÙk^¬y±æE—²]Êv)›±HÆ"‹¸þdXåd•“UN¯ ^¼ö@ª©¤zºúéê§«©sžC 0¹·ÝßvÛ=Âa‰°t éÒ)$c{%¥âì$¾ Ÿ_øüÂçc¶ŒÙ2fKR=ÖœXsb͉›®nººéêÓ1OÇ<ÃyHŽlŸôÂß?ü}jI‹`B =*ô¨PÈܹ!s3z1QBQZ΀'¼nþºùëæl8°á@®³¹Îæ:ëO†}Wö]ÙwedHdHdg ¹ †w"˜ÄãçŸ?~>!ÿ„üò»ÒõÖöƒ’—ò7Ÿú‹_T©F«Öüðe³Ý§›4¨ÔG/ؼS•Æb-þEü_ñ“â·\Ù¯(¹8 Î&€+Þt|ÓñMÇåK—/]¾Ô•'´g«mͳv\»í‹¿YruR‘/ÞÛqiÎ슊Vñ×µU²Ÿþ–»ÊDËÞÐ’•³lÈüÓÝòÓf·ZÙÇ¿{Ûæ‡ µ*ÔÿóÊY&l¿­f´šÑjFä¶Èm‘Û8›ÞŒÞ‰ŒÅ-‰[·dI‘%E–¼óÚ&uôý³ÄÍ£zëm¾¬Ö  ÷®Å–Å^ÞµlâˆÄÑq–œ¾7|oøÞw}úê5¿U‹Âå‹ NWþùÕäˆ'õæY­‡ûû»k}ѲqYõK ÷ŽÞ_¶T© EÊe/é|Ù†7Þpxç9Ÿæ|š“ó àm€á€ÉRä…È ‘|ü}ü}üé8Ô¾B£¢é.ï0«úUOĽάÅÞEIœ)³8:q¤œq{žf|šñiÆž¹{æî™Û™§¬FƒkLÉ;:¢Ùï׫~àÞ ×ùuômnݳû õ÷iè|¬¤RR)ôäx`x'þl$3kÏ­=·öœ3d37Ö8_zð“J]§ÖÙžT¡¯½µ(•(¡3Ç"Žš³߉¹'枘ëÌÓT÷ÚÍwjzmØÖ|5‹&Uèko3kÿôúŸn²Î,_¡¼3Ç2ªÀ¨£ ¼úf蛡´€¤E ïD HbŸÆ>}:´òÐÊC+;îS¡X‘Oº†ÔÙím¡¯Ý08 kHÝ¢äŽNÔ€¨ ZHÉÖ”[SnM9ÇÏN5²WÈòÙ°‹‡6n¬~ÅÛB_{ë·a‡"êÇ,º>vhÙUŽ®btÅèŠÑ#F<Œ =$`x'`€W{9èå —ƒ}}}w=Õzï“äúÚ}sð©Ö{|Ÿ8>RQ¢fh! ‰³ÆYãfTŸQ}Fõÿ1{ÊÎi™Ê§N.¡¯½õ?ëwµöìñë‘'Òññ^o{½íõ¶4€ÄG ïD ðR/:¿èü¢³ïxßñ¾ãíuuuk^v`¡Ï^æï‘»^ýäýÆ_‹#GgïØE͈Z¢µ“»e½e½5þÃñŽÿÐÞÓQ៿κúFÀ¶é5C’{ôk»^Ø`tß²™ÇÀ‘A‘A‘A4€ÄD ïD ð:1¹brÅ䪹³æÎš;íuo-˜Tçj™[ÖÛAük™)úý¯õí NþµÄ‘Ú«QK¢Æh9À¬‚ÏŸ>oï‰èÛƒ« üõªoÄ•z³ÌýÆ_GŒYü~ÕôŽcà[in¥¹•†68€á€Þ¤†µ†µF§i¦ušf¯Kks­ÆÙ+Œ6mèkg-ŽÚ^ˆµG#f²¤Ù’fKšÙ{ Þ­UñoïŠöÿØÜÑoüõ…ýrWïí8ŽÊ•?*?íÀÓ€á€^$$oHÞ¼öº±¶w\R±OJ‹~ã¯E Ø«Q{´"`ûÒíK·/½'Ÿ±k»Ÿ,~Úwø ý”ýÆ_Gn ‹®ñ£½úñÿÄÿÿOâ"ã"ã"iKžC ïD ð Ý"ºEt³×µº|ÀÎ/¦äè7þZÔ†½º5I‹É×ý=÷÷Üßcïi'(O+Ká2ÖN‡ý ¦Ìè7þúìok—øm±WWÓKM/5½- Às€á€I,J‹Ò¢4{V“Úø..qƒÐ×v-jÆî¤Z”¥Ñº@2f ³†5šÞhz£é¶O8Ÿ9yp wýŠD¿ñזá•*ç°÷dx<ûñìdzӸ<Ø]vlܱqÇFQ‡Á«ƒW¯~ð8àq5“0À€$ÖûJï+½¯Ø>*ùÊ¿ë³Rqzõ«¿¸×v-jFÔ’mí‰Z¥u€ä%¬AXƒ°ö‚Ì»§ö ª]—¸×ÞzÚ¦UKM·W{1}búÄô¡¸°ëâšÇ5knï9–08a€IæxèñÐã¡öníÿ”ë\ºÖ:‚^ÇkQKvG{„=JKÞ/úIô“è'öžj¤¯C¯Ì¨ßÿ±Ž]}°LýK®.|5{fÛ:œw}Þõy×iiîEìºøc# v0 )”µ–µ–õæ3Ìg˜í|UŸ€~_Ö%Üu~-j̶&E ‹Ú¦ÑoöÃÂþ°ÐöyæÛs[ \&Üu~}qÐÆ ê‡ìu™=òpÈÃ!´7w!vtE¸›Ñi„ÁŽ’€¶SÛ©í´½mÝ‘s|¶2o öÚYÿ"±®ókQc¢ölkUÔ6­x§Í4{ÐŒiŸÝ»—§G©âmës¼ïxßñ¾´:w!v/Â`w!$®“Ö“Ö“>i|Òø¤±½UšØjœo9Ý„­EíýË8à4>i|Òˆš§o¼(xQð"Ûg˜g…•®M”›°õ“0åd“ö:Èž”}RöIYÚ€ë€=‡0ØÀ€Du¶ôÙÒgKÛÞ˜+4É’³–õ^PÿÚD¹ \ß êâ_[Ô¤m ‹š§ïñ²ÅË/[Øë¸‰z ¨›“(וõŒ<ƒ>/ön†. ]J ppâ ~WÀ€Dt"èDÐ Û›±^ºy×*_⺾5i[âæiÀ{lï¶½Ûön¶Ï-c—v?\üñ­ëë‡%ÿ:Ùìu‡½-ñ¶ÄÛ´CW'>Â`gÉË¥/—¾\jïÛ¿W¶ú#ˆo]_‹š´WÏâ,Ѐ7¨1¶ÆØcmŸX®_Ûæ[sDR…¦—7e«þ&~y’{ ÜéÃÀóþ±­ç3'Μ8Ã\Bœ´ƒí!$’ˆªU#ªÚÞn§Nñ{P*€àÖ½kQ«¶µ-έ$­'Ÿt~ÒÙöY¥Ôú"k³&m\j'÷øÐ•¥U}ëÛѸÑãFMkp°÷ ŽHôÐo@?Û[ì¥MnÖÈLdëÞµ¨UÛÚgÖ’ÖÞ{Gìý—9K–›”³Ü[`÷®cÆîSÿc{^ÖÎÖÎÖδI€„!öN„ÁÀÏ«c­c­cï¶7²×ˆúÛˆlÝ»µj·›¯ŽµŽµ $•>kû¬í³Öö)åæñíRÍ;ÀžXw,ÖhaÚ¶Çuï§{?Ýû‰6 0ÀÞ/e†ÁÀ{øèᣇlo¢ßœðù ÀÂZÏ­E ÛÖ¼8#´L[[Ûýj õoýSÀžXo ›ñ¼BÛãR*+••Ê4L€„!N^RNL ð¸#i¤=’ÖöƹjlÀ/xO\zgdçUµžO ñ›U*c›9%7ç¯òåµ¼çx”#4ó•LFÉ^¹®eÿ žVhSîW!Ùk~SÚx”ï;­ŽŸ7À¢†mk^œZ&H|Ï&=›ôl’íóI³_ë¶ÉwÕ‚R{ð‰÷VÖ¬Ö¿cƒF[ 6ò×É*åÍö,“QþdéOr[±û°â»哎ÕñóÎøÚ”­¥k–ü—ά®Á]ƒ»Ò2†8ù2wL ð¸%ý—ô_Òßöfyæp»~“½!(Õn7ÿªJ|>Ùše©•ñÝŒøöïš·½35ü/o×뿤ÿ’þ´Lø"[F¶Œliû|òKêá}®ysœm{ÖÑ™Ú8~2,²-¿5ë³³«×®õÛîmð«Þ—ë…Ø–9 G@Ž€´L€„!6ó…ÁÀ5$jH”í òÑ'ßí®S9i#Òç+ºÿ\÷q‰¹‚³¥*º"çÈl%gß­ÕÛ§GÄšaUsžÙÙ®‘ßxõY³ÇUÒLxí›§Ä\1&ø¿§ôÆXÔ°mÍ‹3BˉO}¤>Rÿåå òÑ*O÷æXS¿Ûžâ“÷6™ÿŸJÚæ¿«°d@Îö}ŠLË”:㑌þñòmÞCÍëÿåE1ð¹Ãëü«Û;.Z&@›9Â``€Ç5®ß¸~ãú¶7Ř/zÖª÷"i#RëŠòdŠÎhd{aTû-ÕÛÚ wm¢Ð©}³NñÎXÔ°m™Å¡e€Ä·üÖò[ËoÙ>Ÿ\8±¡`õ¾Þg¾™¹~Æ­Ò¡Á•ˈŸ‰ÿV`ñßëkÿT¿|{ïspõ,å>ó#p`sK¾a00ÀãJ=,õ°ÔCÛáÛc½^ú§NÚˆôÀè–RÕ½ƒîW˜X´ôÔ ~wKù;3¢×6$öÎqÀ¢†mË)Î-$¾™Kg.¹ÔöùäŸá»ÖÚëðw‘Mÿ*áL ÿ·ö¨¾=o o €;µø:k×ÀîBœr$¯08•÷|$)õ^PÿÚÞš:ŽrãJ÷êXÙœ‹µÂ}~÷þXÔ0- x¿G;äúu¾õÎX}öëˆ*iœùÝ]cç^¨”OüVÑöf+émã€ÿðM΢Mho@bÚ±qÇÆ €)‚wN›ü$U×!uÖ(YšùU^ôçGõ×— Ÿ£j¯EÛN.•.ÿ€Ïóe[—exò:"Zð~O^©ië\÷ÎøfÄöí5o;ó»WòonXã{Jô–xÄ‹ï 3ho@bŠÙ³!f0 EðžÀÇ ´>_í½¦éŠÝÌ÷cæ›™òfÜj¯ÌåOæí’³p—ef ù—#b0@‚xóà×Aû–×;èÌワQª^Ç{Jd0r¥ Àbt–”°~QøEá¶·=ïypŽÐÌW2ýßHˆrésÇäh8ùHµ%+m_¸·âèȲ×èõ¦QÏ5õ+‰ßºØAùïnÁÿ×µ—<Þ,Î-“………………%ñ—þÕûWï_ÝöùÄ›ßìüàkÑ['Ô¬#~+Ëé,ïe¼çm°½wÓ2YXXXXXXX¶Ø>Y…~úQèGÔŒù–£vŽÚ9*è½ ÷‚Þs>ú?Ÿ‚Þ H9×o\¿q}Û›_Ì=kÕ{‘´i〢có®åù.²Ìí‚oóöÚQÿ/DZîÅŽºWðþXÔ°m9Å¡e€Ä·üÖò[ËoÙ>Ÿ\8±¡`õ¾ÉýÀ{›ÌÿO%íÿ}­°DÎ ½-®ž¥|Àg~ÿö €„°÷Õ:jÆDp¼:xuðjçC_ñó‰úÆG ð¸!QC¢†DýËDŸ|·»Nå¤Hó4ʺ8óQžCß´è[Ü™ßÚÛ¤ÉÙÿ×µçͰ¨aÛrŠ3BˉO}¤>RÙ>ŸÈG¨<Ý;àï"›þU0™ßm3'àýüUÄoµòÕ˜ü+¼(>wxu{]T´L€„!6ŸäúÆG ð¸%ý—ô_Òßö¦xæp»~““6"-Ýð³¹Ù‰ò¬¯Ýз|{Ç?kG§Zµòˆ7{,jضœâŒÐ2@â‹lÙ2²¥íóÉ/©‡7ö¹æpæ›™ëgÜ*}\¹Œ½ßZ_û§úåÛÇÿ­ˆ5‹‹VÍé=c_õޏ\/ĶæräÈAËH`s0Gè0À㎤=’öHZÛ䪱C¾l´iÏÙåV:+ÊS *û®¬Ÿ-ßÓ ï«nœùvFÍMw{wIU»tÄšaUsNxí›§ÄÜœS³TÎcä„wÀ¢†mË)Î-$¾g“žMz6Éöù¤Ù¯uÛä»êpÑöf+)þ{lÅîÊï¶Ôš°Ò«­f•¨˜~@Îö}ŠL‹ÿó {Tßž·†·Mþ|mÊÖÒ5KþK§U×à®Á]i™ Cœ|™/ôàq=|ôð_&úûæ„Ï–$mDú úwÿ©}¼d¯\ײàümþ¯>ÒU)t*G߬Sâÿ{£6E åê=°¨aÛò‹3BËIà°õ°õ°½§¬8ë!ßú§¼-ßõ{ï*×?ë³D枎ŸËæ-Þ!GÖ›Û·×¼ímð¦°Ï+°-³RY©¬T¦a$ pòbîÐ7>`€çÕ±Ö±Ö±ÛÍ7²×ˆúÛ’6(%™xÏwh‰ƒ5J¨öÙhñn`±®sµ`lîé¡?×ù±Ì†¸Ò½:Ö_¿ü"<ÎÝ>k½Ì¿÷îöÅÖÂ#½!úµjw¤rkk&H*}ÖöYÛg­íSÊÍãÛ¥šw¼-ÿ.þ»ó›& ¶-l䯓Uʾ2[åL3+è¥÷åì0ùHïßKVz®W­;ÉÛ¢_±îX¬ÑµmëüÞO÷~º÷m a€½_Ê }ã#$’ýôÐÏöVziS‡›52{Chêxg{ÿ×;'µj[Ûâ,Ð@ÒÚ;b#lŸU–›”³Ü[oˆKí…¸ïúïÞ°Ž»Lýí~5°³µ³µ3m a€½SÊ }ã#$’ˆªU#ªÚÞV§Nñ{P*ÀÛÔä¾µj[Ûâ,Ð@ÒzÒùIç'mŸUJ­/²6{ wƨÉw}èÊÒª¾õmk{Üèq£Ç¦5¸‚Ø{úÆG H$/—¾\úr©½mlÿ^Ùê ¸u}-jÒ^=‹³@kÞ ÆØckŒµ}b¹~m›oÍ·îZwú0ð|lëù̉3'Μ ¸‚8iúÚC HTA'‚N°½é꥛w­ò5ñ­ëkQ“¶5,jž¼ÇönÛ»mïfûÜ2vi÷ÃÅOܺ¾~8Pò¯“Í^·×ÛoK¼-A;ppâ#ôu0 Q-}¶ôÙÒ¶7à Mò†ä¬e½ÔÅ¿6!n×÷‚ºø×5i[âæiÀ{¼lñ²ÅËö:h¢¨êæ$Äue=#Ï ÏKç°­Û…¡ C†Ò\Gœ8}ß0 q´ž´žôIã“Æ'í-ùÐÄVã|Ëå&l-j϶VEm‹š§o¼(xQð"Ûg˜g…•®Mˆ›°õ“0åd“ö:ž”}RöIYÚ€ë€=‡Ð×À€$ íÔvj;moÏEw䟭ÌÛ‚½vÖ¿H ëüZÔ˜¨=ÛZµM«ÞéA³Í4³×}s÷ÔžAµëè¾ëz\ž¥Š?´­Ïñ¾ã}ÇûÒê܅ؽ}Ý…ÊZËZËú óæ3Ìö†½ªO@¿/ëë:¿5ö/c‡ù ó&j›F¼Ù XøÃBÛç™oÏn)p™@×ùõÅAƒª²×5öpÈÃ!‡ÐÞÜ…Øu„¾ž@ H2ÇC‡µw ÿ§\çÒµÖî:^‹Z²W‡¢†iiÀûE?‰~ýÄÞSôuèï•+î:^Ç®>X¦þ%W¾š=³mλ>ïú¼ë´4÷"vÝŽ;6îØHèë^À€$ÖûJï+½¯ØÞÎýåßõY©¸½úÕß@Ðk»5#jɶöD­Òº@òÖ ¬AX¦ƒNØzÚ¦UKM·W{1}búÄô¡¸°ëâšÇ5kNèë^À€$¥EiQš½ü¤6¾‹KÜ îµ]‹š±Wo¢Vi] ™ ³†YÃMo4½Ñ¿™Ÿ9yp w}Fÿ×Úr8´Råvg…É~<ûñì4.O v—øã€ }]G ð Ý"ºEt³×iµº|ÀÎ/úе¨ {u%j’’¯û{îﹿÇÞÓNPžV–Âe¬ú$ú=ûÛÚ%~[ìÕÕôRÓKM/E‹ð`x'`€ É’7$¯½¬íÝ—Tì“’£_QöêGÔ­˜Ã¾tûÒíKgïÉgìÚî'‹Ÿ¶Æ>è_?eF¿‘›Â¢küh¯~ü?ñÿÄÿ“¸È¸È¸HÚ€çÃ;¼I k kNÓ:Më4Í^gÖæZ³WÒ¢_qÔöêDÔ˜¨=0“%Í–4[ÒÌÞSÐèðn­Š÷x{ïP´ÿÇ)'ú½°Cîê½3:•?*T~Ú€§Ã;¼NL®˜\1¹j³æN{]Z &Õ¹Zæ–õvP'ÿZ¦~ouò¯%ŽÔ^=ˆZ5FËf|>ø|ðy{ODß \]à¯W}#®Ô›eîè7bÌâ÷«¦wýÞJs+Í­4´€ÄA ïD ðR/:¿èü¢³ïxßñ¾ãíuouk^v`¡Ï^æï‘»^}3E¿âˆÄÑÙ;vQ3¢–h-ÀänYoYoÿpü‡ã?´÷tT¸Ç篳®¾°mzÍóE¿ Œî[6“ãè72(2(2ˆÆ˜€á€^íå —ƒ^ ô ô ôuÜáuôTë=¾O’{ô+ŽÂñ‘ŠÚ5C )Hœ5Î7£úŒê3ª;~^Z»sZ¦ò©“{èûÏú]F­ý{üzä‰t|¼×Û^o{½-  ñÃ;’ا±OcŸ­<´òÐÊŽ;¿ÆT(VäÅ“€®!uv'—ÐW”V”ÜñщµA«)ÙšrkÊ­)çøÙ©Fö Y>vñÐÆÕ¯$—Ð÷mØ¡ˆú1‹®Zv•㣫]1ºbôȇ#hI…Þ‰̬=·öÜÚs0scó¥?©Ôují^úVê:µÎvQBgŽE5g ¾sOÌ=1×™§©îµ›ï*ÔôÚ°­ùjõ¶Ð7fÖþéõ?ÝdY¾BygŽeTQFx3ôÍÐ7CiI‹Þ‰,E^ˆ¼yÁÇßÇßÇß™n²Aí+4*šîâñ³ª_MªÐWì]”Ä™2‹£GʰçiƧŸfì™»gîž¹yÊj4¸Æ”¼£#šý~½êIúF?ÑæÖm1»ÏPŸ†¦¤RR)ôäx`x'þl$cqKâ–Ä-YRdI‘%E2¾£I}ÿ,qó¨Þz›ï¼ÍWo½Í÷ØË»–M‘8:Î2€óÂ÷†ï ßû®O_½æ·jQ8£|qÁéÊ?¿šñ¤Þ<÷ƽ-—U¿´pïèýeK•ÊP¤\ö’ΗmxÃá ‡7|šóiΧ99¿Þ†Þ‰`Ÿ?~þøù„üòOÈŸÑm?(y)ó©¿øE•j´jmÀ_6Û}ºIƒJ}ô‚Í;Ui,Öâ_Äÿ?)~Ë•ýŠ’‹£àl¸âMÇ7ßt\¾tùÒåK]yBkp¶ÚÖ¿ðù…ÏÇl³eÌ–¤z2¬9±æÄš7]ÝtuÓÕ§cžŽy:†óÃ;RœØg±ÏbŸUϪgÕ…™f^˜9pNàœÀ9îêÎ[[{{¤æ¼ÓõÙ×g_Ÿ½æÅšk^t)Û¥l—²‹d,’±ˆëO†UNV9YådðÚàµÁk¤:ê@ª§«Ÿ®~ºš:à9Àü÷÷ßß„þÿ/â_¨€”&nQÜ¢¸EûVì[±oEøåðËá—Oç;ït>j€÷ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “ “HÔ8üýð÷ÃßÏ)†ÈI € Ù#“Hq°ø÷ðÔá©ÃS‡§ OžÊxk¼5ÞqFœg¼1ÞoŒ#ƈ1^¯ŒWÆKã¥ñÒxn<7žÏŒgÆ3#Úˆ6¢(#ʈ2žOŒ'Æ#ã‘ñÈxh<4÷ûÆ}ãžqϸgÜ1îwŒŒŒŒÛÆmã¶q˸eÜ2n7ŒÆuãºqݸj\5®WŒ+Æã²qÙ¸l\2.—Œ‹ÆEã¢qÁ¸`\0ÎçóÆYã¬qÖ8cœ1ΧŒSÆ)ã¤qÒ8i7ŽÇcÆ1ã˜qÄ8b1‡ÃÆAã qÐ8`0ûýÆ~#ˆ0"Œp#Ü7tC7tC34C3C1C6dC6,†Å°{½Æ^c·±ÛØmì2v»ŒÆc‡±ÝØnl7¶[­Æc‹±ÅØll66›ŒMÆ&c£±ÑØh¬7ÖëuÆ:c±ÆXc¬1V«ÕÆJc¥±ÒXa¬0VËŒeÆ2c©±ÔXjüiüiüiüaüaüa,6‹ßŒßŒßŒEÆ"c‘±ÐXh,4 ŒÆ|c¾1ߘgÌ3æs¹Æ\cŽ1ǘcÌ2f³Œ#Ä1f3™Æ c†1ÃøÉøÉøÉ˜fL3¦S©ÆT#Ø6‚ÉÆdc²1ɘdL2&Œ Æxc¼1ÞkŒ5ÆcŒ1Æc”1ÊeŒ4F#áÆpc¸1Ìf 3†CŒ!Æ÷Æ÷Æ÷Æ c1Èh 4ŒÆ£ŸÑÏègô5ú}ÞFo£·dAFO£§ÑÓèaô0zÝŒnF7£«ÑÕèjt1º]ŒÎFg£³ñ­ñ­ñ­ñññÑÁè`t0ÚíöF;£ÑÎhc´1Ú­ÖFk£¥ÑÒhi´0Z-ŒfF3£™ÑÔhj45¾6¾6¾6@#Ðhd42 †FC#À0ŒF£QߨoÔ7êõŒzF£ŽQǨmÔ6jµŒZF-£†QèaT7ªÕjF5£šákø¾F£ŠQŨlT6*ŠFE£‚QÁ¨`|i|i|i|a|a|a”5Êe2F£ŒQÚ(m”6J¥ŒRF £„QÂ(n7ŠÅŒbF1£ˆQÄ(b6 …‚FA£ QÀ(`0>7>7>7òùŒ|F#‘ÇÈmä6r¹Œ\F.#§‘ÓÈid7²ÙlF6#›‘ÅÈbd12™ÌFF#£‘ÑÈ`d02ÿ1þcüÇøÔøÔøÔHg¤3Òi´FZ#‘ÆHc|d|d|d|h|h|h¼o¼o¼o¼g¼g¼g¤2R©t«nÕ­zœ§Çé±z¬«Çè1zŒþZ­¿Ö_ê/õ—ú ý…þB¦?ÓŸéOõ§úS=JÒ£ô'úý‰þX¬?Öêõ‡úýþ@¿§ßÓïéwõ»ú]ýýýýoýoýoý–~K¿¥ßÔoê7õëúuýº~M¿¦_Ó¯èWô+z¤©Gê—ôKú%ý¢~Q¿¨_Ð/èôóúyý¼~V?«ŸÕÏègô3úiý´~Z?©ŸÔOê'ôú ý˜~L?¦ÕêGõÃúaý°~H?¤Òèôú~}¿¾_Ð#ô=\×ÃuAÓ5]Ó]Ñ]Öe]Ö-ºE·è{õ½ú^}·¾[ß­ïÒwé»ôú}‡¾]ß®o×·ê[õ­ú}‹¾E߬oÖ7ë›ôMú&}£¾Qߨ¯××ëëõuú:}¾F_£¯ÑWë«õÕúJ}¥¾R_¡¯ÐWèËôeú2}©¾T_ªÿ©ÿ©ÿ©ÿ¡ÿ¡ÿ¡ÿ®ÿ®ÿ®ÿ¦ÿ¦ÿ¦ÿªÿªÿª/Ôê õP=TÕçëóõùú/ú/ú/ú\}®>WŸ£ÏÑçè³ôYú,=DÑCô™úL}¦>CŸ¡ÏÐÒÒÒ§éÓôiú}Š>EÖƒõ`ýýý}²>YŸ¬OÔ'êõ ú}‚>N§ÓÇêcõ±úh}´>Z¥ÒGé#ôú}¸>\®Õ‡êCõ!ú}ˆ>X¬ÖéƒôAú}€>@ï¯÷×ûëýô~z?½ÞGï£÷Ö{ë½õ^z/½—ÞSï©÷Ô»ëÝõîz7½›ÞMÿNÿNÿNï¢wÑ»èôNz'ý[ý[ý[½£ÞQï¨wÐ;èôvz;½ÞVo«·Õ[ë­õÖz+½•ÞJo¡·Ð[èÍõæzs½©ÞToª7Ñ›èMô@=PÔëõÆzC½¡ÞPÿJÿJÿJo 7Ðèþº¿î¯××ëëõõºz]½®^G¯£×ÑkéµôZzM½¦^S¯®W׫ë~ºŸî§û꾺¯^U¯ªWÕ+ë•õÊz%½’^I¯ WÐ+èåõòzyý ý ý ½œ^N/§—ÑËèetÝG÷ÑKé¥ôRzI½¤^R/®׋ëÅôbz1½ˆ^D/¢Ö ë…õ‚zA½ ^@/ Ð?×?×?×óéùô|z=žGÏ­çÖsë¹ô\z.=§žSÏ©çÐsè9ôlz6=›žUϪgÕ3ë™õÌz&=“žIÏ gÐ3èéõôzzýSýSýS=žNO§§ÕÓêiõ4z=þ‘þ‘þ‘þ¡þ¡þ¡þ¾þ¾þ¾þžþžþžžJO¥§Ò¬šU³jqZœ§Åj±Z¬£Åh1ÚkíµöZ{©½Ô^j/´Ú í™öL{¦=ÕžjOµ(-J‹ÒžhO´'Ú#í‘öH{¨=Ôj÷µûÚ}ížvO»§ÝÑîhw´´´´ÛÚmí¶vK»¥ÝÒnj7µ›Úuíºv]»¦]Ó®iW´+Ú-R‹Ô"µKÚ%í’vQ»¨]Ô.h´ Úyí¼v^;«ÕÎjg´3Úí”vJ;¥ÔNj'µãÚqí¸vL;¦ÓŽhG´#Úaí°vX;¨Ôj´ÚmŸ¶OÛ§EhZ„x(—MÕTMÕMÑMÒ$MÒ,šE³h{´=Úm·¶[Û­íÔvj;µÚm‡¶MÛ¦mÓ¶j[µ­Úfm³¶Y Ó´0m£¶QÛ¨mÐ6h´uÚ:m¶V[«­ÕVk«µÕÚ*m•¶J[¡­ÐVh˵åÚrm©¶T[ª-Ñ–hK´?µ?µ?µÅÚbm±ö»ö»ö»¶H[¤-Ò~Õ~Õ~Õh ´Z¨ª…jó´yÚ<ííímŽ6G›£ÍÖfk³µ-D Ñ~Ö~Ö~Öfh3´Útmº6]›¦MÓ¦iSµ©ÚT-X Ö‚µµµµÉÚdm²6I›¤MÒ&h´ Úxm¼6^«ÕÆjc´1Úm”6J¥ÔFj#µáÚpm¸6L¦ Ó†hC´!Ú÷Ú÷Ú÷Ú m6H¨ ÔjýµþZ­ŸÖOë§õÑúh}´ÞZo­·ÖKë¥õÒzj=µžZw­»Ö]ë¦uÓºißißißi]´.Z­“ÖIë¤}«}«}«uÔ:jµZ­ƒÖNk§µÓÚjmµ¶Zk­µÖZk¥µÒZi-´Z ­¹Ö\k®5ÕšjMµ&Z­‰¨jZc­±ÖXk¨5Ôj_i_i_i ´ZÍ_ó×üµzZ=­žVW««ÕÕjkµµÚZ-­–VK«©ÕÔjjÕµêZuÍOóÓü4_ÍWóÕªjUµªZe­²VY«¤UÒ*i´ Z­¼V^+¯}¡}¡}¡•ÓÊiå´2Z­Œæ£ùh>Z)­”VJ+©•ÔJjŵâZq­˜VL+¦ÑŠhE´ÂZa­°VP+¨Ô h´ÚçÚçÚçZ>-Ÿ–OË£åÑòh¹µÜZn-—–KË¥åÔrj9µìZv-»–M˦eÓ²hY´,Zf-³–Y˨eÔ2j´ Zí?Ú´ÿhŸjŸjŸjŸhŸhŸhiµ´ZZícícící#í#í#íííí}í}í}-µ–ZK­¥ÒRi©Ô·ê[õ­§Æ©qêõúFQcÔõ•úJ}¥¾T_ª/Õçêsõ¹úL}¦>S£Õh5ZR£Ô(õ±úX}¬>R©Ôêõz_½¯ÞWïªwÕ»êõŽzGý[ý[ý[½­ÞVo«7Õ›êMõ†zC½¡^S¯©×Ô«êUõª©Fª‘êeõ²zY½¨^T/ª©©©çÕóêyõœzN=§žQϨgÔÓêiõ´zR=©žTO¨'Ôê1õ˜zL=ªUª‡ÕÃêaõzH=¤P¨Ôýê~u¿¡F¨j¸®†«ºª«º¸¨Šª¨Š*«²*«Õ¢ZÔ½ê^u¯º[Ý­îVw©»Ô]êu‡ºCÝ®nW·«[Õ­êVu‹ºEÝ¢†©aj˜ºIݤnR7¨Ô êzu½º^]«®UתkÔ5êu•ºJ]¥®TWª+Õåêru¹ºL]¦.S—¨KÔ%êŸêŸêŸêbu±ºXý]ý]ý]]¤.R©¿ª¿ª¿ª Ôê5T UCÕyêjoµ·Ú[í¥öR{©=ÕžjOµ»Ú]í®vS»©ÝÔïÔïÔïÔ.jµ‹ÚIí¤vR¿U¿U¿U;ªÕŽj{µ½Ú^m§¶SÛ©mÔ6jµµÚZm­¶T[ª-Õj µ…ÚLm¦6S›ªMÕ¦ê×ê×ê×j ¨ªÔFj#µ¡ÚPm¨¨j€Ú@m 6Pë«õÕúj=µžZO­£ÖQ먵ÕÚjmµ¦ZS­©ÖPk¨5T?ÕOõS«©ÕÔjjUµªZU­¢VQ«¨•ÔJj%µ¢ZQ­¨–WË«åÕ/Õ/Õ/Õrj9µœZV-«–U}TÕG-­–VK«%Õ’jIµ„ZB-¡S‹©ÅÔ¢jQµ¨ZX-¬V ©…ÔBjµ€Z@ͯæWó«ùÔ|j>5¯šWÍ«æVs«¹ÕÏÔÏÔÏÔœjN5§šCÍ¡æP³©ÙÔljV5«šUͬfV3«™ÔLj&5ƒšAÍ ¦WÓ«éÕOÕOÕOÕtj:5šVM«¦UÓ¨iÔ4êGêGêGê‡ê‡ê‡êûêûêûê{ê{ê{j*5•šJ±*VŪÄ)qJœ«Ä*±JŒ£Ä(¯•×Êkå¥òRy©+Ÿ•ÏÈgä3ò)ù”|J>)Ÿ”OÊÇåãòqù˜|L>&‘ÈGäÃòaù°|P>(”Èäò>yŸ¼OŽ#äÑù'þÜ7yYdI–ä½ò^y¯¼GÞ#ï‘wÉ»ä]òNy§¼SÞ.o—·ËÛämò6y‹¼EÞ"o–7Ë›åMò&y“¼QÞ(o”×Ëëåõò:y¼N^#¯‘×È«åÕòjy¥¼R^)¯WÈ+äeò2y™¼D^"/‘ÿ”ÿ”ÿ”Ë‹åÅòïòïòïò"y‘¼HþUþUþU^ /È¡r¨*Ï“çÉóä_ä_ä_ä9òyŽ<[ž-Ï–Cä9DþYþYþYž!ÏgÈÓåéòtyšr$É=åžrO¹‡ÜCî!w“»ÉÝä®rW¹«ÜEî"w‘;ËåÎò·ò·ò·ò7ò7ò7r¹ƒÜAn/·—ÛËmå¶r[¹ÜFn#·’[É­ä–rK¹¥Ü\n.7—›ÉÍäfr¹‰ÜD”å@¹±ÜXn,7”Ê å¯ä¯ä¯är¹ì/ûËþr=¹ž\O®+וëʵåÚrm¹–\K®%×kÈ5äêru¹º\M®&W“}e_ÙW®"W‘«È•åÊre¹¢\Q®(——ËËåå/å/å/årr9¹œ\V.+—•}dÙG.-—–KË%å’rI¹„\B.!“‹ÉÅä¢rQ¹¨\X.,– É…äBr¹€\@Î/ç—óËùä|r>9¯œWÎ+ç–s˹å\r.9—œSÎ)申ËÙåìr69›œMÎ"g‘³È™åÌrf9£œQÎ(g3ÈäÿÈÿ‘ÿ#***"""§•ÓÊiååååääääää÷ä÷ä÷äÔrj9µd•¬’Uz+½•ÞJ±R¬+½‘ÞHo¤×ÒkéµôJz%½’^H/¤Òsé¹ô\z*=•žJÑR´-=‘žHO¤ÇÒcé±ôPz(=”îK÷¥ûÒ=éžtOº#Ý‘îHÿHÿHÿH·¥ÛÒmé–tKº%ÝnH7¤ëÒuéºtUº*]•®HW¤+Òeé²tYº$]’.IIII¤ ÒéœtN:'‘ÎHg¤ÓÒié´tR:)”NH'¤Ò1é˜tL:*•ŽJ‡¥ÃÒaétH:$H¤ýÒ~i¿!EHR¸.…Kº¤Kº¤Jª¤JФHŠ$X$‹d‘öH{¤=Òni·´[Ú)í”vJ;¤Òi›´MÚ&m•¶J[¥ÍÒfi³&…IaÒFi£´QÚ m6Hë¤uÒ:i´FZ#­–VK«¥•ÒJi¥´BZ!­–IˤeÒRi©´TúSúSúSúCúCúCú]ú]ú]úMúMúMúUúUúUZ(-”J¡R¨*Í“æIó¤_¤_¤_¤9ÒiŽ4[š-Í–B¤)DúYúYúYš!ÍfHÓ¥éÒtiš4Mš&M•¦JS¥`)X –~”~”~”&K“¥ÉÒDi¢4Qš M&Hã¤qÒ8i¬4V+–FK£¥QÒ(i”4B!†KÃ¥áÒPi¨4T" ‘†Hƒ¥ÁÒ`i4H$ H¤~R?©ŸÔWê+õ•zK½¥ÞR$I=¥žRO©‡ÔCê!u“ºIݤ®RW©«ÔEê"u‘:K¥ÎÒ·Ò·Ò·Ò7Ò7Ò7R©ƒÔAj'µ“ÚIm¥¶R[©µÔZj-µ’ZI­¤R ©…Ô\j.5—šJM¥¦R©‰ÔD ”¥@©±ÔXj,5”J ¥)@ H ¤R}©¾T_ª'Õ“êIu¤:R©¶T[ª-Õ”jJ5¥R ©†ä'ùI~R5©šTMª*U•ªJU¤*R©’TIª$U*H¤òRy©¼ô…ô…ô…TN*'•“ÊHe¤2’ä#ùH¥¤RR)©¤TR*)—ŠKÅ¥bR1©˜TD*"‘ I…¤BRA© TPÊ/å—òKŸKŸKŸKy¥¼R^)”GÊ#}&}&}&å’rI¹¤R)‡”]Ê.e—²JY¥¬Rf)³”YÊ$e’2I¤ R)½”^J/}*}*}*¥“ÒI餴RZ)­”FJ#¥‘>’>’>’>”>”>”Þ—Þ—Þ—Þ“Þ“Þ“RI©¤T–·–·–·–8Kœ%ÎòÆòÆòÆc‰±ÄX^Y^Y^Y^Z^Z^Zž[ž[ž[žYžYžY¢-Ñ–hK”%Êeylylylyhyhyhy`y`y`¹g¹g¹g¹k¹k¹kùÇòåËß–¿-[nYnYnYnZnZnZ®[®[®[®Y®Y®Y®X®X®X.[.[.[.Y.Y.Yþ²üeùËrÁrÁrÁrÎrÎrÎrÖrÖrÖrÚrÚrÚrÊrÊrÊrÂrÂrÂrÜrÜrÜrÔrÔrÔrØrØrØrÈrÈrÈrÀrÀrÀ²ß²ß²ßa‰°DXÂ-á–pÑm/ºëÄc;p¢0x‚7ä¡ÀàÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``)ÚË)/§¼œ²sÆÎ;g ¾<øòàË-Õ–jKµF©¥j”*º¢èŠ¢+²m϶=ÛöâSŠO)>¥fžšyjæiµ¹ÕæV›ÅÏïX´cÑŽEb;Ô'I‹˜¤P¢~sS?P?P?èкCë­3ºIΩ9§æœ*þÛRËRËR‹zv—¦þ3õŸ©¯¼^ðº¨áüògÈŸ!êFÔ¨ÔwLpN9ö¤%®ÆâÊ,jR\±ÅÕ›ú‰˜¤PÎÄ9Ô`&;^ìx±c›9mæ´™“1[xná¹…Ô¼Íû6ïÛ¼Ú4jÓ¨MüZ É’=$;õÞ8§;ff…™fVˆ_Ÿ4Wrê$&``BÑ ¤?ù¹ÈÏE2&‘Ì73ßÌ|“«JÂL0uÂÔ ñë³°QØ(lPŸÜ1á¹sʱ#ažm¶ýÙvêx``BÑ ˜›oôýÑï~Ô™Ï{®‘¹FæÙù“Οtþd}íõµ××>VàXcÄô•¯ƒ^½º½êöªÛ«ŽÔmÆ×°Gà {$æ§ûÕˆW#^p|)Õ®T»RíDù9öFŒõ«Ü¯r¿Ê\™¹c"qÎ)Çj$wÀÀ …¢;0“Y¯f½šõÊÞg9wûÜís·¿~óúÍë7¿lb¿Ÿõþ¬÷g½¹æØ#ÂòâSŠO)þ/#ÆŒýÆ~c?íœ;&çœrìpõõõÛz_س>PKÀ€ €@ Ew6`bIÇŸåEÍ5[Ô,i˹`ü‚ñ ÆÛ+¡˜3%_y–\vpÙA{!×dî˜HÌsʱÃ]Þæ}›÷m^ê$>``Hgxœáq†ÕãV[=®ó'?éüIußê¾Õ}‹l+²­È¶lÛ³m϶½Øübó‹Í¯QªF©¥:¿éü¦ó›5Ö X3@ü®{Ëó®ÝÙ¢K}¦>SŸõiÕ§UŸV5óÔÌS3OÑEW]‘}eö•ÙWŠ§î‰º'êžSLý1õÔf Ïž5¼Ð©B§ ª WÐ+èâ,̾;ûîì»7ÎÜ8sãLâ´„¸Òq¥ãJk·µÛÚíï~ôû£õ·ÔßR‹O5Ÿj>ÕDMæõËë—ׯ\úréË¥ÿ¦Ê7U¾©"&†}þ4üi¸çÊv`ô¿/ïºÑZĈFó}–½í ®X·bÝŠuŽ'Xö†.fQož ÒÞµõF݈ºuc‡æj’»Iî&¹¿¼öåµ/¯åÍš#4†üòg¨<¯ò¼Êóäs@N¹ \P.è¹ú©W+®VœmmŒÏ1>Çø)ùšù¦Ñ›FoYjYjYj‰©°ë\­sµÎUQÚøwÏZÿ©õŸZÿéò Ëƒ.Ö×^_{}mwM-ž°v{òÖÉ['o˜8b∉âü–QbD‰¢ÌRHU UÕaU‡U60íÀ´Ó*Y”,JîD¶ž¤z’êIª•¿­ümåotlбAµ¶ÕÚVk[ðzÁ믋ÏlÙ¼eó–Íë¿Ì™ÿ²±ÇV[ñh¹£åŽ–KØ95÷iâ;O;ñn9ºåè–¶µ]O«§ÕÓø+ x00ð Ñ5®è¸¢ãŠftZ¸^6绳O=uöÔÙJË+-¯´Ü•’‹®pwÕí³í϶?Û.¢×k5SêL©3¥ÿ}-õµÔ×R{¢=lør×¾@ÂÊ™Ï'ŸO>ñß·WÝ^u{•{Kø®Âw{ßí}·÷ä#“L>"$Ñ/~¾àÏ.ø³½­‰Æõlï-ªÂÄ{ïM¼g¦3ÿ;¶fÔQwF]ï¹*N ™2%Ä^i›¦kš®i:O·^úºrŸšñjÆ«n‹IŽ8VàX{û:»úì곫SÜ53½5½5½ørƒ¡]/³¨Oß1ŶÚNn;¹ídWJY6²ldÙ”y'^Ì1ÿÅ|qÅvýìŸxïÄ{'Þså~çú3ñïÑIUò”ö´#¾Œâxâ˜qÀ 1úbtlF·*l6 ÿ7²ÖÎìKŒWvWÉ3ßÌ|3óM×;¹N<=ñôÄÓøÓ¢ºWΩ9§æœê®Î¸'QO¢žD‰ñ…î-§¥çÞNCç»&Å(@Ç?_âV‰[%n%fù…¿4ø¥Á/öö{¹Æå—k˜ã ŠQGö¶Ÿåt–ÓYN{[·²èÊ·Wæ\#sÌ52aev\Ûbœ–íêú¹ãƒ/v¼ØñbG×ëdðåÁ—_¶Ý‹‘œÒ®™ò=Ê÷(Ÿã¯5$Œx¿ò¡o}sèOÜ1/Œº0ê¨ø“™»B`ç§Ÿv~ZJ»[xná¹…bœ¨çž@<{âÚë®=z¢Ì)ùiÇ™Øñ~މ¿ž€{7“Èeô0×»Ã2zw-³3ã'ÜELNèJ ?,ó°ÌÃ2bBoï¬Ïwmb"Öž³{Îî9Û™ò88¹ëÓw3âfÄÍ{{‰ ›ã Š©5ím-þ”ÂÞvôDm8ÞÚ„×^OxíÞó%&ˆÓœ&¬¿²×¤^“zMr¥ž“×5óAõÕTSûz®œbÊY÷Ž˜ÄÄî-mù“åO–?ëëë—îD‰Ùb €ÝUfžvœ€{üÙãÏÚûz  {·Ä9ÓU$FH„½{öBDV¯ƒ^½ºµãÖŽ[;6ÿ½ùïÍ7{Øìa³‡ÎO‘÷®¥MX§[ÓØ¦±Mc·¯Ý¾vûÚ¿Cÿý;T¼KRLV¹¸ðâ‹ ‹7:?}¨3¥iÓ>¦½3[!ßÚNk;­í$&¯ïo‚“©ŠÉ Å$~Ž·&ÞÓ,BçëVBâ]wÿ£>Ó5M×4i}-úZôµh1¦SL"*Æy‹)ÅÛ"ÝUŸ k½»õîÖ»›ó­Et‰êçôsú9{?#:CÝõt]icÉëN$öå̼)¢ Dˆ“™‹·üŠQãÏW<_ñ|…‡ýËÞ_öþ²7þúÿ*gt¦èLÑÀ®—™§w €¿¢‚¸00p›öÝÛwoßÝñt¬Kî,¹³äλvÒe Ïž5ÜÞ–Û i7¤Ýw-­ó[¢ä~ôçG~äLÉÅÈ g¶\%¸Jp•`ñóŽ·¹j檙«fÚíŒÎ)ZDž×õ®Ûœõñ¬g}ì8¶ß9cçŒ3Þµ%tþ¤ó'?±·eñ¦LÑž°6ü®!GŽÐ¡9BŶ»ûíî·»Ÿ˜lV|•Atï:ãèÊ—lÙôYïÏzÖÛù½$—3(>ûö¶&>Þyµ\¾gùžå{ì•\Ô’çZoüq]®o3aW`aLý1õÇÔ÷D`¦k¦(í¼õóÖÏ[ÿ®Ÿ8Ç2Ïz5ëÕ¬Wî=j1òþŸ©ÿLýgêÿØhzkzkzg¶ÙfN›9mæ¼kH^w¢nJ7¥›â¸Z/m½´õÒûï7¾ßØ™m:ž$Ÿ˜§÷>í8³_ñ•{{_kàï)à.ÀÀÀ qÞ5úÏîÎoSŒBKÚ’·T[ª-U{¿;uÂÔ S'$°³Õ‰.xÒ8³1gÞoŠKO”v⽉÷&ÞKXK~׉I¯f¼šñªSgpäà‘ƒGö\G¹x³¯½-}ô}Ð÷Îì%yAÿeþËü—ÙÛÎñÌÇ3Ïì×LñV{%oÐ8 q€'®iñÇ\ºkËñ§:×z¨õŸZÿ©õ{aƒ+Ÿ‹ärÍ3I8ÞÚ»F¿ñ‰—2Äÿ«mŒä®¯”jWª]©vb"k÷^{KŒ(1¢Äçk y]Ç}øëÃ_;ýºò‰ v~;<í¸ò´ã˜˜›ÁñŠ¿ª€»7èü¦ó›ÎoÝñô„u]u=Öõ˜»¶ªjWJ.¦tfRÇÛëö¶pná¹…çºR· Æ/¿`¼½íwhÝ¡u‡ÖÎlçË–,ö¶óG¶?²ý‘Íõ– & ¯´¼ÒòJËm÷òy¾Ïó}žÏs}9k9k9«˜2×ù-;õÒ§UŸV}Z¹R'ñ-[k"ÖD¬1߬ WÐ+èöJ+&ÅõÎkæ¥ÀK—í•Ü·§oOßžž€Eðü®¥“ÞÛÛfüœßæ³í϶?Ûno›ñ£ý„Õpr¹f/^¼Ø½_HXÛp} b:ñ„•pÛîm»·ívWK^×±îaÝú‡Ù+m±ùÅæ›ïziy!6kĶWöž°» €=ÀÀÀ%Ë<,ó°Œã.¤3;Ïì<³Óõ}Þwzßé}öö’}eö•ÙWº·ãR„v®—<þ€ ëvt< ¶x‡œ+%c;&¼þ÷E¼ÛØñO|ýÅã/ñؽza†}ö¡{»ž9Gâl&¬ÌŽß—éJýTÜZqkÅ­ö:p]ŸºÜ;Ï x¦½ß}õ$êI”w^9Å(I{%/>¥ø”âSÜÇkû®¥u<¾Çøö:qÄyîÝã¤K“.Mºäú=Ýý®{|yðåÁ—íýníGµÕ~dïwóúåõËë—´c&f}<ëãY{z›óµ*¦%wï9“µºRÚóÓÎO;?ÍÞöÆ Œó®ÛœfBš il·–):St¦è[;ní¸µÃ¬g0ùŽŽ>}:Únt?Cþ ù3¸7vez^g¶ÿ®¥­ÝÞvÖ5]×t]SWJëý×Ì9ç\œsÑ^ ÇV[qlEO|Ö®Ú,w{ßí}··+gß]#]ocÉë:&βÝ;BÚi¦õD+"‘‡ÈÀ)¡%ÕÓŽc«Ç­·zœ½½‹öÉ_XÀuÀÀÀ%ñßPhKŒnqïO…×üJó+ͯ8³Ç_a/Â^„½poÉÅDŽööXO«§ÕÓìýîOßýôÝOß9ÿö¾Ýýv÷ÛÝïå”—S^NIœ–ÐnH»!í†xnÂÕw=õ·ÔßR‹{#4ýœ~N?ç¹26 …w-süÉWãkö°ÙÃfßZr<ƒåO–?Yþdr|ðµèkÑ×¢í•<þÝÕz]%ÜöV ¬XÕÞv,µ,µ,µ\)­÷_3¿©òM•oªxóeçϾhÏžÞ‹3m,y]ÇöhØ£a{¿»bÝŠu+Öy¢´«f®š¹j&pJhcIû´cÏžo÷|»ç[{{oÛ4¶i,a×—Ø{ó¨p)ðRà¥@÷îÑñʪê«:Ì™Ž0Ç_â}„î-ùÉ['o¼•° ?£nD݈º‘Ñ3êΨ;£®±ßØoì1ÿÅüóÝ{t¾=}{úöÌè5â—Çù£ø!‡›ÅŸ‹ü\äç"®wa;~¯ç»HÉñ ú/ó_æ¿ÌÞŽg>žùxfï¼rвÙ+ù×%¿.ùuI÷¶ÞÛ«n¯º½Ê•2»7ì‰ųu¬À±Ç ¸RZï¿fú}å÷•ßWöö~võÙÕgW{O‹u\WbD»§÷âLK^×1Ç_a9½ïô¾Óû¦}L{÷îQLÑio¹ÛçnŸ»½ë°'J.ÆÙÛcÖð¬áYÃ)¹’Åô¡™RgJ)µ{;§N˜:aê1~Îù£û¬÷g½?ëí=]¢ñßëüQ$NÈáx_Ît}¾Íû6ïÛ¼ö¶ðýÑï~ô]=9žAñÎo{[¹w^9GuÕuTW{%Ÿxo⽉÷ÜÕ¢ÜÕîÞ°'×È\#sÙýBÌ»^’ã53þÝÊVbNFí ­Ë]m,y]DzœÎr:‹Ýw¿zô:ÈgÓñs0O;î}Ú±%&ʶ·÷<ò4ÊÓˆ¸Ž˜¸$ñà7Þ4zÓÈõ5ñ`±M{{Ìë—×/¯_ºðÆV[qlEÇ“IºÂ™’dÛžm{¶íÞÓ%¿<ïZŸ‰Ó‘½`ü‚ñ Æ'lÚmí¶vÛ½S'Ç3è¸jÅÕŠ«çWÎ:Wë\­sÕ^ÉÅ´ÃïºÍägŠÎÉî[cýbýbýüõá¯í•0wûÜís··×%·åü–ó[ÎÛûÝöÝÛwoßݽ-áÖŽ[;níShÚ.Úmí¶vû]·™T]¢ööøÅã/ñXüŒã÷ÝîX´cÑŽE®”!¹ŸAÇçN´Þ¤šœóÆ™gnœ‰ÿ ²³{[‘wÀ#&Ž˜8b¢ãÚpå®äý×ÌÍoþ{óßö~·î‰º'êžpo;ôíéÛÓ·§í¾D ìø &—8y]ÇÄ8o{¥-ª@ª©Ü[Ãoó¾Íû6¯ãw{g<øòà˃/{CÌÓŽëÄèv{{_Pà/,à:``à’ûï7¾ß8q:Oï;½ïô>{ÛÏ|3óÍÌ7ÝÛqé®’;îäÍë—×/¯Ÿ½} ‘‡ÈCäÄ©}:útôé„…Ë<,󰌻Ύ3ìÂÉ”:SêL©½ó-ªö8žüÿ¾Ü`güS‘mE¶Ùæz “ûtÜz1éF¼‘8WH±¯øSÓÛŠ˹²¯ä/j¶¨Ù¢fžx›µ9®™î=w‡þúw¨½í÷šÔkR¯IÞpmt½6’×uìiøÓð§á‰£îî·»ßî~‰£º«ä϶?Ûþl»{ŸÙRNó¶§AÌF`oï¿Õù­Îouø ¸Ž˜¸ãŽ$w‡p|ÖðYÃg%N@ëéí¿ë^bÚÇ´±;!¶ßW~_ù}•°rrÍŒïä­“·NÞ²·ÍÏzÖû³Þ®‡”ž¾¾ë¾’×uÌñ—!â!nÂÊ<ìa ûýÏ<ŧŸRÜî‹ ¾¼öåµ/¯=_ñ|Åóž~¶Lü˜§Wˆ+¼í~sNÍ95çTÞþ Ü…˜¸ãî¤lÛ³m϶ý]»uœ‰~ÛÌi3§Íœwݲó‰ñǸ8³eÑm7ªë¨®£º:Þr÷°îaÝÃþÇ–Ó[Ó[Ó;3BHtG¾ëY1Œ3Aµ[ézÝfŠÎ)úÿŽ:½5½5½3Û|œáq†Ç:Òù“ΟØÛrü±MžhÞþ휱sÆÎηÌ:Wë\­sÕeK¾gP#ï©CÑÝ<³ÂÌ 3+¸TˆIJ§·˜Þbz‹¡9Bs„:Þo³‡Í6{˜˜á™§·ïÞQh.M£jºkæÕ†ÓŸ¸ïxïÄ{"„³·åàÅÁ‹ƒ›/NŽ×1ç¯üâÕÎlóuÐë ×Aïý:_ò¶“ÛNn;Ù™­½ëfÛwÄf ÏžÕmÓe§Ì6æ O;â>ko¿ñoþª®#&n#Þ2˜Ï'ŸO>g:é¶œßr~ËùÛ«n¯º½Jt©‹ÿ{ö"ìÅ×%¿.ùuIÇ[(ª@ª©îŒ¼3òÎÈw-­ã-W ®\%ØÞÿAدxÇç•üWò_É¿¸ðâ‹ ;þ]áó|Ÿçû<ßÝÞw{ßííLiÿ|ùçË?_þ®Æxoƒ[ùÛÊßVþv)ðRà¥@ñ–AÑ,Æ;†ï ß¾Ktý]QtEÑŽ·ÜåA—]8ß%÷(ߣ|òÅ7­c .¸pๅçž[(Jû úƒêªïŸ¾úþé"œs&¤?žùxæã™]iÃI‹¯8ßAÿG¶?²ý‘Í%I¾g0¾·yßæ}›7c‚¬kº®éº¦¢<â“.®Qâ¿E´&~¦S®N¹:år~Ë-Ž·8ÞâxâÇöžÞ~Âö2mдAÓydÞˆdxÍtfËñK{-õµÔ×R‹ÉÌoí¸µãÖK-K-K-gÂéRíJµ+Õ.ñ³ÄlcÉë:&b]ñTó?ž|¢ DˆšfBš iÄ "âHÅ´ó¢ /¿`ü‚ñåO–?Yþ¤í4hàz=o,´±ÐÆBÎ_ýæ­Ÿ·~Þúƒ}ö=ØW¼IWÄ‘e#ËF–ŸÙøÓÇ·|Ïò=Ë÷x[ÌÓλ_‹±·ßŸ¾û黟¾ãï)à.ÀÀÀÍÄÓEîö¹ÛçnŸÑcòúåõËë'ºÌ<ñþ3芘ֽ%#ã¿9Ò™Òºe¹BLÓ'Æ£¼k ‹LtU{®„b„Íšk¬àzÇeÒÀΔAˆ?ÆÔs%IŽgÐq­:~c¥çˆýÆ;¿å$NË|×mŠ Ä%O–×̧'žžxZðzÁë¯{®„yåi”§Ñ™gvžÙém×FO´±äuÓA‹sä‰rVÜZqkÅ­Žß,ûåwb´½ë¼óÀ<í$Ì컳ïξko¿î}¥00ðñŒQèT¡S…N¹· LLÝ)ºÛ<=ý]üqÆ®—\Œ–¾¾¾HXÉÅøžÄ‰1Zª-Õ–jÔ¨Q7\o eJ—)]¦´{K(êSŒOœˆ+q>;Úmí¶vÛqIº)Ý”nJâ”*yAgŽ¥õÒÖK[/MœÏQußê¾Õ}ã¿•ÖÓG—¼`Ç[þ¶Ä·%¾-áJ™“ï5³lÞ²y˺9À£~Ö“oœ|ïD…ÂFaÃ]ås“Äë¹»êYŒ]Ž?)±ëÄ´çS'L0u‚íS™·À<í8O\Õm÷XA¯ WÐóY ¤ÀÀÀƒžD=‰z5rðÈÁ#;ÿþ6[âýÁbÂC1ižëes¾óKüKÀ?ü°ò‹ÀIL‘í†î­xcnJ7,ݰtCwu2ÖÌS3OÍ<[l=°õ€{»áÄ$¥b›¹Fæ™k¤+#)»ëz¬ë11axbƉó©qfä¢úúúAb~–“Ë|×sݾ{ûîí»»rD¶S 7¿ÒüJó+âyÏØqOoß•½Lº4éÒ¤K¶[‹?%rJ¾fŠy#VB1[Àà˃/¾,¦«õæk£çÚXr¼Ž‰qºcÆ Œ‰ÿ6Ùw3*ξ8vÏSñlæú\ å¬å¬åþk¢àø{³ËØ[’6æiÇùë°½qÞüÝÜ‹˜$Ûq]ÕÚVk[­­ã"âañ5ñï?éüIçOV[=nõ8ï J"ºSk?ªý¨ö#1"YDÔ"Zð_æ¿Ì™ˆ4þêóWŸ¿ú$N‡ÚÄ{ïM¼'F¡•K_.}¹ôbBBQ·ÙWf_™}¥¨íJË+-¯´\Ôð¬g}<ëc1í^âÔsünb1’µF©¥j”5)J+&ßÁtlбÁüßçÿ>ÿw·…èà Ú|®w,Ú±hÇ¢A÷Ýt_¼©WŒß1¤8.1=¯˜FU|)dèÆ¡‡no4Oü¯ $~-%ìÿ:v5ãÕŒWÿë¼ $’á53útôéèÿ‹ÓÄÛ…ÅDÓâŽ)‚"QrñÎWQÎßËÿ^þ÷ò÷:Üëp¯Cri“žkcÉý:&öµ¨Ù¢f‹š‰«“h“bl¨øŠ€(gà {4ì’=${Hö¤ú’Ø£ø¤´™ÓfN›9âéHÄ´âyIŒG¯sµÎÕ:Wûë_¬1ñ¦m3]?yÚ‰ÏØoì7öÛûšBü±éîBL ’XÒŽ¶4wù“WÝzÃè[pÍwJîõܯr¿Êý*s®¹fR«Î”–k)mÌ;‰˜ßöx[mnµ¹Õf®ZÀ€ €IlûÚík·¯µ÷þËW#^x5‚Z€äåuÐë ×Ab¬³í~ר]cw¥–€'’˜3o¿¦– yÙü÷æ¿7ÿm{=÷íéÛÓ·'×và9ÀÀ¯ö"ìEØ Û¿X;´îкCkê’qõ¶½ªo=°õÀÖÔð``€wHoMoMoûk¶íÙ¶gÛÎX1H.gxœáqÛëyußê¾Õ}¹žO#&xõõõ&‚€ä+xqðâàŶ×põ™úL}FýO#&xÛ¿[ó4ÊÓ(O£‡e–yX†úïô(ߣ|ò‰+vükx7¥›ÒMá«< q¼Î‘wFÞ™×/¯_^?Æ@r1®è¸¢ãŠÆ¿bçóÉç“Ïçn﻽ïö¦~@â &x)Û¿^sNÍ95çT‚ð6âÊœkd®‘¹FÆ¿n¯°fÀš|}$&``€Wã}Ààý†ý1ìaÄ¿J÷îÖ»[ïn\±@â#&xµç+ž¯x¾BüõZÝ·ºouߺ'Ꞩ{‚P¼AÔ¨Q7â_¥›¦kš®i:®Ò ©0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÿLjpzÙ—DËþ$Z$Ñr0‰–C‰¾N¢åH-G“h9–DËñ$ZN$Ñr2‰–SI´œN¢åL¢/g“h9—DËù$Z.$ÑòW-“h¹”DËå$Z"“h¹’DËÕ$Z®%úr=‰–I´ÜL¢åV-·“hù;‰–’h¹“DËÝ$Zî%Ñr?‰–I´}õšßªÅæ×òŧ‡üöjrÄ“F ­ÖÇýýݵ¾hÙ¸¬óþ…{Gïù T†"å"-ΗmxÃá _öyšóiNk9Î/€·!†w"$K‘"/Ä]ôñ÷ñŽp¦ãlPû ÖIw˜Õy·'â^gÖbï¢$ΔY8RÎ8€=O3>Íh-Û3wÏÜ/z:ó”Õhp)û¶F4ûýúÀ÷Ýô:¿Ž~¢Ím2kvŸ¡þ¿ VR)©ÞÜçŒx`x'`@2³öÜÚs1«œé ›¹±ÆùÐùO*uÚlbR…¾öÖ¢T¢„΋8jÎ>@|'枘÷¡3OSÝk7ßµ­Íµa[óuÜžT¡¯½u̬ýÓÚdY~¼3Ç2ªÀ¨/¼úf¨um iÃ;’ا±O­Ç†VZùåWŽ»ÃÆT(¶>Õ“€®!͆x[èk7 èÒlˆ(¹ã£5 jƒVR²5åÖ”‹™áøÙ©Fö YN”¿xhãÆÎ’·…¾öÖoÃE4¨°èúØ¡3Ç:>ºŠÑ£Ÿ6{ñ0â-³Å$`x'`€W{9èå ë°@ß@ßgûw=ÕzOÐËäúÚ}sð©Ö{‚^:>RQ¢fh! ‰³ÆY­3ªÏ¨þjïÿ˜=eç´L“'—Ð×ÞúŸõ»Œ6söøõ8°Ôññ^o{½íÛ,4€ÄG ïD ðR/:¿èlíæ;ÞwüÓ_íuuuk^vàöÔ/ó÷ÈÝx~r~ã¯Å‰£³wì¢fD-ÑZ€Éݲ޲Æÿpü‡/ÿ±÷tT¸Çç¯oŒ¼°mz‡ äýÚ®6Ý7¤µã82(2(î4 1Ã;¼NL®˜\Ö?kóé#{Ý[ &Õ¹rÓz;¨“[3E¿ÿµ¾ÔÉ¿­8R{õ jIÔ-˜Uðùàó¯ºÙ{"úö`àê]Q¯úF\i´Æ|ÑoüuĘÅï¸å8¾•æVš·5h3‰ƒÞ‰àMjXkXŸvšÖiÚó‡öº´6×jœ}ÜW¦ }í¬ÅQÛ«Qc¢öhDÀL–4[Ò,&½½§ ÑáÝZ-oùöÞ¡èéÌýÆ__Ø¿!÷w¥ÇÀQù£ò[3Ò~<Þ‰àEBò†ä}u×^7ÖöîKF·NiÑoüµ¨{õ#jVÌa_º}éb;Ú{ò»¶ûÉ¥o¬q‡ú¤œè7þ:rSXô·íÕÿ'þŸáTT|fœ+ø&à@î¯þ$ú¿¶­4,‹½'ÃãÙg}Hãð`wÙ±qÇÆ7ÝE¯^ýªËã€Ço£©™„!$±ÞWz_y±ÌöQÉïPþ]'?ëЫ_@1â^Ûµ¨QK¶µ'j•Ö’—°a bÞÚ 2ïžÚ3¨õ§Ä½öÖÓ6 ¨úk{µÓ'¦um À½€]×<®¹õŒ½çXÂà„!$™ã¡ÇCcŸÛ»µÿS®sé6z¯E-Ùíz<4ö9- x¿è'ÑO¬>öžj¤¯Cºƒˆ×ñ:võÁ2+K®.|õʇ¶u8ïú¼ë¯[ÓÒÜ‹ØuñÇþ:^;ÊZËZ£}†ù ‹>`{#_Õ' ß w_‹³­IQâ¶itÀ›ý°ð‡…¯jÙ>Ï|{.pË®;„»Î¯/ÚÔ9Î^—ÙÃ!‡¼=K{p`׉@W„»ÎÄÀ„ÁÎ $m§¶36»ím»èŽœã¯y[°×Î ‰u_‹µg[«¢¶iuÀ;=hö Ù[ƒiŸÝ»—§G©¥klës¼ïxß—÷huîBì^„ÁîB H\'­'­±>i|ÒDk¶·êC[ëÛœ@7akQ{ÿ28OšhMÔ< x›àEÁ‹þ­sgÆÙAa Êå&lý$L9Ù¬„½²'eŸ”µ¦¦í¸ŽØsƒ]A HTgKŸ-×ÄöÆ\¡IÞóÅ­÷‚ºø·"ÊMàú^PÿV¢&mkXÔ<-x—-^¶°±×qõ@=Ð4€(וõŒ<ƒ>_°Í¶n†. }=‡à:àÄAü®€‰*èDЉsloÆzéæ]×"Äu}-jÒ¶†EÍÓ€÷ØÞm{·7MmŸ[Æ.í~xY*â[××Jþ-FÚë{[âm ëuÚ!€+€a°3€‰äåÒ—K­v»Ÿbû÷Êp‚øÖõµ¨I{õ,έxƒckŒ}zÑö‰åúµm¾¶&Uhz)pS¶Îã—'¹ÇÀ> <¿kŸm=Ÿ9qæDÜW´CW'-Â`{€‰$¢jDÕØ™üyê¿‹ûëæµ¨UÛÚgÖ’Ö“ÎO:[?°}V)µ¾ÈÚÈÆI—ÚÀÉ=>teiÕ¾™lhÜèq£_^¡5¸‚Ø{ÇG H$ú è÷âí-öÒ¦7;FdëÞµ¨UÛÚgÖ’ÖÞ{G¼Ùbû¬²äؤœÓü €Ý»Ž»LÃ/ìuxY;[;[ŸÓ&wÁwIDAT†Ø;<¯ŽµŽõ©½ÛjÜÈ^#2Ùºw-jÕn7_këS&H*}ÖöYû"Ìö)åæñíRûÀžXw,ÖhážyQȽŸîýôv%m a€½_Ê ƒ €÷ðÑÃGo#mo¢ßœðù`÷RÂZÏ­E ÛÖ¼8#´L[[cí~5ÐzÈ·Á`O¬7…Íx>¾‡íq)••ÊoÑ0†8yI9a00À㎤=’6Öb{ã\56`ÈÕ¼'.½3²óª6©§„øÍZÕfNÉÍr–/¯åýø‚OŽÐÌWîÏ+Ù+×µ+åëiÿ_{w]U}ï XmíÛJ{/B,¢(b/Š.µ\Qé ‰ E@ež„pD¨â„EÅŠhµ€ˆ€2È,ƒ @° *ƒÔ “¶LIÎûǾ]‹®ÃÉ$;›çùã³\˜cöþîŸkÿÖþpΩ8cí€Q—Þ~ïË/§_ÑqyÓœ0ÀÁ„ã'\+(|‡‡«¿?iòêï[®h†¢4Q¼î‚I·wïÞ6©Á¬… ¯ù°B5ÊŒ¹äðÞ?ß°¾êE›† ¹©ËÀ7¥_±äÓ¦9á,€·=9»jÛɧx˜ÕiD§c÷Z™§G\|E» VPàÆ÷ß'«düÍò˵÷4ër~ŠÒåß6½³ÿ+ª]Òä»ïò³ÿß*L½ï»Ö­ÃY>Å·ëõß'«¤• ¾´»ÓîÎù<~òÒù6]&Ìð%s9hß¾¼w†•æTˆmvÃä©S;w[|¬gê× Þ‰?æä2Ée§X™§G Ñ+ƒÀ¸”ƒ)3ëÆß Ó/êø~³ŸmEzä­.jôfå‡.±ukpT×¾UöámÛ^Ø]»çK/¥Ni6³oê—óïiÐå?—nòýÿ”ìxÍËÇ Þüï Æ8˜püäƒ+be…oYú²ôì‹â÷'üí•Õ)“Â\9¸nç…o_Ôøå_à`ÂñÇ\+(|ÏMxn±S|ô?\0¶åûá,€;¦ÝõÕ¼ù)tO~Uý®µæ®ê¶¸]³?ürÁ(0ÀÙ¢>w¯2ø¼ðü/!¥”ò\ËØžê5[išw•›Sµ{Ûää·ÔþhôîðÀÁ„­4)¥”R†?Óç}P·é‹á,€—~õ¡ÿ)ŸŸ×.2zóÃÿõÅ"W-Ú¶-lïîÿø½e§î¶Þ¤”RJ)¥,Ìœ7}Þô]ÀRJ)Ï8”›|à¼N)MÞ^ZºÉ­))ã~R÷ÝgžZææîã3[ý±J‰%Ý®¼â’w¾»¥x‘•&¥”RÊðçcË~v×ÑpÀ;SçÎmÝ:?¯ÝZá½ú÷Ýwª]bX à‡Žv¬8©™õ&¥”RJ)eafÖ´¬i±© `)¥”çFšwzU‹M=–ÞUâ×;?¼¿Ô΋˧§':æÖ—ï°iX‡}¿9o^1(€½XJ)¥”Å$Ãüàã=VN¬$?¯Í|2µJÆa.€½XJ)¥”RÊÂÏsèÀÁg K)¥<òš£×=T;þ¶žï.3¦ÔÖ½Žêºÿ(—µ¥ú?¹¥òoÌÚhÑ JiÕÛöo÷³ ºM¹ó¯Á«þÞ¨ÍÒ,Î8ÑwWÄÊ”RJ)eágŸZ}jý*~æïÎÿ;€·šýXÛ¶Á«JQú‚ô߇­NôÀV¦”RJ)åéeüÎjÌOÆüäxw“‰^Îdþ#'ú÷¸ ÇGŸÈõüü9ôÀœ;ÖmX÷ðüS|ðÅõÝj×ïV´iÃäk‡¬,OÇ´ß~;¯Dnùîó’^Ï»ÖÝÒ¶M—%Â_Ž?ÎàŠX™@ᛸk⮬¤øýÉæuÓ®îX©¸ð¢Æ/ÿâÁ«þõ× +—ÝR=lp­Ò7$¯Û{ª},§#Ñ_­3™hŠÛ“GL>Ö!ÿ¥oðó…_úžL @K9˜r0³î)>èï7ûyÑV¤—7øåÿ¬Ïš{›?лw~^µ¨qã ÿz´æ8˜püqWÄÊ ß²ôeéÙÅïO>øÛ+«S&…³î˜v×WóJäçµ-_LþÑ¥ƒWÝ“rçàÅ‹CTo\ûN½N ¿œ€Ó¢Žžâ[úžL @ßg|Ÿ¬’ñ7Å/×ÞÓ¬ËùE[‘V­ÿ«Ñ_Ï»wÔ¯9lSÞ?¿k^»Ú÷̾ 8üp0áøã ®ˆ• ¾´»ÓîÎù<~òÒù6]&œp©¥ê¦§/¹~̈k½êÝ;ž©;lÓɯJòƵ}SÃóÞßc=S¿nðNüä“Ë$—9œbeœp4D£ô=™€÷ÉÏ>ùYöâøäÛC’Sž¸¥h+Òn/\7iÖ¬àx®:xé‚]7O\˜ÔûÉëw|yßÈ6îîÙá¼-R§4›Ù7õ±ã5/7®ìS¥kìÙ“øá*€ƒ ÇgpE¬L ð~xx¬^üþ¤É«¿o¹¢i8 àkߺjѶmÁ?¹©ËÀ7-®ýòÇÎ^ý|åÁƒû–mÝkZË“¾~×ZsWõ Û‡?o{rvÕ¶“OñЪӈNÇîµ2N¸øŠ^é{20núþôÜ´ø›å½ëªýøý E[‘î«Õñwßý›î—mÛzCþoó_õjS¢ÃüŠŸ—é½cÇÉÞ åµW® OL8þøƒ+beE`mlm,;Ñ.+'¶¦fÒ¬°À-x½çüªgÙÊ»Gç½K¬^þ¿ÚlÙ²3uîÜÖ­ÃVϘ9òÈЮñǼ´ÆÒ'Ò-L€Ó£.^¢]úžL @Á««ËHø˜ïáî%_\´Eip$ÃöÔð×#·U¹ê–u•‚ï²Î7Wgòɘ?Õyâùçsªvo›œ|òñåq¹Ö¿ü¿ÿügÏÎ×Ïž93 Õo0Õ„ïT®«˰0€¢Òkj¯©GgÆïRv~6wIëfa+€ƒ?þ¹ý‰Æíçw¸æÃ uvÔ¸tÒ%5öÝq㊪+7nüã'=_ãŒVÜü‡ãa«~ƒlûëc®‹Ÿùžgö<“;Éš8= àð;wJß“)€($}ïï{ÿÑ}ñ·Ò¿Ïh³³ý¯ÂPšæý1Ήþm8?ü9˜jü´ƒ«`5EkÑC‹:1+~¯2þÓáeŸE]š¨Äý¡†Ì²jpýëþÕÀö±ö±#Ö$ÀéQ‡Ó¹YúžL @!I½9õæìÆñ·Õ§ž¼ußkµÃV ÷ ¦?íà*X@Ñ:Ðþ@ûØã÷*UÞ­45­a8kÔâ›k¶N¸¹÷)>æÑAÊÜj5œ px(}O¦ dNÈœ{8Ñ6»O÷K’×)nÏ<ƒI&šsp¬F nrÛŒ-ñ;–íÛæÔl3[q{¶²Ý…6-X?ç/×}¹.çNëàL(€‹–Ò70…ªÇº뎾Ó]Qµi§þÞ|2˜dü„ƒÉ[@xÌí<·ó‰»â÷-C&tYûæyŠÛ3Ïý,©×,á_ÁÌ­œ[9¶Ý:8 à§ôÍ0…jCÕ UsNñAÐ76.?jÓÅöôèP¯¹÷4sOõš“ŒŸp0y+Ìf™Íb)‰ÐÜ·lõ]ÉJÜ3É‘—÷»ò•9ñ³;fì˜ãþj ÀY .JßJ @áZ[Ë®öÓj?=´<þ–¼fXóG{7Uåž^Ó‹Ÿj0í`ò 6#^ñÚ©âŒÜÐoæ+×)qO/Ì\º¾IåDÂT?P=v¾µpæÀGé{&Àåó—ÏϾ4þö|í¼²C·}™{u÷ùIcºùÏ`bÁôâ§LÛªÂi_“}Mr?Lôøf÷ç ûµø¹B÷‡æ£—w­2aJü<‡ÖZ3sUp¶(€Ï.¥ïÙ¢ (TUª6°ÚÀC«ãoØo÷J¾ÿ‰$µnþ3˜Ø)Þû;°ÚÀC«ƒi[t@˜=>öñ±ÇjÇïgîÛØhÖ‚*tóŸ[úMïÑ>'Ñ£±ý)ûSr7Xog‹øÌ)} ‚€"óÙ˜ÏÆdIt ÿÇuí«¶Ü§ÜÍ;ƒ)%ša0a+ ¿CˆUK´«Yò‡1¯˜§ÜÍ;³'üÛäI¿™|Í7[/ŒŸáŸ·ÿyûñVÀÙ¥>só¦Ï›~¢‹Ò÷ìRPÄzní¹õè›ñ·ó[×TX°þÊœ6ÝïOþµ¢7>ƒÉSŠŸ^0U« (^f&ÍLÊÊõqЧ—OÏè{ó«}M/«WV¯Ø[ÖÀÙ¥>s9MsšÆ¾Túž] `ŠØÁå—Ç~•è?¼eÍ7þú¶º7>ƒÉ$š[0U« (ffÆfƲ<ÛàÙÃïÆïpnZZm䯫O$¯.wç8uïɹxí˜ß ,ðSa.ýìÒìý@APŸ-'¿Xé{æÀ„BjçÔÎÙM=´š|CòüÇßWúL#Ѭ‚IZQ@ñµwáÞ…¹ w;=.o¾ø½WcíÖ6ª·@õ»á/SÇwîhVÏVy¶Ê±©V@ÁQN `BdTùQåíNôkn—Fãµ8—«ß`‰æLÏ*¢ae‰•%²Û&Úù ™Úeý„±œµ×K>7«ß´3Ý7=Ñ|ê]Tï¢ÃÍrÒrÒbiÖ@ÁQN `Âä¶Øm±ŒvO·{úÈþD³Þ«ÝðÒGï<תßà¬Í$˜X0=‹ˆ’ñMÆ7ÉúD» Aun>ñîÜ=k%•8wªßÍ«¦•ëX%ÑLþ÷ A*¬+iý40ᤠt².˺,6îöù·ÏÏHOôHë•áu¾µ3ömvõZE¶úý¶G»z­‚3M4‡`JÁĬ ªFl±éXçD;¢û>n4yÁÁc½S·6˜íê7uð?ê»+ïêw×Owý4÷6k p(€ '0!u´ýÑö±Î5‡Öšñj¢Ç[›V`îù™º–kør”ªßàŒ‚³KtîÁd‚)Y-@ÄíŠíŠå ½pè…™ÿH´;º¦ë•Çw<¼#yγmzD¯ú›4¨÷¨yW¿i=Òzä|a±&0ᤠÔ2ûeö‹ lT³QÍëò~àõ·Ï[,ì‘YÜ«ßà,ò>Ó`Ád¬à’ˉÅFÖYëØ¢¼÷KSç?}ñðï‹{éûw|ØrtòÂ[»®ž÷ùnoµ½Uni  ð)€ '0Å@vFvFìÓ5Ôȼ3ï‡_dÝøëwÏ;ÜiT“”âRúGyÞgL ˜†UœË¦\7庬‘yïn»ôÆÒënزfúôöKŠKé›;sMjÒ¯m2à¹!yŸÝM‡n:”ÑdêþÔÜ-Ö@QQN `Š™©§nÌz;ïÇaA>7ý¶Mc^>ð»NO5ºÒ÷wžj2,8ÂüœKpÖ®>ÀÉÖ^7:çÂü즺ÜÑtÁœ–Ûξ¢íܰ•¾Yϯz¶~űçnZ-?çòÈU\•ùʉ'ÄæYEKL8)€(–Ò6§mÎÙR­^µz‡Róó˜¬_ë¼³dËgmžoÿ~Q•¾ÁoŽ$?Çœ]p¦®8@"%3Jƪw+×­ÜÑnùÙe5èÛ“+g§6y}û?*ªÒ÷Ðå£?ÿB¯õ^JÏÏ1¹ô¼¥çØëŠ„‡˜pRPŒåŒÏûj|¥ñ•²JäÿÁYÃÛÖ÷×7ÿ¶¢ÅœžÈ·ù®h1§çÁoù¡ÇœQpv®2@þ}´è£EÙI?t÷ÕýåæÍÞ;þÁ–W¾Hù˱?¦h0öìÖ½[O³ýª±‹­õã*ÿY麴Åù?¶ë?X?³WFÙŒ²±ë\_€°QN `"âû#ßÉÍy¬Âc2ýÐG~'g«ÿæïKV<õÒ­_«ñöÔäÇŸ(÷þ“ºnÅÕMÛõO 2ø“àß?¼êL~opäÁY¸šgâDÛmcs&N˜8!ë÷g²CKÚpËìë>zO×ÖÿÍðJOל÷÷_x¤Ñò›^Úÿûþ—rýÆ-^4æ7¯˜Vê™ÝÃê¼Ðj@—NtiÕtÍœ¤Š}®¬±³òéýÞæ#›<Ò0mNÚœœÍ®&@˜)€ '0”^1½bî¶Q£G>vðLùtG­«PŽ7=Þ4öÒ´ÕÓVgm¼lÃe>ÎaïI½']–6*mTÎFW  ¸PN `".·Kn—Ø·©‹Sg·l7ªÝ¨#û‹ê¡^ðÛƒ# ŽÊÕ(|›¯Ü|eΣƒg ž•¹¼¨v†·»}XÆžßÌø&ëXÆàŒÁ±ß¹.Å‘˜pRpÎÉ>œ}8öé†e–å´[jl©ãO7z±Ñ‹‡?9[ó‚ÿZð_~KðM œ¶¿°ý…ÜK§r4kl‡êªý?%+•¬tà,|–̯ÿïõCGL1õXÇÕç­>/{PÆäŒÉ±›Í(8 `øÿØ»jïªÜ…©+RWd· 2ø“8×ä¼–óZì«•o­|+»ëG_ôuö_\ñÅ9¿5 <À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "Àñÿ#Üo ~Åk™%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/of.png000066400000000000000000000556161431412030200240120ustar00rootroot00000000000000‰PNG  IHDRT¤FÚgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷ÜZ¥IDATxÚíÝyœOuÿ?þ33H–cW–R"Ù—"ŠV©„JÑ*ZHÒ¢DÛE—­”$TâÒFËU)’6B–,I$Ù¢Y,É2óûãøü>Ów¼}Ô Æ{î÷¹Ý®Û\çuæ}Îyžó~›gy“žžžžž3óÌÌ33Ïå…//|yá ˜¸mⶉÛím´·ÑÞý­XåˆyrÂN„‰w¤iAz¤§§¥§¥ïÿ>ãòCúþŸýÔ‘eûyø^ÙþçÌ­da‹ûïUÕǵ{’sêó÷êØÚã´çÙði{Î…j8 Qú}–:ßû>{¿W#øý!ý bŽÈžë{˜sþÅÏmgÇmåHnåð½Ó•jäÎýŒîW‹¾ýÉÞßä³þN?fkruë«[_Ý:WÀ¡FiÒ¥ýeQLıA¬™Ê@üåÓ .ˆ â”|ø4€\J§~ð;øˆ¦wºÙÁ¿éQ$|$nP8(µGâúå J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ JäQ€ŒvŽÝ9vçØW7½ºéÕM3§Ìœ2sÊŠWܸâÆ5ÛÖl[³­èš¢kŠ®9¡í mOh;­æ´šÓjf×v7Ü8pãÀFíµkÔî÷š¿×ü½f‘ô"éEÒ-Y´dÑ’ørñåâ˾£ÞÔkS¯M½–N^:yéäŒËÏ_pþ‚ó¸* £Ôu©ëR×Õ¬^³zÍêÉ1É1É1E]TtÑÌq3ÇÍWºGé¥{¨p´€ö[þðò‡—?Üöù¶Ï·}~uìêØÕÿsϤ9Áœ`Nøí¯á× ¿¾ðë AR$e}»éåÓ˧—¿õì[Ͼõìßü>à÷áònÇu;®ÛqjT¨Q¡FRRRRRÒá;ögN{æ´gN{iÄK#^‘qy6b®†‚Sòè”G'?6ù±É­ÿzý×ë¿ÃõM]6uÙÔ%nqÜâ¸Åោ1aƒ'<Ñà‰sN?çôsN¿`Á .X»$vIìõ<€„ !H˜1eÆ”S¾ZöÕ²¯–Í4{ÐìAëf®›¹nfrbrbrbê’Ô%©KâËÇ—/Ÿ˜”˜”˜TquÅÕW‡u>Õù«Î_U{UíUµWeeGÂ?ÈèZ©k¥®•žXùÄÊ'V†´q[ƒÛÜÖ`Æ€f 8ÜïY€HbÒÓÓÓÓÓÌÆfæ™™gfžË _^øò—OÜ6qÛÄmö6ÚÛh¯SyÛ¾ÛöݶïÎîqv³{„¡Ý¡üTv<{ì=°÷€g<;àÙpIñ Å'Ÿ°hí¢µ‹Ö¸®Àu®;|ÇžV=­zZõ*ª ¨2à·~»á·Ç1F«0Üíuk¯[{Ý:ᇠ?LøaÏõ{®ßsý?{µ“’NJ:)iuâêÄÕ‰IiIiIiAJ¤¨ó{uß«û^ÝAºpÐ…Ë^ZöÒ²—²ë•³r…cÒŽI5ªÕ¨V£Z‡Ë{]ÙëÊ^W>0êQŒrî ·É y¨g£ë®7ºÞ¡D¿Çõ?®ÿqýââ⳾ݞüáÉž c­ŒËï[qߊûVœØåÄ.'v9ÜÇþå¯_þú寙£_nìÇþwìÏzã¬7Îz#Œ'³ý†Âè7ü¾Í‡m>lóabbbbbbî¬ðŸ=ÿìùgÏ.·u¹­ËmWu\ÕqUöF¿¡nUºUéV埻‚—¼´à¥÷nºwÓ½›2.²Ã“žì°â®w­¸Ë;8òÀÁ¬§f=5ë©H£ÕVkX­áÌf¾0ó…0”JIMIMIÍÒ&‚„ á¾-÷m¹oËÞË÷^¾÷òpq™Ne:•éÔáÇ?vøñÈ̾}ñžïyñ×À¡{e×+»^Ù“Ùp%D0­Õ´VÓZöüiÏŸö|®‹‚„ áÖooýöÖoàýðm*|Úw§':=Ñé‰Vç[?½õÓ[?-Õ¯T¿RýÂ%á;:|wçæ8ZÀÁòG–?²ü‘H£Ï¦ø3ÅujÔ©Q§¤ ²²Å±£ÆŽ;jÖÈY#g̸üÿ>ðßþ[ú…Ò/”~ápõ;íßiÿNûÉOO~zòÓ®CñéyŸž÷éy÷¯¼åý+#¶ÙKb—Ä.i~kó[›ßúú[¯¿õú[ Š,(² È¦v›Úmj·²úÊê+«OøxÂÇ>îÜ¡s‡Î~‹ïpéYÿ>ëßgý;÷D‰ÏýøÜÏý8qÎÄ9çDZ'üS‰{6ݳéžMS[Lm1µÅèüCç ý6ôÛÐ/üs1;Æì³ãæü7ç¿9¾áù†çéÕÂ9ÜýëÿXÿÇþîÞæ(ÿCùºîýsqùÌ)3§Ìœ2âÑŽxÔ{8’< (º­è¶¢ÛÒ˧—O/Ÿytc§6v oþœõmí¾s÷»ï¬^;½vú†77¼¹áÍpy|¹ørñåV\¶â²—e×¶2 ç&†³~/ýxéÇKï;gß9ûΉ´¾g‡vŽÝ9vçØ:)uR꤄ÏýͼΠmOh{BÛW6¼²á• }yÑ—}y(Õ o¾}ÚG§}tÚG_s`ûí¶¿}ðíƒo­uN]—º.u]µëª]WíºðÉÜ™×¹îê뮾îê'[?ÙúÉÖe¯/{}Ùë¥ÎáíÖöoØ¿aÄwVbrbrbrR‘¤"IEþî•¿kÀ®»TšQiF¥ÛgnŸ¹}f¸¼ìÙeÏ.{vx{yï&È < Gˆý†²7Ž o œ1ú µ,в@ËÙ5÷7­zZõ´ê«j­ªµªV8“²×ý½îïuÍr5ËÕ,÷H›GÚ<ÒæàÑ/¼jäU#¯Šýû²Ø—žüô¤OOúô¤C~C%^/ñz‰×·–ÝZvkÙƒ¯9àÙÏx6ºçÿ§äJþ§d¤è÷ÊùWοrþ°‘ÃF>÷Ðë\åÁ*Vyp^y5æÕˆ´Ný2tÊÐ)·Îá<àUZTiQ%ãò0ú}ú”§Oyúï#àÈ!áóƒŸ9í™Óž9-óè5Ï^óì5Ïfåõç7ßt~Ó&ÕšTkR­Øúbë‹­¯»¦îšºkn¼äÆKn¼dÄè£GŒÎàŸÍò o½*~UüªøHë„ñ䨊£*Žª­uþhêGS?ššyùñï||çgw>»óÙY‰ÀOùâ”/Nù"¼ùv¤u¦<6å±)ý³×¿vȵC®’yùÓõŸ®ÿt}ÏŽ 0ÀòNëwZ¿ÓzãÀ7̸<¼up£k]Ó蚬Ü$vS—M]6uYüËâ_ÿ¢ÚÙ%œÁùý[ß¿õý[™G+®P¸BáKî¿äþKîÏú ~×$®I\sßÜûæÞ77Ò:§Nœ:qjôE‰áM¶¿-úmÑo‹f½hüEã/_¸Záj…«e½Î4nиA¤ÑeO.{rÙ“ÿl+ç–9·Ì¹eJõ+Õ¯T¿ŒËÃ?¼ð<`àÈGHr‘ä"ÉEÞzü­Çßzü–‚·¼¥à¹Îmtn£ðé§%'•œTrR•UFTÎa½eï-{oÙûö=oßóö=áÏëUoT½Qõ2/oó~›÷Û¼>‡Øu’Ó,¼tòÒÉ‘F[ÿÖú·Ö¿eo{é­—Þzé­‘F—½´ì¥e/EßÓdÃã ŸQyôìkξæìk²«ÎUo¯z{ÕÛ#†Oeþg¯³6fmÌÚ«§_=ýêé‘>Ì·ÛgnŸ¹}æSžêðT‡cGŒ1vÏõ{®ßs}/Èä ¾¾¾nnöÇ-›2|-.±¸ÄâãƒñÁø ÏGy>ÊóÑÞĽ‰{×,^³xÍâørñåâËýÝýùgÑK¤Ÿ:ôîÛŠßVü¶â¤…I °þ5C®rÍ!†tÒ)+Õ.þeñ/‹ÙtOÓ=M÷úO}ž÷ó¼Ÿçu­F²ü®åw-¿+ †f­½ªöªÚ«‚ªAÕ jvmñÔ/NýâÔ/‚"A‘ HæÑý3È{=ƒžÑTçßZüÖâ·Á¢`Q°(óh‰ %&”˜]Û*Ý£tÒ=‚ÁÀ``æÑ´òiåÓÊgåõÃÛ¹«6¬Ú°j—Ïk9¯å¼–Ÿ¯û|Ýçë¼³€ÃG aäÙößmÿÝöß›7oÞ¼ysp}p}pý?{µŒóÃçÚn©±¥Æ–ÇÊ<È×?yý“×? êõ‚¿Ì®¸°âŠ «V¨Z¡j…¤k“®Mº6+[9sè™CÏúþÐ÷‡¾?ôÐÊ|ăû½Æï5~¯i´ì¥e/-{iö^‡áó€ƒs‚s‚s2î±sÄÎÑWç?Fü1âáíÐ3–©S¦N™:ÁƒÁƒÁƒYßÖæ6ß°ù†HðIi'¥”–•ׯqbkœxRÒII'%­N\¸ú/ï¯×ç¾>÷õ¹M¯lzeÓ+£o&7€€l6ç‘9Ìy¤Í‰mNlsâ¶.Ûºlë’½¯¿¥Å–[Z¼´à¥/ ÃËœ¢¤—O/Ÿ^~ &È“øŒ((gJŽIŽIމ4Zöì²g—=;{·øS“ŸšüÔ$ÒhÑ5E×]}un½²õÊÖ+[­ƒÖ×Iº-鶤۲¾­Y#gœ52Ò詞úá©fý³åÌWÎ|åÌWV«ƒÕY>qÎÄ9ç$¥%¥%¥y‡ƒgÙfs—Í]6wi×·]ßv}·}·í»mßEZ³IÁ&›³ă1–|´ä£%mj·©Ý¦vßýnìwc_ùþ•ï_ùþ¼ŸÎû鼟"½ÂŽI;&í˜ÞúÐç°¶<þÀ_‡ã§Bsîžs÷œ»ÃÊd­÷y½Ïë}îÊÉÉúŽê;ªï¨ðûUñÿïWÉa%‡•–½[üæ¦onúæ¦H£g\rÆ%g\â¼ü3»ïÜ}çî;GŒ1zÄèHë´?¾ýñíÏú¶ê}Qï‹z_d^ÞÄ{n˹-ç¶tF€ÃÁ ` ÛÜ»çÞ=÷îI*’T$©HæÑ¸¯â¾Šûê™Ï”x¦ÄM¥n*uS©ýgÿï׉Áÿ~]\\Œ9v䨑ÝÊt+Ó­LÆA‡R×¥®K]×üÖæ·6¿õPfì…‘sæå#ýÔ¡øhêGS?ši4 €“ö%íKÚçúə¹æGf~ö¾sö³ïœaÉÃ’‡%GZ'|ÆsΟûžÓl=wë¹[ÏízV׳ºžµhû¢í‹¶g^§îçu?¯ûy“šMj6©™$Y+mÝoë~[÷Ûƒ2\œxqâÅÎ#Í̲ÁW˾ZöÕ²IïLzgÒ;‘Ö £ßnUºUéVåÐ_ùº«¯»úº«‡ü:ä×!¿FZçã—?~ùã—'|<áã ç´Ê̘=cöŒÙ™—×ÿ¸þÇõ?£ùÍÏhîú!ôüÜçç>?wíúµë×®Ï<š˜œ˜œ˜Ü~wûÝíw«UFá¼Þä"ÉE’‹üòñ/ÿòñ²—–½´ì¥q£Æ7ªk³®Íº6«^;½vzøY‘ù§q¿6ëµY¯ÍÊ®§bW¯Z½jõªù†çžoø>¦Ì˜2cŠsfÙ`t¥Ñ•FWŠ4Ú¬O³>Íú„³~oJº)馿=×-Œ'ü0ᇠ?L~zòÓ“ŸÎ¼Î˜ãÆ7渉-[äˆuáMª¿øûÅßÕƒêAõŒ£5 Õ,T³Pž‰y&æ™èúa|‰ñ%Æ—è½»÷îÞ»ƒãƒãƒÜ‚ø®zwÕ»«^¡F…jdÎhhQÜ¢¸EqMã›Æ7b‚˜ &¸.¸.¸îÐ_¡Q³FÍ5{ùÍ—ß|ùÍÓœ>àôÙUÛ¼oä}#ïÕU_T}Ñü`~0ÿ¯{¾}ÑöEÛ7ôÛÐoC?çÈ^fYò{Íßkþ^s✉s&Ή´Î£•­ôh¥¬Ï«{ø‚‡/xø‚H£a<üsúÏé?§ç„Ê̽iîMsoJ«žV=­zæÑðæÏÙ5×cRB$¼0ø…Á/ ¾ý•Û_¹ý•ô„ô„ô„Ì+–=»ìÙeϾýÙÛŸ½ýY×LÖÐö„¶'´}¯è{Eß+:sÊÌ)3§doô›ùžyyxCûyMç5×Ô²—È’™oÍ|kæ[™ŸÎ:ã’ÿýÊz¸R­aµ†Õž~ûé·Ÿ~{æÑð6°³Í4kPN¨Ìw÷ñwoI]¡p… »~r§ onxsÛW-¼jáU {öéÙ§gŸ=×ï¹~Ïõ™×,öe±/‹}ù~ÜûqïÇ•»¼Üåå.7÷7»êåïWþ~åïá’ÃWÕƒ¿Ó—N^:yéd¡>½À@–Ìo:¿éü¦‘F›ßÚüÖæ·fo¼Ñü¶æ·5¿-Òè‚“œ¼à䜨üTë§Z?ÕŠ4ZtuÑÕEW»~r]v Ø5àÉûž¼ïÉûê-®·¸Þâéu¦×™^'Òú…«®V¸Ú»'¿{ò»'×ÿªþWõ¿ý>-ÏhyFË3ÇçFÑ5E×]óÏ>%þϲd~íùµç×f³ƒÙ™GÃ'ÝfïkT­QµFÕ `P0(˜ytAÅTÌ •ù©ÉOM~ji419191Y¤—¼W÷½ºïÕ}¬òc•«üËÇ¿|üËÇ_ÿ”/Nùâ”/F¶Ùjd«¦åš–kZÎuIÍ}5÷ÕÜ—$ÿSž}çì;gß9)©)©)©kׯ]¿výìGf?2û‘׿yý›×¿ gÜf~/7|¹áË V\XqagWÍþ§+Ï]yîÊsG {™ dɦ.›ºlêi´Jß*}«ôÍÞøªò¿+ÿ»ò¿#þú¯/üúBNÌÖOZ?iý¤H£ŸȱnÉ÷K¾_ò}³×›½ÞìõŽ«:®ê¸êàÑoLJLJLJ§{;ÝÛéÞ“fLš1éü¤ó“ÎOýþ]q_Å}÷UÑEE]Tkk­­µ¶î¯ê¸ãfŒ ×É7<ßð|Ã3ÿìªZ«j­ªuͳ×<{M¶=kùàïôõ_¯ÿzý×Î2½À@–„3í"[TlQ±EÙ»Åâ_ÿªøWÿlޤí3·ÏÜ>3Ò¨[@GŸ“vLÚ1é‘6´y¤MÓø¦ñMã¿éúM×oºü§*÷­Ü·r߉oN|sâ›/ ~að ƒó?”ÿ¡ü ‡°ªC~òë_#­ónÝwë¾[w鈥#–ŽÈúüSàŸYrðÀµPãB 5ÎÞ-jT¨Q¡FÿlޤƒG;‰k×$š%æÞ4÷¦¹75ì×°_Ã~æ ›6lZZõ´êiÕ#­_¦S™Ne:=7û¹ÙÏÍþzÄ×#¾qÙ—ÝqÙBß#£í}mïk{_ÃÛÞÖðOo"ýò/_ðòYŸœ˜”˜”ñœnŸ±}ÆöνÀÀ1&ÏŒ<3òDŒLþ¼óÏ;ÿ¼3'ì箞»zîêi´àu¯+x³y¬{nós›ŸÛÜüÁæ6pÝÒuK×-´f|¹ørñåÏ÷x¾Çó-HX° áîw7¸»Aì’Ø%±KD¿GÞ•o¬|cåH£‹YüËâ_²¾•ƒÿÌÎv¾°óçÈ^` Kâââ#Žùm©ëR×¥®‹4š˜œ˜œ˜œ*S°]ÁvÛEÍ93•ùû}$<ðÙŸ=ðÙ㕯üxåpÎhæcÖÆ¬Y{ÛèÛFß6zÑÚEk­í½»÷îÞ»Ýä9'8kèYCÏi4|fsÖÏÑÁ?¯þ)ðÏ€€,9xüûI¿ŸôûIٻŤ"IE’ŠD-’^$½HzN¨ÌÁgþý^á÷ ¿Wpý‹îÝrï–{·¼|åËW¾|e¤u*½VéµJ¯Mî5¹×ä^#;Œì0²C‘ä"ÉE’…¾™¥Ä¤Ä¤Ä¼¶üÀ_K¾_òý’ïÇvKõ+Õ¯T¿H£¿LúeÒ/“²¾•ƒ¿Ó W+\­p5×½ò(¥†•VjØÁÁýááþááS‚S‚S²m‹Ëž\öä²'ƒK‚K‚K2–˜PbB‰ ÁåÁåÁåG·2a´³1Øl<ÀèÁclr¦W7½ºéÕMcªŒ©2¦J¤uÂù¾ÿžôïIÿžTj\©q¥Æ }.­|Zù´òá ±3Þœÿæü7çe×+»^Ù•½•Ì;1ïļ¾WYßÊþø«à«à«|JT/\½pu׽̲¤öÖÚ[ko4>G3111111»¶xðgsÖþ½öïµÏÞ-þ3 W(\¡p¤ÑÃ17šÃgͶ5ÛÖl{ðýßðýÌ£1)1)1)ÿÚø¯ÿÚødë'[?Ù:ßð|Ãó ýŠÄ5‰k×Dš»ÿýKß¿ôýK‡c»[kl­±µF¤Ño”x£ÄYßÊÁßéÿ”øgÀ@–Ôý¢îu¿ˆ4úñË¿üñËÙ»ÅIïLzgÒ;‘Fë¿ZÿÕú¯æ„ÊœúÅ©_œ±2n}lØ{`ï½ÿìùgÏ?{f}ôÔGO}ôÔnÇu;®ÛqjõÏT\XqaÅ…™—/{qÙ‹Ë^<Qúw³¾›õݬH£e,ó`™³¾•ƒ¿ÓOYxÊÂSæ„?X¢‰È’F×4º¦Ñ5q_Å}w€œ†ÏïœÕsVÏY=³¾­0°Y:yé䥓ÐÞ,‰]»¤a÷†ÝvÏ 3/Ãh'Òh ~r¾ onxsÛoÝóÖ=oÝ“y´ÖÖZ[kmýf]Õ;ªÞQõŽÌË·ÏÜ>sûÌHïú¬˜Ú~jû©í#ž{¹'œ{BÖß¡‡;û@öYR|Bñ Å'\zÛ¥·]z[¤užXùÄÊ'Vf=Jé½»÷îÞ»#^Öæ²6—µ)9¬ä°’ÃrBejªY¨f¡H£+¯XyÅÊ+\?9߇¿~øë‡¿¦UO«žv€gµ>|åÃW>|e±õÅÖ[¯VYÑú·Ö¿µþ-Òè‹ÿzñ_/þ+»þ`bë¹[ÏÝzîØÿŽýïØÿFZç¢ñ¿h|Ö·õS“ŸšüÔäŸ}Jü3y”Ⱥ?vø±Ã‚ Á„Œ†7m>hø áƒþÙë¿rÜ+ǽrÜ´Ó L+iŽÓ:Në8-Œˆr àZûjí«µ/ÿCùÊÿЮ»ìqt^ÓyMç5 f³‚Y¹ùÊéV¥[•nU¾Î†ü0䇣µ‡‘n9~|çã;ßùœôsÒÏIOŸ4>i¼:gÅy[ÎÛrÞ–Ò=J÷(ÝcãÀ7Ì8úú'¯òú'㋎/:¾hV¶’^>½|zùN¯uz­Ók;[ílµ³Uæuê|[çÛ:ßÖ=©îIuOJ ’‚¬}Dz§‡Ÿ µ¾ªõU­¯<+È^` 4ÝÒtKÓ-}xч}øÉÍŸÜüÉÍ™×éV¦[™neîL¼3ñοІÑïýóïŸÿüàœàœàœÌë4ëÓ¬O³>M 6)ؤ`ΉRò¾‘÷¼oÔm[·mݶ3ƒ™ÁÌ¿Œ~ÿÒ÷/}ÿÒ/_þòå/_ææ+çÕM¯nzuÓÁ× †K‚„…5ÖXXãíôWy¾ÊóÕÍ×Ü|ÍÍ×Cƒ¡ÁÐ#¹kov}³ë›]£¤ÎAAÌÚ˜µ1ko?íöÓn?­OÐ'èó—Ñ0¸½¡Ù Ính¶=q{âö¿ýGÉE’‹$¹ýÕÛ_½ýÕi­¦µšÖ*Òšç{<ßãù²þ§$;Çî»sløNªÕƒ¿Ì ¯ÿAýêçë<_çùÚ¿ @öÙfȆ!†l¨T ª`tÏõ{®ßs}øýU?_õóU?·ÿ³ýŸíÿ¬»°îº KL(1¡Ä„ßZüÖâ·s[Îm9·åèz£ë®÷e/ |Y Rô›˜œ˜œ˜<ä×!¿ù5çÌýÍ(|’hæ8¼¥ð¾¸ðųƒ³ƒ³]>9ΚõkÖ¯Y¿­ü¶òÛÊgÝöݶï¶}7å»)ßMùî(ì\× kÐ5új>Myj÷©Ý§vŸ=hö Ù¹g@ø<àýïý ·ƒ^PdA‘EÂÛ¿7ü¸áÇ Ÿ¼»ìÉeO.{ò“öŸ´ÿ¤ý+_iüJãí7o¿yûÍ‘¶ÞéÞN÷vº7|Ïfý“daž…yæ‰tóðsN?çôsNÏ™ŸZÀ±N d›2Êt*ÓiB­ µ&ÔjѼEóÍ#­9½Îô:ÓëL¦Óÿ:0)˜L :ƒÎßVáj…«®6¶åØ–c[Vé[¥o•¾93DiQ¥E•Uúýƒþ o{Yâe‰— rœŸOþùäŸOV‡#)vIì’Ø%#¿ùõȯ«ª>¨ú!Ý4¾Nrä:ÉÁõÁõÁþ?1 ¿¹Œ ÆÊ+\vñe_vqßwú¾Ó÷ÄÁ‰ƒgýý¸ÿæÏ‘>*·¨Ü¢r¿ _ÐÏi²»·R {5nиAãS[Lm1µÅáxýRýJõ+ÕoÂ×¾žðuó¾Íû6£ÓÓo?ýöÓo¯¸°âŠ 3Îo:¿éü¦®™œé·Ë»ü·ËÕáÈ+{vٳ˞½hÉ¢%‹–¾­„7îñxÇ{<þÚ¬×f½6«Øúb닭ϮϓHïîS?<õÃS?¬ò`•«<èÏ>€ÃA õ_­ÿjýWW¯Y½fõšpIž‰y&æ™øÏ^-|žî=»îÙuÏ®y5æÕ˜W£i|Óø¦ñÇJ|ÒjO«=­öd^>û‘ÙÌ~ÄÕ’3…7$W‡£¥|ÙòeË—ÝZvkÙ­eÃ%á=²òšaèÎËÿ¬ÈgE>+2°÷ÀÞ{‡Ë³íó$!HætÓuÎnÓݲ@Ë- d¼…5@öŠIOOOOO?2›™gfž™y./|yáË g\>qÛÄm·5ÚÛho£½N D«ßkþ^ó÷š§¬=eí)k¯(sE™+ÊüTó§š?ÕÜÔeS—M]’c’c’cÂgú–|½äë%_¯ôa¥+}xI÷Kº_Ò½ÙfCš 99æä˜“cŽÅ9s«W'®N¬Ôj`ôï?üúïÃg‚ºN2cfIªs(½|zùôòE·ÝVt[ÇO;~ÚñÓ•W¬¼bå{m쵱צ^›zmêµý£ímÿ¨èšÿýªò@•ª<Ðä„&'49἟Îû鼟j•¯U¾VùÃw¼3fϘ=cvæÛà‡1ó·Á·Á·ÁáÞàhÉ y¨gGHÑEE]”$Í;2Q¿eøZšoi¾¥ùþÓû?½ÿÓ;èôzgþÙcÅII'%”tþÏçÿ|þÏáó3޾sË;·¼sË˯X~ÅòÜýÙóÏžöü˵±&qMâïuퟧ›ñs`}°>X¿ÿ(N|8ñáàòàòàòÍÁÿ~Íê9«ç¬žûÿO‡?ê~§ý;íßiŸyù…Ÿ]øÙ…ŸU¸¢Â®ý‡8ÊrOÒq^ÇyçM¦Óÿ²üƒìü`§+!u]êºÔu—”?£üåÏÖë‚uê£Î9ÿ“d÷»ïÜ}ç|ðÇDúH¼9ñæÄ›ÀÀáãÀGHóû›ßßüþ*Vy°Êƒ—‡Ü+ß¿òý+ßçæúü:ð׿̸¤ÜåÎ(w†§¥ªó±bò£“ühJjJjJjÆåU¯­zmÕkÃ[Ù‹~€ÃM p„„7°}螇îyèžÌ£oßóö=oß“›C¸ÉOO~zòÓ—4)Ф@“®u>V„ïâÌË{ÞÒó–ž·$Æ&Æ&úï0Àa§ñ8¢Z–nYºeé3.9ã’3.ɸ|êÍSožzóÏé?§ÿœž{ª±n麥떾¶üµå¯-\jp©Á¥Âå¥{”îQºÇµ}®ísm3&Õ9çK.’\$¹Hø.θ¼zÕêU«W½üâË/¾übŽ Ï8²R‚” ¥oÞ¾yûæmU¨U¡V…ÂÅ{®ßsýžë‡>zøè§ŸJ|*17ÄE5×h\£qÆ%ñåâËÅ—{å—W~yå—òç”?§ü9b3uÎùF 1xÄàð]œqùSŸ˜úÄÔIJ‰eË&I‡ŸÀGA“=Mö4Ùsåü+ç_9?ãò£GŒ1:÷Ô¡ø„âŠO8÷„sO8÷„®•ºVêZiV¯Y½fõjöz³×›½.’Tçœ/©BR…¤ Ãßþîðw3.¿úý«ß¿úý&›lRP…€#É `€£¦ßËý^î÷ò{Á{Á{û—lŸ¹}æö™w—¼»äÝ%sC~lücã'nHܸფ’>Ø’%µMj›ÔÖ¢Î9ß³ùŸÍÿlþð. gW÷}§ï;}ßIlØ:±µ8’Ì8jJõ+Õ¯T¿ŽxtÄ£—¿Ôá¥/uHLLLLLÌ u©ó±hs—Í]6wyÕÈ«F^•qùSç?uþSçW[ylå±jy`€£¬í}ÿû.Ù5`×€]îø×ÿºã_ê9ÓÓõŸ®ÿtý?Fü1âá’뮾îê뮾æÙkž½æYÑ/p´€r„§Oyú”§O ¿¯^µzÕêUç5×t^ÓÜ3Ž©ëR×¥®›_{~íùµÃ%M÷4ÝÓtÏSç=uÞSçyÏG—gä®+p]ë’®Kº.麿 $Iy„ƒ„OùVnZ¹iå2¿Cð.8‚̈`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆyrÂN¤™þeú—3¾žñõŒ¯ÿUc‚˜ æ(ì¢íFëvUØvm×v}RÙ®íÚ®íÚ®#µ]Ûµ]Ûµ]Gj»¶k»¶k»þ%²Ý¶Ý˜˜˜˜uŽÞíf9"nqY‹ËZ\E‚"AeàŸq h€(qDàF{ím´Wч#z è-­¶´ÚÒjÂÄ 'L<,pgGêHmב:RGj»ŽÔ‘:RÛu¤ŽÔ‘ª°#u¤*ìH© ;RGj»Ž4ª·{žìZʲÊwT¾£òGè ÒÓÓÓÓÓŽqž %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB ÛÛcÞóö˜ûÛÞßöþ¶á÷kv¬Ù±f‡ÊptŤ§§§§§+ºÄÄÄÄÄÄŒK&n›¸mâ¶F{ím´W}8Z̈`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!þÛf˜=`ö€»gìž±;ü^M Ĥ§§§§§çælé¾¥û–î Ö/X¿`ýÔVS[Mm5þ·ñ¿ÿmëc[ÛúXV^¹XŸb}ŠõiU¢U‰V%.ñø‹Ç×)[§l²ÅT|‹йè¼Tžì•ëà6ØXàýµï¯}m¿QýFõµ}ÀöÛèßÂz¨ÐC…êÕ±WÇ^[—o]¾uùÒ;Kï,½Óåè\t^ÎYíp¹ \PnvÏÙ=g÷|ì®Çîz쮹 sæ&ä´Ý¬ŸR?¥~JŸçû<ßçùýôoÐ?X¬ Ö¹@ Wйè¼t^d“h €“ƒä yæ[3ßšùVû Û_ØþÂ-õ¶ÔÛRïï¾Ìi{â+åÖ¸xÉ›ã‡V—0ãøeJÞ§ _œ7%.ÈsKì«1ûöþ'í¦ô¸mS÷$ì ~}èŸö<°¼]Jã? ÎØ²ù•Ô®+ò¦þ¸«ËßÝnñyÅçŸ7fÚ˜ic¦5º¶Ñµ® ŠE‚".Vй¨s)÷qþa‹×ŒZy\…ãŽßQf@ñÚyŸ*|qŽqAž[âºÆìÛûŸ}CÓã¶MÝ9j_ðëC[¾ÝóÀòvkþü£àŒ-‹ÒR»®È»®¹ÎÐyEv\ËRË}\ðÙSﯛÿÕÒñŽË;%amñÚ±Ïä/Ð1懸7㺦WÙ×vßдûv¥îµ§YJù-ßîºicêš?wܳòéEi~°iǺæ:/ŽŒ¨ €×T\SqMÅÛÞ½íÝÛÞ{þÜóçž(?Õ¸]Éž…_ëðÒ©mKnømÉþ…‹”®~|L¾³k¯6.ù#}÷“³joî¹-yôí+ßܼmƸÍý·Ýx(?[zýéõ§¼jäU#¯ª°ªÂª «\²[;—š ¿Öá¥Ëo,Y¸á·Õ.Rºz±ÍÙÙ¹l-¹ûÉYµ—ÌØ–<úö‰¯mÞ6cÜ¢Ù: 7u^G:ªfƒbsyùO>¥XõÆyÇ%¼SlsvíÕžv)m¶–ÜñóO[—ÌØzÖÌo&¾¶£ãÊŽ‹fë¼È^Ç|œ^#½Fz{¿ØûÅÞ=;ôìгÃÁ×Oø"視ÁÏŒ¨?õ¤´+[U[ìÅ Ypâþ[‰)Á/Aò{ã×\·õŽû:ϽxulJ“=÷Ý{ðê?ºÿèþ£ïxüŽÇïxýsð¦Ak?×yñw“ðâ‹W,^Ñä¬&g59ëàk¾_ò¼º•7]^ú´„cæ¢ÿ¼òÆ)íZoþlþòÿã/뿘óÅœ/æÔ8­Æi5Ns)À±Ü¹ L«<¸éò:ŸKË‚ RÚµÞÜ#Vç ×Éîl80­ðÕÛÖùôX9ºm}—¿¹à‚Ÿ[ ŸÕ#VçÅ¡‹=¶vwúè飧>øÛøîæ§-ýÛ¦ôkfÔ{ãØŠ~Cá>‡ûK¤5Ã:„5q)À±Ö¹\siéß6¥Oº¢ÞÇVôû?KOÆ…û‹ÎÈiW‰³ÏßtÍ¥Õ~xú†IW[Ño(ÜçpÿÃcÑyq(Ž™À“â&ÅMŠ»>þúøëã#­3¡îùŸTy´ñ´R£ã§DÓIšqᦩÍZÌŸ~ÑODZçÔ7RßH½tߥû.Ýç²€œÝ¹ :³Ê£§ÕìmË¢‡S›µ˜ßý p´;¯ŠÝ5yЙ…ÆWZ^³o4ûöV?V^ôðª>Ï_Òý‘3€Ã¿Vˆô6Îa\ñ˜UK ¶lSë”è‹~Cáq…ÇoæuÂúøËÈ©K¾1«–;¾Ö)ÑýþOçR³oü”ðÃãÕ¹G²óŠ‘7O¾§Çôn:v|ôE¿¡ð¸Âc WçÅÞ 9yðÁïÛ~Z—ø+ò¿7­æÅÅÏè[¸MÞ?âârà ÛöΞã÷í»pÑÔ-K^1,õÃ]Wf^Ç}Þ 'u.åò¿7­æÐsÏè[¸M»sKç²ó¹}û.\ÔõË¥¯¶6EçÎÎë¸ÛJµ,Ÿpjƒûª =7nHþ’îÎ 5Ù×m×æÏ­œýÌw]¿üsä¦Ö¦è¼åÐÀ[Úmi·¥ÝÁ£ßÏ 4ûwµ[sOô 7<ö°™× ëÖÐ%G¯s)Ÿÿ½Ï ?¿Ú­¹'úýŸÎ¥ÀÝqq᱇uй‡£ó £ßJ;»÷~~î‰~Cáñ†ÇÖAçE(ÇÀé5Òk¤×¸ªìUe¯*›y4¼r8ë÷ø^yúÇžš;O[xìa"Ý:¬aXO:ÙÎ%_˜Uá¬ßã{wgîí\Ž»3öÔ°‘n ­sþYçÞ9œõ»$ßçÇÝ™;«{X‡H7…Öy庫"§íЋ½_ìýbïÅ//~yñË™GçϺü¼šå¶Y¿‘„uk’y4¬aXOµ€#Û¹ŒiXó¢Ü6ë7rçRà°&: »:¯*w>ÒxLÃÜ6ë7’°aMŽÅÎëã÷?~ÿã÷û¿Õÿ­þo%7OnžÜÜ™ýgrÐ3€×T\SqMÅZIµ’j%eP÷üOª<ÚxZ©ÑñSœ¶Ìf\¸©Cj³ó§_ôÙG&.L\˜XaU…UV©ÎÎeЙUm<­f_Ë;—E§6k1¿û7:àŸv^»kò 3 ¯´¼f_µÊl{«+/zxUŸç/éþMÎï¼Ò®J»*íªbÓ‹M/6=óèƒ/<øÂƒ/tÓyLç1E>.òq‘ßC‘3fo ¶[o{÷¶wo{7óàÝÍO/Zú7ÑïÁ…õ k•ytm·[ƒ­j‡§s¹æÒÒ¿‰~ÿ¯Î¥fßø)a­t.Àßí¼Jœ}þ¦k.ý\XŸ°V9¿óšrÔ¦ÜiôÉNOvz²ÓɳOž}òl3ƒ]Ž€gþwægþwîùsÏŸ{~æÑžÏT¿ l§êPDªUX۰Ϊ‡§s¹¹¬ÎåP;—×Jç¼ó*uÛ¥ŸÝ\V•E¤Zå´Î«áK _jøR8Ó÷àk ƒÝÑ€Ëå‚rí/laû 3¾_ò¼º•ç/—'ö;§êP„µ ë–ytËå‚rjÙ×¹ L«<8é|mt.‡Ú¹äkû]X7 p(×Éîl80-vpÞMùÚ(Õ¡kÖ-'w^á{^ÛóÚž×þÜàç?7gÃÙ?º›ŸÝsvÏÙ=·ÔÛRoK½ŒËO{+þ¶üÓš/]8á'éï ëÖ0ãò°ÎaÍU ²£s)ß4ÿ´¦Ãë Ô¹ü“Î¥ÎÀ„Âê\€H×q÷–ê^¾iá»+׬3P•þ®°na s~ç% Î.1ééééééGkóÇ^{qìÜ„¹ s2.ÿ伋>©Ú²Þ{ÅGúÕ›óŸ™wå–ÛË\ôÙ'}ÿAÆåõSê§ÔO™š65mjš*@Ö:—瞨ڲÞ{§7йüóÎeÙìíe.úìîGu. ó:Pçuj{G>÷DSOÚyzUúgv®\]`Ùì•;ßv÷£Çbçº#Úh?¢}÷ÊO…áqç1ÇtF˹猵À l,°±@æ·qÂyWÅ ®W®x§B_{CfEXðž—‡5ë¯JðO;—BWÅ ®Wîô¯u.Yí\NÿºÐ×a=u. óʸ<.ÿñƒ ]U ÿI£O×yeIXðžÇbçefðßuÔà÷×¾¿öýµ™—?3¢þÔ“Ò‚!Á™ÁÉÞY2$838y=¹þÀ¡u.Ýæœ” îÓ¹d¹s¹/8y=u. óÊàÄó®ÙÐmNP6hܧJYR6hÜ·¿žÇxç% >G#N R‚”~£úê7*óàE—œ0¯È¸œ\²aÓ~ˆß8#1qܸo¾YyEê5|”“÷6R=÷×?%H R|îÀßï\Î<3'u._nXØ9uׯ ~jW«üÏ.ZPfàe¿Ìxú€¶¿m}ÅÙÝ+,{ùé ÇÞ¿aÅ®»Û§•ÌyËë©s€ÜÜynSõø3ÏÌ »™öôÞn»ËnÞ8õú±5WmöÞƒ/,;ï_ƒ¯¿~É«ÝO½üÕß xú¶·WÿwÔ¹½_ÛÞyeE94LTÏc·óGrž¼¥û–î[ºWUiT¥¿¼™·+Ù³ðk†_°úô¡9´Z ÁØà›s}Üó»´ïf%ع?>OJj×.g|EÒâÎOOZÖuƸÍý·Ý˜qùìøcÇ⃊*>È¿2phKÍ…_›0|ÐG½sI. ¾¹ï§!Ï­.ûŸJ»m^è?úéIÏï®úIo+QèáœÔ¹ttY×ãÍÖ¹@îî¼ Ž:uTͧ éº}ÐGww¹±û𶫇¿¸ø‘»óý~úÆCšXäòºíÏ?¿üÄ›þÓóÓ Fð\0-çÔü§nC utGǕ͎ÖÎË3ƒÂ àë¬_p€ÿ0Ñá¥SÛ–,œC딌 ¾éûÞâîëoÌý+"Õ6Ò¹"w.—ߘ3:—gó¿yë† £ßrg”\œoÄ“­ïjX¡éôÄç'‘úÁÒ§N­R£×•7tâk…«h·;\ó‚Õwåûþ¢”Ô ÷¾˜“:—×Vç¹­ó*6§Ñ™—ßxt÷-ýµô•éý×u|cÁSïí~ŸŠ™[?ñ³)—œV®ï… *¥vï>¼æI]n¯ùÄì"åë,8¯_÷&Oœ?fúôÅA·˜‹brZÍ#Õ6š:/3ƒB9µÕÔVS[e^~Vb‰>…ïÍ EÙÜe׈=Þ¾gõŒ-÷öÞ½hºuOܵhÕ «—>½áµcñ4Gªm¤sDî\Î(u´;—?{î.›Öâ¹ßyiãµá’J¯•»?ï¯&½T±Zƒß~ÖšÏk¯ªœ·à…çžPkD|þFÝïġ۾ÛùÁ¾|‰kâ÷å)þÔIZZP;'u.®­Îr[çUð¥ŠÏ(ut÷-õ‰ÅmfžøGõ՗7 —”›{ýŒÊuk7æþaë~mû€àøÆåÊUÿÕlK^» Îg½JÜ|Á ×®×Ïwmñ=efä´šGªm´v^¹3 > ðøßÆÿ6þ·ÌËK½vüü¼×æ„¢L¹û—)Éñw¼2kݪvÏ–ú~û¯®ªµíø?+»w¤ÚF:@äÎ¥ØcG»sùbÇ·ï¦~‘T!5nïÎpÉ£§vØ\öâ0ÐMJúä“=¤&\žñ§ê}púÙ7æ¤ÎåÀµÕ¹@në¼ò Š¿¶ØcGwßþH]ÿÀµöïÏGñ?;5ñíú}/ü$\R£Æ!Ÿ|’qýpI±¢ðÞ¹{çî»õ±­mýË…uÚžøJù‡Å]Ó0fzN(JŸ‹=Wð¢ýQs\ÙÍ™ÿ÷X¼ ÃÚ†uθ<<áyñÏ ü_K¹ó‹»$vÈÑî\Ö-ÝTãÏΗœ{Bíñù#E¿M«9ôœª}Ãï—½øó˼‘˜xÑEß|“3:—Ø!1ÓÃ:ë\ wv^ǵ,U°ÜÇ1¯Æ¦Å9º{¸çÍÔ¿·ÉÓ®ð„Äw ¼Tá¼Êyå–Î1%ótÍ{çþÿ³8¸;¸0§U>¬mXçÜÜyEw|Dàí=·÷ÜÞ3óòÆÅKÞ?4çåŒKŠ”/0«Û®ªžpyæÿ=v/åHuŽt^ wŠÜ¹ÔŒÍK©~ÅîÈ×úº«/~·xçö^VºÄû‡~3ç­5Ršíý,ü¾tâ§æëŸó:—×Y繡ó*øì©÷×ŒÍ {X®i»Â÷/¯ºôß«Þ.rÒÏ·>Ôû¹Ì³~3Kùm¯/º†ß‡ó†sfý#Õ9wv^ÑÑ·Pr·änÉÝ2/¯<.aÆñ;|Øn‘êé¼@î¹s©p\Îè\.?«Ñ«‰ †| ¾âüÁ;ïyíä¿⎼ꃳ7~ßto„ør^çrà:ë\ 7t^ù_-_Ḝ¿ÿ–ßÜr}¾ÃÖ¶^19uõw=g=¿þ÷7û>³~Ãô÷ÎÞ4\§TÍæ‰75Ιû©Î:¯èƒhœ:)uRê¤ÌËË 8þ”¼Où°;Ü"Õ9Òy€Ü)rçR¼vNí\~óç´êisÓo|¤Í uÖæ›Öjîù)¸.™ØkïÝÔ¶í OÊ£lçrà:ë\ 7t^y§$¬-^;çïÿª¸õ¡+Ïyº|—§W§ŽÜùØ¿¯Ÿµùã[bîÏ3$ïúr»¯¿æ¹Å.=ûÍK¯?”yÃG^¤:ë¼2:vÃàì¼5åç7ý¡ØŽù†ç­óèØ›zÿ»Ò…ÕÆ^×fá[IIŸ\wfΫó—Áu.ûÄ>“?¾@ÇàöcuÿÓŸÞÛmOÙuùÞž ò¼Ÿpgñw ·®¼¨N‘ZçAð×ÞKçõ˜Ìfúêa\kt­ÑµF7šG*>¢3€÷Þ·÷¾½÷e^žç–ØWcö¹f7u€¬ýF×õXøzåë/ý㣛ö~ídž.êúÕ÷ÏoúCŸ-+÷-¿%ÿï?9xÉéç¶*Ô£Íò&9mîï±Ugàpˆù!î͸®9?Oïðx‹×«U`ð%“çTù½wÜØ[Nzñö/þýïBOkRûªpŸOÞ´G›Ûª±¤´:çf¦_˜~aú‘Üâ €ó<“ç™<Ïd^¾÷?i7¥›|Ø©3dí7ê}CsêoÔ{®ß;,mÊ€g_ñË7gwºíöïn˜ðÃŒW“†I/ôï¸QÿúãÖ e7ùÝ oV›{Áê»ò}QÎŒ~s~€Ã-½Ê¾¶û†+{3%¶y\j¾¦Ež)q]ü°3žuÖöU+¾øöÝ Nÿoýéá:?­zî¼ûª«sn6-fZÌ´˜#¹Å#z èk ¬)°&óòmS÷$ì ‚.Áï.Ãi3™¸mⶉÛÔö7ç ?%ü”Ð-­[Z·´¿þF½sÔ¾ èÜ‘£ö¶Éú|»¶´{à±SV<÷ãëzï ⾊K †v;îš­eß»âºeêœT¡U¡%» ¿¶ò g& ϹÑï_ê :È}WÚ}»RwŽ ‚ DÎê½UøÄßų»]}Ñùá’0.~\ü¸øCù©v©íRÛ¥6|©áK _ Z­ƒÖGfohiü¥ñ—f¾oø¯ýñÓž‚ H ʸ€ŸýuÎô àF{ím´W} tâ„'œ8!¸)¸)¸é¯¿QoùvÏAìÉËšm?úsïU¨þÃâ 7nyz÷ã'´->*ßöQ“N=edƒÕV>)1ñ¢BßÔÎÉó}Ô¹lùvÏÁ—AS ä¾ÎkO³”ò[¾ Þ ‚`ÏÑÚ·½·ì–Úìû{{­¸j8}âúk7Ý۾إg¿yéõ‡ò §6¸ïŒ¡ç¬œýÌÒ®_¥=½§Ûž²AóàžœTÿýuþ:þÚ{é¼2JnžÜ<¹ùˆö#Úh>Í7ˆâƒÿ#ú}ð…_xð…Îc:é<¦ÈÇE>.òñ‘ßó#z è"CŠ )2$óòåíRÿQÐet¸©3d­sYógNúú†k¯úã¼ on鸻P½N?»àÆ“^<¹Zƒæ}ï½wÙSá:ÇVô›3ë ÉÎk×MS×üyt÷-Ï v‰Ÿ’qÉΊ«>ÿî»C…?f¬[·âðûãW—ýóÔb9­þ9¡Î9Súö«ÿ[ýß:yöɳOž½?ú=¨0ôý¹ÁÏ ~nÐóÚž×ö¼öhE¿¡#ê_¨¡þ™—ÏØ²ù•Tš>ìÔ²Ö¹,JË¿QvÊü)å¿›µêö±1)Á´àÌ—n~(8e\ÅÔ«Î_ðݱúæÌ:G¾óÚqÏʧ¥å´½Mê;¯ð§1;Z¯ºré³_sOÙ”á[*l >îýÚ¿Â%{Ÿ\¶ê„œvD9³ÎGKt„¾Ñ[@穟§~žúÅúëS¬ÏÖǶ>¶õ±pùм©?îê²orúžô‡â.‰i3Ý¥–½öMNŸ•~þм©«wuɸ<<ê‡Ö¹¬k¾«Ë¾ÉiUÓŠ»$vÈÑë\Æ=óɼ-yƒöAlIŽ?/Ïwu*Ü·øÞþÝW~Ô ƒß¿dãßxµN÷¶ž\úŜѹ¤uK?EÞußë\ ·v^~°iǺæéƒÒbӪƼ›;ähíái_ô:}Ô žtç¢ôZ{.ý󵟂!Á=A±OÏmØj{¡¯+XkEÞ–;uï÷Û~N*º³Ášê?œ»¥ë—?h•6i×=;v„Oÿ-~Ûy½¯.Vú?—é#žþ›~SZlZ·?»oÚ±îûÜÜyýåöγŸœýäì ü:¨¿ÜÞùÚ"×¹6¿rÚûëÈo²U‰V%Z•Œ Fýeù¦ÿ¨»ç­~+ä+áƒ/{…µ ‚`õÎ…úÀßé\¶öÙóÖ ¿•8ŠË-Ö]ºë£ &AR…Ô¸½;Ãå=û ß·¶ãß}µN÷¶JçˆÃamƒ ¸Zç¹»óÚÛ=õ­­}òÖ(Òæèµù»–êT¾fúâ=—ýÙ=v`þ´-ÓzìŠÝùÁÖ ¾œ5þ‹­Á—ÁøpÅ_÷ÿÀÔ`NðA05˜ÇÇ—}êÔoË­ºþšßùþÞ^®J«QcH#òßýµ ‚ÿ·÷Ê Wt‡¾ÅùM^<þâñϼ|NÒomìÃîpˆTÛHçˆÜ¹,Ýt´;—ÕE74Þ…ÝS¤Úê\ ·u^;n_5b馜°‡5j òÉ'aô[òâ‹ÏºîéüœxÇ)×Ä_àâÂMc^É{J¾1Ç}SzP…7ãß©qN£WË]sC¯VJ} ûˆZ+v ¬pûíá+䜚Gªm´v^Ñw{çCqf×)[§l²™—¾}å››·µ*ÅrtÉ’’ÚµûŸçi%&Ž÷Í79ÿ4‡µ Æê¹"w._Û¼­uÐô‰£×¹üœüþYu_ ‚à“àÌhªyX[ è¼¶ž5󛉯™]'húDNØÏ0Ä]<µ[·‹. çøîuŸþËjWÁâÅݺ]4-±Fýç.œV#È)³~3×6x)š;¯Ü3Ó7’˜ôôôôôô#ºÍ” %H)÷B¹ʽ°}ÀöÛd\;æê[ëÖ+Ü2؀,ÛöÁž‚ûÒÊ·ÿïËóçe\^è¡Bzh]§uÖu ‚„ A­àït.\Y·^á–:ë\²§sÙ9b_Zùö-ßÓ¹€Îëœ1zàc\÷lþb:+UÖí»g×Ö#–vèѧå{Ñ×yý%ô=„9¾¡¿„¾ÇÔ߃;ÿ©"!HzuìձמMõÉä õ’Ûyf—HõÜ_ÿþaçòÍ7:—ìì\\O äæÎkÛ;ßÿq,܇õX©žÇnç•;oï|(ŽÚߪ·.ߺ|ëò™—ß×yîÅ«cƒnÁ7ÁÏÞŠYÒ-ø&øy=¹þÀ¡u.CÎZt žÑ¹d¹sy&øy=u. óÊà—ÏÞ>aÈYÁúàÍàUÊ’õÁ›Á3ûëyŒw^BßCqÔàÒ;Kï,½³~Jý”ú)—§4ÙSqß½óÖmyaûÙÞYÖ0¬gÆåaÍÃú«üÓÎeû»ûî·nÙÙ:—¬v.ËÎÞ~vXO è¼2.ß·ë{·¿»s×êËt^YÖ0¬ç±Øy }ÿ®£ü´ª>Ï÷y¾Ïó™—wé4çíU]ƒOƒ_ƒoË¿íÓà× e ¹æÀßï\}ºªkði0Oçò:—yAÊþê\@ç¡ XwÇØåƒ> ¶Ë‚yªô·m –óö×ð˜ê¼„¾Y“žžžžž~Ô¶_.(”«ôy¥Ï+}¾¥Þ–z[êe|¿äyu+nº¼ôi ã¼CÝç•7®Hi×zógó—ÿå/è‹Ï+>¯ø¼›þØôǦÁº`]°N­ ;:—i•7]^çSËßë\\Ò®õæ±:àÿê¼NžpgÃi…®Ü¶Î§Juè¶õ]þæ‚ ~n1|VØœßy…¡ïˆö#Úh(qo( };é<¦ó˜Ü÷fv”g‡—Ô˜ic¦™–y0Œ0wmÜ·7­šSu(ÂZeŽ~Cûëì? @6w.=b—ß»kãîwt.‡Ú¹ì~'­ZæèWç:¯HWa¦Ý»§Ôîw”êP„µÊýæ´ÎËLßÃ!6'ìD£«]ÝèêúÓëO¯?=óhÿû–|º~ Su("Õ*¬mXgU€ÃÓ¹¼²^çr¨Ëk¥sÞym9é¼WÖ«Ò¡ˆT«œÖyͺ}Öí³núf¯£} è ÖT\SqMÅZIµ’j%eP÷üOª<ÚxZ©ÑñSœ¶Ìf\¸©Cj³ó§_ôÙG&.L\˜XaU…UV©ÎÎeЙUm<­f_Ë;—E§6k1¿û7:àŸv^»kò 3 ¯´¼f_µÊl{«+/zxUŸç/éþMÎï¼Ò®J»*íªbÓ‹M/v€Èßíÿ™Øœ³+á¥ÖtÿÑýGg £Í ewîݽÕiË(¬I¤è7¬§ÿ€GªséþÍOl(ûÛËÿÛ¹ü¶c÷ÖHѯÎ8ôÎ+Œ6÷,I~ÿ·j•QX“HÑoÎì¼bß}7öݱ£ÇŽ»ÿ\›é›u9hp(½FzôM›5mÖ´Ùâ—¿¼øåŒ£ù/Œ+³jÅ5­¯¨Ó¦p›¼ÄÅåæ“·í=ÇïÛwÚÛï¸à]ÓömI¯˜q´Æ­5n­qëçS>Ÿòù”˜Å1‹c»ÜàHu.ùzĬZqÍ;ß×iS¸M»s{ç²ó¹}ûN{»MÕïìš¶{ ÎÈŽÎ+fDÞ<ùzTÍ÷ïï|7$ÉwçæZíë¶kóÎç¾ßýÈÀ6UÓ;ïÙ»{ Î+7‹Íi;^vï®wý»¸/ys^¸hê–¥ÿÑooÏ´•¹ó´…ÇÖ!sô kèm G£sÙ=0½â…‹º~¹ôá?úý9<÷v.O[Ö!sô«s²Òy…1çÊÙÏ|×õË´ê»›þ9—5äìÎeЙUm<­fßhë\=œÚ¬Åüîßè\€£ÝyU|ì®ÉƒÎ,4¾Òòš}£éØ··ú±ò¢‡Wõyþ’îß輈$öXÙÑð2ô—¡0"}üº…SÖ~´»È¾.iÝŽÝîx,~ÚxÀ±Ó¹tÿæ‡'¿näàµí.²gè±Ý¹ìšÖ-<–ƒG¿:àHv^aDúk¡ÚŽœööÞ¹{†»Çîx,~u^„Ž™Àü>ï½_ò¼º•7]^ú´„qÇÊÑ}^y㊔v­76ù½_Ó}Û Z:—i•7]^çÓc©sYpAJ»Ö›{Äê\€c¡ó:y ¦~¸rÛ:Ÿ+G·­ïò7\ðs‹á³zÄê¼8t±ÇâN‡—ï—üxÉ—Ô¸µÆ­5n´f£ž5õ£B‹ûÍ»rK‡íe‚÷‚µÁï9è`Þ Ö¿‡ûîçÁ£ßðx÷»·1DIçÒ#vù½gMíØwq¿yW.›½½Lð^ðyë\>~÷-ÜσG¿: §u^aŒºü‚~ë:öݹrue³ƒäàÛàót0ÉÁ·Áçá¾…ûyðèWçE$Çä àŒÒk¤×H¯ñbï{¿Ø»g‡žzv8øú _ä]7ø™õ§ž”ve« c‹½4 N ŠÑžü$¿7~Íu[︯óÜ‹WǦ4ÙSqßÿñWóýG÷ÝôßñøÇ,ŽY³Øå ÑÛ¹º*nð3#ºÍ9)íÊVMï(öbÐ,hpÄ;—ÙAò{ã?që÷urÖêØ”&ÛßÕ¹ÑÒyÅå?~p¡«N<ïš ÝæYV'¥éA|pFÐàˆîtj°4˜|ú‚„Ï_üå³·OrÖ¾]Ü»ý]YqÌÀ­©¸¦âšŠ·½{Û»·½;÷ü¹çÏ=ÿP~ªq»’= ¿Öá¥SÛ–,ÜðÛ’ý )]ýø˜|f×^m\òGúî'gÕÞÜs[òèÛW¾¹yÛŒq›ûo»ñP~¶þôúÓëOyÕÈ«F^UaU…UV¹d ·v.5~­ÃK—ßX²pÃo«7.\¤tõb›³³sÙZr÷“³j/™±-yôí_Û¼mƸE³u.@nê¼ Ž:uTÍÅæ4:óò ž|J±êóŽKx§ØæìÚ«=íRÚl-¹ã矶.™±õ¬™ßL|mGÇ•ÍÖy‘½¢*Þ/9H’g¾5ó­™oµ¿°ý…í/ÜRoK½-õþîËœ¶'¾Rþa‹—¼9~håq 3ŽßQfÀñ§ä}ªðÅySâ‚<·Ä¾³oïÒnJÛ6uO¾àׇþøiÏËÛ¥4þ£àŒ-›_Iíº"o껺üÝíŸW|^ñyc¦™6fZ£k]ÛèÚ HPäÿ¥?pÌt.å>Î?¬qñš±ñC+«pÜñ;Ê (^;ïS…/.Ð1.ÈsK\ט}{ÿ³ohzܶ©;Gí ~}hË·{XÞnÍŸœ±eQZj×y×5×¹:¯ÈŽkYª`¹ >{êý5có¿Z:¾Âqy§$¬-^;ö™üñ:Æü÷f\×ô*ûÚîšv߮ԣö4K)¿åÛ]7mL]óçŽ{V>½(íÏ6íX×\çÅ‘pFå‚rA¹Ù=g÷œÝ󱻻뱻æ&ÌM˜›Óv³~Jý”ú)}žïó|ŸçôoпAÿ`]°.Xç€\Aç óÒy‘M¢=Îdc6xíûkß_ÛoT¿QýFm°}ÀöGr =Tè¡BõêØ«c¯Ž­Ë·.ߺ|é¥w–Þért.:/g‡¬Èupf[ºoé¾¥û‚õ Ö/X?µÕÔVS[ÿmüoãÛúØÖǶ>–•W.Ö§XŸb}Z•hU¢U‰‹Ç_<þâñuÊÖ)[§lñAÅäât.:/•'{ €ÿ¶Ùf˜=`ï}{ïÛ{_žgò<“ç™5x¨ÁC*è\rÄÄÄÄÄÄŒK&n›¸mâ¶F{ím´W}8ZÀ𷠀əb• :€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢D%€¿ëÅÁ/~qðœÉs&Ï™|Ö%g]rÖ%eÛ”mS¶ÊptŤ§§§§§+À±Î- ¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ JüÔHÆQ½¦`%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/onErrorResumeNext.png000066400000000000000000001454151431412030200270510ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝyØÍuþøqSÓ65‘le/•} ‘BeiQ#ÚK¥I!í%Ú5E«J2-ŠFZ(isv¤ÌDiI¢­B ÃýûÃü®Ë\w·¯"Žãñ8×õ¾ºê¾sÎû¼>Ÿ›ÏÓ9§D!y¡„-È0@ž€ò„ '`€?÷ù¹ÏŒ*3ªÌ¨rÏž÷ìyÏžmNmsj›SKm&§ÝzÚ­§Ý:ò¥‘/|iî—s¿œûeá¸Âq…ãì<°-€!‡Ì®:»êìªý_ìÿbÿKm%­ol}cëÇÍ7Üüeý—õ_ÖßólI+§¬œ²rʤ–“ZNjÙñ‹Ž_tübk/xéÀKÎ8{ÆÙ3Îö¼Û ¶š•Wv^Ùù¹iÏM{nÚ>ïïóþ>ï—ÊI?uñS?5ïîywϻ۳ü¾ôÅ / œ0pÂÀ ¥rØcmkûXÛåÝ—w_Þݳä&¶¨Õ]VwYÝeÔ£žõĦDˆ£ß¯ñ~¥±Ï8´zÍÕ#ç·ïÒh‡—çþ¥nÓ(iÚy—æå²=:¿ÒüÆ‚I'žÝlïçJw[ãÛï=ýˆ&õÚ_pzƒw÷?eÿKË·/sùoûuOrÊS†Ì{iÞKó^òl›âËñ_Žÿr|¯á½†÷þÛÎHû¼SþÅÒmωOYýÃ;K\ñnÝcÏÿÛŒƒ¿›t샻§ÃFDÍ/Lž±KóF¯ž1tÒ!åF}~ËÍ^¸¥ôEï×nâÅGõª2bSÎÃC«­:´êŠ[VܲâÏ&;`ØB&OšôÞ€§ãï(,œ>½}û͵®­òÖIí>š:äÑÙ‡vè=õÜÑíþkÏÕæO˜?a~aAaAagغ`ø-+µ¬Ô²RÝ+v¯Ø½âÆ$„WX¯òuS:t÷¡ܼ¡wã×¥Kº isÒ½½Ž8¬Þq?¢Q‰Èù(ÖŒ+g\9ãÊ?«ÜøyÏjµ¦}ÙíÕÁG¼²ysïÆ¯3§þtعçüË!ûí°Qçð3:œÑáŒÅ¯,~eñ+žq`klàw1sèÌ¡3‡nL0¸àÈoîâ§×œýLë·Vô-n]uO÷óÛí1®°ÃcMoÌcéW½_õ~ÕW÷^Ý{uo3^UxUáUCç;tîF}ÂîÃ7œÛpàŠR“wj»ËÖŠ¾Å­‹wxmÆ‘eúvþ~5ÿ¼Q-¦LT&*c€-O†Íìé†O7|ºá†Ã@«rÕ›ì{Íœ·Îº«å'¹}‹[׎ïñM»U#´­Þà~tM—6]Úté·S¾òíóÛ§ËV,[±ì´R§•:íÿ¥·ýõ’‹ëì¼²ÊÔžm_͵è[Üúù;¯t<¢ËéÏ3¿Zß ?º{zÞÓóžž…YaV˜™ `Ë€asXS¸¦pÍ–CZi¹á0ö•cÿÑøÛJô-nýòÙ®gñÆ1¯P»Ò¼ ?Þ§/8}Áé¶ßíóÝ>ßíSsDÍ5Gwf¨Uqÿ1e_›ûå¸;[UÙV¢oqkpɰ‰ÍÛð™ðÒË/½üÒË×ܹæÎ5wšà÷&æYT¸¨pÑõ;]¿Óõ;wé¿Æ…åŸ,3æ³cÎ9½õÝÛzú-º?ºM­{m8~Ìë9¯ç¼ž†òÛ׳¾žõõ¬Òo–~³ô›Å n¨ÛýZÝÖüãÍÛ…Ûzú]ývBÐï¨í&µØ³R±ïqÎÐs†ž3tÍ^köZ³—iíÇ[yë/oýeÞ°yÃæ Û>w`Ýc_·æ¶ 6É }8èÃb/÷¿Yï¼êý|ñ…ÃÚÞ“éwýuJÿ“;tÏ gàE».ÚuÑ®fòÏ•~¨ôC¥rÃÊ +7¬¸3ÀøawŽmrJ>EߢëšQo.khyAÿš“ŠýÜ÷Ît¾ óÚµ…k ä¹G>|äÃGþçw‰Û[^÷x×ßu{b6à÷&Ão4²ÓÈN#;w‰ÿºÉÍëÖ¼píW=wh¿K~§ßõ×ÙoœùvË‹6œ¨öCµª™È«:¬ê°ªCóºÍë6¯[ÜQ?õÕGWšçé·èúйý^©ÿqq{rÓ7=pÓæòÕºW»ûÎ(ÛA.š~×çÕÀð{€áW›ºûÔݧî^Ü%­c›ZsVášž=Ú·Û~Òïúë¼q]žhukqûÓþOíÿÔþOkæ­™·fžY‚mÝų/ž}ñìâŽ÷é}Ÿx±Eí-ý®¿Ž¸fÀ~ î.nžýèÙžýÈAþÙpþÌï ¼=?vÈ0ü _¿þõë_¿^ÜŬž•Z£~á¹=ëµßoûL¿ë¯ïÿýŒÇ±¸½\gpÁuLl»ÆN;yìäâŽñxÙÃ×4ße{N¿ë¯ƒw¹¼}b3ùÜ=æî1wùg{K¡Ò/ä6ÎøÂñ…ã; î0¸ÃࢳšFU*T¸õ1ÝÇ´k*ý®¿L?ñüfå‹»8£ÜŒr3Ê.ض,ÜqᎠw,î¸ùÁMU•}ÿg=ýÖöŸsâ ÇV‹îXå •'Tž°úÄÕ'®>ÑtAþÙ²¨ô À¦{ùù—ŸùùuŠ4fИAc¾?æûc¾?ÆÎü60l”ñG?züÑÅ]ÒZüîyÙFî-n½}\Ë3ë .n÷VõZÕkU/3Û€~…ý ûQæˆ2G”)z,_žTyÿK ×LKôý¥õÇŸ²¥mw(îLxOÛ{ÚÞÓÖˆA¾Ê×D*ý°éÖt^ÓyMçâþ\)ÿ60ü–.Yºdé’âN=Á_NÚÌ«~ÿõ?czÔiwkí1ûüT®tÑ=|`Á X`Ò ÷M¼mâmo+î|¸¼Gúz›1Bï†×÷ Çxx±Ÿ ¼¨ä¢’‹Jš4ÈWù”K¥_6—õ_û»abðÆ€áÿpËð[†ß2¼è‰æœê]Pýcqwã×9WœuIË·Š;q{õ·W{µyƒÜ´²éʦ+›wüfÿý®æOˆ»¿ÞúîÅk?St'Ïúæ¬oÎúƼA~ÛÖÓ©ô Àæµ.讋»¥6š¼a0ë›Nßtú¦“·}Þ¼ëÀJ‡î^óÛ¢ûy}‹ë[\ßÂÔAnz²÷“½Ÿì]ôÈ=¥iûÚUÇ º¿v]1uòж ‹ûù2§Äœsü òܶ˜Q¥_~obðæâò"kЈA#(z*ò~«Au”rÛºdüù/õNq§é% –4XÒÀìAîX]ku­ÕµŠ;f?0¡Fëš‚îo[Ÿ/Ò¬ñWEwµË¢.‹º,2{°=ØV’ªô À–'o ~ÁO'ýtÒO'wúøá›nuÚTr7eR©Õ‘uËÝÛáÆîÒ!ä×{¼ÞãõEÖóíTo¿ODÜMYW/öX».žÏÄ€Å0°=Èå¼*ý Äà_K†_0±ÛÄn»=Y x¢ù¼šïÊ·›¾~{ù_o8ªlq'åµµÖÖZ[ËB.hÑ»Eï¿ðæÏs~zþ–ÿq7}}²äÍe]t‡ïw߸ûÆ™@Ø~äZj•~ÈMbðÆ€á´Ðj@«EO >=§Që¾òíæZÏÝ©^Ÿê_Ýç÷f¾7󽙿¶®Å#Xü oƒ_¿ÒACËÍ)\3ýÍ­‘Kçž0®lËÕëߟm=/í–ئq±!fáÚ…kšFØ~äBv•~ØVˆÁÅ€á,麤뒮EOužÝ÷ôr'H¶›w}ë“SoÑ®èn¼nàu¯3°u>aô £O(z„>·ãóÚZ¹´hÎ |öEÇ?XýŽ¢ë“ÖŸ´þ¤µi„íÍÖJ°Ò/Û.1x}0üI}'õÔ·è)`äÛíOm¸V²Ý¼ëªÝ»´Û¥¸Óna×®…]Í$l-­>kõY«ÏŠ›ßõ Ëu¢¼y×´úˆó›w(ú¸ZþÐò‡–›FØ>mÉ+ýOÄ`þG¯±½Æö[ô°_8㜯Zÿ[²ý=Ö.Õ½°ú‘E÷ü«;¾ºã«;Ì$ly?÷þ¹÷Ï¿ð¹¿5_Úÿô²#·n(Í×¼¼Zzc›_H/-lq`‹Í$lÏ~ï4+ýß¶Ï,Ãÿ7½pzáôâõ5…=ƶ{W¬ý=Öqã;ÜØ¤zÑ=šEÍ¢f¶¼9õçÔŸS¿èQyGÇË^®3NþýÖÚkÜ\öç¢nUŸU}Võ1™°=û=2­ô Àöfû‰Á0ü×ò›–ß´ü¦¢v§‡kö­2?ע鿯íú#~¼íîÃï©Sê´ûj¿P­ùÁŸVÞ¥üw凕þd¯¬v}>-÷ǶÉþã*þ|w¹Ög×;«ò×ä¨Ãs3zÛÙ/´®ý §Ôó?è|“ [Þ³?ûñ³=*ßxä±ç½=7ðÌžj}Ø¥]ŽîðbõcjdÕŽ*”Vvù^Yãwêþ©BM/¸¦ækßU Þ>êð\À7Ô=«uþ/¼ Å× ¿^øµÉ6W²•~ ¿c° ÿ5ïäy'Ï;¹èÁ|ÿŽ<¸Þ§¹“K“Ï;Û¼U•ze;í}D©_iá”s¾hýy®àŸ/ºðÁ¶w½·Ç”?¦ü1åM&ly}/ï{yßËáÙxý#»äf.;±Ìu{¶ásà/U+,³üý1cÇ>17ð«{ ½þ?½çYɬdVÒdÿý]ë&ä[éŠÊ¿,ÃÅßÅßÅß=€ÃuÚ¯Ùà\¥?޾à®6ß×ê»Ï ²ÿZwß]áÚ²µï]|ÄEõ.œòôIã­ðÞ+gt8üúxy§ï›ïzÃÊ•j ]÷šàÿ}£Ô{ð=Ïlß²¸¨É„-¯Í¬6³ÚÌú…7"~ôÛ•ÌͼNÿvÝ^¯yó¤Žþùä…/îßdäeÎìuÀí{ý¡Ô?Kµ_ÿ+×V~«s»r-ÏÙçù-_.ú¸õè¨GG™L`}¿6åJ¿°1ò# Àð_£Z4jQуvöÌ3ßmyq.„ÒuYwݽÚki©¬Ô€ÙýÎ|±åéÅÅÝ¢eÿwË_\æ¶Ü|#è–{W›µïá0ä‚2SËL-3õŽÇlúßÛ7ϵ\zaév¥&† jVÝ׬ÿ©ÀëþùÙ#ïh×øÌÜÿäào *µË/„íŽý;öïh2¢6&ëÆUâ*qé~­m7 Àð_w>qçw>Qô@ý²O×öGLÊ…D:íº“ƒC']ñu“¬û·_\§ýƼ¢·h$ÎÍן{R½û«¯€!=k?Uc^¹Ò¹H‹à¿Î;ñ£ý¦lLÐ]ÿ»Ž»°åÄÊ­r-¯˜7ù©¶‡Ýÿ®·v½µë­&(ÎÆd`é6Ŷƒ·Z.Ûˆï^þëÊ£ÎÉÍWÍn8宩ۣK»'ï›sÄäzä~¾ò–&¯ØÑ¼An:";¤vŽr3ÇËîÛ|×ú„ÝCgRåÿ¿…~õIekçÚë€WÿùoÛÕ4oO^~þåç_~^†²äçóß9jAnà%%οú¨§£½;ÞlÄã;·{¶á°ëËÚ£Ö§ß\g÷j—U­Rö™½û÷¸rí±ô]ѬÚA™yƒÜtLóÃKTŠs3/œ2qbëÏ7æ{?©öÂq­û¥óa®àÿ6í£v›7È'«ž[õܪç`È!¹ö à·«Ÿúáa;œ¸ûA «ÜZzá^•KM(îž7~§òyjœ÷Mý!ûÝ]ô¿z0°ñrùÀ+{NÕöÍùÞŸn›R§m—_:z0ð{ÙŽ^þkÞÉóNžwrуöþ?yp½Os!”Ö=nß¡å®Xw¯ž=ò¸ÏÜð×/zùÜ#ލ´î“€s9ÿ|Ñ…¶ý…O)>¦ü1å)o2aËë{yßËû^^ô¨üêˆ×ß8²K®àÒ K·+5!h4lP³úÅ}׳GÞÑ®ñ™ë×”§=ðÐ ¹“~×­¯î1ôúCþXtç³’Yɬ¤Éþû»ÖMH¹20•Ñw}0ü×ò›–ß´ü¦¢p§‡kö­2?Bi÷{>µÿûëîUõʽZfßQ¯}q£|öÞ9CZ[|Ñy%ެ;å铯Zᆕ-*ÕZáo{7ÛkUñ¯¬Í•üémg¿Ðºö/œ:Ïtþ óM&lyÏ~üìÇÏ~\ô¨|ã‘Çž?ôö\ ÀŽ®>©ìÏ!š^pMÍ× ŽxðÍC~ž0ížZM÷¼¬Â™½¸}ý¯?î–+·Êµ×þ®[o8¨{Vëü¢;¿ðë…_/üÚd›+ßÊÀÑw}0üÓ §N/î^SØcl»w·n(ý¦å_ÿ|äŒÚ=öù´Ü7þdôQ¯³voy÷þï–¿¸Ìmëÿû§¸åÞ¹€Çïpc“êEïyÔ,j53˜°åÍ©?§þœúEÊ;:^örq¹€'¿úÈEÍì{Q…Z¥»oø|Ø rͳʗY8eâÄÖŸçf®Ý¸ÆÍeþ…7ßϪ>&¶g¿G²•ØÞäwô]Ÿ ÿ£×Ø^c{ý…W_Í8ç«ÖÿÎ…\ºîþÜøU‹ÞµÞlU§úaû^·î³×­GÍßï?»ë¨[ë?·¦n.íž\ÿQ¬‹ÇÏ,Ó¶ô#uk4¡Æµ¹ðˆºT÷ÂêGþ›ÍÞñÕ_Ýa&aËû¹÷Ͻî]ô¨¬ùÒþ§—™kxÝ¿_÷Ï]Wwìºßé5²jG• Ê=U¶Ù^w6IëN­pÖÍÿ¼è‘Ú‡,›œÚæ¦ÜL¿Ë«¥7¶ù… ÓâÀ¶8ÐLÂöì÷δ20ùmû‰¾ë€áLê;©ï¤¾Eõ‘o·?µáÚÜyÛä ¿sqÿ5×ÞüyÕ€î]ÚíRì›Tw-ìZØÕLÂÖÒê³VŸµú¬è±ù]ß°ìQ'nÝ\Z\Äýµÿ>wÖ´úˆó›w(ºÛ-hùCËM#lŸ¶dš•È'Ûgô]Ÿ ÿcI×%]—t-zØ×yvßÓË;é4?Ö·>9åñíŠîöÀë^7ð:Ó[×èFŸ0ú„¢Gès;Þ1¯ñ \Ž©ÛâzöEÇ?XýŽ¢»ýIëOZÒÚ4ÂöfkåX€m—è»>~A«­´PôD°àÓsµî+Ün®õÜêõ©þeÑ}~oæ{3ß›iaëZ¥iûÚUÇI¹¿v]1uòж ‹ûù2§Äœsü òܶ˜Te`~o¢ïæâò"ün~Ëð[†=¡œóA½ ª,ènü:犳.iùVq'èo¯þöêo¯6o›V6]ÙteÓâŽßìñ¿ßÕü Ywã×[ß½¸qígŠîäYßœõÍYߘ7ÈoÛzF•ؼDß߃ ÿ‡¥K–.Yº¤¸SLð—‡6k*înxýϘuÚÝZ{Ì>?•+]tXðÀ‚˜4È}o›xÛÄÛŠ;.ÞfŒ¸»áõ½Â±~wq{¸¨ä¢’‹Jš4ÈWù”Ne`6——Ÿùù—Ÿ}7/6Êø£Ç=þhoýÛÖÛǵ<³ÎàâvoU¯U½Võ2c° èWد°ßeŽ(sD™¢ÇòéI•÷¿¤pÍô·„Þ_Zü)[Úv‡â΄÷´½§í=mä«|Í¥20›nMç5×t}7/6ÎøÂñ…ã; î0¸Ã/„̦Q• î_}L÷1í¼øÖ‚é'žß¬|q'îåf”›QÎpÁ¶eᎠw\¸cqÇõÈnªÚ¨„Üû?ëèé·¶?øœO8¶zXtÇ*O¨<¡ò„Õ'®>qõ‰¦ òÏöHe`6Ýú¯}7 ¿Âׯýúׯwa«g¥F‡Ö¨_xnÏzí÷“~ßÿûþbq{5¸Îà:ƒë˜(Øv;æœÓ[ßéwøÑmj5Øëÿx£¿žózÎëiX ¿}=ëëY_Ï*ýfé7K¿YÜÙà†ºÝߨÕmÍ?Þü±]˜Oé÷Û A¿£j´›ÔbÏJ ‹ý+ACÏzÎÐ5{­ÙkÍ^¦¶ë^íº=¿éñºÇîU¿°% À°9¬)\S¸fHË!-‡´Üp ûʱÿhü‡m=ú~ùl×3xã˜×¨]iÞ†ï‚Óœ¾àtÛïöùnŸïö©9¢æˆš#Š;3Ôª¸ÿ˜²¯ÍýrÜ­ªlëé7¸dØÄf‡møLxéå—^~éåkî\sçš;Mð{€a3{ºáÓ Ÿn¸áЪ\õ&û^3ç­³îjùɶ}׎ïñM»U#´­Þà~tM—6]Úté·S¾òíóÛ§ËV,[±ì´R§•:mÃ'ŒR·ýõ’‹ëì¼²ÊÔžm_ÝV¢ïçï¼Òñˆ.§?sÌüj}7üèîéyOÏ{zf…Yaf*€-C†ßÅÌ¡3‡ÎZj#\pdƒ7÷?ñÓkÎ~¦õ¹}WÝÓýüv{Œ+ìðX“ÆóXúUïW½_õÕ½W÷^ÝÛ …W^UxÕйCç»1çǾá܆W”š¼SÛ]r-ú.ÞáµG–éwØùûÕüóÆ<–¨LT&*c€-O†ßѲRËJ-+Õ½b÷ŠÝ+nL0èpåõ*_7¥ÓIwúÇ­}—.é6¤ÍI÷ö:â°zÇ•ÚhQ‰¨Dä|kÆ•3®œqåÆŸUnü¼gµZÓ¾ìöêà#^ÙZÑwFøÔŸ;÷Ü9d¿6ê~F‡3:œ±ø•ů,~Å3l-‚ l!“'Mž4yR©_©Çƒv©Q*œÓé fwý|ó…µ}`óæÞ9gÝÞrîðImNnP§NÉ}«”«½ñ÷­Ïq}Žësܲ Ë*,«àù6ÆÊ‹V^´ò¢;ëÞY÷κ¶Ù§tùJ¥÷¹ëô+?©ûÐ{žŽ¿bó†ÞµUÞ:©ÝGS‡<:ûн§ž;ú Ýí¹zÂü ó'Ì/,(,(,ð,[— [Ôê.«»¬î2ê‰QOŒz¢Ô&8úýïW;ðŒC«×\=r~û.vxyî_ê6’¦wi^.Û£ó+Ío,˜tâÙÍö~®ôq·5¾ýÞÓhR¯ý§7xwÿSö¿´|û2—ÿ¶_÷”!§ 9eȼ—æ½4ï%Ï&°)¾ÿåø/Ç÷Þkx¯á¿íŒ´Ï;å_,Ýöœø„‘Õ?¼³ÄïÖí0öü¿Í8ø»IÇ>¸ë!q:lDÔüÂäÙ»4oôêC'RnÔç·ÜÜè…[J_ô~íö'^|T¯*#6å<<´êЪC«®¸eÅ-+nñl¹C†­feç•Wv~nÚsÓž›¶Ïûû¼¿Ïû¥rÒÅO]üÔÅOÍ»{ÞÝóîö¬¿‡/}1è‹A' œ0pB©öXÛÇÚ>Övy÷åÝ—w÷¬¹I†2»ê쪳«ö±ÿ‹ý_ÜZy£õ­ol}ã¸ùãæ›¿¬ÿ²þËú{^€-i唕SVN™ÔrRËI-;~Ññ‹Ž_l­óá¥/xéÀgÏ8{ÆÙž`[!CN[pï‚{ÜûôЧW<½â¼ç58¯A©JPê€MÍßiþNów4vÐØi%¦•˜VbÙ˜ec–±ç@®ù¹ÏÏ}~î3£ÊŒ*3ªÜ³ç={Þ³g›SÛœÚæÔÍzO»õ´[O»uäK#_ùÒÜ/ç~9÷ËÂq…ã ÇÙy`[$CžX3b͈5#¦Žž:zêèÉOþxòdzªÌª2«Š¶7óÏo<¿ñ”ŽS:Né8µÉÔ&S›¬¸nÅu+®³3Àö@È0@ž€ò„ '`€3ªÌ¨2£Ê={Þ³ç={¶9µÍ©mN-µ™œvëi·žvëÈ—F¾4ò¥¹_Îýrî—…ã Ç޳óð{€€íÈ쪳«Î®ÚÿÅþ/ö±ÔVÒúÆÖ7¶¾qÜüqóÇÍ_ÖYÿeý=/À–´rÊÊ)+§Lj9©å¤–¿èøEÇ/¶ÖùðÒ—¼tàŒ³gœ=ãlÏ °-*zf›¼ãä'ïhgغ` o­ì¼²óÊÎÏM{nÚsÓöyŸ÷÷y¿TNºø©‹Ÿºø©ywÏ»{ÞÝž5à÷ðÅ /}1hà„N(•ÃkûXÛÇÚ.ï¾¼ûòîž5 ÷ Àä&È+«»¬î²ºË¨'F=1ê‰M‰ûþ³Ñ‡M8à¸Î+/<³nµƒn: aíÞGÞwïÁ5¯»ýá±ßÜÿ¯Øèø¾ï«]ÿ˜Ë:ݱ¸æÒs®ïݬZ¿6ÿêüÖÞoUœYµÙoûuOrÊS†Ì{iÞKó^òl›âËñ_Žÿr|¯á½†÷þÛÎHe^©Ð`¯Gš>ÔéþJC;Œé[~ÿoÏxöž»k?¯àÑ‘u޽ ù¨—ë^ÕmÚ“KëžÐõ”¿7¨ýîi{þÏA¯}áåcö»©~Öîû¿)çá¡U‡VZuÅ-+nYq‹gÈM0¹IòÄäI“'MžôkCõ}ÛM9å¤F/õ«øÐ¬ÃÿõHù)KZµ9rúô͵6+=xç矬}÷ù^÷FÙ£ª]q@ÿo}Žës\Ÿã–UXVaYÏ/°1V^´ò¢•ÝY÷κwÖý¡·Kù{öºþøã¯=¤FK’ 4èpÓM~xÈ!›k½ñ‘ŽnúU÷Šcv¨Wæˆû»ÅÕÿµçê ó'ÌŸ0¿° ° °À³ ä˜Ü$Û°e¥–•ZVª{Åî»Wܘ„Pq`“ò­n;xÙÀ]Y°yCïÆ¯‡M>1ZsÅ9wôn¿ññ#*•ˆ\ÉŠ5ãÊWθrãÏ*í»\:{¿Z×LÍÎ:ø„Í›{7~í5pÜØúw4]Ö¹q¥6æ>w8£ÃÎXüÊâW¿ârLnòÇ`›4sèÌ¡3‡nL0¨vM›¸ó«ÍëÞuý„*[+ú·¶<øÑSÞ\öîl¼1¥_õ~ÕûU_Ý{uïÕ½ÍPxUáU…W ;tîйs9ù¶Ûî?ð³SfÜÛ䉭}‹[û ž<á໎z©Ç5Õ~ب¿S&*•1ÀÖ%“›``ótç>ý¼‘r…oêü§ÉÞÍÊÞóùçs-úƒ×>þÁ[Sj¯ì¶p@ï ?º¦K›.mºôÛ)ßNùvŠy€íÓŠe+–­XvZ©ÓJö„ÒcV]ÕsÿÝ®oñnå¦Ur-ú·^³SºûÁ{üâñ·T±áGwOÏ{zÞÓ³0+Ì 3Sly0¹I¶k ×®ÒrHË!-7ê½wÉÂÛ÷ÚV¢oqë¡wß7ÿÕlߟ¾âð 7üxœ¾àô§Ø~|·Ïwû|·OÍ5GÔ,6ŽVÚ¡ÆWev¿¢Ãko5¼v[‰¾Å­MïYçñ Ÿ /½üÒË/½|Íkî\s§ ¶$˜Ü$¹mQá¢ÂE×ïtýN×ïTÜ¥ÿ½WUº°êÊæƒî~ø¥ÁÛzú-ºÖ¾öüŽ×]¼áø1¯ç¼žózÈo_ÏúzÖ׳J¿YúÍÒow6hwû%=ª/¼±Ûû ›~¸­§ßõ×k§MÑø„ZOWx¨¸Ç~ÎÐs†ž3tÍ^köZ³—i¶ ˜Ü$9mЇƒ>ôaq—û«6k=ë„1‡¿ùÈnS>É¿ô»þzðêû=ºã†3ð¢]íºhW3ùç‡J?Tú¡R¹a冕Vܠ˼VëÁ|оE×ÿúþ‚¦´Ýÿ¢Ÿªû×b.è|Aç :¯-\[¸Öà¿;˜Ü$9jd§‘Fv*îézt;¥Õn¯|ki~§ßõ×C^¼ýƒç*n8ÿPí‡j?T3?VuXÕaU‡æu›×m^·¸£¾{Ã1Ö«˜ßé·èÚ©ìwPPÜžÜôÀMÜô€ù~o0¹IrÎÔݧî>u÷â.ëP³ó]¼ÓªÕÈǧ¿¹ý¤ßõ×fO™9~iqûÓþOíÿÔþOkæ­™·fžY‚mÝų/ž}ñìâŽ÷žW?[±ÞÇÛ[ú]í|×-ÕlQÜþ<ûѳ=û‘)~?0¹IrÈׯýúׯw)¿zãöåN)hUuäÓOØ>Óïÿ¼¸ìm_YÜ^ ®3¸Îà:& ¶]c'z\[gØ#ï†×–Ã{øÍúeëWk\c~Ñ=|`Á X`Ò ÷M¼mâmo+î|ØõÛšœ#ônx½¤ð¥Ýt-n•\TrQI“l.ð¦[ÿµ¿&o<ØÊn~Ëð[†½ÄSõÐÖsNxQÜÝøµÙï˜ý|Ïâ.™}{õ·W{µyƒÜ´²éʦ+›wü^ðòèûê>"înüzÌaWVÞïÍ¢;yÖ7g}sÖ7æ Ø\àM·.讋»¥6š¼a0°Õ|Óé›Nßtò¶Ï›w= Uç÷.¬St?¯oq}‹ë[˜:ÈMOö~²÷“½á]v?ö‰Š{ º¿vXif­&Qq?_攘SbŽkãÀf o^bðæâ‡°Õ 1hÄ E/âÔ,sVzÅx)÷·­‡ÿÐéÑ;Å] [Ò`Iƒ% ÌäŽÕµV×Z]«¸cöªë‚šº¿m=+º¿~­ãŠîj—E]uYdö€M'ÿ~ÄàM![ÁO'ýtÒO'wáæ°Û‡—§I¹›²´ä¬ÎWT-º·Ã‡ 6|˜ „Üñz×{¼Þ£èÑÚ,=å¬ÊDÜMYoú^Ÿ¦÷÷³fñ€Å0À¦€· 1ø×€€­`b·‰Ý&v+z™æ€ƒ:ßq|»ÖÏ>xnо¸Ëakk­­µ¶–9„\Тw‹Þ-~áÍŸ/ŸýÚž$ânúzjý;ztYѾoÜ}ãîgM!oybðÆ€€­ Õ€VZ (zi¦ù•wŸõR ùvs­UjýÓ Ýç÷f¾7󽙿¶®Å#Xü oƒ_å‚ZeË|xÓ¾¿­¥Ö+þðÚ± »®ÿXrá^õßéŸ77٣ؿ³píµ M#ðÛÀ[—\Ø¢–t]ÒuI×¢bÊv­6ó€±’íæ]›üñÆ ž8´èn¼nàu¯3°u>aô £O(z„žùí}a­?n‹¯µÍͼnmòã‰}+u)ºÛŸ´þ¤õ'­M#ðÛÀ¹C ^Ÿ lQ“úNê;©oÑ‹/u+÷èSÉvó®-«ú˜Là×€·-ÛO €€-dùMËoZ~SÑK*•žk6«Íi9úÊ ðVçºÏ]tÔ-­ø&Ã[×ßûÆ}Wùó^7—Yvy¹jæÏõÊ<é¶ï\^ïð£þ³Ï›Åar-_~é«Ç6lPô~>:êÑQŽ2™À¯%çŸüˆÁ0°…ŒZ4jѨEE/—2áö¹Ïí—;¹´á‡}ÎàÄÿÞ¹{M-Ý®QÔ¯ÕC…ëþ뺽þׯû7ëÞzýÇ•kI»ÂëuÎm|Œ ¹ ÌÔ2SËLý…\zÁ‡£©»uéY‹ïïSëôõïU‡¿ôé·ÿŒuÿµ¸ ßG½ÑcXµŸs?_;dZãÆ‡½Ÿý;öïØ¿£É~-8¿m»1X¶;Ÿ¸ó‰;Ÿ(z‰äÐ[ï‹^ž;¡´ÊW­æéºûVõ#_?±òÆÝõѾ÷6ªÛ"˵\µÓþ¥Œ ¹à> =<°q™ãr!‘6œuì‘ûþgݽZ÷Ðó]7´õMÓ>U.©µ_™9¹€4óð&iÑýïzk×[»Þj2M?Ÿ ÀùjÛŠÁ0@Þ*Ûˆ_ «¶ËPZ.; AþûöÔë½ö÷ÿøÌàÚþŽnöåO½¸Kó‘wÿÒÊ\ ÀûïØaúÙÌ䦃Žkþ÷òoçB"­¼ªæe&¬»WçÔ|诵+l|ÊÍýWßpà¬×š^bÞØ’^~þåç_~^@f;rØ™Ýï– ‰´å„Ǿ~óÁõï[ó¶w½5á†\K¹¿m­qdÇ—þº¿yƒÜTû£VïVX»•_Ûwæ[Mæ­¯®øòõ9 ŸÛøÿùËFÜRû…œÀ/¿÷RÓGÌ[ÒªçV=·ê9˜íHùŒ{nœ8qýûvøôGJMù2?°WC.Ë…W÷Þ=>µÑkëß«uIxãÿßòÂÕõätö `¶8¯`³Y÷éSnn¹s»´å¥-/mYô‚Hî|ðáü}à”:ÿsßμ¯Ù+_åG.î3€M¦›Û–¿=sá3€oxù½‰ÿûêØ+ÏœôdÃYÿèúÑ#ek¯Íå\ÜgßãøÇ÷0™nnn›~>¶ó°‡ílgòïöJ¿Wú½Ò¯ç=wè¹ÃƧßu_ï3€€¼5jѨE£½,rÈ„Ûç>·_î„Òõï[ã?<üÑ7æ»yòö<;¿V¯sW÷©^ëóªö}¸U©‘%§—ÌÇUáõ:ç6>¦èþ›LØòÊL-3µÌÔ¢ÇãM|8úº[7‘®ÎyxxíÚ­6þ{ÿreÿ5æær¾vÈ´Æ-ºóý;öïØ¿£É~­âþjÉëÂí 1ƒÆ ³ñÑwÝ×oùè»>ØBâïâïâïŠ^"iôb¿½š–›¸úŒcþpú!ó]û}ÑáÒ.#×}W…¡µ<6‡^|ÈÈ¿M¦¸KT&¶¼6³ÚÌj3«èñxý³º4=+wpíÁ­Ž­°h£^=ÜvÖ7MûTR§Ùãs9_~é«Ç6lPtçõè¨GG™Là×€ó϶}×'[ȼ“ç<ï䢗KjõîZ©Ïñ¹“Kë5ïõó aÿ½so–>cï~ÀØG.*îë›Õ|θ²¥÷,wz…Zë¾iÿý娮×ýsN¼µõ´Gv™òqÑ?¦ü1å)o2aËë{yßËû^^ô¨ì»ÿ”‚ƒ“­›H»ty u­ëáÕÉÅ|ýÿ }ÓÅmž»¨fõ¶ÿ][kíÚpÄwµ§½ŸYɬdVÒd¿–œò#ú®O¶å7-¿iùM¿ðÉ—Ï5›Õæ´Ü À-'<öõ›½ŸðÆf‡—¼1çÀýg|{¹ÑëÂp.àJ·0«Ló¢÷UŸU}Võ1™À¯%o[ò;ú®O¶¨^c{íõ Iµù;÷Ü61È¡ÏÍ]/×¾ñü× Ù÷ü†·Ø¥ôŠ}®øaé^åûïóÄ>×Õ‹9}ÿ+N8àœý|èw¯W˵û¿n­2±U‹ËîùWw|uÇWw˜IØò~îýsïŸ{=*+¾Sãþ½WçN.]w¯:ïvs‹÷¬5úðW+ +7½âÌÒ)³oùÊ{õÜ¿K£¸ÜõÇõè½xÿ›öùV“y¹üÐýgÿëÇ&'½‡-lq`‹Í$ðÛÀ¹oû‰¾ë€€-jRßI}'õ-z‘¥nåýoª›uýüÛþëV{;ë÷Fÿâ.lv-ìZØÕLÂÖÒê³VŸµú…·#îwà›­_’k¯-.èͽ¹ùÚßn…£N®Ûµèn?´ü¡å-7Ào#ç¦í3ú®O¶¨%]—t]ò —àËv­6ó€±¹€·ÅµÉo¼à‰C‹îöÀë^7ð:Ó[×èFŸ0ú„¢Gè™ßÞÖúc®Ôm}mòã‰}+u)ºÛŸ´þ¤õ'­M#ðÛÀ¹Cô]Ÿ l­´ÐjÀ/¼ô•wŸõR ávs­UjýÓ Ýç÷f¾7󽙿¶®Å#X<¢èZå‚ZeË|xÓ¾/Ün–7ÞéŸ77Ù£¸Kÿk®]¸v¡i~xë}‹#[ÁÄn»MìVôrÌu¾ãáv3¬-ž}ðÜ }±Á£ÖÚZkk™CÈ-z·èÝâ>øòÙ¯ý¡áIòí¦¯§Ö¿£÷A—ÝáûÆÝ7î¾q&Øð–'ún Ø ~:é§“~:©¸ 4‡Ý>¼|lø°áÃL äŽ×{¼ÞãõEÖfé)gUî ßnÊzÃÐ÷ú4½·¸Ÿ5‹,°x€ 6…¼eˆ¾¿– l5ƒF 1èÞþ´f™³Ò+Æ‹¸¿m=ìø‡NÞ)îBØ’K,i`ö w¬®µºÖêZųW]ŒhÔDÊýmëYÑýõkWtW»,겨Ë"³l:ø÷#ún Øj¾éôM§o:wùæÐ•÷×{ý A÷×®´êüÞ…uŠîçõ-®oq} S¹éÉÞOö~òÞºÑîÇ>QqO)÷×®+ͬÕ$*îçËœsJÌqmØ àÍKôÝ\ü¶²[†ß2ü–áE/åT=´õœ^t7~möÇ;f?ß³¸Kcß^ýíÕß^mÞ 7­lº²éʦÅ¿¼<ú¾ºÈº¿sØ••÷{³èNžõÍYßœõy6xÓ‰¾¿ØÊ–.Yºdé’â.î4êqmaˆ»^[ìá7ë—­_­qùE÷ð,x`IƒÜ7ñ¶‰·M¼­¸óaÿÕo7jrޏ»áõ’—vkе¸=\TrQÉE%M°¹À›îåç_~þåçEßÍKrÂø£Ç=þhoýÛÖƒúžñÑe‡·{«z­êµª—ƒm@¿Â~…ýŽ(sD™#Ê=–›/9­Wåñ7ÝøáBï/­^›1 É£Å ïi{OÛ{Ú1`ó€7ÝšÎk:¯é,ún^0ÆŽ/ßap‡Á½ôS¾ÓßÖÒòÔG§L«(÷®¿6êØ÷ãa‡wÉlF¹åf”3\°mY¸ãÂîXÜq}ÊC·_~PK¹÷ÖÓ>rHͦçwjV鯢;VyBå •'¬>qõ‰«O4]Àæ%o.ë¿XôÝt0C¾~ýë׿~½¸ìQ½qûr§´ª:òˆé'H¿‡”½í«±#‹Û«Áu×\ÇDÁ¶kì䱓ÇN.îïvÙ“§×m(ý®[{åš«ö¤¸½š»ÇÜ=æîa¢€ßƒLn€€œ3u÷©»Oݽ¸KùÔì|×ï´j5òñéonŸé·Ù“CfŽ_ZÜþ´ÿSû?µÿÓšykæ­™g–`[wñì‹g_<»¸ã½çÕÏV¬÷ñöœ~;ßuKõ[·?Ï~ôìGÏ~dŠ€ßLn€€5²ÓÈN#;wY¿ÆôN=ºÒj·ÇW¾µt;zÕï‹·ð\ÅRôCµªýPÍü@~XÕaU‡Uš×m^·yÝâŽúî ÇX¯âö–~;•½ñî ŠÛ“›¸é›0?ÀïM&7 À@Nôá }XÜ%þªÍZÏ:aÌáo>²Û”Oò;ý¼zà~î¸áô»h×E».ÚÕÌ@þù¡Ò•~¨TnX¹aå†wèòįÕz0¿£ï}AÓÚîÑOÕ/.n.è|Aç :¯-\[¸Öà¿;˜Ü$¹mQá¢ÂE×ïtýN×ïTÜåþ½WUº°êÊæƒî~ø¥Áù—~k_{~Çë.Þpú×s^Ïy= ä·¯g}=ëëY¥ß,ýfé7‹;´»ý’ÕÞØíý…M?̧ô{í´i#ŸPëéÃã ÷ØÏzÎÐs†®ÙkÍ^kö2-À–!“›``[°¦pMáš!-‡´ÒrÃ)´Þ{—,¼}¯m=úz÷}ó_Íöýùà+¿pÃwÁé N_pºíÇwû|·ÏwûÔQsDÍÅ*íPã«2»_Ñáµ·^»­§ß¿&÷¬óø†Ï„—^~éå—^¾æÎ5w®¹Ó„[’Ln€€mÌÓ Ÿnøtà ǀ ßÔùO“½›•¼çóÏo+Ñ·åÚÇ?xkJí•Ýè½áG×tiÓ¥M—~;åÛ)ßN1°}Z±lŲËN+uZ©Ó6|Â(u̪«zî¿Ûõ-ޭܴʶ}¯Ù)Ýýà=~ñø[*ŽØð£»§ç==ïéY˜f…™©¶<˜Ü$Û¤™Cg9´ÔF¨vM›¸ó«ÍëÞuý„*9}~ô”7ן}E…;oÌcéW½_õ~ÕW÷^Ý{uo3^UxUáUCç;tîÆœCN¾í¶ûülÀ”÷6y"×¢oŸÁ“'|×Q/õ¸¦ÚóX¢2Q™¨Œ¶.˜Ü$Û°e¥–•ZVª{Åî»Wܘ`Pq`“ò­n;xÙÀ]Y°µ¢ïa“†OL†Ö\qνۗÚhQ‰¨DäJP¬WθrÆ•VißåÒÙûÕºfjvÖÁ'l­èÛkัõïhº¬sãJ/lÌ}îpF‡3:œ±ø•ů,~Å3ä˜Üä @ž˜Öö±¶Ë»/ï¾¼»g È}0¹I¶#³«Î®:»jÿû¿ØÿÅ­•7ZߨúÆÖ7Ž›?nþ¸ùËú/뿬¿çØ’VNY9eå”I-'µœÔ²ã¿èøÅÖ:^:ðÒ—œqöŒ³gœíy¶E0¹I¶k î]pï‚{Ÿ^ñôЧWœ×à¼ç5(u@©J°éa£ù;ÍßiþΠ±ƒÆ;­Ä´ÓJ,³l̲1öÈ5?÷ù¹ÏÏ}fT™QeF•{ö¼gÏ{ölsj›SÛœº¹Bïi·žvëi·Ž|iäK#_šûåÜ/ç~Y8®p\á8;¿`£¬±fÄšSGO=uôä'<ùãYUfU™UÅÎÛ›ùç7žßxJÇ)§tœÚdj“©MV\·âº×ÙÈ0@ž€ò„ '`€YŸìšìšìšìêìêìêìªìªìªìŠìŠìŠìòìòìòì²ì²ì²ì’ì’ì’ìâìâìâì¢ì¢ì¢¬gÖ3ë™uϺgݳ ³ ³ ³nY·¬[v~v~v~v^v^v^Ö5ëšuÍÎÉÎÉÎÉÎÎÎÎÎÎÎÊÎÊÎÊÎÌÎÌÎÌÎÈÎÈÎÈNËNËNËNÍNÍNÍNÎNÎNÎNÊNÊNÊ:e²NىىىÙ_²¿dÉNÈNÈNÈ:d²ÙqÙqÙqÙ1Ù1Ù1ÙÑÙÑÙÑY»¬]Ö.k›µÍÚfGeGeGeGfGfGfGdGdGd­²VY«¬eÖ2k™–––µÈZd-²æYó¬yÖ,k–5ËšfM³¦Y“¬IÖ$;8;8;8k”5Êe ²Yƒ¬~V?«ŸÕÍêfu³:Y¬NV+«•ÕÊjf5³šÙAÙAÙAÙÙÙY¬FV#Û/Û/Û/«žUϪgU³ªYÕ¬JV%«’UÊ*e•²ŠYŬb¶O¶O¶OV!«UÈÊeå²rYÙ¬lV6Û;Û;Û;+•ÎJg¥²RY©¬dV2+™ý9ûsöçllll÷l÷l÷l·l·l·l×l×l×lçlçlçl§l§l§lÇlÇlÇl‡l‡l‡¬DV"+‘¦…iaº&]“®Iÿ“þ'ýOº*]•®JW¦+Ó•éOéOéOéŠtEº"]ž.O—§ËÒeé²ô‡ô‡ô‡tIº$]’~Ÿ~Ÿ~Ÿ~›~›~›~“~“~“~•~•~•.N§‹Ó/Ó/Ó/Ó/Ò/Ò/ÒEé¢tQº0]˜.L¤ Òé§é§é§é'é'é'é¼t^:/›ÎMç¦sÒ9éœtv:;~˜~˜~˜¾Ÿ¾Ÿ¾Ÿ¾—¾—¾—ÎJg¥³ÒwÒwÒwÒ™éÌtfúvúvúvú¯ô_é¿ÒééôtzúVúVúV:-–NKßHßHßH§¤SÒ)éätr:9]'I“4I£4J£4LÃ4L Ò‚´ ”NJ'¥¯¥¯¥¯¥¯¦¯¦¯¦/§/§/§Ó‰éÄtB:!¾˜¾˜¾˜¾¾¾ŽKÇ¥ãÒçÓçÓçÓgÓgÓgÓgÒgÒgÒ§Ó§Ó§Ó1é˜tLúTúTúT::ŽNŸLŸLŸLŸHŸHŸHOOOKKKIIIÿžþ=ý{úpúpúp:<žO‡¥ÃÒaéƒéƒéƒéýéýéýéÐth:4½/½/½/½'½'½'½;½;½;½3½3½3’I‡¤w¤w¤w¤·§·§·§·¥·¥·¥ƒÒAé ô–ô–ô–ôæôæôæôÆôÆôÆô†ô†ô†t`:0˜H¤ÒëÒëÒëÒ~i¿´_Ú7í›öMû¤}Ò>iï´wÚ;½:½:½:½2½2½2½"½"½"½,½,½,½4½4½4½$½$½$í•öJ{¥¥¥¥=Òi´{Ú=íž^^^vK»¥ÝÒ¿¦Mÿšž—ž—ž—ž›ž›ž›ž“ž“ž“vI»¤]Ò³Ò³Ò³Ò3Ò3Ò3ÒÓÓÓÓÓÓSÓSÓSÓSÒSÒSÒ“Ò“Ò“ÒÎiç´szbzbzbÚ1í˜vLOHOHOHOOOKKKMMMNNNÛ§íÓöi»´]Ú.m“¶IÛ¤G¥G¥G¥G¤G¤G¤­ÓÖië´eÚ2m™žžž¶H[¤-ÒCÓCÓCÓfi³´YzHzHzHÚ$m’6I§ÓÆi£´QÚ(m˜6L¦õÓúiý´^Z/­—ÖIë¤uÒÚií´vZ3­™ÖLJJJHHHk¤5Òé~é~é~iõ´zZ=­šVM«¦UÒ*i•´RZ)­”VL+¦Ó}Ò}Ò}Ò i…´BZ>-Ÿ–O˦eÓ²i™´LZ&-–NK§{¥{¥{¥%Ó’iÉtÏtÏtÏtttt÷t÷t÷t·t·t·t×t×t×tçtçtçt§t§t§tÇtÇtÇt‡t‡t‡´DZ"-‘&…Ia²&Y“¬Iþ“ü'ùO²*Y•¬JV&+“•ÉOÉOÉOÉŠdE²"Yž,O–'Ë’eɲä‡ä‡ä‡dI²$Y’|—|—|—|›|›|›||||•|•|•ü;ùwòïäËäËäËäóäóäódQ²(Y”,L& “É‚dAòiòiòiòIòIòI2/™—ÌKæ&s“¹ÉœdN2'™ÌNf'&&&ï'ï'ï'ï%ï%ï%ï&ï&ï&ï$ï$ï$3’ÉŒäíäíäíäŸÉ?“&Ó“éÉôäÍäÍäÍdZ2-™–LM¦&S“)É”dʺ߬; $q'q%Q%A$AR$ÉëÉëÉëÉkÉkÉkÉ+É+É+ÉËÉËÉËÉKÉKÉKÉ„dB2!y!y!y!ŸŒOÆ'Ï'Ï'Ï'Ï%Ï%Ï%Ï$Ï$Ï$c“±ÉØdL2&“ü#ùGòdt2:ŒJF%£’'’'’'’‘ÉÈddòxòxòxòhòhòhòHòHòH2"‘ŒHNNNJJJ†%Ã’aÉÉÉÉýÉýÉýÉ}É}É}ɽɽɽÉÝÉÝÉÝÉ]É]É]ÉdH2$œ N'·'·'·'Kþ–ü-” J%·&·&·&7'7'7'7%7%7%7$7$7$×'×'×'’É€¤Ò?éŸôKú%ý’k“k“k“>IŸ¤OrMrMrMrurururUrUrUrErErEryryryriririrIrIrIÒ+é•ôJ.J.J.Jz$=’I÷¤{Ò=¹ ¹ ¹ é–tKº%Mþšü59/9/9/9797979'9'9'é’tIº$g%g%g%g$g$g$§'§'§'§&§&§&§$§$§$'%'%'%“ÎIçäÄäÄäĤcÒ1阜œœŸŸŸ———›››´OÚ'í“¶IÛ¤mÒ&i“´IŽLŽLŽLŽHŽHŽHZ'­“ÖIˤeÒ29<9<9‹>‹>‹>>>æGó£ùѼh^4/ú8ú8ú8š͉æDEEEFFFDDDïEïEïE³¢YѬèèèhf43š½½½ý+úWô¯hz4=š½½½M‹¦EÓ¢7¢7¢7¢)Ñ”hJ49šM^÷Ûÿu?ö£uÂ(ŒÂ¨ *ˆ ¢IѤhRôZôZôZôjôjôjôrôrôrôRôRôR4!šMˆ^ˆ^ˆ^ˆÆGã£ñÑóÑóÑóÑsÑsÑsÑ3Ñ3Ñ3ÑØhl46‰ÆDÿˆþý#ŽFG£¢QѨè‰è‰è‰hd42======ý=ú{ô÷hD4" †G㇢‡¢‡¢£££¢¢¢¡ÑÐhht_t_t_tOtOtOtwtwtwtgtgtg4$ ‰îˆîˆîˆnnnn‹n‹n‹Eƒ¢AÑ-Ñ-Ñ-ÑÍÑÍÑÍÑÑÑÑõÑõÑõÑÀh`40êõúG×E×E×E×F×F×F}£¾Qßèšèšèš¨wÔ;ê]]]]]]]]]]]]]]]]]]]]]õŒzF=£îQ÷¨{tatataÔ-êu‹ÎÎÎ΋΋΋ºF]£®Ñ9Ñ9Ñ9ÑÙÑÙÑÙÑYÑYÑYљљљÑéÑéÑéÑiÑiÑiÑ)Ñ)Ñ)ÑÉÑÉÑÉQç¨sÔ9:1:1:1êuŒ:F'D'D'DÇGÇGÇGÇEÇEÇEÇFÇFÇFGGGGGGí£öQû¨mÔ6jµ‰ÚDm¢#£#£#£#¢#¢#¢VQ«¨UÔ2jµŒ‹‹‹ZD-¢Qó¨yÔl¶ Û†mÃ6a›°MxdxdxdxDxDxDØ*l¶ [†-Öáaáaáaa‹°EØ"l6›‡ÍÂfa³°iØ4l6‡ÃƒÃƒÃƒÃ†aðaØ l6ë…õÂzaݰnX7¬Ök‡µÂZa­ð ð ð ðÀðÀðÀ°FX#¬îîîV«‡ÕÃjaµ°ZX%¬V +‡•ÃÊaŰbX1Ü'Ü'Ü'¬V+„åÂra¹°lX6,îîî–K‡¥ÃRa©°TX2,– ÿþ9üs¸G¸G¸Gø§ðOáŸÂÝÂÝÂÝÂ]Â]Â]ÂÃÃÃ?† ÿîîîþ!üCø‡ 0( ƒµÁÚ`mðŸà?Á‚ÕÁê`u°2X¬ ~~~V+‚ÁÁÁÁ²`Y°,X, –K‚%Á’àûàûàûàÛàÛàÛàëàëàëà«à«à«àßÁ¿ƒ___ŸŸŸ‹‚EÁ¢à³à³à³`A° XÌæóƒO‚O‚O‚ƒƒƒ¹ÁÜ`nðQðQðQ0;˜Ì>>>Þ Þ Þ f³‚YÁ;Á;Á;ÁÌ`f03x;x;x;øWð¯à_Áô`z0=x+x+x+˜L ¦oooS‚)Á”`r09˜¤A¤AÄADADÁ:AAP¼¼¼¼¼¼¼¼¼¼¼¼¼¼¼L&‚‚‚‚ñÁø`|ð|ð|ð|ð\ð\ð\ðLðLðLðtðtðt0&Œ ž ž ž F£ƒÑÁ“Á“Á“ÁÁÁÁãÁãÁãÁcÁcÁcÁ#Á#Á#Á߃¿†ÃáÁ°`X0,x x x ¸?¸?¸?¸/¸/¸/¸7¸7¸7¸;¸;¸;¸+¸+¸+ †ƒƒÁÁààöàöàöàoÁß‚¿ƒ‚AÁ àÖàÖàÖàæàæàæàÆàÆàÆà†à†à†``00 ‚ë‚ë‚ë‚~A¿ _Ð7èô ú}‚>Aï wÐ;¸:¸:¸:¸2¸2¸2¸"¸"¸"¸,¸,¸,¸$¸$¸$¸8¸8¸8¸(¸(¸(èô z݃îA÷àÂàÂà [Ð-蜜œœœœt º]ƒs‚s‚s‚³ƒ³ƒ³ƒ³‚³‚³‚3‚3‚3‚ÓƒÓƒÓƒSƒSƒSƒS‚S‚S‚“‚“‚“‚ÎAç spbpbpbÐ1èt NNNŽŽŽŽ Ž Ž Ž Ž Ž ŽŽŽÚí‚vAÛ mÐ68*8*8*828282h´Z­‚VA«àðàðàðà°à°à°àÐàÐàРyÐ-ø¤à“‚O >.ø¸àスs æ|TðQÁG³ fÌ.ø àƒ‚ Þ/x¿àý‚Y³ f¼[ðnÁ»3 fÌ,˜Q0£`FÁ¿ þUð¯‚éÓ ¦¼UðVÁ[Ó ¦L+x£à‚7 ¦L)˜R0¹`rÁäu—í×]®[÷Ûvx‹>`€ßC.ôP`3€` OÀ0'`Ȱ ä Xò„,yB€€wës·>—~~~P¸gáž…{zF€ßv¾ªþCõªÿðMËoZ~Ó2×î›ç€-I€øÕJm#qùDÏðÛÎW¹sßïáó>oÙäe“—MÞ2ûóÓm?ÝöÓmÏïÿüþÏïuxuxuØff›™mfÖîQ»GíϬxfÅ3ËL.3¹ÌäýßÝÿÝýßm’6I›¤ëfûÞÅ÷.¾wñgï}öÞgïù™øk¯™;ÌÜaæë~¦´®ÔºRëJ5²YlÝÏuS±îçÑÿkï¾£¢¸ú?Ž«Ió¤ " "X&¢€)6° ±Å¨ˆ%±-j슊ŒH"¢±F%*DÄn,€¢&AÅKÐk ˆûûcò;gsÖÙg‘-³Ãû5çÜ“eæîÌË~çã̬¿¼þòúËoú{Óß›4éÉŸÓþœöç´øeñËâ—uõíêÛÕ×]á®pWÔYwdÝ‘u¦Õ™VgšK?—~.ýúMì7±ßÄoÛ~ÛöÛ¶š¯_~ç…&óÕƒ.º<èb_žŠ}}ÎoúÜ–±ÌZÒD *`` [¾Y³f9˜j‰¾j·Ÿš_€Bߊôÿ†é Ó¦úì³q)ïçº7òÞÈ{#çý<ïçy? A”ò=šB(%…mÉû¼Ðÿ±Ð!Öë‰ð)´Û«í-¶·ØÞÂiªÓT§©¯wôm›Ú6µm*ü÷Íw6ßÙ¬Ý}ò4íiÚÓ´Ù–³-g[V|¬Ö¬Z³jͪÂ߬z³êͪÆ2jw‹š¬MøG½²{e÷Ê~½½-ÄÆª[þYÆŠ++®¬¸R‘£¹o̾1ûÆèboKù¼Ð|$lÜ¿qÿÆýbÓþ‰ýû'< æ(•þÑI?‘~"ý„ò¬¢,dCȆ Âh¯ø§žóöœ·ç¼-ö‰„QÞ#R^TÀ¸úÕþWû_í69lrؤ݋_Â=O?ýôs¶z«~‹Â¥Cá^·Š÷_¸?øJø•ð+áºë³ñŽÍ?—p7¡ú¿¯­Ð±âÛ’ßya¨c¡k9ÇsŽçëIÛmo´½Qñ^å?É’ÿD¸_S»#A¸W[ûíLá™Â3…ʱ·vUä}¨úK´»Eõë¹Úõj׫]›ÕkV¯Y½Šìaáþ]å¾ ÷âwÑýE÷Úó+¾‡å¼(ïPÿ÷‡zxèaýÏÛr::ºž ²Í²Í²ÍDè­t6½^߀€\Ybiªcú¼˜;§xNñœbíö_x@´ðøD]ôÙxÇúÏUZZ:âË_ŽøR“ý\‘ÐQ»Û’ßy¡Ïc¡Ï˜R”R”R¤>ª©H¯¹=r{ä&<ÐÛT/^¯ŸgoŸ½}ö¶~z(<*V»ª±ÀÂk´µ‡=Îzœõ8+<{ ÏŠ>+ú¬ÐîT~б¼Ï‹×›¯®Û]·»n'<¬[×#Vë—þÑ)ZY´²h¥æÿ BsÂo:¿~#üF¨®¹¾m}Ûú¶êï`&•00 á°š\Àî ‚–¼Ì¼Ì¼ÌâÈâÈâÈÛ»oï¾½ûÇ?~üãÇ?z<êñ¨Ç#Í!X‘ž—÷œðþÅdódódsáí‰Âx…GŽ2:D×—ó*gµÒnŸ8.p\ ù:ë¼ÐÖ|õ‹û/‹EõÂÝÞRˆ÷èÿØHl6¡6¡6¡šDõ­ßoý~ë÷U×Ðde“•MV¾^8]¾Å(#&FopéàÒÁ¥b—±”ß8X‘­¨¿X6ä×!¿ùUkœpjÀ©å]sZRZRZ’Ø:•ïàÔEŸ åLµ3ÕÎTÓݱpW¸+ÜÂ÷u7¢*¾­Êp^èçXT|Ž,|÷‹»_ÜýB8—…{X#?‹ü,ò3í†pªæœpþA±õWû»ÚßÕ®ø'ÞrcË-7н«R“­¸ôséçÒO¬·.&\L¨H?WÍ^5{Õl±õ÷ÿ¨ÿGý?ÒÖøÔîo:}ÀBÈTÞu*ß+,¦ž=ÿzþº<èò Ky÷À®}»öíÚ§þ~eÍûl\ç…vç+õkðïäßÉ¿“Cj.5Þ£#øÕþWû_í•ue=¯÷¼ÞóºØÏ.k¼¬ñ²ÆbŸý@·ÝtÓõ|Beä˜1á}ê/c Ñ«ø¶„÷jëÒ³2õýW¾ ¤¼k¾x-ðZ .‚ SÉ{½£¬Éš…NV|Dén[•á¼Ðÿ±Ð'á.±õ—×_^¹"ã¹4´4´4Tl+ÍÿjþWó¿´{¹?å­”·Rުȹ©þÑâÂ=+ÒCáNñ9ů^Ö4ZÓhM#míþ¾Óg,DPåíáu»ëv×íÔ¯yîÕ¹Wç^}½ýs%üJø•ðŠïc±øÄbõSÖîœ,ÜQ'¶Å„q ãÆ©_ƒò]wª„;§¥ðÛGÞ°p/oy{XVV¦~Í»w'îNÔÅèÒ|?ãy¡ù±Ó|={£öFí[ðVuý‡ÓÆ~t4?#”ç:á)Á;ƒwï{Ö…>kS_y &Fl¶ålËÙ–b°„Gjw‹Êw/ik‹ê/Ã%›'›'›W¤ÏÀÚú\1kbÖĬÑÖXÒݶ*Ãy¡Ïca(ÂCD+ò¹b«ÇV­®ÝËWd %Wÿ³m·yÜæ±úK!¢w|+ïVÞ­<]ôS¸Û°ûÁÏ Í÷€v÷çÎ8à¬Ï¾ûÑQ%¼«XìÙý&ö›ØoâW¾:ðÕÕ?ÞÖœ5#kFÖ }Î'Ô@€ €€ëÒ±KÇ.Å.`¥f¥f¥fiw‹ê¨þ½nbÔ_†«øåNi>æQwt»xìⱋÚí§.¶UÎ } )î+ïç¢Ý=N¹¼ûSùþ6±Ÿ]ôÉ¢O}¢ùžÙ7fߘ}cž-x¶àÙýÏ3r €_o¼ézÍÚÚÆx^èî÷ïýþ÷ûßï¯þÎ{}öÍØŽv˦×ÿ|B}ä˜1¯T¯T¯T± XW»^ízµ«v·xi᥅—ŠmÑw²ïdßÉÚ½góÍw6W¤Ï•-ÖݾºYõfÕ›U¥¿­Êp^èóXhm7™(L&y™y™y™GžyzäiÜ©¸Sq§Ü\Ý\Ý\uqžúðá7B:1¶rÄúüä÷'¿?ù½"[YÒnI»%íÒO¤ŸH?Q´²heÑJýÏÆKùlªø~0ÆóB×{Xý:í«ØW±¯ò Ëƒ.ºèºoÆ~tļðáÿÂ_óíêâe •á[€2```Ä69lrØ$vë±ícÛǶÚÝ¢pTl‹ÎÎÎÚ½_æZæZæZ‘>këså?É’ÿDúÛª ç…>…~F]¯ì^Ù½²ÅúP+§VN­œòöGyÏKrÔ­¾çç.œ»pîBÃs Ï5<§­­ ÷_ž~yúåéº3ÀR€÷¼Ðá6Q˜(LÔ¯ù“ÜOríñäJIDAT?ÉÕuߌýè¨w1ábÂÅ„ÚiµÓj§‰mQøÓ [.l¹°ÅPßv¨/€<#foo/v«$¬$¬$L»[4*¶Eë0ë0ë0é\ˆ×dýÀåø\& …‰ô·U)Î } ½È¯’_%¿J£ôFéÒÅz’4(iPÒ Í×YwdÝ‘uGJ'J±bÿÄþ‰æ{õÏiNûsÚŸ>|jV­YµfUíöç‹9_ÌùbŽpϱæU}n±2ÀÆ~^èn_ ¼x-Ðâ{‹ï-¾½­T¼oÆ~t*~GõÕ{To]ÿö!•000búºJCKCKCŶhžažažAl¼#J:qç…<Ž…v{2¸tpéàRÍצþ>3ýSîÏëí™(¯(¯(/³g=Îꢇ†Wõ¹ÅÊûyaØ=ìÚÙµ³kç§iOÓž¦é¢oršµT ¿ý;ùwòï$¶Å:ÓêL«3 â€ €€Óÿ£n¹=r{ä&¶ÅÆ»ïj¼‹ØxG”`á!ÕÀÚÚóÆ~^ègÔþàô§?¨YP³ fêV”ÿ¿vû&×YKØŸº~2ßâ”#Ö¥c—Ž]:Š]ÀÚµo×¾]û´»ÅÔ¬Ô¬Ô,õwlGèÈya¼ã9ÿIþ“ü'b=ip«Á­·4ïUhŸÐ>¡}ÄÖö‹û/W†ßb!º˜)±Sb§Äê^sÝîºÝu;`míyc?/¤37¶êÛªo«¾/ü_ø¿ð×Vßä7k w-·¸Ùâf‹›bÏu{¬½ò‘åú[@w€ €€Þ)v+fMÌš˜5ÚÝâçÛ?ßþùv±-ÎøpƇ3>,ï: €¥C¡#ç…±gm½MYýHH)J)J)ªl¿5Š#‹#‹#Õñ–l¹Qÿ󪘔·RÞJy‹X[{ÞØÏ }ÎW………šïóŠ÷M~³ÖÄŸ&þ4ñ'±ù\xêCæÖÌ­™[kV­YµfUÕ¿)<â^»ƒ&•000bÂ¥@± X~~~ÚÝ¢p¿‹v/MK‡×îñ%•000bº<èò ‹~.™åÏ9žs\lýfyfyfyÒ S €¥ù¹t·-Î cÏÚ:vܹ=rÓÅÑ#v÷žòmb?+vŸœ`Nñœâ9ÅÚêgANANAŽôà§iOÓž¦éâ]¡•96®óB:ó•úí w©V¶YKŒð0çççÕ5ûðá7BuÍêç%›P›P›PýœGÔ@€ €€ÑSK[÷‹|xäÃ#ÛÊŸ>|€ €å¸s^Hy<ë3ꋘ17bnÅûœ_%¿J~±­´?Úþhû£ê{û<öyìs±5tœßq~ÇùÚÚÃÇ¿9þÍñoÔ?Z}okåÔÊ©%Õl^ºy鿥ï缟çý<ïg`]œÆr^Hg¾úsÚŸÓþœfÛÔ¶©mSÓ×"¿YKÌðµÃ×_+`g›e›e›‰ýìž%{–ìY"Ö«î/º¿èþB~¿õt˜=õÙ«ø%­µÿYûŸµÿQ¿æ#O<=òôõÖO,r 9/Œw €_o+Ær^Hm¾2­ùÍZªÔ?ÂZx’&=×õL¨~Í/뽬÷²õ0vÀÀ@&Ô_̪V;­vZy/™iqõYÑgEŸ¹'¿8±‡T© ýo‹óBjÛ’æ9[³ fAÍ‚Öl¢0Q˜h²Î¿jüU㯃ßüÎàwÄÖìýµ÷×Þ_kÔg…‰ÂD}?›¬l²²ÉJ!*ï( + + ›=5zj´ú­dnÍÜš¹UýÚúÎë;¯ï¶}lÛxWã]wi2Æ%ŒKw1ábÂ񌌌‡œX|bñ‰ÅK=—z.õT¿á!Éêvªjí³µÏÖ>ûÁÒ»9¿ÿöûo¿ÿöj׫]¯vúYYYy³àfÁÍ‚Œ½{3öƬ‰Y³Æa“Ã&‡Mê×üñÃ~üP“㾣ᎆ;j> }½íëm_o;9úäè“£…·œ ÷ç6Ëm–ÛLøÔÊœU¶qÿÆý÷ëâ7š±œR›¯®„_ ¿nñ½Å÷ßë.6®£Óob¿‰ý&ŠÕ¹_Þu “ë­ð ]Œ¢I;&혴CxD¶0£ ߨ5€q!&²"|·±³³Ó] (Ü{!\R¬l—Ë5_'°Ô¶Åy!…mU¼?áÂ;„wx½5Ÿ©v¦Ú™jöOìŸØ?ÑÝH!¨.ï>=ªÿY¿“'ÿNÂÝu´÷AjŽwëç7šôÏ iÎWº¾ØXŽŽú¢1m´ Ó&èîˆëÿ[µ0ÀÀ@†„o8 Ï5<×ðœv/  .Gêçr¶®×O¬Ïca¨mq^HíX¨7çí9oÏy[wâ…ŸusususÕîHî5î¯H‹V­,Z©ŸùA¸‹îÉïO~ò{yû)<¦Uù±g–g–g–÷Åœ/æ|1Gyëî7š±œR›¯„§Dè'8”æÑùýüïç?/¶fwww“Šva+uGÖYw¤êVêÛÖ·­o[Þ­Ì ž<3˜È00­ü'ùOòŸ÷^hþEUÂ{R…HFx¨ vûIL¬Ï ¬œÒ9b¶·ØÞb{ õ½ZÒnI»%í*²•g ž-x¶@X[iu¦Õ™öz#Axhê_‡ü:äWá1¡ZÛoJwÙºvvíìÚY[sBMMMjVjVjVÅ{+Œå½ñz½rW¸+܈U{%ÜÁ/¶kk+Ò?/¤6_ ïäV~0»îú&¡£c¢0Q˜tõíêÛÕ÷÷W­YµfÕc]: tjÕ·UßV}¥7Jo”.Ä`Â{æ„ÿ?øÁï ~gˬ-³¶Ì2ö ^êû/ïËy\¬ä¼`ôjB9Âzxèᡇ]]]„{»…‘ Üg&„”Âc¨W®^¹zåjá=Ó:ï­R}?ú~ô}áÎ]á;áñ°B?…÷’ c¸åÆ–ÆmlõØê±Õ/-¼´ðÒB]ßg/l«ÏŠ>+ú¬¢k!¦þÙ„K?—~.ýÚÞh{£í±MÆ6ÛDxW±<Î)] }þF3‚ó¢ÿ¶•ÂÑÑÿ÷+ínQùîŽó;Îï8ß9Â9Â9B˜E…¹+dCȆ Â,Êï}`\€ €@¥Æý çÊ;¤6è!8/ÀÑÑÅÞcŸãEL @&€ €È00™ & ÀÀd‚˜€L ``2AL @&€ €È00™ & ÀÀd‚˜€L ``2AL @&€ €È00™ & ÀÀd‚˜€L ``2AL @&€ €È00™ & ÀÀd‚˜€L ``2AL @&€ €È00™ & ÀÀd‚˜€L ``2AL @&€ €È00™ & ÀÀd‚˜€L ``2AüôL—ãZNhÉ2ÐrÒ@Ë)½/§ ´ül å-¿hÉ6ÐrÆ@ËY-ç ´äh9¯÷å‚–‹Z.h¹l å7-W ´\5ÐrÍ@K®–ëZnh¹©÷å––ß ´äh¹m åŽ–? ´Ü5Ðò§–{Zîhy` å¡–Gz_hùË@K¾–'Z ´hyj åo-EZžhyn ¥Ø@K‰–R½// ´”hyi Ea˜%£Š–ªZªhyCW 0È0È„l`@å!ÛøA·ÝtKÏÐÙ’i …wó6bÞF,ý·Wž÷Wž7WžwŸ7ÐRyÞ=\yÞ:\yÞ7\yÞ4Ì;†å÷vaC½c¸ò¼]˜÷ óFaÞ%Ì[„y‹°¡Þ"\yÞÌ›ƒyg0o æ=Á¼'ØPï æ Á¼Xòo~0òÁÈ#e{0@€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€@&€™(K,K,K<¾éø¦ã›2®e\˸–c›c›cËžPÙÜð¸áqÃ#³[f·ÌnÇ={÷,šQ4£h{Py••0 i·¾¼õå­/·m-ÚZôq³›}ÜÌ´±icÓÆ¦æsÖç¬ÏÙ˜¤˜¤˜¤¬*YU²ªn)ÜR¸…}@jžOy>åù”lÛlÛlÛX“X“X“vµû¨ÝG¦ZÒçó>Ÿ÷ù|Ý®u»Öíºz÷êÝ«wÉŠdE2{*/*/T^T^#`@B.׿\ÿrý™;gÓÔ@‚¢ƒ¢ƒ¢“o$ßH¾Q8³pfáLŽ }*Î,Î,Î<p à@@·?ºýÑíC͇cg5vVö€ìÙ8.PyQy ò¢òUª3[Æod¼Áža†ûªÝ³¸gqÏíYÛ³¶gÕ¹PçB ¦’4úûÑßþ>wyîòÜå5ºðGÌ1ÄÌJ•:+ÕT¾kÿ]ûïÚ?ñtÄÓ5¨¼¨¼PyQy0¤‰ЫÒðÒðÒðë7®ß¸¾"_…;\htÁ&iV?_{ÇÒu7B›WÛ}õW¯ÃG½zV÷±H¯çŸèƒºð®µÝ¬ó…_ömíÙ4dXßfçön8Ö2Ä|Üëm·÷’ÞKz/ÉÝ•»+wG@EÜM¹›r7eT¨„Q ¯7#Õ9k¹Ó¬ýÀ#]×Ù_ZZeü9×Ф!_d·x| ÓÊ·[9ŸxØgøÑm‰Õ}šïíw ¥ÅÆ;óç5ÿq¾ÙÈ Î!ÝG·e›X‘y8®~\ý¸úEó‹æÍçh ×Ê«îÏÍÿh•Ú¸sÏâáa®v1s»;Oj³âËŽ3~“ÔbÞÌÍßZ7ï2õ\¼³[ÇO{,ºçX0pö$o»éí~éyªÖ)ë3õ½©¼{åe¾ÇªYÍÕ^«z|eºeªeÃGý¶Å.wLøøàšu.†ùlÜíúÙЬ ®]÷þ¶™ó¹>&‹_4Ùßaø¸- 溥o®Û…Ê €¼Cš€=É8q ã@y¿æF¬l^½‘éOWz4ñ^ö|ÞðïÚ­PDF†„h«½r°ÿ€« Ú}ØÌÅ¥F][ gÍû6¥ó”ÎS:ZZZq|h¢xdñÈâ‘K]—º.u-GÐkficVgYß ×]WÚzļBqútHˆ¶Ú—¶§zÿv|ɚ˾¡“ŽÚÔäÝòÎÕ©7Ro¤ÞPTTä(`Œ•—}ÝàÌÞ½šïšn½*Çÿ—Õ–™ùëÖ>­­ÖÛlñvlp^>d匵ÛÚoìNå@j•—y¸elÍÙ]ºLk٨ј£©«›…Î{éRË–Új£W_ìàu„õ–jMÍ[5ôˆ?•y †4:ThZhZh:Âz„õkM¾È†NphZoFf^Ë}ßÔnЫy[?tI»^_ŽjݪigÍ¿‚®r¸Êa梲'dOÈž ù¬}'ÒÎ)ëîн‹[ïÑnÜ«y›ýÓ÷ï´4hÖ-TÓhïÚ/´ß½=÷öÜÛÃ@Ê•—õ,OËÀ- gU_}K»A¯æm« iGã‹.šBåÀP•WHøØË œ&Oïߢ«vã^ÍÛQ³’“Üyöô°ù‘Ê €1"†4Q6:q&îLÜ™8M¾¶kÓìdÃî7'ø!ÈÁP¡¯X[;bHð{ÉŠÐï<=4ù,Óí§ÛO·/T:©tc€â3ÅgŠÏâ®Æ]»ªÑ{ž¾™3È}V‘iÆ[í«*ôkïUÛ—ÝÆ|z«! ß×èâ¬ùaóÃæ ¤SyÙMnw¤ç^×e³Sm úе-Öô>±Øíòx«¥T^t^y}¸`ÁW¿Gefé¹ÞP¡¯X;eqFj‹emwEL¶{BåÀXCš€-Ûê¾Õ}ëÿxœW …½gÝÉWNõ_p]j¡¯Xû2%âapIâ­ööÍ6«ÿt^^^2e>Êd<•SQaQaQaÓ>¦}þG¹¾à“1£]þSl{<²ý^©…¾bí³{ºµïûCÇvSÕºØÈØÈØHEº"]‘Ψ@ÿ•—ÕC—žµ¼k/6Ù±Cj¡¯hüríÅS™ÎÅCó¢&QyÐVåÕ±ä³È†ÿíw®ž—­ÔB_±vò[ÇÞmñ^‹]æ['Ry2`H0  eŠ2EÙ’€%KÔ%MÚÓi³GUc }ÅÚ»Û‡µ>Ñqcg›\õŸ÷Vß[}oõe€•Çã:ë<®ã˜è˜è(Z¢;Y7ÜR{ßÕ»ÉKm%ôk‰Oón¥~&;n츱ãÊ––--[Ê@?•WÓócòÖ4–ÐW¬õ]¾âÆÞôºÏ[Œ÷Nå ¼•—MµF÷Íߺï”û4c }ÅÚOŽ®tYKå@š€!MÀ@ÅÜVÜVÜžýÖì·f¿%ö´ÑpË æ[~ï8°oÐrc~UÛ„휚ÕTÿ<72727’ÁÈÛƒœ9rÌNš4;)6ÌqqÂihÙæ“ÿdìѯrû(õÐô¶‚ø™ØˆÞ‡40n`ÜÀ¸²še5Ëj2ZÐEåU«ÄfxýbŸ˜åßìZlìѯjë™ûõܯç~Íø â•W£Ó="†öüïÚâSòŽ~•Û–;^ÜnMåPy)á¾Å¡©µ¼£_Õ¶GíèåRy0,`H0PnÇß=þîñwž\F%ùÜtÌQ”EF„WžèW¹ÍM_ø¹Øþ y'äwÊrËrËrK€±}yôåÑ—ÅÎ÷ÓS×ïô‹¨lѯr›89ªA³åbûgÛoÛ~Ûö£€×«¼;ö\6ìl`ີ§OVžèW¹õÞ°äLJ•@å9q›uÓk•-úUn{.›oïàGåÀP€!MÀ@9<Øÿ`ÿƒý¢_¸mšû6rS ŠlÒ rF¿Êí…oû­õß)¶¯»,vY숌WRFRFR†Ø9~¤ð›É>Õ+sô«Ü.®>.ÄEôbÍÕ÷®¾wõ=FšW^ö!½Ö_×út×ÊýþënàÚ î'­£ò*gå5ôÓ }]Ý+sô«ÜvÞ3ù³†«©¼è0¤‰ÐLŠ"E‘º8tqèbÕ Ýë°­•ÕW¥Gl ö"úUnžî>ÄÛRìËw¶E¶E¶ƒ 0.yo佑'úæ¹uçÖo^…Ð÷_í¦ÓŸ‡´ؽk'ûŸT÷X½Ôz©õRK»—v/íÎè@}åeÙÃáQÓ%­É̲&úUn›w›z-¾%•Py*¯Þ«Žk@èû¯¶Ï¥%-½†ô𶉦ò OÀÚ²{Çî»wû0fKÌ–˜-uü«ã_Ù3¯‡Ðì*D‡”)ľvß;÷q“6íˆ{ÅÚ…Éa.‹Åö^ɨ’Q%£c€˜®˜®˜ÞÚ¼µyksÕsyر^õŽQ”>Eèûªöïgéí«‰Í„±ícÛǶgˆ ¾òò-þªéþñĽbm“©ý~ûÔ—Ê wåå“ßgT½”¹Ñ—.ú¾ªÚ—å¹†Ê €>W\Yϲže=ÅfoÂà×C üùùùbSÏ¡ºÇys×ïÿh_l‰p þÜyKgfªûðë[_ßúú# ¾´i ҈͇O#Žío·… W}{^‘äà/úVàÛ5n׸]ƒ‘ òRÕÖ»½PBÜŠ´sâÎOñú’Ê €îëapy¯64mhÚPÕÉ"j½O®ã9âÛŠ·Æ}2§mm±Iù¥ÓK§—NŒC@ ü&ùMò{Å#È®<Ûq6àOBÜŠ·jÌ3oÞAu¯H^‘¼"™¨œ•Wã&= #¾ÕBë·må C!T^€ñV^ã.ï«êÞ‹·âíGn‹&5ù”Ê €.ëa°&€WŒ Œ ŒR nÝØÕ&œÊ €vKa°2`à_L=0õÀTÕ)`ݯ!¹¿$²Õn[5"<¸ºØ´«¬¬̘ %ð÷ÀßW=7Oý©vÛîÀÚmÙ'ñ Uý\«ž®zºê)£Py*/×z3çZÙj· h¶¦ó‰™T^€qU^ÓNyŒ!Ön;T±ñC×ÁT^´‹Xšƒ €•4*iT’êiŸ—=ð~ПD¶ºhÛ¸·o£ºÏï/º¿èþ"Æ$ Ï'=ŸôüoŸrÜÕ°oíu† Jå?µ;Ý.^õsù9ø9ø90&•§òò9» í‘­.ZÛ´@¿Ð*/@ú•—õÙF_Õ*5Þ·íJ9žyù—¿={QyÐ.`髜a00ðÿN+N+N‹êeŠˆ¤às„µºh“SB£=íU÷ùaïÃÞ‡½˜€þ]q»âvÅMõ¬\ÔíÓÝ.ÉÀºk=Í«ý\õÓ•L)™R2…‘ ¨ •WÀÕµ#Oñö_´n'Çý¹äo*/@ú•WçA“®4œC¬»ÖfAãs*/ÚBl\*OL üãéܧsŸÎU=±{|ã8Õö†ÔBÓ?§ ÞÜúïËýc]Lû¬pþÑΧÅÍzÕ-[Æ›]¯™îQç¦Å›í6L¶~¾Ü"h€kúcÛO޶õ—f|sÁ€ƒœ_1¥‰3„‘ èß¶kÛ®m»¦zVžXýÝß…Ò €ÏTû>¨ÕØð¡;í;6J·kk~È2¾öÓšég]ß±jå5l²ã¾Ç¶‡~më/åxN“éNC^ñŠyò02ò®¼l¶{ç´ë#ÑG(ßZuª§ëö‘mçb½Ù3!È­VtÝ{¶ïלg¾®öS‹¯­vþ²¡y—*x/^27e™4?…O³e S]©¼éW^#Vo¹Ó4H:qi´Ó…(¯ôj-êÐd¸ëɶžu6XÅÛšýYk³Å‡5ÛÚýÐôýÚ mnøÝS:g´i1Múpð‚1Cí§ò -ÀÆKÞa00ðÜs?ÌýPõdþªj›MoJ'.=z§g'Ÿ@Û¦µ{ÔjmZNy™ÿº#µøùÈá+Û/WímGËŽ–-™€þM7uÜÔq¯x<`ëý'Ú„K3®f>£fõs`ã]v ó§¶$%ù§I3Þû^Üì–oªö<½FzôŒL€¼+/§Iƒm¦t‘ZhÚ*-aÃÑ™ÖÓ<«Ž×¼òjš>&ù‹_¤öYü³VWϼFåH¿òšÚ0ó`‹£RJ§=yÈãsg«€h«CšÏ}3—•:v‘r<Ø=ñ±s&•m!–ù…ÁÀÀ?Ž<>òøÈcÕø§_z4ð^,… ôïMÖµûËij˜Ú¿}sØd5­¶ó—÷Zl:ò´Ç_>oÏ)ö³qŠî þ÷ƒR%vðÅȰ± ”‘ è_»œv9ír^ñ8¬5'V×f,˜v.`´‚R!ÖzU³À4Ý4êòô°}ÅÂ]ÕÏÒðœåhóÒ|t@-»œºþ\†¤Àü¸ùqóã¯8ÓOâ#µØ,Ï,Ø4õPóøo7áï(¿Xøïmm{„IÿÍÁZ²j[ýÁv·™Ýfvcdä]yµL]xu{éĥ ùºû?K¬yÜ,¸ùá髟 ÿ[ùïÿS©Í3_Wû©òç’Z¤mµßeGG*/@Ê•×Üa—6µt5lDÚÿÞWSœþuÅ)ôƒ)Óf *vá»í‰ˆx»çÒ€§-Éòðð¥ò -Àòf¼a00ð¥ë—®_º^õD½;epHëRˆH³f|xÈ÷ÀøžÑ®_Ìñ¿ç¢É½ª!±4ïÔ«éWöÅ\†¤ùµÕùûF¹fRˆHUàOr»ÿÖ S“@Wù§:H«(µ¸(7ãûö¯¸˜2øóÁŸþœ‘ wååûùŠÃ{¤”ÚÞ¼Ñe¬Ð·úgÛìï^O“@WùÕý²¹«_ºÔàú=Z;|`NåH³ò²ùÉÁü³"R÷œNmê¾ø§´ ˆ¶:¤ÉOÍiŸóÐkŠí§æW¤ÏjrÆßó•ÝÍçÀre\ap需4=ÞýIqÛÒ¼kV}”[æ¼aÅ•ÖMWK?ž0ßs¿C7Æ M­Ó[:[×”f|äé7S}ÞÖè »Qq—[Úþÿ#ôíÔv–Ú}À¥ïŸxìÈxTN~÷ãý, Ô"½q3—®Bß”ïýýï vŽt¸ƒ÷Ý¥ßï¬î³nù_»Š¥7|#ôô+Æ MM:û|kù«"Òz%ŽýÌS…^ t\õ‰ó?ó†&?«ú¹¤ÏqÈÙç5†ñЧÝ;vïØ½ƒüçCζ½%Í8¿Ê‰m·®ÕÃß;qí‚·¹Ç϶ôprè;Ïå]»OëÛÖþ¡Ö±Ï%µÏ2µÈÛ®I:ã ¦Ž>þUlŽH3ÎËLK º£ÉÏ^·û±sàw¯š¥¿h•õ[ðhÆ rj¶jÞ‘ÿJ!" HýîÁÉ•Ê}ói¿ìTê©E¹¯×6jÓm×' o€49ÿxÎê¥ïŽzæ”g®r¯ÆßÝÅ}»ækT˜8ßùGå5H.Þ}~—×jÆ@ŸJ¶—l/ÙN HˆÔîþÕþ£K­ªu·Ižíçfy5뙦ŠõÜãl½­}üÐmIƒåªÊÀ4'å;€‹#olR“Ÿ}¶ Ó¥}ø«æCîÀð¤s°OvltZšrßüO¯6ͼ+˜;€)“ÂÀ“Þ=òQó}ʽ"aÍ×0zþÝn)¯;€¨Dw Ï@ga‘Î26`lÀØÕÓRjï¶Œ7»^óŸ;eÝM¬K,;Ïû¹•“sË´¤®¼fä6 ŸQ:bkpKá§®víøßa‰ÀXÞÌÈdaÑÿ¢z&JùÀšß|³ uNP[á§jåÔªfzÿÿçC©¿¸KD—ˆ.ŒLyW^Òy°ÿêogeºü«oa+¼÷Ü—G,ö`F& ‹*/)¼xÎîóiÿ¾;vBØ î9š¯aðo«k;¿”r,ö`*/mÍçñÿ‰ÿOüØ3ò[öLß3}ÏôÈj‘Õ"«iý ¿½š·7ÞÞx[õä¼|&ì\Àh)D¤]::DÕûAèÕ'¹nwd¾¬±;ø7õ±î•ðþÃ2¥Բ˩ëÿª~Ð7óãæÇÍ¿â|L?ýmˆñ¾ø@·•ï·<úÿÿ€ÆÉʲ³ÔàG-Yµ­®ºçgv›Ùmf7F&@Þ•WËÔ…W·7NPªÜ77gù¯qÐä§ZnX¸yÛ §QƒJ§Ø;ø¸þÔoM×Õ8]C:ŸËj¿Ë ŽT^€”+¯¹Ã.mjéj؈T¹?¿IpvÔüg?˜0³¨ÑU)ÀÓ–dyxøRyбZÇž‘!¸Ù³%f‹æ¡¯ð÷õú*#þqäñ‘ÇG«ž¨?ýÒ£÷b)D¤6¡ækÌÎ ½:5 ÷8?GM~ê@·nþ?ðh|12,$@l¢ddú×.§]N»Õó±d͉•Á5¤’Ûý·™šülŸß°ó~ªßÄN3í6I-¾RgG£€Ýª{~ÍÆ5×lddä]y5ß9½Öª,iÀöÙ«öm©ÉO5ø#tlø:᧬âœo·H’ÐÀ-×}qú*/@ú•×ì'9á^ý¥;/ìdu[£»‡Ûç<ôšR?Óefí.R€ÇÝÛɽ•m!–ã }•ÿÈý0÷ÃÜUOÚ¯ª¶iÑô¦‚R×Îuã,Æ ½ÚÖ¦³ŸG˜ú¿{÷ Ö­m„7K9~>røÊö¯xKqGËŽ–-™€þM7uÜÔqªgåýÖûO´ —Zl–glšz¨y|Œ·›ØOmk³(Ø#Lù§2·®qðµ’Nô+´{ß‹›ÝòMÕ=Ÿ^#½Fz F&@Þ•—Ó¤Á6SºH'.mê3êyLü?;iÖ¯Vµ¢’VûûÞn‹&×63±èkå$üPÃ_>è4¸›ðß’x´uÖêê™×¨¼éW^SflqÔ°ixø×AN³_qw²Èßþöbˆ×½vÛG:Ú·×ü§ ÕvO|ìœIå@[€åA¡¯2`àOç>ût®ê ÜãÇ©¶7¤”ŽøÒýû†þùèO,öš×ݸ¿Ãèæ›??pIPò½‘Wiãš¹µWŠ¯Õœb?§8«/jy×,ÿ÷ÝR €o.ðcó+¦Î!1Cb†02ýÛvmÛµm¯¸8xbõw;|J-vØd ö?sH”×°ÉŽû¶^y²åóÔ¬X'/“O­ÂF5^¨ü÷;H«(µ{…vN“éNCT÷|Þƒ¼y™yW^6Û½sÚõ‘Nú݃“+UûÙxu¯—#¶5÷œº`åIÏ)sÝøŽsò’™Ìýê5·ûçò_­žu?ª×]joöi¶laª+• ýÊkÄê-wš8(­qɤå+®&5{Ô!¥nrïu g7i=Â~ËûM->ªµ¨C“án Ú/«k!üÛ1N ̯H9^0f¨ýïT^´…ØxÉ/ôUF ü¿ÓŠÓŠÓb§t™"")øœaƒÒ‡Ÿ¼ß&Û9¢ÎM‹75ŸŒ~ÕÿÝ€å ÏYŽ6_ üÿCû84¬7I prJh´§½jÏ{ö>ìÍÀôïŠÛ·+nªgå¢nŸîvI–Zœ±wõHŸ[uGZ9™P?6«çØßÒQx×áöm^ñ°ÙE÷Ý_Ęôïù¤ç“žOR=+w5ì[{Ô`áÿ ÿ=¸´Ûà}¥Ûµ5?dñ}mïšK=¹·ê?ïç‘«[fóm7WšÑïS»cÑíâU÷¹ŸƒŸƒŸcPy*/Ÿ³± ÒIè½¹J1°sôˆKêqÿƯºYQÖ—ÌFYά³¾ÎŒ¦‡[öm8¾kã}ïÄ=Þo'µþ ­mZ _h• ýÊËúl£¯j•J'.zÕó¿óüLœ6ù﵊·8m}Æìóº–õjF6 o~ÄbvçˆI÷Λ5õÌ)Ï\)?zæå_þöìEå@»€¥¯ò„¾Ê€90õÀÔSUOõu¿†|äþR:MVÿg±?•ÚßK¢F„W}Hõ`Å`Å`Æ$`(¿þøŠ‡b=žúSí¶Ý —Š…¸åýÿÒiÙ'ñ UÝÛ«ž®zºê)£Py*/×z3çZI3@Uƒ_ïO ö8ëfk:Ÿ˜IåWå5ÝádÇ©Ý;+èªÆ½Ò¼÷w¨b㇮ƒ©¼h°4UÎÐW0ð/ùƒóç¿â‹ Ë¶º}-ºJ':•G{êzïµ~Áª{{ÖŒY3fÍ`4†µ©ë¦®›ºªž¡ÛßX”ë#å0ÕÛ#»¬´_¤º·¯]ºÄhTžÊ«ö`»3“¤cëùfô°õ¾T^€qU^aVüäô¦ÔTco=ÿî>Õ&œÊ €vK¡¯2`ࣣ£T'‚[76šJp«­vÐ[M§ØßUÝÏçÏœ?sþ ã0¬{‰÷ï%ªž¡n6Mâ,®(ÊNŸ$¸ÕF[0ô¨C;±/ /ó^æ½Ìc4*[åå3ayÿ]~·Újë· zÖõ•`\•—í0§Úæ—æF_º@p«•‡?¿õó<Ï÷¨¼è°aúŠ!^!mhÚд¡ª“BÔzŸ\Çs·oûdNÛÚ¢_»^:½tbRà7Éo’ß+ÞJuåÙŽ³ßV¼ÝPcžyóª{xEòŠäÉŒ@@嬼7é¹hÁ­Z¿m+ ¡òŒ·òwy_U÷^Ä·o?r[4©É§T^tXÿ}5A ¼Â³^Ïz=ë%6M…÷õÚV]Võ=LåȤòúlÆ¡ÄæžD¹¯×ö?ü•›Sg*/ºC¬;„¾A ˆzØãa‡=Dÿ…๛´iG [Þv–ﻎT÷çl¿Ù~³ýu€4m˜´aÒ†W<ެ·Wˆsýd¢Üò¶EÇ3âÚ»‹ý~¹RåJ•+|CPyý÷ø«¦ûÇè–·mØóüp*/@•Wów;­·6!Ê-o;ËæŒ“ça*/ºF¬]„¾ÚÂ/9à˜Ÿ0?a~‚ê„2ðbÓaö×t5o¯Œï?&à”Øýh⣉&2Þi*ö*ö*ö;Ó×~»Ìg=±®æíççF{8ÿ º'û?ìÿ°ÿCÆ€ÊKY}ß +]wèjÞz¿¹èòŽH*/@~•×°Ý›V¸®&ÖÕ¼íØjB½'©¼èpÅúê0ð?äää‹M1‡>èçíE¸«¾}±%Â%øsç-užY˜©îïo}}ëë[Œ4@úÒ¤-H[ 6>8¶¿ÝÂ]õíyE’ƒÿr±}x»Æí·k0ÒT^¯¸û-bšKüjÂ]õm@Âwßœt«ífçÑè• ×Êkfé¯Í=îªoÇ(vý·Ù`*/úA\q»wìÞ±{¡¯vIéÒ!¥ƒ~½var@˜Ëb±½W2ªdTÉ(Æ`¦+¦+¦·6omÞÚüÿýX¯z Ç(ÊNŸ"è}Uû÷³ô‚öÕÄfÂØö±ícÛ3ÄP_yñ8hõm“©ý~ûÔ—Ê wåå“ßgT½”¹Ñ—.ô¾ªÚ—å¹†Ê €>W\Yϲže= }µ‹Ðð:„"E‘º8tqè+‚L¯Ã¶VV_•v±%˜»ÿÕ<Ý}ˆ·¥ØÄm‘m‘mÁàŒKÞyoä½!v^¯»8·~ó*Ľÿj7þ<¤ÅÀî];Ùÿ¤ºÇê¥ÖK­—ZÚ½´{iwFê+/Ëš. øhMf–5q¯rÛ¼ÛÔkñ-©¼€ÊSyõ^µp\“âÞµ}.-iéè5¤‡·M4•}"Öåû€ }+Ž(‡ûì°_ìËw¤MsßFnŠA‘MCý^ø¶ßZÿbûj±Ëb—Å.Œ(Àx%e$e$eˆãG ¿™ìSèWhWârYl_]}ïê{WßcD yåeïbÑû``ýu­Ow%úmY{Áý¤uT^@嬼†~º¡¯«;ѯÐvÞ3ù³†«©¼è0¤‰(·ãï÷ø»b_(£’|n:æ(Ê"#B‚+gô››¾>ðs±ýòNÈ;!ï”å–å–å2–c7úòèË£E£ÍÓS×ïô‹¨ÌÑoâä¨ÍDßø»í·m¿mûQÀëU^{.v60pÝÚÓ'+gôë½aÉ™”*/€Ê+râ6ë¦×*sôÛsÙ|{?*/†B i"^Óºëz¬ë!öårF†«ãð—÷#«…T¯<Ñïåa¿ŒTÿ’ö'vOìžØ1~y( - - õqõqõq;ëï]SâÛ»²E¿«MßãvMlŸÌýzî×s¿füPñÊ«ÑéC{þwmñ©‚Jt×ïÎ…·[SyT^ÊF¸oqhj]٢ߵ£—7>HåÀ°€!MÀ@…Ä\йsIì‹æÀ“M?¶ÿíùèáñícåýfÎìõ¯‰ú ·ß¾ýöí·3€ü<±ybóÄÆ"Þ"Þ"^lH‰_šä)ó¸lãÉÂàŸ¢†Ít< ¶†õÖsXÏ—Š—Š— ´VyÕ÷ÊéºÅÿäêÿf^—wôÛ¢tVƒ5oPyT^b3@øú¯÷9­”wèýÉ…[^Û7ùÌ~4•) †4s[q[q{ö[³ßšý–è¿In¹Á|Ëïö Z.¿è7¡C;§f5Õ_€ÈÌÌd°òö çA΃³“f'ÍNŠÍs\GœpZ¶ùäßÁ?É)ú}”zhzÛFÁüLlÜEÿIPÜÀ¸qe5Ëj–Õd´ ‹Ê«V‰ÍðúÅ>1˿ٵX~ѯó´!ÝfŒ¦ò Iå¼pL„}^ôÐ y^—äýNËÊJôèê´ÕÿˆÕ**/ÒA i"´¡LQ¦([°$`I€ú‚\°à+‡ß£2³¿ô\/µÐwÊâŒÔËÚl÷„Ê €± †4:ThZhZh:Âz„õkM¾¶†NphZoFf^Ë}ß4Tè[?tI»^_ŽjݪigS®r¸Êa梲'dOÈž ù¬}'ÒÎ)ëîн‹[ï1Tè›ýÓ÷ï´4hÖ-TÓhïÚ/´ß½=÷öÜÛÃ@Ê•—õ,OËÀ- gU_}ËP¡o« iGã‹.šBåÀP•WHøØË œ&Oïߢ«¡BßQ³’“Üyöô°ù‘Ê €1"†4Q6z’q ã@ÆÓrŠXÙ¼z#ÓŸ®ôhâ½ìù¼áßµÿZ»qý\M8ÐîÃf..5êÚZ8kÞ·)§tžÒ¹ÐªÐªÐŠã @Å#‹G\êºÔu©«æ³M3K³:ËúN¸îºê|ÔÖ#þãµô¾´=Õ+ø·ãKÖ\ö t|Ц&ï–w®N½‘z#õ†â â â Gc¬¼ìëgöîÕ|×tëU9þ¿¬¶ÌÌ×nÜëm¶ø?;68/²rƉÚmíÆ7v§ò µÊË<Ü2¶æì.]¦µlÔhÌÑÔÕÍBµôF¯¾ØÁëþë-Õšš·þjè;*/ò@ i"ôª4¼4¼4|ãúë7®7­€]°IšÕÏ×Þ±tÝðæÕv_ýÀÕëðQ¯žÕ},Òßë¹Ç'úàî¼km7ë¼Àcá—}[{6 Ö·Ù¹†½޵ 1÷zÛí½¤÷’ÞKrwåîÊÝÅÑPwSî¦ÜM•0*aTÂëÍHuÎZî4k?ðH×uö—–VÎ54iÈÙ-è´òí–GŽÅ'ö~t[buŸæ{ûÅhi±ñÎüyÍœo6ò‚sH÷ÑmGÙ&VdŽ«W?®~Ñü¢ùEó9šÈµòªûsó?Z¥6îܳxx˜«]DÌÜÆîΓڬø²…㌅ß$µ˜7só·ÖÍ»L=ïìÖñÓ‹î9 œ=ÉÛnz»_zžªuÊúL}o*/Æ^y™ï±jVsµ×ª_ÙÄ…n™jÙðQ¿m±Ë>>¸fK§a>w»~64kCk×Á½¿mæ|®ÉâMöw>nKƒ¹néÁ›ëv¡ò oÀ&`À`Š{÷,î¹=k{Öö¬:ê\¨sÁT’F?úûÑßç.Ï]ž»œ£@þˆù#æ˜Y©³Rg¥šJØwí¿kÿ]û§#žŽx:‚£••*/*/ †4r¹þåú—ëÏÜ9sç̆ú’|#ùFò™…3 gr\èSqfqfq怺ýÑínj>;k쬱³²dÈÀq€Ê‹Ê ••¨"†4’vëË[_ÞúrkÑÖ¢­E7û¸ÙÇÍL›66m\ñ¯×>g}ÎúœIŠIŠIʪ’U%«Já–Â-…[Øç¤æù”çSžOɶͶͶ5‰5‰5i÷Q»Ú}¤­Ë }>ïóyŸÏ×íZ·kÝ®«w¯Þ½zW‘¬HV$³ç ò¢ò@åEå€1"d¢,±,±,ñø¦ã›Žoʸ–q-ãZŽmŽmŽ-{@esÃã†Ç Ìn™Ý2»÷<îyܳhFÑŒ¢ì@åT^TÀ À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À ÿGWAú§à%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/pairs.png000066400000000000000000000656471431412030200245310ustar00rootroot00000000000000‰PNG  IHDRŽãåXgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Üj¾IDATxÚíýyœNõÿþŸ±g›KÈÖ¢ˆ,‰"D%¥E´ ï6)IZ´H)mBI‹Ê)YZ¤¨êmÍ.Ñ"‰ìKcË63¿?NßïoÞßéòf0s¹ßçvë6·×ë\gyž×u.]y“’’’’’3sÍÌ53×Õ…®.tu¡àðÅÎ/v~±³ÞÁzë<ÚÛÊ¡ÜÑ!WV؉0ñ’ƒä 9H R‚””ä”ä”~OÝž®ßìUÇ~Íöóè­ÙþgÍ­d`‹ÿÜ« ª1j÷$ëÔ!ëïUöÚÃã´ç™p58qÎ…j8 Qú{†þOÁï~ÏÜßUàþž®¨˜#²çÙ}³Î'þ‰vvlÑVŽåVŽÞ;=»TãÄÜÏè^[ôíOæþK>ãïôl[“ZÜÐâ†'tª—\/¹^òÿ4Å1AL#Èa¦2ÿs5Èä r* ¸¸À Êÿ)€ø7øÄ¢éî“|¦G‘ð‘¸A¡ Pp܉ëOQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB 'øCRŸcccï½7ö>cõ«ÏXVþ´¸ÓâN‹Û±fÇškŽl)åRÊ¥”sɘKÆ\Òê…V/´z¡RÿJý+õ/>³øÌâ3SŸå5?¯ùyÍÏÎB4ÙôĦ'6=ñ]Íÿïʸîe_sºÍé6§[ê3Udg‘EvVXRaI…%ÍË4/Ӽ̰“‡<ìäƒW¼úàÕÙVxí ¯Ãá¶Âësx­v.ÈŽÀÇHÓ¶û¡Ýí~ØV}[õmÕÃöò>÷¼…Ë.[¸ìá®3\Ï•í¯leûpÍ_¿òõ+_¿†‚FÈúúžÕ÷¬¾g]¿òÿû#àLUJ+ D?¾ýãÛ?¾ýÎw®¸sÅå\þÁåÔ(W£\r¥z—ê]ªw™6eÚ”iS­~µúÕê7ßd|“ñOŸÿôùOŸ?é¶I·Mº-¹jrÕäªGãú¹õ¢­m½hêî©»§î~èÀC:þ™KFÂÚðÚÛéÌNgv:3õuõ®)wM¹kJ¸]£€ìE pŒ¼tçKw¾tçÌof~3ó›°¥Øøbã‹vÿ³ûŸÝ¸k c‰Û Ü^àö³ûÌî3» Ÿh˜mlñ±ÅÇW 2"ü“‘0î-_­|µòÕîþüîÏïþüÓó>=ïÓóævšÛin§U;Wí\µso¯½½ööÚýÕî¯vÞQ`Þ­ónwk¿ßûýÞï÷›ÆÝ4î¦qE×][tí{{ßÛûÞÞ 6ˆ böþßZùÖÊ·VÎHðÜþÙö϶6uËŒÙ3fϘÎ<6BÈ^ÀGÝÒ—–¾´ô¥^¯õz­×k©Û;/뼬󲄄„„„„Ã]ç—ùñ—Oÿuú¯Ó´Ì9uÏ©{NÝÛòÝ–ï¶|çuž×yÞ‘Í3&kš¶aÚ†iþúÏ_ÿùë?ªÁ‘ùÉÈOF~Þ4>Œ{3kÍ–z°Ôƒ¥âsÄçˆÏ‘úžéQúÊÒW–¾2üýÖ·–¸µDå–•[Vniù0„ƒç#ÛÛW¸²À•ÏO|~âóS·çú"×¹¾0S€ìE p4űAlç-·tÞ’º¹Ô=¥î)uÏ?ñðÙŠ¿œøåÄ/'Fê Cߟfý4ë§Y¯mxmÃkžªðT…§*ÄŽ-[Øi‰øàÀÕ#ÎÐíxWÇ»:Þu´·Õô±¦5}l{Üö¸íqéY¾Ì…e.,saøÇ1¯/}}éëKgŽš9jæ¨C¿ªå³-ŸmùlFö³Ý·í¾m÷mê–ðFúõ.¯wy½Ë² 0œ@nzíP?ês4Œ2rÈÈ!³Ïøðƒ?øpaܸ…q›Zmjµ©ÕòªË«.¯:~Âø ã'thÛ¡m‡¶ù[ço¿u¤µ-»oÙ}ËÇÍ=nî‘Ô ©ARƒÃÞéÄ 1Hœ}ïì{gßi‘?jüQã©L¾Çó=žïñ—Z¼Ô⥩ÛÃ[÷› @v“’’’’’rl663×Ì\3s]]èêBWJÝþÅÎ/v~±³ÞÁzëtJ€è°ÿÞý÷î¿÷Ü”sSÎMY?zýèõ£Ãöð&Ì;ÖìX³cMFÚôDàhÎD gýv»±ÛÝnLÏ«Œï”ÔöŒÜ3rÏÈš‰5k&†ÏýM»Ì)7Ÿró)7¿·þ½õï­¿lÚeÓ.›–žú„unX a†¦îžº{êî£QóðÙÃeÚ”iS¦MÚÞ¸”¸”¸”í1Ûc¶Çd䜆Ï9.Õ»TïR½S·‡ó’à <÷ˆÜ#rp] ­¬‡ærކðöªëÇ®»~lêökó_›ÿÚüÃáÁpEâ_$WM®š\õÏœæü3ç/øËÀï?úþ£ï?ú¼ìçe?/»þÆõ7®¿Q•82ƒ¯|ýàë7•ÜTrSÉ´½E§VtÚ·_}ûÕ·_•ì_²Éþ AB¾5 \ÃÑ[twÑÝE#ÀñÛã·ÇoãÃiÃ'õFê £ßŒW)œôzÿ¯ý~í÷k¿?98989HeàØd²}]÷uÝ×µïY}Ïê{VÚÞð†ÛoÔy£ÎuԊЂF -h>+zñºÅë¯û§ãŠàŠà õ!³|ôÀG|ô@¤Þ7'¾9ñ͉%»”ìR²Ë‘­?¼qôŠò+ʯ(_#¶FlØðn©—IˆKˆKˆËúµúl×g»>ÛÕ¼`ó‚Í ¦ngH‡÷xÈóvž·ó¼m\Õx0@&û¸ÅÇ->n±±÷ÆÞÿgöX\Óôš¦×4U%RÛÔqSÇMÿ'ú…LÎ^ýåÃ_>üåô½å •/T¾P«Z½Ðê…Œo+~UüªøUi£ßÔZ,o±¼Åò¬\±‹J]Tê¢yFrxKÿ£JŒ*1ʸ k2€ãlN·9Ýæt‹Ô{Á ¼pÁ¿|½æç5?¯ùùýïo|cxsÔ°% QŠM+6­Ø´R÷”º§Ô=µ?¯ýyíÏo{ãØÇÖü¡æ586Ç9á¾…Çø{³ß›ýÞ,œù”ŸŸ°þÁúë¬_°~Áú±…c Ç®0µÂÔ S+õ¨Ô£RK^ºðÒ… Înpvƒ³sNÏ9=çôìrî"µHRÊ¥”K)·¿Íþ6ûÛäí™·gÞž‡^>|:ã„w&¼3áï?øûÁ?ù¡ÈE6 Ø0`Àĉ;wì»wß½ûî «Þnôœ+ιâœ+Î]yîÊsW¶ø«Å_-þ*[¥l•²UŽFe†ÔRkH­´íá8|&ᙄg²ýCO„Ή)¼"MûuÚ¯Ó~ýøŽïøøŽŸfý4ë§Yzo轡wx“á“?8ùƒ“?(ñb‰K¼X÷ѺÖ}´ùþæû›ï?ï‡ó~8ï‡ 1H ³ÚqýüõÏ_ÿüu¤ÞðªØýïîwÿ;³¶8¹úäê“«7þ±ñLÛûë _ý:(þ¥ø—â_ÊšÏ`ŽY³:fuÇ;ÞØñÆ·&¿5ù­É©{k}^ëóZŸ{¿5Ť¤¤¤¤¤›e…‡Õ„O<ô2áWûfîš¹kæÃË^þðòüèÁ<²-ξwö½³ï­Ø£bŠ=2í0bƒØ vlñ±ÅÇï7¯ß¼~ó~8ý‡Ó8=³Vßãïôx§Ý·í¾m÷mFn8yèjîWð‡»¶Í7wÜÜqPÛAmµ’kJ®)¹VƯŒ_¿­ú¶êÛª‡³cîÿsÿŸû§]Ûî¯vµû«—Û¾Üö嶯ï{}ßëû2ô?B‰1‰1‰)±)±)±‹%.J,Ÿ\>¹|rÆÏTxÞ/I¸$á’©äÌ3ÌP¹eå–•[Ë÷Ή3Â[}2ln§¹ævêùnÏw{¾›þWMÉ=%÷”ÜÙå³þ§Ì’_–ü²ä—v?´û¡ÝËî[vß²ûŽl‹SšúÓÔŸª•®VºZéc‘zߨüÆæ76w¯Ø½b÷Ši{ßûå½_Þû¥Y©f¥š•ʬ}NŒIŒIŒ95îÔ¸SãÒöƥĥĥ„zæ~údîÈÿØ¥á9 ÏixŽwé‘òP3€È~¿å÷[~¿¥õÝ­ïn}÷ò—?¸üÁŒ¬­A½õÔ; þ@|Æ¿´ oqÙþÑö¶ôëW¾~åëW‚ÓƒÓƒÓ3·O¶{²Ý“íž ž ž V|¹âË_†7ØÌ.gðŸàad÷‘ÝGáOºý¸ëÇ]?îj=¾õøÖã×ï[¿oý¾ŒïOý†¿×éY§gž{ã÷ÆïÍ„ñðÁ¤&}0)¨Ô þgðé‹N_tú¢z5êÕ¨W#¡eBË„–ÙåÜáÇÆùýÎïw~¿±ýÆöÛ/ý¯JO Fz|ØýÃîv¿ç{޸猯í┋S.NIŽOŽOŽÏ:Ñà¶jÛªm«©·Ì•e®,seðCðCi÷ÉŸ4 Òöîé¿§ÿžþÁ½Á½Á½Yyl:Èo÷i»OÛ}ê@VãÀd7N½qêS—7[Þly³Œ¯í@›m´ o협ø$œ“zÅ›W¼yÅ›ÿcÇÄ­•o­|kåpFfV>k¯>xõÁ«Ã@%Òœ³C ç]5*Û¨l£²á3Æ~†7”gfd<„·Zkh­¡ÿróçóß?ÿýóßÏ^³ÄŒpN™ý†’«&WM®þžuBúp®m¤Þ2–¹°Ì…™»Å?þÑð†‘z‹¬*²ªH¶ù#›^»éµ›^KÛþÅœ/æ|1ÇŸbÕ€ÈVí\µsÕÎÔ-4:ÐèÀ~ðáþÒó—ž¿ôÜÐeC— ]”_P~AùWs¿šûÕ܇¾Ñn×åú"×¹¾8²¯n»]Öí²n—…O1Œ´L‘‹üXäÇ.Ý»tïÒ}“žœðä¢Õ‹V/Z½ñž÷l¼gyÕåU—WþÕô¯¦õιïœûι 4,а@xƒâHëœ1{Æì³ãsÄçˆÏÒÿž Ô¥(Ϋ;Ü׆!}z"™ðyîtí k§Íœ6sÚÌ?·ÿ¹ýÏí«§¯ž¾zzxËå!§9}ÈéçM9oÊyS"­gÿ½ûïÝoÕÊU+W­ŽÃÝç9÷ϹÎý‘zkM©5¥Ö”ìõ¾3Â9‘5ÚÒhK£-#4bPÚO™¾Åúë[ìì»Ï¾û컽žp´g…€°ÇCz YQøßN~ëä·N~+s·8÷Ö¹·Î½5Ro•+ª\QåŠì2jM­5µÖÔ´í{oì½±·÷ Ygpœ¥ÿkñðf’}.îsqŸ‹;oé¼¥ó–CϧLjÔ ©A±ŸŠýTì§C¯ù¢S.:å¢S>ÿùóŸ?ÿ9={²õ¢­m½¨Â’ K*,‰´Ì_ñð§ž7™þÙŸaMÂp:œG›v™&o4y£ÉÞòá-Þ’YÕ>OaL-oϼ=óölsY›ËÚ\vùë—¿~ùë%^,ñb‰‹M/6½ØôbÓŠM+6-\ftßÑ}G÷íð|‡ç;<ÿ/ÿ³:fuÌêw½ÓèFw®¸sÅ+·¶éYòp«ñT“§š<ÕäÍyoÎ{s^f­3ãÇrd[̾#üØÔ'{]?=4ýïúœÓsNÏ9ý•ó^9ï•óÌÿ`þóºzáè->³øÌâ3½æJUz¬ÒcÓgNŸ9}f8ò£û\‡Ÿ¿5·×Ü^sû굫׮^›v™ç'>?ñù‰÷Õ¾¯ö}µ³~5ž»ðÜ…ç^úç¥^úgÚÞò>÷¼Ïl|fã3ý»Ï€ÃÐ󕞯ô|%=Ño(ü*?!Hþ/‹§­Ÿ¶~Úúp™ô¬9¼5q¤Þ ã*Œ«0îëf_7ûºÙ‘}¾êÐûüÓ÷?}ÿÓ÷ñ÷ÇßÖxΘzÆÔ3¦~Ò𓆟4<·ë¹]ÏíúJÂ+ ¯ü?ûÜ4ÕOA0æ¼1ç9/ÒÚºôíÒ·KßÃ~ÿ©mrBrBò¡g—Y Î[ r9ƒœ©ÛÃH{_×}]÷uͬzîš¹k殈SÙ<æhá·–¸µÄ­%\9I¿Þô~ ÷é‰~ÿùJå‹\_äú"=Ÿ2K_ZúÒÒ—ŠŃâA¸|tçðOaVŸ´ú¤Õ'¥íß¿=~ûíûoßûþìrDáý!‚?ƒ?ƒ?ÿåúÿÍŒof|ã@Öá†Zdá Ý.ú ë2ìg4–ÙZfk™C/síIמtíIéYÛo÷ývßo÷EêmsC›ÚÜñPvN›9mæ´‰Ô»©ã¦Ž›:fýswj© §&|9úËÑ_ŽOOe~øëÀ_FêmVªY©f¥Ž°Â‰AbØë^ôz Ò"+ãWƯ<Œ™Íá³rå\”sQδ½Õ V/X½`æVõÐÏò çRgdýÑ1Â__úÿ¸º oNþÈÂG>²ðè}Ê„·¬îñüYñÏŠVü™“ž9陈Ÿ§÷Õº¯Ö}µÊ^]öê²Wg—’{Dî¹GDêýq×»~ÜåIÀd`²§‹?]üéâ œÂÛGê6ªÛ¨n‘–™ðÊ„W&¼’ž/pWœºâÔ§†3;Óþ\¼åâ-oÉøQŸ5ü¬ág ÔÞ`3럻pÞvx«çô¿êÐá_©ÇJ=V걌ìUxê7ýûÏ¥ /]xéÂô¯mÞ­ónñ9—áÓ3w–vB\B\B\¤Þâã‹/>>#ë7Âñ)s4>eæt›ÓmN·(Œ cƒØ vÀ«^ðêï8xGÄÛÙ•¹°Ì…e.|~ùóËŸ_žoNÞþ™öÏ´&m{¤[ÙÀñâÐdiá­ƒ7lܰqÃ#»mfjaì©wÿ½ûïÝozÖóR‹—Z¼Ôâ¥à¥à¥ë¾'¸'¸'ãÇþw¯¿{ýÝ+x"x"x";ž»I5’j$µz¡Õ ­^Hx8áᄇÓÿÚ­ ´.Ð:1H ÿ¥÷»3¾;ã»3® ® ®;Â} ç"wºÝÿ­û÷à÷à÷ô¯í§ ?MøiBÐ$h4IÛ[¾PùBå enmg ž5xÖàH½%»”ìR²Ë/þòá/ÙúpNá-Í/mvi³K›íO™Ð›½ùÑ›EGõÖ^?zýèN‹:-ê´è»šßÕü®f¤%‹N+:­è´±OŽ}rì“*$T8ŠÑox;k>ôõ¼çÓ=Ÿîù´÷YÀdi×\pÍ×\Yó„Âg£z™G‡<:äÑ!YáØg~3ó›™Ùø™‚M^oòz“×ìܾèôE§/ŠÔ>¡3ëÌ¢û£Æ5þ¨©·ÈŸEþ,ògænq܆qÆmˆÔ›¡[dáœ`®¾àê ®>¦Ÿ2 O_xúÂÓ³oÅööÚÛko¯—:¿Ôù¥ÎU:TéP¥Ã¡£ßBç:§Ð9cNsÚ˜ÓjO¯=½öôŒïÄ''<9áÉH½ã—Ž_:þ¨Ü»Èª"«Š¬:²Ï8–Àdiá,ÒÌ]çÛ}ÞîóvŸH½‹r-ʵè¸Ý)'¼ä§ç}zÞ§çµ£ýíßȾç®~úuê×9²×6}¤é#M‰Ô»ó§?íü)ü=Œ'Þ?ñþ‰÷‡±Ä±?Ò?þÑð†‘zã·ÇoßžYÛê?´ÿÐþC#E§ù[ço¿õõ ®_pý‚¬9*¢i„ãSæÈ>e¯[¼nñºìX«ð[kq­Åµ÷|·ç»=ß=ôòá=<>_÷ùºÏ×5*Û¨l£²™´×y¤Î#u"~FLÿuú¯Ó=$tè?èY~Ñò‹–_ä=@V  K«Ü²rËÊ-3wU®¨rE•+"õ®¹væÚ™Gã‹ãð™¦Æÿÿgü·{ñ·n;¸íà¶}lìcc¯¾ùꛯ¾¹Â’ K*,¹sÅ+î\±­ú¶êÛªgßsW®J¹*åªÙk#=g1’–Ã[o9¼TïR½KõÏÝ+_iüJã³gÌž1ûïþ÷ÿ»ÿÑ;Òµ_­ýjíW‘z=cìÐRÊ¥”K)75÷ÔÜSs·¯ý{íß{âá'~"âʹÖ½ºìÕeÃÓ(O´N”|ÊÜ]ùîÊwËO™­Õ¶VÛZ-»< xÉ/K~YòËå\þÁå„ïÜuÖMX7!Òò1‰1‰1‰÷¾³Ò•î¬tônþl„ãSæø~Ê»¿ÚýÕî¯Â9¾oM~kò[“ÓóªðŠÚ·Xßb}‹]ÕþªöWµï™Ð3¡çQ¼}Ù*e«”­²aÀ†„.–úÙç)±)±)±áïM{4íÑ´GÐ#èôÈÈòÐð¡? àX2€,­`ý‚õ ÖÏÜu†áb¤Þkv¬Ù±&ýk ¿(ñÓ?}ñÓ¢k‹®-ºöŠ·®x늷¨ÿŒ¥[¾Çó=žïñì{îbËÆ–-›‘5T­\µrÕÊ3GÍ5sÔ5•®©tM¥pFWFÖž©:o×y»ÎÛá<­ÞÏö~¶÷³‡{ÞS;ô—þñ«âWůÊÜÚ†cãµ ¯mxmÃÆÞ{oì}Ý‚ë\·àhD¿F8>eŽï§Ì±4ïÖy·Î»µî‹u_¬ûbz¢ßpöí³ß˜ýÆìßžüíÉßž¼ð¦ oºð¦cù òp[álã£}m‰OˆOˆx\»fìš±k†÷Y€N®¹fäŠøíÞ®{»îíšžõLÝ=u÷ÔÝ5·×Ü^sûËw¾|çËwÙþœÔá¤'uÃΛ^»éµ›^ZthÑ¡E×m3Mb$f|5%^,ñb‰ߟõþ¬÷g…3º:ÙéÌNg†O—Ìøú{½Öëµ^¯•¯V¾Zù#¼)ë¡ÇLÖZh¹¥ ÇÆƒ¥,õ`©ƒF 1èhœ@#ŽÆ§ÌIŸôøIYîOÞØüÆæ767ßd|“ñk~^óóšŸ#-ÆÛÝótÏÓ=O8ûö–Š·T¼¥â± }Óú¶æ·5¿­^gŽÞµåÐ.°gÀž{ÿd`²´£1ŸæÐ³¯b ÇŽ-|è5Ìé6§ÛœnÍË4/Ó¼ÌæŽ›;nîxèåÛô6+Õ¬T³RÏÍ}nîssÇœ6æ´1§…½ájÃÛ¼màmok±¼ÅòËï—éYSX“°†4ü£á Ãög6>³ñ™ Înpvƒ³Ã¸1#[9ܸ@«­ ´ŠÔ›‘Û½ªW¨^¡z‡^¦ÍÝmînswæ>uÒǧÌñý”9FbƒØ öÑÿ>úßGÿÛ½b÷ŠÝ+FZ0fuÌê˜Õw ½kè]Cã{vÿ³ûŸÝŸÞÅÏ”|¦ä3%oœzãÔ§†O,N»LÝ»êÞU÷®£}fýYÇ’€,mËE[.ÚrQ&¯³Á–[Dêß¿=~{¤Þm´9Ðæ¶Ò·•¾­t¤eÂ/Ê›ïo¾¿ùþ£fŒš1*¼Iï¸ ã6ŒÛÎ^½dá% /Y˜Šs}¸RWï¼ä} ï¸ïÇ}?îû0n —y~âóŸŸØ´]ÓvMÛ¥?Î="÷ˆÜ#Ò©zNضòÛÊo+dÇ>G9õ9måi+O[qôf86Âñ)s´?eâRâRâR²Â±?´å¡-myçºw®{çºHËœ9üÌágÿú‰¯Ÿøú‰Ám·Ü6뼯ÃY˯ï{}ßëûÒö†Ï$^·0naܬÁ³Ïœñ}>ôõ¼Ð9…Î)tŽ÷Y€,í—A¿ ú%“ooûó×?ýóבz‹/>¾øøH½ÝþÑíݾé‰MOlz"moŒ~rô“£Ÿü,Ïgy>ËSåŠ*WT¹B v,¥®ö}µï«}_í‘/|yäË©ƒáSNM85â¹CÐöÏ´¦ý3éÙâ¡¿ôOˆKˆKˆË¬ã÷˸_ÆýéÏÂ;#1°ŽO™£ý)S¾PùBå ߣ~Óû›Þß4ìäa';9Ò2á|ßßoùý–ßo9¿ßùýÎï—uÞã‰1‰1‰1‘f-VtZÑiŸíülçg;Ã?šÉ¬=ÿ?અªªê=@V  K[TdQ‘EE2w Î]pî‚s#õž»íÜmçn‹ôeñ§>­ði…H¯}ô“G?yô“–Ã[o9\–Õ¤)çÜ;çÞ9÷zùÿûo±ÿKÏšçl;uÛ©ÛNͬ£(sa™ Ë\)TCî^ôz ×G¶~#œîS&碜‹rfî:ç7šßh~£H½5WÔ\QsÅñz­Ú¹jçªTz Ò•ÒöÆ$Æ$Æ$†7ÕO=ß7«µ&}0éƒI‘z¯ÍmþkóŸÝëì^ggò“€}=Ï Ñ>„Àdi_~üåÇ_~œi«‹ bƒØðFµ‘©5¥Ö”ZS"õ†_G꽲ݕí®l—Y_—z[Ñêó¿?ÿûó¿{?ûï?‡žW—~yÞÎóvž·']4é¢Ioýºî«u_­û*=³i+L­0µÂÔH½¹t$7ü¸áÇ #õN¼mâmo;£Î'ú|õñWuL?eÂ?3:^Ç^K#õ>Uá© OUŸª›•ÿÈcróÉÍ'7?6Wªô_ÏÏXtÆ¢3ù㲂\J@VÞ|2>ˆ⃌©úÝßñÝk¿_ûýÚïÓöæX’cIŽ%m«¶­Ú¶j‹ EÐâ_Ö鵡 ã+Œ¯0>³Ž}A£4:ÑÎøŒÙ3fϘýÎkï¼öÎki{÷nÚ»iï¦*A• J&l+|BdÐ h4ÈÈzÂ/ý#õøÔäS“OMŽÔ»~ôúÑëGÇ¿ÿRüK‡û®1Â9Ñ,»oÙ}Ëî‹¿/þ¾øû2þ)3ùâÉO¾xÝ„uÖMHÛÞ.þºŸ®û麟‚„àØ¦„á•aÔQCF IÛ[ck­5¶>Wô¹¢ÏÍúæ”ÜSrOÉ©÷†E7,ºaÑѨpz`ï)²3€ÈhX aŒ¬!¥\J¹”rOW|ºâÓ#-ÓdX“aM†z=ù;äï¿C¤Þ§®8uÅ©?Þ¿þó×þúÏ¡÷6Z…·8ŽÔ;ûåÙ/Ï~9³¶õÓ¬Ÿfý4+Roé+K_YúÊô¬§zÁ꫌Ի¼ÙòfË›en•âRâRâR"õ®µ~ÔúQG¶f#œS£-¶4Ú’‘5$WM®š\õУúºå×-¿nùñ:ÆCÏK~òº'¯{ò:³Wí†4ü£á‘}À±d0ÙÀÔÝSwOÝÞŒ÷Ⱦž~ê‚§.xê‚Cß@øŽÍwl¾có¨„Q £"®¿tÓÒMK7M˜•0+á_‚Ãožþæéož®úIÕOª~rdGº­ú¶êÛª·î׺_ë~ë®]wíºkO´s]ÿòú—׿³ûÌîß'¾O|ŸŒïo|ãû#õ^Ðï‚~ô[, –ýë©‘T#©FR¤ÞC? ôÈ:Þ±fÇškŽlÍÑ4Â#=å4µ×—¾¾ôõ¥®±*<¥Ø”bSŠeänOÞøäOÞøë«¿¾úë«‘–¹µä­%o-ùÚ¯ýðÚǾڑnv}R‡“:œÔáÆþ7ö¿±ÿ±Ÿ—œ½üs=ŸÌ þç ™ïñ|ç{ü²^—õº¬—Ĥ¤¤¤¤¤›ÍÌ53×Ì\WººÐÕ…R·±ó‹_ì¬w°ÞÁz€Mzž±Ê9=çôœÓ“$5Hjž/è^}ðêƒW?ÿûó¿?ÿû›ßØüÆæHK68»Á٠Ξþëô_§ÿzè5‡OF|}ßëû^ß—¶7×¹¾ÈõE¸ÝÃ&Ý6é¶I·=˜ÿÁüæoÔ™þצ[‡®öáîsæ®í±AlŸ#>G|Äû•x±Ä‹%^|oÝ{ëÞ[wÁ ¼pÁ é_ý6ÚhÎÒðê€WDŒj¾øåÀ/^xÓ…7]xSFªÞZ<œ˜¹³ëÒóÞ9Ü-f÷~´ë“¯ŸGïÓõ>¾u>ÚŸ2ÝKv/Ù½äÛcÞóö˜HKÞ8ìÆa7ûøöoÿøöã0žy] oL½ó§?íüéòç.îòçŽåÙÝit§Ñ²þÈß3rÏÈ=#Kw,ݱtÇŒü+€AVÈCÍ Û¿”¿üùòÈ—G¾\sEÍ5W„s"7 Ø0`À©{¦î™ºgЃîtÇ/3™ùËÌHëÌÛ3oϼ=_ðڀלžpzÂéÿÇ—¶m.ksY›ËÞìòf—7»¤ÞŸPĬŽY³:ÜÃÏv}¶ë³]§n;uÛ©ÛN¹ç”{N¹g׌]3vÍX;a턵Â/‹?nñq‹[,·hÜ¢q‘öp_×}]÷u´W+O[yÚÊÓNM:5éÔ¤pëÙø4'‰Aâk{_ÛûÚÞK=XêÁRiÙôĦ'6=Ñ4±ibÓÄ”·RÞJyëí>o÷y»OíÏk^ûó’]Jv)Ù%ψ<#òŒØÐ{Cï ½ÃçÚN[?mý´õîvÕ°«6wÜÜqsÇH»Ðby‹å-–_U᪠WUH¸)ᦄtÀ]ïèzG×;z¾ÛóÝžï¦n£ßìR~#œM¥Ç*=Vé±¥/-}iéKi?eFuÕmT·s·ž»õÜ­á§Løç SrMÉ5%× ¶ƒÚj¾6Òúc ÇŽ-üÂÄ&¾0qP „AÇ!\µvÕÚUkƒrA¹ \ÚÞ0ú gùÓët :eýq²(×¢\‹"~‡Àã¾÷ý¸ï½§È Ìà8;ô<žÇú>Ö÷±¾/u~©óK3w»áL¯a»‡í¶û–+n¹â–+2kmÆåo¿uþÖo~{ðÛƒo/p{ÛãùÇïýòÞ/ïýÒ¬T³RÍJîžg‰ÀAü?Ïl.²³ÈÎ";åh<§î9uÏ©;þûñßÿ>n{Üö¸íéí¯ƒ~ôë  »\ØåÂ.G£&G6Þ\ì9ÂM}²ËõóhctÌ^·0naÜÅÉ'_œœ¸#qGâŽÌÚnx[àO‹|ZäÓ"W>våcW>–‘:dä\‡7¸n‘Ô"©ERVÃÙe~x‘î»Wìþ/ÏxžÕuV×Y]Ã?&ðï:²BšÃi + gUfî:Ãç-:´èТ‡ý†¶–ÙZfk™£q¼g½yÖ›g½9é¢IMº( Æ7Ühp£í¼‡³<׿¸þÅõ/›-6þ¬ñg? oû|¸Ñoèì»Ï¾ûì»#õ¦'°Ì:ŒpN§­5—Ý·ì¾e÷UnY¹eå–á¾ÝðÝ ßÝð݉yÞè>uË\XæÂ2fÖú«¬^°zÁá_ÿzø×“›On>¹yFÎc¨ó¼Îó:ÏKÛ>»Ûìn³»홵™ö?ŠF8'ä§LB\B\B\Gê¶øOßÿôýOßo긩㦎᳠K¼Uâ­oÒê”V§´ ŸÌwý‚ë\¿ ¼=ïÑø¢6õQ„O]”sQÎE9·UßV}[õÝ#wÜ=²è⢋‹.÷­ÆÁk¼ªÉUM®jÒrxËá-‡z¯Â'¤–Pr@Éal¹zí굫צĦĦĞ9üÌág¯øfÅ7+¾y_­ûjÝW«bŠ=*öˆÂáıñ9âsÄçxhÙCËZ¶ä—%¿,ùey³åÍ–7K\“¸&qÍÎ%;—ì\’cuŽÕ9V‡±e‘UEVYUùîÊwW¾»FR¤I—?wùs—?ÎÙÊÜñðgüŸñÆ×L¬™X31<;éÕGã½sô¶e„g¯«ë±Œ¦"Éì…ÇÒv~ÛùmçÿPä‡"? Ÿþ»­ü¶òÛʧþ”©_§~úuZ¾Öòµ–¯]0₌ß9d1{Æì³¯izMÓkš¦nïTñCðCðCP¾PùBå 9/„²B*à8ˬçÈfÍà!í^½ðOäuÆ@¤=¹¥â-o©øÆì7f¿1ûh¿wŽÍ±á„RGøÿœÁUñ«âW%”O(ŸP>:Î]4ÅÛÑý/‡Ì=/Tz Ò•Þßôþ¦÷7¥n¿ì½ËÞ»ì½I·MºmÒmÆ©e…<4—Ó@tÈš_¿½½òusV®ÉˆA#Ôæî6w·ùŸ§¾çó=Ÿïy¹ëË]_îš·gÞžy{ª¹v¬Ù±fÇšÔ-媔«R®JBDËi4&O4ûïÝïþ{?ÿûó¿?ÿ;mïóïœçü>JøÈ¨ Ëñ `€LÖôá¦7}8m{’¥ž% ÑaCï ½7ôNÝR¶JÙ*e«MÉ\ÉU“«&WÔ>¿<³¶õõS_?õõS‰;w$îHÝ>Åüæ~7÷»¹Ÿ3@Ö$Èdá³!‡­¶~Øú´½á“qU‰hòõ+_¿òõ+©[æo˜¿a~•!sm¹hËE[.ŠÔ[®L¹2åÊdÖ¶>zð£?z0m{×;ºÞÑõÜ@V&8*®-ymÉkK¦mŸxÛÄÛ&Þ–žgXBV¶æç5?¯ùyøoÃþ[Ïw{¾Ûóݰ½d—’]Jvyô¿þ÷Ñÿª™kN§9ætŠÔ{Æ¢3±(ã[Ù·=n{Ü—¿œøåÄÔíU+W­\µò-WÜrÅ-W8de`€£#1H ?ÛõÙ®Ïv¥n>Ðæ@›m2¾ú¶óÛÎo;?Ro8nâýïŸxÿ¶êÛªo«Ä±A¬ÓBf©V¿Zýjõï¯sûë„-…Ë.[¸ì{ëÞ[÷Þ:ó#ɱAl»õ¢­m½hÂ;Þ™ðΓížl÷d»H‹Ÿ9îÌqgŽËøØëÿjÿWû¿š¶ýù‰ÏO|~¢± @Ö'8Šhx á´íë¬W°Þ?Ñì¹~Áõ ®_©wõÚÕkW¯m9¼åð–ÃÏX}Æê3VÇçˆÏŸ#œµé¼qÅÆ_lüE§\tÊE§t:³Ó™Î Ÿr}~¿óûïÙ¨dÈœnsºÍé^µ*,©°¤Â’Ö¶~´õ£‡¾‚ÝüìÍÏÞülF¶›P>¡|Bù·Ç¼=æí1©Ûo{ÃØÆ6/Ó¼Ló2ÎYŸà¨[Úai‡¥ SèœBç„-»fîš¹kfÍÙ:/¼é›.¼ép_ÎÚtFȸßëÿ^ÿ÷úÓÖO[?mýssŸ›ûÜ\3#9^Ú\Öæ²6—5*ܨp£ÂYÏkù^Ë÷Z¾ðú¶„óÚ{|Üããád`€£®Ä‹%^,ñâΟvþ´ó§ÔíùÏ÷x¾Ç7wÜÜqsÇ#[óªÅ«¯Z|da0dœHŒã«Y©f¥š•1iĤ“22Ãëðàë_?øúÔí/_òò%/_RqdÅ‘Gª6Ù…àINìíµ·×Þ^‰ÂÙi_Løb–ð–¼ñ«âWůŠIŒIŒITy »ËõE®/r}Q²KÉ.%»\SéšJ×TÝit§ÑÆm·a܆Œÿ!Â+µ_©ýJí¿ûÿÝÿïþaKëZßÐú†öﵯý{þЀì%&%%%%%åØllf®™¹f溺ÐÕ…®.”ºý‹_ìübg½ƒõÖ;蔜hžÝÿìþg÷Gêíž§{žîyT‰h²gäž‘{F–îXºcéŽU+W­\µrž·ó¼çí4ZÐ(sc†øøøøøøÔëLÛõ…×®ð÷̽‚…Ï®._­|µòÕÂkrÑ‹þXôÇ)¹§äž’ÛՀÕòÐ\NÇ—ˆ—MþÖù[çoÐ:¡uBëÿéH‚LŽÒF ;:z×®ð> ®D·€ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ¹²ÂN¤LK™–2mÆ÷3¾Ÿñýÿ±hLć]´ÝhÝ® Û®íÚ®+•íÚ®íÚ®í:RÛµ]Ûµ]Ûu¤¶k»¶k»¶ë“Èv³ØvcbbbbÔ9z·{”e‰øš«®¹êš« .ˆ â”#ãÐQâ˜ÀõÖ;Xï ¢ ÇôÐ[šoi¾¥ùø/Æ1þ‹£²wöw¤ŽÔv©#u¤¶ëH©#µ]GêH© ;RGªÂŽÔ‘ª°#u¤¶ëH£z»Çá ÁÆR†Ul_±}ÅöÇè RRRRRR²9ψ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!>l³{Íî5»×Œý3öÏØþ®&@V“’’’’’r"—`Ë#[Ùòȵ ×.\;±ùÄæ›ö×g}ö×Ö§·>½õ錬¹èsEŸ+ú\óâÍ‹7/Þä³&Ÿ5ù¬f™šej–)Ö§XŸb} > spðÆüóoÌ?võØÕcW¿8äÅ!/ÙÕkW¯]ÇtoÁÇ >^ðñ'î|âÎ'îlQ®E¹åJî)¹§äÃȈh€Ëeƒ²³»Îî:»ëÓ÷=}ßÓ÷Í‹;/6«ífíÄÚ‰µŸ{ó¹7Ÿ{³NÏ:=ëô Ök‚5(~Ño¶Ûg~8óÙÞÞøöÆ·7ÞRkK­-µw5g(;!ß[õ‹UÏQ¸_ÅQåóž´»T¯bçæ~¹P“üwæ rÝ‘³SLÒÁw“ú¥äÜ9qϤ`Ãã[~8ðèo­Víû»ÀŒ-?&ïè´,÷š¦{;îv‹Í/6¿Øüa“‡M6¹^Ëz-ëµ â‚¸ Î`-ªàU§¯:}Õéw¹kÌ]cæ]2ï’y—¤çUõ[U¯ShxÛAWßrr¡º?T­_(®dÕ¢›ó<–Y{µqÉÖ“÷¿4ëÜ%3vnz÷Ã7ïœ1êÇÙ;oIÏkkWû»Úß ¾~ðõƒ¯/¿¢üŠò+ Y ’l§TK©–Rm೟øl×¶]Ûvm{èåc§¼>ç«}û?0çÔäëš7j_t`pyPçϯý&˜lÿô³)·¶ïÜáõ þÌ‘Øpט¤‡ý¢žC{í9´}÷öÝÛwY³8f±á ¤–à-­¶´ÚÒêú2×—¹¾Ìâw¿³øHKžõa¹Fù&¿5à‘KOïWë?gï-øsp]Ð((’%ãÓ`J°mþ¿æÛU¥ã=}¾]ÑiYËÕSö6Ž´xµvÕÚUk7f혵cÖUlT±Q1Ê–ðâe‹—-^Öð‚†4¼àÐKŽ=¹wrÅWýVóÛØl”N©¸ðÒÄV-6wÉñÛÿ1'xꜩs¦Î©vVµ³ªe(9²×î~7ô»¡ß =tô{Ó›®,ùצ”¯šÕ‘½¢ßP¸Ïáþ‡ÇiɰaM e ÛÌþ*çW9¿ÊÙ¦p›Âm GZfüy}ίôTýÉÕ{þ&šNÒŒÆ?>¹ãòk<2wéó‘–±cÄŽ;®Lº2éÊ$ÃNLÙ`p8Ã5Rô›¯qž.1+~.0ò³gD_ô +<ÆðxÓ.ÖÇl`8‘eéÀ‡~ÖïYËÅæûtrõ~UéQèÆü÷çÌy"œ°ïy#)©ñ¦ýüä²·V'î½.í2ž '¦,:xK«-­¶´:tô;%ÿÛ—œÓîĉ~Cáñ†ÇÖ!í2aÝÂâpâÈrpJµ”j)Õ®/s}™ëˤí o€Îú=鉼÷æ¨pbž¶ðØÃ:Dº)tXðž:œ²\<ðÙÏ|vñ;‹ßYüNÚÞ³†Õ­~Ù‰6ë7’°aMÒö†5 ë©VdMÆN;al||||||Ï{~ØóÃíM·7ÝÞTeŽLzðªÓW¾êô 5j$¤í^Ÿó+=Urõ…¿qÚÒšÑøÇ'w\~Í‚Gæ.}>mï¢øEñ‹â˯(¿¢ü µ +H¾>ùúäë‹~Wô»¢ß¥í}lÀcÐaX‡a†ÅMˆ›7AÅÒ#kÌÞl ¶Þ5æ®1wIÛyÓ›®,ù—è÷ÐÂú„µJÛûOm·[ƒ­j@Vð;ùÏ7ÿ‰ÔûÒ=/ÝóÒ=§Í>möi³Í N¿,Ïüdæ'3?™wɼKæ]’¶·kßÛÊ”éâT¥G¤Z…µ ë¬JduÕTwP8Ó÷ÐK ƒÓïxߺlP6({æ”3§œ9eK­-µ¶ÔJÝ9öäÞÉ_mô[ÍocG9Ué7¥âÂK[µØÜ%Ço¥n/6¿Øübóoô{£ßk‚5Áµ +Ýþ·÷¿½ÿíaÜ›žW¹MtZÇyð쮳»Îîš6ú=ëÃròMnôvÍÞ±œ¤ÃÖ-¬aêö°ÎaÍU €¬#Œo»¶ìÚ²kË•uVÖYYÇÌà#sœg7ÉÑ$G“óbçÅ΋MÝ>éâ7ž¯|m­OÏ®Spƒá~dæ_÷ëì]¥.ûïýOýòyêöÚ‰µk'NLž˜<1Y•ÈÊÌ >\ÇmðÆüóoÌŸ6úZðúœ¯Ö*{ö÷¿7 3"¬aXÏÔíaÍÃú«Y™™Á‡ë¸Íî¿¥ÿ–þ[ž8ó‰3Ÿ83uû›Ÿ,sÆ+×õoônÑãã/»lîÜHkHH˜4éüóO´!¾gäÞ I–îxÍ­ NKOe>í0厭-ïÝcí§^æÅß_üýÅß;ëP¬C1²3ƒ#93€ƒÄ ñÅ!/yqHÚÎË®8ÿü¸Q' |kò'E7ÎCîåÍÖ^ù÷—™µæÔÁy¤zþSÿÄ 1Ht {138’ãoy~Ëó[žßÕkW¯]½R·×oU½N¡á…®Íß!ç¿ìÕÖ2ß¼X»_êÿfãªÇƒ¹£ûNš¿%WØP{ú–OÏKó·ÎW*gËÔ5™Õõ¢U‹DZ>¬gXÛÔíaýÃsá@ö% Ní8À ×.\»pmÚö¶ƒ®¾åäBwtIŽÚ1ÃSÿ7[Ö;6hÌíñé°«ÖÞòÓ¬wï9Âú‡7yëkFÎÁo‡^>Rm# ÈŽ„ÁÇ!žØ|bó‰ÍÓ¶__¥D¡‡¢ixmî˜pãõ=øíe[zvÿ!k®9oñíý¸¢Ï #¾ZLìHµt. »;1Ãàãö×g}öWÚöË>»eÆ×¿é‰möíõÚû3Öͽ¹ßSu–í8oÕíÏý8ºä€+Ïž÷T•­V/úî²i÷wÿyÜk%F^ÿTBù9î9GúÍý³çl/Üþ½^ÁŠV¯•=zÃS+j¬›¾ïôc_óHµt. šœ8apLJJJJJÊ±ÙØÁyçœW¼Iñ&Å›¤n?ë@Ù ùÞš³kh®jï¥n¿ì²¹sÃßÛzýÓÖ/ê°cï-W<³á÷;ÖìÞ´(ýû¶äË#ªÿ\æÂ“OÎ{GfïÏ_¯8cOÝÉÍç]¼ýÉ´½ÏœôΪµ'§nIÏ1¦µ¼ÙÚ+ÿþ2íS„Ӯ킂m.¾mYî5M÷vLÝþ×Ä¿&þ51Wí\µsÕöæàĺýoï{ÿÛø7=¯ ÃãÃ: ë0,Œ–³ÎÓÀ»ºî꺫kÚöúŪç(Ü/#kÞ3rïé×ëÛ?^ £ß“ߊÿ8÷)Ïþv×€²7}9°ïÉgç›1jàŠsølíK÷TÚûছo.õ|Þž¹×ÆŒ×Põª6m~¬’¹Ç[åŠÓÿÈ?ë½-ß9åê´ÿ=ö';R#ˆnÑ73ø˜ÀÛØþÀöÒ¶WU>ïI»3²æy×þúýîRl-àÒ˜Õ1]ƒNã~~¹B¥jÝ+¾gÍGWµï¼ù×½aÛ°À¹×¾(¼!ó¾®ʤ\®¡è´ØÇru‰îá©Î‘Î œ8¢# >¦ðޝv|µã«´í¥z;7÷ËYs¾žyÖÄŒ¿ã÷«_?¹L—¾·L/=§ÎÛíÎ]òuxä´7C[fßûÎU¯[¶^”øÒÁÞ©o:}"Õ9Òy€Sö ƒsËí)¿§üžòiÛ 5ÉgÎ ­ù‚ªØ9èôzÿÏNÜ‘³SLRû3o[n{AÍSŠ-¨•¸cÕÎ_ì;¸2~}ý}¯þvßêÿn:kÇ’‹wþ”xþî'’ž8còŸ:wûÿÀÀÑÐ8¥qJã”c¹Åcçꛫo®¾iÛ¾›Ô/%gÐ1hŸ±õÿpúovO~nóÐÖkžŸ¶fÑ™;ò'WMŽÚùƒ ‚}AÁ+A¼wÆÔ2ûó»¤tí¢±ÝÇV˜²sÛ³'Âðú§ÎÀ119frÌ䘨œUþUùW¥mß9qϤ #ðœn?¿¶óÑk{tàÒ§öu=°=åšS«”Z’÷Âë¿»ø•¢gÕ\Q1wË*õ(¿å¤­åÊ”|5ïÂ\Õr~·¼ÙÚ+ÿ¾ol0%81àê±ÿÛþÅÎ/v~±ÓÛÒÚÙeg—]Æõ×k\¯Q…GU8=¯jµ£ÕŽV;êª;¨î  EÐ"hqlöö˜À…¯,|eá+Ó>kvÃã[~8ðh‚RG¶æ¼»díö}o(“r×u Í)òå;žèzF±"›<<ï‚ ‚`YB¤IçŸAƒ .|UJlÊ¥ÁÜàyðÿ[çiA£ÿm¯w°ÞÁz½u ´½éö¦Û›ö¿½ÿíýoŸæ ÿGôûØ€Ç<6 Ã°Ã: ‹›7!n±ßócǽ÷zÜëiÛkµjßß‚?ƒGºæE9—=²ûì î‚{žiq ä1«cºÆ”K&u=ÿüH¯Zµsã—ûAp‚ÜùŸ:iüOè;û¥Ù/ÍŸCúŸÐ·e\˸–Aøsœä8–+س`Ï‚=Ó¶ÏØòcòŽNYs\J¡r _½vÓCûjzùuþ¹ÿ—ÇŸ{;iõ'ÎÍx š„¡oÏ{~ØóÃÓfŸ6û´ÙÿÌ÷=¤0ô]Yge•uº¶ìÚ²kËã5ß7­c窫v®ÚEŸ+ú\ÑçR·/˽¦éÞŽI_'?rÉ‘­¹ÞåÕî(Ô.üýÑÏÞœ½jʈIßôÿëŽ5?oª¶¯ÃæŽ 7XÿýGKÚì\üìþ!CÖ\Skñí \ñGõyönIÿVVž¶¾ûÞVGÞ´ý‡µá³ËÀ kÖ9u{ÚsÑ-úBßÔrûM6/Þ¼xóâiÛ7ݲõ¹Ù:{|rÏÂrûO¹¹Ø<»ÊïÈypÏ}7õùte‡jõÿSâÇ;°öªö7ÿº÷µ£Goxjo¯ý·§œ<§Í>U»ûX®.©×võÍüµzÚ­$UMž—òŸ0NÿÙesçfýA©¶‘ÎD“è}SËuì7Ùä³&Ÿ5ùlH0$ò?ís~Þ´óÕA£Ø¢/î:‹N‹},w—õñ[.Û_ð¡e­Š•úæÛ‹ç¥$Ž[qêºî{[…Ëœõf¹ê'M¸q쥗=ýî¡×>_bOÑ—?2¯S0"‚ wìª{p`ùü%Í»<štXÛ PÍÓž‹àæàæàfo{¢It<Ó÷p‡¸f™šej–IÛ>ôî/†oÞÙ"hô|Ñ#\sB¤IçŸÙes/‚ æý¿ ì‚øç.Kš;÷ž„µKžŸü¿Ëá\Þ„„I“Îÿ0‚Âÿ¶þ ãÊ|uÒUA|pYäX’£v0<¹jò¼à–Œìmê­½š‡µ F¥÷\@vtb†¾©‡[@{ªØSÅž*øxÁÇ >žº}ƨgï¼eçç{ú'%gdý©ƒÕô÷úU©-žñÁ¦êïf$úÍÈÖWXϰ¶©ÛÃú‡çÂ…€ìëĹ½sz‡8ˆ bƒØ'î|âÎ'îLÛ9éë¹s··ÊÊ%›ùÍâ¡;g—©žÿÔ?6ˆ b]È^„¾‘ä:^nQ®E¹åžÈûDÞ'ò¦nïÜáõ þÌqÝú]™º}y³µWþýeê–nÈ| …ûÐ#iXüÚÇ‚ ‚ïÞÌ݈bƒÆÁÜå ׿ùû¯°áÏöîû>‚œÿŸ%ú+Ãz£ƒµÿVÿ`O°'Øã@ÖçöÎéqÜà’{Jî)¹§vŽÚ9jç˜;/vÞ?óPî“ôÐü‹}~×µAL>ÛkO¿ãÀ’â©×L ŽmøZaj™ý'_›cóæýÇí„íé¿wxÒÊÚï¸5U5rþÛ’ó×üzá® îz*é¡Ôíµk'ÖN,™\2¹d²ËY™Ð÷på8¾›îÍçÞ|îÍ´íïéóíŠN‡~m|üe—Í{Lw71˜œÎú=sS¤Fª9dnïœ1))))))Çmûeƒ²AÙ3§œ9åÌ)[jm©µ¥Vêα'÷N®øj£ßj~;*íKÃ8ë±Ç^¤h¼Øübó‹Íÿ½Ñï~o¬ ÖkÔ €¬àfú¦#î ýÏLß2îMë8ÏcÈa“‡M69mg‹Í]rüöÐÞû?N>'m¯è7­Hµ ýSgÑ/Y€™¾GCެ°õn¨wC½jWû»ÚߥííÙù½µk{;Ué©VamÃ:«YÁ¬»gÝ=ën¡oæ:Þ·€NeÕé«N_uz„ 5ÒöŽ?¯Ïù•žª?¹zÂß8miÍhüã“;.¿fÁ#s—>Ÿ¶wQü¢øEñåW”_Q~…Z$_Ÿ|}òõE¿+ú]Ñ™&êöÎG&GÖÙ•0žì9´çОCÓö†Ñæú2íÞ¿ÕiK-¬I¤è7¬§è€¬&ǘcrŒ9täБÿäƒfúf\šJ©–R-¥Z£Ë]ÞèòÅï,~gñ;©{ó5ÎÓ%fŲ›>þ¥æ…nÌΜ'òÉÛùñž7’’ÎúèÆÊ ?Þ;yï”ÓS÷VkW­]µvS¾™òÍ”obÇ,ŽYl¸@tË‘Õv(Œ*Ǭ³vÌÚ´½aÌÙøÇNÓ~~òï÷½¼üÄ\½ßEUzœ8³ÃY¿aô»ì­Õ‰{¯K»ÌÔ9SçLSí¬jgU;Ë€Gެ¼sa„9æ•1¯Œy%mo†7@>ž cx¼‘¢ß°V¢_81eéÀ©}•ó«œ_ålS¸Má6…#-3þ¼>çWzªþäê= M'iFãŸÜqù5 ™»ôùHËŒØ1bLjW&]™te’a '¦ÙeGÃh3ÒlàP‘vo=øÕÕ_î;Ð/ùì{bÂýåÐÑoXÑ/mf§vèg§6öäÞÉ_mô[ÍocGe—£›Rq᥉­Zlî’ã·‡½¤gý©åÈŽ;Fž¿_ñû¿_Q­]µvÕÚEZ2ŒQ/˜xgÅ/οî×Ù»JŸS‚mYè`> ¦ÛÂ} ÷óÐÑox¼ÿ»èH%[ÎN-¥ZJµ”jŸøìÀg»¶íÚ¶kÛC/;µàõ9_íÛÿ9§&_×¼Qû¢ƒËƒ:AÜ1Ýéo‚ÙÁöO?›2pkûÎ^¿àω wIú?æûöÚshÏ¡í»·ïÞ¾{Ìâ˜Å1‹ _ µl‡ö/Þ¿xÿâg®}æÚg®í¿½ÿöþÛÓÿÚú­ª×)4¼í «o9¹PݪÖ/W²jÑÍyˬ}Û¸dëÉû_šuî’;·½û‹á›wÎõãì·¤ â:Äuˆ{æóg>æó<ÕòTËSÍÀÒÊöðÒrKË--W^ýyõç%UJª”T)³Ö|Ö²ò½U¿Xõ…ûUU>ïI»Kõ*vnî— 5ÉgÎ ×9;Å$|7©_JÎ÷ I 6<¾å‡þÖjÕ¾¿ ÌØòcòŽNËr¯iº·cfíOÎ¥9—æ\:£öŒÚ3jWZ]iu¥Õ†/Z6€G7Ýxtã :,è°àÐKÖ?ùž5Åòþ±rúØ]Wm(ðóý{?ÍjÇRjw•7ò]wÆi ZürÆæe·ì;ôòýÏë^ÿónž|óä›'Ä@(»À———vû°Û‡Ý>|ëÌ·Î|ëÌH Ö{󞘢ËÏ¿èÖO‹S2¨¶ï*¹å‚ƒù–Íùöª—~?lP©­/ï/´ghr®cyyvæo›ãà…·ß½¡è£g]pé—…¾-¸±Øœ\{ÃÞ”ÛS6óæN{ÿº­ͼo@ÊÖ ‘ÖÓñ÷Ž¿wüý…–/´|¡eðmðmð­ '²l'åOÊŸ”¿m‰¶%Ú–·}ÜöqÛÓ.“sFž7b.þOÉ÷¦—_ôíS;ç©™ž5ï9/aÝÁÉKýzùÞ|+§ÏÜ·{˲ß]·«ñßã¶OKZŸ‘}>©YÜE9O9ë¼K>-8ù´õò(VrÃÙßäÛ›A|é\Ó³†­÷þÙwÿÂ6ÞÖ`Õ5Iõ÷ߟòß´Ë4‹k×,n覡›†nʹ'çžœ{ k81eƒ8镤W’^iSºMé6¥¿éðM‡o:¤]¦RÂåÑdÈ=JÔʵ>ÏÂ×½ýYÿãÁ¿ó$_“tRÊ9Æçü;æõÒ Õs´ÿèmñà)ûk&Ÿxç‹Onš¿4þ›>;Û¤]æòþ—÷¿¼ÿˆu#ÖX—óáœç|Øà€MÖ€  í0¤ÃCF§ŒNý/ûÙàƒŽƒ‹õ©ýõréœT òFí¹Úüì›wŶušþŸ·îÚòHÚEn޹9ææ˜þwö¿³ÿÁËÁËÁˆ8œ8rdåë3µÏÔ>S#E¿—•}|D‰üµþçœ"ƒ¢<ú T ò†Ç{ÚEÂZ…u3¸àD“EgO¾xòÅ“/¾qÑ‹n\”¶÷Ò®8ù¹ê[¯Û÷Á‰|ò~,úi‰íÿùöÉ—OßütÚÞk|\ããÿÛø¿ÿk À‰ ËÍÞØgcŸ}"E¿çÏ¿mt‘Æ¢ßPX‡°&i{ÆõT+8d¥¸[Ð-èvë¾[÷ݺ/mg™wkî9é¥zËÚO.:ÔiK-¬IXŸ´½ÿÔ³[Ð-è¦VݲPüùŒÏg|>c^Ÿy}æýËŒÕfÛztÊþ˜ù1wÆ4vÚR kÖ'moXϰ¶jÑ-K<xÏÍ{nÞsséoJSú›´½7Üܯ^™²åN©Õ'ÿINØ¡­^?ÿ‘=2ºÓ̵kÒö®»|Ýåë.Ï?:ÿèü£Õ ¢O–˜<¨ô ÒƒJ§m?3O£÷ ¶ý¦_X«°né¯3Žó à]—îºt×¥e–]XvaÚÞ»¿óé ~Yì\œªÃ¨êU[^?XjХ׌^15mïšškj®©YðÛ‚ßüV­ šçÀþýáßþ¶½Vß6ßÅ÷ý™°na Ó_s »;npr«äVÉ­ùõ‘_ù5mo­ZW¯ãôdD¤†5ë¯JMŽ[¼¨ò¢Ê‹*§m¯8ù²ÿj˜ÿÂ"Ërupz2"¬aXÏô×Ⱦr¯ ;46m{í7ÿ3;þÅàô cpGß¾uë.[i ;ÏšuÖYáï ÝWwÞ_ùÝØ–³þü,mo49··mr›~O_üëòîé©LXÏß‚IÁÎzië_3¨Ôô.€(qf'åKÊ—”oD÷ÝGüK„Yüï ò&e|+‡½Õw,¸jÏ©–>{͆!ïÜz]±•sßШÉïç ¬{Í€?¾ûxbÇ3×ô›3Øð­îÙ·3yTf{¤z†õÏ…·D‡ã¯»b슱iÛÏýö¦%qoÆTÉQ ¦]ÚÞ‡JÍìtæøÔÿÍÕ}%¸ X6¹ÞKã7uø¤ê}ÛÖNüõ«¯·ìl°£Æ†3ÄܳogʨÝ7ny/©ÌšŸûûò™Ó¾½õâ74j²ü¼3~·wKÚUæÞžohŽ©krÛY#K”ŸiÂz†µMÿ¹²£ãp èï¯þþêï¯ …ƒÂ©ÛÏÊyiëBŸA0èß^Ó*G똇³Wqçxÿûm5_?¶~âCaK¡Í%›æ^;¶Íª"mJ~V¥D¾ ÷WÞócráõ=~œõwÕù‰#Ë'ŒØ?aw¾ä#çÞÙsõ¶Ž…'ÍúÇ™¯ŸÙð©ß ¾ûÎMÉ+{OÚjÿÝ5±lR¥ÌÝîêmóŸÛ½o×e“ÿYs½Ïï9¯èú0ÐM5÷„í©_Uêô*+óÝ‘ñý‰TÛÎň`D0›²»cï ö{ÿ¥½üs¤ä68'hÄfîGqתÕw,9õå]«ÿ>5aFÒ—IöONY˜°cM½-æoY>aÄ{÷´>íÏ3¶,üã¿û.ˬíî8yăÿIÝRîÝZ_æ_)úM­Õôw>+ûÏÓ·\¼¢×¾Ž}ûÖ­»lY†v蜠YûOÓ}^€ìå˜À;~ÛñÛŽßÒ¶—¼¤rë|'-&_{ðšà”ó†´._«Åؾo—¾ðšš/N)5©ê מ[&x8˜œµg̶I¯¾?å?O¬z+å””RÆg|»ë{;×wUN¾êü·Tuí¦ØKÒ3ç¿ó$Þ˜ôÏy)øq±[s­É¬jDªs¤ód/Ç4N“8&qLÚö¸§KçÏ]9s·Ó*GëàáëÞz­béž î4¶øŽ±-:ß»îû3]œ·PÇ%Ÿ|¾2qí•…žk\rlêW½úÈ…s¯˜ñ­WhÝðÑ‚å.ÿO·×KιìãÇW”X›þ×.ÚÿÉ9Û“ÃßËõ8¿Iþª™U“HuŽt^€ìå˜À;oÜyãÎÓ¶ŸT1î@ÎB™»­³Îº´¡ Ÿv|ð·u]ÖԷ_¯´ã²‰…[¤~Ué%5úÔähû¡oþœ2*ydÊ+S¿~£÷_ÿl0ë‡=ÅroÏ74fÄù¿ßš«ÈÎôÜ8:="Õ9Òy²—cïºo辡iÛsµÎ7 ÇÙ»­ª«šÝ»'=Ñió›úÔ?eVø{ÂŽÕîo‘ ÏÜM· -~Þô÷÷£Þ¾û£5=ü2계9+äîS°YÒKkJß8økWž›YÛŠTçHçÈ^ŽiœÒ4¥iJÓ´í1­ƒ!A¹ÌÝVüà²I¹{§gÉ"»Ê·Ìs0ü}O½mç%u8ÚuH辺óþÊãÚtí²¾Ü¨횯)¶±ÅÏ›ö~_dÙ©ó4mYd@RÙiòI“Ošœ¶}åOߗܽ#s·µlÙ·v6ýóŒ9·ï¾#Ò2K Oj²c습3Ýý^ØrÞÖ%ãkg<”]õÖܳw÷ükãòjûös‚³šVzæ‹’mû¿¢ÌãŽeè{´ë d¹ŽåÆb.Œ¹0æÂÚ7×¾¹öÍóFÏ=otØžtùþgR¦X¾·Iò»¹ßΓ£gÆ·uÒ}qç¬ði½Ï[סV\ëSâÛ”+RûéüyîÙ·3eÔÊú³~Ø]lÉ'ŸïL¬._zI~'5ù¨j‡NkOíÜyVðoíö¥kçï2úÉöþ?ówïóåþ3þåIÃ?/úªÍŽíÁÙÁ—A¯XáSrŒúÕþ¬Ôè½,þòÂàà á0Ž¥æ-÷ÄÎH5Ü»7%¹kR…ýϤüOž oˆ¹Žý&¯~òê'¯~2uÚ~þšÏ´/~û™-òžš [iÿ»¥N»½óÐu#æ#Ë'´™¿}äÿ?vý$‚µá¯…•ú=÷ö++=Ó±äƒs7VNŒ´Î”QÉ#ƒWö|µ­SÒgaKß n°ì_nãœÐ}Uçý•ƒ ø2övÝQ6¹RØ>å¶×ªÿõèáKÍÎ-gÅghÆpXÛHçÂÛ¢CŽc¿É†l80mûŠ3'íú4³¶R¦É¹mòw:··mJ›³^z{Á'ý_?çU9+äîS0þÙr}sÿrA­Ûo)ÒþÖù|[¾ñàÜÍ'®l™Y7gÞ~Õº·ÌÈ:§9Rm# ;:3€+^QñŠŠWooo¦nŸÕiÈE[ϼ`òíã‹&ç×±é_gü³åúæù%èÔ þg>nø{ßöuë.;ýŸöfAœ$Aмïüº—-«÷Kû{‹•žè7õVbZåh<Î N»dÇ'>ZapÐ9x48ë8ŸáŸ‚ñAbXÛà±à‡=@T83€óÕËW/_½Kó^š÷Ò¼©Û“;øzPqû-ë¾Ø?÷ÈÖ)Ä=ÜöCk×kìÓ§=)úÍjÂz†µMÝÖ?<Þr¯ ßÛâÞ÷¶HÛ¾¸üg›¿ÌÊ%[;ñ‡þî—]Np¤zFª?}å:^®·©Þ¦z›Ò¶Ï¿èƒ ÷Ö=¯íÒ¢wAËÂö„î«;ﯜzÉnÈ| …û0óÅ·m©|tžÏ¬g†W‚ ‚e ;V×Ûß§ó9Ï黮ﺾëR÷þ<ô«œ;þ ªÿÿ[Þm9ëÏÏR/Ó9˜Ûð5¾p¹™y>ÛÙ{Ó¬ƒŸ¯ºx~o•ägß}ºå¬?»ÿÓ”&úTÃêVºséÎ¥Ãú{@4‰IIIIII9^›ßTiS¥M•*mª´©ÒÎF=sp«q{Û&·é÷ôÅ¿.ï~dkXZbi‰¥%J,-±´ÄRoˆ&Ç9=øÓƒ?=øÓ{ Þkð^ƒÔíçÿvÛ‹\Qà=ùŠ­Hûª¾}ëÖ]¶ìD €Ó#¬LÚöÛ¦ß6ý¶é¯óÚ9¯£J}rd…xbÔ£ž•¶}nÅ÷.Þöõ¶žNÛÿ/sUE¿iEªÕ¡ë D‡,ŸÜãä'÷xö’g/yö’´½£Þ3wuBòË¿L©æ„EÖ'¬UÚÞ°¶aÕ ¢Uެ³+Jw(Ý¡tÎn9»åì–º}oÝÄ1ÉE§%¼uÏ–NX$a}ÂZ¥nëÖV• ºe¡8÷¹ßÈýÆü÷À¤í]Xlt™„¼KwNÞkp¯Á½§íýjp÷36ÖZ3}Áž=;yaš¤í kÖS­àD#kîVûŸÚÿÔþ§k_ÓøšÆi{?žwߥk®Kúñ·¿SNÌÓ{X‡´½aÝÂâpâˆIIIIIÉ¢1ê¾û:ìëPg~ùuæÿ¹üÏå.O»ÌuU^} t»S/¯ssi' ûó›Ù£w_ôéϽ¾î´½§V8µÂ©fך]kv­¼ýóöÏÛ߀G–€C‰%^”xQ•ÙUfW™½»Àî» ¤]æ’ñYôÉ¢O"-y}å×Ï)ýMù+Î\ Sv<1«¾ž{×î~c~yà§u—GZ¦Æ 5n¨qÃø¥ã—Ž_ZpzÁé§Ðp"Ë‘½v7Œ9']8éÂI¶ Úí".F§5ïØi̓ %×<½ÿ–¬tá~†û|èè7<ö°¢_ ”Íf§õùÓŸ?ýùÓ·÷»½ßíý½ä7XUàÇzµïiSlr±¹§¿œw`VØÿ-ç¯xt_û™óŒØÒøW¦—ß]ýÐËë4¬Ó°N×>wís×>gø©eû8´áŽ wl¸ãÎÏïüüÎÏg¥ÌJ™õÑIWÇ]˜³ÔE-;-.6û´Íu+°/ÿºøËr]}´÷sOé„I¿Xyò¬—vçöa¿j[êüýÅöï“6úUucêÆÔrík‡\[êÝRï–z×ÀÒŠ’ø‚ÁÉçO>òù7þyãŸ7þ™þ—æé\ Q޳j¬½~PÜßå:_&…’§W>5_<¯œôyŽe‡»#ûþûÚä³6®øåϽ»W÷›»vÏòEeÆÜ½ý¤ý}wOI>Œµ}|êǧ~|jã¹ç6žär¹ Y ’è €S9°þÀúëÇ–[bl‰öÅÚk_,ãëÌ[¯à»9:XRt]®wrŽÊs{ÌI­öK™³»êÖÒÛ훹ëŽäþßÊÀ-· ÜÒbS‹M-6å>%÷)¹O1L€ôˆÚ8µ¤AIƒ’Í=côŒÑ/œû¹/œ;èü¡ó‡f…}«Õ¶VÛZm»ýÐí‡n?Ô¿¹þÍõoÎywλsÞmh‡ë„€ÓÚº{ëî­»§\1åŠ)W ùkÈ_CþšµiÖ¦Y›Žövë–¨[¢n‰;‹ßYüÎâ¾nôu£¯‹(Z hȸ4ŽdåW+¿ZùÕÏ{ÞûóÞ…¯,|eá+ r.ȹ çâz‹ë-®·}ÀöÛDzmÜ=q÷ÄÝSmfµ™Õfž—t^ÒyI5®ùp͇«ä«’¯J¾Ó®<íÊÓ®TaàèD‰JÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %þY=ïÕ$%½‰%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/pairwise.png000066400000000000000000001520041431412030200252160ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwT×ÿÿqÓŒ±Š‚ ŠXPQA+öcÁÞ{½Æ^bרö^Q£q§£Øbï½`ï¨((îïÉï¾gY>‹ .ËóÁ9÷äDvvöÎ{î\æµ3“ư iè° À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À@2 +V0¬`xpxpx0}ÀQo£ÞF½=äÈÿÿÁšk¬ycÒI7&Ñ3H¹bÚÇ´i¨û¡î‡ºt>è|Ðùr…Ë.W g©“~Ô‰úñQ?VÒ3,îîîÖ4¬iXÓ#L<2‘>– âñ¬æ³šÏj::: î4¸ÓàN…B … ±K²<ÓóLÏ3½Ïµ>×ú\Û[no¹½åM~4ùÑdú°ŠQ1*×J_+}­ôª‚« ®*üKð/Á¿Ø%“ÊG+­|t朙sfÎ9¡œPN(ï}ßû¾÷¥ãñ¥ÝX{cíµk7­Ý´vSË|-óµÌ—\UØ1°c`ǩ맮ŸºþØÉc'Œrrr§ÏÖI?NéÇ,ýø¥Ë’ëȨgõc®~ü¥Ï[ò`⃉&†f Íš©ç=ìùc®Q¹Få•ôÑó†g Ïà o0¼ÔJj%µz‘îEºéèsR'`ÀøèÀ£,õXê±Ô#¿{~÷üîv_£›£›£Ûì5³×Ì^Q<¢xDq¶ Rœ¼|òòÉË}*÷©Ü§²Ý7R?SýLõ3ý³ñŸÿlŒ=8z0ÛIqvÅÙgW l0°ÁÀߪªkøÕð«á·'jOÔž¨¨Q¢°]_Ÿ~ ÒGú±é[õã²~Œf»)Åm¯Û^·½¦L ˜ð­F¢ËŠ.+ºleÈÊ•!O«=­ö´Û’—éØöCØa?Ð3ø¶€‘ú¬1®1®9¾áø†ãêŠuź¢U È9 ³ZW­«ÖýÔôSÓOMÙt€5x³ëÍ®7»BìBìBì¬ÙÈð‘á#Ãï;Þw¼ïÈVCÂôSÛëj­«µ®–5Wõ :ƒê ªsç÷;¿ßù­ørôc~ܱæ#£~ìækR€õˆmÛ8¶±à*¸ ®%ï—¼_ò¾uŽM‚š5 :=êô¨Ó£Œ///ÙvÀ°NÀHEŽö?ÚÿhÿâË‹//¾üó¦È%Kä>”ãPŸa¥X±ðçÊ;½ï,S'«ÏPñ㯥ÊÌ×Â~(»I.úëš2WB;Ô¹ãónɘ*±Åç |g<éw5Oˆó˜Ï{_çóÎçÏ‹}Ä>bããã¶&ð5EŠ:uê/Ç¿ÿrLÒuº1•\ÇŒ;ß}m‘²k¤ñKlØ4wKi{eí’ïËz«Ë–„•íz Õü¥Ã6Mšü´dÔôr¿§ñ nã\÷ÛÓœœœÚÞûvÖ}X÷a|ø<ðakB6:mtÚ% –,X² )Uk‹Ï† • D4ºÑõ¸ç€n3Æ óþuà¹^%}†o_|µäàc—<)QpHËùs¼~è=xÊI±­\û÷ÉsªÒžÙÎ8©¹ªÞû¶ nÜ.ø®ç]Ï»žlM@ÒéÇýøòyǦì÷sš–qjTÒ%kµCOå¯Ü¼Æìÿ¶·[Qªh§N ×Dxï¸uµæYµqÉÂ"{šôüóN¡ñÕóNõ8'‘’wÿîþݯÚ]µ»jÇö¾ #Æ#Æ#»Oí>µûT¢oÐçÔÆ¥`Ä!åSü|bõú×hç wrþÃñˆ%k>Ão†ß ¿[?ný¸•Í$—ÇAƒÕ¹QçF–쉭‡Ôíæ~²ìÚ•å*%oÐkyû0ãþ̯5t;R8ß:?±üÄòËÙâ©ÁóÏ>|$øH°EÇ—éþóªÝ÷ùyLŸUÕ’7èµ¼õ_:ßKø¹P·f{°¼ªÃO†Ÿ ?É$L?^X~|©ùl ƒ{ó¡cç-U:yã^ËÛn%7o(v¨Ä¨ZÝsùZ2 >|DŸ°Åäs æ@Ìñ-Æ·ߢ;Éi¹?æxð÷ûz J§ùVçš>ëê4l•kµþ%ñU’­6¶ÚØÊxÁxÁxí #†u"†My1ïżój?«ý¬ö³„'²žsNÈÞõP±ßnû•6¦í–±Zæo5§ýØ­kµ Seš./7¬ÒÏùêäÊ›ðgñå=Ê{Ôý÷WÜ_A I!ÛËö²½% -Ò¾N¡“î^ñã· }͵QÃÊUÍ2fL6ïPK>ËœÙsfÏ™mlllllL Øžð=á{Â÷XtïŠZ³ZŒõs˜ÝhïÁoúšk-5 ºêbu±ºiŒ4FRªéÇý¸ð±£î¾á;ó/½ïÜ>ßeÖúškû‡×JTô¼S¹­óæ„?>7 €ÄRk¨5Ôÿc^='[3‡MÇþnüÊPÊ:ã´Ó¿N6Ÿa–œqºéqÓã¦õ¦€a€‘â :t((áIjÿs¾e .yû¦Ó–ªß¥¬‰xÜöÃÞ.§‚êMp¯hÕ„?ïîæ»›ïnNm ‹={8öpß}sôÍñ?ž£öÇüeÒ¦”Ð×\{í¯ŽAE.ø!»‹¹OZp~Áùç?÷lܳqTHŠTÎXÎXnćFüÛ&~–1¥„¾æÚ²=gÖÚ?ÇyÅ×™}ЃCv‡ìG<ñp©>þëÇsG ÷_KlÉ>|@qs‰®)%ô5×¶Þ´(¨H•„çú»>gÐçT `*$}Húô !§7{”;a{gœv=­³ÇçÚÿ¸±ü½ð{á÷¨ÐÃ:#E Ïž%<Ëÿ¸5ͤV _ÚÞD— r݆©¦n˜jn¯)3Í5ÌéãóííßUneÛgœ.÷j‘±üÌ„ÇÒ“‡O>y˜š`X'`¤0—o\¾qù†Ù›—¦wªàøóófí/V®iÛñ¸mT»Nçªæ¬V-ÅÜ ÌõÌ»#vGì¨`|ýñõÇ×7·§Ì?t¹×TÛ}MÛpeÅQ¿ÙæúÄ÷£ïGßÑO¢ŸD?¡~¬Óìm³·ÍÞfn ú·yDßYeWÎ8¶Ë¶£ß¸­OäøFë¾3×'ùÓæO›?mÔȨ‘Q#©°%úØ®óæŽ=†lñšlÛÑïÿiû_J—¨1Hqßb®Oô¹õHã¥ñÒxs{Jã^…#ò¢GtþXõßÔsÆéQ¯vßW*–íýû¢æzævžÛynç¡~¤fÀ°NÀH1^ž}yöåYsÓÍ2g{9·c·*©g"·>Ñ%WÕ[Õäü½r÷0{ëË´÷ÒÞKK-!uÚVs[Ím5Íí‹b‡(îŸÚ¢ß¸íñ‰«'ø¯5×?ÝwÜý1Udmö7Ûßl3s[Í#¨e«ß§žÐ×´õ½;©ÖÆ3æú§EºéZ¤3Î5Î5Î¥– Å›kœkœ«íæFþ^ÇCw¯ŸŠ¢_“¶N¦!áùÍÞIKŸWPJH®_½~õúUs{G“ÆEÊåyõqxלAÃSç§g‘íwT.™õ®ý»g¦ý“µ_Ö~Yû½ôvÐÛAÔ€Ô‰Ö‰)Á$ã$ã¤Î œ8››Ž?{Ø~keïÔ9ÿ?W‡vz]Õ³HXÎï³ÇÓWEß}Wô݇È‘")+¤×2^Ëx-£¹ÑcJóÞQE§æè7n«º/éT¶Ž¹¾Úè¿Ñ£?e îξ;û®Ùë¶ó‹¿vÌ›š£ßÿs5pŽ1!«Ì>(ai¥=–ö ¢ ¥ÓÇss£}·f›Ÿ;›š£ß¸m•úÝÆ»0×WúƒŠBêñþüûóïÏ;­vZí´Útè—wAÎ1ßwñªú”3N{µ]Uñµ¹Ñ£íý¶÷ÛÞ§¢¤NÀ°NÀHÖ:¬uXë`nŠy#oËã+˜ˆÇmŸTo·«ÒB³qWÛ)m§´¥®|Øòaˇ-yóæ 4ÝZÖª½Û­¦qʱ>ÕŠýÆmW·÷k‰`scȧ;Nwœ¨®oåSºOé>¥ó±ó±ó‰gëäšâS6pWùˆ G[ýÆm½vô]8m†¹ª¾RöJÙ+e©.H‰ô1ÜìýÞþ5µpKB߸í˜Õú>õUi‡óŸ¦=¦Ï1ôùÕ…Ô`X¡a…†27†¼\×aWåœeŠÛ^nv?ູÛ9eç”S¨+© prÙ»mï¶½ÿ=æl↉&nxQãE5è™ÏC «ö`Àƒ˜›VîÛ_ïFé¢L¾ÍµÇ£štõÍõÞÅË/_¼LÁ¶ÍÉ>'ûœìæö‚·¿kV‰ î5×v9Øh»ûmÓ~+¿µüÖò[ÁÆ`c05öõ…ä É’Ó\U—k¸°»ô¸×\ëYOhaÚo…Ÿ~VøY¬«Ä*Ô¤ú¸­á¦c{¥&³åIÜk®^åX‰RÇÍÍ(ôù5Ûvb鉥'–šÛ Οn¶;@äÌ’¹vk“Z+K-2{—¾³ÏÎ>;KH=€“anß0¶alCsGÂàÏC «,é\Ò¹¤³1£1£1#•Ûñ!âCÄs“†³kÔ'âM¸}óN+Rå°¹>ÜfwšÝÌ"¾ª''žœxrÂÜ)õ|ŒÛÊÛD¼ ·w– ²«n'Ù½2íÃõåÖ—[_ŽJ€”B·ã9(.²OcøGþÓQ¾9zn»¾ÝPl—¹Ù…>÷ Ò`{b½b½b½\:»tvélZùKÚW‰,þ'g“,i[­ö|í¶À´»vìH¥H=€“. # ¶§na¥Næ9™çds;ùëQ•*ý™j[Ò~hÙe{öº쇚öäþ û3ìÏ@½Áö´ömíÛÚ×´æÇ=èZ$€p×ò6,jÙâ²/ÌÆï ï ï ÔÛ×ÑçQŸG}™n÷ºuö¶®N¸›ˆ§Ÿ÷níŸæªúM«7­Þ´¢ÞÀšécµ¹‘¼‡÷v7¯¾„»–·Äuò¼5íI}îA½Áöl²eÈ–!¦5_ämÎlÙóÇ^íº,è(g“,iŸçm¯T07_Z~iù¥åÔ€Ô€8éô@Wwí,Fœ0`Xá_óÆ7Æ7~7ünøÝ0Ý¥CÔ¹êóšIvbÛ#±ëú›}Žrl±Øb±Å(=؆«.W]®º˜«ö¨ra…ªÚë&¶m:ºúÛ¼ñ gÛ®Y#[ÉL¦ýY÷LÝ3uÏPuRàäEœ\€auθq;ãfº»MÏ>7ÛŸFv½ô‚éõçµµ.xíÒÔ´oDˆ<IíÁ6´ lØ&дηºüYjQîçµ·G„>­ÐÎÜ+FˆbjïËé×£_~=L{¾èÖ.Σëå~^ëwlî’ý{Í~YDŽ’£dj¬>>›½[Xr îçµFMWð¦i¯êój¶a»ßv¿í~¦uÞ*¢X·uœ5ú¼öcٮߙýºêÕ…W^]Hí°mÀ_apRÃê? ~Ï-.åL¿.*s–‰uRÚó#›Í ØlÚ·ÅcŠÇ1~4~4~¤‘r=n÷¸Ýc³!å‡9‡å&©í4¿aŒ{Ó¾Ýwaß…}¨À/áå•—W^^1WÕ¡KÃN ÊMJëþºžÜö¡ißn^·yÝæuT X}|6·+5ëì”w!nRÚQÛOñyinÖ¡ÏI¨@¤`•Œ•Œ•œÏ9Ÿs>gZá7æ´Œ ÜÏY£¤´¡¡uÓøþÏmùC{„öà®Qlð×AœXÀ°"Ïs=Ïõ<—ÙÛ‹]ç…1¥Nzë»ÙÕÞif<ð¹qäÆê)×_þÚðW<‡ÿ•Çlô¾A|›ôöšÓöÝ…M{¸Ì‘2GÊ0z|«Ÿ®~ºú©iŸvjýnàâÛ¤·e_Ïz½·F<÷ s s 3^4^4^¤À*\4^4^ÔÇgÓq{`'ùu‰‹„¸Ioë9hž_4ía}NB"å:ßê|«óñ<;¼VçG\9S”ô6æE—‰AnæÎé½ùîÍwo¾£Ø*à¯0ØÀ°"ëJ­+µ®”én¹"sPï6L¦“«ýgIý9¥Æ3üõØwb_ê)’£ÑÑèhîÐþj»¼°Júoš^­»Ý±ü‡¸ë“Òc`ïK…÷æbÚÏ·=ÜöpŘlÞßßå{”ïQ¾xîŠá_mžëÄ·ÉÕæä}Ñ¿±i?ßZtkÑ­E#X}LŽçKQçËgpZŸ£Ö~ßí¯éÝ6îg±†µ²åÐæ’/LûYŸ“èóª)Ñu€:@5­íCeñû•3EÉÕΜYáOÏxn&¿»úî껫S‡lð·El0¬H©:¥ê”ªcº+>Û¾P¥›L£“«}·«sÃªÍ |ŸÞ~zûé-Õˆ”åfÛ›mo¶5­çæQµ6çýømãRÓ8¥ÇÀÛ¤i~¥žÄs]HïÕ½W÷¦“˃]v=ØeÚÏ9ç–(åœÈ6yÛ…†´š?×´·çš{hî!ª¬>&›ŽÕííWøíLœ¼m—ò:I¦½­ÏO¨F¤,åòG³Ïÿ0±‹T…3EÉÕÞ+Ô¦{E_Ó~®ñ¸Æã©F¶ŠØzÇE «ð*æU̫ӯôE×1N<÷÷‹´m¯Üùj›öùÝmw·Ýå>¤0‹#G.ŽŒçÙá {—yMœ¼í‹jâžÊÄó?=éô¤Ó“¨I¶‡Øú¥Î0˜VaÂÛ o'¼5ÝÁ®ù¶t ôfêü%Ú§;ÛûUŠç¹’mÚ:´u &‘RÄ<‹yó,ž‚5ó•s¬o A©­ÀÓôëèYÔôs]zyé套TfRÄÞ½{×ÜÔ3Ðwå„cë k¿D[´h§±£*›öù‰z'ê¨GeÀ·¢Ã¦ãóoHüEÚžw–.nn6¢ÏU¨L¤µ}kûÖŽç¦Ä¯3tœ_¥g‡¾D{Æ!¸~¹û¦}>ÿãüó?R“lpÊ’zÂ``Xÿýÿõÿ×t§Š.ÖùfUƒõLam»¾âÛI3fµk:§ÈμeKÞrù9Çó nØkEº:ßÊþcUÅ}{®÷3³Whå©=wm¯T°Îéø§èn?WË`n83^5^5^¥2aý"¢#¢#¢ã¹àíN±·¬9>õýº åz·¬^{—[üZÞÊÙ„ ߨk¥N{¦wÊ?Ò·Ó ýÏ]…•¬3>’+ä’ßÍxî"ðãæ7ÿHe&ÅÓOw<ÝaÚ·n³«4-cÑiùÛ!#6ôÜÚ½òøö¹Öû,ªà•uLÎG®™ìÇe[éø&û¼üËŠÌvÏV'M«Ve¦N»c†u~ ß “òn\fÚóK¦.™ºd*• ߊ>›ŽÏ½¶„)^ÕzBÓ1…ÏôÕšdý³z¡ÎžG*û8¯vZàúÚáaÖõÙÙWλ¹X&ÇE•nwI›wóàZa•JµêxìÅ‹¥K—ëÛâ°ëÓž×ç*T&¬ß§¥Ÿ–~ZjZÃ;íÓÛmÐoVlmçjÂöýÖ¤ìíö×½îå;¨ŸeʾÎa¼ýt/Ï\Õ²ßh²ªHÓ¼ßÿ=­^oߟ\ºî ºlgœÞ´ê”­ÊZÓžo`h`h` 2Øà”˶Ã``Xéé:Õq@Ö&Ö3yUî5¬Y6е˜ã¯Y+Ú%Ò݃­ïW¸g“ò: uÙÏM\Ͼ;ûî,• ëbZÃ{Ïñð]iͰãžlÃí›&ËÄEYdÁtmÛh? ý*¾}6Ÿ‡<ž­Ô;kJ‡õ>"”šPÄ©ü'Áò£aðÁ<êXs%˜®óùcç?FeÂúZ9j娕ñܘ®¡¡s¥sÖ;Üu² J,˜XÆKÿ¸OÖÿ{K¥?ƒJ5·ê'_9¶­Z éÚ¯µ_k¿–ÊLŠYƒf š5È´oËFÎz¾·²õÄ¥Þw˜×àÿß%ÙþCP iXàB£þ¯ÿ=±8ÎïÿW!ã²­t|óžjle‘vVGçy¹›r¢ ¬ù¯ÅÓ\ò:Ì´†ˆ´Å£¿þ?Ö®7x˜ûIý_ͪÞuAÞ÷Öl'?-qÁt=õ¹ • ëwtÎÑ9Gã¹kÑßÏëÍõýd çdn}×ê îڻ؅æìžõ‰C—‹Sš—Ïgî÷ÿ»ëÒŠÒ• X <¨eiBŘWHóU`[’rÃ``X鹺Aµ{%[ÄõððF‚ß~O|Æôœ<:àQÑj–L¬MCb뜎KÑ¿Î)ÏufC† ¡2aý:8vpìàhZÃQåÃ<ª:XgÜþzƒËùZèÆ}U­Îå÷¸ZÛ ‹-)ä•]àOúä5èÌ 3ƒÎ˜öj¹Ê ý¥ÍÖ”º>¼Y§·¾nyNWú§‹%nÜO”sv OÍÚàœ…‹ßós¡ªÀšÿZ,œ£œìÔÕ"Rï³5+åü¨¯•~ hK^5ºêÙ§¾ƒ]{ΗíŠ5ÀÃ]¾,%ÅóÈ3ƒÎ :CeÂúí›°o¾xžc}ü·&EýYÃ9™qÇË.òß—E¦þV>ªè#KÎ}¨ÝecPiý©Àúï÷¬V²sþûÖvÆinšŠgŠ­c^ uÎW €mUÊ ƒÓXÏ.ĵóbz>ˬóªÙ„§ã±ž][­žs¥bX±eÖ‹m’Á"õÛ³ |VP&ë €å7‹‡”MgÉk÷œ{©´ëÿ¿ù¼ÛÇ"Övp•Ùe[æ ¥Þ¾Ž€à%ë­'(Í®(^´®¾nq¯ýýÏÙ-²à™T½Ìƒéëvý\våÌ»£­-v-0´fê ¬Yɘº?ä µ†ˆÔ%Æ£Y¶ÿæB­=¶/âdy”kýWœ=<9¨±uÀwîÙSáž%¯½‘wg­Àñ$Ö׊ôpiC½}[–n=ØÕ*ž•ºâÉ‘ùq×­lÕGCG[[”ûymž?*î©wœzkVº~ó¹O}ÛptÔSG}®Ç]«~þ¹â½Õò%´y½d|‘q—`mð¨e§3ø<¦Þ`{®Ìn1´üik8'ãêšÍivÒ?Q~-ÇÁl‚µwÚðK %;Soèb¶ÆlÙJ XÝÀ'Üš\,÷}ƒ …îºNПÎbnÍKvi甿ÝS¯iùfšþ+W_é€jÅWGw;´¦êK^ûnÒÁ¢U[Æ7’ppjd=W—=9kÌž=ÿgÝŽ-³;øÀ6`®ëg WÌ 7)±?îZé‘°åKè9~ç¯Ûq—ÀÀÀ×a=W;MÎZÆ>&éŸ(îr¸딊®ÖïÎ?úéÎ`mÏαÀᆽ¦¯›wæ\19jéOjÙ³©îßá׋·ü=°«þýUWë¶þoäcmñ„Ÿ¼0`aÀÂ*“ëÿ©×¨^£zLkØšŸlùÀ·"CGW¨¬¿*ëÙ¬ßÛ=þÿ#‰µ?˜ÊLÊO«|­òµÊgÚ«Öó à€eKG,wÝüšÏ)ó÷cÛ€Í=˜Êä‡~ø±ž¿­áÀ£÷žÛãûúó{ó«½ÏZ¾„¶——9ùdͰ¹gës*“ëÿ™ÑeF—]LkØzž¬Ÿ_Ò×j×Å:Û|.êg“>¯µ¶óNæžLeòÃ?©a¾º í‚´ ÒÒ3¶÷ó÷°¿‡ý=¬Û÷ݾïö½åѯþû©èÀ@ÂW„OÞ`,ú›5LXëÔ(8Òe³¾Ví¯{ÝËwð“K×½A—Žu¯´lÑ©üAë€7Ž­éSò€ézž?vþØùcT&¬ß¨•£VŽZiZÃO:W:—ÒŸ| þüL¥•ÿÿÕ“ÂNÿÿÔ€UÀWŽm«hÚóökí×Ú¯¥2“bÖ Yƒf 2íÛ²‘³žï­l=AiÜu+õ㨀å-yUéÕSÖo¹Y¸G›ƒÝ ‡·Ë3dq ÝÊ,DzXÏçÊêèC&Í?â3xì‰5é‹lï3¢f6—yÿû£(kÜM\XÛ“ƒ}/LÊ»q™é'Z2uÉÔ%S©LøVôqØt|îµ%tHñªß8(Ír1séxþž*þ¬úŽœÛ¯œòG¡Š]Ü6d*–½IÖ?«ê앯ꌜÙÿûÒs¯Âù²]±æ¸\߇]'Äó°•Ow<ÝAeÂú}Zúié§¥¦5ì°Ó>½ÝãënªU±†ó3ñ<)°‰fù+oUãlÉ1z¸»gSݾÛÎ)²óÿß#J×6}±KùòYÛ§7­:e«²Öôs504040P™lpÊe{¡o\À° ÞNx;á­éŽtÍ·¥c ÷·¶>-ß>S¥“úMu,.÷h‘¡üL÷39zf›÷ÿ×nZÐÝe 5LÇŸîlïWé‘éš·uhëÐÖšDJó,æYÌ3ÓJ.T3_9ÇúÖ‡í[Ö½ìíœÝ ;tIx$)îâÑ"G¶»÷ì©pÏÚàiúuô,ÏÍ·_^zyé%•™±wcïÆÞ5W¾+'[om7‚ÖoælÉñÑa‘Sæœm¼‡ª0÷’õ\û«·E‹v;ª²é:Ÿ¨w¢Þ‰zT&|+ú8l:>ÿ8¡qÁÖ”u ïPÊ¡à˜29¦Zr4t?YrJöµz0l¥pÏ‹;K7·þú\…ÊDJQÛ·¶oíx®F}¡ãü*ͬáüŒ~KçÖ…‹pÛcùy§ú¹ ýéZïýÎKªÎµ¶øŒCpýr÷M×yþÇùç¤&Øà”ŶC߸€aÙ²?doºS­ÈÔØ»½õ|sÌcÿ…u+—s¸þl`½­|3ßÇ\S̨<Ákk¬g×–A«ÿϳ º:ßÊþc®æÙª:,ëÞ±Dhþ¡Öð‰l®ÿ®ô…x®Þk±¹ÅæÔ$R–€çÏžÇó'}?å}•¾Öëÿÿ¿¯\|¨ß6_p~-oålBöuŽeì§û¨ž‡œZŒ;Þ}Y‘Ò¯ÃT¿*c­-úÕÛ¢ó ,Ê^#žÈ?x÷àÝj2éŽj8ªá(Óö_3¿†àa=¡iܸȘ]‡OËÙÁ{±ÿÏQÎ%s]tè‘c„ó*çáŤÒÁîýêh}ÁïÞÜçÿäµ¶õ×[çM^Ê8™öy¤©D*Ô$|+ú8Ïþ®ù-Êa´žÐT_«†¿Œó/˜¹ðÚ€}N ²ËuÊ¡^¶œ9\컹·,!gÿ£V×ÜÇrê¨Ïuk¾ôÐù‡«–*oº†úü„šDʲ4×Ò\Ks™ÖóaÇF üÖXÛƒºô+}› (Ú1ïÚ»òd{ã¸Ç¡ˆ}SocîßrŒi¼³ð§<Çô߉{¶ÊÚ>ÅŒwzLûüô¤Ó“NO¢&Ø`ë—zB߸€a^żŠyÏm“K_tãtÖz¦° O¬Íý«uNÇÛ*^¹óÕ6íó»Ûîn»»šDʲ8rqäâHÓz–.ö.óÚâRs!nbÿ¿5´/ª‰{*Çó¬»÷÷wª1¹l*¶©Ø¦bñ\>½ÿ¯³ì­3@Þ¿~«6Àmq”V2žÛY÷+Я@?ª¬>&Çóàª'vú ¶¶›'› tMã^ë¼ùskç…5Šd5ím}~B5"e¹²ùÊæ+›Më¹ÿmßr—YÛ¹Ó›B§”³Lÿµ¯»uªV%o¦ì?fÝÏ×…«¼«ò® 5 Àö[§ÔúÆE +RªN©:¥êÄó„¡±í Uºi¥SÛؾÛÕ¹aÕÎæ¸Oo?½ýô–jDÊr³íͶ7ÛšÖsó¨Z›ó~´Î5å¶Û¤i~¥ž˜ööêÞ«{¯îM5&—»ìz°Ë´ŸsÎ-QÊÿ¸5À)±-QhH«ùsM{{‡æ¢Àèc²éXÝÞ~…oÑÎÖ ¦ô¶ˆKù?$ÓÞÖç'T#R–òGù£lîȇ‰]¤ *œ)J®ö^¡6Ý+ÆsÃík<®ñ˜j`«€­¡o\À°"ëJ­+µ®T<7‚ÎÔÀ» ÓèäjÿYRNé…ñ s}'öØ—:DŠäht4:š;„¿Ú./¬’žà6¹ZïK…÷æbÚÏ·=Üöû$ŸwÆwÆwùå{”/žçµûW›çz`#Ámrµ9y_ôolÚÏ·ÝZtkÅÖ@“MÇêÂçËgpZOd›\í-‡6—|aÚÏúœDŸŸPH‰¨ÔªimÚÐ(‹ß¯œ)J®væÌ zÞ4íçÝÕwWß]:`«€¿-B_s€aEžçzžëy.s;d¬ØuNP“餷¾›]ífšöð#7ŽÜ8B"åúkÃ_þŠç0¿²â˜Þ7n“Þ^sÚ¾;°°i—9RæHF/bõÓÕOW?çd·SëwÏÜ&½-ûzÖë½ñ<ÍÚ-Ì-Ì-ÌxÑxÑx‘:«pÑxÑxQŸMÇíä×%.ß&½­ç<¢y~1ž{½<]ýtõSÊ)×ùVç[oeZÛµ:8âÈ™¢¤·1/ºL r3wNïÍwo¾{óuÀV}„¾– †Õ ~ü(8ž«äL¿.*s–)uRÚó#›Í ˆçÉ7ÅcŠÇ1~4~4~¤‘r=n÷¸Ýãvfoí5çp£ BÜ$µæ7Œqï`Ú·û.ì»°ïø%¼¼òòÊË+æª: tiØÁ „¸IiÝ_דÛ>4íÛÍë6¯Û¼Ž k£Ï¦ãv¥fòŽ"¾MJ;jûé">/ÍÍ:ô9 ˆ¬’±’±’ó9çsÎçâùBüœ–Qû9k””64´nß_Lû¶GhС ÛFüuú&0¬Î·3ngâùΠÛôìs³ýøid×ËA/˜X^[ëB×.MMûö@äÈ‘ÔlC›À6mMë|«ËŸ‘¥¦â~^{{DèÓ fÃõ!Fˆ¨½/§_~=úõ0íù¢[»8®Oˆûy­ß±¹Köï5WÕQr”%S{`môñÙÜè=xDØÂ’Sˆr?¯m4jÒ¸‚ñܸUŸ‡P{° Ûý¶ûm÷3­óVÅ2¸­ã¬ÑçµËvý.¨§¹‘ùê« ¯.¤öØ6à/‡Ð7)€a}ÞßßøÝð»áwÃt× mPçªÏk¦×‰mÄ6®ëï`ööÚÅb‹Å£ô`®º\u¹êb6Ô)V¨ª=nbÛ¦£«¿ÍëÏíµCW†®äÛÜ_ÜÝžw{Þ5{J¥\Ï…¹!nb[·€j%Ç3Ó˜›~nú¹é©:°fúXm:†û/oÞ̵QnbÛáã­*uÛÜLCŸ‡Pu° 1…b Å2Wíg/¿¨Ã¤Ä¶ëFÖÈV2“iÖ=S÷LÝ3T€Ô€8yú&`X©“yNæ9™ÇÜÎüzTG¥J&Ù–´ZvÙ䟽®Cû¡¦=¹?Ãþ û3Po°=­}[û¶ö5­ùqº‡ е¼ ‹Z¶¸ì s£ñ{Ã{Ã{õöuôyÔçQŸx‘à^·ÎÞÖÕ t-o}Î{·öO³Ï'kõ¦Õ›VÔX3}¬67’÷ðÞîæÕ—X×ò¶‚Ø¡Nž·¦=©Ï=¨7Øž-C¶ Ù2Ĵ拼͙-{þØ«]—ål’%íó¼í•ÊæFãKË/-¿´œz'¡ï—@ «ánÂí›wZ‘*‡Íõáî4»ÓìfñU=9ñäÄ“æ¶H©çcÜVÞ&ÜM¸ ¸³,øP]u;Éî•i®/·¾ÜúrT¤ú¸ÏAq‘}»À?òŸŽòÍA¸›pÛõíæ€b»ÌÍ.ô¹•ÛëëëåÒÙ¥³KgÓÊ_Ò¾Jdñ?9›dIÛjµçk·¦}Ø=°{`÷@* @êAœt{·íݶw¡oòâÔ-¬Úƒ<`nWß·¿ÞÒE™p›kG5éê/šë½‹—/^¾x™ƒm›“}Nö9ÙÍío×þ¬AÐk®ír°Ñv÷xnX~kù­å·ƒÁÆ`jìë É’3$§ÙÛA7\Ø]zHÐk®u¬'´0í·ÂÏ ?+ü,V‰Ubj R }ÜÖÇpÓ±½R“ÎÙòŽ$â5{Ûç*ÇJ”:nnF¡Ï7¨1ضKO,=±ÔÜ^pþt³Ý"g–̵[›ÔZYj‘¹Þ{vöÙÙgg©1©p2ÌíÆ6ŒmH蛼€‘¬uXë°Öìókoämy¥û”îS:;»xÊl—kŠOÙÀ]å#B&mEÜ·õÚÑwá´æªúJÙ+e¯”¥º %ÒÇps#|‹·M-Ü’¸7n;fõ…†¾O=GUÚáÏô9†>ß º +4¬Ð0³O~¹®Ã®Ê'8Ë·½Üì~Àus=¶sÊÎ);§PWRàä÷:`Bߤ#FJ0É8É8©sçÎf¿]ø°ýÖÊÞLÄ£B;½®êY$,ç÷Ùã髢+úîCä‡È‘”Rk¯e¼–ÑìW"š÷Ž*:˜ÐWoU÷%ÊÖ1×Wý7úoô§¢¬ÁÝÙwgßmnKå 옗Ð÷¿'þæ²j‚¹¾ZÚci¥=¨(HéôñÜÜhß­Ùæ'ÅÎýêm•úÝÆ»0×WúƒŠBêñþüûóïÏ;­vZí´Útè—wAÎ1ßwñªú”3N{µ]Uñµ¹Ñ£íý¶÷ÛÞ§¢¤NÀ°NÀH1^ž}yöåYsÍ2g{9·c·*©s"}¢K®ª·ªÉù{å6{âã^Ú{i便–:m«¹­æ¶šæöŽE±Ã?÷OÍÑïñ‰«'ø¯5×?ÝwÜý1Udmö7Ûßl3s[Í#¨e«ß§æè×÷î¤ZϘ½&,]‹t-ÒçççRKâÍ5Î5ÎÕÇvs#¯ã¡;Š×OÍÑoLCÂóg1×?ú¼‚RBêtýêõ«×¯šÛ;š4.R.ϫûæ ž:Ï8=‹l¿£rɬwíGØÅsËý¬ý²öËÚïí ·ƒÞ¢–¤NÀ°NÀHa.߸|ãò s“ò‚é*8þü¼Yû‹•k¦¢«~Ûu:W5gµjù+æn`®gŽØ±;bGýãë¯?¾¾¹=eþû¡Ë½¦¦¶è7\YqÔÏ쵤¾}?ú~Œ~ý$ú õcfo›½mö6s[°Ð¿Í#úÎ ,»rƱ]©èªßÈñÖ}gö é´ùÓæO52jdÔHêl‰>¶ëã¼¹£@!ÛC¼&§¢è·ÿE¡t‰Zƒ÷-æúDŸKP?€4^/7·§4îU8"!zDçUÿM=gœõj÷}¥bÙÞØß±/j®gnç¹çvê@jF ëDŒ)ácA»©Ëëõ³íèwtûsn¾cÊÿÞ¦fžæúAŸ?ès *Ðm˜ºaꆩæöš2Ó\Ü>>ßÞþ]åV¶}Æér¯ËÏLx,=yøäᓇ© †u"F &ŠGžŒhRÿbiÍö&âGw7žíðgßtqÓÅM©ÀTlýØú±õÛ¶mÛ¶m[s{PÕ e ¹N>ó2UþÑ–Bߨ»G 3³ëÂfÃB»…v í>)ü¤ð“ÂTKJñéî§»ŸîöîÜ»sïÎæ6lŽ…*{ï'Îý}ÿ›Š~]W«YÈØbt¿æ ï »7ìÞ0ªR}ÌOø¸P»Íà…îçÇ–ºX§tn[Š~·k[rT¾ÚÅïfÏoî³ës}þ@µ¦BÒ‡¤IŸðrzc°G¹¶wÆi×Ó:{|®%üÙÃï…ß ¿G€ŽÖ‰)Þ¡ CA‡‚ž˜ö?ç[¦à’·o:m©ú]Ê‚ØÛåTP½Éî­šðçÝÝ|wóÝÍ© a±‡cÇo޾9Þ§ ÌÿP&mJ~¯ýµÃ10¨È…?dw1{#ýùçœÿlܳqÏÆQ!)R9c9c¹F|ñ!áª.> ý,cJ~ËöœYkwþç=f_gî“fwÈîÝáሇ#Ž @ µÑÇýX`îHáþk‰-Ù‡È!n.Ñ5¥G¿­7- *R%á9€>OÐç T°M#6Ø4"á}jŽGűÅÆþÛuaPxÊ=ã9®c‡*þ]ï—(?_Ÿ÷Dà O4¤6 .`X'`؈KG.¹tÄÎûZÔ3”Ξ²&âÿ¶É/›%Ÿîh³£ÍŽ6£€D8cËœÙsfÏ™mlllllL Øžð=á{Â÷XR ùVÔšÕb¬ŸÃìF{Z[èph©ñà™be{DO\dÉg™üÃä&ÿkŒ5ÆR€ÿèÇýaÉÑ$ø·>GÝ8=ÂÇhm¡ïÀÊ/3·m–§“%ŸEŸP@RÜîv»Ûínù2äË/Ãÿ¸½|–‚é\:ž»Õ¬yÀdk‹{?åîº'è²|ü×[eŒnu³ÏúöŒ„O‚Ÿ?yÝäu“×M¨0‡Ö‰¶¨œ±œ±\È?!ÿ„ücÉÃÙÓ9Ô´ï¶þJù%[~šÒõFЫoöœ•ð:|Îîäü‡£EW3Ïð›á7ÃïãÖ[?ne³ÉåqÐã ÇAunÔ¹Qç†%{bë!u»¹…Ÿ,»ve¹Jß*ô}˜qæŠ×Ǻ)mg±ËO,?±œ-ž<ø|àóÁG‚[t|q™î?¯Ú}ŸŸÇôYUí[…¾þKç{ ?êÖlcï–WuøÉð“á'Ù éÇ Ë/5Ÿ tpo>tìá¼¥¾YèÛ­äæ Å•U«{._‹ì#ÁG‚ès¶8\bĈ90¾Åøã[X²'–ÔrÌñàï÷õ”Nó­Î5}ÖÕ9hØ*×jýKX>ìÙmlµ±ÕÆVÆ Æ Æ lwH0¬0l\Ä™ˆ3g\mpµÁU˧¹AòçÏ]aSÙšCJFD lãQ1SòN¾Ÿôn'W Ùùw*>óNõ8ÇÑòuóïîßÝ¿ûU»«vWíØ¾ÀtÄxÄxd÷©Ý§vŸ²K¤Nm\ FòX>ÅÏ'öáQ “7î=wnÓOf¼íßÌÓó—7~µ|ݦÙO³Ÿf/:_t>6rêdÈcÈcȓتÎ׿VÚæ§Kþ1bñÒôå_ázxFòƽ¥ûO±ÛâR¸gãà‚YäT\.[¾nã2ŒË0.CÔö¨íQÛÙ¾ËéÇý8bùqÇiˆ«Ááz½‡#µ?ô)¹7oñCÉôŽž|®£ïôNÖþä9¶üª6ËòTJìQ[?Ö³}/íüŠó+ίðÚîµÝk»å{hðì¢vyßÓ¤îRß®/òvp«œÌ·Œ¾=ªu¦ í×®þ¶DL`ŒÛ䜛,_·sZÌi1çQþGùågû€å€a€‘Ší´ÿÑþÅ—_^|¹Ýg)Y"÷¡‡ú +µ°ÀŠ…?WÞéuxg™:Y}†Š-Uf¾ÖðCÙMrÑ_×”¹Ú¡ÎŸwKÆT‰->g€à;£àI¿«yBœÇ|Þû:Ÿw>ï|^ì#öû§§§°5¯)êTÔ©¨S9þåø—£]Ô©ìà:fÜùîk‹”]#ï\bþ ¹[JÛ+k—|_Ö[]¶$¬l×­æç(¶iÒä§%£¦—û=gpçºÜžæläääÐþóÞ·û°îú{àóÀç[ºè´Ñi£Ó.Y°dÁ’I©ê\[|6T¨\ ¢Ñ®Ç=t›1n˜÷¯Ìõ*é3|ûâ«%»äI‰‚CZΟãõCïÁSNzŒmåÚ¿OžS•ö4ÈîpÆIÍUýóÞ·]p»àvÁw=ïzÞõdk’N?¦èÇ—Ï;6e¿ŸËèдŒS£’.Yë¬z*åæ5f¯ðø·½ÝŠRE;uj¸&ÂsxÇ­«5ϪmŒKÙÓ¤çŸw ¯æÑ{T>'Ïó•k:¯OÊY?¦ëÇw¶&ð5}:ûéì§³GÿýwtRöâò«ÜÒål9¸Ié …:-󫺲øÛÝëÖðõ•·üz®Ì;mnÃGeWˆÄ”é¿#OíM>þó«VþÅ«}Ï“%øÑ«^®ß²ßû¼÷õÏéŸÓ?ç©4§Òœâ,1|&`X'íH}Ö××ßp|Ãñ uźb]ÑÎ*dÈY­«ÖUë~jú©é§¦l:À¼Ùõf×›]!v!v!vÖldøÈð‘á÷ï;Þwd«!aQ¢D=XWk]­uµ¬¹ªÕTgP;¿ßùýÎïl5À—£kôãŽ5õc·~g«Ö ¶qlãØÆ‚«à*¸–¼_ò~ÉûÖ9z4 jÔ$èô¨Ó£N2¾4¾4¾dÛ@RÃ:ÆGxt`©ÇR¥ùÝó»çwÿú“oG7G7G·Ùkf¯™½&¢xDñˆâl ¥8yùäå“—ûTîS¹Oåoõ|ýLõ3ÕÏôÏÆ6þ³1zpôàèÁl$ÅÙgWœ]1°ÁÀ|«ª®áWï†ßž¨=Q{¢8µ øVôc~<ÒMßêȨ—õc4ÛH)n{Ýöºí5-`ZÀ´€o5z]VtYÑe+CV†¬ yZíiµ§ÕØ.¼€a€x<«ù¬æ³š†††ƒ; î4¸S¡B!…’ár¿<ÓóLÏ3½Ïµ>×ú\Û[no¹½åM~4ùÑdú°ŠQ1*×J_+}­ôª‚« ®*üKð/Á¿$ןî•V>ZùèÌ93çÌœsB9¡œPÞû¾÷}ïKÇãK»±öÆÚk×nZ»ií¦–ùZæk™/¹ª:°c`ÇÀŽS×O]?uý±“ÇN;åååNŸ¬“~œÒYúñK?–%בQ?ÎêÇ\ýøKŸ¶äÁÄL Íš)4SÏ{þØóÇ\£rÊ5*飇g Ïž5†7Þ`x©•ÔJjõ"Ý‹t/ÒÑç¤NÀ@2 +V0¬`xpxpx0}ÀQo£ÞF½=äÈÿÿÁšk¬ycÒI7&Ñ3H¹bÚÇ´i¨û¡î‡ºt>è|Ðùr…Ë.W g©“~Ô‰úñQ?VÒ3,îîîÖ4¬iXÓ#L<2‘>– A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€øªpØa?„ý`©†ž“@ŠG 6"ÕÀúÿû.ì»°ïÂÒ„¥ K£}Ò>iŸ´X-V‹Õ>h´ZŒ£Åhïµ÷Ú{íöN{§½ÕÞjoµ7Úí©Ej‘Ú+í•öJ{©½Ô^jϵçÚsí™öL{¦=ÑžhO´ÇÚcí±öP{¨=Ôh´Ú=ížvO‹Ð"´íŽvG»£ÝÖnk·µ›ÚMí¦vC»¡ÝЮi×´kÚUíªvU»¢]Ñ®h—´KÚ%í¢vQ»¨×ÎkçµsÚ9íœvF;£ÑNk§µÓÚIí¤vR;¡ÐNhǵãÚqí˜vL;¦ÑŽhG´ÃÚaí°®…káÚAí vP Ó´0MÕTMÕMÑMÒ$MÒDMÔDÍ 4ƒv@; ÐökûµýÚ>mŸ¶OÛ«íÕöj{´=Ú-T ÕBµ]Ú.m—¶SÛ©íÔ¶kÛµíÚ6m›¶MÛ¢mѶh›µÍÚfm£¶QÛ¨mÐ6h´uÚ:m¶V[«­ÕVk«µÕÚ*m•¶J ÑB´m…¶B[¡-×–k˵¥ÚRm©¶D[¢-Ñi‹´EÚBm¡¶P›¯Í׿kó´yÚZ­—ÖKë¥õÔzj=µîZw­»ÖMë¦uÓºh]´.Zg­³ÖYë¨uÔ:j´Z­ÖNk§µÕÚjmµÖZk­µÖJk¥µÒZh-´Zs­¹Ö\k¦5ÓšiMµ¦ZS­‰ÖDk¢5Òi´ß´ß´ß´_µ_µ_µZ­VO«§ÕÓêjuµºZm­¶V[«¥ÕÒji5´Z ­ºV]«®iAZVU«ªUÕ*k•µÊZ%­’VI«¨UÔ*jZ ¨•×ÊkåµrZ9­œæ¯ùkþZY­¬VV+£•ÑÊh¾š¯æ«ùh>šVR+©•ÔJh%´Zq­¸V\óÒ¼4/ÍSóÔ<µ¢ZQ­¨VX+¬Ö<4ÍC+¤Ò i´Z-¿–_˯åÓòiù47ÍMsÓòhy´<š«æª¹j¹µÜZn-—–KË¥9kΚ³æ¤9iNZv-»–]sÔ5G-«–U˪9hšƒf§ÙivZ-‹–EˤeÒ2iµŒZF-ƒ–AË ý¢ý¢ý¢¥ÓÒié´´ZZ-­ö“ö“ö“öƒöƒöƒö½ö½ö½–FK£¥QªQ5ª±j¬«~T?ªÕ5FQ£Õh5Z}§¾Sß©Qj”¥¾QߨoÔ×êkõµúJ}¥¾R_ª/Õ—ê õ…úB}¦>SŸ©OÕ§êSõ±úX}¬>R©Ôêõz_½¯ÞW#Ô5B½«ÞU覆ÕÛêmõ–zK½¥ÞPo¨7ÔëêuõºzU½ª^U¯¨WÔ+ê%õ’zI½¨^T/ªçÕóêyõœzN=§žUϪgÕÓêiõ´zJ=¥žRO¨'Ôê¿ê¿ê¿ê1õ˜zL=ªUª‡ÕÃêa5\ WÃÕƒêAõ ¦†©aªNQUQ%UR%UTEUT ªA5¨Ôêu¿º_ݯîS÷©ûÔ½ê^u¯ºGÝ£îQCÕP5TÝ¥îRw©;ÕêNu»º]Ý®nS·©ÛÔ-êu‹ºYݬnV7ªÕêuƒºA]§®SשkÕµêZuµºZ]­®RW©«Ô5D QW¨+Ôê2u™ºL]ª.U—ª‹ÕÅêbu‘ºH]¤.P¨ Ôùê|u¾ú—ú—ú—:W«ÎUç¨sÔ9ê,u–:K©ÎTgªÓÕéêtuš:M¦þ©þ©þ©NQ§¨SÔIê$u’:Q¨NTÇ«ãÕñê8uœ:N£ŽQǨ£ÕÑêhu”:J¥ŽTGª#Õáêpu¸:L¦S‡¨CÔ!ê`u°:X¨TªÔêõwõwõwµŸÚOí§öQû¨}ÔÞjoµ·ÚKí¥öR{¨=Ôjwµ»Ú]íªvU»ª]Ô.jµ“ÚIí¤vT;ªÕöj{µ½ÚNm§¶SÛ¨mÔ6jkµµÚZm©¶T[ª-Ôj µ™ÚLm¦«Áj°ÚDm¢6Q«ÕÆêoêoêojCµ¡ÚPm 6P¨õÕúj}µ®ZW­«ÖQë¨uÔZj-µ–ZS­©ÖT««ÕÕêj5µšZM RƒÔ µŠZE­¢VV+«•ÕŠjEµ¢ZA­ VPË«åÕòj€ ¨þª¿ê¯ú©~ªŸZF-£–QK«¥ÕÒªê£ú¨¥ÔRj)µ„ZB-¡z«Þª·ê¥z©^j1µ˜ZL-ªU‹ªEÔ"jÕCõP=ÔBj!µZ@- Pó«ùÕüj>5ŸšOuSÝT75šGÍ£ºª®ª«š[Í­æVs©¹Ô\ª³ê¬:«Nª“ê¤æPs¨9TGÕQuT³©ÙÔlªƒê :¨öª½j¯fQ³¨YÔÌjf5³šQͨfT3¨Ô ê/ê/ê/j:5šNM«¦UÓª?©?©?©?¨?¨?¨ß«ß«ß«iÔ4jŨ£«Ä*±ÊGå£òQ‰Qb”%Z‰V¢•wÊ;å¥D)QÊåòFy­¼V^+¯”WÊ+å¥òRy©+Ÿ–O˧åSò)ù”|B>!Ÿÿ•ÿ•ÿ•ÉÇäcòQù¨|T>,–Ëár¸.”Êå09L“UY•U}%Y’%Y”EY” ²A6Èäòy¿¼_Þ/ï“÷Éûä½ò^y¯¼GÞ#ï‘CåP9TÞ%ï’wÉ;äòy»¼]Þ.o•·Ê[å-òy‹¼IÞ$o’7Êåòzy½¼^^'¯“×Ékä5òyµ¼Z^-¯”WÊ+å9D‘—ËËååò2y™¼L^"/‘—È‹åÅòby¡¼P^(/È äyòiŸ´WÚ+í•vK»¥ÝR¨*…J;¥ÒNi‡´CÚ!m“¶IÛ¤­ÒVi«´YÚ,m–6I›¤MÒiƒ´AZ/­—ÖKk¥µÒZi´FZ#­’VI«¤•ÒJi¥´BZ!­–KË¥åÒRi©´TZ"-‘–H‹¤EÒ"i¡´PZ(Í—æKó¥yÒRI©¤TR*!•JHÅ¥âRqÉKò’¼$OÉSò”ŠJE¥¢Ra©°TX*$’ I¥‚RA)¿”_Ê/¹Kî’»ä&¹InR^)¯”Wr•\%WÉEr‘\¤\R.)—”SÊ)唜$'ÉIÊ!årHŽ’£ä(e“²IÙ$ÉArì%{É^Ê"e‘²H™¥ÌRf)£”QÊ(e2H¤_¤_¤_¤tR:)”VJ+¥•~’~’~’~~~¾“¾“¾“ÒHi¤4â'ñ“øIŒcÅXñƒøAü ƈ1bŒø^|/¾߉ïÄwâ[ñ­øV|#¾߈‘b¤)¾_‰¯Äâ ñ…ø\|.>ŸŠOŧâñ‰øD|$>‰ŇâCñ¾x_¼/Þï‰÷Ä»â]ñ®xG¼#Þo‰·Ä[â ñ†xC¼.^¯‹WÅ«âUñŠxE¼"^/‰—Ä‹âEñ¢x^ …ÂGáƒðAø D ÑB´ð^x/¼¢„(!Jx+¼Þ ¯…×Âk!Rˆ"…—ÂKá¥ðBx!¼ž Ï„gÂá‰ðDx,< …‡ÂCáð@x Üî ÷„!Bˆîw„;Âmá¶p[¸)Ün 7„ ášpM¸&\® W…ËÂeá²pI¸$\.„ Â9áœpN8+œÎ §…ÓÂiá”pJ8%œN'„………cÂ1á˜pT8* ‡…ÃB¸.„ …ƒÂA!LÂUPUYIIЃ`þþþö û…ýÂßÂßÂßÂ^a¯°WØ-ìv ¡B¨*ìv ;…Âa‡°MØ&l¶ […­Âfa³°YØ(l6 „ Âa°NX'¬Ö k…ÕÂjaµ°JX%¬B„!DX!¬VË„eÂ2a©°TX*, ‹…EÂ"a‘°@X ,æ ó„yÂ_Â_Â_ÂaŽ0G˜-Ìf 3…™ÂLa†0C˜!L¦ Ó„©ÂTaª0E˜"L& “…ÉÂDa¢0Q˜ L&ã„qÂ8aŒ0F#ŒF £…QÂ(a”0R)Œ† Ã…áÂ0a˜0L" †ƒ…ÁÂ`a 0P( „ß…ß…ß…~B?¡ŸÐGè#ôz ½„^BO¡§ÐSè.tº Ý„nB7¡‹ÐEè"t: …ŽBG¡£ÐAè tÚ í„vB[¡­ÐVh-´Z ­„VB+¡…ÐBh!4š Í„`!XšM„&Bc¡±ÐXøMøMøMh(4 „B¡¾P_¨/Ôê u…:B¡ŽPK¨%Ôj5„Bu¡ºP]‚„ ¡ªPU¨*T* •…JB%¡’PA¨ T…@!P„¡œPN('ø ~‚ŸPV(+”J ¥…Ò‚à#ø¥„RB)¡„PB(!x Þ‚·à%x ^B1¡˜PL(*Š E„"BÁCð<„BB!¡P@( ÜwÁ]È'äò y…¼B^!GÈ#¸.‚‹[È-är 9…œ‚³à,8 9„B!»]È.d² ÙÁApì{Á^È"d²™…ÌBf!£QÈ(d2„_„_„_„tB:!VH+¤~~~~~~¾¾¾Òi„4†O†O†O†XC¬!ÖðÁðÁðÁcˆ1ÄÞÞÞÞÞÞÞÞÞÞÞÞ" ‘†HÃ+Ã+Ã+à à à Ã3Ã3Ã3ÃSÃSÃSÃcÃcÃcÃ#Ã#Ã#ÃÃÃÃ}Ã}Ã}C„!Âa¸k¸k¸k¸m¸m¸m¸e¸e¸e¸a¸a¸a¸f¸f¸f¸j¸j¸j¸l¸l¸l¸d¸d¸d¸`¸`¸`8o8o8o8k8k8k8c8c8c8e8e8e8i8i8iø×ð¯á_Ã1Ã1Ã1ÃQÃQÃQÃaÃaÃaC¸!Ün8h8h8h3„ÂôÓöúé:}ÚNüU?0| Ö‡@2 &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &+e— ú‡­0EL VŠˆ‘­H,``°RDŒl@b€•"bd님¬#[XÀÀ`¥:‡$ôCÿ°u¦€ €Ø``6‚˜€ &`#€ €$Âáá ý˜{ÕswÎÝ97Þ0Þ0ÞP«s­Îµ:+W¬\±rÙ×e_—}]‘®EºéZåT•SUN 3dÌ1ÿzÿëý¯÷×ü\§#NGœŽX0cÁŒ3Ú¦o›¾múrÁå‚Ëëëæ<Ôy¨óPÇ=Ž{÷¸½r{åöÊÛèmô66’ÉäA#‚FIY¥¬RÖ>¤¬m—Øå|rùäòÉåý÷CÞaøÞMz7éݤmîÛÜ·¹ˆD}ïЫ1Wó\Ís5Ï–-,[˜û÷3îg|TÕGÕëvö£Ùf?Ò÷¸¯³¶±ž±ž±žÊ=åžr¯ÿ¿ýÿíÿoЮ ]A»âîã...Þ™½3{gnU¶UÙVe·[Ünq»×a¯Ã^‡±Å$/``‰`gý7õh§sHçÎ!vIpiØ¥a—†%óÇÈlÌl̬l•žWz^é¹]²š·eÞ–y[¢»Ew‹îöåzûK/íQ÷GÝuw|ÜñqÇõ2ßí|·óÝÖ?wÆÜsg4·´Ýûwïß½ÿó>õ‡Új¨­‡îæ–ßþzûëí¯'¥o»õïÖ¿[sË=z8ôð×Ü:oö¼ÙófÏ9þÈñGޤW ýwößÙ§ÿ÷­ïn}wë»/1l-¹µäÖ’…‡RxÈç­§k1×b®Åôÿ¾·þÞú{ëc$00€D°$Ô¹ÒòJË+-õ«“eé×Ý~^¨fêÕWw^Ý <.xœÝWñÜõ¹ës×/ÑÛ_niúU¤ ÿ¾ûN÷î;Íýë ƒV ZñyŸúh«£­Ž¶JøÝ ®-¸¶àÚ¤T…¹%ëWÖZ²ääÚ:§^Ÿz}êµ~uï—¨@§ÉN“&'×ôòÕËW/_ÕÏU?Wý\É»žú•ÍɵžR3``‰`ISÜ¥¸Kq—ä ‡ì#í#í#“éWXú òä7Èî+ªS£N:5ôkŽ“··“wiúu·]fw™Ýe¶%Ÿ«pDáˆÂæþµÌ¼2óÊÌû¼-5ëçY?ÏúÙòNìòõ+bÍ--n´ù¥·Ž~ãñ¯S‡ú­˜“²=ózæõÌ+°h`ÑÀ¢_go|``‰ðyANƒ 24È ßøþ‚û î/Пrz½øõâ׋¯p\á¸ÂÑ¿‹ÿ. /Çò«3MõéÓ7&áåë·8ž4sÒÌI3ç†O Ÿz+òVä­Hýy·OË?-ÿ´üÙCg=´¥Ò–J[*éaaÜÛí~Û›6'eiÝ;vïØ½£åÛÔò+V»žw6ÞÙx§%KÖ+'±Ë_uiÕ¥U—Ì-ó¯øëÀ—Þ:1ÍcšÇ4·äëÕÿªþWõ¿6µÙÔfS›3çÏœ?sþeš—i^¦‰<y6òìù ç7œß ßŠY¿MwÂK+ï_Þ¿¼¿þgË{Lʯþd_Köô £6ŒÚ0*î¾ó"Ë‹,/²¯p¼Âñ úMÅÝÒ¸¥qKcÉ-¬u$00€D°< t¸ëp×áîòüËó/ÏoIó1àcÀÇK–\¯H½"õŠX¾Îzp›ð2Mo Ø>‰N›j²ªÉª&«’··¿Ü¶ÓåXcAŽ¿_ûýÚï×ö÷Úßk/ýfÅ{#öFìÕƒ½w!ïBÞ%×zêA£åkøyONø¹ÔWë^­{µî—Þ:맯Ÿ¾~zÂ×»ë±îçUcòó _“­?Ç÷ïiOû{šåKÖ³mú¶éÛ¦7{›ñ3îgÜÏ$å&êR'``‰`y¼´¨ï¢¾‹ú~é¨Ò’¥‰ùÄ|b>sKˆû¬â/×3q¯—M®e~¹^-uºÔéR§oÚÝ´»ù?ÞëÞú{ëï­7·œ^ez•éUÆò5ÔfË×óóžlniÞ™½3{gNl„ùy[§‘ÜHn$›{íäÑ“GOý™5™Ù˜Ù˜9áu4"hD% Kxû:uê<4ÄÚŽy<æñ˜ÇŒ½,GL ,¿B7)‘ª%W‚¶qnãÜÆÙ’¥-˜±`Æ‚æ–33ûÌì3³'½g.÷¸Üãrsï’õlÖ³YÏZìmô6z}8ôáФ/ÙËÓËÓËÓòµ¿lþ²ùËL—Sc|ñ5Æ'½7ô[Ž›[ ƒV Zñu¶NÑfE›mfîµ]XtaQRªqá ÿXø‡¹å·hÒ¢I‹&–,g¼a¼a¼!á[p'ýËÑÝ¢»Ew+½¦ôšÒkLß%k×<®Ü€å€ €$‚%!¢þ¤Ï¤¿Wܛʚʾ.ûºìë,‰…n¸mà6ý†Æ¦?§¾?õý©ï“¡k,¸–Ñú`½Ï»äÑéF§.ékÛ²zËê-«›¾v{¶íÙ¶gKú“€CÒ†¤ Ikn9B ¡„Pâël„o®?17)Ũ_½=::þýÆì /áCíµ?Ô6·†%^”xQâEò†²;~ÚñÓŽŸ’·æ¤NÀÀÁ’['WTóÉå“Ë'—äT¿œ¨ùQ󣿧܏b¦Š™*fú¼%ÜxpãÁæ–¼êÒªK«.ýEXŸ'åIÀúoš»•ñ×Ü:q¯j5¥?ý÷ÛÖsøÔð©áS¾Iuò¾£~p·”g` ``‰pè¥_ ú5ßqÂÖ ['lµ†ž9Pÿ@ýõSnúpèáæÞ±H×"]‹tý¼X(Ö3Ö3ÖóððÃÃw|ÜñqÇÉäFò—޲’«·“wÛ½|õòÕËW_nK%ü WË?éç= ¸mú¶éÛ¦OÞ/$}ëœ9æü™óîgÜϸŸI®êÒ¯-¾4ìÒ°KÃ’²5ãîYÖÀËÓËÓË“€%€ €$BÂ!MLó˜æ1Í“÷õ«ͽcîÚ¹kç®my,ôfÏ›=oöèONÞ€Êi²Ód§É)7Ö¯¯ýrÒ¼SóNÍ;™þ¾~µ)o£·ÑÛhúIõÛ5'öIÀ_â©Õɵuôà¼UÙVe[•µÿÎþ;ûï’·2'ž Xr³éoÆ}~ó—Ø’w_›õ~ÖûYïëúÕõ«ë§áKÇÀùµüZ~ÍÜk¿ÄS‡-ïÆa #& GJWZ^iy¥eò¾£þ4Ssïè£ú¨>ª¹XH¿z¸ÐüBó ™½‰´}¤}¤}¤þŒØsŸûûÜß_.dM °þdesï2ëçY?Ïú9ékeù“€õ[+›þf»§íž¶{jͰ%ï;÷èÜ£s6Ðl@³–Ö\MwÏ2uûîí»·ï2°NÀÀ!á`iGÔŽ¨QÉûŽ[Kn-¹µ¤¹w¬9°æÀšÍEYkþYóÏšŽ~÷÷Úßk¯/qÕfê €~¯_Ÿýúì×gúïÜ[oý½õ¦¿S¤k‘®Eº&¼VænýžœÙ˜Ù˜ÙÜš¬Ÿ¾~úúé_n[Û}3î”ÍFmµa”ér ì.°»Àî/}å÷çõç¬÷³ÞÏzoîU5Æ×_c|rõÿ¡Å‡Zœð- ^Û„?c×±]Çv›ôõ|™æeš—f÷ÓªJU¥ªB ÀrÀÀÁ.‘>ï]†7Þhx£„—¼¿×þ^û{%¼œ€š5jš[ÂÔߦþ6õ·¤ô†~•dÜ€Š8®„oAlªmú¶éÛ¦·|}î­¿·þÞzË—7þÒû‚¹W¯p¼Âñ _çz= 5·ü^ez•éU&á÷:<üððÃÿÜÚ~¨ý¡ö‡ÚuýêúÕõ3·dýÚzÆ^¥\ŒŽSIDAT–#&–‡mYÏf=›õ¬åá*8ªà¨‚ /9n\”ð2ÿÈñGŽ?r˜[N¶°laÙÂ>/¾ú§õ?­ÿi]¤k‘®Eº~¹P<¥Àú•Ü–÷Ìâv‹Û-n÷åj²Gã{4þ¶°þdë„_[h~¡ù…æëákb×*¦yLó˜æCÆ 3dLÂïrpãÁ7&ý“ÚGÚGÚÿ÷ôkýÓY²ÌY^dy‘%näoªÌ¼2óÊÌãÚ_‰EL ì’`ï’½Kö.y8ôáЇCßy?äý›v7ínÚ…¤ I’Ö¿‹ÿ. /A¦ïõâ׋_/nÉÚ^iy¥å•–q£è„ã+ùGùGùÇ[‘·"oEêAÚs×ç®Ï]õ›EÏÛ2o˼-c+ÆVŒMx þ7òÞÈ{#¯Ž&¥·“wÛYCÍœßp~Ãù ‰]~ß_úþÒ÷K–¿#jGÔŽ¨¯ó¹~mÈ»w!ïþG°çÙ·ë–®[ºn©þtä×a¯Ã^‡Ew‹îÝM¯Õ°}aûÂöéOV.¸¶àÚ‚k^r»§íž¶{jùv×÷‚„o¬×¢¾‹ú.ê{aÑ…Eékû´üÓòOˇO Ÿ>uºÏtŸé>–|}ä¤ÃI‡“Œº‹˜@"$Ûè”Ý B¡‡C‡NÞëh“.g÷œÝsvßñÓŽŸvü”Ø×óþÎûŸ·æÉ»í¾\Ílì³±ÏÆ> ¿{ܧ5'vùÛÜ·¹osOÞëÑ¿t&öÚèä¢ß]¿ú6±ŸWv²Û+·Wn¯¾Üê_Ȉ[3Œº‹˜@"Xz%o ä<Ôy¨óP=(ý¼@(Ö3Ö3ÖóK„U¥×”^Sz~ݪþ67ØÜ`sà¸ô'%'üîÍ;5ïÔ¼Óç­Éã[o­ÜϸŸq?³´òÒÊK+dzV<á5µÀ–¼û_þ:ð×/·ü9Wæ\™så[í –W¦g-ÏZžµ’+R­»Bî ¹?ïºù„½›ônÒ»Iq¿¢‘”+û;œèp¢Ã‰{ëï­¿·žè@ÒH„Ć^ú“tõ§ÿvÚÑiG§~ƒüù Êw;ßí|·÷8îqÜ£‡^ÕVW[]mõ¸ããŽ;®?=ôËEA¦ÏC-ñ¢Ä‹/ò¸æqÍãš-,[X¶°Bó Í/4?°h`ÑÀ¢½ õ.Ô»Ðþ^û{íïeÉZéO8ŽÂé·8Λ%o–¼Y‚ví ÚÕ³ZÏj=«]viØ¥aÔþ' óxÌã1õ+wõ/Rè·_Öë3ûºì벯˯å×òkú•èmÓ·Mß6ý¬Ÿgý<ëç‹S.N¹8åë„©úS~õ÷ê(u”:Jú^£ïAúÚê{–·ÑÛèmlY½eõ–Õç/›¿lþ²û î/¸¿€Ð@ò"&ÉuÕã·º5±keýK{ŸmXÀÀPX3``‰@ ¬00€D ÖŒ˜@"kFL €€5#&ÀÀšH``Í€ €$0°fÀÀX3``‰0::¡ú|[ÀÀl00AL ÀF°ÀÀl00AL ÀF°ÀÀl00AL ÀF°ÀÀl00AL ÀFÿ¯½;Ë)ÿÿ8>‹Ÿñe–’’RR´(I*í%DiD–”4ö}iÆ>ÆZk(ûÞ†±†3²5ÖaÈžm,rÿþ8þh®ÓiîÜwî»s?çºÎ5×8Õ¹Ïýî|Þ}^÷92AL @&€ €È00™ & ÀÀd‚˜€L ``2AL @&€ €È00™ & ÀÀd‚˜€L ``2AL @&€ €È00™ & ÀÀd‚˜€L¿w(Cé分–£ZŽihÉÔÐrü£/'4´ü®¡å -'5´dih9¥¡å´†–3ZÎjh9÷Ñ—l -jh9¯¡å‚†–‹Z.ih¹¬¡åІ–¿4´\ÕÐrMCËß}¹®¡å††– -75´ÜÒÐr[CË -w5´ÜÓÐr_CK®†–Z~ô呆–ÇZžhhùGCËS -Ï4´<×ÐòBCKž†–—Z^ihÉ×ÐòZCË›¾¼ÕÐR ¡å†…f–ßhhùTCËgZ>/­…d‹dB¶°€7€îmœ’’rèp©-Zx&1O#æiÄÚÿ4bÝy±î>a Æ#alÒÔÈ(ŒËÂÍû”ׯ;^wœá=Ã{†·¦ÎöKì—Ø/IININI~ø ðA ï ¨—øÜ{øóßþœ#Í" žo}¾õùÖd½d½d=m6î踣ãŽÞ6¼mxÛw Ŧ¶W·XÝbu m®êáÁÇß|cðÁ¼k€Ò#Œ5¸£Í#£0vó1)@{„„„ï5ßk¾×Üù¶ómçÛÚyöhÐ. ]Àé¸Óq§ãOOOxï@ÀÐNÀü‡¼Sy§òNÍ5œk8×P¥ët_Ûüe>~b¶—C÷•û›õ¯¿vg@ë47ýôUaõÝ. ›éÞgwdÈ%·Ãë§6ÿÙ9o¦—ï&‡ˆ¨ju¿¯ùÀ¤­ÁÊÝ>ìçÆŒŽ3úŽË—;.¼›ä—Ï/Ÿ_~ñüÅóÏW¥ªM7º¬õó¯}³íÕ>¿; í;kâh§6Ãv'::»ŒI]tÙyÄØ ‹së[ìhÚìÃ~n׈®]#rrrx7ªÆa|ù°±É¼§a/ƒV]o:N³œ9[߯³ÃÁ ë[|ÚÀ}w~h·;³Â’݇¤ «á^ëו­G¸>\‘ø®~ñ£<[ÚýÜÕzŠÙUFdaLÆwÞMàczwöÝÙwgÍÿ5ÿ×|U~‹³íw4Øiõ¤õÎè«ö^=·ÅM¬·mÈs¶8=Æm‘Ÿó’±ùI“ë/uvÁ0Ç«ƒìgÛÝì:f”~ÍûAá)†7,ûÚüöa?×ÓÄÓÄÓäÔ'§>9Å,1| `h'†vŠ’©ÈTdn;µíÔ¶S%¾AŸ±kªõÍ#¶ß^óp)¸ÛgyÀ Eß¾êZŸ;ס÷äY/üÚ8ì1ùŸÁÑÊm”ß·ú3ôgèç[æ[æ[ò&ë¦=5öÔØS£¤Um9¤Eùާ¿»(©¢ÏàeæÇfùú¦¤œ8¡®µÛizÍìb£#¬ †š¤›]T~ß&VšXib¥¼Ô¼Ô¼TÞ_€ò„±CG”wj¦%W©”xª±EÝìó:†ûX¨·Ó{s¹÷Õ€öóÂRÝÇXÔ`eíÕ%µ…±ž÷(mÙ˲—e/sLuLuL-Á‡EÊyt¢Þµ¡áñ]=ó{웯޾Ú=jv´‡ÏûYL_ÍØaªK†òûÖ)¡SB§„{µîÕºW‹÷”G íD À¿Ü¸p? øjðÕà«Êü‘Üed]ÿšG³ÜÛûy5VïôŸòë»_FÇ5úkÂÏÃv%øÔùÉ¥'—ž\Ê;®  {4ìѰˆÌˆÌˆLejÃl¦çÏ·]¾?`y z'¤”_{&ÍsÜû…Mßëú¿Q¾ªfÍ:šÅ;(ž0^(?¾L‹öñ±õТ[7ÿÏ4Õï¾Ú³y»Úuìj(uSYaÜzÞq@]^ï~½ûõîI&ušÔI™ßD£}µÍìÝœº{”8PS}µOü²¸ÌŠ}6Nh¯üyo]äºÈu‘Š?*þä}€âC;ðÞýúô•ùcxT†.6YwDomôVS“€Rë¼ðž§šVMpÉ)M™×’ŸŸ¯W„+©ù9ºýèö£Û•ºÆwY‹9&xTŽo»#CS“SRkï#IŠŒ3uÝûåOY¨Ìkùñó?ÿñóE¢€¼'Œ ¡Ìh²fvÐhç–¯"{Å7¡mýÞ­šQ}¹ ÛàUm¥î™!ôÔ Šë}¯÷½Þײ’e%Ëÿ¸g€i¿—}=\ÿ™:rý×ÚÖWû\O{¼s•1ÍEt5™l6ó?>J’‘‘û¬Ý³vÏÚQ …Ú‰ ÛÎ(Î(ÎÄŒ?°ø?}Û·«³È¢Î-ÿ¨¡¼µmPj?¾×»¦Y?Nð¾oÿOZ ïÞ#¼GÞŒ¼y3( yHŠJŠJŠúÉ©-.»üÚ»ûÌJKëªm“S’“V“—u:vÅöŸ.ㆹÿêšík¶¯Ù¾§Š§Š§”è4a,Æ…âÇŽø¶Ô xë×çó€ïÊJ¿÷÷‰È~Ác­ç˜ýZü«zê(©ƒAƒÿûU¹YÕJÕô]Çß[žSVúja]ÏpÐùYvÊ|”äší5Ûk¶ÔˆC;tTÁ±‚cÇVXu`ÕÿxŽÚ÷¡ Ë—•I@©õ•¹=|êüiRÁÈLê•Zϳžg=ïáćN¤BÊ$/…—Âkì›±oÆþÇm“ëZqŽ¢lMNñ„³ØÙ-¶Õªšm;«žäó*U6ª|wìݱwÇR  k„ó¿0HîýkW«wýp¿Ae½ßÛv±Õw®-‹ï„>A訠xëÇ®»~lñ¿Sv&] †]ò9“|Ü ìöÕ^«I÷­ižð ;v2ŒÚ€Â€¡€:§ ¤ ¤ $:::::ZêÏÚ¦•¬ú™f=´íÖÓ¿\YŸ ,¼.Èé“ðûøÙžmí¤o ¼@oÞ‚\»\»\;ª¥¬x—ó.ç]Nÿ^ý{õï%õÆVígÓ¨î+}‰ƒw/ëÑï¿Öæ)Þ'šÛ(:ý0¨cñÓU·Fß}k4Õº@8ç?.ÌèãÛÅÁVÑ×>ÐBNýÞÝ¥ÑÛ½s 26–| ˆÐ3ýÕˆ%WL®˜\±øsˆë·“'­ùIV}µpMpŸÁWgûËß:zëè-êÀÐNÀ]R[Q[Q»·So§ÞNRÊŽùÕÝÆ¶{Á >öÊi*P¼Þ’ÜÌEò‰ªU:VéX¥ã“)O¦<™Báhµ›Š›Š›Ã¶Û>L2Ô·Œn~¼ãŸnKk-¿)ªÂk§F¤ý¼³øéªÜØÜØÜX äJ8Ï?üv#d“Û:ywzo~ê}  é·ßמ-u„þAè%¨@°vúÚék§K~¤rm9Çž÷æ[ìó“w_ívæ'ÏMKŠ?—fË:–uŒš`h'`€™2)dRˆÔŸ¯ó^ù·rœ.ï©@ñúhzÛñ’ŸjëúÖõm~n~n~.õ£â7ÇoŽß,õÚüÑñæÀ9¾î)³Nl•÷UáµËÓImW*uLj•¯U¾Vù¼qyãòÆQ? '¹]8ÏKÆií¿óê¬CýÞµ¾‘~Ó{ù¼³$ùäãÍñ›ã7S?ÀþIû'íŸ$õ›bãY;0Ü»`Éæ#iºÓW{ÜN|ò›¥þ§ nJ™ë5®×¸^ƒú Ë€¡€:asóÍÍ77—ú“uaA“ïêyêZô[xýû”v¾ž«¤ŽOÌý˜û1÷©"m³«Ã®»:H½k¶#ÐÉ)ñÚ5gj‹ug¤ŽO§ *tª HT$*©%(ó‰ŠDáÜ.uæ?7·ƒ¯÷]î÷fžó½å y[l¡¯ ” ›þºü×å¿.KF¿ó<·6«ä¿ìûÌJºÙW{fÌÛ´wƒÞï•»|->>ƒ  z1üÅðé%º‰Ú‰ sW¾¼òå•/¥þ˜ŸÖÑÇÓ^§§ ¯Z…E»K«užë<×yRQÚ '>'>GòºíZûÚøö°Ðåè÷_WWŸ¼|²Ô±Jê—Ô/©ep>—:ÛŸð ?ìÙ‰NOXùÁ½²m;©c%ôTtÇ«ìWÙ¯²W¯0^!þ0^\§À9Ó§êÅÑêôÕÛÛîê(uöˆ¾};ú6@7C;dëÍÆ7ßl´ðµðµð·b[8 ©Ù\1­¯O =S…×+ºæÖúÃþ†ñ ãÆT—¦¼«ð®Â» .z.z.E¼;¦Ó\Ü}·úÜLž|<’)ªÂkÇ_.˜1Kªª/¹_r¿äNu@Y$œÃ¥Îð©-C]>§»+¼~gßgwÀ•–ë¬ýÍ¦Š˜ÐcýÕ]0Úf´Íh©sˆW‹mögÒKÿëÙÀž?vÞà"uĶLÛ2mË4ê €®!V—›wlÞñþ1gSÖNY;eíã ÇAƒ82† [ F F FRš¾ÜsL“›LJ­{g8í²º.>n>›|6ùlRD("ÔØÇ—l’l’l"9E¶ fÿ]¦¥¤ÖVO[ï.âéevíÚ=,H/H/H§Æ ¬ÎÛÂ9\|nÑÅíG›ÞttRë''»§ûŸ—ê(„~ƒƒ¼L:™t2Iê·ÀÍâÇŠëÓ?K~¼2|À˜éæRGïáÙ‡gž¥Æè`5ôöaaaR# að‡!ÈÐÍ77ßÜ|#Õ4œ½ñÖ;„‰¿â×Ï_ölÕä˜Ô1ÜöɶO¶ÑE|T¹'sOæž”zG<_3å:SQů½o,‰8 ×Lo¿Þ?âc¸Æk×/* Ê á¼->Ÿë;éÑkóêq¯cM7ÓÑ¿>þ]øpO{©îBè=¨4ÈOcc£Y/³^f½Ä•_çzyã*Ó9+³6çg|P| c|c|c|©4ºƒXu…¯ý-a°ò˜ºÈP×.®]\Å-ÂÄ;^ êx3Ù§üúpÞ·ß¹?–j¹^íyµçÕêíãpoÀ½÷Äï‚U«à]š1ýT‚§gO|¹ê'©ª~ù<òy$õÚL8WKɳLÚ»xyÒÅ)¿ú…k ëÕâ#)ôÔägãÈ#7Ž×¼¡E×Ú¦>ÙÉáÇkÐ3+³öüc^æÞ,©³ñ…¥–^XJ½ÐÀª]!ÜÕSapñ€²rÙì²Ùe3©¶ ϫ瑦úLó•tÝþ‡:ë-ŠxÎSJZJZJUWÚrbsbsb%oû»`Ï0¦ŸJº®éX?üªøx&VL¬˜X‘ªm&œ«Åçð¾Aõ›×r§s+éúŸvÝŸùçIuBBÕA^Û¼¶y-ùÄ_×}Sίó£O.éºn¹~ßN>$>ž­Î´:Óê U@«a°ºd%Ê7Ê7ÊWÜl2k1£Á &ø>l}}l—/ýºJ5X¯÷¾Þûz/µWzõÔoP?ñ‘·ßÔ»Ú!L9}ØÚãDââ];$?,r ï@Þj´p~–:{ß½}²ñWtn¶^6%`¬ÓhñQújòê‘ê‘ê!®ó•ü‚‚_Ð!ØÚgÒ²vÇ$Ÿ)~yÁå—P{ä¸ô«‚ ÷»Þïz_2¤|“ÐûPS{*­{ΫwϪ»øØîüsçŸ;ÿ¤KÓKO.=¹$UÕÞiI‡3&3å¤ÊÚêYëÑwÅÇvÃê «7¬¦@Ûçgñy{Dw·ŸlúЭ©²~ùº×wM‡KuBOB¢ k¬h¬h\í\µsÕΉ+¼aÖÌ[VÒ«²®7{Hû9ÕÄǶ_Z¿´~Ü5 €Ì„Á%E ‰¹kç®[ÄðŸÒ(°¦ÓU&õT__1î\Ñ×®ˆé’̆™ 3©ÀÒ°âÁŠ+ˆ¹q——ÃÎ0ͤúÚýÙœg;‚ÄG¸æáš‡kVœWœWœ§@+œWœWœÎÏâóöÍñQôèÖT_'˜7Š«;D|„…ž„2DÙ•™™]ijÃM[4ê³®X ×,}4[jòýù§Ï?}þ)u@®€?>Â`eÊ>C…¡ÂPjhÿ'µ‡a“ŠÂ”VñM€6OÆ]nÕi¿Ï›ÒØÛ«zÎjòXù#ãt¡z@Õ‘EÜtqóÝÍw7SŒjóRñRñÒòžå=Ë{â£íø³ùîu…'\Š oÙÐqz—TC©-ëkïF‹;ÚªüÑÖ&ÃÎ{†‹·ü{áß ÿ^H1€6ÎÉâsu Q-Çê…{•²Ûï©·?,i'¬s£»în¼D¼¥Ð“ý Õˆ²hèÁ¡‡×v׸óK•´£Ve]¶ºñ’v×¶‹"c†œo³­Ù¶fÛšQ‡äŠX³ƒ¥ʼkÑ×¢¯E‹òŽyöÏ-ÞÊcBP<Á§®}Vfr°ðÏÚ¼¿¥mƒÜ"® é¿¢ÿŠþT£ºÜÙzgë"¦ZLë7ðü]<5£J,§X™)*ñë­o32r^¢x›Ä#‰GP  „s²ø\½ûM¨¡Û]à €¥ŽIàæZ½«÷o)ô'T#Ê–·Þx+ùìpŸnKïkI¬®îÚà >bÇqñ¿ÝºtŸj WÀÚƒ0¸0`@™·è颧‹žŠï ÚüÑð™Ô„`CŸÎ+ ¯u3.|d„ãp~ZÇK©Ÿõ8°{=ÿï‹x­•·•·Õ¨.ë뮯»¾®ø8×›9¤Íýâ`Ÿ´e¹™ó ¯u'.|4„×î6tšáF«â_¯wÍEy‡œÅÛÔT{PíAT#háœ,>W¿ø¬g›&ÇåÑï•Æb”ïñ ¯ÓÖ¿uýB¼¥ÐŸP([.m¸´áÒq=[/ëb÷aµîÀ%S8hP«Ú¡ê âm^6yÙäej€ük'Â``@™çýÈû‘÷#ñ€ýlP=MJM–õ ¾Ò{Êü,ûy&¡FE<9õå—w^Þ¡&UWÄÍŸWÎ Úk[|\Ò)'ùÀöz«­wlÛÐX¼åÓô§éOÓ©IÐá<,>?7~f¹Ò4\*ò”ßõ¾ª?"Dù~òa‹nƒý¿o)ô'Ô$Ê–$Ó$Ó$Ó"nþ<æûíÉ•>¬£Öµ¸¤Ýµí¸È¯‡toszêé©§§R“ä‡XûéfL (Ã^?|ýðõCñðlÓÜx‡aˆœ&µ-ž1Ô·›ƒ½x› O.<¹ð„ÊTEANANAŽä­Õ\S&ŸXC\°½}Ï qþâ-O¶>Ùúdk*4E8‹ÏÏIwšN¨wƒ¸4`Åé¾ÞR݈ЫP™(+Zº¶tmé*®d¯ 3Ò×—FwíÚ{òá5WÄÛÌ{;ïí¼·Ô$ù!.[t' &”a7óoæßÌÉã®»¿°ý[]‚wGE¯iôbêlï9özíêl±pwþÛ싪ªÎ¯|UÿP>Õþ6*×4Ý*ÕôÕl#¿H‡CÌ»¥û{œPöÔgíòêß¹™ÃàšAµUͨ²WØ«§Íº×çê¾ÝvWI÷G™ÉÁLÓ¶¯<®‰·ÙPnC¹ å¨LU<øåÁ/~ÛšñͼÛ7,þ¶lªÀ®ŸMš´ÚÏ|·o«–[«|Y}™…¿þÄ*)†ÏžÖNw¨X»rXPÏážÌ;¶÷déM'ù\Ow<ÌaSŒÿ¤n¦k\ú9Œ7¹gþÕû=ù¹Ö’:ñVU‚?‰Œl8}Æ„_f©7výsªÅº%â-O_<}ñt*4E8‹ÏÏçB;Ôöî­®~ïYŸWþÖ,¶þšà ëqfjþc´³Š‰ÐYÕ\}SÕ__q¹dÝí¯zûö)@W¸Qóò »ê{Š÷Aè?GŽw{n³NèNK1VôíØï“úk%‰·z*Úï]Ò»¤wEÔ°^¼þÚÊæÂÍŠU€…#;„ö5›p¯ˆöPízö­jÕ ù®ë1_;ïêþq`çìqë—ÄX|âzÑÐÒâËZ›ôë|cØÐðŠe[›ef«<ÿnÖÌ)xØÆDS¡Woìý预ƒ[ÄÛ„î ݺ‡Ê ?Àe—¼Ã``@v8ùpòádñ0¼#¼Õk×Õ'Óo…5w÷5¯kØÆ ‘^ ådt¹íw«´`Ãí•ëè·/~Ojo3®QåyöÚ«¼·«+έÛumã"žê4¼Êð*ëP™ª8{*öT¬øØÖ Šu˜r©ô`}kƒqUÆ_KU<Íê[(ÜŒ§þ³~½z§¨¼¶/\‘>Öt”˾ƒ”ÿ-«{è»ÔÿPWì5eá7öŠ·ì6´ÛÐnC©LÐá<,>?ÿsµ‡uCÕû½§g{Œoܲ½µ•Ù0åÇ õQͧ8?TW§÷ø›î&þƒWÔêV½§òû°6.è¬óøÒ €×ÜZèYÄcOÅžŠ¥2¡ýžÎ|:óéLq ×ØØ¸iÈ$U:jaíùv~§}ÓMâë;x*AÛ+ö§©mK#¢\«e­~JP~ÌFx¶œîÝhq‡C[ÕöñÊz)CNÌ‘ú‰T&ù!–ù…ÁÀ€2,yyòòäåE܈øBÇlŸïT™|±ªç¬&íFV›bø‡°½õ*ãQ†uâï5Š©Û+cÝ·¿xŸûµCKïï?¿û¬Ï†€³ªÀÂý]„í Îêлÿ}U>vÖ{ë‡þØÐñxdø@OÛ„K×]by½jå*¡…¿ÿßÎÆ¾Î*uz_÷ý&P¯u'ó=‡>ìªí?5l“_þŸÓGµýŸGëäòæ·ò°þÓì†t¬¢Îø¤Q»³žELh ½ • íw-êZÔµ¨"º»ó]ÃF^V)ÖKùæÄ7Õ˹îm´¦ðWUྠi¸ýóÞùã6pŽËZšcŸÑ»÷i¦Ù®ö~÷%ò¢¦ŽÚzr»‹ýÞ?yW¸þ¸ö’oßõÞ(ôö.«&F¯<âp9æÜdójçsžþ°=Q¾»6ýÂy™÷r`º€X~äʰ¸”¸”¸”"nLÖͰñ9U&…X÷ýÏOõé»0ºãVŸ©ï Þ«3Uc«L-½¸r޾™^š05Yx ÿ÷ÆÆ-<t,•ÉÁK};úqé*ýUú«¨LUÌ>gøœáâcëþtΣþ¥/Ö?R9@ˆZ ·ÂÿíhÑÿìO¥1]åt~D÷ŸCÿµ'ûGû.Pˆ÷¤ðÿ¦´”Ù“’>óØÀ°ÚÏÕÛ3QÚ<¡V#Ýð®A’T'£|Ïó[—1nÓ wVû Úx7\,î¬ ÿõ~à/µJËf Þþn3šø†:XHu˜‚ÑÝ®µ5*íøæ¨(»F_‹·z*ÚïxÂñ„ãE\ ë5ìnbU:jÇ §Íø×½sl^uŠä+þ>ÿú¨åÔЄîK££v7šå¾õÐKWþÚ(ÂØÎmè4ÃVÅÿí`õGëæÑ!%Ýå»k«­-¢Mè«èf¿J,'e7 &”aÝ »v/âÏ<ŸžG›VVeBðØ˜¶{=vÊuoíðãÞ÷ì•ù*qH¬®ë€ÅvÝþr¼e™¡Ì÷/üU-zÕÎ4óU×ä`ÝŦúF{ù“^½†Ÿ~føñQõò_à¹CiÀ³Á”ùÚÂ_eÚ¢Á0ŸíªOW™ß÷½Üÿý„þéÆ¿…š•tO„Ûî©+6±«wËÃŒªmžPk:Õj‘i®êp¤»Ã‰šß [v}à8ÃrvI;+á¦ÍªôxmØ­¬ñsI¿Û›–½×¸9:˜]-½øÉÝWú)â‘g†Ÿ~†Ê„öÛ9yçä“‹¸³Nð„f+"Ué¨Í‚<öœT¦ý×ýfÚ-=rÌLx ¯z`ëvíšÅ,yEgv¼0p¼2ßY¼?5³‚>pSWl×4ê‡áé«èf¿J,We+ þD{~%P—×ó{÷ øJõ[Š¿Vê_ útX!ÜðãÀÂ5ÊÊ|íÎq­¹™¾‘uñ{¥üä`“x+_Ó4êíãðŽX¼ú°aiÀÎÕÇt[4R©«uÇ ÷K¼ðþyÀ}ÍÕÜ­ú¤•Ñ¡Úõì[ ß§ðµ¿ÿñÌà:óîoÖðÎÌÕ[¿pO™ýx[¾º`sïQÍÛQo Í:4±³X¤zìü·ÙU [¾ö·øõ“Oºõ_wM/ÒÚ7ûƹ.3üRUéñêz™<4z Ù´c­¾pýZù=gIà¼Z=÷6ý’zƒü¸uùñ GTé¨ 7Õö}oŸ=ný’å¿¶ðžTg3ÒÑO]°C«¾.SovlÞ±yÇf`TòælïËáê €…É>arPx›ð|¸ˆ‰ö•,Ô07Ü`0BjJ#ÎÉèrÛï–2_{Õ¢óï¾Ë”ß+å'[ä[bE½}Þ“6eô)Ø=kÎøíJ]ËÛp×Ì*[Z¨kÒÊ'mYnæ¼íIÓYÇÓ~P×SÐ>,®ñ}£í­§Þ@›EûÖ}`é¨J,|t¯ð–?¼è篮‡w(³~9µ—ÓÎ…÷á¯zûöQþ;ü:£u×;Ê÷œ% €_f÷ŠjÚŸzƒü4¬øSîæñÖQ{/IŠË°ÿ×w›>cÂ/³Jð”àaMUï¥ ¯«¶¶¾Uw¢êG¦Ê—Õ—Yø¿WÊw×uCc›LyE½ x½éõ¦×›€Pm@UÓÀ'k¶;ïõYh%›óÉ“á¤~bƒÓf]k¾y`IVI'ìòûözÑ4óæ‹ß+®ÖN¥w°wþ’åGV*3µ$žðReÒJžÿµ''–èeÜÑlÌÀ ýT¿Xø ]á-_쵸iâÇ €Åû ôlʇÓ7#|½.+ßsr0 På à":Ø%IqöÊw§®]&¯]³Sõ^ºðZ‹a£_T?2…¿W ^:t°ptU–Öm[·mÝV< ªëÀUçW¾ªHØÞékÓ×U[LüÝË®ŽÛöõ­v»Ž®ÒžÁöaÓjç `áŠá« Îêл_ü^©þ `*S•%Ò2Ò2ÒR|TKïÀÊ_,\¡ûþË2+w0øL•I+qœìÑ1¡á¯÷5K=˜ÊdaaaÑÔ">'«þ `ñÇãnÏzÖhÚÇ €ßz÷ù, ¶ð>wmQþ;ìú.ÄÒ­méÀRÏz*“Eû—Y½gõžÕ[\ê<Øgò²ˆc o)Ü#§W¯~zî\õÀFîV£ìŒ…ïV¯Çà3³¿zà[«+–z0•É¢ ýêüòóËÏ/Ï‘‘ßòëè_Gÿ:ºïg}?ëû™òѯ°½=Õťĥĥˆ‡ÕaÝ ŸS%²g¶AزÛ_Ž·,3Þ™õÙp±øïp©s§ž>'VþÀ»CB²ÝÒ ÇØj€/õíè[ÄgÆWé¯Ò_EeªbÎð9Ãç [÷§síð×ì3€ë—ñbÞWÂWžfReºªðž4(ç½ÔZ™¯r[1mÍÆkvý¢ÞŒ¨iw´k‘‹|õR¾9ñê°aµŸ«·/ªþÚrÿ°é†w ’Tpá-3Ö}û‹‡±2Õ…Ñ·úD$ol^÷ìÏŸvl¤øºï7ØïÞ‡m»Zuumªü×&\jt¸î’Ò €oŽŠ²kôµx{¡W¡2¡ýŽ'O8ž ®a§¨awû¨ÒQÞ²^ú¼9·•ï~í¼£úï©Þ¸ú÷MÃß¿ºuÃOÏ«ÞT~Xwmu µE´ }5ÝìW…°##Bp;e픵SÖ*ú Ûüз0`@–¼Ϊ+Ž tîUë¶2Õ \—ñÖïoýÚÜâG“¯Uéñ ïC³¹µöT_¬ÌW w qRTÿ¶êøÒ €Oµ;ëYÄ„¦Ð«P™Ð~×¢®E]‹*¢»;ß5läeuÀ&ûëïóúA™Ö§ÝÒ#ÇÌŒzתdwN½p­ˆE·Iï;j£€]áM•ºOþ’åGV ½´¡¥Å—µ6Ù¼ê3ÈW]°éÎ˼—ÐÀòSvC߀eØáäÃɇ“‹x¦Bx«×®)ªL:´0I4$l¹±q Ï‹ßþ推Fª Oþ8°ðLâ½õClè(õUž—ôêe&sëv]Û¸ˆOÓ¯2¼Êð*T¦*NÅžŠ=+>¶uƒb¦\*Xo±þ‘Êõ»ª6ŠÔW9Zô?ûSÀ‡]­[üº®{¿WSæ¾­´sö¸õKbŠßÿÊ_E¿ÿ‚Õ­›G‡H½v姨¼¦,üæ@·4ï6´ÛÐnC©LÐá<,>?ÿsµ‡uCUú½53ƒF9·(ü˜ŒÃ;¿mç~½øÉ$Æ ·òû›Ê_æÖØÆ[•~ï—ÿk™ââ¢|÷(Ü“fl€{'Û‰%í9K¯¹´Ð9R¼½Ð«P™Ð~Og>ùtfwØØ¸iÈ$U:jÇ‹ƒLg6Tþ3>דÇ«•ÓfGß”ÿªÖh^ë•øqRÑWyº(áàñ6¡{B÷„î¡2ÈpÙ%¿Ð·0`@öúá뇯Їa›æÆ; CT™|àÓí«ÆYuúTûÛ¨œòÃÿÅ~*ù̶:S5¶ÊÔÂÿ¿e{k+³aªLÉ·®P)| Š”zf¦ÉU«ädt¹íwK]“ƒ3†úvs°/âæÛO.<¹ð„ÊTEANANAŽÔ»éëš2ùÄ5?8{Üú%1…¯©•bTÑòŽm'÷¬9ã·ÿW\Â'ï¾™³2¿k•må4f¸_âu퉽}Ï qþâ-O¶>Ùúdk*4E8‹ÏÏIwšN¨wC•~¯ðöÂÍœ•ƒÌ¼«¼2¨¸s\ëcnæÊwnÅïÐyúU¯ù³ÉeöÁcx1Õú Áp©À§ûFzKýt¡W¡2QV´tméÚÒU\É^f¤¯ýÀØ7%åÄ Ï?¯Ü^ÍÜa±Ë5e~s+Ø9: ‚a¥àvÔÂ-kû je¯üß°B8í}b‰^ÆuÀ®½'^sE¼Í¼·óÞÎ{KMà²EÞ¡oaÀ€2Ïû‘÷#ïGâùÙ {š T}Bpü}Ïav™¾ö5½LÆÏÖþ×,ßšNŸ?˲ã&ñ$BxlÚ±JÓÊKbzÔO«5J½pá=Œ~ãèlQëPÕŒ*{VWž¤?Óå ÙoÆ&þîeWÇíÙá—›LPþU+³WöóLB‚ÄÛ¼¼óòÎË;Ô¤êÂâÂâÂâÄGØså¼ ½¶ê € ‡+Û†DWù²ú2 ýð*ß6¬jaý­ÃëvíšÅ,ñÊYäzÐC]CR¯¢Îøî}ÆÌ0éî´Èó‹ÊyÕœMÏWîWulµåÕÆÔÝïa5¨Uí.zÜJ|ô›…2sÊïIµõŽm‹·|šþ4ýi:5 š"œ‡ÅççÆÏ,Wš†«þª…›¸×3 ØZëÕk˜n0!t} ,ƒL͇îse%Ü F½×ÚÞájcaÌë¶1h$ÜiÆ}JšÕ\~êæ³Ä>íåÔ^þM;—Þ- ¶è6ØÿË"®KŽ ‹ ‹£&Q¶$™&™&™Šë¹Á˜ï·'WR%þW›ÚýõØæï;Ø£ÆÉ¦¦ú[ ýRõ’mR½6‹;Èð^’—a¯|‡üaµ°®ô5wòžß|¬p}kƒqUÆO 6áÙ:pº°MáW¡®îÚv\ä×C:Š·9=õôÔÓS©IòC¬ýt'ô-ŒPæ-zºè颧âAúÀ‚64|¦® Á’þkIcfᙾêýYöDºâ'v¯çÿ½ø_½­¼­¼­¨FuY_w}Ýõu‹¸ž{æ6sôU €‹Ÿâ)éÿWê6t‹õTø°©´û×ߤ®æ¢¼CÎE܆zPíAµQ  „s²ø\ýⳞmšW½ßS½÷S¥Ç+iw'þ8 º>ä'¬ÓÖ¿uýB¼¥ÐŸP([.m¸´áÒq=[/ëb§z¬|/-þðåÇé¨ÕÛáÿGwí²èÄAƒZÕUO(âãÂM^6yÙ„š ?ÀÚI7C߀eÞµèkÑ×¢ÅvÇ<ûçoÕ;!Xká¹ÂÚ³oÅOnÞßÒ¶A®ø_Wô_ÑEªQ]îl½³õÎVñq6I¬ßÀówÕà³vO™ýx[¾f÷M™¸¾ÍÈÈy‰âm$IÝ–Þ?Ö’ŽZ]ݵ‡A|ÄŽãâ ºt?è>Õ@®€µ¡oaÀ€²ÏPa¨0”ÂÿIíaؤ¢6ÀkfrnQV&.T¨:Rü¯w7ßÝ|w3Ũ6///-ïYÞ³¼WÄ 6ß½Nûàºîý^M™¯ý°Ép§óžáâmþ^ø÷¿RŒ  „s²ø\hT˱z€vÀe«ÇÖ¹Ñ]w7^"ÞFèI„þ„jDY4ôàЃCq#h׸óKÑQ««»¶]3äŒø_·5ÛÖl[3ê€\k¡¯`€LÌ];wíÜ"†ù”F5®Š'…)°ÂkMMÃ9´0I4¤±iÁ¯û~ø¯£±;$$Û­ˆ'í]1î\Ñ×Nüÿf6Ìl˜I–†VKgÍ–šdþéóOŸJ+àÐWÀ™¸ßõ~×û]¥ø7 ½ßhjbN³ûðbUÏYM+Ó$õœWïžUwñÿßùçÎ?wþI–†'—ž\zrIêñNK:œ1Y<]UüÕ®sªèãïƒw£ÅmU¦ž…í­žµ>}Wü¯VoX½a5ÚF8?‹ÏÛ#º»ýdÓGk¬ß+S=ž°ýË×½¾k:\j¡'¡Q†5V4V4®v®Ú¹jçŠøHkÖÌ[VÒQ«Ò]×›=¤ýœjâÿß/­_Z¿4 €¼„¾%E •(ß(ß(_ñ`¿É¬ÅŒ3”ŸÓµò“ƒR^ï}½÷õ^j¯ô ê7¨ß ~â#o¿©wµB” €µíFvÚ0Eåq"qñ®Rÿšw ï@Þj´p~–:{ß½}²ñWô{/›0Öi´ø_…>„Úƒ<¤z¤z¤zˆë¼F%¿ àtÔªt×R./¸¼àòj€¼—B_Udå²Ùe³Ëf’¡ŽWÏ#Mõ¥¦Ét3Vf-už‰+&V¤ê@› çjñ9¼oPýæµÜ•éjèî ÚuæŸ'Õi}UyxmóÚæµTµ»î›r~õ‡u×b­Î´:Óê U@«¡¯ºd¨‹k×.®âV`â¯u¼™ìS~}8ïÛïÜ%¯yµçÕžW{¨·cÀ½÷Ü¿ V­‚wtiÆÄ“òk—ì‰/Wý$ù|²Èç‘Ï#©7Ðf¹ZêLžeÒÞÅË“.NùõÐ/\[Xqcm¡÷ Þ ?Gn¹q¤¸æ },ºÖ6õÉN?^ƒžY™µçó2÷fI/,½°ôÂRê €. V¡oi ÈÐÍ77ßÜ|#Õœ½ñÖ;„ɾâ×Ï_ölÕä˜Ô1ÜöɶO¶ÑE|T¹'sOæž”zG<_3å:“Pÿq »K"Žè5ÓÛ¯÷ø®ñZãµÆ‹J€²B8o‹ÏçúNzcôÚ¼zÜëXÓÍttů>ÜÓ^ª»z* òSàXàXàhÖˬ—Y/qå×¹ÞcÞ¸ÊtÎʬÍßùYÃßß_* €î VÝŽÍ;6ïØLè«^LÝd+Á(Á(ÁHª]x1¸ç˜&7™ø“Z÷ÎpÚeu]|Ü|6ùlòÙ¤ˆPD("¨±/Ù$Ù$ÙDòvÐa böße*Jjmõ´õÞè›âãf÷Ðî¡ÝÂô‚ô‚tj Ê á¼-œÃÅçö]Ü~´éMG'µ~r²{ºÿy©ŽBè7¨1ÈÛɤ“I'“¤~ Ü,~¬¸þ8ý³ÔÚ1|À˜éæRGïáÙ‡gž¥Æè`5ôöaaa„¾êE ­7ßl|³ÑÂ×Â×ÂWÜ:tná0¤fsÅ´¾>öL^¯è˜[?Bªåºa|Ãø†1Õ¥)ï*¼«ð®‚‹ž‹žKïŽé4wß­>7“'dZê_ST¿ \0c–TU_r¿ä~ÉꀲH8‡KáSZ†º|NwWxýξÏî€+-×Yû›M1¡Çú ª º`´Íh›Ñ’Oöj± ÍþLzéÂk7Ï;op‘:b[¦m™¶eu@׫Káë€ }UG ¹+_^ùòÊ—R Nëèãi?‚©@a}Ð*,Ú=XêX­ó\ç¹Î“ŠÒ9ñ9ñ9ñRïT­}m|{X09õþ‰¿UÇ'/Ÿ,u¬’ú%õKêGE@Y'œÏ¥Îö'üÂ{v¢ÓÖc~p¯lÛNêX =Ýñ*ûUö«lãÆ+ŒWˆ#Œ×)pÎô©ºDq´:}µÇöĶ»:J=¢oGߎ¾MEÐMÀÐNÀ°¹ùææ››Ký±º° Éwõñ˾Ϭ¤›}µgƼM{7èý^¹›Á×âãc0È`Á Ã_ 1œZ ›€¡€:dRȤI!RØÏ{åßÊqº®MMo;ÂCòZR×·®o]ßæçæçæçR?Ú)~süæøÍRï Íoœãëž2ëÄVºê÷餶«?•¼Bº|­òµÊçË—7Žú9ÎíÂy^jÈJkÿWgê÷®õ ô›ÞËçý#©c"ôÔ°ÒþIû'IÆÀ1žµý –l>’¦CWýÞN|ò›¥þ§ nJ™ë5®×¸^ƒú Ë€¡€º¤¶¢¶¢vo§ÞN½¤þ|ó«»m÷‚A}†l•÷„à–Œàf. ¥ŽC•ŽU:VéødÊ“)O¦P8Zí¦â¦âæ°íöÛ.õnZF7?Þq‚O·¥µ–÷•Ó?#Ò~Þ©W¬ÜØÜØÜX äJ8Ï?üv#d“Û:ywzo~ê}  é·ßמ-u„þAè%¨@°vúÚék§KýÖT]g[Îñ…ç½ùûüdþ¬ß3?ynZRü¹4ëXÖ±¬cÔ C;tNAHAHAHttttt´ÔŸ²M+Yõ3ÍzhÛ­§99MäôIø}ül϶v’a¡Þ½z rírírí¨–²â]λœw9ý{õïÕ¿—ätU?›Fu_yìK¼k¼¬¦¨ÌS¼O4·QtúaPÇ⧨n¾5úÖhªtpÎ/~\˜ÑÇ·‹ƒ­"¢¯} …œú½»K£·5zçdlœ&õÚ…žAè¨@,¹brÅäŠÅŸC\¿9å;»Å¶ZU³mgÕ[-õJ*U6ª|wìݱwÇR  k„ó¿0HîýkW«wýp¿Ae½ßÛv±Õw®-‹ï„>A訠xëÇ®»~lñ¿Sv&] †]ò9“|Ü ìöÕ^«I÷­ižPüë=v2ìdµ…C;tÛÅÅ™øƒñãÿ‡nûvuYÔ¹å5´‘wY™Ìßë]Ó¬'xß·oVü« ïÞ#¼GÞŒ¼y3( yHŠJŠJŠ*þ}7Ýâ²Ë¯½»Ï¬´´®eerÊgò²NÇ®ØþÓeÜ0—â_]³}Íö5Û÷TñTñ”r&Œ¸PüØß¶Qƒºoýú|ð]Yé÷þ>yÂÏ#x¬õ³_‹uBo@=%u0è`ÐÁ â¿*7«Z©š¾‹ãø{ËsÊØõ¾†ƒÎϲÓSÂ5Ûk¶×l©#†v"à½úôè+ó§ï¨: ]l²î.ˆÞÚè­¶Mæ…÷<Õ´jòø€KNiʼ–„ø„ø„xE¸"\N ÈÏÑíG·Ý®L%X.k1§ÓÊñmwdhÛ´”÷‘$EÆ™ºîýò§,TæµüøùŸÿøy¢@Q@ ÞÆaŒPf4Y3;h´sËW‘½â›Îж~ïVͨ>\ŽmðªöEe^‹ÐP€*®÷½Þ÷z_ËJ–•,+ýLJ,û5¸ìëáúÏÔ‘ë¿ÖºS^O{¼s•1ÍEt5™l6³ø×‘‘‘û¬Ý³vÏÚQ …Ú‰€¹p?à~@ðÕà«ÁW•™Pë2²®Í£Yîíý¼kìIo_FÇ5úkÂÏÃvùzJ;¹ôäÒ“KyÇuÁ£a†=‘‘‘©Lm˜Íôü9ð¶Ëã,ÔÔä”gÒ<ǽ_Øôí°®ÿå«úhÖѬ£Y¼ã€â ã…òãË´hûQ-ºuóÿLSýÞñGá«=›·«]Ç®ÆmeöY÷…€wP—×»_ï~½{R§I&uRæ7Ñh_m3{7§®Ã%ÔXè¿,.³¢ƒCŸÚ+Þ[¹.r]¤âOÅŸŠ?yß xÀÐNÀ%S‘©ÈÜvjÛ©m§ôJh˜±kªõÍ#¶ß^óp)¸ÛgyÀêþ;w®C;ïɳ^øµqØcò?ƒ£•Û(¿o3ôgèÏÐÏ·Ì·Ì·äMÖM{j쩱§FI«ÚrH‹òO;?vQREŸÁËÌÍRï´”ÛizÍìb£#¬ †š¤›]T~ß&VšXib¥¼Ô¼Ô¼TÞ_€ò„±CG”wj¦%W©”xª±EÝìó:†ûX¨·Ó{s¹÷Õ€öóÂRÝÇXÔ`eíÕ%µ…±ž÷(mÙ˲—e/sLuLuLUþ7Ô¼œ÷WA'ê]ßÕS1¿Ç¾ùêí«Ý£f×H{èð¼ŸÅäñÕŒ¦ºd(¿o:%tJ¸Wë^­{µx@yÀÐNÀü‡¼Sy§òNÍ5œk8×PO!¯mþ2?1ÛË¡ŽûÊýÍú×_»3 uš›~úª°úîN—„Ítï³;2ä’ÛáõS›ÿìœ7ÓËw“CDTµºß×|`ÒÖàFånöscFÇŒŽ}ÇåŽËÞMòËç—Ï/¿xþâù‹ç«RÕ¦]Öúù×¾ÙöjŸß†ö5q´S›a»]Ƥ.ºìmà¾;?´ŠÛƒYaÉîCÒ‡†Õp¯õëÊÖ#\®H|W¿ÇøQž-í~ îj=Ål‹*#²0¦ ã;ï&ð1½;ûî컳¿æÿšÿk¾*¿ÅÆÙö;ì´zÒzgôU{¯žÛâ&ÖÛ6ä9[œ¿ã¶ÈÏyÉØü¤Éõ—Œ:»`˜ãÕAö3ƒínv3J¿æý ðˆÃ–}m~û°Ÿëiâiâirê“SŸœb–>0´C;%ð|ëó­Ï·&ë%ë%ëi³qGÇwô¶ámÃÛ†¼k(^Þ¼;ywV·XÝbu m®êáÁÇß|cðÁ¼k€Ò#Œ5¸£Í#£0v ã8ï    Â÷šï5ßkî|Ûù¶ómí<{´ hÐ.àtÜé¸ÓqŠ'Š'Š'¼w  `h'`T’u1ëbÖÅþüøkêø¯B¾ ùê·u¿­ûm]þˆüù#x_ Š³ËÎ.;»lXè°Ða¡šªê íyÛó¶ç1µ Ða Æ#alÒÔÈ(ŒËÂÍû”ׯ;^wœá=Ã{†·¦ÎöKì—Ø/IININI~ø ðA ï ¨0´0ê“®HW¤_q»âvÅm¹õrëåÖÿ‹ø_ÄÿÔõ§»ÿqÿãþÇg'ÌN˜p2ýdúÉôW®¯\_¹ràQÚ®®ººêêªUëW­_µ¾³egËΖêªjß¾=|{L_3}Íô5'²NdÈʳʳʳ☴“0N c–0~ c™ºFFaœÆ\aüå˜rrgÊ)w¦¤}•öUÚW±åbËÅ–333Sýìáää4&tLè˜Ðý‘û#÷G>®ð¸Âã st0“÷"ïEÞ‹#žGöœ9ÌÎÞ¹{çÞ™ûڙɒ0…,T˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0\Ô¾éû¦ï›n<6ÅS'  ?€±ûú€cÀÈ ‰Ã‡%‹mÛ>¶ý° Ã6 ÛPlA±Åx¥šXX§X¿ø,êœvB;èOèO`,ØwØwúúð4ÀHW²_É~%û’Ä%‰K}gøÎðá•áÄçŠ2ˆòð½ÐNh'ý ý ŒÅûû@B¤Û}!Wâ^¡f¹€‘|“|“|÷-Þ·xßâð¬áYóz¹$Q6QNQf¾:Ú í ?¡?€±`ßaßèOèO€”!†k"FJÝJº•t+niÜÒ¸¥ÅO?]ütÊBßö¯â³nháE%«-û¹~‡òAÛ[4²GYÔz@Õ=Æý¶9ªÅˆÿÿ.þFü½xoÊ>W”Y”_l _©k·“ }>ë†îr dµe?=R>h{‹¹YCö(‹–õªºÇ¸¿<¡ZŒøoñïâoÄß‹÷ÒNú!·R…‚ö½ÕtN—eç÷\>öHù&C'ÌÍZñÔ˜ÙËzUÚ6>dy‚øoñïâoÄß‹÷ÒŸ‹S3 .ÿ}¾‚a'zÄÞÐZòc‰û‹*UætÏýkBÊ=ê}vݛŋ#þ^¼—±ÌŸ0П0ϸ`¸&`$Û¹€sç‡?ìüß,²äL¿ѯ49_Y½r´{¿ºG’’"##"Òj)Ö)Ö/>+¿D;~8ü°Ø.¾ßÌn'uùíˆ~eÖºÊê•£{Î×=’”‘VK±N±~ñY´À¬ýI¡­![ë4 9èâ¬uÕ£<Øs>,lõêøø´ZŠuŠõ‹Ï¢?0[ ü½^Ë;÷]¸°LÐÈ'Æ®J]§L9y244­–bbýⳋÁü ó'ý ól@Æ#†k"†S^½zíÌ^8!ïÍÜ+·ök²±òФ=‘-"BÓötÅ©åžÈ¡¢ ¢<Δ\l£Ø^¾÷ôo'¾=s¯ÜÚoV`åI{âF„¦ía¨SË=ñ #BEDyh'€;ö'¹} ¬ôíÜqÐç³Ã*¬¿0mã^§–VŒ_(Ê ÊCðœ±8ÿ"¿à\ó;û-ÌU&Ï”î'—‡–K۸שe÷“ËCˉ2ˆò0ƒùæOæÙ˜gÒ0\0þ‰;$v6‡â[¿_£[ÒÖȦ!™pÒbo¹5²iDˆ(›(§ãmÛ+¶6Öí$¸•Ï¡øÖkÖè–´5~VDH&ŒÚ[nŸ"Ê&ÊI;\¹?É?¹ÔgÁ­B NÞ²faXðêÁñ³2!ôµ· ^=8~–(›('ý À|cqÑÉêæ ì±åIЉ)O. -“ ¡¯½eç“ Cˈ²‰r2ƒùæOæÙ˜gÒ0\0ìJø=á÷„ßù•–R²uýª+]ètʼn¥(³3['êöídYŽª+]è0Ô‰¥(3ípµþ¤¢1¦ñ².÷:±e¦?˜c,î¹põ©r—](îub)ÊÌX æO˜?˜gcž H[ÀpMÀø¤Ò i…ãaxBÇêEK?}œ³Ïñ1îuêb½åÛâx{EÐ6’ßNút*ýôqΟ»6ˆq¯CRë¥(¿ØÚ YýI‰&m÷éTëêŠ?wu¯è×z)Ê/¶…þà^cqƒ-ÿ°lbå£^U|Ý+úµ^Šò‹ma,ó'̟̳1Ϥ0\0þKL¶˜l1Ù½Fý6ñÕ¾tß“{K±]Ž·]ÔíĹv²<¢Ú—î{0jo)¶‹vddRiθýË#Ü7ôµ·ÛEpý±¸÷ëÂç¸oèko)¶‹±ÌŸ00ÏÆ<ÀpMÀxÉñ¯Ì|Úå.î}óR¡n½ëV6ß©‹õRl£Ø^~}–üv’oº÷ÍK…v©u+›ïÔz)¶Ql/íHþÄ{CÞ<ù¦W÷žßj—j¾è×z)¶Ql/ý ÀuÆâ"ZVñ–ù¢_ë¥ØF±½ŒÅ`þ„ù€y6æÙ€ä"†k"Æÿñl‰Ð±þ]}ä»›{ ­_ßܧ.ÖK±½bÛy…sí$¸°|w³öaýúæ>$µ^ŠíÛN;Òª?É?¢T·àÂ5·.›¥}hîè×z)¶Wl;ý sÇâ¢=+¼›/p\ÉCrH~sG¿ÖK±½bÛ‹Áü ó'ól̳Î#†k"öh‰;$vp|êòàóÞõœSë¥Øvǧ1¢=»ö‘|×£AQÏ9$µ^Šmw|xê íH}"âÏZ}>®‡çD¿ÿõ„à¿>×Ãq LH¿±XÄŸãŸÿúoÈNω~­—bÛÇÀŒÅì;ÌŸ00ÏÆ<`®‰ØC½zô"(lxØð°áönXäi¿ZuükV{75u(êÓóÚI¾éÞ7=í׈Ž¥hïf5æn'@êûqdO»ê×ñÕÀön MH±XÜÙÓ®úu|5°½›B3³ï0Âü À<ól€5`¸&`mïWTžð¬š”=ÛÆ^‰úô¼vbþg¤ì™%žÖN€Ô÷'žð¬ß”=˜þ1c±'<ë7eÏf,ó'̟̳1Ï8FœVvEïŠÞõ²Ÿœ¶qÚÆio5ºÕèV#j&e€=ι€sçì œFý6ñÕ¾ätÅÞRÔ½ÚuëídyDµ/9 µ·õã íH}RiθýË#ˆ{í-EýПÒo,îýźðÀ9Ľö–¢~‹Ùw˜?aþ`žy6ÀàÔ{Þæy›çmìíé„Á)CìI®']Oº~8üpøaÛ]hBÇêEK?åÅ™¥¨+Û:u+êÙ¼í¤O§ÒO9ôtf)êÊ´íHuR¢I›Ç}:ñ:³uEHÛ±¸Á–ÿXFÄëÌRÔc1ûó'̟̳1ÏØ"N=ëk# v°‰[·4n©½Ýæá•>½ åäÄ™¥¨+{5)êÙ¼ídïÈC9ètf)êʬíH}Rëûå{öŽ$Üuf)êŠþ¶cñ„õ Cnî:³uÅX̾Ãü ó'ól̳¶€SOº"Üõra°cÀžÁ7É7É·øéâ§‹Ÿ¶ÝI”’­ëW]ÉiIr—¢ÞlëSÔ³¨ssµ“e9ª®äp3¹KQo¦j'@ªû“ŠÆ˜ÆËrë&w)êþú±¸çÂÕ§Ê]&ÖMîRÔc1ó'̇00ÏÆ<`8m§`°oñ¾ÅûÛþ#|%Y"[ETå„$ÙKKd«ˆª¢mëVÔ¹YÚIp+ŸCI–ø¨ˆªh&{i‰Š¨*êÐíHM’r©Ï‚[…U\=*>Š@7ÙËŠ«GÅG‰:¤?¤l,.:¹BÝ|¡S>:¹2´n²—\ZNÔ!c1ó',=yþ`žy6Àpú! N `ž5Ý·©éOrûXéÛ3¬èêÆñ qSµ,ººq|GQŸô'çÇâü‹ü‚sÍŸRûd×Є¸©ZÖ>Ù5´°¨OÆbæOXzÚü À<ól€-àŒGì `“[’¸$qI¢mCßÚ¯ÉÆÊ+8ýH«¥¨OÛzõïÎídV`åV¦ÕRÔ§û¶ 5ýIpÇAŸÏ $¾M«¥¨Oú€ócqg¿…¹Êä!¾M«¥¨OÆbæOXzÚü À<ól€-àÌEl°yÝNºtÛw†ï ß¶ûî¶^Ãë7påS‚E?½÷ið[¢´6ï¬Ô~êÊ¥õi[Ï¢þÅwážíDû¨~×9°Ó.}R-¬Ïª¶ñÅV–÷+Ý9Ÿù¶y?)=½XHÞ¨æÕëüãwavý!aENß[®AW;0õé–íHuR3zÙí#WˆNkůðÚ{¥tÉÎφ<ñ­Úò½žy'T(YÒû\Þ½ùú¼Y&¸ÂÿÂÎ6û¤Ò†ñ>Ë·ºf,ê“þàüX<®Ì!=ÄÇõƒÕ‰]v®R¶TŸj¿ä?)J>$klã Ý]­œ¢>‹™?ɘå³Zý²…È}ÌûS¯¼RärT·ëÎdþ`ží¿æ©Žiãê7›÷høõ  ïݬš·P»"9}åÞ*– ´êM =ú2dÈ“À,‰û¤AIæÙ{€]a°5`ÓJ–8,q˜mSnYr¦ß—þMhŽÈœ^µ™Q0‡uÉ]ÿw¬¢nmë\|îÖNê4òÛá‡t9âsFx I첺d`rOq©ðí[5â]íðTÔ­{µ 5ýI¡­![ë4r…Ð4tøÌ¼ßË÷VÑ+¥;;ß“éRp›6a^«sÆçtµXÔ-ý ÀñXø{½–6ºË•µaR/ ÿÛ9ºfiEÝ23’ÞËÓa]|Â*y¥‚ëÀî;˜džMûl} cGÖYxªHp½3­—x…y­ñ:d½-.w#葃.ÎZGp<wî»pa™ ×~;n™7»ô2{1.z#è¾ – b,fþ$½—{Æ·Øêo]¶…ßó:5§ÞçÁ[YÞ‹é]¥~,ó'ól•ß6'¬Ÿ¸ÆW”­rBà[>ÅgLú¤Y¹¹èÒzU{©¯.û©jÂç[ä+»¶°¡“¹?µÞ–ç–„¯ež °Fìú<3 &6­a†m¶Á¶É^ÊÓ­gÝŠ®p¸­,ïnÔ8¨ÒîIkø–YXéœßùoÚÛÙ\?uk[rñ]¸[;Ùe©[1sàÚ{¥Á€;þïæ)(JUeGÐTŸù"ÐýO«øÿ¿Kü»õ»ìýef-EݺW;RÓŸT÷šßl—%sƒÒò½†û_?- ê3à‹éíÄÿµ wÅ¿”XÑöEßïÄçë[üí2Ç]-uKp<Ø¢}Rñ¦+G¿ƒBw•*¿/oŸhï÷ €EÝ23’ÞK÷ŠR•ëX°z¾î2Ob¦ùÀÝçÙÄòƒ5 É&JÕ´}Ø¿â1j¶shÖÿ’?*ï=oƒy6À`÷â9a0°i[PlA±¶ÍôÙî~Âg¸ÂáþšS±k8¿ƒ¹þ Œ¨[Û’‹ïÂÝÚÉá32÷.và¢E¡í¬KµýäÜ!'9д~—xf‰ë˜Šºu¯v¤¦?©½|åÚ527(-ùÁ û¯åɳ×ÿj±gné\mõÜ[;ÿçâßÿw5°ëÀ¢néOŽÇâIw~+Te›k¨ã Ò¿è«åûä{çåÑû ˜ï.°¨[ÆbæOÒ{98{å_J(¢TmΔ¾S¸´»Àî8¸û<Ûïo]^{®(wV¯C^§Ã¾OøÏíå™ghÛ±^™*9˜g¬»/s‡ÁÀ&ôôàÓƒOÚ6Êзý«ø¬sÃýã»;6­5qÞuv>±]ºc,–¢žmË/¾wh'Aû|Ö¹ÂÜòzãõòRÊnæ|¨ÎÚæ5¿|þh'ŸË¹V¸ÚïE=»~;RÓŸäïVªPÐ>WJ^4ZÔánžH?#à'ÿnµË4©îL”[}÷Â.±=m·ËÕ®õLŒÅ¶cAÑàòßç+èÊ×þVõmWÝ/ÏËë‡Ôù£@…I»ŽÇTYá.°XŠzf,fþ$ý–MÛ—,æ7B”mLϪKçsßè×çOs̳Íj;xr¹kÿù)Iƒ÷ÿßOI\뙾̳Á›ƒùÂ``36Óú·êߪoÛ‡YT²š»œ¸o,êÙ¶üâ{q‡vÒå@Éj®pè&~QØ¿×Rñу³w.ýŸß;'÷êañ,W;¨õìúíHMRôVÓ9]¸Z\êü²l›NŒ9b}ݰkÀ¢žéO€±øühéD˜Â\34m5eh‰«¢œ{Í›{ò§MâÞ«4Ú½n-–¢ž‹™?ɘ’eƒëW+_Püt¾îó¢ ùû6ÍóM®ãÁ…"òéÔ»œ\äÏU¯‡W!*)GdÎ/æOæÙIJÃÔFj‘A¢T_õ׸|+ëÿû8òço¸¸7&¦Î¥Kâ>iPÒ½`æÙ¹€MØ«›" &6¡³ÛÏn?»Ý¶ñ-û¹~‡òAÀé½õl[~ñ½¸C;{¤|kÌ9â¶SÃ~yð°_º(¹ÌÕ`QÏ®ßN€Ôô'eç÷\>öˆë½U»Ìºý}Bȱ©w×M­à?¢à‚nE—ìø½õ¶”»×÷ñäÁ®‹z¦?ÆbÛ± µ:åÇ÷]-.ì¾åQÐo¹Zä~êõ«wd®þ^S{X·#p­uÐë^°¨gÆbæOÒcùo\¯?ëO±.[¾õ¹>óþÒ™)ÈFŸ•Èç›pqo×Ëu.10ÏVñVÙùùw‹RíŒw¹JƒÃßþ\3[Û_Ãsîš'.·ì]äå ¢ïzÏô/þ~Dt·¥^¿EiXo“+À̳!s››û†ÁÀ&”Ð/¡_B?Û·½E³±!{€Ó{)êÙ¶üâ{q‡v27kÈw¼ÙËóÀKÂ׎m×óyéf/¯$èïS&Wß¿wíR××ÕJ+êÙõÛ šþ¤|“¡æfuý8ïé¢íJ­´-¿÷Ô<«óÞ zëã>ŸÿéÊåõLŒÅ¶cÁ‡Ã¢J•9í:Aéè§ûïUîê—§äþ<}E ›³¼x¤mÄë^°¨gÆbæOÒcy$[û/j~b[ÂÈa;¯÷Ý{MjTî$þæ‡ËÍÚ…¬Q©OñËÞY½ú{ý×¼Šk^ ì.ó'€9æÙŠäô]”{ën&ßó½Òùr]ÌîµÃù0cï¦oJV÷qÍYAæÙ¹€=‡{…ÁY\g—@zSµP•8Ý—¢žÝ¹,ëUÕÍ`ñÄßúGªÍ)¤ýç7Ñy«z©¾ºì§ª ®ùDQÏôK0·Š§ÆÌ^ÖË}àÿÚ–cŽ,ûÉ5Ë/ê™ö°Õsÿšr\!"¼üDD•kåo4ÜVðå=6*­lÖ³Ðâ)9Oæýá®{À¢žioÌŸ¤Ç2v`Ë¢ÿy¼Q¥s~o俹¥Uãs•‹[ϜؾëÇ®-džÎú10ó'€ϳY_ãkmÞ£á׃*ü¶qóæZ1÷×Ûëß:—u»QçõË?ÿ³RžrKôÏWCüeÙ~Å·æ{õöõÕzg™g€äÚ½+zW40Ò…q¿mŽj1Àé½õìÎídyBµ×}ÿlþ}ÞÚO?¬Öì“€‰Ö寺8ø™Ï‹_*|ûVøÿ´W,¿¨gú%˜[¥mãC–'¸Ëk¾²Ãþß«½˜Ÿ{× ›F&,Zä[)´å{=­·¨r¥ ¿~sÑÕJ.ê™ö°Õûìº?7»BDÚØkØÜb/Kå®LbÞ,cÛÅ·¨ürür÷XÔ3íù“Œœ-Iî¼J—†C1xò<[¡N>—s­¥WŸ»»cRzŽgÏÄÿ-±³HRž{ÿ=OË<$Ï“­O¶>ÙJŒtÁÀü‚Õ¹vâºW?é´¯{ƒ¤ésÎ-ç•7&ÏXïöÖ‡­óÞ^>ðÉãÈŸ¿mpÀ5Fùe"<»\lo)¶Â¯QuKøaëíâ `€»p…+€ûÝØR>è{¯Þ«½>Ì’w¶·ïïm[‚%´÷.Ûmá `0’Üå÷yš6¬üBlQ…$ß¶ù'3xò<[å„À·|Š‹R-þnÔWÁuŸ=³Þ¢Æ#j=ò{“y6H.ºXÜWz¼VçZku.ÛæÅ3€3÷6îÓN\ñÀ§Ã¾O«TeGÐTŸù¢œ¹åÎæõÏÄü}n•))n>ãüa«+?›„Œ—™Æwy°31°§†_Å"/ÄæúϦeòâÅ‹c±+<¸ýÙ/û—Î’¶S'£Êï=Zi¯ë?˜–Éü‰ë fÌA·Ó6NÛ8m£óg+âï3>ôµFlÆæXÿVý[õmÜÐÂ!‹JV#N泌g×?à°ßNº(YÍuàj5®´¹àËSÖZõ&…Ýô—׫厡¯õRÔ3¦0÷¸SôVÓ9]¸ÚU¼ùÂcßoàü{˽ÓÛ¼.Þ[hCȲ:Á®‹z¦?ÆbÛ± ìD˜Â27WýÐÙÿ!YcWèîüÒz+z(߬/×ÄöÿºN,ê™±˜ù“ôXÖ®QäBÁ¢T>+‘Ï7Áù÷I ™\2P¼·—R~Ù‚æOÏœgû¦øÄÊŠR}Rªã÷%Ú8ÿÞQ“{ì/µI¼·ûÓ–Ý‹vpµy9æÙ¹€MØ«»mèkØ„ž|zðéAÛÆú¶ŸuÀé½õìúöÛIÐ>Ÿu®pè&]Z¯ê˧Zzgõ:äq¦ÈMÂVº{ô+–¢ž90…¹ÇüÝJ Úçj°××Þ?ç ¯—woþÿµßýÒ¢q÷–åë5¯Œ¸Õsÿt+ùÁ û¯°¾á³xú¯¸¡´ëD¿¢néOŽÇâIw~+Tepz,EÝ23’~Ë;z•®Ÿ¯ÔŸ£y{¼üyô]/Ãk|ŸUš[¹3¶y* â[¼°F×­•š,ª<@D¥>Å/[G¿½·•ÿ÷?gÖÌŸž<Ïfý5k]6ÝÐhã„éí*M>0`µOõ;[+ÍÊVy~ŸUmã‹­—dXÿ¥«E¿Ì³Á»/ó…¾Ö€Mk؆a†ý›P]ÊÓ­gÝŠÀé±uk[rñ]¸[;Ùe©[1sàê>íPÈ?­žæ:¦¢nÝ«©éOª{Ío¶Ëâ:×çZæ“£`7ç{þ_‡œ õ™~gófW»öWÔ-ý ÀñX¾˜Þ.ÌkuÎøœ®ýŠ¥¨[ú€ã±¸sß… ˧ÇRÔ-c1ó'9O²tb½3Á›ô)qÀ/¬ØÑüòLÏç}Ä»HééóFu+41àºT±ÕŒªÁÖïbþ`žÍv)UŒšV5X\×[jIÑQy{ä[Ÿ·ª÷—U?óyñÑ_­~/ºw×× ºUùÁúêaWÛ æÙà €]Ÿç„¾Ö€M+qXâ°Äa¶M¶YdÉ™~;Üåyº®|ºb»uk[çâ»p·vR§‘ßwήk.EݺW;RÓŸÚ²µN#W‹N­Kèøo\­äÖKQ·ô'ÇcqàïõZØèŽOvý¥¨[ÆbæO\mžÄõgQÜqþ0ë<›ãX×5C_æÙàj€]“g†¾Ö€ÍëvÒí¤Û¾3|gøþ§ ÜÝÖkxýî»òRÔ§m=‹úß…{¶í£ú ˆlÓj)êÓ-Û êþ¤fô²9ÚG®¦º×RÔ'ý Àù±x\™Czˆ‘mZ-E}23ÂÒƒæOæÙ˜gì v„¾Ö€MnIâ’Ä%‰¶ zk¿&+¯àÄ#­–¢>mëYÔ¿;·“Y•Wp@™VKQŸîÛN€Ôô'Á}>+à6ÍnþÜqÐç³éOÎÅýæ*“‡à6Ínþì·0W™<ŒÅÌŸ°ô´ù€y6æÙ[À™‹Ð×`“»’ýJö+Ùmwᄼ7s¯Lú$²rD N?Rµü$²rD QŸ¶õ,êßÛ‰oÏÜ+“>‰ïQ‚ÃÊT-?‰ïQBÔ§û¶ 5ýInŸ+}{†]Ý8¾#ñmª–EW7Žï(ê“þàüXœ‘_p®ùSjŸìZ˜ø6UËÚ'»†õÉXÌü KO›?˜gcž °Eœñ}A쳆g ÏjÛÜã[¿_£'!©YŠ:´­[Qçfi'kÖèÆÁej–¢ÍÑN€Ôô'!'oY³75KQ‡ô'€”Å‘=¶< :Aˆ›š¥¨CÆbæOXzòü À<ól€5àŒAè›\Àaßâ}‹÷-¶mú¡±þ#|%Y"[ETåT$ÙKKd«ˆª¢mëVÔ¹YÚIp+ŸCI–ø¨ˆªb&{i‰Š¨*êÐíHM’r©Ï‚[…U\=*>Š(7ÙËŠ«GÅG‰:¤?¤l,.:¹BÝ|¡S>:¹2´Qn²—\ZNÔ!c1ó',=yþ`žy6Àpú!ôM `Ïà›ä›ä[ütñÓÅOÛî JÉÖõ«®ä„$¹KQo¶õ)êYÔ¹¹ÚɲUWr ™Ü¥¨7Sµ ÕýIEcLãe9t“»õFHýXÜsáêSå.è&w)걘ùæC˜?˜gcž °Fœ¶}Ó °‰[·4n©½Ýãá•>½ å´Ä™¥¨+{5)êÙ¼ídïÈC9Ütf)êʬíH}Rëûå{öŽ$Öuf)êŠþ¶cñ„õ Cnë:³uÅX̾Ãü ó'ól̳¶€SÐ7={’ëIד®‡?~øœüw¬^´ôSNNœYŠºúÏ™8~8ü°¨gó¶“>J?å Ó™¥¨+Ó¶ ÕýI‰&m÷éD¸ëÌRÔý mÇâ[>þ;`á®3KQWŒÅì;ÌŸ00ÏÆ<`‹8õvEïŠÞMè›¶€=ι€sçìí®ä!9$?ѯ¨Q'ŒÅ`þ„ù€y6æÙǀ =Zb‡Ä‰ìýŠ*t¬WùÁç½/4(ê™§.bÛE=Ø«%Q‡žÝN‚ ûÈ>ëÑ ¨g’ŠmõàÉíH}’D©nÁ…k}üõù¸žýŠmõ@Èø±¸hÏ ïæ ÿü×Cvzfô+¶]Ôc1˜?aþ`žy6ÀÀpMÀHJø=á÷„ߟÆxÚ¯YÅö:>uõF;±><õ´_)Šíu|HêiíH}"âOO»Xl¯ãè—þ1c±ˆ?=íj`±½Ž£_Æb0Âü À<ól€-`¸&`¼$­VH+ì ®â>žðl±önX$ˆº¢Ø»Y'<³Dl£½ÑÐN€Ô÷'âÈžðl`±önøLȬ±XÜÙž ,¶ÑÞ Ÿ‹Áü ó'ól̳ŽÃ5ã¿Äd‹É“ÍË!£~›øj_šïÔEl—ãmõC;q®,¨ö¥ùIÅvÑN€ŒìO*Í·y„ù¢_±]ô'׋{±.êUÅ×}C_Q~±-ŒÅ`þ„ù€y6æÙ€Ô#†k"†]ŽŸEaM)Ùº~Õ•îuê"ÊìÌÖñl‰´k'ËrT]é^‡¤¢Ì´ÀÕú“ŠÆ˜ÆËr¸Wô+ÊL0ÇXÜsáêSå.»Wô+ÊÌX æO˜?˜gcž H[ÀpMÀø?$vHìØ!lxØð°áŽæÐXÿ>‡â[¿_£[ÒÖȦ!.tÒ²5²iDˆ(›(§ãmÛ+¶6Öí$¸•Ï¡øÖkÖè–´5~VDˆ ŒnŸ"Ê&ÊI;\¹?É?¹ÔgÁ­B NÞ²faXðêÁñ³\(ô ^=8~–(›('ý À|cqÑÉêæ ì±åIЉ)O. -ãB¡oç“ Cˈ²‰r2ƒùæOæÙ˜gÒ0\0œò"èEЋ ¨è¨è¨hg~¥U8!ïÍÜ+·ök²±òФ=‘-"B3á¤eOd‹ˆPQQgJ.¶Ql/ß{ú·ßž¹Wní7+°òФ=ñ #B3á`tOüˆPQQÚ àŽýInŸ+}{wôù¬À° «GÆ/̄зÂê‘ñ EDyèOž3ç_äœk~g¿…¹Êä™ÒýäòÐr™úv?¹<´œ(ƒ(c1˜?aþ`žy6 ½Ã5#ÙΜ 8~8üpøa/§5‹,9ÓoGô+MÎWV¯íޯ=]ëëŸå|ÙĶˆíâûÍìvR§‘ߎèWf­«¬^9ºç|Ý#i{*Ö)Ö/>‹v˜µ?)´5dkFÁ#]œµ®zÔ‚{ΧmÜ+Ö)Ö/>‹þÀXl-ð÷z- lìÜwáÂ2A#Ÿ»*uMÛ¸W¬S¬_|c1˜?aþ ?až ÈxÀpMÀH©[I·’nÅ-[·´øéâ§‹ŸöJ‘зý«ø¬Z8dQÉjË~®ß¡|ÐöÍÆ†ìQµPuq¿mŽj1â¿Å¿‹¿/Þ›²ÏeåÛÂWêÚí$hŸÏº¡…»(YmÙÏc”ÚÞbnÖ=Ê¢e½ªî1î/O¨#þ[ü»øñ÷â½´€þäåõIÝJ ÚWôVÓ9]”ßsùØ#å› 07kÅScf/ëUiÛøå â¿Å¿‹¿/ÞK`,NÍX\4¸ü÷ù †èSxCkuÊ%î8,ªT™Ó=÷¯ )÷¨÷Ùunÿ-þ]üø{ñ^Æb0Âü @Â<à:€áš€‘|“|“|÷-Þ·xßâð¬áYóz¹$Q6QNQf¾:Ú í ?¡?€±`ßaßèOèO€”!†k"Fº¸’ýJö+Ù—$.I\’è;Ãw†ïŒŒ?¼Ÿ+Ê ÊÃ÷B;¡ô'ô'0ì;ì;ý ý V€áš€‘A‡%KÛ>¶}lûa†m¶¡Ø‚b Š-Hý…XX§X¿ø,êœvB;èOèO`,ØwØwúúð4ÀpQû¦ï›¾oºñØxl<ÿM€v€þÆbì;èOŽ€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€Idh÷JÜ+q¯x€Ç9)0¸=`0 €Å¿ÇeË—5.K\–¸,Æ ã…ñÂxn<7žO§ÆSã‰ñÄxb<2Œ‡ÆCã¡q߸oÜ7î÷Œ{Æ]ã®q׸cÜ1î·ÛÆmã¦qÓ¸iÜ0n7ŒD#ÑH4þ1þ1þ1®W«ÆãŠqŸd\2.Œ Æã¼qÞ8oœ5Îg3ÆãŒqÚ8mœ6þ4þ4þ4þ0þ0þ0N§ŒSÆIã¤qÒøÍøÍøÍ8n7ŽG£ÆQ#ÁH0Œ___ÃÆaã°qÈ8d2âx#Þ8`0ûýÆ~cŸ±ÏØgì5ö{8#Έ3tC7tC34C3C1C6dC6,†Å°???±F¬kì1ö{Œ]Æ.c—cÄ1Æc‡±ÃØnl7¶???ßßßÑF´m|g|g|gl1¶[ŒMÆ&c“±ÑØhl4ÖëõÆ:c±ÎXk¬5ÖkŒ5Æc•±ÊXe¬4V+oŒoŒoŒåÆrc¹ñµñµñµ±ÌXf,3–K¥Æc‰±ÄXl,6 …ÆBc±ÀX`Ì3æóŒ¹Æ\c®ñ¥ñ¥ñ¥1Û˜mÌ6¾0¾0¾0f3™Æ c†1ØfL3¦ŸŸŸS©ÆTcŠ1ŘbL2&“Œ‰ÆDc¢1ÞoŒ7ÆãŒqÆcŒ1ÆmŒ6FŸŸŸ#‘ÆHc¸1Ün 3†ÃŒ!Æcˆ1Øl 6ƒŒAÆ@c 1Ð` 0ýþF#Òˆ4"¾F_£¯ÑÇècô1z½Œ^FO£§ÑÓèaô0zÝîFw£«ÑÕèj|h|h|ht6:NF'£“ÑÑèht4ÚíöÆÆÆF;£ÑÎhk´5Ú­ÖFk£•ÑÊhe´0Z-ŒæFs£¹ÑÔhj45šMŒ&F#£‘ÑÈhh44áF¸n40 ŒzF=£žñžñžñžQרkÔ5ÂŒ0#̨mÔ6j5šFM£†QèaT3ªÕŒªFU£ªQŨbT1BŒ#ĨdT2*ŠFE£¼QÞ(oÁF°hF9£œQÎ(c”1Ê¥ÒFi£”QÊ(e”0J%ŒâFq£¸QÔ(j5Œ#À(l6 þ†¿áoø¾†¯QÈ(d2 Œ†ácøùŒ|F>#¯‘×Èkä6r¹\F.#—áex^FN#§‘Óx×x×x×xÇxÇxÇxÛxÛxÛÈnd7²ooo¯¯¯¯¯¯¯¯¯ÙŒlF6#‹‘ÅÈ¢'éIz’þ\®?ןéÏôgúý‰þD¬?Öëõ‡úCýþ@ ßÓïé÷ôõõõ;úýŽ~[¿­ßÖoé·ô[ú ý†~C¿®_ׯëÿèÿèÿè×ôkú5ýŠ~E¿¢_Ö/ë—õ¿õ¿õ¿õ‹úEý¢~^?¯Ÿ×ÏéçôsúýŒ~FÿKÿKÿKÿSÿSÿSÿCÿCÿC?¥ŸÒOé'õ“úIý7ý7ý7ý¸~\?®ÓéÇô=AOÐèGô#úaý°~XÿEÿEÿE×ãõxý ~P?¨ï×÷ëûõ}ú>}Ÿ¾Wß«ïÕãô8=N4]Ó5]Ñ]Ñe]ÖeÝ¢[t‹þ“þ“þ“«Çê±ú}¾GߥïÒwé1zŒ£ïÐwè;ôíúv}»þƒþƒþƒþ½þ½þ½­GëÑúwúwúwú}‹¾EߤoÒ7éõúF}½¾^_¯¯Ó×éëôµúZ}­¾F_£¯ÑWé«ôUúJ}¥¾R_¡¯ÐWèËõåúrý+ý+ý+}™¾L_¦GéQz”¾D_¢/Ñé‹ôEúB}¡¾P_ /Ðèóôyú<}®>WŸ«©©©ÏÖgë³õ/ô/ô/ô™úL}¦>]Ÿ®O×§éÓôiúgúgúgúT}ª>UŸ¬OÖ'ë“ôIú$}‚>AŸ ×Çëãõ±úX}¬>F£ÑGé£ôQú§ú§ú§ú}„>B®ׇëCõ¡úP}ˆ>D¢ÒéƒôOôOôOôú@} þ±þ±þ±Þ_ï¯÷×ûéýô~z_½¯ÞWï­÷Ö{ë½ô^z/ý#ý#ý#½‡ÞCï¡wÓ»éÝô®zW½«ÞEï¢wÑ;ëõÎzG½£ÞQï wÐ;èèèèïëïëïëmõ¶z[½ÞFo£·Ò[é­ô–zK½¥Þ\o®7×›éÍôfz½‰ÞDo¬7Öë õ†zC=BÐ#ôp=\×ëëõõúz=½ž^O¯«×Õëêuô:z½¶^[¯­×Òkéµôz ½†^]¯®W׫êUõªz¨ª‡ê!zˆ¢WÖ+ë•õŠzE½¢^A¯ WЃõ`=XÒƒô ½œ^N/§—ÕËêeõÒzi½´^J/¥—ÒKè%ôzq½¸^\/ªÕ‹êz€ Ö ë…uÝ_÷×}u_ÝW/¤Ò éôzÝG÷Ñ}ôüz~=¿žWÏ«çÕóèyôš–O˧åÓòjyµ¼Zn-·–[Ë¥åÒri^𗿥åÔrj9µwµwµwµw´w´w´·´·´·´ìZv-»ö†ö†ö†öºöºöºöªöªöªöŠöŠöŠ–U˪eÕ²hY´,ê õ…úB}®>WŸ«OÕ§êSõ‰úD}¢>R©Ô‡êCõ¡z_½¯ÞWï©÷Ô{ê]õ®zW½£ÞQ嘆Ô[ê-õ¦zS½©^W¯«×ÕD5QMT¯©×ÔkêUõªzU½¬^V/«—ÔKê%õ¢zQ½¨^P/¨Ôsê9õœzV=«žUÿRÿRÿRO«§ÕÓêêêêïêïêïêIõ¤zR=¡žPO¨ÇÕãêqõ˜zL=¦&¨ j‚zD=¢Q«‡ÕÃê/ê/ê/j¼¯Æ«ÕƒêAu¿º_ݯîS÷©ûÔ½ê^u¯§Æ©qª®êª.:UQUQeUVeÕ¢ZT‹ú“ú“ú“«Æª±êuºGÝ¥îRw©1jŒ£îPw¨;Ôíêvu»ºMݦnS¿W¿W¿W·ª[Õ­êwêwêwêfu³ºYݤnR7©Ô êu½º^]¯~«~«~«®UתkÕÕêjuµºJ]¥®R¿Q¿Q¿QW¨+Ôê×ê×ê×êWêWêWêRu©ºTR£Ô(u±ºX]¬.R©‹Ôêu:_¯ÎWçªsÕ¹êuŽ:G­ÎVg«³ÔYê,u¦:S©ÎPg¨3Ôiê4ušú¹ú¹ú¹:UªNU§¨SÔ)ê$u’:I¨NT'ªãÕñêxuœ:N§ŽQǨcÔÑêhu´ú©ú©ú©:R©ŽT‡«ÃÕáê0u˜:L¢Q‡¨ƒÕÁê`õõõu :P¨~¬~¬~¬öWû«ýÕ~j?µŸÚWí«öU{«½ÕÞj/µ—ÚKýHýHýHí¡öP{¨ÝÔnj7µ«ÚUíªvQ»¨]ÔNj'µ“ÚQí¨vTÛ«íÕöêêêj;µÚNm«¶UÛª­ÕÖjkµ•ÚJm¥¶P[¨-Ôæjsµ¹ÚTmª6U›¨MÔ&j#µ‘ÚHm¨6Tªáj¸®6P¨ Ôzj=µžúžúžúžZG­£ÖQÃÔ05L­¥ÖRk©5ÕšjMµºZ]­®VS«©ÕÔP5T U«¨UÔ*jeµ²ZY­¤VR+©Ô jµ¼Z^-¯©Aj¨ªjYµ¬ZV-£–Q˨¥ÔRj)µ¤ZR-©W‹«ÅÕbj1µ˜ ¨jµˆZDõWýUÕOõSýÔBj!µZP-¨T}TÕGͯæWó«yÕ¼j^5šGÍ£æRs©¹ToÕ[õVsª9Õœj5‡šC}G}G}G}[}[}[Í®fW³«oªoªoª¯«¯«¯«¯©¯©¯©¯¨¯¨¯¨ÙÔlj65‹šEÍ¢$)IJ’ò\y®J¥ÒKé¥ôRz*=•žJ¥‡ÒCé®tWº+]•®JWåCåCåC¥³ÒYé¬tR:)”J¥ƒÒ^i¯´WÞWÞWÞWÚ)í”vJ¥ÒFi¥´RZ)-•–JK¥¹Ò\i®4Sš)Í”&J¥‰ÒXi¬4V* •†J„¡D( ”J¥¾R_©¯¼§¼§¼§ÔUê*u•0%L Sj+µ•ÚJM¥¦RS©¡ÔPj(Õ”jJ5¥ªRU©ªTQª(U”%D Q*)•”JJE¥¢RQ)¯”WÊ+ÁJ°¬*J RN)§”SÊ(e”2J)¥”RJ)©”TJ*Å•âJq¥˜RL)¦(J€RD)¢QüÅ_ñSü?¥RH)¤T *ÅGñQò+ù•üJ^%¯’WÉ£äQò(¹”\J.Å[ñV¼•œJN%§’CÉ¡äPÞQÞQÞQÞVÞVÞV²+Ù•ìʛʛʛÊëÊëÊëÊkÊkÊkÊ+Ê+Ê+JV%«’UÉ¢dQ²È/äò ù¹ü\~.?•ŸÊOå'òù‰üH~$?’Êå‡ò}ù¾|_¾'ß“ïÉwå»ò]ùŽ|G¾#ß’oÉ·ä›òMù¦|]¾._—åD9Q¾&_“¯ÉWå«òUù²|Y¾,_’/É—ä‹òEù¢|A¾ _ÏÉçäsòùŒ|FþKþKþKþSþSþSþCþCþC>%Ÿ’OÉ'å“òIù7ù7ù7ù¸|\>.•ÊGå9AN•••ˇåÃò!ù|HŽ—ãåxù€|@> ï—÷ËûåŸåŸåŸå½ò^y¯˜ü§ûb—I–dIþIþIþIþQþQþQÞ#ï‘÷È»åÝòn9FŽ‘cäòNy§¼]Þ.o—¿—¿—¿—£åh9ZþNþNþNÞ"o‘·È›äMò&y£¼QÞ(¯—×Ëëåuò:y¼V^+¯•WË«åÕò*y•¼JþFþFþF^!¯WÈ_Ë_Ë_Ë_É_É_ÉKå¥òR9JŽ’£äÅòby±¼H^$/’È äò|y¾<_ž+Ï•çÊsä9òy¶<[ž-Ï’gɳä™òLy¦9¯œWÎ+ç–s˹å\r.9—ì%{É^rN9§œS~W~W~W~G~G~G~K~K~KÎ.g—³ËoÈoÈoȯ˯˯˯ʯʯÊÙälr69«œUÎ*%IIR’ôBz!½žIϤgÒSé©ôTz,=–K¤GÒ#éô@z Ý—îK÷¥¥¥¥»Ò]é®t[º-Ý–nI·¤[Ò é†tCJ”¥DééééªtUº*]‘®HW¤KÒ%é’ô·ô·ô·tAº ]ÎKç¥óÒYé¬tV:#‘ÎH§¥ÓÒiéOéOéOéwéwéwé”tJ:%NH'¤ãÒqé¸tL:&“¤)A:"‘ŽH‡¥ÃÒaééé)^Š—â¥ƒÒAé ´_Ú/í—öIû¤}Ò^i¯´WŠ“â¤8I—tI—TI•TI‘I‘‹d‘,ÒÒÒR¬+ÅJ»¥ÝÒni—´KÚ%í”vJ;¥Òi‡ôƒôƒôƒ´MÚ&m“¢¥h)ZÚ*m•¶J[¤-Òi“´IÚ$m”6J¥õÒzi½´NZ'­“ÖJk¥µÒi´FZ%­’VI+¥•ÒJi…´BZ!-—–KË¥¯¤¯¤¯¤eÒ2i™%EIQÒbi±´XZ$-’I ¤Òi¾4_š/Í•æJs¥9ÒiŽ4[š-Í–fI³¤YÒLi¦4Sš!ÍfHÓ¤iÒ4ésésésiª4Uš*M–&K“¥IÒ$i’4Aš MÆKã¥ñÒXi¬4V#‘ÆH£¤QÒ(éSéSéSi„4B! —†KÃ¥¡ÒPi¨4D" ‘Iƒ¤AÒ@i 4P Hý¥þR)RŠ”"¥¾R_©¯ÔGê#õ‘zI½¤^RO©§ÔSê!õzHÝ¥îRw©«ÔUê*}(}(}(u–:K¥ŽRG©£ÔAê u>>>Þ—Þ—Þ—ÚJm¥¶R©ÔFj%µ’ZI-¥–RK©¹Ô\j.5“šIͤ&R©‰ÔHj$5’J ¥†R¸.…K ¤R©žTOª'½'½'½'Õ‘êHu¤0)L “jIµ¤ZRM©¦TSª.U—ªKÕ¤jR5)T •B¥)D ‘*K•¥ÊRE©¢TQª U*HÁR°,IARTN*'•“ÊJe¥²Ri©´TZ*%•’JI%¤R ©˜TL*&•ŠJE¥"R©ˆTX*,–ü$?ÉOò•|%_© TP*( H¤üR~)¿”OÊ'å“òHy¤3 u*Ô©P§ šA5ƒj†oß¾}|•ñUÆWù±ë]ìú<ðyàó@Ú¹F®¹räÊô>¢þ2äË/C¬×ܬQ³F͉£>¾’‹˜ …€‘YfLš1iÆ$ëo³¸QÜ(nðÍ´KÚ%íÒà샳Î^eG•Uvˆ Ñ¯–_-¿Zâ_ÄÿU_U_U_MïòˆÏ²îµŠ-v´ØQóõZâJA÷z¥‘UW=\õ0)GRޤ´m #‰a”ØYbg‰é}D}/æ^̽ŽÛH+ÀÀÀ#4нR¶Î´W]¿„p'gžœyr¦í·¹dÅ’KVP?€';ëuÖë¬W‹²-ʶ(›² ñtØé°Óai[ª3EÎ9SÄö³– ^6xÙ`3Õÿº-붬Ûâ•Înß¾Lk2†’[É­äÎÈ#ê…\xÐzýyâòÄå‰ãè€ä"&Á™IÕ´]§ùJˆL–#)GRŽÆ#h<Âú{,3ªÌ¨2£øNO¶ìþ±ûÇd È%5ábaÿÂþ…ýÓ¶?éy¸çជ­?%80808ÐL½–¸B×+C„~úmè··rÞÊy+'-Ho¦v˜ÚajFQ?œþpúÃé¶Ÿ"üÁ7€ó€ €€GHxµÏ*G/ó•™ËÞµeßÿ¦ø7Å©À3‰«~‰~›6 lR¶_Ù~eû9þË"9‹ä,’S\¹›š²ß}|÷ñݶëß4hÓ MƒÌQÿ–º–º–ºŽë3×Å\s]ì8¼ãðŽÃwÆîŒÝ+êöqäãÈÇ‘×k_¯}½¶±ÏØgì=tôÐÑC ö/Ø¿`Çël¸¨á¢†‹žÕzVëY-ö =ˆ§w§Çñ¹3¾êñU¯zð#NRƒ˜x„Ìš¾1S ‘YDH`ÛøùùÑ6OÖ¼zóêͫێÞY½³zg5yÔäQ“,â/mÿ]¬95ek¿ ý‚ö ¬×Y£o¾5úš£×º¿îþºûëJ-)µ¤Ô{u+úíøñ-â[8¿Õâ/[jY¨e!Ž €Œô´éÓ¦O›.úiÑO‹~rþºüô(‰½ë€ÅOyžtzÒéI'¾/#&îËÞU «¬:°*mðLÚ%í’vÉÞx±¥Õ–V[Z9Ó?¤ÇèsðÃüÐv=±cÆ4GýÏ{4ïѼGöj¬ØÑbG‹½2ãÊŒ+3R¶þçÏŸ:þ^¬¯üf’»ýUþ¯ò•ß±ÇþûÅõ÷ÎÜ#!#Ï9/ 5€ €€G †;z4êѨG£JO/=½ôÿ¸ DÜ2”Z<Ó ŸA>ƒ|l{†îO»?íþ4¹£†½qgØ/Ã~öKrËÖ¬Q³FÍY¯§Ñg>kô™™Æ2ë«™míž½{öîÙ©ÿ”›þ7ýoú[ßï# eÕ9TçP°raåÂʥ퓹ӯÌê«ê«ê«öî. îÃ7 €=ÀÀÀ#í=°öÀÚö&þh€' ÑCôݶ‹ÊEå¢É]›½gÙV]\uqÕÅÎ÷6âÓm׳ìþ±ûÇš£æ/÷â^{#uy¿ò~åýÒ¶v|lÐãzë=®³GŽÅlŽÙ³Ù+¤_™_ø½ð{áÇÙ)CL ÀKbjÒÞËÞ».¿püÂñÏ,ŸY>³4éÓ¤O“>A5ƒjÕÌ·>ßú|ëEHSÿHý#õˆçðýRá— ¿TÈÈíJø;áï„¿£æD͉šÓý­îou«f‡šjve+0ºÀè£óÆäÉp'àNÀ I’*$µSÛ©íÔqáãÂÇ…+¹•ÜJîgµžÕzV+cê¯û¼îsÛ–01ÿÄüóÓož¬P§B u²ínß¾œÜµ%6Kl–ØÌvm…ý ûöw~ ²íµ:Lí0µÃT3{Æï¿g¼½‘zÒ›“ÞœôfÚ~¢¸rÑÞ'V›VmZµiDA€cî cÛm7¶íç6Ðh 4¾Yì!&à%çOïÿû7î߸>«ú¬ê³*5“§ÆœsjLoFޤI9¢‹E‹.öÞÍ÷n¾w3m'8·ø»Åß¥Õ Ç’;™r­ÿµþ×úO=4õÐÔC"V/z¾èù¢çm¯‰Ì˜ ”½×õKè ±L(9¡ä„’iµ-"|ÍÈýÚú/E蛚òŸõ:ëu6Í&8`ï³~ÛøÛÆß6:¿6q³hï¬ÞY½³Ú®-bmÄÚˆµâ‡©/¹?ì•|y½åõ–×cÄAêѪíÀâúÔä®íï]ïú{—íÚ ö/Ø¿`gFí'·ŸÜ~Òú½Þw½ïzß=±ìIJËÌÔöæ_›mþ5{íá‡Ë?\þárÚ~âí,·³ÜÎbïÅ“€Ç 80àÀ€Vo'ïå °ø9/×\ÀÀ¼äÌéý]þèòG{7]L.qedZ´‹ðÌú:›ô&žK—~uný—Ž'[ €Ó¶„މ`²äº’ëJ®KÛm)n7Šâ:§ŒÙ¯E84\.—S_~1/z‰Ô—|èé¡§‡ž¶ýqErʾÁôžÄü5ׯ¹~ÍeoÍ­žµzÖêÓ”Èø±Û¬­ºrBå„Ê i@ÚÆ·‚õ§Ø{ïóÀçÏ­o-ô›ÒoJ¿)æÛëÅ=쵊ô¸×ËÝcwÝ=fïÅ]gè]weR_qË7€-``’qzoý\·´"®IÍôÁ½˜{1÷bª¬>²úH¯ Ô¬Q³F͉kŽÓ£ÎŸ6}ÚôiÓ¾óûÎï;ß™ò§U í7ONïve}M[zïדOz<éqÚ–_D "IY™?ïM*)[óƒ%–¶–'.O\ž¸”º~2øÉà'Ž×/n•<}îô¹ÓçoÖ¾Yçîž»{î®xnîõÚ×k_¯-†ïÞûî½ïÞO?µwkÍ´šøp¼Îþ½ú÷êßËùïBÀÝ üï—ã÷Ú{WjÊoï]®_B[b:Û™oA´œm¶=Øö@܆TÜ0\Ü\T\—ÖúFë­o8^Pê'³’»G×ñ­ã[Ç÷û<ßçù>ÏÕÑWG_-®­7›µBÒo¿{húÝlVÜÑú§'ÖšWo^½yõäþ°Cô-öÊ,z¦&Scs·ÍÝ6w³®Uñ/"¤¤~<³Uk—´KÚ%ǽãXüÜd|•ñUÆW±·ÇO:ÒéI§'‚ƒƒ­ß5jò¨É£&›u¯?¼÷A±}¥Ç'.¼lð²Áö¾£¶¿¶ýµí¯ô±@f!fLI¾êñU¯zp#hœGL @2Nï…\s]Ìuñ›âßÿ¦¸3'ÛbúÕ™5·(Û¢l‹²Î—Y·Ž×i{SèäÖ‰u8mëƒ5¬ù`Mz×¹?*Tþ(qkÜØ±cù÷È¿GþᢳSöYéQþÌ][Ú®³SïN½;õ¶·žÜÇrË}lõÕÕWW_u~Íδ®ŽÃ;ï8WÜ|Ûöyð3&͘4c?ûH+óÞ˜÷Ƽ7ì}Sâ{ÿ7î߸ã¨+ ³Î3¦$⎠Žfù¾°FL @2Nïź©9ÕOÚsæf¿Î¬-jNÔœ¨9öÖ37ßÜ|só¥¾f~ÿø÷ÿØñÕŸéþUHªT!IÜŒ7ý¾_WX§k–°ûÓîO»?µ·†ö Ú/h¿ ½dÐópÏÃ=§ß~}ðÃü0¹kŽÙ³9fsÚÞÔ]ÜVÔÞ:#ÖF¬X›¶S‡w5°ýÄ6gÚœisÆÞ{甘SbN {¥ý©åO-jÉÈ’VÔWÕWÕW}føÌð™‘Ü0OÜÒÜù'º;ÏlÕâ&Ø©EôûóW?õóWŽ?Ѷ®Š-v´ØQ¢ß´"ö\Çß×—!_†|B™{†è åIÍã„0+``’qz¨Î¡:‡ê¤þ³vÏÞ={÷l{Ÿ’o}¾õùÖ;s?"zDôˆhq] í+ͮˑ”#)GzL8³NQWéýýºÂ:]­„7‚oßv¼q£ÔÔ;âùÓ©ß#’[Ö×ù%wͧÃN‡KÛýBÉ­äVrÛ[ϘžczŽé™Y½Ÿõß;þQˆõSÉYÒï› ªT3¨frã=Úy•ٞ٪ÅÕÀâ™ÇÉmMÛ7mß´ý™"gŠœ)âøSnß¹}çöÛ5,¸tâ҉짩?ârüó>!°I`“À&ô´€«&éíÓyŸÎûtOÀÀÀ8uz/nAœV'Õ/ü^ø½ðsµ {Äm3>NM8—ÜÏr…uºZ ·ŸÜ~rûI{ï­Ù¡f‡šÒ¶•f|›ÕvVÛYmSVÚ§MŸ6}Ú4mË,žãèøæóé±;¾©`aÿÂþ…ýÅ‹¾+|{øöðíö®×gò1cXßO¢e¡–…ZJÙŸiõ3WC«~]gœ}pvñHqì‚ý ö/Ø_Õ|Rê“RŸ”×—;¿Sþœòç”?­kÉú µì›)siÃ¥ —6ˆ+Ôï³âJë?›ÿÙüÏæÔ¹gˆßï-Y±dÅ’öJ"~>·€@L €S§÷“Þœôæ¤73ò?ßúùÖÏ·ºB͈›^f|87í›ißLû&cjÛÖéj%œ˜bþ‰ùí½÷3Ëg–Ï,iÛÒlC…Ô¢3·ÆM¿v•ÜïÎú*C[[Zmiµ¥Uúíé 'üð·õ-­uÞqxÇá‹~ZôÓ¢Ÿlÿ¯÷]ï»Þw÷Ý?vÿX÷íç3WZmÝÐÓCO=]¨S¡N…:%· ;cwÆîŒѲ9FvOhÕ©iÿÉ]Ã?ÿéüOgÛõlœ°qÂÆ I&×Ãé§?œ>sÈÌ!3‡8³‡úÕò«åWëÈ¿Gþ=ò¯«ÅíîÞ»R~WÝ\¿mgdyDk¯$Ãåáòp™Þ˜§Nï·½¶íµm¯¥í'®_¾~ùúåö>ñýÞÿáý2«6ÄÕ[+m­´µRÑóEÏ=Ÿñ°~B?¡ŸÈ˜ï×Öéj%lÖ¨Y£fì½wÇþûwìOÛV'ö2{ŸèøÉ)«”=ý×ùõ'÷»s|ãVK]K]KÝÌí íþDæñ¤Ç“»þT¯çL‘[¯¹Ò¹Jç*KnyÄõèâf¿æßݽUg¤‘+G®¹Òº–ª¬>²úHçkI\ç:ïѼGó5ÑxD㥧—ž^zzÞ˜¼1ycÊŒ*3ªÌ(ñïóÞ˜÷Ƽ7.÷â^óÕ¤8¾*×±\ÇriâŠmñ|k×l“¨”Ÿ8cüØõÇ®?vµW’VÏZ=kõŒÑ ˜§NïÿèòG—?º¤í'Š+“ì}br'U÷¬Ö³ZÏj‰'ŠHé«_õøª‡x¢°x  õí1ÓoŠÇñÚÎe=—õ\ÖŒù~]a®VÂ*;ªì¨²ÃÞ{Óãæ“'gžœyrfÚîŽk@Dé×®’[ÚŠ·*ÞªxËÞzÄÔz÷„¢p~¯O›gV?oÚ)r«ç¸‹ŸygõÎê5¹%OÉuÇñÝÜ­:c\8~áø…ã¶uµgüžñ{Æ;~¯¸·u î<ëgÀ?õhÔ£Qî[‡G;úÛÑß"ÖF¬Xë̶‹ýtÔäQ“GM× Ó» 2º¹fÛÎÈòªs¨Î¡:öJ"nøÏø€@L €S§÷7ýoúßôOÛO¼:úêè«£í}bÙ~eû•í—²xqOqãÊ©‡¦šz¨ÚNm§ºÚãµ¥í•gÀÉ]gÉu%ו\—‘{Db³Äf‰ÍÒvp\©¿ÕmÚî%v–ØYbgÆü$±ËN,;±L\“g¯<âÿþ¶ñ·¿m4G?ï9SäâG=tôPÿ ÿ ÿ ä–6v`ìÀØâé¹îò훵UgŒþ½ú÷êß˺®.j¸¨á"Ç­÷FðàÁÖ™zâ6ÔîRo÷bîÅÜ‹Ûnl»±íœßƪ‹«.®ºx尿›önâç5¨Œn®ß¶3²32>W­eÌ÷ë ëtµæÊ•?*#÷q…“½O´~¦iæÖªóëOî§]`t»? ¹sáÎ…;\§Wüøýßÿø}&Í4öU›VmZµiÉ#2ææä´êÌ"î€b[Wûf훵o–½w‰1"m£_¡ÞÙzgë}ù8òq¤+×›xÄ@PÍ šA5Ù.qûë5§ÖœZsŠ¸Ë¨‘ñ{ë­œ·rÞÊ™Vç˜00NÞ§GÜ%ÖiïóÄå‰ËçÌ ¼zO½§Þs|½¦3DøT»FíµkôYÕgUŸUÑÅ¢‹Eˬ+€3òûu…u‹'O§~ÈÈ6–¶û…÷]ï»Þwí­GÜÆ6cúCñýÖj\«q­ÆŽ{ &Í:viØ¥a—†¹.溘ë¢ã.níëúÛE«N™nºèVÀº–:Lí0µÃTǵ4éÍIoNzÓ^==_ô|ÑóQs¢æDÍ9’íH¶#Ùþû7îß8q£ûÅß-þnñwY²dqÇ+ ç_›mþ5gFqýýÜ|sóÍÍG«Üñ 1ã÷\ÇGËÖ£6ßÀÀ8uzŸ7¼½^ûzíëµí}b±£ÅŽ;êø^ÜäÙù€Vܬk™®eº–YðÇ‚?ü!U”*J™Â Nïur hq³P{Ÿh}{d×ici»_X_·aKÔOÆô‡“ÿ™üÏäœÙº&}šôiÒ'm¯×‡«ŒâÚDw€iÕÉ%¢Ùÿz*í]ï»Þwß"[<[Ý^Ý6kÔ¬Q³FÎÜÆùZÿký¯õoÚ¾iû¦ím×cý%—¨¬I9’r —‡ËÃåÿãɾw½ïzß="zD´™n“ xæbÆï¿Ž–ýjùÕò«E¯€@L €S§÷âˆiû‰§ÆœsjŒ½O ÑCôÝÞ ¼¸’©Ô’RKJ-q<ÉØý­îouëøîã»ïN¿x’Ø|p•UvTÙaï½§ÃN‡KÛïH¬ÓÞ'Z—ÇuÚXÚîÖOn³õgó?›ÿÙ<½{Âøñ-â[xæsþ ªs¨Î¡:}ç÷ßw¾3ß»ëÀ´ê”is¦Í™6g¬k£ß”~SúMq\3Ö׳Ú^õ+žõî|D \$g‘œEþÇ-Oç=š÷hÞ#W¨«ÁO?üÄq[£Ø@ëÌq†˜ñû²8´W’²ýÊö+Û˜§Nï·=Øö`Ûƒ´ýÄ­•¶VÚZÉÞ'6ÑxDãöNà¿ýñÛ¿ýÑqô;0v`ì@× ºœYgF~¿®°NW+¡¸NËÞ{wÆîŒÝ›¶ßÑŽý;öïØïøš.|\¸ó%Ì·>ßú|ëû÷êß«¯£¿ýíèo®?Åì ­:=D¬X±ÖºFM5yÔdg¾q{÷&Iø;áï„¿SVž_*üRá— ¶ë´¾9yÆ×Ò¹»çîž³ûÔvÑ¢Ä5ÊžƸ{ïJùÍ1ºeVÛÎÈòìž½{öîÙöJòÁšÖ|°†˜§NïÅ•yiöa9’r$ålØ$°‰½OŒ.],º˜½Ø»bIÏíK«Â:žâ$6k,®z·÷ÞÚ5jר]#m¿£šjv¨Ù!m¯Âw¯Ø:b±µ~ùúåë—§Gï§äVr+¹í}îŒI3&͘d½-î;áë™Sä/ü^ø½ðSÆmmûkÛ_“ûäøYmgµÕÖ½&ô=§U§-ë{‡âÙä×k_¯}½¶3k× ÛÖÞ½˜{1÷bRVªãþû7ÎvÖŸ•ñu9,rXä0{­eN‰9%æ”ðœ–C€Jù €3ƺ-붬Ûb¯$£‡Ž:z(çõÀÀ$ãô>­Nò¥ŠRE©¢½õ纘ëb®‹Ž?+Tþ¨üQöÖšiV[ŽoUMlÖX<©1cöˆc?ûùØÏ©Ù#2«¥mý|ÝúëÖ_·¶·qÔ´Ý/nß¹}çöë'ÆY«Ñ·Fß}m·âî±»Çî³WN¹æ´¯çL‘‹¸nÞóÞ˜÷FPÍ šA5/I­Ö@³îùÝk4÷´Vfr$åHÊQ«q­Æµ;˳÷,ó_sýšë×\)+š¸zØvÖWgdU]ÚpiÃ¥ öZKÝçuŸ×}îiWà R~àŒ±ðàƒ Ú+ÉòzËë-¯Çy=00É8½oY¨e¡–…Ró)âJ,ÇW:v˜Úaj‡©Ž'²d Èbo âæœ©¯“:ÿÓùŸÎå:–ëX®#pz¯Ó5Kèx zwêÝ©wê¿Ç·>þ°Ú‡Õ>¬æ °xʯ½õ Î>8ûàìi»_ôYÕgUŸUöBwÇã›¶zÖêY«gîØÏ»ïy|‹øñ-úÎï;¿ï|ç?WÜ ¹÷¶ÞÛzo;p8àp€»OÙ{Z«N+¶?ö*v´ØÑbG“Û¬Ÿ×nmñw‹¿[ü]ÊÊ&žl»Nëç gd]E͉š5Ç^;ù©åO-jÉQ4*å'NâhÐ^IÄ‘çõÀÀ$ãô>õ§úâ9¦Ž×,nÀèx=¶×èX·ëLMmܾ|#X\–~uâ:°æ3·ü®YBÇ·QMý÷µêõU¯¯zÝñšÕ{ê=õ^z|ïÓo8¿¶'žtzÒÉÞzÄ^ŸV{Äö“ÛOn?iï³&=žôxÒcgÊÏs3ËÃé§?œ¾öÀÚkÔñ­ã[Ç×ù¾ºÄÎ;KìOò¾ÖÿZÿkýÍñMѪSæY­gµžÕªt®Ò¹J笷qéÄ¥—NLîÚæ_›mþ5Û?\»:úêè«£_›¸…umM3|føÌ ÿÀ00É8½rË},÷1çO°Ÿ6}ÚôiÓ %'”œPÒñ𭧝sbþ‰ù'æw|EWʦ~ìúc×»Ú»y¦Y`q­sæ–ß•Kèx=){ £3Ñoûí´_à:Wi§¬ßH«u¦æVØÖD[*z¾èù¢çm?%DÑCtç?EÄ3öîIàW˯–_-¦#ÓÊ™"gŠœ)ẩþÇmiß­ûnÝw7|¹áË _šï¡U§Æª‡«®zh½ÁÁÁ)ÛÆ+3®Ì¸2Ã:аÖxDãG8‹oÁ^Ô*„!nÅœ¡••#)GR{{™uÛãWF¾è!Ì:C̘’Ü_wÝýu©?‹ÀsŒÓ{{v}½ëë]_‹ ÍG£z4ê¬×Y¯³^"â²~â =b*ó¯ò•ÿ«¼3¥ý£Ë]þèbEÛò¾ë}×ûîËk(_U_U_=w÷ÜÝswÅU†7ýoúßô7‹7f´~j½:Þ N8­ªëÀ#¢GDˆ¾åv–ÛYG>Ž|éÌ´rFÀ™[ÂËQ—£.Gùùù9³GˆëðD E{ÿ½íÁ¶Û´(Û¢l‹²Ž×²kÅ2¾¥Ç´àÌ!3‡Ì’~%ï8¼ãðŽÃíõp`@r×i+Ú·øf”I 1Ê$÷‡JÝŸvÚýéþ±ûÇîkîIaZuʈ#ÛŸ|mœ°qÂÆ é×7Š~ÉŠ%+–¬7å¾s/æ^ŒxÖ¯¸òØ^œ/LùsÊŸSþÌøV-Ž£¸Ñ.ÀbÆï}{7íÝ´w“½2|ñÑ}ñßÖ€ €pêô^Ü*3=&ìÄ4ýŽý;öïØŸ¶×e¦^Áþûì¿íµm¯m{-¹ïýáò—¸œšògüôMrK’‘°ë”°P§B uJ¿V'® Ú7k߬}³RßÜ1>±ìIJËÒ£äßþøíßþho£‡Ž:zhú]oMD‘›»mî¶¹ÛÿªÝ ¸pgò?“ÿ™üøÉ…'Ô9­:5ÄÏ¿¬·¥úÈê#«Lýv‰{Ÿ¤ÇaýŒáŒ¯1ç‹@ xÂbFî}ön°/œœyræÉ™|_X#&À©Ó{ç§œ'ž'‚Ò”M<|ø<0=¦C¿ ý6ôÛß6þ¶ñ·â_¶´ÚÒjK+÷ €Ç… îÊñªë—ÐzöžÈ˜¥–”ZRjÉ‘lG²É–1mz¯?=b§®eº–éZ&¹k»püÂñ Çí­³BŽ 9*äH}ˆO?±ý”Âþ…ý ûT¤Œ½¸f‡šjvXsjÍ©5§<- ¢U§Æ¿qÿÆýgÛ“ï¿güžñiõ)·rÞÊy+§ud›úèW¬ÓÕöD`À3Ï3rïG€©Ìžƒ˜§NïmÿÒzr9¹Úœis¦Íë ¦ªèVO¤sþ&½¶ÄDðòzËë-¯÷?Jåð¹w®?œþpúÃ鮯º~ ­Ý¾sûÎí;âê:ëgN'—x~ð¤7'½9éMHdÖ~ëOͧXßàÔZÉu%ו\—Œ5çHÊ‘”ÃÞs4½³zgõΪŸÐOè'2¦Î;Lí0µÃTFœä±“xt—†]vihì3öûÛ²½fšðä3Ä Úûž…M=4õÐÔC|SØ"&À©Ó{Û¿O6Ïeì½­÷¶ÞÛÄÅSëD¬Ø$°I`“ˆµk#ÖŠ“së›»¦÷Vô¸ÞãzëoU¼Uñ–¸JIuâ:˰raåÂÊ}Rê“RŸ”Š;0v 3¥Ï YÇ·Žo_ñ$¿"9‹ä,’3|{øöðí"D ˆ85æÔ˜Sc\í[ßš(£Ï}Öè3ñìÃ|ëó­Ï·ÞúûêþV÷·º¿•ñ“ª®_BÇ­N\ ®J,n7Š¢Õ•ØYbg‰âßEÉÅ3&Ý}ÚÚ™>ekÏQVê'Ó¯œ®ó‰æ&žþâù‹ç/R{´êÔ¸éÓÿ¦¿m"n¼Ÿ1ßš¸‘©¸¢·ôôÒÓKOGMâøDŒ}óÞ˜÷Ƽ7ÄèióÜq$J+Ö?ù²}νøI1ß¶€ €ø¯ø´ Z\íÊŒô+»_ƒâúåwßæ*¥ô«ÃUVX•úš¾Åñ¿0R€+?صí'ßÿáýÞÿ>{€ €x‰ëp51›c6Çl¶í‘ÄÍÞÅùÔ€ù<Ž|ù8Òúyóé÷Ôv̇˜€—€¸š~/ü^øÑ;xš.ÿpù‡Ë¶Ç~5úÖè[£/Ç8FL ÀKD,\Ó¶Ûl{`Û/uþ ó? ~ÌGéÙîØ¿cÿŽýÔŽð0•#)GRÛ~)oLÞ˜¼1ôQfr+ç­œ·rÚûÕ®Q»Fíûà ``^"àÊÔWÕWÕWé£ÌmÚ7Ó¾™öíñžzO½§Þ£~p00/pǞʷ©oSߦ7‚oߦ~Ü×Mÿ›þ7ýÅÑõñ^/¥—ÒKáÌçð0×wuôÕÑWGûÕò«åW‹ž ÀL&”œPrBIë£;ÿ ÿ ÿ ký¯õ¿ÖŸúÀyÀÀ¼D À}û+Ÿ>3|f09àŽÄQ\ÑFm}Œ·iЦA›qN @rð0sôZÔ €{¹räÊ‘+­èú÷êß«/ŽîH``^šôØÑ‹úàj¿îþ:q<_»FíµkÔ?RÿHý#L¸‹;î\¸sÁúˆ®ÕÛ­Þnõ6Gt¤00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&Aü’±×é×Ï™ôÚ—I¯ý™ô:I¯ƒþŠÏ¤×¡Lzý’I¯Ã™ôú5“^G2é•I¯£™ô:–I¯ãþú-“^'2éu2“^§2éõ{&½þȤן™ô:I¯¿2éu&“^g3éu.Ã_ç3éu!“^3éõw&½.eÒër&½®dÒëj&½®eÒëŸLz%fÒëz&½ndøëf&½neÒëv&½îdÒën&½þͤ׽LzÝϤ׃Lz=̤ףLz=ΤדLz=Íð׳Lz=Ϥ׋Lz%eÎ+.K&½²fÒ+[&½^I¯0˜0˜„i`/€ç0mœØ2±ebK#.Ý^{3éÅ3‰y1O#vý§{Îsˆ=ç Äžóìáã™ôòœg{ÎS‡=çyÞó¤až1l¾§ gÖ3†=çéÂöHù&C'ÌÍZñÔ˜ÙËzUÚ6>dy‚øoñïâoÄß‹÷2î€ù Ã5#ÙΜ 8~8üpøaçOšE–œé·#ú•&ç+«WŽvïW÷HRRddDDZ-Å:ÅúÅg%ã—­‡Ã‡ÛÅ÷ æw m ÙZ§QðÈAg­«µàÁžóaa«WÇǧÕR¬S¬_|ã˜?ÀÓÃ5Ã)/‚^½ŠŠŽŠŽŠvæ” pBÞ›¹Wní×dcåI{"[D„¦íéŠSË=‘-"BEDyœ)¹ØF±½|ïà.ãNnŸ+}{wôù¬À° «GÆ/L۸שe…Õ#ãŠ2ˆò0îpËü æF ×DŒÿCb‡Ä‰†‡ þÜŒ(Ö„Ï¡øÖïÇ×è–´5²iDH&œ´Ø[nl"Ê&Êéx[ÄöŠm§ €kŽ;ù'—ú,¸UHÁÉ[Ö, ^=8~V&„¾ö–Á«ÇÏeådÜà8–ù̇®‰v%üžð{ÂïÎüêS)Ùº~Õ•.tºâÄR”Ù™­õ@{×w*c/ËáBq¯KQfÆæO˜?ÀL€áš€ñ?H+¤Ò LJõ:V/Zúéãœ}Ž7ˆq¯Së¥(¿ØÇÛ+ê„¶™5î”hÒæqŸNµ®®ðsW÷Š~­—¢üb[w˜?aþwG ×DŒÿ“-&[L6LJòFý6ñÕ¾tß“{K±]Ž·]Ôí2rÜ©4gÜþåîúÚ[ŠíbÜ`þ„ùÜ0\0^rü«UŸv¹‹{ß¼T¨[ﺕÍwêb½Û(¶—_³@f;ÞòæÉ7½º÷üV»TóE¿ÖK±b{w˜?aþ÷B ×DŒÿãY5¡cý»úÈw7÷Z¿¾¹O]¬—b{ŶólÈÈq'ÿˆRÝ‚ ×ܺl–ö¡¹£_ë¥Ø^±íŒ;ÌŸ0€» †k"öh‰;$vp|êòàóÞõœSë¥Øvǧ1¢iKúqGÄŸµ>þú|\ω~ÿë Á}>®‡ã˜q€ùæOpÀpMÀêEЋ AaÃÆ‡ ·wÃ"OûÕªã_³Ú»©‘¨CQŸ´+HÙ¸#n€ìiWý:¾ØÞM¡w˜?aþ×A ×Dì¡¢¢£¢£¢íý*ÓžU“²gÛØ«1QŸ´+HÙ¸ã ÏúMÙ³w˜?aþWFœVvEïŠÞõò¸kÚÆi§m¼ÕèV£[¨™”!ö8çΜ °w nÔo_íKNWì-EýØ«=Q·´1p~Ü©4gÜþåĽö–¢~w˜?aþ×DœzÏÛ÷KÕ£gøU¤1c¨á§|žMFIFI†µØwt¹}݃å¢ÜÆŒ¡†öç'ÎO ÀG†0øP €cnoÛ½m÷¶M^ô=j:½ÝaUÝUs‡•öõKH£Æ«æ+íê™\çPë°ïtÈ>vUά¢^«O¯ž*ÄmÔØkõéÕSC=í;ÎOœŸ@ËyÂàT€cniíÒÚ¥µÉ }ýœ  [éצC=“ëêoöü©Wßµ0W|ÛTc¨§}Àù‰óhYà–% ®8¾Þ©{§îœ9 r$/î÷½t^ñ¸(ÿJ°øg§|5ÿóa¶¿=sÚÓ'ˆòlC=“ëêî KHç}çÄÊå÷=sI¢Ó“ªWf>»·¿i¿öÜ¡…gŸ2«Óm=÷ë×nO§g;%ûä¾¾ûŸŠvO¼jèÚ[²W¬fêißH‡ó“¿Ÿ4§MÉ•~Ùî«™Ê<,oVÌøËØo:?€æ Žap"plÕ–Õ–Õ–%/å‰sû}³Ûc‘~NèÑs)Í<éôãt9:qæÑk¨mrÍÃ}aMé¹ït]_°~Ìø(„¦…ó¾Ùéǽ³>ßkoÿi©·€Ç]X|ͤIE™«©>&j1p¨­} Þç'»Š.Ì.šÙÑ €Ÿ?àh €ckËä-“·LN^¾•GMøý°­QŽ~ï|âÄoœð•ä™G?µMžy¸/¬I =÷ü®~}áš– JOþý÷nyqÒ±;ó_Qóñ´¾Óî¹ö%=1>cJaÞ’¯ä,ÈÞæÎ;8fðÍ7Œ)ÿõqù§þîÜ¥™E™f¾”x-‘{#è®~}áû@¼ÏO6ßrÖó…ÝçVþâ)Ýó~Yqß©wå¯OeüëÆË†oq~ÍA}é €c«lmÙÚ²µÉKöŽ3f…vÿ¿¯˜ù™SrtõéyCÿúþÑ9ʇîéöß®ï¶èÀ¡¶É3÷…5 ¤ç¾3*󉛞hÙ tÐ¥×½rÿ'žZ”7ûÊ{æŸþkr¸þ¦ïÊ/¼üÇáÏY—÷ù€_E-µµïÄûü$ĽaV§v•5ºµœ“8? €[—ô ƒÀ±Õ{QïE½%/Ó¿?>gpÉ‚(´ûþºtËÑ©ÿý_`Bm“gî kHÏ}ç䫾ÿÂè– JûþiW¬ óéøl÷ÿê]Ê[:\}ÿ¾ŸìÿßÿþÿWG'µµïÄûüäš¶Ã~Þ÷é0«I¿ëÿnþ­=v~@œ€[¯x‡Áà:ð⼘¼( ¿Ð}xöšè´û¿z|ê'Ýöíóxî‡Éck €Ãêœ<ÿp¿XŸ@úì;gß5¯* AiσãOy¯ãÜnÛzþ¬ûŒ“L•J”;êñò ·ÌJ¾®¨½8ÔÙ¾×ó“3&÷ëÝíú0·›fx¨Vë~Ÿ?àxˆ_,Žã2-ÞW¼¯8y!^×£`q¿‘­å×€Ö‡:'Ï?Ü/Ö'>ûN¯}gÜwá Q‹KSO˜tÉ«7½œøºáhÀ¡Îö€¸žŸ$Îmù5Å#u OûQ¯ñ]»çœÑñ»í•ŸÛµ4ëw\6ð©ã~û½Ï•üxpEÝÑs)Ít~ÍMÃ.1a°8†voؽa÷†äÅ·ü¹â)ƒòÀÍ=†:'Ï?Ü/Ö'>ûÎ ÌZqóËÑzG\¸ðGj ~ù÷Ö|cp÷ë»,šÑ+÷ô~SI¼–½|ÿí×D3u¶ïÄïüä/Û/ýmñ‰sËúaû;ÛÝ›Êäø;ûfåÔ¼þìô7Ǽáüš8ÞZo,Ž¡š95sjæ$/¸ gM¼¹`³¸¹ÇPçäù‡ûÅúÒgß4áº[ïψ~ÜiW¯óŽ_•<ÿvß踺Ó_ó>ÿåÙwý6Êóu¶ïÄïüäå6“ï9ñªäÎ-2µÏ©?>eÂèa„¯ù·7'žW°úÊÒ¡³û¼Ù.#óŠÌOœ«DóÕÀÎOˆpúh]aðg¢ó¿ÍíéÅç^9BÜìc¨³õ0ä×7}kù¥­7þĵüù¦——ÿ,šóu¶Þâw~²å+g÷*ñ÷ä»VMyþµ‘è°éÚÁ?º¡fñ✡…gŸ2+ñІ ½õß}=j3u¶ÞÒáü$õ’Ä+ºð´ÜëzŽw~ÐR>\ÿáú× €i^ì¬GRkyp}c¸ŠnãG=Q²#ñº¼ÀùIôÇG:žqÚ°ƒáŠ×å|±óíÎOZJ½8¼º[sÜV·_Ý~uûäåå3€[ö3l¬L77·tÛwZËg§GwrÜÇOb‹þg[™nnnnnnnnép~’Êçgý°ýíîÚéŠó7777·xÜ’÷²ŠÏU|®âs*¿Ûã7=~Óã7Ím3·ÍÜ6©G¿áëÓè3€i>»7ìÞ°{Cò"[þ\ñ”AyàæC?mþéµïœðÀ¬7¿Ü²áèèUK ŸüÄ¡ÞÀ¿^¾ÿökRÿ ãï8ñûg†ïm_•ý½®]£‡:Ûwâw~òÌ“NY´õ¯çîù{Þ»èµ1§¦þ½=æ? ?:\Qî„.åY×FítÅù ñPß“™T&Bp{÷Cw?t÷C©‡¾áë|è›HÇåX¼¯x_qò‚»®GÁâ~#ÀÍ=†:û°ïôÚwÆ}¾µWñöÌ*Ùò¥q©ïÀº¬û-ÿ¾·ëÚ‚åcò£‡:Ûwâw~ròèãþÐe\˜Õø;ûfåÔ¤þ½×ÖÜÞ/7|ï¥OZÞ{hÔNWœŸàv‰­6ôM$Ž¡/xñÀ‹É‹¯ð ݇g¯7÷êìÀ¾ÓyÆñ]óª¢g~§ÝsíK†ÝÛ_¾7­áïuÁ¢ÿ©ã?å¬:îÔð­ýúiãÜßG-u¶ïÄïü¤¾ãņ¿këgÏ]:¢¦Ý{™Û2o _¿­jÒßG®s~ÍAñ} €c«÷¢Þ‹z/J^Ž|Îà’àæCm“gî kHÏ}ç䫾ÿÂè–H kîµ~E»=žíü•O<>ÿü¬Ó/>{PyÙ¥ßÞêyp÷ë»,šÑïüóO»beâ>‡Oÿ o(è7ÔÖ¾×ó“wÿpiÿâ¬ã—f¿Òif˜UˆugoðÄÞ«~²åÌ™ÃÇUŸõ¥GO_?tÂâa\Y:tvŸ7£ßËô—Þs£v®âü€8·^ñ } €c«lmÙÚ²µÉKóŽ3f"nŽ1Ô6yæá¾°&ôÜwFe>0qÓÑypûåÙGw™‘zKwl÷Üïì.ÌžÿîÃGíµ¿¡¶ö€xŸŸ„ùäØåÏYkSïc/ùÏü7z=ûÁ³¿3®Üù 4pëïÐ7‘8¶¶LÞ2yËääeZyÔ„ßÛ*nŽ1Ô6yæá¾°&ôÜwòo¸úõ…k¢š~üfÎçŸÚ+³ŸøÕa³;Lêr~·sÚý[§aYvþMÿƒ6wÿYÑ™glÈ›}å=óÏ+Ê\}Lõ1Q‹~ÃjkßH‡ó“0«e·ú»ü×'ÌîûB·¢Þ¯t¾²ãüŽÛÛ½Üî¸þóÍíT1ãØ¼Ûz¾õäsŒÈOü.ç'Ð|ÀÑ—>¡o"plÕ–Õ–Õ–%/Ù‰sû}³Ûc­åót£üëJòj›\óp_X“@zî;]׬3>jÑiâ þš¨Í¯CŸvo¿÷ð¥×ûÕ%Ô!Ô$¹V¡†¡žÖÀáí;íÖvê˜5ÿÄõË>s‘è7Ô!ÔľàüÄù D™˜h§µÚ)µSj§Ô÷¬Ì›»OÏ~êow]ö‡q½ÒóW—pí¡õU)ÔÐZhü¾Óùúãgä÷8éËßùýö™éý†ku°ï8?q~Ñ'&šÀÔÕ¼VóZÍk ÿ“nÏf ×Ûð¯.¡nÖ@Óî;!þL·W‡ëm8úµï8?q~Q#&šÀ|ìÉ•O®|re}ÍzxŸtøl›põ½aQjeÍ4ß¾Þ9>8\c}oølßp~âü¢LL4 €ù„m6¶ÙØ&³AÛŠ'U¼7~¿º„ëjøÚC}¬€#¹ï ½ïkϯ(_ô®Ë¾àüÄù ´^`¢I̧høÙ¬Á­SGõê`ÿ1³5ncëý¥%Ì?\KÃ×ëY«-»ïô0iÿì Nú¯•W>7½Êï­¼ò¹éáZì;ÎOœŸ@k'&šÀÔ«á϶Iôt¿s‹G¬j]¿º„9§ru>« jûÎm7¾üèÖý†9ÛwœŸ8?€8M`þµSj§ÔN)šW4¯h^Ã~á–î×g¿T}î—ªGϨ[?÷ŒÒ‚ýÒ²~î¥anaž _K¸ÞpíÖ@4÷ηgþ9]n_÷`yQþêkªF(ôÍ_}MõÂ0·0Oû€>Öù Ęh“’ƒyóæUTVTVT¦ò¬Ï5Þî°jýœ  [Y·yîY¥…-ðKËæ¹g•†9„ù¤2ópázÝï­eßé}쪜YùS¯¾kanÑàÕ7T—·@è;xõ Õåaa>ö}¬óˆ70Ñ$æíé¹§çžž%;Jv”ìÈLÙĹý¾Ùí±Ê£&ü~ØÖ½¯\V ‡GL4 €i{Ûîm»·íÒÚ¥µKksä,ÈYpä] ÿn˜C˜ûÀ¾cß@«€¦"&šÀ!µeµeµe[&o™¼erÙÚ²µek{/꽨÷¢Æÿ¢~Nø™áç‡KÍì;öô±úX€t#&¢ªæWͯš¿mÿ¶ýÛö‡?« öÐÇÐ00@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB ` «š_5¿jþ¶ýÛöoÛþ¬& ·ìÅéL DHmYmYmÙ–É[&o™\¶¶lmÙÚÞ‹z/ê½(³ÑÂÏ ?3üüðo©9èíÀ^l/ˆ0Ðbö¶ÝÛvoÛ¥µKk—Öæ,ÈY³ óˆ ÿn˜C˜ûôö`/¶C*’ÿ_Ø~Ôö£¶¥2´,0p¤äÔåÔåT-©ZRµ¤$£$£$#3’ÂÜÂ<ÜÝu ·{±½’ €‰&0МöÕí«Û·}ÙöeÛ—õÙÕgWŸ]‡×,~!¯*{Íu=.|¡ßÈåÏÝüò ¼ gÝŸQ°ùéÅË/±yÛû+jFn ¾&|}øÞÃûwÜÃüõ¸KÐÛ7¦·ï•?葬.E¯ÎÜØcí¹[ïøiß÷/*«8~À®YÏ?X0ðƒËv¯ùMîÃáÏáïÃׄ¯ß«·À^ìœ ¢CL4 €f±§çžž{z–ì(ÙQ²#õFpâÜ1ã»=VyÔÂ5öî}eóïǾ\WW]]ZÚTcø™áç‡ëž±¸£dGÉŽp]î_ôö Ë}íÔ³}hÚåååònøpÛ¦¡Óï¸cçΦÃÏ ??ü[z{ìÅÎÙàÈM` ÉÌ;˜w0¯¢²¢²¢2•V¯GMά«ÖÏY˜;leÝæêòÒ¦mCS7W——†9„ù¤2ópázÝïèí;/î–ßþiÝÊÛèxÇÅ;WlÚ¸7¥ñâ+ †9„ùèíHŸ½Ø9´0Ñ$š@í”Ú)µSŠæÍ+š÷¼ÉÌ–üs²_ª>÷ÁòÑ3êÖW/,-hf´¾q}õÂÒ‚0·0φ¯%\o¸vk€tëí{Ý>xlVáÜ™ë>Ì{õŽi;Ë ´@è[ß8mgyá€0·0O½=ñÛ‹³A€‰&0Ð(5¯Õ¼VóZ*Ïæ{ºßò£G¬ŠPšÂæœÊÕ…:X¤Co?«|õ¯¾¡¸7…1ÌYo@<öbçl`¢I ¦'W>¹òÉ• ·k·N}Aÿûynú¸­«%MÃüõ4|½¡&ÖñëíÇ­ûò{.¿mØ+™ÃsZWô›8†ù‡kÑÛкöbçlM`¢I ²m6¶Ùئám[ñŠÒ‘÷¶Þf´¾1\WÃ×êcÞþ²{Ö”äÞ×zCßúÆp]z{¢¿;g³Nˆ20Ñ$AÃÏFÌ>/k~»·ßèºiëØañkIÇpáz=K€øõö3²Þkwñõ•Ï” Ù¿è7q ×®Wo@töbçlöbZ 0Ñ$RÒðgÞœß#û©÷~æ¢ââx·¤‰c¸Þpí>³€xôö½f þç¬Ü¯õ{é©‚ÎñŽ~Çp½áÚõö´ì^ìœÍ^Lë"&šÀÀÿ¡vJí”Ú) ·¤»kûÌq½Ò§%Mõ7Üž†ZKD¹·ñç-ýâ/?IŸè7q ×Þp ¬· ùöbçlÎÙhÀD“¨×Á¼ƒyóŠæÍ+šWßѤ۳~–b}oVjêi]µÞ>¼rº½ê·áW×÷¦Ðz{šc/vÎæœÖKL4 €zUTVTVTÖ÷l»tø ’ÃûÌ’ú*êi]µÞ>>ë÷ð>XoÀ‘Ù‹³9g£õ7•M•›*7}ü8y÷Cw?t÷CûÆï¿o¼Ê0ð)öôÜÓsOÏú¬mÅ+JGÞ« ­o õ©¯z¡¶ÖQèí/»gMIî}âÞúÆP½=Í·;gsÎFk'n¼&}4é£IõýŸ. ><`à“Þª{«î­’%;Jv$?ÔÞ:uöýh=SC­’kjêl¹ÐR½ý¸u_þcÏå"ÞTÆP+½=M»;gsÎF<€/ñµ¿ §N |ÂöeÛ—m_VßÃëÿì}ö†q×i:SC­ê«d¨³õ@Kõö·þ°¦KÁŸ…»©Œ¡Vz{šv/vÎæœx7^tC¸›™2apÃÀÀÿʩ˩Ë鳫Ϯ>»’LŸî·üè«´›‡:†º%×3Ô9ÔÜÒàHöö³ÊWÿzà›bÝCCÝôö4~/vÎæœ87-apS«ZRµ¤jIòCgá–üs²_ª{¢º¢t„FóÇ'ª+JG„&×6ÔÜÚàÈôö½n<6«ðŽKv®*(Ð=äñ’« †êí8¼½Ø9›s6âGÜ|„Á!>V’Q’Q’‘üpY}îƒå£gh13†~Êç”d”d”dX{™Þ~îÌuæ½*ÊmÌj¨·àðöbçlÎÙˆð‘! >T` noÛ½m÷¶M~pìQ“3«Ãªº«ª§–öÕ\6j¼ªzjißPÏä:‡ú[‡4_oßyq·üöÜqòÎé…=„¸OÞ9½°G¨§Þ€Ô÷bçlÎÙˆ+ð‘' N…¨[Z»´vimòâú9 s‡­ÔV6Õê™\çPë€æëí§u+o? £ø¶©ÆPO½=©ïÅÎÙœ³Wà–% ®ÒÛ;uïÔ½“³ gA΂äÁ÷}æ’âqÑiìžyã;#‹fï‹Õ½W êÖZçŽÙ ²m÷aÿù½ :Uœ9jÌŸºýá[Å×å÷?óŸ8î¨5¦¡žÉuõ÷…% @sôö_ðÒ¿dG?X½mú+Ó†Ÿpüì‘?ï¼3ÌüÚŒ-§¾8jó õÔÛú^µs¶÷~ùÌ׊'~ûƒyoå >åíºžwÜ19‹;¬ã¸gFMèúÁ½×~˜{þß–n¿j\?çlPptƒ €!­Õ–Õ–Õ–%?äMœ;f|·Ç"ÑÒ]}Liæµµ®î—›yˆ~>øŸ]µö4Ô6y¶á¾°&hÚÞ>÷µSÏ>ö¡ÖòÊÚ¢'gÞÓãSÞÎ1š³ µÕÛÐð^¡s¶ðºg=øÀèé'Ìé³>볩Ÿ³½þìÆcÞpÎÉÀÑ$ CZÛ2yËä-““æ*Z¸fØÖ(´q÷g••ånKœ[Þ‰ýþµö_g~íôAçìèùƒçNl^|Ï%W?;ð±n'u™Ñáó‰_ÿλ[?{êîè4¦¡¶É5÷…5 @ÓööÓ.//ýèwêºo«ÿòúb"úFЗ——ÈÓÛÐð^s¶ÿôè}EsÂk|Ã܆Õä~>»Ï‚¯_5q`éS½–:âÒ­Ÿ]þ³5w­¿2ë„ï÷èÞug‡¯&^ËG¹/,-ù¾s6H$޾ô ƒÀÖÊÖ–­-[›üÐöFÇMOŒÒ² Ü7>»w\yÏw»ÿsÇ.aVÃËûFö!Ð “ü]áï¿«¾¯l©1Ô6¹æá¾°&hÚÞþúuÏ\5äí(G¿Wn:~PU§ÏdW¶ÛغàP[½= ïÅQ8g ãùžvÚqm¬Θ\tm·ëÃǨ%Ÿ¡%þMçŠNm·Í9ÔGܺ¤O,†´Ö{QïE½%?œýýñF—,hÙnËW/.³$:i¨mrÍÃ}aMд½ý×ßý®Ãf€zK×\Ñ볃fgýÓÇÝ{ù—ÚóÖ‡Úêíhx/ŽÂ9Ûk_^¿âäûÃ|Úed¾”Yº«è‘𢡩Ÿ³…h{ìùo~´s6H$n½â €!MxñÀ‹^L~ð*üB^Uöš(4p+N½åß=yxoæüÒ˜ïŸ9zIø®®d¿Ù~eÔžŸêœ\ÿp¿XŸ4¾·ï•?葬.Q~íóFuëf;ðÚ1¿9vð×7ýjãð•­%c¨³ÞÀ^ås¶…_¼æöÿf5éwã¾Ô£ÔÎÊœ³Ñz €ã!~a°Òõá¬x_ñ¾âä¬ëz\øB¿‘QhÝÂ3 ¯¸ôü'ûüË5m§õïûtêi⫇Ãg™D­© uN®¸_¬OßÛ½:scµÑ MÏ­¸ãº¾ÿæÙeV¯Nnÿê„í§ ý—ÖõÐa uÖÛØ‹£|Î6åã·wu˜Õ¿ÎüÚéƒÎIü¯ûç>÷ƒq/¼þìÆcÞøÛÒíWë׺`çl´,p Õc €!MíÞ°{Ãî ÉRËŸ»ùåAyÑlæRqÏÛZ²£Çǯ.ûùôcû-Zêœ\ÿp¿XŸ4¾·?wë?íû~ÔâÒ¹¯û ï?ÚŸÕá@æ/ÚÍmEæ7.{aÍc¹ßO z[Wꬷ°GùœmȾèüx˜ÕO¶|ûÍáãvôüÁs'¶ùâ/JÚ÷˜Þq{‡§Ú÷ñD¿×î›™·„¯¿¾rÆ¢ã?÷Îgž>íÔE9vÎFËÇ[ë ƒÀ¦jæÔÌ©™“üÀ´á¬û3 6·Æ7{ù(÷…¥%ß¿ù¼YõŸøñ+ ®ÈÐþò?nÚtíØœ¨Í6Ô9¹þá~±>h|oQYÅñvE'(ý—ÏÿuØônû=ßñò0Ã3»Ü´¢ÏÜ䈷uÀ¡Îz{{q”ÏÙŽ;&gq‡õaV7ÍšuJÿ¬ö¯·/É|,õ0ãÙ}·ß¨ìhž :g£e €ÓGë ƒ?ÿ%€(xzñòKG´²8|âoñË#ïëúL¸Š¬vÑîÞ­Ÿ]þ³5ÑüD“Pgë €æ3ëù ~…ˆôö¯–ÿïA>íÑ.„¹ ]5qV×%w³óèÂO w[Wêl½,:çl‰¯ñMôí潕7ø?zøá“6¾¿fÛ†â}{26lóO?\q×o‡v8µïY£ÃWž0§Ïú¬Ï¾óîÖÏžºÛ9À¡ÚT¹©rS¥h1ÛÞ_Q3rcôCßßžùH§“\4râU=oKœÿˆ%ùÏ>øóÁ?øüèêð7Ñœ¨³õ@ó¹l÷šßä>…ˆôô̲û{<«î{ÔvúÌÍçUŸ5ìã'k¶ö8ÔÙz YtÎÙº^ýfû•aVáÕÀ{Þ{ìëcN ÓðDZõýÉquÿšx]ÎÙÕ‡ë?\ÿáz0Ðb¢ü à/¨ºx\Ýüû¿rÿÀÌN;ÞÜnrbÛúí˜7(÷ÃýsŸûÁ¸¢ÙŒzf"GR^<çÏëå=’ù·v«3/êPÐé[ír®l÷èºüŸ…Ö÷]É×âÀ´FÑ9gV“ûùì>aVK~|ã¿æ Nå{¯èôëOú Û?:g8Tiô àðènnn-u[Ý~uûÕ퓆¢ùÀ»Š©):ü±¼od?æÙá—Údþé¶Î³÷ èÞ|&õ¶5ÊŸMbeº¹¹¹¹¹¹¹¹5Uo…Ïž¼ûÞ+ú¦iNnôì+CŸþg[™nnnnöâ蜳M?&¿Ûº0«/Zý«ÑýSÿÞçoþÞ´Q?y«{^×®ÆFíÎ9›[ËÞ’×^Åç*>Wñ9•‰ßíñ›¿éñ›æ¶™Ûfn›Ô _ŸFŸ ´¬Ývoؽ!ùÁhùs7¿<(/: \x;šð)#a†áÏU W­uWâó[×ç‡:'×ßÊ ©zûs·ÞñÓ¾ïÇ/ŽÚk‚Cõööâ(Ÿ³]úô¤I½‡†Y=þ­ò®Ã÷¦þ½OŒ]úBáÇïu1tÏÀ3;¿µ³8çl´¬úž| 2ñ‚Û»ºû¡»Jý·•ðõG>ôM$†t}Ø*ÞW¼¯8ù麾Ðodt¸“Núp—£ÃÜÆ=3jB×ÞîþäŽSOj¡oâê¬1 ùzû¢Wgnì±¶eÃѯziwA÷k3¶œ>øâÔÇÄ«˜ùôw8pBòNꬷ°Gùœí»}n=ø„0««ŽŸúHßI©ï·Ï|þø…ï½øÀÙ÷šµs9çl´,p Õ[mè›H iêÀ‹^<ðbòƒTáòª²×D¡u{ª×²SG\fÕ.#ó¥ÌÒß÷oŠVµöè7Œ¡ÎSš¯·ï•?葬.QþôÜT>8„¾Qžm¨³ÞÀ^ås¶ð‚Š®d¿Ù~e˜ÛO¹§dØ©¼ö·ýëíK2 ßõHÇoÝ<ì s6H$އx„¾‰ÀÖz/꽨÷¢ä‡­¿?þÂè’-Ûº]öèî=7̧ç»Ýÿ¹ãÇG*÷ÝÔ!ý¡ŽÑiICm“kî k€¦íí¿þîtþ¨¸9ÆP[½= ïÅQ8gKüµDžvƆžãºuþyCoáÊÕÙ£Þ]?ta›aÌþÞ«{¯ /ÉHüʨE¿ÎÙˆpë¿Ð7‘ÒZÙÚ²µeŸòfeotÜôÄØ!-ÛÀý¨pJ×îMõ aÑiLCm“gî k€¦íí¯_÷ÌUCÞ7Çj«· á½8 çlGWSšy͇ÓþØ÷o©ŸªMpæÀž÷óÔÂS¯‹Zìœ(·.ñ} €!­m™¼eò–ÉÉg•G-\3lkË6pÇ“³¸ÃúøÀ¡¶É3 ÷…5 @ÓööÓ.//'nŽ1ÔVo@Ã{qÎÙ’Ç'‡TÜ="?¼®÷ø¥½nì43ë‡F´»wÄ’ü¿g¼ä?Ïy­×³›¾³hÆðK|õpÔ®Â9Q ޾ô } €!­Õ–Õ–Õ–%?´Mœ;f|·ÇZûçìFs µM®y¸/¬Iš¶·Ï}íÔ³}¨5~pôÇP[½= ïÅQ>gk8Öfè뜨GSz†¾‰ÀÞÞ©{§îœ9 r>åÓ2Þ{ô™KŠÇ‰l›j õL®s¨¸/,Iš£·ÿÚ€—þ½ [dÛTc¨§Þ€Ô÷bçlÎÙˆ+pt} €º¥µKk—Ö&?𭟳0wØJ eS¡žÉuõ·h¾Þ~Z·òö: n›ìÍŸ»•·ÐQo@ê{±s6çlÄ•¸e }ë#êö¶ÝÛvoÛäÁ59³:¬ª»ªzji_me£Æ«ª§–ö õL®s¨¿u@óõöwËoÿÀ'ïœ^ØC|Û¨ñäÓ {„zêíH}/vÎæœ¸yBßT€•d”d”d$?,VŸû`ùèšËÆŒ¡†Éµ 5·ö82½ýÜ™ë>Ì{UˆÛ˜1ÔPoÀáíÅÎÙœ³?à#Cè{¨ÀÀǪ–T-©Z’üY¸%ÿœì—Ꞩ®(¡Å<äñ‰êŠÒ¡†Éµ 5·ö82½}¯ÛÍ*¼ã’« Šry¼dçªÂ¡†z{o/vÎæœø7¡oc€ÿ•S—S—ÓgWŸ]}v%?h>ÝoùÑ#Vi4u uK®g¨s¨¹¥À‘ìíg•¯þõÀ7º‡:†ºéíhü^ìœÍ9q"nZBߦ">aû²í˶/«ïaôö>{ø봛©Œ¡VõU2ÔÙz ¥zû[XÓ¥àÏbÝTÆP+½=M»;gsÎF<€OèÛÀÀ'½U÷VÝ[%;Jv”ìø”C¢©³/è@Ó™Êjõ)ŸG²£dGÉŽPgË €–êíÇ­ûò{.î¦2†ZéíhÚ½Ø9›s6âAÜx›*7Unªú6-0ð)öôÜÓsOÏúd·¯(y¯Ö³¾1Ô§¾ê…ÚZcD¡·¿ìž5%¹÷‰xëC}ôö4ß^ìœÍ9­¸ñ>šôѤ& }›–¨WEeEeE½Ï»y£ë¦­c‡iCÇP“ú*êi]µÞþúÊgʆì÷&Ž¡&z{ŽÌ^ìœÍ9­—¸©$¾XèÛx` ^óæÌ+šW4¯h^ò6–}^Öüvo¿÷ð3kICBM’kjêi]µÞ¾cFÖ{í.þZ¿—ž*è,ú u5ÑÛpdöbçlÎÙh½ÀD“ø?ÔN©R;¥¾gÛÞœß#û©¿Ýµ}æ¸^éÙ’†ku¨¯J¡†ÖQîí{ÍüÏY¹·|ô‹¿ü$=£ßpí¡z{Žü^ìœÍ9­‘˜h)©y­æµš×nOÓíYŠáznICݬZKoâÏt{5p¸Þ†£_½=Gf/vÎf/¦uM`à<¹òÉ•O®¬¯ oÌ’ŸY®±¾7¢ B­¬ZcoÞ9>8\c}oø¬· ¥öbçlöbZ 0Ñ$ÙÆ6Ûll“Ù mÅ+JGÞ¿–4\WÃ×êcÞþ²{Ö”äÞ¿è7\—Þ€èïÅÎÙ¬¢LL4 €ÃÔð³ƒ[§Î¾ ÿýÇ<7}ÜÆÖÛŒ†ù‡kiøz=€¸ööãÖ}ù=—ß6ì•Ìá9­7ô ó×¢· uíÅÎÙ šÀD“h”†?³$ÑÓý–=bUëjIÜS¹:ŸA@úôö³ÊWÿzà›­+ú sÖÛ½Ø9D‡˜hM vJí”Ú)EóŠæÍk¸+Ü’NöKÕç>X>zFÝúê…¥jF×W/,-s óløZÂõ†k·H·Þ¾×íƒÇfιîüW³¼p@„Bßi;Ë „¹…yêíˆß^ìœ ¢@L4 €&s0ï`ÞÁ¼ŠÊŠÊŠÊTžÍ×£&gV‡Uëç,̶²nsuyia 4£›«ËK ÃÂ|R™y¸Æp½îwôöwËoÿÀ´nåít¼ãâ+ ¶@è{ñÎ…ÃÂ|ôö¤Ï^ìœ ZŠ˜hÍbOÏ==÷ô,ÙQ²£dGfÊ&Î3¾Ûc•G-\3lëÞW6ÿ~ìËMÛ††Ÿ~~ø·RŸ[¸–p]î_ôö Ë}íÔ³}hÚåååònøpÛ¦¡Ó›6î ?3üüðoéí°;gƒ#OL4 €æ´¯n_ݾí˶/Û¾¬Ï®>»úìÊ<,…_È«Ê^s] _è7rùs7¿<(oÃY÷gl~zñòKGlÞöþŠš‘ßÃ߇¯ _¾÷ðþÝ0ç0ÿp-îRôöéí{åz$«KÑ«37öX{îÖ;~Ú÷ý‹Ê*ްkÖó üà²Ýk~“ûpøsøûð5áëÃ÷êí°;gƒèM`àHɩ˩˩ZRµ¤jIIFIFIFf$…¹…y†9»ë@oöb{1$M` Åìm»·íÞ¶Kk—Ö.­ÍY³ gÁ‘oCÿææã~½=Ø‹íÅ 0Ñ$"¤¶¬¶¬¶lËä-“·L.[[¶¶lmïE½õ^Ôø4üœð3ÃÏÿ–š€ÞìÅöb€8­XÕüªùUó·íß¶Ûþðg5½=`/Hg`€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜ø5S'A‹/ƒ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/pluck.png000066400000000000000000001322251431412030200245140ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwT×ã÷q©bÊ+Š"ˆ{-Æ®XbŠŠ5 Æcï½k4–X¢;k,±÷^D±á>¬ÏÉæ».¿UP`|¿æœ9ždæÎÌ»sY>ܹ™Œ]ÈD€>€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N€N@*‹~ý"úEdÝȺ‘u÷zìõØëAðn^.{¹ìå²=S÷LÝ352.2.2îD‰%N” fx7¿ºøÕů¢‚¢‚¢‚öøíñÛã—X?±~b}j@O€àÿpêý©÷§ŠSÄ)â”a¥†•VÊ-‹[·,9S,ÿ¼üóòÏëcßǾýÖØ­±[co;Þv¼íHôíòôËÓ/O_¶&lMØ÷¾ðý€œ©Ä[ö–½åˆnÝ"ºík±¯Å¾ a a aÔ9@¯žfyšåi–Ã#<\>õC÷J¥¼—Í»­¢ÛŽBÓözü­Ô›·Û3Ÿš¸à+φ¡³WÍòû¬Ÿ#*õùmÊ yesw)Ùä|Ñœ…·¸œwøæÝŽÛz}ëõ­×_Zyi奕ÜM@zpóìͳ7φ¬ Y²æÝz·¼[²Úù¾mÙÙ…ŸOîæg(Óiݲº‹Ý_îîÕèR•½ê²¦S<å¸r\9þ¶¿îõù·¾®‹äºsã«^y¦ì¹Só‚Ñxà@­Z©µ>³lÃ^ßù³ÿV±Üö§‹¬w|‹×c2<$¡[B·„nÜ_À‡ô4öiìÓØI“'¾EÐ+8|e:¥GõeNžÈÕºÏt£1$¤V­ÔZ'I=¦EF]léå:h®Çèâ{ß¶ßß6rÛÈm#njnjǸËý!FúD @ïvww¬Î¶:Ûêl¶A-3,dÙ¸¾›_Ý7)uã^Û×òÿè8­•S¢3JU³åœÃÃÃ_4|ÑðECn;àý‰›79nr§jªu²©‡jT®Æ€Íö/îí58uƒ^Û×q™e»€k¿®X¨ÌzÛP]TÕ…;xßg>œùpfÛ{¨q­½_•Î{|‡õþOS7îµ}}øä·ùª¹}·³Ì‹Â l9ç‰ $ÞýýîïwçŽô„é0ÝŠoß.¾]‹Þ-z·èüÑ\ ù[¼æÞ~DÅùã|ï/Yµ?<­B_kk?'l_ë÷†{Ÿ¼É_Kñ/ŠQü‹«W®^¹z…6H]‡æš{h®-¿ä )ßâ€k¥«.ö¬>!­B_këg§÷¼¨yuCáŸWšl˵ŒÊ<*ó¨Ì/û¾ìû²/mj|¾Fß©K§.ºÔ–þhiÉZ¹+œ~ÞõjÍ"iúZ[ßî0Ó?fhç*wJ,³åZäh9Zަ ôé0ºz!ôB¨-_;ËøÕ”íé-îM~]éâ蘥 ìf;\vª™üÕENŒœ9‘öH¹çWœ_q>ù~'ÐßÓ%ßÒó÷6µñkÞB_kë¤çû«SoØêr§“¿:Ÿ >|*<Øð`à ´@J<©þ¤ú“êÍË4/Ó¼Lò½ÏÄf¾žnƒŸEwÏSóRz }­­¯Ÿû¾¡¿kËïJûŒOþꦦ¦Œçççi€Œ‹é0]9Xþ`ùƒå“ÿ’YX¬}àÛÕNÌûB1f¬è×|íû×â¤}JÎû.dà‘ä¯wƒÏŸ >´ À[»h¼h¼ž+NWz^éy¥§µ>bEhíæçúþg=0Ä£Vñ6GÜnJ°¬±"ŽE‹8¾ˆ}û"–ÖHŸ€SËöÛ7nßhªÃ k&¬™°æAuðgÖïˆ@†q¯ü½ò÷Ê[û"].¾ÏÉ ‰{­­=6LX²&ÑZíõ:êuÔ‹6›uç×_wÞZïp¯“a@ÓĽÖÖãÆôì\º˜e½åÉ‘'Gž/„ 6_£¯Ñ·ZLµ˜7½+"Ä«bMWâ^këÇ9º¶ n×j£OAkuxcÅ7VÐÒé pÊ™ýMa°í€d' Ÿ,|²°µ‡~µ¼³wK_îÚ²öݹøù¾µe\>+´Ç²&7eÚ”iý|–†- [jÙtkÖì×¢“ wm_ŸÜ¼~˜OœµŸRf}˜õaVÚèÛÓŽO;>íh­/ˆº×lŸW Â]Û×cG{o(õ†QÔߟûþÜ÷çho€ô†8åL®)ÜÍi3Âàäñ‹~@uFÔaùˆ/»­Ï؈éĺoý:èêãƒV{Zë8_8½pzáD«½ºóÃîü`õµÏs j\'Ö}ÛõçJ|û†¯£&Ðê@ß–„, YbÙ ´.éV§Ð Ý·~ôñ®‹Ÿ[ûYåÜswÎÝ¡ÕÒàÔEœZ€¤kg\θœqyýeÎX»²¾«ïÙ×@÷ÝÖrúT¬ó̲j·ÚrhË!ÚèÕ¨a£†ö†Ùõ† ¾ZV!Ê}·õý2™€êÖ¾ˆÆ¯Š_¿Š¶úó¼÷óÞÏ{[{þ_­Ô¾IõIºï¶^œ·RmËZíð°ÃÃi{€ôƒøý! N `éZ·MÝ6uÛdù¯àýãÀiG qS²®ÚfÒ?ö½aNåçŸ|nœfœfœF =y\ïq½Çõ¬}AJ¨ªN\H”›’õøb½~/ý“eÝ.ɺ$ë^ :´cãŽ;Þ0_]wÿ E5BÜ”¬_Ôí¾&¨ŠµŸ[b2ÇdŽáë€tøÃ ~[ÀÒ©øqñãâÇY{pûö[ì=ž7åë¼^œ½Ú[Öðél§³ÎF;=ùcêSÿ˜jùÌÿév¯¥ߦ|}÷—Ý™kô±öÓË«G¯½zD;=ñ8áqÂã„å3ÿü­v­üZâ¦|½8&hY…7üô2Ëi–Ó,¦.¤ Àa°-€¤S›¦lš²iŠåcºT¿ß ©jaú–\Tyo×kM¶wÙåPpXÑ8Ó–åÂú&N?ž(·Ò”Q–´5]{®?ò /°¯pÍZõZfª>×N–­íå>gÄÝ,ë9tkèÖЭ´CÐ777ËgþvÛük˜™ÏÛìíPÓ8"¨Ë®’ãJ -çxÈ´åÆ¢“ÄJ{?ž@7zø’¶^»M×^äJ}C¶ÌäwU–¬íÕrAíÀB™,ëùLî3¹Ï䦀>Ü2Þ2ÞzÃ/|Ý»|êca>oÓ½QM㈠϶%Ç•šg¿½jpl¥½O”=¼¹ðo¯êlïÐ8d`ÅÖ®qW»” t²¶W\ÉÎWîYû5®±Š±Š± ­¶€Óa°5ÀÒ©À|ùóY>š½FL[¶s y„Yb~›Z}£Ì·qšéº°ôÔŠBóÌž£ÜRs;LrÑt-UËMjÿ‡£-{yLžà½æÇ×U°Ï¾u®OÍëÄÚ^¾•µÙ;ÕZG˜ššJk€Œ.vNìœØ9–Ïy*e çþÑ2Âü¹Sß(·­æ[V|Pzªó¡âì UË¥ÿàV¹1¿²§_·%Í]\Þ¥d[g‡ÜN›ìž— /ZÙqv¯êw]®þØß¯L¡Äð(·ší¬•sìÄš}ì_ÿqÕñ\Ÿæ¼ûŸ_:[Ù+êþ¢v^%Þðõ2Û„lx»èIJì˲/Ënù´ß”©ÞâÊ•Ì#ÌŸ;ù.üß^5ÿçBÅÆUË¥çÈöéÐnókNŸ\Ùo]™–ò•ø¹@Ã2Áy§;õÏškª}¯Á‡çéõg™…Gi{›¾ô\Ÿ|iÇN´šýo¯j7ä{ÕäömíæV·Ð ËÚ¾\îr¹Ëåh€´Eœ~›#î<Ž{÷8ÎòAìÐÎe~áËÓI+VÞ­i·¨îÝGoÍÀcys.Íq Gî饯»¯³%¾µ\¿þ«óÕa¹l0ƒ}Ç/n}ÆÚ^EêÕhSÖ²Î/ø_ð¿àO›€ŒnÛŽm;¶í°|ί)îäÞ×2Ât¿ìÖÀùþÿŸ¿vôÖ ³3À˜ÝìrÔÊÙ?¦ÝÒâer¾¥CV|å}ÀZɦm´½ 6x®7ƒ_úDŸ êm¹ýÓ¿÷¸Õ\ey;£ÑÎhy¿Ïõ•ùöãä,—¬•ÿ¢^´KP•7¼|ÒÊöÍšÖÜT0ÀrûØy±óbçÑ& ãJ K K ³|—ý=Ÿ³“b-òüÿ½jëW>1é9ú}åÒc{Й€KE^æ›d:gûkv.9·ö®åÞÍõæÚ¾u˺ï8òé·?WûagXÃè*:._½ÈK»OröÌYËö½/êu_ûæ^õÍÛÇ?èòK`Ó7|Ã÷‹÷‹§MÒpú÷q†ÁÀÒiC§ 6ô ¯©|>~]Áäàw‹K?üÚëÆôû» •Ù'DÎbšÿÖ£‡ù8æÔº"ÛË©Öι›åöM²6ÉÚ$+m2°vÆvÆvÖú—Wgöߨ•%ù8ù˜3=¬ŸºUszá¸Ùò¾þ™akÙq¹§š]kçoúïæ{Ùr¥¶×ÌÚ^ÙÝ·¿ák"×D®¡a@ÆuúóÓŸŸþÜò ÿk&¿'e~J>¶%MÛõ–Sõ7V>õŸ÷…Œ¬sÜ}ŒùµX^Ýè/¼ÔR¯Þ¨`ÌßÌyŒ-ÇzÛš)VÂ9Æá˽^ø¿ðÁ›«i†8cùxÂ``éNð•à+ÁW,²>uæÐ޾[Ìéz­Éö.»^ÿïùv{샼Ϫ"ØÛ£V>>.~å8óòݾéZ LMþL’Ÿ»·Lã—±wlï`Þwìç±ô§«¬Ýè`t0:Ð2 #Šÿ2þËø/-Ÿímæw*t+%1爠.»JŽûÿcƒìƒrn-'Ødµ%²ýÛ~å¸jžÿy…c@˜Z^HþLÎ5øÃÑ÷…å6õ™1£Jsó-·œšÒçÿÿòÚö@·¦âœïijÀç#6}ãh¹ýäØÉ±“ci™q­]»víÚµ–Oøýe[´÷vy·˜sDgÛ{U;—œ[cËuêÕ–õoûo+þo¯Z3¨¼ü™œkÐVò}a¹Í¸ƒÕJ•~=6·dxž2޳“¥³i}õŸö¿Tÿãõ”f£S7áéÙ²äh˽n캱ëÆ.Z& ­g\úƒ €d€.óuxéµtêíïsZ†¸¶«Åì›Öé:øõWÙâ¹Â†{¿œÝVœ”’ØãNø÷kï—ÜüÝÖAå-×iû-]zà@¹¾Wë•°Ü+¡`BÁ„‚´LȈÎä=“÷L^Ëgûü<#Δ–’˜Ó2ĵ}¬p˜G×Á%ÿ2mï¸Ía¸Ý·rˆ“¼[l m™³ùú`õå ¼gšöÊ×&÷Mû…É_…í×û¤cdPÍ7Ô|“>Mú4éCË€ŒkPëA­µ¶|ÂÇœêx«ÆÎw‹9-C\ÛÇ ‡yxnû·Wµ/m÷íƒó x·¸OUw¹Xþâ+s‡:–nÓÕM,tΖ3¹Úaµÿã·=ÿ·Ý~›}ƒ±­,÷ŠR¢”(…– H+Àú ¿0˜@è2ó—®âQ# å1§ù6.C¼Öšd˼¼Ž «Å¯šö*ø£ÿ¬†+¬Å!ÄE+¼Û´®ú×d‡ÍÁ&¸M­rJ>n?ñÇš–{]9såÌ•3´LȈvWß]}wõ7|m´0·çþ”ÇœæÛ´Ø\kRÁÿGìšý@ŽZ¯gç5íÕ᫆+бv”â+ ïv,mZ_,´9Øo±å6[£+命g—–‚kh¿/Û–,&ÙE›®t´ÌW¹]S+6ö=ЦV1Ëí :t*HË€ŒË/É/É/é /"îÚ}KOJbÎÿöª¥^<ðÀÙCrÔÊY¶ZÞØ{Õ²§ÿíUÿw{S¬kZ_,Ôî ßâÔzqôœQË]37ü>àS÷Ú„ù¾!&_f·Ìn™-V€õGa00€ Ðeº Müº¼aö_ß’‹*ïíðn°i,oµms—+#¬m_)fŒóÒÿÌ0TáÔÎ3¿ï‚Ó*.¿bà¼ß~°ÜëvH;¤Ñ2 #Zd·Èn‘å³ý‚ý¦¡~,cËçmöv¨i|·Ø4–7þ¸2"°¾µí÷·ôï’æ{íj?³q•I©;+°íps9èpÁ×#€jŸ§øÜT €ÔªU©œÛÏÎo¬O€~¾±¾~¶ß éPËß<°|Þ¦{£7÷ªÿw j˼˘ÀúÖ¶ßÿ]‹~ÿÛ«6^eÒû›!ø¼_»Ü~î¦ñÊÛç7tôØüC‰Jy‹55?‡%‰µ>«pè}À1k;žª±Ñr¯Ñ G7Ý– H??ëIÆ ƒ €d€.³t±Nu†å¶ ,½&NÛ·sµí1g•ZãÖw³}{×ÒútŒ6mc×ë»uq̾Yz €+ý>ºÉ’,÷2x¼ ^´LȈƿÿrüKËgûÝc»½j„Y–·"v®ö—l9OÎ]ßÍ'Æö퇎é]âõ¼‰¦q½IeöÍ ZžºpòkÓ‡7ïœT²¾éLòöÌ]ʾûõíÛûûçO­9€Më– jVð0èûky)ßyg/ËÀòVD‡oîUßpžœÛúÕ›{Õ7o?tL•„{Õܡޥ“Êôh´üýÀåÊä«åtÑò gÛ_´ÓV-¨SÈÝÁöÒÞ6~Õu^`¢å^]îw¹ßå>-~~6 Ö«ŒgJ? °¦l^+'”µ ,Ëzöz:áõ«¥r]ÌŸ­à[bNó’ æ®Þ¿ÛÆ_Y¶¿©CTÛE+›¶,æßôl·J)‰cÓìñwø7kÇÑÞàc7N˜É2°\=yÂl÷`Ó6EœànKÌi^rûR Ü o³Üæ•Ëþ¦AgJ†­üÿ_ 9²x·J%Ú>Z7åkÓŒ¿G<ͧ¼~!ó*Ǫv“å,swW=ú¶WjËö=?o9ȵ í ô-hNQcþ’–åêÉuBÿíU{ÿÛ«Ú‹¶/U¶Xám–Û¼ré±=èŒùË–G÷Êño¯ú¡`sr–&³ª}ðsßî5k>£½€ŒhûÆí·o$€ÿ(—ïígwó×>—Õúüq(—kžÈü3LÛ”ÈÙjJŸ)¦Û‹Ú]vŒrîãóÃü{‘?üg,l–‘>‹Š›oYeÐDÇß‹¾ïè7u`÷ÐæÇåìcWÙn¢é•×¥/tù%ì3ÿù­µ-o!=f¢ïïßÒÞàcðhºš+p¨ùkŸ×}qÈ=¶PŽü3rm0m>¥Ï·×ÛÛ‹æ uîc_áɬÈj7ß&jí¢â^¹Í·<5ñ÷¢¾EÞwè{®Á޾/¾ó¬ÿCáQæG¯:³ÜËܯUXñ•÷[®Ñ´VOÎódo71g˜é•×ó›„}V>üñJmKàËíû­i»¢Ø5Úè[ý'Å—cæ¯}^÷}Ý î±…r8}öo¯êóÛ¿½ª­±hžÐ\Sí+<™ÕõvÍâæÛD­m¶é{Õ6­|‹¼¿è×|ýҧǧA½¯oÿÞß?ÿ_}©Ò¼Q¾?hh~>{æ5ÿÒ«aòå¨'›.÷dŸSËfzåõü&1åïìúkàËí_üÔ] ¤½€Œèù†çžo €ÿ0ì±{¡µÍÿoÉÍßmTÞ4f×–X´ê_“6[Å|›¢õ§·Ïóú+÷ÚrMª:Zn“þ`óÒì{9ȳÌôïŠBóÌžÀ`ø˜™>¾gmEŸ:æÿ÷·Ï•/óÜ4f×–Xôb¡ÍÁ~‹-b¾ù »5îWuÌ×Ür›ÔZ›"mS€mŠiMÇ2ÅÛ¦«{²gEÍ}ïv¦½ò×˳ÌþõÔ BÅÙª–c0|œÌGßÓ*î{Õê;Ê<7Ùµ%^½X¨ÝÁ7÷ªÿn3ðGå{Õ"ËþíU?Dl-´n.—ZQp¦µsN~ßüõýÛ«6ލZŽÀ@O>¢À¦w ³°°°X.–Gó9€«¶›ôð£–ÛT»6ÏCõz·µÐ¤šŸ6Ëþz„ñÖÅ1ûf9x»T,ôúOUܾéZ L5ý;cÀ¦P¼°SÐ_-j¾.è©}L.±’0züÒܶÏ<µüÔòSËÓ2YXXX2âÒcL1=ÆX>ÛÍç>ï÷ÇQ?wËmEª^cß65麩Yö¢!æsîû³Ñ!Áô„©å…÷›®ÅckÙq¹§šÊÏu<×§9ïŽrîö Tñ‡qr–€K)9®)ï1¶EM×oLå8Dæí íë½4·WœísÓ2YXXXôôÕ|àó~ír¿¹Wír.pì»ÍÛuSùGECLÿÝ4Ëo±?sü·W­ôo¯š6°å9›Ÿ¡µíM¡x±3ýÛ«Ú±+´¯w g¯8Ûçn´£ÑŽF;h™,,,,,éçgƒÙYgg•šÑß²cØŽa;†…|òiȧ¶G¿¦í?¢9€Àö7¸ Müº´ŒHóÞwoìãónA©ù^ö{s/É—Ïôri÷üÃ;Íjúï¦×&{¿œÝVœôa¢ßÔ €KÍí0yÈëù™œ´båÝxMœ¶oçjkÛ—_1pÞo?XývH;¤Ñ2 #Zd·Èn‘å³ý‚ý¦¡~,ãÛ:?ùøä?úß±;ï(›/_.ÓH\9aÞPÏ/LÿÝ4÷AqRÀ€Ô~/Ço]= t× NY^ÿY× NYöNZ¼Øk¼ù¦ä(3v¹Xî+S9î—Ý8ß¿±sµ¿dmûJåÜ~v6¾i@?ßX_?Ûo…t¨åo…Öù©˜Óÿöªï¦(ëØ$—¿éåÒrB“ÿöªö¥í¾}£sÞ€)ocËuêÕü¸Kk}Váí%¬ÞÒÕ{¦ù9'Õ3v×òo¯êò¹óý[øKÖ¶YÛñT–5?ºá膣Ò2éçgSXHÍèƒ)¸°fš kl}MÛøÐ×0€ Ðeæ/]Å£FÀÿâör‘g™iü®-á¨ç«©¹¶÷Ïé—sY΃æåiSwg›^¦üÑVÃrìoêÀ¹·!•º½ÇÕ½ûè­É—Vòqû‰?Ö´<ú•3WÎ\9CË€ŒhwõÝÕwWÃ×ÑF s{îO>Ä5½âØ4~×–pôúöíýýóÛ}’ó`Îÿ”Ó7w›^Å&šþÝ᫆+Šyc}꺯˛ÝTrMÅ+8ßÓû„Ã>©{,_ïJÝò¾î+—d½µÂl«å÷=ЦV1Ëšw*èTЩ -2.¿$¿$¿$Ë'ü‹®Ý·ùX qM¯86ßµ%L5Ͱk÷IΞÿÛ«Vôo¯Zöô¿½jêâ5͵}_ó±ÈõësYŸü¹ùzºúo¯ôû¿½ê›·?u¯M˜¯§eÍ/³[f·ÌŽ– H+Àú“qC_sÀ2@—ù:¶ôZ:õÀvóÀÒ467%q©ù^…kÖª×2S®1yïÈfú/N é<³ñ‡Œ~S76/¡rÞ1k—MM~ûs}¯Ö+ayô„‚  Ò2 #:“÷LÞ3y-ŸíóóŒ8S~˜eli›û¦«ï28d`ËL®…ã dsx}»ÚÏl\eRêF¿b‘9U_ϳkŠŸÍç$NÝc™_݆˦z··¶å“Ž‘A5ßPóMú4éÓ¤-2®A­µÔÚò sªã­;ÍKÓØÜägóµ=Ž X±µk@á8§ÿöª†W™ôþ^ãlÍÎ%çÖèáͯÝÉïusö÷ü'ºjÎQ¯à±ç¼ÿ.)ùëýo¯Úb¿wûä²Í¾ÁXV–õ¥D)Q -V€õA¡¯9`éNð•à+ÁW,¦>uæÐŽZÎq›ZpÎ>v•í^ÿ%µCˆ‹Vx·íã‰MkÓ^¦uÕ¿&;lN?ðÿQŽÇÒŸ¬²ú*3£ƒÑ– Qü—ñ_Æiùlo3/¸S¡[Öæ¸M­Ø.ÞnbÎ0Ó¿‹¯,¼Û±´íã‰MkÓ^¦µ)ֵܯ4ßðë?ç2 ›gÿ:,W¹ o»¶ýê’¯™ó›¾ñ ´Ü~rìäØÉ±´Lȸ֮]»víZË'üþ²-Ú{»XÎq›Z°]|Níß^5w¨ciÛǛ֦½Lë‹…Úô[l¹Í™^m¿ö’'4×Tû æG¼¸J>[£|î‘Ýôªçíó:zlw°Z©ÒUÌ_ølšý×ôBiۯΖšáéÙ²äh˽n캱ëÆ.Z& ­g\ú }ÍHw¦ 6tÚPË«Çãðñë ¦n\êí0cô®ó9çÛí±2/¡˜Ó³Ý*¥$N®ZnRû?3J\­ÿœr·7ŒRÊÚ$k“¬´IÈÀÚÛÛYûÒòêÌþµ²¤$æ´\ßm»ë|Nö×ìƒrn5/adñn•J>LIœ|®Á޾/,·ñOªÒ*_œ©$µൽ"²»oÃ/ÖD®‰\CÀŒëôç§??ý¹åþ×L~OÊü”ò˜Ó|}·mÇ65:™Fâþ·WõÊño¯ú.qò¹m%ßÉoéâãð4×W¶÷¡Õóž™wó‰5­Wúl³åÜÞ¶fŠ•pŽqøç /ßöáÿŸ– H+À‹¾C_sÀÒÃá‡Ã‡[>dKµûþÐàï#.µ,¡Ê ‰Ž¿MI9+v?¶káHËí—tYÒeIÚ$dt+v®Ø¹¢åsþV£Ãü·¤nl­„S/ê[$%åX € åÈ?#׆ô7kZsSÁËícçÅ΋G›€Œ+1,1,1Ìò _ö÷|ÎNJêÀÖJ85±M+ß"))'ùØ|{Ó_Ó|½…39}Ÿëzîˆ\Uíž{N(X8OåvµË (\gÍÈ:ÇÝdz‡ä¨õ×h{ÍÄ?èòKà›ÞþïïO›¤-àôïã }ÍHwÇ=Ž{gùÀuhç2¿pÄû‹K-Ëüð³ÿ¦î™Ø^3EêÕhSÖrû þü/ð—ÔámÛ±mǶ–Ïù5åÃÜû¾ØZ™©;#ï‡_ÛR3OÿÞãVó +ØíŒvFãAãAãAÚ$dtÞ…¼ y²|Ú?8ݹkÀ’Ô €­E§©;û¯-1mêží5# mÒ©êËítZÐiA'Z# m§OgèkŽ@:˜/0_`>ËG°×ˆiËv|ß°>Ö¶ÔŒoåEmöNµÖá%…&…&…Ò £‹;'vΦW¨R¶pî?L¬µ-5uQ;¯oø™mB¶ Ùh ˲/˾,»åÓ~S¦z‹+Wzß°>Ö¶×Lk7·º…fXn¹Üår—ËÑi‹8ý ô5G Ú4eÓ”MSÞð"è~¾R•8ùµý¼½êc[jÆ}Έ» Xnº5tkèVÚ!艇›‡›‡›å3ÿF»í þ5€“_'lSþeKÍ´\P;°P&Ë-Ïä>“ûLnÚ!èÃ-ã-ã­7üÂ×ý¸Ë§Î1Àɯ¶uõxs¯ú¿[Æ•ì|5àžÕ‰ª««Ði‹8múZC Š?.~œµ´o¿ÅÎÑã­ÀÆ;­zYíÚ<Õë# }.åæ±{¡µ]¯5ÙÞe—©6ì³;µÊ]ÊZœ×«‚³W{Ë:<ít¶ÓŒR]ùcêSÿxÃ[~ºÝkDéÁÉÀG­zYmå£HÕ+pìÇú&†G¹Õlw|ÏÚŠ>uFuÙUòõO&y{æ.eßÝ2¾ûËîÌ5úXûéåÕ£W^=¢€žxœð8áqÂò™þV»V~­¬ÀG}{½ÚÊG‘]ÎŽýxBßÄðn5ÛßÓ*ΧΈ ϶ÿöª¹bþíUÿw¯Å1AË*¼á§—YN³œf9Ñéð‡Gèk `éZ·MÝ6uÛdù°®àýãÀiG­À&åÂú&N?ž¸Ò”Q–´µ¬‡¢/žëøµe\µÍ¤;ì³Ü¾àó‚Ï >7N3N3N£€ž<®÷¸ÞãzÖúÍ„ªêôÀ…Ö`“E'‰•ö~<pôð%m½v[ÖÃß:~]b e<¾X¯ßKÿd¹ý’¬K².ÉJ ýÙ±qÇÆ-ŸüÝý+DÕ¬Àÿ¿W Ž­´÷ã €£‡7ÞÜ«V™ÿo¯úïö/êv_TÅZíÅdŽÉÃ/Öéð‡Aèû¶€¤kg\θœqyÓ»eÎX»²¾«ïÙ×Ý÷Ê’°ýM‹oy¦WÇ"…¾qÝ@œëbþl'™ܶ¤id°åörúT¬ó̲j·ÚrhË!ÚèÕ¨a£†fùüŸ>lðÕ²Š)È|岿iЙŸ ½Ú”îSº‡ë§,ÀEœàÞï˶%‹I¦‘Áæ[Þ/#œ ¨ní güªøUñ«h{ ?Ï{?ïý¼·µçÿÕJí›TŸôÊ¥Çö 3?ª+ݧt<—ÿíU?Þ¸è1çÞáý¾¬t¨˜dl¹ýúØà¼•j[Öj‡‡vxHÛ¤Àï¡oJÈꌨ3¢ÎËGyÙm}ÆFLgÆßä×–c=ªZíi­ƒ|áôÂé¯ÒݺóÃîü`­¸7ǰ ÆufüM~m9öwˆs‡ %¾}Ã×΀ hu oKB–„, ±ìZ—t«Sh3þ&¿¶ûûøx×ÅÏ­ý¬rîι;çîÐêépê"ôM-À2€“…O>YØÚýZÞÙ»¥/zmYûî\ü|ßZ‡2.ŸÚcY“›2mÊ´‰~> aKÖ†-µì º5kökÑÉD¼¶¯On^?Ì'ÎÚO)³>Ìú—?€Î=íø´ãÓŽÖú‚¨{Íöy• èµ}=v´÷†R1–5ùý¹ïÏ}ŽöHo€SŽÐ÷}àý2Œ®c»Ží:ö sÖÞ¨‘ظá®-ëÒ%;5æú†y‚]‹ºuMÚŸ´?i?- >W=\õp•µ/Qj¦ùu=kî&¿~]?(°Èg\ ZÖá‚o|³àZ|<¶\ÝruËUk}ëãïº ¼D¸›üú¸]«>­Õá7VÜXAK¤7À)·}ãöÛ7ú¦.`ƽò÷Êß+oíÑ_.¾ÏÉ ‰x­­=6LX²&ÑZíõ:êuÔ‹6›uç×_wÞêë ;Ô8MÐkm=nLÏÎ¥‹YÖ[žyräÉñBx!¼hcðñ5ú}«ÅT‹©ö†Ñ«!^kºzñZ[?Îѵeà!k?“Lï6½Ûôn41@úDœrIM“š&5%ôM]À2˜Þ½7z[ë ª¬š¸å÷Xâ^óuµ¬³‡‰[­ÕØÈ®#»ŽìJ»€TmcmcíÀ9sçXö¾?Vš™·éËÞÑÆ !ĽæëÕ¦¯¨’ÃZßz<÷ñÜÇsÓ¸àãt¥ç•žWzZë#V„Ön^qqïÖCQn¬ÕÕù¨óQçùÆ H×€‘>Èê$ÔI¨cí+¢àø­Ó¥jYg·œÑ¯o¿Å¹£'äö,¸ÇZ-]ºq鯥´%€‰rP9¨´ÖkŒkß³Ni—9ú=»fã ß“Öê§Aß}ô}5ÿÕüWóiKã+ã+ã«1!cBÆXë;Õmî}ôcŽ~çÜ ÌZî…µúù£ÙÍþhFS¤ÀHŸ€d`—¢Q¿'VÚã˜iÕ %¬þ½¹»ê®ºÓ~–d[mA6k=ȘV=¶–Zcls ¸Vá'ú=!­|vY«ÍAsйÖwôëýǬBS§‹Å~rÛm­ÖÏZ?ký,Ú yc²É6Æj ÜeJÓ²EK<›³'ºæ?úŽ~•{ó½=ý“ÿãæö›Ûon§Í¬yèüÐù¡³ýûö;¬õ&[ן[y¿¾Cߤà݃Ö›WÕP²ˆµzè1±ÇÄ~F?£-Q#}" Qã†G OþW´åÏ žÚTÑoå§?u]åœüµ/϶<Ûòl´€MÖ××…v íÚÅZÏRz­ëe§\×ÝÞÌ?—®¢ßØB­€w‡f.ç|ßz¹Éå&—›ÐX¶¸ûûÝßïþž|Ï2vª÷Ÿ¥¼ÊÖcSÐI=E¿÷ÔNÕkÄ)ò$_¸µk︡ㆎ’†' ONkd,ÀHŸ€èÊÁòË,Ÿü—êÂbíß>¨vbÞŠ1Ïòû×â¤}JÎû.dà‘ä¯wƒÏŸ >´ À[»h¼h¼ž+Ö8k•KÉ÷ªýƒû÷NŠKŠKŠ£…2"`¤OÀtèBè…Ð ÿÇK¡_ <ð«)Û3Vô[éâ蘥 ìf;\vª™üÕENŒœ9‘öH¹çWœ_q>ù~'ÐßÓ%ßÒó÷6µñkQBߤçû«SoØêr§“¿:Ÿ >|*<Øð`à ´@J<©þ¤ú“êÍË4/Ó¼Lò½ÏÄf¾žnƒŸEwÏSóRF }¯Ÿû¾¡¿kËïJûŒOþꦦ¦Œçççi€Œ‹é0ÝŠoß.¾]‹Þ-z·èü×Î\ ù[¼æÞ~DÅùã|ï/Yµ?<½…¾NؾÖ!ï ÷*>y“¿–â_ÿ¢øW¯\½rõ mºÍ=4÷Ð\[þÄ*¤|‹®•®ºüÙ³ú„ôú>;½çEÍ« ÿü¸Òd[®eTæQ™Ge~Ù÷eß—}i€Tãkô5úN]:uéÔ¥¶ôGKKÖÊ]áô“ð®WkIo¡ïíà3ýc†v®r§Ä2[®EŽ–£åhš@€‘>лÆÆ«³­Î¶:[N›•²lÜ ßM‹¯î›”V¡o…ü?:NkåT£èŒRÕl9çpçpçpç _4|ÑÛxâ&ÇMޛܩZ§jlê¡•«1 @³½Á‹{{ N«Ð7.³lpí×õ •YoûϪ‹ê¢ºpÇïÛá̇3Îl{5®µ÷«Òùoï°ÞÿiZ…¾‡O~›¯šÛw;˼(¼À–snØ ±A¢i.dî8@O€‘>øˆÜÎt;ÓíL­6¶ÚØj£í_­ó .»¹J­²åz™Ð×ó§)3ÿŸºA¯÷¡YÑÂáò ~[èògµµ²ýÜ*ÆTŒ©sÊõ”ë)Wî/àÃSŽ+Ç•ã9ßR¯Ï¿õu]$×_õÊ3eÏšR7î=³lÃ^ßù³ÿV±Üö§‹¬wìgû¹ 2<$¡[B·„nÜ_À‡ô4öiìÓØI“'ÚÞså¾²Ò£úˆ2'OäjÝÇgzê½IRiA‘Q›Ez¹šë1ºøÞ·í÷·Ü6rÛHã1ã1ã1î2@€‘>øHxüáñUƒªU ÊùNœœ‹f/9¥Hö:{ZW*õ²ãžÐþåbû·™Qqeè½9³Ü—„}²`ŠûWÃKÏ«P~ÕÀ%¿ vsíÚ{d±¢‡whœ{¹›“ûÝw;®Ý »v+þŠü+ò¯Hãׯ¯_s7iëùüçóŸÏ_±4biDΨâóÀå³Q?t¯TÊ{Ùì±Û*ºí(4m¯ÇßJ½y»=ó©‰ ¾òa:ëqÕ,¿Ïú9¢RŸß¦ šW6w—’MÎÍYx‹Ëy‡oÞí¸­×·^ßzý¥•—V^ZÉݤ7ÏÞ<{ólÈš5!kÞ­wË»Õ!«ýïÛ–]øùän~†2Ö-«»Øýåî^.UÙ«.k:Å3DYÚ´¼gùUn¬’}ÅŠÚ]*.·¦ZþÒå­*!ø!%}úŒ=3öÌØ“øyâ牟s7úFŒô‰ÀÇíŠñŠñÊ‘JG*©Ô,±Yb³Äœé’G/^½ÄÉâdqrÒÒ¤¥IK¹u€ôéiøÓð§áë«­¯¶¾šãÇ+ŽWÒgßÚ/K¿,ý²\ ¾|)˜»HÏnh7´ZX¾°|aùr¦cK–/Y¾dyÂí„Û ·¹k€0Ò'`ø˜91sbæ,)¾¤ø’â¥f•šUjVZ}yž¼sòÎÉ;¯f¹šåjî ã:9ç䜓s†¹ sæ–V½jÀÏ?ü¼å“-Ÿlù$acÂÆ„Ü@FôÌï™ß3¿]¾»|wù6ì×°_Ã~iÕ·ö=Ú÷hߣGܸqç¾>fÀHŸ€àÿpêý©÷§ŠSÄ)â”a¥†•VÊ-‹[·,)ÿœ^þyùçõ±ïcßÇ~kìÖØ­±·o;Þv¤Îúvyúåé—§¯ [¶&ìûßø~@jý2Ú[ö–½åˆnÝ"ºík±¯Å¾ a a aÔ9@¯žfyšåi–Ã#<mŸ­EkÑÚ^m¯¶W‹Ò¢´(-R‹Ô"5US5US4ES4I“4I5Q5ƒfÐ Únm·¶[ûKûKûKÛ©íÔvjÛµíÚvm›¶MÛ¦mÕ¶j[µ-Úm‹¶YÛ¬mÖþÐþÐþÐ6jµÚïÚïÚïÚzm½¶^[«­ÕÖjk´5Úm•¶J[¥­ÔVj+µåÚrm¹¶L[¦-Ó–hK´%Úbm±¶X[¤-Òi ´Úm¾6_›¯ÍÕæjsµ9ÚmŽ6K›¥ÍÒfj3µ™Útmº6]›¦MÓ¦i¿i¿i¿iS´)Úm²6Y›¬ý¢ý¢ý¢ý¬ý¬ý¬MÔ&jµ-B‹Ð&h´ Úxm¼6^§ÓÆicµ±ÚXm´6Z­ÒFi£´0-L ÓFh#´Ú0m˜6L ÕBµPmˆ6D¢ ÖkƒµAÚ m6P¨ ÔúkýµþZ?­ŸÖOë«õÕúj}´>Z­·Ö[ë­õÔzj=µ-D ѺkݵîZ7­›ÖMë¢uѺhµÎZg­£ÖQë¨uÐ:h´öZ{­½öööÖVk«µÕÚhm´6Zk­µÖZûVûVûVk©µÔZj͵æZs­™ÖLk¦5ÑšhM´ÆZc­±ÖPk¨5Ôh ´Z=­žVO Ö‚µ`­ŽVG«£ÕÖjkµµ -H Òjj5µšZ€ h5´Z Í_ó×ü5?ÍOóÓ|5_ÍW«¦UÓªiÞš·æ­yjžš§VU«ªUÕ<4ÍC«¬UÖ*kîš»æ®UÔ*jµòZy­¼VN+§•ÓÊhe´2𛿦¹i¥´RZ)­¤VR+©•ÐJh%´bZ1­˜æª¹j®Z­ˆVD+¬Ö kµ‚ZA­€V@+ å×òkùµ|Z>-Ÿ–GË£åÑrk¹µÜ𓿤9iŽš£æ¨åÒri¹4{Í^³×rj9µœZ-‡–C˦eÓ²ißhßhßh_k_k_k_j_j_j_h_h_hYµ¬ZVí3í3í3-³–Yˬ}ª}ª}ªeÒ2i™T£jTj’š¤&©/Õ—êKõ¹ú\}®>SŸ©ÏÔD5QMTŸ¨OÔ'j‚š &¨ÔGê#5NSãÔ‡êCõ¡ú@} >PcÕX5V½§ÞSï©wÕ»ê]õŽzG½£ÞRo©·Ô›êMõ¦z]½®^W¯©×ÔkêõŠzE½¬^V/«Õ‹êEõ‚zA½ žSÏ©çÔ³êYõ¬zZ=­žVO©§ÔSê õ„zBýGýGýG=®W«GÕ£êQõˆzD=¢V«‡ÕCê!õz@= P÷«ûÕýj´­F«{Õ½ê^5JR£ÔH5RTMUQUR%UREUTEÕ Tƒº[Ý­îVÿRÿRÿRwª;Õêvu»º]ݦnS·©[Õ­êVu‹ºEÝ¢nV7«›Õ?Ô?Ô?ÔêFu£ú»ú»ú»º^]¯®WתkÕµêuºF]¥®RW©+Õ•êJu¹º\]®.S—©ËÔ%êu‰ºX]¬.Vª Õ…êuº@§ÎSç©sÕ¹ê\u¶:[­ÎRg©³Ôê u†:]®NW§©ÓÔiêoêoêoêuŠ:E¬NV'«¿¨¿¨¿¨?«?«?«Õ‰êD5\ WÃÕ êu‚ú“ú“ú“:N§ŽSǨcÔ1êhu´:Z©ŽTGªaj˜¦W‡«ÃÕaê0u˜:TªU‡¨CÔ!êêêê u:H P¨ýÕþjµ¯ÚWí«þ þ þ öQû¨}Ô^j/µ—ÚSí©öT{¨=Ôjwµ»Ú]íªvU»ª]Ô.jµ“ÚIí¤vT;ªÕïÕïÕïÕöj{µ½ÚNm§¶SÛªmÕ¶jkµµÚZm¥¶R[©-Õ–jKµ…ÚBm¡6S›©ÍÔ¦jSµ©ÚXm¬6V©ÔFjµÚ@­¯ÖWë«Áj°¬ÖUëªuÕÚjmµ¶ZK­¥ÖRƒÔ 5H TÕ@5@ PTÕ_õW««ÕÕꪯê«úª>ªê£z«Þª·ê¥z©^jUµªZU­¢VQ«¨•ÕÊjeµ’ZI­¤VT+ªÕ jµ‚ZN-§–S˪eÕ²ª›ê¦º©¥ÕÒjiµ¤ZR-©–PK¨%Ôbj1µ˜êªºª®jµˆZD-¬V «Õ‚jAµ€Z@- æWó«ùÕ|j>5ŸšGÍ£æQs«¹Õܪ³ê¬:«Žª£ê¨:¨ªƒj¯Ú«öªj§Ú©9Ôj5»š]Í®~£~£~£~­~­~­~©~©~©~¡~¡~¡fU³ªYÕÏÔÏÔÏÔÌjf5³ú©ú©ú©šIͤfRŒŠQ1*IJ’’¤¼T^*/•çÊså¹òLy¦%’GÉ£äVr+¹'ÅIqRGÅQÉ¥äRr)öнb¯äTr*9•J%‡’MɦdS¾Q¾Q¾Q¾R¾R¾R¾T¾T¾T>W>W>W²*Y•¬J%‹’EɬdV2+Ÿ(Ÿ(Ÿ(™”LJ&ù•üJ~%'ÉIr’üB~!¿ŸËÏåçòSù©üTN”åDù±üX~,'È r‚/ÇËñrœ'ÇÉäòù¾|_¾/ß“ïÉ÷ä9FŽ‘ïÈwä;òmù¶|[¾)ß”oÊ7äò ùš|M¾&_•¯ÊWåËòeù²|I¾$_’/Èä òyù¼|^>+Ÿ•ÏÊgä3òù”|J>%Ÿ”OÊ'åäääãòqù¸|T>*•ÈGä#òaù°|X>$’Éäòy¿¼_Þ/GËÑr´¼WÞ+ï•£ä(9JŽ”#åHY•UY5=dI–dIeQeƒl òny·¼[þKþKþKÞ)ï”wÊÛåíòvy›¼MÞ&o•·Ê[å-òy‹¼IÞ$o’ÿÿÿ7Èä òïòïòïò:y¼N^+¯•×Ê«åÕòjy•¼J^%¯WÈ+äåòry¹¼T^*/•—ÈKä%ò"y‘¼H^(/”Êóåùò|yž9ŸœOÎ+ç•óʹåÜrnÙYv–eGÙQv”dÙA¶—íe{ÙN¶“íär9‡œ]Î.g—¿‘¿‘¿‘¿–¿–¿–¿”¿”¿”¿¿¿³ÊYå¬ògògògrf9³œYþTþTþTÎ$g’3IFÉ(¥$)IJ’^J/¥—Òsé¹ô\z&=“žI‰R¢”(=–K¥)AJâ¥x)^Š“â¤8éô@z Ý—îK÷¥{Ò=éž#ÅH1ÒéŽtGº-Ý–nK7¥›ÒMé†tCº!]“®Iפ«ÒUéªtYº,]–.I—¤KÒé‚tA:/—ÎKg¥³ÒYéŒtF:#’NI§¤“ÒIé¤ôôôt\:.—ŽJG¥£ÒéˆtD:,–K‡¤CÒ!é€t@: í—öKû¥h)ZŠ–öJ{¥½R”%EI‘R¤iúñßÔíK&¢$J¢d ’AÚ-í–vKIII;¥ÒNi»´]Ú.ý)ý)ý)m•¶J[¥ÍÒfi³´IÚ$m’6J¥Òiƒ´AZ/­—ÖKë¤uÒ:i´FZ#­–VK«¥•ÒJi¥´BZ!­–IˤeÒRi©´TZ,-–K‹¤EÒ"i´@Z Í—æKó¥¹Ò\i®4Gš#Í‘fI³¤YÒLi¦4Sš.M—¦KÓ¤iÒ4é7é7é7iŠ4Eš"M–&K“¥_¤_¤_¤Ÿ¥Ÿ¥Ÿ¥‰ÒDi¢.…KáÒi‚4AúIúIúI'“ÆIc¤1Òi”4J%”FJ#¥Òi„4\. —B¥P)T* •†Jƒ¥ÁÒ`éGéGéGi 4P( H¤~R?©ŸÔWê+õ•úH}¤>Ro©·Ô[ê)õ”zJ!Rˆ"u—ºKÝ¥nR7©›ÔEê"u‘:K¥ÎRG©£ÔQê u:Hí¥öR{é;é;é;©­ÔVj+µ‘ÚHm¤VR+©•ô­ô­ô­ÔBj!µšKÍ¥æRS©©ÔTj,5–K¤FR#©Ô@j Õ—êKõ¥`)X –êJu¥ºRm©¶T[ª%Õ’jI5¥šRM)P ”¥R ©†ä/ùKþ’Ÿä'ùI¾’¯ä+U“ªIÕ$oÉ[ò–<%OÉSª*U•ªJ’‡ä!U–*K•%wÉ]r—*J¥ŠRy©¼T^*'•“ÊIe¤2RÉMr“ܤRR)©”TB*!•ŠKť⒫ä*¹JE¥¢RQ©°TX*,’ I…¤R©€ä"¹H.R>)Ÿ”OÊ+å•òJ¹¥ÜRnÉYr–œ%GÉQr”$ÉA²—ì%{ÉN²“ì¤R)‡”]Ê.e—¾‘¾‘¾‘¾–¾–¾–¾”¾”¾”¾¾¾²JY¥¬ÒgÒgÒgRf)³”YúDúDúDÊ$e’2‰¯ÄWâ+1IL“Äâ ñ…ø\|.>ŸŠOŧb¢˜(&ŠÅÇâc1ALÄx1^ŒãÄ81N| >ˆ÷Åûâ}ñžxO¼'ƈ1bŒxG¼#Þo‹·ÅÛâMñ¦xS¼!Þoˆ×Äkâ5ñªxU¼*^/‹—Å‹âEñ¢xA¼ ^ωçÄsâYñ¬xV<-žO‹§ÄSâ)ñ„xBBo¡·Ð[è)ôz !Bˆ"tº Ý…nB7¡›ÐEè"t: …ÎBG¡£ÐQè t:í…öB{á;á;á;¡­ÐVh+´Z ­…VB+¡•ÐRh)´Z-„B3¡™ÐLh*4š …ÆBc¡‘ÐHh$4 „úB}¡¾, ÁB¡ŽPG¨-Ôj AB$Ôj 5…!@j5„Bu¡ºP]ðü?ÁGð|„jB5¡šà%x ^‚§à)x U„*B¡²PY¨,T* •„ŠBE¡¢PA¨ TÊ å„rBY¡¬PVpÜ7¡´PZ(-”J %…B ¡„PL(&Š E…¢B¡ˆPD($ …‚BAÁEp\„üB~!¿WÈ+äòy„<‚³à,8 N‚“à$8‚ƒ`/Ø ö‚`'Ø 9„B!»]È.|#|#|#|-|-|-|)|)|)|!|!|!d² Y…τττÌBf!³ð©ð©ð©IÈ$d2¼2¼2¼2$’ I††††ç†ç†ç†§†§†§†DC¢!ÑðØðØðØ`H0$â ñ†xCœ!Îgx`x`x`ˆ5Äb ÷ ÷ ÷ w w w w w w · · · 7 7 7 × × × × × × W W W — — —    ç ç ç ç ç ç g g g § § § ' ' ' ' ' ' Ç Ç Ç Ç Ç Ç G G G þ6üm8d8d8d8`8`8`ØoØoØoˆ6D¢ { { { Q†(C”!Òiˆ4ýÚÞôë:ÓíÀô‚à}Hy(0¤``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 &áåLõÃ}I]·"nEÜŠ(r¥È•"WL×R(G¡…rÄ]»w•ûn S]™êÍT‡¦ú4Õ-õ %€ €dxÀÜ—ã•Ë+—W.õ¾­÷m½oͯeŠÓ§)NÉ_—¾[é»]ÝäÊ“+O®l¾eý:õëÔ¯Ã'@JÈð€¹/FÄèˆÑ£Í¯ÂUsÕ\µÇ+¯|¼òcn¥ïvu Û¶%l3Kmòs§Ÿ;ý܉O€wCL Ã#æ¾¼o§&žšxj¢C¤C¤C¤ùUÌZ8kᬅ¶\°5Ó÷Oß?}¿ùö¦z>ÓëL¯3½øx[ÀÀ2<`îË{”ݘݘ½îu¬û£ùù—Zjh©¡O‡>út(­4%W—žž^bV‰Y%f™ïeþªm>MlGL Ã#æ¾¼?+ׯ\¿r½åù/r]äºÈÕök!NÞ¼Žó:Îëh¹ïêÉ«'¯žÌ§ €í€ €dxÀÜ—÷áYȳg!¥{”îQº‡ù™([ l²¶ýýZiʯÎ48½üõò×3ß·Lp™à2Á|–ØŽ˜@†GÌ}y¬IíSµOÕ>Ußö*ÊV+[­l5ËÒÊ•)W¦\™Œ~¯SëêB† hYÎÂJ +-¬Äg €-€ €dxÀÜ—ÔeÝ[2¼dxÉpË3×öj{µ½o{íKµ/Õ¾”eißçù>Ï÷y2ú½N­«“³ÈYä,–å˜Ãæ“ yÀÀ2<`îKêZ¾où¾åû¬Å¯\^¹¼ryÛ2-ök±_‹Y–9ÅiŠÓ§ŒÞVSëêLu[bV‰Y%f10€wCL àµèáÉ-ÖöºúÏÕ®þó“á'ÃO†ànÁÝ‚»™^ë´Êi•Ó*S`x$ðHà‘¡c†Ž:æP…CUHÝ3'¶æE½õ^Ô3øü þ¦\ ¸pÉt_·9nsÜf Ûü³ùgóÏÖñ^Ç{ïý^ã÷¿×ˆ?<þøÇy_ü“ü“ü“,Ïy”ó(çQÎïvþR.)—”˲Ló1¯·¥¥îÕ o>¼ùðæ–¥ÕTj*5>×’GL à5ÛãºG‘"Ev[ÒmI·%vñvñvñ9SàCžùû+áß³UÙÙÙW®_¹~åú¢ÇŠ+zìÝî‹)6ý;a[¶„mé矅< yÒìïf7ûÛZù^ƒ½{ ¾ç{Ï÷ž¯í%.|¸ðáÂÖÊ<±æÄškÞíüäxãAË2MÿÝ|Ëa;Ãv†Y;SHÿ>Ú¤µ9MÆÜswÌÝ”_-Ž^?zýèukgräÑ‘GGñÄ` 00€×l‰ëζ;Ûîl»Êjeµ²š3ÅÌ#Æ÷}æï»„Ζî¸_à~Ó8윩Ê|6Ü´½Æçmž·yÞ¦Åæ›[l¶V²çÏ žLÑïÛkÀù眷,Óý²ûe÷Ë)¿ï²WÈ^!»©Ì Æ Æ7 †7Û.œ©p¦Â™,Ï$_›|mòµI O O OÝ6Y{FíµgX«Õó~çýÎû%_Ÿ¶\Ý[Ô•±‚±ÂZÑ q8Hd0k€ €¼–|\÷0ÓÃL3•w)ïRÞ%uÃEÓâ îÜ7¸¿3ÿ0%|øs6g ;«µªÖªZ«œï‹‹‹OZÕª)úývÚ·Ó¾–|ôS?¦~Lý·=ŠiöÙâ+‹¯,¾Ò²äc{Œí16åí¡Ã‹/:¼0•cú·µ-ûæî›»onkWúç_þõç_©Õ¯E]‹ºe÷‰Ý'vŸXË §îÕÙÂôŽkŽ`éÎs€%``¯%×5—›ËÍeËÿÞøëÆ_7þÚGÝœ}söÍÙ¦±‰Ê_(¡übÇÅŽ‹½»{w÷îž|ù‘‘‘ï°}ÌpR™¤2IeL3û&_fЖ -A[V-Xµ`Õ‚ËŸ\þäò'¦;eú·éµÃ¦y‚­&E®¹RäŠ-ç™Z×hÛzPëA­Y+­ê̪3«Î|·è×d綠“öN²Vþ‚€ R÷¥å–ÿ6§žTOª'­y8šòó™zgê©w¬kù¾åû–ï{ÛOSòWg‹ä_I½ÿ»ýßíÿŽç6KÀÀ^³}$¨ý5ûkö×¹.r]äjKÉ/}^ú¼ô±¥ä†¥–nXúÿj8ãÀ¿}þÛç¿}žüèꙿÏü}æï¦“¶”°úÁê«'†¿=ýíéoO“/-å×hŠ~Û¶lÛ²mKkåTYQeE•wÛÞm{·mJî׈ A#‚¬Î;ûé‘O|ú!?¦Éæ/ß6W l²ÊšFE§üX~n~n~n–GÉÛ3oϼ=Ms~ø'Ò¡ ‡*ª`펌rå<Ê™A°DL à5Ûà¹ýæö›ÛïÝŽ2¬ó°ÎÃ:'_þîF»ín”ZgþaJHÝÚ¶¥Óxk§UN«œVY+çuôûN¢‡Gn­ä¢ÇŠ+zìYȳg!ïãM4Юv»Úíj¿ïè×Ä?›6ÿl–Gqží<Ûy¶)ŠþðŸÊСBX«]íwµßÕ>%å›Ïìk)d`ÈÀiõD2ÅÛÖZxà‘À#G€X"&ðší#tSrÓ+‹½{ ölí(ßçù>Ï÷y>d|›à ‹&,š°ÈZ õëÔ¯S¿NÊÏ3ùòoû¿íÿ¶OÝk4E¿æmÀ’ÇV­[ïô¼ÓóNϔߣ„m Û¶™Æµ[«ÖòZËk-O«Oeò£`{µèÕ¢W‹”Ô@ÄèˆÑ£­•µ6jmÔÚ´ Y̓^Ë—Æ?™õdÖ“Y<½˜#&ðš-°ùËSr¬¿ìøeÇ/ÖŽbó÷0ÓÃL3¥üÌ?L ©[ÛÉïkŠH­½Ø|†Ô”Ÿ¿y9o;;ìÛ^£éº:|Õá«_YÛ«²ZY­¬¦Vôk"å’rI¹¬Ñ|ÌzZ}6+++¼¡> g*œ©p&S½½[ɦ(ݲdÓM¯ OÛçÒ߆ü6ä7kwÇ4S2Ooæ€ €¼–|\Wéh¥£•ަֱLó›_Y|eñ•ÖŽ¸mݶuÛÖ¥üÌ?L ©[ÛÉﻯ÷¾Þûz[۷⃊*>H­ó4Ø.”£PŽB9,eÎ¥äMGéx¯ã½Ž÷’o·Co‡ÞMÝû2}ÿôýÓ÷'ÿÂó´ €ÇwpÜAkgh °ß¶Ìc'Ž8vÂZ™“šMj6©YzxÁò¬…³ÎZhíÛôÙ¦ÏR7hYµ`Õ‚U ¬±Åæ›[l&¶ôçwžßyZÛwƒû÷ îé!KþM£À»n꺩ë&[^?¾«ý®ö»Ú¿ólàÕÀ«—µãü þÿôð õîîÝÝ»»åºj®š«ö¶w¼\™reÊ•±,­Il“Ø&±éç¹dºïÖîNã—_6~I À00€×’ßζ;Ûîl»Ô=âÑëG¯½níˆ^ƒ½{ Nù™˜R·¶“ß×§®O]ŸºÖö=±æÄškÒÜ}j÷©Ý§æ´™y`™ºçizi¶µã.|¸ðáÂéáúk±_‹ýZÌÚyFîŒÜ¹Ó–r’Ÿ×9ýü‰ù¼ãÖæ„æé À00€×’ßî¸_à~Ô=¢ù|®–J÷(Ý£t”Ÿù‡)!uk;ù}ÝZ»µvkmmߘú1õcê§ÿeã6ÇmŽÛ¬ýß1wÇÜs7uïK±?‹ýYìOkG¼üÉåO.’êóʵ+×®\³vž?nüqãm©ó™›-_µýtèÓ¡O‡¦ŸçÒÅB ],díªK†— /ÎÓ€9``¯%Ë=oó¼Íó6©{Ä'³žÌz2ËÚó×Ë_/½”Ÿù‡)!uk;ù}óµÉ×&_kû&†'†'†§ÿõ†¹l¿ì÷e¿/·­Û¶nÛ:kÛ8D:D:DžvzØéa©užyBó„æ±ú‡qWã®Æ]M?ŸÓšJM¥¦b- M¾ý˜^»]|eñ•ÅWZ–`š“;½=—äxãAŽ”?%|<€ €¼öá`S™ÉG})?óSBêÖvòûæ:žëx®ãÖö}éóÒç¥OúoQÿ‰~Ÿ÷{Þï¹1»1»1»iß¶-Û¶lÛÒÚöu¬ûcÝSëîØÅÛÅÛŧÿú4™3jΨ9£¬í¾Þûzïëmm_å†rC¹amß¿íÿ¶ÿÛ>½Í§û¢Þ‹z/êY;gûkö×ì¯ñô`Ž˜ÀkþÐ÷|ïùÞóµvĢNJ+z,ågþaJx ÙÙÙSrDSÍXÛ÷aÜø‡qé¿EY‹~M®o¿¾ýúöä÷]±kÅ®»R~ž¦Q¤ÖŽ[.¶\l¹ôó9½ÓóNÏ;=­íðæÃ›on­ýPâ‡?”HÉ|Ûž©þ­]¯‹‹‹Ooæ€ €¼–|Øv¶ÝÙvgÛ¥îM/òµvÄÊjeµ²šò3ÿ0%ØÎôJá”±ÒÑJG+µ¶¯i¦ØôߢúÇôécýš›¾úþéû­•P8®p\Ḕß#ó—'[:×à\ƒs ÒÛ§µQ¾Fùå³<Û²ÕÊV+[ͲNLãh g*œ©p&˽fìž±{Æîô6ö×ÄTÿ)Ÿ)Àǃ˜ÀkÉÇu›žlz²éIêqƒû÷ îÉ¿æ7ågþaJ°ÝÅB ],”’#š¿ÙÒîF»ín”þ[Tòѯ‰éõËÕZUkU­•µrz×ê]«w­”Ü)­[=¶Z+ÿwû¿Ûÿ]zû´.;½ìô²ÓÉ¿ÌÙ|ûa;Ãv†Y{ÑzLý˜ú1õÓglz©µµ+­:³ê̪3yz0GL àµäãºÑ_Œþbô© ë<¬ó°ÎÖŽhþSræ)¿öÔ­çMŸmúlÓg)9¢ùk~-ýøKà/©{榑¸þIÿ»Ô¯S¿Ný:ï»V4<Ðð@CkåØ}b÷‰Ý'{æí™·gÞ»]]s¹¹Ü\¶V¾):MoŸVÓ‹¾·9nsÜf˧µë¦®›ºn²ÜÒ4×rz~.íøeÇ/;~±vwZ.k¹¬å2žÞÌx-ù¸Î|”d*,»1»1{™à2Áe‚­qcÑE7M°ijjÕó€óÎ8Ÿ’sÞ|sóÍÍ7­íx$ðHà‘Ô €½»{w÷îny,S üþî‹9ÓlÁÉ}·’‡Ž:fèk%¯Z°jÁªéó3ÛzPëA­YžsÅT|`úwbxbxbx¾6ùÚäkc¹åöùÛçoŸŸ>Çþš¬\¿rýÊõÖîNè€Ð¡Òóùøð€ €¼–Ó‡*ªp¨BÊ%T* ­Åþšý5ûk·Co‡ÞM𩉧&žš˜ò«NØ–°-a[²Ê(›’sŽ-[.¶œéå½ï{æÚ›³oξ9ÛÚQzŒí1¶ÇXk眺ðÃL3=Ì”|™Sœ¦8MqzÛ’ç7™ßd~ke¦çùq“‰úñ=Ç÷ßcmÄy±?‹ýYìÏÔýã†÷!ùy ,X@ À00€×l €åk”¯Q¾”Ä-¯\^¹¼rI~V×VãZk5.µÎÜ–rÏu<×qk%¬ž¼zòêÉ)™ÆwpÜA[êÙ–Ò:]èt¡Ók%´éÚ¦k›®ïûœÍÃÅ÷q_,­í»¶ïÚ¾ÖÊÌ‘;"wÄÛ–ošå×Z™ý¾ì÷e¿/ÓgÄødÖ“YOfåí™·gÞž–g>~Ãø ã7X»®000ôš×¿%ó׃ó `BL ൜6›×q^Çyßí(ÉÏ_kòWŸ¿úüÕçCÎà[2¼dxÉpk%¸_v¿ì~9%!“”KÊ%å2lN­8zxôðèáÉ—³ìô²ÓËN¿Û9½~ôúÑëÖ¢qSèøxåã•W¾¿ûbMÃÒ K7,m­ä›[ln±Ùö£u}ê¦çˆ±óá·;¶<ó Ù+d¯=ùqíé?:5¯˰ÿE½õ^Ôãé À00€×l€M¡à’¬K².ÉjKɦfdñ‘ÅGO¾ä^ ¼x¥î™ÛR‚iÌqòåtøªÃW¾zÛÀÌ4ƒ©Ó*§UN«Lû&ÿêæ·-¿ã½Ž÷:ÞKþeÚ¦×äšæ]¶¥Ì#Ÿùôȧ汷¥ ‹&,š°è}ßkL/¸N¾|ÓLɶ—YïÛzßÖûÖZ&u§­¿ìøeÇ/¶~.\ ¸”þŸH¦:·ögïö¬ð1 &ðZÎwÒ$¶Il“Øíó·Ïß>ß4kïÓ¡O‡>z)祜—ršBbïîÞݽ»'_ŽólçÙγ/”¿PþBù· S4n,º±èÆ¢¶\¯«æª¹j¦ï뽯÷¾Þ¦yMa•éü—$.I\’XS©©ÔT,KX±kÅ®»R+½_à~ûl9óZËk-¯µÜôïËŸ\þäò'‰á‰á‰á×·_ß~}»Áßàoð:f蘡c’©ìÖÚ­µ[kÓ|ÆÉŸíû €ML!´µòK -5´ÔPÛ5±ÿÄþû[+-jmÔÚ¨µéó“kú‹B9 å(”Ö–°Øq±ãbÇô?ö×TçÖ®âçN?wú¹/`‰˜ÀkɇFɇm)aO¼5zkôÖèw‹sR!hÌnÌnÌ^{Fíµgä|oLóé¦Ú9›9òèÈ£#r¾gùë寗¿Þ?;þÙñÏ[Îó}À¦?5¨ø âƒŠ¬%t@è€Ð¶ñäÜ“sOεVÎÔ;SïL½“žãÆJüP⇶ü™EÜÕ¸«qWÓÿɼÎ3î+¬|xÀÀ^³%®¿aü†ñR+PÌš'4OèÛ¾ª÷ÝÎÜ1õcêÇÔOÝÐÔ4š6btÄèˆÑæ/a~áèéa§‡ö>¢_Ө߃ÕV?XýCÎÍl ±ˆXD,’|ý›æ3¶¥4k/¾n_ª}©ö¥ÒsܨÜPn(7’¯ó.R©‹”QžHæun®²ZY­¬òÄ` 00€×lëä,r9K…ì²WÈþnbÓ‹M/6½x9þrüåø”‡j©4>Š|ù(Ò|tò»]ccc£µWçk“Ü’’Ú0½ØÙt¹#rGäŽx·ó7p~ÀùçÍ_4V÷%y.tºÐ邵cÕ¸_ã~û¶wì¹±çÆž³,¡øÊâ+‹¯LÏð+—W.¯\JÌ*1«Ä,kõ`úäf€Q³ÙÙÙ­]‹i$=cXCL ൷랷yÞæyÓÿíº©ë¦®›¼{ ö\äJ‘+E®8nsÜæ¸­Lp™à2Á¦ÙgM±ù‹vÓÜœ}söÍÙ¦³ývÚ·Ó¾fº"SLkºFÓèØ€K—.™^ù3rgäNSˆ•¶W<þxüë»ã½Ž÷:Þó©ëS×§n±?‹ýYìOS¼]8®p\á¸JG+­t´ÃW¾êðÕÂJ +-¬t·íݶwÛf¬˜-ågkš»Úõ¤zR=ù1ÔCÚÒöj{µ½–õoooŸZ8@¯€ €¼–ºã5ß÷ˆÏôYWç½ÖÓuËšéSµOÕ>U©¥÷ÍÚ|Æ-6·ØÜb3õ yÀÀ^#L¶­Û¶nÛ:ËOA²Ê(Ë'âýyò,äYHÁ ,`Yÿ;Ãv†í £þ$˜ÀkÀ€‰i>]Ï ž<'X~6ßÜ|sóMjé}0Õ­e{w÷îîÝÝôZuj @ò€ €¼F ˜ÛôdÓ“MO,? m[¶mÙ¶%Ÿ‹÷Á¼nÍmÞ½5š:` ``¯ÿ‘ݘݘ½Z«j­ªµ2ÿ,8nsÜæ¸íAŽ9ä ’R‹©>Muk^Û¾Þ¾Þ¾ÞŒý`;``¯–ä,r9‹å'bü†ñÆoàÓ‘Z&,š°hÂ"Ëz–ä9z`;``¯ÖtºÐéB§ 柈üõò×Ë_OGÊÝ/p¿ÀýæõiÒEê"u‘¨o‹˜ÀkÀ€5·Co‡Þµü\Œ,>²øÈâÔOJ˜êмV ”-P¶@Ù;=ïô¼Ó“瀷EL à5` y«'¯ž¼z²ùç"wDîˆÜ|FÞ)âÍš'4ÏÂõµ}×ö]Û—Zðn€ €¼F Ø¢ÇØc{Œ5ÿt ùmÈoC~£fÞÖàŃ^l^“=»ôìÒ³ 5 %€ €¼6úYr õ˜<^ùxå㕦oÓ¾Þ¾Þ¾ÞGáO%lw5îjÜUózküuã¯m^·Ô€wCL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€N¿¦EÙ¼ìI£eo-Ñi´ìK£eÿ_¤Ñr0–Ci´N£åï4ZޤÑr4–ci´O£åŸ¾œH£åd-§Òh9FË™4ZΦÑr.–ói´\H£åb-—Òh¹üÁ—+i´\M£åZ-×Óh¹‘FËÍ4Zn¥Ñr;–;i´ÜM£%&–{i´Ä~ðå~-Òhy˜FK\-ñi´øò2–¤4Z^¥ÑbL›%2S-Ÿ¤Ñòi-™ß×B ºE :¡ÛØ„ àã¡Û8¦QL£˜FZä{[¢ÒhaNbf#f6âô?ñÇ3ñÇ3ñÇ3÷ð?i´|¸|pù`F@J€à<ˆ|ù òpÄáˆÃÁ݃»w7V2V2VRym×v\Ûqí´¶ÓÚNk»«xWñ®âÛê·Õo«3æi»¾êúªë«’B“B“BÇÍ7kÜ,•b{Äöˆí‘eË–üâý‹÷/Þe¡e¡e¡Œ9@ªž*=Uzªtzþéù§çGXEXEX¹ø»ø»ø7ÔÚ:*pTà¨À„9 sæÌ,˜Y0S–+Ë•å2òbF s/æ^̽˜¸.q]âºtîÝ=Z¥‘„ï ß¾·H©H©H‰ãP\b.Ä\ˆ 666n¬UÕe…Ë —;›ïl¾³yYJYJY Ç ˆž9>s|æ¸ßa¿Ã~‡!3‡Ì2³±ÖÖy3òfä1?c~ÆœãhÊ„«dV‹¬Y-4.`M[¡¬PVxÆâŒÅ‹áåÃˇ—«ˆ’åË)–S‡?^__Ï¡ˆÓÓ°§aOöÙm³Ûf§^¨^¨^(εu¦ÒL¥™J×<¯y^óä¨ÄìFæÌ™¡Ú¡Ú¡Ú*"·1ncÜÆ²Ûe·ËnsÔM0ĉ@uzÉé%§—X¹[¹[¹¿ÚÉ­Ù'Ú{5 §­0¿ÖÙ,úg+Óù©Së3èpøÐÖV¡™ñÃX'Y34×êñnc/K£un³Í.}ß×¥«ƒ}¬þ¦ú¯öçª&ª&ª&îËÚ—µ/Kö®ì]Ù»M@ãzû<öylü²øeñË^çÂñÀ@û‡:o/˜>É¢»mÂ_íémœ®uÌò׌AkXk-_×ÚzÞÁ9ÑO¬”¶G¯Xf1í»ˆÙk{jùwZ`¨b°S§@í½WûsGo½mô¶k?]ûéÚOM€ܼtóÒÍKIII¯¶ºµí¨ñµ–¯Þpgã!ºõòÑžeÐóÌ´ß—7ïýцæÓçÄ7w9±VÖkÚj«âL¶õùúÃ.ŽìôUG¯¾‰ýò^gM_³:guNy«òVå­8ši#†8hBn7»Ýìv³Q)£RF¥ÔÿÄÕùf'gíö›Ç 0w*ê÷ÉH§•2Y` ‡GCÕº¾G\ìwûx9Zš|Øc¶~»úo[ï{½ïõ¾÷»ÑïF¿q|ÿ¾Œsç2νìEá)­>r0ZdàšR«Âg9wÜ®Èd'Ozx4TÍOH>æûÃîàÞ¦i]/vÚ¦þÇ , ( ( àøþMO‹Ÿ?-þÆõ×o\_"èÕÕX¡Ô-êãaŸí²¬ûak_GÇøø“'ª:üçzâ‹÷ç¼þCà ¯6ŸìÙuÏü=ó÷Ì—••å(¤‡âD @êÒeé²ôÍÊ›•7+×ÿuã®þ­{O©Ô›ü‘{\ÃÆ½õ¯iQCT-wô²íØZsD}¶9L3L3L³bHÅŠ!vÀ›S^^îkçkçkWŸêÓ~³t‡óÜ0Õæ‹† zë_KZQuùcå¶ÏôM¶ÕÿûÀQ£:Gu8â€7ít‹Ó-N·¨ÿ ÕÅydó 7›}«üöMmظ·þµÏñŧòÖ{Ë©çàzýU0¯r¯r¯ò»Ûïn¿»#`ˆ0É*õ)õ)õñžê=Õ{jÝ'¢F5cÔŽz›ní]5aò¯îw+ô•WÏÅúÃÞyÀ˜Î-;ÿ‡ ïty§Ë;E…E…E…ô aå®É]“»¦>yͼOYéìrZÚX¡¯¼úìbN…[Q²ÁŠ'áõÙ—-´XÐâÅŒ3^Ì  ÆAæ sˆŒŒŒ¯Ïzd\9YsQ´ý”Ø¢,߯ }åU›”UNûŒ>;!µ>ûräø‘ãGŽÓi †8 +s¯Ì½2·>§»ú >Óç¾ØâÞºë uoo[-ͪvJª—ëÞ»¬åY˳–Ó€×—XXXP÷ºãêl­£_p?uŒãh±…¾òjåó}Ýóbo6½X÷ÞÙ÷²ïeßëaòÃä‡Éôàuüéô§ÓŸN#LF˜Œ0©{õé:itüô‡÷~,Èy ¶ÐWnüvd´Ûôþªuï]ÔÁ¨ƒQe²Y]P\À'`’rÊì”Ù)³xïà}sw£¼ÇÁþ?»ÎR¬è·f­ôœ<É}kD¸Ó “«uïo²}²}²=½xiWeWeWÃÚ…µ û‡÷Ó§x~sÅ⌢„¾òêÝé6ÎÞ®ÖÖšÚêÞß?îýqï{4àe«««uîØ¹cçŽòVõÏ T;WY-ùvfê—ŠúÊ«½õæ¸EV÷ªú©ç§žŸzV–T–T–Ð!ED q" Ù!Ù!Ù!uŸXîqóúÞÒOqC_yõ×3}iç÷o5VÞ¨¼Q™>ÔËVÙVÙÖ¹þsýçúË[Yzl1º®Ñî+Ó†;·Sôè÷oµøä!—Õwç´0U«{m½>ôúÐëCi@}T¿ûö^èÓÁ{Yàf‡«qŸðPôè·fµ]ñý“ƒ‡ÛŸ7½d•-oß'$OHž\RRB· 0ĉ€ÂË›;7÷ø|ÙhlªC©ô¢ßšµx¡ïR-‹©:vZÊòÆa[ô¶èmÑô  n‹”)/’»šøG ëiØõYLÎq·ß$ý jÆýX[k线cÜL»™v3žÈóHó‘æ#ͶémÓÛ¦Ë[MÌÆÌÚá,¥ÐWXömxñK²Q䇻ü¦Ê‡ÉË'/Ÿ¼\æ(s”9Ò9EA q" À®Y_³¾f-ïÔ±}J»ŸÚÚßýmBX¿ùÒŽ~kÖ§»þë7tl· ºyòFæ¨ùQó£æô@hò:åur£ßE£&ïêž$sÒÓÃ@ÚÑoÍzþç­‡ì÷˵LµLµÌÇ:uëÐ?€šž%>K|–ØÇ·o_yëˆÅw þŒ'íèWX»ÿ6aàœ3òÆdÉÊ%+—¬¤Š‚âD @!• (P6@Þé¢VV»!m[=ôð3sYÐt¢ßšµ"oÒe÷úvÛ®+“7J×n\»qí½¨–q*ãTÆ)y«ÆâO‚ôÐi:¡¯°^JJYípAÞøxÍðšá5£*¶*¶*–^ȪdU²ªÀE‹É[;ú„|u%Q·©E¿5kI~!†òÆgÇðÃw §•âG q" hžÈžÈžøøøÈ;Q¼S5ÁªŸWÓŒ~kÖg=®¹´Ú¥{¶ýÛÂQÒ©Ò©Ò©z–ý,ûY6mMÙÕ;ªwTå­ª3ÖŒùµó&YúÉ(¾M9®®g»m.¶»'o¬"Dˆ@G’Ú'µOj/o½0_8oÃ:•¦ýÖ¬]MFÝšÞLÞXddpÆ 5`ˆ0“b›b›b+ïäðâ·cö:øýÖ¬ÝüL]æË±ùçOœ?‘¾€&ª¿¬¿¬¿kŒkŒkŒppøÜâûÃ^L=.sÿ’è·fÝk·*±oykë9­sZç´h.hš ƒ ƒ ƒä­&ñA¾6#ôý[5Œ|òcÝÏ=¿ŽX'õNêÔ+Š+Š+Šé.€87”´”´”´”ê1\š´4iiÒÃ<ä¯Y¿"` ã¾Ù}³ûfòN¤S—Êë3”¸W^=7oÔ{+y£—g“g“gC@S³µ`kÁÖy«Ã}߃³ú]$î•W/ òëÑY8níÛ´oÓ¾MÅ¡ŠC‡è1hBd2»{v÷j{V„G7ïsĽòª½áÚªL{yßIV¬ X@‹ĉøõU«V9LÞ7ÂàWC @aLüjâW¿.¾šþ·Ó&"ÞúÔ]ÂMw ÇÐÐÈÐÈШòDå‰Êt46=Úôh“¼“«£ÍbZ»ñÖ]+ÂŽvwíô¶®Žšžp ×½·î½uïÑiÐtì,ÚY´³HÞÚjokš9— ·îj³t\R¢¼1¼‘x#ñF"à×WóÞߺ×0pÁà‚Áy“þÃ~#]¢ wëS+Ý'OtOêjI¿€´=ðtÂÓ òÖ Õù×!Ü­í¢é=?p­p$Ç]wyÜeú 6À¯¯:ЭwUê0¸n\è Ì0oÀ<á¿Ucàó+ĺ/[óújn—&oá¬Ð¨Ð¨Ð ë@ªîL¿3ýÎt¹}Ž9¸®ßÿˆu_¶~©9>¹ëGµœŽº,uYêB×€´ÅÆÆ W]ûÀýt_úqÐc?ϼ ï»Êå;—ï\¾C×ă¸a7`¢–¯“¯“¯#œÐUCUbT|_”Löpÿž@÷Õê¨SÆ]ôÇvgîÎܹôHÕ‚àÁ ‚ky»^ðE=3ˆr_­>09”ïâ$ïD´tSé¦ÒMôHÏó©Ï§>Ÿ*oþ·þ*"|wî«US•éq+ZGuü£ñÆ?¢÷âAüæ¿`¢*œÄÓ{dy–÷uj…ºc/áØê=×{®÷\%‹’EÑ %O=ôd¼¤2«£«\$Ê}º¤ó”í=¾Žm\˸–q<$(=%=%½–÷Õé_t{2b!îëT‡‘ësŽw”÷½å^‹{-îqa ÀÿÂà—E @¤J—..],÷1Åg&]rAˆûúÕí²á>í*á_T¾¨|Q™>)Ù¹#rG¤pÎÿúö”y=¾ ¾}ýz÷Û-úM“÷í¥êqÕãªÇô!H‰åyËó–ç…s¾Uè·¥Ž$Ä}ýj|dÒG 7G8Z#Z#šWDøßG\ÀD*5"5"5¢–TÞì×­ç%‚Û†ª™ó†]·^+ç¹»æîš»‹>)±4¶4¶4Îù7|ÒÊœûß6T¹®¿«~3á8çkåkåkч ·d·d·j¹à«‘ѹ«±+ÁmCU;¿˜¸#fò.ãÊúÊúÊúÒ€ÆEܸƒå! R®Ú®Ú®Ú©ùVÿñ}œSÅ©®>ÐïKÓÖÕ[{ÙkìÏbÞÚçk&¸¿/o!¬œ[9·r.ÝŠ®8¦8¦8F8Ï[öíi õ¹ØÔŒ±}¬↟4Ü`¦Óm¬¦šÖ2TÕçÝ û¨ÿàeãtW§è[×OMôËòÝ|ĶýÙÖûØt­åôRy©òRž®‘ð~Âû µœI™^üT+¼¢Sû“?ªdßêÖeì‹OŸw4ïûA??õ½ºtQ½®ž­9Më>×½ëxmðtóÍ¡Zë’Åëv²è*íë¦×M¯›Ò€ÆE,„Á5'%OJž”'â.~ZãÕµE}Oíûm®3‡ sT‰os²ØàÞç‚CÖ nó:ßu¾ë|éF@ã"'Â``¢s:ìtØé°ZþÚ¯yÏ£bŽ~¿>h·¸G-oþœuvøxë[Â-óóó§'@Ñùõöëí×»–çj|°7Øy§BÓÏ>3ɬ¹m=íºil^;aÞ@³O$æØ½U}gð ßÙÆ»tì;Œk׺æÏ?*9¢ärM<1ððan©z.Â1/^[¼¶x-= Š«<´<´ßѸi—‘#ûýX½=jÙº· ûÔç‘ÎÖñw?û¿›jÿ¿»ÅMñOŽüý7öߨOg °â’vL @–Ì¿.ÿ/pœ‡³âÒßÒG²_ð]+§t“窰,0ÐÃcl´I/ƒZÞbU¦W¦W¦Gg€"Êïß!¿ƒpnm?/ß,X Aé:—Уf‡^íaΧœ6zÙ~_ý[Úc´n¶ýQ<÷ÿ9!ËÝ­–‘:mè´¡ÓèLP\³GÏ={´p†·ýøû€ƒ-7"5¨°zT©Z N¦ÁÝqÝ=mêåÚ¤¯òÙçWË–E›mi,ÜÎìŒìŒì :ÐX€¥Aza00X2‡<ê¬ë®(1ªâÀ‘Îv==…Û_˜_˜_˜Og€":àtÀé€S-§£ü¨e}B Aé®ãßu·|?Èä!£¹3ÿ3¶[çŸëâÖ¼{Ø"Ϥµ–‘ˆ=ãäΑ×ÐÓÐÓУ3@q9V:V:V gx‡±ë/ï-·'×]{ ó½|¦æ}Ãâ €û†-º}¦päTTTéL@c!–i„ÁÀ`É Y`ݶÛHà7]wxu³ì$ÜþÜÌÜÌÜL:ÑzÕõªëU…sû•¶©s}ÅóÀdáƒëó“#ޏŸÖûëàÏr?ißeØÞlaj¼BSVÛw€tÎXÿŠKmâ£NîsÐkåóÍ£y}Î-.ýiq/ÝÏ;Dëd2°Ëè5÷¸lÒ³E3ÅÛŽø~Ð"áÈ/²pÈÂ!t&@<ß €¥DqÃ`` °dþ°Ú%Ì4…øM×_4FüisU¸ýmÚ´¡3@-y±äÅ’¹ýîÙ6ýBÅ×]+M~‰vß2¯²Ûàê}é¤Õ½í¤ÿ¥¥}êÜQl[;Ò«ÿÛz €@Úg¬Ý v»$þ;}Õ :èºA¸ýª‹ÕâÕËz¶ž°ä²˜·ßÞ#vZæIáöû?ðàÿ€Îˆç»°T)VÜL<ÿ—y6¿= ¿¹1ð·±éh-ûñô4%‹|áÚL±¢ßê7þºž±^©ñ×÷MêVªáG”Ö°ÊÛ½¿Õ5¨ÕÈÙFþôH[‡Oz­°)Uܸ¦ÞÅÁgÖçö;tZoxÌ“~Š(-%-%-…þf{7Ï^ÞÀoºþ~j̧½é7h ¯:ÚÎuŽøCßË^;Ô*>¶<Ý`AÍí·úÞô…VUn¯ÄÖ¶'ÿoµãöÏL›Øùú ¤MûË·œÒå¿K6Œ:žo]Ù.íÓ^[¾È[½º£yßúùÕÜ# óù¿®ÿCt[>aýãÀ@!=O~žü<™þ†;€¹аÄ|ðó1ÇÆ»ÉÂ"¦E«¨ïQ Qý¨z›õÛt\Ý.ù»V³ÍLž? ÌItûåÿÖYñØÜ M¢Ü,¯Vï…Λƒî§kîw4”&tpõ3ÐùðáÃGøN޼¸qßiiiFgòáÇ"~&/š¼hò"áÜ.Îw8îÈs4·ÜÕs±Vdõv¶;×î-•» 4vïò¨äˆ’Ë5ñ‡¾õy0ɇ>R:cU”w×'®¦f«Ó[_&¶XÞ;€?Hÿ ýƒt:“>|øˆèjvËZþÐ’‘‘Þ'=8=8=8ð­À·ߪô[ýóMèÀPÿ'„,°nÛm$ð›®» ¼ºYvnnfnfn& Šh½êzÕõªÂ¹ýJÛÔ9޾â J¯—îZèäÒc²Q²†RõVÿó±o6l°YRý3ŠýVW Sãš²Ú¾¤sÆúWPjuroc…£¶¢ûj[s{ŒË&=[4³þÿ }|e·Ñ«úwÛÓŠÓÖ[l;âûAŠ„#¿pÈÂ! ‡Ð™ñ|7¨ i¨n—&-MZšTÿзúçÿýз&` °dyÔ5X×øM×È@g»žµÉ,LÃ|†â¾gWœõé¯9Æn›„£­*S•©Êd§d§d§èIPt¶ú¶ú¶úÂÙÞ®Ó¿ýÜUl1pݱ®8Cßšµ÷¹à5C„£½Îwï:_ºи€Å©i†¾5)WmWmWíZîUê?¾sªbÅÀb®Ï×L p_Þ‚W9·rnå\º]qLqLqŒpž·ìÛÓ@ës"Û†­ÙÖûØt­å4Ry©òReº¤!áý„÷j9“2½ø©Vx1‡©ŠXu;Ù tŽöuÓë¦×MéF@ã"Bßš€ˆTjDjDjD-‚¾Ù¯[ÏK· U3ç »n½V8ÎswÍÝ5w}Rbilili,œóoø¤•9÷#¸m¨:r]WýfÂqÎ×Ê×Ê×¢@nÉnÉnÕrÁW#£sWcW"Û{ø³_LÜ3¹¯~è+ë+ëK7pã"ô•‡€H•..]\ºXÞ]qfÒ%÷Ä·¯_Ý.îÓ®ŽðEå‹Ê¹K $eGäŽÈ‘Â9ÿëÛSæõø‚àöõëÝo´è7MÞ·—ªÇU«Ó‡ %–ç-Ï[žÎùV¡ß~”:’øöõ«ñ‘I-Ü áhhh : Àÿ>Bßú  j©©©ÂÉ:½çA–g‰o_§Xø¨;öŽ­Þs½çzÏeQ²(YRòdГAOÉ;*³:ºÊõGBÜשK:OÙÞãkáØÆµŒk×’éIOIOIOÎüúÝžŒ@|û:Õaäúœãå}o¹×â^‹{\Xˆð¿ƒÐ÷eµ|||áÄ­ª£âû¢d²‡û÷D¹¯VG2@8¶;swæîÌ¥÷@ª/^\ËK‚¿(ê™AˆûjõÉ¡|'y'œ¥›J7•n¢÷@zžO}>õùTyó¿õWá»Cˆr_­šªL[ÑB8ªã4þ½à7‡Ð÷uPæ ˜7`žp*ߪ1pŠù¢Ü—­yýF5·K“ûxm ¥’ugúéw¦Ë[îÇ\×ïº/[¿ÔŸÜõ£ZN;]–º,u¡ë@Úâãã…«€®}àÀ~D¹/[íÆ~žyAÞw•Ëw.ß¹|‡®ˆpÃ"ôm(ÀÀƒ  äMîwøt‰&Ö­O­tŸ<Ñ=©ó-%µ?„#™Ú,µY*ë4 ¡ñ¡ñ¡ñµ `øð•†áºõ¯þ»-ؾDÞ·”G-µ|Äß@âžNx:áéyk…êü‰ëÇëÖ¿vÑôž¸V8’ã.»<î2ýà×Gèû&p¡€Â˜øÕį&~%œè}?4ýo§M„»õ©?$º„›îŽ¡¡‘¡‘¡Qå‰Ê•'è4h mz´éÑ&y'QG›Å´v#Ü­»V„ìîÚém]5=á®{oÝ{ëÞ£Ó éØY´³hg‘¼µÕÞ<Ö4s.ánÝÕ2f鸤Dycx#ñFâD: 6À¯/-%-%-…зaP÷Íî›Ý7“7õ§.”×g(¯¼znÞ¨ öVòF/Ï&Ï&φ€¦fkÁÖ‚­rí{pV¿‹½òêâEA~=: Ç­}›ömÚ·©8Tq¨â=MˆƒÌAæ`wÏîžÝ=áê``ãÑÍû¯ÜÇ>®­Ê´—÷dUÀª€U´@œ€__å°Êa•Ã}0“b›b›b+o1¸øí˜½>Ľ5ëC7?S—ùòFlþÄùçO¤¯ ‰ê/ë/ëïãã#\#>·ø¾Ã°SËÜ¿$î­Y÷Ú­JìÛFÞÚzNëœÖ9-š š¦Â Â Â yk„I|P‡¯Íˆ{ÿV ãŸüX÷3‡@Ïo…#ÖI½“z'õŠâŠâŠbº NÀ ¥æ}À„¾¯€¢y"{"{âàà ï¤úNÕ«~^D¿Ïz\s;hµK÷lû·…£¤S¥S¥Sõ,ûYö³lÚ š²;ªwTï¨Ê[Ug¬ókçM²ô“Q}‰~ÏvÛ\\Û}]Õ"DˆäÔ KjŸÔ>©½¼õÂ|á¼ ëTˆ~«kW“Q·¦7“7VÙÙœ±DâD @!• (P6@Þ)¢VV»!m[=ôð3sYÐ4£ßмI—ÝG ëÚm»®LÞ(]»qíÆµô ZÆ©ŒS§ä­‹? ÐC§)G¿—’RV;\7>^3¼fxÍ¨Š­Š­Š¥—²*Y•¬*pQà¢ÀEòÖŽ>!_]IÔmÊÑoI~!†òÆgÇðÃw §•âG q" À®Y_³¾f-ït±}J»ŸÚÚßýmBX¿ùM'ú}º+à¿nqCÇv› ›'odŽš5?jNÿ„Ö)¯S^§,oY4jò®îI²1'== šNô{þç­‡ì÷˵LµLµÌÇ:uëÐ?€šž%>K|–ØÇ·o_yëˆÅw þŒ×Ô¢ßî¿M8猼1Y²rÉÊ%+逢 †8Px¹ssçæÎU©Óe£±©¥ÒŽ~‹ú.uѲ˜ªc§%÷Âý¶èmÑÛ¢é@Ý)/R^$w5ñÖӰ볘œãn¿I;ú͸kkí\÷wŒ›i7Ón¦Ñ3yi>Ò|¤Ù6½mzÛty«‰Ù˜Y;"œ¥ú:ìÛðâ—d£ÈwùM•7“—O^>y¹ÌQæ(s¤sŠ‚âD @"²C²C²Cê¾D»ÇÍë{K?éE¿¿žùèK;¿º÷}£òFåÊô  ^¶Ê¶Ê¶ÎõŸë?×_ÞÊÒc‹Ñuvÿ[™6ܹ¤¢ßⓇ<\VßÓÂT­îµõúÐëC¯¥YõqwûÝíw·×½²téà½,p³ÃÕ¸ÏNxH)úµ]ñý“ƒ‡ÛŸ7½d•-oß'$OHž\RRB· 0ĉ€¤œ2;evʬî“ê)÷ÍÝòûÿì:KqCßJÏɓܷF„;­0¹Z÷þ&Û'Û'ÛÓ€—vUvUv5¬]X»°vu¯5)žß\±8£èÑïÝé6ÎÞ®ÖÖšÚêÞß?îýqï{4àe«««uîØ¹cçŽòVõÏ T;WY-ùvfê—ŠýöÖ›ãýYݫ꧞Ÿz~êYYRYRYB‡0ĉ€]™{eî•x(tµ]}Ÿés_±¢ßêÞÞ¶ZšUí”T/×½wY˳–g-§¯/± ± ± îuÇÕÙZG;¾à~êÇÑŠúV>?Ñ×=/fPðfÓ‹uï}/û^ö½&?L~˜L?^ÇŸN:ýé4Âd„É“ºWŸ®“FÇO/qxïÇ‚œŠúÚ¼Ù#-B'Æ6½¿jÝ{u0ê`ÔAY¬@V@W0ĉ€d•ú”ú”úxOõžê=µîÓN£š1j G=‡M·ö®š0ùW÷;b }ÏÅúÃÞyÀ˜Î-;ÿ‡‡†½Óå.ïÒ€†•»&wMîšúü«@3ï“FE:»ƒœ–Š-ô}v1§Â­(Ù`Å‹ðúìË‚ Z,hñbÆ‹/fЀã s9DÆGÆGÆ×g=2®œ¬¹(Ú~JlQ–¯èBß”UNûŒ>;!µ>ûräø‘ãGŽÓi †8ºtYº,}³òfåÍÊ*õ¶qWÿÖ½§TêMþÈ=®±Bß´¨!ª–;zÙvl­9¢>Û¦¦¦Y1¤bHÅ;àÍ) / / ÷µóµóµ«Ï õi¿YºÃyn˜jóEc…¾%-ލºü±rÛgú&Ûêÿ}à¨ÎQ£:qÀ›vºÅé§[Ô…êâ<²y›Í¾U~û¦6VèÛçøâÓ?yë½åÔsð¹úl³W¹W¹Wyõ»9â)!†8hBn7»Ýìv³Q)£RF¥ÔÿÔÚùf'gíö›Ç 0w*ê÷ÉH§• ô>Ðõ=âb¿ÛÇËÑÒläóõÛÕÛzßë}¯÷½ß~7úÝˆã ø÷eœË8—qNå%Miõ‘ƒÑú#×”Z>Ëȹãv¥aãÞü„äc±?ìîmšÖõb§mê3ë¿m!!!eee_À¿éiñÓâ§Å߸~ãúkýW®¶º+´‚ºE}<ì³]–a?líÛ°A¯Ã¯q®'Þ±xþÇë?4 òjóÉþ—]÷÷Ìß3Ï|ÙYÙYÙYŽ2@z€!NÀš¨ÓKN/9½ÄÊÝÊÝÊ]啘}¢½WÓpÚ ókÍ¢v±2Ÿ:uб>ƒ‡mmš?ìu‘5Cs­ï6ö2±4Z—á6ÛìÒñ}]º:ØÇêoê ÿj®j¢j¢j⾬}Yû²dïÊÞ•½ËÑ4®ç±ÏcŸÇÆ/‹_¿Lå5 ´¨óö‚é“,ºÛ&üðÕžÞÆéúQÇ,Í´ö€µöÑòu­­çœýÄJi{ôŠeÓ¾‹˜½¶§–·¡†*;u ÔÞ{µ?wô¶ÑÛFo»öÓµŸ®ýÄшÁÍK7/ݼ˜˜˜ôj«[ÛŽ_kùê w6Ò¡[/íY=ÏLû}yóÞïÎimh>}^@ìqs‡ke½¦}¡¶*ÎdKPŸ¯?ìòáÈÞA_uôê›Ø/ïuÖôÕ9«sVç”·*oUÞŠ£ 6`ˆ0€¦­PV(+sÜï°ßa¿Ã™Cf™ÙXk댼y3òΘŸ1?cÎq4eÀ'`ø"D>ˆ<q8âpDp÷àîÁÝ•Œ•Œ•^ÿ„¹ãÚŽk;®ÖvZÛimwï*ÞU|[ý¶úmuÆ m×W]_u}URhRhRè¸Yãf›ÕP£mر=²,`YÀ²€_¼ñþÅ»,´,´,”1HÕS¥§JO•NÏ?=ÿôü««+ÿ†Z[GŽ ˜0'aNœ‚™3 fÊre¹²\F@Ì€ ¯8^q¼"k`ÖÀ¬Ç,Y³dLx5/^$¼Hȉ̉̉Ì*É*É*9ßõ|×ó]^ÍÕÖW[_mížížížã˜ã˜ãX>¸|pù`F@J€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"þ¹‡$ÛGžc%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/publish.png000066400000000000000000001265221431412030200250470ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTTçúÿ}ÓLŒ9н Ø HQD±ÅŠQcÁ®X°‹½Ecï½ÄŽ5FcI¬Dvƒ"Fì±Å^cì‚yþØù®‡ó#Ã!20ÃæýÚkÝ+ëœ0ìÙsÍËëãÌÎaB.00000000000000000000000000000000000000000000000000000000000000000Ó…7Þ\x]1ºbtÅÃÁ‡ƒ¿jùªå«–\ÀZô÷ þ~Ôß›úû”+},@ ì±ì±€ÔôòÔËS/O‹;w,nNœ„9 —.\¶³àÃÁ‡ƒoš¸i⦉—Ï_>ù¼éé‰v0ïééþ~Ñß;úûÈRïJý=®¿ßõ÷¾¾páô±ô±},°Ç²Ç@vC dy 1 1 1æ˜s`Nã)§4žbg%Cƒ† :Ùíd·“Ýx]ý½ ¿/¬õ®Ô÷}Ð÷ ^},},@ ì±ì±€¥¤|—E}õQÔG\X0%ÝØuc×]£NŒ:1ê„ Ûä¿É“ÿK—/=xÕ`lzë5oËïJ}ßÐ÷^5},},@ ì±ì±@zÃ6YÆÍ¹7çÞœÒ/¤_H¿÷kær¼•ßÔõ¥›{™¶ó†”vY·½Q£ËžeE·øÀç’*¶\Y}2¥e¹ê\h>ÛûÕÆ„†e=ÆNj滲âÕfK_9¼LO+¹Âq…ã ÇÄ–‰-¹+ B¯g½¶Óóîh¶´vU‡—“š…†U¼º1aò±.,nçýJ™²ònõ ª¸êJõA‡¢—…ú\ÚÞhædÏ2󆇽pY×õePÇ2mr¯žßô~¿WßOô½…W`Ë}lþE¯^rCrA+„t”Â^¸>è7s²G‰Q~ËB«7jÕ•ªÕÇF¬¼ëÞaø¥Åí\¦‡ÆN>âüŸ¯»„†ÙßñîQ»*},}¬kŸºŠo0w[ß6«gû”_ÒµèªèJBȾñ. {6ÙtÎet·„uŸUî\|aP±iðèæN}¾oÕ¿ÄÃÂuŠÿ‘¿},öXó³çW/õ¹œ>£ÓçuúìNŸãé3=}¾§Ïúô¹Ÿ>d20l0`Óf'ÌN˜=­È´"ÓŠ¤½Q+é\hgÑ‹¼kOwu6<ø¿‡&Shhƒ–Zß®êã\RT®V…ªÿ2$Ì«•s¾ÛJFüñKÄ/¦DS¢)‘WYíOr¦DS¢^Ãÿ¶ò‡„u tΕkõµê¿¼]uÄ©þ$“)6¶AK­g÷÷÷{¸È{øM×Q%í¯ösÓ÷}ÏáEX«ÍŸP¬šý•Š%º|2ü¦OÃÓ·÷¯UkýúØXK­þË×->âTuïøÚ«¯•9Þ¤\Ç@úXÐǦE­ÉÝÊ•œÓóîæû.;&Þ<ó±÷“&;çãc©uàá}!U64w7ÀI)X"<ÿúXÙiVàÕÊ9Ÿ>gÓgn–ãé³A}N¨Ï ÙcË"†m"lÔÑÂG -œö†lº›_ÿJ¯ŒìUg£eÛÄ´¯Çº·ñð]ÓîIe¯RÓÓrέ/¶¾ØúâC‡‡xÅaûôZÕë6-ÞîI£Â¥¦ë¾±ï˽i_ŒKdÒ¶‰°!IS’¦$M™½töÒÙKÓÒxmöo¸Æ#*a¯Võz[«e4·Þêr¾ö¨¡¡Þy'¥å¹DW‹®]€mÒë3-•<4´S¬ó¤ÛA~®=ÊZ¡¯¹5at‹z½7ûO‰ñˆJËsÑ÷"}_¢–íc]÷]8%ÆoËê•Ñ-¬úš[k4]”ûÀÏe«4mÓ)–>Ù§ Ú=¦ä¥uÔaUKY+ô5·~3ïį[m«Í©_>†>@Öœxçuž¤ÏÊlm‚§Ïõ#{,ð~€a›€›ð¼ÖóZÏk5 nÜ48õ6kÞ€G—5oúôÞSßÏÖZFsëõ Î¶p*ÿÐqVêÏßüî¤)É”dJ¢*`eI¦$S’^“©×m §@OÇY׃ö.Xhk¡¯¹õMŸÏú~ó„=rY“ú³Ó÷%}¢(ééc+tïøKØ#ÿŽkÏÇxÚZèkn­>}þÚ½ JôôyèI ãõ±náõû¯=¬½TÒã[ }Í­¿:ý±÷ئmF7t*O À¶gå:ÎÒgbYe‚§ÏõÙ#{,vÀ°MÀ€•Ý÷½ï{ß×~“ý&ûMæš*ÏgŠº\-Ôiz€]ViÍ­š÷ô¾žz9J%’“N'N:M…À š;t:é´^‡©×ê°ÅŸz_Ï*¡¯¹õj¡ŸOØy>sq*êbî™ê{”¾_Q!€´÷±…Ëuqª^|^½ŸOe•Ð×ÜêÞpøšÅŸÒÇÂ}l—;«VÚ‘UB_sëÐFB}²¥Ý\ŸЦ`K³‚æ=½¯gõ ž>‡Ôg’ì±@ê€a›€«¹3ôÎÐ;CSogœ÷ÿ¼rpÒ³ÐOäÊêcòõ¾[·FuÚù>,•³˜dƆƆÆ& Nœ4˜jA&ýqnpÒà¤Áz홫L߇+ŠI÷Ý~‰¨Ó.«G¿ÉפgG_5È5ãüÀ…•ÿÇç·ô½‹júØÔÿ{Q>¨}Û k}žtôUV~“¯¾¹—ôü%¢h‹Jù“Ôç“ì±€9À°MÀ€<ôzèõÐëümÁ{Íz¿5R˘r}[³Ï‡õûâßyйë0øÙàgƒŸ™"L¦*(ÂaŠÐëÍì={†t:é<åm͘ßë÷7Rô›r=poqˆ÷ÛÔ÷(}£p€>6%÷ÎÃo-1Rè›rõŸ²®]Ìïe=švèt’>¶ßÇŒìþ[ÉË÷ŸÞë½ÆPÑoеkÉUñ•dúX™;+ðÎï@ÆÏ †¹Äës­ì3ÇÓç–ì±@rÀ°MÀ@fùÍô›é·®}»öíÚ×\“ŸØ®~Í«Ù(úM±.|Q{k¨¹ë³OÞ'ï“)%X–^Wæªná‹á?»†fŸÐ7åŸø}Lͫ殾§éûµÙ¹õî>uß÷1Ù(úM±V´ë|eøÏô±°>¶ù'ãª;È>¡oʵÿ¼Ÿ¦¸Ý¢1³‚Úƒ\C³óOŸa²Ç:`Ø&` “„ ?~Ä\cÓ¸õ¶»³sã˜|èYãdÅ^æ®ÕµŠ×*^«HE!ýôZ2Wi={ÇUì•£ßäkLãpï»Í]+}£¢ {ö±žS'œ ÷ÎÎÑoòµÜæÖÅzÇÑǺ}lý¹•¾™£ßäkïÇ? wí@ Àr³‚'+öbv§¯ú<“= †m"2Ü¥§—ž^zj®ÚÞªÑ5Ïr´ŒÉפˆ>ë¿ýªI…`ÇŸ¹Îsç:ï]ûwíßµ§ºð~ôúÑk)e}Õ¤nqǸ¤ˆ£Çê¿%úM¾no5s¶g9s»™¾×Q]}úX×§ëΜMèû_÷6…_èÛÛgc|>$úM¾—\ض‚L }³‚ ÁŽqúÌŠÙ]òUŸm²Ç";#¶”ý;÷ïÜ¿S¿†Ó¶NÛ:më£/}ùèK®Ìû!2PRHRHRˆû÷5îkRþg ¬®×zçÚ´‰æÖ§a!êú˜kWÍ\5sÕLj ïG¯sÕõ4Lñ¨ëCÜkn «Ûñ–sí”×Mßëô}c÷±e^6ÙÔñq¯¹µæ†}úXd~;.÷±ù^yˆ{Í­µît;]r},€÷„tªëüÎܪÏ9Ùc‘=§ß»–ïZ¾kin& ~?À@Ú¾bûŠí+Ìm[ û{µª×›1õ5nW›¾wÍ]Ã{›îmº·‰JCÚé5c®¢âvmà{—ˆ7õ5atP½Þf¿Õ`ÅöÛWPi`ì>ÖoËê•ÑA½©¯^ó'Ûo@‹ÌécûNÚñÔˆ÷¬ßÌ;ñÄë},€?+h³Ã÷.3ºÔW}ÎÉ‹ì‰8ý’ö7u„ÁiG dˆ^ÖËëÛ7^î¦}ujô¶ûDúXd\ز÷ÑRñ„»i_CÃìíú€>@ÚfÕš–¿Â\.í«>ódEvCœ~z «‡»viFœ:` C|—û»ÜßåN¹%õY¥dþÎà¿^Ÿ YQ·ƒ¹þjôÕè«ÑTR§×‰¹*zVPÙU·±î¿]{Œüê«2ÿð}}¤êÀH}l)‡À¾úŠ@÷_´²â¨²‹>×ÇŽkWÈ«±î¿]«ÿú[‡Vô±þ׬ dEÝÌåþíªÏ?Ùc‘}[a°¥–è•è•èenº=£ËÃÚSißoÝTµ¡¯ÇŒ”WµßØ~cû¥ö:½NRÖϦª“éïc[,˜¸µÜâÛô¯ÃŃ}écöØÿžös[Ãü-ý«> eEv@œùƒÓ‚°˜n ¸1 å¶P¦ôòâ{hû,µ>\Õ}A cÊël```:n:n:N5âoÇMÇMÇõÚHY3W ½‰o-µ”ñºY|OÊë¬ï#dÅ>¶XI—u^7 n-µúî]6ZèM‹ô÷±£#c¦{6"¾µÔê<¥Z"sècöØÿ›t_èÈüÍR«>e…±[a°9À€Å¬(µ¢ÔŠR)·’{š÷~lË­Ø’CuFº}®ŸíÅf$ÿ7¶ß>6[äœèð2åÕ¾•çVž[y¨FèôzHY'ÍÕvwxikªrk•WõZ½Â[Å–]WÅ¡B‡"‹Î(¼;ßë ÓËzZÞ¬FÀ}‡ësê©åR*aztåzmíüìYìëý8åÕÖ÷Fª²bëÞzxÔb_›ø åØ5vÑw*8wx;äu‰ª>AuzšPÚÝÙ9ßÕBÑEý¬¢›ûpÇûµþh:°ê÷ã‹®ÞaË1°ýïnµÝécñ~}¬kïº ‹Ï*Áê„Î';xW*ß«z\‘sß郈Fî]mí<»æ\µ¹ÒúX€=VŸ5ÙÂÔë­_Ÿë÷/p*ßH»ûvïåöò.ÏjÏ´…ç¢ÏEÙcalÀ¶ƒ089`Àb\˹–s-—rûxV3dkÝ Só„æm`çרԌâÿÕøÚ~|оù&ŸÏR^íÍþ›ý7ûSÐéõ²NÚ/žíó™MD§ybó6°ò ãzg—ûǹ8÷MŸûÆÚNü¬¦r¼nÈ?Œ)˹–s-G5@VìckYq]9nݸÔgØÌB?–-üy™;:¤ý¿’¥:Öܲe-»õycóÚZìÞgÄG‹gÓÇâýúØ®ÕW½©“eî°+t›Ur]Êgakç9®_œ—},À«Ïšlaêu©VÇ¢µªÚ¥ƒíÀú\”=ÆFl›ƒ € x¾úùêç«Sn¾JÞ/¶Ó–£ß)‘5'Wú‡¯û³ýøÑ˜³Ržy“°&aM¨IèôzHY'ƈWgÙBh:¿ðС.Úý¨¦óõÂ߯ì6®Q•ÇKo:\óCý“Á³ºŠ®¼ÇÁ¯x—Ÿ'ÿ÷?‘?üÃvb`ß ]ŠíLyÍõ}’š€¬ÒÇ ¬xÓ£‹uƒRÿkáã¶,vÎíFµø¿OkU¾Ãùë—þíËÚù¸.Pb†÷‡S¦l p;"`ñùRnW¾ZfWËnƒÝ±äÏÅÖàšvËW‰Wècñ~}ì˜õG {.³ýè·ýös*¬07V³Ísvêì9©ðúX {Ï zβ‰=Œoãó_·?[|´Ž£ë©åó§ºíHËú|_Oﺶ3ÇÓg¤ì±0*`Û—=Ã``Àâ“â“â“RnËçNuÛa mÖ½¾ÝrÔqùaP#ת&¾ò-QqqÕ«ŸùËÜÖ–î#ò*´wƒúEBóË‘òüßå~—û]n*3;Ók em -t"_„éUìáõ­”&ŽŠ¾Soqé'Žÿ)X\?7ï=®“‹.ÔÝÿ{'þ¿?¥ÿïÉÊÜ¿i­uùü1Ýv¤¼òú>Ie@Véc+9u¯?¦ uƒÒ*!a'çÿ×_UtíÕÖôÖúÿ›2ÜÕÿ—rkZ%õþQÿç½rWiïc ,,ì–¯æ¤ çNúxÛrô;Ègù*¿ÊQtg¾}Y+nñÓÄëåVÑÇÙuVÿX¾}Öd S/=îÕÏ­rûâ5 ûf™y™UŸ‘²Ç¨€³–ì~>ü|øù”›Â‰ƒm×\n mÖ†ó "<|Ó¾e•öqÈ`¯VÎÿpþ÷ïÞ¤2³3½RÖÆÁk;ÛD\1`ÉŸÖÉÏíçsóxKK ›ü§ê)5Û'ÚN|âà–¸šËS^y}Ÿ¤2 «ô±Þå¦<ÝgÝ Ô¹M›†}×èçS0ÚñnY¯´|¥sõõóí}õþýÿ? lk1p™ãMÊv¬M‹´÷±µ&us*9Û–£ßñ%öê[æã*½ ñw§º¸ß/¥f•¸ß‹ÝcÜ~¦²ë¬À«•³ MÃçòŒ+'éçÖòJ…'%+dõXŸ‘²Ç¨€³.c‡ÁÀ€„:…:…:ýÃWÇÄôè¸ÚÚ¬ÓÚ7ñ›°àÓ€.¯S®Y7þñ\ã0Ïq)Ïÿ؆cŽm 2³3½RÖÆçfòg AéêÀñjáý¾ÌùXÀÆf¾KõŸ².z;ÿÛùð£É>ð¾JTß'©LÈ*}lÍ’Ëc%{ëF¤¥“¾\ÒîiÁP­ô!Ç.þ×HK”[ãÀâŽ=þ!<³±ØÍÛ¬Cô±H{|~ÑÊ ïl9®V¢u ‡‚^mHÀ…bî÷ŸÞç½&«Àcmë¹>È®³‚ÆažãlgÞÕ¤­sY‡áùj[+κÑïß·r‹éÑ…YŒ‹ØŒàçç÷_àæÚ§cý¶ß„eÝ8>¾]µšçRžÿ¶[Ûnm»Eefgz ü× ÅÿCÍs¶”î‰YPÑ;Oß6‚ÓèÁ¹:Tø¿¿Ûûo?=ìïòyQ'Û €ß¹YVcÊ+¯ï“T&d•>ÖϺG–ÙÜ—'§a­Ô²ûÙ1'’nØ6`ïS×|ÿ},ÒÞÇöûSˆÛÛŒN¿Z>)¬Ü]ý<‹÷(S¨À·#GÕ©::k}ô·ÏŒ÷Öècì:+hW­æ9ۜԭ\·z•âúG8j¿+ó¥½c‰&׿?íæbß ð•àž•ÅRÃsÖÿÑ}¹)OhÞ6:ÓÓg¤ì±0*`ã1FL dÈ_dYþËù´¬£fÝøŽ_W÷Ú;Sžÿ¬m³¶ÍÚFefgz ¤¬;~ûÕÞi;_˜œò‹Óòo¶–ë/ù÷'€‡Æu.æ¼ÂÖî\dY¡gù´Ú[¶ÞÇæ›\p}¡g¶ôVë8ûñ®x¯S“Ÿnžìî8¼ø¢.e\9·ß•ü¹T~ÞûÕ·ƒm3®1fѪƒýèc‘ö>vÄÏZª l-4 íº=ÑõLþæÞØý–/4_»É=lÞã²1yЛU`}-ð}áÖùécì7+èê^{§-LºžE…\¬;)ù¹Þ’J¾¹i ¾œR®p‰øÑoܲÍ9ž>/eEvøS°‘dÝ0˜È-Þ?W©ßŠ× Îèõéü>uýSžÿàÁ!ƒC¨ÌìL¯”µñt¾Ò°®¿mÀÿ㓵.G–Õß8¶uwšþý銾E+æï}sÿþ!µKØÚÙúçò¬]¼¨€¬ØÇ=X¹½gmÛ€ ]*Óºü:3ös×ÏûõšzÑ–Ï¿æÖc”†ô±H{;®Ø±ï½ ØNP:úMÌsÏÎc öÖϰYñ1«BSF¼Y+.7Å{R‘jô±@ö›„ô©ëo÷Êý°í¬šÿá«’‡z´w ü±Nc_Ï`ýßùévÓÖ^ëû7¨ÚËév¾ìúÚý×|Ï6? ¬ÏKÙc‘þTElTY+ Îa;o ÀHZºVØU2pF¯ ѽÚ×ëK½!í¢£;Ô뛵¢_ýŽ¿uOTŸg¯üßßÿ-T-ß\ù㇪ÅÛÚgõµ¥kÝØ’9¨7ÈŠJ­îR76ëÀÿõ¥‚ÇœXqÈ6Ïßï‡Õ£;PoH»o–Hòºc_•¼úlï{U6Ü]üïÏÜW]×´‡ýÒIyÏåñù‡p7kÀUV4t(¾˜z²ß¬ Wûz}maÒ1 ¨ÌÿÝò©êU‡O‹üµ½E£«žNÉ'x)ê—ÎAc}fÿC lcs<}^J½ÈžöïÜ¿sÿN` Ëk߬r›R« €3z}ÔëÏzõ†´{txA=ÍöCß‹ÍvòÓ©zÓ¥'$?ÿjKÝÞMŠsßô¹oìÿ½[mñüÛ7kÔ©Ôjê ²"ÇŠ~uÊ*wüõŸº®]ÌïÕ“Ø?Äý‡ñK–”¨êT§GògäYõ›ßÖÞ°¹øÅšÅ‡PoH» -O6ðv¶…ˆ´‘ÝÐùeÿoǸZñA¡c[Ç6÷üû/&fõ¸ª©Ynû}Ôýf½þ¬§ÙòÔîßÎ÷:6t +ý¥­=}^J½Èž^ïx½ãõ` ËãÀ|¶É–?ü:ø×®õLÓç˜_ٮо‚cóµÕϹTÞK ìXðé°*.¯_…ÞTïÈÿ½Om7ÀæÀue•O›[õgáðeÈúÇ“?/>Œ¬Î>Üçáö*®»ì^æ[oש€W¡9ùJôÏ·{»Û!ý ÍýTÊçÂ'€ØÞ¬ÀV>œžuWÁ& =“ôgän*Ѫȷ|lG6ú°þèÆ8R¾™¹°uïÜ.¨]P» *3;z ¤¬ Û¼ð¥Z»âkUõÞã:¹èBý< œ*ð¡Ýý Ez=ªèüø‰üqàÿ÷ÞÌ_[mîÀT&‡í÷±YåÀi‰u}6ßä‚ë =³n8ê»n™?ùYU~ÞûÕ·ƒÓþ^_Nª¹±™þ³ù-nookp1‹VìG‹´÷±#~ÖjTm`¼ØÖ>\àû­óÒÇÙoVÐÕ½öN[˜t)·Z6ª^K~þÕ£êŸ]}Úé÷€À´ÿ잘fŸzçÑŸ‘Kãâ‹ ±µ)Ÿ>/eEvøS•reŒAn§m¶uÚÖ´÷·ú¿Ÿù¡orÀ€xÄyÄyÄ¥|“¿síÓ±þFàŒ[ããÛU«y.åùo»µíÖ¶[Tfv¦×@ÊÚˆÿþ‡šçl'(õkTu[ñ¿ÿxVO©ÑØ>ñ/Gáx _V }õõë‘eõ7¦¼òú>Ie@Vécý÷¬{pd™í|Š·táú_×KûÏVþ¢§ãxUÿYûï½V¸ÙZìÝaêšï EÚûØþc q»bÝpt\cx9ù ¢‘{×´¯ÉŸE7ií–ÊSþ¿¶ý~[ñÌxo>È®³‚vÕjž³‰ÏÈú–º^¼ž~V_N)W¸D|Úvȯo]ôŸ ‘ª¬([Õv¦|úŒ”=FElëwÿÕ¿PÚÖîR\æx“²kÓÇ"í}l­IÝœJÎ&θµß‹ÝcÜ~¦²ë¬À«•³MLÞ\©P·pùeEOêö÷_j§Ùïî޴캽ͺy׋mþõQßÎ;ª6^â¹°ƒª½œn'~{î®òìÿ¦ 6tâƒm3+€qg]Æ }“#, >)>)>énö>?pªÛà Y_…önP¿Hhþcù"þáË·s¿Ëý.7•™é5ð÷ç-t"_„éUìáõ­”Ö~çÓÎÞÑRwM³xùü1ÝvüÃj%Å'Å'Q™UúØJNÝë)h Aéß÷ñ]Q4Oñ.iÿ/c1G—U^øþdÛ6[ûìo-ÿõkbçSpj¡ô±H{[`aa·|5'M8wÒÇ›8#Ö?M¼^n},]gùå‹ÐgM¶3©s­YüaáïÓÞÿt¿ìv«Ltâ¨^«ê-¶µ9ž>#e…Qg-Æ}“#,àùê竟ÿÃטøn(y¿ØNà ùê˜1=g¥<ó&aMš„Q“Ðéõð_Ï>F¼8˺Ai©¼%–Øa¼ØwƒG—b;Sž¡¾OR“UúØ¢ozt±Ðôï/snÓ¦aß5E•Ê#={hY¼C‹|?ò,¼»È… ««thß|“Ïg)¯öfÿÍþ›ý©FèôzHY'íÏöù,ëÞg×6×g5•ãuCR^m}o¤ +ö±5¬¸®·µ8õX×6Cßä«{Ÿ-žM‹÷ëc»V_õ¦RLVü"h[^Çõ‹óñr£ØcõYSVœ×Ùò4OŸ‹²ÇÂØ€mSö }“#,fE©¥V”J¹eØÓ|¼÷ã¬g•µÙ"çD‡—)¯ö­<·òÜÊC5B§×CÊ:i¶¨¶»ÃK"[Ë®ö,öõ~œòjë{#ÕY±uo=_ûœ2DJzm¤¬™åF_v[Cp›þõÚ©½U†§¼Âú~¨ïÔ!dÝ>¶ú ù­öV!¾MÿZ©H÷â£/ÓÇ"ý}l‹·–[@p›þu˜£xУ/},Àûß³‚À~nk˜¿¥Õg¡ì±È€3¡oZ¶»òîÊ»+§Ü\†,öêê\”æ/=ë«&½î×SÍmßüëä_'©@¤¤×†¹ÊyÕäðœz*!nzÖ!‹;vt.šòÚêû!Y½-s¦IމoÓ³ú=_³àðúXX¶t2л!nzÖZ‹»Õ)¹>`ý§YA¯ûõTfqéYõY({,²àÌAèûo–è•è•èen»¹=£ËÃÚSißoÝTµ¡¯ÇŒ”WµßØ~cû¥ö:½NRÖϦª“+²¢nsúÕè«ÑW£©:¤N¯sUô¬ ²«nÝ»öùÕWežúHÕ€‘úØR?|õQî¿]k*+Ž*»èc‘q}ì¸vq…¼*èþÛµÚù¯¿uhE àÍ BVÔíÀ\îß®úü“=Ù°eúZ 0!^‘>×Ƕì}´T ¶YAµ¦å¯0—KûªÏ<Ùc‘ݧ¡oF 2ÐöÛWl_an{JØß«U½Þ´†©¯q»Úìð½kîÞÛtoÓ½MTÒN¯s·kÓß»„»©¯ û£ƒêõ6w õ}Jc÷±~[V¯Œ"ÜM}õš?Ù~ÓúXdNÛwÒŽ§n„»ÿcýfÞ‰'^·ècüûYA›¾|ŸßÿXõ9'{,²'àôÛ¿sÿÎý; }-‹È@I!I!I!îkÜ׸¯I¹U…ÕõZï\›ÑÜú4,¤S]sýª™«f®šIáýèõc®ºž†)u}zÍ­au;Þr®òºé{¾ïQc`ì>¶ÌË&›:Þ"â5ûµÏVôQ<èc‘ù}ì¸ÜÇæ{å!è5·ÖºÓítÉô±ÞwVÒ©®ó:s«>çdEöDœ~ïZ¾kù®%¡¯eîÒÓKO/=5û7àZ5ºæYŽ61ùšÑçqý·_5©ì—òйÎsç:ï]ûwíßµ§ºðž-Eûwíßµ×k)e}Õ¤nqǸ¤ˆ£Çê¿%îM¾no5s¶g9s»™¾×Q]}úX×§ëΜMÜ›|õ7…_èÛÛgc|>$îM¾—\ض‚L }³‚ ÁŽqúÌŠÙ]òUŸm²Ç";#¶”äŸ&ôM?` “„ ?~Ä\3Ó¸õ¶»iõu¢g“{™»V×*^«x­"…ôÓkÉ\¥MôìW±¡¯¾Æ4÷®±ÛܵÒ÷7* ²gë9u™po¢_}-·¹u±Þqô±°n[î€A¥oúêkïÇ? wí@ Àr³‚'+öbv§¯ú<“= †m"2Ëo¦ßL¿uíÛµo×¾æ£øÄvõk^ÍÎãµ¹†š»>ûä}ò>™R‚eéue®ê¾þ³khvŽ~ã¿©yÕÜõÑ÷4}£– ;÷±Þݧîû>&;G¿í:_þ3},l§mþɸêN²sôÛÞOSÜnÑÇȘYAíA®¡Ùy‚§Ï0Ùc0l0©&L8X©h¥¢•Ššk’âÛŒôý55މ¡½Ô›ß2`˜K¼¹k2·ùÜæs›S?È8z™«Àù-‡np‰7%ÆF7¨—}¢ß8Ço}5wMô}LßÓ¨ Õy ¤m|›¢_ÿõkb£+ÌëTèúXØfÛT“Ó©é¤ çâ}¼³OôÛ×Ç·’ô±2~V0Ì%^ŸkeŸ9ž>·d’#†m"¬à¡×C¯‡^v©:p¯ùBoƒßSämÍ>Öï?tˆw~ç)æ®ÃàgƒŸ ~fŠ0E˜"¨d S„)B¯7sÕ8tH§“ÎSÞÖŒù½~cG¿î-ñ~›ú¥ïcÐǦäÞyø­Å!¿×ï”uíb~/ëÑ´C§“ô±°ý>6`d÷ßJ^ž¸ÿô^ï5ÆŽ~»–\_I¦¹³ïüÎSô—±çxú¬’=H‰¶‰°š;Cï ½34õ¶iÆyÿÏ+'= ý¤A.#µŒ÷ݺ5ªÓÎ÷a©œÅ$sÏ=464646ipÒà¤ÁT 2‡^oz홫L߇+ŠI÷Ý~‰¨ÓÎH¡oÒ³£¯äšq~àÂÊÁ©ïKúÞEµ}lêÿ½(Ô¾íÀ…µ>O:úÊHѯoî%=‰(Ú¢R>ô±ÈZ}¬Ó$O¹ðµQÅ£wT ý~x6Ñ'w£‡­/[>€õf¥r“ôy—‘&xúLRŸO²ÇæÃ6Vvß÷¾ï}_ûMö›ì7™k¡<Ÿ9 (êrµP§évYþo †5ïé}=õ–q”ÁÓçúL’=H0l0`ž×z^ëy­¦ÁMƒ›þ¿O7o@€£Ëš7}zï©ï—UZÆëA;,láTþ¡ã¬ÔŸÝw'¿;ùÝIS’)É”DUÀÚ¶3%™’ôšL½n[8z:κ´wAÀ¬ú¾éãYßoÞ€°G.kRvú¾¤ïQ =}l…î {äßqíùϬúVŸ>íÞ%zú<ô¤…ñúX·ðú}‹×Ö^*éñMV }'~uúcï±MÛŒnèTž>€mÏ Ê?tœ¥ÏIJÊOŸ7ê³GöX í€a›€[ê!§$MIš2{é쥳—Ú¥Áfÿ†k<¢ö÷jU¯·­µŒ·ƒºœ¯=jh¨w^çIiy.ÑÕ¢«EW£`›ôúLK% íë<évПk²µÐ7at‹z½7ûO‰ñˆJËsÑ÷"}_¢–íc]÷]8%ÆoËê•Ñ-l-ô­ÑtQî?—­Ò´M§XúXdŸ>6`h÷˜’—FÔQ‡U-ek¡ï7óN<ñºÕ¶ÚœúåcècdÍYw^çIú¬ÌÖ&xú\QŸ1²Ç‰°QG -|´°]šMwóë_éõƒ‘Ý¢êl´VËx¬{ß5ížTö*5=-çÜúbë‹­/>txèðÐW¶O¯U½nÓRáíž4*\jú±îûø®±Vèû`ä¡Cu6NwP¯Òë´ï'úþÃ+Èœ>Öù]»¯Ôóm¼ÔåÐ!k…¾^A“ZlìãXįa£Âô± ­zª©d¿%ôÆ—Ý>°Vè;êÀa©êÓ/¯ (›ƒ>€±f•½JM×ghÖšàéóC}–È ¤0l0`Óf'ÌN˜=­È´"ÓŠ¤½!+é\hgÑ‹¼kOwu6<ø¿‡–mß®êã\RT®V…ªÿ2$Ì«•s>»)â—ˆ_"~1%šM‰¼ÊÈbM‰¦D½†ÿmå ëèœ/*×êkÕy»êˆSýI–{φoïï÷p‘÷𛮣J:Û_)0:íç¦ï3úžÃ‹ °V›?¡X5û+KtùdøMŸ†3¦oïoÙ ×ùºÅGœªî_{õµ2Ç›”ëH úØ´¨5¹[¹’szÞÝ|ßeÇÄ›g>öþѲqïÀÃûBªlhî4n€“R$°Dxþô±²Ó¬À«•s>}ΦÏÜ,;ÇÓgƒúœPŸ²Ç–E ÛD d7çÞœ{snH¿~!ýìÞ‹Cî‚·ò›º¾ts/ÓvÞð€Ò.ë¶7jtٳ̡èø\RÅ–+«R¦´,W½Â Íg{¿Ú˜Ð°¬ÇØIÍ|WV¼Úl©ó+‡—vé°Âq…ã ÇÄ–‰-[òj ¾k™Ø2±¥^Ûéyw4[Z»ªÃËIÍBÃ*^ݘ0ùˆÇØ·ó~¥LYy·zU\u¥ú CÑËB}.mo4s²g™yÃÃ^¸¬ëú2¨c™¶¹‹WÏoz¿ß«ï'úÞ« °å>6ÿ‚"‹W/¹¡N¹ ŽB:Ja/\ô›9Ù£Ä(¿e¡U‡µêJÕêc#VÞuï0üÒâv.ÓCc'qþÏ×]BÃìïx÷¨]•>Ȉ>ÖµOÝFÅÎ7˜;È­Œo›Õ³}Ê/éZtUt%!d߯x—†=›l:ç2º[ºÏ*w .¾0¨‚Ø4xts§Š>ß·ê_âaá:ÅÿÈ_Š>{¬ùYó+‡—ú\NŸÑéó:}v§Ïñô™ž>ßÓg}úÜOŸ²Ç™ƒ¶‰È’nìº±ëÆ®Q'FuÂΆmòßä¿Éÿ¥ÇK—¼j06½Îõš·åw¥¾oè{¯€>–> öXöX =€a›€,/!&!&!æÀœsÌi<¥ñ”ÆS¬Õ, 44èd·“ÝNvãuô÷‚þ¾°Ö»RßôýAß+x]ô±ô±},°Ç²Ç–B ÛD ÐËS/O½ØcÙc »!`ºðæÂ› o¢+FWŒ®x8øpðáàW-_µ|ÅΫÑ߃úûQoêïS® ô±},°Ç²ÇRG A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A ‘©pÔGQE}dÙ†ž“@–G ‘í`ýú ꃨ¢rDåˆÊ¡%iIZ’öN{§½ÓÞho´7ÚkíµöZKÔµD-AKÐ´Ú í…ö\{®=מjOµ§Úí‰öD{¬=Ökiiiµ‡ÚCíö@{ Ý×îk÷µ»Ú]í®vG»£ÝÑni·´[ÚMí¦vS»®]×®k×´kÚ5ííííŠvE»¢]Ò.i—´‹ÚEí¢vA» ]ÐÎkçµóÚ9íœvN;£ÑÎh§µÓÚií¤vR;©ÅkñZ¼ö›ö›ö›v\;®׎iÇ´cZ¬«ÅjG´#Ú-F‹Ñb´_µ_µ_µh-Z‹Ö¢´(-JS5US5ES4E“4I“4Q5Q‹Ô"µHívH;¤EhZ„vP;¨ÔökûµýÚ>mŸ¶OÛ£íÑöh?k?k?k?i?i?i»´]Ú.m§¶SÛ©ý¨ý¨ý¨m×¶kÛµ´´´­ÚVm«¶EÛ¢mÑ6k›µÍÚFm£¶QÛ mÐ6háZ¸®­ÓÖië´µÚZm­¶Z[­­ÖVi«´UÚ m…¶BûNûNûN[¦-Ó–iKµ¥ÚRm±¶X[¬-Òi‹´Úm6_›¯Í׿jsµ¹ÚmŽ6G›¥ÍÒfi3µ™ÚLm†6C›¡MÓ¦iÓ´©ÚTmª6Y›¬MÖ&i“´IÚDm¢6Q› MÐ&hãµñÚxmœ6N§ÑÆhc´ÑÚhm´6R©ÔFh#´Ú0m˜6Lª Õ†jC´!Úm°6X¬ Òiƒ´Úm€Ö_ë¯õ×új}µ¾Z¨ª…j½µÞZo­—ÖK륅h!ZˆÖCë¡õкiÝ´nZW­«ÖUë¬uÖ:k´NZ'­ƒÖAë kÁZ°Ö^k¯µ×Újmµ¶Z­ÖFk­µÖZk­´VZ+í+í+í+­…ÖBk¡5ךk͵fZ3­™ÖDk¢5ÑkµÆÚ—Ú—Ú—ZC­¡ÖP«¯Õ×êkõ´zZ=-P Ôµ:Z­ŽV[«­ÕÖjiµ´Zš¿æ¯ùk5µšZMÍWóÕ|µêZu­ºVM«¦UÓ¼5oÍ[óÒ¼4/­ªVU«ªyhš‡VE«¢UÑÜ47ÍMsÑ\4­²VY«¬UÔ*jµ Z­‚V^+¯•×Êiå´r𓿤9ie´2Z­´VZ+­•ÔJj%5GÍQsÔJh%´š½f¯ÙkÅ´bZ1­¨VT+ªÖ k…µBZ!­V@+ Ðòkùµüšf§Ùiyµ¼Z^í?Ú´ÿh_h_h_h¹µÜZn-—–KË¥}¦}¦}¦åÔrj9µO´O´O´´´´µµµZ-‡jRMªI}§¾Sß©oÕ·ê[õµúZ}­¾R_©¯Ô5AMP_ª/Õ—êsõ¹ú\}¦>SŸ©OÔ'êõ±úX}¬>R©Ô‡êCõ¡ú§ú§ú§z_½¯ÞWï©÷Ô{êõŽzG½­ÞVo«7Õ›êMõ†zC½¡^S¯©×Ô«êUõªzE½¢^Q/«—ÕËêEõ¢zQ½ ^P/¨çÕóêyõœzN=§žQϨgÔÓêiõ´zJ=¥žRãÕx5^=¡žPO¨ÇÕãêq5NSãÔX5VUªGÕ£jŒ£Æ¨¿ª¿ª¿ªÑj´­F©Qj”ªSTEUTI•TIUQÕH5RT©‡ÔCj„¡F¨ÕƒêAu¿º_ݯîS÷©ûÔ=êuú³ú³ú³ú“ú“ú“ºKÝ¥îRwª;Õêêêêvu»º]ýAýAýAݪnU·ª[Ô-êu³ºYݬnT7ªÕ êuƒ®†«áê:uºN]£®Qר«ÕÕêju¥ºR]©®PW¨+Ôåêru¹ºL]¦.S—¨KÔ%êbu±ºX]¤.R© Ôêu¾:_¯ÎUçªsÕ9êuŽ:K¥ÎRgª3Õ™êtuº:]¦NS§©SÔ)êu²:Y¬~«~«~«NT'ªÕoÔoÔoÔñêxu¼:V«ŽUǨcÔ1ê(u”:J©ŽTGªÃÕáêpu˜:L¦†©aj˜:D¢Q©ƒÔAê@u :P P¨ýÔ~j?µ¯ÚWí«öQû¨}ÔÞjoµ·ÚSí©öTCÔ5Dí®vW»«ÝÔnj7µ‹ÚEí¢vV;«ÕŽjGµ£ÚAí vPÛ«íÕöj;µÚNm£¶QÛ¨_«_«_«­ÔVj+µ¥ÚRm©¶P[¨-Ô 5H R›©ÍÔfjSµ©ÚTm¬6V«ÔFj#µ¡ÚPm¨6P¨ Ôúj}µ¾ZW­«ÖUÕ@5P­­ÖVk«j€ ú«þª¿ê§ú©~ª¯ê«úª5Ôj µšZM­¦ú¨>ªê¥z©^ª§ê©zªª‡ê¡º«îª»ê¦º©nª«êªºª•ÕÊjeµ’ZI­¤VP+¨Ôòjyµ¼ZN-§–ST'ÕI-£–Q˨¥ÕÒjiµ¤ZR-©:ªŽª£ZB-¡–PíU{Õ^-¦S‹©EÕ¢jQµˆZD-¢R ©…Ô‚jAµ š_ͯæWó©ùÔ|j^5¯šWÍ£æQó¨_¨_¨_¨¹ÕÜjn5—šKÍ¥~¦~¦~¦æTsª9ÕOÔOÔOÔÔÔÔÕÕÕj5‡bRLŠIy§¼SÞ)o•·Ê[åµòZy­¼R^)¯”%AIP^*/•—Êså¹ò\y¦'Ÿ“ÏÊgå³òiù´|Z>%Ÿ’OÉñr¼/ŸOÈ'äãòqù¸'ÇÉqr¬+ÇÊGå£òQ9FŽ‘cä_å_å_åh9ZŽ–£ä(9JVeUVõ @–dI–dQeQŽ”#åHù|H>$GÈr„|P>(”÷Ëûåýò>yŸ¼OÞ#ï‘÷È?Ë?Ë?Ë»åÝòny—¼KÞ%ïwÈ;äåååmò6y›üƒüƒüƒü½ü½ü½¼EÞ"o‘7É›äMòFy£¼Q^/¯—×Ëár¸.¯•×Êkå5òy¼J^%¯’WÊ+å•òwòwòwòry¹¼\^*/•—ÊKä%òy‘¼H^$/”Ê åùò|y¾ro¹·Ü[î)÷”{Ê!rˆ"w—»ËÝånr7¹›ÜEî"w‘;ËåÎrG¹£ÜQ–ƒå`¹½Ü^n/·•ÛÊmå6r¹ÜZn-·–[É­äVòWòWòWr ¹…ÜBn.7—›ËÍäfr3¹‰ÜDn"7–Ëå/å/å/å†rC¹¡\_®/×—ëÉõäzr (Êuä:r9@äZr-¹–ì'ûÉ~rM¹¦\S®!×kÈÕåêruÙGö‘}doÙ[ö–=eOÙS®*W•«Êî²»ì.W‘«ÈUdWÙUv•]dÙE®$W’+ÉåŠrE¹¼\^./;Ëβ³ì$;ÉNrY¹¬\V.-—–KË¥äRr)ÙQv”eÙAvíe{Ù^..—‹ËEå¢rQ¹ˆ\D."’ É…ä‚rA¹ œ_Î/ç—óÉùä|r^9¯œWÎ#ç‘óÈ_È_È_ȹåÜrn9—œKÎ%&&&ç”sÊ9åOäOäOääääååår9‡d’L’Iz'½“ÞIo¥·Ò[éµôZz-½’^I¯¤)AJ^H/¤Òsé¹ô\z*=•žJO¤'Òé‘ôHz$ý%ý%ý%ý)ý)ý)=H¤{Ò=éžtWº+Ý•nK·¥ÛÒ-é–tKº!ÝnH×¥ëÒuéªtUº*ý!ý!ý!]–.K—¥KÒ%é’tAº ]~—~—~—ÎIç¤sÒYé¬tV:-–NK§¤SÒ))^Š—â¥Ò é„t\:.—â¤8)NŠ•b¥Xé¨tT:*ÅH1RŒô«ô«ô«-EKÑR”%Eéí¿þŸ}I'J¢$J‘R¤)’I‡¤)BŠJ¥ƒÒ~i¿´_Ú+í•öJ{¤=Òé'é'é'i·´[Ú-í”vJ;¥Òi‡´]Ú.m—¶IÛ¤mÒVi«´Uú^ú^ú^Ú,m–6K›¤MÒ&iƒ´AÚ ­—ÖKë¥uÒ:i´VZ+­•VK«¥ÕÒ*i•´JZ!­VHßIßIßIˤeÒ2i©´TZ*-–K‹¥EÒ"i‘´@Z -æKó¥ùÒ\i®4Wš#Í‘æH³¤YÒ,i¦4Sš)M—¦KÓ¥iÒ4iš4Eš"M‘&K“¥ÉÒ·Ò·Ò·Òi‚4AúFúFúF'“ÆIc¥±ÒXi´4Z-’FI£¤Òi„4\. —†JC¥¡R˜&…Iƒ¥ÁÒ`i4H$ H¤þR©¿ÔWê+õ•B¥P)Tê-õ–zK½¤^R/)D ‘B¤R©‡ÔMê&u“ºJ]¥®Rg©³ÔYê$u’:I¤R)X –‚¥vR;©ÔVj+µ•¾–¾–¾–ZK­¥ÖRK©¥ÔRj!µZHAR$5“šIͤ¦RS©©ÔXj,5–I¤FRC©¡ÔPj 5Hõ¤zR=©®TWª+Õ‘êHu¤ÚRm©¶TKª%Õ’ü%É_ª)Õ”jJ¾’¯ä+U—ªKÕ¥jR5©šä-yKÞ’—ä%yIU¥ªRUÉCò<¤*R©Šä&¹In’‹ä"¹H•¥ÊRe©¢TQª(•—ÊKå%gÉYr–œ$'ÉI*+••ÊJ¥¥ÒRi©”TJ*%9JŽ’£ä 9H’½d/ÙKÅ¥âRq©¨TT**‘ŠHE¤BR!©TP*(”òKù¥üR>)Ÿ”OÊ+å•òJy¤Ÿ‹OŧâSñ‰øD|">‰Ä¿Ä¿Ä¿Ä?Å?Å?ÅâñxO¼'ÞïŠwÅ»âmñ¶x[¼%Þo‰7Äâ ñºx]¼.^¯ŠWÅ+âñŠxY¼,^/ŠÅ‹âñ‚xA!ŸOÈ+äò y„|ù4òIä“È'‘"E>Š|ù0òa䟑Fþy?ò~äýÈ{‘÷"ïEÞ‰¼y'òväíÈÛ‘7#oFÞŒ¼y#òFäµÈk‘×"¯F^¼y%òJä•ÈK‘—"/E^Œ¼y1ò÷Èß#<y>ò|äÙȳ‘g#ÏDž‰<y*òTä©È“‘'#OFžˆ<y"ò·Èß"‹Œ‹Œ‹Œ‹ŒŒŒ<y4òhdLdLdL䯑¿Fþ¥íõqÞ¶gꀌ` y(0X00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A€ÁÙ¥*;œyÖ½ÙçµK!&ƒ#&&}€ÁÈ>€ €Àà€ € €dÀÀ`pÀÀÀ²``08à^᩼Ö`$ÀÀ`pÀ¼Ö\1Ù000¯5W @öAL GÌkÍ}€ÁóZsÅdÀÀ¬&flj‡¹Ÿº~úúéë§§DN‰œÙ¸Wã^{¹Öt­éZ³ð–Â[ o©Ô§RŸJ}Ꞩ{¢î‰QߎúvÔ·qîqîqîÙù:ÿÛP0É!É!ÉA~.?—Ÿ÷ûºß×ý¾(P" „ófçÍΛõëìÒØ¥±Kcý:«?®þ¸úÇŽ 0å1å1å±Ö™g¾„é Ó¦ï,»³ìβÃÄaâ0Q¿&zÚÛÛŒ*U0ªìɲ'ËžôR½T/µëç]?ïúùÂ{ ï-¼§×³u¯XüÍø›ñ7õ÷KíwµßÕ~WqTÅQGÚWh_¡}¥s”ÎQ:G5FÔ18×à\ƒsI¤Rv0¶‰˜€Õ¤=¬zõ,êYT¯ð^á½Âó=Í÷4ßS»tÈœsÎü«”þG8yæä™“g|6ùlòÙ”ž+¬жðÜ3âU{¾ïù¾çû&™PdB‘’Ž%K:¦çZåû ßù>Èüú|”÷QÞGyÛMn7¹Ýä÷;óÀ?ÿüƒÏ°5ÀÀ¬&-aÕ…Ž:^è¨nÒ.ÝôO4¦'²2j¼õ›­ßlý&ùõIü7òßÈÃvâvK=Ήg'žx¦º×.QtFÑ]ŸçÇœs~ŒþîôŸ³£«£«£+10ÛAL ÀjR–çxœãqŽ*Uª8X6fÓ?C¼£êŽª;ªZöœ3ÿ*¥ÿ¢FŒ:¨MqF„šËÖ,[³lµž»¥GÿLsò°3ãè_²ý~•ú#ÿéÿ§ÿŸþñžòŒ÷Œ÷Œ'` € €XMê‘Rk¹µÜZNù¿·ÈÝ"w‹Ü{#öF츽üöòÛËõû°^®r¹Êå*ë ­+´®ooßÞ¾½Süä‘§¥Î9ó¯Rú¡Ìµ2×Ê\û‡ëü¶ÅÛo÷mÛ·mß¶”×y­ÓZ§µNú}aÓòÇ©ß×9£¯vzçuðëà×Áiy¦ —4\Òpɶ.Ûºl뢙¶þ—žžzzêé©3[Ïl=³Uÿkú}‚S4___Ë>Ó/§|9åË)Éÿýþ¾³ºÏê>«û¹™çfž›ùrÙËe/—éw&þùÜÏç~>—–³Õm<²ñÈÆ#ìl¬‹˜€ÕüÛ¯ÖCÇ´<ò[¿·~oýÒòÈÍ+5¯Ô¼RFÜO7s®’e¯sSN8ž3­ú´êÓ¬·§çq¾ŸûýÜïç¦åÓäñºèŸÏΈ÷TíwµßÕ~wgÆwþ×—Nç1å1åY|tñÑÅGS̶‹Ú.j»ˆÏ°.``V“ö°jÅàƒW ~¿ß2¦Ç˜cz¤þø‡‚ Jÿ9gþU²ìu^¸:pu`Æ]çÍÛ7oß¼=3Ÿ{úÇÜ'Ñu3&Θ8câ{¾´yLyLy’ÿ„”ÆÕW\}˾֕ÛWn_¹½þuÐÿöJv}ÓõM×7æ¹â¨Š£*Žbg`]ÀÀ¬&íŸÐMÏoyçòÎåKê_áÛ¥X—b]Š¥% 3jdddŸÑ×Yÿ’äÌÿ¼uzGKÍýìÙgWœ]‘žWÿ» ßMøn‚¹ÇïЦC›m,ûZï*¸«à®‚ïwÎúW¯§þµêìl¬‹˜€Õ¤%¬:p,àX@úãÕsÌ90ÇÜo)¼¥ð–Â[ô;¶¦çœ3ÿ*Yê:ǹǹǹgôuÖéwΜçžþÇI~¯è”å}”÷QÞô\±?ìþ°ûãïG›øêÿ=ô¯=·Ôkíæâæâæ¢òøýÎöBÇ /tÌüw¤00«I=FòŒ÷Œ÷Œ·ÔïJrHrHrpÞì¼Ùy³¹ß¸oÛ¾mû¶¥çœ3ÿ*¥ÿ¼T/ÕKÍÌë¼é—M¿lú%3?ožÇ)éXÒ±¤£¹ŸÕïþ›UÞSz¨œžZMË]ŸÙÙX00«ùaÕg?›ø™e#¥¡qCã†Æ™ûSwLÝ1uGê¿ÑxpúCÁ{Ã.…] »”Uà:Õù«Î_æ~ÖÁÏÁÏÁÏv‚ÏÔŸiòÏg[·& ã°šÔc¤ÝŸìþd÷'–”¶¬Þ²zËjs¿ñ럾þé럲[¼ûåî—»_fæu®§ÔSê)Y%žÕ}V÷YÝíÒ,b@Ä€ˆ Ó¦'L·µ÷ÔÕ§WŸ^}j 5 ‡˜€Õ¤#éwµìoŒ¿3þ¦¹ßXcD5F¤çœ3ÿ*eÅëìñÈã‘Ç£Ìyîéœ'ן\rÝî_*²¼Èò"ËõžSwNÝ9uµ_µ_µ__.{¹ìå2k½§žžzzêé)[¨IÈ8ÀÀ¬&õé/Ç¿ÿr´ìo¼;úî軣ÍýÆJ}*õ©Ô'=çœùW)+^ç2×Ê\+s-sž»¥ç䙓gNž±ËçÇœs~L&UKSS[¨IÈ8ÀÀ¬&õéuðëà×Á–ýúç/ÍýÆMJ4)Ñ$=çœùW)+^ç‚Q£ FeÎs·ìã$¶ó}ïƒ|X*öR½T/Uÿgý3ÇÖªÛù-ð~€ €XMæ“úc¦'˜$NÿuvðsðsðËœçžq¯Ú™­g¶žÙª?‚g¼g¼g¼¥ÂàÒ9Jç(ãý΀ €XMæ5ñŸþúÿéoî7–=YödÙ“é9g _ <¦<¦pú€¥^ëØæ±Íc››;Cû`û`ûàŒ{¦–}ç²³°.``V“–{ Æ¹Ç¹Ç¹§ÿw ‚‡àaî·ä¿‘ÿFþwGß}wtzàs3ÏÍ<73ýgû|ßó}Ï÷9º:º:ºft¬;^úxéã¥Ó懂 2÷[üüü^.{¹ìå²ôŸ¹¥*ÍÜO ‡‰ÃÄÌùäôÓSOO==E éGL ÀjÒLÙÙÙ§'XJrHrHr¨Ù®f»šíÌý–v“ÛMn79-VàTSÌußÏý~î÷sÓƒM>6ùØäci¹>–ºÎ-Þ¶xÛâmzÎüË;—w.5FÔQc„¹ß2¨è ¢ƒŠZªB2úq$.H\hî§¾œòå”/§X*ò<¼òðÊÃ+Sÿ”vf^1[ø-ð~€ €X]š­ì¶²ÛÊnï÷[ƶÛzlëÔ?b@Ä€ˆi‰¯*L¯0½ÂtsSõjÕ«U¯¦'“ H¤ú'’33Ö­\¸:ðýÎ|Ô·£¾õmZ>Ïm©3·T¥™û©cÇŽ¤þ³Ê-å–r+ýï…>“úLê3ÉÜoPm@µÕ2óŠÙÂo€÷CL ÀjÒLꟻ Ïž3Ê›ù_šm ¿Þ00«IKŒ4uÇÔSwX*T+6ºØèb£ºýÓíŸn§çÌ4}ÐôASË~ú}gLœ1qÆD=fNûUJÿuVϪgÕ³–z.ޮޮޮ‚‡à!xdt…dÎã¼\örÙËe™ý¶–[Ë­å'ן\rÝZŸ™¶…ß€Õ¤=F’?–?–?vÏãžÇ=Ïû…j-¯´¼ÒòŠþ5¼–Š©ô/øMþ©â÷;7w“»Éݤßç5åo±Ní°ìu¾}#úFtzÂË6Úlh³áöòÛËo/Oÿu¶øoyLyLW Kc—Æ.-ú”(PBÿTzòs¶Ö³…ß€ÕüÛéuðëà×ÁúÿÛswÏÝ=w×QcDe®•¹VæZ¡}…öÚ§Çr 66ØØ`£þEÊgWœ]qvEFGSÉ#϶‹Ú.j»H?=¦ÕÏ­rûÊí+·ü#ðÀ?–X~`yýްÉcE[{uÂ.…] »Tç¯:Õù«ü²òËÊ/Ky']œtqÒÅßûýÞï÷~Ù(Löª%ÿä®þ×J?)ý¤ô“‚Q£ FÞRxKá-ú=¡}6ùlòÙÔõó®Ÿwý|Á§ >]ðé¹™çfž›I€ –BL Àj,û9BÛü$¢ñ>%É'>3¿¶iGL ÀjÉ€e°``YÀÀ¬†X00«!–EL Àj€€e°``YÀÀ¬†X00«!–EL Àj€€e°š‰¯R;¸>àß"&`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À €ÿ¦E§ù8l¥ãW+1V:ŽXé8šéG¬•ŽcV:â¬t·Òñ›•ŽV:â­tœ´ÒqÊJÇéL?ÎXé8k¥ãœ•ŽóV:~·ÒqÁJÇE+—¬t\¶ÒqÅJÇV:®fúqÍJÇu+7¬tÜ´ÒqËJÇm+w¬tܵÒqÏJÇ}+¬tüi¥ãa¦Yéxd¥ã±•Ž'V:žZéxf¥ã¹•ŽV:^ZéH°Ò‘h¥ã••Ž×V:ÞdúñÖJÇ;+IV:LÖ9¢rXéøÀJLJV:>ʨƒ ‹ °°Ž@öaØøAЃ AZT†ÑV:¸'1w#ænĶ7âìsâìsâìsïáÓV:²Ï½‡³Ï]‡³Ïý†³Ï†¹Ç°ñî.l­{ gŸ» s_aî(̽„¹‹0w¶Ö]„³Ïýƒ¹s0÷ ænÁÜ'˜û[ë>ÁÜ!˜{Ûü]ô}Ð÷A_Ã~€À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €˜.¼¹ðæÝÑ£+¾m~8øpðÛn¯Z¾jiZ•¬EêïGý½©¿O¹2ÐÇô±ÀË H0`@/O½ùü» ¦7¦7\w oLoL&ýý¢¿wô÷‘¥Þ•ú{\¿ëï}}àÂècécúX`e€ì†ÈòbbLcÌ90çÍÐÆSOy¾ÊRmâ¿]‡ J¨|²ÛÉnïÊðºú{A_Xë]©ï úþ ï¼.úXúX€>ØcÙcKIù.‹ú(ꣷ5¹2°.` Kº±ëÆ®¤ê£NŒ:‘0ÙZÍbZÖMþ›ü_û¿ôxéaêÆ«cÓë\¯y[~Wêû†¾‡ðªècécúX`eÒƒ¶‰È2nν97©AH¿~/k¾_3ç»à­;{»¾ts?ÐsÞð€ÒË?ÛÞ¨ÑåIÓE·ø`ÄqUl¹rÈyeJËra\h>{ôò ËN&5ó]¹ng³¥Î¯¢ÝÒÓJ®p\áøjVbËÄ–¦)¼š0½žõÚNÏ»£ÙÒÚU£Ý&5 [·scÂä#Ó…·½\™²ònØU\ueÈùCÑËBGßÞhæäIÓç {±ü³®/ƒ:èé»xõ;{ßï÷êû‰¾·ðjl¹Í¿ Èã¿þ*¹¡N¹›}+„t”.wq}<Ðïü]£üÎv¨:lܨ3 «Vqf¤{‡á—ξt™{ásçÿ|Ýå:öw¼{ÜéK dDëÚ§n#%oƒ¹ƒÜ¾ËÕfõlŸñg»]=°cȾñ½Îöl²é\ÏkÝÖ}Ö/(¸øÂ Qe›n>o‘Ï÷­úÿôºpâÜ>K €=Öü¬ÀùU´›>—Ógtú¼NŸÝés<}¦§Ï÷ôYŸ>÷Óg€ì±@æ †m"lZÂì„Ù¦‘ÓŠL+’Ø.íZIçB;o{/ò®=}Iç³áÁôØk2…†6h`©õíª>Î_îŠÊÕªÐà?‡„yµÚþã¿m%#~‰øåÍ2S¢)‘×YïOr¦D“I¯á[ùCÂ:nÿ1*×êkƒÿ|»êˆÓ—»L¦ØØ ,µž ßÞ¿ÇÞEÞÃo.é\ÒÙþÊmï´Ÿ›¾Ïè{/2ÀZ}lþ„bÕþZY±D—O.õi8cúIÏZµÖ¯µÔê¿|Ýâc_UÝ;¾ö™eŽ7)wí2},ècÓ²ÖšÜ­Üæò=ïn¾ruâÍ3Wÿ}Ò¤sç||,µ<¼/¤Mhs§qf_$°Dø­ªô±²Ó¬À«Õöõ9›>s³ìOŸ êsB}fÈ X0l0`£Ž>Zøíš´7dÓÝüú¯öy0²[Të«–mÓ¾ëÞÆ£ï»vO*{ ÅÒrέ/¶¾ø¢ÎC‡‡I'xÅaûôZÕë6-ÞîI£ÂB±cÝ7öéûβAoÚ×#j}uºÛ€z«}Ò¾Ÿèû¯8 súXçwí¾¾2Á·ñR—ã¯,÷¦}õ šÔâÔÇ"~ om¥}lÕSM¥ƒÕCoüx¹s7˽i_G8,5pÿòÚЀ%~ô±Œ5+¨ì%ÓghÖšàéóC}–È ¤0l0`C’¦$M1Ý™½töÒÄŸÒÒxmöo¸fÚ™„ý½Z5­l­–ÑÜz;¨Ëùv³‡†zçÝÖ -Ï%ºZtµ·AÔl“^Ÿi©ä¡¡b·5¸tàçv³­úš[öG·hZy³ÿ”˜igÒò\ô½Hß—¨€eûX—Ã}þ~ÞoËê•q¬úš[k4]”û·è²Uš¶¹6Ÿ>Ù§ Ú=fãºuÔa½¬úš[¿™wâ‰ßm«Í©?î<},€¬9+ðλíïY™­Mðô¹¢>cdÞ0l0`ž×z^ËØ4¸iðóˆÔÛ¬y—çyÓ§÷žF³l­e4·^êÜ¡CH §òµŽ©?»ïN~wòÕTS’)‰š€Õ%™’L&½&S¯ÛNžZÇëA{t±µÐ×Üú¦OŒg£Yó„=Zž'õg§ïKúEQÒÓÇVèÞñ—Ë]ý;®=ì[[ }Í­Õ§Ï_{"¤DOŸÇw>¦…ñúX·ðú}¥üÃÚK%›}ek¡¯¹uâW§?®q¤i›Ñ ç­ `Û³‚òµŽúL,«Lðôy£>{dÒŽ¶‰°²û¾÷}“ÖÛo²ßôd›¹¦Êó™Ã€s}¯ê4½ã«¬Ò2š[„5ï9úZêMä(y”œ0)étÒiÓŸT¬ð§¹ÓI§Mêu˜z­[üéèkY%ô5·^-ô󩎯<Ÿ¹8ëkî™ê{”¾_Q!€´÷±…Ë}нzñyõNDf•Ð×ÜêÞpøšs9écaŒ>¶ËUîÈ*¡¯¹uh#¡~Ð¥Ý\Ÿœùˆ>€-Í š÷}-«Oðô9¤>“dRG ÛD XÍ¡w†& O½eœqÞÿóUŸ&= ý¤á'Y½qL¾ÞwëÖè룾Kå<9ÔÜs }¹(ipÒ`Ómª™ôǹÁIƒM·õÚ3W™¾=Vœzßí—ˆ¯fõè7ùšôì諆ŸÌ8?páªOSß—ô½‹júØÔÿ{Q>¨}Û+þµ>OŠ}‘Õ£ßä«oî%=s)Ú¢R¾ûÍèc‘µúX§IžòoKGÞÑÐ=«G¿ÿµ~x6±Ú§~¶~ÑúXÖ›”Êyr¨>ï2ÒOŸIêóIöXÀ`Ø&`À z=ôJŠÿ[ð^ó…£ç©eL¹¾­ÙçÃ/Ÿâ[ms×að³ÁÏ>1E˜"Lo¨d S„é^ofïÙ3¤ÓÉmµßÖŒùýËçFŠ~S®î-=7õ=JßÇ( M¹ºw~ëìs#…¾)Wÿ)ëÚëZÖ£i‡ksécaû}lÀÈî¿m\1qÿé½5œ ý¦X»–\?°},€ÌxçßV[Ÿq{ާÏ*Ùc”€a›€L•p0á iL¥¢•Š>5ûwãÛŒì;ÒØ-ã­‰¡½4™ß2`ز~æ®ÉÜæs›'£~qô3Wó[ݰ¬Ÿ)16ºAcG¿É×8ÇoûŽ4wMô}LßÓ¨ ÕW¯¡“´SÛýþ×ê¿~Mì± ó:Õ¿ìG Ûìc›jcrν=i¹x?cG¿É×¾þ;Ætú>@ÆÏ †-ë§Ïµ²ÏOŸ[²ÇÉÃ6™å7Óo¦·]ûvíûâ¹&)>±]ýÞe£è7źðEíAKf›»>ûä}ò›6”,K¯+sU·ðÅðŸ—ÌÎ>¡oÊ5>ñû˜Þf辶ïiúþF-@vîc½»OÝwòA6Š~S¬í:_¹tš>¶ÓÇ6ÿd\õÙ¿gŸÐ7åÚÞOS‚?£1³‚Úƒ–ÌÎÎ<}†É è€a›€L~$üÈk³_Ó¸õ¶·³sã˜|èYãäzWs×êZÅk“ì¨(¤Ÿ^Kæ*m¢gï¸õ®Ù9úM¾Æ4÷pÛܵÒ÷7* ²gë9u™Óý²sô›|-·¹u±?–ÐǺ}lý¹­Øž£ßäkïÇ? ï¶>€åf5N®wev§¯ú<“= †m"2Ü¥§—ž¾3ûu1Û[5º6i"-cò5)¢Ïã†n_5©¬ÎJyÅ\ç¹Î{zô]ûwíM§©.¼½~ôZJYc_5©[\•qôXC7¢ßäëöV3gOšhn7Ó÷:ª ²Oëút`Ýów}ÿëÞÀ¦ð‹±ïJ¬­¶ñö9úXd~[ŵAWÑåÛÛgcªyý&_ƒK.l;Êž>@úf‚ÕYúÌŠÙ]òUŸm²Ç";#¶”ý;÷ï|ÓS¿†Ó¶NÛšØíÑ—¾LzÊ•y?À@J I 1Ýr_ã¾æé?|]^X]¯õÛ‹Ð&š[Ÿ†…t ºg®}\5sÕÌW?Qcx?zý˜«®§aŠGÐ=â^skXÝŽ·¶IyÝô½Nß÷¨10v[æÿkïÎ㢬×ÿ;¥•ßã¾ï¹¥!ˆŠ".˜"‹ ¸*(Š€+äêé€+ÿ,]IDATQ£4—DB ÓDS®¥†²#*™ûFŠˆˆ ÌüþøØãÁùÃa{îy=ÿ¸çÑ‘snn¯ùtq½™¹ŸÛEÝ ~3ƒ_0 =/”/”Ê®]-ž©47ÏO2t9ÉðWùfcå«z‡¿~úõÓ¢¿hC¨½¡Ú3a6þWCc‰o+_ož?ÜÝå¤êç¡8º;Çö2*u!!nåëGM§´¸Rƒ9•ŸcG„.ßC|[ùúI›ŸŽ?Ä pÆþ÷®ÀÊ'4–ý[嫨…rÆB¿y„Áš ´æö¬Û³&ªÇÊ€ö„¥ÌgìÓV͉˜:ÊEõ>·Ðr@^”2Y™¬ä·ñ·de²²Dô†jÏäDœòåB|«­: ½É”ùª÷Yœ4#èâÛ¼m·í÷wÜj«ö;¼Ù?9Š9•ŸcýOÆü)ñ­¶jç ÓA‰̱gìß»‚)¡£\Ø¿i«Š½(g,ä¸z«C hMx»ðvE«U’c1Kýc¤<ŠmúqР/Ÿ­ûçp—ŸÝܤ?>ßй0ÎXõnß­s·ŽÂn„ úAµO†ohg,µ5ön„‰¯ïôÈQ 1»·îârùr³Ïš|ð Kp“ëŸ7ð n΃çõß²¥ 8ÎÀÞ^j×,fc?ÿÕ»-ÎFºtqŽ5=ÿ·‹%’øå„mõŸuéìRr5´UÏ>ŽYF—}`üp}ýãr7{·«Ñƒà6ú_¿£è¹{i³ m¤·ÌêížåÍ‹ŠÍ±†žƒ­cèJ°ºlRº‹ùا÷M:wå壑jœ°qŠ“ÚuºÕŒØ5;€9àŒ»&)l½J,f¼5,¿áùú  Ö<Ì([ï…MÎ?^ ߋ؋rÆBÞ€¥ƒ0¸,`@k ;vzrZõøÈ7÷Øã(Õ߬ãUwhž…M»ÏÒ—½féÀÇ[:Dù{©Þí]–»,_ §!ˆ~Pí“ã-7®ñ÷’DtZ'¡îмyÙ®;¢Ç¼îsIÆQï{{K'Î7Mv|Å»óÅÙH7€.αægÃo%ÅUo\Úç“ϧ×iò~û¬‡hþoÉv®ƒçÞÎè_oGÝ„ÇR €g,øçṈ̌¨ØëÖ7¢xvWyÂî)÷ÕQñªß…Ô®s‰ORŸ™cÎX±k’ÂÖëJ×f“T,ú•Z,ö¢œ±7`i" &´àéÖ§[•ÃT‹~;Û>Hß#åè7è¤ùÊmùªW.ý87`ª•SMÕ+·óµó}º—ž„ úAµOr~ºæTS ¡iH?¿Í›ÿëG óη®ôøÊ}‰ÍºuÉDñúY¼3xõ”9qá¹­-ZLÎZ_öÏ?ÎûåíÅÒ‰ûíì19}ê=ç$= º2Ç6³êzçÁ„ê J-oF.MlÒü’Ñíû ^^[Dý3—2¬Æ­½†_ÎjõGÏÞo73^¼`Àū팬®Ý.ª×¿ÞÎÇ e¿©ÀæõÂ"’™cQ±96`ǹ&ƒëK?úúÅ¢?Ô­Õ¤yÍ'õ LIaŽô{W0ÕÊ©¦$Þö°Ô!Þ¿CÙkÛxnP›–aë¬V…†jRŸ™ÖÛÁA:{<±#包\KŸ~†ÁÀ€¤)Ò¥­Tˆ°«U¡!R³î{»ÿcìØïæØ®ücyQ¿V‘‘=o´®•i¨îhÓçˆyyµmêÕ 1û¨êõ—Ö.­­L¥3õ™èÕÞhêÕ85û¨²(áÌPÛê J ÅeÙíø ¯Í¿î˜‰këc¸ò¢tÿ~%þÿ_%þyÙ¯R÷'««†…4 Q½ó✤3@WæØ:Nòçóê J»{ø¦_:õ_¿&5}æê?ƉÿV5Üÿ¤Ó¶QŠë_‰ÿÜijcíìK’û hËÛë4Z•›Ä ÍçØ†ë›e÷ \v)½¹”£ß9}Ž~8&¦ñ?š}ÿ×-Ý €GZ~+x)s, ¯»‚‰ÙGÅ®I [/÷Šk3˜ÐÂìj°ÎìëÔT±#包\ëý ƒ €-ˆÌŒÌ|ñŠw£¦—ì™%…1kgæÐŸ}¦ùq¦+ãã¼¹&£¢÷«^ÿ«VŠt¦>= ÚóæºŒÞ/… ôĬM›-*{mÿ¹2k釚ºe¿êãX3Û„ùÒ €S›ä™¥zçÅ9Ig€®Ì±½;=9ߺzƒÒÎcÇZ_G\O£¸6åtÖä#ûîÉMu|ù½”y7°ÔbàöÉvn^eŽ…æslÿ@÷Ž»ºH9ú]Ú6y»ûôóß¾œT7úü1XW`Ÿg\j0Çúº+0½_:û®¹ïõJÚ·O\›Óµ.y±>º‹)g,äŠXwÉ; &´À«£WÇçÁ¯øè˜ø©“G¦HaÌÊ86ÁnZÝÐZŽ}™­Zu7ÞwÉÖwÅLÕëOÜ™¸³ä ©ÏD¨öƾK«\1S AéV«¥¿®5­Ø‡9'øf¸OcñU-›Ýûë/é¼87þç–#_ñÑy✤3@WæXó¶a ÉÕ‘~ ¶éVP#¯Ö§sæµ™lÙõîlM¢\³c]Sæ¼"<“Xld9Ç(3š9šÏ±Î™¾Z#娴Õh³Cæ/߯6oÀå߆,?šqĬ£®ÀgγÊ`ŽôuW`ë»b¦tö]vã:w8óò:¦šîÙ娻ÑïËG¹ÅOÌ®òE,ò ƒ €-è‘Ô#)¿Î+>ÀÍp†ë°aÒÂt7NKoêÙVõú÷ÞÝ{÷Å:SŸ‰xŇ ¥íþγ­‚Ò˜øÐ®K–x{Œ=uðàÜ÷\ºüý»½¯ûîá^iÝÞ¿´B:p©áÙÍÃ^ñ,IqNÒ™ +s¬eÌöìDsÉ}x²õ#§)ÿL+û¾aiÀ½]VmKÏcŽ…æsìÌŇ<œ;K3:èûi-q-¦¶o|£ÙBÛß Ò­€^ÑõÂÒ¾3˜c}ÝŒ7õl+ÍM]øÜÁ}CÌÄ[8–¶–Ü¡•]£¯ÿ²4êÖr蟫œ§üt²~dÍ!ûV¯VÖñª;4Oš<±#包\Ë<Â`` JŽø¦›\ÍÞ¬+1ªîÀYnÆãn«^ÿ꽫÷òÑyzMô€jodY÷w[:˜¬úÁΚüÉÑ¿ Iþåå;€ý’&5ÿN)µ'7ÝÜ8?{ó«Î€ÔçØú+íÈ=#ý ×ÔuÍã´Ñ&çW>9?ɸÍü—º´ïfÓùÖä²ß‹ÁSÏ¢Ë+¤›lˆH‰dŽ…æsì‚ÿœ6³Y,µÐÔË-ºprß ‹s¬ë{5ð~ôÓ´³»b¦5,ôêJ,jÃÝMFg7fŽôoWàf<î¶6]ù¿yüéPTöÚš|Û èá M‚‡aAšÄÇߎ›tÏÙYš{<±/包>üTE,'ºUrÄ[¾×.%5Ÿ¸ªë“ŽT¯®Ç\ç%t¦>= ÚOBb­/H3þï¬ívvó°a‹GO-Šzùî ïf]ïo¼sôè¼ ¤vµ–ïõ˜šÏu ‹sl³ãî¿~ÜøJûÑ­Õ؆ïûLÿc§”¯ß|Ox@Ò æXh>Ç.iž¸{`´t‚Rÿâø§·kݨsüŸ‡Åo°u­³jÄ«[p§ ÞI™cýÛxÌp¼ ‰gå¾5nõŒW|—_ ‡\ö ²í·â’ø3‡îÙ^z~æÐžÓL¨_£ž÷ã!ÿujIòÝÀb_Ê }ø©ŠX®t+ þ‡t^Tªœª“a—±÷ €«ºÄMŸ`ߎ~£j^ ââ\ìÛéVô+žø;8µïºÄþþý߯¦ýòvø~g¥öÞ_Q 'ÄާߨT*Uk«s}»Ý;¬»ð}¨`N@ê…i^¿Åw[¿IªO¿Q5¯ÿÞœª°Ø&‰JÞzq¨éþî9ÖO>×Ös»ýÔãëë^ªÓ'OõÏëVÜ=ܺõ©%ô•ª»‚éìÛIaÓub–cû¿ùÔóFëZ™†Ñ#ln–Ýà©~Õ“/LzE ,±=žØ—ÒoT*U?ëÑï~_<˜JÕù:a¸ÁØ“™ÀU]‹§?´«E¿Q5¯EŽgBíjI?ôýsøÆnnûÚÏþ¡nÙë7ýÒ¨$##É8ê}ooiF¿¢Nn3ñd&ýF¥R©ºXÛtµXv7\Wžøk¹jûøD·¾Šõ Sß6þnAÚÅã­zöqÌ2*ûõêùï%?Û¶11ƒ~£j^—9¥5÷–BDjSÏ/dãË'X·¹Ñ5;óÌâÑ ƒrÔ…»º÷T¯},~£RõoW0ý¡]-)oí^w¿çjÝÍ÷‡¤ö½ˆ})ýF¥Rõ³¾Øÿb¿r/0•ªó•wó`ª4«”ßüÂùw7[ÛàY!y4Züð¡¸ævu[mºZë“î_fy‰²}&åè—wS©Tª®W]y°º*¾‹ÖÃÌNÞs(û}ñ`ª®W)¼xFNt÷Éùõž×ß‘ëßФñÙ©3ëŒv>_~¬«[0ï¦RõuW •wW¦hdg½ìåƒÒŒ•­Fý±’wS©Tªtª½X|:•*ªúbæÀÕû àñŽãŸùÓ™ú\E¨ö†4Ÿ|¥ÿ´ÉGzÇ®¼h ®³áù†o=¼¬éôÜó~y{D±ôC_MžLgR©TªôçX]y°&1°¨úµî‘³Yj1°ºg3ÇRÕͱRxð¸ëk½ÿ®ÝEØ¢îqéÖu¤ÿ `:“J•û®@*ÏÖÖóƒ›|Û èá ©mùÔ=˜Î¤Ê離°ša5‹fpgäW (öõzËë­ç«4Ÿxşףgò~Ì{ÓÍ ®fo&®êšeáf<î¶êõ¯Þ»zoáN:SŸ‰Pí,‹ã>ãnK'(½ñ$f¹«ëG3:î¿ÖK\¡øÏ¿¯Ù¾}ölñgt+úµéæÆùÙ›_u¶¤>ÇÖ_ÙhGî™ê GûmßÜ'ùHÙ«2xêYty…æÿ &ÃÍÏ'‹¯mð{³ÈG±R €Í6D¤D2ÇBó9vÁN›Ù,–_,µ÷7ÜÝdtvcæX@ÿvnÆãnKaÓ{×ÉÆ×÷—§#sýZßx2ñWWÍ¿6&~x­%/?à›m‹W®HmË'ö¥œ±Ð‡ŸªDXÈ‘Ü~ºçÓ=…îšÏ·âÏ¿ùз,`@ z$õHʯ£ú"/5œá:lpÕÕ´´ñ¦žmU¯ïݽw_ì¡3õ™èÕÞHKÛýg[é¥6=÷¦-×öq¬™mÂüGmN%;•êbè+j©áÙÍÆ©ÞyqNÒ™ +s¬eÌöìDs鼋÷ƒ&CNÜ ù×üß´6Zˆ¯m¹Û$#d]@ÃÐÐ×­Ò €S›ä™¥zçÅ9Ig€®Ì±½;=9ߺz#Ò>i«ÍÒ~«£q\îâ²×Ö!ÉÁæfÝîý<.mõlÜf~‹K]:k}ý²ø,žþ+>PZjO)nŸl×áæUæXh>Çöt︫ pÕUŸg\j0Çúº+0½_ ›®¼[]FŒøps³ô½_þÊø“z§sçGÛÇL<|b¸ûâ´‡1ç|b÷÷´Ý´Â`æÐžÓL(ýN;Ø=ÿïmƒ„žO||\2»È°î’_è[0 iŠ4Ei«W<ì=ÄjUhp•Ô"/Ï¡¶M½$f}Ňo×.­­L¥3õ™èW<ŸÛ«qjöQeQ™¡¶Õ”,í3>¹ƒ¶žš&8,$ QhÈ+>PK‘¦(mEg€®Ì±uœ2äÏçRJ_>Ç7¼YG÷4ÿ7có6Ý"îïîÓ,8/}‚ÔÞûÛßrǶ„ÄúVå&1ÇBó9¶áú&FÙ}—]JïcN\uġ巂—2Çúº+h˜}T욤³©34o‘s¥‡æóÏ”«FwÖ.\4=Ân‡ÔöxbGÊ ¹"Ö-ò}Ë"´àéÖ§[•¯xŽE¿m¤ï!®’Ž ˜jåôŠw«ØùÚù>ÝKOBýðŠgøéšSÍê JÛÕmµénˆüà~;{LNÅ•Ä9IO€®Ì±Í¬ºÞy0A:¡éËs;Öúú;Íb ÞÒÐ©ÅØG#ëjÜ+7²éå.[ìoócÿáw;NŸ¹úqýëí¨›ðXrÑoÿ;Ìë…E$;3Ç¢bslÀŽsM×'®ŠÚqR¯À”æX@¿wS­œjJm_·e™Õµ»¶Ó;ý}^‡ô¦3oÝjô[ýÔœ°.ÁÍ»]ÿ|rsÃeÇŸê1â³ù e¿Jj{<±#包\KŸþ„¾eZcØÉ°Ó“ÓªÇD¾¹ÇG]ùPe] €·tˆò÷R½Û»,wY¾N7Bý Ú'Ç[n\ã糧ÏÙ•fÍ7MvtQ½Ûâl¤@çXó³á·’⤗ëJ3ô-[g,øçṈ̌¨ØëÖ7¢xvW]ü h)×%>I}vfŽ8cÅ®I÷uRÞæ‰½(g,äXšô3ô-‹КðváíŠV«Çb–úÇèJ¬+uø†Î…qƪwûn»ut#Ѫ}2|Ã@ã8c"[íÖc1ûùǨÞmq6Ò ‹s¬ñèù¿],‘r˜ª‹µeVo÷,oæXTlŽ5ôlÛ€ÈV»Õ­fÄ®Ù̱g¬Ø5±sÓn{QÎXȰtú–E hÍíY·g)LTí?K™ÏÀ§­š1%tÔ+~s°å€–ò¢”ÉÊde ݈—’•ÉÊѪ=“qÊs” Á­¶ê€ö&wRæ«Þgq6ÒŒ ‹sló¶Ý¶ßßMd«­Úïðfÿä(æXT~Žõ?üñ§·ÚªƒL%:0Çœ±ï ¦„Žraÿ¦­*ö¢œ±7àêEè«0 =/”/”Ê®]-ž©(7ÏO2t9ÉØWùfcå«z‡¿~úõÓ¢¿hC¨½¡Ú3a6þWCc n+_ož?ÜÝå¤êç¡8º;Çö2*u!ñmåëGM§´¸Rƒ9•ŸcG„.ßCp[ùúI›ŸŽ?Ä pÆþ÷®ÀÊ'4–ý[嫨…rÆB¿y„¾š ´ì ÁAƒ%ª‡Ë¼&nÑ›þ*S‹ì¦?°«­îø~”þ(]‘MB•è uSdwæ »Ú„¸•©ó6ººFoR½·â<¤@×çØöìÌn^"¾­Lµxº-4ñs,´;Ç.sL·2ŸEˆ[™Ú£û ]ÿbŽ8c_µ+˜þÀ®6»¸ÊT± 包> ~3}_0 e…&…&Ê@uÇͽÏ&猟ÊX±ÕÓº_ðÕ»ê³ØgñóýôÊ'úDµ¢z®,Þ@ˆ[±zï³cׯOUwâ‰óÞy̱fã6¥œ$Ê­Xí¶Ñ+÷r æXhwŽ{|çÒ=„¸« &þúm-æXêwÖý‚7°‹«XûOÎXèàªCè[À@•ØR{Kí"Õ£gêÂîmlc|ÝšßÈ#Üq¡ºýFÜ8Å{tÊ'úD]å7Š=à¸@÷uëÔ…#GÙ¦z?ÅH×€œæØv­­¾»S‹(÷u«ylø¹¤æXTÝ»d|Rãè¾n5ͳâà»Ì±þ×®À#Üq!{¹×­bÿÉ ýA¬]„¾ÚB T‰g¹Ïr•ÕF cJ|Ü5¯þ³Líw)Tï¤w[ï¶ÏÃè7hNôŒj/ùÏš²|—‚@Wóš±ó…Ú!LœôÈoŽ51YQ|þ:±®æµã8Ç’‘̱¨º9ÖÊÉóÜ×yºšW¯È}ž“R˜ch¶+0µß¥`/§y;OÎXèàÊ#ô­ À@Š£îx*8:}”½£aù5éÀØýÞõÔÝÃûQ÷£[è4hNôŒºŽJ:5Ë»ánùµàhœ£½º{(Î=: ä=ÇZ|»õ«¤†„»åW“•-ÏÉ‹73Çzî2qánùõßëRó,¾cŽðú»‚±û½ë±£+¿Š='g,ôpåýþè÷ÅÓ}µ‹¨B …‡ò®ñ6ãmOŠU*ßÁ&;¢›2 ª«O|=&:ÞWwÐG|ñyÑ!z #úG]w=ñíáxŸ W]õìz7º©ê}g8÷è1÷Ûþ¹]ÔMž¬þcŸw†ÏHºÃ‹7?Ç.©2ðW‚^uµ–{FTs,€Šî <&:Þg_§®Š='g,ôpå•:•:)3}µ‹¨rWž\yRš¨ö7àFÙÜ \ΘX¶*NÌxlm4Ò®‹ó¯«Uï˜á:ÃuOΕN( Ì »PÁ‘bBée†è%Õi7¸Å¯«'Î%Z÷–­Ñ£>_¸\Ýi&Î:º ôgŽ5|2{pfqoÙj©Œü3¡´Õצßܻċ7?Çv7êöS·÷.Æ›š÷–­Îm×[Ô’9@åv]œ]-vVìîÊV±Û䌅>#Ö–²ï&ô­<`à ‰<yöÅ;ꆡxÛÑ{gÝcduy/³ô†êîÕÍ®7»*êÑQ¨<ÑKê:my/Ϥ†„¾¢ÆÛFöžuOݽçú9ÇöZµìB†ѯ¨vn~}s,ªw޲vÖœðhB_Q=7ß}=s,íí ÌÒw²»Uì39c`H0ð¦¤(S”%nÞnÞÏŠÕ Fi…ã‡xþSŸÇõÏÎÙ´FÝý9òË‘_ŠÇÒJÐ.ÑWêºný³ùÿÙ´FŸ£ß´ÂÝñžÿTwÄ™&Î7z ôyŽí=eÕ‘ôl}Ž~»Ö›tíJs,¤3Ç:¼³¤ïš?ô9ú¹îPó»Ì±ªfW0pΦ5ú¼Á;LÎX@ †4oTÁñ‚ãÊ€š}ÔìÉuCRR›± ½êÑàXè5}¨]ˆÓ€O6û¨»'kÖ:òq1¨B¢ÇÔu`ˆ“ßÎÍ>Ê„¸¡vúý&µù¦Ä{¡º{"Î1q¦Ñ?À+ª‰_àéóÑzýZîØ–ØeÝÄ!W-˜c!Í9Öþt@͵÷—]Jëc¡?ѯ·åþ€‰)̱ª~W0à“Í>b¯¥?{<±·äŒÊ"†4Õ Ç$ÇD‘¦nTõØ}‡õþkå=2–˜ÏxkØS¿y½ì¨î>ÌÍŸ›_ðŽò„ò„²˜ÎA:¡<¡,ý¦®ýæMLß;°Ä<þaOåý»¿ÑÃmùg”8Çh`ŽU­Æ“æß½øTæÏú Ú>>Ñ­C{—›k™c!ý9vÀÂ))ß„/?šqج£¼£_·¶i³G0Çx³»‚Þ ö;.yïñÄ®’3PE i"ªM–_–Ÿb~ùcÓg™–ïGÔRä{½cýŽœFÆFî6cÎõËiW3ÝOÝ÷î•à•ð|ƒb®b®òÝ‚7Cô›è=uÙ/§Gxºß£NŒ9'§ÐW‘®ÈúÏ2g¯¨Uþ¹$Î.º˜cËÿ÷ŇŽÆ]³ìÿ~¤"ᙜ¢ß~µ7MKéÖlÄGõ gŽ…nͱ{ý’òå¢qû­eý¾u±Ð´–;OvlÈcŽP}»‚v5ÓýľKN<±“ûIÎX@`H0PÍô{ÐO±£eT˨¼½êF¨^ù­g]ò¾Ñxb°k‘Îÿ¶ ¯Ã4ÿ›åŒ‹~YôKA "C‘¡|H‡ ~´ËPd(Š>üïÔ÷ÝXËÿ¦®G¿7ÿç¼kQ¯ün/y«ûNÅ%Î+: ùÛ¤°ÓÅì)}[¬û8õ¤®G¿ÆÖó·]ªÉ y̱“³"fÏÞ¯ëѯŸÍ©!Žÿ÷‘aÞ…2ÇÒ®ÀašÿM]ßà‰=¤ØIrÆå#†4’ð´ÿÓþJ+{g{ç§'Ê"×ÍÐ&¬Nñ ϛպ22Þrœäââ1¢ã‡9§]ËÿoI/Z¥T(ôªÿg;¥B©=Y~ߎèhÕë´ë-Çá.ºúψïe³zÝ,ßܰ:åwâ\gM¨ÌÛeŠëWÝ,]¿ÎL\¡+¡oßà¯S=ZMëó8ëmæXÈoŽ5ŠâýsƒO&üÜvøH] }—ÌxÛì¬ýXëuá̱¤½+ø0紫؉éÊOìÅî‘3Ð0¤‰Ò ¤Rf­ùrÍ—…‡Ê³DÝei½íÓ G§²7ÚÈxÏqræø5~^½ëîªÉ÷ggZâH@šDjÒÉ~^ö½çxì?ã×H-ô-87ÂÞ`—ePü§4ù^ÄY$Î%z Ý9¶ÛïõdZ|»õ«¤†R }Íì7ÔN‰ëÐÝ~ìÍæXèÏ;ÀoJü7Û úõ[©…¾ÿ^—šgñÝ8Ó/†,ÉdŽ ›»‚Þu÷¾Ü•Imƒ'öŠbÇÈ T 0¤‰¨sMÎ5)Ù¦Éà%j°‘ÅÌ­}²ºÿ6úFuŒ‰SÆöð.Ÿg`rª¹&×<úÏÑ>”Ó:§µ"•¿qHŸèUÑ·štøø<›&§š'Nùf†wiu…¾Ù üqô`£Yoí£ùy"ÎþÆofŽí\:~̵eýl¿ì–\T]¡¯‰càˆógÛ4µ°¾»‡9̱=ÏÛÿ|¼¯×í}W'¹WWè»èØ™Ÿ‡»é7`“s,yí LN5;´êÚà‰ý¡Ø%rÆ•G i"$­`MÁåÂO›~Ú´p¼æYÛο¿×{CïÁ›&]Œt®1õ°vÇÄ’ˆ‡øí½Qç>œçk2*zŸæ×&ê‰NüP¼YY¨,äï:§PY¨TŠ~ÝΟçëj½ï·÷¶Þœû°$âlÇa´÷^ŒŒž9õð†ÞóïlšÔ¶sËk÷zk~mâœgÉ€êšc47}ôU×V“ß¹r®õgÁé½´ôZ†mߘ8²çá¥/4lŸl×éæUæX0ÇjRû¯tï´ëÃiízàqcù o÷ýC»qïì3G<Æz9t\2kÍî¦V­"ïödŽ O»“QÑûÄžMìÜ´»Ç»A±';CÎX@»€!MÀ€Î¸³öÎZÅPŸçæ¯;JŠÚºv£»Y‡Ýž›¶nþ€ÂÞ¶±¹üc܈ ’ýÉé«y™±AN|»ì°Æ?ì›ëÁ§‡÷ûjû÷ÿì\gT±ÿ_QÃÛ„·)Z]èTè¤ âo2ùùΩÐI$z»2¯Žá_ìg8ÜËwû÷߬<|êØåãýÃbƒ¾úË÷د?E\›—ùcÜf¯ÉÑ6Ÿ¯ ^7ß÷YØ»nÏ]Mk]»E߬Ãûÿç‰8[øÛHyŽmÚôñ£GmwêtÇ»‹‡ëÏW'>žm‘ùWV‹,.ºôüdÉ¢ Ö=û.>qa¡±Ëü+Ÿw öJ¸ü~ç™|}PˬÞS³¼™cª˜c g ¶‰­;tí£-ïݺ¦ÏÒ‹nÍ"âf»zù&múÅivQ—¦Ýt/Øþ®£s‹õŽ‹:Ø;û;¬ÛÐg÷¨™‡^4Ôâú½‹Ì±8cÕï :ʼn½œØÑ‰}ØÝ‰=žØé‰ýžØõ‰½ŸØrÆo0¤‰ÐI·Ü> è»(uQjÁÊÊŒ’U]£,£,_X>ïñ¼‡Ò¿5È›èsÑóR~UŠsCœ!ü­˜c™cæXàŒåŒ*ƒÒD 輂ø‚xåâc_û¢ØÏ6È6èiDu ‹~Ž~Žéîéî¥íù{ÄkA¼.ªëU)Îq>ˆ³‚¿s,s,À œ±œ±€¶Cš€z~þùyåÌĤĤ’ø/ ¾((ü}ÀÕWóµ6&:Ÿq>ó,2jyÔòƒ®f^Í,½¬,Vsßr+‹•Jñz¯ñ:ÒÖ«R¼ÆÅë]¼öÅ9À0Ç2Ç̱ÀË ú†€òrñåâÒ}q]㺖8œq>ã\â^äTä¤ÜĪ‹x Š×£xmŠ×)wæX€98c9cå#™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ø›W:ãe¦”o%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/publishBehavior.png000066400000000000000000001501751431412030200265300ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝutgÿÿ¨ÐRzã ‚%! `Å)î$HñbÅ)î(NqJ¡¸fœ@Т…â®Å%hòýãêçürÿ¶»÷Ân’ÍäùØsæpZvfvæškß\¯kRÄL!‡ÌL‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚L‚@ì¹·çÞž{Y$²Hd‘}Í÷5ß×üuý×õ_×çȉE\ƒâzצ¸N92PÇÔ±@K °0¡—'_ž|yòð‘ÃG™=9zrtÈÅ‹!Ó;Ió}Í÷5ß·bÄŠ+F\<{ñìų±oc߯RnÖ½}ûV\/âÚב³®Jq‹ë]\û¢àÀ¨c©cêX ¥€ä†Hò¢£¢£¢£vLÞ1yÇäcjŒ©1&}"é[·oݾuO´;ÑîD;Î ®q]$ÖU)úÑ?ˆ¾‚ó Ž¥Ž¨c€>–>pË«lï§{?Ýû)G‰‹H’®ÿ~ý÷ë¿<6ðØÀcé]ØŠàÁ+‚_ú½ô{éÇYƒ¹‰v.Ú¼+_•¢ß}g @K PÇ},},à`¸&` ɸ1寔Sº…u ëöqÅœ[šÌ73ƶ}é㛿ÉÔþ!ù¼–¬«^ýbÉü{"ë¥,uA—ëÏ/ÓSS¿`™Â;ÎÕ™ðzytµ~CFÕœ_äJíÙž¯Ý^:RJÎsŸç>ÏýUýWõ_ñT6˜„hÏ¢m;ruÔž]¡„ÛËQµÃû¹²¹nt¨P‚:ˆ:Ö»K¥ê9ÎVÒÓ'`ã…“Jú©mö‘E¥°mË{UëXsůAí¢—|Y¬Uóœ3ê–k5TÇ£H©Õ ºç~µbÎËóRÇ µ>VàùÚí¥—ctb¼NŒÝ‰q<1¦'Æ÷ÄXŸ÷c€ô±@ †k"\Zô¤èIÑ“Æf›ml6û µ<žY6d43 Â8ï.mž2èAllxxÕªÎZ¾[Ðųʨ½©d)³»wÿž>´”ܵ{×î]»c_žŠ}ÅYFRû—\ì«ØW¢ hËïݧe¨g†½©^-³ûÝ‚UFÅÆ:Tµª³–.]×=èÁÌ€þ7¼æñÌu)Ó û÷Mô3¢Ïá$«ŽÍ£t®KEr·ù¼ÿRÕÆ[×½|ù_~9tÈYËà¹Kfð(±uh……Wó­Y°e(u,¨cíQ~t»‚y&w¼³òž×ú7NðÛ¨QgΔ*å¬åwû¶…_VÇã‡Z¶ÐÜK3~O 9ø7ðÌ ÆÙĘ›sÇñÄØ 'c†ô±€sÃ5.ê`ÖƒYfµ¿ çÔ½è›ûÚí­¸Ü¹e¢ýËÃíû.jú¤˜ÞqöìsÃó Ï7<ÿÀíÛ7Î8\Ÿh«¢ÝÚÓ›>©ž5ï¸Ãí—w \äÜ ×þåý{öT\>ΧGå¢oìïODÿÃ$Lëù¾i£•kÌöڳǹq¯ýKÿº£ê-ïâž-¨Zõ¬Ô± Ž-q²–’kUøõß.ú¤tnÐkÿràŽ}J‰§ß\íR u,sóÏ;NŒ¡%Öž?c‰ô±€ã€áš€3&fL̘I³'Íž4ÛžÂkepµE~{£·wjP¹sb•ŒÖ–·ê¶9[a`ßð€tž£ìù,‘¥#KG–¦ À5‰öiOKîÞêç¨[uwl®00±B_kËèí‘õ*w^<&Êo¯=ŸEôE¢_¢ œ[Çzíë:cLTЪ…ó#ë%VèkmY¶ÖÌ4;6(^«q«CÔ±H>ulHßöQy.|_QïW"ob…¾Ö–æ{â³IéÉU EQÇHšcéø8ÀpMÀ€Kx^þyùçåk5¯Õ¼VsÛeÖÔ!î^‹Þvé¼¥J«•ŒÖ–×ê¶n2£žG¡îmºŸOü|âç±1±1±1´ $²˜Ø˜ØÑ&m·Ûz¡%Ý'^«»uzÈ W }­-ßv‰*Y%hj>¼Ùþt¢_}àH[¸}ËÝ}·\|6ª¤«…¾Ö–eÆM[¼uz‡–¤Ž…ùêXŸ¥Uºæ¬Ð¯™’Ço˜«…¾Ö–#¾=õYÀZUó(D ÀµÇ =pŸ(ÆÄ’Êžocô±€ý€áš€Dv/ð^à½À\+r­ÈµÂZQUò™[ì^W²´’>©”ŒÖ–;úÔépÍv9P¨TcNÅœŠ9E A"ükîTÌ©˜S¢Ún«;úÌú"àZR }­-¯dÙ|2$}Ég^Ù½¬}RÑG‰þа¿ŽÍúªàŸ^erN­¼ùdR }­-}«õ_4ë êX˜£Žms{ÁwE×'•Ð×Ú²ou©Š_|>ÞO²DRÇp¥±‚:®%õ<1)Æ$écۀ Ds»ïí¾·ûÚ.ÇŸ þªXó˜gáŸWMÔ Ç¸Ë{>íªWlø oªеÏ~(üPø¡˜^1½bzÑZ@ÿœëÓ+¦—h{ÖZfà¿y9”{>»wUlšÔ£ß¸Ë˜g_WM=þìw3Šýû·DßEkêXÛß…ê6kòÝŒò_-9ø:©G¿q—i~ê¸{WözE3øÍ£ŽEÒªc=F•T³^˜3r} 9©G¿ÿµüäÏW¥ÒTÿ­ß/*SÇH¼±‚¼©r(b¼ËL#xbLRŒOÒÇÖÃ5‰àÿÿþÿãׂwëÌxg¦’Ñrù®\—OªtïÛ; £çkǡ׳^Ïz=‹Ý»+v-ñhWì®Ø]¢½Y}fOïV'<Ǽ+õW•îfŠ~-—;îÎ xg»ý ¨c-ù¶îsV˜™B_Ëeð˜%M£þ*àW«E«Ô±pý:6d@û?ò\±ýÔÖ€E¦Š~-–mó,8^T¥Ž°c=Lj1.s㉱JúXÀ0\0 ¢wFïŒÞY4{ÑìE³[+•ޏ7¸ßÜ%ã-_…wªZyZý~^Ç­“)u¦Ô™R‡öƒø#Ú˜µ8­~ße^Çc_ЬZÙÜÑoÜå÷åï÷[;&¢}í¨cÿ¾£ŒåïÌýþ×2ø—E‡" OmU¥ï2êX¸f[˜ʣ֨ágŽ— 0wôwÙ5xý`Ÿ<Ա⬠¤Ÿ×q1®•|Æñĸ%},0\0Pþˆý#ö¶]ÛvmÛÕZ‘tüUÓ*å®$£è×b9ãE…žÞáÖŽÏ6u›ºM¥)Á¹D»²Öêf¼è¿Ù;<ù„¾–Ëã¯VG•»bíøˆ>Môo´%HÎul@û·­ŽJFѯŲHúÖ—úo¦Ž…ëÔ±u>ÿ¡ŒÇŽäúZ.»OÝ4Æç&u,€ø+¨ÐÓ;<9à‰1LúX@ †k"ÈÒK,=`­0ŠªÑðײ“sáw9¢dÙE:Y;VW‹\-rµ- ŽmÉZKQ²ó‘"’sôwUci@ÙÖŽ•èßhQ<ëØ’??½4 9G¿q—W6ÌÑùu,·Ž­2¥GÏ|7’sôwÙùñÚþÞ-¨c8o¬ ì‰"»K1žI Ã5ñîÂÓ O/<µV ­kPýjÉ‚”Œq—1»º<®òîÛš…›»ÿËð™÷Tï©ÞSß7{ßì}3Z>Žh?¢-Y¶±okVÊé~$f×ÁÃUÞýÆ]®k0aRÉ‚Öz3Ñ×Ѻ ùÔ±ÞO¿«4a¡ï=8véùƒ‡s/.½¼RNêX$|[Ü»jÛœ=GÞú3ªÔ'D¿q—ÍóÌhRX¥ŽàØXAáæîGĘcwq—bl“>ɰ³lß°}Ãö âŽ]3vÍØ5¾yôÍ£o82‡ˆG1a1a1a¾‹|ù.²üèSÉÿÏ ”‰Ö–Oû„µªTÊZù¸`‚ &ÐÆðqDû±ÖºžöÑü*•"îµ¶ìS©åMÏ –ÇMôu¢ß£€¹ëØü/k®hy“¸×ڲܲy]4?êX$|ûCšÃÓüÓ÷Z[–¿ÝîTžõÔ±>v¬ ¬U¥RŒ×Y[ŠqNúX$OÀŽ{_ÿ}ý÷õ­õÀ„Á‡ˆGëæ­›·nžµn+z{§•;S Ú^ù½ñúÀ;ÖŽáÝwWÜ]AKƒýD›±Ö¢Žü¾¢Gà"^ÛËèí‘u+w¶:«Á¼uóÖÍ£¥€¹ëØ U çGÖ%èµ½ôŸ6:׊Ô±H˜:¶ë¨õO}ˆxÿÇrØÔcOüoRÇøð±‚Æëï0Fg{)Æ9éc‘<;.¶Ûˆ/½xô⑵NêЩFï‡RÚ¿Ô£t­B—þe˜#O×<]óÐÞ`?Ñf,ÛÒ íGºD¸kÿòЩeo‡ZëåDH{óÕ±þþ#ß.{C¸kÿÒ£IÝwíGPÇ"þêØÐúæ=N¸kÿ2|éo½ïSǰo¬ t­B——³)Æ<éc‘Ü;Nº"ÜMo7Â`Û€xñsšŸÓüœÆ²Kê0 xžüüfðƒ—Ï2‡Í«ÔÂZG%òJä•HZlíÄZ+z–Yû½R bÝ]vðí·ùÿå}ÑÒêÀLul^·Ðµß~K ûÁÓAkój¿SÇ"þêØšÉâ_˜X÷C—¥Ï6éÖ€:Àÿ+›W©ãrºãŸô±H>€‹0ØY€'{åÿÊÿ•¿µnèÖø6*üH!øqË%ªú·<ªÝ†tÒmm¶‰vbÙ~V”í7ž(÷ã–·Æï¸TáGk=žèi{`Ž:¶l“™>;.è~ÜÒkVø£ÑÑÔ±pnÛxç¤Î…å~ÜòûVúòE©cX+¨è7ž±¸[ŠñOúX$Àñ‡0ØÀ€“m,¶±ØÆb–NïYþm=³S:²|]³Ó½Êºµnýቇ'ž Â’hÖZÎëšû&WÖ‰rYöžÕ²¥gvËc+úCZ $õ:6ÿéše[¶$Äudô|Ñô}“©cáÜ:vxÝ¡‰rY–ŸÕ®bžÔ±}ì¿tºWYg,Α¥ ¥Er@œ0ƒ?0àè¢Ï"â[Ç—WOn-Òßò‹þPô´CHºul™žÓl-Nˆëø²h¶ö9]¤Ž…ãul½é#ÖœN|ëø²Ÿ»¼Ó¯+u,@ûßc¡Ý|1þæøRŒ…ÒÇ"9 Nx„Áö œæzë=®÷°ìVBòç››s eŸ³–´Ÿênyœs…ä É{4öhìQZ#þq4öhìQÑ6,Û̃RçPwâ[g-CòûßȹÅò8‹¾‘ÆI±ŽÍ‘Çk‰ÿ ‚[g-·Î$u¦Ž…ãuì ˆ¨q%«ß:ké9¦tÅl“©cúØÿ+h?=Ôñ7g-Ÿ(},Ì8q[C 8ͼ¼óòÎËkÙ•ìØRghÀcW.Å~ÚSq€ÏWboÏ×n¡¿uýò±öLÏWn/-öÍ´7ÓÞLKk„ Úƒe;©=³‚¯ÛKW Pµ› ü˔ﴴÁ¡KŠ»n‘-söñY7fxSx\ÿ,sk— ¹çvmr¥Þå½òF‹,V¹¥«íÿŽ-³[mÑ7Ò )Ö±¾ ûïèS(Z”>òvaÏïz¿É]¢TÝŠ² Ïçëé™áJ–Èl=²YÄÇ·¿û½ò—k}WbõÐì ×»r œëv@» ¾Ô±ø¸:Ö»s¥j9Î&•`uxë-ŠêTæH¶3ÿ<)å®ê¾m]m?Û¦Z°²èêX€>VŒ5¹Â¨×» .ŸTéžéd†éï¥ÿ(·æ¶yVa‚+|1.J s#v„ÁqNã]л wAËîãY¹°5•Â\4LMž®jú êyÇçü¯Â×õà¹ê¬(õ¥åÑ^¼2xe0­‚h–ídg®Y“J}éÑiÚC骦ï}¿å/ž^úϹ#¾+¾ <ä:ð³rÚÑJaÿ2LYл wAZ#$Å:¶Üy×´£‰—–ê7!Ëo²~•ÿváöKæmY©WýúåÓÿ’îP:W €}»|ÿé¬IÔ±ø¸:¶m™o‹F%™'ìJí&æYbù)\m?èv¤”¿u,@+Æš\aÔëBù–ÙË—Hï× €Å¸(},ÌØ5Nð|áó…ÏZvËòÜ˱Á•£ß1åFý—éþ\?~4¸ChèDË=¯Ù§fŸš}h“D{°l'Ë—B'ºBh:-kß¾^Æý¨œçµ¬«ç·û¡zñzGó­ØWîqgðÄö=#‹mq ÊÙ&ÓWqÿþã'êg¡—]'\æ×&ÇËc.úIÚ$$•:6{h‘~m7( ¾ºtèÁú9Îø\/}üŸÝZa_Æ*ùþø&eÓRÞ³{äŸ>à“1cV…øù>dÖÙ¼>¡—¾“¾|úeéÇý,®—K?w|‰:WÇþå`Ö’s\?úm¶núäÂó¬ «¹æ>{´.9*ëiêX yt è·= ­Uê¿6ë`Ewï“s§†þè³Þžåóm*írq<1FJ ³"v}É3 &œàxÌñ˜ã1–ÄÜi¡?ú¬w…2ën×v)*z­íYݻĎ¯s™UâŠÛÙZëÚ’ÀsD^‡w®Z%[xÆÃvYîÿû4ïÓ¼OCËLÎD°lÙ³˰+öõ¡}U«$nPúj`äíʳò=qÿOæœbß¶xÎ>Cºÿw%þÿß%þ{ÜwYû›‰µœ;mpfŸõ–G^ô“´LH*ulQöUgNÜ ´xXŸÓþë§ŠÞºO×Pü_ËpWü—‚‹ÄtþMü9kg4EN¹ÜDÐÁ¿,:´/ÃàÌ?f9F ûëØL3²úd(7jø™¥\9úíYj{¡âû³¤È¾!ö¤×Û4âZÁÔ±@r+Èx8Ã.1Öä £^"îûV¬YβY“Ìx•¥#¥…Y'-É' &œ`éÙ¥g—žµìŽílr´Ü\W(³–­ºË/Ðþî,©”½{ù7ðü—ý¿z/ô^(-39mÀ²môîÕ²‚§KÄ¥»züôS©†q÷mó™i=üÏØèÆ}We­l\¯\'>¶sÕ‘rs-¼è'i™TêØ€‚cž®:’¸A©gãÆÕº.û“9ÒýN{¦t.óË´G[_ÿßÍ¿ÿßÝÀ®ç?Z³@Ë Ô±°¿Ž-?ªGžI®ýÍs´—×üŸï”õë*ÕYÝv监Tàn/6öÙL $×±ÿž.4Ö+uÉ#±oõ/~’§pR€Å)},ÌŠ8é2wL 8A¸G¸G¸Ç¿LÕ¡MèBW(³NíhV3høô/Bvx½±\&Ýø·35ú”üÁrÿ/;¼ìð2Zfr&Ú€eÛøíÌÄ=%p… taèP½¸ôq“9Y^;p¶xW®æÙoe\ä:÷?ŠRr…þËT¢¢Ÿ¤e@R©cËå™{HÉ•¸i¾˜o~jú4s¸›‘o{›à"5ÊÚå–Ý1«å®ÿž¹XìÜÓgâêXØ_Ç6?;s~á÷®—Îݰ¬[æîWër.‡ïˆí§¶,J*ðà}›”\F $×±‚}Jþà:ã]5›xpëÿÏäÿJ¯)œ5éF¿ÿ<Ê-ªCÆ `^Àæ`¾0˜p¿#~GüŽüËnÞ]ZVYîúEXÒ €oZºÜËýÿõæ¯7½IËLÎDø—Ʌޝ^[îŒ+¥[¢¦ HÛ5¬±ä1¨Wê…ÿï·½z÷pÉã^_e÷pø½÷9U–[yÑOÒ2 ©Ô±Á[–Ü?0Çå&O¶cY´~û?‹{ß°kÀ-~\´z-u,ì¯c»ÙæsÉ5£ÓoçŽêSðŽØÏœògÉ4r@½K JZS@,rzh€A $×±‚¦¥ËqÍ‘ºy½*•)žSÜÂQá}þor¹ç®™yqÆS>^¹ªf½Ô¼c19ïù¥©ªüæ;76mxºª.:¦'ÆHécaVÀæcŽ0˜ˆ—.>ÛœŒ3I%FMºðí ¶¾6XîÿÄ_'þ:ñWZfr&Ú€eÛ¸´³[… ®3a²åÄÎöü͆j•£yþ¹¸ï‘Ö9<ç¹Ú“€³ÍÉò,ƒño} ÀÕëØ £3ÿ’å™ë½¥[Nzüûqÿ“£Ÿ®íëÞ?çÌ6ù½ª{6û=îg)ö¼ó둽\3.;xæ‚ݨcaûýf£l‰ª®š†·]÷ÊûtÆ:™Þ¦ÿ#CxÆ®éGw<°r‹×ò¸AoR €Å2Óê¬ 3„RÇÉo¬ ­o… ®0ÒõloØùJ£âî[ÖUÇd˜bOðð͘‚Ys¿ÙúVÈM×Çã¥ô±Hÿª"6“¤ñÒŧÎûGβÀñ½|:-¬K¥`ËýïÖ+¬W-39mÀ²m<¦U«ìšðÿ¸³ÖëÀœ*ˇ4ìð¾p­î®èš½HÆÎ7¶oï]!·«ímpê’r–åuëØì;‹5+YÁõà,ò7,´ÄJ€ýÜû«n~<ïÊû_nͼÁZ5êXØ_ÇþãðjÿL®”zõ¼dk·ÌžQ™;‹=¬sðBpˈ7iÀÇŒÊVš:H~ca]*»Ä³r?i2±Üwÿ2Ur_¿f¡¿U¬X²¹ø;›nÕjèÿK÷ª%:yÜÊ2}×ôÿ5¾çšw‹ñRúX$‡U›UÒ ƒS¸Î%˜I}ï¿çIAßËèÈNÍ*w¥½Á~Ñ‘‘-*wMZѯxâo¥ce¦æÒþï÷¿YJg˜¢~6oOéã®vï¯XÖ÷®t(O Ú$E¹–ñªt(éÀÿ5©àƒÁÇæíqÍýZ»pyd Úì7lαÿÛ.1UòÂ?«Ü-þ ÚÆœÿÜs_bI­¹fJw&m© w“V\|^5·œ³ho@ò+èÔ¬rWWéÚÕ£nþÿ{äS‰+n_d{¸®^õ+%=âŽàY¾kwëºCJMú—ØÅÆñÄx)í @ò´}Ãö Û7I^³ÚÅç]HßË×u;ý]Ù ½Á~¯ëî›^ÙpýÐ÷|íß³¿mU¦Öwù†ÇÝÿÒ³}Þe9â»â«ÀCÿwµºâþ7«]½UÞ…´7HŠÜ‹ ¯Þ*©<ñ7øÇ%M£þ*3#ÓöÞ¾k¿?þÓO¹K”ª[±CÜOT²Ä°?_w¹øÅ¢Yû¦ÓÞ`¿áõOT ðt…ˆ´zú¾Ó ü_q¥Èý,)†4‹/¥½HžÞ¬³þÍz` Éã`î†krå;€ß4ßß¶rì¸i=¦KŸe[æ!šˆ}Λ.÷O™ÖOÿ¢_q¯7¯Ã÷­¨|àÿ®S× °¹’®¤r°µ¥ønß”¨r4îçâ`$u®pp—ëŠ{ÿžþe†_Ò·ÊäŸer†ÜÝ3l\ç³G졵wY~îàzc®r°#Ëß3׬V2F|"ßØÜ ²ä`pÉè`1:/^æxY^Ì<8qŸÜ´nÓºMëÒ2“óK´˶ášÏ¾Pþ÷ãåKlñ}†ØÏL'3}’þÞðlñ|üDý,ôòÿ]›IcÚjkϦeòâÅ‹—ë×±IåÀöÄÀBæ@7¿¼±®[{0u,/ku¬+<¸Éå)] ;yà~`ñÈ%"]ÿÀ´L^¼Ì>Và*ÏvÖ󃳮Ê8&ÃWå³ö `Z&/óý«jnª¹©æ¦âȘïµcðŽÁ;‡þIø'öW¼âï'£gæ~Ì{¶9/f0€ã{y;¨­o… –û?ñ׉¿Nü•–™œ‰6`Ù6níìVaƒë¥WžnZ´‹Çú¬Ÿ‰=Þ?iÉ’²?Š¿“´¢_±Ì6'˳ Æ¿õ-W¯c3ŒÎüK–g‰Ž.™SJÊw¯Š=ïüzd/û×àÿͨrËk‹÷fÜŸ}i®\®—‘Wœ³²övµQ>1^J‹äð¯*rdÌA·c׌]3výõ­øû úÆE 8ß¿#~G,/ò÷Þ]ZVYNËãÇ›–.wÆrÿ½ùëÍ_oÒ2“3Ñ,ÛÆñã«×–;ã:AiPõ¿æüçŸg•µ²5r½zè. JŠ¡¯X¾÷>0§ÊrË#/úIZ&$•:6xË’ûæ¸Î]¼ù²VÙÕ¨²ýï-öuG÷¡ºxo®ÕþóB|\-hñã¢Õk©caÛ}Ȧ0ŸK‰ŽþPöðe÷Þ)wU÷mkÿ2î§h§,^U¬†åÿu…èwd‘ÓC êX ¹Ž4-]îŒKÜ#˜÷ZÎÊb¯¾S0kîãö¿·÷}ÿ‘ž^â½aJñyJ¸Î(Ÿ#¥…Y›OÒ }ã"œ Ü#Ü#ÜÃò‚Õ¡MèBàø[þv¦FŸ’?Xîÿáe‡—^FËLÎD°l¿™¸§ä®”Êù-öϽV)ÓN_õRÞM5Ê/IºÑ¯X>ŠRr….ü—©N<Â=Â=h™TêØryæRr¹Nœ~A†}«”œ6üÙÒÿãÎÚæ3K︗ùëÜKòþsŸgáFÛ¯ºZìÜÓgâêXØ_Ç6?;s~á÷®üô\{ž,B_×ÜÏÁû6)¹Œ:H®c5ú”üÁ5Çèì©S?ûvNé㞦7Òߨ_ÿ]™u®3‚'ÆHécaVÀæ`ŽÐ7.`À –ž]zvéYË‹ÿØÎ&GËÍ%Ž¿eï^þ <ÿ¥Û½z/ô^(-39mÀ²môîÕ²‚§KÄ«76H[ üŸ»šž¸ÿ'sΞ2up&ŸõºtøØÎUGÊ͵<ò¢Ÿ¤e@R©c ŽyºêHâF¤¥ŽO,»~a†+Y"³õˆ»oŽÔ©Þ¶nñY}æS=ûº÷Ï9³gãÆÕº.Š;á³xú¯˜PÚÕžRœÿhÍ-+PÇÂþ:¶ü¨vy&Çß²Û‹ƒ}6SÇÉu¬À¿§KŒ†=¹V¸RÖBs²ŸÈÒŒ?Mo¤Úi©o­K¶îªÝ. ò¡:¶^_¢ÆO%gt¯Z¢“Ç­¸ÑoÇÅŸýßhƒ =Ÿxg“£ŒÀ¼€“.ó…¾qNp<æxÌñ˜yØû´Ð}ÖÇËòuxçªU²…g<œa׿L¾æ}š÷ih™É™hÿò|îð,Ç2ìŠ}}h_Õ*‰”Vx_ªi.wg=5Íuà¹ÓgöYÿ/jÅ9CË€¤RÇõh_epfWJÿyŽï¼ìis¶±ÿ›1‡»×ÿË¥²{ò믮vïoùà_Ú—apæ³£Ž…ýul¦Y}2”5ü̉RÀñ±¬·iĵ‚ ¨cä:Vñp†]b¬ÉuFê¼Ëå|uµýõOû‹>7óG¾ØiAåY®6Ž'ÆHécaVÀI‹¹C߸€'x¾ðùÂçÿ2Ià²<÷rl Ž—©cw h¹ç5ûÔìS³m‚hÿ2=û`ùRèÄÄ Jó¦ËýS¦õæ €—ùµÉ±ÁrE?I›€¤RÇf-rï넦ÿLæÜ¸qµ®‹²kÅ”씩~ÎÆnõ2lÊR2ëÆlç /,¾Ó}OùÚ57{wê>q\ÃòéIw(ËE¿åùåСréç./QÇâãêØÁ¿ÌZrp|,=Z—•õ4u,¼Ç :„†NtµñºŸ‡‡^ò¹^£SÁnå œÈÖ=ó¸Ì{3Ë·ð¸^Yæ¶Éá=<ßß’_½ñ¥}â¾ËÕÆñÄ)},ÌŠØõ%ŸÐ7.`Ài¼ zô.hÙM<+¶¦RXR™T9©À;sÕYQêKË£½2xeðÊ`Z#Ñ,ÛÉÎ\³&•ú2é>g×5—ÏÊiG+…YmÑ7Ò )Ö±åÌ»¦uµØv¬ëš¡oÜ¥o—ï?5‰:WǶ-³àmѨ¤8´+/èv¤”¿u,@+Æš’âx+æ‰qQúX˜°kJž¡o\À€ÓÌË;/ï¼¼–]ÆŽ-u†®Žõî\©Z޳D¶Î]¶Mµ`eÑÔ±}¬kbÌ͹K1.J s#v„¾qNs½Çõ×{Xv!ùóÍ͹…‚ÏYË ÚOý—'§æ É’+$öhìÑØ£´FüãhìÑØ£¢mX¶™ ¤Î¡î·ÎZ†ä÷¿‘s‹åq}#’b›#×ÿD¶ÎZn3HêL ÇëØAQãJV'¸uÖÒsLéŠÙ&SÇô±ÿ7VÐ~z¨;ãoÎZŠqQúX˜pâ"ôµ†pž7±obß *T$ȲC¹z²µwHÊ>Ç—s«‡vóYdy„?_ü|ñsš!,‰¶aÙfæVtÑgÁ­ãË«'·éoy„E(úFÚ!$Ý:¶LÏi ¶'¾u|Y4[ûœƒ.RÇÂñ:¶Þôk N'¸u|ÙÏ]Þéו: ýﱂÐn>‹s|)ÆBéc‘'Ép ôýPÀ€“½òåÿÊßZwsk|›~¤ü¸åŠÕýÆ[ÕnCº é6„¶ÛD;±l?+JŒŽöOˆûqË[ãw\ªð£µOô‡´=0G[¶ÉLŸ—ˆr?né5+üÑèhêX8·Žm¼sRçB‹q?nù}+}y‰¢Ô±¬T ôÏXÜÇ-Åø'},’àøCèë` ^üœæç4?§±ìz: (ž'ÿ Á]>Ë6¯R kú•È+‘W"iu°M´k­èYfí÷J-t?tÙaÀ·ßæ¿cy€‹Ð×Y€xñâÑ‹G/YëŒjô.p(å ýËA=J×*tÉòHvÍÓ5O×<´7ØO´˶4¨Gû….èÚ¿ùüþÇRŒsÒÇ"y"vÜö Û7lß@èë\À@<Š ‹ ‹ ó]ä»Èw‘eWÕ§’ÿ/ž(­-Ÿö kU©”µŽ~Á„L áãˆöc­u=í£ùU*EÐkmÙ§RË›ž,›èëD¿Gs×±ù_Ö\Ñò&¯ÕiŸ—Íë¢ùQÇ"áëØÒžæŸ– ×Ú²üív§ò¬§Žð±ca­*•b¼ÎÚRŒsÒÇ"y"vÜûúï뿯Oèë\À@¼»ðôÂÓ O­þ®Aõ«% R&Æ]Æìêò¸Ê»oknî~ÄòˆyOõžê=õ}³÷ÍÞ7£uá#KŠfo&Ú’eû¶f¥œîGbv<\åqoÜåº&•,h­7}­ ’Oëýô»J&÷Æ]Ç.=ðpîÅ¥—WÊI‹„¯c‹{Wm›³çÈ[F•ú„¸7î²yžM «Ô±+(ÜÜýˆ³bì.îRŒmÒÇ"9#v–¸÷ú:ŽH K,=°ô€µb(ªFÃ_Ën¤dË%Ëž(ÒÉÚ±ºZäj‘«EhQpœhKÖZÚˆ’éDè+–Q5–”ÝhíX‰þɳŽ-ùãðÓKˆ~Ųàʆ9:¡ŽEâÖ±U¦ôè™ï¡¯Xv~¼¶¿w êXÎ+({¢H'ÆîÄRŒgÒÇÀpMÀ@Bù#öØ?ÚvmÛµmWk…ÑñWM«”»’œ Ç/*ôô·v|¶©ÛÔm*M Î%Ú•µV7ãEÿÍÞáÉ9ú=þjuT¹+ÖŽèÓDÿF[€ä\Ç´ÿqÛê¨äýIßúRÿÍÔ±p:¶Îç?”ñØ‘œ£ßîS7ñ¹I ~Æ *ôôOÎ#xb “>€áš€½3zgô΢ًf/šÝZ‘tĽñ€Àýɨp|Þ©jåiõCúy·vL¦Ô™RgJÚâhcÖZà´ú}—y}u(²jåäýq_þ.p¿µc"ú1ѧÑ~€:Vðï;ÊXþ.E¿Á¿,:Yxj«*}—QÇÂ5ëØZÆàTµF ?s¼T@ò‰~»¯쓇:@ü„ôó:.Ƶ’Ï8ž·¤â"†k"ÁÿþüÓÛ´ãn&¦È»r]>©Ò½ožc¬‡^Ïz=ëõ,vWì®Ø]´Ä£]±»bw‰öf­5öíÝê„ç˜wå¢þªÒÝÜÑ³ÂÞÙî£D?FÃêXK¾­ûßœfògýŽYÒ4ê¯~µZ´:A ׯcC´ÿ#ÏÅÛOm Xdîè·mžÇ‹ªÔ±v¬ £ç1Æeîq<1VI X"†k"Íí¾·ûÞîk»l6ø«bÍcž…^5µ™JÆ{>íªWlø oªеÏ~(üPø¡˜^1½bzÑZ0D{mÏZË |à7/‡rÏg÷®ŠMÍúÆ<;øºjêñg¿›Q¬¹í~Iô]´ Žµý}Q¨n³&ßÍ(ÿÕÒ˜ƒ¯Íý¦ù©ãî]ÙëÍà7:I«ŽõURÍzu`ÎÈõ%dSE¿ŸüùªTšê¿õû¥@eêX‰7V7UEŒw™iOŒIŠñIúXÀ`¸&` ‘Ý ¼x/0׊\+r­°VB•|æÖ#»×•,­Æ…¤Oò¿ìS§cÀ5Û%ã@u :P9s*æ-‰ðO»S1§bN‰vø?îÔï3ë‹€kI=ú½’eóÉô%Ÿyyd÷²öIE%ú+ZÀþ:6ë«‚zy”É9µòæ“I=úõ­ÖѬ/¨caŽ:¶Ííß]ŸÔ£ß¾Õ¥*~òùx?ÉI À•Æ êt ¸–ÔGðÄ8¤“¤l#†k"\ÂóòÏË?/_«y­æµþÇïé¦öq÷Zô¶Kç-U‚’JÉx­në!3êyzà>Ñö§ûùÄÏ'~>C«@bÿÛ.6&6F´IÛí¶žGhI÷‰×ên2#©„¾o»D•¬4µGŸG^‹l:Ñ/‰>ŠFp¤Ž-ܾåî>‚[.>U2©„¾eÆM[¼uz‡–¤Ž…ùêXŸ¥Uºæ¬Ð¯™’ÇoXR }G|{ê³€!µªæQˆ:€kzà>QŒ‰%•<1Þ(ÆécûÃ5®TCމ3fÒìI³'ÍNo‡•ÁÕùíÞÞ©AåήV2ÞªÛæl…}ÃÒy޲ç³D–Ž,Yš6×$Ú§=-¹ox«Cž£nÕݱ¹Â@W }£·GÖ«Üyeð˜(¿½ö|щ~‰6pn뵯ëŒ1QA«άçj¡oÙZ3ÓìØ\ x­Æ­QÇ"ùÔ±!}ÛGå¹ð}E½_‰¼®ú›zì‰ÿÍ&¥'W)E iޤó%ÆÊ\mOŒ+Š1FúXàãÃ5.ê`ÖƒYfMo·q>AÝ‹¾¹? ÝÞŠË«d<ܾ±_ࢦOŠùçgÏ>7<ßð|Ãóܸ=pãŒÃõ‰¶*Ú­=-¼é“êYóŽ;Ü~y—ÀE‰úÞ°gOÅåã|zT.úÆþþDô?œq@ÂÔ±žï›6êQ9°Æl¯={+ôõ¯;ªÞò.îÙ‚ªUÏJ êØ'k)¹V…_ÿí¢OÊÄ }îØ§”xúÍÕ¾!RPÇ0×XA1ÿ¼ãÄZbà‰ñC1–H 8Ž®‰piÑ“¢'EO›ml¶±Ùì/ÈòxfÙiÐÌ€ ã¼þ¹´yÊ Î-ß-èâYeÔÞÔ ²”ÙÝ»Ï é?ЮݻvïÚû*öUì+Î2’˜W±¯b_‰6ü¡-¿wŸ–¡žö¦^xµÌîw xTåܸ÷Ï¥ëº=˜Ðÿ†÷À<ž¹.edÿ¾‰~Fô9œd@bÕ±£s”Îu©Hî6Ÿ÷¿QªÚøqëº;7è ž»dÖ[‡VXx5ÿÑš[†RÇ‚:ÖåG·+˜grÇ;+ïy­qãôg¿97îýnß¶°âËêxüÐÃCËš{iÆï©c$§±ÿžÄ8›ssî8žã„bÌ>p.`¸&` ɸ1寔Sº…u ë–þ£¸¥É|3clÛ—>¾ù›Lí’ÏkɺêÕ/–Ì¿'²^ÊRt¹þü2=µ1õ –)¼ã\I¯—GW+à7dTíÀùE®ÔžíùÚíezÌsŸç>ÏýUýWõ_ÕçlÂ$ÿ¾«ÿªþ«ú¢m;ruÔž]¡„ÛËQµÃû¹²¹nt¨P‚:ˆ:Ö»K¥ê9ÎVÒÓ'`ã…“Jú©mö‘E¥°mË{UëXsůAí¢—|Y¬Uóœ3ê–k5TÇ£H©Õ ºç~µbÎËóRÇ µ>VàùÚí¥—ctb¼NŒÝ‰q<1¦'Æ÷ÄXŸ÷c€ô±@ †k"’¤ë¿_ÿýúï <6ðXz¶"xEðŠà—~/ý^úqÖ`n¢‹6ïÊW¥è7DÂYPÇRÇÔ±@K 8‚®‰Hò¢£¢£¢£vLÞ1yÇäcjŒ©1&±ŠÅ¾uûÖí[÷D»íN´ã¼âZ×Eb]•¢Oýƒè+8/êXêX€:ècécg!†k"LèåÉ—'_ž<|äð‘ÃG&GOŽžr1äbÈEg•‰Í÷5ß×|ߊ+F¬qñìųÏÆ¾}û–#Xõ6ömì[q½ˆkG\Gκ*Å5.®wqí‹~€ Ž¥Ž¨c€>–>’`±çÞž{{îmd‘È"‘Eö5ß×|_ó×õ_×Í΀D#®Aq=ŠkS\§¨cêX ¥ØF &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &‘ ðÞO÷~º÷Óôlˆœ”’<`0‰d‹ÿ¾7åÞ”{SîM±7ÅÞFŒcÄï÷Æ{ã­ñÖxk¼1ÞoŒWÆ+ã•mDÑÆ ã…ñÂxn<7žO§ÆSã‰ñÄxb<6‡ÆCã¡ñÀx`<0î÷ûÆ=ãžqϸcÜ1î·ÛÆmã¦qÓ¸iÜ0n7ŒkÆ5ãšqÕ¸j\5.—ËÆ%ã’qɸ`\0.çóÆyãœqÎ8gœ5Îg3ÆãŒqÚ8mœ6N§ŒSÆ ã„qÂ8n7ŽG£ÆQã°qØ8l2‡ŒÆã€eDQÆ~c¿±ßˆ4"Hc¯±×Økè†nè†fh†f(†b(†lȆlDF„±ÇØcì1v»Œ]ÆNc§±ÓØnl7¶ÛŒmÆ6c‹±ÅØbl66›MÆ&c“ñ»ñ»ñ»±ÁØ`l0~3~3~3ÖëŒuÆZc­±ÖXc¬1Ö«ŒUÆ*c¥±ÒXi,7–ËeÆ2c™±ÔXj,5–KŒ%Æbc±±ØXh,4 ŒÆcž1ϘgülülülÌ1æsŒÙÆlc¶1˘eÌ2f3™Ætcº1ݘfL3¦SŒ)Æc²1Ù˜lL4& Æc‚1ÞoŒ7Æc±ÆÆÆÆhc´1ÚeŒ2F#ŒÆc¸1Ün 5†CŒŒŒÁÆ`c°1Èd 2ŒÆ÷Æ÷Æ÷F?£ŸÑÏèkô5ú½ÞFo£—ÑËèeô4z=F£‡ÑÝènt7º]®F¸n„ÎFg£“ÑÉèd„aF˜ÑÁè`t0ÚíŒvF[£­ÑÖhm´6Z­ŒVF+£…ÑÂha47šÍfF3£™ÑÄhb41ÆFC£¡ÑÐh`40ßßßõŒzF=£ŽQǨcÔ6jµšFM£¦QèaÔ0¾1¾1¾1ªÕŒjF£ŠQŨlT6*¡F¨jT4* F£‚QÞ(o”7‚`#Ø(g”3ÊF h”1ÊeŒÒFi£´`†¿áoø%ŒF ÃÏð3üŒâFq£¸ácø>†—áexÅŒbF1£ˆQÄ(b6 …BF!£QÐ(h4< ÃÃÈoä7òùŒ|F>#‘ÇÈc¸‘ÛÈmä6r¹Œ\F#‡‘ÃÈnd7²Y¬FV#‹‘ÅÈbd22™ŒŒFF#£‘ÞHo¤7ÒéŒtÆŒÿÿ1¾6¾6¾6ÒiŒ4Fj#µ‘ÚøÒøÒøÒHe¤2RŸŸŸŸŸŸŸŸŸ)ŒF =VÕcõ÷ú{ý½þN§¿Óßèoô7úkýµþZÖ£õhý¥þR©?ןëÏõgú3ý™þD¢?ÑëõÇú#ý‘þH ?Ðèëëë÷ô{ú=ý®~W¿«ßÖoë·õ[ú-ý–~C¿¡ßЯë×õëúUýª~U¿¢_ѯè—ôKú%ý¢~Q¿¨Ÿ×Ïëçõsú9ýœ~V?«ŸÕÏègô3úiý´~Z?¥ŸÒOé'õ“úIý¸~\?®ÓéÇô£úQý¨~D?¢Ñé‡ôCúAý ~PÒ£ô(}¿¾_߯Gê‘z¤¾Wß«ïÕM×tMWtEWtY—uYÐ#ô}¾GߣïÒwé»ôúN}§¾]ß®o×·éÛômú}‹¾E߬oÖ7ë›ôMú&ýwýwýw}ƒ¾Aß ÿ¦ÿ¦ÿ¦¯Ó×éëôµúZ}­¾F_£¯ÑWé«ôUúJ}¥¾R_®/×—ëËôeú2}©¾T_ª/Ñ—èKôEú"}‘¾P_¨/Ôçëóõùú<}ž>OŸ«ÏÕçêsô9úý'ý'ý'}–>KŸ¥ÏÔgê3õéút}º>MŸ¦OÓ§èSô)úd}²>YŸ¨OÔ'êô ú}œ>N§ÕÇêcõ1ú}Œ>Z­ÖGê#õ‘ú}„>B¦Ó‡éCõ¡úP}ˆ>D¢Öëƒõú@} >@ Ðûëýõþz?½ŸÞOï£÷Ñûè½õÞzo½§ÞSï©§§§÷Ð{è=ônz7½›ÞUïªwÕ»è]ô.zg½³ÞYï¨wÔ;êaz˜¦·×Ûëíõvz;½ÞFo£·Ñ[ë­õÖzK½¥ÞRo¡·Ð[èÍôfz3½©ÞToª7ÖëõFz#½‘Þ@o 7Ðëëõõúz=½ž^O¯«×ÕëêµõÚzm½–^K¯¥×Ðkè5ôêzu½º^M¯¦WÓ«êUõªz½Š^E¯¤WÒ+é¡z¨ªWÐ+èô=Dуõ`=XÒƒô =PÔõ²zY½¬^Z/­—ÖKé¥ôRº¿î¯ûë%õ’zIÝO÷Óýt_ÝW÷Õ}tÝG÷Ö½uo½˜^L/¦Õ‹êEõÂza½°^H/¤Ò êõ‚º‡î¡{èùõüz~=ŸžOϧçÑóèytwÝ]w×së¹õÜz.=—žKÏ¡çÐsèÙõìzv=›žMϦgѳèYôÌzf=³žQϨgÔ3èô z:=žNO«§ÕÓê_ë_ë_ëiô4z=µžZO­©©©§ÒSé©ôÏõÏõÏõOõOõOõOôOôOôz =…«Åj±Ú{í½ö^{§½ÓÞio´7ÚíµöZ{­EkÑZ´öR{©½ÔžkϵçÚ3í™öL{¢=ÑžhµÇÚcí¡öP{¨=Ðh´ûÚ}í¾vO»§ÝÓîhw´;Úmí¶v[»©ÝÔnj7´Ú íºv]»®]Õ®jWµ+ÚíŠvI»¤]Ò.jµ‹Úyí¼v^;§ÓÎigµ³ÚYíŒvF;£ÖNk§µSÚ)í”vB;¡ÐŽkǵãÚÚÚÚQí¨vT;¬Ök‡´CÚ!í€v@; EiQZ”¶OÛ§íÓ"µH-R¢ÐTMÕTMÑMÑ$MÒ$-B‹Ð"´ÝÚnm·¶KÛ¥íÒvh;´Úvm»¶]ÛªmÕ¶j[´-Úm“¶IÛ¤mÔ6jµ Úmƒ¶^[¯­×Öië´uÚ¯Ú¯Ú¯Úm¶F[­­ÖVk+µ•ÚJm…¶B[¡-Ó–iË´_´_´_´¥ÚRm©¶X[¬-Öi‹´EÚm¶@›¯Í׿k?k?k?ksµ¹Ú\m¶6[›­ý¤ý¤ý¤ÍÔfj3µÚ m†6M›¦MÓ¦jSµ©Údm²6Y›¤MÒ&i´ Úm¼6^¯ÕÆjcµµµµÑÚhm´6J¥ÒFh#´Úpm¸6\ª Õ†j?h?h?hƒµÁÚ`m6H¤ Ðh´ïµïµïµ~Z?­ŸÖWë«õÕzk½µÞZ/­—ÖKûNûNûNë¡õÐzhÝ´nZ7­«ÖUëªuѺh]´ÎZg­³ÖQë¨uÔ´0-Lk¯µ×Úkí´vZ;­ÖFk£µÖZk­µ–ZK­¥ÖBk¡µÐšiÍ´fZS­©ÖTk¬5Ök´FZ#­Ö@k Õ×êkõµzZ=­žVW««ÕÕjkµµÚZ-­–VK«¡ÕÐjhÕµêZu­šVM«¦UÕªjUµÊZe­²VI«¤UÒ*jµŠZ­‚VA ÑB´-X Ö‚µ -H Òµ@-P+«•ÕÊj¥µÒZi­”VJ+¥ùkþš¿VR+©•Ôü4?ÍOóÕ|5_ÍGóÑ|4oÍ[óÖŠiÅ´bZQ­¨VT+¬Ö k…´BZ!­ VP+¨yhš‡–_˯å×òiù´|Z-–Gs×Ü5w-·–[Ë­åÒri¹´Z-‡–]Ë®eײjYµ¬Z-‹–EˤeÒ2iµŒZF-½–^K¯¥ÓÒié´ÿhÿÑþ£}­}­}­}¥}¥}¥¥ÖRk©µ/´/´/´TZ*-•ö™ö™ö™ö©ö©ö©–RK©¥ÔRh)´jŒ£Æ¨ïÕ÷ê{õ­úV}«¾QߨoÔWê+õ•­F«Ñê õ…úB}®>WŸ«OÕ§êSõ‰úD}¢>R©Ô‡êCõ¡ú·ú·ú·z_½¯ÞWïªwÕ»êõŽzG½¥ÞRo©7Õ›êMõºz]½®^S¯©×Ô+êõŠzY½¬^V/ªÕ‹êõ‚zA=§žSÏ©©©©gÔ3êõOõOõOõ”zJ=¥žTOª'Õãêqõ¸zL=¦SªGÕ£êõˆzD=¤R©ÕƒêA5JR£Ôýê~u¿©Fª‘ê^u¯ºWÕU]ÕE *ª¢*ª¬Êª¬F¨j„ºGÝ£îQw©»Ô]êNu§ºSÝ®nW·«ÛÔmê6u‹ºEÝ¢nV7«›ÕêFu£ú»ú»ú»º^]¯®WSSSUUUתkÕµêjuµºZ]¥®RW©+Ôê u¹º\]®þ¢þ¢þ¢.U—ªKÕÅêbu±ºH]¤.R¨ Ôê|u¾:_ýYýYýY«ÎU窳ÕÙêlõ'õ'õ'u¦:S©ÎPg¨3Ôiê4uš:UªNU'«“ÕÉê$u’:I NP'¨ãÕñêxu¬:V«þ¨þ¨þ¨ŽVG«£ÕQê(u”:B¡ŽP‡«ÃÕáêPu¨:TýAýAýA¬V«ƒÔAê u€:@ ~¯~¯~¯öSû©ýÔ¾j_µ¯Ú[í­öV{©½Ô^êwêwêwjµ‡ÚCí¦vS»©]Õ®jWµ‹ÚEí¢vV;«ÕŽjGµ£¦†©aj{µ½Ú^m§¶SÛ©mÔ6jµµÚZm­¶T[ª-Õæjsµ¹ÚLm¦6S›¨MÔ&jcµ±ÚXm¨6Tª Ôjõ[õ[õ[µžZO­§ÖQë¨uÔÚjmµ¶ZS­©ÖTk¨5Ôê7ê7ê7j5µšZM­¢VQ«¨•ÕÊje5T UCÕŠjEµ¢¢†¨!jyµ¼Z^ RƒÔ µœZN-§–U˪eÕ2jµŒZJ-¥–RÔ5@-©–TKª%Ôj ÕWõU}Õâjqµ¸ê­z«Þª—ê¥z©EÕ¢jQµˆZD-¢R ©…TOÕSõT=TÕC- P ¨ùÔ|j>5¯šWÍ«º«îª»ê¦º©nj.5—šKÍ©æTsªÙÕìjv5›šMͦfQ³¨YÔÌjf5³šQͨfT3¨Ô j:5šNM«¦UÓª_«_«_«iÔ4j5µšZM­~©~©~©¦RS©©ÔÏÕÏÕÏÕOÕOÕOÕOÔOÔOÔj 5…«Ä*±Ê{å½ò^y§¼SÞ)o”7ÊåµòZy­D+ÑJ´òBy¡¼Pž+Ï•çÊSå©òTy¢Šâ£x)^Š—RL)¦SŠ(E”"J!¥RHñT<OÅCñP<”J¥€’OɧäSò*y•¼Š»â®¸+nŠ›â¦äRr)¹”œJN%§’]É®dW²)Ù”lJ%‹’EɬdV2+•ŒJF%ƒ’AÉ ¤SÒ)é”´JZ%­òµòµòµ’FI£¤QR+©•ÔÊ—Ê—Ê—J*%•’Jù\ù\ù\ùTùTùTI©¤TR*)”J 9FŽ‘cä÷ò{ù½üV~+¿•ßÈoä7ò+ù•üJŽ–£åhù…üB~!?—ŸËÏå§òSù©üD~"?‘ÉäGòCù¡üPþ[þ[þ[¾/ß—ïËwå»ò]ùŽ|G¾#ß’oÉ·ä›òMù¦|]¾._—¯É×äkòùŠ|E¾$_’/Éå‹òEù¼|^>/Ÿ“ÏÉçä³òYù¬|F>#Ÿ‘O˧åÓò)ù”|J>!ŸOÈÇåãòqùùùù¨|T>*–ˇåCò!ù|@> £ä(9JÞ'ï“÷É‘r¤)ÿÄ?÷Å—¼,H²$Kòy¼GÞ-ï–wË;åòNy‡¼CÞ!o“·ÉÛä­òVy«¼YÞ,o–7É›äMòïòïòïòyƒ¼AþMþMþM^'¯“×ÉkåµòZy¼F^#¯’WÉ«ä•òJy¥¼\^./—‘‘‘—ÊKå¥òby±¼X^$/’É äòy¾<_ž/ÿ,ÿ,ÿ,Ï•çÊsåÙòly¶ü“ü“ü“9ŸœOÎ+ç•óÊî²»ì.»Én²›œKÎ%ç’sÈ9ärv9»œ]Î*g•³ÊYä,r9“œIÎ$g”3Êåôrz9½œNN'§“ÿ#ÿGþüµüµüµü•ü•ü•œZN-§–¿¿¿SÉ©äTògògògò'ò'ò'rJ9¥œRŠ•b¥X)FŠ‘b¤wÒ;éôVz+½•^K¯¥×Ò+é•ôJz)½”^J/¤Ò é™ôLz&=•žJO¥ÇÒcé±ôHz$=’H¤Ò}é¾t_º'Ý“îIw¤;Òé¶t[º-Ý”nJ7¥Ò é†tMº&]“®JW¥«Òeé²tYº$]’.I¤ Òé¼t^:/ý%ý%ý%•ÎJg¥?¥?¥?¥SÒ)é”tR:)”ŽKÇ¥ãÒ1é˜tL:*•ŽJG¤#ÒétH:$”J¥()JŠ’öKû¥ýR¤)EJ{¥½Ò^I—tI—TI•TI‘I‘„)BŠvK»¥ÝÒ.i—´KÚ!ívHÛ¥íÒvi«´UÚ*m‘¶H[¤MÒ&i“´QÚ(m”6H¤ Òzi½´^Z'­“ÖIk¥µÒZi´FZ#­’VI«¤•ÒJi¥´\Z.-—–IˤeÒRi©´TZ"-‘–H‹¤EÒ"i¡´PZ(Í—æKó¥yÒâ}Äûˆ·o#ÞF¼‰xñ&âUÄ«ˆWÑÑÑ/"^D¼ˆxñ<âyÄÓˆ§O#žD<‰xñ(âQÄ£ˆ"DüñwÄß÷"îEÜ‹¸q7ânÄíˆÛ·#nEÜŠ¸q#âFĈë×#®G\¸q5âJÄ•ˆ+—".E\Џq!âBÄùˆóç#þŠø+⯈³g#ÎFüñgÄŸ§#NGœŽ8q2âdĉˆ'"ŽE‹8ñGÄD‰8q$âPÄ¡ˆC#FŒˆŠˆŠˆŠØ±?bDdDdDdÄÞˆ½{Ű½®e;p‚~`ˆ®‡€0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00’€ô6%‡=OºG 9œëôñ&CÊ )3¤t÷v÷v÷öñòñòñªÞ¿zÿêý‡gžmx69¿œ_Λ66mlZz‰äv¥€–Ý{üíñù¯æ¿šÿª8yÓåM—7Ý“kO®=¹–Ô?øâ‰O'>©øÔœ}€„DL €$Àž¨,)îy¯‡sXûß6ŸÙ|fóúФÛWÀ5û^8KŒ[Œ[Œ[Í&5›Ôl÷\LË:-ë´¬NØ@ÚØ´±it?Ðý@÷þúoè¿¡Êæ*›«l.Ö¬X³bͲ®Êº*ëª"‹ ,20ôrèåÐ˽ï÷¾ßû¾±ßØoìûæ¬O:ÅŠÿÿ¸Ÿ±Ö7µ¾©õs·Û€ €Ûï]л wAô„|kÐ\ÇøãGŒ÷,x†‡áøQŸ«ÏÕçþº¿î¯;Òsî©»§îžºŽÒçÛžo{¾¶¸€ €(ú Ž ß´Wpf™ g&Xž…9‹æ,š³èãÖ)î¦í•ºWê^©ã£ÿ|ïõÞë½—#ŸzÖÁYgŒ»ÎÌ{3ïͼ—0€ €'ÝxÁ·óÑȈ×#^xÞ7¼oxߺ¹ê檛KLdJ l¾¾®Ù÷Â!icÓÆ¦O.{üÅTÌw.DôÛeT—Q]FÅ÷Ïh™´9z\ô¸èq–ë“`Ó4â00’àNKm½8׿8ËÎ:>q§W}¶÷ÙÞg{é+ÿ’›äÓgº²•ëV®[¹Îò\ì±Øc±ÇÇ­Óò »–Ê5-×´\Ó5ÃÖ [3ìrúËé/§5ðÕÀWÅŸWOY=eõ”²ß—ý¾ì÷ñÝcÌo7¿ÝüvôE ˜I0çšøãŽUrki À¼þ:¼h—¢]Šv‰{õ¹{»{»{Ü•xkî­¹·æÚ¾º{”îQºGi{Ö/&y¶½¶\Ís5ÏÕÜ‘~ÃÚ}À^5¼jxÕxÓüMó7Íi-ñ˜I0çšøã¶Þ¢q‹Æ-Ó~¸î€„díÎWûZKaJ˜¦X»®/k¼¬ñ²^sÚØ´±im÷bºi*€¤…˜I0çšØšõ%Ö—X_ÂÚÖýù=ò{”|Ú0¸ÄdË…ÇWø_î|5öûýºÎ;ƒî º3ÈÚcPŽA9]¼y=òãöùêõ«×¯^ë±\†§žfxêHï¡~¦~¦~f¹fq‡´¸[š–à\ÀÀH€9×ÀÖÜØ~cûíÖ¶ž³kή9»sÝ cùå–°v~Ü58¯×¼^óz9>í³#½Ç‚o|»àÛ[sŒ[Œ[Œý@B"&pHÔ[/kïºvêÚ©k§ÆDŒ‰Q£SN5:y—ó.ç].몬«²®ƒ¤•ŽU:VéØÀ‘GyÄ÷ˆïßä|œ?4Ôƒ­êsõ¹ú¼[£nº5 É’;$·çJÏ•ž+ÅqOàÇù‡*?Tù¡ÊáÃ!‡CÄ„ ³ç®plÅ 7ØP`C~r?¹Ÿ,މh‡â ˆ™÷fÞ›yoN8á¯ûëþzÛ¯Ú~Õö«wgÜqW´çÄ:×ÂñÇo¿!®— ï+¼¯ð¾ÈÀ"‹ ̲-˶,Ûò¥È—"_вߗý¾ì÷½R÷JÝ+µ’Iɤd2ÇYwYÛz¾'ùžä{{"ž ©ÝÔnj7ûé{¤ï‘*›«l®²9noæäää›Ö7­oÚVeZ•iUFL ûlï³½ÏöºB_á íÇ6±os§Î:wª¸îÊ5-×´\Sq…Š{ÿÙÏ'ùžä{âëëÛPm¨6TEÏ&öö]л wA|k;×£tÒ=J·fØšak†‰³XpkÁ­·ŠóRhN¡9…æ”/V¾Xùbmß¶}ÛöíÚžk{®í)Þ›ðõɇ®G|ŸŠûzíùûâ ²¼î†gžmx¶û,ÕûWï_½¿µ+úã>—¥}ó÷Íß7ßÚVj6©Ù¤fGÖ?¤á†CZ®¹²VY«¬q5800€CìDàÑii§¥–¦wÀÙÁgŸûœðGɹÇùÄé§Oœ.µ¢ÔŠR+9Î"tq…Ïgíù¶çÛžoÃñé–!e†”RŠ?_Iy%å•” sM‰ø¤é覣›Žvdÿ/¿Xübñ¤uMÅ%Žƒµ­WøO…ÿTøs÷DL:-"Ò;æîÞîÞîÞâÏ7Wß\}suÂ÷É®Ó~þKÚØ´±iÅ2*>¬ø°âÃôN5û·Ù¿ÍþÍþ)gwÝ9tçPkkk÷w»¿Ûý­ÚÚd…‘÷FÞy/±®Jñm>Ìs˜ç0Og—'מ\{r-q¿yïv½Ûõn×чG}Xü (ÿÕüWó_{ÿ®í-Íw4ßÑ|Ö¶xzÍé5§×|è§xèþÐý¡»µuæM—7]ÞtNëßl>Øñ‰ E]Á}À ƒ˜À!ö ìžky®å¹–â¾ILJ‰ÅEŽ &ü©ŽoÑž5ˆ{°œ5ŸñzÆë¯Ç÷”’ ¿žcÏŽ=;ö,îTœÎ•}|öñÙÇÇwû?ƒ÷p;¾Ï"Œ<3áÌ„3÷,œÝt?ÐÝÚÖŇŽïÉã'Ÿ<~R7WÝ\us9·Íˆ»Ìu¬’bûDèx m?­ÙÞ«·5ßÖ|[3aÎ]\Õ~ªöSµŸ¬m÷Bù å/”Oø«Rœb& çž ÃÃð0þ™…"A¾yãþM1—ƒí¿oOÜçBŸ }.X¾·Ä•WJ\ù¸#/žlm¯ÄîÎmñ]#Y[§˜ƒºÀY€ €bÏ@aq·ânÅÝœ;XìÈ(f €ã[||ö„\=÷9‹˜þ7þÚg|\S%—<^òøÇM“›¸ðàƒ; î`mëâNGÖÿÀçÏ1­+_kI·ýˆ;òÅÓ Ù§Õú¦Ö7µ¾±gÒû„üÖ¸y=òz¤µ­Ä †òª“ Ç÷IÈCˆh¿óŒÎ3:ϰgßlÀ¶ŸqÛeT—Q]F}ܧOÞµ¶æñ#Æ?¹=ê¸i㦛fm‹‹={,öpdýÖf‚)<®ð¸Âã¸ÀY€ €òqƒ¼õÒÔKS/ÍÖ][wmÝukî­¹·æŠç°Š©D—dY’eI–ÀÎ;Û^x2«s£D3ÀõÞÕ{Wïݶ_·ýºíWËã,†qí ]âNqìÜÏž0ëyÓüMó7Ííù¤"\ùµÍ¯m~m#&Ó~œâqŠÇ)žž|zòéI1§˜þWLj{mâY˜"ˆ¿kJ<Ÿubû‰í'¶wa¾œórÎË9âÉÄ›Ïl>³ùŒ={ëHûO¬X´dkÛõ{ä÷Èï‘#û žò+žìkOŸ&î¿òôÊÓ+OÅCÅ4Ëâ¾F1µ¬8_ñq­%ÝöÓëM¯7½ÞØ^§˜ŒWDSû'ퟴRÜãüwðßÁŸÜwrßÉ}¿Uü­âoŽÚq§#û¬ÿ©ÿ©ÿií½"ÐrV«¶}7êòË,?W¥˜Ùžc(ŽùÆ—_n|)bl1Õöí7¶ßؾéÖ¦[›n}ûàÛß>°‚ôøûæíÖ5¬k˜ý­Úv,Ú¤µ÷. ]º0ôã>…µ»Šñ4eçö««§¬ž²zе-˜>`ú€éެßöôæÀÎBL àRX„Žö ð‰;ÉìYs¢uŠÖ)êÜ}Nø£ä¬ãœéd¦“™N.Mµ4ÕÒTö¬Ùö§q•[fl™±âï;ë³'Ìzlg‹»ÉE¬?&ˆ¿uVx_á}…÷·Çß{üÿX©Í';ÆÕdf“™Mf:·…ÇGÏ#&1öñòñòñ²6Q¼vS»©Ýtd+Ó¿˜þÅô/lÇT;&c²ýŸôŸ‰©¿jûUÛ¯¬­¹À‰' œ°g‚â¤Þ~Dpk{–“BèшûS!K—5^Öx™íõؾ¿ÓY¥`í^óœ]svÍÙõC[šãWeóŽÍ;6ïhûç—;¿Üùå·î›íóÒ¬_³~Íú%L}"d››mn¶¹"pÝÕcW]=Ä#D€-~j`m[?Tù¡ÊUâ£'¬]¶vÙÚe­­SLíÜÞÕöÏÄËYÿß#¾G|­­x¶áÙ†g£ºp00€CìZ×k^¯y½âoR\g ‹'õXÜiä ÇÙžu&Ìzâ>%ÑÚšyÞíÆD0àܳP¬Y±fÅš‰ð̹g¹ÈÀ"‹ L¬³—ø ˆˆ'}rì“cŸˆ{Ù»Wí^µ{UÛwЊ{¸ÙúÍÕ7Wß\mm+9å”cPÜIÅã£åŒ¼7òÞÈ{ñq»Nû‘óËùåüÖÖ÷Éññ×Ç}"¸íõ ê3¨Ï >ñ÷Ý!žìkmÍá}Ãû†÷MÈØv(|hôßß8·~1ùåô—Ó_þÈ-VøO…ÿTøµPÙ‘OT=¨zPuk{~)良—ò:·b±=³BHîÜ!¹ùDbNkëó P]8Ž˜À!öß¡ëøD¬¶·Ò&G›mr8kŸþ(9¾1ýf|g1I²³>{¬GÄ]ÖÞûç¼?çý9Ï‘óûóðŸ‡ÿ<ÜÚú[4nѸEcç¶–ß3ÿžù÷Ì··bêõ„ŸV=¾•¸RâJ‰+â®_ǯâ1c"ÆDXÛ–˜¦Þñ­ˆ rK­(µ¢Ô Ë­äqÏãžÇ=>Î…ë´Ÿ¹SçN;ÕÚÚ¦e–uZVÇ{࿺ýÕí¯n¶ïaµgŸm߹حQ·FÝ9²ŸqŒb)rmäÚȵ Ù÷¶}ÛömÛ·¶ïöŽïx¾ÃÑG;¿o^ßXßXߨ;ƒî º3èã¶"ž`mmýU—W]^u¹#GI졵õÜÏ8l»×â^‹{-l‡åñwÞ?î;–€ €bÏ«xþ¥ãÛŠ;Õª¥¬«²®ÊºÊYajÂ%Ç× Â‰ø>ÎνßÚYÇÐö{mO4*žÒêÈ÷xýï/1í¹³>iÜI?noϵ<×ò\ËÄš¶:>šShN¡9κrmOŠîøs…-mü|ãç?O˜sájí§ÿ†þúowIZ¾ÄßN8ÄvOaíÈŽûtçÛÍ€-[¶X )²Ï|àóÀçí5œÚqjÇ©ŽŸñäfÇ¿Ù?®_ßwŽì¿’Iɤd²¶þÁwÜÁ‘õÜZpkÁ­ÖÖÿlï³½Ïö:·byríɵ'ל;K„%ñ,až € €bÏ´ŠÎȳýF熩 y”ßggM”jÿq^±{Åî»ÿìÎ:†¶ß÷NJKâé¿Iåš¡²#ë·ÿ©ÏÎmáñM<÷WüùÚ©k§®ú¸ã³ÒþIû'Ùž0ܹg\Ül{ò|s·ŸøörÎË9/ç8kŸG}xôaç~ö§Oœ>qÚÚÚ&5˜Ô`Rçö$¶ß»ùÌæ3›ÏX{o¹¦åš–kêܳ-ê<;Τ͎ìù¬ƒ³Î:è¬ë×RÜg?[Ó);÷z±=E³³žx=gÑœEsYÛŠ˜€ÀÀÀùa×#¾ñeBnñÇõ?®ÿq½#kHаã¡Î‡n±Ï…>ú\p|=ÎÚÛï­ø°âÊ­½×-È-È-Èu"«ø¾_->®‚ô.æ¿&M›66­ýŸeúÓ¿˜þ…µ5lu°ÕÁV yÞÅ4¼æn?ñmOÝ=u÷ÔuÖ>Ÿ™pf™ ÖÖÐëM¯7½Þ|èŠïÊy¦õÓ O3<½±ýÆöÛ{Žl¿wx¶áÙ†g³ö^1AºsÏѨó£Î:ïÜ-Ú>c]ˆ;•Åýýù¯æ¿šÿj´yÃÃð0>tmq§æŽëÛß>øöA|Üÿjû½µ¾©õM­o¬½W\}Î=_¶'B¯©þ¥ú—œ{ô?õ?õ?ßóÚek—­]ÖÚV"*DTˆ¨àÈús Ê1(Ç këó8÷\ˆï>k[Ì>>ûøìã¿Æw·ÞÝzwkk[©÷®Þ»z僧AL àÛ¬âi‘ÎÝâñÇo¿am‹e¿/û}ÙïmMš/Nøãlÿ“P]!b´ýDC{L®4¹ÒäJÆ~c¿±_L'›X×ÔÓ“OO>=é m2>β#ŸÅöD©öïI`çÀÎ]çnæ¸ûcÖöó¡Þ½ z$ž½-¶ùíæ·›ßN;øìೃ¦µ8kÂO3Àöìƒýw­ÅíC\AÜ{CÍÚ~,½÷zïõÞ+jHÔ¨!â™» Õ†jC5¾¶ý{xõúÕëW¯[[ˆ¢íYπ馘n¹†¸v¼ô$6y®ô\é¹2!¿qî׺_ë~-G¾Ù?ô<~òøÉã'ŽïyÁ­·Ü1sq·ânÅ­NÈ,Ž[B~ûÇÝG¶r)良—òZÛJáq…ÇG à``‡Ø`}ÓüMó7Í»Eqÿ¥µ-æ®™»fîšÉ-Nøãü_ÏXu`Ïu í_ÚnU¦U™Veì™:øC1~ÄøŽÜ••0-Ó|°ˆ mïÉôWÓ_Me{=öÜIœò=É÷$ß§À.Ù~„çÛžo{¾M<ÇݹÇ0nüïÜ}v$¾²ý¤Õ¾Gúé{$±àls³ÍÍ67!¿qlO;œ«y®æ¹š;¹_rÒ!lOÑìøº¶ç$ˆù?lß]®i¹¦åš:ÞŸˆéô©å`00€C>˜ët$˜$vü8»¹¹%ÅØrC† (y¼äñ’Ç÷žÂøû¤ñ}¸Î³`—¦Zšji*k{Ò&G›mrØ^C–mY¶eÙæ:pÜý1kûQŸ«ÏÕç¶ï:µ‡ˆâ‚ƒƒ;-í´´ÓÒ 6ØP þ®ÖŸ‡ÿ<üçá·Ní¦vS»ií]dü#ããïÙ~oÂÀâ™ÍŽÿä(ᯅ O3<ÍðÔÚVÄt厬?îs -©Ÿ©Ÿ©Ÿ9÷\Èùåür~k[¬S´NÑ:E?†¶ÏxÆë¯g¼N à``‡$üÔÄÿüw°#O§KÐ8mlÚØ´Iq hÛÇÙ«†W ¯I=¶¶~qŸhí²µËÖ.kûî®ø–€aû‰ªå‹•/V¾˜í½²ýÄÍø~´í#l¾ö#&y¶ÿ:wÖ¶.ÒºHë"3ÏÍ<7óœä'ùI~öl7>zþ»]ïv½kõ~ñ! ‡4ÒÐÚ{¿+ô]¡ï 9ëy·Îm ?ôŸ>|¬m1î4Ë®Ö/ŽWÕ’ø\ެÿû%ß/ù~‰µõ¯\·rÝÊuÎ=+v¯Ø½b·µ-ö“ûÉýäø>ãöÿÈ Ö8Äök|LN(ž·jm‹þº¿î¯»N,¦Œï8ásPõ êAÕÍÛ³ÝYgœu°Y¿fýšõ³?NwpºNlûг'TˆÛ‡XO~Mº}²ë´qi¡9…æ²:Õ¼¸·²íWm¿jûÕ©§vœÚ÷ÖÇÇdËÞå¼Ëy—³üû¶ï}üiÏO{~Ú“¸-!`KÀ–€-ÖÞ{¡ü…òÊ;·ÝŠuZÛbÜýqµk!îtß–Î×>_û|mGÖ¿àÛß.øÖÚúGu~Ôyçž ñÔmk[œßn~»ùíߊ82Î}ê3â"&pˆíÖ/7¾ÜøÒ¹[\_b}‰õ%¬m±zÿêý«÷wøRÞKy/åï8ás‹Æ-·hœ`{öÇ7Ö7Ö÷ìá€é¦˜î:ŸÔ¬ðõÈë‘×# €k6©Ù¤fkk8â{Ä÷ˆoÒí“]§ýؾËPD¿»zì걫G|ÜåïÜã³ìì²³ËÎÚ¿æCwÝ9ÔYÇGK¨õM­oj}cí½[wmݵu—sÛí–¨-Q[¢¬m±F§jtrÍ~ÉvX.æ$pdýb‚tk믗¦^šziœ{.Ä:­N:ý\}®>w|+ºè~ »µ­”ž]zvéÙÀŽ &pˆíÖ_ŽørÄ—ÎÝâàƒ; î`m‹âÿ:²ÏÎpÜøùÆÏ7~ßðˆ×#^xíÜã<¨Ï >ƒúXÛâÿ)þSüo!Îji‰{¼þ:Üö–ZQjE©®óIÍÇ -•¸RâJ‰+¶÷J<:!l‘}²ë´Ÿú—ê_ªÉÚ{Ç.»xìbWnóq=~òøÉã'övÜØqcÇŽü°&¾[‚í«@œç¶Û×ÿ¸þÇõ7™vâ^ Õ†jCÕÚVDØïÈúŸí}¶÷ÙÞš*ÙæC+œû…“wLÞ1ÙÚ¶/k¼¬ñ2`G8Äö«¸3ÆiK›66mܧÏZÚP`C Ùgç8ö¹ÐçBŸ ñÛ.Úœ‹5+Ö¬X3k[”óËùåüŽ·gµ4kïqÝøÿþ“Ê:ë°ªs¨Î¡:Öö0Wó\Ís5OÈ{¦ò*pXLˆjmOšwlÞ±yGÛ{µùÌæ3›ÏØ^ƒs÷ùÆöÛolO~µ|i7µ›ÚMW;Ž·Ÿ’ÇK/yÜÚ{}rì“cŸ8ko¯<½òôÊÓøîù­­Óï‘ß#¿GâïD‹muºàí ¶/ؾ aΑí÷ŠžÓÚ{ƒƒƒ{”kZ®i¹¦ÎýáEÂ\ G9p¤µ­¬Z¸j᪅®Öc[1Û¹wçÞ¶ï6vÖ¶ÄÓ‹­mKüÀ¡êŽ˜Àéíæø¶$?ÉOò³¶þŒ×3^ÏxÝñ€ÍY{û|ÛómÏ·9ëø$äqÞSwOÝ=uu¿QâFŒýä~r?9aîœ~zòéɧ' €+“?Û~6ó’,K²,Éb{=|ø<ðq¼Ÿ±Ÿµ»-3¤Ì2CJ×<Ž·Ÿls³ÍÍ6×Ú{Eÿ鬽µ=¡½³Ž=[±6'DÁ­·ÜšçÈö{ï׺_ë~­„ùÆ9¹ï侓ûâãŠK˜kÁö3zõDç¹SçN;ÕÚVºŒê2ªË(Ç·Ò­Q·FÝYÛʼ^ózÍëå¬ã6ëଃ³ZÛÖÂÐ…¡ C©±AL à{ˆë檛«n.G¶ãããfû¡¦£›Žn:ÚžÝL'3Ìd5¨[=eõ”ÕS?2£><úpBÀõÞÕ{Wï#ûüÞë½×{/qß¡µ­ôÌÞ3{ÏìI%žþjú«é¯¬½ë›1ߌùfŒ³®…}ó÷Íß7ßö]ÚÀñAôMf6™Ùd¦µ}È>>ûøìãﵸ×â^ Ç?‘³â–Ç)§xœÂÚV*k•µÊšYà|)ò¥Ègõ³Ÿ8}âô‰ÓŽï§8ã¶ç3pÖñy9ç圗s¬­YLqܪL«2­ÊXþ߸?H˜säøœu7¼í)”㱄?öOùµ¶•^©{¥î•Úñ­Ü\}sõÍÕY¶eÙ–å_~X÷ç·þk§®ºvÊÚ§Û½5÷ÖÜ[suÜÄ‘±¶E1£56€#€ €’þ}ÜVÄóÿl¯Y<ûÓžµWx\áq¶Ÿúbå‹•/V~ÜÞ*™”LJ&癄9ζ§²Žøñ=âë¬ßë9r8äpHÂÜÇ&BAkëïQºGé¥ €KÜõ÷ǶŸ!jÿþD ‰5$þZÎÛšok¾­Y»lí²µËZ[³¸£Ô¹gÖuÚOPõ êAÕ­½wRƒI &5pdÅÜqCô„鬭Ù7­oZ_«OW=3áÌ„3òÛÙ¹ße·‡KS-Mµ4•í5«ÏÕçêóÄ:öxÓüMó7Í­mE´ó„9§65ÚÔh“xˆÃ‡®Y¼×ÚšãÎ¥á¬Ïb­?Öá鿎#&pˆýëqﻵgÍ" æ9Ìs˜§í5Ç QìY³=q‘ &õµÿhX>Ó.óÞÌ{3ïMÈøãŽóàƒ; î`{Í7vÜØqcbEƒ¹ž´±icÓÚ~o¡9…æš#¿mÿbèßžào(°¡À†öïçìßfÿ6û·Ýt?Ð]ÜU&†/Åv—F/^mí>³»Wì^±;¾à2cËŒ-3ÖÚÿDÜã|)良—ò.öXì±ØÃö{…<îyÜó¸ßíz·ëÝ®Îm! ³qŽþG˜çy««®Z¸jáùÚçkŸ¯ýlï³½Ïö¾þ:üÊÓ+O¯<Ý»sïν;Ç.»xìbÏ•ž+=WÚ^s»¿ÛýÝî4Ûñ+7aúø#ž»ìÈdÂݺ?tû|VÛÄ32ÿœ÷ç¼?牖ówðßÁÒþISü§øOñ·çdü#ããã̺Nû9×ò\Ës-mOÈ7bW?S?S?× øá…8;âüŠ^ºÂû ï+¼·ý}a{ŸEßhOxføIý­ÔžçR'nKÿº{»{»{Ûó‰6ŸÙ|fó1e±8SâÏ_n|¹ñe¢uŠÖ)j{ bzpñå GÀzOè=¡·ë\}Âï™Ïü{f1SBÜoñc5Û{ˆû,^çî¿ø9”µ-Nl?±ýÄöT׎#&pˆí¡C’ÅG´#bƒ-Q[¢¶D}ðФw…:.!Ÿ,†tELëÜO!&cŒût[ç¶„Yˆs>€S\Š;>þˆ9²•¤{ÕðªáUãÔŽS;Nípü¸ûäØ'Ç>É÷$ß“|OâoŸEع¶çÚžk{ºþ]Îj?ñÝrvÍÙ5gןoü|ãçúÞM·6ÝÚt+þŽãÏmMÈ–÷Gñw¾Ü‚܂܂Ä&?2 ‹Ÿ}¸Â=ÇÎÒçBŸ }.ÄǞϸ;ã 9:@òDL à{†;;(™cPŽA9‰¡yG†&ï׺_ë~­¸S­:NLö8~ÄøãG|èpÖq÷N9þYÄý^’Ÿä'ù¹Båøz^Îy9ç圄 ª Õ†ê“kO®=¹–XGÌ‘­$Å8몬«²®ê¿¡ÿ†þÄ}·ñÑ×ùxùxùx9wÏŵ&îL*¡—³Ú˜„6>ÚC©¥V”ZqzÍé5§×ˆÿ²®Þºzëê%L¬ÝÔnj7m¯?L S”¤Ç]gN8áÜó%¦â?¶pÖ1IÈ8Öö[i]¤uçnËö³‡1`ú€é¦ÇßQGÃr»þº¿î¯3ù3€³8ÄþVñ_|Óú¦õýÈ»oë_ª©þ%1¨³†Å4­qï*þ¸}óõõý¯‰ ãnEÜ5eíå¬8îßüfÌ7c¾óqŸ¥ñ²ÆË/Ó~ºNå´¡ü8÷‹ûD5h’;$wHî¼+=>>©[qÍX\¡"| ذ%`‹x’®˜Ì\<¥2¾ÃƒèqÑã¢ÇÅý1Š#Ÿ¥ÃÑG;ä&­Ð˹í'îUiÿTÖDÛ°:iíÎýàHlϬbRkWøvþPŸ<~òøÉ >ƒú êcÿsî-‰gÙŽørÄ—#¾ßÅIåX3êü¨ó£Î[/BÙÂOˆIDATn+îÃâï\Üs¯ãþ´eW]=võˆÇ^Ôæ5(æM¡®p``‡|諸gE<ý·ãÆŽ;nO¡Ë5ÿÕüWÅp°ˆåª.¯º¼êr1 wrÅøþ,Ó¿˜þÅô/šÌl2³ÉL±'"¦ûV¬Y±fÅš…^½zù»Bßú®x"¬kÞ³w"ÇŠ+>¬øPÜeeyœÅ°õ_ÝþêöW·dtÿMœÁè‘÷FÞyOܹ+~¦ ¦üñ†¸»ÔÃð0< qg¡ˆEkSV&­ãf{o]ù³¸Î¾Åýùˆ¸›³|±òÅÊW™h9bbvñ‘–ÕZVkYm΢9‹æ,rÖ,Ì×~â~ƒˆçgû=ò{ä÷HIqTÅG[ôÃöWâI¨q´!fMÈ›.oº¼éªl®²¹ÊæîU»Wí^õìೃÏæ[Þþó%îì,×´\ÓrMEo)Ηxжøï¢ç\3lͰ5ÃÌ÷]s9ýåô—ÿë‰ò < qvÞ7¼oxßJÇ*«t¬ÈÀ"‹ ßû"$®¬UÖ*k¢Ç½[=¾±ßØoì·6¾øy×€³8$¾ï tåÏh¦óEKæXÁÕzEØ>ª®¿fÎWò<¶Ö>{Ò=J÷(œÏ…ø¹†åž4ÚÔhS£M\}ÎEL à¢aÛ¯Û~Ýö«µ§}‹{ГÛ1yþ:üu¸¸ßòÈìºsèΡ´ç"&p0€`Ï “Û1OÔ¶<;v¦bˆÀÀaˆ ®/7¾ÜøÒ².jѸEã“ÛÑŸÚòhl‰Úµ%ŠÖ€ €B ð_ÒÆ¦MkYeÙ–e[–mɧFz”îQºGé,Cp`p`p µ"@ü!&p0€%õ3õ3õ³ä\#]WŸÓBâ00€C€쯔r×Ì]3wÍ>|ø˜õS?tèþÐ]|Ò¸Ÿ=L SªD€øFL à`kî º3èÎ · · · äS) óæ9Ì3î'u÷v÷v÷¾Ûõn×»]iñ˜À!ÀZ/eŸ}|öñæ DÅ'Ê1(Ç ƒâ~Þµ=×ö\Û“ú a8„À‘ªÉLŸñû%ß/ù~IÜO×5¬kX×0*C€„DL à¯m½8>‹•/V¾X)F¢‚ƒƒ+«t¬Ò1s„£O®=¹öäZÜOW/M½4õÒý$<``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚øF¤Ý¯}‰ôÚŸH¯¨DzH¤×ÁJ¤×áDzI¤×ÑDzý‘H¯c‰ô:žH¯‰ô:™H¯S þ:H¯?éu&‘^géõW"½Î%Òë|"½.$Òëb"½.%Òër"½®$øëj"½®%Òëz"½n$Òëf"½n%Òëv"½î$Òën"½î%Òë~"½þN¤×ƒ=L¤×£Dz=N¤×“Dz=M¤×³Dz=O¤×‹Dz½L¤Wt"½^%Òëu"½Þ$Òëm‚¿Þ%Òë}"½bé›8¯½)é•2‘^Ÿ$ÒëÓøz€i€I˜68Á’ÓÀ÷ëÞ¯{¿®±7Þ^‘‰ôâ™Ä<˜§»þÓˆ“Ïsˆ“ψ“ϳ‡O%Ò+ù<{8ùˆµ‚ã %Èc€5–5¨)šgÙ‘ùÇ‘03¨]ro[©­ÔVÇ–[zl©ª®ª®ª®‘$‰mÛ)¶™ÐDÕ~Þöó¶Ÿ·M<5ñÔÄSF–””ôÀóçOŽäMĹˆy)Ÿ•bÝkG @K Çk,k,P4€!MrlßRßRß:²üÈò#Ë.8\p¸ð|?öìÝ[n3µ>7h§íÆn’ö8Þï—˜ÚÜ圵J×Ò¡?®ÿÞm“ø»øïâkÄ׋Ï>ß¿+¶Yl¿ØÂÂÕùWç_;2vdìÈç‹.ë®™¨>p÷°ïµ`BHS·U›Û·¿èm¿7»k]ß ‡¾ŽúÄÌÁä(GçÌï»Ìõ)[WÒ®™ç”¤ÎŸ¸\î¼Ô©ÌúAuRÉ4›4›4›Ò¨Ò¨RÞÊ™ñ,b»:gG祡^Ö’:Ç'¸\^W2ó¸ç”ÌïS¢}Ê&ò‹¿ó¡¯W\ò³7{Y¼ï…Íí?šém¿`BÂ}·UDöµïeÝÀÂßDý|ÿ®XOÄÚÂÑH95YdvÛÂßvmÇȾα}÷'ÜWÜ~'𣙞V—Å{Ÿ:qÅ%/ÿ)YŸüâÑgÂ…”h·Yñ¹3;ýûíñ –7|†„z‘Ç/"U oßä|ÛùcÜíz®œëÛüãæ+²[ì‹Ý¹®À­ÝÐŽ…n“•¬ú—k¿‹Å‘Î_wŠ™ÔÅÁÅwc÷QVŦm,~4±#À«½VàTfý@ÔåDNÔëDíNÔñDMOÔ÷D­OÔýD 5x9hCšdÕ¾ÜôrÓËMUùª|U¾î?Òܾ ‹lòYŸ¸”Å»ïò꟔TXèë[S£øžâû‹ëî ÎWå«òÅ~¬†©dnÉÜ’¹š}hö¡™î‘cëÔxkÃIK|Bg)&ž[S7°X­ŽoÛ¶¦ÆÇ+†;©’ŽÔïÞØϸew'ãgM%³ödíÉÚ£.U—ªK9Êз+9u©ºTÄð³Fþ¸„¾aNÆG꯼â¿çñŠãª$µ:7·mۚϭÞ<*°x‰Ï„«Š‰¶N–—NÒ}ÛÄ:#Ö2 ¶òX“’&~–—\¬üsÂUßv³gm¼fMnnMA©«RŽ;x}5-tåûüŽŽ}ÃÈcA«‹à™ƒmç ýeýM·-3®~ûŠÏ5[9yçèÎØ–k»8LípÐ,ÌjµÉ»ä± ©V ìîd,êl¢æV³uÖ)&.’®ôu­Ù‹Æ…+}]Å6ˆíÑeËÅ>Šý%p Á Ó¦'LuOÈf¹Žjñ°è½AGÚ¬«Ù4Q÷ñäàžžéѸ*ífé²Í=~èñCŠ­‹­‹­9â>«"nu‰ðè?Ú›ÚÍ:9xÝð€ôšmôê>½·wo›u³ÜGG´x¨ûz"ÖŽ8àåä±NO¢ßÐa©ÛÞ½5ÛîÕ}TF&u]7ÜÆ,°]{SòXÇzé´ßrCüÏ_\t¯[ 5“¤ÂB_߉™G÷{ÝyëJbH³:ä±äU+pUÚÍ5´Úªà‰ú¡¨%²ÆÕGÒ¤Ç à¢è¢è¢èàñÁãƒÇÿÍÜß÷5õ´ù¡â\RŸÂ_—Úº€©dìS˜âë"¶MlçßüÖíøàñÁãž¾òSž\ž\ž4€!MzÙ.ø®à»‚ïtù4$eÍy×ëR»t©zÛ¬ËÞ‰y ˆåá^ð½à{Áb:ÅtŠ©ú¸/bã–þhxÜ—ª@©¥ŒÚÆŸ"û÷ YÜÕ¡y±Íœª÷nùéå§—ŸV—«ËÕåDjY¹º\].b²ê¸íêæm3ç§È¯…,–ZÓWÛøhxŽ·*pÁè„[néUïX—ÄEPª“Ç:î»'áVPßOÏçxK­é«môŸµðÓ¯Y õ½æM ùå±î«U#,BÇ÷Þoëù}©™ÌèvöŸ)zNjçМ<€´kÍ‹m戚˜¾TðD½QÔYcÝц4éYx_ú¾ô}óã'bóÈ«MÓ¦{Ÿ6ò±Ò¯ÖoÅQl¿Ø—ª÷WÌ ¡¬¿nÜ ¸`™a™a™¡í({ßµmîv¹q¿Y!Fú’2j3º õù©ê¨žx`â‰ÊÏ–Ÿ-?K„ ®æÎ–Ÿ-?+â°êXÍLHyÍç'}iúj/7Þq&ÄÈû®›ƒ¹›¶=k”X¯ˆ€îy¬i©ã97‹;ÎèKÓWÛèÑnBzÊkä±G;àÆŠwZlÑßš‰ÛïSy6kê®ø£q6y,)Õ º õùIß+x¢)j’¬±@ÕhCšô¦¼³ÞÎz;ëUýÃuèœõ*·ú~£9ŠýªzßÅüÐúåFâĉUÙÙçƒ^w)¿ÿ϶õõ=q¬8ÞtÔ¾Mt@±Ý«MökÛ÷øÜøÜøÜò±åcËÇ-xI—scËÇ–±§-2Š=Óšì¿é¾'«M´¾·~+ŽåwO”µ­?ûü;‹]ÿæþ-±v-@[õϋ摽{½³8øõÕå'Êô½õ[q hðñÐ=Yæ][{¦‘ÇB¿òX‡$ï¦W&ZdoñúZV•“zçJ}´ÿbüšfä±j¯V`÷j“ý¢Þ%§ ž¨IŠú$k,  `H“4€«¾ë·Q]Ó;Æ'l=˜èyK~­ßŠ£ØG±¿Ü ¬ïŠ•ÅÊbåßü¶à¯]û<–Sʨ9>n=¼žjTâ8§dmó0öîØ»c荒ÔYê,"/P–:K%âMë;{Æõ;í”ü¸uÎwªQrjýjŽ™¿¦Äú<®zë䱚<úO¸–+§¦¯æ”¼*:ç»fžúô;M éç±!ï þÆöâŒ]g¿òI—wåd íŠ‚Èc¼ÜZ‰S²¨qÉ»Ž'j•¬±€&À&I7€«~ׯý›ºMu:ùµÒLÞ0G±¿bßy7°>*Ù]²»dw óæ-̵Á<›žï“wÊø—±4~XÛˆ…Q!ãÝ ´ÍÉü.ó»ÌïBüàÅ1¦-F%®u+P—æf·wë·â˜g³îqÀ1ms"Ö1±¦?@+(“¯{,ïÖï_Æ 5é¹ÙÎ ú©×’ÇBšyl§Ã“_uè”4½°À×Çp*'#‚¶Lv·%ðâk!ãÝ D]Ëpêx¢nÉ TDÒ$ÑpQtQtQtÕ­ßiO¾¹«üÊp.`*Žbß«n‹9$Ä%äõ7êoŽ8bà­ÍûÒhUëËÔúÕߣˆ×ú¨ó;ì<@(¡f‰¸Òu‹ïOØ¡ˆ7œ¦¯æXPº1§õemó#Ö4±¾K`Èy¬ÏàvnÌ1 Ö¯ÆèbÔÿÒ„ä±NÛåŸSý2 ³f"ÆQ þ›ì~<À‹©„ŽQÄrOÔ0Yc0¤Ir àrE¹¢\<>x|ðxm|6´»~«¾XÛC¡ÅŠù$Ð¥`õñÕÇW×–åt豩ÕvCN+Ž3¼[v¦m®®¸\q¹âBD¡úD,i‹´Þqy.à ¹õ[qÌé°Ú§Õvms%Ö7" 3õþ`ú·«} ¹õ[qt\ߣI\y,j7UÍ=¦éUj&bŒ»ýùEòX5W+huÚeµ;1Šz&k,@Ò$¹pêÖÔ­©[µýØ0„wý>ß»µÍ˜˜O½v]¸sáÎ…;ÚŽÑæîí¯x;’2V˳†ßV=îÖÑ9Ʀ’ò™bbbÁ“ÞOz?éMtáùˆø±¤cÝ:†[Øä•g8©zLë·â¸¹ûGs½µ­fb­#ºÀpòXÅwÂ?šKÓ÷/ïV¯þáÄI«OýÖ…[Çâåç±-mZŒyÿú¹ßzTK*Ž1¶‹{9 P½ZsŒMž¨YQ»«8ŠÚ&k,  àš²kë®­»žö?üìÃÏ>üìÖ[·Þºõ3ó|$Ô¾ÜôrÓËMµý¨:g½Êm-ÚF1?ÚfOÌ-áþò•Ç–Ç–Çz¤{¤{¤k—„på§PÒDmã„Ø~á¾Ú¢zÅG+>Zñ1†ç#âG[tÝI8èîK»WÛ˜Þ÷šS¨æ¼‰µN¬{ÄÈ;µÐ1£ï5Ú½ÚÆÖkÓ†ô$ÅËÏc§68¹PùmcðAgm·ÇxÞZAl¿p_êuÚFQçd…a¢\}O¢žD=‰Ò¶Ó ~>Òhÿ¦þMý›*_•¯Ê×<´›G^mšÆ…Š.£˜«J•¯ÊWå‹y&è_¦Íi›Ó6§i[¶Jv ëG‚Xõ˜·­ç–€_´Í᯿füšA¤Aw"f´ETÞ¶ŒÑ¿Ðâ­z,Ù•§õ©i›Ó6§i ï<6pÃÊO²#iôV=*δÌM‹—“ÇŽHÚrǪÈߌÿYpêå5òXÏ^+è¹%àjtU¢ÎÉ ÃD¸ú*Þû[5šÁº“DøÈò#Ë,×v8ÿ³¡ÀBYÌ…ŠN3 ,”ÅÚfRÌ3AÿrÜ¿uÿÖ}­æÎ=ûöã€i¤†º“Fûuj~©’2‡íÛ¶Ät'bF3–&<£ù%š»º¹g×> ˜¦m•k ñòËc•Ê÷­}HsW÷Ñ¡WäãÁ3Ècñâòذ¨¸vÔCtãW§(" [­À¯SóKÔåtEÍ“5††põ‰†®hîéŒfpÕj»l¥¶R[9\p¸àpAóà IYsÞõ:'Ï:ŠyÓœO1ÏbÎ ýmyƒå –7¨$ªßkikÏï >óx·QlZx­9Ͼœ}9›¨CÕDœh‹¢»n ïC[÷YÇ!ïuëf_É=úb $ê@Ny¬uØçݺÑÐ}æÇAL;qpy,^\;5:¯±Ò™JȳŽ~çß~ߺ;y,€¿«Ħ…÷¡.÷¬£¨²ÆÂpЮY4ƒkJ-7€-=¶ôØÒJÞ)õ¾G¨©oÒàÂU¾®\–<ó8¸p•¯«˜C͹sNè¿8¥ÊRe©RÛ2t}ö€âÐHŸoÌðjà9[sVGN9eäbUq¢?^3KÞÛæ=÷×ÅÖþйÏþ GÒO;/q*µ~ 9Û×Þ¸öƵ7ˆF"4ã¤ó’PëRk ¼¶BéÛt»ñCçYÍ”S;· ¹iýÓ¼ðqÁnv%³²]#úJmû3¿L ð¹­9Ûbm$@óXޤHâʹéFÙ7œú<÷ÐÊË7²ÍÆÓ›z89_nœm6Úü_.îlnÿØé¯ÓÌWn‘rØò†Ï PòX<_«ˆ o×ä¼¾4V§÷?ÝǧEóaþyf…O_T7«½Ç@©mçÀWW¬o‘I °ÆŠZ“ª^‡×SjxÆø=£›FÏåzꀻ¡Ia_D]”5òFX:hWT à¢Ä¢Ä¢DÍ)vû.,²ÉgÒ¹x+=á˜ýM£™Fßùê"oµWnXš]bn5·Y …š¢pT8*5çùnëØÏÂc%ÚL}#þͶFííf[ü%ñ•~x·e— ßiÎöú õA냈F"4ãd·eÊ\ßI¢uúFî›mÆõ]ãäö¬—sy¯äJ§|·õÁüðØJÊ”Ž G…#Ñú˜Ç¶>žöÓÁüÚm—úŽÿ¨ñÍL_·¿áÜG÷Ÿ’v}ÃÇFE­y3÷M©5€=†¿û”¹ä±x¾Ó^á•9£,ÀÊ%Åë²õkf¿k‹j=xHY|\[•Y¼ÉIã,ÍíÒàIƒ' ˆLC&b@36ÌâŸ2ÎR—åm«ªÝFiéÄì)Mÿ°ùw# ±m>_*fš/ Ý?ÏÄÿÿ§Ä¯ø)m_Y[cêÂÉÜ·hμX'‰LЗ<¶…Ã`ÕäFµÛ(m›pzá_~UQ1lÔœY=ÄÿÕlîŠÿâ˜Þ½<î ñwÓ8‡.g%÷ è 5é¹G'7ú ñ)òXèžÇ6\lênÜ:izái_)·~ÇøîjÞòXã:æ[wêW¸ëgü丂<0ÔZÉIã,Qk’BÕK´{ŸÞ˜ÔÛ¢•i€ÞÔë´Œ¢FÊ ¹¢¬_ §\ àfKš-i¶Dsúfüñ­¥ÏöÚM÷Ìødo‹§ã2¾ÐÐËèóI ñ6©ú¥â×Kó’F̭朋cÁ _}«Ï¯>¿ú¼æ ŸÚÝ+¿uªÒ¬µçÛfy辜éKú8n¬²»S%Û3ìfØÍ0"ӉЌqcû†:I¢]š5úã}{Tܶ… G+ uièVüTÄÁV,K¥Ó>µ{C^ëTÍ™ë$‘ ú’Çú8&ßÙW»R§ž=ÛHÛÓ(Ûæ—fJ]éì¿fá­¯Êþ¼ù÷ÿ»Xjm`ûüŽÍú†’ÇB÷<68iƒí\)·~§ÙæUް¥å0Óÿ{š©¦ŒÜÓt±¾4€GÞß>Ù}y,`¨µew' UÃÆÖ÷Îs|ú|ʨKÎØ:ë{XÔHYc!W4€õ—¼›Á/µüèÄ£NhN–½{Ëm¦R{?gÛõ-íu¿8©¸G!ƒ»ÛfKíbF̳æü‹ã©^ñññ•<:&gÈ€°•RH³Îföî8}Ñk!™n5GýmQØ!Á{ªæöŸ\{ríɵD¦!1 _ÎÙë=U Ò•aÓµÜ÷|s>²®sÀRñ)Ëóë&éÒ¹øVÎ~˰J%*ÖI"ô%mm›š»ß²v[¤MËßú8úN£xëÃM÷Ú réÐJ—Vn«Ì”¾YC*ižI¬ì4Æ}Î^òXèžÇÆœ_ò‰ó)7€ý¬z´²nôô~µq!ß7ñ˜±ëìNŸt}iO>z¢—÷ZòXÀPk¼§J§ÞÕ±—S3ë Oþ?Äï3gSýmý>}•[ÎÔ _4€åA~Íà—Ú¾~+üVx%—âçí´Ý(…t¿…yÐûæOËñQS“ÿá¤Ôý³Qõg8½QñRGj3bž+iR†ß ¿Îé]žyžyžy•<ÀM1¼¯jô“0ýmDûµ.ÔÜþM×6]ÛtÈ4d"*y¸PÁÆÏ[J¡QúeÎ"Ÿ7FÄöÜç0ilý>Îþnï³Þ=ì]àöº¹ƒtÀOÇ—©ÖiμX'‰LЗ<6èËUEÇ—IîáÉ:Œ-¢Ÿ›|ªâ}ÃÒlûôù }ãçä±Ð=5忱Ù:í–š”àøËÓc ±oÜðý÷:iã5I¿ý¾Ë·Ó|“džZ+ˆök](ÍJ]ÚØpÿ–âŽÐ'öoYÚXulô©ÉYw7˶¦—b†º~m÷ÃêWU_x¤ªßˆ³­Dkz¢FÊ ¹¢,?òh¿Ôð;~Üñc%Óév iã})¤û–o5ÛÐðiù£ßÎÔ4—;º¶_زS.Oß;eåîè÷çÛ%tIv iã}ÍùÇ…Sºf—x³e&ëKUÀ7z„nÕÜþ9›ælš³‰È4d"4cãFàî‘¡[¥óÀdÍ;ëò•=¨òmŸÞœ˜×¿‰SšÔÞl¶¬ñ]ãÕ­-©ç±Æ3­i|Wú^¿¾soo+Pž™ygýL› KØ»µw꽭⾸ދ+{¬4À­&/Y±{$y,tÏcßÝq¸•W[©5Mãn.U|kÒ¥á#£oŒãMFÍz|ý—në*ÖCô¥,ƆM{‡‘džW+èºU •®»GbOª¸m¦L’çëÒxx+ÙÑÔªàçìþ×C®I³Ž'ꥬ±0„«*Àr¢¿Íà—Ú.^0¼`¸æDôKLmîrA ‰~ãÄ&ï_[×ô³+Luÿ¬øú§?˜{[þËÄYj6bž+ù·áà †s×ìTßî‹V4€_ôxgaìðð Íí;6vl,‘iÈD hÆÆ…Û…I³ü7wÖº_¦Z7¥Ç'ΞÞ]1ÂÜÅ$îê®]ãB­¤¶µAõ½C-ZqQú˜Çšïvíí*ýpã ö=š¯ÒÒÀ¾§x}ä°~òö·þ,mòÁvä±Ð=ÚääFeCéT&=ʹçÝߺ‘SN£8±…-&¯tˆ×¬„èWØ1Ù'ÉÌ<0¼ZAìðð I¼+·^¯9­ß©äQɉž½¾hÓ!À;F|ͯwê¡\3ª­×0‡ëÆuFý¥¾'Í»E½”5†pUEX®ô«üRÀÇf›ul–æÎÉY«t-•B¢o|¡¡—ÑÓÇp½Óõ«e-§èþYñõO‹¾t.cÄ<᥈R8o³­CøE%ÙÃzGŒ Þ »’ìì>#ô«õ+Þø~ÊåÁ?ÿ·±Ÿñü¯¤íõ+Ú½¿bŒR„çÚÖ!Þ@Yðw ÏÕßð_*X<ùTÚ^inàç+×e÷!Þ »ÿ,;U®¼!‰G%¯<×Öç×–Åí¶[<½çÞkU§!–K“Þ,|÷’ˆ~5€[¦µ³¶H!Þë ë1B •®¬Ñ‘ö¾òÉë²õkf¿oîÚþ²·CÅ žæ§öôœâ;·’6°Äêx¢^J¼0L»¶îÚºk«lÀ‡Ë—.ÓÜí¡?®ÿÞm“Ô=üµÏ?U Öý³Ã¶mŒp»->+Þy#µ 1Ïœf/Gïή=íVÒ~ÑcYä°ß"oÐ]YäÑE‡¥ßôý¡ó¶ÆAúùwz§éôŠÛï·Ôý±yyžGÆë¹ž­RÜþÞÛ÷³[I¼€>²q œÞ¾Ÿ¾¼ñ7èƒUÑ9ßù—/n¸kœÇçï|ü±•—od›!÷ÈÛë?ß|ú³äÀ÷ÓSŽ."Þ »éQ§Ûú8I¡¶ÐÞ(qa³?WŒË.EëLé‘ÛÅ»@[ Ds_¤ÜöRwn`¹“x ¯V0ì·ˆÃR®Ú=k}¯o;·„¦oIm_D½”x`˜ny¸åáÑé}¿@³¹b«ú’Ö¢Eð3<`ygjšËñي߇;€ ws0¤IÊw?Œ960B=káè…®Fw6šbÜKl³Ý›V7ܲèµñ-Ý–Å͈8þçy*Ý6w€þÒ—;€µb/¬ßjõ?U~Åýâ`è;)Ü<¼xsKÅ6£ÆkŒú5T6žgl5Êxûf÷½UW?4÷…;€H¯V •;€«3nkÔ±w¹Ø#µUw³÷¹¤CæwKÿÀ^nWXŽ[Õã­YŽNyº¶û·ösÚ(>+$µ mïÏ£çOuþhÎ*ï®ÝwGGFGFG™†üGÄ€flHóÀ‚·{ù|©˜i¾XlgÃ3 ëÝœn6ì–‹Óí?¼öãŸç¦~<¶ZÛ;€‰Lþð‡?ü‘~«/ïÖ¥ ,4 °ö´SK­ ¬íÀä±üÑ–ÇJáÀ½~œ?¹† ÷[fŸöÊ–þ;€‰LþðG¼¸¦ÞlºÁ$Ùx¾Ôª|ÚÞLdòG~WU©¯¦¾šú*3#¿?™“3'gNޝ_/¾žî¯øz™¿øÇ?îøq‡æÎw;´Çñ¾ýuC,m[ås¸ÛVktÿ¬O×nfVOßj:䪉ÔÀbž+kõ¡æ_ón¶Ìä¢ñaÀ/z¼8Ð#t«æöÏÙ4gÓœMD¦!1 7w Ý*Féå;_Î k1Üa‹é+b ÅßÍ]µªÕâkô«õ+F³eïæ'èck<³ÑšÆwk·9°j™ï>“Š[åz/®ìý±ºå[I­×uŸ59f¾ÚÒRj àV“—¬Ø=’<ºç±ïî8ÜÊ«­üÀR«œ4ÜhÚÃ8Œ<0¼ZÁ@ЭR¨t¼ÕÞ?øÀ½n·üÿuùN¿ïBÂtÿì—9_óyCì‘[‹ÓqR«ò‰z)k, áªJ4 ™yÛ?ûð³?Ó=¿_ÿò›¾½Ôð­ð[á·Â5'"øÜ ¶¥è˜ñÉÞOÝ,’þ©­Nþ¨´©úSS¿ÈûLQñ"aà°•ZJíAFbžùû"xæyæyæiÎíÅð¾ªu4€_ÜXPí׺Psû7]ÛtmÓ5"ӉЌ‚‚Ÿ·.”N£4°½×&‹§—g[u°,ýÝf_~X >6}ÅøDq|™jæÌ‹u’È}Écƒ¾\Ut|™tîâmjªÊz;B÷ϺþßP›i‡Äg-7*ÓBÜ¥ÖöéóAúÆÏÉc¡{;jÊcÝ/ÕnUATHÆÕÍjï1P÷±â^ ÚÿéךÿW 5“÷]¾æs˜<0ÔZA´_ëBIÜ#`÷“E„ت·’M­ tÿì¸"åûNnâ³±û[¦5ó’N•OÔHYc!W4€åG›¾½Ôð£N<:¡9)öî-·™ZH!ÝÿOQAŠÏ+–{Æ4¼§ûŠÞihÿôÎ-«5Nu…N/8ãàÓUj `1Ï4€_„x‡x‡x͹½•3d@ØJÀ/nü¢°C‚÷TÍí?¹öäÚ“k‰LC&b@36¾(œ³×{ª¥_Û/ó‹}z¯U]£“Fm/Ùý·Cð*ýmýŠñVÎ~˰••<êÄ!Þ!ÞÈ}Éc[Û¦æî·”NØh…ñQ•÷ÂéwW÷ù›;kc–øeÞlôV«ìžþz®“óÛ;ã¯H­ì4Æ}Î^òXèžÇÆœ_ò‰ó)¿=W—w‹¦¯4·sòѽ¼×’džZ+èà=Uš5:]*u^é¶Ì¯ÀøŽÑa£iâë‹zì¿Y:¿úüêóš3|jw¯üÖ©4€_Ü8n¬²»S%ËîͰ›a7ÈLC&b@36Æíê$‰öêÐíÝßhÿô®¦?lþÝèé/è¤.˜ÜÐ}˳ŽÒiŸÚ½!¯uªæÌ‹u’È}Éc}“ïlȫݩoÁœV[V_nœm6ú/W1y]ÚŒl™’»ÈE<êÙÃf‚Å’N={¶‘^ñÏâí¿âÒR{K±}~Çf}CÉc¡{œ4ÈÁv. à7޼¿}²ûòXÀPkÊîN’¨†ýñS¬s¸ióeæ§zú+ãwŒM¶Ú£S³U_euä‘Ûåíý·xuøØ{ñ¨¶^îWlýÝÞòîŸÕ ½Ÿxw¯|j/ÀúK~Mߊj¡œ¸1qcb%"ž°ùà;ž¿K'õo1v´ý{:í™Fßùv>á×f3¥y#æVsÃűà$¯¾‚ò‚ò‚òJ^ö¾0ì÷-4€_ÈX×VeorÒ8«’‡o7xÒàI"Ó‰¨äýÜñOg©Ër¶UÕn£4ô‰o´¥MM½5M: àÔ…“¹o©äZåååD&èKÛÂa°jr#)4JŸ¾Ç7Íü ‹ºÿdlbã¶Bù£¯ù¬?6m’Ú½¿ÁAkÒsOnôAãSä±Ð=m¸ØÔݸuÒôÂÓ¾>4€_ÄØõ¿3~r\A j­Àä¤q–¨5I§R§hmQlºQ÷ügðE÷köÙ¥‡­ˆH‘ZOÔHYc!W4€õ‹¼›¾ÕB8«WV¯¬^šÓ×'.%ÅE!µ €¡=3ŠÜ¦)/víbÕÃò­fæ™ltØèø»Ïán?Z­‰kúÙ¿¦R¾Üs«9çâXpÂWß½•÷VÞ«ä1&kmo6ÙJø…<:fò°°9š[Þ1¡cBÇb‚ˆ‡JÏ>ùëKasj·Qj÷¦ÕÇ ·È¯°Ös@“­š[(ÖIbô%5s¹ê9@:MÓ§sîٳ݈tóƒ®ïykeÑÓº«ñ{›n7ûÞyeËÝ6{ƒ;wÜ¡6jάÁFkÞÌ}Sr­ßà5krs[¥®øúy,ž/¼æ„©÷2À/btèïdú-y,`ص‚!aas¤V¯[>=ì’ûφ9·nvÚlT£YŽŸ2¶sžÕÄ­qê€&ŠéMÛçÙu¶Ÿ{ÅOI­Ž'j¤¬±+ÀÒg8Mߊj¡\”X”X”¨9•nß…E6ùLÊ—+Ï÷¥0Š¹Õœsq,8ùkŠÂQá¨pԜ续c? Õ—‡*ëKx·e— ßiÎöú õA냈F"4ãd·eÊ\ßéï{v¥9Þm}0?æ±­§ýt0_jmàªÛºÒlúV=†¿û”¹ä±x¾¶v7YœTØß×–‹jA…ý}mÅ|jγ˜–†öPýPýÐ%Ð%Ð%Psίœé¯™@ÚWý1µ}ØH÷tÍþôÞ§÷>½GB“ˆ ͘Im?é¢{:ÛêWÎ|Õ2d‚æ ‹õP¬Ä!èoë?fa÷¯ZÒ¾­þØÂl°Å¤‹ä±¨~ÛuÑŒÏQ÷¨þ8ÞæëÝž#ÈcÖØ¿Ö ÂFº§S«þ(j¡¬±04€_>š¾º¨S»ÿ¼ª®ª®ª®æaˆ´ù¡â—"ÕÅjέ˜sˆg»ëv×í®š3?.E9ÐÉœä¯:cYÇa7#i[¾?ýûéßOÐ$bC[ä”u<:/âMÜêŒãRúöuªäub=$@ßóXûo;¶êÛ—ömuÆÀ{鋎Î#EÍæ±Ó#O‡ù8Rý¨Îœ2¨íbòX€5¶²ZÁ°›‡¨ÅUgµPÖXÀ/MßgUË àcK-=¶´’Ãû¡¦¾Iƒ WùºrAòÌãàÂU¾®b5çVÌ9‹Å‹Sª,U–*µ-7×g(ý€ðùÆ ¯vž•¼;|䔑SFN!öP5'šñ“á5³Äs6MÜç¯Ïμú¶O¬‡ÄÈ#mÕk‰{æ%Z¹Ï7º¥ÄßšYB‹šÍc{îž×<Èóïö;´Î«y,íµ‚vž³©Å=ß(꟬±04€_š¾ÕQË `µ•ÚJmåpÁá‚Ã̓4$eÍy×ë\–<ë(æMs>Å<‹9gáxÑ–7XÞ`yƒJ¢ú½–¶ö¿>ëx·QlZxm úåìËÙ—³‰:TMĉ¶(ºÛèà¶ð>4tŸuò^·nö¿hΧX‰:Skgöy·n´rŸul}0íÄÁmä±xqyìÔè¼ÆJg*!Ï:úû}ëîä±þ®V›Þ‡ºÜ³Ž¢þÉ ÃA¸fÑô­)u¤°G–Y~d¹¶ÃöŸ Êb.NtÅ\i›I1ÏýËqÿÖý[÷oi;¹gß~0tP÷qÒh¿NÍ/iÎäÛ¶#l‰7èNÄŒf,M=xFóK4tusÏ®}0MÛ*'Ö@â ä—Ç*•ï?Zû¶®î£C¯ÈǃgÇâÅå±aQq'ì ¨‡<à ³V§(" [­À¯SóKÔåtEÍ“5††põÑô}$ÑVÿ¦þMý›*_•¯Ê×<„›G^mšÆ%Š.£˜«JÞû›¯ÊWå‹y&è_¦Íi›Ó6§i[žJv ëGjXõ˜·­ç–€_´Í᯿füšA¤Aw"f´ETÞ¶ŒÑ¿ÐÜ­z,Ù•§mźG¤€¼óØÀ +?ÉŽ¤¹[õ¨\8Ó2c4y,^N;"iËwª"÷Kó Ný¡¼F àÙk=·ð<¿¿E“5†‰põíÚºkë®­4}kVélÊ妗›^nªí ³^å¶€Ëm£˜­kz¹é妄ûËW[[ë‘î‘î‘®y\•kœBIµwbû…ûj‹ê­øhÅGÄžˆmÑu'á g¸/^mcBxßkN¡šó&Ö:±îc ï<ÖþAÇŒ¾×hñj}ìóÚ´á=ÉcñòóØ© N.T¾A…DÛ|cÐYÛ-䱞·VÛ/Ü—z¶QÔ9Yca˜hWß“¨'QO¢húÖ¬:RÛ Ô­©[Sµöù'l=˜èy‹‹–Š£˜m3&æ“@¯]î\¸sáŽÖ߀ëÞþŠ·#ibű@  zµç›x|ðxÍÓ¦Q]Ó;Ƨ:üZiÆŒ˜1'šs%æPÌ'.«¯>¾ú¸¶d(§CM­¶“2Šq†w«Ó.ôÍÕ—+.W\ˆ(TŸˆ%m‘6Ã;.ÏeM_1ætXíÓj»¶¹ë†™Çz0ýÛÕ>´~Å踾G“¸<òXÔn«š?zLÓ«ÔLÄwûó Š>ä±j®VÐê´Ë0jwbõLÖX€0¤©Ž47«(º(º(ZÛû!ÿ6u›ö䛻ʯ óF컘m³$æ—oÔߨ¿8bàˆ#´µ‚ÒhU눜8.¾:F¯m~vØy`çB 5KÄ•¶¨[|ÂE¼!·~ J7æ´¾¬m~Äš&Ö7b 9õüÁÎ9†Üúu1êiÂòXH'íòÏ©þ™†Üúµà¿Éî×Èc¼˜ZAèE¼!WðD “5hCšêHyã ¾+ø®à»ªÛÀ†v7°Øßª[¿bÞni*Ù]²»dw óæ-̵Á<›žï3 Ä±4~XÛˆ…Q!ãÝ ´ÍÉü.ó»ÌïBüàÅ1¦-F%®u+P—æf·0œÖožÍºÇǴ͉XÇÄšFüy¬ LL:¼î±µ~ƒÖ¤çf;/è§J\K iæ±O~Õ¡SÒôÂ_霌Ú2ÙÝ–<À‹¯„Œw+u-é㉺%k,P `HSéoâ¾ô}éûÒµýP@6„w‹}ÔöÀgAÌa-}ÅÊbe±Ò¨J™¿vYì#ówŠ7>7>·|lùØò±D ^o"ö´Ef@±gZ“ý7Ý÷dµ‰–SÓ·ü¶õgŸg±kLÕë’X»ˆ ­úçEóÈÞ½ÞYüúêòerjý4øxèž,ó®-Œ=ÓÈc¡_y¬C’÷Ó+-²·x}-«ÊI½s¥¾ Ú1~M³òXµW+°{µÉ~Qï’SOÔ$E}’5І0¤©Ž~mnÕw ›G^mš6Ýû´‘•þ^ÀˆíûRõþrׯ¾»p3àf€e†e†e†¶£ì}×z´¹ÛåÆýf…éýo &têóSÕQ=ñÀÄ”Ÿ-?[~–A-\Ú-?[~VÄáßÜ©ŸòšÏOúÞú½ÜxÇ™#ï»næZ_. Ö(±^!ÝóXÓRÇsnþ "vœÑ÷Ö¯G» é)¯‘ÇByì€+Þi±Eß[¿‰í÷©<›5uWüÑ8›<€”j]†úü¤ïÝ‚Ñ!6né†Ç}© Ô—”ñ§Èþ}Bwuh^l3§ê½[~zùéå§Õåêru9QÚ¾¶S—«ËELV·]¼mæüùÕ¢ÅúÒô}4<Ç[¸`tÂ-·¿ùµ*±.‰5Š T'uÜwO­ ¾ŸžÏñÖ—¦¯ÿ¬…Ÿ~µÈj¨ïí0oòXÈ/u_­a:¾÷~[ÏÿèKÍdF·³¯øLéÔsR;‡æä±¤]+h^l3GÔÄô¥‚'ê¢öÈ èŽ0¤©ŽþnzQtQtQtðøàñÁã«þdÿ¾G¨©oü Íç’ú¦øºHè¦OaН‹Ø6±Uï‹Ø_±ï„¯ sÈäòäòä¹Kç.»T—_XÔ.ÝóHÉ®aÝ#⤖2^p>tbb¼Ï›NIºìK¶_¶_¶1iñ©K$'Æ÷ËuJº™¹#t¢Ôš¾%»²»FÄ­JÎñ<¢Ë¾ˆµH¬KÄ fóX·£#'çnXùIvW©5}[uZÒ sG³–zöË%…áä±!‰ƒsl/¼ÛæÐx/;©5}ÿ³àÔÊk½ü橚çÇÐÏZÏ›NI¢V&µ ž¨+Š#k,ð|hCšêèû”+ÊåŠÔ­©[S·êò#Êìckw“Å}¬SL\% ,\éëZ 0 WúºŠmۣ˖‹}ûKà‚¦'LO˜él–{਋Þt¤ÍºÚJOîéý‡«Òn–.ÛÜã‡?ôø¡ØºØºØš#é±*âV—þ£½©Ý¬“ƒ× H¯­¦oÑ{{÷¶Y7Ë}tD‹‡º¯'býáˆ^Nëô$úíÑ–ºíÝ[[M_edR×uÃmÌÛµ7%y¬×™Nû-7ÄÿüÅE÷ºµÕô˜yt¿×·®$†4«C @^µW¥Ý,QC«­ ž¨ŠZ"k,P}4€!Muä´3—›^nz¹©*_•¯Ê×ýG—Ûwa‘M>ë—’â¢x÷áá]^ýkö¢E|OñýÅ¿¥û¶‰}ûE°¦’¹%sKæ~hö¡Ù‡fºGŽ­Sã­ '-ñ ¥˜xnuLÝÀâšM¯î¤J:R¿{cÿ=ã”ÝŒžQÖž¬=Y{Ô¥êRu)Gz¦T]ª.1ü¬‘?.¡o˜“ñ‘ú+¯øïy¼â¸ƒ*©fÛ½çVoX¼ÄgÂUÅD['ËK 'é¾mbkP[y¬II?ËK.Vþ9áªo»Ù³6ªÙFoPꪔã^_M ]yÅ>¿£cß0òXÇê"xæ GÛyCYÓmËŒ«ß¾âóEÍVNÞ9º3¶åÚ.SG;4 ³Zmò.y,Cª(»;‹:›¨¹ÕlOÔEPÔ YcšEÒTG†ûtK}K}ëÈò#Ë,w¸àpÁá‚Ñs±wo¹ÍÔ"øÜ ¶»HÚãx¿_bjs— CrÖ*]K‡þ¸þ{·Mâïâ¿‹¯_/>û|ÿ®Øf±ýb_SWç_u~ìÈØ‘±#Ÿ/º¬4ºf¢øÀÝþׂ !MÝVmnßþ¢·ýÞì®u}/ú:êÿ1“£ý3¿ï2×§l]I»fžS’:|âr¹óR§2ëFÕf“f“fSUUÅÑ„L®ï¢J£J£DlWçìè¼4ÔËúARçø—ËëJf÷œ’ù}J´OÙÁäO~ñw>ôõŠKþcöf/‹÷½°¹ýG3½íLH¸ï¶jàƒÈ¾ö½¬Xø›¨Ÿïßë‰X[8š)ç±&‹Ìn[øÛ®mãÙ×9¶ïþ„ûŠÛï~4ÓÓjbà²x¯ñS'®¸äå?%ë“_<úL¸í6+>wæq§¿= >Áò†ÏP/òXàE䱊áá훜o;Œ»}@Ï•s}›<Ð|Ev‹}±;׸µÚ1£ÐmÒ ’Uÿríc±8ÒùëN1“º8¸ønì>ʪشÅ&vä±Xcµ× œÊ¬ˆºœ¨Ñ‰z¨Ý‰:ž¨é‰úž¨õ‰ºŸ¨²Æ/ `HS™ïŸ•ÚJmul鱥ǖªêªêªêI’Ø6±b› MTíçm?oûyÛÄSOMðä¨AÞDœ‹˜—òY)Ö ±†pÔä±ä±y,°Æ²ÆÕAÒTÇÐvøFýõoÔ_V´¬hY‘Õl«ÙV³_þTñïŠmÛC ¢:JrJrJr2çeÎËœ×!¹Cr‡äÚJ###O:=èô Ž Îq^ÔÖY)Ö±>ˆµ‚ã %Èc€5–5¨)4€!Mu˜‚¢Ä¢Ä¢Ä¬^Y½²z%nLܘ¸±Ù’fKš-©þRñ}Ä÷ß_ü[Ì9^´gœypædÞɼ“yóJæ•Ì+ ¹r1äbM¥‰1GcŽÆ͘‘1#cÆÅóÏ_<¯~¤~¤~ÄÌZ=R?R?ç‹8wÄyTSg¥8ÇÅù.Î}±0ñòXòX€<XcYcÀÐÐ~fÇf›ulÖá²Ãe‡ËÄß™è»ï}ÿèûGÙ.Ù.Ù.GcŽÆ)‹*‹*ã g@­ç 8Ź)ÎSfòX€<XcYcU£ 2Ad‚0È ` À 4€@&h€LЙ  2Ad‚0È ` À 4€@&h€LЙ  2Ad‚0È ` À 4€@&h€LЙ  2Ad‚0È ` À 4€@&h€LЙ  2Ad‚0È ` À 4€@&h€LЙ  2Ad‚0È ` À 4€@&h€LЙ  2Ad‚0È ` À 4€@&h€LЙ  2Ad‚0È ` À 4€@&h€LЙ  2ñÿKȬàܦ•%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/publishLast.png000066400000000000000000001066551431412030200257000ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTT×þÿ57ÞsìŠbCl€ `ADÑØ{ìQ±Äk¢±÷{=1£± œŠ¢F,ÑØb×hlX°ÂïÏúq¿d¸£ 0sx>ÎZ{¹™9³ç=Û·û噓%` Y˜0`0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `‰ç^{uîUTù¨òQå´?Ðþ@û-^´xÑ‚™2Šø ŠÏ£ølŠÏ)3},@ ¬±¬±€”&ôì䳓ÏN9zäè‘£3ãgÆÏŒºt1袓´?Ðþ@ûëÇ­·~ÜųÏ^<›ø*ñU"í&`Ù«ÄW‰¯ÄçE|vÄçÈVŸJñŸwñÙë ¥èc€5–52`ÀáÅGÇGÇGgæž™ '6œØp¢SÒlH³!ÍNt=ÑõDWÞ@|Äç"£>•bMëƒX+x_ô±ô±},°Æ²Æ¶’üSù^ä{‘ï13ÈXÀ€CºöÓµŸ®ý4âøˆã#Ž;Ù±õ5××\_ó™Ï3Ÿg>¼k07Qç¢æíùS)Ö ±†ð®ècécúX`eRƒö‰p×g]Ÿu}V¾=úöèûnÍ\±œùnäIìòÌË»T›ÙÂJz¬ÞÒ ÁEßRû£šg­rA—[,«6@›Ø¢Lµr{Î5áÿb]|ýÒ>£Ç7 XVþr“…î/Š=KM+¹Ôu©ëR×ç-ž·xÎ]Ù`¢žEm§æÓÑdapåbÏÆ7 \þòºø ‡|Fï9· ­ÿ mâ²ÛÕÊéòòKÕìZVå–Ó&ø–š=lðSÕ]ž5ëXªM±œEªåI|·çë‰X[x7öÜÇæ™[ða‘jÅ×Ö.Ó¬c¹•ÁO=~8m‚OÑ‹Â*3bù¥ÊÕF‡/»íÝaØ…m=¦„ÅL8äþŸO;‡ v¹åß=¸2},}¬gï: Ÿ­7k€W©€Ö+fT)ûm—BË£*H=v­‹õ¨ÿy£õgóóÛîxlwýô¿ü?þÌ™*Ul5~q`WJk›ºéï¦ )º&Ï—ô±2Ó^_Kwg±Ï&öÜl»'öÅ>¡Ø3dl‹ö‰°S‡ .p¸€õ Ù¯À~^ÞÞ5²ö:Û¶‰ÖGºµö XÙöQE¿S¬9çVç[ouþ^±{Åîã‡ýµ*êÖš oû¨ASŽt[×;`¥mƒ^ëÇ»Ã÷ﯽnŠWÿº^Z¿žˆõ‡w>}¬û›¶Ÿö¯Ðp¡Çþý¶{­ýšo¾®·kÁÀú ÐÇ‚>¶òÉÆŠËưk?^ôÊjÛ ×úqÄžJ帯 *…>€¹ö *ú•˜"öÐ2jOìнDÖX õ€aŸ€;’01abÂÄ g,œ±ÐšÆkCÍú+}"ãw÷lY·WFµŒ–Æ›Í:Ÿ 1$Ì?·ûxk^KTÕ¨ªQU©Ø'QŸÖTò°ÏbÜÇßl¶gGðˆŒ }-ñ»£š×íµ¡æÄhŸHk^‹X‹ÄºD lÛÇzè3obtàÆË¢šgTèki¬Þx~Î=;JWjÜú³úXdž>6hH·è⾬­­\"£B_Kã׳?ò»Ñ¦êÌвÑô±s¯À?·ûx±Wfo;xb_Qì1²Æï†ö‰° Oj=©õ¤VãöÛ7nŸr›5»«ÇÊW½{í ´·–ÑÒxµY§A󚻕½ç:=åW·äÄ’KN$&$&$&PÈ` ‰ ‰ ¢&S®Ûæn!¾®Ó¯6ûenÐ<{ }-¯zGû†Îî?øÇÊ”_X—ÄEQRÓÇ–ëÖqßà5;®:íko¡¯¥±Ú”9«~™[ôó*C|éca¾>ÖkMhŸ"ÁCÛ)Å}¾¶·Ð×Ò8î“SÿòݸõÈúneécØ÷^AÙ{®ÓÅž˜£ìà‰ýF±÷È Xö‰È`wîÜ pYï²Þe½¥¦Ê÷q±þ…<.çÿlJ“£´Œ–Æ=ƒ›~î5å&r„:B¡&œJ8•pŠ AümîT©„S¢S®Õ=ƒüÛÿª£„¾–ÆËùwœ rò}ìáVÈÃÒ+k”X¯¨€õ}lçe~óp«VdvÝ'%ôµ4z×¶rÁ¿écaŽ>¶ó­å_TØê(¡¯¥qH)Ô§tI/ÏGù£ècØÓ^AÓÏý¯:úžØ‡{’¬±@Ê€aŸ€ skÈ­!·†¤Ü2N=[óÊ퇽_/‡£7ŽIÇ;^]Ônp¯DöХד00a`Â@ªéô×¹ ŠÚ³T™÷|–Vîxí ¯ÝÖѣߤcÂãÃ/êå˜zö‹yÿÇõ[bí¢Z€>6å?/Ê6k׿‹yµ>\“pø…£G¿IÇ€œß~¾/¼Pó Î>KécáX}¬Ûx_µÀ•E¢¶V–=úý¯1ÛoÏ«älðãÐïJ×¥q{%²VÄ~—™vðÄž¤ØŸd,!†}"2À=¿{~÷üþÇ¿ü³é<ÿ×fj“¯kôÎÚoÈ ÿ<î-ÍÃÀÇ|œžžNå …'†'†‹z³xÏžAŸpŸøºFôï¡ýÌý&÷ü¹ ‡ÿë”×(±ŽQ8@›œw§a7ô0Sè›|¬9quÛèßKû4îðÙ úXØ4¼Û¯Å/ŽÛ}êÿ•¦Š~“]Š/­ ÒÇHß½ÿ<îÅ—¹÷ñÄ^%k,0ì0®â÷Æïß[¡P…B Yj•Žº¶pÐÜ-ãÏÃzÖ«;§EÐPXKs2«é¬¦³šR?H;¢Æ,UàœCÖzÄ&>‰ªW×ÜÑoÒñ¨ëº×-͉XÇÄšFý}¬à7d¼±îµ¹£ßÿk~·2&ªÜìÏB‡¬¥…}ö±QÙÝ{&¶Š¿¹£ß¤cŸš[Gy§ö{AC=bžVæÙÇû–¬±@RÀ°OÀ@zù5ñ×Ä_»ôéÒ§KKMRìó¶¡5.g¢è7Ù8ïiðÏ0Kó³KÝ¥îR)%Ø–¨+KU7ïé°ža™'ôM>Æ>ß]ã²¥ùkšXߨ%ÈÌ}¬·I»6Eg¢è7ÙXÞ©Ó¥a;èca?}lÓ÷ÇTsÛ“yBßäc¿Ù?OôºA mö ‚x†eæ<±‡É À°OÀ@:YshÍ¡5‡,5FÑ [ýP}{fn“Žã|«Ÿ(ßÓÒ\])¥ü•òTROÔ’¥JçÛëhùž™9úM:F7\ã_}»¥¹ë™³õ4öôÿÌý&ËlhU¸×QúXdl:«ÿ€’×3sô›tìõðûažècØn¯ ú‰ò=Ù»£ØÏd€aŸ€4w!îBÜ…8KÍЖ– ®ø–¡eL:&„÷~úú“FåÚ»þÃö™çlÏÙž³ß´{ÓîM;ª ïFÔ¨¥ä5öI£:E\&„>úšè7鸥å´¾e,­fb­£º óô±žq_Ô™6ƒÐ÷¿î œ¸æüá#EWU]W§},Ò¿­äY¯K‘ßÜü-ºJ6¢ß¤cûâóÚ”Séc¤n¯ \{×£bÏŠ½»¤£ØÛdEfFl+»·íÞ¶{›˜ÃÉ›'ož¼ùÁÇ>~ð13ón€4”Ð#¡GBï•Þ+½W&ÿc`p¿ï܃i-qƒ{|V§Š¥öqù´åÓ–O£ÆðnDýXª®¸ÁšO*Ľ–ÆÁu:ÞpN>ob­ë5æîcK=k´¾ã â^KcµK{k>ô±Hÿ>vLÎ#sür÷ZkÝêzªøVúXïºWÐã³:Uد³4Š}NÖXdNÀ©÷¦Å›oZXZ ƒß 0†¶,ݲtËRKËVüîž-ëö¢ALy<úSë­·-ÍáŸëÿ\ÿçz* Ö5c©¢Žþ´¾Àm"Þ”ÇøÝQÍêö²ø­K·,ݲ”Js÷±W,‹jFЛòè7g‚Ëúþô±HŸ>¶Ïø­q^D¼ÿcüzöñG~7èc¼ý^Aë­·Ù£Kyûœ¬±Èœ€S/鵿)# ¶0&ž>xúàéK‹TÌ©O_|Ekhý8²ÕÆe/ýÃ6Gñ>Åû§Þ`=Q3ÉkidÿnãÊ^"ܵ~Œ9µöeÀW–V9±Ro`¾>ÖÏï›Wk_îZ?ºµiöºÛ8úX¤]Ò¢×᱄»Öak~ìåy—>€u{U—½Ä¾œõ£ØódEfCœz"ÐᮓÕƒSF ¤‰%9—ä\’3ù’Ô}x¥â¥ø7ƒo=>Î×ci–úËQ—£.GQuH™¨KUô8ŸöSĺo;vþÉ'¥þá}±Ru`¦>¶D±ï?ù„@÷­¿Z[zXû‰>i×ÇŽi{4¿_9bÝ·«žýô›b-écü¯½‚Kët`_îmG±ÿɋ̃ضƒm…°±ç~ÏýžûYZ†nNí|/xà»ë+×ð™š|VûŽî;ºïhj)u’¼~ÖWžï3•(÷ÝÆ›S÷\ ždiÅë!µæèc«·™ïµçî» ÂLˆ§…mûØÖ{gô*»’(÷ÝÆ/?Ó×U®@ Àò^AýŸ©ìŽÛ(ö?Yc‘y§ÂàÔ ll{Åí·WL¾è Zà׎-`jÆzÞ©«[ZÖâþ *ɉڰT9/˜YW'ÊMÍ8hAÇŽî…’Ï­X©@pô>¶ÔéFÕ;v$ÄMÍødåÜ3écaÛ>vl³!þeˆrS3ÖZеvñyô±kì?íô¼SWg/.5£Ø eEf@œ>ƒß0`;/_&¾,X>°|`ò…æÊÉNžAÃhþR?.nÒ×keò^õdÕ“UO(C$'j#yÍ,n0ò¢×JâÛÔWNþR)hXòë¡X©CpÜ>¶Ú€9-©Dˆ›ú±BÁnEF^¤EêûØæsÇm.3—ø6õãPWy¯OúX€5ö¿÷ Búz­dÿ-õ£Ø eEf@œþƒ­A ØÌµþ×ú_ëŸ|Y *Urq‘´}¶ï-ï67Ä5ù<»¹¹%K<–xŒjÄߎ%K<&j#yÍÜ[.õ q%¾µÕTÊïz‘ÉçY¬#8b[¸¸Çj¿ë·¶~Y4RêE‹Ô÷±##¢§ø6 ¾µÕè>±jí‚3écÖØÿÛ+è67Ä•ý7[b_”5æFœ±ƒ-!lfi‰¥%––H¾”ìÙÙô+ÿ‡öÜŠ}»¿öp¯ÅÙžoÒA©ùÊþÛÇ&óÝŸ{–|¶o云ëF.ª‚¨‡äuÒd~°w±gö j7–ûU«ÕsM˘ҫ++ס`¾BS lw~YnJi¿ü‹›TºSìêÌ:ƒjy”ˆŸU±nG{;ÿ=;ø?L>Ûbm¤ÀûXïVÃ"ØÅW(ǬtŠºUνÃëA/‹V®Ò¬v÷ücKz»»;_ÎU°¡Ê{ys½SëÆ_TÞôU¡[í9v¹åß5Ø›>ïÖÇzöªS¿ðYG VÇv:ÑÁ¿BÙžÕŽ<ó÷­‘²†7ðîboçÙ%ûò öÐǬ±b¯Év½^öÎÚ/ïIçáNwœÞÉÍÅO³‡×"öEYcanÀöƒ08)`Àf<Ëx–ñ,“|ùx\£Çæ:=ì4LÍ–»žS`ƒS‹üWãkÿð^—¦ë«||¶7ÔÜPsCMª‚¨‡äu²×eÁŒ*ØEtš+&w=§Aw;~çîñ¶;ê½þÀû €×ÐŽÕéñÛ”e<Ëx–¡Àû؇–^ÕŽel\Zeè´ü?–.ða©[å:Xÿ§d‰Žu¶hQËé»Ü1¹í-öîýå{ fÐÇâÝúØ.Õ–¿ªí0wØ•ºN/¾:ù«°·óÓ÷h?/úX€5Vì5ÙîׅZ Õªì” ö‹}QÖX˜°}" &làÉŠ'+ž¬H¾X¬-~§ð6{Ž~'FÔ˜Pá¾îÏþࣺ‡„LO~æ7Üh05 AÔCò:y0J¾2ÝBÓ9† ñ0þë¯@5ܯØ´¬ë˜•š+¹þ@lâÊàéÝDUÜY,°Hç¼&ýý©ÿ ùÃ~bà€µ> oK>çb¤&ÀQúØB!å¯ûtÎØ ´æ•5_nQøŒ×µª±ŸÖrçyBKþúqÖ¶U<ö/:ÕÉ?Ûĉƒ¼G´àl ¯KŸ,rªå´ÖéHÒ×bop §ÅËåKô±x·>vÔw‡ ø.²ÿè·Ý–¹3Ë-µ´­fŸçìÖÉw|Óô±@æÞ+è2Ý..{øªit•ÿºýقõ]=O.ž2Ék«5ã“]Ÿû× ·Ÿ}<±GÊ ³"¶™3 &l 6!6!6!ù±xNÈ$¯­öÐfýÙ§k–ÚßhàYyϸEË/¨|¹Ø¿ Þ·´´9À}D^„õªZ0,Ïçðäçÿ&盜orR™™™¨äµQ0,ÿqçðÄ1ê…flPú|DÔ­º J>rýO¾"âÜüwzN(4Oºÿ÷IüJü÷¤?eéwfÔ¸xΨ|^[“ϼX'©Lp”>¶‚[·ÐQù26(­Ôcð‰9ÿõO={ö›>¥•ø¿ÉÃ]ñ_ʬl™ÐëGñë½Ür–?ew_]ó»•1œGå›”ÿ8},¬ïcóÎ+àå\cüØ3'ªøÛsô; ÊæÏRh›ó.Ç €›ÿ<îj™åô±@fÝ+ÈsÄ9\ì5Ùî—ˆ{ŹUlW¤z‡Ù¯³0Š=RÖX˜°cÉÖ/gŽÒ>è×ÒýÎÿNÈ;!Tff&j ym Ø1ØÝ.âÒðþß~[¥UÒsÛqfN¿3ÖºIª®V½¡Ësû €ïÝx´Æâä3/ÖI*¥õ/31nãÑŒ JÝ[·®ßg¥8Ÿ|Q®·KûYó•ÎÕ¾›óà—ÿwñïÿ5°½ÅÀ¥Ž5*Ý1˜>Ö÷±µÆwu+>ޣ߯Šè×§Ô¿*õ,ðÑßꂾûJÎs”¸ïÓí£¼vÐÇ™u¯À¯¥»í† Ìá{´Œ"έťrŠ—sôX쑲ÆÂ¬€—¹Ã``ÀÂÜÂÜÂÜþá«c¢»wYamÖ©=íŽûï =/“Žÿx¦á`ß1ÉÏÿÈÚ#k¬¥233QÉkãÇ3Ó÷ûޱ‡ tEÈWz%éݾÌùHк& ÅO¹´/t3ÏJû¹øA´âò_%*ÖI*¥­Q|qŒâ’±iÉ„¿m—/¬˜Qr¿kçšåV·&Ê­¾gAÇðîÿžÙYìUs€×ôýô±°¾mvþ²roì9®Z´Uõbùþ¾^mPйÂÞãvŸÚå¿ÒQàQ·ñ]K dÖ½‚†ƒ}ÇØÏ~W£6 ûûËÿ»WÝ\®€ãF¿ßÊ-º{gö `^Àæ`¾0˜°Ÿ£>G}ŽþøyöîºÎþ›0Ç €ccÛV­q&ùùÿpã‡?Ü 233QÿðåB±›¾¯qÆ‚ÒÑsËûçêÓ£µä6r`Žåþïßö¾íÕþ±r³Ÿøç¡E¡ë’ϼX'©Lp”>¶æÎÕw-²»/O¶b¬Ð¢Ûo£Ž'½nØ>`ÿ“Vnúž>Ö÷±ýFÿÜÃë’}F§Ÿ,?¸ÌmqžEº—ÊŸ÷›á #kWéX_ýMùÓ_ùô±@fÝ+h[µÆûÜ©[:°NµJEÄ%ÁoJ}ìâZ´Q¾UyNyy¸Ô+p©ýçåç×dýÑ{qb®°ÜõìtOO쑲ÆÂ¬€ÍÇa00&K|ÁEy.:Ž£:n|+°‹wð¶äç?ý‡é?LÿÊÌÌD $¯[{ûo³Ÿ/LNþÅÎÖüÎVjè±â_<äh§ÂîKííNÀåìlüÓÚ°÷>ÖyB¾ïò?¶ÿ ·jÇŠõ;9!nÃo×aEæw.åÑÀ½ÝOI_KÅ'½^|3Ð>àê£æ/ßÛ—>Ö÷±_î0ªW®go¡iX—-Ï=Oçiš÷•Ó¯Îayú8MøüІë’½Ž‹1玲œCècÌ·WÐÅ;x›=ìt=Žìq¾Îø¤çV`cž‰Î³¬ >žX¦@ÑØkQnݰÏ}<±_Ê‹Ìð·*`3qÜ0˜H“%¾fŽ¿©NœÖcÜœ½ëÔL~þ{ ì1°•™™‰H^qs´úujÚgü?®¬õ8´(tÝèVÝß”kü÷Õ} •ÏÓëúî݃‚‹ÚÛÙÖÌá\¤:©Gìc í­ØÎ7ØþàüJµ*»ÚB€ýÄóþ='·çó¯±yé(­>},¬ïcÇ>²É/¯ý¥#_E?ñíT,Ÿ{t¾^â ›µÂ-,yÄëXp™‰þã V¥2ß^AÞujÚŽr³µ™^ã‹øªä!>íÜB~¬Ý0À·½ø=?ßlÜÊï»~õ*÷t»éœÕ©ÓíïÙçÕÀb¿”5™áoUÀfåXapûùHfÒ³ÜOų§õÕ³]Ý>Ô¬Õ¡nÇŠ~Åë¯6ÛEû¿ÿ›¿ªó,õ_K÷Wµ·kÅØÂ³NLñ,Ô8¢¢‡«yÔ‰qÜø¿¾TðÞ¨ãK÷Ûçù~¿b]Tê ÖûzÑñ¿[vñUÉ+~«çÿg¥{õ·ùûšûÊ«wwY8>÷™\Uþ!Üu¬¸ÒÒúÅŠ, Þ€Ì·Wг]Ý>ö°ÓÞ¿Y©ÿ»åSåËÅþ]ðþ–æ .ûº%ÝÁKþSû:5]eÆ?ÄÀv¶'öK©7™Óîm»·íÞF 8¼vM*¶.±‚8­ÇÍzþU× Þ`½ÍÌ­kØè{¾ÉOùk¾ú¬Zã/JŽMzþUz½.”pÔ{ý‡1ÿ÷iµÇóoפÁg%VPoàˆ\ËŽmð™£Üñ·æ¤Õm£¯–0/ïîAÞßûí·E+WiV»{ÒWä[ùë_W]³»øéÊæRo°ÞØ'êù»ÛCDÚÀiÈœÒÿ·b\.7–Ñ­bšúþý=®œØ$§Ë.ê È|{=ÿªkØó®ÝÛîïu¬ï1¸äÇööZÄ~)õ sz¹õåÖ—[ €‡ÇÀ\ ûdÏW¿l°KÝÄ)súÏ©è”W¾ÑÎmÄ9—È]ôÛ¼[çþ{h%—/¬¯{èÿ>§ö`s08.G¹ØÒ(^E±«G„Kúº¸ŽÎ®î}oK%ÏŸœž9çôY^¿ü3‹ösÞ¾Åk¿8CK?•üµp0ûÛ+°—+€S3þ”¯Q}ßñм‹¶,ø W€ýÈDW‹ï@çà0Ç‘üÃÌ=€3öÀm›µmÖ¶•™™QÉkÃ>ï|¡ÖO±µ*ûïôœPhž8ϼ'ófsº3¶`ÏåÝ>RÿòÇÿ}6ãk«-ݘÊäààà°ÿ>ÖQîlM ,ä (æS"ÑÞb`K÷¦å°ÔÇÚÃ=€Ûü1«O9oܨu¢r”ýߘÊäà0û^½ÜØV÷.°1ÏDçYö¶ËgéÀT&‡ùþVµ8ûâ싳33æ;öŒÚ3jϨ°laÙ²YßñŠßŸ‰î ˜û6ïå¹èl§õx+°‹wð¶äç?ý‡é?LÿÊÌÌD $¯[{ûo³Ÿ ôrÜÎqA!z»m-ð/q†â×g¬^]}’ø=Žýбà¢üZ[öÞÇ:OÈ÷]þÇŽ¬^TEÊ“ô¬*>éõâ›Ö?‚ßÇãk¬k"~6ÏÁBk\\ì-®>jþò½}éca}ûå£zåzæ €ííšà¼› ´r¡2ß^Aïàmö°Ó¥ÝhÑ Z-õÉ'ª}p9î³ßƒB¬ÿÙÑMþíŸK¼"†Edo»|b¿”5™áoU",dfÌA·“7OÞG“Èßxö8íÆØØ¶UkœI~þ?ÜøáÆ7¨ÌÌLÔ@òÚˆÝô}3ö”6¨üC‘¿ÿzVW«ÞÐåù}WéXH #†¾b|ãyhQèºä3/ÖI*¥­¹sõÝC‹ìç*Þ’BÃ?­kýÏVüèsׯtñ³.›ü–yÙ[ìßaÒÊMßÓÇÂú>¶ßèŸ{x]ÊØptLõ#ø¹ÊÞÀ»‹õcÒWÑUYµ±bÃäÿ×¢ßoÊŸþÊß 2ë^AÛª5ÎØÅ5²%®©+Îêã‰e µþgÝõûÆÝCül¥ÒÒÒ•íg—O쑲ÆÂ¬€ÍÇqCߤ€s s sKþݽsÈ à´<Óp°ï˜äçd푵GÖR™™™¨äµñã™éû}ÇØCP*—ZRµÇß×Zeu:âTïR‰ŸÖZí¸Ñ¯D+.!+þá«NÜÂÜÂܨLp”>¶FñÅ1Š‹ýÀNËä õ3öñšÿãÊÚöó«î¹“«Kü} Ÿ{¹Ow…]±·Ø«æ¯éûéca}ÛþìüeåÞØóÝs­¹°}íóÖ÷±µÆwu+>ƒ8íÆ¾O·òÚA dÖ½¿–îv±öèjru ”]TèDþ®ÿ“ñ8'Ã髞k¼—^ýKx“®þucš~z8 ÓÖÊ ¿õׯ^åžn7“F¿Ÿo¯ôøÿvìèþÄ{Ûc¯æEì¸Ìú&E Ø@lBlBlÂ?Üì}NÈ$¯­Ài2¾ëU/´`Xž#ÎáÿðåÛ9ßä|““ÊÌÌD üÃý¹ÃòwO|s ^hÆ¥Áoª´uqµÕ]Óì'^¯­ÿð…Z ± ± T&8J[Á­[è¨|ö”þ}ߥ…rélýŸŒ…]=–ûýQ¥Ð”G?ü`o×þÖªùÝʘΣòMÊœ>Ö÷±yçðr®1~ì™Uü €Óblþó¸«e–ÓÇ™u¯ Ïçp±×d?;už5ŠÜ+°Éúþ§ÛE¯¥¢žè¹¼î{ÛÇ{¤¬±0+`ÇbîÐ7)`Àž¬x²âÉ?|IÀÚâw o#N“¯ŽÕ=$dzò3o4¸ÑàFƒ©I¢þáëÙGÉ—B¦glPZ"wÑoón5_°Ö§sámÉÏP¬“Ô$8J[(¤üuŸÎöšþýeέ[×ï³²Vq¸oϼ-Š´.ÖÜùçü¾¶vÔw‡ ø."N‹Ñ­“ïø§éc̽WÐ=$dº½í×-rÉëZÞe«UúDÁ~ù¦ä‹t>î\¢Ü”Âùw.ì9¶ä_’Oó©U½’þ”½íã‰=RÖX˜°ýË<¡oRÀ€Íx–ñ,ãY&ù2ñ¸FÍuz8Ê—*;J¼×¥éú*$Ÿí 57ÔÜP“j„ ê!yìuY0£ÊŽ{Ÿ]û×ÐŽÕé‘|¶ÅÚH5€#ö±5-½ª³·8åX×>Cߤ£wï/ß[0ƒ>ïÖÇv©¶üU…hGü"h{Çô=ZÅÏ‹>`{Mޏ_gÏ»yb_”5æFlŸ2gè›0`3KK,-±´Dò%cÏΦ_ù?t”ØQÆ&óÝŸ{–|¶o云ëF.ª‚¨‡äuÒd~°w±gD¶¶÷ì\àÿ0ùl‹µ‘jGìc½[ ‹\`Ïaª#Ž.·ü»{ÓÇâÝúXÏ^uê>KdkÛ±Köå*ì¡XcÅ^{n¶ž(k,ÌØ~ú&E ØÌµþ×ú_ëŸ|ù*Urq‘4|¶ï-ï67äîœêää”x,ñXâ1ª;–x,ñ˜¨ä5so¹Ô+Ä•àÖVcP)¿ëEv&Ÿg±6RŒàˆ}láâ«ý®ÙÚj øeÑH©},RßÇŽŒˆžâÛ€àÖV£ûε ΤXcÿo¯ ÛÜWößl5Š}QÖX˜pÆ"ôµ„°—‰/_–,X>0ù‚råd'Ï a´}©7éëµ2ù ¯z²êɪ'”!’µ‘¼f7yÑk%ÁmêÇ+'©4,ù ‹õP¬Ô!8n[mÀœ–¿T"¾MýX¡`·"#/ÒÇ"õ}ló¹ã6—™Kp›úq¨«¼×§},Àûß{!}½V²ÿ–úQì…²Æ"3 N„¾Ö ll{Åí·WL¾¸ Zà׎Í_jÆzÞ©«[Z¾ïŸ¸âþ *ɉڰT9/˜YW'ÄMÍ8hAÇŽî…’Ï­X©@pô>¶ÔéFÕ;v$¾MÍødåÜ3écaÛ>vl³!þeqS3ÖZеvñyô±kì?íô¼SWg/.5£Ø eEf@œ>}ß0`cÏýžû=÷³´ÜÜœÚù^ð$ZÀw×W®à35ù¬öÝwtßÑÔR&ê$yý¬¯€å½‚ú>SÙ‹{·Qì²Æ"ó N;„¾©A ¤‰%9—ä\’3ùÒÓ}x¥â¥nÓ¾íø8_¥u:XZÐ/G]ŽºEÕ!e¢N,UÑã|ÚOu:è¾íØ}ø'Ÿ”º|>ÅHÕ€™úØÅB¾ÿä¢Ü·khKk?ÑÇ"íúØ1mæ÷+G û¶cÕ³Ÿ~S¬%},€ÿµWÐciì˽í(ö?Yc‘yÛ¡¯­iâ郧ž>°´ÅœúôuÀW´ƒÖ#ûWm\öRò™ìS¼Oñ>Å©7XOÔLòZÙ¿Û¸²—t­cN­}ð•¥UN¬Ô˜¯õóûæÕڗĺÖnmš½î6Ž>i×dž´èu¸D,®õcØš{yÞ¥`Ý^AÕÆe/±/gý(öô±Hÿ>vLÎ#sürôZkÝêzªøVúXïºWÐã³:Uد³4Š}NÖXdNÀ©÷¦Å›oZúÚ0æ.Ä]ˆ»gñ_ÀµlpÅ· mbÒ1!¼÷ÃÐן4*×Þõhòóœí9Ûsö›voÚ½iGuá[ŠvoÚ½i'j)y}Ò¨N×£ ᇄ¾&îM:ni9m†oK«™Xë¨.È<}¬gÜu¦Í îM:ÖL\sþ𑢫ª®«S„>éßÇVò¬×¥È€onþ]%qoÒ±}ñymÊ©ô±R·WP®½ëQ±gÅÞ]ÒQìm²Æ"3#¶•¤×ú¦0NÖZshÍ!KÍPtÃV?TßNË(Æq¾ÕO”ïii®®”¿RþJy* ©'jÉR¥óíu´|OB_1F7\ã_}»¥¹ë™³õ4öô¢_1–ÙЪp¯£ô±ÈØ>6tVÿ%¯úб×Ãï‡yv `»½‚ê'Ê÷dïNŒb?“5 †}"Ò˯‰¿&þÚ¥O—>]úXjŒbŸ· ­q937Žóžð ³4?»Ô]ê.•R‚m‰º²TuóžÛá–™£ßØç›¢k\¶4?bMëµ™¹õï6iצèÌý–wêtiØúXØOÛôý1ÕÜödæè·ßìŸ'zÝ 6{Á<Ã2óžØÃd`Ø'` ]Åïß¿·B¡ …*²Ô$um=<à`&jŸ‡õ¬WwN‹ ¡±–ædVÓYMg5¥~vDYªÀ9-†¬õˆM|U¯næ‰~º®{pÐÒœˆuL¬iÔÐÇ ~CÆë^g¢è·æw+c¢ÊÍþ,tÈZúXØgÛØ•Ý­ñø±gb«øgžè·OÍ­£¼ŠÓÇHû½‚ ¡±b_+óìã‰}KÖX )`Ø'` Üó»çwÏÏ)E{þl:Ïßä÷y]£w¶Ð~CùçqŸhi>øxàãÄðÄðÄp*i(<1<1\Ô›¥j2è³î_׈þ=´Ÿ¹£ß=.èáÿ:å5J¬cÐÇ&çÝiØ=L~¯ß‰«ÛFÿ^Ú§q‡ÏNÐÇÂþûØ áÝ~-~qÜîS¿ø¯4wôÛ¥øòØ *},€ôÝ+ðÏã>Qìq™{OìU²ÆÉÃ>æÖ[Cn I¹mšz¶æ‡Û'<{¿^3µŒw¼º6¨Ý6à^‰ì…K¯=,&,&,&a`ÂÀ„T Ò‡¨7Q{–*3àžÏÒÂʯ}áµÛš)ôMx|øE½SÏ~1¯bû”×%±vQ-@›òŸe›µkóżZ®I8üÂLÑo@Îo?ß^¨ygŸ¥ô±p¬>Öm¼¯Zàʈ"Q[+˦Š~³ýö¼JÎ?ý®t]úX·WP"{aEìw™iOìIŠýIÖXÀ`Ø'` ƒÝ ¸p'Àe½Ëz—õ–Z(ßÇÅúò¸œÿ³)ANÿ¯7ýÜÿjÊ-ãu„:BM8•p*á‚ ø«Ý©„S §Dþ+õ/ø·ÿUG~/çßq2ÈÉ÷±‡[!K¯T¬Qb½¢BÖ÷±ž—ùÍíZ‘Ùuwœtôè×»þ°• þM sô±o-ÿ¢ÂVG~‡4B}J—ôò|”?Š>€=í4ýÜÿª£ïà‰}H±'É ¤Œö‰° Oj=©õ¤VãöÛ7þÿžnvÿ W•¯z÷Úè(-ãÕf:ÍkîVöžëô”_Ý’KN,9‘˜˜˜@U £ÿn—˜˜ j2åºmîâë:ýj³_æÍs”Ð÷UïhßÐÀÙý?ðX™ò«ë’X£( @júØrÝ:îü fÇUg£}%ô­6eΪ_æý¼ÊÃ_úX˜¯õZÚ§HðÐvJqŸ¯%ô÷É©ùnÜzd}·²ô±ì{¯ ì=×ébOÌQvðÄ~£Ø{d¬G ûD ØS91abÂÄ g,œ±ÐÉ jÖ_é¿»g˺½ì­e¼Ù¬óÙàCÂüs»·æµDUªU•€}õiM% û,Æ}üÍf{v°·Ð7~wTóº½6ÔœíiÍkk‘X—¨€mûX}æMŒܸbYTs{ }«7žŸsÏŽÒ•·þ,†>™§ Ò-ºø…/këC+—°·Ð÷ëÙÇùÝhSufhÙhúX޹WàŸÛ}¼Ø+³·<±¯(öYcwC ûD Ø©Ã8\ÀÉjS¼ûUxywx×ÈÚë2ªe<Ò­µOÀʶ*ú•˜bÍ9·:ßê|«ó÷ŠÝ+v¯ï8쟨UQ·ÖTxÛG ”˜r¤ÛºÞ+3*ô½;|ÿþÚë¦xõ¯[á¥õë‰XxÇéÓǺ¿iûiÿº zìߟQ¡¯_³ñÍ×õv-X¿AúXÐÇV>ÙXqÙvíÇ‹^Y3*ô±ç€R9îã+C‚Jg¡`®½‚Š~%¦ˆ=´ŒÚÁû‡b/‘5H=`Ø'`À®ÅψŸ?crÁÉ'´¾!+îž[Þ‘óýƒ§xŽømMû¬÷lÛ&¾^ÞÛ=t|dŽ–ù«í4د¥»³Ó[ ß¾/|_âóÄç‰Ïy—á`ž'>O|.jøm+ÐàŽ!îΑ9V\©¶ïõòCn¡ãm÷þ¶fK¿À{óý‡]÷QÜÝåRÞ‘ÖŸ›XgĚÛ Ȩ>6O|áª.—Êíüþ°ëUêO²¥ŸmƒÞš‹W/8äVù—¯‚W\)u¬Q™Ž!ô± µF­ ]ËŸùùí w<¶Ž»~ú_þ?Ú6îýâÀ®•Ö6uÓßM+RtMž/écd¦½¿–îÎbŸMì¹ÙvOì Š}B±gÈ Ø0ì0à0®Ïº>ëú¬}{ôíÑ×éË™ïFžÄ.ϼ¼Kµ™=,¨¤Çê- \ô-µ?ªyÖ*t¹Å²j´‰-ÊT+·ç\Óþ/ÖÅ×/í3z|“€eå/7Yèþ¢Ø3§TXêºÔu©ëóÏ[ü"pÚŸ¢#…U:fÄòK•«_vۻð ÚzL ‹™pÈý?ŸvìrË¿{peúX -úXÏÞu>[oÖ¯R­W̨RöÛ.…–GUzìZëQÿóFëÏxŒì¿úƒŠŸµ/2¯Y9¹qû‘MÝÊWÙÔ²_Ñ{jù#O úX¬±–÷ Ü_{&öåÄد{wbOìé‰ý=±×'öýÄ k,>€aŸ€‡tí§k?]ûiÄñÇGw²cëk®¯¹¾æ3Ÿg>Ï|x×`n¢ÎEÍÛó§R¬b á]ÐÇÒÇô±ÀË ¤0ì0àðâ£ã£ã£÷ÌÜ3sÏ̆Nl81£šÅ!͆4ÒìD×]Otå}ÄgA|.2êS)Ö±>ˆµ‚÷@K ÐÇk,k,`+À°OÀ€ =;ùì䳓GŽ9zäèÌø™ñ3ãƒ.] ºh«6±ýöÚX?ný¸õã.ž½xöâÙÄW‰¯_1ó€E¯_%¾ŸñÙŸ#[}*Åg\|ÞÅg_¬L<€>–> ÖXÖXÈl€$ž{uîÕ¹WQå£ÊG•?Ðþ@ûí_´xÑâw82Œø ŠÏ£ølŠÏ)3},@ ¬±¬±€”€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I€I¤kù^ä{‘ï9@¦!rR`pxÀ`™.ÿ=2kdÖȬ‘Y"³Df1Œ#Áxc¼1Þ¯ŒWÆ+ã¥ñÒxi<7žÏx#Þˆ7žO§Æã‰ñĈ3âŒ8ã‘ñÈxd<4ûÆ}ã¾qϸgÜ3îw»ÆãŽqǸmÜ6n·Œ[Æ-ã†qøa\7®׫ÆUãªqŸb\1þ0þ0þ0.—ŒKÆã‚qÁ8oœ7ÎçŒsÆ9ã¬qÖ8kœ1ÎgŒÓÆiã´qÊ8eœ2N'ŒF¬kÄ¿¿¿ÇŒcÆ1ãˆqÄ8bÄ1FŒqÈ8d2¢h#Ú8h4QF”eD‘F¤¡º¡š¡š¡Š¡²!²aDÆ~c¿±ß7Âpc¯±×Økì6v»]Æ.c—±ÓØiì4v;ŒÆÏÆÏÆÏÆOÆOÆOÆ6c›±ÍøÑøÑøÑØbl1¶ßßß›ÍÆfc£±ÑØhl06ŒuÆ:c±ÖXk¬5ÖkŒ5Æjcµ±ÚXe¬2V+ŒÆ c¹±ÜXn,5–K%Æc‰±ÈXd,2 …Æc±À˜oÌ7æs¹Æ\cŽ1ǘcÌ2f³Œ™ÆLc¦1ݘnL7¦ÓŒiÆTcª1Õ˜lL6&“ŒIÆ$c‚1Á˜`Œ7ÆãqÆ8cœ1ÖkŒ5¾2¾2¾2ÆcŒ1Æ(c”1ÊiŒ4FÃáÆpãKãKãKc¨1Ôj 1†CŒAÆ c1Ðh 4ŒF£¿Ñßègô3ú}Œ>F#Ì3ÂŒ^F/£—ÑÓèiô4z=ŒFw£»ÑÝèjt5º]Œ.F£“ÑÉèd|f|f|ft0:ŒöF{£½ÑÎhg´3ÚmŒ6Fk£µÑÚhe´2Z-–FKãã㣹ÑÜhn45šM&F£‰ÑÈhd42 †ÆÇÆÇÆÇF}£¾Qß5BP£®Qרk„!FˆQÛ¨mÔ6‚`#بeÔ2j5šFM£†QèaF€QͨfT3ªUª†¿áoø~†ŸágT6*• ÃÇð1*•ŒJ†—áex†‡áaT4*òFy£¼QÎ(g”3Êe²F£ŒQÆp3Ü 7£”QÊ(e”4J%âFq£¸áj¸®FQ£¨QÔp1\ £°QØ(l2 …ŒF£€‘ßÈoä7òy¼F#‘Çp2œ '#·‘ÛÈmüÇøñã#ã#ã##§‘ÓÈiä0r9ŒŒŒŒìFv#»ñ¾ñ¾ñ¾ñžñžñž‘ÍÈfd3²YŒ,z¢ž¨'êoô7úýµþZ­¿Ô_ê/õú ý…¯Çëñú3ý™þL¢?ÑŸèõÇúcý‘þH¤?Ôêõúý~O¿§ßÓÿÒÿÒÿÒïèwô;úŸúŸúŸú-ý–~K¿©ßÔoê×õëúuýš~M¿¦_ѯèWôËúeý²~I¿¤_Ò/êõ‹úyý¼~^?§ŸÓÏégõ³úYýŒ~F?£ŸÖOë§õSú)ý”~R?©ŸÔcõX=V?®×ëÇôcú1ý¨~T?ªÇè1zŒ~X?¬Ö£õh=Z?¨ÔêQz”¥Gê‘z¤.hº¦kº¢+º¢Ëº¬Ëz„¡Gèûõýú~=\×Ãõ½ú^}¯¾[ß­ïÖwé»ô]úN}§¾Sß¡ïÐwè?ë?ë?ë?é?é?éÛômú6ýGýGýG}‹¾Eߢ¯¯¯oÖ7ë›õúF}£¾Aß oÐ×éëôuúZ}­¾V_£¯Ñ×è«õÕúj}¥¾R_©¯ÐWè+ôeú2}™¾T_ª/Õë‹õÅú"}‘¾HÿVÿVÿV_ /Ðèóõùú|}®>WŸ«ÏÑçèsôYú,}–>SŸ©ÏÔ§ëÓõéú4}š>MŸ¢Oѧè“õÉúd}¢>QŸ¨OÐ'èôoôoôoôqú8}œþµþµþµþ•þ•þ•>Z­ÖGé£ôQú}„>B®ׇëÃôaú0}¨>TªÖëƒõAú }>@ пппÐûëýõþz_½¯ÞWï£÷Ñûè½õÞzo½—ÞK葉®®÷Ð{è=ônz7½›ÞUïªwÕ;ëõÎz'½“ÞIï¨wÔ;êôz½ÞNo§·ÕÛêmõÖzk½µþ©þ©þ©ÞRo©·Ô[è-ôzs½¹Þ\o¦7Ó›éMô&z½±ÞXo¬7Ôê õz½^_¯¯××ëéõôzz¨ª‡êuô:z=DÑCô`=XÖƒô =H¯©×Ôkêz ¨èz€^]¯®W׫êUõªz½Š^E÷Óýt?ÝW÷Õ}uÝG÷ѽuoÝ[÷Ò½t/ÝS÷Ô=õŠzE½¢^A¯ WÐËéåôrzY½¬^V/£—ÑËènº›î¦—ÒKé¥ô’zI½¤^\/®×]uWÝU/ªÕ‹ê.º‹î¢Ö ë…õBz!½^P/¨Ôóëùõüz>=ŸžOÏ£çÑóèκ³î¬çÖsë¹õ\z.=—þ‘þ‘þ‘žSÏ©çÔsè9ôúúúzv=»ž]___OOOϦgÓ³éYô,z-QKÔµ7ÚíöZ{­½Ö^j/µ—Ú í…öB‹×âµxí™öL{¦=ÑžhO´ÇÚcí±öH{¤=Òjµ‡Ú}í¾v_»§ÝÓîiwµ»Ú]íŽvG»£ÝÖnk·µ[Ú-í–vC»¡ÝЮk×µëÚ5íšvM»¢]Ñ®h—µËÚeí’vI»¤]Ô.jµóÚyí¼vN;§ÓÎjgµ³ÚíŒvF;­ÖNk§´SÚ)í„vB;¡Åj±Z¬ö«ö«ö«vL;¦ÓŽhG´#ZŒ£Åh‡´CÚ!-Z‹Ö¢µÚ퀥EiQ¢)Ë€¦jª¦jЦhŠ&i’&iZ„¡íÓöiû´p-\ ×öh{´=Únm·¶[ûEûEûEÛ©íÔvj?k?k?kÛµíÚvm›¶MÛ¦mÕ¶j[µ-Úm‹öƒöƒöƒ¶YÛ¬mÖ6i›´MÚmƒ¶A[¯­×ÖkkµµÚZí;í;í;m¶F[£­ÒVi«´•ÚJm¥¶\[®-×–iË´eÚm‰¶D[¬-Ök µ…ÚBí[í[í[m¾6_›¯ÍÓæió´9ÚmŽ6[›­ÍÖfj3µ™Ú m†6C›¦MÓ¦iSµ©ÚTm²6Y›¬MÒ&i“´ Úm‚6^¯×Æiã´qÚXm¬6VûJûJûJ£ÑÆh£´QÚ(m¤6R© ׆kõ/µ/µ/µ¡ÚPm¨6D¢ Ñiƒ´AÚ@m 6PûBûBûBë¯õ×úk}µ¾Z_­ÖGë£õÖzk½µ^Z/­—ö¹ö¹ö¹ÖCë¡õкiÝ´nZW­«ÖUë¬uÖ:k´NZ'­£ÖQë¨uÐ:h´vZ;­ÖVk«µÕZk­µÖÚ§Ú§Ú§ZK­¥ÖRk¡µÐZh͵æZs­™ÖLk¦5ÑšhM´ÆZc­±ÖPk¨5Ôh ´Z}­¾V_«§ÕÓêiuµºZ]­ŽVG«£ÕÖjkµµ`-X Ö‚´ -H«©ÕÔjjZ ¨hZ€V]«®UתjUµªZ­ŠVEóÓü4?ÍWóÕ|5ÍGóѼ5oÍ[óÒ¼4/ÍSóÔ<µŠZE­¢VA« UÐÊiå´rZY­¬VV+£•ÑÊhn𛿦•ÒJi¥´’ZI­¤V\+®×\5WÍU+ªÕŠj.š‹æ¢Ö k…µBZ!­V@+ ÐòkùµüZ^-¯–WË£åÑòhN𓿤åÖrk¹µÿhÿÑþ£}¤}¤}¤}¨}¨}¨åÐrh9´kÿÖþ­eײkÙµiÿÒþ¥½§½§½§eÕ²jYµ,Z-‹š &¨ êõúF}¥¾R_©/Õ—êKõ¹ú\}®Æ«ñj¼úT}ª>UŸ¨OÔ'jœ§Æ©ÔGê#õú@} ÞWï«÷Õ¿Ô¿Ô¿Ô»ê]õ®ú§ú§ú§z[½­ÞVoª7Õ›ê õ†zC½¦^S¯©WÕ«êUõ²zY½¬þ¡þ¡þ¡^T/ªÕ êõ‚zN=§žSWWWϨgÔ3êoêoêoê)õ”zJ=©žTOª±j¬«W«ÇÕcê1õ˜zT=ªUcÔ5F=¬V«Ñj´­TªÕ(5JR#ÕH5RÕU]ÕÅ *ª¢*ª¬Êª¬F¨j„º_ݯîWÃÕp5\Ý«îU÷ª»ÕÝênu—ºKÝ¥îTwª;Õêu‡º]Ý®nWRRR·ª[Õ­êêêêêêê÷ê÷ê÷ê&u“ºIݨnT7ªëÕõêzuºN]§~§~§~§®QרkÔUê*u•ºR]©®T—«ËÕåê2u™ºL]¢.Q—¨‹ÕÅêbu¡ºP]¨~«~«~«ÎWç«óÕyêJ%L S”^J/¥—ÒSé©ôTz(=”Jw¥»Ò]éªtUº*]”.J¥“ÒIé¤|¦|¦|¦tP:(”öJ{¥½ÒVi«´UÚ(m”6ʧʧʧJ+¥•ÒJi¡´PZ(Í•æJs¥™ÒLi¦4Qš(M”ÆJc¥±ÒPi¨4T( ”J}¥¾R_©§ÔSê)u•ºJ]¥ŽRG©£ÔVj+µ•`%X Vj)µ”ZJM¥¦RS©¡ÔPj(J€ TSª)Õ”ªJU¥ªâ¯ø+þŠŸâ§ø)••ÊJeÅGñQ|”JJ%¥’â¥x)^Їâ¡x(•ŠJE¥¼R^)¯”UÊ*ewÅ]qWÜ7ÅM)­”VJ+%•’JI¥„RB)¡¸*®Š«RL)¦S\ÅE)¢QŠ(…”BJ!¥ RP)¨äWò+ù•|J>%Ÿ’GÉ£äQœgÅYÉ­äVr+¹”\J.å#å#å#%§’SÉ©äPr(9””””ìJv%»ò¾ò¾ò¾òžòžòž’UɪdU²(Y”,r‚œ 'Èoä7òù•üJ~%¿”_Ê/åçòsù¹/ÇËñòSù©üT~"?‘ŸÈqrœ'?’Éäòù|_¾/ß—ÿ’ÿ’ÿ’ïÊwå»òŸòŸòŸòmù¶|[¾)ß”oÊ7äò ùš|M¾&_•¯ÊWåËòeù²|I¾$_’/Êå‹òyù¼|^>'Ÿ“ÏÉgå³òYùŒ|F>#Ÿ–O˧åSò)ù”|B>!ŸcåX9VþUþUþU>&“ÉGä#ò9FŽ‘cäCò!ù-GËÑòù€|@Ž’£ä(±ù'þº/þ—I–dIÞ/ï—÷Ëûä}ò>y¯¼WÞ+ï‘÷È{ä]ò.y—ü‹ü‹ü‹¼CÞ!ï–––’’’·ÉÛämòòòòy‹¼Eþ^þ^þ^Þ,o–7ËåòFyƒ¼AÞ ¯“×Éëäïäïäïä5òy¼J^%¯’WÊ+å•òry¹¼\^&/“—ÉKä%òy±¼X^,/”Ê åoåoåoåùò|y¾R)L “¤^R/©—ÔSê)õ”zH=¤Rw©»Ô]ê*u•ºJ]¤.R©“ÔIê$}&}&}&u:H¤vR;©ÔVj+µ•ZK­¥ÖÒ§Ò§Ò§RK©¥ÔRj!µZHÍ¥æRs©™ÔLj&5‘šHM¤ÆRc©±ÔPj(5”>–>–>–êKõ¥úR¨*…Ju¥ºR])D ‘B¤ÚRm©¶$IAR-©–TK ”¥@©†TCª!U—ªKÕ¥jR5©šTEª"U‘ü$?ÉOò•|%_ÉGò‘|$oÉ[ò–¼$/ÉKò”<%O©¢TQª(U*H¤rR9©œTV*+••ÊHe¤2Ri©´TZ*%•’JI%¤R ©¸T\*.“ŠIŤ¢RQ©¨TD*"‘ K…¥ÂRA© TP*  Hù¤|R>)”GÊ#9KÎ’³”[Ê-å–rI¹¤\ÒGÒGÒGRN)§”SÊ!årHHHHÙ¥ìRvé}é}é}é=é=é=)›”MÊ&e‘²HY""""ÞD¼‰xñ*âUÄ«ˆ—/#^F">">âiÄÓˆ§O"žD<‰ˆ‹ˆ‹ˆ‹xñ(âQăˆ"îEÜ‹¸ñWÄ_E܉¸q'âψ?#þŒ¸q+âVÄ͈›7#®G\¸q-âZĵˆ+W"®D\ޏq9âRÄ¥ˆK".D\ˆ8q>â|Äï¿Güq6âlÄÙˆß"~‹ø-âtÄéˆÓ'#NFœŒ8q"âDÄñˆãÇ#~ø5â׈£G#ŽFÄDÄDÄDŽ8q8":":":â`ÄÁˆƒQQQ‘‘‘bÛ^l׉¶8]_0¤{ÈC €À€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€ƒqJQf8sÇÌð^gžwì00CLL °„˜€ƒ!&&XBL ÀÁÃQÔÕR:˜ -p0ÀÀÀ †XBL ÀÁ÷\“ÒÁ{Í9ƒz23``†˜÷šÔ0K€ €8`Þk`PÃ,!&à`€y¯ €A °„˜€ƒ!æ½&5 À``Àf¢G§tXú©«§®žºzjbÄĈ‰ {6ìÙ°§g Ïž5 l,°±ÀÆ ½+ô®Ð»Îñ:Çëñ͈oF|sÔû¨÷QïÌ<Ïo¨$K(–PL}¢>QŸôý´ï§}? *T4¨¨û÷ îÄ<{4ôhèÑPÌó˜Ð1¡cB :”˜+1Wb®Œ:óô?%~Jü”m¥·•ÞVz¨QúDé~ºŸî§wù°Ë‡]>œ÷ç¼?çý)ê9cg,özìõØëâóü&øMð›ò#Ê(?"ÿ®ü»òï*™¥d–’YªYýËê_Ì10ÇÀJ^%¯’7ó¼ËoKÌçâÙ‹g/ž-Þëmk´­ÑVTEá‘…Gù÷Ü>*ù¨ä#ïDïDïÄVj+µ•*>Mb†_¾|˜yª×¬õØ?``Àf¬ßèù8òqdÏ5=×ô\ãççç” ésÎé?K©„§Oœ>qºÊú*뫬OÍ ‹Ì^{Z¼kOv=Ùõdר‚c Ž-Xܵ¸kq×ÔÌ•sVç¬ÎYÓ¿>ä~ûAî¶ÚNh;áÝÎ<ä?BþpÄÏ”åJÌ•˜KĨµï×¾_û¾“ˆØUüúEØ‹°a©?Yû©^'›âÏS 5€ €›±fCÿ\ÇsÏuWž¥>$WÝ¥&00k¼ùëÍ_oþ:éü¤Fžky®å¹f?Ñ ­çøãã?×G:¥BS M-45­ëó쨳£ÎŽ×p§þœ]=]=]=ë3e+®>ºúèjjBtë…îݺ#5sboÕK Ø``ÀfRÞИåa–‡Y*«T¬R1ÛFââ­•·VÞZÙ¶çœþ³”úGˆÜ¹7r¯ø¢×´ˆ…­\´rÑÊŒzí¶zqMsÒ°3íˆ/Ù~·ŠJù‘ÿªùWÍ¿j¦ÅgÊ7Ö7Ö76-ÎÙ>×.q­øZl§tÔøãÆ7þømgÆ>«—°ÀÀ€Í¤¼¡/ü¿7ÏÙâùˆç#DòÀÉ'üXûÇÚ?ÖnæÒÌ¥™Kò/UNNü~kÎÓž«·sá>R~dK?ÅŸ§@j6ó¶_),BGkùuàëÀ×Öªû¨î)?þþfû›ío–úsNÿY²í<¯Y²"$íæyÖ [6lIÏמúDZt%º0uÜÔqSǽã[›+1Wb®¤ÿ!¹1¡cBÇ„Úö½®Ø®b»ŠíDù¶3ÙåU—W]^Yzäò#Ê(?"ý+<=É¥äRr)Kg+îVþ8òqäãÈÔœÿüsóÏÍ?géYÄ}|­yǪ^G¬À€ €›±þ ÝÔ<Ë7o|Ûy|að…Á%®}¿öýÚ÷-ýl±ÀbÅí'šJù•&½>;ck2c?SöOÜ•<õ3ãXÕK=…˜°™”7ú·¿¿ýýíïÛvÓãŠ+6®°ôŒŸþüéÏŸþœÙàí϶?Ûþ,=ç¹®VW««9J<½ÛônÓ»9Y-¼xÿðþñSâ§ÄO±·ÏÔå¸Ëq—ãì¡&3ö3eŸÄÕÕâªÜRWJ])u%õ3ãXÕK=…˜°™”7úÅÝFmûŒ±×c¯Ç^·ôŒÕ¿¬þeõ/SsÎé?KŽ8Ï>|ø£¸‚ÍÒ3mT´QÑF©9çôŸ%Gœç|‘ù"óE¦Ïk·íã$ ¶³:guÎj« ÍO÷ÓýtñkqÕfFUKú?‹ã~Ov=Ùõd—¸wx‰Ü%r—Èm«z(4µÐÔBSm;3ö_½Ž^€ã"&l&ýƒIñ˜© & €S?ÏÅ‹ LŸ×žvïÚéͧ7ŸÞ,Á7Ö7Ö7ÖVqZÉ,%³”ÌbÏa*°úD}¢>qßà¾Á}CjÞëÂ# ,<²f@Í€š=×ô\ÓsͶÒÛJo+ýtÃÓ O7¤ÝÌØgõ:n=ŽŽ˜°™ôÿjâ¿jþU󯚖ž±ô‰Ò'JŸHÍ9Ûx‚r%æJÌåˆ_ò<{4ôhèÑ0õgn«J³m=Ï}>÷ùÜçMª7©Þ¤ºˆ÷ÒóË~ €Óšø’ç"}Šô)ÒÇš÷®Ü”rSÊMéT¾SùNå矛nþ9ÉGò‘|®žºzêê©”_izÎŒ=T¯#Ö`ÀÀ€Í¤¼Ñ®ã¹Žç:ÚöÅ+Sþ"ÓÔœ³mÏV|™jZÀé?Ï 6Hý™ÛªÒÒ³ÂÛ m7´ÝP룵ü»òïÊ¿ËVïuú|r3öÑÒŽ¸®½ì¢²‹ÊZüzsç8ç8ç¸.vù°Ë‡§öœÚsjãÎLúW¯cÕ`&ÀÀ€Í¤¼Ñ¿ýÙögÛŸÙö·VÞZykeKÏØ`Xƒa †¥æœm{¶—J\*q©DZÀé?ÏZwhÝ¡uêÏÜV•–þ•?%~JüñìÞ‰Þ‰Þÿã ‡Ï>wø\kΖ8í¬ß·~ßú})G¿áýÃû‡÷·Õ™Ûç̤]õ:V=fBL ØLÊýã>÷Á¸l»é?ªû¨î£º[zƤÿ÷ÝÎÙ¶ó³ýýíïo?­àq/ƽ÷¶ç?rðÈÁ#[zÆY~³üfù¥gœiϑҋ°a/ÂR>Ã*뫬¯²ž8cµ¸ÔâR‹K–ÎsòªÉ«&¯JÏ񾀦ÕëXõ˜ 00`3)oôûïôßé¿Óf›þ¹s%æwŸµôŒÛJo+½­tjàׯ_Új~_|að…´€ß6ž±fž+¶«Ø®b;KÏ(—’KÉ¥ì?×FO÷χø‚_[½×1McšÆ4µt†.í]Ú»´O»WjÛOnÆ>ZÚñõõµtžÇ³Ïv<›­ÎùrÜå¸Ëq©™G¬^ǪÀL€ €›±æ.’G½zõNýsI>’äcéYò\Ës-ϵÛ#o¼=25ð™ig¦™–ú³}²ëÉ®'»\=]=]=Ó:Ž•ª{ÊüùöÏ·¾Ý¶’æ“+1Wb®ò#Ê(?ÂÒÏ–]TvQÙEïû½lÿ²ýËöÖçQßG}õ}zÞ59=Ÿ%åG[þIz–ÎslÁ±Ç´tžâÓj4ßvöuÚ×i_§ ½+ô®ÐÛúO«øÊz3U¯5õ ®æOOÀ¶€ €›qz'ŸÜûäÞ'÷v/ß½|÷r<ñ|Äó8ýáô‡“‰zô è•òãˆ;z^¬t±ÒÅJÖ‡ÛJo+½­´5çéf¸n†øõ¡~‡úê'®ð{ºá醧Äó®‰_¿&ÞÒ5ë÷­ß·~_ZÀÕ&W›\mròÿÞò×–¿¶üuÏÌ=3÷ÌL:Ï—J\*q©Ä*·Un«Ü,ýlRÅ]‹»wý³ÏŸ}þì“NÁ­MG¼G)?‚sVç¬ÎYů7®Ø¸bãŠóMÎ79ßäqäãÈÇ‘/Â^„½»w9îr\äÞȽ‘{'¯š¼jò*÷ îÜ7¤üÈ]ÿêúW׿ÒÆÒóYœìŒ¥ó<×ñ\ÇsÿG%Ä9Ç9lj_«ÿRÿ¥þK¼ï".½ïzßõ¾«ø²è…?.üqáÁo‚ß¿Iy²ôÛÌo3¿Íü”¯‹u¬êRþ‡/ö Û6lÛÃ,³<Ì"ÎíÆ¦›nlâÏS 5€ €›I9<1CZ<â:×Ñ;£wF¿ud•+1Wb®úßÖÿ¶þ·iA‰{[3K©Ÿgè¦Å«(4µÐÔBS“ÞÔ¶’>#¢µæ9›çlž3=cHñ…Ãr?Èý wúivz>‹£À‚5_)ŸEúéS¤Ïö÷·¿¿ýý”¿ZÙšów¬ê¬ùç;ܰ-``Àf¬ÙП´uÒÖI[mKYxdá‘?ßüùæÏ7Ssæwßm|·±m#qßߩ㦎›:NÄÌÖÏRêçYÿMÿMÿÍV¯ÅÕÓÕÓÕSò‘|$Ÿ´®ôyœg‹ž-z¶(}³Vj+µ•úè꣫®fÔ5Óéù,Ž¿ñxãñÆ£sáÎ…;¶íóVY_e}•õ§7ŸÞ|z³ø/[šoi¾¥¹õ`ies”êÆ„Ž J ¤'``Àf¬ßÐ_¦êË;—w®w‹%Z\jq©Å%ñE¦¶ ÄW¤&½ªøÝÎÍ;Ñ;Ñ;QÜ)3ù³¸´Oé°í<_‹ºu-*5ñOëµ­×¶^{sñÍÅ7§~ží'þ[®Ä\‰W GC† m› *TT\•žôœ3jÆÒóY+N^ âŸ;¼Ûs•>QúDé+BV„¬yø:ðuàC®Ä\‰¹š¿nþºùëÔÀŽR½Bü”ø)ñS€€ôDL ØÌÛnè‹ûhŠÿûùöÏ·¾½ú—Õ¿¬þe©+¥®”º’Wþ]ùw‰`£Þºzëê­_¤üÛÒß–þ¶4­C‚¤‘§¸7§8ÓŠs«Ø®b»ŠíBþù#ä/Ê~Qö‹²âžšIƒ{{w_|að…Ú÷k߯}¿ì¢²‹Ê.J>ÏãÏ??þüï}ïû{ßLÆ$y×’^û(þ™BÉG%•|$îfZ`c6Š{B‹«<»|ØåÃ.Îý÷ÜÏý÷™ig¦™F”帞ìz²ëÉ®¤w½õyàóÀç¸ûµ¨ñÙ©U±VÅZÅg?¼xÿðþâ¾Ú)¿ïIˆZKf)™¥d–¹Kä.‘;tGèŽÐýêõ«×¯ÞÙQgGeŽêMºÚ<ñã‰O¬Ð»Bï ½Åù$]ÄùP‡@j6“Ö×Úók4Ó»F%§umÃL5`ÿŸAû¬^>G@Ú!&l† c6C ±€ €›!ÈXÀÀ€Íd,``Àf€200`3À‹˜°`€ŒEL Ø 0@Æ"&l† c63îEJóÖ€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 à¿QV2è8˜AGt‡2è8œîGLG2è8šADZ :~Í ãx±tœÈ ãd§Òý8AÇotœÉ ãl¿gÐq.ƒŽót\È ãb—2èø#ƒŽËé~\É ãj×2踞AÇ :nfÐq+ƒŽÛtü™AÇ :îfÐñW÷Òý¸ŸAǃ :fÐñ(ƒŽ¸ :gÐñ$ƒŽ§t<Ë #>ƒŽçt¼È ãe¯ÒýxAÇ› :2èH̘#2KY3èÈ–AÇ{iu€i€I˜6xƒd¦ €ï6»Ûìn3#2ÍŽ¨ :¸'1w#ænÄö7âÌsâÌsâÌsïáStdž{gž»gžû gž; saóÝ]8£î1œyî.Ì}…¹£0÷æ.ÂÜE8£î"œyî̃¹g0w æ>ÁÜ'8£îÌ‚¹7°ÝßønŸ»}îö1íÀ€´@ &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A &A ¼µïW¿úûÕƒÛ n3¸øõå'—Ÿ\~ÂÌ coÍ)™È÷"ß‹|™AÆ"Þ0ì0ðÖ€aŸ€€·F ûD ¼5`Ø'`à­Ã>oö‰xkÀ°OÀÀ[#†}"Þ0ì0ðÖ€aŸ€€·F ûD ¼5`Ø'`à­Ã>oö‰xkÀ°OÀÀ[#†}"Þ0ì0ðÖ€aŸ€€·F ûD ¼5`Ø'`à­Ã>oö‰xkÀ°OÀ@âÝ!w‡ÜÞ&¼Mx›!›†l²©ôüÒóKÏwJ5ñ8â1Åã‹çbΑ€éÜÊq+Ç­‹î.º»ènÑ©E§ê”îÄóŠsçÃû‚Ô#€ÙM,šXôàƒ . Íš54«“]ç&ÎSœ3oÞ0ÌèAâƒÄ‘K"—D.q»àvÁí»…²UrºúÚ0¸¸ß·îÕ–¨Ó¶’玦GûíU¾ý¤_Õ½ÆÓ–¹ªí¿ÿ]üñûÅϾÛóŠsç/^ o)¬A S¹\òrÉË%C… =f}àÚ8Ì}Z±ÛÞkxÅW½u¢Kïà㉉aaõêÙj)_<×[\|,ôXè1ñºx‘2`8¼ÏÏÏÅÛo[¼ÍšHµxlþûyWoíÝp³ïÊĽaMëU±mÜkÕ¸7¬i½*âÄùXsæâ5Š×ËûŽä€àÀî¶½ÛönÛZCk ­5ô|™s¸ë°BGb>ù4& sâÖ°Fõü2 ôµ4n kTÏOœ›8Ï”_‹x½âµSHŠ)ö÷Øßc·æªYÅý“:UWÛQÜkÅ(ÎÙšW'æz€@ #­”VJ+SŽE¿nW½T¹W/r÷©«Ì€vgñ¶ÅÛo³tUkf¸×ï»ÝØÒŒ‰ù´Ï÷z÷¶ÝÛvÿý^OÞ~ðñƒù¼`Ø‘Ë%/—¼\ÒRiÔiSmq¯¥QÌ¥Ùsk?ïõ›oZ¼iaél ƒß 0ìÃ_‰%þz,ôXè±äqà×íª—*÷Šˆ×šQÌUò9s+æÙÞð¤×þ¦Œ0ØzÀ° ‘K"—D.±ÆßêùyÝÁ„»ÖŒb®,ͤ˜g{xÇE +Â]'«§Œ­hbÑÄ¢nÜ.¸]Hø)îŸÔ©ºšX÷mG1oÉçS̳˜sû)Â`[!@;¸ðàƒ “Ç{UÂ]‡:’Ö¼^UÝ·#š׫*æ0ùÜŠ9·Ïz N `d°Ð¬¡YC³&ôb>ù4& 3QnjF1‡ÿp?ଡYC³Úm¿-`d˜[9n帕#y€W<6ÿý¼«¿ó­W†7Uãa¾õʈùL>Ïbþ¥Zƒ­A € ³è‹î&í¶ön¸Ùw%ñ­­F1ŸÉçYÌ¿#Va°%ÀÈ&>,:µèÔ¢S“uqÛ{ ­S7cCÓ×½³…öË{Òy¸Ó§wrsqçÇÁÓì!ó™ü Åü‹÷ÂqK‰08)`d€»Cî¹;$y,×8Ì}Z±öš^¨Õ±P­ÊN©`?°ÅÜ&?Oñ^˜£®ƒ €ÂÛ„· o“<ŠÛö^Ã+¾ª=Ä¥{¿j]Å5é¹-8\ÛÕóäâÙ!“¼¶Z3>Ùõ¹pû €ÅÜ&Ÿsñ^˜¯Æ2gL € 0dÓMC6%ßnäëÜ=ØÇâR÷гªØ®Hõâ׎{'`1·Éç\¼æ®·ÌÿíÝ_l•åÀñË1q±2- ´t$£‚´´ËÐy8ÕCAMë²Éœàé ; ¸IDAT@èÂÌl1Y4Ûâân1Ù*³0æ…çè6º¨¸ÐÉ[cÍn̘t.ÈÅqÖ¿û#ÊÙÅss–×6=ÂÚç¼çóy’BÎiŸ÷÷>wß¼=Œê®ê®ê®dr{÷àúùÙM1äÒ¯M¬ÿÓìÃaW«^œóúŒ9¥€Ãl“3÷¢|Î^ºc° À¨:sì̱3Ç’­ñÂé §>O.]ÖZ[=íî°·{îhÚ3§²tÓoák˜srþá¾”ÛiL_ €Uƒ™ÁÌ`&Õ:f4l®mŽ'”îmÇ×2Íó.ûÁWœûÎ5ïͺþòéU˦üxòŸ¯œ{yK募_û‰§¯øËO>œýùümù‹Ú?ÚõSÂaÎÉù‡ûRÖ'31X`TÜwrßÉ}ɶãÙLÛ¼º雽kþ’ùváÞ*:ùþI$^ÿìʪþ¿ÿî¶—¯>gsNî<Üç3(Ý,0ªú×÷¯ï_ŸŒgûV,¿·áP ‰ô¹ñ­ßûÔɶw^uk͵?ÿÌÒEõŸïùÕËËonxdCË‚u5/OWñ•Šÿyn8ΧÜ“Wî‹ó™TZ1xÌp8¼y冦(pÏWo˜ÕxsØÕ‚i\úêã7~v ¾¦ðOC'?õ›Ûn¸·ñûï“# ÀaÎÎÛè8Ð} û@· @Ù9òöM5ïóÏ&‡ûÍÁ_¸nnÇÌëc»–0gçmt¼³÷½ïì€(;ñ<|.¯¿˜²ìºú³áŠæç«nºô>O—³2z¸w‚eY–eY–eY–eY–eY–eY–UŽë‘ÉL~dr2•ÅóÀçëûƒ+:ùþI…ÇÿÀNæPëà=ï9xOûøöñíãGž~ÃûËè;€(O'÷Üwr_2˜íx6Ó6¯.†DúÛS«>Û¼ø™·V6dà/¾põµ#ÿì¿ÿÜ / W4wéeWÞ[sNÎßÉ,Âí{ØóÀž‘GßðþѾ…`FÕ`f03˜IƳŽ ›k›cH¤Ÿ^tÅK—- »ºþþÙ•Uý#ÿì]¹†ûjç†Ï®9'³d£o!€QuæØ™cgŽ%CZã…ÓN}4†D:TêþSÏ|håÖ¦þIoT©øFxÿ‘£«Þm~<¶?Ræ,鈾…`Æ@uWuWuW2­½{pýü즱M¤¯¿´fN¦òã[§>ÉíaW!ë®ûÉüåÕ»~Ýó¹Û.9¾â–c‹nÛ»`éæúnhY°®æåÂô»ö—óÞ¬níÙß0ÛäÌý(Ÿ³—¾è[H` tîîÜݹ;™ÙNMY}Ç5WÅópݧ.ûGåî‘gÂ/ÿõÊS³~÷ﯯûÑ’‡c{ö7Ì6¹çp/Ò}ÞÒ} ÀŒžÖžÖžÖdrëž°ôoõÏÄMî¶ëÚ¯üûÒu³ÿ0mqõó—n˜òÝ)½“ž›tÅœï~lî%ÛV¬î[3_yêª75]Yø©Øp˜mræá^¤ïŒ•Oô-$0r¹Î\g2¿-o¯}pÚ±¥Ó‘dÝ8£oák˜mræá^¤ã\•gô-$0^Ë¿–­jSÕ¦ª÷ùVÚ7~¹fcfIÌ1µ´^Ã<“só÷¢t’è[H`ÌlÍmÍmÍ%ãÜÞõK÷ÔïnÏ×k˜grÎaþ¥xrDß¡ÀŒ™ÓOO<=1êfô_òêÅ»òw¶×·Ì–oÏéõÎöú–ÙažÉ9‡ù—Êi}GB`ŒeÇeÇeÇ%ÓÝñ•·_´ZÄ=—×0ÃälÃÌã?¢o±`ÆØÑ-G·Ý’Ìx=ÓïžúÇü“í7¶4I¹E¿>Ù~cKS˜ar¶aæqžÑ÷\ÀŒµª|U¾ªæD͉šɰw¸ve¦i— [ìk˜[ržaÎaæñÑ÷|€ˆBïöÞí½Û‡J}ÿ:½ní’Yw$¯aVCM2Ì9†;.úþ?ÀÄá•ü+ùW²}Ù¾l_2û}óÖOΚsFÜÉk˜Õû|ïo_¶/Ûæà ?Ð} û@·è{~ ÀDd`æÀÌ™C…À#™UÇ›’x‡z ójza¶ñÜë÷V½·ê½U¢ïù%mÝÛº· ùlè©ËW¯½¦^î-| 3jbažqÞëÂç€Eßs'³ugëÎÖ-Þ¸xãâÉœ9õæ‹k&½úÆÏÖtd2Òo˜C˜IrVa†ažÎU9€ˆT®-×–kê©ÖÆ{§ß6õé~gíKKf•gú ׿0Ԕ ¥ò!µþú_èaø \nO‡ë>ý†¹9?åF <µó©Oí*v†?€\ß ®q¨?ø„Y93åI dì¿üþñÃ:’Yu¼ù¡ô¥ßp]Ã_{˜sRÎ`JÌðOß¼õ“³æœùÏG×ýyÉþÒ¾aÿáZ†¿^OýÀ”¤á¿¸ÐáÚ•™¦]¥•~ÞGru¾ë—B0%,×–k˵-Þ¸xãâÃ‡ÒÆžéwOýãñ•·_´:¿·}YKCDÑwoû²–†°·°Ïá¯%\o¸vg€B0%ïlÝÙº³uÛº·uoëÉS³3ú/yõâ]{×/ÝS¿3¨}EKãDßCí+ZÃÂ~F²ópázÝw’`Re`æÀ̙پl_¶¯bÄ–·×>8í‰î KÿVÿÌéç¿´þšçÎoî ?3üüð»F¾·p-áºÜ_†'FƒùÁü`ïöÞí½ÛkNÔœ¨9Qñ4^8}áÔG;f4l®mÞñl¦m^ݾËïm8txóÊ M‡Ž¼}ÓEÍûÿÃÿ‡÷„÷‡Ï~°ßöö®Å-e$`Ò®*_•¯:ºåè–£[²ã²ã²ã*¢öööìÖQ,€²szâ鉧'nÍmÍmÍUmªÚTµiôsoø½aa?î çN€|®3×™ëìiíiíiíÜݹ»swuWuWu×¹‡ÞðsÂÏ ??ü.3çÿA€¢%Coï„Þ ½L†±%@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@Ñ`â$@ÑÛõØ®Çvu´v´v´†¼5ðÖÀ[&ÃØ€RBH  %`€”€RBH  %`€”€RBH  %`€”€RBH  %`€”€RBH  %`€”€RBH  %`€”€RBH  %`€”€RBH  %`€”€RBH  %`€”€RBH  %`€”€Râ¿î¯4fw<ã%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/publishReplay.png000066400000000000000000001410331431412030200262160ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTgÿÿMO̽+6DQ@° X°Ånì½Kì±Åhì½—Ø{‰Fcì…é¢X#öØbo‰½`…ßW>çÇýÝ,÷ê.°;<{ΜœDf¯}Ï•·×‹™I0…40`0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `0 `ñç^Ÿ{}îu”W”W”×¾ûZìkñ²ÁË/pd€”"ÎAq>ŠsSœ§ècúX`ŽeŽ$Ž0¡ç'žŸx~âð‘ÃG™;)vRl…‹.V¸˜ÁAZìk±¯Å¾•ÃW_9üâÙ‹g/žÿ:žv°îuüëø×â|çŽ8uVŠs\œïâÜó@K ÐÇs,s,¤6À€Ë‹ŽŽÞ1iǤ“jŽª9ªæ¨ )¤o½¾õúÖ;Þþxûãíù^q.ˆó"¥ÎJ1'ˆùAÌ|/úXúX€>˜c™cG±<Ëö~¸÷ýrd²€—tí×k¿^ûuà±ÇËàÄV†® ]úÜÿ¹ÿs¾5˜›¨sQóÎ|VŠyCÌ!|kúXúX€>˜c™c{Ã9.ãúä듯OïÞ-¼Ûû5syÓe¹‘)¾Ýs_¿‚M§ô¯PÀ{Éú5.ÜU?m© ºÜ`~™žÚ¨…ËÝq®îÄ —+b«ò2¢Nð|¯Ëuf{¾ÌûÜžVržû<÷yî/¼hð‚§²Á$D=‹Ú¶çì¨3»bɼÏGÔ‰èãuyEìÈþCvœ›Ù,è¥6jþí2EuyÁ¥2=÷D͉(ua}ñ# Néßç™÷’vÏëµ*Ø4oº\e2Å¿ßûŠùDÌ-|›gîc3MËþ0W™|Ë+®×ªhx+¥Ï3Ÿ‡ß†ŒéŸg`Èœˆ’ý¾¸àRÉ2CvÍ¿íײÿ…™Í¼ÇFyÀó?ÛFôÉ}+¨cÅ’ô±@Rô±>]*×Èy¶Úäž¾ƒ›,œXªÈ¬v9D“·­ˆñ®þM­•g¼µ]òYñÖ-rM¯WT®ÝbP]¯RkvÏs/[¥\fÊO €9ÖúZç˼ÏźœX£ëubíN¬ã‰5=±¾'ÖúĺŸXdŽ’0œ0àÔb'ÆNŒ8&û˜ìc²ÛÞ¨åó̺1ó AÇú <½´EÚ{ññÕª9jûfAϪ#ö~Þ0k™Ý½û6ôÌø®­ä®Ý»vïÚÿ"þEü ¾e¸Úßäâ_Ä¿5ü®•ß»O«0ÏŒ{?_x¥Ìî7 xTèPµjŽÚž^º¾{ȽAý¯û Ìç™ûRæA¶MÌ3bÎáK¤T›)6géÜ—¼ò´ý¸ÿõRÕÇ]ß½|ùeËrÔ6tî’™ úeĈ3gJ•rÔöÛ}ÛÂK,¯ëñ}-{Xž¥™¾£šÖ zfëlbÍͱëxbmP¬Š5CæXÀ±€áœ€'u0ÛÁl³ÙÞõ é^ìÕ_Úﭴ±m¢íÛÚø/jö¨x`þ±¶Œ¹ÑùFç¿—÷^Þ{yùÆáüD­Šºµ¥Â›=ª‘-ÿØÃVt ^䨠×öí_öì©´b¬o*Å^Ù>Ÿˆù‡o<}¬çÛf{T ®9Û{ÏÇÆ½¶o먿¢‹{öê5²ÑÇ‚>¶ä‰ÚJîÕ×~¹è›Ö±A¯íÛ;ö)%u¥o…Bièc˜k­ x`þ±b -¥VðÄú¡XKdŽìG çD 8‘¸Qq£âFMœ=qöÄÙ¶4^«B«/òß»½SÃ*Sªe´¶½Y¯íÙŠûF¥÷aËg‰*U:ª45ç$êÓ–JîÑú爛õvl®80¥B_kÛØíQõ«t^:*Ú¯-ŸEÌEb^¢Žíc½÷u>*:dõÂùQõS*ôµ¶-[{Fº› •¨Ý¤õ!úX¤ž>¶BßÑù.|WIïW2J…¾Ö¶?L9ö(ðFÓÒ“ª‰¦àškAé=Gˆµ2g[ÁëŠb‘9x?ÀpNÀ€SxZþiù§åk·¨Ý¢v‹ÄÛ¬)=*¸{/zÝ¥ó–ª!ÎÖ2ZÛ^­×¦e…éõ=ŠÜsŸø§ûéøOÇ:GU …ÅÅÇÅljšL¼në{„¸O¸Zoë´ Ó-ôµ¶}Ý%: jÈ”}x/JüÓ‰yIÌQÀž>¶h‡V»û<mµølt€³…¾Ö¶eÆN]¼uZžoJ=  …ùúXߥU»æªØ¯¹’Ïÿg }­m‡}ò£ !µ› ªîQ„>€s¯¹ç>A¬‰¹Ê žXoḵ€í€áœ€v7ønðÝàÜ+s¯Ì½ÒZSð$oÞ—³¶[!ƒ«´ŒÖ¶;úÔý&èjâMä@u :P;w2î$‚øÛÜɸ“q'E&^«;úÌü4誫„¾Ö¶—³n>Q!CÀoÞÖ>©˜£Ä|E…lïc³½(|ÚÛ£L®)U6Ÿp•Ð×ÚÖ¯zÿE3?¥…9úض·|[lƒ«„¾Ö¶}kHUý ðõy”5Š>€3­Ôý&誫¯à‰uH±&É $ŽΉH1·úÞê{«oâ-㸳¡_o÷$âãjŸ»zã˜p{×·}JÍ‚ïåÿ$§bí³GŠ8q(®W\¯¸^T ’é¯s½âzÅõµg­2ƒïùÏË©Üõݽ«R3W~nãž|Yíóqg¿^ü\¿%æ.ªècÿÿE‘zÍ›~;½üKã¾tõè7á68ݬovïÊQ¿XFÿyô±p­>ÖcD€šíÊÀ\QJÊ®ýþ×öƒÓ/J¥«ñK¿e…ªÐÇH¹µ‚üŸäTÄz—™VðÄš¤XŸdެ!†s"RÀ½À{÷ÿÇo Þ©;=è™ZFËí›r]>¨Ú½oï Lž£¬‡^Oz=éõ$~Wü®ø]T’Юø]ñ»D½Y}fOïÖÇ=G½)ýGÕîfŠ~-·;îÌ z“ø%æ1 èc-ùµécf¸™B_Ëmè¨%Í¢ÿ(ä_»eëãô±pþ>¶Â€¿ç»8|ûÉ­A‹LýZlÛå[SL¥¼kA™ÎÓÇÖýøû2;ROèk¹í>å·Q¾7èc$ÍZAÅž>©yO¬a2Ç0œ0L–Xz`ékQtÍFëÊnJÍcÂíð€²Ç½:Y;VW¼®x]ñ¢¢`?QKÖ*mx@ç#^Rsô›p]siPÙMÖŽ•˜ß¨(H}lÀèa§–¥æè7á¶ðªF9;¡EÊö±U'÷èYàzjŽ~n;?ü¹¿OKúXŽ[+({Ü«kwb+Ö3™c`8'` É]x|áñ…ÇÖš¡õ k\ (L˘p·«Ëêo¾®U´…û¿,ŸùLñ™â3åmó·Íß6§ºð~DýˆZ²¬±¯kUÎå~$n×ÁÃUßý&Ü®o8~b@ak³™˜ë¨.H=}¬Ïão+ŸHèû_ÏŽ_zþàá<‹K¯¨œ‹>ÉßÇ–ð©Ö.WÏožŽ.õÑoÂm‹|Ó›UécØ·VP´…û±fÅÚ]­XÛdŽEjFì(Û7n߸}£8†cÖŽY;f탯|õà+ŽÌû!’P\x\x\¸ß"¿E~‹,ÿ7Чrà2ÏŠ´‰Ö¶û„·®\ÊZû¸`ü‚ñ ÆScx?¢~¬U×ã>šåRĽֶ}*·ºáYÑò¸‰¹NÌ{Ô˜»-ø¼ÖÊV7ˆ{­mË-Ÿ×Eó§Eò÷±ß§;<5и×Ú¶ü­ö'óm ð¾ká­+—b½ÎÚV¬s2Ç"u"¶ßÛo¼m`m& ~?À@Z?oý¼õó¬M[±Û;5¬Ò™1ñí‘_›l¾míÞYygå•Tl'jÆZEùueàÛD¼‰oc·GÕ«ÒÙê] æ­Ÿ·~•æîcCV/œU 7ñmàÔ‘¹Wö Eòô±]GlxìKÄû?¶?L9ö(ð},€w_+h²!ø6kt‰oÅ:'s,R'`û%¼ö7q„Á¶#’ijÏ<{`m’:t²ñ›à¡´†¶oõ(]»È¥YæÈ×5_×|Ôl'jƲ–õè0¼È%Â]Û·‡N.<ÔÚ,'æ@ê Ì×Çþøzù+Â]Û·Më½é0œ>I×dž5è|0 á®íÛˆ¥¿töù‹>€mk¥k¹Äºœí[±æÉ‹Ô†Ø~"Ðán›'ŽH?¥û)ÝOé,§¤ŽJä+Èï ¾óöI–ðy•[Z›è/G]ŽºEÕ!q¢N¬UÑ“,Ú¯•[ë¾ë¶ã€¯¿.ø/×è‹9ª3õ±ùó†ýüõ׺ï|;hmÞAíWúX$]û}³#Y‹ë¾ë¶ôÙÆ?æmH à­„ϫܒu¹wÝŠõOæX¤ÀŽEì(À€ƒ½|ø"ÐÚ4ts\Û{GÓ¾ßveÉêÁþã,j·!݆tBí!q¢N,ëgeÉ‘±þãˆrßo{sÜŽKG[›ñÄ|Hí€9úزMgøî¸D û~[ï™FÆÒDZ}l“;YD”û~ÛïZë+J£`}­ z°ÿ8ÖâÞo+Ö?™c‘z'Â`{¶©ø¦â›Š[N:½g¶óÌA hÏöe­Nw«èÖ¦õûÇᅵ „%QÖ*çe­}“ªèD¹öl{ÏlÕÊ3‡å±ó!®ÞÇ`Žý·µ‚Nw«è¬ÅÙ³k¡Ì±H €“að»"çUü«øW^!^!^!–Í•m|*ô§ù³;·FX7ßE–GxñÓÅO?¥ aIÔ†eÍÌ­1è¢ï"â[û·WNl-Q¡¿å󡘩CpÝ>¶LÏ© ·– ĵ[,{‡\ƒ.ÒÇÂþ>¶þ´ák O#¾µÛÏ]Þéß•>`Žý﵂°n¾‹X³+ÖB™c‘'?Â`[s­Çµ×zXN+ ˜›k mŸ£¶÷t˜ænyœsWÈ]!w…ø£ñGãRøÇÑø£ñGEmXÖ̽Rç0wâ[Gm+ ¼žk‹åqs#Å®ØÇæÌç½$ð:Á­£¶Á[ç ’:ÓÇÂþ>vPdô؀ķŽÚzŽ*])û$úX€9öÿÖ :L sgýÍQ[±.Ê s#NY„ÁÖ3/ÿ¼üóò[N%;¶ÔôЙ[±Y{* ðýBŒö|–JèkçoëÌð|‘÷¹åѾávÃí†ÕAÔƒeÔ™QÑ/ïsg Pµ ˔ﴴá¡BKJä-Ú2{–ã²mÊøªèØBYçÖ)[ánÞ«“*÷.ï?vlTñ*­œmü;¶Ì zhy´ÅÜH5€+ö±~úïì·P>´(CÔ­¢ž-ßô~•§d©z•:fVÀÏÓ3ãå¬QÙ{äøÌËׯ¿ûÝòÖþ¶äš¡9npæ8÷­ öýècñ~}¬OçÊÕsžu•`uX›ã-ƒŠéTæHö3ÿ<)í®~íœmœí>Y°ªØúX€9V¬59êכ.TížùDÆîfx/7ç¶}Rq¼3|±.Ê s#v„Á ãSا°OaËéãI¹ðµ•Ã4Lu‹H_-CHüãrýWãëüðÎÜuW–úÌòh¯ ]º*”j„ êÁ²Nvæž9±ÔgNºJ_-Cï¿Z-óô~׿Îñ[ùEð!ç €Ÿ”ÓŽVÿ—eÊÂ>…} SàŠ}l¹ó®jGS6.-Õo|Ö_ eû¢à­¢-mÿ¿dþV•{5hP>òô‡Ò;[ì×å»gN¤Åûõ±íÊ,x],Úež°+µŸo‰å§p¶q~ßíH©@_úX€9V¬59êׅò­r”/™Á΋uQæX˜°s" &àé§ Ÿ.´œ,‚—ç»›s£3G¿£"Ë,ö/·ûsþøÁàŽaa,G^«O­>µúP“D=XÖɃÁò¥° ΚNÍÖ·¯·ñ_*çy5Ûšùí¿¯Q¢þÑ+÷•û@\<¡CϨâ[ò†äj›ù‹„þá#õ£°?'^îß6çFËc.æIj\¥ÍæuÝ¿mÊ¥¡W–=Ø çßk¥cþÖ‚Œû2U-ðûWi›•ò™Ý#ϸ AŒµº‚ßï*Ì<›ß7ìÒ×s2”ϰ<ÃᄟÅÙàræ./ÑÇâýúØÁËf ˜ãüÑoóõÓ&gmYÍ9ÇìÑ&`D¶Sô±@ê^+è6Á).{Z7ºÔ=þlæÁJî>'æN í»Á–íÓmßUÞå<ëxb”9fEìüRgL 8@L\L\Lœå1wjØhß ÎÐfÝéÚ>M%ïŸ{Öð)¹cøËà<^3K^ÎûiöûÖ¦6xŽÈˈÎÕªfÈt8ã.Ëñ¿M÷6ÝÛtTfj&jÀ²6²Gd=–qWüËCûªUMÙ ôÅÀ¨[UfxäþŸ,¹ÄØ‚¶øŒÌ1]ºÿw&þ¿?%þ}Ÿ²ö'Sj;wêà,¾,¼˜'©Lp•>¶˜G‡ªƒ³¤lPZ"¼Ïñ©ÿõ«Š>ºOÛHüWËpWü›Â‹ÆuþEüs¶Îé¼N:Ý C—-:´/ãà,£³£…í}læéÙ|3–1ìÌñRAÎýö,µ½H‰ýYÓäØ˜q›kÀõ~µðúX µ®d:œq—Xkr†U/÷бož«l¶`—Y¯³²k¤Ì±0+`×’zÂ``À–ž]zvéYËIáØÎ¦GËÍu†6kùÙj»üƒmŸÎ\¥}ìÝ+°¡ç¿ŒÿnØÝ°»aTfj&jÀ²6z÷jUÑÓ)âÒ]=fÍ*Õ(áØ6Ÿ™Ú#ðŒ-nŸª¢•­™û…óÀÇv®>Rn®å‘ó$• ®ÒÇõxõ‘” J=›4©Þu‘O–(÷Û…m¹¥s™eSl}ùÿþÿW;[ \ðh­B­*ÒÇÂö>¶üˆöù&:sô;4ßÑ^] ~T¢S¶/ÿéTgvÛ]`º«ÀÝžmì»™>H­k =h5¬×çG +bl .}”¯¨«Àb”9fEìºÌáááñ/·Ž‰îØ6l¡3´Y'w4¯2lÚ§vx¿²ÜºnüË™š}¾·ÿá凗^Ne¦f¢,kã—3ö|ï Aé°¡z éýnæ|¸ÂŠ:Á³ÅOån‘ãf¦EÎsðƒh%wØ¿ÜJTÌ“T&¸J[.ßÜCJî”H Ä}5«Ùã,y{ÜÛ†zÕ,kK”[vÇÌV»:þKxæd°ohOß {èca{ÛâìŒùEß:s\:O£²y³üs½Zï çrú ß~r[Ð"W €ï;Ø4`9},Z× jö øÞyÖ»j5õ,”·ÿ?7ÿïXzmÑl®ýþó(·èŽmY+€y›ƒùÂ``Àüøñ?ò/7póéÒªê çoÂ\7މiVºÜËñ¯»±îƺTfj&jà_n.³æçrgœ!(Ý=Í+È­kxÉcP¯Ï[ý¿ßí}׫‡b¼¿Èáá<ð[Ÿsª®°<òbž¤2ÀUúØÐ-Kþ:0ÇénžlöXƒ§KxݰsÀA-G/Zó3},lïc»ù-Ü÷’sF§_Ïѧðm1Î\ fÍü〚{+•äZ·€þÑëÔÐ ƒ>H­kÍJ—;ãœ+uózU.S"—¸„£âÛ‚_åvÏS+ËâL'}½sWËv©Å7Ååüç—~Rõ¿¹ñné«9éšžX#eŽ…Y›9Â`` I¦øìs2]Ìh¸JŒêºð­v~7ZŽº ë&¬£2S3Q–µq+dg·Šç†É–7v¶åO6R«Í÷ÏÀ}´Éé9ÏÙžœ}NÖ'›[ÎÞÇf™eYÖ'Îô–n5ñá¯1'F>^5ÒϽ®m z×ðlþkÂÏRüiç—?örθìà vv£…í}ìw›²%«9[hÑný ŸS™êf~á÷Œ™ºfùÍU[¼W$ z]%ÛÌk²5ÊF ¤¾µ‚v~7:ÃJד½áç+H8¶l«3Ê8Ù–àá«Q…³å‰¹Õæf…ιŽ'ÖK™c‘þVEl&®I2Ň~žÿ÷\e €“zûxjx—Ê¡–ãïÞ+¼W8•™š‰°¬ÇSµê•C3þWÖz˜SuÅFß­ýÏÕ]sxeê|}ûöÞó8ÛhC?¨˜«,©Wìcsì,Þ< ¢óÀY/lTd‰•û©ÏÝ:>ïÌã/·vÞ`­:},lïc¿ÏyxM`fç J½Ž~Ð&oÏè,Åëä¼Ð#Â2âu­¸ð¨ ÙKÓÇ©o­ ¼KåP§xVîM'”ûö_n•Ü׿¹GØ/•j´æ·›µ.ë^­d'›Ófèšá¿Ö÷œój`±^Ê‹Ôð·*`³r­08󜀙4ð)úk¾4ÀI½êÔ¼JWê ¶‹ŠjY¥«kE¿â‰¿••™’[û¿ßÿÍZ:ãdõ£y{JÇ8Ûµ¿bÛÀ§ò¡|i¨7pEy–ñ®|Èuàÿº©à½ÁÇæíqÎñ‡ü¼pETKê ¶ûaα¸À[Nq«ä…§«Ý)q¯ú¦\ÿ\s_rI펹gHÆ­Ô¿„»®—˜W=o®™ÔúÖ :5¯ÒÕVºvõ¨WðÿùTòrÞO³ß__¿Æå„+x–?µ»M½!¥&þK ìdëxb½”z:m߸}ãöÀ€Ëk^§x“ü €“zû²^§¿«Ôl÷²Þ¾iU ç}Ï×ù5kèëÖej[`XÂñ—žíû&GÜ¿•_ú¿³ÕÇß¼NÖùRoàŠÜ½B†Õhí*Oü ½¤Yôeâ¦gÞÞÛïçïbfÍÊS²T½J~¢€’?ü¾øšÓÀÏÍÜ7zƒí†58^-ÈÓ"ÒúN-ô3Æe¯¿²¦ÒèPÝ€~1ÑÕà’ñuÒåÞF½©o­ ÓßU g^µ{×õ½VÕ½ûøÊÙ>‹X/¥Þ¤N¯6¼Úðj0àò¸˜+€áœœù àW-ö·«?vj©Å3dÝ–eHƦbÌùÓ癕yôOû•ð~õ2bßÊ*þïkϦ2y™ïoUs?™ûÉÜO82æ{í¼cðŽÁD|ñí¯øó©èÀ€¹óž}N¦‹ à¤ÞÞ içWq£åø'¬›°nÂ:*355`Y·Bvv«¸Ñy‚ÒË· ¯V¬‹Ç†l‰ŠÞ?qÉ’²£ÅŸq­èWl³ÏÉú$£ños ÀÙûØŒ#³,Ëú$eÃÑà%sJI™ŽªøÓÎ/ìeû¿QnEñ³™öçXš;·³ÀeÏX°³},lïc¿Ûl”-YÍ|°³]œyM¶FÃècÔ·VÐίâFgXéÒn4¨Q¦¼úôëe>»ü¸õÂlÿÙ-Ñu> rŸÈ»f®™Ùz;Û*ŸX/eŽEjø[• 92æ ‚Û1kǬ³ÖöþVüùä}"Àÿˆÿÿ#–'ù[Ÿ.­ª® NºmLL³ÒåÎXŽÝu7ÖÝ 2S3Q–µ³æçrgœ'( ©Qr]®þzVE+[3÷‹ûîÒѰW }Åö­Ï9UWXy1OR™à*}lè–%˜ã®ú&D 8@„G„G„‡å ÿ ºcÛ°…ÀI·ýåLÍ>ß[ŽÿðòÃË/§2S3Q–µñË™ {¾w† T.øSXéð®µJ›áp†j—òÿV³ü×~ÅöA´’;lá¿ÜêÄ#Â#ƒÊWécËå›{HÉí<p†÷eª0uØ“¥-ÿÇ•µ-f”Þq7Ë—y–äÿç>Ï¢·E\q¶Ø7´§ï„=ô±°½mqvÆü¢oùé¹¶<X„¾Î9ÎÁû6 XN ¤Öµ‚š}¾wÎ5:[VêÔ¾žS:&ãã F†¡âÏû¼)³ÞyVðÄ)s,ÌŠØÌú&D 8ÀÒ³KÏ.=kyòÛÙôh¹¹ÀI·íÝ+°¡ç¿L»wÃî†Ý £2S3Q–µÑ»W«ŠžN¯~³©¡[¡ˆ®jzäþŸ,¹þyFÈ”Á™}7¼ëÖyàc;W)7×òÈ‹y’ÊWécƒ z¼úHÊF¤¥b&”ݰ0ãå¬QÙ{$[¡#uk´«Wbfßði^âVÏ~îýsÍhëÙ¤Iõ®‹ÞðY<ýWÜPÚÙžR\ðh­B­*ÒÇÂö>¶üˆöù&'ݶ۳Mƒ}7ÓÇ©u­ °¡§S¬†=º^´r¶"srÏÚþŸ_œÁÈ0´ÓR¿Ú…–lÝU§}P•Cu n³¡dÍYÓ»W+ÙÉãfÂè÷›M%žüßjƒ=ŸxgÓ£¬À¼€]—ùBß„€ˆ‰‹‰‹‰û—‡½O í»8I¶/#:W«š="ÓጻþåæÛéÞ¦{›ŽÊLÍD üËó¹#²˸+þå¡}Õª¦lPZñm©f¹ÝõÔ4ç €çNœÅwÿÜP+.&.&ŽÊWéc‹yt¨:8‹3¥ÿ<Çw^·\mmÿ?cNwï–Ê1öѺuÎvíoùÐe‹íË88Ëè¬Çèca{›yz6ߌåF ;s¼TpRlëÿ6üjáô±@j]+Èt8ã.±Öä<+u>årÝ˶Æöþ§ÃEߣ^ ì´ ÊLg[Çk¤Ì±0+`×bîÐ7!`Àž.|ºðé¿ÜÆ$xy¾»97'É­cw ›`9òZ}jõ©Õ‡š„ êá_nÏ>X¾6!eƒÒüéóÌʼÁ|pðrÿ¶97ZŽPÌ“Ô$¸J›#Ìëº[ç Mÿ¹™s“&Õ».Ê¡Ð)sƒ\MòÖÏø[Ö€l›²Ÿ+º°ÄN÷=åëÔÚìÓ©û„±ÊgX–þPz§‹~Ë/[vèP¹ sÈ—ècñ~}ìàe³Ì!NŠ­G›€ÙNÑÇ©{­ cXØg[¯ûiXØ%ßk5;>·|¡ãÙ»g›eoÆcó›Ó;ëܶ9}†ø[ò¯?®´oŸr¶u<±FÊ ³"v~©'ôMˆpŸÂ>…} [NOÊ…¯­î*7Uv•xgîº+K}fy´W…® ]J5Bõ`Y';sÏœXê3×}ήsnŸ”ÓŽV·<Úbn¤ÀûØræ]ÕŽ:[ œx¬ëœ¡o­_—ï>œ9‘>ï×Ƕ+³àu±hW¼´3o¿ïv¤T /},À+Öš\q½Î™Wóĺ(s,ÌØ9¥ÎÐ7!`ÀaæåŸ—^~Ë)cÇ–ºCƒºJì*Û:3<_ä}ny´o¸Ýp»áF5Bõ`Y'ufTôËûœÈÖ±Û[f=´<Úbn¤ÀûX¿Fý÷Î væ0Õ·¹oµ¯èG‹÷ëc}:W®žó,‘­c·í>Y°ªØúX€9V¬5±ææØ­XeŽ…¹;Bß„€‡¹ÖãZk=,§  Ì͵…†ÏQÛ{ :L û—'§æ®»Bî ñGãÆ¥ñ£ñGãŠÚ°¬™{ ¤Îaî·ŽÚV(x=×Ëã,æFŠ\±Í™Ï{Iàu"[Gmƒ·Î$u¦…ý}ì Èè±5nµõUºRöIô±sìÿ­t˜æÎú›£¶b]”9æFœ²}­!çUü«øW^!^!^!–Ê•m|*ô§í³;·FX7ßE–GxñÓÅO?¥ aIÔ†eÍÌ­1è¢ï"‚[û·WNl-Q¡¿å󡘩CpÝ>¶LÏ© ·– ¾µ[,{‡\ƒ.ÒÇÂþ>¶þ´ák O#¸µÛÏ]Þéß•>`Žý﵂°n¾‹X³+ÖB™c‘'?B_[¶©ø¦â›Š[N.½g¶óÌAógÏöe­Nw«èÖ¦ïûÇᅵ „%QÖ*çe­}“ªè„¸öl{ÏlÕÊ3‡å±ó!®ÞÇ`Žý·µ‚Nw«è¬ÅÙ³k¡Ì±H €“¡ï»"ìEà‹ÀÖ¦››ãÚÞ«8šðý¶+KVögyT» é6¤Ûj‰ubY?+KŽŒõGˆû~Û›ãv\ª8ÚÚŒ'æCjÌÑÇ–m:ÃwÇ%¢Ü÷ÛzÏŒx02–>Žíc›ìœØ¹È"BÜ÷Û~×Z_Q²},ëkÕƒýDZ÷~[±þɋԃ8éúÚƒH?¥û)ÝOé,§žŽJä+x›Fð]·O²„Ï«ÜÒÚ„~9êrÔå(ª‰ub­ŠždÑ~­Ü’@÷]·|ýuÁÛ–ÇSÌT˜©ÍŸ7ì篿&Ê}×m9mÞAíWúX$]û}³#Y‹è¾ë¶ôÙÆ?æmH à­„ϫܒu¹wÝŠõOæX¤ÀŽEèë(À@’xöàÙƒg¬MF‡N6~<”vÐöí ¥k¹dy$»æëš¯k>ê ¶5cYKƒzt^ä®íÛC'—¿ jm–s õæëc|½ü±®í[¦õÞtN‹¤ëcÃt>˜?†@×ömÄÒ_:ûüE À¶µ‚Òµ‹\b]Îö­XódŽEjCl?Bߤ@ $¡õóÖÏ[?ÏÚô»½SÃ*i ßùµÉ†àÛÖŽá•wVÞYI¥Áv¢f¬UÔ‘_Wö¾M¸›ø6v{T½*­C1ïQi`î>6dõÂùQõwßN™{eúX$OÛuĆǾ„»ÿcûÔcoÐÇx÷µ‚&‚¹ŸßÿØŠuNæX¤NÀöÛ¾qûÆí }‹HBqáqáqá~‹üù-²œªúT\æY‘ÑÚöqŸðÖ•KY›èŒ_0~Áxj ïGÔµêzÜGó¯\Š ×Ú¶OåV7<+Z71׉ys÷±Ÿ×ZÙê¯ÕÛ>/Ÿ×Eó§Eò÷±ß§;<5Р×Ú¶ü­ö'óm ð¾ká­+—b½ÎÚV¬s2Ç"u"¶ßÛo¼m@èëXÀ@’»ðøÂã ­þ\ÃW Ó&&ÜÆíêò°ê›¯kmá~ÄòˆùLñ™â3åmó·Íß6§ºðž-Eó·Íß6µdYc_תœËýHÜ®ƒ‡«¾!îM¸]ßpüÄ€ÂÖf31×Q]zúXŸÇßV?‘¸7á64~éùƒ‡ó,.½¢r.úX$[§Z»\=¼y:ºÔĽ ·-òMoZT¥`ßZAÑîGÄškw ·bm“9©°£$¼˜Ð×~À@2Yz`饬5CÑ5­+»‰–Ql‡”=îÕÉÚ±ºâuÅëŠû‰Z²ViÃ:ñêDè+¶Ñ5—•ÝdíX‰ùŠ€ÔÙÇŒvjiѯØ^Õ(gç#ô±HÙ>¶êä= \'ôÛÎîïÓ’>€ãÖ Ê÷êÄÚØŠõLæX€ΉH.¿Çÿÿ{»®íº¶ëj­1ŠyѬj¹Ë©¹qœþ¬bOŸkÇg›ºMݦRJp,QWÖªnú³þ›}"RsôóbMt¹ËÖŽ˜ÓÄüF-@jîcƒ:ŒÞ¶&:5G¿^Ú\ê¿™>ÎÓÇÖýøû2;RsôÛ}Êo£|oÐÇHšµ‚Š=}"Ró žXÃdŽ`8'` YÅîŒÝ»³XŽb9Šå°Ö$qo2 x*j_DtªVejƒ ý¼c¬“Éu'×\—úAÒ5f­§6è»Ü;&þÅ¡¨jUROô{Ä}Å›àýÖŽ‰˜ÇÄœFý}¬Øw„±âM*Š~C—-:UtJëª}—ÓÇÂ9ûØÚÆàO@Ò¯Tèç#ÖµRÏ:žX·dŽ"†s"RÀ½À{÷3$jǺӃLþL‘7åº|Pµ{ßÞA™î9êM¹è?ªv7wô»ãÎÌð 7‰ÏQb£p€>Ö’_›þ7f†›üY¿£–4‹þ£í–­ÓÇÂùûØ :üžïâðí'·-2wôÛ.ß‚˜b*},€ä]+Êä9J¬q™{O¬U2Ç–€áœ€s«ï­¾·ú&Þ6;úEñqO">®ö¹™ZÆ»¾íkTj|/ÿ'9kŸ=âPÄ¡ˆCq½âzÅõ¢Z@Ê­äÿ$§"̴ֻ‚'Ö$Åú$s,` 0œ0Âîß ¾œ{eWZk¡žäí‘ÃûrÖÖc+dpùßìS÷› «‰·ŒÕê@5îdÜɸ“TRà¯v'ãNÆuø?®Ôï3óÓ «®ý^κùD… O¼=rx[û¤bŽó°½Íö¢ðio2¹¦TÙ|ÂÕ£_¿êýÍü”>æècÛÞZðm± ®ýö­!Uõ/TÀ×çQÖ(úXδVP÷› «®¾‚'Ö!Åš$s,8`8'`À)<-ÿ´üÓòµ[ÔnQûü>Ý”ܽ½îÒyKÕWi¯ÖkÓ²ÂôúEî¹OHüÓýtü§ã?‹‹£*Ò·‹‹5™xÝÖ÷ pŸpµÞÖi¦»JèûºKt@Õ)=ú<ð^”ø§󒘣( €=}lÑ­v÷yÚjñÙèW }ËŒºxë´<ß”z@ óõ±¾K«vÍU±_s%Ÿÿ®úÿúäGACj7TÝ£},ç^+(rÏ}‚Xs•<±Þ(Ö™cÛÃ9ÎÔCŽŠ7jâ쉳'ÎÎ`ƒU¡ÕùïÝÞ©a•ÎÎÖ2Þ¬×ölÅ}#‚Ò{ްå³D•Ž*Uš€sõiK%÷h}ÈsÄÍz;6Wèl¡oìö¨úU:¯ í¿×–Ï"æ"1/QÇö±ÞûºN²záü¨úÎú–­=#ÝŽÍ…JÔnÒú},RO[¡o‡è|¾«¤÷+™ßÙBߦ{x£iéIU‹DÓÇp͵‚ ôž#ÄZ™³­à‰uE±ÆÈ ¼`8'`ÀIÌv0ÛÁll6Ö7¤{±W h¿·ÒŠ”jwh⼨٣âùÇÚ2æFçotþ^Þ{yïåå‡óµ*êÖ– oö¨F¶ücwXÑ%xQJ…¾ س§Òб¾=ª{eû|"æ¾q@òô±žo›5îQ%¸ælï={R*ô ¬7¢þŠ.îÙCª×ÈF úØ’'j+¹WG\ûå¢oÚ” }îØ§”|üÕ•¾ ¥¡`®µ‚âùÇŠ5´”ZÁë‡b-‘9°0œ0àÔb'ÆNŒ8&û˜ìc²ÛÞåó̺1ó AÇú <½´EÚ{Žmß,èâYuÄÞÏf-³»wŸÀ†ž3¼£]»wíÞµ;þEü‹ø|Ëp1/â_Ä¿5ü®•ß»O«0ÏŒ{?_x¥Ìî7 xTáØ¸÷ôÒõÝCîÍêÝg`>ÏÜ—2²}lbžs_2 ¥úØL±9Kç¾ä•§íÇý¯—ª>nìúîŽ zCç.™yÀ£äÖ¡^)x´VáVaô± µEù‘í ç›ôÍíUw½7 ¿~꣠_÷~»o[x‰åu=¾ïá¡e˳4Ówô±RÓZA`CÏŒbM¬¹9vO¬ ŠuB±fÈ 80œ0à2®O¾>ùúäðnáÝ»ex/yÓe¹‘)¾Ýs_¿‚M§ô¯PÀ{Éú5.ÜU?m© ºÜ`~™žÚ¨…ËÝq®îÄ —+b«ò2¢Nð|¯Ëuf{¾Ìû<ƒæ¹ÏsŸçþ¢Á‹/ðmÂ$¿kð¢Á‹¢¶í9;êÌ®X2ïóu"úx]^;ò€ÿçf6 z©š»LQ]^p©LÏ=Qs"J]X_cüÈ€‚Sú÷y潤Ýóz­ 6Í›.W™Lñï÷¾b>s ß&À™ûØLÓ²?ÌU&ßòJ…ëµ*ÞJéóÌçá·!ãGúç2'¢d¿ï.¸T²Ì]óoûµìaf3ﱇFðüOã¶}rß êX±$},}¬O—Ê5rž­6¹§oÁà& '–*2«]ŽQŤðm+b¼«SkåïAíc—|V¼u‹\Óë•k·T×ëԚ†ÝóÜËV)ן™òÓÇ`޵¾Vàù2ïs±.'ÖèÄzX»ëxbMO¬ï‰µ>±î'Ö™cäA çD ¸¤k¿^ûõÚ¯ <6ðX'¶2teèÊÐçþÏýŸûó­ÁÜD‹šwæ³RÌbá[ÐÇÒÇô±ÀË ؃Ήpy±Ñ±Ñ±Ñ;&혴cRÍQ5GÕ•RÍbßz}ëõ­w¼ýñöÇÛó½â\çEJ•bNóƒ˜+ø^ô±ô±},0Ç2ÇŽB çD ˜ÐóÏO˜c™c µ!îõ¹×ç^GyEyEyík±¯Å¾/¼lð’'œ)Fœƒâ|ç¦8O92ÐÇô±ÀË H0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜0˜D²À{?ÜûáÞ3@ª!rR`pyÀ`©.ÿ~oÚ½i÷¦Ý›foš½iŒ8#Έ3Þo·ÆkãµñÚxe¼2^/ŒÆ #Öˆ5bgÆ3ã™ñÔxj<5ÇÆ#ã‘ñÈxh<4÷ûÆ}ãžqϸgüeüeüeÜ5îwÛÆmã¶q˸eÜ2n7ŒÆuãºqݸj\5®WŒ+ÆãOãOãOã’qɸd\0.ŒóÆyã¼qÎ8gœ3Îg³ÆãŒqÆ8eœ2N'“ÆIã¸qÜ8nÄ1FŒñ»ñ»ñ»qÔ8j5‡ÃÆ!ãqÈ8`0ÑF´mì7öû(#ʈ2ö{½†nè†nh†fh†b(†bȆlÈF¤iD{Œ=Æc—±ËØeì4v;íÆvc»±ÍØfl3¶[Œ-Æfc³±ÙøÍøÍøÍøÕøÕøÕØhl46¿¿¿ëõÆzãgãgãgc­±ÖXk¬6V«UÆ*c•±ÂXa¬0–ËåÆRc©±ÔXb,1–‹ÅÆbc¡±ÐXh,0 ŒyÆ_Ÿ§ÏÓçésõ¹ú\}Ž>GŸ£ÏÒgé³ô™úL}¦>CŸ¡ÏЧéÓôiúT}ª>UŸ¬OÖ'ë“ôIú$}‚>AŸ ×Çëãõ±úX}¬>F£ÑGé£ôQúH}¤>RÿQÿQÿQ®ׇë?è?è?èCõ¡úP}ˆ>D¢Öëƒõú@} >@ Ðûëýõþz?½ŸÞOï£÷Ñûè½õÞzo½§ÞSï©«««÷Ð{è=ônz7½›ÞUïªwÕ»è]ô.zg½³ÞYÿFÿFÿF×Ãõp½ƒÞAï ·×Ûëíõ¶z[½­ÞFo£·Ñ[é­ôVzK½¥ÞRo®7×›ëÍôfz3½‰ÞDo¢7Öëõ†zC½¡Þ@o 7Ðëëõõúz=½ž^O¯£×ÑëèµõÚzm½¦^S¯©×Ðkè5ôêzu½º^M¯¦WÓ«êUõªze½²^YÓÃô0½¢^Q¯¨WÐ+èôP=TÕCô=DÖƒõ`½¬^V/«—ÖKë¥õRz)½”¨êz€ èþº¿î¯ûé~ºŸî«û꾺î£ûèÅõâzq½˜^L/¦Õ‹êEõ"z½ˆ^X/¬Ö=tÝC/¨Ô êôz=ŸžOϧ»ëžGÏ£çÑsë¹õÜzN=§žSÏ¡çÐsèÙõìzv=«žUϪgѳèYôLz&=“žQϨgÔÓëéõôº›î¦»é_ê_ê_êéôtz:ýsýsýsý3ý3ý3ýýýýcýcýcýCýCýCýýý=žFO£ÅkñZ¼öV{«½ÕÞho´7Ú+í•öJ{©½Ô^j±Z¬«=מkϵ§ÚSí©öD{¢=Ñi´GÚCí¡öP»¯Ý×îk÷´{Ú=í/í/í/í®vW»«ÝÖnk·µ[Ú-í–vC»¡ÝЮk×µëÚ5íšvM»¢]Ñ®h—µËÚeí’vI»¤]Ô.jµóÚyí¼vN;§ÓÎjgµ³ÚíŒvF;¥ÒNi'µ“ÚIí¸v\;®Åh1ZŒö»ö»ö»vT;ªÕk‡µÃÚ!ívH; ÐhÑZ´­íÓöiû´(-J‹M˜4US5US4ES4I“4I‹Ô"µHm·¶[Û­íÒvi»´Úm‡¶]Û®m×¶j[µ­Úm‹¶EûMûMûMÛ¤mÒ6iµÚFmƒ¶AÛ ­×ÖkëµuÚ:m¶V[«­ÕÖhk´5Ú*m•¶J[©­ÔVj˵åÚrm™¶L[¦-Õ–jKµÅÚbm±¶H[¤-Òh ´Ú|m¾6_ûIûIûI›«ÍÕæj³µÙÚlm–6K›¥ÍÐfh3´éÚtmº6U›ªMÕ¦hS´)Ú$m’6I›¨MÔ&jãµñÚxmœ6N§ÑÆhc´ÑÚhm´6R©ÔFh#´Úpm¸6\¦ Ó†iCµ¡ÚPí{í{í{m°6X¬ Òiƒ´Úm€öööÖOë§õÓúj}µ¾Zo­·Ö[ë¥õÒzißjßjßj=´Z­›ÖMë¦uÕºj]µ.Z­‹ÖYë¬u־ѾѾѵp-\ë uÐ:híµöZ{­­ÖVk«µÑÚhm´VZ+­•ÖRk©µÔšk͵æZ3­™ÖLk¢5ÑšhµÆZc­¡ÖPk¨5Ðh ´úZ}­¾VO«§ÕÓêhu´:Zm­¶V[«©ÕÔjj5´Z ­ºV]«®UÓªiÕ´*Z­ŠVY«¬UÖ*i•´JZE­¢VQ« UÐ*h¡Z¨ª…h!Zˆ¬kÁZY­¬VV+­•ÖJk¥´RZ)-P Ôµ-@ Ðü5Í_óÓü4?ÍWóÕ|5ÍGóÑŠkŵâZ1­˜VL+ªÕŠjE´"Z­°VX+¬yhš‡VP+¨Ô h´Z>-Ÿ–Os×Ü5w-–GË£åÖrk¹µœZN-§–CË¡åвiÙ´lZV-«–UˬeÖ2k™´LZ&-ƒ–AË ¥×ÒkéµÿhÿÑþ£}©}©}©}¡}¡}¡}®}®}®}ª}ª}ª}¢}¢}¢}¤}¤}¤}¨}¨}¨¥ÕÒjiµ4Z-§Æ©qê[õ­úV}­¾V_«¯ÔWê+õ…úB}¡Æª±j¬úL}¦>SŸªOÕ§êcõ±úX}¤>R©Ôêõ¾z_½¯þ­þ­þ­þ¥þ¥þ¥ÞQï¨wÔÛêmõ¶zS½©ÞTo¨7Ôê5õšzM½ª^U¯ª—ÕËêeõOõOõOõ¢zQ½¨^P/¨Ôsê9õœú‡ú‡ú‡zF=£žQO«§ÕÓêIõ¤zR=¡žPO¨1jŒ£S©ÇÔ£êQõ¨zD=¢Q©‡ÔCêAõ zPV£Õhu¿º_ݯF©Qj”ºWÝ«îUuUWu1¨Šª¨Š*«²*«‘j¤©îQ÷¨{Ô]ê.u—ºSÝ©îT·«ÛÕíê6u›ºMÝ¢nQ·¨›ÕÍêfu“ºIݤþªþªþªnP7¨Ô_Ô_Ô_Ôuê:uú³ú³ú³ºF]£®QW««ÕÕêJu¥ºR]¡®PW¨ËÔeê2u©ºT]ª.V«‹ÕEê"u‘º@] .Pç«óÕùêOêOêOê\u®:W­ÎVg«³ÔYê,u†:C¡NW§«ÓÕ©êTuª:E¢NQ'©“ÔIêDu¢:Q¯ŽWÇ«ãÔqê8uŒ:F£ŽVG«£Õ‘êHu¤:B¡ŽP‡«ÃÕáê0u˜:LªU‡ªß«ß«ß«ƒÕÁê`u:H¤P¨ÔïÔïÔïÔ~j?µŸÚWí«öU{«½ÕÞj/µ—ÚKýVýVýVí¡öP{¨ÝÔnj7µ«ÚUíªvQ»¨]ÔÎjgµ³úúú®†«ájµƒÚAm¯¶WÛ«mÕ¶j[µÚFm£¶R[©­Ôj µ…Ú\m®6W›ªMÕ¦jµ‰ÚDm¤6R© Õ†jCõkõkõkµ¾Z_­¯ÖUëªuÕ:jµŽZK­¥ÖRkª5ÕšêWêWêWjuµºZ]­ªVU«ªUÔ*j5L SÃÔJj%µ’ZA­ VPË«åÕòjˆ¢†¨åÔrj9µ¬ZV-«–Q˨eÔRj)µ”¤©Aj€ ¨%Õ’jIÕOõSýÔj µ„ê£ú¨>ª·ê­z«ÅÔbj1ÕKõR½Ô"jµˆê©zªžª‡ê¡z¨…ÔBj!µ€Z@- æWó«ùUwÕ]uWóªyÕ¼jn5·š[Í¥æRs©9Ôj5»š]Í®fU³ªYÕ,j5‹šIͤfR3ªÕŒjz5½š^uSÝT7õKõKõK5šNM§~®~®~®~¦~¦~¦~¢~¢~¢~¬~¬~¬~¨~¨~¨~ ~ ~ ¦QÓ¨i”x%^‰WÞ*o•·ÊåòFy¥¼R^)/•—ÊK%V‰Ub•gÊ3å™òTyª/Ÿ—ÏÉçäsòYù¬|V>#Ÿ‘ÏȧäSò)ù¤|R>)—ËÇå9FŽ‘———ÊGå£òaù°|X>$’Éäò9ZŽ–£å}ò>yŸ%GÉQbñOüu_üO^$Y’%y¼GÞ#ï–wË»åòNy§¼CÞ!ï·ÉÛämòVy«¼UÞ,o–7˿ɿɿɿʿʿÊåòFùùùy½¼^^/ÿ,ÿ,ÿ,¯•×ÊkåÕòjyµ¼J^%¯’WÈ+äò2y™¼L^*/•—Ê‹åÅòby‘¼H^$/È äùò|y¾ü“ü“ü“²·ì-{ËÅäbr1ÙKö’½ä"r¹ˆì){Êž²‡ì!{È…äBr!¹€\@. ç—óËùewÙ]v—óÊyå¼rn9·œ[Î)ç”sÊ9är9›œMÎ&g•³ÊYåÌrf9³œIÎ$g’3Èä rz9½œ^þüù?ò—ò—ò—òòòòçòçòçò§ò§ò§ò'ò'ò'òGòGòGòòòrZ9­œVŠ—â¥x)NŠ“â¤7ÒéôZz-½–^J/¥—Ò é…ôBz.=—žKϤgÒ3é‰ôDz"=–K¥‡ÒCé¡ô@z =îI÷¤{Ò_Ò_Ò_Ò]é®tWº-Ý–nK·¤[Ò-é†tCº!]—®K×¥«ÒUéªtEº"]‘þ”þ”þ”.I—¤KÒé‚tA:/—ÎKHHHg¥³ÒYé´tZ:-”NJ'¥Ò é„#ÅH1Ò1é˜tL:*•ŽJG¤#ÒétH:$”J¥h)ZŠ–öKû¥ýR”%EI{¥½Ò^I—tI—TI•TI‘I‘„H)RŠ”vK»¥ÝÒ.i—´KÚ!ívHÛ¥íÒvi«´UÚ*m‘¶H[¤ß¤ß¤ß¤MÒ&i“´QÚ(m”6H¤ Òzi½´^úYúYúYZ+­•ÖJ«¥ÕÒji•´JZ%­VH+¤åÒri¹´TZ*-•–HK¤%Ò"i‘´HZ(-”Jó¥ùÒ|iž4Oš'Í•æJs¥ÙÒli¶4Kš%Í’fH3¤Òtiº4]š*M•¦JS¤)Òi’4Iš$M”&J¥ñÒxi¼4N'“ÆHc¤1Òhi´4Z)”FJ?J?J?JÃ¥áÒpéééi¨4T* ‘†HC¤ÁÒ`i°4P( ”H¤R©¿Ô_ê'õ“úI}¤>R©·Ô[ê-õ”zJ=¥R©‡Ô]ê.u—ºJ]¥®R„!EH¥ÎRg©“ÔIê$…KáR¸ÔQê(u”ÚKí¥öR;©ÔNj#µ‘ÚH­¥ÖRk©¥ÔRj)5—šKÍ¥fR3©™ÔDj"5‘K¥ÆRC©¡ÔPj 5Hõ¥úR}©žTOª'Õ‘êHu¤ÚRm©¶TSª)Õ”¾’¾’¾’ªKÕ¥êRU©ªTUª"U‘ªHaR˜&U’*I•¤ R©‚T^*/•—B¤)D*'•“ÊIe¥²RY©ŒTF*#•’JI¥¤@)P ”¤)@ò—ü%ÉOò“ü$_ÉWò•|$ÉG*.—ŠKŤbR1©¨TT**‘ŠHE¤ÂRa©°TH*$’ J¥‚R~)¿”_Ê'å“òIy¥¼R^)”GÊ#å’rI¹¤œRN)§”]Ê.e—²IÙ¤lR)‹”EÊ$e’2I¥ŒRF)½”^J/¹In’›ô¥ô¥ô¥”NJ'¥“>—>—>—>“>“>“>‘>‘>‘>–>–>–>”>”>”>>>ÒHi¤4‘q‘q‘q‘o#ßF¾|ù:òuä«ÈW‘¯"_D¾ˆ|ù,òYä³È§‘O#ŸF>Ž|ù8òQä£ÈG‘"D>ˆ¼y/ò^äß‘Gþy7ònäÝÈ;‘w"ïDÞŠ¼y+òfäÍÈ›‘×#¯G^¼y-òZä•È+‘W"/G^޼y)òRä¥È ‘"/Dž<y>òÈ?"ÿˆ<y6òläéÈÓ‘§#OEžŠ<y"òDä‰Èã‘Ç#G‹<y,ò÷Èß#<y$òHä¡ÈC‘‡"FŒ<¹?räþȨȨȨȽ‘{#÷Še{±\'ÚvàdýÀœ!% &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``À&•FîºG€ïÚ±2>Îø8ããi ¤)Æ/Þ/Þ/¾~ºúéê§½aô†ÑôÓúiýt¼[¼[¼ógœÁ­q·ÆÝWðJÁ+¯ˆo0úüéó§tõÑÕGW“úÝoº=èö Éÿÿ}9jÿâSˆO$>ø¤âSóí¤NÀÀ€M€ € €mWje©•¥Vr eÅåË—·VÓZMk5Mø NÍ65ÛÔlÉóm~·ä»%ß-Iê*š89pr`Âý×þªöWµ¿¢bR'``À&ÀÀÀï§W¯6^O·=Ýöt3 g’Ó¸á㆞ð»ó0< ãÙªg«ž­JêwëýÖû­wá­…·ÞšÔU$f˜„W9 :Lè0¡•Ú6!&&¶G“åM–7YN|ÈY€äqfü™ñgÆgÙ›eo–½ ¿»9‹æ,š³(y¾G%³’YÉœœU4óà̃3&|qþèöG·?ºQ©00```Wÿ®|mïë§a? ûiØÈÃ#<Ñ7¢oDߺÅê«[,ǸãrŒ³%7že>á,@r‹w‹w«Ñ¿Fÿý~k^½z |1ðÅÀ“g ÍF6ÙldrVQìØØ±±c‹Ì)2§Èœ„ï•ð&Ø@j@L Ø„¸ÓÒÄ^|שyä=|ôð‘-pþôùÓçOO ÃY€¤³jýªõ«Ö[~k‹={,öHžop]Ûum×µM©*šß~~ûùí-ßqÍä5“×L¦BR``À&„‚|×|×¶˜TyRåI•ÉÊÝ+w¯ÜMRKp¬—/#^FëR¬K±. ¿/wwwŸ¤¾ö÷u­×µ^ךµgÖžY{2ŸÈ|"󉔪"qpžZyjå©•ð½kz×ô®I ¤ÀÀ€Mù®ù®mâïïR#¤FH k#éx´ãÑŽG©@j ŽeíÊ×¥{”îQÚQßÝ[ï·Þo½/–¸Xâb‰-Ñ[¢·Dê3¨Ï >–ÁsÊV‘¸M½åû. X°(€j07``À&„‚|×|×¶Kx³YK¥V–ZYj%•F-ÁQÄÕ½EÇ[t¬å÷eì7öûíùîW8\áp…òÅË/_<ƒƒ$õ1Q?R?R?²|ß„A5•`VÀÀ€Mù®ù®mwvðÙÁg[IÁ+¯¼B¥QKp”VXqÀZØ—7.o\^{ö¿mݶuÛÖep¨¤>&âS™SdN‘9< µ!&pyÑC{Yû©«'¯ž¼zrTä¨ÈQ‘5;ÕìT³“O9Ÿr>岭ζ:Ûj±d\ùXåc• üqà<âwÄïˆ_j>Îïº-–žÕ§êSõi·ÆÝwk\!O…<òx®ò\å¹JgñÅ-ŽÅ5Üö9aôè ßµýNì;±ïľÄcoûßåᣇ>ª—»^îz¹[EâºóäùFœm~NŠZztõÑÕGWíùU Û% tmÛ¬=³öÌÚcmoûæï›¿o¾£Î q·ƒ„Õ•P­¦µšÖjú®ûìs¡Ï…>,÷VòrÉË%/;’<ĵã–c÷œà:`ó!&py‰/°>Ló0ÍÃ4%ò–È["¯cÙÅ5jâª;ÇŽ9ù’ý{Ø»sïν;ÅmŠ“"Ò˜³h΢9‹Rê³;j?âJ¬„agÒ7Ë}¿ŠJ|χþúwhRœS111®õ«Ölz¾éù¦çÖF®„+áŠ=û¿ç{Ï÷žoùâå‹—/žÔµ4¯×¼^óz¥žùÙ±µ$®õ7?ÏŒjUû«Ú_Ù2ZqÃmkûÔgPŸA}u%~^,»½ìö²Û¶¿—¸:YÚöìçU‹W-^µ°å“VŸU}VõYëÚ®k»®­¸™¶ÉÄ3eÅíLE¬%žšøÞBƒCƒCƒûI¿õÕ¨¯F%ü7âù¾:Lè0¡Ã™ñgÆŸÿ|Îó9Ïçˆ`ió™Íg6Ÿ±e´ÂŠ+¬8Ruî(âÙ´ÖF²»Íî6»Û¼ß¨ÄS~­Ý¶×r–×å_~|ùñåÇ/¾øb ¸q·xÞöÈÃ#<,¾ÁÄÏ¾í ¶/ؾ 5ÌÏŽ­¥^¯z½êõÊ–ùsìÔ±SÇNÝ?qÿÄý~_âW.Ä5å¿Tú¥Ò/•Ä5ß–7~·$þ¼-ã´ö ]ñôeGAâ™ÓÖ~aE\ÑnûÞı²öÙ†- [F,ˆç|[ÉÁÖ[lM? `&ÀÀ.ï]o),BG[öü&äMÈ›[ö\·XÝbu‹%Åót“ç(9ö8g>‘ùDæK?YúÉÒOlÙóëZ¯k½®e˞ˌ)3¦Ì˜”ŠÛíÙÏšÉk&¯™lËÕŠIñ½ˆë³“✡ѭq·ÆÝú_7v‹w‹w›ypæÁ™ßgÓMg4‘²¡=.§½œörÚ\]suÍÕÕr â½"Ä}¿ýOûtÚ§Ó>MüfÚ;&혴c’íŸ]ü’íO™5÷üì¨ZÁmâ·Ä7…ñvRÛ&Ë›,o²Ü–=OÍ65ÛÔlI÷¤XñŒçìs³ÏÍ>×rÿms¶ÍÙ6ç»îóûªßWý¾ªÕ1pìƒc8s’œ#9âwÄµ‘ˆ§Ñs#h3!&pyÉs#ÓÁwÜ1ñýï©·§Þžzö9ù’c³¸î*éŽóªõ«Ö¯ZŸœŸÝþýX»ÒQ7|ÜðqÃßó«u‹w‹wKqYJ“8ê».Þ¼xóâÍEÄõ®G²Ýëv¯Û½¶¶g‘¦TÛãntû£›µgÙŠ˜ßžko¬¹±æÆš„7÷N(ç œƒr·ÏÏëïï–ø1üñîw¼›ó†óÌÏŽª%¹ \P.hm¢ND,jO}Î87ãÜŒsÖÞE»ýûIø,RK♬ö±?3ü™áÏö6üåÿû·ÕuÔwíëíëíë-®}¿Ñžku®Õ¹VIqdp2yjå©•§Öò³ËÏ.?kÏ÷+®e,¼µðÖÂ[-ßÅÿÿÿöÜVÚÒ¦7}¼éckŸK<Ú¬ó³£æþûoì¿1á5© _âŘóm¸nÛö‰'y[ÛÏù:ç뜯ó®¼ï~ßý¾»µ9°Ï…>ú\x×}*™•ÌJfkãLxE¸3÷'É?žÓL0ÍÚxôÓúiý4]%€9¸¼ÄXbbbõ^âú?ÏUž«u¯W½^õzeí󮯿¾þúúÀ–s?¹ŸÜO&0``——øk™:êW/\½põBkï˜ðI‡ï7æä?J8ÎÏ7=ßô<9s­ŠVEs•8ñ«ZÚÕcW]=bÇÆŽël甸ªÕjò]÷é ÄUªïú¹š÷kÞ¯y¿¤»…¸5m¼Úxµñ²|Ǫ›«n®ºÙ¬ósJÍÒ¶×Ћ;¼RðJÁ+ŽmâO›¾¾ýúöëÛmÙÏíA·Ý”ñqÆÇ[îgÌâ1‹Ç,~¿Z •…ÈŠ‘#+:’üãÙÝfw›Ým¬§þ›úoê¿!0``——ø«xÚ¨cß1æzÌõ˜ëÖÞ±ìwe¿+û=cNþ£äŠÇY<÷4y>»ýûytõÑÕGWß5,Ï ÿ<©ò¤Ê“*ûýÆ~qÓ×”:§Ÿx|âñ g¨É;³ÜâÝâÝ®E]‹º¥>UŸªOÅ iÅÓ‘ƒˆÖÞõ ƒ;wîì<1¶Yç甚¥…7!oBÞ„ˆ§z‹ s~ûùíç·O®Õ´VÓZM¿¥¼ý£=±ïľûì¿ÁrÂ[ [ºPþBù åßo„bþ·¶ç£Ž8ZÀùû“äOÂçm'õ£²€ €\^â ¬÷Ýï»ßwwì;Š«š¬½c±.źëbϘ“ÿ(¹âq×½%ÏgwÔ~ŽŸ:~êø©¤äÄ“;“©ZÜâÝâÝœ¡&áÌJèÙªg«ž­J| ™Od>‘ùÄÃ4Ó<|‡¿ ‹YÅy`u›u~NêZzëýÖû­wôè!ÑCFyxäáFj#µ‘šx¨™ü·÷‹÷‹÷û—ãPû«Ú_ÕþÊ–='¼OCB•U>Vù˜=ǰðÖÂ[ oµz—‚´—Ó^NëüýIòçRþKù/å·6ž¢c‹Ž-:6¦@L àò_`}ÕâU‹W-ûŽâúKkVžZyjÙ3æä?J®xœ³ìͲ7ËÞäùìŽÝO€*cÚŒi3¦uTÌ#®ßÿ,®9N©jI©wq†¸E„»‰d]Ûum×µµ}T¹ºæêš««óÀxTà‘Yç礨¥§Ûžn{ºM<8úüéó§wÔw‘c\Žq9Æ%Eå'|BsB™®eº–éÚ=ß{¾÷|­ýì•kW®]¹fm<âšf{Æ–sPÎA9­ÆüöÌ~Îö^Ç·‹·ÿì€ó#&pyÉ0ˆ}ÚLÛœó†ä É’<Ÿ=é¾µSkO­=µVì! & & Æa]ši ¤y¿±ÛoÄùçGœ·6’v¯Û½n÷ÚöQeÝ–u[Öm΋ñ˜u~vl-‰›„{®ò\å¹Êžc."ÏÐàÐàÐàNK;-í´tc¡…6²åºó÷;’âFÊÖö¹âÀŠ+Xû٩٦f›šÍÚð‡þúw¨=c³ö\aAÜFÛùû“äxz´µñˆhŸ®À€ €\^òßb4áâµ¥BÇ /tÜž1;ø¹Å»Å»¹â- ?ÎÞ5½kz×´䎪4ÇÖó´Ó^L{Q§l²uÊ&~­[RÜ–Ø~;‡îºs¨µ‘TüOÅÿTüí{ó0< ÃÚÞ’ú™Ð©m~vT-‰›<Û~õ¶¸o¯6^m¼fœ›qnÆ9É_ò—ü¯ž¼zòêÉÄß=é*ß§œO9Ÿr–ûl²¼Éò&Ë­í?¤FH–?ÕtFÓMgØÿ-‹kU­}ÞįNvžúOþñˆ#cÿ¯UÀù¸¼ÄXϵ:×ê\+Ǿ£xÞjâ·áµgÌŽ­¸fRÀÉœEÀ`ÿÈUiÉYáÍû5ï×¼ŸíÁpÂëG瓚;>¹ã䎓;¬D<]Õv oîmIÜn—ùÙQó³ýµ$®B.2§Èœ"VoF-®am÷E»/Ú}aY-ÎSùƒ;î8¸£å>³­Î¶:Ûê'{Ÿì}ò_WT‹ïÔÚHÄUËöJ„åÖÞå|óuÎ×qþúOþñˆ#cÿ²àü€ €\^â ¬›žoz¾é¹cßqCÉ %7”´öŽ5ú×è_£¿=cvìh/å¿”ÿRþ¤€“ÿ8·lÒ²IË&öÜQ•–ü•;6vlìØ„bâ#0mÀ´Ól-°ý>zøèá#k#)x¥à•‚Wlß[­¦µšÖjjmoGüŽøñc~vÔül-­Ü½r÷Ê݉G¿»zì걫‡£*3é*ÿ@÷ÝtO<ÐMøçÇN;uìTkÏ—³–ýŸ7hKЖ -ÖFu°õÁÖ[;ý'ÿxÿ6KÏ.=»ôlºJs &py‰/°ÿløgÃ?sìb«µ+¢„„ÿõýÆìØã³éãMoú8©àá/‡¿þÒ±ãÔgPŸA}¬½ãäÀÉ““3Ît¶¥ü„^F¼Œx‘øK­,µ²ÔJ`g˜l­04hhÐРäŒQSóül-5¸ÔàRƒKÖ~vÌâ1‹Ç,NÎãl×®ÝâÝâݬ]qkù4kkW«wkÜ­q·ÆŽú¼ÔFj#ÕÚç7`wþúOþñ옴cÒŽIÖÆ#nëMW `ÀÀ./ñÖ„× 9àÍÜâÝâÝÄÓgí¹Åeâc~ò&äÞÃ×çBŸ }.$ul{¸hûq.Þ¼xóâÍ­½£\P.(tþX„sã†ÿûKÜúÕQßõ¡º‡êªkm„¹[än‘»EÒ}RÇž¹Î³Ï¤ûŒ/¾øb -ûÙ|fó™Íg¬í§Å7-¾iñc?ãõí×·_ß^ö»i7´Ú ³ÎÏö×R@L@L@ŒµŸ=öÁ±Ž}à¨O}ùñåÇ—'uå÷ߨcÿÖfQÉ1×c®Ç\·6Q3ŽÏÀþ8ðGkïµzáê…«:’üãYµ~ÕúUë­'á/]Ñ[¸:``—gË3Pu‹TÉ_ò—ü­½K¦k™®eºv{ÐíA·ÙŸfü™ñööé¶§Ûžns÷q÷q÷IêX8Zàh£ìùžz{êí©gí]ò†ä Éò|Îó9ÏçØ?rGUšµŸê'÷“ûÉÉsåôãO<>Aì*ðß¡‡þjË~îùÞó½ç+®¶6ó8ö3Z»æ8cÚŒi3¦ã1ëül-eŸ›}nö¹Ö~VÌÌŽú¦¿åµ£ªÂØoì7ö'~Åí°ìòËnù_½z ô—7.o\^G}ê_/øzÁ×ÖÆ3kϬ=³ö8Cél3Ò̃3ÎŽ:ÎõßÔSÿ=#ëýÖû­·¸ÊÐÚ»ôÌÑ3GÏŽª¤ÞÏ´Ó^L{aí§¾õÕ¨¯F9jÁ}ßü}ó÷ÍOü*íäïõy¯Ï €-%<2–ÞC‚ÞÀÕ¸¼ 6›ß~~ûùíßï]†4ÒhH£Ä÷¿«Ç®»zزxjíyŠBÉË%/—¼lÏ"¬’YɬdNx]`òÀ ¯"z¿‘'~cÏ„× :j䎪4k?u¸Âá ‡+$þ³¶ßP7q #@K=J÷(Ý£tr±äg‹[òÔÊS+O-kã9±ïľûlß[ôè!ÑCÿŒËn/»½ìöûöu­×µ^תS¶NÙ:e­í?áõ¦fŸí¯¥!5BjXûÙ‰ '6œØÐžšW`‹0ÞQ3¼-¬Å‡Ö®MN­=µöÔZÇŽäU‹W-^µÈ1.Ǹã,ß1áñwæþ$ùÇc­2Å‘3]%€9¸<ÛqÝíÒO–~²ô[ö,CðüÁóÏÄ÷,"ÛÇ,®EK|Ÿí¾h÷E»/Þu™X<á/Ûêl«³­¶ei>)‚qœ—Ÿ]~vùYÛóàŽƒ;î˜øž¿Ùôͦo69¶B’|?nñnñnâ&¨Ö~¶Èœ"sŠÌy¿H@!¶çQ?Gýõsr>59ùßÅÙâ–Ä¿÷ý÷OÜ?ñ]÷Ùþïö·ÿÛÚ>3>Îø8ã?O„µgË>¤þAú„sŽ¥Ò³KÏ.=û]ŸPîŠó³ýµdífÈ çdqSåwÕî6»ÛìnS¬K±.źØ~lůí¯gñ«E¶¿¯ˆ“îüªÕ´VÓZM­ÝîûÙªg«ž­ræþ$9G"ކµ_ {¿sÎŒ˜Àåex/_ßûúÞ×÷¶/ؾ`û±8þbà‹/þ™áÏ f!DpçàÎÁßxÖãÅK\,aû’îÆB m,dË8Þró@÷Ýt×~‰Å\ñ¾Kc—Æ.µv5ØÊÝ+w¯ÜÔp™1eÆ”cùïþÞð÷†¿ï˜´cÒŽI ó¥ü—ò_Ê¿Øc±Çbk?›P>÷|îùÜït½ÓõN×d nºñ%¾‡„· ^½põÂÕ Ï×9_ç|'{Ÿì}²÷eÄˈ——_~|ùñÞ{wîÝ9fñ˜Åc{®ò\å¹*ñ=‹È0ùXò¿‹³À"4µ6žŸ{þÜóçžï:¶ûî÷Ýï»Û2{ˆ›~Ïë5¯×¼^§çžwzž¨%ñìa?Oœ89Pœ_‰G³¿gú=Óï™{Ö8çül-ku®Õ¹Vÿã|OÕ«©©‰³[üJ‡ø–ÅÍ¢gÿ2û—Ù¿T|[ñmÅ·‰RkÿµéŒ¦3šÎÿlϳxEüŸø ®šqnƹç’îìß{|ïñ½ÿ•gîO’s$ ÈÒ„:LèÀÍŸÌ„˜Àå%¾À*B² I@„"[¢·Do‰~çeS·x·x·ê³ªÏª>+C’϶å(ÙœE ›ŸBÜš2áÓm[!ɳºÔOW?]ýt’‘¸O\ß™ü7ÍNþwq¶¸Á¥—\²6žVÕ[UoUýýÆvìƒcû ©ëG„”ïT»ðüì Z²åÆÔöÈÕ5W×\]7}¼éãM'~ûwÇžÝwkÜ­±-•ssî͹7ç&ÝÙ'~­Áڦߙ~gú” 5gFJx4,fü™ñÀfBL àòlY`½aô†ÑµìžsPÎA9ývó·›¿Ý´gäÕþ«ö_µ ˆ<Ž>nø¸á o›Ô°ø3úiý´~ÚQŸÅÝÇÝÇÝGò—ü%ÿ¤®äÙÏó9Ïç<Ÿ“<Ño#µ‘ÚH}tõÑÕGWSêšéäg €‡6ü³áŸ%>ªÈŠ‘#+¾ßþÏ>;øìनqömz¾éù¦ç©s~¶¿–Þz¿õ~ëÝ6gÛœms:öÛ×v'|¶îúúë믯oûì9>â6Ô‰ï_ü²Kòœe%/—¼\ò²åÚxµñjãE,$< êz N' `>ÀÀ.ÏöVq›M?7?7?·÷[v×ó‰u:jWÜ”5áUkï76¿x¿x¿xk7½ÌÝ"±—cóµ¨kQ×¢ì‰7š,o²¼ÉrG]=æ<ð?ÜâÝâÿ©@ïšÞ5½k:*ª§Bž yÄU ÇœRG,ùßÅÙà %7”ÜP2ñQMª<©ò¤Êö¼KìØØ±±cÆŸö\5ÛñhÇ£ÞXscÍ5Éyö9Ûüœ终ÕßïÓ:^èx¡ã Æ- ·bþ¯‘¸Å»Å»ÕSÿMý7I‹›T'þYÄMì“ç¼q~Äùç-ÇðöøÎߟ$!·x·x·„Oš·¼S×þ˜00€Ë{×V±x-þë7›¾Ùôͦ²ß•ý®ìw¯¼RðJÖmY·eÝ&b¹j+ª­¨¶B,&¼ÕdÒ}–„‘§xj£‰ˆiÅØŠ7/Þ¼xó°?Ãþ ûóÛ"ßù¶ˆx"l˜ÁÙ¾>ú\ès¡ÒýJ÷+ÝËЖÇY,âÿÑíntKE‹Ñ ¾µ„WÀ£ <ʲ7ËÞ,{³­Î¶:ÛjñLhqý_»/Ú}Ñî‹iŸNûtÚ§ oàÉR¾sÎQÉó^ ¡$\ W•òÅË/_\œw¢–ÄůŒˆÛPÏY4gÑœEIqÃ^3ÍÏö{ºíé¶§Û>™Ûÿÿÿâߎø¦Ä·&fø]=võØÕC<9ñϘðψ_ÏëÍŸ>úüé«n®º¹êæîÕºWë^M\;nÏg±vE©¸i¿¨Ãä9ªâÉÐÖˆûR¤æùÇØoì7ö[»M·c¡ ΃˜Àå9ö g¸jÐöÏh¦oJNêÚµ”üµ”æggžá“䈹ŻŻùzûzûz[î_\AžüÇÐÚó¶{”îQºGéÔ5|SⓊOð8„‡‡sí/@j@L àò€ùIçé¶§ÛžnóàÿÀÿå÷X¾xùâå‹;ÏhÕÔÔ,Ç9zÃè £7¤†Ú³xÌâ1‹-€úT}ª>åìH € €\0?ÃâöÎÑC¢‡D¹ÛònË»-ŸÏy>çùœCuÕ=T·f§šjv²ö=n>³ùÌæ3Îöv¸Øáb‡‹ Ç™§VžZyj™»öî»ßw¿ïžðoÑš\A&IDAT“ áJ¸®Pç©00€Ë#`ægØãÏ fø3û*=»ôìÒ³ó–·Ýt{å˜ðüÁóO³~âÓ%ü¼î>î>î>wºÞéz§+ç@êAL àò€ùöx׸ðÖÂ[ o=_ç|óuœùÛ\3yÍä5“Ž<ǸãrŒ3_Šˆ7ç œƒrþWìýsÏŸ{þÜ“3 µ!&py Àü {Øû¹ù¹ù¹Z{jí©µ®ò=vÑeD— ?Å€i¦ ˜f¦oð»%ß-ùnIÂÏØ5¼kx×pj u"&pyÃ_&öâøó3÷dOöö=Ò÷Hß#"âÍ>7ûÜìs½z ôX?]ýtõÓ-»½ìö²ÛoBÞ„¼ q­_<áXŒ948484¸ò±ÊÇ*3Ç/"<ºúè꣫ ?‘ø¾~j* µ!&ø\± ¸"``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`Àÿ0¢l~íK¡×þzE§Ðë@ ½&ûëP ½§ÐëH ½Ž¦Ðë÷zK¡WL ½Ž§ÐëD ½N&ûëT ½N§ÐëL ½Î¦ÐëzK¡×ùz]H¡×Åz]J¡×Ÿ)ôºœì¯+)ôºšB¯k)ôºžB¯)ôº™B¯[)ôºB¯;)ôº›B¯¿Rèõw ½î%ûë~ ½¤Ðëa ½¥Ðëq ½ž¤Ðëi ½ž¥Ðëy ½bSèõ"…^/Sèõ*…^¯“ýõ&…^oSè—B¯ø”yíM“B¯´)ôú …^&Õ‹L‹L´°À õ0müW½¿êýUÏØ›d¯¨zñLbžFÌÓˆÿiÄ©ç9Ä©ç Ä©çÙÃ'Sè•zž=œzž:œzž7œzž4Ì3†Í÷tá”zÆpêyº0Ïæ‰Âçqÿãu»n×¥k>}z÷¼z=óÈ0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0å•â+Å¥{c:Åt*±?ë|ֹĽȱÈQ¹;Tñ¯GñÚ¯Sî ̱s,pÆrÆÊG Èг Ï.(§Å'Ä'”Ä~UðUAá-®Y\Ë\»víÚµPÏ:Ÿ}¹4réó×Ò¯¥—^Q+‹¹ï@9Š•ÅJ¥x½ˆ×ŽxiëU)^ãâõ.^ûâàÆ˜c™cæXàŒåŒ}C 輂؂XåÂ询¿*ö8$ðI¸¶ÆÄW­~~SÝSÝKÛðsÄkA¼.ªêU)Îq>ˆ³‚Ÿ €9–9`ŽÎXÎX@[T_e¿¿óû;%}¹3¨ZÀ€Nº½ÿö~E¯ùÉó“ –WÕ°¨I44nþ¬Û³nJw~j7Ñç¢ç¥üªç†8Cø©˜c™cæXàŒåŒ*‚ÒD èŒ;«î¬RXyøxø<ëûzÃ\‹õïfr{fh=yõ‹Bß²±¹ôK̰·æ&žþÕñëÙé§ÛûFG_±öÝY`Ý6èDÀÐ>_oûaèÆE1†%ÃZ†µ,ZYèXè¨ ä§ yý,z»"¯Ž¡ûw1 êå»í‡Ëψ¾²ÞÉ?ôTà×ùFŸþ5üúìô_b6yÍMŒ²ùry@Ðê9¾OCßw{æà=¹E¦½²½Þ?Wœ'âlá§ ò[wM£Ç¶Ú1 ý¿]›`ðx†Yú_ÝšÏ7»äÒý³Eó/ZwïµðØÅyF.s®^zÖ%È+îʇþ=jÂͲL&ey3Ç•1ÇLhsª–Õª™†›?½%¸çâKnÃcf¸zÞ™2åÒdÛÈË“3Ü ¶½ïãàÜt­Ãü¶vÎþö«×õünÄ´Ïhz#ós,ÎXõ»‚E1†b/'vtb_'vwb'vzb¿'v}bï'v€œ±À›A i"$­ ¸ X9ïóFŸ7*tÒ|PkÕ¡Á™&ëLúm)Âù­I‡”J//++mÕ’ð©ïÿýƒ f=˜ík<"j龜’Ç~>ösñ&e¡²Ÿ1tï79e¡R)zøU;¶¯«eÔÞß?Ø’1ëAIø¹vƒ÷+•qqVVÚª—"¢¦M:´ÎdÎ ã[uhv=ÓDókçŒ8sø!ªjŽ­[ÐÄôáךOxïêùžÖ_¥öè×oûö¸8mUóÐmëã‡w?´¸ÿÅzmmÛg\cŽs¬&µßr÷ö»>žü×®û7—Þ¹øn¯?._îÙS[uÆÙã½ìÛ-šü]#Ëæw»3ÇЧ]ñˆ¨½bÏ&vnÚÝã‰Ý ØŠ!g, ]À&`@¢Î7<ß°d«æY¡Ù´-=³ç¹ÿ>ò¦vÇDÍküÄÑݼKr;Ÿh¢É5üsäŸOä´Èi¡Hæ'é½*úV“wʵix¢IüÄS½Kµôj^³çýòËÈ›A†Ó?ÝÒSóóDœ?üÄofŽíPê4êú’>C6vI,ÒnÜ«y5vvá\ËFfÖww3Ç‚9¶û»ßŽöòº½÷Úxwí½š×ùÑg³2œág±ÁŒ9€¼vO4;´ªÚà‰ý¡Ø%rÆG i"$D¨Tfo ÞXx@“Ák—¹õÖÏ/™2®sUŒêj¦Ã„t§`?/“Z{¬4ù^bLcLKèH“èOM:ÙÏk\Ü«L‡èŸœ‚«*ôUW ŽÄ ³ë¼Ë<0öó‹š|/â,ç=ÐîÛå¬÷Ú?Ò;ÝòuB½ª }ÕÕÞvëj$Å´íj7:#„9ú3ÇZøMŒÝ¹mî€ÓŸ 1®ªÐW]ýÏêä\³ïǘ~5hQ:s,ÝܘÔÚóbW&µ žØ+Š#g,ðz€!MÀ€$<é÷¤ŸÒÒÎÙÎùɱòǬÕÓ-Z†Ö,žêyÐf¥ÔFFuõ–Ãxaí>Î9ãZþw·9usjÑ ¥B© 'PåJ…R)z²ü¾ÖβÇ×[‡Ö¸xH-ôUW‹§Æö°Y¹zºï£Ðšåwâ\gM¨ÈÛq¢ëÏ×ÜÌ]¿I_&µÐW]íòM²GóÉ=g½Ë ùͱ†ƒ¼«ûÙØßZ .µÐW]]:<íÝÞçìFû[¯cŽ í]ÁÇ9g\ÅNLW6xbß(vœ±€æ€!MÀ@»ßç~Åöf‘Í"s÷¨ªzä·˜~ÙûfƒqA®Eº22ª«Ñ¾ö“ý3Ê"矜² @‘¦HS> CP¿Í¥)Ò”D–߫Ѿë«ûgèJè«®ÞlðÓ×¢ù]Ú]öV÷Š3JœWt@ó9¶aaûKÙ{5]ýiòq] }ÕU#ë9[/WcŽ…<æØ Yá3fìÓ•ÐW]õ³91Èáÿ>24Ƚøs,)í ì'ûgèúOì!ÅN’3(0¤‰¨2Y~Y~Š9åŒ_¤›^]‘ïõžõ{º>8–­÷ ÝmFï“ÓºZªŸºïÝ+Î+îÙ:Å,Å,e&Ý‚7ôëÜ,Å,e¦è=uÙ'§[Xªß}ß:¯ëÑoÙªÈ?_dýÞé3Ö†W/ÿ\gÝ̱åÿûâc‡±c®›÷û0B÷Tף߲µO ““º4öIûC™c¡[sl»€'“6Îo³ÏÚH×£ßÔ·/šV·ÙûÙöu¹Ì±ªnWкZªŸØwÉiƒ'v’b?É ¨C i"ª@Žqޱ"åümÁ{ökýWÉidT­%}§¾=ø‰ßl“º{ú«»³ògå¼§<¦<¦,¦sP‰Ž))‹E¿©}fÏìq©{ú—ôýcð9E¿ª5úÞzÿUåŸQâ£q€9VµŸs÷Ò9…¾ªÕG¿e«çãï縯eŽ ½]AïÔíìîDûLÎX€ÒD Tº«yWóJÕ~\LÔ›Œ€¥ŒŒe«âØÔÇÖ†Ãm;:Ÿ^©zÇ V¬Î;_:¶t¬2îÂëý#zIµÇ†Ûlzz¥âØùxkC¢ß²5jÄ—ÁKÕf⬣»@æXƒ¼Ó³}ÿñl`eÄŸq¥Í¿1Ý™y™9o~Žíj`åök—e™—bM‰~ËVçVkÇÌoÆ  b»‚ŽÎ§WŠ»»²Uì69c¡Ï€µåÈG~(ž,îáç»?ß]èþhð£ÁŠ<îÌë!*‘ÂC᡼k´ÕhkÞK>.Ïw ñö¨FŒ‰êjž¯Ç8‡{êÆÇð/ÿ,:@áõˆþQ×]y¾§º9Ü#îUW}ºÞj¤zßÄY'Î=z ä=Ƕyf™qœ¸W]í»#ljÂæX¼ù9vQøþ§‰{ÕÕ~Yîi‘̱^wWà1Îáû:uUì99c¡Ÿ€+®Ô±ÔQ©ö‘:„Á¯‡¨DQaQaϪ;¶ ŽLa×™±üš°ô>oµ¼s/ò^¤b3͉žQ×Q û#§{×&â-¿‰q°ë¬öS ¢ž¤Ó@Þs¬Ù·[¾N¨GÐ[~5YÞìÂFæX¼™9Ö;`_Þ¸ñD¼å×ÿ¬NÎ5ûž9À«ï Fïó®ÍŽ®ü*öœœ±ÐOÀWö½¿åWÂ`Í•â飧”ãÔRqi£J|Ü 5¯þÓMív)^²æhåÝêY(ý͉žQí%ÿé—îRîj^ãÒv<÷qWwʉ3~ùÍ±ÆÆËŠ/Ü ÜÕ¼¶ãPr3‚9•7ÇZ:zžÿ&—pWóê±×s|s,Ív¦v»ìå4¯bçÉ }C\q"Ðá®&10a°&€J±¹ÆæEþªGÒ¤y][ÞÊ8øª5¿¾G˜ÃjÙï3Çø_»0‡yìå^µŠý'g,ô°vk 0 e…Æ…ÆÊuÇPærœ&1¾^ìnÝ'hê]õYè³ðÙ>zå}¢Ú?‘Ý—­#Ê}½šùEôu§IêNLUdÓP%zC]çÙžýʶQnEêìõ®®QTï­8é@Ðõ9¶ÍEÛÞ— q+RÍžl]‘9Úc—8¤ZöN”[‘Úo½û€]ÿfŽ8c_¶+˜rß¶»¸ŠT± 包> ~3ƒ_0 =ϕϕÊNfÌòUšŒ ã \Ž3üU¼†ÚXú¬9¥z‡¿yòÍ“¢¿hC¨½¡Ú3¡6þ×Öœ"¾­x͸p¨«ËqÕ;,ÎCq6twŽí53dDòkN±«x»PÎXèà70XÀ€ÖÜž~{ºÂXõX±hóQhÒÆ>mÕœð‰kF¸¨ÞçfÍ,r#•‰ÊD%‹KT&*KDo¨öLNø Ï.Ä·ÚªmŒï$ÍQ½Ïâl¤@çØ&­ºl»÷Á­¶jŸC›ü#™cQñ9ÖÿxlЧŸßj«v4oÏ pÆþ½+˜¸f„ û7mU±包¼W-Â`u€­ kÖºh¥êQ}Ð~±ÿA)b~0oÝ‹gëþ9Ôå777éC×u(Œ1R½ÛwkÞ­©°§!ˆ~Pí“¡ëúÅI-@=u7ÜØ×wJĈ¸ƒãº¶èèråJã/þxÿ~Ç ¶Æ7¾ÚÛâ~Ì̯Îî·ysAPLg;;©]ôÁõ}üªÞmq6Ò ‹s¬ÑÈ9¿_*‘ÄG(Çm­ÿ´c—’kkšwïéeØ`ÉGFÖÖ¹Ù æÑÂÆïw2¼Ôò~¿wÝ¿[ÜøbK)ÇÀͲLܳ¼™cñzs¬ç@ëSuu%X]2>Õ¥ïè§ôJ8õÅ£‘Þ:fã#µët«¾kÆæX€3V욤°õ*1›úöàüzêÌ{8Pó0£lÍ ïä$…ïEìE9c!oÀÒA\0 5í ÚçQ=>òûzìvê߬éUË*×̦õ) Ë^³ôà£Íì#ý½Tïö.ó]æÏ‡ÒD?¨öÉÑfëƒý½$ÖŒ«e•;;Ûu{Ô¨Wýu.Á(òCooéÀù}O%:¼äÝùâl¤@çØ¾çÂn%ÄTm\Úó³/¤Öløa›¬iþoÉÖ®gÝNëW{{­¸ÇR €¦Î}çÒæX¼ÞëÖ+¼xF'yÂî ÷•‘±ªß…Ô®s‘OBÏþ˜cÎX±k’ÂÖëj?ׯ¿^ô+µXìE9c!oÀÒDL hÁ“-O¶(«}v´ºŸº[ÊÑoàñ¾Ë·æ«^¹ôàG &Y:VS½r[_[ß'{èI¢TûäÑ‚_¯;V“BhÒÐÏoÓ¦ü Էí«Ý¾v_d³zuâG‘g½~ï ^9qfLØ£fM'd­-ûççž|wX±tbà>;ºMHÝ­zÏÅ9IO€®Ì±-;ݹ?¶jƒRóŒˆÅñ ›\6¼}¯î‹k ¯söñÒ’¿ukÁÆéÍÿènòv`à…ÞF çZ\ºÖÚÐòúí¢ÚýjïxWö{‘ZÜ·vhx¢3s,^oŽ]°ý|Ãu¤ýŽZóÕü?Ô­Õ¤yÍíÆ÷HJbŽô{W0ÉÒ±š$Þö°Ø>Ö¿mÙk[~@Ëõæ¡«-W¬Y£I}rx²‰½½töxbGÊ ¹"–>ý ƒ €-HQ¤(J›«¡!–+Ö„Ha̺çíþ¯Ñ£¿Ÿic°ü¥E}šGDt¿Ù¢zºº£Mž#Räåi5¤‘WÝøì#ª×_Z£´†2™ÎÔg¢T{£‘Wƒäì#Ê¢¸³VCª6(-œ“e»ý£Ü–ÿ¾Ó[\›ÉAƒå—:‹@÷ïWâÿÿUâ¿/ûUêþdUÕÐõׄ¨ÞyqNÒ™ +sì'í&úóYÕ¥]=|S/ŸøÇ_“š2måcÄÿªîŠÿ¦ýÖŠ_‹ÿÜг]ìË’û hóí[ãâë,¨¿âQs,4Ÿcë­mh˜Ý+`ÉåÔž}¥ýÎìyäãQü«ñÝÒ­xØ¥·‚3Çúº+¨Ÿ}D욤°õq¯¸¶Îc›ö¾¤3û:5UìH9c!WÀºEÂ``@ "Ò#ÒŸ¿äݨÉGÇ$zfIaÌÚ‘nuì‹/4?Îte|œ=ËxDÔ>Õë¿oyßR±ƒÎÔg¢T{cö,×þQû¤”›¾aÃüùe¯í§Ë!Ó¬I [ö«>=Õ{HÜéÀÉG¿MðÌR½ó✤3@WæX“öyZTmPÚaôhëï‰ë©Óò¯œš|¤s¯í!’^|/eÞ ,µ¸M¢mÛŒḵÐ|ŽíàÞnWG)G¿‹[%βøW›w»N¹ðí‹Iu½ÏÏáu%öyúã—·˜c}݈Ú'}׬z$ìÝ+®ÍñzÇÜS>º‹)g,äŠXwÉ; &´À«W»gA/ùè˜ØI†'IaÌJ‹k;¹ÖšêѳU«îÀ{/ñ]6MõúãwÄï(9Kgê3Ѫ½±÷òÊ_–M“BPºÅrñéU¦¯÷aÎñ;‡ú4_Õ̹qæ_Iç}Àbk6ü%'ÎI:teŽíÛ*4.Ѿj#Òƒ7Ü ¬ïÕâLÎì–Ì;Ý¡I”Û;z½kÒÌ—„g € Íg¦G1ÇBó9Ö9}Ý×ss¤›6Ùû@ßïW›mqå÷AK¤îÝNWàgϱLcŽôuW0ÄwÙ4éì»lÇth{öÅu.˜dº{—ƒîF¿/å;i»È°<È/ &´ [B·„üš/ù7ƒ©®ƒKÓÝ8%ÅÉÔ³•êõï¹»çîóÝt¦>=ð’Jùî{ÏVRJÆ®é´h‘·Çè?þ8ë—ŽÿÝÞW}÷p”.^^&¸ÔàܦÁ/y–¤8'éLЕ9Öüà¶ìø¾’ûðd ê'Ž/ý™Rö}ÃÒ €M\VlMÍeŽ…æsì´…<œ;H3:àûyuqM'µip³ñ¼!¿¨[½¬ÓÅŽ¦2Çúº+p2õl%ÍM]ج½Bz‹·pô/m38±msÛúßüenØ¥™ÕŸ+œ'wþõxˆjƒö®\©¬éUË*Wš<±#包\Ë<Â`` RŽøF›ê^ËÞ¤+1ªîÀYfnFcn«^ÿÊ=+÷òÑyzMô€jod™õs[:˜¬úÁΚüÉ‘'%ž|ñ`¿„ñM¾WJíIÀ65ÈÏÞô²³ õ9¶ÎòúÛ•~Ðkêü8e¤ñ…åyƵœÓôrÇ6]l:ÜšPö{éüijèÊ2iÀ½¬ OŠ`Ž…æsìÜŸÎô¶Y(µÐÔË-ªpB¯ºöõŠs¬ëxÕõ~øëäs»N®W6èÕ•XÔzß5™Ý€9п]›Ñ˜ÛRØtåÿîñ§}QÙkkømÝÀ4 ¶o{;f|¦³³4÷xb_Ê }ø­ŠXNt7 &*åˆ7ÿ uRr>pe×¼©U¯–Ç,g%t¦>= Úy!§¬.J3þï¬írnÓàÁ GN*Œ|ñî ïÆî­¿säÈì±û¥vµæô蟜Ï/u ‹slã£ÇÞ{.ý¸ÁÕ6#X« ° >ô™òÇ)_ßÝa n2ÇBó9vQ“øïúGI'(õ/Ž}òiëõ;ÄþyH\áЦ ¶¬rVxu+nhð˜9п]ÇT‡‹’xVîÛcVN}ɧxùu{Àeï€!}–]æ@¦ÝÈŦYuŸ²l·j{?ôSK’ïûRÎXèÃoUÀr¥[að¿¤ó’ RåT :î?u¸²kAÌ”±v­é7ªæµ &ÆÅ®µnE¿â‰¿“{­Žÿèï¿ÿÛÀôÁ€“ï†ýâwNjïýÕÑ``Ü©{ô•J¥êbm~¾W—ÌCºÿãCs$_<(Íë7û~Ë΄:ôUóúŸMÉ ³­’ø¨ä-—¬L÷uͱþñxž¸¶îÛì&]PërÍž¹ª^·à®aÖ-N,¢ß¨TýÛLk×Z ›®cÓÚüýȧî7[TO7ˆfs3  ìOõ«~ï°p^ÂKb`‰íñľ”~£R©úYüpä‡âÉÀTªÎ×±C;>žN\ÙµÈaÊÛêôUóZäpvmu釾ÝßÀÍm\/»?×*{ý¦ KÒÒŒ"?ôö–fô+êØ¡6㎧ÓoT*•ª‹µe'³%wÃt剿æ+¶9Å»õR¬­—ü®Ñ÷sS.mÞ½§C–aÙï¨G÷ÿ$¥ý ¹øéÖõñiôUóºÄ1Õª¯·"R›Ú~!ë_<ÁºåÍNÙégŽŒ³£.ÜÕ­¸»rhè\úJÕ¿]Á”¶Õ¥¼µ{Õýž«uߟ–Ú÷"ö¥ô•JÕÏú|ßó}Ê=ÀTªÎWÞÌ;€©Ò¬R~ðsçÿº 2=$<·Ááú <×ܺVó wCÖTÿ¬ëÆì"¯³‘CžJ9úåÀT*•ªëUWÞ¬®Šï¢ÅàÞÇ3íË~_¼˜ªëU ïžšÕuB~ígu¶?ò¯gÜà«ìäiu~Œr¾P~¬«[0ï¦RõuW •wW¤î¯ok½äŃҌ”ÍGü±œwS©Tªtª½X|:•*ªúbæÀUû `''‡§þt¦>WѪ½!Íg_í·?eÂa“ƒË/u×YïB½·\ÒhÊ£ísO¾;¬Xú¡¯&Ϧ3©T*Uús¬®<X“XÔú}ZtËÙ$µXÝ3€™c©êæX)<xÌUÞ ÿ«ÝEØü®1©Ö5¥ÿ `:“J•û®@*ÏÖÖóƒ~[7ðÁ©mùÔ=˜Î¤Êï·ªÐj¡ÕЦrgäW£D/(öõzÛëíg+4Ÿxşףgò~Ì{£Mu¯eo"®ìšeæf4æ¶êõ¯Ü³rOá:SŸ‰Pí,³£>cnK'(½™wp©«ë'SÛí»ÞC\¡øÏÿ Þ¶mÆ ñgt+úµÑ¦ùÙ›^v¶¤>ÇÖY^û£³UŽöÙ¶©gâá²WÕù‰gÑ•ešÿ?è{!Q|mÝÿ6ŽxxJjpïë“"˜c¡ù;÷§3½mÊ/–Ú{‚ë}×pdvæX@ÿvnFcnKaÓuꮣ¯ïÉ'Ãùµ¸™7îWWÍ¿ö`ìÐê‹^|†A—!M×_½*µ-ŸØ—rÆB~«a!wFDpûùîÏwºk>ߊ?ÿæCß²€-è–Ð-!¿¦ê‹¼Ô`ªëàÁÀ•WSRœL=[©^ÿž»{î>ßMgê3Ѫ½‘’òÝ÷ž­¤”šÙtß“²P\Û§§z‰›ó°å‰DÇR] }E-58·ið`Õ;/ÎI:teŽ5?¸-;¾¯tÞÅûQÃAÇn[hþµÿorË?ÍÄ×6ûÎ8,k«Ô`—[Ss™c¡ù;máçUŽ.ê£ÿÜÙo³qŒÑ¼–ý.Üûæ[Ÿ=ªÿ«¢ße..î5•9Ð×]“©g+I¼G¶Oë[ÉÉ⪶o«ù×ÎÎ6^5J|­Ço]Ã’ΖOìH9c!WÀò£»¡oYÀ€xµój÷,Hõÿ(vÒ„áIÀ•W÷^â»lšêõÇïˆßQr–ÎÔg¢T{cïå•¿,›&… ô×6›-ç¼øë uÞªÿxÐõÖ†Œ¯»Ñ¯¨bk6<é%uÒΫݳ :teŽíÛ*4.Ñ^:píð:g/í²$?mÒÿxg­ó:Ó¤Ÿëÿ_óm9ÇÅ×vè8êðÎR € Íg¦G1ÇBó9Ö9}Ý×ss¤üô\Mž,B_i^炳çÇX¦1Çúº+â»lš4wtšlêN¾;|“ß¹:yµÏ< þÌKf7“ÎOìH9c!WÀò з,`@ "Ò#ÒŸWS}ñ'“è™E\yuö,ãQûT¯ÿ¾å}K§×D¨öÆìY®ý£öI!(ü㈚‡>xñ®¦Ü–ÿ¾ÓûÅ3BV/¨·fÍ«VéÀÉG¿MðÌR½ó✤3@WæX“öyZTmDÚ3eeï”ßëÜlóhaÙkk›`o“Q«ëz?Ë›ÅG=µœÓôrÇ£G[ßx¯ì>‹§ÿŠ”–ÚSŠÛ$ڶ͸Æ ÍçØ~îívu$®¼êóôÇ.o1Çúº+0µO ›®Ü[‡ ûxSãÔ›&/þÊx^í3¦DÙwèØP÷…)qö£ÎûœÚ×}Ȇe§YuŸ²lÙèwò]óÿÞ6HèùÄGÇ$²+€|ë.ù…¾eZ¢HQ”6ÉÃÞC,W¬ !®”Zäåi5¤‘WÝøì#/ùðí¥5”Ét¦>=ð’çs{5HÎ>¢,Š;k5¤jƒÒþ¥=Ûjë©iÒ €CCÔ_ò’ÔR¤(J›Ó™ +sì'í&úó™‚ÒÏñ k\óa¦æÿflÒ²Kø½ïz6ÊM+µ÷þö3ß¾5.¾Î‚ú+%0ÇBó9¶ÞÚ††Ù½–\NíÙ—¸2ê°Ko-fŽôuWP7>ûˆØ5IgSgзiÎÕnšÏ?¯Þ=R£pþ”pÛíRÛã‰)g,äŠX·È;ô-‹Ђ'[žlQ¾ä9}v´ºŸº›¸R>:fÁ$KÇ—¼[ÅÖ×Ö÷Éz‚臗|<û‚_¯;V«Ú ´u­æî†È/î³£Û„Ô—9Úl}°¿—î>gWš5¿ï©DÕ»-ÎFºtqŽí{.ìVBŒÔbàòc]i†¾e«ÑÔ¹ï\zÀ‹×›cÝz…Ï褋-åºÈ'¡gÿ̱g¬Ø5éâ¾NÊÛ<±包¼K“~†¾eZÖ:¬uÑJÕ##ú ýbÿƒºëJº®CaŒ‘êݾ[ónM…=ÝAôƒjŸ ]×ß(ƈÈV»5úàú>þUï¶8éFÐÅ9Öhäœß/•H9LÕÅÚ,ËÄ=Ë›9¯7Çx´>U—ÈV»Õ­Zø® ˜cÎX±kbç¦Ý*ö¢œ±7`é ô-‹КÛÓoOW«m> MšÃÀ§­š>q͈—üÍÁfÍ,r#•‰ÊDe ݈•‰ÊѪ=“~Âs„ Á­¶ªEã;IsTï³8iFÐÅ9¶I«.Ûî}Gd«­ÚçÐ&ÿÄHæXT|Žõ?ôéç·ÚªMÄÛ3Çœ±ï &®áÂþM[UìE9c!oÀU‹ÐW`@{ž+Ÿ+•Ì:™åª(Ƹgì«x µ±ôYsJõóä›'EцP%zCµgBmü¯­9Ep[ñšqáPW—ãªwXœ‡âlèîÛkfȈäyÄ·¯Ÿ4šØôê[̱¨ø;lÍÒÝA n+^?kùëÑ¡˜cÎØî ,}ÖœbÿVñ*v¡œ±ÐÀo¡¯&€-û±óŸ—¨.³×»Em`ø«H-²rß¶†ºãûaêÃTE6U¢7ÔuN‘íÙ¯lkâV¤Î^ïêµAõÞŠó]ŸcÛ\´íq™ø¶"ÕìÉÖ5ñ™c¡Ý9v‰Cªeß鄸©ýÖ»ØõoæX€3öe»‚)÷mk°‹«H»PÎXèà7ƒÐ÷UZVh\h¬ PwÜd~1!Çi#àëÕÈîÖ}‚Ö©ÞUŸ…> Ÿí£÷P>Ñ'ªýÙ}yAÐ:BÜ׫™_D_wš¤îÄç!½ò˜c{Yg˜tœ(÷õj—õ^®¼Å íα£{.ÞMˆûzuî¸Ó;‡TgŽ ~W`Ý'h»¸×«bÿÉ ýA\y}+‚¨›kl®Qä¯zôLš×µÕá­ ‚¯Zóë{„9ÌSw ßŒ¹£ø€®CùDŸ¨ë¢üú§ö;Ì#Ð}Õ:iÞðᇷªÞOqÒu §9¶u ËïïT'Ê}ÕÚ÷TØù„8æXTÞ»È)¡AÿO t_µš¦Zöãû̱þ×®À#Ìa{¹W­bÿÉ ýA¬]„¾ÚB TЧž>RŽSwÅ¥*ñqgÔ¼úO7µÛ¥P½“Þ­¼[= ¥ß 9Ñ3ª½ä?}âÒ] ]Ík\ÚŽç>j‡0qÒo ¿9ÖØxYñ…ĺš×vcJnF0Ç¢òæXKGÏóßäèj^½"özŽObŽ Ù®ÀÔn—‚½œæUì<9c¡o€+ŽÐ·2•(*,*ìùAuÇSÁ‘)#ì:3–_öÞç][Ý=¼y/R±™NƒæDϨ먄ý‘Ó½kî–_ ŽÄ8ØuVwŹG§€¼çX³o·|Pp·üj²¼Ù…̱x3s¬wÀ¾¼qã w˯ÿYœkö=s,€WߌÞç]›]ùUì99c¡Ÿ€+îÈG~(žLè«]À@%Rx(<”w¶mÍ+V=ª|ojÄ€¨®æùzŒs¸§î ÿ2üË¢ô^èuÝ•ç{ª›Ã=‚^uÕw ëݨFª÷MœuâÜ£Ç@Þsl›g¶‘<XýÇ>p‡9o~Ž]T#>¤ÿi‚^uµ_–{Zd s,€×ÝxŒs¸Ç¾N]{NÎXè'àŠ+u,uT¦új0P鮿]Í+Wû7àFØd,eL,[Ǧ>¶6nÛÑùôJÕ;f°Ú`uÞùÒ±¥c•it^s¤[:V™&zIµÇ†Ûlzz¥âØùxkCâÞ²5jÄ—ÁKÕf⬣»@æXƒ¼Ó³ˆ{ËVseÄŸq¥Í¿1Ý™y™9o~Žíj`åök—e™—bM‰{ËVçVkÇÌoÆ  b»‚ŽÎ§WŠ»»²Uì69c¡Ï€µ¥ìû€ }+ŽxC"ÎEœ{þžºa(vÈÈ=Ó3E]Ú£wêvu÷*£SF'Em: 'zI]§-íá™°Ý€ÐWÔØ!&Ó3ÕÝ+q¾ÑQ ŸslK.¦ùýŠÚ~×È&760Ç¢jçØA«¦Ï ‹"ôÕóñ÷sÜ×2ÇÐÞ® wêvvw¢Š}&g,@ i"Þ”$e’²ÄÍÛÍûi±ºÁ(¥Ðiç;ú<8®}Úæ†`u÷çðÉÃ'‹GÓJÐ.ÑWêºníÓ9?mÖçè7¥ð»XÏwÔÝq¦‰ó^}žcM&®8œš­ÏÑo§Úã¯_McŽ…tæXû÷õ þCŸ£ßi«:¿Ï  rvýgnÖç žØarÆ0¤‰x£ ŽU.ø¤ñ'óÖ©’ZŽžç=OÇB¯)V¶!ŽŸmòQwOVÙ¯²/äãbP‰D©ëÀG¿›|”…q1V¶úý&´ÜYâ=OÝ=ç˜8Óè`ŽÕØ/àÌ…(=Š~Í·o‹ï¸zÜ kf̱ækwfAµU™K.§ô4ÓŸè×Û|ß‚qI̱*W`ñÙ&±×ÒŸ=žØ[rÆeCš€*cœc¬HQ7*‰}Ï~­ÿ*yŒ%}§¾=ø‰ßl“º{ú«»³ògå¼§<¦<¦,¦sP‰Ž))‹E¿©ëF¿ÙãR÷ô/éûÇà'òŽ~£ï­÷ð_Uþ%Î1˜cU«Ñø9w/=‘ù³~·9Å»µífç’±Š9ÒŸc-æMLÚ¶ôHÚ¡Þíäýºµ O™1Œ9À›Ý˜ÔÝÓ_ì¸ä½Ç»JÎX@0¤‰¨2Y~Y~Š9åM_¤›^]‘ïõžõ{rïºÛŒ:ß'§uµT?uß»WœWܳuŠYŠYÊLºo†è7Ñ{ê:³ON·°T¿û†?u^N¡¯"ÿ|‘õ{_¤ÏX^½üsIœ]t 0Ç–ÿï‹ÆŽ¹nÞïÃEÜS9E¿}jl˜œÔ¥ñ°OêÜÊ ÝšcÛô8™´q~Ó˜}ÖF²Š~ß¾ThZÝfïgÛ×å2Ǩº]Aëj©~bß%§ žØIŠý$g, 0¤‰¨b÷ûÜï£ØÞ,²Ydîu#TüÓ/{ßl0.ȵHçÿ¶ ¯ýdÿŒòGÆù'çŸ,P¤)Ò”èTÁ¯viŠ4åчÿãú¾ë«ûgèzô{³ÁO\‹zäwiwÙ[Ýw*Î(q^Ñ!ÍçØ†…í/eOìÕtõ§ÉÇu=ú5²ž³õr5æXÈcŽ>cÆ>]~ýlN rø¿ r/¾Ã @J»ûÉþº¾Á{H±“äŒÊG i"$áI¿'ý”–vÎvÎOŽ•?D®žnÑ2´fñTσ6+ued¼å0ÞÅÅcX»sθ–ÿÝmNÝœZ´B©P*è TýïvJ…R)z²ü¾ÖβÇ×[‡Ö¸xèJè[<5¶‡ÍÊÕÓ}…Ö,ÿ»ç’8£h @EæØŽ]¾æfîúMzü2] }{…|“ìÑ|rÏÇYï2ÇB~s¬aÄ ïßê~6ö·VC‡ëJè»txÚ»½ÏÙö·^Æ @Ú»‚sÎ¸Š˜®lðľQì9cÍCš€)ÍŠ@eVðÆà…ʳDÝen½õó‹G¦Œ°ë,µ‘1ÓaBºS°Ÿ—I­=Vš|/1¦1¦%ô¤Iô§&ìç5.nU¦CôONÁR } ŽÄ ³ë¼Ë<0öó‹š|/â,ç=ÐîÛå¬÷Ú?Ò;ÝòuB=©…¾½íÖÕHŠiÛÕntFs,ôg޵ð›»sÛܧ?b,µÐ÷?«“s;cúÕ Eé̱tsW`RkÏ‹]™Ô6xb¯(vŒœ±Àë!†4u¾áù†%[5¼D 24›¶¥gö<÷ßGÞ¬ª‘1~âènÞ¥N¹O4ÑäšGþ9òϧrZä´P$ó‡ô‰^}«I‡;åÚ4<Ñ$~âΩޥUúfÏûå—‘7ƒ §º¥§æç‰8ø‰ÞÌÛ¡ÔiÔõ%}†lì’XTU¡¯±CÀ° çZ62³¾»›9̱Ý/Øýv´—×í½×Æ»WUè;?úìoVFƒ3ü,6˜1Ç×® ³ñ‰&b‡VU<±?»DÎX â€!MÀ€¤+ç}ÞèóF…Nšd­:4ø!ÓdIÿ  ã/E8¿5évÇÄ’ð©ïÿýƒ f=˜ík<"j¯æ×&걟ý\¼IY¨,äg S¨,T*E¿jçÏöuµŒÚûû[2f=( ?×nð~íÆ½—"¢¦M:´ÎdÎ ã[uhv=ÓDókçŒ8sø!ªjŽ­[ÐÄôáךOxïêùžÖ_¥öÐnÐkºm}üðî‡÷¿X¯M¢mûŒḵ`ŽÕ¤ö[îÞ~×Ç“ÿÚußãæÒ;ßíõ‡vãÞg{Œö²o·hzðw,›GÜíÎ @ŸvÆ#¢öŠ=›Ø¹iw'vƒbO(v†œ±€vCš€qgÕU +Ÿg}_u”µEúw³¹=34Šž¼zŽÅG¡ïGÙØ\ ú%fØ[sOÿêøõìôSŽí}££¯Øû‡î,°nt"`hŸ¯·ý0tc‡¢Ã×ûçŠÖ2¬eÑÊBÇBGe ?MÈä÷;ÇBGe è튼:†nìß=Æ0`¨—ï¶v,?t"úÊz'ÿÐS_ÿå}ú×ðë³Ó‰Ùä571ÊæËåA«çø> }ß홃kôä5šöÊ:ôzÿ\qžˆ³…Ÿ&@ÊslÝ5?|ØjÇ€öw¼;z¸þvm‚Áãféuk>ßì’K÷ÏÍ¿hݽ×Âcç¹Ì¹zéY— ¯¸+vø÷¨ 74Ë2™”åÍ TÆk0u Í©ZV«fnþ`ô–àž‹/¹5™áêqxgÊ”K“m#/OÎp/Øö¾ƒsÓµóÛÚ9ûÛ¯^×ó»ÓàZúµôÒ+Êbe1÷(G±²X©¯ñÚ¯#m½*Åk\¼ÞÅk_œÜxs,s,À œ±œ± o€(¯_).ÝÓ)¦S‰ýYç³Î%îEŽEŽÊ Ü ªˆ× x=Š×¦xrg`Ž˜c€3–3P>` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `‰ÿßþñØ!ò%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/race.png000066400000000000000000000534421431412030200243130ustar00rootroot00000000000000GIF89a8[÷3f™Ìÿ++3+f+™+Ì+ÿUU3UfU™UÌUÿ€€3€f€™€Ì€ÿªª3ªfª™ªÌªÿÕÕ3ÕfÕ™ÕÌÕÿÿÿ3ÿfÿ™ÿÌÿÿ3333f3™3Ì3ÿ3+3+33+f3+™3+Ì3+ÿ3U3U33Uf3U™3UÌ3Uÿ3€3€33€f3€™3€Ì3€ÿ3ª3ª33ªf3ª™3ªÌ3ªÿ3Õ3Õ33Õf3Õ™3ÕÌ3Õÿ3ÿ3ÿ33ÿf3ÿ™3ÿÌ3ÿÿff3fff™fÌfÿf+f+3f+ff+™f+Ìf+ÿfUfU3fUffU™fUÌfUÿf€f€3f€ff€™f€Ìf€ÿfªfª3fªffª™fªÌfªÿfÕfÕ3fÕffÕ™fÕÌfÕÿfÿfÿ3fÿffÿ™fÿÌfÿÿ™™3™f™™™Ì™ÿ™+™+3™+f™+™™+Ì™+ÿ™U™U3™Uf™U™™UÌ™Uÿ™€™€3™€f™€™™€Ì™€ÿ™ª™ª3™ªf™ª™™ªÌ™ªÿ™Õ™Õ3™Õf™Õ™™ÕÌ™Õÿ™ÿ™ÿ3™ÿf™ÿ™™ÿÌ™ÿÿÌÌ3ÌfÌ™ÌÌÌÿÌ+Ì+3Ì+fÌ+™Ì+ÌÌ+ÿÌUÌU3ÌUfÌU™ÌUÌÌUÿ̀̀3Ì€fÌ€™Ì€ÌÌ€ÿ̪̪3̪f̪™ÌªÌ̪ÿÌÕÌÕ3ÌÕfÌÕ™ÌÕÌÌÕÿÌÿÌÿ3ÌÿfÌÿ™ÌÿÌÌÿÿÿÿ3ÿfÿ™ÿÌÿÿÿ+ÿ+3ÿ+fÿ+™ÿ+Ìÿ+ÿÿUÿU3ÿUfÿU™ÿUÌÿUÿÿ€ÿ€3ÿ€fÿ€™ÿ€Ìÿ€ÿÿªÿª3ÿªfÿª™ÿªÌÿªÿÿÕÿÕ3ÿÕfÿÕ™ÿÕÌÿÕÿÿÿÿÿ3ÿÿfÿÿ™ÿÿÌÿÿÿ!ùü,8[ÿ÷)ÛGp`A‚Lx°!Ç #*œèPbEŠ1ZÌx±#ÇCjéQdI’ QšLy²%Ë—+cªœéRfMš0qÚÌy³'ÏŸ;ƒêêShQ¢@‘Mz´)Ó§K£*êTjUªP±ZÝWZׯ•}õvl½²^É 4‹ìÚ´gߺ ·­ZºsÙʽ«/ߺ{ãúÜ·0àÁv 6œw±ãÆÿFV<9±åÀ—cÞ¬¹3cÉ )‡ÎüY´iÒGs.ºòêÔ§_»ö »µjÚ³Y˾­7ïÚ»cûÞ»8ðᶉ7ž{¹óæÐGW>=1\¯†ÕÎ}»÷îà¿‹ÿO~¼ùòèÏ«OÏ~½ûöðßËO¾ýúøïëÏÏ¿ÿþþ'`€h`¨`‚ .è`ƒ>(a„Þ÷Cu–XvxÖ† z¨ ‡!’8bˆ%~xâŠ)Šh¢ˆ-Ƹâ‹(Ψ"Œ6ºxc8öÈã,æ(£AIc‘@©äŽH6¹¤ŽP™$“OJé$•XF)ä–Ffie•\N©e—cŠù¥—a^Y¦šg® &™mÆ™æ›fΉ&œvºygxöÉçŸlæ)§ŸJg¡u ÆvÊ@³h\E*餔Vj饘fªé¦œvêé§ †*ꨤ–jꩨ¦ªêª¬¶êê«°Æ*무Öj뭸檫«ƒ9ªÝB»+ì°Äkì±È&«ì²Ì6ëì³ÐF+m¨x%TwÓf«í¶Üvëí·à†+î¸ä–›í`hîºì¶ëî»ðÆ+ï¼ôÖ‹¬ºâAjï¾üöëï¿,ðÀ_Šî¢ê¬ð 7ìðÃG,qAb=ú•¾g¬ñÆwìñÇ ‹VZ—éòÉ(§¬òÊ,·¼í‰á™ìòÌ4×lóÍ8ç¬Ðv×>*³Î@-ôÐDÝî‰põ³ÑL7íôÓPGÝ*‡‹–,õÕXg­õÖNã‹ðZKs-öØd—m¶Â^ÔUÂg·íöÛpÇ .Õ{…±Üxç­÷Þ|Ã:"\V÷-øà„nxAõt…¡@aîøãGnôßú,ùå˜g®yËbs™¥ôæ ‡.úèhó8騧®úêã"­xY³.ûì´×ŽkµjCöí¼÷îûï¦zíyìÀoüñ¼§}:òÌ7ï¼êt3ÊøóÔWo½ä”cgùõÜwï½Ü“üù÷ä—o>Ö”/¾ûùì·ïþÍTgûûô×oÿɸÿ´6ñ÷÷ïÿÿýr\îÀð€ð"Æu–‡À:ðÝÊß>ÈÂ?Zð‚ÔUözæ– zðƒ ´Uøê¶¡šð„(Ô—òé/ÁÅk*Kãì$@¥ Í•B³ £„¢Ac•È-t4žçBuº…’Vô§Åš„VPNy /뢸ˆ^~s§ ©0Y ŸÞ 0ˆæ3é U—þ³2µT(6õ£Ã„§H£ÚѪΨpÝU6ÅZ¯Z¶Ðl@+ŠS§ ó›¾t+øx,<ÞÀ«õä(\ÊU–J󉈲òÚJs@ªÃæSE*Ø¢Æõ³²šëÿL_v!¾Œh(5ëfýšÖµ6T³5–XÇvõ™yHlWzc¥ ͬZuÚÚ…n‚+h—Ûª¹z^\cRµ†ÇB䔡Â]ë<Õ*ÌE´Xs5Àmé°Ø­Ô·])  ø\]U÷R…¯q/+U©â»ÌÍ/«ª\è&.iv;mÎæª…âÊwµ 5°NÁ¡‰+—èdz'ÌX­¶!ŠÄB¨M[;\‹ô¸Þl°=õKbT9·®ªÜ]ÇÅZ,³j­oGg N «¬6ð¤mmKa­j² V‹± Î… S³óU0$m\â&‹j®ý=•%ïõßÒ–PlsÝ0N_ÉÛͨjW»÷q°ð8ÛêaÂhÎíJGÁd]eÙÿ|êfÊÖpB‘°NÎs§N̪'N¹X\#±†GùºËj­ó‹ÁYãÈk®7¨mK;ÁU5·Ô–ö'zý ÙöÖªÐFŽ/GåìЛ2ÔøÕ³ª3…PSJŸ–òÆ—F(jAÆÈ¥WÙaBÔ nhOéª+?¶±]ï<áOR˜a½š¡†]¥v ­õ²ˆW‰Y_GÖÅצˆ]½j òyUâ ¢|» ÿ±pz\C(7‹ëŠ) Æý†®¥( ׂ#’Ö ÐLi6V«$€´ý™ð(öÙëÀ®ä]g`Ö[аÅBõ-ÅœuÁn r¹G)(·JŸR\·¬q7?®ù»ó¬… n0L_Ç ˜õ|i¡‚¼¸—Pìm®RiÄr• èA„¥™‡Kô¼Ì—€A´™éQ@–ݲ‚ìuÝsp×b »Ø9tž€ÆÂL5É×~nU¡|Š¥´öwFnš¥Ò¯ÿnkH©àsHò½È~¸3ûKh»Šlh'rûÌ6ÌÜ ¦"ïIÈ?|ÒŸd¯®r©Ö2”‚Ç)8ÿnäÀãÿœ"Í¥d×Îzþ¶*ÝqŒ{»ß}±ºÏŒ ×-õèàQ*z“cçë7†­\!T¥·í 0‡K(œá(ó3UÐÄ^&ÅÕ®­ïl×—óôý7†E‹˜õ¬o{ªÞ{<Ó*º¶LU&æOÿúÛÿþøÏ¿þ÷Ïÿþûÿÿˆ0dkÜ…`äaðoß\€µ€bðeåf6€¸d6aÕTfH‡|*À+ÌçIÌMU&˜øa\ß b Ø{‹°YØg`å0lx‚8˜ƒ:¸ƒ<؃>øƒ@„B8„DX„Fx„H˜„JC™àG7؃LÈ~rdî+#„ëÿ´~´…\Ø…^ø…`†]h]ß÷bßzWvÀµPcw`ófb8‡r”X#(Mgð|à| × ÔW[$…XlF‡„ÈEØæM å 0lQt»®àq¨·€:UÀ$‡…˜‰š¸‰œØ‰žø‰ Š¢8ФXЦxЍ˜Šª¸Š"÷*j´=¨{«8‹ª¨eUgU\å kèMŠxŒ&La@‹\d}*Ðua}H}™Ñ·cžDŒSTSõMŠ8v ¨kÁ\¾HE¢æmÒŽâ8ŽäXŽæxŽè˜Žê¸Ž¡¸G³?‚6]£2 š@ ôhõxú˜üˆþ¸ÿØÿ9Yy‰™IÃðfføM9÷oá·K™…}—5La– šàù‘’ 9’"Y’ ‰P„X“GÒF}‚sP^Ït7T“0t“6™“8¹“:Ù“8ikÁˆz3ÈK 5sà ˆ1x‘hj½4ló·“7•7$•Ä@•V9•XY•Yy•ZÙ•\ù•[–^)–`9–fY–hI–jy–k™–lù–n—m9—pI—rY—xy—zi—|™—}¹—~˜€9˜Y˜oi“e…<)˜Yi“RGDU+´b[ckÖeõÄå;Uo1UÝ4lº" P„|Œ7 ÇEÒˆÐÎä’éE p‹˜‘à„€™¥o/HE9å™E&Oç‡~$gr¬ò˜pçi®Èr`#6[´ÁU6G\úÂz¼ðQÛeL‡·t’V^þć5y}ˆtÈPu}Æ+[¤¤6zPåtF V n}…À9r‰n${·RKû#6ÕPyׂœ ‡jxsYÜtE9vpˆ…t}èxplNÒçRW§+Z—dÁ|10LòyV"ºPÀGs憀ù©Ÿš7œr¤r)ÿ`XfV¹· POAçQûE÷F\½äVUh+@ž>&M|P+EC xŽqgVÚQàHm¨¤ x¨On% /Znû©*²tX÷~)¦=”©5©ukluq\ô‚½äm1pzh7|2µ+ÆÖcÍa¶^ mé5oõ ‹nPõ ”ŸÉPa–§–…`Ãf{ezD¢ur•„©ÔReXxe\ƒGšÅ”¦J¤ò¥v¸2 A‡l]…X]5‚¹ÕicEÀ&gþ¦‚ ˜hÅ¢«—©z¦~±XRž*2)Ƶ5o6cl5g^Æe eƒÂrP¤[—|FפÑEÂB`ÿˆö¬¿ ~¼ šN)¬ªæz2*¾â[ŠReòx5fŸÑzhH–m¦VQT|t‹÷L2yš"È6Œƒ5,-&­ XáŠ]m†®MF¬R†EºS5ñ—£P`ãZ€Õhd &bGš+Ætl=–iÜjagGÛçPEö¬æ²x²›_g/s£-76x©fÈZƱ“Z,šE€zi°“1už¶²³ ¶hùÚ²¯å]Ž6³y&±î lT6¿µK s†XP…\Qt¬¡âG6p‡{[kpåÅU•}òµ½™d^ëMá*µ@¶TûA›J/GU{f3WÀ®LYgˆX‚•ˆÈY9ÆcÙZ´ÅªÃ"¸µ€`?û²¦&X2»·ËU³þ%=K6iEÔ(jD_…·­H,Êa‡¥­·…¶žVz+*eÅ‚uÛ´õNªË¹y†PJ›Cé4A¢Z6¤™‚¤vª¿Êˆp{,Ê`­¥‰lh“ŽSc»,·{k…;gõ%bØç»U1°¦ëÿ‚µƒ&6yÅ‚hŒ§ Lu°ÌBútÌ$«^•nÁº,é;o¹¢àð¾› ¾ü,ѯµK3Ä O‹ôZrQõÁK,·KE$ëOÜÙx°×¼Ë¢ ¬ÀÖ³ô¾þ9À$,-ð÷¦m3Á=ºôHŽ´[qQ´ºÍ’ÀdtœÔIœÔaU‚Ó¢Â0ÀÂŽIµÃ2œ¨%œÄÑr³Ä›³o³ *¼…±vIÄ9F#l¨ąS¬Ä\|RmÊAY›7™¦dÁ΢ hPÅ1 ˜à’ (™G_ÔÅrLÀ Zeç 7ÊC<„6tÀ¸ 0$Ci€7T¾1$ ƒÜÇs¼Ègl:¡/ËÈÉ6‹.Y(É–|É9Š‹˜ÜÉžÌ-ÂS~üɤ\Ê*4w(lʪ¼Êq«É`¦ÅʰËôÅÒ5ʲ|˲>Ö‚£¸Ü˾¬*¯˜Ê¿<ÌÄÌ)ðx-•\Ìʼ̖rQjÁÌÐÍãn´&ÍÖLÌ®ã+Â|ÍÜËùãÄÝΰ *ÎæÌÊWhǶ|ÎìÌzXÁ oíϘ¬D=“Ìò|ÏŒüŠËŠÏüÜÅ…„TëÜÏ ZvÏ}Ð,@ËDÝМëÌñêÐ œËË}ÑeZÐÑ­gLdöÜÑ"­jäüÌ#}ÒW]ÇÕŒÒ,­_'lÐ-Ó]Çà,Ó6ýS T9twÓ< T³fÑ=Ô²4™0-ÔF}DGÕÄ}ÔLÍ=æ»ÔMÕÏ=>ÕR}ÕÇóÒÕ\ý?é\Ó]ÖY¤Ïa,Öf=ÖcÁ€{ÖlÝ?D½Õm×Ý“Ô!-×vý=O}×z]>¼Ò{ý×Ô3"ÛÁ@€]ØÌÃÄÞqdž½Ø½CÖpÍØ½:Ǽ֑]ÙÉ“¬ïöØ–½Ù›£ËRŠSלÚ¢“×¢]Ú¤SÑÅkÚª9omÕ«ýÚLsT` Û´M8Ù\˵ۇ“?”­Û¾Í7ZíÚ¿=ÜœSÇJMÜÈ >´ÌÉÉÝÜZû_»œÚÎ=ÝiSäÈÛLÝØmQž!ÜÙÝÝÑÜíÝâ]0¨­Øã}Þ8sÛŒÞì3Úíß.SÒæ-ßö?* ß÷½ß óΚÍß1ô¬õà1à}à Þ1ÿåÞ þàÓ¢Ñá~Æ®ŒÌÒ]á.0‚ýû¼á þ/ˆ]Õ!^âãß~4LH ÿá:ô”)Î*/~C-nâ t̳ 2ÄÆYFàRM(G1Çà²ã¹>nã!äØ1.<Þ…80 Üä]¸ÆÝòäZlÆJŽÖŠ3<)“¾©¤ŒÄH[ >JEä{/Y|1à9€9à8½RDÃÍæ6ÐfÀç7 Jd”æ[îÕ¨\ÔC °§•ûž§»Vï+fÏ2Á€@`–~é˜þ@J‚>,6EËD½¸åLžt1pƒþ@tá#¸‹šw!¥«æ sQTP(ÍRév9pép`é½np¿Þëo|gÎâê¯ëRýÔx2lë©~ãîÿ s»0~¿*cvFPM)ùE8€é•^éF î–.ì—tnç êÌ4i€š‡ÚþìXÃCbÐé­ƒ;~1yE†ëº÷eõ´íGð¾nîÀnðãìFPìœa¹’æO·/ïÿbµGã„=1‚;o–5UÜ÷N5(¹ÃBðî¿Þð_é-oé9EZ~PQtÛš­G;Pù«ñMã¹ïòÍÉÉ1r‹Yë¹¾¦_"&tÅâG°ðF ãÞòâì.õSoé?@ó¾Efp´˜Wñ³ë >ï4Ï.%]ãó^I¶eþ¦*ø À¶"¸˜Îë ßëVÿïð{î–þÆ=«Içîk^TP\_öL£®ó’ν=1Uí[òÊËY׋°PôV/õRóå~÷âó oé›þ½Ã‚P6öLM¬f#x}KŠ/4g_¾Ë}ÝEâŠí>‹ ;%bê^+eõíwîXõRÏ÷.î½þ°¹ Q$a+%»ÊÎRúLJé³Oû}Ê*öþŸÐ Ò¬î0U‰ß§»ÉK\4ÆKÆ$û¸aánéÉÏùxoü.?ì—þÆo+å_u1§“À<= ìDgàB v±Þ>Š-^ĘQãFŽ=~RäH’%MžD™RåJ–-]¾„SæÿLš5;fŠ˜IæÄl–T¦lŸÐ‰ûêA«'ôçR¦|3÷­¸rP­VZ•*Õo\£fõZ("¦qÀaÄ#@Ô¾5RDM[¹jÙÂqÛVo[¶Fœ–ÕèÔ¡Ã…?,\pà™œ€?†YòdÊ•-_Æœ椈>cƈØ3sУ¥KÕœú¢²ˆZ¼^}=U¶T«`¥ÆŽc2h@ØæÅ‹×È\¸k¾Vùoµ8G&ÑÆC…‡´n8·jîݽ^üxò6Ïêüì@ ô•••JQ(êò“ÅD¬5õ¶~Ù[«~Sá€×ÀÒ,-"Rê1Ö8à­¾àê ˆ7œ> €Þr+ýúú!"1$»€6FA¨Ä…ªëĆˆÂ0R€룱FoÄ1Gs<Ë3˜nP/·ö$# ÿ©¡æKjG¦xë +Úfãê›ZVüŠ6ÿ`ûf‘ç‹-ãør‹¸¼`ߌxÃ.»òšë€ˆ$€ìkC… o˜cƒ šã ÂzØRIA%´PCEtŸódâ-Èõ†Tð=¤ ¡è(úu)¢-œŒÊ¿×qªÛ®ÚK#C#¢d•/#lൊ SýòÚK†7#“Î0êd!0 ±“:å$,Ùæ8SgŸ…6Zi§M‰3uT=ö"“t"¢J’Z“Ô¢ÊÙ¢*Ôcót?ª¶ƒŒÂáÔ²õÌYÏdË  ÷.åæê‹BH™Z°zˆO†2#€9®»ÿ^q'¦¸b‹/&oјâÌÖ)&‰tÒ¢æ›cŽÎZ¶sk³ê*X]s¹ †ÈÈ €UûÅ5Ã7¸Cº„†#‡@Ë:ËŒ`ç|Ñ ð|ñ׆ÈÔÍd«¯Æ:k­UêÛŽ¸¦÷J3©KYŠá€×V»m¶ßv;n¸ç–»nºï¶»íðÝþþË À^‹­Tsì\ïÐ_¯qÆwyä—W¾yæŸw>zè§—¾z꯷>{ì·×¾ÿ{î¿÷>|ðÇ¿|òÏ7?}ô×W?úçý€ HuÔýÚQ²– ÊH¥N{ þò7@ЀÌV-Àñ¤+ý­+.;@Ëþ¶•Q•c Ä ð a®gqQ¬”£\í¥CD!Ûð:×¹(viÀ`n×Â90…7Äau¸CöЇ?b…8D"шGDb•¸D‚Ì&NS2•Ü€tWÄbµ¸E.vÑ‹_£ ‘EpŠeW2GUT *ú ˆ cåxňäÌ7yÁ•pÔ°WyŽ„Ë1Ž¿N¸ž9ò‹«ËŠ¢>!@ƒ!‘'\#CVÒ’—Äd&ÿ5¹INvÒ“Ÿe(E9JR–Ò”§De*Ãè&¨@”ŒÒ­øÄçl[«H— Ñ@•5é¿|XF ªØ©j ä=ŽP-?è]rèµ—iá„aûÉYÎÀ2m–@‹¼91—çDg:ÕI­³P‘%à¶ÊR$o!É[[Ц¸™Î*kü¥mœ4¨HÌ1!R3!DB8üHü‚ ¾Ö4B ù0 âÁœ~ECc­1Ö…A×9R’–Ô¤åÑLlè(y^t>µ´Ô=·ÖšR­le¬RNÚ¤ŽUªrÕªæ"Mhî‹-C5ÃJÉ„¦…®óÓ —Öm 6`Qó“±|zR®vÕ«_…L×6–¿–:ŠF¸dª5Þè´J \€Úˬh ØüÉ0"‚ƒ‡9©€ª¶!8_bjdxÓº×9-†¹„Ä9Uë0æ®`Ålf5»Y“¤4€+k¤^ÿ*Ÿ#‘°µ¨ ©²2%GÝ€e,Óϯ™h¬LGÝ­*4Fõ|Py9á‡""ÖäD±¬zzp\9$NËàlt¥;ÝÍŠõG­µ(·¼UK³­5k]Ò§“` ldk 3³©H§UMsVz$S¶Âô¥… ŒH¡§@.£ Á:݈z©;`Xkžu þDc™þm­á)“†é®ŽTü‡]e k¥e„b*NˆE ED”qʯf¢Nu R3Œeñj`רÆÎjçN<”]Êœ•(S,©µÂ@×_VØŒ:}S(5§€Üܼ„ƒÔ²…Bû“ÌYnÀXÿ.+«D!=n6tÅY¤ÅZ¶9Œ;[ÔÅ]äÅãCÎëÅ`Æa4©(LEM$ÆdTÆeœ–³ õcÆh”ÆiL” ­N«CjÔÆmäÆÉx[z0ëÆq$Çr¼ TœÂl4ÇudÇvÌ@õm“BYtÇy¤Çz Kt°\´Ç}äÇ~¬P|0yôÇ$Èu4Æt,È„TÈnäÃG\ȇ„ÈdÄÅLTLj´È‹TÄ_T+ŒäÈŽ\Å·CHÉ‘œÄ9H’DÉ”üC ÄDqTÉ—„É7EÓ8ɘ´É›|lA–>œäÉžÄ@€|)hôÉ¡$Jʋ ¤È¢TÊ¥ :5E¦„ʨt·94º¤¨H¬ôʯD'¤C°$˲ܬͫI³T˵L'¬J¶„˸Ì7|F—”Ë»ÄˉAGlÌ˾ôKzKf)ÚÈ¿$ÌÂ,ªTEÃTÌÅ´­LKÆ„ÌÈLƒKÉ´ÌË$¡I®ÄÌÎôLn‰ÂüÌÑ$MšøÆ ´·®,ÍÕdͽä@Ö„ÍØ x¤K»”ÍÛÄMŒØË·ÌÍÞÌM€ä´ÇôÍá,WMÊÔGâDÎÕÔHÎLÎæ,Nø8FÕtÎé,ˆLMêÄÎËË×ÌÎîTL´¬AïOÃtËÄÏóÄË™,æDÏöŒK}š„ÓÎPDÓULAŠ%KB’èJb(AZ³BM»-QnÌ„ÓC¼3h© U¸ -A!†$´U`k3(Õ ùÓÆ,A`UQ U?À8LÕ8ǬPnä¿ÄÓ“ì–6ˆ‘fÀJ@Öá9=iƒÇƒ¼3S[m±×iƒ3p¿SõÕ©„ΖLÔN%Ô>Ä+.orˆdÅ>%©¹ÄkˆÛëi¤‘‚#¦qxÕn5ÿ³åŒÒ^Ô·Ù©{uˆ6p?y%F9ˆa,`Ó½|‚Û²Å[´qŠ^Õ×Ô˜X‡Ý‘ÝÔ!==`<‰U˜ÁHÖp] ހŻ/›ŽáXî(¸yF‹1§ Ô‹¥ dsG¼Îmä°³YcÔ ¨Ù‘}ªëà§0Øï`V–u‘3Œ`k7͵¬Õ<|>î”ÆYê`[XŠåU,`Z‡(ÙÖq9Á6šm¡·]¤…°ÛäBY­% k‰ÚAñЕFlSXæÂŽ…˜¡…à­œå}£Z‡Ø¹Ã°[´µXñ8½Ç½Ö3Ö<¡$¾½9®=”òìW[tÿ Åkªe¬á„}=À[ÃE‘º 0©±§ê(ÖÌmˆ‰YÏ¥ žu;ä®`]F-“!·ý(S EH+.QZ«-ÜqÂÚ(hP´Íå&e‰\­€Þ­½—¸ÔÉ|)¤\Pbt Ê2Œ_³Ya81]îUÞ»õ²øÚ[— ®Û9ã²8ùÝñÝ ÛMóÅ §Î`ì’±5Åh®ú^y¼æÙÚES$¬­ÜîX¬uÓ\Ôåµs¬7vŒ¶{'§X0ûÖ”Fú…1¦á//Û݆¸eµ4DÒ\«Ž3 “ªÄxŸS ]›ák=á]†ˆJβÎðþÛY ¹+UÆ€é]4üs˜D*[Þ8á¹Å{!§ð/Fˆ©âÊ,î3\Gƒ ¹ªE{<Æ…b™Pá•X©°`—ÿØÎ9eÆÚ>Q±‡ˆrs¬î}‘=‹WñH@…̓ۧǪ‡ad:]Íàá}¤9¸2‚$N–NÛ‰eÁaèv´3bUž‰=V AåV+¾DfÆþ§ž¬9h˜é2FA®æìÀe†P«º½ÐȾ^æ(YÂ_SŽ/l¾6V©jÔ‹¢Ë•ÎL@è„Vè…fè†vè‡†èˆ–è‰¦èŠ¶è‹ÆèŒÖh†ÖGö2÷-f‡ ç¨q0cFiŒÿ&®vx~ˆw)‡£M隦hkqݶí\Îå;¶é ê¡&ê¢6ê£Fê¤Vê¥fê¦j, ‘4(jMXT‚\#|„) M0&òê¯k°f¬Q¨6–§i~ßÁHæ°N!ÅS˜«µF}îvßrëЏf *hÊÒe[·dÝëÃFìÄVìÅfìÆvìÇ?þ ̉`Ò•xTÈÆìÌ6¢Ø5·Ã€dYˆ`›¬s_ˆÐlG©åO^—vˆwîµ×ˆQ°ÓÓÎiÕníÇj0øâž¡<¸ìÓîàîá&îân"”lÿáÏ•èÂæöÂçvîè†îéÿ–îê¦îë¶îìÆîíÖîîæîïöîðïñïòÆî8ñkm† g—m±Ð0ïø&ïùîߦeoÖ^íÀf?™éù–ïÿænÀâN0[ …×Q -ði’^šÑ,”ð§ð ·ð Çð ×ð çð ÷ðññ'ñ7ñGñWñgñwñ‡ñ—ñ§ñ·ñÇqIÈñïBAÕ–_ ë\Ñd´8n¦ëN(fƺîŽ.ékÔ×ÎKˆg±£çðÀ¯Ã…Ý^ÚÖï¥_Þðg¤‘â±" n6MÔäËh¤e‰3 מ0_4_®g°Cž“aœn¤p¢^†€òî°ç.kòHë·å¨-?ólŠˆ4K²ò¤AÁUÆq`.Kä9ȃؑgn"â—Móe^ÖQ¤Jf:ið±c<Þ l‰,&¾e9á5¿ôF×ãˆø¸ë꘭"ÕÑaLÀ‡ÈªÃ¿¿=1žßˆP–9ãˆ(çHºŽÙß•xc²õ•h—f±«`]wôÙ hìê1ÿ¥ˆîÅ•Îkz!Û+ã†ÈuîÀéä½ë¨×ÌÕÝ:.)d.c21c>._égp7MF‰$D`oÔêÿáêhÔ„Ð0åÓ= :¨xL/[ï}1gÎÜÇ“òÀ`HY„ ó¶½^„OøGŽt^½ö¨ÒùDä ̵íE›ä…ßðç¡…± îý%y?·8†mÛé¹òeù˜Ðæ”’†g°‡_îe´–`^›µoøvò˜x|wfnb‡‚xï툊Çkûýx`»æ¦_ Vމvâµ”ŸÆ›‡ªgoYð]ÝÛ…¸vûØ]Øåy€Àš‡€ßôžßÿ…ûà}tzss°eFÂ`Šƒ`O(Ùnâ­IWÒ]ÞúGã³ò¸\¦!m„P˜µï„8ÁÈ—|HʇNKF±° >W³ßa°ïû±ŽÛùzQc' Õ3Ùßu—‡Ä]]äÅ—s[~ˆá·‘1¤g$fŽ©y˜8¼Õi€5I.ÐgþŒ˜7¢ûVtFz`%¨ñ~z_ˆ“Í‘¢âXÿµ¬fÚgð „ 2lèðáB1´é4§Ó(:;m̳ñ"È=&N‚hò$Ê”*W²léò%̘2gÒ¬ió&Μ(3 ¦ó'LeÊêA#jh=e@—2mêô)Me+&¶ 9ÇSHVG]lc``¥PuƘxÆ£Õ±~<0ÑçØœÞàªöjÚoŒë÷/àÀ‚.løà¤14f:´è>¥H…6®lù2Ne|éιx÷s§6›Ä‹Yå\0ª~9êã¨Ñˆ^‰f¢3y7jýxf"€‚µ‡/nü8ò䯅ÿ…9²iåÒ§ÿM àë­EC½á$àØÓÞm#pb˜hßòœ£‡Úòçô€1±ôúüú÷óïïìPH¥ÔPÑýw ‚ Sp6œÑFEs@xÆ _ÝÇØÊà6ôagÞ`pÂh]‡ØUµ¢hN„F‚1Ê8#5ÇRGAC™=ö— ƒ yŸ‰ ³áIÆP’ŒÊ ˜$phÔã#•UZy%–)ÍsH%•%˜Ç)ƒFCÆ€m6*“” F‘4N"Ûp†y'žyê©e’D { J˜&™H2“dB —X“É$hˆ¡h&Sb© ¤’N¢h ƒezú)¨¡:öXŽv**ª©ªº*«­ºúêL¤>·Ïd°Úz+®¹êº+¯ÿ •#©<ö:,±Å{,²ÉžôksB§,´ÑJ;-µÕ^)+‘}i-·Ýzû-¸áþ…£sD +.ºéª».»ânŠéeQÛ¶;/½õÚ{ïª8Î (¾ýúû/Àgø¥s¦ |0 +¼ð¸Àê(/ÃK<1Å+Äì”Ážj1Ç{ü±»ÙŠÅ/È%›|2ÊÆHë€Únœ2Ì1˸®v“ 1á‰+¾¸«7J2ã‘K>ùž~ïc5å™k¾yäZZ+ç¡‹>úzïÆ‹9é©«¾zež;›3ë±Ë>»cõÿ%2â´ë¾;ï.¹ýùŽ€÷><ñ¼;nûÐÅ+¿¼ò–CÎ<ôѳnøåI /=öÙî¸×Ú{ÿ}ä~ŸÍ¥´T>ûDc©së§¿¾Aí£¯>û–ºOüöÏõÝÏ¿üÞW?ÿío€ô`þˆÀþ üŸ!˜ÀP  1XAfЂäà)ÁNP‚$á /èÁšPƒ#T!_øA–….¬! i˜Â¶p…2d¡ }ˆC1†Cb{hÄ"‘ˆI,¢oÈÄRñˆUœ¢³ˆÅ-J±‹Bä⽸D1F1ŒfãˈÆ5ª±Jt#ßh¾‹)£9–ÿzžBu9ðñ±NÓ£Bˆ‘±. (MçdCÒ‡E„‘qä> )É„Lr‘”¼¤%3ÙHLnR“ää'=IPŽR”•ì$*C™ÊR®ò”ª|%+aéÊXÒr–¶$å-M‰Ë]ê²—­äå/})K`S˜µ$æ1™Ë`2³˜ÍLæ3—éÌiB“šÒ¬&6¯©MdnS™Üü¦7ÃMpŽSœÖ$ç9ÍIK…”¯kA;ÕçÔ3%þ-ã(òt`=iuOzÚÓ|üÔ§?-•ÏzìS ýœ§AŠPƒ ´  =(>!úO‚ô¡ èE'êÐ}4´¢•hB)ºÐf4¤íèHQŠQ‘®ô¤ µ(ÿK5êQ•Ê4¥/%iLM:Ó›ÒT§6-)L] Tœ 5§AÝéP{zÔŸ•¨HmªRÊÔ¢Rõ©UªU³ŠÕ­¶T«]åjM¿*Ö°’Õ§c5kY—zVµ¦Uªkuk[£*WžÒ5©u…êQòºÇ„n|,›cüBù>F¦Oê¥"£QØF*v“†ýdbûÈÆBö°’m,a)‹XË–³Œ%l$9YV´E¬ÿ$ZÓŠ6µ¤Õla[«>Õ–Ö±²õìdY Y×fV·¨ík}{YÚÂ6´»nom{\Ü®V¹¿enm+»\â ·³Ôuîpƒ‹]ëjWºÏ½®w³›Üðrw¼›nwÏXûÝôƽæmïzßkÜø~v»£•ïiÅ[_òÞw¿êÕoníË[ÿÂÀÍå`äx¾ŽîËÛàüJXÁ \á_8ÁÖ0†?ìà C¸Qzœ’ÝÿÆ´œqÉOHúJïcÆ=ô)cóɘÆ6†_Žo ëÓÆæû1Žuóµ¿}îq¯:ÜÝnv»ë]îa§ûÞÿ~÷¬ç=èu|ßñÎwÞç‰'üâ©yÄ3Þ¼â)/y°_ÿ~óC_;E•¢oç-°wÛ—õ˜­/)…ÞH™7ìw¼zhä˜Þ®‡L¶l¬Öß»(úVÊŒk¿{³Á¾žÁ½uoû{/yö¿ý ï>Þ¿¾žÒ¾ÐÐg{.ç˜÷Ê}ó ùüÞG¿ÍÇþï¹ÏÑáW_ßÇ÷¾û–/{ñ¯ú¥×=õ}o}õÓ;ûÅW?üiøuýÉî=þ­_õ!à’õñmßû­ß÷¹^ø Íø9Œô¡Oþibߺ_ø%_ü `éÅ`žù¥ßñ9`û_êÃ2Z`ý‘ßýMŸê_®ŸÿA` ÎàüÙ –_¢ßþµ ûé ÿ Ö Ëœ ê ö  2! :¡ Ž`– íÝ šß²`.! z! ‚!æ î ^Ÿ~à"_Ba:Ÿ¢ Ê¡zà ªáß`ìùá®`žá6! aNá ~¡È8KŽìúKsØŒõx¢Í„¢(Ž").)ž¢P˜"*–â*²b+Š¢*¾¢ÍÄ¢,*-Êâ-¾b.¶â.®b/¢â/žb0ºb-Úb1¦â1ã1ã(2#,&£3†b4Î"4Vã2Zc1N#2^#7f#6Ö¢6*£7v#8~#.š£.¢#/ª£/²#0º£0Â#1–#9žc=¦c2aȯ„"&£ø@dÚ|¢€˜Š $B&¤ÔÔѺÙËð£BF¤D (>‡A^ÏDf¤FJŒ?âˆdØÌºm¤HŽ¤Ç„"ë½S&`$I®$K΋P¬Û>þ‰2¬›!µ¤MÞ$¾¼¤ŠécJâ¤Oþd»èäIB1„$P%Rz‹P¤$Æ„â¢$%TFe´åÍØLOJ%Vfe¯èd±žõ<¥V†¥X¾ÊRz"îͤQŽ¥Z®%¨Ì¤Yš H~[Î%]æ W®Œõ<ŠJÖ%_ö¥~¬S–žUÖ¤_¦aúŠ[Æ$H¦åa6¦c~ÇL2eA~eœ<¦e^æpÜŒ¥—€ä^b¦g~fSp¥¶@Cð` a‚&j¦f\¦ÍtÉK^¥jƦlŽ L&Åí,åiΦnîfL¼dCN†?Â&o'q®ÄL~‚bB‡2|Bn§s>'_¡eWŠtB§u^çA§bšJ&T&v~çnÞ¥kV'x–'o²&Õ”&Xš'{ƦoN'­¼fg¶'}²eYrRr2g}î§gŠ'ç|ò§€J%M&ç`(‚æ}¶Ìbh‚>(NJ'©&eB¨…Ú'¦¼e^ ç…v(VreA†bsz(‰þdÚÌÐD¦ƒ–(‹"ä}’r®g‹ÎèMj¦>ª(æ¨M¢§Erçˆê(*ä{âþg^2fiD¾(¼•æ'x'’>©ù§í¼'”V©@²fêµnZ)—ö‘”ˆ^v©˜z’îÑŽ)šFωþ'Hrhš¾imr‰©è'œÞiœ&¦¹L)Žâ©ŸÒŽŠþÊå¨çþi~èÃÄ@–Ã$Ü€b€¼£.„> Ã"@j HêäÓI\ê£Â€bà@O20BÀ¨jB¥*bÖæŽðiQ®¨«b†>‚¢V2„bôªbÈ€§.Ò0ðªªúj¯ÂIèƒ$«±.ªC\ª0k¯ªA«Ö*Ÿsvÿ¥-¥“ZëwÜj Ì€zƒ´*†³&İ–«¦*D‚±j꺞«·ò‰[Ú&uÎj¿ö¢Æ€ DÃ.Œ*²"Äk¯ÞAC@l¯â«6’ÅÆÀÂRÒ"D,( =`BÄì_f¨¶žªì¡ ÈÀ²‚lJèÃ"ÀAµ6*¯æêBЯBjÈ*Ä.ð+B|l(0D>ôlÀ,d&&^Ê§ÓÆ¬¯&­MXìÁÚkÂ*FÓ®Ä<$ª `lC´ƒ¼þÀÔNÇ‹6¡ží·ÂkØâD>Àk×2,¼¶+Kl­Ý&ÒȲÀ)°mr¬éfö©ß*äÇ­ mN€ë ­A`mß®¸Æ€Õ:ÄÈâ@ä.q¤ímš¦å.®BîLèãH‚ô,×*D0˜ëÎBDÜ®k¼kånîihæ€(ì"GÁz®K\*é2«á&ÄÈÆ€Ù²Ù¶n¾*ÆëÖ®e §€äg¡"ïa<®Ø:îïú꺮ëÜ>R¦*jK̃bÜ€ªÚ@÷†¯¼Æ€¨ÆÀõ:oë@íÙ'úÖÆã¯I ïÆ¦AJæÓã*î>l­Ñ¢DÜoû–¶ R¬R(·þ¯ûn¤ÂïC,íª2¢Bêùî¹Î¬?Î*þ°˜@ÿíx ¬_ô®„þ¦n$u.þr¯bAK삪îïßH§ç™¾pc¼¯³«C|mém¯V0Á)„Ç@ÞÒð$fËl(­±M, ø0C$ì ¸p$Õlï& l/n ¨ÁBœ®bü 'C½*±``é2/† «„<ôj”ìA8ªøš/C°Ãºr¬§ÒCºú¯ÈŽïG‡2¯Šk+žö íò`n DoJd¯±«¹âk ØAÆ–«$l%o&W­"Æ‚Fß–†r`Ü®;0%³îדÆnr#E‚¾2«3ìî2«Îšò_œhêµiërK¬1KЃ$ôHì ¤AÇDÓ±³d1CÌ&ˆÁø3³_Üg¶ø¨6³Äøf­é/ƒ³9w‹v:ŽÍ4é9·sÝpðG²¯;Ïó½(i¯È”2=ç3½¼'ƒ&²>ÿóº”iÍ0@t¸øg| ®A/t·Øó;-gó2´D«Œ{¥BO4F+‹ŠörŒFtF4® tƒ‚4IS´dwvkI¯ô«ÐäoÆs˜²´L‡t†zeiÎäLç4¬€e(e ±Nÿ4«¤3 â3Pu[Jg/K­Q/µ§ §y3SGµžPå—³T_õŒr' ;cµW_ à´‘~5YÓæj©æ–µZ›µúÎîE¯5\ÿŒ^þ'it\ßõ~ ´Oã5_ûëId?ôËöµ`K‡KÃ'˜ºé`'öåÖôN¦µb?öbÃä=Ë3dW¶e¤3르eoöeKçs&g‡¶aðò€¬­hŸv`psU+5j·6€$fÐpg9»6mC„^Simç6Pti>ŠnÿöÔTÿtÊ£t§vo7ww·w7x‡·x7y—·yŸ7z§·z¯7{··{¿7|Ç·|Ï7}×·}ß7~ç·~ï7÷·ÿ7€¸€8³·^Â$ržä'¾´Nö¬>¸ƒG¸tBø„K8…_¸…gx…o8†s¸†w8ˆ¸ˆ{8‰‡x‰¸‰§8Нø‰·¸Š»8‹¿¸ŒÇ8Ã¸Ïø×8Žï¸Ž÷xŽÿ8¹9‘¹‘ 9’y’¹’79“?ù’GyŠC­'j""ïˆrÞ¨ˆŠ"Lv9Wzyb‚¹˜9™‡y™¹™§9š¯ÿù™·¹š»9›¿¹œÇ9ùÏù×9žï¹ž÷yžÿ9ŸºŸ:¡º¡ :¢z¢º¢7:£?ú¢Gº£K:¤Oº¥W:¦Sº¦_ú¦g:§º§Kö]Â34H6êáô>棪¯:«·º«¿:¬Çº¬Ï:­×º­ß:®çº®ï:¯÷º¯ÿ:°»°;±»±;¬‹:(ÚfB uÂpêã'";µW»µ_;¶g»¶o;·w»·;¸‡»¸;¹{d$ÅSÃåPê£ù\"]Sd䈼Ç;½Ã»½› ¾Ïû½ë{¾×{¿ï»¿ó»À<Á¼Áÿ;ÂüÁ+|Â|Ã/¼Ã3¼ÄG<ÅCÿ¼Å?<ÆOüÅk|ÆW|Ço¼Çs¼È‡<Ƀ¼É<ÊüÉ«|Ê—|˯¼Ë³¼ÌÇ<ÍüͿ<ÎÏüÍë|Î×üË× î4KB;d'ÒF£Œaº'½€,½Ò7=Ó?½ÓG=ÔO½ÔW=Õ_½Õg=Öo½Öw=׽ׇ=ؽؗ=ÙŸ½Ù§=Ú¯½Ú·=Û¿½ÛÇ=ÜϽÜ×=Ýß½Ýç=Þï½Þ÷=ßÿ½Ô3Ðm®{ê¡ØAÄ!¾Q ˜»ýã;‹ã«žŽ˜sˆÅâK~äWþä?þ¬\¾æg~ã{~è#þç‹>ä›~ç“þèSþês¾å«þéÃ~ê³~ìÓþì»þæc>꿾íó>~íÿþîç~é˾ïë¾ñë#ï+ð3¿ð'?ðß>ôWñ7ÿôÿõG?öö;?õo¿õ/¿ø—?ùŸÿó›ú£ø³¿ö»?ø¿ÿúÏûÓ¿ü×?þß¿þÇ?ÿ?@ì«Mà>hõöíS–p`Áƒ  $ˆð¡B† "´(ѡƈABì˜p±… ÿžŒXeB‚ŽÜآNj2?b¬˜çÍš"9þœ©ÓfÐŒ@iÚÓèNŸJy õ©Ó¦E“ZÍŠ•(Ò®K¥VåÊt«W²_§jE+ÖlØ«m©¾·ì\µgñº­›v¬Þµrù½ë7/Ý¿{ÙÚík¸ð`Æ„!?–ì˜òâÊ‚-gƼY1çÀAx4`Ò§M§nxðåFƒ$I*;¹Q%lÛ!aÚÖ½›woß¿>œxqãÇ‘'W¾œysçÏ¡G—>zuë×±g×¾{wïßÁ‡ç­± ɯK*ˆPýAeÄzç6ÔõJû±ñÓ¿¯?ýþûýãOÀ ÐÀÿÿð@,°ÁdPÂ)„ÐÂ1œðB 3¬°Ã =äPÄIÑÄQñDS,±Å]dQÆi„ÑÆqœñFs¬±G‹“í¡ˆjs‰<òÊ“O¼%™lÒÉ'¡ŒRÊ)©¬ÒÊ+±ÌRË-›Ìí!%Ëko=‹ê‘M7%Áô ÉÝÖÔ­ÍÛ~{69çS3Î;í̳7:ÂsO?Ç”MAÝ$N=EtPE eôÐ?ÓPI#­ÒKÅtQMåôÑLAÝ4ÔNGýTÔSIEÕÔTY]ÕUJ=…µTYU¥µU[_µtV]kåõV_sí³Ra/}LÙʤͽäŽÜôÍf;}Xh•ÿ–XX­-¯Zg¹¶Ûm½ Üq±ý¶\qÏ%×ÒlÙ5w]w‰mÝwç^måU×Þzñ½—Út¦Wß~ùýWà€÷Øà„&Xái!¾öà‰¦Øá†¾ØâŒ9ŽX[Œ=Îd‰+öÔL‹Ì>âäLÓåÝ^>æ™e®Ù¶˜o¦9g›aùgæ™$Ÿ‡ºh¡]2:i¤ÑÛÙé Ÿ>:ꥧnꫥƚj­­ÎÚë­¿îì±Å.›h²Ï6[iµ™NÛíµßnî¹å®»ê¸ï¦;o»¹Æ»o½ÿæ;l¿¼pÁÑ6É{9HP#hU£6°†ìm—:Xs,B›­ÒPµ‰ƒ­zµ²“½¬¶zÙ”f“ªU²êYG+Zé‚vgè­NW›]Df bØìúÚÁ Zõ¯¸µmn•zÛ¤6õ0Ð&j—ÈÎW F¨ïq‡{_äpp€6Ñ@%«ö ºþ¬ZEÛ÷ÀðÕîƒã˜‰l޼ |­=+(ál.‚°¸}j‡m;Xõ>u ÙŒƒ·#ßᗸƥ,½úÿKIÃ8CÛJ‡µ"Ç£˜ƒ LÌ'ŽÄ˜pû6X‘ZÐÈFïzk+ØÜ¶Ã„]psŸ$†«rµ¿Èì}‡[Ü×—«9Ð&vÅÓd‹Ç£móŒ"ÏY¦°úèyá2¡¸ìüë‡ýd¥FÊH´T¿Ë¤ówÅ^•,Œ½ iûr5³€;màãÑò8ºžxë§?Û‰¹J‚Î¥Žc“>rD¼±Í¦h‹^ÂRY½SV¯Rk¡Íh8I›?Øo—-»U0s5¹Äæ*™»*ƒl¸I-µA›;=]iÃU›¦¶6íŒd"¤—Ô¦-ªe§†ănêm ÁÜ&Iú"›(¶£/;\.[ÒÇæê{›¤Í6ˆ–Ç9Nk¨E«ãÐzú³=P÷µÞÅ&ß: ‡’4CÉgýµ´éÕmaq+kö©צ>˜¤M'ײû…q»|òâ–³ÙLõwZJ`7 ¼ÇÓŽnµžs*f{:çtx“è)H G‚6´­C¼ñÀÚªÙÃ’:‹ƒ_Ë{Þ&çre«NÙ.ã\<äÀ›Ý<]€غ`¶ÎÑ®DTS‡7ø¹xÂ{Ã6y J—uÇÙûÔõƺ¶ßø†‰—ÄN3ØF6¤ókï–àíÚÑp¦Ùy°ÏAÓÒžàÓžù#ò\:5qã—(ÿºd—li-Ö»^sã]Ê*h•}ksh!›‡Î–'ò®Nv« xïâz÷ààié¾AKpi‡áªCˆög5Ý Àöš·~ÎövÆôÛÉ«DöZÀ¢ßÚ°´þ†"2z€¤—{ʼe|x4,ux—|¸?X°6ðb¬Þ\ÿŽ×G¡Íx¬ +›n€Ó´Ê®û®¯Kˆó¢ƒ¨ÄjIIL`«€²©î΋ü” A›€õÊí➪ø¼CË@«OÞŠÆn "ËŠÀ½ à .Ë×RÎÅ2«úšÃ®Ó> ù.A`ÄNºF¡ Lа…²o:‹L¬ ²")ò"-2#1r#5²#9ò#=2$Ar$E²$Iò$M2%Qr%U²%Yò%]2&ar&›Ñê‘&™qqcñS©’Âï8¦'‰²(ò(y²À± ‹ ÀÜ6ÎܫIJ*‰’GÞ@Ҿ̫T1ÿ"-ë\LƬ², ŠÝÊ­”¯Î ´©ÄNÇØŠàØj'Íò.ñ2/õr/ù²/ýò/30s0 ³0 ó03131±Ì: Nîš#$s2)³2-ó21335s39Ó2çj.ÄšªÐ¾Áõ ­ÿ Ùï;s5YS2¯JÞðë'm@Ò¬È ¬5ys3ç*!;æQÚpñ†óͦ¯7•s9™³9ó9¡3:¥s:©³:­ó:±3;µs;¹³;½³3µÉ&­) €Ÿc—P¢ÛæÎÉ,®W¯ÊœÒïÌpïÄÍ2*D1›ðñ×JqÒ¸ íź Ís:šŒÀŽÔ$¯؆@C˽à-„”áÈ„‘(Wà@ÏS†dš´p~2þ¬Ð¢²üLóÖ -õÔ+ ½ƒùÀäPŽÞ¼* ,µÎØtÏ2 Ͳ£D3 "§‹Àßê/tI/hŸÃ.'pS‰ê&^bÏ&(›`À 9ðè”jQ”)—® ¹# ² åmÅHînŠ ïß­¿ ›@<|ÐÍ®æ@ù,&à­äÒòÄ”I5¢°ó ŠûÂÿ#îI‚ة֤5ŸJïÎü¤Ìýmú˜õVѵ| 5:†R±€ÔŽÆ$'‚r€èN4ûN°¼AŸÂÀ îï˜1ð²é²ÈŒ@gðŸÆÒ€Øþëý5›øpìŠtúùت§«TÓ5c÷'W#s›rе~j(¨èØïÊïGÐâÜï·#þДØF• ©ÿ.÷äÌü<ØÉ q­xÖEËàzRc…VJôR‰ã±>öဨ¡(ˆL Z*KvÊ.QK“êféT?'«]q¿Þ”þ$KÞ2‹e·#æÒÒg‘Pº<á³¼µ°vháv~8–9Îé\5(^#ÎnÙG›”’ʘ5îâ’*Ý@[Á£³ìÑç­ØF5Ìæ­G@›§;´iàü”mÙìlɵ€ÖãösÙg]¡Co5D9H'Hö`ÜÎí¼\LÏír-›žd®|­ ‹­Ñ\¬qqw¹È–;:ËÇ|´˜vA7yÙgnÉ'Ϧt‰.>.EË>5´Iš,ÞËPf—Þt׫2 ?Ÿ„ΠxTs¥kÁŒVyÝ÷rD}sQ…J›8,ãPó=gõ¤Êp—@ت.Ã’÷ZP€3‹úN›Î7-+ö­ôೄsÇ@ë±ü÷}1Øs˜W™’¥" 7‚j 4cÍîFø¼¨²B¥ä±æKëÞåü3÷ÊL³hL›”Hÿ-O.93x‡Ç'~ÏâP·‚: ´eO³_k¡I×9ê @«X¬…éëÅØsŸdˆkx‚ÑWÁLl‰yø‹ÅcƒÅ'èÿÄd^hˆaÀE EKÖý˜Ñ‹CòIþ´ñbÒ~`¹‚vJÐx\Ûj-Ãî³ÊîÁ¸7GРÚWsÕŒ¨ÆŠjR]·£Š›„¬Iøb?½¬{“+ÖJ ùÀN8¹XI 9•˨õƒè”µ@„ëSváþ€Ô´dˆ2«Ôär` }+K€K› Ër0´zÀ–W•™Y‘,L¯à˜~&Á´°t¢¡¢¶£ÊI ¢™:”=VNj¤@µi‘—’öxà fÊlªœp ››¹žE(Œ¶í3 JÛ ÞK¾Ù(«s2Ÿ·ùŸí9¡¨‘éù‡aÒÀ.à 6gþ)$¡Ý‡ ôi$Z¡=:Š"QÏù‚>ɘ„©|dc@æt|–á—Nú£eZŠ’ $–e¦q:§ÍÈŠ6âƒuú§:‰æw¤ƒº¨Ú—’%=}ú¨™º©YlˆoÚ©¥zªIˆŒÕ“ª±:«-ˆlˆ~µú«Áðù“©¡Ãú¬Ñšr¾o ˆ:­Ýú­?§E®éº®Í‡¡í:¯õzä'"–z¯;°Ët•,ªû°[Jœ÷ª»±<†Ú¬{²)"’`Z »²5{³›cÕ"â8;´E;9ÔC•2{´Q;µu¯U»µ]"|µ¬_{¶S{­?I²i;·›ºµVcJq[·;¨Y;¸‰;±Cúy­´¸•[°kZD—û¹÷z±ÿº©û«=\»«ÛººµÛ¨ˆÛ¦{»Á›©¡ZŸÃ»¼…¹….¹Í{½w ™–½á›»EH¼ãû¾ëÙ¶³¿ù{‡åúµ~»¿Ü‡{À \•û´|Á3Íð<Â1¸´ÿgCÁ%üÂá6²1|Ó=YbŒ.™ÃEüBÇ{¿GüÄ3†R eÆH6Š)`Ú¤‘iÆe¼ÆiüÆm<Çq|Çu¼ÇyüÇ}<È|È…¼È‰üÈ<É‘|É•¼É™üÉ<Ê¡|Ê¥¼Ê©üÊ­<˱|˵¼Ë¹ü˽<ÌÁ|ÌżÌÉüÌÍ<ÍÑ|ÍÕ¼ÍMú=œ‘öŒ†àœÎíüÎñ<Ïõ|Ïù¼ÏýüÏ=Ð}Ð ½Ð ýÐ=Ñ}ѽÑýÑ!=Ò%}Ò)½Ò-ýÒ1=Ó5}Ó9½Ó==Ò-̦±èÓI½ÔMýÔQ=ÕU}ÕY½Õ]ýÕa=Öe}Öi½Ö og©¬)i×ˤ×ú)É×ý×…=؉}ؽؑýØ•=Ù™}ٽ١ýÙ¥=Ú©}Ú­½Ú±ýÚµ=Û¹}Û½½ÛÁýÛÅ=ÜÉ}ÜͽÜÑýÜÕ=ÝÙ}ÝݽÝáýÝå=Þé}Þí½Þë]ØYoQ(¾$%2‚ôÞ"¾g! ~à à~á¾ážáÞá ^â>â-~â/¾â1~ã5¾ãþã!žãAžâG>ãK^äCÞãSþäUžäWþå]>æMæg^æQÞæ[¾æuþæw>çyþç}>èY~èiè‰ç¾ç“Þè‹^è›~ééŸ~꥾ꕞê¯Þê™^ë£>ë½~ë~Û6" ;rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/range.png000066400000000000000000001412041431412030200244670ustar00rootroot00000000000000‰PNG  IHDRT¤FÚgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝut×ÿÿq Ti! Á‚“‰@AÜ]Š[(w(nÅݵPœâR2Ü­@qw(’ß—Ïù¦¿Í¦Ødó|ì9s8mvwæÎ{vïÜ×ÎÜ (ô‹Ð/B¿°€dCä¤ “ɦ €ø“ì`ñßCS†¦ Mš"4Eh #Ü7ÂÆãƒñÎxg¼3Þo·ÆkãµñÚxe¼2^/ŒÆ #Ì3ÂŒgÆ3ã™ñÔxj<5þ1þ1þ1ÇÆ#ã‘ñÈx`<0÷ûÆ}ã®q׸kÜ1îwŒ[Æ-ã–qÓ¸iÜ4®×ëÆ5ãšq͸b\1®—ËÆeã¢qѸh\0.Œ¿¿¿sÆ9ãœqÖ8kœ5ÎgŒ3Æiã´qÚ8iœ4N'ŒÆ ã˜qÌ8f5ŽGÃÆaã°qÈ8d2ŒÆ~c¿±ßØgì3ö{Œ=Æ#Ô5B ÝÐ ÝÐ ÍÐ ÅP Å Ù#Ä1v»ÝÆ.c—±ËØiì4vÛíÆvc›±ÍØfl1¶[ŒÍÆfc³±ÉØdl2þ0þ0þ06Œ Æ:c±ÎXk¬5Ö«ÕÆjc•±ÊXeününün¬0V+ŒßŒßŒßŒeÆ2c™±ÄXb,1‹ÅÆ"c‘±ÈX`,0óùÆ|c®1טkÌ1æsŒYÆ,c–1Ó˜iÌ4¦ÓéÆ4cš1͘bL1¦“ÉÆdc¢1јhL0&Œ___qÆ8cœ1ÖkŒ5F£ÑÆ(c”1ÊaŒ0FÃáÆpc¨1Ôj 1†CŒÁÆ`c°1Èd 2ŒF£¿Ñßèkô5ú}Œ>F£—ÑËèeô4z=îFw£»ÑÍèft3º]®F£‹ÑÅèlt6:ŒNF'#Ø6‚F£ƒÑÞho´7Úm¶F£ÑÆhe´2Z-–FK£¹ÑÜhnühühüh45šM&F£‰ÑØhl46 †F£ÑÀ¨gÔ3êuºF]£¶QÛ¨mÔ2jµŒF £†QݨnT7ªUªF£ŠQŨdT2*ŠFE#Ð4 F£‚QÎ(g”3Êe²F£ŒQÆ0Œ£”QÊ(e”4J% ?ÃÏð3ŠÅ↯ákøÞ†·ámx^†—QÔ(j5ŠEŒ"†§áix†‡áa2 …Œ‚FA£ ‘ßÈoä7òùŒ|F^#¯‘×Èmä6rn†›áfä4r9F#‡‘ÍÈfd3\ WÃÕp1\ ÃÙp6œÌFf#³ád8N†£áh8†ƒá`d02ŒôFz#½agØvF:#‘ÎøÁøÁøÁøÞøÞøÞHc¤1Òßßßßßß_________©ŒTF*#…‘ÂH¡Gèz„þAÿ Ðßëïõ÷ú[ý­þV£¿Ñßè¯ôWú+ý¥þR©‡éaz˜þ\®?ןêOõ§ú?ú?ú?úý‰þD¤?Òéõ‡úCý¾~_¿¯ßÓïé÷ô;úýŽ~[¿­ßÖoê7õ›ú ý†~C¿¦_Ó¯éWõ«úUý²~Y¿¬_Ò/é—ô úý‚þ·þ·þ·~N?§ŸÓÏêgõ³úýŒ~F?­ŸÖOë§ôSú)ý„~B?¡×ëÇõ£úQý¨~D?¢Ñé‡ôCúAý ~P߯ï×÷ëûô}ú>}¾Gߣ‡ê¡z¨.hº¦kº¢+º¢Ëº¬Ëzˆ¢‡è»õÝún}—¾KߥïÔwê;õíúv}»¾MߦoÓ·è[ô-úf}³¾YߤoÒ7éèèèô ú}¾N_§¯Õ×êkõÕúj}µ¾J_¥¯Ò×××Wè+ôúoúoúoú2}™¾L_¢/Ñ—è‹õÅúb}¡¾P_¨/Ðè ôyú<}ž>WŸ«ÏÕgë³õÙú,}–>KŸ¡ÏÐgèÓõéút}š>MŸ¦OѧèSôÉúd}²>QŸ¨OÔ'èô ú¯ú¯ú¯ú8}œ>N£ÑÇè£õÑúh}¤>R©ÐGè#ôaú0}˜>TªÕÑÑÑëƒõÁú@} >P Ðèýô~z?½¯ÞWï«÷Ö{ë½õ^z/½—ÞCï¡÷лëÝõîzW½«ÞUÿYÿYÿYï¢wÑ»è?é?é?éôNz'½£ÞQï¨wÐ;èôvz;½ÞVo«·Õ[ë­õÖz+½•ÞJo¡·Ð[èÍõæzs½™ÞLo¦7Õ›êMõÆzc½±ÞHo¤7Òè ôz}½¾^_¯«×Õëêuô:z½–^K¯¥×Ôkê5õêzu½º^M¯¦WÓ«èUô*ze½²^Y¯¨WÔ+êAz¤êz ^^/¯—×Ëéåôrz½Œ^F/­—ÖKë¥ôRz)Ý_÷×ýu?ÝO÷ÓKè%ôº¯î«ûê>ºî£{é^º—^L/¦Ó‹èEô"za½°^X÷Ð=tÝ]w×Ýõ‚zA½ ^@/ Ðóéùô|z^=¯žWÏ­çÖsënº›î¦çÔsê9õz=‡žMϦgÓ]uWÝUwÑ]tÝYwÖõÌzf=³î¤;éNz&=“žIwÐt=£žQϨ§×Óëéu{Ý^·×ÓééôtzZ=­žVÿ^ÿ^ÿ^O£§ÑÓèßêßêßêßèßèßè_é_é_é_ê_ê_ê_è_è_è©ôTz*=…žBO¡EhZ„öAû }ÐÞkïµ÷Ú[í­öV{£½ÑÞh¯´WÚ+í¥öR{©…iaZ˜ö\{®=מjOµ§Ú?Ú?Ú?Úcí±öX{¤=Òi´Úí¾v_»¯ÝÕîjwµ;ÚíŽvK»¥ÝÒnj7µ›Ú í†vC»¦]Ó®iWµ«ÚUí²vY»¬]Ò.i—´ Úí‚ö·ö·ö·vN;§ÓÎjgµ³ÚíŒvF;­ÖNk'µ“ÚIí„vB;¡ÓŽiÇ´£ÚQí¨vX;¬Öi‡´CÚí€v@Û¯í×ök{µ½Ú^m¶GÛ#:âc@S5US5ES4E“4I“´-D ÑþÔþÔþÔvi»´]Úm‡¶CÛ®m×¶k[µ­ÚVm‹¶EÛ¢mÒ6i›´ÚFm£¶AÛ mÐÖkëµõÚZm­¶V[£­ÑÖh«´UÚ*m¥¶R[©­ÐVh+´åÚrm¹¶L[¦-Ó–jKµ¥Úm‰¶D[¤-Òi µ…ÚBm¾6_›¯ÍÓæió´9ÚmŽ6[›­ÍÖfj3µ™Ú m†6C›¦MÓ¦iSµ©ÚTm²6Y›¬MÒ&i“´ Úm‚6^¯×Æiã´qÚXm¬6V­ÖFk£´QÚ(m„6B¡ ׆kõ¡ÚPm¨6D¢ ÑkƒµÁÚ m6H  ÐhýµþZ­¯ÖWë«õÑúh}´^Z/­—ÖSë©õÔºkݵîZ7­›ÖMûYûYûYë¢uѺh?i?i?i´NZ'­£ÖQë¨uÐ:h´vZ;­ÖVk«µÕZk­µÖZ+­•ÖJk¡µÐZh͵æZs­™ÖLk¦5ÕšjMµÆZc­±ÖHk¤5Òh ´Z}­¾V_««ÕÕêju´:Z­–VK«¥ÕÔjj5µêZu­ºVM«¦UÓªhU´*Ze­²VY«¨UÔ*jAZ¤UÐ*h´òZy­¼VV+«•ÕÊhe´2Zi­´VZ+¥•ÒJiþš¿æ¯ùi~šŸVB+¡•Ð|5_ÍWóÑ|4ÍKóÒ¼´bZ1­˜VD+¢Ñ k…µÂš‡æ¡yhîš»æ®Ô jµZ­€–O˧åÓòjyµ¼Zn-·–[sÓÜ47-§–SË©åÐrh9´lZ6-›æª¹j®š‹æ¢¹hΚ³æ¬eÖ2k™5'ÍIsÒ5GÍQsÐ4-ƒ–AË ¥×Òké5;ÍN³ÓÒié´tÚÚÚÚ÷Ú÷Ú÷ÚwÚwÚwÚ·Ú·Ú·Ú×Ú×Ú×ÚWÚWÚWZj-µ–ZûBûBûBK©¥ÔRj)´Z 5\ WÃÕêõƒúN}§¾SߪoÕ·êkõµúZ}¥¾R_©/Ôê 5L SÃÔgê3õ™úT}ª>UŸ¨OÔ'êcõ±úX}¨>TªÔêõžzO½§ÞUïªwÕÛêmõ¶zK½¥ÞRo¨7Ôêuõºz]½ª^U¯ªWÔ+êõ’zI½¤^T/ªÕ¿Õ¿Õ¿Õóêyõ¼zV=«žUÿRÿRÿRO«§ÕÓê)õ”zJ=¡žPO¨ÇÕãêqõ¨zT=ªQ¨GÔCê!õzP=¨T÷«ûÕýê>uŸºOÝ£îQ÷¨¡j¨ªêª®êâ@UTEUTY•UY QCÔu·º[Ý­îRw©»ÔêNu§º]Ý®nW·©ÛÔmêu‹ºEݬnV7«ÕêFõõõu½º^]¯®SשëÔ5êuºZ]­®VWª+Õ•êïêïêïêru¹º\ýMýMýM]ª.U—ªKÔ%êu‘ºH]¤.Tª Õùê|u¾:O§ÎSç¨sÔ9êlu¶:[©ÎTgª3Ôê uš:M¦NU§ªSÕÉêdu²:I¤NR'¨Ô êxu¼:^§ŽSÇ©cÕ±êXu´:Z­ŽRG©£Ôêu„:\®W‡ªCÕ¡êuˆ:D¬V«ƒÔAê u€:@ öWû«ýÕ¾j_µ¯ÚGí£öQ{©½Ô^jOµ§ÚSí®vW»«ÝÔnj7õgõgõgµ‹ÚEí¢þ¤þ¤þ¤vR;©ÔŽjGµ£ÚAí vPÛ©íÔvj[µ­ÚVm­¶V[«­ÔVj+µ…ÚBm¡6W›«ÍÕfj3µ™ÚDm¢6Q«ÕÆjCµ¡ÚPm 6P¨õÔzj=µ®ZW­«ÖVk«µÕZj-µ–ZC­¡ÖP««ÕÕêjUµªZU­¢VQ«¨•ÔJj%µ¢ZQ­¨ªj ZA­ VPË©åÔrjYµ¬ZV-­–VK«j€ ú«þª¿ZR-©–TK¨%Ôjqµ¸Z\õQ}TÕ[õV½Õbj1µ˜ZT-ªU «…Õª§ê©zªîª»ê®R ©…Ôjµ€š_ͯæWóªyÕ¼j5šGuSÝT75—šKÍ¥æPs¨9Ôìjv5»êªºª®jV5«šUuVUg5‹šEÍ¢:©Nª“šIͤfRTÕAͨfT3ªéÕôjzÕ^µWíÕtj:5šVM«¦U¿W¿W¿WÓ¨iÔ4ê·ê·ê·ê7ê7ê7êWêWêWê—ê—ê—êêêj*5•šJM¡¦PS(J„¡|P>(”÷Ê{å½òVy«¼UÞ(o”7Ê+å•òJy¡¼P^(aJ˜¦Jo¥·Ò[é©ôTz*=”J¥›ÒMé¦tUº*]•.J¥‹ÒYé¬tV:)”NJ°¬+”J¥½Ò^i¯´UÚ*m•6J¥ÒJi¥´RZ*-•–Js¥¹Ò\ùQùQùQiª4Uš*M”&J¥‘ÒHi¤4T* •úJ}¥¾RO©§ÔSê(u”:J-¥–RK©©ÔTj*Õ•êJu¥šRM©¦TQª(U”ÊJe¥²RQ©¨TT‚” %H© TP*(å•òJy¥¬RV)«”QÊ(e”%@ PJ)¥”RJI¥¤RRñSü?¥¸R\)®ø*¾Š¯â­x+ÞŠ—â¥x)E•¢JQ¥ˆRD)¢x*žŠ§â¡x(J!¥RH)¨T *ù•üJ~%¯’WÉ«äQò(y7ÅMqSr)¹”\J%‡’CÉ®dW²+®Š«âªdU²*YgÅYqV²(Y”,Š“â¤8)™”LJ&ÅAqP”ŒJF%£’^I¯¤Wì{Å^I§¤SÒ)i•´JZå{å{å{%’FI£|«|«|«|£|£|£|¥|¥|¥|©|©|©|¡|¡|¡¤TR*)•J %….‡ËáòùƒüA~'¿“ßÉoå·ò[ùµüZ~-¿’_ɯäò ù…&‡Éaò3ù™üL~*?•ŸÊOä'òù±üX~,?”Êåòù|O¾'ß“ïÊwå»òmù¶|[¾%ß’oÉ7äò ùº|]¾._•¯ÊWåËòeù²|I¾$_’/Èä òßòßòßò9ùœ|N>+Ÿ•ÏÊgä3òù´|Z>-Ÿ”OÊ'åò ù„|L>&“ÊGå£òaù°|X>$’Éäòy¿¼_Þ/ï•÷Ê{å=òyü§ûâK^$Y’%y·¼[Þ-ÿ)ÿ)ÿ)ï”wÊ;åòy‡¼MÞ&o“·Ê[å­òfy³¼YÞ$o’7ÉÈÈÈä òy¼N^'¯•×ÊkåÕòjyµ¼J^%¯’———WÈ+äòoòoòoòRy©¼T^"/‘—È‹äEò"y¡¼P^(Ï—çËóåyò‹û,¶³‚}d³íœ6"mDÚt>й÷†Þzoܸ9psÁÆlìø»ãçï—¿_þ~å®”»RîJ÷Ýt`ì3öûDÝÆÕŠLôšè5Ñ+rkT«T­RµJqû.@rCL Hc‡Ž:vhä3S7ÃÍp3&üPèC¡…roͽ5÷VàäÓÎj˜¦†yé^º—n »k»fì×'l[ض°mT ·€ € ê츳ãÎŽ³<3µpÖÂY f” J%Cô!{Ê6ÚY\MÛíÛnßvûÖ.ˆ;6k8ýàôƒÓF~ÍŒ¡C3†R‡Àç!&$”´i#ÒVî]¹wåÞ‘ÏIÅív2îj4¢ÑˆF#€m»EôÛqxÇá‡ÛųØÜ´ùÕ˜Wc^±|MqƒtªøTÀÀ€²b튵+ÖZž“.r[ä¶È-aÖaM‹5-Ö´ˆI¤ÇþJêíl9J6*ÙhÕ/«~YõË»+vWì^÷{Ýïu?ñï•WN\9±DŸ}Jô‰ïm™×j^«y­¨F ö€ €ñîMð›à7Á:èX cä³QWwWwW÷øŽ¸ÞU}Wõ]Õ»gìž±;æ×t²×’n;ßž}{öíÙÑ¿oß.¾]|c²â&ÏÑ¿šsç&ÎMb³EÖ®.T¥P•BUÞ6yÛämj ˆ ``@¼³vucÌC¸˜AÝ%ÏKž—<·ìß²Ëþþ=ú÷èßÃ2x&¶ívn«´UÚ*ÖÞ±Á²Ë,ûäwO‘6"môÛ"n7›5§&€Ø#&Ä#qCÝ|còÉÅÕÆ>cŸ±/6¯¸ôáÒ‡K (P0ngueß%Åv¾Ûÿnÿ»ý­½Wæþ™ûgîcÏ=7ö|Þë_»qíÆµâu,_ßþ™ý3ûg±Ù.5µšZMmùÊ"\WÒS@ô€ €ñè·¿øí€µ@+öà¶5ÛÖl[cØwI±çv›Ûmn·Øßö9zÑoÑüÚókϯýy¯ž5÷ÄÍ7OÜœ=iö¤Ù“Z~×ò»–ß•lT²QÉF"<W¡9lsØæ°-ÇÓOs<-Q8¢pD=µžZO8(pP ’AÉ dxïÿÞÿ½â¶ÏÓëO¯?½>ýàôƒÓÖt®é\Ó¹èÕ¢W‹^Í4;ÓìL³³§Ëž.{:ß™¾3}gvuêêÔÕIÎ)ç”s&̾WNÊ=)÷¤ÜUVmXµ¡gVϬžYꉫW7nÜ<°ÞÀzëýÝìïf7KÜú·áÕni·´[=ô<ÒóˆXC÷’î%ÝK:þîø»ãïYý³úgõ/œ¶pÚÂi,þcñ‹‹[1?}ú<4ȧֳ2Ê|°<’iH¦!™bÿúÀ #©´såÞ•{Wîmí½>ï3ÜÒÞy{çígí]ÄgHl^_|ÎX¾r­‚VA£€èV}jhq¯Ó½N÷:8<âðˆÃå—?^þxÎk9¯å¼ùzÇÿxË´i#Ònȵ!׆\e—}\öqÜ-3×Í\7s]\ÝD4æí#Bߨ¬ù»+vWâ8(úçé?OÿyÜ3¸gpÏØ¬›xØTΧZ_t}ÑõEó÷Ëß/¿Ï[gWwWwWwñï[+o­¼µ2>Ž £9Žæ8šÃÚ:œYufÕ™U±—t>йVšO{Û^;?v}ìúØÕÚ»ˆŸ˜ÄÙ;F;pìo-~úC}Ÿ‡˜°*æƒïSïM½7õ^ô},®Žm4¢ÑˆF#ì„Kâ¯}ÄuϽä^r/9ök+›¸ºîöXúcé¥M€™¸Vøì¸³ãÎŽ‹IË|^x#bfqåtÜV‚sç&ÎMâ#Rêq±ÇÅ-ßQ\ù¸!°íµ³˜OÚÚ»ˆû"Äí;Æ÷ÖY{Mñ¹JuÖVE?¬ÿ®ê»ªïªv˜Úaj‡©1‰¬ÀaÛ¶…m+ѧDŸ}ìPµJÕ*U«$®c‹öúf蛡oâvÅ ¢Å­?oELíY¨J¡*…ª<¨ö Úƒjq =òxäñÈ# `@Á€‚ S±?v¢ŸÇ´ãðŽÃ;7óÑMœÛY̼kí]Æ;tìиݺ1“ÇL3ÙÚ;.r[ä¶È-6¯ß~Iû%í—X¾²¸)=U XCL X}hÑ©m§¶ÚÆ¥}Êø `>5V,íRÚ¥´ËÿÈøGÆ»ýïö¿Û_\÷,®ÛëÔ9¨sPü…”bÖÛ‚ 6.Ø8úWsˆŠ–¼~úúéë§ÅM³Å­’ÅL¨ §5œÖpšås+Ψ8£âŒ¸Zu‹™}£5q»ÝU¿¬úeÕ/‘kãIº'鞤;\úpéÃ¥ÅÍÉs¤È‘"G «·®T3±9vD•Z{—å”[PÎÌG7ÑZRlgkWœ «»®îººkÜnÝʉ+'®œhíûNé;¥ï”ؼ¾˜±›*>00`Õ§œ™fgši¶!vuÙÕeW—ãÏ??þüæö›Ûon\ä×Ámô¯iySèO]ÿŒ¡C3†Z{ýË,k°,¾Û'òuÒ±ÍÆ½÷jÜëS×¶ß°~Ãú ‹~ÎÎ¹Ýæv›Û-æíy¿ÇÇU¶S¾žòõ”¯£ŸÇwÇ„vLøÔunù]ËïZ~gí•sÌu2×ÉØÜ$|Pà ÀAf®€m¯«—¨^¢z kï"~h·[§ÿ¥ÿ¥ÿeõgïk½¯õ>6¯¤ð‘ÂG [{ý!™†d’‰,VÅ<Ì+v¢Ø‰b'®Ø]±»ò ‘†œSÎ)ç´öš^º—î¥Çß,’‘¯Kþ¼w‰IË”?^þxùãŸ]ÇÕ:‹™ƒ£ÍO~-×6æ×[Çä]ÄÕÆÖž›¹æþ™ûŸ¸yâæ‰›ŸY!i#ÒF¤~ ‡ÝvØýÏ«º2?”ù¡ÌÖ~$A̧h|´³eÿÊþ•­½Ëåì—³_η[wÉó’ç%Ïèïy›m|Ûäm“·M¢ÿt¥ÆKÀÀ€U1‰. GŽ(!nhü©¯?{ÒìI³'Y{åÉŽ“';Æ~+Îÿtþ§ó?Y{— §2œÊp*þàƒ?üñàŸúÊâ6ËÖ^3ò5Í1yµm´ÐÆÚ«‰ÛeÇwÐþ©¡×È‘!#C¬=w±Ãb‡Å±_gqkkŸå>Ë}–[¾K6×l®Ù\?õ]ÄœÖÖÖ<è· ß‚~#æS4>ÚY|[{qÇ…¸ÝºûMï7½ß4úÅßg˧~É00`UL¢ qÞÏ{ýÞzoè½A\iù8žêxªã©â`3bp­g|À‘¯ýÔW¾p1àb@ì×9úëç„cé¥?–>öÍ|nÀ¹çÄ>~Wõ]ÕwU­=«È“"OŠ<‰ÛÈgã—¿Üøe\Õ†’AÉ d°ö:"ŒO*G7ŸI«soͽ5÷Vkï"fÛ­³˜[{Çüýò÷Ëß/öÛ(æ¦V€˜#&¬Š¿€3!½œõrÖËY ¯;¾îøºŸ·Îч 1_çègèôé;ÓwfÜîÁØÀûÆï¿o¼µg:vèØ¡q[!â:àèoŽóW›~púÁéãêÕëè&TKŠíœ¥S–NY:Y{ñs¸Ýºèb"féŽý6ÎZ8kᬅÖÞEÜI‚J"#&¬Š>´½hô¢Ñ‹Ì¿»k»fÂÀdü#ãã¯ýc²Îâ6ÚÖž;üÂð Ã/ÄmkGëæ˜¬ù”¯§|=å븽¥vlZ»å»–ïZ¾‹ùët{Ûím··Ö^mm­µµÖÖ2ÿÑMœÛÙþ™ý3ûgVß%mDÚˆ´q»uáYó†gìG¶ê—U¿¬úÅÚ»ô’{ɽd* ˆŒ˜°*úÐB\]jÎ5WЮ/º¾èú¢9¯å¼–óZÂÀ±*c¿ÎÍ*6«Ø¬¢µçn>»ùìæ³qÛò_n|¹ñelÖ¼q¯Æ½÷²ö¬'鞤{’.!«=psàæÀÍ1¯ê%ª—¨^ÂÚ«…” )RÆüG7pRlçÌý3÷ÏÜßÚ»ˆ+Ýãvë^y5æÕkïè4Öi¬ÓØØoãŸÍÿlþgskïRë}­÷µÞSi@dÀÀ€UчWS^My5e¯Õ{ÿ÷þïý¯Ø]±»ò1N›×j^«y­ÄŒÂUVmXµa6×l®Ù\í>Qܶϭ•·VÞZí“uöëà×Á¯ƒµç^¨~¡ú…êq»wb>ðç­s‹¼>1iȳ[:šãhŽ£9Ìt'Åvv3Ü 7ÃÚ»ˆùzãvëþIñOŠRX{Ç\'sÌu2öÛx¸ôáÒ‡K[{/ÝK÷Ò©X 2``ÀªèC‹žþóôŸ§ññ¾ }(ô¡Ðþûî8âðˆÃ#×Së©õÔøŽúâ¶}ÄVÄ_ûÇd t,б@GkÏ}ìúØõ±kÜî»ÕT{P-6ký:'ª fkgϬžY=­ÞY›q»uwûßí×ê5Ç‘×'6ïr9ûåì—³[{—|còÉ7†Š"#&¬úÐ"Ng” Û¶-lÛ¨õ£ÖZ·^äÛ&dßí“wqnâÜʼnµç¾mò¶ÉÛ&q[3Ñß6&kž¥S–NY:™'Îñ4ÇÓOc¾O£¿ o|\…™XÕ³µsôWÏÿÝìïf7‹Û­;;î츳㬽cÉF%•lûm7~·ö..U]ªºT¥b€È€ €«&´PÃÔ05,ÏŠ<+ò¬ˆMP'‚·R~¥üJùµ_Ò~Iû%rmȵ!Wb]ßí“wÉp*é §2³/ÇfͶ9lsØfž8òúĤìŸÙ?³fíÕÄ ÌÍt§%Åv®ý¨ö£Ú¬½‹šZM­¦ŽÛ­“sÊ9åœÖÞ±Fjˆý6Fÿ©’þFúéoP±@dÀÀ€UñZˆ›<Ç<Š·úlž¿yþæù§ý=íïiKE¤"R‘˜¬Uò €#ÏÁ™0·€¯›5~Ó—³^Îz9+±Ž…˜üeäë-=òxäñÈÃüG7qZRlç>‹û,î³ØÚ»¬X»b튵q»uËÿ\þçò?­½c/¹—ÜKŽý»ˆ£ÆÚ»dõÏêŸÕŸŠ"#&¬Š¿ÐB\{šwVÞYygY{}q%eËïZ~×ò»Ó;Nï8½#þÂZ[ €½t/ÝK·öÜ‹.ÄmÍD?[gLÖ<úu¾vãÚk7Ì|ÔDž‘ÔÒ…êª_¨nþ£›8-)¶óüÚókϯmí]†_~aø…¸Ý:1G»µwœ×j^«y­bÿ.⨱ö.‘g §Þ˜°*þB‹è¯Ñï®.»ºìêbž05!Û'®Ö¹rïʽ+÷¶öÜ­»¶îÚº+nkfçàƒwŽÍšWmXµaÕ†Öžu¤ð‘ÂG ›ù¨ñÞâ½Å{‹µõ?øãÁþhþ£›8-)¶³¸¾µw©•¦VšZiâvëÄkZ½ét˜¦†Åþ]t>Ðù@gkïâ;Ów¦ïL*ˆŒ˜°*þB‹:—ë\®sÙÚ+^4zÑèEq; Ÿ<àm´Ð&úvŽÛš_w|Ýñuc³æƒ½{ö¶ö¬/7¾ÜøÒÌGM=µžZOµ¶þ" 7ÿÑMœ–ÛùyèóÐç¡ t«ä´i#ÒZ{¯Œ¡C3†ÆÕ{혰cÂŽ ÖÞ«Á²Ë,£b€È€ €«â/´(v¢Ø‰b'¬½òñTÇSOW[qõÙÕgWŸ%ÏxÓíM·7ݶöÜR~¥üJùÅmÍTÐ*h´Ø¬ùæ³›Ïn>kíYMÚ5iפ]Ü®óÍí7·ßÜ^¢OÔí–vK»óWë7¬ß°~ì­ÿï ~_ðûóÝÄiI·æCw†î ÝýÕÆqõ^böbkïÕ¿Gÿý{PiÀ¿zìÀÀ€5ñ!dšiv¦ÙÖ^9l[ض°mqµë‹®/º¾hò €T{PíAµ„ „b>ûoôïøÈã‘Ç#kÏJ#ýô7â66³vͱ}Jû”ö)?õ½¢Ÿ‡uÆî»gì6ÿÑMœtÛyö¤Ù“fO²ö^‡wÞqxìßå§ú?Õÿ©¾µw™Ûmn·¹Ýâj‹¦œ~púAkïµ Ü‚r ÊQi@dÀÀ€UñZäH‘#EŽÖ^ù䙓gNž‰ýúßoz¿éý¦l\°qò €cò:⪱_Û6GÛms4öpLÖ9®B¬Rü“â«uùj昿¦˜å×Úkvû¶Û·Ý¾5ÿÑMœtÛùÖÊ[+o­tØæ°Ía›å{EþñÍç½þõÓ×O_?mm[ÄûÞž}{öíÙqµE⨱öއjªq¨•DFL X¡…eÿÊþ•­½²˜G66¯/®"ùíˆm;Þ³zÏê=«ã/ˆŠþ¦ÍŸ÷^ûî¸`ü­ó»ªïª¾«Z½DõÕKX{eqíø§¾òÛ&o›¼mbí5Eå›ÿèŽïøç¼ÿýHŸ¢ñ×ÎÑ¿cýMõ7Õß$æñýÔWϵöʽä^r/9n·ËÚ÷…ÓX§±Ncù±`‰˜°*þB‹!™†d’ÉÚ+g Íš1ôóÞåÏæ6ÿ³yŽ:è·‘dB¶OL^ÿSß%ú×Ép*é §>õ5£Ÿc8¾¯]¶fÿÌþãìÎ1²ž¤{’îIº–ßµü®åwÖ^Ùw¦ïLß™±Ù y k3TW|¼»m{‰µbfkk×Gž5Šþ¶ÏâÚâ;c36®¶âÅŠ+^¬°öŽ‘ÀÁ÷500`Uü…7û»ÙßÍ"‡ŽÑÇ{jj5µšú곫Ϯ>WX>v}ìúØUÜ,z溙ëf®+ó¡Ì‡2¢'¢ß"1‹mLâønŸ˜¼þ§¾‹¸!vÎk9¯å¼“W×¿ÞØscÏ=o‚ß¿ ¾Ûÿnÿ»ýEÄÞ¬b³ŠÍ*Z>«ÝÆvÛm´öšŸzÅžØË¹·æÞš{kLÖYÌ<ú×Ü¿æþ5÷yèóÐç¡K=,õ°Ô¾ñûÆï?Ñk¢×D¯˜áÇÒK,}löݸîãºënæh“˜vŽìŒdü#£8Þ_÷{Ýïu?ñy¸b튵+Ö–èS¢O‰>Ñ¿‚˜‹7n·(ú»üÚú×Ö¿¶æ›°DL Xe†€36²tÊÒ)K§_nürã—Ÿú\qm«ùÛçó^S´LܶvÅgTœýßDžû9æë|<ÕñTÇSåxšãiާñW-â«»®îººkì÷ ¡ €cìÛö§hÂlc|Òö¸Øãb‹ñ±-SïM½7õžµ÷=;îì¸³ãø¦,VÅwh!n+„ÏrŸå>ËϬ:³êÌ*ñ_ÖÖZ[km-àȯó«£Wid¥‘•FŠy—Å5»Öþ2ò­¹?o= yòˆãšquwuwußørãË/ã6IJöŽÍó7Ïß<¿™n`Ûhg!úy©c£ï”¾SúN‰¿­GŠåûzé^º—ÎÍŸk€ €«(´H‘6"mä(îó¢ˆ\'sÌuÒêmH#½ ° ÂÚno»½íö6ò ·cBÌe; Í€6ÚD^“ Õ/T¿PÝÚ³Š^-zµèÕØ¬ù«1¯Æ¼#^!sÿÌý3÷ÿ¼j·zns´ÍÑ6Go­¼µòÖÊø“†_~aøËwϳ"ÏŠ<+7¾"Nílm}>o–ôÈ?ÂØÕeW—]]âqý£ýÄqxÄá‡ùެ!&L$r/½ÕÃV[=,ò¤È“"O²¹fsÍæš14chÆÐ¼³òÎÊ;+ `@Á€‚?çý9ïÏycEˆ¹-Å_–v)íRÚEÜ”8{ºìé²§ ܸ9psç ÎAƒÎ 87àÜ3´ÆçýßÏ{¯)_OùzÊו{Wî]¹wÁÆlìø»ã‹¸H´ÏèE£^d-4Ý?pÿÀýcr›èد³˜åW¼Z[¥­ÒVU!*DT‹¨œÂ…# Gˆy‹g-œµpÖÂÛ³oϾ=;¾ã·+vWì®ØÙ§´OiŸ2iœ‰LÚ^l¶vÄLçâ݃{÷ îYþxùãåçï—¿_þ~Û¶9lG}­‚VAŸŠÚ-í–v+aÖÙØgì3öY»U»˜žoLÀ`` ˆ¿X(¹NñÝ>ÛÖl[³mµ0OÄH ¿Î‰»­­Iß.¾]|©±È?Ëø8Wt¤ùži3Ôj¯‰øqåšÔßTSýMÔ=``ˆ33×Í\7sµI\aœÜÚÄZ(.nx.âÏä\3÷›Þoz¿iä–Wçò%Oo‚ß¿ ×î[5;ï¼s0­D˜€7@ÎyíÿøÎôé;3nß«Îå:—ë\¶'Ïð&òív“玣wâæ‰›'nFn q³nŽÜäIÌ¿nyŒøuðëà×㈠``6Î.bÿ.—³_Î~9»µ×wnâÜĹIro6¾ÜørãKË–iÚ iƒ¦ ’s}Žë>®û¸î‘Ûd~íùµç׿ÈMžÄay¤lÙ¿eÿ–ý´ÀÀlܘÉc&™l-šmž¿yþæù#ÒF¤Hûy¯ÿÞÿ½ÿ{ÿÚj?ªýÈÚ»´ÛØnc»Éúê½´i#ÒZ¶ŒÃ6‡mÛ’[Ë\?}ýôõÓËÎ-;·ì\äÖÈ7&ߘ|c¸Ê3yz’îIº'é,‘R~¥üJùQ@̰q"lK#ýô7¢¿øŸÿ¤øçÎÑy<òxä!nØkí5íSÚ§´Oyðǃ?ü‘}¡¦VS«©¹´µ‘t>Ðù@gê$y½hô¢Ñ‹,kC SÃÔ0Úˆ9``É‚]Œ‰+†åœrN9çµ×n\»ñ¶ÉÛ&o›Üí·ÿÝþ¡;Cw†îXo`½õbòj½ä^r/™«÷¢ß.U]ªºTzrh7ÃÍp3j¨Q FÁÞƒ½{S!ÉÙc×Ç®]ÅQù¸h«´UÚ*Ôð©€ €$ ¯Æ¼ójŒ]*íRÚ¥´ËóÐç¡ÏCiÿÈD”žÕ?«V®¦ðKž_òü’ÇòŠð{îuº×‰ö>00€dDıñýŠù€Ã¶…m ÛF›[cÙnNcÆ:%ôBò!ª=sÿÌý3÷|,¬îººëê®üDø<ÀÀ’)q6ä^Ò½¤{ÉØ‡¾%•lT²Ñæ³›Ïn>Kló©{!9_Œä¬Ïâ>‹û,Ž\ùÚvjÛ©-GÀÀ’µð¬áYóŠ3#1k•öUÚWi_°qÁÆ‹Y93†f ÍšgEžyV”èS¢O‰>õ7ÕßTÓÔ{SïM½wâæ‰›'nØ|ž+^¬x±B´^)¿R~¥üÊ/¼üqÚ¶íéõ§×Ÿ^\ùµÒÔJS+ •Ä00D!úë}ỉ˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ &`#€ €Ø``6‚˜€ þÈØãÇÞDzìK¤ÇþDzH¤ÇÁJ¤ÇáDzI¤ÇÑDzK¤ÇñDzœH¤ÇÉDzœJ¤ÇéœI¤Ç_‰ô8›Hs‰ô8ŸH¿éq!‘éq)‘—éq%‘Wüq-‘×éq#‘7éq+‘·éq'‘wéq/‘÷éñ ‘éñ(Áéñ$‘ÿ$Òãi"=ž%Òãy"=Âéñ"‘/éñ*‘¯éñ&‘oéñ.Áïéñ!‘á‰ôˆHœGhŠDz¤L¤GªDz|_`°YÀ`#l6ØÁ’› €Ô|PóAM#4Þ{éÁœÄÌFÌlÄæŸ8ùÌCœ|f N>sŸN¤Gò™{8ùÌ:œ|æN>3 3ǰíÍ.œXs 'ŸÙ…™W˜…™K˜Y„™E8±fN>ó3s0s3[0ó3OpbÍÌ ÁÌ lúYtzÐéA'›½€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`°À`#€ÀF€ A 6‚l0Ø`à“­^¼zñêÅ=öhØ£¡ø÷Õ°«aWÃh$.`à“ÙYý"ô‹Ð/h$.`à“Ü€€OF s">0̉ødÀ0'`à“Ü€€OF s">0̉ødÀ0'`à“Ü€€OF s">0̉ødÀ0'`à“Ü€€OF s">0̉ødÀ0'`à“Ü€€OF s">0̉ødÀ0'`à“Ü€€OF s"þdûÆì³oŒñÆxc¼ÿ¦MáÓç‡Oß«ìUö*¡F¨j?xüàñƒ´ ’ƒ®ýsíŸk{^ìy±çÅžÉ{&ï™|»êíª·«Ò2Hþ~÷÷»¿ßíÉ¿'ÿžü{›ìm²·É›:o꼩CË 98°çÀž{B›…6 m¶/×¾\ûrÑ&HFg޹öåÚ—KÔ¿8h$¢Ÿ#ú<¢ÿ#úB´ ’qž+ÎyÅù¯8¦eˆqN1æ)Æ?ÅX(-ƒä€æDñ çƒžzîj¸«á®†=Wö\Ùse®i¹¦åšfkâuÄkŠ×ïE›Û’ëÆu㺱VY«¬UÚTmSµMÕôÒ7Jß(öõãÓݧ»O÷‘£GŽ9zoÓ½M÷6}¶ùÙæg›is˜Axßð¾á}Ï?7þÜøa „ÕùºÎ×u¾¶‹#•ÓUNW9ÝL—™.3]N^:yéä¥wNïœÞ9Ñò0ƒ—§^žzyêð‘ÃG™ðj« ¯J_*}©ô¥¸ªÿ&{›ìm²wùÐåC—½tîÒ¹Kç"ÞE¼‹`ئð¤Ä“OJ(›”MʦûСB‡ Š}å;çüów?ÍúiÖO³6oÚ¼ió¦;ÕîT»S6‡yˆšõ)jUÔmìë_Gâ˜Ç—8Öhs˜Â»ˆwïDŸDôOD_%®z>¢%úT¢%úZ4¢o&úiì5Äq.)Î+Í\ÿâÜ\œ§³×WÄX¢W4gå‹ñX16+ÆiÙkˆdFH6l1~ñ$âIèœÐ9¡sÜ.º]t»ø™7àMãêí´¢G6¯yŠÏÝ[¾‘§ûæÕzíTfÔîì»ÓxQ7mñmâßâ¿‹¿/žûyï+ÖY¬¿ØÊ4!½÷zïõÞkÕèU£WŽÕôm?O¿Á©ÛÕÌ·aÉûa½ Û>jZ ïušó¼YÅíŒ< <‹‘~˜ÝÉ7ÏúÕã[[7­Zï—îƒÛ¬û0תܿf¿œñþç½o­nµºÕêv¡Ì…2ʰ7ñ©ž;ÏÕ†¯;vOùSÕQ; /è³zFË¢Õ¾™ïW´å âó'¾Ô·çÌöî:ï³4ïoMZu½ãúK©ñUvØÝJ¿1CÏ{ß¾Eúé[äá/yø {ŸêæÄ›oNlûSÛŸÚþôyèX6Ë•ôÙ}VÖíìò¨Z“þ5Üò7É2µf>¹Õ«Åßü±]Õåg õo»í·…*¶tš¿§€Ô`ÁxŸ¼3‚&võÈéçÞ±|åÌçbsÜÍuë:×õu×u^3»0>ÙñyÇçŸW²LÉ2%Ë|^º_q.àx¸óð¢ƒÝžÏ²/ûÊ£áÆU{“ëÔ óíjLªs§ø"uSí¿|_oQ½®·ÿÂN¶NÑw±Ï’¼}~ÈQ8K¯ØÔÿÿþ;üÃw‡ïßÍÞD̉šõ› øÁ+M–^}·Ê”·ÏÂN¿¬.œbëŒ)û½ýÕMóÊû¾6&-Z|‘\gNGß®SL,æUl–}¿{ ;oÔÎí¹û•¼mæÊ”,S²Œ8~Ù›øT¢Ï ú±ºÿï6eŠæù¡~‹à…Æq pÓÞ§7*Z|à®yw‹öÔoþå".ýüg»ÿó³ÿ¸ùÚ6Sz¼È¶¬lîšÍÒOÉôO–ÏŒÜDŸMôߨ›øTâœQœ?~æ l³gXc§;Yc ó»*ƒû¤Íõk£°ÉÕó5kÕxaXÁ|í2/Z¨cÛ;ËójÔrׂËž7<810ï›Js{¨9ï~R¹‡ó—±ú´>V«‹ówö&>•3㇟W¹uJ—ñ~ûƒ…›åZ5­Z™Éîƒ×¯®¢['ýPk o#Oµø͹vxq»í£jüà½nÉû o œºøoù6Þvsqñ‹Mý‹1[1~ËÞÄ' 3B²dSðÕWs\Íx4ðhàј<Õ‚óŒËºeÃU®SïœlÙ±Ìñˆˆàà  ¸ZŠ×¯/ÞëBÄ£GŠí¢XãÛþ"û‹ì/’!8Cp†à˜ï£vÓë¼ÎÕZÊ0»«oÞ—×C×Tðˆ8t(((®–Óþ±. ïÁ›õûÔìeXójü«ñ¯ÆÎ4:ÓèL1¯®Lå\–¤ïSÃmP7íç½ÛÚz.>üìYŸ¸Z½y&µ÷ºvwWÜ/´>`D«ÜÙ&|jýïúsן»þŒxñ:â5{ÖÜ›{oͤfR3é‚®"9² Z±¾â¾"—¯ýñiéZqÛs~2¶M¥r“¶…T×½‡4.Y°föOønroæÞ̽ÙéðÓá§ÃÙ¿ˆž¨Q31¯±Æ%+×Ì>g[ÈÔÞCžŒ•ï•›·=ÿkE·l.]kÅúQÙ‹\(â•/Ë ˜¯›8–ÅqÍþ…U¯#^G¼ý„Oí]äbÄúÄdÍÅ6Ší¥pãJØá°Ãa‡;¿ìü²ó˘셠3~÷]ºéç¿,Þ'n‡{b¾|‘רYþÔŒ?û^òø6æ_ »3íδ›Ûá_nt½ÑõFW¿G~üŤŠrÔ ú¹»Oú1W×̈Ûម/‹ç›ÔcKZ7¿šKZǨþ³ÈV [³úYý¬ÎGd:tŒù§h¥k=KçJÑoÇ^¥è³8ô‰ñ2øÆºK)‹žª¦8ÿ“u®w¡Þ…ze}”õQVö8þwîq5âêšêkª¯©óú_Ú/ȧðý÷E;DvJ„žsDppPÐÎq5Žøä(v0ks§\1Yçþ#üGø¿ôvÐÛAìv¢DmÄ¤ŠŠ,”Ú)×ÎqÓ¯ùäH¬žÿû¢ûOvZÚoؙŸp qŒ‹ãýAôDß F·ÜÌä_±²£WÍáµ~ë˜X=¿*3 íÞçC£ú]*ļþE=ŽÈÄù 87ŒI•û¶CÕì;{v‘FñL¬žÿÏå¶þâÙÇïh“õ®1š‡[œ×‹s|ö8"ã1ÿñgپ߾ÈÛ®EùS‰Õó×/ÖYQ¼OзÞ.1ºFYŒëŠ1^ö82#@HÂðƒF=hÐ+ WÀÜ2Îg—ko§Ã‡j×?ä×"b}pÕ ¯Äú‹b¹>¸j—X7±žÿqÕE¯€^½Ä¶S¾±q:ÓéL§cÔj٦ƽœ>—[n°>±†~¬-ßµÚïXrK×É7¼ÞÄd[z}×ë»^ß½Íù6çÛœÔ@r¶µÐÖB[ Ťfò,l˜û§¿Å³|$ûÄú±¶,2w·6?ÿ±V%úíŽÉ¶,y¹äå’—ìýd}02|døÈñ3ÇÏ?3Fó,úNÌ»ÿ—IÇŸzÝJ¬¡kË>eõ^E³—îÙz¶ݶhïß=¾Ô@rö|×ó]Ïw5©×¤^“zÑWKöŒŽ_gØ zÖþÝ÷‡ˆŽkOš¨çt¦Uã_ýWTË—§{Öåÿ±-ÁÙƒ³_=rõÈÕ#Ô@r&j@ÔÃüÒ?_i‡¬ËÏ´ZÓÓ…Ùzþ"– <©zνì{!{F—9þc0KïâØ§’3шIo!—gµ?*QmZš›ÍÖó÷ÿ}Á¼=µ íí4uäþ˜l‹è5œ‰sÀ˜ÔLÍ+Czä®?¨Ú‘^nfëù÷»¿`±âŸw_”sSL¶Eœï³÷“31î'ÆcR3[ºV»íõæ]«›Kš­ç¹e³›ë[¶q“Ó'&Û"Æ{©äŒÌˆ@dI2>qþÄùçcò¡¯ä©]Þw±Ù¾º¢_ŠuŽÉÖ‰v ˆ?Õ†úêo¨}Ûúþái—9õ9§uÓK•3ÛÐÕeÓCU‚r,)4ôdáÿ¨OOÏUT}P•zH>Âç„Ï Ÿ3lí°µÃÖþÇpù† =ë.ök8³îî‡fú±:$ôͼ5úq·õµÓ´ù›ÅuôèèÑÑãíú·ëß®§*’°€°€°€jMª5©Öä?†þô¯è–whíÓ©½šmèÇÚ²Wc%[‘_<–vÊò³·Î99ç䜓ááÜ 7¹rúÊé+§cÒ·ÜØ©ê^¯ªI«ç|¸eƒÂ~ ²~™ñFúÑoÖXk¬5¦’±ß£¯¬_f)–þÃá–¿uð[dzþ‡mì4qŒWÕ˜Ýâs€zHN]ÿˆðˆpñ½}m¸´óù§\±âc&/Ú:%©ôüK5[tn±|­›ýÙãÉôëšTkR­‰èRɇ8×ç}ÑWHù¼Á¥s8 þöhe¯6I¥çßïÌÞ°¢ïK”iø"ë¡è·Nœû‹qª"ùc}bÜï?~"_(ðÏ‹#š Ê‘Tzþ眚L,UÎ÷×™SG¿ubì—zHnȌȌ`)‰ÀÒBi¡´0úÿ¥q‰œùÞ½I×þt…mIë0޼ë/¶%úímB)ÇÄ´öÓÚOk}{þ0jj‘ðˆ÷‡&­ ÈË{oþœR¶ZM·²?¹ÖŽ~{/ùûËßS6~<îí¸·ãšulÖ±YÇÿ¸Õa©_ž.N›T†~¬Î|nLþÕ«ì+g¸ïðµ--Õ¢T‹R-žo¾ýùv*ĶÝ÷»ïwßÏy¹órg«W æðpê°§ge)°H®¤2ôcmÙâÎüŸ ¬þHï§öSû©á§ÃO‡ظcîÇܹG_Vþ#×…gY۔ϕt{ÎÂ;® <9Ý»Ìm÷Íÿ1O^“ÕMV7¡6’±¯£¯‡éÞ}Ö»oþ~Ð/ðdÒíù?˪>.Ÿ«ÃêzórýÇ­}ÅgµaÛÄ÷»ø®¾ Wì½pú×I½ç_<ˤ ›O9¾ÎýW!7k[*ú¢OH…Ø6q~'Îõ¬ÎšÉ¡±}ú.›·Œð Jê=ÿþ«Jºgûâ;6ëØ¬£ Bl›ßû+ÝÝòNt­}ïM+ï²Õ’nÏ?â}pÇ Àß*~(ýöŠq`j#9 3"3‚5I&Þ–j[ªm©¢/k£|CÅ'&á/0+K±]Ño»h ÚšQ!£BF…XýÕó¢Ì7Òß¾Òrs`À¤;ôcm¹hÐ!…¢¯ŸóœÿãüÔ‰íysêÍ©7§ª¼«ò®ŠÕnAÖ?K檸¨äþ¹—µýI}è_Wx,ª¸¯_Î?«ÜjúµmÏ_-µüÕžxVàYªÅöÜéy§çžÑúU^×ki® ÃSýõÚ'MRúוYö¬/*» /¦:^³¶íÁ‡‚ ïÞ-¼Õb{ö_Úiÿ¥èëÓ‹j½–Û^Ïùd‡F]KþÇÔ‹Ž,:²ˆ›BÛ,±£¯“V¹–|c{=ÿM/&…xýÇ­ÑÅçub{Äwºø~·¶÷j°/2×/ÍŒvî²¥žÀwK¾É[³qß§F_ÿ¢HµØqN'Îï¬Þ³vËcÙ¹rª”w}[êùêpÄÓ˽ÈãªÎVö$ÆÄøÕb{ĘÞô~f.`{=ÿ+-,pÇeQF)ýmkÛ.Æ„©[EfDf„è%8ú_p8ÕËàfÿø–s‹veŠÙÞay)¶Ql/¿ìˆ¹‰!C&Z~ΪôUö//…®¨àc{@‘—¶,­é—2ú¯„«Ó®N»:š± ï÷¿ßÿ~­'µžÔ²zc´|öMÿì¾" ËRC¾65d±,Ô'xúˆ¡ÖÚÁ}£ûF÷/翜ÿr>•cy=òzäõó»g›¢€jKC?–Ë¡ÛOoõ^Xºoëc٬ݞw{ÞíyÄ®ˆ]Ìi#Žo;¾íø¶èëÿÜŽ&ûKµ·ížó“¼mr•ëWÂ7[›ÌͬµÃÊÊ++¯¬LÍØ±O­íñ¾…Ëgnö$¯¼°\?ÛîùŸÛ±>]©ÿ¸ï‘ø¬ flÄ®ˆ]»ÄwºÕù}‹TkúãÉR#7ÚÞ¶{þ…›÷¾5½môõ/úŠŽmçqâœÎÚoÐí×{yGÙvÏx¾³~>NU'ö½›ë¦µvãb¬€Ê± b/úO¼[êñKiÛ=ÿ——Ú§ªàÓpVÍÙKXk1>LÍØ2#2#Ä„©àèïÛî3е¹“ülMÛåËÛöay)¶Wl;÷yÿ )+§¬œb­•zh~%ÏÉp¿ƒÁWm{(òòb½?®øFß5|<ôñÐÇC©Ÿ$ìuÄëˆ×]Wt]Ñu…ÕÈó»Ÿ:ŒºhÛC?–Ë")ûÞžùÖZ›Ô˜^cz馘þa:E”t½Úùj竜 8p²¶¯;•Z?À#›E^9{ÂÇ»š1à+7«×CL¬1±ÆÄÔORwíÚµk׬^ó!µ}»ÝwϵÓW\œÝùÍ¡½O+\I>=ÿ»çv­/›&Cêô-ív[kñ¹Aý$uâ{Üê>'ýØsY@©¥ íI>=¯žÃßÞ[kÑWýFê'éçnâ<ÎÚ¾nµeÑÔ‚Aɨç?üìYŸ†W'þ”/…µ6cbÜ€*JºÄØ]ôã{ë5Ëà›|zþá~ÕÀ«½xOËsÒê@§¬œ²r õ“Ô‘‘!æL?hô ÑƒFÑÆ/Gµ»^!gò9Œÿõ˦Qí®WÈý!-Ú0y–õ¡¯}}èkk-ÓgdK¿¼>‡ýT2ù E^^óÚ²¥´Õ¹ýøñ?ò^y¯¼WøˆLŠÜXpcÁ «Ñ¯ÞeÍØ}É-úýW |iÀ‚¹ý­µÏÐîC»íN%IÇ"ŽEkÙ©e§–¬íßΓ6ô¸•Ü€"/k|9¨¸Û«·R·©ÛTJ))zñðÅÃæ;Ìw˜o¹gí¯ÛÉvýµi=°\úäÙs~Ò±hà¸F_¸˜½Žµú¿”êRªKÜ+IûÎÚžmôU¥æÙë¼98.yöüµ‘üË¥·¿n?Ø.ŠþøÜŸ!ÔRR$¾»­Nwb×ürïÍɹçïÝzÔ¶•û­Þ¦SËN-;‰>$µ”‰s7kû·Í™eU ¾OÎ=ÿÆ+§ŒÎ7ÇZûˆqª()ãubìÎê¼¼~|VºvòìùGnT²ÏHß¼>ÖÚGŒSKI™™>•éàp÷p÷p÷€^½zY»x?¹ý‚#ú_vX»À_´¡hÏäSÐÇÆcÃê Þûš­r6=x:0"yE^ž_±þ@©ÖÚjD¿ýFôã#2‰å_K-=¶ÔêïÜß´½5¸orмôœÜ³Ñ”ÌÖÚêÏBú³•´,9°äÀ’Ööi‡V÷vošœ€"/'véšÃê­á®å¿–ÿZ~**ii½½õöÖÛ­Îw¸§eÛ2Gè9¿­ß¡z…ð€f9ªgmÙJŽÝ»9v{Ýõu××]©¨¤Bì/±ï¢8jæU9Ëè·õ÷5«NÏÿΞgËX&Ÿ!TTÒ"¾¯­íÓÜ+êeîp„>¿X5äÌokm%úTTÒ"Î׬íÓæ®sjp Ï/–uô‘ƒòTµÖVb ŠJZÄxµ}z~EÓ¥ÐóíÑò½GÑœ­ÞÑxl<6¨¨¤‚̈ÌŸÇtðì ³7ÌÞ`í£99Ü·ýóîón­ÅD{&‹Z~ñ"âEý¯ë]?Šk eÍó…c‡7[÷^©ð7@‘—zÁù?·z»°a„ñAi~/W¼\ñÒê Ÿs9TûòÇ6 ýX.ó]lî×ë²ÕßÄ{pîÁ9ªËü.>»øìâ3kû±I¶© ó© ýD^»ý×~ŸTžîA-³tâ>“Ü'¹OúÐøCã©.óÛ|yóåÍV?ÇÎüÜx²ÿ*zË‘—O‹¶¹]ÎêÜHý:ôëЯu•Tˆýemo>-ªú”{Lo?òòÌÏkû¯²Öbâó„º2?ñ-¾¯-÷£Ë"ßßÊg)±äÂÁÃôö#/ÝŸý\~Üx«7J}vñÙÅgT—ù‰s4kû±úÈ Ü&ÐÛ·\–.Öºq¶½ÖÚMŒ'P]æ'Æè¬íG½`6ÅkÐÛÿ×t0[;ØWø»PÖ,ãè1Š1d1žLu™™QòÉŒ¶oؾaûÇ}=zÕèU£W=©ô¤Ò“JŸÇDðÕWs\Ía­(òuŸÈ¡km)ÚÇZ뉶µíRÞ¾zûêí«­µÀí;N•ΠµåÔ/{½t·ú•ðzÊë)¯™!ÃÔå”oP>Ë}—ñX¶/s5-廨í¾E úD±L¿ÔéP—:>[ÊFq5d£‘F6Iu™YxÛð¶ám /,¼°ðÂ(~Õx§Õélëî±¶”æðd¯´Ö>ùç›?nþ8jÌÌ÷Üÿ±ÕÚ¯û²J®bÕé![[þ¥4ùÁßêðÙ‘ÑGFM™™ØGÖöà_ÊÚQþaôð­-×}ù«c±êV¯†éÿ¸ÿãþÔ˜™‰ïhk{°ä²¹µ"ôó­-s¾¬º¼Ù-ËvýIÑ·¤ÆÌLœ£YîAnŽY w<ë쓞~¾årÈËSí¼t>å6;Csc‹ñªËÌĸœµOþ©_–qt'ú²º¼= ÅÝ2íµžO¦ÆÌŒÌ(ùdFê|¨óÁê´M„ÁI9~ñ0âaàÑÀ£G-wí/KäÌ÷ŽÃ5&KÑV–m(ÚV´³íñ‹A/½dí£aGýiO½/0ÐýòÃñƒŽû½ÞzîÅoâ&9NrœäÈÇ¥9oy¾åù–Öê¿ø×“ÒlÇ@OôK¿³FJ}¬µaèæÐÍ¡›©4sZ;wíܵs­í»_&êu‹ážè—†¯æaun¤{Ëï-¿·œJ3§Îy;çíœ×r¯5Ý^È?G¾ˆðàŽôÿk¹àf…až×-ÛÐù[ço¿}ÿýý÷÷©4³ûEì£(f4¼ùKÏëôíÿc~è`PPÓíUËæˆâçƒâ³…J3'ñ½lí[Ûkòçå]èÛG¿ôÿ}Á¼=5­µ¡è[Riæ$Îˬí»þ{öÏ*V¾}ôËž.!/‹d´zëà–ç[žoI¥™“—‹â“ÿ]ÖcN>ï87p?}ûè—;ê×hâ}ÁZý‹±e*ÍtÈŒ’YfùÚßè'±8tNèœÐ9Övç«;íÛUèÁ“¥h+«1ÆœÐ9¡sl¯ˆ'ü=áï Gq+nA²I ñÄ|yyߦ#{¬ÕÏýt÷ÓÝOLJ¦‰¼xñ¶Ü©r§ÊŠbÆßžmüÖeˆçféy{ʉ(f… s s ûPêC©¥(:óxñäÅ“O¬}^/Y×ÁýC<1_–«Óá`ö(ê¿S¶NÙ:e£ÞÌæü‚ó Î/°VÿúµQΑ^qŒæËÐqsàY÷¢Yî9F1ÂÚTkS­ME½™Ø/Qܾ¾hž Ž+Â3¬x–^}L–úIÕÊ9Zœ_p~õf6â{Ùr¹5¬ù¾õPúó1_zy {·ì­ÕàÉ‹'/žPoæ!ÎÅÄyY3þNš›±€ýù˜/k÷îû¢eKб1Î@Õ™‡‹³öyuyßßì¡Wóeýnùog“,[RŒ-SofCf”Ü2#èŠp×.ƃͻD¸D¸¸]t»èEçCÉS»¼ïbÑO]Šv‹â´ð¢ÛE·‹¢Ím£|ŸL2ýÉt«·}öÜ1·Lww>u9º{çŽY¶gŸæ}š÷i·¦y)}¤ô‘ÒQ”~f;;ŸRm=Ù_›ÁOX\ÚîÐ`§±ô¢¿X6ê¶”ÛRnKIՙǜ4sÒÌIc¹§|ÏÕ–µ.Ã:Ÿ|;èFG¼òY½)О«{®î¡ệ曚oj¾±ÜS+RVSd=áO]ž¾Ú¸‰ÿXkõÿFy£¼Q¨:3ûÂÚž:}uMZÿ±ôä?u¹"åȹEvX¶§øœ¡êÌC|[½í³6÷ öýùO]fÏZnuíÚ–í)ú™Tyˆs1Ë=•û¯­™Ò ¯{v”Oúó1_msÚÍ{˜]^»vNQL„QúHé#¥©:ócqQÝýs8FOþ“oíÙâp™îÖ¾OÅ83Ug dFÉ>3" ¶‘xßÌ}3÷Í´ÜU>»\{;Ž ®äËÁùÉËàZA¾¢ -ÛV´¹m”ïäï&7ù;ËmÙã§lš1 óyËçÃô/Ë÷´ö1úðÆÃoðÑiåíÊÛ•bÙ6 Ûœs è|ÞÒûÕ˜_×ä¶lU‡„ >†ÚK\¯½^{½ö²öÕçGý·¢Öù¼eƒã;äb6åŸþ4ð§Ôž\œuqÖÅYÖêÿÝ7Óþ¼e‹§îÇrºX¶êzi½´^¢öÌ@ì Ë}Ôâi)9]èÃÞòÝý³[ûTŸ9ÔžˆïbË}Thzð“¯èÃÞ²DÃi;.[«Ñç¤ö—8ÿçb–û¨KÄÖo<[Ò‡ÿ¼e›KŒâv¸bœÚ31þfí3êù°¶zùžôá?o9²GÉšY¶ªg¦ö̀̈̈0ØFàÀ”)£øß¡Úõùµà°ŒÍR´a÷vO˜20É_ÇöfÔ›QoFY;¼Ÿ—[–kÏ€Nl–3÷êþܲm§v›Úmj7:"‰ëJŠ+)®¤°Ü;é—;Î2>àë%/>b@'6Kg¯b¥šX¶ðA»ƒv9Nd n,¸± åÞ ˜Þªl¶© åÄf9¤æÉrÞ¹­~·ž||òñI*0quÙÙeg—–{gsùj}¼¶ÓûÍòʈkDqcùLÕ2UËT-Â9Â9™ L4ÎÎÎb_Xî£+#6· xBï=6ËÍå'½öÚE¸²³ËÎ.;)ÀÄ%¾­};û‡-œ²w½÷Ø,sž©Z¢Y1€èsR‰KœY*¸®L¹Ìè½Çf9ìÝ_|¾uìé웾Hß­)®¤¸’‚ L\büÍrïÌh\¶®ûszï±Y>>ßæ«rí­ÞhÔ›QoFQdFdF„ÁÀ±rçÛ;ßÞùÖrgd;áð8Ã∟ƒ‹忀ŒÕòçàbA¹E{Z¶³hÿ¤[¸!ÅCЇ·Ü®^½›/Ì£0ˆûå?(ÇË·ö¡ùþöûÛïoÓI,ƒö Ú7hŸå~ñ<ÓËkªƒ8q0+ØÂ—¯Œbfñ©õ§ÖŸJ&š·o#Þæ÷ÏïŸß?ŠÏWyg‘N åÄ~YkÊÐU¹§X¶ð¢°Ea‹Â(ÃÄ6+lV˜ÕkßNêÐ:0 ½ßØ/«-˳(k7>]útéÓ¥©ÃÄ"Úßr¿T[VºWVzþq°|;i߸À4Ö>aÄçu˜XÄ÷¯å~)©u–þ—è·Ç~Y¼ëäº[=-[Xô9™5q‰ó/˽ÓiņÂåè·Ç~ÙüðÜ¡jZ¶°s ‹s³ö½üÏm¶•;N¿=öË^½½{䉢ç/Æœ©C2#2#Â`àX™õ`ÖƒY¢¸ÍZÇ*«Š-äPŒ«¥hOËvíŸt ·òŒÊ3*ϰܮKu7® `Þß8[§ª¿Ê-¿e; <x,NIÂ{·éݦw›¬^ð÷€½¹ĉƒeê%÷^¶Ëhçb—ͲŸù?óæO5&¼]nt¹ÑÅräé[6Ó†oâjÙ?dÿ˜b•-ÛÙ¹´siçÒG#ŽF¥Þ¶=Ûöl‹bölj¡W õ¥ÇWË}ê-1ß²{ìì±³×A&ÑþQܦìÑâ‡%æÓc«åÄÐ?êkÙÎâó‡:LG#ŽFß¿–ûÅoë¬þRúíqµÌœ­Ðb¯›–í,úŸcÂç\Qœôf¶Ën—aØÓ¿þöùŠ~{Ü(݉“ÞV‡ÈÅøÕ˜ðĘ›å NUÄÓ-?=ö¸Z^ªÛlh@ó‹1gê̈Ì(i! 6SüOÄ?ÿ¸Œuë26Šõm{•¯`æÃcÆî²}=>Î;{¡zS¥Ô;3¯­hOËví/öEÒ*Ùçýž÷{Þ/Šßít©•a^ÄéC«ƒüÍ3Œ¢ÝšïU< ý’º‡r-öÌš¯i¦ŒNc7Ú¿Í7&——Ãìê%JßÏz}Bùî…²¿³§`ÓÍ[||ÞïÛKFñ{Û^z=èõ€NIÂ;QôDÑE-÷H®5¾la¢Ù¿ü-´Ûs'_ž¦ï»¿u)êS³l‡!9 çÉcÕaO¦.Nßä÷(ÜÛõ~À•j?]9ØiÁzsÓfàÀ–­½ãÆŽ;˜ ;ÌÍ>7ûÜì–{¤åWóWØ‘†WšŸlê] oûâG2kÞ=å®Ê…M:o™{‡ò3Ÿ³lí[io¥½•–jLxUËU-Wµœå¹Y¾…C™T‰ÛÛ|ïß1U`ç §ìûÚÝ·û,·g·x^fœzÎï®v¸ØÈêP~~ÿóûŸ©Æ„$ÚÜêÀôÕýÓ™§çüì”6¨|µ)¯{=t/\ö±¯ƒs½ìé\fdX/–´Uœ_Oôêþ¶Pƒ—³B®Çl=ÿ›å·;•IeÙÎâó‡jLxâ;7ŠŸdÝñnU¦pâö“íâ”zþ…ëõîg¹n¢ÿI5&|BîGæé3·\ûÚýŒOU.ûrÞ/üÚ±qƉ™nÛOÿÿ½ã£µžî˜ù<¥ÌÞvNÙ«[¶¶ žs³Ü#Çç54JN5ϘóÖ]Õ[yWhsÔ³tÎ÷¾3]÷9…gšþ²½Q c櫎©[¾ó(š³‘VûIñoL:r~:¸q¶·2Ì‹b–å~Ïû=ïG5&çÌ(n3 ƒ?Öïæ—O/ùûeípÄa[úö óÉ\ÈavëK·rîÙ?°žTb7™ap’€ô|ÐóAÏ(náœg\Ö-¦þ}DÚàtAvþ•³Íò¯Ó°$p;»à<ã²n±ls±/’VÉꞺ§Å šæn¨yæ7ÅJÚCé‚ìº?h¶4O¡O=õ=Rxùw~‡Ì3 ô>`ÿ…À.ÖÖ6|Bø„ð ôOÒpu¸:\µÜÞ~£|Wæ1ÃЉO¯qër9~—óN¾¦1¯üìÍÊw«S'ÀniºCéÌ—ørj¡íQü¢ÉÎ&;›pX"pÏížÛ=ŠjýtÄÇËÃüp€Ôê×lQÜ`ÇœkÛ²øüwö[®íŠR+J­(E5&¤W{^íyŵ¿Y»;|ŸÁ1ânpË ²‰ÛϼÐÌ) hl†þÍ‹eïGÞy3Z®çùÙçgŸŸMM&$Ñæ–û¢÷£¡y3š§Ï|¨Æ²©~Í tt[ï˜:æ•c϶m¥o™(¾{hWP٬ݳŒÍàh¹¶â³ˆšLHâ;×r_îØç‹éãm)6C \òÀÜëÚQ˵ýOª1á‰s®(>ÿ§ie‹Ü6Co¹ìÏí²²awÞÎ'&^ƱÍÍìéÍÙóï\pã9Ð(ÎSÔáêp•jLHbœÍê:~Ø%‘gÏum­•óožß=wŽm1ÿ„ï½ÁûNÞ¯Ì9f>wkùÚžQÜûPŒ?S“É43ŠÓ hô"ŸçíSÚu² ŠÉñ2j}É‹~#3" NÂ𮆻îjhÙ¬¾¨r­˜jæèwdHÉ¢ÃÌ‹¶µ\s±/’VÉöÞÚ{kï­–Ûr¥øæÜ—Í0t2Ù±gÏBÆ¿NKæ¹î¸r^«A•=kͱ|oÉTâÊà_[wÝSpKVÿ,-2|÷¯ù<žª©Ë]1Ï`PûeuçŠ"´¸=ðöÀÛé $$ç)ÎSœ£˜›³T¶ENûüwФԵ%ƒÖÉ|Öã†ï‰«5ß~oúÀÇ*¥läã>³‹ËX;ïT#Gþ^ºðÀ>¥§ŸËîQîríYvvËì›í €ËK+j`­+ðÁõƒëWj2a„-[¶Àr/¸5/6ÜñŒù£ßÆk§LÈ7×Z-™s,=èX,Šg«ö¨Ú£jj2!Üur×É]QÜüÙ)`q¡Zfègî\c¿käu›~°¬«û©Ù“ÊòX“eضvÞåw™§ç| uý %žX¶ù¼óÌk@M&$Ñæ–ûâ@ë¥v%ž˜¡Ÿ|És㤀Žâ_±nÅNúÎÉmìП« ’sÎ)çÛVM=w·ï‰Që;;ø-›«óÙ ÿºÍò‡Bfþf¢A;u¿Y¨–e›‹Ï"j2!‰ï\Ë}QÒnö|ùr"ß)Ç­u…>o)îôñÇL§Jö¨ô…yΜÊå¿Y¤E3a/[¶€šLâ<ËjϹäÙ¦>®‰ÛOná׊yÛG^+¯N5G¹x4;6ë›ü+Äõ¾âß^—jÕp©ù/ë/7$oÓÝ©h÷ÉÞQM3ÅyŠój2!‰q6Ë}Ñ~Yáê¹›¡ŸÜ¤]A9û±VöÏì »Á]|‹ª¹]6Ÿ­¶ÁëìñT -ùó†\UÛ'®¶Èåªò¨Ø>±>éoØgµÛýíÅ_nº]­ž×RqícVÿŒ¯3|÷$]›,åz˜§çÿ~YÇ|#,Û\Œ?S“¶Å_ô®j‡Õ>yV8õw(ðñgK W˵XÌÖ´Ûèù¿†ƒ÷&ñ¬ §ìûÚÝXªõeEÿ:‘ÿ>aŽÛÈŒƒM¿;øîໃ–哯ÕÛi…y>ôOïh\ÕÈ”¯Kï(ôÖr™`±íl¹þb¿˜ÿP¼^ðzÁë-×|Êne ž5ÃpÉ‚rƒuOéónæ|¸ôoÕýf~¼ÍN§Ûéšçj€·ÓöMüÞ²åýù7òoD%alª¼©ò¦(nÊTlùPŸ%[Ì0\’#¼ÒŒFÏ2g5rìvmQ*•1Ð)±cz³]mÌ6Xä¥ï?ÕÍù,×pJ¶)Ù¦d£2F°[°[°›å^°÷`ÃbËÌúºÔ+‘õãÐUÁî¥ÿÎ\xèöÓÛ¼&­¸É¹ióò}°\çÃË/;¼ŒÊLVO>ç—ò4C³jÃ<¹²~¼™ç€6¾«ò9&áè7Ò²MÏÌ9oY¶üÓOo<½AeÆ7ÑΖíߦCíÀœ¦˜7w|Ýnà ÞûßO*Ôÿ¿Ÿ>˜fNßÏ[Î=40ÈÓú°‚øžµlR]=~Ýà\‹«ïhñqH7çŽ*›Þ4Ýä/b&àl³)Ζ-/ú¢TfÂçY–{¡ÇµÉER$nßXĽ‘תo•вEûGÿ,ñ7æ? èè¿ú{/ËõcTfÂãl–{áí´m¿Oܾq‘'.ë3íøøƒø µý}ç^ÖVñœ›«¨ÙzþãS–:Wð¬eË‹±h*ÓV3£øË€º?ð–çã÷EýMùóú¼Lô¸èõwžÖdF„ÁI&~RþIù'å£èÆeóš‘§xR Jº°hgËõûÅü‡ß¾ñûÆï‹â:¤!ÓËz?3Ãp‰øý~§¶ $·þݾmšïWÃ|êÕÃbæ0³ !9”ÎèjïÏ0PbÛvlÛ±Q\S¢ìÔ{;F%Åa ·Y«Óú¯Ç#_7l¶Á ÿoç­×O[¶|˯Z~Õò+*3a9RäH‘(®Æ–ÿÌ`oÃlC'µgï‘ûîÇ›´·Ééa˜µAóÀnjëÅ|Hkn­¹µæ•™XpÐl·æ.­ÍÙ73‰æ2rVrvu©šqQúÓ…œƒ/‹9Ö|¸®ðlqó+3÷œgÿUn±‡dÙþ—ë_®¹>•ßD;[¶ÿì¿TõÌÐ7n4¢’š½ëÇù¡[ ªìù¯;½ Þ»¼Â{¶m+}ëå¬ÐŸ+äIZ1pÐl¿?]ZÓóO,â{Ö²ý½›ŽZ¸ruÒêí­20l¾—¸Óèíû—™ßØØlε-µeñƒ³,[^ôE©Ì„!γ,÷Âà4G«yµMܾñ°yß‹¼V•ízNÎõýùJ {ìËùñZ.ܾÿ›üËl=ÿ>yô E£¸ëŒ‹ 2«çïPÚ>ÜÞß }cqg±V:×ÏTâiÌŸ+þ^<·z‰<e½n¶žÿŽC½ŸY¶¿‹¦2“gf› (è7·Ö.íijæ×.ÿÀsLÌŸ;¯Uùiž¯G¯Ü;w·¬ß'™øÊæ+›¯l¶l”¹{Ë7òt'Žï¥hgËõûÅü‡ÜºÛën¯»m¹þ§‚Vñ/hΡ“˜‡¸õÔÀ£Ù>^ÜóHóÌyæš-®tÖ°ËM†Kë_[ÿÚú×(®Ã.2¿€ÑËüC?¾ÍÆÿóÇ ¯S#ž­Qصw–i-rªœ§ñ‘·¥`X‡7ú™-.µoIw-[Þk´×h¯ÑTfbgXéXϾœÙM‚[®}í~&} ïìŽÙ§ïd7¢Ý[ ýyˆ'iÀ}6%ŠFÑóùuͯk~]Ce&Vý÷ò÷nžg³)æÊ m{áß·Šuü=ýHû‰19)ª42·£Ë‰{šß.}Ëœ=ç]½jºù4°\óP™ñM´³eûïê5c®O3ô‹<)0õ×ÁlÝ5å¶w…£9–ï-™ªî±ÀôÙšg Í Ûgÿxƒègöã싿。Ŵ¼_ý“B©Xnµ™à^þÍ»çÙLÏ?±ˆïÙ(~ú9`Úü?%•è·Ô¨ÅöŸÏ48o?óY¼qÄ s^ûyi?"ãR‡çÔbçYQüô³é™3Þ§ÍÐCþ×j°;oçS¢I#·¬§ZU[x¹ [çW›ý=¿ÿÿ=òmŸ›L™–5ß-sž îrô•×HË–cTfbõü+ÍíírÓ }cÑ{ÿßOßÊOó¬óçN½W¦“{ûc)zÖ?ššmDýTP#Í?Š»Nбh*3yfF±É€òÎr:éÐêDVÛàu6æÏ3g‹çæï—y´Ã‘ø>^’zfDl¢øDÇOt´lˆÍ5ª ôÚIßKÑΖë/ö‹ù³YËg-ŸµÜrýo|³-GéÝIñk ˜øÛÀzm>ä«öñZ±NNùÓw¸¹}{÷2.f[ÛN©ôpkÃipb©àWÁ¯BóR”±¸îþ“ær¸˜³^ÞÅ–ëo?"ãR‡0÷ï~j?ê‚I׿äÒ¹‡TË5OŸ'}žôy¨ÌÄ: Î=Ò{x&_ó —ô·?¬Xó¬óìÏØáãïš³ Xàl9¸“´àA™¯ôÊ`¹ÎÝÚvkÛë­þ§:—qu7ŽsާjøkÉŸ£¸UfÏ"ÝÊ­+[ůXñ7â$¶sPÑön·íSÚu²ûWÚœWYØàw¿(~ú¶ýÝöwÛßQ™ñM´³eûY¸¼…ßM3ô³§s™‘aýÿn~Þ¦l>Çô7ÒÚm‰ùpÀžÕ‹ò”p2çyÊTçÞ_»§çŸXÄ÷¬eû—\5w€V1©ÀýÚmú屿™þηÀs§¸¾Öükî´³`ãbe¨ÿÄ"γ¢è3<{ÈÇË<ýä¦}¦oÈ_Tüô3úOû ^ì]š5›Y:ÿ3÷ü‡n>½Þ{¾åú‹±*3±zþR™ìÖÆ }ã_ò”H—ï±V"Üz¬—Ö.AIDATìÚZ+÷W'_±û1OÀWw‡ÚÊüoÚ»ŒþoÚ;³ôüo|Ó|IéÝ–í/Æ¢©Ìä™Å&Š\ç{çÕû¶D˜?Wü½xnä+ïÉŒƒ“@¼o̾1ûÆXn¼2£vg_àx_Šv¶³9÷Ãv×+;*iE¿bÆßòÇ‹OrÖþwÅŒƒ¯ýD5õÜݾ'Ì9Ø ImŸç›n“)õaÉéƒFÒ €ÿukµGŽÏ5é¬f~ÉrÕ5õfžs+fÍ2Ý %âFpž*nÌòñŠö¢‹«µqž9<ÝÙ´>vÿqÅ€éà_f÷ºC½™ÍÒ¯‚Ò>aŠkd»ÔÌù¿ ,Š^Íúu¦ÇkkU¾ZÌ-rŸÙòY6¯9Ðg|1°ÉzÎçŠ7™[ª2õf6犯[Wª²úÆ‘¯ñlÊë^Ý ŸYµfÿ¶+ŒÍåŸ\M¹Ù(ýýï F](š±`ãÜ?þ¤¯@G·õŽ©ÿyª¦.wÅl=ÿ¥_ Tøõf6þ«ü¶§©ù{þ%oÌóÖKdüÞeqörbÍ ŸíÛff-ó_û+–.‹*ˆz3§)®wÒß2O¹wµA‘]žßeËÒæS·¥÷SíNѯÌÙóví/Ù'õf6ƒ&ï›oºúÆÿÞüÿ̪Æ+ü·Åü¹âï?þ„(ÒëÙ†í¶oؾÁf`ãñÆxc¹ÙÆ‹ºi‹o#Žï¥hgÛ;lõ”*•s0è{¡ú¥ÞýX¼ÚÏ9†D^ß™ïÂ^þß!sF¿b9|oð‰üïø˜6›€ÌKÝy'­ÁŸša{÷«ûœ˜1Ã¥¨OͲÿ:m.Vô—c‹n˜.Àþ6›äV‘z3¢ÕÓ8o3Ã@‰˜÷Kp½šÿCŠõÕ(vÂZ¸›´à!uNyç¡ÞÌæ÷z•¾,šÚÌýäOíQ7«X¨GŽJfÛ– kš^°§ÞÌæÂš?𨛡oìÜÄéöÿ~×/®¾úlËÐÒå¢ïÏ‹ÿ›{köˆŒaÿ>£4WÏÿ÷z£–MM½™.~±púÞ)æïóçiРb§GG–6…çù}T¢_±tÍï?¤òÔ›y¸´É=#c!3ôûJ{¾+ºXôù?~þ/TÁ¡gƒ7ãÏçÝÒ£Éîß Ÿú¥ßñƒ^—Ä¿Åy‹ú-Û;¿èÓõÿóž-îãD½™Íð½~ûó¿3[oßÍÈ´'£ó­’©DÇüÏ+s à `s2ÏÀÿº8E›^åV÷’½'å9&zòöÏì »Áb3†Ú·Ï^Sþðl‡Nïh\Õÿ_—Á;‘µÕÿzP\Œè%Ý+€K»ä˜™e“xÖÖ]Õ[yWø„2Ÿ­¶Áëc?*òëÙ¿˜9€Í9pèIãÑ+¢WD¯(æÃ0çÀþ8PÔ{‹û§©b=3œÊÊîþLíŸäÏ#nõfþÐ7&s'•úIê_O_O_Ï(à$2pLbà§ ~Y‹d0Ñ ‘•9€í—Ú/µ_Je&ÌòýÍ0pÃ+;å‹ã!’~ž{NÝcþ9€ÕlT³QM*3±êßþ`ÈÕÝÙ9C³X›˜ÊL˜‡øžµlóÏ\h}§r#[‹µM?×)m–þ?ÏúsÒ:7±60•™0qžÅ&M0pÖŒyögì Ö§ñÚ)òÍy”y[Ä5ÄIe`1Ae&VÏßÒ¿:jÃ:¼Ö-æ¯àUixÉߪ*Úç´ÄÙÙ<p©}K ¸kÙò^£½F{¦2†eûgXéXϾœíÀf» Ïf£DÑ(z>¿®ùuͯk¨ÌĪÿ^þÞÍól6CßR»U§rñ5¬ö“â߈y¿bþÜ-û«íVlQ¡*Y¦;v7[¿zW¯šn> ,Ûÿ@À€Tf|ílÙþ»z͘ëÓÀ }ã¶J:¹ŠŠµÚ1aº³÷˜?7¤Ì¬>¯Ås‹^-X=Óc³ôòoÞ=Ïfzþ‰E|ÏZ¶‰ÓæïüÉÌÑiæ³7|?^;žóvÕŸ›-MZ×þŠ¥ýˆŒKžSÿ‰EœgY¶ÿ°¦gÎxŸNܾ±CÏÌ}í/~Œå‚ÖóÈóçŸZ§º¿Ïü:æéùîrô•×HË–cTfbõü+Ííír3©ÿô³ö£|³]Ÿ‰-šP> V¡ìf[ÃSA4ÿ‚–í/Æ¢©Ìä™Å&êyÄÛ+ÏÇ µÈì>$ÇØ?·y~÷Ü9>ÞY\gßgÊI=3J"¸½jôªÑ«b>¾'þ>áCßD €Ÿ”RþIyˆè‘ÍkFžâÀñ½íœtæ}ã÷ß7Þrýw„L/ëýÌ<Ã%þ•‹®Éòq@³‚V¢ŠóëÇ®ÒÑrþI1ô¼t(ÑÕÞŸ/ƒÄ2¶íضcÛF1 Tvê½£ÌvoÇÀ]õ+Äü¹¿oç:XÏu^é5·´‡y†Šü¿·^?mÙò-¿jùU˯¨Ì„QäH‘#EŽD1 ”ÿÌ`o#Ñ®Ž-qøŠ—k÷”»*nóeäõo¥,ú½`Ëÿkža Î7µõ¸lÙòkn­¹µæ•™XÃ@A³Ýš»´6Cß²”_öëY*|œ™ÛÑånLÝý×°<…ÄsÛ*žsÿ¤™§ç<û¯r‹=¢˜ÛìrýËõ/×§2ã›hgËöŸý×€ª’úƋ܆øýï·ù?çmüGî:1n¿a­öç]ý±Gñ®fËœÌv¦4ÛïO—Öôü‹øžµl念®\mÎÐÔ{âh¿U½ÿõsÉJÃKþV=iE¿¥¶,~p`–eË‹¾(•™0Äy–å^œæh5¯¶‰Û7.0> ²ÓÇŸÅ×y2òpž&1noGøåù8RT ¼túÌߙyô E3Y¶¼‹ 2«çïPÚ>ÜÞß }ãå*zJ¢ÿ/­˜<ëBõ¦J©wö)í:Ù}QÿÅlcæ;Bj õ~fÙþb,šÊLž™Ql2 íók8x¼us¦Ùé/ÛÏNµV¾ZôÏzÚöBùáâïÅsw®±ßǕ̈Ð7ÉÀï¾;øî e£ø¤qõvZAßKÑÎI÷`¾^ðzÁëQük|Êne ž5Ã@‰œsN9ß}J»ÃvA—³oª°8©G¿o§í›ø}מ6òoä߈/ƒ„±©ò¦Ê›¢˜‰°Øò¡>K¶˜-¶›o¿7}`±ÉCž/ùYÊJ4™æ»ã~Æï]g/'žš'_ýmÁ×Ìûþ3Qݜϲå§d›’mJ6*3a»»»Yî…{6,¶ÌÌsèFó7úšym›œ›6/ßË–?¼ìð²Ã˨ÌÄúد˜\>ÈÓl½â˜ôÕÔµgùžˆø9CÎwzsšíú<ýÝMvÿVøTôÏê~çÏ¿ ¯ÿñÇ|;˜³€ÙàŽþ«ß¹÷²ly1Ae& 1Îf¹ÞNëÐ6ðûÄíü±~7¿c#éoØgµÛ²w^½oKÔ°ö÷¯Æ´/W¡YÕ†yreýøó &í ÊÙ/˜s,}|ÊRç žµly1Me&ÏÌ(6¸z¾1™ 9ÌŽù+ }ãç’úÿî'šùªcê·M:Ô¬AfDè›d`!×´\ÓrM³l¦÷;:KKѶ–k.öER9ü^y½òzåÅu0ýºÔ2ÃpI»uÓæ þxäS×2~œßbö¤<ÖêÒ<Ã@·¶‡”)bÙòƒÎ:?è<Ý”„qvâÙ‰g'Zî…_´ºÔ²†K|NüZbýû«{2uù×çÌ‘•[ÖôœÞ³í”üâ:€Â®½³Lk‘§AƒŠF¾á³˜ýWÜPÚ<Ã@…³÷Î9-ز啌JF%#•™0–œ[rnÉ9˽ðÓ‹<6Çß2`x+·lQÜ{ã~¹ûåî—£2FÝLu3ÕâjŒçJÛóå‡'nóéõ¶ùÊ;æåtÒ¡ÕÇÀ=³3ì·_R¸Z®Å[wUoå]áPúýš¯/ZeF±©ƒŠ¶w»9úm·ÑóùÿúN&ê?¿ îèðSútöQôüÃÛ†· ç:˜x'Ú9Šë`~ÊXÖ>(âÝ¡ýAfè'[®a³ŠU7稴ê—1õŠ;Ðy©S‰§ë‹ŽOUljû%uåZ,~$ù/ÍöÓÏçŠîS~¸åv‰Ï"*3aˆïY˽óhÕ\Íʘ3:Íò•gŸâ“Äzf=U²G¥/’bì{ä³ß£¸ëŒè‹R™ CœgYî…cæí-01‘o’œíh7¯N9¦z,rø×ôdåöuœýuó|sZp n¹öµû™fÇf}“E™wízgo.&¯ùx§ölïø½x³õükµZ/÷PË–cTfÂãl–{á–C‹6eŠ$r9mpº¨~ÿ)"+ñO9g­ë¾mÇu/U¾àà¢W³~ý¿I.r¤pl‘áæ»óœ1çÈyPE·2.µ,·NŒES™É33Š}dù ?ç-–%wq¤ÜžÝây™q»kÖ<ã£ýT¿ènüëöãe«økßgʶ‘úš.î¹²çÊž+£ø2Ëh‚/3 €EÛZ®¹ØIë€tªàTÁ©B_Ë䑸Ã%e>ø4rv«9 Í3 ´ã«i[¼X®áÎÒ;Kï,M%a„µ kÅ0h–ýEΗüÍ<ƒ& :×)m–1¯öÌ®…æ{]ñqótͳ åJY5ôÇt–ë|;Íí4·ÓP™ ãDø‰ðá–{¡Ö¦¡×sÏ'Ž—å³'}¼3Luô°/iÙòÒ|HóúO sÏ9<ç°å^8~©áÅ’KÌÓ7v/™å‘ãʘò·¾äq+çñËh³õœŸ¯m{²üà(æ`;VéX¥cÔdBmÅ ÖêyÊ6Eo9í¡tAvÝÞ6½™ûeÌë¿yþêsl{’N_®‡Ùàã—~Pr‰å:‹Ï"j2aˆïY˽`? ã(‡ã¥–.<´×<½e¿#³öKG#¯g~ÿÁ}Ú%­èW, ¸µEô(ú¢TfÂçY–{¡tŠÖ)²m3O>w>¯ë™œbþÉ/þ¾›óŽ…3šíÚß7¸^ÐÕéåš‹±*3aˆq¶(&¿ûªF)ïæéùGw£W°q–Ž~G 7ìwÈœ£èï—uÌ8ÂrÍÅø35™œ3£¸Ê€F.™¿€OLŽq³ô_[—ZXp ™¡o€w5ÜÕpWCËæÛðE•kÅTàøXжµ\s±/’ÖÁÙ{kï­½·ZnË•â›s\NÜá’ìé\fdXo{pûeuçZE6ðöÀÛé $$ç)ÎSœ§Xî‹RÙ9íó7[ ,®ñuÒ ö-Ö>C, ²Ö²ßäPÌqc¦¿ó-ðÜéº; zÕÍîí;ÿ:¦^€ÝÒt‡Ò™î*K+j`íýàúÁõƒ+5™@?€X¶ lå^pk^l¸ãàøXXzбXsàUíQµGÕÔdB:¹ë䮓»,÷ÅD§€Å…j™­‡Ðº~†O,Û|^ƒy æ5 &’hsË}q õR»OÌJEföõ×õ敳ŸC+Çß|í'úÎôxïÞúR­ó9÷lŸ?­…÷¦ÈW›m+&:u¿Y(Š+`Äg5™Äw®å¾(i7{¾|Ù<}f]ÛOõ¯Ùû?ºü»¤;•˳H?c}Qj2~áúÁõƒÕÖ/y¶©«yzõ F·Ë;±Xúê…œw‹+ƒ3fÉ”Õ>Xü[ü÷oÆŸÏ»eØ‚¿‚¼ï™3ú²ûäï(&œãÔd‚þbàí·Zî‹öË WϵØl=ÿ)ÿ¯½û ‹êÚ8ŽFã5ÞDÔˆ((((Šô."8xb‹FDT¬€]A%{‰½‹ÝD“¨Á‚Ýh,ˆ XÑ$ÆD¢X¢`¡8ó~Ø÷CÞgæLáÊ™™ÿïÃ~òÜäꜽ×9gíµfÎ©Öæ€C‘"Ŷº¥“uM³ªu’9ÖíZ'0ðu“ÿX4ÿV¼÷TÎõóÛ>}<n©Ï¹¨?“ÆÜ3*ßÐÉŸ»}íßÇÇ!«ñâZu÷Õ¶¯ÕSü³Ø)k¬:=#š¾zÓ΋ˋˋSŸÊ°ØfsîÑ—÷éʹh¥>йUŸs±ú²'O:ŸÔðVª¤½O8·Ðß÷ìÊs, ȸ®!uùSÎSÎSÎ#Ay›¦Ÿz|ª†³§ï ïo›É­€ò÷O¨ý¿‘g¨UÕÅû«ÏvÄÁˆƒ‰Æ·Ï±©cSǦG?윗‡“~µå?Fù¬)¶ÏPŸí-þ[ü·øoÓË´—i/ÓÔעᘺÿ®c¦ú36*¤­~eÈòÏŸÇ=òTÙiøص•×V^[IL¾MbÎ5”äõ;e÷¡<ógím]y6}ÿ;þ™u(¤mÃ1 f×1ÓðÄ´—i/ӈɷIÜsÕ×Â%fü;Kçêc{UÖoÿ=“ôÛ‰óê³-òO¢ñí{. ×ÿ%'ÚºÞ“çW<ßìßÊaÞr×U§SÚíǧŸzœh|›DMª WóŽb„¾dþúòÓ©¤½Á][¨Ï¶¨?“ôŒÊw+·²!õŒhúʨ¬úKõ—ê/ËÙ–³-5QsÓð ˜Õ=S[/&c/·ñJl¯?«ƒuÿ¨³Zà GòòˆFzFôŒhúÒ~C+òVä­Ðp3KŽéøû:NÂòÅ|ªÏ³˜ý ÜË:,ë°Lý¸n~¼k[ÀÊ7å5ÆVîñ­†ïÁ]P\P\P™¼}Å»‹wï–ºQùýº.à´ å›r«l¼ŸyËôCSKS+ I§ß3¿g~DãÛwwÄÝw5<“ Ùtï¶õæQ¸)¯ñÓ#³Ü5=®E‹6ªóªóªóDãÛ·/m_Ú> ¿ž*à¶Ã2ÞòÓuŸÝjú<=8öàXžýPaÄü«¯Kú£ [­!c/·‡?Ÿ;Ìa‚ú<‹ëqXΫΫ΋û¯úºøî]ñéÑhòöòë[9lðø]}žEþI0¾}bÏ¥aÓ[ßÔڴΔ§?ÿêõ.y{9<ü¹æ¥lOÉR¸¨?oŸ¨¹©¯HleWgÛdìå5Þü8rrÀõy5gâž=#š¾4€Ë$·znõÜê~Çy©îã:T#cÝCšr*–iëÒŢú<‹ù×ßÀ=âsÄ爆_¦Žë»®Ù1Ê7eÿÚyìbÐEÉ_ÀÜ+¹Wr¤¤¢$¦'¦'¦«¯‹óOñ‹½(ß”}ôX7­ýæoÕg¸Çâ‹{,&+L‘ªHUÔ¯…_ Å øF?tJ§ìc—E“¿kªá]ãë Ö¬/ +JÁŠ‚+¤îËE ¢(jý–Ã#°¾j¶¾á1õ¾ÒæJ›+mˆÃŠ"æ_Ããà¾jß̿Ƣés5¤®0âúCVqÿU_ûz|z“¼½ì£Ï¨…ïÕð’)‘sŠü“8¬(bÿ¥¾:C·ìpq "o/ûØ÷lÒdûÎ^²“ž˜ž˜NVQs“º/ÿµsྠ‹äíeãÇyŽm¦!ó5gâž=#š¾4€Ë¢’¢’¢’ú2duí‘åÛ²,£˜Cõ¹s®ï[8£pFá ©Óøñµ£‚†PÊ)˸¬×„ÅŽùês»xôâÑ‹G“ŽT¬Û&·Mn›¨¯NíÍæ. æTÛø<󥜲ŒîNþê3œišišiJV¬]-wµÜÕR}u–öokµ˜"N™~Ð9;ȳ©ä½5ûqöãl"°b88âà ¿ƒL ﱟì·,ãíi}º·âšCV,qÿ•|PÁºE§ç‘½—elòSh«ÈHõ¹9'X±ÄþK]Ëïƒê·#{/Ë8¥øç<¯êfqÞµ]5Ü[Mn›Ü6!+–¨¿©¯Î²^m?vÌ'{/ËøøÚÀwƒ†HÝ[EÍ™¤gDψ¦/ àr¾<}yúrõ%ñ:ÔhœùYÕ‘Ø.!Þœ–¥Äv ñs¨áQiËÓ—§/7Œð]øÞÂ÷¾§~ŒÓdz²¤”ófcþ”“Uƒã¤.—ï>¼û·ŸÊB°i°i°†5rÝ÷™Õª«”rÞlô|9ëËm`uÏÔ=S÷Œr–r–r±W±^y¼òxå!ußçä×nötÞlüäàÜh; 6qØÄa‰=9¸±âÆŠ’¿.ξ«èE&üfc¿§ŽšXjxÔØÑä£ÉG‰=9k¡¾FýžvZÔÄ’þÍÆâÜŒ•Š^RWqÍ!öä@Ü‹Õ×Èaiì“i/ÉáßllÕs‰Ó[Rñ/rNb¯b‰ý—Ø‹iø’Šjᅵ£Èáßl8vÓ†–×ÕgUÔˆ=9õ7©kTþ”A'ƒãÈáßlœ>¶u´½†¯þˆ:3±'ôŒèÑô5°ÊRe©²´½a{Ãö†ú"kÖ5Ø{'giG1oêó)æY̹a„ï“¥O–>Y*u’ßs>Èû€K=Î3|—ý m•¾ãûŽïK "çÚœks®Æ·"9™zù\ÿ$£+eRŒ-7 Κd>Ûþ¤ÛçÞ~Wi_¥}•ˆ:ùXUcUUVé}µÇ”†SÐ)í˜~®®Gs©ûiNZNZo”‘Î… ;ª¯Ô–Jíg¹ .íx%§W„ßlÉ_+_ÚѺaÐÖ®]ÕçSä™D|ˆ½˜úJ5}ßco½šS?þe†W3òyÝÇɯØzN1µ3mej®>«¢Î@Ôɇ¨ÅihlŒñkjL¾´ã=ç~gÇHÝOE™¨“zFFß3¢ék( `•J¥RZujÕ©URËö2wÈàvc9EuÅ\Iͤ˜gà ây¿ÎûuÞ¯ÞÖ9:$Üê(eÝÇ[é»ÏH–Ô|PóAM.š2R¤*R]ºtYÃ[ÁâúMü˜²Žî£ó‘¸{‹.©Ï¤YYYÁkÿ×þ¯ý :ùxþäù“çO¤®W±¿vÌ£¸£ûÔ-:ÓZCüµj5ÔŠx“›kk¯­½¶V*þ% ˜dFV¬Ë¨¬“¢øÅÑ­Á}³-ê3¹½òöÊÛ+or#ÖE}½Ýš]7Û¢¬“ÙQñ Y½.㣄£aAfRWq!ÞäFÜ—5”ízv.0™|^÷ÑÃcJñWERñ/òLâM>Ä^LìËÔ׫í}Éçu»ÆOõlª¡¡"j ¼÷ZnD-Nêzu+½Ï{idõº=F·¸g¥á‰2¢¶L¼É =#cëÑô5ذê¡ê¡ê¡â¼â¼â¼ú~Þ«U“æÅœ¨ºŒb®4<Ãý¼â¼â¼˜gl$>O|ž(u 8ÐcÉSÏë”x´¯/fš)2<ŠòÍ£ÕçpÙ³f\.eÚˆºu-J*þ}ª-¨‘2‡öÑ÷ÀŠéGÇK¦A)§RN¥i2m$mOÚž$µvŸ/¸øÔãJ<ÚÇ¡S“Ÿ9yIÍáýÍ÷7ßßL¤ÉÓp»ávÃíÔW­÷~¿ÆÍUÊØrã×þÞnŠóoêshQÝ¢ºEõ’%Jir#ÖE¬‘úÚ­ýýó@çßÈíÿaTfe†„ôÞÚ¶±†g?ˆk ‘&Oâ¾,u×öX8Íbór{í£ß7kW§u–šC‘[i2m¤œJ9•"µvŸ¦e¬p#·×>ÆYyáú¡äW¢®E]‹"ÒäIÔå4\ù‹^0~}1&I‘An¯}<УS„çuɯþ$>O|žH¤É=##ëíß±Çþ4} ±¬R©TªœÆ9sK-jjp·,Ÿùœ®R£˜ɇ76ÎiœÓذCyÿÖý[÷o•|ôg.N¥Ü#5.®ÿÂÑ]òíG‹^-zµˆË¥œ%6Olž¨¡„÷᫪6½ý½×J_O¹GÃX{“yVËn^{Úþ®>{áÓç‡O'ºäL9H9H9ÈeË: o® ÈíÅ*™BäcŸkœ]èñÔ•Íœ5sÖÌ!Æäìñ§?}ü©Ô ~_µ£ûGdÈRãÏÇ"Þ÷+š½s3ÏÍ<7““3±FR+øó±í3ü Èð¥Æï«~iæþ‘Ôì‰k 1&gâ-ù8诒bN¸’çKM^„nŽüC}ÞD>)rKbLÎÄM}F+̸L5ûÅ«6y¾úøÅ‹Ëƒ=ûX\¶]Y§D}öD=è’3Q—“ºò/®hæèN†/ùØçÏúý8UjöD=™“3zFÆÓ3zÝíu·×ÝhúlXX¹c厕’}þ?,ú ä–öÿF1'R3&æÓ(bù¹ê¹êyj=ªõ¨¦> ›½c]¸÷ôív¿Rôùûx²åša>¤âçLÁ™‚3\(åïÅ–[^l‘ZG›ºaUû ¤Ü£>6¿Ñ×7þ–Ô¼å]Í»šw•è’¿Ïn<»ñLj#¬÷l~œ¢ÏßÇ)÷~ÎðªììÕ`”†Ç¨.p\à¸àu¯×½^÷"ºä/åVÊ­ÉëØO#{-ôûŽlùïãS·÷‚KÍXBtBtB4q¥/ÄzI­æS·ã^AÉöÿ>þ4rÛ$?ÉÇ©‰ë q%â-î×êëh¹Þûëàþª×3Ï’íÿ}t|62xÎ\©øù$Ñ%b&µŽMŸø‰í<²}õ±û€^V§¥æMÔˆ.ù5:©u<Ù²Û@ŸNdû ÷F×j÷«CÃSÍ4dŒ¢†,êÉD—üÑ32žžÑßLÓ·ìd×V:*•Žñññê¡iÞ½Žm­Ç϶ Ìi,æẢ†_>ÅÄÄ‹ù4ž€~œú8õqªÔ¥-ª¤sÿ&½”§2¯(T€®mI>ã/ùÁi Ó¦%p‰Ô/6]Øta“ÔšÚúcÒJ?ÿ}ãï¸ðEõ¥æê°Ãa‡ÃD”~Ùxfã™g¤Ö4ú¯­ã{Sú£bþˆQ—š«;-î´¸Ó‚ˆÒ/öØ?`¿Ôšæ¦E 4uò˜Éc&!ŠôÒÕÕ…¨¡QC£†J­ïð»§;õ[;UMô±= 5?ûŽï;¾ï8¡¤ž?|þðùúkꮩ»F}ekýfú£é§˜TÛ83ç’#1nŠ9áïÚß°–|œÔÍÊ7+߬L,é#±vR+þîúZw+9r&@1Ç83ÿGúÕ®õ[­I¦òqÝ×bI‰{·Tü·0í{k\Š1gþžfìû6Cò âC£†F 9$±¤ÄÞMj}þôUhËcÎü{}»hfóURó#êD‘>õ:Q»“üR¯GŸgmºiìlì'!­ÇO÷ò¶ó’šQ7&–ô=#zF(-9¸K×.]»tMû)mlßìÇ«ý4óFp»èÛEßJ¾!#þLßÛͲ•¾™±Šã)Ýè¾ó·oí/Q<ùñäÇ“‰=öJõJõjÔ–Q[FI>Úñ½aÑ3n]ë·Ò„{Ë‹¤æ¤ÓÒNK;-}½ôõÒ×K "ýõòà˃/Ú›Û›Û›K­õPÿäÏœ¬Œ¨ôÅ/—¼<ÃR?{×6LjNæwšßi~'âGßݹsçÎ;R«\§J-{Óþ¼•Ù¶†=ö-+ºA»Û=kÛO±¶š™c~Œù1†øÑwb¥V¹gíö¬- ³N?mwÛx2ÿ?¯Jn[£N•ÚQ¦?Hˆïܹsçñ£ïÄ}\j•›/裈û*ÀÓº¬4ãÉü=⦦~]"ùl$s{s{s‘7?úKìÝÄ>Nj­ûïY¿¸eˆ±µ~{æÌÖÜDjND­@Ô ˆ"ý%jwÚë{7ºG6ð6¢_ýúÆWäÄŸñ\Ò,[jND­˜øÑwôŒèAw&òÿˆG×]wtTàŠ³ÃsÞÅ1Jýx_sEXÿ¿Íð‘ùGæ‘,­øÏ»Ö­^Ü<µ¥—a€ÎìÙÔÙ·’öÔ0gIÎ’œ%ÄŒa(É(É(Éèò¤Ë“.O$‹Aµz³% Á&§,oÃ.9Œ]:Mrkä¸Ëq—ã®k^¬y±†È1 <y<òÐ~Å‹²ZsÉÞÀß 2ÿÈü#ÄŒ!¡gDϺ0Ñ—º¯ò¾Êû*k¿¥¥wËò™ox§±8.íÇ.懀–2ãÈŒ#3$ÛÀ–ëëß­}ïvTŠ" ×ð @ë¿øÂ%@{ü\ÛymçµÄ‰á)¼\x¹ðrÇâŽÅ‹¥V¿ááÖ6í×·ÎHºu"ÃJ?þNëÛ§'49ÜñÞI>/¬EX‹°göÏìŸÙ-†'7.7.7NûÕ¯Ã÷ñ›lÚM­üó+¯†TJh–ìö£íT÷ãf’¿ÍŠÍŠÍRŽVŽVŽ&Z OÆÍŒ›7µÇÿîça½<6^æœ>ªu¡öc_ný¹õçˆC%ÖW{ dGרu¡áeþ»Ÿ/8â±Yû±‹ëqbxÄ=]Üß%‹¡]ìk¹&ùÖX6øð!ƒjý¾·Q™Yh×¹WÏ‘‹µÇ¿È‰Ã#ötb'µú]£.XMüâöeφ”ù'FŸsöpt}êd!uì¢& êD‹á5½È~õ] /ó¿Õ'8 ×rý‡Gkß“:vQ&N =#zFÐÎD¿>®öovŸ÷jÕ¤yqaÍ!WÚíÓãÖÕr¥Ý>q,Ú—opènÉ%C–üÃwá¿ ˜±ØU©*É:¢ÐßÒÏýÂËچu¶m;¬QWíÇ{ëß·þ}ëßĆa+šS4§hNdLdLdŒöxp÷ÿüé†ôþ]_WgµØú]­uÔý—Ô‘ú÷óïçß/þþüýDˆa{àûÀ÷¯Åf‹Í’ñÆNŽOë¦Åu8ªpµÑ÷P¿Ü5#퓵Ÿé ÇŽ'W^Q^Q^!B ÛÇ ŽµÇCôV—6ן5l£¿™ókeÌ6EöRÏÀ{Ž)ÚwkÄÖˆ­Ć1k­=–zŽOvLy­ÌôUdëoæÿ¬áñÇÁ6Ñ[»¯¶¹®ýxÅ5Ø0lâþ.îõÚãÁ¥ý¸uK«é{æïÓ`A»”Ëf¯šþì`+u¤"9!bØÄþNìõ$_ŠQ¯n¯ZµG¤ì™æ¬÷†Žöû®µ£•ö3]ÔDM€1l¢¾§=:ÛÚÍoÔõ~a϶azÜú*‰ Q|Ðþµ«RûñŠ:0±a èÑ3‚}üÐÚŸóþwÇšu öÞ _§±øÌºÏm3;zìè±£‡ö¹õÞélZ¿ÊUóï—úéM¨wVÇÆ&g»üCü89;9;9ç…æ…æ…FT Z¥\¥\5eû”íS¶këíâ>ÞàÛsùÇ?<Ô—Òß¿Vo;yÑ6¹k·´]ŒSŒSŒSQrQrQ2Qa<   Â"Â"Âþ¡öɧímí&w½RÅs¢¾”~â{³rýÜi£bhƒ@íG·*{Uöªl•R¥T)‰ ãqûÊí+·¯è’[îzÚ#T¿2ç³QŸ¸ø®mXõûµ_k?º½Nô:Ñ‹x06bݵÇFê Ük¿>õu´ïZýjýî:–G¨.g·¸Æ”ú«”*¥¸ïk ËÁ^¹ûÌZ¸~ï"½yÒOäú«îÍDûäòºˆ°ˆ°‘ÆCìõľO{„ÛŶil>©úùõæI??.p+iØóyÃ,íG'öþ¢@TQëu?í²ÑAqØeƒªw¬CHc}Éü¯šGÌ÷òÞÙèRý*ÚNÔ~‰cCψžÔ™èïGÏ Ï Ï ˆˆˆ×ô^‡3?›ÕµG–o?Urlhˆ‡ŒNàäØÐñÙÄçÔ~,âxű¾eq¥Þ•zWêérÑŒØé~¯[Q»'$Ë­èSÜ?ÃYÑzϨ…w= u9–ø÷âß‹¯¨IQ“¢&Ä€1Ûë°×a¯ƒ.1Ól]ϦÎønXáu´–ÜJ?­$ýpbM‹ ý[%ü Ë±l|±ñÅÆ¬¾Q×B§+§+§Ï]>wùÜåºÄLOïy »ŒÏ\|êñ‡ÜJ?ãÛžŒw³n7 Ãê†.Ç’æææM ³üCù‡òEtèÑý¾ô¡Yµ:;Ž;wýÆûúkUÌ6E¶Ü¶¾?õïõ¥ß–°æÍÆ4ü‡GÝZÇZÇZÇæœË9—ßšˆÿÐ.jÞ¦nÃÍ?õßç·En™ÿkUfkEöqç¤[Þ×­?´\Ug‡öcç»8÷‰c&r]²ç°Oúdµ [Rã@Šì¾îùÍÚÕi]N]<=C—cùžÈýˆc&ö€ºÄLçÛ_ŒmÚ#1윉‡­Ü2ÿOgg´t÷iŸ?f}“ݺ‹Øï³úÆLÔýD P—˜Ù3*ìžGaqÿèÝŠÖrËüoEEþ5б°‰—.Ç"ê½Ä€1£gD àïLôý”ŽJG¥ãÊ+w¬Ü¡ËmÀêRÝÇu6$ÇtüÎ}ê`l§¯ 8Æv ñŸA|]>¹8Fq¼ny)8[p¶àìðÃ_ ×iKò“ïËÑ'o¬yá3¾¢J?ÏíR;_^vxÂM§ê¦:û¡Þõ~ ÂÿswÔÝQwGù>ò}äûH—(jÜ9dä'Ž^µgål[Vayk¾`ìžl};o Sü[Ù[Ù[Ùÿrò—“¿œdÅñw™f™f™fº_Eÿs'®IÂÓÇÜžUTé'öî÷7*¹];fñ.Ÿ¹ûõî×»_ÔðQÃG YqüWŽ*G•³í£mmûH÷øß”âåò Ä-Z¥ZQàƒs:ójìžÙ°¯¹.Ÿyšß4¿i~E‰E‰E‰,;þ[ M,J,J±¡K¹g:T1·98g靯•ù—¸ed+†nJ˜ò“ËÝÏYqŽ‹óu‡ ò‘èEêùµï`æÑyj—¯c**ó÷í¸Üᇚ½ï1¢îñ/r7âè4WçŠÊüGíýÜy¼ïùˆäFuùÌb_/öø¬8þNÔu¿Š.;Üv‚Sõçvƒû_®¨Ìÿän[|Ƈüd;Îr´.ŸYÔuE—‡@ÏL é`rç4Îi¬8¯8¯8¯û-,¶Ùœ†{v¼ÓñŽûñÜ쨘À‹å{êŠ?SüùâïÒý³‰cÇE°þ¯e¸f¸f¸Ö‰­['V÷5¼´Û+›Gë¬åm÷â·SÛÚy—oÑçÆ;¿°[ë4i·óA§çÍýëÕÐý³m9¶åØ–O£ŸF?f}!™]V^V^Þºj몭«LK©©I·šƒÜ_M øêÝçMc²æ—óÛ|[Ì0ùæ¶]ƒð#–ö³­š²jʪ)%UJª”Ta•!ååÜ—s_ÎYof½™¥Ø× ²ÜX{|'ÛĶ'FžÞ7Èù«ò-÷Lþý§*žßþsˇä€iý›ZÍ+mü:|èð¡ÃªWªWªW¬2¤ÜOºŸt?)òhäÑÈ£ºGW€k〉[’Û§»ÞºãÖçi›.å›9?™=ð?A öùè¤ç½Z·ìl]Š{“c¤c¤cäåårŽ âDÄŒî1Ö«u‡ÎÖ«öY¼Ëó‹'³¼´ |3ÿ;n{RÚtÙ’<ÃÚõV€«Gó‰º6q.‹óšõ…¤WªWªW"O(mvÑä|hÓÈ ·½“×Þñ_¹aéÛòÍü½ÚÏžµ}x Ë~UÇý^ûe}o‹[º6‘ˉ¼ŽE†±7ûÄÒÆ‡æq‡ṁ›ìšï´¯œÛ½‘¿,÷jûïíƒçýªqdi?›ØË‹}=« )¢6(ꄺG—Ós‹Åõj¬ujçï|ðÆ‘ÕìÊ7óñÛ*í¼Öé2ÉÛnðRç?mèþÙDýVÔrY_hGÏÆÌÄé‰ê‰êÉ©U§VZe{Ãö†í Ó7âU£‘§ù–±VËšù$wvLé6Ñãà±e]‡{L}þñ>ûÄ?‹ÿ]ü7â¿ÿß7û{ÅgŸ_ aúV·%%ßÍünæw3MË@qÏ×ÙÒwR•Á›ïØX2%ÞåÂþK:y~Âbõ ÓÔfk}f}åPïfÉ[çösÿ~IظŽ“†d~üÐæ»¦_ZßúðÁ›ý½]FwÝeôõÀë×YM”V~ÝüºùugŸœ}röɲÄÃî­r%Írz¾~Ö±Ò°Ð]֎ߺ,Ê-lbá_·¨DŸ5ó\nNˆ[>Äñ³á§gm²û:¢ÿ¨ÜFŸûÏíxÀôÚ»êŒ}³¿w‚ë× ®?øùÃÏYM”ÖïóŸÿûüAà 4ìÍ"ЬmƒÛµ­½¾ýx¸å£°ˆO;Ù¶ˆh°¸sóû¿Üð¯–}‡nþÅáÓAû¾¾äÐ>Ê|MšýÑOÖÎõ²[2”S_ǘàõ¯–å¼Kj”Ô(©Ñ«n¯º½êÆj¢´.®¾¸úâêÖ­[¾Y:Þ¶°7;;|ªÛ$ÛüµÚ¾tê¹Ë$tƒ‡ûݺxJ]Ð-×gýñÝ]ö~µwÙG{ú­Ún‹É„ ^íÆ¼ßØ¥A|Yâÿ€ß¿~Ê”?(`5¡;3"~Êï{Ôh?aCÿzvã× ý|«‹ÉÞe‹2<ýŽï^ìý*uÁÚÉ>ëì¶*Æ{Ô.“ùîî+j%Üwê9|jø`Û|ÇÛvÍξÙß+ÎYqþ²š(-‘3ˆü¡,ño‘ë90ЭÙû=úÅŽu˜›5íŒKïq7–†»ùL<´úO·øÄ„5·\-üVÄ:þ5Òo둟"}nõUÛ¦#k/ª÷WŸ7û{EÎ&ò7V¥%öŒbÿøfXÛºÎ6ÓãîÙ&Zwœ4þ›/à ~Ô<²¯u-›®¿y²CÌ ÜÍ-£­½eŸß3s¾Â®ð?Ic7ùÓåI‡±UËrÞ‰=»Ø¿³š(-Q3õÃ7‹À¦_š×üðÁL—H›ï–„.tœ”¼µãq÷ï¾ße¢w³ÔfÝŽûÌ:aÑUécºF§÷=¿ßXò/— “ªø|Ý|‡âž­¥¥oYâ_ÔlEý–ÕD)Ð3‚Q21ðã³TYª,Ó—§/O_®¨¤¨¤¨d*KⳉÏ)>3¡)E­‹ZµÞum×µ]×mh´¡ÑyÆOÌg1ŸÅ|v}Àõ×°j(/Oë=­÷´ÞŠ”)+RLel¶ÏlŸÙ>òä=ÈcÕP^îî¼»óî΄‹ .Ê9þ7ûoößìÿÂõ…ë ¾õŒòP *PdWÉ®’]¥§GOžòŒ|×Û®·]o™udÖ‘Y¯=^{¼¦ôƒr bIÄ•ˆ1yÆ¿87Åy*ÎYÖe'r ‘WÈ9ó¹™ÈÓX5”±—ûJ9ǿ؛‹}:«†ò"j‰¢®(ÏÈõXQ›uZV 倞Œ†‰±pnõÜê¹ÕWä­È[‘g9Ûr¶åì·ꊿW|ñyD}q-ÿZþµü/N|qâ‹uéoÚ:µuj²o²o²ï³jϪ=«Æºànžjžj^¦U¦U¦ÕC: éPQñ¾+|Wø®Ž'O8–l.Ù\²™ÅÁÿÚËŒ—/3Ì;0ïÀ¼ŽÓ;Nï8½¢â?®s\ç¸ÎÙý³ûg÷g]ðv<œ÷pÞÃy_µúªÕW­F;Œv]Qñ?wãÜs7æüœósÎϬ Þo"ö**òÅy'ÎAq>².x;D¾!rŠŠ‘w‰Läc¬ þ×ÄSì7ÅÞ³¢â_ì»Å\ìÇYü¯‰£¨7ŠÚcEÅ¿¨»Š,ë‚·ƒž • S——w¨ç¡ž‡zÆ}÷mÜ·6Kl–Ø,)ûI+þñgŠ?_ü]̹!ù-õ·ÔßR·Û~lû±¡C†Ö¯^;¼ìñã5ÆkŒ×˜é3§Ïœ>ótïÓ½O÷~–ò,åY s9PNPNPN¸:÷êÜ«s׬-X[ЭZ·jݪ•WÒÓ¡f‡šj.·\n¹Ü2ûföÍì›ÅæÅæÅæÌ<äàÅå—_\>{îì¹³çæ½œ÷rÞË67ÛÜls³¼â?âtÄéˆÓ›'ož¼yòÍ«7¯Þ¼ª*V«Š™yÈÁ“VOZ=iul÷±ÝÇvO̘˜11Ã!Ë!Ë!«ì‘oñžÅ{ï [1lŰ)»Sv§ìÎ Ë Ë cÎ!£ÂPXnXn˜ˆO«"nˡћåå%Î)q~‰s9‡,«ŠUÅ"'ù‰ÈUÊ+óy”È©D~%r-&²óbóbs±'ûS±W-¯øûh±§ûk±×fæ!¢)j’¢>)j•e|Q;uTQSõUæòAφp©¥ÏJŸ•>+µ0µ0µPü3s](—*—*—ž>vúØéc§RO¥žJ½˜y1ób&3cð׿îüu'íyÚó´çi Ó¦-¼z/ô^(3cðkñ¯Å¿§µHk‘ÖâtÄéˆÓ…Ý »ò¦^…3igÒΤŠ<y*2Ý&Ý&݆9ímÒmÒmDü‹s91yŽÈyDþ#r!fÆ@ìsÅžWìÅ^˜™1uNQóõOQ ef` Ô½§Þ9õΩw˜T,À@©Ñ†<ÑJ0ä‰0Pj4€!O4€€R£ y¢ ” `È ` ÔhCžh¥FòD(5À'À@©Ñ†<ÑJ0ä‰0Pj4€!O4€€R£ y¢ ” `È ` ÔhCžh¥FòD(5À'À@©Ñ†<ÑJ0ä‰0Pj4€!O4€€R£ y¢ ” `È ` ÔhCžh¥FòD(µ­¶nغalϱ=ÇöÿœSSSÀÌ bÑA  `04€À@ÐA  `04€À@ÐA  `04€À@ÐA  `04€À@ÐA  `04€À@ÐA  `04€À@ÐA  `04€À@ÐA  `04€À@ÐA  `04€À@ÐA  `04€À@Ðñ+ßÑÜ-M[Á%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/reduce.png000066400000000000000000001141771431412030200246530ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwT×ãÇ}ÆT öb/Ø V,Ø{Q,±D¨X£¢ÑöÞk,±Å޽ÄÞ{WD±"îóÇ|Ÿóg]~( ìïל3Çóý†½³wïνw>;sS™†Š*c ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ;}8úpthƒÐ¡ ¹r?äNðe>¬ü°òÃʃ3Î<834"4"4â|ÑóEÏ¥fø27¾¿ñýïøð9àsÐû ÷Aï7Þ4zÓˆš0`ø?<›ùlæ³™â q†8cDñÅGwKë–Ö-m¦Ë»0ï¼ ûgæá;Ãw†?Êö(Û£lÔ9ÀØn;5ûÖìõAëƒÖuÜep—Á™lÄCö=ä`ÿ`ÿ`ÿ#­´>Ò:*(*(*ˆ:ÕÛ´oÓ¾M{rôÉÑ'GϨ<£òŒÊµüjùÕò³UßÚ. ]@»€•ÃW_9üÚÀk¯ 4Ÿ0Ÿ0Ÿ æì0üGØü°ùaó—Y^dy‘â!ÅCЇdJ&Ó÷Nß;}ï´wÒÞIËçp\æ_˜aþ·n#Ü’«W­5µÖÔZSw¤Þ‘zGꨭQ[£¶ò¹Ñ;ïwÞï¼ÿñúÇë¯&› l20¹úÖ§œpúTùSåO•çs¤d–½dhšÐ4¡i¨$/`)ÛmómóíSNU8U¡å›–oZ¾Éd—Üûº÷uï+N§‹ÓcVĬˆYÁG°Oo'¿üvò&ÏMž›<³ÝÎv;Ûmûì[¦˜v`Ú›¾7}oúò©ìÙ}í¾v_ Ê”'(O&;¶|ÕòUËWE=ŠzõˆO rÃ>H¡NN<9ñäÄÊ>•}*û|Ùä¶Lç<{sì?µüÍÂeB¤Z•KÞ֯ᡊ ÅéÍ¿¯¤­hñ¬ÊJyAó•_þíÖ¸¤{¡ÅJ!e® [Q©VQ¯j‹\׿vý²rV;­vZ½/t_è¾PóæÌ?ði’×ûEï½_´"xEðŠà„\8Γ»üÕjÏ i¹¢W…’uz¿¿«l•¡}g*_rdÈÂýåÇŒZ¸øûrÕ‡oyUºì€tSƒ‹ëüõ…®Õkgk~-ËÐÜšóµ/+·ý¦ö›Úoº¹ææš›kø4öàÁ•W\ X°>`ý—õn¹wfM—ù×.KÍËÿ~º¿·©d÷+,+ÿaߦ7+RW¶˜Q%@YÑ¢L•2{+5ÙZ)ÃêÕõüÊ­œ°Þ3o‰ÒM×]~NHŸ>çàœƒs¾ùæÍ7o¾áÓ0ì0€äQªG©¥j·µÝÖv[ã?q­ñ @<¹Öu¨ï_¾úšÛTÿÃl¨[×Vûg.ÝåZÕþîÔØÛ½L›ç%†¸f‰ÿ±• +V.ìb¡‹….âó$=å¬rV9û¹…óϪW£­W¹èïDz}¿äÒÁÇÞÞ+V;f«}¥kS;n9T­{Çå²®v]`SümdÀÈ€‘QþQþQþ|¾€¤ô6ümøÛðßkÿ^û÷ÚŸô Y¿Ï8£wõQ%/œÏÒ¾µÙ¶±ÆH½gù„¸Ñ2´j¡! ÜÇ9ô¹ýþ®Ñ»Fïm>c>c>ç 0`Ø'`F·Ç¼Ç¼g]úué×¥ÿuÕÎzߗ듯w[Ÿå¶<Ç¿{V'÷¿Êzäý>G«øóä“sLÎÝ$ºIt>v@≘1=bzwÏîžÝ=ãÓCå­T©cÍÁZ©º¬ŸmƒÞøï=;ÍŸ*;û¹Ó­_>ã ª³ê¬:ó‰ÛÉ4'ÓœLÿjB{%ò>šØuS·É5c=y¡mO·Ÿö–ŒÎ¿8>ÇÜøMã7ß<Ùüdó“Í|â#!†}"`X‘";Evjݯu¿Öý➈jc~Ö•ªo‹Ÿ«´þØ­÷¿>“k mmvE»»ÕjÔïP8]ÞÃq¿—"ßù¶È·wnß¹}ç6m`['œXpbA¼îñ­\·@ëcUFÏûwŸä }­í½2.yp0ºt羊Ï{“fLš1i> ø0àÃÚÀf¼Ì^f¯™+f®˜¹">ýÑŠbus–½ôzrÏ;u ØÛŒõ‘o×¹5†÷¨ô¸èÊø¼ù°|X>L0ì0ºx=ðz`|¦;+6:Uñ©½MžãÞÍÖºµGγ¤uº÷» :%t íp«¯­¾¶úÿXa7ד2.Uœ+žÖa[{ }­†ÁW–÷:Z©Dýî»G¬‹ûÝU+[­lµ²Ï·<ßò| í¯«¿®þºz«’­J¶*wï3¥¥W·aï÷ÊU禣ÌXï]íÒ¤F¡6?•ðÎ÷»›ešeše2_3_3_£U0ì0C9^æx™ãeâždö}ZÞ§Ðé—#ü¤Úƒ+úýÏ:L¾½{ùlœ1½úÔ’7â~¿[ªm©¶¥mðÙn˜o˜oLÎ29Ëäÿc}úÒ¿ ÌðûuG }­í«–™¹eOÕ\Ë䪒#î÷{7ìnØÝ0às…g ÏžµpÞÂy çµÖ˔̑{löž×3wêåÝÝqg¬ú~ÿ™fé*ÝŒ»Wä;ÈwoLDLDL-àˆ€aŸ€Ä‘F÷ÄrWÆsÝ{8úÚrÿï©¶¿zöø?V5N¿*ýªô´@¼l4o4o ô ô ô³Ö³d+ãZ¡Ð­*¯ÿŒÞÝÒÑ£ßÿì=W„Нìºqøÿ±ã­æ·šßjNcć¾ömÜ=Ëø™þ1}ïm>Œ4c}ªv¯^3¼Ö©¯óL¶öÞ»mé¶¥Û–˜‘1#cFÒZŽ…ö‰€Ã;x"ðÄÿñÀç«…:nóŠ4^ô{>¶û¤Z9+ôsöÌ™ÞZ=l Ù²)„6ˆÛ¸ôãÒ³Ú›¸¶¬ÝªE)¯¯–ˆ*úµØ—o4òí"¸Çv?Øý`7m`Í‹/r¼È‘yOæ=™÷XëMv,k´ âQcÏXc|{÷òÙ0baeS±Öê¡÷”ÞSzO1{›½ÍÞ´€£ †}"àÀnV¹Yåf«+nͲ&sµ'çºM®9ÚØéØû·;ý·×YÞ¼c±n.§­ÕŒZ^-¯–§ý,-N¿8ýb«Ñoá­ŽöÞéí²Â똯±£ßØûJy'›7 Öê$«–U˪½t~éüÒ™öˆíÝêw«ß­®Ø½b÷ŠÝ­õ#‡Ç¶’ªšRÎŒUßϨVº™µ:™øÇÄ?&þAû8 `Ø'`)ª~Tý¨úÖ¦‹9C³4ÉüÍóº=ÊÔ“Ò&Òú>út¯«>­Z-¶ÙÅl­–nÞ¿yÿæ}Ú@§WŽ+Ç­õEj¶IÛ§~Ê }-÷•3L}¿u޵úi< ñ€Æ>.ú¸èã"ÚÀüÑüÑü1`\À¸€qÖúŽ ÚLö82g¬ú~þãÚéJG[«Ÿ¿ZþÕò¯–4%€ý#†}"àh^™_™_uòïäßÉßÚDññÇn•k6NÉi}ÿ®”ÿÍ:¦Ê;]ÎäúÚ²–œ?:tþøîÀ»ïЬ %{ìôØé±“µ^µÀ/¾é:üë]vÅÐc³Rr¬ïÝûN<½.ÜZ]ͬ?³þÌú´(Àú\ës­Ïeõ™Læ;ªŒfƪïƒóU;àVÖZ]];píÀ5f¬»F ûD ÀÁlõØê±Õêj|—¦uØëÕ‰)tìýó:=J×m­ÆF÷ÝstOÚ¤PõÌõÌõjϯ=¿öüOÖúˆÕõZ•›Ï,õ?û_ÜëépÊíkÔ'~ˆ–­@¶٢ããÃi]ûDl+»·îÞº{«^‡“ÖOZ?iýóúÏë?çgÖ_ˆ€ÃxZæi™§e¬M¤·Mjxºbs&ÏÖögGµ»P­²µÚ;]õtÕÓUicÒl¼¶ñÚÆkÖzás÷›÷ZÛ©ß&wŸ–õ–+c®Œ¹2F ÑB´@€ÄËìeöò ó ó ³ìª–«SÈ™©µý«Œ=ÛÔ>amL2Û¶ÿlšÀ>'\L‹˜1-¬ƒ¿ 0‡Ñs|Ïñ=Ç[vÝ›•Þ^`-æøìç­®5½ôË:,X¨`¡‚…bŽÆ9JK€”àÅÚk_¬µ6¹*ßtTÚE ˆxãÞ{u_v¸Q–‰¹_¹8[Öáâÿ¸øGZ¤;î츳㎵¾õÕO=©}“9éÿñÃe§v[«å³V‡÷Wß_}5- `o€.ö½¿q# Ž?`àBþ ù/ä·vÒþW6µB˜*ÇgãÓ»§ÏúÂ}s¦Íz÷wQ§Ú–jý¤A+‚V­°ì \7Öñoùánü÷•ÏÚ4ÂÚ(åEºé^¤£½€±½íö¶ÛÛnÖú‚O[©Z”Ùhü÷ãÇzl)þ‰»¨»\írµËUÚÀÞ'œèêán¦x# Žú8€ú£êª?Êò¿1{ƒ¾å¯3=þÜýéšíR{î¶ÖqFgÎVFõøçÇ??þÙêcŸÇϽjZL¬û¹û‚÷šÌêºåÓÑZ“jMªE«c[°<`y€e/о˜[}×9Ì@?ûqÐg{.«ýÞÚXåê㫯>¦Õì°mÛ 0»vÙù²óåO`ç9K÷§±6zùøòãË/i‡`$îçÝÏ»Ÿ·<ç_{Ø©w;æ› ß/ óYYö£—ì!ÙCXº`€“ap|°SÛfl›±m†åizöƒšÅJ]al«½6ªÅ­* -ë9pgàÎÀ´C0w7w7w7Ës~U—™ÃwGßÚjï¼Úãz½Ú–õ|9ç圗sÒÀšš~â‚où³Î_åc¦i«}D±wj=µv×\É\É\‰ÖH^ÀÉ‹0Ø`vªvžÚyjç±<5?¬×µbmöý²œuú5Ó“L_äÁ¼./kL±Ÿyk{7·®s,óVé[¥o•¦5’°ý Ž€Ýyñ*âUÄ'PÙ#g×lyìúÊ2ÖÍT­kpîÿ\°ÿ_Uÿ|¤B›Â¿ZÖùõ×k\¯A›G·kÏ®=»öXžçKµí×qrv{M+ ™’msÁìßxX¬cü'i®jlÑÂ;ÓŠŒÇ2ÚQŒ}mIƒŸ¸ÓÚÉìdv2›››Ó&ÀÑy¸z¸z¸ZžíŸ_êѳÖòäß]óî”Ó»|¦°·XÞ¼{å–ǹ¸ûâî‹»ÓÉ‹Ø>°;''Ÿœ|rò'þT3u)Õž£ßßLžJôÿÄc©ì>=Ó²k•‡–G¾Üo¹ßr?Ú$8ºåz”ëQî=kÝÞÉ—zÝ^t´E®‹¥ïV>ý¿ÃZät0³Oþë§nW©ÔÜþyƒ3¹õÛok«—9¬úìK®¥kÝh’É;ÓÊLÇc¿»{ôWUnÔÙfYçá Æ/¤M€ãzô&èMÐ'~Vµ9OŽìŠ=Ìïö59\Éå?³é£5]J÷G­‰¥·Ägµ«§{í}ö3c|î7­v Ë:÷ŽôŽôޤM’°ýK™a00»3kø¬á³†[žpϽjß½Út{˜|>îÓ-UÍ’4(U~ÏØwy‹Ï.Ëù›Ϭ®Kdÿë* èSëƒå‘7O×<]ót´Ip`Ì̬õPÞ_/~ô~ò¥eüŸ™ñŸŸO•òï7ur+ýÿµ wõÿ¥ð’–{mÖÿ½W¡ŠŸ³·¸Ôœþ¹ƒ?ñhÐÐõ¡ëC×Ó0Àq]úæÒ7—¾±<Ãÿ‘ÊûuÉßìa~§Ç½úQ¹µÏ]5»‡£ÌLãÞ.š#,ë9Ëš®]#š'W’ °cI9a00»ã{Û÷¶ïmË“ì«=—Ô~kÓΕ—êî+çÿîÁ¦Ó§ÚÖõ´züYÍYÍYi™àˆ"¿‹ü.ò;Ës»K€Wßîö”iÓ¦^Ÿ%úQe=àò¨`Åø<ҹʊÏÿ~÷ÿæØÿßÝÀöWî;ÍyÛ–5?=|zøôpZ&8® 6lذÁò ´TëÎÎö0¿ø]……%ý¨ZÜ(‘¯˜1àQUª´)6Ö²æïÿsÿŸûÿÐ2É…Øq; &à]æÿ&«÷ºÔ­aÓÎs{Ú7¬6æÏoªï)ùÞrï°9  nÝŽ!%ËæÿÄ*VQù¢òEå£e€#ºœûrî˹-Ïí%ÎúõuÙ‚ÒüëÏi™5ÀY˿ߥ‹Wqߪñ‰r«î™Ýi_OÜÓl?+û-:êó‰§kôoÞ¿yZ&8®!퇴ÒÞò v±ÛÚ{íaf×°m‘‚ÎCõ£Ñ£òúbÙ=úÕ÷»27ïÞβæ(” -\€Áxa00è2›¼(:ÂÅÇQ&¥ŽÏ ¨áYÊ×òøo_¾}ùöeZ&8¢ýÕ÷Wß_ÝòÜ^^ ê»$§½=69þû-º_q*ö}Ãv·p¾Ç:XÖ|ö|ÙóeÏGËÇåããó‰÷ìµÃ§š½ÍI ¬]¥LnýÇÊ5b ÔÏã’·aÖ¥™Ï•.™§nözº‰®W—§óÙ\vž9C@ƺv={½ø´CWËš_é´Òi¥-\€Ça00è2GŽ©’¹XàÄÞÿ¿q1÷–ÇB;¡Ðh™àˆ–:-uZêdyn¯­ ñBÀÈ1U2kCœØû¿ó7.æ^ÀòøOh'´-ÑR§¥NK,Ïí•'N´mxò†£ËB* ™c•[T¯wãÆÿ*Ö﹪±þ·™å\ž'½ÀÙÏîì6õSc€qf¬ÿ;·? èZ·FòÎé”û-Tñ–£š?¯òí­ÈŸ.W¯ÿ¿Ýy¸ñ7îô÷RÒ7÷ììƒìm>¶¡ÛÅš[-k~l“±MÆ6¡eìgl ‡…ÔŒ1èÁí¤õ“ÖOZÿÐWÿï“>ô€t™M^áâCœØû™5ºg¯>Õ’wNçåáz'wýxêÿV8{ÞÓñÿÛAaÇ)©ÿ­ŸTfAÁòö6Ÿ½ø´CWËš_é´Òi¥-\€ÇqCߨ€8@—ù¿iç½€.Éý{jcÀCJ–ÍïjyüQù¢òEå£e€#ºœûrî˹-Ïí%ÎúõuÙÞàL‹œfö©0cÌËåãþ«ªfUÞó$ëy—¹ÖÒÿ´H±Ö»nÛO\ÍoÑñPËšoÞ¿yÿæýi™à¸†´Ò~H{Ë3|ØÅnkîµ·Ùh|æ¤rÚæ!•O;EfÒ2éÿ½v¨Å‡*›ìmƺ+sãñîí,ßÝå€r@¡e’ °1#ô€Ýñ½í{Û÷¶åÉôÕ‰žKj¿%N”ý©€¶u=­^,ÈjÎjÎJËGù]äw‘ßYžÛ]¼øv·‡ ´Òé©U·,vº•í@Žþ±°à‰& º6-3û¿?‹ëz.ë24÷¬.EÚ´©×gIì>ë«ÿê”¶Ÿ‡?Wî;ÍyÛ–5?=|zøôpZ&8® 6lذÁò ´TëÎÎÉ;³‹¸ãW¬vö¢!9Ïd릕ëú//ۨಿ÷5îæ^çX“ÖG=:o)ï;§ÂÌ~uËûz;úí¹­ÌË‚ö9“U¥J›bc-kþþ?÷ÿ¹ÿ-\€—ñBߨ€ØYÃg Ÿ5ÜòÄzîUûîÕ¦'Êe‚=bj}øÄ]Jéš§kžŽ6 ¬“¹“¹“µI‹÷×ËŸ½o?÷g^3Cî.ñŸtår)¹¨âÍJ9'GlÜho«ÿ–šÓ?wp†O\Xº>t= ×¥o.}séË3ü©¼_—üÍ~椥âì]ðLŽ~Y'g u:åäZlr®’ÙæuÉUjLþ§B¹fÁ•KÇþ+{›±F>÷›V»Å'~ÊééI›$/`û—rBߨ€ØW¯"^EXžp‹ôÈÙ5[GYOמ'Ï–ûŸThSøWË:¿^ãzëü’Þ®=»öìÚó‰KÕmûuœœÝÞ¢Óÿ\Øó¿±·#ÿßê¿×–Ô9èfYÛNf'³“Ù|Ü|Ü|œ6 ŽÎÃÕÃÕÃÕòlÿüRžµ–;ÖÌÔþç­ÒðæÝ+ï°¬íÅÝw_ÜÖH^Àö)e†¾±°SµóÔÎS;å)øa½®kls¬Øž÷ïôò÷É`­Ã‹ Œ Œ ¤5€£ Ÿ>?|¾åy>G¥" Kå·ÏÕq÷œF÷Zú‰ÇnOJ?)ý¤ô´F0†•VfXù‰™Ô¶T —U¬ÀLÓ¶ûönn \çXÖö­Ò·Jß*Mk$/`ûAè0;µmƶÛf|âAÐj+u… °­öÚ¨·ª,´¬çÀ;wÒÀHÜÝÜÝÜ?qgjU—™ÃwGÜÚìáÏ«=®×«mYÏ—s^Îy9'íŒá¡ù¡ùá'.ø–?ëüUŽ0fš¶ÚGëq§ÖSk—k͕̕̕h€äEœ¼}­!`§"'DNˆœ`í}ª×ŸVL†¾¯sµà¾<-køRúKé/q—Ê_3ÿšù×ÌO,²0½Í˾£n¾÷pž³tk£—/?¾üø’vFâ~Þý¼ûyËsþµ‡Úy·c¾™ðý²0Ÿ•e?1z É’=$;-`€“¡o|°kþÛü·ùo³ßû|ïͳ̳̳h`$¯¾jøª¡µ‰ç»…#ÕÙ„¸ ÙYÐ6gßÍ–u»<ÝòtËÓÑÀxölݳuÏVË3¯eƒ jÌ:²nÐk½O%kã–°4ai¸°° ÀIƒÐ÷s°k—/;_v¶ë ÷Í™6ë]˚ܖj[ªmô "­Z´Â²/pÝXÇ¿åºñßWj±\Åâÿ¸øGZ¤;î츳㎵¾õÕO=©}“9iÜû³Ní¶VËg­ﯾ¿úþjZÀÞ'Üî­»·îÞJèk[ÀÆÓ2OË<-cíÔ¿mRÃÓ›3a¶:‘ÕîBµÊÖjïtÕÓUOW¥@J³ñÚÆk¯Y}ôð¹ûMƒ z­í‹Ôo“»OËzË•1WÆ\£…h!Z @ âeö2{y†y†y~âîÕ€ªåêrgfjõ±Ï{¶©}ÂÚ˜d¶ÿlÿÙþ41€}"N¸˜1-bZúÚ0³Õc«ÇVkÁ¥iözubò{ÿ¼NÒµF[«±Ñ=G÷Ý“v)T=s=s½Úókϯ=ß²ÈyÂmQ…¹^,vØLÜ{_öça9f¯¶Ö·žÍy6çÙœ4.H™n÷¹Ýçvk}ÄêÀz­ÊÍg–úŸý/îu‹t8åöÀ5Ê²Æ d+­@¶èðèðèpZÀ>ÛJìû€ }Ž€£ye~e~ÕÉ¿“'k“êÇ»U®Ù˜‰ô»Rþ7ë˜*ït9“ëkËZrþèüÑùã»ï¼;@³€”ì±Óc§ÇNÖzÕ¿ø¦ëð¯wÙCÍ"úuï;ñôºpku5³þÌú3™šÌës­Ïµ>—µþB5·ØQe43V}œ¯Ú·²ÖêêÚk®1cØ5`Ø'`)ª~Tý¨úÖ¦ˆ9C³4ÉüÍóº=ÊÔ“2§Ðѧ{]õiÕ¢h±Í.fkµtóþÍû7ïÓ–:å¸r\9n­×(R³MÚ>õSrô[9ÃÔ÷[çX«ŸÆh<à㢋>.¢-ÌÍÍÆŒ g­ï8Ñ ÍdÓ)9úÿ¸vºÒÑÖê篖µü«%M `ÿ€aŸ€8°›UnV¹YÅÚt1×Ö,k2W{r®Ûäš)è·Õowúo¯³¼yÇbÝ\N[ý½yyµ¼Zžö°´8ýâô‹Ó[ëA ßhu´÷No—^Ç|SNô[)ïdóFÁZdÕ²jYµ—Î/_:Ó~±½[ýnõ»Õ»Wì^±»µ~äðØVRUSJ‹~çFÔ +ÝÌZLücâÿ ý0ì0‡w"ðDà‰ÀLqºZ¨ã6¯HcO¡ÃÇvŸT+g…~Ξ9­^¸ß²)dSm·qéÇ¥gµ7qmY»U‹R^_-6vô[¾ÑÈ·‹<âc<Øý`÷ƒÝ´€5/r¼Èñ"Gæ=™÷dÞc­7Ù±¬Ñ‚ŠG=cñíÝËgÈ…•MÅ X«‡ÞSzOé=Åìmö6{ÓrŽ‚ö‰€Ay`ä‘q_¢ÝU§ñ\÷Æ›Hÿ{ªí¯ž=â~ï«Ò¯J¿*=í/ÍÍýýý¬õ,ÙʸV(t«Êë?£w·4Tôë¹"ä˜P|e×ÃÓÄÝ·Þj~«ù­æ4@|<Ùüdó“Íq÷,ãgzü]üùÇô½·ù\0ÒŒõ©Ú½zÍðZ§ ¼Î3ÙÚ{ï¶¥Û–n[bFÆŒŒIk8`Ø'`†r¼Ìñ2ÇËÄ=©îû´¼O¡Ó/GøIµ;ø¯§7Θ^}jÉq¿ß-Õ¶TÛR¶øl7Ì7Ì7&g™œer–¸ûšÒ¿ ÌðûuG~«–™¹eOÕ\Ë䪒#î÷{7ìnØÝ0às…g ÏžµpÞÂy çµÖ˔̑{löž×3wêåÝÝÑ£ßýgš¥«t3î^uï ßA¾111´€#"†}"`@ׯ^ÿ? ­ÛY±Ñ©ŠOk }4[ëÖ9s|Ì’ÖéjÜï.tJè”Ð)´@­¾¶úÚêkq÷;¹ž”q©â\yô´Û:8Jèëuey¯£•JÔï¾{ĺ¸ß]µ²ÕÊV+û|Ëó-Ï·Ð ñºúë꯫·*Ùªd«’q÷>SZzUqöîp¯\un:ÊŒõÞÕ.MjjóS ï|‘q¿»Y¦Y¦Y&ó5ó5ó5ZÀqÃ>0¬ÈN‘";µî׺_ë~qO; 5È1?ëJÕ·ÅÏUZìÖû_ŸÇö6…>»¢ÝÝj5êw(œ.ïá¸ßK‘o‹|[äÛ;·ïܾs›6°­ N,8± >?±Ê_¹nÖǪŒž1öï>vúf\òà`té†:N}Ÿ÷2&͘4cÒ|ðaÀ‡´€Íx™½Ì^3WÌ\1sE|ú£Åêæ,{éõäžwê°·ë#ß®sk„ ïQéqÑ•ñy/òaù°|˜&0`Ø'`F·Ç¼Ç¼g]úué×¥Ïo«vÖû¾\ߘ|½Ûú,O®)ôîYMœÜÿ*ë‘÷û­âsÌ“sLÎ19Gt“è&ÑMøØ‰'bzÄôˆéÝ=»{v÷ŒO•·R¥Ž5Wh5¦ê²~Éúzvš?Uv*ös§[¿¸Æ< :«Îª3Ÿ8 ±Ls2ÍÉ4ñï¡&´÷øX"]7Õx›\3Ö“ÚæñtûioÉèü‹ãsÌß4~Óø¾2Ÿ8ÀH€aŸ€¤ R=Jõ(U»­í¶¶Ûÿ©ujäɵ®C}ÿòÕïÔìܦú¶6?sé.תöw§ÆÞîeÚ_@Rzþ6ümøïµ¯ý{íø÷\¹…¬ßgœÑ»ú¨’Îgiß¿ÚlÛÎXc¤Þ³|BÜhZµÐîc‹úÜ~×è]£w6Ÿ1Ÿ1ŸáS0ì0€êäÄ“ON¬ìSÙ§²O¦/R¦sž½9 öŸZþfá2!R­Ê¥Goë×ðPņâôæßWÒV´xVe¥¼ ù‰Ê/ÿvk\Ò½Ðb¥Î2W†­¨T«¨WµE®ks»~Y¹N«V;­Þº/t_¨ùóæø4Éëý¢÷‹Þ/Z¼"xEp¦È“»üÕjÏ i¹¢W…’uz¿¿«l•¡}g*_rdÈÂýåÇŒZ¸øûrÕ‡oyUºì€tSƒ‹ëüõ…®Õkgk~-ËÐÜšóµ/+·ý¦ö›Úoº¹ææš›kø4öàÁ•W\ X°>`ý—õn¹wfM—ù×.KÍËÿ~º¿·©d÷+,+ÿaߦ7+RW¶˜Q%@YÑ¢L•2{+5ÙZ)ÃêÕõüÊ­œ°Þ3o‰ÒM×]~NHŸ>çàœƒs¾ùæÍ7o¾áÓ0ì0€”í¶ù¶ùö© §*œªÐòMË7-ßd²Kî}Ýûº÷§‹ÓÅé1+bVĬà£ا·“ßN~;y“ç&ÏMžÙng»í¶}ö­ÓL;0íMß›¾7}ùÔöì¾v_»¯å Ê”'“[¾jùªå«¢E=ŠzħH9€aŸ€à?Âæ‡Í›¿¼Èò"Ë‹)R<$¹&ÏÓ÷Nß;}ï´wÒÞIËçp\æ_˜aþ·n#Ü’«W­5µÖÔZSw¤Þ‘zGꨭQ[£¶ò¹Ñ;ïwÞï¼ÿñúÇë¯&› l20¹úÖ§œpúTùSåO•çs¤dÀ°OÀðx6óÙÌg3Åâ qƈâ#Š(î–Ö-­[Ú„O˜ó.Ì»0ïÂþ™ûgîŸygøÎðá²=Êö(u0¶[³o;5{}Ðú õA]wÜe°­.F{Ȳ‡ììì¤õ‘ÖGZGEEQç£z›ömÚ·iOŽ>9úäè•gTžQ¹–_-¿Z~¶ê[Û´ h°røÊá+‡_xmàµæææÔ<€=#;}8úpthƒÐ¡ ¹r?äNðe>¬ü°òÃʃ3Î<834"4"4â|ÑóEÏ¥fø27¾¿ñýïøð9àsÐû ÷Aï7Þ4zÓˆš0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0`0ˆ$ €CÓ„¦ M“ R ='%‡G ‘â`ýMš:4uhªÐT¡©´ÚGí££Åh1Z´­Ekïµ÷Ú{í­öV{«½ÑÞho´WÚ+í•¥EiQZ¤©EjZ„¡½Ð^h/´gÚ3í™®…káZ˜¦…iO´'Úí‘öH{¤=ÔjµûÚ}í¾vO»§ÝÓîhw´;Úmí¶v[»©ÝÔnj7´Ú íšvM»¦]Õ®jWµ+ÚíŠvI»¤]Ò.jµ‹Úyí¼v^;§ÓÎig´3Úí´vZ;­ý«ý«ý«ÔNj'µãÚqí¸vL;¦ÓŽhG´#Úaí°vX;¤Òi´Ú-T ÕB5US5US4ES4I“4I5Q5“fÒLÚ~m¿¶_Û§íÓöi{µ½Ú^m·¶[Û­íÒvi»´ÚNm§¶CÛ¡íжkÛµíÚ_Ú_Ú_ÚVm«¶UÛ¬mÖ6k›´MÚ&mƒ¶AÛ ­×ÖkëµµÚZm­¶F[£­ÑVi«´UÚJm¥¶R[®-×–kË´eÚ2m©¶T[ª-Ök‹µEÚ"m‘¶@[ -ÐækóµùZˆ¢…hsµ¹Ú\m¶6[›­ÍÒfi³´?µ?µ?µÚ m†6]›®MצiÓ´iÚTmª6U›¢MѦhÁZ°¬MÒ&i“´‰ÚDm¢6A› MÐÆkãµñÚXm¬6V£ÑÆhAZ¤ÒFi£´Úm„¨jÚ¯Ú¯Ú¯Ú0m˜6L¢ цh¿h¿h¿hƒ´AÚ m 6P¨ Ðh´þZ­¿ÖOë§õÓúh}´>Z€ h½´^Z/Í_ó×ü5?ÍOóÓzh=´Z7­›ÖMëªuÕºjµÎZgí'í'í'­£ÖQë¨uÐ:h´öZ{­½ÖVk«µÕÚhm´6Z+­•ÖJk©µÔZj͵æZs­™ÖLk¦5ÑšhM´ÆZc­±ÖPk¨5Ô|5_ÍW«¯Õ×êkõ´zZ=ÍGóÑ|´:Z­ŽVK«¥ÕÒjj5µšZ ­†VCóÖ¼5oÍKóÒ¼4OÍSóÔ<4ÍC«¢UѪh•µÊZeÍ]s×ܵŠZE­¢V^+¯•×Êiå´rZ­ŒVF+­•ÖJk%µ’ZIÍMsÓÜ´âZq­¸VL+¦ÓŠjEµ¢Za­°VX+¤Ò i´Z-¿–_˯åÓòiù4ÍEsÑòjyµ¼Z-–GË¥åÒri9µœZN-»–]Ë®eÓ²iÙ´,Z-‹–YˬeÖ2i™´LZF-£–QK¯¥×Òk?j?j?j?h?h?hßißißißjßjßjé´tZ:íkíkík-–FK£}¥}¥}¥¥ÒRi©T³jVÍjŒ£Æ¨Ôêõ½ú^}¯¾Sß©ïÔ7êõúZ}­¾V£Ô(5J}©¾T_ªj„¡¾P_¨/Ôçêsõ¹®†«áêSõ©úT}¢>QŸ¨ÕÇêcõ¡úP}¨>P¨Ô{ê=õžzW½«ÞUo«·ÕÛê-õ–zK½¡ÞPo¨×ÕëêuõªzU½ª^Q¯¨WÔKê%õ’zQ½¨^TÏ«çÕóê9õœzN=«žUϪ§ÕÓêiõ”zJ=¥žTOª'Õê õ„zL=¦SªGÕ£êaõ°zX=¤R©Ôê5T UCU¢*ª¢Jª¤Jª¨Šª¨šT“jR÷«ûÕýê>uŸºOÝ«îU÷ª»ÕÝênu—ºKÝ¥îTwª;Õêu‡º]Ý®nWÿRÿRÿR·ª[Õ­êfu³ºYݤnR7©Ô êu½º^]¯®UתkÕ5êuºJ]¥®RWª+Õ•êru¹º\]¦.S—©KÔ%êu±ºX]¬.Tª Õêu:O§ÎSCÔ5D£ÎQ稳ÕÙêlu–:K¥þ©þ©þ©ÎPg¨3Ôéêtuº:M¦NS§ªSÕ©êuŠ:E¬NV'«“ÔIê$õ7õ7õ7u‚:A ŽSÇ©ãÔ±êXu¬:Z­ŽVƒÔ 5H©ŽTGª#Ôêu¸:\®þªþªþªU‡ªCÕ!êuˆ:X¬V©ƒÔAêu€:@ýYýYýYí¯öWû«}Õ¾j_µÚGí£öV{«½Õ^j/µ—ÚSí©öTýT?ÕOí®vW»«ÝÔnj7µ‹ÚEí¢vV;«ÕNj'µ“ÚQí¨vTÛ«íÕöj;µÚNm£¶QÛ¨­ÕÖjkµ¥ÚRm©¶P[¨-Ôfj3µ™ÚTmª6U«ÕÆj#µ‘ÚHõU}U_µÚ@m ÖSë©õÔºj]µ®ê£ú¨>jmµ¶Z[­¥ÖRk©5Ôj µºZ]­®z©^ª—ZM­¦VS=TÕC­ªVU«ª•ÕÊjeµ’ZI­¤VT+ªÕ jµ‚ZN-§–S˪eÕ²jiµ´ZZ-¥–RK©nª›ê¦–PK¨%Ôbj1µ˜ZT-ªU «…ÕÂj!µZH- P ¨ùÕüj~5ŸšOͧº¨.ª‹šWÍ«æUó¨yÔ%Ÿâ¢¸(.J^%¯’WÉ£äQò(¹”\J.%§’SÉ©dW²+Ù•lJ6%›’EÉ¢dQ2+™•ÌJ&%“’IɨdT2*é•ôJzåGåGåGå{å{å{å;å;å;ååå%’NI§¤UÒ*i•4J%’ZI­¤VR)©”TòGù£üQŽ‘cä9ZŽ–£å÷ò{ù½üV~+¿•ßÈoä7ò+ù•üJŽ’£ä(9RŽ”#å9BŽŸËÏåçò3ù™üL~*?•ŸÊar˜&?–ËåGò#ù‘ü@~ ?ïË÷åûò]ù®|W¾#ß‘ïÈ·ä[ò-ù¦|S¾)_—¯Ë×åkò5ùš|E¾"_‘/Ë—åËòEù¢|Q¾ _/Èçäsò9ù¬|V>+Ÿ–O˧åSò)ù”|R>)Ÿ”OÈ'äò1ù˜|L>*•ʇåÃòaù|H>$ÈäP9T•UY•Uý K²$K²(‹²(›d“l’÷Ëûåýò>yŸ¼OÞ+ï•÷Ê»åÝòny—¼KÞ%ï”wÊ;åòy‡¼MÞ&o“ÿ’ÿ’ÿ’·È[ä-òfy³¼YÞ(o”7Êä òy¼N^'¯•×ÊkåÕòjyµ¼J^%¯’WÈ+äòry¹¼\^*/•—ÊKä%òy‘¼H^$/”Ê åùò|y¾r¹·Ü[î-÷’{ɽäžrO¹§ì'ûÉ~rw¹»Ü]î&w“»É]ä.r¹³ÜYî,w’;Éär¹ƒÜ^n/·—ÛÊmå¶r¹ÜFn%·’[É-å–rK¹¹Ü\n.7“›ÉÍä&r¹‰ÜXn,7–Ê å†²¯ì+ûÊõåúr}¹ž\O®'ûÈ>²\G®#בkɵäZrM¹¦\S®.W—«ËÞ²·ì-W“«ÉÕdOÙSö”«ÊUåªr¹Š\E®$W’+Éî²»ì.W+Èäòry¹¼\V.+—•ËÈeä2r)¹”\J.)—”KÊ%är ¹¸\\..•‹ÊEå"r¹ˆ\H.$’ Êå‚r~9¿œ_v•]eWÙEv‘]dgÙYv–óÈyäiŸ´WÚ+í•vK»¥ÝÒßÒßÒßÒNi§´SÚ.m—¶KÛ¤mÒ6i«´UÚ*m‘¶H[¤MÒ&i“´QÚ(m”ÖKë¥õÒ:i´NZ#­‘ÖH«¥ÕÒji¥´RZ)­VH+¤eÒ2i™´TZ*-•K‹¥ÅÒ"i‘´HZ -Hó¥ùÒ|)D ‘B¤¹Ò\i®4[š-Í–fI³¤YÒŸÒŸÒŸÒ i†4Cš.M—¦KÓ¤iÒ4iª4Uš*M‘¦HS¤ÉÒdi²4Iš$M’~“~“~“&H¤ Ò8iœ4N#‘ÆH£¥ÑÒhi”4J%”FJ#¥@)P ”†KÃ¥áÒ0i˜4L* •†J¿H¿H¿Hƒ¥ÁÒ`i 4P( H¤þR©¿ÔOê'õ“úH}¤>R€ H½¤^R/É_ò—ü%?ÉOò“zH=¤R7©›ÔMê*u•ºJ¥ÎRgé'é'é'©£ÔQê(u:H¤vR;©ÔVj+µ•ZK­¥ÖR+©•ÔJj!µZHͤfR3©©ÔTj*5–K¥FR#©‘ä+ùJ¾R©Ô@ª'Õ“êIu¥ºR]©ŽTGª#Õ–jKµ¥šRM©¦TCª!Õ¼%oÉ[ò’¼$/ÉSò”<%ÉCòªHU¤*Re©²TYr—Ü%w©¢TQª(•—ÊKå¥rR9©œTF*#•‘JK¥¥ÒRI©¤TRr“Ü$7©¸T\*.•ŠJE¥"R©ˆTH*$’ J¥‚R~)¿”_r•\%WÉEr‘\$gÉYr–òHy¤ŸŠOŧb˜&†‰ÅÇâcñ‘øH|$>ˆÄûâ}ñ¾xW¼+ÞïˆwÄ;â-ñ–xK¼!Þoˆ×ÅëâuñªxU¼*^¯ˆWÄKâ%ñ’xQ¼(^Ï‹çÅóâ9ñœxN<#žψ§ÅÓâiñ_ñ_ñ_ñ¤xR<)‹ÇÅcâ1ñ˜xD<"‹‡ÅÃâAñ xP< èÿôé¾ÞÉ‹:ADAÜ/î÷‹ÿˆÿˆÿˆ{Žâ^q¸GÜ#îw‰»Ä¿Å¿Å¿Åâq‡¸]Ü.nÿÿÿ·Š[Å­âfq³¸YÜ$n7‰Ä âq½¸^\/®׊kÅ5âq¸J\%®Wˆ+Äârq¹¸\\*.—ŠKÄ%âq‘¸H\$.Š Åùâ|q¾8Oœ'ÎçŠsŹâqŽ8Gœ%Îg‰3Å™âLq†8Cœ!þ!þ!þ!N§‰ÓÄßÅßÅßÅ)âqŠ,‹Áâ$q’8IüMüMüMœ N'ˆãÄqâ8q¬8V+ŽG‹£Å 1H GŠ#Å‘âq„8B.‡‹¿Š¿Š¿ŠCÅ¡âPqˆ8D"‹ƒÅAâ q8@ û‰ýÄ~b_±¯ØW ı—ØKì%ú‹þ¢¿è'ú‰~b±‡ØCì&v»‰]Å®bW±³ØYì,þ$þ$þ$v;ŠÅb±ƒØNl'¶ÛŠmŶbk±µØZl%¶[‰-Äb ±¹Ø\l.6›ŠMÅÆbc±±ØHl$6}E_ÑWl 6ˆõÄzb=±®XW¬+ÖëˆuÄÚbm±¶XS¬)Ökˆ5Ä¢·è-z‹^¢—è%zŠž¢§è!zˆb±ŠXE¬,V+‹î¢»è.V+ˆÄòby±¼XV,+–ˈeÄ2b)±”XJ,)–KŠ%Äb ±¸X\,.‹ŠEÅ"b±ˆXH,$ ŠÅ‚b~1¿˜_t]EWÑEt]DgÑYtóˆyÄ …ÂáƒðAˆ¢…háðNx'¼Þ o…×ÂkáµðJx%¼^ /…—B¤)D /„ á¹ð\x.„ áB¸&„ aÂá‰ðDx$< …‡ÂCá¾p_¸/Üî ÷„;ÂáŽp[¸-Ün 7…›Â á†pC¸&\® W…«ÂUá²pY¸,\. —„ Âá‚pN8'œÎ g…³Âiá´pZ8%œN '…“ÂIá„pB8!Ž Ç„£ÂQá¨pX8, ‡„CÂá€p@B…PATAdAdA$At&Á$˜„„„„}Â>aŸ°GØ#ìv »…ÝÂßÂßÂßÂNa§°SØ.l¶ Û„mÂ6a«°UØ*l¶[„MÂ&a“°AØ lÖ ë…õÂZa­°VX#¬Ö«„UÂ*a¥°RX),– Ë…eÂ2a™°DX", ‹…ÅÂBa¡°PX ,ó„yÂÔÏÔ#4H^ÀÀ›!FrùèüÑù£sö Û6l»ÕÍÈ>#ûŒì¶mIYسé§Wœ^1ö™°QýFõÕçLRœ æ æ Gúéw¤ßЭC·Ýê³Ãg‡Ï·öníÝÚg_›}möµÅ‡^|x­›µnÖº9(lPØ 0ívH;¤Ï1¡€ml†É%xlðØà±±Û[!­VH{µæÕšWk·,°gQ»¢vEíŠý,ÝÔîS»OíNý€”@Ž’£ä¨ŠjEµ¢šé‹”q.ã\ÆÙVWN¡€Ž˜`3ÀHz§\œrqJÖЬ¡YCc··%!KB–ضí%eYà(f}töÑØgEý~}üúøÅ”Œ)S’$00Àf€‘¤2˜3˜34Ú`hƒ¡±[šþX­·Ãß;Ü!ˇòfò›Éo& )R4$ö2ö£ò©%` zôÛ{|ïñ½ÇgJ4þËý—û/OÈ8Šl†Iiͦ5›Öl²liK --´´m[]R–Žha·…Ýv³Ö®{ô¯Ü¿rÿÊñy€³þßüðKÀ/Ö^-O‡<òtxü0øa0#4ø\ÀÀ›!FÒ°ö+f}²mÛö–”e€£³vsI…%–T ~€ãò“ü$?ÉÚ6+Û¬l³ò³_4ƒ9ƒ9CË[þÛò_k¯ûqӌРþ€ €6CŒÄ¦ßq[lr±ÉÅ&[¶1ívH;d«ö–”e€1Èiå´rZËsfìç(PKÀ±< |ø(Ð)Ò)Ò)Òrœ“+0W`®À»î¸{àËF;·ïÞ¾{û®µk)z¹û<îó¸#4ˆ?``€Í#±­:²êȪ#Ö&®?:tvIJÀôscÑ¢!ECXm .÷cŸ^JßÖ}[÷mm­”EÍ5_ÔüË®®0B20ˆÃ#?½}Ù°øËÖõÔWpQî+÷•û¿œøåÄ/'|vøìðÙQʳ”g)Ïìk³¯Í¾Ö¹šs5çje3”ÍP6ÃOU~ªòSý³/C_†¾ MÊ{‘êEª©Ö.^»xíâNõ:ÕëTϳg;Ïvn¸]àvŽy9æå˜WƹŒs纫ꮪ»*È=È=ÈýDÙeO”µöšÀÖD7ŒnÝÐTÃTÃTCŸÖºYëf­›z”˜mW¶]Ùv铱ék¤¯‘¾ÛÓnO»=Ý\ssÍÍ5#ÏFž<›ØGè(­·FL˜1–­kLŽ19Æä°mKKʲb;}ïô½Ó÷æý1ïytý¾ë÷]¿×¿›zkÑ]®·™üù#òG”5—5—5·’[É­äQ>£|FùHY¤,R–Õ>TûPî(GÈ™qKâ[’~Œ4²ÕÈV#[Yž?ë(u”: £Øz^úÐn9ØÛÕ{Ó`hƒ¡ †Z»Ö¡×OÂG8\xp¡µR¶mضaÛ„” @JCL À >7tÔž3áø„ãŽ×>UûTíSzðùeå–ò[Êo)_|xñáŇgú".¥\J¹”Òÿ}Ýýu÷×%F-½yò:dÜ“qOÆ=Ñ'Ø_v´^^^–µ”ð8é#äD,1ƒ9ƒ9ÚMk6­ÙTðLÁ3Ï|YmÇþ¤¢vEíŠÚeÛp”Ö{2ÿÉü'ó[;†óëϯ?¿ÞVí$)ËÒÛÉÖ‚[ n-XóYÍg5Ÿe²‘Ø­î]À»€w6þHì¿…;ÈwÐÁØM­:z‘”ã–¤#éqšµrO½<õòÔKÆ®HÞó=/=/90r°Ï«+öæ™Ë3—g.ÖþìšÑ5£kF½Ûêû’Ï%ŸK>k‚ÖçË^ž€”†˜€AÄŠ2óñÌÇ3ëw4Zû+ý7Èq—ø"âEÄ‹ˆ¦yšæiš'“Måé§Cž¶&]XpaÁ…úÝœ¶:ÎÌw3ßÍ|7öqÇž"úúûúûúÛ¶mÄ^6!ïÚ±Z¯nðµÁ×_³,±ü­ò·ÊßrIJ"îD܉¸ÓnB» í&dJdúýܶú\ì¿…Ûÿ:îÅ/û©Õ”s7áã–¤#éô»$-_aˆ8D"r— ’=/=¯=¸8åÓ#FŒì“vH;¤²öîô§AضĖÿ¶ü·å¿ÖJ ݺ7toB^Ÿ€”ƒ˜€AÄ=EÑ6Õkf¯™½fÆgJ÷%¼txéðÒÞnÞnÞn‰}ñH_i&!5£ÿÆS`]âçòtËÓ-OGüÔë©×S/ý±‰WÛú£˜¿ì«õêôG‡YSdM‘5–¥ôß{|ïñ¶j!IS–~×BÕaU‡U–) 5ªß¨~£ú 9~ûoáö„ŽÈ>kÕØ—qm;nIʲbó_î¿Ü¹µ ÷6»W&Å;{ðìÁ³59ÖäXjƒž—ž×Ñç­Œ9¤ä‘ƒ}нò®¥à±ÁcƒÇÚ¶Mž1yÆäÖJ\Zhi¡¥…R"#4)00ƒˆ{ŠÒǯ_¿øO&­MQôuRcÿ¢ßšf?4û¡ÙëG¯½~ô­È[‘·"õ•ožg|žñyÆãÕW?^]DRþTùSåOeíuœR;¥vJ½{ÑîE»}nèeY‹²bÓãa}eS}•_ý÷Ú¯Ö¼ZójÍ¥—F\1gÿœýsöëw@Z{QJ€õ¶¡¯bŸ;BôÕ—o¥¾•úVê7“ßL~3Yÿ÷Þ ½A{ƒô5±ôOßÚëÄ~¬VüÐQZol‡~?ôû¡ß­•²¸ÖâZ‹kÙª…$MYß|?ð}ÜŸ‚þùê“ý¨búe5ý¢¿¾.š~?wÜmF§ÿ÷Ÿ{ÌŽÒÂíù‘=ת±/ãÚjÜ’ôeŦ¯oíuŽþtô§£?1‚M¸]6vÙØÅ²†õ ôÔ=/=¯cÍ[90rHÉ#ûdíéPº 6 Ø0À¶­hÝôuÓ×M·Vâ¯þúç¯&¤DFhR``amð:#ûŒì3²[þï9æå˜—cž>”ß×_ÿ}ýõõNîí¾·ûÞnýBe)~óç7~c­,}%Ô=ÓöLÛ3-þS»©^¤z‘*î)SìÕ’â_'~’Ÿä'ÅýÊmV¶YÙfeX£°FaâóúzÍ|Ùo´“~’œ”%ÆÝ6ô€|îæ¹›çnÖQŸ××£Ö¸ðÏ·¾ýóm|^ͱZol£|FùŒò±öú§¾:õÕ©¯lÕ»,ýòqÜ+pë¦Ô/ÙöÑv±¿õ)­…ÛÃ:"{®U£^Ƶí¸%éËŠMÿI™µÒõŸñ˜Á„³Çþ à“ŽO:>é˜2뇞—ž×Qæ­Œ90r°O«6®Ú¸ªµ:‰ý€h[•¨^P/¨¬þ\ûC³Í>$¤DFhR``÷=ˆ±ÿ— §+œ®púf¦›™n~ÆÔëþºûë¶¶M®À\¹õ‡-á@9ÖØšqOÆ=÷$>¯¯?0>—¢>TûPíÃ>N-ö 1)9~0ïÁ¼óâ^÷è—9¾ÈᑇGw¼ú.à]À»c´^K5Ò×H_#½µ ¶½Ã)±Ë ˆÄÖj©¢ZQ­¨¾ }ú24!m~Ö•YWf]±Õoðí¿…Ûÿ:"û¯U£^Ƶո%¹ÊŠí}‡÷Þw°ÖŠjŸª}ªö)./&œµ8¶Øñ§m8eÿèyéyeÞÊÈ‘#ûT­AµÕX«“®7\o¸Ú¶Äëe®—¹^ÆZ‰ÕóVÏ[=/#4ˆ``Ÿ²¬¹¬¹¬ùQà£ÀGŸ;œýÍô›é7“µW^–mY¶eÙ>DÖ§¬ÖJÉç’Ï%ŸK|Jé¹­ç¶žÛ¬½NÑ¢!EC"ÏFž<›cÖðUyn幕ç¦äxÒÒIK'-µö úÚo ?ÎÀÁƒ[+åßÌÿfþ7³1ZolúŠ}™ïf¾›ù®åkÖ]UwUÝU¶j ISÖ¼?æý1ïøü¦>!¥\î{¹ïå¾ÖJÉr6ËÙ,gãÿjößÂíÿ‘ýתQ/ãÚjÜ’\eYŠ}1¶¬¡YC³†¾yò:„qlBÈiå´rÚœÁ9ƒsÙ3ZôŸµ~èyéyeÞÊÈ‘#û¤¿Skõ ?g¶%êÏí°V¢º3B€ø &`ñ™¢Ä~¼mü_Y¿ç¯ðß…ÿ.ü·åk–{^îy¹çzj«÷²íëm_oûÚÚ»8sþÌù3ç­ý­¾voܹÓWZ²Õ$Íò¡Á)'Ö/˜›\lr±Éq¯ “ðãý:–VYudÕËR«õZ’²HY¤,Ö^mD=Fô°UÛHš²†nºuèÖØwÇÞô»²lðŽâqOv|^Æþ[¸ý¡#r”ZM —q¿lÜ’¼eYнR%ý!‡ŒcîyÆçŸgÔkµ”g)ÏRžñ€õûSõë#I#Õ =/=¯£Ì[90r`ä`Ÿ¬Í¦uú3$l[bĈ;w¬•X|xñáÅmðHmFhR``÷äD¬ë—½ò¡ßý~èwk¯<6xlðXÛN{ô;)s÷ÉÝ'wË \0pÁ@k%î<¼óðÎÃÖŽ6ªü©ò§Òøc«£ýèüÑù£sìuæRN|¤ß‘~GúYû[=^µÕqê1­kF׌®-ËŠ=ysÜÖkiöÑÙGgµvüŸûjöSVbÓ¯ðo“ý·pû?BGä(µjì˸ ·$oY–B–„, Yb­ôØwg2šµí7K¯Õ¦yšæiš'þa°‹êÿ>·çÜžs{¨Oz^zÞ¤éM90r`ä`Ÿ¬Ímu¶½º¢Ó_ÓZ‰.¥\J¹”b„ñAL À ➢Ä~ Õç¾òŸßüùÍŸß$öo™-5Ú`hƒ¡–%vîÝ5ÚZ‰AîAîAîÖŽvàw¿ø]bÔ|ÖNúIrb—÷zo±? [­¾š¯¾ÆRìíqŸÇ}÷±,˱Z¯¥ï¾øÞÚñoj¶©Ù¦f¶:þ¤,+±íoº¿éþ¦ ÿ6Ù ·ÿ#tDŽR«Æ¾Œ›qKò–eiýèõ£×¶Vzìñƒ=$“—mß]žy:äéðeGbÛ§† =/=oÂÏ6Œ90r°ON‘N‘N‘V?Ç æ æ ¶-Qÿ‘½­–pô$00ƒˆ{Š¢?¾æË¯í‡´Ò~ˆµWÖ¸—ï¨sñÎÅ;·,Ñg‡ÏŸÖþÊ×ß×ß×ßÚѮٴfÓšM‰1ˆ_7}ÝôuÓSZüS•ŸªüTÅÚßn)¿¥ü–òÉ;er¬Ök©qÕÆUWµvü¦¦¦¶:æ¤,+1èûÖ[]Ûn¸ðo“ý·pû?BGä(µjì˸ ·$oY–þéüOç:[+½Ù‡fš} NÊöy6òläYý•Ëß*«ü­øIé’¥K–þß½Å/"^D¼ˆHÉgKz^z^Ûžm90r`ä`Ÿræ Ìh­6ô'`Ù¶Ä7“ßL~cõê9ƒsç N9#4H``ŸHën¥¾•úVê/{e^½‘Nø= %z—è]¢·ý\Ôï½°v´údÀÚß>éø¤ã“Ž‰Qÿ±·•r`·öníÝÚ[ûÛ°FaÂ%ï÷±Z¯¥Âþ»ðßIsé!)˲¤?TóðÈÃ#œp|Âñ Ç[É­äVrܱtbÇ ößÂíÿ‘£Ôª±/ãÚöÞʤ,ËÒ ×®7\­•^lr±ÉÅ&Û‹2lç祯2øeǬ?¾ÒžÏuô¼ô¼öv¶aäÀÈ‘ƒ}*ã\ƹŒsR¶ðGY½çX?ž”3B€„ &`ð‰tÂ×eÉÝ'wŸÜ}ìç"`þˆüù­N·ôõ`’òñDº¸RdÔ8îUôô:IÞï…cµ^Kq?n˶¿¶NʲtQ»¢vE횸eâ–‰[\3ºftÍh«zÖ –ðo“ý·pû?BGä(µjì˸¶]O.)˲¤/7`­ô¼ ó6ÌÛï}zµæÕšWkôOªÊ¤*“ªLŠO;FµŸwDÏKÏ›Ø5\ô£¢U0r0ÆÈÁÞÄýT­+®tºÒɶ%^œrqÊÅ)ÖJôlçÙγ#4ˆ``‘xÓ¹l»²íʶË~¦÷úñ|Ùô;ñà÷Þwxß!¥ÀqÇíúÓ÷{áX­×’S¤S¤SdÒÔpR–%GÉQrT‘5EÖY“úÔCk///ÿåþËý—o-¸µàÖ‚±/Ù'äÛdÿ-ÜþÐ9J­ü2®ƒ×Ulú:©ÖJÏ|7óÝÌwùÞ9âx[ÿìân]cß}7ö=ÄÀô¼ô¼¶BÌÈ‘CJëûš‡7on­6ä´rZ9­mK ˆÄÖJlR¢I‰&%¡@|0à)ÛNQâ^ñåuÈë×!öSq?ò7ñÀõÔë©×S/ €c­{÷e%ÆýÀm{x4–cµ^KúxéðÒᥫ,ýQ“ñ¿3[ôVçâ‹w.>ëʬ+³®å„rB¹;çs.î¶šðo“ý·pû?BGä(µêXýEòò^ÆÕÏŸÖJw®æ\Í™j8¤S_úêÔWöÓóÒóÚ0#F)­¿¶lزaË¬ÕÆšMk6­ÙdÛšYýÏêVÿc­Ä!âqˆ˜ð¡H € €DâMQ*ªÕŠªµW¾}÷öÝÛvô»ÈªÃª«:ÌÚÑžÛsnϹ=‰QF\áX°þPß„”Xát…ÓNÛsÛp¬ÖkI¿kíø¯6¾ÚøjcG)K¿K¾hHÑ¢!ÖJÑïBîú}×ï»~¯[“÷"‘ý·pû?BGä(µêXýEòò^ÆÕÏŸÖJ׸Æ÷ÎQ¯~¼úñê½föšÙkföµÙ×f_kÏ0=/=ob fäÀÈ!¥õ}‹š/j¾¨¹µÚuüÕñWm[3úÊôÖJ\Øma·…Ý^"#4)00ƒH¼)Jö Û6lkí•O”=QöDYû©‡ÖÛ[oo½=)ªÛ\ssÍÍ5+¾ázÃõ†kBJl0´ÁÐC­ýíþ¦û›îoš¼íÁ±Z¯%÷î;ÝwZ;þ£?ýéèOŽRVÜ¿ãÖ/@ï뿯ÿ¾þ¶jí ÿ6Ù ·ÿ#tDŽR«ŽÕ_$ïñ'ïeÜ#ýŽô;ÒÏZé•çVž[y.ß;û¤¯Ü¹êȪ#«ŽTÏ[=oõ¼ñ£ô3IìO?韞—ž×±æ­Œ90r°Oú"Öj£ÙÍ~höƒmk&ök~â¡Ó±Ž‡Ę€Á'Ò ¹¹¹[{åm¯·½ÞöÚ~ê!xlðØà±ÖŽv@Î9äLŒi[ààÀÁƒ+Þöõ¶¯·}G¶Ùjd+k;­ö´ÚÓjÛöÈg}töÑ1ÿÿ­QýFõÕwôÖk©•ÜJn%[;þ½A{ƒö9JY-n´¸Ñ↵ן´tÒÒIKíí¬hÿ-ÜþÐ9J­:V‘¼ÇŸ¼—q÷LÛ3mÏ4k¥·YÙfe›•ö?’L^IYzh1Êg”Ï(׌®]3Æçõ»ûøõñëãwæü™ógÎÛCT@ÏKÏëXóVFŒ9ا—¡/C_†fÛ•mW¶]Ö•üÑù£óGg–ÁœÁœÁ¥”K)—R–ee Íš5ÔVUw”$00ƒH¼)ÊŽ‹;.î¸hí•;ôìгCOÛN„îí¾·ûÞnýaΖ›r_¹¯Ü·ö·ú/¬­mþTùSåO¥?ÏVG«Ouâ^{ØVð‡jª}°Ù:4ƒ¯ ¾6øZBŽyûƒí¶?°ö·µOÕ>Uû”mÛ†G/^½,ËÒ/y8zëµ4|ÜðqÃÇY;þµ‹×.^»ØVGžØeÅýp¼Ø+)&ü½Üмy+2áßGûoáö„ŽÈQjÕ±ú‹¤·$oY–b?}ÄRìÙóHÒ¨°>ŠÓ/·ü·å¿-ÿuJí”Ú)u|ŽJ_:á÷–¿·ü½åS¯§^O½ì- ç¥çu¬y+#FŒìYÜwå~î<ךн¡{C÷Æ}·qJ¡@‚ΫÀÀŒ!ñ¦(á¥ÃK‡—ÖkiùÊ™ïf¾›ù®m‡ÅÖîÚÔ/ÉéÇcíoõ_§æî“»Oî>ÖjcÝôuÓ×M·ÕÑÆ~t^bÀ§\œrqJÂ9jWÔ®¨]Ö~WÿcŽ»mèlµNíƒyæ=˜g­”Þã{ï=Þò˜«õZŠ{½¥9ûç쟳ßVÇŸØe嘗c^«Ÿ Þ&mõ)l)¿¥ü–ò ÿ>:z ·‡#tDŽR«ŽÕ_$å¸%y˲¤ß§e­ôŵ×Z\‹8)?#=¬ýó›?¿ùó›Rž¥G¡@B0ˆÄž¢t¿Þýz÷ë‰=Ü‘êEª©¬Mõ‹nñyý|ÖŽ¶hHÑ¢! ?ZýWÒúÚ0¶º|™ål–³YÎÆ]'üÈ'Ÿp|Âq[sÜmÃVwÙÆ}̱2æè­76}å]kG>ð»ß üÎVßñÄ.K¿ÿÞÚëëÌLø»xÒñIÇ'ÝÚ»µwko«³¢£·p{8BGdÿµêˆýERŽ[’«,K±ÏŸ–Ž59ÖäXàÄþŒôzî5³×Ì^3õÇ5ǧ\=Îé¹­ç¶žÛNæ?™ÿd~Ç èyéykÞÊÈ‘#{vÝýu÷×Y«ý'G·RßJ}+õ—½þswÎÝ9—+0W`®@Ë××@û)g„ AL À {ŠrxäᑇGÆ]ÊŠG+­xôe¯¯ßEѸj㪫Z{ýØ÷ÄýjqGYº¶³ÚÎj;+!õ3lÙ°eÖÙöò¥þ8Ak¯PþVù[åo%䘥,R)Kì;_~Ìñi+/­¼´òÒ—óé{§ï¾gí‚…~·÷«5¯Ö¼ZcŒÖ›þ¸òœÁ9ƒs[¾fµÕTk`«ïxb—û,éÐLÈëë÷^èA»m/9£…'ïÆösÑÿ{³‡^ÕþkÕû‹¤·$WYñ?ûéç[½ak[o&¿™üfòª#«Ž¬:R=oõ¼ÕóÆ´VøïÂþ[_÷qŸÇ}÷qÜ‹¿ô¼ô¼Ž5ouô3#F_ÆQÆÆºAaƒÂ…Y«™ÖÛ[oo½ýËj)ößZ"‡ˆŒÐàs0ˆ¤™¢t{Úíi·§ÖJqŠtŠtúßê_æ æ æ ñyÍçŸg|ž±ë÷]¿ïú½µWÖï²ýÜu‰âþö—ÅÀïÞ¼ øÜè7þ¯ßnB» í&Äý:±ë*þµ¡¯pû®—¸Sö¹¯wÛÐ/èQŠÛÐW§‹}1Â’~‰Öx­7¶†m¶mØÖZ­Úöò_â•5&ǘcrÄ}—•vH;¤úÜWþ§ó?ÿéŸu¸c{ø(ðQ`Êiáöp„ñé­ìí°=תãöIi5¹Ú›~δv)\ÿÙ#X[¹ázÃõ†ëÈV#[låšÑ5£kÆø÷5Ò×H_#½~÷›þs(cÄQô¼ô¼Ž5o5ƹˆ‘#Û–eoߎ{»ïí¾·;î£ÕCëÎ?:Çýj1%cJÆ”Œû±Ïú½Åƒ? ¶Um0Br0ˆ¤™0S”J«+­®´Z_£å‚ .,ÐWçÕ×];ôû¡ßý>½âôŠÓ+æsÉç’Ïêkê¿qþ7ó¿™ÿÍü¹ï%¬QX£°Fñ9Úüù#òGèÿ>QöDÙeõwú:äuÈë}Ŧùcæ™?¦Âé §+œ¶|…FõÕoT?áŸÂÖ‚[ n-Ÿc.¤Ò iú¿ô;ÒïH?ý> }2s½Ìõ2×Ë,³üÍò7ÖîÌXýÏêVÿc«–ÿ¶QwUÝUuWéÿ֥ߩ£O&M5L5L5†>nø¸¸?®?lP_e*>GëX­7¶)ƒ¦ š2ÈZ)6Øp`ƒ­¾ã‰WÖ•NW:]éwÍÇŽáå´rZ9í­È[‘·"õËñú'¨?²rîæ¹›çn®S#¦FLÜ âóãø\ž0R O®#tÄ‹\ö\«ŽÛ_û2nlú9ÓZ¹S»Oí>µ;L¸Ý‹v/Ú½È)µSj§ÔñùFè½s×è®Ñ]£-ïØ3RÍÐóÒó:Ö¼Õß;FŒl[–}~;â^XçíæíæíöWÖ¿²þ•õî»îx;üíð·Ãõlé?¨:¬ê°ªÃâ~ÿý`‚|``‘”ý7È™™~AjÀ 6 HÈ»ˆÏã Â}§ûN÷úú¯6ø2˜3˜3Ô›SoN½9‰wÌúÊL‰ÑrN½<õòÔËÄnyæm˜·á¹=çöœÛó¹ÇéX­W§‡ÐÖÊšùxæã™mõMOì²ô{³¯æõÇßéëŸÅ^ÝÙVwê;@ ·û#tÄ‹\vZ«Þ_¤„8ö9ÓÒÅ)§\œÂåÅ„ÛØec—]âóS¿qOÆ=÷$ö*†)¡~èyéyeÞj¤ï#FÆëâ¾s7á_|mð5FhÀÀ "é' —F\qiDb ô]J¹”r)µíõ¶×Û^Ûêhõ_.Ûö8«Lª2©Ê$ý> ÛNÛâïrüé¿<6xlìŽ%FËI¼¶¡ÿÂýxõãÕW·Ï#LŒÖ«³öØ·ÎÅ;ï\ܶßôÄ+KÌW—\]ruÉeÛš×ïÛ>¿þüúóëõÿeS³MÍ65‹ÿ+l°ýÁö´ðÄ>BǽÈeŸµê¸ýEJ€cŸ3c«¨VT+ªŒ]mÅZìÙγg;}ÅMý®£”y1—ž—ž×Qæ­Æûö1r`ä`ì±qìElë×?ýó×?õE”£¡H9€ €DrMôUé¥ä ̘+ðˆøúãøzœìq²ÇÉÄ»3#ö}º±y÷¹wvê¿EýÞãSÐ;»~¾¬n˚˚˚­=¼7O‡¸6[µœÁ9ƒsÙñëÔë<öCÕRZëuüÕñW-K/²¦Èš"kl[b¢—•ÁœÁœ!vdþe5_ðLÁ3ÏèûÄ‚ æ æ Í>4ûÐìƒm/C;b ·Ÿ#tÜ‹\ö\«ŽØ_<Î`Î`ÎP4¤hHÑkwGqg‰­è°?tª×©^§zúº¶Æ–èyéy7o5ê—‘#cu;.ãâç® [é’¥K–.¹¯ÿ¾þûú'voÈ @ÊAL 6{é'ùI~’¾î‹>¼Îš54k¨¾fª>QÔ/Ò…, Y²äÁ¼óÌKÊ¡ö£ÀGþøµü·å¿-ÿÕïcÐ/Šé“sý8}ý}ý}ýgdŸ‘}Föäzl`ìúÑWP+é[Ò·¤¯>yζ+Û®l»ô_‚׺Yëf­›?ý¹èÏEC÷†î Ýû’_rµÈ³‘g#ÿwY¡ÛÓnO»=­Ö Zƒj ÿ]øïÂëôÇ3ê«,wý¾ë÷]¿_RaI…%žt|ÒñIÇÄ>~ûo½73ÝÌtÓê„Y½ ^P/8bY±W,ÓÛF¹çåž—{®×¶^óú§ "zÛÖ/ Ä玮ØÿMõ¼ÕóVÏ›?UþTùS¹ftÍèšÑg‡ÏŸýêö«Û¯®~—†Q[¸=¡ã^¶ÏZuôþÂ,ÈØ?#‹ýìê*áôÕ(oß½}÷ö]j•ž—ž×þéWµÜR·‘Œ=6Ö×w×9à—€_~©}ªö©Ú§Š/>¼øp½-é!±¾z´Þ(÷•ûÊý¤iKŒÐ¤4ÀÀ {žÌ8Ö¯nýôöß6ìí[Ühq£Å Ë#é_¹åþ•m{TIYVR¶í¤üiáq‹èô‹žôzôŽN¿8nYÛ­··ÞÞz;õƒ”6ª¤çuÜ™9ÐJ“’QÇÆIß0B00p»6îÚ¸k£µµ‡m;‘Nʲ2ž—%ö½bÔ ×»€wïô;)-ÏŸ{ƒöí âü 3B€ÄFL †þX­*“ªLª2)ákéÙOYH™Nß;}ïô½ØíJ¸:_à¸ôs£å9Ó£—G/^úã ©%Àؘ$6``à`¶½ÞözÛkËñLÇ6ÛtlcÛ IYRš)ƒ¦ š2(v»ZÔ|QóEÍiWp\±Ï±í<¼óðÎômÀؘ$ ``àh2˜3˜3x¶ólçÙ.öx&Û®l»²ízžñyÆç²,¤wÎÝ9wçÜÊK+/­¼”38gpÎ`½E›\lr±É‘g#ÏFž¥–àˆôó¡~nŒ}¶ôòðòðòàÎÀؘ$%``àä´rZ9­å¨fâ–‰[&n±í¯˜“²,›µU¥ô;ÒïH?Úפ¥“–NZjÙÂå(9JŽ¢mÆÆŒÐ )Öýz÷ëݯÇÕäm˜·aÞ†‰1•Mʲ`T…´BZ!­I‰&%š”rrr¿¿îþºûëhEp\Ï\ž¹ÔùI~’ŸDýÆÆŒÐ éö(ðQà£@˱Íè"£‹Œ.â¸eÁظ¤#ÑÏ–÷î<îó¸Ïã>´vÀؘ$=``àðÖM_7}ÝôØc›Ø+H9nY`Ïô ˆ¹sæúÏc6 Ø0`ÃΊŒÐ ¹ƒè=¾÷øÞãcp~ýó×?ýÓÑËû4lÙ°eÖÅ>öñëã×Çš`„É‹˜Ä«5¯Ö¼Z£m¼<¼<¼—L[ÊY{8å¬:œrÖN9+ ³Æ°ñVN®5†SÎê¬+̊¬%Ì*¬"œ\«§œõƒY9˜5ƒY-˜u‚Y'8¹Ö f…`Ö¶ûUÃú„õ ëcØ;€‰ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚øl–mX¶aÙඃÛn«ÿûVÔ­¨[QÔ ’0ðÙ2YMš&4 5ƒäE |6`Ø'`à³Ã>Ÿö‰ølÀ°OÀÀg#†}">0ì0ðÙ€aŸ€€ÏF ûD |6`Ø'`à³Ã>Ÿö‰ølÀ°OÀÀg#†}"þŸöî7¶®ò>àxtë2$pþ 7ŽFÝPìÄIFM–ëk¡F8Ùi)%AqÅP©*ƒ®ZËÂT¦.'iE¼` •âµaù㉺xXK¨‡[Ú 5Z ó¦Kã4¢ÿHñÝ‹§/nu¸Þ½$Ïý|Žtd…{íçüÎë¯Î½%€‰'J&O0”L&ž`(™L< ÀP2˜x€ d0ñ$@É`âI€’ ÀÄ“ %€‰'J&O0ä²ÝÙîlwGGG÷Þî½Ý{k·Õn«ÝVyÁÂï ¿3üþð·Ìœß€²3:ctÆèŒÞlo¶7›ÚšÚšÚZyÉ…¿ÖÖã¾pá`’.•KåRƒÛ·nÏTd*2•±ÖÖÖìÖQ*€$ËåÆvìØYwªîTÝ©÷e—\V½¸êé-󛞬_ºëÅt碆kV?Ôt䨓í÷79þ³;._z0üþ=¼&¼>¼÷½ýݰæ°þp-n)Å€H”‘š‘š‘šÌPf(3T|p]ÝUÿؼgû¦¯z­ñ…Ñï~jóŠ—s¹®®¶¶‹u¿3üþð·Jx2x(3” ×åþ21€)o¼a¼a¼aGߎ¾}Å$ÕùÃsÏÌÞ³óª}»sGºÖ´-¹¸¹·¨ó‘®5mKÂÂzŠYy¸Æp½î;Q0SX¶3Û™íléiéiéù>̹¿úÁª—N¶¯;¹|Cn×mmM“} ÷wÝÖÖÖÖ9ñµ„ë ×nO`J~uøÕáW‹yjöX}{ºyOŒroç°æb®.ÌÁ~ €˜bŽî>ºûèè#ë—-XxþWWÜ÷JëÁ©•~óÏaýáZ&¾Þ0{€)ãà´ƒÓN›8…O¯=¹ôñ©} ÃuM|ía>öI9€˜&~ê·êÎÙu3ϼq͆M+“—~óÏáÃõz˜(€X›ø»~—²~Ù‚…ç%ÞbÎaVцن9Çá†ç?û;11¸x0±0°s`çÀÎB ð£÷mjÝ"îs³*4É0ç8ÜñtCÜ­,š<1€É–Ê¥r©ºSu§êNEƒß±úötóY·Ôs˜[tžaÎaæñÙbðÅ"0É·nÜÍ{Kú«¬z)÷\×ímÍ‚nÉççºnok3ŒÎ6Ì<žûA ¾0“,S‘©ÈTD“ÞÉöu'—or/äfø.ß\‘©ÈTÄoˆÁ¥€˜4£3FgŒÎˆ¼ùÃsÏÌÞ“{ «±í:÷‚Ît5¶]æs˜ÿTÙ-bp1`&Mo¶7Û›F»ý›WíkÜ-ß^¬s˜gtÎaþSqçˆÁ…ÀL†³¹³¹³©­©­©­ÑPwî›{Ò­ñ ¨ÿÜÿñ{·Þ;´è–¿nÞ^=X5~ÕŽYÿ9óømþàÈ•ïÿÔùÜ´ ó…·ÚÇ–þA<p˜gtÎaþá^LÝ­$瀘Ùîlw¶;šåVwÕ?6ïÙ8DÓ3ÕŸþöʛᄒẚƒÅgÅû~è÷ã™Ãl£k÷"ûJ €˜ýýýÑ×7}Õk/Ä!—~bÓ Ï_û£°ª™ç*W>üçÍ7½p]êÀW÷5ýðåiûÇôÕ®úIã`x8ÿ*ž8ñ'Õ ß‹[³Î<Ü‹äí±òŒÁ0“ {o÷Þî½ÑüöÆœ ÷®øè$‡ÒÚU?i ë™õã™ó*ŸøãÃ+¿õß«ïlzjfEåg*ÛæÝ<ç—³ÿpìŠ{¯^¹%>8Ì6:óp/’½ßÊ' ÀL‚ÚmµÛj·E“Û¯o¾1³urCé†6|¡æÍ°ž¿Ì,ýä¿?óÞèÅ'‡ÙFWîEùì½dÇ`€Kêü‰ó'Οˆ¶%—U/®z:¡ô£c©ýW«:6»ýææ¯ÿÞC__3wñ·Â{7[´«ö¦¸}t˜stþá¾”ÛnL^ €¸¤ÆÒcé±t4ªm™ßôdýÒ8$ÒðÎaUÿ~ÿº«–ý´ø÷†×‡÷~|Yýæ½·æ¸/e½3ƒ`.©ÓN8} Òv½˜î\Ô‡Dzë—®»25Võµ{ÒÛÝ^ü{ÿþW|¦á¾ðÞ¦÷/UŸŒÛA‡9Gçî‹ýLÝ,pI oÞ<¼9ϬYýPÓ‘8$ÒGê—]±ðlXÕ‡z«¾;÷ž3ÕŸþöÊ›'~×éÊ»ê[¾_Ý0·}öŠðÞk>1§uÖî¸à0çèüÃ}±?£¦V ž´\ yŽ=Ù~s,ðÙŸÞ;´òôõŸûà£s¿“¿Â}Üú½›¾8rî®WoYùóÞMÿÓZÿƒ]ëÇoÎ~õ·þðÛùé7¸òg}iæãáçøà0gûíÒ8Ôw¨ïPŸ @Ù9þ³;._z0>¡4¬ªîøUÿ6çhñWñ…«–m¾¾>ü\óÓ+̹:üŸë s¶ß.·÷¿½ÿíý0e'>OÿÖÓÀï»·gå3=Ï/þ»úÿ¸1—ºãª/Îÿä+‡×ßvóò¯¨qxÞ=UuágO—§2zx`ºÃáp8‡Ãáp8‡Ãáp8‡£§f=5ë©YÑTŸï.ô4pø9|øóë¯Üý•[þé—Ÿ»ïë­Oä¿f×gÓKýæ©ßõ=7l¼öé¸àBßlg:þðç¾kZ×´®iŧßðú2ú`ÊÓé§œ> f»^Lw.jˆg.þÜþ“…;ªÏ…+úJºåö_·†9Gçogæ áöÑ}î{t_ñÑ7¼þÒGß|0—ÔXz,=–ŽÆ³-󛞬_‡Dú+[3‹Ž~lùµ¯_ÝÚýÅMõ»Šy×>þÉc;?³¢ò3•¿y8üKÜp˜³ü.;sÊFß|0—ÔùçOœ? iK.«^\õt鉻Ö}vù°ªY?ž9¯òÙ¿vçŒek ½þsßÊÖ?»­£¾vÞƒá]ŸØtÃó×þ(nþÎaÎpŒè›O`Ôn«ÝV»-šÖ~}xó™­“J/ﺢí]²ß_ýjyêú'^x{oóðó n½yãcñ±ô ß42ïW ¯©yß•fÿ×éÊ»ê[¾·ôf½®p/Êgï%/ú怘Ý{»÷vïf¶7æl¸wÅGãKÃzòãîÄnXõ²+—çÆ?}xùÉx>ûf]y¸ÉÞoÉŽ¾ù`&AGGG4¹õM_õZã ñ‰¦aU_ýÀ-‡?üvæ@ÝŒÔG®½âÊß›½¿ºanûì+ÞYpë5Õ῞ûÞÆ/¦WÇ3ý†s˜mtæá^$o•OôÍ'0 ²ÝÙîlw4¿­îªlÞ³ñ ¨…âîo“nWÎa¶Ñ™‡{‘Œ}UžÑ7Ÿ Àd8›;›;›ÚšÚšz—o¥=÷Í=éÖ8ÇÔ©uóŒÎ9Ì?Ü‹©»•Dß|0“¦7Û›íÍFãÜþÍ«ö5în/Ö9Ì3:ç0ÿ©¸sDßB`&ÍèŒÑ£3¢¡nþðÜ3³÷äèjl»N¾½ ó]m×…yFçæ?Uv‹è[ €I–©ÈTd*¢éîdûº“Ë7ˆ¸r3ŒÎ6Ì<þ{Cô-• À$Ü>¸}p{4ã-é¯~°ê¥Üs]··5K¹%ŸŸëº½­9Ì0:Û0óxîÑ÷BÀL¶T.•KÕª;Uw*öŽÕ·§›÷º¥žÃÜ¢ó s3Ï}/€XØ9°s`g¡Ô÷‹Ñû6µn‘u‹9‡Yšd˜sî¸èû» oæÞ̽™Ê e†¢Ùï‘õË,º»Pì €\ß ®±Ð>aVöLy€˜2N;8íà´Ê O¯=¹ôñä¥ßp]_{˜}RÎ`¦˜‰ŸY¿lÁÂó¿ºâ¾WZNÝèÖ®eâëõÔ/ À”4ñwç;VßžnÞ3µÒoXs1Wç»~É'0…e;³ÙΖž–ž–ž‰Cé’þê«^:Ù¾îäò ¹ý]·µ5Å(úîﺭ­)¬-¬sâk ×®Ý Ÿ À”7Þ0Þ0Þ°£oGߎ¾bžš?<÷Ìì=û7¯Ú׸;w¤kMÛ’Iˆ¾GºÖ´- kë)fåáÃõºïD À$ÊHÍHÍHMf(3”ª,Úê®úÇæ=Û7}Õk/Œ~÷S›W¼|qsoøá÷‡¿UüÚµ„ër™˜ @åÆrc;vì¬;UwªîTå{²ä²êÅUOo™ßôdýÒ]/¦;5X³ú¡¦#Çžl¿¿ùÈñŸÝqùÒƒáçðïá5áõá½ïíï†5‡õ‡kqK)† @Ò¥r©\jpûàöÁ홊LE¦¢2–ÂÚÂ:ÚÝ:J%PvFgŒÎÑ›íÍöfS[S[S[/}î 7¬!¬Ç}á ÀËvg»³ÝýýýÝ{»÷vï­ÝV»­vÛ…‡Þð{Âï ¿?ü-3çwA€’ECïÀôéÓM†É%@É`âI€’ ÀÄ“ %€‰'J&O0”L&ž`(™L< ÀP2˜x€ d0ñ$@É`âI€’ ÀÄ“ %€‰'J&O0”L&ž`(™L< ÀP2˜x€ d0ñ$@É`âI€’ ÀÄ“ %€‰'J&O0”L&ž`(™L< ÀP2˜x€ dÏìyfÏ3{¶tléØÒ~ykä­‘·L†É%$„ 0@BÀ !$„ 0@BÀ !$„ 0@BÀ !$„ 0@BÀ !$„ 0@BÀ !$„ 0@BÀ !$„ 0@BÀ !$„ 0@BÀ !$„ 0@BÀ !$„ 0@BÀ !$Äÿy§ i*y•%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/refCount.png000066400000000000000000001306421431412030200251640ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTçúÿ}M1ÅDQ@ªA»¢»Ø Ø[쉱÷®{×ÄÞE™.Š¢Fì±Å^cì‚ ž?&g=|ds"›áýšµî•eÂìÙ³ï}çâú839†ƒSÆ@ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A áÒ»Kï.½‹tˆtˆt8x8ðpà›foš½iÆ™2‹þÔ¿úwSÿžrf Ž¨c€5–5<`À€^Ÿy}æõ™ã'ŽŸ8~bFìŒØ±¾W}¯ú^Í—N<¼vìÚ±kÇ^½xõâÕ‹ ïÞ%Pn¦½Kx—ðNÿ¾èßý{”^ßJý;®ßõï¾¾pâÔ±Ô±u,°Æ²Æ@vC dy±Q±Q±Qûfì›±oFà '4œ/“ 08àt—Ó]Nwásôï‚þ½È¬o¥¾&è냾Vð¹¨c©cêX`eÒKÒoÙ¡Ï}~èsÎ 20%ÝÚvkÛ­mÃO ?5üT>3¶Ög­ÏZŸ×®¯]_»ò©ÁØôy®ÏysþVê놾†ð©¨c©cêX`eÒ‚æ‰È2nϼ=óöÌ ÞA½ƒz§®˜³Î]ðNþ„ί]Jµž5Ô·¤ãŠM \u/u0²iÎJWT±Ùâ*ý• ÍÊT)·ïR“éžoÖÄÖ+í:j\c¯Å×/´cý:-¥d˜M˜M˜M\³¸fq<• ¡Ïg}n§åÛÑxa 7ë×ãr¸¾&vüQ×Qû.ÍoãùF™°ø~•rª¸äZ•þ#Wº²©ÁÔñî¥f ôÊqEç×íKµ¶Î]¬Jþ„Ô½®¾žèk Ÿ&ÀœëØüs ?-VÅvuÍ2í˵—½rzÚÏ{êx×âý» =|É5·*£Âßwi7ôÊü6Ž“ƒ£ÇµÿOËNÁƒ¬îyv«áF dDëÔ«Vƒ¢ëÎìï\Ê«ÕÒé•Ê.è\dIdy!hÏšÇzÝ­½à8¢K슯+t,67 œè8¢‰C¥ Íû\¨f±?ó— ŽÀkºW`ÿÆúµÞ—Ó{tz¿NïÝé}<½§§÷÷ô^ŸÞ÷Ó{€¬±À§A óD ˜µØé±Óc§O*<©ð¤Â)/Ôlí-·1ϳÆd§áçWæô~œ\·nzï—ô²¯3îÐ7Í-«8È£¹½ÅÇ–’á„HˆKˆKˆãSFVûM.!.!NŸÃ;ójïgoq蛥7ªx¿ä¨]q ÑÑuë¦×x~å¦>Þçy½í4ÜÖÞêZ)?6}Ñ×>d@fÕ±ùc‹V¶ºæP¼Ó—CoWª7eò¦>Õ«¯Z^£OèŠùGíÜv©±ôF©“Ê´÷£ŽulJTߥŒíŒî÷×=tÜ2öö¹/<7wáB¥Jé5ö;¼'¨âê&v£ûÚ)…ýНÌÿu,€ìÔ+ðhno¡÷Ùôž[úöñôÞ Þ'Ô{†¬±@ú"†y"ÌÔ±BÇ +”ò‚l²³wŸòo ër¨æšô-S>ïÚÊÕkY›goS2ÃÛqÀ§©cí?´iÙ·¶WÃ…Ž¦oÜ›òÑ#`\Ó5½l {×kPˆ:Ô±ngü%«õÁ·6_uΙ¾AoÊÇáûKnÏëßì[:u,cõ *x”˜¬÷Ð2«ƒ§÷õ^"k,vÀ0OÀ€‰Ÿ?!~Âô…ÓN_˜’ÂkO½e®‡b÷öh^»gf•Œ¦Æ».Ö>8Ø3¯ý¸”¼—ÈÊ‘•#+3`žôù™’™<8¸C´ý¸»ûvÖžY¡¯©1vodÓÚ=×ùLˆr=”’÷¢¯EúºÄ¤oëx8dî„(ïõKG6ͬÐ×ÔXÕ^î};KWôoÕ!š:Ù§ŽõÜ5ÊöÊ5Õ!n%2+ô55þ8ëÔ3;­+ϨS6Š:@Öìxæµ§÷ÊÌ­ƒ§÷õ#k,:À0OÀ€YxYýeõ—Õýýý“/³fõõµq\ö®WÏ]u¼Í­d45Þ èØÎwnS»²m¦%ÿî~9ýËé_N'Ä'Ä'Ä3+Éâââõ9™ü¼mjççn3ífÀî9¾sÍ-ô55¾ëå^Ç{VßAO—%ÿîôuI_£˜€´Ô±åº¶?0è‰Oûå£ÜÍ-ô55V™<{ùî9Å»WzêçN ãÕ±Î+ë„«1¤­dëú£¹…¾¦Æ±ßŸýÂs”«õìÊRÇ0ï^AÙÇ6ÓôžXVéàéýF½÷È ¤0Ì0Éz=ôzèeµÖj­ÕZSE•û ë¾E¯[v˜ì›/«”Œ¦Æ}ƒšt÷¼™|9\.—ãÏÆŸ?Ë A&ü6w6þlüY}&?W÷ šÿ•çͬúš¯[î<ã›Ïý…£]GSïT_£ôõŠHy[(®ÌyG»*ÅfÕÞy&«„¾¦F—zC—ÍÿŠ:ƨc;Ý[Ò¯ü–¬úš7긖.éìôÌ2’:€9õ št÷¼™Õ;xzRïI²ÆÉ#†y"2ͽÁ÷ßœ|É8å¢Ï·ã_Y÷›¬^8&:wiP³×㹊J¦Þ{ptptptü€øñ˜-øD¿Î ˆ?@Ÿ{¦f¦×c×°¢ÒCçá5Ûdõè7ñÿâØ›ºßL¹Øon…ÿqý–¾v1[€:6ùÿ_” hÛºßÜêß®Œ?ö&«G¿‰G¯Ü º/Ò´¼…ku,²Vk7Î].tcx±È-nbV~ÿÏøÙù¸J¹l²ªtmêX™×+(‘«¨¤÷»ŒÔÁÓ{’z’50…æ‰È={<öø[ðA“¹žïT2&ßWëõY>ƒzæ·Ÿ`ê< x1àÅ€ á á áÌd ð„ð„p}¾™|fÏÀ§í'¼¯õG>FŠ~“ŽûÌò|Ÿü¥¯cL ŽMÊ¥ãÐ;óƒŒú&}&¬hõGiWÿvNSÇÂüëXßa]·½:vïÙÝžË ý&;Û.‰)/SÇø´½Ïüöô—±ûxz¯’5HŠæ‰ø¤b÷ÇîÝ_¾Hù"勘*•NØ´æuÄØ%ãÿã‚{Ô­=»™ïÇSçdf“™Mf6aþ ãèsÌÔ œÝlðjǘ„¸èȺµý&OجyïuÄÔ9Ñ×1}Mcþu¬Îcð8mÍ{cG¿ÿgôYµ,:²Ü¬u¯¦Ž…yÖ±þÚÈ\vþã~ºSÉÓØÑoâ1ÄgËHg[êXß+ðâ£÷µ²OOï[²Æ‰Ã<ŸÊï ¿'üÞ9¤sHçSERL\›:Õ®g£è7É8÷UþNÁ¦ÎÏy¼Gf*!}éóÊÔ¬›ûjèN§àìú&câ6DU»nêüèkš¾¾1— ;×±ž]'îÙ•¢ß$£C¾Ž×†î¤Ž…ùÔ±M¾]Ån_ö }“Ž}fí˜à|‡:@Æô jôw ÎÎ<½‡É è€až€OdåÑ•GW5UE5lñ[ÕíÙ¹pL<Žu¯zÚ¡‡©suÃá†Ã fÒNŸK¦fÚX÷ž'zdçè7ñÕp¥gÕí¦Î•¾¾1£ {Ö±î:·Ò3;G¿‰Ç2ëZíy‚:™[ÇÖ™Ù·ÉÛÙ9úM<ö|úëP§vÔ±Ò¯WPõ´Czwú¨÷3Yc`˜'` Ã]y~åù•禊¡MÍÜp/CɘxŒïõ´Îûï• ´ù—ö™Ó,§YN³>´ýÐöC[fRGŸ?ú\J:ǾoT«˜Í‰øðcÇë¼'úMuº{S«™¾Ö1» ûÔ±NÏûÕš:Ð÷ÿ<8aååcÇ‹/¯¼¦V1êX|ú:¶¢SÝÎÅúÿ|÷|T¥Ïˆ~¶s[—“©c¤­WP.Ðæ„Þ³¢w—xÔ{›¬±È΀ÓËÞ­{·îݪŸÃI'mœ´ñIý'õŸÔç̤0âƒâƒâƒ\–¹,sY–ôƒjy¬²¯A™hj|>(¨C­J¦ÊÇ%S—L]2•9†ÔÑç©Ùõ|âZ«q¯©qP­öwìk$=oúZ§¯{Ì10v[êu£µíï÷š«­른RÇâÓ×±£sŸí‘‡¸×ÔXý^—³¶[¨c¤¶WÔ¡V%úu¦F½ÏÉ‹ì‰8í>4ûÐìC3S+0apêhSئ°Ma¦–­Ø½=š×îI˜üxb[«-^÷MÃk¬}°–™†”Ó猩ubÛÚ¾^÷‰x“c÷FÔîiò®a›Â6…1ÓÀØu¬÷ú¥‹#z“=f·ZÛ—:Ÿ¦Ž ·å¹3ïÿœuê™ÇêXß+hµÅë>=ºäG½ÏÉ‹ì‰8í_û›<Âà”#2Ä«'¯ž¼zbj‘Š>Ûò½×JÔ#úVö/{í_Ú¶!¶!¶Ì7¤œ>g’Î¥}»Ž-{p7åcôÙÕo½Æ˜Zåô5ùÆ«c=<~~·ú-ánÊG»Öﻎ¥ŽEÆÕ±~Íz+C¸›ò1xåæžN¨c¤¬WPÙ¿ì5úr)õž'k,²à´Ó]=ÜÍ—b„ÁÉ#2Ä/¹ÉýKî¤KR·amKñw?z|Q0(¬V;S ýõÈë‘×#™uHž>OLÍ¢•mµÚë~ìØmØ÷ß—ú—kôõ5YFªcKXûýúý÷º};h%옲:WÇŽnsÂÒ£±îÇŽ•/¶üÙº9u,€ÿÕ+ «Õ޾ÜÇŽzÿ“5Ùpú" N/À@:‹óˆóˆó0µ ÝÒéq‰‚©׺Õór’ô¬öÕ{TïQÌ=$OŸ'IçÏZ·ñ±®SˆrS7Þ²ïZ‰¦V<}=dî€1êØª­ç9ï»F ›ºÑq~ð“ñ±Ô±Hß:¶Õþé=Ë.#ÊMÝøCu[yêX¦{õ¼\§Ð‹Kݨ÷?Yc‘}gÂà´ ÒÙö Û+l¯tÑ8ߣ³}JÀ´ŒoõxX[5µ¬ÿ}úïÓŸf")}n˜š9ožQ[%ÊMË8p~ûööE’ž[}=d@V¯cKkTµ}{BÜ´ŒÞ/—Í9<ƒ:é[ÇþpÚϳ QnZÆêó»Ô´K °Æþ[¯ ÇÃÚ*½¸´Œz/”5Ùð§Aü±€ôó6ámÂ[ooï¤ Í3|‡Rü¥} mà×ÛyYÒ3¼üåò—Ë_2 ‘”>7’ΙÐ#®:/#¾MûxãÌC“ža}=Ô×Fæ!dÝ:¶JÿÙÍwW$ÄMûX¾p×b#®RÇ"íulÓ9c7–™C|›öqˆ¸ß5„:`ý¿½¿ÞÎËè¿¥}Ô{¡¬±È€?=Âà” ÒÍ­¾·úÞê›tYñ-U2´Ø.ʾô/é:ÇÏ&éy¶òµòµòM8™p2á$³ÿ8™p2á¤>7’ΙÇK„ž~6Ä·é5ú–ò¸]lWÒó¬¯LFÈŠulQ[Ç· nÓkôÚ½h„Г:i¯cGDDMvo@|›^£ý„Ê5 Ï ŽXcÿÛ+è:Çφþ[zz_”5ÆFœ¹ƒM!ÒMX‰°a%’.%ûv5ãùÔœK±ksþV?ÚËÛI>ïÌ¿|l<Ï>ÎúuÒ³}'Ï^T ÚX+ÈLÃÔ<ÁyëæónPbJ±ÿSøš¼ßªÉÚJ_'=Ûë|Öù¬óa6B§Ï‡¤ód¿Õü镾6‹è4OtÞºù>j¿ÊÞñc;á²ö[¯hó €_TSNÖ ú—6e§2Ne˜ëØjGÃn*'37.­4dªåæÒ…¾-u¯\»”ÿ_²DûZš5«žoUÞè¼æ»ôúáóùÓ©c‘º:¶s•%ïÊGe™'ì ]¦Ù®Hú.Ìí8G÷>QÉÙ:`Õ{MæÐõºR½}‘ênùÒÀ|`½/Ê c#6O„ÁÀ@:x¹ôåÒ—K“.^«mÝjÎÑjãËÿËíþÌ?~2²›Ÿß´¤GÞhP£A1'¡ÓçCÒyòd¤xÍoš9„¦³ ì¨ýŸ_ªÙß,´aq—Ñ *6=YríájŸéWOëÚ?²Â.kïb |›ø¿úLþÂïOó‰½V»v*º5é9××Iæ$d•:¶ˆŸÃm×N™”úÜX9æX³¢œoUŽùç°–XÎ_§äïõs¶©ä´°oñ)ù³ùOÁbú±yîr_d®èþ÷›øÿþ”þç‰ÊÔ™Ycèì‘·$=óú:ÉÌ€¬RÇ–·ëZgdÁÌ J+ :=ûÿüUE§}¦Mn¡ÿÛ¤á®þ'e–5ï¹YÿçB=ír;œ5»Aû¬Z}ØbdÁ‰–§¨c‘ò:¶ÀÜBÎÕÆýtát%OsŽ~ûWÚ[¶âËE¶ZìÉZpÓco–YB d×^Aþãáz¯Éº^zÜ«[…¶ÅªòÊ2ý:£Þ#e…Qg-Ù' &ÒÁÊ‹+/®¼˜tQ8µ¿õÉj¡æPf­¾X7ÜÕ+åËYV)ðhnÿ/ÇÿÐï¡ßC?ffv¦Ï¤scà€ö5ìÍ". ï»`A¥‰mç…Ù}=.¤$ÐMüSµ•ª ­âÌ'>µý‰j¡Iϼ¾N23 «Ô±že&<_"sƒRûV­ê…,Ó§`¤ÍýÒ)¹¥s•U³Ÿì~óß‹ÿÿ«Í-.u²Qéö5¨c‘ò:¶ú¸.v¶ÓÍ9úc{r€GH©/*ö(ôÝ?•êüÞJÎÍ*pïWÛG:癩²k¯À£¹½uÃ|ã~¢Œ¤[³kåžÙ–Ëê°Þ#e…Qg]ƃ €tlll÷/·Ž‰êÖÉo©9”Yg÷µmäýÓœ¯|÷9¾M:fÝx󅆃ÜG'=þ㫯>¾š™™és éÜØ|aÚA÷Ñæ”.õ£VRw3çã¾k{-ÔÊ*°ÈÝüËÌç:à'Q’•ß¿ÜJT_'™™UêØj¶¡Ñ’UæF¤%ãë/hó¼`°µVò M'‡†USåVÝ7¿}x· ÏÌ,vöéï<í u,R^Ç^œ·¸Üs€+oQÕºà?׫ ô½TÔeìÞ³{<—e•xäác­ÝWSÇÙµWÐpûhóéw5jm_Úzè?7ÿïVyc¹BY7úýçQnQÝ:Ñ+€qƒñÂ`` ¸žp=ázâ_nàæÔ«}5æ_„eÝ8&¦Måj’ÿow~»óÛffv¦Ï¹¹P̆_«]0‡ tWÔÏ£v9_3ÏèôûÐqƒÊÜ׳X·R–~ÖðPM·YëÐ?;œã©QÇÙµWЦrµ æÙ© P«JÅbú%5>”ªoeS¼QÁåùÏ:;ZÕ-t-°{±Ä啹êlv MÈœ·®™öôô)k,ŒŠØxŒ²Ä^”ÿª…–UbÔ¬ßóîìRckÒãŸö۴ߦýÆÌÌÎô9tnÜóÞß»ÆVó¹arÒ;§ä¿l!×9iûÏÀƒOt,jfnO.¼Èò……öok ÀÜëX‹ñWY¾0ÿ ·rûéO·Åxœÿ|Ýx›¡Åæu*åØÀ¾í¶Äï¥ÂËžo~`žpÕ‘ó–ìïM‹”×±?ìÔªºÕ5·Ð4¸ó¦8§sù›x—ïw‹àü!ùÆw?ºn—ãšÄAoV €õ±À†B-,ü¨cì×+èìRc«9tº^ º\k\âc+´>ÿ‹™) êO(S¨xÌ­ÈŽw}ï˜gOï—²Æ";üVEl$Y7 &2d‰÷ù¦ÄïŪgôø|vP¯Z>I@Ѐ AÌÌìLŸIçÆóÙJ½Z>æÿ+k.ª³fT‹nÊùÿsuEH‡ü=oïÝ;°Fqs;ZŸoÜk«Ê/uëØ"û+´u¯aþ°å•R-Ê®0`¿tú¶w‰—Íùø«m ©Ô£ŽEÊëØÑEoð(`>AéˆwQ/Ý;Z´*ØS?ÂÆÅF.µ Nñf­¸ÌÏq…+SÇÙ¯WÔ«–Y<+÷³ÖÓªõû—[%vmkç·¹fC/÷@ý¿Ùq׿…Ǫ>uÝzØÝµÈ™/$ßÿéï™çÕÀz¿”5Ùá·*`£ÊZapóùJFÒÌ©Ü6ÛÀ=ÆFöh[;„ù†”‹ŒlW;$kE¿úkª2ËJùïßÿµ¬l1Sþ"ì`ås»öW›9ÕŠ¶ÍÁ|€¬¨ø±*޵¢³nün*øxä©°ƒæyüÞ¿.]ÙŽù†”ûqÑ©x{fq«ä¥çëz>¨ø¸Þöbÿ\sï¶Â¿›ÕÂqy/ä©ô/ánÖ €+†Õ³.6Ÿùd¿^A¶µCÌ¡ÓÞ7 ÔùävÝú«ÂojÚົ]â^ÒŸ:Ð1`T¥éÿ›YOï—2ßdO{·îݺw+0åµm\¡U‰¥À=¾ èñWmù†”{pxNmÍüCßË·Yú¼ëPÅ¿_ÉŸå…Îï‹ÄŸpYû­Wô¿­æxüm7èPb)ó ²"ïŸtÈ*Oüõ™¸¢MÔUâçØ;Ðå×b,(îV) f·ÄïÈÝíÇß—ß2»øÕ²ù‡ç0ßr?5;]×ÓÞ"ÒùÏ.ýßãºÃ#Ë£ZD7qÿç/&fõØ-¡qn«=Ì7 ûõ züU[3ç®ÝÇö÷Ú×sT²¾¹½½_Ê|=½ÝòvËÛ-À@–ÇÀ\ ódÎW¿ <Ò¹vÂäÙ}gWÈg¹§à(‹Öú1—È[|A-s¾RÑñí›àÃkkýï÷Ô|l®€¬+«\ljÔß…uýªuN&~_\Œ¬Î®îõxSE§mù^[¬Êס€‡å ‹â},¶or>¨¡©ŸJú^¸€ùõ Ìå à´ŒÛ 6ªç¯¿#—„âÍ ÿÌÀ`>²ÑÀú=ÐÙØŒ±%ý2ó àÌ}p›€6m˜™ÙyÓç@Ò¹ažÏ¾R}[Lu7Ï]Nã‹ÌÕ³À™Ÿå{øSáOìŸ>“¿ðûó¿ßͬqÛjSÏff²±±±™›Užœ’XWÐËÚµD‚¹ÅÀ¦žLËfªŽ5‡g·þsfH¹tnܯyÚ-ÒüŸÌÌdc3z¯À\žœ^Ï.´>ÿ‹™æÖå3õ `f&›ñ~« Íš+4gÆxÛ¾‘ûFîüYðgÁŸ¥¼âÕÿûlô `ÀØy/¼(ÿU 8£Ç{Þ]jlMzüÓ~›ö۴ߘ™Ù™>’Î{Þû{רj>Aéõç»Æúú•ïe·¥Ðúêÿ|dúŠU'êÿMÖŠ~õ±ð"ËÚ¿­-s¯c-Æ\eù"sÃQ¯‹* ùU…—=ßü< å{ð¨?®ÚšÆúÏæ?Rd¥••¹ÀUGÎ[²¿7u,R^Çþ°S«êV×x°¹]\`C¡~Ô±@öëtv©±Õ:]Êf ªT—_~ÿ¤Ê×ןwøÃ×/å?»+ªñWžyôw䨰ØüBͭ˧÷KYc‘~«ÒÃBÎŒ1èÁí¤“6NÚ˜òúVÿï?}è›0\O¸žp=‘ôKþÁ©Wû:k€3nŒ‰iS¹Ú…¤ÇÿÛßîüv‡™™és é܈‰Ùðkµ æ”z7pû­Ø?¿žÕVª6´ŠûÛF8éçC_}üàttQ5Iϼ¾N23 «Ô±>»V<:ºÈ|®â-Y¨NxËÚ)ÿÙ ßu·£ê?kµÁ#Ì×ÙÜ`Ïv—mø•:)¯cûŒÚä|-sÃÑÑUÿéa30gx—Î)¿‹.Òòõ&ý·æýþìpnŒ§F d×^A›ÊÕ.˜Å5²^%n«­Uý e IùÏ|äñ³½£þ³ARŰÒnæÓåÓ{¤¬±0*`ãɺ¡obÀ@:¶ ¶ ¶Kú…Õ­“ßRàŒ7_h8È}tÒã?¾úøêã«™™Ù™>’ÎͦtmA©Xê¿ÊAÿ\k•3ßñ|u¯•ØÑ°úЬýêã“(ÉÊoé¿ÜêÄ.Ø.ØŽ™ Y¥Ž­f-Y™Oœo‰ÅáüuÜgÿôbe»ÿqemà¼Êûü®øŠÿ\Ãg_®åžàæ;ûôwžv:)¯c/Î[\îƒ9?=7%ÏÖC_ó<Α‡µv_M d×^AÃAî£Í³G—’NüÅ÷‹*ÇX<ϧå£ÿ÷Ú‘fï«l2ŸžÞ#e…Qƒ1BßÄ€t°òâÊ‹+/&ýòŸÚßúdµPàŒðhnÿ/ËîC¿‡~ý˜™Ù™>’ÎÚ×°7‹xµûöæyJÿsUÓ3›ÿ,öÏ3Bf,à¼åcGó €Oí_¢ZhÒ3¯¯“ÌLÈ*u¬g™ ÏןÈ܈´RÌ´ª[–Z\·Œ,Ü7ñ±•>ѤA瀊óÍqÐoõìb3´Ø¼Nö­ZÕ Y–ø†ÏúÓõJ›ÛSŠKlTº} êX¤¼Ž­>®‹ítàŒ{¿Ú>Òy'u,]{ÍíÍ¢öìfP¹Z…Ê.*rÚ²Ë?eüy>-ߘ+]üK¯ØÞ¸‹gíè&-yuÜâÖpûÜ>uÝzØÝMývß^ñÅ» fô|âý­OÒ+€qg]Æ }#ÒAL|L|Lü¿<ì}¶ßDç-À2¾ îY·NáàüÇ-ÂÿåæÛ¹?äþ›™™ésà_žÏlyÊ"<áMôáºu27(­ñ¡R+›ôzjšùÀ¡³GtÞò/7ÔŠ‰‰gf@V©cËÛu­3² 9¥ÿ<Ç7¬HžbRþÆ¢6ŽK<þ¬Tdò³ß~3·k«û¬Z}ØbdÁ‰–§¨c‘ò:¶ÀÜBÎÕÆýtát%OàŒ›î{³ÌêX »ö ò·×{MæÓ©sªVìq¡ )¯º^u¾S*2nx%µç›[OÆÂ¨€³c‡¾‰éàåÒ—K_þËmL¼VÛ>,º•8Cn3²›Ÿß´¤GÞhP£A1'¡Óçÿܞ}¤xÍoZæ¥%ò_P`‹ñ`¯Õ®ŠnMz„ú:Éœ€¬RÇñs¸íÚÉ|BÓnæÜªU½eE” ÃÜ{hV¬•uS‹–î…¶¾TniÅý6«7n´Ó©GŸi“[TÏ·*ot^³‹~«¯Z]-_èñu,RWÇŽ\u¬û"àŒí:º+tŽ:ÈÞ½‚n~~ÓÌ­_÷ËO~לo5ìQæ¨uõÒ§ ÷)8¹à!‹S%ÊM.êhÚ©¨ÓO%ÿ\›N©ìœø§Ì­§÷HYcaTÀæ/û„¾‰鯩ŒS§2I—‰Õ‚6Ö Ê*7UÎ*ð~«&k+}ôl¯óYç³Î‡Ù>’ΓýVó§Wú:ë>g×<ÇÕ”“µ‚’žm}md6@V¬c« »©œ4·8ùXן?:©«c;WYò®|TV¼´9£{Ÿ¨äáL °Æê½¦¬Ø¯3çnžÞe…±›§ìú&F ¤›°a%ÂJ$]2öíj2ÆóiV €³ÊØxž}œõë¤gûNž;yîäa6B§Ï‡¤ó¤ñ¼.Ö¯‰lÓwÜ·k¾—çÓ¤g[_™ëX—CÍ÷2ç05+ŽV÷<»Ôp¡ŽEêêX§žµê½Hd›¾cç\KÖ•ßG °Æê½&zné;ê}QÖX°ù ôMŒH7·úÞê{«oÒå÷TÉÐb»(øÒk|¼¤ë¿yrª•¯•¯•oÂÉ„“ '™øÇÉ„“ 'õ¹‘tÎ<^"ôô³!¸M¯Ñ·”Çíb»’žg}md2@V¬c‹Ú:®ð¸Md›^£×îE#„žÔ±H{;""j²{‚Ûôí'T®Yxu,Àûß^A×9~6ôßÒkÔû¢¬±06àÌEèk 0~Þ&¼MxëàíàíàtA¹q¦£“ïPʾ´¡ üz;/Kz†—¿\þrùK¦!’ÒçFÒ9Ú`ÄUçe·ioœÙ]ÑwhÒ3¬¯‡úÚÈ<€¬[ÇVé?»ùîŠÄ·iËîZlÄUêX¤½Žm:gìÆ2snÓ>±÷»†PǬ±ÿ·Wà×Ûyý·´z/”5Ùð§Gè›À@:Û^a{…í’..ç{t¶/Bñ—–ñM£k«¦–ï¿Oÿ}úïÓÌ@$¥Ï S3çM£Ã3j«„¸iÎoßÞ¾HÒs«¯‡Ì@Èêul©sª¶oO|›–Ñûå²9‡gPÇ"}ëØŸNûy–!ÄMËX}~—š¶s©cÖØëôxX[¥—–Qï…²Æ"; þ4}?0Îâ<â<âOLÍ¢•mµÚè~ìØmØ÷ß—ºŸô|êk ³ŒTÇ–°öûõûï‰r?v¬¦„S¶QÇ"ãêØÑmNXz”#ÐýرòÅ–?[7§Žð¿zAaµÚÑ—ûØQï²Æ"û N_„¾é…ȯž¼zòꉩÅ(úlË÷^c(S>Žè[ٿ쵤g2Ä6Ä6Ä–ù†”ÓçLÒ¹4¢o×±e¯è¦|Œ>»ú­×S«œ¾2ßÀxu¬‡ÇÏïV¿%ÖMùh×:à}ױԱȸ:Ö¯YÏc%btS>¯ÜÜÓéu,€”õ *û—½F_.å£ÞódEvCœv„¾È@›Â6…m 3µ<ÅîíѼvOJÃäÇÛZmñºoê>Xû`탵Ì4¤œ>gLͨÛÖöõºO¸›ü»72 vOSçP_÷˜i`ì:Ö{ýÒÅ‘„»É³Ç[­íK‹OSdžŒÛòÜ™p÷Œ?Î:õÌãu,€ï´ÚâÅýüþǨ÷9Yc‘=§ÝÞ­{·îÝJ蛾€ ä²Ìe™Ë²¤KÕ Z«ìkP šŸ êP«’©…~ÉÔ%S—LeŽ!uôùcjv=¤¸ÖªDÐkjT«ýûIÏ›¾Öéës Œ]Ç–zÝhmû;D¼&oû¼:¬—âJ‹O_ÇŽÎ}|¶G‚^Scõ{]ÎÚn¡ŽÚ^AP‡Z•è×™õ>'k,²'à´ûÐìC³Í}Ó0á®<¿òüÊs“®yƒîe(ñ὞Öyÿ}£r6'’ž1§YN³œf}hû¡í‡¶Ì.¤²¤hû¡í‡¶ú\J:ǾoT«˜Í‰øðcÇë¼'îMuº{S«™¾Ö1» ûÔ±NÏûÕš:¸7ñè“°òò±ãÅ—W^S«u,>}[Ñ©nçbý¾{>ªÒgĽ‰Ç@Û¹­ËÉÔ±ÒÖ+(hsBïYÑ»K<ê½MÖXdgÀé%ñuÀ„¾iG |"+®<ºò¨©b(ªa‹ßªn§dÔDZîUO;ô0u®n8Üp¸áÀŒBÚésÉÔLëÞó„CB_}Œj¸Ò³êvSçJ_ߘQ=ëX÷‰?[éIô«eÖµ(Úóu,2·Ž­3³oÿ’· }õ±çÓ_‡:µ£Ž~½‚ª§zлÓG½ŸÉ Ã<ŸÊï ¿'üÞ9¤sHçS…QL\›:Õ®gçÂqî«ý‚MŸ=òyÌTBúÒç•©Y7÷ÕÐNÁÙ9ú‰ÛUíº©ó£¯iúúÆ\€ì\Çzv¸gCTvŽ~òu¼6t'u,̧Žmòåè*vû²sôÛgÖŽ Îw¨cdL¯ F§àìÜÁÓ{˜¬±€Žæ‰ø¤b÷ÇîÝ_¾Hù"勘*’NØ´æu$ŽqÁ=êÖžÝÌwˆcŒ©s2³ÉÌ&3›0qô9fjÎn6xµcLB\tdÝÚÙ'ú=a³æ½×SçD_Çô5ùÔ±:Áã´5ï³Qôë³jYtd¹Yê ^M ó¬cýµ‘¹ìüÇýt!¦’gö‰~C|¶Œt¶¥Žñ½ß!Ž1z_+ûôñô¾%k,0Ì0 {<öxì‘/Yû4™ëiðgм¯Öë³:}ôÌo?ÁÔyðbÀ‹/™9È@á á áú|35ìpÚ~ÂûjQÔécìèw߃ùAžï“_£ôuŒ‰Ô±I¹tzg~ÁŸõ;aE›¨?J»ú·ëpš:æ_Çúëú»íÕ±{Ïîö\fì跳풘ò2u,€OÛ+ðÌo?Aïq»§÷*Yc¤€až€Lsoð½Á÷'_6M¹èóm…ÀøÁ_ÖýÆH%ãCç. j¶ñz\"WQÉÔ{ŽŽŽŽ? ~³Ÿ†>ßô¹gjfz=v +*=t>^³‘BßøÇÞÔýfÊÅ~s+&¿.ék³¨c“ÿÿEÙ€¶­ûÍ­þíÊøcoŒýzå^Ðý@x‘¦å-\èc‘µêX»qîr¡ËEnq ý~v>®R¬*]›:@æõ Jä**éý.#uðôž¤ÞŸdL!†y"2ÙC¯‡^½¬ÖZ­µZkª„raÝ·ˆãuË“}óeù¿-8¨IwϛɗŒÃåáòp9þlüÙø³Ìd¯vgãÏÆŸÕçáÿ¸RÐü¯øÖæ«Î93+ô¾ï°äö¼þÁ¾¥sPÇ0V¯ ‚G‰Éz-³:xzÿPï%²ÆiG óD ˜µØé±Óc§O*<©ð¤Â)/Èlí-·1ϳÆd§áçWæô~œ¾eâû%½ìëŒ;ôMsË*òhno‘ï#…?~ !.!.!ŽOYL\B\Bœ>‡?væÔÞÏÞâÐ7KoT9ð~ÉQ»:ãÒ7î=¿rSïÇó<‡Þvnkou­Àˆ”›¾Îèk2 ³êØü±E+[]s(ÞéË¡·+Õ›2ySŸô z}BWÌ?jç¶{L¥7JlT¦½u,¨cS¢úø.elgt¿¿î¡ã–±·Ï}á¹9}ãÞ~‡÷U\ÝÄnt_;¥°_ñ•ù ŽzÍí-ô>›ÞsKß>žÞÔû„zÏ5H_À0OÀ@–q{æí™·gõêÔ;_ªXç.x'Bç×Î.¥ZÏê[ÒqŦ ®º—:Ù4g¥+ªØlq•þÊ„feª”Ûw©ÉtÏ7kbë•v5®±×b‡ëÚ¿±~/ ÂlÂlÂlâšÅ5‹kƧ ƒü~×,®Y\3}n§åÛÑxa 7ë×ãr¸¾&vüQ×Qû.ÍoãùF™°ø~•rª¸äZ•þ#Wº²©ÁÔñî¥f ôÊqEç×íKµ¶Î]¬Jþ„Ô½®¾žèk Ÿ&ÀœëØüs ?-VÅvuÍ2í˵—½rzÚÏ{êx×âý» =|É5·*£Âßwi7ôÊü6Ž“ƒ£ÇµÿOËNÁƒ¬îyv«áF dDëÔ«Vƒ¢ëÎìï\Ê«ÕÒé•Ê.è\dIdy!hÏšÇzÝ­½à8¢K슯+t,67 œè8¢‰C¥ Íû\¨f±?ó— ŽÀkºW`ÿÆúµÞ—Ó{tz¿NïÝé}<½§§÷÷ô^ŸÞ÷Ó{€¬±À§A óD dI·¶ÝÚvkÛðSÃO ?•ÏŒ­õYë³Öçµëk××®|j06}žësÞœ¿•úº¡¯!|jêXêX€:XcYc´ †y"²¼Ø¨Ø¨Ø¨}3öÍØ7£á„†NȬbqpÀà€Á§»œîrº Ÿ  ôïEf}+õ5A_ôµ‚Ï@K PÇk,k,^€až€z}æõ™×gŽŸ8~âø‰±3bgÄú^õ½ê{5½ÊÄÀǯ»vìÚ±W/^½xõb»„w ï8ó€IïÞ%¼Ó¿/úwGÿ¥×·RÿŽëßwý»¯¯œxu,u,@ ¬±¬±ÝH¸ôîÒ»Kï"""<ø¦Ù›foxÂiôï þ}Ô¿›ú÷”3u,@ ¬±¬±€ä€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A€A|ÒøÐç‡>?ôy>È6ôœ”²<`0ˆlë~(硜‡rÊq(Ç¡Z¼¯Åk´ÚíöN{§½ÕÞjoµ8-N‹ÓbµX-V{¥½Ò^i/µ—ÚKí¹ö\{®=ÓžiÏ´§ÚSí©ö·ö·ö·öX{¬=Öi´GÚCí¡öP»¯Ý×îk÷´{Ú=íŽvG»£ÝÖnk·µ›ÚMí¦vC»¡ÝÐþÔþÔþÔ®i×´kÚíŠvE»¬]Ö.k—´KÚ%í¢vQ»¨]Ð.h´sÚ9íœvV;«ÕNk§µÓZŒ£Åh¿k¿k¿k'µ“ÚIí¸v\;®EkÑZ´vT;ªÕ¢´(-J;¢ÑŽh‘Z¤©Òi‡4US5US4ES4I“4I5Qµ-B‹ÐjµƒZ¸®…kûµýÚ~m¯¶WÛ«íÑöh{´]Ú.m—¶SÛ©íÔvh;´Ú6m›¶MÛªmÕ¶j›µÍÚfm“¶IÛ¤ýªýªýªmÔ6jµõÚzm½¶N[§­ÓÖhk´5Újmµ¶Z[©­ÔVj+´Ú m¹¶\[®-Õ–jKµ%Úm‰¦…iaÚ/Ú/Ú/Ú"m‘¶H[¨-ÔjóµùÚ|mž6O›§ÍÑæhs´ÙÚlm¶6S›©ÍÔfh3´Ú4mš6M›ªMÕ¦jS´)Úm’6I›¤MÔ&jµñÚxm¼6N§ÓÆjcµ±ÚOÚOÚOÚmŒ6F­ÖFk#µ‘ÚHm„6B¡ Ó†iô´´´!Úmˆ6X¬ ÖjµÚm€6@ë¯õ×úk}µ¾Z_­ÖG룅h!Zˆ¬kÁZO­§ÖSë¡õÐzhAZ¤uÓºiÝ´.Z­‹ÖYë¬uÖ:jµŽZ­ƒÖAk§µÓÚiZ ¨µÕÚjmµÖZk­µÖJk¥µÒZh-´Zs­¹Ö\û^û^û^kª5ÕšjM´&Z­±ÖXk¬5Òi´†ZC­¡V_«¯Õ×êiõ´zZ­ŽVG«­ÕÖjk~šŸæ§ÕÔjj5µZ ­†V]«®U×|4ÍG«¦UÓªi^𗿥UѪhU´ÊZe­²æ©yjžš‡æ¡yhn𛿦¹j®š«VQ«¨UÔœ5gÍYsÔ5G­‚VA« 9hšƒVN+§•ÓÊjeµ²Z­ŒVF³Óì4;­”VJ+¥•ÔJj%5[ÍV³Õl4ÍF+®׊kVš•f¥ÕŠjEµ"Z­ˆVH+¤Ò,5KÍR+ Ð hùµüZ~-Ÿ–O˧åÕòjyµÿhÿÑþ£}§}§}§åÖrk¹µo´o´o´¯µ¯µ¯µ\Z.-—ö¥ö¥ö¥ö¹ö¹ö¹ö™ö™ö™–CË¡åPÔ5Aý ~P?¨ïÕ÷ê{õ­úV}«¾QߨoÔX5VU_«¯Õ×êKõ¥úR}¡¾P_¨ÏÔgê3õ©úT}ª>QŸ¨OÔÇêcõ±ú—ú—ú—úP}¨>T¨Ôê=õžzO½«ÞU覆ÕÛêmõ–zK½¥ÞPo¨7ÔëêuõºzM½¦^S¯ªWÕ«êeõ²zY½¤^R/©Õ‹êEõ‚zA½ žSÏ©çÔ³êYõ¬zF=£žQcÔ5F=¥žRO©'Õ“êIõ„zB=¡F«Ñj´zL=¦S£Ô(5J=¢Q¨‘j¤©R©‡T¢*ª¢Jª¤Jª¨Šª¨F¨j„zP=¨TÃÕp5\ݯîW÷«{Õ½ê^uºGÝ£îRw©»ÔêNu§ºCÝ¡îP·©ÛÔmêVu«ºUݬnV7«›ÔMê&õWõWõWu£ºQݨ®W׫ëÕuê:uºF]£®QW««ÕÕêJu¥ºR]¡®PW¨ËÔeê2u©ºT]ª.V«‹Õ05L SCÕP5T]¤.R© Ôêu¾:_¯ÎSç©óÔ9êuŽ:[­ÎVgª3Õ™ê u†:C¦NS§©SÕ©êTu²:Y¬NR'©“Ô êu‚:^¯ŽWVVVǪcÕ±êêêêuŒ:F¥ŽRG©#Õ‘êHu¸:\®S‡©ÃÔ¡êPu¨:D¢Q©ƒÔAê@u :Pí¯öWû«ýÔ~j?µ¯ÚWí«öV{«½Õ5D Q{©½Ô^jOµ§ÚSí®vW»«Aj¤vU»ª]Õ.jµ‹ÚIí¤vR;ªÕŽj{µ½Ú^m§¶SÛ©mÕ¶j[µÚFm£¶R[©­Ô–jKµ¥Ú\m®6W›©ÍÔfjSµ©ÚT PÔµ±ÚXm¬ú«þª¿ÚPm¨6T¨ Ôj=µžZO­«ÖUëªuÔ:jµ–ZK­¥ú©~ªŸZC­¡ÖP}U_ÕWõQ}TÕ[õV½U/ÕKõR«ªUÕªjeµ²ZY­¤VR+©ª‡ê¡º«îª»êªºª®ª‹ê¢º¨Îª³ê¬:©Nª“ZA­ VPË«åÕòj9µœZN-«–U˪eÔ2jÕNµSíÔRj)µ”ZR-©–TmU[ÕVµQmTµ¸Z\-®Z©Vª•ZT-ªU‹¨EÔ"jaµ°ZXµT-UKµ ZP-¨æWó«ùU ÕBµPóªyÕ¼j5šGýNýNýNÍ­æVs«ß¨ß¨ß¨_«_«_«¹Ô\j.õKõKõKõsõsõsõ3õ3õ35‡šCÍ¡$( J‚òAù |PÞ+ï•÷Ê[å­òVy£¼QÞ(±J¬«¼V^+¯•—ÊKå¥òBy¡¼Pž)Ï”gÊSå©òTù[ù[ù[y¬#Ÿ‘ÏÈ1rŒ#Ÿ’Oɧä“òIù¤|B>!Ÿ£åh9Z>&“ÉQr”%‘ÈGäH9RŽ”ɇäC²*«²ª/²$K²$‹²(‹r„!GÈåƒòA9\—Ãåýò~y¿¼WÞ+ï•÷È{ä=ò.y—¼KÞ)ï”wÊÛåíòvy›¼MÞ&o‘·È[äÍòfy³ü›ü›ü›ü«ü«ü«¼AÞ o×ËëåõòZy­¼V^#¯‘×È«äUò*y¥¼R^)/——ËËåeò2y™¼D^"/‘Ë‹åÅò/ò/ò/r¨*‡Ê å…òBy¼@^ Ï“çÉóä¹ò\y®<[ž-Ï–gɳäYò y†R©"…H!R°,K=¥žRO©‡ÔCê!IARÔMê&u“ºH]¤.Rg©³ÔYê(u”:J¤R©ÔNj'JR ÔFj#µ‘ZK­¥ÖRK©¥ÔRj!µZHͤfR3©©ÔTj*HR€ÔXj,5–ü%É_j(5”J ¤R©žTOª'Õ•êJu¥ÚRm©¶TKª%Õ’jJ5¥šR ©†TCª.U—ªK>’ä#U“ªIÕ$/ÉKò’ªHU¤*Re©²TYò”<%OÉCò<$7ÉMr“\%WÉUª(U”*JÎ’³ä,9JŽ’£TAª U$ÉA*+••ÊJö’½d/ÙIv’TZ*-•–JJ%¥’R ©„TB²‘l$ÉZ²–¬%+ÉJ²’ŠIŤbR©ˆTD*,– K–’¥d)” J¥üR~)¿d!YHR^)¯”WÊ#å‘òHßIßIßI¹¥ÜRnéééékékék)—”KÊ%})})})}.}.}.å”rJ9¥R)‡/Æ‹ñâñƒøA|'¾߉oÅ·â[1NŒãÄX1VŒ_‰¯ÄWâKñ¥øR|.>Ÿ‹ÏÄgâ3ñ‰øD|"þ-þ-þ-þ%þ%þ%>‰Äâñx_¼/ÞïŠwÅ»âñŽxG¼%Þo‰7Å›âMñºx]¼.^¯‰×Ä«âUñªxY¼,^/‰—ÄKâEñ¢xQ¼ ^/ˆçÄsâ9ñ¬xV<+žO‹§Å1FŒOŠ'Å“âqñ¸x\Œ£Åhñ¨xT<*F‰Qb”xX<,#ÅH1Roþé¿îëÿ“u‚(ˆ‚xP<(ˆÄâ~q¿¸_Ü'î÷‰{Ä=âq·¸[Ü-îwŠ;Åâq‡¸MÜ&n·Š[Å­âfq³¸YÜ$n7‰¿Š¿Š¿ŠÅâFq½¸^\/®׉ëÄ5âq¸J\%®WŠ+Å•ârq¹¸\\&.—‰KÄ%âq±¸X\,þ"þ"þ"†Š¡b¨¸P\(.ˆ Äâbo±·Ø[ ƒÅ`±§ØSì)ö{ˆ=Ä 1H »‰ÝÄnb±‹ØEì,v;‹ÅŽbG±ƒØAì ¶Û‰íÄ@1P ÛˆmÄ6bk±µØZl)¶[Š-Äb ±™ØLl&~/~/~/ˆb€ØXl,6ýEÑ_l(6Š Äb±žXO¬'ÖëŠuÅÚbm±¶XK¬%ÖkŠ5Åšb ±†XC¬.V«‹>¢è#V«‰ÕD/ÑKô«ˆUÄ*be±²XYô=EOÑ]tÝE7ÑMt]DÑE¬(V+ŠN¢“è$:ŠŽ¢£X^,/–DÑA,+–ËŠö¢½h/Ú‰v¢XZ,-–KŠ%Å’b ±„XB´mDÑZ´­E+ÑJ´‹ŠEÅ¢b±ˆXD,$ ‰–¢¥h) ˆÄüb~1¿˜OÌ'æóŠyżâÄÿˆÿ¿¿¿¿¿¿¿¿¿¿¿¿s‰¹Ä\ââââgâgâgbN1§˜SH„!^ˆâ…÷Â{á½ðNx'¼Þo„7Bœ'Ä ¯…×Âká•ðJx%¼^/„çÂsá¹ðTx*<žO„'Âcá±ðXx$< …‡ÂCá¾p_¸/Üî ÷„;ÂáŽp[¸-Ün 7…›Â á†pCøSøSøS¸&\® W„+Âá²pY¸,ü!ü!ü!\. …óÂyá¼pV8+œÎg„3BŒ#ħ„SÂ)á¤pR8)œN'„h!ZˆŽ Ç„cB”%D G„#Â!Rˆ"…CÂ!á  ª  ² ² ’ º!Bˆ„B¸.„ û„}Â>a¯°WØ+ìv »…]Â.a—°CØ!ì¶ Û…íÂVa«°UØ"l¶›„MÂ&áWáWáWa£°QØ(¬Ö ë…uÂ:a°FX#¬V «…ÕÂJa¥°RX!¬VË„eÂ2a©°TX*, ‹…0!LB…P!TX(, „Âaž0O˜'Ìæ s…ÙÂla¶0K˜%Ìf3„Âtaº0]˜*L¦ S„)Âa’0I˜$L& …ñÂxa¼ð³ð³ð³0V+Œ~~~Æc„1Â(a”0J)ŒF Ã…áÂpa˜0L& † C…!Âaˆ0H$  …B¡¿Ð_è+ôú }„>B!DB„`!Xz =…žB¡‡ÐC‚„ ¡›ÐMè&tº]„ÎBg¡³ÐQè(t:„B;¡ÐNh+´Ú m„6B¡•ÐJh%´Z -…æBs¡¹ÐLh&4š M…¦B€ …ÆBcÁ_ðü…†BC¡¡P_¨/Ôê õ„zB¡ŽPG¨-Ôj ~‚Ÿà'Ôj 5_ÁWðª Õ…ê‚·à-x Õ„jB5¡ªPU¨*TªU„JB%¡’à!x‚»à.¸ ®‚«à*¸.‚‹à,8 ΂“à$8 „ B¡¼P^(/”Ê å„²BY¡¬PF(#”J ¥…ÒB)¡”PJ(!”J¶‚­`+X Ö‚µP\(.Š Å„bBQ¡¨PT(, …„BB!¡ PP((äò ù ÁB°ò y…¼B!GøNøNøNÈ-är ßßß_ _ _ ¹„\B.áKáKáKásásásá3á3á3!‡CÈñ!âCćˆwï"ÞE¼xñ6"."."."6"6"6âUÄ«ˆW/#^F¼Œxñ<âyijˆgÏ"žD<‰xñ8âqÄ㈿"þŠø+âaÄȇ"D<ˆ¸q/â^Ä݈»w#nGÜŽ¸q+âVÄ­ˆ7"nD\¸q=âZĵˆkW"®D\‰¸q9ârÄDüq1âbÄňóç#ÎGœ‹8q.âLÄ™ˆ3§#NGœŽ8q*âTÄï¿Güq"âDĉˆèˆèˆèˆcÇ"ŽEDEDEDE‰8q$"2"2"2âPÄ¡ˆCzÛ^o×ée;ð'}ÃÌ!%€t@L À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &ƒˆ7M˜úÈÿ‘ÿ#ÿ~eû•íW6ÿ­ü·òßÊ—ÁZîh¹£åÂ`€ù#&€Tz~æù™çg:6tløi®¦ÕoÎììèìèì˜ï“+u£ÔR7ˆ挘RiÎWs¾šóUJ¢SýFж6¶6¶6©{­cŽu8Ö¡ä³’ÏJ>KþµŠ… )Ò}{÷íÝ·ïŠÚµ+êì¾³ûÎî{’÷IÞ'yõçß ½z7ô¸ïqßã¾ 7/ܼp³~¯Ås‹çϓ߿ý:ûuö눑Ñj+Émœ¦@*µž×z^ëy¦‚RïÞ ¼œÛxnã¹i¹øÎ†;îl(™£dŽ’9L½–Üþhÿ£ýöúÓˆS÷Z×s^Ïy=gJ"íj|¨ñ‡çRH``H¥äŸû«_³›–°*Þ:Þ:ÞºQëF­µ6õ*ev—Ù]fwÚ_+©õK×/]¿4ùk‚-[´lÑ2f20€Ô!&€TJ>Õo¶œ–ýOo>½ùôæ¦öoímímí}úÜés§Ïe\$¶àà‚ƒ š:ý¦ÖrÈÀR‡˜R)ãª[‘·"oE8SàL3¦ö/!!‘Ña˜~rÿÔøOÿ˜:’5G×]s”ù€¬òý`lÀÀJPj1ªÅ¨¦öÜ}{÷íÝ·ÊwºnÓºMë6™:žZ§jªuŠXYåûÀØ€ € •2" z~æù™çgôÛ;'Ýg±b!ÅBî†Þ ½ú)c°¿|þòùËÇÔ-¯õ?šãiާ9˜0çï€ì€˜€IQ£þ}ûØýè·NÝ3q?8~püà¨ÜQî(wŸ|bð‰:;ë쬳өšS5§j…ÖZ_h½—ºäqÉã’§C•U:TYÜeq—Å]^zqèÅ¡Œ;?PÍ?6ÿØüc¦öÙ»eï–½[fÖ|¨­ÔVj+¦Žmï’½Kö.I¯×z’÷IÞ'y7þ¸ñÇ?vþ¶ó·¿õñòñòñ*³»Ìî2»-÷Xî±ÜSvQÙEeU¯P½Bõ ßu~×ùݯýíÿkýgùþ¦å»üìæ³›Ïnê³1À*À*ÀÊíºÛu·ë…C ‡-‘·DÞy+/¬¼°òÂþEúé_D,%–K™ÿ÷ @v@L À¤^„<y2þøøããë·.u£ÔR7RÛlqÛâ¶ÅÍa¸Ãp‡áùRÅÆÉÆÉÆIÿç;îl¸³!}ÏCê$ÿZu×Ô]Sw©ŸÕƒðÌ Àv‡ïß®¿úЭÿïv ãŽ:¦åØôÀþGûí´×#ÞÔႇ *xHÿg=È̸ïBÆ}éûŠ)ßúZZZ~ì™OüWÌóû ; &`RÊ#–¹æ>˜û@¿×ÔO•ïU¾Wù^É¿âÓgOŸ=}¦_q˜¾±Pâ@+½ÎCúT¯½^ôzQâð21ûuöëì×é×Ro¦,y²äÉ’ú{Lß³m§ÙivZÚ£AcÀú¼"‡ˆi?çúõÁ)?N`鋘€IÉG,ï½kô®QϹ=çöœ›’`&ùø±ócçÇÎúí|óe°°a¤ý<¤o@%¿”_Ê/Mý”~kkãÍ1ýFĦžylñJæÀ§üöeD<öÍØ7cߤï9×o’£%¾€ €˜”|Ä”ò`ÆT¬?åW²oò{hš»iõçÂ^~ýùõçús…õg¾÷=î{ÜW¿uÉ%s”Ìaj?9-rZäLù3k;ý÷-ù£5õS¦^eâ–‰[&n1µ·éͧ7ŸÞÜH—~Ãðä?)~Eøö×Û_o}+òVä­È7Áo‚ßßÞ{{ïí½;îãî÷¿üýã”ß<½¾ Y=>2ýÈô#Ó-ž[<·xžøÏ}‹û÷-¾­à¶‚Û ÞqÄýúÍ´µ#ÚíHŸº}êö©›’oý†™fn˜iß/Ù00“LE/³ Í.4»PÒ?/Z8´pè +ƒ® ºÞ7¼oxßS/N½8õBêô°6é«ÌùjÎWs¾J>´Û7cߌ}3R€=Íñ4ÇÓÿ+–>]útéÓæsUhûzí뵯gjoúù4RØ=°{`wSï·À™g œYuÕýU÷S¾Ïu›ÖmZ·ÉÔm´um‡´ÒvHú>§öS~ûÒ7vvtvtvLü'ú5ýoß¾ý×L¯9ºæèš£ÉgêÎvfsÆ@L À¤ä¯ Mü'î1î1î1æû3ߟÏÜÙpgà ¦ž\tDÑEGÄÜŽ¹s;•‘Ož„< y’‘~~øóßšC@Õ`hƒ¡ †šÚÛ¹ç6žÛhŒy¥žWÏ«ç“?{zô›º3©ÇÀÉï_¿’5³>ëOÿŠ)¹Z·Ö©Z§jÒoížòWiR¾Iù&åÓòäoó9猘€I) \\\ô›Ä~l03!bBÄ„S{^a¹Âr…eÚÃývÁ¦^ÅÖÆÖÆÖÆàÄÏLMJ¿õ±1æUçwßu~gê¶ž×z^ëyi•6ãÛŒo3ÞÔ«t;Ùíd·“)ÿ¤²C|¬Ã±Ç:|ìþ÷ü¶ç·=¿™Ú§~5¶9œÙ00“R%¾9sÊ÷¬_eXfw™Ýev'ݧë×'®Oôg§×{Ùþåö/·iê]œ>wúÜésé{~>vovšf§™Ú›þÖ¬>£;?v~ìœü-šÏî;»ïì¾´‡|gŸ9|æ°©Wѯ;ןýé?ëOÿŠÉï­Æjü§ÆRwœWª_©~¥zFœ`©CL À¤Œ ŽL?2ýÈtS{ž2vÊØ)cÓ7æÑ¯.R,¤XHÒW 6 l@æ>Vê­©½¥ožYv^ØyaçSï±Z›jmªµIßW¬úCÕªþ`ê÷.Ù»dï’OÿYúWL~oÓ›Oo>½yêöœø–ÑÀÌ00“’`&-Ÿ´|ÒòÔ…1s¾šóÕœ¯Ò÷V´)aê9»‰oJœ^ççc-ñͨ“zqèÅ¡‡²úŒú©ðO…*lê=&¾%xz½â¸Ëã.»œöW4v¼­à¶‚Û š[XK u€ €˜”|£žWÏ«çSÆ´ÒvHÛ!¦öœòó~¬Ž::$}Å:;ë쬳3}ÏÏÇîM¿ñµ©½ÝÞ{{ïí½Y}Fù×÷¯ï_ßÔ{ܵ+jWTúÆ{Éßú»Ùµfך]#ÖÿÊ…ùmfsÆ@L À¤ä˜ë9¯ç¼ž3u{öêéÕÓ«g>³¡OúžŸÝ[m¥¶R[1µ·sÏm<·1«Ï(Ï]ž»°³£³£³cúžŸÝ[ëy­çµžgjo Èê3Ê~ý:ûu¦Þãß6Ûüm“¾¯øÈÿ‘ÿ#S¯¨ÏÃOÿYúWL~oiÂ40óAL À¤ÿÀäIÈ“'u{.R,¤XˆùÀ%Ÿ•|VòY:ŸŸ4D"Mímzóéͧ77‡è+¼oxßð¾«/þûvãÖ[7n™úÙ¡…C ‡šzoß¾ Lߣ;9v²©W´ ´ ´ üôŸõ§ÅŒ>~`惘€IÀXî±Üc¹Ç|`ýx2÷ü$ÿ´ÚÄOMÎÜY‘üU¼§>;õÙ©ÏLýì§€ß5z×è]#S¯XðPÁCeîwáÓ¼"0€ìƒ˜€IÀØivšfjϯ½^ôzQv;?ùüåó—©½•>]útéÓi¿UoZèOŠ5u„Ï-ž[<ׯ¸5µ‡O èÇÎ;›zÅ2»Ëì.³;s¿ ÿ"OBž„<ÀÀR‡˜€IÀx¨ª‡jjÏÉßFØØçÇ«§WO¯ž¦ö©ß~9³Þﮨ]Q»¢L›{Œ{Œ{Lò{ðÜå¹Ës—©=\©~¥ú•êé{Ìú>M½¢~<™û]HêÙÍg7ŸÝ$&:ÀÀLʸ¦QëF­µ6µç.'\N¸dÏó3ÆsŒçOSûìèÐÑ¡£Cf`ƒ® º2芩c <8xpòÇæ_ß¿¾}S{ؾ;|wxúsò¡uà {4쑹߅¤®•¸VâZ ``©CL À¤Œ `’9·¿Þþzûëìy~nž½yöæÙäŸY›WÊ&/nxÜð¸á¶6¶6¶6¦Žmï’½Kö.Iþ½'ÿ¹OZ>iù¤åéïMÜ2qËÄ-¦^qT‹Q-FµHÉ+~Ê02ù§AH00“2.€Ùyaç…Lí9°{`÷ÀîéóÜÞ{{ïí½Uø÷M¹£ÜQî˜Ïùé5®×¸^ãLí9À*À*ÀêSÆ`›kn®¹¹¦©ã)Þ¨x£âô8ùýèѾ©ýøxùxùx¥ïûªÖ¦Z›jm’ÿ«i€ß{¿÷~ï^Çœü•ÖÀÀ’GL À¤Œ `;?v~ì¬_ÏštÏùoå¿•ÿVúÆ<¦®=µÈi‘Ó"§~<æs~.޼8òâÈä÷¿úâê‹«/fôxqèÅ¡‡œMIßÊ}+÷­œ’½=òäÿÈ¿À™g œ1µ· S/L½05íG~æð™Ãg›z}Ž=yò $íŸuzóË=/÷¼ÜcãdãdãDL u€ €˜”ÑL׫]¯v½jjÿ‰¯‚MË«<Íñ4ÇÓ¦BµÚJm¥¶bžçGVMí?qŒšqs ‘þEú1u …ÖZ_h}âÛV§dŸªt¨Ò¡JF_ÿÝBn!·M½Š~ )ß[ò¡õ†™fn˜™öc|üññÇó¥€¹ÍU`惘€IÀDŠ5*ùWYuÕýU÷S·ÿwÞ5zרqÕÆUW5µÿ-n[ܶ¸™g¨;9vrìää_E`Ó7ûàøÁñƒãö?ÚÿhŸü«ì6²ÛÈn»©€T@*üž×/]¿týÒÔÿÊ\+s­Ì•üþå—òKùeÊÏ[¹Éå&—3ùY¸]w»îv=-Ÿ‚~N_ûNœü>ã­ã­ã­Y¥$EL À¤Os^—¿ºüÕå/S¯bñÜâ¹Åó^1OBž„<)Ù瓼Oò>ÉÛùÛÎßvþÖÔž+/¬¼°ò´<½õÓœŸ«¯V¼Z1%¡`ëy­çµž§_›º×ºÜørãË?cØýÙÉú ¢S÷~[îh¹£åSû·Üc¹ÇrÏÇîY~“¿ZW?K{´mÆ·ßf|òç$ñ|Kùž×mZ·iݦÄA¾©[£'ö°ÝÃvÛ±JHŠ˜€IŸ&àüÛæo›¿mRpVZ[im¥µa„ 8v>ì|˜@þåó—Ï_>G¦™~dúL™3=lmlmlm’¿yòïùÏÿ{þ¬r‹ÚýcöÙ?&%g)qd®¢'\N¸œp¹z7ônèÛÀ·oõ>ÖáX‡cÖ]stÍÑF­µnÔ:%û/u£ÔR7®?¿þüúó´¼SýRòŠÍ®5»ÖìÚÎ ;/ì¼pgà w6èïBÿçí¯·¿ÞþºIù&å›”O~?%s”ÌQ2Çý÷GÜñ±G¾µôÖÒ[K§ähí4;ÍNÓÿùhŸ£}ŽöÑŸ0ýjÝ«u¯ÖéqþÊØ•±+cõÛ'ÝÃÚk¬=@œ|>tëЭC·ê7xü&øM°>X·0éSœ§>;õÙ©Ïòe0=ýµÿ¯ýíŸöwñéŸQzÜ÷¸ïqß|™¤¢uEëŠÖ§Ï>wú\z½GíˆvD;’ÑGnímímí­ÿTyž„< yê-¨· Þ‚Œ;NýÀ1»²bìÕÓ«§WÏ=‡¬Û€ €˜ô郖‹#/޼82#¢5'''ýjѬ{~túMž?eôØ=°{`÷§Ïž>{ú,#Þ~-rFyÙEe•]”ø¯¤å8ù?ò䟾G¨?÷wÊØ)c§ŒM|“sàÑuF×]‡ÀÇ"&`Rf-±“c'ÇNÖ_¥èˆ¢#ŠŽH]´¦ßê¹ÛÉn'»Ôo›¾GnA”þZþõýëû×·Èi‘Ó"g:\'Ó"§EζCÚi;D¿‰ñ§y/‰æ”<7ùçýzì×c¿NËSŠMI¼ÏäŸ7œ<———„È_#ü5é«X&·™Û\͈ý'^€¤00³–8l ’‚¤ ©z…êªWЯìÔcBý‰¿zœÖ¾^ûzíë-Z¶hÙ¢e‰Ÿ2›ÎÕÃvÛ=l§¿ßÞ-{·ìݲÎÎ:;ëìtqqÑŸ€«–ú?»>q}âú¤Ö©Z§jðvÀÛo7×Ü\ssÍ{SîM¹7%sß‹þÜ\ý½ttèèÐÑ¡Z›jmªµÑŸ°«îev—Ù]f·þç¿íümço7þ¸ñÇ?>Éû$ŸæsO<ÇZÏk=¯õ<Ç†Ž ê1­EWh[¡m…¶~úýé÷g¿²ýÊö+{hÿ¡ý‡öë×û[&OÞ³~–êO¨?¡þ„ò½Ê÷*ß«ÐúBë ­×ÏvÝ5u×Ô]£ÏÎ``YWfÏ3–UÞ3óSž[Î €Ä€ €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À €ÿ¡E¦x;œIÛ‘LÚ¢2i;šIÛ±O¾EgÒv<“¶™´Ì¤í÷LÚNeÒ“IÛéLÚÎdÒvö“oç2i;ŸIÛ…LÚ.fÒöG&m—2i»œIÛ•LÚ®fÒv-“¶?3i»þÉ·™´Ý̤íV&m·3i»“IÛÝLÚîeÒv?“¶™´=̤íQ&meÒöø“ogÒö$“¶§™´=ˤíy&m/2i{™IÛ«LÚ^gÒ›I[\&mo2i{›IÛ»O¾½Ï¤íC&mñ™´%dÎv(G&m93iû,“¶Ï3j#Ã"ƒ0l¬ã}6~ð(àQ€v(öÈLÚx&1O#æiÄæÿ4âìóâìóâìóìá³™´eŸggŸ§gŸç gŸ' óŒaã=]8³ž1œ}ž.Ìs…y¢0Ïæ)“Ðçø‰ã'ÞG͈wÄ÷ªïÕOóåË—ïi:Œ‡¿Z¹vìÚ±ok^½xõâ‡K ïÞqÞd¼Kx— _ôïŽþ=J¯o¥þ׿ïúw__8ñêXêX€:XcYc »!²¼Ø¨Ø¨„Qûfì›ñnpà '¼\’^eâÇŽƒÄV8Ýåt—¥ø\ý» /2ë[©¯ úú ¯|.êXêX€:XcYcô’ô[vèóCŸ¿¯Æ™Aæ"²¤[Ûnm‹¯2üÔðS±ã3«XLɸÖg­Ï[Ÿ×®¯]ºð©ÁØôy®ÏysþVê놾†ð©¨c©cêX`eÒ‚æ‰È2nϼ=3¾nPï Þ¯«¥®˜³Î]ðνÝ_;»ìë>k¨oÉЯ75hpuÜ䃑MsþpR›-xQ™Ð¬Ì }û.5™>"tMl½Ò“…q½¯ØÚx¡ý›Hç´”’a6a6o¦Å5‹k–0OÆ Ïg}n§åÛÑxa ·Hçqƒ­Øº&vüÑɾKóÛŒU&,¾?hŸ*.¹6ðâÁÈEÁ?œÜÔ`êøq“g ô*ôëίÚïën»X•{»S÷ºúz¢¯-|šs®cóÏ)üôï¿mW×,s;¤\P{éj'§§ý¼/Þw->Üû|;·!£‡Ÿ«çVeTø¹a.í†^9ÿÚqrpô¥oíÿÓ²ÓŸ5­îyv»B dDëÔ«V%oÝ™ýù¦ÕÒ镯œï\dId¿öA{ÖÄô8ß½ÑÚ Ýot‰]ñuï€Àbs†—öÑdÖ¼Jš÷Ùñ¶PÍbÞ=O €5Öt¯ÀþM¤³Þ—Ó{tz¿NïÝé}<½§§÷÷ô^ŸÞ÷Ó{€¬±À§A óD ˜µØé±Ó†M*<©p\›”j¶ö–[ïzÎó¬1yAÇó+svÛ\·nzï—ô²¯¿íÐ7Í-ü5pGóM›?¶” ?~àÝ¢„¸„8>cd½ßäâô9ü±3à ö~›6úfé½_rÔ®þ¶„„èèºuÓk<¿rSŸn»çy½½ £­½Õµ»ž)?6}Ñ×>d@fÕ±ùc‹Vþ{±CñN_^9V©Þ”ɧݫW_µ*::½FŸÐóï¶{LsJlTæÆUêXPǦd¬>¾K™ue»ß_÷0èúØÛ羨òǸq.Tª”^c¿Ã{‚Z7±Ýwú†Â~ÅWÞq£ŽzÍ7mÖûlzÏ-}ûxzoPïê=CÖX }Ã<fêX¡c…Þ/KyA6ÙÙ»ÏÒJ†u9Ôâzú–‰)wmåò¡Í³ BÑ”s‹Ë-.¿ªùØú±uü)>q˜?}®êó6%3¼Í³…„¢Ç»®éò!}ƒÞ”†<Øâúdç¾µ—VJùz¢¯?|â€OSÇÚhÓòÚO^ :ž|“¾qoÊG€qMϵ)ì]ïÎFêXPǺñ—öW ¾µùjÇ.éô¦|¾ï°T×¥þÁ¾ ¼©c«WPÁC(ª÷Ð2«ƒ§÷õ^"k,vÀ0OÀ€‰Ÿ?!áÞô…ÓÆíHIáµÎ§Þ²Içb÷öhî_!³JFSãÝ€NÛLì™÷·º)y/‘•#+¿`À<éó3%3ypp‡èßêÞ Ø·³ÍôÌ }M±{#›úWXç3!jÒ¹”¼}-Ò×%æ }ëXÇÃ!sÿ¸è½~éâ2+ô55VõŸ—û÷ÈÒý[ݘM‹ìSÇúîµfÅ5Õ! =2+ô55þ8ëÔ3ï_[WžQgôEêXY³Wà™÷·zeæÖÁÓûŠz‘5H`˜'`À,¼¬þ²z‚Ÿ àËðäˬY}}mBó¼ëÕsWƒiæV2šotl×.¨©]ÙÇZûäßÝ/§9ýfbB|B!>!AŸ“ÉÏÛ¦v~îZû›»ç´ 2·Ð×Ôø®W”{ƒi³úzš'ùw§¯KúŤ¤¥Ž-×µý«}Ú/¿xügs }MU&Ï^~*¨x÷JOï}A ãÕ±Î+ë„Hù‡´•lon¡¯©qì÷g¿¨zÔ¿Õˆz³Â¨c˜w¯ ìc­½ÞË*<½ß¨÷Yc”#†y"2ÙC¯‡^ñ«¬ÖZ­}ö›©¢Êý…uß !×-;Lnÿ&«”Œ¦Æ}ƒštq#ù"r¸<\Ž6þlÂ_ÌdÂosgãÏ&ü¥ÏÃäçê¾Aó¿q#«„¾¦Æë–;Ï´ãþÂÑîBˆ©wª¯QúzÅ ¤¼Ž-Wæü£®UŠÍª}*"«„¾¦F—zC—]ÈE cÔ±î-é×oKV }Mƒu¾+éìôìÜçԱ̩WФûˆY½ƒ§÷!õž$k,<`˜'` ÓÜ|opüÐäKÆ)}¾]òUü‹à/ë}™Õ ÇÄãCç. Zóz\"×éÁ¦Þ{ptpôëyñâ$Üe¶àý:7 ~@Â]}™^]ÃN~è| ¼å±¬ý&ã_{SïË)‘J%0­IDATûÍ]òUòë’¾v1[€:6ùÿ_” hÛúšOõoWÆÿíÝ{\Ï÷ÿÿñÏöÙØæûq>Ÿç4F ‘T$#1‡ E¤r¬Y $kc”ÃÐbŠŒ‰aΛXbΧFr(Tª÷û÷ÇÓ.—ö{{÷y«wz½_ïÛõÇåsÙGŸÏ«—Çû¹G{ï÷+á™®G¿¥kŸk&¥ti<ôã:÷‡0ÇB·æØvA=ާ|3§iÜ.k#]~ÿQß>_`RÝfçgQ«ž0Ǩº]Aëjé~bß%§ žØIŠý$g, 0¤‰¨9Æ9ÆŠ´ÿñÛ‚÷V,—ÓȨZ‹Í¦¼=ø©ß¬žuwXª»3ófæå¿«<¢<¢,¢sP‰Ž((‹D¿©}fϬ±é;,‹Íâ/~*§èWµº·Ú#`yÙg”8Çh`ŽU­Fãfß9ÿTN¡¯jµÞ4:Ñ­m7{—Ë™c!ý9¶Ÿÿ„”-á fì7m'«èW¥ºµŠH›>”9À›Ýô¬»ÃRì¸ä½Ç»JÎX@0¤‰x£òçV~ÜøãÆ¹jg0©åHoyŒÿ¨^“Ù…:õûl­º{²Üa¹CA"ýƒÊ#zL]†:ùm^ë£,Hˆd'ïè·tMj¹¥ØÛ_Ý=ç˜8Óè`ŽÕØ/èäÙyG¿ÿ¨Q;®;ðŠ9s,¤9ÇÚŸ ¬¶ünЂ i½Ìåý–®Þ»Ǧ0Ǩü]A¿ÏÖúˆ½–þìñÄÞ’3(ÒD ¼))Êe±›·›÷³"uCRZÁèžÿÖ£èW¥®|f9cÍ2u÷çÀñÇ‹FÒJÐ.ÑWêºnå³Ù?­Y¦?¡¯jM+Øï©ö™jâLç½ú<Çöœ°ä@z¶E¿*µSíqW/g0ÇB:s¬Ã»óz/»¨?¡¯jºbo°ó{̱*gW`9cÍ2}Þà‰&g, Cš€7$òtäéj?.&ÞvÄŽiwõyp,]ö0M2Pw¯ntºÑIQ›ŽBʼn^R×i {x&Eèsô[ºÆÛFöœvWݽçú9ÇöX²à\†>G¿¥kû­#š\[˪c.Ÿ6#¢D/©öØ0»MO,U9“hmHô[ºÆ ÿjYÐBu§™8ëè.П9Ö wú€Ì,Bß<XùgBIóïL¶Ü½À‹7?Çv5äök—EwÏÇ›ý–®Î­VŽšÓŒ9@ÅvO,;+vw¥«ØmrÆBŸkËÁþX4IÜÃ/¶±½ÀýÑàGƒ¹Ü™ò!*‘ÂC᡼c´Ñhcî+>.Ïw€qTL#ÆDu5××c¬ã=uãcÄW_î¥ÇP>¢ÔuW®ol7Ç{Ľêªï×;1Tï›8ëĹG€¼çØ6Ïí¢o%îUWÍ6‡OIºÍ‹7?ÇΫ‘jy‚¸W]í›åžÌ  ¼»±Ž÷Ø×©«bÏÉ ýD\q%N%NJµÔ! .` ńDŽ¿Ø§îØÊ?8y¸}gIJkÒî‘»¼Õ~ðνè{ÑŠõt4'zF]G%펞æ]›ˆ·ìš0ÎѾ³ÚO5 ±Nyϱæßoø6©AoÙÕ8tq³³ß0ÇâÍ̱ÞA»rÇŽ#â-»þwEêó˜c¼þ®`ä.ïÚìèÊ®bÏÉ ýD\q¥ßû[v% Ö0P)ž=zöH9VÝ!•ñi±;£¡æ5`š‰ýVÅ+Ö­¼[=_G¿As¢gT{)`Ú„…[„»š×„ŒÍ/|ÜÕrâ ¤ß@~s¬±ñ¢¢³×w5¯íF9_dŽEåͱVNžg¾{B¸«yõŠÜé9.…9€f»û­ öršW±ó䌅¾!®8èŠpW“˜0XÀ@¥X_c}ÂÕ#i¢×V62¾nÍ«ïîè¯î ¿w=Nñ>]‡²‰>Q×Eyõcw;úë¾nè?lت÷SœtÈiŽmÝÂê‡ÛÕ t_ûã cÃÏ$%0Ç¢òæØy£“X~B¬ûºÕ$óÓE{ÞcŽð¿váŽþìå^·Šý'g,ô°vk 0 eÆÆÊ uÇÐÝ/ÇçŒžÈ X¾ÝݺOÈ*Õ»ê3×gîó]ôÊ&úDµ¢»/ÎYE”[¾z÷ËCWGOTwâ‰óÞy̱¦£V¦ðÜßrÖ.«½]z‹9ÚcG^æ9;QnùêçcOl±­Î @ý®ÀºOÈ*vqå«bÿÉ ýA\yƒ+‚в=÷t~Q¬zèÌZm쳆°"µÐnò}»êŽõ‡éÓÙt T‰ÞP×9…v§¾¶«A”[‘:kµ«kÌÕ{+ÎC:t}ŽmsÎÎôÆBÜŠTó§ÃÏ1ÇB»sìÇt+³iD¹©}W»÷ßúæX€3öU»‚É÷íj°‹«H»PÎXèà7ƒ0øuÚóBùB©ìdÞÉ<7Xõ ¹qvœËQ†¿Š×u6V>a±ªwø»§ß=-ü‹6„*Ѫ=³Î&àJX,ñmÅë³û»ºU½Ãâ<g#@wçØÞ3B‡§úâV¼~ÜhBÓËo1Ç¢âsìа…ÛCößV¼~Öò×ÃCö2Çœ±ÿÜXù„Ų«x»PÎXèà70XÀ€ÖÜšvkšÂXõXé׿Ãu)³û´Us"&„ wQ½ÏÍú5ë÷$Z™¬LVò[„ø[²2YY,zCµgr"Žyw!¾ÕVíׯøvÊlÕû,ÎFštqŽmҪ˦{ÛnµUûì_Í‹ŠÏ±GãC>ù‚øV[µC°IÿDæX€3öï]Á„°á.ìß´UÅ^”3òF\µƒÕ!´&¼uxëÂ¥ªGÉ¡}óöIy[óKÿU/Ÿ­ûç—ßÜܤ?>YÕ¡ ÎHõnß©y§¦Ân„ úAµO†¬²4Š3’Z€{'ÂØ×wräð„}c»¶èèréRã/cH[ãk_ 1íw?nÆ×fõ]¿>?$®³½½Ô®ÿоÕ}ö©Þmq6Ò ‹s¬ÑˆÙ¿Ÿ/–ÄG('l¬ø¬c—â+aÍ»÷rÌ2l°àC£+ë\o÷hnã÷:Þiy¿ïµÛŠîÛæ7>×RÊ1p³¬žîYÞ̱(ßkà9À:¶®®« Æ¥»˜ührï¤3—_>é­#6NqR»N·j[§2Çœ±b×$…­W±ù”·çÕ;[ÇÿáÍÃŒÒõîºñy£GKá{{QÎXȰt—F hA{ƒö¹'U<3íŽRýÍÁš^µ=1·iýeÚÜÒ×,ýøp3‡è/Õ»½Õb«Å‹!t#Ѫ}r¸Ùêe^’ˆNk&ÔôdV¶kŢ¯ûã\’QôÞÞÒ €óÌb“_ñî|q6Ò ‹s¬Ùéð›IqU—öúì«é5~Ð&ëÁ‡šÿ[²µë€™·2úÖŽª•ðXj°Ñ”Ïÿ}þs,Ê7ǺõŽ(šÞIgž°{Ì}it¼êw!µëœç“Ô˲s,À+vMRØz]îëÚxüòE¿R €Å^”3òF,M„ÁÀ€<Ýðtƒr°êaÑgs«ûéÛ¥ý5[¼1OõÊ¥? œhåTMõÊí|í|Ÿî '!ˆ~Pí“G¿^uª&…Ð4´¡ŸßÚµÿøȬÃÍËݾuŸg³bEò‡Ñ§¼~ï ^:aF\ø£æMÇg­,ýç?9þÎÐ"éÄÀ}6wŸ¾]õž‹s’ž]™cº}LÕ¥7"ç'6lrÁðÖ½º/¯-¢Î©Ç ?LüÖÍßLk~±{Ï·ƒƒÏšÍý¼ßù+­ ­®Þ*¬Ý·öæÇ ¥¿©Àfµ×E$;3Ç¢|sl`Ô™†êH?úöõœ‹êÖjÒ¼ævãz¥¤0Çú½+˜håTMo{˜ïжôµ­>Ó¿åj‹u+¬–„…iRŸ˜ÔÓÁA:{<±#包\KŸ~†ÁÀ€¤)Ò%ÍUˆu¡VKÂB¥0fÝóvÿ×È‘?̰1X|qaaŸæ‘‘ݯ·¨ži îhÓçˆzy²mäU71û êõ—Ô(©¡L¥3õ™èÕÞhäÕ 5û ²0áÔ Ûª J æÄeÙE}ø¤ån›Škë¹Ï`ñùÎ"Ðýû•øÿ•øç¥¿JÝŸ¬ªº.4°~X¨êç$ º2Ç~ÜnÂÀ?ŸWmPÚÕÃ7ý±üšÔä©K/Žÿ­j¸+þIûÃ×¾ÿ¹¡g»Ù$÷AÐQëÖ_ò(‰9šÏ±õV64Ìî´àBz/3)G¿3züèÓ} þÕøÇ¿nêV(vMRØz‰¸W\[ç1MM¯„è̾NM;RÎXȰnÑŸ0˜ЂÈÌÈ̯x7jêáQÉžYR³6g:òå—šgº2>Κi<Ïöº¼Å èë®ÀxxÌ.éì»f¾ß#içNqmNW;>‰õÑõXìH9c!WÀºKÞa00 ^í¼Ú=yÅGÇÄO?,E cVÆ¡1v“j…Uïwè›lÕª»ðÎ ¶¾‹¦ª^âæÄÍŧèL}&z@µ7v^XúË¢©RJ7XÍ?±Ü¤|æœØoËŸ⫚97¾û×_Òyð£øßš {ÅGç‰s’Î]™cÍZ­KHv¨ÚˆôCÅà57ƒë{µ8™3«åx‹Nw¦kåšZíš2ãá™Ä`C‹†™1̱Ð|ŽuÎ\õíç9R€Mš0Ýköòýj³ú]ú}àƒLÛéJxêÌ(« æX@_w¶¾‹¦Jgße7ªCÛS/¯3p¢Éö­Žºý¾|”[üÄñì _Àò ¿0˜ЂnIÝ’òj¾âÜ ¦¸,ý!Lwà´´Ñ&ž­T¯Çw^l§3õ™èW|¸PÚ¶<[I!(ÝÖiÞÜy̽Ò€\n3⵺ÛàŸÉ7KùúͶ‡&]gŽ…æsì¼&‰Û,c¤”Å?ý¤u‹úâÿÜ/®pHÓÀ ËU#^Ý €Û÷ JzÌ èß®ÀcŠã9I<+÷íQK§¼âÓ¼üºÙë²³¿mŸEÄŸÙ{×~Äü³SuŸ¼{L·j{?øSK’ïûRÎXèÃOUÀr¥[að¿¤ó’ RåT :G\Ù5?nòûÖôUóšçbßZ·¢_ñÄß©½W$~ø÷ïÿ60yÐÿø;á¿ø–Ú{Eu2{~£R©T]¬ÍÏôîrw¿îÀÿøPÁœÀÔsû¤yýæ?lØ’T‡~£j^ÿ»6Ua¾Q•¼áü “]]s¬÷Í×Ö}“ýÄÃ+‚j]¨Ùë‰êŸ×­¸k¸u‹cóè7*Uÿv“ÇØ·–¦ëÈ4Ç6?ò©ûõÕ3 b†Ú\ *½ÁSýªŸÇ9ÎõOzE ,±=žØ—ÒoT*U?ëÁþX4‰˜JÕù:fHç‘G3 €+»:N~`W~£j^ O…ÙU—~èûçÝ ÜÜÆö¶Ÿþs­Ò×oòaqFF’QôÞÞÒŒ~E3ÄfìÑLúJ¥Ru±¶ìd¾àN¸®<ñ×bɦщn½+륾côÃçiç7ïÞË1˰ôwÔ£ûS2~”\ülãêÄ úªy]à”>ÈÌ[ ©Mm¿ÐÕ/Ÿ`Ýòz§ìÌSsG$8ôÏQîêVÜ]9¤Æ¡'ô•ª»‚ÉìªKyk÷ºû=Wë.¾?ÿ,µïEìKé7*•ªŸõÅ®»”;€©T¯¼˜wS¥Y¥üàθÙÚ†„N xÒà@ý¹ˆkn]«ùš;¡aÕ?ëúMv¡×©hÛgRŽ~y0•J¥êzÕ•w««â»h1Øôè]‡Òßï¦êz•Â;€§äÄtŸWûy¨GõŒ|:µÎžç³eǺºó`*U_wRypEêîúvÖ ^>(ÍHÙ|øÅż˜J¥R¥SõèÀâ3ЩTyTÕ3Ï®Úgvíø,€ÎÔç*z@µ7¤ù àË}w§?ÐsŸÁâóÅuÖ;[ïí‡4šü(*ÿñ“ãï -’~è«É3€éL*•J•þ«+ÏÖ$µ~ŸÝrÖJ-V÷ `æXªº9V Ïum¹÷Ü?´»›Ó5.ݺ¦ôŸLgR©rßHåÀÚz~pÃïë?è/µ-ŸºgÓ™TùýTµ®Úºj…S¸3ò«‡ùz½íõöó%šO¼âÏëÑ3€y?æ½ÑÚºW²×WvÍ2w3uKõú—îXº£`3©ÏD¨öF–ùaŸQ·¤”^ÏÝ·ÐÕõã)ív]í!®Püç?–mÚ4}ºø3ºýŠÚhmƒ¼ìµ¯:[RŸcë,®õèTÕ†£}6­í•| ôUu~êYxi‘æÿ ƃƒÌÎ&‹¯­ûGãȇ±R €MWE¤D2ÇBó9öóŸNšÚÌ•_,µ÷×ÛÖpDvæX@ÿvnF£nIaÓ{ÇÉÆ×÷øÓaüZ\Ï{ÑÕUó¯Ý?¤ú¼—ŸaÐŶéêË—¥¶åûRÎXèÃOU",äÎȃn¿ØþÅöwÍç[ñçß|è[0 Ý’º%åÕT}‘—Lq<˜¸òjZÚhÏVª×¿ãÎŽ;/¶Ó™úLô€jo¤¥mûÁ³•t‚Rs›î;ÒæŠkû$ÖÔ6aöÖǒJt1ôµÄàôÚÁƒUï¼8'éLЕ9ÖbߦìD3鼋÷ÆÜê§ù×vþ¿I-ÿ4_Ûl›qxÖF©À=]–lL ÍçØ©s÷z8w¨Úptžiâ5ËÏg½uÄÆ)NóZú»pÿí»ï}v¨þ·Rˆ~u:7¿÷æX@_w£M<[Iâ=²}ZßLMW58¸}ÃøxÍ¿vV¶ñ¢˜OÅ×züÖ5|ÿ~élùÄŽ”3rE,?ºú–F hW;¯vÏCT_ðâ'Ž–B\yuç[ßESU¯?qsâæâSt¦>= Ú;/,ýeÑT)¥¿¶Yo5ûå¯/Ôy«vâãW[ïµ7Nw£_QÅÿÖlXÊ+>ê¤W»ç!t&èÊkÖj]B²ƒtàÚuN=^Ø#tA^ÆÄÿñÎZçU&)?×ÿ¿æ›rŽŠ¯íÐñÓ×:K-6´˜a˜Ã ÍçXçÌUß~ž#å§çjò `úJó:Oe•Á èë®ÀÖwÑTiîè4ÙÔgØZ¿ÓurkŸ|.þüÉ?œŠg5“ÎOìH9c!WÀò з4`@ "3#3_TS}ñ§•ì™E\yuÖLãá1»T¯ÿ¾Õ}+§×D¨öƬ™®–1»¤”NÚ3¼æþ÷_¾«éIËÿÜ6}ùŒõÂÂ^·J'N=ü}’g–êç$ º2Çölœ{¶EÕF¤½Ò–š¦ý^çzƒ¸GsK_[Û$›µº®öó¸°^|Ô³QËÙM/tì0r¤õµwKà³xú¯ø@i©=¥¸M²]ÛW˜c¡ùÛ7ȽÝÖŽÀ•W}ží ty‹9Ð×]ñð˜]RØt=¹éÑqèÐÖ6N¿Þó富çÖ>ù(|r¤‘ý¾±û qŸ›–àðéŸØ]Ým×,ê<*™]ä‹XwÉ/ô-Ђ4Eš¢¤ù+öjµ$,”¸Rj¡—ç ÛF^u³¾â÷k”ÔP¦Ò™úLôÀ+žÏíÕ 5û ²0áÔ Ûª J-KzNn«­§¦I'^X?,ô¨¥HS”4§3@WæØÛMøçs)¥/ŸãÞ¸æÃ»šÿ›±IË.÷¶õjò$}ŒÔÞûÛ×"jcBbÀúK%1ÇBó9¶Þʆ†Ù½ƒ\HïeF\uèÞ…7Cæ3Çúº+¨›˜}P욤³©30kšs¹›æóÏ„+†wÖ(˜39Â.Jj{<±#包\ëy‡¾¥ZðtÃÓ ÊW<Ç¢ÏæV÷Ó·WÊGÇN´rzÅ»Uì|í|Ÿî '!ˆ~xÅdzþzÕ©ZÕ¥­k5_s'T~pŸÍÝÆ§¿â‰J✤'@WæØÆVnß#Ðôå‡9i}íÝÆ±ýïåÖsj:òá°:{ôxÙèRÇ ÷wµü¥ï;m &O]zqTßÚQµK.úí•`V{]D²3s,Ê7ÇFi8 peÔvãz¥¤0Çú½+˜håTMjûºõ ¬®†Þ±Üþô³Ú¦7šzófýßë¤æ¬ëҤ˵¯Æ71Xpøð±nC¿œPú«¤¶Ç;RÎXȰôéOè[0 5í ÚçžT=&òÌ<¶;ºèʇ*ëJ|¸™Ct€—êÝÞj±Õâź‚èÕ>9Ülõ²/Ý}ή4kžYl²£‹êÝg#ݺ8Çš¿™'µ¸ìXWš¡oéj4åóŸÀ‹òͱn½#ЦwÒÅ‚–rç“Ô˲s,À+vMº¸¯“ò6OìE9c!oÀÒ¤Ÿ¡oiÀ€Ö„·o]¸TõÈ8´Ïa~À>] €u¥YÕ¡ ÎHõnß©y§¦Ân„ úAµO†¬²4Š3"²Õn=´ouŸ€}ªw[œt#èâk4böïç‹¥¦êbm–ÕÓ=Ë›9å›c <XÇÖ%²Õnu«±uz s,À+vMìÜ´[Å^”3òF,„¾¥ZskÚ­i cÕã£_›×¥ÌfàÓV͉˜6ü¿9ج_³~O¢•ÉÊde1݈—’•ÉÊbѪ=“qÌs¸ Á­¶j¿6Æ·Sf«Þgq6ÒŒ ‹sl“V]6ÝÛFd«­ÚgÿÚ€ähæXT|Ž 8òÉ·Úª‚Mú':0Çœ±ï &„ waÿ¦­*ö¢œ±7àªEè«0 =/”/”ÊNæÌsƒU”gǸeì«x]gcå«z‡¿{úÝÓ¿hC¨½¡Ú3ël®„ÅÜV¼Þ8»¿«ËQÕ;,ÎCq6twŽí=#txª?ñmÅëÇ&4½üs,*>Ç [¸=dÁmÅëg-= ~ó}5A hÙžÎ{:¿(V=\f­6v‹YÃðW‘Zh7ù¾] uÇ÷Ãô‡éŠl:ªDo¨ëœB»S_ÛÕ Ä­HµÚÕ5fê½ç!º>Ƕ9ggzãñmEªùÓa‰ç˜c¡Ý9vcº•Ù4BÜŠÔ¾«Ýûoýs,Àûª]Áäûv5ØÅU¤Š](g,ôð›Aèûº€-+0.0V©;nî~9>gôDFÀòÕèîÖ}BV©ÞUŸ¹>sŸï¢÷P6Ñ'ªýÝ}q~È*BÜòÕ»_º:z¢ºOœ‡ôÈcŽ5µÊ0å(Qnùj—Õ^.½Å íα#/󜿷|õó±'¶ØVgŽ ~W`Ý'd»¸òU±ÿ䌅þ ®<„¾A TŠõ5Ö×( P=z&úwmu`#ƒàëÖ¼úáŽþêôëq×ãïÓu(›èu]”W?v·£?îëÖ‰þÆبz?ÅH×€œæØÖ-¬~¸](÷u«Ylø™¤æXTÞ;otRËOt_·šd~ºhÏ{̱þ×®À#ÜÑŸ½ÜëV±ÿ䌅þ Ö.B_m!*ųGÏ)Ǫ;Œ2>-öqgÔ¼L3±ßªP½“Þ­¼[=_G¿As¢gT{)`Ú„…[ºš×„ŒÍ/|Ôaâ ¤ß@~s¬±ñ¢¢³×ˆu5¯íF9_dŽEåͱVNžg¾{B «yõŠÜé9.…9€f»û­ öršW±ó䌅¾!®8BßÊ@ T¢˜ð˜ðûÔOù'·ïÌhXvMÚ=r—wmu÷ð^ô½hÅz: š=£®£’vGOó®M¸[vÍ?çhßYÝ=çòžcÍ¿ßðmR=Âݲ«qèâfg¿aŽÅ›™c½ƒvåŽG¸[výïŠÔ'æ?0Çxý]ÁÈ]ÞµÙÑ•]Åž“3ú‰¸âþxðÇ¢I„¾ÚE T"…‡ÂCyÇh£ÑÆÜ"Õ£Êw€qTL#Du5××c¬ã=u}ÄW_î¥ÇP>¢ÔuW®ol7Ç{½êªï×;1Tï›8ëĹG€¼çØ6Ïí¢oð<`õû¼9|JÒmæX¼ù9v^ÄP˽êjß,÷Œè`æXåÝxŒu¼Ç¾N]{NÎXè'àŠ+q*qRfúj0Pé.ç^Î-ITûpÃmn-dL,]G¦<¶6f×ÑùÄRÕ;f°Â`Eî™’1%c”tÊ9RŒ)£Ì½¤ÚcÃì4=±TqäL¢µ!qoé3ü«eA Õf⬣»@æXƒÜé2³ˆ{KW eäŸ %Í¿3Ùr÷s,ÞüÛÕ`Û¯]Ý=obLÜ[º:·Z9jN3æXÛtt>±Tì¬ØÝ•®b·É }F¬-¥ßLè[qÀÀy:òô‹wÕ Cñ¶#vL»ËÈ(ê¦éQêîÕN7:)jÓQ¨8ÑKê:maϤ(B_Qãm#{N»«î^‰óŽýœc{,Yp.ÇèWÔö[G4¹¶†9U;Ç\>mFx ¡¯¨ž˜í¾’9€öv¦éQìîDûLÎX€ÒD ¼))Êe±›·›÷³"uƒQZÁèžÿÖçÁqå3Ëk–©»?Ž8^4’V‚v‰¾R×u+ŸÍþiÍ2}Ž~Ó ¶Å{þ[Ýýgš8ßè%Ðç9¶ç„%Ò³õ9úíT{ÜÕË̱Îëðî¼ÞË.êsô;uÅÞ`ç÷˜cTήÀrÆšeú¼Á;LÎX@ †4oTþáüÃÊÀÜ8w•º!)©åHo= ¼&² uê÷ÙZu÷d¹Ãr‡>.•Hô˜º uòÛ¼ÖGY7ÈN¢ß¤–[нýÕÝqމ3þæXQý‚NžÑ£è×"jcBbÇc^1gŽ…4çXû“Õ–ß Zp!­—¹þD¿Þ»Ǧ0Ǩü]A¿ÏÖúˆ½–þìñÄÞ’3(ÒD TãcEšºQIÔC÷V,—÷ÈXl6åíÁOýfõ¬»ÃRÝ}˜™73/ÿ]ååeƒJtDyDY$úM]7úÍ›¾Ã²Ø,þâà§òŽ~Ý[í°¼ì3Jœc40ǪV£q³ïœ*ógýoèÖ¶›½Ëå̱þÛÏBÊ–ð…3ö›¶“wôëÖ*"múPæXovWгîK±ã’÷Oì*9cUÀ&` Êdùeù)f—=6}™iñADuEž×»ÖïÊid¼oènóé™>9­«¥û©ûÞ½¼ž¯RÌTÌTÞ¥[ðfˆ~½§®3ûät O÷»oøó‘OÏÈ)ôUä)´~÷ËÌé+#ª—}.‰³‹næØ²ÿ}ñ‘ã˜QW-ú~©Hx&§è·O5“Rº4úqûC˜c¡[sl» ÇS¾™Ó4n—µ‘¬¢ß·Ï˜T·ÙùYÔª'̱ªnWкZºŸØwÉiƒ'v’b?É ¨C i"ªØý>÷û(¢šE7‹~²CÝÕ#¯Å´ Þ׌ q-Ôùßôu˜p£ì‘qÎñ9ÇóƒŠ å:Uð£]†"Cù@ôáÿx§¾ïêê7t=ú½Þà§³®…=òº´»à­î;g”8¯è€æslÂöç³'ônºâ“Ô£ºýYÏÞx¡s,ä1ÇŽÏŠ˜>}—®G¿~6Ç:þ߇†OÎý›9€”v“nèúOì!ÅN’3(0¤‰„§}ŸöUZÙ;Û;?=Rö¹bZ¿–ëjMñÜg³TWFÆ›Žã\\<†¶û(ç¤kÙßÝúôõé…K” ¥‚ž@Õÿl§T(•¢'ËîÛ¡í¬zœt½é¸?ÌÅCWBߢ)ñ=l–®˜æûh]Ͳ¿;q.‰3ЦTdŽí8Áõç+n®ße&.ҕзwHèw©Í'õzœõs,ä7ÇFôþ­îgc~k5d˜®„¾ ‡e¼czÚ~d€õŠpæXÒÞ|”sÒUìÄteƒ'öb÷È hŽÒD Hi† V+³–}³ì›‚½eY¢nµ°ÞøÅ¹üƒ“‡Ûw–ÚÈx×q|æèe~^=kí¤É÷ggRìH@šDjÒÉ~^cv ºëxè§ÑˤúæŒjßy«Epüç4ù^ÄY$Î%z Ý9¶Ë)ï•3Í¿ßðmR=©…¾¦ö«j¤Äµíj?òF(s,ôgŽíç7!~˦ÏûŸøÌÖXj¡ïW¤>1ÿa”É×çe2ÇÐÍ]AÏZ;^îʤ¶Á{E±cäŒʇÒD HÔ™†goÔdð5ÄÐ|ê†^Ùþ^U#cℑݼKF?él|¬‰&×<âÏ>ëŸÓ"§…"•¿qHŸèUÑ·štøè'6 5Iœ°eŠwIU…¾Ùþ¿ü2âzˆá´O6ôÒü<çã€73Çv(ýéÕ}l¿é’\XU¡¯±cÐг§[62·¾³9̱ÝÏÚÿv¸·×­WƹWUè;çЩß ¾á×o9s,yí :k"vhUµÁûC±KäŒ*ŽÒD HZþ²üeJÿ/}Ѩ`´æY« ~¼ÛsUOË5ãÎG:¿5q¿vÇÄâˆ)ïþýýá f>˜åk<O>ñ«Ó·³2cƒÚû:tÉaYÀº-ùÖmCŽ éóí¦‡|Ó¡0ΰ|ÿ¿¢†· oY¸´À©ÀIÌß&dòóS“2XôvE^C¾±ìg4ÄËwÓ[òŸ9vèÒêÑëbƒ¿ýË÷Љ_#®ÎÊü%n­×çÉ16_- Y1Û÷Ùº÷Üž;ºšÔ¢FÓÞYûË÷ÿ+Îq¶ð· ò[7¬Ñã‡[mîßþ¶wG×ß®Œ7x<Ý<ó¯nÍ瘟wéþÙ¼9笻÷ž{䜿‘ËìËçŸw ñJ¸ôA‡ÿ|:þZÿfY='fy3Ç•1ÇL`[kÐò†ëß¹aY¯ùçÝGÄMwõ8°%mòùIvÑ&ÝpÏßôž£sÓ•ŽsÚÚ;8¬XÕkÛð©{_4ìßôÚÝó̱8cÕï :ÆнœØÑ‰}ØÝ‰=žØé‰ýžØõ‰½ŸØrÆo0¤‰ÐI·vßÚ­è='uNjþ⊌’•]£-¢-^X<ïö¼›Ò¿5È›èsÑóR~UŠsCœ!ü­˜c™cæXàŒåŒ*‚ÒD è¼üøüxåÜC_úºÈÏ6Ø6øiDU ‹~Ž~ŽùÓÝÓÝKÚð÷ˆ×‚x]TÕ«Rœ â|g/æXæX€98c9cm!†42ôüìó³Ê©‰I‰IÅñ_ç_ðG¿+ý®äimLt>å|êYdôÂè…/ú_ɼ’YrIY¤,â¾e(R)•âõ"^;âu¤­W¥x‹×»xí‹s€`ŽeŽ˜c€3–3ô 0奢KE%;ã:Åu*v8å|ʹؽЩÐI¹†;Tñ¯GñÚ¯Sî ̱s,pÆrÆÊF 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2ñÿ ËF¤&ØÉÑ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/repeat.png000066400000000000000000001342501431412030200246560ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìýwTç㸛˜nCì ÁŠ,ØÀ h4–Ø{ ÑhlXŒ={‰ØP¬±aPw:(±E±cTÔØEQ÷ùcò=ŸYÞ(m®×ž3''‰³3÷Ü»{1;¹ÌCÈÅ€1€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€‘}33;s,æXLðâàÅÁ‹O©§ÔS*¤Ýs·çnÏÝŽå?–ÿXþ !B&DùDùDù02d/`d±;…ï¾Sø÷¿·ø½…———OÑCE=d“fÎþÎþÎþ¾Î¾Î¾Îj¢š¨&>{÷4Ž1GŽÏœÏœïò½Ë÷.ßó»îwÝïz×.®]\mÒ‰g¨g¨gè²’ËJ.+yvÐÙAg½±}cûÆ– k€‘©"§DN‰œ2K›¥ÍÒl²HÝêu«×­¾í̶3ÛÎD׌®]“ã‚ìÿÒ2Gš#O5;ÕìT³a«‡­¶:«^_]ët­ÓµŽ!FˆñKã—Æ/åàÉ_)=ôÐs# #€‘â¯Ä_‰¿r(ìPØ¡0ǼŽyóÚX¥þ/ú¿èÿâBÄ…ˆ 5dÏ|žù<óYSmMµ5Õl¬ØÌñ3ÇÏßå¾Ë}Žr&0€ÌDF:KÜœ¸9qóÞ¼{óîMSîmþ¶\@©“»ÖßìXè·zýœ¼´ëM“ï~ý ÁGZ¯Nç,öv ªßvOD[§:ÑË›»×x0l‡ów:T9\¯ȵ÷{^³‡ÙÃ|¡ø…âŠs4ambgÅΊµàå‚— ^¦åõÕÙÍ}CÙ&³VŒÈ]u½ø,7ç»A—Û¹ÔVέ­Ô ‘:zíÆ}œ^±ÍeËö©sKÖ>2Þè]Õ^ö™Õö–C·¢KŠT.8÷ýžw̺1ëÆ¬{°éÁ¦›8šÈ9À2é&ìtØé°ÓöËì—Ù/{‡«o'ÔØX.×áq*¸t{Þ}Èþ–ÃÍæaÃ<=Óky}cŸ„&¦ žŸ9ýå²Õî»â¡©ß6¯-^[¼¶<|ø8ã‹,ãnv7»ïݺ;ô]ƒëäϽqüðÏ67¼lv9Yó¸Ù|ò¤§gz-ÿ ø¢ñóŸ¿uªZ íÛ¶6©ß¶åy–çYž'>|þøüd@f"#MânÇÝŽ»=±ËÄ.»¤&ù¸´Q²£pº£Zÿëô ½©_¾.8ô¼{àÚ:-oÔòM}¬Úÿhÿ£ý8âÈLw¿¸ûÅÝ/š/o¾¼ùòÔÌÒoÔÎeÊÎ>Î>Ξ9€Œ´)hSЦÔTß[Þݪ,|¸èèéæY}--c[ªëZþ¶úÔ”ˆZµR³/kÃ׆¯ 7G›£ÍÑÌ @f"ã999¦rª.*ñ¤h¾ð=F7~cmÑ×â2a˜·§GÀ”ÖáµÿÇ•Áv íÚ5¼sãÎ;7˜H75Í5Í5çìš³kή”gà€„Êõ¼ß÷H‘æU¬-úZZ¾ô îæ^Ö×ÞK¬2(å½øýÀï~ÿºýëö¯Û3)` `™‰Œwàçâçâç’r¼Yë>§Ö³÷0gÏ Ù&ý&[>i<èd‹½7V¯ëP>åý½ðüÂó Ï™H‹øÈøÈøÈÁÒ`i°”ò|Ó*­«Õ`vv‰¾––}vq³+_2¶P=K{ZϹžs=ç˜U1«bV1CÝ€d&0Re醥–nH9M]®Òë¹›oö¾––?´>W{zÊû~6àlÀÙæ ÞU¼{¼{¼{§ØN±b-Í®Ž[xØ-Ž)(—nq7»§ß¤Ëø¨Ðå=|œ(•ûZÚwû‘ö#íGF‡D‡D‡0[}€d&0þ‡5ÖzퟶÚþ©9ÎgŽcŽÁš€ÓKÇB u,ôïÄ` 0̯å×òkÙR¼Ü±áK¿Ú $Þÿ±üf˜“gùÖ×*º”¾“| §íš¶kÚ.fZÎy5òjäUK¯¯«ë~ïÜ$¡7ååÓ…Ò¡Z¼Îþ‚xA¼ÀLƒ5#gÜHƒ€äÀ0¯ó]ç»Î7ùG¨Í/—[Sª£yɰfž5H¼©YÞ èÿºÙKIßò¾å}Ë›ù–Ó´+Ü®p»ÂÉçÿñßÕèFÜMýòHøŠ.þ–^_ñã/Æ_d¾Á:€ÓËÁÚk¬m“jÄ`äLàíEÓM_4µô±éõ"}B›¬#ë¾ër¥g‹<5'ÏÁê`u°Ê¬Ë9—„/ _béõõúò±x÷[dÝwXFŸ=[xvi4»tçä㹧{ê2ë`Àé+!"!"!‚ XBÎÑüÌ~f¿ÿø`zLhÝs•ú‘rßoùÊsè<÷9–>€¾ÓûNï;½™{9A»ßÚýÖî·äs hó².•ºï·¼¶û¾›Å뀇'OÎ܃µ!gb08‡JˆMˆMˆµôÁè?ø¦Y)7-ËÍ÷[Ù9OL>¶¾u}ëúr¢ÁEŠ5*ùÑ/¸¬`S¯Ä''jxüEÊM˲K e§$áàOƒ? þ”kCΤsb0`6› À9VhThThTòAV«é^n0ù6íË—M¾9înkñ뇾úz(óШf…Î ú_S\n¾Xç8ù6íËs^ÿ¸ÖI>Âm^¶yÙæ%3Ö†œùˆÁÈÉÀ9T¿Ð~¡ýþ#PsV#ߦ×rê§ ÜÇ'gÍIsÒœ˜‡Æ“Ø0±abCKiáåøà.îvYM¯¶û½ˆ[|ÒíÉÆxöÉžÕJ÷+±ÏöRòqŽþ,ú³èϘ°à¬E @NCÎq^m|µñÕFKw¾ýÉûªÇSÂmz-¯í½Ã-:ù82 „Ùh<v]ØuaWò#>bvï ±YM“àìž7®œþØ)&ùí ܸ7ÙëA¶Ä`äà'lyØò°åÉ?Üœûƒëýj$Ût^¾½c<-} %þJü椑̿=ÿöüÛÉõÉ¡›¶4BNßå½—‡CšÿÇ­w¸ÔáR‡KÌFX°u"À¨À9ÎÜÃsÏ=œüÍóo{u]D²Íˆåä…õƒí“ydûÈö‘홓FâXÀ±€cäÇúÕ‡!óÝ'€Óyyãä~ϦEÌ…ôú_°˜?3~&sÖ€lýˆÁ0pŽãÜ̹™s³ÿTW‡ÊîÛ‰µ± ÞÚ¹CƒÈäc¾Ýu»ëvWæ¤1Ä‹+W,ùQv­]û×’Ÿ[C.5`6Ÿ<éé9ÕcÈÇÉ÷ëæâ›‹o.ff€³b0²;p¢_—ü#Ëš‹J}[4ÖÚ¢é½I¶5{1g‘ëâj6Ý—VÝgß ö2Ÿ{Rl•íõ‚ZUï7Š~ä®”ÿ½Ô«EE›ö­®=±¤´pµÎüØaР¹“¼÷>ï}Þû˜™Æp-øZðµàäGyaÁ1[«Ïµæ|æÃ­M×§UÛý­+hö- ÅV‰-¨Õ9[ý‹â¦Õûf‚ãá'vBX Wë ÀBàªÇõ¿J¾_A‚ `f€³/b0²#pò@y ˜™i A;ƒvíL~”ÕÑk76èk͸H`á)»§üʪxÐÞ\86"`Ç×@k ÀQ÷Ï6}œ|›g?šýhö#f&¬ØˆÁÈ.À9ȹçvžû@0£uDퟬ!”¾ðÿfaËè*KÌ.rZß¶JþÅ'©ºä~³á5††lï¼·añóôlëú£ûutƒÏ|_7*]e™~MðÿýJ[k¼¸¦©±E_ÿ×ð–,Y²dÉ’ÿú"âñM‡ZsÖé_¤|´ÃÊ|.ʾ» ÷ÖÝ8ªx¯o+Î+øÍ)ϤÿçÛ2':y\¶ž×$8Æý?®îúq×»~ÌÌ„5 1ÖŒœƒ ;v4,ùǑNjwiØð[kH¤zÖÕ·ªà3Ífڥɽö»õ°wÿãšÚðb# ϱÎÜߣÆ"‡`£YvdÙ‘e“ßg}û–ÎÖ€m£l=lΫfׯ©ÿ?Iï ¬ÿó®æ?{ÔéeÍw~{ôÄiÄä[èXÒ±¤cIf&¬ØØˆÁ°6àdÛ‚m ¶-Hþäå½î»M¶†D:¥‹Ððè÷ëN¯T}®¯ëýjž©¹¢7y$¶Îë€øªaÇW`£êÞ!¼Cxòãû¦ûñ~îfë Àƒ";^.’š ›ôOµêX¦‰µ}t±QE" áõëDÎ9ˆÁ°Y€m`5nuî×§éRë¼j6å”›XÝ»Çæ¥Wš×XoýxÑœ¦sªG2ßršÄé^ò8dXŽ]3±Ág©ù³AÓ–]r±û_Ìîp´HUk»¸æŒÊQEc˜o²¯NîÜ;¹óà Ҏ ›;_õŸØ¬‰uà§¹k±]*ôµkýµ>ñØå´êÇb ½«Tê1£ZûQeíŠì,äci¿¬m_V´m¾»fUæ[Nó¶Ó‰)w¬3G…6MÕ¶]·ßצÉoÖüEÐ.ík$?È|}U ªT…Nv`XÝÀaÝ.6þ°cžÊQv³l£ –±9`iËëœ-3°x…j.(·Èú0WçLÖ|ðëaǶ¸ÿ™š?7'¤š{kÀ\ »ã `¤—, ÀÁ¹ydöcúîé»§ïNþ£µÝ¸Ø*Ûë5}Ûœò—zS¬ÍŒS«Tu ÜÑîh½)‘µúŒiâßÖk»‡‹þ§®¶ë-ý߬eØÒ=€™™Æx4½Ùôfӛɯ5ß8õWßxvÀ·i ýO:WèC›Ö€-ݘ™ÉÃÉgf«¼­ò¶ÊËÈï¡lV6+›çW™_e~•Ô§ß&W›\mr•{ ½äbrŽ£aGÃŽ†%ÿØñxñ. ~k ‰ô«Ö•¦•Ù©oÕ ÈšwÊ…¼-ã}ÈãrÊY÷JŸÞ߸…XîïQc‘ËÿÚNÁȲ#ËŽ,›üø>ë«Ø·tÎî÷>Úae>åÿýZF•âÅÚXO~{ôÄiÄä#ïXÒ±¤cIf&¬AòùÙs@Ï=02Æ‘‘q°öÁÚk§>ú¶×~\ûqD_dprnç¹çv&ÿ2`FëˆÚ?YC"-ݶ°Ÿíy}«Nôí:º‘cjþÔÑ"þ_š²æ\Ó¿ÔØ¢¯ ÀFµdÉ’%K–$?¾7ˆo:Ô:ð ÈŽ—Ë…¤æÏv_Ú:·}ƒÃÕ¸/§Úû[OŽkãþUò‘ïúq×»~ÌÌ„5 ÑÖŒœƒ¸|03Ó‚ví ú_°PG¯ÝØ ¯u`Û([›‚óªÙõkZúS»šÿìQ§WÒ?²Ý¯RÃâÖóåÏQ÷Ï6}œ|äg?šýhö#f&¬Øˆ¾È.À9HüÌø™ñ3“4YsQ©o‹ÆZC(õZâ´µ|„¾U1Eƒ —Ür¤Õçm·Î÷[Ðô÷ûÃæj^=d{ç½ ‹û¾nTºÊ²âs Õ/øÆÒG®Ö€; Ôâ?îé½Ï{Ÿ÷>f¦1\ ¾|-8ùQ^XpÌÖês­3Wòw8Z¤ªþÏÓê}3Áñ°©ÙÊ?]^]\¥^þQÅ{}[q^Òÿ¿ÍP·À2M¬íî¿BàªÇõÿã à A‚ 03a ÀÙÑÙ8ÇqnæÜ̹Yò+_]*»oÏÚPúÈmP¾æUõ.q£èG©ÿ˜õò·½ó¸-*^lDá9Iÿ}Ûî•Ê—o 8xkç "“oùv×í®Û]™“ÆW,®X\±äGÙµví_K~n88hýð7K/^ÅÖ+åWY­2޽‹Ž lzÇÚðT!Ggü×—oß\|s13Ö€œ½}Ý€sœ¹‡çž{8ù—çßöêºÈr©¾=Ó4_åÏ&Õ—œ¢ßX_¶ø»\B©ù«¶˜Uswbuï>›“î…Kõ*ìn»~øç&YÃM^X?ÈÑ>ù˜G¶lÙž9i$Ž 8ø_°ø0d¾ûDk Àú¿×ÿy@|‡åzTÐì[Šn-R¿à/uÕêÇŠ÷žqjøúª.σՆ-²¶ôk¾qr¿gÓ"æÂ þGÀÖ¿ó€9 k@¶~D_ 8Ç [¶Ú.u¸Ôá³Öƒlˆ¾0*pŽój㫯6ZúXóíOÞW=žZO@ÍîË«E{ïp‹N>ÎB„ a6Ï…]v]Ø•üˆ˜ÝûB¬ufÔì»Ü¸rúc§˜ä£½7poàÞ@f#¬Øz}€s¨~¡ýBû…&ÿˆóœ{ŵá6½–S?màî8>ù8kNš“æÄ<4žÄ†‰ ZJ/Çwq·#ܦÃröÉžÕJ÷+±ÏöRòqŽþ,ú³èϘ°à¬Eô@NCΡB£B£B£’Ü9°ZM÷rƒ ·i_¾lòÍqw[K+¿úzèë¡ÌC£š:+tÖü‚ÅžróÅ:ÇÉ·i_žó øÇµNònó²ÍË6/™°6àÌGô@NFΡbbb-}úÏŸ¾iFÄMËróýVvΓ­o]ߺ¾u™Æ5*jTÔ¨äG¿à²‚Mm¼Ÿœ¨áñ7-Ë.<&”’|„ƒ? þ4øSf ¬ 8“Îmˆ¾€Ùl&çp~f?³ß|0=&´î¹Jýˆ¸ï·|å9tžûK4ßé}§÷Þ̽œ Ýoí~k÷[ò9´yÙ —JDÜ÷[^Û}ßÍßÒë+qxâðÄáÌ=XpÆ!úÉ€s´M_4}ÑÔÒǣ׋ô m²Ž û®Ë•ž-òÔœ|<«ƒÕÁ*³.ç_¾$|‰Å¯¿|,ÞýA÷–Ñ'EÏž]Í.Ýù?¾^»îžº{¸¶VŠœ¾ˆ¾@ÊÀ0¯ó]ç»Î7ùG¥Í/—[Sª£yɰfž5Ⱥ©YÞ èÿºÙK=ßò¾å}Ë›ù–Ó´+Ü®p»ÂÉçÿñßÕèFÖMýòHøŠ.¯ý¿1þ"ó Ö‰œ^ˆ¾@j€a~-¿–_Ë–><ݱáK¿Ú ÄÝÿ±üf˜“gùÖ×*º”¾“| §íš¶kÚ.fZÎy5òjäUK¯¯«ë~ïÜ$q7ååÓ…Ò¡ZCñ‚xA¼ÀLƒ5#gÜH}€äÀø—ºAÝ n°ôqêßEúVnrÐkié—èñ¥SoK£›/6_l>æXN6sèÌ¡3‡&ŸvK¹jýêű/Ý'ôþÇrËÉ™žÎ=Ž´~h?å?2ÏÓöOÛ?5Ç™ãÌqÌ1X3pzéX¨c¡Ž…ˆ¾@ÊÀø?¼y5òj”ü£Õâ5 -x÷ÅÝo¶¶|KîMº<Õ´[…F+,^›øH|$>b^áÕÁW_´4O†Ÿë^¸ÂRó[¢ïÿw¹êâäv5EKãvÏ÷žï=_f¬8½<ýtôÓÑD_ e`ü±Ec‹Æµ”[:–¨|ßnnB¬w+•¤ß›¥ûÞoú•¥±;j쨱£˜QHêüÀóÏ´4gV œØ¿f-¢¯¾<\yy_wKcuÐù óAgf² 0€ÌDÆ8ÿÝùïÎg)½xmsÚSþÊÛ@ï'ñ93ýþ³{@ïfÇ-O•mU¶UÙö:ìuØë0æ’Ûo7ä÷–ÞÆN¿g·ô¨ÔøtÊé÷ržËy.çaÎ 5ÃÃÃ{ºõtëéfiFÍÞ3âFÕÈ·‡OœòH0vú x0g{íÕ–Æ¡ÂÜ s+Ì]»(v3Ù@f"#U–nXºaé†ÿ‘?«ôzîæk¼ôðCësµ§§¼ïgΜ `žà]ŻǻǻwŠíÛ)Öâ½··ð°[SP.Ý⮑¢o|Tèr>ΔÊ}-í»ýHû‘ö#£C¢C¢C˜-ȾÀ2ïÀÏÅÏÅÏ%åº.Ö}N­;fïaΞ²oô}ÒxÐÉ-zo¬^ס|Êû{áù…çž37ñ‘ñ‘ñ‘ƒ¥ÁÒ`)åù¦UZW«Áììž~/úì*âfW&¾dl¡z–ö´žs=çzÎ1«bVŬb† »#ÈL`¼³ Ç Ç Ç”3UÕE%žÍ>¢ÇèÆo²MúMæíé0¥uxmß”÷ή¡]C»†wnܹqçó馦¹¦¹æœ]svÍÙ•ò Ða@¹ž÷û)Ò¼Jv‰¾/}‚»¹—õµ÷« Jyï~?ðûß¿nÿºýëöL @f"ã=] ºt%È&Î&Î&.åœÓmDÕ–e_^ÉÝÛÝmŸµEß„³Þ<)Üa€ËäÂí úü8å}ñï5Þk|œ}œ}œ=s'hSЦ M6©à{Ë»[•…=Ý<ÀÚ¢olKu]ËßVŸšQ«VjöemøÚðµáæhs´9š9#!ÈL`¤IÜí¸Ûq·'v™Øeb—Ô·‘ö/JvNwTëUÑ÷uÁ¡çÝ×Öiy£–¯Mªí´ÿÑþGqd¦»_ÜýâîÍ—7_Þ|yjfé7jç2åGž+°ÓÕ!«¢oTÀ–Mƒ§þ0äÇÅ©ÙæbO‹=-öôüœósÎÏáˆÃ¨À2é&ìtØé°ÓöËì—Ù/K}Xí?¡ÆÆr¹ëPÁ¥ÛóîCö·ž¾¹÷úÆ> ML?ÆF™ÀHg‰›7'nÞ›woÞ½ymÒ ùÛr¥zLîZ³c¡ßêyôsò<ÐN¬7M¾ûõƒi½:o°TØÛ1¨~Û=mêD/wnî^ãÁ°ÎßUèPåp ¿"×Þïy=Ìfó…âŠ_(ÎÑ„µ‰;+vÖ‚— ^.x™–×Wg7÷ e›ÌZ1"wÕõþá³Üœï]\nçR[9·¶RƒFêèµô=rzÅ6—-Û§Î-YûÈüy£wU{ÙgVÛ[ÝŠ.)R¹àÜ÷{Þ1ëÆ¬³îÁ¦›lâh"ç ÈL`d ø+ñW⯠;v(Ì1¯c^Ç4%áŒÓÿEÿý_\ˆ¸q!‚£†ìâ™Ï3Ÿg>kª­©¶¦š›9~æø™ãï»Üw¹ïÂQCÎD™ÀÈT‘S"§DN™¥ÍÒfiY•£êV¯[½nõmg¶Ùv&ºftÍèšdÿ—–9ÒyªÙ©f§š [=lõ°ÕYõúêZ§k®uÄ1BŒˆ_¿4~) ÈL`d±;…ï¾Sø÷¿·ø½…———OÑCE=”öåìïìïìïëìëìë¬&ª‰jâÓ¸§qOãsäùÌùÌù.ß»|ïò=¿ë~×ý®wqíâÚÅ5½B¯g¨g¨gè²’ËJ.+yvÐÙAg½±}cûÆ– k€‘}33;s,æXLðâàÅÁ‹O©§ÔS*¤Ýs·çnÏÝŽå?–ÿXþ !B&DùDùDù02d/`00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À`™€ƒsçÎm9†ÞI Àí€À r\Öÿ}ðÁœ+8Wp.í­öV{«%j‰Z¢¯ÅkñÚíöF{¥½Ò^iqZœ§½Ð^h/´X-V‹ÕžiÏ´gZŒ£ÅhOµ§ÚSí‰öD{¢=Ökµ‡ÚCí¡ö@{ =Ðîi÷´{Ú?Ú?Ú?ÚíŽvG»­ÝÖnk·´[Ú-í¦vS»©ý­ý­ý­]×®k×µkÚ5íšvU»ª]Õ®hW´+Ú%í’vI»¨]Ô.jZ„¡×Îkçµp-\ ×Îjgµ³Ú_Ú_Ú_Z˜¦…i§´SÚ)í¤vR;©ý©ý©ý©…j¡Z¨v\;®×B´-D Ö‚µ`MÕTMÕMÑMÒ$MÒDMÔDͤ™4“vT;ªÕk‡µÃZ¤i‡´CÚ!-P ÔµÚ퀶_Û¯í×öiû´}ÚïÚïÚïÚm¶GÛ¥íÒvi;µÚNm»¶]Û®hZ€¶UÛªmÕü5Í_Û¬mÖ6k›´MÚ&mƒ¶AÛ ý¦ý¦ý¦ùi~šŸ¶N[§­ÓÖjkµµÚjmµ¶ZûUûUûU[©­ÔVj+´Ú m™¶L[¦-Õ–jKµÅÚbm±¶H[¤-Ò~Ñ~Ñ~Ñh ´ÚÏÚÏÚÏÚ×>×>×>Ó>Ó>Ó>Ñ>Ñ>Ñ>Ö>Ö>Örk¹µÜÚ‡Ú‡Ú‡Z.-—–K5«fÕ¬&ª‰j¢š &¨ êõúF}­¾V_«qjœ§¾T_ª/ÕX5VUŸ«ÏÕçjŒ£Æ¨OÕ§êS5ZV£ÕÇêcõ±úH}¤>R¨Ôê}õ¾z_ýGýGýG½«ÞU覆ÕÛêm5JR£Ô›êMõ¦zC½¡ÞP¯«×Õëj¤©FªWÕ«êUõŠzE½¢^R/©—Ô‹êEõ¢¡F¨êyõ¼z^=§žSÏ©gÕ³êYõŒzF=£†©aj˜zZ=­žVOª'Õ“ê õ„zB UCÕPõ¸z\=®†¨!jˆ¬«ÁªNQUQ%UR%UTEUTMªI5©GÕ£êQõ°zX=¬©AjzH=¤RÕ@5P= P¨ûÕýê~uŸºOݧþ®þ®þ®îQ÷¨{Ô]ê.u—ºSÝ©îT·«ÛÕíj€ ¨[Õ­êVÕ_õWýÕÍêfu³ºIݤnR7¨Ô êoêoêoêzu½º^]§®SשkÔ5êuµºZ]­®RW©«Ô•êJu¥º\]®.W—©ËÔeêRu©ºT]¬.V«‹ÔEê"õõõuº@] þ¬þ¬þ¬ÎSç©óÔ9êuŽ:[­ÎVgª3Õ™ê u†:C®NW§«¾ª¯ê«þ þ þ NS§©ÓÔ)êuŠ:Y¬NV'ªÕ‰ªê£ú¨ãÕñêxuœ:N§ŽQǨcÔïÕïÕïÕQê(u”úúú:R©ŽT¿U¿U¿U‡«ÃÕ᪷ê­z«^ª—ê¥~£~£~£Q‡¨CÔAê u:P¨Tû«ýÕþj?µŸÚOí£öQû¨½ÕÞjoµ§ÚSí©öP{¨=Ônj7µ›ÚUíªvU;«ÕÎj'µ“ÚIí¨vT;ªÔjµÚNm§~¥~¥~¥¶QÛ¨mÔ/Õ/Õ/ÕVj+µ•ê©zªžª‡ê¡z¨-Õ–jKµ…ÚBm¡6S›©ÍÔ¦jSµ©ê¦º©nª«êªºªÔFj#µ¡ÚPm¨ÖWë«õUÕEuQëªuÕºjµŽZGuVUgÕIuRÔšjMµ¦ZC­¡ÖP«©ÕÔjjUµªZUuTUGµ²ZY­¬VT+ªÕ jµ‚ZN-§–STÕA-«–U˪vªj§–VK«¥ÕRj)µ”ZB-¡–P‹«ÅÕâj1µ˜ZL-¢Q‹¨…ÕÂjaÕVµUmÕ‚jAµ Z@- Pó«ùÕüj^5¯šWÍ£æQ󨟫Ÿ«Ÿ«Ÿ©Ÿ©Ÿ©Ÿ¨Ÿ¨Ÿ¨«««¹ÕÜjnõCõCõC5—šKÍ¥˜³bV•D%QIP”åòFy£¼V^+¯•8%N‰S^*/•—J¬«Ä*Ï•çÊs%F‰Qb”§ÊSå©òDy¢/Ÿ—ÏÉçäsòYù¬|V>#Ÿ‘ÏÈar˜&Ÿ–O˧å“òIù¤|B>!ŸCåP9T>.—Ë!rˆ"ËÁr°¬Êª¬êo²$K²$‹²(‹²I6É&ù¨|T>*–ˇå 9H’ɇäCr (Êäòy¿¼_Þ/ï•÷Ê{åßåßåßåÝòny·¼KÞ%ï’wÈ;äòvy»¼]Þ&o“·É[å­òVy‹¼EÞ"o–7Ë›åòFy£¼AÞ oýd?ÙO^/¯—×ËkåµòZy¼F^#ÿ*ÿ*ÿ*¯’WÉ«äò y…¼\^./——ÊKå¥òy‰¼D^$/’É å…òBy¼@^ Ï—çËóåyòŸˆOÄGâ#ñ‘øP|(>ï‹÷Åûâ=ñžxO¼+ÞïŠwÄ;â1JŒ£Ä[â-ñ–xC¼!Þ¯‹×Åëb¤)FŠWÅ«âUñŠxE¼"^/‰—Ä‹âEñ¢!Fˆâyñ¼x^ ÃÅpñ¬xV<+þ%þ%þ%†‰ab˜xJ<%žOŠ'Å“âŸâŸâŸb¨*†ŠÇÄcâ11D Côÿô÷õ¿äE ¢ ŠGÅ#âñˆ$‰Aâââb (ŠŃâAq¿¸_Ü/î÷‰ûÄßÅßÅßÅ=âq¸KÜ%îwŠ;Åâvq»¸] Äq«¸UÜ*ú‹þ¢¿¸YÜ,n7ŠÅâqƒ¸AôýD?q½¸^\/®׊kÅ5âqø«ø«ø«¸J\%®Wˆ+Äârq¹¸\\*.—ŠKÄ%âq‘¸H\$.Š Åâq8_œ/Îç‰óÄyâ\q®8Wœ-Îg‹3Å™âLq†8Cœ!N§‹ÓE_ÑWô§‰ÓÄiâqŠ8Eœ,N'‹ʼnâDÑGô}Äñâxq¼8N'ŽLjcÄ1â÷â÷â÷â(q”8JüNüNüN!ŽGˆßŠßŠßŠÃÄaâ0ÑKô½Ä¡âPq¨8D"‹ƒÅÁâ@q 8P ˆýÄ~b?±¯ØWì+ö{‹½Å^b/±—ØCì!ö»‹ÝÅîbW±«ØUì"v»ˆÄNb'ñkñkñk±ƒØAì ¶Û‰íįįįÄ6b±ø¥ø¥ø¥ØJl%¶=EOÑStÝEw±¥ØRl)6›‹ÍÅfb3±™ØDl"6ÝD7ÑMl,6‹ÄFb#±Ø@l Öë‹õÅzb=±žXG¬#Ök‹µÅÚ¢“è$:‰µÄZb-±†XC¬!V«‹ÕŪbU±ªXE¬"V+‹•ÅÊb%±’XI¬ V+ˆåÅòbyÑAtD{Ñ^´íD;ÑN,#–ˈ¥ÄRb)±„XB,!‹‹ÅÅ¢bQ±¨XD," ‰…ÄB¢­h+ÚŠ6¢h# ˆÄ|b>1Ÿ˜WÌ+æ¿¿¿??????????????????Ì‚Y0 o…·Â[!AH„x!^ˆ^ ¯…×Â+á•ðJx)¼^ /„ á¹ð\x.<ž Ï„§ÂSá©-D ÑÂcá±ðXx(< „ÂážpO¸'ü#ü#ü#Üîw„ÛÂmá¶pK¸%Ün 7…›ÂßÂßÂßÂuáºp]¸&\® W…«ÂUá²pY¸,\. —„ Âá‚p^8/œÎ ç„sÂYá¬pV8#œÎaB˜&œN §…“ÂIá¤pB8!œB…P!T8.Ž !Bˆ" ÁB°  ª  ² ² ’ :“`LÂáˆpD8, ‡„CÂ!á pP8(„}Â>aŸ°WØ+ìö{„=Âna·°[Ø)ìv Û…íÂv!@„­ÂVa«à/ø þÂfa³°YØ$l6 „ Âá7á7á7a½°^X/¬Ö ë„5Âa°ZX-¬V «„U a…°BX.,– K…¥ÂRa‰°DX", ‹„…ÂBa¡°@X ,æ ó…ù‚0^/ŒÆ ã„qÂaŒ0Fø^ø^ø^%ŒF #…‘ÂHa„0B! † Ã…aÂ0a˜à%x ^ÂPa¨0T" †ƒ…ÁÂ`a 0P( „~B?¡ŸÐWè+ôz ½…ÞBO¡§ÐSè!ôzÝ„nB7¡«ÐUè*t: …NB'¡“ÐQè(t:„B;¡ÐNøJøJøJh#´Ú­…ÖBk¡•ÐJh%x‚‡à.¸ îB ¡…ÐBh.4š M…¦BS¡‰ÐDh"¸ ®‚«ÐXh,4 …†B¡Ð@p\¡®PW¨+ÔêugÁYpœ'ÁI¨)Ôj 5„B ¡šPM¨&Tª UGÁQp* •…ÊBE¡¢PQ(/”Ê å„rB9Á^°ì…²BY¡¬PF(#”J ¥…ÒBI¡¤PR(!”JÅ„bB1¡¨PT(* …[ÁV° …‚B¡€P@È/äò y…¼B^!GÈ#|.|.|.|&|&|&|"|"|"|,|,|,är ¹…………\B.!—é­é­é­)Ñ”hJ4Å›âMñ¦7¦7¦7¦W¦W¦W¦8Sœ)ÎôÂôÂôÂkŠ5Åšž™ž™ž™bL1¦S´)Úmzlzlzlzdzdzdz`z`z`ºoºoºoúÇôéÓ]Ó]Ó]ÓmÓmÓmS”)Êeºiºiºiºaºaºaºnºnºnºfºfºfºjºjºjºlºlºlºdºdºdº`º`º`Š0E˜"LçLçLçLá¦pS¸éŒéŒéŒé/Ó_¦¿L§M§M§M'M'M'M'L'L'L¡¦PS¨é¸é¸é¸)Äb 1›‚MÁúÇöúÇuúi;8Sw2‚5ôP0¤0€A€ À ‚L``0ƒ €˜ À À`A&00€A€ À ‚L``0ƒ €˜ À À`A&00€A€ À ‚L``0ƒ €˜ À À`A&00€A€ À ‚L``0ƒ €˜ À À`A&00€A€ À ‚L``0ƒ €˜ À À`A&00€A€ À ‚L``0ƒ €Èfþ™ûÏÜæ–»Yîf¹›úÏõöì Øˆ¹s+æVvß;}/ô=Ò÷NßS}¯9úRF&m¼-ó¶ÌÛ2m»·íÞ¶{ÒŸë]TtQQýŸßsÕùÍùÍùµãÚqíøl¿Ù~³ýÚWm_µ}Uçhçhçh‡\¹r:Wè\¡s111µoÔ¾QûF¹‹ÜE^ÐrAË-ÃÂÂÒkO©ûKÝ_ê&ÝǯZÕú«ÖiÚG9˜ @¶1×w®ï\ߤ?ÑWÐ*h´þ/ü_ø¿ß:w×Þ]{wí†Nh8Á&]¥eOccc“^å¬ûyÐσ~ÄL` ˜ À;pWRzdÜó^œwqÞÅy…ƒ NúýÊõ+ׯ\ÿ®ÁõÕÄW_M>døáCl2Ìw•¿«ü]å7½ÞôzÓëýözÙ‰e'–HºN}.{ùÛËß2$G&ð2îšW‹ò›ó›ó9þËñ_ŽOú\U&V™Xe¢žrßum}ZõiÕ§•M¦9(rPäûOÜœ¸9qs*¯¬¼²òʤëLú%ØÌII€ À¼ƒÌÀþ;ýwúïLþ\~ü*øUx×ç]rÉý%÷SÞ =-û¾ö}íûúDß}Oô½7éÞ¤{“^®|¹òåʈ€ˆ€ˆ€½ïýxïÇ£Š*>ªxÑ­E·Ýšò:W-\µpÕÂ÷5× \30ù:·ý²í—m¿0'$E&ð23¿özØëaU½«zWõNú,v5ìjØÕx×kcnÅÜŠ¹UƵŒkWKÛ¯)´~ÿÝÔï‘þõÔ)ŒC.‡\¹Òrpé¶¥Û–n›tÕÛToS½ ×HŠLàdf¶tåëÈú#ë¬ÿ®Ï¸øÕâW‹_¥üEÍiÙÚkM®5¹Ö$åñÙüçæ?7ÿù~c5lì°±ÃÆ&_çú:ë묯ÃÌ #€x™€õ«{ç8Îqœ“üY´ãÚqíø»>£Ç~ýû“¯­Ä¤“JLzvîÙ¹gçÒ¾“ÆL3iŒ¥ñIzïáw]³ü‘ü‘üQòu&½Bšù €LàdNNz¥lòØù¶ÌÛ2oˤ~m/ü_ø¿ð/\8¸ppòuö«Ò¯J¿*éµå;wî°4>uÎÖ9[çìû­YßëÊ++¯¬¼’û°„Lr¨Ð)ÿýx×õèIæ]ïEªK¬žX=±ºrG¹£Ü{zìé±§õ+k4®Ñ¸Fã¢[‹n-ºU¿_©S~§üNùû6èÛ oýKqŸ?~œ9c’òÈÜ:ëü­ó3M3M3Mm†¶ÚfhÒí×s]Ë3-Ï´<3qúÄé§Ÿv:ítÚ)3µµsjœ½}ööÙÛ«®Z¸já€/|1à‹Æ=÷hÜCOýŠÕ"E‹:Ä8Ä8Ä8™ÌNæ.r¹‹<ÕcªÇT©TH*”àšàšàš¾Û–9¸Yb³Äf‰É×ÿc±‹ýXì]ŸëTÓSMO5µ´Í¿þøë¿þ˜^Ûÿ·Íß6[ýîÅiYÿ”.SºLé’|Íâ®p00È¡Þ5_Ý~øýá3NÍ85㔞3ËÝ,w³ÜÍ÷K_»k﮽»v•‰U&V™hó^ôŒ¤ÿómw¶ÝÙ–qc’|ïô,:tÃÐ C7|VðYÁg6iqGÙ:Çù?ä7ç7çßS~Où=å›?iþ¤ù›tR>¼|xùpýŸ_{=ìõ°ôšw”ÃÂÂ,­'" " "à]×ùÇ‚?ü±ÀÒ:õy’^³1nNÜœ¸9–ž«tÛÒmK·MËúõ_°´þ3ÏÏZZóºëZ¬kaÍXÿ’í¦¥›–nZÚÒ^ÈÉÉ¥}/ô{T[z–}Oô=Ñ—÷y g"€€ÊR8YTtQÑEE“ÿûb«Š­*¶JÿrÚÃ#<¤¹äϲøÓÅŸ.þ4åûË&¿;iÊ[®_‰›ú;¿¦}L’³²²ò«àWÁ¯BjÖœàšàšàšš5·¯Ú¾jûªïºåÙkœõp›ô믓ӿ:éÝdÓ÷8vÛÔmS·Mï—!3îŽÎS=¦zLõ°xwÛÏ|xæCë|?ÑiÏq=Çõgiûõ{‡§×3žv:ítÚÉÒsýXìÇb?ã‹ €œ‰Lr¨”¯ìLúoꜭs¶ÎÙ¿mþ¶ùû×mw¶ÝÙféÎÁ%&•˜TbÒÙÛgoŸ½ýž‘&¿9¿9Ê)núƒé¦?Ȉ{¾¦å 'ž‹}û,¶´%êõ‚zw{ §!€€*å„£íû­ùøüãóÏ·´æ¹¾s}çú¦oÒ¯O-9¼äð’Ã-}]sjž1å1Ñ¿ ;½¶ùm™·eÞ–©ä_É¿’¿¥g ܸ#p‡ñÆ9sèWf—¼ìIJËN¤ü•ãÙ%§ï×b§låú•ëW®·ô¼I¯5ç=È9À` ‡J9ØÌö›í7ÛïýÂÉâOºøSKk>Ñ÷Dß}3"É|9þËñ_ŽOþŒâĈO{öýÌ÷3ßÏÒwËÇž{zìiKÏ8k÷¬Ý³v[zÆì;ΙC¿rv À£ßŒ~3ú¥uî츳ãÎŽÙ7ë_œžÛðCÀ?XzÞqâ8qœHr0È¡R6úW§¾_8é9®ç¸žã,­9º@tè±Gýªô«Ò¯JògôØï±ßcÚÇ$é §×6o]·uÝÖu–ž±ë¾®ûºî³ôŒÙwœ3ŽþµØ»k﮽»v¹›ån–»™]p»†í¶khi¦f¦f¦fÖð¾‘àšàšàú¸æãškþeû—í_¶úU¶{4îѸGÊ#SûFíµo¤ï+èH¿#ýŽô³ôŒ:&tL 9 ˜ äP)§šÜøàÆï·æF^¼yÙX }{Ò>&Wú\és¥Oú…³·ÏÞ>{ÛÒ36œÐpBà Æç÷£§Ç¿mþ¶ùûß ºfàškêwnÛ½m÷¶ÝËÚ•µ+k—Ñ_MœëÔïÙliaaaÙå]E¿ƒµ¥}ºa膡Ò+Ê&½'wruÕºj]•w{ §!€€*åˆõ4æiÌÓ˜÷[sUïªÞU½­'LÖ¬^³zÍêi“'vOìžØ¥ïQ¸7éÞ¤{“,=£>’ÆgK«'VO¬:%tJè”§fœšqª‹ÜEî"§G3ÿÞ´±ÎŠ+¬x0#~!#ómûeÛ/Û~±´/…Î:WèÜmw¶ÝÙ–öçºnÝþº½¥çrœã8Çqïö@NC&9ÔÿˆXùÍùÍùßoÍ%‡—^r¸õ„I‡‡‡˜´É›^oz½é•¾GáåÊ—+_®´ôŒ¥Û–n[º­ñÆ9©ØÀØÀØ@ýnÇöì ØH¯í)>·øÜâs³K.1©Ä¤ æVÌ­˜[ÙëÆÒ½¢uÓL0ýAÚ¯Ö¿êüý^AŒŠLr¨ŒˆXº"E‹ZO˜Ô·'íc’X_§¥g,\8¸p°ñÆY'Çʱrl%ÿJþ•üÓò¼z:ukäÖÈ­‘þõÂ{Êï)¿§ü ÿþ/ü³K.ø¬à³‚Ï,­Sÿúëìõ“òý­;ÿÕù¯Î¥ýÝF¿ë³¥g±²²âÝÈiÀ` ‡Ê¸\A« UÐ,­Y¿æ5;ŽIF|ô#·GnÜ,=cùðòáåÃ7Îú—<§þ fý‹|ûUéW¥_•¥W–^YzEpœç[ço¿u>åy›]°~­ª¥u>®ù¸æãšÙë&²Vd­ÈZ–ö¨Áì³ÌNû³è#céYʸ–q-ãjÀ À@•q¸®ZW­«ZZóͨ›Q7£²ã˜\és¥Ï•>éûŒ—&_š|i²¥gÔGÒHã¬_ñ\yeå••-~ñµ~-ì€/|1à‹óœÿãüi™™Ù%ë‘ÛÒ:¯¶»Úîj»÷[óÓ\Os=͵éÒ?Â#Â#Â#2âXë_îÑiV™÷»‹6£"€€*ãpÛîm»·íniͧN;vÊŽc²÷åÞ—{_¦ï3»öîÚ–žQ¿‹ª‘ÆyË‘-G¶I9ýyxäá‘iŸ‡7Ï3bõÔ;Pužè{¢ï‰¾ï·fýÊuKkU|TñQÅÓk´“z=ìõ°×Ã,=o©^¥z•J‡/TÿsÄŸ#þaéYꯨ¿¢þ Þ퀜†Lr¨Œ ÀÓêM«7­^ffÔÌßÏ|?óý,}SÙäÁ“Olé“þWcŒs§ë®wºni›gûÍö›ígýó<#ÖÙEî"w‘-­3hZд iiûöì $_³Ç~ýû3"ß]uwÕÝU–öÈÉìdNßOøcÁ þX`éYºmê¶©Û&Þ퀜†Lr¨Œ Àû/ÿ¢¥5÷ú¦×7½¾IßàtûÐíC·5œðßåŽrG¹“ö1Izf:lt~s~sþêmª·©ÞÆÒ3î)¿§üžò–ž1;Žs³uÎÖ9ki›Ï|xæÃ3¦×6ßxvãÙgÙ%Oœ>qúÄé–Ö¹uÝÖu[×¥e4ZüÝâï'_³~ïáŒx‡9ÒïH¿#ýÞïêöÔóßé¿Ó§¥g™4fÒ˜Ic2"o°f`0Ce\~\óqÍÇ5 .œ|ͶQ¶Q¶Qé›d,] [ðƒ‚ü@ßž´Iú~µ²à,8 ΖžE¥{“îMº7ÉÒXeÇq.¶ªØªb¯ Õï›^[›ò×k[[^ûõÚ¯×~miË.?ºühZÖ?Âs„çOKë×ﵜ¾ï0ãÄqâ8ÑÒ3ÎY4gÑœEiŸŸËN,;±ì„¥gY×b]‹u-À@NC&9TÆ`Ý ÈA‘ƒ"-­ßû'Jûs=Íõ4×Ó\v5ìjØÕHþ,⮤טè:”êPªC©´lùÛ2o˼-Ó¸Gã{Xz–3zÌè1ÃxãìË!—C.K[‘ö¹÷ ÷ƒÞzWëY­gµžÙ%ëwùµ´ÎÑŸþ|ôçiYÊ¿p0²þÈú#ë§×kÿ‘Û#·Gn%‡—^r¸¥g<ÕôTÓSMÓþŒIG&¹“íO¶?Ùž ä4`0Cet:%tJÊϲñÞÆ{ï½ßúãÛÆ·oÛ®a»†íZZÒk@Ó>&I­¸fàšï·åSºLé2¥KÊë?<òðÈÃ#S³åÙkœ]¿týÒõKKë™ßy~çùÓ2õ«õ šã˜¯=ð¿ë:ßôzÓëM¯âs‹Ï->7ù:“ŽÛûm³¾UŽsç8Îùk¸Ÿ|Vð™ü‘ü‘üQZ^õú³¤|?cý˨Óë}ÌÒŒÒGRŸ½¼Û9 ˜ äP€u |4ð‘¥gѳӿϘߜߜ?5ëŒ.] ºÀ€/|1à Kk®¿¢þŠú+\\\ÓkL’*t®Ð¹Bç6|²á“ Ÿ¤fÍzˆú¡Ò•~¨”òšõÔjÔqþ±ØÅ~,fimú×YkǵãÚñwý޳U½«zWõNýqÔ¿d;}_;úõÇï÷ziÛ½m÷¶Ý-}¡÷ ÿþ/üÓòz\XqaÅ…-m¹~?à÷{ÐgK×}]÷uÝ—òøè÷ŠNûûŒ>I¿ê<í¯#Æ@&9Tæà'vOìžØ¥&ŹlqÙâ²eõèÕ£W¾°úÂê «Ÿ?~¬ìñùÇçŸÿKÝ_êþR·¬]Y»²v)§Ù¿lÿ²ýËö]÷Åæ½|ýøëÇ_?>´öÐÚCkõ øj⫉¯&þmó·Íß6z$näÕÈ«‘WÊëÑïY+²Vd­wÝòì2ÎWú\és¥OÊ[˜4WëפÞxvãÙgú5²úžê_½b׊]+v5Kl–Ø,1åQµô_»/í¾´ûÒw½r×Ò}—uã÷Œß3~þ¥Ù¯‡½özØmw¶ÝÙ–š5Ïû~Þ÷ó¾·´æí!ÛC¶§åõ˜X=±zbõÖ3[Ïl=3õ3üºýuûëöúšõ_e¸?üþðûÃåX9VŽÕ¯hO-™8}âô‰ÓÓë½E KÏõó Ÿý<ˆ/r&0È¡2'ëÎ|xæÃ3Úd0=nµ}ÔöQï·)¯¶ßl¿Ù~±åzL=z ô@hZÆ?»Œsj¾;-ô»ÏîýxïÇ{?NzäÔKyûS“óßï5¥'yKkXrÉý%÷Óþ ‰ ‰ ±ÉD½»õîÖ»›žŸÓë&éh$wqÞÅy瀀œ‰Lr¨Ì ÀºK“/M¾49#ò’] »v5ö¾ÜûrïËŒ“Y»gížµ;½¶¼Ä¤“JLÚwwßÝ}wsÎ8ë!°‰þ%ú—Hß-Ô¯oŽˆˆÐÿÍÎŽ;;îì˜ú5¤æXLõ˜ê1Õ##°®öÚ7jßH¾†~UúUéW%½^¡7£nFÝŒÊè_˜³h΢9‹ô««Ó÷½%éh$UW­«ÖUy‡r20È¡2?ëâæÄ͉›“4¦åªÙÁaƒÃ‡é_±›ö-Oý˜è_Mì”ß)¿Sþ÷ÛþN×;]ït]ÿrãŒskçå7ç7çOš–ßo ˇ—/¾®ÅºëZèw#þ?[˜ßœßœ¿cBÇ„Ž é€“ŽmFàŸ®þtõ§«É×PÉ¿’%ÿô-I¯Ê­2±ÊÄ*Ó}û6èÛ oƒ¤×£§ó›H~s~sþÊ++¯¬¼2ù6Ì85ãÔŒS\û äd`0€,£ß}Vÿ©dˆ4D"5©Ö¤Z“jzÚÑﴪ߉ÖÉìdv2÷iÕ§UŸV+ׯ\¿rýÝUwWÝ]•¾™ç]ž~WZý¿~³÷›½ßìm8¡á„†ÊÝ,w³ÜÍ"E‹VoS½Mõ6ž›=7{nÖÓTÒ¯ù͙㜜~YýY>øhà#çhçhçh}«ô-Ô·Vßòï*Wù»Ê‡Gyx¤~Çå”·0éÿÓ´tÓÒMK;ärÈå˾€}ûû=ö{ìá9Âs„§~ýtj¶9éÑ×ïª[Õ»ªwUï¢[‹n-º5éqðÅ€/|‘úÑÐïm‰zA½ ^Ȉ£ô:ݱ§Çž{ºC©¥:”ª¿¢þŠú+ô±Ò…ž¢Ìn0»ÁìñâÄÿVä·"¿ɸ_hHJ;®׎[ÊÏ™³ ¬˜ ÀêdÕÕÉéû¼™¹åÙkœÓ¾…±fk[§~xòuެ?²þÈú™Œ¬gžèù?ù–tÝ×u_×}¼ €à_ÖD‘sîܸÃÒ˜sæœ|=ìõ°×Ãôë“Lд iAÓxµ €à_`Xý ™õ¯Y~¿{¾×ÉG£‘W#¯F^ú½™9À`øÖfï˽/÷¾L>{wëÝ­w·œ63“îuRB„åu @G&À¿À°:ùÍùÍù÷hÜ£q¤³±H`‘À"Ñ¢ DÈ Ã ï©¾×IÇÁ­‘[#·F\û )0þE†u’?’?’?J>'gížµ{Öîœ0?gûÍö›í—|äX9VŽå )0þE†59(rPdÒ9Yºmé¶¥Û{~>±{b÷Ä.éžê†HC¤!³@r`0ü‹ kvoÒ½I÷&%Ÿ™?Tú¡Ò•Œº×úÞ%Ý_»v5ìjÜ~øýá¼6$G&À¿À°~Û~Ùö˶_’ÎÌâs‹Ï->×x³TO¼%&•˜Tâÿdïí£¶Ú>ŠW%KÀ`øÙ…÷OÞ?yÿ”t~ú,öYì³ØHû8á· ¿Mø-é>2|Èð!})#€à_¾¯Sz0>°/ü_ø¿ð×¢wkäÖÈ­QË3-Ï´ÁÜ'8«îÌ‚¹7°Õßøáð‡Ã7ìÀ€Œ@ƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00ÙÇ1ó1ó±c1ÇbŽÅ/^¼ø”zJ=¥20@Ú=w{îöÜíXþcùå™2!dB”O”O”#YK?ÛÑÏ|ô³ ýŒˆ‘Òî¸ëq×ã®Á-‚[·=z$ôcYëáñ‡ÇQÿÿýß02@Ú³;gwÎ.øZðµàkÇüùóO\›¸6q-#FEF»SøNá;…oñ{‹ß[xùxùxù=TôPÑC6iæìïìïìïëìëìë¬&ª‰jâÓ¸§qOãsäùÌùÌù.ß»|ïò=¿ë~×ý®wqíâÚÅÕ&x†z†z†.+¹¬ä²’gtvÐÛ7¶olxH™~6¢Ÿ™èg)úKÚß™õ3(ýlJ?³Òϲsä÷úßë¯ÿÁA4rÃÈ #7”q*ãTÆ)í¯¯ª=«ö¬ÚsÒâI‹'-ˉåÄrO¾~òõ“¯sHYBlBlBl„!GÈ«mWÛ®¶m·´ÝÒvKÓë'S}múšõgÑŸ‘‘GNð<àyÀó€Ð\¡¹BsÍÞ1{Çì Î68Ûàl:¼´*ÚT´©8°ÖÀZkm¹ýåö—7—Ü\rs cÙ ™*rJä”È)³´YÚ,Í&‹Ô­^·zÝêÛÎl;³íLtÍèšÑ59.Èþ/-s¤9òT³SÍN5¶zØêa«³êõÕµN×:]ëˆb„¿4~iüR€œL?ÓÐÏ:ô3¬zÖϾô31Ž ŒáÖØ[co]è»Ðw¡¯M¢M¢Mb濲g:Îtœù[ßßúþÖ÷aã‡6æ¸ÈÉÞ~óö›·ß„˜BL!¦þ‹ú/ê¿(«Î|ôg×·Dß*޲»çSŸO}>õ÷¿ÿû÷¿›No:½éô¬z}MÝ?uÿÔý—Ê^*{©,ÇÐ%¥çΜ›‘AÖ"#Å_‰¿åPØ¡°CaŽyó:æµ±Jý_ôÑÿÅ…ˆ "8jÈ.žù<óy泦ښjkªÙX±™ãgŽŸ9þ¾Ë}—û.59~F¡Ÿ]Xç;³~V¦Ÿ¡égk5X¿ÄÐÄÐÄP©ÔNjç"¸.‚u¾¾:‰ÄNâ_?ýõÓ_?™/š/š/rìÛ“òOÊ?)¿hÙ¢e‹–YóO¦úê[ËQCv¹(rQä¢[Gl±Õ:_Y%"JD”ˆØº;twèëN¯;½îÄQCÎD†u"#½?šÙœ¸9qóÞ¼{óîMSîmþ¶\@©“»ÖßìXè·zýœ¼´ëM“ï~ý ÁGZ¯Nç,öv ªßvOD[§:ÑË›»×x0l‡ów:T9\¯ȵ÷{^³‡ÙÃ|¡ø…âŠs4ambgÅΊµàå‚— ^¦åõÕÙÍ}CÙ&³VŒÈ]u½ø,7ç»A—Û¹ÔVέ­Ô ‘:zíÆ}œ^±ÍeËö©sKÖ>2Þè]Õ^ö™Õö–C·¢KŠT.8÷ýžw̺1ëÆ¬{°éÁ¦›8šŒD?sÐÏ"ÞïR?{ÑÏdô³ý G?ÛÑÏ|ô³ ýŒH?;ÒÏ”ô³¦´ü½ Ÿ¹égqMX‘ÊæÊæÊG9xä`!ÏBž…<ßo†»ÚÔžVòƒ -|R¹òºŸ¦ÅÖ:u0÷âîõJÉ3Ö”­ÿD X·¢Áqó¯ÛêOß»ü—mu»¬Ê5iKÍ_F>êé[Ñ£ÖGs±–ï÷¼õ‚ë× >}äô‘ÓÜ]€¡D¿ˆ~ýÂ×Þ×Þ×>-g =>ªzÕ¾ÓÜå®1ÕÚnÛÑzfí¯ŸëÐÊå[µ\§þ ¾Ò—ú¿Ñÿ«þê*-Ï«o¹¾MX›Èƒ‘#v]ÐuA×ï7ÃËW¶~áÑßôèt¢|×%=Æ×¯á¹Ûöçûu晎®ªZ¿–w]©Ó•zkv4(zèêÒ%õ¤ÿTÑùÃzíåß*¢ñÒ;ÒòúÚ²i˦-›âûÄ÷‰ïÃÑDÎA†u"#Ý„;vÚ~™ý2ûwø­Ïþjl,—ëð¸\º=ï>dËáfó°ažžéµ¼¾±OBÓ†ÏÏœþrÙj÷]ñÐÔo›×¯-^[>|ÈñE–q7»›Ýõߦ|×ÓîÉŸzãøáŸlnxÙìr²†gq³ùäIOÏôZ†ðEãç?;êTµ@Û¶mmS¿mËó,ϳ~üd‡É“R3'7ÿR§n7‹Ï÷Èkmç?7&°kZ雿‚ʧê×LÏ,;³ìÌ2指 ëDÆ; r r rLù¯óª‹J<)š/|DÑßXÛ©¿ÅeÂ0oO€)­Ãkÿ+ƒíÚ5´kxçÆwn0njškškÎÙ5gל])ÏÀ ”ëy¿ï‘"Í«XÛ©¿¥åKŸànîe}í½Ä*ƒRÞ»ßü~à÷¯Û¿nÿº=“€5ÐÿÆ×ÿöOùL?‹ÐÏ(²Ëù~¶¦Ÿ¹¥¼wú óé+äPÈ¡C)Ͻ¢Å ‡ù§Ë†Ç ïd—3}yÐmñ¬zŽ©ù0ôÚÒkK¯-e>° Ïž'<_|ýñõS~ïý¦nåŠ/Ÿ¶¼¨Åáìræ£o­¾å)ï>úh0+^‡<yRïY½gõžý_‘¿9m|­mo÷žñx“]Î|®œØ³Çíz“¢u •œòÞmwÚî´Ý‰ù#!Ã:€ñü\ü\ü\Rþ+|]¬ûœZwÌÞÜ=+d›ô›lù¤ñ “-ZôÞX½®Cù”÷÷Âó Ï/ðÃÒ$>2>2>r°4X,¥<ß´Jëj5˜½>úL¾¼è³«ˆ›]™ø’±…êYÚÓzÎõœë9ǬŠY³Š «è˧üάŸ-ègÙ÷ÌG?sÓÏâRÞ_ýl¹´Û³sÏÎ=;Sžo «Ž9Z}aâŽóX}Ï|ž¿Q‡´\4rzÏêk¤¼¿'¿8ùÅÉ/˜²JÜ÷qßÇ}ß®Q»Fí¥ü~u:¼Û‘FO³ñ™~çàðnG=MyOõÑÐG†‚´¸Ùãf›=Ržo­¸-ùÏ® ­ÙñìþÉÏŽ?æ¬óAÊû»ÀmÛ7s¢9ÑœÈ AvG†u"#U–nXºa醔ÿÚ¾\¥×s7ßìþ@òeÀ­ÏÕžžò¾Ÿ 8p6€y‚wïïïÞ)¶Sl§XK³«cãv‹c Ê¥[ÜÍî?$]ÆG….÷èáã<@©Ü×Ò¾Û´i?2:$:$:„Ù 3é³ÿë}h}®ötãùègt)ï»~fÈ<ÁûÙâ·Åo‹_Ês,,ÜÿëÆUtæ£/M]ÚªÞŽ”÷=¸Vp­àZÌ™é倗^hôc£ýhéÝiH§Z£Ë—Œ³ZÊÝÃHg>úé{gißõ‘ÑG‰Ù‚w9,rXä°”ÿö_ÝjʈZwæs«õÁùMUZöua‹?[ýøñÿø±ù¶ù¶ù6³ÙÖ‰Œÿa̓5Ö<°ø»iT¬R:òy»!¿·ô6Þ I—g·ô¨ÔøôÿHày.繜‡9ƒÔH O O ïéÖÓ­§›¥5{ψU#ß>qÊ#Áx?$]<˜³½öjKãPan…¹æÆ.Š]»ˆ™ £é›ÿ_üÚÒ£RãÓÆ>óÑÏîô3=Kã Ÿ%2gz»«ï®¾»º¥åܸjîb ]3…7nì3ŸkŸý¾­I¥”ßgN¹žr=åÊœÑÞ”xSâM‰¦4ý£é–Þ‘~ý©Åß5o›ï ëïṴ̀ç?w†õ÷l¦ï©¥qÐGI1fRãög·?»ýYÊã‡LõËÝ0¿±Ï|^¹î¾¸ßŸí.[üìâ싳/2g}€aÀ°èÀ°ÃXü µ¡_:U/??¡§w>±Æþ4éòÖ£~+šLùÔížß=¿{~̤Ìg Ï@Ÿ–fÑÆ<Ó}Âý@ò¥³zw}‹¿fáqÌã˜Ç±„á Æ3dýoð”ÿ–×ÏrΙ~¦§ŸõYýŒ‘ùƒ”i+µ•ÚJK³¨ƒsóñv_¹‡ˆîsrΙÏÃ_Žžj¾­tå³lOZ™ëÎׯ;3dˆ&æ&æ&ýçõŸ×ž¥w¡};*ZwJÎ9óÑ—ú^[}ÄôÑcÁ’ûûû”²¸t|w)·á9çÌçíƒÏ;Zn1¾®Å–†—Šâ‚h Œí4@ŒmèëyTn~š®kº®éºg©ÏRŸ¥RKZõùªÏW}.W?«¿ŸÑÎa™±µ~‹‰aË}Ûœ—›Ÿ‰G&™x„*P¶Äª-Vp¹ãXý3ùˆÔ' ÜüˆôH-AêÚÃk¯=”mýÞ÷~ËbjÁ—É®ãL>Ù÷»{¯­ÝÝüªKåféQÔ£¨GQÔ€²^7¼nx]¹#OÜ0ÿHǑƙ|Ä(f@n~ÄìQEÒfh3´¾ïø¾ãûŽ\ýdlyè>ÓH?ùѦóÕLÙ0ì´õ¹ù9RùHå#Üa `( `ü<³<³<3Ùg‘ÖlrÇbva^PÍOÆ| ÆëuúßñøPn®¾óÕ˜¯ÆPQ(îì ³ƒÎÊ^õ»xÐÄö͹õ[|ÜÝdQ'¹¹ŠuˆuˆåjeF¬ÚrDZâ“|DiPn®D’¤¢ º)þ¾ ‚ëôúÍÊ^n®îí¹·çÞ*  `( `üá.Ã]†»HXæöÕ̪üùøÏakÛqP|<áñ±•Ëb¹°’p?á~Â}ê OcŸÆ>•½yøˆ3Ÿ˜Z-ÐÑúýLjóßøÛ'ÈÞn=ävÈíª @iˆ•Zöœ[¹,&íEÉPÏ}b\†» w¡® „, Y"{Uëƒé u¼{vŠ·n>í&{#úMc7Ý4–ºP¹sæ”;ÎLÿÄeEÓ¤é(fFnÞĬR]8ivÒì¤ìE5¿¥D89× í ü’kk÷ÛÍ1_$±ÎaÃ:‡ébt1ºª ÊG¸¬ìܲsËÎ-ÿ}:xththt¶_¶_¶3órhã¿­<´òÐJ¹˜òGõþMÜÏúåÆZMÇ}e¯†y/ï½¼÷¨1c6#pFà =Ï8±ø¨¶S5¿§tôÙJô×3®N™áëÐ{ß=K=O`ê’Ó%§KŽ._—¯Ë§Æ¼(±:Ë­Ýbe'áÈ"ÊÍžH•Ô˜1K[˜¶0m¡\…¤µ[WØ.›œ#7no>÷Nëm²WÃt¼×ñ^Gj ÀËquÄÕW¥Ç×ã–ñµl´}ƒFi6“s¤£˜1Kz¾Ò}uÄÕW©.cö|äó‘ÏeoþýÖ1mmÂH8rã´=_xµ—›½˜1b:PcP>À¥§í®í®í.w4 ürhC÷ìÀ³ÏȽµ6¬ì¸¢e!qÿoÆaÁ-|ú]iäTç–t§lš²iÊ&*Í8e\θœqYîýuyÙÖîï÷Ksæîßé}Lö:ûs çÎQi^”X¥G±š‹•„Sò(R¢ÜñY$L*ÍØ™™™6¶jlÕØJÏ/VM\hïN¶1dz°{φ­å+´à7³IDAT¤s8¸`pÁà* À‹:q2âd„ܪýW‹[Ïd›’G1Krs(f˜J3N‹¯/¾¾øº´*šE[ýaVµ0ú˜½f&Ù¦äq_—ˆåÎŽr﯇9sæPiP2À¥WüÚß’Ñ 6 `è–…, Y"}#y]lðKítóƒ=}íú†ŒF|æ9GîÀt#èFÐ êÍØø›ú›ú›JëaþŠq£í>&â>îI[¼ÑiÜû«à|Áù‚óÔCˆYîx"VsRAãü`O_;‘¥3)&õfl¶¥oKß–.­‡-&˜¶-Ì>6L³˜TcÐà¾Ù¿Î;QîHuöØÙcgQo Ò\×\×Ün¼Ýx»ñÒãɺ‘~£Z¶'Õ>Š“Τ˜a1ÛñÈ›56k¬Üz}é‹-ÁnÇI5†Îùo¯E:“3–ÌX2c õ%£\z¢¡+š»&£\2ÀFí±ÇcÇrož«Õû%»/#Ü¿èø“¯weû!ÒùrhÈ¡!‡¨:ã‘6?m~Ú|Ùë¢.)ð¹A¸1;%Á×Û·§KhÒùÜÒzKë-­©:†+²ôH"Vp’Ì‹Ž"1Ê­w"mRuÆ  ¬ ¬ Löº¨Ëkë· $ϼè¸1[u”Χf•f•fUÀwÜup—ôHÒx§ù·Õí‹íÒ\"Ï>г'U1ÛTñøÖå[—o]¤•0µN uI¦lo}¿Ûýn÷»QuP&Àe‹fpY¡lÔVèVèVè9<}™ÜúLãÄú—Ÿú~ï3Kî0t«ï­¾·úR{ÆÀÿWÿ_ý•Ö@üª…ë_n¼˜ºùŽ›ìuÀÚÚÚÔ9b–;†ˆœ$ór£Hzž¦¬[¡[Aé…ØèØèX='ç›ú^¨Ç—Þ^rÔv:¶Y³ÞtgµUêJçöüÑóGÏ¥öÈ:­;­;mWÉ®’]%é1äø´^S]Za^n³§ç:àJv•ì*‰™§Õ-§yNóœærg91ûO{Ÿ&ɼÜ8'ý‹[/=­¥¡KC—R{P&Àå‡fpiÐ6R…y…y…y²O90Ì3•@_šqÕ¥sÒ:¤u×)ª\æ˜Ì1™c¤{¿ÊÂ*&õŽÛiNèK3öìª_o’žhõVâ[‰oQäˆUXzô«6é¥TOÅ;0Ì3U.[ŠäIªÖÝÝŽ† :è¹ùá½-Én·H/¥ã ¹8鹺hèëC_ú:@Nºmºmº­ôèѺkÝpsOÝÝàA¾^d˜—ïòõ3)a1óT º-‰X±DÏsµçÔù¢žm ÒKiÆÜû’Û›ËYä÷Èï‘߃ „ÒÐþgÐ ~Q4€Trfrfr¦ôÍ0ÈÆÞ§7?,ƒñ‰û°£>Ueoÿø,ðY u¨V3“g&ÏLÖs›âa ­ŽåK?žý—k+é wzÒéI§'T )±òÊ­ËbÕ&½”~IR:Ã"yR‡juqÌÅ1õ|õÍë–óûµ»“[J?º%_ÖŒ’;‚åÆäÆäÆP‡¤‚OŸ >%=n²í>¤MrKéG1“Ò3OªUQÓ¢¦EMåÖå¬Ï÷ùzW'½”~œ5,Å:M:ÃqCã†Æ ¥¡44€ÿy4ƒ AØH H<@OƒêŒO6„ø²'¿ÕÆÇzœtž·8Üâp êP}´mµmµme ã{úX¼ªè|Ùku·‚âÛSOBS>óµ©3 æ¶ª¤óœ])»Rv%ª@qbå•1ÄJMb)«Q$Ié<‹äIªÕdÍdÍdžç YZ§3ɧ¬ÆŸ¬'Ø÷ÓóÃð-á[©CÅåGåGåGÉÞ™ctPu ÷>)ƒQ̤ìuŠQùQùQT£úœ=uöÔY=_­ø†ÿùú‘|Êj¼~-ÖÅCÏûË}Šû÷)Ô!”†ð«E3X `£ó4òiäÓH¹¢/štY“Cˆ/«ñ²Yß nÙÒyH H H¢Õçܦs›Îm’îñÏB{Yå½Úè,=¨è§‘?MËj‘+}E1q1q1qT#€âÄÊ+=bˆ•šÄRV£H’²OYŽ|ù4’jTíiíiíi¹=þ¼êQkŸl’OY·ûíö÷Ôsfáù¦ç›žoRŠKj›Ô6IÏW“gÏr½oãGb)ÛQ̪t¶Å^ Õgꤩ“¦êy(Õñ«Qm]4$Ÿ²m65Ú`æ¯ç)Ë99T#”ƒ°rÐ .ްÑI]”º(u‘žÓ€©®wlîeý1hBP®F+wX)¸Tp©à5©&a7Ãn†Ý”îë”À¨Õ.Ci—ñÇ Ov'yé¹Ñz× ]/t½@5Äj+ûÕ·„ \–ÄRƃNu½cã+m‘B©I5¹ºðê« õ|õíƒÞ•­.’|ÊclºÝÊ¢úeéëzìôØé±5 @3j̨1znykßLw{QÖ_ýßÚ7Ó]Ï™©Ø T£ªèt²_}›rt²æ-’Oõ?uºy‹"éëÚ;qïĽ)I( `e¢LØèÌÞ={÷ìÝÒ²>[Ô'Ð5œà^ã7sã­-¥sžÑ%£KFjRM¬?°þÀú=×<½žæ3‘AËx¼–²Ý×£ºÎ4¶Êp=_°˜Q0£`5 @¬¶Ò£„XI)å1ŠT©ç놻gïž½›šT“¨åQË£–ëy܉É2‹6ÓH>å1.¾0ñ7ûNÒ×uâö‰Û'nS“tÞ:o·ÜšÚ¯ƒ&jbÉ*e;ŠY•›s±G(Lu¸ûÃÝîþ ÝËýšt^Rß‹äScæÉ¸}·¥¯k䆑Fn &¡4€•Ï8›Á4€Žƒ§ƒ§ƒ§žÕåÀ>ë îå1&®íѵM†tÎ×»®w]ïJMªC~üù5¤{ÙµeËŸk½­„Ь֓ɚ¡{¬¿“¾®ëó®Ï»>Ê V[='ck{tm“AJ)Q¤J霋JMªIÏ÷{¾ßó}=7åûqœ÷1’OyŒç¾Üèçš)}]óÞ÷î¼w©IY²d=%úŸ²ûOýHRJùb†¥3/ö•©û÷;ïw–îå­1s·®Oò)Q«;î¢I“ý‚EŠ.E—BeB hW,ÆÓ ¦lDÄõpÒµ¯=Ò,OiÑùö×ë<Ï wgcòÉ‚fÛ,Û´¼V÷­jDT½Zåp³ š×Ìþãs°áÖÚOÃÍ<úÛ~`1ø ·«2O²êìýoéÌm Ú´ÊT‡+‰W¯$J÷òÜ*_®µ­äð©××z´ݯCçíõý¬[z›î«Q=¯ÊáV§mß1·šâ8l¼õîûR½]•y2°/."ËùCéëŠÿ þƒø¨LbµÕóa\ýÁƒ½ÿMò)¿Q$LîРZuue?ŒÛ‘îëHò)ñIhâ`ŸÒ×Õá@‡P˜N¼}âíoKë¦ømÙäS~£˜a=whxûÄÛ'Þ¦2Õ!tHèÐ!Ò½|mÖ[f$Ÿò»ýÒþ‹?¤¯.ozÞô¼éT&”€pÅ¥îf0 `#r÷à݃wJ‹uB–Ó¾&³”šÞêÞ±»…]õnÕå8æ¥òõ1q3ieRKßU>Œ]äèÈÑ‘£õ<ö+¥O×ïH>åøŒ”>=\õÜ›Jì*SüjøÕðÓsï·§#’®ø„“|Êo\ô¯ Ú]Óóp½ž=3zR™PÀê ¾f0 `#rfã™gô4¨¢¿óKo9] qùñšasÛg7X3´úïbÛ¯1ÿºz³ùw]¿=×-»M¥g.uš.ßýß>yÌšÚ_™=ãcµš?þüùóõ݈xGG ’?Ä”÷výé=§ƒÛþœÓ:rŒù§#}_å_&'L|‹ÿÉ¢ºÇ»k.*ç4 ß=1×GÏÀ½ÞèõF¯7¨Lzî}²¦öWfÏH>å=Š„)‘H©ÌŠ.³nfÝ̺zî}’÷UoÛ½$Ÿò»¿Ñ~£E>g¤ÆæŽÍ›+=>3¥Ì“»ðúù˜F­FÕUoT=éþ}Øÿ e{e~ Z5³ªÆdÇ>‡ˆPg{ñgŠ?!Füó&¯4­>UòSdŠöÿ]£•n¡u-ëZÖµ¨LÒãƒX‘I>å=Š„)Ýf‘H©ÌŠîdÐÉ “AÒý»½úÜôÖI>å=Nµ t¶ÎåÌ€Ô‡š5j¤Ç‡çÃ=}ž|Êo3,Ýf±G¨LµžY¸UkåWË•äSÞã…S›¸}&ÝÎÕ7Wß\}“Ê„24€Õ¤â6ƒi‘usÖÍY7GZˆ?øôŽÛ7JˆËÉ“zîk»÷‹{­§5¶âzÇÆ×owJO”ùЩ¶­ký”iÔªkZ×´®izN³?9:ÀG§Ì“Á]ldH¸/þ[Ýâêº+íd Æ˜êéUöðþ`Èi˜X‘I>å=Š„©ç„sÖÍY7‡Ê¬è¬¬¬ô|µô“_Ç·ýšäSÞã’Ç“7oCò e“e“e£ç9E©Aù¾ÿ"ù”ß(fXºbP™j=³Ø£‹iýg$Ÿòÿš¿Äs¯tþŒú1êÇ(*Ê<>ÐV«ŠÕ ~M9o ¼*7z èç±@™ß ,9ÖkmƒúiV-¸ä™h·\ù'á³å=>Ø™ ñ@½¨èvnÙ¹eçÀøGÝúpàDOwe~ šóÚ±Þë÷Wëæê¼t囚M-"¾­Ñ6¨iãÞßÙT¶SÏ¢úÆjdOoöZwöÚlߌz36EÝOÒÜRæÉ@fR\œ‡AÛvÕr['÷_õ½Ë”r2àÔÅ®Ð<–z`±"“|Ê{ “z36ç:olæz‰äSÞã–Na­NQo Gòù'[Ú0Ÿ nØä0ɧ¼Çœ§Þö¾N½¨èžo~¾ùùfÀøG)í àÔúŸo÷úG•›dZ̬šY¥®É¹-ouºî s«A÷íç4WþÉW'%_ü,øÈjŸc†ünþ¬$Ÿ~J>à `†SÚÀjM>\lœ”|°š’WxQʹX­É‡+€“’¯VSòá `ê`DW‹{ óóOþLÛ(çÀjM>rÏ{„ÊTë™…’Ÿ¬¦ä#÷ àÑn£ÝF»Q™ü(óøñfÄ›o23êûÙõÍ®ov}üzðëÁ¯ÞúÞˆžŒÞÞÔ½©{Sõ|LcÞ³mÛ‘JˆËú5žR÷¿ßdœa«ARQÝ š‹%GüKýúsKRþÉÀ@]xýÇú¶j0ªÞ¨z£êI÷ïÃþ-Û;TôçÁìíúÓ{NÿゥyNÊ9(Ú{üwV:óÖµ¬kY×¢2èù˜Fc^ÿ1ɧ¼G‘0¥Û))•YÑ :t2Hº·WŸ›Þz#ɧ¼Ç©6ÎÖ¹œYúPó¡æCž¯&; ÷ôyBò)¿Q̰t;Å¡2ÕzfáV­•_-W’OyNmnàö™tþWß\}sõM*Ê<>ˆf!3£¢qmxÓWüù¾é[ `#rfã™gôÜ(,ú;¿ô–Ó•—ët6]Qõ¬Øªãý{}îbmÈoííÚ5ýÿbŠ’Oì×ÔþÊìÓ¨ÕüùóçÏŸ/Ý¿×çí(ðTæÉÀàŒ.6H2äw?Yà÷oËÿ^eÒglÇÉ–k”s2ëó¡tæ{½Ñë^oP™¤Ç±"“|Ê{ Sº"‘R™]fÝ̺™u¥ûwnÞW½m÷’|Ê{ìþFûùœY›;6w¬ž/ˆ´»&ùŒž=3zR™PÀê Ž¦oq4€HÁŒ‚3ô\^{¤Yžâòðù-Ö6L[U?×,Þ´Öê=>sXwãì€9[ïŒôš—mÒú1mÍCž¹ÔiºÐ|v5ç*Ïe¿§˜Ó€¬úƒ{ëy@ж mAÛ¨Lu¸’x%ñŠžÃÜ*_®µ­ÌA¯©¿·z3ñÏS‡·Þý›çOÇœžîHž×Ôñý1柎lô}ñ?ß)Ð-®®»Ò¾º/."ËYÏÀñÄÿ• @¬¶Ò£„XI>åxï“ðÚ#Íò¤Û))•YáuÔuÔu”­Æ)ᾎ$ŸòŸ„&öi ó:èp€ÂpâíoŸx[z”X7ÅolË$ŸòÅ K·Sì*SB‡„ "ÝË×fí°õhFò)¿±Û/í?±øC:óyÓó¦çM§2¡4€+.õ5}‹£lt<<<õ|[íràŸõ¯6.ßwüž×ÉfA5¯™ýÇð7ÛÅ‘}+»…7L«ñ™éÿ\eÒù“Æ ëŽSÂi@âÚ]ÛdH·|½ëz×õ®Ô¤:ä×ȯ‘¯ç{ ®-[þ\ëme6€ã—hs½Öó¦U‡—ü.k^׺o Ó̤¸8[J;˜¬ºÇú;}7ß¾>ïú<*€XmõœŒ­íѵMɧå1žûr£Ÿk¦t›ç½;ïÝyïR“²d=Èz =Jô?e÷Ÿú‘$ŸòÅ ëùÒწYÜ¢V%ö;ïwÞ¯çFß[cæU—ê°Ãêk%¼¢oæ:Ç[[ê¹QI—Œ.]¨I5±þÀúëô|Áâõ¤0Ÿ‰J;ÿ^üs@A×€½­[z›î3[[ݹʭÙ1ïû݉Ë›9=J<Ô¶ýtÅ}ôZÊv_ê:ÓØ*ù €±ÚJbu&ù”Ë-‹úº†Kç\¤PjRM¢–G-Z.ÝׇM–Y´™Fò)qñ…‰¿ÙwÒs…Ùí·Oܦ&è¼uÞ:o¹.µ_MÔÄ’|Êø±__MÔÄÊ6¨¼uÞ:o Sîþp÷‡»?H÷r¿&—Ô÷"ù”Ëc¿NÆíóÐóØ‘‘Fn¹š„rÐV>ãiúGØè¤.J]”ºHÏGrS]ïØ(èæ9%ßÒGî¿*íF@E A¹­Üá£àRÁ¥‚KÔ¤š„Ý »vSº¯S£V» UBt– ô/úï•0Þ~²;É«ªt¶»^èz¡ëª€ V[¹µX¬Ô$Ÿ²Eª”ζH¡Ô¤š\]xuáÕ…Ò}ýÙ½+[]$ù”ÇØt»•EõËÒ9ìôØé±5 @3j̨1£¤ÇŠË[ûfºW%ù”í(fU:Ûb/Pª  ÐÈY<Ÿrt²æ-’OÙŽ‘©ÓÍ[Ig{ïĽ÷N¤$¡4€•É8›¾ÅÑ6:O#ŸF>”ýtzÐeMŽÒÂtÅ/›õÝà–-瀤€¤€$ªQ}Îm:·éÜ&=ƒ†ö²ÊSr¤®ˆcäOÓ²ZäJg;&.&.&Žjð?ŸÕ$$$éùÔ¬ï·lK™}õmzÐeMŽ\Î)”jTíiíiíiÙA«µöÉ&±”ÙWßúíö÷Ôsfáù¦ç›žoRŠKj›Ô6©­ž¯þÏr½oãGb)㯾Ír½oã'm±¨Fõ™:iꤩ“¤{üøÕ¨¶.KÙŽ6›m0ó×óÀ‘€œ€œªÊAX9húGØH H< YZèg|ztµ!¾—Õ8ù­6>ÖãôܯÅá‡[P‡*ü´­¶­¶­ÜBòd\bO â{Œ¡)ŸùÚÔPs[Õ Òyή”])»Õ 8±òJb¥&±”Õ(’¤tžEò¤Õj²f²f²FºßYZ§3¹¥¬ÆŸ¬'Ø÷“Îó–ð-á[©CÅåGåGåGÉ™Žª®™Hn)ý(fRnžÅ^ Õç쩳§Îž’îñoøŸ¯ÿ‰¥¬Æë×b]<ô¼¿Ü§¸OqŸBBih¿Z4}åÐ6RəəəҢdcïÓ`!¾ôã÷aG}ªÊ\ž> |HªÕÌä™É3õ|ÁbKƒ°„VG ñ¥Ï þ˵•t†;=éô¤Ó*€”Xye¿ ã>ì¨OUÒKéG‘$¥3,’'u¨VÇ\sqŒt¿{Ýr~¿vwrKéÇB·äËšQrG°Ü˜Ü˜Üê€Tð©àSÁzÚT‡l»iÓ…ÜRúQ̤t†ÅÌSjUÔ´¨iQS¹u9ëó}¾ÞÕI/¥§D K±N“ÎpÜи¡qC©C( àM_CÐ6R…y…y…yroƒ¿Ž óL%Ê—f\u§ƒ…ƒžï©…´iÒš T·Ì1™c2õ| Zea“áÚÇí4'‰ò¥{vÕŒ¯§ç†K‰o%¾•ø@ŽX…¥G±j“^J3Šô({¥Q^a^a¨Z;t;t;:4thè Ýû—îmIv»Ez)Í_°ÈÅÉE:·C_úúÐ×)@rÒmÓmÓm¥GÖ]놛{êîòõ"üäx7x¯—˜Ié ‹™§ÕmIÄ’ˆ%Ò½?§Îõlk^J3æÞ?ÜÞ\öÚúù=ò{PPÀÿ š¾/аQ[¡[¡[¡çðôerë3è_n|êø½Ï,¹ÃÍ­¾·úÞêKíÿ_ýõÿUZñ«>vjL ¹ñbêæ;nkäÞ_ÚÚÚÔ9b–}B­oà÷>³H2/7Šô(U‘6a b£c£cõœ„lê{¡Þ 2ÌËÚNÇ6k֛£J]éÜž?zþèù£ÔY§u§u§í*ÙU²«¤çy¥ÓzMuiA†y¹QÌžtVÅl‹™§Õ-§yNóœærg91ûO{Ÿ&ɼÜ8'ý‹[/=-œ¥¡KC—R{P&À処oiÐ6j={<ö{“\­Þ/Ù}±þEÇŸ|½+Ûë¹ùáCC 9DÕ´ùióÓæËÞüâ‘> }‘1;%Á×Û·§Khzn¯ÝzKë-\[À bE–IÄ N’yÑQ$F¹õN¤MªÎ„„„ÉUÂÉËkë· $ϼè¸1[u”Χf•f•fUÀwÜup—ôHÒx§ù·Õí‹íÒ\"Ï>г'U1ÛTñøÖå[—oõÜ¥cj@ë,’Ì‹ŽwÒö|áÕ^.OÞïv¿ÛýnT”‰pÙ¢é[VhC·,dYȲ=OíºØà—Úéæ{úÚñ ÿŒøÌsŽÜèFРAÔ›±ñ7õ7õ7•ÖÃüãFÛ}L¸7|Ü“¶x£“쵿ç Μ§ÞB¬ÈrDZš“j ç{úÚ‰Ä(I‘0©7c³-}[ú¶ti=4˜h1Á´maö±ašÅ¤CÆœoö¯óN”;R=vöØÙcÔƒ4×5×5·o7Þn¼ôx²n¤ß¨–íI5†bÆô\û;Þn¼Ýx1ÛñÈ›56k¬Üz}é‹-ÁnÇI5†Îùo¯E:“3–ÌX2c õ%£\z4}Ë `èžxvàÙ¹·Ð†•W´,$âÿÍ8,¸…oC¿+œêÜ’Îá”MS6MÙD¥§ŒË—3.˽¿./ÛÚÃý="þß|:wÿNïcrs˜p.á\Â9* À‹«³ô¨"Vs±²“pJEJ”½×Ågž ÒŒM‘i‘i‘ic«ÆV­¤U±xÕÄ…öîdCÆ¡»÷lØJ:‡ƒ  . Ò¼¨“'#NFÈ­Úµ°õÜH¶)y³${¯‹ˆ“'#¨4ã´øúâ닯K«¢Y´ÕfU £Ùkf’mJ÷u‰Xîì(÷þz˜ó0ça•%£\z;·ìܲs Mß²Eÿuhå¡•‡Vʽ©þ¨Þ¿‰û9â¾Ü¸B«éØBö™‚yïå½—÷5fÌfΜ(­ ‹j;Uó{úøHGŸ­Ä}=ãꔾ½÷øÝ³œ$½.9]rºäèòuùº|j À‹«³ÜÚ-VvŽÜ(’¡Üì‰TI³´…i ÓÊUHZ»u…í²É9rãöæsï´Þ&7{÷:Þëx¯#5à匸:âꈫÒc‹ëqËøZ6Ú¾A£4›É9ÒQÌŒ˜%éì‰Y¥ºŒÙó‘ÏG>)·v¿uL[›0ÎËÝö9¦CL‡˜Ô”péi»k»k»Óô-[4€ñ?†» w®çÙæöÕ̪üùøÏakÛý‹'<>¶rY,{mâý„û ÷©+<}û4V®NFœùÄÔj®ˆèÿÿŽç¿ñ·O›·Û!·CnssQ¥"Vj¹ãŒXåI;ÅG‘E2”ΘH’Ô„¥!KC–ʽ¿LO¨ã݃´S|¼¸uói·r3¶i즱›ÆRWJ#÷`îÁ܃rǙ韸¬hzƒ´#ÅÌÈÍ›˜Uª 'ÍNš4“«“ßR"œœkvŠ~ɵ5ŽŽûíæ˜/’ÎXç°ÎaÃt1º] Õå£\VŠ_LÓ·ôhãä™å™åɆ•j6¹c1»0/¨ƒæ'N®×éÇãC¹¹újÌWc¾CE¡¸³ƒÎ:;H®fš8о9'bÜÝdQ'¹¹Šuˆuˆu ¢”±jËsÄŠOò P¤AÙ»ž˜å™å™QQž»=w{îf™b™b™"­G[»šæ_>?RÓ'’äs÷Ä^G¯Érï¬O_ûôµO_ÓÝÖÝÖݦ®”^ÒФ¡ICåŽ9Ñ­üvµüœä#F1rs%f’ŠBqa6a6a6r5“¾lC¤ëv’n`Š¿oƒà:½~³²—½ëÉž{{îí¡¢PQІ2цgGŸ}v´Ü<|]‹- /Å=Ðés_6ôõ<*7?M×5]×tݳÔg©ÏR©%H­ú|Õç«dO W?£Ã2c> H [îÛæ¼ÜüL<2ñÈÄ#T€²%Vm±‚Ë>os@_ϣƙ|Dê Pn~Dz¤– uíᵇ×ÊUN×ûÞoYL-ø2ÙUãaœÉ'ûñ~wïµµ»›ÿQUöjéGQ¢EQKÊVxÝðºáuåŽEw?ô}kRâÐ^Ö²Ÿ†u‹ìÙúAEDÊDã—»¿Üýå®ÜÂì·«QÓ:ü‡nm¤î€Ó«{7n÷{ÉÑíbå‹•/ò 5D›¦MÓ¦õqëãÖÇMöáö[>»Ö,£h÷ñšBuŸDßµ¾å¹y°šm5Ûjv^x^x^8• ¼‰Õ¼ä_¤u'‘îDÒ“›‘©n³ífÛͶråЮٿk̽å·4¯GêN>W*m]çÞ¸äãÌ ×®'\©åíyÍç5Ÿ×ôØå±Ëc—ÜéçéÞØßÔÝ èë©Úüs+x ¯§x¥ró fIÌ•Cܬt³ÒÍJ%¯øI“Wü»íûêN>O?Kºê3oÀ1ÿèúe?;z>ô<5ƒŠ‹0”‰0 ²`å‚• VþMû³é§ÜBTøÄ—©~gZNû›‚£OGŸŽ¦Nð¢ | | |ºçuÏëž'ûìívÞ‹y¹UÔñþSM'™É‹4½'8lÒ_îµ[޲e9*;););‰jðO+{É«¿HêK>"Ñ•üÚE2¤NðrV¯X½bõß\mŸš¶¦[»fêûtçä7”üÚ›'6OlNø'= xð$Àå[—o]¾•;: íÞüó†µò-kûhÔ”|Ä+¯N™³DµàEegg—¼ú/é0鳿UÔ—|nøÅ†y„[Ö{f*{nõíß¾ñíº›º›º›T *.ÀP&Àx+œV8­p*9²,Ëó™Õü–.(ØÁתâžt|èø°ä \z}ʸæëŠbŽ'ižW”äséø–-nWÝÍZW«5¾äW·¾Åúë[PPÀP&ÀxI—â/Å_Š7É7É7É/yQÿø³fíë=¹ôï¾>nÛ”ý O¹hæî1íàôi—*kª¼Qòk>nø¸áãò-ó-ó-©”Ÿø¨ø¨ø(C>. ¹ôqÓ¹÷Â÷þî­´èŸ×þвö¿.91)½ysC^ËÒ´¥iKÓtÙºl]65@iÄê/’@ÉG3‘(DºICiùG¤2‘ÐþæÐœo’o’/R5€ò“¹:suæjëzÖõ¬ë•\’¾w\ž×—ö$:ܵ¦Ò’OÑŒã«49‡«,«×fz£Kõëš–üZzÌë1¯Ç¼ÜôÜôÜtj€2m8·á܆s†œÍý¸Åý¼í—9NCf{Ç)®éë4d¶wœØBC^‹xÕì}”Ÿ‚qã Æ}Sÿ›úßÔ7¤&·ê~lÕºÕóyGÃ4ï*-ÿ\¿Ã£ñ0¯îñ ?2䵜Zxjá©…ÔÔ‡0”‰0J%ÿfþÍü›{Nì9±§!˼Û(Ëǵ>Ú÷ûG‡œ»½ªèÿ¬JàYŸ¸¥­Ú_kbb°í÷·ßß~Ÿ=ŽÒŸïüùΟïx-òZäµÈ*v¨G݆£ÎÔŽÞèZÿUEÿÌVqí='Oú—õŒ~§Ý£FŽ9aWõnÕÎ&q†oۢʋ*/ª\ð~ÁûﳓTD"!ˆ´`øÑO¤‘LDJ)Ûä#Ò”HV"e¾m"ʼnDÇþÅ«u>û|öùìVË[-oµÜðþ¸ªï¹z×wœŸçèX%kñ¾!ÞuË6ùÜØ{Ñcíºüл-{Ýq®R»‡áÛöI£O}Òè¯! ùkû@E¤ÔFj##E6Šlô¢g¦Óû¹¬lšùû¡c]î—ËÓ|}ër_ü-/ºmâ‰WÇ^Æ«òÈü‘ù#ó &tšÐÉðêµù Q ³fKöN:ÚÜæÒo[V¹].Ûäóô»¤ŸÅ —~>ã<7è§^=¬^ôíe’¸7qoâ^ö/Œ `( `”õ)Á*í*íª˜wcÞyפ¼ŠD×îýM/çUÖÕ~uÔ h·Ã?ÁqÊ?»ÝmóŸÃŸv?ÛfÁ¾˜â;oIïÜ¢Uö"/»»ÁF[umº»æŠêW^îïÕè4:îœù9ósæìM(MÞ̼™y3ç<™ódΓҼ¿z¸ù¬¬ç>sñgÿn¶|MÚL7‡?ãÏ/²pjyðÌÒÆm\}¾4²Mÿ=¿/^ç´zýäÙµZî ûþóM6OúÍì|£þÇfó«7©2ûåþÞ/—}¹ìËew£îFÝboP‘DŠx¹#¤H/"ɈT#ŽH;"ùˆ$‘HG")‰ÔTšuA$7‘âØ›P&º&º&{b÷Äæ[Í·šïËU¸«IË)µþ5Þ;àÍ&M–MŸ’×üDì¿ç}âXûÀw¿Ôs~p8zÙâ6«Vý¼ÎyZÌ¢×µîñÚ׫íu¿OH#MóÖºí_îïuLtLtLü}Ïï{~ßÃΠ&Ù³g?± ± ±,MéýŸf—-»Ï^äškÓyÝ¿-»í>ÓµƒÓÈC ºló¡Å¿ÿUüIñ[¥ù{Å–‹WÁÞ„ÒdÄfÄfÄöšÓkN¯9/Wá G×s6ý|XïîÇöšß{œ³ïæª?Üiõýo{#š9W;üî²Úm¦tüeC³—ÌwÜùÇôF¯Oíø©uA‡ôv;êl(ÍûkuÔê¨ÕQý úôcoÂxІ2ÑF9*¸Tp©àÒÎÔ©;S­ßµ~׺T-áò3ðñÀÇŸK?—~Žço¡Âx8áᄇ~±ùÅæ›1nƸãî8ÝqºãÄ^` D¢éB™Gf‘ÊDBi½åÓ&k“µÉûý÷ûï÷wÚç´ÏiŸ2ß_ݺ'tO89ýäô“ÓuçuçuçÙwÔíAà 4 _¾0|¡’ÏLÅŠ­e¯¡¢ÈÏÏÿlígk?[«ÌwVÍôšé5ÓÅ]ëžuÖýYwöŒ `( `ü³ÁeRƤŒI3Ï<<óð«Š&­m[Û¶¶]wjÝ©u§²í³í³íÙ/¨øo-]†.ã„ç ÏžÁK‚—/yUï¯^­zµêÕ*!=!=!½`AÁ‚‚ìÆL$ ‘:DyUÇg‘¾Dc¿@n|uã«_Í ™27ÄDk¢5Ѿ‚¯S̰ža=ã×þ¿öÿµÿ½v÷ÚÝkÇ~`ÌŠ† +–ô[ÒoI¿ >0ü•}Ñ?|`øÀp±%b«Ø;¨èM~4ùÑä­lýcëÓ<¦yL{Uï¯ÉÛ'oŸ¼ýB½ õ.Ôc¿ `( `¼b·Lo™Þ2Ýê½Õ{«÷ð Ã' Ÿ`¶Ól§ÙÎÒLJ5kÖ„8„8„8ÒÒÒæäçäçä3ç0 ïéÞÓ½wñöÅÛo¯¸ºâꊫ=]{ºöt-«¸ï›ì›ì›¼°ÖÂZ k|zðéÁÏ«>¯ú¼*%iD$‘RDb)ý‘Y$(‘¦D²)‹9‡ñ¸=ðöÀÛcÇŽ_ÏûzÞ×ó$4Hhð Ûƒnº1çP²Â¼Â¼Â¼ôéÒ,©º¤ê’ªþ üø/(«3Sñÿgñ·ˆ¿‘™‡1xý(úQtòkɯ%¿º!tCè†6§Ûœnsº ÞZL™4Ô|PóAÍ×?Yÿdý“ëó¯Ï¿>Ÿ9€Š…0*Ž#º#º#GräÉMœ—8/qÞ‰C'8ÄÄepÚàöÈí‘Û‘÷¼äý¤ñIã“ÆgNÈœ9™€WK¤‘|D ‰ˆ™Jï¨ëQ×£®‰Þ‰Þ‰ÞÉ{’÷$ó¤^xÅî½wôÞѤCÿÿø7Ì Pzg,ÎXœ±H¼’x%ñÊ‘5GÖY£]ª]ª]ÊÌ€ZÑ•  *AT‚0¨ `P À 4€@%h€JЕ  *AT‚0¨ `P À 4€@%h€JЕ  *AT‚0¨ `P À 4€@%h€JЕ  *AT‚0¨ `P À 4€@%h€JЕ  *AT‚0¨ `P À 4€@%h€JЕ  *AT‚0¨ `P À 4€@%h€JЕ  *AT‚0¨ `P À 4€@%h€JЕ  *AT‚0¨ `P À 4€@%h€JЕøÿiVô[’yu%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/repeatWhen.png000066400000000000000000001576741431412030200255170ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìýy˜Ïõâøÿk9:m*DID -ö]vƒÊ íißuÚ—Ó¢Eû¦TZTÚÔ)-§¢Å6ψ'II‰ˆ(YbæûÇ|~×åó›ÆG¡f^n·¹®ÇÕÕ[3Ïçãõ˜—Çûq?¯×«\!9¡œ)È 0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0[´q¯Œ{eÜ+cv³Û˜ÝÆ]4î¢q™þ*ã÷¿ïø}Ç:æÐ1‡Žë1®Ç¸æø½`rÊ¢ÛݾèöÑ{Þkô^WO¾zòÕ“÷ÿzÿ¯÷ÿºüF«Ñ¡F‡.¿þòë/¿~xÿáý‡÷ÿ¾×÷½¾ïeÎ(Éâ?°øüéùÓó§_³üšå×,?èøƒŽ?èøßVû±ÚÕ~¼´Ë¥].íònònòn² å‚– Zšs@  ›ÿÔü§æ?õļ'æ=1¯úâê‹«/.ÿ§«¼oå}+ï;`æÎí=·÷ÜÞ€-Ó÷Õ¿¯þ}õAƒ ìßyÿÎûwþów§v­°k…]œúàÔ§Î æs˦Ò'êõ‰ŠÏ¹™ ´€(;®(¼¢ðŠ ÷L¸gÂ=GìzÄ®GìZ¾TjóM›oÚ|3æþ1÷¹¿`XÁ°‚a:€ôNá;…ïLº`Ò“.8z§£w:z§Ò¹;mñf‹7[¼™Ü•Ü•ÜUШ QA#Ý#PVÀ”ã·¿Õø­®tp¥ƒ+ý±c¯†SÙ©òþ—=Ùë‰ýg Ûg»Ã~úÆ·7z$jõľM_Ì>4ºÙ›ÑÂ'†4ýpØâþ75úòÉ÷oX÷ü+Ÿºò€þÍZ×í[¥Ö|k¾ûªÝWí¾¤RR)©TF…‘G ¬›Ø}b÷‰Ýë7¯ß¼~ó?¶K¬ÿT£÷|ñÒ=N>ÿ»O¯ouØÈ¡;?°]£Ë¹g4}0 ý§Ù+qû'5ýúí~ýW7.÷Ô˜O¯ûüÕû¾ÿóZ\R¿I•þà»×Ô¬\³rÍàúàúàú¢ÿy¥Gsà À”0¥ÔìY³gÍžuTã£Õxôº|ÚªOÕo_›vϲ†íçN~\ÛS 'NÌËÛTã‚oFÝØ®ó[ÝL£VGÿÜ~çj7ÿŽWwmÓµM×™íg¶ŸÙÞã P¶Ìí;·ïܾ=ûöìÛ³ï†ï;.n~qÕ­_yáîæ ²9«ßýºÍÒM»;]¸6¿f»dX§V7zï˜wüpß#6üÚš i6¤Ù/:|Ñá‹ß !PVÀ”"Ÿ|VðÙ ¥ƒ–Zº!‡V{5®\n÷^¯¶¼û­s ÷ŸX#¯â¦=PÛ ñ׉ãó:½uÇýƒõØ¿Wõ‘fmÈ•?Üõá®w]{ÚÚÓÖžæq(¥N.<¹ðäÁå—¼aŸ¿{×ýwÛý¥‚;jP§ ó„+;Íù v§…'æå½=àÁr·®3uÿ­*UÝ+ï—ôKú%kz¯é½¦·‡½$0e… @©°xúâé‹§çuÊë”×iý‡Sõ^«=`ÏKÆŸý\—æïž0±s^õ¿êXí7Æï&ŽÈk÷Q?j¹m«·¬ÞkÿõßK“ëš\×äºùoÎsþ›Ö@éñcÝëþX·Ûân‹»-^ÿŽ®ÎµÆTúÇØ3ž^Üüïó&,Éû{)ÚNœ˜—7ùÇ—Vµ|±ýƒMì}Ýúïå°ã;î°ãæÎœ;sîLk 8€²Bà/öé‚O|º`C^—0ºóco•¶µõéü§ š]»!w7é‰IOLzÂzøk}þÁç|þÁ†ì߆õð‚ÆŸ—­Ýéû÷?3½ù‘åO*ßµ|õßݵ?¨ýAmëa]0e… À_&}-}-}mýOמpæË>·¢çØ­:v/[‡k뎫_7¨Ón·7»pY£×¿#Nqòˆ“­ €?߸»ÆÝ5î®õïÖ®hxÊç´Z~ev_‡oËîîtÍnãGt:ûžŸ/½ôà'×¿Ãæ›;l®µQD ¬€ø Œ1jĨë?l ÓqÓ{Êî±ZI㸧ž}½ùÝë¿÷7[¼ÙâÍÖ ÀŸ#n7‰›¬‡6jÏG«4é“{»Ó‰/kqýúïý•6¯´y¥u"PVÀü©²ZY­¬Öú˜¾YþÎmn̽õuÇùFVhûU~û„¶)ñM§Ÿ>|º5°ùŒ¿xüÅã/^ÿîô«†mŸÛ»ÓïgîÔ®oGj}\i—’æaè´¡Ó†NÛ’W‹ @Y!ð'™ÖZÿiýK:N:´òã*=ûc»èúöÃsûpmÝñçYYåY›—µ×”’fæÃÙÎþp¶õ°iÍØvƶ3¶-iVó¦};V¸jñ‹Á¥í«o9»Ó_æŒy­cÓ.O·:ºêg%ÍÌ¸×Æ½6îµ-sÍÀ”0›ÝOþðä%~ºØ!“èWéŸK_íð–s¸¶î¸ò†±ßwÐæ‡Æ·ïõMI³ôÝÇß}üÝÇÖÀÆ[úèÒG—>ZÒ¾k¿¹Õ>¬ÐcéÂx\‡Ê[æîtu»qÝ:®îz`«üª¿”4Ks æÌ)ØÒVŽ @Y!°9•/,_X¾Ëð.û /éðèÇm£#Ú¿ºe®­;.¯µíðQÍT[Páäâ³ÔpAà ¬-·¶ÜZ{x€?jHáÂ!=‡õÖsXI»ÓÅÕƒ¿·ßÚîtE›1?u<êЛܳÒ{Åg©öžµ÷¬½ç¯wÿz÷¯wo9ËG ¬pxÀfôlßgû>Û·ÄÏú­ûö›mº;\û¿>89¨Ýv%ÍXÿþýû÷ïo]ü1/oûò¶/—ø¶Ï_¾Õ»õiv¤ëŽ‹öÏïÐnBI3vW»jÜUcËY?0ÀæóÞï½ñÞEÏ«w¹sÈC–tYÒeI3óÇÀlß^óí5ß^SÒQQpÔãO5mä@­¤qüOÏl>­¤Ù›qýŒëg\ol¸ù}æ÷™ß§¤ýÕðÑx¢]hIãG½^ü¹å®%ÍÞ´[§Ý:íÖ-a À›ÃÚžk{®íYÒß2bð#°Yt»ûÛÝß.¾q¿úèÓ»ð£C´ ïªxq½:?ŸÃ´x¤Å#…÷Þ[x¯•°!zuêÕ©W§â;«­8ae­©vž2ö¿ýÊù²øÖÝ®îvu·+˜Z0µ`jn¯"`sX÷µ¿ë'o8€MlÂø ã'Œ/i³¾¼OöP‡yŽÏ6d\½õ¸ª•4“áîáîáîÖÀúM~nòs“Ÿ+iOµ,H.êÐÙÎsCÆ_?k§cªÜ´çå»×ÿWQ7Þhx£Ü^K0ÀæPt‹ânù &¯Ÿ À¦3ºptáèú•êWª_©øÖ|ÄÕ¦4©êàì÷Žco{fûæ¿ñ†{•»TîR¹KA‚5,=€ß°¶pmáÚV¿´ú¥Õ/ÅwSC/}à˜FwÚmþÞqb¿ÁI‹‹J:Ž_3aÍ„5ruA À››¼©Àl2“&Lš0iBñxWjͪ´Gáþ«çUtdö»Ç5?ÈëÔþ’¦×í}yñ¹M¶M¶M¶µöŠûäùOžÿäùâ;¨jm÷®³G§‚&ÎëôµÝæ»Mh{Jµ­‹Ïí¨=Gí9jÏ\]Q0ÀŸI Þ0›L÷'»?ÙýÉâ›ï1+ž~ª™ÏýݨqÊ?_îÐrdñ¹m¾}óí›ooí×kj¯©½¦þÆGi´xrÓÙanÌ8mÉk¯¶*,>·‡ =dè!C *ü©ð§Ü[Q0À_E þ½`6…m¶]ضøV{÷Q»PþÕ‚†uZî˜l£Æo'¾—×ö{8¡ÒÍÅçyö%³/™}‰uPdÉKöX²GIÇÁkÏþ éô¦æÆÍ¾©W®J×â3<óÒ™—μ4÷Ö• P*þ–ƒ7€ À&ðìÌgg>;³øöú?]oŸRœ£±M5¾»ÿC-ŸZ|žïpÿ€ûX‡E†\0ä‚!ß5 Sº3ì*7Õ˜ËckšnW|žo›vÛ´Û¦åÞº€J1¸$0›@íjPûƒâ[ê%yá{íov4¶©Æåó¨ÃO%ý?0…wÞYx§ÕÐäÅ&/6y±ø~iáµ£óÛ½`W¹©Æ•'ý¸c¿’v§o¼]ðv.­+ 4ƒ×%°qÛëS–œ²ä”âè¶µ¿±×b‡b›c<1¯ËƒÕÏ,>çßÕø®Æw5¬I`K¶ìËe_.û²øN©áµ©\ÞNrsŒgîq×~+~ãcJÎ}îìssiu Àeæ´j‹Á0%þ_ü¿ø¿ñæÏÞ±sýéŽÃ6ÇøÞßZظñ9zùÐˇ^nM[²q³ÇÍ7û7Þü9¼i¿ºŸÛInŽ1xþñ¯šv.>ç¯T¥ú+Õsiu ÀeÑ–ƒ`6ÊM'ÝtÒM'ß(Ϫ>lF›=‡mŽqÁ3£º´kV|Î/¸ç‚{.¸Çš¶dw?{÷³w?[|§ôEüÆË‡i'¹9ÆÅùÁ-í(>秬=eí)ksiu ÀeÝ–ƒ`6Jý½êïU¯â›ãÕŸŽK:í]:¨Ö½ÎÝÞ¬xø¯+¯û]Ç×]qÖí~]óûÞYá®úKê<´çðÒyýO8µÓo¼±aŧ+>]ñikØ’µnܺqëÆÅwJ+ïûSÇÇìN7ËØhâ!y•K:4/Œ ãÂ87V— Kr; Àl”â[áƒ^¯Ù£â³¥ù5 ë^íg÷¼^óðýŽ;}´ï£ëþûR}ÄV8qb^^û5MçïýPñù_õêªWW½jev§Eöúºò»ßbwº¹Ç£û¶VíÜâó¿¢êŠª+ªæÆê€rUîÅ`€R|û{Þ'ÇüTóÕ²rÄÖûÊãËÕj¿î¿¹*emäÅ<Ò䨢.[Gl·||‹nÖÀú½s÷ƒQãæv§›{œòÜË·¶üÐz€âVÿwõWÿW  +[¯þìž×k¾_Ù:\ó `€ W¶^\vw§^ %Ù‚^xF·7+þkY~ìãÜX]g|rÆ'g|RüýÞùòåË×–ð5üúá׿¾÷Ö½·î½õ†§ß¢?¿}0¹¡øÖöÁjWµ;¤ÐÛæܶ]ýÅçÿ‹ƒ¾8苃¬LÀî´ÈÛ]tJáv§›{|mÜ=ó¶)>ÿS›zØÔÃrcuõ‰úD}¢â÷è÷ W…Û;‡Ü9äÎ!}‹þüŸ}×%°QŠosÏû䘟j¾êˆms7¬9·ëA¯Ÿÿ…-¶XØÂÊìN‹ôªrÄû5¶µ;ÝÜã]^|ÅÁ/>ÿó’yɼ$7V— °%(»Ñw]0¥ø–÷ ×kö¨ø¬#¶Í=¶_ÓtþÞŸÿU¯®zuÕ«V&`wZd¯¯+ß±û-v§›{<ºo»aÕÎ->ÿ+ª®¨º¢jn¬. WåFô]— ÀF©¿Wý½êïU|¼úÓqI§½±mޱàà §vú²øœW|ºâÓŸ¶&€-YëÆ­·n\|§´òî±?u|Ìît³Œ&’W¹¤Ãñ¸0.Œscu À¹$÷¢ïº`6ÊM'ÝtÒM'ßϪ>lF›=±mŽqÁ3£º´kV|Î/¸ç‚{.¸Çš¶dw?{÷³w?[|§ôEüÆË‡iwº9ÆÅùÁ-í(>秬=eí)ksiu Àe]nGßu Àl”øñÿâÿßÿçÑ;v®?ÝÛæßûûC ÷/>çC/zùÐË­I`K6nö¸Ùãfß) oÚ¯îçv§›c žü«¦‹Ïù+Õ_©þJõ\Z]0@Y´åDßu ÀlÜ6ú”%§,9¥øF¹m­Æo쵸,~zYéOÌëò`õ3‹Ïùw5¾«ñ] kØ’-ûrÙ—Ë~ãÃ2^{ð˜Êåí$7Çxöèwí·¢øœÏ>wö¹³ÏÍ¥Õ%”™Óª-2ú®K`¨ýAíjP|ë¼$/|¯ýÍÅ6Õ¸|xuø©ÄÏW»³ðÎÂ;­F€&/6y±É‹Å÷K ¯ßî»ÊM5®·‡ =dè!C *ü©ð§Ü[Q0À_Eôý½`6™I&M˜4¡ø†»Î+µfUÚ£pÿ‰Õó*:,ûÝ㚉äujIÓëö¾¼øÜ&Û&Û&ÛZ{Å}òü'Ïò|ñTµ¶{×Ù£SA“ çuúÚnóÝ&´=¥ÚÖÅçvÔž£öµg®®(àÏ$ún €MgtáèÂÑõ+Õ¯T¿Rñ-øˆ«LiRÕaÙïÇÞöÌöÍw->Ÿ•»TîR¹KA‚5,=€ß°¶pmáÚV¿´ú¥Õ/ÅwSC/}à˜FwÚmþÞqb¿ÁI‹‹J:v_3aÍ„5ruA À››è»©ÀlbÆO?a|I›òå}²‡:Ìsp¶!ãê­ÇUí¸¨¤™ www·ÞÖoòs“Ÿ›ü\I{ªeArQ‡Îvž2þúáø[;Så¦=/ß½~ñ™Þhx£ár{- À›ƒè»9ÀlÝßîþv÷·‹oЯ>úô.ø<à ïªxq½:?ŸÃ´x¤Å#…÷Þ[x¯•°!zuêÕ©W§â;«­8ae­©vž2ö¿ýÊù²øÖÝ®îvu·+˜Z0µ`jn¯"`sxï÷Þxï ÑwÓ€Ø,¾½æÛk¾½¦¤-{pÔãO5mä­¤qüOÏl>­¤Ù›qýŒëg\ol¸ù}æ÷™ß§¤ýÕðÑx¢]hIãG½^ü¹å®%ÍÞ´[§Ý:íÖ-a À›ÃÚžk{®í)únZ0›Ñ³}Ÿíûlß’6ñßÔ}ûÍ6ݨ­;ÎOGj·]I3Ö¿ÿþýû[WÌËÛ¾¼íËÛ–´×ú²ð­Þ­O³#]w\´~‡vJš±»jÜUã®[Îú€6Ÿu_,ún<€Í©|aùÂò]†wÞexIÇF?nÑþU‡kË+dm;|TóÕT8¹ø,5\ÐpAÃkË­-·ÖàR8¤pHÏa=‡õVÒîtqõàïí·¶;]ÑfÌO:ôæ÷¬ô^ñYª½gí=kïùëÝ¿ÞýëÝ[Îò€(+°ÙýðäOþðdIGl‡L: _¥~>.}µÃ [æáÚÊÆ~ßq@›ß¾×7%ÍÒw÷ñw[Koé£K]úhIû®ýæVû°B¥ ãq*o™»ÓÕíÆu븺ë­ò«þRÒ,Í)˜S0§`K[90e… ÀŸdZÿiý§õ/ééÐÊŒ«ôìí¢ëÛßr×~ž•Uîµy¹ñQ{M)if>œýáìg[?›ÖŒmgl;£Ä·ƒ®yÓ¾+\µøÅàÒöÕ·œÝé/sƼֱi—§[]õ³’ffÜkã^÷Ú–¹f`Ê €?UV+«•Õ*¿^ß,çˆ67æøgýVY¡íW5úíVئ¤y>}øôáÓ­€ÍgüÅã/ñúw§_½0thëüÜÞ~?kt§v}ëZ¥IŸÜÛNœ0xY‹ë×ﯴy¥Í+m¬€²Bà/“¾–¾–¾¶þækO8óåŸ[ÑsìV»—áÏQ{iÜ N»ÝÞìÂeuŽ^ÿýŽ8yÄÉ#N¶6þ|ãîw׸»Ö¿[»¢á)ŸÐjù•Ù}¾-»»Ó5»Ñéì{~¾ôÒƒŸ\ÿý›;lî°¹ÖF€²Bà/öé‚O|º üÝù±¿7‰ÊÖáZ:ÿ©‚f×nÈÝMzbÒ“ž°þZŸðùŸ°!û·áG=¼ ñçekwúþýÏLo~dù“Êw-_cýw÷AíjPÛzX— @Y!P*,ž¾xúâéyò:åuZÿQT½×jØó’ñg?×¥ù»…'LìœW½«}7qD^»ê¼øQËm[½Õ`õ^û¯ÿ^š\×äº&×Ísþ›óß´JëþX÷ǺÝw[Ümñúwtuî¨5¦Ò?Æžñôâæ/˜7aIÞßK[ôüãK«Z¾ØþÁ¦ö¾ný÷rØq‡wØqsgÎ9w¦5Pœ @Y!PŠ|VðYÁgƒ–Z:h醼êb¯Æ•ËíÞëÕ–w¿Õ`náþkäUü ŽÕ~8>¯Ó[wÜ?¨Qý{UYaÖ†\ùÃ]îúp×µ§­=míiw€Rêä“ O\~pùÁ²Å+_á®=úï¶ûKwÔ NAç WvšóWEß·4ºÙ›ÑÂ'†4ýpØâþ75úòÉ÷oX÷ü+Ÿºò€þÍZ×í[¥Öû¹Õî«v_µû’JI¥¤RaTFM€²nb÷‰Ý'v¯ß¼~óúÍÿØ.±þSuŽÞóÅK÷8ùüýï~<½¾Õa#‡îüÀv. çœÑôÁ,ôŸf¯ÄíŸXÔôë·ûõ_ݸÜScn<½îóWïwúþÌkqIý&U^øc?·rÍÊ5+× ®®®/¼¢ðŠÂ+<šN ¬€(;®(¼¢ðŠ ÷L¸gÂ=GìzÄ®GìZ¾TjóM›oÚ|3æþ1÷¹¿`XÁ°‚a:€ôNá;…ïLº`Ò“.8z§£w:z§Ò¹;mñf‹7[¼™Ü•Ü•ÜUШ QA#Ý#PVÀ”aóŸšÿÔü§ž˜÷ļ'æU_\}qõÅþZå}+ï[yßsÌ0wnï¹½çúÔ4€-Ô÷Õ¿¯þ}õAƒ ìßyÿÎûwþów§v­°k…]œúàÔ§Î æs˦"PVÀä”E·/º}Ñí£÷½×è½®ž|õä«'ïÿõþ_ïÿõÆ¥ÕèP£C—_ùõ—_?¼ÿðþÃûßëû^ß÷2ç”dñ‹Xü@þôüéùÓ¯Y~Íòk–tüAÇtüÆïN«ýXíÇj?^ÚåÒ.—vy7y7y7YÐrAË-Í9 °E÷ʸWƽ2f·1»ÙmÜEã.w‘9à¯2~ßñûŽßwÌ¡csè¸ãzŒëaN€ßKÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„¼q.*\ô~áû…ï޹uÌ­cnøéÄO'~jbØ|¾©ùMÍojŽ=sì™cÏ|¿æû5߯¹|çå;/ßÙÌ ÿ†¹Cç;ô­†o5|«á/xÁÀ=çî9wϹå7Z½cë[ïØ› o*¼©0Ý%Ý%ÝåǾ?öý±¯9ß’­j¸ªáª†“š|Ð䃺â¡+º¢ãüŽó;Î/¿‰¿ýñÛ¿ýs=wÑsÍ(7£ÜŒr…—^Zx©™È=páW½¿êýUï»Î¸ëŒ»Î(ÿiP¡A…^úçKÿ|éŸ?\öÃe?\æqÉU«Ÿ^ýôê§ógçÏΟݳGÏ={üU«î¢Îu¾¨ó¤_&ý2é—Â5…k ×xt(îÇßyüÇ‹¯3¥Ó€×´YÓfM›g8{ÄÙuÞ¨óF7Ê—J§½Ï2-ë¾Ë¾Ë¾Ën9î–ãn9®|)6hÅ ƒVütïO÷þt¯G"0”-[D^»ríʵ+‡í8lÇa;nLk»h¿ö{ïuÝMO=pþ3#:Õ«wä»çv{¾ñ¿âé=æ6Û*» ççÍ ¾ì>¾éqoxä?mýÈ;í®>lû /¯?¢Ö u¾ÜkÇJÕþØÏíP¹Cå•§>?õù©Ï[²eÅ‚ì¼`çK>ºä£K>úc{å*ݻےSƒ£¦Õxºßñ—uH­WVß}cƒÏFïöè—MÞNïxjX³³’ð©ŠÍxxÀü&5ÿÓãöéõ?¸=ý×iu.éñn‡‹ªmÔ›–?xâƒ'>xâòÁË/ìÑÜ’ ÀP¶äxž|÷ä»'ß]«J­*µªüŽWß¾h¹ÏޏòŸcšT]Öóœêöî—·©Æ¯»Ÿzxëowλ­~•f#ömT¥í†_Û9ïžóî9ï.z~Ñó‹ÄàRgu½ÕõV×{°çƒ=ì¹ái¥.~ØíÚ~]~ý!õ?é;du«f……'æåmª±àµ I§Uã^vdó~׌8³Î7üÞk¾ûàŒNÊzú]w\Ò6ÚþÆ#î;|Ê>y%ÝûI'žtâI'®é¶¦ÛšnVK.€ l)“ø™Óž9í™ÓJ Qï¯9hïEËZœÓ¥CÜK¿ëŽŸ<âœVmן§}>íóiŸ[ècYþ²üeùU­úkÕ_KšçÿîïʆäRô->2á´N3opÁ7µß+iNŸsúœÓçÜQpGÁVNn€ l)cø½›ß»ù½›KŠOg5>ìåýžýuÄùS:ÛéwÝñÛ§NoÒ¶Òú3ð¼™ófΛi¹ÿ^¿vÿµû¯Ý[_ØúÂÖ–4·Ù›ƒžjöRn§ßâã SnœV7+iNn¼ÿÆûo¼ßúÉ 0”-e&O›9mæ´™%§³¯©»ï~ó Ú]uúfËI¿ëŽ Ž>ã—v”ø©´yµòjå­ülåg+?³è7ÜÇ^qìÇ–4«ãÏx.¯ù»[Zú]w|ö…¾çÕ»¥¤ù2xÈà!ƒ­¢²N€²¥ àå§/?}ùé%E¦#O< æ>W¯éqÁ?:]¾e¦ßuÇ9[Ÿöt›‘%ÍÕ%+.YqÉ ‹~C¼YíÍjoV+i&ƒ?žß´õ–œ~×ûO¼ªÜ!‹Jš«é•¦Wš^ÉŠ*»`([Ê@¾h›‹¶¹h›âùa÷ÇwÛªüàŸß9·q‡‘ÒïºãGŸ°w˃K r£óGçηôK2÷‘¹Ì}¤¤Ù{º×MO×]+úþ_㬉oçµ9§|jîX|Æ*u«Ô­R·Õ W7\ÝÐê*‹àMëå/|y`ÑöÕTÿQËî]vï²{Í ›J©ÀcßûÎØwJJq_~wÊ ­O”{K¿÷Ÿú‡•4{Ë^Xö²üü_Þ/|¿ðý¼ùyóóæŸ±Ó¿ûçÝûíU8wâð¼¶¢oñqÅ9cwíxlÅg*ôÞ­GñÙ»wÙ½Ëî]f‰•Eð¦²êëU_¯úº¤çd1€M¥”àÕ#W\]â[¿ôk— jK¼ÿñåÞ]òüs¯ëT«P|¯Û꺭®ÛÊ/ÀºFN9mä´“ùȤw¡÷ÿ1NßýõoWÒ~Óã›ßô°ÒÊxSY÷µ¿ë'°1Ji~îáç~îáâÇâ­zV¿o¯ò…{×Ì«*ñnÈ8ÿÙ3Þm[PRf˜µï¬}gíë×`õ «oX}CI³ {↦‘¸»áã}í/»êàyÅgò¸vǵ;®õV¶À›ÊÂ×¾¾ðõ[ÞØòÆ–å7˜ ÀïUêð/øK‰¯‘šñF¯9­w“uïøäù©Û³ø|žÖç´>§õñk0äâ!¹¸øüüóζKª*èþÞqe›±£;ÞYÒoñ´w¦½3í«®¬€71€Í§Ôàj¾Pó…šÅ¾/Îü¼+)÷«Îi}ƒ ûÇÆ·{ôÿ°ÑOÅgõøŽßáø<ù–ðæ&°i•¢¼öµµ¯­}­¤Ãî¹/ŸþDÛžRîÆŒ//ëòlƒ3‹ÏmŸ®}ºöéºeþ„3ÂáŒâsrʃG.¬q’ˆ»1ãš>8·Ó£%ýFÏûdÞ'ó>ñ\ú À&1€WŠð‡û|¸Ï‡û?Úî5ô5o7~\qßy:žZRBXÙteÓ•M·´_€ö;µß©ýNÅgã³§_opø"îÆC»«bƒK‹Ïp¿ýô[à)¸ô€ÿ*b0L) ÀçÎñç_ü8{òQ'¼ÔòfùvS} ZT«ýHñyŽ^‰^‰^Ùr–þ¢:‹ê,ªS|دÆqw.üjâмÖòíÆ?›¾Úá…’bUAó‚æÍ=—fpi °áJE^5iÕ¤U“J:Â^»ð‚:}Tš“ê#£Û]sØ?Š®vF·^Ñá¿–æ«9â”ÿ´¾ë7^iý^ÿèõ-gé¿ú諾úoPüò‚;¿npzé ¨Éܧ5k}ÞsÇL¬ùlÝ}êµg…ÊwWzk·ÕÝU³QÅÇ»5oóý>³ûu¸¼õ!ÕWÜ5öàŽ§”Î |Î=·¯ù¯ïÿbÞó¾˜ç‰¸4€K1€õ+xʈ)#¦Œ(~`}ÛÃ-÷¨S»T¿¦v—Þ»æ•oÕµúÝ{íò§‘R|Íõ{WÍÛ³¤H°zÖêY«gm K?ohÞм¡Åg`Ñ®ù Úý‹£é.wÍ+ùÂSž?àò¿Ó¤z/þ£ÅÄҀ߿ô™¤y§âW;`Ÿû ØÇqi&—fb0Å•Š|ÿ«÷¿zÿ«Å©§¬8±SËY¥9ýÞžßò¶:ÿV)ío}sÜüåÚGýÆ+2ûÑÿ‹þ¹½èW-[µlÕ²â÷^ý¨ªcö]riÿJW^yH¶îµÚò€Ù•^~ò̺ÖíþQßo¹uÑ+ƒï=ëÒ±¿½O«½Nßãëþù—ÆÛ¶ÿºôàåk²_:nS|Îl×`»Ûy".Íà²B  H©ÀM§4ÒtJñƒéœ×¹ãé¥!—.¸ðÌríyåÒ®‡6ÞwU‹ªµ4˜µÏß÷ü¡¤#õÒ€Çï{ì“Í_*~å/Î}qî‹ss{ÑϨuÝe;ô:hÿhÃ#n8åT®UÚðÌoÍjÝ·øÌœ4pÒÀIžŽK'8W‰Á¹ê/ÀÑ3Ñ3Ñ3¿ñf¼wôü¶Ù xsçîW7¬ÙuKK;û¼²Ï+û¼òw}îÄcòj–¶·MÞðˆ{lÜé£}ÿÏ+€¯œtZ•ž(mxÉËÑÖí->óWßzõ­Wßêé¸t€·b0@.ù‹ðkß½öÝkß?VžVñ¤I­>€7÷xÛ€–êÔÞÒÒNñûÝïoÕö©°oiK¿2®=äƒÇ:½ÐçØ³×tTѽìuaåÚ»Ÿÿí{ï]Þ¶ji»Ú•ýÆ®èø)ñ¤íOÚþ¤í=—Nð–f£bpº,]–šC€¿Ö_€×”üõðSÏiý«¼¹ÇG®hwÊ¡«Êoñš=\7©Ò´l¥ß¢Oüí0¹Ù{'EwQ饊Mw»?Þö‰ÑM§”¶×þk:ÿ¦Ó%Öäª1'9yÌɶV­R€gO9í¾6oÀ›{|²R‡×m#Z´=¬ñ{{-)ýÑwF·7+þë©ÍŽº¤ÆÍë^ÓG[S¹`R½ÿÑbbéL¿ÿçõÊ]>x½Ó+Ö䪂Ñ£ FÛZüµ¼Ø+€½¸T¿xõÉãÎèXxWÿ‹û\¾â»úìvBÑ5Wßµê#{ü÷Á¿_U÷Õ«z¿ÿbÇJsúõ `ð `þY³Í˜mÆlsûÒÛ—Þ¾Ôg—¶Ï.ztrõ«¬|ð—­ßœÒºAã·½­òCE×¹Ç'{l]þû›÷óáeáeáežŽK'8—ˆ¾[‚¿8¯¹bÍk®(~Ü|àôÊ +^&o¾qÉgWmeñ+?kéYKÏZšÛ‹~ØÎÃv¶óo¼ñx“A-›Ýû×&Òsß:f—𽋮§ÆÒj;WØ«èŸàú=ûïïK[¾sÀEê|V|æg5vÖXOÇ¥“\Ö‰¾[šr¥á"šNi:¥é”âÐ+9¯sÇÓàÍ1Žß÷Ø'›¿ôo¾=÷Ź/ÎÍíE?sðÌÁ3¿÷Û·»pbm"m»¶É‰{W+¿‰”¶Üàú:k÷ü¼jûUÛ¯ÚÞÓqé$—E¢/À–¬Tàû_½ÿÕû_-~=eʼnZ΀7ÇxsÜüåÚG¿ò/úÑÿ‹þ¹½èW-[µlÕ²â÷^ý¨ªcöø‹ßºú®UÙ㿹€—¯É~é¸Mñ+l°]ƒíl牸4€Ë Ñ€"¥"O1eĔŦo{¸åuj—•7‚^7—êë¬ß»jÞž%Å€Õ³VÏZ=kKXúyCó†æ ->‹vÍoÐnlYÿ´ÝÒ6¾é3IóNÅg{À>ö°'âÒL.ÍD_Š+xÕ¤U“VM*é¨zí ^èôQÙÊÀ¥yœ9â”ÿ´¾«ø<÷úG¯ôúÇ–³ô_}ôÕG_}´ø<¼¼àίœ.ÙnÚñœ3zn_sŸßxÅù¼/æ}1Ïqi&—6¢/ëW®ô\Ê9ÇŸsü9Ç?¶ž|Ô /µ¼Y¸ÝTcß‚Õj?R|ž£W¢W¢W¶œ¥¿¨Î¢:‹êŸ‡ö«q\Å ¿š84¯µp»ñãÏǦ¯vx¡¤(Uм yAsOÄ¥™\ˆ¾l¸R€?ÜçÃ}>ü×özH‹·?®¸ï¼O-)¬lº²éʦ[Ú/@ûÚïÔ~§â³ñÙÓ¯78üùvãÇ!‡ÝU±Á¥Åg¸ß‚~ ú-ð\ú ÀÑ€?¦൯­}mík%jÏ}ùô'Úöq7f|yY—gœY|nûtíÓµO×-ó œÎgŸ“S™÷‰§àÒOþ3‰¾l¼r¥í‚^¨ùBÍj?à¾8kðóþ­DÜ?6®:ó¼eÇ•æTšSiN¥-ó`MÞš¼5y%ÍÌÌ»ßú¤õ RîßîÑÿÃF?ŸÕãw8~‡ãwðä[VÀ››è À¦Uêð/øËÀ’޼g¼ÑkNëÝÝß;>y~‡Gêö,>Ÿ§õ9­Ïi}ü ¹xÈÅC..>?ÿ¼³í’j‡J¹¿w\ÙfìèŽw–ô[<íiïL{Ǫ++àÍAô`ó)W:/빇Ÿ{ø¹‡‹·êYý¾½Êvì]3¯ª¬»!ãügÏx·mAI9aÖ¾³öµ¯_ƒÕ7¬¾aõ %ÍR4쉚F²î†÷µ¿ìªƒçŸÉãÚ×î¸vÖ[Ù"o*¢/ŽR€W\=rõÈ’Ä_úµK‡µÅÝÿÇørï.y þ¹×uªU(>‡×muÝV×må`]#§œ6rZI«nÙȤwq÷ÿ1NßýõoWÒ~Óã›ßô°ÒÊxSyyàË_(ú°¹•+Í7ö±ïŒ}§¤#ò/¿;å„Ö' ½%ƒ_ÈûOýÃJÌ™/,{aÙ ~þ/ï¾_ø~Þü¼ùyó‹ÏØéßýóîýö*œ;qx^[¡·ø¸âœ±»v<¶â3zïÖ£øìÝ»ìÞe÷.³ÄÊ"xSYõõª¯W}-ú°¹•+ý—xÑ6msÑ6ÅËw|·­Êþùsw)÷®;~ôÙ {·<¸¤Ì0:tþè|K¿$s™ûÈÜGJš½§{Ýôtݵrïÿ5Κøv^›sÊ÷ø æŽÅg¬R·JÝ*u[ÝpuÃÕ ­®²HÞ´Ö}°è ÀæPðòÓ—Ÿ¾üô’‚Ü‘'PsŸ«×ô¸à.—~çl}ÚÓmJ|ëìKV\²â’ý†x³Ú›ÕÞ¬VÒLÿ~<¿iké·hì?ñªr‡,*i®¦Wš^iz%+ªì€ l)WV.tÚÌi3§Í,)2}MÝ}÷›_ÐÓ7[fú]pô¿´; ¤ù©•W+¯VÞÊÏV~¶ò3‹~Ã]qìÇ^qlI³:þŒçòš¿»%§ßg_è{^½[JšŸ!ƒ‡ 2Ø**ë`([Ê•­Ë}ïæ÷n~ïæ’‚ÓY{y¿gqþ”NGo9é÷Û§NoÒ¶Rùõš7sÞÌy3-÷ßë×î¿vÿµ{ë [_ØúÂ’æ6{sÐSÍ^ÚÒÒï SnœV7+iNn¼ÿÆûo¼ßúÉ 0”-åÊâE?sÚ3§=sZIñ©ãý5í½hY‹sºt¨“Ûé÷“çOœÓªíúÓï´Ï§}>ís }c,Ë_–¿,¿ê¯U­úkIóüßýï]ÙðÜŽ¾‡L8­ÓÌ[\ðMí÷Jš‡Óçœ>çô9wÜQp‡•“`([Ê•ÝKìoýí±¿­?~vúÉ]¯œ{é÷µê]?jXeý÷þñq÷ñq–ø¦²øõů/~½ÊUv¨²CIs~Cõsž>¨Ïšï>8£Ó€\J¿KÚ†CÛßxÄ}‡OÙ'¯¤{?éÄ“N<éÄ5ÝÖt[ÓÍjÉ%0”-åÊú <ßãùÏ÷X }ò„Ôýga•Þ{äí^v£ï’îg7lËi˽¼ÆœõßïÔySçMgqoKò—ä/É?ìŒÃÎ8ìŒ?q¹Ò¾£*<öùÂ7ÊþzYO¿ñ®OŒi:uýë­÷s½ŸëýÜšO×|ºæS+$÷ÀP¶”ËÛ5jÔ¨Q£ÖŸ©˜_ùáŠÍ'O>á³–O—­ôûê›]_lP¸þ»«2¦Ê˜*c¾=âÛ#¾=²ÞÜV–_Y~eù^ÿëõ¿^ÿ[ÿãr{Õ ¿¬ÓeÅò±};^]V¢ïwx¸íÈS®;òóÇ®ÿîúõé×§_ŸÂ{ ï-¼×ªÈU0”-åréf¾¼äËK¾¼¤b튵+Ö^¸:æåÚ-÷=~úû'txïÒ–{×Ö¾ W§Á£?ëþ÷&³öì·û»%ë¿—³8û‡³øåð_ÿåp úO5ªpTá¨Ço{ü¶Ço+¿­¹é˜ºß-ïÛáóÒ}¿¯7jt»“nì|îír/ùõòëå׳¶0”-årï–V¾´ò¥•/õ9©ÏI}NÚ”Õâ“}×T™V÷–M ÿªè»z«óë¸pÐï¨ûmù öÖ3o=óÖ3qi0e” S&ì¶t·¥»-ÝÇîæ«ÎoV»åÜ›‡ïÚ¶ë_}§þrã–ïžuI÷[÷{}C®9ïǼó~œ_a~…ù<â[Ê–r¹}{“ïž|÷ä»kU©U¥V• «§¾h¹ÏޏòŸcšT]ÖóœênÚÜûu÷SoýíàÎy·Õ¯Òlľª´Ýðk;çÝsÞ=çÝEÏ/z~Ñó–oi³ºÞêz«ë=ØóÁžöÜðÇ´R— ?ìvm¿‡.¿þúŸô²ºU³Mz ^›tZ5îõgG6ïw͈3ëxCùßiè~C÷º_áý…÷ÞïQÞÒÀP¶”Ûnríʵ+×®¶ã°‡íX~#´]´_û½÷ºî‰¦§8ÿ™êÕ;òÝs»=ßø_ñôs›m•]Ðóóf_vßô¸7<òŸ¶~ävW¶ý…—×Që†:_îµc¥jìçv¨Ü¡r‡ÊSŸŸúüTÑ·ÌX°ó‚ì|ÉG—|tÉGìq¯|B¥{w[rjpÔ´O÷;þò£©õÊê»olðÙèÝý²ÉÛéO kvV>U±Yã˜ß¤æzÜ>½þ·§ÿ:­Î%=ÞípQµ¹³Ú<ñÁhòA“z芇®x芎ó;Îï8S…Þã·?~ûã·î¢ç.zî¢åf”›Q®ðÒÂK /5ó¹GÞ8‹ .z¿ðýÂ÷ ÇÜ:æÖ1·Nütâ§?51l>ßÔü¦æ75Çž9ö̱g¾_óýšï×\¾óò—ïlf€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@ŽøSð˜mÆl3f›ò[Œ¢N*”y0@ŽØâpÑ¿³Õ˜­Æl5¦Ü˜rcÊeYAV­ÍÖfk³_³_³_³ÕÙêlu¶2[™­ÌVd+²Ùòly¶<û9û9û9[–-Ë–eK³¥ÙÒìÇìÇìÇì‡ì‡ì‡lq¶8[œ-Ìf ³ï³ï³ï³ùÙül~ö]ö]ö]67››Í;;;Ífg³³ÙÙ7Ù7Ù7Ù×Ù×Ù×ÙWÙWÙWٌٗٗٗlF6#û"û"û"›žMϦgŸeŸeŸeŸfŸfŸfS³©ÙÔìÙÿ²ÿeS²)Ù”ìãìãìãì£ì£ì£ìÃìÃìÃlb61›˜}}}ÏÆgã³qÙ¸l\66›ÍÆdc²1Yš¥Yš%Y’%Y”EY”…Y˜…Y~–Ÿåg£³ÑÙèld62™ÈFd#²÷²÷²÷²w³w³w³·³·³·³aÙ°lX64š ÍÞÌÞÌÞÌÞÈÞÈÞÈ^Ï^Ï^Ï^Ë^Ë^Ë^É^É^ɆdC²!ÙKÙKÙKÙ²ÿdÿÉ^È^È^Ègƒ³ÁÙsÙsÙsٳٳٳÙ3Ù3Ù3Ù lP6({*{*{*{"{"{"˜ Ìfeeefff²Ù€ìáìáìáìÁìÁìÁ¬Ö?ëŸÝŸÝŸÝŸõËúeý²{³{³{³{²{²{²»³»³»³;³;³;³;²;²;²Û²Û²Û²[³[³[³¾Y߬ovsvsvsvcvcvcvCvCvCv}v}v}v]v]v]vMvMvMöïìßÙ¿³«²«²«²+³+³+³Ë³Ë³Ë³Ë²Ë²Ë²K³K³K³‹³‹³‹³‹²‹²‹² ³ ³ ³ÞYï¬wv~v~v~v^v^v^vNvNvNvvvvvvvfvfvfvFvFvFvZvZvZvjvjvjÖ+ë•õÊNÎNÎNÎNÊNÊNÊNÈNÈNÈŽÏŽÏŽÏŽÍŽÍŽÍŽÉŽÉŽÉzd=²Y÷¬{Ö=ûgöÏìŸY·¬[Ö-;2;2;2;";";"ë’uɺd³ÎYç¬SÖ)ë”uÌ:f³öYû¬}Ö.k—µËÚfm³¶Yë¬uÖ:;<;<;+Ÿíšíšíšíœíœíœí”í”í”í˜í˜í˜ííímŸmŸmŸm—m—m—ý-û[ö·l›l›l›lëlëlë¬\V.+—¦…iaº6]›®MפkÒ5éêtuº:]•®JW¥+ÒéŠô—ô—ô—ôçôçôçô§ô§ô§tiº4]šþ˜þ˜þ˜.I—¤KÒÅéâtqº(]”.J¿O¿O¿O¤ Òéwéwéwé¼t^:/ý6ý6ý6“ÎIç¤ß¤ß¤ß¤³ÒYé¬ô«ô«ô«tf:3™ÎHg¤3Ò/Ò/Ò/ÒééôtzúYúYúYúiúiúi:5šNM?I?I?I§¤SÒ)éätr:9ý(ý(ý(”NJ'¥Ó‰éÄtB:!ŽOǧãÓqé¸t\:6›ŽMǤcÒ1i‘$MÒ$Ò(Ò0 Ó0ÍOóÓütt::ŽLG¦#ÓéˆtDú^ú^ú^únúnúnúvúvúv:,–K‡¦CÓ¡é›é›é›ééééëéëéëékékéké+é+é+étH:$})})})ýOúŸô?é é é éàtp:8}.}.}.}6}6}6}:}:}:”J¥O¦O¦O¦O¤O¤O¤§§§¥¥¥¤¤¤Òé€ôáôáôáôÁôÁôÁ´Ú?íŸÞŸÞŸÞŸöKû¥ýÒ{Ó{Ó{Ó{Ò{Ò{Ò»Ò»Ò»Ò;Ó;Ó;ÓÛÓÛÓÛÓÛÒÛÒÛÒ[Ò[Ò[Ò¾iß´ozSzSzSzczczcÚ'í“öI¯O¯O¯O¯M¯M¯M¯I¯I¯I¯N¯N¯N¯J¯J¯J¯H¯H¯H/O/O/O/M/M/M/I/I/I/N/N/Nÿ•þ+ýWzazazazAzAzAz~z~z~znznznzNzNzNzVzVzVzfzfzfzzzzzzzZzZzZzJzJzJÚ+í•öJOJOJOJOLOLOLOOOKKKIII{¦=Óži÷´{Ú==:=:=:í–vK»¥G¥G¥G¥G¤G¤G¤]Ó®i×´sÚ9íœæ¥yi^Ú)í”vJ;¤Òiû´}Ú>m›¶MÛ¦mÒ6i›ôðôðôð´UÚ*m•¶H[¤-Òæió´yÚ4mš6M›¤MÒ&i£´QÚ(m˜6L¦õÓúiý´^Z/­—–––šššœœœÖIë¤uÒƒÒƒÒƒÒÓÓÓýÓýÓýÓZi­´Vº_º_º_Z#­‘ÖH÷M÷M÷M«¥ÕÒjiÕ´jZ5Ý;Ý;Ý;­’VI«¤•ÓÊiåtÏtÏtÏ´bZ1­˜VH+¤ÒÝÓÝÓÝÓÝÒÝÒÝÒ]Ó]Ó]Ó]Ò]Ò]ÒÒÒÒÓÓÓÒÒÒíÓíÓíÓíÒíÒíÒ¿¥Kÿ–n“n“n“nnn–K˥咤0)LÖ&k“µÉšdM²&Y¬NV'«’UɪdE²"Y‘ü’ü’ü’üœüœüœü”ü”ü”,M–&K““““’’’ÅÉâdq²0Y˜,L¾O¾O¾Oæ'ó“ùÉwÉwÉwÉÜdn27ù6ù6ù6™“ÌIæ$ß$ß$ß$³’Yɬä«ä«ä«df23™™ÌHf$3’/’/’/’éÉôdzòYòYòYòiòiòi25™šLMþ—ü/ù_2%™’LI>N>N>N>J>J>J>L>L>L&&“‰ÉÉÉÉød|2>y?y?y?›ŒMÆm Šž’8‰“8‰’(‰’ ’ ÉOò“üdT2*•ŒLF&#“áÉðdxò^ò^ò^òNòNòNòvòvòv24š MÞJÞJÞJÞHÞHÞHþ›ü7ùoòZòZòZòjòjòj2$’ I^N^N^Nþ“ü'ùOòbòbòb28œ NžOžOžOžKžKžKžIžIžIžNžNžNžJžJžJžLžLžL&“ÉãÉãÉãɣɣɣÉ#É#É#ÉÃÉÃÉÃÉCÉCÉCIÿ¤Ò?y y y é—ôKú%÷%÷%÷%÷$÷$÷$w'w'w'w&w&w&w$w$w$·%·%·%·&·&·&}“¾IßäæäæäæäÆäÆäÆä†ä†ä†äúäúäúäºäºäºäšäšäšäßÉ¿“'W%W%W%W&W&W&—'—'—'—%—%—%—$—$—$'''ÿJþ•ü+¹0¹0¹0¹ ¹ ¹ 9?9?9?9797979'9'9'9+9+9+9393939=9=9=9-9-9-9%9%9%é•ôJz%'%'%'%'&'&'&Ç'Ç'Ç'Ç%Ç%Ç%Ç$Ç$Ç$=“žIϤ{Ò=éžtKº%Ý’£’£’£’#’#’#’®IפkÒ9éœtNò’¼$/é˜tL:&’I‡¤]Ò.i—´MÚ&m“6I›¤MrxrxrxÒ*i•´JZ$-’Ió¤yÒÙ5Ù5Ù5Ù9Ù9Ù9Ù)Ù)Ù)ùGòäÉÉÉÉß“¿'O¶K¶K¶K¶M¶M¶M¶I¶I¶I¶J¶J¶JÊ%å’rqA\ÄkãµñÚø×ø×ø×xu¼:^¯ŒWÆ+ãñŠxE¼<^/ŽŽŽ—ÅËâeñÒxi¼4^/‰—Ä?Ä?Ä?Ä‹âEñ¢xa¼0^/ˆÄ âùñüx~‹ÇÅãâ±ñØxl<&‰Ó8Ó¢'€8Š£8ŠÃ8ŒÃ8?ÎóãÑñèxt<2ŒGÄ#âñ{ñ{ñ{ñ»ñ»ñ»ñÛñÛñÛñ°xX<,~+~+~+~3~3~3þoüßø¿ñëñëñëñ«ñ«ñ«ñ+ñ+ñ+ñËñËñËñKñKñKñ‹ñ‹ñ‹ñ ñ ñ ñóñóñóñsñsñsñ3ñ3ñ3ñÓñÓñÓñSñSñSñ“ñ“ñ“ñÀx`<0~<~<~<~4~4~4~$~$~$~8~8~8~(~(~(î÷ûÇÄÄÄýâ~q¿ø¾ø¾ø¾øžøžøžøîøîøîøÎøÎøÎøŽøŽøŽø¶ø¶ø¶øÖøÖøÖ¸oÜ7îßßßßßßßßß_________ÿ;þwüïøªøªøªøÊøÊøÊøòøòøòø²ø²ø²ø’ø’ø’øâøâøâø_ñ¿âÅÆÆÆÄÄÄçÇçÇçÇçÆçÆçÆçÄçÄçÄgÅgÅgÅgÆgÆgƧǧǧǧŧŧŧħħÄ'Ç'Ç'Ç'Å'Å'Å'Ä'Ä'ÄÇÇÇÇÇÇÇÆÇÆÇÆÇÄÇÄÇÄ=âq¸{Ü=îÿ3þgüϸ[Ü-îw‰»Ä]âÎqç¸sÜ)îwŠ;ÆãŽqû¸}Ü>n·‹ÛÅmâ6q›¸uÜ:n·Š[Å­â–q˸e܉>‰>‰¦DS¢)Ñähr49ú(ú(ú(šMŠ&E£‰ÑÄhB4!šÆGã£qѸh\46ÆDc¢1EÛÿ¢¿ö£"aFa”åGùÑèht4:ŒFF#¢шè½è½è½èèèèíèíèíhh44½½½½½½ý7úoôßèµèµèµèÕèÕèÕhH4$½½½ý'úOôŸèÅèÅèÅhp48========= ŠEƒ¢§¢§¢§¢'¢'¢'¢ÑÀh`ôXôXôXôhôhôh4  ˆŽŽŽŒŒŒúGý£þÑýÑýÑýQ¿¨_Ô/º7º7º7º'º'º'º+º+º+º3º3º3º=º=º=º-º-º-º%º%º%º9º9º9º)º)º)º!º!º!êõ‰úD×E×E×E×F×F×FÿŽþý;º:º:º:º2º2º2º"º"º"º,º,º,º4º4º4º8º8º8º(º(º(º0º0º0êõŽzGçGçGçGçEçEçEçDçDçDgGgGgGgFgFgFgDgDgD§E§E§E§F§F§F½¢^Q¯èäèäèäèÄèÄèÄè„è„è„è¸è¸è¸èØèØèبgÔ3êuºGÝ£££££££nQ·¨[tTtTtTtDtDtDÔ5êu:G£ÎQ^”åE£ŽQǨCÔ!굋ÚEí¢¶QÛ¨mÔ:jµŽZF-£–Q‹¨EÔ"j5‹šEM£¦QÓ¨qÔ8j5ŠE¢Qƒ¨AT?ªÕêFu£ºÑaÑaÑaÑ!Ñ!Ñ!ÑÁÑÁÑÁQí¨vT;:0:0:0: : : ªÕŠjE5£šQͨFT#ªUªGÕ£jQµ¨Z´O´O´O´w´w´w´W´W´WT9ªUŽöŒöŒöŒ*F£ŠQ…¨BT!Ú=Ú=Ú=Ú-Ú-Ú-Ú5Ú5Ú5Ú%Ú%Ú%Ú)Ú)Ú)Ú1Ú1Ú1Ú!Ú!Ú!Ú>Ú>Ú>Ú.Ú.Ú.ú[ô·èoÑ6Ñ6Ñ6ÑVÑVÑVQ¹¨\T., ‚pm¸6\þþþ®W‡«Ã•áÊpe¸"\®—‡ËÃåáÏáÏáÏá²pY¸,\. —†KÂ%á’ð‡ð‡ð‡pQ¸(\. † Ãá‚pA8?œÎç…óÂyáÜpn87œΠ焳ÃÙáìpV8+œ~~~Î g†3ÃáŒpFøEøEøE8=œN? ? ? ? ? ? §†SéáÿÂÿ…ÿ §„SÂ)áÇáÇáÇáGáGáGá‡á‡á‡áÄpb81ü ü ü ŽLJï‡ï‡ï‡cÃ±áØ¢Ã¿¢ÿw¿è/ù°HaŽG‡£ÃQá¨pT8"އ‡ÃÃáá»á»á»á;á;á;á°pX8, ‡†o†o†o†o„o„o„¯‡¯‡¯‡¯…¯…¯…¯„¯„¯„CÂ!áð¥ð¥ð¥ð?áÂÿ„/„/„/„χχχυυυτττO‡O‡O‡O…O…O…O†O†O†ÃáÀðñðñðñðÑðÑðÑð‘ð‘ð‘ðáðáðáð¡ð¡ð¡°Ø?ì>>>ö û…ýÂûÂûÂûÂ{Â{Â{»ûûÃ;Ã;Ã;ÃÛÃÛÃÛÃÛÂÛÂÛÂ[Â[Â[¾aß°oxSxSxSxcxcxcØ'ìö ¯¯¯¯ ¯ ¯ ¯ ¯ ¯ ¯¯¯¯ ¯ ¯ ¯¯¯//// / / / / / / / / ÿþ+üWØ;ìöÏÏÏÏ Ï Ï Ï Ï Ï ÏÏÏÏ Ï Ï ÏÏÏO O O O O O {…½Â^áÉáÉáÉá‰á‰á‰á á á áqáqáqá±á±á±aϰgØ3ìö{„G‡G‡G‡ÝÂna·ð¨ð¨ð¨ðˆðˆðˆ°kØ5ìv;‡Ã¼0/Ì ;†ÃŽa‡°CØ!l¶ Û…möaÛ°uØ:l¶ [†-Ãa‹°EØ,l6 ›†Mæaã°qØ8l6 † Âaƒ°^X/¬Ö ë†uÃCÃCÃCÃCÂCÂCÂ:a°NX;¬Ö   k…µÂZaͰfX3¬Ök„ÕÃêaõ°ZX-¬îîîîîîV «„UÂÊaå°rX)¬V +†Êááááîáîáîaù°|X>Ü5Ü5Ü5Ü9Ü9Ü9Ü)Ü)Ü)üGøðááááßÿ‡· · · · · · ···· · · ƒÂ 0( ‚‚`M°&Xüüü¬ V«‚•ÁÊ`eðKðKðK°>>¦ÓƒéÁ´`Z0-˜L ¦ŸŸŸS‚)Á”`r09˜|||L &“‚‰ÁÄ`b0!˜LÆãƒñÁ¸`\0.Œ Æc‚1Á˜ Ò â â ¢ ŠäùA~0*Œ F#ƒ‘Áð`x08>8>8.8.8.8&8&8&èô z݃îA÷àèàèàè [Ð-èt º]‚ÎAç sÐ)èt :ƒŽAû }Ð>h´ Úm‚6A› uÐ:h´ Z­‚–AË eÐÁ>Á>AÕ jP5Ø+Ø+Ø+¨T ª{{{•‚JA¥ BP!¨ìììììììììììììììììììììllllllü-ø[ð·`›`›`›`ë`ë`ë \P.(—___¿6mþÚü_óÍÿ5uþêüÕù+óWæ¯Ì_‘¿"EþòüåùËóÎÿ9ÿçüeùËò—å/Í_š¿4Iþ’ü%ù‹óç/Î_”¿(Qþ÷ùß矿 Aþ‚üïò¿Ëÿ.^þ¼üyùßæ›ÿmþœü9ùsò¿Éÿ&ÿ›üYù³ògå•ÿUþWù_æ™ÿeþŒüù3ò?Ïÿ<ÿóüéùÓó§çOËŸ–?-ÿÓüOó?Íÿ$ÿ“üOòÿ—ÿ¿üÿåOΟœ?9ÿãüó?Ο”?)RþÄü‰ùó'äOÈŸ?>|þøüqùãòÇåÍ›?6Lþ˜ü1EÇöEÇuEÛvøO½a€Í¡4ôP`€` GÀ0#`Ȱ äXr„,9B€€! À@Ž€` GÀ0#`Ȱ äXr„,9B€€! À@Ž€` GÀ0#`Ȱ äXr„,9B€€! À@Ž€` GÀ0#`Ȱ äXr„,9B€€! À@Ž€` GÀ0#`Ȱ äXr„,9B€€! À@Ž€` GÀ0#`Ȱ äX Ô9~ðñƒ\¾&w˜ÜaòæûégÍÒFi£tc®öû^ß÷ú¾WIßðôÁÓOÿ°Í‡m>lSÒŸyºáÓ Ÿn¸1×ðÀþìÿÀþ›êÓ7Ç£PVÀ0”h|Ÿßþú½ß§`Ÿ‚} öYyíÊkW^û{ÿÛµ‡¬=dí!ÉÜdn2÷ÊIWNºrR§a†uvhËC[Ú²ÒK•^ªôÒ>­öiµO«z»ÔÛ¥Þ.§6;µÙ©Íž<óÉ3Ÿ<ó§1?ùiÌŸ3'럙ÙSgO=õöüÛóoÏ?â¼#Î;â¼u¯¿Îu.¨sA‡É&w˜|í-×Þrí-“êMª7©ÞŸùX—¶yÞS¾òí”oàñàŒœñ3þÑòÄ–'¶<±h>«\Wåº*×U|·â»ß-zãz…õ ëßÐé†N7t*zKá5­Ö´ZÓjÓ^Û¦MÓ¯Ÿ~ýôë7_Î|õôWOõôõç¢ßâ’þ¯'Ÿ{ò¹'Ÿ»13vâm'Þvâm%}ÿÛ>¼íÃÛ>üs…¢uUô›ØvmÛµm×Ö¾¶öµµ¯ý?k©\r5Ê5ÿwó7ÿ÷e;\¶Ãe;üÞ7¦ÎÕßÓßû¬¸töÒÙKg˜0`€ Gï}ôÞGïÝ`VƒY fíùøžïùxõ]«ïZ}צ6}´é£—V¾´ò¥•‹>£Úß˰!`Jô{ÃÉ‚ \¸à¢TS”3÷ûf¿oöû¦èÏe¹ ÿéÿmðßÿmP”^Êÿ!Õ­vhµC‹þyîËs_žûòæž“ug¦(·œ÷ÜyÏ÷\ùPÿ6ߣ\:çù7ìR¸Ká.oÔ|£æ5ÛýÐî‡v?”ߤ}ýÑ×}}UïU½WõÞ´ëaÃmªµ÷{õ¾²÷•½¯,þÝŠ‚ܺ߹¤Ÿ[õȪGV=rc®aý÷ooo»ù~[—ìºd×%»®?Boˆ™ugÖYwËü=Ýð•Y}7fž¿.ÿuù¯½zJ$ ÀP¢ ?ÐhÁC Z°þ?¿!øÇ¥?.ýqiÑ«Á6mZÛûä½OÞûäÓ× ùY_œòÅ)_œRôƼåE¯;Ü´oW[úçy]E¯Üø8·á~¨öCµªmªõðçྫú®ê»jÓ®ê¢×˜®û'_øà…^ø`ÓFè¢hºi?ýwâÿÅ!GrÄ!Glü#XY?»ç³{>»gKû=ÝW_^^nüõ½>¸è™ÖßÔPœ,@‰Öÿë‘¿ùë‘ç?tþCç?´!GöëÀ‹[|ØâÃZÜúàÖÿ9‘osÌI‘ºûÔݧî>›öjw[¶Û²Ý–m|°)+ó\äçw~÷çw‹Þn·üŸè¨.Gu9ªKÑkŽ7~=lª¹z¦Ö3µž©UÒÛõê®Ww½ú÷Îðúß\ú‘ïŒ|gäº~ÞãóŸ÷xIþַθuÆï½†—ïùþ—ï/é{v~¤ó#Ù|xsü¶6œÒpJÃ)óÖâeë÷tCf»è °i¯¹è ¢‹ÞÛß×°.X€­ÿðýÂs.<çÂs6ü°¾¤\t|_ôI–ëÿÝwì¾c÷‡Ü4ä¦!7ÍZ6kÙ¬eEŸ+\ôö­¶ù°Í‡mŠÞ€ºès:KŒ©[í¶Õn[m¾¤TÒ•å´¢„¶â®w­¸«èµÏV|¶â³[œßâüç¯ÿûlÌ«!ËÖ<¹lõe«/[½þ«-z›ñ»úßÕÿ®þãîw߸ûÖ½æE‡/:|Ñ៼ÿÉûŸ¼ÿz»×Û½Þ®èõ”ë^ÛÆ„±Ó«üö×ú¿gIÿÕúÖŒn3ºÍèVÒ÷,úäÔß;ÛEŸ \ü»í>g÷9»Ï)黕t mwn»sÛï£|ùÂË^¾pÓ~úïûm-ZÏ÷žuïY÷žUô*Þ_ûå±_+ú ïaŸ ûlØgEon¿ùÂjYü=ýc³Ý¦j›ªmª¾YáÍ oV˜Ýüëæ_WôZÿl\6.wQÞEyåý™r‰,@‰þ¿öî<®æüÿÿ?3ÃÞvEQ(²TJ–’Ò~,Ù²U4D¢ìûÈ2vÆnìû>–AR–¢!”¥l‰²e‰ÄHHEËé|ÿèý»\úüN¯Þ'utΫÛõu¹ô·½ò“NO:=éÄ“€Å‚”÷…~Þõ…B¯üÇÜ?æþ1·d·%ﺷÂo×\üšäÝ »¤¢ˆ\\\âÄê[çï#ccÆÆŒê+òúм‹ý3ûgöÏ ²rᯰá膣Žgú…õ 릌§ÿ*R¥¹™s3çfçõ n¯ƒ8>§…W`yßå}—÷-Ý:e00 ¨ð¯Ú JháÖü¼æç5?—ìmB‹³EžÙžÙžÙůÉÜJs+Í­ô=÷¢c‹Ž-:&¾:çzëu®WY €?–ûXîc9¡¿µyÎæ9›ç(²f<˜ñ`†Ðë¬ùºæë𝂹Ðk¯5NiœÒ8¥ìç%ÛÝ Jv_ˆésª¼[m—T€²ƒ˜TøWí—b/Å^Šý¶WvŸâ>Å}ŠÐ+¨þ¡ú‡êßs‹œ‹sÛÛ°ýÀöÛ…Þ±ÿ‰þ'úŸ_•'ïjÂcfÇÌŽ™é½Ð{¡÷B࿎üuä¯#B¯?ñÝÄwß ýÝ€Œ€Œ€ ¡¿›÷\äâoiÞ“°…þVáO_î:µëÔ®S•?O}žú§…¿fâÁă‰K·Î@ÙAL *ü«öŸ>~úøéÛ^¹¥OKŸ–>ªx´2jeÔʨøpŠnŠnŠnÉî…7~oüÞø ½cþJŠ©ÎB¤FR#©Ñµ™×f^›¹àÆ‚ nþÙ’R²ŸeBk¦ÖL­™*ô^&:&:&<[zÔðQÃG /êæ]õ^Ôí×l\³qÍ„þüÅÄ‹‰•}Ë» µ²ßE‘zŠãsZøkæ}rK·Î@ÙAL R^|¢=J{”ö(Õ <jü©ñ§âÀY³f ,Ù½±1ccÆF¡wlàÜÀ¹³Ðš«oóK;•v*íTÞU¡%»>õþ¨÷G½?Ô7###Qü½ž6zÚèi#¡?y¤÷‘ÞGzu ¢ð´]ÓvMÛ%ÿ·Ì7˜o0ß ¼§ÿ~ϽPüù#ŽÏ©*?÷(k€ €AÊûª=Ì£ ¾œ÷šBïX'¼Nxp¡5Wß:ç K K K3øËà/ƒ¿Šó¾Z~Z~Z~Ö–Ö–Ö–#vØ=b·¿¾¿¾¿¾º_|xüáñ‡Ç ½Ëâ‹w.Þ™ÿÏïh³£ÍŽ6\1\¾fùšå‹³nBëÐ&ºMt›èü2ïÎB¾Ûˆn#º(k°ºN¿Oµ €Å‚”÷U{“ËM.7¹,ôÊy×¼–Öö§&ʸt²u²u²µÐ;êßÕ¿«WhÍÕ·Îy7yV<²j¾¤ù’æK·Übp‹µÖ>ZûèŸÖÿ´þ§µ"3V}à¼çª ½K¯ú½ê÷ªŸÿÏ{töèìÑYþOZuµêjÕµ8ë¶dõ’ÕKV+²Õòû¥ðÐZ5`%;Ô÷sú=«M (Ž˜¤¼¯ÚÛ^j{©í%¡W~ñòÅË/Õ±&<y<ò(Ùw|0ãÁŒ3„Þ1%ÅQç¼+ž›ml¶±ÙÆÂŸqëYÙ³²gå{gî¹wFya­*À…¿WýõÖ˜ÿ ¬Brv»Ùíf·+Î:Dþùkä¯B¯¿Kc—Æ.¼?™ñ ýÉK±—b/Ūþ¬dçú¿gµ €Å‚”÷U»³«³«³«Ð+ß4½izÓTkQ²ïxÌì˜Ù13¡wì:µëÔ®S…öˆ:ÖyÿÙýg÷Ÿ-<ú 26d¬*Kß3¦_o|½ñõ ǨžQ=£z ý×ózçõÎëg ˜ó®<Îû“½szçôÎQöÓ¿ç^(þüQßãá÷¬60 8``@ò¾jÏ»âð{ƨߧ&s+Í­4·Rɾ㠯^3¼„Þ1ᅧ©Î}žöyÚçiá·Vµï{~väµ;jwÔNè½¶Ý:tëÐ¥—N\:Qþ¿jÐ< y@ÙޕޕŽUá5)Ù§ÿ~ϽPüù£¾ÇÃïYm`@qÀÀ€ å}Õ'ôʽzô.ÙmyuúÕéW§;L+x¹˜x1ñbbñkÒ.¨]P» [éj²j²jFÝŒºuzG}}}1Õ¹Mt›è6ÑBë|ç‡;?Üù¡¤ÖöyêóÔç©ê¿õvÔÛQBïåuËë–×­. »,ì²Pþ¿ölÙ³eÏ–%µV{Þìy³çMo’÷au9‚)þ.м—ú¿gµ €Å‚”÷UûûVï[½o%ôʵ^ÖzYëeÉ~¡/t]Íò5Ë×,¯ø{)hÿiýOëZ§JêX纛ênª»IhÓN¥J;URk[øíµÕ%.ü þ2øËà/¡ÿºZsµæjÍ’Z‡¼XQè½Zú´ôié#ô_/_½|õòUu9‚õ˜ Öãá÷¬60 8``@Pé~¡ï3ßg¾Ïüâ¿ËÇrË},'ô.Ž/:^,Ù¸Wý^õ{Õ/Î:çêäêäêttëèÖÑMè]ܸ-p[ Èš«W—k\®±àëܽ÷þÝûÅ_Ûý;èßA†î†î†îâ€'=™ôdÒ“¢^w[²WT+þQÞm¨¿ÿ^(©ù£ŽÇCÕ9_ù‚”ýUûµ™×f^›©¼¯õ³³³{tèÑ¡G¡Wλ´¤jRRk>³ßÌ~3ûþÊ!cCƆŒ_­ºZuµê*ô:Ëû.ﻼoqf]ÞÕ–ùƒ®ïçü%ûi ¨P! ‚â[ÔøSãO?)#6ó›ä7Éo’âkâìêìêìJ¬ŽÇÃïYm`@qÀÀ€ UˆOj¦ÖL­ùß§´æ=W‘×üPýCõÕ=+{Vö¬,ôÊæÌ7˜o(ê¶(kÕŽ©S;Fñ×Ï‹g~7øÝàwƒÂ_9„#¾:Ï©;§îœºB¯V'¼Nxðo›gŸ|vpá7"þ>pÞõÇ%ûiM¶N¶N¶V|‹<³=³=³•›…Ú†Ú¡b^ÇIDAT†Ú–îÓUç&ÖÏé÷¯60 8``@Ð÷ùª=E7E7E·éɦ'›žTä+þ-¶LØ2!vKì–Ø-ŸÃ?‡Ï‹¾®.¿ºüêò•mW¶]ÙV‘höv­Ûµn×*Ùšîô¶ÓÛNo{ã÷Æïß×é_§þ¬Æ³Ïj쮸»â#-GZŽ,üòžooo"Ö:?òxäñÈ#|^x öSØOa?=O}žú<5k`ÖÀ¬y[šw³è G7ÝpÔVj+µ•^Õ·åi£§ž6RüÊÝÂ_mªÿTÿ©þy7ãÍôÍôÍôM<˜x0ñ ²?³ùíy³çÍž7Ê8n|YòeÉ—%НIxpxpx°úÁJ6˜T¯ãá÷¬60 8``@Ð÷üª=ïY¤ùoK« yÁááñ‡Ç¯Œ+;ï\¼sñNe¬y^Ht-èZеâÔ_u.>íQÚ£´Gõ¶ÉyN¼>ñúÄkå­q>GÓvMÛ5m—"ï’p/á^½Ò:z(ûé¿ßó¦Œ}ª.ŸÓïYm`@qÀÀ€ ïÿU{Þ+·2jeÔʨd£]c]c]「€Œ€ eßæ´d×\ËOËOË//t,Ù(E•ë,5’I”zµßß~ûý÷Ý?tÿPÞÿs¤÷‘ÞGz—l<Ëi–Ó,§ïçÿ‰€³çfÏÍž+;0[¹.r]dákÒ½K÷.Ý»«ïçô{V›P00 ¨´¾jÏ Ù¼ø³8WÍzÝòºåu+ï»ßó*·¼ÿÇ´ši5Ójß¶þ}žöyÚçiÞÍ•QsU®óU“U“UËY}ÛêßÕ¿«w»ývûíö¬[¾w)©¸¨·A.©OVÞÓ^ ýÉ7'ßœ|SÙG¸¥qKã–¾&ÌýcîsÕý¦ì}ªŸÓïRm`@qÀÀ€JË{ªe^ß>üÂð Ã/t2ìdØÉ°ÙÆf›m¬^'¼NxC݆º uMe¦2S™GgÎ7îØ¸cãŽ×›^oz½©tC޼§Òæ=ý×;À;À; Ã´Ó:LÓ{¡÷Bï…Æ)S§Œºu3ê&Ù'Ù'Ù·àÆ‚ nä=Ñó{FªVçÂ+?4yhòÐäÖZhý!o­òÖ0omóÖ|\³qÍÆ5 26d¬"ë–÷Tæ¼?iÓÀ¦MƒÆå—k\®QõFÕUw t t ###y0ãÁŒ3Yç¼½Ÿ÷š]vYØeaKŸ–>-}òn}œ¿{Vö¬ìY¹d£2Uøü–…X®ðm,Ù ¨þçTuÔ00 –Jë:°’z_u¹‚Mõ¯·ûžWvªòÚ‚ã!×ÅÈCL  Z€*#&PÀ@•(` Ê€ €0PeÀÀŠ€¨2``E@ T00€" ªŒ˜@UFL  €€*#&Ps3 [¨(]ÀÀD‚˜€H ``"AL @$€ €ˆ00‘ & ÀÀD‚˜€H ``"AL @$€ €ˆ00‘ & ÀÀD‚˜€H ``"AL @$€ €ˆ00‘ & ÀÀD‚˜€H ``"AL @$€ €ˆ00‘ & ÀÀD‚˜€H ``"AL @$€ €ˆð]ŽPx¹RJËÕRZ®•Òr½”–Èï¾D•Òr£”–›¥´Ü*¥åv)-wJi‰.¥ån)-1¥´ÜûîËýRZbKi‰+¥åA)-KiyTJËãRZž”Ò_JËÓRZž•Òòü»//JiI(¥åe)-¯JiI,¥åu)-I¥´¼)¥åm)-ÿ–Òò®”–äRZÞ÷%¥”–¥´|,¥åS)-©¥´|.¥%­”–ôRZ2JiùRJË×RZ2KiÉ*¥%û»/9¥´HKiÉ-¥EV:Kx¹RZÊ—ÒòC)-?*k!Ñ"‘mœ‡  ìmü®×»^ïz]WÚQJ Ï$æiÄ?ê~Ôý¨ûÊóBÿ…þ ýˆ¡C#†^Ñ¿¢E?½jzÕôªT乪}Uûªvøˆðá#"-#-#-© ”çU§W^uŠ˜1+bÖ•Ÿ¯ü|åçÔí©ÛS·Sðßî´ÝÕvWÛ…w ïÞõZöµìkÙÔÊ“Ô+©WR¯ˆÍ›#6G¼‹xñîƒôƒôƒ”Ê(k€ x"ñD≀6mÚølöÙì³¹nbÝĺ‰5ŠÍ´Ÿi?Ó~¿Ë~—ý.»TíRµKÕ>Îý8÷ã\j^–e¶Él“ÙæNó;Íï4ÿsÒŸ“þœäøÆñã›%d@¥•TÚ=f÷˜Ýc—{\îq9ÙxÙxÙx*€ºxô:éuR`íÀÚµGÅŠ§m§m§mWü>ÁØßØßØÖ¦Y›fm ³ ³ ³û°âÊ+¨yY–50k`ÖÀèÈèÈèÈu×\w°óÈÎ#;,©î´ïÞ¾{ûîÝé¾Ó}§ûÃ¥—>\š›”›”›DåPo4Þh¼Ñzô>èýØZck­Õ`kƒ­ ¶¿O0üÉð'ßf´˜ÑbF‹ó«Ï¯>¿:åÏ”?Sþ¤æeYöäìÉÙ“c¼c¼c¼7ÄnˆÝÛ5¡kBׄ’êN]:¸tpé°Ýn»Ýv»UTyP%×"×"ׂÊPwÀ²§¾O}Ÿú.ñ\â¹Ä³F)1«cVǬΞzè™2!eBÊö‹XeíÈÚ‘µ#4!4!4¡K—>.¥5ëÆtÓyLç›73nfÈrd9²öªà¹õsëçÖËÖ.[»lmiõ ÆŒ?Úg»ÏvŸíûßÿøþGö‹Xe?Ë~–ýìÂŒ 3.ÌÐ|@óÍKkÖùùùE:uTvCvCvƒ½€*Hø)á§„ŸV¯ ^\Z}B‹-6¶Ø¸Û`·Ánƒw›ßm~·™ý"VÒrÒrÒr—*\ªp©‚ûg÷ÏîŸKkÖy×ö®í]ûú€ë®yɼd^쑟?á?†ÿο£QÊÊ\œc“c“cìììÕÒ¿¥Kÿ*é×Í¿nþuóýå÷—ß_Î4UwI—“.']ž×^ÿyýk¨°í_¶Ùþåó²ÏË>/c¯ðºÓ¬œ¬œ¬sóÎÍ;7ÏTÃTÃTC5û·;nwÜîÜ}{÷íÝ·²lY¶Œ÷©±·Çß{|ÑìE³ÍVåît‹åË-–©Z©Z©Zì5¾éééžó+ϯ<¿²Ýèv£ÛVÍ>¡ï—¾_ú~¹ÓæN›;md/d/d/ØwêëÝâw‹ß-^ºn麥ëT¹;Ý0zÃè £?®ý¸öãZöò#†j*°ô«ô«ôk`•À*UŠsˆ·MÖ³¯¯í·Åü×fov;™š:Ÿòî±§Ýè°.‰å/ûôyh±áŸ'½¯™÷?Þ̹gÛÖŸ´›ÚªÒ¨‰­ƒ›ÌjùD»Š¦î·½¯C=‡zõîí¹·çÞ¦¬ºx[õmÕ·UÇÝwkÜ­oÛïõ\5—Õüðë?ÝcïX1`bw£&‡³þ˜mw®æ†'íƒ.-Úh1ìâùmí‚×®{Ó^ÿ/—…Z__xiôà–ã\N9ŒÑ-ÖMË׸­q[ã–¾7}oú^ö&%+wUîªÜU§ÒN¥J+ÎùºSDã©Ú;§ë¶¿ÓlÝŽïšÖ>y­ÇÈv]Âι<2Ͼ¼¨Ï+‹íçÛõ~kî{<ÒyyÛfÎÚŶr-3ëÞä¾qCíÍ=ßö¾Ö–Ö–Ö–Ñ»£wGïfoª‹wï ÞL~:ùéä§ß¶ß52ëÔá¡ãügc›åN¦¾>ÜgI¦YÀÙÓ6´ßyÉwÛ6 ‹¶YX§¬7moþ—tÑÖ=cÙòXß0§Š g¶/¿»üîò»iúiúiúìMJXYY•ðððšûkÿÛÎ×VÛÐn4mO{ûfÖÛ/:N1ytÒ°‡Q»&a[\nš¾¼§OŠÅÞó+]*›Ïã|µ­óÆ öæ­~»ÌìYS“ÁõƒëêÛûš;™;™;ÝZtkÑ­EìLuñÞà½Á{ƒé±Óc§Ç~Û~¯½©VL'gvëÖèù2³ñ» :´dªÙ²³ƒ6ôl¿ìR÷m‹,ú_ü²ÍÞÂ>¤Ûúéí»8¼(ѬîâÏc5Z&÷_*ÝðRqºÓ%í—´_Ò>uYê²T.¤0T”Èà;ÜùãÎM´šh5Ñ*ÂÕ·WŒË5Þ<¹gxû©}†»8˜Èd¾¾IIÏzÿjÝéÕÞÎ’­µ,‚¶Õ²U|݆Ÿ~jø©ä=É{’ ƒUN–i–i–éš>kú¬é£ø>ÕìR'¥æôNœaÔ:fî¡,+ ™,*J")©1÷HäE§Ì«Gw…tXñ[ðЖÍfµ¡9¡wBl¥l¥l%{€âˆyó:æµa ÆE8bÚèÑéÑ=lwࣕ×rûÓ%Û>üõ¢MÛý÷;Ok}Ìê~£PmcÅ×mpØà°Áaÿzþëù¯'ûWÕd÷Ëî—ÝoƒÓ§ NŠïÓš×kúÖ˜²4p|GÃåщC:>.ÙîTæÕ]Òøú¤=:>ϸ嵾y«¢v§G=xô ¬¹¬¹¬9{€âˆk×$®Iëw­ßµ~§ø¹xÀ‡–SÕ>éÑ£S;“ÝaaöV%Û&Ø `³êàÀ.#Ìll_ëÙÖ/Â÷ºnþnþnþoʽ)÷†Gªœ×××­Ú[µ·jµ\|}LzË—wLê8»„»Ó[QI:FµÞ;ÃÒmö#ï/Í‹üsÉCUU9T%w_î¾Ü}ì岉ªI„'¯¾øz`¦ûL÷™îŠ -cæh…„ëݱ½¬d›ÅǬò#[9¾Ûžâ¸Èä•â§–€;v2‰UAtdtdtdÍO5?Õü¤È¾›3e¤E‹Ž‰sÎT·íZÂ-‹Âc´õÁvO ×{¾ÞQEÖYòQòQòñM7uÞÔa ¸¬ªYU³ªÎë:¯ë¼®ŠœsÛ­Öý¹ÞÒù½Z´w/­î4ûÄÈÛN=v»9EšV¼;=’t$éH’,E–"Ka¿—®û£ï¾?Z+Y+Y+Y‘}7sîð†Í$Œ;yØfsiu§1q¯ïgý#Ь³ÍU›«6W]]]Ùã(.»gvÏìžKê.©»¤®"ç\SË•ëö;½¶gÍvÇK«;•6ôquÚ½/¨såÖE¸%õÁª«¬*;#;#;Ã~/]^?xýàuãðÆáÃÙw¿ÍòÌn6îÙ @»N¯K«;~¤‡Õ«Ñ®›(tç$‹3,f$LI˜’0…=^ÖC5‰*~2îɸ'ã4Zh´Ðhñ?žq°Edž\xËÚ·´Á†¦…Ï §½çâzÿÜþyݵռXø¶x¥x¥x¥dXgXgX3¡¿«³²³²³›lZ°iBOØÍù½¯IRºÃeo‡‡¥Õ¸ÿšž=gç>»³÷Âæÿ(²-¡¦¡¦¡¦L ÷,ôYè³Pµ:kuÖ~níùŸfMukÆvrb§rÝé ŸMNW/4t±5ß©“¡a]»máÛâqÉã’Ç¥4Ï4Ï4® þ¾2e™²ÌV;¬vX)ÒÑm™!mõéó»K®ËU­;Mþ!´™Ý¥ùµ}ZÄ(²-gÆwfS€Â%¼Hx‘ð ’A%ƒJ…Ÿ[» lZ±Áµ˜=n/­lU­;ÍêsÛéí¥n}ÆYôoÒµîæ:{ ß–þcúé?&Õ#Õ#Õƒ9ðýí½±÷ÆÞŠttë=ÛhœžúûEK‡ªÖ¾¿ðÏB{ƒÅ×Ǥµ|©È¶. \¸½_vC5‰$>{öìÙ³g ?켩·V£Ã;®qw¨ZãRøø÷ñ®ûÍd…oV¸V¸Vø«n¯º½êÆ´V¶¯5¾ÖøZcÐÝAwÝ-|¿,l0êIË._Ò#æ:NUµÆEhL¼Ö6ÄÃÏùaã~…oÝŠ™+f®˜)[&[&ãYüB.„\)üLÚpFtíU7ç Øf¯^Ýéñrζm2ÿÇwgkœ­qöyÖó¬çYÌeË Ì Ì ôrörör.|·ü~}D`‹:éŸ/§8–W—îôßòg7Úõæ×{¹ÞñÿqcÀª‹«.®*ûEö‹ìfù…/ _¾´ð3iÝÜÚ?Õ|©Ñ¿¿e=õêNƒÚv¿ÓV¡»žÄûÅûÅû1”-[?[?[ÔæQ›Gm.|ø¹ ›ÐìÑçk—¬¨Kwš¼:t£]‚Gƒ&?þ{@Nš3iΤ\×\×\îX#rÀPMjïqÙã²Ç¥ðCíVW‡U&=eZ¾µ%µÔ«}É?~èíÕÆ~Þàtã‰ÿÇïŒî½¾÷úÞk&·2|ýú!´•g+ÏVžBõo¢Ùðlßù—³>ª.‹ÐV}K¸ù½Âç›ïnßݾ»sîçÜÏ¹Ï à çAσž…Ÿ=7üd·¶•vn/ŸkN¯Ô·;ý4Æ+Ç>Û{žÉ ýÁ…oïýwößÙÏÜP†TÓTÓTSó‰æÍ' Õ¿~Š–{­ó±{Œ³z¯îÝix‹íYÿãIC/½<ôröÂì…Ù\u€ì˜Õ1«cÿãî «WÚ,3z*íæ3ÒéoõíN?Ï~ÁaÒèd3§&Ñ…oï “&7L˜Ê6!mBÚÛž¶=m{ Õ¿öîZj3'麧Ó:uo_òlÏŸ°ŸÝm¹u´ŽD°•qswswËé‘Ó#§³P6mß¿}ÿöý…wh1GÝ’¬ìÅ×tviëPø¶G.Š\¹ˆyRR>Nü8ñãD½x½x½x¡šO]2d²4{áµnNbêN? [çðKŸÿèæm{ï½oô¾‘õ*ëUÖ+f  lÚWu_Õ}UÿÇ÷‡w\ëè%¾îô”c í¼ ßöˆ™3#f2OJJjNjNjŽÑ £F3„j>.|`‹¦Ó2ß^­äøZLÝéçÏ—;¬t_Øui£Ã‚·U¯Ü¥r—Ê™v™v™vÌñ!†jRËxçàƒw ^gà¸R{ýäTËá]ZН}É?æ=‡£ðV&öaìÃØ‡Lôbµ/¡©¡©¡ ²d7Ȫó±¦Ë¾¶Y%¦ÆE~Ì5Šì?oÏ‹§…ê0äå—C^æ.Ê]”Ë×»€2ä/­¿´þüqžUFS´øðÙk¼ýqw§q~ûXëÞÞír·ËÝ.Ì™âH×O×O×oV¡Y…f‚?‡=8sñR3‰È»Ó„ÈdIÅ?<Æ™vªÃ€Ü¹r¥«¤«¤«˜9€²ãÈÆ#l:?¶£Ó±^Õ÷s‡-¶¯'îîôq“AÖ©…w§7ýnúÝä¦ÐÅò¥Ç—_z´®ØºbëŠBuÞ³w^†iš¸»SÙè(WIÓUé“… Õ¡G|øñ9sæ dæˆ 0T“šÀ§çœžszŽÐtX»VõveŒvê%îö%ÿøjÛö¶š…·2¯ã_Ç¿ŽgºUvïìÞÙ½;ê4ªÓ(¡Ú^>¾}›Å‘·/rãvÙ±&—…j2{å앳W2eA¨_¨_¨Ÿà2^®jt>«×HgGiÙéN“¢=}loÞ¾4|iøÒùST9a9a9a]̺˜u1ªíù#›ýÍ”µîtïúù'[ ^ Ýmj·©Ý˜?€²à’Ù%³K‚}‚Ë æCu£¿8ḻìt§ÿÞºÄîw-ÿÚÕ¼ö3‹gÏ,˜?E%M•¦JS]‚]‚]‚…j2eý–öÊZwzhË_³%B5suÌÕ1Weoeoeo™Eâ@ Õ¤6pl|l|¬àÍͼ~3i¨÷&×Îç²Ó‹²Ó¾äßöò̰3|*­¤‰¤‰äkÜ׸¯qLzÅMê7©ß¤~BU½æ¹[ÒáTYk_ò»öÍa:O¨>‡öÚ{h/³ V=^ôx‘Ðyp`²áÇFYÒæ>ö–Íî4Ùg˜ŽÝC¡úh¹h¹h¹dee1—7ã北3^ þ0Ñj»ÅвÜh²hVëLÁëNŽí9¶ç³ VÏŸ%>K:öiÖü¨®,;zäc§~e³;ý ñ2±ŸS/¼vÏZ? U)­KZ—4îUS Œ/0ªç?Ï6W3ï_–»Ó£¾Ë¼ÛÞŠ|ëä­“·Nf‰0T“ÀéCÒ‡¤:P:»èëLÍqñ©ì4±l¶/ùÇ—? Þa"ø”…/㾌û¤WÄqÝãºÇo`øÏ´M¡æÊrû’\5¥œQ²P­h>Ð| ÉŒˆÉ—3_Î|9SkG­µvÈŸûìè-©ï˜õtä\'ºÓ×»†dØ.ê¼ïzßõ¾ËŒRÄ©‡§ž ÔϬ3o÷‘¾4oÜÔÎïV«-‚ÏánÓ ¦3 &™™™:¹:¹:¹òç>ó Ý»Z2G8zµ²ÿŽ4ÿø`ÅÀ`k¡Šù[ú[ú[2¯„$ç&ç&ç UoUŸI6Ñ‹ÊSÇìkVE¨né÷Óï§ßgv©/à’rÚÿ´ÿiÿ¼.>´øÐâCº|èò{3|#•€#NFœŒ8)tX|’äáÚÉ–EhÜ»OòWëV‚_MîKÝ—ºÀÿqEvEvEòFòFòF¾bC’zþ¡§-KŒ:#±¥e‘¿ ¨îØOcgßš.òÕ[–º,uY*S  î¢vEíŠÚ%xß‹þ÷[÷¦ wíbvMð«É??üùáOæØÿ‘+˕庬wYïRÀÏôè\¡áÙ¢¨Ñ’–ô¢òcæ¤+G£ëL©"_½ùÆóç3Åê.ºCt‡è‚÷½˜åkeN*4,vŽnë"T½d“d“d昼A)ƒRÐ_ucÓM'(7>òä'zQù1ÛâZ5'3£‰Žš~òÕó«ëWׯ.³K}Ÿ´´´Ð1™0øÛ¨hœ’’%x+ãÙ]ÌZЦüñ o‰YOíf-uëpR)ïWÞ¯<€üBbCbCb#ó‹¾4+ÿc|Pëè*k;¡¾pyáòÂ…™PG9£sFçŒÖLÑLÑ,àËŽ]Óœ¦™N£ÿücš¯·ÄÑÍ£eN£ò5?züèñ£™iù…M ›6M02º c¿ƒþ³ðñÉÅ‹N½R|øÉá'‡™iu$”FJ#õ›è7Ño"ŽÛ´ß~e«@úOEÆa½[Ð;PÀÃJæ{Ï÷žÏLËïÊ¥+—®\ŒÌ׆n¶K ÿ,||atȦ§P ãüãüãü™iꈸøò_û[8Â`Å©h¼{íîµ»×ÊïZ«>–k×9úêKР(2¾ÙåyÊVð¦Ï>oø¼!ƒ¬YY³²f UéBà–YæhP—ÛO˜bøZ¾’ýíúÛõ·c¾ÔÑ¡)‡¦š"vkýs׺ rÇúÄ8½£óTdLî5¬Ž]ŒPßõ¸ûãî»3ßrlslsl…ªÒ|ýàöNôœŠë‚~«n|K¾’ÝzuëÕ­ó  ŽÊ” ('vk:ºÞOu^J|¼Ñy*2~8î5À~£PßÛ8¶qlcæ›ô˜ô˜ôX}½úzõõ䫨}u¹¶ÁôœŠÛbf2Ù/_I›Š6m*Ê’eɲdfz!.¾¼@7/Ü­¡0Âà©\œ±9csÆfÁ¯„ü½ìT“Ö¤¨ãÖ‘ëM ¸|~ðÌÁ3Ïäcph족‡ÆÊ×§çbÛºÆ4%E¿ÚDœs\,Ø:ŸŒ={’YP™2+dV<¯íøƒÕ{ºÍ"?¬ÄG²ºucùzö=Ô÷PßC̺€ºuêÊ×ÇaµÅ úA²gQzNÅÇ,׫ƒeBŸâè¦ÑM£›2ëê"[3[3[Sð¼fçV¾ãiºÍ¢Žkvm/_Ï.³ºÌê2‹Ywf䙑gFÊ×ÇÂÑd‘VSÙ˜(7ISzNÅÇíkœ¼ëŒ®íWó?òU²Š²Š²bÖ©à’E\RT.Þ§¿OŸ¾üÎ{Ù,­©íÈ·™CG¤:^ú`¼Ô|©ùR³l~r$9’‰Peâÿˆé4‹¦äÛÆ —Õ7Ú~.àyu¿ øeÀ/|êâˆÁƒ#òg4¯©&ºzoè3¿mÌî7ò¨“…PöÔñ©ãSDz9ߤaÒ0i˜às¦}c=ˆ>óÛÆ³ƒ7ôn¿¼€ë€¯t»Òí Ç:€º¼x3ð¦üÍ톡A£9ô™ß6æ|ò‘8m¨9»ÆæÃäkûPç¡ÎC²9ßrç>Î}¬­­­­­]Às¦ [ý~ãx±ÎÖ5Õ ¸¸©MS~ž¨f€•‡0¸8T(–‘‘Úa‰‡l±íC;Rœñ`j—]fCåk;³ëÌ®3»–ÍÀùÇçŸ,_5Îï»Óˆë·l)×½6}¢_ǼŽyà  Ò_vÜν{»Vb­ÄZ‰<Û¾þ¯olœé0‹3?XmO­›h4Ñh¢QÙœu'#NFœ”¯‰Ë‰î#:Ì⌹‘#žÕyPûVͦòN°O°O°ç¸Pikekekf5Ìj˜UÀ³íÛxht2¥Ã,ÎxƸ§s»»òµ0"`D@Ùœt7Œoß0–¯‰DÛÒ­fñÆQM$šOêÄ×)à:àø^ñ½â{qØSÀßapQ©P|Cç†Î ùÝ3è„‘ecZâ_–ppüUècðÕü«ùWó²ö°ÿýì 8ÅÆí8jfm@#RüñP«%fãå+¼â튷+ÞrÒ¨²»ïv¾ÛYþ,Ö{jó*º;è-Kà.5ñ#9¾êNÓW§¯N_]Öf]—=^ö( &ÑiÃ;>£·,þPk¥}[sù /´`ЂA÷ªìAÕUT•?‹9>Ö©ŸKoYw©¹3ò‘S?¡î4uAê‚ÔemÖ¹»º»º»p›âwûþc9ŸÞ²øã™Mëš´ûW¾Â~cüÆøá¸§.€¿?Â`E¨P<|ÀðÃÈï’;Ý]tœC RRãÜ\KÝëåë|áð…×DrËä–É-åë` ×¸¿FUÙÓ¨’N´ ÅÓú]úÛaŸÐ7·Cn‡Üœ®ªi¼áxÃñ†òç¯Hþý-ëÒU–Ô¸lŸõ)ÃKòuîÜ+¸WúçëÇ?|”¯ƒVºõkiÉ<¢œ%é-‹?~Ñ èè$ÔæÄæÄæÄrô¨&¿ ¿ ¿ ùó×åY}ž[l¥«,©qÝk»æÆäë°:`uÀê²3ß>÷þÜûsoÁïôü"·:¥Ð[Ì\r%ÔñŽP³«eWË®ÆÑOõ—ò¿¦ ƒ¨Dœy3ófæM¡Ý }ç³Ïé–*·ëÏÙýÖªrÞÚ>î1è‚u¶*¯m|°Ç_–p¥uåA•U.;…¿7ü½áïnP|ðíâgfCTèi‰ÛÚZt±»o”þ.æƒêÖ©÷‡f@ͬæKôÛjlêÑÁæ_„;5ú²$ÂÐÑC5[™áž}*ép}ÿ£×^?zÍ)  j²ã²ã²ã#¢)>uüèNKjL81xŽÍAù:÷rêåÔË©ì̺À À À¾ÒÝ5n®µéTºÓ’Ç·ø{ÓUòÕ¾ßþ~ûûí9TÔOê'õêN³¶ŒáTƤΞmmäëìPß¡¾Cý²3ëÎŽ:;êì(ù:l\ã×½ÕºÓ’ýv;Øì­|µo7¼ÝðvCŽªXuç§ptptptp·áZÛ±vË*ý»°j¾Õ%5¬º6úC»Zþ5WéuníÛ@RW°e|žõ<ëyY8HNHNHNÈW ¹z¨™]D)Ÿø«EU—Ô˜øÎcQ"ºiº¿²e”ª51WÆï¼Ø¡€+-Öé¬ÓY§Ãi  jâNĈ;QÐm¸Ì»7{JwZÂc”ï‰e½¤ÚƒjU/à1%;¿îüº³,̺>ú<èó@¾I/‚“mcèNKv¼Y~_¢åEùµ]:~éø¥ã9TM¼m¼m¼­ü™kÜõ6šþFwªŒÑÀ«ž§FýSò)ýSú§²0ëo¼qðFù ¼ì~ÊÕ&’î´dÇ£C!VMå×vŽë×9®U°j" V‰xåß+ÿ^ùwOºúâæÔñ¹*·/ C;.h9V~ÍU¿‰™Öá`‹î\‘¹úÑêG«Åý±ÏLÍLÍL•ßöFÝ„×>§ §üÕš“']οnÆ 4n:««Iï[÷_éøCÞ¯Û– a¤c¥=¤våüþã§°ŸìŸ©N“žs9ÃñGùš›U4«hV‘S@Õl²Þd½Éº€']méÿÚr<Ý©2Æ¥1Ö>†ëä×ü^ؽ°{aâžoÙÒli¶T~Ûkͯ™Uc§ìZÔn‰%ÝiÉŽ_÷\©ä¸]¾æMš4 àP5»‡ï¾{xÃݾžIt§J¹ôl»òÆ<¦äÖ’[Kn-÷|“n—n—nŠFd-£šH4éNKvÌzvõº“®|µ5S4S4Sd_d_d_8ª2`ÕW6Ã`•€Í£Í£Í£å‹ûeýˆÎŽCTá”ÿvÔÐrvF‡Çw56;37Ó²A‹ufÏu~®›"x"Tù&æZÃ~[;_óý‰û÷'Šû£¿7~oü^ùm_XqTTK‡Rþ*jzD’ãºÆŸt«ÖÑÎ[«vAÆ êý™×”ü³ëÿÿ·òþÿüKèO–îh6£¥´n·Ó̬”Y)³'!€êpÜë¸×±€n!íŒw{‡³t§Êo…¹ÖêXÀoÞ·%nKÜ&òî4ánÂÝ„»\q¾gØáfÿÒ*o´ÖNS»€ë€3¼2¼2¼8T‡KE—Š.åÏYŸÆ{IísèN•1ÞKwfµR~Í×N_;}ítqÏ·¤ I’ xpÞ¸èm›úÑ*ot~Úé±N?ŠýÜ÷sßÏ}9ª2`õRvÂàR€s&åLÊ™$_Êfê½Ó˜ :§ü½$!­-Ÿ ªßÄ|¨íÕÀ~²üšû4ìÓ0‘߯$°j`ÕÀªòÛ~¹ýöŽËJ÷42výúöýò¯U`Üê±mãiJòÿ-Ç‹ºÕÿªjMÌâuc"[?xñ<‚@H3¥™ÒLù³•¶V훵úÑ*oL=0|¢ƒ½üš»6rmäÚHܳîìg<[À½RÎÝÝ8¹ý3ºSåkæOYc¬!_ùÇC}<”ã!@%Ô‘Õ‘ÕìñîøºJ:Ò*cL¿é½Ãá«üšw{ÑíE·âžt—_\~q¹ü¶Ÿ,¿f@»út§Ê·V˜UÞÄJ¾ò÷×Ü_s ‡CUF¬¾Ä—rœü ùArOºš4½í)ƒî*ô›¯3îÎVsÖülsÆ(K~TÇ&&w‚Ï=§dù5op»Áí·Åý‘žÓhN£9 x¾Úôà­¶¥| èíö³/™üóm7$¹a³¯‡åW`½×µv¨ÚoÙBŸm’˜ðô”óÎO8?“ @| úô1Hþl5²“éýËt§J‡ú¶’è E(fK[úÛÒßä·:áÈɇ6èN•7†wÚQÙâŠ|åOŸ8}âô އUÖ0­aZCù³Õ F¦Ñ*q|å;Db[6»Óužë<×yÊouüÄ€‹~£;UÞe²×ÏÒU¾òþ üø/àx¨Ê€ÅA|ap)À±!±!±!܈¸~çÖ­¨A+ óõý¿¿R›&Fæë+‘´ë£ó±Þ̲ÖÄ8Ÿw>ï|¾€›\ùÍ1´tOóA×Ö´hWmÔðÿ4ñ›ðË æM/(Þˆäÿ\›h£Êõš¨Z¿9ày§¹ò•ß|sóÍÍ79ÁTÁ“yOæ=™'¶Úšåe2™îTÙ£½›ÞõúcÊZwêVÝ­º[õnD¼,ÜÛQŸîTycÂý“™6Çå+¿ZkµÖj-އUðâ዇/ÊŸ­þôµíhÜîTÙcÏÍfè:•µîÔë£×G¯܈ø·‹R‡‰t§Ê“ö‡ÚFðàÂŒ… 38ª2`ñG\Êð…v^ØYÀÍxõye±&FÙ£·žÉyý®e­‰Ñ9¬sXçp[íÕW¢¯j·þP¼éæt«áÅ6ùæ`-ƒ-ªÖÄ|8xáûž 2uþÔùSçsR¨‚+o¯¼½òVþlZ¥wýöïèN•=Nø£´é“²Ö.6\l¸X~«s§DntzOwª¼ñsû‹‘Ãä+?J2J2JÂñ  n^¾yùæånÆÛ¸Góvzt§Êgα¨Õ|@YëN->[|¶ø,¿ÕÒ:×ç;í ;UÞ˜Ñ/¼£c]ùÊÞ:xëà­U°¸©o\Êð‘¤#IG’äK«á~ÓêMŒ²Çë:ÖiÙ¢¬51òÛ«WAW§NCUk_¥F×7:í›ÙÏKÚ¼ûŸP8ª^‹Z#_>=Ѷª­í×_7É×ß½’{%÷JœHªàdד]Oðó¸Û·\ë8ŒîTÙãÊŒüèNk?ªýswt§Ê³®F9éÊ׿{`÷Àîª ´Ch‡Ðòg«ëšý2:<¥;Uö¸i½ý’Vþe­;ÕLÕLÕL-`«D“XÓ*o̹v½³Ó ùÊÛ¼³ygóŽã¡zý›ŽX¬Ô+ .§:‰üžùux§lšeë'ÙygÖ(ó,Öš\Ô2W¯ö%ï©w,VÕ¿˜·š4Ìk® ûiË9óhUûýÚ›§k/œÆ1ßêè‘á ¾ÖgéN•=îHs|mÚùfX¿iM#ºS¥!ø$²¡S$ó  Žîµr¯gåIwªìñ`….Í ™o:mµÝjW¢;UúøcTEIUæ V§ýOûŸö'®‘=x¹?MŒ²Ç­šÓLløàÙ¶jwZûƒê7.{×°ÎþÕ¢û¸Æsò¯¿ù†V9õrošî¯l¥¢íKÞWl]®u:Ì|¨£ø%ë:Í¢;Uö¸ÏUò¦µ+óÍ,ÃppÝTºSe¹Û#O9e0ßê(îÆÀ‰Ö­éN•=mÞÍ´Mæ[Óîüë<¡;Uú8'j„¤ó «¬cYDzŽs0WWª|pÖÀ«žŽ²%«Ç®6¬¡qªÎÌšÿýJ´Qõëk[óó£¬Lß+û¯«tûÂÀ5ÇÀ\ü=©òÀbêN¹ ¾¸˜+€¿'U¾XLÝ)WâV†®Î»úÂO ?-ü$_ž\ºÏÎÛ;b]ä·W5Ÿü¤ÓñèNf킌Ôû3o=kÇÔþ¡Æ¿sêŽøÐÂàã§°ŸìŸ©Aã¢À3€%‘’HI¤¸g ‹º,Ë-—[.·”?[ñ àÒ}pYëNUóÀâëN…žl½Ôz©õRއ,,,,,ª°üiò§ÉŸ&òg+ž\ºÏ÷¬Ó°Ô°Ô(àßDªö `ñu§BÏn“Ö&­MÇCõú7Ý¦Š›*nªHeÄ·œ™qfÆ™¾?øþàûƒâÑoÞŸ/CÏÎsaç…vÊ—ãò¢>¯,¶ÓÄ({ôÖ39¯ßµ õ3Ã:‡u ¸±Ì;ª¯D_NöÏSƒæÚØ·ôirLó§¼uËûßW—ïÚÕaQÞŸQ¯ö%oüpðÂöä+?uþÔùSçóy€*¸òöÊÛ+oåÏV¡Uz×oÿŽîTÙã„?ÚH›>)kÝ©ábÃņ‹å·:wJäF§÷t§Ê?·¿é0L¾ò£$£$£$ªàæå›—o^–?[lÜ£y;=ºSe3çXÔj> ¬u§Ÿ->[|–ßjiëóvÐ*oÌèÞѱ®|åo¼uðVއªLèg"TFò‚ÛŇZ|HñÐ7ïÏÿÐ7¿R€cCbCbCäK³¿~çÖ­ÐÄ({l×Gçc½™e­‰q>ï|Þù¼üVgš\ùÍ1TNöV]ÍþÖ®–·VŽ;t«ÿ5E÷Ÿ[öVêØ¸äã7<ï4W¾ò›on¾¹ù&'€*x2ïɼ'óäÏV[³¢L&Ó*{´wÓ»^LYëNݪ»Uw«.¿Õ˽õéN•7&Ü?™is\¾ò«µVk­ÖâxP/¾xøâ¡üÙêO_ÛŽÆÝèN•=öüØl†®SYëN½>z}ôú(¿ÕŸ»(u˜Hwª¼1ip¨m„|åf,ÌX˜ÁñP•‹ú†¾ù•rœü ùAòù2MšÞö”Awšå¹|î9%˯yƒÛ n7¸-îîœFsÍi$¿íIÓƒ·Úž+ÝÓüy½ÍöæÃóÖ§fù7jHž6:Ñ­Ó.uo_òÆÐg›$æõå+~Âù ç'pR¨‚Aƒ>ÉŸ­Fv2]¢™îT‰ãPßV=¡D‰{Ö-ýméoK“ßê„#'Ú ;UÞÞiGe‹+<™éÄé§Op<¨‚´†i ÓÊŸ­m42m܈îT‰ã+ß!Û²Ù®ó\ç¹ÎS~«ã'\ìôÝ©òÆ(“½~–®ò•÷_à¿ÀÇCUF,â}ó+å8gRΤœIò%kö Þ; 41Ê?Ôöj`?Y~͇}öiØ'qŒ«V ¬ZÀÇÛoïh±¬tOóÞ}«éûæ­OãOºUëhÿ÷™«fÔnu¬¨£ª51‹×‰l'_ùçÏ#žGp‚¨i¦4Sš)¶ÒÖª}³V?ºS婆Ot°—_s×F®\‰{Öýñìg xjÔ¹»'·Fwª¼qÍü)kŒ5ä+ÿxè㡇r<¨„:²:²:‚1ä_WIGºSeŒé7½w8|•_ón/º½èöBÜ“îâò‹Ë/./àÆãå× hWŸîTyãÖ ³Ê›XÉWþþšûkî¯áp¨Ê€Õ—øBßüÊ©ÂJ˜G›G›GËñËú‡ÐÄ(c¼Ö°ßÖ ¸ùvâþÄý‰âþHÇïß¿·€›iTÕÒ¡tOó¶Òönõuk”UkbÌf´”Ö- ά”Y)³'€êpÜë¸×±€n!íŒw{‡³t§Êo…¹ÖêØT~Í·%nKÜ&òî4ánÂÝ„»òÛî·gØáfÿÒ*o´ÖNSûb7ßöÊðÊðâHP.]*ºT”?g}ï%µÏ¡;UÆx/Ý}˜ÕJù5_;}íôµÓÅ=ß’6$mHÚ ¿í㢶mêGwª¼Ñùi§Ç:ë ¸ùvßÏ}?÷åH¨Ê€Õ‹¸CßüT"^ù÷Ê¿Wþ-_Ðè/nNŸÓÄ(cœÖá`‹îòkþhõ£ÕV‹û㙚™š™*¿íº7¯]Ê·€nT½ÁúÚÇÄ×Ĥç\Îp,ຳŠfÍ*rʨšMÖ›¬7YËŸ¹¢¶ôm9žîTãÒkþì¸v/ì^˜¸ç[¶4[š-•ßöZókfÕØ)»µ[bIwZ²ã×=W*9n—_Ã&Mšp ¨šÝÃwß=¼€€án_O‹$ºSeŒëfÛ•7¾$¿æ·–ÜZrk‰¸ç›t»t»t»`G×2ª‰D“î´dǬgW¯;lk¦h¦h¦È¾È¾È¾p$TeÀª¯ì„¾ù©D,_Ük;ÖnÙB]nµ—¿¡QéõlíÛ@RWhBg=Ïzžõ¼,|à%'$'$'ä+\=ÔÌ.BÝŸ¡jã•ñ;/vp’¯ö:u:ët8ýTM܉¸qô ~cÌ»7{JwZÂc”ï‰e½¤ÚƒjU—¯ù×_w~ÝYf]Ÿ}ôy _¤Áɶ1ô“%;Þ,¿/Ѳ€k—Ž_:~éxŽUoo_ÀóhÇ]o3 éot§Ê ¼êyjÔ—¯yú§ôOéŸÊ¬¼qðÆÁå+ð²û)W›HúÉ’cŒ…Xp?¤9®s\ç¸r T}Àª©l†¾ù©Dœy3ófæM¡rKßùìsº¥^­Œ*ñÁuZ"_çA•UT¹ì|øÿÞð÷†¿ ¸™ÉÁ·‹Ÿ™ ¡í(Ùq¸gŸJú:\qþúÑëG¯9TMv\v\vœPwš3ŧ®“]eI 'ϱ9(_ç^N½œz9•Y$_‡]ãæZ›N¥Ÿ,Ùq|ë¿7]UÀóÕÚßo¿=Ç@€ª‘úIý¤~‚—sl9©]eII=ÛÚÈ×Ù¡¾C}‡úegÖuvÔÙQòuظƯ{«)ô“%;úív°Ù[ùjßnx»áí†U°ê ôͯœê¬Êðà  _ú;Ý]tœCóQRãÜ\KÝëåë|áð…×ArËä–É-åë` ×¸¿FUÙÓ¨’N4ÅÓú]úÛaŸÐ5·Cn‡Üœ–ªi¼áxÃñ†òç¯Hþý-ëÒU–Ô¸lŸõ)Ãn¯Ü+¸Wp¯2ôÏÔ>~ø(_­uë×Ò’yD9KÓ[ü¢þÐÑIðç±9±9±ýªÉ/È/ȯ€Ÿ‹]žÕç¹ÅVºÊ»ùók»æÆäë°:`uÀê²3ß>÷þÜûsoÁïôü"·:¥Ð[Ì\r%ÔñŽP³«eWË®ÆÑOõ—ò¿¦ }¨P|Cç†Î®tÂȲ±ÍGñÇ/ËG88þ*4Ý¿š5ÿj^Ö öÿ±ÿý䫷㨙µ-HñÇC­–h˜—¯ðŠ·+Þ®xËÉ  Êîv¾Ûùngù³Xï©Í«èî ·,þ˜?²‘ãK¡î4}uúêôÕemÖõxÙãejv0¼ã3zËâµVÚ·5/àñCƒ Z0ˆã@•=¨ú êƒªòg1ÇÇú!õsé-‹?fßùÈ©ŸPwšº uAꂲ6ëÜ]Ý]Ý]å«õnß,çÓ[<³i]“vÿôø!¿1~c8î© àïÐW*KHHí˜ÄƒC¶Øö¡)Îx0µË.³¡òµÙuf×™]ËæaâüãóÏ?–¯‰ÇçwÝiAŠ3æ¤\÷vÚ ô‰~ó:æu '*€*˽{;÷v­ÄZ‰µåÏe/êÿúÆÆ™³8ãñó΋Û6‘¯íD£‰FÊæ¬‹8q2â¤|M\8HtÑag̵ˆéô¬ÎƒÚ·jð|µûû{Ž{•¶V¶V¶¶aVì†Yòç²'m<4:™ÒagùHœ6Ôœ]csaòµ}¨óPç¡NÙœo¹sç>ÖÖÖÖÖÖ–¯LŒá¡`«¦ô™ß6^¬³uEuùªÚ4µijÓ”cz!VBßâP¹8csÆæŒÍB»í±ÿ —jÒ”uÜ:Òa½Iùzž9xæà™D=4öÐXùúô\lûAטv¤¨ãW›ˆsŽ‹…>ű'cOÆždÖÔEf…Ì ™Ïk{þ`õžn³¨ã^ÉêÖåëÙ÷PßC}1ëêÔ ¨+_‡ÕƒêÉžEJlè9³\¯v” }Š£›F7æ+6€ÚÈÖÌÖÌÖ<¯Ù¹•ïxšn³¨ãßš]G›ÅË׳ˬ.³ºÌbÖyf䙑òõ±p4Y¤ÕT6&ÊMB \”û&j_»àä]gtm¿š\ûeeeŬS/À%‹Ð·¤”SÍÕÚ½v÷ÚÝkåw¡UŸF˵kÈ}õ% hMßìòÞN‡è<?÷`¿QðçžcÇ6f¾IIIÕ׫¯W_O¾JÝW—kLÏ©ø¸-fö(“ý\û[Ѧ¢MEY²,Y–̬S/ÀÅGè« *g…d…d…íÔÙ]ÌZРüñ o‰YOíf-uëðùò~åýÊóÈ/$6$6$VhÖ¥†\ôu AùãƒZGWYÛ Õð…Ë —.Ì4€:Ê3:g´fŠfŠfŠü9n×4§i¦Óè?ÿǘæë-qtóh™Óh„| Ç?zühfZ~aÓ¦…Mê¬>D]бßAÿYøøäb€E§ÞB5|røÉá'‡™iu$”FJ#õ›è7Ño"ŽÛ´ß~e«@úOEÆa½[Ð; _CïùÞó½ç3Óò»réÊ¥+—„:«äµ¡›íè? _²é)TÃ8ÿ8ÿ8fš:".¾Óþ§ýOûú–¬rª¼r'#NFœüçz’‡k'7ÚÁëí“üÕº•`œ¹/u_ê>>ÿ·‹‘]‘]‘¼‘¼‘¼‘¯Ø¤žèiË£ÎHliVäÇ/Ã#ª;öÓØYÇ·¦‹|õ–¥.K]–ʨ»¨]Q»¢v >ŸµÿÀýÖ½éB…ÆÃÁ]»˜]Œ3ÿüðç‡?™cÿG®,W–ë²Þe½ËzùŠ èѹBòEQ£%-éEåÇÌIWŽ8F56Ö™R»€mÌ7žo<ߘ)PwÑ¢;Dwê¯bf¹ÅZ™Ó… ‹£ÛºÆ™&É&É&Ì1yƒR¥ * ¿ê>Ʀ›NPn|äÉOô¢òc¶ÅµjNfF 5ý ¸X«®_]¿ºÌ.õE\|Ò>Ò>Ò>„¾%«œê¯â˜Çü8æGù]^kSÍò5ö¦ônçBË’¼çZ¿£¡ÐGå\è¹Ðs¡L}!‰ë×'®ªÞŽA¿ï0‘Ò²üŸñyTÄfx —ëúUä+¦ÙC³‡f¬6Ym²Ú0»â0uÐÔAS þÌNwx'}:ÒücLŒ[†•³PÅNéÒ;¥Ç¼òvÂÛ o'UoÃ×é±­\èHåDZÿq‹nZK¨n_ ¿~5dvÄáwïß½÷ü™£W+ûßéHóV ¶öª˜¿¥¿¥¿%óJHrnrn²àWõ™ôÐh½¨ü85|ȾfU„ê–~?ý~ú}f—ú".)ù¯&ô->5€Ó‡¤I"tptv3Ð×™šãâSÙi"íËËï°¼uö¸/㾌û¤WÄqÝãºÇu…*ùÏ´M¡æh\òÆÕQSÊ% ^ ¥ù@ó&3 &_Î|9óåL­µvÔÚ!î³; ·¤¾cÖÓ‘stèN_ï’a»L¨Oð¾ë}×û.3J§žzxê¡P%Ϭ3o÷‘¾4oÜÔÎïV«-‚×B5ˆiÓ€“̈̈Ì\\b9ó Ý»Z2G6>6^è@éõ›IC½7¹v>—^”Ñö¥—g†P}šHšHšH¾Æ}ûÊé¤&õ›ÔoR?¡ª^óÜ-épª,·/»öÍa:O¨>‡öÚ{h/³ V=^ôx‘Ðyp`²áÇFYÒæ>ö–Íî4Ùg˜Ž``©å¢å¢å’””Ä\RÜŒ—3^Îx)TÕËVÛí,V”åîô@“E³Zg Õgϱ=ÇöcÄêYâ³Äg‰BçÁ>ÍšÕ•eG|ìÔ¯lv§$^&ösê…×îYëg¡*¥uIë’ÆufE°ÀxñÁhóŸg›«™÷/ËÝéQßeÞm¼„ê³uòÖÉ['3‹Äª©œz­îé9§çœž#tÐÖ®ÕA½]ÙÁ#£z•öåÕ¶!ím5 ,öëø×ñ¯ã™îE•Ý;»wvïN£:ê4Jð‹¶ãÛ·Y(kíËvÙ±&—…j2{å앳W2eA¨_¨_¨ŸÐ9Ñý•áªFç³ztv”–î4)ÚÓÇöváÝéK׆/¹o‘å„å„å„u1ëbÖÅL¨¶çlö7_PÖºÓ½ëçŸl-øœ©Ý¦v›Úù( .™]2»$Ø'¸ j>T7úkЈŽ»ËNwú。Kì~×ò¯ýW-+¡Ê<³xfñÌ‚ùSTÒTiª4Õ%Ø%Ø%X¨¶!SÖoi? ¬u§‡¶,ñ5["T“1WÇ\sUöVöVö–Y$ÀPMåÔq¥wÞ9xç`¡¨ãJýíõ“S-‡wqh)ò§©íq{ie[ø—k±cÆ>d¢GjhjhjhƒìÙ ²…ê|¬é²¯mV‰»qÉ5Šì?oÏ‹§…ê0äå—C^æ.Ê]”»ˆ™(;þÒúKë/-¡ó£UFS´øðÙk¼ýqw§q~ûXëÞÞír·Ë]®«(–týtýtýfšUhVA¨Îg.^j&ò¯Õr"“%ÿðgjØI¨räÈ•®’®’®bæÊŽ#l<²QèüØfŒNÇzUß϶ؾž¸»ÓÇMX§ÞÞô»éwÓ9S_z|éñ¥G늭+¶®(x/–½ó2LÓDýŽŽr•4]•>y Q¨PzÄ÷ˆïŸ30g`Î@fŽ˜C5•SßUßXac… ?…Ç ØÅZ„­Ì‘F]oµÑ*|Ûo÷¿Ýÿv¦xIyôýÑ÷Gµ~ÑúE롚Ïj4|Gó™9I×=Ö‰©}ù`{þ„ýìnË­£u$‚W8¹¹»¹»åôÈé‘ÓƒÙ(›¶ïß¾ûþÂ;´˜£nIVöâëN:;‡´u(|Û#E.Šä'b%æãÄ?Nԋ׋×|PÎÔ%C&H³^ëæä ¦îôÓ¡°u¿ôiàðnŽÐ¶÷¾ÑûFïY¯²^e½b¶Ê¦}U÷UÝWõ|xÇõ·Ž^âëNO9öØÐΫðm˜13b&ó¤¤¤æ¤æ¤æÍ0ša4C¨æã¶h:-óíÕJޝÅÔ~þ|i°ÃJ÷…]—6:,´í]*w©Ü¥r¦]¦]¦³E|€¡šÊ©ûìqÙã²Ç¥ðÓùVW‡U&=eZ¾µ%µÔøI½½ÚØÏœn<±ñË·÷Þë{¯ï½fr+ÇСB[y¶òlå)øÄe͆gël|øÎ¿œõQuo_ªo 7¿Wø|óÝí»ÛwwÎýœû9÷™!ô<èyгð³ç†ŸìÖ¶ÒÎíåsÍé•úv§ŸÆxåØg{Ï3y¡?¸ðí½³ÿÎþ;û™Jù¢Í4Õ4ÕÔ|¢ùDó‰Bõ¯Ÿ¢å^ë|ìÞ#ã¬Þ«{wÞb{–ÅÅÂçÛÐËC/½œ½0{aöBfǬŽY³*üì¹z¥Í2£§Òn>#þVßîôóŒá&N6sj]øöÞ0¹arĹ¡ iÒ&¤M°íiÛÓ¶§Pýkï®õ¨ÆÓ˜ö‡Â¬š©{wz­Ñî:>ß܃܃܃²~Êú)ë'fˆXC5•Çfœ={öìÙ³…j ÞÔ[«ÑáÎ׸Ž;Ô«}ùûx×ýf²Â·N+\+\+üU·WÝ^ñt+¥ûZãk¯5ÝtwÐÝÂ÷Ë£ž´ìò%=b®ãTui\’Ưµ ñðs~ظ_á[·b抙+fÊ–É–É–1+ÈïBÈ… !…ŸI.Ј®½êæ¼Û,ãÕ«;=^ÎÙ¶Mfá[Wãl³5Î>Ïzžõ<‹ù l™™™^Î^Î^Î…ï–߯lQ'ýóåÇòêÒþ[þìF»žÃüz/×;^øÖ-®º¸ê⪲_d¿È~aV_øÒð¥áK ?“ÖÍ­ýSÍÇ‘ýû[ªÙýƒÚv¿Ó6¹†âýâýâ¹á³ÒeëgëgëÚÓ}¦»"‡c˘†9Z!¡Ãzwl/+­Æ%«üÈVŽï¶§8.2yUCa;vìd«‚èÈèÈèÈšŸj~ªùI‘}7gÊH‹眩nÛµ´—hëƒí:ž6®÷|½£Š¬³ä£ä£äã›:o꼩Ã@qYU³ªfU×u^×y]9ç¶[­ûs½¥!ó{µhï^ZÝiö‰‘·zìvsŠ4=¬xwz$éHÒ‘$YŠ,E–Â~/]÷Gß}´V²V²–BWÃÌœ;¼aó ãN¶Ù\ZÝiÌÅÃÆVGÜëûYÿˆ"ëlsÕæªÍÕD×D×D®¨ ²{f÷ÌKê*rÎ5µlP¹n¿Ók{Ölw¼Ô~’ØÐÇÕi÷¾ Î•[V¼;=Xõ`ÕƒUegdgdgØï¥ëÁ민nÞ8¼q¸"ûî·YžÙÍÆ=hשԞ;ýH«W£5\;7Ù£È:[̰˜a1#aJ”„)ìñ²†ª©œ¸7ïÎwþ¸óG­&ZM´o~½b\®ñ®àÉ=ÃÛ7Hí3ÜÅÁ¤d[–g½µîôjogÉ‚ÖZÁ ÛjÙ*¾nÃO ?5üTòžä=É{˜¾ª&Ë4Ë4ËtMŸ5}ÖôQ|Ÿjv©“RsúŠ?'Î0j3÷P–•EÉ6+¹G"/:e^=º+¤ÃŠß‚‡¶l6«FÐ;¡wBO¶R¶R¶’½ @qļŽyóÚ°†a Ã"œ‹1 môèôèž?¶;ðÑÊk¹ýé’íNŸþzѦíþû§µ>fu¿Q¨¶±âë68lpØà°=ÿõü—ë}UNv¿ì~Ùý68mpÚà¤ø>­y½¦o)KÇw4\x0¤ããþBÍ#ª»¤ñõI{t:|žqËk}óVEíNèÒ¢mÃ.žß¦aÑ.xíº7íõÿrYø õõ…—Fn9Îå”ÃÝÄâÌö5nkÜÖ¸¥ïMß›¾—½ @ÉÊ]•»*wÕ©´Si§ÒŠs¾îÑxªöÎéºíï4[·ãÇ»¦µO^ë1²]—°s.̳//êóÊbûùv½ßšût^Þ¶Ù†³v±­FË̺7¹oÜP;AsÏ·½¯µ¥µ¥µeôîèÝѻٛêâÁ;ƒw“ŸN~:ùé·íwÌ:5Gxè8ÿÙØf¹Ó„i†¯÷Y’ipöô† íw^òݶÍÂãâ£mFVÁ)ëMÛ›ÿ%]4¤õÇEÇX¶<Ö7Ì©bÃAÅ™íËï.¿»ünš~š~š>{€VEVEV%$<$<$¼æþšûkîÿ¶óµÕ¶F´MÛÓÞ¾™õö‹ŽSL4ìaÔ®IØ—›æŸ/ïé“b±÷üJ—Êæ³Æ8_më¼ñ‚½y«ßÇ.3{ÖÔÄdpýàºúßö¾æNæNæN·ÝZtk;S]¼7xoðÞ`zìôØé±ß¶ßkoªSãÉÀ™Ýº5z¾ÌlünÃC‡-™j¶ìì  =Û/»Ô}Û"‹þ¿l³·°é¶~zûî/J4«»øóX–Éý—JF7¼TœîtIû%í—´O]–º,u{ÀPMeî—P969696Á^Á^Á^-ý[ú·ô¯¡’~Ýüëæ_7ß_~ùýåLSu—t9érÒåyýçõŸ×¿† Ûþeû—í_>/û¼ì3 ß«;ÍÊÉÊÉ:7ïܼsóL5L5L5T³Op»ãvÇíÎÝ·wßÞ}+Ë–e˲Ùwêëíñ·Çß_4{ÑìE³U¹;Ýb¹År‹eªVªVª{ €ïCºGºGºçüÊó+ϯl7ºÝèv£U³Oèû¥ï—¾_î´¹ÓæNÙ Ù Ù öúz·øÝâw‹—®[ºné:UîN7ŒÞ0zÃèk?®ý¸–½†ü€¡š¸†ì©ïSß§¾K<—x.ñ,­“‡Y³:fuô<Ðó@Ï” )R&°_Ä*kGÖŽ¬¡ ¡ ¡ }\ú¸ôq)­Y7¦ó˜Îc:ß̸™q3C–#Ë‘å°wPÏ­Ÿ[?·^¶vÙÚekK«O0~düÈøÑ>Û}¶ûlßÿøþÇ÷üÃU´²Ÿe?Ë~vaÆ…f h> ù€æ¥5ë|‚|‚|‚¢ŽF:*»!»!»ÁÞ@$ü”ðSÂO+ƒW¯ .­>¡ÅÆÜm°Û`·Á»Íï6¿ÛÌ~+i9i9i¹K.U¸TÁý³ûg÷Ï¥5ë¼k{×ö®}}Àõ×ȼd^2/ö„C5 ñDâ‰ÄmÚ´ñÙì³ÙgsÝĺ‰u‹Ú0ígÚÏ´ßï²ße¿Ë.U»TíRµs?Îý8—š—e™m2Ûd¶¹ÓüNó;Íÿœôç¤?'9¾q|ãø¦¤š••TPi÷˜Ýcvy\îq¹Çådãeãeã©<êâuÒë¤×IµkÖ7*nTœ¶¶¶] ½þÆþÆþ³6ÍÚ4kS˜]˜]˜Ý‡V|XAÍ˲¬Y³FGFGFG®;¸î຃GvÙyd‰]¯³·ïÞ¾{wºïtßéþpéÃ¥—æ&å&å&QyÔÅ7o4‚Þ½z?¶ÖØZck5ØÚ`kƒ­Åï 2üÉð§-f´˜Ñâüêó«Ï¯Nù3åÏ”?©yY–=9{röäïïï ±b7ÄvMèšÐ5¡¤ºS—.\:l·Ûn·ÝîA•UTɵȵȵ òÔpñ$Ë’eÉWdWdWdáóÃç‡Ïºu?ê>…ò¼Ð¡ÿB?bhÄЈ¡Wô¯è_ÑO¯š^5½*•y®j_Õ¾ª>"|DøˆHËHËHKjåyÕéU§W"fEÌŠ˜uåç+?_ù9u{êöÔíTü·;mwµÝÕvá]û†w½–}-û%õJê•Ô+bsÄæˆÍï"ÞE¼û ý ý ¥2Ê` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` `‰ÿ2ƒwF|°nƒ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/retry.png000066400000000000000000001442451431412030200245500ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìýgT×ÿÿ›c¢Ø£ vQ@PlˆX1vQc‹%{¨1’h,ш½Äö’Xc?ÓAQ{‰-öŽXPTʹnÌç¿~|¯“CPÀsžYkV–™½ß³áì™3“Ë 0„\”Œ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ÙÇ~ó~óþý÷?Þÿ8bfÄ̈™‡ÕÃêa• =^¶}ÙöeÛý÷wÞß9Ò-Ò-Òí|âùÄó‰TéqÿÀý÷DªÿoÑÿ…Êì 0lìf¡›…nÚÜ`sƒÍ GŽ å¸Óq§ãN‡ ó^í½Ú{uˆwˆwˆ·š¬&«É%-Ÿ–XT`Q–³[În9;³Æ¾5}Ëú^ô=Ry@V#Æ[ui쥱—Æþ¢ý¢ý¢9؈»»ûÚck­=çççÉqÉ.Nô<ÑóDÏá­‡·ÞÚVã§ÙÄf›MÜ5}×ô]Ó¢¢¢8.ö/å»”ïR¾‹4Eš"MÝC»‡vµÕøÑ÷®·DoG¹€‘…Ï'žO<¿3fgÌΘ ŸVø´Â§v©û³îϺ?;súÌé3§9jöã¹÷sïçޫꬪ³ªŽƒ >|,øØõÍ×7_ßÌQ³K?,ý°tèœÐ9¡sìyüè-Ô[ËQd02YòÊä•É+·|ºåÓ-Š{ë§”ZW¬ã˜ö5VV(¸¼Z@7¯¾;¶·«“o}y¯æûZç¶§jζ´Ù]£ù¦ÓͽªÆÍõ®ßÈã^ÐïAeZ»í)º¬ðÅ7Ûo€9À`>ãtÆéŒGóí{ÑöEÛm¹,rYä’¡ðΫWÅùùÏ-ƒ†¹]Y™0á ÷Ø]ççt¬öR™øûšTqñ嚃÷EΪ~qcÓ©ª–š1rØ3÷å=ž·îZêkç<Ÿ×,`~³ýöîß»ïþ7~»ñÛß8šo_ܳ¸gqÏB\C\C\32~œïÖÞÕ¤kù<uñððɤM^¦Qyç^¯Òᇢ‹{éký_ôÿ«¥þ]Ù¯Þr½MÀ›!F¦‰9s$æˆë×9®¯q¿]÷ï=ÂKåÚ3¢u™êž~Ý{[Ã~fsPPãÆ™µ¾Þ5Éß–Ôøc¯£Õ׸ rŠJÛW® \»#vGìŽoza~a~±gïž½{ö¾n`6tX×åòGä^rµæÞ¤ÅËül6GG7nœYë3aøÅή6ò†Gp‰rÅ.þ¶M*2©È¤" Ó¦%Lã gäðäðäðð²áeÃ˾îø)çоoÐ>s&”_5Îß?<<::s×ú–õ½¼nÛôé½ã(Ò’p#áFÂàvÁí‚Û¥'Ò¨3ÐõÙçm„#mÔ_fnЛþõËü}N5Ú±¸jÃ+•CÒÆl{°íÁ¶ñÌëëëÜîB» í.¤ç(t|ÜÔÑuòáoWöõ]š¹Aoú×÷GíÛWådÏ*¾Jÿø9äxÈñ#G ?“†Ú*ôµ¶Ö[¥·0=}Ñ{ÍѤ¯mw…ÝvWH;¨¨Zô¡ãg'tRû•½…¾V×IA}¬ÛäD•ÿ¸3Ø¥–K-—Z7¯Ü¼ró ãá5¤˜SÌ) O,<±ðDÚnS¦AU—_¯µþkfÝYöúZ['öªà7cà°8÷¥i÷®Eç[tŽ÷÷÷gP¤_ÒÓ¤§IOGÖYcäüé@©]Í.v¹Q»æB'i¼½…¾VÃàš ¤ñzËÓî^½Œ €%`¼†eÕ—U_V=ípbI|£É•ošûy7.“m¢_‹õÃÚßF7hÐ%Üݧdé´û{æé™§gˆaþCÊ©”S)§‚å`9XN»ž»†Íù¨ÚµìúZ[_)¼íd]‡ªOÝË8¹[ëi±UÅV[uÏ÷žï=_FHÚ†& MÚÒ·¥oKß´ÇÏü ^«¦f—Ð×ꛃçOðZ55ížêÕÐ+äFŒt™6;lvXÚÄßnŸÖ ɾ¡¯µõº›œ¬òSÚ}?¾îøºãë'–R†¤ Im­z¾±Þ‹ŠJ÷<÷î©ß1»G¿©×)O½lœ{ʹA³*uN{üÜ~{øíáŒKÏ{<ïñ¼‡ïxßñ¾ã­UϵIÃÊ_&ûM]R7â|v~S¯õé½³ú³3Þw¼ïx½JŒ–´=ûd쓱k­Y´fQά@b‘Ä"‰Eæü4ç§9?1c#ÆøýÞï÷~¿g-~h²«¬[ñKO[öÞܰ¯ñ¢ßÔëã«:–«}ä?"ð<çù;cæö˜÷˜÷ y:äé§Vßï;ô›å&&ÕŽú;`€‘¢_Ëõ®»szWKJ{üÄúÄúÄú0pt¯Š¾*úªhÝ]uwÕÝeõQó_}{nÌ ÿZá³¢w)úý?ëZá³¢wé=µV½JzÅ9–ôè·TÇRKuÔ+¶zÐêA«åœ èÑoÛ%m—´]¢W ýÚökÛ¯elFE «¶mÚd-rèÓÔ˽ô´¤N}? nìè7õúÚƒnóêþ•vŒwgÙew–1~~kõ[«ßZY«RhÛá+Ü›_DG6ndìè7õúˆËÊ$ßVãL§ŠNv'ìNØ£‡Ž¿Ùßìß}j÷©Ý­>¹²ãÐ 3< úZYë½¶V½bzõøý“šÛ+·Wn¯,+–b`Ëè7µÉÁ“ƒ'3Bã!Æ¿85èÔ Sƒ¬Å k½6•>Ÿ²£ïÀĜý¦^ßþ³G—zVc<·µnkÝÖ¾Œyó2&gŽŸòy‡ÕwýÎz6r›GPÎ }-×Ç_¬ª}ÅZ}zôëѯG?óQóQóÑœ9~BCC­F¿×FtŸ50§E¿ÿ'¾6¢û¬Vÿ´Â9Ô9Ô™O±Ô¬ÅŸÆŽÓŽ~sæÐ@ÎAŒÿ#Þ1Þ1ÞÑÚÅâ6EËßu™’ß÷‹€ù93úM½¾Zü›»u[X}¸ñàჇÎiãçªÛU·«nÖjR5ðˆ[Ÿœý¦^G5 «Vk‹µZ… ;v0§ŸÈÞ‘½#{[«‰GÇßL.š“£ßÔk½Öj¥W’O4]N‹B‰~ãÿô ô ôµ¼XìäYÐ1ÿ­g·¾[Ó0…è7õúpÝe|çY»È.>ˆrÂÈIî”Ü)¹“Ç 3,ëðe󆟻IÙsèp@ÑoêõƯ¦N«ZÖÚø¹øäâ“‹OrÂøy¬×t9!Í }|4äÑGCô¾´ÑjD«g œ-p¶#Hÿ£†©aj˜µKÆÿþ¦¼ÿâ^këeÉM½ºX«^ügñŸÅfìñ³xêâ©‹­¾±õÉ0Å»auâ^këa »Þ,Wϲn^K½–z-MéÒ;Åàwsö»Üïr¿Ëÿò§'TªZ5_SØG÷÷Z®õÊèU²¬ž^U>ÝR3jDšsîúmS°MÁ6-{G ¤F óKù¥üÒê[7„5]V%‰ˆ÷?Ößy5.ÝäbÙêÅoZÖpÜãþ÷‡QÇÏÝUwWÝ]emüÙ¼j ï"Þ´× ;#[7 ´VË6.ڸȨãçè‚£ Ž.°Ö÷ZÁ³çîþ– 7íµ^%k5Ô+Ì']jFŠKsÚŸÒ0 †yIÈ’%!–—Pëÿ]ê÷bm̳‚ê5ö âMÏúÖºî/ëM·vIúZßk}¯õ5ÞøéW¢_‰~%,û;zà·!å/î¦}jÅ+ßqÖÆÏ³¸gqÏâ 5t*›+›+{|ïñ½Ç÷ÿòÆß*ýoLG¸ûo®ÒÿƤ?z…õjóy—ZvNsæ»~ÿªòW•¿ª8¤a0r&àíYÝguŸÕµvÙôrá®QþKˆu_w=¿qƒ<ž½,ëÙKí¥öR4~®D^‰¼imü<-¤lnØ…X÷u×½F}ùe©;–õ\˜gaž…yŒ4~”]Ê.e—eO pŽ)y°Îµ°Cˆu_ãqÐ×ÂBuЫgYU½Ú|êYÊŽ1jÎŒ~SK:t:é4a0` pŽ¶Ì¼Ì¼ì_¨8,Êçd¹nD¹o¶~ѸÏÔF“­]€¾Ùåf—›]Œ1~úí?¶ÿXË>®ª2!Á{ Qî›­oMÙu¹Þ/ÖÆÏ Ÿ>/|²ýÐ9n>n>îñ±ÇÇ[ö±ê“Ÿ<Âè¾ÙZ¯Þ¿Üü±ÇÇë•ç³ÏRv‰T‰~-–€s¨¤ø¤ø¤xkFoìñ]½¢ÜŒ¬WÞýÂÅ;ز¶!>!>!Ù>À{xâቇ'¬Ÿ—Í÷Oo¤åfd=tN×®åœ,k»¥Ò–J[*e÷ñsÚý´ûiwËÞù¤Ügîü}ÃçFï#Ê}õoøÜè}z%-+¬WžO@kì9^%úM×܆00›ÍÀ9VÔõ¨ëQ×-/ƒö¬äÙ¨T/âÛŒ¯Ÿûw Q«iŸ—}^öɾãgYü²øeÿò šŽ¾ä¹”ø6ãë«'ÿª\w¤e…ÝüÜüÜü̯̯̯²ïø :t,è˜eïªtü¡Äâþ„¸_ë•´¬°^y>ÓfoQ+Ñï›! @NFœCu‹êÕ-ÊòÒçÉF¿JÄ·™µþᣚ*üKŒ§yi^šW¶:1æsL±ºÅêû—·GÇ.¸ßfÖºn)ŸŸo·¬óõ×^˜‡OŠ„ +¬E/uf,uðâÛLxðŒå£¾c­ÎúQàs0mö»ýfÂ`ä4À9΋ðá/­]îLù¹ï…€Gö©ÎÝW”ç'zk/´ì"ÕI´çÖ^p첡Nœe{Döˆì™ÇÏͼ7óÞÌkÙ£–³ëy9?··U¹¹Ø§¦Ÿ°¯¢K/¯ì\¡K‘BNS·äUariŸÂ ZÖª{ÏùÚô†CýÝ]&GVjÔÕÞÚ¿kûßj,«½Èu‘ë"×ì8~"kEÖŠ¬eÙ£òõ:•ô¥=D§~ÑK"oW(×%iè«âUª·®ß«ðø’^åÊå¿R8²È@§Ý<½FºÜóÿ§Å *kÇ9-ùÓžc`½ª–ÕÖŸ†éa«–è7ë ' ÎqbæÆÌ™kyqsÊ~w+Ù÷=µyƒò5vðkê:åóÿ@Ús›Sľ’­]PN<Ÿx>ñ|ö?«ë¬®³ºŽe_v›3­úÇvæÎרaèý®áåÜ^Ó¯UŸøFÛOü´¶Ó°·e;=Êz”õ(›ÿ 8xàà–=ªQÚ¢ÍßÚ6.­>bjá?J;~Rêv….é3®]iÛÖß!<_t>{ €õªZ¶Y? |¦ßÛŒc‰~ß&Â`pŽ3eÏ”=SöX^Ð<•Ò©_¨=G¿Mµ'Tü—èÈþ=fFÝ\-[~©Õ¥V—Ze¯ñÓ|Xóa͇Yö%nŒx¹Á¯öš†:î®ýŸ¸´v¹kŽkïùCÓÊmbJ®Ú_û]ýÎà_¿Yi»³ßçÝ ~’úë=–ßoðýÄÀ¾+¼»ÝdYóø%ñKâ—d›¡ÓÀÜÀÜÀêßհ¢OØìÉWÃÆj[ô¬çõÇÿ× Åù÷(y´É;«{ÌX|ŠCµw'N\S×kì÷uçœsõlpùËùþ+§î…Ý=Z +zð„µšëG„ÏÄôËêh–è×¶ƒ`$À9Žw=ïzÞõ,/b¾¸ÐGn´ÞâÒ»ýzæªï¾~pS*»B^úw›SåŠóGEZ1ì>ŽXóUëš—,[¾Þo½ßz¿ì2r’ó$çIÎcÙ‹"A…åßc~½¿q€mƒÒÁ‘·Í)ùØå³BŸëm«¶Ýc‚Ó,=ÐýÿFËÿÿwéÿžú»¬}¥­Ö BÇòüÓ²òÇSާOÉ.ã'öaìÃØù).ñQ]¿·l”Vî=ìDèÿùã>~ÜNÿ¿–á®þ/e—~•ø‡þߎeò¸²ÏAëþ—7v?Œ}ûÏÄו1-ѯ½! @vGœƒ$NLœ˜8Ñò’¥gh±þŽñö—®8×x·oú/¹Ú[òÛo¼gÙò¾[ûní»5»ŒŸ{ î5¸÷/wpÒµ^9»ˆK÷ œ;·z»ÔmÛv6t ÏÙôº©¿«‘R«Y±öÛ½æHí–•;v.ì\v?‡sÎ}8÷¿<κZÿ¸IÓl‘–ëÐá‹~KõöŠt¹SÚ'=t®÷×Ëÿïæßÿw7°½Àz…-+¯>ßðó4“"[¢_ûG €ìˆ8¹§ÜSî)–—)GÅVÊO¶Ÿ¸ôÔ®NÍýÆÏü¨î.÷W–ëì'Çô]pÀ²å¥#JG”ŽÈ.ãçðŠÃ+¯°ìÅgÝWõ{J—4§VÞìa·ë®lé;Oÿ®bnXj?÷ÇEIÅüK8T&¨LP™ì2~Â… dÙ‹j±“û¯O±mDZ2¥ÉÜŽO 9k%÷¹t¯ãÖ¬Vz¢ÜZ»ætÝÓ˲Göë¶l§~Død̈ŒÄ·D¿Ùa0² àä䯓On´¼4¹nB“ÓU~¶ÿU_gÇX_{®.6Üñ念?{ØpsÃÍ 7ÿåAÄÇ×®¯}Ö‚ÒíQ3ݪåí×»ƒPfôÜ]*”•Ò⦾{¸êq÷OœÊØOœìqp~ÀJËÊ{ñ>â}$»ŒŸG<ñز¾ç›Ñ>žœöºbÛoÏŒ9–ú¾aû €õ [V^?"|2fÜëF¹D¿Æ@ {Fœƒì‹Ù³/Æòrä§vµjõ'Îêu÷Вϲoüë†_7üºÁ²ý·ýv÷¯·É~˜lù`çô|e;9 ¦Äÿî~¤[Ñr‹ìíMÀEæ~š_˾ã§E@‹€–í¯ãº¬øúöôÖè:íÑæã>'';í…oøÜè½|Òö¯m£¶Ú6âäG ‡›-º×ó'Îêõ¼æõÿô¬h¼ñó²õþ™4û}/´Ü\¸Nâ75[ *9>uûkÌóLrJ9âµêßhûŒ~õu§–M¿q]b¼ñ“]Þø[ç—å£þ®™2«àΡ^ë¿?>wnñ*Õ[×/U«üxtÙuûl?Ÿt€ýÛí¶Ûm·''È8`p0wöàWôhdž:0´’Cá…ÆæÿZo³k¾âs þ9ó£•Ý_½ Ú¿ªÑA{Ž~¹Øž#Uç&µL1vis0ÀÀÈalG¼Çò¶—ŸþüéÏŸþ´¼àÈ;€mûàì2~:¶îغckËöÛç;€/úo>î_¥Úv N³ôv0mùòZ¿è_“½¢_}]d~á§ùµì;~Z´h`Ùþ:®ËЍo«pÔwùüêBÔí©øò§!éß‚O“Ÿk¯l©oNaÅŠÙ[¬Wزòúá“1³$I,’X¤í’¶KÚZ}TûŠ+z¬è‘ö׬´zÐêAÔ3{I:t:éô_UþªòW•ô‡¾­F´Ñj¡/²prrãÉ'7Z^‚\7¡Éé*?gõÚsu±áŽ/³o€·á憛nZ¶ÿøñµëkŸµŸ Ô¯i• ŸçÕÛÖH©Õ¬Ø‹‡.BL¿ìúêëdƒóVZVÞûˆ÷ï#ÙeüŒx<âñˆÇ–½ð=8ß$ˆösoIÇ€=í¥ÿ{+}úË8UÿÞbk}Õõ´·X¯°eåõ#Â'cÆ¥'úMë¾î×Ã>úÀžç ÷”{Ê=Åòr䍨êBùÉÀY·NŽé»0à€eËKG”Ž(‘]ÆÏá‡W^aÙ‹?Îþº¯êö”Š¥6¨Ñ[oUþw;4¾ìºµ™ÿòìýêë¸(©Xƒ Š‚Ê• *“]ÆOø ðAáƒ,{Q-vrÿõ)ö;,ο¿@@ÕÐñOú¤ý]µ:Ï®±ë^¡O‹/wm k¹ íw]µ·X¯°eåõ#Â'cFd$Ê%ÎŽ}]ç ‰'&N´¼4éZ¬¿c<pÖ­cK~ûmƒ÷,[Þwkß­}·f—ñs¯Á½÷Xöbè®õÊÙE¼úÝ–¯ò–úß}œ]>+ô¹þß fŒ)èùçë®í'>¶{Í‘Ú ,+v.ì\عì2~ç>œûpnË^xTë7išm#ÒêÇ­õç’üW GøþDãH«¦=ZWž3¼÷L7ýQÏ^.#?ŸÝ½\‡_ô[šúÏúÛõJÛÛ[Šõ [V^?"|2¾áçi&Å·ÄÀöÐÙpŽã]Ï»žw=Ë‹•/.ô‘­'ΊuÄš¯Z×¼dÙòõ~ëýÖûe—‘“œ'9OrË^ *|,ÿóËèýl”ÖK®Þ±˜‹C&±ŸxAè˜BžþË÷SާOÉ.ã'öaìÃØ‡–½(ñQ]¿·ì!(ýß{|9åý¼{úÇIQ÷Å>ÿTwšüxÃ{»÷W_ë¶l¹~DøL|]YÙÛB_dwÀ9Δ=SöLÙcyáòTJ§>~¡ÀY±3£Æî ®–-¿ÔêR«K­²×øi>¬ù°æÃ,û7F¼ÜàWÛ¥®ùŠÏ-ø§ñ`ßÞÝ‹n²laü’ø%ñK²ÍÐi`n`n`­ÚuÔ°¢OØO ¬ßãë¤TUµOÁ¶Ÿwpn“k᪎[Šœ¯°¤òn—}þ-›oóè3à×ÉíüÂóEç³ÏèW¯ªÕÞÀÜÀÜ€ÏÄôËꘖض}`$À9NÌܘ¹1s-/bNùÑïn¥ÆÙåAЩÃ`{naŠØ÷q@²µ ljçÏ'žÏ^ãguÕuV×±ìËîbs¦Uÿ8û¾g×>×Ok+1 {ÿËc“Ëz”õ(›ÿ 8xàà–=ªQÚ¢ÍßÚOtšºmi½…¾©×zU-«­> ÓïmF³ÄÀo¡/ŒŠ8Çyþ"üE¸µËš)?÷½ð({ÅÀö¼¾àØeC8Ë:÷ˆìÙ#2;ŽŸ›yo潙ײG-g×ór~Nd›¹ë]ÛçøV{dYíE®‹\¹fÇñY+²Vd-Ë•¯×©Ü /í9LÍŽk½ª–ÕÖŸ†éa«8–8ëú ' ΡºEu‹êey‰ód£ŽŠ_%‚ÛÌZÿðQÍFFZÖYóÒ¼4¯l9tbÌ1æ˜bu‹Õ-V÷_Þ*ºXlàBp›Y뺥|n|¾Ý²Î×^x=[ÞÁ™°"aE «‚ž±|ÔÁwn3ááÏ3–:øŽµ:ëGÏÁ´ÙCK œY}ÓçPQ×£®G]·¼ÜÙ³’g£R½n3¾~îÿÝF¬]V~ÙçeŸ—}²ïøY¿,~Y¼e¿4}És)ÁmÆ×WOþU¹î¿ü逛Ÿ›Ÿ›Ÿù•ù•ùUö?AÇ‚Ž³ì]•Ž?”XÜŸø6ãk½’–Ö+Ï'`Úì-v%~3„¾ÈÉ€s¨¤ø¤ø¤xk@oìñ]½BÜŒ¬WÞýÂÅ;ز¶!>!>!>Ù}ü<<ñðÄÃVãíæû§7R q3²:§k×rN–µÝRiK¥-•²ûø9í~Úý´»eïŠ|Rî3÷þ¾ás£÷â¾áÚ7|nô>½’–Ö+Ï' 5öµ§knCè ˜Ífàn™y™y™Ùòbè°(Ÿ“åºâ¾ÙúEã>SM¶v¡ùf—›]nv1Æøé?¶ÿØþc-û¸ªÊ„ï)„¸o¶¾5e×åz¿X?/|^ø¼Èö@`>n>n>îñ±ÇÇ[ö±ê“Ÿ<Âå¾ÙZ¯žeUõjë•ç³ÏRv‰W‰-ú–€s´guŸÕ}V×ÚåÑË…»Fù/!Ð}ÝõüÆ òxö²¬g/µ—ÚK5Òø¹y%òJ¤µñó´²¹aÝ×]÷õå—¥îXÖsaž…yæ1ÒøQv)»”]–=-4À9¦äÁ:×ÂBu Ð}÷þ^ 9ÔA¯žeUõjó©g);FªÄÀ„¾@Ú€a^²$dIˆå¥Òú—ú½Xó¬ z=ˆuÓ³¾µ®ûËzÓ­]z¾Ö÷Zßk}7~ú•èW¢_ ËþŽømHù˺é_GŸZñÊwœµñó,îYܳ8C ÊæÊæÊß{|ïñý¿Ü±Z¥ÿIãˆuÓ¿Ö+ö/•üÞã{ïõjóy—ZvQsf Lè ¤0Ì/å—òKÙÚÅÓ aM—UI"ÜýõwA^K7¹X¶zñ›–5÷Ǹ?ÆýaÔñswÕÝUwWY?G6¯è{‡p7íuÂÎÈÖ­Õp㢋6.2êø9ºàè‚£ ¬õ½Vðì¹»¿%ÜM{­WÉZ õ óI—š‘¢ÓœúéAŒÿQÃÔ05ÌÚåÔ SÞÿ A¯µõ²ä€¦^]¬U/þ³øÏâ?3öøY\·CßyÖ.¸‹Ä⃜0r’;%wJîä1Ãc†Ç Ë:|Ù¼áç.GRö:DÜ›z½ñ«©Óª–µ6~.>¹øäⓜ0~+•ÇŠµ:”Ë×þ» 1Ľ–k½2Öê¦W•Ï5]NˆHsB y4äÑB_ mÀø?âãã­]8nS´ü]—)Iñ}¿˜Oô{µø7wë¶°V«áƒ‡>8§Ÿ«nWÝ®ºY«IHÕÀ#n}}õuT³°jµ¶X«UØÁ°ƒasÚø‰ìÙ;²·µšxtðÍ䢄¾ÿ{ãoÇßL.j­Vz%ùDÓå´‡$çÌwHÿâÔ SƒN ²vá8p­×¦ÒçSvô}˜3£ßÛöèRú¸­u[ë¶öeÌ˘—19süìwÈ;¬¾UzÖ³‘Û<‚rrô{üÅÚ¨ÚW¬Õ§G¿ýzô355Í™ã'Ô9Ô9ÔÙZ}*_Ñ}ÖÀœýê°V½z|Š¥–3£Pb` '#†UÛƒ¶m²vá¸OS/÷ÒÓ’:õý,`xΉ~¯=è6¯î_iº³ìβ;Ë?¿µú­Õo­¬ÆTm‡¯p?n~Ù¸QΉ~¸¬Lòµú§*:UtJذ;awŽ:þf³÷©Ý§v·úVéÊŽC/ÌðÌqѯãÐ 3<­ÕD¯˜^=~ÿ¤æöÊí•Û«œ¦Ož<9˜0þÃï÷~¿÷û=k‘C“]eÝŠ_zÚ²÷æ†}ý_Õ±\í#iG¿çù;Ïßy3ÿ³Ç¼Ç¼gÈÓ!O‡<µú ì¡ßœ(71©vÔߌýîº;§wµ¤´ÇO¬O¬O¬G÷ªè«¢¯ŠÖÝUwWÝ]V#ó¯¾=7æ„­ðYÑ» ýÖ Ÿ½K冀:èUÒ+ÆÈ±ôd쓱OÆ–êXªc©Ž9óÎW˸ýÚökÛ¯elFEŒt™6;lvØÄŸnŸÖ 1^ô»îÇ&'«ü”v߯;¾îø:Ɖ¥”!)CR†EEE[«žo¬÷¢¢Ò=Ͻ{êw4Rè›òôÐËÆ¹§œ4«Rç´ÇÏíá·‡ßÎh±ô¼ÇóÏ{øŽ÷ï;ÞZõ\›4¬üe²ßÔ%u#Î)úÕ{¤÷ÎêÏÎxßñ¾ãõ*1ZÒ¦ÇÀk­Y´fQά€ÏùiÎOs~b<ÆFŒ×°¬ú²ê˪§e-‰o4¹òMsß ïÆe²oèû°ö·Ñ t w÷)Y:íþžyzæé™§Œ´¥œJ9•r*X–ƒå´ë¹kØœª]ËîÑï•ÂÛNÖu¨úÔ½Œ“»µž[UlU±U÷|ïùÞóe„¤-ahÂЄ¡-}[ú¶ôM{üøÌŸàµjjv~õ^¤ÝS½ze!€Ô€ñÚvWØ]aw…´Ã‰Š¡E:~vb@Ç!µ_e›è7)¨oã€uc›œ¨’vï\j¹Ôr©uóÊÍ+7¯0^CŠ9Åœ²ðÄ O¤]á6eTuùõZë¿fÖ•]BßľQUüf ç¾4íÞµèÜ¢s‹Îñþñþñ¼«õ5$=Mzšôtd‘5FÖH»Â¥v5»ØåFíš ¤ñÙ%ôÕ[«·<íÞéЫÁ¨X"Æ:¿ûüîó»ÒŽ+: ¨Ø°ÄóóïuiTg«½…¾IÇûúÌØ[¨uêc µÊ¿:ÿi÷%pdàÈÀ‘ ® ® ®ŒŒˆ¬Y#ò?b¼ÿ½'8è›èr?ßj½k[½`{ }vF¶i¸ºÎÄ(ïˆôôeÚ¼ió¦ÍK™˜21e"c #6œÙpfÙôÔ¼B®‡uªí³ð3i¨Ý…¾> ?“†ê-LO_ô^sôi#F†$ÜH¸‘p#¸]p»àvé 0ê t}öyáHµÆ—¶ }_æïsªÑŽÅU^©ânÛl{°íG|ìúæë›¯oæ¨Ù‡¥–~X:tNèœÐ9ö<~ôê­å¨2ŽoÕ¥±—Æ^û‹ö‹ö‹f«¸ÅÇÝÇÝÇ}í±µÇÖ‹óŒóŒóä¸d'zžèy¢çðÖÃ[om«ñÓlb³‰Í&îš¾kú®é Q Q Qû—ò]Êw)ßEš"M‘¦î¡ÝC»‡ÚìÏMB»‡vÕ[¢·Š£È\À°±›…nºYhsƒÍ 678*p”ãNÇŽ;3´x¯ö^í½:Ä;Ä;Ä[MV“ÕäG %PsƒH4'š/»tîÒ¹U!«BV…tÞßyçý™ÔÕ½T÷RÝKÓ¦'LO8|äð‘ÃGžŸ|~òùI o IñIñIñ§åÓòiyQEh9»åì–³3küè[Ó·¬ïEß#•d5`dûÍûÍû÷?Þÿxÿ㈙3#fV«‡U ƒôxÙöeÛ—m÷wÞßyçH·H·H·ó‰çÏ'R¤Çý÷Ü?©þ¿Eÿ*°7À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`o5Žx/⽈÷ ÇÐsR`Èö€À r\¬ÿ{Ä;ïD¼‘+"WD.-EKÑR´d-YKÖµD-Q{¥½Ò^i/´Ú -AKдgÚ3홯ÅkñÚí‰öD{¬=Ök´GÚ#í¡öP{¨Åj±Z¬v_»¯Ý×îi÷´{ÚíŽvG»­ÝÖnk7µ›ÚMí†vC»¡]Ó®i×´«ÚUíªööövY»¬]Ö.jµ‹Úí‚vA;¯×Îkç´sÚ9í¬vV;«ÖNk§µSÚ)í”vB;¡ÐŽkǵãÚQí¨vT‹Ñb´í°vX;¬EkÑZ´vP;¨Ô¢´(-J; Ðh‘Z¤©EhZ„¦jª¦jЦhŠ&i’&i¢&j¢fÒLšIÛ§íÓöi{´=Úm·¶[Û­íÔvj;µÚm‡¶]Û®m×¶iÛ´mÚVm«¶UÛ¬mÖ6k›´MÚ&ííím£¶QÛ¨­×ÖkëµuÚ:m¶F[£­ÑVk«µÕÚJm¥¶R[¡­ÐVhaZ˜¦-×–k˵eÚ2m™¶D[¢-Ñk‹µÅÚ"m‘¶H[¨-ÔjóµùÚ|mž6O›§ÍÑæhs´ÙÚlm¶6S›©ÍÔBµP-TûMûMûM›®Mצk¿j¿j¿jSµ©ÚTmŠ6E›¢MÒ&i“´_´_´_´ Úm‚ö³ö³ö³¢…h!Úxm¼6^§ÓÆi?h?h?hc´1Úm´6Z­ÒFi£´ïµïµïµÚm„6\® ׆jCµ¡Úmˆ6D¬ ÖkµÚ@m€6@ õÓúiý´ -H Òµ@-Pë£õÑúh½µÞZo­—ÖKë¥õÔzj=µZ­‡ÖMë¦uӾѾѾѺh]´.Zg­³ÖYë¤uÒ:i_k_k_k´Z­ÖNk§}¥}¥}¥}©}©}©µÑÚhm´VZ+­•ÖRk©µÔšk͵æZ3­™ÖLk¢5Ñšh_h_h_hZ€ 5Òi´Z­V_«¯Õ×êiõ´zš¿æ¯ùku´:Z­¶V[«­ùj¾š¯VS«©ÕÔjh5´Z5­šVMóÑ|4­ŠVE«¢ykÞš·VY«¬UÖ<5OÍSs×Ü5w­’VI«¤¹inš›VA« UÐÊkåµòZY­¬VV+£•ÑÊh¥´RZ)­¤VR+©•ÐJh%4ÍEsÑŠkŵâZ1­˜VL+ªÕŠjN𓿤9jŽš£VX+¬Ö jµ‚Z­€V@sÐ4-Ÿ–O˧}¦}¦}¦}ª}ª}ªåÑòhy´ÜZn-·ö±ö±ö±ö¡ö¡ö¡ööööžöžöžö®ö®ö®–KË¥åRͪY5«Éj²š¬&©Ij’úJ}¥¾R_ª/Õ—j‚š &¨ÏÕçês5^WãÕ§êSõ©úX}¬>V©ÔGjœ§Æ©±j¬«>P¨Ô{ê=õžzW½«ÞUo«·ÕÛê-õ–zK½¡ÞPo¨×ÕëêuõªzU½ª^Q¯¨WÔËêeõ²zI½¤^R/¨Ô êyõ¼z^=§žSÏ©gÕ³êYõ´zZ=­žRO©§Ô“êIõ¤z\=®W©ÇÔcjŒ£Æ¨GÔ#ê5ZV£ÕCê!õ¥F©Qêõ€z@T#ÕH5BP#T¢*ª¢Jª¤Jª¨Šª¨šT“jR÷©ûÔ}êuºGÝ­îVw«;ÕêNu‡ºCÝ¡nW·«ÛÕmê6u›ºUݪnU7«›ÕÍê&u“ºIýCýCýCݨnT7ªëÕõêzuºN]§®QרkÔÕêjuµºR]©®TW¨+Ôj˜¦†©ËÕåêru©ºT]ª.Q—¨KÔßÕßÕßÕEê"u‘º@] .Pç«óÕùê\u®:W£ÎQ稳ÕÙêlu¦:S©†ª¡j¨ú›ú›ú›:]®NWUUU§ªSÕ©êdu²:Y¤NR'©Õ‰êDu‚:A þ¤þ¤þ¤†¨!jˆú£ú£ú£:N§ŽSǪcÕ±êuŒ:F VƒÕ`u”:J¥ŽTGª#Õêu„:L¦S‡ªCÕ¡ê`u°:X¤R©Õê@µ¿Ú_í¯öSû©ýÔ¾j_µ¯¨ªêwêwêwjoµ·Ú[ýVýVýVí©öT{ªÝÕîjwµ›ÚMí¦vU»ª]Õ.jµ‹ÚIí¤vR;ªÕŽjµƒÚAm¯¶WÛ«_©_©_©mÕ¶j[µÚFm£¶V[«­Õ–jKµ¥ÚBm¡¶P›©ÍÔfjSµ©ÚTýBýBýBm¬6V«j€ 6Tª ÕjµZO­§ÖSëªuÕºjµŽZGõSýT?ÕWõU}ÕZj-µ–ZC­¡ÖP««ÕÕêªê£ú¨UÕªjUÕ[õV½U/ÕKõR=UOÕSõP=Tµ’ZI­¤VT+ªÕ jµ‚Z^-¯–W˪eÕ²jµŒZF-¥–RK©%Õ’jIµ„ZB-¡º¨.ª‹Z\-®W‹©ÅÔbjQµ¨ZTuRT'µˆZD-¢V «…ÕBj!µZ@- Pó«ùÕüj>5ŸšOÍ«æU󪟪ŸªŸªyÔ/ÿ-ÿ-ÿ-Ÿ•ÏÊgå3òùŒ|J>%Ÿ’OÊ'å“òqù¸|\>&“É1rŒ#‘ÈGäh9ZŽ–ɇäCr”%GÉäò9RŽ”#å9BŽUY•Uý€,É’,É¢,Ê¢l’M²IÞ'ï“÷É{ä=òy·¼[Þ-ï”wÊ;åòy‡¼]Þ.o—·ÉÛämòy‹¼EÞ,o–7ËÊÊÊÈÈÈä òy½¼^^/¯•×Êkå5òy¼J^%¯’WÊ+å•r¸.‡Ëar˜&/“—ÉËä¥òRy©¼X^,/–———Ê å…òy¼@ž'Ï“çÉså¹ò\y¶<[ž-Ï’gɳäP9T•gÈ3äòtyº<]ž&O“§ÉSå©òTyŠ9ŸœWÎ+ç•?•?•?•óÈyäiŸ´GÚ#í‘vK»¥ÝÒNi§´SúKúKúKÚ.m—¶K[¥­ÒVi‹´EÚ"m’6I›¤?¥?¥?¥ÒFi£´AÚ mÖIë¤uÒZi­´VZ-­–VK«¤UÒ*i…´BZ!…KáR¸´\Z.-—–IˤeÒi‰´DZ,-–K‹¤EÒ"i¡´PZ(Í—æKó¥yÒR©·Ô[ê-õ’zI½¤žRO©§ÔCê!õºIݤnÒ7Ò7Ò7R©‹ÔEê,u–:K¥ŽRGékékék©½Ô^j/µ“ÚIí¤¶R[©­ÔFj#µ‘ZK­¥ÖRK©¥ÔRj!µZHͤfR3©©ÔTj*}!}!}!5–K¥FR#©‘ÔPj(5”êKõ¥úR=©žTOò—ü%©ŽTGª#Õ–jKµ%_ÉWò•jJ5¥šR ©†TCª&U“ªI>’ä#U‘ªHU$oÉ[ò–*K•¥Ê’§ä)yJî’»ä.U’*I•$7ÉMr“ÊKå¥òR9©œTN*#•‘ÊH¥¥ÒRi©¤TR*)¹J®’«ä"¹H.’³ä,9KŤbR1ésésésÉIr’œ¤"R©ˆTX*,– I…¤BR©€T@Ê/å—òKù¤|R>)¯”WÊ+}*}*}*å‘òHy¤ÜRn)·ô±ô±ô±ô¡ô¡ô¡ôôôôžôžôžôŽôŽôŽ”KÊ%åSÄ1EL“Åd1QLÅWâ+ñ•øB|!¾Ä1A|&>Ÿ‰ñb¼/>ŸˆOÄÇâcñ±'ƉqâCñ¡øP| >ˆ÷Åûâ}ñ®xW¼+ÞïˆwÄ[â-ñ–xS¼)Þ¯‹×Åëâ5ñšxM¼"^¯ˆ—ÅËâeñ’xI¼$^/ˆÄóâyñ¼xN<'žÏŠgųâiñ´xZ<%žO‰'Äâ ñ¸x\<.ŠGÅ1FŒ‹‡ÅÃb´-F‹ŃâA1JŒ£Äýâ~q¿)FŠ‘úÅ?ýt_ÿu‚(ˆ‚¸OÜ'î÷Š{Žânq·¸[Ü%îw‰;Äâñ/ñ/ñ/q›¸MÜ&n·Š[ÅÍâfq³¸IÜ$nÿÿÿ7ŠÅâzq½¸^\'®׉kÄ5âqµ¸Z\-®WŠ+Åp1\ ÃÄ01L\&.—‰KÅ¥âRq±¸X\,þ.þ.þ..Š Åâq8Oœ'ÎçŠsŹâlq¶8[œ%Îg‰¡b¨*Îgˆ3Äéâtqº8Mœ&N§ŠSÅ©âqŠ8Eœ$N'‰ʼnâDq‚8Aœ þ$þ$þ$†ˆ!bˆø£ø£ø£8N'ŽÇŠcűâqŒ8F ƒÅ`q”8J%ŽGŠ#Åâq„8L&‡ŠCÅ¡â`q°8X$‰ÄⱿØ_ì/‰Ab(Šb±ØGì-ö{‹½Ä^b/±§ØSì)ö{ˆ=Änb7±›øøøØEì"v;‹ÅÎbG±£ØQüZüZüZl/¶Û‹íÄvb;±­ØVl+~)~)~)¶[‹­Å–bK±¥ØBl!¶›‰ÍÄfbS±©ØTüBüBüBl,6‹ÄFb#±¡ØPl(Öë‹õÅzb=±žè/ú‹þb±ŽXG¬-Ök‹¾¢¯è+ÖkŠ5Åb ±†XM¬&V«ŠUŪb±ŠXEô½D/±²XY¬,zˆ¢‡è.º‹îbE±¢XQtÝD7±¼X^,/–ˉåÄ2b±ŒXZ,-–KŠ%Å’¢«è*ºŠ.¢‹è":‹Î¢³XL,&‹ŠEÅ¢¢“è$:‰Ž¢£è( ‹…Å‚bA± X@, DÑAÌ'æ󉟉Ÿ‰Ÿ‰ŸŠŸŠŸŠŸˆŸˆŸˆ¹ÅÜbnñ#ñ#ñ#ñCñCñCñ}ñ}ñ}ñ]ñ]ñ]ñññÁ,˜³"¤)B’$$ ‰B¢(¼^ /… á…ð\x.<ž Ï„gÂSá©ðTx"<ž„GÂ#!Nˆâ„X!Vˆî ÷…ûÂ=ážpO¸#Üî·…ÛÂmá¦pS¸)Ün7„kÂ5ášpU¸*\þþþ. —…ËÂEá¢pQ¸ \.   ç„sÂ9áŒpF8#œN §„“ÂIá¤p\8.Ž Ç„cBŒ#ÄG„#Â!Zˆ¢…CÂ!á%D QÂá€p@ˆ"…H!Bˆ"UPUYIIЙ“`ö {…½Âa°GØ%ìv ;…ÂNá/á/á/a»°]Ø.l¶ […-Âa‹°IØ$lþþþ6 …Âza½°^X'¬Ö k„5Âaµ°ZX-¬V +… a…&„ aÂra¹°\X*,– K„%Âáwáwáwa‘°HX$, „yÂBU¡ªPUð¼oÁKð¼OÁSð<ÁC¨$T* …ŠBE¡‚PA¨ ”Ê å…²BY¡¬PZ(-”J ¥„R‚«à*¸ %„B ÁYpœ…âBq¡¸ð¹ð¹ð¹PT(*ŠE„"‚£à(8 …„BB!¡€P@( äò ù…|B>!ŸWÈ+ä>>>òy„§u u uÌøöõðuC÷ Ý7tÿöÒ·—¾½Ôxeã•WVv®ì\ÙÙiŠÓ§)Å:ë\¬³GmÚµ¶l Ø6®Ú¸jãªíí¶·ÛÞnÉîÉîÉîoÉo>¿ùü擺-š´hÒ¢‰^F{FL @ºL ™2%$õÙt­ŒVFÓÿûͶygôÑwFëq¯C& KKK0ç5ç5ç}³VÅïˆß¿ÃÚö ì00صFJZ õy;ÎN=;õìT˳éùKç/¿ôͶ¹zãê«7:d±XÏXÏXÏ7káœCsÍ9”zk…" EŠ `Ï€ €À®¥'ä£JY(¯9¯9oÓ‘MG6™ºænÁnÁnÁoVý]‡·¢úªê«ª¯ŠË—/.ßë¶3arÂä„É–ÛÔ‚ÍÐ`Ÿ€ €À®Û–µût—•YVfY™×Ýš©ž©ž©^ÚG³Àõ× \ï4¢ÓˆN#þÚóמ¿ö\v½ìzÙõeÐË —Aê<¨ó Žv@; =lô°ÑÃ>ï÷y¿Ïû¥½Í/æ~1÷‹¹I~I~I~¯Ûæß{þÞó÷žŒ=Ù00Ø5`[Ñ׊}+ö­Ø7uµ]<\<\<^·òÏV?[ýluùùåç—Ÿoí8êûŠnÝ*ºUú·¯eëb­‹µ.–£ÅÚ}ÀîÍÜ›¹7{ÕùUçW-ì00Ø5`[±vçëÀk ¬ñº•Ÿùbæ‹™/¬ÁÒ'JŸ(}âö”ÛSnOy³Ö&»'»'»§=NJæ*™«d®73Œ@Ù00Ø5à·ïEð‹àÁ&W˜\á_î|Õ¿üºÛô ô ô ´vwMß5}×ôŒ·ü¡ËC—‡.©ïQά1#¿/¿/¿oí®eýniF{@L vøí[ypåÁ•­…¯[óë‘×#¯GZ;v•+;WvÎÜã˜öhéù çƒž^w›)Î)Î)ÎŒCö˜€Eý÷åu·£Tú½›¯û½úãs•›ÊMåæð#à ?°-`[À6Úµ=j;®q\ã¸ÆÙÏÙÏÙÏ+¯W^¯¼ßÔü¦æ75õG?xñ4"ëê“u°=TÞ>ÕK®—\/Ù²Î㋌/2¾Èënm÷¸Ýãv³vìB>ù8äãÌmÿẇë®km5'ÕœTsÒ›œ±íƶÛÎr›”FJ#…ßfì00{Ýhón¿»ýîö›pxÂá ‡kx¬á±RWK]-u5õ=šéßûŸUþ¬òg·`·`·`‡7’úq»7×Þ\{smVÔáuÙªòzpn¹µ2Z­Œ¦GÅ™;~¾ÛòÝ–ï¶Xî1ÿ;ùßÉÿŽ~÷mú·S2¦dLIk59½îôºÓë^·…³îκ;뮵mn½µõÖÖ[™[“G¹åz”ËÚ]ó¹æsÍ÷fðñÇo¿Á}Àì00K˜”v–þøÑãG=n]¬u±ÖÅ27v-Ö¹Xçbß,³ç8ý•Ÿ»oî¾¹ûÞN@˜09arÂdk{iþuó¯›ýº{vqØÅa-·VåJ•+U®¼Yûõû†­µóˆ×¯#^™û3õää““ONZÛ£~G{FŽ…µ-Gˆ#D~§°-``6–vX˜Ø<±ybóÀY³g¥'øL;ŽõŒõŒõô¯ä_É¿’Ã[‘Yuxûð›UþÚ©k§®²ö5£‡6zXfœ-Ï·<ßòÜÚ¾Âï„ß ¿“þ­¥ýŽÛ¾?÷ý¹ïÏoÖÎÁNƒ;YÛ²~_uæþL-p´ÀÑÖöXar…É&g$îÖ'¬OXVl2Ž˜€¥+öëݯw¿Þé>­Àú[~­= 8µ6yÚäi“gÝë~\÷ã•'Wž\y¢¿Ý6._\¾¸|úÛUõÇ —ÌU2WI«ÚÕAœþ0¬{Ñ_Òn­µï²må­}þNåÌ9ú›˜3ë×ÓL;0ÍZË—4XÒ`Iƒ7kgüŽøñ;ºüû’?S‹†,²hˆµ¾|uô«£_ÍHL«¿ýšA°OÀÀlìuïm-² È‚" ôGõî¸gàžÇž{zìé7vÞØ©‡µ–{™ùÑÌf~”ö{|wMß5}×ô×½ƒ¶Ç'=>éñ‰µ-—>QúDé‰ú².f˺ʇ:†:†:f]ËŸFÈÜÈÖ¶ð›U^÷ë·¿~ûë·™Û~ýaÚÖ¶¦?žúu·,” J­msL¯1½Æô²Óž¼æ¼æ¼ f,˜±`FÚuvoæÞ̽YæŽöQ3GÍ5“7°7ÀÀl,í)õƒy_w˦˜v`šµ-O ™2%$sû¢ßlm‹†,²hHæÖÇ>+¯;7æÜ˜sc¬m_Oðën3ìðÃ>´¶Íƒ88àu·©¿7sZVÓlÞörÛËm/§}õ·P_hy¡å…–™Û†ùKç/¿ÔÚ~õXšßoÞ>``6–v|5iÙ¤e“–½Ù–Ó~ê¡o}sè›·Ù£‰={$fn}ì³òéÙKý‡õÖøº[kY«e­–µþåQÕy½òzå}³š y5äÕWÖÚ¹±ÍÆ6ÛØÃOJÂä„É “§:têÐôܽíìçìçìwìé±§ÇžfÅý¸i¿‰y„8B!òû ÀÛGL ÀÆÒ±Ô3êõÌ›m¹ÓˆN#:°¶å¸|qùâò½Íl ذíu£8[À©|ji¿ƒ9ý½ÐßCœqµµPYgªgªgªgÛŸ‘?«üYåÏ*•:UêT©Sz¢ßªÇ«¯z<¦dLɘ’Y÷(æ½ÝövÛÛÍZÚ$µIj“Äï7o00K;ʺòΕw®¼óf[ö ô ô t°©Û“Yõ±ÏʧvrÿÉý'÷güËi¿éö¢ÿEÿ‹þoÖÂÔoƒ¶¤Ç¨oÿçâÄé§Oœn¼²ñÊÆ+Ó3ºò¿“ÿüïÿüSðOú½ÂYÝÂÃu×=\×Z{|TÕGåMÀÞ>``6–v¬õèñ£Ç¿Ù–+ö­Ø·b_û €=Ý=Ý=ݳKœ‘ʧ_-š´hÒ¢Iz¶ÐHi¤4R,·ÐðXÃc e¤eÿ*ûWÙ¿²:Oøñ;âwŒm7¶ÝØvéW5æÕ˜Wc^äúÈõ‘ëßfàzÙõ²ëeWk­ª0¹Âä “ €¼}ÀÀlì?Î¼æ¼æ¼o¶åÏû}Þïó~ö—|\òqÉÇÙ%ÎHå-…|òqÈÇ–{)p½Àõ×ÓîËÕëW¯_½n­¿÷ü½çï=3Ò¶¢£‹Ž.jõáÒ¯=¾öøZVÿèo¤ö¨íQÛ£vzÆ’[°[°[ðŠs+έ8g«Uˆºµo^¼yñæÀÞ>``6–ugá…wÞa?pêöØC}²nË–R¿öu÷êêêhùõOo3N{VtXÑa…µïòkê×Ô¯©åw}=ûëÙ_ÏÎxkSß«j)Ö3Ö3Ö3“ ‘ללw„8B!þÇ›}Ÿä’ÿÉÈM#7Ü”ÕGçu镱Örg?g?g?`o00˺ÒGõQ}Tk[Ö,œ“ëóöà1½ÆôÓËr_Žk×8®±Üïù®ç»žïj­…›Jo*½©tÆ[•úmµ–.´¼ÐòBËÌ­ÃWC^ y•vý«m¯¶½Úöƒ88À>cT½2ÖÚŸú Üü–ð6°±¬‹!›Ýüëæ_[Ûò¯#^G¼rr}Þ~œ:ÎLÏ~'‡NšÕï—Õ£VkíÑßΛY¿~'üNÚH}¿¯=Ì´fy5æÕ˜G àí#&`cYCŽ«6®Ú¸jÖ¶¼åù–ç[žçäú¼ýXô±µ=öHì‘Ø#1õ—[»‡»ûþíû·Ï¬v¶“ÛÉídk­Ú=n÷¸Ýã2¾—+O®<¹bõMÃùßÉÿNþwf¾˜ùbæ‹ìšîš¾kú®éi?Ö›ÀÛGL ÀƲ.†ÜvvÛÙmg­m¹ów¿ëü]æöåÆÎ;oì¬õý¿/ÊMå¦rÓ~êcƒ8Íýë\¬s±Îú¿qüÆñÖ¾òÍ*iMðOÁ?ÿdm_k–¬Y²fIÆ÷4¿ùüæ“ö ž,x²àÉ£Ž8Z ëê3rÓÈM#7é ~ô2èeþÆYû©¼5I~I~I~é€gŸŸ}~öù¬kÏÔ¡S‡Nš¹5¹òäÊ“+OìRFj¹>r}äzk[þõÛ_¿ýõ[~³°``6ö6cÈcï{÷Ø»%—|\òqÖEkúýÄ민~pV¿©7#Õ³mœþÞéõ¼µàÖ‚[ ²®%zØŸ¹5yÝ»œ³K<ë³îZÛòÙ©g§žÊo6¶BL ÀÆÞ~ ©oÙÓÝÓÝÓ=sC5-Ï·<ßò<³ÚÿCÀ?5ÞÛmo·½ÝÒnI›Íú4ëc-RÝvvÛÙmgí­G–í,Þ¼xóâÍc=c=c=zºcÅ;£ïŒ¾3ÚÙÏÙÏÙ/çÜüc¹ËýX.uO]<\<\<îö»Ûïn?Æ9ûDL Èd¯—ý«ì_eÿºÐòBË -í¹_–-wšâ4ÅiŠñQ½GEG]ttêþ®¼~ðúÁÜû Àž2Yú`¯¼^y½òž^wzÝéuÙ%VÌ ïþ~ù÷Ë¿_žºwýz÷ëݯ7Ñ/ûGL ÈdO#žFñ|"•AzÜ?pÿÀý‘êÿ[ô¡2²š>ÛÑg>ú,HŸQ¤ÇÉ&˜¬½Ô^j/õÿ¦&àÌ g^0*ý:~ÍG¿þ£_ ¢2àÌ @ÎD »Yèf¡›…67ØÜ`sƒÀQ£G9îtÜé¸Ó!üW{¯ö^âââ­&«Éjò£„G ¨¹A$š͉—Î]:wéܪU!«B:ï_ó~‡LR÷RÝKu/MO˜ž0=áð‘ÃGy~òùÉç')¼1$Å'Å'ÅŸ–O˧åEXT åì–³[Îάñ£oMß²¾}T€>Ñg&ú,EŸ±dü7>ƒÒgSúÌJŸeQs#¹?üþðûÃ÷|½çë=__;|íðµ¥g—ž]:>¿ôíèÛÔ·¯ï‹šsæÅ™μ`+úuýšŒ~}F¿V“YãG¿Ž¤_SÒ¯/éך¨ûÒgb—ìâvîÛ¹oçžþýù÷‹O)>¥ø”·?rôýêmÐÛÃqáÌ‹3/œy!+è×Xôë-úµ[ýº“~ Šã™g^²/`d¡Äó‰çÏïŒÙ³3¦Â§>­ð©ƒ]êþ¬û³îÏΜ>súÌiŽšýxîýÜû¹÷ª:«ê¬ªã`Ç‚ >v}óõÍ×7sÔìÇÃÒK?,:'tNè{?z õÖrÔcÐgúìÂ>óè³2}†¦ÏÖ8jv¡¸¹¸¹øyæ˜ðNÀ;ïØçøÑÛ¦·So3‡Ž3/μμ8ó›ѯ¥è×UìyüèצôëT5μ8ó]#“%¯L^™¼r˧[>Ý’¡‹õSJ­+ÖqLû++\^- ›WßÛ[ŠÕÆÉ·¾¼Wó}­sÛS5g [Úì®Ñ|Óéæ^Uãæz×oäq/hƒ÷ 2­Ýö]Vøâ^Ò2˜ÌgœÎ8qâh¾}/Ú¾hû¢í"—E.‹\2ô¨yõª8?ÿ¹eÐ0·++&ô»ëüœŽÕ^*¿S³‚*.¾\sð¾ÈùAÕ/nl:uBÕR3F{æ¾¼ÇóÖ]K}íœçóšÌo¶ßÞý{÷ïÝÿÆo7~»ñGóí‹{÷,îYˆkˆkˆkFÆóÝÚ»št-ß “ç .þ>™´ÉË4*ïÜëU:üPtq/}­ÿ‹þõ¯Ô¿+#ûÕ[®÷‚£ d³KNgœÎ8鳈7û  Ï^ô™Œ>«Ñg8úlGŸùè³ }F¤ÏŽô™’>kÊÈï}æ¦Ïâ8šo÷£ËgŽ‹X±0ba™‹e.–yÃlõ<œV+Ñõ`¹š‹ö=VÙc[«Ðw|vKsõ®±[{¶äxÍúëÿ®þõú÷¾Ù~õ6ëí×ûÂ!ÍŽg^EÿðìR£d™‰m¦öª^iiŸ;!•˜1k}•¢c;ý>°ÊìÎ,éè=vtŸw=—é5½™Û=jZ²uã*ÎUbE™2œyœy½™ŽïW¼àÚvÊ\¿Ç•š¯ÝÐdb•/÷œlýEõþj©¶Ýk¶Ð×ú¿èÿWÿJý»8óʾôk&úõ“7ÃÑg;úÌGŸé3"}v¤Ï”ôYg^² `dš˜#1GbޏÎqãúõÙý{ðR¹öŒh]¦z‡§_÷ÞÖ°ŸÙÔ¸qf­/‡wMò7…%5þØëhõ5.ƒœ¢Òß¶ÀU«WÅîˆÝ»ƒã›…^˜_˜_ìÙ»gïž½¯;m:¬kƒrù#r/¹ZsoÒâƒe~6›££7άõ™°übgWyÃ#¸D¹b— ŽNÛ&™TdR‘„i Ó¦q³ðÒgxrxrxxÙð²áe_wü”shß7èGŸ9ʯçï¹k}Ëú^^·mzôÞq”û¤ÏôÙÂkuk\9Eé3}–’¹3}6¥Ï¬ôYVúÛ¦ÏâôÇ7«])y¥ä•’111é?F-‚ê6qÞ¾é½i««Ê·Oì¾ZïXæÎ|ômêÛ×÷õa^L@L@ŒÞ/ޝ}žy•èXϯ•—׆ïOÏ]T;fÑSåFæÎ|jœøíÛ­›+= LþiD‘qåG{ÖçÌ àÌK÷sWß0·ëGÔù>ÈÜ™¾Ö·¬ï…3/û¤_ѯ“¼Æ'W¹b— ŽÖ¯Éè×g2wæ£_GÒ¯)é×—^wüèײôëZe{;óÒg#úÌDŸ¥dîÌGŸMé3+}–Å™{CŒŒMàn$ÜH¸Ü.¸]p»ô|¼Õèúìó6‘6j/³bÒŸžõËü}N5Ú±¸jÃ+•CÒÿÁ¼íÁ¶ÛpÄ3yçëëÜîB» í.¤ë¯ƒ7ut|øÛ•}}—fî¤?ýëû£öí«¿r²çÀF_¥ür<äxÈ‘#ž¹.»tîÒ9Æ=§ç(”:ÔܱkåŽÓ lÚžqoº.Œ:N+°i»Þ’ô´YïÞSŽ8`?ôYAú?ôY‡>±ÕüGŸ}é3±t½à ]p»àvúL#žYR±ÕüGŸ}é31μØ0ÞÐùÝçwŸßíààöÇX‡–x~þ½.êlµÕÔßÚ:éx_߀{ µîQ}L¡VùWçÿà?þ2}dàÈÀ‘ ® ® ®ŒŒˆ¬Y#²Fz¦Aþ‰.÷ó­Ö»¶Õ ¶ÕÔßÚ:agd›F«ëLŒòŽHO_¦Í›6oÚ¼”‰)S&22bÙ g6œI×ÛVêtm<¬SmŸ…ŸICm5õ·ú·¢> ?“†ê-LO_ô^sô[Ñ?ýõ™@Ú?­úŒBŸ]è3 {›ÿè³2}†ö¿zôYc #îw¼ßñ~Gÿþ#üGüÇ=â{<Û8ŽþrÅßîæ?£§5ö±£ùÏŸÑÓûèmÓÛ™v_ôþê}g ¼3/çžòÎÕþ:oSA{›ùÔ _¾ý`+¯ƒ£ªÏst¸Z`eÁo9óŒtæõÛ&ÿ³îÃUï5¥Á{›ùè­Ò[È™×Û¡_÷Я¤§æúuý‹½]ùѯGéצÒÓýzcàíœyé3 }v¡Ï4ìmþ£ÏÊôg^Þ>`¼¶ÝvWØ]á?þÞ*´èCÇÏN è8¤ö+{›ú[]'õm°nl“UþãÎ`—Z.µ\jݼróÊÍ+Œ‡×90§˜SžXxbቴ+ܦLƒª.¿^ký×̺³ìmêomØ7ªj€ßŒÃâÜ—þÇÃ;·èÜ¢s¼¼¼?ƒ"ý’ž&=Mz:²ÆÈ#ÿãOJíjv±ËÚ5:Iãímêo5 ®¹ÐI¯·<íÞéЫÁ¨Þý_ÿôOû'TŸEè3Šì2ÿÑgkúÌ-íÞé3@ÆÃë:þ÷ñ¿ÿžË…R¹Eyk,Ï.3}­·9=½ÓëÀxÈŠ3¯Â]K—‰®6ú—Äu¥³ËÌÇ¿Nøòèƒ}LÜ–3/ ûžy yåS¾ìóGMz…6Ø“]f>zkõ–sæ•ôkúu´+¬_?ѯ¥d—™~J¿f•vïôk_úu°ÿ_{wUU½ÇÿÿÚ½¿UæÍ gTDI‚"*2 ²œÒÌÓÁ)+ÓkZj8¤ä¬9ÃÕ,µ4E* TT@Qœ®™š©dâœ(¢ÂùþñôÛgã8zöÞÏGk}Ö]ݬ½ßçŸ×ûó9çlf…=:/I’(´’$­Ir£óðdpŒÇ°Üw¹ïrß—¨¥ÙaÑ2-‘Þᮚ9úUŒ×[öM éçáS»ná÷{âö‰Û'h!ÿXþ±üccÇ$ŽI,¼žñ£æ>Ûô¼¶¶>•ã¹Ê›•krÛÃÕÙCíN«­®¶ºÚê,¿,¿,?fHárFæŒÌÙί_;¿ÂçÏ‚I^«§ifëSíÉÁ &y­žVøJ5¤2ÌÀ~d•/üçQÒ‚$í&In’â ¿_IƒÌ [ìX¶cÙŽG¼-ì£n»7xûâ޷öj7ùÈõ˽~¿RæFIu^ =Lÿ¨]`í8sÚ›ÚM>~GœÚ‘YsIÀå6^t^€V:¯ƒGº|ïwSÃÉGž|¤Ë÷~7é¼JŠìoÈ^‡Z=eŸDöL´¾ó#ûWøjßÄ1‰ceOŒRüÎKÒ‚$ ïüÔŽ3§½))ŽÎ €½q ›Ì‰;'¶ðeég÷î·&j½PŽë>j}´ñÇøLúŒuë˜'Jù#òGäˆL‹L‹T}w›ß5ïÅU~Êòü>¡UW­7ÇüÛ©¹á¥§ž>»á#Þ÷z)êRÔ¥(f‹ÒÝ>wûÜíã7Áo‚ߵ깴mÔ1ÏÚÒ =§´~ôû·gæM[´ç”ÜêÏο ~¤JÌ dÉÊþˆÏû~Ôúhãõ—|$Ñ~ï’ ™'j¶>³õ™­Ï^ÃÝ¡KÛÏÔSò‘Qî«ð{—ú0OŠÓyùî™^~C„ž’Œ¦C§Gw¦ó³óêߩшºUs\V 3ÝLkaG°IDATë)ùÈÉÝÑyìiþÛ[öFdŸDOÉGö²d_KíÞeOLöǘ-Eë¼$!è/ùH¢£ó*)©íSÛ§¶?³ðÌÂ3 Y¹w©ó‚`<ÂY_d}‘¥¶µŽ¯ç^ýÌívý7…Fèo´à˜±º«[˃8/ós™ŸË0gþ’`I°$Œ¸=âöÕwðEìuÄmòÖû6ÕßèßÞzynÿ¦ Ÿ?×|®ù\óaâˆûUîW¹_%(>(>(^õ«æßè{rì‘Àq³Óâõ×ü5¶ˆ›/wªV©’TŒ™Ÿ¬æ8~XÝÕ­åA}'Iw’ôÔê )‘9SPáŸúuîì]þzfµm‰ÁMô|äå~ù4pIu^Us¿ëß¿åÅ×’Në6ùÈ$všòÉÚOé¼Çé¼}ò«çEKfdïð`ÝæŸÌÈÞáÁr§t^¶“}ŒG|ÓÛå¹ý›>Ôwò‘}-ÙãRýÊôÛ#n¸-{eÌÛ;/IúN>’î$éÑyMl\l\l\ÁŠíXî·`¤&Ì p U["·Dn‰T[x¾êåQwÆÃn/˜£ô½Zp<õíùAßMþXþÇò?–3f¶ŸÙ~f{µ*ÅtŠZé‘a¹—–¦ï6 àx°æª‡~ûT3_v~Ù9g{Îöœí†ž:–@K`ïi½§õVýäFN#™å©ï@9Ê]«ÕD*&Õã÷P4²‚¾ÊK0Nò‘¤'©O­&’™?…?ë×wœg-ç®Oêjœä#÷+÷γ‹Óy¹¬ ëóFtÀôƒ÷ß4Nòi¾&&ok:/àév^ß·uògœä#£Ü5WádïBö1T¿*¼æª‡~ûŒ“|dKö»Ôj"{eüú±¥ó’$`œä#IOR—íäÓ®j3Â1°òè· > €aűádž®ö‹cÐZ¯uOåo¸n~`´6@ÆKúôV=Æs_ë¾Ö}mnznznº1çÏÖÄ­‰[UŸõ;ûÎ{›M‘jcƽµû[žS«OŸÁ}÷l9d9d9dÌùS#¦FL Õ£ßó£{Ïf´£ß¿ŸÝ{ö0Õ·VÔˆ©SƒU x\²jË ®úuýúôÞgÌä#©O Z}$=sþ\éz¥ë•®…ýÞ²ç°:ÆL>rï…K 鼬ý^5ût^`‰ý95ŘɧÅçsÎmßCç<ùÎkë€vqM‡3ùÈ( ó²âååì]¨¾ÁëÞÚý-ÏyçGö¾T¾·&nM¤óR«¬þÆL>’ú$ÒyÙ¢ðãO}ùÞa;€ñ7ÙNÙNÙNj¿2^¯RÿrÍ©³#^1/0r ãoÕ{]j«úåÆïF½õ®ÑæÏoÿæ®V“‰Mthä à¸ÿµØ¦-¾Q«UlJlJlŠÑæOrÿäþɪ_wcê:´Wt#ýþí y]‡öŠ®¢V+©$+`;YµÕ~¦dÅ'ùH”4¨V+I’Æ™9ù¦|S¾)ptàèÀÑj_øl´Oýþi`µ/…–J=é¼Dõ~¾Y!/¬[±?%’äÓ¼í¬‹[âè¼€'Óy­kÒ:¾ñ’ŒR :¯‚d¿B­&²×Aò‘QöÁT» ÷ßÜs§óúÛ§~Ûκ¸%Žä# PÒ —-ŒvÊÑ/lÇ0þfß ¿A~V6°<+:•ÿýÎïþšOPp<ÔÅÕo¾Ú¯ÚWw^ÝyÕ3'¯[^·¼n¦Y¦Y¦YÊ:tlZµæÁü„Ôæ‡4ǯޘ6£I=µùsúÏÓžþÓóçVÒ­¤[Ijup{ñÍ‘ci”£TF­nRUÖ5 p²R«ýÉ*OÚ)8J”dhå{büù ò3ÎüY¸qáÆ…Õæžõ[´g«ULêIçU>¶RžÓ`ÿ¶K>Þ}‘´Spôiý‰ÿªöt^€ý:¯OÞò[î~ž´£¥2t^²G¡VÙß íeLöĬ¼Í}–i–i–ì§ÑyÉ*OÚ)8J”dHçe #‹á·mܶqÛ_]ö§ë>]÷麭o´¾Ñš^4ã/»bwÅîŠUûÅñkå^õOúÕÆåyæW½z¨¾'ë…ì²_Ð÷üY2mÉ´%ªÏ úsT’w¨/Ñ_mÚ3Ó-XY7¯e^˼–å÷Ïó÷>;øìà³VÞzòuÃ&M^ ø1öÙ”ï‰þVÞúcì³)ßK•”Õ“ª²ºjduV[¹de'ᨒ Õª'©Rßóç\ísµÏÕV«ÀîÐ¥áÍg’pÔF©Zõ¤¶Fý1óËÍÏ“sÔÆ†sî›pÑÈ`ÎË?Õe{Õ†y="†™7s”£TFªdÌÎKö%dBYÙÓ á¨~ʨ$ïP_µ•KöÓŒÜyÉÊNÂQ%¹óz\z="5ÂÑo^§¼NyÔîŽÃà¢á–ÜÄÜÄ\Õ'¶®}uyã‡ÄýGŒ"½Âë¶>]Ï·z¦²†ã¿ÿõø¯õ:.¯¾¼úòjµùspÓêa~÷ s¶%w¤ú.ÚÅ_-þj±^çÏ¡…‡R/-ÆÌ™·½/qÿÏÆ3gÞö¾j5” ³ÒJ²:+jd5—•„Sø()Qí÷$LN«–«–«ætsº9]y×uؽÁ²-£ÔJYC©­ÔÙh—éð°ãS-d›GŒ.q¡iªæ7žâ?Ñh`¿Îë’Wà¯È6…R%cv^²/¡vï²§A¶)|”ý1µÊÞšÑ:/YÍee'á<âA`‡‡Ÿj1\çU z:.5Î>üìoá8 ¶À°,¸tâR+Ís«Ÿë|QíuËìÈàpAß–ñ÷u½sƒ?SûÅt>â|ÄùýÍŸÁµ×\Ky¿ë;±þY"¾ícÚ±•÷ýƫ͟;7îܸsCWS§‘¥‘¥‘é}Óû¦÷­l€6rñÓñDüÇh¹ø©•ù#–j³ÞBVdµß·²š“jlgG‡›$1*+) SógÏ¢=‹ö,Rݽ”ü~Ø(RMo€»”ü~Ø(µJJÓyUYãÖì_îqo§½Gª±é p½æ´ŠÏ1ZçØ£óZ;¤õ°Æ¡¤ÛG©˜q:/Ù‹Pû}+û¤ÛGÙ+³ò9òZƒk ®e´ÎKVsRM£{ÜÛiïIb4NçÅѩўõ+ºr¸[ÎfŽ`C»t'èNÚÏÙÊ=÷.%Ü?î¸ <¤Œg?e=ûíê·«ß.=ÍŸsÉç’Ï%«ÍŸÛ•’6…ö Ü?îØïƒŽëXyOè¢2‹Ê,*£§ù“ŸŸ¯¼ÓJCk¤×N 8;1µ ÿ1¾ú|ìÄÔ.R=eU¥Ú¬z€Yù“"+8IæqGIŒªo` ºt'H'S§º¥º¥ºëi×Ó®§•wú“Ûâ²ÍVdw”º)ë)u–š¡ój?³ì·!ä™ÇÝ3ßÿaE#t^€=:/·mÎ*{æ×‰ˆ7Ÿ"ÏØ>JŤzFè¼d/ÂÊoÚ:v¬Ã÷½=ö({eªÂH>—|.Ù—¬à$™Çþ:èø™e¿ 1DçeøcT£ý*q\R86´å–å–åV¾>bÔ~Ÿ£noë‹6Þ 8-,Zí×PfÌ™=ô1†Œ2nÈ8å=®n<)Ç{*±¾hãïSãÏOQ›?÷|îùÜóÑüÔɰdX2LÏ™ž3=§¼Ç&~lŠ»E¬/Ú(Õ³ònôçLÏ™ž“ʳöÁÈdVý>pZX4I¦h£¤G+OS¶,·,×ÉüÙ7ßü}ó•÷è›àùºóËi Û‘d{ü1max3©¡²¶Rs}w^u˵¹Ó«=¦h£ÿ®¥&'¡óìÑy¥~üæG~^d˜¢R=}w^²ÿ ú­9SãÏO!Ém”}3eUeŸÍ—¬à$™¢’õÝyùH•£_%ƒ9Æc{˜ý0ûa¶êÓ_Rú N'Ðg\uù•šÞc”µè3Ñg¢æð®¹~äúÕ'O´ÙûYØ.}qÆ‘s{ötsVÖö›†ß4ü¦¡ÖçÏqãÇ=”w÷Òón/x ô‹›—ö¾ˆ£_ܼ´¤’Ê KåYad² +:dÕ&½ë©x)}§«eIžZŸ?æRæRæRV¾ü°ãʹ~½I/ÅzFÇ•sýz[yp)s)s)}w^-æÏ¹µý¦8£Ç”ÈÝ“vêµóìÑyùt¨ãlÉŠ|'¼¦ˆcVä;á­¤’zí¼dÿAyw²_Az)Î(ûfjÙ@öÜôÚyɪMz)Öƒ0æÏ¹µý”¾;/c¯rôËa0À(1û/ì¿°ÿ‚ò‡á†žauøòÃïØVAõˆt`îÀÜÚ?˳—g/·²µðÕÏx.#Êüíèw‚Þ³ò%9þîþîþ–û–û–ûÚ?‘‡#GVÞ]ã®ÿ©µdQ¾ø£TRYa©<+ ŒIV^µuYVmÒKñGI’Ê KòÔîü¹TúRéK¥•÷U+£z¿Š+,ÃÓº…×#½kžÖ-¼žÔÓÊ›SK_*}©´þ:¯Z_·2w˜Bn)Ï÷Z²m»^;/À×.Nýš·'·”Jê°óºo¹o¹/ûÊ»“ý ÒKñGÙC³ò9ÎìåÙË5|€Wxç%«6饸£$Iýu^Æð|^®ö—v=~ xàÈWû‹Sõ7”uî“Ü'¹O²çOfÙ̲™e•wÔnN°W»Ž¦“2—ø4ûFZÝj4èñR%ç©Nß”¿ß º®Oå…íZeÕ8ÿYèÈ@—œèä†a=íúã·ÌõkzSYíÅ.‹]»hqþ$·Hn‘ÜByGõƒ»¹ ïèŸ I[V.ùR·GÞ¯ÞØ·C«~•'Ôörs+®ròKÜŸs÷ôz¯fVà¯m‡7^;ÞyéGn¤ªÊjË«Àj£‘•Wù!+5ɧ¤FI’ªOYŽ»w/NcSç¦å¦åfõ©Õ§V·òœ¶?¿IêFò)©Qꩬ³Ô_^ =u^wb¿O#ÿ”ÔØ¬î ÿYzê¼{t^S£ý¯6lMò)ÙQªª§ÎKö”w${$Ÿ’e?ÍÊ“ìËf–Í,«§ÎKVj’O‰½õÿNì÷©qºê¼ v ÌÑ/‡ÁÃ.Òç¥ÏKŸg¥ øÈÿrCÇ~eÙÈÃËù¿ê2µêß ztgÄ-sžÚ¯•§œzpJ[ógMÀš€5Ê{Ù^mî ßç"@—M{1¼ÜÈ+=ãÜ<Ê=¦ƒ^«Ÿ÷Ksœ6àvˤôÐþÊë4Õ3Õ3ÕÓâïŸw‡½;ì]+ï#nÖjÆâM}Ÿntö=­ò×už¯s©AÛçŒKÏÐ:–‹{1íE‡Ûm5cñ¦¾Êk–WÕÆ!«­ê[ßvFÜ2ç‘|Jxô#ÿË Ã•Õ–ª­ùs%êJÔ•(å½´ j]c ÉÇ£ÔVyµòZè£óªØ­öð6Žt•þ{6õ°ž:/À×/›z\¬@ò)á·þoêq!°‚ž:/ÙsPÞ‘ìQ|Jv”ý4åÕÊþ›ž:/Y©I>%üÖÿÀnµ‡·ÑGçeœc`Ž~9 æv45ajÂÔå´>–ßm Œ#·“l9ée+ Œã7cg5ÛÞÀÊ{'Ï´?ÓþL{mÍŸ6£ÚŒj3Jy/7Æî<2Ý¢sŒST”Çî¿—¶t;ï´ö‹wþój£×Ók¯ÞÛòy—èô¾ï&7ÜRÿjïŠÏüçoÞJüWȯŽÓ ø­ôî]e£²æÙK³—f/ÕÌÔ ±„XBT?³+¶JÊ‘§ö®Éßbǧvªò?Ï Í2þº %å÷V0×>ÔºTW_ÓüaÕ§–kúÌäÉÿ ò÷~ÐÜ“.ž!g;.(Xne¹kfíÝ »b«¤Q«¹¼"¬‰0D#×þLû3VžÍ&«3ÉÇ£¤J+o7L˜š05A[ó'á­„·ÞRÞËÆÎXÓ$‘äcQj«¬¹¼ú輚æDO_ïö”s‚NókÌë_÷ë§Î °Gç•÷aÄów$Ÿ’¥ªúè¼dŸAy²/Aò±Ç(ûiÊšËþ›>:/YI>vù"èœèéëÝôÑyᘣ_ƒ9†Ýy{{[ùjˆ_&†}éÑùòàwþÑÊãËw_55ŽŸ˜ëWÝ}nãs5ž}éºj˜vøf`ÏßèÐüŒòÊ¿ôÿÒÿK­Ìœ¼2yeòÊ(ïâ¥ÈʇË'XrÓö†›Ÿnh¾7&ùRØÜÚ·j¾P©ê_›k[L“œgK¸ÿ¿³åÿÿ§äïüSjÿäÓÆŒ­ä¹AYùŒüŒüŒ|­ÌŸkׯ]¿f姸ֳAþmºq¹QÿQGbþ¶Ñ`8tztgù•_þN½eoäúZþ·Ó ×2îÇóK¤ÂVžØ}ýÚõk×Ya²Ú* du&ùØc”T©¼rI¡Úš?Qk£ÖF­µò¥|•¶ýìMò±Ç(µUÖ\^ }t^þg—µÝëCþ±ÇØøÈøËzh½óìÑyõ:lúWí8’ýF©°Ö;/ÙgPÞ…ìK|ì2æ¦í 7ËÞš•7m”É+“WFë—¬Î$»|õÙem÷úè£óÒ÷10G¿s »{0ùÁä“•×3¦Ú§lÇ Í+O†'xûÙþƒçømÀµÚ}û†üSyåßF|ñ­VæOVHVH–•÷Ñ3ØÍ!¢s°yó|;¼¶Íÿ‹æó?[Â}Á?–Ôâµj÷§8¼ý¿[Z‰±'cOÆžÔÊü9Pú@饭|uÓ!7>ñtã²[—.¯ ^&×S)¹æu}lùbŸæq17¾Ëý¿oýï u´f@*¬¬¼¼"¬Œ0Ym­lÆÕîÛ7äŸ$û’0­|ëä“LÖÊü©;§îœºs”wñ0>ÅÏ<•äcQj«¬¹¼Zï¼*ߨ3»þ5GHzÍ?~KxîxNë`ÎkíøÖ£¿Bò±ß(Özç%û Ê»} ’ýFÙ[S’½8­w^²:“|ì7JÂÔzç¥×c`Ž~9 æOê/)+)+I9Y?¸æ»£~´}m`|·6þ>6(Þã¾rÔä×¥G,2ï³²µ§îžº{4ÓF®<°òÀJå]|ý¿é?4ù#Äå¥!ãw5ÚQ´/ö9´ªß|ùSÕº;ÿ^a™ã¼'ôÆþŸª…Xù ¦H×H×HW­ÌŸ¸áqÃã†[ù ÄkÑC¾ÌºA¹v~ëy]ÿ¬Ycwíjöp­…-¾EüÜž V¾`Ðá¾èZô/­¼ƒ[^VF¬¶VÞMŸ±È¼äc¿Q¦•m¬¤¬¤¬$ à¥>H}ª¼~ß2¦}ÎkH>ö¥ÎV¶±R¤>HÕnçåúB‡Šïtv„„ ×üp$¶mj%­w^€=:¯ciÝÞðŸDò±ã}¥u{Ã’Ö;/Ùg°òدý?U YJò±ß({kVÞ@°òÀÊ+µÞyÉêLò±ã#0^èPñÎÚí¼ôz ÌÑ/‡Áã‰:úÕѯŽ~¥œ ë&µ>Þø­Dj fMµ(§\kׯ ë3×g®Ï´òEÄk¿lù?GˆË[öîÞ´ìàþ]v¸~8¢tõ~²=Ð|'i“ ç]§È3¥,0¯²òu.½zÔÊü}kô­Ñ·¬¼4eÁ;v:æ—'>¾Ü©ï‰±‡ ¾{Ô1Û©°²òòа2¬|÷ÉšjQN¹${’0•×/‰T_èСÊëU«gŠ[s’½G©³• èС7BµÛy™ ÝU‹ÉG[ù§òí:Ëëçk·óìÑy]¾oBH3’ýF©°Ö;/Ùg°òÖISÊó*’ýFÙ[SV^öâ´ÛyÉŠLò±ûw¿ :3º«v;/ýsôËa°ãsl ?¤ÿþCºrRîsîܢŶAí=ö6›bjßÑî6ÄôõÓ×O_¯¼þKþÛ‡ot´/Ï)ø%?¶ü“Íéµþz7hÔÁ·«¸-v´fॕo—ß­ÝùÓÖÜÖÜÖlå} .Ë«ïkåÈq¿YÏ77eøôçšI^5ß«:§wWݺm*x ³å~<Â1Û©°²òòа2˜À²"“|ì=JÂT^¿$RÇŸ9¿nþu󯛕׿xï¸ÃL${RgeýåuÑnçÕäµ ÕV˜»Sëù§V‡àšíKs cRë¼î{ »Kò±ß(Öz祼~Ù‹ ùØ{”½5eýe/N»óGVd’½GI˜Úí¼ôt œX3±fbMŽ~9 vœÃ`€ dígk?[û™r"þüb÷ËcÙµ÷øQÛ5ÜÓî6Ĉþ#ú诼þ?c’^ pÌfàŸ¬õHY`^5®s¿¼må^ªvv¯0èâ¶m#ƒ«;ÚÕ”n\µ…vçOÃk ¯5´ò<’ÀÆþ‘zڑۀʧët®¿Byåå'UŠ«œmz~ÈÀ)¿8t3óÏØ?RO+¯_^VFóXVd’½GI˜VžAøÙÚÏÖ~æø3'#"#"#Byý›ÛÇ”òÙNò±÷(u¶òÝ3Úí¼|š^jCgÇßÕzþ©÷J§[_çƤÖyå§Gä„—"ùØo” k½ó²ò¦íÒM‚«¶ ùØ{”½5eýe/N»óGVd’½GI˜Úí¼ôw ÌÑ/‡ÁŽsüÇYð´œãížAsص÷íqFó''9¹GØ`mµòô—ÐÃÍgUûëÙlNÿ­Ü¬üÌÄ-þ¡Y†£½TÆN¦Ð´ZÿÐßü ô‹›—ö½Û€¿}÷µ±‡ÿà wá7/í{V:  Y‘I>ö%aêoþü4oqÿfÛI>ö¥Îú›?ͧÆÄ}7O»Û ZÉ? õu€õø[~ÈŠ|'¼ÉÇŽcVä;á­ô7sd/‚äcïQöÖô7dE&ùØ{”„ÉJ8¾m·mܶ‘`öeoMóGVd’½GI˜¬t€ã»¿áþ†û8ÆÅ'€ùpq8ò'€ïwß×'Ì3,¦a¹Ê[++ÿ–\³Ë‹ÕçUÜðù³£yÜÏÜ»:,Å‘Û>ìÈGª5Z·øÑü·'üñ `Àññ `>\Žü `=%>LþáÀ@ÉâÀ|¸hùÀzJ>|˜äÃ'€#0Ð'€÷ü“¿žô_oøxÃǔӎg?ÝgkeþtíеC×ÊëwÌgŸÜ”ظéÓ$çÙrV|¦\Ö„—Þpw»y+ñ_!¿:~`Ë3€µ2\ïºÞu½kåØáŸlû'k+ùÕðv±8\3 ò `yEXùË)ç?Ï~ºÏ–Dêø3'®B\…¸ ÊëwÌgë/ù¨=Xë—Vž¬õü£ö `ÖDþ2Â_jÏ~ZÏÖV祼~Ç|°þ’Ú3€e/N»óG+ÏÖzòQ{°V:/mýµ¾éú¦ë›íðOþ,5Ôú_ñcãÇÆ|&ò™ÈglõåŸ7Ð3€ñäýþCúéÊɷϹs‹Cص÷ØÛlŠ©}ÇÚõkÃôõÓ×O_¯¼þKþÛ‡otœÐ|îÏ-ƒB^ŽpÝàô/¹Bùßûf¬XÑbŠü3Újd|iAåÛåwkwþ´5·5·5[i&]–Wß×êiEd¿ |wüms¿aö ÜGØþoðiýIËUíäÏVØç[­š£µRaeååae„(翬È${’0•×/‰Ôñgί›Ýüëfåõ/Þ;îp#ÉÇÞ£ÔY»ÉG­ójòÚ„j+ÌO7!ÿÔê\³}iíÎÀ×}ïAÁawI>ö¥ÂZï¼”×/{${²·¦¬¿ìÅiwþÈŠLò±÷( S»—VœYxfá™……ò%ÖL¬™X³ðFþ=ÔS[äàöÓuŸ®ût퇾òÏ?ùC_€ êèWG¿:ú•r"®›ÔúxãOص÷蹦Z”S®v·!Ög®Ï\Ÿ©¼þŒŒµ_¶üŸã„fÿW¯¯ZV®-,©ÅkÕî]¯¹#=Ä_‹ €Œy¦”æUÊÊ{ô>è}P+ógô­Ñ·FßRÞ…_Ê‚wìtœ÷rÖv2'¼fûŸmøï5Çï’?[m­Ïâ OGk¤ÂÊÊË+ÂÊcËŠLò±÷( Syý’H5Ðà…Þ½ª¼þQµz¦¸5'ùØ{”:k79«u^¦ACgFwu´Ï²è/ÿT¾]gyý|€aLj×õçû&„4#ùØo” k½ó’}å]ȾÉÇ~£ì­Yù¼`æúÌõ™Úí¼dE&ùØ{”„©ÝÎKG¿u÷Ÿ‡¾£d%e%e%)'å×|wÔfÔ~c^zÄ"ó>å•×ÝSwOÝ=Z™?VXy`¥ò.¾þßôšüÇâòÎ:‹Bšõ—«*_ªÜrág]¾}-p…ÖÛ€ûª²ÔÊG¸FºFºjeþÄ 7\yM¯Eù2ßqÚ€rKÊï­`n3ávlÂÿT‹îsšÅgUúwõ.!òGݼ¹5ò7Gk¤ÂÊÊË+ÂÊ#ÕÖÊ6VzÄ"ó>’ýFI˜Êë—Dêø3çAêƒÔ©V¾Â·ŒiŸó’½G©³vðÔ:/×:T|§³£mƒê)ÿ‰m›ZIë`ÎëXZ·7ü'‘|ì7J…µÞyÉ>ƒò.d_‚äc¿QöÖ”•—½8­w^²:“|ì7JÂÔn祧£ß’ú³àЗ`<þ6Öä“L¶ò9˜˜jCœ²9¶ßx­vß¾!Vž„ñmÄ·ßjf+$+$+Dy#Gô vsˆ¨=à›7ÊÖüëÝ|·j¾P©ªüï…³ÆVôÜð¸£ã´‡·ÿ÷`K+q!ödìÉØ“šyAé¥Xù">SÓ!7>ñ”Ÿ•’1½Å†¥åÏUN~iØß6 ¶µO‡Fs£úî._øãUó½ªsz»uéòÊàe¿öGž#_+ähϪ‘ [i#K(} 4+#Œ@V[åO¬Î$;~÷ILµ!NÙÊë—Dª™m¬9uçÔ£¼‹‡ñ)~æ©${ŒR[+xsêΩ;GëWåuf׿æÏŠÓiþñ[ºÀsÇsZï¼{t^kÇ·Ýø’ýF©°Ö;/ÙgPÞ…ìK|ì7ÊÞš•¼¬¬­w^²:“|ìøÝ'7êÌ®Më—žŽ~9æÐ—`<5ÞÁÞÁÞÁÊ){ï—‰a_Ò ØcÜóß7:4?£¼ò/ý¿ôÿÒ_+3'¯L^™¼2VžYùpùKnÚÞpóÓËÁy¾]«Õ,WB§ X3¶’ç+_¾Ÿ‘Ÿ‘¯•ùsíúµë×®[y̳AþmwœÏÁTXì\¶joÛçI•šK|~õu޾µ~½£½ô¯gà=äßöw+G_ׯ]¿v5F «­ò§@Vg’=FI•V^ì쬭ùµ6jmÔZå½dVÚöc°7ÉÇ£ÔVy…òZè£óò?»¬í^ò=ÆÆGƯXÖCë`Ϋ×aÓ¿jÇ‘|ì7J…µÞyÉ>ƒò.d_‚äc—17mo¸YöÖ¬|kQ™¼2ye´ÞyÉêLò±Ç(©R—þŽ~9æÐ—`<S¦&Lµ)ŽåwèC3`qì¬fÛ¸XùµÞþLû3íµ5ÚŒj3ªÍ(+_4vçÙéO74»¼X}^Å úküVz÷®²Qy…ÙK³—f/ÕÌÔ ±„XBÔª°+¶JÊÇiäžÎI ?h2°b§ª]j¼^þÛÊMœ¾yéTƒ¥¶×ü!°]›Í¦C§Gw,÷bÚ‹Žyô+UUá!–Kk" Ѽµ?ÓþL{åO¬Î$»|b~·þ1Ê+—ª­ù“ðVÂ[ o)ïeã?g¬i’Hò±Ç(µU^¡¼ú輚æDO_ïæ8™AOùÇ5æõ¯ûõÓGçØ£óÊû0bŒù;’O ?öëÈ1æïôÑyÉ>ƒ•Op®ôî]e#ÉÇ.ý»ólÈtåÊþ›>:/YI>vyìWNôôõnúè¼ôzôË10‡¾ã‰JŸ—>/}ž•…á#ÿË ÃµòÎÊ‚#_aþΈ[æ<µ_N=8õà”¶æÏš€5k”÷²½ÚܾÏiý™+Ž6Þn™”ÚßÊ×&×3Õ3ÕÓâïŸw‡½;ìÝaÊ;jÖjÆâM}­(<Ü;fô/8JU•Õ–WÕÆ!«­ÚZ,+5ɧdGI•ÊjK ÕÖü¹u%êJ”ò^ÚFµ®±…¬bQj«¬¹¼úè¼êv«=¼£%ÍçŸÄžM=¬§Î °Gçõ˦+|Jv”ªê©ó’=åÉY¥dGÙOSV[ößôÔyÉJMò)ÙQR¥>:/}ýr Ì¡/ÀxBîÅÝ‹»§º úIÄ/æ›Ú:vè6À©Çú€Ê:÷Iî“Ü'Y‹ó'³lfÙ̲Ê;j7'Ø«Æ]‚{ÉŽñ[æú5½©¬öb—Å.‹]´8’[$·Hnae4¸›ÛðŽŽ©µ8JU•Õ–WÕF#+¯•mP§ënXJì­oŸDüb¾©–3%…jlêܴܴܬ>µúÔêVžJûç7I}CÃH,%5J=•u–úËk¡§Î+àNì÷©q$–{ë[Ýþ³ôÔyö輦Fû_mØšÄRÂo}‹ö¿Ú°µž:/ÙsPÞ‘ìQXJv”ý4+)›Y6³¬ž:/Y©I,%ö­owb¿OÓUçe€£_Ž9ôåOÈÛûßÞÿö~åD?Ö5É¿!ñ½¤Æÿ<Û<¬Á{Ê:ïöÚíµÛK“S'Ý’nI¯T-¨Z•gÛ,Ù1(¤&ñ½¤Æ :>«ZùÌ…a†]ÐäûˆsVæ¬ÌY©º :kÅ)¥ñ%ÐÌZñAJ)µ:Ë«À:£‘•Wù!+5‰¥¤FI’Ê:KòÔîüYpeÁ•W”÷µ!b†G“e$–’¥žÊ:Kýõ×y5]ùéøuä–’ûòç“?ï?]W`·ÎëáðˆÊæ1ä–âRIýu^²ç ¼#Ù£ ±”Ô({hÊ:Ëž›ì¿é©ó’•šÄRb_þ¼òÓñëÒô×yáè—c`}9†Ýí¿°ÿÂþ ÊIÿNCϰ:ýñÅïØVAí—KîÀܹµ;–g/Ï^ž­¼¯…¯~xÆ“mÐ;ú]£ +op÷w÷w÷·Ü·Ü·Ü×îü‰<y8ÒÊô5îúŸZK†â‹?J%•–ʳ˜dåU[—eÕ&½”$©¬°$OíΟK¥/•¾TZy_µ2ª÷«¸Â2<­[x=ÒK±ÆáiÝÂëI=•u–úë¯óªõu+s‡)ä–âþ½–lÛã®×Î °GçµË£S¿æíÉ-Å¥’:ì¼î[î[îËþƒòîd¿‚ôRüQöД–=7½v^²j“^Š?J’Ô_çeœ£_Ž9ôåvô0ûaöÃlµƒK)}§å‹3®ºüJMo+ïè3Ñg¢ÖçÏõ#×\?¢ºÉÒfïga»ˆòÅGÎíÙÓÍYYÛo~Óð›†ZŸ?Ç=Ž{÷PÞÝKÏ»½à14Ð/n^ÚDù"Ž~qóÒ~J*+,•g„‘É*¬üéU›ôRœQÒ£ê'²f?ÌÖúü1—2—2[ù~…´Ž+çúõ&½g”*k+5×wçÕbþœ[ÛO‘aŠ3zL‰Ü=i§^;/À—O‡1ÎÁ–¬ÈwÂ[‘aŠ8fE¾ÞJ*©×ÎKö”w'û¤—⌲o¦– dÏM¯—¬Ú¤—⌒õÝyó¨•c`}9F [nYnYnQþHŒÚïsÔím}ÑÆ{á§…E«ýºÉì‘Ù#³‡>æÏqCÆ §¼ÇÕ'åxO%Ðmü}jüÙà)ªÏðð¹çsOûÛX– K†é9Ós¦ç”÷ØäÏMq·ôE¥zʪJµ¥ò¬}02Y…UdžœM’)Ú(éÑÊ',Ë-Ëu2öÍß7ß|å=ú&x¾î|ÀòcÚÂðf$™ÇL[ÞLj¨¬­Ô\ßWÝrmîôjO†)âgw-ý39Ñ`Î+õã7?òó"Ãm”êé»ó’ýµß±²wA’)Ú(ûfʪÊ>›:/YÁI2E%=ê»ó2òñ*ÇÀúrŒs'èNÐ µ’³•{î\J¬ÜqAxHO+_~ØoW¿]ývéiþœK>—|.YmþÜ®”´)´±þqÇ~tìXçe=•YTfQ=ÍŸ¤ø¤ø¤xåVZ#½vJÀù؉©]ˆõñÜßó±S»Hõ”U•j³êBVd+Ï )ãɃ0{”Ĩ–$mêdêT·T·Tw=ízÚõ´òNr[\¶Ù ’ÌãŽR7+O‰;ízÚõ´ÔÜW³ø™e¿ !Ï<îèžùÎø+¡óìÑy¹msžPÙ3¿ND¼ùyÆöQ*&Õ3Bç%{V~Ó~бc?H2;Ê^™Z}6#t^²‚“dw”ÄhˆÎËðGªsè[R8†eéÄ¥—NTþÀ´ú¹ÎÕ^·ÌŽ 7ñm_×;7ø3µ_@ç#ÎGœÐßü\kp­Áµ”÷ûá°¾ëŸ%Ü?Æ—[yßo¼jŒ»qçÆºš:,,Lï›Þ7½oå}Ó‡\üt<áÞöQ*f¥’ï›Þ7½/Õf½„¬ÈªŸfX×;7ø3RMãìÈàp“$Fe%%aêoþìY´gÑžEjó'çRòûa£H5¶ŒR+µJJÓyUYãÖì_îqo§½Gª±éË{ÍiŸc´Î °GçµvHëaCI5¶R1ãt^²¡öûVö1H5¶²W¦¬¤ì­­ó’ÕœTcÓè÷vÚ{’ÓyqŒj´c`}í`XrssU¿8k}ì«Ë?$â?bé^·õéz¾Õ3•5ÿõø¯Ç­×ùsyõåÕ—W«ÍŸƒ›Vóã=¡ÚÝ–Ü!lZ ¿ZüÕâ¯ëuþZxhá!Õ(ÓbÌœyÛûô±:fμí}Õj(f¥”duVþÔÈj.+; §ðQR¢ÚïI˜:œ:W-W-WÍéæt³•gÔm`÷È6¶ŒR++ÏýM7§›Ó¥ÎFë¼L‡‡Ÿj!ÛÕb¸Î«ôttjœcàm·mܶ‘Cß’Å0þ²+vWì®Xµª_+÷ªx‚¸¯6.Ï3¿ê¥ú.Ù/d¿ý‚¾çÏ’iK¦-™¦V?G%y‡ú÷ÕÆQ¡=3Ý‚•uóZæµÌkY~ÿüþùýõ=Ÿ|v°•÷À:ݰI“~Œ}6å{⾕¯}þ1öÙ”ï¥JVÞA|vðÙÁgYÝ5²:«­\²²“pÔFI†jÕ“T©ïùs®ö¹Úçj«U`wèÒðæ3I8j£ÔGõËkŸ«}®¶‘;¯fÌüróóäµ±áœû&\4rçØ£óòOuÙ^µa^ˆaæ äå(•‘*³ó’} Ù£PV@ö4H8j£ì‰©­\²ŸfäÎKVvŽê×>ÿ1óËÍϹóz\z=.5Â1p^§¼Ny8ô-Yãoù òägåƳ¢Sùßïü>à¿¡ùDÿ‚ã .®~óÕ~1í¼ºóêΫF˜9yÝòºåu3Í2Í2ÍRÖ¡c›Ðª5æ'¤0?$ú¿zcÚŒ&õÔæÏé?OÿyúO#ÌŸ[I·’n%©ÕÁíÅ7DŽ%ô+G©ŒZݤª¬k@ád¥Vû9’Už´Sp”4(ÉPY1I’Æ™? 7.ܸPõʙն%7!í¥&j“zÒy•­”ç4Ø¿í’w³ú·Ñ§õ'þ«ÚÓyöë¼>yËo¹ûyÒŽr”ÊÐyÉ…ê·—½1mF“z¤‚£ìƒÉž˜•oþ˜ešeš%ûit^²Ê“v Ž’%ÒyÙÂG¤F¸Ç‚ŸæÐ·ø8Æßd;e;e;©ýúx½JýË5§>ÌŽxż€à·ê½.µU«UÔ»QïF½k´ùó›ûo«Õdb“AÝÒȸÿµØ¦-¾Q«UlJlJlŠÑæOrÿäþÉýU¿±ëÐ^ÑUhþúòŸ®C{EWQ«•T’ °¬Új?S²â“|$JTýìS¶S¶“qfN¾)ß”o 8:p´•7PvvŠ.ýÏõI½BCI>R©‰²VRC©'—¨ÞÏ7+äå€u+ö§D’|š·uqKðd:¯uMZÇ7Aò‘QªAçUìW¨ÕDö:H>2Ê>˜j—áþ›ûoît^ÉŠOò‘(iÎËF{V®ÑîÅÁ0¬86üØðcÃÕ~} Zëµ±î©ü­×Í úÜ— }zïS«ûZ÷µîksÓsÓsÓ9¶&nMܪúl³ÙwÞÛlŠ4rqoíþ–çÔêÓgpŸÁ}[YYsþÄÔˆ©SC­>Îî={˜‘Û©€Z}¤z¬bÀã’U[VpÕgãmèÓ#xŸ1“¤>I€jõ‘ôhÌùs¥ë•®WºªUÆwœg-çw§ìy'¬Ž1“Ü»ÔA­JRC:/%—«fŸÎ‹,±?§¦3ù´ø|ιí{è¼€'ßymÐ.®é#ýJ輬8d9d9${jõ‘}#ïüÈÞ—êÏWâÖÄ­}b«-—¬þ=úµÄþœš" ÎËF> å¶àª¶Dn‰Ü¢V¾êåQwÆÃn/˜£ŒÓœ¿úöü ï ÿÅúÇò?–ÿ±œù3³ýÌö3U¿¢-¦SÔJ ˽´äð0ã4k®zè§úÖ—_v~Ù9g{Îöœí†ž:–@K`ïi½§õV}ªt#§‘¿Ìò4ÜѯÓÈ_fyªÕD*&Õã÷P4²‚¾ÊK0Ч~»E¼`Ž’Ô§VIŒÌŸŒŸ3~Îø¹ðc`£}Xî·ð£_©ó§ðÎËe]XŸ7¢¦¯¼ÿ¦>õ»&&ok:/àév^ß·uòg´£_¹k:¯ÂÉÞ…ìc¨ÕJö@ tô{/-9×|®ù0qÄý*÷«Ü¯¯zdþFß“c¶ˆ›¯Û6 EÜì´x¹Sµ:H•¤bÌ ød5/ü7¶¤}'Iw’ôÔê )‘9SÐŽe;–íX¦V1ùd#<XîQí Ÿ…ÔŠ9c{çU5§ñ»þý[X|-é´¾7@›všòÉÚOé¼Çé¼}ò«çEKfdïð`ÝæŸÌÈÞáÁr§t^¶“}ŒÂcË~ˆ¾“ìkÉ—ZdLöʘ9¶w^’ ô|$ÝIÒ£ó*𨏨¸Ø8#òUy ,5an€`ØdNìœØ9±hÂݻߘ¨Ã'¾|Ôúhã±¼.c]Æ:æ‰Rþˆüù#"Ó"Ó"ÓÔªçwÍ{q•Ÿ²<¿OhÕUO @þíÔÜðÒSOŸÝ°{áóçRÔ¥¨KQÌ¥»}îö¹ÛÇo‚ß¿ ªŸ‰iÚ¨cžÿ´¥A{Né©;’»SýÙ™à7Áo‚T‰Ù”,YÙ ÿí- AÉG]á÷.Éy¢fë3[ŸÙúLá5ܺ4¼ùLým€Ê}~ïRæIq:/ß=ÓËoˆÐߨiàÐéÑé¼Çì¼úwj4¢nÕ—ÕÂÌzJ>rGrwt^E#{…ÿö–½Ù'ÑSò‘½,Ù×R»wÙ“ý1fKÑ:/IúK>’èè¼JŠ|ÚÕÈ_z,÷Χ~QÀx Ë}—û.÷-|YZšÝ(ÓéîªÝàz˾i!!=â<|j×-ü~OÜ>qûÄmæFáòåË?6&qLâ˜ÄG¼3tÔÜg›ž×zp®òæ£AåšÜöpuöP»Ój««­®¶:Ë/Ë/ËR¸œ‘9#sF¶ókç×ίðùã³`’×êiZoä. ¿S©†T†جò…ÿrýr/…ß/Ÿú-ÙΫ¡ç€éµ ¬gN{S»ÉÇïè‚S;2k. ¸ÜƋΠÐJçuðH—ïýnjýèWî‚Ϋ¤Èþ†ìu¨ÕSöIdÏDóßô6jî³MÏ>dLöĘ!Åï¼$-HrÐðÎOí8sÚ›’âè¼ØÀxlÛlo°½AáKÔË1U®;½pdh×-ïk¦xn^7®õ‘ÆøÔKÍ5[Ôl‘y.ó\æ9æÃcÈ·ä[òYtdÑ‘Â+üºkH“šÓÏwøîó ÙZ‰þ"ö71ûÏ6ê†Ç#¶zÛvoÛ½m÷ìÀìÀlžÕúÞ~xûáí÷š½×ì½f…W¸Nük§{\lÙ|‘óO4ó…?Í9ÿ4A®¼ð»“ H5˜À“!+¾¬þøLð¸ÖGO”D¡•ü#iM’[áw' ùð¸ 6pA?¹-.Ûl…¶¶>åšm¹;žõk¿Î«òË.u]Óš~8åÁººšÙú ˆ[‘–b8tZt':/@»×ˆû>õëݽٺ_LH‚V’\­\9—=È^‡ì{^aÙ?‘½­$Ù§’=«ÂïNö¾dŒYaÎKR„$ Í<äâÃ)ÖÕ•äFçàÉàEtjû©í§¶—Ë)—S.§ðE«ËЗCkÝ=õÏaß:Zô˜ágžõ}¥}|ÇVj_~Mùÿ¯ð{ôÞ ÷½—ã’ã’ãÂ(ŽäfÉÍ’›Ù²]Ù+Íí“ß;ÄoãhÑ?g[òëaƒÖLÞï½Ç–{™1Æüóó'çOΟÌ(Žõ'ÖŸX–š7è>ª[KŸE/ü4Òá}}½ðÓH¹B[îEîšWxZdõ—$PøO«$ I’4-ÿH*“„öˆ_=9årÊåHêcÇ•®Wº^é8:ptàèG|µo‚çëÎÒ:®œë×Û²!mF¸åŸ i3Â}äÚä: ¿¹_¹wæÀ“é¼j,ñK|¥†ïõéó7Vt´ä·bKJ{¯”|ç;•û­ÂªŠ}é¼=u^37þÏcÔMß~SC¶:Ü¡¯o¿©![å 鼞 Ù÷=[j.û*²Çâh;?²%{S¶Ü‹ìw1žLç%‰BÒ…$ ‡û’çëÓço¬( Î À“Ç0Š·$_̹˜sqLç1Çt¶% s¹Sõõ_ßÕ¬ãÓŠþ¹å Ûº¤Iè¹FËÙlóÕÍW7_å/Y×j\«q­Fç_:ÿÒù[^…®·^ur‰>ÐwU„ß²§ý¯|ðíVE{ {ù¾íó'Õ)Õ)Õ‰W¼d9yæä™“¦pS¸)Ü–W¡Nj§žš9ͨ°qËÓŠþò_—+±åšåîäNyÅÇ!©ÀöU@R‡$§•$}I³åš%ÝIÒã/±ÍPS¾)ß´pã 7Úò*Ôʨޯ⊠3<š,³lO›îûòÏö´¹á¾r r=¶\¹Ü£Ü/¯ûÓ꼜Ó.hã=ñÃ1‹þñ´’ÿåeÃöö~ùdÿ±ÿ¹Fç§óÙݧ[™S‡z|ðëS{»Û¡Ÿü*WBçõtÉ~ˆí«€ì·ÈÞËÓÚù‘}'Ùƒ²åše_Kö¸xÅŸnç%©CÈÓÊ?’¾$‰Ñyxº8F‰I?˜~0ý Ë\—¹.sm_˜{¿oŠ«ó„Ñ\}»Ü~«ÿæÐÁ%úÏÆõ|øcìÃðç¼ùþ·æpçý¶_Û ÕƒVZ}mëµ­×¶òúÚÑ=Ë=˽„ï¾Oø¾Üc9ªgˆ[ù=¥—þÖüû‡KR\ÍŸ”lè?ûÕPÿksš¾wÑ4¦–[µ³?´ýÚ>}éÓ—>})gFÎŒœ¼Èö“——W/®^\½Ç?nåÞŒˆüÈgî¤ú«ÇÛåi¾s'Õ_=^þ+{mrGrw¼Ê€c’„ iÁöŸnI#’L$¥”lò‘4%ÉJR–í×&)N¯¯½«}®ö¹Úætsº9ÝöרmdPë[6þsÆš&‰—Žlÿ-øpÉ&ùwÊ¿_þ[¶_›Ü‹Ü¯¯cv^µºû·÷òZÿþñy‹[¦/¾t±„ßèvdfßo75¼3(ïãÑ/¯ÿ¡g+:/€ÎK|ÒÓ/ÖýÂÁ]]¾ó»j—§ùîêòßUù¯Ðy9&Ù‘}’ÇX¹Üª­ø¡ìÉÈþLÉ&ÙG’=%Ù_zÜù#{Y²¯Å«ìh—¤I&’RJø{ÝÒßNº(ÉJRGÃ0Jº%X•·*oÕ7ÿþæßßü»\1´Ê¯³®Z×±o6[ՠ⊦淽"¶ni·³éøÄß;f5ÿ×îîŽ5Ÿ³ã›×·7k³ñx¯&7æy· 3eE®÷îÚÁ=¡Êòʧ‹öß5[̳å„ó çμšOÞ½N÷:Ýë´¸æâš‹kgþ´›ܸÆÝOÚEŽr?·*gRŠ÷¸øSs»6ÍMšüÅÍìÚ¹älówH^é{ú«W§MjRgÖ{£îx¬ès·CÏ:oÕ(SµyKÑþ»ý‡ôÒÈÅ™g^œÉ«ùäݸsãÎ;]&ºLt)Îü©q¹e|ëžõCºyïa úü§½~ü ì¼ »ü§Ê’~2Êß‘ÿWþIùSÅùïÊ•Ë]ðjÚ"ÉARDÑ~Hz‘$#©FޤI>’‚$I:’¤$©©8¿$¹IŠãÕ|²K—å†åÆžE{íYäzÚõ´k¬oÓ>ç5£jõLqk¾xï¸ÃL›ÛÇ”òÙþÓ¼Åý›mß}giFó­ò¿åïË?#ÿ¼üÙ¢ýwåšåúå^xIµØyUùÚ³G³Ú®“_ŸÖÏ·á²L,×èÖèY³¿l\e\·/†5žóŸK»zûpàÂËž+Fôûì5÷ú´ø`díáC»4¬üZ+]]é¼:¯¢éú¯—qé4užÿ­†mÖ®o=¹qÇ„£^ñ²«N§ÞÍÛÊ(Gþ_ù'åOÑyi—ì™ÈþI{ö2U›W°ÈŽìçÈÞŽìóÈžìÿÈ^ì É‘ìgþÈž•ì_ñjj±ó’ô"IFR$I;’|$I"’t$IIR­àvôàÔƒSNmKß–¾-½Á¿ü»A±6&ì§÷Þwzß9qüÄñÇyÕÇ]ï»Þw½W¬XPÎ9<æð˜Ã6]Øta¯šã¸^÷zÝëucæÆÌ™ëÈóG®P®–W ÐÉ–ÄñÇO—tᘿy$•IB“´Æ«æª[ª[ªï›¿oþ¾ùæRæRæRŽ9äÚä:åšyéè¼è¼:/:/ì¥È¾Š#ÏÙ›’}*^5:/:/ZÁ0ž¨3ãÎŒ;3nÊî)»§ì~ZK¯‡‡ÇÚÃk¯=|Ãó†ç O^­8òΑw޼Õ!ªCT‡§5^›üÚä×&ÇÿYüg9ûsöçìçuq|ùòäHþ1ùÇä{ÇôŽéóÔ6=czÇôŽ‘+‘«âÕôM’†¤I Oë÷¤/Ib¼.Zq©ô¥Ò—J/¸²àÊ‚+Õ§VŸZ}ꓟ9òß•këáu¡ó¢ó@ç{=Ùo‘½—§5dßIö x]è¼è¼hÀxÊ2+eVʬ´)dSȦA ú`ÐNÛœ¶9m+þrë½Æ{÷š‰Þ½'zïÊÛ•·+ïfÎÍœ›9Ô\'XXœ9yæä™“«'®ž¸zb÷½Ý÷vß[Rq-èLЙ 3Ÿå|–óY΃8x÷èÝ£wRx}x˜ý0ûaöñÄã‰ÇWX\aq…vsÚÍi7§¤æüÛäß,ÿù/Ry’F$™HJ‘ÄRüß<’ $MI²’”EÍõäJÔ•¨+Q o%¼•ðVÔÚ¨µQkëΩ;§n ¬_òï‘§üûå¿EÍé¼è¼Ðyái‘}Ù“‘ýÙ«)©ù#ûH²§$ûK²×Dåé¼è¼èÀÐŽ½–½–½{oí½µ÷ÖžÏ÷|¾çó»ì:°‹ÂÀ¹r;åvÚÛ}o÷½Ý“ݓݓÝO=8õà±6¹²ïʾ+û’wý¿¿äïPö&iG’¤ IDT¶Ø½/z_ôîÜݹ»såSÐy ó‚^É>ìùÈþìQÐy0&€@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'8àt‚`Ð €@'þ7á}jhÚ~%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/retryWhen.png000066400000000000000000001456401431412030200253720ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìýyÜÍeâøñkVD¢D$J’(!{{ZF¥Òh´7mÔ”ö½”j”V)4•„q¿w²¥HJiQ–”„†H¸Üßßãçó»»Í]È}Ïçy<®Ç<šÛ}ιÎut®ëÕ9§L>9¡Œ)È 0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0ã&tœÐqBÇqMÇ5×tâ/˜x96‹_òÉÿeÂŽvœ°ã¸ÇÝ8îÆ)§tžÒÙÄ&(eÎX8c጑ûŒÜgä>WÜrÅ-WÜR½jõªÕ«–ßhuO¨{BÝzî5º×èàºàºàºÅ‹/Z¼ÈœÀÖlÁ. vY°ËÁÁAÏ=[ôlQ¥_•~Uúmü¤Ác kðØ-nétK§äÎäÎäΥ͗6_ÚÜœCJ´¹5çÖœ[³ï˜¾cúŽ©ðT…§*höA³Ê—H¦ušÖiÚû=ßïù~ÏüwóßÍ×c¥ÑšÖܰæ†1Ç9nÌqõ›×o^¿yÉ܃œ{ô¹GŸ{ôGS?šúÑTZÉ!S2 ÀÀ–Ö)¿S~§¼ºyuóêVšQiF¥ì@¤y“Fî=íºWÏäÀžÙïæÁ FŽÿÈMv» Ø¡é‚lÄ3Ï6Ž2mzß3úôð ûÿ½÷òC_ºâž³©Ý£áu‡W¾þ]oã‹_Ôø¢÷z½×ë½^L(ùÖÕ^W{]íõFÔQoc¢ì1§4™¶ÏÊÞ‡\pòÓž»ºÏõ ›löèqMºÅ 8§i~vÕ3=›õV¿ãݷoÍzìÜ&«—¶Ý}ÓîA¾ñÖÝ-WÚîŽ]µ;rAÃ÷ö¾³ø·íÂí/ÜþÂíå/Ê_äáÝ`J&øS­ÙiÍNkvº?º?º?*ÎqFý¬Î]{=øöGf59fÓ²\;röS_žqW‹F *üsåŸ)Î-ôù Ï}žß'¿O~;l)¿”ÿ¥ü/åo.ws¹›Ëç•ü‘§7<{ï Ç>ú¯ÖGLÛR{ÕwL¸µýÎÏ~×g·†ÕŠƒ‡;üØáÇæ¯Ë_—¿Îãþç€)™`àO2oú¼éó¦×»°Þ…õ.Üð±E»—Žl\uÙô…CÆ6ÿ|K¸5®3ù½ökÆûl…f:¹ÖN•îÿßü|§ç;=¿tõÒÕKW[ðgúâ¢/.úâ¢Ê÷W¾¿òÿxÝ~Z¹¶#ªÿ2«Ük´8¦¤íAÖž=iLû×ó>èdÓ*{_TùÜ ÿãc«»Íï6¿Ûü£WŒ^1ÚØÜ`J&Øì&Ü;áÞ ÷nø¢b• W–&Ìx~Ö‘O”´— #?}tB“»ŠóßãÏ®1»ÆìÖlnyõóêçÕßðëó>¨qžñs×nÞ½tíA^]|ÿö;nøÞU>¼òᕟ{ÞÜóæžg=l>0%“ lFo,xcÁ 6|0ñÀª«·«_nÍ=“ölsé:vY\žfeÚæ]ùË9UkçmøþNj:©é¤¦Ölƒö´Ç =6üšüÉ™7UŽ‹:h8!m9¾ÚC+ûŽoÔ®kn»¬?þðJÞ¿[/¬±Ý¾T|µ¨™ùüÏøüë~¯ÑG>jôQE½Ò>ÿ³“oÙ¿ò¯'ÖnßlëÙƒÌ`T•cNÜpž?sþÌù3­Ÿ'S2 ÀÀ&ðMßoú~Ó·¨Ã…/nÕ®Ú[«?ž´ßwë9vY\V&.×fî~'W][ñö¢fé§Çzü§Ç­%(ŽYGÎ:rÖ‘E½ºî¶Û)—ïîÚ•“o?}ë܃|ßì?Ië.EÍOÍú5ë׬¿ªÍª6«|"ÑF€)™``£¬^²zÉê%µëÖ®[»ná­o£zuWV~`åÊñ··»nëùî“ï>±Æ`}.Ÿpù„Ë‹z=û…á[–µ×(j|é;»4z¹¨Ù[6yÙäe“­±ßKÞxkO[{ÚÚÓŠZ™bð#¿Ûº>ëú¬ësðôƒ§<½ðö¬ßµ×W:änÇ+Å{<ôד([x»®ìº²ëJ+ üÚò×–¿¶,*½ôÅ77nñ?ÆñSžëpä©åÛüP=.<‡×Ÿxý‰×Ÿh¥ý^ðÆ[ÿ½¿&Ÿ üno¿ööko¿Vx3Vmò>S+¼æÜ‰ÿm­ã•âŒË†ÇO¶Ý¥¨Íí‡?ø¡ƒ€üg¿8ûÅÙ…_3Y£a£½ÏÌ/7¥\‡òöÅ¿ùŸ.­[µùr—¾œ`½Ÿ¼ñ ‚nAÜ-_lbð† ÀÀï°¦Ùšfkšµ›úüKÝŽšçHå÷ŽÃ>}ð¤ÆK Ïgëê­«·®nÕ°5[yúÊÓWž^Ôä³öÃ:¶ˆí)~ïøÌ˜[ª7˜Ux>ϹìœËι̪+>xÓƒ7øFÝ3êžQ÷ÞnšµíU}¡c”?6®}orÅöö[y`…V…çvæÀ™gz0[©—oxù†—o(ü:ù’ÏÎÜû€Çì&þØøËª {¶û®¨œöuôuôud퇼ùˆÁCŠgvþìüÙvÐaVx‹5köëõZ\áecƱãþÕãˆÏ Ïíùñùñù±ÀÖfÝNëvZ·SQ™gÞEï4:fgûˆÿ}Ľ¯6¯ðÜöº²×•½®´‹CþsˆÁ¿— Ëì‡g?<ûáªwÛ§­£“×|9é¬öµq]zöÒ³—žm°õ˜úýÔï§~_øµñYw›Ô¸ÒbãÇU-Çÿ§ÝÝEíAVöYÙgeëpÃà?Ÿ\0P,·¶½µí­m o¢¢]ž\Õô)G'›j|jÈM£Ô)<ϯž÷êy¯žg°õèÞ«{¯î½ ¿6~ÿ‘—«5¯jï°©Æ;&]òÌÁGžç`@0 `n˜¼e‰ÁE€€ÿaÝ)ëNYwJQ§_{·w»À¡É¦¿ßþ?O¶þÙn^«y­æµ¬F¶«/[}ÙêËŠÚƒ¬½ÒWíGÛ;lªñ«CߪÞò7¾ŒæÌÑgŽ>s´Õ¸apÉ!¯Oþ‡9OÏyzÎÓ…·IÝÿsÆZ_:.Ù㡳ª]yûÂs¾|ÛåÛ.ßÖš ·Íè5£×Œßxïï­ïôh\÷Nû…Mn¸»Ã¶ÃÎvÖ°³ ¿þ误 <º§=Èæï¾ÿ²ìà™ö Å'o=JW .Srž@i1mïÁ§6¿¶´¾<6ù†š‡Ì(]Ç.ãkÏÞÿPã+­7øò7ÿÚòE{Í=öoÒûýCŸ²Þ`ÓzgØ;ÃÞ&%ÚŒ¯_épôÉ¥åðeÌå?~Ä¥ñðåÍþÿãð¾Ö|ÝeÄôVgÛƒlîñ™wo©Û`¶õ›Öê×W¿¾úu(ÑJ×;€?¹ïµZ-ö/]Ç.Þ ë+]ï.½{ï†Ía+zpÁg »¸¸¸¸¸¸¸¸¸¸”äËã?þñãÞº”®ïž}ÒðJ-~-‡/E}°•éââââââââ’«—»ß½ûÝ»ß-ü¸t}pé݃õÀVfQ—ÂsÕÇþ;ößÑÌäÞeÔ£nucÏm{nÛsÛâ§ß‚Ÿßо(ù¦/¾túÒ˜a<ؾñ_6÷x{§ž×ÕSxþ­LrU%Q~ œ\>àãfµìA6÷ØãÊ¿69`'{â+*–›™ÜPnïz÷л‡?úüüŸ}×'Eš¿ûüÝçÿÆ;PØéªŽõ>uø²¹ÇÎïw¼¤Æn_Øz̺tÖ¥³.-üxà·Ík¸ÄdsGîÕ°îÞµ)>8÷”Þè»>(ÒÏ•®üså›ӿh_m¿ ¾lî±ÒÇ{>±GW‡/l=¯]¼vñÚ¯¯<¹ËµŸ°Ù|ãºxòôöë Ï|•IU&U™deEÎ ¹}×'Eë›ß7¿oQ[ü^Sºu8ÐáËæW>=þ¨vÝ Ïy›‰m&¶™ha«Ö,^³xÍ⯄ký¼ßÀ=û À›o\z@ta›7 ÏüùÏœÿÌùÏX™E€K¯Ü‹¾ë€€ÿá¬qg;k\ámÏ’ªáãm®sø²9ÆYc_¯Ð¢{á9°áƒ lhMÛšßÕü®æw~=üóûã´;ÌdsŒ“ËìÔ^…çüÅó^<ïÅó¬É¢À¥KnGßõ ÀÀÿ0¸ìಃËÞÅ­žú®éW_6ÇøÔ?oúWƒj…ç|òÉ“Ož|²5 @n{äêG®~äꯇ§5|aóÞö ›c¼ýµžyuWžóYËf-›µÌš,Š\òm=Ñw}0ð?ÌyzÎÓsž.¼êþŸ3†Ôú²4~·nÉuPíÊÛžóåÛ.ßvù¶Ö$¹mF¯½fô*üzøÖwz4®{§ýÂ&»O9£ÃEe°ÕVwXÝÁš,Š\2mÑw}0ð?¬;eÝ)ëN)jƒôËaïön84ÙTã÷ÛÿçÉÖ¿1ÛÍk5¯Õ¼–ÕÀÖ`õe«/[}YQ{µ÷Oúªýh{‡M5~uè[Õ[~^xžÏ}æè3G[&—¢ïú` Xnm{kÛ[ÛÞ,E»<¹ªéSM6Ù‡?¹itƒ:…çùÕó^=ïUß¼ÀV¤{¯î½ºÿÆû€ßäåjÍ«Ú;lªñŽI—mšlü¸æËIgµ´¨ êÒ³—ž½ôl뀭ÇÔï§~?õûÂ¯ÏºëØ¤Æ•v?®j9þ?íî.j²²ÏÊ>+ûX‡&ÿùDß â™?;öA‡tØA‡ÞJÍšýz½W8@Ù˜qì¸õ8â7>xíüøüøüØ`k³n§u;­Û©¨œ3ï¢w³³}ÄÆŒÿ>âÞ×›Wxn{]ÙëÊ^WZÅ!ÿ9DßßK~‡Q÷ŒºgÔ=…·U§fm{U_èåkß›\±ý„½ÇVX¡Uá¹9pæÀ™­=¶N/ßðò /ßPøuò%Ÿ¹÷ÙMü±ñ—Uöl÷]QÙìëèëèëÈÚ+xó}7† ükš­i¶¦YQ­©Ï¿Ôí¨yS~ï8ìÓOj¼´ð|¶®ÞºzëêV[³•§¯<}åéEíA>k?¬c‹Øžâ÷ŽÏŒ¹¥zƒY…çóœËιìœË¬ºâ€7-ÑwS€€ßíí×Þ~íí× oºªMÞgjŃל;ñ¿í¯u¤RœqÙðøÉ¶»µ‰ýpà‡?ôÞ_Èqö‹³_œ]ø5ó‘56ÚûÌürSÊu(oQœñ»‘ÿéÒºEQ{/'|9áË Ö[ñ ÀOôÝ`àw[×g]Ÿu}ž~ðôƒ§Þ†õ»öúJ‡Üí`¥8c‡þzÒe Ïaו]Wv]i¥@_[þÚò×–E¥ —¾¸óæFÃí/þÇ8~ÊsŽ<µ|›ªÇ…çðú¯?ñú­´ßKÞxï {gØ;ÃDßMKþ †~4ô£"ÿûÜiÍ÷l~“C–¢Æ·“G~hÒ¡¨Ùûî“ï>ùîk Ö7áò —O¸¼¨Wѳ_Þ¹eY{¢Æ—Þ¸³K£—‹š½e“—M^6Ùû½à·ö´µ§­=MôÝ´``£Ü¹ë»Þ¹kQ[µÅǵÙÍQËúã쫆7l¹]Q3öÊÀW¾âcŸ HWŒºbÔ£ŠzEýßui÷¶Øw¬?N;ap¯æ}Šš±1_ùzÌ×ÖÕ#o*ë¿XôÝx0°QV/Y½dõ’Úuk×­]·ðÖ·Q½º++?°råøÛÛ]çØå‡òê·ÎŠ:véܨs£ÎòßË/ÿ=ë Šòs…Ÿ+ü\¡¨×ÕÇ8úÄ}?þuñÄgÚŸc2¯üÈ¥­~.j®.»à² .»ÀŠÚ0%“ lßôý¦ï7}‹:V8ñâVíª½µúã Iû}·Îc—eeârmæîwrÕµo/j–~zü§ÇzÜZ€â˜uä¬#gYÔ«ën»rùþç®]9ùðöÓ·Î=È÷Íþ“´îRÔüÔ¬_³~Íú«Ú¬j³ªµ´1`J&ØdƇãÃñaQG '¤-ÇW{heßñÚuÝŠÞõûJÞ¿[/¬±Ý¾T|µ¨™ùüÏøüë~¯ÑG>jôQE½Ò>ÿ³“oÙ¿ò¯'ÖnßlëÙƒÌ`T•cN,¿AógΟ9¦õ³ñ`J&ØÄ†>pøÀ¢Ivù¢Çc[^·ác—Ém&·™ì¿¸€ò©/œú©E½ênS§é1U»-{2¾»í¹½ù(zeùÑ·nx2óÑ™Î|ÔšÙT`J&Ø,†”RnH¹ =LmùR¥£ÞϽc—Ñ>–QeÃ÷=­žVO«['°©ô_ÒIÿ%~þñ¯6:úóÜÛƒ¼öìý5¾òì¿~úëÔ_­“MK¦d€€Íèo,xcÁ†!XuõvõË­¹gÒžío.½.ËÓ¬LÛ¼+9§jí¼ ßßIM'5ÔÔÚ€ÍaЃö´Ç†_“?9󦊇®\·`ò’;–Þ=È’EQÓ6/ýí“SÚíßiÃ÷wƈ#fŒ°66˜’I6» ÷N¸w½>’¨X¥Â•å£ 3žŸuä¥ëØeä§NhrWùb˜]cvÙ5¬ØÜòêçÕÏ«¿á×ç|Pã„=ãæ ®Ý¼{éÚƒ¼ºøþíwÜð½«|xåÃ+>÷¼¹çÍ=ÏzØ|`J&ø“Ì›>oú¼éõ.¬wa½ 7|TÑî¥#W]6}á±ÍK܇³­3ù½ökÆûl…f:¹ÖN•îßð}éô|§ç;=¿tõÒÕKW[ðgúâ¢/.úâ¢Ê÷W¾¿òÿxÝ~Z¹¶#ªÿ2«Ük´8¦¤íAÖž=iLû×ó>èdÓ*{_TùÜ õ6|_ºÍï6¿Ûü£WŒ^1ÚØÜ`J&øS­ÙiÍNkvº?º?º?*λfëguîÚëÁ·‡<2«É;ˆY;röS_žqW‹F *üsåŸ)Î-ôù Ï}žß'¿O~;l)¿”ÿ¥ü/åo.ws¹›Ëç•ü‘§7<{ï Ç>ú¯ÖGLÛR{ÕwL¸µýÎÏ~×g·†ÕÊÛðc‡;üØüuùëò×yÜÿ0%“ l1ŸÖý´î§uh{DÛ#ÚÿP㌑íÇï×oÄ}9ü›¢¼±­oÚ£–¹gü[«©CgÝ3à°'ÚÞÒìäªÃÇm}Æè3F/è± Ç‚_(i¦ß6ý¶é·ÕÙ§Î>uö)þëüsß?qßšÝG}õعMV/l»û¦Ýƒ|5â­»[®´Ý»4jw䂆ïí}gñoÛ…Û_¸ý…Û/Ê_”¿ÈûÀ”L0°¥uÊï”ß)¯n^ݼº•fTšQiFù?¤y“Fî=íºWÏäÀžÙïæÁ FŽÿÈMv» Ø¡é‚lÄ3Ï6Ž2mzß3úôð ûÿ½÷òC_ºâž³©Ý£áu‡W¾þ]oã‹_Ôø¢÷z½×ë½^L(ùÖÕ^W{]íõFÔQ¯üF8æ”&ÓöYÙû N>pÚsW÷¹¾aó‘Í=®I·øƒç4ÍÏ®z¦g³þÁŠ'k4í2ü¯;|·Çó{Uc⌉3&z4·,˜’IJuÛ®Ûvݶqï¸wÜ»ÙÍ>höAù©Ó´NÓ:M{¿çû=ßï™ÿnþ»ùïzì 4ZsÚÖÜ0æ¸1Ç9®~óúÍë7/™{s>÷èsþhêGS?šêQ+9`J&(ÑæÖœ[sn;cúŽé;¦ÂSžªðÔŸÔRgFuf>çãsÆ­·vÜÚwïz÷®wïZ³íšm×lkfþLð´xÑâE‹×××õÝkt¯ÑuO¨{BÝÊo´êU«W­^õŠ[®¸åŠ[Fî3rŸ‘û,œ±pÆÂæœ?ÓòÕËW/_=¹ÒäJ“+ÝwÁ}ÜwAóÏšÖü³ò›H×kº^Óõš!/ yiÈKsÊÌ)3ÇßE›€èR,ßý~è÷CŸ«ñ\çjÔ™QgFåÿtžªðT…§úŽé;¦ï˜¹5çÖœ[Ó㦲âÜç®8wD“MF4i×¶]ÛvmËo!½FõÕkÔÌ‘3GÎéqø½àßònþ»ùï¾ßóýžï÷ì4­Ó´NÓÊ—HÍ>höA³âÞqï¸÷ºm×m»ÎÇíò;Ìi3§Íœ6W/¾zñÕ‹Kæ ¯8 â€Š^I^I^IV•]UvUYÀ† ÀÿÇ{½Þëõ^¯Æ5¾¨ñE,Y5ü`ß6•¯¿âžÆ-j÷èÿ÷6×úÒ3Nøñð Ãñ§î×ô¾lÄi+š Ž»:ºé‚ãOÚ±ÉîÏì×®Yƒ‘×½ÚdÁ;4oR£æÞ06WšQiF¥yuóêæÕÍï”ß)¿“G“ÂæŒ3vÎØs·9w›s·ùc+­ÆÛÕ*UœqaïSOßÿ»Gö½ö˜úë^;åþNÏË;í_Ÿ±&]ôÌ6Íz'g߬ú¨cû-h2ëÅy·ÿԨŭ»u^÷¼ãOi1¨Ú‘“„ŸOŸOŸOW×Y]gu&@apþ‚ z,èqÆè3FŸ1ºø!ªí-µšV>tÖ±+{bîY]ÃVSóó{öìÐaS?D´l½xÄ'F‡sÆÈº/ìׯø·íˆ¶G´=¢í§u?­ûi]/+ª­¨¶¢ÚÍy7çÝœWüUT;¿æ‘•vø×ý½=ô³ò_?¶ÅõùùS¦tè°©ÆÕ—O¸²ýöÉ>žhVþ²KÎ:í€o ŽkÆ5c„ðl­¸O~Ÿü>ƒ>ôù Ï‹õý»ÿ,¿²ü3/Ïè8³Ñ‚µó{ l¿‰soñÇ·‡œÔ¥É1õ³}â½,Î-¿?º?º?Z³ÓšÖìd¹om²Ï³Ï³Ï‹ŸTÚëêoꟲä«è67mî-þ8ñï/œpä;§žØvŸêS‹s›Ïïy~Ïó{.¼tðÒÁq€­./]½tõÒÕžïô|§ç7–:yïÊ•îwìéõ›M\7¦ÇÒök¶Tô-jœ¾ð¬VÍ?o÷R­—ª.Ûð}©wa½ ë]8oú¼éó¦[ô¹mÍOk~ZóÓmémémiq꫽îÚø_.y÷åv“¶Tô-jœ»ËÈZ­Æ^ÚýÌ{Qœû2eö”ÙSf[ÀÖl+ À³kÌ®1»Fq2ÒÈOOšÚä®’–{7Q±ÊÊG¾wîpï„{-ýܳtÔÒQKGµz§Õ;­ÞÙðøWÓÞ9ôokoŸ4«ý;%-ú5~YíÍãZ>סÖQçï{ì†ïÝ‹g¾xæ‹gZÀÖi«À“šNj:©é†£Ñ•¿4žP;oyzñQmóJWú]\sOêío~`UËÃë—Ûðý}cÁ ÞXà æwžßy~ç ?â­ò›<ºÏüy¼Óé˜ ¥%ú5¾qâCWÞnÃ÷÷Î wV¸³BþØü±ùc­`ë‘ã8­žVO«o8¾ðäðˆ*¥7ú5NmÙùŽ£Þßð}RnH¹!å< J¯¯øú‡¯Øð£Üï‚ëÿrÈíùÓ¦ îм´§ßõÇùÓGr̹‡6>ðå½¾*ê¾_¿ßõû]¿_þù7æßhµ”vkú­é·¦ß#ÿyä?ü'Vþ¬üY[ÝÌÊŸ•?«` fê °œ À“ÛLn3¹Í†ÃØ=ν·åu¹—~×Íìömëч¤U÷ÛëÝ¢æaøÀá‡ôd(]6XØ`aƒ ¯ðè“§žj:!—¢oáquÓ íÛ­ê>íŒÑµæ57»yØÍì™Ò« vSó˜šÇÔ,xLûtéÓ¥O—­(ÏÊŸ•?«à^Ì@ÁlÈÀ–ƒøó>àóŠJA5¶Û«LÅWxå‚#Z/Ìíô»þ¸²ïßÛ·ëzBZç„j53ãÃñáøÐS¢ä[Þ`yƒå ö¾tïK÷¾´¨GsÆÊWÎ:úôÜN¿ÿg|hÊ?:Ô¿óÆKëܵ¨9yrõ“«Ÿ\mý”Fç–=·ì¹e ?¦[E.”~×W03VëË©üÓã?=þÓãEåŸýN®T¼}Y™ g´™»õ¤ßõÇÕw¿¹ý¾'^\çžjo5Kßôý¦ï7}=1J¦u+Ö­X·âÔþ§ö?µQଯ^oÐâÊ­(ýïîwÙ¤ƒ?)ò]Ñ'G'G'[K¥KQù3Ç3ðÓïÿ¹ï°ž\ Àïå¿—ÿ^çFunTÔAù;u[Ý:Û:Óïÿy7ðÊ¿_ÚîºFõö½¨òo¼OºvÝÚuk×]½dõ’ÕK<=JšÇß~üíÇß.j…OÛopçæ×mÍé÷ÿŸNÖ¡å5-Î{¥N¯¢æêÛ^ßöú¶—Uj?…æFÞÚî/›TŽàW¾2ð•E”Ͼêœ÷Zn'ý®?.>þ‚´Ù­¨»s×;w½sWO’cæ)3O™yJQ×ȇ}°ÉµÒïúãÚm&]Ûþ©ÖﱺêI…g¬å/-iù˺UëV­[eu•[CÝ îãÚÓÖž¶ö´‚ûrh—C»ÚåÝ•ï®|weþÓùOç?m™l¼R€¿ûä»O¾+òã^ßNNº¨‰Ü[ä8­Ù™Ï5¿©¨ÙûhèGC?êI²e­¹dÍ%k.©~Dõ#ªñ)èÛîýêþUî-j\—/1`c”âüáÀ~XäÇ>/~Q¥¶»ˆ»Åלۣlûk«M®tHŃã]Ô¯½ýÚÛ¯yªüù–u_Ö}Y÷"ߟÝû•àè«ÄÝâ—ÜÝù“n-<“½íýhïG­·R©´§Ó­ò»~ ²nAâƒ6‡R€[Wo]½uõ‡ÅÃ>=¡Q㥲îï§>ßyÈQóŠ:‚_ÓlM³5Í;®Ó6G|.ânÌ8kv—[\Qxn:ì Ã:,vþìüÙž6›Û g=3è™ÂÂm{ü³îS"îÆŒ+®Èîi;·¨¤´|çå;/ßÙ ,ÅJr^•~‹C Øh¥,/={éÙKÏ.òcŠ¿ìѪý£"îÆ-×øjŸ¶…gxöóžý°§ÍftRþIù'íùꞯîùjáù_øþ˜Á­wq7~¼wÕÿ®×­ð ¿VëµZ¯Õ² K½’–Z¥ß?F øCJY~õ¼WÏ{õ¼Â¾O i{Rƒ:Âí¦£]N=²éS…çùÖ¶·¶½µ­§Íæ3ûêÙWϾºðÌŸ:²íåÕç ·›jü¶õè+^xžD ¢‘u˜#JBv•~71 ØJYn^«y­æµ ò~¿}·£ZŸR’“êãc[ßpè.ÿï}´'µøµ$ßÚ_ûû×í‚¢ŽÔײî”u§xòl÷w¼¿ãý Ïy¶Ý3{6ëSrj2ÿéÛµüû §O©õ|ƒjSyÏ*÷îõÆ«º§Öá•úŸtd«ï«}ó`Û«[Ö¯±òžñõÚ[23ðQ4:uïžíE -X´ÀjÌ[*ÁJ¿› °A¥&/ßvù¶Ë·ý#ÝYU﮼}‰~OmÙžå:”?ú¸÷îSvý[^òßÜý? GÖú²ðœÏyzÎÓsojKò—ä/©¼¨ò¢Ê‹ ÏùÊh|çv=·p4-;¥\‡òW/:w`úå§© _Úå¨)%-¿:ö¾Ï]øÖ¾uÚ[§½uš%™SþÌ+ýþ™Ä`€BJMž|òä“'Ÿüþü϶-T+Éé÷μæw|yá[^òpÜêÔW›~Uø–.;¸ìಞ<›Ö’–KZ.iYx¶O®wÌÐêUJB.í»×5×ÔÏÖ¿m‡4¯óÍ^Ctûçq :½_ó¥w›o[ðÎàû/¸r|½ÕŽÞçüŠ»¬ÿóK—ÅÛ·ùªäàïósë…ç¼kË®-»¶´&sÐæN³Òï–%äçç—¢ü`Ã>ذðÑí¬±]&·è^réw—t+Óºþ+WwÈa£nýå¨}ë>vØœj©ücQ‡Î%?/©zá~m®+|ËÏwÖ¸³ÆyòlZ†N:aháÙ~9ï®z¾Þ²¡tU¯ñß¶{¬æ²ê»ï¹OÁ­j2â;ªix¥¿ž×ìÄ+jöYÿö7}âÐ5UÖMmøÒ.GM)™é·`\¾<;°íë Øx‡¿vøk‡¿æÅ%°ey°ìÀÞü»ÇÕ]&ü­]þ=}/ï[¯|¥‘{Þ´Ç™·¹F¹}¯øú#¹¶AýÕ¿ô|÷¥v“Jrúõ`À;€€Ü³Åð¸í~ߥð«ïÞ²ßüøÇüøÇ¿÷qt)þ /™ßüyËáÓ[ÖdÄ!wTy´àvVœQqÛòß÷©ü÷%uë,]oßæ«’}‹óÀ×¾¸öŵ­Ì­í’-Èd .¼çÂ{.¼ç÷f¿‚?UðÌd)^£³ÑÙè§Z<Õâ©u&Ô™P§XŸPð“£:Žê8ª£—À–U¦´ÜЇ­·w:ꙺsàÍ=ûà„CÿXøöO_:}éô¥žB›o…rÉÙë­’Jçü4âÖVmîqÀë{m_p þ÷„žþÈ» ~¦t¥ß‚ñ«‹ß:®åÂÂó? Ü€rÊY™[‘Yù³ògõéÒ§KŸ.EE¾>Çþÿ.EþL—>]út)øm&µÔx:ÿéü§ß]ùîÊwWÚåÐ.‡v)Nô-øÉ‚?UðL$P”âÜùýƒ{ÔØMÞÜã;µ˜]ïÓ·þîówŸ¿»§Ð¦²oã}ïÛø7ÖI•)•;T( ¡ôèãû÷>e nU»äÈã«®ú±zð~›£Kcô]œÐåùÞGÞXxæGÍ5oÔ<+s«Pœô»~Öý½?OÉ$ú9ªàJWhºGWxs§Q·Ó~¾ý?Wþ¹òÏ•=…6•ÎC:é<¤ð<¯Ø7ëØvÚ–M¤áþO¶izQÁíÙc›òï•ïðe7où|iO¿ãó»õYÚ°ká™ÿø±ûø1+3ÇmLÊ•K#ÑØ ”šÜfb›‰m&>–]ùôßk×MÞ,c¯žM;XÔx~ßü¾ù}=…6•~5úÕèW£ð<V{Ø!-ÆlÙDzñ§—­Õ³àöÔ\V}÷=÷)øßý¾±â¡¯ÿÞ±¤àó|úþ»žù¥w,½céVfÎÚTùV.ùD_`+Sjðƒ lø`ÃÂG´³Æv™Ü¢»¼9Æ%U/ܯÍu…oùYãÎwÖ8OžMkÂÐ C' -<Û/çÝU¯Ñ×[6‘³öˆ³ªV/¿‰” Ü|J£ûy;·Íß6[+3mŽd+—4¢/°+5xòÉ“Ož|ráãÚ§þÙ¶EƒjðæãV§¾Úô«Â·|pÙÁe—õäÙ´–´\ÒrI˳}r½c†V¯²eCirû>^ñõÜ Àß>æçÖ¿ñ®ë®-»¶ìÚÒšÌA›;ÓÊÀ[–è ŸŸ_Šðòm—o»|Ûß8ºUõîÊÛ—–ïÓ]?—üÛÙý? GÖú²ðœÏyzÎÓs‘ojKò—ä/©¼¨ò¢Ê‹~ã£Î£ñÛõ,íß¶[ÒÆWÇÞ÷y㣠Ïö[§½uÚ[§Y’9åÏL³2ðŸIô(¤L麹Ík5¯Õ¼VáÃÜï·ïvTëSJW.Éã/‡ýýëvAQGçëNYwʺSnqEá¹=è°ƒ;è°üÙù³óg{ÚlnƒžôÌ g ? ·UìñϺOÉ·3®¸"»§íÜ¢ÒÑò—ï¼|g+°+É©U.Ñ`£•ÊÞ{lÅWhµö½ýÛOrÿØxjvÐ=ÕžÛQ÷ŒºgÔ=ž0Žÿ®üïÊÿ®,*uü0$ohëo¥Ü?6öoÐ{Ò¡OžÕ›:ÝÔé¦NÖ^)VZòª \˜è °I•)½7½uõÖÕ[W/|(<ìÓ5^*åþÞqêó‡5¯È×n¶¦Ùšfž0¦ûÞßðþ†…‹äŸ×«Î%Rîï¬LjsTQ+üÛ7¿}óÛ7­ºR©4&UXôØlJqþpà‡?XÔ1ñ²áUj»‹¬[œq͹=ʶ¿¶ÚäJ‡T<¸ðL¾ýÚÛ¯½ýš§ÊŸoY÷eÝ—u/j…Ôû•àè«dÝâ—ÜÝù“n-<“½íýhïG­·R©´gÔ­2‹¾›[™Ò~º®ìº²ëo|Xn‡m@Yq·8c¿kyî» ÏáÁÓž~ðôu}ÖõY×ÇSeKyþ–çoyþ–ÂNµm÷iTaíê&äµßGÜÝð8îégOo6»¨¼´¤Í’6KÚXi¥L.¥Ó­,‹¾›[©Àß}òÝ'ß}RÔ!òÛÉI5‘x‹§5;ó¹æ7ùÓ¡ ýh¨'É–µæ’5—¬¹¤úÕ¨~Äod¡o»÷«ûW‰·¨qñ„à¾6µÂ‡ 2|Èpk¬”ÉÕ\ºÕdàw†½3ìa¢/ÀæS&7îÆ+_øJ‘=ûªsÞk¹Ü»þ¸øø þÑf·¢fìÎ]ïÜõÎ]==JŽ™§Ìm¿Á›_'ýæ:eX‡–×´8ï•:½Šš«o{}ÛëÛ^VT©±µ}WîVùÝÀl*eréÎüôøOÿôxQÇåû\)¨xû²2Îh3wëL¿«?î~sû}O¼¸Î=ÕÞ*j–¾éûMßoúzb”LëV¬[±nÅ©ýOíjÿ¢ÁY_½Þ Å•[s¾»ße“.òcᣓ£“£“­¥Òe+M¡ÅÏÀ°ž2¹w—>àó> ¨ãòÛíU¦â«?¼rÁ­nEïúíû÷öíºžÖ9¡ÚCEÍÌøp|8>ô”(ù–7XÞ`yƒ½/ÝûÒ½/-êÑœ±ò•³Ž>}+J¿MùG‡úwÞxiƒ»5'O®~rõ“«­ŸÒèܲç–=·ìVú.Ø fà‚™±BX_™\½c“ÛLn3¹Mù ú¢Ç¹÷¶¼.·Óݾm=ú´ê~{½[Ô< 8|à𞠥ˠ,l°á}òÔSM'ävú]ÝtBûv«ºO;ct­yEÍÃÍÃnvó0k¦ôZÓoM¿5ýŽ©yLÍcjn¥€\(ÌFÁÌX!¬¯Lnß½´zZ=­¾áH6ú“Ã#ªä^úÚ²óG½¿áû>¤ÜrCÊy”^_ÿðõ_ÿ°áG¹ß×ÿåÛó§MÜ¡y.¥ßùÓGr̹‡6>ðå½¾*ê¾_¿ßõû]¿_þù7æßhµ”v±ó‘ÿ<òŸGþ³•~÷í¬üYù³ f@ú (e¶†;9©é¤¦“šn8’]ùKã µó–§Õ6¯ôFß5÷ô¨ÞþæVµ<¼~¹ ßß7¼±àž¹a~çùçwÞð#Þ*¿É£ûÌŸ÷À;Ž©PÚÓï'>tåáí6|ï¬pg…;+äÍ›?Ö ¶e¶ž»:»Æì³k”/†‘Ÿž4µÉ]¥+ýN˜qÆ-G>Q±ÊÊG¾wîpï„{-ýܳtÔÒQKGµz§Õ;­ÞÙðøWÓÞ9ôokoŸ4«ý;¥%ú~YíÍãZ>סÖQçï{ì†ïÝ‹g¾xæ‹gZÀÖ©ÌÖv‡—®^ºzéêNÏwz¾ÓóÎH¼wåJ÷;öôúÍ&®Óciû5%-úN_xV«æŸ·{©ÖKU—mø¾Ô»°Þ…õ.œ7}ÞôyÓ-úܶæ§5?­ùé¶ô¶ô¶´8ÿ¹Ã«½îÚø_.y÷åv“JZô»ËÈZ­Æ^ÚýÌ{Qœû2eö”ÙSf[ÀÖ¬ÌVz¿ûä÷Éï3èóAŸú¼8a©Â?˯,ÿÌË3:Îl´`íüÛOÝRÑ÷í!'uirLýlŸx¯‹sËïîîÖì´f§5;Yî[›ìóìó¬X+¼ÀC{]ýMýS–|Òfà–Š¾ÿþ G¾sê‰m÷©>µ8·ùüžç÷<¿çÒÁK/ì(c ôXÐcA3FŸ1úŒÑÅOemo©Õ´ê𡳎]qØsÏê¶ÚÄIø‡è‚–­ØáÄèðoÎY÷…ýúÿ¶Ñöˆ¶G´ý´î§u?­ëñeEµÕVT»9ïæ¼›óŠ¿Šjç×<²Òÿº¿÷±‡þcVþëǶ¸~Ó†ÞÕ—O¸²ýöÉ>žhVþ²KÎ:í€ËÿNq͸f\Óã °>øÿx¯×{½ÞëÕø¢Æ5¾¨üÒðƒ}ÛT¾þŠ{·¨Ý£ÿßÛ\èKoÌ8áÇÃ/ ÇŸº_Óû²§­h68îvêè¦ FŒ?iÇ&»?³_»f F^÷j“îмIš{Oûc×[iF¥•fäÕÍ«›W7¿S~§üNM ›3vÎØ9cÏÝæÜmÎÝæ­´oW«TqÆ…½O=}ÿïÙ÷Úcê¯{í”û;5>/ï´}rÄštÑ3Û4ëœ9`|³ê£Ží· É¬çÝþS£·îÖ}xÝóŽ?¥Å jG–ßϧϧϧ«ë¬®³ºŽG 0ø·¼›ÿnþ»ï÷|¿çû=;Më4­Ó´ò%R³š}Ð샸wÜ;î½nÛuÛ®ÛÖCGñÍi3§Íœ6W/¾zñÕ‹Kæ ¯8 â€Š^I^I^IV•]UvUYÀ† ÀÅòýÐï‡~?ô¹ÏÕx®FufÔ™ñçǰ OUxªÂS}ÇôÓwÌÜšskÎõá·l2+Î]qîŠsG4ÑdD“vmÛµm×vKEß^£zê5jæÈ™#gŽô¸ü^ð´xÑâE‹×××õÝkt¯ÑuO¨{BÝ6>€U¯Z½jõªWÜrÅ-WÜ2rŸ‘ûŒÜgጅ3Î0çü™–¯^¾zùêÉ•&Wš\é¾ î»à¾ šÖü³æŸmªÐÛõš®×t½fÈKC^òÒœ2sÊÌñwÀ& ºüI&^0ñ‚‰Œk:®é¸¦:Nè8¡£9!—||ÎÇç||θµãÖŽ[ûî]ïÞõî]k¶]³íKð§€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@Ž€r„ #`€!ä GÀ9BÈ0@ŽøSð¸íÆm7n»ò[‚N*”z0@ŽØêpÁ?·Í¸mÆm3®Ì¸2ãÊdë²uÙºlm¶6[›ýšýšýš­ÎVg«³UÙªlU¶2[™­ÌVd+²Ùòly¶<û)û)û)[–-Ë–eK³¥ÙÒìÇìÇìÇlq¶8[œ-Êe‹²ï³ï³ï³…ÙÂlaömömöm6?›ŸÍÏæeó²yÙ7Ù7Ù7Ù×Ù×Ù×ÙWÙWÙWٗٗٗÙçÙçÙçÙìlv6;û,û,û,›•ÍÊfeŸdŸdŸd3³™ÙÌì£ì£ì£ìÃìÃìÃlz6=›ž}}}½Ÿ½Ÿ½Ÿ½—½—½—MɦdS²IÙ¤lR61›˜MÌ&d² Ùøl|6>—ËÆei–fi–dI–dQeQfafyY^–—ÍÆfc³1Ù˜lL6:ÎÞÉÞÉÞÉFf#³‘ÙˆlD6"{+{+{+{3{3{3ž φgòaÙ°ìµìµìµìÕìÕìÕì•ì•ì•lh64š Îgƒ³—³—³—³AÙ lPöböböböBöBöBö|ö|ö|ö\ö\ö\öLöLöLötötötöTöTöTödödödö¯ì_Ù¿²'²'²'²Ç²Ç²Ç²~Y¿¬_öHöHöHÖ7ë›õÍÊÊÊÌÌÌîÏîÏîÏîËîËîËîÍîÍîÍîÎîÎîÎîÊîÊîÊîÈîÈîÈnÏnÏnÏnÍnÍnÍúd}²>ÙÍÙÍÙÍÙ?³fÿÌnÌnÌnÌzg½³ÞÙ Ù Ù ÙõÙõÙõٵٵٵÙ5Ù5Ù5ÙÕÙÕÙÕÙUÙUÙUٕٕٕÙåÙåÙåÙeÙeÙeÙ%Ù%Ù%YϬgÖ3ëžuϺgÏþžý=»(»(»(»0»0»0ë–u˺eËþ–ý-ëšuͺfçeçeçeçdçdçd]².Y—ìììììììÌìÌì̬sÖ9뜑‘‘žžžšššuÊ:e²“³“³“³“²“²“²²²²ã³ã³ã³c³c³c³ŽYǬcÖ>kŸµÏÚeí²vY›¬MÖ&kµÎZgÇdÇdÇd-³–YˬEÖ"k‘5Ïšgͳ£²£²£²fY³¬YÖ4kš5ÍšdM²&ÙáÙáÙáÙaÙaÙaY£¬QÖ(k5Èd‡f‡f‡fõ³úYý¬^V/«—ÕÍêfu³ƒ²ƒ²ƒ²³³³ÚYí¬vv@v@v@¶¶¶V3«™ÕÌöËöËö˪gÕ³êپپپYÕ¬jV5Û;Û;Û;«’Uɪd{e{e{e•²JY¥¬bV1«˜UÈ*d²òYù¬|V.+—•ËvÏvÏvÏvËvËvËvÍvÍvÍvÎvÎvÎvÊvÊvÊvÌvÌvÌvÈvÈvȶ˶˶˶ͶͶÍÊde²2i~šŸæ§kÓµéÚtMº&]“®NW§«Ó_Ò_Ò_Ò•éÊteúsúsúsº<]ž.Oÿ›þ7ýoº,]–.K—¦KÓ¥é’tIº$]œ.N§?¤?¤?¤ß§ß§ß§ß¥ß¥ß¥ß¦ß¦ß¦ Òé‚t^:/—ÎMç¦sÓ¯Ó¯Ó¯Ó9éœtNúeúeúeúEúEúE:;ÎN?K?K?Kg¥³ÒYé'é'é'éÌtf:3ý(ý(ý(‘ÎHg¤ÓÓééôtZ:-–¾Ÿ¾Ÿ¾ŸNM§¦SÓ)é”tJ:9œNN'¦Ó‰é„tB:!ŸŽOǧãÒq鸴@’&i’Fi”Fi˜†i˜æ¥yi^:6›ŽMǤcÒ1éètt::}'}'}'™ŽLG¦#Òéˆô­ô­ô­ôÍôÍôÍtx:<žK‡¥ÃÒ×Ò×Ò×ÒWÓWÓWÓWÒWÒWÒ¡éÐth:8œN_N_N_N¥ƒÒAé‹é‹é‹é é é éóéóéóé³é³é³é3é3é3é€t@: }*}*}*íŸöOû§ÿJÿ•þ+}<}<}<},},},í—öKû¥¤¤¤}Ó¾ißô¡ô¡ô¡ôÁôÁôÁôþôþôþô¾ô¾ô¾ôžôžôžôîôîôîôÎôÎôÎôŽôŽôŽô¶ô¶ô¶ôÖôÖôÖô–ô–ô–ôæôæôæô¦ô¦ô¦ôÆôÆôÆ´WÚ+í•ÞÞÞ^—^—^—^›^›^›þ#ýGúôêôêôêôÊôÊôÊôŠôŠôŠôòôòôòôÒôÒôÒô’ô’ô’´GÚ#í‘vO»§ÝÓ‹Ó‹Ó‹Ó‹Ò‹Ò‹Ò Ò Ò Òni·´[z~z~z~Ú5íšvMÏMÏMÏMÏIÏIÏIÏNÏNÏNÏJÏJÏJ;§ÓÎé_Ó¿¦MOOOOOOOKOKOK;¥ÒNé)é)é)éIéIéIé‰é‰é‰éñéñéñéqéqéqiÇ´cÚ1ívH;¤íÓöiû´mÚ6m›¶IÛ¤mÒcÒcÒcÒVi«´UÚ"m‘¶HNNNJJJLLL›¦MÓ¦ééééáéáéáiã´qÚ8m”6J¥ Ó†iÃôÐôÐôÐôôô´^Z/­—œœœ”””˜˜˜ÖNk§µÓÒÒÒýÓýÓýÓšiÍ´fº_º_º_Z=­žVO÷M÷M÷M«¦UÓªéÞéÞéÞi•´JZ%­œVN+§•ÒJi¥tÏtÏtÏ´BZ!­î‘î‘î‘–KË¥åÒ²iÙ´lº[º[º[ºkºkºkºsºsºsºSºSºSºcºcºcºCºCºCº]º]º]ºmºmºmZ&-“–Iò“ü$?Y›¬MÖ&k’5Éšdu²:Yü’ü’ü’¬LV&+“Ÿ“Ÿ“Ÿ“åÉòdyòßä¿É“eɲdY²4Yš,M~L~L~L'‹“ÅÉ¢dQ²(ù>ù>ù>Y˜,L&ß&ß&ß&ó“ùÉüd^2/™—ÌMæ&s“¯“¯“¯“9ÉœdNòeòeòeòEòEòE2;™ÌN>K>K>Kf%³’YÉ'É'É'ÉÌdf23ù(ù(ù(ù0ù0ù0™žLO¦'$$$ï'ï'ï'ï%ï%ï%S’)É”dR2)™”LL&&“w“w“w“ñÉød|Á‹‚‚¿’8‰“8‰’(‰’ ’ ÉKò’¼ä?É’ÿ$c’1ɘdT2*•¼“¼“¼“¼¼¼ŒHF$#’7“7“7“7’7’7’aɰdXòzòzòzòjòjòjòïäßÉ¿“¡ÉÐdh2$’ I^N^N^N^J^J^J^L^L^L&“É É É ÉsÉsÉsɳɳɳÉÓÉÓÉÓÉ€d@2 y2y2y2éŸôOú'O$O$O$'''ý’~I¿äÑäÑäѤoÒ7é›<œ<œ<œ<˜<˜<˜<<<ܗܗܗܛܛܛÜÜÜܕܕܕܑܑܑܞܞܞܚܚܚôIú$}’›“›“›“&ÿLþ™Ü˜Ü˜Ü˜ôNz'½“’’’ë“ë“ë“k“k“k“k’k’k’«“«“«“«’«’«’+’+’+’˓˓˓K“K“K“K’K’K’I¤GÒ=éžtO.N.N.N.J.J.J.H.H.Hº%Ý’nÉùÉùÉùIפkÒ59797979'9'9'9;9;9;9+9+9+éœtN:'Mþšü59=9=9=9-9-9-é”tJ:%§$§$§$'%'%'%'&'&'&Ç'Ç'Ç'Ç%Ç%Ç%“ŽIǤCÒ!é´KÚ%í’¶IÛ¤mÒ:i´NŽIŽIŽIZ%­’VI‹¤EÒ"9:9:9:9*9*9*929292iš4Mš&G$G$G$‡'‡'‡'“ÆIã¤QÒ(i”4L& “C“C“C“C’C’C’zI½¤^rprprprPrPrPr`r`r`R;©ÔNHHHöOöOöOj&5“šÉ~É~É~Iõ¤zR=Ù7Ù7Ù7©šTMª&{'{'{'U’*I•d¯d¯d¯¤RR)©”TL*&“ I…¤BR>)Ÿ”OÊ%å’rÉîÉîÉîÉnÉnÉnÉ.É.É.ÉÎÉÎÉÎÉ_’¿$IvLvLvL¶O¶O¶O¶K¶K¶K¶I¶I¶IÊ$e’2ñºx]¼.^¯×ƿƿƿƫãÕñêxU¼*^¯ŒWÆ+ãñŠxE¼<^/ŠŠŠ—ÅËâeñ’xI¼$þ1þ1þ1þ!þ!þ!^/ŠÅßÅßÅßÅ ã…ñÂxA¼ ^ÏçÇóã¹ñÜxnüMüMüM<'žω¿Š¿Š¿Š¿ˆ¿ˆ¿ˆ????‹?‹?‹????‰?‰?‰?Ž?Ž?Ž?Š?Š?ŠgÄ3âñôxz<=žO‹§ÅïÇïÇïÇSã©ñÔxJ<%žOŽ'Ç“ã‰ñÄxb,>,>,n7ŒÆ âqƒøøø¸~\?®×ëÆuãããã:q¸N|@|@|@\+®׊kÆ5ãšq¸F\#®W«ÇÕâjqµ¸j\5®ïïïW‰«ÄUâÊqå¸r\)®WŠ÷Œ÷Œ÷Œ+Äâ ñññq¹¸\\..—ËÆ»Å»Å»Å»Æ»Æ»Æ;Ç;Ç;Ç;Å;Å;Å;Æ;Æ;Æ;Ä;Ä;ÄÛÅÛÅÛÅÛÆÛÆÛÆeâ2q™(?Êò£µÑÚhm´&Z­‰VG«£ÕÑ/Ñ/Ñ/ÑÊhe´2Z­ˆVDË£åÑòè§è§è§hY´,Z-‰–DK¢£££¢¢¢EÑ¢hQô]ô]ô]´0Z-ŒD ¢Ñüh~4?šÍæFßDßDßDs¢9Ñœè«è«è«è‹è‹è‹èóèóèóè³è³è³èÓèÓèÓè“è“è“èãèãèãè£è£è£hF4#šM¦GÓ£iÑ´hZô~ô~ô~45šM¦DS¢)Ñähr49šMŒ&F¢ Ñ„h|4>‹ÆEã ^þük?*FaFyQ^”ÆFc£1јhL4:ŽÞ‰Þ‰Þ‰ÞŽÞŽÞŽFD#¢ћћћÑÑÑѰhX4,z=z=z=z5z5z5úwôïèßÑÐhh44 ‰†D/G/G/G/E/E/E/F/F/F£ÑÀèùèùèùè¹è¹è¹è™è™è™èéèéèéè©è©è©èÉèÉèÉè_Ñ¿¢EODODODEEEý¢~Q¿è‘è‘葨oÔ7ê======ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝõ‰úD}¢[¢[¢[¢FÿŒþÝÝÝõŽzG½£^Q¯¨Wt}t}t}t]t]t]tMtMtMôèÑ?¢«¢«¢«¢+£+£+£Ë£Ë£Ë£Ë¢Ë¢Ë¢K¢K¢K¢žQϨgÔ=êuþý=ú{tQtQtQtatataÔ-êu‹þý-ú[Ô5êu΋΋΋ΉΉΉºD]¢.ÑYÑYÑYљљљÑ_£¿FΈΈΈN‹N‹N‹:E¢NÑ)Ñ)Ñ)ÑIÑIÑIщщщÑñÑñÑñÑqÑqÑqQǨcÔ1êuˆ:Dí¢vQ»¨mÔ6jµŽZG­£c¢c¢c¢–Q˨eÔ"jµˆšGÍ£æÑQÑQÑQQ³¨YÔ,j5šFM¢&Q“èðèðèðè°è°è°¨QÔ(j5ˆD ¢C£C£C£úQý¨~T/ªÕ‹êFu£ºÑÑÑQ¨NT': : : ªÕŠjE5£šQͨFT#ªUªGÕ£jQµ¨ZT5ªUö‰ö‰ö‰ªDU¢*Qå¨rT9ªUŠ*E{F{F{F¢ Q…hhh¨\T.*•ÊFe£Ý¢Ý¢Ý¢]£]£]££££¢¢¢£££¢¢¢í¢í¢í¢m¢m¢m¢2Q™¨L¸.\® ׆kõá¯á¯á¯áêpu¸:\® W…+ÕáÊpE¸"\.—‡ËߟŸÂeá²pY¸$\.    …‹ÂEáwáwáwáÂpa¸0\.„óÃùáüpn87œ~~~Î ç„sÂ/Ã/Ã/Ã/Â/Â/ÂÙáìpvøYøYøY8+œÎ ? ? ? g†3ÙáGáGáGá‡á‡á‡áôpz8=ü ü ü |?|?|?|/|/|/œN §„“ÂIá¤pb81œ¾¾¾ŽLJã ÿ ¶ûÿ’ aáØpl86üOøŸð?áèpt8:Ž G…#ÑáÈðíðíðíð­ð­ð­ðÍðÍðÍpx8< ‡…ÃÂ×Â×Â×ÂWÃWÃWÃWÂWÂW¡áÐph88___…ƒÂAáÀp`80|!|!|!|.|.|.|6|6|6|:|:|:„O†O†O†ýÃþaÿð‰ð‰ð‰ðñðñðñ°_Ø/ì>>>ö û†}ÇÇÇÃÃÃÃÂÂÂûÂûÂûÂ{Ã{Ã{ûûûÃ;Ã;Ã;Ã;Â;Â;ÂÛÂÛÂÛÂ[Ã[Ã[Ã[Â[Â[›ÛÛۛ›ÂÃÃÃ^a¯°WxCxCxCx]x]x]xmxmxmøðá?«ëëÃ+Ã+Ã+Ã+Â+Â+ÂËÂËÂËÂKÃKÃKÞaϰgØ=ìvÿþ=ü{xQxQxQxaxaxaØ-ìv ÿþ-ü[Ø5ìv Ï Ï Ï Ï Ï Ï »„]Â.áYáYáYá™á™á™á_ÿ† ÏÏÏO O O O O O O O O O O O O O O  ;†ÃŽa‡°CØ!l¶ Û…möaÛ°uØ:l¶ [†-Ãa‹°EØ>>f³ƒÙÁ§Á§Á§Á¬`V0+ø8ø8ø8ø(ø(ø(˜ÌfÓƒéÁô`Z0-˜¼¼¼L ¦Sƒ)Á”`J09˜L&ƒ‰Á„`B0!ŒÆã‚qÁ¸ Ò â â ¢ äyA^ðŸà?Á‚1Á˜`L0*Œ Þ Þ Þ ÞÞÞF#‚Á›Á›Á›ÁÁÁÁ°`X0,x=x=x=x5x5x5x%x%x% †ƒƒÁÁààåàåàå`P0(¼¼¼¼¼¼<<<<<<<<< ‚§‚§‚§‚þAÿ ðDðDðDðxðxðxÐ/èô    ú}ƒ¾ÁÃÁÃÁÃÁƒÁƒÁƒÁÁÁÁ}Á}Á}Á½Á½Á½ÁÝÁÝÁÝÁ]Á]Á]ÁÁÁÁmÁmÁmÁ­Á­Á­Á-Á-Á-ÁÍÁÍÁÍÁMÁMÁMÁÁÁA¯ WÐ+¸!¸!¸!¸.¸.¸.¸6¸6¸6øGðàÁÕÁÕÁÕÁ•Á•Á•ÁåÁåÁåÁeÁeÁeÁ%Á%Á%AÏ gÐ3ètºþü=¸(¸(¸(¸0¸0¸0èt º þü-èt ºççççççggggggƒÎAçà¯Á_ƒ¿§§§§§§‚NA§à”à”à”à¤à¤à¤àÄàÄàÄàøàøàøàØàØàØ cÐ1è´ÚíƒvA» ]Ð&h´ Z­ƒÖA« UÐ*h´ ZGGG̓æAóàÈàÈàÈ YÐ,h4ƒFA£ QÐ0h4       êõ‚zÁÁÁÁÁÁÁAÁAÁAÁÁÁAí vP;¨Ô jûûû5‚A`¿`¿`¿ ZP-¨ìììììììììT*•ƒ½‚½‚½‚=ƒ=ƒ=ƒ A… B°G°G°GP.(” Êeƒ²ÁnÁnÁnÁ®Á®Á®ÁÎÁÎÁÎÁNÁNÁNÁŽÁŽÁŽÁÁÁÁvÁvÁvÁ¶Á¶Á¶A™ LP&o]Þº¼uykóÖæ­Íû5ï×¼_óVç­Î[·*oUÞª¼•y+óVæ­È[‘·"oyÞò¼åy?åý”÷SÞ²¼eyËò–ä-É[’·8oqÞâ¼ò~Èû!ïû¼ïó¾Ïû.ﻼïò¾Íû6ïÛ¼y òäÍË›—7/onÞܼ¹y_ç}÷uÞœ¼9ysò¾Ìû2ï˼Ïó>ÏûÎû8ïã¼™y3ófæÍÈ›‘7#ïüó>Ì›–7-oZÞyä}75ojÞÔ¼)ySò¦äMΛœ79obÞļ‰yò&äMÈŸ7>o|Þ¸¼qyã Ží Žë ^¶ ÀêØJB€6Xr„,9B€€! À@Ž€` GÀ0#`Ȱ äXr„,9B€€! À@Ž€` GÀ0#`Ȱ äXr„,9B€€! À@Ž€` GÀ0#`Ȱ äXr„,9B€€! À@Ž€` GÀ0#`Ȱ äXr„,9B€€! À@Ž€` GÀ0#`Ȱ äXr„,9B€€! À@Ž€`þŸÎ/v~±ó‹å‹ÐvZÛim§m¾k¿à‹ ¾¸à‹¢®ý€ì€ì€,¿l~Ùü²›ãÚýîÑïý®¨k¯8£âŒŠ3–\>rùÈ ÿžòdln° ÀÿóØäÇ&?6¹¨x¹ç¸=Çí9nå=+ïYyÏ&¾â²ùeóËÖú°Ö‡µ>Üp@>oú¼éó6Ç}?·ã¹ÏíXÔõ¶«ý[íß*Î,Xàÿ™ößiÿöß 'Ìw¼;àÝ›öz ²nùbè»Wß½úîµ9bj—ë¼\ç墮÷¶ïoûþ¶ï‹s½0À–% À@)Ö.ÙÐÅüü^몭«¶®Zr5ÊÕ(÷g&ØGV=²ê‘UÅ À'{â±'»i¯}ÎOs~šóÓ†¯7Ü?Ü?Ü_(ù`(ÅĶ͡ËÅ].îrqQ³zf¿3ûÙoÓÎp§];íÚi×âà‚¡.Îwñß«^íôj§ _㊗W¼¼âek ä€` Û6‡þ÷¸ÿÃEÍjÍ25ËÔ,Sð­½]ß(\¹åþ•û—/¶QŽzpÔƒ›êþ^7ìºa× +êº: ê0¨Ã k ´€` Û6‡F}4ê£QžÛÏÎýìÜÏÎÝøëZÿ£•‹ïÚðÚðÚpS=Ê­ömµo«}‹º®Ûgß>ûöÙÅ¿.k`Ë€` Û6‹²ùeóËîÿõþ_ïÿuQs;hÒ Iƒ&mü<ßÜäæ&77ù÷/«¹¬æ²‚ïr.üÿ6ZÒhI£%í?ÿëçýü¯Š3*Ψ8£¨{UŒ*F`€ÒB€€RLlÛ|ºÖíZ·kÝ¢æö²—u¸¬ÃÆÏóÑÇ}ÜÑÇþýÝ~èöC·î»ú¾«ï»º¨Û0g›9ÛÌÙf£öÈ£Ç7zS}û¯5 PÀ0PЉm›ÏÓ§>}êÓ§5·‡§‡§‡§3Ïߟóý9ߟ³Ç6{l³Ç6…ÿ‹³^œõ⬠?¾Ï6~¶ñ³7æ6<\ûáÚ×ÞTßþkM”° %ÚÄ›~ûò{Ϻj몭«¶ª×ª^«zýÞ?»¶þÚúkë'ó“ùÉük¦^3õš©íßjÿVû·i~HóCšï5x¯Á{ ®vtµ£«ݰlò Ëž×ì¼fç5Ðm@·Ýþ;î¿ãþ;nóÍÏæ‹m%aæ·¬Y7κqÖžá«ÿXýÇêì÷ÿûüŸÿïó‹úÍß|ôÍGß|ôÿ>ºLÍ25Ëþ™.w¹¸ËÅóXŸuÇYwœuGQ·áŽ÷îxïŽ÷~ïïÿckrú¼éó¦Ïëu[¯ÛzÝvÌÚcÖ³¶n¯º½êöª4²ÒÈJ# fàÈë¼þÈë¯Úùª¯Ú¹àƒ©ÿœ•P’ÿø½ÏÓeß,ûfÙ7M~lòc“O©zJÕSª6ç°9‡Í©Ü¿rÿÊýk”«Q®F¹¦O4}¢éWV¹²Ê•U ¾£Ú¿‰ t€`(Ñ~oFúî’ï.ùî’‚pÕvZÛim§þ&×â_û뇽~Øë‡„¨òHõCªRý‚ÿ=Èü!ó‡lÚyøc¶ÔÌd³Â¿ó€ì€ì€¬ oÚõsñ¿qñ…¯±à}·sÇÏ?wü†Cí·k¿]ûí¢fcÔƒ£õà»m=¯éyMÏk ÿ΂ ·þOþí׿ýú·_ ÿä¾'ì{¾'üz¯'üz» µ>¬õa­‹ºwñöñöñö›//)·¤Ü’rŽÐÖæ«6_µùjó½·¸äü °ñÏÓ‚è[µKÕ.U»üÞ{±þwQû·”|° %ZñóÆ£ß=úݣ߼¯¨?upƒ{ÜcÃ׸tÙÒeK—¼7nÓf×õÓ˦š‡’€‹?ó}|ìãc‹ú™w¼;àÝ›j嬼gå=+ï)*wpæ gžpfq~OÁwñu›oýåÖ_nýå=¦EeÅ‚÷˜®ÿ;M4iФ¢nÃøWÆ¿2þ•ß{í_4ø¢Á 6üí¿?ÿëçýü¯M»V ~¦àÝÕõ¯|ýã7~=¯Y7~å”Ì¿þØó´à?ª¸6¼6¼6ÜøÛ_ðþ`J>X€mÃy£à½Ýíþh÷G‹06€ºøÐҶ¬×²^Ëzå7³§®zꪧ®ÚøyØRøÍüúk\XïôþGïlª¼ôÆÏoüüÆÏE]×À…\Xœëzî€çx~Ïq×wÝq×ýÞÛ¼á—~{ÌÛcÞ³þï\ÐAÿý‹úùÛgß>ûöÙ¿÷6 yhÈCC*êwv|¼ããß´ÏÙ?´ø¡Å-TkP­AµM»ªOo<½ñôY?%ùo€?ö<]ÿ?PØT > Z€’L€ DÛpÞ¸ä¢K.ºä¢â§‹¢pÁw|õÅëë´k§];í:ô–¡· ½eÎOs~šóSÁ·Û|˜í{­Þkõ^«‚A.ê{[×ÿâwž~çéwž.Î<œ¿÷o_6|k‹úS[væ ¾áµðÏ|£ê¦ KßÃZøZ Þ©\ð.ÏâüžÙ'Í>iöIEݯ‚oN]Ýeu—Õ]ŠÛú?ÜÿáþþmæV˜[anÁ·´þSÍînvw³» ÿ©cv?f÷cvÿ½óvõ¢«]½hÓ~ûï†WNcï<öÎcï\ÿŸ¹ï“û Þy\🠼õÉ[Ÿ¼õIÁ‡Šg¥¼[ú÷Þæ’ÿ7Àïí Lx`Â{ü´ÇO{ü´þ?oµo«}[í;|Ïá{ßsaï…½ö.XoÙ„lBöÿiïÎê*÷ÿÿ«Õ)í„á‚„’¨(†¢¢29#š‰™C9‚æˆj¦–%ê)ÔœÓÈpD@ø8! ((JäX
¨à€("ûûÇ}~×Åù-Ön{³÷^<ëºî«ëÝû^ïu³\÷ýb­•ô…Ï>_øhRgñ ü &``À ÉÅ¡uCë†Ö• ä¦^zuêÕØ ±b'œrþÉù'·¢oEߊQô[–¾¹ôÍ¥oªÀ¬xÛ«æ÷ÑæUË«–WM}ˆRò ¬Ú­OÅcTÝU^îñ·*Òó'‰OŸ$ŠþÈ…âeýÌf ›-l¶P®Ï"öÓüÓ>ÞûñÞ÷J?Grkö€Ùf‹ŵš÷¡Ã ƒ: ’}ûïÓ¸§qOuý¸rñ«Ù!Ù!Ù!ÿð]&*•‰x‹­úÏô_î¿ÜyY{®¼3@«–­Z¶jYò÷ë‹_VPÿê9.|2í“iŸLã>`À0MýýsÒÀ^«s­Îµ2ÄŸYáYáYárï¯m0³ÁÌ3Ón¥ÝJ»UΨÃDe¢2Q¥Ì¿7ÿÞü{ºÛ ³òêß>[‘{Oqw¦ÜçGíˆÚµ£¬Ÿ?êØ¨c£ŽÉ}fÉw«ÿñèì†ãŽk8Nú9ßÿòý/ßÿ"÷9Gß?úþÑ÷åú°Óo§ßN?MöEäÒ{C+þö_MƤÐⓟ´øD„Öe=Ÿ½üìåg/å>Y¼YYóOSö@÷O‹±§ù·ø6÷mîÛ¼"ïS /ÀÀ€AÓ$ÞpT9ªUâq¦e Q^pxÁa¹O333¯x˜ú"ðEà‹@¹o±¶²¶²¶2–X[•—»µâo•»¿V<’·¬kJ¾3Xj˜ý0ûaöšô91&1&1Fýc{å>GÜE]?¤~Hýéß ø&à›€o4éCÉ»{åѬë‘#A\¾£\òÉr6g€’’‡&MZÖÏ/ù«¯3€ÊDL 4Mâ’fÕü“ÅýpM4=Ðô€ô3Ûä¶Ém“+Þ ª­}‰|#òÈ7äöâ÷ ¿_øý‚vëc˜•Ä;_å>Y¼y·¬ŸùÐê¡ÕC+MI?S<žº|Õ(y³”Ý»-v[4ùœ’÷7—dÙ˲—e/1&ÕBÿ¿ûÿÝÿoÙ>˜¨LT&©|É@T#G<šX“~ʹ2äÊ+C*>ò«Â@¼º|½½ê~Õýª»îÎ0t‡˜0hº‹7JÞm)2/d^È<í†â.@¹Çÿ®¼vòÚÉeýF}À©¼pyÖåY—giò¦aÍ?ó×ýú¯_ÿ%÷™§¿8ýÅé/*Rñàb¹ÏϬžY=³ºúOð¸æqÍ£”$yзƒ¾ô­&}X¹k宕»äú~2ýdúIõŸ0 n@Ü€8]¼ýW“‘3ïżó^TäóK>ʸ"#¿*œ–|´ä£%•o/´Ug•˜0hêãõïLUoé›Kß\ú¦všª‰Ó{Lï1]ú%ßlª­úfåKj·¹Ýæv›¥Ÿßõaׇ]–õóû´ïÓ¾OûRUmâhâhRñcWò1ËRÛ'mŸ´}’\ŸóªåUË«&÷æÝ5s×Ì]3W“ýUœ/}¾ôùÒ粟c¢2Q™4®Ý¸vãÚÒ¿keeU°°`aÁBÝœŠÜ5®Ý‘_ÎyÔ¶®Ï0t‡˜0hêã‡ø‹ñã/–/ŠødÚ'Ó>™&÷ɹµskçÖÖÅ•|_lIÞû¼÷yïÓn} ³ò%©ë­è[Ñ·¢5ùñb¹xU[qõ–[vnÙ)×Û)9Sr¦äÈ}Kä³Èg‘ÏäþîŸãÿÿçxÍ{(w/²osßæ¾Íå>§ä·H‰`R×?³™3g>Öõ·p(cë·Î*00`Ðþ!LÒà¡»rÜÆºu[Ç`ˆþh·>†Yù’Ä#‹å¾Eó‡â®þqõ«”ûœ’o3­HooüqãÈ}K‡Au$÷-“kN®9¹¦ôoÙÛÛ—µ'\&¸Lp‘»‹7Kþ–üRÞI¼éô¦Ó›NËõÿ»Ýßíþn·®GÎãôÇéÓu}fà d…g…g…ë·Î*00`ÐÔÇyòå=*ß'7hÐ<ÀpâŸV-[µlÕR»õ1ÌÊK9ªUŽ¥|cïî½»÷î®É¾x÷:îu\ú žç=Ï{ž×î˜lݨu£Ö¤ß%î?~tãÑG74ÿ[ãF5nTYûùFä‘oÈØ ±b'HÿÖÄ&~0ñ¹¿u<ëxÖñ,?œÙDe¢2Ñõ™3€ðªå«–¯Zê·Î*00`Ðt&5×p\Ãq†ÿØ<²ydóHËõ1ÈÊKÍ{kÞ[óÞ’~‹éMÓ›¦7´zÐêA+¹¿{ýæõ›×oÊõsÝçë>_÷¹vê/|¾ðùÂGî´9ÒæH›’þïÆ7þ»±ÜŸßé·Óo§_Y{(Þ(,ê#ýÌa3Âf„I?Óe¥ËJ—•º{û¯®Ç¤v¿…3€áMÚEL 4ÝÅ"ô2œøGôÇpêS™ÁOªMªMªÜw‰ËýÝк¡uCëJÿ–YºYºYúýN÷;Ýï¤Ý>oŸ´}ÒöIr½•¾oxƒÓ§ N¥Ü1\ýÝêïV¿÷é½Oï}Z¾žÈÝ÷ì”æ”æ”V²âŽmñÒ?ßsLÏ1=ÇþϬv¿…3€¡h 00`Ðt?4Ih’Ð$A­z¶êÙªª\ŸÊ~:8tpè ý®¿ ümàorßÛ±GÇ{Hÿ–ÿrÿåþËuÑOñ^U¹ÊôµèkÑ×¢do‡tÒmH7éŸ=¯HO†. ]*×qo´ø“â¾dÍCkÃ9ÿΆyPqÀÀ€AÓ]üÐ6¾m|ÛxM³ªYŸÊ~fœ5rÖHéwÕÝZwkÝ­OŸ$>I,ùç¯ ¹2äʹFØFØFØê®·mrÛä¶É•~¯Å`‹ÁƒÅ»WÅfmemem%ý“sœç8Ïq®H“‡&M*W0ó0ó0siÄ+1þbüŪs0Ìó€Š#& šîâ‡^þ½ü{ùË}òYdzŽg«r}*?ø9ýÅé/N¡>Ð-ùçåîµìeÙ˲—¶Þh+gRýIõ'Õ—ëmÚ­´[i·R|S|S|åþÌÑ÷¾ôýŠÔSÌk7®Ý¸¶ôóKÞyìWäWäW¤ë·ÿVæÈ©ø·p0Ìó€Š#& šî⇒÷_JE>‹|ù¬*×GÁ‰ÊDeÒla³…ÍJ¿ñ³—Ÿ½üìeÉo—»ƒsüÇã?ÿ±®+¿«ë®®»ºÊÕgÝçë>_÷¹Üÿ+îiÖVì:¼ÁðÃH¿¥QÇFu,\8¸p°øo]¿ý·2GNÅ¿…3€žT00`Ðt?ì»´ïÒ¾KrŸØ>Ø>¸¸Qq£âF•3>÷;ïwÞ/í‰Ý»-v[äFWhÝк¡uµUI+ÊU¬y@ó€ærÿoÉjþϬv¿…3€!ŸT00`Ðt?ŒøkÄ_#þ’ûü€o¾ ø¦âß•W-¯Z^5+++é·x÷:îuÜÐ꣯àG¼×¶IB“„& Òï7jܨq£äzU2®œñ9õêÔ«S¯Ö)£ó5Î×8_C»ýl·¹Ýæv›5ïƒx µ¸£Ú¸~fµû-œ ó< "€ €ƒ¦ëøáÔìS³OÍVÿ-â»åûü—½^özÙ«Oû>íû´—ûüÝîþp÷‡åÛ#õ=¯È½°ú ~&ל\srMé÷Êݯ)\ØvaÛ…m•ME¾ùFäšÇ®6lÙ<ÒÅ=Ê3§Îœ:sªæ=éåßË¿—¿1þÌj÷[”}0–£ @»€ €ƒV9ñÃç÷?¿ÿù}¹oy÷ñ»ß}üßo4Q™¨L4ùÌÜÚ¹µskVë³ZŸÕ’ûd—•.+]Vu,êXÔQõ¹÷é½Oï}jÈ•—sÌì˜Ù13ÍãÌŽ=:öèØ£òÇçýN÷;Ýï$á«I??{ù­ZÝ­J«IDATÙËÏ^ê¢'‡»îr¸‹æÓÅÛ+säh÷[”z0–£ @»€ €ƒV9ñÃC«‡V­4‰Íăv×N^;yíä‹k/®½¸öIâ“Ä'‰"LZ’´$iÉmhûC[k+k+kÙÏ4K7K7K?gzÎôœiEöEý±Ó#¦GLŸ}ø"ðE`VxVxV¸áT^ŽˆÄlªÙT³©¦ÉqY~eù•åWôJµŸÑ~FûšôSÜKª‹~,,XX°°Þêz«ë­Ö¤'‰1‰1‰1ÀÆ~  EL ´ÊŒJ¾™UwÄÝ„Û'mŸ´}RÅ÷Âm¬ÛX·±e탡U^ÎøÇ<þcMêy{õíÕ·Wë+”š6#lF˜&•¿ñÇ?nü¡»~úùùéëí¿•9rtñ-Æx  EL ´Ê.Ϻ<ëò,]?VVV‘Ï"ŸE>ÓVo¿òþÊû+o¥Àÿ7ìÿ†ýß0õ=ñ{Ûïm¿·õ;J÷ŸÚjÿ)õýü0óÃÌ3uÝ“Ÿ’Jþ)Y}Ozwïݽwwcÿ™ÕÝ·×€€00`Ðô?ˆêŠoi0³ÁÌ3Ëùˆ½ŽL™:2U<~Y»=/ÙOåÀ…ƒ ±™\O¶®ßº~ëzýÆQâm¯êßt6èlÐY]÷óÒ¢K‹.-RìBæ…Ì ™§»ž{l\g`RÀÀþxǧ˜;Œ:6êØ¨cî-Ü[¸·ø`Õ«>X%ÞÂ+Þ÷é¨rT9ª†tÒmH·UVmXµ¡rM,‚Rñ-Ýt_Ð}Aó€æÍÄÃ~[ölÙ³eOŸM>›|6}Vë³ZŸÕ2®ú³f?Ì^:«R?¤~ˆ8:Ʋ/†›à)é %('C¾7N!÷ꙨLT&­Z¶jÙª¥tÄ]•ŒCp€’€ €À@Å_Œ¿Q.`+ù†`j€@L *0(0(0H:ƒ³ýÝöwÛß‹:u,êH•(‰˜ Nþ–ü-ù[,[ ¶,Á}¹ôË¥_.åÞ_¤€ €ÀàüZðkÁ¯rNµIµIµ!@Š˜ ÈÓ¨§QO£Úä¶Ém“+»¹·poáÞ‚* ‡˜*•x¼ó©Ù§fŸš}ïÓ{ŸÞûôÙªg«ž­JñMñMñí9¦ç˜žcäîýÝwiߥ}—¸÷9ÀÀP©®Õ¹VçZ²rYé²Òe¥ÊDe¢2¡†È!&€JUָ馚Èè“Ñ'£÷þ 00T*Í`GGG“ Û.l»°èM@¥z’ø$ñIbÐÙ ³AgEÄ[ou½ÕõVÛÛÛû½í÷¶ßÛïl¼³ñNQÇ¢ŽE‰~Ð00„’s4ª@ùP`` AL @!€ €(00… & ÀÀ‚˜€BP`` AL @!€ €(00… & ÀÀ‚˜€BP`` AL @!€ €(00… & ÀÀ‚˜€BP`` AL @!€ €(00… & ÀÀ‚˜€BP`` AL @!€ €(00… þ¯„o'õ´%éi;¥§í´ž¶äJßRô´ÑÓvVO[ªž¶szÚÎëiKÓÓö»ž¶t=mTúvAOÛE=m—ô´]ÖÓö§ž¶+zÚ2ô´]ÕÓö—ž¶¿õ´]ÓÓ–YéÛu=m7ô´ÝÔÓvKO[–ž¶ÛzÚ²õ´ÝÑÓvWOÛ==m9zÚîëi{PéÛC=m¹zÚòô´=ÒÓöXOÛ=mOõ´åëi{¦§­@OÛs=m/ô´êi{Yé[‘ž¶WzÚŠõ´©ô³%VÓÓV]O[ =m¯éj#Å"…Pl,p€TŠ €súæôÍ雨³í„ž6ÞIÌÛˆy±á¿¸ê¼‡¸ê¼¸ê¼{ø=mUçÝÃUç­ÃUç}ÃUçMücXyoÖ×;†«ÎÛ…y¯0oæ]¼E˜·ëë-ÂUçýÁ¼9˜wó¶`ÞÌ{‚õõž`ÞÌ» þ­À9ãrÆåŒSìÀ] … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … ®$§FœqjD¢K¢K¢KR·¤nIݨ ”äâ§?½øiâ«ÄW‰¯N~wò»“ßÕ(ªQTƒÊèKÒ¤…I ^$¼Hx!þ›š@IÎ7;ßì|³ÄC‰‡S|¾ø.jŽÊôxâã‰'ž¸~âú‰ëßÞýöî·wããã+>ÂMŸ›>7}>òÖÈ[#oí겫ˮ.7Ülp³5POd"§™…È/*~…&ò‘­ˆœEd.ÔÐBÜÛvoÛ½m¿4þ¥ñ/íÒíÒíÒëT:Óµ¦kM׆ƆƆÆÞ´¹isÓ†ãmÉ’?$È~çýÎû½<½<½<ëèIðÁàƒÁ/D]ˆºÅqUYvÍìšÙ5Wå¬ÊY•cbbRù×fâ{ED8.ЖGmx´a×—»¾Üõ¥[¤[¤[¤¾æ óÂæ…Í »òå•/¯|ÉqU™ÈD!òˆÊ¿6ù‹ÈbD.cøu“îEâk‰¯%¾Æˆ‚~—æ¤ê¤êdj`j`j ßy¿ó~çë$×s®ç\ÏÅÍŒ›7³¸Fqb·‹2ÈôÈôÈô˜ò`ʃ) s„›­3[g¶nûñíÇ·nòÜä¹ G (–¥ÊRe™´2ieÒJïêÞÕ½«æšè›è§è3‡š»w%îJÜXŸ±>c} s„[¿´~iýroôÞè½Ñ…³ gÎæ¨¥™‚ÈDÖ`˜Wh"£yÈn ­’À0LÀÿãLð™à3ÁN£œF9*ßÉÈñœ¥G½:uj°zŒÇŒV›#Ó{=l;òè‰~Ö.‹ö÷ÏwÝ÷y¿—ÛûOôù—ó;ë­½\[GMßé|ûƒ7:87¶iPΰÙ<Ý<Ý<ý°ýaûÃö*?•ŸÊ£ ©ÌC™‡2 ©>¤úr.)6>ÐÈÜ,}äÌ~½w©å´.-‹wõ]ìç4ôpÿU—ÚÅ笯î:ó¸ÿº®V»/¿í|ù·[ßßÞ³ÛÆ[Ñï —˜„üL\£Ä‹ÿ]üñçÅß-ß÷Š>‹þ‹}áBêÊ¢+‹®,ò-ð-ð-(ç] ¶6ÍßÛv€»mÜòe3Z:ü°û%󜢎4Yý•K‹„Vë]CŽ›­[êZ;zÂòÎ῞ïá÷Õo£_k¶Æ{Pû8ˆ™ƒlÿeû/Û)šP4¡hG=?•ŸÊOä"S(ß5’È2D®!2‘wˆìCä "ùˆÈJDn"2”ò}¯ÈnDŽc8E%†a"Vݸp;`@Ì€˜1šŸh<¿¶u±Ø³ír÷üWÞ4ìhç³*U` ¶ÚûÇF¸w}°ÿÞÇÚÞeÿ«uÞìÕγg;Ï?íÿ´ÿÓžã‹üFùòÍ9<çðœÃš¢¦*›öæo¬Z<³{«©—U»»wš¡R¥¤øøh«-œ4Éûõã ×­t­óŸAý›<,ë?öq6q6q<¥L›L›LïTïTïTͯzÚ-j´?ⵞ×â²ÿ, ËyíÎAÄgŠÏßU†;ƒS½S½SÅ~q|‘———=9rrää2<ØÙñ]û†õz­¿öuÇÖׯNÜSàÞI»sgc{xY^ºú-—Z£¢ú÷²u,ï\û™û™û¶?mšY60J"/ÙæWA"›9…È,´;ÙŠÈYDæR†¾Å ˆ#òýÖ–†©ªÀsUsUs7]Ýtu“F¿eoúU‚:ë·¤w»Ðæö«¬€ÞZŽ{5o„÷ìÜ¥eBøºÿѤç‹->¶øXÑ[Eo½Åp¯j®&\M(Ã}$?Ôr£eßÜkÇ<6jw©EóöÔ˜_{µî×Û³¡ÕYMú<Y¹#xm«.ùÇNy>Ó×$Þîç±®}¼ç·Ï´´Õ¤Ï7LÜ0qC¾w¾w¾7G2‘ ˆŒ@“ë‘;ˆ B_ ˆÈ_D#rMz.²‘ûT~ €a˜ª\œW˜W˜Wèææ÷‹Í|Ô3_œØý£–®§Šcò¼‹ôuÊ“kÓî êÜáª×fÛÍÔïK‹‘-F¶y+íVÚ­4½ÂÿQ\ô¸èñüøùñóã5ù§qgð¢mN/ÆÜâuZ_ .ríÍZQ¶ëÒD£»OR2R2R2ÀÐä Ê”3È}šû4÷iÿð,ŸX«éõϤôû8Åm¸jw`/Ÿ¶4ÙØË§­è›è§ú}û+ö1 l/½8ôâÐTŸ©>S5z³ï1K·8·y¹îÔ§ÞÝ mò׉½¯¹/ö²Ïy›,Möå‚éÓ ¦Œ`hD rõ×3"_Yƒ¡% "—ÈkþámÁa~a~a"ªÌjÃ0U¡8£qFãŒÆšLá¢þìsÖù;C;Ù©o“Ò|Ý~¥YýwÛÔù‡ßåI I I aè+OÞÁ¼ƒy;GwŽî­~ ¬r™ùf«Ï^}sú²w´¡-¸Èµ7ÚÛÃý[·á–ÝÕïÝoþ¿ùÿæÏx† íÏ´?ÓþÔdrÌ®Ÿ§K˜qÍADŸ5Ù;QƃòÜ ½z/´E^‹¼yêÇÀÆó³TóS|ìer©ïÎüNæÎ6Ô_«~ïö$íIÚ“Äx†@¬ÿ«¿z9‚ÈŒk"²Mæ "ªœšÃ0U‰ø´Ëi—Ó.êO“^8%5=ü4~´›çaã:å•l‹XyÏYòܽmËÚê÷7òväíÈÛü(CÖÀ¬YÕñÎ*çe ³n-‰öëbj, .rmdï&µõR¿¿ L˜.0URRb„€ÊwdÑ G6¨¿bùú“öï7{ù¢ö˜?¼¢Œw"ú/öEýþŠš06”á/³¿Ìþ2û‡;0žz\´Š½·þPí®SŒx’Ÿ’àãµùÑ‚ÚüÃs‰V4^ÑxEcÆÐ±æ¯þŠEd"G0Þ9ˆÈqD¦£~E6¤ëÊÃ0)<Ž·Š·Š·R ˆé{´]}ã=ÙɵgÝ~ë–ª~ßÃk‡×¯Íñº~ÿúýë÷Õåå#f¼éðê|ÊVŸÆý–l³Òöí2¤•Ó[ê^“Û÷Ö3¬gX«f©f©f1Z@刪U#ª†ú+´Ïþ)®?(o"öëž·T#ªFT Ɖñº¼òòÊË+Õå°Çó6;.WÒìã¿Ï%únï:÷è†ÃëÛ˜Ž’Û÷…a Æ1N@eëüê¯ÐD^ ¼9ˆÈwÔï»È‰tW`&ÅÀÉÉÉêìÿ â>]y§¼’m΅ϳ»Æ8Ä[X×=)û¸ª{6îÙȃq¹ÓúNë;­ÿáA‚—Ö®uIRÞ²KɶÐ%ÉÛëùØóbloÉÕaNÄœˆ9Œ kêïú­?À¬É»³,†îâ¤ì9ˆØG±¿Ü ¬$×–\[rm‰ú9HòµßÜܼ•=y6*±›WÃçùŒ¶Ž“«CèŽÐ¡;3@×ÄÚ¾Ü5‰ÈDF ì9ˆÈzþáJÕ#Ù#ÙCG†IðÕ%W—\•”6~­n5³÷·h×õ޲Oy%Û‚Ð1Þ^ÃzÅÛõj$ûûø'Žž8zâ(?†ïië§­Ÿ¶n0¾ÁøãåŽfzÁöA?Rö²Ëÿ´?¤Lõi¹`Öx»æÃäj²¦pMášBÆÐõïúm7ÛjXý£wŒšêéYuæ bžón`c÷ààƒƒþÃ/X÷ wŸ\uæ ÅÕ’;x§OÚÃn¨\M¶ûn÷ÝîËøº Öóå®CD rª3¹È€ä*#ò#í `&EÀW<^ñx…ܶµ¯ù³oU™îq³êœòJ¶…ÇÎñ¶ì=Úna£}rUºz#ôF(?†©8¿8¿8¿ßê~«û­–;‚—¯ínÝiRŠ~%í÷Ë¿8Ýü’ì]ѾÇ|±´&gPΠœAê£ßgß¾áõ~Õœƒˆ}W‹2– Sш¢E#ܬݬݬeg‘ft^TEç ûS–ú8O›Í}šû4¹>Wµ»~Õß ,÷PhQCQOÆ•¡™ï6ßm¾›Üuõ•„ˆí®2)þ1y‡÷“a¿ö ±9/W«Ü•¹+sW2¢@Eˆu{±†/½ÞkþbýŸ9ˆÈƒä®ÍD–$r¥Š`&…ÀÛ7n߸]öI÷“?=ãþ§¼’탞#¦zü[®b Þ^ðö‚·ùñ0ú^è{¡¯ÜñŠúqÙœ§±ìR²}Uýô4ïµ]Ï´+´èSÊ"ã ÷î/ŠŸ?/~Îèå³:buÄê¹+´ªð®ßò½X®b¢žŒ+ÃqjÊ©)§¦È¯„ëW¹nfÞQ²}árrŽ×Qûþ¶éæ'¤óßë¿×¯ê•ê•ê£ ”X·—»BkþÌ;J¶"’}aÇÆí·o¬øq!Ö–èˆèˆèÿβ¿ßöý¶ï·åvÏížÛÊ”ÑÀw/ݽtWöq¯Ž÷åÌiN¶=ïêÿK‡ÙrÕûcÛÛþØÆ‰~+W4ΪU;«vÒc47{ìrûYj‘k$YäÑLn„‡ï ß¾‡1Ê*Ó&Ó&ÓF6óìŸâús ¹VÔG®z¢¶Œ1ý*xYð²à¥Ü1úÉlÆ2‡Ì5äÚ¬YßîÒ]®z1“b&ÅLbŒ€²kõ²Ï†tõÿ¥Ãlær­È‰äª'2¦ŠàŠ{ÕÿUÿWýåŽapù}<¬`XÁ°é€ø¡ÍëML8µiÒ.ŸÖå‡ï¥5lžÖ<­yZñÜâ¹ÅsùQÑ—°¯Ã¾ûZztÕhØÆôUṤÃÞ YdQß&þ¼á#× ÙG±yäzäz0Ò€Fî«î«î{§z§z§J¯+¾þ¤ýûÍ^2¿Ð¤µ’ÖPÔVÔ™á¦/KÎ-9·äœôè¸ÜhíÚ vqÃä¾Þ—™e¨o£V.[æ”›ƒäMË›–7Qäˆ5y¹k ±žÏœ¢¬­È¤õySùްvk‹QÀ6^Øx¡”{2ÛaÚùÕ™€ÕÞIœÈÊ×öKh¶Ðꎴ¶\xp!?0•ãIÁ“‚'r'²ûᇷuÍf1¥|íêÖ3O·*å®Ù~³ýfû1ö€œ¤•I+“VJ¯"ÚÅZM¯Fu8ÐÏÇ…ÙD™ÛÃ~>.¢†ÒÚŠš3ö*GÎÍœ›97åæ O»ÆÿìÆl¢|íüâÀ¶ö¥<4~Ùèe£—fì9bM^z!Öð™M”¯ù‘È’¤µÙSY°îW„QÀÃã†Ç “ÔC‰~ÕÛ]åV‘örÆà‹&JkÛìÃf6ûP•¡ÊPepÒѵMë7­ß´^zæ›|e¿–”Š´ùzÊ/lÕ|ZóiMF ò®î]Ý»ºôú!¥ßÇ)nÙGT¤5,å}ÀÕ½«{WgìUŽÐwBß }GzVm™9´U0󈊴îÙâá(7)¬WX¯°#ü U†*C¬ÉK¯Ä>󈊴"K’ÖVdOe=\À•ƒ0¸¬Œ,Îû$OdSüw@gïeœ¼*Þvrj|­¡§´Â?fü˜ñ#'ê£ê£êóÞÎ÷v¾·SZÿ;©±[»Öd¥âmÈó‰;Z|.­ð.Û]¶»l† ¤ìšÙ5³Ky+ªušùC³0ÕÄ@'Ÿ¦Ì *ÔN tòi*êYÊ«:jf×ÌæWôt¨hvÑì¢Ùr³ìG?Æ}íù3ˆŠ·S’†,°k"­ðQ‹£G-‡ $±/½rëöÌ *ÞŠ,IöUŸä}’÷‰æÇ‹¸òkÂÈàCwÝ9TzØÖ†{öimÇiKkïâªÕ¯½ËZiçyÎóœçÉÉE‡ÿ´Oɘ’1¥”ÇzDyN°ÊbÑD[mvטI]öHëÜúXëc­1@I«rVå¬Ê‘^9ìè¹Íismµ¢ž¥Üš³*gUãPwÎþzö׳¿J+?>Õÿr“dæÚj3 ö¬s_ZçÞ‘½#{G2@Ib^zå Öí™;h«¹’´Î"‡Òüxëa°# €;Øv°í`+=T÷^ÿÜ­k_C>•¬8ÔõËVµþ{mŸOuziȽ}ñá˜ë^Gä~0Šû÷-îËiEw[Ümq7iÍ^[ÿžë\ÃY¼8žõs[W÷1¿~”bÖºQ³Oë½W?¤nä»…ÍÚ¶5_ݧ}ç{nüÇsŠ{ËÆ O´ðb˜K0nKÛôk°CZíœÛ9·sn3€*O•§Ê³ ± ± ‘^3<Ž5ÍÓ‹9ˆ¶ZQOiEýű`HêÂTë©ÖS­¥•ÿ½Uøã÷™ƒh­Iùɧ¥{ƒ5¦i¥¼Œ¦çÓžO{2€X{—[™ëöÌA´ÕŠ\IZg‘Ci~Ô€ apIF?­ñ´ÆÓÒÓê²Å÷õ^7èß%1 ¬íS§cÆ! MJöÜðÿeìÿ9FÙþ-­yæÏ™?gþÌ©DÛg&U®*·^N½œz¥Ü_RpìÄ@¯@=/X˜¤Ôö©3%gÈF»–uÊè¬ãæZn)†¶³óТ«N¥½Ý×_ÿ}ý’ '('('¨”;öí5ÚÏD­¨m)¿¢””ĘÔòòbçâÎÅe_±qÚÉû{æ ÚmW43«U)÷['ÖJ¬•X‹1 ÄÚ»ôjA¬Õ3ÑE+2¦R~E¯ÆÓOkhrÔ€ a°ÑÀɾɾɾ¥<üù+ÏN­ò)oÁáß6Ÿ í¹áŸøâ:÷ÛérMÚó­&[M¶špúÐòÉÈ=×=×]Zmß]¶YÕ7„¥ŠÐºAA-JöÍ¡ƒÝºáë>ÿªGk¿T›Í';Ô¿•¿xĤ-ö7êØp¸Y­ÿyw£¸×=®ÎâËݶ±Ïº6–Ö|˜û0÷aîŒIëëë/½Zˆx­çu§8æ ºhEm¥=Ç‚1©]Y]³ºfu•V;pÙÀzMz0ÑEû×¥½¦î¥¼Ï/x~ðüàùŒI ÖÞ¥W b­ž9ˆNý•g§Ö¤=™”&GØðUÍ0Øhàÿ8þÇñ?ŽÒpùÐàäNc á4qwÜçÕº¶Ü>©‡Ã‡ç½p³´ÿéÃÌFoÖ{(7t ÿÄ—k1ÒÚcº´çƒ%J䔡]IÛ’¶%•rêÙrø»m®ëw‘âyð‰l¯ŸlY½ó^CÑ+çýßÖ_&Sþ¿ñüÿÿ[â/ù·äþ¤ÞÚ)m|Êþ„ÖPÕPÕ`dP•………K¯²Þ>²Kæ ºhEm¥=Ç‚1©]ююѥ̲ck¯èÙ®3s]´E­N¥zJknqßâ¾Å}Æ$kïÒ«±VÏD­È˜¤=™”&GظT0Øh`S§`¢‹VdLÒž‹LJ“CGl¼”M,-±ùES—w‡Îi⃟ôê8wé›¶,”¶F«}|>úËÞÏz„´ÿÏê=«÷¬'m>0|`)÷—ä[&tó<¯ßå‰õsâ[)߃ÔÎtÞÔÇmå«}pýÛ¦ íwðÃþ=7Ïq˜´òºøÓÅŸ™TM/“_&¿L–^!´{Ûʹþæ ºnE¥ýÇ…ñ©-®÷]ï»Þ/¥ÎÖI…Þ-™ƒè® 6±M‹R^tó«›_ÝüŠ‘ @Õ$ÖÛ¥Wb}ž9ˆ®[‘7•ÖÿF¬ Ê ƒ8˜Ú< ñ¿åôa¼'¾%ouÊhñg)¾{'ë¬w8)h‹¥“¥“¥S)ã¤~J=Sý.Oì?µÔÞÙdܨGšÌœ\óÓfMi¾€Rò7÷ÒZÖªßÄÐ_’‡Íl?KZùƒ·Þ:x‹‘ @øyæzæzJ¯¦Z·]açÊD×­¨s)¾óÌõÌõd|ên–]ÿY½7MÍ á*]Ùs¨­ËœK™ƒœzzè題Lª&±Þ.½BëóÌAtÝŠ¼‰ÿ]PDlÄð7~nëí39ñéº8׫•S)OðOËKËKËãD »î0îƒ7ëî3´‡••|¨š&r@œwªõû>èì°vk mñåÚè}=ÜïHë¿®öºÚëj32¨š®í»¶ïÚ>éÂÚ“žƒZ;0Ñu+ê,í¿8.ŒOÝÍAz¿ß¹N£MÌAtݦ……Óጴþ{¬öXí±bdP5‰õvé‚XŸg¢ëVäMÀ2Þ0؈à ›¼N;¾Ã‰O×m⢼]/Iû¼ÁñÇðï»Þ¯¦Çm«£†¹ø¢¾}Õòô*ïM³Œ|Õ¬·Ø—†ãêÛ›Ž½=¥‹¥¡õöþ¯‡7u½-­ÿüoæ3ÿF&Utñ% - -@z…°Ï·÷ì¶1ÌAtÝŠ:—òK¨iiŒOÝÍA&Ttªiæ ºn¯ï;P·ó„R~ŤéÚ¦k›22¨šÄz{)Q⢼]/1Ñu+ò&`¨g\a°Þà:¶kCÏ!N“8ñéº=ßÀÿ§Óê Ò®Ó¹­·q-»ˆ·myžwýÑâ¸Ø‹º[Í]Þý!îõµ‡\Ò í÷îEû¤Úñ_=2Þ€&Ž­è÷… °Î[QgÆ[å›ûéØ&öÎÌAtÝÞ=÷“ºz2Þ€&Äú`¢‹VdLÒž‹LJ“CGl¼”ú–d4ðÿãøGi¡/œÜi,'>]´¹#­=¦K{>(qPâ DN Ú•´-i[R)§˜-‡¿kÑæº~—'º¼j7ÈÂªŽ–ÐâK‡”6> eûYCUCUƒ‘ @UTÊ3Z²Þ>²Kæ ºhEm¥=Ç‚1©]ююѥ̲ck¯èÙ®3s]´E­N¥zJ{hqßâ¾Å}Æ$kïÒ«±VÏD­È˜¤=™”&Gظ(;ô-Éhàdßdßd_iÑ×~åÙ©u#N|ºhã:÷ÛérMÚó­&[M¶špšÐòIÇ=×=·”‡€ù¶è²Íª¾~)×¶\a¶[y‹/wÛÆ>ëZÊ]×Ã܇¹sgL€XÿXÿXéÕBÄk=¯;Å1ÑE+j[J$éëëϘԮ¬®Y]³ºJ«¸l`½&=˜ƒè¢ýëÒ^S÷¥= žcˆµwéÕ‚X«g¢‹VdLÒž‹LJ“£FløªNè[’ÑÀOk<­ñ´†ô´ºlñ}½×å9ò%O‚†ßϱÿçeû·´æ™?gþœù3§ mŸT¹ªÜz9õrêå”ò(°c'zû›® ­ÝyhÑU§ŽÒjï뿯ÿ¾þ I””$½Zèh·¨Ñ~æ ºhEm¥5Ç‚1©]Å‹;w–[ì(Š8íäý=³í¶«?š™Õê×R–k%ÖJ¬Å˜bí]zµ Öꙃ袓´æ"“Ò䨦ªú–T͸ºÛÁ¶ƒm[é!¹÷úçn]û×éÏÛ޹îuDî ¸oqß⾜>taq·ÅÝw“Ö<áµõï¹Îe¹D»­ÛÒ6ýì(eyñvÎíœÛŒF ÊSå©ò,C,C,Ky+íãÈQÓ<½˜;h«õ”ÖYÔ_ †¤.Lµžj=ÕZZùß[…?îpŸYƒÖÚ˜”Ÿ|ÚYº7XcšVÊòbϧ=Ÿöd4±ö.·2/Öí™;h«¹’´Î"‡Òü¨Bß’Œ,Þ9tçÐCKyt¸gŸÖvœ°´Õ«Õ¯½ËZiçyÎóœçÉIDw2¦dLɘ"­|¿(Ï VY,šh«Íî3©Ëi[k}¬õ1Æ!(iUΪœU¥<£ew@ÏmN˜;h«õ”ÖYÔŸq¨;g=ûëÙRîIŸê¹I2smµ{Ö¹¿_Ê"{GöŽd€’Ä:¼ôÊA¬Û3wÐÚßÃ=û´¶“ÖYäPš/`ý"ô•cdpÞ'yŸä}"ûˆª¿:{/ã´Uñ¶“Sãk Kù&ãÇŒ3~ä„¢C}T}T}ÞÛùÞÎ÷vJë'5vkך,T¼ y>qG‹Ï¥Þe»Ëv—-Ô”]3»fvM镃ušùC³0ÕÄ@'Ÿ¦Ì *ÔN tòi*ê)­³¨?ãPwŠfÍ.š-7Ë~ôcÜמ¯1ƒ¨x;%iÈ»&Ò µ8jqÔ‚qJëðÒ+±nÏ ¢â­È’ä®E¥ùñ"®|„¾š¨fŒ7­ù”åEP ïêÞÕ½«K¯Rú}œâ6œyDEZQCimEÍ{•#ôÐwBß)åì-3‡¶ fQ‘öÁ½#[<åæ …õ ëÖc€ÿ‘¡ÊPeˆ5yéõƒXÃgQ‘VdIÒڊ쩬‡‹¸rú–•QÀ6^Øxa£ô@68d¶Ã´ó«3«½“8…•¯í—Ðl¡Õim.<¸ðàBN1•ãIÁ“‚'r'¬ûᇷuÍf¥|íêÖ3O·Z#­êl¿Ù~³ý{@NÒʤ•I+¥Wíb­¦×?£:èçãÂl¢Ìíá@?QCimEÍ{•#çfÎÍù_”ìÿ³g³‰òµó‹ÛÚ§J«ºlô²ÑËF3ö€±&_Êëš-´ºÃl¢|­ÈD–$­­ÈžÊz¤€u‡Ð·"ªo×»Zuµêj%=´öjã”lj¬¬íÙ°án·d¯íZäZäÊé¦2-v\츸”ߟªl7Že”²¶ë9íá&7³÷fïÍÞ˨²,U–*Ë&W›\mRÊëçéÆœ¢¬­¨›´ž¢Î¢æ ½Êt*èTÐ)é 91ñ›™S”µÍª}¬Ë‡²œ–7-o£Èkòr×b=Ÿ9EY[‘Ië)ò¦ò)`í"ôÕ#€ßøûÆß7ʾ©hÏ(sÏZœÎ4zÞýïi’ÍÌšK+y`×]vñ£Rù}4öÑX¹þÇÌíG:NfIEóvÜ÷/5™'­äÌe3—Í\ÆxšH\“¸&qÜZAö˜Ñ^S™_hÒŠZÉURÔ™ñVùîÖ¼[ónM¹ãríù¾Ãk1³Ð¼íåålm-­dh³Ðf¡Ío@b}^zE!ÖóÅÚ>ó MZ‘É]늼©|Lj¸â}u¡š±ïÀ°‚aÃJyXnÀm^obÂIM“vù´.¿8|/­aó´æiÍÓŠçÏ-žËо„}öuØ×¥ü_£aÓW…ç’{7daE}›øó†\3äþ‘ÈõÈõÈõ`¤ÜWÝWÝ÷NõNõ.å®_Òþýf/™_hÒŠZ•òÞßTïTïTQg†›¾,9·äÜ’sÒ£ãr£µkƒÚÅ “ûz_f–¡¾Z¹l™ó ¹9È3ûgöÏìi@b}^¬ÕK¯+ÄÚ>ó MZ‘Ik(2¦Š#àŠ‹ŽˆŽˆŽ ôÕ.£€ï^º{éî%¹¡pàxŸQΜÚdÛó®þ¿t˜-{é¶?¶ý±ý*W4®hœU;«vVí¤ÇhnöØåö³¼"×>H:²È£™Üß¾'|c ”U¦M¦M¦Ü5F‚gÿטkȵ¢>rÕµeŒéWÁË‚—/åŽÑOf3–9ì`®!ûØçYßîÒ]®z1“b&ÅLbŒ€²kõr×bŸ¹†\+r"¹ê‰Œ©"G‡¸â^õÕÿUB_íª¦ŒÝؾqûÆí²ƒÎ˜üé÷×8Í•lô1Õãßr[ðö‚·¼Í‡á¸Ð÷Bß }åŽWÔËþã<¥–’í«ê§§y¯íz¦]¡EiÅÜ_¸¿pQü¼øyñsF(ŸÕ«#VËþ†r–ÅðÑ]œ˜w”lEMä*&êɸ2§¦œšrjŠì/:ìX¿Êu3óŽ’í —“s¼ŽÚ÷·M7?!­˜ÿ^ÿ½þ{U¯T¯T¯] |ĺ½ÜšXógÞQ²Ù\ÅD®TñãB¬-%ï&ô­8…Àª3ª3ª3Û l3°Üóý·>/ìšÀ)¯ `Ìx¯émZXŽª·DZ¥¦öMí›ÚæææòãahVXq`ÅÙßó²Þ:°Ãt–]T¦Dø¸uºÝ.X®VÙÁÙÁÙÁŒ(PÅÅÅîÓܧ¹O“^oÔ`Öä݇wŒšêéÉDÔAÔ¤”_Λæ>Í}š¨'ãÊÐÌw›ï6ßMîºúJBÄöNW™ƒÿ˜¼Ãûɰ_û„Øœ—}õÌÊÜ•¹+Q "ĺ½X×^oˆ5±þÏDäAr×f"K¹RÅ 0 S5%íÌãW<^!÷#mík~Äì›GÕF¦{ܬš§¼Â‹cçx[öm·°Ñ>¹*ݽz#” ]dÌ/Î/Îï·ºßê~«åŽàåk»[wšT•_¾_þÅéæ²…?æ{Ì÷˜/c hKΠœA9ƒä®=ÚͶVÿè³ïFßðz¿jÎAľ‹:ÈUIÔ±d˜ŠF(áfífíf-;‹t80£ó¢*:ÙŸ²ÔÇyÚäaëìdGø™À3gK@[ľܵ‡XÿY@Õœƒˆ HäArUY’¶Ž0 S5åíÒÕ%W—\]"÷ƒÝøµºÕÌvÞß>¢]×;Uè®ßÐ1Þ^ÃzÅÛõj$û¶­GO=q” Ã÷´õÓÖO[7ß`|ƒñrG3½`û ŽU¡e—R¦ú´\0k¼]óar5YS¸¦pM!ãèBÚŸi¦ý©>®jw‹ýUýŠº1~ ߃ƒ>8XG­¿úF†»O®BwýVKîà>5~h»¡²ôÝî»_?:!Öóå®CD r*t×ïöíºÞ\eD~¤ÝcA ÃTM©;–ì‘ì‘ìñÔ€!!î B΅ϳ»Æ8Ä[X×=)W‡=÷lܳ‘ãr§õÖwZ«áÇ.­]ë’¤ìe—B—$o¯çcψ±½%W‡9s"æð>9 sG6ÙpdƒÜ5‰xrUx7°ØG¹> ¢VŒãrmɵ%×–¨Ÿƒ$_ûÍÍÍ[Ùsg£»y5üxžÏhë8¹:„îݺƒ1tM¬íË]“ˆ\@dÊžƒˆ¬ç®T=’=’=tq€a˜ª){÷â­â­â­ÔÿØÇŒô=Ú®¾òNygÝ~ë–ª~ßÃk‡×¯Íñº~ÿúýë÷Õåå#f¼éðê|ÊVŸJZvÉJ;Ø·ËVNl©{MnßgXϰža­š¥š¥šÅh•#ªFT¨ê¯Ð<û§¸þ ¼9ˆØ/õû.êÃ81^—W^^yy¥ú£öxÞfÇåÊ‹~ÿþnï:÷è†ÃëÛ˜Ž’Û÷…a Æ1N@eëüê¯ÐD^ ¼9ˆÈwÔï»È‰tW`¦jUa'O»œv9í¢þ0é…SRÓÃOãG»y6Þ“]ÑÂ+ï9Kž»·mù§ûÈÛ‘·#oó  Y³f TÄ;«œ—5̺µ$Ú¯‹©±/»DöþaR[/õû»ÀtéSÕ!Õ!Õ!F¨|êï¾þ¤ýûÍ^¾¨=æ¯(トþ‹}Q¿¿Üõ«$™ýeö—™ú#î÷Ôã¢Uì½õ‡jwbÄsü”¯ÍüÐf¿úý]ÑxEã@_Äš¿ú+‘ˆÁxç "Ç™ŽúýÙ®+O ÃT­êìjFãŒÆëh êÏ>g¿3®S^Rú€¯Û¯4«ÿn›:ÇÔï]RHRHRC_yòæÌ;Ø9ºstçhõc`•ËÌ7[}öê›Ó—½£æwíííáþ‹­ÛpËîê÷î7ÿßüóg<C þÝÀÿóò»~ž.aÆ5}ÖdïxׯRÝ ½z/´E^‹¼yêÇÀÆó³TóS|ìer©ïÎüNæÎ6Ô_«~ïö$íIÚ“Äx†@¬ÿ«¿z9‚ÈŒk"²Mæ "ªœšÃ0U«j;œW˜W˜Wèææ÷KÍ|Ô3_œØý£–®§Šcò¼‹ íd—vgPçW½6Ûn¶x¤~_ZŒl1²ÅÈ[i·Òn¥1è•­èqÑã¢ÇóãçÇÏ×äÂÁ‹¶99¼wr‹×iC[p¹Y+ʶó¡ñcýCšì×d_R2R2R2ÀÐä Ê”3È}šû4÷iê¯gÚÅZM¯&¥ßÇ)nÃU»{ù´5 9ÈîÀ^>mEßD?Õï‹Ø_±ïŒe{qèÅ¡‡¦úLõ™ê£Éuû1K·8·y¹îÔ§ÞÝ mò׉½¯¹/ö²Ïy›,Möå‚éÓ ¦Œ`hD rõ×3"_Yƒ¡% "—Èkþá 4a~a~a"ªÌjÃ0U«¢û=W5W5wÓÕMW7]ÕdRgúU‚:ë·¤w»Ðæö«¬€ÞgõuÊ;Þg°s—– ãêþG“ž/>¶øØâcEo½UôýªI¸šp5A£.üPwÊ–}s¯sðØ¨¯—Sc~íÕ>º_oφVg5éóðÀáÃó¶æmÍÛʆ¬Ø¡Ø¡ØauÄêˆÕš\çX§™?4 ÛÐs›ÓUL ¯O;=ÌAb}}Ú‰>ˆþhÒs±b9îUMì“Ø'±O4Ÿƒ¬Ü¼¶U—üã §<Ÿéko÷óX×>ÞóÛgZÚjÒç‰&n˜¸!ß;ß;ß›# ™ÈDF ÉuŽÈD¡¯Dä/"‹¹Œ&=YÈ}*¿ÎÀ0LÕ(Áí€Û·Ä ˆ£ù4Õók[‹=Û.wÏÿpåÍAÃŽvÖr$|ÿØ÷®ö¿ÑûXÛ¢ìµ^®yßÚy¶ólçù§ýŸöÚs|‘ß(¿Q~£9‡çžsXóQÔTeÓÞüU‹gvo5õ²jw÷N3´»ÈR8!i’÷ëÇ®[éZç‹qƒú7yX§Œâlâlâl8¾ÀeÚdÚdÚx§z§z§j~ýÓ;ÐnQ£ý¯õ¼î—ýûg]Îkw">S|¾ø.Íû&öEìÇyÙyÙyÙ“#'GNŽÔ|9¾kß°^¯õ×¾îØúúÕ‰{ Ü;iwòlLb/‹ÃKW¿åRkTTÿ^¶Žš÷ÍÜÏÜÏÜï´ýiûÓ̲€QyÈ4¿ Ù„È)Df¡Ý9ˆÈVDÎ"2—2ô-f@Ì€‘ïè·¶À0LÀÿãLð™à3ÁN£œF9ªS.Žç,=ê͘¸Ð©SÓ€ÕcÐÈÜ,}äÌ~½w©å´.-‹wõ]ìç4ôpÿU—ÚÅ笯î:ó¸ÿº®V»/¿í|ù·[ßßÞ³ÛÆ[Ñï —˜„üL\£Ä‹ÿ]üñçÅß-ß÷Š>‹þ‹}áBêÊ¢+‹®,ò-ð-ð-(ßH³³µhþÎØ¶Ümã–/›ÑÒá‡Ý,™çu¤Éê¯\Z$´ZïìrÜlÝR×ÚÑ–wpÿõð|Ǹ¯~ýZ³5ÞƒÚÇY6¬Èdû/ÛÙþKÑ„¢ E8šÀèù©üT~"G™Bù®‘D–!r ‘qˆ¼Cd"™ˆÈGDV"r‘¡”ï{Ev#rÃ)*0 piNªNªN¦¦¦ú÷;ïw¾ŽAr=çzÎõ\Ü̸™q3‹k×(®Á¡ƒæ2=2=2=¦<˜ò`ÊÃáfëÌÖ™­Û~|ûñíÇŸ›<7ynÂQŠe©²TY&­LZ™´Ò»ºwuïê†y…&ú&ú)úÌ¡ƒæ®Ä]‰»7Ög¬ÏXÃáÖ/­_Z¿Ü½7zotáìÂÙ…³9j@©D¦ ò‘5æšÈhD^#²C«$0 °Fîm»·íÞ¶_ÿÒø—Ævévév镚3]kºÖtmhlhlhìM››67y´´&Hþü!û÷;ïwöòôòôòÔ×?çÁƒ¼u!êBÇTeÙ5³kf×\•³*gUŽeˆeˆeHå_›‰ï}ýá¸@[mx´áц]_îúr×—n‘n‘n‘úšƒÌ ›6/ìÊ—W¾¼ò%ÇTe"w„È#*ÿÚLä/"‹¹Œá׆‰¸œä<Èysdú‘éG¦ÇÇÇØ÷²ïeß«â'8+ + +‹‰_Oüzâ×Q £F5¼“~'ýN:5GezZø´ðia²y²y²ù¢‹F,ÑáJ‡+®hëòaA†…oß¾9³ZfµLÎEÿ '('('(Ö?Ö?Ö?(<(<(Üv¹írÛå¿6Ÿ#>S|¾ø.jŽÊôxâã‰'ž¸~âú‰ëßÞýöî·wãããµðëÔÏMŸ›>ykä­‘·vuÙÕeW—› n6¸Ù€š¨'² ‘SˆÌBä¿ByŠÈVDÎ"2jh ¡K%95âÔˆS#]]]’º%uKêFM $?½øéÅO_%¾J|uò»“ßü®¨FQ"K 7I “&-Lx‘ð"á…øoj%9ßì|³óÍ%JW|ŽÊèmÒ-©[R7‘ƒˆL„šúB A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A ñÿ"¥ £ê¦ó%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/sample.png000066400000000000000000001677411431412030200246720ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTçû÷ñhSü}DDDEPzïQQ±+ V¬X°E,ˆØ "ö†½`Á.Vb@»‚]cAì¨ JÝçÍs9ÃTex¿8ç>9‰ÄÙ{®™½îýìÌ|§ÈÂwLÈ0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0ð„s çÎE—.]6fJÌ”˜)™g2Ïdžaf|™œq9ãrÆÅ‹9s,*&*&*æŠÆ+Ì PÔÎ;?ìü°¨¹Qs£æÆ¤Å¤Å¤) ŠfàÛP®}”ë åšH¹>bf¾ `ÈÖ£FŒÎyœó8ç1ûøìã³×w®ï\ßY­ôªÒ«J¯*[»lí²µËƒ¸qâ˜s 4x´úÑêG«wLÛ1mÇ´~?öû±ßêjêjê…pVq<éxÒñä´ Ó.L»òþòûËï/3çÀÛ o/¼½p:ìtØé°ÉQ“£&GÙXÚXÚX~ýqW¹fåš•kº?èþ û»—ï^¾{ybëÄÖ‰­™s€Ü”kå:E¹fQ®_¾¾S®§”k+å:K¹æbξ0dâÊ+>¬Ø¿aÿ†ý\¸>p} VL|m}m}mãûÇ÷ïÏ~Jº[‡o¾uxrÏÉ='÷,®³J}—ú.õ]†/ _ø¾öûÚïk³_ oo^¼yñæÅÖæ[›omn7Ün¸Ýðâ:úftžÑyFç{—ï]¾ÇW1@)¢\w(× ÊõHqõcʵ˜r]Æ~ Wó–Î[:o©øÈÌøÀ(Áþ^ñ÷Š¿WŒ^1zÅèj*I=N=N=n›Ó6§mN}|ôñ{ Pe:::{|öøìñÑ)£SF§Œjž[ÿ0ø‡Á?ÜÙqgÇì5ÈC‚g‚g‚gï½kô®¡šÇñ{ã÷Æïõ:ÔëP¯ÌœÌœÌöåúB¹ÖPÍ~L¹FS®×”k7öy P€QÂ<¬ö°ÚÃj=®÷¸Þãú—-t=4õ*þÕÏÉê—šw‚Sî1ÿ°Ó¡¥ƒ]×ã®í­?NrßVÇ÷TwÍ:5unëápgƒ¢Ù›&®uoš i¹ÎàAõV_³\Y«»Vw­nzVzVz{PYU²ªdU +V.¬Ü×ÝÍ ëyVs›d=`´ñáõÚSæZÇG,XØÙa÷)•+êTj­¶¨3#²ì²¾µk…/™ÛÞnëBsŸ{c®êSk«îVÛ_ö÷vÐî ÝAû΢;‹î,bo¢d‰_¿8~±ë'×O®Ÿ¾¬þ+iÔø[ßG¯G³eû™ÌìóǸ¥–›GúÌó´ñ÷¹,ÍvÑÄ[«{ØjMè¼r°Õ«1“B›-xqòýqí=û•­²ÒR×1þkŽú=§÷œÞs:ûTö©ìSìMP)×Ê5Å—uDÚz‡+Ž¨Û¥kêWÛêN¨²»Ý¢:&ÕúÎ_§f<`ÂfSóÙý§mœh^»÷„•ûLgÿá<ëºQ ×êC^é 1¹Û@KkÛ×ôcÊuœrMÇÞPr( À(>ôüÐóCOÿùþóýç|`йr–ƃ¥5eYzÜŒö¸Ø`°B1xp³f…5f„ ִ©~îZuô†=³Ýhðëç.TNÌ81ãÄ ö/P\ÎœÆÆuº]÷‚{yã :ºž©—W/¯^^o;¾íø¶#{(j©‹S§.æ8Ìq˜cAŽÐæÃúV[$X®v¬3«pƒÞ‚© •›‹ÛŽ›eñ®àçÃc+Ž­8¶‚=Õ±¯Ú¾jûª¼†MÓúßšäU?=t}ÌÆÂ{ >Úxù™.[¥µÆì'Û„‚l³ß ¿A~ƒ>™~2ýdʪF¹F(x?ÖNßßÜ ò$û‹‹íGnÜ[ðq@Àf{ó¹¦~ΦZ÷ ²ÍʵžrÝÇPR( ÀP9Ù:Ù:Ù:G-Hs¿ýïvåÓLr=Y\¡¯Ôø¸g¯“ /³¶í¥ÿ° ¯%Î)Î)ΉŠÂµÍ×6_Û\#ÑóÇv^5»ßß²÷€sdq…¾RcfóXí¦ûr‚çÚÿ]×2&~Lü˜øŒöí3ÚSøöÒ.§]N»<Ða Ã@‡ükµ‚vÅÎ-¬Ÿ[¶dqƒ­kcÎ*®ÐWjt¼5Ç=üXõ!õŒ›uûkP|Ô}Ô}îtºÓéN'j/åZ@¹.(È ¢ç™eGM>4¾öÂalq…¾Rãè•Ç+Z?w ïè[-¹ ¯E¹¤¨>`E*äÆ;w.©.©.©ù7ñKüýeéÝÉkhÓªúJ÷gõHqŽh^]Aµ€ü_Ýú‘ëG®I=…%|Wø®ð]ùwu¦YªbóÏ·tVµÐWrt‹«ß¬úÚuý­ÿã¬bececeórí˵/×Rø6ÝÝÝ«m®¶¹Ú|ñÂ"Èûû™Éª÷æ?:ô˜¾aë^5º×ŠÍÿÕ©x¤â‘ŠÔøö”ý¿r-ÇÒiÎ̆Ín4t¬¢j¡¯Ô8bsÄs«Wµz؜Мœÿ«S®©ªŒ@Q †JHŒOŒOüï¢:ßÒ›¨½á‰^ïŸf””ÐWjÜû]«{ïü_o "P¨PìTìTì¤B€/šÿ±¶åÚŒr¶ºŠœ¸s%"ô•Ÿï:úG#§¶î.1:zù¿ÞûïO¼?‘Ú@ÑI¨—P/¡ÞÞ¥‘EÅéÁîÍê”ôè7÷ø´Qïk.>VV=YÙHòö­)cRƤ())Q-@ä(r9ÓN{8MòÖëÕ×k‡WÔ{pzßBçì’úJ¡Wý3¬+ç^½mqÛâ¶Å‚Âu9árÂåÿxV®Åïj³ÔJpè+uƒèͳwï|‘ÿk_”°(aQuŠŽ²ÏÏ¿'é¸k†–áÊúæ9þ©w\a£©9»jõ:R¯]¹NT®©ªƒ@Q F±y¶ïÙ¾gûò_–œÐêà\{µœB_ñ˜1|Pç¦?x}°1Õ7”š‡‰~ý&úQ3@šæ;óîÌ»#u4uávZwÄGõ¨K®åýæÏš®{R÷QþçØ‡?=üéáOÔ ¾Þͦ7›Þlš½9øL¦!¿è7÷èttÅþS!Ú»mæ85š‡Õ« VP3 p){ûüû1/íVþò‹~sþ.—ÛÇÙ®k=°ê©yP®©*ôY0€"@Œb:?u~êüª¿Wý½êïRíøµŽ]cê[Ê;úý×:¸i3ëéKœ®™JÞ®vÙßËþ^ö7õHÙµ%jK”Ô䳯÷R£Ÿr:ž›Ø4QÞÑoîñÎÃݳ«çÿ1ЛÛon¿¹MýàË<ûîÙwϾûgl ºœ&ïè7÷Ø`òZ·Øh]Ï&î¥æäÀÔSL¥~À×Söóù÷c£ÜŽDYûÊ;úÍ=N‰HøÓá½Ëœþ{tëJ> (jKÔ–(ê€* P€ñm©+Ôêëø[ÇߤZð›N+´,Eѯhœ¹¯~¨™–Ôüü5ø¯Á ¦”€ÜÎ 87àÜ©£fÜŸ}R†)âv4kPz¢ßÜãßÂ~†µ%Ÿ°^Ö¹¬sÙ¬¤¬¤¬$j —î›î›îktÒè¤ÑI©êª¾ÈéHÝÒýþ+þ¸îÔ¹íº]Ûv)5?ñmâÛÄ·¡–À—QöðÊ~^ªßøsud¼MÃÒýþk~ã £U£> t¤æG¹–¤–/`EßÔ’¤%IK’¤ÚîKý»´sjUš£ßÆÇƒ{7s3ÝÁÏPš«§Ož>yú„ŠÞô}Ó÷M_©#¥oùö5—æÜ9÷´Ù¥3úÍ=ÞªÞ¯¿äÓ°ÆO?m<…‚ugÔQ’·[¯3<¸í“Òýþ+]»ålƒjj‰.’×夥¥QQàs){x©cDú¡‰Ö?—Òè7÷ÕÀž8þ\Û¬SÇêU$ïŠÔ÷Mß7}©(Å…@Q Æ7’ ‘ ‘ !y#Äåmþph@ô›{̶÷êÝtS“NµŒªnÏX÷î ÜsnæÜ̹Iu¡”z«x«xÛñJÇ+¯ˆ‹Þ†9š»Ó_žùÕõ)ÑoîñÔ¤•ëH>qüÜúsëÏ­§¸¿È ‘"/HU‘ýØÀó›~"úÍ=Ö¯³ÊE©Ð°â9ûy IÙ«‹»½ò*™2(þ¹ÃM‚ÞüÇ>uWå˜ÆJõcÊõ&•à["r_û›?Âà‚#Fz÷ðÝÃw¥Ôk;º&ÕoL¸[ðqØw¶­õÄ3é[Õ·ª/£™{aî…¹yÜ~¶óöæmuyÖïgŒ÷ëïíã¼Yê,ýbê‹©/¦RoPz¸ê᪇«¤ª¥nÀÂ݇§îhÔ_ß.γJS‹J“Ä3šššJ½1e.Õtì¨5ÑïgŒ6‘-oUm)žIåz“zð-Ê@Wîªapþ€Q„æ†Ì ™">,GÍ´ïnX‰@÷³o½ºïÛÆ]¥NvI¿'ýžô;U™·æÉæÉ’×þ>Ýq(Ã%ˆX÷sÇé}‡Þ1](žÏq3ÇÍ7“ªƒ’g¢g¢g¢¸NL-ûö_X÷³o4oîž’×ÿpüÃqªä¦ìÏŃ[¹Q'j"ÐýìÛA{Ÿ>ik%Õ)מT€oƒÈ0¸°£H¤I’:DêP|¥Õ÷»Fgt¿l\>±ñ=ËÇâYõ»êwÕï*µy úô)蓸þ§ÏšiºŠ(÷ËÆãS'šô–:c¿îôºÓëNÔ^iö$øIðÉçþֵީ@ ûecÍ#-v)žÕuã×_7žÚJÊž\ª›Ø÷‚¡½î—nUF=ªù—xV•kOjÀ·A H! þÀ(›îmº·éžøÀ›Zw¥‰+!î׌n ØÐ$SêÔ–²0eaÊB*ò“Þ8½qzcÉog7ùkc¢Ü¯µ{Ââxn. \H–fþ¾þ¾þ¾âÚ0??dã´„¸_3Ö¹pÒaW©3[víìÚÙµ©@ ìÉÅÝBÛm“:ë¿!Äýšqü̳Ï삤ú1å:” PÔ€‚ þ\À(l^ /…—æ~ÍýšûÅÛ3³>s\žâ~ý8g@ƒ5fÄ3¼=i{Òö$Êòs¬û±îǺ‹kÞ'¬wÏý-„ñ­Û‰€ÆG$ƒ¨JÙ•²+Q‡¥Í§ìOÙŸ²%¯ýõY¥ˆšEˆûõc6.UÚ–Ïð¹òçÊŸ+OPš)ûp©~lÂ÷çNÛEâ~ýè2£ÿVÝÚâV®C©CEø\„ÁAŒBv·ñÝÆwó¸J¯]ŠÑmÉ·…5&=ï3Ê%^<Ï-.Z\¤!?nfnfnfâš¿÷fo-çÅÅšÞi³»RƒÌ·æ%;Ùi{­ây¾\ær™Ëe¨ÃÒæTÊ©”S)âz0°rß4à5Áma#¦ßÝš!žç>Q}¢úDQ‡”fÊ>\Ü'Ô}Ô­‚N™’µŽ*s¤…uŸÜ¯E¶jtãc~Öqy<_ÙÌÍÌÍŒ:PÔ€¯A,……lîé¹§çžN§ÒÜÛÕiLp[¸cýQºË´+‹gû¥ÛK·—<ê2‘¢™¢™¢)®s=·ê³+¦*îÇímÖPuà’_z¸ÅÀiø5k>Öœj,mzèu¢× q=ÔvŸ{i÷V‚Û¼\·êœŸäKÿ-ý7ª€ÒIÙ‡‹;„¡ówŸ± &.´qôãŽ6ZÍtª_Èãa[š)š)šT#€¢C ÂàÜ€QxÒiŠ4í´ÐþA|}ôhãêNd[¸ãÎO-ýí¦‰g{¯ö^í½Ú”$äáTçSOu×ùʨ‰K­o\*¿8ë—Ø½M=¥š¡œðœðœpj²4Èœ–9-sšT%8ÿ².ýÜ{‚Û Ÿu­8,Y<Û—\:pé5 @i£ì½¥ú±€5×ç8,!.ÜѽîÔ C<.iè|ªó©ÎÔ$€¢C Â``Þát)ùRò%ñÓº£á”ê»k‹b|~×Ó¬Q3ñœ÷ðíáÛך„<Œñã=Æ[\ç®ï[×° pQŒÚ¸Ÿªå.~]Iå’Ê%•£&Kƒ»]ïv½ÛU\ú/;œïŸ@X[$7‚f$në žó9“æLš3‰š ´QöÞâÞ Îá.¿T-¹OÛUåøOÓÈßlªˆç\¹&¥&` ¨•Î0˜…&ö@ìØâƒd“Wó¶6‹ k‹dì6ج™®äµz÷rîåÜ£2Q‚e+²Ùš«4Wi®WxÖõ³šÅQ%$Ýa±øu1=bzÄ”Â, ¶ÜzpëAq Øýîï¹æÂÚ¢ëdžþ}79_n·Ün95 @i£ì½Å½AïÆ+Û™Ž%.Š1@oïG¬\“*×§T&€¢@ |K¥' &F¡Y´|ÑòEËÅÆ­æ9 fªNhú̯ÏV—3ƒë/0Së²Ðt¯nÛ¿«ÿTùMåeê÷+¦^UþÖüÁõT­ÝU?k6ìi.¼Ñé{ªq}UŽ=½,=jŽÏ|rjrjr*•‰’+íaÚô‡âÚn~ÚiSµÍª”JÀ—Ëniè4¼GóVûôÜôÝÆ‘•—UJ­ Ø]1ÿUK’À±ÆGÞèD^l\_5à'Ó"ZºäÑèøkûkûs{ùRaàöÛn×@½KWG.V¹gè>\7霻yøÆÓúVÝj¿¢¡eÅ)ÚÏuþWaªÆúJ©šKôCMCji´þ®gÏÚsçÊ1p¥ñzz†êâ™Ï¼›y7ó.• @é¡ì½Å]ÏÀ“ln¨Nh:Å$~’ƒÐ¹âœæFÍÏ6¶¯²Qk™NŠú³Š[5;Uh¬»Ãâ•V4z8¨œîŽq-£Ùú©r¬M×;Ôz)žyåú”ÊP€â"ï0˜…¦ë¤®“ºN ©›X59¨ Aé©D÷uœu,*u¨è¢ö™G÷zÚ0Q5àuÞM¯Zïosü¶ømñÛ¨L”\<\ðp¸¶çY²4¯ªÊp¥ƒ*tÉÿ¬bp@W¡‘¶}{ýƒªg´?ÓÕ5[¼Í 6xØ€­ªC;UJÇ?i7ÝT«Á­È‚wb]£çg·V帕ë¸ÁµÎ‹·\¹>¥2`@È/ &F¡Ñé¬ÓY§s7"þ0¸\³_‹7"ý°yÀü&É&¾UfTº Ü*ÃÍZ~•LCž» ±½­ãžºZ×ukUòÉÔÉu~H¯WÍd‘òšà¿éªb;¸SDÝCâ™Ø±+b•‰’+&"&"&B\Û‡·/Êt4VåXibÓþG§k·ôާö>¿Ç~ý-¡³+”Q;¯ö¯§wçT?çÞô–ªÅÀ竟W»Íò£tÊãÆw^új&wT-.­~Íi´Û÷ÿlâYõnËŒè8l`²M_¿*ËfؽœRyýu“ú½PqwÕ :gs¿¢Ú=æ¾Ý}EÕ^‘EÕ¡¡3ôÄó=êzÔõ(*€ÒÜU8¦ž®¶F%‚Òßoüæ¨f±»It•·¹·Ðêuó=Ú»ÿ°œa¤=H/욎Í|c˜jQ¿qV•³Rë&U €ûL\ý§éñv*×§T&€¢@ ¨y„ÁÀ(ÂʼnY7íºšõT!"Uƺÿ,™Þ« j“nŽ÷Ø× «T¸+~-µ®V¦1S5à¿í{.lXY¼ÍËC—‡.¥2Qríx¼ãñŽÇy!e·õ©ßY5`õÇêMÕöGÚ,›QÛRùgr?XùÏ;Íijç¡úOnÞÕ©Cµ –¼§+ÕˆhÔ¯]¸ê¥Ö7Æõ[ÒþŸ[U!F½©Í‰ñÎËÊÿªü×¹ÿü?=ÀTõ•Rs¿.U €íþϿ뚖âù444§2(Íý˜épçÊZ·U!"íþ|ñ8“}¢Òªí¸ñµ.)ÿ«ÔG¢Ïx-Óý¤ú°÷Ìýµ­êˆ·S¹>¥2`@••Ü0˜E¸8ig`4_§ƒJ\#;¡SdÝc£^ÚO14ŸPÿ¹Y³‚\Ñ+‰Uó:à× ûoük7†z:ùéä§T&J®%K–äqKöu—7¼§špß{íoÕŒ.H ›û·Zlp°º³ªÀ^aôÕ×`ùÁ{ú?7-ßÔIsÐ9Õ Ju^8?h=üŸpúJ££í«$ÐÍýŠ´ClÌë ª;ΛÝ{çTñüo«º­ê¶ªT&¥¹«çÞíºŽ¡*D¤Ö×Z4ÒÎú'–Öj0E+² ¿àzí•Ã8o“š·U9“q²¶Í~ñü+×§T&€¢@ ”%+ .¶X ¥@?7«ÿÕ¼¯šWÍæåf›{õhºqám—(‹PÕ€Sû MÆPo(=^ú;ÒhƒjÀ'SWúÖù¹ ¿{xÒ¢›Ž:ÿÿ¦ôzÇ*™ªÚuÀÜú¥·¤Þ dœÜk¬¹ê¥š‚•Yå¶å¾ö÷?žlºìõ‰æµ“‚¶ìû©Îúàäéª×é\qÿ=ê ˆ5±ÜY¯š*D¤Õ3Œ»iü‘ö2^Þ×T«àQ®øu©Zìiûžz…ëÛ?²“EhÈï6‹ô¨füö»~co;Q±CýÚ«Ö•kºÓzÙäÊu½L »N5+¯;¢†N¥ÇI½.U{-† ðkòˆzCéñúuäÖÆ6ª?Ž>x°abA~÷¾îÞ–Îkó:èJôB°Ô3€oÞ ¼IeòÃ?üðÃOiîÇTáÀ×:üëQY£=Žm´¾VðÿCŸ[¡•LsT9–z°r}JeòÃ?Eñã=Æ{Œ÷>á‡Õÿ94þÐøCã—\vpÙ‚G¿Ê?_Šž ù—µY7íºšõT!"míf8©úåVõ½g™X3:§ºWDÓ[ùǺ·{tÐ Zõà¿í{.lXY¼ËC—‡.¥2Qríx¼ãñŽÇâÚ¾^v[ŸúKú3€µ[ú?ÇSÿÿ+)&Z•[ªZܼ«S‡jAyQßÓkD4ê×.\u‚ÒÜÛf÷ƒý5†ŠW7ÎÞºóÉÐÞ™ãôLÎxÖð]鬶þ÷¸ßUçuÙýŸ×5y\yiiiNePšû1ÓáΕµn«BDš{«z­\ajê\ðßm;zbšþU€½gî¯mUG<ÿÊõ)•  (Ì[:oé¼¥|¨&ep;#lFØŒ°‚‡¾Ê?ÿíCßÜ€Qht:ëtÖÉã))9—kökñF¤ÕZi¬Q¿®Üžs=ÿYϸ ¿u¬]»øÿϨr;¸SDÝCªpK pÅDÄDÄDˆkûðöE™ŽÆª÷½×þVÍè‚ün—…nßëþó±B·1-&ênVµ¸â|õój·Y~𣒦—¾šÉÕ €õ.¹•éêXߪù´Õðë•¿¥µÈô‰ívU»Ø¢êÐÐzy|ñ%êzÔõ(*€ÒÜU8¦ž®¶FÕ`Ó¹Î-´žèêa×k¯ÆÕˆ6›X©µ*À}&®þÓôxþ•ëS*@Q TMÉ }s#F¡é:©ë¤®“ÄEŸºi€U“ƒÅ‘š·Ô^¤9J¹=;µ¬gç‘ÿŸÑÛÅ¥šòIÀª¯ónzÕz—x;ã·Åo‹ßFe¢äz¸àႇ ĵ=Ïj”¥yUÕ €Õ«7UÛi³lFmK©ßÚÙhNS;Ü¿½ma]-Õ‰~3ÚŸéêš-žùÿ¼FÕ €kínó¼÷UñÌ¿ |ø2Ê ôPöÞâ®`òùkUÚoDڣǒ†&“óxh…ÄŸŸ²:¡™Ãó&áCŒõ\ þ[Å5¶r7¸Öyñv*×§T&€¢@ ¨y„¾¹£Ð,Z¾hù¢åâàVsœ3‹7"b½¥Vü?× ½Ó<¬¡½éhóa6[]ï5¯áîçC<¿kd½­ãžºZéõª™,ÒšU±v… ©CZÕ`O/Kš£ÄÛ™œšœšœJe¢äJ{˜ö0-<šŸvÚTm³jÀ†›õŽU2Uþó$‡cwYzÖñÓþØ&¿Ðòj0;÷Ÿo9°ÁÁêΪvíï“i-]ò8ûùkûkûkS™¥ÁÀí·ܞǓçN,]¹X‚Òû×¾<›ÇòØ ´cΠ6ö¾3—žµxqÓ¯¦»ûeLl¡Q¯ºî?WÒTt×î\½½j>9¸Òx==Cuñëʼ›y7ó.• @é¡ì½Å]ÏÀ“lnsPúûßóX/X½n¾G{÷ëgO6r¤ö? ÍÎç47hYÓu¾¶¦òÏèx›ÔÔ¸­Ê°ézç‘Z/ůN¹>¥2` ¸È/ôÍ…&ö@ìØâƒa“Wó¶6‹‹7"}Õ ïÿ]2õªò·æ?Œo í^¾Ap­«•‡iÌÌýï[u1¬UÝG%ànƒÍšéJmνœ{9÷¨L”`ÙŠlE¶æ*ÍUš«Äžuýl‡¦ÁªGRç¡ö-õAùŸa¬ªw¯¬ñ8úàÁ†‰ªGT IwX,Þæ#¦GL˜R˜¥ÁÖƒ[n=(®»ßý=×ü¡j7‚VÞ̹ ïìê+´~Óîm=alÃE7UíÚßú±¡?EßÍcΗÛ-·[NMPÚ({oqoлñÊv¦cU!(õ«t¦Ÿºá”Úõ+Ï-H'Vë’ílÍÍÊ`X5àE¼½C=°rMª\ŸR™Š0ð-É;ôÍ…wØ\J¾”|I|`´îh8¥ú.UˆK•Û3åE=“³ÎfzNÚ”ÏVŽÔ̪:wÙüÆÓ-óͽz4Ýø¯§ÚxUù[󇪮ê¡CúÛì×÷S…Wôü®§Y£fâ9ïáÛ÷‡/5 yã=Æ{Œ·¸Î\ß·®aU €•ÿ^ùÏ}2Ûõ©ÙU_Ðm¬©¹¥Rí Aö§Íc´ºO=?$ÔÔ1%êtÝ&ªý*ÇmÜOÕrÏyR¹¤rIå¨ÉÒàn×»]ïv×€þËçû'¨ÚU³ÿ¼SOéç5ažv?ë•õ~RO«b[õ†úÐÊ«l¨2Áâ„c×Z£ÚôJ¨›¸èÍQ]UÛ~åè ÌHÜÖA<çs&Í™4g5 @i£ì½Å½AÃ]~©ª:¡©r«Ü™ZÏð7“Íõk-ÓŒ«zY½­†våê×êasRsrK/Ÿçµ¦úû^>gO•oý§iäo6UÄ[¨\“R“Š0PÔJOè›0 Oš"M‘¦ýƒöÚy\eûÑc «»êÄÀŸû_UóæÏ;?µô·›&ží½Ú{µ÷r›VÈĩΧ:Ÿê,®ó•Q—Z R…¸T*Äýܯ cÖ/±{›zJÞW <'<'œš, 2§eNËœ&U ο¬K?÷^5cÔü¯ëUµ«~s†ÏºV–,žíK.¸t€š ´QöÞRýXÀšës–¨ÚÍ“¥]qÜ«š7v¯;5ÈPG<ÛÊ5)5  èE¡t†¾¹£Í==÷ôÜÓy´Ëiîíê4Vµµ¤õGé.Ó®,ží—n/Ý^ºQ‡ÍÍMqë¹UŸ]1Uq?no³†ª¦–ÄñÒÃ-Nyܼz¬ùXó±æTciÓëD¯½Nˆë¡¶ûÜK»·ªfŒZÇ/×­:ç'µðHÿ-ý·ôߨFJ'e.î†Îß}Æ2XÕÔ<޾qÜÑF«™Î@õ âÙV®I©FE‡(,„¾¹£Ým|·ñÝÆâC¨]ŠÑmÉD¶…5&=ï3Ê%^<Ï-.Z\¤!?nfnfnfâš¿÷fo-çÅ·…5Šì´½Öñ<_.s¹Ìå2Ôais*åTÊ©q=X¹oðšà¶Ðnþ³ ’|GãôÆé©@E(BßÏEŒ"‘:$uHê©Cî•Vßï!Êý²qùÄÆ÷,‹gÕïªßU¿«Ôä-èSЧ OâúŸ>wh¦é*BÜ/SŒOhÒ[êŒýºÓëN¯;Q{¥Ù“à'ÁO‚%¯ŽµŽ©@”ûecÍ#-v)žÕuã×_7žÚJÊž\ª›Ø÷‚¡½Qî—nUF=ªù—xV•kOjÀ·A H!ôýÀ(BsCæ†Ì ~£fÚw7¬D”û¹ã›Õ}ß6î*uRKú=é÷¤ß©:Èü-ß<Ù<Ù\ê(xºãP†KîçŽÓû½cºP<ŸãfŽ›9n&U%ÏDÏDÏDq˜Zöí;¾Qî玵ƒæÍݳBêlöáø‡ãŽSu 7ežÇsjË:QóQîçŽc½OŸ´µ’¼Ë”y²y²9UàÛ r#ô-,À(Bï¾{øî¡ÔymGפú‰u >ûζµ~‚x&}«úVõ­J½¡ô˜{aî…¹ÄÇBçíÍÛêò<àÏï×ßÛÇy³ÔYúÅÔS_L¥Þ ôpÕÃUWIUKÝ€…»O'Ö-Ш¿¾]œg•¦•&‰g245454•zbÊþ\ª=èØQë›Äºm"[ÞªÚR<“Êõ&õà["}‹0ŠÜºýëö¯Û/>8«ÖѨ­¾$cΠϦ¿îæ?FO븡®äiîÍÉ7'ßœ¤ÒPz|0ÿ`þAò:àÃ:‹æ;þB¸›ÿ˜½ëlfÓ“vÛÍ^jUÏapÕàªÁ|­y˜Xnb¹‰åòxOïn·µÁGgƒõãñæ?Z,ðþmf¶Ô,£jFÕ Ž> IÙ«‹»½ò*™2(þ¹1ðŒ}ê®Ê1•¼‹ùó\û à›""vEìŠØEè[¸€Qä²6emÊÚ¤û“îOº?‰WÿкN&ÀÒ·}nÜ÷bcW©“Ý–9[æl™C¡t:xûà탷%oýê°¹Ëj‚^©qæ'sÉêÓ•OW>]¡Æ –œœ"ù<`³«ƒBžñJÞöY²Ý;Jjö„£ÂQá(5ò§ìÕ¥:Š6zã·é%╼íó¼Ói¶’߯W®1©1ß0ížížíNè[¸€ñ$h$h$hHÀ–·ùáqoî1ÛÞ«wÓMM:Õ2ªšÇ Z¸7poàžs3çfÎMª ¥Ô[Å[ÅÛŽW:^é˜Çǽ s4w§¿<ó«ëSâÞÜã©I+×1”:Ÿ[ný¹õòy!òBä©*²x~ÓOĽ¹ÇúuV¹!V<§q_©Fà q;š5(ÑïßÂ~†µ¥æÇ¹¬sYç²YIYIYIÔ .Ý7Ý7Ý×è¤ÑI£“RÕU7|‘Ó‘º¥4úý¸îÔ¹íº]Ûv)5?ñmâÛÄ·¡–À—QöðÊ~^ªßøsud¼MÃR¿qÐѪQŸº’÷@pnÀ¹Ô€âE  (£¤ÎOŸ:¿êïU¯ú»T ~­cטú–¥(ú Ü´™õô%N×LC¥ædÙßËþ^ö7õHÙµ%jK”Ô䳯÷R£Ÿr:ž›Ø4±ôD¿wîží\]-_on¿¹ý†']á =ûîÙwϾ˿Æê ºœVŠ¢ßÉkÝb£u=›¸”|øÅÔSL¥~À×Söóù÷c£ÜŽDYû–¢«~#þtxï2§ÿ]É'þ*×ÔU@  (£Ø<Û÷lß³}ù/QNhup®½ZÞÑoÆðA›þàõÁÆT_ò©œý&úMô£f€5ÍwæÝ™'y[Ú®3ÜNëŽø¨uɵ±¼£ß³¦ëžÔ}”ÿ9öáOzø5ƒ¯w³éͦ7›æ_o>Ó߆iÈ;úu:ºbÿ©íÝ6sœHÍÃjƒÕ« ¨P¸”½}þý˜—Çv+ yG¿þ.—ÛÇÙ®k=°ê©yP®©*ôY0€"@Œböh£ &ä¿D ïÒÈ¢âô`÷fuäý>mÔûš‹ÕŸUOV6’zícRƤŒIQ R R ¢Z€ÉQä(r¦=œöpÚC©#«úzíðŠzNï[èœ-¿è7ôª†uåüÏ«·-n[ܶ XP¸.'\N¸œíY,ñ®6KM~ѯãæÙ»w¾Èÿµ/JX”°(:EGÙççß“tÜ5CËp¥ü¢ß?õŽ+l45gWí¡^Gêµ+׉Ê5#Õ@u( ÀP ‰ñ‰ñ‰ñù/QœoéMÔÞðD¯÷Ï 3Jzô»÷»V9öÞù¿Þ@E "P¡Ø©Ø©ØI…_&$4$4$4ÿcm˵ålu9qçJrèû|×Ñ?9µuw‰ÑÑËÿõÞŸxâý‰ÔŠNB½„z õò¯Cçu­«×{ºLó/ÛýV[ïçbö]ÿÌI‹ó½kÝ׺¯u§6À·¡ìùÿãky§›$UIw/º‰íöý&8:vIZnüó\ZJmPMÀŠ0TÈ;wï4\R]R]RóoÜ—ø5úËÒ!»“×Ц;KJè{VçˆæÕõT ÈÿÕ­¹~äú‘ÔPXÂw…ï ßõÏ(fu¨ŠýÍ?wÞjйÄD¿nqõ›U_». ¿õœU¬l¬l¬l^®}¹öåZêßF¢{¢{¢{µÍÕ6WÛü>y?3¹dE¿=¦oغWãEîµbóuG*©x¤"õ¾=eÿ¯\ äß±tš3s…áã@³ «””èwÄæˆçV¯jõ°9¡99ÿW§\RT0€¢@ •“­“­“­x4ðhàQµØþw‹»òé&¹žTµÐ÷qÏ^'^fmÛKÿaA^KœSœSœ5…k›¯m¾¶¹ G¢çí¼jv¿¿eïçHU }3›Çj7uØ—<×þ–1ñcâÇÄg´ÏhŸÑžÀ·—v9írÚå:ä_«´+vÖhaýlܲ%‹l]svÊÝäùÖ÷ðcÕ‡Ô3nÖ-ÿ×¢î£î£îs§ÓNw:Q x)×ÊuAAV=Ï,;jò) ñµcU-ô½òxEëçŽá}«%äµ(×€ÔÕG  (C¥EùEùEù©ؼé΃ͭ’}ú¹4ž]\¡ol\§Ûu/¸—7Þ ó© ÛÜË«—W/¯·ßv|Û‘=µÔÅ©‹Ssæ8̱ GhóáN}«-,W;Ö™U\¡oêßBå&Ââ¶ãfY¼+øùðØŠc+Ž­`Cuì«¶¯Ú¾j¯aÓ´þ·&yÕO]³±¸B_/?Óe«´Ö˜ýd›Pmöä7ÈoÐ'ÓO¦ŸLÙã@Õ(×ïÇÚéû›Tždq±ý¨â }l¶7Ÿkêçlªu¿ Û¬\ë)×}ìq%0€¢@ŒàCÏ=?ôôŸï?ß~Á*+giO}^ÁÜ;6«åÙvYhm‡ÚQñ®M 7î½óx÷çê«îMmµÅÒÇè¦æ›‚oÛèøÑñ£ãß­{·îÝ:ö/TÓëN¯;½î4påÀ•W¼¶+¯7ziyݼ¼—ë”˵ïÍÚûwá½N‘+ŽZm½blèb÷N ´9\ðmÓ»®w]ïú¥¡—†^ÊþªO¹^P® Þóè›ôÖHt?1mœaËQ-ŽÄXûnÐëïzy„ýù¾û×µ7[]÷—.K«F?¦\Ó)×wì_%0€¢@Œæaµ‡ÕVëq½Çõ×Õ¾ˆ®‡¦^Å¿ú9YýRóNpjÃ=æv:´t°ëzܵ½µã§ÓIîÛêøžêá®Y§Æ¡Îm=îlP4;cÓ$ÀµîM“!-×<¨ÞJí+¬Õ]«»V7=+=+=‹½ ¨‚¬*YU²ª„• +VîkŽîf†õ<«¹M²0Úøðzí)s­ã#,ìì°û”ÎÊu*µV[Ô™YvYßڵ—Ìmo·u¡¹Ï=‹±WuŒ©µÆÀUw«Æí/û{;hwÐî }gÑEw±7Q²Ä/Ž_¿Øõ“ë'×O_Vÿ•4jü­ï£×£Ù²ÎýLföùcÜRËÍ#}æyÚøû\–f»hâ­Õ=lµ&t^9ØêÕ˜I!‹Í– ¼8ùþ¸öžýÊVYi©ëÿ5GýžÓ{Nï9}*ûTö)ö&(‰”ëåšâË:"m ½ÃGÔíÒµFõ«mu'Ô?ÙÝnQ“j}ç¯S3 0a³©ùìþÓ6N4¯Ý{ÂÊ}¦³ÿpžuݨ†kõ!¯ô†˜Üm ¥µíkú1å:N¹¦co(¹€`”`¯ø{Åß+F¯½bô 5•¤§§·Íi›Ó6§>>úøˆ½¨² =>{|öøè”Ñ)£SF5Ï-ƒüÃàî츳ãÎöä!Á3Á3Á³wÞ5z×PÍãÎø½ñ{ã÷‡zêu¨WfNfNf{ ȉr}¡\k¨f?¦\£)×kʵ{ €<( À‰+>¬ø°bÿ†ýöop}àúÀõAq-H|m}m}mãûÇ÷ïÏ~Jº[‡o¾uxrÏÉ='÷,®³J}—ú.õ]†/ _ø¾öûÚïk³_ oo^¼yñæÅÖæ[›omn7Ün¸Ýðâ:úftžÑyFç{—ï]¾w™ýJåºC¹Q®GŠ«S®Å”ë2ö ¹"P€![Œ>}0:çqÎãœÇìã³Ï>^ß¹¾s}çÂZ„ôªÒ«J¯*[»lí²µËƒ¸qâ˜s 4x´úÑêG«wLÛ1mÇ´~?öû±ßêjêjê…pVq<éxÒñä´ Ó.L»òþòûËï‰ÅÛ o/¼½p:ìtØé°ÉQ“£&GÙXÚXÚX~ýqW¹fåš•kº?èþ û»—ï^¾{ybëÄÖ‰­™s€Ü”kå:E¹fQ®_ áÞijêjêjʵ•r¥\s1ç_ƒøG¹„s ç¢ËF—.3%fJÌ”Ì3™g2Ï03¾Lθœq9ãbŽÅ‹9sEãŠÆ f(jç‡v~XÔܨ¹QscÒbÒbÒ ŠE3ðm(×>ÊurM¤\13ß0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0È0€ïEíµ_ÔŽÞ½?zô•è+ÑW^·}Ýöu[fàÛxëòÖå­Kô›è7Ño¢—F/^šôCÒI?03@Q;ÓæL›3m¢l¢l¢lbbb˜(>,þ°øÃâ“““hhh¿Gþ=òï‘Ì ”NÀTNÖ¨¬QY£®¿ºþêú«e¯—½^öºµkk×Ö®j…¤íƒ¶Ú>Xi¿Ò~¥}¢„E ‹²GdÈÁÌ(å´Êi•Óê¦ÍM››6«}Vû¬öéàÓÁ§ƒOaõc-6·ØÜbó’uKÖ-YwÍùšó5çÌn™Ý2»1óÀsÍçšÏ5N;8íà´áŠáŠá :u6~ýqg¼Ûx·ñnßú¾õ}ëGVˆ¬Yáõž×{^ïaÎ@EÍRÌR̺ÓéN§;Ö=^÷xÝãÎ ;/ì¼°°ú1×.®]\»,x¿àý‚÷—b/Å^ŠýôöÓÛOo™x`Å,û]ö»ìwQã†G ﹸç➋Պ‰çLÏ™ž3Ïütæ§3?åœÏ9Ÿsž½J…‘ББgCΆœ à=À{€wqõcÝ–t[ÒmÉ©˜S1§b²³³Ù9·ÇÓO<}Áðà ¯8«â¬Š³¾ýqg``:(tPè ^txÑýÅå¢ïEß‹¾ÞÞÞÅÕuÝat‡ÑÇ[ou¼UFûŒöíÙ/@þÄÇQÔ÷QßG}ÏÌ x(¯^;½v 46h¬š Ù²=d{òÉ?&ÿÈ^ròöÈÛ#o,9·äÜ’sªÜͶœm9Ûòe·—Ý^r}0J¼œš95sjž2W·1½ÑÿÂÆ,óvl7…›òܱfª™k·y º·3.²Ö]‡ÊWóÕp­<°Â¸/û{½·zoõÞúlÁ³Ï°7%`¨&`E(Û>Û>Û~Møšð5áŸÛP6ïwÛVlZ±iŦ¬†Y ³²—¡šnÝ»uïÖ½ÚqµãjǼ¶­½Ýækßî¹`Y7“D?­3^v ÷¸óù夻Íán–ÁûŒG˜üì´E«_Á·­cÛŽm;¶M¼žx=ñ:û>ÃZÅZÅÚ}zûôöé}nÏÓÈ|ÀY݃þ [ea3ålÂb‡O…û¾à=fe+›V§}]k¥UœªY©‚cÁ·-Ø:Ø:Ø:ýEú‹ôìd”fÀPMÀŠÄ]½»zwõLê™Ô3©W–±áÔ¾‰5ŽšuÔÁ:¨ãÞ#<´Ðúÿ éíTò@×¾´°iaÓâÁôÓLgUó(òQä£Èº6umêÚ¤·qrë¨ã;|áÁ_¬BŠ«ûSãøs›  Ð )È6ë}¯÷½Þ÷7Þ\xs!{ª «yVó¬æó~ž÷ó¼Ÿ RÃÕM ßh ïå¼|¶iâ:Khíð²Ë ¾F9nT4S +È–o8´áІC /…—‹ýRž…? î6ÇmŽÛœ‚œ]ovªeMÙãc¹·¸ÞÆÚžîf[µéïyz/ ”×P«¡VãrÊå”Ë)ìq”NÀPMÀ YX¹°raå Ò¶Ñ¿Uè„>qýìâ‹«©•Ç/<›eÒòÚØµ¶䵄¯ _¾’½TÁ>Å>Å>EAz·ñ£çÔ¼ïw$6ÐÎMÕú±‰5ϲ×l×ljYâ(× ®\Ùû(.‰“'%N²hjÑÔ¢iþµjX/RËq˜Óž˳ªvÜMùð·ãO{l9`~½Zo ýü_KÛ¤¶Im“Þú½õ{ëG @n‘ "D6(HÓdÃM½Fã’¢;Ù†«Úû¤™— ìƒ:Ÿac¸¶ ¯e©ÝR»¥vŠMŠMŠMÔJ`¨&`… «{V÷¬î£üGùòÿ+}÷kT#eš¸Ëv/T­©• ƒûŸÝi7¥þÍ^õu²ÿã¹tO|Ÿø>ÉöÏöÏö§*À·”3$gHέ­­ü;–ºÏ»UÓùޯƙ1v•JJ?6ñì…[ömÏö2Ó}œÿ«œ88qpbf™Ì2™e¨ |±‹bÅ.úOÄwVÐSsÔ)¬¿…QI9î”cï%+ÿ6]Xýo7»Ýìv3ê@©¶^±^±>èYг gùŸ3íî´[5gìÔÓOmKÌ;‚ÿÃ+ß5Ï^ó@þ¯Î£šG5jw~Üùq'EÒ€ª‰ÀWIóNóNóvÛë¶×moþÍßÐ)»w[Î-YvˆÇÁëw¶x™ÿ+íp Ã> ü4ðÓ@*µ ³ ³ 3I“<&åߥ Úµ­ŒEÓ’Þy·ÝwÝÊ@ݰâµÓ’_:ôièÓÐ'Õ)Õ)Õ‰ AÑÙg±ÏbŸEþÇ]Ë ±&µ‚]?èZr»I=.Þ¶Ÿì<ɳjÿ¸…i¬~¬~¬>µ ´ÉÖÎÖÎÖÚ{hó?Oö ^Å,±¤÷c#÷Ž´n¦=¡¦KÅÙR¯Ô¼yó6ÉFÉFÉFT䪉ÀúàôÁ郓Ãb‡Å‹¥Z½z¿vë¢ó›ô•öKzkû¯?N_šg¿ÞqtGµjw$?vìÞ°{Ãî}>ú|ô¡Z@QH–>,}˜[¢[¢[¢TOb{ºõúªë'n»°Þ¾‰œú±É»¯>whÚ ¨÷¸õ¤^»Ù|³ùfóߟ|òýIª…+Ì'Ì'Ìç?®G¿»ó’…BNÇrìó T×ì»ü_ûɤ“I'“¨¥AÖÒ¬¥YK»;wwîî,Ù“è5l_Es|£³#ìÆÊéaŠY|€C”k»¡MôÆK½vͳšg5Ͼþáõ¯ Z WÀPMÀ>[ºYºYºY½õÔ[ ÕÞ¹GLó2l8ùÆGù}äñÏ8ðÆVG‹vAþO $?vt=ïzÞõ|FZFZF• KÖ„¬ YÚžn{º­äU°­[úÙê× t¼áîX]¶ýXàŽŽDÏ>aÔZj¬·þÝú÷Úµ?jS9øz{Ëï-¿·¼T½UolTEc¬ïʘ¹¶Ïå}ÜîwlŸuBþ1ðÙÊg+Ÿ­LÍ«œ9rxÞõ¼ëyWêLØtœ·›Þ½)A fOäý¾Ð}颧&’Ï<ÖÞ¥½K{×{ã÷Æï©È0T0€ÏimoçÜιí±ßc¿Ç~©–®W呦&ònjóhs &ŽRsÒ¿Mÿ6ýÛ(æ+æ+æSEà«$+’ÉÞ¡Þ¡Þ¡R½G×yó—×-mý˜gÕÐYfRsÒþRûKí/eßȾ‘}ƒ"—‰ÉˆÉˆÉ¼ºk±K•*õýÝ.µ¿PzŽ;¿¥±®v ´ŽÕ°UO•š™; ï,¼³ú ?“='{Nö”¼4¢ÍÔ=†ú¥­èºe®ùy©9©o^ß¼¾yFjFjF*õ9!†j"ð漟ó~Î{©6®O¿ÕÍMJ[k›{ì9bY “ÛRó³È~‘ý"{ª|U&«LV™HõÝCN_/ÍýX¿:ëëšÅJÍO`¿À~ý¨"|®Çã,ysK³;.‹«tšüàZ}‡?Jçq7acÜM»WZÃuv¨K®†Þ½÷þÝ{j €vüØñ£"B¡ˆ ®”\·Ìn™Ý’Œ~[›ûæèWá៯åy®0“|X@xpxpx0y †j"ðÞ¼5xk Õ®¹m}¹æKšZñè:~è|½ÙRó–Ò<¥yJsª DšzšzšºT_ábÑÿºÚt_â±õf¿Ëú¥æíÕöWÛ_m§º¿?ÎøqÆRUä×àL˜] ޵Üã¨yGë[KÍØÖ[?nýH](‰2B3B3Bµ²µ²µ²Åç·ÚZT¯8ôÆnGKÞ rêϬ`xVê}áÉö'۟СÄ#.,»"vEìRÎጰa3’ݒݒݘ™/C à? Ø2`Ë€-â·1ãÊõÊh©O™“`àð˜vV<¼ŠWwØ]s»õlÍ&âÙ¡¡Aq€ñËòËòËwÕ5 ã4];æàM÷•ÇX&!ͱ¼E‡&ºU.çq›wï<ÞQ]3þfüM©¬‡í®hÉq'9öv_9Ät‚Ôì=Ëx–ñ,ƒP²Ì{4ïѼGâsZ…?Õ'¨Íð7½ÜØ^àüŸÇ8áFœ£}m“Ní«k‰gÏuŒë×1Š]Š]Š]ÔJ.ௗížíží.Õ=`’ÎÏ9?çü©ÓQ ¶Khdó}öœkóVj¯Î½:÷ê\* H¹iqÓ⦅T/ñçŠÈK6Ît\ÿq[Úg’í$ç0Æ4Æ4Æ”JCn999âšiÓs‚ºþdެ‚ŒNí»ëä÷XÝcuÕT€’â‘û#÷G’±Äðww[íᜟÿ8ÑïB[{;©9<Üêp«Ã­¨4”\À_/÷µ¿ù# .8`y}äq<çxÎq£òFåÊçqµD­^Ƨh^?ã©ÀÌ9f4Q<“v±v±v±ŠÙŠÙŠÙTø—wŠwŠw.z.z.zâ.½ÇÔs†&tYŸñTàèe&Å3YåU•WU^eÏÏžŸ=Ÿ¢Ã??µŠhÑJ\-•ÚVq¬p)`Õõi‹9¦ ôq™ó“ìËK}xw¥û•îWºSoT_—ð.á]òx|‹DŸjuál_ð±ÿô“ÍkK½/düšñkƯÔJ"௧ t•á®Zç@þ2øËà¯<žû[ý¡±¥ÆŽ)"¿£m-ø8¥Cüi‡Ë•/U_ª¾Y<«ÑVÑVÑVTÈ-îZܵ¸kyÜf0D}Ú‚€Å×}Bè²>clrc°£^­(Û±šëųq0â`ÄAªY˲–e-“ú€iðíç-r8š>wì±lÉV“…âùtç<ÎyU@•Ýx~ãùçRï þ .°Oä<ÿ¹£ÕÍ*k{ŠçsËæ-›·l¦êP.ÂàÂB àß))zzz‰O£C“-hU¿l42l™…u×ÙÙ)ÒiŠ4 (¹´piáÒBÜ9ô·Ùðʼ*Õ—Þžû>X™‰gUë¶Öm­Û9Q9Q9QÔ^ivÄìˆÙ‘<*ÄÒÆu›6ÇÝ—~viB}‡$Íß´§«ÿ.žÛë=®÷¸ÞƒÚ šºÎì:³ëLñ¹«§áÒõ&§9ÃÙ8zéñÿ³N’Šp2g>Î|Lí¡d!.:„Á_ƒÀ¿\Õ¸ªqUC|ÒÔ÷²[¬y30ðF­ê}o¬s4Óih|Uãœx†oß4¾iL€{ï]¼wQÜ-T~Rý¨úÎÀŠ7*9V ³úšÑ´wƒl­xñ Ç…Ä…Ä…P¥Ô+Å+Å+3u3u3uqmŒhádDZó5cß#뺛­É#DqééÒÓ… j’.&]Lº(-<Š/ã°ƒsû׌‡;ÄU Ïmd“È&‘M¨@”,Àßaðç"ð/ý+ô¯Ð¿‚øD9ðÐVwó÷´§_?ök¶¾ƒÙ…<>TúsÄŸ#þ¤ÀøAã$îzoX™fº”nêëÇÁ©;3,ÏpW—®.] ¢J©»Â]á®Ça›Ûyh^à¨)„ë€-â§9DI}0—<'yNòê€êþ>øûàïÅç«.'‚l>pVÿúqDü¡VYânرadž©@”,ÀßapAøGš}š}š½ÔÉqŠ]ü|‡ÚÓ¯z^×r˜,5ÏŸR>¥|J¡(233¥ú„ÉîW›9ÒMBŸæ%5Ï)eRʤ”¡K›À À À q=ô=µn°Ù:ŽšÂÝ·LkeØX<ÏÛ&l›°mu@äLÈ™3AªO˜¸æÂ|û†œÏ a#ÖÑ®jºþŸÅóü²ñËÆ/S()€‹a°`ÿ8åÊÿ”¿øTØê½ï ýr4¦…;6ÿ¿‘åköÏvìØ±7¨FJ§KG/½tTÜ!4z;HWwTáŽí7Ä,Ïö‘ÝGvÙM5–9 rä,üâEÙ+ÇÊs¼ÖèëÓÁöžxžë4«Ó¬N3ª€*¸«wWﮞøLU[³“UuuÎä…;vó\ðÆâÙÛ¶7l/Õˆ’‚XuçF àƒƒŸþFÏ8öÎú-i!ßèæü! «tñlûXúXúXR”Nüð‡¸Cv{ß/–9tP…;úüz²“Í‘<žHêÛÓ·§/ÕXz<<õðÔÃSyD’Û;'W_Á‘R£®±¹q%ï<®¿ožÒ<¥95  x-q^â¼$;² ì°eƒùeÎá…;ú ;“ig%ží&›•Yt÷íîÛÝW\ã9û?»~#E1Žx¸žµ…xÎg¿˜ýbö j@qIIIŸjünê\I³wÑn¾£gÔÌãw½îzÝõ¢2¡ú€K–ÒPÄ‹;L|Ró’l|¯x[ÀI5.Ž´¢ãmRSã¶r«,v7‰®ò6ÿßš|åš¾Cûš/¬?ivSþ–Ù¨†·«XOYÐÌá¹ê4¸Õæ46 žùK3/ͼ4“Ê ôH0H0H0wFZÜQ…¾E®]Y¯õ+M]Ä32þdüÉx*Sæö(ö(öH}ÄhyÃÕQ›ã®(FÿsW<ìóx NÃû ï7¼Oa(._?|ýðµøìÔÜ䵚sèÇŠnè¶%Äü‚xæ÷Øî±ÝcKeBõ—\òƒ €(VÏ_=õ|ñ‰lÄЈiV·T¡ügƒ¦ªÝRsüׇ2Rß }¦æ 埩ôÖ® ÿt‰´·ÑÍÿ·¾ý8¬ÓÞ–WÄ3¿Åj‹Õ+*€Òc·ûn÷Ýîâ®`p™-"T§{‘_W6ºÙ±)Öy|à¸pä‘ GR™ò–v"íDÚ ñÞ·Òhf§=ˆã®¨G ÊAüóx ““z'õNæq#bÏk¦š¹ò¾Ptã¸ÖQMmýÄ3?ñèÄ£R™P}Àò ¿0˜€bÄ#~ñc7={qn‰Ý.•kpÕÔÔÔÔ*;W[¡î3®eT#[¿ÜfxûK­&¨·­˜©vIù';¹Í40¼ jv(Gßçg*Û}ŸÇÌGŽIePzLO›ž6=MÜŒ ¬m]U­‡‘SW6q×…öMÅ3ß÷bß‹}/R™òöÔà©ÁÓ<®¼o±f̬Z 9îŠz´ÓiÓ¨ê `ªc囕oV¾Ÿ—FM9jb=—÷…¢'O»êP[<ónOÝžº=¥2¡ú€åGa00EÓ™Mg6)>a¸]KuðUvP|£›Ü ë“øI‚Ñ­ºK+çüóÍý×Í÷hïVågœLÖ¿’æPY<óîÝ»?¦2(=zŸì}²÷IqW0I¸4ß~½ªõ0rêʦXÇÏvˆÏ|íµwÖÞIeÊÛµ>×ú\ë“Ç£pî-Ü`¬à¸+ê±ùÞQæ5WPã²ÆeËÊãkúmÎN³ÏûBŽ­nŒsÔϼ¶¯¶¯¶/• ÕG,o%7 & Ð_®¿\yO½2»áâXEE¿á˜ëF7=.-ýÙdsÛÑÓôïäþæãØþ§÷Øš«æ·ÝÿiÇ·&tuÈãé2v5íjÚÕ¤2(=™72odžÇòãË9ìTÍNF&]Ù˜9Úˆg¾Rp¥àJÁT¦¼Ž={:V¼÷tß”bîÏqWÔc§3÷># :ºŸî~ºûiñyÉçûdÞŠzÔÖÕ[Wq(ï (‰€K’§:‡U£ÊßϽUÞêµ®Ø]C»rõ ƒ•ÿ¦[`ÁøOÕ½o¬p4¥Ò€”)9 ï¥++êQ3³š¾z/ê JCRv²ìÁqWÔc÷m‹6iB½P}³®÷sâ}¡¨Gý‹öM53¨7r±+bWÄ.`ŬâÍ~šªrS(u£û!í¦W³TéÐ7÷8þÆYG;ê H lp£—c º²"¿â$¾æÝŠ[©7( ‹ÝûÜòÇ]Q½Ê.×5-O½P}SÊÇ»9á}¡¨GãÁõhYRoä*#<#<#œ€j|à¨ò­¡x›» ›·ÞèV‰ €¹äKõ¯–GWÆÀÈMõ¯–ÇqÇÀJ Õ¿Xï \ @ÞJÑÀÊ{ óÃ?ªðScl±5ÆŠOIªù `å8ªÌ‘Ö}rßÐFIy£¿ÌØT»^ªßÚJ=Ø´—i/Ó^T&?üðÃ?ü”žûDûDûÄ<>pTágˤ+“x°†•†•†•)ÚKµ—j‹÷¾*?XN«!©gS™üðÃOqý¸Å»Å»Å‹ÏKªü `9½/H=˜ÊäGõÄu»¬Ü²rËÊ13òû94þÐøCã—\vpÙ‚G¿Ê?_Šž @u4ÙtfÓ™y|àèv-ÕÁWåBS“øI‚ñ '#­–Êí´ú¹Y í~ʦö_¶Ê·¶“õ¯¤9Tϼûc÷Çî©LJÞ'{Ÿì}RÜL.Í·_¯¢_e“EW6Å:~¶C´xæk﬽³öN*SÞ®õ¹ÖçZñÞ÷¸·pƒ±‚ã®¨Çæ{G™×\%ž*@q—5.k\–ø¼4¾ÍÙivãy_(±ÕqŽúâ™×öÕöÕö¥2¡ú¤¾¸ÀÌȃ2¸6#lFXÁC_åŸÿö¡onÀ#~ñãˆóhp_œ[b·KÕšÂÖö~åõ«)·P³[ÕŸÕÇö?½ÇÖ\¼ý½SVM3Ý«Ê ®ïó3•íòøŽØøÈñ‘ã#©LJéiÓÓ¦§‰»‚±á‚µ­«jv2òèÊ&þ©x›û^ì{±ïE*SÞž<5xj Þû-ÖŒ™U«!Ç]Qv:mU=A @u¬|³òÍÊ7âóÒ¨)GM¬çò¾P„HL»êP[¼ÍnOÝžº=¥2¡ú€å§ä†¾¹P¬ž¿zþêùâÖˆ¡Ó¬TèI!Þ÷ö_°ê¤~JCPûçãÑNÇf¾1LÍýMF›#-¯VuSþ›ªÇôGTLpæ|e»OªÙàë´·†åñÌo±ÚbµÅŠÊ ôØí¾Û}·{·Š*³££E„ªõ0rêÊF7;6Åú‚xæŽ\8ráH*SÞÒN¤HË#€´Òhf§=ˆã®¨G ÊAü €¨Ž“z'õNê‰ÏKž;ÖL5så}¡èÆq­£šÚú‰g~âщG'¥2¡ú€åA¡onÀ±Ãb‡ÅËãÖgcC’ï©B#àzí•Ã8ƒU;*;+·Í¼s£¡U&þ~ã7ÇÝÄFù_+ýYe\…»ª£›Îjs Ïü¥™—f^šIePz$$$äq%b‡‘–wT§{‘_WÖký GSñÌŸŒ?2žÊ”¹=Š=Š=RåZÞpuÔæ¸+ŠÑÿÜûtñœ7¼ßð~Ãû&€âòðõÃ×_‹ÏNÍýG^«9‡~¬èÆn[BÌóøBÞÛ=¶{l©L¨>à’K~¡onÀ/Ͼ<ûò¬øDVGãÕUâ›ïÍr¬ªÜ* íÊÕ+ •tô¶u¸TÛ*~-ý²7„˜ÿªj ®­i«eU‡‹·695959•Ê ôHÙ˜²1e£¸+0ÿÑå~•¾*ôÌNÙue ¢z߬ÑZ¼IúIúIúTfiÐÝ·»owß<ËòËÙÿÙõã¸+ŠqäÀÃõ¬-ÄÛ9ûÅì³_P“ŠKzHzHzˆøìTãwSçJjôcE7ºùŽžQóžx;ïzÝõºëEeBõ—,ò}s# È‰Í‰Í‰•:µMÙ”ÐÑáUqµ€CŽìê`éVánE[µmÊíi3oÂýàü¿±8euB3‡ç&¶NÉZ£r¿–I5.Ž´¢ßÖ|ÿ»Ã.©9W¬Q¬Q¬¡2(E2™ŠL­æZ͵š‹{ƒÉŸ®y9ô,ÞîE†]™á GÇÊRýX¶_¶_¶…Y„• +V.ÇÛ®ïmv‰ã®(F÷UÓê:‹ç<6*6*6ŠšP¼ì3ì3ì3Äç¨IÃ.¦ÙOã}¡(Æ*Mtu+æqóíôáéÃÓ‡S“P}Àª¯ô„¾¹øÇààÁÁƒƒÅ§¹Ñ3޽³~T¼à—Ý Fü[ªs£›çYXåqÓ3KKKª€Ò)à€?þwÃnïûÅ2Gz9ue>¿žìdsD<Û=}{úöô¥K‡§žzx*û!mïœ\}Ç]QŒºÆæÆ•¼ÅsžÒ<¥yJsj@ñZâ¼ÄyI_RØaËó˼/îè7ìL¦•x¶›²ûÈnª±ôÈY³ gÔ@“Ë^9îPžã¥°F_ߘ¶yÜä³N³:Íê4£¨‚»zwõîæq5jmÍNVÕÕ9“îØÍsÁÿˆg;loØÞ°½T#J `ÕAè›0€¤Ù§Ù§ÙKÞÚ.~¾C i!Üü¹çu-‡ÉRóü)åSʧª€Ò)Ó9Ó9ÓY2ˆr¿ÚÌÁnêëÇ)ñ aYRóœR&¥LJª±´ ×CßSë›­ã¨)´›?o™Öʰ±xž·MØ6aÛê€*È™3!g‚TŸ0qÍ…ùö 9ŸÂ8þF¬£]Õtý;?‹çùeã—_6¦QR/B_)Àþ¥…þúWÈãF7‡¶º›¿§=ýú±_³õÌ.ˆgxÄŸ#þñ'Æ?hü q·Ð{ÃÊ4Ó¥tS_?NÝ™aù“x†»ºtuéêB–Nw…»Â]A\úÍí<4/pÔÂ/,â§9DI}—<'yNòê€êþ>øûàïÅç«.'‚l>pV/„‡£Åj`•ÇòvlرaG*% ð·Gè[ÀþåªÆU«y|ðáe·Xóf`àšÔ/ûÞXçh¦ÓÐøªÆ9ñ ß4¾i|Ó˜ ÷.Þ»x[¨ü¤úQõoTr¬@gõ5£iïÙZñ⎠‰ ‰ ¡K©WŠWŠWfêfêfêy|Y³Q„“UÇÎ׌}¬ën¶&§n»ôtéÉ/¨œ¤‹I“.JEâË8ìàÜþ5£ÃáqÕBÅsÙ$²Id*% ð·Aèû¹€üÛ"Å"Å"C/C/C/ñérH@x²¥Mê—ƒF†-³°Ϫ]]]"M‘¦H£€’K —.-ÄC› ¯Ì«ÒY}Ùèí¹ïƒ•™xVµnkÝÖº••Eí•fGÌŽ˜É£B,m\·isÜ}鵿Kê;$iþ¦=]ýwñÜ^ïq½ÇõÔÕÔuf×™]gæñåÃ¥ëMNs†ÿ²qôÒãÿg$Õd>Î|œù˜ÚCÉB\t}¿0€<üeð—Á_âSgõ‡Æ–;¦òèÚáråKÕ—ªoÏj´U´U´Ur‹»w-s¨¢¾GmAÀâë¾!tYŸ16¹1ØQ¯V”íXÍõâY8q0â U‡¬eY˲–I}4øöÎó9MŸ;öX¶d«ÉBñ|:sç<Žª Ên<¿ñüÆs©÷ÿ—?Ø'ržÿÜÑê‡f•µ=Åó¹eó–Í[6Su(‰€ ¡oa!‡œã9ÇsŽ•7*oT^|2õ¨ÒËø kÁÇÎÌ9f41kcíbíb³³³©:ð/ïïï\ô\ô\ôÄ]„{©ç Mè² >öŒ^aòQ<“U^UyUåUöüìùÙó):(E´ŠhÑJ\-•ÚVq¬p)`Õõi‹9¦ 2N,s~’}y©é®t¿ÒýJwê €êëÞ%¼K¸ø<Ö"Ñç‡Z]8Û|ì?}ãdóÚRï ¿füšñ+õ†’ˆøëú`’ÎÏ9?çü©Ó븵Q ¶Kh^ó}öœkóVj¯Î½:÷ê\* H¹iqÓ⦅T/ñçŠÈK6Ît\ù~Ï$ÛIÎaŒiŒiŒ)•†Ür"r"r",--Å5Ó¦çuýÉYÚwÖ™ žÃ«{¬î±šJPRÕW®WFK}Êœ‡Ç4²â1àU¼ºÃîšÛ­gk6ÏÞÅÅŠ ˆ_–_–_VçÐ4ŒÓ`t혃7ÝWc™„4ÇòšèV¹œÇ]mÞy¼óxGuAJüÍø›ñ7¥>xj´»¢%ÇäØÛ}åÓ R³÷,ãYƳ j @É2ïѼGóåñxŽ?Õ'¨Íð7½ÜØ^àüŸÇ8áFœ£}m“Ní«k‰gÏuŒë×1Š]Š]Š]ÔJ.ௗížížíNè[¸€ü‡·o ÞH|Ý6Œ¾\ó%í¬xt?t¾Þl©yKižÒ<¥9Õ "M=M=M]ª¯p±èÿ?]mº/ñØz³ßeýÆRóöjû«í¯¶S]Èߌgü8ãG©*òkp&Ì®ÇZîqÔ¼£õ­ƒ¥flëÇ­·~¤®”D¡¡¡ZÙZÙZÙâó[mƒN-ªWzc·£%ï¹ÇNõgV0<+õ¾ðdû“íOèÇPâ–Ü×ú~=`rºþéú§ëKµkMB–Ÿ§©ý牿ç^7Ú'5W±ãbÇÅŽ£¢ÀçºØóbÏ‹=¥zŒŽ³§ß2œO'öχ/Ó1¹-5WÇÂ… §¢P™î™î™îFáFáFy<ýQç¸I¸FªÿØË1ö÷8îüÜÏ\°3”89,vXì°Xª½«÷k·.:¿ùG_é`ÿQNMí¤Ó—æÙ¯wÝQ­Ú©×Þ°{Ãî »ôùèóчjE!}Xú°ôan‰n‰n‰R=‰íéÖë«®Ÿ¸íÂzû&rêÇ&ï¾úÜ¡iƒ ÞãjH~Ïl¾Ù|³ùïO¾?ùþ$Õ‚Âæææ“ü9øîÎK ù}ÄßçA¨®Ùwù¿ö“I'“N&Q'Jƒ¬¥YK³–vwîîÜÝY²'ÑkØ¾ŠæøFgGØ•Ó;³ø‡(×vC›èI>(Aó¬æYͳ¯xýÃë¨È0T0€¯’æææí¶×m¯ÛÞü?:e÷n˹%½µ¼~ç`‹—ù¿Ò:èpàÓÀO? ¤B@QË0Ë0Ë0ó˜ä1ÉcRþ]Ê ]ÛÊX4-éý˜wÛ}×­ Ô +P“¼ú¹¡OCŸ†>©N©N©NTŠÎ>‹}û,ò?îZ5©pèúA‡ÐüØoÛOvžäYµÆœü_o¬~¬~¬>µ ´ÉÖÎÖÎÖÚ{hó?Oö ^Å,±¤÷c#÷Ž´n¦=¡¦KÅÙR¯Ô¼yó6ÉFÉFÉFT䪉@!ÈêžÕ=«û(ÿQþ£üóosîרFÊ„5q—í^””¦v|ÿ³;í¦Ô¿Ù«¾Nvþ¯Î÷‰ïß'ÙþÙþÙþTø–r†ä É   •ÇR÷y·j:ßûÕ83Æ®RIéÇ&ž½p˾mãÙ^fºÿãšËÄÁ‰ƒ3Ëd–É,CUàÛˆ]»(vQþ•©¶³‚žšë Naý-ŒJÖGü½—¬üÛt¡ZÜnv»ÙífÔ€Rm½b½b}г gAÏò?gÚÝi;·jÎØ©§ŸÚ–˜wÿ‡W¾kž9*¼æü_G5jÕ>îü¸óãNŠ¥0T0€BV.¬\X¹‚|@ÐFwüVý¡úÄõ³‹W¹ÐwáÙ,»–ׯn¬µ¥ ¯%|eøÊð•ì}  ö)ö)ö) Òø=§æ}¿#±vn*úÖ<È^³]ÿ%fy-\7¸npe$NJœ”8É¢©ES‹¦ùתq`½H-ÇaN{R,ϪÜÍŠ¬kSצ®MAz'·î:¾ÃüÅ*¤¸ú±?5Ž?·©ÐhñÀÝ‚l³Þ÷zßë}sáÍ…7²Ç¡ ²šg5Ïj>ïçy?Ïû¹ 5\ÝÔðÆð^ÎËg›Ö(¶Ðw]Bk‡—]îõ5Ê©p£¢™ZX¾rqhá ‡^ /…û¤< þ,ÜmŽÛ·99»:Þì(TËš²ÇÇroq½/Œµ=ÝͶjÓ5Þóô^d›Õj¨ÕP«q9årÊåö8J'`¨&`E(Û>Û>Û~Møšð5ájŸ©yç‘ójN’¾ë´e¯Bng§ÜHptR=¼±¥FÓ«ÞÏô2?wÛ6.ݸtãÒœs~Ìù‘½ TYÎÞœ½9{Ã&‡M›ü¹=kË¡õõü;ï8nq.pÐ0G‹Âíʆ^ÙSÏr‹Ûõ?jf}î¶­Ø´bÓŠMY ³f5d/C5ݺwëÞ­{µãjÇÕŽ+xm[{»Í×¾ÝsÁ²n&‰~Zg¼ì*îqçóËIw›ÃÝ,ƒ÷0ùÙi‹V¿‚o[ǶÛvl›x=ñzâuö/|†µŠµŠµûôöéíÓûÜž§‘ù€³º#ý¶ÊÂfÊÙ„ÅŸ ÷}Á{ÌþÊV6­NûºÖJ«8U³RÇ‚o[°u°u°uú‹ôé/ØÉ(Í€¡š€|#o²ßd¿Éž´`Ò‚I Ծ̦ ÕÙ^h} ê¦WÇ<®Õ¡ëÜùKëzê†.4«4à§Mžæ}û§or3ïÕç}h#³r]íƒÆÕZ4ûóu­š6[9Wí©ö·n ÜööéÛ§oŸ²7@Iô~ÿûýï÷ÏÜ6sÛÌm_ÓÙÔhSµ’ÛáÑk¦t¹4ÈHÑ'jõ[Óý_l²4ï6@sÓxóAžíB™t}lnܹe/Ÿ›µ&Ûmhk\õe…;mÔ¾ðo÷íáÛ÷ǫ´Wi¯ÒØ›(1**F–‰,Y¦r›Êm*·ù²ú×÷²[¤yÓ¥gO]Swaš¿aë^•–72Uﯻá¢y¥§7‡™¯ï7bý ³Û=./ýÕdsû£ï Ö4hÙ»lZ5^›¬äñe¯mYÛ²¶eãŽÅ‹;ÆÎ€¯÷!õCê‡Ô¯éǬŒšý¡íÝ|Õ¨k.îb5ÏÑ(ºÏÀÕmLoô¿°1˼ÝÛMáæ£[ðlÁ³ìM@‰ª‰@1xíôÚéµSÐØ ±AcÕTXÈöí!Û“Lþ1™+}€¬¼=òöÈÛ#KÎ-9·äœ*÷c³-g[ζ|Ùíe·—ÝØk(érjæÔÌ©yÊð”á)Ãzeë•­WV5»v»Ûín·ûBô…è ÑŠcŠc ¢_()wRî¤Ü ½z!ô‚*÷c}úôMêÔ!©{ #†j"P̲ße¿Ë~5ç<{” ###φœ 92À{€÷ïâêǺ-鶤ےS1§bNÅd%f%f%²s o§?žþxú‚á †/^qVÅYg}ûãÎ Á Á !tPè ÐA/:¼èð‚÷ Ø\ô½è{Ñ×[Ã[Ã[£¸ú±£;Œî0úx«ã­Ž·ÊhŸÑ>£=ûÈ0T0•“5*kT֨믮¿ºþjÙëe¯—½níÚÚµµka5²m´}ÐöÁJû•ö+í%,JX”="{Döf@)§UN«œV7mnÚÜ´Yí³ÚgµOŸ>| «k±¹Åæ›—¬[²nɺkÎל¯9gvËì–É5¾€â¹æsÍçš§œvpÚpÅpÅp…ÎF:¿þ¸3Þm¼Ûx·o}ßú¾õ#+DVˆ¬ðzÏë=¯÷0ç ¢f)f)fÝét§ÓNë¯{¼îqç…v^XXý˜k×.®]¼_ð~ÁûK±—b/Å~zûéí§·L<È0€ïEíµ_ÔŽÞ½?zô•è+ÑW^·}Ýöu[fàÛxëòÖå­Kô›è7Ño¢—F/^šôCÒI?03@Q;ÓæL›3m¢l¢l¢lbbb˜(>,þ°øÃâ“““hhh¿Gþ=òï‘Ì ”NÀ À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À ÀÁÈnìIDAT À À À À À À À À À À À À ß4Žú>êû¨ïÕ ÔPæ¤ÀPâ€L”ºXùï£ÊD•‰*õ]ÔwQß 9BŽ#d ÙB¶)d ™B†!dŸ„OÂ'á£ðQø(|>„T!UHÞ ï…÷Â;áðNx+¼Þ o„7ÂáµðZx-¼^ /… á…ðLx&<’„$!IH…Dá‰ðDx"< „‡ÂCá¡ð@x <î ÷…ûÂ]á®pW¸#Üî·…ÛÂmá¦pS¸)Ün7„x!^ˆ® ×…ëÂUáªpU¸"\®—„KÂ%á¢pQ¸(œÎ ç…8!NˆÎ g…³B¬+Ä g„3Â!Zˆ¢…(!JˆN §…ÓÂ)á”pJ8!œN   Ç…ãÂqá˜pL8&ŽG„ÃÂaá°!DÂAá pPØ/ìö û„}Â>a¯°WØ+ìv »…]Â.a—°SØ)ìv;„Â6a›°M„0a‹°EØ"l6 ›…ÂFa£°AØ lÖ ë„uÂZa­°VX#¬Ö«…ÕÂja•°JX%¬V+„åÂra¹°TX*,–K„%Â"a‘°HX(, „Â!X‚… !Hæ ó„yÂaŽ0G˜-Ìf ³„YÂ,a†0C˜!L¦ Ó…©ÂTaª( B€ “…ÉÂda’0I˜$L& …ñÂxa¼à'ø ~Â8aœ0N+ŒÆ c„1ÂáOáOáOa”0J%ŒF #…Âa„à-x ÞÂ0a˜0L" †ƒ…ÁÂ`a0H$  …þB¡¿ÐOè'ô<OÁSè#ôú½„^B/¡§ÐSè)tº ÝÁCðº Ý„nB¡‹ÐEè,t: „NB'¡£ÐQè(t:„öB{¡½ÐVh+´Úm„6B+¡•ÐJh)´Z n‚›à&4š Í…¦BS¡©à*¸ ®Bc¡±ÐXh$4 .‚‹à"8 ΂³Ð@h 4œ'ÁI¨'Ôê u„:B¡¶P[¨-8‚ƒ`/Ø ö‚­`+Ø 6‚`#X V‚•`)X –‚¹`.˜ f‚™`&ü¿öî;*Š«qø¸=‰ÉcÁ†X±STlØÀÞ»Ø;l±`ÇŠÆÞ0±ÅÞ±k¢ÙiPì½Ä{W¥¿lÞsÈY—J[—ïgΙ“óDfgïÞìsõëÌØÙÙUªT!¨|Pù òAeƒÊ• *T&¨LP© RA¥‚¬ƒ¬ƒ¬ƒJ•*T<¨xPñ ¢AEƒŠ *T$¨pPá ÂA–A–A–Aƒ  *T ¨@P¾ |Aù‚,‚,‚,‚òå Ê”;(wPî ÿý/èA?ýôSÐA?ýôCÐA?}ô}Ð÷A9‚råÊ”=({PÖ ¬AYƒ²e Ê”)(SP&/âE¼ˆ±"VĈ#¢D”ˆ‘"RDŠâ£ø("D„ˆïÅ{ñ^¼ïÄ;ñV¼oÅñF¼a"L„‰Wâ•x%^Š—â¥x.ž‹çâ™x&ž‰'â‰x"‹Çâ±x(Їâx ˆ{➸'⮸#îˆ;ⶸ-n‹›â¦¸)nˆ↸.®‹ë⚸&®‰+⊸".‹ËⲸ$.‰K₸ .ˆóâ¼8/Ί³â¬8#Έ3â”8%N‰“â¤8)BE¨ÇÅqq\„ˆ"‚E°zšÐ„&¡EÈB²Ð Љ¿Ä_â/qDGÄŸâOñ§8,‹Ãâ8$‰â€8 ö‹ýb¿Ø'ö‰}bØ#öˆÝb·Ø-v‰]b—Ø)vŠb»Ø.¶‹mb›Ø&¶ˆ-b‹Ø,6‹Íb£Ø(6Š bƒØ Ö‰ubø]ü.~kıF¬«Åj±R¬+Åoâ7ñ›X!Vˆ"@ˆ±L,ËÄR±T,KıD,‹Ä"±P, Å|1_ÌóÄ<1Oü"~¿ˆ9bŽ˜#ü…¿ð³Ä,1KÌ3Ä 1]LÓÅT1UL~ÂOø‰Éb²˜,&‰Ib’˜ &ˆ b¼/Æ _á+|ÅX1VŒ£Åh1ZŒ£Ä(1RŒ#Å1BŒÃÄ01L CÅPá#|„,‹Áb$ oá-¼Å1@ ýD?ÑOô}E_Ñ[ô½E/ÑKô=DÑCtÝEwÑUt]EÑEtEgÑYtD'ÑAtD{Ñ^´mE[ÑV´mDÑJ´­DKÑR´ÍEsÑ\4ÍD3ÑD4MDcÑX4 ECÑP4 Dá)<…§¨/ê‹ú¢ž¨'ê‰:¢Ž¨#j‹Ú¢¶pnÂM¸ Wá*\„‹p5EMQSTÕEuQMTÕ„³pÎÂI8 'á(…£pÂAT•D%QQT…°vÂVØ [QATDyQ^”eEYQV”eDQJ”¥„µ°Ö¢„(!Jˆâ¢¸(.ŠŠ¢¢¨("Šˆ"¢°(, Ka),E!QHDQ@äùE~a!,„…È+òм"·È-r‹\"—È%~?‰ŸÄâGñ£øAü ~ß‹ïÅ÷"‡È!rˆì"»È.²Š¬"«È"²ˆ,"“È$2iñZ¼¯Åj±Z¬£Åh1Z”¥Ei‘Z¤©}Ô>jµ-B‹ÐÞkïµ÷Ú;íöN{«½ÕÞjo´7ÚíµöZ{­½Ò^i¯´Ú í…ö\{®=מjOµ§Úí‰öD{¤=Òiµ‡ÚCíö@{ ÝÓîi÷´»Ú]í®vG»£ÝÑnk·µÛÚMí¦vS»¡ÝÐnh×µëÚuíšvM»¦]Ñ®hW´ËÚeí²vQ»¨]Ô.h´ Ú9íœvN;«ÕÎj§µÓÚií”vJ;¥ÐNh'´P-T ÕŽiÇ´cZˆ¢…èú¯MÕTMÕMÑMÒ$MÒtšNÓiGµ£ÚQíˆvD;¢ý¡ý¡ý¡Ök‡µƒÚAí v@; Ðöiû´}Ú^m¯¶WÛ­íÖvkZ ¨íÔvj;µÚm‡¶MÛ¦mÓ¶j[µ­Úfm³¶YÛ¤mÒ6i´ Úm½¶^[¯­ÓÖië´µÚZm­¶F[£­ÑVi«´UÚJm¥¶RûUûUûU[¡­ÐVh˵åÚrm™¶L[¦-Ñ–hK´ÅÚbm±¶P[¨-Ôh ´ÚU«ÕÇê#õ‘úH} >P¨÷Õûê}õ®zW½«þ£þ£þ£ÞVo«·Õ[ê-õ–zC½¡ÞPÿVÿVÿV¯©×ÔkêUõªzU½¬^V/«—ÔKê%õ‚zA½ žWÏ«çÕ³êYõ¬zF=£žQO©§ÔSêIõ¤zR UCÕPõ¸z\=®†¨!jˆ¬«ÁªP…*ô_ª¢*ª¢Êª¬ÊªNÕ©:õ/õ/õ/õˆzD=¢þ©þ©þ©V«‡ÕCê!õz@= P÷«ûÕýê^u¯ºWÝ£îQ÷¨j ¨îRw©»Ôêu‡º]Ý®nW·ª[Õ­êu‹ºEݤnR7©ÕêFu½º^]¯®SשëÔµêZu­ºF]£®QW©«ÔUêJu¥ºRýUýUýU]¡®PW¨ËÕåêru™ºL]¦.Q—¨KÔÅêbu±ºP]¨.T¨ Ôê*•Êåƒò^y¯¼W•p%\y«¼UÞ*aJ˜¦¼V^+¯•—ÊKå¥òBy¡¼Pž)Ï”gÊSå©òTy¬e¯²WÙ«ìVv+»•@%P Tv*;•Êe‡²CÙ¦lS¶)[•­ÊVe³²YÙ¬lR6)›” Êeƒ²^Y¯¬W~W~W~WÖ*k•µÊjeµ²ZY¥¬RV)¿)¿)¿)¿*¿*¿*J€ ,W–+Ë•¥ÊRe©²DY¢,Q)‹”EÊBe¡²P™¯ÌWæ+ó”yÊ<åååeŽ2G™£ø+þŠ¿2K™¥ÌRf(3”Êteº2]™ªLU¦*S”)Êe²2Y™¬LT&*• Êe‚2N§ŒS|_ÅW£ŒQÆ(£•ÑÊhågågåge¤2R© W†+ÕaÊ0e˜â£ø(>Êeˆ2D¤ R)•Ê@e€2@ ôWú+ý•¾J_¥¯ÒGé£ôQz)½”^JO¥§ÒSé®tWº+Ý”nJ7¥‹ÒEé¢x)^Š—ÒIé¤tR:*•ŽJ{¥½Ò^i§´SÚ)m”6J¥•ÒJi¥´TZ*-•æJs¥¹ÒLi¦4Sš(M”&Jc¥±ÒXi¨4T* ”JÅCñP<”úJ}¥¾RW©«ÔUê(u”:Š»â®¸+nŠ›â¦ÔRj)µÅEqQj(5”Ju¥ºR]©ªTUª*Ί³â¬TQª(UGÅQqT*+••ÊJ%¥’RI±Wì{ÅN±SìÅF±QÊ+å•òJ9¥œRN)£”QÊ(¥•ÒJiÅZ±V¬•’JI¥¤R\)®WŠ)Å”bJ¥ˆRD±R¬+ÅR±T,•BJ!¥R@) Pò+ù•üŠ…b¡X(y•¼J^%·’[É­äRr)¹”Ÿ”Ÿ”Ÿ”•••”””ï•ï•ï•J%‡’]É®dW²*Y•¬Jf%³’YɤdR2Éqrœ'Çʱr¬-GËÑr”%GÉŸäOò'ù£üQþ(?Èä÷ò{ù½.‡Ëáò[ù­üV“Ãä0ùµüZ~-¿”_Ê/åò ù…üL~&?“ŸÊOå§òcù±üX~$?’Éäòù¾|_¾/ß•ïÊwå;òùŽ|[¾-ß–oÊ7å›ò ù†|C¾._—¯Ë×äkò5ùŠ|E¾"_–/Ë—å‹òEù¢|A¾ _ÏÉçäsòYù¬|V>-Ÿ–O˧äSò)ù„|B>!‡Ê¡r¨|L>&“Cä9Dÿ‡úßîëÿO^Ö“dI–ä¿ä¿ä¿ä£òQù¨ü§ü§ü§ü‡ü‡ü‡|H>$’Êåƒò~y¿¼_Þ'ï“÷É{ä=òy·¼[Þ-ï’wÉ»äòNy§¼]Þ.o—·ÉÛämòy‹¼EÞ,o–7ËåòFy½¼^^/¯“×ÉëäµòZy­¼F^#¯‘WÉ«äUòJy¥¼RþUþUþU^!¯WÈËååòry™¼L^&/‘—ÈKäÅòby±¼P^(/”È äòr¹ÜKî%÷’{Ê=åžrw¹»Ü]î&w“»É]ä.rÙKö’½äNr'¹“ÜQî(w”ÛËíåör;¹ÜNn#·‘ÛÈ­åÖrk¹¥ÜRn)7—›ËÍåfr3¹™ÜDn"7‘ËåÆrC¹¡ÜPn 7Ȳ‡ì!×—ëËõåºr]¹®\G®#בÝewÙ]v“Ýd7¹–\K®%»È.²‹\C®!׫ËÕåêrU¹ª\Uv’d'¹Š\E®";Ȳƒ\Y®,W–+Ê劲½l/Û˶²­l+ÛÈ6²\^./——ËÉåärr¹Œ\F.-—–KËÖ²µl-—”KÊ%åârq¹¸\L.&“‹ÈEä"ra¹°\X¶”-eK¹ \P.( Èä|r>9Ÿl![Èr9œGÎ-ç–sËÿ“ÿ'ÿOþIþIþIÎ)ç”sÊ?È?È?ÈßÉßÉßÉ9är9›œMÎ&g‘³ÈYäÌrf9³/ÅKñRœ'ÅI1RŒ#EKÑR´)EJ‘Ò'é“ôIŠ"¤éƒôAú ½“ÞIï¤p)\ —ÞHo¤7R˜&…I¯¤WÒ+é…ôBz!=—žKÏ¥§ÒSé©ôDz"=‘I¤GÒCé¡ôPº/Ý—îK÷¤{Ò=ééééŽtGº#Ý’nI·¤›ÒMé¦ô·ô·ô·t]º.]—®JW¥«Òeé²tYº$]’.I¤ Òé¼t^:/•ÎJg¥3ÒéŒtJ:%’NJ'¥“R¨*…JÇ¥ãÒq)D ‘B¤`)X –„$$!©’*©’")’"éé$¤“ŽJG¥£ÒéˆtDúCúCúC:,–K¥ƒÒAé€t@: í“öIû¤½Ò^i¯´[Ú-í–¥@)PÚ)í”vJÛ¥íÒvi›´MÚ&m‘¶H[¤ÍÒfi³´QÚ(m”6H¤ Ò:i´Nú]ú]ú]Z#­‘ÖH«¥ÕÒji¥´RZ)ý&ý&ý&­VH+¤åÒri¹´LZ&-“–HK¤%Òbi±´XZ(-”J ¤Òiž4Oš'Í•æJs¥9ÒiŽ4[š-Í–fI³¤YÒLi¦4Sš.M—¦KS¥©ÒTÉOò“ü¤ÉÒdi²4Iš$M’&H¤ Òxi¼4^ò•|%_i¬4V+–FK£¥QÒ(i”4R)”FH#¤Ò0i˜4Lò‘|$iˆ4D" ’Iƒ¤Ò@i 4@ úKý¥þR_©¯ÔWê#õ‘úH½¤^R/©§ÔSê)u—ºKÝ¥nR7©›ÔEê"u‘:K¥ÎR'©“ÔIê u:Hí¥öR{©­ÔVj+µ‘ÚHm¤VR+©•ÔRj)µ”šKÍ¥æR3©™ÔLj"5‘šH¤FR#©¡ÔPj(yJž’§ä!yHR=©žTOª+Õ•êJµ¥ÚRmÉ]r—Ü%WÉUr•jIµ¤ZRM©¦TSª!ÕjHÕ¤jR5ÉYr–œ%'ÉIr’%GÉQr$©’TIª$U”*J%;ÉN²“l%[ÉVª U*Hå¥òRy©¬TV*+•–JK¥¥RR)©”TR*)•”JH%¤R1©˜TL**•ŠJV’•d%– K…¥BR!©TP*(”òKù¥ü’…d!YHy¥¼R^)·”[Ê-å’rI¹¤Ÿ¤Ÿ¤Ÿ¤¥¥¥¤¤¤ï¥ï¥ï¥R)‡”]Ê.e—²JY¥¬R)‹”EÊ$e’2éâtqº8]¬.V«‹ÖEë¢uQº(]”î“î“î“î£î£î£îƒîƒîƒî½î½î½.\® ×½Õ½Õ½Õ…éÂtaºWºWºWº—º—º—ºçºçºçºgºgºgº'º'º'ºÇºÇºÇº‡º‡º‡ºººº{º{º{º»º»º»º;º;º;º[º[º[º›º›º›º¿uëþÖ]×]×]×]Õ]Õ]Õ]Ñ]Ñ]Ñ]Ò]Ò]Ò]Ô]Ô]Ô×××ÓÓÓÑÑÑÒÒÒÔÔÔ…êBu¡ºãºãºãº]ˆ.D¬ ÖëÿØ^ÿÇuúe;8Mß0¤Sè¡`H`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`03A&0`0&$O¢H˜ € !@r€ À˜0$˜ € !@r€ À˜0$˜ € !@r€ À˜0$˜ € !@r€ À˜0$˜ € !@r€ ÀLÈGÿþýw—Þ]zwéQò(y”\ÿ|ýóõÏÛzÛzÛzñ*âUÄ+pþàüÁ¥/–¾Xú¢³p΢gΞ9{æ\ülñ³ÅÏî_¾ùþå´9Û /<¼ðpÅ‚ V,ПC­Nµ:Õê¤?ÛÂã +<®À¡‡ ²~kýÖú­C¼C¼C|;µÚNè9Ñs¢§’Oɧä‹qqqMÙs ðùÍØ¯?Ÿå|–óY†Y³fY»hí¢µ‹– *T&¨ÐŠB+ ­pÈåË!WË"-‹´,²áú†ë®Øüaó‡ÍI9“§ãžŽ{:N?JÍk6¯Ù¼¦~¬Y ²¤%»Îví:wÕyTçQ«ë­®·º^Òÿ¥#ø8èçÏ Ý Ý ]“þMú7é_±VÅZkÜRpKÁ-úOV?'}§úNõzÆáŒÃ‡”ýìÒ&ÇÚÇÚÇÚk´GÚ£ŸÏü|æç3žû=÷{îOø~‹¹s-æªÿô»ÕèV£[•½VöZÙë]ð»àwÁ|_0M`0€töþÐûCïM)4¥Ð”By’-oæ¼™ófÖÿóÝÌw3ßÍœb'š+>W|.}œ®ûºî뺯ó¤¨å»–ïZ¾+r`äÀÈÉ?Ù¤DİÜa¹Ãr·=×ö\Ûs_wÎúlløêqÅâŠÅ[rcÉ%7’3&G|ŽøñIH8úœÙ]ÿuý×%çl¯¿>þúø´ùì’#°J`•À*6¾6¾6¾_÷N‹W,^±xEý??Úúh룭|0`0€tsþÝùwçß鯪̓ ,g[ζœülööþÛûoïwšÞiz§éyÒÄë⯋¿.žœsNüø7›ßl~³yåb•‹U.–œóÔ_¿›p„?ù~òýäÛ*¦UL«˜”Íù);z7ºÞèz£«þ:ò䟭þjïäÏ·ÔÀoÞ¾yûæ­þúëò¹=5ÓA&Hú›'§MLÕßÌöë•þêäšcjŽ©9&OjÖ¨Y£fô×Ý'~ü*w«Ü­r7¥ÎÖé‚Ó§ úëh;.鸤㒔 ëLÖ™¬3}é'˜”#'?&Z‡ç Ïžœ š²øU¥W•^Ur·s·s·K›ÙË÷€ôE&HSQ^Q^Q^IIª —5\ÖpÙŽ;zìèqñÊÅ+¯¼Éô&Ó›Lá—Â/…_º²íʶ+Ûô7³Õ?“5ñ£¹¹¸¹¸¹èoMœô³5¼êðªÃ«ô1Rÿ9Š«âª¸:¸ýàöƒÛ§F\üº³mõc«[ýxðÈÁ#<^ñxÅãúçRß®|»òíÊ¿ø½Àï\¸ pøqôOªNk—“~ýS~õOöMÊ»Þ6yÛäm“Î^ýMÂO×>]ûtíé§§Ÿž~:aŒOÙ+¶ ¥€ ÀÒÔÖù[çoŸøÕ“ú¬›zÁ/)GÓ‡ÛÄcxSè/=Û„™ÐP‡ 6tØðuãœôk£%GÉQrLüü ¯mM }K G®¤L¼ ì‚² Ê~é1SòNÉÄ<íæ´›Ón~Ý9ßèz£ë®)5I9Žþé¶ÉÿÞH9µÓuâ?Ý4ºitSc?ëææ–²Qvoö½Ù÷fOçXÀ×!€¤©„×Ò?ý7ãŒFD@D@D@Ú`ýµ¼_zÌ(¯(¯(¯Ä|xÕáU‡W}Ýhè¯(M›ìtÁé‚Ó…”Ê“qÅâŠÅK›3OügÏ=>÷øÜÄo±ž²s8ñOM{m¾÷¤%0@šªûºî뺯¿pƹj𯖵ü«eÚà{î=¸÷àëÎ9ñ#ë¯ÀNΘ¤MFõûÞï{¿ïSöÓLügÎ œ˜üã$þ³‹¾[ôÝ¢ïŒýìÉn'»ì–3ÙØ+öŒîÝ3šï=i‰L¦~éýKï_zçI²#>G|Žø|ôÿèÿÑß>õÎ<Ö>Ö>Ö>tBè„Ð ÓOO?=ýt;µÚNMíö¥çINü¯‹¿.þºxÊΧ㞎{:ÎØ+ÚzÛzÛz§vNø*¦ ’}%ûJö`i‰LnôÁ¬[n5ºÕÈ›9oæ¼™S6>Íö›í7ÛOÍqrÎóý¡÷‡ÞÒ?Ã5eÏÐr¶ålËÙà¤?¥p”W”W”WÊÎgýõèÆ^±hÓ¢M‹6Míl5ÈjÕ Ó ÀÖo­ßZ¿%HK`0“ ÿ½É¤ª“ªNªêtÁé‚ÓS¸ŽV}¯¾Wß—Û\ns¹ÍÉyÝÂã +<ÎÍÅÍÅÍ¥ÿºþëú¯Û]zwéÝ¥¹øKoÊXLc¯˜?8pþàÔÀ8Tàéà„ç÷€´A&09 ·²èÓ¢O‹>5¯Ù¼fóšúŒš6X“礳‚ÿ þÝmºÛt·YrcÉ%7$GÉQrLÊë€Sc4ÒþÐ/Ý^º½t3öŠ oxžz#\&¨LP™ c?›^ÏÌ&HK`0€oFÂßÅ,=¹ôäÒ“GuÕyTÒÃpR®GÔ_ÇY> |@y£·óÍž7>Íöûü¦¿‘rJ½Ö©§Zœja,ƒñ*âUÄËXNsºàtÁ邱Ÿ=Ÿå|–óYRê<ï†ß ¿NNúñS*W=Põ@Õ)6¹sÅçŠÏeßľ‰}c¯¸»ôîÒ»K§öï¿¶ÿÚþkÆ~Ö«ŸW?¯~)ûßõÃÃ?<\sÌç7í‘öH{Ä·€´D&H#£äQò(Ù虑~‘~‘)õZá—Â/…_úº\hE¡…VûÙ÷‡Þz(¥Î3ñ›€S/§ì9KŽ’£ähìø,X-ú´è“±4ÕhF£f¤Ôk[yl展‰ßÚXš²ÎdÉ:“±Ÿ½xåâ•‹W’†Ï»<ïò¼‹]g»Îv ÀI?~Êà–EZiY$9gW,®X\±ZjuªÕÉØ«tšÞiz§éi€“rïiÞÓ¼§%ÿ“z“éM¦7FÿKñÐ<4 í€ ÀÒÈéÚ§kŸ®6Wdê—±ãûT÷©îSÝØk¹6vmìÚØØÏÎm;·íܶÉ97ý5š ó8éÇO+€“sæÚMh7¡]âG>âsÄçˆOZŽpè„Ð ¡Rï]G7nÝ´yÍæ5›×4vdýÕí|ïH{`0€´’+>W|®ÄsTù€òåôùêKåååå;ÕwªïÔÄ_%d{ÈöíÆŽ3¥Ð”BS ûÙüÁùƒó]<;Úýh÷£Ým½m½m½S;O€“>¶ù.å»”ïRҬϟ“ËM.7¹\âGN˜HÓ~„?NÞð¼áyÿ}þ´þ¿Í¤3,wXî°Ü=söÌÙ3§±#W_^}yõå\û ½€ ÀÒÔºë>®ûø¤©OݲzËê-«o6¿ÙüfówÁï‚ßGŒ9ðnøÝð»áÁÿü笵³ÖÎZ[ns¹Íå6'~ä^/{½ìõ2ñ4u£ë®7º&Œ‚‰Ç35›šMͦ?}„~]üuñ×Åõ7‹^¾kù®å»êÄÖ‰­kìh‰?uXïNÉ;%ï”Ôßp8)ãLΓ ‡W^uxÕÓqOÇ=÷É÷“ï'ßòü“çŸ<ër¬Ë±.‡Ë—.?‚þ3½]ùvåÛ•Ók„õó°ìÁ²ËLÊ»þmøoÃ~õ·«¿]ýMÿßÚK·—n/ÝŽÏ=>÷øÜùÎóç;'%¥Ÿ³8gq΂ï:é…L¦ô 3OšÓߨYýbRÎ3µÏÇjÕ «A{³ï;7û—þì¾Çûï{œœóOÎ'hXÿ—Rã“ÕGСB„šÂÕÛ糜Ïr>‹õ[ë·ÖoSo>ëÿJÄöaÛ‡mƵ¿Ò˜ DDD¤Múm§¶SÛ©o�ÿö~ÒÏ0Ö>Ö>Ö>5Χڦj›ªmº²íʶ+ÛôÿËÎV;[ílENÊñS*'ýµ’®ð¸Âã Ó:ÉÔaýÏV²¯d_)…guñŠÅ+¯¸7boÄÞÒ/S@&H? ž lßľ‰}“”ŠRµ‹Ö.Z»hr®Â4ß6wÚÜisGpSáþý?ú'ÌÕɹʹÏÙ>gûœ}´õÑÖG[I¿L˜ À4$ˆ SŸO}>õ¹þÊ]}–ÓßÀ6pþàüÁ·ÜRpK™ 2Ae‚ôWÓöÌÙ3gÏœ‹¾[ôÝ¢ï®Í¹6çÚœÔÈQ†Ïv s s +Q¼DñÅõçV> |@ùw;w;w»¡å‡–ZþˆÏŸ#>I9ý³flëLÖ™¬3•Ì]2wÉÜžû=÷{îÒ`Hƒ! ®¿>þúøôú R;õ%~üÔÀzúç7ëŸþÛoo¿½ýöÖSsLÍ1¥î•ºWê^C8¤ÿk 66ØØ`ãôÓÓOO?­bî·˜?õOùÕŸy_¥¯ÒWÑÏ[ýÖÏgýÜvˆwˆwˆïÚ°kî Ö¬ XóxÅãW}˜&0À7 õ®7Ms3ý#gä9ó¥#iÊsÏ”Ç Ò ˜ 0C„LȘÀ`€"@ÆD&Ì2&0`†À1€ À3D€Œ‰L˜!0dL`0À € c"€fˆ ˜ 0C`ȘÀ`€ò‹Llc|À\€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ À̘ ÀL€ÿ’äíX:mÇÓi M§íD:m'Ó|;•NÛétÚΤÓv6¶sé´O§íB:mÓi»”NÛå4ß®¤Óv5¶ké´]O§íïtÚn¤Óv3¶[é´ÝN§íN:mÿ¤Óv7Í·{é´ÝO§íA:mÓi{”NÛãtÚž¤Óö4¶gé´=O§íE:m/Ói{•æÛëtÚÂÒi{“NÛÛtÚÂÓi{—NÛûtÚ>¤Ó‘NÛÇtÚ>¥Ó™N[T:mÑi¾Å¤Ó›N[\:mñé³gJ§-s:mYÒiËšZÌÌ„Ù`=>`‡Ùà-_´|Ñ2(8Õ¶tÚx&1O#æiĦÿ4âŒóâŒóâŒóìáËé´eœggœ§gœç gœ' óŒaó{ºpz=c8ã<]˜ç óDaž%ÌS„yŠpz=E8ã! ?üÄâ‹O,îçÓϧŸOz­Ç:/ï¼¼órí˜vL;ó(æQÌ#>qœõ=ë{Ö×'¿O~Ÿüéµk=²õÈÖ#uMuMuM£ZEµŠjÅç’ÚæÌ ˜`øY02’ƒ ¼ªõªÖ«ZóÇÌ3L¶xÇâ‹w„eË–O ˜“7GÞysdùÉå'—Ÿ4åõØœJs*Í©ô¢ó‹Î/¸>˜•w7ßÝ|wsÍ™5gÖœ1åõ˜_o¿Þ~½Ÿ´~ÒúIk>µÔ@ÀÒÈëØ×±¯c'-š´hÒ¢¯[næmgFžÚU.9sNy· vC¶ek´¥J¿£Y[v®6F8¶éW£¥°hãU£Ñ‘ -«Vë¹µe£ÞU\ggr=jgÓ±´íì’%’³Ø¶}ÚöiÛß<~óøÍc>Mð- ?~ ü€ÿvÿíþÛ“³.*6À¥Xƒ¦å^u*é“©âƒûμî°nÌáe#ª4Ÿ»ªN•Wù;\ÛyûŠ#‡ìöŸV~…WÍa‹rkÙdPžòeþº×õíêÛÕ·ëˈ—/#ø4À·èÃûï?¼_ìµØk±WrÖc•Ë7hoåÓpՈ쥖u¬<¯ZùžýW7·½Ö÷ÌÆû–ýªl ´ÑkçÚévç-êXaaÓQc¥Ò·ª6nýcQßü…úçûu¯ë³Õg«ÏÖ§‹ž.zºˆO3¥€¤0€Tëëë¼6pmàÚÀ/]PNS«º­ûÙm¨U2>~àÀ Rl;лAƒÓ7;twùÓ/Äå{ÿ/=·6ÄeËÇ•ÁÀ¤Åí‹Û·oÛ”mS¶MùÒ5OÙÒm&÷Ó9ÿ4uò†ÎîNë'ŸZëî¾~ý©S)µ¯ZpFð–%å>uªïSñKÏí·M¿múmSLí˜Ú1µù”€Iû=þ÷øß÷[ï·Þoý¥kžºöýN”6àçm«*:N=quYÕOÓ¦]»V­ZJí}F(TÙ±©ðõ(‘ozÁy«%ýÜ:,tXèù<òyäs>ää H `©â–õ-ë[Ö6.6.6.IY2þ<·j‘r¿ÜòîZÁ½V çÞ$ïÿvóŠr›1¬Œ“oÙyI9gÇÆŽÿ3óŸ™ÿÌ䦿¾t_º/Õt¬éXÓ1)kë© èQÍi¶çÎB)z“¾¯‘mAæýËüØò§^M’tÎY­³Zg½¾äú’ëKøÄ€©yø4ði`£_ýÒè—¤¬mª]oT4v𻽣+íKÙЛôý˜*¢s•"žk}æY?OR.‘§DžçßwþŸø×!H `)l[Žm9¶åHÊúpQþÚ:ûØ·9û\«÷(½¢¯±}X—>Õë͘[ÏíÝ㤼—À•+WòéS°?~üþø¤¬aÊ]êxaÈJ—£¥>é}íkíúm–ÖÑfuÏ_ǾHÊ{Ùà±ÁcƒŸ>0’›ä&¹%e Sà‚ÖuÇ> iW%0½¢¯±ý$ÿseç·ÕÍr,÷{RÞK€S€S€Sü¦øMñ›˜IGÀR@L—˜.1]FL1yÄäÿãJߨªžå6¾ß÷ûúYM-úÛ¿Žî“¯ÞPŸwN9Ê6ø?žK÷Ð÷¡ïÃØÉ±“c'3+@ZŠ7(nŸ¥Ÿ¥Ÿeâ+–’ï<›´;ä2jù^]?S‹¾FcpØÊÎb@™¡­êõ¾™ø»øh࣢3GgŽÎ̬ij}üúøõóŸÎ:ÿiâ+§›-æ‰3]<®RÍÔ¢¯±ýä{üªfj="°ÔÁÄßWQ¯¢^E?îú¸ëã.&ER€¤0€d‰ð‰ð‰ði´¯Ñ¾Fû_ü éøs­žßJô5¶?uµ}ŒË¤Äßi냭¶>ø©ÿ§þŸú3C@j‹²‹²‹²óšä5ÉëÿX¥8 ž2õ÷Ðo%ú}rðÞYÛ·gËóÔâ|½ÓÚ£k®=ú}­÷µÞ×b†€Ôkkk5¸Çàƒ{$¾ë³pý»GßJô5¶¾ïOɡՄRuòÍ1öNí›Û7·oV>¬|XyfHâÀRÀWúPëC­µª.«º¬ê2cK=o ‡«¥Ã?ÙôŸì1õ[O¿ ÷9ûôÈÑÓ¿Òw¥Üþ±c—Ú]jwù8úã裙- 5D‰9¤Ñ£F=2¶&)žÇµJ£¨Z÷W:§o=ý&Ü»Y­ýá¸M©Á_xí6öÞíØ-°[®†«á*³¤†˜€˜€˜€.î]Ü»ý3";ëÚ­ _÷Ä0§1ßzúM¸Ÿjwůj°GËÁõ­Ç{ïO¶1úÌc«ÝV»­v‡W¯^™cˆ 5€|ÉÒöFܸ^¼x0¶¤;X­¹CÕòf}ìw×játÆØ˜ômÞ·yßæñ âÄ/`€d ‹‹óYã³Æg±µGÅ–CêÍŠ0ïèk¸w[fy&ccÒê\«s­ÎÅ^‹½{I’oJ¯)½¦ô2¶öhÓ|úÞreÌ;úîû{l™kÚØ˜¸Ú»Ú»ÚG½zõžù“@j ø¿„ÿþK¸±eÜŸcZ«V4£¥ß„ûýÍÆ:66>K—:/uf€äXe³Êf•±õF¥œCÌy•ÑÒo½ãÚqW~õ56>ÓúLë3­³$Ç»v;쌭7Ú^™ÕµÜÖŒ–~î½gìð­8ÏØø ï:¼ëð®Ì¢„ÀR@’Wá*\-ÝvþÞ8ΩZFN¿ ÷›5ä¸ÅØX…Ž :–¾ÔÙng»ífôÙrMúÝŸ,gäô›p_¹ÑHß‘ÆÆê¯À¿ÿ dF€/õ·ÝßvM¿Íì}ãÊÎÈé7á¾O¯õ~vWUàÂÀ… ™Qz`© àÿð¦ì›²oÊ[®ÍÚîêb{‹èk¸Ÿ^#ºÂCcãö®á»†ï2»@RDXDXDX[W”ß¼^÷¢¯á¾Â´nÅnlÜ^îx¹ãåfHЍ5Qk¢ÖXÆZÆZÆ®+ª—m׸X¡iƒ¯í©V‰ô›pßÎÕ?o¹ÆÖcw<Üñõø×á݇wÞýowØ6kÛ¬maÂ…5bd¾Àÿ¡ß–~[ú}æzÖzÃJ],226Â{«çyr¯á>f§·½ç¬êyŠXÞ5½añÃâ‡1¹@’Œ‹3.ÆpEQ uÉue‡¸5]»áøkrïgö9×ÅžüXäNUÏ:?Žž×[¯·^o™] )æÝŸwÞ}ÃEÞŸ-&ä™5Ùö|=ç rïgö®ªæ\ݦ]«b–†£ç1Êc”ǨøÝñ»ãwgèÙEF†Û&¶Ml£¡ƒ¿ €Q§9ýËé_Œ}í>³ïù¬nqBoâûGÅ{ ¨ãdl /ν8÷â\f0æzÅë¯W4¶–¨á²`Çö„ÞÄ÷.‹rêþ66†ÇlÙ³e¦cî·¹ßæ¾Ñ,1ôí¡=•÷zßOw¦…³Ñ?û³éŸMÿlš‘çHxíoâˆÁIGðqº8]œ®üå,ÿãgžøÛµñ#§òÄݤï7öiðÒ±³áH:…:…:…ÆÏ‰Ÿ?‡YþãmüÛø·u¬ëX×±6\EØžïÛgâyâî<xðÈ' gŽdá—…_~» vAì&0Ô1°c`Ç@ÃUDãG£³•îHÜMú¾ïÌSì«‹:Q9£rFå̘sŒ 胮>îæI2bpâÀ>C.+—•?óÜߊßYý]pU\ ÷ Ï(²nÒ÷±S¼'x*Ù¢`Ñ|:ÃQ ©R9¤2³$têÒ©K§.}æ÷¸;óFZø»ùÝ>tY÷ öe×·>Õ×2«MI‡>†ƒzøÐáC‡1ë@Bמ]{ví™±ð0yÑùÎȺ_º¯œ­A!«^†ã¹eó–Í[6gÌ™F"§0€ÿZ¿4~i9ïrÞå¼ ¿FÏìì°Óå A÷ëöÇk·kXsÔg®žï4ßi~|D|D|èÕi\§qƆ+‡*Y'X¬ÌKÐýº}Õ?fiÛKŽªå Ë–7â‚ã‚ã‚™{@¯“'ÿNþ†+‡nåÖÛRî×íGè~rxb,áD?ˆ~ý £Í40` 189Àþãbþ‹ù/æ7üÒtù£Dxáñq¤Üd쥭T¯xºHé‚¡†#|½Âõ ×+0Àí³·ÏÞ>k¸ZÈWÓ*{Ñ'îy×ç?U€”›œ½ÕnGÿZ5 GøÔâS‹O-f€'gŸœ}rÖXZð»%sÕ¤Üäì«þÙúTÑ5†c+Õ—êKõ3Ú|#IA þR`ÿÑ7oß¼}ó~æ6ÅGÛ®Y”ˆ›ü½<½uŽêã GxØÏÃ~ö33Œ0~Àø†«»ÑžK–“o“¿wî0­ÿƆ#Ü©N§:ê0À¬ ³.Ìj¸Zè¨Ì¯Rþù6ùûaWþp«c8µÛÖn[»mF›o`àKƒ“‚ à_ÎÎÎÆ¾cëz÷ñÜJ¾Mþ>zÊg=cãüéݧwŸÞ1Ș¢Ý£Ý£Ý­\?¬Yzlù6ù{·Oë‚Oî66Îï2¿Ëü.3³€Œ)nBÜ„¸ ÆÖ מYà\û[ ®#2iìÐ3á{Iç³-´šS‘È27óo8Î/꽨÷¢^Æ™u` 9ˆÁÆ€üK›¬MÖ&~Î_í~Þ~(á6e÷Ó;¸ÄÚ5íÐk¡×B¯1ȘÎ=wôÜQÃB‡–~½înSvo[¼·ã¸Ï\wrdÏ‘=Gö0ȘnYß²¾em¸B¨^°]åbßî·&€§]»V­Zç^‹~ªàg8ÚÛömÛ·m_Æ™u` ¥ƒ"ø×À…\høõwgR×0÷ƒ$Û”Ý_ö:ã6Ðp´GW]it%f#“_{¿ö~í WU§Î*°Í“d›²ûçM9tÀp´»ùvóíæËl cZî¾Ü}ùgîÈÒ¿õ– öç À)»7äx´SeÃÑ®ÿ þƒú2ά#©Ljì+/®¢·Îó6É6e÷1Û¼m=góøµñkã×23È@¢ã£ã£-Z6´lh¸6p«±¶ÿñõ$ÛÞ^oÊøPÆÅŽ‹ÇÄ £qŽrŽrŽ2\Lr6Ây85ö…ë—,™ï3W]G94#Ì:0Ú2f &ˆqâʼn' ¿àú¼¯Ü¢t6bmêí;.°ÝS²ºáȇ½{öž™ @Æñnã»ï6® ŠtrZçöŠX›zûRS›TéòƒáÈ?)ó¤Ì“2ÌL2ŽÈÅ‘‹#® Jä¶u/çÛM¿¦€ùŽœUê¶áÈßò¾å}Ë;#Ì=0–2N &ˆ:$tˆá—Ú®œMÊ:µ0\út\Ï­u>ø/t]d—§ãÛ}%kT¹[ì»B¯ ­°¸“7ÈÖ»ðÝ‚Ù<´Ò{Š|ZX°v7û ×Å{kõ\M9o¸Ðà°c Ñ?çÎÿœ?3€ŒãjÙ«e¯–5\ØŽèSmB3ÓL§n÷ÖM:ÙÆ>pP½½‹luþ­v¥|S­žÿ_Þéù×x_py™5¶‹Kço–©[·êsçMÛ»À4ßEåàŸã½5yõŠzE½ÂÌ ã¸÷êÞ«{¯ W '¿TêS ºSm®LªÔ!ß/ Ë÷·?QϹðFËÅßY<Í·µ`»¼õJî¬ø¿¿Õ½7 GÉc›×­2ΔpÿF[ÛŸ1ù½UöVÙ[%#Ì=0^Ì;€į^°zÁê†_d×"½¦¹Õ2…Pª=jÓ¸†{ñŠZç«“ç =éþ¸ö#Ó À¦t²¬lxÎ[*o©¼¥23€ŒcO›=mö´1\8½Ÿê¸>ÂÔ¢i­C¿mÔ&çüûˆ¤¯Ê*ùì™}ÆÔÞKõ}ó¢÷Ùží’áK†/ÎÌ ãP­Ukõ37"îµsít;Óɥ㇞œfÚZºMµ”’¾ë² ºB3Ó Àc›{VgxÎN<:ñhF˜{`À˜_ &ˆ–}XöaÙ ¿¼Þäë3¡^`ú&Ò›û-¨fã[xVÿ&`¹Í–ã Ø.~VgPÅþ!ÛÛî­iyùÎM]§¨ï[‡ÕøÞ/Ò¥¨ÍRý5Áÿ]0™b~q¯×‹ºG G~¼4^/13È8fFÌŒ˜a¸*¨é»dùŸ}L-š»Tkd£¬ÿžâ ‹Îù²”ÖvHÿ0ÇÞã ¯˜åôbj¡õ—m\{ Ó/ßž"ŠÿçQ#Õ»Î}³ç‚ Åì‡+kWÑï}¶÷ÙÞg™™d+_¯|½òµáª`ÄÔ£6sM"—æ¾–«ZžŠ{ê‡~“ð +¿j¸×jOûJ³—·`½í ¶ûËÿu¹÷]ëÅ>a,Z˜Nž2ã⚪ŸyDZ£Ç7zœæ05æƒ Àâ=ý=ý=ý ¿°¢Û ØåY#}©>ëêÏ'oxž <“®÷ÚïÖÉXÜ5|¥/’ßß4ð§°þ¡» Ϲ̓6Ú<`fqôP{¨=TÃUk»U¿g1\êpmlŸå­þ=¹UyYx:*ãÝ×ÿ[ýÿœð×ÿ»Š›ž}÷ ß— ÝÈúðïïN¬7ù껪諭‹™ @Æ16flÌØ˜Ïü5ýæ'f87…PÚåÙ²±6ÿù3±¦-ÆŽ/}Nÿo‰zǽW”üdÊxZÓkc«•1£êmWòµv­¾j]Ï]+¦ªémS®Ót»K+Q¼ÀÎ|c½/“{G¯öiPùŒq/µ¾ñ©Î&q«ä¿¿8ñŸëjx,8yÀÏÔRî×íó{ ²>Ê|†¦þx¥QÕ#éG'ûž?é|;áYxrô†C`ÒÐãݪ¶ûÁÔp….‹,+1ߘ«¨À¨À¨@0“`:¡ô¬u‡kµ²´ú±üƒâ3-ä-–瀱svºP¬—e™^/+Í+µÐ”ßW€¤0+€kœ[4õС„çæzjMž'怹c WþQíàx$áYé“pÒ0dƾQ•î%<W@ZÊ@Wgecc3•­Ä˜cJŒ1üJ2gZaq'oþ¬r‰*ÔdúéZ6¶ÕíhþWÕ ·+wéîÝtÀvÏjúŸºÙ¼‹âý™wô<ض»mwÛîÌL66666¶Œ³9?r~äüÈpU`:Ïv]³zrˆ]Âs«éµ¤úÏ¿ùläÀù+篜¿23“-ãl®4ºÒèŠáªÀžìwøò¡ªÿyØÙH¯¿6:\Júzþ½¦€mœ)`cÏÎsÏg”Ï(ŸQó½³±}[ÛãÿÿÇøYf˜%ééWÿë3Ð3€˜OOOÃ/¦èvvyÖHßDÚ¬Q¹IÅvêϧ÷íJJ…Äó>ìùwâY÷F×.ýÜBL? ëê±Ûð<ÛÛûlï³ÌL2Ž•¯W¾^ùÚpU0bêQ‡¹¦€mçº7¶|˜¤«‡=.½¬:¶DˆÝÄÍL3O™qqMÕê†#ßèq£Çg„¹GLÍ·}"ˆ_½`õ‚Õ ¿°®EzMs«•¾‰Ô¾‰ÕÒ‚#ô糫n'¯ÄýÃÃ=êÔ)ª°éà S:YÖ 6<Ï-•·TÞR™™ @Ʊ§Íž6{Ú® œÞOu\a:¹´bÁŸf­ø÷äNXtΗ¥Ê•I;Ö 2öë«WšÛ}O‹\;YÚè¨ô™{¶ü÷ Ç&ðŽªï›½ÏÖpä— _2|Épf&‡j­Z«Ö†«‚^;×N·ó0…PÚµëòÚ6S ÏÐØ¯ŸºújƒªÏêª`í‘ôŸJûýØfÁžUÆžáÄ£N<šæ0æ}"ˆ:$tˆá—×®œMÊ:µHßD:`±Ã–Òÿ>ÅúmÁ?ó[m:ÚpˆãÖû—»Ï«½çÙ ^™êÚ‡lo»·¦¥_¤KQ›¥–³óUÏeìëØÔð† ;Ö0<ÏsþçüÏù33È8®–½ZöjYÃUíˆ>Õ&43ìvà÷'>ó‡Se×´°ËÑÙ×?à„óØig7å´ÝÓ'jbãü.ÅKÆëM¾6Vе2µ'Wþ9~Ñ[Ãw¤^Q¯¨W˜™d÷^Ý{uï•᪠áäá—Jýb¹4÷µ\Õ>óç]•_5Ükµ§ýú9SÊ×`½í vÈ÷KÃòý+•òX`UPÿkŠûØ”ÊÃ4pÿF[ÛŸ1|_{«ì­²·JF˜{` ½˜_ôMˆ þʼn'^œ0ü"ëó¾r‹ÒÙÒ7‘¾tëý¿ºçl½ ß-˜-é_Áîò£ÛÂÒ ÉÿŸg7íX®t±Ñ¦€;.°ÝSò3·¸ {ö>ì=3€ŒãÝÆwßm4\éä´Îí•éäÒ„7‚ÖßÌ9)k3‹ß,sYõp˜0¦öÒë¦síï¿·§žÚ¤J— ÏùI™'ež”afqD.Ž\¹ØpUP"·­{Ê¥ã ïãdQnju×Bs“²+}®Êœ‚›õaØ4p#ß‘³JÝ6<ó[Þ·¼oyg„¹GÒ’yGß„ÀâãBãBãB}µÅUôÖyÞNßPª?“©Ï]FÛœp·³®e5Aÿl`ý¾Þ?¥bŠÌ]± ÞÌJ±öÞ]=ÿó‡§úx\Ä+¿‡ÅšA}”g é7f›·­çL£W*¯_¿–™ @mÙв¡eCõ[µý¯7Í l;µ÷„yV}Vº|gQ¸J‘kƒ M,¼¡ð„ŠJµN¥G4/ÛýjÍGK_-ijçï^x½ý)gcë±Øq±ãbÇ11Èhœ£œ£œ?so¹ICÎF8Ï0hª?«6?Lw)—Ëf³ëŸ–+ ž*rÞ¢E~«BÅò,ÝÕQ-8¥‰÷èg¥§Oö=Òù¶)ߺpý’%ó}ææÛ‘C#‡FÍ³Ž ¤¶Œ}"ø×À…\hø5wgR×0÷ƒ¦M¿³±kš7¾ìuÆm áh®4ºÒèJÌF2&¿ö~íýÚ®ªNU`›§ÉTƒüuÿ6½ö5Î-šrè€áhwóíæÛÍ—Ù@Æ´Ü}¹ûrwÃBÿÖ[6ØŸ7hjƒýï ÿ­©¥ßqCŽG;U6íúê?¨ÿ ãÌ:02fôMˆ à_Údm²6Ùð+oþj÷óöCM- ~ëûé\bm‹ŽvèµÐk¡×˜dL玞;zî¨á ¡ŒCK¿^wM9‹{Ûâ½ÇÅŽö‘=GöÙÃl cºe}ËúÖg®F­^°]åb¦€¿Ý}ç^‹~ªàg8ÚÛömÛ·m_Æ™u` ¥}"øW„s„s„ñ›àÕõî㹕p›ü}ô”:ÏzÆÆùÓ»Oï>½c61E»G»G»['¸~X³ôØ"Âmò÷nŸÖŸÜmlœße~—ù]ff#SÜ„¸ qŒ­&®=³À¹6á6ö㯅Vs*Yæfþï ÇùE½õ^ÔË8³Ž $Ñ×0€ÿè›·oÞ¾y ¿C޶=\³(ù6ù{yzëÕǎ𰟇ý<ìgf ?`ü€ñ W v£=—,'ß&ïÜaZÿ3 G¸SNu:Õa€…Yf]˜ÕpµÐQ™_¥üòmò÷îüáVù3÷b©Ý¶vÛÚm3Ú|#_Šè›`ÿq1ÿÅüó~9ºüQ"¼ðø8"n2öÒÀV ªW<]¤tÁPþ^áz…ë˜àöÙÛgoŸ5\-ä«i•½è÷¼ëóŸ*@ÄMÎÞj·£­†#|jñ©Å§3À“³OÎ>9k,!øÝ¿’¹êN"nröUÿl}ªèñ•êKõ¥úm¾€¤ ú~)0€ÿZ¿4~i9ïrÞå¼ ¿.Ïìì°Óå )÷ëöÇk·kXs”á¨:Íwšï4?>">">‚ ôê4®Ó¸NcÕC•¬,Væ%â~ݾê³´í¥ GÕò†å ËqÁqÁqÁÌ= ×É¿“'ÕC·rëm÷ëö#t?9<1–j¢D?ˆ~Ñf0†è›`Ÿ!—•ËÊe ¿:+~gõwÁUqÞ/<£ºIßÇNñžày¨d‹‚Eóé>s{íÊ!•C*3ë@B§.ºtêÒg~/»3o¤…¿Û˜ßíC×t¿`_v}ëS}-³Ú”tèc8¨‡>tø³$tíÙµgמ “ÿàüˆ û¥ûÊÙ²êe8ž[6oÙ¼esÆœi` !¢oJ!øŒ8]œ.NWþÇò?–ÿñ3êØµñ#§òdݤï7öiðÒ±óg®ý u u Ÿ?'~³üÇÛø·ñoëX×±®cm¸Š°=ß·ÏÄódݤï+ùdálÑ,ü²ðËÂ/cÄ.ˆ]À¤†:v ìh¸Šhüht¶Ò ºIß÷¹qŠ}ucñ&*gTΨœsŽ€¢oj 0êô/§9ý‹±¯×gö=ŸÕ-NÜM|ÿ¨xuœŒáŹç^œËLÆ\¯x½âõŠÆÖ5\ì8О¸›øÞeq@NÝ߯Æð˜í1Ûc¶Ì4`Ìý6÷ÛÜocl-1ôí¡=•÷wßOw¦…³Ñ?û³éŸMÿlš‘ç8¼ûðîû‰¾)‹ àÿÐoK¿-ý¶~ÕÖVêb‘‘±Þ[=Ïz ÷1;½í=gUÏS<Àò®áè ‹?ŒÉ’d\̸˜q1†+Š­K®+;Ä­éÚ Ç_z?³Ï¹.öäÇ"wªzÖùÉpô¼Þz½õzËìI1ïþ¼ûóî®(òþl1!Ϭɶçë9z?³ŸpíT5çê6íZ³4=Q£K—:/uf€äXe³Êf•±õF¥œCÌy•‘Ó¯ãÚqW~õ56>ÓúLë3­³$Ç»v;Œfà¶Wfu-·5#§_ï;|+Î36>ûï:¼+³(!0€Ô@ðânÄ݈»áuÀë€×c˸ƒÕš;T-ŸÑÒïîZM"œÎ“¾Íû6ïÛ<~Aü‚øÌ",añaña>k|Öø¬1¶ö¨ØrH½Y-ý:-³<“±1iu®Õ¹Vçb¯Å^‹½Æ$É7¥×”^Sz[{´i>}o¹2-ýö÷Ø2×þ´±1qµwµwµzõ>ê=ó'!0€Ô@ðÅ"í"í"í\¹,rYdlI·ê”GáÊâ? ÐÀÓlÓoÈÀv j.·«»¾RicãàqÚã´Ç騈¨ˆ¨fH)1b&ÄLh!ZˆÂØ:¤B·®;GÞt/±¾Î©æ~í½Nhlr;ävÈýÑê£ÕG+fH)qãÆìu«×­^·Œ­C<Çú4²¾=uþU»ªÍ;ýv XúØÆÍØ8Xí¶Úmµ;¼Bx…ð ÌC`© à+}¨õ¡Ö‡ZU—U]Vu™±å·…ÃÕÒáŸlúOö˜jNé7"g¿ƒ9zúWú®”»±÷^»Kí.µ»|ýqôÇÑÌ"‡D‰ÒèQ£G[“ÏãZ¥QT­û+„“9E_7«µ?·)5¸ñ ¯ÝFŸ‹¼ÀnÝ‚p5\ W™- 5ÄÄÄtqïâÞÅèŸÙY×nU¸àøº'†91§è;ÕîŠ_Õ`–ƒë[7öÞ ž(x¢à‰WÙ^e{•Ùb @j H–ŸŸŸFûík´/O¢Î…tü¹VÏo=ýžºÚ>ÆeRâï´õÁÖ[üÔÿSÿOý™! µEÙEÙEÙyMòšäõ¬RœO™ú{è·ž~«îµ}{¶}` öÇïߟ”5L¹K/ Yér `´ÔÇä¢ï®ßfimV÷üu실¼— <6xðéS ¹In’[RÖ0õ7 *h]wì“vUM-úNò?WÖy~[Ý,Çr¿'å½888ÅoŠß¿‰9t`© Uܲ¾e}ËÚÆÅÆÅÆ%) ÄŸçV-Rî—[Þ]+¸×J¯èû·›W”ÛŒaeœ|ËÎKÊ9;6vlìØøŸ™ÿÌüg&Ÿ805÷¥ûÒ}©¦cMÇšŽIYÛXOmøC‡ˆjN³=wJ¯è[#Û‚Ìû'–ù±åO½š$霳ZgµÎz}Éõ%×—ð‰Só4ðiàÓÀF¿4ú¥Ñ/IYÛT»Þ6¨hìàw{GWÚ—^ÑwLѹJϵ>ó¬Ÿ'åœó”ÈS"O‰óïο;ÿŽOü뀤0€Tëëë¼6pmàÚÀ<_hú›ZÕmÝÏnëøC­’)œ{cz7hpúf‡î.ú…¸|oãÿ¥ç¶1`cÀÆ€¸ìqÙã²ó)S·/n_ܾmS¶MÙ6åK×Mð-úðþÃûï{-öZ앜õXåò Ú[ù4\5"{©e+Ï«V>¤gÿÕÍm¯õ=³1ƾe¿*›íGôÚ¹vºGçy‹:VXØtÔX©ô­ª[ÿXÔ7¿G¡þyÇ~ÝëúlõÙê³õ颧‹ž.âÓL)`© ¼ªõªÖ«ZóÇÌ3L¶xÇâ‹w„eËÆ•¾À¬¼9òæÈ›#ËO.?¹ü¤)¯ÇæTšSiN¥_t~Ñ™O ˜“w7ßÝ|wsÍ™5gÖœ1åõ˜_o¿Þ~½Ÿ´~ÒúIk>µÔ@ÀÒYìÛØ·±oƒ‡ ÚmY·eÝ–¥×r¶—/ÿ^þÇ¿;þÝñïâNÇŽ;ͧ2„áñÃ㇟X|bñ‰Åý|úùôóI¯õXçå—w^®ÓŽiÇbÅ<Šyć2޳¾g}Ïúúä÷Éï“?½Öc­G¶Ùz¤®©®©®iT«¨VQ­ø\R@j 091#bFÄŒ¸üòòËË/W¼ZñjÅ«fÍ<šy¤ÔB¶Å?-þiñÏJç•Î+¯.½ºôêÒØa±Ãb‡1òzqMãšÆ5½îxÝñºãêÑ«G¯ÝztëÑ­G§Ôz¬ñæÆ›o^¾nùºåë.¹_r¿äÝ9ºs4×øü³ãgÇϾÙîf»›íÖ=X÷`݃K:,é°$¥Öc=:zt\¾(|Qø¹Ðs¡çB?½ùôæÓÌÀ7ïyõçÕŸW9r ä@È… !^µxÕâU F m¼©ó¦Î›:!¯C^‡¼   x’íI¶'Ù€´ñaÙ‡e–³9fsÌ&Ä+Ä+Äëîð»Ãïgd c"€™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ €™ø*aN¥Þ)¨Ñ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/sampleTime.png000066400000000000000000001422261431412030200255000ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTÇûøq5Õ˜X°a±€€ EE좱÷Þ»Xbï%¶Xb—(±÷’{,(ÛÁ†k4¶ØM4öÞà÷Çäs~ä\/_” ,—÷Ësæx”»;;;;Ì<ÏÝÝt±»Ž&û@ì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aø½íŸ¼òþÉÆKã¥ñRü6Ajwîõ¹×ç^G¹E¹E¹íkµ¯Õ¾V/½lô²-ÃÀ< ÇöJ\ƒâzצ¸NiÆX¤,¢[x$€cï ¼3ðÎÀðæáÍÛ\7pÝÀu…çž[xnÖDÛÛÛû¢Í‘Ôž|vòÙÉÃG9|dúóéϧ?¯x±âÅŠ³ÚH«}­öµÚ·zì걫Ç^<{ñìų±¯c_Dz@bŒ` z,=H9¯c_Ǿ׋¸vÄud««R\ãâz×¾hxÆXÄè$¿4—¾•ñVÆ[çß™gþüSòOÉ?%k²ûuõ¡#"1žx~àù]ÓwMß5½ÖÄZkMÌšBÖX`ýOt<Ñ‘óÂÀ<ôXz,Ôĵ ®‹”º*Ř Æ1Vp^c‰nÝBÚaÙ#?Šü(ò#Z)ËÞÀùcóÇæß?oÿ¼ýó‚Ó§NŸÕ”DÝD=E隈ߵÍ×6_Û<ìØ°cÃŽe5±ÕåW—_]þ™Ï3Ÿg>œ5Æ(æ± ÇÒcÄý\ôy3_•bÜcg1–èÑ-Ø7À0'{Lß½{?òÇÈ#t½àzÁõ‡ýJÈäìï¸f@¿Š–Y°¯j‹’žÛêÕé·[ù¡aïÒ»§3—Ù!þ.þ]üŒøyñÙÛ¯¨³¨¿8º)„ë3®Ï¸>£K¯.½ºôú°Þå”)o‡ØÏê·qi>sð€§Ë6Ôœ:Á×eoÔü€ º¼èR™¾ÚÄ…•)¾ë\h ÿ—«žO8è3r|Ýn—ëΫTÊéYb¦Y œ8/p~ÑèE£iûý+6£r·/–Ïs¿ËýÚ3ÛtŸÓyñÈc%k 3+½ÏÙÓt)µe´ßâãâïâßÅψŸŸeŒ©e›«rÞ? ¬kÜ;ÿÝ:­†×suk•wNýârÇçË>/ѶkíÕg<†wÙ±ê¸GŽ‹¢Ü¥f‹§û¡úŒ¾^.ž=ªÖÌs–y,’wå•ã†Cl‡g^Þ.Íg®XÈcÙ†š5/úºìj>à‚.7ZX¦¯6±Q‘2Åw«7Íÿåªç5 ûŒ_7p¡Ûåºóоdåü—èÏ¢o'æê‘ åý‘-‘E•Û¯OÄØÂÙLüë0;÷ƒ¼e ¬¬\¤~›â]Ú(žz>ø&hêŸüÂ懔4jØ¢K¥ÊŒ _ø—wëÁB[xL‰žp°èWMÛ‡ ÈwË¿s¥RŒ±æ‰n¹x•Üœ+o…ß;î(°®¡:~O‘§m†s»ÐùÀJ¿/ºþ¹æœÇÏâïâßÅψŸŸ%º3  s²«ðåB— ].|4øhðÑ„÷uBŠNuÚ¾é£ZW|Õ[':ô¨t,66$¤zu[•b›bûb_ïñ½¤£ÁGƒŠã¢³¦Mϧ=Ÿö|ڤܓrOÊðžS h¾KÙ‡Ïõ|ÝsØïË7ôº]½º­Ê7‹º̸øJ™=ý´©R4ÛûN³Â÷„ï ßû"öEì‹´s6?lŒÊ·Ñoců½†ô½6mMÙ°¹Ïv_©PaÅŠèh[•b›bûb_ŒQ ¥æ±¹«ä_î0¤žë¨>®Ú7ûvt)¹rüø3glU޽~úcÿ_ºþµæ¶ÇÆ :)0y,·òʹ)ûð¹þ•&{û}y«ôAwmOx³¨GÑàñ‘ç,³§ÿ¿Æ¬¼¦¼ˆ}ûBôá÷íù"R!¢"‚aÛ¨ˆˆ´ˆ¨‹ˆÀ$¼nbœccìÿ‘è}ž§t¾KnùÛ2øz@)“7ô¶m<¤|زЃ®¥~]iñ—£µ‹´©Â›tÑ-?ªÔϳ¾u÷ÐP7Ï!¯Œ¥ÚÙvŽ'¶)¶/öEt ɉ0Ì)Õ'€cÕÜ_ݺwoåU¶]Ø$¼<ÜiUÀ%-ÖÌUprBêÜä|“óMÎßuºët×É^ÏãûŽQÙó,ËßÙ«eßï¦yTð^1$:Ô¶Ë›•Þ+†D‡Š:ˆú0F€¤›Ç~}e`ÅÂé†íÚ§”zdÛP`ÂËk¿\ôJ_êd%ßZæ±ôØÿkåÔÛýÕ¡#+¯JxBlHHõê‡;5ó \Òâa ?V^°G¢¯Š~›.¢""‘Rñ‘™„'büaŒ«èÛMûT ¬5ÏcïÞˆ‡TX±":Ú¯þø«z8çªQ3cì‡E·rÿàäå0§µS¨ƒ[ŽñÎ,(‘s¼g”uõ!º…¤C攊ÀwZÜiq§E…AUô<Ì9Üy°ãáè†M£ÛÇn ©]Ý/¥iï(7†Ô®î'ê&êÿ±ˆãÇN÷µÃéÔʉ1§Í›6oÚ¼„LJÖ”ŸxÀ'òùΨÕº§Ô"ÇZy³þ®m•† i]t|BŽ%ªtTé¨Òöt6>FåWl¢W¿¼ã6¬ ­àµ¢_ô´”Zä¼£ôZÑ/zš¨›¨'cHü<¶yééÁÅŒ™yì¡ß”JúZ½ƒ¤²>¨TÁŠ;(p!mÎcé±ïZyÕXâù|g·ÆÕº›(žR½úÍúíÏV60Ä?KZ]yÁžˆþ™ž,¢ "ò`¶xˆˆÒˆˆMBŽEŒEb\J›c¬Ç¾žs&Z»xaTÅCÄSÓêÌÍ´k[á’ušµ&ºõ<Ìyœw¥\!7¼òü}|ë3¡n&šãµ>à&ê&êIt ¶Eæ”*ÀÇÿ8þÇñ?òKW)Ú°jéef[žÅ_Š:'äèD;ЉíÓ O*<©P§UVuZÅÞgöpßcÉë|ƒƒÌ¶È±V^­ÿëìŠs¸Vñuþ>þ£ûñÄ'~<“zÏfÂÇ(cD͙Ͷ¼‰¿ufŒï;­Ólx ×bcžúؤْ¾ÖÊA-•>c¼–÷Ì[)-Ìcé±ÿ]yUtöXòºG÷íÁA©%žpµ~»Öç4p-v7m¬¼`'bbcbcDŸŒ¿ßЍ‚ˆ0¤–xˆˆÞˆHÎÿñ[²UVuZ‰1*-Œ±Å;µÙ3à~ù6KÏðM-ñ2“g-ýuvþ®ªøÝŠ«s芳%n¦–Ù(E‰nÁVHÜRYXZ"-‘þ Ó˜–e]Š¿~™¥Û©j;RWê7n)ê/Ž%þãmBWN½nÞ¼˜ou¾ÕùV[;˾=\=.çÜv²bÖԲȱVîú™ÿÕø{õ0u˜:L9s*æ”ýQEj5zÙ­UÐ_Kzïk—ºR¿qKQq,ŒQ0µ6(äåù0gÔÀšR°OáÔ´,ÛßZôûF{ÇÒcÿ·òrêãèq9gÛɳ¦Þx‚(w ¨×Õ~W^°¢ï‰~_‘„ÔQá±v¤bŒã•ý±¹^ùÝõLÞ™Õ¶L½ñQz×¼$ô³´ݪ¶¡×õB ¾õ=‘Õ?ê݉ú‹c!º…Ä  sJ5 àvdØ‘!þبÚ(ºÌŒÔ¾H³,ÅqÅì¢}èЩ˭·Þÿ™rö›9%ZÅ<>ô²zÆÔ¾Ô‰[ÞöÚ^¹Eà]ŸykÇÓ/¦_L?û£JÍu`qõԾȱ,Åq1FÀ<6®š¿ ZQ¸Úø ¿¿È”ÚS¿qËay£6–’]Çûª¹®ØÇ<–û¿•Wù/J´ŠyòIõŒöO¸íÕ±fåw ~j/+/ØÑßDß³Ö3EÄ@Dì)""<"Úÿ¸$Æ.ûc‹ÕoÙü›9¾Xsè¥=ÅC3ýÐuO¸c÷l> ÒNt«ë÷k‚=fÚÓìN”⸈náÆ9¥‚püß9rl’Ý5Û½ùÚw­äk©ß¸¥8Fq¼|)µ»ëw×ï®ßÿñýÖ¿C»ø¿±§EŽeù¦Ü?‚{ìßöDщÖÚ¡ßã~û=Ž OcT¶u9säš\6Ûœ;UûKýþç½8Ùæ4Ø©ŠãeŒ -Ïc;XtÜ]µ¿°`ÜrìÎS¿ú/©8´Óo.¦Þy,=ö+¯zsüߨw<áM¹‚{ìïïšW^°á±á±á¢¿Y}¿oÿ¶'ŠNûŽŠˆÈOüc”ÇRïëÝnðÐ.ö)?qY‹ö©Óºí {nåHŸëQ¶ƒ7i}îÛ÷O£8^¢[H8À0'S'€ãÓ@ÀHçvŽò£Ÿ» ¨ZÕ¾—jqKq¼âØy3Ajô|÷óÝÏw»;º;º;Z;ƒGœW½ Üoß‹œÿ”/¢£ªW›ÕhàJãÖÚdF½õfÔK]cTîÁÅÚ{(·qÁ4­­}/uâ–âxű3FÖæ±=ËoáUÀ¾Ã‚ÿ)¿=s<À¿Ž1âS×:©kKýßÊ«ÙÐÀýi'žû"¤[õj³U”ÚV^°'¢Yë"2 ¢i'*"¢@ÖÚDŒcbLK]c¬ßÀñƪ7i'R¡üŠ%ÑQÅg¶ ¸Òž¢[.½¿Êå1ªèaÙ/wÚ™ã‰ãÇNt AædÒðwZÜiê÷Ùw]¯VsICKµ8¥8öøÓÀ¢ éâ&ò[ìo±¿uèÙ¡g‡žV§/Ö(w9 ¥~-Ê9Ooó ±ú u‡ºC5ÿ%ÒŸA½]‰ì˜†–:qßÜkѕȎñ§£°§ylï™['zÝHC©_‹²Þ'£Ê¸î2ÿ<–û¿•W‹àr—ÓfU¬õêESM]4Õm傚Oj‰nuý~M°ÇLærÖJÑ>D·`‰pâ½mô¶ÑÛFÖ®/’ÁÆ àbÿ‰ý'øhðÑࣖ§vL˲.Å_³$KH)Úʲ EÛŠv¦Ó'§ 6,ذÀÚ°õ|gTýjÝYÒÄ_Ù¼ºOà_ÖÚðïÕ¯þ{uÊŽQEj5zÙ­Kš=þ¨V£—ÝZ1FÚç±cf{èwƒ `üeÏñy¤ð<–ûïÊ«[ãj݉Ä_ÙÜlcН¼`GDŸ±Ö£ÄJŸˆGü¥ˆY}ªÁ‚ 6,0ôvñ¨úD<â/ýfMÈ·º™£[Õ6ôº^hó·„”¢­ˆn!.À‰÷Þßø‘ N8S$€#Œü1òG«Kµ[ݺVÀb,!¥h+k-)Ú™NŸ<žÞzÿ©ÕƒDŸZù*p4‹™„—Ãût[ì’eKö,г@Ï);Fm^¼;j‹™„”¢­£H½óØå¿t÷¼Cà/áe•FÝ<žRóXzlô©¦oG+Hx9¼Oé:)·ò‚=}Ʋ/‰Õ=QŽ„—"‚dm”c`J±~~ã^¯|E¬#á¥kóúo:5gtkÌÚãyýî2sKH)ÚŠèâ"œx"¡+’»YŒdpüR:œ?6l~× ®\/Xž<¥h꥗±{ßR´›e{ŠvmN×Oj?fú1Ó™,ÏBç¡ ºð-×÷.çÐ6Wmmõ+Q—£.G%ÿåcŒ¨¹ 3 ˜÷-E»1Fºæ±¥Ï6çÔ˜ß{?ºÅ‘œ~ÅS`ËÊkhÉ.xßòqŽ. Rdå;"ú‰µ^$V÷D9Þ·Ñ$Ëöc`ò±ªüÔ°!ñ÷~´¶à¶ÙlѭΡ+Ζ¸Éœí}KÑnD· ¶-’Á¶’ àýóöÏÛ?ÏòT„;v<Ò zi`ï]F„4¨^Z´¡eÛŠ6§ë'~/ü^øY†nNÙu©Òw,]>¬\]jÂsŸ)–­Úkd¯‘½F&ç•{\±‰^ *ø¬Ææ½KŸâÃD2FZæ±CÚê«J¹ìû°²ÙîiÝ‹-IÎy,=öæ”öw+}G|àÃÊÕ¥j&ïÊ öDôËþ#VôD6>¬Ñ$k#ž“sŒ-Û|®×®KÄ7>¬ô ¹?á¹¢[.ã¼+å ßé̲€ÌÖÞ»ìtfY@ цD·@8é NŒN§NœþijØ4:°=‹®Ä”¢ ßñ6‚ôÁéƒÓ3p$-%¶”ØR²åû‡¶iSÔ‘EKbÊ—µ÷M¯¦[Öï¸wâÞ‰ä£üòŽÛ°2”EK¢Þ“w܆•¡ŒQ˜[!´cåsó%¦ü¶þ‰*þE’s›¶W^~Š:HLù²v·ÛÉ»ò‚}}ÃZÏ+z"‰)EdɲmÅx˜Yúd铤£²;æY–¿s—5£[²hITé²¢ftKÑžŒQ˜y;ÈYÞíÓ“_â˳Ǯ/2;©ç±ôØ+'ÛyVLL ñeXÍ*½’~å{"ú†eŸ«x¢‰/Edɲ…Åx(ÆÆ¤cËôÕø×’Ä4_ºçî”wøÅ”ŠnåþÁÉËaÎøògÚ`†–¨²ü™vD{ÝJËH'?’Á ‘b àùwæß™ÇòlìQk½ïZ¶*E{Z¶³h† ÛºÖçZŸk},[»¢‹ßõ¼ÛSjyp¾îæœå_Ç­Oj_ðÜ]$u¯âlÙÎù*櫘¯bìÑØ£±G“nŒòjÙ÷»i,TlUŠödŒÀœóØ¢KWÎ==5ãú§¯éÝ!¡VÃ#Lö­™ÔóØ´½ò*–w;q[•wušô+/؉£±GcоaÙgÄ*ÞÌq†×µ8ÌðëÿÊ£™Ÿî±Ï±uî°œO²E~-›ã‰Ùj+¢L–í,ÆÆ¤cóðXæw8†­ÊÀ_ç—º§Tt«µS¨ƒ[Ž”ýçééÃkzwH½i`ÑžD·Ò2À)‹d°5)‘~û öAþ)ù§äÇemé2¨j5Z¶*E{Z¶³hq. leAÁ´lí]ÛCý˜'liàºs+y;=³<®™od¾‘9鯍r›ÌÔ:±P±U)Ú“1 sÎc;|ºhû.À¶-=»W­‘çl’ÌcYym¯7ÚÿqÛ–uç}‘D+/ØÑ,û‰X¹›?Â0*¸Ëžââ›§¶"ÊdYC16&ÝëÝdpdh q Û–ùnùw¬äüÑ­Qn‡u?Gó$€Í6[{ßR´'Ñ­´Œ°y Ž+ÀwÞxg e× ):Õ‰ïê&I)ÚÖ²ÍŹ`P°Ï"žE<ßñf¯Çå´£U»¶m¹;_è´€Ï-kMù5å×”OŠ1*ßF¿¿fq’$ ž~+~Í€Ùæ±£z ðó"lÛ²C™E¯Ý$Å<–û¸\—õU»°m¹;_½ÕI³ò‚=ýÁ²Ÿˆ•»ù# Åæ» ËÙQÔyø€N‹ýùG¯‹ËÏz²CZ5ÜlQe²lm16&Ý[îà‚«ÚQ"¶-½{ ù(tZrF·<þ¨R?Ïz3̈ì),JѶD·Ò&ÀæD28ÀáÍÛ‡7·lÖMպ⫲¸JŠR´­e›‹sÁ@xO?Yüd±e ®ôiŸgSÊ. ì5|„|©Ê÷–ÇU{@íµ$Åå5¤ïµikXœ$Ƀ ‡ô½6m cæ™Çº¶óŸëtê À™9ðÄ·˜Ñ9_v»“3˜é9½*Þ2Çvßõ¤üŸ÷ž¸u×s&€EÛÝJ›H§^ö NÖðëC¯½>dÙX™œýטga£ÝhT³LgÏœ ³WÊúž®Eµ»Yñ†9l¢-ë,Î —zb„¸†¸†¸¾ãaG”|U›3œsGŽ‘ÙšÇߟ‹üZ06Ç“Óëþ9h‡9<¿œù~¯ï(Ëš^yxåá•¶£r·/–Ïs¿é´cÁ*mT¾á~ŸUèŸð1ÊÓè³yÊs¦E;3F`†yìˆ}‡šû®4Å“¿9(ù~çîX~œ£”ð9O‹¨™¯‹×1s¸ÕÙ¹ ‹¿µÕ<–{ÿ@çöU›aÝ-R¹ƒ7ùß*öiÂ{lÓ­n1¢Ÿ®é:³ê}sÆ~9Sk€íV^°'¢Xö ±Z7s¸èšB{sº‹2nÍ]®8ÌÑ îÿšôÅX”|UÞñ¸f1NÚvŒ-W ,ZÉg†¸APô’¬Q·œN–ðõG cKýó’ž–ÿn¢dvù¾^ßïMêè–‹WÉ͹òšg.dYÃü+Š¦Ë‘ h|—~«Zzx›3 ,Ú™èVZCØ>Ø_28YÀ÷«Þ¯z¿ªe (à÷CÑ2fXÒˆå–Û°<“ru+ºÆqxN÷9WêéÙ-ê§Æ[Ê:žÚÕ²vз꓆÷Ë|>öe`~·PqOð¿hÆ›hçw,•«Þ¯z¿*—wbøñ9âsäjñ<8?x•9À¨à.{ŠOØ[þWÚÖ›3·ø­èëØªW‘©ÙÒg=œõ?߇q:Ô(ø³-xŽ_÷S¹3–ÇõóŸoü|ÃVc”ËýÚ3Û4[ºô? žƒ-³g(Ò·qïn÷}: Ï6É÷θÜ+N¹µÒU|6î•n3íÁæã¦ûÆëýÚ3ÛdŒÀ óXqÇm ѲœÉÕssÕ¨<âÖ­äÝ[ònnê5eg±¼Ý ­ÿÊ3W“½“ï}âTåMžƒÖæ½f ö¹µ‹×%[Ícé±o={´ ^e†u÷ĈrÜûüûEÒ0‡KÙŒ±Ÿ—ÕÝÚì­_ÿt€v´P³3å2¬ÙPcŸÏÅ*º¼É7í]÷š1žpüx‹Ò¶[yÁžˆ>ðŽ_÷S¹3©å%S©ñÐ"âdÙòbœ´í[~û²;ç›!nPЫʥ†óãÖ­`º*uüáUð›“ßû­™Ðaõ>Ïn½¿ŸÜ$!IbóÄCü[·dÝOIݪð{ÇÖ™9,4º?ñpÑVŽDôò~5¬dÔ‰RQbÖ—+:ß1‡zæd´hg¢[i `ûcÉàdMÿ¹íÏmn³l”ûª¶(éi†%HëŠZe{”ÕÈ:úìˆVÛÊ·°¶{Ç#Näîc²9l¢-ë,Î —´m‡øÜós>Îf˜aI`™v¸æœu»ä6©´WÜ¥NÜ¿ÿRùû`ßVæðÑ­ Ý½*m²¬ç÷?ÿó÷?ÛjŒrŸÓyñÈcæYxŸÚy^ƒ+·(Û>‡`eD…cÅÿZ.cþÓ&äX‘ó‰™y$Ú™1 €”ÇŠGí™!|Öúýg-V»ÞÐ…‹?hXe°‚/ÌŸ²Í([ªº­æ±i{ååp1›a†÷åôm¿­ø¥ÃµlNY·çí™ýŽC÷3S[µ(ïbíçEý‡, ¨\,Èüià[A¼m·ò‚=}À²oˆÕ: à¤.Eôé]cˆmÆØlr¬ÈùØ ƒRëF;.þÏ;=„8ÿ;nÜÃR±E­ª÷2¸ìˆ¹‹v÷JêèVCuüž"OMš~–mEÖ¶=Ã75ôúÚÚÌ-µ|ÉO´3Ñ-æ¨$€íIêM'køxã=Ž÷°lˆmõêŒôÛm†%Í‘M¤²{ûßñWÔcÊØ ¿KTOÈÒË2IlΛhçw|+³ÇñÇ{pÛvˆ/ŸÑ·RÞ²æLwºØà—¨„$tã~ªV·ò;œ*˜m©óh–V£jyËöï×¥_—~]l5F•¬5`̬ôæY8ß®ðgoDÝ ¯¼§SB–.q(ï@Ãl `ÑÎŒQ¤ì<¶ÈDÿñ¹K›!|æ}²få¼oþýBžcùqŽR‚Þ¾Víä?þCû¸¹ä8gæàà¨<‡×ùe·Õ<6m¯¼ þ–·¬VÜ—ssÿ7<=­qùg%þNHdàuíî?ˆ·‹Ÿï]½T7×›f‹'<šÕ¥‡íV^°'¢Xö ±Z'œÔ¥ˆ>%]Øqw‰–¾•Lqïoº*uü!jå”·¬{°CB"!å¯,}¨QîzEoxN0s¸Üú#´IÝj;0¬˜Ûs&€ËÜjÞÚicüs¶W}ç»Áü `ÑÎD·˜£’¶W©+œ¬ àý“÷OÞ?Ùòà•ö.½ÛœwÍÆ¿`{ëÑ£Mðª¹ç*Ez.1X´sV$‹FžU£ ¤3gX}²pX™ÏòÙÝ£CÏ8ÿïqèÿÿ½8æYê<Šj]­gRŸMŸ³#¦/èbž…A.£HÉuÿ­[œ{ÿå„{Ø]¥Fé[3Önû¬ÌŠY÷}i¶°hgFRVÉ5œò†š!|æôªxËÛE­Úÿ±“»cÂÃ|掙,ÆïýÍ+¯â› ¤3Ê»å ] ®ù7ä·»q³2WÞ7ò ¬vþÆq¿Ùâ Ï£ºµLú•ì‰X­“NêRDŸ’î<æ?TÆ£ª)"¹GæUQÔ*îsÑòYóßôÓâUQ­“úªì|`¥_‰æL·š=שø û˜ã‰væ·K;7íÜ´s“Ý&€—ÆKã¥åaOg.³Ãœ àé:ªò“’½aPéEË? þÅ;ìÛÜe{¸m1¡D¦‚} 8çÜ}¨µÓi¶cíÌe–{©àÖZ–½«o›e©ó²þ¾ÙÕŒ¤>›¥¶Œö[lŠ7æŠ÷îÄ­[™j3mk¶Tî>ÐiËh¿ÅÇ=HY¥bëfÊ·#…“£ÃŽò»·Výoí9ç½1á[hÿxÑD÷­f~ÛèDuÿ¢ô7[¬¼J4+¸Ø +nÿíÎ9ç$þˆ\ÜQ9$³E^ÖïöOÒ¯¼`OÄjpR—"ú”tçÑÙ-èÛšmM É5³Ì¶÷xª™÷È!CÏZ‰ÀO—„î›ÔWe×?לóøÙœ à“¿¨žoì#,Ú™ß,½Úøjã«ÜœÂåÑBÍΔËÐ S±kÎ߉÷÷X;a¾Ç::ºvüÇkºË,Ëÿåà´ÌÌw¿ Ù·ºÚÁÝ_;9ªDµ6ïêÛÜœ2e™ßfÛñŸ¯qE/ÉuË>ÀÜ €˜áàÁ™Ôf>áqk%R ßBï‰[y]1sp;€m·ò2ËÀŽS²—Îö*ñGw;܌ԋ;€¹Øf‘³îÿú21‘ÿ“×¶<:î6O¸úðšÞ¸€}³ó;€SË;€s‡9\Êöï7[½3ç{•»–x—ÏŽŸëîõy±d›zˆ÷ôˆO¯ÛZùo‚ÍlKµøß,žGÏŸÄü±lU3¿8áw_~´}lÅ*âSÙOfÏõöÿú¶ÙßÜ¢~‹ú-ê¿ïy\á°Âa…Ã; ¦ypÐ’Åc¢JÄ­[ÙVsKïºm `kïf„áøÃþð'9ç±fxðاvøÿç%;Zí]å}2á[èðÇ’œî1fZ{ð‡ÍcÓöÊË,ïу£gêlò;#bVš-ª`íÀôXþˆ>`Ù7xpʾØVc¬Þ\öFè½=ãÖê}ïöñ6yþA3'€­½ضÑ-3¿ØžÀÖÞÌï‹´6G û4ìÓ°Oiûû³kÄ®»F„dÉ’!á©_ñóvþà?·ý¹íÏm–¿`_Õ%=Ͱ¤©óuÑÑNÿ¾L¾ÓE¯.Q1N=vÿZ÷\›Ö]ËG™?,Úù]õ„í_óž{~ÎÇÙŒÔþà½õç ýïËnŽÿ g˜g©s+hw¯J›,ÛÿûŸ¿ÿùûŸm5F¹Ïé¼xä1ó, âÖÍ÷ã1AK‹&äS«¦®ûåO·^í_-ä¶¿ca +d]‘%:‹yŽK´3c);;.W“lUÌl·p»{…„¶Þ€QÏ\Ï›988d›Q¶Tu[ÍcÓöÊËáb6à +îF—Š?,P\Ô*¼O}—€&æ|ÑÕ‡•·‚:xÛnå{"ú€eß«uÀI]Šè“­ÖÑ–ÛÉ6!ÇŠœÍöh‘Ð}hC£N¿8fæpÙsíî•ÔÑ­†êø=Ež’NêR´3Ñ-æ¨"YHËØ‘¸´~ÒúIëžô?ŸüI߸’5|¿êýª÷«Z6Ä€~?-c†%MþÚ9–:œµ:Ô¶i¿Àâ ùÔÞúõOÿ/Ifæ°hg~ý$Ÿ#>G|ŽX¶í[σóƒW™-Üébƒ?\¢òÙæs¿þ¨à¿}¦å š£ ®1[øøñu?•;cÙò?ßøùÆÏ7l5F¹Ü¯=³ÍAs&€ ýöuú ù”ËÍÚß´YñïwxCݯ—úÙlw‹vfŒÀ óØqn§Gûæ ºO«PÓñz‚î®vòÿ¡¢JŒÊYÇÌÁÁÞ#·vñºd«y,=ö­g6Á«RvÅ=|@ézÅþõé1Þ'ë— z·nH·§ÕÕ,8%of÷y.çúxzÕ < š-žpüx‹Ò¶[yÁžˆ>`Ù7ÄjpÒ•"âdÙòbœ´í+R°æ‰„8,7àë”<¾²|ô¡FŽŸ»yy›úÐþ­¿[²î§¤ŽnUø½ãŽëH'u)Ú™èVZCØþ¤Þ¤o\Éš~}èõ¡×‡,% “³¿ã3,i¶{í‘rafK]ShoNwñ÷Ñþ]‡¨4ÿ`À‹íf»ùgîëØªW‘©q¾V·ò;œ*˜íÞ_QöïצRÑw\}·«Ü®r»ŠmǨò‹—­:h†…åãþ}cß’Æ1ÝBò:þèê/Ü7w~5ªfŽ@'Ÿ‚ÿND²7ÊÛÌ©ÙÞ,Ú–1 óÌc{=Ý2Âk[ ѲœÉüŽ(_Ö’wklÉ»¹éŠ©ß«Ô½Ðú¯-]«¬óõÉRãDrwÇÏu÷úl>×}kÁÿ<£«Ãžg]\Ìù…òþýüÛzåû ú€eß«uÀIWŠˆ“eË‹qÒ¶c¬‘‰ÖIáèAÖY¢³8gúäk5nÝ †W›×8ÚktßçÓd¿“­™àùè›ÊS§:·/ïVëß·#ç]l˜WÅ?°(Û>‡`³%€]ŽÖ.ܦRòD·Æ><Ï à¤(EÛÝJ›H§^ö—ô+À× \7ðA¸‘£}çJ>)»¤ù§|§¯*ÿ&»”ð“ýG¯Ö™ÊÏ*|"wï“ãþ{íæE ; 6ÃRM´­eÍŹà"O¼ã1ÇcŽÇ¼ãeï³FäðÚh¶päî%=Ë\ÉÛÓÑÍ¡{ü}»¤SñÖ¹s\‹Ú±£â Ó%€_F﫜;$ç±láïx\¦·™Þf²íU6ëœ:;#Ìö hñ0焌T 3çmï=rHÅг¦{ÛMÖ9uvF0F`žylƒ­c¯Yd†PÚðœû;û:W:(÷´„Ìy ÿVjj®5"1lÒð·gNøgŸ“Ë+[9ÛÎcÓöÊ«Êw^ͰútnçæY¤ÐŽ„Gêç+ö½s½ú-ªjºðËîÕƒs‡8¶õÊ öAôwÏ&³%€ã.o:¼®ßÁ¥…«Q°J)×Úœ¥³ÍðÓ=ö9¶žp¸ç÷€Ç‘zÙªãÍyïïýò¥*ß[¶yíµÔc”׾צ­1Û{sÿyÆuî1rzÞÎÞ ?sx–§T¾3½rʳ2ÏHO% Eáþu‹´û½ìÐ{{ š­þÿ>ìhHßkÓÖ0F`žy¬k;ßñ¹N›í!2N,šÙmMÐnǰ\ÑùŽ9ÔË‘7·S¶Âm|Ô\ßÖê1øïÂÆ ;vÈƒƒ#VÊå;?)æ±i{åUàvžMf»kVÜéÛrP‰.×ùÕ±@Ž'9w8¸gkqîqM·ºÅˆ?7a¶£¸?¢s•¤YyÁžˆþðŽÇ³/UùžpR”"âdÙæbœ´íëXÅíºO{³EB¼rü‡ ¦«R§Á¹º»fr;•mkNß\[Ä݂ڇ éZ¾ÙÒ}œþs,nªyÀ岆-’/%gt«u÷ÐP7OÀIQж%º•6‘6¿´“ô+ÀwÞxg eSÖ ):Õi»y9ñ/½¬ý¯9l¢m-Û\œ .~[ñ,âYijˆe;?.§­ÚÅ ‹™Äÿ»yÊÝùB§|nÙÚkʯ)¿¦|RŒQù6úm¬øµ9¨q—@ö¿)[жeŒÀlóØQ½Žøy™íáÉÖ‚}–¡@s>ü¹C™E¯Ý$Å<–û¸\—õU»˜m=ÿ‹¢ÌCˆ[îÎWouÒ¬¼`OD°ì'båžZÀ©åÕ"ÊdÙÚblLº1¶ÜÁWµ£©%÷ßÅC¡Å¿ä/P¿rgóDH¼{ ù(tZrF·<þ¨R?Ïz³ÍŽ>lh¶™žh[¢[i `sJ›I߸R û öAìƒüSòOÉÿŽ·Ò>ÚÒePÕjf^ü¤®R´§e;‹öç‚ÀV\PpAAËÖÞµ=4ÐÿAjYH¤–²îÜJÞNÏÞñ0ùÌ72ßÈœtcT¹M fjÌœN]¥hOÆ(Ì9íðé¢5î»RoˆÐœ¥g÷ª5òœM’y,+¯íõFû? `Û²îÜ¢/’hå;"úƒe?+w"¶-E”ɲµÅؘtc¬w“Á‘¡)=(º½y¯Þ¹µC}»ÿ³]ð þÙÇ+ïiðï}Àÿ .Öd²yÀùnùw¬äüÑ­Qn‡u?Gfe¶*E{ÝJËH›I߸ҥԎçß™gþË†ÞØ£Özß%,±lUŠö´lgÑþ ¶u­Ïµ>×úX¶vE¿ëy·³D±Uyw‘Ô½Šó;îЭ˜¯b¾Š±GcÆMº1Ê«eßï¦y¸µÙß[öýnšcæœÇXºrîéõlö>㈓}k&õ<6m¯¼ …åÝNÀVåÝEf'ýÊ vâhìÑØ£¢oXö±Š'ša«RD™,ÛYŒI7Ææ)à±ÌïzJE<„8ÿ[Ô$gƒ‚K‹ô,çvW©ÿ§Ž_vãâ¬/îd—ÿêüæä÷Áfˆ‡þ:¸Ô=¥¢[­BÜr07³ÙßBÜrÝJËH§,’¾Ö¤XøVÆ[oe´lôÇsÞ˾,ö›ßêEXn%ªü&Ä·zÑž–í,ÚŸ¡ÁÆ^žŠ}åäädÙæWNþZ²â`*‰/Ãj¿èõޝ5,}²ôÉÒ'I=Few̳,ç .+jF·$}›¨ÒeEÍè–¢=£0ó#VñD3_ŠÈ’e ‹ñPŒI=Æ–é;«ñ¯%S ]ÚoÞꈦ9| þ'Ñ"ï\&fNöýƒ*-jiló[3¡Ãê}n :Ìz)û¸¼;%~R¼'8(zIÖ¨[fˆŠ¸çî”wøÅ”ŠnåþÁÉËaÎøògÚ`†–¨²ü™vD{ÝJËH'?’¾ ‘.ewœ>8}pzËÓݰit`{–[‰)EZ¶­hsˆ¤³¥Ä–[JX¶|ÿÐ6mŠ:²\ILù²ö¾éÕtkÃ÷½÷NÜ;‘èwr£5Ìððç 'Kfï›n†èVHÇ ¯<gž–˜R´!Ñ-N$}ßW '€÷ÏÛ?oÿ<ËSî<ØñplDHƒê¥Yz½wÒ ziц–m+ÚœÁ"é¼ð{á÷ÂÏÚpssÊ®K•¾cÑòaåêRžû¼ãÍ%½FöÙkdrŽQ¹Ç›èÕ ‚ÏŠaÑa¤rß»ôY1,:L´!c©e;¤­¾ª”;a¾+›ížÖ½Ø’äœÇÒcoNi·ÒwÄ>¬\]ªF`ò®¼`OD?±ì?bEOdãÃJM²6â‰ñ09ÇØ²Íçzíº”²iàB¿}¾E€å=ÁÿÞï[¦ðp7G×k wvÙSöFè½=ÍóÞ_Ðûž›!ºå2λR®€ñÎ, (Álí½ËNg–”mHt $€“IßÄHáplþØü±ù]/¸^p½`y’”¢ «–^ÆÒë}KÑn–í)ÚY´9GRû1Ó™~Ìdy:mØÐå/–.ï[>Ρm®ÚÚÚ€~9êrÔå¨ä£|Œ5d&¡û¾¥h7Æ(R×<¶ôÙ¦ãœì{ßrT‹#9ýЧÀ<–•×Ð’\þ">ð¾åã]¤ÈÊ vDôk½H¬î‰r¼o)¢I–í)ÆÀäc :Uù©aÔ-ÄMè9,ܯ?-Smæ¡ícËíX°Jeí'S¶,§-8¤m6[t«s芳%n2g{ßR´Ñ-$€m‹¤¯­¤3C%"Œü1òGk§íù­n]« `–R´•µ–íL§OOï?½ÿô¾µs}jå«ÀÑ,`^ïÓil±K–-Ù³@Ï= ¤ì´yñî¨!¤uô˜£Í‹wG aŒ õÎcC–ÿÒÝó!¿„—Uu?TðxJÍcé±Ñ§š¾ M¬ áåð>¥ë¤ÜÊ öDô˾$V÷D9^Š’µQNŒ)5Æúù{½ò±Ž„—®Íë¿é4֜ѭ1kçõ»ËÌ-!¥h+¢[ˆ‹pâ‘ôM ¦HÇþûOì?ÁGƒ}ǯŸ–e]Š¿f–R´Õ;Þ:p4øhðQÑÎtúä´aÁ†XýrÃΨúÕº³˜‰¿<²yuŸÀ¿¬µáß«ÿ^ý÷ꔣŠÔjô²[+–1 )E[1FÚç±cf{èwƒð_üeÏñy¤ð<–ûïÊ«[ãj݉Ä_ÙÜlcН¼`GDŸ±Ö£ÄJŸˆGü¥ˆYkC1î™aŒ Z»xaT}"ñ—~³&ä[ÝÇÌÑ­jz]/´€ù[BJÑVD· àÄÛ¹i禛HúÚV:óTår¡Ë….²vRª¢ËÌ`If­ícõ"….º\ˆîžübºÄt‰éâ½Ä{‰÷;Þø5 j›E+±¤±V> ùTµ2[4uÑÔESÍ3F•š9êÀâê,i¬•¢}£°yl…[OØHøÏêcŸ3žå—Ù<óXz쀪~+ŠV"n`­|4 K[3­¼`ODÿ±Ö»ÄªŸè‡µRD,ÛMŒubÜ3Ãëò¬öê67ˆ{X}ìóÊ=4ŸÔÝêúýš`™Ì嬕¢}ˆnÁ àÄ{Ûèm£·HúÚV:³U(lSئ0«yþùÚw­äËò,n)ÚÄZ‹‰ö¤£§¬ .<ºðÈêw6Oæ[„…MÜ2&üÐáà7 kWÍë|IJÅú¦êÔiÄ@â–åc—Ÿ?t8ÿÒÒ«ªæM]Ñ­Á›´>÷™×Å-E›Ý‚5$€m%î}À$}Ït àÏÏÏ ƒ* ª0Èò²ql’Ý5Û½G?wPµ*K5Ñ¢MÞñ­üAU$Ú“ŽnË.?¸ü µ‰ÂZËýËna‘#ʱ¾Ý¸u³ÖVWÜ®¸]q3ç•m]ι&—Û¸`šÖ–¥ŽhÑ&ŒQØë<¶ûƒŸ{¶&,(Êà}úºnÎy,=ö+¯&?—ÝBUÆu—ùç±ôØÿ­¼Z—»œ–S¿sžVê›V^°'¢_Yëu"–ã!""d­}Ę&Æ7ó±þ¾Û±î@ZNýºemwið¶ÔÝréìýU.Ño{ì÷kڜ݉cí@t ñ# sJgæÊÿãøÇÿˆ? œÖîÇêW´Ûœžï~¾ûùnwGwGwGkgðˆóª7ûÓÐRçEtTõj³ \éqÜZ›Ì¨7£ÞŒz©kŒéÏ´v7°8ÞøS¿ŒQØë<¶gù#¼ ¤¡àà·gŽø×1F|êZ'uÍcé±ÿ[y5¸? ¥~_„t«^mV£ŠƒRÛÊ öDô1k=PDD” íDEDÈZ›ˆqLŒi©kŒõ8ÞXõ& ¥~˯XU|fÛà+í)º%ÒŸiín`q¼ñ§~‰n!.À0§t毢´DZ"-±6ÔŠ §…w‹c´öÀgA´ÝÚüîúÝõ»ë—5^»þíâoçoÁySîÀÁ½öo{¢èDkíÐïq¿Çýdždždž§Æ1J<9-¼X£µ>3Fvæ± ,:înçï»óÔ¯þK*íô[‹©wKýßÊ«Þÿ7öOxS®G†àÞûû;¤æ•ìDxlxl¸èoÖz£ˆˆˆ}GEDä'þ1JŒc©wŒõn7øFh;×ïÄe-üQاNë¶'ì5º%€œÞ ,ŽÑÚŸ‰nÁÀ0§t©¥¢;2ìȰ#CüS £j£è23ìo©&Ž+þcíC‡N]n ¼5ðÖÀøÏ씳ßÌ)Ñ*æñ¡—Õ3ÚÓ"ç¶×žðÊ-ïú,È£X;öèèè˜~1ýbúÙÇUj樋«ÛßRGcÌcãªùË …«Ïðû‹€Lö–7jc)Ùu¼¯šëŠ}Ìcé±ÿ[y•ÿ¢D«˜Ç!ŸTÏhOñ„Û^kVnx·à§ö²ò‚}ýMô=k=SD DôÀžâ!"Â#¢=ñKbì²1¶Xý–Í¿™Sá‹å1‡^ÚS<$0Ó]÷„;6pÏæ³ íD·º~¿&Øc¦ý¥~Åq݇! sJ—ºªÿw‘„1-˺ý2K·SÕv¤ÞEš¨¿8–ø—ï¥v·oÞÌ·:ßê|«­eßÇ®Ž—sn;Y1kªÿ~ë€ÐÏü¯Æß«‡©ÃÔajÌ©˜S1§ìoŒ*R«ÑËn­‚þZÒ{_»Tü–ß¿–ôÞ×N cÌc­Í yy>Ì5°¦ìS8µ‡ÛßZôûF{ÇÒcÿ·òrêãèq9gÛɳ¦öÔï®õºÚïÊ öAô=Ñÿ;õ„~æ5µÇCDTGDx¬©£Äxecl®E~÷p-“wfµm'S{ê×»Æà%¡Ÿ¥åèVµ ½®Zð­ï‰¬þùSïìNÔ_ Ñ-$ `˜SºÔXéøßL—R´aÕÒËR×"MÔ9!GÇ›ìÉ“ O*<©P§UVuþtÚÌ>î{,yÝã€opPjYä\­ÿëìŠs¸Vñuþ>þ£ûñÄ'~<“zÏfÂÇ(cDÍ™S×"GÔ™1 ¼ï<¶N³á5\‹mxêcÿ‘©%,8¨¥RÀgŒ×òàžy+¥…y,=ö¿+¯ŠÎK^÷è¾=8(µÄ®Öo׺✮ÅìDLlLlŒè“ñ÷[U†ÔÑÉù?~K¶ªÓªN+1F¥…1¶x§6{Ü/ßféÙ¾©%Rfò¬¥¿ÎÎß5àA_¢[qu]q¶ÄÍÔ•úu&º[! sJ—z«~§ÅwZTTaP…AñÓá΃G7lØ>vcHíê~&Z¤m ©]ÝOÔMÔ3þcÇ+Žîk‡«ž‰1c&N›7mÞ´y ™‚¬)?ñ€OäóQ ªu7Û"çfý]Û* Ò6ºèø„KTé¨ÒQ¥íél&|ŒÊ=®ØD¯~yÇmXZÁkE¿èi&Zäx­è=MÔMÔ“1 $~Û¼ôôàbÆÌ<öÐï†Ù‚C*ëƒJ¬8°ÓÒæ<–û®•W%>‘Ïwvk\­»Ù’¾7ë·?[iØÀÿ,iuå{"úgBz²ˆ6ˆÈƒÙâ!"J#"6 91‰q)mޱûzΙx híâ…Q Ì–ô-[gn¦]Û —¬Ó¬m4Ñ­øÝeœw¥\!7¼òü}|ë3¡n&šãµ>à&ê&êIt ¶Eæ”.µ@ŒgŒgŒgئ°Ma›òk¸Àñœ÷²/ÛØ£Özß%±»CêUHEÚîzÕDD}RsqŒâxé¸iÁ¡\‡rÊ•5Á&{õ©æþêÎн{+¯J©EÎáN«z.iñ°f®‚“Rç&盜orþ®Ó]§»NvZzÏ1*»cžeù;{µìûÝ4 Þ+†D‡¦À"Ç{ÅèPQQÆ(t󨝝 ¬X8ݰ]û”RR*,rí—‹^éK¬£ä[Ë<–û­¼‚z»¿º3´cdåU)•ô=Ü©™Oà’Kø±ò‚=}UôÛ„ôp…‰”ЇˆhŒˆÌ$|<ãcl\Eß¶hÚ§Z`­y{÷¦TÒׯþø«z8çªQ3cì‡E·rÿàäå0§µS¨ƒ[ŽñÎ,(‘s¼g”uõ!º…¤Cæ”Ξær¡Ë…. >|4øhÂ'uBŠNuÚ¾é£ZW|Õ[':ô¨t̶ 3±M±}±¯„×M‹8.:kÚô|ÚóiϧMÊ=)÷¤Ü ï9Šæ»”}ø\ÿÁ×=‡ý¾|Cï »¶]ؼYtÐ5x|dÆÅWÊìé? M•¢Ù²¾§ð=á{Â÷ľˆ}û"íœÍ£òmôÛXñk¯!}¯M[S6lî³ÝWlümÖ°¹Ïv_ÛûbŒ)5Í]%ÿr‡!õ\GõqÕ¾Ù·£KÉ•¶ ޽~úcÿ_ºþµæ¶ÇÆ :)0y,·òʹ)ûð¹þ•&{û}y«ôAwmOx³¨GÑàñ‘ç,³§ÿ¿Æ¬¼¦¼ˆ}ûBôá÷íù"R!¢"‚aÛ¨ˆˆ´ˆ¨‹ˆÀ$¼nbœcclüžç)ï’[þöŸ ¾PcÊä ½m)¶,ô k©_GWZ|Ååhí"mª0Æ&]tËã*õó¬oÝ=4ÔÍsÈ+cg©v6~‚Ë+cg©vbûb_D·œHÜÒÙá1ݽ{?òÇÈ#t½àzÁõBÖÉÙßqÍ€~?-³`_Õ%=·Õ«3Òo·òCÃÞ¥wOg.³Cü]ü»øñóâ³¶_QgQq,tS×g\Ÿq}F—^]zuéõa½Ë)SÞ2±žÕoãÒ|æàO=–m¨9u‚¯ËÞ¨ù!tyÑ¥2}µ‰ ÿ*S|×¹Ðþ/W=ŸpÐgäøº!Ü.×W©”Ó³¬‰°Àyóç^4zÑ(MŸHQ¹ÛËç¹ßå~í™mºÏé¼xä±’µŒ™•Þçìˆé º”Ú2ÚoñqñwñïâgÄÏ‹Ï2F€Ô2ÍU9ïŸÖ5îÿnVÃ빺µÊ;§~q¹ãóeŸ—hÛµöê3ûìXuÜ£FÇEQîR³ÅÓŠýP}F_/—@ÏUkæ9Ë<É»òÊqÃ!¶Ã3/o—æ3W,ä±lCÍš}]öF5HpA—-,ÓW›Ø¨H™â»ÎÕ›æÿrÕó…}Fޝ¸ÐírÝyE_²òþKôgÑ·suˆÈ†ˆrˆˆ‡ˆ~ˆHˆˆŠˆ‰ˆ–ˆÈ‰ˆ¢ˆˆÊ‡íWŒ'blál&~Œu˜ûAÞ2VV.R¿Mñ.m”O=|4u‚OþaAóCJ 5lÑ¥ReF†/üË»õà ¡-<&‡DO8Xô«¦íCä»åß¹R)ÆXóD·\¼JnΕ·ÂïwX×P¿§ÈÓ¶ʹ]è|`¥_‰]ÿ\sÎãgñwñïâgÄÏ‹ÏÝ‚†9¥³óãË›?6ÿþyûçퟜ>8}pú¬¦$ê&ê)êL×Dü®m¾¶ùÚæadžv,«‰­.¿ºüêòÏ|žù<óá¬1F0=– $†èç¢Ï›ùªã†C8kŒ±D·ˆnÁ¾‘†9¥Kk|+ã­Œ·2ο3ÿÎü;ù§äŸ’Jòÿ²ûuõ¡#"1žx~àù]ÓwMß5½ÖÄZkML©‰ÔÀú묢㉎':r^£˜Ç‚K’š¸Äu‘RW¥Äø Æ Î c,Ñ-¢[H;HÜÒÑwÞxg`xóðæáÍ®¸nàºÂs Ï-<7ñ¿fÄvÄ6Åöžhs$µg'Ÿ|vòð‘ÃG™þ|úóéÏ+^¬x±âE[M¡Zíkµ¯Õ¾ÕcW]=öâÙ‹g/ž}û:ö5-ÏÀ<ôXz,b^ǾŽ}-®qíˆëÈVW¥¸ÆÅõ.®}1ÐðŒ±ˆÑ-H~$€ßÛþÉû'ïŸl¼4^/Åßi¤vç^Ÿ{}îu”[”[”Û¾VûZíkõ²ÑËF/y_cóX€ Ø-q ŠëQ\›â:¥ec‘²ˆn@â‘;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN;Aì `°$€ÀN$k8ò£È"?Ê i†È“’€T0؉4—ÿ™>2}dúÈt‘é"Ó1FŒc¼5ÞoׯkãµñÊxe¼2^/ŒÆsã¹ñÜxj<5žOŒ'Æã‘ñÈxd<4ÆãqϸgÜ3îw»ÆãŽqǸmÜ6n·Œ[Æ-ã†qøa\7®׫ÆUãªqŸb\1þ4þ4þ4.—ŒKÆã‚qÁ8oœ7ÎçŒsÆ9ã¬qÖ8kœ1ÎgŒÓÆiã´qÊ8eœ2N'ŒÆqã¸qÜøÍøÍøÍ8j5Ž‡ÃÆa#Úˆ6¢ƒÆAã qÀ8`0öûýF”eD‘F¤iè†nè†fh†f(†b(†lȆlDF„±×Økì5Âp#ÜØmì6v;ÆNc‡±ÃØal7¶ÛmÆ6c›±ÕØjl56›ÍÆ&c“±ÉøÅøÅøÅØ`l06???ëõÆzc­±ÖXk¬1ÖkŒUÆ*c•±ÒXi¬4–ËåÆ2c™±ÌXj,5–‹ÅÆbc‘±ÈXd,0 ŒùÆ|c¾1ϘgÌ3BP#Ô˜kÌ5æ³ÙÆlc–1˘eÌ0f3ŒéÆtcºñ½ñ½ñ½1Õ˜jL5¦SŒ)Æ$c’1ÉøÎøÎøÎ˜`L0&ãñÆxc¬1Ök|k|k|kŒ6F£QÆ(c”1ÂaŒ0†ÃáÆPc¨1Ôb 1†ƒŒAÆ c 1Ðhô7úý~F?£ŸÑ×èkô5ú}Œ>Fo£·ÑÛèiô4z!Fˆbt7ºÝnF7£›ÑÅèbt1:ÎFG££ÑÑè`t0:íŒvF;£­ÑÖhk´6Z­VF+£•ÑÒhi´4šÍæF3£™ÑÌhb41šÆFc£¡ÑÐhh40 ŒzF=£žQרkÔ5jµÚF-£–QËøÚøÚøÚ¨aÔ0jÁF°lT3ªÕŒ*F£ŠQÙ¨lT6*•ŒJF£‚QÁ(o”7ÊåŒrF9#Ð42F£ŒQÚ(m”6ü Ãßð3ü ?£”QÊ(eø>†QÒ(i”4¼ /ÃËð0< £„QÂ(a¸n†›QÜ(n7ŠÅŒbF£ˆQÄp5\ WÃÅp1\ŒBF!£QÀ(`0œ gÃÙÈoä7òùŒ|F>#‘ÇÈc8ކ£‘ËÈeä2r9œFv#»‘Ýp0 #«‘ÕÈjd1²YŒ¯Œ¯Œ¯Œ///LF&#“‘ÑÈhd4>7>7>7>5>5>5>1>1>1>2>2>22Œ F:#‘NÕcõXý­þV«¿ÑßèoôWú+ý•þR©¿ÔŸëÏõçú3ý™þL¢?ÑŸèõÇúcý¡þP¨?Ðèôûú}ý¾~W¿«ßÕÿÑÿÑÿÑoë·õÛúßúßúßú-ý–~K¿©ßÔoê×õëúuýš~M¿¦_ѯèWôËúeý²~I¿¤_Ò/êõ‹úyý¼~^?§ŸÓÏégõ³úYýŒ~F?£ŸÖOë§õSú)ý”~R?©ŸÔëÇõãú1ý˜~L?ªÕêGô#ú=ZÖ£õCú!ý~@? Ð÷ëûõýz”¥Gé‘z¤© š®éš®èŠ®è².벡Gèú^}¯¾W×Ãõp}·¾[ß­ïÔwê;õú}‡¾]ß®o×·éÛômúV}«¾U߬oÖ7ë›ôMú&ýýý}ƒ¾Aß ÿ¤ÿ¤ÿ¤¯××ëëõµúZ}­¾F_£¯ÑWé«ôUúJ}¥¾R_®/×—ëËôeú2}‰¾D_¢/Öë‹õ…úB}¡¾@_ /ÐÃô0=LŸ¯Ï×çë?è?è?è¡z¨ªÏÕçêsõÙúl}¶>KŸ¥ÏÒgè3ôút}º>]ÿ^ÿ^ÿ^ŸªOÕ§ê“õÉúd}’>IŸ¤OÔ'êõ ú}‚>N§ÓÇêcõ±ú}Œ>F­ÖGë#õ‘úH}„>B¡Ó‡éÃô¡úP}¨>X¬ÖéƒôAú}€>@ï¯÷×ûë}õ¾z_ýýý½ÞGï£÷Ò{é½ôžzO½§ÞCï¡÷лëÝõîzW½«ÞUï¢wÑ»èôNz'½£ÞQ嘆×Ûëíõvz;½ÞFo£·Ñ[ë­õÖzK½¥ÞRo¡·Ð[èÍôfz3½©ÞToª7ÖëõFz#½‘Þ@o 7Ðëëõõúz]½®^W¯£×ÑëèµôZz-½¦^S¯©×Ðkè5ôêzu½º¬ëÁzU½ª^U¯¢WÑ«è•ôJz%½¢^Q¯¨—×Ëëåõ =HÒõ@=P/«—ÕËê¥õÒzi=@Ðt?ÝO÷Ó}u_ÝW÷Ñ}tÝ[÷Ö½u/ÝK÷Ò=uOÝS/¡—ÐKèî®׋ëÅõbz1½˜^D/¢Ñ]uWÝUwÑ]t½^H/¤Ð ètgÝYwÖóëùõüz>=ŸžOÏ£çÑó莺£î¨çÖsë¹õœzN=§žCÏ¡çÐtÝAϦgÓ³éYô,z=³žYϬ©©©gÒ3é™ôŒzF=£þ¹þ¹þ¹þ©þ©þ©þ‰þ‰þ‰þ‘þ‘þ‘žAÏ gÐÓééôtZ¬«Åjoµ·Ú[íöF{£½Ò^i¯´—ÚKí¥ö\{®=מiÏ´gÚí‰öD{¬=Ökµ‡ÚCíö@{ ÝÓîi÷´»Ú]í®vG»£ÝÑnk·µÛÚ_Ú_Ú_Ú-í–vK»¡ÝÐnh×µëÚuíšvM»¦]Ñ®hW´ËÚeí²vI»¤]Ò.jµ‹Úyí¼v^;§ÓÎigµ³ÚYíŒvF;£ÖNk§µSÚ)í”vB;¡ÐŽkǵãÚoÚoÚoÚQí¨vT;¬ÖkÑZ´­ÔjµÚ퀶OÛ§íÓ¢´(-JL Ä0 ©šª©š¢)š¢Iš¤IZ„¡Eh{´=Ú-\ ×µ]Ú.m—¶SÛ©íÔ~Õ~Õ~Õ¶kÛµíÚVm«¶UÛ¢mѶh›´MÚ&m£¶QÛ¨mÐ6h´ŸµŸµŸµõÚzm½¶N[§­ÓÖhk´5Újmµ¶Z[©­ÔVj+´Ú m¹¶\[®-Õ–jKµ%Úm‰¶H[¤-Òj µ…ÚÚÚZ˜¦…ió´yÚ<ííím®6W›«ÍÑæhs´YÚ,m–6S›©ÍÔ¦kÓµéÚ4mš6M›ªMÕ¦jS´)Úm’6I›¤}§}§}§MÐ&h´ñÚxm¼6V«Õ¾Õ¾Õ¾ÕFk£µÑÚ(m”6J¡ÐFhõáÚpm¨6Tª цhC´AÚ m6P¨ ÔúkýµþZ?­ŸÖOûFûFûFë£õÑúh½´^Z/­§ÖSë©õÐzh=´îZw­»ÖUëªuÕºh]´.Z'­“ÖIë¨uÔ:jíµöZ{­ÖNk§µÑÚhm´ÖZk­µÖRk©µÔZh-´Z3­™ÖLkª5ÕšjµÆZc­‘ÖHk¤5Ðh ´úZ}­¾VW««ÕÕêhu´:Z-­–VK«©ÕÔjj5´Z ­ºV]«®UÓªiÕ´ªZU­ªVY«¬UÖ*i•´JZE­¢VQ+¯•×ÊkAZ¤jZ VV+«•ÕJk¥µÒZ€ h~šŸæ§ùj¾š¯æ£ùh>š·æ­yk^𗿥yjžš§VB+¡•ÐÜ5wÍ]+®׊kÅ´bZ1­ˆVD+¢¹j®š«æ¢¹h.Z!­VH+ Ð hΚ³æ¬å×òkùµ|Z>-Ÿ–GË£åÑ5GÍQË¥åÒri9µœZN-»–]Ë®9hšƒ–U˪eÕ²hY´,ÚWÚWÚWÚ—Ú—Ú—ÚÚÚZF-£–QûLûLûLûTûTûTûXûXûXûHûHûHK¯¥×Òké´tZ:5FQcÔ·ê[õ­úZ}­¾V_©¯ÔWê õ…úB}®>WŸ«OÕ§êSõ‰úD}¢>R©Ô‡êCõ¡z_½¯ÞWï©÷Ô{ê?ê?ê?êõŽzGý[ý[ý[ýKýKýK½©ÞToª7Ôê õšzM½¦^U¯ªWÕËêeõ²ú§ú§ú§zQ½¨^T/¨Ô ê9õœzNýCýCýC=£žQϨ¿«¿«¿«§ÔSê)õ¤zR=©W«ÇÕcê1õ˜zT=ªU¨GÔ#j´­F«‡ÔCê!õ€z@= îW÷«ûÕ(5JR#ÕH5RÕU]ÕÅ *ª¢*ª¬Êª¬F¨j„ºWÝ«îUÃÕp5\Ý­îVw«;ÕêNu‡ºCÝ¡nW·«ÛÕmê6u›ºEÝ¢nQ7«›ÕÍêFu£ºQýEýEýEýYýYýYýIýIýI]§®SשkÕµêZuµºZ]­®RW©«Ôê u…º\]®.W—ªKÕ¥êu‰ºD]¤.R© Õ…êBõGõGõG5L SÃÔyêJ¥·Ò[é­ôTz*=•%D Qº+Ý•îJ7¥›ÒMé¢tQº(•ÎJg¥£ÒQé¨tP:(”vJ;¥ÒVi«´UZ+­•ÖJ+¥•ÒJi¡´PZ(Í•æJs¥©ÒTiª4Qš(M”FJ#¥‘Ò@i 4Pê+õ•úJ]¥®RW©£ÔQê(µ”ZJ-¥¦RS©©ÔPj(5”êJu¥ºRM©¦TSª*U•ªJe¥²RY©¤TR*)” J¥¼R^)¯”SÊ)å”@%P TÊ(e”2Ji¥´RZñWüÅOñSü”RJ)¥”â£ø(>JI¥¤RRñR¼/ÅCñP<”J ¥„⦸)nJ1¥˜RL)ªUŠ*®Š«âªV +…•BJ!¥RP)¨TœgÅYqRœ'%Ÿ’OɧäUò*yGÅQqTr+¹•ÜJN%§’SÉ¡äPr(Šƒâ dS²)Ù”,J%‹’YɬdV¾T¾T¾T2)™”LJF%£’Qù\ù\ù\ùTùTùTùDùDùDùHùHùHI¯¤WÒ+é”tJ:9FŽ‘cä·ò[ù­üZ~-¿–_ɯäWò ù…üB~.?—ŸËOå§òSù‰üD~"?’Éä‡òCù¡|_¾/ß—ïÉ÷ä{ò?ò?ò?òùŽ|Gþ[þ[þ[þKþKþK¾)ß”oÊ7äò ùš|M¾&_•¯ÊWåËòeù²|I¾$_’/Êå‹òyù¼|^>'Ÿ“ÏÉgå³òYùŒ|F>#Ÿ–O˧åSò)ù”|B>!ŸËÇåãòoòoòoòQù¨|T>,–ËÑr´-”Êåòù€¼OÞ'ï“£ä(9JÿÄr_ü’—I–dIÞ+ï•÷Ê{ä=òy·¼[Þ-ï’wÉ»äòy‡ü«ü«ü«¼MÞ&o“·Ê[å­òfy³¼YÞ$o’7ɿȿȿÈä òù'ù'ù'y½¼^^/¯•×Êkå5òy¼J^%¯’WÈ+äòry¹¼\^*/•—ÊKä%òy‘¼H^$/”Ê åååå09L“çÉóäyòòòò\y®â|Äùˆ?"þˆø#âlÄÙˆ³¿Güñ{ÄéˆÓ§#NFœŒ8q"âDĉˆcÇ"ŽEüñ[ÄoG"ŽD‰ˆŽˆŽˆŽ8q(âPĈ"öGìØ)Âö"\'¦í$€“õ€ )˜!Jl€0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `v‚0 `øWÖxÙÓ‘6ŸÛ|nó¹YS•nË»-ï¶œ3ˆ¤pkÊ­)·¦¸\q¹ârEô–‚Y f)˜åáÕ‡W^¥}’ŸhyqÄgGœ)Úñ#LþE˜0Òš§§§ÚÍk7¯Ý¬§¥›5JæØÌ±™ö>Øû`ïÁ›o¼)x[ð¶àm%Z–hY¢e®µ¹ÖæZë6Ìm˜Û°*Vù³ÊŸýïô¿Óÿޱߨoìíi«ŠÌð›á7Ã/î1ÖùºÎ×u¾¶í^`H“€‘&Œ´fÊØ)c§ŒÛO\ WÃÕˆ¿Ï˜ùJILk¨OÔ'ê?ÝO÷ÓS‡½õ÷Öß[?ñgçÉŽ';žìàŠÀû"LþE˜0ÒŽ3SÏL=3Õ²ŸÌ_2Éü%‰éi©+,î¦í—±_Æ~“¢>o=Þz¼õHÌ™ =z(ôPÜmæˆÌ™#’ëÖ& ÿJ;éÃð>á}Âû,jh›?ñ·›­ö¢dW²+Ù9ƒ°Ì±™c3×\spÍÁq{ˆx¬qBz‹Ù’¾âáÌïÛÏEê·Çøã{ŒOê&æ¡ÍÏ'?Ÿü|²å6Ń»éΰD˜0ü‹ôajo7q—°µ?œ)k6¬Ù°fƒe_]êºÔu©«9ë|±äÅ’KæË–;̲æ’ä#ù¼ï6-ß°k©\‹r-ʵX?fý˜õcþÌúgÖ?³¾öbØ‹aâïëf¬›±nFÙ!e‡”’Ô§^ØqaÇ…Ÿ$€IÀ¿HÓn°o/C^†¼ qïáÞýGÜ^êìéìéìiæ[·lݲuËZ^_½šöjÚ«éûÖüfØÍ°›añ_¹}J÷)ݧtB¶,òÿÖòµÊ×*_«Ä´°µû€=jyÔò¨õªÕ«V¯ZÑà & ÿ"‘I»Á¾Y»‹4áÉÎä·êઃ«ZÖ¹øäâ“‹Oþ°:wQº(]k×l³•ÍV6[ùÞ[Λ96sü£xÜ4£ ’ `Àð/R ´ì•xpqܤi\Æ~c¿±ßlu¾SçN;u¬]Y;í\´sÑûnó¯á ÿk¸µmæžgxžá×¢®E]‹ú°:_¹våÚ•kb;–ÛÏö(Û£l32¨««[nYÜÕ-î𦷀0 `ø‰LÚ öÊÚ}´qm¶:wºØéb§‹–u떮[>¬Î ú-è· _âûœ˜1aQÃE 5ü°-Ç8Å8Å81æ ~$€Ià_âíz› o*¼©ð yQø„Ÿî§ûé¾èðE‡/æü=çï9_=uõÔÕSÉSÛã×_?~=lfØÌ°™¢åZ”kQ®…¨­¸÷(玜;rî(ô°ÐÃB½c½c½c›¨MÔ&ê¨àQÁ£‚•ìJv%û› 7Ao‚l[·#ßýÇÚÏËp,ñ }û:öu¬˜¿bþŠù] WÃÕÈ–;,w˜wfïÌÞ™ë竟¯~¾•gWž]yöéš§kž®IHMÄ^¢•Äû#E;äí™·gÞž¢•J´,ѲDË–ƒZj9hq•ÅUWIøöß·âoÑ&FLŒ˜Q«[­nµºy–ó,çY.×Ú\ks­gVôÉaã†6îˆ÷ï#Þ¶=wÉ“TïËÔnh7´ <2ðHð¶àmÁÛâ¯SSS8ûmË´-Ó¶ŒxtíãÈÇ‘#Í6zØk2†kÙžús¥·•ÞVzkÙ?¿Íýmîos›­ïíi·§Ýžv–µ=*1WVÍÁ5×líj¿‡'ܾ…ûî[hm/µ›×n^»yb¶?²ÉÈ&#›Xn¹šVM«¦1£ `ÀiÚ“Ov<Ù!ÂßY-[úlé³¥¿œþrúËémVṈ̃™c3‹ätå{•ïU¾—Õ¦æý2ï—y¿ØêÑ‘ I†ÝÏr?Ëý,kü[ãß>¬Î"Õd¹wqwÔÜssÏÍ=—˜6 ïÞ'¼OR´@ÜvéŸnË»-ï¶<1µ=;â숳#’çÜ%ÆÆRKm,å6Ìm˜Û°;RgOgOgOñ÷ën¬»±Î #‰yÀ¶­ ײ}ô磅Ž:ZÈZN¯?½þôzóü^i{‘>·¬íÖ›[on½ùa[¾ç|Ïùž³µv(˜¥`–‚YlvÍÆû>àÄ?Z| Œû€` `ÀiÔ±ÇÇ{÷Ñ—¶å8ÅqŠã”Äa^}xõáÕZLh1!k²!òÄÔ9þퟯ{¾îùº%J:•tJL=ã¾aQìW¼á²Á›o¼±m:ß¶- œks®Í¹6â>òÄ×VÜíÔ-ý°m>xøàჇâ¾OÛöUq_¾Ri3œ®eûèÏ. ¸0à‚åK].u¹Ôe³% ‡>`øËÚ¶ÏÓ>Oû<‰©­xϱµöOȰmk$üË@¶Ý¾xŠ 3=€´Œ0 `€4'!÷ÍØŠxøç‡yÅÝÉe‡”RvHÖdTçë:_×ùZܽôa-ÿöã¦Ï÷¸ïqßãâ>Úæs›Ïm>×¶­Q(]¡t…Ò½ïLÈ–Ÿ6KŠ»Êl›¨¸ëu×ë®W…JT(‘<½7¥F•´™N ×rjïÏñ¿/¶Çøã{Œ7Ïoçß~søÍÁÚWn†Ý »–˜í‹7ïZk)c§Œ2Ö¶G4yÖäY“gYÛãR×¥®K]³}kO(>¹øä⓹ -#L yÕêU«W­’R­ñCjüðsûŸÛÿÜþÄé§Oœ~îAºé|tòÑIñÀLñðOñNÖø·V>°|`ù@ˆOxmû½ê÷ªß«ø·ìrÅåŠËbÞ?mÿ´ýÓ.?ºüèò#qÿÜ?åÿ)ÿOù“ûNî;¹ï—Ê¿Tþ¥²¸k-îýpI‘~HxzÃášÃ5‡kCg=t¶hÕgóŸÍ6_ÔyV®Y¹fåŠ{oë‡%³w.Ú¹hç"‘¼çQÿ]ÿ]ÿ½WÓ^M{5MŠḋնA¦™dú5ü×ð_ÃEªC¼—úbÉ‹%/–\–sYÎe9»vìÿvÄ›ª“î‘¿ !ÞŠ*Þ„š£^?fý˜õcâö^ñ`áÃW<\qÂá ‡'Ž›ÀKê»’äý-ïmM‘pJHË$dkâý¦IÑDÚLÜ–Ú¾ zô&(![®ç^Ͻž»mÏ]·3û³ÙŸÍþ,þ÷žîš¾kú®é ß²øÉ_tø¢ÃÖ¶\øDá…O$þ1æ)Õnf« ×rjïÏ£‚G 6‚0nëÅåj¸®†­êY·lݲuËZkñ€hÛ—ø‚‚Õ¯ ¼ið¦Á›Älÿˆ÷ï#ÞÖ¶ÿmîos››¹@ÚD˜0@÷ ÖÿøæÌ±™c3Çdø„lLv‘]dkÛ‰ûÖØÄ´FüµûvdÛnY˜ó÷œ¿çüý¾É’„èëØ×±¯£mSøïû8Í„×vA¿ýôKê»3mµÍ„láÆºën¬‹ÿm¯qÞ×Ú¸Ûãn»œcKZNÛ÷µœÚûs¥¯*}Ué+ËmæË–;Ì à̱™c3Õ ªTÓ²žK|—ø.ñµÕ®¬íE¸TðRÁKm{pâù ÖöX1Åüó'æ,ˆçšXÛ¾xB s?€´‰0 `€4¤DË-K´´*ý}Áï ~_˜íÿøíßþø­µí·nÖºYëf ÙNØÌ°™a3ã¿.ñ­ñG¯?zýÑËÚ^²ŸÌ~2ûɤH›_l~±ùï»å¸÷Zãäät§Î:wê¼oŃ—mõ.ç„ß¡›˜Ð¿x,mü{iŸ§}žöyluî²…¸kµ$dø´ÓË—!/CV¬Xm¹—Μ 8'gr+m&€Óµœzû³x‹¼µšW_U}UõUfHo*¼©ð¦Âñ¿%ÝVûòŽõŽõ¶Ú«Å³7l{t·[ßn}»uüï½Nº¯s%æuHíH“HCâè±xGcb¶ÿgÖ?³þ™uìËwÿùMÈvo¼ið&q‡–åŸcŽe8–ÁÍ‘€;Ï’"i4³ÈÌ"3‹¼ï6ŽYñoyüùñçÇŸÿ°:Ÿks®Í¹6¶j„lG¼ 4ñ§ÑÚ£S“"uÿg_×~]ûumkŸõ¹ïsßç¾mS[>ÙòÉ–OÌ|M› `û¾–S{V²+Ù•ìÖ¶3¢+FFC¡IDATóˆÎ#:§ìoäø¿Â"’ë¶Ýc‘_‹üZäWk{|ù8òq¤m÷øðêë¯ZÛ£Û0·anÃߋĻ„y0â"L ‰{•%ñöß´ÓÏæ?›ÿl~ò'€Åýï»Íøt)ì\´sÑÎEÖâ¼äIÛê®/!Æ)Æ)Æ)yjÿg÷OÛ?mÿ´ø±nÛ>ÿY×Nž«)m&€íûZNíý9ôPè¡ÐCf¸:¬Y½gõžÕ{lugyBäí™·gÞžÖÚDôLÛî1þÞ.Þø#¿dþ’ùK¬íEÉ3†¶§k9µ÷çl²=ÊöÈÚÖÄ+’³gÆÿ0dñó¤®Cû ï6¼k­êÇêÇêǶݣì"»È.ÖöXϽž{=÷Ä÷ù×µ_×~]ÛÚ^®9\s¸F ­!Lÿw–8ûÅì³_Ô-[·lݲñßMeÛdªxÈs·)ðØÎ­[;·¹çæž›{Nò‘|$Ÿ„ì—pR´Fò?úŸòÿ”ÿ§|âß4™˜cÿýš)õÎlÀ\Ëi³?ǽïÓÒ]¯»^w½’³æ‹.j¸¨¡eMr­Íµ6×Úä¹R†,²lÈ2km²fÚ k6Øv«÷¬Þ³zµ=Šw'~/âlZÛ‹SSS `€´†0 `$HÜÙcè¡ÐC¡‡Zj9¨å „'†rÿ–¸³Øübó‹Y}œ¯¸¯«Ã¾èðÅ©]§vÚ•t ’FI‘NŠŠ÷O[Û£Ÿî§ûéIŽ»KW®]¹våZZHÛǵœÚûsÜ7¿Z:_÷|ÝóuÍÐ3[Lh1¡Å„ä¹R¬%¡…ñçÇŸÞ¶{œpxÂá ‡­íqaÇ…vLü^ÄÙLü;à`OH“@¢ÄUzÇzÇzÿ‰‡¡³‡Î:ÛÚÖâ¿[H¤~Ãû„÷ ïc¶”g·™tµ5OkÄ¿…-϶<Ûò̶ýpc©¥6–²¶Çšƒk®98©Àµ›×n^»¹µÏñ>â}Ä;-Œ$€íãZNíýÙ»ÿvÿíÖê¨í¡¶‡Ú&OM,¿¨×ú1ëǬ“<5/V°V“™djɶ{Û´úÐé'êõIâ÷r°÷ÁÞ{[ÛKéy¥ç•žG ­!L6ó2äeÈËøS«V¬¶¶…F—]jtÉÚg'-´tÒRÛ†qI'EkÄ¿…±Ÿý|ìç¶í{#:è<¢³µ=ŠÿMêoÑNδ·y¶¿k9µ÷ç&jµ‰j­þ»Gï½{tòÔdظaã†KÙ·t #G>ŽL¦G%gŽÍ›9ñïeOˆ]ÓwMß5ÝÚ¾š­l¶²ÙJÀi `Ài‚ÖOûî?âþ$[í+º^t½èzÖB±ùZåk•¯•µP¬ïqßã¾Ç­}öX†cŽe°U=/?ºüèò#À ß¾­ÀâÎ<›uî̱™c3{Ôò¨åQËÚ7ÞTxSá¤námg¶ÙvÆÚg[umÕµUWÛ^××w^ßy}gÙ!ïþ£ÝÐnh7’g„!l×rjïÏÖÒ®ÂÚÅk¯]œ²}²ž{=÷zîf»FlUŸÈÝ‘»#wÇ·±­ö%Þ^lm_à 0|ó@€´†0 `€4a:ùèä‡%€s‡åËfí³Ov<Ùñd‡­êÿCƒI%]ضu–|$ÉÇÚö®9\s¸f«šÇÿÙ»^w½îzÙª& aíÍl鳥ϖ>9K$€íïZNíý9þ÷Ýþ°÷‡½?ìMêÞxfꙩg¦Z«ÃÌ"3‹Ì,’üó°™a3ÃfZ«Uñ=Æ÷Ÿø½ôjÚ«i¯¦Öö² ß‚~ úÙêˆB… =dm_‹«,®²¸ ó@€´†0 `€4aö‹Ù/f¿°ýzâ׿žh«}í[¸oá¾…ñ?ÚZ(¿PºBé ¥³öÙ§Oœ>q:ñ5¼ÝúvëÛ­K´,ѲDKÀ ß¾mÀõóÕÏW?_bjãããT®E¹åZXÛK‹ -&´˜< à„lÁVÉ•é¤{`õJ©¦UÓªi$€¹–Óroùµ¶Í~ûeì—1©{cü©Ö”zòu7ÖÝX÷ÔqÅýÖ‡mÿê©«§®ž²vÔb¿7Ãn†Ý ³Õ‰³imâ©$ÌÒÀ$€Ò„ÃW<\1yîÈ)kÛïSºOé>¥­í+¨fPÍ šÖ>;­ñ´ÆÓ'¦nâž¶¸éÀ ß~RÜœ˜šl2²ÉÈ&ño9¼OxŸð>ÉÙÂFy`dÒõëÚ¯k¿®]·lݲuËZÛ²¸»=9GÀöz-§ÞþüªÕ«V¯ZYÛ¦ø]“Ô½1îPârötötöLÙ·ÒÆ6›nmºµéVñ€ý÷ݲø¬µ-Ç}‰­ŽÅÚÌÁqŠãÇ)¼ý m"L mÈ›96süßbó‹Í/6_„ûßwó"Ôÿ;…¨Ÿ¢~ŠúÉÚv¾Íýmîos[ûlŽÈ‘9"?,˜»§Ýžv{Ú¹÷pïáÞ#©Ó“$Þ¶ÙOf?™ýd·,ÒEcŠŽ):¦hü[Ž›RJþŽ;Ùe{”íß÷O'<År?Ëý,÷³tø¢Ã¾°¶åÒóJÏ+=/µ§]ÍS®åÔÞŸ“óÖq½õxëñÖÃÚÞ›Ïm>·ùÜ”MLŠ7.[»8.ñ¬…„oü}÷ßšrkÊ­)¶:Чkž®yºÆ¶¿`H“HC–?_þ|ùóÿ#”çm‹k¯]¼vñùºç랯û8òqäãÈ—!/C^†\~tùÑåG‘»#wGîž´tÒÒIK‹®)º¦èšø·ÜñŸŽÿtü'þPì¹6çÚœk7)²AýXýXýXÔG$¡ï9ßs¾ç,=ï—y¿Ìû¥ÒÛJo+½?$Í/¼TðRÁ„Á’FYa碋v.úkø_ÃÿþbØ‹a/†ý™õϬf]þéòO—Ø=°{`÷ø· ÎéÅ’K^,™R-,úa‘_‹üZäׄµx#æï ~_ðûq­ýSþŸòÿ”ß?mÿ´ýÓføÍð›á—Túo¿9üæüc `{½–S{žÚjÿ©ý“¿ŠÇ[Ûã”±SÆNk†YAÂGæÍ96çØœãZÔµ¨kQbd¿×lX³a͆²CÊ);$þ-ˆwñÚ¶ÍÅWʬíñûNßwú¾s?€´‰0 `€4D¤0³&;ñxFq¿WBê™ÔõÉÛ3oϼ=·|²å“-Ÿ¼ïg·ÞÜzsëÍÄÔ?1gÐ>ÀâKIqfEÒhûí¶0CÂïX†cŽe(ô°ÐÃB“®?‹¯DüÔ÷§¾?õM©{ÝHÛ뵜Úû³HB'ÿ/,°¶ÇÝ£wÞ=Ú¼úðêë ¯aüÏLŒ€Õ«VŸ^zýéõâ_64ØÐ`CÀ Ù¾­À ßWÂåžgxžáâì$Åc¿M///÷jñ&Ñ-϶<ÛòÌÌïM½5áZ¶þlmíÜÚ¹µsKŠ~Xçë:_×ùÚ<×Eüâ_rb =töÐÙIw¼â Zî×O÷Óýtþ –‘& VÅy+°G-Zµl𭘿bþŠùs¦e EbàÃêSøDá…OX}ødÞŽL8)ÀqÒ;³wfïÌv~]jt©Ñ%ñp3·ðóÉÏ'?Ÿ7]˜»œ;í|´óÑën¬»±Î IÀöz-ÛG~üùñç-÷÷å¶ÚWÜ–±äj¸®†™“¢nî=Ü{¸÷ø°s*¾Þ'¼OxŸ$<ÒxwO8<áð„ÃLôÒ2À$€ðŸ@ê¸Ûãn»-îÜi9ñÀÏ‘9"sDæZ›km®µ"„-î¦íðE‡/:|1û³ÙŸÍþLú³xxÜ7Ü'õ×’³ý“BÜF„ 2°ê±ªÇªsæ6Ìm˜“E’¸šVM«¦‰ßÚ í†v#yŽÎØoì7ö[{„¸øJã @ZF˜0þf~|eÒÕÊÌëL½}æ}[ÒüN5g»ôç„×§Oé>¥û”æ|¥®1Y|Í˲&M·6ÝÚt+c&H“`c$2˜ÍŽŸwü¼ãgkïÏ •ÌïeÈË—!âžr˳¹{ôîÑ»GÓJ L€‘`6qkÌè”zm½¹õæÖ›–ç.°{`÷ÀîœG$€I°1R,Ìi˳-϶<³—Z7kݬu3ÚÇüÄ™²<ƒÛl?°ýí0 `6F€IeŽÍ›Ùr\ʹ#玜;£Ìì~–ûYîg±QŸÐ>ˆ‹0 `6F@j©ò×Î_;í»^w½îzÑ>æqÏùžó=gqv➯.J¥‹ÂoøíÝytUå¡ðᢽíõò]/ 2 A† V¡€80ˆŠ+§KÐ2XEDÅ2TA&qEÀVÁB™ÔŠTJ5U¥$ßÛ?Òu8¹œÃ>ϳ×z«eØû=o{vÞß:gI€€&‰ïƒÿ1øƒ«¶¬Ú²jKÿO•Èî­so{ë}uªeT˨–ñe¿/û}ÙÏüI€€&§îÿ_UYqdÅ‘âb"^…Jƒ+ ®4¸èkôÜÏÝñÜÞSˆF€€&áø-3_wO¿{úÝÓ‹¾"ýúôëÓ¯W€â À0P†,î0?@¢Ù;gs‚’V-ZµhÕ¢ÝÆvÛmãå»Ï¾ûì»Ïо"]Jw)Ý¥´W€XÀ0° „„,!! À@HÀ0° „„,!! À@HÀ0° „„,!! À@HÀ0° „„,!! À@HÀ0° „„,!! À@HÀ0° „„,!! À@HÀ0° „„,!! À@HÀ0° „„,!! À@HÀ0° „„,!! À@HÀ0° „„ü“åy1+ãt¬ŠÓ±:NÇ;q:ÖœôcmœŽuq:ÖÇ騧ãÝ8ãtlŠÓ±9NÇ{q:Þ?éÇq:þ§ãÃ8[ât|§ãoq:>ŽÓ±5NǶ8ŸÄéø4NÇö“~ìˆÓñYœŽÏãt|§cgœŽ¿Ç騧ãq:¾ŒÓñUœŽü8ÿŒÓñõI?¾‰Ó±;NÇ·q:¾‹Óñ}œŽâtì‰Ó±7NǾ8ûãtˆÓq0NÇq:ôã_q:Çé(ˆÓQŸcÅÏât”ŠÓqZœŽÓOÔ!„– ¡ À/0éó—>iÐÆAm,“Àf·šÝjv«}ö5Ú×È«!‘R˜R˜²jª «&d—Ê.•]*1 Î-8Ïàœ½t‰ÃîÑÀ$&€â‹1_ŒùbLŸþ}ú÷él7¬å­ðmåæ©³.®Ý¹WÝ>½–Ø›ñíí-y QÊ –s¼gÐÔO7ºä‰4¼ö®­ã»×8gíïÔùï«oÈPeWÓß\Ôøxn—§T›RmJµ]t=àù+pªÙ]¸»p÷ŠÉ+&¯˜œ¶5mkÚÖcû¹ «tµ¦ç HÍ|¼Nó)+Ûu??cA§ŽC3/}üŠ[›-^¾÷Ê3›/ ~üçÁï ~ðgíß Î98ÿàZ¼¤'ßñïn•¿¸ò§åªgͽòÖ”¯;öÜ)-½gåÇ:×}ëÆýÓÿó¼ënî0ûÃúƒû,|zSýK{WœšWïÍkž•uîãíÇÜÑ f‹Œ¾í.«´ÅîVâ€IL0%fÿ¨ý£öz¨ÂCªp¡w¥fU>IO¹á?îú"ëÒ‘¿pkëÖ3g®][Rc«IÓÇ¿“Öøµß_ô䎚:ÔîÕöho——¼±ä%o(wõ½c7~—¹3^Ñ7Úx÷Åظz›Ü›V§nµ»u2 À$&€£¶§õžÖ{ZwìÙ±gÇžÅßJÖ½©×v·êõÔ–ÕM-úF›?üǧ^{4忬oÛ6)þê&ož¼yòæÂ‚‚«N¦MmúhÓG±lp/­sE»fÓ(÷Æ0çËÕó`=­Øw·:^3øÒ´s‡]ñþÏ›M´èmØcij£{ÌÈîWù"»['šLb€8 _µøªÅW-ªÌ®2»Êìh7ŽåÔþký´æ•Ç^²à½S%úF^z×´ñ¿,þFyвAË-+x¿àý‚÷­8ÑÞœöæ´7§—~o jÖ=tð~ûþ% O­ô[t Î?¸–â¯7˜k ±ìnÕhñÝ9y¹—½™Ý¨Ö©}£7ìšz{½yv·N˜Ä$“]¹»rwå³xnçÝn¬õÍ(XsðTO¿EÇ¥¿ù%»Ô+ÛhJ´kÏY›³6gmÁwÜiµÀ‰°ð´…§-<­øŸJ–·ëº¶ù˜S7úFƒë*þÚƒù±N¢‰ewë²άuÉðÓþz «ô©ž~‹Žƒ*çÍküVÚð&ËÊï°»U²`“ Àÿáë̯3¿Î,þæ¸áõwíß'LÑ7rl5bz÷ÕÕjÔñÚë6G›‡;¸ó‡;(\R¸¤p‰•%¥øOýV¼ê¬´²ßì¬rÃÍ5 _ú-:×\¯OÄ.–Ý­Þ©S7Õ[¦è9{ýýךNkó»›ÞMÝfw«¤À$&€¨ö/Þ¿xÿâzëU¬W1ÚMafîðåOÿ+Üé÷߯V3§­Í«;öºìÜYÑædL§1Æt²~àøÿ¬ß¬¡Õ®¯øÖ÷Ï÷Ю]¸ÓoÑ1¸ÞàÚ= x±ìnõk5oHƒÔp§ßïûpSVӎˇü"­£Ý­ã'“˜`ŽäÝÂw ßíݯw¿Þý¢Ý6½éÁ…sW'QúÓË\ÿÉ] ¢~ýÚ²…Ë.³”àØäwÏïžß½øô»ïÁ›?»¤fò¤ß¢cpíÅgà`­% IŰ»uëØWF4Ø™Dé7bìô÷4O[dwëxÀ$&€#˜ñÎŒwf¼íæ¯Éƒ÷}0£i2§ß¢cí9WUºe}´¹Ú‘¾#}Gº±+È(È(Èh=°õÀÖ£}ás²}ê·øOGûRè`ƒù´®€dSüîÖ-ß>wWƵɜ~‹ŽÙcn»£Æv·ŽLb€ø7[¿ßúýÖï£Ýðe|{»GF‰¾ÿölà¯Y—òT³§ÛU>Œ͛1öpÃ=÷°º “æOš?i~´ŸJ’áY¿Çölàh3̧u$âw·z¦>Ö­î2Ñ·èxÿßÿº:ë´ó3Ú÷®|‡Ý­£%—”×ç¿>ÿõŸîzö¡gzv÷¯vÿj÷¯Ì̱€øIAŸ‚>}Nk8­á´È—šû:ÌîµSî6^8kJß·EûÑbê#S™úˆ5ÅÛ^c{í5¢ÝW/o×umó1ro´1˜Ÿh³Ì­5„[ñ»[­wÝø~ê<¹7ÚxOéuÌ<ÓîÖÑ€ßᮇ»îmí‰ÁÇFà'/LyaÊ S¢½Ñ¶|æÉ'ò: ½Å™| ÊìÛ¢Íá—³¿œýål+ ŽàŸ…ÿ,ügö†ì Ù"ï¥ïíqAͺ‡$ÞXÆ`®"ç0˜Û`ž-7 ¬ŠßݺwìÆï2w ½Åý†Ïû¾A–Ý­Ø Àǯèg‹'ÇN pïî½»÷îŽö¶š™yÿ¡Y?Š»±iÝ:ÿë¦a‘3Ù/µ_j¿Të "­˜¼bòŠÉÑ~*Ù¿ë·7_2@Üe æ*ÚLól½ɶ»•3ãÅ[2òÅÝØÇ¶]oYS}“Ý­XÀÇ/ºAÜ-31¸x0…“KO.=¹tä›hõªmŸ»â A÷¨¿úí)kÞ~)ê¯åmÏÛžgÕÀOR S SÒ¶¦mMÛyÿ¼´ÎíšM—uv æ-r>ƒyæÜÒ’aw«Ù–«ï¯z¥ {Ô_Ý}ý9™uínÅB.YbpI€’ÚÌ™2£½q^Ðm\ƒEŸºÇ6ÖŸ³ûý‘³Úhÿ¡ý‡Z{X5aÕ„U"–T»«âºÂ?çtißLÐ=êñÏ9]Ú7 æ0rnƒ9·ö€dØÝºûº¿<ݸž {lã5‹GÝrî4»[Å€O1øxÀIíåó^>ïåó"ß&k~Ðá‚^½DÜã[î™öèÊÑÑnD¾ÙüÍæo6[]*»Tv©È{æµW\½¶Å RîñŒÁáyÀ¥²Ke—²ö€pïnµãÅ©‰¸Ç3Þ×ysÛ¦µínO>9Äà£%$« ,ü1½ezËô–‘oÍïøã•¯/âÿX¯ÂM•o‹œá§ö<µç©=–!Él×»ÎØuFäÝrê¦s¾9kzáí9MÚ×qk¼=§IûÚÁ|FÎs0ÿÖ!ÖÝ­ÕÞZܨŸˆ{üc—G‡=[ûQ»[ÑÀ'Ÿ  I}~Ûç·}~[äa¥ÔúÓ3¿nKjlñÚÄÁoÞ9ÏUÚTiS¥Má†Â …¬F’ÓÄü‰ùó#ï–çõ½üÙ&ÓäÛ’ƒùŒœç`þ­C |»[uF4»¸ÂèøFÓ¢çó¿¥–\Ö°÷©€ÿyõÃM.³»_bp40@’šR}Jõ)Õ#ßü^u׊ñ-„Û’«ìjzãE #g{ç™;ÏÜy¦Õ@Òù¶ðÛÂoSF¦ŒLyŸüýË}¶»D¸-©1˜ÏÈyæ?x-,I L»[½1uN½E‰€§úç€3niwi¥-v·" À‰C .JHRµ3jgá¾3å³·7H¶%;6ì{÷éãGEÎöœVsZÍie5lòsósós#ï;æÔy¤ê«’퉃¹œó൰&0ínÝÓ}Vf¸dÇÞͧª·ÚîV$81‰Á0@ÒÙóäž'÷<ùöV±múnkOÄxa™ISßú$rÎ; è0 Ãk€d³¤Û’nKºEÞ!Ï?ýòM–‰µ'b æ6r΃ך±»•v}“áå?H„\¾\ÚÊ yäÎÍ›;÷_#yö ¿¹¨‘X{"Æ`n#ç1pƒVw4øÃŸ"Ïyݬu³ÖͲ2H‡ÖZshMä]qVéjM+ÎIœ\¤Ü»æ7Ýuî/bÿyäêWÒ R×îsóØv»3óyæÁëb}§úîÖ•kº5™•˜8efŸ}Q,ï&}î|ºGý†‰€{n÷DÝÃv·Š€Ã!|1XH:Ö7Zßh}äÛU«W§ç¿31qriÕ÷.ð«Ó:¹wÊõ8ë´Úw\yëow7ºip¥I5É¿¿ÂÌ÷Ó[Þs÷Íg½TehµwŠ^K³^£¾}iS¢à¦×>8mîs‘3ÿüÎçw>¿ÓÊ ìn·»Ýîv‘wÅR3¯Ó_प–Þò¾Ë®K„D<‡¸è¹5¿dìšW‡%ZÊ=ƼwÚø•ZoiùÞ+Ïl¾0iÓW«]ñ±ã¿¢´åòÎ~3øuâà`ž­7 |þºt•…‰€sÞ{qYƿ€ï뺹}Ó:Ö­çý8ïÇy0'Uâ|¸ù»Þ¿ðß6#Z®V&oWH°O@‰ó àŠ#ÏjVöÇã¿¢¢Oœh‰ü àÿ-µä²†½}’Y}8øt‡Ãápœüã ó à–Óž¼7ï¼¢çvAÏqÍ}ŽíÀÝ;wïܽ³•ép8‡ÃáH†cf¹™åf–‹¼+Nœg7<³Ê.ÿé¬>ì8?óÃ}íÒV‡ŽmL´íÀV¦Ãá8Õw·ùÀa ÀÑžœÌ»[‘³1é“~1éþw¾cÑEC É9-ç´œÓbO¿ÁïO¢g8ßÁPö³gžóCâ„Ò¢çÖäç÷¶|ªN,*ëéGæ¾øizÿý®FúªS=ѺÌÌÿYû?‰s] 7uqÿÈùÿÃóxþÏ[™$ƒO|ºàÓ‘wÅSV¶ë~~F"$Ò®ŸÔý.µnpVKnë\3ëªD{ŽïñŒÁ8mîs‘3ÿüÎçw>¿ÓÊ ìn·»Ýîv‘wÅR3¯Ó<éàÍ:ûipV}‡7úYÚÿ‹åOÌùíÞKÞiyYõ‘•Ϭ׷Òöò?Ý®u—úÕ-ó,aÝݺ?ýƒß7].Ÿ¸ñÖ¡¯ôið‰Ý­¢àÞ¯ž²Ñ·( éä¤å¤å¤E¾E]˜:iíÒ*‰J3š÷?ðФŸNër=Î:­ñ¿~Z¿h¿¿YƒQ׿tN¹3Ëw¯˜ü¡Zë;]Ö»sðëÄ À ZÝÑàŠœùu³ÖÍZ7ËÊ ZshÍ¡5‘wÅY¥«5­8'éÆº}qáœà¬Ê}^¶j™Wît{Ó]Åÿ©¡W5?­nÇ¢Wü=‰€ƒy€°în Y¹¦[“Yð‰{n÷DÝÃv·Š€Ã!Ñ·( éÌØ2cËŒ-‘oWMkøþ™õ‰JƒÏ"ái.Ó®,¸åÅF™ƒžøNæï†o˜ý_õ^úÍ÷\vv‹ªªÿt³uV×Ê×Tí’˜O®¹¡C­^E^×Wm¿jûU[+€äQk\­qµÆEÞÿkQ߆Ù#!”áùm¹z¤µ}öÞ_½×øþ î.|þ×j:´Û¸z¯Tÿ·ÏÔöþ¯Œ-5k&ÚÓƒ¹¼®àµ°&pìnõßûò à7¶~cZê(»[E À§®ðEߢ`€¤³©`SÁ¦‚È·®zi7e9;Ñž|™s,o½å¦T<³ò ‡ÞÝfü–DûìoëV3§­]YvÈÙž³1òÌ—>\úpi+€ä‘;7wnîÜÈ{ãgßð›‹%B. ¾ÒùúôŒÚ5ƾ!عʹ¨ÖéÀ ßN½d|¢à`n#Ï9x-¬I »[]^öYí©ð ïûpsVÓ³+ß ì…v·Š€O-ᎾE ÀIgÏ“{žÜódäÛXŶé_4º!Ñ>5ûSœ¾ÿ7}‡Ž®ü›†O´øe¹}•Wù°\ÿ ÷TšUihÆÒ¬îµþ÷×µ¯ÿë;ÇóFõD;ÿ`¼°Ì¤©oáù(tÐa€5 @²YÒmI·%Ý"ïçŸ~ùŽ&Ëík“ƒOúöx^Ÿêsj¿V1õì=ç,,W¯l·†…)WV¸ÿêWÒ R׿§è§‡í*‚¹œó൰&pìn¥]ßdxùà1™¹¦|“‰v·" À‰/y¢oQ0@’ʨQ;£öžüΔÏÞÞ˜µøÏõ&ܧ~‹Œ ûÞ}úø#|=ΜVsZÍie5lòsósós#ï;æÔy¤ê«‰–N#¿:Ú›˜gŒÁÜFÎyðZX“@˜v·îé¿>+³A¢}yrì8ò׉0ön>õP½Õv·" À‰)9£oQ0@’šR}Jõ)Õ#ßä^u׊ñ-3£žºc•]Mo¼¨á¾àîÌgî<Ój é|[ømá·)#SF¦á©´ß¿Üg`»K9¦žZc0Ÿ‘óÌðZX’@˜v·zÿbêœz‹NÅœÈcÆ-í.­´ÅîV$8qˆ¾E ÀIêóÛ>¿íóÛ"ßð*¥ÖŸžù…d[Rc‹×&~ó–Èy®Ò¦J›*m 7n(Ü`5œ&æOÌŸ˜y·<¯ïåÏ6™&Ü–ÔÌgä<óoáÛݪ3¢ÙÅFK¶%5þóꇛ\fw+8¾Dßh`€dõcá…?¦·Lo™Þ2ò-°ù¼òµóåÛãëU¸©òàm‘3üÔž§ö<µÇ2 ™í:c׻Έ¼[NÝtÎ7gM/¼=§IûÚòíq·ç4i_;˜ÏÈyæß:º»5°Ú[‹õ“oìòè°gk?jw+øä}c!$µ—Ï{ù¼—Ï‹|;¬ùA‡ zõ’ogl¹gÚ£+GG»áøfó7›¿Ùl@v©ìRÙ¥"ï™×^qõÚ7ˆ¸Ç3s9·Áœ[{@¸w·Z¿ñâÔÇäÛãïë¼¹mÓÚv·Š'Ÿ¢ïÑ€’ÚÌ™2£½A^Ðm\ƒEŸH¹Ç6ÖŸ³ûý‘³Úhÿ¡ý‡Z{X5aÕ„U"–T»«âºÂ?çtißLÊ=êñÏ9]Ú7 æ0rnƒ9·ö€dØÝºûº¿<ݸž”{lã5‹GÝrî4»[Å€OÑ÷xÀN.=¹ôäÒ‘o–Õ«¶}îŠ+¤Ü£/|{Êš·_Šv ²=o{Þö<«~’R˜R˜’¶5mkÚÖÈûç¥u®h×lº {´c0o‘óÌs0ç– »[Ͷ\}Õ+¥Ü£ïé¾þœÌºv·b!—,Ñ·¤Àîݽw÷ÞÝÑÞ>33ï?4ëGY7ö1­[çÝ4,r&û¥öKí—j½@¤“WL^19ÚO%ûwýöæKȺ±ŒÁ\E›É`ž­7 Ùv·rf¼xKF¾¬ûضë-kªo²» øø‰¾'‚ ÀO^˜ò”¦D{CmùÌ“Oäuw‹3ÿø@•Ù·E›Ã/g9ûËÙVÁ? ÿYøÏì Ù²7DÞKßÛ゚u‰»±ŒÁ\ṿ²7doæÙrªøÝ­{Çnü.s§¸[üØoø¼ïdÙÝŠ|ü^Ÿÿúü×狾%Kà'} úôi8­á´†Gx¶GÍ}f÷Ú)ñFýÚçYSú¾Ý(Ú­ÉÔG¦>2õk Š·½ÆöÛkD»¯^Þ®ëÚæc$Þhc0?Q¿®³ÆöÛkXc@¸¿»Õz×ï§Î“x£~íséuÌ<ÓîÖÑ€ßᮇ»î*ú–,€³õû­ßoý>ÚÛmÆ÷··{d”Ü[tlU8ãã5ëRžjöt»ÊG˜±±c3Æîq¸ÇáVÄbÒüIó'EýÈÎ*7Ü|Q¹·èÌI´ æÓº’Gñ»[=SëVw™Ü[t¼ÿï]uÚùí{W¾ÃîÖÑ€KJÑÏ‹¾ÇOàf¼3ãïD»Qnòà}Ìh*ýcí9WUºe}´¹Ú‘¾#}Gº±+È(È(Èh=°õÀÖ#ï±+^uVZÙo¾¾Ï€ví¤ß`‚99ÂgݶØz`0ŸÖlŠßݺåÛçîʸVú Æì1·ÝQã »[ÇF&1 ÀÉ»…ï¾Û»_ï~½ûE»ùkzÓƒ ç®Næô›^æúOîZm~.[¸lá2K ŽM~÷üîùÝ£Ýog ­v}Å·ö=xóg—ÔLÎô\{0Ñf)˜Ck HR1ìnÝ:ö• ’ú©Àþãžæi‹ìn˜Ä$ÕþÅûï_\¯b½Šõ*F»Ì̾üé%Qúm5sÚÚ¼ºc¯ËÎmNÆtÓiL'ëŽß¦6}´é£â3p²}8¸ÞâÓo0oÖ@,»[ýZÍÒ 5‰Òï}nÊjÚqù_¤u´»uü`“ Àÿáë̯3¿Î,S¬†×ßµs|Ÿ?ëwÄôî«?ªÕ¨ãµ×mŽ6wþpçwþP¸¤pIá+JÊ›ÓÞœöæ´h÷áÁ 'óƒkŒö…Ï`®¬€¢bÙÝê:uS½?xØëï¿ÖtZ›ßÝônê6»[%E&1 ÀÄdWî®Ü]¹Åß(ŸÛ¹G·Ûký_3 Ö SúmQúñ›ßXR±K½²¦D»öœµ9ksÖÜYpgÁV œ O[xÚÂÓŠÿ©dy»®k› _ú ®«økæÇ:ˆ&–Ý­Ë^8³Ö%ÃOûë¬ÒaJ¿ƒ*çÍküVÚð&ËÊï°»U²`“ ÀQøªÅW-¾jQev•ÙUfG»Y, ö_ë§5¯<ö’ïêé·á¥wMÿËâ0´lвAË Þ/x¿à}+N´â? ¸·Ç5ë:ø?¿}ÿ’…§nô Î?¸–â¯×§~bËîVß“—{Ù›Ùjêé÷†]So¯7ÏîÖ‰#“˜`ŽÚžÖ{ZïiݱgÇž{ûX÷¦^o ØÝª×S[V79U¢oó‡ÿøÔk¦ÜœõmÛ&Å_ÝäÍ“7OÞ\XPXPX`UÀÉTü³‹ZZçŠvͦŸZé78çX®Î³~ŽMì»[¯|iڹîxÿçM‡ž*Ñw`¥©îm0#»_å‹ình0‰IàŒ(Q0bÔ„QFMˆec¢þÊ~XÝò™'ŸÈë’hÑ÷‚ŽãJ/ZPëüŽ×\·6–kÉk–×,¯™5ñ•ß=¿{~÷Ö[l=°ø{ø¬%ÕníW¯mqCἜí3(úÎËéÐ>38·à<‹¿–àzƒk·ŽÇÑînuk6:ûÜÕ÷ŽÝø]æÎD‹¾w_ü—«·É½iuêV»['“Lb€(kʯ)¿¦|™˜Õ9ÜýêÛ.iqù„úúS¼¢ofçá]žî[­BËK/‹é̯úøª¯úøëª_WýºªWGAFAFAƤù“æOš˽}ê¦s¾9kú¼¾—?ÛdZáâœNí³â}çtjŸœCp>±œypÁõzÝJÖÑînýjGn›Z?´håÒÆßÇ+úæ|þâ¶¥¿×qi•gìnÅ‹Lb€(1ûGíµÔCªðP…Øo—Ëí¯Ô¬Ê'é)7üÇ]_d]:òán-ÙÐÛjÒôñï¤5~í÷=¹£æ†µ{µ-s”–¼±ä%o(çÏ*ÙÐ;ì‹~ÞôÅ›ÿ1ç«úóZ?pcíÔÑv·‡Lb€8!¾óŘ/Æôéß§ŸþeŽI¹G+|[¹yꬋkwîU·O¯¥öf|{{ËGh”2¨åÄœÆï4õ“ÆÍ‡.yâ ¯½këøîõÎYûÀ;uþûêrTÙÕô75.s¦T›RmJµ]t=ÐÕ« §˜Ý…» w¯˜¼bòŠÉi[Ó¶¦m=¶Ÿ ²JWkZq΀ÔÌÇë4Ÿ²²]÷ó3tê84sñÒǯ¸µÙâå{¯<³ùÂà×Áüžà÷öØþÝàœƒó®ÅK pòÿîVù‹+Z®zÖÜ+oMùºcÏÁÒÒ{V~¬sÝ·nÜ?ý?Ï»îæ³?¬?¸Ï§7Õ¿´wÅ©yõÞ¼æÉQYç>Þ~Ì j¶ÈèÛî²J[ìn%>˜Ä$pÂ}þÒç/}þÒ ƒ6ÚX&Ín5»ÕìVûík´¯‘W B"¥0¥0eÕ„UVMÈ.•]*»Tbþ<œ[pžÁ9{é‡Ý-¢€IL0'ÕþÕûWï_½hô¢Ñ‹F_>âò—ˆ× qnçÜι7߸ùÆÍ7z] yì:c׻Θ˜?1b~ÊÈ”‘)#OþÏ#Á¿œCp>^€S…Ý-Š€IL0q¶ï½}ïí{oÝúuë×­½ôþÑûÛlk³­Í¶’ºî¹²çÊž+g›=lö°m[¶mÙ¶¥ðPá¡ÂCfäçæçæç.鶤ےn¹ssçæÎ­5®Ö¸ZãŽÿç‘àï þÎàïþ-s&v·€D#pŠùÛ¡¿úÛ¡¼ô¼ô¼ô•=Wö\Ùó`׃]z– p’¬zxÕë^~pùÁåƒ_›bgw 8Ñ`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€€BB  $`€øÿý¶ÜŽ/WT%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/scan.png000066400000000000000000001304051431412030200243200ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwT×ãÇ}ÆT V,`¯ØQšŠbÁÞkì K,1ƆŠÆÞ{ì5£±Å޽ÄÞ h¬ˆ bEÜçù=ç!Ϻ|QØÞ¯9gŽçû {ïÞ½;÷Þùì̤3 !MÆ@ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A 6v$öHì‘ØÐ†¡ Cv?ì~Ø6àÓ¼[ûní»µ‡æš{hnhThThÔ…’J^(IËðin~}óë›_ô?èÐÿï!ßC¾¯¿jüª1-`$Àð?<™ûdâlq¶8{téÑ¥G—vËè–Ñ-c¶$+°¬À²Ëe”}Pö]‘»"wE>Èõ ׃\´9ÀØÂæ‡Í›¿9hsÐæ ®Ãºë:,›xÊž²§Ü'¸OpŸ£m޶9Ú&&(&(&ˆ6Õ댯3¾ÎxjÜ©q§ÆÍö˜í1Ûï—_/¿^¶[Û¶l¸väÚ‘kG^r}Èõ!æ“æ“æ“´<€=#€ÿˆX±$bÉê«K¬.QzQéE¥eK%3÷ÍÜ7sß팷3ÞÎÈçp\—\\rqÉh·Ñn£ÝRkTõ›î7ÝoúÎô;ÓïLÂçpDo|ßø¾ñýÛçoŸ¿}ši:¤éÔ[Ÿ|fð™Ó•OW>]™Ï–YŽ’¡B3„f eº€¤máæpsøé*§«œ®ÒêU«W­^e³KîܸgŠ3Å™qkâÖÄ­á£ا×S_O}=u›×6¯m^¹Âs…ç ·Ï±uHÆ!‡d¼p+àVŸÀžÝÕîjwµ üAùƒòg³c«×­^·z]̃˜1øÔi0ì0€4êÔäS“OMöð÷ð÷ðÿ´Åm….ù÷å):hzå[Å+,’ü<ÊÛ1°ÑáªÄ™-¾öÒÖ´|R}­¼´ÅIç¹5)ë^l…Rwx…«#ÖTó+éã½¼ÐÆ|…>­\§õNëÖïݺ?Ôüùó7|š€ÔõvùÛåo—¯ ^¼&8)'Žóç«|Íûiññ­Öô­R¶n¿—wW¬þã€y‡+—³hÙÊãÇ.[ñu¥š#·,zQ¾âàLÓƒKïòùðe…jÖÉÕâzŽói.×?­ÜÛ:lë°íÖ†[nmàÓ؃{Wï]½w5psàæÀÍŸ6ºåÛ•3SöŸºv*·¸ðÛ™}|Me{l]Ûð·Êï hv«ÚaumËÙÕ•5-+T¯°¯ZÓjYÖ¯¯ß«ÒÚI›½ ”)ßlcIÑõû¤Œé -8´àЫ/^}ñê >M€±Ã>HC¤{îAºö!íCÚ‡$~áZë^‘ZùónêØ Oåš·kwi[s–ÙX¯ž­öO\{È~Þunâë^¡íÓ2à åH|Ý*ETЍq©Ø¥b—ŠñùRžrN9§œûؓ…çÕ¯ÕΧRìè·K£}¾^yùÐC_ß5kŽ·Õ¾Úõé¶.ãÖ£ÓèJ9×»Ž+²-ñu8&pL`LŸ˜>1}ø|)éuäëÈב¿ÖùµÎ¯u>"èr~}Ôì~5Ç–½x!G‡AÞóm»b“úÍó=x³Uhb׺O(qøcÇýÝãvÛ=Î|Ö|Ö|–O`<À°OÀŒn¯y¯yï¦Ì›2oÊœøêº]õ¿®4 ®`¿vþ«m»xNü~ϼ¦NîTô,ðužÖ‰©óÔv@ò‰š53jf¯^=¼3B¨V­SíaUZ¯ñÛ@Û½‰ß{u^2]v*õ}ç°>⪋ꢺð‰’Û© §2œÊøjRÏ÷e <˜Üm[­×©µb=u±]~/·ïö•-¼"1unòªÉ«&¯ýþè÷G¿ó‰Œ„ö‰€aEwŽîݹÍÀ6Û Lx!Z¬až%9ת-¿¯Þæ}÷~ÿø?L­%´µý¹5íïx×jбx¦G~/%¾,ñe‰/o‡ß¿NØÖÉ¥'—ž\š¨k|=êis¼ú¸ÙþêŸZ¡¯µ½OÖ•÷Å–o4¸Óô‰y/ã3ŒÏ0>ûÁï¿LØŒÙÇì3wÍÜ5s×$f0 £nŒº1*1ËÎ]UŸ®úØÞÏ ïåjÓÆÓ9Ïû®%üîB§…N F$Ýúë믯ÿOØÍû¨‚kuq3:îèho¡¯Õ0øêê¾Çª•iÐcÏèM ¿;ïŠÞ½+>ÝþtûÓíô@R¼¬ù²æËš­Ë¶.Ûºl£ϴV>ÕÝF¼9Ò7oÝ[޲bý÷ZצµŠµý®ŒoÁè„ßÝ<Ó<Ó<“ùºùºù:½à¸€aŸ€ʉ '*œ¨ð"sÀãÊþÅÎ<ÝKª3̱¢ßÿ<‡) __ÿ­³gÖœ^öfÂïw»÷vïíÞô ÀG»i¾i¾95ÇÔSÿÇóéËÿ2$˯7%ôµ¶¯Qaîö½5ò>¬·zž„ßïˆ;w"è €™32gdÎâŠ(^ÀÚ(S6O¾ ¹{ßÈÞ¹¯oÇ]±êûg›gªv+áQuhÀЀ¡qQqQqQô€#"†}"`ÇspL ËÝu›,tïéèKhËý?§ÛýäÕó<Õ8óºÌë2ÓO‰²Õ¼Õ¼uT¯Q½Fõ²6²äªP¨J±°ê/çÄîiåèÑïö^kJ¯í¶uäÿxcX‹°a-è,€ÄП}›ðÈ2q®ç_¥Ÿ¾ÏÜo‡ÿE#­X«=jÖŽô;]äeþ©ÖÞ{÷íÝ·wß7&nLÜz À±Ã>px'GuòÜðùZ±N;|¢ýÆßGNè1ÅϹÊ@/çÌÖÚaÛ¢m‹¶-¢ÏösæŸ3ÿlu4)ÔªNë–å|>[):b¨è×b_¹ñ˜×Ë=žcÜÛsoϽ=ô€5Ïò<Ëó,Oö½Ù÷fßkm4Ùù[ã¥U{ÅЯ¯ÿ–Ñˉ0$džìÞÎwŸZ{œ±Òñ÷¯wõù³îêJuw=c­eÔÊjeµ2ý`iEæ™WX~‹ßl}¬ß._×5>ÇŒýÆßW+0Õ¼U°Ö&9µœZNí¹Ës—ç.ô@|oÖ¿Yÿf}ÕU{Tíam92¡µTÔvV¬ú~aTíˆòÍ­µÉäY“gMžEÿ8 `Ø'`)¦ALƒ˜Ö–‹Î¡9šfÿâi½žüƧµ…´¾=Ó÷šë–%Kýîj¶ÖJ·îÞº{ë.}  SN('”ÖFµÛfìß í„¾–{,Ó߆,°Ö>M7Üdðûåï—¿_N_˜ß›ß›ßþøsàÏÖÆŽ“ ÛNõ<“6W¬ú~ÉÃ:™ÊÇZkŸ?ZýÑêVt%€ý#†}"àh^˜_˜_tîÓ¹Oç>ÖŠßw÷¨Ý$-/¤õý›r}nÕ5yìr=›÷sËVryïòÞåý›ƒo¾9H·€´ì¡ÓC§‡NÖFÕ"?dêøoÅ5?Ÿ—–`}ï>`ò™M‘ÖÚjnƒ¹ æ6 G6çÝœws^«÷d2·ÜY}+V}\Ðû [Ekmuýàõƒ×Y±ì0ì0ââbõi|—gtÜçÓ™%tüýÓº=Ëû³Öbãzë=®7ý Ò¨úæúæúu–ÔYRgÉî¨qÒmy•…>³~qÄLô_ñûy毷6¶žs>ç|ΙÎiSxÿðþáý­ëGÕo]i «Ôÿìt¯W¢ãi·{…b>ðC´\ErÉIïØ'`[Ù²'dOˆÞ†S6OÙt1€}"Nº¸–q-ãZZ› `£÷ÄÞ{O´z4/ÿg‘,˜³_¼Þofù–mX´XÑbE‹Å‹;wŒžiÁ³Ï6>ÛhmqU¹ÙØŒËñ&¼÷é±*âHã“ó½pu±lÃß®øvÅ·ô4H;vÞÞy{çmkcë‹ïzÿPçkÒÿñÃe§ö!Þ­µáÝõw×ß]OOØऋíoƒ€¸Xøbá‹…­ôŸþѳ­ß"–ʉÙÇù÷ëí¿¹øçŒ9ï|à*êt;Òí`\€4!hMК 5–cA¡­uû´šE¸›ø}µFÁó¶¶6Ky–éY¦g™èo`l¯»¿îþº»µ±ààãVGk”d5šøýÄ žÛKà*ê®×º^ëzþ°7ÀI§ºz¸›-уƉ~ ÁØcŒµ<ÄoÍÝp@å,?v¦vûô^{¬ œ±¹csÇæ¦×€Q=üþá÷¿·zÛç‰ ¯™Vë~ì¾è¿MçuÛþå¨ß¿)~ô:0¶Õ«WZŽJ¹5(´€èGßú\ïßê¼µ6W¹öðÚÃkéuûAl[„Á¶B À®]q¹ârå·Ut ʶ$[wQýêù/dyüiûö'ÜJoÙ¶;Oî<¹ó$}Œjüèñ£ÇàŠÕÒºq›(÷Óöž§®X[ˆFoŒÞ½‘¾ÆóvàÛoZ;þ߮ҥEÍ_Y{~Ú~[d@¾*õ-[µÛ³nϺ=£ïìpò! N `v­ÏŽ>;úì°<ˆï-×´‘ûY–ÄIÙ_¯Ò9—oE˶-ø¶àÛ‚oÍóÌóÌóè`$/½hô¢‘µ’×›ecÔùD¹IÙ—XÚÎyÀï–m»:ÓêL«¹4ÐÞ½!{?𼺾µ*ÕXu&eÛ°ïfÿjÖæ-"2Dpb`€SaðÇ"`§¢'EOŠždõ6ŧû^õoÍ’8éûº×ŠîÏÿÞ²…/g¾œùrfú!Ésÿ˜ûÇ\Ëc~‰™mŸK|kƒë€]¬:ÁÚìåýó÷Ïß?§€‘¸_p¿à~Áò˜ý~çö¾íYo&}ÿ[„ÿÚŠ˜½,ʽ(÷"]° À)081€Ø©³wÌÞ1Ûò0=ÿ^íR宲 ¶Õ^Û2¬ú2ËvµkÔ®Q»è‡`$înînîn–Çü®sGî‰!¾µÕÞe½çúu,ÛùŠóç+ÎôC0†ûæûæû8á[ùœËgy"XiÚjUªçm¿ÇÖNãš«™«™«Ñ©‹8u[C ÀNÕÉ_'ü–‡æûõ»U­µÃž¨ Ôþ©ü×zm¯5é$ùÄÚsmß.íÛÇ?‹µ0nTܨ¸QôFpt‘K"—D.±<Îç©VbY¹Âöz_™íàýR%:½ú¶@åjÍj÷Ì5¾pÅ%œÂrÌ3ÈùËÒå+þèúÈ÷Vãï+o r^±Ý>à*Nãú®êüåeæ)™§pw 0ˆµYÖfYû•ÔŽt~«Z%uWyï¼û}æ?0Ç9§Ÿ²=ÊöIî-îú¼Ö4ûY·vpskXhe=Ãʇ•+Oo¤.`ûA0»ó"êEÔ‹¨Ü ²§s·\ùíúÊY³ÖËæÝ°Pp¾ÿœ°ÿ_U´JÛâ?Y¶ùZ7jݨEŸG·{ïî½»÷Zç˵Øijn{M« Ÿ–ë÷¢¹¿.r¿T§Ä/Ò u®3¤eKßlk²ÏjG1öõ•u}àJk'³“ÙÉl>a>a>AŸGçYȳg!Ë£ýÓË={û­NÝõÝußÎξ•³%½ÀÒÈ= ŽëUЫ WAøYÕïùóäVìa}·/¨é‘j®ÿYM«íZîÜâY~“ËoOÌ>fwo÷:ûígÅý´×Œ:--ÛÜ7Ú7Ú7š> H]Àö/m†ÁÀìμ‘óFÎiyÀ=ÿ¢Cï™ö°ø|Ø¿{ºÚe· nX®òÞ o< ”ž_9Ìå‹—ÈþŸ«4¸gœß;Ëš·ÈÔ"S‹LôIp`ÍÍ­P¾Ÿ¯~zìnê¥z ;;û??Ÿ*×gàô©­õÿ×2ÜÕÿ—â+[½ïû»þïÜ}‹}Sú¼½Àå Êü[ƒ†nݺ™Ž Žëò—¿¸ü…å~V:ß—e±‡õ÷êµrë¯FnOGY™&¼/^2ODÎó–-[+¶V,w®¤`Ç’vÂ``v' < < Üò ûâdï•u^Ûòsíåzû+y&~xp€åôéÀvõ¼¬Ö?§9§9'=QôWÑ_Eeylw ôiÐÂÒmÛÖï¿R¯U΃®ŠVMÌ-«¯™ýô¯7ÿoŽýÿ] l?°Ç€.;¾µlù™‘3#gFÒ3ÀqmÙ²eË–-–GøcåÚtñt±‡õݯªœ,.éµjy³TTÁRÆ€ÇV¯Þ¶ÔË–¿û÷Ý¿ïþMϤ`Çeì0˜€ ™ÿ·Xý7°k½Zö°ì<¿·C#ïñs¾¨¹·ì[˽CÀæÀÀzõ:-*[±ðžbS0¦`LAz&8¢+ù®ä»’ÏòØ^æ\¯þc¯ØCPZø}ƒí£sºh…¸võ)P#1Qn½ó;ïïùkšíçIÀ½–ŸõÿÀÝ5µÔb=×ðÃ; ï`y„¸Ôý~í}ö°²kÔ®DQ—õZîé±¹TnG~õýîìM&º··lùƒÊAå BϤ`c0^L À†Ì¦ÏJŽvõw”E©ãÀsky• °¬ø•ð+áWè™àˆÔÅî9¥ÏÖ?ÛV²öy5ð‹ƒ½—Õyeùîz=éõ¤×z&À~æÀFåXap:ûùJ€5›>oP¿²p²?Û¸|gïnô7H ¼†/¹$pÜ8¾J‘£O/=`Ÿõ/ܽÞú¶Ãéo`lþKŠš ”²‡5ÝþAÍŠTk­×ªr˜ËyžlkÞ0¬J±økUË¿ú»K³1Õ~ý@ lg+Ö·>}ëÖ}CŽhOÈž=!Àð¿— ¨X¥ p²?QéDÇ¡>•èox]]æ¬æp”'þúLþ­ý‘+ÕßÏͱghÅ-#Î,XP rµfµ{ÆGU*ûgÕ{«y‘M[;­§¿€±5~YBp9kÏëÓ]Év®_vXáöö^bé+úס¿GôvûÛío·Àp0WlËQ®¶¶×ß…Kƒ&ÿSñßWRžý\œ”ý9Õ¯ò^GÍZåù™+€l% ]¬ßÍr³<8ò àÔ}ðÜ s+Ì­@ÏdcccsÄ­ßÏý~î÷³å±ÝQžœ˜X—ÓÓ¥R!³½ÅÀÖžLÏdccc3ÒŠÕ~žl«ççÞ˜ý§™ö¶žµö àf{›ím¶—žÉÆÆÆÆfGg³3-δ8-c¼mïè½£÷Žü,ð³ÀÏýêÿ}z0$þcÆWÏ^ª-prïÿ*ܤ”{ËúŸÔNj'5z&8¢UN«œV9YÛ=&Ϻcdꆣž¿-ª&d_+·˜¾o~’øW¨Ú`¢×º&úßf?ì¼:~{ €sŸ-ÞÅmú‡æã¬XÿïØ~?°[½Z©»¦Sî¶lXÝWŽiñ´ú—aÑß]©é—ø¿Ýu¤ÉîYô÷R6 ßüÜCím=±¥û¥Ú!–-?¡é„¦šÒ3ö37ÐÃBZÆôàvÊæ)›§lN|è«ÿ÷)úÆG À†Ì¦ÏJŽvõ'NîýÜÀZ^å,ë~%üJøz&8¢5ÔËc{™s½ú½bop¶åN‡²ûW™=þùêN ÿUŽó<ö>Êùmß ùéZ¢T›Ýáö{÷Z~"Ôß²å[ j1¨Å z&8®á†wÞÁòq©ûýÚûìm5š˜5©œ±Å"3NÑÙ´lAú¯nù®ú6{[±îÎÞd¢{{ËwwP9¨T虀ÔBl Æ}ã#`wÂÂÂ-¦/Nö^Yç5p²ìO¶«çeõdANsNsNz&8¢è¯¢¿ŠþÊòØîèÓ0 ‡=¥ÕÎL¯±}…SX®ƒyůaÑ“MvkVaþ½æ”Öoõ\ÑõÇ|óº–hÛ¶~ÿ•ñoø¬?ýW¿¡´ýÜüÙcÀ —ßZ¶üÌÈ™‘3#é™à¸¶lÙ²eËË#ü±rmºxº¤îÊ.êv¯Rur—\ä|6Ww½Vz¬ÛguÅÆEûk“îîu7ms̳ËöÊ ªÌX¯rŸb÷âG¿½wTx^4Ð>W²c«Wo[j‚eËßýûîßwÿ¦gR °ã2^è0»3o休óFZXÏ¿èÐÃ{&p²œ&Ü3ÎïÝ®RÊÔ"S‹LôIp`ÍÍ­-Z|?_ýôØ]û¹8ûRç,ùº&~ѕ׵ìòª·ª9OÚºÕÞžþ[nÁ |ÁY>p"`sèæÐÍtLp\—¿¸üÅå/,ð³Òù¾,û‹ý¬IËyå‹Ì½)ñ£jåï9øzdŸåuçÛ纵xÉ<9ÏàæÛµbkÅÖ¢gR °c1vè0»sjê©©§¦ZdçÕN_N%NŽ}èÙVݪ߷¬ùê^«{­îEŸG׳RÏJ=+YçkŒ›·ißhû MÿïfÎmÛÖï¿ÒYqû©JŸ-óµuiîôg®*¹wä¹ZjE…}®|›4ÚY®ÏÀéS[ûf[“õxV{‹~õ½ËgÕoÖÝaÙæ‘Ë"—E.£O€ãzô*èUå¾ÜïùóäVìmeºd¼ßÍòwú?êâ[ôlž9§æ u:íT¨ÔÔ¼es-îš·ÜøÂ…J̓=ÊÇÿ+{[±F?í5£NËü”-Ú7Ú7š> H]Àö/턾ñ°;/¢^D½ˆ²<à–èéÜ-W~Gyž®=/ž-÷ß­Ò¶øO–m~£ÖZ7ø%58¼Ý{wïݽ÷§ªÛ ì45·½E§ÿ9±›àco5ÿ¿§ÿ^_Y÷›ek;™ÌNfó ó ó ú$8:ÏBž…< YíŸ^îÙÛoµc­LíÝ*lÑÃc§ek¯è±¢ÇŠôF@ê"¶Oi3ô€ª“¿Nþ:ù-Á÷ëw«Zk‡cÅÀö¼»´oÿ,Ö¼¸Qq£âFÑÀÑE.‰\¹Äò8Ÿ§Z‰eå ÛgŒê¸û*Nãú®úÀm·§dž’yJfz#ÃÚ,k³¬ýÀJjGºF¿U­ÂJÓ¶ûnn -°lí°òaåÃÊÓ©‹Ø~úÆG ÀN혽cöŽÙ¸ô½Ú¥Ê]el«½6¶eXõe–íËÁJÓVû¨R=oû=¶vºÖ\Í\Í\ÞH]À©‹Ð×`v*zRô¤èIÖб§û^õoÍb8éûº×ŠîÏÿÞ²…/g¾œù2W)€¡ü1÷¹ÌýÀCf¶}>`,ÁmÒ÷ž. VÈ`möòþùûçïŸÓÀHÜ/¸_p¿`yÌ¿~¿s{ßö¬7“¾ÿ-ÂmÅÌ^å^”{Qnz À§½×«·×Λ;–[i€a=üþá÷¿·6 xN\xÍ´‚@÷c÷Eÿm:¯Ûö,;ý¦øMñ£×€±­\¸:ÐrèPÊ­A¡¬@?vÿâ\ïßê¼µ6W¹öðÚÃkéuûAl[„¾¶B À\,|±ðÅÂÖîOÿèÙÖo‹äÄìãüûõöß\|€sÆœw,[rGºév0.@š´&hMÐ˱ ÐÖº}ZÍ"ÐMü¾Z£àyÛF[›¥<Ëô,Ó3nþ ÷ºûë[ >nu´FIV£‰ßOœà¹½t„eKv½ÖõZ×kô7€½!N:BßäÀ‰~£÷ÄÞ{O´<Ð÷h^þÏ"Y$'f¿x½ßÌò;-Û°h±¢ÅŠ‹;w,î= Ò‚gŸm|¶ÑÚ"ªr³±—7$ÜMxïÓcUÄ‘Æ9&ç{áúÇU¬øvÅ·+¾¥§@Ú±óöÎÛ;o[[_|×û‡:·X“&¼?çÔ>Ä» µ6¼»þîú»ëéi{Cœt{Bö„ì !ôµ-`ãq…ÇW°vèß1¥Ñ™ª-X0[]HmÑÛÃZë©q¦Æ™ô1Hk¶^ßz}ëu«·ƒ¹ð€iA¯µ}‰móõïiÙny³æÍš7k¬+Ä ô1HC|Ì>f¯¯¯\½X£RÝbî¬L­Þö9kï¶uNZ›“Ìï3¿Ïü>t1€}"Nº¸–q-ãZúÚ0âââim0¸<£ã>ŸÎ,žãïŸÖíYÞoœµ×{\ïq½éWFÕ7×7ׯ³¤Î’:K,Çç“nË«,ô™õÛˆ#fâÞøûŠßÈ3½µ±õœó9çsÎt.H›Âû‡÷ïomŒX?ª~ëJKX¥þgÿC {½O»Ý+cÙbErÉU$Wldldl$½ `Ÿ€m%þuÀ„¾IG ÀѼ0¿0¿èܧsŸÎ}¬-ª¾ïîQ» é7åúܪkòØåz6ïç–­äòÞå½Ëû7ß|sniÙC§‡N¬ªE~ÈÔñߊk~<>è×}Àä3›"­µÕÜsÌei 0oλ9ïæ¼ÖÆ ÕÜrgõq¬Xõ}pAïƒn­µÕõƒ×^gÅ °kÀ°OÀRLƒ˜1 ¬-Cs4ÍþÅÓz=+øO›KèØ3}¯ù·nY²Ôï®fk­tëî­»·îÒ—:å„rB9amÔ(Q»mÆþ Òrôë‘eúÛÖÚ§Éà&ƒ› ~¿üýò÷ËéKó{ó{óûÀŸüÙÚØq²aÛ©žgÒrô»äaLåc­µÏ­þhõG+ºÀþÃ>p`·ªßª~«ºµåbÞ²{?:ß}jí4ôÛê×»úüYwu‹N¥º»ž±ú{óÊjeµ2ý`iEæ™Wd¶6‚¿ÙúX¿]¾®k|ޤè·Z©æ­‚µ6É©åÔrjÏ]ž»ÑÆ^BGNè1ÅϹÊ@/g«'î·-Ú¶hÛ"ú a?gþ9óÏVG“B­ê´nYÎ糕â¡#ÆŽ~+7óz¹gÂsŒ{{îí¹·‡>°æYžgyžåɾ7ûÞì{­&;k¼´ê1c¯Xãúõõß2z™‡©TkíÐoZ¿iý¦™};f_zÀQÃ>0ˆƒcŽ98&áS´»ë6YèÞÓx éN·ûÉ«gÂï}]æu™×e¦Ÿe«y«yë¨^£zêemdÉU¡P•baÕ_ΉÝÓÊPѯךEÇ…Òk»m™!á±5¬EX‹°t@b<úýÑï~Oxd™8×ó¯ÒOßgî·Ãÿ¢‘V¬Õ5kGú.ò2ÿTkï½ûöîÛ»o7&n ½àX€aŸ€ʉ '*œ¨ð¢zÀãÊþÅÎ<ÝKª3ÌÁ=½uöÌšÓËÞLøýn÷Þî½Ý›¾øh7Í7Í7§æ˜šcjŽ„Çšò¿ Éòë G~kT˜»}o¼+ä­ž'á÷{'âNÄ:àcEæŒÌ™³x⊰6ʔ͓oBîÞ7²wîëÛÃÑ£ßg›gªv+áQuhÀЀ¡qQqQqQô€#"†}"`@7FÝuãÜZ·«jãÓU;ÖúX®6m<ó¼Ï‘ÑéZÂï.tZè´Ðiô@Ò­¿¾þúúë ;yUp­îâ1nFÇ%ôõ¹ººï±jeôØ3zSÂïλ¢wEïŠO·?Ýþt;ý/k¾¬ù²f벭˶.›ðè3­•Ou·oŽôÍ[÷–£¬Xÿ½Öµi­bm¿+ã[0:áw7Ï4Ï4Ïd¾n¾n¾N¯8.`Ø'`†Ý9ºstç6Û l30áeg±†y–ä\«´ü¾z›÷ÝûýãÿÐÞ–ÐçÖ´¿ã]«AÇâ™ Iø½”ø²Ä—%¾¼~;üv8}`['—ž\zrib~bUØ£^‘6Ç«›=á¯þvúf]yïPlùFƒ;M‘˜÷2>Ãø ã3¼ünð»Áô€Íø˜}Ì>s×Ì]3wMbÆ£5¥ê9W¼ürjïÛu‹ØÛŠõA@·…µ"Fö¬ö°äÚļùˆ|D>B0ì0£ÛkÞkÞ»)ó¦Ì›2gK´u»ê]i@\Á~íüW§Özϼ¦NîTô,ðužÖ‰©óÔv@ò‰š53jf¯^=¼3B¨V­SíaUZ¯ñÛÀÔ }½:/™.;•ú¾sØ…?P]TÕ…OÜNe8•áT†ÄP“:x¾/SàÁänÛj½N­ë©‹íò{¹}·¯llቩs“WM^5y¥? ™O`$À°OÀÒé¤{®}Hûö!‰_Z׺W¤Vþ¼›:6èS¹æíÚ]ÚÖœeÛeóײŸ÷_›øºWhû´ÌðB9_·J•"*E\*v©Ø¥b|¾€”§œSÎ)ç²}¤Âóê×jçS)vôÛ¥Ñ>_¯¼|è¡mãÞj×§wÚ~¸Œ[N£+å\ï:®È¶Ä×mLà˜À11}búÄôáó¤¤×‘¯#_GþZç×:¿ÖIüÈ•OÈùuöQ³ûÕ[öâ…yÏ·íŠ5Nê7Ï?ôàÍV¡5Š _ê>¡Äá÷wÛ=n÷8óYóYóY>e€ñÃ>H£NM>5ùÔdÿlŸ¤B—üûò4½ò­âI~åÇíØèpÕFâÌ_{ikZ>©¾V^Úâ¤Çó¿Üš”u/¶B©;¼ÂÕkªù•ôñ^^hc¾BŸV®Óz§õNë÷‡îÝjþÆüù>M@êz»üíò·Ëׯ ^œ- òç«|Íûiññ­Öô­R¶n¿—wW¬þã€y‡+—³hÙÊãÇ.[ñu¥š#·,zQ¾âàLÓƒKïòùðe…jÖÉÕâzŽói.×?­ÜÛ:lë°íÖ†[nmàÓ؃{Wï]½w5psàæÀÍŸ6ºåÛ•3SöŸºv*·¸ðÛ™}|Me{l]Ûð·Êï hv«ÚaumËÙÕ•5-+T¯°¯ZÓjYÖ¯¯ß«ÒÚI›½ ”)ßlcIÑõû¤Œé -8´àЫ/^}ñê >M€±Ã>HÛÂÍáæðÓUNW9]¥Õ«V¯Z½Êf—ܸp ÎgŠ3ãÖÄ­‰[ÃG°O¯§¾žúzê6¯m^Û¼r…ç ÏnŸcëŒC2Éx+àVÀ­>5€=»«ÝÕîjAùƒòåÏfÇV¯[½nõº˜1bð©Ò`Ø'`øˆ%K"–¬.±ºÄ꥕^TzQj-žgoæ¾Ûog¼‘Ïà¸..¹¸äâ’Ñn£ÝF»¥Ö¨ê7Ýoºßôéw¦ß™>&$&$&„ÏàˆÞø¾ñ}ãû·Ïß>û4ÒtHÓ!©5¶>3øÌà3§+Ÿ®|º2Ÿ -#†}"€ÿáÉÜ'sŸÌg‹³ÅÙ£K.=º´[F·Œn“¾`.°¬À²Ëe”}Pö]‘»"wE>Èõ ׃\´9ÀØÂæ‡Í›¿9hsÐæ ®Ãºë:ÌV'£=eOÙSîÜ'¸ÏÑ6GÛmD›ŒêuÆ×_g<5îÔ¸Sãf{Ìö˜íá×˯—_/[­íÛ¶\;ríȵ#¯¹>äúóIóIóIZÀž€‰={$6´ahÃІ‡Ý»v§Mø4ïÖ¾[ûní¡¹‡æšu¡ä…’JÒ2|š›_ßüúæ×ýúô?ä{È÷ï«Æ¯¿jLË 0000000000000000000000000000000000000000000000000000000000000000DŠÀ¡B3„fÈi†ž“€Ã#ƒHs°þ¿‡¦Mš>4]hºÐtÚ{í½ö^‹Óâ´8-V‹Õbµ·Ú[í­öZ{­½Ö^i¯´WÚ í…öB‹Ñb´-Z‹Ö¢µ(-J‹ÒžiÏ´gÚí‰öD‹Ô"µH-B‹Ð"´GÚ#í‘ö@{ =Ðîk÷µûÚ]í®vWûWûWûW»­ÝÖnkáZ¸®ÝÒni·´›ÚMí¦v]»®]×®i×´kÚUíªvU»¬]Ö.k—´KÚ%í‚vA» ×Îkçµ³ÚYí¬vF;£ÑþÑþÑþÑNi§´SÚ í„vB;®׎kGµ£ÚQíˆvD;¢Ök‡µƒÚAí ª…j¡šª©šª)š¢)š¤Iš¤‰š¨‰šI3i&í€v@; í×ökûµ}Ú>mŸ¶GÛ£íÑvk»µÝÚ.m—¶KÛ©íÔvjjjjhhh!Zˆ¢ý®ý®ý®mÓ¶iÛ´-Úm‹¶YÛ¬mÖ6jµÚmƒ¶A[§­ÓÖikµµÚZmµ¶Z[­ý¦ý¦ý¦­ÒVi«´Ú m…¶\[®-×–jKµ¥Úm‰¶D[¤-Òi µ…ÚBm¾6_›¯ÍÓæió´9ÚmŽ6[›­ÍÖfj3µ™Ú m†6C›®MצkÓ´iÚ4-X Ö‚µ)ÚmŠ6Y›¬MÖ&i“´IÚDm¢6Q› MÐ&hãµñÚx-H Ò‚´±ÚXm¬6Z­ÖFi£´QÚOÚOÚOÚm„6B® ׆k?h?h?hCµ¡ÚPmˆ6D¢ ÖkƒµAÚ m6P¨ ÔúkýµþZ ¨j}µ¾Z_­ÖGë£õÒzi½´žZO­§Ö]ë®u׺iÝ´nZ­‹ÖEûNûNûNë¤uÒ:iµŽZG­ƒÖAë µÓÚií´¶Z[­­ÖZk­µÖZi­´VZ ­…ÖBk®5ךkMµ¦ZS­‰ÖDk¢5Òi´-@ Ðh ´Z}­¾V_ó×ü5­®VW««ùi~šŸV[«­ÕÖjiµ´Z𝿫ùj>šæ£yi^š—æ©yjžZu­ºV]óÐ<4Í]s×ܵªZU­ªVY«¬UÖ*i•´JZ­‚VA+¯•×Êkeµ²ZYÍMsÓÜ´ÒZi­´VJ+¥•ÒJj%µ’Zq­¸V\+¦ÓŠiE´"Z­°VX+¬Ô j5WÍUsÕ h´Z~-¿–_Ë«åÕòjΚ³æ¬åÖrk¹µ\Z.-—–CË¡åвkÙµìZ6-›–M˪eÕ²j™µÌZfí[í[í[íííí+í+í+íKíKíK-“–Iˤ}®}®}®eÐ2h´Ï´Ï´Ï´tZ:-jVͪYSãÔ8õúN}§¾UߪoÕ7êõúJ}¥¾R_ª/Õ—jŒ£Æ¨ÏÕçês5JR£Ôgê3õ™úT}ª>U#ÕH5R}¬>V«ÔGê#õ¡úP}¨ÞWï«÷Õ{ê=õžú¯ú¯ú¯zG½£ÞQÃÕp5\ SÃÔ0õ¦zS½©ÞPo¨7Ôkê5õšzU½ª^U/«—ÕËê%õ’zI½ ^P/¨çÕóêyõœzN=§žQϨgÔÓêiõ´zJ=¥žROª'Õ“êqõ¸z\=¦S©GÔ#êõ°zX=¬TªÕP5T UuŠª¨Š*©’*©¢*ª¢jRMªI= P¨ûÕýê~uŸºOݧîQ÷¨{ÔÝênu·ºKÝ¥îRwª;ÕêŸêŸêŸêêêjˆ¢†¨¿«¿«¿«ÛÔmê6u‹ºEÝ¢nV7«›ÕêFu£ºAÝ nPשëÔuêZu­ºV]­®VW«¿©¿©¿©+Õ•êJu…ºB]¡.S—©ËÔ¥êRu©ºX]¬.V©‹ÔEêuº@¯ÎWç«óÔyêªê£z«Þª·ê©zªžj µ†ZCõP=TµšZM­¦VU«ªUÕ*jµŠZI­¤VR+ªÕŠjyµ¼Z^-§–SË©nª›ê¦–Q˨eÔRj)µ”ZR-©–T‹«ÅÕâj1µ˜ZL-¢Q‹¨…ÕÂjaµ ZP-¨ºª®ª«Z@- Pó«ùÕüj^5¯šWuVUg5šGÍ£æRs©¹ÔœjN5§š]Í®fWT'ÕIͪfU³ªYÔ,jõ[õ[õ[õõõõ+õ+õ+õKõKõK5“šIͤ~®~®~®fP3¨ÔÏÔÏÔÏÔtj:5bVÌŠY‰Sâ”8åòNy§¼UÞ*o•7ÊåòJy¥¼R^*/•—JŒ£Ä(Ï•çÊs%J‰R¢”gÊ3å™òDy¢#Ÿ‘ÏȧåÓòiù”|J>%Ÿ”OÊ'åãòqù¸|L>&“ÈGä#òaù°|X>(”Ê¡r¨*«²*«ú@–dI–dQeQ6É&Ù$Èäýò~y¿¼OÞ'ï“÷È{ä=òny·¼[Þ%ï’wÉ;åòNy‡¼CÞ!ÿ!ÿ!ÿ!o—·ËÛåßåßåßå­òVy«¼EÞ"o‘7É›äMòFy£¼Q^/¯—×Ëëäuò:y¼F^#¯–WË«åUò*y•¼R^)¯”—ËËååò2y™¼L^"/‘—È‹åÅòby¡¼P^(/È äyòR©ÔKê%õ’zJ=¥žRw©»Ô]ê&u“ºI]¤.Ré;é;é;©“ÔIê$u”:J¥öR{©½ÔNj'µ“ÚHm¤6Rk©µÔZj)µ”ZJÍ¥æRs©™ÔLj&5‘šHM¤ÆRc©± HRC©¡ÔPª/Õ—êKõ¤zR=©®TWª+Õ‘êHu¤ÚRm©¶TKª%Õ’|%_ÉWò‘|$ÉKò’¼$OÉSò”ªKեꒇä!yHî’»ä.U•ªJU¥ÊRe©²TIª$U’*H¤ Ry©¼T^*+••ÊJn’›ä&•–JK¥¥’RI©¤TB*!•ŠIŤbRQ©¨TT*,– K…¤BR!ÉUr•\%ÉEr‘òKù¥üR>)Ÿ”Or–œ%g)”GÊ#å’rI¹¤œRN)§”]Ê.e—œ$'ÉIÊ*e•²JY¤,Ré[é[é[éééé+é+é+éKéKéK)“”IÊ$}.}.}.e2H¤ôRz)½”NJ'¥ß‹ïÅ÷bœ'Ɖ±b¬+¾ߊoÅ×âkñµøJ|%¾_ˆ/ÄbŒ#ƈÑb´-F‰Qb”øT|*>ŸˆOÄ'âcñ±øXŒ#Äñ¡øP|(>ˆÄ{â=ñžxW¼+ÞïˆwÄ;âmñ¶x[ ÃÄ0ñ¦xS¼)Þoˆ7Äkâ5ñšxU¼*^/‹—ÅËâ%ñ’xI¼ ^/ˆçÅóâyñ¬xV<+žψgÄÄÄÄSâ)ñ”xBB/¡—ÐKè)ôz Ý…îBw¡›ÐMè&tº]„ï„ï„ï„NB'¡“ÐAè tÚ í…öB[¡­ÐVh#´Ú­„VB+¡¥ÐRh)4š Í…fB3¡™ÐDh"4 …ÆB€  „B¡¾P_¨/ø þ‚¿PW¨+Ôü?ÁO¨-Ôj 5…šBMÁWð|oÁ[ð¼/ÁK¨!ÔjÕ…êBu¡šPM¨&Tª U…*B¡ŠPI¨$T* …ŠBy¡¼P^('”Ê n‚›à&”Êe„RB)¡”PR()”Š Å…âBQ¡¨PT("Š…„BB!¡ PP((¸.‚‹P@( ò ù„|B^!¯WÈ#äò¹…ÜBn!§SÈ)d² Ù'ÁIp² Y…¬B!‹EøVøVøVøFøFøFøJøJøJøRøRøRÈ$d2 Ÿ Ÿ Ÿ „ Bá3á3á3!NHgzozozoŠ3Å™âL±¦XS¬é­é­é­éµéµéµé•é•é•é…é…é…)ÆcŠ1E›¢MѦ(S”)ÊôÔôÔôÔiŠ4Eš›››™™™šššî›î›î›î™î™î™þ5ýkú×tÇtÇtÇn 7…›ÂLa¦0ÓMÓMÓMÓuÓuÓuÓ5Ó5Ó5ÓÓÓÓeÓeÓeÓEÓEÓEÓÓÓÓ9Ó9Ó9ÓYÓYÓYÓiÓiÓiÓ?¦Lÿ˜NšNšNšŽ›Ž›Ž›Ž™Ž™Ž™Ž˜Ž˜Ž˜›››šššBM¡¦Pý´½~ºNŸ¶§è€ä`y(0Ø00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A€v?ø~ðýà"áE‹„ës‰BY e-”5êvÔí¨ÛŽ[ØýX§÷ôc ~<Ô´34€%``ðÞ»¼wyïÒ¨]£vÚÅŸKÌÎ=;÷ìÜŽ[س™UgVY5þ‘°qƒÆ 7Г´HC²˜³˜³xtàÑ?†üòcˆÿNÿþ;Ý:¸upë{cî¹7–Yzdé‘~·ünùÝ14bh„vX;¬¶í܉Ø3``ð‚'OžQL+¦Óô;nY`ÏbvÇìŽÙÍ Ú¤rŒ#ÇTU«ªUÕlIp Ùfš1Cc#&‰riÚ¥i—¦YÎ"­\´rÑJÇ- ÅücóÍ?ÿ¨˜34ghÎPN2£Ò¯¦òÕ¯†|•-Ä•+W–00ø_²˜³˜³4ü±á Œ?Ðo«eãemJ–åÕÔWS_Mµ\Íé·Ê§}€‘èÑo¿‰ý&ö›˜-™%å¦ÍÌÐÀ>€ÿaö Û6l³œ?¬*¶ªØªbŽ[8¢eÝ—u_Ö› c³|®%¯ö^í½Úo·yÜæq·²ÝÊv+Û둯G¾©ÿ{ÓÌM37ͬ1¢Æˆ#3C#!&V½ |ø&°L¿2ýÊô‹?sp-çZεœm—²)Y8.kW™” (P6àmÇ·ßv¤•€ãº·øÞâ{‹ky ò䑘u¢~“ç„_-ÇüówLʪ“Ø```•µ_1'~±mŸe€£K¾ëWRW/©—ÔK²6Ïi»¶íÚ¶k?zΓŜŜ%á”~»ifh` ÀÀàôg•šZjj©üŠY;¬Ö;bY` rF9£œÑò˜©ßGA¿§­˃QF=e-@Í;*屮£î¼sðÎÁO{ýð;áwÂïè¯cùúNÑNÑNÑI k™¡€ý &°î躣ëŽZ[¸Úö÷Ë)YÃ{—÷.ï]¸ÊÉÒ!K‡,’ôÛ>',áÔòË[,oÁ 00¤(ý©0!ECІ.‡‹uN×9]ç´téOÉš34ghѳEÏ=[U­ªVU»}Ýíën_Ï}8÷á܇·Ïß>û|ÊÔ6¶Ql£ØF¦Z¦Z¦ZúBËï–ß-¿[zmsíε;×î’‹J.*¹¨VæZ™keîþ¸ûãî¯ý{íßkGŸ‹>}.¹kxæß3ÿžùwñ¬Å³ÏÒ[É«½W{¯öz õ_õêõ,U8ªpTEsEsEsk¹µÜZë?Ö¬¿”CÊ!åxçýÎû·mëvḋ7kÿ}Ôí¨ÛQ·ç›lþ±fù›åo–¿rXå°ÊayçYœgq¡¬…²Êê±Ðc¡ÇÂÁ΃;‹EÄ"b‘äkÛZqµâjÅYÎÆçŸg|Ç-ËQúã~+í¿†ŽˆVMÉ£±5úé<ýŽöP–nLë1­Ç´¶<~ÖUê*u¾;°7Œ¼Œ ß2sHÝ™ƒýkøcÃþh-:ý´ö±thÙ¡e‡–Y+¥Q»FíµKÊë3C{@L É.fwÌî˜Ýz”•-ÉœÒ;¥wJ¯ÿ;,}Xú°ô6®nss– Û6lÛ°M¡“^g½lU7=>¯ý¤ö“ÚO²ÙÔÂßþ¾ðw[Ý”)ñ¿ùÕCߤÔüV¶[ÙnÙìwħ Ÿ*|ª°µ².l¾°ùÂfG,˱úÃ|+¥†ŽÈnZ5å¯`°m‰ûjû?ìÿ°ÿ¤“NL:¡ÿH«Hx‘ð"áñïL`eéô8«L`ÏÇ1F^F^0s`æ`?3{öÄõ‰ëWk­¡ÿ$Úf½(Áç'ýFÐÌÐÀ@2:ýüôóÓÏãֶ߯œƒƒƒmµxЗ[}úô±m=õg»ûîØwǾû´ºéWǶŸÔ~RûIÙR„ÞÉwBÿ¶~xÒk«/†¯v¾Úùjç¤÷„aׇ]vݲýŠdÛ.VS¦,Gì?öÿ­t”:îÉ/ûiÕļ²m[À¶%&þuô;m$üßÛê4nÒËJL¹ú(Ã| )‘—‘×\šöá™3föI;¬Ö[{wúÝ lÛ’»¯2C€ÔEL É"1¿÷´•Üso̽1)‹“Ç>}ûè·àK¾zºx»x»xl=õ_×QcDÙRPã4n ÿ.89“ÞLx3ámë¬ß :®l\Ù¸²ŸV焟WÔob¿‰ý&Úê;’2e9nÿ±ço¥£ÔÐÙg«û4®~“̾sûÎí;71å&å4®mËŠ¯Ïê>«û¬¶vâž«LlåÜ¡s‡Î:ÞôxÓãMi F^F^û—®½cæÀÌÁH°þä]kï.xBð„à ¶-qê쩳§Î¶Vâªb«Š­*–”×g†©‹˜lìmÇ·ßvLÌi¯ú ê/¨¿`k×­]·v={áì…³ž¥{–îY:ý©KúÍo·WÞ^y{eýæN ¿š§§§ª%¾¶zX¨?*á×÷ßé¿ÓçÆWl\¡ßzZž±þï}Aû‚öéÏ—Š“jKñoQ•˜y;äí· ×MM}ñvø×ÿþ5,:,:,Z’~ZD?i«?×JÂnÂõLúé‰=±R³@Í5 ü‘óœä|0êÁ¨£ô«gôßA¬7°ÞÀz‰µO«³ÞzÖ^s…ß ¿~¶ú¦¤LYŽØìÿ[iÿ5tDöܪÆ>Û¿Wÿ^ý{%þ蚔Ӹ¶-+¾eÝ—u_ÖÛ &7}οUõÿE?AOû0ò2òÚc™90s0^líîPº-ƒ· Þ2ض%nš¹i榙ÖJüiÎOs~š“”×g†©‹˜l,á%„þ,=ÖµíBôÓ–s¾˜óÅœ/®­þ|µýÅwÙ€²e¬½òœ×s^Ïyðëè§ÿ~§–·üØöÌš34g¨µ×o»¶íÚ¶k“ï4„.þoº“þš†wÞaø§Õy¬ÿXÿ±þ)³@Mî²·ÿØó·ÒQjèˆì¹U}×RžÅyçY¬Ÿ‚Ü?hÿ ýƒô:ü»çß=ÿîÑ*{(+¾“OV3´¤³ €ã›6tÚÐiCuzÔéQ§´Ù>Œ¼Œ¼öÆØ¡ 3fI™9ا&5šÔhRÃÚ{×mÛÕ‹êEõ¢µ›¿kþ®ù»¤¼>34H]ÀÀ`cñŸLcí¶EŸ¸èÍbÎbÎ’ð‚PÕób÷ß[|oq¯ö±§ â;2æÈ˜#c²ßÉ~'ûËW.z¶èÙ¢g~e±ˆXD,b­nUÕªjU5é§óêO+%1 øø×vÛCke®•¹Vfk'l{²&¹ËrÄþcÿßJû¯¡#²ÿVM;§q«œ©r¦Ê™[Ùne»•-ùŽü¶*+>ýî# 5ÌÐ’.áX—kw®Ý¹vëÿ>ýÙéÏN–vÚ‡‘—‘×Þ5fæÀÌÁ¨WŽz7ônèÝÐZ Ü,t³ÐÍB¶-ñF…nTHø]Iimfhº€ €ÀÆÜ:¸upë`mŠqéÅ¥—&åõ—Œ_2~Éxk¯ß©m§¶Ú&æu¦¬š²jÊ*k¯£?G-¹OÒ%üú‹g-žµx–µ¿š{vîÙ¹“þy]peÀ•ÖJÉq.ǹç’o1ì»cßûîc_y÷ÖÝ[woµöšñ¯ŒIükêOì³öšõÖÕ[Wo­N4¤LYŽØìÿ[iÿ5tDöߪiá4nEsEsE³~ûý䮹­ÊJ|éŸ6.À’œQÎ(gtvvþØk¶ôG<¼ó~çýÎÛ¨íÃÈËÈkoŒ:—`æÀÌÁ¨ôwj­ôûLضDý¾ ‡îÉ÷mb†ɘl,áÓ=Íú4ëÓ¬Iy}ý7¿Þ|x[UlU±UÅ~ýäcr“–ô×±Vʺ£ëŽ®;jío ù1äÇýzPËÍfWÕ$âºêä€ã_ÿú±¯|Ý÷ºïu_ÛÖYÊ!årX{Ñ=G÷ÝÓVß‘”)˱úý+å¸áX¥UÓÂiܽ3öÎØ;#ejn«²,éOªK;?žH-ñÛ³œW9¯r^Ï*>«ø¬âO\Ÿ¸>q5RË0ò2òÚó·ÕÇCfÌŒ­ø_Åÿ*þ—µvxú<ôy¨mKŒºu;ê¶µK,=²ôȤ÷XfhZ€ €ÀÆ ºt-èjmZ¯?ý7ukxtàÑGZ«a¥§•žVzj«EH\Ù¸²qe­•¥/„R·5^.z¹è墔€mõk«_[}ZcÅ6ŠmdÛ:Ï?6ÿØücÖ^gé¥C–±U›§dYŽÒìÿ[Éq#-}7)?ÇIݲ,-Z¹h墕ÖJׯÎdžf[ñ¿YÍò7Ëß,¶Or~ïù½ç÷ÒžŒ¼Œ¼)9š0s`æÀÌÁÞä럯¾þÖZC¿²mKLøÍ®å\˹–Kzû3C€ÔBL 6VûIí'µŸX›Ü»x»x»x§înÞÕyWç]µVà ÷ ÷ ÷äXß²ØöØÿaÿÔý¼4;Ðì@³”€õ[AÚÏiŽ!o‡¼òÖÚëlk¾­ù¶æ¶jó”,ËQúý+9n¤å£±±Oãê7ÒL™šÛ¶,K›Çm·yœµÒ‡‹ÃÅá¢=ôülvÌVïnØõaׇ]Ïß1Çü?¶íÿkÿ_ûõè…y5#/#oòm˜90s`æ`oœ¢¢¢­~‚YÌYÌYl[â{—÷.ï]lõXGŸ¡€ñ€Mï1½Çô‰?Í·ÐþAû½šújê«©)SÃïªWý»êö|rrÓ¯ Õßi‘ð"áEÂS>NúÍÙl[ç&5šÔhRÃÚë˜j™j™jÙªýS²,Gé?öÿ­ä¸‘–[ÕØ§qÕ‹êEõbÊÔܶeYú»Ëß]þîb­ôæïš¿kþÎQz”ãÀÖÞiå°Êa•Ã>¶>ú=3žE=‹z•––Œ¼Œ¼Éq´aæÀÌ™ƒ½É;*屮£¬µÆ›À7om[¢~ÆZ‰ÎÁÎÁÎÁIﱎ2Cã!&Kø)2‰1£ÎŒ:3êh‡µÃÚaý6w¶­¡wCï†Þ ­•~aó…Í6;nûëOÆÒ™®G‰Ëº/뾬»þ\ºFíµkÔ.áÛt§L|wÓÝMw7ÙÏiŽø·Œ³tªð©Â§ Ûê3Jɲ¥ÿØÿ·ÒØÇ Z5%6)_b¯–>,}Xú”©¹m˲t¢æ‰š'jZ+½ªZU­ªÚCì‘vàÿˆ÷äÚ6¶ù³ÍŸNéÒ;¥ÿØ^peÀ•F:2ò2ò¦Öц™3fö¦˜VL+¦Yk ýL‹mK|–îYºg鬕XôlѳEÏ&½Ç:Ê Œ‡˜’ÅÙ g/œ½ÁtúµÅ—G_}ytRêæÖÁ­ƒ[k¥D4ŽhÑØžÛV¿)â‘1GÆ3éĤ“N´–[Ë­e{;)œð«%ýÖŽ¶­sñ¿ŠÿUü¯”9õ’e9Jÿ±ÿo¥£7ì“£´ª±OãÚöÚÊ”,ËÒÍB7 Ý,d­ôRSKM-5•Ø~!½ÄQÃF 5,þS?ö.2úí+™¹1òâc6̘90s°7\*¸TpIÉþ`ÔƒQ¬^s¿>ia†ÆCL ÉH_Nè·êú´ë<m™ôw—¿»üÝ¥L¿2ýÊôKî«‚+Nø5ÿÓ’yIŸô²½ÿØç·Ò±j˜øïˆýœp±çVm?©ý¤ö“Ó’úã ÿ®-ŸˆÿÊiÜÄÓO£[+·I&5šÔàô¢­Ü,t³ÐÍBcZi=¦õÇŽµ2×Ê\+³~õ›‘>F^F^ûdì«*™90sHŽõ£ý|GþÝóïž÷X»8¾÷.ï]Þ»$üjqeãÊÆ•Mø¶ÏúµÅ÷ƒïßf†Æ@L 6¶úÕêW«_%¼DqJï”Þ)½þï+6®Ø¸âZ“kM®5yú<ôyè›À7oâââC÷…î ݧ/³Kl(±¡Ä†„_¹ûãî»?Nüâ‰ë×'®‰yåøµ K–>,½~Õ‹¾03Õ2Õ2ÕJL8ÿÆ}ÖjuµóÕÎW;'|ë0§h§h§hýßrF9£œQo1=&×ß—~ËÁ…¿/ü}áïµâjÅÕŠKx±—pÍõ¾‰Y^¦Ìb>9–îÓ†N:mhÊœH¾²½ÿØç·Ò±jèˆ'¹ì¹UCІ )šøöÔ¿5Gxt ~Ýž~òëF…nTÐGIkWò­ÿ{ýßëÿæ4îÇÒøe­Üé=¦÷˜ÞƒZÒíY¾gùžå‰ÿ.è#Q·Øn±Ýbã_±g¼–aäeäµOÆ€™90sHŽõ£½}G_ç?rþ‘óœwÞ9xçà둯G¾©újŒ¨1¢Æˆ„_A¯m[€¤.``°1ý4S¶§ßVèiÖ§YŸfýØ:Ÿ~~úùéçE‹„ O¾hT QFç÷žß{~¯m{ŸF¿}™þüªýÛ?ïýyïÏ{©»˜OŽ¥ûÅ¥—^\š2§’»,Gï?öù­t¬:âI.;mÕDÜß"éx’_RÌ}8÷á܇Öʽ4íÒ´KÓ˜¡%ÝÖ®[»níšð§\8ªpT᨟ýüèçGúS ÓΕ=Œ¼Œ¼ŽÒ'ô½cæÀÌÁØsã”_†]v}ØõäxïÌÐ u@²x¹è増‹R&úm-·–[ËQ·£nGÝNú²ª‚K— 6°õ_‹ÇFrbê£ß¦)9Z¬Úújë«­¿°ùÂæ ›õÿe[ómÍ·5'Nø•»”îRºKé”YÌ'½,Gï?öù­t¬:úI.{kÕˆÆ#{,ôXè±ÐVõÑoP— (P6ÀV •šj¨Y`ב]Gv±í²A¿!˜þšÎÁÎÁÎÁŸVCýÖ|úoiõ”%½ ]˹–s-÷iõ)z¶èÙ¢g­ÞÖé#¥nìxⵉ×&^³|µø·˜³UKö²¶ÿØõ·ÒAjè¸'¹ì¹UõG诜ðí^VÑ\Ñ\ñ?·Å‹_JþŽ mœÆMüñG¿:Šé˜­è°?t®ß¹~çúÚaí°v˜¸Œ¼Œ¼ö)íÀ̘9¤…¹qüwñiφו/[¾lù²ûí´3406``H…Óaúõ+w+f©˜¥bý†9Cs†æ ͽ1÷ÆÜ‹iÅ´bš~ÅC·¯»}Ýíë9_ÌùbÎúm‚Rfa}.ú\ôÿ-Ñõ§ ë7š.þWñ¿Šÿ¥/àõšW9SåL•3z=WVYYee•GuzÔɶõŒ?réõ©ô´ÒÓJO ºt-誷^ÉE%•\äëæëæëö}ÉïK~_2ñK;ýYAñ#öÂé §+œ®PÖBY eõßé¿ÓçÀzë ¬wyôåÑ—GÛÃÒ÷Óþß„ÝÊv+Û­ÿ<©:ùN ¤dYÆè?öö­t¬:î‰`ûlUý5õ±©Ý¼vóÚÍÓꤟl͵;×î\»õ+‡ünùÝò»¥§ôgÛ˜ÙJü2>ýy«ú3Vi%[ÑŸF~'üNøú0#/#¯£ô@}õK ß>f0öÜ8þƒ·ü!ð‡:§ëœ®sºôÈÒ#KÔû’ëOÖÇå®rW¹›2ï‘Ø```ée³Ú¦VS&2Lk'¬}¾ƒ<y òpܲŒÚìÿWü©[Ãø!N?ééèßkûüÜÓÚW©K?9nÙÚmþlóg›?iy8ʱ‹‘7mÖô f©%­Í™¡@ÚDL >`÷ÖÝ[woµœ3è·sÔO8bYH›â_ËÿZ1N¾Àq½ |ø&P¿’Òòø¹/h_о Z 07f†i00ø€ø·ÕJî_R§dYH›Îü{æß3ÿÆïQúó;i8.ý™¦–GKϾž}=ûräÌ™¡@ZFL ¬ÚñrÇË/-gÚvjÛ©­ã–…´fÚÐiC§ ߯–·XÞby ZŽK?6Z3wÙud×Ú07f†i00°.‹9‹9‹åÌ!×î\»sí¶ñï—S²,¤·Ïß>ûüÚËk/¯½¿G•šZjj©©ô(8®§YŸf}šÕòhéãéãéãIßÌ™¡€ €Àÿ g”3ÊSææÌ)YŒÍÚS¥<:ðè@ÚŽkʪ)«¦¬²ìárŒ#ÇÐ>€¹13400øÄShT QdùÈò‘å·,U1­˜VLkZ¦i™¦e‚܃܃ÜùÝ×'®O\õãaü#d/©—ÔK¢‡æÆÌÐ:``(F=õ`”‹·‹·‹wr_››’eÁØè30’q%Æ•WÂòÚ‡ýöØŸöÌ™¡tÀÀà£OÄçì윋۔, ì™~ÜË;*屮£â· Þ2xË`Næ0CÄGL >ZJ>£—çÀˆßFü6â·øÇÀþ½ú÷êß‹ã!34€%``ðÑ^lx±áÅ}áãéãéãYçtÓuN'ÇB7%Ë{u;êvÔíøÇÀæß4ÿ¦ù7˜¡¬!&`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À €ÿv0ÑÛ¡TÚ§Òv$•¶£©´Kñíx*m'Ri;™JÛ©TÚþI¥ít*mgRi;›JÛ¹TÚΧøv!•¶‹©´]J¥ír*mWRi»šJÛµTÚ®§Òv#•¶›©´ÝJ¥-,Å·ðTÚn§Òv'•¶Si»›JÛ½TÚî§Òö •¶‡©´=J¥-"•¶Ç©´E¦øö$•¶§©´=K¥-*•¶èTÚž§Ò“JÛ‹TÚ^¦Òö*•¶×©´½I¥ím*m±)¾½K¥-.•¶÷©´™Sg M—J[úTÚ>K¥-CrmÀ`XÀ`† €u|ÀÒÃÀÍ"šE4ÓB“m;˜JÏ$æiÄ<ØþŸFœvžCœvž@œvž=|>•¶´óìá´óÔá´ó¼á´ó¤až1l¼§ §Ö3†ÓÎÓ…y®0OæYÂÁ}޶9Úæh›˜ ˜ ˜ Ú`T¯3¾Îø:ã©q§Æ7Ûc¶Çl¿^~½üzÙjlmØ>°}àÚ‘kG®y}Èõ!ׇ˜OšOšOÒòöŒþ#bIÄ’ˆ%«K¬mëµ0IDAT.±ºDéE¥•^”-•ÌÜ7sßÌ}·3ÞÎx;#Ÿ Àq]\rqÉÅ%£ÝF»vK­QÕoºßt¿é;ÓïL¿3}LHLHLŸ À½ñ}ãûÆ÷oŸ¿}þöi:¤é¦CRkl|fð™ÁgNW>]ùte>@Zf9J†fÍš–Aê"¶…›ÃÍá§«œ®rºJ«W­^µz•Í.¹pà>@œ)ÎgÆ­‰[·†`Ÿ^O}=õõÔm^Û¼¶yå Ïž+Ü>ÇÖ!‡d’ñVÀ­€[|j{vW»«ÝÕþŸöî<ªªrÿ㸥?m¸ “‚ˆ‚ÌYE §D)eÒÊJD@í*Z™-sº ˆ†šHš¢f*i%ä¬$ŠÃu $qáüþ ?lm6¡bì³y¿ÎZÏr%,÷~ηç9ßó9gïDýDýD}u K[›¶6mmÍõšë5×yÖí0¤‰@;U<¯x^ñ½=ÜW¯ïnüdÿ®F¦F¦F殂]» ”/+_V¾Ì³ h[µ«jWÕ®J_¾ }ÁÓ¼ql9ÑëH7k›I¿ô,Yó±Fï°qûWõ훵bmº•gt̺ÎVs#†®ù¯eü˜]K"-nMxÅ4ÉÅj”¶á½øû4Ï?Ù¿º)tS覲ueëÊÖñl¤àêoW»ú[\V\V\Ö“ínÝ·iuÖüpÜØ~_ö¬]ã¹Ç*bcÆà5ö¿ŸøZ™ÓÁûÄ女q±ÙéœíôJfæ (»Œ²Ü úZ¿¶¾÷Þ“ŸfOÿüÇÏüüÇ{]îu¹×…g oÀ&`íÈõ×;\ï0:{töèì–7®ÞWM¼õ»}=& ÆÞëÒ€·Fy}¦TÆÅ ØZã="öû¸ä©°u³ïtã®-?6» » »ŠÓ¦§MO›òüþyyÇóŽçÜ7…ݦ-î‘e”ñ‹•vò‚c™ —¹sOŸvrj­qªSîU[Ã×óçîX¬¡Øbëjð’sŠnŠnŠn]p]p]0O;àÙ©ZTµ¨jQ„[„[„[Kv(kK¿¯ºw›ð~Öš~ö­ô¶|LûåM‡C§Ç'˜ÚµüõÀÆ yÆÏZqÇâŽÅ[¾C}êÚÐ×àú¼ñ›¼ï·UÇZ|ê }7Ë7wZÕõ\Ý’cºt/èÞïßüþÍïßðŒä„ÒD @¶ªÃªÃªÃFN9i䤿QÓÁºËµ2›ì2²!<öWÿò¶j¡ÅÆãé£/»{Œ1ëlp¨ùs1Áüó.]¼tñÒEjкŠV­(ZÑ’7y]—Œñëá6}ÀÞ»v´Uè+6&/=¶Sá>¦nÉ™>/¶ä\’;&wLîøpÊÃ)§P€Vã¡ôPz¤¦§¦§¦·d?J·¨g{ænJô%?©u¬×Çá]1#Ò©¼wFKÎeÿ¡ý‡ö¢ò@ i" CçâÏÅŸ‹oIÛ¹ÍqèÇRkž›Ö9ÒUO·¡k'³ÍŸ]Á‚… ©ÀÓË,Í,Í,m~ß±HpÝ¢ç8íàîµ¶R }ÅÆ9Ÿœ²Pü/äå9If»š?;w[w[wÛ››on¾¹™z<»^w½îz°a5ªùÝgápËšÐͯLU:Öÿìm:ê;žFÕÍŸÝ’=Kö,Ù£,U–*K© €ê"†4•Ã6‡mÛ4ßdN¼aïozôǫ̈}¾ïªVôû—û0ÆNð߸x‘×ÇVç›?ßÍî›Ý7»S€Çv^y^y>¥kJ×”¿¹?ýØ…K‹û¸¨Jè+6¾/ï¶ý ºféÙ7¾—+.W\® @«R«R«RËÌÀÌÀÌ@l—±Òí>['úœfØÏÕíXÇï½ÞÙ©¬ù]uZà´ÀiõUõUõUT@Cš€ÈDaBaBaBóåv¿ /‘ªÞB Ç_¼ñ¡[äßÜÕXm­ÚZ5êÐ"••ã£â£â£ÄvƒýæNZCÞŸ¸¿Á®Dգ߿Œñ§99¼6%)Û̶ù½õBÈ… !  %ï}ÛüÎ27Õõ»>7ÔbsüOÉ©c½q Âk@¥Ï“»ú)bç¾9|søæú„ú„úª Z€!MÀT^Q|Q|Ñß\ðù¬éØjùE¿Ž•³#æûè9L2tÓS›‡MË6-Û´Œš4oŽÚµ9¢»‰Ë[£&&'O?6Wa'«èW0F]Í´°z£ù×Ww\Ýqu5sK÷–î-]Í\Í\Í\±Ýdëš¡+–wÇZ;ÁÃÌ•Î{,LÄæ!vaìÂØ…JO¥§Ò“ʨ `H0VæRæRæ"Ö:vËîºNÓý÷á)’äÝH?:Þßó­_ZÈX‹ðGÅfæ€ýûöÔ@hµÚjµÕ¢ÑïÀn“#MºÎu8ìd ïè÷ÑqòØï6Ø$‰Í‰V¾V¾VþmÃÛ†· ©À£d>È|éáá!¶š=b_ÿ=í§cm¿¨PaýºØœÌûlÞgó>£~ª‚ÒD @%ÕÔÔˆµ‹z]ƒ5»Üiã“ÜÞ鯱î脳þ#†õ¶ø¦‡Rl–Ê®”])»B-åÎ;œwXlפ>UÓ$ºý„¾Âqê¶ûmŠÍOД )ASV5¬jXE-” ÊeCÜœ¸9qsÄöŽ¢Á£R\¶Ï޵q\^îÛÙºNl~¶ ß2|ËpJ }À&`ªæŽòŽòNXLXLXŒX£XÞî< ¨=7Òãƒ~1e~{œ·õ8Öíÿ„³dØ`Ø`Øð ðAáƒBÊ Ú³rrr ±]Õ#}Ü*#ï¹ãN¯rêÛžàÆqÒºo¿±¾!6W©©©T «[V·¬n¢×dRÛê’DÇÚ8.0r/´´›«ÒÂÒÂR:V€¤Cš€¨˜l×l×lW±æð̧cvz„ÑB?:Þô‹´ö½peRtRtR4uíÔ å å ßå¾Ë}— ÷³\E©nÀì¢ç™D¿Žã­Öé[$¶·×;®w\â€öéâÛß¾ø¶Ø‘?h„ÝrºÔ¿ŒïÅ)š9byÕ¸F8c&Ú&Ú&Úu•u•u•T@š€[ËŽìÙ;²çp~Öü¬ùY7nÜäcÖOˆ€Ê¸asÃæ†X#3ÈQÇšg±ñø¬Ñ§ÜÅfïhÿ£ýö§Æ ½ÙXº±tc©Øîßûà\=â^±qñT“‰Âyëöj·W»½Z÷CÝu?PcÐŽx(=”nnnÂÝ!®¿Ÿ©‚ÎTl¼ójô(_ÑW-Y³4†HðÓ«V?¬~˜Ø+Âà'C @eDÏž=W¸D¼ný­Ézæ–Œ_fú,²Þ*œÃ^¦½L{™Öÿ\ÿsýÏT´·ÖßZk½Xsu+ÓÅj,oóãìñ'z(fë¥uÒlâþÕÿZý¯Õÿ¢Ò ýØzi륭—ÄöÖ;oF¿ç[FOú7\Öín$6‡W2¯d^ɤÒRCüôýîoóƒ[Ž€ 8ÕóTÏS=Åý›["Gù,£UnÉXïíŸe6Q¯“Öå&¾EÝ!§Cû´ ‰é‰é‰é½ ¿âˆ w[>N.ÞþžÍ:±W)·:ßê|«3õòv?ü~øýp±½ ðÆðŸú÷¦mù8w¶ëæ>M|¸jÜÙqgÇ¥ÞRCüôÝÆpW½Åƒ›ÇýT@À¬€Y³„KüFÁíÏÑ?îxtÀèçÜvˆmœu:u:u:TÈUùäòÉå“E/û<ààcbÝÇ(¢KŒßm¢õ™ï3߇ªyK‹K‹K‹î¡–ÆŸÓ>öå G¯ñ­{­r¶ülùÙrª À­‹0¸µ´ÃÃCá‚®‘¨¾\=âaUì@ÿ/hŸl}ØÒÜ8Y8·[‹¶m-¢ö@®’g&ÏLž)\ÿƒ÷%&˜Þ!Ê}²qæó?upýîWõúêõÕë©=ŸÚIµ“j'‰­ÿ—Þ ñú„ÞóÉÆM•Ý guü­ñ·Æß¢öÒAüì? `’“““#\ÄsûQ£%~š±Ô!LÛÓV8·FµFµFµÊ%Ê%Ê%T ÈÉ!w†Ü"Ö Íº\ü‚ã(¢Ü§•OûÔ¤‰»¥uNëœÆ… @†r³s³s›Xù'xÛ.è•O×ù4cÝà YþNb¯[*:Vt¬àu€$ÿ3ƒ0‰ªþ¨ú£êD/S|dÂoþ#h‰Ÿ~ô;Ûk—~ƒp†Ï¨Q;£F€œlIÝ’º%U¸æ:ßÏV\ëÝYšë¾!Î[…Ǽ:buÄêªж€¥‰0˜€ä§§§4qñçÄÏõ; åè÷ß{Ü>êûN—¥’|\pløx—kÂ#O‹J‹J‹¢&@ÕEÚEÚEÚ ×ù¾Ïl?XúÑoè¦ÿ|j±B¬=“æ1Ûš¨w? <ÚÊ••++WR“ ºî%ÞK¼—(\áû}£¯«“'…þnL´å^ã³~ü¨Z=_=ñgûýf[OÍv<}äù7>v›œÝ+°Òá`ã7€ÿÒwÿ< G¿ãRëX«oF}ê;L8çžÕžÕžÕÔ$ mK_û ƒ €HÎ’Kf,™!\pOÜ p_$…æ³üíð¬6LÜÏ>wöWƒ>Kí/vÑýCô¾DÒ¿¯Ò”ÈzŸ‡Â#éÒ9¤35 *,L¦ Û¡æÜ=uÉ©‹”£ß)N;zÛÔî —­±]µàP§Åyï6ñF@VAVA… ªëL—3]Ît®ðŸuð¼kõï¶íìcÝÆãѼ¬a¨¾­ùË;7þä·W‡ŽpL×xNýmõ†îZ÷»¾tóÕÈî>ïJ­o5ë­[¡uB8óuÞuÞu\¹ Ðf€UKû ƒ €HNàÅÀ‹…‹ì¢èÿúÞ—BÛ™qfà.;×–oÒ€•GâÞè&züZJ-¥• ª¨úÅê«_®í_ëÿ.åè7ѨxªãÛ&lbtþÕxÌ~K'î*ð´å»_·]*<ÚE•‹*UR™ º6lذaÃá ÿs¿‘o¹¶mg7®[¿äž7g–¿ËX‹ZÞ“J¿“åâ2Êb¶ð8¯ì¾²ûÊn*ÐV€U—¼Ã``*°eþÙ|þ/nÜ@o)´'rC‡¸'ÿ§‹W®U­pTÉX7pàØeV¶=›¸‹UQQ• ª¨¤{I÷’îµ}XÄG'Ì-¥;Œèo¨Õx´–Ó¼~ëf;{ljíŠÿªJœxãדŽ[š¸ºÆ;!Ce€êš:=tz¨p…¯8~mÀζíéìnlÖÍm<ž}]CÜWµüww¬ ÖV|Ûø»QûlVô²—ZǺ]3h®b´pæ ó ó ó¨L@[!–ù…ÁÀT`Ë ¾Õ{fU‰QU7Nóvë(<þ‹%K.–P™ Š¾÷úÞë{/áÚóÒz3«]ÒŒNC¾œû®ÙõÆãìi¢Ýu·ìãUëÐs=Ns2­Ž‘ޑޕ ªË³Þ³Þ³¾‰ GOØêïÞ¶=]ãœç§I#uûWµüw¾ñwƒú›Ÿ2¼$µŽõô1‰.™ÏÐÈÐÈР2m…X~äP-3!ÙEÓbð³¿ëd¡0Q~Q~Q>• ªè+¯4¾Ò®íÓJvçÛfI-4¿é~¿“šÁ]ëÔÕˆÓ|[ý£èŸÖm³ZûhЫ2ðÜÓ§œŒô Ò^×Ôk€|:Ö?×ökqãÛúšUÿ6Ó18Úx<+Ã}—ؼþ.÷~»_Lãï:0Ü­7VjýlņðÓ²…3?;xvðì`* ×Àr¢ºa00Ø2¿üÜ'Å:›øY?錸Ûÿ¼ðø÷ôßÓO*TѼ‡óÎ{(\ÛgÄþ¨°?# 4¾îPÃ[†Z懴&üùÝ£î3W›Æ #^Õ €íR?Õw#yw¬6ûôKuûK¡§K2ïÿªÅ­Æ£ê½Lï˜vø="ò|þæ{Éeêoš{žìÑO;¤«wãïêÑòÓü¯ÔúÙ;…Ñ+}ï ç?ê¨?¢þ 2Òym@,WªwÎÿ æëÿ doIüÌïmlªç>žz€ö aÅ/®K!"³úÔ@E¹Må œîÞ1×~ÍÐHý/æ¾zú§&Â]Õ €]Œ¹ßã-ê äÍy/¥…zº[U‘Å>e}ft›¯]ôèf%·Ÿs¡úÍ/Ÿ»Ë¢¯û™ŸZÚà^ñŸ.^¹VµF¿tÖkþ[c‘ÔúÙZ ~~¨7 ŠvdïÈÞ‘M ñE ­ÃHàg~G¥Ãc¦yØQoÐÌú¢(ÙÑ] é`õ÷÷úó¨z\èS¡Ý!aÄ/Á^¾RÕ`Ï^㓌&Qo oCïšÿ`xLj=©i¾n¡Ö-?‹dÝþ±}ÌÿܳJg§Vw©õ³uÿž°×ß—zª¨vsíæÚÍÀð|˜oZ—¾[¹É¦ßõ»éêovuÔþTÃ`’FÎ&ëïPì·„çÂ7€mK:ßþË·;DN÷Ù0}¯â3ó_m•ÃuçhT«ç«'6³VÆ ã‘ßöi0úåDnè÷äGÏÈá¨a¸ž©ÔúY¾ TW;úpã5ÐyðàÁCø.ŽÜ¸mïœj“j“jCeòàÁƒ‡*>bçÄΉ#\Û¥pà7ʽmÑ¡uª6…Çì ¥`*“<äÔ±JçÀbýiãŸ/þ|éÄ[Ÿzm¹?#f•ßÒGfÅT_›?¿õ:Ý2ÊxÔúY±{¿–ûZîk¹T&Ò/H{]S¯ òéXÿ\Û¯Åè­*ÝŸp ©´ø²Guã¹|êëùº•±ÔްbCøéÙ™Ÿ<;xv0• ÎkƒÆ°™‘‡Æàv~Öü¬ùY-_¢ñçÿùÐ÷QÀT`Ë ¾Õ{fàg=¦Æy»õ ÿÅ’‹%K¨LPEß{}ïõ½—pmyi½™Õ®¶ Ggõ?\æØcÚs»ÛŽoùøèY„ïûj½e ðo%{œçd$œy###*T—g½g½g½p…¯‹ž°Õß½m{ºÕ>~þ6?x¸_êî÷^‘ÂÑ|EK~ëlÐØ}uÏ©¿­þg?Ûø_¤Ö±ž¾1&ÑÃE8óT& ­Ëꆾ" [æŸ1êÿâÆ©Âç©U7»Ìʶ§±ðøkŒjŒjŒ¨LPE%ÝKº—t®íÃ">:an)å»ç¶äÀ¡¯43ñƯ'·g>äwBÞ¡2@uM:=T¸ÂWœ¿6`gÛöt?¿9rª«Eãñh^Ö0TßöãÊ/öûù{)1>~aCÞ0ïeø~ão‰¶Ük|VšìvÍ ¹ŠÑ™/Ì+Ì+Ì£2m…Xäú>Š€ä^ ¼xQ¸˜Þ)Šþ¯ï}àg2‰{c ›hô®¥ÔRjQ™ Šª_¬~±úEáÚîðU°±þïÀÏnœ¶|÷ë¶K…3¿¨rQå¢J*T׆ 6lØ \áî7ò-WÃ6îì^‰{µ‰–T}öWƒ>K÷w Yæ|t¯Éë—œ£NóðµL´¿`ØE÷ÆŸéÙAg\×ÿ•©¿iîyRš}ë,—Q³…gwe÷•ÝWvS™€¶B¬ºäú>Š€ä,™±dÆ’Â…õÄÐ÷EÀÏb¬šYïó°‰o)uéÒ™š¦ S†‰5-säÔ…øYŒ¡N‹ó,Þm‬‚¬‚, T×™.gºœé"\á?ëày×êßÒéI w›gÚ½¿Žk‘í¨D×_¤ÜÚõÖ­Ð:ÑÄÅ·½ë¼ë¼©L@[!V-ò}E @rŠSŠSŠS„‹ìÒÄÏõ;@ü,Æ‚cÃÇ»\yZTZTZ5 ª.Ò.Ò.ÒN¸Îð}þ`ûÁÀÏb´5 Pï~@8ç•++WV®¤&@uÝK¼—x/Q¸Â÷ûF_W'OjéºxåZÕúo5}ÑÀÚøUÿ뺹G?í®ÞÞõ&ú=ÿ¶úxÔß¡Rî^«oF}ê;L8çžÕžÕžÕÔ$ mK_û }E @rîTÝ©ºS%\pÍ#õÆkë«Êýtm¹¥œ“reö¡pÎÏyŸó>Ç'©@åmÏÝž»=W¸Î^óÙn oU¼´”Çd­£gÂÙÖPj(5”ÊÃÊÃÊÃÔ$¨:WcWcWcájóLd´Ošªt¦ªòÁå}3B"œ· g{uÄêˆÕT# mKSû }E @¢|õ}õ}õ…KðµAã½sT+–òX»bBŒÿ+b^}|}|}<Õª®ryåòÊåÂu¾ç!ëíûD¶­;Æù:ɪ®‰6Rm¾Ú|5ªä!㕌W2šè¤r: Yãè@§Ùºc¨¥å`ãÏ…³}Áú‚õkªж€¥ƒÐ÷QÀ$*gqÎâœÅM\úê‹~¿Ñ·Ö˜?kØ—•ÂyŽß¿-~ur¢°TX*,…kþûEyìj n[k´ÛX¤?H8Ï%z%z%zÔ!ÈÃ5å5åµ&Þðµ?nø¼nfkU‘—|nˆ½]«tR:)¨F@Û"n[„¾b€HTõGÕU$¶@×™ð›ÿšá§ýÎöÚ¥ß œá3jgÔÎð-%•-©[R·¤ ×üA‡§1É$¸}úqÆ Â:û"±W/ ·n7ܦ@N'''…k~éµ°Ñž£é7Ÿ~\SáŸaÛÄ«—e:Ët–éP) þçú¶0I‹É‰É‰É.Ö¹ý‚‡(ŽÑ ?ÍXê¦íi+œ[£Z£Z£Zååå*ääÎ;Cî k„f].~Áq!îÓŒƒÊ§}j’-œÛ´ÎiÓ:S ?¹Ù¹Ù¹M¬ü¼môʧë|š±nð„,'±×-+:VðÆ:@€ÿ„¾‹€¤•–– nDõåê«búAcüdãèÖæÆÉ¹ÝZ´µhkµr•<3yfòLáú¼/1Áô!î“3Ÿÿ©ƒC¸XÃY½¾z}õzjä§vRí¤ÚIbëÿ%‡·B¼>¡÷|²qSe`w‡&n©0þÖø[ãoQ{é ~v}Ÿ00+`VÀ,áR¾QgðDûs4Æ;0ú9·¢—×Ö©Ó©ãRZ [å“Ë'—OÛâÜâ`L û¸ãEt‰ñ»M´>ó}æûPu oiqiqiqÂ] ÔÂ2Àøs:ÐÇï^ã[+öZålùÙò³åT@:€[¡ok! Nõ<ÕóTO±Åýæ–ÈQ>Ëh’[2ÖûÇFûg™MÔë¤uY8“9r:ä°/@»˜ž˜ž˜.Ü ú+Þ¸lx@·åãäâíïÙ¬{•r«ó­Î·¸ø3ÈÜýðûá÷E¯QxcøOý{Ó¶|œ;ÛusŸ áLŽ;;î츳Ô@j€Ÿ¡ï³ÀýTFôÜè¹Ñs… }ÄëÖßš¬§InÉøe¦Ï"ë­Â9ìeÚË´—iýÏõ?×ÿL¥@{pký­õ·Ö‹5QQ·2]¬Æî6?΢‡b¶^ºQ'Í&Þ¤^ý¯ÕÿZý/* Ú­—¶^ÚzIlo½ófô{¾eô¤ÍÇ5Fg»‰Íá•Ì+™W2©4€Ô?½Ù;²wdú¶.`*ã†Í ›6bKÎü!GCh˜EéY£O¹;‹ÍÞÑþGûíO@{³±tcéÆRÑËA÷>8×A Wld<ÕÆd¢pÞº½ÚíÕn¯ÖýP÷CÝÔ´#J¥‡[…[…[ Šëoçgª 3½ìó«Ñ£|‹Ä^“,Y³4†HðÓ«V?¬~¡oë" b²]³]³]Å6ƒ3ŸŽÙéFóüèxÓ/ÒÚ'IlÆ’¢“¢“¢©+h§))ù.÷]î»\¸G˜å*Juf8§È$î}t?hµN_Ñ7©ë×;®Gq@ûtñí‹o_|[lÈŒ4Ân9]ê_Æ÷âÍDZ¼j\#œ1mmíºÊºÊºJª MÀ­åÑïú>=`ªæŽòŽòNXLXLXŒXS]Þî< ˆFúA¿˜2¿=ÎÛzëöÂY2l0l0lxPø ðA!eíY¹F¹F¹†Ø®ê‘>n•‘÷Üq§W9õ%ú´îÛo¬oˆÍUj@j@*­)@™Õ-«[V7±ýâ€rØV—$:ÖÆq‘{¡¥­Ø\•––Ò±$ÒD @%ÕÔÔˆµˆz]ƒ5»Üiã“Ü>[躣ÎúÖÛâ›J±Y*»Rv¥ì µh”w8ïpÞa±]cúTM“èöýNݶs¿í@±ù š4%hJê†U «¨%€²AÙ lˆ›7'nŽØÞQ4xTŠëÑöý./÷íl]'6?[†o¾e8¥>`H0VæRæRæ"Ö.vËîºNÓý÷á)ÚÑg«ïo‹ùÖ/-d¬Ex£¢Ÿ7·?`Àžú­V[­¶ZMlØmr¤I×¹§ƒ ÚOô;yìwlDo¦ •¯•¯•Ûð¶ámCêð¨™2d:F8F8Fˆí#‡fØ×O{‹~¿¨PaýºØœÌûlÞgó>£~ª‚ÒD @åÅÅÅ«7ë¬éØjy·Ð•³#æûè9L2tÓ}ã~Ó²MË6-£fÍ›£6GmŽènâòÖ¨‰†ÉÉÓÍUØÉ;úºšiaõFó¯1®î¸ºãêj æ–î-Ý[ºš¹š¹š¹b»ÉÖ5CW8þ,>0v‚ÿ†™+÷X˜ˆÍCìÂØ…± •žJO¥'•PÀ&`2Q˜P˜P˜Ðü[´Ûý‚¾PDʯ‘þõȺE6îkÕÖª­U£N-²Q¹Q¹1>*>*>Jlg1Øoî¤5äý‰ûìJdýÆŸ>ääðÚ”¤l3Ûæ÷Ö !B.„P,€–øý›ß¿ùý›æw–¹©®ßõ¹Ù ›ãJNë^*}Ž˜ÜÕO;÷ðÍá›Ã7×'Ô'Ô'P-ÕB i" +‡mÛ¶i¾©žxÃÞßôèí™Qû|ßUñOOo\¼Èëc«óÍŸïf÷Íî›Ý© Àc;¯<¯<ŸÒ5¥kJ׿÷š± —÷qQõè÷ý{y·í_°øÐ5KϾùó½\q¹ârx\•Z•Z•Zfffb»Œ•n÷Ù:Ñç4Ã&xF¨zôûý±×;;•5¿«N œ8-°¾ª¾ª¾Š ¨"`H0:.þÜß\ºÑ6Ç¡Go¨V ý³öÈ‘®zº ];iœmþì ,,XH=ž^fififióûŽE‚ë=Çiw¯µÍP•ÐwÎ'§,ÿ yyN’Ù®æÏÎÝÖÝÖÝöææ››on¦Oã®×]¯»^#¬FX°j~÷Y8ÜÃÅòƒ‡&tó+S•ŽõgÇ{›Žz³¯§Quóg·dÏ’=Kö(K•¥ÊRª º€!MÀd«:¬:¬:l䤑“FNj¾í4¬»\+ã@à°É.#Âcõ/—Z }<}ôewï€1f 5.æ/˜¿`þÂ¥‹—.^ºH ZWÑŠ¢E+Zò+×%cüz¸M°÷®ÝR }“—Û©pS·äLŸ[r.É“;&w|8åᔇS¨@«ñPz(=RÓSÓSÓ[²¥[ Ô³=s7%ú’Ÿ‰Ô:Öëã¿ð®˜éTÞ;£%ç²ÿÐþCûQy †4»\e®2÷kµ¯Õ¾VSo±µÛ½d7±Þ(ö ÿ´¶j¡w, ÖPl±u5xIwDKŽ9E7E7E·.¸.¸.˜§ðìT-ªZTµ(Â-Â-­%;”µ¥ßWÝ»Mx?kM?û¶ }Â~yÓáÄÐéñ ¦v-=pÀð€áCžqÀ³Vܱ¸cqÇ–ïP…º6ô5¸>oü&ïûmÕ±ŸzCßÍòÍVu=W·ä˜ƒîÝ º×x/džq€œCš€´#×;\ïp½ÃèìÑÙ£³[ÞZ{_5ñÖïöõ˜€{¯KÞåõYë¶ÍôˆØïãþ]X§ÂfÔ;ӻ¶üØì*ì*ì*N›ž6=mÊó øçåÏ;žw\ý1¹M[Ü#%Ê(ã+íäÇ2­|ÿà©N¹Wm _ÏŸóœYº~l¯s]Ï´üØâââjbjbjbx~ÿ¤û•÷+ïW~âû‰ï'¾-ß¹ºÿ õ’füâX¯YV§Nv }Ç}iëv¬õûb—øž^Ðßtú Ålóƒ»ïoOÚž´=IyLyLyŒg ?À&`íTñ¼âyÅóœýýýÕŸˆÍ[ú;u{½ó±}™™Í²}>ÎÖI9“†t²wQÈKΉùéÃþpÉØ¿"¤Èùöw–AV ÓÕy~Óm~û Ýɧ·‡û*ãõÝŸìßÕÈÔÈÔÈÜU°«`WòeåËÊ—y6m«vUíªÚUé Ò¤/P –½Žt³ö·™ôKÏ‘5kô·Uß¾iQ+Ö¦[yFǬël57bèšÿZÆÙµ$ÒâvÐØ„WL“\¬FiNÑ‹ï±Oóü“ý»¡›B7…n*[W¶®lÏ&@ ®þvõ·«¿ÅeÅeÅe=ÙîÖ}›VgÍÇí÷eÏÚE1ž{¬"6f ^cÿðû‰¯•9<1l±K\^ú0›NÁÙN¯dfŠ²Ëø(ËÍ ¯õkë{ïí1ùiöôÏüüÇϼ×å^—{]x6òF i"о]T^T^<âpÄáˆÃð{Ãï ¿§.IЉЉЉ{í]´wQ}z}z}:O@šî§ÜO¹Ÿ²Ém“Û&7í‹Úµ/JsoÚij§©ÊËËyÖRv%ÿJþ•üDýDýD}u K[›¶6mmÍõšë5×yÖí0¤‰þ¢byÅòŠåiæiæiæ}–õYÖgY[5Ï‹v.Ú¹hç¥N—:]êÄóP]§–ŸZ~jùLË™–3-ÛjWõùØçcŸ·>·õ¹­ÏÕd×d×dó¼TÑÏž¿ï—û¾ùœóùçÇâGJê6Çöl×oi×ÕûÝtô“½o?ã’gvuîe77øÂÅ7L?qÇ'•ÏXžÿ=ÿz~›üöù}Õ³vºößáÖm‡=üüN÷_ñh÷÷™8­g¯—Ç?qwyŸOzuÎK}ïËÿž=¿M~ûü¾j‡Æºgë¸SÙœs;•ßÖcÈôLJ١ßÃîIùÂ趃ϼ0{ÿЭ‡ÌÏÿž=¿M~ûü¾jýŽ~µ£ßME @± €ax­Ëk]^ëR¹¬rYå²ú7QûOØ}ŸÌÛbÊœAñÊß.|}gÖ¬©®9rCùc柯uømße•Ë*—åÇåçK©ÕN»¹åswß§ÿg¿1eÎÎÓný×Âׇ ›=»ºzCùcæŸ/µC1j§ï‹{´í½G2uj¯~|œ-ØqÜW¬XQQ±¡Æü1óÇÏ¿—Ú¡({¶×uxdÞ£^¯üíq§îñÌš5&Œ¹¡Æü1óÇÏ¿—ÚA¿£ßA¿£ßM @± €áKú¬ßgý>ë7mÞ´yÓæÕ§Mê´¼ýø³æž:¥ï ™kVOY±a/Ôk\X=udE>‡|>õ™y~Œùñú¹óÕ×N‹²mgµßìÙWMé;lÀì ª§nØËõ̾ zj>‡|>j‡Ò¯6·uèßü–£:LmÞ«åÇ­˜QÑgÃÆ½õ[1£¢O>‡|>j‡†°gkõN‹YsOuï ™kN8pdņ{ë5.œpàÈŠ|ù|ÔúýúýlX`ŠM ëlÕ˜UcVvÞ°ó†÷on¶¨ÿè²§«¾{ê.Ç®™[=edù&¸R×8·zÊÈò|nù<×~,ùñæÇî`c×N›É=¿ßtyÛÉ÷ß=uXÿÙß©ž² .‚Ô5öŸýê)ùÜòyªJ§vºN°GëŠ Çßÿq¿ç¯8jÅÔŠ^› ô­k¬z—c×̰ßÈòMúÖ5ΰßÈò|nù<Õúýúý¬?0Å&†u°üÅå/.±>¿ õ˜¾õàY%tù£c>çú]¾Î6Fí Ì.ÞwúÖ%tù£c>gµÃ¦­ñSg¿ÐçÏ%÷ÖcÌç¬vØÔ{¶ƒ‡žUBqo=Æ|ÎjýŽ~ýŽ~Ö‡€bC½3ƒ™Á̵·:—=ùÈí?ùh›Çǘ߰.…ÔóùçDzöãÍ×ĹÁú×N÷Q‡|tò‘Cÿ2óŒÇÇ5¬K!5Ç|þù±¨¾šÚqÿéê2ý{ƒ~Ût§ö +ú­9æóÏEíðUíÙvîºý'msòs#æ7¬è·æ˜Ï??µƒ~G¿ƒ~G¿ëJ @± €á Ìß|þæó7_{{“ Ÿ1rÈ ÷"H]c~\k?ö|}œ'|¹ÚÙñ¦KŸ˜1²á^©kÌKí°ñjç¤ëçTö½©á†¾uùq©6æžíê!76Üз®1?.µƒ~G¿ƒ~G¿õ' ØÀP§µÿ&oÙ·[_Óì7Û-ˆ÷T¼K!5Çüóãõ¾¬í4»§UËÖ×ìÜì–Ñ ââ] ©9æÇ˜¯Úaýk§e“Öï6;îüyÉÄ«‹ýÖócÌWí°!öl-º5{çÍvÇž´Ç âE¿5ÇüóãU;èwô;èwô;°v`ŠM ÿÅÚ?¿§â’þÊÂwïKŽ>¼Ø—BjŽùñæÇîó~ørµÓæüžÇöï´ëÜéS’cŠ})¤æ˜o~ìj‡/W;]ÇøVë¾—öx:,oSìè·æ˜o~ìj‡/»gë8®,|÷¾Ï>¼ØÑoÍ1?ÞüØÕúýúýÔE @± €á?¬³j̪1k¿ò¯«?¢kã¹RsÌ}í—Eò5t.©Ú—B†ž~×ë‹o<—Bþã³N¿ëõÅǯý²ˆÚQ;uE¿“>ýÍ?ËÙx¢ßšc~ìkÕŽÚ©+úý×U'ýqDׯýÖóc_{ ¬vÔŽ~G¿ƒ~G¿Cc& ØÀð¹Ïú}Öï³~ÃÎvÞ°óêz´Æö[ðkÿíøºÞ$-_Ã|=Wj'C°Æö[ðkÿíøºÞ$Mí¨ÚoøÜØ^õ»öW×õ¦ÐjGíÔ~ÃçÆöªßµ¿¸®7…V;jG¿£ßA¿£ß¡1Pl`øÜ´yÓæM›W×oª6†Ï¾úrŸ•U׊åëé¼R;ᳯ¾Üge©Ö^;á³~¿Üg«¾hÏVüÏúýrŸ ¬vÐïèwÐïèw &0@©Y0oÁ¼Ÿï»®¾÷ê{¯¾wõ>«÷Y½•ùrÀ°æµ.¯uy­K]ÍI6|ÆÈ!7ºüQט¯O]«—¯­s¬qÖÎŽ7]úÄŒ‘.Ô5æë£vÔNm']?§²ïMâÞºÆ|}ÔŽÚùo{¶Cª‡Ü(î­kÌ×Gí¨ýŽ~ýŽ~r`€Òñé!Ÿòé!uí„Á_Ž˜Æíí5o¯y»rYå²Êeµÿ[¹lìÉGnÿ‰Kõ󵪽†ùÚæëìtk<µÓ}Ô!|¤KõóµR;j'7âþÓÿÔeºˆ·>c¾VjGíüÿ=ÛÎ]·ÿDÄ[Ÿ1_+µ£vô;úô;ú”Žš¯ý];apý €iÔß¹øÎÅwÖõ_É+—\0â\;ê3ækU×Jæëì|k<µ3ô —\àbG}Æ|­ÔŽÚùüBüÏ–·-ÿ›p·>c¾VjGíüÿ=ÛÉ'8W¸[Ÿ1_+µ£vô;úô;ú”Ž<ÐÍÃݦõ& ^;0Uû5í×´ïör·—»½\û?ލÇô­Ïr™c]Ç|Ýj¯g¾Îùš;õŠ];³‹÷¾µËë:æë¦vs팟:û…>ë®ë˜¯›ÚiÜ{¶ƒ‡ž%Ö]×1_7µ£ßÑ¿èwÐïèwhÌÀ¥I¼¡€i¤–Þ¾ôö¥·×þo¢bQÿÑeO¯©ªž6r° ëÝuOX1«¢O¾†j§ñíÙ:ž_öôšª £Gè®óX5aôÈÁùªýŽQ¿ƒ~G¿Cã$(}Âàõ!¦‘ªlRÙ¤²Iíÿª¾{ê.Ǻ´±>c¾†ÿå3~šT6©lâÜ+jí”·|ÿÝS]ÚXŸ1_CµÓØjgÂñ÷ÜïyQîúŒùªÆ·g;¬z—cE¹ë3æk¨vô;Fýúý“ a¯+0ÎÊ­Vnµr«ÚÿtZÞ~|‹YkΪ;²»‹ë5žU=vd÷|=k¯s¾þÎÃ"ÕN‹²mgµ?¬ëì}«Çº¨±^c×ÙûVÍ×Sí4†Úis[‡þÍo¹b·ã*: q×kÜmŸŠNùzªÆ±gkõN‹YkΚ0hdw!îzgM4²{¾žjG¿cÔï ßÑïÐØ€.ap}€itîXuǪ;VÕ.þ¹§Né;h榺ˆðûhµÛ'5çÓÐ/‹äëY{óõw©vú=ûª)}]ÎØPc¾žj§1ÔÎQ¦6ïÕ²!®ç4Y´ï€ãjK)Ì*_OµÓ8öl£î4S|»¡Æ|=ÕŽ~§ÆOö{¢CeÅåç|Ü÷ðò´ïãeGµ™Öê½fY÷_v^Óò=ýúýlX`€b×ELcò÷5_ó÷ö×¶¿¶ýµµ þÝ“†(¸¡ÇÀùzÖ>¢|ýóŸ…S²µ³ë¼é7%'¸±¡Æ|=ÕNc¨K{=–— €7Ô˜¯§Úi{¶Ï>Bp»¡Æ|=ÕŽ~§ÆK+O|tû+×~™F¿ƒ~G¿Š x„Á5 €iDVM\5qÕÄÚå½ÿ„Ý÷éðȦ½|P¼8óµ­}\ùÏÂ9ÙÐk§ÝÜò¹»ïãÆÆóµU;E­¾/îuж÷6Ü·\.Í8óµU;Åݳõ¸®Ã#"Û1æk«vô;›vìyG׋ZŸÏù»çžðýž¯¾xúÜ»ÝüÞüôýá‹J³?ÒïèwŒú.0@± ƒÀ4"‹ŽXtÄ¢#j—ô¼-¦Ì €7Ƙ¯míãÊÎɆ^;ý/8û)s\¼Ø(oŒvÁÙoL™£vŠZ;G2uj¯~àòFЧLÚ«ŸÚ)îžmÔëƒbaíÆóµU;úM;ÖœsýêwÐïèw`ã43 ÓˆL¼gâ=ï©]Æo¶\PµÇ@ðÆóµ­}\ùÏÂ9ÙÐkg禷쿠ÊÅ‹1æk«vŠZ;çߟœ5ððÆóµU;Åݳ;~ÂÚ1æk«vô;¥çý‘~ýŽ~60@ãÔxÂ`0Èv·nwëv·Ö.ÝÿêÉ]*¯-Íø™Í¶û®g½÷~wÙ§[Öy¯–A›i­Þk– ZÞ÷ÿʺMÚé¤ ¶_ôNÇ`Ù^CKó‚H¾¶µ+ÿY8'zíì6cÖOžÜ¥Ô.%ìöú'=uHß¹§íõýÚÝS>}÷þ-&·}«ã·š]Ùrv«÷ZßÞmfï[¶k¹ÿfÇ3xÊ WäõþÐÿÍ®KzŸºík­ÿ§õÏš¿Ùýû¶Ùú•Ãïî}DçÍuÃgí´ò³§.¨|±4à|mÕŽ~gÓ†¾ åÓõ;úMüÚÙIg0%lóà‰{½Üâv—t|²ÙC­µ~°Í¤žõß½gÓ17Ÿyóгîz{ñYƒûO÷@«šG¤ßšÀ; Ó(|òÔ'O}òTíB­øF¿¥esJáÂA]p«ù-/ivÄÚÿ»éþËÎkZ¾÷»{ï»oèüÒ¼,’¯sí™ç?çgC¬6Çöl×oi©] ÙuþôŸ$—¶ûnùÿ;§þOØý²3¸ö×¥çë¬vŠT;]ûïð@ë¶¥—^|Ö“Á «z—í6¹,¨ÕŒYrÓ'Ûï_šp>æë¬vеgë¸Sٜ҉Kó(÷üy;­ì¹eýkç°‡z}Ö©úý9'Ý4|uiÆÀù:«ýÎW9ö˜Óå±V½óñ?ž1_ïødËÑ5ÿµ”B¿£ßÙØãÐê™M—¬ìðì®çî³EýŸwvüݤûfžVûëúÈ €¨©xa°˜ÆQºÃW_=¼vqžÛéè'{ )å8wiå‰nåcÝñ­Šä¡?ßô`ùì³ËŽ<½ûuÍš4}ºéüÖügž:¤òÅR» ’¯síãÊ.ÎφX;]WïwÓÑO–Z\úDžl>¶ÅæÝÏ>ôŒ“W<á»ÛN»zЪÉmf?×kè±.8)ÿMùšG4øè)`y©Q¾Îj§Hµ3ìùãçwº§$‚ÒmVl]Ñ´ß×lû÷š3Üáo{?ØöÃú_» gÛSºÜû­~­¿ýØ5ïôx¯ßнþ½í“u=O•Zœ¯³Ú)Öž­ü¶CJ'(ý~Õ®Wö>óó`ZóWše—}ç´×ÑtÐï*’e]_±ëæsîßûñØëÕ®ÿn7忽–±à|ÕŽ~Ç[@ëwÔN©õ;ûïõÊÁwÔœaçÍöÚô‹ý;Ÿõìõ•ås®<î§÷;ùŒë¯ùv}BbýäÀÔ¹K,D,¦QxõáW~õáÚ9ýñKžÙ¡_iÀÍßh^Ùô‘`à´«÷¯yA¤æß±çõ•ƒŽ,ý·GË×¹ö<óŸ‹ó³!ÖNï[ÆÏ¸ä™Ò¹p0`Å…ãoýùäîjöxóÊÑÅÃî\“ÿkíËùWò7….ÍK!ù˜¯³Ú)Rí_ñh÷÷K!"=ê­Û.ì5¦æÜö;ð‹·ûMþ¯umd÷Zzê´Î–~œ¯³Ú)Öžmø˜ú•BDúZ“c¾·û7›¿Ñ¬CÓGÚžÖbUóSV\wä˜ÝºÖuû|þ̪سçÐÒóuV;ú°~Gí”N¿³ã=“ÊfÌ­9·¾£'t¸â­š}Mm=ï:räÙKJ?Öï°i €¨† €i–ŸºüÔå§Ö.‡¼¹IùÂÒ €OøÃè».©O [ó^£NÞm~‡a¥vA$_çÚëŸÿ\œŸ ±vvuîe77) ÿ:ìÕýÏÊçÖiùžŽîPŸK5¨í-ûî’•Zœ¯³Ú)Rí3qZÏ^/—BD:àÙ}÷lûïÏ/q–í6¹,¨×'ìŽxöí.ìxf¯®-_*å8_gµS¬=Ûþ—”/,…ˆôʧwíÕûó_’˜rènÿêóV}¢ÜOö;åç•ù§ç·?cäŽ'wûs©Àù:«ýŽX¿£vJ§ßÉ_é›ÏªCÛ{W6¯O§³Ûë?žôÔ!mìñf¿+K9Öï°i €XW + ÞdpS(ÑmÓO\¢püÞ/òõúÜwᤩ/TtÌïUóÓ³Jç‚H¾Îη"øÂÅ7L?±t.´ÎºïÐç€ÏçV㵿_ð™Á½§ý-Ú{ðÊöðÿ™}óê_~Tjp¾Îη"ÿÄÝå}>,…ˆ´ÃÇÛmùH>«qÛßyBï²úG¹¥ÿ à|oÅÚ³|Æà’€Çž×çÄΟÒçâ…‡>äõúß÷?>™õ§Ï*[Zjp¾ÎÎ7ýŽX¿Céô;m&õ¼¨ÿîù¬j¾ïQ}î[ú¯ÖïÇ‚y æ-˜'†¯HöþŒåCæ—füÆ’ùów³>÷}¥óC£†Íª}t¥sA$_gç[‘ìøà¤ò%ñ‰¹»=2kÕ“ÿñiXCFÜôÔ#——Z”û%ßðíÁIå3–;ߊä¤Wç¼Ô÷¾MŽ^vÑ3O•ÿ¡æ¬ÎYùèKæÖÿŽýç]ßïýPÍG(µ8_gç[±öl‡n=d~)D¤;=Ò±eÙ-ëDݲ6KZÿÏV*p¾ÎÎ7ýŽX¿C)ô;ÿ¥Ói}Ó‡×á]‹\rÁîS_¨}tú€¯ÞÇs?žûñ\0|EJùÀMxü§#ž¬Ï}?¸fIŸG×>:¿ÏÆS:¿?ä7?˜<ÿ?.· ­žÙtÉÊbÀ~#¾xJáÀç#>|࢚³Ê#áú?Âßè¼þ¯×|¯fãïÙJåÀe×¶Üìãõ?¢šãÀ4†~Ç+€Ñï¬s§3ûæÕ¿üh}:n¼z—{ϯ}tú€¯^#zpþ™ þøóÕü™Ý|vóÙÍk—\)pý_üÚ»\¾û^ù½Z<Ûbó¦ýÿKý3±œ™ ·vJç3±†ÎœqÙ’>5ç¶ó‘·þÕ_‹×õ™XÎ̆[;¥ðÀ—/xnþN3kÎêÜ#ûÉ€gëÿǽ8³UïÏJ9®ë3€™ yÏV*Ÿ<`ëv·õù¬Vì?¯|Åï8*Úí“/7–Z\×g;3õ;`ýŽ~ç«w~sê;v®9«u}ðÀò‹®¹ãÉR€õ;þlÚ?µÏ½i[NÛrÚ–VÆüñÇŸºþüêâ_]ü«‹'l>aó ›×?úÍo߈>¾J¯>üêï>\»ð¦?~É3;ôkèŸüØAw|«"Éï5`ë^eÿÿ¢dé\É×¹öú;3níô¾eüŒKž) 5ç6è.ú£õ¹WÅO®»ç¯ö:ýØO.ìÒkéñ.úá°¦³·©Þ¦tŽ+_gµS¤Ú98¾âÑîï—BDZsVã~8½wïaõ¿ïç^ú¯n¿/å8_gµS¬=Ûð1;ô+…ˆôW¶ÿG§íóY-:ó ®ß.µÏñ]Ÿ1_gµ£ßëwÔN)ô;µß:tס›8ä„ç/~¦”`ý›V]¿|`e¨)n¯¾÷ê{¯¾·þ¡o~û¯>ô­ILã(Ñ᫇¯^»Ïítô“=†”f|ÂF¿ØuI}î{Ä­ûlÑyH~¯±çí{iç9¥ç묩+Rít]½ßMG?Yšp—ßìÓdLE}îÕõÏûuôìÏߊsjï?íx_©½8_gµS¤Úöüñó;ÝSjpï)Ãö-ûS½^=<âÙ·wº°Ó’>—¶Ú¿”à|ÕN±ölå·õR éwÏ|`ÏWóYzÅÀͺ}³>÷úhÂÉïxr辯m»uïS·}­õÿÜ0|Øè¾K-Î×YíèwÀúµS:ýNÍYuxv×s÷Ù¢^áñë?žôÔ!e_ïÕ@I¿´~‡MK @»ÄúÖ$¦Qøä©Ožúä©ÚYñ~KËæ”fÜüæ•M N»zpÿºîõ‹=¯¯tdÍ{-ùùzì\VjDòuÖÔ©vÚÛ³]¿¥¥sá ßÓ?¼zÚç“{²ùØ›ïø»I÷Í<­®Ûî?eÜ­šoÝzLY¯üNÛýúÀ};¨Ô.ˆäë¬vŠT;]ûïð@ë¶¥‘}ôí»÷ú^íÖuûÉ3ž¹Ó[Ãçž¶}—õ¿×¦óuV;ÅÚ³uÜ©lN)D¤Ïüóˆ?í:çÿïÖšuhúȯn8ð¬V®ý^—|{ÈæÛÿǯMäSjp¾ÎjG¿#Öï¨ÒéwvX}Þµ·Ü]snyï³ö{mß㨟Sç'Öëw ' ¦b„¾5 €iD¶»u»[·»µv‰þûWOîRym©À=æty¬Uïüï“v:é‚íUíqÇ“>òÄzí´õÙeGžÞýºš·uònó; +µ×þæk[{ÍóŸ…s²¡×În3fýäÉ]JáÂAí·GËuŸyèg§ü"«´ò ¯XöÓÿëýÀø/Ý·å.vþ¼ÙkqHÛÃ;Œ.µOÎ×Víµv.ÿÇïÚíôà&J·Y±uÅÙ¶îð·½lûÀa³¯û^Ï=Nérï·úµ>¼Åõ{÷<¹×7µmߦ㙽º¶|©4à|mÕNq÷l§¨¼¶‚Òÿò‰>Ží¶×½—íó쎓ópwþ}<¶Ó%GÜÚû¡ÎÿñºÀãþ¯ß ]»–Ú§ÿæk«vô;`ýŽÚ)¹~§éìmª·é¸ùЯíל[çE#n?´ºÿ¤³?˜–?{å»s®ì÷îY{^w]Çcwë5jçÏcìI=/ê¿ûçw¸«ÙãÍ+K'ÖïP À/ô­IL#2ñž‰÷Lü/oùfËU{ ,µxñ™§ y½íie½šŸ²öÿnvè°ýQmZ¾±dþüÝß,µ8_ÛÚsÎÎɆ^;;7½eÿU¥öFÐù›9×空ùô²­Û;à’ vŸúB©ý.|¾¶j§¨µsþýÉYß)…¸ô»­–ŽÔ¼ÇäÁCÛL©OÕl÷›¯k='†K3Î×VíwÏvìø=–B\š¿¥ó¸^ýºw™_ÿñ v=¯ïxà‡|׈©¥çk«vô;`ýŽÚ)Í~çó»™½÷ÙG|·>Ï8moØw—lÐŽ—ýæGoä_©ù+°úÈ €§b‡¾5 €iD±èˆEGÔ.Ýy[L™3(.µ¸æEã>9踮cºe÷j´þY«ÁÍn,Oû>^vÔ•OŸ6³wÅ?§;¿¢Ô¢ß|Ì×¶öšç? çdC¯þœýÆ”9¥ö¹¹Ÿ¦éäñ§^rCÛñ~¸Ëÿ6ÿ×¶;¶[Ñüô6—n{÷¶—ô‹*ÆlwÎÝÇ=¿ó›Sßy´s©Í?óµU;E­£N™:µW¿Ò MóY²Õ•»ôغל¡ ˦µ®n÷Ló[¶mӡل펷þÞ¨SÏk»+/»è™§ÊÿPÊo¯­Ú)îžmÔëƒâR{Ûäü•¾cÏësbç9ÝYÖ©å{­æ7ïÝìˆkÚÚfòaõú¬Su~›š¯.µ£È×VíèwÀúµSÊýN>«?¿`ùm·uÞl¯ýG¿Øú”nßèõ\³‡Z jý`þ‰¿½†;á‚“v;üG?ѡ汔UôŠ,X¿C)4'ô­IL#²j⪉«&Ö.ãý'ì¾O‡GJç’Çú½tÆ|mk¯yþ³pN6ôÚi7·|îîû”f€ZóÉ—û×M;æk«vŠZ;}_Üë mï-µÏÍ­×õõšÿZšŸþ›¯­Ú)îž­Çu)µè´ö›B×õ¯¥9ó|Ì×VíèwJ³Òï ß©/Sóëù›Bç_i¿cÅA{Ž/H¿C)[ã }kÓ˜ü}Íß×ü½ýµí¯mÿ_>¥éÝ“†hX—JyÌ׳ö:çëŸÿ,œ’Ũ]çM¿)9¡”cà†5æë©vCí\Úëé´¼¬4cà†8æë©vÇžíÄó†(å0µaùzªýŽQ¿£vJ³ßéñȧŸÑº,ésá “·u\åyo×ÿ¾–ïùèèÏ_Üù/•=¿}M)ÀúJ‡ x„¾5 €itîXuǪ;VÕ.ò¹§Né;h¦ jÌ׳ö:çëï<,Ríô{öUSú n7Ø›¡=ûª)}ÕNc¨£:LmÞ«¥àvƒ½ùs‡©Í{µT;cÏ6êÞA3·jÌ×SíèwŒúJ³ßé;zB‡+ÞÊgÒjtçu?m×ÞÓþí½ö{U,¿~ç¹3š~Ø|U‹ðó£è|Ö³×Wêw &0@1}ë"¦ÑY¹ÕÊ­VnU»à;-o?¾Å¬5gUÙÝåŒõϪ;²{¾žµ×9_ça‘j§EÙ¶³ÚÖuö¾ÕcÅ·ë5v½oõØ|=ÕNc¨6·uèßü–+v[1®¢“øv½ÆÝVŒ«è”¯§Úi{¶Vï´˜µæ¬ ƒFvß®×xÖ„A#»çë©vô;Fý¥ÙïìòÛZuXË]: ìüaUþöÎC>»¥Å‚s†îqרìáò9W÷ÓÇ{M?îÆ _i1¹í[¿•ß2ÿœà¡Õ3›.Y©ßšÀ —з>À4R•M*›T6©ý_@õÁwOÝåX5ÖgÌ×°öÚækîÜ+jí”·|ÿÝS…¸ë3æk¨v[íL8þþû=/Ä]Ÿ1_CµÓøöl‡Uïr¬w}Æ| ÕŽ~Ǩߡôû|Í®l9»Õ{õ¿ÄÙâv—t|²üÙ+ßse)¼ù³~‡R#hX„¾ëJL#µôö¥·/½½ö‹ú.{zMUõ´‘ƒ]ÚX籪zÚÈÁùÖ^Û|Í{E­6“{~¿ÿèag_T=M”»ÎãÀÙUOË×Pí4¶Úé:yÀ­+®8aŬŠ>¢ÜuOX1«¢O¾†j§ñíÙ:ž_öôšª £Gå®óX5aôÈÁùªýŽQ¿CCéwò™tùÍ>MÆTÔ~Mðç¯÷²Ýw{•u{ãà'>ºó›Sßy´s)D¿úJ“ ô }ׇ˜ÆªýšökÚw{¹ÛËÝ^®ýDÔcúÖƒg¹À±®c¾nµ×3_ç|ÍzÅ®ÙÅûNßZ »®c¾nj§1×Îø©³_èógùº©Æ½g;xøàYÝuóuS;úý‹~‡†ØïÔ t‡6ÿáÒôý!#nzê‘Ëw?ý'É¥uÝR¿µ €J“ÐwCÓ¨-¾sñ‹ï¬ë¿ŒV.¹`Ĺ.sÔgÌת®•Ì×ÙùÖxjgè3.¹@¬[Ÿ1_+µ£vr—ýlyÛò¿‰uë3æk¥vÔÎÿß³|ÒˆsźõóµR;jG¿£ßA¿£ß0@éún `··×¼½æíÊe•Ë*—ý— ñcO>rûO\ì¨Ï˜¯Õù,Ÿe•Ë*—åëìtk<µÓ}Ô!|¤‹õóµR;j'7âþÓÿÔeºp·>c¾VjGíüÿ=ÛÎ]·ÿD¸[Ÿ1_+µ£vô;úô;ú”ŽóÌ[0Oè»a €aÍk]^ëòZ—ºþCɆÏ9äF—<êóõ©kõòµuŽ5ÎÚÙñ¦KŸ˜1Ò%ºÆ|}ÔŽÚ©í¤ëçTö½IÄ[ט¯ÚQ;ÿmÏvHõE¼uùú¨µ£ßÑï ßÑï@N P:>=äÓC>=Dè»a €ásÓæM›7­Îß1y³Ý‚xA.Ôó5©kÅòõt^©›Ý2zAìòGÍ1_µÃÚkçüyÉīŽ5Ç|MÔ_´g;ö¤=‰{kŽùš¨ô;úô;ú¨I Pjj¾Xè»þÀð¹Ïú}Öï³~ÃÎvÞ°ójo˾Ýúšfï¼{_rÌðá.…äë¯IíµÊ×0_Oç•ÚivO«–­¯Ùuîô)É1.…ä믉ÚaíµÓ²Iëw›wi§Ãò6¢ß|ò5Q;|Ñž­E·fï¼{߉ç.úÍ×!_µƒ~G¿ƒ~G¿5 €(60ü‡UcVY5¦®ßT­¸¤§²ð_W->~Dׯy)$?ö|êZ¥| Kj§¦6ç÷<¶§¡§ßõúâãç¥üØóuP;Ô¿vºŽð­Ö}'}ú›–ÿ²qF¿ù±çë vX—=[Çqeá¿®:é#º6Îè7?ö|ÔúýúýÔ& ØÀð_,qù‹Ë_\ûe‘ÆöÛñùñ®ýRH¾nε³öË"í·ãóã]û¥µÃÚk'?Û«óã]{ô«vø¢=[Çqeac{5p~¼k~Õúýúý€(60Ô)˜Ì fÖÕÀäoÖ>++?ƺÞ-—¯•s†úÔNþ†`á³²òc¬ë ÐÔëZ;ù 7†Ïα®7|V;¬ûž­E·fï4†Ïα®7|V;èwô;èwô;P“€bØ¿ùüÍçoÞt­²á3F¹±x—BòãZû±çëã<áËÕÎŽ7]úÄŒ‘Å»’—ÚaãÕÎI×Ï©ì{Sñ¢ßü¸ÔsÏvHõ‹ýæÇ¥vÐïèwÐïèw þÀ›êeí¿á›»lìÉGnÿÉGÛ<>nÄü†{$Ÿ~,k?^¿Éˆªî£ùèä#‡þeækÀŸzõ—™g<>.?µÃWS;#î?ýO]¦oÐo›îԾᆾùüócQ;|U{¶»nÿÉGÛœü܈ù 7ôÍ矋ÚA¿£ßA¿£ßu% ØÀ°Öþy?5E=¦o=xVú’Ϲ>Gçó{Øxµ30»xßé[7¬K!ùœÕ›¶vÆOýBŸ?7¬è7Ÿ³ÚaSïÙ>xVÊ~ó9«ô;úô;úX`ŠM ëlÕ˜UcVvÞ°ó†·öæ§bQÿÑeOW|÷Ô]Ž]3·zÊÈòº2·zÊÈò|nù<×~,ùñæÇî`c×N›É=¿ßtyÛÉ÷ß=uXÿÙß©žRBAúÏþNõ”|nù<Õ¥S;]'Ø£uÅ„ãïÿ¸ßóWµbjE¯ }Z1µ¢W>·|žj‡RÚ³u<¿ìéꃫÞåØ5s'ì7²¼„Bß¹öYžÏ-Ÿ§ÚA¿£ßA¿£ßõ' ØÀð%}Öï³~Ÿõ›6oÚ¼ióêó›°–·ßbÖÜS§ô4sÍÂê©#+6ÁE…ÕSGVäsÈçSŸ™çǘ¯Ÿ;_}í´(ÛvVûñýÇž}Õ”¾Ã̾ zê&¸2`öÕSó9äóQ;”~í´¹­Cÿæ·Õajó^-¯8nÅŒŠ>› ô=nÅŒŠ>ùòù¨ž­Õ;-fÍ=uÔ½ƒf®Y8áÀ‘› ô]8áÀ‘ùòù¨ô;úô;úذÀ›6€×º¼Öåµ.•Ë*—U.kZoûOØ}ŸÌÛbÊœAñÊß.|}g6ìåü1óÇÏ¿Wýç–K~\~¾”Zí´›[>w÷}ú_pöSæì<íÖ-|}Ã^þÈ3üü{©ŠQ;}_Üë mï=ꔩS{õ»àãlÁŽã6lÜ›?fþøù÷R;eÏÖãºÌÛbÔëƒâ•¿=îÔ=žÙ°qoþ˜ùãçßKí ßÑï ßÑïÀÆ& ØÀ°á¬^³zÍêÅw.¾sñÝ^îör·—›~)ßè·´lιŽ~²Çé_òÌý>ðæ&å £Û¦Ÿ8xaöþŒåCæçÏ¿žß&¿}~ß/÷}ó9çóÏÅ”†U;mŽíÙ®ßÒ®«÷»éè'{ß2~Æ%Ïì0êÜËnn2ð…‹o˜~âŽN*Ÿ±<ÿ{þõü6ùíóûªgítí¿Ã­Û{þøùî98¾âÑîï3qZÏ^/âîò>žôꜗúÞ—ÿ=ÿz~›üöù}ÕuÏÖq§²9çv*¿­Çé³C¿‡Üÿ’ò…ÑmŸ1xaöþ¡[™Ÿÿ=ÿz~›üöù}ÕúýjG¿›Š€bÃÆÑ~Mû5í—Þ¾ôö¥·W6©lRÙ¤iIÊç–Ï3Ÿ³jGí vÔjGí€Úµ£v(60Å&†¯ÈÊ­Vnµr«;VݱêŽUí¯mmûk¿ú.ÿ¾ùòùø¹ vÔjGí€ÚµjGíÐØ€(60l2«&®š¸jâ¢#±èˆ‰÷L¼gâ=ÛݺݭÛݺþÍ[þ8ùcæŸ/kŽÚQ;¨µjÔ¨µPl`h0–^³ôš¥×deeå·& v@í€ÚµjGíP“  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0·ôš¥×,½&û(û(û(ÿ»5µjç ÎÀs1PT`˜UWM\5qÑ‹ŽXtÄÄ{&Þ3ñžínÝîÖínmºÞòÇÉ3üü{YsÔŽÚAí¨œ'8OÀs±çb ¡PÒVnµr«•[ݱêŽUw¬jmûkÛ_Ûô+—ß|ù|ü\P;jµ£vœ'Μ'à¹Øs1µî‹·X¼Åâ-¬ ›–€RÒ~Mû5í—Þ¾ôö¥·W6©lRÙ¤iIÊç–Ï3Ÿ³jGí vÔŽóÄyâ™·Å”9ƒâ•¿]øúϬYS]=rä†óÇÌ?ÿ^ëð[œË*—U.ËËÏ—R«vsËçî¾Oÿ Î~cÊœ§Ýú¯…¯6{vuõ†óÇÌ?ÿ^j‡bÔNß÷:hÛ{:eêÔ^ý.ø8[°ã¸+®X±¢¢bCùcæŸ/µÓ0÷'=®ëðȼ-F½>(^ùÛãNÝã™5k&L9rCùcæŸ/ç‰}¬},ž‹õÅ”0¥I ÀWê³~Ÿõû¬ß´yÓæM›WŸío§åíÇ·˜5÷Ô)}Í\³°zêÈŠ {™¬^ãÂê©#+ò9äó©ÏÌócÌ×ϯ¾vZ”m;«ýøþcϾjJßaf_P=uöµõ̾ zj>‡|>j‡Ò¯6·uèßü–£:LmÞ«åÇ­˜QÑgÃÆ½õ[1£¢O>‡|>j§ôö'­Þi1kî©£î4sÍ Ž¬Ø°qo½Æ…Y‘Ï!ŸóÄ>Ö>ÏÅúb¾z`J“€¯Èª1«Æ¬3ì¼aç ;ï ÞoQÿÑeOW|÷Ô]Ž]3·zÊÈòMp±¬®qnõ”‘åùÜòy®ýXòãÍÝ9ÀÆ®6“{~¿ÿèò¶“ï¿{ê°þ³¿S=e4·uýg§zJ>·|žj‡Ò©®“ìѺbÂñ÷Üïù+ŽZ1µ¢×&}ëZ1µ¢W>·|žjgÓíO:ž_ötõÁ‡Uïrìš¹öY¾ BߺƹöYžÏ-Ÿ§óÄ>Ö>}±¾˜¯†˜Ò$`£[þâò—¿XŸßpŒzLßzð¬ºLV1Ÿs}Ž._ç£vfï;}ëjkë1æsV;lÚÚ?uö }þ\Bqo=Æ|Îjç«ÝŸ<|ð¬Š{ë1æsvžØÇÚÇ /Ö³± €)M`6¢`f03˜¹ö-ìecO>rûO>Úæñq#æ7¬Kf5Ç|þù±¬ýxó5qn°þµÓ}Ô!|äпÌ<ãñq «Å­9æóÏEíðÕÔΈûOÿS—éßôÛ¦;µoXÑoÍ1Ÿ~,jgãìOvîºý'msòs#æ7¬è·æ˜Ï??ç‰}¬},úb}1ƒ˜Ò$`£˜¿ùüÍço¾ömk6|ÆÈ!76Ü‹euùq­ýØóõqžðåjgÇ›.}bÆÈ†ÛÜÖ5æÇ¥vØxµsÒõs*ûÞÔpCߺÆü¸ÔΆ۟R=䯆úÖ5æÇå<±µ@_¬/fÃSšÀl`kÿ Ͳo·¾¦Ù;o¶[ï1¨x—ÌjŽù1æÇë77YÿÚivO«–­¯Ù¹Ù-£ÄÅkqkŽù1æÇ«vXÿÚiÙ¤õ»ÍŽ;^2qàêâE¿5ÇüóãU;ë¾?iÑ­Ù;o¶;ö¤=/ú­9æÇ˜¯óÄ>Ö>}±¾˜õ'¦4 €Ø`Öþ¹,—ôïT¾{_rÌðáždVsÌ7?vŸã—«6ç÷<¶§]çNŸ’Sì·æ˜o~ìj‡/W;]ÇøVë¾—öx:,oSìè·æ˜o~ìj§~û“ŽãÊÂwï;ñÜáËýÖóãÍÝybk €¾X_ÌúSšÀl«Æ¬³jÌÚ/™ýëªÅÇèÚx.™Õóc_ûå³| Kj§v‹;ôô»^_||ãiqÿã“N¿ëõÅǯ½ÝU;j§®èwÒ§¿ùgù/Oô[sÌ}í1pc¨/ÚŸtWþ몓þ8¢kã‰~kŽù±¯=vžØÇÚÇ /Ö³v`J“€õòY¿Ïú}ÖoØyÃÎv^]o”ר^-±öWQÔõfzùæëé¼R;ù=5¶ßn^ûo=×õæWjGíÔ~ÃçÆöªßµ¿¸®7….ví|Ñþ¤E·fï4¶Wý®ýÕÀu½)tã>OìcícÐë‹ùb`J“€õ2mÞ´yÓæÕõˆá3Ò¾ÜgªÕµbùz:¯ÔNcøL£/÷Hj‡µ×Ncø¬ß/÷ÙÀ­v¾hRüÏúýrŸ ì<±µ@_¬/f] €7”óÌ[ðùÿ Wß{õ½Wß»zŸÕû¬ÞÇÊ|9`¾¤×º¼Öåµ.um:³á3F¹Ñe²ºÆ|}êZ½|mc³vv¼éÒ'fŒÔÖÖ5æë£vÔNm']?§²ïMâÞºÆ|}Cí|Ñþäê!7Š{ëóõqžØÇÚÇ /ÖSàõ÷é!Ÿòé!uÕÂà/G Àº{{ÍÛkÞ®\V¹¬rYí§äËÆž|äöŸ¸4VŸ1_«Úk˜¯m¾ÎN·ÆS;ÝGòÑÉGjeë3æk¥vÔNnÄý§ÿ©Ëto}Æ|­ [;_°?Ù¹ëöŸˆxë3ækÕXÏûXûXôÅúbÖxýÕ|íïÚ ƒëO À:[|çâ;ßY×Óð+—\0â\Åê3ækU×Jæëì|k<µ3ô —\ ‰­Ï˜¯•ÚQ;Ÿ6?[Þ¶üoÂÝúŒùZµv¾hròI#ÎîÖgÌת±ž'ö±ö±è‹õŬðúËÝ<ÜmZoÂ൰.Ú¯i¿¦}·—»½ÜíåÚOºQé[žårغŽùºÕ^Ï|ó5wê»vfï;}kí뺎ùº©Æ\;ã§Î~¡ÏŸÅºë:æëV¨Úù‚ýÉÁÃÏë®ë˜¯[c:OìcícÐë‹ù2À–0xC°–Þ¾ôö¥·×~Š­XÔtÙÓkªª§ìBØ:UÕÓFÎ×°öÚækîÜ+jí´™ÜóûýG8û¢êi×uξ¨zZ¾†j§±ÕN×Éöh]qÅ +fUôè®óxŠY}ò5,FíÔ½?éx~ÙÓkª&Œ9X »ÎcÕ„Ñ#çkXôóÄ>Ö>}±¾˜/O¼ñƒ×‡€uPÙ¤²Ie“ÚO«Õß=u—c][Ÿ1_ÃÿòÙ-M*›T6qîµvÊÛN¾ÿî©ZÖõó5T;­v&ÿÇýžå®Ï˜¯a1j§îýÉaÕ»+Ê]Ÿ1_âŸ'ö±ö±è‹õÅ|yெ0x] €¨—•[­ÜjåVµŸD;-o?¾Å¬5gUÙÝůõϪ;²{¾žµ×9_ça‘j§EÙ¶³ÚÖuö¾Õc5«ë5v½oõØ|=ÕNc¨6·uèßü–+v[1®¢“w½ÆÝVŒ«è”¯gíº÷'­Þi1kÍYì.Ä]¯ñ¬ ƒFvÏ׳ˆç‰}¬},úb}1ëKüÕׇ€z¹cÕ«îXUû‰sî©Súš¹©.6ýþ€ZíöIÍù4ôËgùzÖ^ç|ý‡EªþcϾjJ_mê†óõT;¡vŽê0µy¯– 1p=§É¢}WóXJaVùz6ÜÚ©{2êÞA3Å·jÌ׳ˆçɦÜÇÖgüd¿':TVÜX~ÎÇ}/Oû>^vT›i­Þk–uÿeç5-ß³@_lÔ—ð¦% ®‹€/ò÷5_ó÷ö×¶¿¶ýµµŸ,ß}09aøˆÒ €z œ¯gí#Ê×?ÿY8%‹Q;»Î›~Sr‚uCùzªÆP;—öz:-/o¨1_ÏY;_°?9ñ¼á#·jÌ׳ˆçɦÜÇÖg¼´òÄG·¿rí—®ìcÐõÅ›–¸tƒkðVM\5qÕÄÚOûOØ}ŸlÚËLÅ €ó1_ÛÚÇ•ÿ,œ“ ½vÚÍ-Ÿ»û>ZÓ1æk«vŠZ;}_Üë mïm¸o¹\šp>ækÛ°j§îýIë:<"²Ýc¾¶E9O6ý>¶>cÏ;º^Ôêø|Îß=÷„ï÷|õÅÓçÎØíæ÷æ§ï_Tšû^ûXôÅúâÆF\š„Á`¾À¢#±èˆÚO‡ó¶˜2gP,Þc¾¶µ+ÿY8'zíô¿àì7¦ÌÑ”n”7¼ºàì7¦ÌQ;E­£N™:µW?ðFy#èS¦NíÕ¯aÕNÝû“Q¯Š…µcÌ×¶(çɦßÇÖg¬9ç<úµ@_lÔ—pékœa°€/0ñž‰÷L¼§öSà›-Tí1P¼1Æ|mkWþ³pN6ôÚÙ¹é-û/¨Ò”nŒ1_[µSÔÚ9ÿþä¬ï€7Ƙ¯mêº÷'ÇŽßc °vcŒùÚå<ÙôûØu €ó}¯},úb£¾¸Ô€–Æ €øÛݺݭÛÝZûiïß¿zr—ÊkK3~fóŸí¾ëYGï½ßÃ]öé–uÞ«eÐfZ«÷šeƒ–÷ý¿²n“v:é‚í½Ó1X¶×ÐÒ¼p–¯míãÊÎɆ^;»Í˜õ“'w)µq·×<é©CúÎ=m¯ïŸÐîžòé»÷o1¹í[¿ÕìÊ–³[½×úön3{ß²]Ëý7;æ˜ÁSn¸âÁ›J³ÑÍ×Víµv.ÿÇïÚíô`鄦“{ýnÒNÙá-®ß»çÉ}ŸÜ«|ÛŸ”MëøÏæiqOëo7Û«óýý¾Õjúž¯Ÿ²eçû/µxÏ¿[Êp¾¶ «vêÞŸœ: òÚR‹N/<ôð!¯Ÿð‡þov]ÒûÔm_ký?­ÖüûÍnìß·ÝÈÖ¯~wï#:oþ«ëÉ`ÐU½Ëv›\Ô¿jÆ,¹é“í÷/Í8óu.ýÚ©{Òq§²9¥—æQîùóvZÙsËúŸ'‡=Ôë³NÕïÏ9é¦á«K3Î×¹!Ÿ'¥²­kì1§Ëc­zçãüOøzÇ'[Ž®ù¯¥|ö±4”¾xhõ̦KVvxv×s÷Ù¢þ{¶7é¾™§Õþº¾¸qCñÂ`0u?í _=|õðÚOlçv:úÉCJ9Î]Zyâ£Û_ùØAw|«"yèÏ7=X>ûì²#Oï~]³&MŸnú¯®ø¬ÃS‡T¾XjÎòu®}\ùÏÅùÙk§ëêýn:úÉR‹Kÿ£Ñ}²ùØ›w?ûÐ3N^=ð„ïn;íêA«&·™ý\¯¡ÇN¸à¤ü7 kÑࣧüýå¥vDù:«"ÕΰçŸßéž’J·Y±uEÓ~ _²íßkÎp‡¿íý`Ûë킞mOérï·úµþöc×¼Óã½~C÷ú÷¶OÖõ€†Õwî¿×+ßQs†7ÛkÿÑ/öï|Ö³×W–Ϲò¸Ÿ>Þïä3®¿æÛõ ‰õÅ“¸€ÿƒ" P§W~õáW®ýd6ýñKžÙ¡_iÀÍßh^Ùô‘`à´«÷¯yá¬æß±çõ•ƒŽ,ý·ÑË×¹ö<óŸ‹ó³!ÖNï[ÆÏ¸ä™Òi¬¸püí£?ŸÜ]Ío^90ºxØkò­Ý¾æ_Éߺ4[Ü|Ì×Yí©vޝx´ûû¥‘õÖmöSsnûxáÅÛý&ÿ׺šÀ½–ž:­ó‡¥çë\úµS÷þdø˜ú•BDúZ“c¾·û7›¿Ñ¬CÓGÚžÖbUóSV\wä˜ÝºÖuû|þ̪سçÐÒóunÈçI©ìc‹ÛÇPú}ñŽ÷L*›1·æÜúŽžÐ኷jö¿µõ¼ëÈ‘g/)ýX_üU[à ƒÀÔiù©ËO]~jí'°‡¼¹IùÂÒ €OøÃè».©O [ó^£NÞm~‡a¥vá,_çÚëŸÿ\œŸ ±vvuîe77)†°ã_‡½ºÿYùÜ:-ßóÑÑêÓ²Ö<¢¶· ì»KVjp¾Îj§HµsÌÄi={½\ é€g÷ݳí¿?¿tU¶Ûä² ^Ÿ°;âÙ·wº°ã™½º¶|©”à|K¿vêÞŸìIùÂRˆH¯|z×^½?ÿ…€)‡îö¯>oÕ'Êýd¿S~^Y‘*p~û3Fîxr·?—Zœ¯sC>OJe[ìØ>€Òï‹óWúæ³êÐvçÞ•ÍëÓïöú'=uH›{¼ÙïÊR€õÅ_%pãѰÂàÍJ§$h(¢Û¦Ÿ8¸Dàø½^4äëõ¹ïÂIS_¨è˜ß«æ§¬•Î…³|oE2ð…‹o˜~bé4„­³î;ô9àó¹Õxíï|fpïi‹ö¼òÆŸ=ü¿Cfß¼ú—•Zœ¯³ó­HÆ?qwyŸK!"íðñöc[>’ÏjÜöwžÐ»¬þQné¿8_熼?9øŒÁ%=¯Ï‰?ÿôÓÅ =|Èëõ¿ï|ZíO;žU¶´Ôà|ícÀö±4ô¾¸Í¤žõß=ŸUÍ÷ǪÏ}ë::}1P—óÌ[0O @IËÞŸ±|ÈüÒ €ßX2þîoÖ羯t~hÔ°Yµ®t.œåëì|+’œT>£$>1w·Gf­zò?>åhȈ›žzäòR‹r¿äy=8©|Ærç[‘œôꜗúÞ·iÃÑË.zæ©ò?ÔœÕ9+}iÀÜú?±ÿ¼ëû½ªù¥çëÜ÷'‡n=d~)D¤;=Ò±eÙ-ëDݲ6KZÿR*p¾Îö±`ûXn_ü_:âÖ7 yxÞÝjÀ%ì>õ…ÚG§/êòñÜç~÷ýàš%}F]ûè¼r‚§t~ÓyÈo~0yþ\–Z=³é’•Å€ý¦sñ”Â+€ÏÿF|øÀE5g•GÂõ„3¾ÿÐyý_¯ù^¼¡÷'¥ò à²k[ nöñúQÍÇñ àâíc½}ñ&ëˆgß¼ú—­OG¼ÓWïrïùµN_ Ô¥½8tüñÇJùÏìæ³›Ïn^û骔?¸þ¯~íÝG.ß}¯ü^-žm±yÓ¿–Z\×g§93ní”Îg 9ã²%}jÎmç#oü«¿#®ë³Žœ™ ·vJá3€/_ðÜüf֜չG>ö“ÏÖÿŽ{qf«ÞŸ•r\×g7œýI©|ð€­Û}ÜfÔç³Z±ÿ¼ò¿?à¨h·O¾ÜXjp]Ÿl+¶õÇüñ§¡ôÅ;¿9õG;לպ¾x`ùE×Üñd)Àúâ¯òOíuž¶å´-§mieŠ÷çWÿêâ_]Çw}Æ|òyR*ûØbÀö±”r_\û- ó@wºÎCNxþâgJ9Ö•ê Ú­L1äÁíÕ÷^}ïÕ÷Ö?ôÍoÿÕ‡¾5 €¨ûémøê᫇×~;·ÓÑOöRšð ýb×%õ¹ï·î³Eç!ù½Æž·ï¥ç”Zœ¯³Íz‘j§ëêýn:úÉÒ €»üfŸ&c*ês¯®Þﬣgþö¤S{ÿiÇûJíÀù:«"ÕΰçŸßéžR €{O¶oÙŸêõêáϾ½Ó…–ô¹´Õþ¥çë\úµS÷þ¤ü¶CJ!"ýìùj>«S¯¸Y·oÖç^M8ùýOÝ·óµm·î}궯µþŸ†Ý·s©Àù:7äó¤Tö±Å€íc(ý¾¸æ¬:<»ë¹ûlQ¯ðøõOz겯÷ê? ¤ßZ_üUð°úÖ$ NŸ<õÉSŸ œvõàþuÝë{^_9èÈš÷Zòóõع¬Ô.œåël³^¤ÚislÏvý––NCØoÈé^=íóÉ=Ù|l‹ÍwüݤûfžV×í÷Ÿ2îVÍ·n=¦¬W~§í~}à¾ÇTjn¾Îj§HµÓµÿ´n[ éÑGß¾{¯ïÕža]·Ÿ<ãù‘;½5|îiÛwQÿ{mª1_çÒ¯º÷'w*›S é3ÿ<âO»Îùÿ;“fš>ò«OJe[ìØ>€Òï‹wX}Þµ·Ü]sny¼ö{mß㨟óq]ñ¾¸qC1BßšÀ|ínÝîÖín­ýôöï_=¹Kåµ¥÷˜Óå±V½ó¿OÚé¤ ¶_TµÇOV|øÈ?èµÓÖg—yz÷ëjÞ~ÔÉ»Íï0¬Ô^û›¯mí5ÏÎɆ^;»Í˜õ“'w)…†°öÛ^åºÏ<ô³S~‘¿Vù…W,ûéÿõ~`üÇ—îÛr—;ÞØ´8¤íáF—Ú'çk«vŠZ;—ÿãwívzp¥Û¬Øºâ¿´|;ümïÛ>pØìë¾×sSºÜû­~­oqýÞ=OîßuÄMm[ç·éxf¯®-_*Í8_Û†U;uïONPym)¥ÿ哟&Ûm¯{/ÛçÙ'çáîüûxl§Kޏµ÷Cÿãµ’Çý_¿ºv-µOÿÍ×¶(çɦßÇ5¶ ÁôÅMgoS½MÇ͇~mŸ¸æÜ:/qû¡Õý'ýÁ”°üÙ+ßse¿wÏÚóºë:»[¯Q;cOêyQÿÝ?¿Ã]Ío^Y:°¾ø«'n¸ŠúÖ$à L¼gâ=ÿËB¾ÙrAÕK-^¼pæiC^o{ZY¯æ§¬ý©z‡ÛÕ¦åKæÏßýÍR €óµ­=çügáœlèµ³sÓ[ö_PUjo¿™s}¶¹Í§—mÝöØ—\°ûÔJíwœóµU;E­óïOÎøN)Ä¥ßmµtü æ=&ÚfJ}ªf»ßìx]ë9y0\šp¾¶ «vêÞŸ;~¥—æoé<®W¿î]æ×ÿRÂAíz^ßñÀ/:ù®SK-Î×¶(çɦßÇ5¶ aõÅŸ(Òì½Ï>â»õÙ­µ½e`ß]²A;^ö›½‘¥æ¯Jë‹'pÃRìз&0_`Ñ‹ŽXtDí§½y[L™3(.µ¸æÅ²ã>9踮cºe÷j´þY«ÁÍn,Oû>^vÔ•OŸ6³wÅ?§;¿¢Ô¢ß|Ì×¶öšç? çdC¯þœýÆ”9¥ö¹¹Ÿ¦éäñ§^rCÛñ~¸Ëÿ6ÿ×¶;¶[Ñüô6—n{÷¶—ô‹*ÆlwÎÝÇ=¿ó›Sßy´s©Í?óµU;E­£N™:µW¿Ò MóY²Õ•»ôغל¡ ˦µ®n÷Ló[¶mӡل펷þÞ¨SÏk»+/»è™§ÊÿPÊo¯mêº÷'£^—ÚÛ&ç¯ô{^Ÿ;Ïéþ˲N-ßk5¿yïfG XÓþÐ6“{¨×gªóÛÔ|õp©E¾¶E9O6ý>¶¨°}, ±/Îg5àç,¿í¶Î›íµÿè[ŸÒí½žköP«A­Ì?ñ·×Ðc'\pÒn‡ÿèñ':Ô<–²Š^ñÀ¥ë‹¿zàÒ×xBßšÀ|UWM\5±öSàþvß§Ã#¥silý¿^:c¾¶µ×<ÿY8'zí´›[>w÷}J3@­Ùú~¹Ý´c¾¶j§¨µÓ÷ŽÚöÞRûÜÜšap]_¯ù¯¥ùé¿ùÚ6¬Ú©{Ò㺔ZtZûM¡ëú×Òœy>æk[”ó¤Tö±_n—k €¾ø«ïˆk~=Sèü+íw¬8hÏñ¥Ó)ë‹¿zàÒÔ8CßšÀ|‘¿¯ùûš¿·¿¶ýµíÿ˧y½û`rÂð ë²T)ùzÖ^ç|ýóŸ…S²µ³ë¼é7%'”r ܰÆ|=ÕNc¨K{=–—•f ÜÇ|=dí|ÁþäÄó†(å0µaùzñ<±µ ñöÅ=9âô3Z—%}.tòö¯Ž«<ïíúß·Óò=ýùë€;ÿ¥²ç·¯)…X_¼©€K‡Ð·&0õrǪ;VݱªöäÜS§ô4Ó¯ 5æëY{óõw©vú=ûª)}·ìM®Æž}Õ”¾j§1ÔÎQ¦6ïÕRp»ÁÞü¹ÃÔæ½Z6ÜÚ©{2êÞA3·jÌ׳ˆç‰}¬},·/î;zB‡+ÞÊgÒjtçu?m×ÞÓþí½ö{U,¿~ç¹3š~Ø|U‹ðó£è|Ö³×Wê‹3ð¦%ô­‹€zY¹ÕÊ­VnUûɲÓòöã[ÌZsVõØ‘Ý]öZ¯ñ¬ê±#»çëY{óõw©vZ”m;«ýøa]gï[=V|»^c×ÙûVÍ×Sí4†Úis[‡þÍo¹b·ã*:‰o×kÜmŸŠNùz6ÜÚ©{Òê³Öœ5aÐÈîâÛõÏš0hd÷|=‹xžØÇÚÇÐxûâ]¾sûO«k¹K‡ÿ#ÀËßÞyÈg·´XpÎÐ=î›=\>çÊã~úx¯éÇÝxá+-&·}«ã·ò[æŸ<´zfÓ%+õÅ™ø«'ô­0ë ²Ie“Ê&µŸ>«¾{ê.Ǻøµ>c¾†µ×6_sç^Qk§¼íäûïž*Ä]Ÿ1_CµÓØjgÂñ÷Üïy!îúŒù£vêÞŸV½Ë±BÜõó5,úybk @ãí‹ó94»²åìVïÕ?Fjñ@»K:>Yþì•ïι²ÞüY_¼i €¿Bßu%`,½}éíKo¯ýTZ±¨ÿè²§×TUO9Ø%°u«ª§œ¯aíµÍ×ܹWÔÚi3¹ç÷û6pöEÕÓD¹ë<œ}Qõ´| ÕNc«®“ìѺâŠV̪è#Ê]çñ„³*úäkXŒÚ©{Òñü²§×TM=r°(wǪ £GÎ×°èç‰}¬},½/ÎgÒå7û4SQû5ÁŸ¿ÞwÈvßíUÖ태øèÎoN}çÑÎ¥ýê‹Kxãú®0ë¢ýšökÚw{¹ÛËÝ^®ýäõ˜¾õàY.„­ë˜¯[íõÌ×9_s§^±kg`vñ¾Ó·è®ë˜¯›Úi̵3~êìúüY »®c¾n…ª/ØŸ<|ð,ùº5¦óÄ>Ö>€ÆÞ× t‡6ÿáÒôý!#nzê‘Ëw?ý'É¥uÝR_ŒxÃún(`ÖÙâ;ß¹øÎºžn?X¹ä‚çºVŸ1_«ºV2_gç[ã©¡ÌX¸ä±n}Æ|­ÔŽÚÉ]ö³åmËÿ&֭Ϙ¯UQkç‹ö''Ÿ4â\±n}Æ|­ëybk €¾X_̺¯?¡ïÆ `ݽ½æí5oW.«\V¹ì¿\ˆ{ò‘Ûâ¢X}Æ|­þËg´,«\V¹,_g§[ã©î£ùèä#5±õóµR;j'7âþÓÿÔeºp·>c¾V…­/ØŸìÜuûO„»õóµj¬ç‰}¬},úb}1ëF¼þÌ[0oÁ<¡ï†%àKz­Ëk]^ëRדq6|ÆÈ!7º4Vט¯O]«—¯­s¬qÖÎŽ7]úÄŒ‘ZÙºÆ|}ÔŽÚ©í¤ëçTö½IÄ[ט¯Oc¨/ÚŸR=äFo]c¾>ÎûXûXôÅúbêO¼þ>=äÓC>=Dè»a €X/ÓæM›7­ÎßÏz³Ý‚xA.“Õó5©kÅòõt^©›Ý2zA¬­­9æk¢vX{íœ?/™8pµ¸·æ˜¯Ic«/ÚŸ{҃Ľ5Ç|Mœ'ö±ö±è‹õŬ+ð†RóuÀBßõ'`½|Öï³~ŸõvÞ°ó†W{»SöíÖ×4{çÝû’c†wÉ,_‡|Mj¯U¾†ùz:¯ÔN³{Zµl}Í®s§OIŽÑâæë¯‰ÚaíµÓ²Iëw›wi§Ãò6¢ß|ò5ilµóEû“Ýš½óî}'ž;|¸è7_‡|Mœ'ö±ö±è‹õŬ+0¥I À°j̪1«ÆÔõˆ—ôïTþëªÅÇèÚ8/™åÇž¯C]«”¯¡sIíÔÔæüžÇöï4ôô»^_||ãlqócÏ×AíPÿÚé:~À·Z÷ôéoþYþËÆýæÇž¯Cc®/ÚŸtWþ몓þ8¢kãŒ~ócÏ×Áybk €¾X_Ì—#¦4 €Ø`–¿¸üÅå/®ýòYc{E~¼k¿d–¯›óGí¬½Ýml¿õœïÚ[\µÃÚk'?Û«óã]{ôÛØjç‹ö'Ç•…íÕÀùñ®=úužØÇÚÇ /ÖS`J“€ ,˜Ì fÖµ1Íß8®1|¦Z~Œu½Q^._+ç õ©üžÃg åÇX×[©Öµvò7@n Ÿ œc]oø¬v¾hÒ¢[³wÃgçÇX×>;OìcícÐë‹YW`J“€bþæó7Ÿ¿yӵʆÏ9äÆâ]2ËkíÇž¯ó„/W;;Þté3F¯ÅÍKí°ñjç¤ëçTö½©xÑo~\jgÃíO©rcñ¢ßü¸œ'ö±ö±è‹õÅlX`J“€hí¿¹™»lìÉGnÿÉGÛ<>nÄü†{±,Ÿ~,k?^¿¡É†ªî£ùèä#‡þeækÀŸfô—™g<>.?µÃWS;#î?ýO]¦oÐo›îԾᆾùüócQ;g²s×í?ùh›“Ÿ1¿á†¾ùüócqžØÇÚÇ /Ö³1€)M`6ºµŽKMQé[žÕ°.™ås®ÏÑù\6^í Ì.ÞwúÖ «ÅÍç¬vØ´µ3~êìúü¹aE¿ùœÕÎW»?9xøàY +úÍçì<±µ@_¬/fcSšÀ|EVY5fÕ˜aç ;oØykßÔV,ê?ºìéêƒïžºË±kæVOY^BËæVOYžÏ-ŸçÚ%?ÞüØlìÚi3¹ç÷û.o;ùþ»§ë?û;ÕSJ¨¹í?û;ÕSò¹åóT;”Nít<`ÖŽ¿ÿã~Ï_qÔŠ©½J(ô=jÅÔŠ^ùÜòyªM·?éx~ÙÓÕV½Ë±kæNØody …¾s'ì7²<Ÿ[>Oç‰}¬},úb}1_ 0¥I ÀWê³~Ÿõû¬ß´yÓæM›WŸßpì´¼ýø³æž:¥ï ™kVOY± .–-¬ž:²"ŸC>ŸúÌ› ô=nÅŒŠ>ùòù¨ÒÛŸ´z§Å¬¹§ŽºwÐÌ5 '8²b„¾ '8²"ŸC>ç‰}¬},ž‹õÅ|õÀ”&0›Ìk]^ëòZ—Êe•Ë*—5­·ý'ì¾O‡Gæm1eΠxåo¾¾Ç3ö2Yþ˜ùãçß«þsË%?.?_J­vÚÍ-Ÿ»û>ý/8û)svžv뿾¾aÛÚü1óÇÏ¿—Ú¡µÓ÷ŽÚöÞ£N™:µW¿ >Îì8nÃÆ½ùcæŸ/µÓ0÷'=®ëðȼ-F½>(^ùÛãNÝã™ ÷æ™?~þ½œ'ö±ö±x.ÖS À”&0›Úê5«×¬^|çâ;ßÙíån/w{¹é—Rñ~KËæœÛéè'{ ™þø%ÏìÐïáonR¾0ºmú‰ƒfïÏX>d~þ÷üëùmòÛç÷ýrß7Ÿs>ÿüXüHiXµÓæØžíú-íºz¿›Ž~²÷-ãg\ọ̀νìæ&_¸ø†é'îøà¤òËó¿ç_Ïo“ß>¿¯Ú¡qÖN×þ;<кí°çŸß鞃ã+íþþ1§õìõòø'î.ïóáI¯Îy©ï}ùßó¯ç·ÉoŸßWí4ŽýIÇÊæœÛ©ü¶C¦?>|Ìý>pÿKÊF·|Æà…Ùû‡n=d~þ÷üëùmòÛç÷užØÇÚÇ€¾˜R&¦4 €(%í×´_Ó~éíKo_z{e“Ê&•Mš–¤|nù<ó9ûÑ¡vÔjGí8Oœ'Îç x.ö\ÜØ€)M`JÚÊ­Vnµr«;VݱêŽUí¯mmûk¿ú­yþ}ó9äóñsAí¨ÔŽÚqž8Opž€çbÏÅ€)M`˜UWM\5qÑ‹ŽXtÄÄ{&Þ3ñžínÝîÖín]ÿMyþ8ùcæŸ/kŽÚQ;¨µƒóç x.ö\ 4` né5K¯YzMöQöQöQþwkjÔΜ'€çb ¨À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  ¾Òxñ‹·X¼ES€F#ÏIÀ ž  ]œ}q“ÅM7Y¼ÙâÍo–}–}–}–}š}š}š}’}’}’}œ}œ}œ}˜}˜}˜}}}½Ÿ½Ÿ½Ÿ½—½—½—½›½›½›ý#ûGöìïÙß³¿gïdïdïdËþ–ý-[•­ÊVeÍþšý5ûKö—ì/ÙÊle¶2{3{3{3ûSö§ìOÙ³?fÌ^Ï^Ï^Ï^Í^Í^Í^É^É^É^Î^Î^Î~Ÿý>û}öRöRöRöBöBöB¶"[‘­È~—ý.û]ö\ö\ö\öÛì·Ùo³åÙòlyö›ì7Ùo²eÙ²lYötötötVUgÕٓٓٓÙÙÙÙÒli¶4[’-É–d‹³ÅÙâ,ÍÒ,Í’,É’,Ê¢,ÊÂ,̬*«Êª²Ç²Ç²Ç²EÙ¢lQ¶0[˜-Ìd ²Ùül~6?{${${${8{8{8{({({({ { { ›—ÍËæe¿È~‘ý"»?»?»?ûyöóìçٽٽٽÙϲŸe?Ëæds²9ÙO²Ÿd?ÉîÎîÎîÎ~œý8ûq6+›•ÍÊ~”ý(ûQ6#›‘ÍÈîÊîÊîʦgÓ³éÙÙÙÙÙÙÙíÙíÙíÙÔlj65»5»5»5ûAöƒìÙÍÙÍÙÍÙÙÙÙ Ù Ù ÙõÙõÙõÙuÙuÙuٵٵٵÙÕÙÕÙÕÙUÙUÙUٕٕٕÙÙÙÙåÙåÙåÙ÷²ïeßË&e“²I٥٥٥ÙÅÙÅÙÅÙw³ïfßÍ.Ì.Ì.Ì.È.È.ÈÎËÎËÎË&f³‰Ù9Ù9Ù9Ùw²ïdßÉÎÎÎÎÎÎÎÌÎÌÎÌÎÈÎÈÎÈNËNËNË&d² Ù)Ù)Ù)ÙÉÙÉÙÉÙ‰Ù‰Ù‰Ùøl|6>;>;>;>;.;.;.—ËÆeÇdÇdÇdGeGeGeGfGfGfc³±ÙØìˆìˆìˆìðìðìðìÛÙ·³og‡f‡f‡fggg£³ÑÙèìÀìÀìÀì€ì€ì€l¿l¿l¿lT6*•í“í“í“íííUf•Ye6"‘ÈöÊöÊöÊöÌöÌöÌöÈöÈöȆeòaÙnÙnÙnٮٮٮÙ.Ù.Ù.ÙlH6$œ Îg;e;e;eåYyVží˜í˜í˜ Ìf³²²²þYÿ¬Ö7ë›õÍúd}²>Y¯¬WÖ+Û>Û>Û>ë™õÌzfݳîY÷¬[Ö-ë–uͺf]³.Y—¬KÖ)ë”uÊ:f³ŽYû¬}Ö>k—µËÚeÛfÛfÛfeYYV–µÎZg­³VY«¬UÖ"k‘µÈšgͳæYÓ¬iÖ4Û&Û&Û&ûVö­ì[Ù7³ofß̾‘}#ûF¶U¶U¶UöõìëÙ׳-³-³-³¯e_˾–m‘m‘m‘mžmžmžm–m–m–®IפkÒOÓOÓOÓ§ÿNÿ~œ~œ~œ~”~”~”~~~þ+ýWú¯ô½ô½ô½ôŸé?Ó¦ÿHÿ‘þ#ý{ú÷ôïéêtuº:ý[ú·ôoéÛéÛéÛé_Ó¿¦MßJßJßJW¦+Ó•éŸÓ?§Nÿ”þ)ýSúFúFúFúzúzúzúZúZúZúJúJúJú‡ôéÒß§¿OŸ¾”¾”¾”¾¾¾®HW¤+Òߥ¿K—>—>—>—>›>›>›.O—§ËÓgÒgÒgÒeé²tYúëô×é¯Óê´:­NŸJŸJŸJŸHŸHŸH—¦KÓ¥é’tIº$]œ.N§¹$MÒ$Ò(Ò0 Ó0­J«Òªô±ô±ô±tQº(]”.L¦ Óé‚tA:?ŸÎOIIINNNJJJHHHç¥óÒyé/Ò_¤¿HïOïOïOžþ<ýyzozozoú³ôgéÏÒ9éœtNú“ô'éOÒ»Ó»Ó»Ó§?NœÎJg¥³Ò™éÌtf:#‘ÎH˜þ0ýa:=žNO§¥ÓÒiééééméméméÔtj:5½5½5½5ýAúƒôéÍéÍéÍéééé é é éõéõéõéuéuéué5é5é5éÕéÕéÕé÷Óï§ßO¯L¯L¯L'§“ÓÉéåéåéåéeéeéeé¤tR:)½$½$½$½8½8½8½(½(½(½0½0½0=?=?=?=/=/=/=7=7=7='='='=;=;=;=+=+=+=3=3=3=======-=-=-=5=5=5=%=%=%=)=)=)=1=1=1=!=!=!=>=>=>=6=6=6—ŽKÇ¥G§G§G§G¥G¥G¥cÓ±éØtL:&“žžž–––ššš’’’ŽNG§£ÓƒÒƒÒƒÒÒÒÒýÓýÓýÓQé¨tTºoºoºoºwºwºw:2™ŽL+ÓÊ´2žO‡§{¥{¥{¥{¤{¤{¤»§»§»§»¥»¥»¥CÓ¡éÐt—t—t—tçtçtçtp:8œV¤iEZž–§åé tP:(˜L¦Ò逴Ú?íŸöKû¥ýÒ>iŸ´OÚ;íöN·O·O·O{¦=Óži÷´{Ú=í–vK»¥]Ó®i×´KÚ%í’vJ;¥ÒŽiÇ´cÚ>mŸ¶OÛ¥íÒvé¶é¶é¶iYZ––¥mÒ6i›´UÚ*m•¶L[¦-Óæió´yÚ,m–6K·I·I·I·N·N·N¿™~3ýfúôé7Ò­Ò­Ò­Ò¯§_O¿žn™n™n™~-ýZúµt‹t‹t‹tótótót³t³t³dM²&Y“|š|š|šü;ùwòïäãäãäãä£ä£ä£äƒäƒäƒä_É¿’%ï%ï%ï%ÿLþ™ü3ùGòäÉß“¿'OÞIÞIÞIþ–ü-ù[²*Y•¬Jþšü5ùkò—ä/É_’•ÉÊdeòfòfòfò§äOÉŸ’7’7’7’דדדגגגW’W’W’?$Hþü>ù}òûä¥ä¥ä¥ä…ä…ä…dE²"Y‘ü.ù]ò»ä¹ä¹ä¹ä·Éo“ß&Ë“åÉòä7Éo’ß$Ë’eɲäéäéäé¤:©Nª“'“'“'“'’'’'’ǓǓǓ%É’dI¾)ÈÿHâ$Nâ$J¢$J‚$H‚¤*©Jª’G“G“G“EÉ¢dQò«äWɯ’É‚dAòËä—É/“G’G’G’‡’‡’‡’“““yɼd^27™›ÌMîOîOîOîKîKîKîMîMîMîIîIîIæ$s’9ÉO“Ÿ&?MîNîNîNf'³“ÙÉ“'?N~”ü(ùQ23™™ÌLîJîJîJ~˜ü0ùargrgrg2-™–LKnOnOnOnKnKnKnMnMnMnInInInNnNnNnJnJnJnHnHnH¦$S’)ÉuÉuÉuɵɵɵÉÕÉÕÉÕÉUÉUÉUɕɕɕÉÉÉÉåÉåÉåÉ÷’ï%ßK&%“’IɥɥɥÉÅÉÅÉÅÉw“ï&ßM.L.L.L.H.H.HÎKÎKÎK&&“‰É9É9É9Éw’ï$ßIÎJÎJÎJÎLÎLÎLNONONONKNKNKNMNMNMNINININJNJNJNLNLNLNHNHNHŽOŽOŽOŽMŽMŽMÆ%ã’qÉÑÉÑÉÑÉQÉQÉQÉØdl26“ŒIÆ$‡'‡'‡'‡%‡%‡%‡&‡&‡&‡$‡$‡$£“ÑÉèä ä ä ä€ä€ä€dÿdÿdÿdT2*•ì›ì›ì›ìììŒLF&#“ɈdD2<ž OöLöLöLöHöHöHvOvOvOvKvKvK†&C“¡É.É.É.ÉÎÉÎÉÎÉàdp28©H*’Ф<)OÊ“AÉ dP20˜ L$’Iÿ¤Ò?é—ôKú%}’>IŸ¤wÒ;élŸlŸlŸôLz&=“îI÷¤{Ò-é–tKº&]“®I—¤KÒ%é”tJ:%“ŽIǤ}Ò>iŸ´KÚ%í’m“m“m“²¤,)KZ'­“ÖI«¤UÒ*i‘´HZ$Í“æIó¤iÒ4išl“l“l“|+ùVò­ä›É7“o&ÿ—ü_òÉVÉVÉVÉÿ&ÿ›üo²e²e²eò?Éÿ$ÿ“l‘l‘l‘4Iš$M’Í’Í’ÍâÏâÏâÏâOãOãOãOâOâOâããããããâââ÷ã÷ã÷ã÷â÷â÷âwãwãwãÄÿˆÿ¯ŽWÇ«ãwâwâwâ·ã·ã·ãUñªxUüVüVüVü—ø/ñ_â?ÇŽÿ¿¿¿¿¿¿ÿ1þcüÇøµøµøµøÕøÕøÕøñâ?Ä/Ç/Ç/Ç/Å/Å/Å/Æ/Æ/Æ+âñŠøùøùøùø¹ø¹ø¹øÙøÙøÙxy¼<^???/‹—ÅËâ_Ç¿ŽWÇÕquüTüTüTüDüDüD¼4^/—ÄKâ%ñâxq¼8Nã4Nóÿâ(Žâ(ã0㪸*®Š‹‹‹Å‹âEñÂxa¼0^/ˆÄóãùñüø‘ø‘ø‘øáøáøáøÁøÁøÁøøøxn<7žÿ"þEü‹ø¾ø¾ø¾øçñÏãŸÇ÷Ä÷Ä÷Ä?‹ÿ,þiüÓø§ñOâŸÄ?‰gdzãÙñãÇ?Žÿ(þQ<3žÏŒïŠïŠïŠÿ0þa|g|g|g<-žO‹oooo‹o‹o‹oooo‰o‰o‰oŽoŽoŽoŠoŠoŠoˆoˆoˆ§ÄSâ)ñuñuñuñµñµñµñÕñÕñÕñUñUñUñ•ñ•ñ•ññññåñåñåñ÷âïÅß‹'Å“âIñ¥ñ¥ñ¥ñÅñÅñÅñwãïÆß/Œ/Œ/Œ/ˆ/ˆ/ˆÏ‹Ï‹Ï‹'Æã‰ñ9ñ9ñ9ñwâïÄ߉ϊϊϊόόόOOOO‹O‹O‹OOOO‰O‰O‰OŠOŠOŠOŒOŒOŒOˆOˆOˆÇÅãâqñÑñÑñÑñ‘ñ‘ñ‘ñØxl<6>">">"><><><þvüíøÛñ¡ñ¡ñ¡ñÁñÁñÁñèxt<:>0>0>0> > > Þ/Þ/Þ/ŠGÅûÄûÄûÄ{Ç{Ç{Ç•qe\ˆGÄ#â½â½â½â=ã=ã=ãÝãÝãÝãañ°xX<4wwwwŽwŽwއÄCâ!qE\WÄ;Å;Å;ŃâAñ xÇxÇxÇx@< ïïï÷‹ûÅýâ¾q߸oÜ;î÷Ž{Žâ^qϸgÜ3î÷ˆ{ÄÝânq·x»x»x»¸KÜ%îwŽ;ÇãŽqǸcÜ!îwˆÛÅíâvqÛ¸mÜ6.‹ËⲸMÜ&n·Š[Å­â–q˸eÜŽŽŽŽ‹Ž‹Ž‹ÆEã¢qÑ1Ñ1Ñ1ÑQÑQÑQёёёјhL4&:":":":,:,:,úvôíèÛÑ!Ñ!Ñ!Ñèht4::(:(:(: : : Ú?Ú?Ú?ŠFEûFûFûF{G{G{G#£‘ÑÈhD4" †Gã=£=£=£=¢=¢=¢aѰhX´[´[´[´k´k´k´K´K´K4$ ‰Gƒ£ÁÑNÑNÑNQyT•G;F;F;F£ÑÀh‡h‡h‡¨Ô?êõúF}£>QŸ¨OÔ+êõŠzF=£žQ¨GÔ#êu‹ºEÛEÛEÛE]¢.Q—¨sÔ9êuŒ:F£Q‡¨CÔ.jµ‹ÚFm£¶QYT•Em¢6Q›¨UÔ*jµŒZF-£æQó¨yÔ,j5‹¶‰¶‰¶‰¶Ž¶Ž¶Ž¾}3úfôèÑ7¢­¢­¢­¢¯G_¾mmm}-úZôµh‹h‹h‹¨IÔ$jmmm~~~~~~~~~~~~~~~~~~¾¾¾¾¾¾¾¾¾þ#üGøpu¸:\¾¾¾¾¾¾® W…«Â·Â·Â·Â¿„ ÿþ9üsøçðÍðÍðÍððððáÃ?†¯…¯…¯…¯„¯„¯„ÿþ!ü}øûð÷áKáKáKá á á áŠpE¸"ü]ø»ðwásásásáoÃ߆¿ —‡ËÃåáoÂß„¿ —…ËÂeáÓáÓáÓauXV‡O†O†O†O„O„O„‡‡‡KÂ%á’üâ_ÞîçOòa.ƒ0      † Ã…á¯Â_…¿ ç‡óÃùá/Ã_†¿    ç…óÂyá/Â_„¿ïïïþ<üyxoxoxoø³ðgáÏÂ9áœpNø“ð'áOÂÙáìpvøãðÇáÃ…? Î g†3û»»Â†? ÞÞÞN §…ÓÂÛÃÛÃÛÃÛÂÛÂÛÂ[Ã[Ã[Ã[Â[Â[›ÛÛۛ›ÂÂÂÂ)á”pJx]x]x]xmxmxmxuxuxuøýðûá÷Ã+Ã+Ã+ÃÉáäprxyxyxyxYxYxY8)œN / / / //// / / / / / ÏÏÏÏ Ï Ï Ï Ï Ï Ï Ï Ï ÏÏÏÏ Ï Ï ÏÏÏOOO'„ á)á)á)áÉáÉáÉá‰á‰á‰áøp|8><><><><.<.<.Ž Ç…Ç„Ç„Ç„G…G…G…G†G†G†cÂ1á˜ðˆðˆðˆð°ð°ð°ðÛá·Ão‡‡„‡„‡„‡‡‡………„„„û‡û‡û‡£ÂQá¨pßpßpßpïpïpïpd82ŽG„#Âááðpx¸g¸g¸g¸G¸G¸G8, w w w w w w w w w ‡„CÂ!áàpp88Ü)Ü)Ü) …;†;†;†Âá€p‡p‡p‡°_Ø/ìö û†}ÃÞaï°wØ+ìö {†=Þa°GØ#ìv »…Û…Û…Û…]Â.a—°sØ9ìv ;†Ãa‡°CØ.l¶ · · · ˲°,l¶[‡­ÂVa«°EØ"l6›‡ÍæaÓ°i¸M¸M¸Mø­ð[á·Âo†ß ¿þ_øáÿ…[…[…[…ÿþoø¿á–á–á–áÿ„ÿþO¸y¸y¸yØ$l6 Ök‚5ÁgÁgÁgÁ¿ƒÿ> > > > > > > > > þü+øWð~ð~ð~ðÏàŸÁ?ƒwƒwƒwƒ¿þ¬V«ƒ¿ þ¬ V«‚¿ þü%øKð—`e°2X¼¼¼ü)øSð§àÁƒ?¯¯¯¯¯¯¯¯¯///¿~ü>x1x1x1x!x!x!x>x>x>x.x.x.x6x6x6X,–ÏÏÏË‚eÁ²à×Á¯ƒ_ÕAuP<<<<<<, –Kƒ%Á’`I°8X,Ò Ò â ¢ ¢ WTUÁ£Á£Á£Á¢`Q°(øUð«àWÁ‚`A° øeðËà—Á#Á#Á#ÁCÁCÁCÁƒÁƒÁƒÁ¼`^0/˜Ì æ÷÷÷?~ü<¸7¸7¸7øYð³àgÁœ`N0'øIð“à'ÁÝÁÝÁÝÁƒ?f³‚YÁÌ`f03˜Ìf? ~ü0˜L¦Ó‚iÁ´àöàöàöà¶à¶à¶àÖàÖàÖà–à–à–àæàæàæà¦à¦à¦à†à†à†`J0%˜\\\\\\\\\\\\\\\L&“ƒËƒËƒËƒË‚˂˂IÁ¤`RpIpIpIpqpqpqpQpQpQpapapap~p~p~p^p^p^pnpnpnpNpNpNpvpvpvpfpfpfpFpFpFpZpZpZ0!˜LN N N NNNN N N ÆãƒñÁñÁñÁñÁqÁqÁqÁ¸`\0.8&8&8&8*8*8*Œ Æc‚1Á˜àðàðàðà°à°à°àÐàÐàÐààà`t0:ìììŒ F£‚}‚}‚}‚½ƒ½ƒ½ƒÊ 2¨ F#‚Á^Á^Á^ÁžÁžÁžÁîÁîÁîÁ°`X0, †»»»;;;C‚!Á "¨*‚ò <(ƒ‚AÁÀ``00 ýƒþAÿ _Ð/èô ú}‚ÞAï w°}°}°}Ð3èô º݃îÁvÁv1師HIDATÁvA× kÐ5èt:‚NA§ CÐ!è´Ú탶AÛ m°m°m°mÐ&h´ Z­ƒÖAË eÐ2h4šÍ‚fA³`›`›`›`ë`ë`ëà›Á7ƒoß¾|#Ø*Ø*Ø*øzðõàëÁ–Á–Á–Áׂ¯_ ¶¶¶6666 6 6«ú¬ê³ªÏª>­ú´êÓªOª>©ú¤ê㪫>®ú°êê«>¨ú êƒª÷«Þ¯z¿ê½ª÷ªÞ«z·êݪw«þQõªT­®Z]µºêoU«ú[ÕÛUoW½]õת¿Výµê­ª·ªÞªZYµ²jeÕŸ«þ\õçª?Uý©êOUoT½QõFÕëU¯W½^õZÕkU¯U½RõJÕ+U/W½\õrÕï«~_õûª«^¬z±ê…ªª^¨z¾êùªç«~Wõ»ªßU=[õlÕ³U¿­úmÕo«ž©z¦ê™ªßTý¦ê7U¿®úuÕ¯«ª«ª«ª«žªzªê©ª'ªž¨z¢jiÕÒª¥UKª–T-©Z\µ¸jq~Ù>¿\—oÛÀ_él ¥‡ €6°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°(°¨—¦%Ïψ¯ælßxßwåµ+¯]ym××»¾Þõõü{uÞ¦ó6·ùÇÿñÇüÑ jÙÌ×Uþ ’?›äG—?ËäÏ8ÎaŠJ,ê¥iá'ÅÆ>Ûÿ_{÷v唸_Ƙï¤sÒAG¤ƒ¢B*‰ rÖ(EŸLNEç2Ä ™!ã0©©9뤑D‘c)S¢BB9=è  QÏï5ìÏoÛ{ö~öù~^¯ûºöÕÅÞ÷½öÚë^û~î÷^kåâˆ;îl¸³a¯>½úôê{¬¿ÔùK¿Ô©œý‰vÎå(õó…uk‡[;ÜÚ!ö=žpì ÇžpløöÑ’ˆ°H‰­=wml̨1£ÆŒŠ=JóEÍ5_ÕVí\çreëç këÜ­s·ÎÕßPy€À@JÀhí¹hc«oZ}Óê›â2ñî‰wO¼»2÷'Ú!8—£ÑÏñËÆ/¿,öÖZ\kq­Åz]¢G,R’üVé]§~sû’ü´ö¬¦jyÕòªÇ]vÜeÇ]»ÿ–W´¼¢åÑnÏ`p.WŠ~¾È|sã77~scüû hÏD‰X ¤DTƒÖžÝÖ>eæ”™SfÆïÿžæ÷4¿§ye®a½ 8—]ÕäÎßÎùÛ9;Gß @´ €À@JD5híÙjíß þnðwƒ¸ð€ ¸0vÏÚ4jÓ¨Me8§Àà\vUS(‰Æ·>¾õñ­ßÞo{¿íý´mJX ¤DTƒÖž­ÖžhôÕÐC†2ô°^œË®jÔdB,RâF!Z{æ­ýÛ+¾½âÛ+ö¿qÿ÷ÿ‘ÑW‹–,Z²h‰Ö«€sÙUM®-ØmÁn v‹ïavŠ0S…@é €€”¸UŠÖžykðå_~ðåD7Ü<Ó«€sÙUM~ìl¸³áΆê€¨ €(ya£YÍf5›ÕlÄó#žñüQ¯õúQ¯‡©õûÕïW¿_­Åµ×ZÜle³•ÍVvx±Ã‹^¸ÇÀ=îqûg·vûg¾ñᾑŸÒîh½£õŽÖ 7,ܰpÃðW‡¿:üÕžszÎé9§Íámosx©u¦Ö™Ú°KÃ. »´«Ú®j»ªgzö¡g&Šüzñ׋¿^œÏºÝ´yÓæM›§Ìœ2sÊÌ~çõ;¯ßy/è|Aç ïÙxÏÆ{î=dï!{ õyÊ/Oùå)¿¿lü²ñË6LÛ0mÃ4-3JmcéU?¾%zþæ7¸ùÃÐN®rý“ë´î u­«;©î¤º“Bû9dÂ!™pÉ^—ìuÉ^Ï7}¾éóMóSÏß÷ú¾×÷½žíþl÷g»‡©V{¬í±¶ÇÚÐcÔž[{ní¹ûMÜoâ~»ÿªû¯ºÿêœ/Îùâœ/þ~äßüû‘[VmYµeUen •ç¡Þ/ŸV¬_±~ÅúI·MºmÒmáÛùð¾‡÷=¼o8+ë¬7²ÞÈpn6ÙÜds“ÍíÊÛ•·+ï½ ÷‚Þ þÐó=ÿÐó…š/Ô|¡æ]~èòC—âoíÝwtßÑ}Gü>¯­{mÝkëæ®ž7î¹qÏ{N¿fú5Ó¯ õܵs×Î];·x¢Å-žˆíýºµêÖª[«ßü~à÷3.™qÉŒKÂkóÙŸÄ×s*l]°uÁÖ‹~sÑo.úÍ ŽhpDƒ}§ì;eß)¡o «W†ëÀÐ6^9â•#^9¢¼jyÕòª®E£w½‘Hh-a´½>3×}féžËù¹ª)þ¿þ®ê}Uï«zÇ×ÀÑ ^xôBW)”.°€’´uîÖ¹[ç†[¥Õ2V½Jõ*Õ«„¯«²®Êº*¹(ó#=rÐ#µ¼¢å-¯¨X9µiÔ¦Q›ðïÜÅ a²¯?=ò§GþôHësKõ-Õ·„Õè«F_5Êî­–üGP¹>bñ·Ôk Ä`™œk«­­¶6ÛŸcÕòªåUC˜n¾gÞo„^¨²õÑ€õ~y:bÕòªåUCTväWG~uäWÕ²jÂß'ü}Âß3Ÿ¸2ï}y“åM–7I´Ï7§¿9ýÍéÙýCxp;×ì{;٪áðŸ\·®Øz^ùæÊ7W¾Ùé¡Nuz(“’‡ØÌµh”¾e>òÙφ\ÿÊõ¯\ÿJ ›~Ðôƒ¦„ç7½­émMoK´·ð¯\Ôs¢¾ƒë>¿îóë>RŸYºç²+ü Ô§qÀDX @‰yýë׿~ýëØi³k¯1{ÙkL¶þÐ cÈÂÈì–3Œ&Éîäï7~¿ñû^qðŠƒWd«œÍ5_Ô|Ql93Ÿ&.ÿÍå∥Õ6’1Œäcž2/aùîYïžõîY™—<„pÇŸüùÇŸŸÝzëw.;{ÙÙËή<½DToêýòsÄö½¾ïõ}¯¯–ñ1|a[û°5ÃÖ [¿·0GBv?Á6‡uÙ­Õжÿ3/Ç­+ŒWÎVÉk|Tã£e^Ï®E‹á[&ŒœNþü–ë[®o¹>Ÿå~ý×_ÿõ×MtÜ5ÝÖt[Ó-J}féžË¹èçKëŒK¥6¾»”"°€’‘Êo“³%LÆ•ÉØ_¶ý²í—mÃ$Šù)s&uÆšäîVf˜.5[ï¥Ô#Òj©ÔÀ¨ïF}7ê»ì–9L&Í«X™¿èúE×/º†IsW·aʾŠÕsôZB)~³èýòsÄ0Vò°ßöûÃ~_-N8ö„cO8¶bS†f·ž“¯³xáè G_8:[ŸZ˜27×u›yQ­¸-­o™°ˆÃ·_pû·§RžÔûöl}½ôÑK½”è(±Áp”úÌR<—sÑÏ—âëüûοïüûýäÑ8`J‘X @ ØÞo{¿íýR¹ n¬<ü?ÿÏÃÿ&۴˦]6íVî “+†É¸Â4qÉ÷ÖÆ 7mS/mˆ¬ÂÚNÉ÷VŽ ¿ˆ_·eÝ–u[ÂZea¥½0¶&Lj×d—&»4Ù%Ñ~b§ L·nêuí7¶ßØ~còÒ†2„U¸þyÒ?OúçIá6Ƕ‰Û&n›ÆkN¼{âÝï+Û%ÙY™#Òj™ÜÚ k¹=ZëÑZÖútä§#?F±,Z²hÉ¢%sñ1“»Û[¡žÃʾÉ÷>‹©“§Nž:9áŒÿ~êê§®~êê°NplMÆ‹p²2·„ÒúfÑûå³÷»tû¥Û/Ýž|?á<ºñ/7þåÆ¿,¹yÉÍKnŽmóá'«þ±ê«þÖäã«’Ÿ›™ÔLv÷ÞQ¢½Mî1¹Çä™^a:ÜTj#ÔÞìm³·ÍÞ"«0ìúyëç­Ÿ÷ØÇ}üØÇ§~yê—§~™|?±Ó“æú›å?½â§üpÊsžûð܇?žôñ¤'…sù_þëÀxOó{šßÓ<•+Æt{E×¢Åð-3äÜ!ç97õÖàßzñ­ßJôœze«ÏL>.ùÁ—|ùÁ—£×g–Ö¹œ‹~¾tϸXɧ.PŠÀ`JÀ´[§Ý:íÖ„o©¾¥ú–p+-w7,RßçØŸýùØŸ'¿Uúä-OÞòä-©ï9Ó~c…‰UcWž‹¿ —|ÏÑn ¥ò¢÷Ëgï÷|Óç›>ß4ÑkcÇL箜éö$¹híÝÕýWÝ•(¾Ê¼’q Ò~+Öžs±Ï0Bº°%w-Z<×AXµ}mµµÕÖ¦ô Ž6rØÈa¹ë?Ãʾ‰öûÇgíçÞÚ÷Ö¾·væ·l³Nuz¨ÓCñGÙ§Ñ>öi”ÊQ®îxuÇ«;&*m‹'Z<Ñâ‰0mo&¥ý¡Ë]~è")­¶Q±Xvö²³—îžÃÔ‰ö;B%•½ÝpÏ ÷ÜpO¢½…•ír}Û4ùþ+CK(”×w}}××wMå]èýòÙûMºmÒm“nKôÚ¿ÔùK¿Ôɼœï\ôÎEï\”|ÌY¡à°–g¢ýóà1ó`æŸÝÀï~?ðûDGé3®Ï¸>ãrÝû Z>hù åÙm]aÒÚLJ¦fM~”0i³kÑRù–iWÞ®¼]yX`"õ='ÝxÑo.úÍE¿É¤Nbï¥/ÍxiF*û)Å>³´Îåìöó¥~Æ¥^'é^“@1 €(ɧ) k&e²ÿ0z`Ôw?¾…5¨’ï!ùe±kLf«NfÿtöOgÿ´b·-’ÿ¾;H}•²TÌ»kÞ]óHiµŠÕ@ìȶt÷œ|ÄLêeN%l«XD/ì'Ýs§2´„b¼üz¿|ö~Áe³.›uÙ¬0Î5~K=¶ÿ/R#U¨ø…š/Ô|¡f¢ý\9èÊAWÊä­‡©“—ö'ßxò'3¯æ°žh¢£Ô™Zgj©Ù Bh—yÉc'_­Ø'ëZ´x¾e§™Ý>-v½ÕŠí¹ããïøx¢¸:õ=—bŸYZçr¶úùhœqñ.{ùØËÇFcÆ €(±¿kŽV\+l —ܼäæ%7'Ÿ0»GL¾Òä—Þyé—&¼xjñS‹ŸJôÚìþŠg\¼‰wO¼{â݉ŽF¨»;@© €(G~uäWG~•èц]viØ¥°·¡Çþ|ìÏÇþ<×ãS¿m¦‚LXÚoÇ~;öÛD¯zÈÐC†R¨ !zHiµŠÕÀ£µ­õh­BÕp0îÝqïŽ{7ÑkÔ¿¹¨áµqÛgC>òÙÊÙŠ?ÖûåÿÜÌgN~æägN.ÎøÒí—n¿t{¢ýÌÛó°5ÃÖ [ãZ´˜¿eÂB™”võM«oZ}S¢ý‡³5Ý}ŽúŨ_ŒúEüÞªo©¾¥ú–õóÖÏ[?¯Øþ¶ÊnŸYZçr¶úùhœqñ¦_3ýšé×$:ʈçG†ò°ßöûÃ~Ÿy{~÷¬wÏz÷¬|ž‰É p-Z ß2몬«²®Jæuu[‹ÛZÜÖ"ós<ü®~|VØ>³´ÎålõóÑ8ãâ½rÄ+G¼rD~&ô€\ €(a…­f+›­l¶2[*‡ño_ùö•o_™IÙ¸ð€ ¸°xnÄŽEˆ/mëã[ßúøD¯ý¼ÿçý?OðÓ‘ŸŽütde‹@J«mT¬š¸…ªá Õ™­Îluf¢×–PvBÙ …íÁ*CK(þï½_þÏÍDB¿±ôª¥W-½*¬ÊÙ{Aï½äºå翵·x¢Å-žÈ] µï”}§ì;%Ñþ¿jôU£¯e·U„5ÑcûºLj8%O~&ÆŽ‰t-Zœß2›6oÚ¼isæ-áƒ>øèƒ%„¦©ìçò±—½|lür±¢|1÷™¥x.gÞÏG㌋÷~ã÷¿ß8ÑQö¿qÿ÷¿Q @© €(1áþ0gõ*Õ«T¯’Ý?žÇŒ3j̨0Î#õRí=dï!{)ž[M67ÙÜds¢?ÎôjЫA¯D¯ýnðwƒ¿œ‹Ï.Œw©lHiµ\Ü Ëu õûÕïW¿_¢×æsN-¡˜éýònÆÚ:wëÜ­sÿôÈŸùÓ#ÙmÏ{ÙkÌ^cŠ3®7²ÞÈz ƒŠt¯7âÕTwRÝI‰ö¿½ßö~Ûûe·U„5Ñc{ãLj8%O~&ÖZ\kq­Å©”ܵhÁ¾eª–W-¯šëþ-•ˆkgà w6L´‡á¯uø«™÷É¥Òg–É{Æ/L^è(±×QîKPüÀ`JXø»ºãÕ¯îxðŠƒW¼¢P¿|¯=·öÜÚs‹ç@lyâK[sUÍU5Wå? 7€*[RZm#7Èr]é´ê05baû+-¡èýòn ¶.غ`kò±ª©aj×Î];wí|þ}çßwþ}³šÍj6«Y1®¾¥ú–ê[r×;å?+‰æ:zÉEÉ“Ÿ‰ »4ìÒ°KÅÚ‰kÑRü–¹ãÚ;®½ãÚŠqᆅnHôª×j¼Vãµ™”­´úÌÒ=—3yïÑ8ãÒíák|T㣠€(`0û½6ö۱ߎýöÄÃN<ìÄÃ’¼ÉÖíæ‹š/j¾(Ñks±Ò[êuÿßc!/w“å~Ñõ‹®_t-±¤jyÕòª™±´ÚFÅê<»çoÅŽ’|BÎlM™ -¡èýòÙûaÂÒÔ¿mÃØ»-´ÐrÜ»ãÞ÷îsíŸkÿ\ûTŽXœpòqç_¶ý²í—m3ù ò?t(s¢#ÆNyI ç¢äÉÏÄØ)â]‹V†o™Ï†|6䳄#8¯ê}Uï«z'zíïöûÝ~¿Û/þU©¯¥>³tÏeg\º=|Å~(…"q±ßwã—_6~Ù™#ÎqæˆÔoÆ¥ò{ê/vx±Ã‹‰öV+ž:i¿±ýÆö•ö'ßxò'sqÜw.zç¢w.*­$LÀ˜ÉK«mT¬Îs½ÿTŽ’|ÜU1Ô³– ÷«l½_¡µßÄý&î—p¢Î0:và÷¸G¨ÿLÞKqÀ±ÓÉÆ{ïÄ÷N|ïÄL>©Žw|¼ãã‰ö¿¦Ûšnkºe·=‡}&:bly2©áwÏz÷¬wÏÊnÉÃ:»‰ŽØå¸.Çu9.×#é]‹Û·L¢cµ9¼Íám~òñ‘}æ¯Ïüõ™Š•¤tûÌÒ=—3yïÑ8ãâ…o¥Dï+õUÞ €ÀTR±ßƒíÊÛ•·û/·.{ùØËÇ&Ú[¯>½úôê“赯¶{µÝ«íŠç½½ðè…G/LTÚ)3§Ìœ23Ç}ä Gzä ÒŠ@Þoü~ã÷grÄÒj«ó\ï?•£wÙq—wY¢×>sò3'?sraëPKÐûU¶Þï¡§zú¡§“Çó‡Î:hñô$¹híÉÚeg/;{ÙÙ™¼ëŽ=áØŽM´ÿ'æ?1ÿ‰ùÙmÏ/}|éãKñøó?ÿøó3oϳ·ÍÞ6{[>ÏÄþgô?£ÿùìÍ*óµhñ|Ë<ðöo?ðvêÇ}êê§®~êêL&?^ŸYºçr&ï=g\¼—/~ùâ—/Nô¾™pÈ„C&€(`0”‡u“ßèôP§‡:=”haí·|ÞøÈÄðW‡¿:üÕD¥½d¯Köºd¯\÷ÊAWºrPiE ³:û§³šÉK«mT¬Îs½ÿTަjLôÚ[Žºå¨[ŽÊn„Q\Ýwüÿ·Æh ÅIï—ÏÞï´÷O{ÿ´÷½ê†{n¸ç†{²[æâ €{/è½ ÷‚Dû aR&ï:yßê9»íùOüé‘?=R±‰sS¯áQßúnÔwÙ-ùÈa#‡–舷v¸µÃ­\‹V¶o™°HDÂvø‹Q¿õ‹ØçŸ7û¼ÙçÍÎÅJ·Ï,Ýs9“÷3.Þ“·~ìãÇ>NôÚ£^?êõ£^Ïn=w¾ ó/ˆ?Vˆãˬ%½_>{¿ä³¿¾ë뻾¾k¶J»n˺-ë¶g|ÅuW\wÅu‰ö3uòÔÉS'g~¥”hÿ];wíܵsvÏ£ÃûÞ÷ð¾™Ç™„¹8Ÿoú|Ó盺­œß2‰ŽÏùæÆonü&átîóîšw×¼»2)Céö™¥r.g·½E㌋fCIô¾Bôî¥B, ¨x~Äó#žÏÏ/Ê·¬Ú²j˪ŠÝtû²í—m¿l›èµ5>ªñQ²{ë*ѯΫW©^¥z•äÇúè¥^úè¥ØgæúF[˜€·ZÊ2¹Y“­’o»uîÖ¹™—¹´ÚFÅê<ó2gþ™&¯çì–öãIOúxR¢ý_8úÂÑŽÖŠ“Þ/Ÿ½_ÝIu'ÕMx¦„£d«ž³5Év.Zû]§Þuê]§æbÅР섲ÊNÈOÛXõUÿXõlõcÙ:/2?viØ¥a—DÇr-Z¾eRéCÍ‹Ðâ‰O´x"ó–nŸY*çrvÛ[4θxa†›DïkrÉ=&÷p€R!PÔÆ~;öÛ±ß&úôØ?ûÇcÿ˜­cýãoÿøÛ?þ–ü×ëÉÿ´N~!Q,”®M»lÚeÓ.‰Ž»Âe&·<ö›¸ßÄý&†‘™”vGë­w´¿LÏÖí¡š«j®ª™ðöè´[§Ý:íÖÌëùúW®åúWòÛ[ÛH·ü™—öò±—­–¦äûÜÿÆýoÜ?á|­;hÝAëþ=åßSþ=¥be~¡æ 5_¨™Ý2—VÛˆW*p®ëyÅúëW¬O´Ï½‡ì=dï!Qê%òßòCï—ŸÞ¯Ëq]Žër\¢WÝ|úͧß|z&Ÿc}{ã»8àíý¶÷ÛÞ/Ñ~B-eÞªSÿì*¶ÿû~vßÏîûYò=/غ`ë‚­Ùíù3/yò)¸ƒWÛ½ÚîÕv®E}Ë$:n»ªíª¶«šèÿ®¾iõM«oÊüè¥Ûg–ʹœ‹öVêg\êíp¯1{ÙkLi]ï€X @q«Z^µ¼j*£µÂŸßéî>Ü–Må†ÂK3^šñÒŒÌo%TßR}Kõÿ¬¹Þ]*ûܸçÆ=7î9p{ Ü#Ñž™pÈ„C&¤ñgy u+L2™ÊŽ¿üÝàïW,üH¥ü}¯ï{}ßëSÙOºcøâW½ªµ¸ÖâZ‹ósƒ¬ˆÚFš%ÏüDÏgló&åK¹žÃÚ{!`K´çî¹ážîÉ|Dxé¶„0Õm1lz¿bèý®­{mÝkë&zUìþÓm‡OxzÀÓ¸ð€ ¸0wÁCvû½üLš¼ÌµçÖž[{nºÇJ%úí3®Ï¸>ã²[ñbǾ§²ç™\9èÊAWJ¾çófŸ7û¼ÙÿeÏ®E#t½‘Ü“·÷ w6ÜÙ0ŸýÞMÿ{ÓÿÞô¿¹îKà åÚ4jÓ¨M*ŸÝœÕsVÏY½aÚ†i¦…:ÿž½mö¶ÙÛN:à¤N:࿜»4Ù¥É.ŸŽütä§#³ÛŸzá7zC¢ÿ‚ºpÜo¯øöŠo¯Ÿì=Íïi~Oóä¯ öi´O£}}6ä³!Ÿ q-Zy®7’ qcê}ì½µï­}oíl½tûÌÒ:—sÑÞJ÷Œ‹~b’èˆþíŸûçߺ/@i €(á¦CþÃ0VøýuºeãCl»†Û@3.™qÉŒK2oQgj©u¦æ®œ©O»ú_Š›æè½ŠÉîÀ¥Û6²{ƒ¬bû¯ØQ^ÿúõ¯_ÿºéM?húAîê¹A¯½ôzãÉ7ž|ãÉh÷©R¥ëýòÓû庴aêõ°övº¯}ìãÇ>~ìãüô{áF~­°·úýê÷«ß/w5ß°KÃ. »„¸"»£¢cc§íd·äa"ÓØÕv]‹Vžël}ÓÅF§ù?z±õ™¥u.箽•âëöÏnÿìöÏ7[S@> €À”Œ0Ö*?·Ûz/è½ ÷‚Ínþpó‡™ßÄiÛºmë¶­³[Â0¾'ŒÑÉn—úÈ¡T„ ëxû·x;»±M˜”5vê³Ì…©8ÇŒ3j̨ؒä"ž,ŶQZpìžlx`ó|ã>Œú]²òôQ €õ~¹îýv´ÞÑzGë\|¾êôP§‡Þœþæô7§‡ÿ2ó”™§Ì<¥8àäûÐr@Ë-³{ÕöÜle³•ÍVf·æÃtÇ!êÈEmÄ·À0Î8[½âsíŸkÿ\ûЕܵh©_o¤bᆅnH^’s_8÷…s_ÈE©J±Ï,Ås9×ý|©œq±Â7Qüqcg7qG€Ò"PjbÆ?µ>¾õñ­ÏÖÕG48¢Á bÇie«ÈaRÙ°ÏT¦M$Lö5hù åƒ–‡Isñ§øçý?ïÿyÿ!ç9wȹ±“V¬>ÃÈÈÜ…©aÚ´Øú©XiÛ•·+o÷¦>‹=JG•hËäS(•¶Qºp|=‡ñ"«ç0âgØšak†­ ÓýU¶^"ª°Þ/ç½_Ìww&A{ˆ3'÷˜Ücr9zš#¤ó~oô{£ß‹ß[ì$ÀÙýNß´yÓæM›G9lä°Ô×uŽÖ¡‡¶—Ïo–ð_Žýã±<ö+ÿœñÀ„)²³PÏ®EKöz#©ŒöÓ/ççïâï3K÷\ÎÏ•gñÿõ—¼%„yAÜ„  €À”²˜?V¯ûüºÏ¯û<Œ–hWµ]ÕvUÃ\ávg˜Þ³ù¢æ‹š/ ¿¸ÇÀ=î1öçc>öçaJ«üÜZнeFtkÕ­U·VaãúŒ e AE¸yFm†Òþn¿ßí÷»ýÂ:|Åð«öÒj¹hiû¿éÚ²j˪-ÿ‰ÊªŠa‚Ͱr[¸ÑzƒW¼â࡯¸û໾ûà溞+sKÈO‹Òû¶÷‹}¿ál¿±ýÆöC݆Z{hù¡´ó‡Î:h*¥ «HÆÆiaÌYã=ïÙxÏžszÎé9çâc.>æâcÞ¾òí+ß¾2Ÿï}mµµÕÖVKþó‚üÔ|éuxßÃûÞ7\…š=aøï¡÷›~Íôk¦_S<½J(Iø!Α_ùÕ‘_…ÖÚyhùdzòôE¥{Æ… Ä—á7ýæ±ß<¦ t €À@^å?ÐûQ<æ><÷á¹'Zß1ŒÆSKäÚwƒ¿üÝà0þ8þ[é©«Ÿºú©«Õ¥K,òJèýô~•Y*+Œª%r-¬ëÿÔù‚Ît¾À÷¥N,òJèýô~ÌÞ6{Ûìmñm ÿýÏè†ú ×Â7Nü7ÑãK_úøRõ@© €€¼z?½åUË«–WoµçÖž[{®ö@îlÜsãž÷ŒÿêÚ¹kç®} `0W"@ï§÷#X°Û‚Ýì¦=O7ÜsÃ=7Üÿ½³`ë‚­ ¶ª¢A,òJèýô~$o z5èÕ ×—m¿lûe[õ@¶|Õè«F_5 ß2±ß;ç¾pî ç¾àj€( €€¼z?½±>ùéÈOG6ìÒ°KÃ.Z¹s;×ì{;±ß2Ú4jÓ¨ÍgC>òÙõ@”€À@^‰@½ŸÞTZÈ^cö³×7åÈ\ø6©7²ÞÈz#c¿kf\2ã’—¸ zÀ` ¯D €ÞOïGºíD͉ßßûû{oì7Ës‡œ;ä\ß2D•X ä•ÐûéýHäßSþ=åßSB{èÚ¹kç®zý¨×z]  b6¸ùÃÍÆ~³œòËS~yÊ/}³m`0PD܆ô~@&À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "À` "Àÿ±è¥”·h[R mi¶— ´-ËûöÏm¯h{µ@Ûòm¯h{½@ÛŠm+ ´­*ÐöFÞ·7 ´½U mu¶· ´½S íÝmïh[S í_ÚÞ/ж¶@Ûº¼ohû°@ÛGÚÖhÛP íãmŸhû´@ÛgÚ>/ÐVV í‹m_æ}ûª@ÛÆm› ´m.ж¥@Û×Ú¶hûw¶mÚ¾)Ðöm¶ï ´m/Ðö}Þ· ´í(ж³@[ya¶Å»h«R m×m?ÉÕ&ˆ,0@DD6|À@åÙ¸ì䲓ËN^´8gÛKÚ¬Il5b«ÿjÄ•gâʳqåY{øm•gíáʳêpåYo¸ò¬4láè­.\¨5†+ÏêÂÖ¶¢°µ„­"láB­"\yÖ¶r°5ƒ­l`ëj`+[¸èW.R6¤lHdG `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€ m3îqïŒ{‡õÖgXŸðïu[×m]·UÍPX`H[µ8‹²ø'‹¢f(,0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@yÙð²áeÃç÷™ßg~ŸáÓ†O>­Ù¸fãš«–±°Ÿ°Ï°ÿp,uN.€¨t>Ùý“Ý?Ù}bÙIJ‰e Æ4Ó`Lµ¼ Ç eåñ¹90Q× ¼Ayƒ%–LX2¡g•žUzV©V”BÙB9C™}t¤K @m,ßX¾qñ‹ïX|Gó5Í×4_S±P¶iÛ­³w··Î™»Ï´SŒ~ºÅ¿Ï>i¿–k-} C«oÏ[;åÝÖ‡‡ÿžž^[±ã†2‡ò‡÷â#%`"e]“uMÖ5é¹¼çòžËS\[¿ÓãäzÓû_0~|Ë6¿ß¾hÞAF^½ºS§l=†}†ý‡c¥12xyÏå=—‡÷åó%90%og›mv¶™4kÒ¬I³R‰TëþµaÛ·÷o8¾FËZ£®žÜ©UvãÞ”®žÜ©U(C(O*%ï1¼_Ÿ;ñÀ”°²¾e}ËúvÑmD·ÿe2çëÚu¯Óið93··yktÿÕã;µ,@è›è±ÿêñZ†²…r&/áý†÷® K @IZñΊwV¼“ʨÙAãï»ÕÇE÷¦ðʜʻ õ =€(1ÏÝýÜÝÏÝ<=zæEë›ÜyíÁ+«ulPZÑoìc(x/Éßo¨m0%cî®sw»kò(ô¼?OéÙú¶Ò }=†÷•ü½‡úÑN*30% ù¨ßZUêl©>ð²Y ‡·ß½è7ö1¼Çð~&ž€¢–|­ß¦ƒÚýªNë?ìûÊóêF;ú} ï7¼wkK @‘*ë[Ö·¬oòè÷ê¯}Ýá‰ÊýÆ>†÷ž<u¨-U`ŠÎÎ6;ÛìlÓmD·ÝF$šð¹²úM>8ѤСC}jW•€¢3iÖ¤Y“f%ÕZÖú­ØÚÀ‰j,Ôgq~ÖófÍ›5ï?Ÿõ Óo˜~ÃôÇngæö6o‰r3y uø#ëWéY¥g•âoÂàt €(˜Ovÿd÷OvðêþµaÛ·îºz@§}„¸=v]= Ó>¡>ãë9Ô©´ap*ÀÌIJ‰eËâC»þ Ç×hY+Q¨y퀕ý;Gﹺj§j‚Þä¡>ãë9Ô)¶ap"` aSù¦òM Æ4Ó`L|P÷‡–¯¼Øa¯Dqfì3ÿ·ÊüãÚ ñ& õ_Ï¡þÃgQºMIK @” /^6<>–kýN“ëMOg €+öê6¾ÎÃgv% PóûÌï3¿ÏLþ|Áøñ-Û€s2ôãÇ·l_ç᳈^«œa°€>mø´áÓâã·Ëf.ü]û¯À¹x u_ç᳈v{«ºöððüðœäûŒ¬Ø«Âãù]¦þ¡õˇüå7Uvnpÿ¾»Ôê^³Cí[ª7h4´eÓZï¶ŸüÊúÇþÏ×wýñ€Ç®›üÖ1?«Xê6¾ÆÂgQyÚ^´Ã`0yõý²ï—}¿,>`kÚöÀGëì(¼Üûͦÿª9-<ƾªÞû¿óãý®ntLìé^gÐúÆ5Nm~ÝŒ óÿúÉÿíÔôîØç÷¼bh¯&ÿ:ç…{¦¶:~ÈüY§¶=¶ÏÅ·Ü¿ß;ûŸÐyÀ^ÍSëœÊc¨çø½…Ï¥R·ÌH„Á`òj휵sÖΉÒN]0úéÿÎuüÔ=WWíT-þ™¹€‡w®CûÆÕ×RíúØqɱeø?¯ÚsuÕNiLyü1Ôsü~Âç¢}¥ €È«®¸pÅ…ñáÙÙÃ'í×rM®à6]züPïå„Qk^FÿúèK‡6½<<çø÷~ÿX³)­à{ôª/:^»ÿ.ÿï¬Õ槇zޝÿð¹hŸñJ+ .X\ b Zú@‡Vßæ:>iÃÕ/´Ø5ü;[“9§ûªƒkœØºþ3á9çw™ú‡Ö/§~”ÎÝϜۨqx~ÓËÛXç Ô_C=koù1oÖ¼Yóf €¨tÎ[;åÝÖç:øÎݵØþ]¨¸énž_çÿe^cõ659¡fÿt§€õ¬½åÇöG¶?²ý0•N~FÇ®¶[¨¸ÖÞuVœy…ý¤œO•hðâŸØl6›Íf³Ùl6›Íf³Ùl6›Íf³Ù*ãvûkÜ_#>*ËÏÀ©<¿bðc¹©mÓT^µÏi<^{ßÿ¼ë¹“îl¹%±béÀ‰ÖÖ2mO^ùä•O^9x×Á»Þ5õè7<¿­ @å´vÎÚ9kçÄf§.ýt‹—nÜo츆ûoHåU~ùëÙ{?ž¦¤N7ÄÍä1Ôs|ýk™±Bp{Ãô¦ß0=õÐ7<ëöÖ9s÷™VœðU½ÿyÒÁ+’¿ê°~}›7\•JÜ£÷¯5^žÓ¹û™s5N%f¾vÀÊþh±‡ëîÕàþ}w©Õ½×I—_ÙìµtàPÏài™%úÆWß/û~Ù÷Ë⃴¦m|´ÎÞéÀ¿[4wÀ÷g7ùýÒ­ˆ}U¿F·ÿfÿþËäÏÛªß_íìTà‹«ÏžÙö™ðœêƒk ©v}*ðQlÒ(vÿ±ûI=õ,¢úÆPÍÆ5×l\|´6jó›õ;Îþ/nLÔz̀߭izÀåϽ´ÇA÷^qàK+z)ó8~¥ÞºÝÜYã²ðïË®Y¸Oûµ—Öò©vµNylÔ-îªukÝ«ÿ¥ùÜ{×Ù’úÄÑ]®=û¾FëþóÔ˜wÔ÷¥Û¾ßÿ„îþϯîüú€sjÝë®ú—Äî¹S§Ó¦7X’îØßP·ñu>‹ÊÓö¢úÆPç Ÿ6üG&"¾læÂßµÿ*yÙ⮎3ëvKÔe+T÷þ]Z=?®7‘-ž©ýÅ©ÀaJçjijÛôèÛö®sMÙŠñwKwìo¨Ûø}†Ï"Úí-Ú¡o,00¿Ïü>óûÄGný/?¾e›äAæ%æíwà’6õR½Muάÿ‹û×þxï#jìÚ¤Q›7k¿­8öµÿéÄ­õ?lxã~·×ºµf‡Ú·ToÐh]˲ڻôXrá¤Æß^ù»—Ÿ;øOáù5§Õé]½GxLû(5Nl]ÿ™½5­]óº k-ª¶mŸ—Zý¡ö í9~÷úMÃhàØç§;8Ôm|‡Ï"zm¬ò„¾±À@Ùð²áeÃãã·Öïô8¹Þôt£Ót£ÐŠ=&aœë£d~¬P·ñu>‹h´«ÊúÆP›Ê7•oj0¦Á˜câ¹?´|åÅ{å'Ö­ ¡>ãë9Ôø,J·) }c €(˜‰eË&–ýÈDÐ Ç×hYKp›­ÇPŸñõê¿[ŽÐ70óÉîŸìþÉîñA]Ý¿6l[ãöÑ]Wè´ø6£Ç®«tÚ'Ôg|=‡ú/•Ö"ôM…€ëY¥g•žU⣻ÁçÌÜÞæ-!n&¡ãë6Ôyñ· ¡oºÀØ’ K&,™ã5½®]÷:Fÿvõ½Z‰rÓ~üíê{;µ u_·¡Î‹³=}3! Ð”7(oÐ|Mó5Í×Ä{ƒÆßÿv«ºé>†z‹¯ÏPϡ΋§ }³E @QX|Çâ;ß‘(ê»fꊽ;|)ÖMå1ÔU¢š õ\ Ÿ¸Ð7À‡/Ê¿(ÿ¢çòžË{.ýŽžyÑú&w wSy uõ#ëþ.ï¹¼çòPÏÅðÏ›5oÖ¼YBßìPDÖ5Y×d]“DAàyžÒ³õm"ÞD¡~Õ^¨Ûâù¬wœ¶ã´§ }³K @Ñ™4kÒ¬I dž^6káðöޱ¡NÕX¨Ïâü¬cÇ }3' èìl³³ÍÎ6ÝFtÑmD|œY«J-ÕþaßWžïPWôê!ÔI|]…: õ©]U`ŠTYß²¾e}jm:¨Ý¯ê´¾zÇk_wx¢rF¿á½‡zHTK¡µ¥ÊC @Q[ñΊwV¼“<®l£ÃûMý†zÓ~*0%๻Ÿ»û¹»…aäʰ6px‰&|B]i3•“€’1w×¹»ÎݵZRçýyJÏÖ·E/ú ï+ù{õ£Tf`JLòÑÀÁÑ3/ZßäÎk^Y­cƒÒ }CùÃ{Iþ~ú%P’’¯ kÐøûßnõqiE¿¡Ì©¼;kýK @ +ë[Ö·¬o·ÝFt‘<(mz]»îu: >gæö6oî¿z|§–Eúö_=¾SËP¶PÎäï%¼ßðÞµb €(y;Ûìl³³Í¤Y“fMš•ʨٺmضÆíýŽ¯Ñ²Öè«'wjU€ÐwàêÉZ…2„ò¤RòðÃûõ¹O @¤¬k²®Éº&=—÷\Þsyµ”µ~§ÇÉõ¦÷¿`üø–m~¿}Ѽƒd7î û ûÇJ½lὄ÷åó%90Q´±|cùÆÅw,¾cñÍ×4_Ó|Mµ iÚöÀGëìÝí­sæî3íÔ£ŸnñﳇOÚ¯åšAKèÐêÛóÖNy·õÃáßῇç„ç‡×V측̡üá½øHI…€¨kPÞ ¼Á’ K&,™Ð³JÏ*=«T+J¡l¡œ¡Ì>:Ò% Òùd÷Ovÿd÷‰eË&–5Ó`Lƒ1ù{ÃqCBy|.dN åeÈ— Ÿßg~Ÿù}†O>mø´fãšk6.ó 7ì'ì3ì?K“ `H[|лø'‹²ø'j†Â@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤MLq@ÚÀ'0¤mƽ3îqï°>Ãú ëþ½n뺭붪 K `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B `€ˆD„ "À!ˆ0@D€"B ÿh…cK`Eq%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/share.png000066400000000000000000001266261431412030200245100ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTçúÿ}5Õ˜£`W¢( XQ4VŒ vÅJì±G£ÆÞk°wM¬±™Š¢F°Æ¨±k4FÅØÏ“ïz8?²9( ›áýšµî•uNÜ Ãµï\\gOÀòp À€À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €˜.½¾ôúÒë(‡(‡(‡#G¾ló²ÍË6\ »èïAýý¨¿7õ÷)WúX€>ØcÙci# èÅ™g^œ9qòÄÉ'g'ÌN˜àsÅçŠÏ«Lx$ðHà‘7NÜ8ñÊÅ+¯\4½6½6Ñnæ½6½6½Öß/ú{GeÖ»Rëïwý½¯ï\x},},@ ì±ì±Û9^BtBtBôÁÙgœÝlJ³)ͦXe“aÆÄõŒëדŸ  ¿ô÷Ev½+õ=Aßô½‚Ÿ €>–> öXöX ³¤~—E~ùAä\d/` Gº¹ëæ®›»FuzÔi+ ¶Ñ{£÷Fï®/\_¸òSƒ±éu®×¼%¿+õ}CßCø©ècécúX`e2‚–‰È1n͹5çÖœ A‚¼[3W¶@ÑÛ…M=^8»Tì0w„OÇ5Ûš6½âVñpTë¼µ.«b›åu)SÚT®Sõà¥V³<^nHhRÉu줖žË®µ\bÿ²ì‹Œ´’a¶a¶a¶‰mÛ$òT6„^ÏzmgäÝÑr‰oͲ/&µ êpmCÂäc®c^ZÔÑã¥2eù½:UUqÅÕ:ƒG- ®uy[Ó“Ý*Î1ô¹ãš/ºTìP¶@é:…MïöuõýDß[øi,¹-<¿ÄãÒuÊ­oP9 KÕ .ÒÐçN¿öš1ÙµÌ(¯¥Á5‡µâjÍ:c×ßsé<âò¢ŽŽÓ‚c&³ÿÏW݃‡ÚÜõèí[“>ÈŠ>Ö©æ¥.6ž3ȹ¢gû•³jUYܣ䊨jBÐþ ±ŽMú4ßxÁqtÏ„5ŸVïXzA@U±EàèVvµ¶´Xæañ¥ÿ(\ž>{¬ùYý˲/ô¹œ>£ÓçuúìNŸãé3=}¾§Ïúô¹Ÿ>dÞ`X&`À¢%ÌJ˜•0kj‰©%¦–H£VξØÎ"£zøNsu~m`^¯‡&SppãÆ™µ¾YÑßÞRdþ¶Åêü2d¨{[{ë·m%à ÿ%üS¢)Ñ”ÈO9í79S¢)Q¯á·­ü!C»øÙ[Gæ_y½Î/oV³óŸd2ÅÄ4nœYëùµÛz=\è1â–Ó¨rö6W‹ŒNÿ¹éûŒ¾çðCdW[8¡Tm›«eº4âV­&Ó§mX¿þºu11™µz/[³è˜]Í}ã}W^¯xªyå.~ô± Mú“{V.7»Ï½M÷wL¼uîCí“&]¸P«Vf­_ÙTc}+»q¡vJ ¿2k C 7Í ÜÛÚ[ës6}æ–¹s<}6¨Ï õ™!{,¹€a™€ u¼øñâÇ‹§¿!›æì5°Ú«#{F6عmbú×½Ú»z®êø¤º{ùié9çv¿·û½ÝïË>,û°,?qX>½VõºMO…w|Ò´xùi'zmèï¹*sƒÞô¯F>Ü`Ã4çÐFÕ^¥?Ñ÷~â€÷ÓÇÚ'uü*´‘g³%އgnÜ›þÕ=`Rë ýmKx5iZœ>ô±5Ï´l6ßÜ~Å9oæ½é_G<"ÕŒÿâú0ŸJyèckVPݽü4}†–]<}~¨ÏÙcŒ#†e",Hò”ä)ÉSf-™µdÖ’ô4^›¼›¬rL8зm£~ÙÕ2š[ït¿è;jX°G!ûIéù^¢jGÕŽªM À2éõ™žJÜ5Æ~Ò€ƒ{|GeWèknM8ÕºQ¿MÞS¢]#Óó½è{‘¾/Q€Ìíc„,˜íµyåò¨ÖÙúš[ë¶XXààžJ5Z´ïC‹ÜÓÇú ë]îò7 Ôá5ËgWèknývîé'î·;Ôží_%š>@Μx²Ÿ¤ÏÊ,m‚§Ïõ#{,ðn€a™€‹ð¬þ³úÏê·lØ"0í6kn¨­ãª×ýûíõ÷²´–ÑÜz# [gŸ­íª<´™öw÷CÜq?Ä™’MɦdªÙ,Ù”lJÖk2íºmmççf;óFÀ¾ù> ,-ô5·¾îíæï57tè#ÇUiwú¾¤ïQ #}lÕ^]~úÈ»Ëê‹Ñn–úš[ëL›·zßü2}j=ös£…ñúXçµþ!¥}‡w’ʹ~ki¡¯¹uâ—g?ôÛ¢ýè&vUècXö¬ ÊCÛ™úL,§Lðôy£>{dÒ–‰Èf÷=ï{Þ÷´Ùh³Ñf£¹¦ÊíiÙÐ’Ž×Šuæc•SZFsëÁ¡­úxÜH»‰%’GÉÉg“Ï&Ÿ¥B ¿ÍM>›|V¯Ã´kõàÐEŸxÜÈ)¡¯¹õZ±=g|¬Üž:Ú•t4÷ê{”¾_Q!€ô÷±Å+Ÿw´«Szn£=grJèknui2bÕ¢OècaŒ>¶ûÝ_WÛ‘SB_së°¦‚¿k¥ ÎNOŠEÑǰ¤YA«>7rúOŸCê3IöX mÀ°LÀ@¶¹;ìî°»ÃÒn§_ôþ¬z`òÓàçÏécÊõ¾sϦ :z>,ÿq)ÉÜ÷“<8ypò`ªïé×¹ÁɃ“ëµg®2=º†•’î;ÿÞ cN~S®ÉO¿lœúůTÿ÷oé{Õô±iÿ÷¢J@§_/¨ÿÙÚäã/szô›rõ,°¸Ï/á%[W³v £EÎêcí&¹Éů*µ£¦˜Ó£ßÿZóO¬U éöáë*5¢}³‚ò—’ôy—‘&xúLRŸO²ÇæÃ2Ùà¡ûC÷‡îÿão þÙjÇ#µŒ©×7õúçó8lˆGaû)æ®ÃৃŸ~j 7…›Â©d¡pS¸)\¯7³ÏìÒ5Î~Ê›zÑ¿ù4Rô›z=øç¢ 7iïQú>Fá}lj.ÝFÜ^d¤Ð7õê=eMÇèß*¹¶èÜ5Ž>–ßÇúŒìõk¹+œÝç±ÊPÑoªµG¹±ÕdúXïwVàQØ~Š>ã2öOŸU²Ç©Ã2ïU¡„C ‡ª•¬V²ZIs­ÒIÛö#=»eü¯51¸oãFóÚø wŒ5wMæ´šÓjN+êYG¯1s8¯Í°õޱ¦Ä˜¨ÆŒý¦\OÚnxãyÔÜ5Ñ÷1}O£~€>Vç>l’¶á±£ßÿZ½×­Š‰ª:·«ÿ°õô±°Ì>¶…6æc»“&\ˆ­åaìè7åâ½cŒs9úXY?+ðî«ÏµrÏOŸ[²Ç)Ã2ï˯¦_M¿öéÒ#Ä\“›ØÑ¿Þµ\ý¦Z<÷älîúì—÷ËûeJ ™K¯+sU·àùˆ=NÁ¹'ôM½Æ&n‰®wÍÜõÑ÷4}£– 7÷±½¾ß¿%:E¿©V«nWGì¡…åô±­>WÇî`î }S¯çþ<Åù6},€¬™ør ÎÍ<}†É è€a™€÷dí±µÇÖ3×E7k÷SÝݹ¹qL¹Nt«çÐ×ܵºîpÝẅŒÓkÉ\¥MtëwÒ¡onŽ~S®ÑÍÖzÔÝmîZéû¹³uû~¹µ¹9úM¹VÞÔ®T¿“ô±ÈÞ>ÖNè  ·rsô›rí÷øÇNécdÞ¬ nœC_fwúªÏ3Ùc`X&` Ë]Ž¿9Þ\3´­mÓën•iS®Éáýû¿ù²yÕ@ÛŸ9Íušë47©SR§¤NTÞ^?z-¥®±/›7,m{29üø ÿ7D¿)×mmgÌr«ln7Ó÷:ª rOëÿuó}ÿëÙÀ¦µ¿?Qfuí KÓÇâý÷±5œ÷(=è»;ç£kå#úM¹–[СªL c³‚ª¶'õ™³»”«>ÛdEnFœYì<°óÀNýNÝ:uëÔ­¾xôÅ£/¸2ï†ÈBÉAÉAÉA.«\V¹¬JýŸ¡ Ý×ÙûÒ&š[ã‡umXË\û¸bÆŠ+fPcx7zý˜«®ø¡ŠkÃZĽæÖ¡ »Ü¶÷M}Ýô½Nß÷¨10v[ñEó]n÷š[ë­미ÒÇâý÷±ã œ˜ç^¸×ÜZÿnϳåvÐÇx×YAP׆µ˜×™[õ9'{,r'àŒKj“Ô&©¹˜0øÝYh[ض°maæ¶­„}Û6êGƒ˜özrWûž÷Ì]Ã?7þ¹ñÏTÒO¯surׯPÏ{D¼i¯ ¢õ3û©aÛ¶…Qi`ì>ÖkóÊåQ½i¯îó&Ûl ¥ÅûécC&íˆw&âýë·sO?q¿M àígíwxÞcF—öªÏ9Ùc‘;g\Ê{ÓFœ~À@–xþèù£çÌmR1g¿zã9žÖ0ýëèÐÚ-ª\ý—1G¹r!å¨7¤Ÿ^3©kith¯‰U®î¦9»þ•çxs»œ¾Ro`¼>ÖÝý»×ë_ëð¦×DúXd]ëצßñò±„»é_ƒ×nïçô€>@úfµ[T¹Ê\.ý«>ódEnCœqz «‡»VéFœ6` KüPà‡?H½%õY£\EþÎà[¯O‹…5ìln£¿u-êZU‡´éub®ŠžUv5ìL¬û¶kï‘_~Yñ_îÑ×÷@ªŒÔÇ–/ë÷ã—_è¾õÇA+aÇ•]ô±Èº>v\Ç“ÅÜ«ë¾íZûâWß•mK àÍ ‚Âvf.÷¶«>ÿdEîAœ¹ƒ3 0ÉÝÝÝÍmCw¦wèû=à»­k6ñtžúª;`쀱ÔÒ¦×IêúÙXsr‚ët¢Üw[ïL?xÕ÷{s;ž¾R{`Œ>¶n‡…ίè¾Ûê¸(øÑäúXdnÛþЬ~UVå¾ÛúMWuCÍjô±ÌÏ šxºNg÷n«>ÿdEîAœuƒ3‚Èd»«ï®¾»zêMgÈ"÷ö%i3²¾lÞ÷~#ÕܶþwÜßqÇQHM¯ s•ó²ù‘ÙT¢ÜŒ¬Cuéb_2õµÕ÷C*rz[ñ\óº]ºâfdõz¶jþ‘Ùô±ÈÜ>vB@œŸGe¢ÜŒ¬õõlPn},Àûo³‚¾÷©Ìâ2²ê³PöXäÀïaðÛ"2Ï+Ó+Ó+//¯ÔÍõ3Ýœ|FÐüe|]ÖÔo€óªÔWxõ³ÕÏV?£ ‘š^©kfYÓÑWœWßf|½~f_ Ÿ©¯°¾ê{#u9·­3h^Û}5q3¾V+Ñ«ôè+ô±ÈxÛzþÄ­•çßf|n+r ¡Øcÿ{Và7Ày󷌯ú,”=¹ðûGœÀ@¦¹z3ôfhêmŧb…e¥÷ÒöeÖúpE¯ù~¶©¯³é”é”éÕˆœ22Òk#uÍ<\!ôó³%¾Í¬Õ§¢û­Ò{S_g}o¤ 'ö±¥Ê9®q¿Ep›Y«ç¾¥£…~ô±Èx;:"zš[SâÛÌZí§ÔnPb6},Àû³‚^óýl™¿eÖªÏEÙcalÀÙ‹0Ø` Ó„•+V>õVrpo«ñ-¹[|¸ÁHçÏô³ý½egÉûµå·-Ú'–}‘újß.x»àí‚T#tz=¤®“– }]ʾ°´U¹½Â½Ný¾kÛÆTZS£lÕÎ%Š–œ^|·õ«ªÓ*¹[Ö²®Ïý²7f7Rß±|´¨êºXÚùÜ»ÈÓãqê«­ïT#äÄ>֥݈ÈEžñÊ1«¬¢îVµïüfÈ«25k4è]lB{{ëkÅ¢J„–üÔÁÙe„íýú´øºæ–ñ%Wî°äØæ®GO_úX¼[ëÔ¯a“RsJ°:¡[\gjUúÖ9YâÂ?FÊÞÔ¥‡¥gWlªv>`ÕgM–0õzãÕ?ŸÿÀ"g¬GZÝ·z'w–uê;þ}.Ê c#¶„Á)™Æ©²Se§Ê©·§õ‚¶6 ²Ð0µ`p¡ÆV^MËO/ý_¯åÀ‡lZm¬õi꫽É{“÷&oª:½R×É!›E³j}jÑiÁ˜B­†<è²ÎÞñm;é²ñ3ÏË €ŸÖSN5 ú—1ee§ÊN•©Fȉ}l½ca7”SÙ—Ö>£ØöJÅ?«x·jçôÿW²|—†ƒÛ´©oµ®PL!K €]úóÁ¢Yô±x·>¶G¯«Eç˜'ì =g–[“ú»°´ó7àd-wgúX€=VŸ5YÂÔërý.%ë×´ÊË €õ¹({,ŒØ2™àÙÊg+Ÿ­L½Yx®/w¿ÔNKŽ~§DÔ›\í_>îÏòàGczûùÍL}æÍ‡6Ú|(5 ^©ëäÑñªßLKMç6ÌQû¯_êÙß(¾eyÏqMk´>Uaã‘zùô;ƒgöU}oY¯ÒÝ‹|–òßüDþÐïˉ=×»v/µ3õ5×÷IjrJ[ÒÏá–k÷ì J½¯¯¼M© Î7kÇþsZ+¬ö¯ðëy;ÖrZZfº•G¾)S6û¸ŒýÆgÑÅòÎ~W¿\jUßj½Õ‰”ß‹¥Àõ¬–­¯ÒÇâÝúØ1ëŽw[jùÑo§mógW 37V³Ìs¶ëæ6©ø9úX wÏ zûùÍ´ˆÛÆ·Š®õ_?[t¼­Ó™esý¾wÞ‘žõÙþ> Ã-gާÏHÙcaTÀ–/w†ÁÀ@&ˆMŽMŽMN½A,›ç÷½óKh³þ 陧ペ:Õ<8ñ¥g‡E5¯•ý¤Äßæ¶¶ð‘—Áýû—.|Â:<õù'H*T€ÊÌÍôH]%‚‹¶7½Œ9ÒØ?{ƒÒÄQQw-ªðÄö?EKëçæ±×irÉz ûïÄÿ÷Oéÿ{Ê?eîßÌ®uÙ¼1Ew¤¾òú>Ie@Néc«ÙõòS4{ƒÒACãæý×_Utê;pæ´vúÿ›:ÜÕÿ—Ê«Ú&÷Û®ÿsñ~vÎZÜA{¯[sÄzLÑEúûØ" Š;[×›4áB\-KŽ~Õ:P¥ÆÑbyJî´ÞŸ³àÖ?O¼Qy},[g…OX‡ë³&K˜zéq¯~nÕ;•®[Ü3ÇÌë̬úŒ”=FEœ³äž0˜Èk/®½¸öbêMáô¡§ê-³„6kýÅÆá®žéßÎrJû8d°{[û9ÿû~÷ýîûQ™¹™^©kcÈà.¾ö—†‡.^\«]ÊsÛsa^¨û…ôº)ÿT#¥n3›DË €OÚ|²Þ²ÔW^ß'©LÈ)}¬Gå)ñ›OfoPjß¾}“Uúù²½WÉ==é\gݼGû^þßÍ¿ÿÿÝÀ–W<Õ¼R_úX¤¿­?©§]¹Y–ýŽ/wj°{HÅkô-þù?ꢿTXSàÏwqÞC äÖY{[{ š† Îïv²²¤Ÿ[›«UŸ”«šÓ`}FÊ £"ιŒ™ Ø.Ø.Øî_>:&ºww¿•–Ðf=Ø©¹×„ùŸøt|•z͹ðö ͆ºK}þ'ÖŸXb=•™›é5º6¶_˜yØmœ%¥+ýÆ«5„wû0ç>Zz.Ñÿ”M`É;…WYÎ}À¢%¿ù(Q}Ÿ¤2 §ô±õÊ-‹‘l²7"­üÅâŽñEƒËjÛv÷vhV7=Qn݃‹º„÷þ—ðÌÂ`gïAÎ3ÓÇ"ý}làÅ…Ë«&Yr\»L»ºe‹þs¿ÚŸK¥\&8»ßcUN €Ç9ÞÁm=},[g͆º³œyWóö•ÊŽøçÃÿ{×ÞZµxÎ~ÿy”[tïîÌ `\ÀÆ`¼0˜È®']Oºžü—psêßŃå7a97ŽíX»Þ…ÔçÿÓíŸnÿt›ÊÌÍôø—ŠÝòc½ –”îžïàQ0$¨½`7zpþÎUÿïïö¾íÝÃn±ŽŸ•´³œ8ÉéØRÿ ©¯¼¾OR™SúXï½k[jqžœŽµZ›^çÇœNyß°eÀ¿_µåGúX¤¿8öç ç«–~¹lÒÐÊ÷ôó,Ý»b±"ßlÙ æèœõÐß9œï¡ÑǹuVбv½ –9© ܰNÒú-¾I¿°±-Ó¼èêÂgm¿اºXþ÷µûowYf*\¨±…Îôô){,ŒŠØxŒY²Å—XZøŠµ–SbÔœßõêáâ»3õùÏüiæO3¢2s3½Rׯ]¯C|wZÎ&§þ`çôü›ídÿSåþ¹xØÉn¥ìÃ,íIÀ%–{j­ýÛÞ°ô>ÖzrÑuÅžZ~Ð[»Ë¬Ç»bÝÏLŽß4ÙÅvDé…Ý+:6µï´+å÷RýY¿—ß ¶Ì¸î˜…+  EúûØoöhuk6¶´Ð4¸Ç¶D§s…[ymõ«upá«É}ŽmÚë¸!eЛS`}-²¥x;k?úX ÷Í z¸øî´„I×ÓÈ ßNJynÅ7žb='=ÁÃS*/{3ªÛŸÛ–9ÇÓç¥ì±È ¿UIÎ ƒ €,Ùâ½ó—ÿµt]à¬^ãçõoèúü Deæfz ¤®øyJ“†Þ–ÿ;k-õß0¶]浪-þ¹»"¤¤Cá~·â[ÆÒÎÖ;¿›oéºüR9±-y¨z'7_Ë€‹]®Ø®Ê3ö3§ÏôýþwK>ÿz[ÃÆ(Mèc‘þ>v\©[Ü‹XNP:úuô3·ne‹ÚGí§ŸaËÒcVÚ§ŽxsV\yŠÇ¤µécÜ7+êßÐÛ"ž•›¯ÃÌz_ÿËG%sídç·½A3O·@ýßùùN‹vîë6®Ù×îŽu^««ÿšïYæÝÀú¼”=¹á·*`£ÊYapËyKFÒÆ©ê®ry€³zMˆêÛ©Qõ†ôKˆŠêÜ($gE¿úž®3×Fù¿¿ÿ[¬¶õùðõc-íÞ_}mãÔ0¦\ê r¢2Çë86ŒÉ¹ð}¨àÃ1§Ã[æù{ý¸rCTgê é÷íÒÓÉîw-⣒Wžoìñg‡Mv—þçžûškZô¶Y2©Ð…‚µþ%ÜÍYp°&eK/¢Þ€Ü7+èÛ©Qˆ%LºÂC*þß#Ÿj^+ûI‰¿·µnzÍÍ.å/õŸú¥[ÀØZ³þ%¶°9ž>/¥ÞäNvØy`'0ãujY½}ù•ÀY½¾ èûW#zCú½ 82¿‘fù¡ïï-wó~ݵN‹¯+LHyþµ—8¿)™|Òeãgž1ÿ÷nµÄóïÔ²i×ò+©7ȉl¼&4íšSžøëýýšŽÑ¿ÕI^PäÀ—¿‰]¼¸LÍZ z§üŽÜj~ûëê›?_µèÈ|ê é7¡M\c{KˆH›Z ›WéÿvŒkŠåÛ.¦•Û?11§À5M- Øì§Þ€Ü7+èûW#Í’§vo;ßëÒÄqh…/,í{Ñç¥Ô€ÜéÕŽW;^í r<îæ`X&K¾øUàÑLÓæ…ΫnUlѱÖôs._¨Ìâ";æ2¼†ã«—ÁG66:öïSË °¹r®œr°¹Uÿ.Ê~Q7ÂÿTÊï‹;€‘ÓYÂÀýn«á´Ëê…õ:«®E܋Ͷ.3Ðz÷6çÃúšûS©¿î`y³K¹8#뮢͛¸%ëß‘‹©LÛßq0XŽ\t°þèÆ8R¿™ypö>¸c@Ç€ŽTfn>ôH]–ù àËõwÅÖ¯é±×irÉúy9S$ŸÕý %ú>r°üDþÐïÿ{o挭6÷ `*“ƒƒƒÃòûØœò àôÄÀº¢že]Ë›,-6÷ `úXs}¬%<¸ÃsBªfòà~T¨¸šQ–ÿ `*“ƒÃè³Kypf=?¸øæÂS¬çXÚ”ÏÜ3€©LãýVµìãe/û˜+c¼ãà˜ƒcŽ Îœ/8_ú;^ýßÏEÏŒý˜÷K _±Ö€³z½ëÕÃÅwgêóŸùÓÌŸfþDeæfz ¤®»^‡øî´œ ôZüÞ‰>~ÕúÛí(þ¡~†ú?µfMÝïõ'gE¿úZbi±§ÖÚ¿í-Kïc­']Wìiö†£žk–Ö §<«êÏú½ünpú_Áý‹Iõ6´Ôÿlá£%×ÚØXZ\ẇÐÇ"ý}ì7{´º5/¶´{‚‹l)ÞÎÚ>È}³‚.¾;-aÒ¥ÜnÓ´N}ùÙ—ê|z-¾ëo>~éÿ³{£[~âQPÿŽ›•^T|ˆ¥Mùôy){,rÃoUzXÈ•1=¸ºuêÖ©[Óßßêÿþû}S"2ëIד®'S¿É“œúwñß@œukllÇÚõ.¤>ÿŸnÿtû§ÛTfn¦×@êÚˆÝòc½ –”z5­ùSé~=k¤Ômf“ø·­pÊÏ+'†¾úšätl©ÿ†ÔW^ß'©LÈ)}¬÷Þ5Ž-µœ»x+÷ÿªQúÿlõÏûØŽWõ?k³Å=ÌÇÙÒ`Î߯Úò#},ÒßÇûsóÕì GÇÕ=ñ‡»í¼áM]z¤Mù]ô”Vo®Þ,õÿk ÑïwçÆ{hô±@nt¬]ï‚EÜ#ëYþFéFúY}1¥rñ2±éÿ³C¸gï¨ÿÙ ©FX¥š–3åÓg¤ì±0*`ãɹ¡oJÀ@&¶ ¶ ¶Ký†Ý»»ßJà¬[·_h6Ôm\êó?±þÄúë©ÌÜL¯Ôµ±ýÂÌÃnã,!(+þàW;èŸ{­òZ°j|µüÏÍê¯É¹Ñ¯¾>Š–lüVþËGØÛÛQ™SúØzå–ÅH6–[­°>RØßmÞ„§k;ÿ;kÖ>x¿èçeÖ”ÿç>ûª_í¾ni°³÷ 癇éc‘þ>6ðâÂåU“,ùé¹éy°úZæyŽ9r¼ƒÛzúX ·Î š ug™3ºôLêä¿\Z;Ö:ÞJ³¯ÿûÚÑ6oêl³œ ž>#e…Qƒ1Bß”€L°öâÚ‹k/¦~óŸ>ÔáT½eÀY·ìÞÖþ_¶Ýû~÷ýîûQ™¹™^©kcÈà.¾ö¯öÙݶ`¥àîjzbûŸ¢¥ÿyFÈÜ1Eœw¼íj9ðéC›OÖ[–úÊëû$• 9¥õ¨<%~óÉìHkÅά»c¥õµbQ%BSž[¥“­šö¨±hXÐ|ý£ž]lG”^ØÝ¾}û&!«R~à³þô_ý¥-í)ÅO5¯ÔÅ—>éïcëOêiWnpÖ­žï㼇>È­³÷¶ö1 {r#¨jÃâU––Œ+ÖóŸ¿2o¥Yï»Ö¥E¥5ûÂ[öôhÓê«ãžÝvÔl¶ØmÁÀÆ5ûÚÝIýöÙ]ãéÿM,èùć:œbVã"ιŒú¦D d‚ØäØäØäyØû<¿ïwgÉú2¸_cÿÁ…OX‡ÿˇoH*T€ÊÌÍôø—çs;mnzs¤±ö¥¾Iµ:ÚØfÖSÓ,'^6oLQçÿòZɱɱÉT&ä”>¶š]/ÿ1E-!(ýç9¾a% –îžþÿ2–²u\áþG­’Óžüô“¥Ýû[ß{ݪ˜#ÖcŠ~_ì4},ÒßÇYPÜÙºÞ¤ âjygÅÚúç‰7*¯ r묠ð ëp}Öd9“:§z¥ß’þþ§×çÛ£Gõ]Ñh‘¥Íñô){,ŒŠ8g1vè›0 ž­|¶òÙ¿|Œ‰çúr÷Kí$Î’ŽÓÛÏofê3o>´ùÐæC©Ièôzø—g#^õ›™½AiùBeÙa¼Øs½k÷R;SŸ¡¾OR“SúØ’~·\»[Nhúχ9·oß$dUI¥úH·¾EÚ”n_¶µõÏÅÜŠï.q©êʇl×oÙ|Sß3§µ«oµ®PL!‹‹~ë¯[SÏjÙ ñ*},Þ­³îxq·¥ÀY±Úus›Tü},»g½ýüfZÚ¼î‡ ~Wo6ë[ùXÙú•âJ ,:­h¤õiëòU§•r,¶¬{)§ þ\[O¯íœòOYÚOŸ‘²Ç¨€-_î }S"2Se§ÊN•SoOëmm”S>T9§À‡lZm¬õi꫽É{“÷&oª:½R×É!›E³j}šsŸ³k™ëÓzÊ©†A©¯¶¾7RûØzÇÂn(§,-N;ÖµÌÐ7åêÒÿ›͢Żõ±=ê¬x]-:'~´%¯ãœ¬åîL °Ç곦œ8¯³äiž>e…±[¦Üú¦D dš°òaåÃʧÞ2îm5ÞãqN €sÊÚr¡}bÙ©¯öí‚· Þ.H5B§×Cê:i¹Ð×¥ì "ÛÌ]î]äéñ8õÕÖ÷FªrbëÒnDä"OKSsâjs×£§¯ },Þ­uê×°I©‹D¶™»öøxŦjécöX}ÖÄÌ-sW}.Ê c#¶„¾)™æfèÍЛ¡©·ŸŠ–•ÞK×YëýæûýË“Sm|l|l|L§L§L§¨Füã”é”é”^©kæá ¡ŸŸ-Ámf­>Ýo•Þ›ú:ë{#Å9±-UÎqû-"ÛÌZ=÷--ô£EÆûØÑÑÓÜšÜfÖj?¥vƒ³écöØÿ›ôšïgËü-³V}.Ê c#Î^„¾æ™ç•é•镃—ƒ—ƒWê åú™nN>#hû2¾.kê7ÀyUê+¼úÙêg«ŸQ†HM¯Ô5³¬éè+Ϋn3¾^?³¯†ÏˆÔWXßõ½‘:€œÛÇÖ4¯í¾Ä·_«•èUzôúXd¼m=âÖÊó n3¾·¹†ÐÇì±ÿ=+ð༊ù[ÆW}ʋ܀øý#ôM` “í®¾»úîê©7—!‹Ü{Ø—¤ùËÈú²yßûTsÛ÷ßqÇýG"5½6ÌUÎËæGf7R q3²YÔ¥‹}ÉÔ×Vß©@Èé}lÅsÍëvéB|›‘ÕëÙªùGfÓÇ"sûØ q~• q3²Ö_Ô³A¹ô±{ì¿Í úÞo¤2‹ËȪÏBÙc‘¿„¾o‹Èd‰î‰î‰îæ¶›;Ó»?ôýžðÝÖ5›xºNO}UŒ0vÀXjiÓë$uýl¬99Áu:!î»­w¦¼êû½¹Oß©=0F[·ÃBçƒW‰rßmu\ühr},2·mhV¿*«qßmý¦«º¡f5úXægM<]§3‹{·UŸ²Ç"÷ Î:„¾A d‰ üPà‡©·žÞ#k”«xFðm×§EƒÂv6·¡_‹ºu-ŠªCÚô:1WEO‹*»v&Ð}Ûµ÷È/¿¬x/õõÔ÷@ªŒÔÇ–/ë÷ã—_å¾íZO ;®ì¢EÖõ±ã:ž,æ^•@÷m×Ú¿ú®l[úXÿkVÖ°3s¹·]õù'{,ràÌEè›Y€,ñüÑóGϙیbÎ~õÆs<í`ú×Ñ¡µ[T¹šúJ†” )RŽzCúé5“º–F‡öšXå*núט³ë_yŽ7·Ëé{ õÆëcÝÝ¿{½þ±núW»ozM¤EÖõ±~mú/K ›þ5xíö~Nèc¤oVP»E•«ÌåÒ¿ê3OöXä6ÀG蛀,´-l[ض0sÛS¾mõ£5L{=¹«ýÏ{æ®áŸÿÜøçF* é§×Œ¹Š:¹kc¨ç=ÂݴׄQú™»†ú¾G¥€±ûX¯Í+—GºÏ›l³1”>ï§ ™´#Þ™p÷¬ßÎ=ýÄý6},€·Ÿ´ßáÉçùýUŸs²Ç"w"θ;ì<°“Ð7sY(9(9(9Èe•Ë*—U©·ª¡ Ý×ÙûÒ š[ã‡umXËÜF¿bÆŠ+fPcx7zý˜«®ø¡ŠkÃZ½æÖ¡ »Ü¶÷M}Ýô½Nß÷¨10v[ñEó]nñšýØçõaýWúX¼ÿ>v\óÜ ôš[ëßíy¶ÜúXï:+êÚ°ó:s«>çdEîDœqIm’Ú$µ!ôÍ\À@–»9þr¼Ù¿×¶éu·Ê´‰)×äðþýß|Ù¼j íÉÔWÌi®Ó\§¹I’:%u¢ºðŽ-E§¤NIôZJ]c_6oXÚödrøñþoˆ{S®ÛÚΘåVÙÜn¦ïuTäž>Ö)þë†3f÷¦\½Mk?~¢ÌêÚ–¦Åûïck85îQzÐwwÎG×ÊGÜ›r ,· CU™>@ÆfUmOê3+fw)W}¶É‹ÜŒ8³¤¼˜Ð7ã€÷dí±µÇÖ3× E7k÷SÝÝ´Œú:Ñ­nœC_s×êºÃu‡ëT2N¯%s•6Ñ­ßI‡¾„¾úÝl­GÝÝæ®•¾¿QQ;ûX·ï'œ[ëAô«¯•7µ+Õï$},²·õŸ:¨Â-B_}í÷øÇNécdÞ¬ nœC_fwúªÏ3Ùc`X&`à}ùÕô«é×!=Bz„˜kŒb;ú×»–›ÇÏ}9›»>ûåýò~™RBæÒëÊ\Õ-x>bSpnŽ~c·D×»fîúè{š¾¿QK›ûX^ßïß›£_«nWGì¡…åô±­>WÇî`nŽ~ÎýyŠómúXY3+ð䜛'xú “=ÐÃ2ïU¡„C ‡ª•¬V²ZIsMÒIÛö#=æ¢Æ11¸oãFóÚø wŒ5wMæ´šÓjN+êYG¯1s8¯Í°õޱ¦Ä˜¨ÆrOô{ÒvÃϣ殉¾é{õô±:÷a“´ orQôë½nULTÕ¹]ý‡­§…eö±-´1Ûµ˜4áBl-Üý†xïã\Ž>@ÖÏ |†;Æês­Ü3ÇÓç–ì±@JÀ°LÀ@6xèþÐý¡»UšþÙj‡ÁŸ)ò¦^ÿ|þ‡ ñ(l?ÅÜuütðÓÁOMá¦pS8•ƒ,n 7…ëõf®‡ ég?åM½èßü;ú=øç¢ 7iïQú>Fá}lj.ÝFÜ^dðgýNYÓ1ú·J®-:w£…å÷±>#{ýZîÊÄg÷y¬2vôۣ܊Øj2},€÷;+ð(l?EŸq{ާÏ*ÙcÔ€a™€lswØÝaw‡¥Ý6M¿èýYõÀä§Á5Îo¤–ñ¾sϦ :z>,ÿq)ÉÜ÷“<8ypò`ªï‡^oz홫Lχ®a¥¤ûο„7èh¤Ð7ùéñ—óO¿øõ‚êiïKúÞEµ}lÚÿ½¨ЩÃ× ê¶6ùøK#E¿ž÷ù%¼dëjÖ®aô±ÈY}¬Ý$7¹øõQ¥£vÔ ýæ;ŸX«@ÓíÃ×UjD ûfå?.%éó.#Mðô™¤>ŸdÌ!†e"²Ù}Ïûž÷=m6Úl´Ùh®…r{Z6´¤ãµb]§ùXåø¿-8´Ui·Œ£äQò(9ùlòÙä³T²áW»³Ég“Ïêuø?îÔºè9=ú½VlÏ+·§Žv%Í}§ú¥ïWT ý}lñÄÊçíꔞÛhÏ™œýº4±jÑ'ô±0FÛý«íÈéÑï°¦‚¿k¥ ÎNOŠEÑǰ¤YA«>7rúOŸCê3IöX mÀ°LÀ€ExVÿYýgõ[¶lñ?þ>ÝÜP[ÇU¯û÷Ûëï•SZÆÝ:û,hmWå¡íÌ´¿»â~ˆû!ΔlJ6%SÈîßíLɦd½&Ó®ÛÖv~n¶3oì›ï³ §„¾¯ûG»ù{Í úÈqUÚß¾/é{EÈH[µW—_†>òî²úb´[N }ëL›·zßü2}j=ös£…ñúXçµþ!¥}‡w’ʹ~›SB߉_žýÐcl‹ö£›ØU¡`Ù³‚*mgê3±œ2ÁÓçúì‘=H?`X&`À’zÈ)ÉS’§ÌZ2kɬ%Vé°É»É*×È„}Û6êgi-ã€î}G ö(d?)=ßKTí¨ÚQµ©X&½>ÓSÉÂ»ÆØOºppï(K }DµnÔo“÷”h×Èô|/ú^¤ïKÔ sûXÇ#! ¦D{m^¹<ªµ¥…¾u[,,ppO¥-Úw¡Eîéc}†õŠ.wù›êðšå--ôývîé'î·;Ôží_%š>@Μx²Ÿ¤ÏÊ,m‚§Ïõ#{,ðn€a™€ u¼øñâÇ‹[¥Û4g¯Õ^=Ù3²Á†ìjOôjï깪ã“êîå§¥çœÛýÞî÷v¿?,û°ìòüÄaùôZÕë6=ÞñIÓâå§èµ¡¿çªì }Œ<|¸Á†iΡª½Jÿ~¢ï?üÄï§µOêøUh#ÏfKήÐ×=`Rë ýmKx5iZœ>ô±5Ï´l6ßÜ~Å9ov…¾£‘jÆq}˜O¥<ô±Œ5+¨î^~š>CË® ž>?Ôg‰ì±@ÆÃ2-aV¬„YSKL-1µDú²röÅv½ÐÃwšÓ¨ókóz=ÌÜ6ñÍŠþöþ“"ó·-Vç—!CÝÛÚ[[½¥ð_ ÿÅ”hJ4%òSF“hJ4%ê5ü¶•?dh?{ëÈü+¯×ùåÍŠcvþ“27î=¿vÛ@¯‡ =FÜrUÎÞæj‘Ñé?7}ŸÑ÷~È€ìêc '”ªmsÕ¡L÷FܪÕdú´m37èõ^¶fÑ1»šûÆû®¼^ñTóÊ]üècA›õ'÷¬\nvŸ{›î;î˜xë܇Û37îýúÈþ ë[Ù µSJø•Y[øúX¹iVàÞÖÞZŸ³é3·Ìãé³A}N¨Ï ÙcÌE ËD ä·æÜšskNЀ A¬ÞIÙEo6õxáìR±ÃÜ>×lkÚôŠ[ÅÃQ­óÖº¬Šm–פLiS¹NÕƒ—ZÍòx¹!¡I%×±“Zz.w¸Ör‰ý˲/¬2 Ì6Ì6Ì6±Mb›Ä6ü4aßïÚ$¶Il£×vFÞ-—øÖ,ûbRËà¡×6$L>æ:öà¥E=^*S–ß«SUW\­3èpÔÒàZ—·51Ù­âÜCŸ;®éñ" KÅe ”®SØôn_WßOô½…Ÿ&À’ûØÂóK<.]§Üú•ºT ê" }îôøk¯“]ËŒòZ\sø¸Q+®Ö¬36|ù=—Î#./êè8-8fò1ûÿ|Õ=x¨Í]Þ¾5éc¬ècú7lZêbã9ƒœ+z¶_9«V•Å=J®ˆª&íßëØ¤OóG÷LXóiõ®¥T[ŽneçPkKÛeoPúÂåéc°ÇšŸØ¿,ûBŸËé3:}^§Ïîô9ž>ÓÓç{ú¬OŸûé3@öXàý †e"r¤›»nkÔéQ§G¶²`½7zoô~áúÂõ…+?5›^çzÍ[ò»Rß7ô=„Ÿ€>–> öXöX #€a™€/!:!:!úà샳În6¥Ù”fS²«Y0,`X@\ϸžq=ù¹ú{A_d×»RßôýAß+ø¹ècécúX`e2 0,0`@/μ8óẩ“'Nž89;avÂìŸ+>W|®dV›x$ðHà‘7NÜ8ñÊÅ+¯\4½6½6½æÊf½6½6½Öß/ú{GeÖ»Rëïwý½¯ï\x},},@ ì±ì±Û0]z}éõ¥×QQQG |Ùæe›—<á È6ú{P?êïMý}Ê•€> öXöX@Ú€À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À €À ÞkùAä‘X@®¡ç¤Àã€AäºXÿß#óFæÌ™'2Od-YKÖ’µ$-IKÒ^k¯µ×Ú+í•öJKÔµD-AKдçÚsí¹öL{¦=Óâµx-^{¢=ÑžhµÇÚcíoíoíoí¡öP{¨=Ðh´ûÚ}í¾vO»§ÝÓîjwµ»Úmí¶v[»¥ÝÒni7´Ú íºv]»®ý¡ý¡ý¡]Õ®jWµËÚeí²ö»ö»ö»vI»¤]Ò.jµ‹Úí‚vA;§ÓÎigµ³ÚY-N‹Óâ´X-V‹Õ~Õ~Õ~ÕNi§´SÚ í„vB‹Ñb´í˜vL;¦EkÑZ´vT;ªÕ¢´(-J‹Ô"µHMÕTMÕMÑMÒ$MÒDMÔD-B‹Ð"´ÃÚaí°®…káÚ!ívH; ÐhûµýÚ~m¯¶WÛ«íÑöh{´ŸµŸµŸµ]Ú.m—¶SÛ©íÔ¶kÛµíÚ6m›¶MûQûQûQÛªmÕ¶j›µÍÚfm“¶IÛ¤mÐ6h´õÚzm½¶V[«­ÕÖhk´5Újmµ¶Z[©­ÔVj+´Ú -L Ó´´´´¥ÚRm©¶D[¢-Ñi‹´EÚBm¡¶P›¯Í׿kó´yÚUŸªOÔ'êõ±úX}¬>R©Ô‡êCõ¡ú—ú—ú—z_½¯ÞWÿTÿTÿTïªwÕ»êõŽzG½¥ÞRo©7Õ›êMõºz]½®^S¯©×Ô«êUõªzE½¢^QWWW/©—ÔKêEõ¢zQ½ ^P/¨çÔsê9õ¬zV=«žQϨgÔX5VUO«§ÕÓê)õ”zJ=©žTOª1jŒ£W«ÇÕh5ZVªGÕ£j”¥F©‘j¤©êUQUR%UREUTE5BP#ÔÃêaõ°®†«áê!õzH= P¨ûÕýê~u¯ºWÝ«îQ÷¨{ÔŸÕŸÕŸÕ]ê.u—ºSÝ©îT·«ÛÕíê6u›ºMýQýQýQݪnU·ª›ÕÍêfu“ºIݤnP7¨Ôõêzu½ºV]«®UרkÔ5ê*u•ºJ]©®TWªËÕåêr5L SÃÔeê2u™ºT]ª.U«‹ÕÅê"u‘ºH]¨.TªóÕùê|už:O§ÎQç¨sÔÙêlu¶:S©ÎTg¨3Ôê4uš:MªNU§ªSÔ)êu²:Y¬~§~§~§NT'ªÕoÕoÕoÕñêxu¼:V«ŽUǨcÔ1ê(u”:J©ŽTGª#Ôêu¸:\®U‡ªCÕ!êuˆ:H¤R¿V¿V¿VCÕP5T P¨!jˆ¢öWû«ýÕ~j?µŸÚGí£öQƒÔ 5Hí¥öR{©=ÕžjOµ»Ú]í®vS»©ÝÔ.jµ‹ÚYí¬vV;©ÔNjGµ£ÚQm¯¶WÛ«_©_©_©mÕ¶j[µÚFm£¶V[«­Õ5@ P[ª-Õ–j µ…ÚBm¦6S›©MÕ¦jSµ‰ÚDm¢6V«UÕ_õWª Õ†ªŸê§ú©¾ª¯ê«ú¨>ªê­z«Þª—ê¥z©žª§ê©ÖUëªuÕÚjmµ¶ZK­¥ÖRÝUwÕ]uSÝT7ÕUuU]UÕEuQUgÕYuRT'µºZ]­®VS«©ÕÔªjUµªZE­¢VQ+«•Õʪj§Ú©ÕŠjEµ‚ZA­ –SË©åT[ÕVµU˨eÔ2ªj£Ú¨¥ÔRj)µ¤ZR-©–PK¨%Ôbj1µ˜ZT-ªU «…Õªµj­Z«…ÔBj!µ ZP-¨~®~®~®P ¨Ôüj~5¿ú©ú©ú©ú±ú±ú±ú‘ú‘ú‘úúúšOͧæSó¨yÔ<ŠI1)&%IIR’”7ÊåòJy¥¼R^*/•—J‚’ $(/”Ê å™òLy¦eŸ²OÙ«ìUö*?+?+?+»•ÝÊne§²SÙ©ìPv(;”mÊ6e›ò“ò“ò“²UÙªlU¶([”-Ê&e“²IÙ¨lT6*ë•õÊze²NY§¬UÖ*k•ÕÊjeµ²JY¥¬RV(+”Êre¹²\ùAùAùAY¦,S–)K”%Êe±²XY¬,T* •Êe2O™§ÌSæ*s•¹Êle¶2[™¥ÌRf)3”Ê eº2]™®LU¦*S•ï•ï•ï•ÉÊde²2I™¤LR&*•‰Êe‚2A¯ŒWÆ+ã”qÊ8eŒ2F£ŒVF+£•‘ÊHe¤òòò2\® W†)ÔaÊeˆ2D¬ V+_+_+_+¡J¨ª P(”%D Qú+ý•þJ?¥ŸÒOé£ôQú(AJ¤ôRz)½”žJO¥§Ò]é®tWº)Ý”nJ¥‹ÒEé¬tV:+”NJ'¥£ÒQ騴WÚ+핯”¯”¯”¶J[¥­ÒFi£´QZ+­•ÖJ€ (-•–JK¥…ÒBi¡4Sš)Í”¦JS¥©ÒDi¢4Q+•ÆJ#¥‘ÒHi¨4T* ”JÅWñU|ÅGñQ¼oÅ[ñR¼/ÅSñT<•ºJ]¥®R[©­ÔVj)µ”ZŠ»â®¸+nŠ›â¦¸*®Š«â¢¸(.гâ¬8+NŠ“â¤TWª+Õ•jJ5¥šRU©ªTUª(U”*Je¥²RY±Sì;¥¢RQ©¨TP*(”rJ9¥œb«Ø*¶J¥ŒRF±Ql¥”RJ)¥”TJ*%•âJq¥¸RL)¦SŠ(E”"Ja¥°RX±R¬+¥RH)¤üGùòåsåsåså3å3å3%¿’_ɯ|¢|¢|¢|¬|¬|¬|¨|¨|¨| | | äUò*y•/Ÿ—ÏËgå³òYùŒ|F>#Çʱr¬|Z>-Ÿ–OɧäSòIù¤|RŽ‘cäù¸|\>.GËÑr´|T>*•£ä(9JŽ”#åHY•UYÕ7Y’%Y’EY”E9BŽ#äÃòaù°.‡Ëáò!ù|H> Èûåýò~y¯¼WÞ+ï‘÷È{äÝòny·¼KÞ%ï’wÈ;äòvy»¼]þIþIþIþQþQþQÞ"o‘·È›åÍòfy£¼QÞ(o7Èäuò:y¼V^+¯•WË«åÕò*y•¼J^!¯WÈËååòrùùùy™¼L^&/‘—ÈKäÅòby±¼P^(/”È äòr}¹¾\_ö’½d/¹ž\O®'וëÊuå:r¹Ž\K®%×’=dÙCv“Ýd7¹¦\S®)»È.²‹\C®!×d'ÙIv”eG¹š\M®&;Ȳƒ\E®"W‘íe{Ù^¶“íd;¹’\I®$W+Èäòry¹¼l+ÛʶrY¹¬\V¶‘md¹´\Z.-—”KÊ%år ¹„\L.&“‹ÊEå¢ra¹°\X¶–­ek¹\H.$” ÊåÏåÏåÏår¹€œ_Î/ç—?•?•?•?–?–?–?’?’?’???óÉùä|r9œG2I&É$%IIR’ôFz#½‘^I¯¤WÒKé¥ôRJ¤é¹ô\z.=“žIϤx)^Š—žHO¤'Ò#é‘ôHú[ú[ú[úKúKúKz =HJJJ÷¤{Ò=éŽtGº#Ý–nK·¥›ÒMé¦tCº!Ý®IפkÒÒÒÒéŠtEº,]–.K—¤KÒ%é7é7é7é‚tAº —ÎK祳ÒYé¬tF:#‘b¥X)V:-–NK§¤SÒ)é¤tR:)ÅH1RŒt\:.—¢¥h)Z:*•ŽJQR”%EJ‘R¤ÞþëÿÙ—t¢$J¢!EHÒaé°tX —Â¥pétH:$H¤}Ò>iŸ´WÚ+í•~–~–~–vK»¥ÝÒNi§´SÚ!ívHÛ¤mÒ6é'é'é'i«´UÚ*m‘¶H[¤MÒ&i“´QÚ(m”ÖKë¥õÒ:i´NZ#­‘ÖH«¥ÕÒji¥´RZ)­VH+¤0)L “~~~–JK¥¥Òi‰´DZ$-’I ¥…ÒBi¾4_š/Í“æIó¤9ÒiŽ4[š-Í–fJ3¥™Ò i†4Cš&M“¦IS¥©ÒTiŠ4Eš"M–&K“¥ï¤ï¤ï¤ Òi‚ô­ô­ô­4N'“ÆJc¥±Òhi´4Z%’FIßHßHßH#¤Òi˜4L& •†JC¥ÁÒ`i°4H$ ’B¥P)T( ”J!Rˆ"KÁR°ÔOê'õ“úJ}¥¾R$I½¥ÞRo©§ÔSê)õzH=¤nR7©›ÔUê*u•:K¥ÎR (J¥ŽRG©ƒÔAê }%}%}%µ“ÚIí¤6R©ÔZj-µ–¤)@j)µ”ZJ-¤R ©™ÔLj&5•šJM¥&R©‰ÔXj,5–I¤FRC©¡ÔPj 5H¾’¯ä+Õ—êKõ%oÉ[ò–êIõ¤z’§ä)yJu¤:R©¶T[ª-yH’‡ä.¹KîRM©¦TSr•\%W©†TCª!9KÎ’³ä(9JŽRu©ºT]r$©ŠTEª"ÙKö’½d'ÙIvR%©’TIª U*Hå¥òRyÉV²•l¥²RY©¬d#ÙH6Ri©´TZ*)•”JJ%¤R ©˜TL*&•ŠJE¥ÂRa©°d-YKÖR!©TH*(” JŸKŸKŸK¤R)¿”_Ê/}*}*}*},},},}$}$}$} } } å•òJy¥Ÿ‰ñb¼/>ŸˆOÄGâ#ñ‘ø·ø·ø·ø—ø—ø—ø@| >ÿÿÿï‰÷Ä{âñŽxG¼-Þo‹7Å›âMñ†xC¼!^¯‰×Ä«âUñªxE¼"^/‰—ÄKâEñ¢xQ¼ ^/ˆçÄsâ9ñ¬xV<+Ɖqbœ+ÆŠ±â¯â¯â¯â)ñ”xJ1¯˜WÌ+˜“`’…d!Yx#¼Þ¯…×Âká¥ðRx)$ ‰B¢ðBx!¼ž Ï…çÂSá©ðTˆâ…xá±ðXx,< „‡ÂCá¡ð@x <î ÷…ûÂ=ážpO¸+Üî ·…ÛÂmá–pK¸%Ün7„ëÂuáºð‡ð‡ð‡pU¸*\. —…ËÂïÂïÂïÂoÂoÂoÂEá¢pQ8/œÎ g…³ÂYáŒpF8#Ä ±B¬pZ8-œN §„SÂIá¤pRˆb„á¸p\8.D ÑB´pT8*¢„(!Jˆ"…HATAdAdA$AtB„!ü"ü"ü"„ áB¸pP8(„Â>aŸ°OØ+ìö ? ? ? »…ÝÂna§°SØ)ìv;„mÂ6a›ð£ð£ð£°UØ*l6 ›…ÍÂ&a“°IØ l6ë…õÂza­°VX+¬Ök„UÂ*a•°RX)¬– Ë…åB˜&„ Ë„eÂ2a‰°DX", ‹……ÂBa¡°@X ,æ ó„yÂ\a®0W˜-Ìf ³„YÂ,a†0C˜!L¦ Ó…©ÂTaªð½ð½ð½0Y˜,L¾¾¾& …‰Â·Â·Â·Âxa¼0^+ŒÆ c„1Âa”0J%ŒF #…Âa„0\. † C…¡Âaˆ0D$  ¡B¨*  …!D‚…`!Xè'ôú }…¾B_!H‚„ÞBo¡·ÐSè)ôz=„B7¡›ÐMè*tº …ÎBg¡“ÐIè$t: …öB{¡½ð•ð•ð•ÐVh+´Úm„6Bk¡µÐZ„¡¥ÐRh)´Z-„fB3¡™ð…ð…ð…ÐDh"4üÁ_h$4 ~‚Ÿà'4 ÁGðê õ…ú‚—à%x õ„zB=¡®PW¨+Ôêu„ZB-¡–à.¸ î‚›à&¸ ®‚«à*¸.‚‹à,8 ΂“à$8 Õ…êBu¡šPM¨&Tª U…*B¡ŠPY¨,T* •„JBE¡¢PQ(/”Ê å„rB9¡¬PV(+”Êe„ÒBi¡´PJ(%”J%„Bq¡¸P\(*Š ……ÂBaÁZ°¬…BB!¡PP((>>> „B~!¿_øTøTøTøXøXøXøHøHøHø@ø@ø@È'äò y„â\Ĺˆsg"ÎDœ‰ˆ‹ˆ‹ˆ‹8q:âtį¿Füq2âdÄɈ˜ˆ˜ˆ˜ˆãÇ#ŽGDGDGDG8q4"*"*"*"2"2"RÛëã:½m'~¯ß0dKÈC € 0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00X«4q}H00X`2‚˜,0AL „€Œ & B @F€! #€ €À‚ÀÀ`A€È``° Àd00X`2‚˜@®–0-aZ´•vVÚYi¸8\.6<ÝðtÃÓÕúWë_­¿M M M`ÑÈ¢‘E#+ÅUŠ«箺«îjÏz|Öã³.øsÁŸ7ÎÞ8{ãlfÏ»À±·boÅÞõݨïF}ç›ä›ä›ä0Êa”èbû‹í/¶¿Bž y*ä©ûMÝoê~38ÿàüƒóKE¤"R‘÷s…õs[6wÙÜesõëV¯c½Žõ:êW¸ÔèR£Kþç<ŸTxRቋÉÅäbj'·“ÛÉãüÇùó×Ïöׯ7^™{nÑcÿýxÛ×I.›\6¹lâ¨ÄQ‰£ÞöÏ&9&9&9*·•ÛÊía'‡vÒÿÿ=Nõœê9Õ+¾¹øæâ›Ëz•õ*ëåRÐ¥ KÁ®uºÖéZgyÏå=—÷|ù4òi$ïbH‰˜@®ólÿ³ýÏöO(1¡Ä„ålËÙ–³µÊë¼Öy­ófÖ}ºé€zTèQ¡Ž“;Nî8ùÝÎÜï¿?üþÈä{‹ š š êzƒ¿üÝào«L¢ðú?¿ ~ü28ã'û¶AûŸ!†ü2ùÄä“OèQ âõŠ×+^·ŸþŽš;jGõïvMlllô¾½åö–Û[xw00€\äôÓÓOO?Õï=µÊ%§—œ^rzF"ÕôÀÇ\sqŒc3ÇfŽÍ2~Î)CÄŒ\Û'7žÜxr##túé÷Èf]ÜžúßÔïöÖïÇ5÷§ôºJû+>~òøÉã'666™{Mô»Õù¨p &+èDœ2ìÌ:)c·=Ï´_ù/ÿò®Q¶FÙe3÷œÝbÝbÝbßíœõ;ªõ˜¶zZ|Ñâ‹_dEÜ®ÿ¿¯›¿nþºy¿ýô[žóI;~èüÐù¡sýêõ«×¯žÕW&lpØà°Á¼ëäNÀÀ îUà«ÀWé‰'›,n²¸É⟺ÿÔý§îqçâÎÅ{œçqžÇyâÏÄŸ‰?snë¹­ç¶êÛ«üoÚ¯æíéíéíù¶ñdÚ¯ùÅ”/¦|1%åÿ¢?ßwf¯™½föº0ãÂŒ 3^,}±ôÅRýÉÄ{.ì¹°çBzÎV·á؆c޽íüjð«Á¯Ò~eý£’§Í›6oÚ¼£³ŽÎ::ëZüµøkñússõ`ûÌ‘3GÎÙÞ`{ƒí ô{dS¼vjú¿ÿnµ‘v”þØÕ\¬?å7å]Ëæ´.к@ë[¿ÝúíÖoS^ýã¾Oøœð9ᣵþsOûcɬ8°âÀ v¹ 00ƒÛ2gËœ-sÌFeñÖñÖñz¬û¶OrMO(y(òPä¡ôŸmúãFß$ß$ߤ»ÓïN¿û¿>tº © ©à¢ã‹Ž/:žökvXØaa‡…é¿zp[l±ýÅö›{MýC¡¦%LK˜–¹q¸®ýúöëÛ¯ÏÜû­çŸW|^ñÔÿ{‰e%–•X6ôòÐËC/‡‡†‡†‡ê*~ëÀ­·èamê¯2ÿ“ùŸÌÿ$íà>8ûà샳Ó_ú_MHÿS“ÙäÀÀ ®ÜNn'› ɦOœ>qúÄw|邦‚¦‚­ªµªÖªš¹×ç?Μæ†ÊÕ;UïT½“¾¾m¼×ãu×=^›{e‡Q£F¥ÿÕÄŠbE±¢¹WsWÝUwõiäÓȧ‘‰!^Zxi᥌ì|Øù°ŒÄc?LøaÂ̽~çöÛwnŸ¹𮢻Šî*únç¼/|_ø¾ps¯\4²hdÑÈô¿Ú²¹Ëæ.››žûh3òümÀo~`î«9SäL‘3ïöÊé¹Ú.&“‹éÞè{£ï~ÛïeJÄ”ˆ)æ^yM±5ÅÖËøõyü2øe°¹¯Rζœm9[`¹00ƒÓCMsñ˜þtÕŒ¼~Ê»B'¾üÕv«íVÛeVììèìèì¨ß÷ùng{©Ë¥.—º¤ýUÒÿj#vŽØ9bgÊGNyœÎw:ßé|™=¦ã>×w{áôÀ)?œ9ý¯üºùëæ¯›WÞWy_å}©_Óõ‘ë#×Gú³3«Îw´û£Ý™û.ôgZ³È € €\Ê; SÓŸþk9g›v©‡Ê‰<õ`2+ÂÔ¬óbé‹¥/–¾ÿØ÷?¾ÿñýÏ»½òÑYGg•ögîÕÖï.R:¤tHê¯68lpØ`î0¸7ø»Áßæ¢¸²^e½ÊzYN0–w£¾íW±´Ÿàá€Ã‡Þ7e˜—ZhíÐÚ¡µÓó:9%öjêÕÔ«©¹W˜ÕvVÛYm3rÎú«zxi•ÙuÒ=6zlôØ´¿Êº{ëî­»÷n¯ÿºùëæ¯›·¬Û²n˺æ^?åýÓì r``ÆUÐTÐTÐa”Ã(‡Qæâ±*K«,­²ôÝâ±W¯_ŽúnÔw£¾K;ä‹ú1êǨÓóUrJ<¡Ä„J˜{ý£µ£ÚQíèÛžÛ/Ý~éöK·jý«õ¯Öß*Ýî¾7úÞè÷Ò£ç_=ÿêù—¹¯booýÏŽõŠMÏk>*ô¨Ð£B=>ëñYÏ̽rí%µ—Ô^òÆë×/6¹00ƒ[›°6amBÚQŸþœTýŸ7¯Ü¼róÊß[þÞò÷–O#ŸF>|ü2øeðµøkñ×â#EŠ<4uõÔÕSWÛo²ßd¿)íWÖÿôŸmN €/u¹ÔåR—ÿqUSD›ò‡ò‡ò‡ú5Ôƒó¿mÿ¶ýÛVÿ°è%Û—l_²Ý7É7É7ÉÜ«¥ýÔá ;,ì°Pÿçä²Ée“ËZÎÕÖ¿ÓôÄØúG…‡ 6ø|Øù°óazþåý—÷_ÞGgutÖ÷9îsÜËÙ–³-gö5‹œ)r¦È™_ ÿZø×ÂÜû ·!&`pzغ@ë­ X½Gú‡$ëwj¦?„Ë)°nl»±íƶ˺kX:¤tHéÝíþh÷GiÈö»}/ïçjëNç;ït¾¬®:=tÿqЃ~Dô w"&+¼Xúbé‹¥ï'úm'·“ÛÉOn<¹ñäÆÛ†p9+NrLrLrì^ª{©î¥2÷ê÷žÛznë¹­úÿ²­õ¶ÖÛZ§ÿ~¾óóŸïXÂÕNé☋c.ŽÉŠª³u²u²uÚýb÷‹Ý/x¿ÈÍ€ €ä&MMõ߃›96sl–Yñ›OŸ2>eöFïÞ­©w sVœúªê1ä»]ÃJq•â*Å­ô[é·ÒOríOASASÁÖoZ¿iý&çÀº„i Ó¦é_¥ÔèR£K~·+¦ÔsïS½Oõ>u{Ëí-··p×/È­RÄ–)ïÜu)èRÐ¥`…'žTxR4²hdÑÈ⛋o.¾ÙN³Óì4ýÎÔŸõø¬Çgó?™ÿÉüO.̸0ãÂŒ÷Z¾gûŸí¶?åó]¹>r}¤?³V¿žU–VYZeiýêõ«×¯þu•¯«|]%<4<4<4qTâ¨ÄQi_ÔÿŽºWÈS!O…<å •/T¾ÿÿ=þ{6Øx`cý^[Ë¿búS~õï(H ’‚$ýÊèWI¿búÕs1¹˜\L]štiÒ¥ÉÒUKW-]ugÙew–Qu00ü‹ìº74·]Ϭxe*r3``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0àhQé>ŽdÓq4›Žèl:ŽeÓqü½1ÙtœÈ¦ãd6§²éø5›ŽÓÙtÄfÓ—MÇ™l:ξ÷ã\6ç³é¸MÇÅl:~˦ãR6¿gÓq9›Ž+Ùt\ͦãl:®½÷ãz67²é¸™MÇ­l:ngÓq'›Ž»ÙtÜ˦ãÏl:îgÓñ ›Ž¿²éxøÞ¿³éx”MÇãl:ždÓŸMÇÓl:žeÓñ<›ŽÙt$dÓ‘˜MÇËl:^eÓñú½o²éHʦ#9›Sö‘y²éÈ›MG¾l:>Ȫƒ ‹ °°Ž0€Üððƒ€´È,;¢²éà™Ä<˜§[þÓˆsÏsˆsψsϳ‡ÏfÓ‘{ž=œ{ž:œ{ž7œ{ž4Ì3†÷táìzÆpîyº0Ïæ‰ÂÝÖ´é•IÓGµÎûÍ)Ul³|ÈEeJ›ÊC¼ÔjÖèešTš&Ljé¹|ÍΖKì_F9g¤• ³ ³}93±MbÓ~š0½žõÚÎÈ»£åßšQΓZ]³sCÂäcÓ„ƒ—u½L™²üÞЃª¸âꋇ£–sj[Ó“'M›;bèóeŸöxÐå`Ÿ²J×¹»ïݾ®¾Ÿè{ ?M€%÷±…ç—xü÷ßåÖ7¨|+¤jPéJw§Ç_{]¼çZf”×ùÎ5‡u®IÍ:cÃÏté<âòùŽÓ‚c.}fÿŸ¯ºÿÑÀæ®Gï»!ô±@Vô±Ný6U 5ž3Èù‡üíWΪ5þ|’+¢¾î´Clßó}šo¼ÐçzÏ„5Ÿ,½ `T¥£[Í]XkKÛ?¿*Þ ôwÎÓÇ`5?+°å¬Ïåô>¯ÓgwúOŸééó=}Ö§Ïýô {,ð~Ã2-aVÂ,ÓÈ©%¦–Hì˜þF­œ}±w<zøN[ÜíüÚÀ¼½÷™LÁÁgÖúfEû/vEæo[lð_C†º·Ý¶ým[Éð_Ây½Ô”hJägŒœ÷›œ)ÑdÒkøm+ÈÐ.~Û¶Gæ_y}ð_oV³ûb—ÉÓ¸qf­ç×nØ{ßB·w+gosõŽGúÏMßgô=‡2 »úØÂ ¥jÿ½Ü¡L÷.¯Õdú´8·úõ×­‹‰É¬Õ{ÙšE'¾¬¹o¼ï¹"O5¯|ý },ècӳ֟ܳò¦*}îmºtmâ­sÖùmÒ¤ jÕʬõë#ûƒÚ·²:kK ¿2koפ›fîm·m×çlúÌ-sçxúlPŸê3CöX sÃ2êxñãÅ߬JC6ÍÙkàÊZFöŒlw-sÛÄô¯'zµw Iêø¤º»P*=çÜî÷v¿?oð°ìòɧù‰Ãò鵪×mz*¼ã“¦Å…R'zmè’”¹Aoú×#nwmšsh£•µÒ¿Ÿèû?qÀûécí“:~uu‚g³%ާ^fnÜ›þÕ=`Rë3ÇlKx5¹½•>ô±5Ï´Õ ¾¹ýJ·ž™ô¦uðˆÔØå‹ëÃ|{ÑÇ0Ö¬ º»PJŸ¡e×OŸê³DöX ã€a™€ ’<%yŠéî¬%³–$þœžÆk“w“USÏ%èÛ¶EõìjÍ­wº_ì8kX°G¡Ÿ§ç{‰ªUûM5ˤ×gz*yXpטŸß 8¸§ã¬ì }Í­ ¢Z·¨¾É{JôÔséù^ô½Hß—¨@æö±ŽGBüvÑkóÊå'‹dWèkn­Ûba_£*ÕhÑþú<úXäž>ÖgX¯è k¾i oæž]¡¯¹õÛ¹§ŸxýØ¡ölÿqécäÌYG¡Ÿþ™•YÚOŸ+ê3FöXàÝÃ2áYýgõM~-[> O»Íšêc»¬àëþýö6ii-£¹õF@·ÎƒZÛUy¨uIû»û!—ß›’MÉÔ²]²)ÙdÒk2íºmmçç¦u¹°o~ç K }Í­¯ûG»597tè£eÓþîô}Iߣ( @Fúت½ºür¥‡w—ÕO|gi¡¯¹µÎ´y«O•éSëñÝéca¼>Öy­ˆTxx'©\Ë/--ô5·Nüòì‡uµh?ºÉÜ0úX–=+¨òPë¢ÏÄrÊOŸ7ê³GöX ý€a™€lvßó¾gò:›6Ÿüd®©r{Z6ôBȵb]§uy™SZFsëÁ¡­úŒ¾žv9J%'LJ>›|Öô‚lømîlòYÓ_z¦]«‡.údôõœúš[¯Ûs¦ËK·§ŽvBÌ}§ú¥ïWT ý}lñÄÊçôªSzn£Ó9%ô5·º4±êÂÇô±0FÛý¿Þ‘SB_së°¦‚À眞œû€>€%Í Zõ}=§Oðô9¤>“dÒF ËD d›»ÃîK‘vË8ý¢÷g+>I~üQ“rzã˜r½ïܳéWÇ=–ÿ8n˜¹ï=8&8æÅÂäÁɃMw¨¼§_ç'6ÝÑkÏ\ez>t ‹vßù—ð¯Žçôè7åšüôøË&M¿øõ‚Ÿ¤½/é{Õô±iÿ÷¢J@§W½ë¶69æyN~S®ž÷ùÕ±dëjÖ÷[ÒÇ"gõ±v“Üä_—Œ*µ£‰KN~ÿkÍw>±ö'M·_·ð },€ì›”ÿ8n˜>ï2ÒOŸIêóIöXÀ`X&` ³gH׸Ÿ|ßÔ‹þí‹gFŠ~S¯ÿ\4zNÚ{”¾Q8@›zué6âöùgF }S¯ÞSÖt<Ñ£’k‹Î×çÐÇÂòûXŸ‘½~Ý6ñÀÙ}uí ý¦Z{”[ûukúXïwVàQø'_}Æeì9ž>«dR#†e"Þ«„C ‡Lcª•¬V2ÞìßV_݇MÒÎl3vôû_«÷ºU1'ªÎíêÅ‹>–ÙÇ¶ÐÆ|<çΤ bky;úM¹†xïÓõWúXY?+ð¾t€>×Ê=s<}nÉ ¤D ËD ¼/¿š~5½éÒ#äùksMRlbGÿ~ä¢è7Õºà¹ï Å³Ì]Ÿýò~ùu{J ™K¯+sU·àùˆ=‹gåžÐ7õ›¸%ºŸÙgªé{š¾¿QK›ûX^ßï{‹¢ßT«ƒU·«—ÏÒÇÂrúØV«3ë·Üú¦^ÎýyJà§ô±²fVà;hñ¬Ü<ÁÓg˜ì±€Ž–‰xOÖ[{ì•Ù‹‰nÖî§Ð;¹¹qL¹Nt«·ÎÉܵºîpÝ!ÙŠŠBÆéµd®Ò&ºõ;¹Î)7G¿)×èfk=BVúþFE@îìcݾŸpîì€Üý¦\+ojWêÅô±ÈÞ>ÖNè °m¹9úM¹ö{ü㈞ ècdÞ¬ nÜ:'fwúªÏ3Ùc`X&` Ë]Ž¿Ÿdöãb¶µmz}ÒDZÆ”krxÿÇMœ¿l^5P™úŠ9Íuš<éÿkïÞãz¾ÿÿì³±Í÷ã|>ÏiŒ"©2ÒA‘s…"R9f…’µ1ÊaÒbBÆÄ0çm±,:'4çs#I…Jõ~ÿþxÚåÒ~oï>oõN¯÷ë}»þñ¸|.ûèóyõòx?÷èqïý~-«L¥»P6¢D/©öØ0ÛMN¯Tœ8geHô[²Fÿr•ÿRu§™8ëè.П9Ö gÆ€´tBß<X~5¶¸Ù·&;\fŽÅÛŸc» rý¥ó²—bLŒ‰~KV§–kG/hÊ  |»‚J6,¡IDATN§WŠ»»’Uì69c¡Ï€µåèG(œ,îáç»?ßï–58k°"‡;S6À@R¸+Ü•÷¶mÉyÍÇåù 0ÞÙ1Q]ÍñqçðPÝøöeØ—é1”èuÝ•ãÕÕá!q¯ºê3Àå~dCÕû&Î:qîÑc ï9¶õ ÛˆÛ'‰{ÕU³í¡Sãï1Çâíϱ‹ªÇõ;MÜ«®öIwK`ŽPÖ]û8‡‡ìëÔU±ç䌅~".¿bÇbG¥ÚGê— 0P"C#C_Rwlå2Ü®bé5~ÿ¨}^j?xçaÄÃÅ&: š=£®£â÷GL÷ªEÄ[zÍ;í`×Ií§„F†¾±î›ÖIó‡ ;²Eõ~Š3®9ͱ­š[~¯îtTèùøXæXTÜ»hL|ý~Ÿë¾i5I¹ìÀû̱þ×®À=Ôa>{¹7­bÿÉ ýA¬]„ÁÚB hY¾q¾±Ò_Ý1ôà‹ ™c&1–­Ft³ê¸Nõ®z/ô^øb½‡Ò‰>Q퟈nËó×å–­>øâØ1“Ôxâ<¤÷@s¬éèu†‰<÷·ŒµózϬ+U˜c¡Ý9vÔñU‹wå–­Îwz‡M5æXêwV½×±‹+[ûOÎXèàŠC\À€–èt ÓË"ÕCgözc×È Œ€å©¶SÙVWw¬?Iy’¢È ¡Jô†ºÎ)°=û•mu¢ÜòÔÙë]\"7¨Þ[qÒ ëslë‹¶¦·/â–§š?Ûw‘9Úc—8¤XšM'Ê-Oí³Þ­ÿÎÿ0Çœ±¯ÛLyd[]\yªØ…rÆB¿„ÁoŠО—Ê—JeGóŽæ9ªÍí ã œO2ü•¿†X[zG©ÞáoŸ}û¬à/ÚªDo¨öLˆµïõà(âÛò×Ûwq>©z‡Åy(ÎF€îα½f OšOˆ[þúIÉM®UaŽEùçØ¡ÁKw"¾-ý¬Å/LJdŽ8cÿ¹+°ôŽbÿVþ*v¡œ±ÐÀoa°&€­¹;ýît…±ê±Ò·õG!‰sû´U3Ã&wV½ÏMû6훡LP&(ù-Bü-A™ ,½¡Ú3™a§<†;ßj«ömm|/q®ê}g#ͺ8Ç6nÙyëÃ]·Úª½oôMˆ`ŽEùçXß“1Ÿ~N|«­Ú>À¤œ=s,Àû÷®`bðpgöoÚªb/Ê y#®\„ÁêZÚ*´UÁJÕ£äØ!ûž‡¤<Šmø¹ÿüu¯ž­{uˆó¯®®Ò‡¬kŸm¤z·ï׸_CaO7Bý Ú'CÖõ3Š6’Z€u?ÌØÇgJøðØCãº4ïà|åJ£/xô¨C`ã›_1íû(zæWf÷Ù´)/0º“Ô®ÿØ¡õ½}©Þmq6Ò ‹s¬Ñˆ¹¿_*’ÄG(Çn©÷¼C{ç¢ëÁͺõtH7¬¿ä#£Çkkߪµ°Ñû ¶xÔçæ=E·]‹]l!å¸iz·t/æX”mŽ5ð`UGW‚Õ%ãSœÍF}<¥Wüùk¯T儵c´Ô®ÓµjØÎ~̱g¬Ø5IaëUd>õÁ¹u/Ôžÿd€æaFÉú dBî˜1Rø^Ä^”3òF,„Á%ZcÐΠ]ÎÕã#×Ì}·ƒTs°†gÍAÙæÖ­¾H^Xòš¥ojáë©z·wZì´x9„n„ úAµOŽ7]¿Ê×SÑiØšƒ²gg¸l‹ù¦?ÎÅE|èå%8×,*Áá5ïÎg#ݺ8Çš ½]¹qiÏϾ¬ŸR£Á‡­Ó¤ù¿%[¹ ˜u7µO­m5cŸJ-6š:ïß—3Ç¢ls¬k¯°Âuæ »§ÜVFĨ~R»ÎEÞñ=ûµgŽ8cÅ®I [¯k}\M8R¶èWj°Ø‹rÆBÞ€¥‰0˜Ђg›ŸmVV=,zooù(e·”£ß€“fË·äª^¹ôà,¿I–ŽUU¯ÜÖÇÖçÙz‚èÕ>Éòûå†cU)„¦A æÌÙ¸ñ?™µ¿s­ë7n‹¬×¬Iø(â¬ç¯âÁ+'ÎŒÍjnÞdBúÚ’þiöoï-”N Ü{{× )»Uï¹8'éIЕ9¶‘eÇ{ÆVnPjq;|q\ƒÆ— ï>¬óêÚÂjŸ}ºô£ÄÁUîì1øzz³?»õx' à‚©ÑÂy}/]oehyãnA­>µ¶?-ù½H-6«–àÄ‹²Í±~ÛÎ7P[úÑïØÈà¯ü©n­&Íkn;¾»b"s, ß»‚I–ŽU%ñ¶‡Åö1¾mJ^Ûúóý[¬·Yc¹"8X“úìÈäööÒÙã‰)g,äŠXúô3 &´ Y‘¬(n¦z@„Y®’˜õÐËí_£F}?ÓÚ`ùŸK z7 ïv«yµ4uG›ÇÖ]ÛÀ0£—ÿ’Ë)=ͤýÎìyô㑇êÿ«ÑÝÑ­xèÁ¥w3Çúº+¨—qT욤°õq¯¸¶Nc›˜^Ô™}š*v¤œ±+`Ý¢?a00 áiái/_ónÔ¤ã£<Ò¥0fmOtâ‹/4?Îte|œ=Ëxxä>ÕëdùÈR±ÎÔg¢T{cö,—~‘û¤”ž˜¾aÂ%¯íÇËAÓ¬I [ò«>2µ‰+8éøwñéªw^œ“t&èÊÛ£]@Î…æ•”¶5Êêæ{âzêE·ø+³½&éÜk[PV’ëï¥Ä»¥·N°msû:s,4Ÿcûø»µÝÙAÊÑïâ– ³úþ«õ»]¦\øîÕ¤ºÞû§°º{??àç\…9Ð×]ñðÈ}ÒÙwÍú {üÞ½âÚotÈŽòÖõXìH9c!WÀºKÞa00 žm=Û¾|ÍGÇÄLš0,Q cVê±±¶“kWë{ìë Õª»ðÞË6>˦©^Üö¸íEgéL}&z@µ7ö^^ùó²iRJ7[.>½Ú¤læ×wÇïú⫚:5zð×_ÒypV̯M‡½æ£óÄ9Ig€®Ì±f-Cbì+7"ýH1xÀzžÍÏdÎn1Á¢ãýšD¹¦ÇÖ»$Î|Mx&±ØÐb¦aZ$s,4ŸcÒÖ}3/SʰI³¦Í^½_mvß+¿\z4õˆi[] €ýΞm™Ê èë®ÀÆgÙ4éì»lG·osöÕuúM2Ù½ÓAw£ßWr‹™4]ä‹XäZÐ5¾k|n×|€›ÁT—Áƒ¥?„énœœ<ÆÄ£¥êõﹿçþËÝt¦>=ðšJÞõ½GK)¥‡b‚;.Zäå>êÔ³>pîð÷ïö¾é»‡»'wþðò2éÀÅç6~ͳ$Å9Ig€®Ì±‡¶fÄ™IîÓ5¨Ÿ8N¼t5¹äû†¥÷p^±%%›9šÏ±Ótwj/ÍètXˆ¿ÏçÕÄu6™Ôºþ­Fóm~ï?8@·>zYÇ‹‹{MeŽôuW0ÆÄ£¥47u¡³ô 2oáèWÜzpB›f¶õ¾ý˰sÓAWW8MîôËÉÚáUî]¹RYóæ linðÄŽ”3rE,?òƒ € 9ân¬s=c£®Ä¨º§›»¾«zý+÷¬Ü“ÏGçé5Ѫ½‘n~Ü{ô]é|`²ê;kò'Gü60á·Wïž?¾ñ÷J©= ¸áÆú¹_w¶¤>ÇÖ^^o[ÖYé½&.«ž&0¾°<çÂx£s›\îк³uû;J~/žy\Y&ÍØÔo]Xb8s,4ŸcçýxÆÔz¡ÔBSO×Èü ½êØ×-Ì´ªíYÇëÉ/“Ïí<4¹nÉ WW`Qëîj0"£>s, »W£Ñw¥°éÊýÝýª}AÉkkð]€Çý5 ´ks7zü''iîñľ”3úðS°œènL TÈoñA«Ä¤\àŠ®9AîS.ª^ÿ,÷Yî/ŠèL}&z@µ7r‚¢¬.J3þï¬í|nãàÁ GL*Žˆxõî ¯F®¿wôèì±û¥vµtï—”Ëu ‹sl£ãÆ>|)ý¸þµÖ#[© ° >ôžòçv)_¿ÙîP¿ø[̱Ð|Ž]Ô8nW¿H饾…1Ï>mÕ¼^û˜«‡Åiâ·yµ“jÄ«[p»€þñO™cýÛ¸Ou¸(‰gå¾3zåÔ×|眮c:ïíoÓ{Ùeñg>°±øÂ´Aݦì[»J-¯§ÿqjIòÝÀb_Ê }ø©ŠX®t+ þ—t^Tªœª£A‡ýQ €+ºæEOk׊~£j^ó¢£íZéVô+žø; ©×š¸þþýßú&ûÿönèÏsÎIí½¿¢: ˆzH¿Q©Tª.Öfç{u~pXwà|¨`¦_ÒÅCÒ¼~óï7M¿Q5¯ÿݘ¤0ß"‰JÞ|iɾ.™VNæˆkë¶ÕnÒñ5þ5/×è™­úçu+îjÕüÔ"úJÕ¿]Á”±v­¤°é:1Ý¡õß|êv«yµ4ƒÈ¡Ö·üýKnðT¿ê§ñ çÇ¿&–ØOìKé7*•ªŸõèG(œLL¥ê|;¤Ó¨“iÀ] ¦<¶­F¿Q5¯gƒm«I?ô½:d}W×q½ìfüT³äõ›|mX”šoñ¡——4£_QDZw2~£R©T]¬-:š/¹ª+OüµX±uLœk/ÅÚºIï}?/ùÒñfÝz:¤–üŽºwûobê’ €ŸoY—J¿Q5¯KS™yI!"µ®5'hý«'X·¸Õ1#íì±öý3Õ…»ºwS©~,›~£RõoW0å±m5)oíÞt¿çbÕÙç§Ÿ¤ö½ˆ})ýF¥Rõ³¾Ü÷rŸr0•ªó•wó`ª4«”ßüÒéW›À éAaÙõÔ[øø±¸æV5›m¸\í³._gxž°y.åè—wS©Tª®W]y°º*¾‹æƒMO>°/ù}ñ`ª®W)¼xjfd— ¹µ^ÔÞ–å[׸þWIÓjˆtºPz¬«[0ï¦RõuW •w—§î¯gkµäÕƒÒŒ”͆ÿ¹œwS©Tªtª½X|:•*ªúbæÀ•û à1cžûÒ™ú\E¨ö†4Ÿ|­Ïþä Gz2X~©“¸Îºê¾ódÀ’†S²¶å=ÍþíÝ¡…Ò}5y0I¥R©ÒŸcuåÀšÄÀ¢ÖëݼkæF©ÅÀêžÌKU7ÇJáÀ£o®öZø‡va ºD§XÕþ3€éL*U<X[Ïnð]€Çý¥¶åS÷ `:“*¿ŸªBª†T-˜Ê‘_=æw̯ÐÇóÏw^¬Ð|â^ž Èû1ï 7Ö¹ž±‘¸¢kº¹«Ñ軪׿rÏÊ=ùÛéL}&z@µ7ÒÍ{¾+ ôVΡ¥..ŸLm»ïFwq…â?ÿ±jëÖ3ÄŸÑ­èWÔ†ëçfl|ÝÙú[{y½mYg+7í½ucÏ„#%¯ªÓ3‚+Ë4ÿ_0ìov!A|m?…?‰’Zlê·.,1œ9šÏ±ó~±/包>üT%ÂBîŒ<ˆàöóÝŸïÎwÓ|¾þ퇾%ZÐ5¾k|n Õy±ÁT—Áƒ €+®&'1ñh©zý{îï¹ÿr7©ÏD¨öFrò®ï=ZJ'(5·î¶'y¡¸¶O£Lmbç>iq*Á±XC_Q‹ ÎmÇ:¥­ûf^¦”Ÿž«É3€Eè+Íëô;{~´e*s, ¯»ŸeÓ¤¹£ÓdS÷Û»Ã6Î9W;§Ö™¬PñçÏüáX4»©t6xbGÊ ¹"–y„¾%Zžžö²ªê‹?éøètàŠ«³gܧzý,Y*øè<½&z@µ7fÏré¹O AéäÃkþàÕ»š²[üçžé«g„¬ñ«ü¦U:pÒñïâ=ÒUï¼8'éLЕ9¶G»€œ Í+7"홼Ò4ù÷Ú·êGg-,ymmâí­o×ì²~ŽûåM⣞ZÌmr¹CûQ£¬n¾WòŸÅÓÅJKí)Å­lÛܾÎ ÍçØ>þnmwv ®¸êýü€ŸsæX@_wÆÃ#÷IaÓ•}ǽÃСol”r«Ç«_Ï©u&+tJ¸‘Ý¡q‡O q[˜k?ò¼wÔ¾n6–uš6¨Û”ýcKF¿“tÉý{Û ¡çÀ®òE¬»äú–D hA²"YQÜì5{²\D\!µÀÓcMCÏ:qG_óáÛÕ‹«+“èL}&zà5Ïçö¬Ÿ”qTY{vMå¥ýŠ{ŽIh£­§¦I' ò«ôšÔR$+Š›Ñ™ +sì'm'¼úB Aé«çø†6ªñäæÿflÜ¢sØÃ]=f§Œ•Ú{ûXlÛWÛ¯ÞŠ¬xæXh>ÇÖ]ÛÀ0£—ÿ’Ë)=Í€+¢=¸ôNàbæX@_wuâ2ŽŠ]“t6ufM2¯uÕ|þ™xÝðþÑêù ¦„Ùn“ÚOìH9c!WÀºEÞ¡oIÀ€<Ûül³ò5ϱ载壔ÝÀòÑ1~“,_ón[[Ÿg{èI¢^óñì~¿Üp¬Z¹Ai«šÍ6Ü’_Ü{{× )¯y¢’8'éIЕ9¶‘eÇ{ÆJ'4}õaΣFYÝ|¯QT§ùsê:6õdXíƒõ»g…7¼Òaó£}-~î3ä~ƒ)ÓVþ9ºO­m5cŸJ.úí³m[l¬Y­°'æX”mŽõÛv¾Á€ÚÀQÛŽïÈ è÷®`’¥cU©íë6-±¼tßfJ»sÌn“ÒpÚ;õ~¯”Ò!°qç›_Nhl°äøñS]‡~17¶äWIm'v¤œ±+`éӟз$`@k Ú´Ë9£zLäš¹ïvpÖ•UÖ•øxSû_OÕ»½Ób§ÅË!t#Ѫ}r¼éúU¾žºûœ]iÖ\³¨gÕ»-ÎFºtqŽ5;z'>Zj1pé±®4Cß’Õhê¼_zÌ‹²Í±®½Â gtÔÅ‚–r]äß³_{æX€3Vìštq_'åmžØ‹rÆBÞ€¥I?Cß’€­ mÚª`¥ê‘qìýbßCºëJ²®}~´‘êݾ_ã~ …=ÝAôƒjŸ Y×Ï(ÚˆÈV»õØ¡õ½}©Þmq6Ò ‹s¬Ñˆ¹¿_*’r˜ª‹µiz·t/æX”mŽ5ð`U‡ÈV»ÕµjØÎ~̱g¬Ø5±sÓn{QÎXȰtú–D hÍÝéw§+ŒU¾­? IœËÀ§­š61xøk~s°iߦ}³#” Êe݈W” Ê"Ѫ=“vÊc¸3Á­¶jßÖÆ÷çªÞgq6ÒŒ ‹slã–·>ÜEd«­ÚûðFß„æX”Žõ=øéç·ÚªíLúÇÙ3Çœ±ï &wfÿ¦­*ö¢œ±7àÊEè«0 =/•/•ÊŽæÍsT”ÛÆ8Ÿdì+ ±¶ôŽR½Ãß>ûöYÁ_´!T‰ÞPí™kßëÁQ·å¯·/îâ|Rõ‹óPœÝc{Í ž4Ÿø¶üõ“†›\«Â‹òϱCƒ—îB_MZv ÓN/‹T—Ùë]#70ü•§ØNyd[]Ýñý$åIŠ"ƒ„*Ñê:§ÀöìW¶Õ qËSg¯wq‰Ü zoÅyH€®Ï±­/ÚšÞ¾L|[žjþlKpÜEæXhwŽ]âbi6·<µÏz·þ;ÿà pƾnW0å‘muvqå©bÊ }@üvú¾)`@Ëòó•þꎛ_LÈ3‰°l5¢›UïÀuªwÕ{¡÷Âûè=”Nô‰jÿDt[ž¸Ž·lõÁÇnŒ™¤îÄç!½ò˜cMG¯3Lîãª;èþ û²à =†²ý£®»r|¢º:<$èUW}¸Ül¨zßÄY'Î=z ä=Ƕ~aq›ç«ÿØçí¡Sãï1Çâíϱ‹ªÇõ;MЫ®öIwK`ŽPÖ]û8‡‡ìëÔU±ç䌅~".¿bÇbGe*¡¯vîZεœâ8µ¿7Üú¶ÿRÆÄ’UqbêS+Ãa¶œN¯T½ck Öäœ/[`Bßò#Þ’ðsáç^¾§nб±gúFFQ—v7MÙf î^Ýîx»£¢…ò½¤®Ó–v÷ˆßf@è+jŒMxéÔÝ+q¾ÑQ Ÿsl÷K.¦zýŠÚnçˆÆ770Ç¢rçØ«§Ï $ôÕãé÷sÝÖ2ÇÐÞ®À4e›»;QÅ>“3 †4oK¢2QYäêåêõ¼PÝ`”œ?f Ç¿õyp\û¼ßÌ «ÔÝŸ#¿ù­p­í}¥®ëÖ>Ÿûã†Uúý&çïŠñø·ºû#Î4q¾ÑK Ïsl‰+ޤdèsôÛ±Öø×R™c!9Öþ½E½Vý©ÏÑï´5œÞgŽP1»‚~37¬Òç žØarÆ0¤‰x«òŽçWú}Òè“F9ëÔ Iñ-FÍ÷š¯Gƒc¾ç”A¶AŽ}?Ûè­îž¬¶_mŸÏÇÅ ‰S×AŽs¶oôVæÇF²ÕŸè7¾ÅŽ"¯ùêî‰8ÇÄ™Fÿs¬¨ÆsüÏ\ˆÔ£è×bۖظkÆ ¼nÎ iαvgüª®~à¿ärrOsý‰~½,öùKdŽPñ»‚¾Ÿmô{-ýÙ㉽%g,P0¤‰¨™Æ™ÆŠdu£’¨ÇÚ¯õ]-Èlê;ƒŸÍ™Ý£Îž~êîìÜY¹yï)O(O( éT ÊÊBÑoêºqÎìq){ú™Åü9ø™¼£ßc×»û®.ýŒç̱ªÕhüÜû—žÉüY¿[ÇŶéjç|{5s,¤?Çö?1qGèÒ£©‡MÛÊ;úum–}ø?Þ©ï³¾šïm]~oÕÿñ‚KA÷ÜÎm/{©ûNÅ%Î+: ùÛ ¿Ý¥Œ‰½š¬ù4餮G¿FVs·\®Ê y̱ÒÃfÌØ§ëÑïëSþï#Cƒì‹ÿfŽ ¥]ýdßÛº¾Á{H±“äŒJG i"$áYŸg}”–vNvNÏN”>D®™Þ·EH©‡¬WêÊÈxÇa¼³³ûжgžq)ý»Û”²)¥`…R¡TШüŸí” ¥Rôdé};´­e÷3.w;»ëJè[85¦»õÊ5Ó}²Bj”þ݉sIœQ4 ûkË!Ãt%ô]:,õ]Ósv£|­Ö„2Çö®àãÌ3.b'¦+<±o»GÎX@sÀ&`@J3d€"@™¾êëU_ç,}Ìu§…Õ–Ï/æ2Ü®“ÔFÆÒƬšãÙ£æžAš|/Ñ&Ñ&Eô¤Iô§&<Çs\ìžAŽý8f•ÔBß¼£ÑCí:í´ˆùü¢&ß‹8‹Ä¹D´;Çv>ëµöÏ4óï6_Wj¡¯©Ýºê‰ÑmºØºÄ ý™cûΙ³cë¼þ§?³1–Zèûß5IÙæß6ùjà¢4æXº¹+èQsÏ«]™Ô6xb¯(vŒœ±@ÙCš€‰:ßà|ƒ¢-š ^¢šOÛÜ3c¾Ûï#nUÖÈ7qTW¯â1ÙŒO5ÖäšG\qõyÿÌæ™ÍIüCúD¯Š¾Õ¤ÃÇd[78Õ8n⎩^Å•úfÌÿùç· §º¹§æç‰8ø¼9¶}ñ˜‘7–ô¶ùºsBAe…¾ÆþC/œkÑÐÜêþnæX0Çv»`÷ëñ^žw÷^ïVY¡ï‚cgd4øöœ¾Ì™cÈkWÐÉøTc±C«¬ žØŠ]"g,P~À&`@ÒòVå­RÎÿ¼áç óÇh>µl_ÿ‡=Öõè¸aü¥p§*“kwL, ›Ú~ðþß?^ÖãÙ>ÆÃ#÷j~m¢žøéÄO…•ùÊ|þŽ¡sò•ùJ¥èá7íüÙ>.–‘{ÿ`óíY‹Âε¼_»qï¥ðÈi“¯ë1÷Þ†ñ-Û7½ñ ‡æ×&Îqæð— ¨¬9¶N^c“'ßtl6á½kç{Z}˜Ò]»A¯EÈÖõqú^ÜïbÝÖ ¶ín_gŽs¬&µÏr·v;?žü×ÎGî·–Þ»øn¯?µ÷Î8{Ä}”§}ÛEÓWíjhÙ,ü~7æXú´+0¹WìÙÄÎM»{<±{B±3䌴‹ÒD èŒ{«ï­V r÷v÷~aö¦£¤¨Í«×»Ÿ~Øõ…¡Ñ±Ékæöý(äýHkëëþ?G­2/áô/ŽßÌN‹ plçsìØûU¾!;ò¬ÚžòÒû›­? ùº}A´aÙþE mÚ¢`e¾c¾£2€¿MÈäç;Ç|Ge€èíò¼:†|ݯ[´¡ÿOŸ­?ìÈ[~.ðÔ±+ëÇø†D|ó—ϱӿ„ݘösôFÏy ‘Ö_.÷\3×çyÈû®/\ŽMn^½I¯ôÃeûÿç‰8[øÛHyŽ­Üðé“'-·÷owÏ«ƒ»Ë¯×'áû„ï·;Üîp»øËâ/‹¿¬üïå/ÿ»úÀ?µ:vuìêØMµ7ÕÞT;*9*9*ù’¸Kâ.‰Ë19Çä“Õ ¢ÒÒÒÒÒÒ # o&¼™ðæâË/>xûà탧¾6õµ©¯½ØåÅ./vÙÔsSÏM=OýLžûäØ'ÇÞÜøæÆ77.q°ÄÁ2£eƒ— ^6øƒþôÿ ÿ€ 6 ØpêçP¥g•žUzvy¬Ëc]»jÜUã®Û,¶Yl3g€Ì%¥^J½”z3Óf¦ÍL{«ê[Uߪ:kø¬á³†Ÿú™´ÙvfÛ™íÛ·oß¾}¥…•VZèìpfŠ?²eJÒ”¤)IµSk§ÖNUN0pf[ZZ»¤ù’æKš?7ç¹9ÏÍùªèWE¿*iÓ,׺\ër­_<çÅs^<§^Áz댾#úŽè;œ@"Mrßä¾É}'O™Ô÷ßm§fË «óì½,ëE×ä®VöÂb½r$z1_þ˜r]”cO–ÆQŸD7 µOy6e[Zß]%÷ôOí´>ykþ”¼êª}¾zéÇPbjÂI—¦ÆüÓý6|§á; ßéÒ;¥wJéV¥[•nåœpzmZ±iŦÏ-znÑs‹ÆtÓqLǺ…èÜÙÉÑýDÍ*¡Tò­©ûæÕÝöTRÒÈþ«.Û¶þ‹2‡î:t,ï-³¢ÌŠ2+F×]stÍ V\°â‚Î2§Ò¬_fý2ë—¦ušÖiZçØßÕzÿu ¾vóUWM-puÍî÷çIÍV7ëÚèN'jV¼¿6uÿÍ_ç_x_b±~çŽí¹é‹-5vÞ}pø±¼·sËÎ-;·ìq¨Ç¡‡bÇŽì,pj$ïLÞ™¼³ÿ-ýoéË _XøÂ1ÝT9:.[Ï­ ?rÝüÖ ót*mõçr^}v®2oŸ¨Y¥½‘62­Î¾zžýKƒ]·ÿ4éÛûvŒž5é–cߨG=8êÁF75º©ÑM¡Š¡Š¡ŠÎ5A"&2 € ›šš>ö–±·Œ½¥S–NY:e9–7õ¿zJ™Ö­î/sCÁjÑEå}ê'>­ÿ†± zŽ]”¼vÔ_¿íÉ–<ãïÇ?–ý±ìe¤ú#Õ©31fbÌD'€“a÷k»_ÛýZ×ñ]Çw?þ×ñ¿ŽÿõïÇ×+yÉqWw/~GJ±²5¦Vh›gñi˜sÌÞú©Ã†œwëü^wÛµþîcyפ<“òLÊSgmµuÖ:ïœÏ[QïF ‰j9ÇòËÈ„žûRý|aÙ¿úÎÿl[®= 2üEÀ ˜±|ÆòËK”,Q²DI+€eÑEC ¹ú±«»ú±¿Ù²Ôµ_,ÛcgÛ÷е(±¶HûìßFÎQ¤,?XùðÐ) ç¤$|Ü!¡w±UÏýýø‡’Jz(éÉûŸ¼ÿÉû³ôËÒ/K?+€ n¨n¨î›w½y×›w=ýÐÓ=ýÐß/¶ã¶ì]{Ç?Xõ‡«Œþ9Û7Ù;EΡì²ûÝoë6£øØÿlß>sê§íþ~ü„é¦O˜^¯z½êõª[dv`"“ ?{þÙóÏžUVXuàß|ÿÜË¿=weãJ Οižö÷CáíÛ÷,½aËן.›œÿPî´jœÒcJ)=jw«Ý­v7«€ã1jÕ¨U£VÝéý—ÞiFcªV¾ Oìƒ?é^§ìô²Šuͱ#òëðÁ´Îi/¿ÓlB×-Ù»ÏÐimŒFV(]¡t…Ò“Ÿœüää'ó5Ï×<_s«€gÿû¯ØÅ;îØqÇŽëg¬Ÿ±>£‘EnmøÆk º¦öm‡¢ªÄÌͺ*òîàw»^Ü6g}ÿ_}£WR÷ßZ.È𷎽>éõI¯O(ý@éJ‡Ê†Ê†ÊZdF`"“”…•V^Xùš5׬¹fMFcZ¯<§ZÁ™}_«Ò³ÔˆÜ/dý(Ë/™ñH_Ÿv8í®7¯^VvÓ¥Ï>·¤÷ú*VaX…ašÏn>»ùl+€`uhuhußj}«õ­ö⡽˜áóéß­õøÂ²ß6›zÅΙøOŽ6NÝþ`JÞ;žöÏþþ{òÞ®üyÅÏ+~^Q¼`ñ‚Å Z&»…vÚY¨FŽ9j䨶gÛžm{ÂÇd½;>ªÐÎsòunûr쟺¤ØM™÷x“Ö,{ÿ‡±«ýØsXFcÚ×j_«}­WƼ2æ•1ÑqÑqÑqÖ ™‹˜È$bÞóž˜÷Äõo_ÿöõog4fÔ¥u^(עїÅ‰_¤c_¼dgÜÞW^ñùà_Çe4¦ÿ¡þ‡úº}÷í»oßmµðø8ôqèãž_ôü¢ç?øÉÀO‡œ=¸àâlY¾ØðæÃåCźêž­j@Ž}ghw(õíCãêo^úÄyƒò¬Íðãúâ+_¹øÊRãK/5Þ’àïm·mܶqçÝuÞ]çݕј¹®íÞr`‘9×okÿ^T»¨‹£^Ʊ§6ÞsSbÒêëox<ûþÚk/[~}ø˜fÚ k6l袡‹†.Š~>úùèç­2 0‘)Z €ÌnQÏE=õüûè÷‡‚ׯ¸6xÑoºÊ•òïŽ]·ªKónUr”½=ÏE9Žr…ÖYÈò@–O~2ð“Ö ¯W‡^zuÈ(ú½éé«J(òSÂÈÍÏ Tô›.(.Ó¹P‹ùgU™¸òåòTÎðûï7•¿©üͦi›¦mšf͑ijÏJ<ë‚Ø b/ˆÍhL©Fw¾÷tå³Îm\ôÎsƒý¦‹™’û“¼yÎ]ßõœ77|öŠ÷[Ü>æÓŸvø´Cç¸ÎqãBõBõBõ¬€ã!2±¿jþUó¯šW¼zàÕG 5s¾›åíè ÌiöØ%ž»"îóœ7»ùŸÎ¾.æâ¹×5ìV¡ÿ•ןÕ,nfø˜»{ÞÝóîž³«Î®:»ªõ@¸aqÃâ†Å½žåõ,¯g ïíÚà¶÷‹zç‡%ʦd»7k–èÿ»u T~#.ÛÜO‡Œ«ðQFc.Îsqž‹óì)¹§äž’ÖGJ•2*eÔ5×_sý5×ny¸åá–ácÊ>óÐÆ~M󮯴ûò—ƒ]¨¢GE—<{\³ÛÓ¬fÇoÃÇŒí3¶ÏØ>½oì}cï­€ã!2¥½ ÷6ÜÛð’ß/ùý’ßÃ{sLÉR7zÿoƒn|©òÕ….ʱ6ëü3§2Ùg™=ú£nõzžÿÜUEΗ>¦ÉŸMþlòç_ÿÚø×Fk €t³ÎZ8ká#YÉòÈQ¢ß‡›´ªqvž§Æt8«Ä»¡Q¡gCåΜʔ¿¢L\®W¾ôîóç…÷¦ÞzCê ­š·jÞªyÚд¡iC­%Bi¡´PZ—U]VuYµrüÊñ+ò°€s;ÿgá[q±ãÏùø¢ûÏ´òºïŠÛZ<ûÖÙ:ï}¹×˽^î5ᦠ7M¸ÉRøwÀ@f³/´/´¯cÉŽ%;fxÍ’ZM¶TªŸïólµb¾;3‹sqôkQ»Çd«[õ¼¯Î?nVνácê­[´nÑ”y)óRæYVg²­ù·æßš¿é5M¯izMxoÛ}ShÀ-Û7*^ôL®R¹[KTÏÙeÖYW]´"¼wöˆÙ#fè?®ÿ¸þã¬(>,öa±‹y}Ìëc^ï=§Ëý¯¿Ê5»ÔœóÏèï—Õ}ùƱEŠ7XvÇ®ðÞö_µÿªýW«æ­š·Ê'V€L d2Ÿ^û鵟^;å£)M9ÊÍç?ÑhlÅÆ…£rTÉš¬VÙ–fy)ú¥éo\{û…=Â{“ò'åOÊÿÂð†¿0\­ÎP B B ZõiÕ§UŸðΊw—}!×U¯þü`åÒKB B5Cù¬â²sÿŒm=ö¢çÞ:/-¼÷éùOÏzþ/E)úKQµ83­í¼¶óÚÎ÷wÜßqxoñ7Zåz¤Tî¯ËEWúR­ÒÙßðî6mâ:TlYë‰ðÞú7Ö¿±þ©;Sw¦îT+¶iŸNûtÚ§ññññññ}>ìóaŸw5ÜÕpWC•ùwÀ@¦±£òŽÊ;*ßùÛ¿Ýù[xïðnµgž{åùç˜s«Z)ß—ÙjÇÌŸ}ƒyÎï}óã7?~ó㥵–ÖZZK­Î4¿ýñÛ¿½°ûÂî »‡÷~ºãÅUç÷ÎÒ?ËQ?©Õ‘®›Sãü|ÕîÚªÅÙ…Â{ëﯿ¿þþÔ¯S¿NýZ­Î uCuCu[=ÛêÙVφwÆ_xÙY×ÎÎ?¬zŸë<,à Ýz°ä„6o÷˜Þ¹óà΃;ê1¨Ç JAu¸Åá‡[´º³Õ­îLoy©ãK_êXf~™ùeæ ƒÿ0iôhÑ£Eáíͯ(9"ÿ€¦=JÊ¿W•2Rá¹øþ¹òöy«Ê“%G¥†Ûšok¾íð‡8üƒZœ Ç$ŽIsÏ¥÷\zϥὓv½\ó‚K ËÛ2ëƒj•‘îÙîØR¬dþ½qybòÙ¾?jÔþ¨MG4ÑT•ΓGM5yÔ¯å~-÷k¹ðÞbÉ7g{p´*e$ºXö÷s¼^®o·¦ƒÞ ï}ò£'?zò££6ŽÚ8J­ x>¿ýóÛ?¿=£^að¿üùJ €È·ìœeç,;çã×>~íã×Â{_m[mTé]ªt,îqÞïEöjcOÌÏG¶ïؾcûŽí“/›|ÙäËT àLðêÁW¾z0¼ý–«¯~ªÀ“uÒ*÷ŠóIáÿÓ=ËÓQY¦|òj› –†÷>óHÌ#1‰Ù³'fW+€`K¾3ùÎä;ï¸øŽ‹ï¸8¼·lÔƒ7¿Ö(:w¶‡s4W«¿—st±«Êž_8ûµ¶|)¼·gõžÕ{VW%žšCj©9¤Û nƒº úû‘Âàcç×:@&ðŸÖÿiýŸÖáíC²Õl}ÎÂ|7f+3A•Žé‹þQ1Qï~òÛ‡Îÿ9¼·]¾vùÚåK-’Z$µˆZÕÖ‡¶>´õ¡þõ¨ÿCá½½¯íWòVU:v6)Ý,×Í÷f¿qX‘ëÂ{\>àò—«@°Í16ÇØáíqñZÖ¼$¶bÙË+vU¥cW¸Jýý­ŽòÝsbµ‰Õ&V[¹uåÖ•ü’oZ¾iù¦õ¸µÇ­=n]]cuÕ5„ÁÇO D´?JþQò’óßšÿÖüÿ¹ TÔ¡¾¡æÍW”ZQ`º*ýSß1¶_ƒÅ ç;ʯþ§M›6mÚ4Uª¹ä;¼ý¹ûîYZbb{óVÊz§*ýSjS¡Øæ£|]ôÒ¢—%I“4F•‚çà8ø@—1]Æt9Ê×ù³Û·8·s-Uú§¢÷f«coÉÐýz&…÷¾ý…ì/¸»–0ø„ýLe1‘ìÕþ¯öµxûè u'—ë’%.ªlÔDUúwž¿÷’„’G©Þ¨ø@ÅPÿPÿPU’}÷5Þ×øo xc@xoû¯O,¼R•þøŸãvÇd´Pë¡g?Þ;¾ÝøvãÛ©@ð|uÕWW}uUx{¾ù—n¸¦F¶ù ¹Q•þ¼õ+ŸW·hxû„ÒJO(½=f{ÌöU€`0¡’žOz>éùÚ}Ôî£vá½×¼_ôõ|½Téx”ý1ÏM9 _úCcwÙžX8±pbáå/|ùãª$_Ôÿ¢þõÃÛù½õýgß;?g,ªÒñ¸ûÞo-²%¼½K®.¹ºäJÛ“¶'m*ÉSç?uþS燷ÕàÎÛãÔçxDmβ"˧Å&Üz]—×Ã{?.ðq ¨œ9„Áÿ”ˆP_çþ:÷×G»Aåo—œUâû˜JѯGíV¥ã÷ôˆJç—Þ>bôˆÑ#F«@ôÒ{Hï!áíí¹¾{áN׬V6YßhÿÔøøk¯ýþûôÿͼ.ôp¾ùY—×¥zÕ|»Â{W”[QnE9ë 6‡6‡6‡VÔ^Q{Eí#Û³M,T¤XÕì3 5*ö¨*¿|ï_ÒðŠ~áí=Sz¦ôL UUUW%8ã~B0¡ú¿Òÿ•þ¯„·ßÔ¾TωR½D¡ÞyŽr³Êm¶ØæpÏÃ=÷T%€Ìnçàƒw^±aņŽl/w^‰øwŸý~¡eÙ²FÎl3{ üPó[‹=ÊÕ`ãöŽÛ;n¯Õ _æý2ï—yÃÛÏ*Ò8ñÎDõ9Q²¬È;4.…V5«†÷®9°æÀšªg2apFÀ@ÄÙ·{ßî}»î]¸wáÿü’´p‹7f=kzÎjÙ¨Ò‰’õžè,Q5îø¼lýB÷†÷þõÝ_ßýõ*dvóKÍ/5¿TxûÃÉ­öž¢>'VÕ5üûtxûË»_ÞýòîÐÂÐÂÐBUÈìå”Pþðö<ΛQ%I}N¬ëÆßÞ>ãÒ—θT}€tÂà# €ˆ³|ÀòËñ>pö…#Σ>'Ã-9Kç*Ð%¼}ö¹³Ï}®údvã{Žï9þ(wt¨Wú’»â®VŸ+{å¬Ã£‡_}Õ¥ÃóV9²=->->-~碋v.R%€ÌëÀSž:ðÔo»~ÛõÛ®#Û³Nο¿Hù,Ås-Ìý*X¹6•ªyÁ5áí#ûì7²Ÿúá„Á` âÌIœ“8ç(·Ìº²ûYíóþ >'CÅaù†å*Þ>qäÄ‘Gª@&Ö&Ô&ÔfÜêq«Ç­ï,òRþÎÙš+ÒÉpKÑkî(p”‡,,‹[·,N}2¯5/­yiÍKáí^ªÕõúvês2dy>ÇŽ\5còæþ1ß3G¶/-¹´äÒ’©W¦^™z¥*93Ã`0q¦wšÞiz§ðö2¿ç®½säÌsKÏýuS>íÛïçó7|[ÿ™ þØ]uÍ”w—Œ=kЇþðäE&<¶øëkg}Qÿ×IýŠü¶gã“ ¥’oKÝ™5kŸ­UL½ðöor}“ë›\¡B¡B¡BV&@f”4.i\Ò¸ðöF/ÕjžoYÔyQCWEæÌ—dYñÈÞ Ú4xfÓŠèrsn~lÑcg jtáO^º´}½¥>uÙ×>œPjw–HýÞZµÄ‡s¿Þ¾àÚ×.¸ÖÊȼ–Œ\2rÉQþL6öís{UЏÏMiï§­Lë³ó¡#>¸ªSÿtøõê Z\õóµ‡]øû­Ï¥¶·á·Û¾ùfò ÛÖl˜É•Ï7«ÚÒkJ‡·oí¹µçÖžV&pL?Qœ1apTZZZZZšSDŽøøøøøøðö„_Z6½¬r¨X(W(Ûéá¬[þÚ} MƒÙ9VDï^wð›C‹ý½?Omò[¥_‹×Š}.{ûH«üíg·â©=×ÿ•°ëÈöõy×ç]Ÿ7ö¯Ø¿bÿ²>2—?ŠýQìbÕ÷UßWý‚Ò—sÞ¿ Ô}wmlº»È§w†+›¬o´jµÙíþü?¿4Ï:*¦sÔu[§¾öyFï-ôA¾„˜õö¼ôñ3ËßZ¦L®7"§òûïLîyø—³?müÃÿSù+Û\ÙæÊ6ãßÿæø7­O€ÌèÑV¶z´ÕÐiC§ vd{ù^¸å“}1kr×Î;7æyè±Ñû&þ5绞ܻwàÊœKß;–w•˜Üæ½î_Å?~éî«GZåßúùåyíÖÔºþé G¶O8uâÔ‰µêÖª[«®õ À©þÛì)IS’¦$ÕN­Z;U}2‹ô@w`»í¶K{å]éáq§á†wž-GιÈêþU侸j‘ýîZîЇûWgÕëéÑoá·stÊzö³Ë+·*qËÔÁW¿0Çœ1 kWxhÂú+W_p Ë–ò¹‹>—½Oô¢¨Éé[¨xý¤òK.ŠÌ:_ösÁØÜåÃÛw|±ã‹_X‡™ÑÚrkË­-Þ~áeeêå¼1’gžýÞ_í¦Îzøãz½7qÄoO ?÷¶9µ.Ô#*14#tÙ¶Ûwŧ¯Ýñž{~iV2­OZÿÈ™θ셢cÃÛçNš;iî$+ óúþƒï?øþ(OùÍr8g—ÜôYomÉ‘?õéóßè÷óè†Yvj{õí·¬.Ó¼SÎ>ÝÊ®èšý9E+4myÏÍYÞ‹í÷ß?·ZwÃûíû^\rkÓõÙ"­òÙ§*Wì(wÑXuãªWÝheÇ#xW €L âëñƒrÅGÂL~hº½ýÞ¢›íéàÕQkC“CLúõªš\üôù‹G¯ûèú{¿j·ìÀE ò•Ìõ]½Ø³zÆÕíWä·=›žLîq¸JÚ é[(0+ûí1EfËNϳ#ÇïáíÛ·nߺ}«u­[ºn麥áíEgh—mPdÎ9úçèj¡÷Ç•éÓíü’Ï}qo|ÉÙ7Ïì™å¦MŠÖ)–ÔˆŸÚÖç+zö([ðÈwåOªÿõÕ#è0ú…º†Ê”-Y¬gö„#›SSS­L€Ìki¥–oú3ËŒ,}"a†»ÿ6ëû’êüúîü<¡—£>‹®Vf_Ç /*úS“jw¯\=~àþ/Ŷ(ýRùý…¢¯ªqó=‡Úï}{÷uQǼ‘u}ú–Oy¡tûz‘Vù˜…¹Sòþ'¼ýÏ:Öù³Ž• œ(ÁƒÀ@&P¼P®G³Ý 3ÉÑ'Ë¢¨ÉíWœÛµpñÇ^«p^±5|vÇÏÓZ¶¼ì²ôÿ=r|zËüû¬Ø ½eGÝäR_Œ3æûï#­Î…öf_3#¼=¡[B·„nÖ!@f´iÛ¦m›¶…·çù6vf–b‘9çS꾕?‹Õ=^Z¾öÿûýôË/ÿ¿ßaÓ_·øúÊÞ¶ù®Z·T•çâH;–²¥Š?žc—ulÙŠ¨yÖ÷¡¬¡¼¡‘0Ÿ¾{bZÉô×y/«¼§îï«› XÚý¿T}ñÅo¼ñå—GŽOoI{5õ¡ƒÅÓ[r=[¦xùÉ‘VçèÝÙÎɱ%¼}ýðõÃ×·€“!ó†Á1§«d=ãà(_d»fû6æÉPçÐ9¡Óü«êêÏú$ÏËÕC…ByÎ=z&êÛï—І Ç®˜–”Öæ‹ñóïJ …BÓ#¹Î±ge='K¯ÐÚÿ·ý¦e7-»iY(>òu ²OÌZ'ú¹PÅP(T?ÒævG‘Fï¾zXÂã_žû<ÉoìÏÍ?/î¶þOÖøc÷Êzë³Øíµßo<20>½ ~‘÷¡¬†r††ú4\1Õò\Vè¯P(÷x8°|Ó«W§¿Î¿³æó Ö–º¸Ýÿø÷ïºèì>«>­žúվϓ¾ú"ºaôe¡PhRhiäÔ9je–ÏbžoÿäœOÎùäœOBŸ„>±ˆó4ÎÓ8ߦÖüÐüÐücžW~·ò»•ßmj:U)°+€L kÙè-Qå#sníjqW•ÁßÜüsâÍ#²¯¼zk³gÎZœ¶î¯–ÏÏùÇ…çì×tÑ/O]¶¸ñº‡#¿ÎYÞjµÄz8Dç‹ê™s+»¤X쫎eäyï—üOŽgÓ_oíœpóÁ‘v,ÙFd­õ´õlQ³vÏ6'f’öèáF‡H¹aÛš ³Ó[²¿Pð•bÏÓçÁ‚¹¦ä~>û­“mXþIE–F\¡ë…æEYn@¦tMÚ5iפÊ= €LààªÃEÒ~‹œùütÎŽ÷Îh–ûëž¿×;gÝøåjvè›_–?Ú%×wýÕãäec7mþꆬ»Fœœã³¬ãš­,ùDþLðËßCw¦I«d½œ ï:Ü!Ô72çVøƒø„ÿï3ÿ^Ñ{ ®ÉöU$×9¥íÁÅiÏZoÁ–ööÁ¾)—GÄgç≶—:²%¦OÞúùï H¡g†j¥Yn@¦4#jFÔŒSú·l§íÐS’¦$MIrÊpÿ½EÆv½žrEês¡PhmhÐéÛ‚'¶Ý”ôhÓn_gÿýÉä‡+¦ÝPú¢Ø­Ùkµøºt¥çUù3ÿ›±×^ðBÞi9w”,[=û¢˜‹£¿Ê·²Éîªûïÿ4´6´3¢¼wóÁ?= …ÎM8²ýÙRÏ–z¶TÕ_ªþRõë sùਫ਼úੱ¯}}ìëG¶'7=8ûð“¡Pèæ, "mÎ[oOˆ?X¼x¨p(ûÿ1rKç7Üz1Ô/Ê2;ËîÐ‡êŠ 9Dz½~â_ÍÅþï])}Ò'ÖÔ’¾IØ*ºítÏ-fQîCùºÙrèõ½çïÎÊ*˜é+Ÿvî¡F©Ï†¾½ºöÈözcê©7æÑÆ6~´±õ @$ülÐg_Ÿ}}öU ÷kʦßm¾,”/Ô046”5”7TàtM-zDÖ²Ù†‡B¡Ðÿ7"Mùh{ÖM—g­•7TpÔß¿÷ÀÝ›³­)˜4ÿ·›~¸*t{ô¹Q= 5¼bW‹GC‡Þ ͈„ÂŽKùó@‘ðöK^2ð’¾·9?¤G¿¾7îj8°ÝÀvÛ¥?Í7Š ýÑo·AÝuÔix§á†ç›–oZ¾i§á'C'ˆ|?wMè¸/!f²8ËÎ2{/LÝñ™ó_>«CÔÚ¨ÉQ¤‡¾ÿ¿è÷ÿ±&iO—äLðÍ~Uƒ¤.o/X¸`á‚…­C€Ì¨ÄÅ%..qqxû¦:;†§tŒÌ9ÜòYû­Çtcç¡WOÚ·õ±ô×ÞSú®œ­#è0º„^­^µvCïäÿùE@¶¼ÙòfËked^ï¸xÇÅ;ÂÛÓÎ9tÍ¡‘6Û?|?÷‹|Ç2rûÕ³¾›0kÓ¨‰…'$ü¸`îù"'úM—ZuO¶Ä×ÂÛÏ™}Îìsf[™À‰’úöù°Ï‡}>,3¿Ìü2óÿýþ­ôÐwuÕ5V×èqk[{Üzº¢ßt` ˜UzË€Ý?„6„ö…_zjåK˶7fXúëµë÷~Ÿ\åïÇo˜¶oYÊoÝ{-zem‡È¯ó÷·ïÝs”g-¨_ ~úÖ!@fTrEÉ%W„·/û~õÌý"sβͺçί«üøeâæŒÆŒ»ê›ž; ~þÔü<»~Oo¹¿ÚÍ}8!áË/öÇX§ÞþÝÉÛï o¯Ý¤v“ÚM¬L€Ìë²Û/»ý²ÛÃÛEïï·ç×H˜a‰ ZoîÖ'ýuBÊ÷·}ùãž+s.}/£ñÉ»¶~µ¾Ñ® ~Ø:£ozKl­sï¾xÔÒ¥=tíµ‘Sùäë·­Øðex{Ù e'”`eÇ#¡ï‘À@Ä©µ¤Ö’ZKÂÛ÷mI­{húé[íë ÈsWúëG'üøÔšoG}ùg–mí×ýº·lr§­ <¸qÞG[¯KZúlÊ’Éën¸té”ýKþ\U/éÓÛ#ºèKB;C{§ö\ÿW®ðÎØ½±{c÷Z™™QÑ„¢ Erož]ôbâ‘9炳òvËúX‹Õ=^Z¾ö©Ë†|¼öᯮüáð®IS̽#a~—¢¯_}õ]?õþaÕgÿýÉá–Š£ò\|ý½ÿÙºì@äÅÆó·—raxûåÏ\þÌåÏX™™Wµ«ÝXíÆðöä¶½µáÃH˜a¾Ç/Mº:í¿ÿçºÃÓÅýY»ÿ=ÞÔvR›¡k’ö-ÛøÃá}5×T\^o{×Y-'>µ*÷›?wÝz8:eúMY®ÊU?Ï…_½fç­ï\|ño|ùeäT~oÞU½~~!¼½tréäÒÉV&ðO/ô=’ˆ8 6Ø``xûê öÌM~ûôÎí…OªÜ[2åìÛr.ζ'¡TÊm©ûî¿eÁ«;]|ù¤ç—´?ô§ù~Zý½_µ[v _‘ßölzò@ßCËÓ /h}ýÁŠO˜•ýö˜ÇŽÜZãÛ¾úbY¥H¨ùî÷RF§Î o¿rß•û®ÜÚÚÚfedFyZäi‘§ExûgÝæßuaÚig‡¾Ž´9¿[à‰OËNËÕ*GÑè[û¯øxÈæ[oZÜóº?ÎjÓà™M+¢GølÔ¶ÿ^ÕT*ÏY×gܶ{èœ1‘v ×ý½çáðöê_Vÿ²ú—V&@æUéŽJwTº#¼}oç•O-‰ˆÏMQ/G]-ýuŽçÎþåœ!鯷=üUþïZ½rЋ=¯[9øµ«î϶±ý¸Âo}—ú[Òê]ñÑ/æ8œ«i‰ oßÒ­ï²ÏžZÞò¼H«ü®º?\<ã¯ðö½ ÷.ÜÛÊŽé'Š@‡¾Gçò¼—ç½ü(ÏÆû¦ïæ÷«Þ¹˜•ýö¬m»¿rJî®”¿»èç‹¿(Wçܵc^‹ž“þ¿U~Ê¿=öñ>OUy´ä°Åok\­õQS³þü쎺ɤ¾˜Ç6й4úÕRybûe‰„šÿÜaW‡}GùUEÓ;šÞÑôk {?ô~èýeZ”iQ&¼sK·o§Œ´)×¾îâöqwï}`ÓáoÜVïÆü NÎW%f\¶YÏzòÜIÅ?ËqýÃ3Z½zöysÆ ù³Âƒ¯oÝzÉE‘sóçtmš1rÇ+áíî¾p÷…»-L€Ì«T·RÝJu oßÑmÞëS‡GÎ<Ó¯ß=ðäÆ Þsv×·u~"W‹Ò/•ß½1ç9±ßE·Î~Î7sv.ñéy ´¯S¨É¼ó?þ×ð™q³/º³FR¤]û{è‰ö}—š¸çÒ]ÏüÏ1®½xíÅkc¾‰ù&æ+ÈÈ™ú)*-----Íé"ǾÝûvïÛ]¬T±RÅJÙ^¸E޳Æ.Ú,ç%EÂ<ããÇŒùþû„„–-öëæŒzÿþ]§ËCß¿cõ%#¯[õŶÁG¶/¬¼°òÂÊç|sÎ7çø8 ‰}6ý³éŸMoݲuËÖ-lTê±lç´½uñ5S .;ÝßU¯½öûïÃCÜÚ ’lw¸ÝYW6Úðã}ÿóÑ+!*!*aç w. U U Uµ22¯Úej—©]æ·]¿íúmבíåï3çÓ"YŠçZ˜ûƒH›sú3}3 wÿ¾÷ôJz{ù‹ž[]gÀÛÍ:²ý•æ¯4¥y‡a†ufMpú>ÏÆÇÇÇÙ2%iJÒ”¤Ú©µSk§ªÏé’úl7°ÝÀvÇ÷¦K}; ï4¼ÓðÌ÷†s0qrÅåŠËW5¶jlÕØ#Û·Ž;0áàÞÍ öÿr_$ÌóïCÜŒz#-ú=8äð¡´ùáÑoºÒ5K×,]ÓšÈìj¬©±¦ÆšðöW³ŽÝ˜-2¾«=Êý§í‘`a©ß/Ùûlxû£qÆ='ú†Ž;;îì¸3¼=é³?®Y”'2çü÷ándF¿év4•0aoxû5?^óã5?Z@º3óJߌ€õÀ#<òÀ#á퟼·fÏŽòês¢,X·­gÒQnPÙéýNïwz?ºwtïhÏRÈôòß›ÿÞü÷–+V®X¹bG¶¯øc]Âw6¶ÙvaÊAU:QÞÿá¦MËÃÛ[Ķˆm«>Ápmⵉ×&†·oÞ2%ï»yÕçD9TnÚÞ»vïüeôw Ã{Kå(•£TU€3™Ð7#` B]µçª=Wí o²üO›×]–ºäp×´8U:~϶]²|Ý]áím[µmÕ¶•úIÏ{zÞÓóžðö÷^™Úwk5õ9~Û^ÝUãàù_<²`á®|á½åV”[Qn…*ÃY¡³Bg…ÊÍ-7·ÜÜ#ÛSšnÛ²aar½mŸmxY•Žß®6?Mû¶Kx{ïl½³õÎZZZ JpÆý„ ô=` Båy"Ïyž¸eø-ÃoÞ;£Í¦®»žR¥ã±êÒ¤Olý±ÚŽ[÷æ?²=ïÖ¼[ón=ÿ…ó_8ÿU’ú_Ôÿ¢þáí¯\0ê­CöÖØ?ÿЭªt<Þ<áÃ-EÂÛûí뷯߾¨ÜQ¹£r«@ôZÞky¯£ÜõaKëéï~°[}ŽGÚY‡Êj¶áÆ?ï×5¼÷æ7ï¸y‡*À™CèûO €ˆöð?ððáí­nœuÊ~‡v§­JkªJÿ΃Š_{”êõÿ¹ÿÏý=z ô€*I®)¹¦äšòÐ}Ý÷Ð}á½ï]=¥éÖsUéßI¨¸;.5ùåm£îÚx”+4Þ|xó᪞üxòãɪA%ô=QÀ@&ðÚ¨×F½6*¼ýž”ïFýYuׄ”©7ªÒ1}®Ÿ–švçMå¿Í²¼bxïð]Ãw ß³%fK̵ªÂo~£ð¼ñÀåÏ€z~9p÷ÚUéØ-›ô×§û>œ<¡Ã–ÏÃ{ï›sßœûæ¨@°Ývà¶·oßð˘ï~Úûóª9?¿®JÇnë¢/rŽ>ÊwϦ?4ý¡éç>·ð¹…U ‚Dè{2€LàÂ?/üóÂ?oþÏÍÿ¹ù?á½ø¡õ_ùTéX iûÇ[rmu wêÿÀ (X à ßßðý ß«À™àá¬g}8kxûG_}ÕkÇs³£?µû°*ý½Ô¾‡žM;Ôø¦‡ßÿýâðÞWR_I}%5orÞä¼®R¸ìïf7û»#—Ž\:rix華7?þÏg‡÷¤¼z`¼Zý½ý­6|½jùÖä/ßÓ-¼·÷‚Þ z/P%žïîùîžïîúžX` Óè3®Ï¸>ãÂÛÇ»¶íÎû&öYÛqg¬*eä—'Ø—ØãþEÏ­½ã(5,4¾ÐøBÑÕ¢«EWS+€3AÞ–y[æm9äÇ!?ù1¼·I¾G¿ûýÇÇ|S­2Ò7ed‘ kwÆîNJM<²=gZδœim'¶Øv¢*œ9nh}CëZ_´â¢­ïÝýã”7[©RFoHns ëŠî/Mìxxïs·¸îƒë>ȨWèûï€L£Àâ‹ ,~·ü»åß-ÞÛõV~³üÕĦûÝ êìº6enj:oM¯õËòðÞo~ðæo¾xÞÅó.öl*€3ÎÍoî|sçª}«ö­Ú7¼·YÇÊ.ïyèC—¦]¢VGúüòùËw-xõõÑã6n ïý"ç9¿ÈsUÌU1W©ÀdVhVhÖè§G?=úéð΄eßoþ²ÎÎ z|~—Rý ¡Co®½ñýÎ}n ïÌŸ5ÖüY;ö騧c¥€ Š=.zÜèwG¿;úÝô¡ïñ‹JKKKKKS ÓØÚÚצk›®mºNùhÊGS> ²|g³ó/©S8*G•¬gôMS.>Ôíp·º½§'ýÚpy›Ýu÷ÿÏÒyvæÙ™gçÊïV~·ò»lµ²ÕÊVËâ83mÍ¿5ÿÖüç§ŸvþQ>´}±Ñ7…ô+Ùuv™~¡¡š¡|gr­~¾på9{GÕÝÜ©ì¯åÂ{Ÿ­ñlgk<8íÁiúP pFûðìÏþðìŽû;îï¸?¼÷œ.÷¿þJ(÷×å¢+}©V[vN«ÿ~µ-ë§_8ò(?cü8õÇ©?N-[«l­²>±¡âãããããl™’4%iJRíÔÚ©µSÕ‡ÓÅÀ@f“+”+”kÐÚAk­ÍhH¥y“Š,ùb×u)óRkž™EJ]zø?iq-Sf-üãêðè7ݬM³6ÍÚ$ú ðÎÂ; ïœ8c⌉3Â{G<öÙ•Ûî{~Ì{Ÿ­ßt&WiŇëìï—Qô[§m¶uÚ>Ðâ´°¢¸uínÝвkË®-»†÷þÙï­®„öÕYsùò3ú»Æö g=:á¶Œ¢ß÷®~ïê÷®ýü;` SŠ;-vÚOütÁO„÷h|hÖáœå;Nè¶ø«m¿(y°Æ™S™ä)‡nuËK3{/òë-›ïÚ>fÒ9“ΙtNé³KŸ]úlk €tu«Ö­Z·ê+‡^9ôÊ¡ðÞW'ž¿1©WËa›×Ýjz:´âÌ©Ìo߮޽ï‘Ë:ÞùÄÏGùtÌä˜É1“G=~ôø¨»¢îŠrcOB¡¨PT(ª_Ù~eû•=·ù¹ÍÏm>dåÛ¯U½÷ÞæÞüë[gZy¶ øv츬?—òöŽðÞGŸzô©GŸºñ“?¹ñK àß™XéïJWú»¯:}Õé«Ná½ûï<Ôùð/ç]þé‹?½¹²Üîëöü£ãÎg“K¤.­ýù´—~yà›©›?Ý]/|Ì;½ßéýNï: ë,¬³Ðú \‡ÝvwØÝõP×C]¿>}l›Mï®Ögݪl)ƒ:üZ°«1kÇâ‡v§ÔnvO‹_nÉhÌÒ¤¥IK“r¯Í½6÷Zë€#ek­u¶Ö3¦Î˜:cjô˜è1ÑcÂǬzæ³»LL,¾$nΣÁ®FÚã‡[^»±Å§ùØtù§ß º"|Ìm=nëq[žzNè9Áú8` Ó«Ò»Jï*½§vžÚyjçŒÆTÛ>µÝÏ%?»v}…„Á«Àâ%;ãö–(ÛoüK‹¬ú é×YÂÇô?ÔÿPÿC7uº©ÓM¬þÞSÞöÔ°N7uº©ÓMὟ<ûõº[.‰¿ã¬¥õ6¼¾­oJ°þ¨hghw(õímãjl^ÔôÜGû}q†ß¯\|åâ+‹6,Ú°hCk€ŒäÝœwsÞÍ¿ïý}ïï{3³æ³wÛ?»xóÊ)›Þ]™6>>>þÃ7%iJÒ”¤Ú©µSk§ª§‹ ?{þÙóÏžUVXuàß|ÿÜË¿=weãJ Îß*³Ý…·oß³ô†-_ºlvrþC¹Óªe4rJ)=¦ô¨Ý­v·Úݬ ŽÇ¨U£VZuÿ¥÷_zÿ¥©Zù‚<±o þ¤{²ÓË(Ö5ÇŽÈ?®ÃÓ:§½üN³ ]·dï>w@§µ52Y¡t…ÒJO~rò““ŸÌ×<_ó|Í­ þýWì¿bÿwì¸cÇ;f¬Ÿ±~ÆúŒF¹µáw¬)<êšÚ·Šª37ëªÈ?ºƒßízqÛœõý?|õ^IÝk¹ Ãß:öú¤×'½>y ô¥(***km €‰L` °’Ú$µIjÓ!_‡|ò}ùÁ—|ùAF# ÖÌÞ7æÍw£jÿvîäË‹nŸç­¨w£†Dµ‰œcùedBÏ})~¾°ì_}ç¶-מ,| ðÂf,Ÿ±|Æò%K”,QÒJàDY4dÑEC®~ìêÇ®~ìïG¶,uí—ËöØÙö½b-J¬-Ò>û·‘s)ËV>aú„éõª×«^¯º…@f'&2 € ›šš>ö–±·Œ½¥S–NY:e9–7õ¿zJ™Ö­î/sCÁjÑEå}ê'>­ÿ†± zŽ]”¼vÔ_¿íÉ–<ãïÇ?–ý±ìe¤ú#Õ©31fbÌD'€“a÷k»_ÛýZ×ñ]Çw?þ×ñ¿ŽÿõïÇ×+yÉqWw/~GJ±²5¦Vh›gñi˜sÌÞú©Ã†œwëü^wÛµþîcyפ<“òLÊSgmµuÖ:ïœrÞyEΫ½©ð®Q³J{#mdZ}õþ<û—»nÿiÒ·÷í=;jÒ-Ǿ…QŽzpÔƒnjtS£›BCCk‚DLdg¨ŸzÿÔû§Þ¾íôm§o—ÿ°ü‡å?üÓ-”j;6{ºŠœ—ûÂjùnËÙôìq9ûe[W&ÛÕYªd-µ>ªÜ¡i«Óšíy3µíáK6Øß å³?þÚ½è@‡y)[ïJZ÷Ë£»îÛ·ëá~+ê­¨·Æ–[zléú×Õ¿®þu¡=¡=¡=Î)§ËÁ¡‡:fǘcv<Ô÷¡¾õýwÛ©Ù²Âê<{/ËzÑ5¹«•½°X¯‰…^Ì—?æƒ\娓¥qÔ'ÑMCíSžMÙ–ÖwWÉ=ýS;­OÞš?åã_¯ºj߯^ú1”˜špGÒ¥©1ÿt¿ ßiøNÃwz§ôNéRºUéV¥[9§œ^›VlZ±iÅs‹ž[ôÜ¢1ÇtÓñŸn!:w¶Gr4ÏS½ü˜Ë¦ç\U|×¹Ù³ŸQ䯘ڱ•òœÕ!¦]ÖQ¡ŸÒîJ«~¸òÁFÉ#R/ßS:qBʘí‡6VÙw诇—5Ý3ûûª÷ïæÿügÏöüg®ìpe‡+sÈq Ç瀠™ÀÀ™mmhmhí’æKš/iþÜœçæ<7ç«¢_ýªh¤M³\ër­Ëµ~ñœÏyñœzë¬W0úŽè;¢ïpˆ4É}“û&÷xûà탧¾6õµ©¯½ØåÅ./vÙÔsSÏM=OýLžûäØ'ÇÞÜøæÆ77.q°ÄÁ2£eƒ— ^6øƒþôÿ ÿ€ 6 ØpêçP¥g•žUzvy¬Ëc]»jÜUã®Û,¶Yl3g€Ì%¥^J½”z3Óf¦ÍL{«ê[Uߪ:kø¬á³†Ÿú™´ÙvfÛ™íÛ·oß¾}¥…•VZèìpf™Àÿ‡„7ÞLxsñáŇž1dÆC&®˜¸b⊠¹7äÞûx¶œû¥Ü/å~©Y÷fÝ›u¯¿¢þŠú+ª]Pí‚jÙZdk‘­*@P­ykÍ[kÞš¿uþÖù[§í¶wÚÞ‰ïN|wâ»Ç¿åòÊO(?¡Éè&£›Œ¾2áÊ„+.ºà¢ .º ¶Wl¯Ø^*@ð$gMΚœõ·ž¿õü­çÌÏg~>óóÉ'Wœ\qÑ'‹>YôÉño¿AË-´l”·QÞFyk¨u Ö²mʶ)Û&T%T%TEý"“à[º uAjj“Ô&©M²lϲ=Ëöß×ø¾Æ÷*ÿÔ¡÷½èýï¾Oø>áp»Ãí·‹¿,þ²øËÊÿ^þ÷ò¿«üS«cWÇ®ŽÝT{SíMµ£’£’£’/‰»$î’¸“sLÎ1Y}‚A ÑJ `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@ÄœÊÍ™37¦qžÆyçQzàL0%iJÒ”¤Ú©µSk§žì}¹ À “H¿ä9t8t8t8”J ¥¥N;œöß×G¶Óë÷®S¿eó\ûðÿ4E…¢BQ¡èP´+•Pè¾d e eQðÕÀW8Cù¤~ð3øŽé_ºïìà{z€Ì™37&”'”'”çô}x À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€"F ÎLññññññõ&$$$$$¨’ó@æâ `€€„ À£g¦[úÝÒï–~êA"8C n;¸íà¶êAâÐ!0@@x0À)r ï¾úN:mè´¡óÞ™÷μw~ÊÿSþŸòo´iЦA‰»w'îN¾/ù¾äûòÆåË¿+~Wü® *4¨Ðà’Õ—¬¾du³mͶ5ÛV⢕¸(ÒŽnÁ žXðDx{õç«?_ýùðöÝëv¯Û½näæ‘›GnžÑlF³ÍÖÍ]7wÝÜ Ó6LÛ0-g÷œÝsv/Ò»Hï"½kŸ´yÒæI›—nXºaé†Í/n~qó‹[:oé¼¥söÙdP`i¥–V,_±|Åòu.¬sa [vhÙ¡e‡Üµs×Î]Û¿w€Ó%*-----íÔìlnÌܘ¹1ó4ÎÓ8Ï‘íS’¦$MIªZ;µvªSÉÞÏö~¶÷³—ï|ùΗïž}xöáÙÓƒÞù.1*1*1-oZÞ´¼é- ÿnkññññññõþÓ-g´µðí¼õÃ[?¼õCß~}ûõí—^ŸcßË¥/xéÄ›þØôǦÇsìáÒÏK^=zõè5öµ±¯}íÈ:ÿSGÎíDÕùÄž¯p㫎¯:¾êõŸ¨ÿDýô?Jø§[ˆ+W"®Dz´ÿëÀ_þ:ðìÛξíìÛ|Α‡ºà¤X²gÉž%{ZMn5¹ÕäÉ“7&‡Òÿ;GF’9ºç螣{z(xb£Ð“!­dZÉ´’ÝFtÑmÄÐæC›mþï¶“ýæKË—–/íDûâ‹ ,.ÐêžV÷´ºgÓ°MÃ6 å å ýËè·TžRyJåÉ,ç%=ön[¾mù¶ågî¹wæÞРРР·µôè7ýõe“/›|Ùä½övÚÛ)òë$ž p‚¥ß2·I­&µšÔÚ8vãØcOÆ^Òo(m@¶Ùüýµ¡‘ ×Ê^+{­<žè÷H»¢vEíŠ:ÿ…ó_8ÿ…ã9öß_úý¥ß_j¾ºùêæ«ÿÝ5¯áÖ$­IZ“T¼VñZÅkEòyÙYig¥•ÒWé£ßêÈk»‡tÒuHW_N 0À s°õÁÖ[w|³ã›ß<òjÈpéOÆÒtHÓ!MgÍ5wÖÜ¿výµë¯]kg¯½vöÜAsÍ4ìœaç ;§ê·U¿­úmFÛI¹/å¾”ûҟÙqãüWæ¿2ÿ•7’ßH~ã®~®”»RîJ¹ß‹y/潘ß;ýÞé÷Nk–®Yºféäi“§Mžvûe·_vûe¿åå/|ùãŸøäÀ'ÿé¬öÌÝ3wÏܛߴø¦Å ¥J%”ÊhdÍ»kÞ]óî¡— ½dè%Kç,³tΖ–[Zni™~‹ãQCF 5äº^×õº®×‘ïJfpFÏ?>½ÒŸò{Ûó·=Ûóé¬ÑÈ+^qðŠƒƒôà ¯]¼vñÚÍ7wÜÜquÚê´Õi3*ͨ4£ÒÃ3žñðŒôç"g´îot£ûéO¿öUàdó `€&ýÙ±žëô\§çŽòlmÔÚ¨µC¯zÅÐ+:üÙáϦ·Ë r%Ü2vÊØ)ck_WûºÚ×ËlOÍ3€K/Y¼dñµë×®_»>½åÖgo}öÖgû/è¿ ÿ‚Ÿþ¬ðgíëƒï?øþƒï¸îëÈðˆÞÕð®†w¥‡‹Ç>çôgýz}Ðëƒ^ÏèLõ}ªïS}Ÿºçõ{^¿çõc¹¥ó§ç~zî§çvz¤Ó#Iî‘Ü#¹Ç±ÌäÔ?øoäx#Ç39ŸÉùLÎðÞôçøn;¸íà¶-Ÿoù|Ëçeû‰Q‰Q‰Q¥ó•ÎW:_Fc Ì*0«À¬uwÔÝQ×M¡€ Š„<ÔÀ'̸ªãªŽ«šQïc¯=öÚc¯5_Ø|aó… G8–-'N8œp¸îÙuÏ®{vFc¦¿:ýÕé¯FÚuÀGF¿éW3¿õÅ[_¼õÅßG¿éÒ¯þû£NÖò±WrE›mV´rç;‡Ü™Ñ˜#£ßÿÖÿ¶ßle³•ÍV|eà+_‰Ìõ™~CòÞïõ~¯÷{á½9;å씳SúØéÑﱯҼiyÓò¦¥¯ÒŒÆ¤G¿]ÿèúG×?"ÿ¦å™—à„Y6xÙàeƒ3êmR´IÑ&Eÿeô•J %6º¹ÑÍnÎhÈêøÕñ«#:TëójŸWû¼Zhn¡¹…æ{d{ï3÷>sï3õn½}ëí[o?ö9 Ï><ûðìé·Aï­[/¶^ì‘Ñï?•7ÍÙ4gÓœ‘Vÿ÷ ½Wè½Bé· ïí=´÷ÐÞCëU¨W¡^…y…nb(1”˜~‹ìŒ†¼{é»—¾{©¯'à„ÙÒyKç-3ê-Ú­h·¢ÝŽçæ·×½qÝ×½‘þºË–ÿ÷¿«]½èêE‘Y™Ê‡*ª|¨ÚÈj#«ü§8ÿ­óß:ÿ­ŒzS§6Nm|,ÛIB󨧯>5ö©ŒÆ<³ÿ™ýÏì?þëS{´ïѾGûÈ©z•Fq`ÄðÞ2«Ë¬.³úŽ"w¹£Èñßœ9Û€l² ¾wøÞá{Ã{w'îNÜþÜk_1N0À Û*¶Ul«Œz¿.ûuÙ¯ËÏöK'”N(ýß[ò>íÿý¯ýŠö+Ú¯ˆÌ§«^_ÿúú××ÿwÁj©<¥ò”Êsüs˜ÿÄü'æ?±³ÒÎJ;+…÷žÿÂù/œÿBå•wTÞqü5LßZ…šjV¨ õÿñНøñŠm·o»}ÛQ®–¾õ[߸õë ¬/°þDí1ýÙ̹Zåj•ë(ÿ"¾{ç»w¾{Ç N0À sÎâsŸ³8£Þ.¹ºäê’ëÌ ½ÎyîÌsgþ»÷ÆL‰™3åøç°ðŠ…W,¼"£Þ㉨3Òàá7x8ê¿à‰O,x"£Þ«V]µêªU'vé×WŠ­[)6¼÷»—¿{ù»—}Å8À'LÃG>Òð‘Œz“~Iú%é—ô×éAã~ñàè{ ï¾Á®L±†Åkxz¯N^xÉÂK^’QoåÔÊ©•SOì+ÔªP«B­H¨ÿ‚<°àŒzËM*7©Ü¤“qv M)4¥ÐQÂû Ó6LÛ0-2¯VÈìb”àD¹÷™{Ÿ¹÷™Þã{ï=þXÆßúþ­ïßú~ö>ÙûdŸÿDÕ'ª>QµúóÕŸ¯þ|ÕŸªþTõ§œrvÊÙ)³W¦X£bŠ5:½sø³ôŸ¥ÿ,ZZZÞ{a· »]ØíÄF’<Áó< õ_“´&iMRF½e¢ÊD•‰ ŇâC§èÚô½S÷NÝ;5tCè†Ð ¾nœX®8aâJÄ•ˆ+1k³æû»’{$÷Hî‘þúù…Ï/|~á ohxCó{žÝóìžñGXþøòÇ—?ž+sÖ g½pÖ §w»¢vEíŠÊ¨·À’K ,9±{,°´ÀÒK#¡þì§Þž¹{æî™ë+ÀÉ 8Á*–¯X¾bùß;ýÞé÷ÿ^¹•••xü[®1 Æ€ªÍ®6»ÚìôHx÷ºÝëv¯Ë>Žþ9úçÓ;‡Ä݉»wgÔ›ûòÜ—ç¾üÄî1wíܵs׎„úïŠÞ½+‚~47in’àä|W€“¡Hï"½‹ôN¿¥ðœ1sÆÌ“Þ^vfÙ™egÏ–W6YÙde“ôוKV.Y¹dz¬æï@=ô8•{Œ™3'fN$ûÁë^ðúÈ9{æì™³gŽ5 pR>*ÀÉVþÖò·–¿5áÖ„[nMoIÜê3›ŸÙüÌæ¯®üêʯ®üñНøñŠý÷Ü?ðØ·œ/!_B¾ÿn3>>>>þÄ>Å6Hò¥åKË—¶#´#´ã(½é‘ä‰} nÒÏI?'ý Çž7.o\Þ¸í¡í¡íGéÝØ{ccñ´i\ p¤Ç´e(ûCÙ'Í›4oÒ¼ðè·á] ïjx×±ÇrYGe•u”«3¿+~Wü®Œzw–ÞYzgé»ÇȹñrzøQﶶݰí+ À!!Ìè—G¿<úå?ãþŒû3.}Lé„Ò ¥3¼º÷`냭¶¾÷™{Ÿ¹÷1p¸B“ M.49£Þßÿýñß?±{ü£Ímþh Ç^äí"oy;£Þí7l¿a» À-G÷ÝstO„Ü·à¾÷ýýøo ~Sð›‚êî’—ì¼dgF½K7,ݰtÉ Îþíçß~þ-Ž½ÊŸUþ¬ògF½ëæ­›·nž ž pLÜ?qÿÄý¿¿ôûK¿¿ÞÛ¸zãê«_Ôà¢58ž½dm@¶_nør×®uí¬kg…ÙðÙ†Ï6|æIÀáª?Wý¹êÏ 7`Ü€qá½Ó†N:mè‰Ýãç~þà熾 }úêô{µ‘ÕFVªªªÞûÑC=ôÑCí>n÷q»OÔÊÙ0mô Ónþöæooþ6¼·ïC}êûPݳëž]÷l+àÄœsæÏ™?gþÐ~Cû íÞ{`Ë-¶\yüåñǰÿÂù/œÿB¨N¨N¨ŽÊ»Z÷Ôº§Ö=Yfg™eö¡:‡êúŸê¥_­;wÐÜAsÿ¾V—Y]fu™wý¸ëÇ]‘pìµo­}kí[c¦ÄL‰™’Ú8µqjã#{§?5ý©éO…>}úøDíqðÓƒŸüô²ËV,[qd{TbTbTb…é¦W˜ZZZbeœXn p¯U¼VñZõÎyþËó_>Qûúå»_¾û廌z‹5*Ö¨X#g$\ÁÉ'œÜ¸~ãúëg4æÙ”gSžM9þA¿0þ…ñ/ŒœcÏ¿$ÿ’üKšmR´IÑðÞÃW<\ñ¶ÿÜöŸÛþsüÇž••5âÀˆ#„÷Vý¶ê·U¿MŸ5 p2€N€Ë¯»üºË¯Ë¨wþ+ó_™ÿÊÄ_'þ:ñ×ãß×ÈÍ#7ÜœQoõþÕûWïïŒdäž~÷ô»§_F½_<øÅƒ_<ØoS¿Mý6ý»íOþ}òï“_u|ÕñU#îØß½çÝ{Þͨwìkc_ûÚ¿¿ñû¿ÿ»í§_[ܦf›šmjî^·{Ýîuác:uíÔµS×û¬eŽ$8ªþTõ§ª?íX´cÑŽ¹gâ=ï™øï¢¯ƒ­¶>غG¯½zôJê2y¢®ã ªZ·Ôº¥Ö-×õº®×u½2óðʇW>¼rDöÙGd?ö-OÚ4iÓ¤Még9-oZÞ´¼‘vìÕŸ¯þ|õç›­l¶²ÙÊŒÆtÉÕ%W—\ÿ]?yCyCÇt»òíÊ·+ßÝßÜýÍÝßÌ^6{ÙìeácÒo]Þ4WÓ\MsyF5ÀÉãÀ'Bb(1”øØÇn¾—ÝstÏÑýÔû«U^­òj•OCŸ†>=JoZÉ´’i%Ó_WP}@õºvèÚ¡k ë\X畸¨ÄEÉ=’{$÷XÑdE“Mæ}8ïÃy¾™÷ͼoæMܸ;qwø6ÓŸ»<¨Þ zƒê<\ðpÁà ¡„üàäˆJKKKKK;5;›37fnLã<ó4Îsdû”¤)IS’j§ÖN­ê”™WzxÖ|góÍw~›õÛ¬ßf=5û­P³BÍ 5'Ï›TùÐu½®ëu]¯š}jö©Ù'};Bß“aݯë~]÷ëøªã«Ž¯úùƒŸ?øùƒkׯ]¿vý¶¶Ý°í†‚³ Î*8«X£bŠ5ºrû•Û¯ÜÞ6gÛœms^Ôé¢Nu:òŒ,xbÁ žhðvƒ·¼¾—ôÛDOï<½óôΑsì{æî™»gn‰Æ%—h|Ó§7}zÓ§ÜÿÇýÜ¿¥ó–Î[:ï¸xÇÅ;.ŽmÛ*¶Uüšø5ñk*4¨Ð BƒZ·Ôº¥Ö-7¦Ü˜rcJùå{”ïaeg¦HÈCÀ§ÙÉ~z.'ïLýýÙùìãÏ>þìãÖ÷´¾§õ=á½·_vûe·_öÁ÷|ÿÁ÷‘–­R€c yhŒÓpz Ï‚z¦þŠþ+ú¯ ½tîÌsgž;3”3”3”Ó*àDñ `Î —„. ]JFï‘ÿÕPc@'v__UùªÊWU2ê½ ÛÝ.èæŒpb¹€3H‘·‹¼]äí¿žøë‰¿ž8²}ghghghY̲˜e1Þsá=Þs<{Y]fu™ÕefNž9yæäðÞØF±bÕËU/W½\®¬àÄr0g+^qðŠƒõöí×·_ß~ÿ¼Û¿w¨Î¡:‡ê<¼ðá…/L>¦Ñ-nitKŽî9ºçèîŒpb €8ƒ´¾¶õµ­¯Í¨wÒ¦I›&mj—Ü.¹]rbTbTbÔ±oyg¥•vVjÛ.¶]ì7e¿)ûMÙð1Q‰Q‰Q‰w»{ÜÝãŽ'f€Œ€8ƒ”¸¨ÄE%.z Üå(—јáÙ‡gž½RÉJ%+•LiÓݵë×®_»þ`냭¶ÞÒsKÏ-=ç~>÷ó¹Ÿ?qó7?qsÕ5U×T]3eÁ”Sd´å_uøªÃWÕFVYm¤›?p2x0gœžÍ{6ïÙ¼ÿ‹ý_ìÿbFcw'îNÜþºùÎæ;›ï U U UüŸACCÿû:*ÊðŠáJ¹+å®”ûélOg{:[z¨,àdp0gœôçï®›²nʺ)'{_W®ºrÕ•«¦ž:xêàK4.ÑXô ÀÉ#à •»vîÚ¹kÇ¦ß úø·|Qƒ‹\Ô`äw#¿ùÝø2ãËŒ/S¼uñÖÅ[‹~8ÙÜBéÑlZÉ´’i%ó‡ò‡ò‡ÒŸ¼ð’…—,¼dMÒš¤5Ié7…>Ðã@=ò¯É¿&ÿšK ,)°¤xíⵋ׾¼Æå5.¯qÅÁ+^qðâò—¿¸|üôøéñÓB !É/'Ÿþ+jmÔÚ¨µ…µéÏî 555Þúÿÿ7ïÅy/Îûßg '†CB_N07p òy0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€ˆ‰„I¤ÍJ›•6kμ9óæÌû?†F…¢BQ§aŠöÔýª°ýÚ¯ýúJe¿ök¿ök¿ŽÔ~í×~í×~©ýÚ¯ýÚ¯ýúNd¿¶ß¨¨¨¨(uî~O²ˆ€o¸þ†ëo¸>ä å åSþ·€ˆS×N­Z;UÑN†Sz èí7n¿qû“§Lž2yÊIÙ;û;RGj¿ŽÔ‘:Rûu¤ŽÔ‘Ú¯#u¤ŽT…©#UaGêHUØ‘:Rûu¤ÞïixB°µtÜο÷ü{Ï¿÷DZZZZZZ€LÎ3€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€€ÿÃ;ëÞY÷κÓL;0í̬À¤ñ“ÆO¿óÂî¼Ðz"™ÈÐ]µîªuW­nw»¸ÛÅ S¦4L9ÓbàI#&˜4¢m‡¶Úv8¿ïù}Ïï+"™8ŠC 0tܲqËÆ-KoYÜnq»ÅíΜø¿Ño—¶]ÚvIoIm—Ú.µÝ…{/Ü{á^+ˆL`à(Šg-žµxÖðö3!~T¾ùþåû[!@dGѤm“¶MÚŽè7¢ßˆ~á½Aÿ>ú­<¼òðÊçe›–mZ6+ˆL` CgN |ìÑoކ9æhhmÀ‰2íÓiŸNû4>>>>>¾Ï‡}>ìóᮆ»îòéû_ŠJKKKKKSàï5"ýÀér¸Åá‡[øºÀ×¾ïí6¨Û nƒ: ï4¼Óð|ÓòMË7MÅŽ…+€€c¼«E¿pz}~ûç·~{F½/u|©ãKËÌ/3¿Ì|W;0ð#ý@$¨9¤æšCÒ¯ôýû‘ÂàcçÐÀ¿”cTÑ/D¦ô@w`»í¶K{å]nN —Ì©Š~ ³0pDr¼*ú€ÌKüO €€&Ò¢VÑ/‰0øX€€,bWÑ/›08#`à¤8]¬èÎ4Âà# €€“èTƱ¢_@,Nº“ÍŠ~€pgf,N‘“ÓŠ~€cqæ„Á`à”:Q‘­èøw‚ €€Óàxâ[Ñ/p¢/ §Í?rE¿ÀÉŒ0X œfÇëÞßúþÖ÷·¾+ë]YïÊšÑÑ/p¢dÞ0X D„¿3"úN¶ÌŸ¶8>>>>>Þr‚jô»£ßýnÃf ›5lvjö­è'Ã5iפ]sJ/Çœ3¢fD͈:•{Œ9]‡:%iJÒ”$§H7·æÜšsköù¥Ï/}~9öwÛýÜîçvñš¯yñšìÕ³WÏ^]%€+鱤ǒ›ÔwRßI}Çĉw,ïj¹»åî–»k©9¤æP³P³Ð)ºôi{0@ºI#&˜4¢m—¶]Úv ï­<¼òðÊÃï¿ýþÛï¿ý®˜»bîŠÉhÌ´lÓ²MË–£aކ9ª*pgZ–iY¦eñší5Ûkv®4ÒîT»SíNm´Ýh»ÑöÖê[«o­f̤•×E_}]4¬pXá°Â§Lœ2qJåÙ•gWNƒ,wãÜs7îìßÙ¿³ÿ–Ç[oy|§âŠw*2æÒJT­¨ZQµ´EÚ"mј·cÞŽy[~tùÑåG§~³‰¶‰¶‰î¦ë¦ë¦Û±nǺëîm¿·ýÞvÆ@ZyÙÿeÿ—ýår9LjF#häÚÞµ½kûÔ¯`ù§äŸ’Jïü½ó÷ο§Áž{<üñád̤•磟~>Z'êD8ä C.”p-áZÂ5õ+X¡<…òÊÓ¿gÿžý{_¾|ý±ÿcÿÇþŒ9#ÒÅ›ð7áoÂ÷Æïßï×ѯ£_Ç\ÿ‘!¡CB‡„^pºàtÁ‰ãÀÑ!Ñ!Ñ!;‚víòžì=Ù{òµ‚ 0*àJ¾+ù®äã¸0ÅËm/·½Ü¶)lSئ0÷Iî“Ü'ýW+Ø„ !B®ß¼~óúMŽ S<»òìʳ+ÝûëÞ_÷\Û¸¶qmó_­`Ó¢¦EM‹Šü=ò÷Èß9.LñäÇ'?>ùqù©å§–Ÿ*–µXÖbY¿üÚeÝк¡uÃ9™çdž“ù—î^â¸ø2 W¤ÐÌ¡™C332øoi&22222òwçßwÎe–¬­­7…o ßþNx'¼8jô®÷ºÞëz¯^ƒz ê5Èé}Ò»‘ÒHi¤˜ç V%¡JB•e¯²WÙ›è•è•èÅ¡€až€T¹ÝçvŸÛ}Úm7¶ÝØ”Œ:æÌ›%Ïö.ÙÜÞ>=ëlõµ¥_lsªïV¡©Î³IéJoÕ»=†(l=÷wnÔÁýæZ›Ú§ËÕ3Èó‰Ëàúw‹½wHÕ_…¯\ºréÊ¥±—c/Ç^æh>ô ¸p5àjÊÖ¢3m­ww³oÚ¥ÈØ9WþXîÚe{çéΖé.jXÙAË¿¼¸ÇÅyéj×n‚Ý» Âna·°;iHÒ¤!Mi…æ‰øloæ¼™ófÎ誣«Ž®ú1I¸íQkiÁQŸknµ//h­ónŸ”Ô³gíÚiÕÆ]î>ÊÏ^YPÆÃ­oãòÇŠ9}î©°”EÊ"eáø–-ºRt¥èJƒ ^4x‘é냫SñSy×,Ë6"¼Làµ;ËVËœ”^»vZµï¶®íÛUx²Ø¶rËnIÍlŠìûŒÅ«f®š¹j™dþ‘ù_À²½èú¢ë‹®='÷œÜó3Mo[µø&× ¥Â»9QY÷§ÃîÕª­YžVmÕK[ªÝÊâ¹ @¡™5î7þá3"œ:ë¬srËÉ-'·p|Ëö$ÿ“üOò·ÿ±ýí4}•(¶Þ]°­ùkÉnÎÚï›…gåjwéR¥JiÕÝ:>¾Â– —v,9¬Â/þK œ1½o¥"KE–Š<_ï|½óõ8¾€e»ßê~«û­ (lú*áçRä¢}ÎÍ¡õüË¿—·ÃwÕß§íu°§7:=ñ9°§xÃ>w6õqÉ[è3ž£à™Ý3»gö«¯¼:ã õ€až€Ïgú åŒÕ¼J[¿,ØÅ±f`ÚžæšÞshë°©ÄõBö¦ô¹Ý¼vóÚÍ{•ýUöWÙ9â€%ÑEé¢tQ¦¯`ó\7¸îŠqRÇÕZœ¶q¯émhÖå7=ÔËìµÊþ…)}îåÑË£—Çë¤×I¯9à€EÙ×m_·}ÝL_ÁJ®î>â'¯c+~<|+mã^ÓÛrÛƒ²,ÎW°ôÒŠ·Lés`›À6mÞuz×é]'Ž8`!'=Nz¼µÅÖ[[˜¾‚5Ï3e²sî1ÓÎ÷pŸ™¶q¯émÇËo”|í´Ñ-Ôæ¹)}76nl\œ{œ{œ;‡°M“š&5]º&tM¨IÏV¹‘ûjîâËÖýµ¼{b‹á~þ«ë`{»5¼[ñ]Éqùç5énþÌûgÞ?ó~öa؇av)C óD ü‹„š 5jŽŸ8~âø‰¦œ8né\oJù±NÝ®úø¯Nvµwÿj¥ú>Ê//–Õ”}9r<äx5|½âŽÄ‰;ø,ðYà3Sfýîs3×T\ÿMØ]¿bÿUèk¬½ÕnO­j;ïjRø)ûrvðÙÁgSÀ×ëÝ®w»Þí깿çþžûÿ-;ÍÝ$÷ö²³ÇÏ/ë½pÕ¬c…þ«Ð×X[Ùfz®»^W=_wœ)+Ø•…W^á=ÁÀW,¦XL±˜bm¶yØæá¿<¥ »}M«®]Ä¿Š”z3vÔÅÜî·þ«Ð×XÛoо³e&¹6©U0ß¿Ü\p^ÁyçE:D:D:PÀ×KK€ÿpÿáþÃÿåOîîæÏž·Ðá™M7xZ%¾è™¹v63º–سgíÚgÂ~=WuYMÂbß’ß···ˆÙd{ð¹€až€£¢:Duˆêàëë›üiâüë>Ür'¸öhë·ÖÜB_cíÍÈvÖÕŽ×yVô†ýÎä÷nõ®Õ»V¯Ë³ gAÏ‚Ê]+w­ÜµyxÉÑÕË–J² Ï];—¹…¾ÆÚ+·ÏóžQ%¤\¿|{“ß»­/¶¾Øú‚z¾.n?¸ýà¶“““Í¿< ¾PïÍ“ÊW«ºfI¸bn¡¯±Ö}ë¤e›¢lV8Í.¾æ_Þ²94dhÈPêøºD΋œ9Ï”?õhë0?Â¥—¹Å½É·½¼¶q+d›Ù¾¼U§ä÷Nö—ýeêøº\™}eö•Ù¦¬`û§6êëþðk¹¦o´húÊÓ¤ÇDë{¬ï±¾ÔÓÃ<ŸðÀëׯäO½89åï}÷hû‡Õ|]§¼†íî +Uœ™üþ޳g?Î>ieÒʤ•T`În­ºµêÖªägtÃ"Õs;¬}ôðÀŸ_Kèk¬ÝÔv²gùaÉï﬉³&ΚHmæïrË5.×ø—;ÌÊz-ª7²ÊÎ…½„æ_Kèû‰ÖeM‡ðÀRcºÍ½<ùý]îºÜu¹+µ˜¿3ŽgÏ8þË['Ý~½äpxø¶ðÇ^~]ÑïÇíØ[º?oì:Ê«Xþä÷wSžMy6å¡6óV=¬zØ¿„£ƒfW‹ÿòföo“j=ýz¯€Å'tê×~ê*ïf¥&'¿¿{=÷zîõ¤6˜‚æ‰øw^ÝyuçUò§€³Vs-œܳQm÷¯=úý¸}°¢Ã›ÓÊÙ¶íblßÿðû‡ß?$µHj‘Ô‚jÌ͵Àk×ÿ%HÈ>rq™Ý_{èkØFª{[W¯ìØÐ^ËcôÑã–Œ[2nIRlRlR,Õ˜›sNçœÎ9ýËý¾¹{š÷‡¾FÚJ¦©;þËùg÷ÙÝgw§NótìÕ±WÇþå·È¶¡ Þ¸¬ùzC_cm_ç=³ËØ%¿ï+z¬è±¢u˜'é¾t_ºŸü,>Ø¡ñˆJÓ-é ˜¾ ŸÑüv•>Éïû楛—n^JH0Ì0ðÇ;$Ú'û%så¡–wÊûq·´{w¿=”›P´­±q4®ö»Úïj¿äW0÷œvmjyÑïÇmÕK›« ¯˜£Z±qX¼~ñúÅë©À|DŒ8q0ù¬—!e.Z^ôûqtàxõ +‹Î¯p+¯Ñw¯\¹>’šÌÇÑBG -”ü vób»\ÕŽZöu°'û;ðR2{>Ñæ¥±qØS~Où=婯Ã<I1×b®Å\³ïaßþ‡±S½³á-ç{å´ìSÞÿi7÷¬W»Â¤?¼œKž16& ß.|»ð-õü·^j/µ—Zò¿´_ݾc±÷%ËŽ~?nçßá3Ô®S ócc²nú ë6P?ÀëñþÇûïO~óè?«É¾Ò–ý~Üz¯Xµþ˜—“‹ß›æsÉîλ;ïîLýÿ­;ûïì¿c|ëŸ+$WÙ!ÅC3—ïkÙÑïÇíè³1îuÊŸj\`½±\Á…úþ[WÕ«êUÕØ<-šËv¼õ‚ç';ÿU³dƹööÈoq¾åêÚ}nÀèULJŇÅS? Ã<#c+‘T"©D3Ÿf>Í|ŒÞ]ÚÓº»w© ý´SVy½)åoôø­ÂVa+¥|y þ þ þ>®>®>®Æfè­¹{úT‹Î8Ñïÿ´OÃÕöö°s¤sœ±ñ9|4øh0µ|yq]ãºÆuuÍçšÏ5ŸÑ7e¶ž[yÿ“ŒýþOûÓšoŽ'8 ¨}¾Ån£žxöìÙ³g©%àË{Ûïm¿·ýì2Ûe¶Ëll†kv¶‚sƉ~ÿç Á6Z»ë*ÔõŸ^ऱñ¹þóõŸ¯ÿL-_^T¯¨^Q½ŒÍÍ"#lZÿ»«g-ÇŒy,®Dw/ߘº+‹²¿dl”îyÞó¼Ç»ü`˜'`dh ï.¼»ð®±SºSÇ~Í[Õ9#G¿ÿ´OzvªíóÇ\÷Å“ŒÕƒz<à­NÀ5¹ÐäB“>°ëÒámÞe2hôûq›'ܪv©ll¬ž·{Þîy;* ø’ëÖ ¬gô®ß3ö¬Ï ÑïÇwZùX°}¬‡ê;ÃØX½öxíñÚƒŠ¾¤®»ìjô±ÏK´ìå«eÌè÷îŽ=×˽½³‹GÛO<«&Ï»<ïò¼{û.ö],|!k’Ö$­ (P0  Ñߌü;ÿ^3;×ÁÞ9v+àëWúnþy玒‹ÎE碋_¿:~5e@æ‰ÔÅ‹!CŒòî=áÿƒ{NNy?nÚöèë·ÝwA‘U^ŽXÕ˜ª1Uc…D!Q º€ôv¢Û‰n'º[Á¤­K+ D¿·qÆùe-»Ýe¾í'Þ3ÚdI“%M–$ÝHº‘tƒêÒ›%GÉQÆV° 1c˯yKôûqë5pÙëСV¿Øºäó0±®¶]m»ÚRWÀ—±¯Å¾ûZ[Áú†ìZ¦ÑïÇíp݉ï*Ä ËûöìO]_ƆlX`l>Þ¨ÑvXµ>\ûú¸}Ó)ÚG26b“ÿšü×俨+zÀi%dGÈŽú1œ´iÒ¦I›^Ö}Y÷e]F&e€‘á|8ûá쇳Nœ&8M0\šGÎð¸Pâ$§¹ÆÚ:¿®ÙÆØéïúÅë¯_Lé'vhìÐØ¡ÆæàŸKÕ-Ý—¸×XûÈú€u[Fÿôg×Þ]{wQc@ú‰yó,æ™±9XÊþ·€Qß÷k=Jϵ×ÁØèÉ‹äEò"j H?/˼,󲌱9ØJš½³Äjâ^cmÿ¦!­ËD½ O4<ÑÒÏ#ŸG>Œ¾ølßF]Ü#¹Þe¬=õs‹ÓUŒÞÅÓO_ö¬jl9~ÑôEÓM©4 =Ì96çØœc†ó®¬³KiÛ& þÇvúm!èM¾=躠d¥ÑÆV°˜€˜€˜* Hc6ŒÙ0fƒá¼Ëß¼ìψjy× w!èM¾u«Ùß{Úic+X¬u¬u¬5•¤‡~~ýüúù}â¹þ5 HãF_:[É 7ù¶Y¶I!Åÿ6C»Îví:Xòaɇ%TZoj½©õ&ÃÙ×gRùQEc¸ÆeJ;ëûê-KˆcX&¤LH™ÄÛ‰·oSi@FFœzßû›<Â`Ó#‰ööö5¶pœû¦å&/{NjMoûV*/³ÿă¼> |H½iëéî§»Ÿî6¶‚]?¼«jµ&„»¦·­î×;ï(ŽäÔLS3MåìHcw/ݽt÷’±ÌÓaN`È+Â]“Ú²kÃçåoZ¶§çQÑ\rvÉÙ%g©7 m] ¾|5ØØ 6ì—°ð Å wMiÇî»Øß=ªP±’]ll GrsÛÍm7·¥Þ€´u¦þ™úgê[Á¢wZë®n™ÒÆïë~Ư‘ÝÑ<­²}â.ê•ûWî_I½pêé]}¸›Ëd„ÁÉã'2{fì™±Çp™Ф£b§9ýÜöe¶.v5[|Ly0åÁªH+Aó‚æÍ3œkãfö\ïò‚@÷sÛ‡/þ~Wã¢Ñ'X¿°~Á]t@šéîÔÝ©»“á\séÐáràkbÝÏ~ô7¾ß3Àè“ šÆ4áY,@š hÐ6 ­á\kÑhÚç bÝÏmûØw·ÌT£O2¨[7–‹w@Zøô!郗Ÿ—Ÿ×'ž^°ûZÃ&Wr]ësÛð Íå*-­`"?D~ˆ¤ô€Œ‰8m§`d1a1a1aÆ–†§u:ï³Ù”µKþ¬U«Œ£á¨]8táÐ…Ôz/‚^½2úWÛ••ok¹覬үŸw©š†£:Ý~ºýt{jH½GypÄØ æµ|ùˆÃ%tSÖÙáÿ Ã'½Üo¹ßr?jH½Ûol¿±ÝØ 6¦ÓyG÷1º)k+×h6Ôá¿En³ÚfµÍŠÚRï\Ãs Ï54œelVåéŸX§Ça¿»\ÑJYë_¸ø)‡ë†c{pÜÁqÇQ{@ÆDœ~ƒSƒÂú{ëï­¿g¸Œêîé\"‘“×Ô´oËü¦úæ0¶Ô¾.óºÌë2T  š,h² ‰áüš=nðlWBÜÔ´¯šKÓjꌭ`ï'¿Ÿü~2¤Æøã[Œoa8¿JÛ£øØ-„¸©i=/Í“Ü7zÊÀ? ¤Ôèÿ¦ÿ›þo çWÛ 4—Å„¸©i'l*WÉpl­[¶œø4ñiâS*H6nmÜÚ¸Î2qÓ/Ö•Çs-+5íÅ­3y=3[×¾®}]û&½Mz›ô– 2à/ƒ0øsÃÒL™4Ò®];»v†“ÿẎ¿Ö8ÌÉkêÛ鳫e/õîorº½ùöæÛ”!2 S¦&}DÞËò↚A„¸©o‡žéœÅùáøùÀÏ~¦”‰³³³7zïoùe¥µ!„¸©o[Öêàc8ÂG¤#Ò‰:RæÇ7ÆV°Ñ{Ͼr¯Mˆ›úÖ­ˆï¬üy GølÜÙ¸³qÔ!2/®¿¸þ⺱,ah¡~û¸Š•úÖ£dÁ¤|Ÿx’Á á†pC Œ†øË# 60,Üõgן]ÿÄßå5íܤ`)NXÓª}4¨ãº1Ÿ¸¿§Bé ¥+P‡@ÊD·)Ò¦H›"Ô!2û{ïï½ÿ+XƒœC~.rðkŒZ~s ^ÙŽï‹9ôªG¿-¿¸N4ç}ôЗ:RfãÓO7~â·È |7•‰åúUZµ:›&…*½0ç ½'ôžÐ›:2àÿa°1À°p3ÞÏx?ã½áôVòþòÁ#''¬iÛzp*™€áh? }ú$”j>×°Àaà çÔɨukª¼3Ÿø«_‡+µkëâ(YßþÄ[–sDçˆÎA5Ÿ«kŸ®}ºö1œS•NN+½}ÁmšµYV??~ÇØ/´ï"ÞE¼‹ ÏåÝÿºÿ'îŸ|BzTnpZµcœ?à¾Òè£ì³Èþ!;Õ|.÷îÜΩ§û:]óÙÅ•«´jß»wç;ÞØ –¨&ª‰*ÕdÀæƒ0øcÀ°\ñIñIñ„Bá—òtËí[Ö´m·¨«‚h8Ú»òîÊ»+/% ˜.1>1>1ÞØIIüG«ùÕ NÛvÅÌQ‡Ëf3Ü/)·”[ÊMM¦ûÐïC¿ýŒ­`Þ/Wo>>à6m[çËm¾ð‰s°£NŒ:1ŠšL÷¾éû¦ï›Î&›Ÿí´ÜÆõ¿\©,pÚ¶>ºn‡WŽùåv—Û]nGM¦‹Þ½%z‹álªèé0Ù΋kVéÑv±r‹-a8æwvÞÙyg'5 dÀæ‰0˜ë•ï+ßW¾†¸þ‰b/šs’ší“®ÚùtýÄC3µÉÔ†Õø ú?êÿ¨¿álê$5Ž-<ñ¿ J-5¾Ýgï­êí ÷k`ÖYf¥&ÓÝúþÖ÷·¾7œME6ZÚq?amz´•šOÙ³u­á˜O:qèÄ¡Ô$`ºó?žÿñüŸø-rO`Ï"˾޷íšsܳØÖ9®ªá˜/n±¸ÅâÔ$`º°áaÃÆâáϵ}7”yÏ5«ôh…rM¦Vv3óÍ«7¯Þ¼šš2`ó—1Ã`"X¬c3Í<6ÓpÒ®m\û~9àôiû÷¬X»¸Ñàèu‰:*0Å¡¹‡æšk8ö®˜Íý;àôh~9¶×o«á~Y¹Y¹Y¹%E'E'ES™€)¶&lMØš`8›ÊwQeÙLÂÚôh½¿[¡9e8楣KG—fí>ÃÒSKO-ýÄlêÝqg ÛàôhGÄœ*V±­á˜×¶¯m_ÛžšL7åû)ßOùÄá]³n³Åû%׬ң}>¶ó¤šv†cÞnG»ívP“@ÆAüuÉ8a00,ÖüóOÌ?ñ‰IÍj}À»ùœ,>Öqc7“gyÍ.•ë×¹%w;z”tøÞö…í"«›¹µ’=òEæýÎW)²³ÀûYy«·+­½(ØY©iÖîé|Íí~áÆ#ÿrÄË/GP™€)ÆvÛylçOóí†êUûµ­Ó`SÝ¢šcMkÁv‘MLn­BDé튎tÿ-°Ä…S5½Ì9n°¡ÚN‡É†{÷&þMü›x*0EŸÖ}Z÷im8ª´YÐY—Éì¢ÓÛ«G(½½WÍ l¬¸¤º[ž±ùÌž{¼õ›˜¼ Š®(9§ˆuÃLíÚUž>cÜ.³°óªÅJ•ªk8òq×ã®Ç]§2S4nÜ<Øphv2GEgó MǺ\鮵È3­Žs·ÒÇjVÌ·ÖnQÁ×VòlÌÛ,wMÇ­®Ùm–øÜîžÕqëú¡>凙s¬o­sÙþœû·Oü±c¢c¢#• ˜Â{÷ ïA†óèýön;}W™Ûµ£Ð¿›¶ð¸Ýù†Ûý‡õ×¾òn°šûO·Òjç½Ù⯒¿:~»F£~îz„ø]1Óë`Î=óÕ¶1$…%…%…Q™@F@üõ²ì0˜«Ub«ÄV‰†“3¦úo?ÔZi§‰Êý€zÕ ºÚü’§F®Ït÷pûÕï›çéïšYµ«•}eØçóÎ?8ÿ€ÊLáóÔç©ÏSÃy»ôÈqßóæÛ[ÏýkòkW±}ŽIÖ16mÙâlžð¬z¿/+}Ú°ç·^Ýzuë• ˜¢„{ ÷îŸxûï¡Õß3£G@W ^²VQ`XÅï« 4ýÌUë»sÊIó €‹øÅ­ëO†}~ÜòqËÇ-©L eïþ‰K}.ýVÉтҠ~Ç„ KÚyµL_»Zž_¢¡9Àžßü:Ù!İçQ…¢ E¢2”­`öXÿfµÛ|®é£Ü?v¸?tÎjú Ö|·Kb¡ð7ë›Yë¥y^ktĹWÁª†=ç÷Îï• d̘økdya00,–£­£­£í'þ‚øB¸Ú™ÿÛSCýi«ËÐ|“lNê{U|½Ý0›’s×èåÚíðæ¦»<íÎïoÕÀk´óËKlcb«Ø»ÌÓßü¿\5Çßcµ›gó|l8òÁÛƒ·o§2Ô\|Lz~¸¶¯yÀÿÜã×õ`‰ñ‡/Ì^IÙý`殊kúÛµî]ljîorÈUûVc‡ã~WÌ->T`Á½JŸ¸ï'4(4(4ˆÊR¶‚Ù(ô¶ès‹KÎUT7ó?]Ai^­X™Rþú¾}|ï3¸ä¢çRÊÿܰç{5³^î‹5·Øãòì•ÁW©7 m5«5Ù¡ø sˆHâJ´²Þ«ïUû‹;—´3=Ê5ÿ;€Ý¤¬-õ¤­]El«XÕ®µ\ª«ãz}¯BÿnÚÂãöç^1Ó«´®`?»0s»v²m‹™U.Po€ä…ìÙ²ƒH=V”û±¨•yÀ¯2u\s³”ç¯ÊËVgõÛVvÑh[Ï.Å[Ž/õ“cÿBm¶æbl¿Ìm_ÞœümE­÷Ô¶FUìæ]âµyÀwW¿oÊÏÞtÜ]¿ÚªO­cæ¿tWÔJ½iË%_û¸?.˜CDê½wÕÓc ?ïÌã{ǘ[”›²Ö³ûÜö;Po@Új1}žó†ÿ65ôÌñŠ7>îÕÀ‡¯–Ýnú:¼^6¡äî·`nð@åà’²«©7 më?½¹9\)rß[ÐÚnNê÷¨¨f{ØZ0·«aÕ[fªB½’·=n{Üv` ]˜ÛÀ§œZ\ªúm“Ÿœïœ¨бžWˆpèdW´Ó3·…gþWî2s¾8¶ç‘u¾ÇLùÙw“—òmû©uŒ;€Kf>w{œž=68øã¾y…¯Èuø¡eÀÜ ¤s¸øŸäå|Ü+}$lúúLØ=ØíöÇ[à` #0Ÿ;€í¦ä©œ;.õ{ôñv¸ðuÉ@wëŸÎ_é÷e8ÁÌíÀ¶‹¬næÖô}+›£@œm}ý;Q‚·ør~£LÛAÕzèßw¢ÿ©kþm¤ÿ ]Ìí”7ùww~ÕùUçWT&_|¥l3çw›~pdôÞ1Õkê*Ϲ<ßæzòÿ똹¿xàÕW^¥2ùâ+e+˜ù¼ØkÅòQ‡K}Ü7ÏÖs+ïb°±wž8zâè‰T&_|¥l3‡w 9ìþ?/ÔúÐÚ²çLßBÇ++lJ&šslìÀÓ£§GO¦2ùâ+e+˜ù¼XÕKß«=—î¨xI+e­¹] 3öàEN‹œ9Q™|ñ•1WàEYe]”•‘±¼¯ýAûƒöõü¶ç·=¿5=úÕz0ðåï2wY—o¡Í%s85lX·øH‡­ÿÄ¢7Üî>œèÐ#ÄïJò±îÕ¶m~ó>lþpäõvÕ½?ñ¿½Þ‹z/êMe)[Ájµö(W`ã×þàCf¯¤üÿ¾¸Øýÿ%ó €/<ßéõ‰•v³ëf×Í®T&²¬àï£ ²šOPúqß*|7ÊkeqS~ªÒÚ©·ÝréÝ!~ˆ“KX§BC—V˵&gxNóÙ¯ Æ­ùÁpüÔ=P÷@]*HÙ Vm_§á…–›CDúq¯Ú/]R²d5Ó¶Ñ o‹^3ç¸Óæ•cJÕ2ÿ0!L¨L e+ؤ5^•K^5‡+E7KD*ñÏ™I߯…+53Ï´¥¬ÝZ»Þõ … ÇÿüôóÓÏO§2Œ¹ëÃBFÆ2èƒÛI›&mš´ÉôÐWÿý_>ôý0,–£­£­ã'!•x¡G\íÌÿí©¡}ë•Vçõý9Þ®ù€*%Lù©C_øÿàÄœàcµ›gó|lØÏàíÁÛƒ·S™@ÊNÿ™ïïÂ×ö5·¸ó&W 6åg[7³£‡þ§Z ®7Âq½¹À‡ ,¸W)ø'îA¡A¡AT&²̦@¡·Eç˜gìtºî7-+™òS…4è×vÍ?œWò^ù-æv°kT¿êS'ŽÄÚˆµk©L e+X‰Ðªnv Í-.9½Z=»{&Ý=ì{î™ûB‡K°ihÎð/'Æ.k8þ7œo8ßp¦2”­`mN–öur5‡+EÃUnä|Kß«ãÊe*ú³)?Û³Ûßc^õ§äÏQ²G¾È¼ßͨU­IiGs»6éŒWÝ’÷ Çÿa¶‡Ùf£2Œ¹í¾ÞÐ÷cÀ°X­[%¶J4œ„1Õû¡ÖÊÿöÔ°týüóòÔ÷g›Oý*Z'ÿý÷B:Ô¨a¯°ùÀkfÕ®VöÕ'þòñÁùçP™€)|žú<õyj8b—9î{ÞÜ`«»V~¹ö åMªìfì§¶ùLó«ÐúãŸ:¼yeqO;ó‰~õí¬z¿/+}Úpäo½ºõêÖ+*0E ÷î%Ü ç‘÷¡ÕßÛoA©Gï÷“ýÓ­cV­ò|[þÂÈ-+z}´²Ûôö;m¬rämiç¢ÿ¡"'ÕëØøŸ»Í&.zà·®?Žüã–[>nIe)»x÷O\êsé·JŽÿmDÚ¶í‚ê.£?Ñ7#ß?vùÅÚîkmïUÂÉ×ôŸú¯ZÏo~ìbØÏ¨BQ…¢ Q™@ÊV°{¬³ÚmWŠÎ¼þõ^Õõÿÿûcn‡\{÷ÏhÔÏýaò?5¼™Ç·%þçWôÛ1·ë`Ž8÷*XÕpüßù½ó{çGes&þYFèû1`X¬ù'柘ÂpB^žÕú€w»ÿöÔ°ûœ²Š\øç¾“¨¼[ç_w°NŸrïœo?£úÎǽ:eò)}xsÓ]žvcb«Ø»Ì³›’§rî8£wšÙ‰oçkn÷ âª/G¼ñr• ˜blç±Çv6œGw>ÛUÿÛÜàâëÙ”ÔÿóH÷ßKÐÕXx¬Òû½Gg»¸çèo׺w±©ýnÞÁÕÌíÞ_}Û`CµŸ¸îMü›ø7ñT&`Š>­û´îÓÚpUi³ ³.“9¥Þ{W==¶Ð°‡ÅV4Mì¾­\Å¡“«8dÜ©u?–ÜÙ%nD=ë*åÿù•>O@þMÌóÍÁyÕb¥JÕ5ܯ¸ëq×ã®S™€)š7nþ‰gŒhv2GEçÿ8(Íy)G¥Oü>Xæy]ùw6_3u´sîN›²»æm‘gZçnn…}gæÏûÏ£øûº¶¾jΰu.ÛŸsÿö‰'x9&:&:R™€)¼yòd8Þoï¶Ów•9\/úÄ;/תhÍM£êž+?Vîoñ?ä>ü×¹%wÿÿ³£ô:þèz¹pa³»æÜ3_m£×ë’’¨L # þzY^èû1`X¬c3Í<6Ópr®m\û~¹æÿí â3ïÎÙ}Në_cú²r¥w›Ÿ¼g9kÛÇú‰¿/âð‡YœøöïY±vqcýOÔ%êuT&`ŠCsÍ=4×pí]1;›ûwæ‡þ½¢—Çíü½ì\¬º'¿Ž•q(ÑÆÖúîáààê÷Í-NøåØ^¿­†}¶r³r³rKŠNŠNЦ2SlMØš°5Áp6•ï8¢Ê²™æö hýÜM9³Zb—#‡²Ã«Ï»ln÷þz·B;rʰϥ£KG—fí>ÃÒSKO-ýÄlêÝqg ÛsJ‡Ù„u©`U|le/Û馬]EN—Ÿšw½>6ÏxDÌ©bÛö¼¶}mûÚöÔ$`º)ßOù~Ê÷†³éšu›-Þ/Í᪑þ‘Îí]\‹9›~5¬qçi½Úm™ïqñ±ÈÃFK;î7·»fÿ9³Û¥Çðù»”]Zå{«·ùʸdÕÛvD¾¿ò w•*µ,2пXû‹ž÷ç½8èhný×·•šOÙ³u­á˜O:qèÄ¡Ô$`ºó?žÿñüŸø-rO`Ï"ËÌ'4Õ÷*à‡ñUŠçpYïõ·Ý¢¼áÎX5²Îoë»g‘¶åä¼£ë÷øãq‘ñ£†ž9^ñ†9?ºg±­s\UÃ.n±¸ÅâÔ$`º°áaÃÆΦµ}7”yonOÓßéÛjp©®Žë‹í³+dclU2÷¯e“ì›ÚŽm¾Û%±P¸þ{>¾†fn{!”k2µ²›á˜o^½yõæÕÔ$q›¿Œú~ŒH–+>)>)¾€P@( |â=Yºåö­n>1ðçþWó<ñÝþ¡þ­ ¢áhïÊ»+﮼”$`ºÄøÄøÄxc'ñ­æWã¿K…¸Ÿûïͧ]1sÔá²Ù G[Ê-å–rS“€é>ôûÐïC?c+˜÷ËÕ›O7Ï5ùûzÍí®ß[çËm¾ð‰s°£NŒ:1ŠšL÷¾éû¦ï›Î&›Ÿí´ÜÆõ¿\©¬¹=<ÙX k÷šçß}tÝ;®úÄË›Ú]nw¹5 ˜.zKô–èO<פ¢§Ãd;/s»‚døPè¯åÚ×Çm+·ØÂŸxyÓÎ;;ïì¤&ŒƒØ!=*·ÎÜÔ¯·sàü÷•ÆV°Ù?dÿj>—û÷î çÔÓ}®ùìâÊUZµïÝ»óoô%hj¢š¨R@ÆAl>}?F wýÙõgןNéF£›,Å kZµu\W#æož«PºBé Ô!2O#žF<5œY][d.R€à6­Ú[c÷t¨öÒpœ}»ûv÷íN)s¸÷áÞ‡{ά¢•/ìôà6­Z÷ÄÉ«·ø|âEÚiS„:Rfïý½÷bksÈÏEܦUۣߖ_\'Žó€¾úèK)³ñ鯧?ñ[䊾›ÊÄrý*­ZM“B•^Žó„ÞzOèM ð‹Ð×`Xº‘I#“FÚµ³kg×Îp’?\×ñׇ9mM};}vµì¥Þ}â­'·7ßÞ|›2R&ajÂÔ„©ÆNS^–7Ô "¾M};ôLç,· GøÀÏ~>ð3u¤Lœ}œ}œ½±Ì«ü²ÒÚâÛÔ·Ž-ku øD|D:"‘¨C eÞx¼ñxãal½÷ì+÷ÚÄ·©oÝŠøÎÊŸ×p„ÏÆ;G)óâú‹ë/®[Á†öê·«X©o=JLÊçh8Â7„ :2à/Ð×ÀÈÖß[oý=à ?ª»§s‰DN[SÓ¾-ó›ê›ÃØ’úºÌë2¯ËP@j,h² É‚&†ókö¸Á³]mˆoSÓ¾j.M«©3¶‚½Ÿü~òûÉT ã[Œo1¾Å'žòmâc·ߦ¦õ¼4O>pßè£S~øa ¤Fÿ7ýßôc8¿Ún\ ¹,&¾MMûû8aS¹J†ck=Øz°õàħ‰OŸR@j´qkãÖÆÍp–‰›~±®<žkY©i/®hÉëÏtíëÚ×µoÒÛ¤·Io©@ £!þ2}?02„˜°˜°˜0cKÀÓ¿:÷ÙÆ)lÊÚ%ÖªUæó8táÐ…CR{@ê½zô"ÈØ ]Yù¶– QnÊÚ)ýúy—ªi8ªÓí§ÛO·§ö€Ô{päÁ‘GŒÞ¼|ùˆÃ%ˆrSÖÙáÿ ÃiÃQ]î·Üo¹µ¤Þí7¶ßØnlÓé¼£û¢Ü”µ•k4êð‰ß"·Ym³ÚfEí©w®á¹†çβ‚ 6«òôO¬Óã°ß]®h¥¬õ/\ü”Ã'î±>8îฃã¨= c"N?„¾©AŒ dÆž{fìùĆšTxTì4§°ŸÛ¾ÌÖÅ®æ@c‹ìƒ)¦<˜BÕi%h^м y†smÜÌžë]^å~nûðÅßïj\4¶‚½°~aýšªÒJw§îNÝ çšK‡—_å~nëñÍŸï÷ 0¶‚Å4iÓ”ªÒJ@Û€¶m çZ‹FÓv8å~nÛoľ»eŒ¾â$¶nlÝØºT>$}Húàåçåçåg8×v_kؤâJ®k}n^¡¹\¥¥Ñç¯D~ˆüIépÚ"ôM+ÀÈ@¢}£}£}-ç¾i¹ÉËžÓYÓÛ¾•ÊËÅ>ñn¿À‡Ro@Úzºûéî§»­`×ïªZ­ ±®ém«ûõÎ;І#95ÓÔLS9;ÒØÝKw/ݽdlót˜òŠXפ¶ìšÀðyù›–íéyÔp$—œ]rvÉYê H[Wƒ¯_ 6¶‚ û%,¼Bqb]SÚ±û.öw*T¬d[ÑÜÜvsÛÍm©7 m©¦þ™úFŸ&õ¸ëÔZ¿puË”6~_÷3~ìŽæil•Íp$÷¯Ü¿rÿJê ÈÈ€SÐ7=p‰Κ]kv­Ùe¸XäÓåÙbU#®I÷¾ œÚ&ß©Õô±gU£wÎ5}Ñô÷ébα9Çæ3œwe]JÛ6Ið?¶Óo ánòíA×%+6zç\@L@L•¤‡1Æl³ÁpÞåo^v€gDµ¼kŠ„»ñ&ߺÕìï=í´Ñ;ç¬c­cyz.úùõóë÷‰»è*8ø×( }él%w"ÞäÛfÙ&…ÿÛp í:Ûu¶ëüaɇ%–Pi@zh½©õ¦ÖŸ¸˜ÞgRùQEc¸ÆeJ;ëûê-KˆcX&¤LH™ÄÛ‰·oSi@FFœz!;Bv„ì ôM[ÀÈp>œýpöÃY§ Nœ&.#gx\(q’S[cí‹ _×lclñ]¿xýâõ‹©1 ýÄ;ÔØüsÉ º¥ûñkY°®qËØèíݵw×Þ]Ô~bžÅ<‹yfl–²ÿ-`ÔwD¼Fû\z樽ÆFO^$/’Qc@úyYæe™—eŒÍÁVÒì%Vñkû7 i]&ÂØèhx¢á‰†Ô~ù<òyäclîïÛ¨‹{$×»Œµ§~nqºJ‚±Ñ»xúâé‹§©1À©—@è›¶€‘A] ¹r1Äh pÂÿ÷œœæ~Ü&´íÑ×o»ï‚"« ¼0±ª1UcªÆ$ ‰B¢@uéíD·ÝNt3¶‚I[—Vˆ{?nㆅ óËZv»Ë|Û~†#ÖdI“%M–$ÝHº‘tƒêÒ›%GÉQÆV° 1c˯yKÜûqë5pÙëСV¿Øºäó0±®¶]m»ÚRWÀ—±¯Å¾ûZ[Áú†ìZ¦qïÇíp݉ï*ıÀþýûSWÀ—±aÁ†›7j´V­×¾>nŸÆtŠö‘ŒØä¿&ÿ5ù/ê €pZùø>`BßÔ#F†¶ðî» ï;™;uì×¼U9åMzÒ³SmŸ?æºß(ždl¬ôxÐãA* ø’&š\hr!c³òÒámÞeˆ~“ò„[ÕÎÝõB@×"•ÕóvÏÛ=oGE_R`½ÀzõŒÍJ3ö¬'úõ>´:ó±`ûXÕw†±±zíñÚãµ|I]v=Øõ ÑPs‰–½|5¢ßѱçz¹·wvñèb«ŽRžwyÞåy÷.ö]ì»X* øBÖ$­IZP0 `@A£¿ùwþ½fv®ƒ½sìVÀׯôÝü'òÎ3%‹ÎE¿:~uüjÊ €0Ì02¶I%’J4óiæÓÌèÃp.íiÝÝ»TF>ñ²ÊëM)cã#l¶ [)%àËKðOðOð÷qõqõq56CoÍÝÓ§Zt~Ÿ†ªí3ìaçHç8cãs4øhðÑ`j øòâºÆuëêšÏ5Ÿk>c3Ô³õÜÊûŸdÐø§5ßOpPû|‹ÝÆÆçìÙ³gÏž¥–€/ïm¿·ýÞö³Ël—Ù.³±:¬yØÙ Î3úks¡µ»®B]ÿéNŸë?_ÿùúÏÔðåEõŠêÕËØÜ,2¶¡õïѹ»zÖr̘WÀâJt÷ò©»²X!ûKÆFéžç=Ï{žÔ€Ã<I1×b®Å\³ïaßþ‡ÑKlá-ç{åÌ@'¾›{Ö«]aÒ^Î%Ï“…o¾]ø–úþ[/µ—ÚK-W²®nß±ØûRƉ~çßá3Ô®S ócc²nú ë6P?ÀëñþÇûïO~óè?«É¾Òè®ß«Öórrñ{Ó|®±1ÙÝywçÝ©à¿ugÿýwŒ¯`ýs…ä*;¤xhæò}3Ð]¿!gcÜë”?Õ0¸Àz£@ì"¸.Ôðߺª^U¯ªÆæiÑ\¶ã­,>,žú`ˆæ‰øÇc‡Ç’¿)û%så¡þ׎K»w÷ËÑóA¹ EÛ‡áAÆ%%&%&%R9€9¸ãyÇóŽgò+X˜nÕÏÙ–ý¾[yØË·SëÄú»ô Ó&L›@Íæãj¿«ý®öK~sÏ9a׆¡–ýV}±´¹Ú¹ÀðŠ9ª‡Åë¯_¼žšÌGÄÁˆƒ“_Áúw Ræ¢eG¿AŽW¯°²èü ·ò>46ë#×G®¤fóq´ÐÑBG %¿‚ݼØ.Wµ£–}ìÉþN#|†”ÌžO´yilö”ßS~Oyj€1À0OÀÀÿ¸óêΫ;¯’?ý}°zœká¤àžj»[Ò)ïƒÞÔ˜V6Ⱦ°mcûþû‡ß?üþ!©ER‹¤T `n®^ ¼˜ü ¶<ûÈÅev[^ô©îm]½²cC{-Ï!cû>nɸ%ã–$Å&Å&ñ¶9Àìœs:çtÎ)ùÌ5wïQã,/ú­ôašº£á¿œvŸÝ}vwê0OÇ^{uì_~‹lºàËË‹~û:ï™]Æ.ù}_ÑcE=¨À9¾öèwSÛÉžå‡%¿¿³&Κ8k"µ˜¿Ë5.׸\#ù]°¬×¢z#«ì\ØKhþG¿.k:„–Ómæèåÿò‡;®Ë]—»R€ù;ãxÆñŒcò3ÚÓí×K‡‡o \áåWü–ß[º?oì:Ê«Xþä÷wSžMy6å¡6óV=¬zXõägô ÙÅ⿼™ýÛ¤ZO¿Þ+`ñ ÝŸúµŸºÊ»Y©ÉÉïï^Ͻž{y×/“Ã<FEuˆêÕÁ'Ö'Ö'6ù“Âù×}&¸åNpíÑÖoí×rÊ{3²uµãuž½a¿3ù½[½kõ®Õ»¨àëò,èYг r×Ê]+w-ù9¾²äèêeK%Y…ç®ëk }¯tÜ>Ï{F•rýòíM~ï¶¾Øúbë êøº<¸ýàöƒÛN6N6N6ÿrOp¡Þ›'•¯VuÍ’påk‰~Ý·NZ¶)Êf…Óìâk’ß»¡!CC†RÀ×%r^ä¼Èy¹LÐÖa~„K¯¯+úíåµ}ˆ[!ÛÌöå­:%¿w²¿ì/ûSÀ×åÊì+³¯Ì6eÛ?µQ_÷‡_Wô{¤EÓWžÕMÙ»c}õ=Ö—z`:`˜'`à_$ÔL¨™PsüÄñÇO4å4qKçzSÊ¿ˆuêvÕ÷€¹ìÞý«ý•ê7ú\(¿¼XVSöåxÈñã!ÔðõŠ;w$îHà³ÀgÏL™õ»ÏÍ\SqEü7awýŠ™[è{«ÝžZÕvÞÕ$¤ð!SöåìೃϦ€¯×»]ïv½ÛÕsÏý=÷ÿË„ÌÝ$÷ö²³ÇÏ/ë½pÕ¬c…Ì-ô­l3=׎ݯ«ž¯;ΔìÊÂ+ ¯,¤€¯WL±˜b1ÅÚ“”EÊ"eáø–-ºRt¥èJƒ ^4x‘é냫SñSy×,Ë6"¼Làµ;ËVËœ¶Aï»-‡kûvž,¶­Ü²[R3›"û>cñª™«f®šGæ™d>ǰl/º¾èú¢kÏÉ='÷œlú"a[µø&× ¥Â»9QY÷§ÃîiôV}±´¥Ú­ìñ!ž šYã~ãLï[Á:ë¬srËÉ-'·p|Ëö$ÿ“üOò·ÿ±ýí4}•(¶Þ]°­ùkÉnÎÚï›…gåj¥mÐtëøø [:4\򱊡 ¿ø/)pÆô¾•Š,Y*ò|½óõÎ×ãø–í~«û­î· (P8 °é«„ŸK‘‹ö97‡Öó/ü^ÞßUŸ¶×ÁžÞèôÄçÀžâ ûTÜÙÔÇ%o¡ê¦÷Í3»gvÏìW^xu Ç@êÃ<©r»Ïí>·û´Ûnl»±¹RÄ1gÞ,y¶wÉæö¦ðéYg«¯-ýb›S}· MužMJWz«Þ Øè1Dé`ëḿs£î7×ÚÔ>]®î˜AžO\׿[ì½C›\©°réÊ¥+—Æ^޽{™£ d4×{]ïu½WÀÕ€«WS¶†áhk½»›}Ó.EÆÎ¹òÇr×.Û;Ow®°L÷pQÃÊZþåÅ=&(ÎKW{ä Ù>·¯{ðšîc–}8rÝo'Kœ­}ºÊûþ©YÁ6ìÛ°oþøˆøˆøŽ&Ñ\Êv)Û¥lu®×¹^çzÊÖëë…Ê™ãT©vÁæG\úuÌ2¤ŒÛ‚µf8•ûcXóEçÊϱü—ò†wX:¸Lüàms"JmïžoLã¢Ë›œë² ß)·#•·¥fÛ!ívH =z$ôàhM„o„o„¯×¯)^SR¶†Ì^"Èú W¦¶jÁàÆ‘£ÿ(Ö¼m½]†v)¶Æ®”úÛÖõ£K/éÚt­séâí—,q.Y­é‰/‹ÏõYÑm¦ãüâ•DÛßS³‚…ôéÒ#qeâÊÄ•M £ /^0¼`Ùeo”½‘²5¤œÎ~©í¶þ%+ûsÑÙš+Ýt»m~_qøä×Ês5) Öc³ìýËÖÊ7÷Žoø¢bâ²`ß\eVüñ³ûÖâ·«ø Ï·,eŸk7Án‚Ýa·°[Ø4$iHÒŽ&€´B óD ¤™ÈÈÈÈÈÈßwþÝ9—Y²r´r´rܾ)|Sø;áðNà¨ÐÓ‡Á½õÔky®`öí;ÚwÜÙkg¯½bÏÄž‰=ÃQ wi㥗6v êÔ)Èúùèç£u¢NÔ‰C. ¹0äB ×®%\S¿‚ÊS(O¡<ý{öïÙ¿gðõàëÁ×û?öìϘð1`ÀL]*~©ø¥â‡³Îr8Ë‘‘GF¿ ~AüF€ù‹¸q#âFèéÐÓ¡§ì=²÷ÈÞÄâ‰Å‹32ÌßÉî'»Ÿìº$tIè’#Ž<:ò(imÒÚ¤µŒ ów<çñœÇs†víÚ9Ì!Ì!Ì1ðµ8jsÔæ¨MhéÐÒ¡¥ÃÂÂRƒ,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A ‚,0X`°À`!€ÀB€…  A â‹À¡™C3‡fΆ>'%€¯0Xˆ ëÿ}è7¡ß„~š)4Sh&-QKÔµ-AKÐâµx-^‹Óâ´8í½ö^{¯½ÓÞiï´7Úí£Åh1Z´­EkQZ”¥½Ò^i¯´Ú í…ö\{®=מjOµ§Úí‰öD{¤=Òiµ‡ÚCí¾v_»¯ÝÓîi÷´;ÚíŽv[»­ÝÖni·´[ÚMí¦vS»®]×®k×´kÚ5íªvU»ª]Ö.k—µKÚ%í’vA» ]ÐÎkçµóÚYí¬vV‹Ð"´í´vZ;­ÒNi§´Ú í„®…káÚ1í˜vL;ªÕŽjaZ˜¦Ök‡µP-T ÕTMÕTMÑMÑ$MÒ$MÔDMÔtšNÓi‡´CÚ!í€v@; ý­ý­ý­…h!Zˆ¬kÁÚ^m¯¶WÛ£íÑöh»µÝÚnm§¶SÛ©íÐvh;´mÚ6m›¶UÛªmÕ6k›µÍÚ&m“¶IÛ mÐ6hëµõÚzm­¶V[«ý¥ý¥ý¥­ÖVk«µUÚ*m•¶R[©­Ô–k˵åÚ2m™¶L[¢-Ñ–h‹µÅÚbm¡¶P[¨-Ðh ´yÚZ ­†VC«¦UÓªiÞš·æ­UÕªjUµ*Z­Šæ¡yhZe­²VYs×Ü5w­¢VQ«¨•×ÊkåµrZ9­œVF+£•ÑÜ47ÍM+­•ÖJk¥´RZ)ÍEsÑ\´Z ­„æ¬9kÎZ1­˜VL+ªÕŠj…µÂZaÍIsÒœ´BZ!­VP+¨Ôì5{Í^+ Ð hù´|Z>ÍN³Óì´¼Z^-¯f£Ùh6Z-–G³Ò¬4+-—–KË¥åÔrj9µìZv-»ö³ö³ö³ö“ö“ö“öƒöƒöƒ–M˦eÓ²jYµ¬Z-‹–EˬeÖ2kßjßjßj™´LZ&5IMR“Ô5AMP?¨Ôjœ§Æ©±j¬«¾Sß©ïÔ·ê[õ­£Æ¨1êkõµúZR£Ô(õ•úJ}¥¾T_ª/Õçêsõ¹úL}¦>SŸ¨OÔ'êcõ±úX}¨>TªÔêõžzO½§ÞUïªwÕÛêmõ¶©Fª‘êMõ¦zS½¡ÞPo¨×Ôkê5õªzU½ª^V/«—ÕKê%õ’zA½ ^PÏ«çÕóê9õœzNP#ÔõŒzF=£žRO©§Ô“êIõ¤®†«áêqõ¸z\=ªUªaj˜¦V«‡ÕP5T UõUQUR%UREUTEU§êTzH=¤R¨Ôêßêßêßjˆ¢†¨Áj°¬îU÷ª{Õ=êuº[Ý­îVwª;Õêu‡ºCݦnS·©[Õ­êVu³ºYݬnR7©›Ô êuƒº^]¯®WתkÕµê_ê_ê_êjuµºZ]¥®RW©+Ôê u¹º\]®.U—ªKÕ%êu‰ºH]¤.Rª Õ…ê|u¾:_§ÎSç©sÕ¹ê\u¶:[­ÎRg©³Ô?Õ?Õ?Õê u†:M¦NS§ªSÕ©êdu²:Y¤NR'©Ô êu¼:^¯ŽUǪcÕ1êuŒ:J¥ŽRGª#Õ‘êpu¸:\ RƒÔ u¨:TªQ‡¨CÔ?Ô?Ô?ÔÁê`u°:H¤RªÕjµ¿Ú_í§öSû©}Õ¾j_µ·Ú[í­öR{©½Ôjµ‡Ú]í®vWSSS»ª]Õ®jgµ³ÚYí¤vR;©Ôjµ½Ú^m¯¶UÛªmÕ6jµÚJm¥¶R[ª-Õ–j µ…ÚBm®6W›«MÕ¦jS5@ PÔ&jµ‰ÚXm¬6VýUÕ_m¨6TªõÕúj}µžZO­§ÖQë¨uÔÚjmµ¶ê§ú©~j-µ–ZK­©ÖTkª5Ôj µºZ]­®z«Þª·ê¥z©^jµŠZEõT=UOµ²ZY­¬VR+©•ÔŠjEµ¢ZA­ VPË©åÔrjYµ¬ZVuSÝT7ÕUuU]ÕRj)µ”ZR-©–TK¨%Ôª³ê¬:«ÅÔbj1µ¨ZT-ªV «…U'ÕIuR ©…ÔBjAµ ZPµWíU{µ€Z@- æSó©ùT;ÕNµSmU[ÕVµQmTÕZµV­U+ÕJµRs«¹ÕÜjN5§šSÍ¡æPs¨?«?«?«?©?©?©?¨?¨?¨ÙÔlj65«šUͪfQ³¨YÔÌjf5³ú­ú­ú­šIͤfR’”$%IIP”åƒòAù Ä)qJœ«Ä*±Ê;åòNy«¼UÞ*1JŒ£¼V^+¯•(%J‰R^)¯”WÊ å…òBy®eŸ²OÙ«ìUö*»•ÝÊne—²KÙ¥ìPv(;”íÊve»²UÙªlU¶([”-Ê&e“²IÙ¨lT6*ë•õÊze²NY§ü¥ü¥ü¥¬QÖ(k”ÕÊjeµ²RY©¬TV(+”Ê2e™²LYª,U–*‹•ÅÊbe‘²HY¤,P( ”ùÊ|e¾2W™«ÌUæ(s”9Ê,e–2K™©ÌTf*3”Ê eº2]™®LU¦*S•)ÊeŠ2I™¤LR&*•‰Êxe¼2^§ŒSÆ)c”1Êe´2Z­ŒTF*#•Êe„¤)AÊ0e˜2L¢ Q†(J ¨ V+ƒ•ߕߕߕÊ@e 2@  Pú)ý”~J_¥¯ÒWé­ôVz+½”^J/¥‡ÒCé¡tWº+ݕߔߔߔ®JW¥«ÒYé¬tV:)”NJ¥ƒÒAi¯´WÚ+m•¶J[¥ÒFi£´RZ)­”–JK¥¥ÒBi¡´Pš+Í•æJS¥©ÒT P”¥‰ÒDi¢4V+Å_ñW* •†J}¥¾R_©§ÔSê)u”:J¥¶R[©­ø*¾Š¯RK©¥ÔR|ÅG©¡ÔPj(Õ•êJuÅ[ñV¼/ÅKñRª(U”*Чâ©x*••ÊJe¥’RI©¤TT**• J¥‚RN)§”SÊ*e•²Š›â¦¸)®Š«âª”RJ)¥”’JI¥¤RB)¡”PœgÅY)¦SŠ)E•¢JQ¥°RX)¬8)NŠ“RH)¤R *•‚нb¯Ø+”J%Ÿ’OɧØ)vŠ’WÉ«äUlÅFÉ£äQò(VŠ•b¥äRr)¹”œJN%§’]É®dW~V~V~V~T~T~T~P~P~P¾W¾W¾W²*Y•¬ÊwÊwÊwJf%³’YùFùFùFɤdR2ɉr¢œ('È r‚/ÇËñrœ'ÇÉïå÷ò{ùüN~'¿‘ßÈoä9FŽ‘£åh9ZŽ’£ä(ù¥üR~)¿_È/ägò3ù™üT~*?•ËåÇò#ù‘üH~ ?È÷åûò}ù®|W¾+ß‘ïÈwäH9RŽ”oÉ·ä[ò ù†|C¾._—¯ËWå«òUùŠ|E¾"_’/É—ä‹òEù¢|^>/Ÿ—ÏÉçäsr„!GÈgä3òù”|J>%Ÿ”OÊ'åp9\—ËÇåãòQù¨|T“Ãä0ù°|X>,‡Ê¡r¨¬Êª¬êY’%Y’EY”EY'ëd|H>$’Èäòßòßòßrˆ"‡ÈÁr°,ï•÷Ê{å=òy¼KÞ%ï’wÊ;åòvy»¼]Þ&o“·É[ä-òy³¼YÞ,o”7Êå òyƒ¼N^'¯“×Êkåµòy¼F^-¯–WË+å•òJy…¼B^!/“—ÉËä¥òRy©¼X^,/–É‹äEòy¼@ž/Ï—çËså¹ò\yŽiŸ´WÚ+í•vK»¥ÝÒ.i—´KÚ!ívHÛ¥íÒvi«´UÚ*m‘¶H[¤MÒ&i“´QÚ(m”ÖKë¥õÒ:i´NúKúKúKZ#­‘ÖH«¤UÒ*i¥´RZ)-—–KË¥eÒ2i™´DZ"-‘K‹¥ÅÒBi¡´PZ -Hó¤yÒR©—ÔKê%õ”zJ=¥îRw©»ÔMê&u“ºJ]¥®R©‹ÔEê$u’:I¥ŽRG©½Ô^j/µ“ÚIí¤6R©ÔZj-µ–ZJ-¥–Ò¯Ò¯Ò¯Rs©¹Ô\j&5“šIR€ 5‘šHM¤ÆRc©±ä/ùKþRC©¡ÔPª/Õ—êKõ¤zR=©ŽTGª#Õ–jKµ%_ÉWò•jIµ¤Z’ä#ùH5¤R ©šTMª&yKÞ’·TUª*U•ªHU¤*’‡ä!yH•¥ÊReÉ]r—Ü¥ŠRE©¢T^*/•—ÊIå¤rR©ŒTFr“Ü$7©´TZ*-•’JI¥$ÉEr‘œ%gÉY*.—ŠKE¥¢RQ©ˆTD*"9IN’“ä(9JŽRA© TPr$©€T@* å—òKù%;ÉN²“l%[ÉV²‘l$ÉZ²–¬%+ÉJ²’rK¹¥ÜRN)§”SÊ!årH?K?K?K?I?I?I?H?H?HÙ¤lR6)«”UÊ*e‘²HY¤ÌRf)³ôôô”IÊ$eÅD1QLÄ1^ŒãÅ81NŒß‹ïÅ÷â;ñøN|#¾߈1bŒ#F‹Ñb´%F‰QâKñ¥øR|!¾_ˆÏÄgâ3ñ©øT|*>‹ÅGâ#ñ‘ø@| >ï‹÷Åûâ]ñ®xW¼#Þb¤)ÞoŠ7Åâ ñ†xM¼&^¯ŠWÅ«âeñ²xY¼$^/‰Ä âñ¼x^qŸ¸OÜ#î÷ˆ»ÅÝânq§¸SÜ)îwˆ;Ämâ6q›¸UÜ*n7‹›ÅÍâ&q“¸IÜ n7ˆëÅõâzq­¸V\+®׈kÄÕâjqµ¸R\)®Wˆ+Äâ2q™¸L\*.—Š‹ÅÅâbq‘¸H\$.ˆ Äùâ|q¾8Wœ+ÎçˆsÄ9â,q–8Kœ)ÎgŠ3Äâ qº8]œ.N§ŠSÅ)âqŠ8Iœ$N'ˆÄ âxq¼8^+ŽÇŠcÄ1âq”8J%ŽGŠ#Åáâpq¸$‰AâPq¨8T"‡ˆˆˆˆƒÅÁâ`q8H$ŠÅþb±¿ØOì'öûˆ}Ä>bo±·Ø[ì)ö{ŠÝÅîbw±›ØMì&v»Š]Å.b±‹ØIì$v;ŠÅŽb{±½Ø^l'¶Û‰mÄ6b±µØZl-¶[Š-Å_Å_Å_Åæbs±¹ØLl&6Ä1@üEüEüEl,6‹þ¢¿è/6Š Åúb}±¾XO¬'ÖëˆuÄ:bm±¶X[ô}E_±–XK¬%úˆ>¢XC¬!Ö«‰ÕÄj¢·è-z‹UŪbU±ŠXE¬"zˆ¢‡XY¬,VÝEwÑ]¬ V+ˆåÅòby±¬XV,+–ˈeDWÑUtK‹¥ÅÒbI±¤XRt]DÑYtÅâbq±¸XT,*‹ˆEÄ"¢“è$:‰Ž¢£è( ŠEÑAt ˆÄb>1Ÿ˜O´íD;1¯˜WÌ+Úˆ6¢˜GÌ#æ­D+ÑJÌ%æs‰9ÅœbN1»˜]Ì.þ,þ,þ,þ(þ(þ(þ þ þ ~/~/~/f³ŠYÅïÄïÄïÄoÅoÅoÅoÄoÄo„$!IH…D!Qø |>ñB¼/Ä ±B¬ð^x/¼Þ o…·ÂáðFx-¼^ ÑB´-¼^ ¯„—ÂKá¥ð\x.<ž O…§Âá‰ðDx$< …‡ÂCá¾p_¸/Üî ÷„;ÂáŽp[¸-Ün ·„[ÂMá¦pS¸.\® ׄkÂ5áŠpE¸"\. —…‹ÂEá¢p^8/œÎ ç„sB„!Dg„3Âá”pJ8%œN '…p!\Ž Ç…ãÂQá¨pT„0á°pX8,„ ¡B¨  ª  ² ² ’ z:A'脃ÂAá p@8 ö û…ýBˆ"„û„}Â>a¯°WØ+ìv »…]Â.a—°CØ!ì¶ Û…íÂVa«°UØ,l6 ›„MÂ&aƒ°AØ ¬Ö ë…µÂZa­ð—ð—ð—°ZX-¬V «„U a…°BX.,– K…¥ÂRa‰°DX", ‹„Âa0_˜/Ìæ s…¹ÂaŽ0G˜%Ìf 3…™ÂLa†0C˜!L¦ Ó…©ÂTaª0E˜"L& “„IÂDa¢0Q/ŒÆ c…±ÂXaŒ0F#ŒF £„‘ÂHa¤0\. ‚„ !H* † C„!Âáááa°0X,  ƒ„Â@a Ð_è/ôú }…¾B¡ÐGè%ôz =…žBO¡»Ð]è.tº Ý„®BW¡«ÐEè"t: „NBG¡£ÐQh/´Ú í„vB;¡ÐFh#´Z ­„–BK¡¥ÐBh!´š Í…æBS¡©ÐT„¡‰ÐDh"4 Á_ð …†B}¡¾P_¨+Ôê u„:BÁOðü_ÁWðj 5…š‚à#øÕ…êBu¡šPM¨&x ^‚—PU¨*T<OÁSð<¡’PI¨$T* … B¡‚PN('”Ê e…²‚›à&¸ ®‚«à*”J ¥„’BI¡¤PB(!”œgÁY(&Š E„"B¡°PX(,8 Ž‚£PH($ÁA°ì{!¿_È/äò ù[ÁV°ò y…¼‚µ`-X V‚•`%är ¹…œBN!§CÈ!ä~~~~~~~~~² Ù„lBV!«UÈ"d²™…ÌBfá[á[á[!“IȤKÔ%êu º]‚.^¯‹×Åéâtqº÷º÷º÷ºwºwºwº7º7º7º]Œ.F­‹ÖEë¢tQº(ÝKÝKÝKÝsÝsÝsÝ3Ý3Ý3ÝÝÝÝcÝcÝcÝCÝCÝCÝÝÝÝ=Ý=Ý=Ý]Ý]Ý]ÝmÝmÝm]¤.R©»©»©»©»®»®»®»¦»¦»¦»¢»¢»¢»¬»¬»¬»¨»¨»¨» » » ;§;§;§;«;«;«;£;£;£;­;­;­;©;©;© ×…ëÂuÇuÇuÇuGuGuGuaº0]˜î°î°î°.Tª Õ_¶×_®ÓŸ¶Ñ€ô`y(0¤``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``‚˜€… &`!€ €X``H¡\É¢Ÿ_£‡SNy8¥ðí· ßÖcNÇœŽ9£îD݉ºóµï~/ô{¤ß;ýžê÷š£À2@ [’D‡D‡D‡¿6øµÁ¯Ϭ¼³òÎÊ›ªMçHÊ‘”C Ó´°I+'­œ´²QÉF%•,÷²ÜËr/29erÊ”ç\žsyÎ9E9E9E•,Y>²™ÜLn&Ϩ5£ÖŒZ§œN9rJ«=ý³âŸÿ¬øñ>6¬Û°núú |í€ € …€-É”1SÆLóñÈÕŠjEµÔŒÒöòÛËo/ïèè˜+è{ ï¾©ÙÓ˜à˜à˜`ꀥ"&€"¶ —¦^šziªáÈ,\±pÅŸ»µ÷Cß}?´W×^]{uÍ•ÎâZǵŽk²½žw|ÞñyÇ?Þšu¨u¨u(UàkGL )DüÕË‘”#)G½?êýQïÇÄe¨ËP—¡Ÿ=>9’r$åh[§m¶ur}AúÏýÜ]7ùÝäw“ ·¦6³À׋˜Rèk V»­Nî+#Áõ[×o]¿ÕðØ­,º²èÊ¢Ÿ»µ9ç<žó8ùªÐGËcbÇÄŽ‰=Þîx»ãí {4ìѰ· ß.|»ð¦ ›.lÚ•eW–]YúÛõ·ëo—wCÞ y7˜§ÈÒNK;-íİ$ÀÀBÜYûõŠíÛ3¶gÉ%{”ìññQ+èZе ëçÁ¨;Qw¢î$_?úsk¬lRÙ¤²FëÍ)“S&§L)«:c÷—®_º~éú©yÄ4üW€ € …€¿^Æî|í[¹o徕?÷Î~?ûýì÷Æ*¡óÎ7:ßHMU\¯v½Úõjù†å–oXzT• À’@ ›}Þ}?ôýГKL.ñ‰;_µ0-L ûÜmúíñÛã·ÇpkG¶é]oúw§lËòwòwòw†ÛÔß!­¿[šÊðµ &€"þ­=¶öØÚcÆÂÎÏ=voÖ¿Yÿf½±hïÒÞ¥½KZÕCð–à-Á[Œ}V…ˆ "RöY‰‰‰Ô3Ë@L à+£kéŽ";Šì(2X,k©u¦Ö}€W uÖZ[‡Z‡Z‡9[äl‘³ÕŠjEµãìøãœÇsÏy|çüówΧ¾''0;:<¹/c?¥ç º º ºúÝêw«ß͵ªkUתy7äÝwƒþxéÝбCÇ{²ìɲ'˦÷¾ÔH¨‘P#Áðx¶m;Úös·v¢ú‰ê'ª«Å£^<:­z~+×­\·ŒÖ[ÊÞ^ü±á͆7ÞÌpË¾Š¯â«°òøZø ÄÇÇë#º\©–û›ÜßäþFÿÏ‘ßD~ùMÊz•~°þ¡»MO7=Ýô´±í{zz>ó~æýÌ;½ûiʨê¿óuèëÐסÝVw[ÝmujŽÑå ËA—ƒÒ¶ŠN9r:ådì/lº°é¦ÏÝæþûgìŸal›ÛËo/¿½|Zõ_ÿ§Æ>˾}û©©½ˆ{÷"îq0€¯00³væõ™×g^üxÞ´e7ÅnŠÝ””…[é•ŵŽk׺ùîæ»›ï6¶eI“<&™ý¦U?MÉ«m¯¶½ÚV¿uê‹M°M°MpÚ†Žƒ®º>èºág•,Y>2eŸ¥¿]_Ÿ†_G–YzdiZõÿöÝÛwoß56b^õ¼êyÕKýˆÛ¾þn{V$昀™2å~Ä´¢(ñç†gië£ß_çþ:÷×¹ÉG¿O>mø´á—ì§)cXÆ¡ŒC‡´=.¹£sGçŽN}¨™ü;n{Œë1®Ç8óŸ›Fmµi”±½èß1¾c|êÇÊØÝÛ%&—˜\b2÷0ÀÀÌŽ> Õ?â8ù€°Îü:óëÌßÒaK‡-Î^8{áì…W™^ez•)ú\ô¹èsú‡úêë×lò[ó®â]Å»Š>,4¥ŸiÇ7ˆoß ÕàVƒ[ 6¶µÊ */¨¼às£ß´êgÊâÛ&?5ù©ÉOûì;°ïÀƒE=X¤ˆñ27ÊÜ(³Êf•Í*›*Ý«t¯Ò=ùíèß蜚è1lzØô°éƶ¿¼æòšËkšóŒÐ?¼º}uûêöÆöBþNþNþ.õŸµ´ÓÒNK;ñ h_/``fgãŸÿÜøgòw…êcÝ´½g7mcQS¶ ~Û´hÓ¢M cÛ©´®ÒºJëž´yÒæI›”ç— €­îZݵº»²èÊ¢+‹š²ý^¼>x™²åF%•lT2e#0Âo„ß¿¯1ÔÔ?è;ù?øøRÿ‰'Ëž,{²¬±ÏÒ¿‡›5 €9#&`všÉÍäf²±jʘ)c¦ŒIaÜ•#)GRŽäƒ@}XhÊÆR(êƒÏ¶uÚÖi['ý¢ßÔ÷Ó”-|lÉ€%– Hw*§&¬­‘½FöÙ ·c»Èv‘í¢ÿ*Öß×û2çËœ/sÞ ¹r/äâ’‹K..Ù°|Ãò ËûÔîS»OíäÇAÿöbýÝÕiÕ+ýý÷ɇͬQÌ00³SªU©V¥Z‹ ô!Yj¶¿xôâÑ‹GÛ¾þ~\S¶“²RývÈ×!_‡|Æ~Ö}¯û^÷½{=îõ¸WêÇóËÀú;tS¦&”N(P:ùOÑ›éÛŒ Ž Ž 6¶µÚkk¯­½öËÀg¾=óí™oSóvä¿6øµÁ¯§<œòpJzô0ýÇ é˜€Ùù8d2¤¿c25Û¿•ëV®[¹ÆÄ~úKÿøbS¶ó¹Áª>úíøcÇ;þhì§*ªÕŠjZE¿)ëççnAïDõÕOTO}o÷ÏØ?cÿ cŸ’wCÞ y7˜Þs)”GÊclkA]‚ºuùòž²¸d’=Jö ‹…ÅÂéÁ™=döÙ¼ À׈˜€Ù)T°PÁBÅNú·ÿšC?MÇô÷¶vzÖéY§gƾ¿BD…ˆ †=öhØÕÏ”mAßó´ ÒêAÐóŽÏ;>ïxò¬þò•“ú;€åïäïäïÒ¯‡ W,\±p…±O_4sÑÌE3Y©˜'``fÇç…Ï ŸÆÂ'///s¸Ñ”xRýv9ÕåT—SƾSxùÇù¦U<&Û˜lc²}É>OÜ>qûÄí¦lg@Ü€¸qƶ³µÉÖ&[›|ùÊI}ü±§ Ÿ6|Ú0m{¸iÔ¦Q›FûÄÁâ`q°ÈJÀ<0;Ó:Oë<­³éؾúèûnò»Éï&É~&ß+ý¬¿íúm×o»Lß—/ßÏÔoaW–]YveIÛ>oX¾aù†åÆ>±ùîæ»›ï6e;þžþžþžÆ¶£«¡«¡«ñ_ÕùÇã¯<øs·çnÏÝN[¶:m¥¿Ë¶j˪-«¶L~üËG–,ù¢à‹‚/ ¦Uß¶?Øþ`{cŸØäC“M>°R0OÀÀÌNÔ¨;QwRsOäŒZ3jͨ¥…iaZØÛ…o¾]˜ýL¾ÝçtŸÓ}Žé}v+íVÚ­tzÄØé_m{µíÕ¶iÛçˆ{÷"îûDÏ@Ï@Ï@Sú_îe¹—å^ÛÎ)§SN§œÌF¾ÿØP·ÕÝVw[VŸ¨£sòoªæMÀÌ003uöÂÙ g/9[äl‘³iõ°\ý½Å—ƒ.]J}SÖ›`›`›à/ypzÀi{艹þ]ÈÆ>±d’=Jö0¥ÿÅöÛWlŸ±íD~ùMä7_ËŒHþ(ä9—ç\žsiU?7o:Þt4öY%&—˜\b20óDL À¬éƒÀví<Úyäþ&÷7¹¿É•¦¦Œ™2fÊý=ÇŸÛ·Ïý¬? øaÀÉu¨u¨uhÚFkéǵŽk×:m»þ¾mcŸhßÀ¾}SúŸoX¾aùŒÉ);îÿ­äÅØ'cŸŒ}’úOy™óeΗ9S?þðåøjèé>Ò}¤{…ˆ "r¥ƒÏíIÑoÜ€¸qo?ùï¯÷G½?êý‘”#)GRŽ´·¯+Öo3õ1yîèÜѹ£mGÿæÝ¯k$ÿv䦧›žnz:õŸß ¾A|cŸbu×ê®Õ]`托ÀWéãßhf¿Ÿý~ö{OOÏäïøLÛ8eѯ޽{!÷Bò÷Êß+¯ô~ô×øègÞϼŸyûÄ žüv>¾WÕÐs·çnÏݾ®Ê¿QæF™eŒí‘Ç$I“R_9ú‘1ö)^^^ÀÌ00‹òño:óŽÏ;>ïx«Á­·lz0üñ;zMÿ,CŸ|:ðiòÛI~ NQNQNQ©WÓ;¾ÚöjÛ«mÓö8êßÓlì+ªÕŠª)ýÿømµ†®ù_ó¿æŸ²¾Êô*Ó«L]þô—þ ÖéQá1Á1Á1ÁéÍêG&õï`€/˜@†ðño@e“Ê&•ý—PsÈì!³‡Ì6}›ŸVMx€³þÄÉo§Oí>µûÔN«}Ox×Û]ow½MÛãµ½üöòÛË'ÿˆlSúï¾×}¯û^cÛ9Þîx»ãíRÖC}0olËýíúÛõ·KJŽíÛ3¶§±Ï-к@ë­SÍës¬Ï±>Æ>¥ò‚Ê */ `ž€ €d8ÉGhz•ÖUZWi]òÛI«G7‡7 oÞ(÷7¹¿Éýáv>þ÷)Ûßô€Çd“mL¶´=FA]‚ºu1ö‰úÿjÊvšÉÍäf²±íü=òï‘LM?mÙoß¿=éQ½=Xô`‘±ÏýøRó)ûg쟱†±OiñW‹¿ZüE À<0#ú{I§Œùô×ùýç÷ŸßŸVŸ¥]Ss'eÚ¾»7ù­éï¹a’X2÷IDATŒoß ¾AÚn9õ[Ðße›fE#)GRŽÒõK×/]ߨ'î(²£ÈŽ"¦llèØ¡c‡Ž5¶ Ë7,ß°<55¶åß=œ¶sä`ûƒí¶Oý½ÑÉ[¿uýÖõ[}ʰAà ÄzÀ<0#ƒÅÁâ`Ñ覱cbÇĦÕgEŸ‹>}Î|`ý;eMyKñçn9½àÔôÍPN('”3¶}«»Vw­îšþYË~Yö˲_Œmmþ¡ù‡æJMoõèNï11}ŽLž5yÖäY©ÿýû³}ÊòšËk.¯ÉzÀ<0#³ßÏ~?û½±Ø©î„ºêNH«Ï:²ôÈÒ#K“ô— €õ6÷ßÜscÛ´›b7ÅnÊçnÿËÀ 4.и@jŽH¢C¢C¢CÕ–U[VmiìSZŽo9¾åxÓ{®˯±­ øaÀ~HMŸ“«ûVî[¹oå´ªØgÞϼŸy'NT?QýDõÔ–~dŒ}ŠþîyÖ+托€ÑÇW_æNÓãzŒë1.ùèîËÀ¦l¹ùîæ»›ïN«­¥~ iµïÛ o6¼Yò[>Ð÷@ß}Mßf\ë¸Öq­mÍ«žW=¯z©9RúÐÚØösGçŽÎúzÐJòï3®y«æ­š·ÒjvèG&­þ¾$``æ$GRޤÉG€Î :/<:üèð£Ã?wóú80ù÷ÂêÞ|xóáÍÉo-ýàkþ×ü¯ùÛÛÛ§w|›ú-|,Ϲ<çòœ3}Ëú·*>ªø¨âÉoÙßÓßÓß3m‚ý¹”NÙø¤æ}À/s¾Ìù2§>òOþS”ûÊ}å~ê§à›õoÖ¿YŸG¾ ``fgõ»ÕïV¿K>îÊýMîor£ÿç Ë7,ß°\š¾}ú:4¶glÏØž‘ёёѡ‡þú÷¤•“VNZY|}ñõÅ×'¿åNÏ:=ëôÌ”ˆ+½ïQN~û.C]†º Õïoz÷3W*„, Y²ìѰGà {?ôýÐ÷Co底ëV®ÕYWg]µJ÷*Ý«tO~ ¶‹lÙ.ºQæF™eR6’SN8u`ú¯„Ò ¥J›>&ÿÜøçÆ?o:Þt¼é¬Â÷zÜëq/9FŽ‘cL¹Zïã?hH}ÕéÿôÁØgMë<­ó´Î¬QÌ00³“ücuÓþ±·ú{.MégzÀú¸4õ\NïX®§ÇÑßO¼÷èÞ£{¦fT/.¹¸äâ’ô>^wß=|÷°S”S”SÔ—©Ø6-Ú´hÓ"mïÇóxÎã9}⥩—¦^šÊÀœ0So¾]øvá— ÒôoWºu'êŽé=Lï@QO,, §æ!Æ_æ!Òi{Dò Ë7,ß°Ýv?Øý ½ï¨nïÒÞ¥½KZ¯Ûwoß½}·öÚÚkk¯MZÕ¿Wxò¬É³&ÏJG1ëGÃðs+ªÕŠ*`þ€ €˜·Þ \º~éú¥ë§UVݾº}uûÔÜ]úe`S>Ëç…Ï Ÿú;§Ó£Ÿ¦oAÿoÊæ(›£lŽ”—€›7nêß¶#9îÚ¸kã®~âÇO«Ïúø¡Ðú‡u§>ômçÑΣǙoÏ|{æÛt b“}÷øãOŒ?Á‚Àüøz|P}2öÉØ'ú;wõq£þѻ֡֡֡y7äÝwCQ­¨VT«´®ÒºJë:þØñÇŽ?Îþ~ö÷³¿×?ÆÖòîeL¿=úÜ9®u\ë¸Öú·ÿþ¶ë·]¿íò ô ô ,|»ðí·m‚m‚m‚õq¾þNY}¸øñƒšÓc/ôïþøíÑéÛŽÞï'?ùûÉÆh\ ò‚Ê */pÌé˜Ó1§¾nõQ´Ç$I“:ÆwŒï¿Êf•Í*›ôˆÃ iaZ˜f,~Ö÷E€ù#&`!¾d¤Çئl„ÍáëCßÊ}+÷­œ‘ë¶Ÿs?ç~Ά=i¾»ùîæ»™M¾ÀÀ€ñ%vÞ‚·o Þb¸] ºt}?ôýÐ÷C3ÚñíÛ3¶g¡‚… *h82ü{äß#™¾ÀÀ€aI°þMÉ–´G©·ûÁC•îUºWéþíÝypUU¢èáîÆRd†0%ˆBH$ `f5A‰H+¢2i‡žÚˆÒzµmŸâ€â½(ˆ¢ -2‰Ñ ("´H4ŠŠ€Ø 2%ïøGº'F¦s²ó}«j•UĽ×YgWõþyÎöÙ_ l€`~Eðréë{_ßûúÞÐséŸÑ?£Fy{}‹Î:t5æ.Ÿ»|îrû([`€_ÀÏËž^xzáé¡çR;«vVí¬òó™×UwTÝQ5t:uìÔ±SGŸýÊ"XàWõ “—ž²ô”¥§”ç/‚ž8uâÔ‰SCÏ}é—î¶ó€²H€øÁ~bnè5¼¸áÅ /Þž¼=y{rP_ÓcŒý1¶èL‹Ÿûà%ƒ— ^⳿@Ù% ÀüŠ`àïG?úûÑR¥6J-?Ÿ¾»ÙÝÍînVüLc“b“b“¶ Û2lË0{(»`€_ìîc&ÅLŠ™¼ ZtFõF×]otñó™93sf¦Ïþe,ð+ÊC.ùLƒtŽwBcK„ÆÖm?Dhl?éãÇ;#4vEhü¡ñïÝ{"4öFhì‹Ðø9Bc„ƃ'}ŠÐ8¡Q¡Q™‘ó»ßGhü!B£Â‰0@` ÀØ\Ä ” ÀÛ.ÙvɶKÞÉ9aãÝ Ï$ö4bO#Žþ§—Ÿç—Ÿ'—Ÿg¯Ð(?Ï.?O.?Ï.?OöŒáà=]8RÏ.?Oö\aOö,aOöáH=E¸ümžÔ<©yÒ±_ÁâjÆÕŒ«™94shæÐ¬Y³6nIß’¾%Ýš@q0@„ýðÙŸýðÙ ß¼ðÍ ß$õOêŸÔ¿Z„<¸ëÁ]îÊ¿-ÿ¶üÛ¼.@il­´µÒÖJϬ|få3+›žÚôÔ¦§žükW­´ZiµÒ­ðh…G+lZ¿iý¦õ^àä½"åTÈ©SÁÊY0Àɵ¿páþ5O®yrÍ“Wv¾²ó•«E¥Vó[Ío5ÿ­/Þúâ­/W=\õpU/Pøzáë…¯Ôé£Nuêývï·{¿W°Ž‡;îxøí¹oÏ}{nAjAjAª—8`¢“ p’¬î¾ºûêî©“R'¥N:º¤[¥ù]µ¤þnÀ²Ø¬KòÇý¥i¿>›pçõM§Åœ½ì†YÓǵ˜2¸ïÿÄ·h6pÊ”øÄóûþ¿¿îhö÷.ÏÞøpã4kßnqÝÛŽ%¨dÉ’=¤`jÁÔ‚©^M(oVÄ®ˆ]Û*¯U^«¼£»†œ³°áSu_ÉLlsWÓ‡žXÓujòÂ7ê¦ÖöÖÅ[/K:÷ïï,鳿ýÌ¥.›uîsïMû±mÁÓYÝ«µ|ö/•Sf5ûªczÜŠzOÝ¿7澘ûbî[ôÆ¢7½Q8ªpTá(¯&p¼ÀD'àÚZký­õVXi`¥Ò犦ÓSÕízEâß’ãß¹mæ¢Îé6aÂúõíÚ¯ù®/?¸·ÍËJ{êÚÄÑm.KŸÒ`Uéíìü³óÏÎ_{áÚ ×^èõ…`ûöªo¯úöª>Mú4éÓ¤ôW‰ g®kXufÎ…é­?ø¦ÎŸNéüsaáС={¯y[Þu[»¼9§YÚÍm_ëÛ%¡NÜoø…U:TéPeÃ-nÙp‹×8v0ÑI8Þ¶n)Ü2+cVƬŒÒg‰~5'Ý_ýž×IyøøæÞÒÏ×¾ùL^â¿Ïx)9§ööÒóøãŒ?p å@Ê/;Dß¾…}§åLË™–SªçïæUßP½ÙK­z]Ñ:¥ cÈŠßßÜ[úyîi›ÚîKœPoKRý7Õy¨ÎCu>4úÐh/;pt`¢“ pÜìnº»éî¦ý7÷ßÜsÉá¡n•†]k ¾~ñ gž½güÝ몧|©ènyë¼5-'&]Ú-¶Þ¯|>8ö±ØÇbËo”ß(¿‘=e×Î*;«ì¬’>&}Lú˜’ßõ‰›êW©÷îÃ}_ìP£àÇ¡zVŒTô=Â\0thÏž«r¯øä¼§»¶o²¸Á %ŸKòêäÕÉ«¿«ø]Åï*ÚÀo%`€ã ÿ±üÇò+ÍgÎ4úÇê„aÑ–{Kž‡¥¾:*9®n…†­k\WòÙ-M_š¾4Ý~€²å³G>{ä³GJs›ÿ@ï)›£(÷–b~/£ïÎ¥úšè÷G¼?âýöPz0ÑI8&«¯j¼ªñ¯ÿfé·ø¼m÷u?uYnÅîáþîÁ¾ŠÀÇKöììÙÙ³‹Öp⌉3&ÎØÑkG¯½¬ÌÑ€ÂÚÑrGË-Ãe€«–<òZóçåÞpsfßì«[®·z¦}˜öaš='Î÷]¾ïò}—pïÁù#z_Ÿ’/÷†›WVÎø¸ãáp«·îãu¯ûØàcw¸Ïá>‡û„»ÞŠÁGGkd‘=Fö½Õ¦Qú,™0nýšv)BoÉóå'f7ûgèÆ Š3èДCSM±ÓàD¸zÆÕ3®žúî»ybë»ÏÚ-ñ–fþïÓ:_Ùbiè¶Ìn™Ý2»à«‚¯ ¾²Ó <€]ñÏþ–L .=à6dmÈÚîöÓèËrW´i&î–f?o]fÊ®¸¦‰××®º’3Ì0s€ýÇת‹V]´ê¢pW°Ÿ¶ ~ ÛeâniæƒónZÕ£wÌòš—Ô¨x„OQO?uþTû Ê3øØÝ¢¸[­ÔÄà’ ÀGÐg@Ÿ}„ÞlÊèýàìø»dÝß:;oSËÂÝÂÛßk¯ýnÞÁñp¨ðPá¡Ô©=Rðío|žviÛ©²îoW´é·´ã•á®`‡òåÊ·õ |€/1øx€þCÞ«y¯æ½îÓ=×­mœr {tó¹¼üÎFCWõ•¯Ôx¥†½Çî“´OÒ>I }—Å®ý\ÍÌ‚ †¼Ûc“ {tsz“f+m ]ÛLX0ÁÞƒòI>qÄàc!ü‡Ì=™{2÷„ÞNðÒãï$<)âË|Û„E3Îiº¶µn¯u{­Û ¶l+Øf±èŸÜ?¹rè»lñŒËj{¯ˆ{,óºg¯þ]ê¡k›4"iD҈½…{ ÷ÚPÞÀ'‡ü[ À¿ØÓ~Oû=íÃÝB7wÍΔž"î±ÏÉgvÿïúuBWxÍ5Ö°áèü¸ñÇ?n w;|ç;{Ìq}nŸ[Xïßd·(oQÞ"ûÊøäƒKCøÅüáó‡ÏzÃè⪣*Ÿ¹ ,¦Ö[~ÿæ…­®-~.ÑpTCF¾|YÒ_C×ùÏ#þ<âÏ#ìC8:/m{iÛKÛBßYÏ^Ü}FËýÂíñšÖ¾4®Ý¡ë|ßðû†ß7Ü>„òFŽ,18àéÓ7¦áós·¸äûsþW>^ó=o®}3ej¸[r‡ªªr¨ŠÝ¿UÊw)ߥ|úžÚ6ïºÏ»¼.ܯùç”'t¿7ܬ`YÁ²‚ev#”pôƒ‹€ îûsߟû†Þª]9æêoNÈ\ŸÕ®•||ç. o|·ñs¡kþ¯kþuÍ¿®±'¡ô~zù§—z9ôÝÔ¶C£ûcR%Û1__#y“Õ¡kþõk_¿öõkö$”ptƒ`€Âµ•ÖVZ[)ô6ÐEsîzæÓe÷i»Ñ€‡6õhÒ²Ð52ãÉŒ'3ìI(½Ü1¹crÇáËŸ{v±åÏb퉘séç&‡®ùÌçg>?óy{Ê8ú•Ï,>µò©•O­ ½õ3üÚ×îH¾G>óØÝ+›¶ºæ=ölس¡= ¥7é´I§M:-ôÝôy­þ/wÚ!ÖžˆyûøA»Æ„®ù5³¯™}Íl{ʸl)?1X(ì—Õ/«_Vèíž±—tzÛøè‰¦ã>ý¿)ïdÔ|ð‚ø[¼ßµm½ÿ‰y"öß5¾¯ùRË«wm<+©Jí)]¾ºéÔÆ³F]”Ó¥õèhÀEs­ju+W¿áÏÑl\и ± ¥ÑéÖN·vº5ô}ôó«7¾Öý¹hK§9ÿì›Ñþ«AyÉß6y7qH½ü:§Ôy±Æ}ÕJnÑ g/2^H¼¢ñæÿ­÷Ȕ͆d÷ø,J3püÐz=k‡K…¹…¹…¹v&”pÙì,†»Å3¡ËúÚ5ކPz×È÷µùkbL§ñ1‹J‹êÊw>Ø<-šp‡ß_q£ìÐ#ß·+nWœ Gwk0§Ö 5Þˆž\Z”rÿ2;esü©¥¿‚õ{#¡ nÅžé7<ÜmGtfàÞïÅ‹=/ôÈ÷õØ×c_;ÊçX.‹‚ƒ`€#ܼkžs^rLZT„ÒªëOoW-éµnïÖÛYü[n¿àõú¯õKž”_ÿ¦3fTIªsù[÷ÿØlwRj×CõÞ›´£,_öá„›î=μø¼ø¼x;Žî Öÿ£ÝÏHŠžPzßÂóîMQtluŸ¨ñEõwî©ØaY€·.¹äÓvo¯<#cýy˜>ë‚÷ÎÉëúe“C &á3µQ€'®Jí•ømèÑn®¸¹âæŠv&”Ï+°\Ö# ÀG¸ywþ¼ëÆÄ= ‰´ÿ–ŒJ¸²ø±]Ü{Ô]g~\ô¿†» Õ5wÈŽþ|ÝÌ©÷œÝ-ô8så.Ê]dgÂÑ]Á&NK=7qC4$Òüß_3®s囪7ª6·þ°šÛjÜ´þ«¯ìÔ$ÜÏÿϵëŸýxVÏ 7¶izœk'¯¼v² åó ,IÙÁ0ÀnÞ¥=9ú­³:EC"mõÉ…]ê*:ª¢¯€.ÍoÝÓý“RFÅŽHhRkC4àáÍ_«™<"tý³ÎÏ:?ë|;Žî 6펞)­¶FC"½÷ÃóùOU&÷í´÷ì-¥I¹/¾ifvEO.úù›{¶¾ñ¬ï¢-¿=®Ï™íãâsâs|‡”Ó+°Te+ÿ.zÞÑãòn÷7jöa4$ÒFš_UknÑQ lþä Ä˜¢.ÍW´à?Ÿ5ÿ½Vuí78¾^?óâWÚž ‰ôªÛÏÜxzÑQåü³oFû¯Jÿ»ÅϨÝÿÆŽŒÉ¶üÑ€Œ‡;~j¿P²ìÙÙ³³g À–±zòcñ/F6ŽÞ}çªÚæ?ª[6/ØÐêÕÒÿ…?ýûéûß(þ¢-ßòö‚)­ž·ßàøÊúCúØ”~ÑHSæÆÖŠyôØÏè¬wê¾[kQÑ?GO^ÝùÊß—m¿P²¯xõÀ«0@„EÃ'€ÿò_K3Îy³øQ%áÒÿ…›ï{ãö䯊ÿŸ†ò z>3©æ¹Õûÿ;> @ÙRŽ>\ôè†a†a†a†aÑ0BoÓDÃ3€ïÉ^›•òlñ£ºõê·þ§Õ'¥ÿ ×~ölíÄ‚hÀáž<ù§É?MþÉÎ4Œ£»‚EÏ3€[Þà@Ý‹ŠŽjÎú´ÙmמÞI§ƒG7G[÷ à'ÎxâŒ'ΰ3 £|^Ÿ8õ‰SŸ8ÕÊoÌ¿kþ]óïú‡¡ú‡Ò§ß¢Ÿ/Gψ¡7kΟwݘ¸g¢!‘?ªOMIL<¿ô¿ÛûÖ±{Ïú<šðu3§Þsv·ÐõÏ]”»(w‘ Gw›8-õÜÄ ÑHû|Ñ|W\ó¢£zsÄ%MÚ]mÏñ=–yVÏ 7¶iºþk'¯¼v² åó \ ­L0…Û‰3&Θ8£ôÑ·èçO~ô-N8ÂÍ»æ9ç%ǤE[Nœ|þ…1ß”êÓÃÝ?ù!eTÜ»g­Íø²'|ÜtèúçÅçÅçÅÛ™ptW°þµè~FR4$ÒÑ·žÛ;þË¢£2áœßU¹4¿µè{º¿ŸzaãIõOOR/¿Î)ëvþ¥-G[ž¸*µWâ·¡ë¿¹âæŠ›+Ú™P>¯ÀpYWv£oq0@a¸[9º¬¿¡]ãÈ&Òïœ0îÇæçÇ?³®gÊ–n¯k~F÷ÒÿV¤æ¿¿âþF١ǹ+nWÜ®8;Žî Ö`N­j¼ ‰tÕ¿¯øæ¼éEGUcSõFÕæÎÿ[ï‘)›Kþ­1—·ÿCóÿøWŠþN´àÞïÅ‹=/tý÷õØ×c_;ÊçX.‹‚}‹€ ûeõËê—z[gìåÞ6>¡´êúÓÛá–SËí¼^ÿµ~ÓÿǛΘQ%©NFÍ/ˆ¿1¹I÷‡ë×)ú™Ø Mjmˆæ\«ZÝÊÕo=»‚Æ Û™Pnítk§[CßG?¿zãkÝŸ‹†Pz„g"ÞvÎUguqw¯OZ/Š»Y/§¿•2抿'¾Ñ¸}ñŸ¼¶RÒ¿š4‰¶§ÿƭ׳v¸$P˜[˜[˜kgBy —]Á‹¾Å À…O­|jåS+Coñ ¿öµ;’P:ºvîõmj4njÝÉ¥¹9uæÇ­¨3½( Gg»{eÓ¶B¼gÞ {6´'¡ô&6é´I§…¾›>¯ÕÿåN;¢!—}¥óÀ„¤¦gd•þ&û% âŒíýó7>Ýý±h ÀÛÇšØ5&ô˜¯™}ÍìkfÛ“P~ÀeK°£oq0@áÚJk+­­z»ç¢9w =óé艦EGÕçÿÜÛ±Ùé ÓSÿóD VÕè]«~ÝFÕ‡ž9àœ¥uÆ]4ä/[μ÷î;W}Ð6/š¿zhÓY&- =Â'3žÌx2Þ„ÒË“;&wLè»éÙžÝ_lùs´}mrÑ'}¯ºýìÁ§7Wkwí¬‰Õ¯hUذoÝñýÞH(ˆ[Qô3Å?=mg±èœK879tÍg>?óù™ÏÛ“P~ÀѯüDßâ`€ÂŸûþÜ÷羡·~jWŽy§ú›2×gµkm_ž.è†æÞèüòç. o|·ñs¡kþ¯kþuÍ¿®±'¡ô~zù§—z9ôÝÔ¶C£ûcR£-†~)t¸ÿ5:¼h¾¾Fòþ&«C×üë×¾~íë×ìI(?àèT>£oq0À/Ò7¦oLßz3èö—|ÎÿF[@-»ó=o®}3ej¸[o‡ªªr¨ŠÝ¿UÊw)ߥ|úžÚ6ïºÏ»¼Í1µlÍ?§Ü8¡û½á®`Ë –,³¡ü€£‡è[œ ð‹ùÃçŸ?<ôÆÐÅUGU>sp{¼æ!#_¾,鯡ëüçñçö!—¶½´í¥mGø"è‹»Ïh¹_¸=^óÂڗƵû1tï~ßðû†Û‡PÞÀ‘%ú†#übOû=í÷´w«hÜÜ5;SzÊ·Ç>'ŸÙý¿ë× ]á5ÖXsÀ>„£óãÆ7þ¸1ÜìðCîì1O¾=ö¹}bla½Æ¡+œ·(oQÞ"ûÊøä}KCø™{2÷dî ½m4à¥ÇßIxR¾=–ù¶ ‹fœÓ.tmkÝ^ëöZ·l+ØV°Í„cÑ?¹rÿäÐwÙâ—Õ:÷^ùöXæuÏ^ý»ÔB×6iDÒˆ¤…{ ÷¼€OÑ÷·€þCÞ«y¯æ½îFÒ=×­mœr”{tó¹¼üÎFGøäÜ+5^©ñJ {ŽÝ'iŸ¤}’ú.‹=\û¹š™ y·Ç&)÷èæô&ÍV6:Âg¬LX0aÁ{Ê'øÄ}… p}ôÐg@èM¥ŒÞÎŽ¿KÊý­óȱó6µ| Ü­ºý½ö÷ÚßË®ƒãàPá¡ÂC©=R{¤ö}¯½ñyÚ¥m§J¹¿u^ѦßÒŽW†»‚Ê?”(ßÖƒòI>¾DßãE8‚ Y²6d…»Í4ú²ÜmšÉº¥™ÇÏ[—™²+®iâõµë†®äÌ3Ì`¿Áñµê¢U­º(Üì§-ƒèv™¬[šù༛Võè³¼æ%5*†®äü©ó§ÎŸj¿Ay&;Ñ÷D€ÂÙcd‘Gø]›Fél°d¸õkÚ¥H¼%Ï—Wœ˜Ý쟡k3(fPÌ CSM94ÅNƒáêWϸú7ÓožØúî³v‹»¥™ÿû´ÎW¶Xº†-³[f·Ì.øªà«‚¯ì4(Ïàc—=;{völÑ÷ø€ÂÚÑrGË-ÃÝ„ºjÉ#¯5^â 7gö;ºåêp«÷aÚ‡i¦Ùcpâ|ßåû.ßw ÷œ?¢÷õ)ùo¸yeåŒ;·zë>^÷ñºí1@>v‡ûîs¸è{| À¿b^ƼŒyánKÈžû@Ë äÞâó˜…žÒfw¸»#óŽÌ;2í+89^|üÅÇ_|<Üû1ïFŸ³Ü[|Þ¶ûºŸº, ·b÷¿pÿ ÷¿`_Eàã¥øç€Eßc'”Êàƒ ^6jNy§Jëó¥ßqû?–20>¡ýõuß ]¥šûjoßþ}û÷í·£à$™V8­pZŸØ>±}bÃ]Á¶§º­kéw_ãtïÑbSýë<ºJ &,<øüÁç>o[E`¢“ P*{Gî¹wdL…˜ 1ÂE”Ñýr×´‰/Ÿéw|íO¯NYئWúä…[Ÿ•7VÞXÙ^‚“o×°]Ãv ÷Þ»¥éKÓ—¦ÛP¶|öÈg|öHi®`óè="esÙJ¿ïeôÝÙ¡siÎîýïx„ý”žLt€Ž›ÝMw7ÝÝ´ÿæþ›ûo.93Ô­Ò°kÁ×/~á̳÷Œ¿{]õ”/£-ú޼uÞš–“.í[oUÉçûXìc±å7Êo”ßÈ€²kg•UvVI“>&}LÉïúÄMõ«Ô‰{÷á¾/v¨QðãÐ =+FQô-:´gÏU¹W|rÞÓ]Û7YÜà†’Ï%yuòêäÕßUü®âwíà·€‰N0Àñ¶¥pKá–Y³2feT+µ~5'Ý_ýž×Iy8RÑ÷Ú7ŸÉKü÷/%çÔÞ^šc`üñ¤H9âe‡€è[Ø·°ï´œi9ÓrJs¨•W}Cõf/µêuE딂Œ!+z|©ô;÷Æ´Mm÷%N¨·¥N¥ÒùCuªóPC£>4Ú˘è$œ@[ëo­¿µþÀJ+ ¬TúÜtzÊ¢º]¯Hü[rü;·Í\ôÃ9ÝŽoè½ëËîmóòŸÒžº6qt›ËÒ§4XUúc;;ÿìü³ó×^¸öµz}!ؾ½êÛ«¾½ªO“>Mú4)ýU¢G™ëV™saz뾩ó§S:ÿ||Cï¶¼ë¶vysN³´›Û¾Ö·KB¸Î¥?¶U:TéPeÃ-nÙp‹×8v0ÑI8IVw_Ý}u÷ÔI©“R'U;*±UšßUkAêï,‹Íº$Ü_šöpáã± w^ßtZÌÙËn˜5}\‹)ƒûþO|‹f§L‰O<¿ïÿûëŽfïòì7þG³öí×½­Ú1È’=${HÁÔ‚©S½šPÞ¬ˆ]»"¶U^«¼VyGw 9gaç꾒™Øæ®¦=±¦ëÔä…oÔM;­í­‹·^–tîßßYÒgû™K;]6ëÜ/æÞ›öcÛ‚§³ºWkùì_*§ÌjöUÇô¸õž>ºoÌ}1÷ÅÜ·èEo,z£pTá¨ÂQ^Màx€‰N0Àɵ¿páþ5O®yrÍ“Wv¾²ó•«E¥Vó[Ío5ÿ­/Þúâ­/W=\õpU/Pøzáë…¯Ôé£Nuêývï·{¿W°Ž‡;îxøí¹oÏ}{nAjAjAª—8`¢“ a?|öÃg?|öÂ7/|óÂ7Iý“ú'õT2yp׃»Ü•[þmù·y]€ÒØZik¥­•žYùÌÊgV6=µé©MO=ù×®ZiµÒj¥=ZáÑ VØ´~ÓúMë½.ÀÉ!`€¨³#sGæŽÌ¥§/=}ééc{í=¶wÒÀ¤I=“ÔŸTRýIÃë¯?¼þœ‹ç\<çâÍ•6WÚ\ÉšÇËöqÛÇm·pñÂÅ útÔ§£>mžÔ<©yÒ±_ÁâjÆÕŒ«™94shæÐ¬Y³6nIß’¾%Ýš@q0@™÷AÕª~P5gPΠœA¹rå6²&@Y±¼öòÚËkç´Èi‘Ó"·OnŸÜ>ÖŽ… 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ ÿgV¬ØàŸx%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/skipLast.png000066400000000000000000001075071431412030200251750ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝy¸Wãþ?~Ã9Ç9©(…Ò$¤¡9Iš™‡Œ™Ud ™Ã9É1dÎLÈ,ÓIb¯¹NÈ2Ï3Q""ªßë|¯_çÚvŸ]íá½ß=ëºÖÕµí½Ö½^ë^÷¾½Ÿ{­µÊbŠÂ*JPÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$Àð˜vñ´‹§]œýšýšýšÿ[MÀ¬À¬€Â7kÚ¬i³¦MMÿÿ%ÿŠÊc(n`V¾ÉÙ©³Nuêäý'ï?yÿSï=õÞSïmyuË«[^]w…åÛÉ·™o?ß—š€YY+î÷y¿Ïû}ÞÌxf<3¾±þõo¬?àêW¨„ß\¹|kù–ó½ä{TyÀkŒ vSä¾\ë˵¾\ëúY×Ϻ~ÖF£7½ÑèºÕ.ßoÞ†¼=Î ˜˜°t‹Ž^tô¢£§–N-Z:hÌ 1ƒÆÔ­!ùÞó–ä­rvc¬1È•½®§¬>eõ)«« 5KLqÙhñF‹7švÝ´ë¦]×wÕ¾«ö]µnAÊÛ–·3o³SffÌn9»åì–c®s͘kê°¼…yk5ÀkŒ…•™˜Â$¦ö›³xÎâ9Sn˜rÔZ½×ê½Vï-ßÔªÓÚM;6ÊÆ®mÝåÆÿô¸eÉã»ízv‡§¢k÷<¾óSÙO{×é21ÿwþõü{òïÏvùö›·9o~,N)Ôô¬ dZ£ñ§l|ðs­»ÜøŸ³_Ù²äñÝÆ¬Úá©èÚêüTöÓ-3ºLÌÿ=ÿžüûóŸ5+`~}ý4ç§9?l6²ÙÈf+4ùzÛI;¼i¯ÚpPIãÿ:jÂV¥gÔ¹öÓmö;§ñÍGæëü+ùÍ¿3ÿ©ÙoÞòü(œM XÇØmŽØå× /Øù²áƒ[vxØý7Ûâðµn²E£W¹{Ÿ¶‡åëü+ùÍ¿3ÿ)c,70…IL-öQóšÔ¼ïK}_êûRŧM»i}I“'&¬Þÿãöñ—¯6¸ç+‹Ò¯_e­ómæÛÏ÷µ ÷½Ô÷¥¾/åÇåü@ÕÏ ¶ß©ÉV¿t|ûøËWŸú¸ç+‹OŸÞ¯_e­ómæÛÏ÷eV@nḅ㎷ɸMÆm²¬a@ëºûr^‡k.Úôîs{ô7núôÊ]ç[Î÷²¬mË(?:g¨cl¿ëNܶE÷¡—MX½]× /|óÍN*wo9ß‹1Šƒ˜Â$¦–YT²¨dQÉØ c'ŒP‘‰ÑÆ3Ì^÷ö‡÷¿¯ý­‹Ÿ²[¿N•÷VhýÔÝúuÊÛ·§"-Ï1?^ç*cV°Ñ‘ëÞþðàKÛ¶¿uñSÓ¯éשrãÞ ­Ÿš~M¿Nyòö˜¬lÞëý·Þ«¤_I¿’~ù-Ðâù]¼e熗֟ðDUĽYç{Ï[R‘6çG—©3òÛcÄáõ6}ÒÔ§>Þjתˆ{+²Î÷ž·Ä µ‘˜Â$¦Ö˜5pÖÀY{ ï1¼Çðÿ㱓›žÖè…é{î;½Û ÅÙ¥_‡}Ë[?Å9-6ûí×uŽy½ÏÄÚý.¹ÎÛŸËÒ7¯‰¾€YÁÍ Ž9p³ß~]ç?‡ö™X»¢ß%×yûóc1+¨½æŸ<ÿäù'è6 Û€nKÏ;\ÑVw_R[Bßrß|ýE[Ý}ÉÒ4¯F^=¨ž1vè5ê¶ë^[Bßrß|Í„ºíºc¡0 €)L` ÔÄÕ&®6qµ¥Ok²Þ{Mïryí }Ë[çǵôcÏ룟`Vðÿf·ôëryí }Ë[çÇeVP»ü|ØÏ‡ý|X·ó»ßíüòFïf;õÞrÏ…Ý/¹eû)ïÔöèwÉu~DùÑ•wìyeò*é-@UŒ±]vدK“ÓÏÛñ•á^¬íÑï’ëüˆò£3ÆBáS˜Àœ¥ßßÓhŸu[Õ›ýù†ƒŽîÙ¾ø¢ß%×ù1æÇë¾Ì þhVÐðâz³?ßðɸgûâ‹~—\çǘ¯Y@![ÐxAã·Ÿ´ý¤í'•7b·Ùûˆ·ÎzµG×qWMŸTLÑïÿ¬»Ž»jú¤üHË«C^¥¼bzPYcìž›\ðÐ&é…§¿™tÚ¦˜¢ßÿYŸþfÒi›üH±PÀ&0déoõëtvÓC…?åU/¯­>@±Ì né×årqoyë¼>fÕoèC?úÁ<µâ¡-Ú·_g»Ò;þòÜÓâÞ²ë¼2y•ÊV/¯ªÞ”7ÆnrLÇÝÖ/¹ çÌ»;N÷–]ç•É«dŒ…ê!^q ÷Z¸×½ÊûdC¼|ÀÔ„o»øÛ¾/õ}©ïKe/æóèÚb³ßD¼Yçµ*[ü¶yu7jó¬à˜7ûMÄ[‘u^+³€êñòؗǾ<¶¼¨ºŽ¸úÚ§Žô.}W©¼æÖÓÀ[Öég[nÓGлôu^%c,TðŠ[òÞߥWœ˜0å†)7L¹¡¼ xþ—ÇÝçánEÖy­Ê«d^gý €Ú<+˜zzŸS„»Yçµ2+¨r[.Þrñ–%§—œ^rú¼ñw›ã>u®pwÞ ¼ÍqŸ:÷*yzÉé%§çÕÖéÀûß7þöº¢áfÍ…»ËðVà^W4ܬ¹1ªšxÅånîÖ­0aðÒ €©^-ÞhñF­Þkõ^«÷Ê^®Që={w¾]¬»¬ë¼neë™×9¯¹®@m›ÜX§óíbÝe]çu3+¨:ɤdR2©ìH»ÞñM^jþÜvŸÜ1òùýĺËð8èOîùü~yõÊV5¯¶^ÆØ >hñíº\pÛý;~#Ö]†ÇAßöFÿŽßäÕ3ÆBÕW.apeS­¦]7íºiו½8;MnzZ£—Ù£_gî2¯K‡ìѯs^òµÍk®ïP{fíöhôÂâÒécûuè.óºtúØ~óšT²‹g,žQ²fÉš%k–cÛÿpAɸ¹Ýå[çÕûƒ{ÔÖ,Y³dͼò: ¬ÌcìàE(™(Ð]¾u^=c,TpÕ¯0Õªïª}Wí»jÙ rúžûNï6H”»"뼆ðæ¿Uû®ÚwU}€Ú3+¸óšnƒD¹+²ÎkhVP¹f¶ÙvfÛ²£ëúmý÷¶Ç÷è6îÚéψr—sÝmܵӟÉ+Y¶Âyåõ@X9ÇØæ¶ëÑൠG¼ùŸNíE¹Ë¹ñæ:µÏ+iŒ…ª ®Âàe%¦š|¹Ö—k}¹VÙËoã f¯{û↴﷉w…Ö' ißo“¼žeëœ×_? °g¹îí‹O˜~@¿M„¸+´>aúý6ÉëiVPY†¼2ä•!¯”W·xÎÆ7'Ä]ñu^ɲÎ+¯ÂÊ9Æýç»i{„wÅ×y%±PÀÕO\`ªÉõ³®Ÿuý¬²—ÜÃûß×þVñme­óz–­s^ý€Âž\Ú¶ý­5š¾;à‘Ûý¶d{j{ œ×Ó¬`ÅÍ¿sþóï,ïƒ¤í®¸ýŒçVßVÂû€¯¸ýŒçV-¯ÎùYÐaecG¾ôú‡Ç×®¨õäU'ï¼ÕaKE!´*¯¤1ª‚¸f ƒË#¦ê}¿øûÅßo4z£Ñ.{™ýðèQÃ{÷ÜVÖ:¯gÙ:çõÏÏ…. @¡Î ’#z÷)œ¸¶ÇÀy=Í VÜÔ®S»NíZvDÝ´ç­OØSp[¹ë¼ªe«Ÿ½Vž1vçQÃmÙ¹6Þk[˜p¾Î«jŒ…Ê%.Âà% €©r³Nuê¬SË^T»i}I“'D¶U±Îk[¶æù¹Ð'(¼YÁö;5y¢fãÒâ €óu^[³€qâ°‡8¬ìXÚy‡Ko|ä‘må®óª–­v~ôFXyÆØ“·š|óV' €+¹m[M¾y«“Œ±P¹À…I,¦ÊMÞòþ“÷/{!MX½ÿÇícamU¬óÚ–­y~.ôI oVpéøö±¸*ÖymÍ –S¯Å½÷*÷áÏéŸ{Ud[É‚NïhüÜ«åÕ>vfžÑÊÛœYøp^ac,TpíUÜa°˜*ôÛó¿=ÿÛóe/Nk7íØh|áÄ¥Éç{íÜ¥GÓ’{®Û³î2útê¡_lÿyaÆÀy˶9?/ú'…1+(™Öh|!¥åÀ &®wv½ý—>Øäßͯ7oæ}<Ð}baÆÀyÍ –Õ¸Æ0î„?¸;í»‹»QáÄ¥ÛN¼ñ®äœ Ïìð—'WüÿgK²aŒ~±0à¼ÂeÛœŸ=Š{Œöål9°‚Ò³Nx.hÿÏ6¶» QPñÑuàÔ+~Ûl×B€ó c¡²€‹Cñ…Á`ªò‚é=§÷œÞe/‰S6îpmë.…‘þ4þè+zÏÙ|DãQ ^ÌÛÖz|£3´¹êëžCKŽ™zÿÞvmôú¤vé~~·ìøÙí¹ëKƒ°pâÒ&¯m{ÊN«ÿ·qÏÕ?`ÝÕ69qï㙳õg6;ªý¬ Ö÷úæÝ 9ýèuÙðì¦Ï-y,¾ôûGfZœW¸låó3¢gBq±gÎ}öÓöÕpPºÎ›u:Õ-y¤÷ÔÆß/Ù¶-¿ÛñÑ Ù·Ýè'7ÝàØæ÷ý½¤á>Ï\<»õ¼’î½~oü\yÿ7Qhp^ac,Tp~ŠUa°˜*ôáã>þáãe/ƒÿÓ{à–%…‘æ±nÞªz?ÔÍêžûÖY>¾ÝÀòÂÝ?x|â«ë¿ÞÅ…çu.Ûæü¼èŸƬàìW¶,)̸þ§õûÖ}"Øzì¨ÎíòïYò­Àù¿Úá_}ÛXøoÎëlV°¬ví»kß]û–?·kvÛFÓv(„ t«7Ï8òº=þÛ¬›ëý§~ß­£³zܰ8ÿ¯ù——üþÿþÿïEëk0oÉ#*¸ÇY7»m£i;”­|~FôL(î1öüàµÕ:ö¯Ùˆô ¯¯=cóÿù„p—ÝÎ8«åËù-ï£ÿ^ÓmöKáÀy…±PYÀÅ­ö†Á`ªÐŒÁ3Ï\¶ë?¾Û®gwxª"ÒgÏÞ'èúÌɳ:\кíè‘ݿޢ_Eîè-æ}Ày˶3?/ú'…1+³j‡§ 3>âý=Þn1µ"î’?Õÿ˜í&6éQhp^g³€eµÅw[|·ÅweÇÏ«ßñÕóïBPÚô›îúߨn¯}ÛñŒ¦Ã6o±Þ;…ç6ÆBe¯ùúÄŽÿóê·S|æ®­^«ø{ûÖmr\Þ;€±Ëò-e¯¦±kŒ]cì*S|ˤ³&5é¬!« YmÈj~óï_‰ÞÌÊàÃÇ?|üÃÇËv÷ÿÓ{à–%…‘îºSës›<˜·êˆ÷Û}Þbê¢&ƒŸìûöÒcÝw>èèí¦~œ×ùÚ …3+8û•-Kjû;€ŸÙýú¿wJþß“mÞhýþ…çu6+XV»öݵï®}ËŽŸÛ5»m£i;ÚC’Ûÿé¼î·µ®ÈOuºë’{úpóãývFóͧ¾ñˆ›zÔ·Îôu 'Î+\¶òùÑ3¡¸ÇØóƒ×VëØ¿p|èM7¶iÓ£â?»Û)çüÜêÝB€ó c¡²”÷ÇÖ*SòàvÔ}£îu_ÅCßüû«?ô]’˜ª¼0zÏé=§wÙ®ÊÆ®mÝ¥"ÒvYï¶ú¯ç­zþ}Oê¶YE~ê™ÝwŸùÿ>ä-ä8¯³z(ìYÁÁϵîR˜ðïïñv‹©ùÙý¯Þiõfÿý{ÀðÏi6¾Ðà¼ÎfËjøÜás‡Ï-;~v{îúÒ ,´¸ùË;­:°SE~ªÅ»œpð¸ü§]Óæ³m(´;€ó —­|~FôL(î1ö̹Ï~Úþ Â €Û\ÚcçFŸUèîá>¯}ÛñŒ§nqNƒ] 9Î+lŒ…Ê".ÂO±jmè»$0Uè·ç{þ·çË^Ön򱄿BˆHÛößàš†'ç­zh‡þÝÚ¸ôïÿìÉA={n”¿ ¸ðà¼Î>ê °g%Ó/̸þ§õûÖ}"Øzì¨ÎíÊû©‡vøWßö.ùSSï¿­u×F…ýæë¼ÎfËjÜ ãNwBÙñ³ãwwÿ¢BJKº÷˨±ÿmÖsõXwµmfžûÀ­CËûþÎí.=ô‘õë4Øhóü‡Z¾¸Û·íþßG[LœW¸låó3¢gBq±Ã¾|âƒ-ÖlDzðÁ×m¿ùùð~âòª|Ëý:~Ýûá¡›5ïSñŸª©u^ac,Tpq(ŽÐwI`ª\Ë«[^Ýòê²Æï“oÕwtÍF¤Ç^µÕ=-gþ÷o¥ç6|j½ î~zÇã·¾÷“×½lûG¾zø*;´zÿÞvm4ò×nm~M£Ñëv®· ¼K½p¢ß¼¶e[˜Ÿ }€Â›<×­ïèB €[oþLƒ6ù¿Ïíxôé›M.íyýs~yâÙ+7ïXçÄF·É%K~ÿc¶›Ø¤G¡Ýû›×Ö¬`ù¼°Ö k½°VÙQ´¤ãqsF]ZJ~âöYÏ]_¶…›Üº÷¢cںÈ‹¯®Ã¾t÷_Û}ûkÞ*´{óu^á²-Ïψž Å=Ævl½Ç‹ +ˆG%7˜vdûú­/èÜ}ýK+2º¶|y›KŽÏƒáB€ó c¡²€k—â}—$¦ÊMÞòþ“÷/{ÁLX½ÿÇíãBˆKóö\ðM·Ó6®ÇÍ·ÝàìüÝÀùº×‡-~ßðÒ±Wôúg»‡¶|pß»þç- ƒÔðO¸^Ÿú·=jë'ZYG”×¶lÍós¡OPx³‚KÇ· -οžÿû°ßv?¬ÅÀVY³^ë ïiйÞåÒ¶ÿitÐE/ ½µM§§¤]{_XhÑo¾ÎkkV°œz-Wym—ÞÑø¹W -nsÁ‘ƒÏ¾lƒ#·º©Û_êÿÜx› ߬Üúç4¾³ñÙ%Q§-O°É¡otýüšÙO7+´Ð÷¿÷4§w4~îÕrŸ¼Õkq¯Å½tLXÆØ v›t|¹âÒ¼={­uQ·Öu6ßý©FcNßð•ú»­·ÁúMê iyðÖqÃóû>íë–7â•ç;¼_ȀΫjŒ…Ê%.|+Oè»$0UnÖ©³NujÙ‹g×!­/iòDá<6yéq.ï¿æÛóÚ–­y~.ôI oV°ýNMž(„¸´¼wY¿^8ë¼¶f+âÄa';ñî”ê¼Ã¥7>rDaƨK¿¯·0ïúýï[Šw¸ôÆGŽ([íü,è°òŒ±'o5ùæ­N*´{gË tËÆ½…yïo^Uc,T.paZ9Cß% €©zß/þ~ñ÷ÞhôFðþ¹=jxï>… ÖÞu^ϲuÎ럟 ]€B$GôîSÈajíZçõ4+XqS»Ní:µkÙuÓž´>aÏÂŒQkï:¯jÙjçgAo„•gŒÝyÔðC[v.´µ¶¯óªc¡r € ‡ÐwI`ªÉõ³®Ÿuý¬²—ÖÃûß×þVÁme­óz–­s^ý€Âž\Ú¶ý­‚ÛÊZçõ4+Xqóïœçü;Ë}ô·Ÿñܪ‚ÛJxøó·ŸñܪåÕ9? z#¬lcìÈ—^ÿ°ãxÁ튯óJc¡*€k–з<`ªÉ—k}¹Ö—k•½Ì6žÑ`öº·/>aHû~›ˆoWh}Âöý6ÉëY¶ÎyýõC {V°Ñ‘ëÞ¾ø„éôÛD|»Bë¦Ðo“¼žf•eÈ+C^òJÙqu›çl|óqâÛ_ç•,[á¼òz ¬œcìѾû¶GˆoW|WÒ UA\ý„¾!¦Zõ]µïª}ÿàïy§ï¹ïônƒ„¸+²ÎkX¶¶yÍõ=jϬàÎkº â®È:¯¡Y@åšÙvfÛ™mËŽ®ëÿµõßÛߣ۸k§?#Ä]Îu·q×N&¯dÙ ç•×aåc›Ø®Gƒ×.ñæ:µâ.çzÄ›ÿéÔ>¯¤1ª‚¸z}—•˜j5íºi×M»®ìEØirÓÓ½°¸tÈý:‹r—y]:d~ó–­m^s}€Ú3+h·G£—NÛ¯³(w™×¥ÓÇöëœ×Ь ’ÍX¹cäóû t—὿ŸÜ1òùýòê•­j^m½Œ±|ÐâÛu¸à¶7úwüF [ñu^±¼zÆX¨:àÊ%ô­,`jÀ”¦Ü0å†ò.Ôù_stŸSĺYçµ*¯’yõ7jó¬`êé}NëVd×ʬ Êm¹xËÅ[–œ^rzÉép7Õ6Ç}6ê\±nÅ×yÅþ ’§—œ^rz^mŒ±¹½®h¸Ys±nÅ×yÅŒ±PÕÀ+Nè[ÀÔ„o»øÛ¾/õ}©ïKe/ÚóèÚb³ß„»Yçµúƒ7ü½Ô÷¥¾/åuÖݨͳ‚cÜì7ánEÖy­Ì ªÇËc_ûòØò>Šê:âêkŸ:B¸»ôu^¥òj˜WXOclY§?œm¹MáîÒ×y•Œ±P=À+îÉ ONxr‚зr €©15ÿ¨ùGÍË»Œ³Þ{Mïr¹ˆ·¼u^Ÿòª—×V Xf·ôër¹ˆ·¼u^³€ê7ôƒ¡ ý ìØÛè¡-Ú·_g»Ò;þòÜÓ‚Þ?xìséyîé¼Je«—WUïÊc79¦ãnë—\ÐsæÝ§ zÿà±Ï=gÞÝqz^%c,TðŠ[¸×½î%ô­\`jØØ c'Œ-÷/;>ßpÐÑ=Û‹{—\ç5)¯by=õ+ŠqVðdܳ½¸wÉu^³€š27™›ÌMʇ[¯³ïÑCÎ÷–]ç•)¯nyUõ.`écl¿«OìÜb[qoÙu^c,T'peYò>`¡ïŠSÕ,*YTÒcxá=†ÿÁßMï³n«z³xà¨Sz÷ýæuÈkR¶Vy ózêW㬠áÅõfÿð@rHïޢ߼yMÌ jÖÔ£¦5õ¨ò>j/xü!7úþ÷¿?äâÆåÕ*¯¤T|Œ8îŠ`³žBßÿ¾ñwÜÁf=±PýÀ&0aÖÀYg ,o‚Òé즇6 þçÑŸôi±rF¿ù±çu(¯Jy õ%Š}VÐnãFáÏÿœrxŸ+gô›{^³€Â1¦É˜&cš”72oùÉðAW [™£ß¼åÕ'¯ž^,ß{èw7>ÝæÀ•9úÍ+`Œ…š"¦0 €) 3ÞžñöŒ·—¯lwçÇ»ôè7¯›þÀÊ4+h·q£pe»8?Þ¥G¿f5¦Çâ‹{ ºdÐ%ƒ.)7nxò»W´[é¢ß†'¿{E»òj’W,¯žN¬È{ð×÷Ûü±•-úÍÚ 5KLaSp‚[ƒ[ƒ[Ë›¸ä@^Þ œcy|ÎåµÒgXYg /®7{ex7p~Œå=ðÙ¬ p,h¼ ñ‚ÆÛOÚ~Òö“ʱÛì}Ä[g½Ú£ë¸«¦O*Úè·ë¸«¦OÊ´¼:äUÊ+¦ç•5Æî¹Ém’^xú›I§mŠ6ú=ýͤÓ6ù‘c¡€)L` ÔÄÕ&®6qµºK•õÞkz—Ë‹/úÍkéÇž×G?À¬àÿÍ né×åòâ‹~óã2+¨]~>ìçÃ~>¬ÛùÝÎïv~y£w³zo¹çÂî—ܲý”wŠ)úÍ(?ºòŽ=¯L^%½¨Š1¶Ëûuirúy;¾2¼Ã‹ÅýæG”1 ‡˜Â$¦ -ý¾ŸÜytm±Ùo¿®sÌë}&ÖÞÐ7o~,K?^÷÷`VPþ¬à˜7ûí×uþshŸ‰µ7ôÍÛŸ‹Y@í5ÿäù'Ï?y@·Ýt[úxÞáú‹¶ºû’ÚýæG±ô#Í«‘WFªgŒzÍ„ºíº×öè7? c,&0…IL-°ô·.)j½gïη׮è7osEŽÎ[ý`Yf7Öé|{íŠ~ó6›“ßüýÇß<­óiOë¼ô±½Å¤þïôÙ¶]nh_[Bß¼µyË—~tyòjè@õ±=ú–n|æÙ«?Ÿ´²¶„¾ykó–c¡ €)L`jYg œ5°ÇðÃ{ _ú¤§Ó䦧5zaúžûNï6hñÃCvéס€B߇‡ìÒ¯CÞ¶¼ÿÇôtxá=†çÇ®À²Ï ÚíÑè…é{ÞyM·A‹ž~i¿ú><ýÒ~ò¶åí4+(n¼ñÀ¼Q‘?ôÙl»ƒûrÀ¶nø{trÁ…¾nø{trÞŠK~ÔÎ>P8cì.¿¸¯ÕZg-xþñöOZè›·*o¡1j 0…IL-³¨dQÉ¢’±ÆN;¡"Ó g4˜½îíî_û[?5d·~j ô}jÈný:åmÈÛS‘–çǘ¯ó•1+ØèÈuoxð¥mÛߺø©é×ôëT¡ïSÓ¯é×)oCÞ³€•Íûo½ÿÖûo•ô+éWÒ¯"¿Z<¿K÷ìÜðÒúž¨©Ð7ß{Þ’Š´9?ºüHq ÇØ#¯·ñ蓦>õñV»ÖTè›ï=o‰1j#0…IL-öQóšÔ¼ïK}_êûRÝ ÛuHëKš<1aõþ·¿|õ°Á=_©Ü¸7ßf¾ý|_o[~,ùq9¿Põ³‚íwjòÄ„Õ/ß>þòÕ§>îùJ寽ù6óíçû2+ ·pÜÂq ÇÛdÜ&ã6©»ŒZ×Ýwðó:\sѦwŸ[%o󽿢Mï>7ß˲¶-?¢üèœe 6ޱý®;qÛ݇^6aõv]«äm¾—MX½]×|/ÆX(` “˜ÚoÎâ9‹çL¹aÊ Snhõ^«÷Z½Ww¹tZ»iÇFãOٸõ­»ÜøŸÞ·,y|·]ÏîðTtížÇw~*ûiï:]&æÿοžOþýùÏ.ß~ó6çíÏÅ)€šž”Lk4þ”~®u—ÿsö+[–<¾Û˜U;<]{ãQŸÊ~ºeF—‰ù¿ó¯çß“þ³f,ﯟæü4ç§‘ÍF6Ù¬î hòõ¶“v:xÓ^´;á ’ÇÿuÔ„­JϨsí§ÛìwNã›Ì×ùWòÿšgþS+²ß¼åùQ8›@±Ž±Û±Ë¯^°óe÷ì:ð°+úo¶ÅákÝ:d‹:G¯r÷>mË×ùWòÿšgþSÆX(n` “˜â²Ñâo4íºi×M»®ïª}Wí»jÝ‚”·-ogÞf§Ì Ì ˜ÝrvËÙ-Ç\3æš1×Ô-`y óÖ:k€1Ö +30…IL‘ûr­/×úr­ëg]?ëúYÞhôF£«Ò–ï7oCÞçÌ Ì XºEG/:zÑÑSK§–N-4fИAcj*ŠÈ÷ž·$o•³c±@NLa³Ò™uê¬Sg:yÿÉûOÞÿÔ{O½÷Ô{[^Ýòê–W¯øt-ßN¾Í|ûù¾ÔÌ Ì Xq¿Ïû}ÞïófÆ3ã™ñõo¬cýW¸zÀÕ•Bä[Ë·œï%ߣÊÆXc,µ‹þÓ.žvñ´‹³_³_³_ó« ˜˜PøfM›5mÖ´©éÿ¿ä_Qc,ÅM P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀE¢Zà)«OY}ÊêuVyN*¨õÀEb¥ €ó¯OYuʪSV²Ê”U¦¬’-Êe‹²…ÙÂlaö[ö[ö[¶ [-È~É~É~Éægó³ùÙOÙOÙOÙ¼l^6/û!û!û!››ÍÍæfßgßgßg³³ÙÙìì»ì»ì»lV6+›•}“}“}“}•}•}•}™}™}™}ž}ž}ž}–}–}–}’}’}’}œ}œ}œ}˜}˜}˜}}}½—½—½—½›½›½›½“½“½“½•½•½•½™½™½™ÍÌff3³×³×³×³W³W³W³ÙŒlFöröröröRöRöRöBöBöB6=›žMϞ˞˞˞ͦ͞͞eÓ²iÙÔlj65›’Mɦdi–fi–dI–dQeQfaf¥YiVš=“=“=“MÎ&g“³§²§²§²'³'³'³‰ÙÄlböDöDöDöxöxöxöXöXöXöHöHöH6!›MÈÊÊÊÌÌÌîÏîÏîÏîËîËîËîÉîÉîÉÆgã³ñÙ]Ù]Ù]ÙÙÙÙÙÙÙíÙíÙíÙmÙmÙmÙ-Ù-Ù-ÙÍÙÍÙÍÙÙÙÙ Ù Ù ÙõÙõÙõÙuÙuÙuÙ5Ù5Ù5ÙÕÙÕÙÕٕٕٕ٘lL6&»<»<»<»,»,»,ûWö¯ì_Ù%Ù%Ù%Ùèlt6:•ÊFeÿÌþ™ý3»(»(»(»0»0»0™ÌFfçgçgçgçfçfçfçdçdçdgegegegfgfgfgdgdgd§g§g§góáÙðìÔìÔìÔìäìäìäì¤ì¤ì¤ìÄìÄìÄlX6,–ŸŸŸ ͆fC³!ÙlHvlvlvlvLvLvLvTvTvTvdvdvdvxvxvxvXvXvXvhvhvhvHvHvHvPvPvPv`v`v`v@v@v@¶¶¶¶_¶_¶_¶O¶O¶O¶w¶w¶w¶g¶g¶g¶G¶G¶G¶[¶[¶[6  ÈvÉvÉvÉúgý³þÙNÙNÙNÙŽÙŽÙŽY߬oÖ7ë“õÉúd½²^Y¯l‡l‡l‡¬gÖ3ë™õÈzd=²í²í²í²m³m³m³nY·¬[Ö%ë’uÉ:g³ÎYǬcÖ1ëuÈ:dÛdÛdÛd[g[g[g[f[f[fí²vY»¬mÖ6k›m‘m‘m‘mžmžmžm–m–m–mšmšmšm’m’m’µÊZe­²Y‹¬EÖý>ý>“ÎIç¤ß¥ß¥ß¥ß¦ß¦ß¦ß¤ß¤ß¤_§_§_§_¦_¦_¦_¤_¤_¤Ÿ¥Ÿ¥Ÿ¥Ÿ¦Ÿ¦Ÿ¦§§§¥¥¥¤¤¤ï§ï§ï§ï¦ï¦ï¦ï¤ï¤ï¤o¥o¥o¥o¦o¦o¦3Ó™éÌôõôõôõôµôµôµtF:#‘¾’¾’¾’¾”¾”¾”¾˜¾˜¾˜NO§§ÓÓçÓçÓçÓgÓgÓgÓié´tZ:5šNM§¤SÒ)i.I“4I£4J£4LÃ4LKÓÒ´4}&}&}&œNN'§O¥O¥O¥O¦O¦O¦Ó‰éÄô‰ô‰ô‰ôñôñôñô±ô±ô±ô‘ô‘ô‘tB:!>”>”>”>˜>˜>˜ÞŸÞŸÞŸÞ—Þ—Þ—Þ“Þ“Þ“ŽOǧãÓ»Ò»Ò»Ò;Ó;Ó;Ó;Ò;Ò;ÒÛÓÛÓÛÓ[Ó[Ó[Ó[Ò[Ò[Ò›Ò›Ò›ÒÓÓÓ±éØtlz}z}z}zmzmzmzMzMzMzuzuzuzezeze:&“ŽI/O/O/O/K/K/Kÿ•þ+ýWzIzIzIzqzqzq:*•ŽJÿ‘þ#ýGzQzQzQzAzAzA:2™ŽLÏKÏKÏKÏMÏMÏMÏNÏNÏNÏJÏJÏJG¤#Òééééiéiéiéðtx:<=%=%=%=9=9=9=1=1=1=!=!=!–K‡¥Ç¥Ç¥Ç¥CÓ¡éÐtp:8œ›››•••‘‘‘žžžJ¥ƒÒCÓCÓCÓƒÓƒÓƒÓƒÒƒÒƒÒÒÒÒéÀt`º_º_º_ºoºoºoºwºwºwºWºWºWºGºGºGº{º{º{: HwMwMwMû§ýÓþéÎéÎéÎéŽéŽéŽi¿´_Ú/í›öMû¦½ÓÞiï´WÚ+í•öL{¦=ÓíÓíÓíÓíÒíÒíÒîi÷´{Ú-í–vK»¦]Ó®iç´sÚ9í”vJ;¥Òi‡´}Ú>mŸnnnn•n•n•¶KÛ¥íÒ’´$-I·H·H·HÛ¤mÒ6éféféfé¦é¦é¦é&é&é&i«´UÚ*m‘¶H[¤ÍÓæiótãtãtã´iÚ4mšn”n”n”n˜n˜n˜6N§ÓFi£´Qº~º~º~Ú m6H×K×K×Kë§õÓúi½´^Z/]']']'­“ÖIë¤Kÿ–þ-];];];]+]+]+]3]3]3]#]#]#ýsúçôÏéêéêéêéjéjéjé*é*é*Éâdq²8Y˜,L&¿'¿'¿' ’É‚ä×ä×ä×d~2?™ŸüœüœüœÌKæ%ó’“““¹ÉÜdnò}ò}ò}2;™ÌN¾K¾K¾Kf%³’YÉ7É7É7ÉWÉWÉWÉ—É—É—ÉçÉçÉçÉgÉgÉgɧɧɧÉÇÉÇÉÇÉGÉGÉGÉÉÉÉûÉûÉûɻɻɻÉ;É;É;É[É[É[ɛɛɛÉÌdf23y=y=y=y5y5y5™‘ÌHf$/'/'/'/%/%/%/$/$/$Ó“éÉôä¹ä¹ä¹äÙäÙäÙä?É’ÿ$S“©ÉÔ|RIœÄIœDI”DII”&¥Iiòtòtòt29™œLN&%“’Iɓɓɓɿ“'ÿNžHžHžHKKKMMM&$’ ÉÃÉÃÉÃɃɃɃÉÉÉÉ}É}É}ɽɽɽɸd|2>¹;¹;¹;¹3¹3¹3—ŒKÆ%w$w$w$·%·%·%·&·&·&7'7'7'7%7%7%7$7$7$c“±ÉØäºäºäºäÚäÚäÚäêäêäêäªäªäªdL2&“\‘\‘\‘\–\–\–\š\š\š\’\’\’ŒNF'£“QɨdTòÏäŸÉ?“‹’‹’‹’ “ “ “‘ÉÈddr~r~r~rnrnrnrNrNrNrVrVrVrfrfrfrFrFrFrzrzrz2<ž ONMNMNMNNNNNNNJNJNJNHNHNH†%Ã’aÉqÉqÉqÉÐdh24œ N'Ç&Ç&Ç&G'G'G'G%G%G%G$G$G$‡'‡'‡'ƒ’AÉ äÐäÐäÐäàäàäàä ä ä ä€ä€ä€d`20˜ì—ì—ì—ì›ì›ì›ìììì•ì•ì•ì‘ì‘ì‘ìžìžìž H$’]“]“]“þIÿ¤²s²s²s²c²c²cÒ/é—ôKú$}’>Iï¤wÒ;Ù!Ù!Ù!é™ôLz&Û'Û'Û'Û%Û%Û%Ý“îI÷¤[Ò-é–tMº&]“ÎIç¤sÒ)é”tJ:$’Iû¤}Ò>Ù:Ù:Ù:Ù*Ù*Ù*i—´KÚ%%IIR’l‘l‘l‘´IÚ$m’Í’Í’Í’M“M“M“M’M’M’VI«¤UÒ"i‘´Hš'Í“æÉÆÉÆÉÆIÓ¤iÒ4Ù(Ù(Ù(Ù0Ù0Ù0iœ4N'’FI£¤aÒ0i˜4H$ ’u“u“u“úIý¤~R7©›ÔMÖIÖIÖIþžü=ù{ò·äoÉß’¿&Mþ𬕬•¬•ü%ùKò—dddäOÉŸ’?%«'«'«'«&«&«&«$«$«Ä‹âEñ¢xa¼0^ÿÿÿ/ˆÄ â_â_â_âùñüx~üSüSüS?>?>?>7>7>7>'>'>'>+>+>+>3>3>3>#>#>#>=>=>=‡Ç§Æ§Æ§Æ'Ç'Ç'Ç'Å'Å'Å'Ä'Ä'ÄÃâañ°ø¸ø¸ø¸xh<4Žǃãcãcãcã£ã£ã£ã£â£â£â#â#â#âÃãÃãÃãAñ xP|h|h|h|p|p|p|`|`|`|@|@|@¼¼¼¼_¼_¼_¼O¼O¼O¼w¼w¼w¼g¼g¼g¼G¼G¼G¼[¼[¼[< ˆw‰w‰w‰ûÇýãþñNñNñNñŽñŽñŽq߸oÜ7î÷‰ûĽâ^q¯x‡x‡x‡xûxûxû¸GÜ#îw»ÇÝãmãmãmã®q׸kÜ%îw‰;ÅâNqǸcÜ1n·ÛÇÛÄÛÄÛÄ[Å[Å[Å[Æ[Æ[Æ%qI\·ÛÆmã6q›¸M¼y¼y¼y¼i¼i¼iÜ:n·Ž[Å­âVq˸eÜ2n7›ÇÍâfq³¸iÜ4n7‰›ÄMâ ã ã ã â â âFq£¸Q¼~¼~¼~Ü n7ˆ×‹×‹×‹ëÇõãúq½¸^\/^'^'^'®׉ëÄ‹ÿÿ-^;^;^;^+^+^+^3^3^3^#^#^#þsüçøÏñêñêñêñjñjñjñ*ñ*ñ*Ñâhq´8Z-ŒF¿G¿G¿G ¢Ñ‚è×è×è×h~4?šýýýÍ‹æEó¢¢¢¢¹ÑÜhn4'š͉fG³£ÙѷѷѷѬhV4+ú:ú:ú:ú*ú*ú*ú"ú"ú"ú<ú<ú<ú4ú4ú4ú$ú$ú$ú(ú(ú(ú0ú0ú0z?z?z?z/z/z/z'z'z'z;z;z;z3z3z3z#z#z#z=z=z=z-z-z-š͈fD¯D¯D¯D/E/E/E/F/F/FÓ£éÑôèùèùèùèÙèÙèÙhZ4-šM¦FS£)Ñ”hJ>ýÏíG¹0 £0*J£Òè™è™è™hr49š======ý;úwôïè‰è‰è‰è±è±è±èÑèÑèÑhB4!š=========ÝÝÝÝÝÝÆG㣻£»£»£;£;£;£qѸh\t{t{t{t[t[t[tKtKtKtstststctctctCtCtCt}t}t}t]t]t]tMtMtMtutututetete4&‰....‹.‹.‹þý+úWtItItItqtqtq4*Šþý#úGtQtQtQtAtAtAt~t~t~t^t^t^tNtNtNtvtvtvtftftf4"ˆNNNN‹N‹N‹NNNN‰N‰N‰NŠNŠNŠNŒNŒNŒ†EâaÑñÑñÑñÑÐhh44 ‰†DÇFÇFÇFÇDÇDÇDGEGEGEGFGFGF‡G‡G‡G‡E‡E‡E‡F‡F‡F‡D‡D‡DEEEFFF£ÑÀhÿhÿhÿhßhßhßhŸhŸhŸh¯h¯h¯hhhh÷h÷h÷h@4 íííõúGý£££££££~Q¿¨_Ô'êõ‰zG½£ÞÑÑÑQϨgÔ3êõˆzDÛEÛEÛEÛFÛFÛFÝ¢nQ·¨KÔ%êuŽ:G£ŽQǨcÔ!êuˆ¶‰¶‰¶‰¶Ž¶Ž¶Ž¶Œ¶Œ¶ŒÚEí¢vQÛ¨mÔ6Ú"Ú"Ú"Ú<Ú<Ú<Ú4Ú4Ú4jµŽZG­¢VQ«¨eÔ2j5šGÍ£fQ³¨YÔ4j5šDM¢&цццÑÑÑQ£¨QÔ(Z?Z?Z?j5ˆDëEëEëEõ£úQý¨^T/ª­­­Õ‰êDu¢¿E‹þ­­­­­­­­­­­­ý9úsôçhõhõhõhÕhÕhÕh•h•h•pQ¸(\. † ÃßÂßÂßÂá‚pAøKøKøK8?œÎ   ç…óÂyááááÜpn87œΠ焳ÃÙáìðÛðÛðÛpV8+œ~~~~~~~~~~~~~~~~~~~~~~~~¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾Î g†3Ã×Ã×Ã×ÃWÃWÃWÃáŒpFørørørøRøRøRøBøBøB8=œNŸ Ÿ Ÿ Ÿ Ÿ Ÿ ÿþ'üO85œNÍ?üËÿw?ÿ%æ‚0ƒð™ð™ð™ðéðéðéð©ð©ð©pR8)œN '†Ã‡ÿÿ>>>>>>>>>N'„‡‡‡ÂÃÃÃûÃûÃûÃûÂûÂûÂ{Â{Â{Âñáøp|xWxWxW8.Ž ïïïo o o o o o oooo o o ooodžcñáuáuáuáµáµáµáÕáÕáÕáUáUáUá˜pL8&¼"¼"¼"¼,¼,¼,¼4¼4¼4¼$¼$¼$ŽG‡£ÂQá¨ðá?„………„„„#ÑáÈð¼ð¼ð¼ðÜðÜðÜðìðìðìð¬ð¬ð¬pD8"žžžžžž‡‡ÃÃSÂSÂS“ÓÓÃÃÃÃÂÂÂãÃãÃãÃãÂãÂãÂ!ápHxlxlxlxLxLxLxTxTxTxdxdxdxxxxxxxXxXxXxhxhxhxHxHxHxPxPxPx`x`x`80 ÷÷÷÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ www„Âá®á®á®aÿ°Ø?Ü9Ü9Ü9Ü1Ü1Ü1ìö û…}Â>aŸ°wØ;ìîîîö {†=Ãa°G¸]¸]¸]¸m¸m¸mØ-ìv »„]Â.aç°sØ9ìv ;†íÃöaûp›p›p›p«p«p«pËpËp˰$, K¶aÛ°mØ&l¶ 7777 7 7 [‡­ÃÖa«°UØ*l¶ [†ÍÃæaó°YØ,l6 ›†MÃ&a“°I¸a¸a¸aØ8l6…ÂFaðaØ0l6„ë†ë†ë†õÃúaý°nX7¬®®®þ=ü{ø÷ðoáß¿… ÿþ5\+\+\+üKø—ð/ááááŸÂ?… W W W W W W ‹ƒÅÁ¢`Q°(ø=ø=ø=ø-ø-ø-ø5ø5ø5ø%ø%ø%ø9ø9ø9ø)ø)ø)ø1ø1ø1ø!ø!ø!ø>ø>ø>˜Ì æßßß³‚YÁ¬à›à›à›à«à«à«àËàËàËàóàóàóà³à³à³à“à“à“àãàãàãàÃàÃàÃàƒàƒàƒà½à½à½àÝàÝàÝàíàíàíà­à­à­ààààõàõàõàµàµàµ`F0#˜¼¼¼¼¼¼¼¼¼L¦ÓƒçƒçƒçƒgƒgƒgƒiÁ´`Z05˜L ¦S‚)A¤AÄAÄADAäJƒÒ 4x:x:x:˜L&“‚IÁ¤àÉàÉàÉàßÁ¿ƒOOO‚ Á„àáàáàáàÁàÁàÁàþàþàþà¾à¾à¾àžàžàž`|0>ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜŒ Æcƒë‚ë‚ë‚kƒkƒkƒ«ƒ«ƒ«ƒ«‚«‚«‚1Á˜`LpEpEpEpYpYpYpipipipIpIpI0:ŒF£‚QÁ?ƒÿ . . . ...F#ƒ‘ÁyÁyÁyÁ¹Á¹Á¹ÁÙÁÙÁÙÁYÁYÁYÁˆ`D0"8#8#8#8-8-8- †§§§''''''ÂaÁ°àøàøàø`h04 †C‚cƒcƒcƒc‚c‚c‚£‚£‚£‚#ƒ#ƒ#ƒÃƒÃƒÃƒÃ‚ÂÂCƒCƒCƒC‚C‚C‚ƒ‚ƒ‚ƒ‚‚‚‚ÁÀ``°_°_°_°o°o°o°w°w°w°W°W°W°G°G°G°{°{°{0  v v v úýƒþÁNÁNÁNÁŽÁŽÁŽAß oÐ7èô ú½‚^A¯`‡`‡`‡`û`û`û GÐ#ètº݃mƒmƒmƒ®A× kÐ%èt :‚NA‡ CÐ!h´Ú[[[[[[í‚vA» $( J‚-‚-‚-‚6A› M°Y°Y°Y°i°i°i°I°I°IÐ2h´ Z-‚A³ YÐ,Ø8Ø8Ø8h4 šƒÆAã`ý`ý`ý aÐ0h¬¬¬ÔêõƒzA½ ^°N°N°NP'¨Ô þü-ø[°v°v°v°V°V°V°f°f°f°F°F°FðçàÏÁŸƒÕƒÕƒÕƒÕ‚Õ‚Õ‚U‚U‚UJ•.*]Tº°taéÂÒßJ+ý­tAé‚Ò¥¿”þRúKéüÒù¥óK*ý©ô§Òy¥óJç•þPúCé¥sKç–Î-S:§tNéw¥ß•~Wúm鷥ߖ~SúMé7¥_—~]úué—¥_–~YúEé¥_”~VúYég¥Ÿ–~ZúiéÇ¥—~\úQéG¥•~PúAé¥ï•¾Wú^黥[úvéÛ¥o—¾UúVé[¥o”¾QúFéÌÒ™¥3K_+}­ôµÒWK_-}µô•ÒWJ_)}¹ôåÒ—K_,}±ôÅÒé¥ÓK§—>_ú|éó¥Ï–>[úlé´Òi¥ÓJ§–N-Z:¥tJé”ücûüãº|Ú.®Ö¨ …‡ €*X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€ÀÀÕ]*ítìPÖ—£¿ýåè·ø¸ÅÇy?l¶N³uš­3÷“¹ŸÌý¤¶]~ùåG—i~ÔÎ>&°ø/°s·¨É¢&‹šì²ÿ.ûï²ÿ’ýpLÃ1 Ç4\ñíçáëƒôÀ #Þ?âý#ÞïwW¿»úݵe“-›lÙ¤ÑèF£ÞðÀ ÜðÀ’mK¶-Ù¶ïã}ïûø¹Ïíxnǧ}úЧ]ØvaÛ…mW¼%—w¸¼Ãå–<Æ]wÚu§]wÊ+ '@¡ €€ÿ;GPq£GŽ9zä’=°UÖ*k•­Hoüê̯ÎüêÌ<î­[Iî˜Çü;æ/®³¸Îâ:ËתyçMœ7Ñuµ…X ü—Ø9¢vé“,m©ºý¾yÉ›—¼yIÙxý­×ßzý­Ë·ÍñŽpüƒu«Øwí¾k÷]»åká5Ï_óü5Ï/¹µõ¦¬7e½)®>(4`0ð_`çˆbêUÒ+ê,®³¸ÎΧí|ÚΧ-¹—ÍGl>bóË·ÇüݺբÓÝîît÷œuæ¬3gemçü‹ç_<ÿâ²ÛÌ‚­7@á €€ÿª-áâ1w,mqŽpÍV]¯(ï>ÝÛZÝÖê¶V˺µÒž¥=K{.½ýõ?­ÿiýO~Àð†ÿ{ò¿'ÿ{òÍ>höA³_‡ü:ä×!ßn÷ívßn—M˦eÓÎ<åÌS·{ø·‡»¬Û\ÔdQ“EM\P˜À`¨aù%'´œÐrBËááðpxØû•Þ¯ô~%W6§ï9}Ïé­­­û{÷ß»ÿÞ}e¸N+Þ*«Wô\ØsaÏ…e·|þúç¯þú˺µ§Î}êܧÎ-¯µ#×¹æÈ5+·J/lÿÂö/l_Þ»Œê2ªË¨å«ÕÙûœ½ÏÙû”ÝfŸ¤OÒ'ñÛ jŠX 5`ÞÄyçMÌ㓺+¬ÞªõV­·jþïVýhÕV]¾VU]Œ”?uï—÷~yï—ËÛ~×Ó»žÞõôo·ûv»o·«êvV<6ûqÊS~œrÌÇÜqÌ+rŽÞ:ë­³Þ:kÅ{N­€ë,®³¸N£î0{‡Ù;Ì®[©®{躇®{¨²À[8×iåV©âû}©ùKÍ_j^ÞvfÞ7ó¾™÷-kUó8¼¼m>öÅc_<öEåvºïWù~•ïW)oÍÖi¶N³u–ï Êÿ|Á}ÀPhÀ`¨V¯üøÊ¯ü¸ä£S+W£ÑF7½|ÁCUÄ \pà‚÷}lßÇö}léwàU$ú­¬vV¤’ïüÎÁïœßǹâç%¿‡uÅ¡Ú5Íýdî's?xÑÀ‹^T·Zäï-Žë´¦àSÞ;å½SÞ+»…m>Úæ£m>Z¾^·ô@½*î›ÿáµ^ûáµòö˜ßÁ¿"WPy[Îï÷[ªŸX Õ¤"÷ŠU–å‹4*7\Ì£ßý¯Þÿêý¯^zô;k×Y»ÎÚµ:ÛY‘.ù.ÒÊRï‡z?Ôû¡*¢¦B€óûhó;¼ëV£]wÚu§]wÊï9®í×iõÀKÇíà _8øÂåë'6:±Ñ‰ÊÛò×C¿úõÐÊí/×¹þËõËÛãfovñf¯ÈTÞV|ËÀò € ÊåQhE°¯ÝñÚ¯}`ЃôêÌWg¾:3xi~[þÀÕ‡·yx›‡·Éß?ºô­m×m»nÛu˃œŠ´³²ÂÅßvùm—ßv9`øÃ^ÞÖ:_×ùºÎ×-kô[Yí\¾Ølµ÷X{µÿ=ùß“ÿ=ù‹±_Œýblþ^Ø÷·|Ë÷·¼½Áí noÐíØnÇv;véÛÉß[8wiWµ“œ´à¤Koy‹[|Üâã‹Ç\<æâ1Ó.vé´K?úá£>úá—¿ŒøeD~wøkÿyí?¯ýç¡Úá¡vßp÷ wßpɇ*¯xe ù:Ôø—¥o¹¼ŸªH5ò³PÞ–oéuK¯[z-_Èÿ ¿?»ìR=ðÆ“n<鯓Ê;–%M¿|Û¿éð›¿ép‚€Â!@•»÷ò{/¿÷ò¥ßšÇE•{Ïn寢ÙBý´ßAû´_yÛétw§»;ÝýÍAßôÍAËWÏê €ëZÿÓúŸÞÖê¶V·µªÈöïþ{÷ß»WdË»µÙ­ÍnmªÿØ«SÜ.½Íe ½¬ÕX2P/k¿;÷»s¿;‹é:­žþpNßsúžÓ·¶‡šùõØ®m»¶íÚ–w×<Íó×<¿"{É[]ÞöóG^û=ÕI,€*·O¼O¼O\^<0zäè‘£G.g RgqÅu–ÒäANE6¶"aO´¼ãÁ;¼cÕE¿+ÞΊlaIKÞ;X¹í\‘ȳ¶ra‹°EØ¢¼Ö.ù~åªëK¾Ç·8®Óêé=ÿÞóï=ÿ^v›ë]ìúckK|å_®üË•)¯>ÍWi¾JóU~œòã”§¬È^ò{ÇËÛK~¸ßƒPÀ`¨r[°Å[P^<ðÆoÜøÆ+²ýοáüÎ/oûùý¸ÙÎò…Iyô»ôÒv|¢ãŸ¨¬·{VOœß¡»"A×¶ Û.l[‘‡ôVç±W§±WŒ½bìåµvLÃ1 Ç4\ñ½¼}ÜÛǽ}\y{Y÷µu_[÷µŠÔ§¶\§UÝòG4—·Í~wõ»«ß]…?²Þ#ë=²ÞÒësy‡Ë;\Þ¡²Ž¥*ù,°ªÜÒQ;g9ëÌYgE¶ÿaÝë~Xw䯼ä/®Èv–5LÊ£ßÃþzØ_ûëÒïò¬¬èwùÚ¹¬[Ƚ°ý Û¿°ýŠ·vÒe“.›tYy{ixOÃ{ÞSé®N§M8mÂiò{FË.¯¬öÊj¯¬V »©Àýµ©Om¹N«º?DëFëF떷ͳŽ<ëȳŽ,С¶Îâ:‹ë,ýÏrmû·íß¶å^5g\yÆ•g\éMÀPÀ`¨r7ݸéÆMË‹ò·ŠB;+]ä÷¶þíáßþmyßß~Fûíg|uæWg~ufMµsù¶·¼²›EM5YÔ¤pÞÓ\|~¾þçë¾~Å+\[®Óªîù;q—þPôB«Ãç÷~~ïç÷îõÁ^ìõÁÒkÒòÕ–¯¶|õÝïxw@å¶áú[¯¿õú[ËÛoKûmÕC,€*·Ãìfï0»¼` I÷&Ý›t/„¯"aRýùÒ‘/ùRyß™i_Žþrô—£kª+²…‘kŽ\säšÕÙæ>üχÿùpõ{ñyf÷gvf÷€kËuZÕýá¤'-8iAyÛ|p÷xpB8öùÏ¿xþÅ—œ|ÉÉ—œ\‘³ŸŸÁW~|åÇW~¬Šóxßy÷wßyåí}x8<úmÕC,€*÷¯#þuÄ¿Ž¨[a“‡M6yXoTg;—ÞªüNÖ£=úÑ£­ø±T;W| þùÑ??úçÊmó=·ÜsË=·”·Ç}Û÷±}«žc/¿íòÛ.¿í’ß•Ûâã·øxÅ{cm¹N«º? è: ë€®åm³´giÏÒž5{öóó¾ôw6—½§ÿ¥æ/5©yÕ])Oúô¡OZ^öø}ß÷øÝoC¨`0T¹¹ŸÌýdî'uWÀe½/ë}YïlZ6-›–?ð¶*Ú¹ô6{Õ±W{UÅÛÜ®m»¶íÚVEhöA³š•תÍ.ÞìâÍ.@õ € ZåAà!]érH—üµÊ¸F=rôÈü^ÆemÛ²î뤵NZ뤵–þ=ëMYoÊzS*7ö¨êxÁ \p`åž÷ü~Ðòö¸Ñ.í²Ñ.Åça^þ¶ãÊíóF7Ýhtå>¼¯ÓªîÏl|fãrÿXaÅÛ\Ïòü!ÏR²mɶ%ÛV¤ž›Ø|Äæ#î|ëηî|«¦®…9ëÌYgÎ:+~+N,€“ÏÆÏíxnÇs;æo©¬©»—lO…¢ß'-8iÁ’Û_ú÷ï|ÚΧí|Úâ:‹ë,®SYu«]p¾ÍÉkcÏ‹çÅóZo=¾õøéÉy0¹]·íºm×í˜;޹ã˜;&´œÐrB˪~#u¡]§UÝêýPï‡z?”·ÍüÝU×[®úúª¯¯úº"kZÒ´¤iɘ†cŽiXý?/uy­­ÿiýOë*€ê!@AXr~~å/Wþrå/ºè: ëÒïÆ«Üxiù¢ßÜgO~öägOn0tƒ¡ ­ê²6>úÛí¾ÝîÛíÊÛã’®êc¯NùCž+ÞKóÇäºù¡›ºùÕï\ýÎÕï[[[Wä«.d-´ë´ªûÃ’÷ª–õ]»ïÚ}×®’;JÅuׇ‡ÿÇ›}¨÷C½ò·AZÏÏ+S^Ë›toÒ½Iw0T° Ú’óökž¿æùkž?`øÃ^ñÀiÉwôV|_e<ëäY'ÏZ‘®ùÜæs›Ï]ñxµªàw~çàw®Üó˜¿ÿµ¼=vH;¤Òb €ó;ž7½~Óë7½~éaÞa=쯇ýõõI¯Oz}RÕE¡U]Ÿê¼N«º?,ù¶Ú²Þðî€wTnõ–ü³’òt|¢ãŸxîøçŽîøÂŒQóʬø{¾€'@­´ä|~«Å[-Þêÿˆ‚θòŒ+ϸ²âÛüƒ0©pλôíßïø~Ç÷«¬c¯ŠøÑŸýùÑŸ+÷|=¼ÍÃÛ<¼ÍÒ‘]LðÝOßýôÝO/=úgï³ô-O6yØäaÕyìÕ£ûÎÝwî¾syí¼tïK÷¾tïÙþwí¾k÷]»>IŸ¤O²âç±v]§ïùŸ ,k ¸àÀ–·ÍüÌ®HtÐu@ײ[n|fã3ŸY{ß’[^Ÿ_¾?sV„X U©Îâ:‹ë,=¤ÙôúM¯ßôúgÏ~öìgÏ^ÖÍçQÍÒßÙ™›zÿÔû§Þ¿ô­U]ôõî€w¼; ÁÄL¬êøvÅ·°¤u_[÷µu_«ø–ó·Ÿ×ú¼Öçµ^ú–—ŒÁ*^É¥o3xou.åµóüõÏ_ÿüõËkçzSÖ›²Þ”åëWOúô¡OÚfp›ÁmWZ_«®ÓŠ÷‡üéå»f+ë¡å¯s“îMº7éžÿ{ÿ««{Y‘ñí§ñ?ÿi|å^éÀŠ € ÊÝ1ÿŽùwÌ_zTSoÕz«Ö[5ÿ÷=·ÜsË=·ä¡éS~œòã”_‡ü:ä×!ýðÑý0å©)OMyjÔm£nu[ëñ­Ç·¿ô-þíáßþmE⇪¾÷qéÛß|Äæ#6‘oU·³î xòæ'o~òæ¯Îüê̯ÎüeÄ/#~ñaÝë~X÷Ž5îXãŽ5ºÛíØnÇ.} ùûqßßòý-ßß²rkXSʶóƒß9øƒ—ŒÏÿ ÏÿPï‡z?äÿŽÿÿ)þSÞÃó¸tvÓÙMg7Í}ÝC×=tÝCK¾¶¼ª.½4û ÙÍÊ»/¶¶\§ï§M8mÂiò·qçmËß¿[‘-_rò%'_rråŽ yejK®¸<¶/oËÿ:â_Güë¿ : €ÀPåòÀ©ú#ü‘¤sÖ™³Îœu*ÒΪ€ó¸tÅØª€óЮ*ÎHˆ>ñìÏ>ñìòUµv…gU½ß †n0tƒ¡þùÑ??úçeýÙǾxì‹Ç¾¨×ieUxé[~ãÆ7n|ãÆÊ¢u£u£u‹/¾ê뫾¾êëò¶üæ%o^òæ%~@u € šü|ýÏ×ÿ|}õ„ûÄûÄûÄs?™ûÉÜO*ÞÂêy¿lØ"l¶X‘ÌVÏC¤+÷Œäï7ÍCÇ©gí ϶]ØvaÛªØc§»;ÝÝéî™÷ͼoæ}ùWÜãÁ=ÜcEàÚr.霾çô=§oÕEžåýì¡›ºù¡›/kkôÀ _œW£ì6;¤Ò©‡?@õ € z-ñ̶ýÛöoÛ¿²Œí7Ú~£í7ªº»K+· Kß׳w˜½ÃìòÕ[oο²U­êlUgùÎË^ìõÁ^,ùðÛª«[†gKôù¦%MKš–,ß^Z¾ÚòÕ–¯ÞÒë–^·ôúƒýVà=¾ € ÿ:]Òü‹ç_<ÿ⪋0ñ‰”½Ròzçw]¯l5ùuȯC~’ß¹^¶2OûÔ¹O«ç@M €€•Ž*.·«fIù;¤Ë֡۱ݎív¬‘j–X ¬tDY°¬ýùÑŸý¹ìõrÐ~íwÐ~+[5ò£.['ž}âÙ'žÕ[ f €ÀÀJG ˬÎâ:‹ë”½^Ll0±ÁÄ•çÚ™³Îœuæ¬S¶ÛuÛ®ÛvÝŒ!PÀ``¥#†åÿ)þSü§•ùÚuÛ¨ÛFÝVöØãyñ¼xž…@,V:`¨Ü+h£]6Úe£]¾k÷]»ïÚëQÏn:»éì¦ù‘.yìGEGEGEF(`0°ÒÊøê̯ÎüêÌ&Ý›toÒ}幂Îk}^ëóZ/y¤MKš–4-ùzè×C¿ªW@á €€•Žªâ:j4ºÑèF£‹/ͨñ™Ïl|æ’Ç{ÿ‰÷Ÿxÿ‰Æ (4`0°ÒCU_MÅtŒ§ß~úí§ß¾äÑ =jèQC2b@a €€•ÎÈ_—¶¨TÜOãÿÓøü³…íºm×m»n½_éýJïWŠ#ûÉÜOæ~²äÑí±ökï±¶è ™X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!þ¯lj…—ÿÔÐ2­†–gkhy®†–ç«}™^CË 5´¼XCËK5´¼\CË+5´Ì¨¡åÕZ^«¡åõj_fÖÐòF -oÖÐòV -o×ÐòN -ïÖÐò^ -ï×ÐòA -ÖÐòQµ/×ÐòI -ŸÖÐòY -Ÿ×ÐòE -_ÖÐòU -_×ÐòM -³jhù¶†–ïª}™]CËœZ¾¯¡en -?ÔÐòc -ójhù©†–Ÿkh™_CË/5´üZCË‚Z~«öå÷ZÖв¨†–Å5³LY¥†–UkhY­†–Õ«j-0@‘(Ú8ç+¢ €gí>k÷Y»gSªl™ZC‹w{±·þÛˆWž÷¯½_¿Ê]ç[Î÷bŒ…â ¦0 €ªÉûo½ÿÖûo•ô+éWÒ¯"÷Ÿ|`‡]Z¯ýÎË]¹Ý‡U÷Vdï=oIEÚœ]~¤Î8PØcìÁ[¶^û—'<±Ý‡U÷Vdï=o‰1j#0…I Påxã7x£"î_>¡Ç›mOù¾Ó‘£{M¬©Ð·¼uÞª¼…9–ü¨} ÆØSh{Ê÷¢“{M¬©Ð·¼uÞª¼…ÆX¨-À&0@•øýÇßüýÇÓ:ŸÖù´ÎKÿÿ¤6Ýäçïw:rL¯É…ú–ïtä˜^“ó–/ýèò äÕÐ+€šcúl“Ÿ¿ß):¿×äB }Ë ƒwŠÎï59o¹1 ™˜Â$¨dóOžòü“tÐm@·¥pÿâ«û=ÝíûÚú–ûæàW÷{ºÛ÷K?Ò¼yeô ºÆØ»/éö}m }Ë}sð«w_bŒ…B%¦0 €*Íχý|ØÏ‡u;¿ÛùÝÎ/ïcú£öÚò¤–Ìov̆}úÖöèwÉu~DùÑ•wìyeò*é-@ÕŒ±{.l¹ÁüfSÞéÓ·¶G¿K®ó#ÊÎ …CLaT‚4^ÐxûIÛOÚ~RyÍßpa¯Û}¶øó!ƒúõ,¦è÷ÖŸÔ¯g~¤åÕ!¯R^1=¨¼1ö¬WÛ}¶øóé“úõ,¦è÷ÖŸOŸÔ¯g~¤ÆX(` “`ÅôXÜcqA— ºdÐ%å}ÿXÏ]v8»hCßrÖùQ—W“¼byõt"`ÅÆØ+Úu8»hCßrÖùQc¡f €)L`€2¦É˜&cš”÷üÄ£ŒëxÜÊý.¹Î+P^}òêéEÀòޱW ëxÜÊý.¹Î+`Œ…š"¦0 €–ÓÔ£¦5õ¨ò>v¿¯ýN“¶9ieŽ~—\çÕ(¯Vy%õ(`YÆØ‹osÒÊý.¹Î«aŒ…ê'¦0 €–ÙÜdn27)ï£ö ÷ïvÛæŸ}Ë®óÊ”W·¼ªzð±CÎÚü¡oÙu^c,T'peyr“žœ×pÔ}£îußœæì4g'•Y>`€e6ôƒ¡ ý ìG~ÝŸoöÔ[,®ËnBÜ_ç•4ÆBUW?apE€Ê5ÿÎùwο³¼’~?apƒ¾#Ä·+¾Î+Y^ó³ 7ÂÊ7Æ>·jßÕ—¾;à‘Ûý¶dKj{œWÒ UA\³„Áå”kjש]§v-û±Ñè‹»»ÅN‚ÛÊ]çU-[íü,è°2±'ì¹ÅN5—– €‹#ΫjŒ…Ê%.Âà% €Êuâ°‡8¬ìGEï>rЧ=ê‹l+wWµlµó³ 7ÂÊ4Æ>rDúàJ>®G9 •M\˜„Á`€?Òkq¯Å½ÊûxhᙃGôý·È¶r×yUË«y~FtLX9ÆØç^íûopå®óªc¡r € ßÊ €þÀw³¿›ýÝì²òJÉŸšÖVÝ:¯pÙÊçgDÏ„bcwý¢ù¸¾S¶Hà|WØ •E\»¬}³É³›/õê^Èp^ac,TpíUÜa°àŒ;aÜ ãN(û¡ÏëÓØ»ûE…”&Ÿïµs—MKì¹nϺËèÓ©‡~±ýç…ç.ÛæüŒè™Pìcìý‹º_T˜pƒ‰ë]oÿ¥®›ü»ÙâõæÍ¼ïºO,Ì8¯°1*‹¸8_,øÃçŸ;|nÙzfÿõˆÉ½:×lDúÓø£¯è=góG5x1oUëñÎlÐæª¯{-9fêý{?ÚµÑë“Ø¥ûùñ¼=çtYsä¯Ý6Úüšüžàÿ}œi!Ày…ËV>?#z&û„½:fœ;§ïQOovÑ3»_ÿ÷NÉc_\ñh‡q'6:ð¸M.©·jÝêö[ò;5y~¯¾oZœWØ •E\|Š# ü]ûîÚw×¾e?ÜY°õ±=ûü\³iëæí©÷Cݬî¹ouàãÛ ,/Ü-{-_]ÿøõ..Ì8¯pÙ6çgDÏ„bc§íÐççB €ëZ¿oÝ'‚­ÇŽêÜ.ÿž%ß œÿû¡þÕ·ý…ÿæà¼ÂÆX¨,àâV{Ã`0ÀØâ»-¾Û⻲è,ziðü~«ÖlDúìÙû]Ÿ9yV‡ Z·=²û×[ô«È½eCâ¼8¯pÙvægDÏ„bcŸ¯ßª…ñþo·˜Z‘@wÉŸêÌv›ô(´8¯°1*‹xåQ»ÂàU ç’(|‹¿rx¿ -4ýoÛÊù¯ Û>¸ï]W¿ÓsJÉ­pD…vð7Cï·ƒž+ë;ýé~;ZÏ»iD—5+ò³O{Í[šæ?Õz|óg´ù#mÁÄÀßLÚ P½žœðä„''€ Ta>6ùûUŽÞëþhÝ=»w¾ùŽ5ú>´ÕØó×ï:xóÖ/Úbíf'nÜ´ÁƒëžQ»ŽHOƒ•uŒ­ùˆ´lüéÔ‰·ÿ¼"?ûA³Çú÷¸½0«¼;•¨j ^ðð‚‡Àªpî~©ù~on»ÚkoúiÓÖÿ´^“ºO”׿ö3šÞ¨Õáß¶»¬Å˜?8"w4ÆâÀ¿ùÏÝ}ž«ÈÏοxê}þ£‘ÖÀ+¯•èàüè‹Åb±X,‹Åb±X,…¹´kOèºRIDATú¹ÕÏ­~.ûñMá¼xý±õ?¨—å­ÚªÎ† ÖïÑ ÛnÞ¦ÓÄ<Óñì÷·<ø”ƒÛåØûûvÊêÝEÿif\Þ;€ó3¢gZ,Å>Æâ;€+~ðG?<1rû^ùO­ûÚº«Õý¦ÐàòÞlŒµX–o){5]cìc×P™â[&5é¬Ig YmÈjCV«xô›ÿJô`€B¶kß]ûîÚ·ì‡8 ¶>¶gŸŸk6"Ýu§Öç6y0oÏï·û¼Åÿ×ÞýÇVYß ß2ÿЙm¬,(IÁ¬´ ˆÎåG{´µ“e:)[‘A0@ܼ §Â~u3fÍêÜP6q‹BEtJgç êÄ)‹z¯È–‹ˆ4*ÜË¥t|cÖäpj¡§íÓo_/“'¤´œçùœ‡ÏÏÛÒÆãƒæo)¥í¬»gfÕ¼‰ÉÀa™çÞw&ľcŸ*»äpÏýÀÛ¦ýì%Û?ø_s óϺ,i8LØŽ…\ÉüÛb¡ÉÄ!„ÛÕ÷®¾wõ½í¾áó»>ú¶&œÀ²¦eMËš2èüøì­é±Ý›HÏ™Ò÷®¼Ãù<ýÕ//IÛž¯Ú6mÚî²D’p˜pæy†wÄ ±ïØÇþ˜›´<ûÕ/¾2¤±=_{Õm•+¾êêeŸÿÏ‚_'-‡ Û±+p|znômM8ºÅu‹ëg>ÜyqçÕ_špK÷&Ңˮë¿4œÏïÊ.K]8£íÏsKuié9á''?‡ gžgxGÜ™ûŽ½ïø„[’€óöæ•÷yð± Ö¯;2ÛWý®ìûåÎhýU÷Ý5||~‚~úoËÎaÂv,䊇8¢ok0À RVÔxß—~?>ÿ¦ÿKS¸.ÍgÆ~úh¶GWI Àa™çÞw&ľcWÿ`ô¥I ÀÃ=x[¿ó¯W^4oŹ[-ýÙŽ’ÿ}ð/?)¼è“×åÏX8lmëÏ¿ìë7š”´ïý Ç0a;rEî¹â‹¾­ À'ðöÁ·¾}0ó¡ÏWŸ+>mp]÷&Òg¢l×yóüWÿÓÚÿ¸ê•…UgN¬úÂY×ö½µõǧ\5|è åÉ Àa™çÞw&ľc/ÿÇ຤à'¾sÁ¸ÿ¸ ¿0ïmoÚQƒÎ­:«ïÞÆÍ›'ïKf¶c!Wàž%îèÛš p"é–tK:Ûc æoο¡ü¡î ¥áL¾³?µ¼pǤƒÿcàág‡cúõ!ÇÎþÁú§¿7òþæ¢ù3ËÕúüC<>{FßKòî\0÷‚?ûÍ$¤ß0լߩœnI·¤Ý˜Ð;vìŽÊJN¿žõÿÓf ùÊgÿTîûXÿßôûéi(ús~Õ-Ï,¸ó¼’wŸlñÍÉL¿aªv,ä–œ|½'ú¶&duÝ¢ë]·(ó‘ÐߨÚ;)/ Ñ´íÆ9Ûï&óSÍœvxÜЛvì³'åuo.ÍqOöãÉ9†©Ú±[p2õÎèÛš UãøÆñã3­¹u•I ¨=ý¦š9íð.¸¡7íØÅWŒ¨LrLí‰Ç0U;rKNÑ·5 «#w¹ûÈÝÙ[<¿_ù ÂmÇa’ÙæÞw#ô¾»ã£å7·?†IÚ±Ðàî%úf#|ˆšçjž«y.óáQCÑô9ã¾ ßvü&™9á0yw ôÖû‹…ã¾ ßvü&iÇBg€»žèÛ0À‡Ø]´»hwQ惤1ÓÕæ—¶ì¯¹¦¢LÄ=Åãþšk*ÊÂ$3'&ï„Þºc‹®Í/mÙ¿s[E™ˆ{ŠÇý;·U”…IÚ±Ðà®!úž,àÃ<ßò|ËóŧŸ^|z棥§¿óåo§Î—rOí¦—9Õ0í0y7 ôî[×”:_Ê=µc˜ž Gî<¢oGÀí²½~{ýöúÌÇL÷ä¯ê7òøùõå{ÝöÃÄÂô2§¦í®;vø–Á;ú<>äé+Ë÷ºí?†‰…éÙ±ÐyàÜ}sEhŸQ-£ZF¯(^Q¼"óÁÓ†…•‹F_,ë¶ÿ&v‚ïK[Q¼¢xE˜¶›ìØvìê•£/–uÛ ³c¡³ À'úvà$ìZ¿ký®õÙEýóüYE¥¿wÛ>†)e›a˜°; ìØí؇g—þVÜmû¦dÇB×€;n˦-›¶l}sK8i ^[ðÚ‚×2KMxºàá#š«æ/*¿_èÍ<†É„)eN/LÕÝdß±~jàˆæª”ß/ôfÃd”ìXèpÇ5OožÞ<]ôÍ-à¤5moÚÞ´=Ûƒª›¯JÝUø†Ü›y “É6·0Uwða;¶æ[…oȽ™Ç0;º’œ+­¿Xôí8à5ÎmœÛ87Û£ö{/¬¬½Dô Ç0l³ “tG'³co0z‰èŽav,t=˜d€:¤vPí ÚAÙ»ož7µî¢…½9ý† d›O˜ž»8ÕûÓE-ìÍé7LÀŽ…î"“L0@ÇLj™Ô2©zmõÚêµÙÁÿ¡ôòþcnìmé7\u¶™„‰…鹉€ŽíØscoK¿áªíXè^0É$äÀÑG0¹~rýäúlã~súõ‘o¶ì«©®(6ýî«©®( WšmaJabî w;ö[/Œ|³eßÎúŠÒhÓï¾õ¥áJíXH˜d€ræð¬Ã³ÏJ­J­J­Êöh~îôQK†vùØåcÛ~p¿äè˜Ï ;|¨rNmzkO‰¾álÙ·}uaaî  ;vl՛ê||UzkO‰¾álÙ۱d0É$tº/m|iãK}ÚáG›&ý­èúC%sÖ¤7'.ú–ÌY“Þΰ=×®Ú»$iÇ^uÑõ‡J_šÞœ¸è[òøÒôæp†v,ô0É$t‘W_~õåW_.®(®(®hÏÃý¥3ÆL~æž]U?™øzwEßðêáLÚsÎáê•zÇdïØ™£†Ÿ¹gצ'¾Þ]Ñ7¼z8;z"˜d€ºTs]s]s]ݰºauÃúœ¤›g¦~Y¸÷Ù†+J蔟æÛpåC©áUNöÜÂ…«ó.=sÇÖ|»pï³ ÷¬L蔟æÛpÏÊÔð*v,ÄA&™`€nóÎûï¼ÿÎû7ÜTpSAŸøÊiçý½`úšÛ'4˜²acåwG_±õ¯Ó.-YØ0dzõ¸ËÃ1|$ünøÌðUyÝpæá*¼›@¼;¶rfÁô5·/®1eÃÆÕ›F_±õ¯·ï-YØ0äsÆ]Žá#áwÃg†¯²c!n0É$$ÂÁ¡‡Z»®v]íº> Î0œ­w °cíXèÍ`’IHœãóŽÏ;>¯ñÑÆG­®­®­®í®^=œI8+ï`ÇÚ±@ “L0@pì½cï{o÷»ŸØýÄywäÝ‘7õ¶©·M½-W"üiáO¯^Ñä;ÖŽ g€"ôÖSo=õÖS ÿþ/|ÄdìXâ&DBˆ„   0@$`€HÀ‘€"!DBˆ„   0@$`€HÀ‘€"!DBˆ„   0@$`€HÀ‘€"!DBˆ„   0@$`€HÀ‘€"!DBˆ„   0@$`€HÀ‘€"!DBˆ„   0@$`€HÀ‘€"!DBˆ„   0@$`€HÀ‘€"!DBˆ„   0@$`€HÀ‘€"!Dâ_˜å°<Ó;õ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/skipUntil.png000066400000000000000000001412131431412030200253550ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwT×ÚÇqsMŒ P v¥ *]Äö‚Kì=±›ØbAco‘ØŠ5öÞËTDQcW¬˜DŒ½+RÞ?&ïZÜu<\¢¨sÆï笵×]¹’ÌÙçÙÛyæÇ™É–0„lL00000000000000000000000000000000000000000000000000000000000000000ŽÄ‰?Y>²|dù#¡GB„2'2#þeüËø—QþQþQþ‡ë®w¸^ì¤ØI±“˜™qêú©ë§®Gîܹ7*:*:*:õ^ê½Ô{Ì €Œi{…¶oh{ˆ¶Ÿ032CëY´þEëe´¾†™Ð`à Ö{Xïa½ƒ]v=Øuh÷¡Ý‡vwˆpˆpˆ°zg%f”˜QbFÿký¯õ¿¶»Êî*»«Ü|wòÝÉÌ9`ršœ&_ó¾æ}Í{EùåW”Íš34§U©y¬æ±šÇf…Ï Ÿ~R>)Ÿ”_y½òzåÅÄÆð¬É³&Ïšþíðo‡¿tüÒñK½x ððî»Gþ üAùƒº¹usëæ¶qôÆÑG߬y³æÍšÌ9`$ÚºÖÖ¸¶Þµµÿî{ˆ¶iû’¶GiûsƒÖShý…Ökh}GVu1ZO¤õGZ¯¤õMÌ<ÀûC ¤Ý=p÷ÀÝ¿:þêø«cÙ2eË”-cõÁÙ–²-e[jöªÙ«f¯Šsssçs,ũ˧.ŸºÜ¿fÿšýkZ}$Mò4ÉÓ$Ïþuû×í_—84qhâP>@ÿž~ûôÛ§ßn,²±ÈÆ"þnþnþnk û*ì«°¯®ìº²ëÊ.>ÀRhkV[¿k÷Ðö.mÓö4>@ÿ´~Aë´>âcí!Z¥õS|.Ëeúw\döÈì‘Ù™|\Àøô¬J[•¶êÄÚkO¬m$4 Vº7 o@^¥‘ÒHi”Ú:µujk>:@^l±ýÅö««+=udÔ‘QGþ¶ýÛöo[>5@?® º2èÊ ;zìè±CŸ»GÉe%—•\¶½ÄöÛK$-HZ´€O Ðm=jkS[§úÜC´ýMÛëøÔýÐú­GÐs£õYZÏŧ°ÀÐ'`|BŽ >6øØ`÷¥îKÝ—¾]+R©b±¨BQýGT^PnÙ‚/kn«pt›OÃüžÃ…䦕}æ©‘Í^û®—\š®ò¹²£kÿ<‡ÕJqrÈkfùS~WKD{»ÿná …/¾ ôú ýÓ¦¤MI›Â§ |Hñ§ãOÇŸžc;ÇvŽí;}O7©¦Mñ°ñú¬vö]%þÔ£âÚ½Á¿lô¶–W/þÜ×CY²8Ò·×oæòŽ\?iòƒJñ3ª ÊæÚ±p£Û¥iaggÓåíþ»}FôÑgÄmÏÛž·=ù4ïJ¥+•®TjÔ8¨ñ[Þˆµ@ûå¥f•¼œ»Ew'¯ŽM¨]a`ÿsÓ~®Øe¸Ýü •¦þxèWßJ¥FZ4Ã#ÿ„ðŠ.õTÜË>lz¶Û"Aþ~ÓÞeïZ_z}éõ¥“''ONæ¡À¥­;m ¾Ë*vjàe7º–Ú'¤TÖÙ'ç»c÷EÓœÇuµr€«g÷°ÕÞ®Óº¬Šðv™ß®í/£œœwüñBÙ ~{CÚ?/²¿ôæüoÙ=iûž¶òižvþ¯õo·Š‹´Èÿ—M—Ž…ÝÆ”z0£Jà&×Ðõ“êÍ­à›&W¼#•%Íføö’W7«èë±7¸ñoëUb~׎¿PÅÕÙ·I’Ãõâaï²wiý—Ö‹ñiôŒúD ƒ‹;w6îlÈÕ«!W3ßf¿.[¶Xµõ¾õ†UŠ‹û¾£cõdàýy²îɺ'ëú'÷OùZ°y™Nã]ü»o=Ú§ßtÇ­E—/?~<«Æ€¶‹×G©è;,|Þ¥’µk¹4}õ/ŽÍ§ OAŸè¥ÑK£—òùïý4diôÒè¥ÚºËü:õ lUÙþû.þËF» uöÔZÏ5ãÆÅÄx{gÕ80bG¹Í»L˜S>¬Ä—r¶ÿâF¯Éý“û'k{#Ÿ/ðþhçùÚ9ÿ¿zsæ?bÓtæËjM]ž?ߦUÀ„¬½’r§×Šàߣ›ßðóüÞÎkKù¸Ûai}™Ö£ñ)ô†úD #ª’V%­JÄþˆýû3uAó+›zÖ½»Rw^¥ö©SzÅ?ÍÚV'óãö# ×zžwê^xŒmtfŽ|¦ßL¿™~É›’7%oâc²Ê½à{Á÷‚Æ6Œm›™•ØaX£Þ¥Žœò]½¼J¬ z3?Þɽ/oõëãöŽvJÌüe”“KO.=Id±}½öõÚ×ë_|3ïzç®Ãž4_É'd-íÜ>ó+qÜAÿH§Ä;¹;®~ýc]9åÛºZ•†¹Õ,•©Sk=šÖ¯ñ‰ôƒúD Cy<÷ñÜÇsíÓzi•5¾,ݰhɌߋÇhÑ£ÿ^ö÷²¿—QÀ»¬%k)S¿)?ܹKC‡SwìY=ùc…¾æÆø–‘U‚ E„…ðÈÔFÃg‡ÏŸÖ2­eZKjx;‰S§&NØ`ÿý3³îÜÉ5;[Õo—}y´ÿÇ }Í> §oÝ]¢dµ©êgæ½\˜|aòn ¼mefÅyumê[,lP®E<ö}¬Ð×Ü8ö‡óA^“:lXXÇ9S·»×öLmÿ¤€·Ô2­eZKí|>SOØ ¾â±#¾e÷ÓA…tt $­wïÚµï,è´½zòpgO‡S™y/ZïF ô€úD ƒ¸})úR¦¾5»·]ãƒÞõÖêd<^Ô|½_̼»cm޵9Ö†zþ…³igÓÎÎVf+³•Œ×WëVuΗt¾Us÷Õôúšâöš<®_#—:¿»–ÝZvkÙ-~züôøéy÷¼îyÝór¾á|ÃùÆÿøå³²½~çè´¼Ãñïõúš½[OÞ³a}!çòƒ\ÿǯÖm²uÈÖ!Ôðoik'ãõUj]…£¶ú=صÆ}‹ÞB_³c㘑ÞåZþ6eŠC͌߶j{)õdžvÞ®Ãg¼Ê& ¸çR'1¬GjÐ)K¹r«fÇ!ÕZ·r^TÒ9ãw§õqZOGU>`è0,^TpTpTpÆ-Áàó^>å¿|Ñ}cÐg–ý¦_ïîy:¸ñäïn¹üß©ßÙvgÛm© c)GSަPh@¡…2^SÇÌ{í“ÃRB_sãµ9[mƒ/–Ë^ÐÞÜ;-?¯ü¼òóŽ8þáx*ÈØµ_¯ýzí׌wb{|ž× ówŸsá@K }ß0VY¾à¸èº°OöŸþÇ=æ<ótÎSjÈ m½d¼¦Z6Þa帑1Ǽ=-&ú5‡ Žª[éšûwµOù)ã÷«í«Ô1í\];o7û«‹|UÐþÚœö~Á–{ DŽ ©í“#ãÝCëé´þŽ |xÀÐ'`X0á˜pL8–qp U“oÕÒÓñØÎ–³ý2~ïëcÖǬ¡NS)MRš¤4éÔ©S§NfŸW”Ë÷`ÑSå©ù…¥G¿éÇ”›ÇÊŸ›Õ+Öi—ÙícÕ«÷î;Ýw¢ZS—ò^Ê{)oÆ »ÜìVÁ‚C_s7ˆÞ;Ãf[]ëÛ …˜ÿ¦Ñäq“ÇQ'€9Ú1·‚ +$[Oz Âãœå†¾æÆ–9&pÈ“ñþ©í±Ô `J;?×ÎÕÍ­ °Yþ-œv¥Üì|ÂH×@:vé^ó‹ \e¾-jöÑZ§õzT àC"†>Ã"Éw$ß‘|_8¸1é›fOŒý¦ï9v®S£µ£oá|¶ÌÍÃŽ;ì@Íÿ(—V.­\Ož==Ì­š‘{º5pìš20úxðv#E¿¦ã¶Ã3çy.4{ºm¶Ú>™ødⓉ ¹‘çFžÿ#ºð,vpÅ:ãE¿éÇ€6‹×E¶ð›¼ÔÜ<üüËÏ¿üü 5¤§­ s«Æcw½*ðaCŸ€aa.Ç^޽köæ¥_ÛU³ýòQ›.15ë»íI?Æwî~>¨HíÚe« 173ÑVÑVÑVÔðS“ŸšüÔÄÜJ™÷jøÒ ÓŒúšŽGäeÇüf››¯d¯d¯äÄû‰÷ïS?ø”=lù°åÖÇ>k§_ßö…±£ßôcÕ‹m•+}£A»ö“ÍÞ¤äú’ëKR?€¶Ì­”ÀÍ”Xv± ×ÆŽ~Ӄ܄zÎx_Õö^êŸ2í<\;'7·RŽÈ-†úÍþt®hã¼W5U˜fnN´¾ú|ÀÐ'`XŒ'çžœ{rÎÜÉ}¹‰vy Ü}öK·Þµ?µ¶GOö,ôGm©lßbßš›¥[9n帕ƒZ§is½Íõ6×3·:¦Œ|íîÿ©E¿éÇWNð_mn~úÜës¯Ï=ªŸ¦dÏdÏdOßK¾—|/™[#¾ógÞyæÓ‰~ÿkt[þíñ e*6lÿÙó´ßóýžï÷|Ô>MZý›[Õ†u9Sâú¸Ö1Ó½?è7ý8d¬Ø­¢ÙGÛ{µ}˜Z§I;7·FNLlè¿úÓ¼¢ Sjõu÷77?ZHÞ7`è0,Á¤´Ii“B ‡)löwÃïtÙTÓãSn{þù6ðŽîσ\#‹|^ð så’à’à’ðúÙëg¯ŸQVøt\Ë}-÷µÜæv)mûÅ» ý”£ßô£Rfqw߆ææjÿ:ÿuþT>5cÇ:Žu4û­_·ií¶X¢Ñoúo?‹Øvlnñ„j¹þfn®'Íè7ý8 m_mNææJÛ‡©(|j´sosëB)Ó¬“oC®hã”¶Uý]†š›+­¤¢ï0ô‰`µÍj›Õ6æNåcK¶?¸Œ†'ýx¿Nçí5˜»:Mé4¥u…OÁë¯7¾ÞX2°d`É@ӵо~ƒ¥ê¥M9Þ¿¶ Ñoúqe‡ñM+†šÛCþ²ûËî/;ª Ÿ‚#{Žì9²ÇÜZ¨9jð’2D¿ÿõlà¸%£ØP|néhÓ }ú,ôYZjZjZ*ÕƒKMKMKÕjÞt-Q&%ì§3i^vD¿éÇÖk<\˜½Éíž#{Žì¡¸ð)Ðηͭ…•j߯Êuÿ§ô®ZÛ¥}}×Á¥ÞpÏ'­ÔzCª ð>g•Ý›woÞ½Y›Ã‰k'®¸öqÝÇu×efÞ0tíöÛCn1×öìÝ×8ÖÛ…VÇÜx"¾U/ÁÜìÅ\޹s™ƒ±… /^ÐÜ*x9HZ+ޏ×ÜØóp‹-eþ4·ª›ªnªº)-4-4-”ƒQ%ìHØ‘°ÃÜîá4´Sé¡Í‰{Í~¹gWß½ÁÜìí Ú´/ˆƒ±iunn|¿\n_ñ>q¯¹±IöQÏË™½w‹¶?Sc0¬Ð´Ð´Pí|Û´þ{öØWæO®u˜_ê>²Vœ¹ÝCë )1Àû@üîRš¥4KifîïqÂà·C }÷>B'„N0]ðý†Tö.×ö&3ãŒæ»\¿yÃ÷– W*\©pZî´ÜiÜ ÷:îuÜks' çâÖÕ hBÄ›ñø"Au®uÔÜî̶3ÛNÎ"`XS÷NÝ;u¯iåJqÊãQ¿ê툙Çzôf<º+ƒ6ûÌÂøáñÃã‡Si0­¶ÍU~‡% +8W#âÍx [±ƒ×£2»*µ+ø«éjû3•£ÒαÍí!/º7ªu”«çâB“š˜›C­O¤ÒY‹øÝ¥ÿîoƃ3K·Ð©S%N•8UÂÜ">º›\k0MfÆ×í{n ö/ØÈ¦«õ.Eí˵/×¾\ÔŒ§ƒW¯^¦5?þvŸÎ„»™#ã—,ò}ln7~uðÕÁW©7Éiw¦Ý™f®æ}ÝgNÙáB¸›É1âø±b+}vÖò0ÉŸ«þ\õçªÔŒG«mÓšw¯R{X‘!ãÂb.ñfn<æÐÊŠ^ævcm¯¦Þ`$Úyµ¹šŒoÞ×÷1×72?Ž¿]¥²sÀ~Ç«ƒW/ê µ€ßèjá®U¦gŒúó"íEÚ ¿X¿X¿XÓ%½#¤áUÏç43ÿvŒNiÙÈßìs”SÜRÜRÜ(=ÃUû«öWíÍ~ç¬J¤C5±î¿[­ó²¤§é|.ß±|ÇrnÃC4}ÐôAÓM«Ýa\›øþˆuÿíè›ðsÊîVæöä'מ\{rªƒ1hõlö¶Ï}åÏ*^!Öý·c}§ïG–ég:ŸÚ^MÕÁH´ójÓjo=Öy}IO®iüÛ1¾J÷¨ ks{²Ö3Ru€¬Bœµƒ³ 0tçl©³¥Î–2]À¥fü¥À©£z]~L3óvcý‹åžÛ·6ÛÏ<;ðŒÚƒ1t ìØ1дÎ7ÙO}Vy:QîÛþ¸ãAµÎæN°’%J:DíÁÒÝïu¿×ý^æê< Ï¢=ÊŸºo7–‹l1¼Wý7Ïýn™®\Çx§Gb…÷Tƒk›ÛŸµþ‘ ¼;àƒ0øß"†Ž<*ú¨è£¢foS,ô ޤy÷ÑkCqk»Y¦3MÂrÍY;gíœ7üõ¿¼zØ:XâÛw¯ÙmÙèd:Ã>Ñ>Ñ>ì°`ÉÁÉÁÉÁæÎ@ªL]h/"Ä}÷±tDýðv?™Î°*¤ ©Ô!,—VæµhÕ©}‰îÄ·ï>Ž<}¡òks»´¶‡S‡°\Ú¹´im_³kÿu W0Þ}\^½v)78®MÌ,oGà¬û~¶½±{.ÓÙÖöpª–H;6­êÍbÇÊ÷¹v‘µcÛx—%“Mg[ë%©FÀ» ÖÂàô€¡ O“ž&=M2]xÞ1ÅÃìxîï{;ÉŠ•~ÃÓønn¾¹ù&ßჅYôlѳEÏÞðìð‹<|žgíø¸¶°«æÓwP& L@ª–%Õ.Õ.ÕÎ\PuÕ²CÑm n³vtú³ó€áŸ¿¡=¾y7ò.5 Ë¢Õ­i=‡|=F(×Õro¹¬Ï8ì?½ö˜ý5V»T»T;j–E;6­çǵ»º×ÃU‹¬¥M÷yn:ÛZ/I5Þ°>C¢¬£¬£¬ßpóçbÁ-=ºÐ¨¼ñÀ†& ÞMç|C» í6´£&aa—N< xdZÏÏʯj ~£Ë¼r Ö5}_ ·n'ܦ&a)âÖÇ­[ÿ†›?ϬS¹µ+aí{¹ô´éã¶Î0óá熟~Žš„eÑêö 7¾½ÿŠÇ&à÷1VéÝî`ññ¦s®íçÔ$,…vÎlZÉ.󊄬ËõŠ÷1>Øí`­oø5ÖGQ“€wA¬ŸfL ]˜ðrÂË /MØ5¯ö¶4*ïc|°­‹_7|_¡“M'›N6Ô$,EÒä‡IM+Ù¡^é*¶Mô”5ž>d`7WÓ÷uéÉ¥'—žP™°»ÆªC—¹]n:çö«íWÛ¯¦&aY´º5­ç±sÎ÷šMü>ÆÎ%—Ìv±5sm?§&a)´sfÓJž>$°‹« ×+ÞßèPÏn·mÓ™×úJ*ðv€-˧Cü÷ÿÝÿwÓE•èÖãFÐAý´ w†wú­úËI³~v±jî¼­¤o¥?ì¿,ô¨Ð|›XkÕ¹Wá? ~$—ÙRôÕ¬‚Õ¾qUï"× ÐgÛ“šØûËÚ¹ÌmgiWÓ®¦]¥2¡q‰q‰q‰¦5<êÏî)Žè9>ýùšjUúµ¯Ó`{©ºeÕ’5 *4ßö…µZùŒë×veGyuÿÁqߣâ‡NÖ Ðg]4â’ß7ÜEà‹ _lø‚Ê„¥¶ØþaûM+Ù¯wx½º‹NÿŒu¬™ë¦>5êRô7Ï…Õ*ä+r·xëñ–Û¾(8·ìçÙe 4ÌöÍ7>Ó¦Û:SÏ1páYniÞoxrê«€W¯¨LèŸV«oø´…~å ÝÑ[ æta”—Ú*ÿÔ:=\£kz^i7¿øs›;ù+ØÂºfÉ nylÖø³gŽ’†Ö¬Qi¸žà¦(O+ùšÎ¼¶ŸS™°Ú9³i%GmñÊï†Þ®DîmÞÊ÷Ï.×+Ü*}X»îQpÍOÖ3*¸­]0¶Õ çÖ%?ß3½q?¯Û©ö½v_Ös<êOߗ޼á.‰q‰q‰T&àí[.c‡ÁÀÐéY|šíü­ôÓ$È·šÕó ,îfÛ4u«éæáW»¥Ïæ§aµòÃí×½á&®çÎ%pFX€ÈˆÈˆÈÓÞÝ2ÜÑk¹ž`Û]FZ·Îx÷(·³dZÖ®_°Koð}·a5ÂMù‡?ø¡• KáSß§¾Oý7<ý·íÒsGÝô—VÙµp¥ücÑáž_Ìüˆ›ÚwËäßõ—O ­××ë —_ ÇŽ+LeBÿ´Z5­áº—»—NÑO\:¢_ô¡Êœíª†ÙÊüîzxækdžú €Ç6:—â5Âô˜µýœÊ„¥ÐΙM+ù¾[çµ5Âuñ+ãö½v_þ~³×m‡™ß=ZnsJ-qüåêî3k=Öç5Ý-%y½áN$Z_IeÞ°1/ &†N·Èþn.¥öé¡=ÐZ§a…'Úþóåò«í†Û:Ͼ[½[Ãëšoõ³;¿§Mƒ€1Ò‹¦}¿›è_Ìéí;Áÿ}»W=6??í®2Öù[Óù¿x;ñ6¿ý ±"bEÄŠ7܈øÒ&§ª}õk~ î¶ßqü&óòxËÛþž¹Õsy»¶ß–›bý™Õ «Úéÿdªý±fÁ—õ¿Îäi°“é;ªñU¯j|EeÂrÏ@lì N´ë®·¸Ôþ\•Au³ÿÿ—ƒlÚäÿ¼\ÿæßõx\±ËðÂó'V¾Vhùy§€Ž½èžKёţÿ+i?íÉ–3z{GîÂàû?ǘÎÿ1ßc¾Ç|©LèŸV«oèbÂu®¢‹¸4_L^o+·-µþ¯Û̺?¬³µÈ––&ïv(Ò³ÔÚ@˼k8è?~Ь‹mó¦Ç©õ•T& «®-‰å†ÁÀÐé¹2¤ö­Š-õÐÙâß÷=ÃÊ»Np×¥vfÚÓXŸÍ˜Ø4Üç”éqŽ8q˜ÛÁtµíjÛÕÖ´†ã«F:Ùè3îr=äréÙ tÓÿTýUwÙêíFÐn‹*<ÄåWé ¤´_½FmþÔOPZü^à†ý´c+q¦Æþû̺éßQ‘Ù]ýU½À¾õf^Ý1×tþ5_Ô|Qs*ú§Õªi –„è!"õ8W¯F‘dí¨´[@gêËAçx -Þשt+z€«ZuXZŠ3é ÄmqQ낇ôp•`ü‰*NÎÿüšÈ´æUã]îfæjÆë=×{kOþçbjWêQöo½]‰¯ÚýHéük}%• Ȫ¿Ù €Ê²ÂàlúY@zÛb6ö\¢ÏoÍfÜü¤¸öj¼2üJõH·%ú€§´Êå?‘zƒñ$Í?òsp}ÀÒ‹EÃ|¿ÊÌÏîõË%ïâÿóùRlõö=àZ³}ÛÝA½ÁHÊjÑ¥—«~‚Ò‚j9w—FÚ±¥ÿîïÿxf°óü‡bŸÛ3ÖlÿÒwù¬Ç;õûÅþraÿgÔŒgèºÈ;•è!"µOrlSàŸ¿£;8.èâl—ù(Wÿß>Ò÷\©WÔŒ¤Öì2Ewèá*A›!.ÝJþóíäȽÍ[ùþùo¯–h¼WïgwDo×@’æ÷윇zÞîÍ»7ïÞL Xí^׸ˆ×N}ÀO²uRs˜¿i€ÏâˆÁ=æ)ä×Ë©|èx—\%û—(n»!ÿPsïKoïåÔÃÖãªô¡Þ`<¯ÏÜRŸðÍûvU»•™Ÿ-¹­~à²7í$z €ë':Úw¤Þ`$åï…þ.AiÕËîGÏKl¾A3í«·(÷íFÿs{ÌI½Áx†Ý>bSùóŽŽvú˜çõôG5ðöþ+›2ÿoèø|ñOÎÛÒÿô×Ý>èaé§ÔŒ¤~bùlöõp•ÀkGñv³ßý•U .pHoWB^Ÿëy5¸%õ>¼¤MI›’6ºûðÉR­bª|’Ëáfñ Ú³pÌyå3öíÊv~PazéY¦ÿ/ß>Ð_¨:þpbï¨UAÑ™ùÙ„I‡]‚Ú¿i'áÀÀû¢Ÿoûžú9l×®ôÇp|‰ÕáÛÆ€ù0ŒJßþ>—Ôªâ¾ôG¥E™ÿ7|÷Ó¶!þLÿoàÀÀû¦ŸoÛMÎïcôîï(ý¿‡o|BßÖî΋—ö2] z{p¡ù6±Öªvly‹&ª¯=g×úF¼F^wo?(°—öÌí§®6j'þw䣷¶'ãg/X° €Êä¥ÿWã[4naZÃz~pæ¿üdzc«ÕÔ~*ÿ¹üŸ[ÝûÿDïϦ2yYîˆ~ž°ä×ч]Ò›_ÛpŸ=÷Œ›{ðPe¨2T¡2yéÿ¥Õªi ëáÀcwŸßåõ_£ÔöÀJs™ÿ7tº¼ÄÖ9Uϰ¹gS™¼,÷ D?ÏÖ®xhGµ=¦áfÏíúÆÛz»bîÀZ_IeòâÅ‹¯¬ú›}~Žù9æç`fŒ÷Ú3bψ=#zÞûóÞŸg>úÕþü'ô ` ão„OÞæÒ\íAúåGÙoÐŽªËõ ·JNµïµ;ørƱî•öíºW=¬ÿxݸzž•˜ç…ãŽ_8NeBÿF/½|ôrÓ~Ðì`ç-ýÀšÌËã-ÿÿ¯ž8Ùýÿ…]ÀWŽo®h:óÖ«­W[¯¦2a¹g Ex ®^G?Aiúc«üÅ耥å3óSÞ+§ü¶ñ†Ó·_-åt¤s‰a‹­–ç;žO?ïËËyBö5q¦ó¿Õi«ÓV'*ú§Õªi —}ëì »õ‘¦?ª‹:;fþgú1¾ìU=Ànß×êXøÚ›º-À2hçÌo¨á+½ÛÕü¸W šÅ:>-á¨Ͼ¾MJ{·ÐçùÞn|Ь‹mó¦3¯õ•T& «®-ha!3c Zp;qíĵ×f>ôÕþü‡}Ó#†N·Èþn.¥öé¡=(Ö ÀR›Úƒcß´àŸ:ФɅÿmôÿ´»ÊXçoMóvâíÄÛ‰T&ô/bEÄŠˆ¦5|éÒ&§ª}õw¹r¹ôáÌülëðºÙKúj?ÕfH½K®ÖOü:ÿ‘§Áo¸ð]ã«_ÕøŠÊ„åžØØœh×]Ÿp©Su? õÎÌO•þ»A¿öÿürŒÝ/Îq•ÖëíÀîÂàû?ǘÎÿ1ßc¾Ç|©LèŸV«oèbÂu®¢·ØyZ`=»¸L}{8èܯ¡%»ühÛPϰm9»GÖ 0,—vÎlZïó÷œìôq¯ äÓØá†v<½ÆUÌV6wf~*±w—AÑõJN.’×¹Wá? ~1½V`ˆkI½]¹t©í…ª}Mg^ë+©L@V][ ¶t–ú¦G n‘ŧÙÉßJíký"¿¨ÕÆõý+·ÍøÏÇíîX½z1íIÀú€V+?Ü~éq&œK8—pŽÊ„þEFDFDF¼á™ -ý–ë3¶¹ilµãPÅù}*˜û©5¦Wn›þ§¯[ZÞÏN?7¾ïv ¬F¸éÌÿPà‡? 2a)|êûÔ÷©oZÉUÛ.=wÔMA©›ï·¯&Îÿç°¢mÚäÿ¼Ò…Që—ô1÷ç}*Lë°ÅÖ&oÁP»~E£Ìïëuj¢ýoýÀå“Bëõõ2ù¸Âq…ã S™Ð?­VMk¸î¥Áî¥Sô‘¶o?·šÓÓ#4÷çÃ~½XÛën­M}Keþ§> ®Kñaz„Ú~NeÂRhç̦•|ß­óÚá÷*Áéç­ãª¬þÿÎÅÚÞjÇžéûyÝÎø§F¶ðýÜñ¿~qDû÷èíÈî–’¼Þp)­¯¤2o‡ØŒú¦G ]ðÿÝÿwÿßMO¢[A?n{Ðs¶Çš2þùæÍÓ‚{ Yµ¿Îwûë|‡éÕ¶ÜíÓ9[ ×Ãëšoõ³›è_Ìé»Éù}¬“Ìmúi{R{Y;—Ù㼚v5í*• ý‹KŒKŒK4­áQvOqüCŸpùÕ¥Ø:ÿsœ^ÝpÜw°ú¼hïW;Žþìä•·¿]ÛoËMIÿçë÷¨ºË>PoOÿ.qÉï†éÌoøbþ 2a)†í¶Ø~ÓJöëÞc¯ƒ‚Òª;–Ýžgz„å–4Oí¹±¢ç°Ió¢=‡Ž;¹êkç-]“~¬WÀß¾bÉšÏüÍŠ´²Ñ瓃 ÏrKóÞ`ú¾^¼ x@eBÿ´Z5­a‡…~å ÝÑE\š/&¯÷ÎóÝÖÙZdKËåSÆ8TïYjm·‚­òO­ãУBé ™E þó˸}J¸¢Ïø‡)ÊÓJoøîµ¶ŸS™°Ú9³i%GmñÊ¼áÙuƒ+¶)[síèºç*…iáî®õxlî¼­ä­ÊN_»]*]ZŸ¿?êOߗ޼áWÐã㸠à-[.ã…¾éC&¼œðrÂKÓ…tÍ«½m ÇG~BLÕ.yjœÒna”ù-àò·írUUæl¡ï LJÿÏ´._Æþ{]<ùf[¿wM¼“M'›N6Ô$,EÒä‡Ißpùµ^é*¶MôGî]ÒÇ÷Ï"}ìœlzf¼“¸Û;¶+Tàæá]»ªÝÒ[<}ÈÀn®.o¸ùö“KO.=¡2a)vyîòÜåiZÉQC]ææÔÛ µ›9gæ<Äf¡]Þ"=FþPí—KzûîoÕ¡ËÜŽ¾á›7ö«íWÛóqX­nMëyìœóýfë!.n{¤ke›òa>…¦ef÷(sªÒ”‚«µ`XŸpç’Kf»Øš¹¶ŸS“°Ú9³i%OØÅÕEW ´[:wpr+WjW毄4)ê0µxãWÃz,úEŸ°C=»Ý¶ML\ë+©LÀÛ!¶,Æ}Ó#†.DYGYGY›.ªeÅ‚[ztÑÏo¿†ÝóÿÞ):Ð¥T•"#µgkcÍ¥“‹N›?³æ„ ›R\{µ^ù_ÏÜêUø‚_m[ ÈfIŸnw”®‡wt`C“ï‹oøö^» í6´£&aY< xdZÏÏʯj Ð[¬ýó~åâu“N¥C˪%k8Tp­õ OÅ5Ê®Ýø}–8{?TüjÓ[ô«.óÊ-,X÷ 7¿p;á65 K·>n}Ü"ÕR3ëTníª·oÍþs^Öµ×ÈéEºz,òÿÒ&¾p¥¢16ßú±ðŠÂ#ÝDïÐ2•ëpÑïÖ/ö—ÔÛñÿs“êiÓÇma:çÃÏ ?7œÇOÀÂhukZÏoï¿â±I?¡©vTÍrŽ÷/Ÿ×iuÀ^»ù=mÓ¸@‘Böֽ˴¯(S¿×÷wËŒ=ìô1Ïëz¾t•Þíÿ†oï­[·žš„¥ÐΙM+Ùe^‘‚uõšjßôm3Ä¥[ÉÕåvÚ•(ðÂv—³uk´bÍ …µÜæ”Zâ¸ögÒ_?ÑÛ»x>°ÛÁZLç\ë%©IÀ» Ö¿O'ôMºð4éiÒÓ7Ü6Ù;¦x˜Ý9ý4 ·1æþ_}6?ä ÅJ70ó››on¾¹™š„eYôlѳEÏLëYZ°ÈÃç¹âRs!î¿ýçz×vÕ|Ã3Ê” (C5²¤Ú¥Ú¥Ú™;ѯºjÙ¡è¶úŒQ3þ^¯Þ¾õ›~tú³ó€áŸ¿¡=¾y7ò.5 Ë¢Õ­i=‡|=F(×U?¡©ilÿõý†ýçB ×s;¶¶ŸS“°,Úù³i=?®ÝÕ½æ½]CÈøáVú¼î‘~”4ýÝç¹élk½$ÕxÀúôi†¾éCG*7¬Ü°rCÓ%÷`\‡7ôÜHXÖ˜°½G³ f/¼L}™ú’j„e¹ÑéF§Lë¹m|ý %“õ£Zî¸YœîWù¾él¯ì·²ßÊ~T#,Ñ€cŽ 8fZÕ^³'Ö];QŸ1ªEŽnË¿;>ɦPÁÁvo8ß{±áņ¨FX­nMëÙÖÖî¼õÁqmbfy;ê3¶Ä±ïgÛ»ç2mm§a‰´ógÓªÞ,6p¬|ŸkY;¶wyQ2Ùt¶µ^’j¼ `ý ôM:²¦òšÊk*¿áFÐyƒC<:Ò®dÕ¸q“pïoØæL0qu‹d›f›fkî¯ð§[¤µ¾&¸ÍªÑã’ÓîBÃLçùÎæ;›ïpÿX¤1'bNļáFЉu'„Þ ¸Í²›?»Oë´¥é<7vhìÐØ:„åÒjø 7‚ξ¯¡Gg‚Û¬3½ø5ÓyÖöpê–H;6­jKÅ‚ ãÚEVO·t³­õµ¹nQë%©FÀ» þ¸}Í!†Ž<*ú¨è£¢ædŠÐ+<8’ÖåÝG¯ Å­íf™Îpltltl4uË5g휵sÞð×üòêaë;œt3?FÆ/YäûØÜnüêૃ¯Ro0’;ÓîL»3Í\ÍûºÏœ²Ã…X7“cÄñcÅVúì¬åa:“?Wý¹êÏU©7VÛoxäJ•ÚÊ s‘X7sãà1‡VVô2·k{5õ#ÑΫÍÕ|d|ó¾¾¹¾‘ùqüí*•LgRë©7@Ö"~w„¾ï0t-tBè„Ð ¦ »ßÊÞåºÑÒdfœÑ¿»”f)ÍRšúf-`X€Õ6«mV›}~mlÉö'—Ñê¤ï×é¼½Æs36¥Ó”NS:QWø¼Þøzãë%K– 4] íë7ØYª^Ú”ãýk»÷¦Wvß´b¨¹=ä/»¿ìþ²£ºð)8²çÈž#{Ì­…J‘£/)CÜ›~ ˆ[Ò1ªQ Åç–Ž6±Ðg¡ÏBŸ¥¥¦¥¦¥R]0¸Ô´Ô´T­æM×BÑeRòÇŽq:“æeGÜ›~ìa½ÆÃõ€¹]WÛ“).| ´ómskae‡Ú÷+†rÝã¿Æ)½«Övi_ßup©z¦3¦õƒZoHuÞ଒þ{À„¾ïŽ–`RÚ¤´I!…C ‡6×=¼ÓeSMÚžøÝŸ¹:Gù¼àæÊ%Á%Á%áõ³×Ï^?£¬ð鸖ûZîkf¿G2¥m¿x—¡„¾Ú¨”YÜÝ·¡¹¹Zç¿Î?…OÍXDZŽcÍ­ ·ií¶XýV}±íØÜâ Õr5üÍÜ\=Nxœð8ŠÂ§C«ys+Â+[ÈÔbÂ_œé•@ô; m_mNææJÛ‡©(|j´sosëB)Ó¬“oC®hã”¶Uý]†š›+­¤¢ï0ô‰ãɹ'çžœ3wB_n¢]ÞwŸýÒ­w­ÀO³áI<Ù³hе¥²}‹}kn–n帕ãVj Ÿ¦Íõ6×Û\ÏÜêX˜2òµ»ÿ§ýž˜¸r‚ÿjsóÓç^Ÿ{}îQEø4%{&{&{ú^ò½ä{ÉÜñ?ëôÎ3Ÿhì¶üÛãÊTlØþ³çi¿çû=ßïù¨%|š´ú7·:ª ër¦Äõq­c¦{;~šÑï±b·ŠÓÌî®—|/ù^Òöaj Ÿ&í<ÜÜ91±U ÿêO9ú]˜R«¯»Ù˜\ë©"ÀûF }"†…¹{9ör¬¹“ûò_ÛU³ýòQ›.15ë}BßúíÜý|P‘ÚµËV/bnf¢­¢­¢­¨à§&?5ù©‰¹•2ïÕð¥¦}jÑïyÙ1¿Ùf¿Ÿ”ì•앜x?ñ~â}ꟲ‡-¶|ØÒ*C>k§_ßöÅ'ô­ß‹m•+}£A»ö“ÍÍÉú’ëK®/IýÚZ0·R7wPbQXØÅ‚^|:Ñï ÷¡‡3ÞWµ½—úÁ§L;×ÎÉÍÞ ]n1Ôoö§ýÎ{U³Q³¿>¢õ}Ôàà †>Ã"Éw$ß‘|_,¸1é›fOŒÝðÜsì\§FkGßÂùl'˜›‡v Ø1€šþQ.­\Z¹ž==zz˜[5#÷tkàØ5e`ôñàíÆŽ~·ž9Ïs¡¹y(ж@ÛmŸL|2ñÉD ÐÜÈs#Ï<Ÿx– ;¸bÁŸõÛfñºÈÂö~óƒ—š›‡Ÿùù—Ÿ¡f€ô´uanÕxì®—§È³QgNýæ¹ÆØÑoï~­Ý®ün.Ï<7òP3€F;'×ÎÏÍ­šm‡Öñ\hìk ){}¼}ä_Ç®ææAëõ´¾Ê|ÀÐ'`X0á˜pL8–ñ…ƒ­šÄx«Æk{Žíl9Û? ã÷¾>f}Ìúê0•Ò$¥IJ“N:uêdöisA¹|=õÐñPžš_)ôM¹y¬\ð‰°Y½bv™Ý>X-°Zpßé¾Ó}'ª0u)良—òfü·°ËÍžQaŒýúìa³­®uŒí†B ̽÷Éã&›<Ž:ÌÑÖˆÙ_ÀVH¶ž<(ô@„Ç9ãE¿-sLàð?~FÛc©À”v~®«›[Aa³ü[8íJ¹Ù+"ø„‘®$`è0,^TpTpTpÆŸ÷ò)¿øå‹îƒ>³Ü†çõîž§ƒOþ>à–KPÆïwgÛmw¶¥6€Œ¥M9šrt@¡…ÊxM3ïµOK~¯ÍÙjì|±\ö‚öfo¤?¯ü¼òóŽ8þáx*ÈØµ_¯ýzí׌wb{|ž× ówŸsá@ Ž~«,_p\t]Ø'ûOÖ¿ß9Oç<ó”Ú2C[/¯©VG§wX9ndÌ1oOË }‡ Žª[éšûwµOù)ã÷«í«Ô1í\];o7·šœ/ùª ýµ9íýƒ-=ú=8&¤¶OŽŒw­§Óú;*ðáCŸ€a—¢/E_Š¶Ê„½íô.hY ÏáEÍ×ûÈÌ»;ÖæX›cm¨à_8›v6íìle¶2[Éx}µnUç|Iç[5wÿQ=ÀRBßݨ=A§&ë×È¥NÆï®e·–ÝZv‹Ÿ?=~:EdÞ=¯{^÷¼œo8ßp¾‘ñ*s-Ûë—qÞNË;ÿÞR¢_ïÖ“÷lX_ȹü ׇ¿»­C¶Ù:„zþ-míd¼¾J­«pÔöQ¿»Ö¸o±˜è·qÌHïr-›2Å¡fÆïNÛ?µ½”z2O;o×Îá3^e“ÇÜs©“Ö#5蔥\¹U³ãê­[9/*éœñ»Óú8­§£* 0ô‰†òxîã¹ç6xØàaƒÿq™Òµ|‘ {E¹5ÿÓÏ;-Gïܵóê¨áIîÝ«vðiŸÖK«Œ¨ñeé†EKfü^uJ¯Øà§«áÙ~¤áZÏóNÝ ±ÍÔ·™gúÍô›é—¼)ySò&>v «Ü ¾|/¸alÃØ†±™Y‰†5ê]êÈ)ßÕË«ÔøX¡ïÜûòV¿>î`ïh§D«L;¹ôäÒ“KùĬµ¯×¾^ûze~%:]ïÜuØÓ€æ‹çEfûX¡o¥Ú#o/.SÄߣˆ_—Ìsÿný»õïörÔËQ/Gñ‰YE[SÚúÊÔîQ= §Ý÷Ý.¯²rmþ±BßQÊ©éžËC²ÙX®Sæ÷=mŸä²–vnŸù•8î ¤SâÜFW¿þ±®œòm]­JÃÜj–:’™cÖz4­_ãè0ô‰w6îlÜÙ«!WC®f¾ ~]¶l±jë}ë «÷}GÇêy²¶É¹ß¯³T#bÛž†µ<ç5›æx¦„mæÍ¿ÿ>W­®Z]µâóÞ£è´è´è§wžÞyÚê_úÞ®£}ù¸(Ç¥SüÑK£—Fó‹#Àû? Y½4z©¶î2¿N}[U¶ÿ¾‹ÿ²Ñ.ƒG=µÖsMÖÆ½#öwô˜Û¼Ë„9åÃJÌq)gùcÓöCmoäóÞí<_;çÏü -’3ÿ›¦3_Vkêzðüù6­&dí5”;½VÿåØü†Ÿç÷v^[ÊÇýÛKëË´O 7ÀÐ'`|BŽ >6øØ`÷¥îKÝ—Z½•J‹EŠê?¢ò‚rË|Ys[…£Û|æ÷.$7­ì3OlöÚw½äÒt•Ï•]þå™°8¬VŠ{øC^3ËŸò»Z"¢pØÛýw _(|¡ð¡¿Ð_èŸ6%mJÚ>MàCŠ?:þôÛ9¶sl­ÞA“¤š6ÅÃÆ_è³ÚÙw•øSŠk÷ÿ²ÑÛZ^½øs_eÉâHß^¾™WÈ;rý¤É*ÅϨ2(›khÇÂn—zP¤…M—·ûïöÑgDŸ·=o{ÞöäÓ>¼+•®TºR©qPã ÆAo·Š t°_^jVÉÁ¹[twòêØô‡Úö?7íçŠ]†ÛÍŸPiê‡~õ­Tjä E3<òI¯èòWO5̹ìæg»Ý(äáï7í]ö®õ¥×—^_:yròädnõ |PÚºÓÖ໬b§¶^v£k©}BJ5l™}òw¹;v_4Íy\·Q+¸zv[íí:­Ëªo—ùíÚþ2ÊÉ©qÇ/”½à·7ô¨ýó"ûKoÎÿ–Ý“¶ïi{ Ÿ&ðáiçÿZ/ðv«¸H‹üÙtéXØmL©3ªnr ]?©ÞÜJñ¾irÅ;RYÒl†o/yu³Š¾{ƒïð¶^%ÖéWqíø U\}›$9\/ö.{—Öi½Ÿ&@Ï€¡OÀøô¬J[•¶êÄÚkO¬m$4 Vº7 o@^¥‘ÒHi”Ú:µujk>:@^l±ýÅö««+=udÔ‘QGþ¶ýÛöo[>5@?® º2èÊ ;zìè±CŸ»GÉe%—•\¶½ÄöÛK$-HZ´€O Ðm=jkS[§úÜC´ýMÛëøÔýÐú­GÐs£õYZÏŧ°ÀÐ'` íî»îøÕñWÇ_Ë–)[¦l™ß䨖²-e[jöªÙ«f¯Šsssçs,ũ˧.ŸºÜ¿fÿšýk~¬ %Mò4ÉÓ$Ïþuû×í_—84qhâP>@ÿž~ûôÛ§ßn,²±ÈÆ"þnþnþnk û*ì«°¯®ìº²ëÊ.>ÀRhkV[¿k÷Ðö.mÓö4>@ÿ´~Aë´>âcí!Z¥õS|.ËE }"Þàa½‡õÖ;Øõ`׃]‡vÚ}hw‡‡‡,øº_‰%f”˜ÑÿZÿký¯í®²»Êî*w'ß|—*F!§Éiò5ïkÞ×¼W”_Q~EùМ¡9CsfÕ%’šÇj«ylVø¬ðYá'å“òIù•×+¯W^L<` Ïšøäü‘öGÚi늭+¶®X§ *tª`•Eüžø=ñ{2iä “6:u4êEé¥_”fÎÀ‡A ÀàbccGVYudU«¤FP AÛŠm+¶­Ø‹ /*¼¨Àç ¦gnžC<‡xaf–‹€¡¼Š}û*vc“M66)4½ÐôBÓ­t©ß¢~‹ú-Š;;v6ŸÀÇB 0`/éQÒ£¤G+ί8¿âü»„².EªÕ*œ?(á»Þ¥¶·<5å´CHÇí‹mœw›»r‘k@÷>«ó¸ŽïÒvÙ.—ÑmφÏr|ÝhüÈe§ûöi5Æ~¼ÝÙmm^¿Ý·õ“ÖOZ?‰½{1ö"Ÿ&À‡D 0`LÍ«æUóþÛÀÕ?¾íóâßt½°¢Kò˜zg}¼ÊŒãíUã€~{ëy¸7u ÛS.²XÞ²©òeþ؆o¾eø–çמ_{~Ïà}#0 ó¬ò³ÊÏ*wkЭA·™‰Tݾ«RørOëß»YemЛùq¤|"wåøFŸT¶sæÃ`é´tZ:Í'ðþŒ‡€Å8yýäõ“×3úE‡Þ²5ø¡Ð¥bÛúšÇì=›äU·Ý¬_®8ùgæ½ü˜ðc É9“s&礲0Àx€X€5Û×l_³=ã Ôa®l·ï–Çh½…¾æÆ°í¿ózÚ4rœ\.áDÚá~á~áþzô×£¿¨€¬B 0`zõ$íIÚ“)µ¦ÔšR+ãp´íÙðŸ_[Jèknü¡ƒ²º’³Ó¼€¥vá¿ß¿.ÿuù¯ËÀ»#0ý9’v$íÈȨ‘Q#£Ì… Eǔ͑ÿ!¯$ÏŠ;,=úý¯qLÌ9o¯±¾åFfß(v£Øb À» 0Ý6>l|˜¹àÓǧE/{û1~g‹y7Tôk2v_¶ºëÜŒcà[‹n-ºµˆšx;Àã! #Kë-­·´ž¹°3(ù»¥vŽ+ãämkìè7ýØ/q×A÷ææÄº‘u#ëFÏåXû†n¿åîhn®fæ~* ó€ÆC àãž6Ó÷Lß3}).€Ì =ؽy÷æÝ›µ}xâÚ‰k'®}\÷qÝÇu™™·C à£Ùä¼Éy“³¹ sØš¨ˆJ‰{Íu; êPú‚é¼ÙúÙúÙú½ö|íùÚ“È0|\)ÍRš¥43we€0øíøž®xºâé s ^·ÏVÌwÍEÄ›ñ8vÉùÉ^sŠt,/ÿXÓ9\8|áð…é4€ŒÀÇ•þ»¿# Î<`ÁØycçgÚÎùìiYǾ.ánæÇþỺÿm®=~”ð(áQõ`0|\Z «…»V™Fœ1`Ô½ ÷6ÜÛ`ö¶Ï»¢TzF¬ûoÇš½Z”¼o:Ÿã›o6¾U`0èapV!ðA 6.Ì´akôÝHײ?å¾Ý8bbôíÊ3Ì5ÃOW>]ùt%µ`Šô‰0ø]ø@âÝâÝâÝÌ5i?ü½š§Qõš É^¦¼éÜ.i½¤õ’ÖT €)`Ð?Âà‹À²=÷öÜÛs›¶dµÛô;[Ú‘øöÝÇa7Ž|Q9›¹Ö7uUêªÔUÔ!@zÀ`Yƒ3ƒÀâW¯„_ Ó6ì{{释"ñmV•û4Š*zÙtžcšÅ4‹áyÀÿ…,a°9ÀÞ»GÇtÜ´é*ñ§ËFÛVD¶Y;ö<³®š[ˆél‹7.ŽjHŒ08=`ïÝ^ç½Î{M­Öí¦w8Od›µã˜~g‡z¹›knÓÖ¤­I[CMh€Àxƒ €¼w=Žõ8Öã˜isõC.ŶR^"Û÷1V|ÔÀ½h[Ó9ÐúAë­©I 0Û§xŸÂÓÂÓÂÍ5Ta¿_üÕ+‰°ö}ŒmœèxÃtΕîJw¥;…  !€Oǧxž}^ôyQÓö©â¹úiE›ê!(UâäÏ>Åû:•.pE;6·-µ~ò?n³|æ\Y¯Ò÷<^l£ý”ËÀjW {„ýz±¶×]=¼¯A½ô¸d:óSN=:õ(•  !€O“±Ã``ïÑ•»Wî^¹kÚ2…¼ ëPn‡~¾/ûÏa·ºlåþ8ÍýùºK)}Oû3¶Ùì6[ï\ýgÅ’ÿÔ‡G‡ž÷Oû<5m~ôü `møÙ¾zÒßöY£Ýzøë£/*wÐlîÀT&/^¼xñâÅ‹—ö2=SriçÒÎ¥3Ë/^¼Ò¿öŒØ3bψޟ÷þ¼÷ç™~µ?ÿ =À§ "1"1"Ñ´øù¾õš†9]å¥:ŠUìêkGëþUíEºjÑoúw¡ÿ¸ôiCLçŸÊИž)yñâ9„™hÁíĵ×N\›ùÐWûó>ôMÀ{th㡇6š¶CÝž­ pm§Ïд¡çð\e‹iÇY°Mѯlè¦l­äjú.:>_ü“ó6À­b¦z;˜³õ|ëùÖó©L 0 =Ë }Ó#ð]¹{åî•»¦­QÈ«°åvè-4í{}Çïî-läªU¼vœ-LzTþEúïûVÜWÿlѺÚ?)z lÿü/F9Q¨ò+½½—Ñ¡§Ã=Ï™Î|£‰&6šHeh€Æ}Ó#ð=/ú¼èó¢¦mRÅsõÓŠ6ÕO\:6èܯ¡å{m(¨¡k«ß5._L^ïÿºÕ³öÿÚ.<Ôúšžo=¨÷ƒ—Lg~êÑ©G§¥24Àði2^è›0€÷)<-<-Ü\ãöûÅ_½’ô—ÖÙ3лôí¨ )doÝ{àíýW<6™ wMßK×”³]¿ÖOÜöÇÙ‰Ž7LSé®tWºS˜`øt;ôMÀ{×ãXc=Ž™6Q?äRl+åý¸AiŸ}››V¨k}-%«uÿÜ$yúÈîegeü½Þ°_/ÖöºëT©Êc»éßѨ'xöÑC\ñQ÷¢mMçüAë­´¦&4À`lŸNè›0€÷n¯ó^ç½Î¦ UëvÓÇ;œ×C\úv·q6ý)=ÜzL¿³C½ÜÍ5±ikÒÖ¤­¡&4À`<Ÿfè›0€÷îÑñGÇ7m®Jüé²Ñ¶•ÞžžkécÏ3몹…˜Îö¸¸qqãâ¨F€ô€À}Ó#ðø•ð+áW´ÝúÞ^ú¡¢Hp›Ucå>¢Š^6ç˜f1ÍbšQ‡é€å"ô5‡À²=÷öÜÛs›¶^µÛô;[Ú‘àöÝÇa7Ž|Q9›¹7uUêªÔUÔ!@zÀ`Y}3ƒÀïïïf®ûqàïÕ<=qße¬×lHö2åMçvIë%­—´¦L€þúþ[À>¨qaãÂÆ…™6f¾éZö'BÜ·GLŒ¾]y†¹¦÷éʧ+Ÿ®¤öL€>ú¾ `Ô½ ÷6ÜÛ`®U¶+ê@¥gºÿv¬Ñ«EÉû¦ó9¾Ùøfãyî/€YÀ „¾Y…ÀG0vÞØycç™¶m>{ZÖ±¯K ›ù±øî£î›kƒ%[1ß5ánÆãØ%ç'{Í)Ò±t¾ücMçpáð…çÒ2F ×îÍ»7ïÞL蛵€|4›œ79or6{;è5Q•ôšëvÔ¡ôÓy³õ³õ³õ{íùÚóµ'51`ø¸Rš¥4KiF蛵€|<ÃÓ†§ ¯_;¾v¼i›WÖ­²kÁȱsÏð 'îM?vö\²Ã¥˜¹öøLß3}Ïô¥¸2ƒô ý÷€ }ß0€ìž×=¯{^æâÌ€Vß´)~v\HÌïrD¿}C·ßrw47W3÷ÏÜ?s?yÀã!  êbu±ºØ\´ü Ÿmé/>åèw`Ⱦs#ÍÍOýÖõ[×o’’B-d0Àx€èÈÒzKë-­g.æ Jþn`©ãJÄ8yÛ~:Ño¿Ä]Ýw˜›ëFÖ¬=kð¬Á³ÔÀ¿E 0`º3>l|Øø0s‘§O‹^ööcüÎó*nìè·û²Õ}\çZeèÖ¢[‹n-¢fÞ0Àx€èÏ‘´#iGFFŒe.ø,:¦lŽü y%yVÜa¨èwLÌ9o¯±¾åFfýÞ(v£Øb À» 0½z’ö$íÉ”ZSjM©•qÚöløÏޝ-=úý¡ƒ²º’³Ó¼€¥vá¿ß¿.ÿuù¯ËÀ»#0 °fûšík¶g‹: òý³ÐÕíöÝòm)¡oØö‹ßy=m9N.—ñ»ó ÷ ÷ ô×£¿ýE=d`€ñ°'¯Ÿ¼~òºU&øE‡Þ²5ø¡Ð¥b[½…¾cöžMòªÛnÖ/Wœü3ó^~Lø1áÇ„äœÉ9“sRY‹`<À,̳ÊÏ*?«Ü­A·Ýd&@uû®VHáË=­{ìfõ±Bß‘ò‰Ü•ã}>bPÙÎV™&–NK§ùÄÞ`€ñ°`j^5¯š×ê_òoû¼ø7]/¬hà’<¦ÞY¯2Y÷è··ž‡{S—°=å"‹å-›Z _æmø–á[†oy~íùµç×ø|Þ7`€ñ°xI’%=Zq~Åùç­ÞK‘jµ çJø®w©í-OM9íÒqûbçÅÝæ®\äнÏê<®ã»´]¶ËetÛ³á³_7?²EÙé¾}Z±ow¶D[›×o÷ßmý¤õ“ÖOb/Æ^Œ½È§ ð!Œ‡€¡¼Š}û*vc“M66)4½ÐôBÓ­t©ß¢~‹ú-Š;;v6ŸÀÇB 0`8²êȪ#«~¬¸·FP AÛŠm+¶­Ø‹ /*¼¨Àç Àã!ðÉù#í´?ÒÖ[Wl]±N:UèT!«‚^¿'~OüžLÚ0iä G£ŽFzQúE饙sða€Y)V)V)VQ £F-Œ¼y7òîùºç랯ËÌ}"ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒø pdöÈì‘Ù­à“¡å¤À`ñ€À >¹Xû瑟E~ùYd¶Èl‘ÙÔT5UMUSÔ5E}­¾V_«Ij’š¤¾R_©¯Ô5AMP_ª/Õ—ê õ…úB}¦>SŸ©OÕ§êSõ‰úD}¢>R©Ô‡êCõ¡z_½¯ÞWï©÷Ô{êõŽzG½­ÞVo«·Ô[ê-5NSãÔ¿Ô¿Ô¿Ô?Õ?Õ?Õê õ†«Æª±ê5õšzM½ª^U¯ªWÔ+êõ’zI½¤Æ¨1jŒzA½ ^PÏ«çÕóêYõ¬zV=£žQϨ§ÔSê)õ¤zR=©žPO¨'Ôãêqõ¸­F«ÑêQõ¨zT=¢Q¨‡ÕÃêa5RT#UEUTE•UY•UQUQTAÔƒêAõ z@= P÷©ûÔ}ê^u¯ºWÝ­îVw«»Ô]ê.u‡ºCÝ¡nW·«ÛÕmê6u›ºEÝ¢nQ7«›ÕÍêFu£ºQÝ nP7¨ëÔuê:u­ºV]«®QרkÔÕêjuµºR]©®TW¨+Ôj„¡F¨ËÔeê2u©ºT]ªþªþªþª.V«‹Õ…êBu¡º@] .Pç©óÔyê\u®:WýEýEýE WÃÕpõgõgõgu–:K¥ÎPg¨3Ôéêtuº:UªNU§¨SÔ)êdu²:Y¨NT'ªÔ êu¼:^¯ŽSÇ©ãÔ±êXu¬:F£ŽQG©£ÔQêêêêu„:B®W‡«CÕ¡êPõõõuˆ:D¢V«ƒÕê@u :@ Pû«ýÕþj_µ¯ÚWýNýNýNí£öQû¨½ÕÞjoµ§ÚSí©öP{¨=Ônj7µ›ÚUíªvU;«ÕÎj'µ“ÚIí vP;¨ß¨ß¨ß¨íÔvj;µ­ÚVm«¶QÛ¨mÔÖjkµµÚJm¥¶R[¨-Ôjsµ¹Ú\mª6U›ª!jˆ¢6V«ÕFj#µ‘Ú@m 6Pë«õÕúj]µ®ZW­£ÖQë¨Áj°¬©AjZS­©ÖTk¨5ÔjuµºZ] TÕ@µªZU­ªVQ«¨UTÕ_õW}U_ÕWõQ}TÕKõR½TOÕSõT+©•ÔJjEµ¢ZQuWÝUwµ‚ZA­ ºª®ª«ê¢º¨.ª“ê¤:©Žª£ê¨:¨ªƒZN-§–S˪eÕ²jiµ´ZZ-¥–RK©%Ôj µ¸Z\-®S‹©ÅÔ¢jQµ¨ZX-¬VíT;ÕN-¨T ª¶ª­j«æWó«ùUÕFµQ­T+ÕJͧæSó©yÔŠâ­x+ÞŠ§â©x*••ÊJe¥¢RQ©¨x(ЇRA© TPÜ7ÅMqQ\ÅYqVœGÅQqTÅA)§”SÊ)e•²JY¥´RZ)­”RJ)¥”J ¥„R\)®WŠ)Å”bJQ¥¨RT)¬V +vŠb§R )…[ÅV±U (”Šb£Ø(ÖŠµb­äSò)ù”¼J^%¯’[É­äVr)¹”\JN%§’SùJùJùJÉ¡äPr(ÿQþ£üGÉ®dW²+Ÿ+Ÿ+Ÿ+Ù”lJ69MN“Óä9EN‘“åd9YN’“ä$9QN”å9ANãåx9^~!¿_ÈÏåçòsù©üT~*?‘ŸÈOäGò#ù‘üP~(?”ïË÷åûò=ùž|O¾#ß‘ïÈ·åÛòmù–|K¾%ÇÉqrœ|S¾)ß”ÿ”ÿ”ÿ”ÿÿÿcåX9V¾._—¯ËWå«òUùŠ|E¾"_’/É—ä9FŽ‘/Èä òyù¼|^>+Ÿ•ÏÊgä3òù”|J>%Ÿ”OÊ'åò ù„|\>.—£åh9Z>*•ÊQr”%–ˇµ“m%Y’%Y”EY”ɇäCòAù |PÞ/ï—÷Ëûä}ò>y¼GÞ#ï–wË»åòNy§¼CÞ!ï·ÉÛämòVy«¼UÞ,o–7Ë›äMò&yƒ¼AÞ ¯—×ËëåµòZy­ü›ü›ü›¼Z^-¯–WÉ«äUò y…¼B^./——Ër„!/•—ÊKå%òy‰¼X^,/–É‹äEòy¼@ž/Ï—çËså¹ò\yŽr¹ÜKî%÷’{Ê=åžrw¹»Ü]î&w“»É]ä.r¹³ÜYî,w”;Êår¹ƒÜ^n/·—ÛÉíävr¹ÜF•CåP¹•ÜJn%·”[Ê-åærs¹¹ÜLn&7“Cä9Dn"7‘›ÈäFr#¹¡ÜPn(×—ëËõåzr=¹ž\G®#בk˵åÚr$ɵäZr-¹†\C®!W—«ËÕåjr5¹š\U®*W•ä9@ö—ýeÙOö“ýdÙGö‘½eoÙ[ö”=eO¹²\Y®,W”+ÊeÙCö+Èä ²›ì&»É.²‹ì";Ëβ³ì(;ÊŽ²ƒì ;Èåärr9¹¬\V.+—–KË¥åRr)¹”\B.!—‹ËÅåâr1¹˜\L.*•‹Ê…åÂraÙN¶“íä‚rA¹ l+Ûʶr~9¿œ_¶‘mdÙJ¶’­ä|r>9ŸœGÎ#ç‘s˹åÜò×ò×ò×rN9§œSþRþRþRÎ!çsÈ_È_È_ÈÙåìrvù3ù3ù39›œMÎ&¥J©Rª”"¥H)ÒkéµôZJ’’¤$é•ôJz%%H R‚ôRz)½”^H/¤Ò3é™ôLz*=•žJ¥ÇÒcé‘ôHz$=H¤ûÒ}é¾tWº+Ý•îHw¤;ÒßÒßÒßÒ-é–tKº)Ý”nJIIIHHH7¤Ò éºt]º.]“®Iפ+ÒéŠtYº,]–b¤)Fº(]”.Jç¥óÒyéœtN:'‘ÎHg¤ÓÒié´tR:)”~—~—~—ŽKÇ¥ãÒ1é˜tL:*•ŽJG¤#Òé°tX:,EJ‘R¤¤HФh€$J¢$J‚$H‚tP:(”H¤Ò>iŸ´OÚ+í•öJ»¥ÝÒni—´KÚ%ívH;¤íÒvi»´UÚ*m•¶H[¤-Ò&i“´IÚ(m”6Jë¥õÒzi´NZ'ý&ý&ý&­‘ÖHk¤UÒ*i•´RZ)­”–KË¥åR„!EHK¥¥ÒRi‰´DZ"-–K‹¥EÒ"i‘´@Z -æKó¥ùÒ\i®4Wš#Í‘æHáR¸.Í–fK³¥YÒ,i–4Sš)Í”¦KÓ¥éÒ4iš4Mš"M‘¦H“¥ÉÒdi¢4Qš(M&H¤ñÒxi¼4N'“ÆJc¥±ÒiŒ4F%’FI?J?J?J#¤Òi¸4\. •†JC¥¤¤¤!Òiˆ4X, –J¥Òi€4@ê'õ“úI}¥¾R_é[é[é[©ÔGê#õ’zI½¤žRO©§Ô]ê.u—ºIݤnR©‹ÔEê,u–:K¥ŽRG©ƒÔAê µ—ÚKí¥¶R[©­ÔFj#µ‘ZK­¥ÖR+©•ÔJj!µZHÍ¥æRs©©ÔTj*…H!RˆÔXj,5–I¤FR©Ô@ª/Õ—êKu¥ºR]©ŽTGª#KÁR°$IARM©¦TSª!ÕjHÕ¤jR5)P ”¥)@ ªHU¤*’Ÿä'ùI¾’¯ä+yKÞ’·ä%yI^Re©²TYª$U’*I’‡ä!¹Kî’»ä&¹In’«ä*¹JÎ’³ä,9IN’“ä 9HRy©¼T^*+••ÊJe¤2R©”TJ*%•”JJ%¥âRq©¸d/ÙKöRQ©¨TT*"‘ŠHv’d'’ I…$[ÉV²• H¤’d#ÙHÖ’µd-å“òIù¤¼R^)¯”[Ê-å–rI¹¤\RN)§”SúJúJúJÊ!årHÿ‘þ#ýGÊ.e—²KŸKŸKŸKÙ¤lR61MLÓÄ1EL“Åd1YL“Ä$1QLÅ1AL_Š/Å—â ñ…øB|&>Ÿ‰OŧâSñ±øX|,>‰Äâñx_¼/ÞïŠwÅ»âñŽxGü[ü[ü[¼%Þo‰7Å›âMñ/ñ/ñ/ññññ†xC¼!^¯‹×Åkâ5ñšxE¼"^/‹—ÅËbŒ#ƈÅ‹âEñ¼x^¢è#z‰^¢—è)zŠžb%±’XI¬(V+Šî¢»è.V+ˆDWÑUt]DÑEtD'ÑAtÄòby±¼XV,+–ˈeÄ2b)±”XJ,)–KŠÅÅâbqÑ^´íÅ¢bQ±¨XD,"íD;ÑN,$ ‰¶¢­h+ ˆDÑF´­EkÑZÌ'æó‰yżb^1·˜[Ì-æs‰¹ÄœbN1§ø•ø•ø•˜CÌ!æÿ#þGü˜]Ì.f???³‰ÙÄlBª*¤ )BŠ"¼^ ¯…$!IH^ ¯„WB‚ $/…—ÂKá…ðBx!<ž Ï„§ÂSá©ðXx,< „GÂáð@¸/Üî w…»Â]áŽpG¸#ü-ü-ü-Ün ·„›ÂMá¦ð—ð—ð—ð‡ð‡ð‡+Ä ±Âuáºp]¸*\® W„+Âá’pI¸$Ä1BŒpA¸ \Î ç…óÂYá¬pV8#œÎ§„SÂ)á¤pR8)œN'„ãÂqá¸-D ÑÂQá¨pTˆ¢„(á°pX8¬]üÓÚ}í/yAsH8$„Â~a¿°_Ø+ìö {„=Âa—°KØ%ìv ;…íÂva»°MØ&l¶[„-Âfa³°YØ(l6 „ Âa°NX'¬Ö k…5Âa°ZX-¬V +…•Âra¹°\ˆ"„a©°TX*,–K„ÅÂba±°HX$, „Â|a¾0_˜+Ìæ s„9Â!\Â…ÙÂla¶0K˜%Ìf 3…™Âtaº0]˜&L¦ S„)Âa²0Y˜,L& …Ÿ„Ÿ„Ÿ„ñÂxa¼&„ aÂXa¬0V-ŒF £„QÂ(a¤0R)ŒF#„aÂ0a˜0T* ¾¾¾†C„! a0H(  ý…þB¡ŸÐOè'|'|'|'|+|+|+ôz ½…žBO¡§ÐCè!ôº Ý„nBW¡«ÐUè,t: „NB'¡ƒÐAè |#|#|#´Ú í„¶B[¡­*„ ¡Bk¡µÐZh)´Z -„B ¡™ÐLh&4š M…&B¡‰ÐHh$4 …†B}¡¾P_¨'Ôê u„:B¡¶P[¨- ABPK¨%Ôj5„Bu¡ºP]…@¡ªPU¨*TªUÁ_ð|_ÁWð|ÁKð¼„ÊBe¡²PI¨$T<ÁCpÜwÁMpÜWÁUpœgÁYpœ'ÁAp„òBy¡¼PV(+”Êe„2B)¡”PJ()”J Å…âBqÁ^°ì…¢BQ¡¨PX(,ì;ÁN(( ¶‚­`+äò ùÁF°¬+ÁJÈ'äò y„¦Ï|gšÛgNÏçûñ8m:Ÿó9çý™vÎkÎ9ÙaOØö„¬²Â®°+ì ;ÂŽ°#lÛÃö°5l [Ãoá·ð[ø5ü~ ›Ãæ°9l ÃÆðKø%ü6„ aCXÖ‡õ!3d†Ì°.¬ ëÂÚ°6¬ ÿ ÿ ÿ kš°&|¾ ß…o÷áÛ°:¬«Ãª°*¬ +Ãʰ2|¾ _…/×á˰<,ËÃÒ°4, _„/ÂaqX‡ÏÂgá³°(, ‹Â§áÓðiø$|> ÿÿÿ ‚° Ì ó¼07Ì sÜ0'Ì ³Ãì0;Ì ³Â¬ð~x?¼þþþâb!báðNx'Ì 3ÃÌðvx;¼]GN°A–IDAT¦‡éazx+¼Þ SÃÔ05¼Þo„)aJ˜&‡Éar˜&…IáÕðjx5L„0>Œãø0.Œ /‡—ÃËáÅðbx1¼^/„±alž Ï…çÂ?Ã?Ã?Ã3á™ðLx:<žc˜0&<ž O†ÇÃãáñ0:Œ£Ã¨0*Œ #ÃÈ02ü=ü=ü=ü-ü-ü-Œ#ˆðpx8< †Ãð0< ÷‡ûÃýá¯á¯á¯aX†…¡ah†„!aH¸;ÜîƒÃà08Üî w…;ÃáÎ00 ÃáŽpG¸-Ün €0 Ün ·„›ÃÍáæÐ/ô ýBßÐ7ô 7†áOèú„ á†Ð+ô ½BÏÐ3ô =BÐ#\® ×…kÂ5ášÐ=tÝÃUáªpU¸2\® —‡ËÃåá²pY¸,t ]C×pI¸$\º„.¡K¸(\. † Ã…á‚pA¸ tCçp~8?œÎ ç…óBÇÐ1t ç„sÂ9áìpv8;´ íB»Ð6´ mC›Ð&´ g†3Ù¡uhZ‡V¡Uh2BFÈ-B‹Ð"4 ÍB³Ð44 MCãÐ84B£Ð(œN§‡ÓÂiá´Ð 4 ©áÔpj¨ê…z¡N¨ê„´ÒB­P+Ô 5CÍP3œN'‡¡F¨ª‡ê¡z¨ª…j¡j¨ª†*¡J¨ŽLJãCåP9Tdžcñ¡b¨*† ¡B¨ʇò¡|(Ê…r!%¤„”pt8:Ê„2¡L82Ž    ‡‡ÃÃáá°pX8, ‡†?„?„?„CÂ!áð»ð»ð»pP8(ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛû-ö[ì·Ø–Ø–Ø–ØæØæØæØ¦Ø¦Ø¦Ø/±_b¿Ä6Ä6Ä6Ä~Šýû)–ËŒeÆ~Œýû1¶6¶6¶6öCì‡Ø±5±5±5±ïcßǾ}û6ömì›Ø7±ob«b«b«b+c+c+c_žŠ}û2öeìËØòØòØòØÒØÒØÒؒؒؒØâØâØâØç±ÏcŸÇÅÅÅÆÆÆ>‰}û$öïØ¿cÿŽ-ˆ-ˆ-ˆÍ‹Í‹Í‹ÍÍÍ͉͉͉͎͎͎Ÿ¶Ÿ®‹ÿßv¸Xß0@QH†*X"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆXJ±²¹²ö€#RÚ¸#ä—,¥˜#Uüû!Ù¶ÇgÓg(,° ”bp4Ž”ì³é³XJ18GJ.Ym?Èm”ìœwŒ€ü€` €£q¤àè()° ”b¥%õ›Ûp¤àèšóŽ_° ”bâP4Ž”ìèøŒ…E€€RLŠÆ‘€Ÿq °À0PЉCÑ8R°£ã3XJ1q(GJvt|Æ€Â" À@¾m{`ÛÛ˜\crÉ5¼7à½ïµè¬Eg-JëÖ;­÷qÝŽëv\·ò³ËÏ.?»Æç5>¯ñy£Yf5šÕýˆîGt?bä#ùãw_|÷Åw_|Kœ84ï®ÜF¢¿ßÏ÷Åî‹ÝëØ³cÏŽ=뵨ע^‹ ã*Œ«0.~¼âÇnàÐCý¤Á' >iPÛààü£MßmúnÓw-xlÁc :×ù¸ÎÇ5ü¦á7 ¿©ødÅ'+>YíèjGW;ºÉãMoòx¿Jý*õ«ô^õ÷ª¿W=ÚGçÀüŒ…E€€<Ù2mË´-Óî©xOÅ{*–-°”ƒSN98þßßüÍÁß¼[UtqhÇ ;nØqÃE /ZxÑÂDëov{³Û›ÝþSËŸZþÔ²¨·3ï‰î×Ù¿Îþuvϱ=Çö[c´üÎåw.¿³°æÏ€ó¾Îxô-È1Z]vuÙÕe ÷]ç]ñ|6` ¿`ø?,úuѯ‹~_-Z¶T^ix¥áû—sŠ"íì¶³ÛÎn]ÞèòF—7­¹éýMïoz^Òoamg^öäŠ+V\±âŠøõÖ?.©ÓR§¥N+¬Ì&Çí©²§Êž*ñëæ ~Œâ×Ç{a½k(í`Hè³5Ÿ­ùlMÙb¿)qÉÆ¡xú½tÔ¥£.•{ú]ÞúóÖŸWœÛ™—}X¿Jý*õ«îqIÙœ²9esÁc›7dÇCvî1Šß zwÝÝuw×-ø»€€ÒN€€}ˆ§Ðø-Žs0g>{ôÙ£'^=ñê‰W¾äó%Ÿ/ÙxÐÆƒ6´yñæÅ›/¿dü’ñ“Nj8©aüY³¹¯­eó–Í[6_%™—í,¬8´ëÜ]çî:÷²— ¸l@î™-¿é·°¶sÿݼàüñ­™oÍ|kæOþðäOÆŸßüuý¯ë]ÿ¹ÔçRŸKmÞ«y¯æ½r_Oü‰ÎE—EœœSëã[ßúø×Ë¿^þõòë­´nPü©ÀÎýpî‡solcûÛV”½úØ}Ü×™èoÏgSòK€€}xå‘Wyå‘ܯ gÝÂÍ9…›Eó²†xú½ü’Ë/¹ü’DëiüRã—¿”yyæå™—ïßþ,Î\îûrß—ûþÙ“ž=éÙ“ò²þ¬Œ¬Œ¬Œ¼¬¹SZ§´NiE±ÌÜkd¯‘½FüjÚ¸ø¯/”Ôü,ºu À@~ À0°¿ñû¿Ÿ(º 2|Èð!û`Êd—É.“{ÔùK»¿´ûK»¼¬¬ q(>¯8ûг¯8»èÒoÁ·3/kØÛ˜þcúé_ÏT.Hx€÷¶÷Õð…µæ½ŸÒ]üó³èÖ)ù% ÀÀ>Ô¹¬Îeu.K]–ŽY:f阂¬ÿ©{žºç©{­?~=n^Ö³q(ž~s¿ùmúÔô©éSìócŸû|OŽ_¡[0Žl^n\¸{à@ À ®\på‚+ó»æi§Mœ6±(nÓ-Q" ÀÀ>ì“rúåè_Žþå肬uÙÕeW—²cß#~û⼬'¿q(ž~»ÑýˆîG$ú[f5šÕhVa¥ßýÛÎü®!îãÖ·þ¸uÁ·öíox{D¢W©0®Â¸ ãŠâÖßÅ9ÃK*ŸqÔGqÔþ­e«•­V¶*þë³KjÎݶÑ& ÀÀ>T=¡ê UOH]âOÿM†íÌ{Š_ÛzÍO×ütÍO‰¾þôÏNÿìôÏÖ Z7hÝ ’ÚÎý[C|Ë +‰í©²§Êž*…ง/zø¢‡/Ú¿5ÇŸW- À@î`؇3>óç3N]ªdTɨ’‘ &/q(ž~¯ûôºO¯û4ÑWƃ÷Úák‡¯^RÛY5 9lÈaC+Îmþ뤿Núë¤ÂZÛ€_/ÿzù×Ë'Û– À@”À0°]ûе][6ÏföÙwfßml{`ÛʹoUüJÖë§\?åú)y/Å¿_Ô?LùÔ?î6{fÜ3ãžIôŠ]ÞèòF—7 k8xÿžþ[Ô[.Q" ÀÀ>lúnÓw›¾+[#ÎqÖˆ³>œûáÜçn}bë[Ÿ(ŠíÌ}zì5²×ȼoó©uO­{jÝ¢ÈØE€W\±âŠWî6¶æ³5Ÿ­IôŠÍnov{³Û ÷ÆÅ9ÃK*ÿç•ÿ¼òŸW’mË` J`Hèó%Ÿ/ù|IÏk|^ãó²…$~mñò;—ß¹ü΂oáþmCê´Ôi©ÓŠ3,uþù„ŸOøù„ÂÝæø³½bZï´Þi½àü®9~CòdÛrˆXþñxeÓ+›^Ù4åà”ƒS.[¨†>døø5Çùݶü¾VÿÃûÞÿðÜ¿¦üìò³ËÏ.ܼTÔxg·Ývv+Üã¿n;Ñ+îñç®\Ǻø·\¢D€€|ˆÿ18}púàôÓ?;ý³Ó?+[ò»=yJ¿;ûïì¿sïõçþõnëp[‡Û²Ëd—É.SXû­tàø: +“ À° XöÓÞ?S<ºýÑín?¿ÙùÍÎovì c;¨x2ðþ¥ß¸5Ó×L_3½rŸÊ}*÷)ÙhWð5Å- jùSËŸZ&zŽo ^XGª¤f¯,Q" À@!ÛûgÇ<¶à±— ¸lÀeò†÷~FoÞ_+§›×ß¼þæõ¹¯'÷5œ¸éÄM'n*x^-ê¼âŠW¬¸¢pcü9͉^±Ñ¬F³ÍÊûöÿs—ÙSeO•=UmC…qÆU' À@é% À@1ÙûgÙ ²üiçŽGïxôŽGó¾Î}Ä¡<ÜÀ9+#+#+#÷õÜØþÆö7¶/¬÷^xÊÖ)[§l-Üã5©á¤†“æ~‹ì¼oZï´Þi½“!æe^žyyæå‰¶¡^‹z-êµ€` ô€` ì¸aÇ ;nÈ=í4~©ñK_Ê}=…‡þÝéßþÝ)åà”ƒSιž½ÿ÷ý{¿E€‡6ä°!‡î1ºóº;¯»óºD¯ÿÓ¼¯­õñ­o}|2ļø±N´ m?hûAÛ`(½`øñkI‡Ù÷øâí/ÞþâíÂz­ÜSÜqÝŽëv\·‚ÜÀ9¿Û“ûÚš<Þäñ&ï:w×¹»Î-Ü5| éSÓ§¦O-´IP&»Lv™ºëv¬Û1Ñ+N®1¹Æäy_埻ü¹ËŸ»$ZÛ˜þcúé_<3<>“mÉ­ŸÜúÉ­Ÿdýpá®SòK€€ÿ1à½ï x/ᕦ;†ì²£°^kóâÍ‹7/Nž¼ñ m<(9[Ù<+øq §…ÓÂi‰Ö_îûrß—û>¿¯õæ²7—½¹,Ñ:Û¬n³ºÍê¼Ü²» âןZ÷Ôº§ÖM´%ïU¯ú{Õ ò*pá®SòK€€ÿñèöG·?º=Qn9ç¾sî;ç¾Âz­žþèéžÎýÐÅ€ã&ô›ÐoB¿Dë¬4¼ÒðJË?bå%ûu>®óq+ÈÙSeO•=UZtmѵE×D¯ÒuX×a]‡åwü:û×Ù¿Î.ž€ÈC×>tíC×&zÝ“><éÓ>,ø6À…»NÈ/XþÇÇ­?nýqëâ u½ïí}oï{­¿o“¾Mú6)þœ—5wy£Ë]Þ(¬µ| …õÞïºø®‹ïº8÷5Ïì;³ï̾E±W+>YñÉŠOEØË=êÇ=tì¡c-økE/Ç- ¤öƒ ä—,ÿ«Lv™ì2¹G—šOÔ|¢æóîšw×¼»ò»úÝvvÛÙmàÐCÍýUæL˜3a΄Ü×Vtqè«ó¿:ÿ«óS§¥NKVÔù¶àkØÛ1‹Y|Ì⼯9þTã»O¹û”»OÉ}Íç7;¿ÙùÍ ²o·>±õ‰­Oä}û·LÛ2mË´ý{­ŸOøù„ŸO¸yýÍëo^Ÿû+¶ªÓªN«:Åh‹zýE€3/ϼ<óò’Ú0_° ìÃØmc·Ý–{zI98åà”ƒãÿ=î™qÏŒ{&Mã7û?oõ›Íßlþfóì³gÌžqÿ³÷?{ÿ³§¼|Ê˧¼œûš¯ù隟®ù)/§dc[íµÖ¿E½e `ú?¦ÿcú?Ö Z7hÝ í·Ü>puÙÕeWÿ÷š×潚÷jÞ+/׿~]ÿëú_×/ø^]2~Éø%㫞Põ„ª'äý]L®1¹ÆäñmØôݦï6}—•‘•‘•rs|îůôíÓ£O>=ò²Îºëv¬Ûñ‡'xò‡' ë³½|ÛäÛ&ß69¾ŸãŸëÿ¼òŸWþóJñìÈ/Xö!~ÓײÅ.£CF‡Œ¿ýËÑ¿—í,ê8Ï¥OnE€ãq½(ŽHüzÜ©ó¦Î›:¯p“[|m'n:qÓ‰›Š¦5ÈnÝ {e«•­V¶*ÜÏNôðþ½– ”XÊË { ËÅï_üþÅïǯìÌûOz¯ú{Õß«žèUÊ}_îûrßu ËË ÷ˆ;èØAÇzã‡7~x㇢‹mñë’/Ⱥ 났â™i7¶¿±ýí rsé’“E€ÿÒî/íþÒN¢A€€ÿË^OŽß2·°R\ëã[ßúø‚\]Zœq(÷×:óç3>óçø•ÓE±y_ïp-Ó Lƒ2ûw\.\u᪠WÅoß]L™m¯9ö§ Úð§ …5ÇÊÏ.?»üìžc{Ží9va¹…å–+êwTð¶¶=°íˆXòc¯P74shæÐÌø•»ñÜ¿o<¹UWa\…q'}xÒ‡'}Øø¥Æ/5~©ûÝè~Ä£ÿïÑÿ÷èÿ[öಗ=½„Stï(¿lg·Ývv‹?ý÷ú)×O¹~J³Û›ÝÞìöêßVÿ¶ú·©ÓR§¥N‹çüö/¶±ý‹Ã>öñ°—ŽY:fé˜d8.{?[º_¥~•úUŠ'öøL‹??8~{êø¬køMÃo~/‡:phüÚå §n8uéQšiyÉ®û·æøœ‰¯áœûιïœûÒz§õNëÿ,ï=[âŸe HN° Wéÿ¾-¬ë)Í4ò²Ÿí ù À0@)àF¸° P À° P À° P À° P À° P À° P À° P À° P À° P Ù‘Û° N€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "àÿúpNžÇG%4æ–ИWBc~ Å>þ]BããŸ”Ðø´„ÆÂ‹Jh|VBãó‹Kh|QìcI ¥%4–•ÐX^BãË+Jh|UBce ¯Kh¬*¡±º„Æ7Å>¾-¡ñ] ïKh¬)¡ñŸ?”ÐX[Bc] Khd–ÐX_Bã§Š}ü\Bã—Khl*¡±¹„Ư%4¶”Ðø­„ÆÖÛJhl/¡±£„ÆÎ»Š}d•ÐØ]BcO ì’³*¡qp ß•Ð8¤¨† Y0@DD6Ç9ÀÀ#²x}çõ×wþpv‘9%4<“ØÓˆ=8ùŸF|à<‡øÀyñóìá/Jh8Ï>pž:|àpžìÉÁžìiÁžì9Á%õœ`Oölà¤*ðú>ëû¬ïÙ+€( 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!ÀdOæžÌ=™ÍÿhþGógϘ=cöŒ…_/üzá×ö «XõÀªæt˜ÓaN‡šÔü£æ[ÛúÛÖßì€ä!@©÷}›ïÛ|ßæµ»_»ûµ»{ÔëQ¯G½cÚÓö˜¶e ,½zÿôþÞöì°gç¼2ç•9¯lî¼¹óæÎö9DÃöôíéÛÓ?ýàÓ>ýàï£þ>êï£Ú,h³ Í‚²…¤ëá]ïzø §¼pÊ §¬l¼²ñÊÆÙdý=Pt`(eVL[1mÅ´¡‡ =lèaeKHózÍë5¯÷Zå×*¿VyÓŸ7ýyÓŸH~;îØqÇŽ;Þ™ð΄w&t>ªóQ*©ï!ýÚôkÓ¯ÍÂ/~¹ðKÇ€Ò+ç¿q³™}ÈìCìJ– ImçS;ŸÚùÔ›U߬úfÕjÏU{®Úse“RÏ©=§öœºâ–·¬¸ÅQƒäñCê©?¤ž;xîà¹e“ØØ²cËŽ-»åÍ-onyÓQ ´€IN0$¬áYó†O¬>±úÄê *µ»e¤Wºû¬û\pây]~cÍ#¯¾þé‡Óîí1øÅþu]?ôåÆu¾ö¥±ëwö¹³Ïû÷)®|ñ1ß•»öêcëÝsâO´h5©n׉tx¼áÖw¯ì¼¢ñìYÿ¼ð‘¦½?xùÂÓš6˜Ñ®ÓÔÆ)/ýëì›N?lI‹ºiM;ï¬ùõ C ò½ktêèÔÑ©[m]´u‘£ @2€IN0$‘ùÏÎvþ³šThR¡IÞcIÓV—œ^å¶k›?ww[¾p|£q÷Þ»lYãÆ…µ¼yì;W7xü¢kÿ:ú”¡UG×995#7zÍê—Õ/kã„6Np|¡è쨾£úŽê#RF¤ŒHÉGè=ü˜¹åþô·ßZÿ©nì‹/.»$ã¯ÙÙ7Üо}a-w¯ëýB»O>ªuÑêfn«”þú)kòƒßZôÖ¢·eÏÏžŸ=ßQ ÙÀ$'JØoƒüÛà~=úõè×#O×õž‘qx¥Ûz|ùRÙºnèÍûrð¬…#=ÁA÷¼vr÷¼‡œ™½göžÙÛ‡Âõ鳟>ûi>®×¿7Ö|víëŽì~÷_nîÍûraÓK[·8óªõÚœ˜§SŸ·ê¼Uç­Êl—Ù.³#@ò€IN0”˜%× _2)s?¸øŽf#£~s.ŸØÞæüSN´Oîë|_çû:›?˜ä$@‘øäèOŽþäèD‰¢õÀk?«úõ½—.Ѹ֓~÷^ò¯§%L8M—7]ÞtyV£¬FYÌ%L}2ûdöÉLôùøþKZ5ù@K¿{/Çì>«oýæ‰öÏä“;Lî`PÔ`’“ …ì—m¿lûe[¢,‘~Ðß}蜥Kßv`¦ß½—ý³g¶oÐ=ѾRkH­!µÌ(4šOh>!aÚœUãÂîMÏ;ÓïÞË»µl^çŽDûjå‘+\y¤@Ñ€IN0ž=Ù{²÷tÝÜus×Í9OwgÝǬº§ögÙ镤߽—=SÆ5¨ûn›ܾ=÷í¹o›\¾«ô]¥ï*%ú,¼xUûõ§u}ÿgùà -Û×¹¢cÝ[OìsUkU­UµV»^ÛõÚ®×Ì.Š‚\X¦Ož>yúäø>¼üýãïÿË9¿œóË9öÌþ€ ÐÌl;³í̶‰âÍmÏpÅiëåÞDË· þõä#í½mS·MÝ6Õ#²ºfwÍîÚrRËI-'åœÿ½æ4˜Yã[¹7Ñò·[®¿ë¬5‰¾{Œª0ªÂ¨ ¦EA.¸Ýî¾p÷…‰þƒ÷ …`ë ­ƒ¶JtÚ⪎95­µÄ›ûrèÄ¥W¥ÿ\cZÃË+<“s>4ã¡Í0Óˆª·zë ·Jô=d˶ëÏ?kžÐ›ûrñš®YíÃ5»ÖìZ³ËL p À·÷µ¿¹ƒóN€BðhËG[>Ú2çIŠú-Ú¬<àÞ¡Ë–J¼y[ÞzOxñ´ôD'}Ö=¼îáu›oDÉöØöØöX¢9?{ëE}›þ"îæ}9lm‹ÓÓ2öñ‹8éW¥_•n¾P¸à‚‹ÝxÜ-›gbpî`(+7®Ü¸2ámŸû~pði+dÝü.;Ö¾í®7åÜŸ·Œ¸eÄ-#Ì:¢äù©ÏO}~jÎÙ~é´‰Õ ºù]nmqýGmS}OþªÊWU¾ªbÖPXàÂ% dÔQCF Éy¢Ý—}·œ¸GÊÝ¿åàc>íÖ¨g¢S<ë{¯ï½¾·¹Gi·3ì ;C¢yþí_®:²õ5‚îþ-'Ué8âô9÷êÕ­®nuu+s€Â"1¸ `ØO;»íì¶³[¢Sƒ^wÃém¥Ü‚,/øhèN~!ç¾}$ó‘ÌG2Í@J»Kg,±4ç ¿þ‰ú?Ö¸NÄ-Èrר^¶kŸèûsæ5™×d^cPppñƒóK€ýôÞž÷ö¼·'牆Ve»_Qõzù¶àË»}\óô]‰NèdµËj—ÕÎ<¤ôj2¿Éü&ósÎí••®8¢Um·àËçÏhbƒU9÷ðèñ£ÇoPppñƒóB€ýÔ©f§šjæ<¹pó!3ÏkpMi ®7<³Cƒî{¿—dتŒ[¯qÂ>ž²üñ²—}¼Ì<¤4Z7yÝäu“sÎêËoWq p[XËM¯÷H=ëˆD'‚³S³S³SÍF B.Ybp"0äÛ–W·¼ºåÕœ§RS+}‘»÷²eo\K.¬e߃ßìTÿ9÷vÿýô_`6R½xÓ‹7½xSÎY=ù_çÖ:}½p[¸Ën[ël©–•so¯î¾ºûêîf#!'1xo0äÛìgÿ8ûÇœ§.8âž÷N¾®ôÞr99ðÐ?,i•þv¢S6{*í©´§’9Ié’Q#£FFœóù—ö×Õosd[¸Ë÷ŸúÓ'M~͹·ŸÞüôæ§7›„œœÄ`òmÐâA‹-ÞÇ͟׾³¢Á$¸(–-n¸î"°cÍŽ5;ÌLö\zE; ÀkŽ]sìšcsž8gù­õ«ïNž\zçMóÃéM«Ôrh¥÷Ó]çümW­ó’39ñîô;sns“ŽM:6éhfRZÜ^þöò·—Ï9“××»fü™£’!”ÆSîm“Ó×Ö<4ïß=º¼Q{OÕÿöòõ;ë—ä ÀÓ»œ¿3ýù}œ¦;{ìì±f&ûGކèÅ`òaAÓMìã:Ô«F9.­ERäÒ£—•i\¶ÞëgÍ9ön3[ÃÙS*¿ÞåÔáÓkVîuâø£êU¸øÝ~>eK½Œ6YÇÎOtR#Ù®iN=¹ÒÏ)³rn§™Iiqæagvæa9çð®cznW;Bé}±ÃÒúÆ·ªâ“åV¥|8ä°f³j_ñnçÎKð鉗,kñ»—_=û£Ó¾n³ºzÖqïëó˜ŒxùònKZö͹µc_ûÂØÌLö=шÁ0äÔÚSjO©óþ™2òÔéÉH/ÿqôµ»î½mçvºãÎ ãšè„E›¹½Ÿ¬¶=ùp½ÛκúØ•0¥WÊË)/§ìã âÙ+n¸¼}«’M¤ß|å=­,÷}J•²S+÷9f}¹^ËìÖµeõD_ßòÛŸk|fÍŒäÏÀ?]xmê™_äÜλŸ¿ûù»Ÿ73Ø?p´•Þ,@><}ÑÓ=}QÎòo}ÿ½ò§› ‰´ÁâgVΊoUüÐyºÁrÛÅ?¥ßqBßÚÕ˯HæÜ²ìUÏV-+Sz圽õþq\J… ‰tØÇ-j§ý÷×D¾¨åÖ:?æ%åî:·×„vãOþï/Ä´oØó¤’-omyýܶårîÿëR¯K½.ÕÌ °þe€£ªtÅàƒ’ç#¥×f¯køT2$Ò*;k]V~j|«®ªõÔµi•òžrs¾¯d Àíæö]|âvó(9kdVÇMM†DzÙ€:=ªý÷êäÙ3.º¤é·yÿ»{¿£Æ/pS¥¹É€w>Ù«g»£Ì7 øMŸ<}òôÉ0”2×Î-wúïJ6ŽÞ=pÑ‚F_ï½U7¯}gEƒIy_ÃÕ¿þã¾´7ö^C²àsÞ¼eCõMæQÒqÇ)U¹:iúÔÊWYðwtÒ‡ç”ñÿNž¼kq¯¯Úu1߀â·sÒÎI;' ÀPÊ$ÃÀ·ýñýKN›¹÷VÅ“pÞ×pã}o 8õÛ½×à `(jÉsp¥áÇ4IÙYðw´÷z\ p]¿ºa†a†a†a”®qǬ;fÝ1+çôÉð à!Ó¿˜–þϽ·ê–nï¾Ø`qÞ×Ðý˦¦íIæœèÀf¦QZFÎÙ›<ÏnPæ¸;Æ·êÍeçMn´ì«ó/ÿWË]û·L¶œèÀ.îtq§‹ÍLÃ0 £°þeòÐ'}òP{&zãí;ß¾óí;oøÝ ¿»áwyO¿ñ¯?€ž ¥Ñ”ÚSjO©óû™2òÔéÉH÷Þª«ž“–Ö*ï·Ó-ÙzÒWÉ€ëÝvÖÕǮ̹ÿÍLJ‹”—S^NyysxÅ —·oU²‰ôÂUµ6U­ßž™};Wo|q²=Ç· ËŸ.¼6õÌ/rîù»Ÿ¿ûù»Ÿ73Ø?‰~1Ñž‰†x¸½üýãïŸ÷èÿúâ¾{€ 4]ÐtAÓœ?ä_5jÌqi-’-§=ܪC¥5yºz¸íâŸÒï¨:§Î_RÏKæœzr¥ŸSf À”^gvæag–sï:¦×èvµK6‘º¥I§š«ãÛÓûÞÓ:éȼü­7ôü­íüŒÕ†W.“ÖûØo*ü~ÄY­.¨[-ÙðòåÝ–´ì›sÏ}aì c_03Ø?pô”Þè»7òaͱkŽ]slÎøÏY~ký껓!‘^qÅã­kß“s }ýÐg–¶Oÿñ¬I}jØ6ï«np}þâÝéwæÜÂ&›tlÒÑ̤´¸½üíåo/Ÿs&¯¯wÍø3G•l"]ôë¥kZü÷êärß§T);õínJ_›ûߺë⦿«õ?¿8_O²àé]Îß™þü>NÓ=vöX3€ý#GC4¢ïÞ`ȇíÛ3¶gäüá¿æ˜f'W\—¹ôèeeïãôDý gO©üz—ç¼§æ½NT½ —óÐÙ5{žZ½íß*WˆÍ }kW/¿"9ðíÎÚÔp×^|gà;ß13)-^ýý«¿õ÷9gòüã.ÞÞlu2„Ò}<»îÖÓ.;©Íø»ÏYÜph<îN›xþ»éw]:*íjÿó©ì~D½åÕ«'ÛÓãËÁß6ý­Ö79ßÝškv¬Ùaf°àÒ+zÑwo0ä[•—«¼\eOñ2ú‹Aé#“!—J{ÝéåNÚ$£âÃy9‘QcaÃ+¼ÃÉ€¯©öÏ‘uRsnù´FÓMkdNRZ,߸|ãò9gòˆ­®­['Biü–ÎWÕ®wò‰Óò~2´óq5:¡Óö=ÿÑö±ä À5;TšžÚ9ç–ïܰsÃÎ f&ûG.]¢}÷&@¾ Z?õù©9gû¥CÒ&Vk$åæw¹µÅõµMIô=ù«*_UùªŠY@a€ —è[X`(¶|´å£-sžŒ¨ß¢ýÀÊîºl©¬›·å­÷„OKOtrgÝÃë^÷°ùF”lmm%šó³·^Ô·é/²nÞ—ÃÖ¶8=-#çž¼*ýªô«ÒÍ7 —\p¢oQ€ l´uÐÖA‰NO\õÏ1§¦µws_¸ôªôŸkLkxy…grîÇf<4ã¡fQõÖAoôÖA‰¾‡lÙvýùgÍws_.^Ó5+£s¢}¸fך]kv™i.¸à¦Ož>yúdÑ·p ÀPhf¶ÙvfÛ„·ƒ~þƒ+N[/ô&Zv>dð¯'™hïm›ºmê¶©æ‘Õ5»kv×–“ZNj9)çüï5§ÁÌßJ¼‰–¿Ýrý]g­IôÝcT…QFU0Å( pÁí¾p÷…»/} — …gOöžì=]7wÝÜusΓÇÝYc÷1«î©ýYvz%¹wïeÏ”q ê¾›è¤ÏÜ·ç¾=÷m“‹Áw•¾«ô]¥DŸ…¯j¿þ´®rïÿ,¼¡eû:Wt¬{ë‰rî±j­ªµªÖj×k»^ÛõšÙ@Q€ ËÞ׋¾'@!ûeÛ/Û~Ù–(á¤tÁCÇw:géßÒ·I¿ý³g¶oÐ=ѾRkH­!µÌ(4šOh>¡y¢ÏŬvozžô_>Ø­eó:w$ÚW+\yäÊ#Í(ŠŽLr€ H|rô'Grt¢,ÑzൟUýúÞK—h\ëÀL¿†ü«Çi'Ú?M—7]ÞtyV£¬FYÌ%L}2ûdöÉLôùøþKZ5ù@N¿cvŸÕ·~ÂL>¹Ãä“;˜E5˜ä$@šXmbµ‰Õ%ŠV“¯é_õé¡C—VHÿæÀI¿·Ô·kƒ9esµ¡Ë†.º˜?Èv¬ß±~Çúô¬ô¬ô¬„7Hÿàâ;š<ÐÒïÛÛœjÂ_¹¯ó}ïëlþP<`’“ EîÑÇ}ìÑÇåŠÓ;UyóàϾÒh\´Óï 7½–RoEîéwõQ«Z}”9qïßxÿÆûËw+ß­|·DŸš7æœwv£1ÑŽ¾»oî}[»7ïz»iÍZ×%Ú½ôjЫAöÉÙ'gŸlæP<`’“ Ådø½Ãï~o¢tQ~`ÅR†ßÒõݱ G/ýv9txÿšGåž~——Y^fyórZ_{}íõµË>Uö©²O%ú ý{ó‹kOÛý}ï±í>ŽRúÝPëÚëÛü¾íküù¸…‰Þ{÷îÝ»wï¾»óîλ;›-'˜ä$@±½iô¦Ñ›rO¡—Ì{xXÍï½kÙ‚ÆJoôxëGç4\YÿÆöŸV¾/÷÷»ò™•Ϭ|ÆÜ€Üm¶a؆a§@Þm±uÄÖ]ztéÑ¥Gá÷fdÖ9{ÇО{Ú.,-Ñ÷?m®pFÆ¥—¤=]--÷w7rÖÈY#gežýyöçf%E&9 ÀPb– _2|Éð²y~ÝŸš?ô–?¾[¹ÁÌd‹¾Cnÿ¢múW½:æì´¶yy/7÷»¹ßÍýv<´ã¡™°ŸºdwÉî2j䨑£Fæås7vh» ¦nírý¢¶“-ú®{ªû›gd JkÒ¨æÂ¼¼—÷SÞOy?Å À$'JØoƒüÛà~=úõè×#/ñ£ö‡Wº­Ç—/•­{QIEßÁ³ŽhôüÝóÚÉÝËæÙÌÞ3{ÏìíˆCáúôÙOŸýôÙ¼ï5Ÿ]{Ǻ#»ß}Æ×%}6½´u‹3¯X¯Í‰só²Íç­:oÕy«2Ûe¶Ëlçˆ<`’“ Idþ³óŸÿl…&šTh’÷œÓ´Õ%§W¹íÚæÏÝ]çÖÁŸ/ßh\áæÞ›Ç¾suƒÇ/ºö¯£OZut“S3ò¾mý²úeõËÚ8aã„_(:;ªï¨¾£úˆ”)#Ròþ ­|ø1sËýéo¿µþSÝØ_\vIÆ_ 7ôî^×û…vŸ|Të¢ÕÍÝV)ýõS֔ͧ·½µè­EÙó³çgÏw”H60ÉI€¤“5ìsÁ‰çu9dø5¼úú§N»·Çàû×mtýЗ×}øÚ—Æ6®óäåÝ\»v§«ÿ²ä¤%ÍftWå×ÊïTŸ|̳û÷ºÚvj۩튆+®hèhBñ[Ûhm£µúÜÙçÎ>wîß§¸òÅÇ|WîÚ«­wω?=Ò¢Õ¤º]'>Ðáñ†[ß½²óŠÆ³gýóÂGšöþàå OkÚ`F»NS§¼ô¯³o:mü°%-ê¦5í¼³æ×' -È÷®Ñ©£SG§n]´uÑÖEŽ&ÉL&9 ÀÔv>µó©O½YõͪoV­ö\µçª=W6)õœÚsjÏ©+nYqËŠ[5H?¤þúCêใçž[6‰-;¶ìز[ÞÜòæ–75J ˜ä$@)³bÚŠi+¦ =lèaC+©TÓ¼^ózÍë½VùµÊ¯UÞôçMÞôgÇ’ߎ;vܱãŽw&¼3á ê|Tç£Jê{H¿6ýÚôk³ðË…_.üÒq ô€IN0”zß·ù¾Í÷m^»ûµ»_»»G½õzÔ;¦í1mi[ðH“Þ?½zÿaÏ{vسs^™óÊœW6wÞÜysgû¢a{úöôíéŸ~ðéŸ~ð÷Qõ÷Qm´YÐfAa…Þ®‡w=¼ëá/œòÂ)/œ²²ñÊÆ+gýAöö<@Ñ€à²'sOæžÌæ4ÿ£ù³gÌž1{ÆÂ¯~½ðk{È‹U¬z`Õs:Ìé0§ÃGÍ?jþQó­¿mýmëoö @ò€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"âÿ}îÒp5ElÚ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/skipWhile.png000066400000000000000000001511161431412030200253350ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝut×âÿ}(·…·IH „@  N¡¸»;+¤¸»C°â®%ãÁ‚¬PÜŠkñçÝïúå>‡É=›Þ¯¬5««$#{öÌÙg>³÷N pI(p Àà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀød<ñ@ÆÐN¡B;…u ëÖ‘2ð¥¹àþûöéÿïGüJÀ—F´EËP´)_šˆ "ì_¹åþ•¡…þúW¸K¸K¸ %àKsÅûŠ÷ï}5÷ÕÜWsÑýE÷}9èå —ƒ(¬€ø‹s[½­ÞV·œÛrn˹ÎS:Oé<%óËÌ/3¿tбBÉ %+”lðÍÁ7ßTû«ýÕþ×=^÷xeÀjÞ¿xÿâý‹3êõŒ:/ͼ4óÒÔ˜^czéN±D¬M¬YlEl‘’`5¢µ&Zn¢'Zt1¿Š¦hmŠ–§h…Ræ¬éÚ´kÓ®M[órÍË5/[y¶òlåé”Ç)Sž˜ß‹Ÿ,~²øÉÑkG¯½ö`’ƒI&y¾úùêç«)sVóºÿëþ¯ûw9îrÜejÊ©)§¦,_¿|ýòõcë›rƒßüÖà·àíÁÛƒ·_¼sñÎÅ;‘›"7En¢äˆ Àîj²«É®&ï>Þ}¼»S)ÔºPëB­—/_¾|ùò‡^½zq^ħí>´ûÐn_Ⱦ}!-¦´˜ÒbJBÝÅÖÅžˆ½âìˆO¢%&Ze¢…–P÷CÑ:-UÎ €øw>ûùìç³Þ:xëà­ u' 0<`ø¦+›®lºò|ðóÁÏs^ħ7ûÞì{³o¯ÿ^ÿ½þ5o×¼]óvBÝ»í>´ûÐãÍŽ7;ÞŒó 1²½³…& MÊ·]$0`‡òþæû›ïoîuÙë²×ų“g'ÏNN–Ô¨s£Î:‡„„D¾|ùžs v=Êõ(×£\SfL™1e†“…‰={ËYÛMÃÈ÷‘ïE‹K´¾¬y'­VÑ‚­YN€Øõ¦ö›Úojo8¸áà†ƒ™Ïd>“ùŒ5ï‡]Wu]ÕuÕ¥)—¦\šÂYn¾=úöè¡Û†nºÍÊß”—TXRaI…^txѳÀú€aMÀ‰Þ‡!†|²cÀŽ;Äèíãʲa@VKò-ZtiX2¯,Ûÿš–Ô§º*ϯáûξ°_ñrÁ¹•}ÛoÚ1ñMÑœ³æ ˜X¨T—£ Îås?—wf†©Ÿ·]ÿWþ¯ü_Jz*驤œM1ñøŸÇÿ<þ'(GPŽ 1¹f»[rWå¦ùÊ5*Ô½‰Gé®ßÞèÒ?åÌEêμ XŠÿ#þUü¦ø«˜lWì¹8 Î&€˜-+ÑÊúÌ;aXþoÒ-/yªio—U5õaeòTkZlfDÞm²ã&·û}å¯îsÛÖ_îùºy• V¨³m´kÞ…eµ¿˜cyÞ¾…2ŽÉýP´lE+—³ àó¼kú®é»¦+–­X¶bYLîH•Îä>ã¼vh£®ùß_©Ø´ðW;/þäî£h>µ“Ï`üP{Wñá!{k5óM»!MÕ1Þã¦5,SÔ£b»†ž§rÕËÕ=cÅt=?o»õ&Ö›Xoâ¥í—¶_ÚÎÙw6ßÙ|gs—y]æu™÷™S{œÌ¸5M…æj`×s“’ô:å^mm›±Ç‹<Ú[evŠbª>gR¼½¶~Aòâ…w7š±·X†·F,¼eTšÎg V¬Õµ\—1¹ÏÈ>#ûŒì/G½õrg€5Ú€±ðÁáƒÃô.è]ÐÛþfSã#UÇçx¾sýô®>;ž)ëÊíŒ<|¸bÅØZ^µ­@@#Gù^Pªv‘-Y>epÔ A-‚î­½·öÞZÎ/{DGGç ÎüÉ3´åuª×±ÓТ3Fæ[1¤téààÇcw)Ö,¶ò©û&ŽHg€=D J´¦ì¿Ûäq/z/cæúW&¬Ë·ö—¡RpaŸ#Î+V,¶–ƒ\žx+-ÆÍ+8Ù{çOU³>³ßD+W´x9¿ìº7toèÞOm}uœ]8yn'ùÂÏù|'¿Ù~I…Y‘‘:U¬[Ë !MÆù_œ··|]O7·TY\2´ßúWí_µÕ癞gzž‰ó Ào:¿éü¦ó$÷Iî“>aJ¸Ìi2:§É<¹aïËîsOY£–ê»Ï ?¸„Õ üsÿÄÅçKT뻿ÅÊ|ßê½zÛ•mW¶]‰ ‰ ‰ á,°`XpbkÀ]sýÍõ IA“‚&ÙÓ0*VÂã~¦M{®Ì|X¬{ì6Úì_¾z00°Ü’AK¼¦Ùߤ[?lý°õÃ"ŸE>‹|Æy`ëÒùKç/÷¨èQÑ£¢=w•œaÕ24õôÍ0!ÍÆmq÷Ú³[{bÏ>‹£GÊðÏ"ŸE>­&û[Yu7Ž9Ÿ÷qPÓÓ}†ÅnÜkÿ²UªE¿¸9å¬ày6ƒ«]c$L š4I´„9íl=wzîôÜ©CÖY;dµç®R­w^lƒöý\gJ‰ÿÄnÐkÿòÙ“¶Ë×™Ö¥LIªößÕ$J…'9Lï}¼÷ñÞößU†ßꔣÀÁ;mwO(³+¡ž—W}W²E‹¡?Ëù•]÷ðFÕUktw×Ý]wwqÆX0¬‰¯ ‰Æ•zWê]©çääü?zuü¤•Íæâwv꺖¥î&TÓÍl±;,Y .ïž»Ûwt¶‚Yj¥ý&úci¶¦Ùšfk^,~±øÅbêaíÙµgמµçka~ÿ¦{7*YtîJ¯„ }Í–b¯ÄÚs,â¨9ûÑ:-¥èïjey“&O›ÁCÜÎ ïzæ™ÏŸ úš-»Ë;x.ñxU¡|–Ñ‹h ‹V1u€pbƉ'fØÓšjWÖóP®ZWû5[7¡B_³åÛ©Úþ°)²Ú’¢vï5Ðu ë@×w}ßõ}×—: ò—È_"™qqÆÅíšaw~P ¯¡/B¿®ÜjOï~µçxÙtK¶É™ÿG»^‹I§¤SÒQ$,`Xp" 8+Ίsôͽœ¯¥5Ž>X±Èï¥ÕšnÑ/7öŸ˜ÄûBôG—úrêË©/_k­ýµöÔàËôþùûçïŸ÷õíëÛ×÷ôôÝUõ¯&7KŸ›IfµÐ×4 .>7“2LìyôG'J@”µø2‰‘hEÇh²xÆ‹V‹{£_v^²1O¡2¯fÛžfÝÿxØç¬8+ÎÔàK¶Ækׯèï¥3¸ÍÒïBX“Éþ—­úš-?lîø ðí‚k\=þè|žù<óyöpßÃ}÷Q€/ÓËç/Ÿ¿|ÞÀ©Sƒÿ”ŽiÝ­«Û7o\öwª°;±<3¼urWÍ2M®«|%Ç€ènj§©¦vŠ4"HƒZ þÚ€-mUðªàUÁÑ7qfm°¨PÙ]¦ÞO\ÑoÔåÓªg¹m·Ö®œë ‹zÒó¤çIOêðåxÕëU¯W½jøÕð«áýý¡èì‘^+Æ%–Ð×tæàÙ#½VŒ‹þHEiˆ’¡†_Ñ ŠþþP¼{ý±Ù~Ôýðï ‰+úº®ãó²æÑauòÔŒþxEk™º|A""#"#&úOôŸèÿ?FOÙUåw契%ô5[ÞYß²q™•ÿÈSÐùRôÇ{­áµ†×RA€/Ç£Ì2?ÊœAþù˜Ý d͵:ýž‹w6M*í’xŸŠ¥ÔmÎß’Ñß »÷ìÞ³{ψI“"&QCÄ'`X°E-_¾ <úfÍéÜk•j–Øp¶ËM+&>(êý±Îy8çáœÔÀ±½lù²åË–~Ãü†ù™Îm™£ryÏŸ#J[z!±G¿Q—âˆÄÑ™»(QJÔÀ±‰–Oô­£¦…f>.Ð#ñ†¾fËns¶Õñü1h9SOw3òfäÍa_ûzØ×fwƒÜí3.O·úzåæ ¦$öè×v9¯Rùž©£¿^êt©Ó¥NTÀ±Ý¿~?<Í¡4‡Ò2»¹w8P mÄï‡þ ”é™áÃmÒÀr¹÷ú¥t6¢ùŒæ3šÏˆH‘:"5µ@ü †5[ΊÀ+Í1þy½d)ó$@Pn—ãE¿Q—ç’¬ÛíŸ,ú/·§.ºtêup?ðTéÁÓïr¤è÷¿–%‚§Þ%ŽÔ¬D)‰£æŽG´vþG_‡;vxnq¼è7êr`dØÞ;òLó™ŸÑ´ç‡hESgG5úÜès£Ï™>î?äÑÊõÏ×]ÛÏ©0Õñ¢ß¨Ë}ƒë,)‘2úÏ…›)n¦¸™‚:8ž§ÎOŸ:g˜“aN†9fw€Ís&­-ZϱŸF¬8ô¢uM]»ýßïÿ~ÿ÷fWúµÅ¯æŒèÔ±bà—ýF]^ÚÔtYéßÌʧâw¿«ø]Ä¥ˆKŒ›$z]Ïw=ßõ¼éDi–mõëøe>3Ëý†äôœbV>ëÿ\ÿçú?©Eâ0¬‰8½êùªç«ž©ÝR»¥v³½M”»ê{*ë„wNø’›qby»Ð®¹ez™5æÚ¿kÿ®=0ˆík»¯í¾¶f׸GÃ®ÍÆdþ’£ß¨KQfe%J’$^¢UcÚë·ˆÞ°HÖ/3úº ʾק[þê~-2å¶-%Ѻ-mjÝÿãþ÷ÿ0»vr.\"w¡È<*æü2£ß¨Ë3 --µÕ¬¬&¸Mp›àF¯µ¡kC׆š]ãêóùýŠ'癡XNHÞ³¢›iL~ñ‡‹?\ü .Ú€XŸ¢}Šö)jÖ4yÖWó.ïK.ê2¼øj½T~³ÛñvÇÛo©W@âòT{ª=Õ̮뼩êµë4Ð×v)JÆtÐ?í©öT£v‰‹hɘ]×Ýòn왑è7êrðG¦MeVb¢¥M½™Í‘›#7W›PmBµ ¶×µâ’)ÓÌw•;¬ô!úº 9\«oF³ûáñ Ç3Ï@å—Én$»‘Ììº>;"{á$<'ü¯åÊÿU,Ò¼V*®²m‰eÛ–m[¶mïj½«õ®µ @ì"Ž-;7îܸs£(ÃÑ«G¯½úqåÇ•W¦d>p‚ »v;ì¶Y3îüý Åý{Ót3[®¾0fa‘Yf¥÷øõã×_SǀĢóåΗ;_¶½–3­wóöNå²4ù¡?ˆ{m—¢dD)Ù–ž(UjXˆÖ‹YÛ¦áÓ)•ò7!î5[ö¸¼ë'ÏH³Ò­nêXl®´¹ÒæJfWôÝS­ò•-OÜk¶·É¿±Û³Ò{Ûåm—·]¨c@"00r`äÀ2éʤ+“ÎöZn§×É–«[dÄá0ž~lùÏ+ãY…¯Ìî„S+L­0µU @ì"޹ˆÚµ#j›Ý½ ƒ?pxï÷Þï½_úVé[¥oe[•—vžÌk#͵ÿ±||X®X®A¦J+r|d®ÐžË{.﹜šXßñ9ÇçŸcöÑ^bÀô™»[ôF¿¥dÚÛcÎñ9ÇçPÓë­Û«¸ð³j>Y›Œx.¬˜7Aoô˺÷Ç–Ë÷Û2­nѧ¦Vöìɳ'Ïž˜µj¤ŸjÍð¥×ïÿX¾_ÝÑ-ð·‚«3¿Êƶ g]›umÖ5j`};Æì³cŒÙýðEGýò«y6ýòtäÚ¼¥Lg¾™êfª›©¨ib pÌEíû=Â`û'€ß‡ü>ä÷!¶·Hß‚o2žù01lMà3jö,ï_ù¾¬é¼Pï_¼ñ>õ °(ÏHÏHO~ý<ú}dÆß"]nŽB¸û ³érsôG>YD ‹Ò¦ÒÖ$Z,fí™HçŒpמåð“g—ù¼Ë1À}[ú±¶%)ZàÔ7ÀÊFÍ5oÔ<Ûë·ùYv®îÚ¿¼Ð«I7ÿ0³O–‡}öy؇úXÓŸ7>o|Ì®_céÂÉÅ—ñ<Ðþåo§ºz\g[’M4yÐäõ @l!Ž9èŠp×Én„ÁÑ#ŽW¯C^‡¼1«¬ç*¯{쟖ÆÙ§.ƒ» ?âõ·myÖK^/y½äÔ:Àš´]Ú.m—í•›®k¶c®‡ü¯/ «O¬û ÃA__V_”žm©ŠÒ¦ÖÖ$Z,iÉ´—9Ÿ±î'aÇOɬ½-ZãÔ:Àjüüàç?3ìsì.‡:—ø>ÿCÛòæ7Ìo#"µ¼ïò¾Ëû~¤eèS±`öM<üÔåËý¡3*x™}¾\Hr!ÉžˆÀ±‹08¶ð!¯Öº­u[ëf[5Ûµëçò¦YöyËwY¼ t3»ì/߸|ãò ê`!'#OFžôHá‘Â#…í5ëýl¸GðSÝÏ[ŠÒûH?à)½ûôfx+ÀBθŸq?ãn{µfü.ïî]KûÏ<¼—(÷3—~Á3ï%i[¢䩀uˆVÊG†¤Û?³D„¸1YöI)/,ÜζlEk\´Ì©€¼ªóªÎ«:fnž>hëV>QnL–K—uÏh[¶óæÌ›3o5°Ž?:þÑñ޶Wk›*?{ä¼Ìs¿uyvpI`SÓq&†Ür—‰BÄpü þTÀñä䘓cNޱ­|?_/?Õå1M±˜/ßÌݰÂi³‹üŸ»ÿÜýç.õ°‚N':ètâ#ó 7œ}ABܘ/EIÚ–°(yj `¢ebÖnÖçԟ„¸1_zö­x9ËGZà¢eN=¬`GÛmw´µ½N‡,+~)ÿ)âÛ˜/ölT.½Ù'· |(@=¬À¯¯__¿ þ|áÕÆ“þóÜ/æËå©F¦+\ɶ„§oš¾iú&j €˜ Ž„Áö Ž'ÝÎt;ÓíŒm… »¶¬”°X[ŽëÓã;·!¶å¼§Ìž2{ÊP„õjÙ«e¯–™}ûO^ÒÿPRâÛX˜xò’þ‡’š•³8 ÔF a‰–‰íZåUß\¹šÜÆÖ²“ûºE¡¶å,ZæÔCÀ J)=¤ôG¾Á]»Ú¼pÀâÛØZ¶øÚ£¿ëÛr>}âô‰Ó¼ $°» î.¸û‘að 9监áBdÄáC<ñ‹å³¶ZÞòÞ¦/ÄÜøpãSÈøLÀ ‹0Ø pœ{·àÝ‚w Ì*ÙûÕ‡ þfÆvkAÑâ¥Û/­s8×Ïlù›dL—il†Í©ßæ“«hú95JÜËv}bù^¥Ýs¼³Ï­BS«5æ®gÚÞ.`”m9× ­Z+”Ú$¬}%ö•ØWÂö ÍW¦QÞî?[!:-ux‘Ó¾;ùó6yßë­s‘b5˶I?ÌÕ+oÞÔWÓïËØ-SŠ…¼úºÜ+}¥z÷"¿É´pƒ•c`Qª¶¥-εHX¢eb{…ö)-?-Ü×úÁê°æ§šøÌ×¾øÑŒçÄž÷Jº§ŠWK«ígн3©|6šµÃE+Ú$”'-Ÿ´|ÒÒöÚt[Ÿ¥a†VMß—êøU`×´á©û;Ýsú,·ç´x^fœŽ%ìr½¥~¶{8tÐÐACQ„µ²ÆÊ+kØ^¡’¿ä=ÚBj¸6¸|õ©¯û<ðð*ûÈ7}Öº9R9ÏL»A,+h%ªf}=©h¯·îõ_Îí^!¯5càf«Ïvo[Ú—.\ 6ø<ÀÖApœ;ûê쫳¯l«ÔÀmFä/`‰PÊé*:õºß48¯û§~¡=êµâ;¿ÃjÌI‡çVôÍè•~yêõ¶{ûúÁë¯P'„Ò£[n=ºÙ^›¾e'ÌÛÔ:aãÒb}Æ¥_Ÿ+Ãw9ïäobÿ=0GÓò=k×.íœêp*«À¢Tm÷Yœj#PDkÄöÚLÛ/}dê"#Úœ[ZÌÝúpi©ÕøìKlš{[îqÇK®_Ûî­h¥S'„²wÀÞ{Ø^›ÁÇ*Ö÷ú`…Ðô¯ÒM3•.âÖ €ßéÐ40¹Ù~F¶ŒlÙ’: $”Ò×K_/}ÝöÚ|4@N_®–ž¶þiÙ4¿æ;æÞá?ößoìÛ±#à–Õ`ÝuA›âÕl÷v/æ¾ 6ø<ÀÖDLçf;Ívšý‘jt¤Ëòž~K¬Ðô™’á—_ܨûæQ2ïõ ¿Ïo5¸Šg­c®+ö—üJô ߺÇ>·mÙJei‘ö»¨¿ÿä©úŸrW¬Ó˜;§{s·4æÎ :D@¹Èr‘åLÖ—f>t*ÁL¾¶tHXíÌç Ýð=ùï-H½?M ëñÊIó˜ÕÍy¬“ÏW£F­ ðÔ/`Æù…Ê]þy¶Si§eNG¢…å‚Ö—f>tÊô1_¹Èr‘娘@ü­‘ þ<©O—\~Ö~­›:1ÿ<³{‹E‚þ{ý­BÉl÷V´Ò©“@Bé²¶ËÚ.k?o~/ào+„¦»‡üt°˜KÔ}›VÖÅ#|Îär¿Ú`ÏòÅŽv>å÷Xg è¦ùÜÛ»–µ-ó{ãï¿7ž: Ä¿×}_÷}ý‘yóoÏÕ0}°ž°]òÜ<¹tGÑÇWì›÷I÷ï2åÔ½º[E9çÜr¾mÕÿÌÛë{ò· ]3\žÝ%ë¹´ý£K„û¡ÙË­óÌðE}xù9¶eî—×/¯_^ê$€ÏCl}_fLçʧ,Ÿ²|JÛªóOf£Bù Ûèy=`ß 3\Ÿºü˜.‹Ø+Ÿm#3Mî¿!Í_‰ÿõ¯Ì~3¡–GŸ®öûH¯ëEß-únÑwÔI þ=|ôðÑÃG¶Weö䥪ßNØ Ô³mïSSþ«_²Gû®ãÇÔÿjîŠÿ“gQþi C‡Üß8mÍ E Û–¼8#ÔL þ‰ÖˆíUÙyÙÆ‚…ÊZ9úíQlg>Ïé“dÚ˜zGâ €‡Ô<Zt íÞŠV:uH‡#G6»“DDv\xÊ q©ˆ{ÿ˜ºQ–üþï›ob xÓæj˺ږ¹â«ø*¾TL þ](t¡Ð…B¶Wåøš=vºm²Â¶úË*UÊñ•Ø«j J÷ÊÖWL gû<0êÿÉ8'ý‹Ô†5ŸŠeAïÜ#Ó¿¶-ù·ýßöÛŸš àS'._NL‡"ŽE‹8f[Q²žË\)Í+4wöt›9³Xݨû¶õÜ”nEÏÙÓ8‹úWbž ÍJâ§}]¾ mÉ7\ÚpiÃ¥ÔL þùöÈ·G¾µ½*=|º<=!a#Ò¼õëWê¼HìOº}.ç*jÏÎѧ<Þþæÿ:ÿþ¿ÞÀV €E dŠo|{ä[j&ÿDkÄöªôôHË¢ßX4@Í~¬gÑÎ9ÿãÙ>Ãÿ¶ýftùÃuZb €Å2ýÆÌ—S?þHÔt,âXÄ1j&Ÿ^Œx1âÅÛëñçùù¸\±N\Úó[ï£y±oµ/çš=b€¯Ži¶%à#ß”G·Ýftj&ÿÖÿµþ¯õÙ^•-ÙXb\Â>[û³Ë†…þSÄþ¤NêtÄ©â_¥7ü¿ñíyf(&›ÛvpjŸ”V €ƒòu0 ´ùÈ(÷oÜ¿qŸš àS'^ŽÇ¡'þOüŸøÛVŽŽëêµÍÞ Í…å†èžÒç æ|$`y ¿YÿFÚ3ÝN³ÈBïôU9\ªb¶\—­œZ9µ¢fñ/¸{p÷àî¶¥ÏÃ1]Ö|H؈ÔõCå™ Ÿ¥ë”ÍpÝëÒ¿@ÕöD¹%vÍhºç#_­‹þÈìz݃»w§f ðµ°•S+§V‰NÝÎËlÍèÔ×¹n‰léþí×+àBf¯ §wø,J\°_ÝFç\òÙî³h±S3øt©î¥º—êÚ^3“–-âqÕ:qiµyseûwhÖm|WçÏx£_±|ݹýì SlK¾rÆÊ+g¤fño@Ï=ôüÈÀìeþ8P¶iÂ>[›P§çp·»ÿ÷L…zÿï%kE¹Ÿ·ÜýÃŒaÅ>2Ÿ±‘ÊHe¤¢føäoúÀÁñÂ`à8tñØÅc?Òxaî!k=wZ¡¹#ÞÂëܶ¾”ûמß6Éÿo7jïa1ÿ‡Õ‚eäby³~læKñ®ÏÓ>Oû<ýÈ,;‡f‡H²5OŽ~Y°vë³ODí7lÍX”°mÉ‹3Bͬðµ0_åâs3µfhúóœ½óü-ö3K›œéÓï_5´l‘_×ÐbYûÚ¨­yëÛî³h±S3ø¤>R©™D>úsNß Ö‰K£îÛ¼žå‹{f™š<`—ûÛ29+guq®–nqšÓ…ܳVÌp¹q;79Çť߮÷š™²SªŠVí%|¶SãŠþf÷pj&ÿʇ—/þ‘ˆ˜˜*aŸª5YYÍÑCìÏüVƒ«xÖŠú¯o:í_QáÐ};vÜz9;´{…¼‰+¾ycnÿ¶%¿xÅâ‹WP3Äü›>pbça0pÚÿõþ¯÷m[ ¤$sZúæ²fÈþ·®x,û¿=€9ÚÒïM´Ø©™@|ZqsÅÍ7m¯Çó'Ÿòïj… ôyhÛ‹åÿkê «ÒŒJ=Éž‡>•GåÉà|òƾæ·nY3öO›#¬´9Ë¿ãYR½MÖY#RKYì#ánâ €{ÛýÔ«&õ °²G;[¿)×Ü éžn5sþß„GE®fKžñѺZU®zçŽ:4´í_ýѼæ b>[,î=ªèy¹UÆ(V0kj+kög@9ûÿvÛÁÉ}RŠ#r¯šeF†^V €ýÓæÏRŠoÊ€¤ÛŸnºý¹à +Oاjm•Úµsû³k⌬>wìÿÛ2³{-þ¶ÈU·Yí¹âÃbR¦rÉmK~pÍÁ5פfˆù7}R2ŽA·£W^=zµýÏCÄïÇèpºxìⱋÇlOüÂÜCÖzî´N£§T•"k³üûµ‚V¢jÖ×\¤cåJ%ÆÐ7게\,oV'¾ÖVÐçiŸ§}žÚ^~‡f‡H²uzñºfÜS¯‚ýëöC;—!ºøÛ¬¿PÈj°(aÛ’g„š Xáka¾ÊÅçf<š°áèàG®ué•tO¯–ö/£E+eñ*·ª¶ÿj¸öµQ[óÖ·-Ñb§fñI}¤>RÙ^òÑŸsúN°DDê—ãz– b¯*Ê“Áù¤ýÛë~ÑáyÝÅß¶U<çý_|b‰øl§ÆýÍQQ3øW>¼|xùpÛëñíâ³S%ìSµÅ¹‡ùyûÓ=_£MyjÛÿ·†·:˜oøÛ–ïj¶ÌÙÐjÏ/dÞ˜Û§mÉ/^±xÅâÔL1ÿ¦OœØ%ÞÐ7*à8ôÄÿ‰ÿ“|¹ê¸®^ÛÜé­ÐÜ‘sÎ-çÛVìUê¤NGœ*^α¥jé%‰=ú¬r¸TÅl¹þZ9µrjEÍâ_p÷àîÁÝm/JŸ‡cº¬ù`ØiAêýi½§ {¾´IôU¢ñtß]÷Òýà¼$G9ñ§yó×ÛÑéšÕ`Q¶%/Î5H€¯…­œZ9µúHOY·sÅ2[yÝè硯•÷Ö¯n£s.ùlK^´Ø©™@|ºT÷RÝKum¯Ç™IËñ¸j… Ô<"î¯Ôÿü<Û÷dêgN†ÓñûÆÚ³Nßß×ÛÏ®ð‘±*g¬œ±rFj&ÿôÐs@OÛ«ò^™?”mš°ÏÖDç¬3ÝN³HìÕú²ã½ÛÓ÷7Í4NÛÄ_mJ7q÷«=9ÜýÃŒaÅþc[òF*#•‘Šš à“¿é;Ç}£"ŽCÇ"ŽE|¤pÖs™+¥Ùc…æN»ÍuRæêôo¿·§.?¦Ëòïõ“¦-´áS—ÖiÆ=óÓ¾._жä.m¸´áRj&ÿŽ|{äÛ#ßÚ^•>]ž°i±“ãKlX˜újú}»EÝ·\GªÒ²¦çŒ_ÚN- †zöré›ez‹¼õëWê¼(ê€Ïbö_1 ´Õf)%l[òâŒP3ø'Z#¶Wå §GZý†8î–é7f¾œú±mÉ‹;5ˆO/F¼ñb„íõøóüü\®X!(}z½mþòòÍÎt*ý¿¯ìˆX·ýR¯ê¹–lßS£•O…Ã?Õ ók¾¡HÕ™ÞÓºV,Ò>÷í¨Ño»ÍžÏÿï»¶uà«cšm øÈ7åÑmF·݆š Ä¿õ­ÿký_¶WåEK6–g…'l¶ûÖ´Rµ­®•WS·ÈðC]ƒ3•xº¡È„¯¼§µ_Zçp®%¢{IÔß´fב |ŒmlîÆý÷oܧføTÀ‰—ã…¾Qǹò)˧,ŸÒ¶Šü“Ù¨PþD’Q¬aV—ØšãÍ:͸£OWû½²ÝÃEß-únÑwÔI þ=|ôðÑà ô—=y@©ê·­”þ;ï¼L)³´°ÿ¾—ÙÅ}AÑ+Å2yºv­ÕúþŠ¥(aÛ=g„š Ä?ѱ½*;/ÛX°PYà¸X©y,´è@Û2­tê$GŽÖµfèu©».hSü#F澘ûbî j#€ÏClM_fèpœ{·àÝ‚w Ì*ÓûÕ‡ þFp[Ëë™¶· e[εBk…Ö ¥6 k_‰}%ö•°½Bó•i”·ûÏVSãR”ªmi‹³@m–h™Ø^¡}JËO ÷%²­eн3©|6šµÃE+Ú$”'-Ÿ´|ÒÒöÚt[Ÿ¥a†ÖŒQï2ìr½¥~¶¥=tÐÐACQ„µ²ÆÊ+kØ^¡’¿ä=šg}±»lÖ¹úl×ñ¶¥}9àrÀåj#€ÏCl„¾QÇ“ngºévƶb…][VÊæW¬-ÇõéñÛÛrÞSfO™=e¨‡@ÂzµìÕ²WËL‚ž¼¤ÿ¡¤·±0øóä%ý%5+gq¨@Â-“ ýªo®\Íncmðg÷u‹<>´‹–9õ°‚ÒCJ)ý‘op×®6/0€à6¶–-¾öèïzǶœOŸ8}âô ê!°î.¸»àîGºŽrÎ7#ÅȈÇxâËgmµ¼å½Í¾)¸ñáÆ‡ÔFŸ‡8aúš!Ž''ÇœsrŒm%ûùzù©.i„Å|ùfîþƒN›]ÌÿÜýçî?w©‡€t:ÑéD§¶×i‘†ƒ³/èB|ó¥(IÛ%O ¬@´LÌÚ-ÃúœáS˜ø6æKϾ/gùH \´Ì©‡€ìh»£í޶¶×éeÅ/å?EpóåÞ­ƒÊ¥7 < |(ð¡õ°¿¾~}ý>2ð…WOúÿÍs¿˜/—§™®p%Ûž¾iú¦é›¨b‚8þúÚƒ8ž|Øüaó‡Í©K¦.™ºäGÞnÞº=}@7šb1Yn<4±¬÷CÛ²íݧwŸÞ}¨€uœq?ã~ÆÝöjÍø]ÞÝ»–ö žyx/!îg.ý‚gÞ+JÒ¶„EÉSë­Û«µÉþ™% Ô ¾É²OJyaáv¶e+Zã¢eN ¬àUWu^Õ1{@óôA[·ò™qc²œè\º¬{FÛ²7gÞœys¨€uüÑñŽt´½ZÛTùÙ#çežûÅdùîÙÁ%MÍ>kî¹;äîj €˜ Ž„¾ŸŠ8^­u[ë¶ÖͶ ¶5j×ÏåMƒì3›qY¼ t3»¼/߸|ã2C¸Vr2òdäI)äÀïC~òûÌÙ·à›Œg>L [øŒ&š=Ëû—C¾/û‡ÙñþÅûïSß‹òŒôŒôôèçÑÏ£ßGz¬érsôb]û—¢Ä>R’ý<úyô¥M¥¬I´XÌÚ3þ>Î;±®=Ëá'Ï.óy—c€û¶ôéû+ZàÔ7ÀÊFÍ5oÔ<Ûë·ùYv®èÚ¿¼Ð«I7ÿ0³O–‡}öyÈ4I€E½ñyãóÆÇìú5–.œ\|Ïí_þvª«wÁu™råA“MPßÄà˜#ô À à½ß{¿÷~é[¥o•¾•m•]Úex2¯4ÑþÇòña¹b¹™*­È‘Ͷ {.ï¹¼çrj`}ÇçŸs|ŽÙGx‰ÓgînM¸ýR”’YЦ¦Ö'Z/¶WqágÕ|²61ð\X1o"Þè—uï-—ï?¶e(ZÝ¢NM¬ìÙ“gOž=1kÕH?ÕšáëC¸ýòýêŽn¿\ùU†4¶e8ëÚ¬k³®QÓëÛ1fǘcÌî‡/:ê”_ͳÁè—§#׿-5Ŭ o¦º™êf*j€ØBs;7îܸs#¡oì"N0a·Ãn‡Ý6«Äçïo(îß›æšÙrõ…1 ‹Ì2+½Ç¯¿~üš:$/w¾Üù²íµœi½›·w*ÿ¥ÉýAÐû‘aŸC–&?ô‡(%ÛÒ¥Jí Ñz1kÛ4|:¥Rþ&D¼¦Ã>_Þõ“g¤Yé‰V7u H,6WÚ\is%†ƒþ¼å¸MþÝ&˜•ÞÛ.o»¼íB‘#–IW&]™t¶×r;½N¶\Ý"#‡ñ„ðcË^Ï*|ev'œZaj…©¨bbpÌEÔŽ¨Q›Ð7v'°>EûíSÔ¬Z?ë«y—÷¥éu^|µ^*¿Y‰íx»ã펷Ô+ qyª=Õžjf×uÞTõÚuHÜk»%cVn¢T©]@â"Z2f×u·¼['{f$îºüã‘iES™•˜hiS¯€DfsäæÈÍÕ&T›Pí#A¦â’)ÓÌw•;¬¤7ð-C×jã›ÑtT˜ Ç3Ï@å—Én$»‘Ììº>;"{á$<'ü¯åÊÿU,Ò¼V*®²m‰eÛ–m[¶mïj½«õ®µ @ì"Ž-QûúÆp{ÕóUÏW=S»¥vKíf{›(wÕ÷TÖ ïœ<,@3îv¡]sËô2kø¶×þ]ûwÔ( ñÚ×v_Û}mÍ®q†]›ÉLèû »6“Ù¬¬DIR£€ÄK´jÌ®ñ~Eô†E²ýå ßëÓ-u¿™rÛ–’h]‹–65 HŒîÿqÿû˜Ý ;9.‘»Pd‹NsýžYØhi©­fe5Ám‚Û7jx­ ]º6ÔìWŸÏïW<9Ï ÅrBòžÝΛ•ÕÅ.þpñj€¸@ k"¶„ /.¼¸ð¬Ò4IµA®Å#~:´9pí—Ù€{"Ľ¬aV>Y¶eÙ–eÛËw/ß½$½)Ù¦d›’Íìz÷¼Þ§Å´n_rô+JÀ¬|DéQ‹€ÄN´jD Çìzðþ€¯÷·_fô;ÜïÌ|ŸCE«Ô¬æœË¬|D뚺$vû¿ßÿýþïÍ®ô!k‹_ÍÑ©cÅÀ/3ú½´©é²Ò¿™•OÅï*~Wñ»ˆK—".Q—€Ä®ëù®ç»šF›‡,Ûê×ñKŽ~ô’ÓÓtÆßõ®ÿsýŸÔ"q‡ÖDl!{¥½Ò^ɬ±ÒøiÕU9Þ½v`H`Š/§w§ÛîéeöD?é÷•7VÞXIýDéÈÒ‘¥[Œk1®Å8Ó8C¯‹“ }qÑo†^'2+Qb¢ô¨D€c-œè[AýÂŒÖE~úr¢ßa×ÃËùÔ÷>ðS§¬¦ó%‹5õp$Á?ÿü³ÙU?(´¸{þöîuúªbò/'ú= ñ1ÿÎÑF<Íñ4ÇÓÔÀ1¼­ö¶ÚÛjÅÝ‹»w7»ê÷ï^ü¶D½/-úÛbà®B™•ɈY#f˜Eý×€aMÀ–³"pEàŠ@³†‹^ïYÊ< P”ÛåØ ¸sIÖíöOýÚS—N]:Ż̀#~¹Íü6óÛÌ»vì2»¬ÓúüÀS¥KO;¼Ëa£ßÁÓïGjV¢”D‰QsÇ#Z;Ñ·ˆº¿Ø±Ãs‹cG¿#ÃþðÞ‘gšÏüŒ%ÍÊA´¢©3€£}nô¹ÑçÌîÍy´rýóu×ös*Luìèwßà:KJ¤ŒþsáfŠ›)n¦ ÎŽç©óSç§Îæd˜“aŽÙ`óœIk‹:x ±âÐó@yˆ»Áù÷š•C»Úíj·«ý!òCä*€8G k"¶¨á „Gÿ¥îtî5ƒJ5s¼fܦu‰þØç<œópNê àØ^¶|ÙòeK¿a~Ãü†™Ý rT.ïùsD©q B/8Rô+ŽHÙ±‹’¥Dm›hùDß:jZhæã=/úí6g[Oÿè]´œ©'€ƒ»y3òæ°¯‡}=ìk³»Aîö—§[}½ró†S/úW©|ÏÔÑß/uºÔéR'* àØî‡ß¿žæPšCi™Ý ‚Ü;(Ð6â÷CÿÊŽôÌðá6i`¹Ü{ýR:{™¾4£ùŒæ3"RG¤ŽHMm?€aMÀ–¶*xUðªàè¿àÍÚ<`Q¡²º„M ¼ŸxpO ¨žå´ÝZ»r.Ïè÷¤çIÏ“žÔ àËñª×«^¯zÕð«áWÃ/úûCÑÙ#½VŒKìѯ8ŠèT”†(jðå­ èïÅ»×›í·AÝñ¾ˆgùÕÎŽñyYóè°:yjF¼¢µLݾ ‘‘ý'úOü¯†¬ÝUåw契=ô½³¾eã2*ÿ‘§ óÿ âZÃk ¯5¤‚_ŽG™e~”9ÿ‚ü ò/0»3Èškuú=ïlšTÚ%±G¿R·9;|KþqqzvïÙ½gĤˆI“¨!â0¬‰8PœgÅ9ú&NŽ^Î×ÒG¬Xä÷2q5à6öŸ˜ÄûBôG—úrêË©/_k­ýµöÔàËôþùûçïŸ÷õíëÛ×7ú;FÎ]Uÿjr³dñ¹™”a‰%ô{+ö<ú£% JƒZ|™D‹H´Ž¢¿c4Y<ãE€Äýv^²1O¡2¯fÛžf]ôG'ZÈÔàK¶Ækׯèï¥3¸ÍÒïBX“Éþ—KèûasÇo\«àêù{ôGçóÌç™Ï³‡ûî{¸ú|™^>ùüåóN œDÃpÓº[W·oÞ¸ìïTawbyfxë䮚eš6\WùJŽÑÝÔNS;MíiD‘µ@ü#†5'Wê]©w¥žsssPôžŸ´²Ù\üÎN]ײÔ]ËÍÒ±;,Y .ïž»Ûwt¶‚Yj¥ý&úci¶¦Ùšfk^,~±øÅbêaíÙµgמu²C~ÿ¦{7*YtîJ/Ë…¾Eçþ¨ô{hϱˆ£æìDëH´”¢¿{d¨•åMšZ-ôí.ïhà¹ÄãU…òYRD,¢%,ZÅÔ‰'fœ˜aOkª]YÏC¹j]í×l]@^«…¾o§vhøÃ¦ÈjKŠzÛs,]ºt}×÷]ßw}©"‰ü%ò—g\œqÑž{È’ùA-¼†¾t ýºBr«=9¼ûÕžãeÓ ,Ù&gþí9%’NIG°€aMÀ‰Ì›ëo®¿¹4)hRÐ${šAÅJxÜÏ´iÏ•™‹uO¨¦Û»¡Ë-y´Äkš“ÝÖ[?lý°Èg‘Ï"ŸqÞغtþÒùKç=*zTô¨hÏ]%gXµ M=}3LH³q[B…¾bëbOìÙgqtâH9ã>âYä³Èg¢Õd+«îÆ1çó>jz:£Ï°„ }[¥Zô‹›SÎ žg3¸Ú³Ï¢õ+Zœv¶ž;=wzîÔ!k‡¬²ÚsW©Ö;¯G¶Aû~®3¥Ä*ô}ö¤íÄòu¦u)SÒ£ªý÷p%‰’DáISÇ{ï}¼·ýw•á·:å(pðNÛÝÊìJ¨'‡ÇåUß•lÑbèOÅr~e×=¼QµFÕÝÝuw×Ý]œqV@ kâkC">8|pøà‚Þ½ zÛß°k|¤êøÏw®ŸÞÕgÇ“ e]¹ý±Ûh»:j[€+FŽò-¼ Tí"[²Ø¿kN-‚Zµº·öÞÚ{k9¿ìœ'8Op§O”ש^ÇNC‹Î™oÅ8™ÍwÆÈ|+†ˆ­|꾉#GÇY`Ñ‚­)ûï6yÜ‹Þ˘¹þ• ëò­ýe¨\Ø'vƒÞA.aO¼•ãæ‡œì½ó§ªYŸÙ¿o¢•+Z¼œ_ö ݺ7tï§¶¾:Î.œ<·“|áç|¾“_l¿¤Â¬Ø{/„4çqÞÞòu=ÝÜReqÉPÐþ}ë_µÕþUŸgzžéy&Î/{¼éü¦ó›Î“Ü'¹Or·ÿn“9MFç4™'7ì}Ù}îé!kÔR½b÷™á—°:ø|‰j}÷·X™ïûO½Wo»²íʶ+‘!‘!‘!œeÖA k"Nô> ù0äÃv Ø1À)¾+z*ˆ5Z-É·hÑ¥aɼ²lÿkZRŸêª<¿†ï;cøÂ~ÅÈçVöm¿iÇÄ7EsΚ7`b¡R]Ž68—;Ìý\Þ™¦~Þvý_ù¿òu*驤§’r6ÄÄãÿóøŸ A9‚rÄä~˜ínÉ]•›æ+רP÷&¥»~7z£WHÿ”3o©?8ó‚6b)þøWñ›â¯b²]±çâ(8›bB´¬D+ë3ï„aù¿I·¼ä©¦½]VÕÔ‡•ÉS­i±™z·Éü›Üî÷•¿ºÏm[¹»{¾æëæU*X¡Î¶Ñ®y–=ÔþbŽåyøÊ86&÷CѲ­\Î&€Ïó®é»¦ïš®X¶bÙŠe1¹#U:“ûŒóÚ¡J¸æ|¥bÓÂ_í¼ø“»¢ùÔN^<ƒñCí]҇ì­ÕÌ7í†4UÇx›Ö°LQŠízžÊU/W÷ŒÓõü¼íÖ›Xob½‰—¶_Ú~i;g@LÜÙ|góÍ]æu™×eÞçÝ‘2ŸÌ¸5M…æj`×s“’ô:å^mm›±Ç‹<Ú[evŠbª>gR¼½¶~Aòâ…w7š±·X†·F,¼eTšÎg V¬Õµ\—1¹ÏÈ>#ûŒì/G½õrg€5Ú€Êû›ïo¾¿¹×e¯Ë^ÏNž<;9YR£Î:7êù>ò}ä{΀Øõ(×£\rM™1eÆ”N&öPì-g @l7 #ßG¾-.Ñú²æP´ZE V´f9ub×›Úoj¿©½áà†ƒf>“ùLæ3Ö¼v]ÕuU×U—¦\šri g @\¸=úöèÛ£‡nºmè6+S^RaI…%^txÑáEÎë#†5;¸«É®&»šl¼ûx÷ñî Õh+ÔºPëB­—/_¾|ùò‡^½zq^ħí>´ûÐn_Ⱦ}!-¦´˜ÒbJBÝÅÖÅžˆ½âìˆO¢%&Ze¢…–P÷CÑ:-UÎ €øw>ûùìç³Þ:xëà­ u' 0<`ø¦+›®lºò|ðóÁÏî@¼z³ï;7ûöúïõßë_óvÍÛ5o'Ôý°ûÐîC»=Þìx³ãÍ8/#`Xðç¶z[½­n9·åÜ–s§tžÒyJæ—™_f~ Ao²BÉ %|sðÍÁ7Õþjµÿãu×=^G™°š÷/Þ¿xÿâŒzF=£ÎK3/ͼ45¦×˜^czl}}kk[[¤äXh­‰–›hʼn]Ìï„¢…)Z›¢å)Z¡”9kº6íÚ´kÓÖ¼\órÍËVž­<[y:åqÊã”'æ÷Ãâ'‹Ÿ,~rôÚÑkG¯=˜ä`’ƒIž¯~¾úùjÊ€Õ¼îÿºÿëþÇ]Ž»w™šrjÊ©)Ë×/_¿|ýØú¦Üà·¿5ø-x{ðöàíï\¼sñNä¦ÈM‘›(yâ0þ‡d<1´Sh§ÐNaÃ:†u¤L|iî¸àþ}úÿûÿ‡’ð¥­AÑ2­DÊÀ—&bAÄ‚ˆûWî_¹eè_¡…þîîîBÉøÒ\ñ¾â}Å{_Í}5÷ÕÜ_tÑýE_z9èå J+ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒˆ×84Yh²ÐdNðÅ9)0$zÀà ¾¸XüÿФ¡IC“†& MšÄø`|0>F„a¼3ÞÆ[ã­ñÚxm¼6^¯ŒWÆ?Æ?Æ?Æ ã…ñÂxf<3žO§ÆSã‰ñÄxb<2Œ‡ÆCã¡q߸oÜ7î÷Œ{ÆßÆßÆßÆãŽqǸeÜ2n7›ÆMãºqݸn\3®׌+ÆãŠqÙ¸l\6þ2þ2þ2.‹Æã‚qÁ8oœ7ÎçŒsÆ9ãŒqÆ8cœ6N§SÆ)ã”qÒ8iœ4ŽÇãÆ1ã˜qÌ8b1Ž‡ÃÆaãqÈ8d4Æã€±ÏØgì3BP#ÔÐ ÝÐ ÍÐ ÍP ÅP Ù Ù1BŒc¯±×Økì1ö{ŒÝÆnc·±ÓØiì4v;ŒÆ6c›±ÍØjl5¶[Œ-Æc“±ÉØdl46õÆzc½±ÎXg¬3ÖkŒ5Æjcµ±ÚXe¬2V+•ÆJc¹±ÜXn,3–ËŒ¥ÆRc©±ÄXb,1‹ÅÆBc¡±ÐX`,0óŒyÆFãã㣗ÑËèeô4z=F£‡ÑÍèft3º]®Fg£³ÑÙèdt2:ŒF£½ÑÞho´5Úm6F£ÑÊhe´2Z-–Fs£¹ÑÜhf43šMŒ&F£±ÑØhl42ŒF£QߨoÔ7êuºF£ŽQÇøÙøÙøÙ¨eÔ2j???5ŒF £šQͨfT5ªUÊFe£²QɨdT2@#Ш`T0*åŒrF9£¬QÖ(k”1ÊeŒÒFi£´áoøþFI£¤QÒð3ü ?£¸QÜ(nø¾†¯ácø>FQ£¨QÔ(b1Š…ÂFaÃÓð4GŸ£ÏÑgë³õÙúL}¦>SŸ¡ÏÐgèÓõéút}ª>UŸªOѧèSôIú$}’>QŸ¨OÔÇëãõñú8}œ>N£ÑÇè£õÑúh}”>J¥ÔGê#õáúp}¸¤éAúP}¨>T¢чèƒôAú } >P¨Ðèôþz½¿ÞWï«÷Õûè}ô>zo½·Þ[ï¥÷Ò{é=ôz½»Þ]ï®wÓ»éÝô.z½‹ÞYï¬wÖ;êõŽz½ƒÞAo§·ÓÛémõ¶z[½µÞZo­·Ò[é­ôz ½…Þ\o®7×›êMõ¦z½‰ÞDo¤7Òé õ†zC½¾^_¯¯×Óëéõô:z½Ž^[¯­×ÖkéµôZzM½¦^S¯¡×ÐkèÕõêzu½ª^U¯ªWÑ«èUôJz%½’^Q¯¨WÔõ@=P/¯—×Ëëåôrz9½Œ^F/£èz€î¯ûëþz)½”^J÷Óýt?½„^B/¡û꾺¯^L/¦Ó‹êEõ¢º·î­{ë…õÂzaÝK÷Ò½ôBz!½î¡{躛éõ‚zA=¿ž_ϯçÓóéùôUŸªOÕÇêcõ±úH}¤>R¨Ôê}õ¾z_½«ÞU磌««·ÕÛêmõ–zK½¥ÞPo¨7ÔëêuõºzU½ª^U¯¨WÔ+ê%õ’zIýKýKýK½ ^P/¨ªªªçÔsê9õ¬zV=«žVO«§Õp5\ WOª'Õ“ê õ„zB=¦S©GÕ£êQõ°zX=¬†©aj˜zP=¨T¨Ôê>uŸºO UCÕPUWuU7UQUQeUVe5D QCÔ½ê^u¯ºGÝ£îQw«»ÕÝêNu§ºSÝ¡îPw¨ÛÔmê6u«ºUݪnV7«›ÕMê&u“ºAÝ nP׫ëÕõêZu­ºV]£®Qר¿«¿«¿««ÔUê*u…ºB]¡.W—«ËÕ`5X V—ªKÕ¥êbu±ºX]¤.R© Ôêu¾:_¯ÎUçªsÕ9êuŽ:K¥ÎRgª3Õ™êtuº:]¦NS§©SÔ)êu²:Y¬NT'ªÕ êu‚:N§ŽSǪcÕ±êhu´:ZýMýMýM©ŽTGª#Ôê5H RƒÔaê0u˜:D¢Q«ƒÕÁê@u :PýUýUýUí¯öWû«ýÔ~j?µÚGí£þ¢þ¢þ¢öR{©½ÔžjOµ§Ú]í®vW»©ÝÔnjµ‹ÚEí¬vV;«ÕŽjGµƒÚAí ¶SÛ©íÔ¶j[µ­ÚZm­¶V[©­ÔVj µ…ÚBm®6W›«MÕ¦jSµ±ÚXm¬6R©ÔjµZ_­¯ÖWëªuÕºjµŽZGýYýYýY­¥ÖRk©?©?©?©5Ôj µšZM­¦VU«ªUÕÊjeµ²ZI­¤VRÕ@5P­ VP+¨åÔrj9µ¬ZV-«¨j€ZZ-­–VK©¥ÔRjIµ¤ZR-¡–PK¨ÅÕâjqµ˜ZL-¦ú¨>ªê­z«ÞjµˆZDõR½T/ÕSõT=UÕCõPÝUwÕ]-¨T ªÔj5ŸšOͧæUóªyÕÜjn5·šKÍ¥æR]UWÕUÍ¡æPs¨.ª‹ê¢fS³©ÙÔ¬jV5«šEÍ¢fQ3©™ÔLjF5£šQM¯¦WÓ«éÔtj:5šFM£¦VS«©ÕTj*5•šRM©¦TPPP¿W¿W¿W¿U¿U¿US¨)Ôê7ê7ê7ê×ê×ê×j25™šLýJýJýJM¢&Q“(‘J¤©D(J„ò^y¯¼WÞ*o•·ÊåòFy¥¼R^)ÿ(ÿ(ÿ(/”Ê å™òLy¦eŸ²O UB•PÑüûŠ +²"+!Jˆ¢ìUö*{•=Êe²[Ù­ìVv*;•Êve»²]Ù¦lS¶)[”-Êe³²YÙ¬lT6*• Êeƒ²NY§¬SÖ*k•µÊjeµ²Zù]ù]ù]Y©¬TV*+”Ê e™²LY¦+ÁJ°²DY¢,Q+‹•ÅÊBe¡²PY ,P(ó”yÊ%¯’WÉ«äVr+¹•\J.%—⪸*®J%‡’CqQ\%›’MɦdU²*Y•,J%‹’IɤdR2*•ŒJz%½’^I§¤SÒ)i”4J%µ’ZI­¤RR)©””JJ%¥òƒòƒòƒò½ò½ò½ò­ò­ò­’BI¡¤P¾Q¾Q¾Q¾V¾V¾V’)É”dJR%©’TI¢$Q’Èäò9BŽ#äwò;ùüV~+¿•_˯å×ò+ù•üJþGþGþG~!¿_ÈÏägò3ù©üT~*?–ËåGò#ù‘ü@~ ?ïË÷åûò]ù®|Wþ[þ[þ[¾-ß–oË·ä[ò-ù†|C¾!_—¯Ë×å«òUùª|Y¾,_–/É—äKòEù¢|Q¾ _/Èçåóòyùœ|N>'Ÿ‘ÏÈgäÓòiù´|J>%Ÿ’OÊ'å“òqù¸|\>&“ÉGä#òù°|X>,’ɇäƒòAù ¼_Þ/ï—÷Éûä}âáŸøº/>äeA’%Y’÷Ê{å½òòòòny·¼[Þ%ï’wÉ;äòy»¼]Þ.o•·Ê[å-òy‹¼IÞ$o’7Êåòzy½¼^^'¯“×Ékä5òyµ¼Z^-¯’WÉ«ä•òJy¥¼\^./—ƒå`9X^*/•—Ê‹åÅòby‘¼H^$/È äùò|y¾ro¹·Ü[î%÷’{É=är¹»Ü]î.w•»Ê]å.r¹‹ÜIî$w’;Èär{¹½Ü^n+·•ÛÊmä6r¹•ÜJn%·”[Ê-åærs¹¹ÜLn&7“›ÈMä&rc¹±ÜXn(7”Ê är¹ž\O®'וëÊuåÚrm¹¶ü³ü³ü³\S®)×”kÈ5äru¹º\]®*W•«ÊUä*r¹’\I®$W”+Êå r¹‚\^./——ËÊeå²r¹Œ\F.-—–KËþ²¿ì/—”KÊ%e?ÙOö“‹ËÅåⲯì+ûÊ>²ì#{ËÞ²·\D."‘½d/ÙKö”=eOÙCö=dwÙ]v— Êå‚r¹€\@Î'ç“óÉyå¼r^9·œ[Î-ç’sɹdWÙUv•sÈ9䲋ì"»ÈÙälr69«œUÎ*g–3Ë™åLr&9“œAÎ gÓËéåôrZ9­œVN#§‘ÓÈN²“ì$§’SÉ©äåååäääïäïäïäoåoåoåärr9¹üüüüù?òä¯ä¯ä¯ä¤rR9©)EJ‘ÒéƒôAz/½—ÞKï¤wÒ;éôFz#½–^K¯¥—ÒKé¥ôôôô\z.=—žIϤgÒé‰ôDz,=–K¥‡ÒCé¾t_º/Ý“îI÷¤¿¥¿¥¿¥;ÒéŽtKº%Ý’nJ7¥›Òuéºt]º&]“®IW¤+Òé²tYº,ý%ý%ý%]”.J¥?¥?¥?¥óÒyé¼tV:+•NK§¥ÓR¸.…K'¥“ÒIé„tB:!“ŽIǤ£ÒQé¨tX:,–¤0)L:(”J¤ÒiŸ´OÚ'…J¡R¨¤Kº¤Kª¤Jª¤HФHBˆ"…HHHH{¤=Òi—´KÚ%í”vJ;¥íÒvi»´MÚ&m“¶H[¤-Òfi³´YÚ(m”6J¤ Òi´NZ'­‘ÖHk¤ÕÒjiµ´JZ%­’VJ+¥•Òri¹´\Z&-“–IK¥¥ÒRi‰´DZ"-’I‹¤…ÒBi¡4_š/Í—æIó¤yÒiŽ4Gš%Í’fI3¥™ÒLiº4]š.M“¦IÓ¤)ÒiŠ4Yš,M–&J¥‰Òi‚4A'“ÆIc¥±ÒXi´4Z-ý&ý&ý&”FJ#¥áÒpi¸$IAÒPi¨4T" ‘†Hƒ¤AÒ i 4P( H¤þR©¿ÔWê+õ•úH}¤>Ro©·Ô[ê%õ’zI=¤R©›ÔMê&u•ºJ]¥ÎRg©³ÔIê$u’:H¤R{©½Ô^j+µ•ÚJm¤6R©•ÔJj%µ”ZJ-¥æRs©¹ÔLj&5“šHM¤&R#©‘ÔHj(5”Jõ¥úR}©žTOª'Õ‘êHu¤ÚRm©¶TKª%Õ’jJ5¥šR ©†TCª.U—ªKU¥ªRU©²TYª,U’*I•¤@)P ”*H¤ R9©œTN*+••ÊJR€ •–JK¥¥RR)©”TR*)•”JH%¤Rq©¸T\*&“ŠIE¥¢RQÉ[ò–¼¥ÂRa©°ä%yI^R!©THò<$ÉMr“ܤ‚RA© ”_Ê/å—òIù¤|R)”GÊ%å’rI9¥œRN)‡”CÊ!e—²KÙ¥lR6)›ä,9KÎR)‹”EÊ,e–2K¥ŒRF)ƒ”AÊ ¥“ÒIé¤4R)”ZJ-¥–RI©¤TRJ)¥”RúAúAúAú^ú^ú^úVúVúVJ!¥RHßHßHßH_K_K_KɤdR2é+é+é+)‰”DJò!äCȇˆˆˆw!ïBÞ…¼ yò6äuÈë×!¯B^…¼ ù'äŸB^„¼yò,äYȳ§!OCž†<yò8äaÈÇ!B„<¹r/ä^ÈÝ»!wCî„Ü ¹r;ävÈí›!7Cn†Ü¹r#äZȵk!WC®†\ ¹r9ärÈ_!…ür1äbÈÅ?Cþ ù3ä|Èùó!gCΆœ 9r&äLHxHxHxÈ©S!§BN„œ9r<äxÈñ£!GCކ9r8$,$,$,ä`ÈÁƒ!B„Ù²/d_HhHhH¨xl/׉f;p¼0Ä+ä¡À € €8``‚˜€ƒ &à € €8``‚˜€ƒ &à € €8``‚˜€ƒ &à € €8``‚˜€ƒ &à € €8``‚˜€ƒ &à € €8``‚˜€ƒ &à € €8``‚˜€ƒ &à € €8``‚˜€ƒ &à € €8``‚˜€ƒ &à € €8``‚˜€ƒ &à € €8``‚˜€ƒ &à € €>™S´ØÏøWYýeõ—™iùåO”?w[o}©õ¥Ö—̶žÛÈmä6"SF¦ŒL[ŸvwÚÝiwͶž6omâŽ-îÞâN.îêâOiÇ@L ðÉ€­fFØŒ°afGš.4]hºÐWc^y5&–7œ22edÊ\§rÊu*úÒ>yóäÍ“7ãâØ›VjZ©i%³ín ܸÕQk p|úíC¶Ùª5¨Ö Zƒ¨å3%Ô S2PV.縜ãrŽ,³tÎÒ9v?¡&TtRѨk«^¹zåꕹŸÇ@L ðÉ€­æÄóÏO<þx÷Ïß?ÿüØÝ®ˆuìw!YÞ•yWæ]i¶Ýá÷†ß~ÏžíGolÐØ ±A¶½ÛÿYùÏÊVR>»Þ—z_ê})1ŠI\|B‰ÑA¢Žè Œo=¾õøÖ”?Hì€ €>°Õˆ¾‰Q3ŒŸvê멯§¾¶'Ž‹^5WŸ]}võYôÛ•sÊ9åœÀ\)1qnܹqçÆ‰žôQKfö¢Ù‹f/¢” .Œ^õJé•Ò+¥=íŠØÚîüVó[Íoe»þß'ý>é÷Iœ|2â"k:½ëô®Ó»¢?;š^hz¡iÌ·uheûõ‘ûÈ}äØª'ÎÎÎfÛqqÄÅíßÖ—\«¹¢m½éô¦Ó›N;ìX°cÔÒpñpñpñ ï/Ä…Îm;·íÜÖþvElmW¼Öæ\͹šsµ¨ëw¯ê^Õ½*í[|2â"‹J™22eÎk9¯å¼fvv–Z~hù¡˜Ÿ©!>C|†ø|¤ŸñS×§®O+h´ ší¿~\øqáÇ1ßúËÙ/g¿œ6ú"zÒÄd&癜gržØšý—ZÍUÔ^ò¶À‡l²}ÈÆ}bAÊÈ”‘)k½¯õ¾Ö{Û»n]µ®ZWÏO(q‡Ï7;ßì|³™$vÀÀ Ñó“m̵1ׯ\b.Õò'ÊŸ(BÄYgmœµ±èû˜ëT®S¹N‰¨¯åw-¿kùÝ´»ÓîN»{ýôõÓ×OÇ|O¾œ¸èà è~ÌþJ”ó¨Q!£Bª¶¯Ú¾j{’%=JfX•aU†Uâ|‰s7`ø€á†õ:êuÔ+¶öùüÀóÏŒþ=ryäòÈåóÖ¿¶ÅÚk[˜­Yû¿ÃA›ôæiÜ®q»ÆíbR[Žl8²áH³}ydä‘‘G>uýŸW«OÞ³úÌjûËD mÖW^ôS­þÄA)‚R¥0Ûó…å–[XŽÏSĵ±åì¼³óÎίþØž_û王}¯v™mñÄóÏO<ç ë#&%0Eu,ve›il¦±Ÿ÷ø,.ƽmü¶ñÛÆõ¶ÔÛRo‹Ùš‹.>ºøhýÚ³­ø €/4½ÐôBÓ¨C+Ç„è9óÇšb.^³­½ zôæó¶bã‰>Q×i6”®°o;5ûÖ|êÖ/y^ò¼äýì¿/g¿œýrv\Ôjѻڽª{U÷ª1?×QCÍÏ;ËV€Ÿ<}òôÉÓšYkf­™5vï]b´ƒ¸xôßû¯ÞõþËž—ì×jÿ©ý§šËœÉs&Ï™“}>žæxšãiÒÜHs#Í Ûõ‹UÅ «|ª"¶P«âU?¿~ü:Øž_ñ’Y\BÙÃ+Ò+Òë#[cðÐX00°Ñó j8w¢ö½°c÷aœˆ~Lo0½Áôè£ßûÕïW¿_=.úï~Þž$y’äIÏlžÙ<³Åîy}ˆE¿ÉÏ«E‹s/ν8·Ùú«ô­Ò·JßO=_Ñ.½}Ïö=Û÷D]çí9·çÜžcöû#.ޏ8ââ§îƒ˜Ïl•fVšYiæç•XôgD¼vçÚû¤÷Iï“ û*Fì^Ñ =,ô°Pi·Òn¥Ýâú6¯ç¼žózÆü®+ú,æ]™weÞ•¶[é8¢ãˆŽ#>¯4ÄëfûŸù×Ì¿fþõóÖ,úЛ…(bÄÑ[š âó„ïß¾ÿðO‡:ü¥A­¶21´þå—s\Îaý½Øf`›mlϯx¹êYø³ðgáQÏoBÀbLÛ-æ“Lþ1¼‚¬˜XˆˆBÅÇÑ?ðA—˜õÔ™SgNa¤xp&†*ñ¡˜k6úµùûùûùûÅg°*ˆG½ú4êÓ¨ÙÚ|gùÎòõ©Ñolígôk¨«ÖUëªéŸô}­ïk}/Q‚Šù›EïÕ%é—¤_’Þì·mÖÏ{Äy±ÆÅk˜­9㜌s2ÎõÍþuŠ~]¶ký´ž^zýéuÛ¿á½í_•ù±Ìe~üÔ£ëu¿×ý^÷cwö_{ÎuåQ•GUõ_3&qMâšd|ëñ­Ç·>7îܸsãD("fAÞznë¹­çì¹úÑ[:v÷9þ×#fù3ûF¿Nq¬ºzèê¡WŸ]}võÙ민 †×>p$àH€8›f3IGÖ~ç‚ v.ˆÉ½÷À„Lˆ~°Ù˜„ ‡ºêz¨«Ùúk”¨Q¢F‰O]ÿ˜)c¦Œ™b¶Îõe×—]_–,&Ìæ;ÉðõŽ„ZPÄgÍÒWK_-}eû kå=4Ø!.^zŒÛEBÀbz³í†5 kÖŒû°2```!Ñ÷nŒÚ+4vƒÌ[D»Cw‡îŽùÚìYƒx€Þ¤~“úMê›­§ØŠb+Š­¸×ä^“{Mª¤ý=E*úÝÚ³æ÷¥Þ—z_Êž5ÿTð§‚?ü¼ýTÌÖ,b6û×f6@·üÌþjPÝAuÕ5‹îì™Ë9ª’ K6,ÙÐtößê õE\Ô–ÿŠ®#ÊD”‰¸3öÎØ;ÿkõ”‘)#SΛ6#,úuFíŸ5~uâ«_Åü?ÄgˆÏ³­ˆWCìYÏé]§wÞõ‘¨Z~×ò»–ßñysfpÔžââêK.%juü¸±ïƾûļÈf¯ÅˆO@kî¿x¹Çl Q‹âúêSõ:êuÔËl»Ã2Ë8,#¯#+#&bÖ£T46hlÐg®:edÊÈ”Q£D[Q#èW“‡q"ølZ©i¥¦•â.úù~Ú³†ØŠÖl8ĨöÖÜ[soÍO]s[¥­ÒV1[ç̽3÷ÎÜkOiˆÀ>Kç,³t¶]ÏèÅ£^l¶9§œSÎi¶ëj­«µ®–=Çò<ôyèóPñDìÎþkÿ¹vkäÖÈ­‘ý³PGÕò]Ëw-ß™­Y<ÿ[냲FRÞvHX1¸ýg^Ñ)#SF¦Œ~?‡ß~oø½Ï[Ôþè¶}åc«Ç§èål¶ÿÎÕœ«9W‹~ÿÅýÓloóÍÎ7;ßìG.\¹KÄœYl6k{l½(¸P«ãÎþùûçïŸß"s‹Ì-2›ÍˆœX`q¶û,FC³›ß„ €Å()fŸkQGøàn ¬‰˜Xˆˆ—ÌrwvÞÙy1yØ4wØÜas‡™­?jÜè×óyãÄC^³‡€‚Ï6Ÿm>Ûîv¾Ûùnç˜?V‹ŸXÄê1ÙO1pnôCG-7û×üwðßÁ›­³yæš°g¢w¸Ùz¢Ÿkû·"È46ÓØLcc2»jÔÞ½fC4Ç]m6¥Û”nSºÏ«™QçH6 °ã¿†ÇÖzF…Œ }/À˜_ÑQC³ùA?u+/v¼Øñb‡Y¸RqyÅå—Çî}þ˜ë1×c®fGQûrí˵/›Åä<“óLÎýk"±E WkvﲇøÔûÊŠZsâ³r底ëV®‹:1‡=²•ÊV*[)ñ’ÕŽK‘ÙËb¦íèÏoBÀ‚ÙT1í ® 1üPèÅdýWœ®8]ùwmAoþÿ?bøâ¸€ÅCp1„£Ù_Õ‹êEõØŠ~?o??u QRŽù>Û•èƒ"†Ãý¼3n6©=ë‰:·®mï.{úGF >²)#SF¦Œ~ b¶]³c‰@ÆEm)ä^Ƚ»=ûiæBÓ M/4ÝÙV€ÅÙϳ=Ïö<Ûmÿ¶ðã ?¯8ÄÖ}ró×›¿ÞüµÙÞŠ9Ñí_›’VI«¤5[[ÔÞù±{·qqÄÅͶ+"“¨¿ÿg—?»üÙŬ/ZÏ·=ßö|Ëgh\Ÿ¼¢œ=Jz”ô(i,W°cÁŽ;Šÿ}X»¬¨ÕŸJL% >¿¢eoÑwV´ÜÄ‹,V‹É¯&½šôjÒ¨½À£švwÚÝiwãó“îóôŸÚjÿ©f[×Ïêgõ³Ü'€5 ‰ÚƒÍ–˜ý× ûiÿÃ8ü´zÐêA«f¿ï}Òû¤÷É¿ýû׿ÝÇyq‹=­½ýíC¶Ù¢Î.ikÇÚkw¬ýÔ5Gß³\<¢~ å®”»Rî#IrÑ G6iÏ>ÌZ?ký¬õfû úE¿†èHÉì¿öœkñ’DLÖ/‚RÇ €£öÿ6¸>v¯kÑØl@r1»ý[Œ~†æO]›ýÄà¢fsZGý,w1Ó¶íozEzEzEþ³òŸ•ÿ¬¤ïo\Ÿh¢œkf­™µfVûã:1œ¸øo1߭㕵ڇ:üÓáŸÚks¬Í±è_û³ío*ZSbhèø A?ïJ#(ØK•¾UúVé+ê@|~Ò}žÙ‹f/š½Èlës&Ï™*û¨ì£è‡ø³Âc&{ƉÇâgôC¶Š0qq\q¥J”"v÷ü—£¿ýå¨ÙÛðÛ†ß6|ꣳlkM5=Öô0&L²QYIDAT[§èsl6ónÔAţ߇óÏfÿ*®Êƒƒ:8ÈÊñƒ“…ÅîÑemœµqÖÆŸ·'±ÛK>a} µÚ~"óIG߯3›^Œ~»ã£Ä5³;D;öÚk7®Ýˆ­–X\Ëê¡«‡®j¶õ>r¹L ¬‰˜XHôƒÜÚÚÓmO·=Ýb}}ªè÷Jôêh·¹Ýæv›í9Š?šÿÑüæñ¿Ÿ1_CÔ¡hckŸW-\µpÕB³-ÖÛRoK½-ŸºE³ø„^÷{Ýïußl›_n~¹ù¥Ùߊ<íß³¾Èbe³õDÝŠY_¢¸®-WŸ]}võ™êd\¬-&ë‰>ΉùÀõf¢Î`•èShÿzj”¨Q¢F ³ý)R&¤L\ßQÇõ×k\/³}Hž67?•h£šm½ÖûZïk½'ÖDL ,äéõ§×Ÿ^ÿÔGØQ–œX~bù‰åÆãÀËÙ/g¿œûýþt˜ÖaZ‡iŸ÷à;>÷3æk³ºÆî>GßwªD¿ýJôûÔu^?}ýôõÓfëŒ:\§íßöü¶ç·=¿5ë™ô©{ÒÍ·›o7_³^¼bÀOÛ¿Z~hù¡å‡b·Wô§žkíX¡NÆÅÚb²1¥u"=±?ö»˜¥ØlmÇ\¹së;¿ˆyœœœí9FqÍŠž…Öÿ\ûràÿ’22edʨ/î¤Nš:iê¤öìUæ_3ÿšùר/Ù$ÆöŒc×j['¾:ñÕ‰¯ÄxâÍž£=bû-é·¤ßÛyâW ˆOp³WšVjZ©i%+|n~ª#GŽ˜m½¨^T/ªóýX00°œSgN9u&.v‹axc¾‡Ÿ·õ艿7üÞð{‰kàG.\¹ÄîÙ:²­‚ v,ØñóÖì™Í3›g6³!7ÅËöÿUç¶Ûvnû©ûµÏ´Yvۿꞯ{¾îùÌþJ»¥ÝÒnÅùàÌ)#SF¦´BŒ‹µÅd=¢NZ'Ò/”Øìy¶çÙžg{LfÈŽ-gçwvž=wÑ3«Ï¬>³:±DD_hlãrŽË9.çÛuñpñpñø¼}¶æT+pÔZ-âmñ‰Vif¥™•fÚEÔ½$ý’ôKÒ;Ò<ÇfŸÔâû°ÐÃB %ì']̯\[ùÇä“L$€%‹ŠÚßsÈ¢¿‚øo³Ø/zŸºEÑ‹tÇÚkw¬5ût¡éBÓ…ÆVDmÏ~Æ| qÑWIôÛ6Û¢s5çjÎÕ>oÍ]+v­Øµ¢Ùš¥ÂRa©pÔßþ¡ççÍ*fNs#Í47l×)zAÙ®Ów–ï,ßYq7ûolÕ–øßŠà,³tÎÒÙ:‘žëS×§®Ÿ0|nÔÞ–¶>ï#Œ<2òˆÙþt©×¥^—z|>&vQc¿â£‹.>ÚþµÏzb9^GªÕëË®/»¾¬ý/¾ˆ¶MëK­/µ¾´þþùûç'Þ>¾f¢o݉W»br¼ ‹‰ â¢U×€ €@"µgŒ÷Iï“Þ'c-,IâšÄ5IìÆEÿý¾íù¶çÛ¨½'›ÔoR¿Iýèçs­‡z‰1ëŒþQòç­yM5=Öô0[óèÅ£^µdy/ò^äý‘ÃIS'MTÌqøy{RA« UÐl×µn‹ßsaš½Qµ}ÕöUÛÇVÉÞzìì4~ˆý±ÿØEx³µ‰~~ñsŸ×~©*¥ª”ªbÏàÀ|2:’¨gÙìÛ¹r­_¯V‹Ñ/¢?;"ßz|ëñ­ïv¾ÛùngǾfýýüýüýL[€‰äÓÙÌ»j諾«f¶uqµrÖDL %ц™úzê멯k”¨Q¢F‰èû±Åý 7wÞÜysgô»â¬ø#¶J)q ýÀÿÿ³-æ:•ëT®SŸ·æ[¿ßúýÖïfk®™µfÖšY£–Œ˜±Ïö7Å£ü˜ã˜)c¦Œ™b¶'×n\»qíßÇ©¢_²ý¡uÂÖ–øßŠàÜFn#·aö·q7ylý·Ìö_ [?{uüè‰Wˆ•˜MÖ1`Ç«ÕÑÀâ5¦“7OÞúØ GíÉ÷©ÛŠª×ý^÷{Ý~ÎÔa3Âf„E?ˆkœÏêã5\hz¡é…¦±{Å ØÑß“õG>4ª¬³6ÎÚ8ÂýÿýdwÉî’ÝÅö7‡ø ñ⓳Ö,¬YX3³c3#ÚF¼¶ô³úYý,pÂÀQ‡”>η&1ƒ£Ùþ_¬q±ÆÅq½‡:üÓáŸìé÷ÕüVó[ÍoÅgŸc8p$àH@‡i¦u˜–aU†UV%öØQkµ==€m‰OUG­½Ö€cr¥ˆOè{{sÖDL œ˜!U´y¼"½"½þGØÓjÿ©ý§Fÿ°ìÄEÑF¿‚XµdÃ’ K64[OÔ9k?ïØã:ÞüróËÍ/c÷|m(²¡È†"Ñ‘“õ÷ÈÔ#SLfëý–ă{³ß‘sÊ9åœ19/âQxŽT9RåøÈ¼zQ{×z_ë}­÷q=ûolÕ–øßŠàj ª5¨ÖÀìozõ:êeå;¤Ï6Ÿm>ÛÌö_¼¬w[=¤‹\-rµÈUÛ­—ù±Ìe~4ö?êìË|Ò%ÆÏå凖Z~(À9À9ÀÙþ@K| êz¨ë¡®Ö<ûŽ]«£—ÂŒ[#·Fnâ\øáØpÔkÍ–ï,ßY¾³¸§k"&_7ÞtzÓ)ú‡eÅV[QlEŒ`»E4Š™_÷Ïß?ÿüÏ;Þ¸€ƒR¥J»ª¶Øf`³-Fý×Ï[ÿú²ëË®/}ï+³ýÒb+vm‘¹Eæ™ÍT3GŠÿŽëÙc·VÇçV¬Gí?/IÄ®ºj]µ®j¶ÿ»‡ì²{HÜm½ÜGî#›Íö}z×é]§wEvÄVÌœ,,>ËárŽË9.ç88pp Ùë/fw]ÑëôÔ™SgNI¨ý§VG_·Ó†§ Onÿ9ÿ-†ûNìmKÇ€wMÜ5q×D³õ×_VYýe|¿ÖDL ,AÄ$cƒ>þ#˜ÆÖ¶¢]ÅPÀѯ!v©‹Ù‚£ï]‘PñXôkˆÚw0NLÊÈ”‘)Ý«ºWu¯j¶Å¹6æÚ˜+&[¼Ûùnç»ÍÖßæX›cmŽ™ýëO*øSÁت‡Áÿü·Ù¶y/ò^ämö¯QgŽ­ý!þ¼õl=·õÜÖsfÛ¸]ãvÛÅnŠyÄEä`û£ÝÒni·ì_Û€á†n¶ÿ«®Z¸ja\Üó•´JZ%­xÍÅv»âÎõ÷ÅÐúfû¹8÷âÜ‹s[óÓíË €?dûíC6Õ9^çxãfçÚ––|B u&Ô‰:+¼õ[2_N­¶uë÷[¿ßúÝv‹Oõ®Ú»jïªÑ*Ž‹¶Üçm}底ëV®‹»€ îK0ë1³ý= þ,Ü:ð“$O’yjVÃý:øuðë`Eßv®æ\͹š5Cˆ/'aíÔäS“OMîQÒ£¤GIû÷¤‚VA« ‰)ÄÙO\‘Ò—V«£÷zÀ믈=~ª ³OañßâŸrÂöãŸ6#lF˜ÙÖ–[Xna9``MÀÀÀ¦¾žúzêk³L•GUUyTl=`ƒ*G?tôkˆ‹‡qkz¬é±¦‡Ù:3Í46ÓØøŒµìYƒP3kͬ5³ÆäØE_±è7ÙpdѱUßzÿÕû¯Þ}jX"«ŒÝQ‡·ðLñx=v¯Aà˜¬§õ¥Ö—Z_2[CÇGtó’/‹¸x¸x¸x˜EhŸºN1˯ٞ÷ü¶ç·=¿Ý:Ð~iû¥í—š…åÇÓOs<Ù£Œ4êœÙÖùtsìXŒ¨ÑaZ‡i¦EÚ7zâ…‰v›Ûmn·ù˜ë1×c®ÖØ™Z[WAÔ×bì©'â¿ÅL´_f 9aਟ¶¢Ž©Ãw`5ÀÀÀŽ 8ýC®OÚÔLÔ0ÆV7ßn¾Ý|£_CÜ=Œƒ ›­¹Þ–z[êm‰­ø6æk°=÷óŽzPÝAuÕ~ý{ºíé¶§[l=dÜüõæ¯7mÿщ-EP»5?êð‰ö¨Ö Zƒj ââ$ŽÉz:8èà è×#ýþ¼r}£Î jKôžüÔc³MG}Å$ªRUJU)U%¶ê@ôÃe‹‘ìYO«­´zåŒè‰ЗZ~hù¡ççgûï]y¶çÙžgûèÅ£^u(þÄ^&ÔêOuíÆµ×þ €³»dwÉîòy¯/ÄÅ‹PÖ”°pÔOÛ²X00°†”‘)#SP`@f¹òÍÎ7;ßìÏ{à%BŽèg»ö­Ù·fßšè·wã.Ö¸Xãbè׿åö–Û[nÛ³¶ø €Ó†§ O¾ô›¥ß,ýÆž5‹‡†CóÍ;4oôk¡WìV71T©ýsR¶|×ò]ËwqQñCÊ„” )c9ÇÅì¿q]«ãn+Ö €…è#œÔÏR?Kýìßu¦ŒL™Òžu>Nõ8ÕãT-¿kù]Ë)ü}©÷¥Þ—ú¼ó"^,0ë¿øÏÊVþ³2&çý^“{Mî5Éy-絜×l·RT/ªÕ£ýÚîW¿_ý~u³ÒÈV*[©l¥è‘[.縜ãrñšNŽT9RåHeÿýªÌe~,óãï“~Ÿôû$ñ)ìHç…ZsâÞuü•O}1Kü÷}7öÝØç¨×`BÀâì˜õØŽ‹¶@ì"&€ÿ¯½{Ó¹ÎÿÇßqí·öÃc˜"çÆi"í8“R‘R*‘HF²*bå\tTZY•„Î%6ã» IÑ8DZÉYãÔ˜ß×îí7{»\³“a®k®¹ß_·Û붷͘×õºžï×åý~\ï÷ ˆ ¯yíÈkG²¾Ô•9´{ãå7^~ãå@hz(åPÊ¡”cÉÇ’%o=¸õàÖƒ)¦|˜òaà~£Ì»Ê…o²3γ}1.0æPæ˜ülóôî˹iÏM{nÚóþÄ÷'¾?1°‡_à"ø–˜-1[b!q`OĬÿžãKŒ/1>5!5!5ál\è¼ê‘«¹ê‘ì¼¢ÀÝWgc ;ê¯4;# TµøÌþmgêïÙ»7vo¶îf DúLè3¡Ï×¾žðõ„À øjÂòg–?³ü™ÑuG×]7ë;ä_¼Èú³ÙñÔƒO=øÔƒY-&'ïûí}oï{{ßP¡xàᮿuüX1Ô˜oY|Ëâ[‹s"°†gÿ‹2j |]&øžøè›U}6„ú÷^ÖÎÆnë‘9'¹gþBd°§ïyúž§ï±Æ‘L,"Hà»m/n{qÛ‹ssÄÀîwÚåN°šµ@\Zk_­}µö…ú-™|öÆ™õßuP aÞŠy+æ­8{—™ôȤG&eg<ßõýWßuöF’y—ÇÜßý7wªúlü–H €2ï}öB¦Ì{‡çä} „С~× »^Øõ®Óû-S?žúñÔ³^Çr2òv›Ûmn·9Ôß?mÆ´Óføl==Ó;Oï<½svîÂþÓðŸ†ÿôÛ?¼ùÛù!RÕ¹#p÷yð=С,>¼øðâÃÑ7á €3¯üÁ6<µá© O €€H&'m\Ú¸´q¹ýî§9ðýï|Ÿ›{ëfÇÂò Ë/,Ÿõý.kv¬Ù±fÇÙgvþ†‘³FÎ9ëL½#¥þ\êÏ¥þœýÇ\çDæ€9”Ú[ko­½õldìʱ+Ç®Ìz$×·º¾Õõ­ÎÞÀgöµ3ð›ß <«VlõØê±Õç¦ÍM››vfk PíÁ¿±SÕNU;Uý­³øÚD¨Ø¦fÁšk̼ڟޘ39#Xæû§}¶þV¡à«;\Ýáê¯óú7¯“ýGGU.g$dþ\Ÿíȼò?ÞÜ D>°ˆT3 f ü[%þºøëâ¯;SñI£2Ê4*ÿ¿*â¢PîI½'õžÔP¿«ÉÞ&{›ì õ{s'X|Áâ _¸ü}zïKàž§Àã»sçÒvàžï¬2ùð?þçÃÿ<ÛãÉ|'M(O{rØ“ÃÎÞHÀgãµñùË 9¹'¾ë]¿èúÅÙ»ÏrĦ›Fl þ홡ŸýÕ;°Cd¨Çøöõg_öõ™z/ }ièKCCÍ^‡Ç:<Öá11ðo€_6êxMÇk:^³dù’åK–G÷ƒUuÞú÷a`ˉÀü €Ïì WWy\åS|ó±<öÇþaE"ŸX ä™.öe¾s77AY4¥hJÑ”Àcr+,©°¤Â’À.›w_t÷Ew_4¦À˜c ÇlyeÂ5ÚßzÙñøÇï8~Gà¿Þ;÷Þ¹÷Î ì³[~[ùmå·›_l~±ù8¿å”–SZN \FÌüøYóŸWFÂo•ù¶n‹º-궨a\ø†q‹ì,po_ÍŒš53‘Û¸Wƽ2î•ãwŽß9þl¿û]ºC „[ÞÇü#°ÿú¶íÛ¶oÛnå!’mì¸±ãÆŽªôL þªGæ­ró‹z9!y^¸Žgnsþ·™aˆ´,Ôþ£Ô{ Þõ¹Ñ­wåÞ•{WþhÿNûwÚ¿c~€¼B, $á:ä7ó§ÏŸ>z¨½‡ûÑêXò±äcÉ™÷™ÎìÃÁþp°O ¯ €I ùÍɲ'Ëž,[TýQõGõïì|gç;;Í@ô ¬ðÁ+ƒûÜ×à¾À†,f È+À`BCþ47mnÚÜ´à£þÎ[ï¼õÎ[­Ñ'ó ŸÙ¼óVÌ[aåò°€ÀOÌ(˜QðêWw¸ºC棾Øübó‹ÍßWh_¡}…L@t¬ê>óšŸÔ ©AR÷þy‘X @H`ÈÏ_°ø‚Åû#gœ5r–u :ŒzuÔ«£^ ^í^|xña«= €À„$îI½'õžÔÌÇ~™ÖeZ—imÈëöÆîÝ›yU趨ۢn‹Ìw €À„$þõçýù_^†TRiH%ówVòÌk{lõØê±ÕwõÜÕsWOÿÞò.°€À@À›£ßýæèÌ+@É'K>YòI«@^ˆxKý¹ÔŸKý×W|ÞþÓÛzûOÖv ¯ €I dÖcD=Fd^úé?¦ÿ3·<2é‘ILʼž÷ìÖ³[Ïnfˆ`0! ;–U3?ßü2í—i¿L œE&5HjԠٗ;lö¥/…ä¾?ðýï3¯Þm/n{qÛ‹3¯ðf ÈëÀ` J€À@” €€(!QB,¢„X D °ˆ`0%À` J€À@” €€(!QB,¢„X D °ˆ`0%À` J€À@” €€(!QB,¢„X D °ˆ`0%À` J€À@” €€(!QB,¢„X D °ˆ`0%À` J€À@” €€(!QB,¢„X D ð¿-Yší¶,Lmy˜ÚŠ0µÏÃÔVæz[¦ö0µ†©}¦¶:LíË0µ5ajkÃÔÖ…©}•ëm}˜Ú×ajÂÔ¾ Sû6Lmc˜Ú¦0µïÂÔRÃÔ6‡©m SÛšëm[˜Ú÷ajÛÃÔv„©ý¦¶3LíÇ0µ…©í Sû)Lmw˜ÚÏaj{r½í SÛ¦¶?Lí@˜ÚÁ0µCaj‡ÃÔ~ SK S;¦v4LíX˜Úñ0µ¹Þ~ SKS;¦–ž–rN˜Ú¹ajç…©¶š j €¢DÔÀÞ` ÿˆÚxw›Ýmv·Y’rÖÚÒ05{ÛØnÄ‘¿qþÙ‡8ÿì@œöþ*L-ÿì=œvÎ?û 矆í1}» ‡káü³»°}…í(l/a»ÛE8\»çŸýƒílÏ`»Û'Ø>ÁáÚ'ØÁöŽø]w÷ÜÝswϨ½€³A %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB dËÊ+{¬ì‘’œ’œ’¼¼ÄòËK˜ ¿IŸ˜>1}â²i˦-›–ò]Êw)ß­‹]».ÖÌùÍ–:[êl©³´ÍÒ6KÛ,«»¬î²ºi¦=šö¨™€H €|jߌ}3öÍXÜqÿÅýí´cÐŽç×8¿Æù19V*­TZ©´žÏ÷|¾çóïlxgÃ;v.Þ¹xçbsD¦m/l{aÛ o§½övZ—„. ]b*ÆTŒ©˜óõ°þšúkê¯5}ÔôQÓWœ³âœçzëÐ[‡Þ2ç@¤9Úÿhÿ£ýWÇ®Ž];¦à˜‚c 6»µÙ­Ín9CnyÛÈÛFN~oò{“ßÛôã¦7ý˜1'cNÆ3gƒò…=5÷ÔÜSsÊ”)S¦L©qO{jÜ&OÇ?ÿtüÖó·ž¿õ|ï û¾¹ì›Ë¾¹lлƒÞôn¸VÂFà o4|Ζ9[æl94èРCƒ¼/@n:¶ôØÒcK$-HZÔfg›mv†k=ì=¤÷ÞCVßµú®Õwy_€¼(xeK9?åüg»„™¢Ñ¯¿füº®ÑºFëÝÞóöž·÷Œ‰H É É É bÄ.ˆýuǯ;~Ýá­άc펵;ÖnÖŠY+f­(µ¾ÔúRë#s=ìõF¯7z½‘ú|êó©Ï{×€³a稣vŽ2oȼ!ób"ؤ據Oj~ø¾Ã÷¾Ï»D>0‘I Qeí¹kÏ]{nÒ‘¤#IGNï¢[Ù•U~WtÊÕk;>ûF›Ï†6®Øºã•M¯úP×Ò“·ðÞ7§ý9þ¥n·N‰¯ÜiÆ„kª5¿yÞ¨r•^nòy÷M—O©4 ^Oæä’ßüóÌprðÉÁ'{7Ós¢ã‰Ž':N}}êëS_ÏÉŠtÍú ëËLrûU媜˜¼¥eÇZç½¿éÆøÄEOlW ~ñ%h÷AýáŸ,h{W½Kf¹î‰:O½Ð¡qÝê-ïí°öŠöWô.ѲhŸÓû½íŸmÿlûgSßK}/õ=ï&?ÎýqîsïŸpÿ„û'œæÖkJ¼[¤y§Å7L.·aô9®o=½ë“«kï]pí¸ß_¹ø³ñÕïþ÷™ Ô¯õáíc\Y|ê?VëÇ‹ô\_­eÛ^Muxìec/{YÚãi§=îÝ"“˜È$€<ï§é?Mÿizça‡u–ý jãëþT¢Ô­[ž™QyúÃC>\+qĈ ®¼òLõÆ®Ü_gQç§þ¶²ÚsuÞ¿ñºÒ³?¶juªÕ©VgÝ uƒÖy,*ð¤,HY²à· =ÆÕ*P!fáÆ›*×{îècÝ'51##9¹eË3ÕoüäΧ’6MXÐì–„¸¸B—Ư–ý±õ¿®ÿuý¯;TòPÉC%½¿@vëy¬ç±ž£ãGÇŽÿ Ao‘eŠ”z®ÃC›ã_újðÛ‹ÿø`FƪU-[ž©þdìÊ›[|»ìÙW¿¹ªu¿e§U¾ø·®Õó¶ÌÛ2oKÆ'Ÿd|â]"‡˜È$€¼é`ÆÁŒƒ3‡Î:shö/œÝ2û‰o*íÖñ«‰CÏlÜ›ý¾K¡WŽ‹)ß<áëâå²3æa£‡6úØ÷Ǿ?ö½·v(æPÌ¡˜ûJßWú¾ÒÙYUZ?T©zÙG—ÞtóóW]pfƒÞì÷÷w{¶ÙÍ/Üßøêê×e _t΢s¹’„´ú¡Õ­~(û«Êð’/¯ºâÇn>Óøƒ3÷f¿_½ð‹®îÜyÈW–?/[køí­oo}û®v}°ëï8 ÀD&§ Ç~õð«‡_½ëí»Þ¾ëí¬/o{é±"»vž<8nýð^ë&~®Ð7Tß{áüÛ&U?Ò¼Ù¥¿Ïúµ”VfX™a[Úoi¿¥½¾ûåØ/Çf'0¸·IÂçW´ÝúÈ]3U Wèª?>æ¾®-þ0'£õ¤ºu²óZ–Xn`¹ýNô;ÑO g<œñðØMc7Ý”­vÿ6¬sÍ!i1)6/®Ð7T¿ë¼V7):ðê®å«ü_¶¾StQÑEE•^`"“òŒmÝ·ußÖ½ðæÂ› oÎúrدŽ=\µQ¤Å½Y÷='Í®X£q‰­eß+2ã\ì+³¨Ì¢2êò³·k¾]óíšY¯ ‹—«{é#WÞù\ÒæH }Cõ'çöø¹Åñ‰Ûš—Kx3ëW—x0ñ`âÁ=K÷,ݳT=@þ”v(íPÚ¡Ûbn‹¹í¥OÜó@¯¸ß‹]–ÜüÃH }Cõ?¬ù MãŽf´Úrù€¬_ݘä1Éc’3–d,ÉX¢*€Ü'&2 € X“°&aMBÖ¿ê÷¾õɲ#í½jpy+úÍÜÿû×O$¦µùçЛ+¶Éúõ¾1ùÉoLV¤g¤g¤?›ôlÒ³IY¯Ó?¸öÍ:çæ•Ð7TÿãÌ»ïh¼¼ÕÇ«•IÍúõn밭ö ò½¥ö–Ú[ªÊÄ*«L µ2T-}Å[Å>ÚôãœÑ cóJèªÿôñóë]õJØ»Oï>½û¤N>Z…¹ILd@D[U~UùUå³¾àÕ±Æ_÷UýSÞ }CõŒŸwsÂÿˆy&®›¸nâ:uQnGÆŽŒC/záÐ C­º—˜Rô­ï[uêÐèù¼ý÷®iV5¡pÖëajrjrj²bè¶{Ýîu»×ù¼ÈçE>µ ‹¿oyÕnéo~þK‹…y=úÍÜï™÷éÀ¦Z,hP°LÈ'@tÛil§±é…Ó §V-@î™À¡Ö¦®M]û?îúê}xþü„w¢/úÍÜÌXùqù_Hü[‰w~Lm1µÅÔj¢Õ¨ £6ŒÚòrÿçÕ»”ûöh¯î㛉¾è7s¿tÐÍ“®*˜õçÂŽßïøýŽß«ˆ>Ê(s LññÅÇj˜;~ôôºí£)ô îÓ§~~¨ÅÂÁI÷ª² ä¾ïíîmwo»“'3N*ଙÀq¶OÛ>mû´¬/ñ?²rÉ=µoŒîè7s?ôûuMo­³üÆäÒGCÍÉ‚O|ºàSõÑdòM“oš|S¨£þÑ”úñUºŸü)ù¼–¢;úÍܳüŽ/’zfýqàò—¸\ý@t8Þúxëã­ëÇׯê¨_öá«Ç¯Šòè7¸©óÀj|jNF¼8âÅ/ªàl™ÀAÒN¤H;qé¼Kç]:/ÔŬ¿.¯WçÿåŸè÷¿vn°þo‰Ÿ×½¶Më2W„šŸ‡7ÞxX-A^·ìâe/»8Ô‘>xzý­UÖe¤'÷hÙ"ÿD¿™ûÔ9_o82Ôü´¼¨åE-/JOMOMOUK×õú¦×7½¾ u¼¯ðú» zä·è7s?ñ‘Áåž5?3¿ùíÌoUpö€‰L`ˆ ÝOt?ÑýDÈ»~kÖ¡véüýfî‡U^· ñ*×7è\²Bð,Ž+W8îHŸ#}ŽôQQíþx÷Ç»?µ&—©uU…“«·,Ÿ?£ßÌýú—oí«g➉{&NEAÞ5=ezÊô”PÇøâC{¤~üýfîŸ)Чe\Ș|Ó6ýaÓTp6€‰L`ˆóÏ?>ÿx¨‹VTz÷¹„¢ßÌý ÿûÇ u …š±¾uûÖí[W]A37cnÆÜÖÏ´~¦õ3ÁÇuâ¢Ø’%ÿz¢Õ}oµHýfî?YÕ¶k½¡ÖÃÕÅW_]\qAÞ²ýüíço??Ôq=ùë—Õ:Gèû_ý´U#[ÖîÔö†kË- ž±²óÊÎ+;ïDÛmO´U]À™%>SÞŸýþì÷gæpÔ[£ÞõÖ¾VûZíkefNÂlßÑ}G÷…Ü×¶Ã篩r§¸7Tÿ§ÍܘjöVî\¹såN5yÅÜkæ^3÷šPGô®µ]*7i&î Õ?5'鎸gBÍÞñûßü~5yÀÀŒm\´qÑàcùÞÏn.{Åé«V }OÕÿrdÉÁæç…Z Ç4Ó|Ls%œYàœKo—Þ.½]¨Õ[|zÀf}¦ô™ÒgJðIN­ƒ­Kß9bà†•WÖôfÝß²ûɦ•/žÃb]Šu)Öå׿6øµJƒHvpÿÁý÷‡ºèóémÇÖs×ïÿè}«G\‹‘ÕÞ*u¤x‘à9|qÛ‹Û^Ü¦Ò òÍbþóŸµîñÙÇÍÞôfÝ•1½ÒCî ¼£ÐŽB; ©4àLç\æ{³& Î>0„ͦݛvoÚêÄfÀ¿–­s¾p7;ýð5_¿žxâòñóŠ=<“o~sð›ƒÕD²Ç'<>áñ ÁÇo§¯«ß[î;ánöûÞù@ÒÊPŸ,{úîé»§¯zƒÈt,ñXâ±ÄPÇï’×^~®þëÂÝì÷#×öªSmFðLÞùó?ßù³zÎpÎÝ@¸“mÂଠ€ lÚh_ }àÓ˜öÝŸ*U¹ºX÷7?ºøüý Ÿ†:9<úÉÑOŽ~¢ê Òü|ÓÏ7ý|“Ç>ŸÙ~H™«.®²'x>‡6Ú`¨'"@„šÒoJ¿)ýNñ/ÃÄ–Õ.›#Ðý­}Ú²”±Ík†ú|ÙxÎÆs6º6œà3K|¦ø€0ؼ}óöÍÛCº «¾.%ñOÝÓëë÷¿u\ÙSÜ<=nzÜô8µ‘fÔÄQGM >fŸ]ßpT|Qîéõûçv}¿éšPŸ2ûö'ìOP{9NT=QõDÕPÇìÖÁó*4ª"Ð=½~ö'ÏÖ«óSð¬vÜÑqGÇjÈ9ðÙ# Î 0„ÁC}êûPßS<’nÙ_¯ªzƒ7'}ß‚ _®uoðܾºðÕ…¯>9÷äÜ“sU D‚#7¹ùÈÍ¡.Üø¹[\³’¢ÜœôÏ–iØ$¾DðÜN?aü„ñ*"ÇÇ=>îñqࣵëµ7U/¿Yˆ›“þÄÁ“Zt ùœ‰Á»ï²Q#àÜ! þ­À«~ÙõË®_v…:9ÚwíˆÄZBÜœ÷ ýZn¾ô‰à^óÄš'Ö<¡!Ìï6¿ÛünÁÇéà×ë§VY+¾Íy¿§Ï=Ú õ‰s²êɪ'«ªCˆ ú5è×àÞxdöš¤ qsÞO)ôXÑZ×Ïð_æüeÎ_æ¨@ 'À¹Oœ`ÈU5þ¨ñGƒOE®=ÒïŠ+îÜž©>9~Æ+ÕS‚çùõ¬`½:„HÐppÃÁ §Û¶vªÕh€øöLõ/¬Þ¿ÜÁóüÕ—_}ùÕ—êÂk×Ä]wâ1ø5ÊT[|cFúªÏÅ·g¢?Øíï•šÕ ù…˜í'·ŸÜ®Ó#/ap(`ÈUmSÚ¦´=E0Ù·áµúE~°:´ÓÚ;«Uî^ÿŸ%6Fþà¹][óîHç°ŸÖJœêdïÄÄOLT.ûïÞ÷þ»ƒÍ¸™—v(~C$„¦¿þ±Çy-z]²®pÿ˜ŸbNËÎñ5~*^ËÊÍí_kÐ"x„CòèGU#„×´¦Ý0í†à#tÖùO§ÖA꺿jvý˜£}®^³ÉÞzÅJßry¡2½dV oþ÷«®+}ttÝÇßš6.¥wóJ‘ßÕóúqåžžíÍ67ÚÜH5§G9„Á™ € —ýùèÏG>Ù¸ä‘b…kèºáµ+ã#?nøi—§/›ü*"s´M÷õH-waðh¿>òõ‘¯¨I— X0 øØœüEË[kžŒ„Ðô»†K6¬“‘|_ÇB3ã3îV“. ¿oø}ÃïƒÍ½kÚ6BÓU7¾þBƒNÕzT˜Uü‚ì¯Û—Οßè‡H €?+7±kýÖÁ£}éðK‡_:¬Ó#ŽLÂ`0ä’õÃÖ[?ìÝ÷þ+D~ô{ûŒ1ÏV™ê4)Bý¯™?Ô8?x´ãbÆÅŒ‹Q“.÷O¿úýÓO¬îôS£EBhúáàW\›ylcW6‰­¾nüsMGÖ˜•þðü{›}9‚îX9¾{¹&ÁsþÓÓ?=ýÓÓjrßÑ~Gû=ž¿UÞ»¢C±É‘—¦&Ì}®aÀ=¾±ÕYQÉ Oë}}\Ë…å_jZ¯Ûâ &,¨·fä¬^Å«M¹,¶ô†Kúg~-éñŸk1%rà×6¼Ùøà9oP©A¥•Ô$pzÀ‘/†Á`È%¯\ôÊE¯\|RÑóõÙÕj4‰äè÷OW¾_9ay±sJÎ.X¶ß‘'–Æ5ïø_OÈXµªeËÌÿO‰ñÅ^üg"§¯V§ÂcÅŽÏüñþÇûï¯2ßJœ·äŸ0X ¹¤Ãk^ëðZð‰Ä£þqwÝßEh€zÙ}êö,AB÷⌶ùØû?.÷B^ €}±Ù¥6ÞwЍé‹ô/Ò¿P™›8<âðˆàãñ¦¿U»%râÒ>ÿ¯Î?+. Œ­Ýæ*.«’×à­OÜõN£j§¸˜ÕuT×Q]U&ä¾™ßÍünæwÁGåòW&;ê©ðF¤ßÞ?ëå¤çã)|nÌ?bZ~×pΚÿ<?ëŸ ü™wwœ\)~ÞŠ1U FZ<¬ò}Kªv=ÅS(voß½}·Ê~+pÞÝa°rë´°KL—˜.§ˆNã64º²TdF§õÊÜrUÙ¢ÿ¾îÁFKÕöþWó_É[pƒ[nß[9xÌû“ö'íOR™›RoI½%õ–àãñ¯ç6©]}käÄ¥­o«tEÙ?šu`×zoU)žw£ß@´g÷qÍŸžùV%Z•hUBeBîÐg@Ÿ}Nñ`öÆ/oÒ1¼é37÷·ë?_‚iÞþÿÿLdE¹§×ø‡±C¯<Å~ÆK -)´¤Ê~ó™¾8*D_,€°VnUÿ¥ÿŒÌÐô¦ñ#ªø¯À8/íZ¾Ø%Ãû_—Ò¤öŸóÖ# }»m¿[éÖà1oúbÓ›Ü ¹jñÞÅ{ï >þó¦òõž‰œ¸4óØ&ôiV?áÒ1}¼qzùV¥cË´.új‘¯jÄ—nY|ó÷Æ-¼|Ók¿k1³æøŒ‚É…ZFê]Â_'ßÑ2)Ô®2!÷5[×l]³u§xñ«Ëǵ(Þˆ´Ãc­_þ§ÀxþÖeе m3ÿ×cÉ˦6ÿ|ûÒùóý6.¥wóJy+ÞXjv…¤÷ƒgþÕ©¯N}uªÊr~¦/Îë¢# @ØN “’;׿¬F¤Å¥ÉwÏ8Z}}‘/9³ºpr‘ž1Ýûù´yñS2½y+¾gôkãNqßÛ² —]¸ìB• ¹iꎩ;¦î>¿ùò޵I½"!(=”ÒmS³ÿzHuñ7Š<^xtv.ú´z¼bñ2k¶/í´³Ñ‘']rùºKÿ(†HPtYÑeE—âx\²êå–õÑÖÚWí…ÆóÞGcv&6ÿ¢ÜÔeWŸwóêE.ëT4å’……/ÿ÷¢~*fpàÏ÷›Ýù/•·ÿœE×4};’à=W~Z²ià™ÔfP›AmT&ó3}p4É»a°ÂvZغOÿùWlŠœ ôÏ'V®Ó©lÑJ+ŠÞá —|¹BrpÄ›·àûÿ5·kYÁcž×l^³yÍT&ä¦Ñ¯~}ôëÁÇãýïnÙxA$D¤_žwÛÓW÷aòõn¯Ðtf“ëÔ¹#ðgÞÙyý-u'÷jY»{……Ïéó_÷ GæÝÀo®þ×rÇÀ™ÿ2¬öF…ÔâE"!"½¼P™¿^2ë?ÁïÚ¤Jñ"Û‹´ˆ™—ý ßKß~µÒU%#3NKMy£ù)þ5{÷È»GÞ=Re9_ÏÀÑ*o…ÁçDÎ!ùÍÍ5Gþ±RŸHˆH‡¿üuËÄ] {®™{éœÀØjOº¾kéGÚPðÊS„»y+îóŇj¶QoÉö¾ϱ¦"!"ýè6å¯ü÷.ŵ·–-Pb×n­S!󣡃êãNm½ò™SÄÀ?ôxÝ+Y!B5^reµÒ…#!"Í|ofcŽöý¹zÍõoMŸþÇù¿L[òn³}[Ï}wI£?¼ñòÈMµ‹ÆÝ^±gñ?Y­G…YÅ/Ø`ñM·DZ|âÿ–ïiQE½›ÞŸýþì÷g € _h¿ì©Å•oˆ„ˆôÚ˜‡Ÿ¿âߣŠÝZuw±s½eÕuÖþŸ¼?tï‚÷knPoÉöíº¦é¶È|lr`„¿uçàŽ×Ä?T®U¤½–iõ.¯¼D½AdjUÿç”Y ié;Jî,òJ`T»·œ7¬QÓÿ¬‡§þ©À­øÞåEg~]‘ÿzõŠo[ôRoä¦ã³ŽÏ:>K ùB$ÜÜcÏŒ„êsbÒ OŽ¹ë’ºÅž-\¦Wá¹3j,Œ0ÔO¿w99w礟S´õ5uN^QÍŒ27—î` û"çà:kâ/*Y!0ªgø[ÆÿŸÍüŠ®í÷Ç£eï`ÈGwž®iš¦iš¦iù§ŸDÂÀ·mݳÊ9göÄf@ÂÒµµ—FþÀO?òô#O?¢25-7[ï¤ÞI½“‚ÇÈÙøLí\ü"ýŸÈ$Ò÷V™š ÿ2Œœ=€¯oÕ¨FÙQ­¼kòW ªdÿgW<úÚWýû«„±ÕK—¾ä7„ÇáÝøú×÷¸¾‡ÊÔ4-çëùøßÿÝøß™™èk ü`à“ÏK>/ù¼ì_! üù|´0ä7Á§IÉë_V#úàH»'øžÑ¯Œ{>x„Ë.\vá² U&䦩;¦î˜º#øxüæË;Ö&õŠ„ˆôï?´»¶~ÃŇoÚWÿ÷[Þõm£¦ÙÿÙy+n(X0ðŠâ¯»tlñ#-Nºäòu—þ1xþU&侢ˊ.+ºìÇã’U/·¬Þˆ´Û¢ví®¨ÏÏŽ-øcöö“Æã>¿òhàgko»¡ÄÞH €÷\ùiɦ‚g~P›AmµQ™@ÎÏôa¡™‰àvÔ[£ÞõVö¯‡þ|™ € l§…•[Õ©Ä?ÃŽºê[êÆ>xîG×Ö¼;û}æWÑeÑ«oÄ]ü_#'n·íñw+Ý<ÿ›¾ØôŦ/T&ä¦Å{ï]¼7øx\øÏ›Ê×{&""Ò—ióÀ¨Z=^±x™5ÙÿÙw×^)>ð³Ý%LøO|ð×Éw´L u‰JeBîk¶®Ùºfë‚Çã¯.×¢Px#ÒW+ mP³Z`<½+ß>§b»ìÿì€á]VT~;ð³wŸhswù‘o,5»BÒûÁ3ÿêÔW§¾:Ue9?Óçuy7ôÍL ¹uZØ%¦KL—SÜ)·¡Ñ•¥"yݬ÷„¾‘<ڷܾ!¶rðÌïOÚŸ´?IeBnJ½%õ–Ô[‚Ç¿žÛ¤võ­‘”†ŽH³ú©ÅÜ4®ÞšÂc–Ä üù%ËÛýZFäÜû{´g÷qÍOñ,„V%Z•hUBeBîÐg@Ÿ}‚ÊŸ¼¼IÇðF¤{c?ý¢éKßQrg‘W£šÙäéuîÈν¿E¶i3/ðSsŠ>ûh“‘¶ð‡;ôÊ ‚g~I¡%…–R™Ào>ÓG…è}3@.éðZ‡×:¼|ÂðèÜ]÷wà³×›]jsá}Á3ŸþEúéî†\uxÄá‡G7ý­Ê€Ø-‘”ø¾[•fÅ++¹¶Ø¿¿²ˆu»¿Vóú+&½÷Ñ ]›¯º±ýÊfÕ¾î¯u^èÕ²v÷ ;3G¿÷ÎM8tEr¤=üyëw½Ó¨Ú).ZuÕuTW• ¹oæw3¿›ù]ðQ¹ü•I³¯z*‚Òà±u¼¦õ»åZ½5ä‰[jÿ¼×ä’W˜Uû™óê¼Ðýµ›W]1©ð¹1ÿˆi™ùOFZôè‡U¾oIÕ®Á¯nûîí»·ïV™Ào%λ¢/ôÍL ¹ä•‹^¹è•‹‚Oz¾>»Z&à³ÑnóEJÝÁsÞ¬`³‚Í ªIƒU«2V…º˜’žÑcz‹µ‘spõ«/ÝSüÍì_ º'µÆå—Ð}bó±‘ýú9s[¯[.xÌ‹ê-ª·¨žÂ„Ü·±ÆÆk•O·ùÓûqs"".-¸ªP˘>ÇïÜQ1-û+a§ª7Ä•›¿¯ÐÂgš>™pµ:+vôßî¼ÿñþ*ø­ÀyKt‡¾™ € —¬¶~ØúaÁ'׎î{ÿ Àg£Oþ×Ìjœ<çãbÆÅŒ³ç%„ÍýÓïŸ~ÿôSÜ}µºÓOþ9¡i`T/ mº¹ÆöëºWü¼lÃ+Ö–èUô‰¢)…¿,|y•'JÅß¹Tõ¡å~þ´VÛ'ëÕÈüS‘w¬ß½\“S*«¼wE‡b“#-4ý´ÖøQõjîë­<®ü€b]Š¿Q¬^áÑõ^¬ñkÉ“÷¤¶ý¶üÒ÷'þ¥sâ;™ïŽ´Wqøòφ7<ç *5¨Ô ’šN8òåŸÐ730ä’£?ýùèÏÁ'—Ô÷¡¾Á'$w.ûëUUoßæ¤ï[páËµî žÛÂW¾ºðÕ'çžœ{r® „Hpäæ#7¹9Ôš?w‹kVRˆ›“þÙ2 ›Ä—žÛ ã'ŒŸ0^Bäø¸ÇÇ=>î|´v½ö¦êå7‹osÒŸ8¸bR‹Ž¡>kv Þ5x×`ä„8w}+0„Áæí›·oÞêeXõu)‰åž^_¿ÿ­ãÊ><«Óã¦ÇMS{iFM5qÔ)úìú†£â›qO¯ß?·ëûMׄú”ÙŸ°?a‚ÚƒÈq¢ê‰ª'ª†:f·žW¡QQîéõ³?y¶^Ÿ‚gµãŽŽ;:îP{@Î €Ï¡oN€ lÚh_ }àÓ•öÝŸ*U¹º(÷·ö*>§¡N~rô“£Ÿ¨:ˆ4?ßôóM?ßòÞ¬µ]*7i&Ðý­ý2W]\eÏ)6h0´ÁЪ"Ó”~SúM9Ń Û'¶¬vÙQîoíÓ–¥Œm^3ÔçËÆs6ž³Ñµqà ŸYBß3Ň„ͦݛvoÚêfÀ¿–­s¾X7;ýð5_¿žxâòñóŠâÞß7¿9øM÷ƒˆöø„Ç'<>!øøíôuõ{Ë}'ÐÍ~¿ñÁ;HZê“eOß=}÷ôUo™Ž%K<–êø]òÚËÏÕ]¬›ý~äÚ^uªÍ8Å–+?ßùó?«7àLçœÐ÷l@˜õ™ÒgJŸ)Á'3µ¶N,}çˆV^YGÄ›uËî'›V¾ x‹u)Ö¥X—_üÚàWw¼AD;¸ÿàþƒûC]Üùôƶcë% w³î}«G\‹‘ÕÞ*u¤x‘à9|qÛ‹Û^Ü¦Ò òÍbþóŸµîñÙÇÍÞîfÝ•1½ÒŸ5‡; í(´£JÎpν?ûýÙïÏúžY`³}G÷Ýw4ÔéM‡Ï_SåNoÈÇ>oþàÆ„ŒP³·rçÊ+wª1È+æ^3÷š¹×xôéõOÍIº#î™P³wüþã÷¿_A00c`ÆÀÆEm\4øX¾÷³›Ë^ñ@Fúª•‚ÞSõ¿Yr°ùy¡VÂ1ÍÇ4Ó\‰g–8çÒÛ¥·Ko'ô=³ÀæŸ|þñP'<Tz÷¹„âÞÌý ÿûÇ u …š±¾uûÖí[W]A37cnÆÜÖÏ´~¦õ)‚ÌÄE±%KþõD«ûÞjánàÿê?YÕ¶k½¡ÖÃÕÅW_]\qAÞ²ýüíço??Ôq=ùë—Õ:GÜû_ý´U#[ÖîÔö†kË- ž±²óÊÎ+;ïDÛmO´U]À™%>S2ß,ôÍ90Dî'ºŸè~"ÔžGjÖ¡viÑï°Êë$>PåúKVž¥Âq…ã Çés¤Ï‘>* ò¢Ýïþx÷Ç¡VÂä2µ®ªP#£srõ–åE¿ë_¾ýµ?¾j®ž‰{&î™8y×ô”é)ÓSBã‹ýí‘úD¿þ™}ZÆ}j®6ýaÓ6ýAEgƒ˜È$€’v"íDÚ‰Kç]:ïÒy¡.` øuy½:ÿ/F¿Ã¬ÿ[âçu¯mӺ̡ægãá‡7VK×-»xÙÅË.u¤ž^k•uéÉ=Z¶ÈŸÑo꜎¯7j~Z^Ôò¢–¥§¦§¦§ª%Èëz}Óë›^!£ÍU^·AüýN|dpù„;þÎüvæ·3¿UEÀÙ#&2 € âlŸ¶}Úöi1Yzdå’{jߘ¢ß¡ß¯kšxkå7&—¹_ò‚O|ºàSõÑdòM“oš|S¨£þÑ”úñUºŸü)ù¼–òOôûÍò;¾Hê™õgÄË\~àrõÑáxëã­·®_?¾~|¨£~Ù‡¯¿ª}~‹~_ê<ðƒß…š“/ŽxqÄ‹ê8ÛÀD&0D¨µ©kSצf}‰¿÷áùóÞ‰îèw`ÆÊë̯øBâßJ\j¦¶˜Úbj 5ÑjÔ†QFmµtú¼z—rßíÕ}|ó1Ñý.tó¤« fý¹°ã÷;~¿ã÷j¢Ï2Ê(S||ññÅLJZæŽ=½n”ÇÀéS??Ôbáà¤{UYjîmwo»{ÛÌ8™qRág˜È$€ˆ¶ªüªò«Êg}¹¿c¿î«ú§è‹~?ïæ„¤¬_ûÄu×M\§N ÊíÈØ‘±cè…C/za¨Õ B÷Sоõ}«N=}Ñï„kšUM(œõz˜šœšœš¬X ºí^·{ÝîuE>/òy‘ÏC­Ãâï[^µ[ú›ŸÿÒba4E¿{æ}:°i… ,S3äW‚ÆvÛilzáôÂé…U ;ÀD&0äkÖ$¬IÈúÒýÞ·>Yv䣽W ®³1ïòû÷¯ŸHLkóÏ¡7Wl“õë}cò“ߘ¬6 IÏHÏH6éÙ¤gÿÇWC¦pí›uÎÍë¡ï3ï¾£ñòVW¬Væ< b[‡m¶uP ì-µ·ÔÞRU&V™Xeb¨•¡jé+Þ*öѦçŒn›×£ßO?¿ÞÕÿã¹8}z÷éÝ'}túèôÑ*ÈM`"“òŒmÝ·ußÖ½ðæÂ› oÎúدŽ=\µQÞŠ~{Nš]±Fã[˾WdFÖ¯nQ™Ee•QŸ½]óíšo×Ìz­hX¼\ÝKÙ¸òÎç’6ç•Ð÷äÜ?·8>q[ór ofýê&L<¸g鞥{–ªÈŸÒ¥J;t[Ìm1·e½`ÄØõwˆ`"“ÓÈó~šþÓôŸ¦wÖyXçaÙ¿äW1¾îO%Jݺ噕§?<äÓɵÏlÐûhìÊýuu~êo+«=Wçý¯+}0ûc«V§ZjuÖ Z7hÝ ï/}) R¤,ˆùzŒ«U BÌÂ7U®÷ÜÑǺOjþâ™{7~rçSI›&,hvKB\\¡Kc‹WËþØú_×ÿºþ×*y¨ä¡’Þ_ ;Žõ<ÖóXÏÑñ£ãGÇgµ)U¤D™"¥žëðÐæø—¾üöâ?>xfƒÞ“±+onñí²g_ýæªÖý–užVùâߺVÏÛ2o˼-Ÿd|’ñ‰wˆ`"“¢ÊÚsמ»öܤ#IG’ŽÄœ–²+«ü®è”«×v|(ö6Ÿ m\±uÇ+ÿš^õ¡®¥'ÿ.ná½oNûsüKÝn_¹ÓŒ ×Tk~ó¼Qå*½Üäóî›.ŸRi@½%žŒÉùæ˜?àäà“ƒOön§çDÇOtœúúÔ×§¾ž“éšõÖ—™>äö«ÊU91yKËŽµÎ{Óñ‰‹þžØ®@ýâKþÐîƒúÃ?YÐö®z—Ì*rÝužz¡CãºÕ[ÞÛ!aíí¯è]¢eÑ>§÷{Û?ÛþÙöϦ¾—ú^ê{ÞM '~œûãÜçÞ?áþ ÷O8½©ÔšïiÞiñ “Ëm}΃kã[OïúäêÚ{\;î÷W.þlüÄEõ»ÿ}æÄõk}xûØWŸúÃãÕzçñ"=×WkÙ¶WÓûc'æd{ÙØËÆ^–öxÚãi{7È$&2 € ýšñkƯë­k´®Ñí=oïy{Ϙˆ”œœ¼ vAì‚Ø_wüºã×Þ:àÌ:ÖîX»cíf­˜µbÖŠRëK­/µ>2×Ã^oôz£×©Ï§>Ÿú¼w 8vŽÚ9jç¨!ó†Ì2/&‚Mj>©ù¤æ‡ï;|ßáû¼k@ä™À/쩹§æžšS¦L™2eJ{jÜSãžp]Ô{:þéø§ã·ž¿õü­N‰0øæ²o.ûæ²AïzwлáZ  o4¼Ñð9[æl™³åРCƒyÜ=«Ž-=¶ôØÒI ’$µÙÙfg›áZ{é=¤÷Õw­¾kõ]Þ /™ÀOí›±oƾ‹û/ÿ ƒv ÚQãüç×8?çòJ¥•J+•ÖóùžÏ÷|þ ïlxgÃÎÅ;ï\lÎÈ´í…m/l{áí´·ÓÞNë’Ð%¡KBLŘŠ1s¾Ö_SMý5£¦š>júŠsVœ³âœCozëÐ[æˆ4Gûí´ÿêØÕ±«cÇSpLÁf·6»µÙ­g*è½mäm#o9ù½ÉïM~oÓ›~ÜôcÆœŒ9sÌ<œ ` [VöXÙce”ä”ä”äå%–—X^œùMúÄô‰é—M[6mÙ´”ïR¾Kùn]ìºØu±fÈo¶ÔÙRgK¥m–¶YÚfYÝeu—ÕM{4íÑ´GÍ D0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”øÿë¬ fÈ~ %tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/startWith.png000066400000000000000000001160571431412030200253740ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwT×ÿÿqKš)ö‚Tì¬(ŠˆX@lјÄÞ5öÞkl‰âG#v4±¡1 1[ÜéTŒK4jÔXbAEŒ½ñûãæ{~|Îfù,² Ëð|Ì9÷xp™¹÷=Ã,w_ÌL¶$€)d£`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`Àüñ1ñ1ñ1Ñúÿ_ÄW¨ À•ÅÌŽ™3Ûxb<1žˆS3/€¬€å<¿ÿüþóû'Õ“êIuEþùWäoµ¨Õ¢V‹ò:ˆX›X³ØŠØ"•¤Eü¨øQñ£öµß×~_ûQGmµ±ô¢Ò‹J;àýK¬G¬S¬_l‹š˜ydFÀ“{ùéËO_~m‰¶D[º‡uë–7ƒˆ­‹žˆ^±w¶\Ëu-×µ\Ëâ—Å/‹wuuMÿw.±]ÑÑö €™ÉY¿EåŒÊ•“Ê cLèNé;¥ï”[¶8lq^&z(zË^€,Í=É=É=fiÌÒ˜¥AÙƒ²ewÍw.Ñ7ÑOÑgv0óbæÈʀ &‘ð áAƒi%§•œV2- tx­ÒÙ’mC—ø'Vn±qsÈç5>Üw¼uÓÚƒôRm»×i)Zññ¿â•â»Ò²]Ñs1 ö&d·®¤„¤„¨åQË£–—9Wæ\™s¯öRûï· #Kt9X®ÎŠŸ'­ê½ãƒ°ì>{•%+úøî5¬Œ«³Kü[|]¼F¼^|ï«mWôYô_Œ…] ̼ìçq£Þž.åu¬2´³wÀà·gEV³ŒË½ärv“‹~Ý[´â+âÅ+Åw1ó¸`¸&`@&ö"âEÄ‹ˆˆ²e#ʦvÚ?£‹ßÚŠ—ÑÛýèw+)iÀ€à`ǶbÍb+©í›‘{Ìç¢çEÏ‹žAG‚ޱÿÝ¡å€!;#sÎÝPS½vlïŸG“’bcƒƒÕŠuŠõ‹m¥âÊà#AG‚Žˆq±€™Wråò~ÒÀg>‹g–ÿfJ@@DDl¬c[±f±f^€ôG ×D È”þ8ýÇé?N{{{Û3±ÑɧE¹wÎüÚyAý Έ{íiÅÖEOìé³){2»—Þ/½_z‡G†G†GÚó.P"νw5ÛúÏõª¹*ioìâàÚŽ{íj÷Æ.®-ú úcOÏÅÅxÙïÕf^¥µ(Ü¥ªoá¹ù#w:#îµ§[=aæp6`¸&`@&³ù·Í¿mþÍžiü—‘§¼FÞ­Ý;´Ñ®Œ }mµ¢W¢‡öŒEŒš½™Q|‡øñFŒý?n漯J·Ã±®[ì×=i[ìÜ`Ÿ }mµÛbçûˆ¾‰~¦<1^1vŽ0÷Ì«Bý.Á#;ÖóYþž2"£B_[­è•è!3/€3Ã52ç?ÿûùßc|ÇøŽñMyº>ü©Où²ï†ôk´ÏÕB_›apHï°FûDÏS¨€¨G¸¾¸ßã~ûÝž›•r+rû®q¡¸×ŽVôٞщ:p<€™f^¥ö4?×ùJ½:ËÝ”©®úÚ ƒë,wS¦Šž3ó8 0\0À¥=ñhÄ£­üZùµòKyŠþ˱v?ùÝÍ,¡¯Í'k÷“ßÝ”G*ª!*îIZ%­’V¥|>ÿ¬cßNž=Éós·&»2Wô›¼ýcIy¼¢&Ùg^>ËfVûfNf }m>9xÙÌjßÌaæH;`¸&`€‹zØãa‡=ü¦úMõ›jkBÞ§mÕá¥ßT²o±&A™=úMÞŠ‰ÑÙ»¨Œ¨G ¸Ž]9v娕#唯+ƒë|™yC_[­WÊcõá8€Ì5ó*Ò¸ê‡/üç¬lu&³G¿É[1"1:f^€WC ×D p9O‹>-ú´hƒ= ö4Øck¾|F£ U®$]Ð=8ÐLÑïµWt#µUQ%Q1ŽÈX)_õëöqáÙùî\-¶[ ¬i¾è7y+Æ(ÆËÕÀÙg^•>êuzâ±€º c÷˜)úý¯¶nÄÂØ=b¤Ì¼©E ×D p%IIÝçtŸÓÝæÍ¸~lYØg’iC_­µ­šˆŠ‰êq@úKùY¿µ'U)á&ßÛ¬umÜØÜÑoòVŒWŒg@fœyU-<âìü*¦ }m´bÔ̼ö#†k"¸000›7ü´UD­AY-úMÞŠ ت¨G¤§øñâ;¤ý>ü"ªg“RY'úMÞŠ±§‹r,€ë̼ª^Ý}á¬ýþW |it÷…C˜yìA ×D p Ñ}¢ûD÷±5ÁÞT3dOáY9úMÞŠjت•¨$G8ÛKï—Þ/½FŒmë†ÏYíªß”¯¶uShQCQOŽ+ÈØ™—w‡Á]gÍÊÑoòVTƒ™ eÀpMÀ€ –¨%j‰š­IõŒö~«+^"ôµnEelÕMT•£ œ'<2<2<ÒÖy8+<ë÷Õž l«b¢žWQ3¯ry>ùtÀDB_ëVT†™À`GÙ¹;r÷?³ìY›fmšµ)!$!$!„ʼ`@x~àùç­Uò?Trïû•_tî?$hq¯u+*#ªd]=QUŽ.p†‹ž=/zÚú Øh¼2¸Î—Ľ¶ZQ[Õµå€ôœy¹m­\³fžú–µoü‰¸×º•Ubæ°Fœv/Ú¾hû¢­­y"að«!d˜_à ÿ5ÜÖ[ûµj=¼·ô¦ÜŠ*Ùª¡¨0G8Ì­¤[I·‚Ž :b}Öý¬cßNžñÚÓŠZY×PÔVԙà ÒgæUwü¢%{{ô¦ÜŠ*1óX#N»ä×þ¦Œ0Ø~À€ŒP5©jRUï±Þc½ÇZ¿‘o2¤FcÂ]û[Q±y‚×Xï±ÞcEµ9è í¢–G-Znk"úèZôØ&# wíiE­lURԙ㠜=óò®1èʬ)„»©x*pAWfMaæHŽ8íD +Âݼv# N0 h{´=ÚžyîÔn·©…ª¼,ÕOÐb]û[Q1Q=몊jsÔ@š¸'¹'¹—9Wæ\™sÖgZ¥ÜŠÜ¾kˆuSÛŠºY×SÔYÔœCœ1ó*8ØãˆçÁú—ÖN;ÔŽX7·ƒ¾´vÚ¡v¢z̼°c; 0 }Å%Å%Åy¿åý–÷[ÖoÕ‡¦ò™_5ÝWkEõþå¯Ñßò~Ëû-Qy@x51Kc–Æ,µ>ÇÖÞW¥Ûá$Klx°/nª[Klx°¯¨¡umEÍ9öÀ3¯š÷¦{G$è¾Z+ªÇÌ ;apZÒÕI¯“^'½¬ß˜}Z{„¹&ÝÐ3¸!Qî+¶7ô n(*i]aQyŽ@x5AÙƒ²e·>»Æ~¸n±_w¢Ü´´¢†ÿò<àìAÙƒ²sì€cg^EÞ.÷ž×࿈%±û‰r_±õ‹X»_T’™€8}§0 ] 8:à耣ÖoƺWÛÞu> ÄM{+*i]aQyŽ@H­k¹®åº–Ëú¼Z"νw5ICc;—%ÄMS;4¶cpYQOë:‹ús€£f^5:L.ñõ BÜ´·¢’̼Àé0ØÀ€tòhÝ£uÖÙz~>´¡ ñÄ·ioE%mÕYìŽF°ß²øeñËâ­Ï¨ÛúÏõª¹*£BÓ³­¾/TÿYòþdöXÔӺ΢þ‡à¨™WýùkÆÌN|ë€çÏ_3î`vf^àŒEl 0 D×®]×úí6t¶ÿ­Ê!·ŽmEU­«-öG#ØånÒݤ»î¡î¡î¡ÖgÔ{Ûµ^›¸NœÙc`QOë‰ú‹}Á! i™y•ìXn臷ŽmEU™y@VFì:ƒ“#¤“aC† 6Äú-öì÷/ä'²ul+ªj]m±8Àñ£âGŲ>—¶Ð ÄcgÆÆ¥æ €E+jk=.±/8& -3/߆sW|ß‹ÈÖ±­¨*3/ÈÊ€]a00Àù%5JjdëmõÅ„þãƒ~$²ul+ªj«æbp`@Êöµß×~_{ë³hdιjªÀÎhEm­Ç%öÇ$¤eæU__[ôà1"[ßZ_[ôà1f^•»¾¬œîöÛwnß±~ízÔû5ÏÂZçµ¢ÂÖ•{„#R6j㨣6ZŸE¯Üm ¬NìŒVÔÖz\b_pLÀ«Í¼J¼ÙÀ¿å_„µÎkE…™y@ÖDœ¹d0˜àt‡sÎu8—õçÆ)!£k4u¸ôú„Ìó_P9oûE•~(Y§ÆE7‹Ü)žÿ|>£Rÿ¢ ¿ÖD+ý}±Ça…tõ2îï¥5òwåXTغòbpd@ÊJ/*½¨ô"ë³èó=ý‚B]3>šãÛõ†viÚb‡gH£d£‚R‘ðB÷ó5ã¼Þv+3¥Ö§c+ì»S\:ÒÈß5`Q[ëq‰}Á1 ¯6óò®5(aÖ\—»vöϵSµõÚ6°Ñ罊môYÑ Jéïß(þ^¾™# Ý/¼´ÌªJ Kl™­kWß¹óflŸïʰ¨03/Èš€3/s‡ÁÀ§‹14b¨õ›å‰ØŽùÏt… T»Ú¶Y€âÞ…>,˜7•.Gwû«ÁU× €E…­û,öG&ØòìгCÏYŸ?k¿ãã¶Á‚R[p¡]'åkŸò;WÙK&¼rÓæÍþ»\3u¶î¹Ø/ŸÚ™W­Û³}÷ÒuâÒz»V¬×&›àófÀûg^ÞÆïCqÍXT˜™dMÀæ`¾0˜àt£G'ŽN´~ƒ¼óv¯}|36"}°áÓù*Ž/:«Ð/¢Wå6¸M(TiáÀÞ}£¿ûh{]·{:¶ðŸªÞÿ0¡Î[Óžø¹W\,® þï[nºb,*l]y±G82ÀæÄ¯qBã„ÆÖçÏ‘%º,WÇ•`arPŸŸ*ÌÜßzÙ{µµþš¿Ý'b˜[§AeçäËž÷pÞàä¯|éq¨mÐﮋ:[KìŽOHíÌËïà2‹$»N\êq¼ÞÈœÿtî`þŽr”öÑྠÕ{M(>«füô"'*úw0öÓß›Tü`ò±øv™{÷û8W €E…™y@ÖDlÂÏLœ®ePË –AÖoŠO«÷ lò0c#RëŠþä»—×È;åôÄN;êw°îþËM)\p¶kÀ¢ÂÖ}{„#l¹°ãÂŽ ;¬ÏŸ+~žt´ª·kÀù/çÊ»Sª>Ë·ŠxMò§‹omøŸ š\ÿÉÁ¢ÎÖýû…ãR;óª_rµ{LCWJ«×{i›ºõu¾ŸóUW&,Oÿ+¾œüõÿÌÔfŒ(t?ùˆ\îvÖ%W»Ç4dæY°¹eÞ0˜àt•oW¾]ù¶õáË#ýgÏØˆôÀ¤¥ºûGÄûL/ç:ÍÿFå`{®èµ‰]ó:`Qaë~Š=‘ ¶Äõë×ßúü¹ãƒ°ì>{]3îõG›ßKEÛè&ÿ®æ}ëïòpµXÔÙºþb¿p|@jg^9×^?t΂Òâ7.´üç&Õ%âþÔÆÃž@7ùXÞ_XÝËÏp¹Aç\{ýÐ9f^5g™+ Îæ:?€¬&鿀žÁ ]-4M9Ê}áÕ¿KÐúEg£¼W¹~,*Ì‘Ž¢,YÑÇ×E`õþWãë¼eÏ÷î²øtíâÿ÷àÏý…*¹ÚuÀ¢Îoà(~Kbr… ´°Q¶jåV¢WɯýýÏ ®~[iê{íËow¼Y'",áÇ'.ûE,‰ý‰# ز;rwäîH`@–àš·M¾›­÷èFß)>ô÷ýzíA[«…O-R·ÅrfV~§ä°Å m)0.sˆ# Åx°2®Î.× €/GïÚÕàª=ß{¾äÍÖüÛ»˜«À¢Îoà(.q“äkâ.KÞ«:MæÚ9Íå¢Ü4´iÀ–§Ûžn{º%¸ÎÀG<Ûª—£Í;å/ÿ"ÿå|ywÚêsÍ8žnezÞª2¯TØ¿Œˆ+€ÀÔ\ù à'~þ¦ÉA{¾÷ÑìèÊMºüÛ»W€9¹ÂÀu~]0}×ýq쪼Ñ×Ls0HQºXÜ…………%+,e–yXæ¡õÛžë<¸Hxþóù Ñ«j¹‹=-Ò|æáz+ÕÞµ¹ÕþZ“þ¨Úed@ÿg-ú}T[|×ÙV•ÿþØýÿ>:ÏÏ{„#“………ÅÖ‘?"D~ëó§+?Øþ+€/ÞÛ9­A#ñ]ŽÈ‘÷¦«À¶žÌ‘ÉÂÂÂòj3/Wx°ÿª•ŸEWNÞ«ºùî¹i’ØÆ3€™y±°°°d…ÅúüþFøáoPó-{&gâ€r Èaô+^Ÿ…ž È:Zµ jdýæ÷´z¿À&36"mRnŠÇÑŸ^T¹Z*ú¥GÿÝA¿§ëžéÒùÓúÑ®‹ [÷SìŽL°åÂŽ ;.ì°>®øyÒѪޙýÀû[/{¯¶ööTÑ­HsW €Eÿí}ð*3¯ú%W»Ç4tµ›$×|í3ÿÕåìù®ÚëçlÜz¡â îÏÆyVŒéYbüWy#òÄæqXT˜™dM¶þt•ʘƒngmšµiÖ&ûC_ñúô}“#8ÝèÄщ£­ßï¼Ýk_#ߌHÝ[\ÿ„èÏ¡®Ÿ ÷«`ÏwíoÝúäÿ}tîʰ¨°u?ÅáÈ›¼Æ [Ÿ?G–èr°\× €{ýÑæ÷RÑö|oûE!9KÖßÕqt³É%7¸Z,êL Žšyù\f‘dW €= ÉÞ¡¶=ßUê¯C»Dˆïr[\éJÍ®v°¨03/Èš€Mø™@¦ }“#8]ÄЈ¡C­ßOÄvüÈfÆF¤^Íß_\x„èÏÖ†ÍýjvJùõWvw tOvýXTغŸbpd€-Ï=;ôìõù³ö;Þ1n\3Î9PÞRõðY¾Ul}×Ö†ÿ ªÙ)ùwE·º\]7׉~E+êL ŽšyÕº={Ðw/]!(õ®3èñ¬ðºu0Ç9jœœ²yÕ@[¯÷­2·Û÷…òç.ÜÁ­¢ø¦Ò¿|ЬGënmí2°¨03/Èš€ÍÁ¡orÀ§;œëp®Ã¹¬ß 7N ]£iÆF¤ýVû¶ôÉþ=±ðÞ‚ïóSÓÁÕ7^:Ñm^ƒïo ì™­¡Wôwm¯ë6퉟{ÅÅn¡|ó=µõ–ïj°¨°u?ÅáÈ€”•^TzQéEÖgÑç{ú…ºZ\nƒçþB•Ä¿§Ôútl…}–Àek?Þy`AÅZ¹‡¹uTvNò×7ï[—G€«]û+jk]s±/8&àÕf^Þµ%Ìšë·JÞ¹&þà2ë–]õÑË~[«ûŒŸ½ì Ï¸G¾y»Ò÷½ŸNnVÐÏ£zÉ>X/Ðöývm\óÉÁ¢Â̼ k"μÌú&G pºÛwnß¹}ÇúͲëQï×<#26"½U¿×{ ­Ô¿èůÙÿ6ÿû ÎïÔ+}¬Èà‚³“½Eûr¥=ƸN,*lݱG82 e£6ŽÚ8j£õYôjÁÝ–Àê®Gí]5°ÎŸït«˜¿_ÊïbU=*t.Rðrô®] ®ºZ,jkÝg±/8&àÕf^%Þlàßò/׉K“ßÌÙžùWþn¹ßï^mÒØ‹O»Úµ¿¢fæYpæbîÐ79`€ó5Jj”ÔÈÖÛç‹ ýÇý˜±A©èÉô›~c* ¨ìYïýIâÙÀ¢mt¡ÔóbsÃç7ú¢Ê¶^ý»­OÞëT°IþUûTßYf‚+D¿¢ª6¯Tn”Ô(©&¤l_û}í÷µ·>‹F朻¡¦êj°øºøwg­{”êPÆ(Ù¨ TøÛB¾ù¾ôѽ~vë<óðÀU•jÿ¥×m<ÃÕ¢_ÑŠÚZ×\ì ŽIHËÌ«¾¾¶èÁc®WšÞ»ÿ¤yï÷®ö•ß›ù­QìTþAE&]Wt’·R»Cé­Êvû­îÕÅw~*éj¡ï?×4ëk‹<ÆÌ ²2`×—uBßä€édØaC† ±~+=û}çËù]!4Mù6ζþ×5oþ,ªj]m±8Àñ£âGŲ>—¶Ð Äc§+Ä¥¶BÜÔ~ÝuZQ[ëš‹}Á1 i™yù6œ»âû^®£¦|]¯k^õûÏSŠÎ]ñ}/f^•»¦¬ú&G H'Ñu£ëF×µ~[ í«rˆ«¨™½Uµ®¶Ø `—»Iw“º‡ºÿËSiïm×z5nâÊajæjE=­ë,ê/ö‡$¤eæU>°c¹¡ºfŒšy[QUf^•»Bßä€éäѺGë­³õFû|hÿBAã nÓÞŠJÚª³Ø `¿eñËâ—Å[ŸQ·õŸëUsÁ­£ZQOë:‹ús€£f^õç¯w0;Á­nþ<͸ƒÙ™y€3¡¯-À€t5à耣ŽZ¿éê^m{×ù€ø6í­¨¤u…Eå9 µ®åº–ëZ.ëój‰8÷ÞÖ$ í\–ø6MíÐØŽÁeE=­ë,êÏqŽšyÕè0¹Ä׃ˆoÓÞŠJ2ó§?B_{ÒÕI¯“^'½¬ß€}Z{„¹&ÝÐ3¸!!î+¶7ô n(*i]aQyŽ@x5AÙƒ²ýËU>±®[ì×7-­¨¡umEÍ9öÀ±3¯"o—{Ïkp€_Ä’Øý„¸¯ØúE,‰Ý/*ÉÌ @œ>}S‹¾â’â’â¼ßò~Ëû-ë·äCÓ?ù̯Q¢zÖUÕ•ç€W³4fiÌRëslí}UÚ¸N²Ä†û妺µÄ†ûŠZ×VÔœcœ1óªyoºwD"Q¢z̼°óú¦0 h{´=Úë·çr»Ý¦ªò²Tÿ=AgtíoEÅDõ¬«*ªÍQiâžäžä^æ\™seÎYŸi•r+rû®!ÐMm+êf]OQgQs=pÆÌ«à`#žë_Z;íP;ÝT<÷÷ÒÚi‡Ú‰ê1óÀŽEèë(À€ŒP5©jRUï±Þc½ÇZ¿ao2¤Fcb]û[Q±ù ô±Þc½ÇŠjsÐ@ÚE-ZµÜÖ„óѵè±MFëÚÓŠZÙª¤¨3Ç8{æå]cЕYSˆuíoEŘy’#N;B_g d˜_à ÿ5ÜÖ[øµj=¼·î¦ÜŠ*Ùª¡¨0G8Ì­¤[I·‚Ž :b}Öý¬cßNžîÚÓŠZýËs :"êÌáé3óª;~Ñ’½½wSnE•˜y¬§ÝîÈÝ‘»# }‹Ážx~àyë·sÿC%÷¾_ùEçþC‚¶ôZ·¢2¢JÖÕUåèg¸èyÑó¢§­é¨Ñxep/‰xmµ¢>¶ª'jË1é9órÛZ¹fÍ<õ-kß<øAï¿ÜöÙ²ö̓?‰*1óX#N»m_´}Ñ–Ð×±€,QKÔ5[oð3Úû­®x‰¸×º•±U7QUŽ.pžðÈðÈp›¡|µØn5°&qoòVÔÄVÅD=9® £f^åò|ò选Ľ֭¨ 3/€-ÀŽ’ü:`Bß´#¸„è>Ñ}¢ûØšToª²§ÆpB_ÑŠjت•¨$G8ÛKï—Þ/½FŒý/WS}\xv¾;÷6k]7&úu5±®•¨¡¨'ÇdìÌË»Ãள‹úþóÄ߃»Î.ÊÌ 2`¸&`€ óóó°5ÁÞõi«ˆZƒ²rô+*`«>¢zEžâ;Äwˆï`ëÌ\{R•nòÃ/¢z6)•5£_1vQ[U5äX×™yU½4ºûÂ!Y9ú`æ°0\0À•$$tŸÓ}N÷9¶&Û?¶,ì3)«E¿bÔ¶j"*&ªÇAé/î÷¸ßã~O9ÎjW‹ñ¦ýŠºqü€kμªqv~•,ýqv~f^ûÃ5\ÎÓ¢O‹>-Ú`Oƒ= öØšx/ŸÑèB•+IWt4mô{u@÷à@1R[uUãÈ€Œ%­’VI«l±Å ³Â³ÅmÝðYµâ˜ןyUú¨×é‰ÇêF,ŒÝcÚè·nÄÂØ=b¤Ì¼©E ×D pQ{<ìñ°‡ßT¿©~SmMÂû´­:¼ôûJö-Ö$ÈLѯ‘­±‹Êˆ*q´€ëØ•cWŽ]9ò¦Èh¼2¸Î—æ‹~ŸR»¨Ç d®™WÉÆU?|á?geƒ¨3fŠ~ňÄè˜y^ 0\0À¥=ñhÄ£­üZùµòKùå_޵ûÉïnf~Å(R©¨†¨ G¸¦”¯>ëØ·S…gOòüÜ­É®ÌúŠþ‹±¤<^®ús̼|–ͬöÍœÌýŠQ0ó¤0\0 xþ÷ó¿Ÿÿ=ÆwŒïß”§èßú”/ûðnHï°Fû2Kè+z+zžòèDD58*Àõ¥ülàä”r+rû®É\ѯè³=£ãY¿`¾™W©=ÍÏu¾R¯Îr7ejf }EoEÏ™y…®‰Élþmóo›³çãæ/#Ny¼[»wh£].úÖîÚh—è¡=c£fï@fß!¾C|‡€Ñ£F§|¶¯½¯J·Ã±®[ì×=i[ìÜ` }·ÅÎ ö}ýLy,b¼bì`î™W…ú]‚Gv¬ç³ü=e„Ë…¾>ËßSFˆ2ó80\0 Súãô§ÿ8íììlÏ4~D'ŸåÞ9ókçõ/dTè+¶.zbOŸÅèÄHÙãÙ½ô~éýÒ;<2<2<Òžwqî½ ¬ÙÖ®WÍUI{c×΀ÐwoìâàÚ¢¢?öô\ŒQŒ—ýYmæUêP‹Â]ªúž›?rgF…¾bë¢'̼ÎF ×D ÈÄ^D¼ˆxQ6¢lDÙ¼©4£‹ßÚŠ—ÑÛýèwË)OóÕÛýèwKl%µ}#£c/€ù\ô¼èyÑ3èHБ #ö¿;´Ð Äcgdιjª×Žíý3ð¨cã^±N±~±-ûû&Æ"ÆÅþf^É•ËûIÿŸù,žYþ›)Nyšïâ™å¿™"¶ÂÌ þ€áš€&‘ð áAƒi%§•œV2otx­ÒÙ’mC—ø'Vn±qsÈç5>Üw¼uÓÚƒôRm»×i)Zññ¿â•â»Ò²]Ñs1 ö&d·®¤„¤„¨åQË£–—9Wæ\™s¯öRûï· #Kt9X®ÎŠŸ'­ê½ãƒ°ì>{•%+úøî5¬Œ«³Kü[|]¼F¼^|ï«mWôYô_Œ…] ̼ìçq£Þž.åu¬2´³wÀà·gEV³ŒË½ärv“‹~Ý[´â+âÅ+Åw1ó¸`¸&`€ Ý)}§ôÒa‹Ã‡-ÎëÂDEoÙk¥¹'¹'¹Ç,Y³4({Pö ì®ùÎ%ú&ú)úÌ®f^̼Y0\0Àä^~úòÓ—ŸF[¢-Ñ–îaÝú‡eÔ‡bë¢'¢Wì€-×r]Ëu-ײøeñËâÝCÝCÝCÓÿKlWôAô‡ý`æ@rÀpMÀ€,çùýç÷Ÿß?©žTOª+ò¯È¿"«E­µZä¨ÄÚÄšÅVÄ©< -âGÅŠµ¯ý¾öûÚÚ8j㨥•^TÚï_b=bbýb[ÔÀÌ 3"àˆ‰‰‰Öÿÿ"¾Be®,fvÌì˜ÙÆã‰ñDü›š˜ydÀ`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`éGåŒÊ•3/d"'%€LL"ËÀâëQÙ£²GeÊ•-*›ñÒxi¼4^/ŒÆ3ã™ñÌxj<5žÇÆcã‘ñÈxd<0ŒûÆ}ã¾qϸgÜ3D#ѸkÜ5îwŒ;Æã¶qÛ¸mÄñF¼qÓ¸iÜ4®×ëÆ5ãšq͸j\5®WŒ+Æã’qɸdüiüiüi\0.ŒóÆyã¼qÎ8gœ3Îg³ÆãŒqÆ8mœ6N§ŒSÆ)ã¤qÒ8iœ0N'ŒcÆ1ã˜gÄqƯƯƯÆãˆqÄ8l6±F¬k4Æã€cÄ1F´mDQF”eè†nè†fh†f(†b(†lȆlX ‹a1öûýÆ>cŸ±ÏØkì5ö»ÝÆnc—±ËØeì4v;Æc‡ñƒñƒñƒñ½ñ½ñ½iD‘ÆVc«±ÕØbl1¶ßßß›ŒMÆ&ã[ã[ã[cƒ±ÁØ`¬7ÖëuÆ:c±ÖXk¬5ÖkŒ5Æjcµ±ÚXi¬4V___+ŒÆ c¹±ÜXn,3–ËŒ¥ÆRc©±ØXl,6‹ŒEÆc±À3ÂŒ0ãKãKãKcž1ϘgüÇøñcŽ1ǘc„¡F¨1˘eÌ2¾0¾0¾0f3™Æ c†1ØfL3¦S©ÆTcŠ1ŘbL6&“‰ÆDc¢1Á˜`L0ÆãŒqÆXc¬1ÖmŒ6F£ŒQÆ(c„1Âa 7†ÃaÆ0c˜1Äb 1ƒÁÆ@c 1Ð` 0ýŒ~F?£¯Ñ×èkô1ú}ŒÞFo£·ÑÓèiô4z=ŒF7£›ÑÍèjt5ºÎFg£“ÑÉèdt4:öF{£½ÑÎhg´3>6>6>6>2>2>2>4>4>4ÚmŒ6ÆÆÆF+£•ÑÊha´0ZÍæFs#Ä1BŒ¦FS£©dAF£‰ÑÄhd42 †FC#Ð4#À0êõúF=£žQÏð3ü ?£ŽQǨcø¾†¯Q˨eÔ2| ÃǨaÔ0jÕêFu£ªQÕ¨jT1ªU /ÃËð2*•ÊFE£¢QѨ`T0*åòFy£¬QÖ(k”1ÊeŒRF)£”áixžF £„QÂ(n7Šán3ŠÅŒ¢FQ£¨áf¸nFa£°QØ(d2 ŒF#¿‘ßÈoä5òyOÿþý?ú}Ž>GŸ­ÏÖgë³ôYú,ýsýsýs}¦>SŸ©O×§ëÓõiú4}šþ™þ™þ™>EŸ¢OÑ'é“ôIúD}¢>Q¯×Çëãôqú8}Œ>F£ÖGë£õ‘úH}¤>B¡Ð‡éÃôaúP}¨>T¢чèƒôAú } >P¨÷×ûëýõ~z?½Ÿþ©þ©þ©ÞGï£÷Ñ{é½ô^zO½§ÞSï®w×»ëÝônz7½‹ÞEï¢wÖ;ëõŽzG½£ÞAï wÐÛéíôvú'ú'ú'úGúGúGz[½­ÞVo£·ÑÛè­õÖzk½•ÞJo¥·Ô[ê-õæzs½¹ÞLo¦7Ó›êMõ¦z°¬ëAz¤7ÖëõFz#½‘¨êz½Þ@¯¯××ëëþº¿î¯ûé~ºŸ^W¯«×Õ}u_ÝW¯­×Ökë>ºî£×Ôkê5õêzu½º^M¯¦WÓ«èUô*º·î­{ë•õÊze½’^I¯¤WÐ+èôòzy½¼^V/«—ÕËèeô2z)½”^J÷Ô=uO½„^B/¡׋ëÅuwÝ]w׋éÅôbzQ½¨^TwÓÝt7½ˆ^D/¢Ò é…ô‚zA½ ž_ϯç×óéùô|z=žGÏ­çÖsëïêïêïêïèïèïè¹ô\z.ý-ý-ý-ý ý ý ýuýuýu=§žSÏ©çÐsè9ôlz6=›–¤%iIÚ í…öB{®=מkOµ§ÚSí‰öD{¢=Òi´‡ÚCí¡v_»¯Ý×þÖþÖþÖµD-Q»«ÝÕîjw´;Úí¶v[»­ÅkñZ¼vS»©ÝÔ®k×µëÚ5íšvM»ª]Õ®jW´+Úí²vY»¬ý©ý©ý©]Ô.jµóÚyí¼ö‡ö‡ö‡vV;«ÕÎhg´3Úií´vZ;¥ÒNi'µ“ÚIí„vB;¡ÓŽiÇ´8-N‹Ó~Õ~Õ~ÕŽhG´#Úaí°vX‹ÕbµXí vP;¨Ðh´ŸµŸµŸµh-Z‹¿ˆÓ€¦jª¦jЦhŠ&i’&iÍ¢Y´Ÿ´Ÿ´Ÿ´}Ú>mŸ¶GÛ£íÑvk»µÝÚÚÚÚNm§¶SûAûAûAÛ®m×¶k‘Z¤©mÓ¶iÛ´-Úm‹¶YÛ¬mÖ6i›´MÚFm£¶QÛ mÐ6hßhßhßhë´uÚ:-B‹Ð"´µÚZm­¶Z[­­ÖVi«´UÚ×Ú×Ú×ÚWÚWÚWÚrm¹¶\ ×µpm©¶T[ª-Ñ–hK´EÚ"m‘¶P[¨-Ô´0-L›¯Í׿kó´yÚSŸ©ÏÔ§êSõ©úX}¬>V©ÔGêõú@½¯ÞWï«÷Ô{ê=5QMTÕ5AMPï¨wÔ;ê-õ–zKWãÕxõ†zC½¡^W¯«×Õ¿Ô¿Ô¿Ô«êUõªzY½¬^V/©—ÔKêEõ¢zQ½ ^P/¨¨¨¨çÔsê9õŒzF=£þ®þ®þ®žRO©§ÔßÔßÔßÔê õ„z\=®WãÔ85N=ªUªGÔ#êõõõ5VUcÕCê!õz@= PcÔ5FV£Õh5JR£T]ÕU]œTEUTE•UY•U‹jQ-ê~u¿º_ݧîS÷©{Õ½ê^u·º[Ý­îRw©»ÔêNu§ºCÝ¡îP·«ÛÕíê÷ê÷ê÷ê6u›ºMݪnU·ª›ÕÍêfõ;õ;õ;u£ºQݨ~«~«~«~£~£~£®W׫ëÕ5BPתkÕµêjuµºZ]¥®RW©_«_«_«_©_©_©ËÕåêr5\ WÃÕ¥êRu©ºD]¢.Q©‹ÔEêBu¡ºP SÃÔ0u¾:_¯ÎSç©óÔ¹ê\u®:G£ÎQCÕP5T¥ÎRg©_¨_¨_¨3Õ™êLu†:C¡NS§©ÓÔ©êTuª:E¢NQ'«“ÕÉêDu¢:Q NP'¨ãÔqê8u¬:V«ŽVG«£ÕQê(u”:B¡ŽP‡«ÃÕáêPu¨:T¢Q‡¨ƒÔAê u :P¨öWû«ýÕ~j?µŸú©ú©ú©ÚGí£öQ{©½Ô^jOµ§ÚSí®vW»«ÝÔnj7µ‹ÚEí¢vR;©ÔŽjGµ£Ú^m¯¶WÛ©íÔvêÇêÇêÇêGêGêGê‡ê‡ê‡jµÚFý@ý@ý@m¥¶R[©-Ôj µ¹Ú\m®†¨!jˆÚTmª6UƒÔ 5Hm¢6Q›¨ÔFj#µ¡ÚPm¨6P¨ Ô5@ PýUÕ_­§ÖSë©uÕºj]µŽZG­£ÖVk«µÕZj-µ–ZS­©ÖTk¨5Ôj5µšZM­ªVU«ªÞª·ê­z©^ª—ZI­¤VR+ªÕŠjyµ¼Z^-§–SË©eÔ2jµ´ZZ-­zªžª§ZR-©–T‹«ÅÕ⪇ê¡z¨ÅÔbj1õ}õ}õ}ÕMuSÝÔ"jµˆZH-¤R ªÕ‚j~5¿š_ͧæSó©yÔ#Ÿ‘O˧åÓò)ù”|J>)Ÿ”OÊ'äò ù˜|L>&ÇÉqrœü«ü«ü«|D>"‘ˇåÃr¬+ÇÊåƒòAù€|@> ÿ,ÿ,ÿ,GËÑr´øðOL÷Å›¼,H²$Kò~y¿¼_þIþIþIÞ+ï•÷Ê{ä=òy—¼KÞ%ÿ(ÿ(ÿ(ïwÈ;ääääïåïåïåH9RŽ”·Ê[å­òy‹¼EþNþNþNÞ$o’7ÉßÊßÊßÊä òy½¼^^/GÈr„¼V^+¯•WË«åÕò*y•¼JþZþZþZþJþJþJ^./——Ëár¸./•—ÊKå%òy‰¼H^$/’Ê å…r˜&‡Éóåùò|yž’TSª)Õ”ªKÕ¥êR5©šTMª"U‘ªHÞ’·ä-U–*K•¥JR%©’TAª UÊKå¥òRY©¬TV*-•–JK¥¤RR)©¤TR*)•JH%$ÉCòÜ%wÉ]z_z_z_**•ŠJE¤"R©°TX*,” J¥üR~)¿”OÊ'å“òHy¤ê¼­÷ú£×½þ°µõ2F£Œ‘”;)wRngl}á…7Þ°µõÇ /püþ®û»îïJy=ySä {Ùõ{˜v×B¯…^ -õg©?Ký)ÆU2OÉ<%ó$^J¼”x)sEôYô_ŒEŒKŒ‘³þ€ € ÓX|hñ¡Å‡lEƒ£ FŒrJL˜;)wRî¼vsÆØ»4íÒ´KS[[ Ú´#h‡=[Ïìpf_z¼ôxéÑ¢}‹ö-Ú'QXá°Âa…3︾ôùÒçKŸä#jÒ2¤eˆ/ç. =@¦qôï£ý;ý¸+qWâ®Ø³]çÅx)owúÍé7§ßLûz\a/›;:-tšõµã™}\âêss_· dÀÀ@–ÓDKi¡>®\yq5aúG° /x¼à±=Á¤¸êѱ[¿xï⽋÷RÞ®\J.%—²gmŽ VñÓdÖøÔœSsNͱ˲UËV-[eŽŸqëkôx]>€ €€,ÇÜ×f…ʧ¼†ö‹Ú/j¿È±=oóN›wÚ¼cOÿwmi³¥Í–6ŽÚ¢c|gü4™ð'4wRî¤ÜÍÆ4ÓlLòQT_q|Åñf:ç<šýhö£ÙÖûKÜòšs >€ €€,‡8³W>|~øüðù¶Öà™Í3›g6GíG[VzEc"ÇDމ´µ•àõÁëƒ×ۿžkSZ\á§É|?¡¶lزa‹õ(V—Y]fuóý¤Õó«ž_õäì d`` Ë!Îì•?±çÄž{Òg?Š[+§6ú-–GËŽª[÷î ÜmmkÆÙggœ5ÓO“™~BŸ x2àÉ€Jý+õ¯Ô?yÿ‹{÷.îmÖ³­?›ðjîÕÜ«ùÓNO;=íÄùp`` Ë!Îô•Ï”;)wÊëYpýÁõÓÞç)µ¦ÔšRë_®3NôLôL´µõê Õª'¤}ë—=\öpYÊ#U (”fúi2ÓO¨­ka‡øñâkî³ çX £Y°9*Ÿòzœö>û7óoæßÌzý=oõ¼Õó–³¥¨½Q{£ö¦çó†]á§É?¡Ç?ÿx|…ÙfWø—ka#ƈ1÷Ï»úšúšúšõØÅõÐâÚhΊ€3Y°9*ÿõ‡_øõ‡¶Öã£ûè>zZz{³óÍÎ7;ÛZÿºÓëN¯;}¸Áá‡Øzͪš«j®ª™–>Ì/;¿ìü²Žzúofùi2ÇO¨¸ÝVü™Î3/=^z¼ôàL ¤?``À‰Ä“ #KG–Ž,-žŠÚøh㣊¤X§bŠuW1–>VúXéc"´ëñv·{¼½ðÆÂ o\:qéÄ¥ŽíUúÇKqWâ®Ä] Ÿ>?|¾]½õ:Ôë êPtBÑ E'ÚUhW¡]âÆÂÕ’ª%UKúXýXýX49hr¸ÍïsÿçþÏýÛ·“þ}IízDØ#®zLŸÊŸžxzâé‰ÎÛ››»oî¾¹{ÊkN9âêôi§O;}š–½Óaf‡™fÚZÿÌÃ3Ï<œ±?㮋Ÿ²ñÓÇO?=ðEà‹ÀÇW_qü??YÙ<³yf«;¶îغc‡çžkx.gß:[ôÁºçS‹L-2µHV8Ó “>žôñ¤­ëÐDk¢5Ñx—œ˜p°û»îﺿK„yÓ,_ö|Ùóeÿ¾˜ýbö‹ÙíïI^‡JE r'åNÊ-˜†wÞixDZ=YºuéÖ¥[uÕÔŽúÆÀo Ñ£™JýYêÏRZ_ݘ>•w^<`Ô€QFY¯­ÆÅk\L¾f[ÛuoáÞ½EZúò¸Ä-v½ÇÓÿ§Éþ5$äIÈ“'å˜ÜTý£êUu<âyÄ󈧭mÜtrÓÉMf:Ó¦Ló\ ¤'``ÀaŽþ}ôï£;#ÜBÝBÝBí Ò?N¼”x)ñRÚã(ûÝ)~§øâiÙköZ\)˜òë]-žödÚ“iO[™Q¿ŒúeÔ/É_iëf¿i‰¸D$錧ÿš#×{5÷jîÕ<íý)î]Ü»¸÷©9§æœš“ö3áÈs#ÏEd%ž«zì䱓ÇNÞÍv7ÛÝl÷Žß;~︸-ê¶Ûjl«!n,œòÚêûÕ÷«ï'â[}ë^ôß—”×lë»R®Ãð§ÃŸšòšÅ­’g‡Í›37fnÌÜ‹÷.Þ»xO<7÷Vý[õoÕ?þóñŸÿ¼µáÖ†[¶.ÖºXëbÉoÍêŒÛ¨¦¼Î}öØÇþÐHÀéYù³­Î¶:ÛÊÖ:‹„ /žÚúˆ§5[¯-ÿåü—ó_¶µ6[}|/ð½À÷R»_FĈÿ¾ÚQ”žû4µQ¥x¾ïzý§×z‰«x.{¸ìá2ñ\Û§vœÚqÊž³JÚšÄϵ­u®l´²ÑÊFæ;ÓÚ㫞_õüª'7‚Ò00&)_§˜ï^¾{ù!µñ;/ªqìÚDp›ò:­o ÚÞ&¿å¯µvëÚ­k·îÕö`jÃ6©Š›Üî²oȾ!↴Wv_Ù}e·³Ó§ò©…ýkûä‡O~øäë5íÚ´ÃÖÚ&}<éãI§ütUûûP¯C½õ:Ø|úï}õ¾zßµÊص¥ö˜ |ø"ðŵÐk¡×BÿÇJs'åNÊmÏ:Û/j¿¨ý¢Wëùä ÉA“ƒœQ“Ìx¦Mî—j¿Tû¥š­5‹'ó~ 8 00&«««¶>Ö:-tÚ+†v6"nIíŠrÈ¥äRr)[kóÑ}tÝÙgò/;vÍÖ7Ƚ÷BÞ .Ú³æ%û—ì_²ßžõˆ[^ÛZϬճVÏZýjG‚ýcü;ê憎£œñô_gì…Œ €+w¬Ü±rGñçŽ]ÅñÇWÿjýW{;êJôÌ~¦MN\ÁlkýâZdÞOG!&ÒDÄ0¶>ÖÿmÅo+~[‘–õ/Ÿº|êò©¶Öß¹]çvÛ¥vެlÝ.X+V8¬pÚëüû ßý>ÈÖV /p¼ÀqçÀÕ’ª%UKº>áú„ëÒ2 çÀ×#®G\·µæn»UìVÑ®9ãÞ¨½Q{m­GÜà×Ö÷Š«ŸÓþüWqu¯­õ„|òyÈçÀßü¾à÷_mýâ)ÎŽØÅSÀm­3x}ðúàõi©If<ÓÚ¿gÓþg þknKL ¤EÊ·&NÈ“'!OZÖ/®7öäß—ÕeV—Y]&µëtld5&rLä˜Hq…Ÿõr4ÇÑGs8 ÐvßÀÖ±ÕöÌÛ3oϼ´Âypòë’­•ÛPnC¹ ölE<[×z î-Ü[¸·°g iïƒx–­­õ|nùÜò¹ÅuöBúÀU¼ªxUñJËúÏt9ÓåLÇþ4)”J[ë™Ø{b³Ú™ÖÚ¸ãŒ[À“€g#&Ò¤DñÅK·õQ¾x&¥«õ93Æ—=\öpYúÀÉoiëú•O{}]ht¡Ñ…”Ÿâœò–n]ºuéÖ´ô!å›ý¦åé¿ÎØ é‹H2-HùF߯ÖÿŇZ|ÈÖzV _1|Åð¬v¦µ¶lÕ²UËVÙ…¸›ïª@ÚiÒðNÃ; ïØú@ßÃßÃßÃßÕ‚ÕÌïo½¿õþÖé§üÔ[W«|Zês7ÛÝlw³Ùú.qƒ\{úpzâ鉧'ÚZÏ‚Ç /xló›S¼Î»Ð®B» íröó’]aŸºÂõè©íÿð§ÃŸjk=[Úli³¥MV;ÓZÛôÙ¦Ï6}fk£åÑòh™wU í€ €€4IùvµÖö Ù7dßG³Í~4;£úœY`q¢¸¶¯ÔŸ¥þ,õgúÀúoúoúo™¥ò¶lزa‹­õˆ?"ÞÖ÷n¸ýáö‡¶¾W<ƒ9í#ý Ò•>¨dë»R~Òs³1ÍÆ4C|ñÞÅ{ï9ûhLmÿ[ÕmU·U][ë±Z-YíLkí§n?uû©›­>·yÞæy›ç¼«iGL ¤Iâ¥ÄK‰—ò¦Á¼ÆóÏklÄ1FŒ¸Ñ±³ûì ðsÿçþÏýÅs7E8ôUϯz~ÕSµ=|µ«x×\pýA[ßûŶ/¶}±ÍÕöBúÀ÷Žß;~︳ëÚþWO¨žP=ÁÖzŽxñ<â™ÕδÖ78Üàp[=ôÑ}t'iGL 8À±“ÇN;YúXéc¥åuqÅ›¸¡®c{›>ð ¯^/¼L:0éÀ¤™‡gžy8åg»:Šc«q7ñnâÝÄÌUy[ëÏw/ß½|÷lm«ªGUªÖß5°ÏÀ>û¤¶‡Û_ßþúö×S;ޡ凖ZÞÖ뵫ÚUíª«í…ô€Å²]‡Ôö¿ìe,û£³ÿ"si­/y¾äù’¶zRav…ÙfiGL 8Ìõ ×'\ŸÐµN×:]ëäËž/{¾ìŽ6C§…N &®„KK?CÞßu×ý]âJMÇŽÝ-Ô-Ô-4ý`G…mή|rƒƒ¶[)‡R¯öôÖ”Ÿ(´øÐâCGwÝq´ýqÅ«Ý×Q!ÇÓNO;=íT~Yùeå—¥üÜÙo÷x»ÇÛ'öœØsbóÂ6`{¶U¬S±NÅ:‰‹ç4Ûz¥¸ª2-}8ÔõP×C]m­M¡5…Ö¯¯­Wê¿é¿é¿¹æ^ ’?¿ÖÚÙVg[m•ÕδÖDlm¥RÿJý+õ'ÒŽ˜p9ÉW¯–T-©ÚÿˆjÆ-·`Ü‚W[Z"Ÿo~úæ§o~J9úÝ7dß}CÒçæ½ÀÉ sæ6Ì-å-Æ~ûAì¶þW.%—’K¥¥)ÌâÊcñÊ6ÏÛ8øà`[ëOþ lÞ€´ &\Ú“O<r,Qû›ÚßÔþÆþu:*òi{¾íù¶çS¾m¯+GVŽ­†«mkkí ·6´µ­¯z~Õó«žsFÌ1g„õÿþ¶ð·…¿uvlŸü†·éóô_gì`ácõcõcÕÖzöNÙ;ev¦µ¶gÞžy{æÙZ»uíÖµ[G ¤00ðж?ÜþpûÃÐiÿ¾ˆÛ;j[)_©™ü¦¾ö¬ÍQ‘O͸šq5ãl­çhŽ£9ŽæpT.Þ»xïâ=`ûÝxcà¶¶ÕûHï#½„|òyÈçÖÿûA¥*}PÉQ½Š¸q=âú«=uUÊŸödÚ“iOµ­{Çï¿wÜÕà"áE‹„ÛZÏý]÷wÝßå¨ l«±­Æ¶ÀŽÚb¹ å6”Û`ëà ‡+ì¨>\Ù}e÷•Ýö<÷ÔšcÄ1®¼€…¯?üúï?´µž%û—ì_²?«i­‰'ÛZÿÊF+­lÄ{+vÀÀÀ+ZðxÁãm}”/®­tÔ¶~þêç¯~þ*哦ì™Í3›g6[ë9vòØÉc'Ó>ö›ov¾Ù¹rÇÊ+w$N­‘çFžy.µ×Ý:öêm{ÆîìÛP;o/ â)¿¶Ö3<×ð\Ãseµ3­5Q‡”ŸÉÍ{+vÀÀÀ+:ÜàpƒÃ œIZë?£ÿŒþ3l­ˆïß!¾Ž €_z¼ôxéaÏzü›ù7óofk=s?šûÑÜÒ2êÛUnW¹]¥‰ÖDk¢Ù¦v+®Û_yûm}ûëÛ_·¿zž‰ž‰ž‰Î»¸½­ý=iѾEûí3{üjû43ÀO;=íô´“­õˆsEV;ÓÚÎt u u åé¿€£¯*wRî¤Ü)å—•_V~ÙI&˜”ÚÕ‹@%å'k ÑßEýýkNymâŠ[{Ö3µÈÔ"S‹ØZOÁ¨‚Q£^-Òø©ÛOÝ~ê–òÍÍÛ_yûݪ«þ­úöW¯Ç³Ïzý×{Üû43À)¯3ÿåü—ó_~ÅþgÚ3mr6<ØðÀæM×[ÕmU·U]`ÀQ€ €€4Yûhí£µRŽ òeÏ—=_vñïoW~»òÛ•g[mu¶ÕßQGýõdÀ“O\¼wñÞÅ{Q{£öFíµzÖêY«S~J«ÐóVÏ[=o¥66Hyc"ÇDމ¼›ín¶»ÙDß®n¼ºñêFëõœér¦Ë™.Ž8^ÀæS3óÝËw/ß=ñoõ5õ5õ51RºÜ)~§øââfÑK·.ݺtkà‹À/l­-å§ çKž/y¾¤ýW^ºNlå»Ýä"®G\¸îŒŸ”G³Í~4ÛþžˆŸgô$=àWÛ§™7ž3bΈ9#œÑÿÌx¦MN„ǶÖÿŸ^ÿéõŸ^¼ŸŽBL ¤‰ó¦;q+Ñ„< yò¤¶ÏiÙ®c×f÷¾?ðý©½•±ðÃ_?üõÃ_i©†cÇVÞ~c׌]3v=[¹tâÒ‰K'œ÷ó’±OÿuÆwÆ>ͼðo+~[ñÛ gô?3ži“[xcá…7lmåÔœSsNÍáýp``À.{¸ìá²ô $>V?V?V/%^J¼ôj½49hr£"«^/¼^x9c¤µ¿©ýMíoNn:¹éä&ñ•-m¶´ÙÒ&óÀŽ­¼ývØy`ç”×_ãb‹5.:û&´‹->´øPÊ=iÒ2¤eHf €±O3oœòš»UìV±[Ŭs¦MNŒÝz+>ºî£sógÀ±€ €ÇIö¬J¯æ^ͽš;*ŠhàÞÀ½{ò/-ÝLíÍxí „’½¸wqïâÞ¯¶þÒÇJ+}le£•V6ú—-Úñ4PW€Ry;ˆëS^ÿ¨_Fý2êgÿˆˆ+SîIè´Ði¡Óœ×ÇÖÙû4³À3ÎÎ8;ã¬õÚ’ßl9+œií9kÍ<<óðÌüyŽEL 8G²ý§ßœ~súMq=YµÜÕrWËí™è™è™X0ª`TÁ(qÃÛ2F£Œ!®yíñv·{¼½àÍo.x3y`æØЧðŠ5‡|òyÈç•úWê_©¿èˆU‚ׯ^/úc¬ŸY=¡zBõ„ÅK/Q\Œºü²òËÊ/ ¨P9 òÐòCË-¿oȾ!û†Ø³•Çã<>y`ã™Í3›g¶’yJæ)™'hGÐŽ ƒƒ>=ñôÄÓ]íÐp^åíÙ/®Pó]ï˜QûÔy{!-=¼÷BÞ ÿõD^'þi…ËŸi#ƈ±õ|tñLbÞ0Ç"&2@ú\ošö^e–õ»Z%³ZÿÁ>µÿ,7Äwˆï߬s¦àb݇O~øä‡O~àçp``à`»6ïÚ¼k³õçâñâ:~sWàÉ€'ž w>°®ÃÞ){§ìÂq800p°—/=^z¤ç3¶]x¹õ¨ýúùõóëǵ¿€ó§ØþpûÃí­?…èÜ®s»ÎíÌ=v1Fë±ï<°óÀ΀óçÈ”;)·õ§…vÚUh—Y¯‚MÈ“'!õ¨ëûÕ÷«ïǵ¿€³'R_S_S_Ë:7‚žµzÖêY«­GªÞWï«÷9g#&NgýY„{ ÷î-nW¹]åvsŒñNñ;ÅïãJ>Ò>J¥Âµ¿@ú &Nw}Âõ ×'xø{ø{ø›õ:àÏÊ}Vî³rÉÇUÜ»¸wqïo ¼1cHÀÀ X"áêêšÙ#RÑÿ¢ŠN(:!ùè¾öݰï†qí/ž€ €@º2ßó€Ç®»fìšäcØg`Ÿ}ˆ~€ôGL ÒÕƒ 6<Ø >‘¨ïW߯¾_ã£6>šãÒÄK‰—/%K›wÚ¼Óæ¢_ £0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`ÀÀL‚˜€I0 ``&AL À$€ €˜00“ &`Àÿ0¢í^~Π%&ƒ–´Ì åPº/±´Î å— ZŽdÐòk-G3h‰Ë åX-Ç3h9‘îËÉ Z~Ë åT-§3hù=ƒ–3´œÍ å\-dÐr>ƒ– ´\L÷åÏ Z.eÐr9ƒ–+´\Í å¯ Z®eÐr=ƒ–´ÜÌ %>ƒ–[´ÜN÷åN- ´ÜÍ %1ƒ–{´üAËý ZdÐò0ƒ–G´<ΠåI-O3hy–îËó Z^dÐò2ƒ–¤ŒY¢²eÐ’=ƒ–´ätÖB ¦E &aÚX`È:LÇ·ŽoßÚˆrÚA Ï$æiÄ<ØõŸFœužCœuž@œuž=|"ƒ–¬óìá¬óÔá¬ó¼á¬ó¤až1l¾§ gÔ3†³ÎÓ…y®0OæYÂ~éýÒû¥wxdxdx¤=¿Øp+ºÆ½w•ŽÃ¾˜ëP-blìbgüêù?Újcc‹>ˆþØÓs1F1^\øãô§ÿ8íììlÏYtD'ŸåÞ9ókçõ/8#îµ§[=±§Ïbtb¤ìqÈj3—qî½ ¬ÙÖ®WÍUI{c×vlÜkW»7vqpmÑÑf.ÀÌ+e¥µ(Ü¥ªoá¹ù#wfÀgn±±bë¢'̼ÎF ×”‰àøñâ;Œ0úÜÌyzùÏ«´ñyú–u‹ªD ›Q¿€þK[%bxì\Ñ7ÑÏ”Ç"Æ+ÆÎá kÚüÛæß6ÿfÏ4þËÈ€S^#ïÖîÚhWF…¾¶ZÑ+ÑC{Æ"FÍÞsÏ\jï«ÒÆípì‡ëûuOÚ;7Ø'B_[í¶Ø¹Á>¢o¢ŸÌ\€™—P¡~—à‘ëù,OáBŸ¹DDÄÆŠ^‰2ó80\S¦ €ã~û=îw{~i«nLl¶"·«ýê™r+úlÏèD8ˆdÏÿ~þ÷ó¿ÇøŽñã›ò¹qøSŸòeÞ éÖhŸ«…¾6ÃàÞaö‰ž§<:QQ Ž 0ÓÌE)·"·ïŠ{íhEŸ™¹@Öœy•ÚÓü\ç+õê,wS¦f–ÏÜDoEÏ™y…®)“ÀÒ*i•´*å_ÑÊ6oû¤o'ÿë«ÿÜ-sE¿É[Ñ1–”Ç+j¡ À¬x4âшV~­üZù¥|>üåX»Ÿüîf–Ð׿“ƒµûÉïnÊ#Õ•á€Ì;sù¬cßNž=Éós·&»2Wô›¼ýcaæYaæå³lfµoædÞÏÜþyrð²™Õ¾™ÃÌ vÀpM™&Þ•cWŽ]9Rþµ¬ÆüÉVgö_@­[1®”Ç.êà ÀLöxØãa¿©~Sý¦Ú:ûõi[uxé÷•ì[¬IPf~“·bDbt¶Æ.*#ªÄÑ™kæb4^\çËÌúÚjŸ˜¹€ùf^%CWýð…ÿœ• ¢Î˜é371"1:f^€WC ×” à”ÿv>߯B Ï®›oa›Ýªù¢ßä­£/SÀÜž}ZôiÑ{ìi°ÇÖoùŒFª\Iº: {p ™¢ßÿj¯è(Fj«¢J¢b9àÊ3· ÏÎwçj±Ýj`MóE¿É[1F1^f.Ùg^•>êuzâ±€º c÷˜ö“·º c÷ˆ‘2ó¤0\“KÀ)?1«È˜òÝ«”¨·mÅ\­«¹£ßÿzZɶsµ®bìgµ«~S¾ØÖM¡E E=9и¾è>Ñ}¢ûØš`oª²§Æð¬ý&oE5lÕJT’# 2væ"n€œÕ®úMùj`[7…fæ®3óòî0¸ëì¢|æ&ZQ f^€”Ã5¹\iëW«¬ð¬ßW{6°­Š‰zr pe‰Z¢–¨Ù:Íhï·ºâ%B_ëVTÆVÝDU9º £f.YáY¿¯öl`f.àš3¯ry>ùtÀD>g³nEe˜yl!v”Ý‘»#wÿ3ËžµiÖ¦Y›BBB¨Ì«q¡ø¢çEÏ‹ž¶~ª1ò•ÁüÒi«õ±U=Q[w®iàùçž·>wù*¹÷ýÊ/:÷´¸×º•U²®ž¨*G¤ÿÌÅh¼2¸Î—Ľ¶ZQf.à:3/·­•kÖÌSß²ö̓?ñ ›u+*#ªÄÌ `8í^´}ÑöE[[óDÂàWãð­¤[I·‚Ž :b½kË6oû¤o'~Ý´§µ²®¡¨­¨3=×ñkø¯á¿†Ûzk¿V­‡Wà‚Þ”[Q%[5æH€ô™¹|Ö±o§ ψxíiE­˜¹€+̼êŽ_´do/>Uûwà¿hÉÞ^̼Ö€Ó.ùµ¿)# ¶ŸKÀQË£–G-·µ;ý¿_¹7z,¿hÚÓŠZÙª¤¨3=—P5©jRUï±Þc½ÿ嬵qPÈ wíoEÅþå ^c½ÇzÕæ gÏ\]‹Ûd$á®=­¨3ÈØ™—wAWfMáó´T<¸Æ +³¦0ó$Gœv"Ðán^»§,£`÷$÷$÷2çÊœ+sÎzçU7&6[‘›_.SÛŠºY×SÔYÔœC@ÆÒöh{´=ÿòÜ©ÝnS UyYªÿž 3ĺö·¢b¢zÖUÕæ¨çÍ\”r+rû®!ÖMm+êÆÌÒæUp°Çσõ/­v¨Ÿ¤¥âvЗÖN;ÔNT™@ v,Â`GÉà8fiÌÒ˜¥Ö»ªÈôòŸWiP=b|l8¿\¦º­1>6\Ôк¶¢æú2L\R\Rœ÷[Þoy¿e}Ž:4ý“Ïüªè¾Z+ª÷/þ–÷[Þo‰Ês€cg.µ÷Uiãv8ÉìK ›êÖì+jÈÌÒsæUóÞtïˆD>C{µVT™@ vÂà´Èà8({Pö ìÖ»Ççýé[Ö-æÊ´´¢†ÿòT­ìAÙƒ²sâQNzô:éõ/gþÖanI7ô nH”ûŠíÍ=ƒŠJZWXTž#;s‰ýpÝb¿îD¹iiE ™¹@úÌ¼Š¼]î=¯Á~Kb÷óéÙ+¶~Kb÷‹J2ó§ÂàÔʰøZ®k¹®å²ÞÜŠ®qïP*¢YlG~¡LS[*¢YlGQOë:‹úsÊþptÀQëó’îÕ¶wqÓÞŠJZWXTž#5s)çÞ»À𤡱ƒË⦩Û1¸¬¨'3pöÌ«F‡É%¾ÄçfioE%™y€Óa°=2,^¿,~Y¼õ¨ÒqØs½ø%ÒQ­¨§uEý9MHOÖ=Z÷h­7àçCû O|›öVTÒVÅ^àh€´Ï\¶õŸëUsUF…¦g[}_¨þ³äýÉì1°¨'3pöÌ«þü5ãfç3<xþšq³3óg,Â`[2"¾›t7é®{¨{¨{¨uÑëE®˜¯õâ—HGµ¢žÖuõû‚€ô]7ºnt]ë3Rèlÿ[•CnÛŠªZW[ìŽFHûÌåÞv­Wã&®göXÔ“™ 8oæU>°c¹¡òY™c[QUf^•»Âàä2 Ž?*~”u‰‹móÙÖ „_ÑŠÚZ×\ì N Òǰ!Æ b}.:û}çËù‰lÛŠªZW[ìŽFHËÌ¥å€!;36.5_,ZQ[f.àŒ™—où+¾ç¢ ·¢ªÌ¼ +#vM„Áïk¿¯ý¾öÿróç±Ã.ÏÝÀ/ŽN¹ôØa—çn°®¹Øœ8]£¤FIl½­¾˜Ð|ÐD¶ŽmEUmÕ\ìLxµ™KdιjªÀÎhEm™¹€3f^õõµEãS2ßZ_[ôà1f^•»¾¬g@˜æ¿ rÞö‹*ýP²N‹o¹S$<ÿù|F¥þE/~­‰Vúûbà 7èêeÜ)ÞKkäïʰ¨°uåÅáÈ€W›¹<ßsÐ/(Ô5à£9¾mPoh—¦-vx†”1J6*( /t?ŸQ3Îëm·2Sj}:¶Â¾;Å¥#ü]3µeæŽyy×”0k®Ë}ZõçÚ)‡ÚzmØèó^Å6ú¬hP¥Àô÷o/ßÌ‚…î‹OÞJl™­kWß¹óflŸïÊŸ¼‰ 3󀬉8ó2wœ®ð³CÏ=;d]¬"ÝËóŽq¡_@+¬ö‰éQl‚Ï›#ìßåec?^п¿+ÿ2*êlÝs±_øQà<C#†F µ>ÿœˆíø‘ÿLWJµ«m›Õ (î]èÃySért·¿\uÍXTغÏbpd@jg.µßñŽqÛà A©­¸Ð®‚“òµÿ3—K&¼rÓæÍþ»\3uf掚yÕº={Ðw/]çªz»V¬×&§ö“7ocÈ÷¡¿¸ægn¢Â̼ k"6ó…Áé'4NhœÐغ@¥ZÌïrÐu~i+ØöLßš¢où>)˜§¯wkL˜<ëëÄZ_ÎòÛ4¦jÂèÐ…ëÜ_«%þßMáò®Ë{Ø'dF½õ­\ó—QQgëú‹ýÂ7ç8:qt¢õùçÎÛ½ö5òÍØˆôÁ†Oç7N¨8¾è¬B¿ˆ^•Ûà6¡P¥…7z÷þî£íuÝNìéØÂªzÿÄ:oM{âç^q±¸&ø¿o¹éа¨°uåÅáÈ€ÔÎ\F–èr°\W€…ÉA}~ª0sëeïÕÖ~økþvŸˆan•“/{ÞÃyƒ“¿ò¥Ç¡¶A¿»Z,êÌÌ5óò;¸Ì"É®ó •Çñz#CrþÓ¹ƒù;ÈQvØGƒû&Tï5¡hø¬šñÓ‹Dœ¨èß}ÀØO |_lRñÿú,Ë·ËÜ»ßǹÚgn¢Â̼ k"6ág¦ƒÓ5¾°ãÂŽ ;¬‹Riaï•“ŽºÐ•²SʯÒ@ô­rt¿~Óv&ïmòWНîWæŠ'l½ÆuZQgëú‹ýÂ4çiÔ2¨eõùçiõ~MflD*bÝþèç^^#ï”Ó;í¨ßÁV¸û/7¥4Êwù-}ê\ 2Š?wyÿ³¢š–åh7vdîÏç¼Ó{KÆâèÀ¡Â¶4€Š²~ÞÂ+²"oøû#·tû~Y^»fÚÜ·ºžú4y©n›¨]êl{¨(9Ùùó _ŒÂ¹©z›[´o;øÛó%®ýý_îÜ&ï/딵ûÁ_<|·üÙ{^ع3oÙùó _´¥ɬZ¾jùªå± €7ïÛ¼oó¾ÄiwúÕ´.‹"t÷Ž3:ÜWïߤ.L;©á¨’ã¬Û´ñ¿4_Öäµ5†um7d\£»ÿÜíÆÙ—¼Ð£ªÀ¡Î~Ì€èˆæÇ&ž2frŸ§Ö×>¯GÖÏû^î³òî¨ß}lë–Ãîi{bã §Z÷™Ú7W­ÙÒ*Êæ/íì¶2š𮂕+{}\–׾߸ßæ,9Ôo±¨À¡Î¶7€Š‰I^±¤hÛü’£êÖoÖöwVÝ -J¿R ¤ýËö/Û¿ÌÀ:hk6qp‹KW'ïÔ šÞ’lµ5”‘qÆ¢pW”]t®ÞÑäÂߟyÜ[í:õ¾Ô]µÕ\‘lÌw6º<­ùåŸfþ¤éìCÌÈÀ±å+€÷{å‰~ÛÊòÚ¯¦´í7òP¿Å\ OQ¸¸Ûk?½kå?ýqOÂÅ5 vÇ$v0Pª˜_\UîœçÔÌ?¹ðä3Ž»÷Þ_ôj½ð²o~ÿÔ—rŸó|­ êœ\7«ä\ÚþË•§NÛTµî>ÞÃÃÃãè=šïm¾·ùÞÄýOtî\?/õýZ›Ã¨:œtÊþúïyõÌÖmº®|zðKgL}¯ýÈsÆ~}ÎÕOåv ¯úÃàëÿù´û?NW{‡5bËôðððHöÈOÍOÍOMÜFùÀe¿øÃ¿®¸³WŸðªÚÿQû¸šŸD-Nv`[¦‡‡‡Ç‘u^Q¸pÅ‹n/h[rTÝ/ž“µú“˜ÀIî¬óòððð¨ÄýÞ÷ò¾—÷=•‰ßcõ­«o]}ë¸ãÆ7G¿áù1¿ðÏðüÏ'N¾ÍCcM}½*~œKö ?±î‚¦«¾;â£ð•ðÁÑ!0ŽÚÈCW]ƒråÊMÜÿìïxuï~{+7"4 å´FÏ„ñŒ~/óã¦]•ûvé±î;#G\Ù³ úp¨pâ8ñenç²ð•©¯·Ï¨ê÷~éÜù?ìºñöÔ:­þÀ¨À¡Î:€Šê¼z6~4}ëYQ;«Öù»·÷x´eY^Õõç,}öƒÖãG}}s“Ö[/?í–G¢væ-TXçP=%ûÓU•‰‡ÜÞÿËûyÿ/Ëú†çûз¤cïé»§ïž¾‰…hºçœY#·Eç ­á˜dßà÷™»²v–å€òÌé kmØpˆ¿¯ŒXêì4 pìMþbò“¿HÜÿ|öƒÑkûdUnDš~NGSƳý’ nÈ>½,¯zéÜsßüÇ©ó(À¡Â‰ã kÄ– p¸Ë§ÜÖ²[4àÑï y»iAY^{ÑœßiÜ-¼jøä³oküdÔàPg @Eu^ÙÛæ¯{ùߣ7ym@a]ËtFë?Ϲ~d~xUÚÜ6uz:jçÜB…u^Õ“8†çªlè[Ò1 €¿Þþõö¯·'¥þ¨V§dlÎA[ƒ©ë»+{”Û~Ïä=þíÀãëßÖàñhÀ¡ÎN£Ç^þõù×ç_Ÿ¸ÿùmáðó{ÜS¹i» çÖ›ÆóìY³;_\úó?Z5ªwïôp'àèÀ¡Â‰ã kÄ– p¸K×3¶¦=Í8uWjnÍ/wÌ»?+3Ù«ž=ëÿåv¾¸ä« žz´e÷´èD¿aê¬s¨¨Î댿LÿÔÁ(œ›Êè6þ¿ïÏûvXÛR‡×>®Ó›Óž^|M²çgeμô¹º©'Õ–Ö:¼¨Ùo~|öeçFíÌ[¨°Î  zÇC¿0j‡¡¡¶‰5ëÂ6p´½z«'¼zBâ^hé´“;ý¨r#Ò«êð‹fo~ûè_Ô[S§á/þèÚŽKÿôÛKÒë¹?_syÊYí ž:ÿWÝÓîÜ—ÞznÚŒÚYµö'û•µ8T8qœaØ2ެsùfõ¶ìÜQ €[>Ù䥺m¿§qå”Ó×®ë=[×ÿ^ñ럶>㤠ioñ@É缪çÊF9Q»ö7ÔVçP±WÆã÷Ü?3g¨V,)Ú6?q„-Ÿðêg;v¹eúüm]n¾{Ç?hóܘý·]'»QÇÆßžX¯=´á…†DóÎÁ¡Â:/€êI\uÅ/ô-©àIK'-´4±dÝk>4hÕº(´õØ·øñWžHÛØöæÎW•}•‡ë†{¤>²uÓ—Q; µMsX~È£í/Ÿý峿|–¸ºäõŒï6ɯ܈ôÓž£xÖkmÆ6ø°Þw˾Ï{üˆ{ÎnöFýkëL/ùõs.jÙ¬ÑMÑ €C…ÇÖˆ-àÈ:—ë¬Z×»cÔà-k_Óí ¯Ikzué¿ÅÚ7:}Dý:» V®ìõqÔàP[ @Åv^§߫ǠÿŒÎyª’æ\–þ+uaÚI Gu˜:¥×Ü·¢ù©{¡Â:/€êI\µÄ;ô-©àµ­½híE‰åËœ2a×Ì'£v0Úæ½+~2íÿ4ü¬Ó=êiüh‹kj]PçäºYõ®n~bëߦ¿Üí{}füõú³x äß0Fí04Ô6±æa]øŽº>Å}Šû$ûõyà_ÇÞ’ûBå¥a$w}’}Sëm9m›œÙpj¸7pXöù é7§ÌÌ›Õç¾ÌeÚ™ûó’ãáñ)×é—ºøš+:®hþ¯Qˆ~CU“^©Ü§¸Oq&À‘u.Ë¿3óÉ΢‡¯‡_öõ¹—5Ö|sã>u^®÷‹ºYµ첩Ý+i#îyõšÅmºþm˦î}ïŽZô–¡¶:€£ÑyõÜôXƒmoDîÌÛ]cÆNýIÃ1É>>uoƒN§ü>Ü^-\hÑlâà—þ®ûÇs?{±qÔζ}{Mó¦Çl{CçP €£¯ú„¾%UB\4©hRѤÄRž²¬Ë²^¢y0Wz¬Íзä2Ô6±æa]øáŽ ×M¸nÂu‰û¢?<7bWNjBÓÒ?Æ9ÙÿFóßCU«Ö‚­ <Ë q½4Z…¸4Yˆ{¸_Î2ÔVçp4:¯¬³f.|n´3o» UÕyTgàhªž¡oI•^üyñçé3Òg¤âÞNg._8kãè(‡©Ukê™XçPÿ°.ì€c£ {A÷‚î‰{¤Ó{|Úv@ÔÔª¾ UM¬vX ¶F€òw.ýÕÆÑ}ûE9L­ZËPO ÀÑë¼ZõÞòúóœ+«Øe¨ªÎ  :G‡Ð·¤”ÊzãùEó‹æ⃠‡O¸of;‡öáÏÃ'Ü7³]bCýí€cé«Ç¿zü«Ç“ý¢ýæú±usoÜ–*™¬Îa-ØÊß¹,;³]çłۊZ†zê\ŽvçÕsÖ’›·ÕpƬ>üyÖ’›·ÕÐy ®\Bßd*-Þ}ÂîvŸXôÚi –¤Éišváp‡’åZ6Í?»px¨gbCýí€coÜëã^÷zâ~iS»¡cºýX|[þe¨db…CåmÕ¹œ¶3}Lí%Å×ïßB|[®åõ…Ãû·õÔ¹íΫӰÛNûÙxçÍÊ¿ •Ôy >ö„¾e‘R¹oŸ[#·Fî!þV®Kûžy|®CÉò,C kjnT–7Û½ÙîÍC|2A—sÍNë]üɸËûŸ%Ä=Âå'ã.ïV¨db…CåmÛ¹ž÷øÜìQBÜò,C u.Ǧóªÿƒ–?lwmNvþ¼Â—œ=;Âevþ¼Â—B%u^€ ¡ïáªäxëÃ[Þúð!Fïjuo朎ù·æ9¬<ìeÇü[ óB kjngTšÅ;‹wf|?ãûßOÜGm¿ë‚Û³;ˆrlª—XÕPíPy @Åv.]×fI{µx]a^ÿ,Qîa/׿õÏ 5Ô¹ËΫó_ïÊÈÿÂ9´#[†êé¼ÀGз<*9.N/N/Noþnów›¿›¸’:n¾õì…'9¬<Üe¨[b=CCÍí8€ÊµqõÆÕW'î©Z®J»£næÁ¦cWç¾#Ð-û2T,T/±ª¡Ú¶:€£×¹¬o¹ð¤¬%ÝÃ]†ºé\Ž}çUçÚF;šlëù§ÇîÜ~¡3i‡qßß?=vçö Cõt^àŠ%ô­()QÄ–[lYlµõxnÑš‚)1˲ µJVÉPg= í‹Û·Ï˜’1%ã{­¥ã\ש¯X·ìËP±Cüú”Œ)SBµmtG»sùjwÁ”~7Šu˲ µÒ¹Tnç•ÑiüG÷Os>­ìËP1% €ËOè{4D".þ´øÓâOswäîÈÝ‘¸ [ ºïª‹b–ejuˆ»gíÈÝ‘»#ÔÙFDÇky¯å½–—ìWøî—µëýŒp·ôe¨R²† ÛÒŽMçrûð«.>ýkánY–¡V:€(t^Ýo™3oÍhgÕJ_†*é¼H$.¿UËW-_µ\è[±R¢3”›|ØäÃ&ÉVj§Y·ýzQ‡›É–¡>ɪjks¢éš÷¯yÿš÷ñ Û¯iØöÀˆ±×å.ô&.CeB•«ªjë8öËæ¾‹úw{PÄ›lê£sˆNç•ölÛÎOî¹î±ã·½è Û!>öyÝcÇo{1TIç@"pùz`è¡Bߊ•µå-Ï[ž—4çï^ë¡!«68ôü§¿@¬õÐU’U,ÔÓ†DÙ¿ØøÅÆdû±»/Ê~´õŸÄ½‰ËP™du UµuTVçòñ)«6ôî,î-¹ 5ѹD³ójyòWŽ»Õy¶Äe¨ŒÎ €dÀ¥äuÀBßò‹\|0ã`ÆÁŒœÉ9“s&'þØÔZZ·N½ég.[8sã%@CBMkjêiC¢¯àŠ‚+ ®HÖTÿ²ó€Õnú†e¨F²Z…JÚ¢*·sIû¿õ¦×úì¯Oo¼¤o_Ño¨C¨‰Î ÊWưk/™ÞÀ9·oïø;ìÚK¦7ÐyP:0Ñ”Ía +V4,ÙVý›ZÊ<­ÇøŸýqËåÕó4Ì=Ô!Y•B mâ@Õ2»ÑìF³%Û³­¼rpþã«sô*¬>¡z¶"€èt.]§fž–öï{ïÛry¿¦Õ3ú suйT•ΫýŸ&zèºêý† è¼( 0Ñ”åÁí|{çÛ;ß.=®nW‡ù–ý†ºÙ¸*)§8§8gÔ£õ@²½Ü¿õT¯ËÔêý†Y'«I¨X¨ž jKˆ?«ÛÕÀa¾¥G¿:€(w^íëMüìÌjýÖ›ø‡Y™:/ÊNL4¥Dˆ//~yñË‹“x…@®÷sLöÏA¨•ͨêö7Øß`ƒ^«{­îµ:ÙoÁÝ}>Èü¨øãq£ú÷Žmôûñ¸Qý{‡™&«C¨R¨˜- ÊKøäêpoà0Çdø¬s¨ZW›óG¿uë9Ýó*\Û3oÝó*\fªóàp €‰¦”ª2ЕǭÓPP[@Õí\n~Õŧ½ïäW.í·²ê†¾aüa.:€êÐyu™O‡'¨êÑo˜…Î €òM)UqÐ¥ßa«¤Ž›o={áIUë4Œ¹,³sÇ, úøæoßü훿ݔuSÖMY¥ïoØß¥U‹½Ÿ3»ÏÚªú†Ñ†‘—>»PP [@œ:—õ-ž”µ¤jE¿aÌ:€êÙy5]=ðÝÙmAÚú;ªÊ9·0Ú0rEL4¥TÝ¡ +V4,grÎäœÉ¥´Õ¿«Õ½™Cº4¼ë™ÇçædæßP83B ™ù7Î c ã,}.a¾aî6_ zzúwOÿîéß•åtóƒËs~ßîÆÏ»Ž™ÑgeäBß®cfôYFX–¹„Y[ûñî\º®Í’öjáyÏÍU¼¬pfÿ. }—Îìß%Œ-ŒSç ó Nï9²ÿÃÏì²à‡ë'F.ôí²à‡ë'†ê¼8ÀDSJUŸÀÁŒƒ3ò–ç-Ï[^–øÚi –¤É>á¾™ír:äO)œ[  ò§Î cã)ËÈÃÃ|m¸ï½õÞ[uÑ?£Fÿ²ìE'^Ü圖'¾óÚˆŸöü ²Bßðîa$es˜]˜©5PÝ:—Óv¦©½dÙØ™í:/.^S8·×J}×Îíß5Œ!ŒGç óú_® Þ~N½‘í³êÍL]¾¢²Bßðîa$:/Ž60Ñ”§É|ØäÃ&6ÉÝ‘»#wGÍ2;eY—e½dN™°kæ“Ýóæì]óÇŠ=è ß3|ÿð^e[˜K˜— Ñüùòó[ä·ÈoQó0Ý=2û±Ö»~³é²?=*wóÝtá ÙŸ†w9ܱ……ÙYËñsdË q½4Z±ü;3Ÿì¼a÷kþØûõŠ{Ã÷ ß?¼—΀òw^-k^0vÜí]æÞÓê‰iGån¾sïiõÄ´ð.:/Ž=0Ñ”Ã9í)ÞS¼gË‚- ¶,hþnów›¿[óˆÔÕꔌ­M÷œ3kä¶6Y4õõöo¼}vŽoÝú“…WtúÕ´.‹v†‡¯‡ç„ç‡×Ùû†1‡ñ‡¹ØLÊ´ûÿrÏ—{¾¼³ñïl\³†}·Í1¯ÇmÏYúô€{;·ö?ÎýQ×ñ›šÕmPX†¯„ÿ Ï ¯*Ïû†‘‡YX›ÕãWWÅt.]OÌØšöä§ÜÖ²ÛÂW¦¾Þ>ãùÏ®ÑeÍúy ¯ÈZ³ùËE;»­ ÿ_Ï Ï¯Õ¹pì;¯F>sõ€‘­ú ϼ~DFε?¸y‡u7Ÿ4oW§ okð³1a¾þ7<3¼Jç@t€‰¦”˜Ï/½8½8}ëÃ[Þúpnܹ5jFR[g³M <>köY³ÏšÍž;{îì¹5#,Œ0ŒÖZ¨Öt.è¼t^TA`¢)¥ºMx÷ »OØ}Âü¢ùEó‹Òg¤ÏHŸqì:Ãû†1„ñØŽžƒW¼òà•ë Ö¬5{ÔìQ³+ë¤Cx÷0’0*k :/U—˜hJQ‚¢IE“Š&­½híEk/š´tÒÒIK›Íi6§Ùœòn†ï¾gøþá½Ô r}ó÷oþþÍßßÜðæ†77,L]˜º0uðœÁsÏ©¨Ó á»…ïÞ%¼£Ê s@ç¥ó8ÚÀ‡mëô­Ó·Nß¼oó¾Íû¿Õ ÞŠ¶m-ÚZ°éÿ?ÂWT è¼¢F `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB `€˜Ä„ &À1!ˆ 0@L€bB ÿ`"WÓS'òÿ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/subscribeOn.png000066400000000000000000001133741431412030200256600ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìýutWÿÿCJ/\ ‚[€Oq ÁŠ;ÅÝ¡¸K @ƒ§”B‹[q‚žñ¤¸-ŠC‚áÜìÏwýÎuŸN®;çLžYk Èœ={Þ™™ìWfv ;ÀRÐ` À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`Àü<8ðà@¨þÿ-âoè€ä&zIô’è%®þsõŸ«C.‡\¹|Úë´×i/z€û $;oŸ¿}þöùYõ¬zV]œqqÆÅÍk4¯Ñ¼ô DlMlY|ŠøDzÀ=]Ÿ{}îõ¹ë_®¹þe—R]Ju)•¾`ú‚é Æÿΰ⩊§*ž ذ!`ÃÁSLñlݳuÏÖÑç0ÀâÞõx×ã]P[¨-ÔÖ)°S`§Àô.">]´D´Š£ô.ä¹çBžqÛÇm·ÝUw†Õ&W›\mò–«[®n¹úlܳqÏÆq\<‘ó^ȇ!†|HÏÀµ€ô8ÿãüóΜ8?½-­å¨$†×Í^7{ÝlÓÁM7Ìq6ÇÙgÝóΰÿšþkú¯ ä¨x `¸'`€EW´\ìG >ÞtxÓáM‡U+V­Xµ">whuÏ~½#׆ m{¶+òfùÕ)¿ü`×¥ysË)Z¹_6TÌj|þkΊ“mûƒŠUÈ´)ã÷Ê̘Ûfx¿mšÎß2ÿÀ<2ŽÛç¶œÕrVËYa;Ãv†íäh¸3`¸'`€‹^½}üüv-¶,>å}Û&öHìG öBö‡ìÙÿ¾w_½µl^ ½|ñçÓ~z55ôií…vû‘#~~ µ¾hÛ¼²Ê¥ÅûÇ(U¼xº‚¥³‹}ÛFÖYdýgÙŸe–ã àn€áž€)ìBØ…° >~>~>~±8Ò®lƒBi.žh?§ÊÕĈ{c³Ÿ.Z›6‹½{Ê0ó,ý³ôÏÒ÷ÊÙ+g¯œ±¹Ëj0´ê´ÜcC›.½^飄 zc¿ŽxªÍ¯Õ|n¿á~>õc+)” #9n„î‰fù ç6œ‹ÍÙìÍUÏ—ú´|·é5ƒ]úš­E«D c³/b¯9úŽNÎ?9ÿäüØÜMõ¨ÑlOþ&×FìðªVÈU¡¯Ù:jΙu>ßbŸ]¦l™ØìËï1Þc¼ß 3üÍpjÀµ€áž€àí³·ÏÞ>^ax…ábU¶pÁ—Oý»ÖÜën¡¯iìß-°æ^Ñò˜÷Nô€è ª$gëK¯/½¾tÌ÷NU³–Íôň‹‡7o®rÅÝB_³õ»­‡CëD-¹>~x©µ1ï]¹ˆrå"…> }J=¸ 0Ü0À­E‰9¤‘o#ßF¾1û«Õ>ß§žúšÎüW«}¾OcÞSÑ¢g¨ŒDÛ£íѳªÌª2«Êÿx{Êîʤô”Ð×lýÏ{Œêü÷Uî™+,æý½Þæz›ëm(€¤G ÷D pS/;¿ìü²³ïD߉¾͆ºº7+58ÿ‘y{æ¬]ÇÓ£_ǵØ#±wfû.zFôÕ,î–ý–ýÖÄ'~<ñc³»£=ó¼Î¼î†ÿΙÕ==úu^/®;¶© 1ÇÀa}Âú„õ¡X’0Ü0ÀíDåˆÊ•£Úîj»«í6ÞúyJÍ«%oÙo÷éäWÝJÑï­o÷éäW]ì©Y?ˆ^=Få« 8p>à¼ÙQÇCÖyÿýªè•Ús¬ý:®CÇ-û°RÚ˜cà[©n¥º•ŠšHÀpOÀwRÕ^Õ^µÓŒN3:Í0ÒÚV½aÖ²c-úš¬Å^›õ‰è1Ñ{°’åM—7]ÞÔì.hlH÷–Ez¾»8ÂïSkG¿Žë 6å¬Ò7æ8³øÌâT@â!†{"¸X¸®…kfƒVSZû.+zƒÐ×y-zÆô¥Z¸®Q]ÀÃlµoµom0³ÁÌ3ïpÊ)>³²/xã0grD¿ŽkÛ‘ ò²™ÝžÈz"뉬@b N(»6ïÚ¼k³èÀuëÖ=ñâÿÄŸž‰`€‹õ½Ò÷Jß+ηJ•çÝóEñèö½ÔÙDÜë¼=#zɹ÷D¯R]À³l­»µîÖºfA潿ö ©Q‹¸×l=cË JÅgšõ^T¿¨~Qý¨1€„EÑÍ¢›E73»% Ž`€Ëœ:t"ÈìÒþOéÎ%ªo$èy-zÉôi A'‚¨4àþ"žF'ìzB®žÅ‹‚»wîî|ß2~E#Eþ"¾ÿúÑ`ɯf³á°wEß}W”:ˆà¤GÀ€$¹"rEä ³ ðÛ½³ÔE|ÿµèI³~Gjî êøªã«Žw¾c¹~m§oµQ® M/5Ú’¥ÊÇöxz ÜéãFç½ÿqîç3'Ïœ<Ã/Ä °k›!$‘ÐJ¡•B+9_n§O«ü°¸?Ám®E¯:÷¶8 T#p­§Ÿv~ÚÙù^¥ø7dmäÚ¸Ô9öôøð••|ë8ïÑ„±ÆNK5İû vD H"ƒ 0h€ó%öÒ–ö7«f$²MصèUçÞGj®µÔþQûÿå%ËOÉ^úp®£ÆWçS³/{g{g{gj n€Ýa00 ñÕ´×´×4»¬Fî=ªÎN"Û„]‹^5æ«i¯i¯IaW鷡߆~œïRnž–ªÝ%NŒu‡Â {×pÞ¯û?ÞÿñþÔ$@Ü»¿äÝ£Ç?zì|ýö¤ÏGÞË ko-zعçÅ¡2€ ±±1ýÕ@ûaß:'ÆzËÖY/Êz;ï—RA© T 0â†Ø³$Ÿ0˜莦>šúhjç çÚñþþªë>qéÝÑ×V1-°òœâé[Ï+¶-oů®åþ4ÛãlA¯d0ŠõÎq-ëGµµü[r¾ ÌZíÛÆc¯®ZÍÊî‹vîyqD¨LôžOy>åùçû“¦¿ÔjíuÕ‚R³øäkª}=°CÝÛ½ý ykf–²eyžÁ(sªÄgÙ Œ/×cD‘½½¤ã5+»g|mÚŽÕŠýË`V·€nݨL€¸!ö\Öƒ €‰nùÀå—t¾Xž9Ò¶yå©î”j·›Õ«XÕË'KÓLÕÓ¿§›¡ïT»íž°èá™]oàòËR™ é…µkÖÂùþdAÊ‘ }®¹sœ%8óØ ­c¾3,¸3¯=óó³ë6l¨ìn𫾡—k:·Ù?›6ÿlT&@Ü[ƒõÂ``@¢>,|X¸óòñg]÷Ö¬àÚˆôÅê?ÕzRtTŽ€,ÇD« ­Î>:K±¹÷ª÷õ麾ùÖJÙÏìnÛ òDõyÓ'SMz훫è|ñLð¿Ð`ÑÃÎ=/Ž• ’žúX}¬þËä ò±ŸV˜éΰ0®N÷}E¦îo¼è?åµmw~ÚZvù ìíúœ‘!eú£éýÿç»Ü‡›ÕùÛbàsG6úU1Û/* n€­Ça00 Ñ5¬Ó°NÃ:ÎŨ/{U¯ýÒµ©ˆuE{2D¤7Ò¿0¦Ýö*mÌÂ]ç½ÈÿW¶þ™§¹g,zعÍâˆP™ é­ºµêÖª[Î÷'NnÊW¥¿{Àof¬“~‡ôeP@…’âÿ8Î ,þüGë”içþ3WÉTÆÿ‹ÊÀ …ØÚ<7 &$ºâŠ?*þÈùBøîxïH¿”®HŽm!UÚ?äAÙÉ…JLŸTù^q¿Ø<Ñë»çsÀ¢‡Û)Ž• ’Þì³WÌ^á|òÏÈ=‹«ïwϸkX“¿ó…Æ&Ðuüªú=«ç®ênp§æßdö~M P€“Ï ƒS¸Ï· ¹±ßïÓů†»…¦1G¹Ñ%zw¨³rÞÅê!>KÝ?=L¥÷÷x—\§fG÷ €Õ翌ª˜*6_»güü å½ÄWZí½?K1w{xè÷ßf/Ô˜z’Үͻ6ïÚL HÜóµÉOStVs½’©iå K~ÿ¤Î¥ƒ&f«Ô»h¡6S‹§É;(W–™FzÖQiÀý=}¥¦®yÝ=à›¡ÁÁÕnÇæk¯äÝV¿êoÿv—è.ð¨—]ó6¨7 )EmŠÚµ‰,¸ÏÀǽ[ÿúƒ&i ßôú!ãÍ ¹Óï0ks™S¹»d/ÐåaÉYùÿex NÜù à×}þ\UûPl¾6rZhñÚþí.‘'€€ä+=,ÞÎÂÂÂÂ’–/ ¼,ðÒù²ç>sg Êx%Ãÿ= Q:mΨlõ§ýºh±òÁí/76¬T‡¡U{¿iÐk}òâ«.5j¯ü÷°àÿÚóŒ9€Å¡2YXXXXXX’~Xe`•UœïOÜyàØ?|-bǤj5ÅWe:éƒô÷Ý-6›˜Êdaaaaaaa‰Ûâ|gôIÐ'AŸÐ3Ö[vÙ=f÷˜>ôù Ï±~ÅÿOFs’†uÖiXÇùâõe¯êµ_º6"mè_h|î¢=]ÃJÞÎú.wï]uþŽ9ֽء}*¡î‹vn§8"T&Hz«n­ºµê–óýÉ…“›òUéïésïo¼è?åµÿ÷k…E³g«ïnp•Leü¿¨üo÷±ˆ ³_­£g¬A·ëÖ¬‹}è+þÒ‡¾Ž€‰nXø°ðaáÿò¢¿Ïºî­YÁµi®™—e<#ÚsøÛ–ƒ}‹Äæ«ö7n|öÿ í¹s,zعâˆP™ é©ÕÇêcçûùØÏ+ÌtϸkX“¿ó…Ææk[Ïóÿ0oEñUm‡Õ—wµÀçŽlô«b6DEeÄ °õxnèëˆè–\>pù@ç‹â™#m›WžêÚˆ´Dý/æg"ÚóGú¾eÚÅüÿoíêT½z.1°ûÀ¢‡Û)Ž• ’^X‹°a-œïO¤ÙÐçš{Àof¬“~‡ôeP@…’f_õGë”içøU¡ë—ª”Ý}žý}Õ7ôrí@çž÷ÏæŸÍ?• 7ÀÖ`Ð×0 ÑM}4õÑÔÎȵãý‡}U×µi¯¹¥×ä?+ÚãžuOæ/Ví«Ûÿ˵7ÎtœUm˽¾]RÔ(º¾ùÖJÙ'½öÍUt~öé™*dˆ2r½`ÑÃÎíG„ÊIïù”çSžOq¾?iúK­Ö^WÝ3.´Ú{–bâÏãËõQd¯­ú¢Cå_í88§h¹´ƒ²·ëWp†ãÿ¯ß³JpîªîöòçkÓv”¨Vì_­ºt èFeÄ °ç²^èëˆè=~ôøÑ¿¼èïÛ“>y/wmDú°J×ÿÔ8Q¬wŽkY?Šýeþï~íÓT ÌÿW¶þ™§9þ}ƒÖ…òçî>°èaçö‹#Be8b?b?bv—m?ì[ç/w €Cö,í[ñú}³ÍØ+æ»ÄR¹‹´Ï–ùfhppµÛîoÙ:ëEYoç6+” J  n€=‹µC_GÀ€ÄWÓ^Ó^Ót˜otïQuvº6(-™|ßwxÑCU‹{ýÅX17°X×¼šïmΙA?Õü¡ä¦è½;ÔYéØ~çl—¹vÆ¥}»¹£Àhwˆ~E¯š>©\Ó^Ó^“®ÒoC¿ ý68ߥÜ<,U»ën°ø{ñçÎowÎצ€‘·ff)ëš,2Ì.«—ø3{û©Gû.-VþYˆ^©Öw‹~źCዽk8÷ùýïÿxÿGj n€Ý_ò }’È ƒ à|)½´¥ýͪÝ!4ù5Îfÿêž/½êÜÛâ(PÀµöÚ?jÿ(ç{•åǧd/ýÎâR³÷}ÿÞÖQ㌫ó©é¯v¶w¶w¦&â†Ø=%ÏÐ×0 ‰„V ­ZÉù²:}Zå‡ÅýÝ-@õôµèUçÞGj®õ´óÓÎO;;ß«ÿ£à†¬Ü3FõÜõá++*ùÖqîí c'Œ0–jˆ`÷AèëˆD"WD®ˆ\av¡};°w–:£nã¿=iÖÏâ(PÀT_u|ÕñÎw,ׯíô­6Šà6¡Ö>ntÞûç~>sòÌÉ3'©C€ø v-B_3À€$ÕçdŸ“}N:_tõͺUü†ø6þkÑ“Î=,zž î#¸{p÷àîÎ÷-ãWô8Rä/‚Ûø¯ –üjf1özWô]ÑwE©C€ø Nz„¾±A HRgKœ-q¶„ó¸lãÜÙ«Ûï÷éâWƒ7Žëû}ºøÕ=éÜâç©@à>"›G6ln6@þP=X+;!n|Ö³r ÉS"›sß.Z´8ˆ ˆ?à¤Aèû¾€Ië”ý”ý”O*ŸT>©œ/ɇ'·œà[š(7nkÑ{ν*z[ô<ÜMÀ’€%Kœïaf²µD Bܸ­ŸnUNÕ#|F8_°×öóðU-bÝØ¯Eý˳¿#|FøŒ½MÑwöýâï¿Øù~¦ã¹FÛ½/èÆ~}qÈæ>U› =öhØ£aÔ@B!Ž?BßÄ@ p™A'‚N™]Âÿ)ݹDõ„»1¯E/™õ¡èa* ¸¿ˆ§O#žšÝÕHß-­PŽp7æõÛu‡JÖù¡ØºW³ftîÃ…×^_xJHXÀñ·kó®Í»6ú&,`€‹õ½Ò÷Jß+Ηóʇóîù¢xtûÞêl"èu^‹ž½äÜ{¢W©.àY¶ÖÝZwk]^·õŒ-ƒ*ŸiÖ{Qý¢úEõ£ÆpüE7‹nÝŒÐ7a\,\ ×Â5³ ü”Ö¾ËŠÞ îu^‹ž1ë7Ñ«Tð0[í[í[Ìl0³Á¿™åŸYÙ¼ñ?˜³Oÿ×Úv$¨|…l¦o…Éz"뉬@b N(ŽÏúÆ0À-„víÚÝlÐj]ÿÝ_ &ôkÑf}%z’ŠžëÁ¾ûì3»Ûé“«¥­@I{§#üòýžýuÃòÊÛÍújfñ™Åg§¢0Ü0ÀæÌ˜Ûl+¸G£ååú%çèWô€YÿˆÞ£Š€5ü™æÏ4¦1»ó¿¡Ç©"§íÑGùÕIžÑoØ–­U0ë¿Ïü>óû,:,:,:ŒZH<ÀpOÀwRÕ^Õ^µÓŒN3:Í0ÌÚV½aÖ²c“[ô+öÚ¬OD‰Þ£ˆ€•,oº¼éò¦fwAcCº·,ÒóÝýÃ~Ÿ&Ÿè÷ÂM9«ôM£ð¼áyÃóR?‰î‰àv¢rDåˆÊQmwµÝÕv› iý<¥æÕ’·ì·ûtò«nÙè÷vŸN~ÕÅžšõƒè%ÑcT°ª€óçΛÝu<Ôh÷߯ú‡^©=ÇÚÑoè¸eVJsô{+Õ­T·RQ3Iƒî‰à¦^v~Ùùeg߉¾}'š ouoVjpþ/"óöÌY»Ž•¢_±GbïÌö]ôŒè%ªXÜ-û-û­‰OüxâÇfwGzæyyÝ ÿ3«Z/ú]\wlÿRbŽ~Ãú„õ ëC±$%`¸'`€[‹9$rH#ßF¾|cð:öW«}¾O==ú{óžŠÞ=C…€d$ÚmžUeV•YUb¾_Ú°{F†2)==ôýç=Fõþû*÷Ìóþ^os½Íõ6@Ò#†{"x€·ÏÞ>{ûlx…á†WˆyðkpTÙÂ_>õïXs¯§„¾¢µ¢å1ïèÑTHÎÖ—^_z}é˜ïªf-›é‹oÞ\劧„¾ï¶­µäúøá¥ÖƼwå"ÊE”‹xú(ôQ(õà*ÀpOÀ³á܆sÎ¥…Ù›«ž/1ôiùnÓk»]è[¾ÛôšÁ¢…±Ù±×}G'矜r~lî¦zÔh¶'“k#vxU+än¡oÔœ3ë|¾Å>»LÙ2±Ù—1Þc¼Çx¿þfø›áÔ€kÃ=Ö”J …‘7B ÷Ä ½L”Ù|õV;}ŠOyß¶‰={ÇQˆ½ý!ûCö¿ïÝWïE-›H/_üùt…Ÿ^M }Z{aÂÆ½m›WV¹´xÿØ¥ŠOW°tÖb±oÛÈú#ë¬ÿ,û³ìϲs|Ü 0Ü0À"ž¼xòâÉ‹Iy'å”7}<´ù¨Ø¥¼Í¦/¨^¼ÁÚ þßÕtïéÆuË÷Óó5ëT±¡X‹¿ÿ*þ§øªø|®h¹Ø Ž&@|¼éð¦Ã›«V¬Z±jE|îÐêžýzG® ÚölWäÍò«S ~ùÁ®Kóæ–S´r¿l¨˜Õøüל'Ûö«iSÆï•™1·Íð >~=Ú4;œ¿eþy*d·Ïm9«å¬–³Âv†í ÛÉÑpgÀpOÀ zœÿqþÇùçΜŸÞ‰ŠÖrÔÃëf¯›½n¶éঃ›æ8›ãl޳îygØMÿ5ýׄ††rÔ<0Ü0ÀâÞõx×ã]P[¨-ÔÖ)°S`§@W ê‰O-­âè$½ y.ä¹gÜöqÛÇmwÕaµÉÕ&W›¼åê–«[®>÷lܳqOD ÷D HvÞ>ûüíó³êYõ¬º8ã⌋36š×h^£y 5œ'¶&¶,>E|"=àž®Ï½>÷úÜõ/׿\ÿ²K©.¥º”J_0}ÁôãgXñTÅSOlذá`Šƒ)¦x¶îÙºgëès‰‡€ÿáÁÕÿ¿Eü =ÜD/‰^½äÏÕ®þsuÈåË!—O{ö:íEÏpÀ`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`I‡|òaȇé Ù9)0x<`°ˆd‹¿I’2$eHŠ!)ŒwÆ;ãmDÑÆãñƈ2¢Œ(ã•ñÊxeD‘F¤ñÂxa¼0žÏçF„aDáF¸n<5žOÇÆcã±ñÈxd<2ŒÆ}ã¾q߸kÜ5îÿÿÿ·ÛÆmã–q˸eÜ0n7ŒëÆuãºqÕ¸j\5®WŒ+Æeã²qÙ¸d\2.‹ÆEã‚qÁ¸`œ7Îç³ÆYã¬qÆ8cœ1þ2þ2þ2N§ŒSÆ ã„qÂ8n7ŽG£ÆQãˆqÄ8b2‡ŒƒÆAã qÀ8`0BP#Ô1BŒC7tC74C34C1C1dC6dÃfØ ›±ßØoì7ö{½Æc±ÇØeì2vÁF°lì0v;ŒíÆvc»±ÍØfl3¶[Œ-Æfc³±ÙøÃøÃøÃØhl46ëõÆzc±ÎXg¬1ÖkŒÕÆjcµ±ÒXi¬4V+ŒÆïÆïÆïÆoÆoÆoÆ2c™±ÌøÕøÕøÕXb,1–‹ÅÆbãgãgãgc‘±ÈXd,4 ùÆ|c¾1ϘgÌ3æsŒ9F h³ÙÆlc–1˘eühühühÌ0f3ŒéÆtcº`ÆÆÆÆTcª1Õ˜bL1¦“ŒIÆ$c¢1јhŒ7ÆãqÆ8cœ1ÆcŒ1F£ÑÆHc¤1ÒaŒ0FÃŒaÆ0ã;ã;ã;cˆ1Äb 6ƒAÆ c1À` 0úýþF_£¯Ñ×ècô1ú½Œ^F/£§ÑÓèit7ºÝnF7£›ÑÅèbt1:ÎFG££ÑÑøÖøÖøÖho´7ÚíŒvF;£­ÑÖhk´6Z­VF+£•ÑÂha´0šÍæFS£©ÑÔhb41šßßߌFF#£ÑÀh`Ô7êõ Ãßð7êuºF£ŽQǨmÔ6j5šFM£†QèaT7ªÕªFU£ªQŨbT1¾6¾6¾6| _ÃרhT4*Œ F£œQÎ(g”5Êe¯Œ¯Œ¯Œ///RF)£”QÒ(i”4J%ŒFq£¸QÜ(j5ŠEŒ"F£°QØ(l4 F£€‘ÏÈgä3¼ oÃÛÈcä1ò^†—áeä2r¹ŒœFN#§‘ÃÈaä0²ÙìFV#«‘ÕÈbd1²™ŒLF&#£‘ÑÈh¤7ÒétF:#ñã?ÆŒÏÏÏ4F#‘ÚHm¤6R©ŒTÆ'Æ'Æ'ÆÇÆÇÆÇƇƇƇÆÆÆF #…‘B·ëvÝ®GëÑz´þV«¿Õ£ô(=J­¿Ö_ë‘z¤©¿Ô_ê/õçúsý¹þL¦?ÓÃõp=\ª?ÕŸêOô'úý‘þH¤?Ôêõûú}ý¾~O¿§ßÓÿÑÿÑÿÑïèwô;ú-ý–~K¿©ßÔoê×õëúuýš~M¿¦_ѯèWô0=LÓ/é—ôKúEý¢~Q¿ _Ð/èçõóúyý¬~V?«ŸÑÏègôÓúiý´~J?¥ŸÒOê'õ“úqý¸~\?¦ÓéGô#úý°~X?¬Ôêõúý€ª‡ê¡zˆ¢‡è‚¦kº¦+º¢+º¬Ëº¬Ût›nÓ÷ëûõýú^}¯¾WߣïÑ÷è»ô]ú.=XÖƒõú}‡¾]ß®o×·éÛômú}‹¾E߬oÖ7ëèèèõúF}½¾^_¯¯Ó×éëô5ú}¾Z_­¯ÖWê+õ•ú }…¾Bÿ]ÿ]ÿ]ÿMÿMÿM_ª/Õ—ê¿ê¿ê¿ê¿è¿è¿è‹õÅúb=HÒƒôEú"}‘¾@_ /Ðçëóõùú<}ž>OŸ£ÏÑçèz ¨ÏÖgë³õYú,}–þ£þ£þ£>CŸ¡ÏЧéÓôiz€ èßëßëßëSõ©úT}²>YŸ¬OÒ'é“ô ú}‚>^¯×Çêcõ±ú}Œ>F¥ÒGé#õ‘úH}¸>\®Ó‡éÃô¡úP}¨>D¢ÑéƒôAú@} >P Ðèýô~z?½¯ÞWï«÷Ö{ë½õ^z/½—ÞCï¡÷лëÝõîzW½«ÞUï¢wÑ»èôNz'½£ÞQï¨wÐ;èôöz{½½ÞVo«·ÕÛèmô6z+½•ÞJo©·Ô[êÍõæzs½™ÞLo¦7Ñ›èMôÆzc½±ÞHo¤7Òê õ†z}½¾^_¯§×Óëéuõºz]ÝO÷Óýô:z½Ž^K¯¥×Òkê5õšzu½º^]¯¦WÓ«éUô*z½²^Y¯¬û꾺¯^I¯¤WÒ+èô zy½¼^^/«—ÕËêeô2zýKýKýK½´^Z/­—ÔKê%uÝG÷Ñ‹ëÅõâz1½˜^L/¢Ñ‹è…õÂza½ ^P/¨Ð èô|z>=Ÿî­{ëÞz=žG÷Ò½t/=—žKÏ¥çÔsê9õz=‡ž]Ï®g׳éÙôlz=‹žEϬgÖ3ëõŒzF=ƒžAÏ §ÓÓééô´zZ=­þ¹þ¹þ¹žFO£§ÑSë©õÔz*=•žJÿDÿDÿDÿXÿXÿXÿPÿPÿPÿ@ÿ@ÿ@O¡§ÐShvͮٵh-Z‹ÖÞjoµ·Z”¥Ei¯µ×Úk-R‹Ô"µ—ÚKí¥ö\{®=מiÏ´gZ¸®…kOµ§ÚSí±öX{¬=Òi´Úív_»¯Ý×îjwµ»Ú?Ú?Ú?Úmí¶v[»¥ÝÒni7µ›ÚMíºv]»®]Ó®i×´+Ú튦…iaÚ%í’vI»¨]Ô.j´ Úí¼v^;¯ÕÎjgµ3ÚíŒö—ö—ö—vJ;¥ÒNh'´Úqí¸v\;ªÕŽjG´#ÚívH;¤Ôjµ?µ?µ?µP-T 7â4 ©šª©š¢)š¢Iš¤IšM³i6mŸ¶OÛ§íÕöj{µÝÚnm·¶KÛ¥íÒvj;µÚm‡¶CÛ¦mÓ¶i[µ­ÚVm³¶YÛ¬mÒ6i›´ÚFm£¶AÛ mÐÖië´uÚZm­¶V[­­ÖVk«´UÚ*m…¶B[¡-×–k˵ߵߵߵeÚ2m™¶T[ª-Õ–hK´%Ú/Ú/Ú/ÚÏÚÏÚÏZ¤i µ…ÚBm¶@[ ÍÓæió´¹Ú\m®¨jÚOÚOÚOÚ,m–6K›©ÍÔfj3´Ú mº6]›®hZ€öƒöƒöƒ6U›ªMÕ¦hS´)Ú$m’6I›¨MÔ&jãµñÚxmœ6N§ÑÆhc´ÑÚhm´6R©ÔFh#´Ú0m˜6LûNûNûN¢ цhƒµÁÚ`m 6P¨ Ðh´~Z?­ŸÖWë«õÕzk½µÞZ/­—ÖKë¡õÐzhݵîZw­«ÖUëªuѺh]´NZ'­“ÖQë¨uÔ:h´Z{­½Ö^k«µÕÚjm´6Z­•ÖJk¥µÔZj-µæZs­¹ÖLk¦5ÓšhM´&Zc­±ÖXk¤5Òi µ†ZC­¾V_«¯ÕÓêiõ´ºZ]­®æ§ùi~Zm­¶V[«¥ÕÒji5´Z ­ºV]«®UÓªiÕ´*Z­ŠVY«¬UÖ|5_ÍW«¤UÒ*i´ Z­¼V^+¯•ÕÊjeµ2Z­Œö¥ö¥ö¥VZ+­•ÖJj%µ’šæ£ùhŵâZq­˜VL+¦ÑŠhE´ÂZa­°VP+¨Ô h´Z>-Ÿ–OóÖ¼5o-–GË£yi^š—–KË¥åÒrj9µœZ-‡–CË®eײkYµ¬ZV-‹–EË¢eÒ2i™´ŒZF-£–^K¯¥×Òié´tÚ´ÿhÿÑ>×>×>×>Ó>Ó>ÓRk©µÔÚ§Ú§Ú§Ú'Ú'Ú'ÚGÚGÚGÚ‡Ú‡Ú‡ZJ-¥–RK¡¥ÐR¨ïÔwê;5ZV£Õ7êõ¥F©Qê+õ•úJT#ÕHõ…úB}¡>WŸ«ÏÕ5BPÃÕp5\}¢>QŸ¨ÕÇêcõ¡úP}¨>P¨Ô{ê=õžzW½«ÞUï¨wÔ;êmõ¶z[½©ÞToª7Ôê õšzM½¦^U¯ªWÕ05L S/«—ÕËêEõ¢zQý[ý[ý[=¯žWÏ«çÔsê9õŒzF=£žVO«§ÕSê)õ”zR=©žT«ÇÕãê1õ˜zL=¢Q¨‡ÕÃêaõ zP=¨P¨ÔP5T UCÔ5DÕU]ÕÅ @UTEUTY•UYµ©6Õ¦îW÷«ûÕ½ê^u¯ºGÝ£îQw©»Ô]j°¬«;Ôêu»º]Ý®nU·ª[Õ-êu‹ºIݤnRÿPÿPÿP7¨Ô êzu½º^]«®UתkÔ5êu•ºJ]¥®TWª+Õåêru¹ú»ú»ú»ºL]¦.S—ªKÕ¥êu‰ºDýEýEýEýYýYýY RƒÔ u¡ºP]¨.P¨ Ôyê#Ÿ‘ÏÈÉÉɧäSò)ù„|B>!—ËÇå£òQù¨|D>"‘ɇäCòAù |PþSþSþS•CåP1ø'~ÜyYdI–äýò~y¿¼OÞ'ï“÷È{ä=òny·¼[–ƒå`y§¼SÞ)o—·ËÛåmò6y›¼EÞ"o‘7Ë›åÍòòòòFy£¼Q^/¯—×Ëëäuò:y¼F^#¯–WË«å•òJy¥¼\^./—————ÉËäeòRy©¼T^"/‘—ȿȿȿÈ?Ë?Ë?ËAr$/”Ê åòyiŸ´OÚ+í•öJ»¥ÝÒni—´KÚ%í”vJ;¥Òi‡´MÚ&m“¶J[¥­Òfi³´YÚ$m’6I¥ÒFi½´^Z/­“ÖIë¤5Òi´ZZ-­–VJ+¥•Ò i…´Bú]ú]ú]úMúMúMZ*-•–J¿J¿J¿J¿H¿H¿H‹¥ÅÒb)H ’‚¤…ÒBi¡´@Z -æIó¤yÒ\i®4W ”¥@é'é'é'i–4Kš%Í”fJ3¥Ò i†4]š.M—¤)@úAúAúAš*M•¦J“¥ÉÒdi’4Iš$M&H¤ñÒxi¼4V+•ÆHc¤1Ò(i”4J)”FJÃ¥áÒpi˜4L& •†JC¥!Òiˆ4H$ ’H¤R©¿Ô_ê+õ•úJ}¤>R©—ÔKê%õ”zJ=¥îRw©»ÔMê&u“ºH]¤.Rg©³ÔYê(u”:JßJßJßJí¥öR{©­ÔVj+µ‘ÚHm¤VR+©•ÔRj)µ”šKÍ¥æR3©™ÔLj"5‘šH¥ÆRc©‘ÔHj$5”J ¥úR}©¾ä/ùKþR]©®TWª#Õ‘êHµ¥ÚRm©¦TSª)ÕjH5¤jR5©šTUª*U•*K•¥ÊÒ×Ò×Ò×R%©’TIª(U”*Jå¥òRy©¬TV*+•‘ÊHe¤/¥/¥/¥ÒRi©´TR*)•”|$ÉG*.—ŠKŤbR1©ˆTD*"– K…¥‚RA© ”_Ê/å—òIù¤|R^)¯”WÊ#å‘òH¹¥ÜRn)—”KÊ%}!}!}!årH9¤lR6)›”UÊ*e•2K™¥ÌRF)£”QÊ e2Hé¤tR:)­”VJ+}.}.}.¥‘ÒHi¤ÔRj)µ”JJ%¥’>‘>‘>‘>–>–>–>”>”>”>>>RH)¤¶w¶w¶w¶h[´-ÚöÆöÆöÆe‹²EÙ^Ù^Ù^Ù"m‘¶HÛ Û Û ÛsÛsÛs[„-Âa ·…ÛÂmOlOlOllllmmm÷m÷m÷m÷l÷l÷lÿØþ±ýc»c»c»c»e»e»e»i»i»i»n»n»n»f»f»f»b»b»b»l»l»l»d»d»dûÛö·íoÛÛÛÛ9Û9Û9ÛYÛYÛYÛiÛiÛiÛ_¶¿lÙNÚNÚNÚNØNØNØŽÙŽÙŽÙŽØŽØŽØÛÛÛÚÚÚØØØBm¡¶P[ˆ-Ä"†íÅp¸m'NÒ€Äày(0$``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00$©Èi‘Ó"§ížµ{ÖîYC/½<ôr µ…ÚB­Z¼jñªÅ ­.´ºÐê,ÁY‚³™VdZ‘iÕrUËU-WËm-·µÜ&þÿ®%»–ìZ"¶Càˆ˜àH#úîSiÔª;S?R?R?jߪ}«ö­rŒÎ1:Çèôñ–}zöéÙ§s”Ã?Óÿ™þÏô|×ó]Ïw]ômÞtyÓåM~#üFø ú‡+/8¦ì»k‰³±83‹žglqö¦00ÀÿÀ°<¥Ò¨Uws±ÃÅ;´ž×z^ëyé“DÓGM5}Äw¹ßå~—»Aë­´vìÛÀ¬Y³Ò·\yÁ1eßÝÇì²³ËÎ.ëØŸ ýú7ô§o00ÀÿÀ°<¥Ò¨U÷ñSÁŸ þT0ÓéL§3NŸä2ÞÌx3ãMŽ{ÜLŸ4}ÒôIŽýYÀ(`0^¬~±úÅjú‡+/8¦ì»ûxü<øy°ãÛ„»þØõÇ®ôÉ00ÀÿÀ°<¥Ò¨U×OŽ~wì»cß‹ML+^Ýù³ÎŸuþìÔø£ÆqïãÞǽÅë+_÷yÝçuŸÛko¯½½öhµ£ÕŽV[?hý õƒ¾­ømÅo+:¿üÙL¿þ~ýý¨Ø8?ãüŒó32‡dÉâØ‡‹–.Zºh)}È•SöÝ=Í?<ÿðüÃŽ½*Îä÷û»ßßýè’'``€ÿa;xJ¥Q«®]"ºDt ÍÆfÖ^ñ|°x¢4nGG<ód6°³V+Z­hµ‚J0•ÖžÖž¶ÞðzÃë wì·¢£ŠŽ*:êÕ¨W£^¢“¸ò‚cʾ»§Èi‘Ó"§^TxQáEŽ}ëø2z €ä†˜à`ØI£çï1-Ôª; X°,`YÌý/ÂÅk×"®E$ì¹–òZÊk)có4ðäû“ïO¾O=8[½qõÆÕ{lYe– Ç¸ò‚cʾ»¿_ºüÒå—.Î=¼vöÚÙkgÓ?$7ÀÀÿÃv VaúÖž=!{2DdˆÈaÖóMÞ6yÛä­x>)ñŽ…ãö͈vŒÆŽ ^µ]¬w±ÞÅz;ö•———Ïþr6Ç”}÷â:˜«A®¹8öp‰ú%ê—¨Ooì~Z'&ˆÃv Vá,âtÄéˆÓÎÁ¡£ú=ë÷¬ßS„ˆIs?ËLñ¶ÅÛoKUfOŒ ¨0 Â€ ôg3pLÙwÏÒç»>ßõùιŸ—–YZfiú€äƒ˜à`ØÔ*œÍy5çÕœWf½³]Îv9Û]¿yýæõ›IßÿŽŸkfþáù‡çNε!Âò"ÓŠL+ò/ON‹ç¤ùÞálŽ)ûîYÔÔÔœûÙñ¶è%’``€ÿa;P«pÕ.ª]T»¢£ŠŽ*jú¬í’¦Kš.iêÚžÿyâÏžhÖB^‰¹òÐÊC+™…ïr¿Ëý.7ÕÎÙ Söݳˆ³wáE…^Ä|À$gÀÀ$ bN¬Íù7çßœ˜WŸ«Ïûµìײ_Ëj¹ªåª–«ÐêB« ­Îº&뚬kDô"ŽÂ¸:ãꌫs´ÚÑjG«ÙÓÚÓÚÓR ›o¼i`«n«n«.^ÇZójÍ«5¯ŠÖf Μ%X ðUÿOõÿTÿO—‡]vyøG?jüQC¼ž7¡Zrpì¿/ï»Q‰7«¨•jÕQt‰èÑ%´ÛÚmíöwǾ;öݱ:Ûël¯³ÝçkŸ¯}¾íÌ]9wåÜ•K§-¶tÚo+~[ñÛŠâÕ¾ÏBž…< IØö¬Þ¸zãê1¿`Y´Ùµç.ц˜ƒjq6Hšï‹ðá7Âoˆ'çlœ³qί®}uí«kÙ‚²e Ê›.oº¼é*,¬°°ÂÂAÙe”]Î'ç“ó%^ÿT®]=Ú¹O&f›˜mb¶„ f8÷&öÙL8uëÔ­S·FM5yÔdq|Eý‹6{§ðNá¢ÒˆJ#*œzpêÁ©•LJ&%Sò<ÅìiЧ)ž¦Xóëš_×üÚ¡n‡ºê~Ýæë6_·Éw=ßõ|×Å÷l©Ü¥r—Êí·Òo¥ßÊñ寗_îXéc¥•NØcš<ï$­WcI5¶ÅØc[8÷vm­¶V[#z 9 &À²ž?~,²óxåñÊã•>2¤Ì2CÊøW%ýð_ü?1ö[øëì_gÿ:[~UùUåWŧ·Å¶µ+ÁTZ{Z{Z°‰ $níÃýâÏ¢£ŠÌþÿ½¾÷úÞë;õèÔ£SŠ˜G šÇüµÔª³M_mújÓW1G˜1óòñòñò¾½ööÚÛkãß*1³¯Ù'Ϊ5«Ö¬Zî3¸<-pZà´@³Ö6IÓ$M“4qkmìkU„¾"æ|ß#˜ƒõǽ{÷6ûijëή;».þŸÈ¹7>çÞØŸÍž¤{’îIº6SÛLm35nmñvâ}ϺçyÌÙËE/½\4ùþäû“ï;Ç÷UÅ·Šo_çþLÊkœûÜC&MËݿƒæ>Ê‘¸?1ûÜ“ÏN>;ùŒŸ°6``,H j8Ît•°²OÏ>=ûô„ <=^7aÝ„uâ3`ê(ãÍŒ73&À¼¡î\ Î{=özìs´7Žs|&l9ÿOñ¬žxÎÆì«Ä¡VÍ< þ4\É1:Çè£ÅŸ û}!žÓO»Æÿ؉烪W‡^zyèeçOO$[û*ì)çÞØœÍ.Œ¹0æÂÇ—™Ç‡cfíó˜³s‹Ï->·X<'šPít¾:'lË=«Æ’æ>ÊYi{i{éùtÇk?9`UÀÀXŠømwÇAÌÄã84ûZ/Ù²'dxugbô󢥋–.Zj½Jpô°ÊÃ*«ˆ×K&^;ÅkãIGžõšÛkn¯¹±i‰«`÷¬UGJ>*ù¨dÕâU‹W-žØu»xðâÁ‹¿o Å«5Ͷ)^9ëžW‡˜¿¿Ž|sä›#ß$ì÷Ťד^Oz°GM¼ :>gK‹—œ;o¿÷”ÞSzO‰Ïö9÷&Ô¹7æmŠ–‹W'lkËœ*sªÌ©øôªûŸÇœ+Ö;Ü;Ü;<ñÚùû'¿òû'À ÕrϪ±¤¼rÖó÷ž¿÷üÝì×S’r2 ô€ €°ˆ¨vQí¢Ú‰™íb4©» î‚º 6tÚÐiC'ñX1Ó›˜·O¼úR¼JN¼r-n/ú3c½Øù•tÿ÷bÕ·MÞ6y¼!xCð†;Aw‚î‰9 ÃJ…• +µ¬À²Ë Äæx‰×~Æ~¦4O©AÌWçøúM3b;1áµ”×R^K)úSüyÏø=ã÷ŒsU:¿(ÕìxÅ¿ŠÄ¿öíÞ·{ßî±NuUìnµê\ â(Çü)â•Åâ9æk×"®Eˆ§rÅk`ÅüÄ⥑b¾Ï˜[»kÉ®%»–ľ?lúaӛ̶9rÎÈ9#ç¸çEbÆS³–‹'®êûâÀÌ3ÌÌ‘!"C„ãß‹¦·dÞ’yK滣;ZÌ l0úûõ÷ëï›ï µ³×Î^;;ný Úf¶å_kþZóךq;‚œ{öÜs«ü¿÷ÿÞÿ{Ç¿ßï?vý±ë]ÏÏ8?ãü ñBc1wòöóÛÏo?›þVZyhå!«žÇñYf¿ ñ_}îî.^f.fùO¿Xýbõ‹Õâ9ìûì_°_óéœOcníÂ?þ±ðñ”FlZ+†5cnçœWs^Íyÿ}̘50«óßg Ê”-H¼fvö¯„½µëÖ®[»Ä ,µûJÏSîžµ{ÖîY±ïªÅÜZǹNcÓζÃÚk;ÌlkŽßYîvXµoÕ¾UûÌZÞù³ÎŸuþ,¡"’%J–(YÂñoÄs]""ùSDðóQs< ïÛãꌫ3®ŽÙ–O~pòƒ“Xû*ì)çÞØŸÍÄ“÷ÿLÿgú?ÿëµØiíiíiÅŒÔ1o³õ¼ÖóZϳêyLè®tWº+1o¹ÕŠV+Z­xÐðAà c³}qu‹Û“¦V½‡LØíxV%ý}”3ñ+ fŸ.~­Á=¯Ú þ€ €°ˆj µ…j6À1}ÒôIÓ'ÅqÓiíiíi¿)öM±oŠ™mßqH=æY;OÅ­cºé6¦[ÌÛ_½qõÆÕ­Q âIÓ˜çxû¿ø!NÄs¨1e¾îóºÏë>ñ©ç'ÞÄëC¯¦¿šþª ˆ=«V1C­Y%ˆjÅKJãx–pˆ¯ÌL¾?ùþäû±Ù¾ßJ¿•~+Ͷs"㉌'2ºç5B<çdÖò†þ ýú'ìÙUÏ\:þAl¶óy&öÏ~9«þŸêÿ©þ³°!ns!sîMŒsolª«xÛâm‹·¯ƒ~ßóCç7ßt~c¶å¢£ŠŽ*:*ö[ó¬ó˜xå{l¢ß·•ßV~Ç©Þwþ魯J&ý=dBmdzjÌU÷QÎÄ/™õ›ã[øYë!&À"Ä0¨ÙðʹÅçŸ[ŸŽŸ'þ<ñç‰fÛoߪ}«ö­’sÜ8gãœsƧâµ~1¿>T¼84æ–{J%, X°,aã(g£‡Ž:zhüãºØÔ@i{i{i»x±mÂZµV…ïmßÛ¾·™mç·,¿eù-KüÏ"p2û”<^y¼òxÅæSÊêeõ²ºÙvÄKqÝóq©Ñ¥F—™µÜ·—o/ß^ [±Ž/Ø|ß#(^Hn¶M1õû¶öyðóàçÁof¼™ñ¦ó6E´Ÿ®ÂžrîMu‰×‰Ç­WwîݹwçÞ„ª1Ï:õØÚck­fÛ)¼¨ð¢Â‹Ä ÉãÓfq¥pœ·›8>Ûñ¬sÕ}”³×¿‹ïtñºx~–Àz€ €°1„a6¤"füŠÏöÒëÿÿEÌšœ`ÇWÌŧµÎ/îs&ffõÜJO™VdZ‘i 9‹ù©GÇ—ÍÆ¿µ›ZO[ÜYpgÁÎ_ûå“/Ÿ|ùDD u6ØúñÖ·~lÖZ1kÌ[sašmáiøÓð§áîyp|JÒ™ø~LØŠÏÚÆ­µ—«^®z¹jÂ^/”LJ&%“ÙÖŸk·êUسν1}ñšqñÌbÜZx±ÃÅ;Ä¿Æ<ë<&æîÍœ%8K°ÙÄ|Ï uW›+°•j̵÷QfFÎ9gä³ÏÕÏéçôsü, €õ`Ž¿•o63¥;´Óz°x"0¡Zû.÷»ÜïrZ]hu¡ÕfŸè8—§'V¡þ‡úêoÖB1”™PŸ%†Dó¦Ë›.o:çÏrŒO Ä'èJεz`æ™fÆüÊÜ„=3ˆg›¾èûEß/ú:ââÁ‹/ó'й“ÍÚœ°Cð +æYœÅë1¶bg6ŸÙ|fó¸ÁØÌ9ý¾ÛŒyæ×Ø}O¿ {Ö¹7æ£/bïø¯„ª1Ï:í8¸ãàŽƒf­õNáÂ;…xenR^)€­Tc®½2³h颥‹–š}zÐOA?ýÄ‹ °``,¢Æãk<6ÚÈ]9wåÜ•ÝahÃzpü‡¡}wì»cß3ûÄ¡—‡^zÙìÝ¿æ]œwqÞE³Ž/7¾Üør ÛB1sžx~Îq¹×÷^ß{}ã;¾R•Z}­ÎùtΧs>Mì'Õ^ox½áΟè8'¨Ù×zîÀŽ/tu&‚º„­Øø¼ž71®ƒ£G Ž2ÛÚÆ&›llŸÖrîMØsoÒ<)ÿó¬ó˜ãQv68õàÔƒS'FíÅf>`«ÞCÆ;žx­tÕ}”™uÖMX7ÁìÓ듟(°``,âÇ®?vý±kúXÛ;`"§EN‹œ–”í´^¼õåÖ—[_&lû_À謶V[«­™}¢ûW·¿­ømŘŸ“s·a¸˜ûP¼<Ðý`w«Õ¶ÃÚk;,ñ^™k¦cÑŽE;uþÄ:Ûël¯³=æ¯-sªÌ©2§1ަãK¿ €ßw;žx­tÕ}”™+y¯ä½’×ìÓ‹L+2­È4;°``,È1’É2CÊ )jÐGü޼ø³xÚé}Ûf½8ª]T»¨v Ûfñì—Ù'fÉ’9Äs+!g»œír¶3ÛrÒ¿–<ªÈm¢ϪÕ/ú~Ñ÷‹¾î3¨-æ÷y¿·}oûÞf¶…‘sFÎ9Ç=_#9¦Û˜ncº™µ|òýÉ÷'ßOÊH#é·ŸctŽÑ9LY!nW4ν.;ëºÍ§xÖy,ÓéL§3™ÎþºÏë>¯û$ÆÑÕE·íxâµÒU÷QfÄ‹²Í>=Wƒ\ r5àçG¬‡˜‹s|©c̯þ{ï Þ)¼S¸[`Ÿ˜ô¡šØ¦Ù'殜»rîÊž[ 1@¿­ü¶òÛÊîö}ä)Q„gÕj–à,ÁY‚ÝgP[´'æýÕnk·µÛf[¨]=ºz´{À5¯Ö¼ZóªYËÅk‡­gˆÈ‘!"éÏ<œ{­}Öõ¬óXÌ¿xpÌW `+Õ˜û;Go¼ið¦Ù§g¼™ñfÆ›üÌ€õ숫ÿœWs^ÍyÕ¨R£J*Åü\TìÅþÓ“h(­=­=­'¾V÷a•‡UV1ûÄõKÔ/Qßs+!æWP&ökãÓWž»[­0  ³¯M¼™ÈãC<Çf6/¶Ä{jÜ<*ù¨ä£’âilç6{ùxùxùÄ-üó¬X<ãe¶5ÑKÖ¾ {Ö¹×Sκžu‹ùe‰÷ð˜¯Ö¾‡ŒË=ñZéâcgrLØ_¬î˜üË Œ˜ç2öCÒŽqÈû~Vâ ‰×c&ö€ãÅ;\ì°-s=š}båz•ëU®ç¹•ó3p×o^¿yý¦ûxbìnµêø2[O©¡~Ïú=ë÷4kùì²³ËÎ.ë>Ïf ̘լµ]vyØå¡{~_$ìöÅ,f[»ÔèR£K¬}ö¬s¯§œu=ëVÚ=Ïk~]óëš_c~îÙàèÑ%¢K8¶ÇÙ†N:mè·ÖzV\nG¹åv˜mí𷇿=ü­µ¯Âžuîõ”³®gÇZnk¹­å6³Ö®Þ¸zãê‰qîú£Æ5þ¨áYpBÝCÆ¿åž{­tÕ±sv¨ÿ¡þ‡ú›}z……VXÈÏ}X00ˆ13\ÌÃ7åW•_U~•ûÀ[?ÞúñÖ{ÀqÒëI¯'½NØö:zèè¡îù|aü+al‹±-ƶ0ûÚYµfÕšU+a÷nþáù‡çó³:. ýú7ô $T;“[­Ž/7¾ÜørIW'1›`ÑQEGeÖþ_kþZóך®mç²Ë ,+`ÖÂâm‹·-ÞöÕ¨W£^rUÅ&åö[¨-ÔªÙÖöŒß3~Ïxk_…=ëÜë)g]Ï:MŸ4}ÒôIf­”}PöAÙãî"æ+…{À uÿ–{îµÒUÇÎÙîY»gížeöé­V´ZÑj?ë`=ÀÀx<1ô#õœ—„}¡ß‘oŽ|sä³”œír¶ËÙ.æ-Ä<·y(Í ½<ôòÐˉ=à›Øû=¤µ§µ§ÁŒÙ'Êùä|r>çOô”JØvgÛmw̾¶ÖÉZ'kLØAß^¾½|{9–ˆ"â_ ÕÎäS«ÂöóÛÏo?oöµíz´ëÑ®GÂöð­]·vÝÚ%^‚ê¼h·µÛÚíØomî½¹÷æÞ‹ù»ÀU¿¨qãÌ37Î8¶Á™ãsÌ®ªØ¤Üþ¨É£&šsoXû*ìYç^O9ëzÖyL<çmÖZïÞ)¼SDµ‹jÕ.¡Zû.÷»ÜïrÇ<÷pB]ãÜó2þ•æé×ʤüŽ6ãøt»3Ç_PàçJ¬„˜7L&““晿ˆÓ§#N'^|~ÆùçgĿσŸ?öòñòñòIìGá¸÷qïãÞñoỹ³¹+箜»òËE/½\乕ð¨ä£’JfÉ’9$±çã¼t'èNÙ§ôžÒ{Jï)î3wuò©ÕØTBÆ›of¼™°=löU†”RfH)Ú“Pß‚ãKw“æŠ žèy–bˉ`&ùÀKš.iº¤©ÙÖì_°Áþ¸m™sobœ{=å¬ëYç±g!ÏBž…|Ñ÷‹¾_ô5Ûëµ³×Î^;;¡Z»wÀÞ{ÄæÚÿãåž÷ñ¯4O¿V&åw´ñ6‚˜ßØA €õàñ漚ójÎ+³A ÿïý¿÷ÿ>¡5þüåÏ_þü%æç cÞB¦Ó™Ng:ó°cü[;õèÔ£S&Í€£Ðäm“·MÞÆ§åb¶NñtE̯g´F%t ëÖ5,±Ÿh‰¹_ðŸH¨ïåäS«±¯„؇ô1{šâiЧ)ÌôkkµµÚZܶº>t}èúÄîóØq{“4MÒ4Is{Ã{×VlRn_Ìòk¶µÁ©§œ:n[æÜ›ç^O9ëzây¬o÷¾Ýûv7kmáE…^ÿÖŠçqÅìª u?æ‰÷ Uiž~­tmìx†wæøf~®ÀJ€ €ðxG«­v´ZÌ+q{]›3Ç&g* ¨0 BÌ[(2­È´"Ó̶ðÕµ¯®}u->C0J&%“’Éñyˆ¤ Õâ?ëg̯'Ž•>VúXi³–{V%{pìÁ±1·vÅ…V\ˆ[ OÝ:uëÔ-³ÁbñüÓ‹Õ/V¿XÿH¨ïåäS«ï[ Ëï.¿»ünÜZ+æëmT©Q¥F•̶¿é«M_mú*>GsZà´Ài®zøjú«é¯¦¯» î‚º bnÃÈ9#猜ã>›”Û/¶Í>=ûôìÓ·V¹^åz•ëÅmËœ{ãÜëY°gÇbþe¡õ¼ÖóZÏ‹OoømÄo#~‹ýU)6ÛôÄ{È„ª4O¿Vº6v<Ã;W±ïüD €õàùÒÚÓÚÓUtTÑQ‰ñ<‡4Mäãø$œÙÖÚLm3µÍÔ˜·Óù³ÎŸuþì}[+æ÷ʺ&뚬kÄׯü¢ËÄÕÄwì‡ÎÅÓ˜ncºéó–{lí±µÇV+U‚Ðåa—‡]šmG Âþ_T™ÖžÖž66í<ùÁÉN~à8ì,`YÀ²€e±ßwëÀ.®Õ÷¬„ "2Dü_?垤{’îI:Çó‰3ñtZügŽOEw,Ú±hÇ¢1÷cû_Ap&^R:³ùÌæ3›g Ê”-(æÏmú¨é£¦ÄqtÏ€6i¶ß uƒÖ Z›mâxD8÷&¹׳`O<ÅüDiÜbà×}^÷yÝç}£ßØoßï!¶Ò<÷ZéªXœÕÍB}xó£$VEL €Eüù{äï‘1¯ˆ¹»ÄŸ×üºæ×5¿ŠÙþÄœpbØîZĵˆk!{Bö„ìµ…VZ]huÌ[R±içæü›óoΛ¡ÀF£€!þ|¨ÿ¡þ‡ú‹YÇÄPNX©°Ra¥Ä^‹WÒ9oaÕ¾UûVíKìP­b@Å€ŠÎßüDóÍOìžµ{ÖîYwGß}w´˜›óJÞ+y¯ä]V`Ye̾ÖQ¯<^y¼îõ½×÷^ߨ´ÙS*AxìõØë±WlêÁo¥ßJ¿•âÏ×R^Ky-eä´Èi‘ÓníºµëÖ.[u[u[uÄüìNñ¶ÅÛo+³„ª„ú.Nnµ·J/¹]·øÜbQ·«<¬ò°Ê™f˜9»ì첳ˊöÄŸÈx"㉌ ugÕ£sŒÎ1Züyc“M66íGAÄ~âÏ"Zÿ§SŽN9:å0{’ÕìøŠcêÎáYÒlÆCf ‰9@µöUØSνž{ÖyìAà 4ŒMk½Ã½Ã½Ãßî öT¼v^ÔðÏžøóÄ2§Êœ*sÊy ýú7ôo{â=dÂVšç^+]dzÛUC·‰ý)žU«ÿR œüàä‰] â©õƒÖZ?(ñ†}‡ÎÓ'9ñ¹"ìO''Æžzb,‚³mν7÷ÞÜ{qÛ>çÞ„=÷zbì‰ç±Ø¼:>Êí(·£Ü1³lô¶ÞC&F¥yâµÒU°ãYÝÙùçgœŸA €U`)âiŒ¤tn¡¶P[¨á7Âo„ßH¼çNbO<{4}ÒôIÓ'9¾ø.±C5ñôsú9ý\Bí‹———ô¥ô¥ô¥µ+ÁÑ…1Æ\“-Ož9ÎÓù¾m³Fìžµš”• Z»õåÖ—[_&Í9ùï~÷û»_RÆU|«øVñOµ»Ï÷Eâmßì5ÅŽ/ñæÜëÚs¯çÀžxÏÈ&l;Å{#Äí±ùÿV½‡L¼Jó¬sUl65CY½¬^Vç'G¬˜+JkOkO+®ò%ê—¨_¢~B UËU-Wµ\;î8¸ã ø¨ø ܈—ÑÅÿ9¹ÒöÒöÒv³WwælÓ›vÆ~ÐêfèÍЛ¡ñéáV+Z­hµâNР;A 0(æ!•àH¼\Ôñ¹Ò¸µPÌŠ:ôòÐËC/;¾21n­²R즵c%8¾*9nÏÂv;Þíx·ã·×Þ^{{­«žõŸÛ®G»ízÄgþë ­”RfHÙìJ³+Í®¨©©%ì÷£k¿/oûS.M¹4å’ó6_¶Ì¹×µç^O€=ñ<æøœ®ãl²ïų̂8úŽûž½í)÷‰]ižRc.€ÓÚÓÚÓ:οîüœ7Ïþ`mÀÀXÃ0´ã3C¥Ó–N[:­˜×-sHæÌ!Y×d]“u˜5MÌÖù³ÎŸuþlΧs>ó©ãKÒc¸Ä1Fj=¯õ¼ÖóÄ ¹bËœ%8K°x–¨æÕšWk^Xx`á…Å,‰Žûè>/Ú#†Ak<®ñ¸Æc1%öEì˜[QDŽO &çJpq:âtÄÿ éŠ.ÅËN î,¸³àN1X)Z.æí\Zfi™¥eî·¿ßþ~{†ö<²V8ôwWº+Ý•ªÅ«¯Z\´SÔ­˜ÅP åw¨Û¡n‡º‹–.ZºhiâEÔñá8d?äÁCˆ™zÅó»"†û•ïz¾ëù®‹×¨úïÿ½ÿ÷Ã7ß<|óöóÛÏo?ÿ_nHž®¦¿šþªi!ž’çÜ˹79ŸÇÄìãâÅÙIÔ¤x6TüŠ€hgýžõ{Öï˜50k`VWý’õî!¹VÆŸqÀ8`0û5ÇgÓ9;`UÀÀ$k®z![ü[h¥>§¬ÝZj•J°jÿ{:ñä´s?¨0 Â€ ÖxŠšï8îÄ’ó]µšœ¿sEÌ_-·µÜÖrg’``@²¼!xCð³ù/ 5À½îóºÏë>âYgç3üžñ{Æïπ䀘ì¼Ëý.÷»Ü*T pþyÛmw¶Ý¡—À³ˆ³·óYÝ·—o/ß^â¥ßôÉ00 ™ÚúrëË­/Fnߪ}«ö­xJ <‹ãÙÛÑŽƒ;î8ÈY€äƒ˜\¥µ§µ§ýºÍ×m¾nãø3r–à,ÁY‚Ÿ¤{’îI:: ÜŸ8c‹³·ãù¼Šoß*¾<û @rCL HÖÔÔÔœRþaÓ›~ØÄcàþ–, Xæ|&WŸ«ÏÕçœÉHn€ €°w ëÖ5Ìñ'å\ r5ÈÕ€ØÜÙc¯Ç^½ÏØBw¥»Ò]¡Hž€ €°ß}wôÝÑÎ?/O(4¡Ð„Bô¸'q–v€ÉÎÛçoŸÛŸUϪÑmg\œñõŒFóÍ{~4}úôéŸ>ÿZlMlY|ŠøDzÀ=]Ÿ{}ë_®µ¸K©.¥^~š¾`ú‚OÃãgXñTÅSÏ&lØðªëÁS¼ûlݳuöJô9€ÄC °¸w=Þõ°ßµ…ÚÞ¶îØ)ðÅ£„ zßw->]´D´Š£ô.ä¹'z¸íã¶Gj®º3¬6¹Úäg÷·\Ýr5êÕ³qÏÆÙËs\<‘ó^ȇ!¾ýšžk,èqþÇùß] œ8ÿU¸«õb³-­å¨$†×Í^7³/ØtpÓÁ¨s9Îæ8>Û=ï û¯é¿æ¥}Ž£à)€áž€ñäÅ“ï¢'å”7òU|†ÞÚ|Tì’¤O_P9|I…µü¿ÿ!çÞÓëŽ*­çkÖih]±#þUüOñUñù\Ñr±M€øxÓáMûÎU+V­ˆªŸ;´ºg¿Þq¨Î„¶=Û­˜°üꔂ3|w]š7wL#­Ü/†>1>ÿ5çßmûƒŠðÚ”ñÇ{“kÎm3¼Â‚7=Ú4;¼³nþy*Ü,·Ïm9«å¬ Ãv†íŒ¾ÀÑpgÀpOÀ½€£“óOÎþ86wS=j4Û³³õµ;¼:»*ô5[GÍ90³~þ-öÙe&úÄf_ÆxñŽüùÍð7Ãí»¨×"†{"x€·ÏÞ>³^ax…Èz1‡ Ž*[øOý»6æn¡¯iìß-°é0Ñò˜÷Nô€è ª$gëK¯/5+æ{§ªYËf:YæâáÍ›;Kîúš­ßm=Z·ì’ëã‡ÏóÞ•‹(ñ¬é£ÐG¡ïx[ €ËÃ=ÜZäÈ!ö|ù>?óر¿Zíëé)¡¯éÌÁµÚ×'2æ=½!z† ÉH´=ÚnŸUeV•WûÿÇÛSvÏÈ0剧„¾fëþØc´žï¿¯rσ+bÞßëm®·y—‰HzÀpOÀ7õ²óËÎöî¾}'>ûÅl¨«{³RƒƒSFæí™³á"O~×bÄÞ™í»èÑKT °¸[ö[öè‰Oü8ò³»£=ó¼¾1ú†ÿΙíûxzôë¼^\wlÿÀV1ÇÀa}ÂúDŸ¦X’0Ü0ÀíDåˆÊaÿ½Úîj»Ÿ=6ÞúyJÍ«7í·ûtòkc¥è÷¿Ö·ûtòk#öÔ¬D/‰£r€Uœ8ÿª»ÙQÇCÖí Õ?ôJƒõÖ‹~סã–}8èVÌ1ð­T·R½«JÍ$ `¸'`€;©j¯jÖiF§/™ im«Þ0ë„z– }MÖb¯ÍúDô˜è=ŠXÉò¦Ë›F¥5» Ò½åªïîލ›ÆÚѯãúÂM9»9ϞמžúHlÀpOÀ7˜;0÷«{fÃXÁ=-Û*¹E¿ŽkÑfý#z*Öðgš?Ó¼í`vç3~CS+ÞØ£òóO>ѯã:lËÖˆŽ›ÍúÇï3¿Ïž7‹³‡QK‰‡î‰àB»‡vÛÔlk]ÿÝßïMÎѯãZô†Y_‰ž¤¢€çz°ïÁ¾w¦w;}rµ´mûÅÞéH#¿=É3úu\ŸýuÃòîýÍújfñ™Å_m ¢0Ü0ÀŵpÍþ…Ù Õ”Ö¾Ë~[Kèë¼=cúÒ?-\³Au³Õ¾ÕÕ`fƒ™Ïÿp¾Ã)§øÌ:—ïÿÁœõ~'úu\ÛŽ•‘ÉìÎðDÖYß>¢¸pBÙµy׿7=D¬ X÷ªËÿ'þï"虸!¸Xß+}¯¼\é|«TùpÞ=§òD·ï=À¿0q¯óZôŒè%çÞ½JuϲµîÖºQïÌ‚Ì{íÒêsâ^³õŒ-ƒ*ý2Ь÷¢úEõ³¯¦ÆpüE7‹nf?cvK7À—9t"èí ³Kû?¥;—hý 7æµè%Ó§=‚N½}A¥÷ñ4â©ÝÇì®Fú&héð]D¼1¯ß®;TÒM±u®^ùع^_xýu+* aǟ㳿1¯ ƒcà ¥ì¥ì>#|FDt¾¯íç?à‡º„»±_‹sîIÑâ·):àξ_üýâWÕïg:žk´}Ï]ÂÝØ¯/Ùܧs´ÙÙ£a†½;K½$àø®wcÇ0À´ÝÚî·Y/Û…veŸxíÌ»|½w×]L¬ûµè1Ñ{ν*z›ªîéaÓ‡Mß¼ö9a×rõ,¾b½sNôèyŸªH(À ‹08¡’Ö)û)û[ŸT>©"4çKõáÉ-'ôoF ·µè½y8•OªMô<ÜMÀ’€%ÿ6¸3ëì­?—&ÊÛúéVåTÓ¢fdOK=-eOIíÄpâ! Ž`@’:[âl‰èÆÎæ²sž/b¿ß§‹_K¢Ü8®ï÷éâ×Rô¤s‹ž§€ûˆlÙÜ>Ìlà&ü¡z°‰?Qn|Ö³r ÉóóNç¾]´8èõ<* þ€“aðû"$©>'ûœ|9Ïùb¬—hÖmhuBÜø¯EO:÷°èy*¸àîÁÝß4q¾o¿¢Ç‘•)ˆoã¿~4Xòk>Úl8ì]ÑwEíשC€ø Nz„Á±A H"‘+"WØM‡ŸÞìÅÿ$ñmü×¢'ÍúYª¸ƒªã«ŽvÑùŽåúµ¾íw¸*4½ÔhK–ÎÛãé1p§ßó§s?Ÿ9yædt=ê >€]‹0Ø 0 ‰„V ­ôö_^þ<}Zå‡Kxö7×¢W{[ª¸ÖÓÎO;Û?r¾W)þGÁ a ]—:Àž¾²¢Rÿ Î{4a성‘W¨F€ø v„ÁŽ€IdЀA^>t¾Ä^ÚÒþfç/ˆlv-zÕ¹·ÅQ €kíµÔ›íÎ÷*ËOÉ>Ã8a×Q㌫ÿ¥Ù€—½³½³ý5 7Àî‰0˜øjÚkÚŸ™]V£G÷åŸÈ6a×¢WM‡ùjÚkÚŸQ˜ÀUúmè·áåVç»”›'‚¥vÍ €cÝ¡pƒÅûþe¢û?ÞÿñÝj n€Ý_ò ƒ €‰îÑãGß…9_D¿=éóÑÞ„µ‰·=ìÜóâˆP™ÀŽØØßšþj ý°oÝíÀ‰±Þ²uÖ‹‰=÷K© Txó˜Âˆ`Ï’|Â``@¢;šúhê·6ç çÚñþÃ~øÚ}âÒ»£;¯mrZ`å9KÂ[Ï+¶MÎôյܟ^ðÉ”ñʃ…Åzç¸v¥Lm-ÿ–#óVûvÑ¢Ç^]µfÑî‹vîyqD¨LôžOy>Åîç|Òô—Z­õfÀ'?XS­wïulß·¯€‘·æ Ù‚²<°°Ì©ŸŸ<¾\+=ö’Ž7‹vÏøÚ´%DóuIDAT:¬û—Á¬nÝ^}KeÄ °ç²vL HtË.•ÞùbyæHÛæ=RºCPªÝnVoèP/Ÿ,Mï܉ýÅþÿ^TÚñN»vî‹þ—Ùõ.•žÊI/¬EX‹è¿œïO¤Ùp~6w€³gûðaÌw†wæµ_Ÿyv݆ Ý»»[üªoèåÛìŸÍ?ÛóaT&@Ü[ƒõÂ``@¢>,<²Žóòñg]÷6ÿܵé‹Õ=~j´²è¨W®ˆVZ}ôµksïUï»`Aèúæ[…žùÿµw§ÑU•÷€Ñj¯J{«Ð*QÑ* ¸ÔRQ(Ò ‰ E@e8`­€ˆUœ°¨X­P•IA4€à€ƒh„2D @Hrî‡}»Vº'7B†çùð[¬Cöþï—uÞµ9ç,¸©EŸŸ-?Ðæû?T»ïpƒs&M ^üŸo Æ8˜püäƒ+be%oyúòôœÓâ÷'ï|ôìê!ÓÂ\9¢iïE/^Üú™ŸÞUýüyÎÈÏo¯Òy଎gœpú‡{ÿcÇ›WmMÛ¤BToXûj³^‰ÎËÊ86 àè‰F¬ ØµlÚ²éñOŠÙ—÷kܼ_éV¤A­ÏûOïû‰›îéüfÏž‰ÊÝø³¨ñÙYƒ¾ý6œp0áøc®ˆ• ”¼©;¦îÈNŠßŸlZ7낞5ÃYWÚ^©izúÒË'Œº6øžüŸ üùµëm:zcø?9¸aå+’×íRp´•Ý2X @±«µ§ÖžýsâŸó>t^éV¤«‡ß¸ôÖ÷ïºrô«í¾ïÚïžoZ˜WôÆ—Äá|p0áøã ®ˆ• ”¼Ç§<>åÐQÞúŸw-œØñípÀ=Ónør~źùÕ¼oÃy«‡­îÖî÷?_8N PTÀåGÙ*ƒ+„ç¿„”RÊò–±)=šµ[iZp•›[»×ää§67~üwá/€ƒ [iRJ)¥ ¦Ï§iÛ§ÂY/?ðÜݨV˜Ç.9~ÓküûƒEª/Þº5l¯¾ó›«ÌüÎz“RJ)¥”²$sþìù³ôQK)¥,p(ß6yo…^CÚ¼²¬r›k‡ ™ô㦯=ú訳®î?9«ÓŸjU\Úï¼sñê?®)[gd¥I)¥”2ü¹÷ÐòSoÈ g¼=u޼ΠóØ-ç¿Ñü–[޶K K|wfÏÓÚYoRJ)¥”R–dfÏÊž›©–RJY> àмøãê6¦,»¡âÅÛß»µÒö3ª¥§':æ+>­Öcãè»/;~(€½XJ)¥”e$Ãü àÃ)+§6?X˜Çf=”Z«eË0À^,¥”RJ)eÉg9zpðèRJ)ËC^˜yaæþÆñO{áù à³&TÚ²ë/ÁQÕûïªÙ›ëþéÃk.yñÅy3[-^3­n×;»z¤E¿×ÿ-xÔW­º,ûÏÛ‚á,€}ppE¬L)¥”R–|ÞÖ𶆙_ÆïOÂüÀ…ðÖýoÝ×µkð¨ÊŸW>1ýwa+€}°•)¥”RJyl¿³šðã ?>Üßd¢— îYpÏ‘;SNL91óÁÂW¿Á÷—£Ï ühÙ´eÓ ŽòÆ—÷kܼ_éV¤-“/¹²jp<=Ó.ûûüŠyÕúÏOz¡àZws×.}zT L8þ8ƒ+be%oꎩ;²“â÷'›Öͺ gͲþÀ‹[?óÓ»ªÿû× /©²¹nØ à†•¯H^·ëhûXŽE¢_­3™hŠÛ1ÓÇL?Ô£ð¥oðý%_úæ§ Ø Ù7d_VÓ£¼Ñßi=ßn÷“Ò­HÏiñóÿÕ08ž57·¿cР•ü£w*ºiÈõ#–, Q¼aí«Íz%üpމ8zÊn雟€b7ù¶É·eŸÿ¤øÅÚ›Úõ9¡t+ÒÚÍ9þ믃ãyíºæ Fo,øûwÌïÖø¦×ƒOL8þ8ƒ+be%/íÆ´s?‹ßŸ<}Â]-ǟθÒöJMÓÓ—^>aÌе‰õÚu6½1ÿ£Rg¼xÑí©áyíï¡©_·x5~òÉg%Ÿu`ˆ• plÀÑÒ7?0ÅîÃS?<5gIüä+#“‡6ì­ÕO\2bÄíU:œÕ1ÿ÷7ïÛpÞªÁa{óç­½U»ëô£Ü´ê5¦×¡›­L€c£.»¢Wúæ§ ØíIß“ž—ÿdyóº:'½=¥t+ÒÝ {þôÆ/íöÖ-WþiþË]*öXPã³³}ûmþ¯·èxQ•+ÃSŽ?þàŠX™@)X[ËI´ËÊ­iôfØ à÷¾0àŽ;~9 Ê%ß/x—X·Ú¯ºlÞ¼=uÞ¼ÎÃV¿>gìÁQ}ãyYýeõ¤[˜ÇF\¶D»ôÍO @ñkkËHx›ïýïN>£t‹ÒàHFïl0ôoÕª~ͺšÁgÙä› r>üpŸ›<øÄ¹µûwMNÎüAy\µóÏÿç_ÿÐûò·æÌ CõL5á+•›ÄšÄ2,L ´ œ9pfæœø]ÊöOæ-íÜ.lpðõàÏÝ´î¾ Ç…ïßäÛúgNûEýÝ×]¹¢öÊ þôá€^|1ãýWÿþpØªß »^Übâ¢uñ3ßùèÎGó¦Y“ÇF~å§ôÍO @ ¹ýÖÛoÍÜÿTúÕë]¶wÿeJӂ߯9Ñ߆óÍŸƒ©ÆO;¸ V#Pºß½øî#oÆïU&|•GBQ—&*qè×ÃÙ#Wh~yÂ_ ìë;hMp8•ÏÒ7?0%$õêÔ«sZÇ?­>üе»Ÿo¶µ¬g0ÕøiWÁjJ×Þî{»ÇNŠß«Ôz­æÌ´–á¬QËn®Ù2åêAGyo˜{‡ß;ÿ¤»¢vÛ^wzpd0Éø “·€ð˜×{^ï#7Äï[FNé³ö¥ ŠÛãÏ=w,mÖ.á¯`æ]’wIl›up<À%Oé[ `JÔúÚëkçå ¯l]mÜÆ_Åv¦ôhÖ^‰{Œ¹3¥G³öÁ$ã'LÞ Â#«]V»ØD7höí^¾ú†d%îñäØsŸ÷ìÜøÙNœ0qÂa¿PÀ%CéûC)€(YŸÆ>åÔ9¥Î)ûßJ^3ºý½ƒÚªr-ƒéÅO5˜v0y ›1Ïyþh7qÆ®<çÙzJÜc˽s–}Úæ’D7ÂöÖÝ[7v‚µpüÀÅGé{<À”‚w¼» çÌø§ç‹æWµõ‹¼ ú/Hš¨Ð-| ¦?Õ`ÚVN»Ûìn“÷^¢Û7ß}¶hp‡Ÿ(thÞ{NßZSfÄÏsTƒQ ²vZuEE\´”¾EE @i¨«Û_gXaûWÇ?a¿20ùÖ“Ôº…Ï`bGyíï°:Ãö¯¦mÑaöÀÄ&j¿Ÿ¹eC«7þK¡[øÜ~ógÏŸ}¤Ò·h)€(e¶ Ø’ùRüÓùµkÎ_øéy¹]úßš|±¢7>ƒÉSŠŸ^0U« ([æ$ÍIÊÎóvÐÇ–¼~ûÕÏÝ–hzÙ³Æ^¶ÆŠ–øøå¶ÍmûBé[´À”²}ïî{7öËDOð÷wlðâß^Q÷Æg0™Ds ¦jue̜؜Xv‹ÇZÖ%%zÕïÄ¤áƒÆu(¸úMKIKÉýÜb(I `ÂI @¨e ÎÖªA«V|Ãë£Ï:,JÉ*ëÕopŸi0`2VPŽäÆrc±± Ç6<´¸àýÒÌœqÿ÷e½ôýçk ßë8>yѵ}WO)ø|·uÚÖ)¯²PòÀ„“€2 '#'#öñÐúCëg]_ðͯ;²¯¼øµ {“{k3¤¬”¾ÁÑG^ðÙ¦aUåÙŒz3êe-xïÔèÌ++¯»bóšÙ³»/-+¥oÞœ5©IW>¿mäÐÇG|vWí¿jF›=©{Ró6[¥EL8)€(cfn˜¹!û•‚o‡ùøìF'<³÷×½n3:t¥ï¯{=Üftp„…9—à¬]}€üÖ_7>÷äÂì¦ú\×váÜŽ[‡½un×ya+}³ŸXõXó¯Ç¿bTœË=Õ艹õì‘¡G†Ææ[¥KL8)€(“Ò6¥mÊÝ\§YfûS s›lpç+[¼ºtó']žèþvi•¾ÁOޤ0Çœ]p¦®8@"§gœ«Û¯j¿ª™ý ³Ëjqg£‡V¾•Úæ…mwü¨´Jßý{ßßú‰'mötzaŽ9Èe–U8²Ë0ᤠ Ëœ;9öåäš“kfW,ü³ ïïÚ`Òß^úhE‡¹N,–Oó]ÑaŸòC-8£àì\e€Â{ñû‹s’~èî«ÿ3íÛ½qøÍÏ~>䯇þ”º·ÅÄ¢­{7/™ýR÷U_5î¤Z?«Y/mIáí®æw5ϘQ%£J¬žë 6 `ÂI @D|ðûƒy¹÷ßùY‡~è-¿üÙé¤K¿Zºâ᧯Ý÷|ýWf&?ð`Õ·?otw½´ívgRÁW‚¿ ¾3xÔñüÜàȃ³p5ŽÇ‘®GºÆæN2uJöïŽg‡–´þš·>hzïM};O¹wò7÷×|¤Áü¯žzòžVï^õÜÌ;¿ï'­:xÒ’Å.vî¬J~7ºÉ“†ÖúHŸNm×ÌMªqÛyõ·_rl?·ýØöc¶L››67w“« f `ÂI @¥×H¯‘·uÜøqãí;ž[~ÅÁG몇Ãm·==kõ¬ÕÙÎ^öú}‡sg8hÚ i™ËÓÆ¥ËÝઔ `ÂI @ÄåõÉëû{ê’Ô%9»ë6îàžÒº©üôàH‚£ruJÞ¦ó6—{ïˆ7G¼™õnií ;ú·£3v¾þÍëßdÊ‘1"ök× ,RN `Êœ9b¯_¾~yn§‰•&V:üH«§Z=uàâºükÁ¿ü”à'š<@8m{rÛ“ygÎÈœ‘™=±GÝu3ÿëôš§×Ü[ï%ó›Oóiƨ13ÇÌ<Ôsu…Õr†gLϘ»Ú̀⣀ÿÇ®U»Vå-J]‘º"§cÁWL ¼É}>÷ùØ—+_^ùrNß÷¿~ÿëœë??÷óss/3 <À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "À¡ˆ0@D(€"B  `€ˆPD„ "Àñ¿ßvG ‹ÏQ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/switchAll.png000066400000000000000000002532171431412030200253350ustar00rootroot00000000000000‰PNG  IHDR¤ÆÙgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝuPUëÿÿ}ë”§P (ŠJˆ(ˆHŠ‚Ýˆ‰`wب¨`c¢b ŠXˆb  ˆ ]{¯û>÷ŒßÙn~ÈÜÀó±g®9s$®õ¾®^/×ZU@…P…@Å@ 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀPA@A 0TÀ@©3c<ÆxŒ‚*€‹(uÀ(À@©#@Ù J0Ê0Pê€P6€€RG €²A ”:`” ` Ô l¥Žeƒ(uÀ(À@©#@Ù J0Ê0Pê€P6€€RG Í%ïKÞ—¼ ¯ŽV[ulÕ±”Î)S:S™’!J0€$Q_Q_Q_)ƒK†(uÀ’¾¾÷·h„ÁÅG ”:`I…na¸«Pl„ÁE#J0@у` Ôa°,€€RG P2„Áß‹(uÀ²# .` ÔüX„ÁÒ¥Ž ô(uÀeƒ0˜(uÀe¯r†ÁÀ@©#ø¹*OL ”:`ùQ±Ã`` ÔȧŠ¥Ž@þUŒ0˜(uÀåKù ƒ €”c"C‘¡ÈðnÍ»5ïÖÜÐwCß };uïÔ½Sw´°ka×ÂnöáÙ‡göì3Øgp¹„s ç¨6@ÀåWù ƒZ¬Ú%ïKÞ—¼ €P‰üÕé¯Nu¢¨xòNçÎ;M ² Pè«`ÒÓ¶©©ºúœùƆM6åXõÕ»¾W½Ã³ ÝOÛLnéúκióçγۮ×6³Û©·¹áЦUêîQ±¢xàG©Dw߮·OI>ç¢ÏEŸ‹ž×`^ƒy Ô¯¨_Q¿R²­¡FC†óýçûÏ÷?[ýlõ³Õo%ÜJ¸•@…ÖçðÑÃGm6»Ùìf³‹?Žæ¦ –©þyà¢íFƒÑ†-±ˆ„ñã;v”½Ÿ=²c»k—/÷tnýe´Hÿ‹æƒïc+¬8°âÀ-µ[j·Ô_>|øð)úãjîjîjÞ¹Iç&›Èr1=X, ömß·}ßv¿P¿P¿Pjˇ>|øð‘ŸÞC½‡z%¯a¨ >|øðáÇü./¸¼àò‚ñÕÆW_­ø«U…__‰Þ üBPŸŸŸ¨Ù¡f‡šé/Ó_¦¿¬dKÆõ|êùÔóÙ1}ÇôÓc‡Ä‰"L¦ S)séÉ{œ÷8ﱋ¥‹¥‹eqÆH³WíÊ-N>êú¯a»Ô¨1·Û?ÿQqoqZñ5§T[ÑݼþŸÚ>ä¢s¢QqúÜF·nÝØ_b‰ý…€âÈÞ˜½1{ãí'·ŸÜ~2Öf¬ÍXY"a§®N]ºÞéz§ë®9óræåÌ£Âàg1c<ÆxŒä •O…Áíªc«Ž­:Vüõ¨Â¯/ûÐ÷kÀ¨€’'-NZ|¼íñ¶ÇÛ¶Õl«ÙV³„kÆ( ØxpãÁ_Õ}U÷U]ñ ñ ñ *,»—Ó_N9½î̺3ëÎ,zÚ/ÒŒª7ëaâ M³e÷§Mx02Øú÷ÅÆ&>Í|‹3¡NÏ:=ëô,F¾W®k®k®ë=Ç{Ž÷';Mvšì$K$l/²Ù‹6l ؘÕ5«kVW* Ê0€ü+¿¡ï×€Q)|¾òùÊç+…zâ‹dY8^¹våÚ•kŸmy¶åÙÑmÑmÑm*\|—_\~qùÅÿãnl_e'Åó÷z ˜hª%o¡¯Ô0xÌÈýíRÇx´h¡™VôÖÍi5§ÕœV7 nð  „òûæ÷ÍïûÈç‘Ï#Ÿ9çtœÓQ–3û€ & ˜pmíµµ×Ö¦G¦G¦GRaP€äSÅ}¿FŒJêË©/§¾œº´êÒªK«zl걩Ç&YŽë,ÖY¬P°²`eÁJ*,ioÕ½U÷V-º’;r­?ë÷)èéô‡í´òýJ¶wÃú¿jû°è-í×9®s\Öü¬ùYó™ »‚{÷ îE܈¸qcÉ«%¯–¼’åÌÞmK·-ݶøXùXùX}Qý¢úE• ÙÈŠú~øŸŒ!C2†\¿uýÖõ[ƒ†:h¨, dzVÎZ9kåÓO><™'Îç‰+sm7*oTÞ¨\tŞƭo.*¿¡¯d›1ØA±Ã‘‘7ôëiv•¶Õ†µ kÖJ§‹ÓÅìƒðc‰ D¢‚çKž/y¾duóÕÍW7—åÌn=Ízšõ4ïÓÞ§½O®û¹îçºT|/`€Ÿ«b‡¾_#¤ÊòËòËò ¼x%ðÊȘ‘1#cdY8ž¸g➉{Bz…ô é•Û2·enËÊPí£·ŽÞ:ZZMºö׺¥fš^uì¶+RôûÚ×ã‡w´Ú}¥C¿:Òê`ôÑè£ÑÇìCÙ‡²±ß@éljãÄq¯r^å¼ÊÙl¼Ùx³±¢‡¢‡¢GÉÎìm~oó{›ßF<™ø(ñQâ#* ŠF Pö*Oèû5`à;äÄäÄäÄÜu¼ëx×q‚Úµ j²D£G;Žv¼uòÖÉ['³Õ²Õ²Õ*R­Ž›7;n&5ïÜê÷Ƨ RlmwTØèW¢½¨Ò£qk i5éý¥÷—Þ_D÷E÷E÷Ù× Œ¬Ö ëÞê¾Õ}«»3ggÎεtµtµô’Ùõ†ê ÕzðÒÁK/Å[Å[Å[ YB–E™@!`€²Q9C߯2É»’w%ïʃG=x4Se¦ÊLY"áÁŸüùFÀ€å±&¡ê¡ê¡êÒ¶qÚÃl­çâÌñ¿v¬Yy¢ß¯Ûkkz%K}C°ËN—.;ٳ৉â…ø¸:quâê쟵ÖþYÍÄÍÄÍÄ%;³7thèÐÐawïݽw÷~7þÝøwã…3Âá e r"(=„¾_#~°‚®] º>ùòäË“/ ƒ- ’%î¥ßK¿—þå-—·\Þ’Ö0­aZCyÞöäñÉã“ÇKÛ{“æ: }ÅÜîÛÆWÎè÷ëöìÉn1FRß3}Ùó²çeOö&o|¼ññ†çqÏãžÇ   Kvf¯­][»¶öÖÃ[o=Ó-¦[L7¡¡ÐPhH…¨ €~,B_i€R'Ú!Ú!Úº¢ÅŠ+ZÈ Û6µmjÛôÜçþ;÷_ŠIŠIЉ\läCá¡ð°×?½þéõdŸuST§×¶Ëm3îÍM¢ß¯Û-·­DÍKëîÝ?º³€|J®Ÿ\?¹þ)·Sn§Ü,ÛY¶³l'Ëù}íÙµg×žŽŽŽwww§ÂT<À²#ô-`à'ïïï~9â列#6ôÝÐwC_Y–ŒMŸ›>7}~b艡'†~úãÓŸþ(û-:+>+>+õñ˜ñV#[¶ó&îýFÛn¼fÇz}î4[£þño®Ú»jïªBž'ä±×€üK5J5J5º`yÁò‚eç9çtž#Ëù}霥s–ÎyjþÔü©¹È@d 2 Â”wÀ%Cèû½€ù0H$ zsêÍ©7§¶ëo×ß®ÿßëÿ^ÿ÷ºdKÆ666‡px@‚k‚k‚« Ä‚¸4:žæææ-­'WÏöÚc¼ ·è6¥Æ˜Úí§I«áÍ7;ÜìÀ.åQú/鿤ÿâ{À÷€ï¾ãúŽë;N–Hx^æ¼Ìy™aݺ…u˘ÿ0ÿ! |!(>B_Yòê¡ðPxøþüûóïÏï½½÷öÞÛZÕ´ªiU+Ù’±Öx­ñZãÝÿpÿÃý÷Oß?}ÿT„0Ù»¹Lc™Æ2 Éß8<¬y†„»Åo¯6íåh¼DÚæÌ™?’ÝÊ»ÌÍ™›37ûùúùúùÚýk÷¯Ý¿²DÂÓšOk>­ù}ÅûŠ÷ó´ò´ò´¨0òŒ h„¾? 0P~ˆ± N˜ž0=aúaÅʇ[¼iñ¦Å›’-«vRí¤Úiûœís¶Ïyþ&üM¸0\. /~w===¤ýüĦ£:Y"ÖýŽ6}¼CǺ5ö¨¿^²ž'œxpâ;T<ÙáÙáÙáA‚6mp˜î0Ýaº,‘°£†£†£F°k°k°kNëœÖ9­©0òƒ@¡oi ʽ¤Ä¤Ä¤Äª'TO¨šÎ5k:W–…ã îÜ7¸¿\órÍË5b±‡ØCÚïu¹ãrÇåŽäOؼÁj­ÞkÝ’µ/´‡·H—6: :p2€ .÷qîãÜÇ¡uCë†Ö²qÊÆ)e9³2<Äÿÿÿ™âLq¦˜ ð³Hºä}Éû’7¡ïE T@)õSê§Ô?ûâ싳/lîÚܵ¹+ËÂñŠE+­X•••-:(:(:˜q?ã~Æ}i_Ÿn7öb‡‰D¹²´ÃêèUiXãïv¿é~Ó•MþªüUù«<üñð¹£æŽš;J–3{ÿæý›÷o~ÕÿªÿUÿt—t—t* @Ù $ê+ê+êKèûc•BÚoi¿¥ývyÀå—ô ëÖ3L–…ãAJƒ”)Iþÿ•†fgtVßÊÞFÝ:ÕÂ@²ÂV×­®[]g> 2 2 2#í"í"íœSœSœSd9³wíÚµk×®']œtqRêõÔ멜k(ÀÒ|}0¡¯ì€J*ãdÆÉŒ“7ÖÞX{cíà탷Þ® ³¸6#µ›I|ûÚ¤ñ£;¶o¶û?C•½ßx¿²Z¢Z¢sð5±ºX]¬­­­´ÆxñcYÎéí¶kØ®áé'§Ÿœ~’|.ù\ò9* €ì€P6€üOöïÙ¿gÿ~kέ9·æŒV­0ú;–‰Ûn×Xõßt‚ÛÛž¸Ûå´á/’ÕöÜî¹Ýs;3P4± ÄÂë¯W¼^±¥Í–6[Ú(×V®­\»d‘p볭϶>ëõÅë‹×—ĉ#GPa¾0Ê0©r5r5r5Bê…Ô ©7Ñv¢íD[i‹Â§wmo8‚ÈöǶŸkŒ¾Üþ÷oY¶²leÙŠù øn{„=ž·Þo½ßz»¥º¥º¥jŒÐ¡1¢d‘°N®N®Nî!Bâ‚ã‚ã‚…/Âá e@`” `ßaÐÞA{}ë¡Ä£ºZ&²-VWQU£¶ŽdͳdÈ>ÀœÈä³ðYø·-n[ܶcŒ90Fg”Î(Q%‹„5ò5ò5òw Ý5t×зñoã߯ ‚‡àA™(D €²A  XÄ=Å=Å=¥-ø Æ[vÔ#¬-vãRË`='ÉšG-ŒZµ™ ( ‰ú‰ú‰ú^›½6{mn]¿uýÖõK +_R¾¤|iË‘-G¶yíÿÚÿµ¿PS¨)Ԥ€ʉeƒ@±$OMžšxÙô³<¥™ž›:¤hÏûo•ʃ¾5ñ¬;_EgëÇvš :ÞïlÛº—‡t3wöÏè“bò»K®i}m×Â{‚ÿï_¼å+.Pw̶'Yù¶“ÛNn;™™ évévévW'\puB?Ï~žý` ÿ Y&”w9usêæÔ ¶ ¶ ¶·Üþqûe‰„ÒÒÒƒ^½z‘ššJ…Q(`kÀÖ€­ëœ×9¯sîiÖÓ¬§™Ò¥JŠ?»ê¯ª¿ªþªAÇtÜu›ë6×m!C:†t¤¶dA €²A  XF­µfÔÉ¿¦fkdÓEîîšýê_i*Òs²³=¼-ºÝíæûä?éUõI,*ž¼?óþÌû3ôNèÐ;SÏN=;õ¬,‘°Ýv»ívÛýÿòÿËÿ¯Ìs™ç2ÏQáŠ-bOÄžˆ=Î9ÿåü—BR÷U÷U÷Ý}l­ÕZ«µV²u–-[>>•u*ëTVr—ä.É]¨ðÏ•×$¯I^“Íû6ïÛ¼ï{Gsè\Ý 1§ou½gxþóàÑOÛÿ€—•Ä´nhùêÐÇŽ~--»èhõ«Ÿý½½:¾úøêã«…ëÂuá:ã (mÀŠeuãÕW7–\Ìú8eT5ëæò‘vïÜd±ÚÉÂ^~¥ÿA3H¬ætÉöyѱn´Ý0‹ ù€Õ'©ŒWêI €Tu„:B………­Æ[·«¬SY§²®d‘°Ñ £AFƒ¼þòúË믟?~þø™—ÏÏÏâÔ¨Åú£5焞b:»ì¯ÐnõþØf|ç}Zõ£ŠÓ[ýú7ôo¼¼þòúKb`@)"P,^Þ^Þ^Þ’ËX‘§†x™_’‡ˆ´~7åýŠ…½º7|À4ÓfÅù®k½zEÈs,Vp:gûT²‡º6º6º6ÌL¤:.Ž¿kù®å»–»âwÅïŠoÒ ¤AHÉ"am7m7m·ý/ö¿Øÿ"®{\÷¸îB’$$QfÙô-è[ÐwiÖÒ¬¥Yŋ͟­¼õ2²>ûݦ­ü\³%äŒ|j­8wƒñî¦3г³=f{Ìb„!†9ø±€Ë]‡»w$—®.èu`”(‹nz]U]kO/ìÕ)뮦†C‹þú÷—F´kW¿ðMÀò§-;¦ƒé7îwI•2*…™ ÀwÈ2„Œø?ãÿŒÿó`öÖ Ô Ô ,Y$¬¾Y}³úf·1ncÜÆ¼óvÌÛ1ÂVa«°•2ߧ럮ºnÒä‡I¢«½"Úl£ÎÌ´£c§wh/oOjùF¬6rE»Øqí ´ý?îA³fÌš1krss™€…@±ÄEÆEÆEJ.Z-4k“Ó¬“<,´9n5ðjô¿6üRûŠ²ê‘«&µ<ú6Â~ƒÕ™FU±Ö :ÞïlÛº.¹¦õµ]ë®QjS+OÚbœü, >í2$Öü¹dw‡íÛÆÌ@v‰$8:óèÌ£3gÏ6ž]²HX©½R{¥ö›l>²ùÈk£×F¯Ä_Ä_Ä_¨°¤WÞ¯¼_y]ÏÖÛÕ¯»îõ"»Ï–å?ô•ÖÞ¿5p€é…¢·´E­µZÔJù3åÏ”?™Ù(–ü©ùSó§J.WiEÕÕS.‡ÅµO£ÿ¶~¤ãôß›Ú5Š¿Pû|â°?-67zRg’òê¯ÿ·AM©Í–‡íòhÚ±ŽÁ3Éžßov¿ÙýfÌLJCò§äOÉŸ¼{y÷òîÕîM»7íÞ(È`õÕVx~óùÍç7Å5Å5Å5+sm#""Š®˜«S»Üæ7ÄÕœNÙ†—ßè÷ë6{ݸ6çM1L×z*u³*,TX˜X%±J"OÈ„¿Xø–Ý-»[v—\­J?8öa‡ò°¸VØŸ¥‰¦³µC,uš©.,|7paÛ>F³ Þz·MíWêŸé9ÙÙþz+ ÃãzC•m÷MÛòBãùò°E]öj-QûÆ á—F_}iÄœ l¤¦¥¦¥¦]üpñÃÅÝ~éöK·_d‰„û9÷sîY5²jdÕ‚W¯ ^U†>ñ|ÄóEWæöñ~}L^WŒÐWZ{ü÷.¿¶:Xt’§$OIžÂ~(`ßaÛ·=n’KT û.5)?ËjE?ÆYÚŸÊÛß³7޳±±—¬v­ãµŽ×:îáìáìáïïï%ä ¹B.ó€²”~.ý\ú¹k†× ¯öÛÿmÿ·²DÂsüçøÏñ$z$z$ÊwÊwÊwªHµŠ×‰×‰×)º//ÚÙZö¨ØÑï×ímQ¿i&_¤U£I¯&½šôÊz–õ,ëûà{ø¯_;¾v”\¢©Ýü½¦våY°+›öÖ¦¾ñ&û‹³d¬¹Gsæž=š{4÷h¾‹zõ.J¸*\®2c(KYÚYÚYÚffföóíçÛÏ—%ž79nrܽ ÷.Ü»{:÷tîéòX“l—l—l—ê Ô¨KÛÒ÷“F4n÷gå¼Þ{Ø{`‚Ù_Ò*3Xo°Þ`=¡ð@±øâ q8HÚUºÿØç–Üþ¨¶ÿ$í•ËJ¶d\g\quÆm[¼mñ¶Å111‚‘`$1‡(K9Ãr†å ...p¼çxÏñž,‘ðØ ±Acƒ‚4ƒ4ƒ4³OfŸÌ>)ÿpœì8Ùq²´-z6ü•W}w>ô_Ùv·´*ííí±7ŠÀwÛ¢¸Eq‹¢äâÔÑ”Îû[d Oö6qò¨QÖã¾±þ7Za´ÂhYŽ×m[·mݶ/^8ˆÅŽbGæ3e)¯c^ǼŽ÷çÜŸsδðiáÓÂe9³³f?ÌÞ¯‹_¿.™£3GgŽ–Ÿ-={òìɳ'¥õüчA.fN\õ}Ýžï–iä(­bO:<éð¤{ 8€|·øãñÇãK[œµt²·=ž,íª æš:%këaëaëa›››{~Íù5ç×tÞix§á²,/±lIJOŸ> õõõc†P–òóóÃŽ‡;>çüówÊrfïs¶ÏÙ>g}u}u}uÓÂÓÂÓÂË~‹>UûTíS5i=<¶¢sd+ž#µ]n’Úì•dÝ”+=Vzœw/ï^Þ=ö@Ñ€”Pÿµý×ö_+¹8ås¿ÇÝÖ,ê•°My4ft{©ïýMóKóKó“‹´«iWÓ®^I½’z%µOÿ>ýûô—eáx~Üü¸ùqaÏž…=ËÏÉÏÉÏa¶P–DDDžî|ºóéÎeµ–ÕZVK–3{§k®uºv>è|Ðù ”‚”‚”‚Òîÿ(ÃQ†£ %{boмYÃËBÁx§Ž¶\õIkóÕwÙê5zQgªò7®´·ß>~ûxö@Ñ€”PääÈÉ‘Rßè–{Òñ›g,á}÷==Ln6ó“¬çò‰Ë'.ŸXüÑÉìžÙ=³»Ÿ¢Ÿ¢Ÿâ°_†ý2ìYާ7™Þdz“ûÇî»,oPÞ ¼AÌÊ’Ø^l/¶aöÂì…ÙºŽë:®ë(Ë™ÝÂÙÂÙÂùÔ§þ;õß§˜O1Ÿb~T?Þ„= {"í÷¦ôÓªýR®÷ŠÓ>ךná"­’IÎIÎIÎìi€Ȥ÷ï½ïý»ä²Ô¶Ùí4_Åâ]ñÛèÏÃöZÄI[æû¼çóžÏ{d©l·l·l·ÛŸnºýiìÔ±SÇN•eáØIÃIÃIãŽÁƒ;9Sr¦äLa_ L5š ÍcöÄì‰Ù³­õ¶ÖÛZ×.¨]P» dgöV­ Zxjyjyj}\øqáÇ…ßÝŸL!SÈ4ëoÖßìO"9Ý®ënÃí\ï}oëìÛÖS»«d=çžsxÎav€4ÀdòÚöµík[i‹‰¯4í¦XŽcñ®èVÔÇi‚íIý_ê™ÔŽ”¬áν;÷îÜ[c—ëžëžë~ÏåžË=—ÉÛ&o›¼M–HØ>Ì>Ì>,`FÀŒ€YVYVYV씩KÂ%áÒ» ï.¼»°ûåî—»_jjj–ìÌÞ̰™a3Ã}Iû’ö%}ûö!Lx'¼ÞIûåcÇ<Ž‘ü9êZ*=•,E¹NÇløêûÞ6mäØZI½xiÒÒ¤¥L|€$`?ÀòeË—-_&¹,Õ¸z%ÊÛòº;vµ)` OZ»ù«¡zÒ–öòLóLóLËfó‡äÉòèÁ£Ì™2gÊœ)²DÂ,X °¸6ùÚäk“ÓCÒCÒCØS(S9BŽ¿"~Eü   ‹æš7jÞ¨dgvµFjÔ휰sÂÎ ±1±1±1ÂRa©ð¿²¯_ÿ¾þ’ßå?ªÏ•6q\ïÉÒîìÛþ_ýq’µ]¿rýÊõ+™æIÀ~€œZ9µrjI[.œù‡QR“É,ÞI¶¶}'™ô—V·³Ì~0ûçŽlÁã‚Ç#Â#Â#Âk8×p®!K$Ümt·ÑÝFû4ôièÓðËß_þþò7ûe/éߤ“þ=6èØ cƒÚÜos¿Íý’Ùkݯu¿Öýåu—×]^÷ÜFACá?q'?Û®údºxÙØ1L¥þcÁ‡yó2«_#ðÄ…‡…‡…K[œÚbe Â^aûÂoØGKiµZ]uuÕÕUås”ÅUÅUÅUŸ»>w}ßê~«ûÉ [·³ngÝÎ{“÷&ïMŸÿøüÇç?Ø({Ÿû~îû¹ï3:gtÚë·×o¯¯ 3/‡Î¶ú«¾ÕÎ42Êo2G²ÎÁí‚Û·c¾F às/p/p/¶è-t³2Ì­Ì‹wïrìs­¾H«ùAóƒæE5D5D5Êˈ‹ʼnâÄ×½þëõ_›‡m¶y˜b”b”bTÉ‹£Œ£Œ£Ž^µÆD¶?¶/vzn›"­æùó;æwd– (šššÝ‡vÚ}¨´…*·®í'êï¯ v#=7Û_tÌùÚýµûk÷ ;!> …qÚqÚqÚûwîß¹§vKí–Ú-K 7lÙ°eÖ»›ïn¾»ù»ï¾(œN §Ùï(KÞ¹Þ¹Þ¹’gê3úÝúU'²-vÑj“YͶIÖ<Ú)Ú)Ú‰9 (D  å8ç8ç8[‡Z‡Z‡J ó_6ŠÏn5NÓ¦KÅ[¤;Ù¸ËcCÕ¢ã̧sŸÎ}:·rÎ>>øøÀóžç=Ï{†††%‹„U2T2T2¶:ouÞêccc"¨ j‚û ¥gâÞ‰{'î•Kû,-:Æ{²s°‹y¹¿_äË/c"Û¿}N?RóZÑÛû¬àYÁ³fÈ×’u“u“uO]>uùÔeËi–Ó,§)È`íúµë×®~ý$ú‰¸“¸“¸à( „•D•D•DÉ󯸊ÓIÛpy»B»}¥ß@“ØÑ¯ô?hé8ý÷¦vÚ^Š+jmÔ׫ױöë‡t5¨vyCÏ)­ãÅjN—lŸËçufêÖ1'Úß“¬¹]]W•€ÿ!PFDMEMEMgÎ6œmXth·xŠÉ½fÁé¿ÝÑap¹‰~]Ç[wÔ??¶ûr£Eo]ýœú9õsâÅ-Š[Ĭ(ŽTëTëTë Ã/ ¿0¼³ggÏΞ²DÂK{-íµ´×Ó&O›¨7õ[½@€üDÑ)Ñ)Ñ)´i5Ò*NP·ú¥ù)݆ªŽ°k×üg-·e_××fœwz73Ã,µ^Ê‚Ò?Åéùé9§çœž#ˆ‘ bÜKCæžÌ=™{ü"ü"ü"ìÌìÌìÌd‰„§Õ˜VcZÐÜÐÜÐܼúyõóêSa¾Y%²JdÉsèñ„.C[=‘‡ˆôMÕáÎV)¾«¥¦pAu‚R’¢cÔÚ¡ƒ-4¥}}aÿç0¶nj.ÿ1ðÌÓ­›5ÙF †ÀOV X X ¸ë—]¿ìú¥ø®§ê€ÚÝö[ØV30Hé5¦Uû¥¥·Äæ[¥g®±ù g z¿‡CÞ y3äÍÇ /|¼À(—½ìWÙ¯²_yyy9¸;¸;¸Ë Ë—1.#x~ðüàù9º9º9ºT…>ÿòù—Ï¿ß ¾|Ëm¾Û|·ù=z:ô4b<ÄxHÑóªÞÌz3ëÍ´]e»ÊvÕœ¶sÚÎi{Ìè˜Ñ1£Q„(B$î/î/îO…ȧÀøÀøÀxÉ#[àȾsL†ÊCDºü¾™¶Žqa¯Ö÷³ÈÒýXœ(7¿›ãq[ã·~ý¤Ž­Æ5Ž“·Øu@»´æ¾Ài€È‘ĉ#GL¹>åú”ë% ê,£.T=´t©iOíó§uõ0ÜR­JÛçÒ–Ï>L±¢íåŽ=û·~¶5µÝäæNƒõt +ÙooÙ¨e£–ô{ÐïA?FSÞä>Ë}–û,´ehËЖS.M¹4å’,‘ðð}Ã÷ ßçÞÿ¼ÿùÌôÌôÌt*\±å¹æ¹æ¹† 9rdfŸ™}föQ(:tè p}îúÜõùëÐס¯C òÀçˆÏŸ#’G­GÙƒV™M’‡ˆtÈ,ݱ < {uûJ¿&±ÅÿÞ¯·Èøˆú”ºwä-öÜÚézË(`€4ÀäT\ϸžq=ø-ð[à§ Ç:uêÔ©S§Ð^¡½B{1jåKþÆüùÏ~<ûñì¹ëæ®›»N–™Ð¿Jÿ*ý«\=|õðÕÃé³Òg¥Ï¢Âå]ŒzŒzŒúüÇóÏ,?ÇœÚSkO­=õP·CÝuKsJsJsb¤”½3³ÏÌ>3[ò9kÈVóãò‘¶¾ ®\w«ìGÝÆ·ê)ß·AŸVïºÁp0@`åÁba±°øB³ Í.4³L·L·Lÿ¹ÌV«­V[­’j&ÕLªÉàT$ùùù‘3"gDÎp©íRÛ¥¶,ó¤ký®õ»Ö¿ØóbÏ‹=S½S½S½©°ü{²ôÉÒ'K;‡víú£ŽÍ.5¢r¨µJóßêNn­Û¥Î§†¡j©ÊŠ?êç;wrîäÜéÓ²OË>-c”sýÎõ;×Oòˆ¡<äs¹xtÝ5JmjåÉ~ŒýúçÈO|Ò¨K¤¡0@`å’hhhPÀˆ€#æu˜×a^‡Ll0ñǽÃ> û0ìɸq'ââOÄŸˆ?Aå+±¦XS¬­­­½ÆnÝ;Yf”Õ«/V_N_8}áô…äCɇ’Qay{;övìí>»ûìî³û{Çt¤QÏÛšº§Ö0œû¢Í™êY‚Ú±cÉÚ;Ž 1}»Ójþßú£,.Ríö½ýÙh¿Ñ~£}öìÙY¥çjæÕÌ«™’G¡Ð^›N‡ˆÔàŸzyuºöê|Two£¨=†ùYä—¬•·ø€³íƒyÀi€T@ 4zbýÄú‰õu¯ë^×½NŽ?9þäx.]<º¸uàÖ[Gÿ9úÏÑ.©^R½¤zoç½÷vÆ-[·œêáÿ¡ºP]¨þz×ë]¯wm¶eØ–aÊÝ”»)w+Y$ÜÚ¹µskg¯Ç^½'öJì•Ø‹—üìüìüìͧ6ŸÚ|ªøãµ¸Žƒ}³óQNæYÔ–%è-~›}<ÈÖf¬¿ÑîØ6/ûÜé°Pýcñ{{»Æí·k0ÖJý÷Ü{ yäñîÕÕx²q>q>Bª*¤Ræ%ævÌí˜ÛMÿmúoÓ‹‹:uT6×òº8qËñÖ­rƒ}l–Mè[t›}­µóZ·©MtWgFͱ›c7Ç.w^î¼ÜyŒ>€åõ?¯ÿyýä1gOZ‡»-¦ËCD:F›žMc {å´¬e•Æç»rÇË´ 1ïÒ`ê?:Nÿ½©]cCËÞz ä-™¯ßJs00@`~´!EH‰;w8îð•VX©ãªãªSÂHXãŽÆ;»Úìj³«ÍÛˆ·o#„ýÂ~a?eþ^¾|;øv(NÍ}®o=ÛÚYâÞ¢ÛŒ';^©:ñ°Î²¢·H³½f{Íöú|èó¡3€ìR}R}R}$6&´ôi¼@"ÒÇéƒÞ›yöJñ]-5… —7ôœÒ:¾èïZØß¤Z³î_oQáÏ‘·XëX]Uå/Ài€(#‰V‰V‰V^g¼ÎxiÝ£uÖ=J +/U^ª¼t‹Ë—-.¯O½>õú”ð«ð«ð+–f‡ß¿~EWuÕôIguåü´Ïf±üG¿’ml« ç¬z·û½õ.Õø¢·ôñšÇk¯aV…ÈMä&r“<Â4üPû¢rù J%{8~fË!Û[Ò9¼ÕÒÂp×çDk­Ú¦s®ÉÿyË{ÍæÏ45åíí¿yÙŽkmIn—QM£šF5™™€BÀü4ɮɮɮ§]O»žvµò·ò·òWÁšek–­Ymmm)n*n*nZ©‹"„!K·.ݺtëÿ#ïµÅlUy }¿ÑN Ö±É~çM‹Þê ç ç göA²°˜c1ÇbŽä&[\C›Îò—>ÒÙ^»¹VCŸâŸO{ÕkºN½gμq{m\å-ŽM´omµào©?³øÌâ3ÌI@!`äHªGªGªÇEƒ‹ º$wIî’,K$ìbébéb¹6rmäZQUQUQÕÊSI—l—l—li•évßòÚæ4‡€¦ +Hô+Ñ>Jöja6¡è|;øvðmö;%³¹þæú›ëK[ž<¼Û\IÞ›\x§ïYºcxj]¬«¡œ¡â£¨SkP¿_¥Îi‹5B ¿æë»‡åm+NþÓ审ŠdÍoZÜ´¸iÁœ"@®¥;¥;¥;]]uuÕÕUýžô{Òï‰,‘ðÜ s/̽ðxãã7æoÏßž¿½âUl[ö¶ìmR£ß™¿wn2IärËölE~¿nãͯLlç­lªÔ·VUi5‰9>r<û€ïõ8âqÄãˆo<‘â_s?ÝæòJ>ZÚŸÊgÏ ÛnçšØª­•¬ù‘ŽG:é˜b’b’bÂÌPÎd&d&d&øïôßé¿søôáÓ‡O—%žòfÊ›)oB»†v íš››[~+sIé’Ò%%©÷C_w2Ñ^)ø‡îéhR¢ß¯Û››Û/iЪþY%©AMª’T%‰+Cß!'8'8'XÚQE¨9þŸŽÿÊs˜Z¾Ú G‡ºŽçÌnúÜô¹éóCO =1ôÓŸþøôs*–ù(÷ræ4Ìilll?.d\ȸY"a‡»wîdÇgÇgÇË^æ½Ì{™'m‹f¥Ø‹šD wBtl[٢߯ÛÏÛoê´(­J&ULª˜T)¸^p½à:û€â=,zX´äQåYó¡;,:Üþ¨öbÃÚ­5Kvf7°1°1°9<àð€Ã\\\± ÄÌ^¨¨€¨€ò”ó”ó”Cß„¾ }35zjôÔhY"a;';';'¿T¿T¿ÔL¯L¯L/9ÚÒYy³òf©÷Uï«ÞW²ç½ï·¿¤~Vv¯¶íÝÊý~ݾMôùÃꢴ±^—³.g]{€â jÔ&¨äñdrX«<-+‚ÛЦŽÓ±ƒþ‡zëëü¦ðƒhׯ5Þý÷?ÜÿxÿôýÓ÷O…0!Lc>@Å@ @¥ïŸïŸïV/¬^X½yGæ™wD–…ã¾}ûú>÷}îû<]=]=]ýgm×êØÕ±«c¥õ3ýf`ëK }%Ûàд"­núúúì5Šu~Y’¿$‰´ãIòÕÑ{ÛkâÊÒFtÒÐÜáOnØa²ÃdGÂô„é Ó+V<¬ØâM‹7-Þ”ìÌ®ÚIµ“j§ís¶ÏÙ>çMø›ð7áÂpa¸0œå0•”HK¤%ÒzªðTá©ÂÒfK›-m&K$Ü9¢sDçˆ /,¼°0µWj¯Ô^¥Ýÿ—{^îy¹Gj„9òø ó‰½E·ëµ§ÒýFTиJã*«ˆ‚EÁ¢`öÅáºÉu“ë&ÉãÉŠ fÎ:qei»›5™§ö·ÿúu÷ëî×]r,’““O¨žP=¡j:×t®é\YÎïömØ·aßË5/×¼\#ö{ˆ=˜í ÿ€Àÿˆ;ˆ;ˆ;D߈¾}c­ÃZ‡µ²,[´€âHII‘vÌøµO–É_„»Åi÷ é°¹E/É63kfÖÌL¼R¼R¼òÇŽ]ÆÉŒ“'o¬½±öÆÚÁÛo¼]–Hx¦ãLÇ™Ž«>¬ú°jÞݼ»ywÙ; ,Ùd ™Bf¼Z¼Z¼ÚÁgœ¡›©›©›Y²%cu;u;u;7+7+7«·}ÞöyÛGØ,l6þª(ý(ý(}Éïj£yNeºÐ6Ô ãD¹%kcã.ZYÍ—ú ÑN¢N¢NLvÅáåå%íxòyÃèÄöˆx¥µÏµ†~±p–V½°Åa‹Ã—Í8fÿžý{öï·fßš}köh…Ñ £eI„&̘0cÂŒ»{ïî½»7çKΗœ/ì)Pz€@©H<“x&ñÌÑíG·ÝnìeìeìU²%c¥¿”þRúk³Ëf—Í.vÓí¦ÛMÿƽ¿»wlãLˆ+{kw±ûo GIVøNÒ¤;IÌjÅ2J%Œ²íbÛŶ‹äñ¤óZ­ºõÃEAN;lƒˆ{¿nÓýÆ>ï°TÚÙpá …ƒþäG+çjäjäj„Ô ©Ro¢íDÛ‰¶²D£ŒG2L L LÉŠÈŠÈŠ`×€…”‘äüäüä|ï)ÞS¼§X+X+X+ü(Žwómç”}\ú¢Ç‹ü¯{RÞàpŸãÍm$+\ø8Pæ0€âKÐJÐJÐ’úÖØ§&[›&ôýß789Û^éÞ´É4µo¼ñWQ¬(VçtÈéÓAÞF9/%/%/åႇ .˜e8Ëp–¡,góA]tñzÁõ‚ëÓ2¦eLc?€’!?Mª*¤ >Õ|ªùTëfØÍ°Ûw/o¼5c¼ÞœŸ—JÀå>®úgÇ¥U;³wfïÌÞÌ[ÅwÃñ†ã GiG• ­ ô‡VæèWœ6þ—ŽLú£UïÆÏ¤U)úZôµèkåeÄ æÌ+˜îîîºèÅ¢‹^È ÷Hê‘Ô#éRà¥ÀK_‚¿ fŸ€â r$ýFúô×z_ë}­÷€ü;àߢ—†ß$^˜oÕŽøÇ¶ÛšÌ~Ö|–ävÝz|ëñ­ÇÌRßkˬ-³¶Ì’v$w›Ö~¾¾W¥‹~;]±}1uºáv­}Ò*sIá’Â%…ò>ú¢«¢«¢«ÏÆ>ûlìJó•æ+Íe‰„;¼èð¢Ã‹³Ög­ÏZŽøñ™GÀ7¹––ž–ž–.m!XÐ Uï¨LücÛWNg¯ZΖܮYÎúsÖŸÌIßí³ðYø<­Ï´>ÓúH;ž¯øÃ¬Ž8i|µŽ¿Wìè7g׸£6{†Ýгl¨-­{Fï½gtEb±ØçeÊË”—)n¸q ,‘pÛmW´]q|ÁñÇ$¹'¹'¹³Ã0ko}Þú¼õ‘\ðó׈—MëýÜ ´¢ÀCFÙº~c•}Â:…uB´-D33|/ÑÑчÑJ£•F+I óúoÒÞª±.½êX׃*^ôû¡÷ˆùí¬šN®{KeÔWo4Þh\é&Ça‚0!Ö0Ö0Öp‡öíÚõº×ë^¯{É"aýxýxýøCM<41A-A-AM( „öA•0k—^\zqéo¼ñ·Û„6Mä3~\ÍËÊlŠ]§nçvn|«A{åuÜT2jÝ2 Ó«Y·ñâÖsšù~V¿ñ°½¹<ÇÀ}œ:¨GHn]zDzD:ÜPB"‘ÈgâÙ‰g'ž-:Æ{0eàÓç#ú½ô²góÖþEo¯«‚«‚«3äž Ï„g >|0p÷q÷q÷iâÔÄ©‰SÉ"áÆÕWk\moí½µ÷Ö~?èý ÷ƒ„`!XàÂ*,` ×–ö_ÚiÉÅÜŸ.m7Z>`å…µ½­u± œyìÄ sù €w [pAÿÑ{ô/Ñ¿DÿÂÌ “UÂ*aÕÚýk÷¯Ý_ôÑrn¢ñõ¦«ÓÚíÖA·|…¾qG*¶Û;°žŽ–Æ»¢·ñ专ãNŽcRGB\B\BÜáüÃù‡ó[Z´´hiQ²H¸nTݨºQ® \¸.xÓíM·7Ý„.B¡ P1¹Öej—©]¦J.Ýæ:ûØ<”ϸÐ"Û±W›-¿Ökç߯çâ65ò˜ZwèD­µµª*ÜWèøõWŠÕîõµ}.opž'&‚ävù.õ]ê»”™ àG¹põÂÕ W‹Ú4·õ78œ3gÜ^›mòú¦ö³­ýµÕ›Ì7ëþ[œ-z0àÁ€˜²ø4ðÓÀOOäÈ;‘gjj*Ë…×ïZ¿ký®9/r^äˆWŠWŠWRaå0k***ßxÏîÕÐå-V|§h«páFK·Umô ¿æë·þ÷)ëu¶†CåÿÍÁoþ8bõ·d?wõÙÕgWf&€ëMÄ›ˆ7úŠúŠúŠÅ ê¶*¶Smnœ¸rÔëI?7ô}:üžUÛ³Úx7S-NϸpàšÒ'¥O ÇÒR‘âœâœâ|îü¹óçÎwTê¨ÔQI–Hxù”åS–O‰53V/ü®&ž ¯©èÈÛ}ÀY5nØü"Yÿq#Æ7‚™  ´}Òý¤ûIw²0Y˜,”,¨=Bÿ²æñƒN¶ NßyÐQÛí‚æø:•‹Žx³g3³8µï"“ánoÚÖ÷0_û£†_Éú°®ûºîëºçþûwîߌ©üÈ(È(È(¸ÙófÏ›=‡<ò`ÈY"áftšÑ©ðÞy[ò¶äm¡Â•Aî£ÜG¹.Ö¹Xçb¡&CM†š(”²Î :'x=ñzâõ$9#9#9ƒQ€4À@®I.~ é4®ÁŸò¿ òñ±úPœï}Ýà\WËòü èœÁÚ6^’=:,tX(3@Yz×ö]Ûwm§oŸ¾}úv¹·nźëV¤¨¦¨¦¨2våEvïìÞÙ½o·¼ÝòvË1íÆ´ÓN–90¾Ëø.ã»Ü‰»w'.çlÎÙœ³T¸Ü{,<ßè~£ûî6¿Úüjó«<mt›è6ÑmrêÙ©g§žåÍÈ›‘7ƒ@!` ×¾ñöÄ›wh<”Ï8w|ð›â|oöê ];¹€w‰mvKöÐ.Ì.Ì.Œ™ àgù²õËÖ/[½Vx­ðZÑt`ÓMþܦB;…v —n]ºuéVöûì÷Ù!×>×>×>äaÈÇ“&Mš4i’,ódä/#ùK`ËÀ–-³Öe­ËZG…å_Öœ¬9YsÜß»¿w¯PN¬|¿òýÊ÷É“?&d*3` ×$¶:57kQEy¿øMÚ«ö…ߥ®TM!QÞàL«[£:<ûÆ]MÇ?™ @~|Œüù1òL•3UÎT:èü¡óK/\o=Þz¼õÕWG\‘Ú<µyjsê_yäkåkåk=jü¨ñ£Æ³ûÌî3»,siàüóοÞúzëë­3Ô2Ô2Ô¨°<©‰ÔDj^Æ^Æ^Æ%Ù)õ†xjõ>“¶QÛÈà™Ñ©c¿÷ìu£s=,^¹¸½º±ÎÂ;c5§ö\õ¹RóïíÉÆ{lì‘]%»J6«•—€@®I.fiÏnôYåAyðµ^;ÿ6(ü.ƒ´ëÖé*op²Òu‘õ7êïœêœêœÊÌP^<5xjðÔàÊ_Wþºò×Þß÷þ¾÷÷åó–Ï[>oÖÌY3gÍœúh꣩æ(ÏQž£¼jùªå«–P9 r@åú®ë»®ïŠv‹v‹v£†¦À³À³À3Â(Â(ÂhqêâÔÅ©²DÂÝv?Úý¨OšOšOÚ— _&|™@…ËRøÀðáœip¦Á™âŒ—VhÃZʹ‡]–Oj925Î/¿ý«Ò¾6Ë¿{×Ù¶ïùA›7ºj)2º£z¢ø³ëæØ›coŽe”*` ×ÔÞ«½WûÆc÷„A¡;6·xô«ÞÏ5ƒŠó½ƒ¶u®ÞÀ¤ð»†Ì겨§¼À/CÏZYö•¬ü¾Ô}©û€øÑkÑkÑëgÏ ž¬ê¼ªóªÎ²DÂí7µßÔ~Ó§3Ngœ>Oý<õóT*üc‰‰‰m8½áô†ÓÅz€ã€ìÆí^Œ9ÓIJª<\­Å]»òk»­Ë•'ü£ówqú?¡Ý„vÚeÍΚ5›Ñ¨Ø€€\ëW£_~5$°²n'Út‘·Xñ¢­Â…-ÝVµÑ—ö]§¬×Ùýú»‚ŽïoÒ¶®üD¿…­ŸÒ.¡Í^ÉÊû÷ï7ž™ @qˆ‹‹¿ZòjÉ«%›†l²iH­QµFÕU²HØDßDßDÿØ®c»ŽíJÒOÒOÒ§Â%“ì˜ì˜ìhž`ž`žPtÍWö_Ü(<®îåÕí&ÉÛÕÚ×mê.¿›íCWÌŸ¨¥3¼8séeðËà—ÁÌ€ŠŠȵõÕÖW[_MrÑê͈ [5”·¸‰gÃk*:…ÿ½¸µÃœf¾×Ûí 1ιpw‹vë¦Ö:Qkí×_ßuœ…š¥¼Ýû[Øn ž1Io®dåcÌbÌb̘™”Ð"a‘°(Ö7Ö7Öwg£v6ªµþÕúWK 7_Ó|Mó5...ñ^ñ^ñ^B®+äRfi¢kF׌®YtU.P;«$„<öÖ¼¥<‡¾ÒÚwO|ü­ºÔ3?W?½è- œ8?p>³ â!rÍošß4¿i’ËUçÓ7/7z-oðí+û&˜ÄªN¨«­èXôr[ µfÃê(¿ òñ±ú Ÿ°uoãÝõZ~ãÞk½l½l=f&?L¬+Ä~8ýáô‡Óû¼öyíójú éƒ¦J kîÑÜ£¹gæÍ=šï¢ÞE½‹® W…«”ùaäÃȇ‘EWoíô©¿ë.»Þó¶Í(ѯd{4bÕ£VC‹ÞêócÏ=Ï‚*` ×$£ß¼:wôlR¿± ¼_s¿æ~æ$eããÐC?=òîÈ»#ïZínµ»Õî’EÂuÆÕWgܶÅÛo[( F‚Qå©äÃ܇¹s‹®Ò­‘îv&Û+Fè+Ù>~:ÍâhÑ8·ëÜ®s»Øï*` ×Äb±‡´…*Qó¶‡´÷{ÿ¿ü´Õ2(YíáqÃã†Ç¥lLÙ˜²‘™ @Ùûð)àSÀÉç'ŸŸ|n¡n¡n¡® ƒuÛÖm[·íŸã^Œ;ŠÅޝbÑÇ£G/º¯ŸŸ{aRQ£ß¯Û”±7´_Ùê©®m$iÕðSõSõSe_(ï€@90-gZδÉ%ª¨j'}-ªW†»²l]:úi.z©Ô¬À¬À¬à¤êIÕ“ªŸ>9|r`–PöRbSbSbϯ9¿æüšNvì:ÙÉ /±lIJOŸ> õõõ+¿•ù\ísµÏÕŠÞÞG¯ö²6­lWzÙ‚”mvˆ5Ù[/HZež¥=K{–ÆþP~€rà^{5îÕ\œšï5útÓ$"ÛÕô¼o;­dKÆ-§¶œÚrêµ#jGÔ²²²™·”½´«iWÓ®^I½’z%µOÿ>ýûô—%ž7?n~\س°gaÏòsòsòsä¿¢ƒ¢ƒ¢ƒV³¬fYÍ’ýnºjnmT™¯ú²Ou±q0öÖïT÷ž´*¥×J¯•^‹}  <"å@ÞŽ¼y;¤-Ne÷º-Øô&¾•½½°o³É'…¤‰{÷&îîÏÜŸ¹?ûÐþCûí…çÂsá9ó€²”Ù=³{fw?E?E?Åa¿ ûeØ/²œß§7™Þdz“ûÇî»,oPÞ ¼Aò¶½›ÿÝüïæ¥>ð¹ý9Ë£\õ¶_ôü[¶—zí7køCׇ®]ó²ó²ó²Ù/äÓÛYog½5:`tÀèYF¼n°îJà s:/ü¢iäPñ´óº ì—(éõ¯¶,AwÛ¸ çwÍ_93³‘i÷yóU=ZŽ0ûE–ßhÓܦ¹MóðåáË×3Ž I\U\U\õ¹ës×箫û®î»º¯,G]ëvÖí¬ÛyoòÞä½éóŸÿøüGqúà1Þc¼ÇxÉŸ6:¨w°¦?×{%kw.™o©?M²ªSæM™7e3@þ€r)ñjâÕÄ«Òox»%´éÊâ]Ñ­ãªþοqGÎÕnW»]r…\!·´Ç1ë^Ö½¬{ááá£jŽª9ª¦, ǧMœ6qZHëÖ!­s›å6ËmÆžò³dœÉ8“qfIð’à%ßýîÞ&ÊæŽßj˜¶´¹Ç³€ÝwN[Zzx„†ÊÒZïygwë«Ôõnn¯>ëªRT½<ÉÅïÕˆ#ŒXðqÏÇ=÷0¾ 8Qœ(N|ý×ë¿^ÿµyèæ¡›‡*>U|ªø´dgvã(ã(㨣>G}Žú$ú%ú%ú}ý» þ)ø§àißûî£O˜U2×{%k³¹dc%­¶É¿%ÿ–ü³@ž€rÌ«ŠW¯*RR×ýR|;K–ð$Û“§Ö†¶•Z·_?üúáן5¦9 9 9 w—Þ]zwé„N:MéAÁ£ÍG›6¿µõÖÖ[[³•²•²•ØkJ[€Z€Z€ZñÇHkO¿ Çýmoxx6Uö ÷{Û¶ó¶í¸2V{ÛÈùso¿ÏÇzëu¬c ŲQØ(l|kùÖò­¥[}·únõÕ›ª7UoZ²3»^3½fzÍn?¸ýàö3fgÌΘI~͘Ë}Vhfs½'{»ëâ‚\ýÉ ïHÚ‘´#‰© Ï€@yf!X][vmÙµ¥äâTÇúÏ•2}ovÈ` ¯°}Ðõˆºi˜´EÕãŽ8þAÞ9Ï?Ï?ÏÿAƒ„ 3-fZÌ´%08`pÀ Ïž7<3.g\θÌnôÆ(&/&/fÞåy—ç].Öò}Ä„+«šŸq¿4«ìC_©w 'Ü}o®û¯íÃkuTz£œWôVôÖwXßa_ì¿Ø±gÀwø(|>ÆiÇiÇiïß¹çþÚ-µ[j·üQosÖ生E/y¾ËïvWÍÖx£Ñô<½FzÁu‡ÕqSɨuKëbAYŽ®ZS7û]n"­ÎâAâAâALgùD ʽäÑÉ£“GK[œê´Õlqý=yGîì±U¨ÌÑï‹€3Ó,kK½Söîè»£ï ™B¦)ÿ#^л wAïðßÃÿ}aòÂä…ɲ,÷ªÒ«J¯*—g^žyyfšršrš2ûTñ%­MZ›´¶åŒ–3ZÎ(ºÎÚG¾×ÍÜßýsÐuù }¥†Áwê…$éošÖ|Câ̢狞/z¾ˆù²øøàãƒ<ïyÞó¼g˜a˜a˜ñ½çtµªc•þ.…nëh,ÏWe‹lÇ^m¶¼èm‘ŸÞŽœß3OówZ?ÛôlÓ³MÌ[ùD *ˆG2I](ì«ß!T£JžÕn6¹•-ú}©|æœe3i•Ñl¥ÙJ³U¶s¶s¶sù}ÑÑÑž¨Ø¨Ø¨ØV X1@–HØ&Û&Û&ûlÞÙ¼³y):):):ì_’^ y5äÕ¢+©ÚÉ CÛm[l=sÙLþC_i­ÙªÝ þ7Néø`à±¢·7(<(<(œ¹?J²n²n²î©K§.ºd9Íršå´¢Ãû6- 2ø]þ¯ÍšîÔœ§2ª°ÏógŒ^Ñ4æùÄÓî›3|3;øÊ[|×ø VÛ“’Õ^ûií§µŸ˜¥ò‰T(S.¦\L‘¶,Øî¢±F½ÒbVwèU¢ßGÍ=w›Y½TšŸŸ_ñf‚xŸxŸxßËY/g½œµaæÊ ›3=fzì„é Ó¦IyIyIy•y/{šô4éiRÑÓñûï¢1–µ<”B•Êoô+Ùt›}µNÑÛ~ýÈõ#×p4€ÒjjjÝyBç 'HßϸdÞî/ù¿Bû?ϘxÚÝb³<÷6§gЛµ’ÕVÿUýWõ_± ÄÌLyC * £Í6?Ú\j>£¯ÐT¡Îë>ç¦[ž¨¨Ñïå ÅEÇT1ÝbºÅt«DÓb¨0TúÆïß¿í}·÷ÝÞWUQUQU±d‘°’’Òa£ÃF‡–%,KXV@_Æ¿Œ_te W9?;ض"…¾’mï _ÎÕ/ºÞÞÞàÇK}ƒøý½äŽ¿–¯øE3*ùòßçÎ~æêÇHÖÍú4ëÓ,v/݃çž?x.y¤=®ºúa«#ò|µÖijá5Âöëžkƪ‡(÷þúOå³ÿaŽú𽔬üជ{îÉÌ7À Rˆ:u>ê|qB»5zSjê~Ùê¿´Cuy^FŒžæídÒ½¦¥Xm_Ñ[dwÖî¬ÝÙ,û,û,{fBÉ$å&å&徸ð}À²¼Q¸ðÄ…ï'.|W±­¤UÌ­‘[#·Fì; ‹¥Ç–[ú†•øæšµ péµùoïºÚþÆ?rf=Ìz3@Þ€JêªíUÛ«¶Åè, _«:ž}¹ñ‘ƒXûÞ0Û—¥½ÐWíòœvŽ[÷ÍžÜ|@ñûÙîE»í^ÄöŒíËãøÊTšršršòå™—g^žÙSè)ôd‰„&/L^˜þ{øïá¿ô.è]л,·%}Tú¨ôQÒú¦ÛÄaÚ]â^im«6 }÷$H«^L͘š15Ù_ dF6Ù|dsÉ£kÖóÛ‡mZ—bz¨£©dåëΩ;§îf&€¼!•Zæ…Ì ™ÖžY{fí™ïèê†Ö~¯øÇ¿‘NM;\¸´¥^뚯|ÏæY®ùîûzz꘩{¼_¦Ó²úЩ]Û5x]²Èз‹oß.‚‡à!x0²ò ãRÆ¥ŒK7ís²…ù àÒkSøÅ·’¬ü¤¿'ý=éof&€¼!*¢ÉÂdará›}wôØÑcGzKë-­·´ø°É„Íí/þGpû£ZóI{ßß+­ÚB=¡žPi E É É É’<ŠzÚ`g˜I\zíÓú'1$Yùýíÿkÿ_ÌLyC TÏ…çÂóí?´ÿÐÞý™û3÷gZ¯µ^k½–\Ì­uWeQ, =‡î#¸ý±­zž•b÷³’5÷æÝ›wo˜¤P´Ä‰HE§ôr_kpéµG.®ÞÒK²ò÷‡Þz(3@Þ•Ô“à'ÁO‚¿ñðçgÃ~v°¶T6÷òŽ’5?qæÄ™g˜“P4ÑiÑiÑi©OSp ßQŸ¸4Ú~A¶55ì$kžr&åL ç/¹C TRnoÜÞ¸½‘\Ìm­½²ª×ÂÚÒhMwílx=[²æö­í[Û·fN@q î7¸ßà~’ÇÒŠ¾/¬ë–—¸¼Ü¯œçuÇݶÖ7ž¢PK¡–BæôÌé™Ó™“ò†¨¤zGöŽì)¹¤k–¹gràRy‹N-b.¾×Wïô„ö+F×;j´ÛJ_i©êGõ¿k-WöPɨ½£ñ>­”»W>¼Íú ËÎn’ÓXÅC#´±Ô{×. —…ËÌL(Ú¹cçŽ;&y=:bÕÌVíÊK°Z^ÚGëOWOWOWg–ü\À@%%mײ¥ÇÜÐòššùì>°¨Þ|£ß,§+[ó[“Ϭy Ÿ1pýYm4ÚO“ìsÖú¬õYë™™P´d£d£d£où=›×ö#²ý±í!ç´ú)|§Î‘#;G^Xxaá……©½R{¥öbÞ”%` ’’\®­7Ó0Ãrˆ¼Å¥jáf3:Wÿ_C‡(UÓšÚoÒ¸”–£çÿç¶Ê0iimóãç8(©·P=äë-jc·>õL˜¼mQÓÉC.MýK²þÌ?˜0gf@q˜ï2ße¾KòXúæó!VÜÊÞf¶¹5¬ÃS…Äò åA˃§žžzzêi²i²i²)s ô•”äâl㑽ëŒ>,?A©AÔÜ1;zÿ¯s{k+Ú¶ô[`¹K(üÓÿ-(õõÿ{+áre•Œÿ³è,g°þ–i­7ü#Yÿ°aÂ03 8.û_ö¿ì/y,µÔÞ«I ñ­ì­W‡•;ZU‘¬ð<÷yîóÜ·Ý:tëP•›*7Un–,6jbÔĨ‰g’g’gÒÇW_}|ŬøQ€€JJr)Vç¯Q9óÏÉOPªžhÓ}Jaß4¬¯öV+N ûõ©nm©gzKÞàVŸ§í –¬¿ÿŸþúÿÉÌ€âÈUÊUÊU’.&5»¶Øz+!nÉÚ¼·wBmÕ¥Õ6® ® ®àÃpR8)œ|góÎæÍîš»kî®Ù@Ô@Ô@T²HX{¬öXí±û}÷ûî÷333…D!‘ÙŽ¨¥QK£–î;»ïì¾³£vŒÚ1jGãC5>ô½sÌ$Æ$Æ$fÎ9Cæ 9ëuÖë¬WöºìuÙë¨0 â!*©o¼=ÑlRõUžò”Ö¾¥ÕB·Gaß¾¾÷÷ÿñÎ`·d¿Nmâ7zÿÍÄcsÊÅ\y €[wYépt”dý/^¼ÈÌ€âs]êºÔu©äu¶÷ˆmM%Ê-Yëùfe§–%«:|ÀðÃü?†$SÈ2ãÕâÕâÕÎ88ãà ÝLÝLÝÌ’EÂêvêvêvníÜÚ¹µ{ÛçmŸ·}„ÍÂfa33¿¢úôòÓËO/ÅŠ;×fm›µmÖ*”!û»öwíïúöí7Zè#ôú0"€ò‹¨¤$—½ô'Nõ[?G"R‹ ’BvþŸ;6l6Ý»à"oQnÉZc­5õN¼‘¬¿÷Cï‡Þ™™P|iéiéiéÒ✗]ϼ°lM [üöËeÿýþ’ZOá¥ð²„#•x&ñL♣Ûn?ºÝØÓØÓسdÒßJ+ý½Ùe³Ëf—× ^7xÝ@üYüYü™}¡<ÏÏÏø7à߀­m¬m¬mäÌŒ¶3ÚÎhûjØ«a¯†1^€ò…¨¤¾qpèä»k’å!"5y´e©Ï×}3ݧ_1àÖçW;þwŸË>—}.›™ ßkÏõ=×÷\—<®ÇéϬûTìpo½íGÂÝâ´Óþ¦«õ7+;f:f:fþØQKÎKÎKÎóžâ=Å{е‚µ‚µLAÝêù«ç¯žÿüøóãÏ‹ÿ*þ•ýBN…!Bȹºçêž«+{@«§Ñ£ÑåúÛœè Ù°mÇ&™tŸ>ü³æËn}ì6¨×þPŸNªûZö3ͬu[ejm‘,¿«Ë.Cº ‰TˆTˆT`ò¨¤$¶t›:ÌZb ©ù>÷%Aº_÷­íÐmm.'VŒØÐÏe‡†dý¯û_÷¿îÏ̀(oQÞ"i±Íž‹Î¶˜B¸[tëï¿§W›©ïTþ;é錄K{S…T!Uð©æSͧZ7Ãn†Ý e‰ëœõœõœõ"## ¢ ¢ ¢ØS~®àÁ7‚o¨ìRÙ¥²«øãXÛ»ñ'lík#³ç9¶±òÄÑ«?àI3yCï]n¥²°Ûž¡ z9ŠùÞÙejjoooÏÈä0PII.f5Qà6þªü¥_÷ͰÆóýMŠõ€åÃkžŠÑž8"nCí;£4æí±Tðø7ô_ùÙ®‰³ænÝ YÿNœ813 dîî½»÷î^iMX“£ÌÎôJ¶ >¾Û¬«K«Ûáû‡ï¾ÿ³Æ4ýFúô×z_ë}­÷€ü;à_Y"á9nsÜæ¸=úðèãù£òGåb¯)m©UR«¤VUTýQõ‹uGï|µ¬†¢æâ)Žk¯Z(ìK¼SµLŸ@£¿iå…¦MõžòGñç•G+V­„ÚBm¡6#À@%%¹€¥^Ó¼Açwò7|Ô¹ê`ãâ|—f\·)v…ßU×Uç}«òv°öŠ‘=殓¬ÿ›Ô7©oR™™ ‹* T¨H‹j>ξªm­Oè[Øæ´ ºh³B7M+¶öpÉZÙV³­f[M¨*TªÊÏøfee 0ÐÞÓÞÓÞS–HxòõÉ×'_¿·çÞž{{räÉ=Âô£Ï ž<·8£ Ö ­…­Žñ?«ŸœX.o×l-ÍܱÅI¡·Â‹Zµ‹Þ ›»6wmî~Rù¤òI…ÑÈ` ’’\ºª•¢’]ç”ü,º57™˜³Êí Q¢T­Uäâû&Hûú6úëíϨ(þS{p]íÂojô g—‘½ ÿ[~¶Kcs»„^KÖ?½qzãôÆÌLEîÁ܃¹i7Òn¤-y¤Õ¨]/Livzõ€CUæè·àsˆƒíŽþ¶—46I}ìs¤I5äÄsrrîÔ¾SûNmÇ Ç Ç Y"á±{Æî»'è· ß‚~ËöÈöÈö`Ÿú^;gsfÑu®ó¨Ù‚Œ•W¿?±[þ_Þañð Õ½êú—§Ýpª8³èáîf&~.` ’²jeÕʪ•䢕yÄ>½à¿äb¹í¤’=ÔÚ×Oìxª¥Ñ¼Õ;CŒæ.{x¤¦Î™1y‹º(›ªµlð¿`[©¯ê@µÞr÷æ`s÷Ð …`ÅîŠi’Û%>!>!>ÁÌÙ½ïü¾óûÎÒâƒÏÚwê,Nð¶Ã„Jý~±·u½¥÷>Í‹ÒêZ?´~hýò;úy=ózæõ¼¿ùþæû›§L+˜V K$<¬Õ°VÃZùéûéûégÊ”9ˆýK’¨¨¨Á$Ñ$Ñ$QÑõÔ?5mý†%– <Ú‡ö‘ÿèW²5{¹G=°^£fÝ­†Ÿ.zK}~óùÍç7æàg!*©5šk4×hJ.Wµé°þÀ™ñòö è‡9g¡VqwÝTG,œcåúLÞîý5{³G7PW²Ï];wíܵ3s~¬ûÛîo»¿MÚù¢Q}õleû¤u×îY­ Ñoöç …63ûEØÖÖ)­&§Žž:zêhÅ› ù_ò¿ä   ˜cþù7d‰„û,볬Ï2ß|ÿñý'-8-8-¸2ïeù“ò'åO”6(mPšÔû}_7;Ù"´íšmw®)¡¯´¶UÝ…ƒöŒ/z¶³8fqÌ‚£1 ì•TðéàÓÁ߸wA÷„c-[y[b+ì›ÎÒ1N 7¨Ž1Øcú›bÖ­êE)N¬³è¿Cÿ-lîg<¸ÑôZöOÛ~pý|µ|.&,ýÛã®dÍ÷´ßÓ~O{æ$”†o<¾ñ¸è&rñ‰µæ'+jô›PÝ÷·v/´_7¶Vù ­îæîæîæ•gVˆzˆzˆz<=õôÔÓSËL–™,3‘%î´¡Ó†NÎ=ôüÑ””””””JQC{‘½È~ðöÁÛo—V™Æ+{ocj±ç€{ˆAEŠ~¿nÛvßöÇeo¥ùªÕ’¤ÕáÄÍ7OÜäh (KÀ@%õ%êKÔ—¨oÜ¥‘Ö,Ñ ¾Oý4õÓÔOÒ* ³k̹…‰5ô•l͇î=}[MõJK/3©wØßÜ}s÷MÞ (#À@¥fðÙà³ÁgÉ%*ÓÇ;Ão¼¨<Ëv¥þ>ーC:áØ1Ó1Ó1óNí;µïÔÎqÈqÈq`®€ìB\B\B\Š>wþÍ,º¾Ï»>O¬>—ÇÐ7uƒßÅöw'­<¡qfÑ[zzÇé§w0+¤_$ ‚AŒwŒwŒ÷¶!Û†lR§e–uZ–,nÚ*´U¨g Ïž5>Nü8ñãÄò[˜Ý‰»w'JÛR½Mãc—¨¤×{ÚûMî8Ô·0ža½EZ}¢S£S£SÙ½¥¨Ôï=¼÷ðÞo,Þ­º<„àöGµF—™î)˽Dö^ö^ö^ Ì2Ê2Ê2bö@ɼ‰}û&¶Nµ:ÕêT+úØ»æÞ”•ºƒ²÷™ÛŒ’ëèW'T«cíCm–MhY»8ç”ûï7¾ß˜™ðÝ®W„+ï‚Þ½ Ú-ìv šã4ÇiŽ+Ù™½YÕfU›Uݲ/d_È¿~ü„·Â[á­< äZȵkRïúí5:tAW}æ¢}ÞÁêºê|huBZ­2dÉ<Â.(=À@¥öiò§ÉŸ&c]jm­µò-rÝ;ÃBžì­ÚrÓÙo(üP( P¸ÖûZïk½Óo¤ßH¿Á|€âËžœ=9{ò”SfL™Qœ£îú Ó\uS’,®m´Þ!¡oúÊÀß;Ìòx¹¬Q˪Åéç¿:ÿÕù¯¤gIÏ’ž1ú?L®+äÆïˆß¿ÃÃÞÃÞþù€æš(Ù™½~Jý”ú);;íì´³SìýØû±÷…%Âa‰!}B:; ôz‡ôé"¹8eøç’þûmX“¥5y±ÅË烴å¿ü~ùýòûE$F$F$:ë:ë:ëÊ w3êfÔÍȧºOuŸê©BªÀó xü&øMð›PüãmïSí÷«¿ùrWD›M¹úÁsl®—zè«Z¯£RhëC‹M‡86ïß¶‘_ñ{ëÕÓ«§WOÁJ°¬벑¤ž¤ž¤~lî±¹Çæ¶µµ•ìÌ^Ë­–[-·MK6-Ù´äÕ¶WÛ^mGˆ#Äe¿Eã—_6~™dkŸjüAç³Å¼­îãªO²mó׺4ïõÒÆ7À?À?ÀŸýP€N?8ýà´ä²”J”¦mÓõ–<º…Ú±„W²¶á‰NøÆrü4¯i^Ó$ÇBü‹øñ/Ï=?öüØêy«ç­ž'K$l­`­`­à=Õ{ª÷Ôäüäüä|f;H“eŸeŸe¿Vq­âZÅï=Þšiñø?³­goî’ã±Ò´–,qo˜úQ5³3ûn.I2PêzÕ"K­Ï÷ög’Ç$IŸÜ>¹}rcdåÁçQŸG}u¦Ë™.gº´·ooßÞ^–óûª)«¦¬šò\ñ¹âsEÑ;Ñ;Ñ»ÒëùýÛ÷oß¿-­'m«mmti×{E·Íu'>Z5FZ s.å\ʹÄ>ø±€ÂIá¤p²ù…æš_\–ji5ïøÎ,ï¾ûžAëßœ‘úØçìµÙk³×gpÄŸÅŸÅŸ_7xÝàuƒÍΛ7;+ý¥ô—Ò_%[26ö2ö2ö:ºýèö£ÛÏ$žI<ÃôII£’F%Z<|ñðÅÃÔ£û•ë*µQÈm¼¼‚ò­ ²•ÓꜪ]£ÖÝõóÇ4ÓhL£˜é1Óc¦3‚òï‹Ý»/v>>>ÝçuŸ×]¦òµ¤î’ºKêFt‹èÑ­àdÁÉ‚“²÷PL}XÉ–Œu3u3u3Î<8óàÌxµxµx5!SÈ2Ù# PZÝ´ºiuu=ÔõP×:>u|êø(ÈM›26e|ÿqüÇñŒTy—Q+£VF­ëu¯×½^w`÷Ýv—enÌ^8{áì…,Y<²È×Ë×Ë×ûÞþøûûã 1k2Ü"ÿàÃ{׸êûŽ×‚4Û4ý‚ÔÀ÷åö—Û_n³~`ÿ?± Ä]mºÚtµ‘\–ÒÒë»Ç!–Å»b=èïòäµkÜ¥-ðåmÈÛ·á]¢($ƙƙƙÿÊþ+Úc´Çh)Ù’qqqñîš»kî®ùÎæÍ;›Â{ÄÙE PŒŒŒÿÎé;§ïœÞ¢e‹–-Z–vÐ[/¬^X½°UV}Xõ!23232S<_<_<Ÿ±¨Ø²\²\²\UUUF<ñlÄ3YfÑ$·In“ÜBBBrss¥^úŠ}žªÝT»©v“ü9FV4ó áz¯dmãÛ}ú5“¬ê6ímÚÛ´™ó€…Àÿkkk(mé°ÕÛÅû°x'õÞŽ¦›&_øMZõn«ÝV»­V–£ùñÕÇW_y&z&z&iii•lÉXÅOÅOÅo밭ö‹iÓ8¦± *¨ ªì/P¨ ¡ ¡ á™Ñ3£gF§]O»žv]œ°8aqB¯-½¶ôÚÒôVÓ[MoI;Æ6 …ÎÖ­;[Ï~8ûá쇞Gi#’k™k™kÉ<ÈŽÀ7ì2ÝeºËTÚâTÛ‰Û&_1` ïëÖ|¹{óÛ·O×í®ê-Y1ÇwŽïßÉÃÈ&·Mn›ÜöÔÓSOO=µqxâðÄaÁÓO<ýO!R쪘bù¯Ç?¡ÿpí'{Û&rãÄsW%ËÜþaû‡í2‡²# Ubßľ‰}¥­þ·¶y’ñVóçûLƒÕ+é^=ÃPKMß®o‡}’V¥'éOÒŸ¤—¯qOWOWOW÷}îûÜ÷y߀¾}dY1žç9ÏsžgXý°úaõóýóýóýÙ³(K¢Y¢Y¢YQ¢:EuZÞiy§å¾÷l®»hœ³ó‚ÛÖZxì VvV¯©Y[²Ú)1)1)1Ì[€,€ü?}øtÿþ;ýwf&d&d&°÷Pz^îz¹ëå.É3r“GOð'¬-•'ʈFÜ»%íZHh*4š23%C à»]|qñÅÅExÍbìmg}²XuÀþî›r¼<ׯcCèYýnSíÖe½½®ž®ž®žÌ¯åoÏßž¿ýñÆÇoœ{~îù¹çe‰„û…÷ ï~uõÕÕWW§;¥;¥;Qa~oOoOoOÉóo«´%¿î“»k9ýÅS³×߬¿¹ÍÌö/•ÎÔ[¨R뜊aí³u7§oÕTaðæÉ›Í§ìýt{JýõögT¾Þ"yÛ e«±=T%+Ÿ:4uhêPf& d€”PÈÊ•!+‹í7×ù¬ÚÚhÏrË#{ËWôÛ&|£Ã¹ ªZ… xµp³«ÿj¡Uäâû&Hþù¹æÔ sÜàò^²‡ùùùÌL@ÉÉûqïǽ§ýQû£öÇ¢àÔlÛž· hS{}-ï rú&¶‚íÆWiÆvi·©8KŠaãÃÆ‡gÈBÜTÜTÜ4Ú2Ú2ÚrͲ5ËÖ,“%¶ ° ° 8½ýôöÓÛ“]“]“]©0ÅÑnS»Mí¾qýcÑuÿÁ;IòpÖ@¿ýë>;¿î[ƒ*í»÷~®Õ|É™€IDATß`Jø:[#Ïå#77iÝêþÅ ‰åçúÓ0Æ%ÕÃC²‡Ò/¤_HgfJ†À?#FþŒ•ûVî[¹¯8AÝáúQmZ-Y´ÛýËÖ+BÚ;ƒ[·X©è•¥ñ—U·î¹Åéù˜'cžŒy’ö0íaÚCƽTü*ü*üúúÔëS¯OmqÞâ¼ÅYÙEÙEÙ¥d‘pëž­{¶îéuÖë¬×ÙD«D«D+ €$©A©™ÇÎÐ?7"mutq]÷Ó_÷J¯÷xµe ÿTZÏ›îÚqjüÀ&›S.~ã*Ôµžk=×zÌL@ÉøÁ"D¢‘N[¶:m‹Ôi®ëÚsXsCÃ%aû?”bÜ{sÕÓã–Z¹4Ç7þÞ(1@;@;@›ñý ö û…ýo#ÞF¼Øe¼Ëx—±F°F°FpÉ"aí:Ûu¶Xy`å•qGâŽÄR„!…2C¸(\.FV‰¬Yåèü£óΟ5bÖˆY#Úwnß¹}çÚÇj«}¬èÙ¥«ª«ª«:tîйCçn¼¶ñÚÆk7ãnÆÝŒ‹Ÿ?=~: Ï$iu›4ÑÛ ÷þViß½÷óÿ=QFµ­Ž­bqB\‹Øƒ‹ïõ­Ó³É‡æËå963Þ¥è7W²‡s›Ïm>·93P2ÀJG]¡®P÷ª «.¬*áó|7ÔÚ¥XSã¹õ“Þf:GÛ,P2ð›[g{Š‘ïòýžu,ë{´µú?á®åÊöGZºÏ¼k†î’qkœ]Æv6¼Hi±ê µ‚’uÁ}¢ûD÷‰¹»swçîfHåHª*¤ÆùÄùÄùð:àuÀK'X'X§„‘°†«†«†ë.å]Ê»”ß¼ x ¸ î‚;e®ØÞì}³÷ÍÞýwößÙ_ï´Þi½Ó ebìì±³ÇÎö»èwÑïbV›¬6Ym ò@òxUïEk‹vUå!"­³¸é<}«Â^Dͳ£wñC\ù¿Ø|ÖÞ‚Û߈¨ÇœsjÌ)f& d€”º|Ÿ|Ÿ|Ÿ‹O/>½øTÓTÓTÓTAŽúüéóV©V©V©²Ì–5Ã× _3®5¹õÐ:-èêé«LQÚP[«V[Ù¾aÃ:†u‚‚‚Aeép·¶·mŸÉÛûqÍC÷)ÅÇë?6®2=6[®à;ûª=•ìáð›Ão¿ÉÌ” 0¹ðâÔ‹S/N¹g»g»gwsïæÞÍýǽ...[ël­³µNø ðAშyå”êêê}±çÅž{v­×µ^×z²Ì+—:.u\êDΈœ9£ ¿ ¿ Ÿ ÿ\¹É¹É¹É;v:ìtøÞÑl¼Óð]íø^'ëjÙL˜u:Z¿å²þQ«Œ›.[elü½í¬]~[ºŽh¸§¶ÎD Eûƒµ¾·?¦GMšš51j"#  ´I…TU[\4yýsÃѶ\?_m ËÀ-æ­Þ"×ð{N>–ìáDÑDÑD3P2ÀÊ»½ïö¾ÛÛg®Ï\Ÿ¹Ç6Û|lóá]‡wÞu´çÑžG{^hz¡é…¦A‚  V(¾ôYé³Òg]=|õðÕÃý„~B?A–Hxîº¹ëæ®{<ûñìdzó7æoÌßH…ËF¨k¨k¨kñGJïmû‘ÿ}p‡îñÅ ýc´¶dAï÷¶3¢®/1u³;¡Ñýâ÷vaÀ€…ÙöÙöÙöŒ5€Ò yäQJ®o¡qKÞ]èÿ'èôýtÁcy€M­wü{m§d— Ë…åLL@ ðd¦g¦g¦ûŸó?çnø¾áû†ï“%žryÊå)—C[†¶ m™û,÷Yî3*ü£Ô.¨]P{Yà²ÀeŋާÎÐì4Wïöß­¦–MÜ[t»ô¯È®­}ÇŽ9Ü^OO}ž¶±ò«âlEøðá}?–Ö­)ZS¾ñ áàó{!?7"ý?¦7›Ñ¹z±ÂãØƒ‹ïõ­û»¶¾\?ÚØwíçÓ¦’=<ôöÐÛCo™™€’!àÿ!G7G7G7x~ðüàùãÒÇ¥K—éÍÓûö9ì ò ò òÊ~•ý*ûþ^I¶I¶I¶†††EW»Ã‰ vXðêÞÃòúÝ:œôtÖÛ­8]¹Â‹¢·ë¨ÕQ«£VÌ?ʰ™Ãf›)y´1¯µ'80ãçF¤-Rf­Ùzèë^57™˜³Ê­èïjÖdXÁôûùì¢ëÙ ™^3•ÉÓÍ}ÏÌ’ÿÐW²uy‘ÙúxŸË\´‹ÞRçΜ¿ ¿ ¿27ÈÂu’ë$×I’Ç™6ªë5¼oÿä TÁãßÐÕ«™ÿÒÙÿÿí}mvô Õ_<5{ýM£ðåižË›§M±^»V}„…v×¶…_SgqÓyúVÿû†½µ‚må-nÒm`£ S%+ÿÎýû;wf& d€øòïäßÉ¿fff8ïþ¼ûóîË ÷ÝÞw{ßí¾×}¯û^O¯•^+½~”ü(ùQrÑuë¹yq³Æ–nzÚ¼õ‡òýJ¶ÓO_e°§ö–zNŠfÒ¶Úéo§¿þdžüìýutéÿÿqòË»¸[qw·B±%“Ìd2IÐâRÜÝ¡¸[q×âî‹;+·bE ¥îmrÿÑÏ}n¾w6ý•¦”žëœœ=^sÍ{®dØëÕ™8—ÿ½üïå-¿a*Ìê=Ý'%¥qã)²A5 Õ¨„œIó-¬R¾î…jUÇß^û&îOrÔ-X¥°9¥À¹Ö?[ö´åø#ODžˆ<ÁÌ$0ßElÙØ²±e”|PòAIW«ÎUgK$,¸ î‚ûÁöÛlÐ( Q@£_§’w¦ß™~gzüõéá¼m@…2öúZ¾N(u'ºFž:¿µšYðˆµ tÔýQ÷G¦£¦£¦£|ú|+¿~üX~·\Rw·ê÷”—ƪòöáw/.œª±¤<ÎÕ£ø_eîeÝŸ³Z®}qOü-ãØ±×p—ú-×^¾Zðë}ÉS³ÌÙ*URNì8bõŸZÖ¼j«ª­ª¶bNlA @21©L*“êÉÝ'wŸÜ9k欙³l‰„ l0°ÁÀ]GwÝuÔ¯œ_9¿röW1ogogoçøë0¤ß©ÉU*Ùkôû^.¨YFsbøèbk­UcTè¨ÐQ¡|Ö|³½æ½æ½Ö¾[ê—_ÛøÊ ”Çÿçq7…Žû“UkêuM9pµPךbþãn½åÞr¾zø*veìÊØ•LOÀ·"àÇ)h.h.è]Ë»–w­…NX8!gpÎàœÁ‰‹„«…T ©²Åc‹Ç7?Þüxóç-LÐïA¿ýÿþŽqMÕY¿Dôkñªø¸Ö/±ËZeÖï[¿oý>>^¾ÕÄ'þ;ñ?n]½ç¤µ›nþ°§älÕ§o®<çʨֽ´w‡†~NøÏºÓè_å×þðO©æÓSN\´™z¸s®„œßÇøñãç•Î+Wº%F‰Q˜«€ø’ì6ï6ï~ÓòMË7-WTXQaE…"•‹T.R9q‘p™ªeª–©ºvÙÚek—½+ó®Ì»2æææ)ºÅÍÅÍÅuº]€µý~ÿ°ª†_3úýúUr•¯x!kUº¹øæâ›‹ùHH¸{ï ¼7Ðòû¤ðÚ¦ íTPZ^éUpÒǸ‘äT ¯-Ñ»^Ùe~gTñÿTÍ;³êì^%"Û§ìÿ{ÂnÅÂý½fý“"nþüïê§—6Ùr! †4Òàæ‡›n~ˆ:u6ê,³ð5`R¶Ps¨9ô}Å÷ßW\¿xýâõ‹Ë—*_ª|©Ä-;”v(íPzYe–xÝàuƒ× ÌsÍsÍsSÎî®Ù³fÏš=ÖÆ?°øÑ«•sýþïuØÃ³5«:~ìà\(µŠ7 n܈€„ˆ={$Öê³Æë–÷>ó1ùãÒº—l>Ù"GÝ‚U ›¿OÜík›f?2ȱáª6Tß2¹ÓæËeVtš;âEv×|2ƽ3î9ÁŽ××d¹ô>%À•^í¸°_–$Õ[è-ô®º^u½êñ!âCÄæ3üÊ€ø)ùžñ=ã{fë¡­‡¶ªù æƒš·dœía¶‡ÙÎo;¿íü¶/þ~ñ÷‹¿M¾&_“oòï‘wˆwˆwˆµqvš¿zqYB_Ë× ¼¤­ \*é”C²¬[Ÿ }.ô¹Àç@¹5ukêÖÔòû¤l.åFÿØ'þfœcC΄Ÿã²ïÍ?ÆáZu¯ÉA[&§ˆ›?çÙPöz•ìãó½tøÍr´Oº>éú¤ëµ×j\«Ñg@Ÿ}Ø wþ«ó_ÿ:ïü½ó÷Â<Â<Â<˜Ûðë ÀN|Iÿ%ý—ô{æí™·g^#§FNœlY8žnœnœn|ìöØí±›)µ)µ)õwúióiói§iNÓœ¦YޤQN—…{ôÆÿ:ÔíÌ”* ­Ío4¾Ñ˜Ï€„ø|æó™Ïg¬}Ÿ8W-½˜êÇÆÀEn ©[×´¼&ø×ûÖ.6ªLžâoôGºý[ÇÇíË¿…SÎs«n—yõFË1;r:ätÈòXD…E…E…Ýr»åvËmh»¡í†¶³åÌÞjz«é­¦Ÿô>é}Ò;Ä%Ä%Ä…ÙöŠ»˜10c`ÆÃ…>\Xì,v;Û²p<á÷ ¿OøýÞ½{÷îÝ‹¹s'æNRóT§SNu²¶Ýñ=ûV¿NÄ›×ÖÅç¾.û?žß™±pÆÂM%M%M%ù\Hˆi¦ø·—/ý±C·a9~lŒúu ë˜må•ó¡µ›Îó88±Þá›ÎµöÎûZÿÒú×^fs˯™eU=Ú{´÷hŸã3>f|Ìx¯^;¼vŒûmÜoã~³åÌ®=¥=¥=udó‘ÍG6<xœ™ö€_HðµàkÁ×Nô=Ñ÷Dߎ-[8Ú²p<|ÀðÃܾuûÖí[ÑÎÑÎÑÎß:žØÆ±cgœep–Á–ý»´ÛR~±nÂ_]>Ø]#Ö¡dé­9Î[ÖóÈÚ#k¬åS !Þ]{wíÝ5kßÿu/ô=:=%«?ËkySŸFSwXV²VóZÍk57{™½Ì^‰;R±gbÏÄžy4úÑèG£§v™Úej[ÎìMv5ÙÕd×¾¢ûŠî+úåò—Ë_.óY€Ÿ0¿´0§0§0§sƒÎ :7¨Ãw:ܱeá¸ß¢~‹ú-ò˜è1ÑcbäêÈÕ‘«ãßúñNÇ;ÿkËŒu”gæ¤Ië~ûkßlûvU<ñÏ{–²IÙ$SSSf>€„˜TuRÕIU-¿Oò«Ù SƒŠ\ŸM¸ÿkƒnÊñæÖΛw[Ümq·EÒ5ÓqÓqÓñçiž§yžfcæŽÉR(K¡,…wf¯Ó¼Nó:Í·;owÞîüiî§¹Ÿæò¹€”üý#úGô¿RùJå+•{êY¨g!["ánº è6à¢ßE¿‹~áË—…/ûßfv›w›w—è^¢{‰î–?Õ¿Ö¡>•åÚòZ¾£Åy§ZÖöR®K¹.åbžHˆ!BXû†/¦÷Ø)»ˆx­Þö9pý^·¼¾•j´¬^ß:}ëô­“L²Ÿ¹Ÿ¹ß«f¯š½j¶D»D»D›ß5¿k~×ÄÙ+®x¸âášššøûÃßæsŒ9†Ï ¤Ààÿ!ªeT˨–7¶ÞØzcë ƒJ *aK$Üö¶´ýcƒóç Ζ[òI­G¹·ß&ÁuÀÝö;V|hYaÕÕÕf5€„;5æÔ˜Sc¬}«×Ø5mí¶Pâ^Ë×ÒÚé÷´V·ÀìÙ³ÿ°ƒúØüØüا±OcŸÆ«­~´úQÉU%W•\•¸3{±ÛÅn»½2deÈÊ·ÿ¼ýçí?æ‹æ‹æ‹|vàG!ß,:":":âΣ;î<å3Êg”O–$âruËþò›~ÆÀuPêãêÊÿçvÖ?xT-ΨY*÷ù‚²m°¬ó§QŸF}ÅLpýÎõ;×ïœÕ{»=þ÷B߸×J'‡ø,ð´V«sÏ]<—BÃÑáÂ?„o.°¹ÀæUTPe@âÎæy6åÙ”g“[+·Vn­^Ö~Yûems3s3s3>G<€@ˆ5ÆcÎ?8ÿàü¤Ž“:N꘸%ã‰.÷JÖ˜DœT¯­GÏYºšeÝ ¹r/ļpáׯ…_ËW8_á|…-¿U²ÞÈ9#·C½*Ë;ÓåWŽ~«¾wiÍk縩i¦¦™šæç:îŸ]>»|vÙ™og¾ùêE׋®m˯yÍ2{Èì!Oß<}óôi¢i¢i"Ÿ,ø€ÀwaênênêþÔå©ËS—Y g-œµ0þEáÆôø§ðÑŸ÷–Ë)3uçêŽjŠeµëõ«×¯^?f)€oõzþëù¯ç[û&Ï>>ßK‡ßê~\Vètý_.ú½>nöšFÖ*#7‘›ÈML¿™~3ýö³Ïÿ¹þsýçî÷Üï¹ß³Y£fš5²%ž,L& UUU±Cc‡ÆåS¶#É¥º¹º¹ú¸Mã6Ûd¹ÜûîžñõÀßãÕaA™N9þã6ÝaÂ2„e`bøV·ô·ô·ôñ{µçÎß{Èý—¸á³qðªù%­Õ¡ôÞÒ{Kï :3t¦½Î‡ ~Aý‚úkx¬á±†J#¥‘bS$<úÁè£Üu¹ër×%¦HL‘˜"|âà[€dUÝ©ºSu'Ëßñ]<7W@ü=^å•ã‹´¬ùÝÓwOß=Íœ8\xpáAüa^Õãæ®ij¡oý{ëJÍqÎ3`¦µ}Ï·+ß®|»ü—ù/ó_ö«ÍÐ?Cÿ ýótïÓ½O÷nÙ&²M¤-‘ð`‡Áƒn:Þt¼é5#jFÔ >}?`L¢îGݺo¹°[¨wÙg9+¦´@×µÌýq5.´Ì>KUª{ùk«çÝ”g™Cp¶Ù·æjžµqá2æ\ÑèU´…wŽÐ\lTuTJ€ûþ¾oIÅ£–•_»víÚµk™™lqéÃ¥—>Äà•üÔº@ßèúuÖöº²ùg~ëäYØýȳ<ãËn¬ÚÜÚþ–½[önÙ»þ×ü¯ù_c†Ä www¾(]”.J]ûtíÓµ-‘p¯B½ õ*t寕WnDlر• À×€@2y¿ûýî÷»-—q›ºôéSdRʉKG÷¿vªÚÔ²yê»æ9•ðÅèÖ—æE—–Rf±Züû¨¯¯&†‰a"³"~‘="{Dö¸öáÚ‡kú.í»´ïR["áŽ;>îøø|®ó¹Îç ›61l"ð+#ÉäÆão<¶\´m·eÉé2ËRD\šùa¦šY*ìmr)oÀ×#¬ä§Ú—oo‹Š3Ž”ÊףȶŒr5?1ýKÉ Žcò^³¶‚®f¾ò`a˯Y¼fñšÌLIåÓëO¯?½v,çXα\üq]Ááu¥f3j ŸÓp_ýVÙ0âú’*¹G–_Ú÷øÜ¶DÂÒ(i”4êð½Ã÷ß lØ>°=`¯€@2Y¾4|i¸å‚ìÐIgºW™"ÒÊ^êFùbþ÷Ç<õ]óœJÈOMlêõ¹Æ‡~eŠæx’’àÊ%„,ùÎHN²>Êú(k©‚TAJxPW²v‹½‹Ö¸=ýïí“¿_ÜëøxMýËE«ìýûòC×LC>¡o‡¾ú6x[ð¶àmåäû&öMì›ÇÙg{œmZÿiý§õ·%nܱqÇÆ÷ª÷ª÷ª¿tþÒùKg* À>€d2¥Ï”>SúX.¿Žr¸2¤ZΔ‘Œ*Ý&ÇÁ¸Qu(½¼KÙ< rSþÀõî´äàN àG9˜î`ºƒéÔå)Wfu•4%g·üÜgp%¿¡® WÔ.7oÜÁ z«Wu Û\AÕ·ä´»EEõ ç Y/æìŸ+æ[ÇÐô¯¦5ýë‘Ó#§GNÍ”ÃtÏtÏtïù¢ç‹ž/š7nÞ¸yã².ͺ4k"Ÿ(\ËTËTË´mĶÛF|*ô©Ð§BTÀψ$“1cÆ8X.¶Ž6y«vøÇ†£ãGzzTþõ¨½ÿ÷IåÝ ï¡cðª)e÷§ä¸Q—…]€üX¦¢¦¢¦¢{7ìݰwCN!§SÈ’‚éîëîëîßÍ{7ïݼ»ŸÆxóxóøW7^Ýxuci³¥Í–6+ð¥À—_7*´¬Ð²BË 7tÜÐñý’÷KÞ/1Gš#Í‘”@JF ’ÉØZck­õðmÕ¶üØptØ_g[V9þõ¨â"á„÷ÐwÊþ¡_¥ä¸áôn; ×&‚T5W5Wõï9Þs|Ï{=ïõ¼—Bßa „½/ð¾Àû";ñÚüÚüÚçŒÏŸ3k®®¹ºæjéT¥S•N•¸R´GÑE{¬Lµ2ÕÊTo.½¹ôæ’ù˜ù˜ùeFÂ>{úìé³q3ªà±‚Ç ;äÈÿ?•AR!Édú’éK¦/±\Héz¹SÕ—?6xäÞák¾Õ`ç›*{%¼‡N×ä,kJÉpÝm¦:ä&’EEEÝ:zëè­£Sç†O /3¾Ìø2ã¿GЫqÐ8h6ÔÚPkC­Wy_å}Å5¾¿œ}>öùØgËï[~ßò{UªU=7—rWÍ]5wÕEmµYÔÆ{÷ï=æ*æ*æ*TÖ8Oržä<‰•áû!ÉdÕÍU7WÝ´\êâtªZ•Â)!"ýzTV®([¶AÂV<6¬øÓ”W(ÜøzÞ³,5øy}ûa쇱W÷]ÝwußÎ;ì<°HµHµH5ñ÷‰¿Oü}DãG4•}TöQÙ§6šÚhj£•ê•ê•êÃ=÷<Üó«î®ŠÙ³#f•„5Ÿ=?{~öܱ3bgD}¹¾\_¶å— fõÕwVß§ú§ú§zSSS*ŒðQá£ÂGYΖSfL™1…ú ©€dr¤Â‘ G*X.xõ½«d…)-.;»:ÏÛ]=ÜÔës….•›SJÉpî°‚O²  áü¿øñÿrÀý€ûwÕlÕlÕl["áIu&Õ™TçÁ®»ìŠÕÆjcµTøWsqíŵ×ZÎ'NOœž8Q$`LîÞ¸{ãî ˯֫æ(Ý %D¤íÚ-q*3á?–k­¼ßuõƒf5>6ÙÝ»t‘¦ ÿ©äuÍ~¿e“–#¬|ªò©Ê§˜™$\Ðå ËA—g<žñxF½«ÞUïjK$<êô¨Ó£Nß9wçÜsÑÑÑTؾu èÐ5Àr&˜J™J™JQ$`L>Ïÿ<ÿó|˯úW;zÒ¦ˆ¸4óÃL5ÿcq¶’Ÿj_¾½-6ÌœPªa"Û2VÈÕ2û,U©î‹6—/WÜ{ú•)šãIÊ €G5¸²£Z!ËýêïÝß»¿73[„¶ mÚêL…3ÎTh[¥m•¶Ul‰„ÆŒ{cþù7æGÉQr”L…íCä¤ÈI‘ÿñÜ߉N&:Q$-`LbÇ6Žml¹ì•³GÞ.Y¥ ¸4ç•®Õ²•t­å˜;A·y,v»êÌ\[â‚á”÷(´-}…œ–#ßÑ{Gï½™™$­ð áÂ7\úóÒŸ—þì¶¢ÛŠn+l‰„{„öíz%ו\WrE¸D¸D¸P៑GMšÿñ›†÷gÝŸuõAÒ"ÉJøSøSøÓrñkÌÝåªE§œÐ4nT†ô“ë–ÌTf‹ã±<Ër]Ïï™MΑ/wÁ¬½Šµ«r6×MÏa‹M?ÒÓ£úó”| èfÚþ§‹·áÓOo<½Áœà{‹Ü¹9r³Ç +úèw¢ß ["áîÜ;¸Ÿku®Õ¹VaÕê‡U§Â)_¿Üýr÷Ëmy4cSǦŽMM}´€@²Z—o]¾uù,¿ºõÙ¤/_1儦–a°µ?ÿúoSZô;©ËÃu5Ëe½“½pwËš{]öºìu9öߨcÿefœ¢;GwŽî|Ûç¶ÏmŸáK‡/¾Ô–H¸E–YZd9¡œPN(Á§‚OŸ¢Â)èX7‰nÝÄò¨84âЈCÔß0HVÞ³½g{ÿÇ­•k®1¶-à›2àŸ÷uX‹³ªÜMÈÂñØgcŸ}æåæåæå32fdÌHæ*É)æaÌØ‡÷|ïùÞóPnB¹ ål‰„Åêbu±úá4‡ÓN`0Pàæö´ÛÓnO³ø€@²266¶¶X9ÎívÝê n“êUVÝYüfâއVZ}hõ[cn¹5&Ê?Ê?ÊŸÙ @²þ«éÓ¦?o{¼íñ¶é#§œ>Ò–H¸Q–FYeÙ3`Ï€=ü¢ý¢ý¢©pò>,|X¸å‰^½$z õÁ÷@ ~€9§çœžsÚr!¬]¾Å×Ëô"¸µýuâ“{Á5¶gIR}šõiÖ§Ùµ× \+Y(²Pd!f2ÉÉôÅôÅôåEá…_ž?aþ„ù²ÿ•ý¯ì%îÌ^Ó½¦{M÷­‹·.ÞºØw¯ï^ß½T8iÅœŽ9óÿâíÿºÿëþ¯©¾`ð¼½úöêÛ«–Ëa9îäi—ÕÝõíƒ 5SâÚòÚåÎú©åþ㹿]•®JWåꪫ«®®ê=¨÷ Þƒl‰„»dí’µKÖ Ã/ ¿0<<]xºðtÌm’Õ|ó|óü×Êkåµ²Ìi™Ó2'‡¶mÚ&îÌ^.¬\X¹°õCÖY?ä}Á÷ß4‡šCÍ¡”9qî-¼·ðÞBË:_¯‹×Eêƒï‡ü0Â'á“ðÉrQ¬[»MµÊ—!ÄMÜ««éA`Í yË ʞDz¶.=¸ôàÒ×G!êJÔ•¨+·RÝJu+ÕîCºénK$ÜzIë%­—œšyjæ©™!;Cv†ìdž¬|;fßwußÕ}Wwí±µÇÖ+ÓµL×2]wf/l*l*lZ‘aE†Þ4}ÓôMSóNóN3ç÷¿`ü‚ñ ,«ù*òUä+êƒï‡ü0· ß*|«ð\¼/O±¬«\Õ÷׸E û­¯s­™P.›eU뼨ó¢Î ³Él2›â?.1­bZÅ´ò*äUÈ«ÐØcsŒÍaK$,ß•ïÊw¶<ÚòhË ?ƒþ ú“™@òûøüãóÏ·ønñÝâ[½DõÕK$îÌžóLÎ39Ï,l»°í¶ÞŽ‹{7ç3ç3ç£Â_‹ Š Š ²¬žË5—k.ר¾7`ð㙃ÌAu—×]^wù\Kê0÷Q霺 ¿êΟÕ?Z[®½™þfú›éw b×Ç®]ÿ0üaøÃð)c§Œ2Ö–H¸éÕ¦W›^Ý÷lß³}Ïü øð/ÀG¶˜”jRªI©®¶ºÚêj«ˆÇ#SH¿:~uüêìz°ëÁ® Ö7Xß`½-ç÷™.3]fº<9õäÔ“S¦&¦&¦&¿rm7ÜüqsË*]:wéÜ¥sÌ=|oÀàóºìuÙë²µÅÄW/¬º‰p7!¯Í^ 8Q´…e ¥òRy©|Ò5ÓÓÓ†g3žÍx6cÎê9«ç¬¶eɸîȺ#ëŽÜ‘Gþù?ù~òýäËç !EH’åŒZ6bÙˆe#¨|«]€.@wpÌÁ1Ç÷„{Â=[Îﮥ]K»–~åA–YbKÄ–ˆ-ñëTrÚ›io¦½±¬Iøûð÷áï™iøÞ€@ŠÐÇ©S'Ëe²²aNäýsÒß3ÔÌLÄkíµ×Ä]•*¼´¶üúrÇË/w|÷CØÎÜÎÜîåÝ—w_Þ]<|ñðÅÃó5Ë×,_³Ä-WzUéU¥W›²oʾ)û‡Áœ›WãWsÙë²×e/Ëùóhð£ÁS°]°C°C°ÃñÇÇl8g8g8gK$ ¼µåB]ŸñÛJT$èµ|µìj³jõ­ÕÍm„Û·wäóó·Þ>xû`uºÕéV§+ѳDÏ=·d\"M‰4%Ò¬º¸ê⪋o¼=ðö€ù–ù–ùŸ_Y=fô˜a9[bOÅžŠ=E}à{ݺ%tË™€3gÚõh×£]["áO<ðôú«ë¯®¿ŠÊ•#*ÇÏ^ŸçžÏ=Ÿ{Zîé™À3g™?HÀ 9}ìô±ÓǬ-vþ¸6 \kBß¸× W¼²×Ð+R¥u®>–µª’¾Jú*écžÆ¸}pûඩŦ›ZTnZ¹i妉[2Îû"/WZ\iq¥—»^îz¹ËÜÊÜÊÜŠÏѯ ªNT¨:–³blÈØ±!Ô’SÜm/½töÒY—+.W\®Ø w¿ÖýZ÷k—;^îx¹cD‘ˆ"E~®jÌû2ï˼/–ûêêêÎlAò )΄¿&ü5á/kË‚½¥Ýn‹ÿÊѯk«û7jÜ­ÞN×·@kUòÉå“Ë'×ÏrÄ?§ÿœþsúÎ;œw8×}T÷QÝG¶,Ï1Ì1Ì1<ëø¬ã³Ž¦¦¦|¦ìÏ å†rC±<ú^½6zm¤>ðcE¾Š|ùêºæºæº¦ÿËþ/û¿´åÌÞ~pûÁíŸ]zvéÙ¥¡B?„~H¡»=Í<Í<-[Ýlu³Õýzü† † † Ì $'`âÄ|‰ùó¥Iš&iš¤±oØSªbÃ_.ú­rV˵[v+8ÞZe.Ì»0?}ø×ö¯í_{žýyöçù§ä?%ÿ)iËÂñ”JS*M©ôðÆÃoÄ.‰]»„OÙÏn Û@·n–Ç:flÌØ˜±ÔRšèÅÑ‹£{Îñœã9gÄF°åÌnô2z½þþïô§÷ îÜ3%ìãë´¯Ó¾Nk9ÚãOŽ?9þ„9€äD R¨ íAÛƒ¶çË–/[¾lÖ–ÿºÞÞØ¨\Ô¯ýŽW{Žª~«rzÕË|Vo‘í~Ãý†û »…ƒ >ºàè‚£ tttlY8syÌå1—ïÞ ¼£‰ÑÄhøÄý,¢½£½£½-éPy¨ð³ˆM›:6õý÷gÜŸ1±þÄúëÛrfWû©ýÔ~‡ªªr¨JÀ†€ ’–\zpéA˱;;;pÄ‘œ€@Šæ{È÷ï¡ø—ü 禌))NêðpyͲöý}.O•yb mÊžÞZ–O^>yùä_mn„œ9rþÔ¹SçNkí×Ú¯µŸ- ÇCrÉ9$çMÏ›ž7=£ŽE‹:Ƨ/eº3õÎÔ;S-à­Y·fÝšE}àçe*e*e*õ¤Á“O̘4cÒŒI¶œÙÎ9s:·{ñîÅ»û¹ù¹ù¹}Ç¡û˜}Ì>çœWpÞ×c„Y$?`ððmèÛзaÎ9Wä\am™¯ÊYÍ‹üâè!×.W›fÑoÇ«†”ÝÿâæÊ+_¬|Á ‰^0¼`xÁ ;/ì¼°³K.=ºô°eḷCo‡ÞW{^íyµg„w„w„7N FµÕzTkËãB}À®¤5§5§}±ëÅ®»LX0aÁ„sLÌ11qgör ¹†ì¾Ï}Ÿû>_'_'_§¤¦O¨O¨O¨åŽ=8ö &À@ ~E‹q¬çXϱ^ü |z-÷*[qRí‡-kü¹Bß‘]r«z¼ºF'(ÿ>îKµ/Õ>Övþ"«DV‰¬rM¾&_“û¬è³¢Ï ["áN/;½ìôòüñóÇÏ;v&ì NN± bÄ6°<.}:õéÔ§õ€_ÂZóZóÚ×÷^ß{}oyÍå5—×,t¹ÐåB—wf/»¸ìⲋ×M]7uÝÔw›ßm~·Ùìoö7û󠪮­º¶ªeÿJ€ pÐüøŸð“‰^½6zíÐWC_ }ÿ¢^‘Wçôé3kïéŠóRrè;öñͰêFm§1yŠ'芖ÛsnϹ=‡™8Q¦(S”éÖÎ[;oí:uèÔ¡Sm‰„[µmÕ¶UÛ“N^8y!¤MH›6Tøûy0äÁC,µò×Ê_+O}à`0¼;üîð»ÃëÜ×¹¯s/{©ì¥²—wf/´¸ÐâB‹—çXžcyŽ×ç^Ÿ{}μڼڼ:þ!”^]zuéÕ_÷Ó`cƒ 6rp𣀟Øáˇ/NÐ5Å«T«–ë²Ë–-CË/K ¡ï¨W&TË­qv»Øø„Œ¿yæšðOëŸÖ?-Ç=iÅL™3Õëœ×9¯sãÊŽ+;®¬-‘°v¾v¾vþ‘éG¦™¸+pWà.*œT\¸>p}`YóÈ‘%"KPÀ×|u¾:_»§»§»gñ5Æ×Ÿ¸3{)‡”CZÐnA»í^¬x±âÅ sssš¸­|\óqÍÇ5–?µëᮇ»r𣀟žïißÓ¾§[‡·ožðåÎNœ8™ß›ß›ßs¬“GìÅØ‹±-x´àÑ‚©3¦Î˜:ÖH¸ÉØ&c›ŒÝ—f_š}i¾ûrìË1*ü­L­L­L­,kÛ¥|—ò]¸ö ~ý6úmÜ}`÷Ýœœœl9¿Ïh?£ýŒösŸÍ}6÷™åßúÕõ«ëW—šãG!våJ¶+Ù®d+ô°ÐÃB¿u!¯ü•Æ•ónT»–*±­ÇÉíù*¨¿5èZóô›*ƒÛßXv®Ld£Œ.‹ wË™+Ͻ¬§¾u$ÍÍÍAç‚Î㘦¦S¦S¦SÏó<Ïó<ÏÜõs×Ï]Ÿ¥E–YZ$nɸN±:ÅêÛ^g{íu>û4îÓ8*¿§ùŸæšß²’¦_˜~a:õ$NÀž€={ɇäC²&¿&¿&›U8Wá\…s1Ñ1Ñ1ÑT? 0°C¦¦¦§šŸj~ªy©r¥Ê•*—%Åë3Ög¬ÏÇå—\Îü 00xÕæU›Wm– \2pÉÀü‡óÎ8qG¿â䊓+NÞXfc™eÞǼycŽk0›Íf󬌳2ÎÊhY·ðÌá™Ã3S@R <4xè¿›þÝôï&£Ùh6šmù×݈Y#f˜å9Ìs˜ç°è¹Ñs£çRa$`ðK¸üþñûÇû9÷sîçœâÞ’³JÎ*9kÛ mƒ¶ 2>d<Çè§÷ÄüÄüħ¹OsŸæ«£VG­Ž*y«ä­’·7CŠ­.¶ºØê•wVÞYyçmµ·ÕÞV3_0_0_øåªZÆ\Æ\Ʋ>­÷·Þßz?“ð½…‡‡ŸÝvÿÙýí×´_Ó~-ÿì´ÿÑþG¯W¹^åz•ÈG‘"Qáoþ׳'Ïžüï¶Û½Æ÷ßk¼)ƒ)ƒ)•ù0øE]Ÿp}Âõ c›Žm:¶i®1¹Æäóýâ^±¡ØPlèîçîçî÷~ÆûïgPÿ_ÇÇ??þùñÏÍõ7×ß\¿Êú*뫬OÜ,ÊÓ?Oÿ<ýݪ¹Us«ö²øËâ/‹››˜›˜›Øwõ¼ÇzõkYS«N­:µŠÙH~å"ÊE”«ú®ê»ªïlÿW¢Ë—5.k.¹_r¿äþ<üyøs*lͳ§Ïž>{ú5ìêÒÕ¥kìœØ9±s¨R`€ÿ¯}æ}æ}?ühð¡5‡ÖZ3?Ãü ó3ôËÖ/[¿l†ç†ç†çMZ4iѤEÃ| ó5̧ž¤ž¤žÔaA‡ŒK5.Õ¸T444—÷_Þyÿ‡,²|ÈBQaéóÐÏC?ÝYgguË;–w,oËÂñlílílíÓ[Oo=½ekkkOµZ»0va¬å^‡9r€¹H~yòäµ<7M¸>áú„ëÓ L30-gövŽíÛ9ž¹æþ™û¡«BW…ò Oÿó"í‹´/ÒZ«[ç:ët®›*6U,é'0ð£ù¯ò_å¿j¿ÿ~ÿýþÍ5Ôl- Ç“‹L.2¹ÈÃ*«<¬; v@쀟²(ÍÍsí̵3×ί÷Nö—ýeæ à‡ ÒLsð?"ÞwõÞÕ{W/î=ÑW¢¯D_¹SíNµ;ÕFÞycä [Îì†Å†Å†ÅÇO?yüdpÖà¬ÁYåú{û{û{û[«UûÔíS·Oãããò+W‰Hq‚F}¬Ã±Ç:(”Ê[ŽGï½wôÞ»ò]ù®“/&_L¾”_7Kß,}³Ôr_Žö<ÚóhOfàGò ù…ü_Ÿ›Ú;´whoö5ûš}­ýTlÙØ²±e”|PòAIWÙUv•m9³ î‚»à~°ýÁöÛ4hÐøW; ¯<^y¼ò°VŸÖ'ZŸh}"úTô©èS¿æ,%~¡ÙC³‡f?=íô´ÓÓœK:—t.iËÂñ ÐA¡ƒBo¿Yüfñ¨ Q¢&¤´ý]á¾Â}…»åȃ2eÊÌ|$¿ ¿ ¿ ?ËsÓ²FË-kô­½™T&•Iõäî“»OîΜ5sÖÌY¶œÙ j0¨Á ]GwÝuÔ¯œ_9¿r¿Ây³ìͲ7ˬդyæ=š÷ˆN6:í¯6W €€ŸR¸K¸K¸ËÅ{\ìÑui×¥]—Ú²pÜ3´ghÏÐ+®¸r bmÄÚˆµ?nÇÌáæð"o‹¼-òöë6}×ô]ÓwwÀr¼ûñîÇ»[žC_ë_ë_ë“`Íͽky×ò®µp 'ä Μ38qgöj¡ÕB«…nñØâ±ÅããÍ7?Þ´×ãâÓ§…O kuP~W~W~jÕ(ªÑ¯3W €;90r`ä@Ô©=R÷=Û÷lß³¶DÂwwÜÝq÷¹èsÑç¢Ã†… –<{ñ¾÷ûÞï{[ŽgŸÿ>ÿ}þeÀbÈdÈdÈôõ¹){¦ì™²g2Ï7Ï7Ïÿ.›ÜmÞmÞý¦å›–oZ®¨°¢ÂŠ E*©\¤râÎìeª–©Z¦êÚek—­]ö®Ì»2ïʘ?š?š?ÚÇÑyŸö}Ú÷i­í»¸X\,.ŽìÙ?²ÿ¯0W €»]=ºztõÛ-n·¸ÝbØÆa‡m´%nY¨e¡–…NÄœˆ9’6$mÈw¹¡â†ôÒoHo¹uÿþ%üKpLÉ/tTè¨ÐQ–ç¦ù®ó]ç»&ïPÌ¡æÐ÷ßW|_qýâõ‹×/._ª|©ò¥wfw(íPÚ¡ô²Ë ,+ðºÁ믘çšçšçþ¼GêöÛ>l³¶¿ªœªœªœs#æF̵ïK üBböÇìÙ¯ó½Î÷:wï4ÞÉ–HX%Q9|äð‘@%P Tlaùûåï—¿ÿõVê.­»´îRŽàG93ùÌä3“-σ/м(ò¢HJ¡ïß3¾g¶Úzh롚j>¨ù qgöl²=Êöh~Ûùmç·}ñ÷‹¿_ümò5ùš|®ãå[ß·¾o}kûØxFãg„¯ _¾Æ^g,0ðK‹ýû!öÃãRK=.5mñ´ÅÓÛ 7®Ô¸RãJ{Ëî-»·ìããcÂGâææfÙçŽJ;*í¨Ä‘ü(m·=Þö¸åÊôÅôÅô%eŽùKú/鿤ß3wÏÜ=s95rjdÓ¯|M7N7N7>v{ìöØÍ”Ú”Ú”:åµO>]øt!»Wv¯ì^–{T߯¾_}¿°õaëÃÖÛߌ%𘙙=wîþÜ}ÞÆyçmÌz=ëõ¬×·d\ëf­›µnnkµ­Õ¶VŸ2Êü)³µín+±­Ä¶–=| ùò)„ãH~ágÃφŸý@tôôÑÓGÿ\û˜10c`ÆÃ…>\Xì,v;Û Oø}Âï~¿wïÞ½{÷bîÄ܉¹“2÷Ú¯ž_=¿zy>æù˜ç£å^ÔiZ§i¦¡‹C‡.¶§yK àÿÅÕìjv}åýÊû•÷ÒÞK{/í]°hÁ¢‹&nɸBñ Å+ßPCý õßOy?åýs„9ÂQ˵–k-ׯßY9UåT•YÃü0—Z_j}©µå¹ìñöÇÛoÿÙ÷.øZðµàk'úžè{¢o ÇŽ-m‰„‡>`ø€Û·nߺ}+Ú9Ú9Ú9åìé—Í_6Ù\0 `@ÁË‘WŸ[}nõ¹!£CF‡Œ¶yË?ž|»7æ7æ7>ž>ž>žk>­ù´æS骥«–®š¸%ãÂÏ ?+üÌòÏ7•ÞTzSiŠ øQ\\\þãæÏiMiMiíoܜœΠ:7èÜ w:ÜépÇ–H¸Ÿ[?·~n®®®‘«#WG®þ±{* U@ª¢‹~,úWWºRéJ¥+Á†`C°ág?ŽÀ’ÌÇ1Ç|³¥Ä–[JT©S5Æ–…ã©C§:Ô{•÷*ïUæ æ æ T<"ÏDž‰<ó·>®0¡Â„_è|Ñ?¢Dÿ+•¯T¾R¹§CO‡ž¶œÙ» è6 Û€‹~ý.ú…/ _¾,ù÷(P¨ Ô–ºWê^©{–#,R6¤lHP A~Þ£F à;úìýÙû³÷®<»òìÊS|ýñõÇÛ²p£|l9³ë[è[è[ <x,0èß ƒþý~#>|:øt• U&T™`9’"E‹-RÔªÿTÿ©?×!ðÞqxÆáY’Ô¨¥£–ŽZzgÇwvDûFûFûRgKÖª7Ìs˜ç0OsMsMsMªà×=2zdôHËoÈáˇ/¾œú$D¬1Ök|pþÁùç'uœÔqRG[Îìªöªöªöf˜q`†ÿ+ÿWþ¯’v´!¯B^…¼ªéTÓ©¦“åÖ /P¼@ñ/Å¿ÿRüg©?0€FúMúMúíëeÖ¼æ¼æ¼æÐê¡ÕC«ŸQŸQŸQ·mß¶}Ûö¶,¼7ðÞÀ{7†ß~cxT³¨fQͨüý-÷·Üßb­bƒ^z9è¥é­é­é-µð«ñ¬äYɳ’åwãíw·ßÝ~G}ÇÔÝÔÝÔý©ËS—§.³ÎZ8k¡-göú…êª_hçãw>þ|îó¹ÏçlahXhXhXÝ ºAuƒ,·˜;wîܹs>üùðçÃ)¿ÚÀ~€ààààà`ËÖÅÿ,þgñ?–ïß¾3|ç¥"—Š\*ÒíR·KÝ.Ù²pÜã‡GË1—c.ÇD´hÑö×< ¯>¼úðªµ*õ{Ýïu¿×¦É¦É¦ÉÌX¿ŽÙGd‘Ýò[1ºstçèÎÔ'ÉT7W7W÷>ï}Þûü¢q‹Æ-—Û%·Kn—ÄÙ«®¬º²êÊÍo7¿ÝüöcÛm?&òÌã´Ôi©ÓRË­dÍ›5öSíOµ?ÕNÉ¥%ðœð<áyÂÓriõå±—Ç^KH‘»#wGîö8àqÀã@?Ÿ~>ýlzâ`‡ÑFw}®Þ¹zçê…• +Vö×9Ÿ?~þø¹µÊôzÐëA¯¦¦¦Ì[ö-æcÌǘÿñ 1§úêwŠú|wÿšÿ5ÿûæá›‡o®,º²èÊ¢EW]QtEâÎì¥n•ºUêÖš­k¶®Ùê³Ûg·Ïnó+ó+s‚nÚ´|ÓòMË[ëÿãî»?îN™…$ð´xÜâq‹Ç–Ë©æ6æ6æ6‰ë3ºgtÏèž·coÇÞŽ~fø™ágl‰„›¿iþ¦ù›ÕOT?Q=xðþàýö}Dž¾}úöé[kÕp9árÂåDì²Øe±Ë˜½ìÕýÊ÷+߯lùè±Òc¥ÇJêóDš#Í‘ïÝß»¿wß0qÃÄ +L¯0½ÂôÄÙ œ(p¢À‰¥Å—_ZüÕñWÇ_755µ¶ñïïoápH8d­Ï9>äøâ~AŠ@² ëÖ-¬›åêœÞszÏé´ÛŠyó<æùýÔ÷SßO=Á0Á0Á`K$,þ!þ!þqÈçÏ!Ÿ€ € € û;:ÏŸ=öü™µ tvëìÖÙ-öïØ¿cÿf&°?6MØ4a“å·_ä–È-‘[¨OÊñ©â§ŠŸ*n[¶mÙ¶eµ+Ô®P»BâÎìY»d풵˼6óÚÌkó|üóñÏÇ›À’Õ9ÏsžçþãæÏÏú>ëûì»/žš2˜2˜2<>ýøôãÓÓ×N_;}­-‘pÃW _5|µGÙ£ìQü>û}öûlÇÈû²÷eïËÖöº}»öíÚ·‹3$fó€}ˆ»Ñ½å7^·ÕÝVw[M}R¾/¾ ø2`oϽ=÷öl<·ñÜÆsm9¿O¦ Ó„G±bÅÆ¾ˆ}û"jfǪ̂™úúz«·¤~{ôíÑ·GSB5€$«Ž½:öêØËrÙÔ´Ú´ÚôÙM¦@Sà‹ê/ª¿¨>óüÍó7go”½QöF‰[2®9¬æ°šÃ¶Ý:tëPßu¾ë|×ý¼GêÕ¦W›^m²¶§mr·ÉÝ&wôõèëÑ×™Õ~v}û>öµü®»”îRºKé¨ÏÏ(°w`ïÀÞ‡”Ü%wÉÝ–Hx\à¸ÀqžÎžÎžÎÍcšÇ4±öÎ×Á¯ƒ_ÿØ}'L"æG̘o¹T:E˜"LRÐ@šš¾îúºëë®Ëº,벬‹Ã|‡ùó·d\îB¹ å.¬×¯×¯×¿ÿûýßïÿ6‡˜CÌ!?ËQ{3èÍ 7ƒ¬>)ùbó‹Í/FçŠÎ‹àç5Ýoºßt?Ëo¹ðáÃ7RûR0¤`HÁ“ÕOV?Y½åÈ–#[Ž´%®Ô¹RçJ­ýí«"¯Š¼*ò£ö”@2¹2ëʬ+³,I>~øøáã=ôOæOæOï¤wÒ;i퓵OÖ>)³´ÌÒ2K·d\Ø£°Gaåï—¿_þþM•7UÞT1o7o7oOÉð©âSŧе=Rº*]•®Q†(C”yàçbŠ0E˜",¿ÙÚVk[­m5êcßÂf…Í ›u¾òùÊç+wú½Óï~Ï’¤¼y7òn”üûE ™ô<Ðó@Ï–Ë£±Ëc—Ç.ÿ÷è£ßG¿~î¹ÿåþWõ–Õ[Vo™¸✳sÎÎ9{a­…µÖòÎâÅ;‹9·9·9wJÛßw¯ß½~÷ÚÚ^ˆÁb°91rbäDf;€ŸÅ‹ö/Ú¿hoùv¦Ò™Jg*QŸ_Mľˆ}û®¼»òîÊ»^B/¡—`{ üÜøÜøÜ˜œ{A ໋5$jˆå’èï1Þc¼íiOý?ÁOغ+tWhÏž }<úxrî˧MŸ6}Ú”½{öîÙ»[Ž­Ò@i „;v˜O€”iCï ½7ôÎñ1ÇÇã¾»Žg>žùxf*óóŠ~ý,ú™_)¿R~¥¼nzÝôº¹÷öÞÛ{o»–s-çZNõFõFõ&K2Jþ øŽb²Äd‰ùÅÐ!•†TR‰úÄ Ýº?tÿÙ¿Îþuö¯vníÜÚ¹Ù²Ð<`ÿ€ýö_¿zýêõ«QGýõ÷÷¿_¿~òŒÍ36ÏXËñÔÙVg[m¡;Cw†îäXÇ4×4×47xOðžà=/ʾ(û¢ìéßNÿvú7·ênÕݪ·?ßþ|ûówÜYpgr†» .4¸Ðà¨ţZ¼ýìö³ÛÏÞnv»Ùíf¾e|Ëø–‰êÕ=ª{ò׊Àwt·ÌÝ2wËX.˜Þô¾é}Ó›úXpéÉ¥'—ž¸¹¹Ù²<Ý}]÷uÝ×]þçò?—ÿ‰È‘'"Ï÷ó—é_¦™^pjÁ©ÿãùˆÕƒªU Y²(dÇð?ÏÌÏÌÏ"¼"¼"¼Þ—x_â} //¯MÏ6=ÛôlpÃÁ 7¬a®a®aNÎX·dhÉÐ’¡.«\V¹¬Z±fÅškÎG:õêÀ«¯„^ ½zÉ\Ý\Ý\=e•Àw4zàè£Z.­FŠ:uŠú$\äÇÈ‘¯w½Þõz×é¤Þ–¥íöÍÚ7kßì옳cÎŽ }ú<ôyRÓÿÿÿ7E'Pt‚åv+W¬\±rÅà>Á}‚ûpLàWs°ÈÁ"‹Lm;µíÔ¶R€ dIvJ#¥‘ÒhFÞygä=,–KŸ<|òð‰ÿÿ þbÓŦ‹M÷³×™ÀwÛ=¶{ì<¶wíÞµ{צ>¶‹^½:zµçfÏÍž›G<ñdÄ[ÄîFw£û¿½ÿíýoïàvÁí‚ÛÙ2¶ÀªU«–êSªO©>–Û*×®\»rí‚jÕ ªÉq€_Gu¡ºP]ø±n)u¦Ô™2¬ê°ªÃªº×s¯ç^ïÆúëo¬ÿÐñCÇ#GGŽŽmö7û›ý…:ø.f~˜ùafË%Ú«#¯Ž¼:’ú|±Æþûçýu÷×Ý_7±ÛÄn»Ù²˜®>£>£>s(û¡ì‡²,X°ø[Ç4$hHÐòêòêòêÿ¸Á昒cJŽ æØÀ¯À©ºSu§ê ?é^¤{‘î|;ùvò]rmɵ%×Φ9›ælïÞ+¼W„Ì ™2ËtßtßtŸÚ~Àw1Ég’Ï$ËÅÜŸŸê“Ùú|jó©Í'nþ À7#t˜˜XFz­F´ÑjåùÙùvôíèÛÑ=À=À= ÆÞ{kìM\$œ#wŽÜ9rÏ~5ûÕìWŽ‹9.²öη?Þþx›ÊpÀ’ÌË´/Ó¾Lkã¼òþInêk‡üöûí÷Û¿ûîî»»ï6,ܰpÃÂY¾ƒµ>ÔúP‹jÀ’Ì¢¨EQ‹þãÙ±!B:…t¢>¿‚€“'Nê{¨ï¡¾µF­Q'U üæñ›ÇoSaâG )œ5Ÿ5ŸÍS O<¾í´»´»´»(ϯ,xbðÄà‰ÿžý÷ì¿g›—o^¾yy[b`ê @ü€$·¹ßæ~›Û2®;²âÈŠ#+¨Ï¯):St¦èLŸF}õiÔ†wÞi¸«Ë®.»ºŒl1²ÅÈ5:ÕèT£S£_‡ë×®SUâG ¬\µrÕÊU–¡]à¡ÀC‡¨=1e6e6eÒéƒôOýžú=õû×ç_Ÿ}æ×™_g~Öï[¿oý>w@î€ÜIû$àùáóÃç‡SâG )d2g2gzqðÅÁÇŠcűb“KM.5¹Da~{Í{Í{Ã/‡_¿ìSǧŽO«^ýóêŸë+¯¯¼¾r¿Ãý÷;\yqåÅ•gIF%[—l]²uu·ênÕÝ^;xíà5ñ#;ý$úIô¿b~ÅüŠy]ñºâueïå½—÷^v-âZĵˆêêêArƺÙ×e_—}] ÇŽ-çÔ˜ScNc3ŽÍ86ãI­'µžÔ lØ0°aì–Ø-±[8v|+`ø)™æ˜æ˜æï Þ¼óE‰%^”8u*êT”[9·rnåÚi¤ý‘‚k ®)¸&9ÃÝž <xŽZ7jݨuÛ¯n¿ºýêmímím­oß ¾¢zFõŒêi6™MfG€ï~2Ž_8~áxrƺ¥~+õ[©ß\¶ºluÙºÂ}…û ÷ ©/¤¾úÕÑWG_ ½z5ôª¹†¹†¹G€‹~2¯2¾Êø*cR…»ŠVÑ*ÚÅf›QìpóÃÍ7øòáˇ/ý¯ø_ñ¿›>6}lzjÀÏ‚~2¡.¡.¡.ñǺuÖYXgá°úÃê«ïÞÔ½©{Óî7Üo¸èú¡ë‡®‘c#ÇFŽ5˜ÌÔ{B ?›¹æ¹æ¹K¼–x-ñ:û×Ù¿Îþå½Ö{­÷Ú¹!sC暘˜P$~MÀ`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°À`'€ÀN€ ;A v‚ì0Ø `°É_Ls1ÍÅ4Yà——“ÀOìÄ/]®FWããããXãXãXãhãhãhãHãHãHã0ã0ã0ãããã@ã@ã@ccccccc/c/c/cwcwcwc7c7c7cgcgcgcGcGcGc;c;c;£³ÑÙèllelelelalala4 FƒQ1*FŨ5jZ£h¢Q0 FÁØÌØÌØÌØÄØÄØÄØÈØÈØÈèdt2:ŽFGc]c]c]c-c-c-c c c cUcUcUcecececccc9c9c9cicicicIcIcIc1c1c1ccc£ƒÑÁè`,`,`,`ÌkÌkÌkÌmÌmÌmÌaÌaÌaÌfÌfÌfÌlÌlÌlÌhÌhÌhÌ`Ì`Ì`LgLgLgüÃø‡ñcccc*c*c*ƒÉ`2˜ 1†CŒ!Òiˆ4„ á†Cˆ!Äd2ü þƒŸÁÏàgð5ø|    >ƒáááá¥á¥á¥á…á…á…á©á©á©á±á±á±áááážážážáŽáŽáŽá¶á¶á¶á†á†á†ÁÃàað0\1\1\1\2\2\2œ7œ7œ7œ5œ5œ5œ2œ2œ2œ0œ0œ0333111222ì7ì7ì7ì5ì5ì5ì2ì2ì2ì0ì0ì0l5l5l5l1l1l1l4l4l4¬7¬7¬7¬1¬1¬1¬2¬2¬2,7,7,7,5,5,5¸Ü n†…†…†…†y†y†y†9†9†9†™†™†™†é†é†é†)†)†)†I†I†I† † † †q†q†q†Ñ†Ñ†Ñ†‘†‘†‘†a†a†a†!†!†!††††þ†þ†þ†>†>†>†^†^†^†î†î†î†n†n†n†.†.†.†Ž†Ž†Ž†ö†ö†ögƒ³ÁÙÐÚÐÚÐÚÐÂÐÂÐ"n¢ƒbP ²A6ÈÑ DƒÚ 6¨ Í Í Í M M M N'ƒ“ÁÑàhp4Ô5Ô5Ô5Ô2Ô2Ô2Ô0Ô0Ô0T5T5T5T6T6T6T0T0T0”3”3”3”6”6”6”4”4”43331118 ††††¼†¼†¼†Ü†Ü†Ü††††l†l†l†Ì†Ì†Ì†Œ†Œ†Œ† † † †t†t†t†? þ0¤1¤1¤1¤2¤2¤Ò›ô&½I£ÑÇè#õ‘úH}¸>\®чèCôAú }Þ_ï¯÷×ûéýô~z_½¯ÞWÿAÿAÿAï£÷Ñûèßèßèßè_ê_ê_ê_è_è_èŸêŸêŸêëëëèèèïéïéïéïèïèïèoëoëoëoèoèoè=ôzýýýý%ý%ý%ýyýyýyýYýYýYý)ý)ý)ý ý ý ý1ý1ý1ýýýýAýAýAý~ý~ý~ýýýý.ý.ý.ývývývýVýVýVýfýfýfýFýFýFý:ý:ý:ýýýýJýJýJýrýrýrýýý½›ÞMï¦_ _ _ Ÿ§Ÿ§Ÿ§Ÿ­Ÿ­Ÿ­Ÿ©Ÿ©Ÿ©Ÿ¦Ÿ¦Ÿ¦Ÿ¢Ÿ¢Ÿ¢wÕ»ê]õôôôcõcõcõ£õ£õ£õ#ô#ô#ôÃôÃôÃôCôCôCôõõõýõýõýõ}ô}ô}ô½ô½ô½ôÝõÝõÝõÝôÝôÝôõõõõõõíôíôíôÎzg½³¾•¾•¾•¾…¾…¾…Þ 7è zE¯è½V¯Õkõ¢^Ô‹zA/è}3}3}3}}}}#}#}#}}}½£ÞQ隷£¯£¯£¯¥¯¥¯¥¯®¯®¯®¯ª¯ª¯ª¯¤¯¤¯¤¯ ¯ ¯ /«/«/«/­/­/­/¡/¡/¡/¦/¦/¦/¬/¬/¬wÐ;èôùõùõùõyõyõyõ¹ô¹ô¹ô9ô9ô9ôYõYõYõ™õ™õ™õëÿÖÿ­Ï Ï Ï ÿSÿ§þOýú?ôèÓÿ¦ÿMŸJŸJŸJ‰Ub•X%Z‰V¢•%B‰P”0%L V‚•`%P T•/Êå‹òYù¬|V>*•Ê{å½ò^y«¼UÞ*¯•×ÊkÅ[ñV¼•çÊså¹òDy¢eŸ²OÙ­ìVv+;•ÊNe›²MÙ¦¸+²IÙ¤lR6(” ÊZe­²VY­¬VV++”Ê e™²LY¦,V+‹•EÊ"e‘2_™¯ÌWæ*s•¹Ê,e–2K™¡ÌPf(S•©ÊTe²2Y™¬LT&*•ñÊxe¼2F£ŒQF)£”QÊpe¸2\ª U†*ƒ”AÊ e€2@ ôUú*}•ÞJo¥·ÒCé¡ôP\ÅEé¢tQº(”NJ'¥½Ò^i¯´UÚ*m•ÖJk¥µÒRi©´Œ;aÆM1EVdEV$ER$E­¨µ¢RTŠJiª4Uš*•ÆJcÅIqRœ”úJ}¥¾RW©«ÔUj+µ•ÚJ ¥†RC©¦TSª)••ÊJe¥¢RQ©¨”SÊ)å”2J¥ŒRR)©”TŠ+Å•âJ¥ˆRD)¤R )”J%Ÿ’OɧäVr+¹•œJN%§’MɦdS²(Y”,JF%£’QùKùKùKI§¤SÒ)i•´JZ%’FI£¤VR+©u&IgÒÅèbt1ºH]¤.R® ×…ëBt!º].H¤ó×ùëüu~:?ŸÎWç«óÕ}Ð}Ð}Ðùè|t>º7º7º7º—º—º—ºººº§º§º§ºÇºÇºÇºººº{º{º{º;º;º;ºÛºÛºÛººº:‡ÎCwEwEwEwIwIwIw^w^w^wVwVwVwJwJwJwBwBwBwLwLwLwDwDwDwPwPwP·_·_·_·G·G·G·K·K·K·]·]·]·U·U·U·Y·Y·Y·Q·Q·Q·N·N·N·F·F·F·R·R·R·\·\·\·D·D·Dç¦sÓ¹éèèèæéæéæéfëfëfëfêfêfê¦é¦é¦é¦è¦è¦è\u®:WÝÝÝÝXÝXÝXÝhÝhÝhÝÝÝÝPÝPÝPÝ`Ý`Ý`ÝÝÝ]?]?]?]o]o]o]O]O]O‹ÎEç¢ëªëªëªë¤ë¤ë¤ë ë ë k«k«k«k£k£k£k©k©k©k®k®k®Óëô:½.ޤ“t’N£Óè4:•N¥SéþÑý£ûG×X×X×X×P×P×PW_W_W_WOWOWOW[W[W[WSWSWSWMWMWMWEWEWEWQWQWQW^W^W^WFWFWFWJWJWJW\W\W\WTWTWTWHWHWHWPWPWP—O—O—O—G—G—G—S—S—S—]—]—]—E—E—E—I—I—I÷—î/Ý_ºôºôºôº´º´º´ºßu¿ë~×¥Ö¥Ö¥–ͲY6Ë1rŒ#GÉQr”.‡Ëár¨*‡ÊAr$Èr€ì'ûÉ~²¯ì+ûÊäòÙGö‘}ä7òùüR~)¿”_È/äòSù©üT~,?–Ëäòùž|O¾'ß‘ïÈwäÛòmù¶|C¾!ß=dÙC¾"_‘¯È—äKò%ù¼|^>/Ÿ•ÏÊgåSò)ù”|B>!ŸÉÇäcòùˆ|D>(”Êûåýò~y¼GÞ#ï’wÉ»äíòvy»¼UÞ*o•7Ë›åÍòFy£¼Q^'¯“×Ékä5òy¥¼R^)/——ËËå%òy‰ì&»Énòy¼@ž'Ï“çɳåÙòly¦Ú×Ú×Ú×Ú—Ú—Ú—ÚçÚçÚçÚ§Ú§Ú§ÚGÚGÚGÚÚÚZ/­—ÖK{G{G{G{K{K{K{C{C{C{M{M{M{E{E{E{Q{Q{Q{^{^{^{F{F{F{J{J{Jû¯ö_í¿ÚcÚcÚcÚÃÚÃÚÃÚƒÚƒÚƒÚ}Ú}Ú}Ú=Ú=Ú=ÚÚÚÚíÚíÚíZw­»Ö]»I»I»I»A»A»A»V»V»V»Z»Z»Z»B»B»B»L»L»L»X»X»X»H»H»H;_;_;_;W;W;W;K;K;K;C;C;C;U;U;U;Y;Y;Y;Q;Q;Q;^;^;^;F;F;F;J;J;J;\;\;\;T;T;T;H;H;H;@;@;@ÛWÛWÛWÛKÛKÛKÛCÛCÛCÛMÛMÛMÛEÛEÛEÛQÛQÛQÛ^Û^Û^ë¬uÖ:k[k[k[k[h[h[Äýo¥VÑ*ZE+ke­¬µ¢VÔªµj­ZÛLÛLÛLÛTÛTÛTÛHÛHÛHë¤uÒ:iµŽZGm]m]m]m-m-m-m m m mUmUmUm%m%m%mmmmYmYmYmimimim m m m1m1m1mamama­ƒÖAë Í¯Í¯Í¯Í«Í«Í«Í¥Í¥Í¥Í¡Í¡Í¡ÍªÍªÍªÍ¬Í¬Í¬ý[û·öommmíŸÚ?µjÿÐþ¡ýCû›ö7íoÚTÚTÚTR¬+ÅJQR”%EHR„*…J¡R°,KR€ }‘¾H_¤OÒ'é“ôQú(}”ÞIï¤wÒ[é­ôVz%½’^IÞ’·ä-=“žIϤ'Òé‰ôPz(=”îK÷¥ûÒ]é®tWò”<%Oé¦tSº)yH’‡tUº*]•.I—¤KÒé‚tA:+•ÎJ§¥ÓÒié„tB:!—ŽKÇ¥#ÒéˆtH:$’öKû¥ýÒ^i¯´WÚ%í’vI;¤Òi«´UÚ*m‘¶H[¤ÒFi£´^Z/­—ÖHk¤5ÒJi¥´RZ.-—–KK¤%ÒÉMr“ܤÒi4Oš'Í“fK³¥ÙÒLi¦4Sš&M“¦IS¤)ÒÉUr•\¥ Òi‚4V+•FK£¥ÑÒi„4B& “†Iƒ¥ÁÒ`i 4P(õ“úIý¤ÞRo©·ÔSê)õ”\$ÉEê*u•ºJ¤NR'©ƒÔAê µ•ÚJm¥6R©ÔRj)µ”šKÍ¥æ’^ÒKú¸Ó£G#i$¤’T’JúGúGúGj,5–KN’“ä$Õ—êKõ¥ºR]©®T[ª-Õ–jH5¤R5©šTMª,U–*K¥ŠRE©œTN*'•‘ÊHe¤’RI©¤T\*.—ŠHE¤"R!©TH*  Hù¤|R>)·”[Ê-årH9¤lR6)›”YÊ,e–2J¥ŒR)ƒ”AJ'¥“ÒIHHHi¤4R)•”JJ%šD“h£Åh1ZŒ#ÅH1L ÃÄ1D Å@1Pü"~¿ˆŸÅÏâgñ£øQü(¾ß‹ïÅ·â[ñ­øZ|-¾½EoÑ[|.>Ÿ‹OÄ'âñ‘øH|$Þï‹÷E/ÑKô=EOÑS¼%Þo‰×ÅëâuñªxU¼*^/‹—Å âñ‚xN<'žO‹§ÅÓâIñ¤xR<.‹GÅ£âQñxH<$ˆĽâ^q¯¸[Ü-îwˆ;Äâ6q›¸MÜ"n·ˆÅâFq½¸^\/®׈kÄUâ*q•¸\\..—ŠKÅ¥¢›è&º‰ Å…âBqž8Oœ'ÎçˆsÄ™âLq¦8]œ.N§ˆSÄ)â$q’8Iœ N'ˆcűâXq´8Z-ŽGˆ#Äaâ0q˜8X,ŠÅb?±ŸØOì#öûˆ=ÅžbO±»Ø]ì.v»Š]ÅÎbg±³ØAì vÛŠmŶb±ØFl)¶[ŠÍÅæbó¸ÿ}u¢NÔ‰’(‰’¨5¢FT‰*Q%þ#þ#þ#6‹Å†bC±¡X_¬/Öë‰õÄzbm±¶X[¬!ÖkˆÕÄjb5±²XY¬,V+ŠÅrb9±œXF,#–KŠ%Å’bq±¸X\,"‹ˆ…ÄBb!±€X@, æó‰ùÄÜbn1·˜CÌ!泉ÙÄlbf1³˜YÌ(f3ŠÄ b1˜NL'þ!þ!þ!¦ÓˆiÄTb*1•Ƥ1iLšhM´&Z©‰ÔDjÂ4aš0M°&X¬ Ôj5_4_4_4Ÿ5Ÿ5Ÿ5555ï5ï5ï5o5o5o5¯5¯5¯5Þo·æ¹æ¹æ¹æ‰æ‰æ‰æ‘æ‘æ‘æ¾æ¾æ¾æ®æ®æ®ÆSã©ñÔÜÔÜÔÜÔ\×\×\×\Õ\Õ\Õ\Ö\Ö\Ö\Ð\Ð\МӜӜӜ֜֜֜ԜԜÔ×××ÑÑÑÒÒÒì×ì×ì×ìÕìÕìÕìÒìÒìÒìÐìÐìÐlÕlÕlÕlÑlÑlÑlÔlÔlԬ׬׬׬ѬѬѬҬҬÒ,×,×,×,Ñ,Ñ,ѸiÜ4nššššyšyšyšÙšÙšÙš™š™š™šišišiš)š)š)W«ÆU3A3A3A3V3V3V3Z3Z3Z3B3B3B3T3T3T3X3X3X3@3@3@ÓOÓOÓOÓ[Ó[Ó[ÓSÓSÓSã¢qѸhºjºjºj:i:i:i:h:h:hÚjÚjÚjZkZkZkZjZjZjŒ£Æ¨Ñkô}Ü?¸â¾´4jZ£Ö¨4*JÓTÓTÓTÓXÓXÓXã¤qÒ8i5ŽGM]M]M]M-M-M-M M M MUMUMUMeMeMeMMMM9M9M9MiMiMiMIMIMIM1M1M1MaMaMaƒÆAã É¯É¯É¯É«É«É«É¥É¥É¥É¡É¡É¡ÉªÉªÉªÉ¬É¬É¬ù[ó·æoMMMÍŸš?5j~×ü®ù]ó›æ7Íoj³Ú¬6«cÕ±êXu”:J¥ŽPG¨#Ô¡êPu¨:X¬V¨Ôê/ê/ê/êOêOêOêêêêwêwêwê7ê7ê7êWêWêWêêêêgêgêgêÇêÇêÇê‡ê‡ê‡ê{ê{ê{ê»ê»ê»êÛêÛêÛêêêjµ‡ÚC}E}E}E}I}I}I}^}^}^}V}V}V}J}J}J}B}B}B}L}L}L}D}D}D}P}P}P½O½O½O½G½G½G½S½S½S½]½]½]í®vW»«7«7«7«7¨7¨7¨×©×©×©W«W«W«WªWªWª—©—©—©«««©©©ç«ç«ç«çªçªçªg©g©g©g¨g¨g¨§ª§ª§ª'«'«'«'ª'ª'ªÇ©Ç©Ç©Ç¨Ç¨Ç¨GªGªGª‡«‡«‡«‡¨‡¨‡¨©©©û«û«û«ûªûªûª{©{©{©{¨{¨{¨»©»©»©;«;«;«;ª;ª;ªÛ©Û©Û©ÕÎjgu+u+u+u u u‹¸…Õ¸‰¸jÅM+µ Ô‚úõ?êÔMÔMÔMÔ Õ Õ Õ Ô Ô ÔõÔõÔõÔuÔuÔuÔ5Õ5Õ5ÕÕÕÕÕÕÕUÔUÔUÔÕÕÕåÕåÕåÕeÔeÔeÔ¥Ô¥Ô¥ÔÅÕÅÕÅÕEÕEÕEÕ…Ô…Ô…ÔÕÕÕùÔùÔùÔ¹Õ¹Õ¹Õ9Õ9Õ9ÕÙÔÙÔÙÔYÔYÔYÔÕÕÕ©ÿRÿ¥N§N§N§N«N«N«N£N£N£N¥N¥N%˜“`¢…h!Zˆ"…H!L„!D…@!Pðüá³ðYø,ø ¾‚¯ð^x/¼Þ o…·ÂkáµðZð¼oá¹ð\x.<žO„GÂ#á‘p_¸/ܼ/ÁKð<Oá¦pS¸)\® ×…«ÂUáªpY¸,\.„ Â9áœpN8-œN '…“ÂIá¸p\8.ŽG„CÂ!á°_Ø/ìö {…½Â.a—°KØ!ìv[…­ÂVa‹°EØ"l6 …uÂ:a°FX#¬V +…•Âra¹°\X",–n‚›à&, „yªתתת—ª—ª—ªçªçªçª'ª'ª'ªGªGªGªûªûªû*/•—ÊKå©òTyªn©n©n©®«®«®«®©®©®©.«.«.«.¨.¨.¨Î©Î©Î©N«N«N«NªNªNªŽ«Ž«Ž«ŽªŽªŽª©©©ö«ö«ö«öªöªöªv©v©v©v¨v¨v¨¶ª¶ª¶ª¶¨¶¨¶¨6ª6ª6ªÖ«Ö«Ö«Ö¨Ö¨Ö¨VªVªVª–«–«–«–¨–¨–¨ÜTn*7ÕÕÕÕ<Õ<Õ<ÕlÕlÕlÕLÕLÕLÕ4Õ4Õ4ÕdÕdÕd•«ÊU媯¯¯«««¥¥¥¡¡¡ªªª¤¤¤   ê«ê«ê«ê­ê­ê­ê¡ê¡ê¡rQ¹¨\T]T]T]TUUUíUíUíUÎ*g•³ªµªµªµª…ª…ªp²î0|)!%€$@L ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL )T–xQjhiÒÓIO'=Í’^—½.{]þŸ ñ#&€Š ë{×Ðþ*Y©`¥‚• &d¯'¦›˜nbºŸq>ó¹?``H¡º¾w í©’í=Ú{´Ï’`êU¨W¡ž9“9“9ÓÏ5Ÿù\ˆ00¤PIt5=_û5khO‘áÐÓCO=%Q~®ùL ~ÀÀB%mÐõ«Ý ù×ÙëÇÇÇÄE¿Ãö Û3lÏÏ5Ÿ €ĘR¨îëãkßÚ°½îõɆ'žlhmïj¬q°ÆAk[üBñ Å/$O€$``ø%Ûë^÷XØca…ÖönGÇwtL u <€ €à—@l{>=|zøtkû•¯w¾ÞùzÇý÷¬.³ºÌêbí}ZôiѧÅ=Éß{EL ¿`ûÛë=ÅöÛSÌÚ~ÅÝ*<´{ÒîI;kït¨àPÁ¡Â÷®0€äAL ¿`ûÛë6CÛ m3ÔÚ~ªrªÊ©*)§À’00€ÿ‡¸ÛÌÆ]k8ôôÐÓCO7ñlâÙijlϲ=ËöÌïœß9¿sŽ‹9.æ¸Xìn±»ÅîV?_ý|õó2tÊÐ)à?.üøúÞë{¯ïQÉ+ùÿh1ZŒO6<ÙðdÃ~µúÕêW«±wcïÆÞq3'çᜇs.µ´ÔÒRKfl˜±aÆÎŸ;îüyW£]v5 ò ò òúQ{}çí·wÞŽté:ÒµalÃØ†±eF–Yfdܘ‹¤*’ªHª:Ãë ¯3|`úé¦?“ýLö3Ù“óh¤ HÊÚ•8TâP‰C–{7Û8Û8Ûhí§:EwŠîý£f`ò÷À^ø!‡C‡ž{Bî ¹³Ø,kꬩ³¦Žûï—©_¦~™:!cWc\q5¬õyèø¡ã‡Ž'nïâ‚ɼ£òŽÊ;ÊZÿ]žwyÞå¹-5ì5¤×^C¬õðêÁ«¯ÆßCâ‚®,Iê›w;“9“9Ó–[vnÙ÷ ¶!n6&î($|ý3ûgöÏÜzrëÉ­'Û2Ú畞Wz^é{B×§]Ÿv}Zkc5xÔàQƒ-àSíSíS­µŸÊ3#ÏŒ<3¾_ŒJ yø?<ƒ=ƒ=ƒã®ÑÌò$Úøhã#k}.>±øÄâ é'q{Ý1ï·ø{³öSñ0¶|lùØòqOö¿ÿüsàŸî«ÝW»¯Ž Èãž-÷ßÇÆwl\Üs‚¿¾a¸¥¢¯Š¾*ú*áÇý[ƒÛ¸çûÎê2«Ë¬.qWñ†- [¶4î9ÖxxàaBæö÷‹$=YôdÑkÛŠ{Êoü=ÄݤÚö+Ô¿0€äAL À¼uîÖ¹[çZ}‚oPÖ ¬Aq±î÷¸þ2þ>ׇ¯_žT‘O\`™ðQ%îIÀÝ×w_ß}½µ>ãžÃj{õ¾uTß#6‹ÿZ긙³d×’]Kv}kdÿ ™D,ˆX‘´3°alÃØ†±ïg¼Ÿñ~Æÿ£ÓLæLæL éó{\M÷kÖ¶˜ðgl'tM y07?Ûüló³Ö•gLœ11‘áJ¢²±ÿŒýgì?Ö:ˆÿ†·q׌&|8qO8Nx(˜¸'[ë­r¦Ê™*gJª«W¿õP$moï–½[önYü}~kôûµ«c®Ž¹:&Û›lo²½±ì¹ØÝbw‹Ýµý6Úqʵ)צ\›¸Y'mUËŒ,3²ÌȤ &÷yÜçqŸø¯ÎOø¶æ•˜Wb^ k½iëhëhë$í÷ 0€äAL À€Y T¬x°âÁ [ú_>aù„å¬õß¶eÛ–m[ÆßƒµŸ­X¾bùŠåü,]³tÍÒ5–ýS„)ÂÛƒ¥øo®;|ÝðuÃ×%¼n)9ž¶vÚÚik­õ& ’ ¶r¶_¥šöæØ›coŽÄðÐñCÇOžÛ)O99å䔓ֶµ¶øÚâk‹'¼·…_~Q8þ«·“6R%<€ €˜¿Ž©,ùgöÏìŸÙ–þ½³xgñÎ21ò¿[B‚«‰é&¦›˜Îö৪ªÊZhû“€×§]Ÿv}ZkýœªrªÊ©* ¯[Ê €cccãïÍ£½G{ö¶Ï̸~¬meÓµM×6]³e¯¿õ,=i÷¤Ý“vÉs;寯 Oª˜9þ1ÇýÂDR}ÏHÀÀÌ… 9r°¨Ä=ý÷ÇŽðÒöKÛ/m·6Â6>ÚøèÿÑE‚ŸÛjË“€ãÞiÙCÞQyGåõcƒ®¤êíZßk}¯õµÖOÿ*þUü“*Š‹ÿ™Í#ŒX0b-{÷+¶Œ0ZŒ£Åï_—¯Ë×ek=;»8»8»$n+ósÍÏ5?—µž{7önìTŸb`Ƀ˜€¹Ñ—F_}±¨t,èXÐñdž+ñ_uÚõV×[]oÅßÃÙg>œiù³57×Ü\ssܯ¸bàŠ¶< ØÚ[On=¹õdû€=YôdÑkýŒ«1®Æ¸I{ôãzö¶h{ìý±·-{}tÎÑ9Gç$Õ¿_0wópk=ï Û¶/,q=ÇU2y®`&<€ €˜gu™ÕeV—„_{¼ßñ~Çû…OŸ>=9Çim<%•8TâPüñÏšjkª­©fù³£F ŒŠ{OÜÓŽ/Å+ào}>küûûcàöµÛ×n_;%_/žð½~ô2èeÐ÷ÞŠ-Ádü×@;Tp¨àPá{?kyN“9Mæ4ùÞUúQŸ ö‡˜€9ðuàëÀ×Yl]¸ráÊ…+aKÖ†-ýãŒ{ækââk7gÞÕhW£]þ÷¦xoÿ“€­ÌqÞ\zséÍ¥oÝß”;ªÕŽjkýÜßvÛým)gnÇ¿×A^A^A^ß{+¶“§‹ž.zº¨µ>û6ëÛ¬o3ÛƒÏ "DXÛJíiµ§Õžö½«ô£>ì00€ÿ¹{ÿîý»÷‹Ý-v·ØÝ,I$îÚâG£~4Úö~õaÔ‡QÖ¶wgk?›ðÐ(qOS†N,ªÎð:Ãë ÿ±‘mÒöV®M¹6åÚXëç“ôIú$¥œYýÿØëLæLæLß{+¶“='õœÔsR–ã;‹ô¹`€ €üq!kÜm~³¦Îš:kê¤ fLœ1qÆÄ¸kŽ7Bk=;»8»8»X¾ßÚSN+›+›+›-C£¸Û5ë“€­jbº‰é&¦KÚ=ý±p~çüÎù­õ“ü7OÎ&n+‰ÛV\%SNôëêëêëꛎ0€ø°*îÿÆÕWc\jwªÝ©v'%\S8é餧“ž&üy¨ÖnݧEŸ}ZX¾ÿYƒg ž5Hø˜Î|8óáLkï¼¼òòÊË+m©J €³{e÷Êîe­ŸÇÇÇ”6‡ÆxßûþØ÷GÊ €+¬T°RÁ”p,€Ę@‚|ýqO ÕÖÑÖÑÖÉ;*屮£’3¾:æê˜«cÞ[¯!½†ôbù÷Õî«ÝW'dãðÊÎ+;¯ìlùÎB… 9ØJ¥Ì8þ›„¦ÌyûsÀm[¶mÙ¶e–éÇ `ñ#&`“¯ÿÏÂÍÃÍÃÍ£ÍÐ6CÛ Mx0œópÎÃ9'<¼‰-[>¶¼µÞü¹àÏZaÂ㢄? 8îvÙ–ïìü¹óçΟí/ŽÿZðWo^½yõ&eÎÏŸ%H* •µ~r\Ìq1ÇŸ÷|Š©‡©‡©‡YÛúHב®#]ì± ?``ß…µ§íZ3bÁˆ#$®ÿ¯éýô~z¿¸÷ølõÙê³Õò=e{–íY¶güq‘µGÿŸ'g2g2g²6’­s·ÎÝ:7©j˜ràøÂººº”9–xÇ 6|°ÖOË-7¶ÜøýÂÎW \1ÐÚÖãvò `ñ#&ðÝEöŠìÙ+þØ¦ææš›knNxŸq7p¶ìçë+wtÜÑqGGË÷¸ìsÙç²/þ¸èeÐË —AñùÞÑ{Gïñ¥pUŽIDATµü󬩳¦ÎšÚö8*eÀcši>¦¹µ~æ4™ÓdN“¤?qW–7Œýÿo’ ’œ5LÜV¾u[q7W·Ö϶ñÛÆoÿý>­ïg¼Ÿñ~Æ÷¸40€äAL üÒö…í Û6câ·¸€3©¶u]¾._—­Å6ùó;çwNx„ãÛÖ·­oÛø£ é¦˜ÞòÏ×§]Ÿv}Ú„l%þ'/›·lÞ²y–ÛØ»±wco{ €÷¿Ûÿnÿ;ký4ñlâÙÄ3igiÝu{Ôía¹­¸8q·òN™ð»eï–½[f­‡\î¹Üs¹'OÌÿ¾ô/Õ¿TÿR?jˆ00ðKzzèé¡§­E)#'FNŒLªmyyy%UÇZoÓÖN[;mmƒ5Ö8hù·OµOµOµ¶ô÷$`gggË¿9hæ ™ƒl¯XÊ €ý*úUô«ø=®µ ÚsRÏI='%g ·•„o+îZgk=´mÙ¶eÛ–ÉsZûå†8…3Î\8ó n €Ęø¥-ˆX± ÂZ”"L¦S’j[—W^^yyeü·€þÖgêî©»§î¶ìÍZô[üBñ Å/$|+q·Ûµì§Ä¡‡J²¶/ž¿yþæù›íK™pBz‹‹Æm¯Àä“oL¾am+ûþØ÷Ǿ?’s¯·•„oË©€S§ÖzØ]uwÕÝU“ç›!îùÙ_ßÌ<å·ÀâGL üÒn8Ýpºá”Ê9Ê9Êy¤ëHב®ñoåÒöKÛ/mÿÖþãbË„´+;¯ì¼²ó·n%áý÷iѧEŸ?c÷Lå¤í3Û›lo²½ùßh3™3™3%¤Ï¸ë§«¾¬ú²êËøoñmOð×{dû/.$•%»–ìZ²Ëö>i0€ø0¯_¾><þXåë›Áº¯v_í¾:îšÅà‹Áƒ/FöŠìÙëeÐË —A]r¿Š~ý*Æ¿Eggg—ÄEDq·GŽ¿IIHÉðØÆþ3öŸï=ÚJ+¬”Ä¿LwÕï×Ï«þQ5LÜVâßVü×=w;ÓíL·3?6Útópópó°6œ‡sÎy89oÇM ~ÀÀþ¯¯ž \^S^S^“T1žS§N^=xõàÕïÕÄ¿õÅ'ŸX|âûõ¿èÉ¢'‹ž$ç}koq·\þ~°åVòÌÈ3#ÏŒÄm1÷²ÜËr/ülð³ÁÏân4j˜¸­XÛVlùØò±åãÿ©#«Ž¬:²êÇ~%¼¾÷úÞë{¶Ï`Ƀ˜€u_…Á®¾®¾®¾qWîVÎT9SåLE‹ Ìq1ÇÅs¹çrÏå^üBñ Å/ÔÜ\ssÍÍ2tÊÐ)Â?ü¹àχ3Î|8“x&%ˆrŽrŽúß-……)ÂaJÙže{–íwã"ÿf›šmj¶)îÚrÔ‚¼‚¼‚¼¾~ÒsÜM¿K*q¨Ä¡¸›fÇÍ¢jwªÝ©v'n‹kª­©¶¦Ú×W]§üªÆ?N[þögÙGH9€ €$WàÙëqüQ3‡ù°00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;AL ÀN°ÀÀì00;A vŽì„ÝÀq8À~v_kx­áµ†ÆÜ hylny“¨å³¹åO¢VÀæV0‰šƒÍ­PµÂ6·"IÔŠÚÜŠ%Q+žD­„Í­dµR6·ÒIÔÊØÜÊ&Q+gs+ŸD­‚Í­bµJ6·ÊIÔª$Q«js«–D­ºÍ­Fµš6·ZIÔjÛÜê$Q«ks«—DÍ1‰Z}›[ƒ$jN6·†IÔÙÜ'QkbskšDí›[³$j*››DMDMcs“¨I67m5Ùæ¦K¢¦ØÜôIÔ 6·¤Ò<‰Z ›[Ë$j­ln­“¨µ±¹9'Qkksk—D­½Í­CµŽIÔ:ÙÜ:'QëbsëšD­›ÍÍ%‰Zw›[$j=mn½’¨õN¢ÖÇæÖ7‰Z?›[ÿ$jln“¨ ²¹ N¢6$‰ÚP›Û°$jÃmn#’¨´¹J¢6Úæ6&‰ÚX›Û¸$j㓨M°¹ML¢æjs›”Dmòÿ¯]3\3\3ØíÀ€ïì0Ø `°À`'€Àÿ§½ûŽŠêøÿ?nLOl€‘.½I¥H[ìb‰Š-6@Qcïb‹boQ£±÷ÞE±+JQÄ{G…hPQ•¶¿?n¾çÇç,KV½Ü}>8gNN"æîì{†™y±÷$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚@¹—û"÷Eî‹ä½É{“÷Î7žo<߸“{'÷NîÖÑÖÑÖÑÕT ç¤ç¤çÔèN£;îŒß0~Ãø qâÄ xÔèQ£Gèaʳ„0c³‡0“³Š*ó0S ³–0ƒ ³™0³ÑÃðq.̽0÷ÂÜU_®úrÕ—½ZöjÙ«¥[ ·n-ª©Ìg¨ÏPŸ¡o ¼1ðÆ&«MV›¬®;^w¼îHßPæmŸ·}Þö9qåÄ•Wf¯½vöÚ°¸°¸°8óaæÃ̇©2ó´0haÐ"tZè´Ði“zNê9©çÁ؃±cÿ™ñÏŒfÐÃ`çÅÎ Õ(g.θ8ãâŒ1ÍÇ4Ó¼Ú'Ôþaû‡íô;èwÐïÍâ7‹ß,æ½Ô‡0ê…@˜ >åü#ÌxÂìÇ{…Ýïr¿Ëý. ´h-вɴɴÉü43³oŒoŒoÌÚek—­]ödÍ“5OÖð^j$H$:óæÌ›3o†ÜrkÈ­O¹2 ···ˆ?.þÜû-ï·¼ßÂv^ì¼|^‹²e/ÊîÜ¢s‹Î-„¾ÕæV›[mè|^ÀDíéÔ§SŸNuiÖ¥Y—ª‰L·Øn±Ýb/u¾ÔùRgù{ù{ù{Þ/@"ÞËßËß £[éb›„YQ˜!y»¨ìžÙ=³{n±Ýb»ÅÖ´½i{Óöâ™™}nøÜð¹qxÌá1‡ÇäÆæÆæÆò~RòhÊ£)¦L1qÄÄb[öêÕ7êÆë¯o¼æ;/v^>=ÅÙ#ñËÄ/¿¤gðyÓL{0-Ê;Ê;Ê»ä‹u“ Úr­ÍõúšîÑO mnµÜ¨}‹®ÖÝ.ÊÒÌkxÙýªß@'¨äÿÇ Ž7$ù'ù'ùóå—0Š…]ò™ÁîW‹©:A²´º6^-ºÙ] m0Ó¨}½¾î&ú‰& ¦hm.ùÿE˜-…™“w€ô¼6{möÚlŽÑ£9F%Ÿ3«§k¤iX×n<ªFï¦Ç­¾7ªÐ2Ã:ÛØ®Ñ ‹»†]_öѳ+­#ã =7ôÜÐ3W'W'W‡÷(nçÝλ×!ºCt‡è’Ï f«Þ2 ²GxMÓÐËoŒ†7¿˜h´'Xæõ¤æmëMµBµW”üÿâçâçâçröÚÙkg¯ñB}v^Úa&û,¦ê÷vÚ[ׯ`µç® ;þ3k8ÚŸu7Ñ2­qÈ` ;/e‡âD @^n{¹íå¶1#bFÄ|è<ÌÆö‰IûM¶s¹xói‡Å¾äò¨¨k7ë|ÝøQ­æw<»ïå‘aµöC¯Ç+Í+Í+íšÓ5§kN¼³€ø £U¹:Þ‡÷êgµö¨Öž]7۷˸\žšòqíͧÛOù>ÚôhÊ/.ÃlŒ0ùàO¶ ³¨0£òÎ(¿òäȰ¦Âš k*|ðÍ™ãL«éwùCT¥v… mßzï̳í‘'ëùq+Ã×ËÃÏL‘·nZWkÆ¿öÁv_èëéX~èUì}°÷ÁÞ¼³€øe´Êh•Ñ*J%’èHï2=ô{³z;œgÌuûêÎ?»Lýæ•deø`ÆÞ)õ®h0˜G“þ[;l°øàá6Lo˜Þ0ý®ö]í»Ú¼³(ï;/sËÐÎ]ãœgXý‡G&sÜ·ËÏoÕªÔÔk=kN7Û~Êaë/áS~1Ìô>Û`;/%A q"ð™ÅUŒ«WQõEv¯>Îqæ#Ï=hkìíW¥ÇKY·’Ľª·ÝùyN½]sòŸë0Võ«îÝ7ºïÛÓoO¿=Í{ ˆ‡0*…ªúˆžûÓ<‡±ÝÙ[¡Þ®’ç©ÞæU9'ëvîÁºŸ½zõi“`>Rõ«fWÞkåËÕð«áWÃÍlÌlÌlT™ëB†™·4èp(&ô‰ÇÙ¬éA;>ÍÊðù€n÷C·º6rwmk·Jÿ'Æ*…1UVmXõñÕÇW_å½Dd¬|¬|ì&ëMÖ›¬U_k ÎéüµåË?oÚèÓ«Àãt„ìî§Y¦uØ5Âoë”ç}WÛuVýjgü<ãç?çvÏížÛ7âßyÙ˜uÖ’çµfvÖÞ % zUo}£WøžŠs;=á꺟M‡üÕ&ÕCœ€|Y‹³g-îšÝ5»k¶*‹éeßÏ®ýôÕ¦ðAAŸæP¯ø6¿OÏÁ²] ç[ʽ¶¹Œ5øK÷º*¯âJò•ä+ɼûÀç%ŒDUƬËX»/t¯'œ_ëµ-¿OÊIÙ' }‹o_m:Þ1(hÙwc:Ö~ªÊ«fZaÖåÝ NÏ ž<ÿ½Ïï}~ï£Ògn6zv³Êx¤Ý¹»¿³V†B{#ªÃ¾³:k9D›ª4?ï6Úm´Ûˆwø¼žx~àùfsšÍi6G¥[»¯œ´Þ%4»VbõàJbXæÆœj$ :ôåï=vš6Ü¢U🡌44¼z7ôn(ï>ijóÒÙeže÷…ËÆÑ†Kc}­ÔH9ùiBßâ[ïm‹¦ïhç±pLGv^ŠG q"ðIÝŽ¸q;B•¥óí/8Þzoy'ø xŽö”µ‰[y]Õ^¬i¢Ñ¼ø×µÅl‹Ù3*øô„Ñ÷ÏŽZ\=R£yâÄe^WÅp¨W|ûÞ:y@ðÁ?ÚŒu¼¥Ê¼*ÌÀTñx=ñõÄ×C3C3C3‹ŸÁúnwmb1àé‚®ýú‹exg]Çå~š.´Ì1|ûè4¼ÓðNyGòŽä¡€Oéb•‹U.VQeµvêDoç¥ygRÉfŠ}xpùï¿z,Råuès Ï>T>×ÎKÃT«OõH—ÔÑÓ—ˆ!î-¾õy¶lTòÛÆÝâGƲó ˆâD àI–4,iXñKä¶•lÇšè?5í* h-þ£=Å6Ï·ç—²_þxô½ãüæuÌ×1_Ç|-Ÿ$Ÿ$ŸDmeh’|’|’0âþã—N^²u,Èó=uSö‹øöÛ§¦w´n[©þbýâ_©0S>¯Ç‹/~¼Xç{ïu¾W6_éÖz¥Ùûb\Ø ŸËãÊPhönžï9ä?nd½-d[ȶ7FoŒÞð™` Ìí뾯û¾îÅÊ(‡Ö)æ.™Õ޵ ÜZW†ï’£‚÷O ëwÄnWñ¯tÁûï¼§*ð)w^¶QÝ FÙúƬhwê¦ø£_Ŷî÷ó;ÜaxÀÛ´þbv^À'`eîÀꫬ.~Y¼-¿Ñ]×cå÷hO±½Õ°Ãß\½#Z5¿Qöªûwïß½÷‚9s æP'@éF–0Ê”A½#:75¿¹Õp‡¦ony<ÚSÖnËŸ¾ÊõØ|æcõÕVS'>½»‹ï.¾û¦ã<ë\¶é‘³¾Go™†4V†/‡‡W,h?Ê.Ùäž²Wmmmy%óJæê( ›Žn:ºéhñóÏAùïç^>^>žšJÁxùxùxad)w]¶‡Ö2«ÿvsRHp¸”ø ·7{lïê{²øX˜¥)ŸÆ_5ÿªùWÍâ祸UÍtÝwKue(ψêø‡kà Ç‹ÊzÀâo‹¿-þ~Ýâu‹×-¨ ´l©½¥ö–ÚÊÆ]ͬ4ãìÚ»¾Þ}©® _µ:^#¨vãi~‹ Ç)WƬŒYIµ tw^Æóý߇ÖòY»t^Rˆ”¢ß­gÅi·weç¨3`ˆ0€2qÆùŒóge _»¯õõu¬ž÷èv;°‰dø ·¡QV!F'y÷µí¢¬O&Žž8zâh*(9a4)k“z×¶í"M 1’ê_áöy£ß6±ûÚÂJÇJYŸ36• ì<»þìú³ëÅŒ^láýZ-V†ò¨¨}Gšw­¬7¼/x_ð¾³;gwÎnê(‰#æG̘+kA[¼Ô|…Û9÷ü¿s°SÖ?›'lž°yU|a)_sî ¾é`§G{ŠmVRBÅ #îÖ:z”õ0{SEJWnõÜê¹ÕÝF»vSz@|«o‡T¿/ÕsexbHË1^?+} 鱨cQÇäYò,yµ|¨µnÔºQKÙøj¶3 š‘Çû¼“ºÁOÕn}87uHˆCô¢ð<ëÊúç°æaÍÚT>nçe}ëgÏÁ7Õ!ôUl}´_H¨¨ëfù›ƒ;/@}Cœ€”šÃÃC‹\‹\‹\Å{¦;uVVÿñõËðŒ ™êyÀW¸xÝ{¦í e›+îWܯ¸SQ€ê„Q£ôS¿×{÷³¤žÑoáöõ˃fšî4¼YýÇ"n:šk‘k‘+ÌäT€Ò2lú°éæ+›Ÿ¯ýÝ~”¯'+ÃÃfÍky¼TÖKkÚ¯i¿¦=µ¨.ëǬ³~T6¦|]]»ê½ß˜|%øšZ¯§.ñê{²½½Å0e}uñýÅ÷SQP}çe9­ÍÓÞýÔ3ú-Üzg,n~¢£Ö`ýã†7Ùyê€âD  ÔŒÞû{eSðu«öó|eÞ©ÞæMèi(‹ÖÓÒª¤qW±?ö'ìOØOÕaD(Ž=-Öwó&¤hÈ¢9¼S½½nµu¹¯LÙ|.ÌöTU44lhØÐ°ˆcÍ!»œÝYï}h;ðˆÛyËŽŠýù«Ñ¯F¿Qo€àY¿gýžõS¶’y˜·Ñߎõžêí[§ÄÇÁ ”õçåú—ë_®OÕ±óÒXR=C§µïÜS4wUo=æM²u9;/@z€KKžVžVžÖÎu;×í\G\rÀ>Ò²ìeÙ˲'Ü>®.Íïs`÷qmÒãV'ëqc%»ñvãíÆËwËwËwS{Pk»å»å»…¡8R’/oSÇ’c»kû¸†Y™ßWìUa¶§ôïšÁ5ƒkJŸo—çØ#_ÅJïCÛçŽÝNú+ëÕÓ_L1ÚbÆ Œ¨8F&ê³Ïök¼kcš}Þ-K±W›x5ñjâEÕ±ór­:¦Ûò6ºךž©ŸfÅÎ à²@\rÀ>XnBnBn‚²IöqJ—oüçs`÷‘í¥¨v!>î­ _êE+öí…ÓN_8MB £@qt¸·v¨£-¿”º‰›û}lû8e¿¦ÿ|es»0óS”ù¹Öϵ~®¥8{ì·h¶ÁãÖx%i§Ÿò3³ÿJ±oç_œqþEjêìͨ7£ÞŒR¶zyùm¼vàCÖxù )÷dûµœ5'TKRìÛ{cî¹7† TÏ—®å6‡:~«&¥n"Êý¸¶NøÜ6û5ÙyRB\Öƒ?0€vBû„ö mÅ)52Ï©o­=Ò•Âç€GµZQ§²bwžØybç‰T Ô™0 Šøìï¨åëT樮ämdÞOšµö(ö°0óS=K~–ü,Yégôt‘McuW¢Ï_éþu`„ÒŸ7>oXhçÐΡ‹xîïòöÇ|»pHWò6?¥ç™ÒƒÔׯ^;P‡P7Bå+ù)§«É’?ý¡Ø­¦;´}s _I¹ðò­y¾]{X˜ù©CŠV?Zýhõ#Åycy´¬†“ëºÒj£Z;73÷VìçÔ©7RoP‡POkÖ:¬-â®T¾ûÖúóŠ+·ñ)C™ÇL·9ömÜNØ'ëuÐ]¨¥‘`±ÇD^=K<×ùîZ²sðFe+𜈜ˆœêPÝv^¾V6:]ø¶ž¼yê‘­yì¼i þ\ƒ‹G àC¶¯ ^ñt·®ZÃ4Mä‹£‚BjsŒèlæÿ½bo·Éj“Õ&‹j„º*_qD<Œˆsñÿž¸tÛ?NúÞ±ˆÞ~ PÏ\Ÿ¹>sUœ+ü£Íôj~ÁZ®”ï3±çhÙ>¥7‚ž–7-o5 õ±éȦ#›Ž(Ž….3;¸ù‰­eµÀl¸vWášG ì6ÑêîÞÛ–úÎÎÚ{âMб­'¯~±9Ó'E±·‡,²lÈ2ªQ}v^^ÏçüçBp[º­m—îG}ÏÎ (ï€Å†0X@ àürê—S¿œRœïÅwJ®çÉÁ\)· £C•ý@Ê›;7w.5 u T»ÒÏF,LâH\ºí½øØvõ<_—ðS€š 8Øú`냭çŠMý:¸ìc-Wío÷#–Š}~çÔSw˜Ÿ¡Fš}ÛìÛfEÝ{ ê᜹ø×Z…¯Yˆ~Å|µy#S~Rº–˃©IuØyùÙ®ê–:’ȶt[/ïY[cÛ±óÊ;`1Sç0˜€jVÈWÈW(}úfBÏù²$ŽäÊ¢6õjf]Äfûžå=Ë{–&ÔP튣 Ú4|¹õ¨Ï{&Õ8?áô²$¥Ç|+ä+ä+¨L– X6`Y÷f˜Ò¹¶¿«¸²h[zSìó -7´ÜÐ’š„ZáË—7NqèU×i£qOþ"õXH`ù €…õ¤ø¯¹Ó£&Ù¦ë{>#1#1#‘Ê”öÎËüN‹•áË kË¢õýseÈéÙyåp¹YIªYL @%¯º¿êþª»âô×¶®ís±ý=¢Ëÿ7“gû̱«Öv®í./—{†ßê>×]¨™¦‘`Û³Æ=¯‚×ÚQóÝlzìžu;è#Îc¾ø”w= {>¶Kl—Ø.T&ÔP튣 >eqÏqÀV\_Ï»oÇúw›60O0 ¬~Dw¡v–F‚ëûôÌG»G µ>ðÜèȹ@1óµ­[ÿ¨‰¹â«~"P™ FŒ6]įúôì&[/ºèt«6^÷»Ýq|d–$¬uÖkNÔ˜éh_3D'­ÍjÛ¶&÷ÍhÖ×=½À°gœì†8W†Ïgv{Xħ®» í6´ÛPjê }@ú€ôŠ£`hL—ºVå%ô-/Oÿ-Ünq›:ÈÕHñjOfžÌ<™IeJ{çåR}TƒÅmÄ:Žî÷vúQƒÙžƒokí¨9Ê(Ec—¶«ÎNÝÑVÃëYU ›ýËlŸ¾K2ûz:Nÿy‡öÿ|šYd¯Åð„·oý£ì¼€ò‹¸+\›å:½Ú¶¿=ñïå™´©ÕÎ:z—÷µkì36>«Å ¯ïƽ¯k`3OøLðÿþ¶µ¸ŽùrœzÔ ÎVìyÙZÙZÙZ*ê@¨vÅQãtÒ?8[œð¿7©–…´žp(tAeã»ÏÚ鶪Ÿ^ûÞS5¾¨v¦Úÿ| ¤ÀðtKÙ ±óì¸bT‘НKø‰@eêìÉ?Oþyòâü0æaÖ6úâYGM<ì=Áö—#Ò…ši 㾫s¦ã¡ÐÐ+ÇÏ™¶¹æ]qÝ–úÉÎwïšåÕœ^ÔçðÄø9`¿:¦þúcŠºZ@úVl]±uÅVÅú¿þ~[ïòò¸òx èWÝ[¹*ö|dFdFd•)í—¯Éòš'ýÅ”š8¦µXPøÚL*6i~ÃѤï¥i2·uº¬Mvˆì3mòOª„Äâ €]ÛŽ ^1ŠP~K‰”Â``*Y »@w®âÔvß¿Sv½ŸDq«ä¬/¼¾®JãUµ„j£¯l¿Û7LÙžâk©uQ·OõÉ¢;æ»Õ.ÄGñj5+kVÖ¬LeBÕ^Ä1÷åÔM!>b €5hʪÅq^8ÉÓ±ð_áÞ0MæÚ^ü·û»ï{¤ÞOŠ×)üD 2uv5æjÌÕ˜"žD»¿ÁTQ¬ ï}Ñil½Jš4 «Åê÷ÒúG³Çµ©íÃ|Í”ýùo!»Â#ÀÊGü1pÿnF™ÀPO#¿ùÍÈ">ÓÿìÚ‘öÀe׿›¤Ì­Tìy¯/¼¾ðú‚Ê”öÎËÏcÕäÔMŸ7"uÙ0ZoéÿÜ}ľy”á¯O„ÿªì8ÞjIû~I‽ZÍʉ=ÂÎ (¿€¥ª¼‡ÁÀT2bÞˆy#æ)Ng/zu÷ EhzjÔOGêðÛxKû)ã|žØ…¨r`§‹ó˜Ïy¢AŒî ŽùÀ2Zà<ÑÖWw…Âànwšß0KR%Ð-ü]"}÷ú‰í˜ïE¯£'+ö¿ðÊÔY¢[¢[¢›âüp¼r‹÷^•ŰvšpÆÛÆÖC¸ªé­|³íž¨²ÆËmÜc“ÌCx*°ðçû„¸Dš?ÛÊð·ùþZ±2„zj¯Ù^³½¦bý¿óM:C\†mVê‰ Åž×0Ñ0Ñ0¡2¥ºóÒgÞÑÖWŸý­ؤù ᪠õëØÊ4U q}ï¯}º¥n3ËGÄ{W^øÛÑ ì¼)ÍŸÀÒSÃà âÊ£ìЈsÁ:â¼9^ñÇ|ùö=;ÊÖ̽éŸè°Lüpãí–A†S¨7@Ðx»_œáqÀñY‹‡{}§Ê÷î=ﺇÑÿݲþÿ? N<Ç|Ù¡‰žÁ:ÔÕnì$†µS»Ává&ÿnË÷·jãuÿC×µF}õNŠme¸viý®Î+©7 °¼­).²IÀeÝZu7k®ÝšzS5§¹ùøÅ‰!"Õm5ܱžpUN׆uÿ½¹ðϪ|¯²W'žØ§ë’㉞ÔHÛüJó+ͯD  Üx÷WdBðqÀ™ºÜtL«…ç’•ßȶ:-«[§§eØ»MúioѦìu‰íµ´u¶ibF½‚¶Îõ÷™˜‰3~´wo½Gª|ošÉ®F~E~²_,|ïþJ®¼…z º+>íFû,ÃÚÉ=Ö¨ºÞo%Eæ ºIÕˆm}¸õÏFý\GQo@aú§Ce× €ËºuÍ··×s¤ÞÔ‡áqoÏúû>o8ê»âŸ”ÿyÎ,¯Ý ªÿ N£†Ö›w]ñÕ‰(¾»¬yr]ê ¤íÅê«_¬&Pn¼¹Ö½Ù±C„o’ø`+{½-Ú ‹ºN@ú+ßÊÞÌB»ayð¡Ð•=Žÿß/¬Øèý_P!ž¾ŒðÃЏUšðÊÔYʼ”y)óç‡C C/yÄ‹aíÔ2Íú¥±µpU~ 5óøIœ,ù¸vj®ïP»¥¬ ¡žº×ì^³{MÅúÏ6KÔ þ‘¸ Ûm©ÓC\{¾f~ÍüšùT¦Tw^Õ'i›YˆíÐB «úß`Û²ÛÕ‘Š9®;ü÷dzó¤4&~™øeâ—ôŒ”ÜXrcÉ%­Nµ:Õê”ê¡ïÎu;×í\—§•§•§õ鯙€JVj¯Ô^©­8…Ýrïç›-†ƒ0ƒÆÕ—k^®êt§ÖýëZ«ò]‡BC¯ü_#ÒX/J+DSñ M-M-M-©L¨¡Ú‹§z©:!šb €»Ýi~Ã,I•ïm;·Á—&^ÂwµÜ0ÚdØà[î;*úf+ö¼ðÊÔÙíí··ßÞ®8?,{üØÉX +¨=›YÝ®ªç¯ÎÌ+©ò]ï£"ß§ø44™¢_Ŷg{:_Íòkno"¶8ühí?j¹C=Å4ŠiÓH±þŸèH ¨A\vmîw'ÿ–YqožK²K²KT¦´w^~š«´Su>oDú?7¦¾ä=°Á—*…Ç÷WŽ>ÝRï;G'QßÚÓfz莊케ò‹XªÊcè[0•_}|õñÕŠÓÙá¦Í]=rÄpfßHžÎ᪶4ªëÚ¾ø?ÿ0®³¿¿ð$`1ÀÙ¶ñÁ•¯°Í–6[Úl¡2¡„j/âs¶‰úÁ•Åk>ДU‹=â¼p’§£²ïÚ0MæÚ¾ðw%mZnYGOlÇ|‡›.¸äQÄ4…ŸT& Î^Lx1áE7:ë›æú³E´VP¾nûÐ{ÝÿÍ̆Õb÷ÍhÖ×=½øïõ“WEë&…_‘ð÷ˆ-¶ûQß@ÇšêiËÙ-g·œU¬ÿó«Ö½ö#.Ã{ÃÌ>¼ à/ÅžÚbh‹¡-¨Liï¼|Ú/Ùœ¨ÿy#ÒÚ/OùíN¥¼z¿›´°øï²¶ì7 GÙ½x`gá³\bç”_ÀRRÞC߀¨ä¾õ}ëûE3Míçh'Šc¾¿9­¯uåßOǾÔÙ_]íÁú}œ7üuùçõv<éÕµB€}Ò¦V;ëè{_×ÀfžÞ-O ¥Ûñð¥iv<éWÄ-þfmžµyÖf*ê@¨vÅQ¦¹Ëßo©Ø`Ëu¦‡´m…í1ÔúÀaÿ)ïbOͱq¯ÒO¯}o‹©…ÿ|£Hß½†~bûì¯ÐNí×ï[»hÅž~"P™€:ËËÏËÏËWœ¬›ÔÐÑž&žu”âF rng¸qLƒK.ã…pwïæ¦‡ÜGµk»ëÿîÊ èòƒÃu33±­ sö¸/ S|]މމމT&ÔÁ…ˆ "GÁšœÛ—]{vÿÚ!uŸ*öüFË–¹7•Äw^žq3+íòÿÌAiµUUS«UôùºA|ák39ü{«TÇÑýÞN?êvi«u^õ ˜:Õ¨³¯M£:ŸÑm5ܱ޿߰D#YS&¶ØªO»Ø~ß²óÊ/àòNJ¡oaÀTò®Õ»VïZ)Nsuï˜T¨qX Ça¾Ý*œnÖ§ú4}£w‡}g׺¨Û§úäÂÿ¾q[ËZ†CÄðº¶_iìäúBñÊO¬:±êÄ**ê@¨vÅQ°ýÊŒF®/Ä'î_ÖËë¾~/=ÍÅÏ?µ ­;èV´wo½Gâ €ëÞqžYã°â• ?¨Lž]=»zv-b–X¹1x±ÖQÂ-¶q°0Ý«úú0´¦Õ4£fï†G. ž'¶øá‚ÎnþE<–eøîệï¦&¡^ì}±÷E#ºãâÆ¯M;—]»`ÁˆŽEÜD÷òíË·/ߦ2¥½ór\Ñ¿ûŒFbJÿý¥ÿUõûµ¡ÊÏtýßœíë&¸ºŒ9¿üÁ¿O5®kèl"[¬×Ôö;ç™ì¼€ò‹¸<’jè[0€`3Øf°Íà"–¤ñ‘qÁkÄó9ñOë±Iñ³3õÖ%<XhïšåÕœ¾pV`Œã¶|ûžek ¿ !<®Ù¾z°æ²^áαæ#ÄðŠ:»;L5}¥ØçOsžæ<Í¡&¡„jWݛ曾[\øP¯Knh³0ó“ÀêGtÖk{jÌt;aŸ¬×a™^Ël=^'ž¨ô«8£ßwñÉÆÁkû\ø)@ML=>õøÔãŠsÅÕ™ír|žˆí¶ÉÂ'}Û ¶ 7Yg±Gϸz–ö^M[¶NrƒVºã[ï²)0NþLáU¥Ø^ÅN»Æ;Ü|ûü`­ƒµÖ¢&¡ÚÊÛÊÛ*;’ËrÚVv–¸,Zß|W¹~Å>Ïzžõ<ë9…)í—qí¦ùâ‰K…«rÚ4ôÂüù&›4¿¡ÓÃüG›Ë»´]uv Oüµñé54·ÍòäS†…_‹ž‡M¼³³x`Ÿ˼“Ùyåpy¡¡oaÀ>䘯ñÔÆS+N‚Vm;Û{€Øn÷÷¡ÿUlÇ|y=²eJoRm/·—ÛS“P ör{¹½²±gp*^!†#¼’ÿ{ñ´V]ßÐ{@·ýo<µñÔÆ”$Á™ûg_ă*®Ö“Ùï[tªxShñ¯ÛŸ¾±élÜ»ˆ_ l÷´ÝÓvÔ$ÔGŸÉ}&÷™¬8înÙ=Îï]y €ËËç•ßìN8TÄ/%Û¬·Yo³žjTŸ—Sñ≠‡ÁÅÿ{á¦Ð¿1pñ è.žØý«‰3Ö7dç”wÀb¦n¡oaÀ>ÀÅÇ_|\ÄMçŽ{V²Ú/æÃ²òØ^<6ϧªbo»3ìΰ;T#ÔPùŠ#ââé}|ª–—ã³òÒ?Þ5Çj½ýøâã‹©F‚ìüìüì"ž¬½VÓ\£•|MTýgVt¥ÕfŒxì¨ØÛZ‘Z‘Z‘òýòýòýÔ$ÔGü‘ø#ñGGļ“ÃŒ.²–+Ý6>uq[Ï‚"zÛkž×ï5&T_¥¥úA¿ÖŽš£ŒRÜ.Mxµn‚(nþ\wÕ¼Ô:ñævþì¼i þ”}UG àÃe˳åÙN‘N‘N‘Š“é™¿Ût¯{ˆ£ºkßOïQ1ø‚²Té{Ó÷¦ï¥¡Î„Q lŒ¼Ÿž|,øGuמù{ÍźEÜ{@˜í…™Ÿ  Ì4×i®Ó\çÙsêM·¿Ë¯$m»H»Î&«ûvÿ·û¿Ýÿ-µuV`P`P` lex»ÒŽÍ~V¬ñ>®}Õé¸i‹Ò_îÉ}™û’_=Që—o…eû’}ÞØô|ƒ/Â<?üïç}½j°Ñ3Ð".ü`Góž4ÏsÝ¢~]½æ";/@J€Ë¡ïÇ!ð‘ŽÏ8>ãøŒ"¬aÚºäu£LBô9°ûÐvù(Y §">ûÛ5¥kJת#Bq¤,5vŒŸþð¶nªsˆ¾S˜MKÝн*ÌöT€âelËØ–±MÙÆûyín'ýYé}h{U§Ý9ŸsJŸ˜››@íÛönÛ»­ˆ˜*ôpÀ}£A¬ô>®t¶Ï[Û‡Š½:úÒèK£/Quì¼ìFD;æóƨ…]ÍÅ'O¼ñ žu:vœ÷ÞEkŽG+û“Ÿ¹Õ[e›ê¬S¿Öz›–ì¼)!. „¾%G à#dddš÷2ïeÞKqªÑä¥{ŽíTo32»5x§ìG×=¯{^÷¼¨:@ Œeã%#óðý€wÛ©ÞÆÎ˜ã^A±'…^˜í©:ªc4ÆhŒ‘â|ÒÏÝuŒÅlÖ{ª·—z¾©è¶Ðp³^ ÅþÜÖr[Ëm-©7@ë›ë›ë«le˜4zùWuª°ÞS½ý«öžaõ¦)ëÏîÿsÿŸûT;/AÝy 4ßE°ZNÚÚ“Õ›ÃÎ àÒBè[º€”HÊ÷)ß§|¯lò}áÜÝ*p$Gxª´5¢M‹xîæÀúë¬O¥Š„Ñ¡8j:k6½oú”Ã;UÚÎG׎T6‡ 3<•@u/¿xüâ±²YåtŸÖCëÚ±êS¥]ÑàG—oûP7Z7Z7:/+/+/‹z ‹{÷2ù'ûZâª`7Ö~ÿÑÖIu ©¸ÓskÍqŠ}8}ÞôyÓçQiì¼ 3–Õ“7%V©õ®¸°ßÑu켩".¹ù•æWš_‰Ð·t(íõÛë·×WœˆÃÂmå&=å¢ÂB|8ÈSÖÆÎo’å^QiˆîÿÂÿ…?5(F‡²±;N÷Šä)m/¤nñ o°Ñ¤§bï ³:5àã¬I_“¾&]Ùüü:6üJÐXV€ÊÚ{‰NÕSúY«ããcj (ByyŸ8Ÿ8Ÿ¸"~­v|'Ëf¬‹oWÖwÂi‰²ùç­é[Ó·¦;/Eµ§ žSˆWië¾*&uƒaž÷«ÙyRE\ ?kV¿Xýb5¡oé"P ž®{ºî©Òßd\ÑAÖÇ©?ÇyŠmZíŽý”þ`Û9uçÔS©. xÂHQ6ŽÒjïjã·šã<ÅvE‡qŽNý•õ›0«S]>Nvv¶›†›†›Fv»L.É;E9„˜²,ܾ3Œgª«ÓCë‰b¿õIì“Ø'‘êŠwwîݹwç*[áìÖ™uÅm+ë@Åö¸ ½¼“”õÛ‰˜1'b¨.¿óò<<ÓhWâ^ÅÖnm¤|œ#;/@Ú€KËä%“—L^Bè[Z€”š=k÷¬Ý³VÙ¢6AÖòŒ×LŽö„6ó]÷?ï+ë«voÛ½m÷Vž!ÏgPWÀÈgÈ3„Q£lLe¾‹ÿ>ð>G{B› [Zßk¦²¾frÊ @ÉÝxàýÊf›i~ÓìƒXþÛZEÕÑîü•Ã0S¥ŸœÎ Î Î ¦®U¬j¸ªáª†ÊFÓ…¹†{§°&Ú¿{󥬯½ôzÐk* ªï¼¼Ûý1!þ{B_¡u™²´>;/@—ásÀ„¾¥…@)øÍÀo~£l{qQØxŸ¯Ôù€/û\D~°‹››aŒž·²^zÕùUçW©%@u¨Q6¦ÜÜìÛêygŸK\ì¢Î|m ñùJY/ ³7µ tí®¸»ân¥ºX×§þçójý¾ˆê8z‹×}ëËJ×Ïzõ.êQKÀX%_%_6€!NÀJYέœ[9·Ü»w?®ôksØdŸïÔ.úuŠ8\ÕÏÄÔS_é1Äõ ×'\Ÿ@GAÊÆ—Ÿ‰›¾þðl§D£àªjýnÞØÊç;e=#ÌØÂìM( ã6Û¯[:×kMñ³±0cS9ÊNÁï¿üÞér§Ë”~ÎuAÕ€lǶò7Q!ÁÒ^æ í©'Ù˜k¶Åue½1íØ´cÓŽQ9@É=Ê|”ù(³øµÐŸ××óî«+Ç£ãdþU«=­v°Z€²Þ8wòÜÉs'©”|ç¥d2ÈÂ¥î„ßï^¡7|^9úË¥sÙyê‰âD   =Î{œ÷8¯øåïʯd[œÈoFuñ“ÞßeÃvš>‹ï=N{œö8Q-@éFVñ£ï²á¦¡>%xÀw3u{ˆßʯÆívZP|³4ÕàÓÈ­š[5·j3ÍfšÍ4•ÍK½"÷˜x·0rCðbé­ Ÿmìö{ ©¿¦éKý'Êz Z#Z#ZC~[~[~›šJËíÛ·oß¾]üºhGÀŒånßI5úM±]ù°Î_ÿñ+ÚC†& ¥ZP;/÷3“+n*Áè×sÕôÔívI="Çífç¨3`ˆ0€2÷8óqæãÿøëvÇíÆ›Ä½ØÝ½màÂò~´W°ªgºìíòÊÁ™NÅ¿ê¸/㾌c)”!a”?—WkãdQ°êôÙÛrC¿ÝÇ~\ØîxÃý&qÿq‘ù8óq&àÓËÙœ³9gs[­¶Zmµ”ÍQúGªÿ 9òÆî–¾+¤ý&nµ²N•âgæñMÆ7ßD~X~X~˜:ÊÂÓ;¦wL‹‰}&„Eš¿ÎzŸ`tª¼¯ óú§|)>kÓ #û-Å¿êÄ-‰[·P!(ë—]x¤ûXßÜ•gO(ïѯwÍ…GŽý`TÏ'©á~v^€!NÀ>‘çÉÏ“Ÿ'»kºkºkþÇ'bS›öto ïåbZ¾Žön½îçgêyËè~ÿ8à;s2æd U|ˆ+~TzÞªíR£Ê­×;ø™–³¾N©MBL÷¤ÎÉroð¿w¯é®é®)ÌÆT€Ï+¿ ¿ ¿`è’¡K†.)~îšñÎož}Ãw"ÿV¾V†/toøÛ/‡]^YÔ-þ5.ñZâµÄ‹ª>tttƒpƒpƒðâÇf¼Ë¢{ž·å9©'Cdåk}xiï&sŸ`óoŒ·WÿÒ^riÈ¥!T>åÎK÷€µ[mÏfÓOìXP΢_ãUõR›ÔNüÅœ,v^ #†8ø¤rbsbsbûô/è_PürÙå…a%Ý—çZ´yâ]IÌG{Ow5ð4Å]ßrjñ¯È`ŽÁƒ9÷½ï{ß÷¦€OO}ÂH,~´šÒé¡åÔ'‡v ðóÑÞ¹k3¼+¹¼°k§û²øW$̺ L%›5Ék’×$WSÁî•M¹¥æîé)›!Εá[ûH“àKò‚íjoSåŇƇƇRÀ§—ššÚi_§}ö?NƒëzÝ«yãªÓmŸËb^>x¼÷|½gá“ZZÖú;Q¹Žsç:îɼ'óžÌ£ðyw^µÜ›DuzXçÍ|ãƒ]ÄýºmŸ0zm†N²…—];v^Cœ€|6±bÄPåhÌ=ÝÈJoY|X‹½žÅp´—Ö®ã}¿­}½\M,Ú¨rýC#†F x7æÝ˜wcxßÏK‰Â¨TeüöõjwØ¢MZ»]Ãü¶Šáh/>lQ¾çC÷t‡-zËT¹~a¦å} ~Wž_y~广8ÍqšãT™ßÖ¬¿ÇùbÁˆž×eÏ?ïÊðMXÄÀ ´9¯ý«:ÔVåÊ}Öû¬÷YŸnœnœnÌû|fïåïåï×k­×Z¯¥Êø•ÙÕYfPí”ÿJ‡:ÛŰ2¼ºxKOŸŒ®‹Bo™E«rý“£&GMŽÊsËsËsã͇Øv^fµ:µ;ì™8Ós×01„¾Î£¾\”¯fõµÃv^ŠG q"ð™ýüOð?ÁaaaÕT]Ý«¡õð‹am¼Ÿæ÷ê9H¶«ìõœýùI½ôå#ezN¾¦÷uvW×Qý:OéŸÒ?¥Ï» ˆ“0BUѦ÷¾¨®³|äØ1N¾Îî=T/½ìŽóò{¥$Ëv]´Øð÷Óèêá󭇫~ÂŒ*Ì®¼ËÊ—ü–ù-ó[N­3µÎÔ:ªÏ{?Owhdšz¢FËŽ^²tÂßý^v+Ãç¾ÝÎí¹Û´Ÿ{ÓúýÍwÌSý:×Õ^W{]mÞe@œ|÷à»ß…T ©RUõqcÛ{‡mÌÕ7[vøV·N 1)»õáÝ”Ý ýä :0wìY}Öb •v¦F·Œnݺv!íBï2ÊËÎKkŒþ]£/ìFD;ÆëœI{•]Ðë{leµ”d÷Þ1nøÇüf‹?Âç³óð¡€!NÀDä䮓»Nî2=lzØôpµTo¾é ý33ývØ·;Ú¢¥çÆ=λâ}oeFÈN©?ÿàPÃt{µ²töÒÙKgç¬ÈY‘³‚÷?a´ #÷ãFýÏ?4Õ2ݾ2c|§Ô ¹N{ßûÐã¼c¡‹=7Î ø•}»zóÝ}õÏ|è53§0‹òž†{Ïï=¿÷¼õøÖã[ÿÐYÑr§Þhm‡èq^¬çìYÔ´µ»ïûý=´‚o©¾2Ìø¾kN@¶ Æ»ÆôßíVÉâ‘v€†\ÃçC¯d°Ç`ÁÏŽ=;öìï)Pܑߑß9Zùh壕?neXš÷pƒEs ur˜ub÷’+^}>texúæjºÁKãÆÔ¾Ö&«þd“êw%£7FoŒÎ÷Ì÷Ì÷ä…4v^Æšõ:7Õ²{ÙãÕøîÝcâ6œþàÏõ¦Žì¶ÈÑÚ¦ãW¿ªánÿÐÝ—€’#†8©c—Ž]:vÉ¡‚C‡ ÕDoáË…/¾ÌIÏIÏIç½Êñ‘DzNzNº0¢Å?ó3¤0[òÞ¶k® ¸6 lQØ¢°E⟟txÐáÇo¿}ü–÷(ïââãâãâ Ó Ó ÓÄ?ÿ¬>¿úüêóc ÆŒå½;/v^> `ˆ0€ràúµë×®_,,,ÃÒ¿þŠú+ê¯8q$âHDnFnFnï =ÂèFº0êÅ0ÿ3¡0+òPOoý{ëß[‹ý-ö·X1ÌÌfÚfÚfÚk«¬­²¶Jæ›Ì7™ox©º¸é⦋›¢vFíŒÚ)†ù§U§VZuJÌLÌLÌ,˜P0¡`ïØy±óðéCœ€”7ÇåÇåÇÿ¼üçå?/Ç$Æ$Æ$š4i>²ìý=ªô¨Ò£ÊÁW\ñjü«ñ¯Æó&êI˜„Ù@˜Ênæf6a–fçùîc»í>vËí–Û-7zÀ‡fa&fa†faæf!aFf'a¦f-a£' t%'%'%'­5^k¼Öx‚ &,ˆš51jb»oÚ}Óî›V¯Z½jõªýåö—Û_îó¤Ï“>O¦XM±šbµ)dSȦԗ©/S_Ò‡>Ô«†¯¾jxh÷¡Ý‡v/꺨뢮#Ž<:òh÷Ýt?жBÛ m+´Îk×:¯KJ—”.)C݇ºuŸ—2/e^ÊÞÓ{Oï=ýà‡?<øžØyðq€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"€@"þ·=§zž„Ô¯%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/switchMap.png000066400000000000000000002167731431412030200253500ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTgãþcSŒŠ(6Ä‚(RDºˆ"ÅŠ{EAc4ÑÄh¢Q{‹]cÃD5ön¦¢(ö‚¨(ÆØbW,ûýcŸßùù9ë@w‡÷‹sî“ó<¢3÷\3ìÜ;[LЄbLh0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0Pž'ûûìï3ù4ºŽg¶_‡º|1øÌÔŸê÷a³`¼û”ïþXâãnÿí—?Ow+7,}v}§¿ú«cëÖ¼ßötß+ƒÝü|§æ§ÎYW}]õuÕ³&eMÊâC+€7JÞéÏÁüœÅ!åk¯\ò»a>ƒ§Ç- ¹î¶gg¯pçJÙ¢m†Oiµ~äŸÉ¸FLòvÙøwËä{gom²Ãynÿ~nókuøÌ¦¯U•ÿöïê¯{úk GZE ÓD »~úúéë§#R"R"RþÅÉËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎê_Z;8kpÖ଼ÿ”·nWãhœü¢·Œíýù4ÇÍV¬8r¤ Fÿ΋×ÅW¬ïóÍìùç«…9µ}ñ/¶ÍÛÚÛÚûð²ÃË/ãø…M®éÏ»¼Ÿ§}Ã\?¯a³?2ÂË+ë¹S´\Àw1—wmÐliƒàå®OÝTv®›÷mÓ_õ×FŽ/´„¦‰ZÔP×P×0noÜÞ¸½yZÐüвEÙØß.6ŸïÞ5grLjÈã‚](Éû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬vLÁž˜=1{bò^ŠÔ¹Ü«Ï7ýÛ-ž_¬`ëÞ¼î¡ßÞZ\£¢Ÿ[EßÞy*rúî;¸ï³QÏF=Å ŠþœÒŸ_y9ƒ¯ÔØ[I'ŸŒ ôñ}[÷/Ï?ŠÞ\b~¥ÀL—Ny¿î鯓qh0L04åἇóÎku¿ÕýV÷s_t¨çPq¼uÌAçvW}½t%b? -ý¶M^3fÅÆ„†œôáÈÀª‡Uª–û¾¸ví6úæò›Ëo.'¼yS2¦dLùbðƒ¿œ—òÃõа’³Š5¸üƒCƒßVéklô^4móæÃvÕO o™—}Iš”4)‰GCù¢?òrÆupö°.ÛufÀHºÑÅÆ††¾ÜÞÿdHëí)áŸ{†åe_ô×Lýõ“ À|QÃ4QC#Î>ø|žÞ5»»Këý^Ö¦¶\’ûxàçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯üÃ/ŸÕŒ™3Î+ ÎŠîG¾2µÒרèÕqÒ®õë*Ôuø²Þ?üjÝæa›‡mF€Kîä~~y<­r̦߹‡«úëÌæ.fVl“PçOCûÖ/‘ûÞ鯟úk)y€9¢†i¢†Ù;r0ä`HîË CÏzz;,~ö4zCð;æUýþŸß©ßÙÿdHëI_ùßp Î}·wÞÞy{g²@á¹´äÒ’KKrÿ‰\y—÷“ ±~®s“öµ2—Ò÷5cà ˆõ x÷Dz¹ïïÜÇsÏ}L6€¼ÐŸ/¹ŸS+Û5 ­ÿ“îQlŸÐ 󽋹ów¯™ãÚžpœVõnîû«¿®’ ˜ `˜& `˜1!QHs_DØ×¡M²—j¾Ë%ÆÆÄíígùùç¾ïë’×%¯K&'¬ó¥Ï—>_:÷ŸÂN×úëbÆ¥¯±Dïžn¹¥yÙd«õZÛ÷Iã&›4ŽœÆèÏcgmx¹±–©Uº X¦½»˜¸_CnºíÍýú©¿Æ’˜ `˜& `˜¥„2 eÊä¾ppeb·È€GÚ[4ù?¿MïØ«Y`GGÛ2VãÍö!Û†lBfÈ¿+¥®”ºRêÖZmìþ_Öj¯ú}uôï´xm¼mß!ËŒÍÃOs~šóÓ2¼J^;k>WgºÝÄçu¢ÅàRÚ¾‹9òYû$¿è¸›+u¥Ô•Rd¦¦‰fæBê…Ô ©Æ– >¶ilõÁƒN½“›¶Ðö¢É«ãó^Ñgƒ+††ÖlR9ÂØÌ¶8lqØ‚üðßÜo¿ýýö¹×Þk¦]Þòž¶«ßWÇFçâ:'Öª~¥U—®“Œ>¤Úºj몑@.;S¾8âñ•C­ìk1q!G‹Î]Ìåƒ]×LÉýºª¿ö’˜2 `˜& `˜GgytÆØÒ@­ 6¥ËßN›Ó76( è,š¼:fï_)øÏP©æ ÊÍÒ7JÜ(A–È»,,,Ÿó>ç}Îû ë³`æÉí§ŠNõûF猯Q?¬k7£¯ÓŽ•9VæX²„¢IŸcgÇСžåÆëVÅ6u/šw1­è>²ñ¯F¯®ç}Îûœ×_‡ÉL0L0ÌÁDÝDÝÄÛÛ[£¿þwïMÝŠæ¢Éÿy7ð¶è'ÁõêÆW,nýš¹rJwJwJ™ö2íe± /Æ8Žqãhô]¿ÎS»l*[D«ßWß œ·%q^ÕôÆ%Ã~36WÓ¦?L'Q(:ô™7vFtSï¦ýÌœ¡1çBîs“Ò¢Ë^›+ýu˜DÀ4QÃ4Qà ¬²\e¹ÊÒØr@jµ®G–³hòêx·Y¯­ ÍØäž“{NîI®È]®„] »ŒýÇŒ]uõ×dÂSC\Pvþ¾ó÷¿ëçpš k&¬yØüaó‡Í™™ÿ†&íÖ°[Ãn 3¶°{OëT/'JŒGŸwˆñŒÍ^ò…ä ÉȆҷ¥oKßfìghá=«oGÝklôýdV“ëÍÞžà=Á{‚É´MŸscgÁu].Mêq·blœûq §ó_ÆfO}&c0Àù—™™iì.€2ø¿¡†I‹5>j¼á ÿù°^µú²8’—qz»€õº½æ}K¶î¶î¶ºOtŸè>!i¼jÊî)»§ì6üéY!»N)·–nÅÍHŒ¥èÍ}tU†fütÇØÍÛóÏG<AÒ =úlKþv!¼gw(¹9~1RÈŸ¾MìúÙv7œCýõ™¤ÀtPçß«ïýÍepÞQÃD°;awÂÎØIþdt_9h(‹#y_ví¿)ÄÏ:ܲOÙ×,Eí)¹§äž’ä ½¿§þ=õï©Æ^ø¸Î˜¼Í‰r7cÜ‘ÄÊ¿zor3œÉŸýÔè§Fä ڣ϶aæÛöwŒ®zF—ÃJÞÆ?'vÛÒ¸®±«±þZMÞ` (€óO_èêË]‹<£ Î0LÏSÝSÝSßTßTßTÃSz[DXŠÇDþíx8»}¸ŸÑÏQÎvÎvÎv&z|9íËi_N{ÍgvŽëô|pwjÝ;ú¤ÿ”½³ƒ±W .=ºô詃6èólô±Ï³{¸7)Ï]É¿'§6úÌižá|ê¯Õ¤¦€¸`Q `˜œÓö§íOÛžÀöÓ­ç”/gTÌ…‡,…ü·±å¹ZOªt4œÛ}iûÒö¥‘=@Qv7ænÌÝc7þ¥~Þ¥\¥Ðýoc­øOGÄ´4œÕÙcf™=†ìAôy6Ìù˜3~¥ëLáNä¿OŽv 2ú‰ìúë6ÙÀÛE\x(ƒóƒ&'êvÔí¨Û†'­Tªí"ï3,‚ägLÕižÿzùuÍtÍtÍÔeé²tY$P4M¿3ýÎô×|fmÝz½»ô¤ÄÍÏè·q~Ÿ?Z»1ËìœÙ9³3 „ùÒgØXÂïÝ{\SkîDò3.ØÓtžË.ùÕ_·I Þ. à7ƒ2øß¢† yPéA¥•Œ>¦Xˆ™ÏòGþGÏõUËÚÌ4œáÔé‡S“C@Q“’’bìHÃ)‹ªH'(qó?Vk9»Ë†3,ä9B9„ùÒgØ0ÛCÆ4Ȩu‘»üŸõu ªhì*­¿†“C¼-Àoep^PĬn°ºÁꆧåòÒ!n=Xø(¨qïâ6³½¾æò7d CÈ! ¨9š|4ùhòk>~"£ùø¨+·5z»Ní¹©‚á<·®ÝºvëÚäæKŸaÃl§Dt‘eq÷QPã ;÷]µ^s Ñ_ÃÉ!Þ à·‹2Ø `˜a „žŠ÷Æõ®xÅ”#æî îòñÿz»ˆ^šòÖ¦oíÜÏØ…/çYγœg¤Pt I’8$Ñðg¢ç¬ Í×L0…êÔÿÈR‹·ºd}‘YÙÝ«M`«ïíÝÊþiu Â ›븸}UõNÀ•°ÏÝe³d£‰ÖÀÎ+>;2Ѳ‚õP›×¼Þ{ºþéú§ëI#Ì‹>·†y®¸ ÜKË/tkb[„º¿ÝWþYþ1ÅC>+w¦ìp‹;ÿÉÍ=ž4™l w1§ïFÅù¿¦Ö_ÃI#Þ `ÓAü* `˜„Ç™3gžx^ÉUÇÚ˜öçþ–Ž-jáß¢Ú¤Š¥_ÝrÓÿ úž²Kåê¯ù4¾k¿_ûýÚïdPäØäØäØ»h´rù‡;¿ÝÒÔkØd« 5¬?®~˱KÞo]ªu `±¢Ì‘2¦V×¹ÚkȈ⯹=¾;þ6™„yÑçÖ0Ïóë7-îÒÝ^ó_ èjàn‘¦Sg]i2Û诱ÚäØäØI¼yÀ¦‰2˜&á`Ùƒe–}Íß+‡´wëmÊÕïûþPwá–›~¼o}›t¯s†[¾¾Ëú.ë»I@Qp}Ýõu××½æáÏ3š5èXïí¥®ÆJŒ´Mv¹æ}꛵¸ìAËûÍ߉òrž7¨ò$ Ïâ?þ¸º±Û·_7žs¾šKÓÔ¶ó-,~±8ú꾘܃ §N·yºáœ83â̈3dæEŸ[Ã<_véúe@Œ)¼æß=ªõ!¯ª¯nÛœÄÀªÎgÌh:Þec^Ƨ;¢=ƒö˜Î]Ì€Çõÿ®¹ÈpÎõ×s2 €7ØôÍ2˜&aü³ñÏÆ?3<Á.yvµ p3……†Ûz ¬·vp g÷]c2ü*×™ãþg•*<0vi0ýøÞ–Þ¾¯y¿BOËž–=-É$ (Øá±Ãc‡‡áOC·ƒÃæ}ôv‹R×¾_žžù~É̹ßgS&~ªÿ Ë]ýÿRki»œþôÿmÝ¿fÉ:gM­n4|¹ó¡†s^eU•UUV‘I˜}n óüòiÿ¿CºšÂk~}Ý«ß*§N}­ýÌånÅØ¸·x›N^_ιþzN&ðæQ›—¢SSÃ$øó;æwÌð¤Êpîw%x¿),4ür>tO}¿¼_Lé$'#öƒÐ’F·?E—¢K!™mûfï7{¿ÙkøsÐ7vv¿ÝµßnQêСC³KõÛSþ@Õ¿kxäå‘Î>+f>Üžñÿ½ù÷ÿ7°©ÕÀ¶3u^¯ùäÔþ/ü_ø“L˜>}V 3Ø¿úJ^¦óšÈG ŽÕõÛ™êøØÎÑÜ à›7zZ4ùÙpæõ×s’ €7Ø|i» ¦†‰^"«NµV®ƒé,4œÝÕ©•ÿ÷?}ÐxW½LÃÑ `ýÖØaD•µ†ÛŸ~&ýL:ahœwKï–Þ-_óé¿—9äüv+Rûœæs£ÒÊÇVQí÷UíѨNKß¼T¹¾»ætÝÓÇpL­vÈŒj1Èó5qµ½n{Ý–dÂôé³j˜á‰•ü£ë>7Wû­::Ô¨ò•~ÛFöñ^ãhm¾Õ¯~|Ù£ÿæ×üb®þzN2ðæQkƒöÊ` `˜è%²»Ÿ³“ýsY†0ßøÇ ÇÔh¸ý·2neÜÊ ™€¢ö IJŠõ›hS«Kó>Öì}näÉWß7lš°«0ôîOɆóŸè“è“èC2aúôY5ÌðöÕá=›˜æ}Ê¢!A>®õ¿ÀÚ$»zóJU+·*¿Ìò¬K½J¡Ö©£„j)q%B6¸-ЕŽ-jÒw4w•ÿÀò›×Ý…omØÜi£ ¦†‰^"'íñ×9µ£.ìqí¸îû ·?éHÒ‘¤#$PÔ^Tºç9´I3Ó/z½»N}´é”Ç™ÒVýàVõ«Š³{T¯×¡ӦW÷ÅéiÿŒ±CL³ö¬;þÝÕ× çsÍu6×!™0}ú¬fødRÇ —™Âëü'ñ}S‚ƽºmÖ«-,;=/Ëͬe]ùÔµÝo6¾ašw1á›j¯’E Ó\[ Öó-ƒ)€a¢—È_#BoÔoO\Ø£˜Ñv¶÷ Ãí?w î@ɵW Õ}[„wºjú°Õ¥êŸÖ^n¸ýe(¿Âê©óÇûO1åí÷i1#eÛ<Ãíÿ¹ÝÏí~nG2aúôY5ÌðÕÒÝ®5nn ¯óOï8¥áç†[;´~§šM7¶ôkÐYÿg¶Ü ûÔcÅg¡îýjÞ,ûŽÅ‹ÿswcšïþ<¦{­^À0͵ `­2¯2¸˜éœÀ«¶$‡µöXJ\Øã‘ì%ý&7ôjýñiï˜zæ[¿ªþý‘'í3Íí÷M“´÷òí¹Ý´çãÀ¦ð:Ï 6Õ½>Õo•ûŸU>¨ð`}D‹?Ô|õþÅð»övoó­×Ô×ÔÀ&v3fƒ¯®ÎXòÀ\ìü}çï;§,v®m]Ñs;pa'îw×py@ÏáN”ígéæò‰¿Æ/:tÁ'gV¹_¸­ýúÔܹ•ݽÚöyu¸>±ìš©m¹_÷y±û?"oО»)½nî1å{–{wÓµY½/í››Ú¾L8ê߬îuòÀ\dnÌܘ¹‘àÀ¼€·À\ÞllÔïE•æ¾ûCŽ¿º_¼x3LçÀù7•oÕ¬AŽ~Üt•ÛUË;€ ?ŠÐ;€õÏ@ç‹/ý—áÉÀg¿ÝÏ^è¿Ð¡?Éä‹/¾øâ«¨½1—ÏÎK ¬WÞ¯Jýj:S«}ðpe¸2\!™|™þ—>«†6Ï.¨Ï¶^mùcÙé¦vcì3€I&_|ñÅ_|ñÅ_¦°¶° Ä‚ J03ÚûÚ5r×È]#c‹Ç-ž÷êWÿç‹Ðg¹¿#|ÒS; àÂ׎káá¾Ïpû“Ž$I:B2EíH¥{žC›4{ËG^>ßëËW·ÊéiÿŒ±Còþ7x4×ð×pý÷Z&ØÄUªdj°gÝñï®~Íã[7×Ù\gs’ ӧϪa†O&u¼Ðp™)¼Î—oD¶ð ž¶}èóáŸiÝ.4nš÷ïÝv(üÏÒú=ª×²âë/Lí'|SíâU²^w¼ýµ}YÈÌhƒ¾¸°fš kò^úêÿü›/}_E ½Dv÷sv²ßC\Øã;Ž©;ÐpûoeÜʸ•A2Eíˆeë 6Ѧö.^{ë=íƒóþ½NŸDWõ¿÷&VúÍcQcS+€]…¡wJ6œÿDŸDŸD’ ӧϪa†·¯ïìÙÄ^ç7ò«öWÅ`ýV5ÿ±–uåSyÿÞ/îzŒu¨§ÿÞ¾¢ë¢î¦vSqWù,¿¡€i®-P›;ó-}_E ½DVj5¬\ àÂÃ;Œ¨²ÖpûÓϤŸI?C2ÚæÝÒ»¥wK߃:/;sÈÙt `‹ÅeZ†4˜ùý“¸.ÿðÙºg{ïºSþ“ÊË«5Õ«ƒcû±WM­vÈŒj1ÈÓpæ¯Û^·½nK2aúôY5ÌðÄJþÑuŸ›æJ^îS¤÷ÚÎ÷>U6ÍBµ¥ÿójBd–ÏzÓ¹yÙ£ÿæ?ÃýÒ_ÏI&Þ< `mÐFéû* `˜¿c~ÇüŽž<Îý®ï§.Œ1'#öƒÐ’F†Rt)º’ жoö~³÷›½†?}cg÷Û]ûíV¤^§¦øn\RöO«½ºm5޵nѳ뜡}ª£Ô³[Õ¯*ÎîáСC³K_}à³þÓõ”6µO)¶é¬óZo8ó/ü_ø¿ð'™0}ú¬f8°õ!•¼LáÕþã¿ú:YמosÚꟕ«¯uûŹ…ÕX¾}Ox/Ïà#­Û'úußèÞrnƒYŸ…º÷«yóÕê7z³ë“±¦vwsóFO‹&?μþzN2ðæQ›/핾¯¢†Iÿlü³ñÏ O¤Kž]­Ü(€ c¼·¥·oàmÃ-ïiÙÓ²§%™;Û†™oÛß1ºê]vl w(yÿœØmKãºÆ®Æúk5y€) Î?JßÂ@ “5>j|ÔxÃûóa ¼jõeY$/ãôv;êu3œCw[w[w[Ý'ºOtŸ4^5e÷”ÝSvþô¬]§”[ËF·âf$ÆRñæ>º*C3~ºcì&íùˆç#ž iÐ}¶%»ÞÇ3„;”ÜÇ¿)äOß&výl»ΡþúLÒ`:(€óoçï;ßù;¥oÁ¢†I»5ìÖ°[ÃŒê»÷´Nõrb‰ÄØxôy‡?ÁØì%_H¾|Œ`(}[ú¶t£Ÿ:YgxÏêÃÛQñ}?™Õdçzc³·'xOðž`2mÓçÜèã u=º4©ÇÝŠ±qîǞΛ=ýõ™ŒÀtPç_vdvdv$¥oÁ¢†Xe¹Êr•ÑϯM­ÖõhÀrJ^ï6ëµ5p¡±›ÜsrÏÉ=ɹKØ•°+a—±Ÿ§îñ£†.­AÝûêè}iƒáå×WWý°áŒE¥E¥E¥ért9ºÒËÑåèrô™ÍgŠçØdX}ó"³ßÑàÍܹ¼:ÆwkçásÌØUWM&\05ÀåÕ÷Súæ0ÌÁDÝDÝÄÛÛ[cË÷ÿî½±©‹&Ï·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆy1ÆqŒãGc¯@¼§vÙT–ê·QZÜ–ÄyUÓ— ûÍØ\=L˜þ0D¡èÐgÞØÑmL½›ö3s†Æœ ¹Ï]LJ‹.4zil®ô×aÓD ÓD ³ñèÌ£3Î[¨5Á¦tùÛisúÆÍE“Œãý+ÿ*ÕTy ±YºQâF‰%Èy—å‘å‘åásÞç¼Ïyc?a}Ì<¹ýT-€W <2¾Fý°®ÝŒ¾N;VæX™ceÈŠ&}þC‡z–s¯[Û<Ô½hÞÅüµ¢ûÈÆ¿½ºž÷9ïs^&K0MÀ0MÀ03R/¤^H5¶@àð±Mc«têÜ´Ez×o¯è³ÁCCk6©alf[¶8lA~øoî·¿ßþ~{‹\y¯™vyË{Eè]¿çâ:'Öª~¥U—®“ŒÍɺj몭«F~ý¹`ìLùâˆÇWµ²¯ÅÄ…-:w1—v]0%÷ëªþÚK~`Ê(€aš(€a–Ê$”I(“ûbÁ•‰Ý"i{ÑäŽc¯f}lËX76Û†l²m™ ÿ®”ºRêJ©Ü_xT»ÿ—µÿ¬ßN‹×ÆÛVñ÷]²ÌØ<ü4ç§9?Í!3À«ôç…±³æÓqu¦ÛM|^'Z .¥í»˜#ŸµOò‹þ‡»¹RWJ])Ef`ú(€aš(€aÆ„D!QHÌ}á`_‡6É^ªöM··ŸåçŸû¾¯K^—¼.™œP°Î—>_ú|éÜ ;]ëp¬‹öª_ïÝÓ-·4/›lµ¾B+cû>iܤq“Æ‘Àý9bì ² /7ÖÒ!µJ×#Ë´w÷kÈM·½¹_?õ×XrsA ÓD ³w0ä`ÈÁ܆žõôvXüìiô†àwÌw¹äåÎþ'CZOúÊÿ†Spîû»½óöÎÛ;“ Ï¥%—–\Z’ûOäÊ»¼Ÿõs›´¯•W¿ W,<"Ö[4àÝËæ¾¿sÏ}<÷1ÙòB¾ä~N­l×,´þOºG±}BƒÌø©E÷š8®í ÇiUïæ¾¿úë*Ù€y¡†i¢†Fœ?|þðùÃy°»Këý^Öæµhràçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯äþ3º^͘9ã¼ê¬è~ä+s©~½:NÚµ~]…º_Ö»ŸûÞm¶yØæaäø·ôçÎ?ÍqsÅ‚-zý;/^_±¾Ï7³çŸ¯äÔöÅ¿Ø6okokïÃË/;¼Œã 6ý¹¦?ïò~žö sý¼†ÍþÈ/¯¬çNÑRpßÅ\Zܵa@³¥ ‚—»>u[PÙ¹BlÞ·M=Ô_9¾Ð `˜& `!‰C‡&u]æºÌu™Åâ^¿òÁ l°°Öò…4Ýârh‹wX9BVÛÞóÕøÈ—>ë$§¶+½/nëö—Gúâ±AÙ®³‡ýá9Ãá„oŠ]œíØÿöïÚ&Ù&Ù& ƒ…ÁÂ`ÝdÝdÝdŽ&æâ¢ûE÷‹î­ƒ[·þo¯Êw¯²Â~fµ+!Ÿ|]dzGÛ¯C]¾|fêOõ{°Y0Þ}Êw,ñq·ÿöËŸ§»•–>»¾Ó_ýÕ±ukÞo{ºï•ŠÁn~¾S-òa]õuÕ×UÏš”5)‹G=o”þ¼ÓŸƒù9‹CÊ×8^¹äwÃ|9N[rÝmÏÎ^á:Ï•²EÛ ŸÒjýÈ>“ÿp˜äí²ñï–É öÎÞÚd‡óÜþýÜæ×8êð™M_«*ÿíßÕ_÷ô×@Ž&´Š¦‰EÏJÝJÝÊ£kŽ®9º&\ “ä_Ú¿´i%\ WÂs:ætÌéÈ¡ÀÜ]üòâ—¿ì·­ß¶~ÛLóHµåÕ–W[¾Õn«ÝV»Ì…™ 3rÔS ?õç¦þ<5Íkˆþú¦¿ÖqÔPPÃ4QºÛûn﻽o‰ãÇ%Ž5kÔ¬Q³Æ›_(±²·²·²ŸµrÖÊY+¯»^w½îÊq@Û|<ðñÀ 7TÜPÑÏÙÏÙÏùm6c?ûáØ/ã⎠`.ôç¬þü}[WýµKÓ_Ó8.(j(€aš(€×¸ßâ~‹û-ö÷ÙßgŸáÑã‡G׎«W;.ÿK$vÓí¦ÛM|ið¥Á—v6ÜÙpgÃÛ“nOºÍ€.­MZ›´6~;ðÛß~Xöò–yñâ9$ÿ¯@Ê— .Ü×¹¯s_ç £7ŒÞ0úZÓkM¯5eÎ-ÑŸ×ús\¾ëÏýü_Cô×"ýuIÒ_¯˜s0MÀ@Hxžð<áy¼C¼C¼CBTBTBs Û‰Ë'.Ÿ¸¿;~wü>x8çNΜ;Ì €Üé¯úë†þ¢¿ž03  À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À@Hxžð<áy¼C¼C¼CBTBTBsswxÂá ‡'ÄwŒïß1Á1Á1Á‘9¹;êuÔë¨WüÄø‰ñfÌ8˜¡»¢»¢»ÂÌÐ `à5î·¸ßâ~‹ý}ö÷ÙßgxôðèáѵãjÇÕŽ³È7»évÓí¦¾4øÒàK;îl¸³áíI·'ݞĜ£°=üðá‡?»‰ÝÄnßF|ñmD½æõš×kžÿTW]it¥ÑŸ½÷Ù{Ÿ½·­Ô¶RÛJÝšpk­ Ì9 Û£­¶>Úª U†*C¿óý˜ïǸýåö—Û_ùOu…~úUèccc·éø¦ã›Žß|cðÁÌ9ÓG èn﻽ïö¾%ŽK—8Ö¬Q³FÍoœ•½•½•ý¬•³VÎZyÝõºëuWŽ òã^è½Ð{¡+âVÄ­ˆsZê´Ôi©Å[2Íšÿ4ÿ«.W]®ºp\¤ÒiõãÕW?vîþÜýùÛJõ„­¶NØšú~êû©ïs\ õlÛ³m϶†óÆÌo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À(B‡&MêºÌu™ë²ÿX_Õ¯|°ÂÁÁ#,¬µ|áM·¸ÚâVÎc„Õ¶÷|5>ò¥Ï:É©íJï‹Ûú„ý呾xlP¶ëìaxÎp8á›bg;ö¿ý»¶I¶I¶IÂ`a°0X7Y7Y7™£ ½“ÅN;Y̯¢_E¿Šÿ-].­+µ³¾ñÙ ÷EµÞ›Üô#—Þ›íZ­óðúDdzUçDÞöY.mh{Ö;}ûWáÍ==—ú¯p}6¼ƒ×øÚÑ~±ÿ°b×ü”g»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo04îúé맯ŸŽH‰H‰HÉûò}ÈËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎ*ïÛæ7Ào€ß€‹‹Ó‹¨Û5o×¼]³Ëì.³»ÌÎ{r2í'U\·ºN³gõ3¯Žî^ªqï‚MõÃj}ì›~½£CøϘ¨YNÕ¾ü%ô&—M.›’–'-OZÎñ-šî[ß·¾o–÷äx_¨zÕ¶ÔŠý¡mÜ2¯”èV=àLÁ¦:Mê;2¨ùî+­ï{ytÿÎ9ØþPÞ·­ú²ê˪/;qüÄñÇ‹ÚѤÞ. `hQC]C]ø½q{ãöæe™ÞúCËec»Ø|¾{לÉ1©! ¶BÈû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»å½‚ú¥jèÐúY#clCF¾­TïzÑzW1wµrV…[yÙæ»üØåÇ.™û2÷eîã°[lY°å_<Þy‰Gp×½Ëúœô¶R½ÿeÄ0ïê ïU‹¶ÍÈË6,?²üÈò/Ú¿hÿ¢H<öœx»(€¡)ç=œ÷p^«û­î·ºŸûr|=‡Šã­c:·»êë¥+ûIhé·U$¼fÌŠ 9éÝqYÑT«T-÷}qí6ÚmôÍå7—ß\N´çI‡'žtˆºu7ênîI°·þ¶Ü3éhÛ?½u9•cv„\0¡TëbcCCÏþÙ©³ÿ¤Ve>¬Ò÷Þ=Y²zÉê%¯Æ^½K´çùÒçKŸ/=0zà?ü‚Ž«eTÙ/÷Ul#{íÈ~?&<ägSKõ…°.ÅMúôtõv‹rß—rýÊõ+×/eWÊ®”]Ú>¾ÀÀÛE 8øüáóyz×ìî.­÷{Y›Z…ûxàçvë|Ëçeï;%vJìD´áŠãÇ+ŽyúÌQ¿°ò#Í+ÕGvµì÷u¥Ùå;Y®Ë}ï”æJs¥9yІëé×Ó¯§WZ]iu¥Õ¹÷µJ‹0÷DóJõ©ÑQ6 ã‡ÚÖ²š“ûÞíY½gõžÕZ=ÊÀÀÛE ³w0ä`ÈÁÜ—Ú‡žõôvXüìiô†àwÌ«Nxu|¹³ÿÉÖ“¾ò¿áœûþnï¼½óöÎdÃ|<y<2÷£s³~­šÕÓ~èÛ'ÈÏ|S},faHÂlÇ&㜿Ê}×}·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°ióMµÎ?Ö>´ââ/ƒÒ]g便qïŽ÷žöŽ50ðvQÃŒ ‰B¢˜ûòú¾m’½T3.ŒŒ‰ÛÛÏòóÿ‡Â,y]òºdrb^n$ÜH¸‘û‘Ýz/l‡Ç%í¥úÔÚ(džÇÿ¡0û8îã¸É‰y9ÙödÛ“mÿázõ~‹h÷ ÚKõyûÎ?5ú‡_Ù™»h‹´tÄ)€€·‹f)¡LB™„2¹/©_™Ø-2à‘öê„WÇ;޽švtô±-c5ÞØ}4j®¿…¶S¶©ï° àÐ65ƒ*}gÿ’{Kî-¹§ãN ¼]À03R/¤^H5¶€îð±Mc«têÜ´…¶ë„WÇç½¢ÏW ­Ù¤r„±™9lqØâ0‹ï&êªÝU»«vÆŽ]ù§eÿ*ët{P¯âÎE'ÕßõË >Ö~PëvûÍŒø£ø£ø#ù1M·–ÜZrkIîÕïµ[ÝŸ4¾_tRý2»ÿÝî}º¶ªñ®±9Ùá±Ãc‡‡¹} `àí¢†ÙxtæÑ™GgŒ-š×š`Sºüí´9}cƒŠNð ³ãý+ÿ*ÕTy ±YºQâF‰%È’éxöõ³¯Ÿ}]î‹r_”ûÂðx•»Vö;‹û÷Ózonê^4SõmLÅo;´¯ÛÐî±±T_N¹œr9…,™ŽŒÀŒÀŒ@‡iÓ¦;j¯è¹£INÑLuΰ˜s!÷£ý]j´66?I’.$]0ß Po0ÌÁDÝDÝÄÛÛ[cËå÷ÿî½±©[ѬþÏ»·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆ•)èy³çÍž7–dƒzþÒä ©Î,Þß%øžÿÕT¬`8K6¿Úüjó다I/’H”)’2$eHбTÿåÝ=²ñ4Rµ ¦fÈØðÎתÜ66WO“Ÿ&?5ËÏq§Þ. `˜U–«,WY["O­ÖõhÀrê„WÇ»Ízm \hlÆ&÷œÜsrOrõvm™¼eò–ÉÆŽÑ¹¨N7ý/“äWÇG«ûlmzÜØŒ¬=²öÈÚäêíúÃúë?¬£cJ‡í~÷Hò«ã3ïèè súǼÎØ€âŠ(nŽI .XQK£–F-ÕÏáV‹­[-²zgõÎêÍÌÀ `˜´[Ãn »5ÌX°{OëT/'*cãÑçbüc³—|!ùBò2öæÝ?sÿÌ}£3ߨ¡åŠ‹H¯±1éT§íþFS}|Éñ%Ç—±7ïIÀ“€'ÆŽËŠÊ¡åÜΑ^cãå³]7Ì06{ñâÄ0¯j¼á¢ççÃxÕêKm—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€×TeÝ~­÷Ä~‰Í˸¸wPšëÃ9¬Ò¯J¿*ý²]²]²]HÚ›42sdæÈLÃ#Òê–C§*ót3b‡Ö#·¹k&4?ç>ÎXÕ—Ù.³]f;sÉp½ z彿¹£ À«(€a¢Nذ;agl¡óÉè¾rÐP ƒ¼Œ/»ößâgnÙ§ìÙÜSrOÉ=%ÉÛ›q~Ùùeç—Kõƒj½å¦þ$6/cvJÌÒĺÏ*–·®i8“¾Ùð͆oÈÛ›qÕæªÍUc©¾u¼gÿ&'HlžÆþ±n¡5ÖØ¨¸Àp&—¥.K]–j.© .°ŸKÎ/9¿¤íƶÛn´È3Ê`PÃô<Õ=Õ=õMõMõM5\ÖÜ–âñ„ªàߎ‡³Û‡ûýålçlçlg¢WØÂO‡Ÿ?m8ÿ«G5/ï^Š”þÛñLrÔ ÿ0£ï˜¬Y;“O.t=wöÜÙs§áü/ÜÐô¡ËRúoÇKÛº„Kõóžôü#3Hp!  @ÞQÃ䜶?mÚÞpÓ~ºõœòï匊¹ò’à¿-ÏÕzR¥£áÜîKÛ—¶/ìž”…) S[ Ïò‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µë5Ÿ¦³"fEŒégƒ¸°Q wÀ09Q·£nGÝ6\¸”Jµ]ä}†b ?cÒ¨Nóü×έk¦k¦k¦.K—¥Ë"…aà¶Ûn{Í;Ú·…óüˆdægLÝõyÀùµ=k{Öö¬.P¨ $…aT÷QÝGuÍ;Ú›6Ë©¯#™ùoþÔãQ“‰FŸÙÐ+»Wv/SÎð›D CÀ0!*=¨ô ’Ñ%o!fvH<Å@þGÏõUËÚÌ4œáÔé‡S“Âõô§ï<}ÇècŠöŸbO& àÝíýj®`8ÃIÝ’º%u#‡ëÅÞ{_ì5–êôâý,‚ÈdþÇîÅ+Øo0œáÄøÄøÄxSNðÛB = `˜Õ V7XÝÀpiryé·”5î]Üf¶×kG¨ðÀè;Ûòþ(ÚVý׆x9¬²aõ¿%û~qna5–ëK c¢7»>©«ÿoý÷êÿžÂ+îméíxÛpKzZö´ìiI&óo~Öü¬ùY†3|Ú2ªMÛ¤º0Æ'%ûÎêd¸%­<[y¶ò$“ù·zÿêý«÷ÎðÁ ŸZøF’êÂ_Ø÷û6ø{Ã-ñ´ð´ð4ÑJ•ØQh 0L‚ß1¿c~Ç^ó‡Îý®Ê{%9º§¾_Þ—8óþ7ï\ÜÚÊs‹þ»Ê);ÜâνF½KžÈýïyõÏçÿq¦yútÉŒØBKÝß]Š.…dæGÄþˆý¯©Êžv‹.´ŠTÊø$6:4ÈrKÙ-Ö¼æó­—ä,ÉYB2ó#ºgtÏ螆sû ¸÷‰¦!¤ºðƺ›l3­Ë¿æó­Ëf•Í*kj9¡6w”ÁæŽ&Áp±êT«aå:ÞbúÙ]ZùÿÓwÕË4óS*|q×c¬C=ýwµßR'ÇîHÞÿ†WÿÅ//y\t(ôÇ_‡5vQe­áþ¦ŸI?“~†dlªÿ—„í±á¡ž¤ºðÆ^u\‚ª÷1Üß´éiÓÓ¦“Ìü°“íd;ù5åºkÌþˤºðÆa‡Q2×Åý[*„þZ³wåhýw-nt×ubÞ¿÷ç^A³]#ôßÛâ«ZCª|XØ{úãΆcê4Üß[·2neÌ‚Mu‹j…V~Hª {Oçé¹´3Üß+=®ô¸ÒƒdlªÝ'T¾Qá©.ì=]•ÑìZý‡†û›44ihÒPSË °VQ˜ `˜ÃåÂI{üuNí̱T¨=ßæ´U¯ÿ-z&‡ý÷ïÝr3ìSúï­óí«c…ýpѵãZx¸ï{M©p$éHÒ’Y°©þº«—cmgR]Ø©Þõ õÏÃýMœ8;q6É,ØT÷þÝålõ}¤º°S}àãvÃ|žî¯ððð©å„¸(  0eÀ0 †K„¿F„Þ¨ßÞK…JË[.Õ×ÁŸ?ýÈ·uÞ¿Wÿçõß[Å¿ü‹rv© f´í}ÂpĈ;G2 6ÕsŠ59í¼šTvª¶ëàä·Èpwß=~÷x’Y°©ÛÍ/°Î:R]Ø©NîÔ9´QÃý]gµÎj•©å„¸¨ÉOÌì `˜ÃeÁ-Éa­=–šc©PîLÙáwþ÷>Ú5VùïÈû÷êÿ¼þ{_ý{ oOdw(é7ÁoÄ/ ¡Ûê{‘êB¯Ê,;×kôy{3f÷m²Ðy©.ìTÿy¶ÛñÆ É´‡×À…&ÁpApçÚÖ=·›ûcE}ûé¾ÿâá¨Ö¶Ûìk£ÿÞZÛmìÊ?-ìRáÄýŽã`úÍXóQó5îýHua§úâ¬.#"ooÆB«¦»\ŽêÂNõµ?»?j|—¼AKÊÏ+?¯ü<^ `˜-½¸qeûy·è¿kûžð^žÁyÿ^ýçPê¿÷Õ¿‡wó`RÍ;€ypQN5ïï@ÞQÃ$.šïgwœ]wK5ýw-· ‰të™÷ï]V3ø…[]ý÷FýàT²ÚàÂ.Œ}ðBÿ…þ ýãßåë¿Ϊù~°y¥ÚØgÏè?£ÿŒþ$³`Sm¾Ÿl^©6öÀ?ÌýaîsM-'aaa†[ˤկÕ#VX="040404ïÕï‚w¼»à]^ `˜ÃeÁI{üuNí̱TzÌÓÃáåS[çïíïåý{»×q®eÿ¿Ï•&xÎp8QØ¥ÂÚq-<Ü÷îoÒ‘¤#IGHfÁ¦úë®^޵Iua§z׃ÖsõŽØ_{¾Íi«^V;,ë–í¨ÿï¶ÎßÛß;øó§ù¶~“û¸o}›t¯s†{º¾Ëú.ë»Éü;5ñÔÄS gxFzãÈzûIuaŒ‡¬>]à»ÒpO—TZRiI%2™){Sö¦ì5œáQs|Î;'Õ…1ž Œ’üëîéÔESM]dš9¡6”¾ZE “ð8óqæãLÃEF¯äªcmμ­O~µ`(ì¿çÍì?!ÄžLælÙ¯Öá*†3œÔ-©[R7rX°^ì}±÷Å^c©N/ÞÏ"8€Læì^ܹ‚ýÃNŒOŒOŒ7å„P¿-”¾Ð£†É‰ºu;ê¶á¥Tªí"ï3Tù“Fušç¿Þpn]3]3]3uYº,] , · Ü6p›áÌoÛ^Ìó#’™Ÿ1uv×ç{ çÖö¬íYÛ³º@] .†QÝGuÕÝpæW7m–S_G2ó3Þü©Ç£&þ:T¯ì^Ù½L9Ào¥/ QÃ䜶?mÚÞp±Ò~ºõœòï匊¹òzà?¾Kò\­'U:Îí¾´}iûÒÈ^áIY˜²0e¡ÑO¨õ‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µËpVWĬˆYcúÙ .l”¾È0LÏSÝSÝSßTßTßÔ×¼c2",Åã õÀ¿g·÷³4ú~2çlçlg¢WØÂO‡Ÿ?ýšwLŽj^Þ½)ý·ã™ä¨þaF¯];³vfmRWØzîì¹³çNÃù_¸¡éC—¤ôߎ—¶u 7–êç=ÿèùGf àB@é €¼£†‰:awÂÍ'£ûÊAC© ò2¾ìÚSˆŸu¸eŸ²# grOÉ=%÷”$ooÆùeç—_f,Õªõ–›ú“ؼŒÙ)1KCë>«XÞº¦áLnøfÃ7¾!ooÆU›«6WmŒ¥úÖñžý›œ ±yûǺ…Ö Xc? âÙ\–º,uYª¹¤‚¸À~jPúà?¡†I‹5>j¼áâæçÃxÕêKa—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€Ã#Òí×zOìؼŒ‹{¥¹N1œÃ*ýªô«Ò/Û%Û%Û…¤½I#3GfŽÌ4<"­n9tª2O7#¶qh=r›û¸fBósî㌾£½]f»Ìvæ’ à{´4jiÔRJ_ü[À0i·†Ývk˜±åÎÝ{Z§z9Q>ïã'›½ä É’/±7ïþ™ûgîŸ1v\6vh¹¢Á"ÒklL:Õi»¿ÑT_r|Éñ%dìÍ{ð$àI€±ã²¢rh9·s¤×Øxùl×Í3ŒÍ^ü€øñÌ+À%åJÊ•”+”¾ø·(€aVY®²\eôókS«u=°œ áÕñn³^[›±É='÷œÜ“\½][&o™¼e²±ct.ªÓMÿË$ùÕñÑê>[›76c#k¬=’Oü}Ëþ°þÃúkcÇè˜Òa»ß=’üêøÌ;::è\ù§eÿ*ëd8cŠ(> ¸9&¸`½ú>`J_ä0ÌÁDÝDÝÄÛÛ[cÕÂý¿{olêFð|[ô“àzuã+·~Í\9¥;¥;¥¿L{™ö2X™‚ž7{ÞìyÓXªÿÔó—&OHufñþ.Á÷ü¿¨¶ bÃY²ùÕæW›__$½Hz‘D¢LÁ”!)CRŒ¥ú/ïî‘§‘ê¬15CƆwv¸Vå¶±¹zšü4ùi²Y^Ù(€€·ŠfãÑ™Gg}pn­ 6¥ËßN›Ó76( hÖ ÇûW þ3Tª9¨ò@c³t£Ä7J%Óñìëg_?ûºÜå¾(÷…áñ*w­ìw÷ï§õÞÜÔ½ˆ–d߯T ù¶Cûº íKõå”Ë)—SÈ’éÈÌÌt˜æ0ÍašÑ_nXÑsG“œ¢™êœa1çBîGû»&Ôhml~’.$]H2ãGôSo0ÌÌ…Ô ©R-š;|lÓØêƒz'7mQ„ÞõÛ+úlpÅÐКM*G›™Ã‡-³øn¢®Ú]µ»jgìØé{{P¯âÎEè¾ë—|¬ý :×íö›ñGñGñGòcšn-¹µäÖ‹\]»ÕýIãûE'Õ/³ûß éÞç¡k«ï›“;}4j®¿…¶S¶©ï° àÐ65ƒ*G›‡%÷–Ü[rOÇx»(€aÆ„D!QH̽ZØ×¡M²—ª½:!q{ûY~þ¹ïûºäuÉë’ɉyI¸‘p#áFîGvë½°—´—êSk£Ï}ßã>Žû8îcrb^N¶=ÙödÛ¸^½ß"Úý‚öR}Þ¾óO‚sß÷¹‹æ.š»HKGœx»(€aö† 9’ûòúгžÞ‹Ÿ=ÞüŽ?>tgÿ“!­'}åÃéê„í·wÞÞ™l˜¯ã‘Ç#Gæ~”cnÖ¯U³zÚ}ûù™oª³Å, I˜íØdœóWÿP~·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°i3®~ýcíC+.þ2(ÝuÆ?üBÃ{q½cM ¼]ÀЈó‡Ï>Ø"vwi½ßËÚ¼ê„?·[ç[>/{—Ø)±Sb'ò  W¯8^qÌËqßâVÞc¤y¥úÈ®öý¾®4»|'Ëu¹ïÒ\i®4'Úp=ýzúõôJ«+­®´:÷ã¾ViæžhfïbeÓ0Þq¨m-«9¹ïÝžÕ{VïY­Õ£L ¼]ÀД‡óÎ{8¯ÕýV÷[ÝÏ}ñ½žCÅñÖ1Û]õõÒ•ˆý$´´  Y±1¡!'½;.k82ðƒêa•ªå¾/n£ÝF»¾¹üæò›ËÉ€ö<éð¤Ã“Qw£îFÝÍ= öáÖß–{&mû§·.§rÌŽ“{ îÙ?;uöŸÔªŒÃ‡Uúæ¾/ÕKV/Y½äÕØ«±WcÉ€ö<_ú|éó¥Ñ£FÌ= Ö®–Qe¿ÜW±ìµ#ûý˜ðŸM-Õºk4éÓÓuÖÛ-Ê}_Êõ+ׯ\¿”])»RviûøRo0´¨¡®¡®aÜÞ¸½q{óòîIë-[”ýíbóùî]s&Ǥ†<~[EÂÖ„°5gëDÛ~o•§w3Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»YäÙ/UC‡Ö·ÈcòÖÞ¼ëEë^ÅÜÕÊYnåe›ìòc—»dîËÜ—¹Ã^lY°eÁ–yOõà&®{3–õÿ(8ém¥zÿˈaÞÕÞ«m›‘—mY~dù‘å_´ÑþEû¢pL)€€·‹wýôõÓ×OG¤D¤D¤ä½`yY³fåÆë|Z|ã~ýúW=›”*Øòàî罤À¸-»Â‚<æGNuöM¿ÞÑ!|‰gLÔ,'‹j_æ}Û\6¹lrÙ”´;ᾨÖ{óƒ›~äÒ{³]«u~BŸˆLï¡êœÈÛ>Ë¥ mÏz§oÿ*¼¹§çRßà®Ï†wð_;ºÑ/öVìj‘»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À€îö¾Ûûnï[â¸Äq‰cÍ5kÔ¬ñæ++{+{+ûY+g­œµòºëu×ë®äǽÐ{¡÷BWÄ­ˆ[ç´Ôi©ÓÒ·UMóŸæ?ÍÿªËU—«.äÇéô@ZýxõãÕÝŸ»?wþ¶R=aë„­¶¦¾Ÿú~êûCÀÀÛE ¼Æý÷[Üo±¿Ïþ>ûû =<ºv\í¸Úqù¯ ì¦ÛM·›>øÒàKƒ/íl¸³áΆ·'Ýžt{sŽÂöðÇ>üPì&v»}ñmÄ·õš×k^¯yþS]it¥Ñ•FöÞgï}öÞ¶RÛJm+uk­ ·&0ç(l¶>Úúh«2Tª ý~Ì÷c¾ãö—Û_nå?ÕúUèW¡_Œ]Œ]ŒÝ¦ã›Žo:~cðÁ73çL0Pž'UÓÔ45M}¬>V«ÔGê#õú@} ÞWï«÷Õ»ê]õ®zG½£ÞQÿVÿVÿVo©·Ô[ê õ†zC½®^W¯«©©©WÕ«êUõŠzE½¢¦ª©jªzI½¤^RSÔ5E½¨^T/ªçÕóêy5YMV“Õ$5IMRϪgÕ³êiõ´zZ=¥žRO©'Ôê õ¸z\=®UªGÕ#êõˆzX=¬V©‡ÔCj‚š &¨Ôê5^WãUEUTE•UY•UQUQTAÔýê~u¿ºOݧîS÷¨{Ô=ênu·º[Ý©îTwª;Ôêu›ºMݦnU·ª[Õ-êu‹ºIݤnRWWW7¨Ô êzu½º^]«®UתkÔ5êuµºZ]­®RW©«Ô_Õ_Õ_Õ_Ô_Ô_Ô85NS—«ËÕåê2u™ºL]¢.Q—¨‹ÕÅêbu‘ºH]¤.Tª Õùê|u¾:O§ÎSç¨sÔ9êlu¶:[ýIýIýI©ÎTgªÓÕéêtuš:M¦NQ§¨SÔÉêdu²:I¤NR'¨Ô êxu¼:^ýAýAýA§ŽSÇ©cÔ1êõ{õ{õ{u”:J¥~§~§~§ŽTGª#Õêu„:\®W¿V¿V¿V‡©ÃÔaêPu¨:TýBýBýB¢Q‡¨ƒÕÁê`u:H¤~¦~¦~¦P¨ÔX5VUû«ýÕþj?µŸÚOí«öUûª}Ô>jµ—ÚKí¥öT{ª=Õîjwµ»ÚMí¦vS»¨]Ô.jgµ³ÚYí¤vR;©ÕŽjGµƒÚAí ~ª~ª~ª¶SÛ©íÔ¶j[µ­¡F¨jkµµÚZ WÃÕpµ•ÚJm¥¶T[ª-Õæjsµ¹ÚLm¦6SCÔ5D VƒÕ`µ©ÚTmªªj ÚDm¢6QÔ5@m¤6R© Õ†jCÕOõSýTÕGõQ½UoÕ[õT=UOÕCõP=TwÕ]uWë«õÕúª«êªºª.ª‹ê¢ÖSë©õT'ÕIuRë¨uÔ:ª£ê¨:ªµÕÚjmµ–ZK­¥ÖTkª5Õêjuµºj¯Ú«öªj§Ú©UÕªjUµ²ZY­¬VR+©•T[ÕVµUmTÕFµV­UkÕJµR­Ôrj9µœj©Zª–ª…j¡Z¨eÔ2jµ”ZJ-¥~¢~¢~¢–TKª%ÕÔÔÔÕÕÕj µ„ú¾ú¾ú¾ú®ú®ú®Z\-®W‹©ÅÔbŠNÑ):%[ÉV²•,%KÉR2•L%SÉP2” %]IWÒ•çÊså¹òTyª-Ÿ’Oɧäò ù„|\>.—ÊGå£òùˆ|D>,–ˇäCò!ù |P>(Èô/ ô—Y’%Y’EY”Eùùùy¿¼_Þ/ï•÷Ê{å=òy¼KÞ%ï’wÊ;åòvy»¼]Þ&o“·É[ä-òy³¼YÞ,ÿ.ÿ.ÿ.o”7Êåõòzy½¼N^'¯“×Èkä5òoòoòoò*y•¼J^)¯”WʿȿȿÈ+äò 9NŽ“ãäeò2y™¼T^*/•Ë‹åÅòÏòÏòÏòBy¡¼P^ /Èóäyò•>•>•ÚIí¤vR[©­ÔVŠ"¤©µÔZj-…KáR¸ÔJj%µ’ZJ-¥–Rs©¹Ô\j&5“šI!Rˆ"KÁR°ÔTj*5•¥@)Pj,5–KR€ ùKþ’¿ÔPj(5”|%_ÉWò‘|$ÉKò’¼$OÉSò”H ¤’»ä.¹Kn’›ä&¹J®’«ä,9KÎR=©žTOª+Õ•êJu¤:R©¶T[ª-9H’ƒTSª)Õ”jH5¤’½d/ÙKÕ¤jR5©ªTUª*U‘ªHU¤JR%©’TQª(U”l$ÉFª U*HV’•d%•—ÊKå%KÉR²”ÊJe¥²R©ŒTF*-•–JKŸHŸHŸH%¥’RIé#é#é#éCéCéC©„TB*!½/½/½/½+½+½+—ŠKÅ¥bR1©˜¨u¢N̳Ål1K̳ÄL1SÌ3Ä 1CLÓÅtñ™øL|&>ŸŠOÅ41ML‹ÅÇâCñ¡øP| >ˆ÷Ä{â=ñ®xW¼+Þo‹·Å¿Å¿Å¿Å›âMñ¦xC¼!Þ¯‰×Äkâ_â_â_âŸâŸâŸâñŠxE¼,^/‹—ÄKâ%ñ¢xQ¼(^/ˆÄd1YLωçÄsâYñ¬xV<#žψ§ÄSâ)ñ¤xR<)‹ÇÅcâ1ñ˜xD<"ÅD1Q<$‰ b‚˜ ˆÄx1^Œ×¿ü×ÿØõQq¿¸_Ü/î÷‰ûÄ=âq¸[Ü-îwŠ;Åâvq»¸]Ü&n·‰[Ä-âq³¸YÜ,þ.þ.þ.n7ŠÅõâzq½¸N\'®׈kÄ5âoâoâoâ*q•¸J\)®WŠ¿ˆ¿ˆ¿ˆ+Äâ q¹¸\\..—‰ËÄ%âq‰¸X\,.‰‹ÄEâBq¡¸Pœ/Îç‹óÄyâB/¡—ÐKè)ôz Ý…îBw¡›ÐMè&tº]„ÎBg¡³%D QBG¡£ÐQh/´Ú Ÿ Ÿ Ÿ ‘B¤)´Ú m…6B¡.„ áB˜&„ -…–BK¡…ÐBh!4š Í„P!T‚…`!X‚„ !P…&B¡‰ B#¡‘ÐHh(4 ~‚Ÿà'ø>‚à-x Þ‚§à)x „BÁ]pÜ7ÁMp\WÁUpœg¡žPO¨'Ôê u…:B¡ŽP[¨-ÔÁA¨)Ôj 5„B Á^°ì…jB5¡šPU¨*TªU„*B%¡’PI°l[ÁF°lkÁZ°¬+ÁJ('”Ê –‚¥`)Xü?öî;*ªk}ü¿ñ&1‰WĆ €bo ¢ˆ b¡XQìØ±€€kT4KìÝXbGÆÞ»l(öŽ]±»`‘ùý±ó]¿¹ŸÃff†÷kÖ:+ë^úûèo£¿þ6:gtÎèœÑßDý¤’T’JJ•R¥T)EJ‘R¤ÏÒgé³”$%IIÒ'é“ôIú }>Hï¥÷Ò{é­ôVz+%J‰R¢ôFz#½‘^K¯¥×ÒKé¥ôRz.=—žKϤgÒ3éééé‰ôDz"=’I¤‡ÒCé¡t_º/Ý—îI÷¤{R¼/ÅKw¤;Òé–tKº%Ý”nJ7¥ëÒuéºtMº&]“®HW¤+Òeé²tYº$]’.I¤ Òé¼t^:/•ÎJg¥3ÒéŒtJ:%’NJ'¥“Òqé¸t\Š•b¥Xé¨tT:*ÅH1RŒtX:,–J¥ƒÒé€t@¢¤()JÚ'í“öI{¥½Ò^i·´[Ú-í’vI»¤Òi‡´]Ú.m—¶J[¥­Òi‹´EÚ$m’6I¥ÒFi½´^Z/­•ÖJk¥5Òi´ZZ-­–VI«¤UÒJi¥´RZ!­VH‘R¤)-“–Iˤ%Òi‰´XZ,-–J ¥…Òi´@š/Í—æKs¥¹Ò\iŽ4Gš#Í–fK³¥YÒ,i–4Cš!ͦKÓ¥éÒTiª4Uš"M‘¦H“¤IÒ$i¢4Qš(—ÆKã¥qÒ8iœ4V+•FK£¥ÑÒ(i”4J)”FJ#¤Òi¸4\. “†Iä¡ÒPi¨4D" ‘~‘~‘~‘Iƒ¤AÒi€4@ê/õ—úK}¥¾R_©ÔGê#õ–zK½¥p)\ —¤0)Lê)õ”zJ!Rˆ"õzH=¤îRw©»ÔUê*u•‚¤ )Hê,u–:K¤NR'©ƒÔAê µ“ÚIí¤@)P ”ÚHm¤6Rk©µÔZj)µ”ZJ-¤R )@ ¤fR3©™ä/ùKþR©‰ÔDj$5’I ¤R©¾T_ª/ùJ¾’¯ä#ùH>R=©žTOª+Õ•êJµ¥ÚRmÉKò’¼$OÉSò”jJ5¥š’»ä.¹K5¤R ©ÍÖks€IDATºT]ª.U“ªIÕ¤ªRU©ªTEª"U‘œ%gÉYr’œ$'ÉQr”¥ŠRE©¢TAª UÊIå¤rRY©¬TV*-•–JK%¥’RI©„TB*!—ŠKÅ¥bR1©˜d'ÙIv’­d+ÙJE¤"RÉF²‘l¤ÂRa©°d%YIVRA© TPÊ/å—òKù¤|R>)¯”WÊ+YH’…ô_é¿Ò¥ÜRn)·ô£ô£ô£ôƒôƒôƒô½ô½ô½ôôôôé?Ò¤œRN)§”CÊ!åˆJJJúõ%êKÔç¨ÏQŸ£’£’£’£>E}Šúõ1êcÔǨ÷Qï£ÞG½‹zõ.*1*1*1*!*!*!êuÔë¨×Q/£^F½Œzõ"êEÔ³¨gQÏ¢žF=zõ$êIÔ“¨ÇQ£G=Œzõ0êAÔƒ¨Q÷¢îEÝ‹ºu7ênÔ¨;Qw¢nEÝŠºu3êfÔͨëQ×£®G]‹ºu-êJÔ•¨+QqQqQqQ—¢.E]Šºu1êbÔù¨óQç£ÎE‹:u&êLÔ™¨SQ§¢NEŒ:u2êxÔñ¨ãQ±Q±Q±QG£ŽFЉЉŠÓöbºNtÛIgêC0†|( `ÐÀ$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜ À$€˜K(s-CK­m.¸¹àæ‚Y{µâ´¿fbÒ<<™ødⓉ%W➨Ùây‹ç-ž7á~Âý„û´l0WÿDüñO„Tåÿ¾(mŒÛ8nã¸êßw¿•~+ýVò»ÐjÑjÑj´Z´ZÐWÃU‰™1K ®J̈™j 0À$€˜|7ŽŽuv(Cí“©Ëw.ß¹|Ö~–.6]lºØÎ>RíRíRí·mܶq[õša5Ãj†•6µL„Àt ^6xÙàeF·* •ʼnÞ'zŸèý˦_6ý²Éw›ï6ßmÛUlW±Õj«ÕV«Ë-?´üÐzñõâëÅ÷ÞÿyÿçGbĉßåؙ̼¹fæš™K½ÜRRRøÝhµhµhµZ-Z-è«FŒçÚ¦U›VmZ5õkkÒ Iƒ& ˆÀH“`òÝ8:ÖÙ¡ µO¦ZO´žh=ñÝÎw;ßíÌüëü0ïüól"l"l"HgGM5q”z–:RêH©#ïW½_õ~-ÌÕ—J_*}©TzGé¥wCÜ|wðÝÁwÕW;\í°e†T¶«lWÙ.3¯a×…]vU¿†m:´éÐF¿×@ ÐjÑj´Z´Z´ZÙ‡1ׂ˜­R_9L˜Ümr·Éݨ;@¿H“`òÝ8]ºt>‡4½(CS¹f¹.]6ºdþunù°åÖé½Z¾×¦ë꤫“®N*S0¦`ŒzÎ[2oɼ%Ú×/St À dmÜŠçHúýØïÇ~?ZêUxðá=ÄÄ«á®ÿ¯}íûkŸúûo Þ¼…II€V‹V‹V  Õ¢Õ‚¾jÄØ®ð“œüã¤úŠY…ë½®÷ºÞ‹ô…0 `&ßÓ¥K—=»éÙ!ܱ~Çúëgþ'êú¢ë‹®/Hg * •EÃ_þÒðõÚË}úiè§¡´E0ocǎͪ¸Ó‘¡cBÇ„Ž±4˜ÈÈÈŒ}"±Ë—Û\·¹ns'õŸÔRÿ»ßÜýæî7ê³å»-ßmùNýû%÷Kî—¬þŽoÞ$¼Iˆü>òûÈïüÞà÷¿ïí³·ÏÞ>´0­­@«E«E«mjÄØ®ðã„>N(;¯ì¼²óÔ¯S}c)êÐ `ÀLŒ(½tï’6Åk–+<¿ðüÂó߯¼y“™Ý÷¢í‹¶/Úžpv°jýªõ«ÖËksi©¥¥––JoÍê·e m]—u]ÖuÉÚ–M¾{–\ÍÀš5׌\3rÍÈxËxËxKqs†øï¿§ý=íïiîƒÝ»Ö|žé¥§—ž^:½W¸>`}ÀúÍg–—¤ú>bGy±—žúßôöëí×ÛOûr¦…hµhµZ-Z-Z­ìÃTf]äK” â»C=º#LBÀ&ŸvHpHpHPìeÎn?¾ýøöãòkïìBØÔ%…%…%…U­Z!T½íííÓûì/`*>7þÜøsã9ûç쟳¿À¥— \ʪ–íñüÇóÏ/^$¼H¸Ò»÷qëãÖÇM›EÅß„ 6Pélâæž'ŸL|2Qûëì\¾sùÎå ñ¬ŒøÕ3ô’‰­­­@«E«EdšÇ¬—q^§xÀ¶±mcÛÆêW[©Q¥F•1_èŽ0 `t I›|¸¯u_ë¾Öòÿ½Ý vƒÚ ÊœÏÕýl÷³ÝÏjm$€M—Ò]ºb„:…©S]·+ß®|»²¸µ%b@Ä€ˆò›²ªeëq Ç”Þ·ÍŠ6+Ú¬H÷I-T*‹–çZžkyNéÌêK jsÊèÑ%¢K Š=(ÚYå¬rVé>Ùív·ÛÝn¯^¼zñêÅÉí“Û'·'bZ-Z-€V‹V‹V šgŒùj•nXRuIÕ%U©M@$€I SHØäÀ¿=øíÁoåÿ»XÊIì d¸kO|ÊïÙ8Pà@ÀæAÔu¹ å&”› ¯Ç#±GbÄR§0E§kŸ®}º¶WE¯Š^õõä„!®óŸˆ"þ‰È—˜/1_¢üm"l"l"}pôÁÑŒ]ý÷Ü{ ô‰Äû> þ4\÷ß2õý½äª¼®òºÊ뉣&Žš8JÔ¿­­@«E«E«…ŒÍ óÕ*Íh©ßBC˜0:…$€M>,î¡.y±äÅ’åÿ¯Ø‘Èp×¶sÝÎu;×)ÝAœâ™â™âIØ<¬<±òÄÊJ³T»T»T;J ¦H©3¶IÉýô[ÐOóR„º¿K¯Ö½Z÷j­ô.‹š/j¾¨¹NŸÑBe¡²h;»íì¶³•Þ¥üÐòCËå7 Õ¢Õhµhµhµ û ’1_­˜I(;¯ì¼²óØÐ/À$€ û4l*¹©ä¦’bÁïóÞç½Ï‹4€Ø¿¤`LÁ˜‚1")UípµÃÕýôSÐO³žÎz:ëéýË÷/ß¿LI[§ÐÐD±¯OT¨:QuÄð©^|½øzñ"r í,´³ÐNÑí«“§Nž:yº¾èú¢ë‹ u7ÔÝP7ñRâ¥ÄKYõ©/<¼ððÂᣇŽ:ºÎ—:_ê|C&qÍ9r8äpì>Ø}p¿ûýØïGñäkfÖT¿ä~Éý’•–¨2\o Þ¼Eþ¾?—ý¹ìÏe3?ÒDMÍŸ>úüé¢Í©X3°f ˆ1q×ö¿µ–àà Ëju°ÕÁVõýÕ÷W_Qw"u­ûõ®é¥ô¯D ù{ÔïQ¿G5 iÒ(ı¦cMÇšâ©nñYD«+bòŒóç3Άn1DäËkð·Â¿þ­0Ó0]¦2)Ù𗆿4üEéE«¢û»[xlá±…Jï¢þ4IÆÎ?óÓÌO3?©ŸSìóçTÉ©’S%õÿ½YÑfE›¥mhµhµZ-Z-Z-è2ƒdü×<¼ÕðVÃ[ɯÜçÏ!ŸCD)1$€Iéðnç»ïvЉþböÅì‹ÙëÒYÏ÷M¾oò}“ÞîÈ×®#\•ιc;öfìӉĤH)_솢K*íl!ˆýoÒÛÓ¦ ³x e¡²PY¬Z¿jýªõJO©jC$íÄ‹hÔWWXéÓ½Îû:ïë¼cÇŽÍØ5‹ô¶î]Um®ùໃモÿ¿âVŒ7 oÞ$è·MH K K ³ó´ó´Kã_±#‘Á‡î* •…¸¥î«º¯ê¾ÒWœ«Çªø¤†Ž··1ocÞÆ„D†D†D*-;–U"gÎ:œuPz¯¸5qkâÖèò¾<#ެu¢÷‰Þ'zäNß+3ãö•ý+ûWöJ-Cñ¼ÅóÏ+ÚC=¼™…ÊBe¡ÔÓ× ®'½'Ž;%vŠ˜‚T?ç¸ã6ŽÛxªé©¦§šÊßQÜ cèßP€V‹V‹V  Õ¢Õ¢Õ2¦X âV~¥(:ÿöüÛóo©Y ½H“´"~hÕw_Ð/ë‰Ö­'jÓ)9|åð•ÃW”Î3xÙàeƒ—e¬ss²ÓÉN';i¾Î2«Ê¬*³J—’¬Ô¨R£J”Rt"ýcˆŽuV%€Å E<¿¨ßkPß…Ôƒ“kî »6L©¾ÒËÞÑÞÑÞÑÐé1Í A‹¼~[†ÝSwOÝ=5ÅŸs8äpÈ¡þ­!„boc]ÒóÚóÝæ»Íw›áâíFÇot+%è~µê·Jè«®ÜpkÀ-ù{¹Üu¹ër×T¦ `Š+†‹[õ=¶åÄú}Ç–çZžkyNécöÄì‰Ù£ýÙ^:½tz餾ؠ VÎHnŸÜ>¹½øËa݇uÖ]~Ëà¾Îû:ïëL ÐjÑjÉ Õ¢Õ¢ÕBzkÄT®\¬Ð&¿~±ö$¤ `ÀÀWˆ;°ÔÓW†#–6Õüs.žÓµmlÛØ¶±ü nsÝæºÍÍX‡`f®™¹fæÒæ:oúßô¿éŸÞóßýæî7w¿Q:§XxÇpëÌO¿¨õ¢Ö‹Zbé]ÃÅŒú³§úœˆ+¯lWÙ®²~¯¶ê…ªª^0\Qèÿ¼ÿóþÏ•†¬úí.‡Ž :F›½‘ô; Ï‹¡¬e&jÒ Iƒ& ôoor¼Éñ&‡!âMÜ9¾Ñe£ËF]jYìÇ#n‘¿‹z ˜ÊäNöq騥c—މ;ý) SŸ”Tß Nn⨉£&ŽÒïûN˜1aÆ„J︴ÔÒRKKiÿŽCf™9d¦|)Âó9Ïç<ŸSý<æ}˜÷!Ý¿ÔÛIZ€V‹V  Õ¢Õ¢Õ‚ö5b*W.VDSzDoOáÙ `À€"q‡ 6)–úsêÏ©?g]—u]Öu¹w1îbœHiˆ[ÅÒ " !v¬Ô|¶Zµ(-Z%U‘ªHUÔ¯M¿B¥ÝŽåQ!Õb!¬»‰wï&~úiè§¡"Í/Òcb‡iq†æHÄßë«îÔóêÄ¢gbYûÇóÏ<_|;nW¾]ùveÑ yôôèéÑSóùE½ë2䥧tþÅõ×[\°q¿Ëòò·RQ>¦5)©ô¾°¶ïÚ¾kûê÷}ÿžö÷´¿§)½£ú$£6g 髟aìé±§ÇžVú{õß2¿•~+ýVÞ{pïÁ½LJ´Z´ZD2hµhµhµÞ1•+_Øua×…]•bI¬ÝHýÚ#LÈ`gTýÙ²ôv)´I’i^î&òcäÇÈJÿv}Àú€õÚR‘°TÚÇTNìœÞ.”Ò]lêO.œ™ÝtÍÏR‹È™»aĽ{Ú¼×éÚ§kŸ®­ùjg~šùiæ'ÝËP]/u¾ÔùòdⓉO¾¶D¹…ÊBeñÇÉ?NþqRó9ÛÎn;»ílý>E*çÒ;Jï(½Cþ—âFÝÛ±<”6‹?ë7ÒDâV}‰c9±(´H—ê·œ…6+Ú¬h³B¿-žÿAþùˆ{½µ9³(gmÎÜ´BÓ M+dì{ý«ï¯¾¿ú*YÜQnZ“;Ù‡RXýyîgžuxÖ²2þ¸õw÷w÷wWz/õE õõŽš7ÝH H HÉØ;ªï¯Íoø]3ô6 ­­­@«E«E«e®ßS¹ò3ÎgœÏ8+ÅÒo…+ü[aâ Ð `À€"¥çÒÔÀÉà©-T* õ„„œzÊA~‚G?úûÑßJÿV<3ª}‡@ìp¬}’&c;Ë÷bœ-œ-œÓ±€‰1'€ÅsŠêKyËý›úÍãÃ?>\éÌbï[qß«.ŸZ¨Ø®b»ŠíDº1½¥ô9èsÐg¥3‹H0tM)Ý¿Üüeó—Í_êÞ]ïÞ#¼‡üü½ýzûõö3\¤©eåĺb/m]>ãì³o̾¡ô.b7t}Õºýô[Ð/c×,ßÉIn³ýÍö7Kï™ëä©“§NùÙ Ï/<¿ð|}=KÊ”!(%€Õ©ßN¡¯t>“’†ˆ[φž =*½×âwŠß)®ßwë (½cmÛÚ¶µm©)€V‹V‹V  Õ¢Õ¢Õ2þ1•+«Í)Í+ª¯½G-Ú LP$`J¸+ ®,¸²@—Ý?ûó·?S:‡6Úth£ùüJËŸ:Urªä”Ž»ç-™·dÞm––?³«{·~ð²ÁË/Ó×Ó„YÛM¿tüÒñK5{dF ˆ1@é]Îå?—ÿ\~]>µ°¹àæ‚› f¬IJ½š—ä5tM©ß¡,ßè¥ÓK§—N+‘ð+ž·xÞâyåçªU'ªŽüªôió§ÏŸ>ºÒyfXͰša¥û`àz¯ë½®÷RzQ†úª;õ'tu¹fq×¶æEûÕ~׿œb¯eñ\²ülb¡0¦ ŒÙÁo~{ð[ë‰Ö­'Zfˆüi~dUÜ:«œUΊï(nWÒï;Š§Ã•ÞQìjOM´Z´Z´Z­­­–ñ׈i]¿Ò&kb>MlÊF-Ú LP¤¾s¤œî;‰Æ[Æ[þ¿-bG%ýß—XUs7eÔ£~õƒÒŠý>µ¹¥…ÕS€ºìù}ä÷‘ß+G¾[jfv¬õu6‘$(7¡Ü„r4ïÕ¡{×Sýµ¸A—.²H‚CM Š=(:ý„räȱ+Q_b]›ÅŸMq@(î'Íœ°~ïìÖœøv®Û¹nç:mΦyOk±`5 `Ó¢¾¿W³¢ÍŠ6+ª}2XÜf!þûòîË»/ï¦<33n‹„ /®ô^b©4ý¾£8§Ò;Ú;Ú;Ú;RS­­­@«E«E«eü5bZׯ´R£ ¾2u hF˜0 ¨î«º¯ê¾Rú¹µó´ó´óÌÚŸ[ñÔ©è˯°ûÙîg»ŸÕ|…W']tu’üßVÿ«ú_Õÿ£žäÈØNÀJɘÀ±cÇfmÇZ_gÓ¼gê×®#\õ-bhñ¹úëiøÓð§áº$€ÕŸ¡4ž!PÆÎ³'fOÌùß‹E}Å-éýÆ9$8$8$h¿ø³)Å^¹™“V_É@_×?ðÌÀ3Ï(½ã¸ã6ŽÛ¨Í;öKî—Ü/Yé<ëÖ¬È `K#¦ßOW´}ÑöEÛgìJDj™‰ÃÅm¾Ä|‰ùßK‡U+”ˆJôµ>“’­­­@«E«…¬ªÓºþ5#׌\3R)¢Ôu ®ÍH“Mî6¹ÛänÚOþîí³·ÏÞ>'|œðqBf^§ú®–êÄ>šÿí’ªKª.©*ÿ·êiõÝŽÓ»°æ¥€µYæÚÐk}­SN5:ÕÐü¼¸ñtÎ4jí7þšÒüËÿRóNÀA?ýô“. Côu¶Ší*¶«ØNé<é]j8‹'zZÜÉxjêØÂc -”ÿ+±ÈÕ³Ï:<ë ù bqW¥çbÕLΪ¡»¸ÂãÃ?>|ìé±§Çžnu°ÕÁV5§03gšCóy^Ù¿²e¯ß­¢Ò;V­Z!T›óˆuŸ•ÿæî7w¿1ÅÉý^›Ù&€eî¿SüNqñ¾J›/hC¬L`}¤Ì¬Êv•í*Ûeæï¬æ–D\“’ •B*…V‹V‹V ´Z´Z´Z$€ 7ö”s¹ÌØÚ LHwÇTûg€´!îÛÒýžÊZµ¸}pû`ywG< (ç¬rV9§q~õÅrÕiÞ XéR]vý4ΰæ#3apcFOM‰t‹Òí‹ë-®·¸žæó|wðÝÁwò+žšÕ¼ø³áÊüÝÎw;ßí;ÚŠe¨õÕ.‰å¶2'œÜ>¹}r{ýF¸XqAémÛ6¶m¬Íy4/ƒ¦ß»à9 ¹÷«Þ¯zÿïÂò5Æ×_c¼öß/õÛ2L½23n=zzôôè©ô^†XK@¬¡¢ôŽ5kÖ dR¤RH¥ÐjÑjÑjV‹V‹V‹°~½Îû:ï뼺Ïi LH7õå|«^¨z¡ê}ubr8äpÈ‘±®É˜›cn޹)?§xJI<¨þ÷J G‹Ålå×pËë–×-/¥+—יּ+¯þDfÖôu¶— \*pIél`ØÀ°ò¿\½xõâÕ‹•Þ]éJùNÀb‡Qù_Š'&uIœgXìO£tž7 oÞ$d·){c«©Ø)±Sb§Èÿ­Hò=™ødⓉò%nžPz–}_ç}÷uÖæôûM/^$¼H¸6mˆøÎv.ß¹|çò³o̾1û†TEª"U¹ùþåû—u”ê«î ±ô‹Z/j½¨¥ôŽÚï&%î«U:ÏK§—N/Lqr†v>çùœçs’Öï{)ÝÄ#¬Z¿jýªõú}ß¿öýµï¯}Jï8(zPô hS©AZ€V‹V  Õ¢Õ¢ÕÊÎßÓº~1Û QvžvžvžÔ2  À$€Lêj´ÔnP»AÚ'† í,´³ÐNí»)"M¥´ ìÌ\3sÍÌ¥~6¥ý]î&ÞM¼›¨ô¾Á[‚·o‘ÿ+ùNÀjtªÑ©†ü/»¾èú¢ë ãéXëëlšŸ¿÷àÞƒ{Œ9>³CXìm\~hù¡å‡ÊÏ ´[öá+‡¯¾¢t+ƒöO¯ê~ýâ½ÊÎ+;¯¬ââÆ"™-öÞ¾¼ûòîË»áÛ¡ù<†XLLì°®ôŽbá}mΣtË‹ÒÊLdg§kŸ®}ºvÏY=gõœeµÚjµÕjÀú}¯EÍ5_Ô\é½Ô×AÑ×;ŠýÔ•ÞQýF7j  Õ¢Õ¢ÕhµhµhµŒ¹FLëúÅlƒRDU­Z!”Z´A˜0©Ä^°â{'vÛÕÜM2sÈÌ!3µï¬ˆôªü<ê‹ù<úûÑßþÎXBiáèÿÙ ØBe¡²pHpHpHÿåßÓþžö÷4]º_Æ™nøKÃ_þ¢tžýÍö7Ûß,» NŒ³¦†Ž:zèhùüÞà÷¿ËÏ6ðÌÀ3ÏÈÿ^¿úóÁJÏÃÉŸ;ü7AõM¾oò}ó¼Éó&Ï›OÇZ_gÞjx«á­”Î3Õ{ª÷Toýv:ÿ8ùÇÉ?NÖùò_M4iФ1 NŒ³¦”Kñùxþãùç‹¿LµKµKµSÚg7½©Vݯ¿ÅwZÜQ:Ãø¥ã—Ž_jœƒØ¯<ùèFý ßØÖ}X÷aÝ•ÞQýÿÕ|žV[luPé<{Fì±gDv˜2Èž;®ÉÝ)~§øâ¿úþêû«¯Òzrâi`±_øÅ¸‹qãÌi2(3kçmÌÛ˜·1êë£È—Aí¶ÞÌBe¡²°w´w´w”¿—ØGÜØ6w`R Õ¢Õhµhµhµ T#¦uý»§îžº{ªRDµYÑfE›Ô2  À$€4ˆ'Ò&ŽJû%œúz¯SMO5=ÕTéG½hû¢í‹¶×þlÏ:<ëð¬ƒHeÉÏvtíѵG×öû±ßý~”ÿ¿‘ßG~ù½6#§JN•œ*iÞ X®^|½øzñÆÖ±Ö×Ù¶>Þúxëc¥óxŸ÷>ï}^¿Nž==zÊßK¤apbœ5%†šâywùyæ-™·dÞõï‹üoÄ0UûÅŸõuýš—WßsT÷ºÓ|«‡~ÀêOÙêk*¡R£J*5RzÇM%7•ÜTR›wTz^\7Üd‡)ƒì™Ó[bàÝò\Ës-Ï)ý¶Ê‰Åç´œÒrJKõ©™”Ôæ'E=:ôèÐ#=Œ˜öÄì‰Ù£ù j  Õ¢Õ¢ÕhµhµhµL¥FLëúÕwÝ–‹1 bÑhõ‹C˜0 7(zPô èÌÙ·/ñRâ¥ÄKúJ uòÔÉS'Ò3‚šŸßÕæsõjÝ«u¯Öšw–›ÔRÿIýu/7ãL+¾tzéôÒIÜ©jèCÅSªJï:&tLèÍן­À*•J¥Rï.«óÝæ»Íw›øï_6ý²é—MJ%œù×_x~áù…ëýÝÎw;ßíÔWÝi^BY¿ `áŒóç3κ_¹TEª"UQz—üò?ÈÿàŸˆ"þ‰ÐæShÞkÎþ9ûçì7¶·3:ÜÀ"Y;3×Ì\3s9Öt¬éXSû+ñ9äsÈçøî|nü¹ñçÆÙa@žùq;úüéó§ëò ¨ ¥~Ž ´g<5ð] Õ¢ÕhµhµhµŒ³FLëúÅšJµ¸Þâz‹ë]€6H“Ò0óÓÌO3?)ýÐ*íš1Ç[xl¡æ% Ó{ÎqÇm·Qó“vêJ)u¤ÔíÏ¿fäš‘kFÊÏSzGé¥w(-Œ©¯'9­¨9Þ>¸}pû`ÝK`ìé±§ÇžVÜQõ»-ßmùްfb÷V¥… ï=¸÷àÞñ ŸÒ¿úM‚js‡9r(A,-«{­‰U*¶«Ø®b»ÌL7+Ú¬h³¢ºD x^³f`ÍÀšJï86plàXÝãDP_MÁ¼§ Ì;,Öáè9«ç¬ž³ÄrÍÚ¼¯¸ÝGlpÖá¬ÃY‡ì9Å“ùqûèïG?ú[éÅ2w¿¹ûÍÝo2vþû—ï_¾Ylœ!?¿XQý6,j  Õ¢Õ¢ÕhµhµhµŒ¿FLëú•ÖnÔ×’¤®ÍH“ÒpºöéÚ§kkîÀékéõ;(åú¸õqëã–Þsj^VZ.è§ Ÿ‚~Ò×@)1,–f5¶Žµæ³¥w‡¥ýeÕ­¸¶âÚŠkûì^xxáaK.Hã©ñ"áE‹„¿_õ~ÕûUÆ081æ°ˆF¥4§zª^÷ÅŸõuýž =z6T:ƒXlV—O±‹§õ›xÓ¾­XØua×…]3výš÷áÒ»s³¨kë‰Ö­'ÊϦ^#L˜Š>Nø8a剕'Vž¨m[Û¶¶mzËÄZO߆? §v²*nû?ïÿ¼ÿs¥÷m½µõÖÖ[3v êÿVN¬CM´Z´Z´Z­­­–iÕˆi]¿Òü˜+NQË€6H“Òb¡²PY”Z~hù¡J¸²óÊÎ+;/cÝ‘T커|RíÏ/Ò–   Ú']Òû..w]îºÜÕæübyãìXk>›x2½çìú¢ë‹®/4/B+lÑ>).žŸÖ\æ"-a<ƒ£N«T*•jX÷a݇u×>ý#žÌªÒø­ðo…+¬ùyÄ#±GbĦ÷ÚöuÞ×y_g¥}‘•ˆ…”uÿìêÄÍ b?rmÎ,†=#ËŒ,3²Œæ3û»û»û»g¬î·mܶq[¥ï²6·\0eµî¿SüNqq‹€ÒJÄ– Oû{ÚßÓÄo75b qûp×Ã]wi~÷ŸËþ\öç²ÚÜÈõ¥Ò—J_*i^ŠP<ïòdⓉO&šb дZÔ@«E«E«•¿;¦råb†AÌ6èwfÈžH“E~ŒüùQs7N,+þ{õâÕ‹W/û¼¾yó6&),),)ìnâÝÄ»‰1{böÄì)º2«Ê¬*³Jó™EQ—ëïq Ç´™àŽ[·&nMz»Dš$ùŸE‰?lù°åƒq>'§y×^± ì›or¼É!jS<ý¬ùœ¯ì_Ù¿²×¦düVú­ô[)þ[,£$žNí¨:Qu¢êˆ”:‚x’Uì«M9Òû¬üî©»§îžšU×£ãŽ7:~¥EJÌ—˜/Qü÷Áo~{ð[ÑþˆÄ•ˆL±XôÜ s7ÌÝPçK/u¾h„+ý¿mg·Ýv¶6ÏÊglißæ/›¿lþr×¢]‹v-ÉæOC? ý44Þ2Þ2ÞR$‰=zzôôè©ù<âSÜ®|»òíÊ«;õýË•nÓaÊÀ8‰øQÿ¥Öæ„ ÏAŸƒ>ËWt <-n5ïQ'xUôªèUqsÁÍ7|pôÁÑGEK"n Xµ~ÕúUëÝ»v¬ù<ÿÞ¶EM´Z´Z´Z­­­– Öˆ©\¹úƒ@r“»Mî6¹qh0 `@‘HiäÈ;3w4 }¼Îû:ï뼺ü¨¯í»¶ïÚ¾šßKì*š±Å™7•ÜTrSIm&Óî'ÜO¸oœkmH{—óoÏ¿=ÿÖÐÑbÛØ¶±mãË»/ï¾¼[ûk#ü/ •…Ê¢R£J*5Ò|~;O;O;Oq@Ö–†6 ëB,$.v’Ö¼@½öŸEóß‹Ûb ñYDû³ýøöãÛë'W\YpeÒ»Ìz:ë鬧ºw˜20„u]ÖuY×å+¿ƒ   £Ÿ~6ú™ú”ž©Ä­æ§It7àÖ€[nQS­­­@«E«E«eº5b*W®>à wuÒÕIW'W€öH“¾âüó>ÌËœÔo«ƒ­¶:(Ò¥ºÿœ‹=ÕŸ”{fìübydÍŸ¨Iƒ& š40æŽõ¯¾¿úþêkˆ°pmصa׆"ZÄS¿êûUÛàÄÀZÇ@HdHdH¤1”†X>«‹M›.6ú¨êUÿ«ú_êë¬X°>@û3l}¼õñÖÇûìã6ŽÛ8n£¾>‹M„M„M„ÒõdŒÒìËw.ß¹< `㤔®X3°f Ø‘]<£@9›nܪ/Í­_Cf™9dfŠgŠgЧ©G- @«EM|hµhµ²ówÇT®\}†A]µÃÕW;LÍéE˜0  •…ÊB|_´y^P{µmkÛÖ¶Ϩ©wSôuáÞç½Ï{ŸWz÷9ûç쟳_—w¬1¾Æøã•Î?ûÆì³osZQ,¹l¸°ü]¬'ZO´ž˜±h‹ÙŠ;dÕš6ÎÁ‰©$€Ï8Ÿq>ã¬ùüb!Y]ÞKÏׯÖ"Ù;Ú;Ú;f,¢J^,y±äE±ÜVo •…Ê" % % ÅÐ `A,[ílálál‘±OÔâN‹;-¯õÏcn޹9æ¦üÕ—ôgÊÀ؈°XB¿cýŽõ;ÖûdS¶æ:Õµíê¶«Û®¦wGsuN•œ*9UÚÛgoŸ½}¨)€V‹V‹šø.ÐjÑj™G˜ÀE[¨,Teç•W6ÇÆž{zìi" H/À$€ þ$ËŸÜI ±˜¤ØYÖjµÕj«Õ¥Ž”:Rêˆxº.è§ Ÿ‚~š™kf®™¹Ôî0ôO¸æóë+ua¸óšú=­ ~oð{ƒßÅFÔ Hù‹ýzE êò^‰—/%^ï%vz‹~—ÞQzGébÑZEU/T½Põ‚xÇ%U—T]RUý©k¾ˆÔ÷~Uåu•×U^³/f_Ì^´Eb!ögú¹ìÏe.+†ÜÚ<û¨þ7↱t|ñ¼ÅóÏë»Íw›ï¶Þ~½ýzû‰çÝu «ƒ·o Þ"v*q¯Ä½÷ í,´³ÐNõo¥©/Ôlˆr{+9|åð•ÃWˆFc#ö~¾÷àÞƒ{h9³±…‡¨ñ°aÊ›áÊ-?´üPцˆ_yŸC>‡|‰ìУC=RïãQ’hµ€V ¦ÈÀò›•±²£!ns²À$€ƒw2¸ïÎ"‘ãi‹2ÿÛaègÁ3³TÅÆòkèãÖÇ­ßV€ßw Õ@«E«â0½ÄÍúò+o½µõÖÖ[©S cH“™:ô2Ýé€ëv®Û¹Nþ)Ôâ¦ÆÈ*¦5ó––&Vq“_ùž{FìÁl1$€I€Lz™nX,w¦´÷¹Ò.È s˜Ö̃˜I_³GOž=ÅÂéÔ)1$€I€Lz™ú‚`[>lù°åƒü³thÓ¡M‡6Ü™ @V1­™õ™uÛo?¾ý83 €.H“™:ô2ù¡,T*‹š5kª–B; í,´óuÞ×y_ç¥ÞÈ|¦2ó fÄL‚úÕÖò¨åQ˃gÝ‘& 2uèeò `•J¥Rüöà·¿•¢qÇm·‘»tÈ|¦2ó0~éø¥ã—ʯöໃï¾cVÐ `À S‡^摺Ýîv»ÛmõOdÛØ¶±mc†jd>ãŸyxeÿÊþ•½úìÐã@=Pƒ€¾& 2uèeN à"þ‰ø'Bþ¹F–Yfdj€Ìdü3bÆ@ý ííퟆ? Π倾& 2uèeN `áïiOû{šú粞h=Ñz"Ã62“1Ï<ˆ¯M„M„ÍÿÜJ¾¶ïÚ¾kû2‡è `À S‡^æ—BÇ„Ž £þé†Ì2sÈLb€ÌaÌ3ƒ— ^6x™úµ…÷ïÞƒZ 0 ``@£’4½Ì链_õ~ÕûU¢gUË£–G-ïóÞç½Ïs/™CŒÇÕ_ÆpU ÷î'ÜWŸ%È; ·úLuè `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ `ÀÌ à9ªõëX½b³èu<‹^'²èu2Ó_§²èu:‹^g²èu6‹^ç²èu>‹^²èu1‹^—²èu9Ó_qYôº’E¯«Yôº–E¯ëYôº‘E¯›Yôº•E¯ÛYôº“E¯ø,zÝÍô×½,zÝϢ׃,z=Ì¢×£,z=΢ד,zý“E¯§Yôz–E¯çYôz‘E¯—™þz•E¯×Yôz“E¯„,z%fÑëm½ÞeÑë}½>dÑëc½>eÑ+)‹^ÉYôúœé¯”,z}É¢Wj½TYóŠÉ‘E¯o²è•3‹^ÿ1Ô‹0˜-À`&Ì6,PÁ²³M?oö¼ÙófGb ö:šE/ö$f7bv#6þ݈³Ï>ÄÙgâì³÷ðå,zeŸ½‡³Ï®ÃÙg¿áì³Ó0{ ›ßîÂYµÇpöÙ]˜}…ÙQ˜½„ÙE˜]„³jáì³0;³g0»³O0ûgÕ>ÁìÌÞÀF¿+ðóðçáÏÃÍö `€!3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `@b?Ä~ˆýS&¦LL™ØÀØÀØ@ʦîÄøãOŒiÓ6¦ml¹Ør±å(˜ºÓÕOW?]=fBÌ„˜ Ç’Ž%KRÅ«âUñ” L×¹ÛçnŸ»³'fOÌžc'Ž8v"õYê³Ôg” L×å—\nó4æiÌÓc Ž-8¶à‹åË/–”Œ~‰¶B´¢ í %¯ŠWÅ‹>žèS'Æãbl.Æé” Ð ` /¾lø²aT÷¨îQ݇ \6²ldÙHK›VlZ±i}oõ½Õ÷Ö®š»jîªùtâÓ‰O'Ræ0´×?¼þáõ:èt Óð€áÃ*5¨Ô RÝ£ºèÈ¢#‹Žìýmïo{»=Ïö<Ûó<ÿdü¥0¸7ÛÞl{³íðÀÃümÔo£~å|ßù¾ó}Ý£ºpHáÂ!¡ÅB‹…Û|vóÙÍgõ}Ô÷Q_ʆ–Ø,±Yb³£ýûèßc—Ž]:v©k?×~®ýtê>| øôpìáØÃqÃÈ #7Œ|PïA½õ(sÚ»ïJ¼+qüØñcÇMX?aý„õîoÜ߸¿±Ô“ § § §µ¶km×ÚÞUÝUÝÍÖ¥-¾×â;.¾ï⻯{9‹¶H´K¢íC}0Ñ}3ÑOÓ=ªE¿Qô!ERô-)sš/‹±³G‹1µîQ-Æøb¼/Æþb€2 {" ¨žîºÿéþÅå—[\®TÉR%K•´Ìt… 9r˜õ׬¿fýõ°òÃÊ+S/ÐÅ ¿~/ü–G.\YqIÅ%—Xf‘©žS=§zÞsºçtωz.^|uðÕÁÕ «V'¸|pùàò!«¢zü¶ñÛÆo»óÝïî|G½@ ½z%ôÚPdC‘ E<==³*ªGÿ0ú‡Ñ?ÜØycçÔ tñÎéÓ;§­¶[m·ÚÖõ©ëS×'«¢zx­áµ†×ºêuÕ몗¹–¶øÎŠïoV•³h»D;&Ú4¾Ð…è_‰¾VVEµègŠ>§èR/Ð… ‹qqVEµ˜ób®€zý’·½1ÿ‰ùOÌ(d-ÀÈ~þRý¥úëôšÓkN¯ñöö¶4Jžžž‡ýûöOm›Ú6µ-UEoToTo.Œ¼0òÂÈ6¾m|ÛøgT»ÝùtÇËY|ÅwS|O³´Eû&Ú:¾ÐLôD?Jô©Œ3ªE_TôK©5h&ƹbÌ+Æ¿ÆÕbÞ@Ì!ˆùêtAƉ0²‘“O<9°òÒÊK+/Í`úªŠí±ÂÇú«úgée檷ÕéøV·&ªED§4¯ê6ïHL‹Ï5Ö¬Øü/·Û»7¹_íã¢ÑÞ_*Ï$¹N/sÎýf±H›Ñ{_›8›8›¸è¾Ñ}£ûª&©&©&Q›Îç8Ÿã|"E<Šd,ºœšmiõ¨÷9—¥¿çSïG§n[Š5^WÍ#º{@²ÛÀ#´xZcÙÁ Í/»}Üñ‹W×%î>Ë+¿Ò¦ú¸²ÁµV8üP¤£.ÃÎÝI»“v'¥^J½”z‰Ú„W'®N\Ÿ>-|Zd,®*t³¹m•3ܮʂRasFÔ rLÙümãºU“¥“‡ÜŽtkqµÆœƒwš?©ñŸãý7ºXúÒ×Û¹mÄ?nÃÊ&× *ѧh5]¢z«ëV×­®_â¾Ä}‰£6!Üp¹árÃ¥©OSŸ¦|²`g»å3ŠÇûþ·Upy×.Íû9õï{iÊÌ*Ý"¬çs™ü«´¸†‹Ãð §9ôqv•Š÷{]¡ÔËæ{ÄñqöpŸ¢KT¯+±®Äº)S&¦°iþuçÊ+w®´}ÓöMÛ .æ\`AÑjö?ôîÖ¢N¹[ÝÝròè[fò–*>C÷ÍÏí2ú×e‹ó¹T>kág—_ÚÏÞRÉ54vLDé°–íC®Irä®KT¯¸¼âòŠËɯ’_%¿2ærß;ñÔåóú,yÖ6÷¯ƒjô)7-r‰ïCç½»ºú«\ÿ:dÙ<©†Å‘*-ŽÖ˜$U˜èæ´ñŸFW«î›½­ÎNÇ9=Cœç•<]¦·uBv{_Ñî‰6o ÑGý%]¢ZôÙDÿMôåD¿NôñDOôýD?Pô EÿPô3ö¾¢*ú«Ô&1žc[]¢ZŒ¯ÅX[Œ»Å\ŒÇÅØ\ŒÓŘ]ŒßÅX^Œë3¸–C"EÄܵ CƉŸv˜¹‡^|x1àfÀÍ€›é˜"ù\ª”míu5uyøð—.åêäQ©ÂÂüüôu|þs׃u#·înâ]m^‹)å.+”Ž®y¸G¸GøMË›–7-©ßìéi©§¥ž–ê0»Ãì³µ¯d‡‰EÖ­._ÿ}•ä{#;ç©ÝM¿Qýºxw‡zƒw¶ñ_ì8«¢eñéHBovÚì´9nYܲ¸eÔoöôÒê¥ÕK«àÄàÄàDí#Çíºý=›<Ë£üš9'Çß©„×%ýFuâÁüì‰oú²zµÎ¿:ú8×þÚJ,-±´ÄÒsgÏ=w–úÍžÞ¬}³öÍÚ¾)}Sú¦h9V-Kž.?¶¢GðÖ‘#Ý~žZnK/¯åËOÒ×ѳý¢u1EªÔ:{Þµâ~Þ›Jǵ¹Y¹Y¹Xzb鉥ÔoöôöÖÛ[ooElŽØ±9·/<)Pr…ÖÝî»Uýíä•›Jé9ª–L<6¦ÊíaKD8ù-oÓ7½ßG,ŽX±0¶Òß5ñ½Óþ³ôhRùç’ÖQ-ªWOùP1ø žG1·u¬éUIUŸe•ß9Ï·u,¦ýµ‰öP´|›²'Ñ/}¤t<}û«£ÃqÑ}3ýFµèCŠþ¤è[jm¢ï*ú±Ôoö$ưb<«}äˆñ²;‹q´~£ZŒ÷ÅØ_ÌhmbžAÌ9P¿ =À0N$€aŽjªjªjFî‹Ü¹O« Íò7Ìö÷ó\:¦N ½ã› ßηöÇm±MÖT»\>Øæ·B'´¹òéîÓݧ»§lLÙ˜²‘j7sWTWTWÖvZÛim§t<Ýbï7°ŠeʰPßaYÕ»?5_=‡ËÛ”ÂO´¹æß;üÞá÷Éû“÷'ï§Ú³ƒ­ó·ÎßšŽåWó©Sy_ÒÒž?úÄeUTG}äV¢æ‹âÁ6ZÝã?¬à°‚à ~jý©õ'–=Ïö†î ÝšŽ…Äowí>4Á³å¢y19ô›Óþèâ7üÉ¢’E<œ‹¸wÓ*‘Ó£o¾=Þx?âýj<;8xþàùƒçµêrwš3臚¿/øñ஬ŠêªGî][ô©khw­R§{4îÑ8±jbÕĪYUÎâ;%¾_Z=‰_r_QÕ¡ó-êÖpϪßÄ?o÷ù~^ѺÉNí´ÑNòÍÊDÿGô…´‰ Ñ¿}­¬ŠjÑÏ}Ît¬3ëü­ó©ñì@ŒUŸU«•äŽØ¦~"ÆÅYÕbN@ÌhOÌ?ˆ¹ê4# ãDfåõÜ×s_Ïmü²ñËÆ/5wd+•)2Î*ô˜cË{îÕU߇ý×Ï"«:âiSÂBý|Ï»µ]ZsXÝ\%š-®ù³8té<òñ²ÇË/#ÌÏÛ6oÛ¼mø<ðyàsÍ‘àào5¼Àûƒ§›ßuS¥Ú†îô½nDQ­ óó»|·]{ωó–ùÁî+Óš%r—È]"÷½°{a÷ˆóóaɇ%–÷ îÜë+7èTΘoÀþ"ÍUßùå»Pß…ÆÕ×›tÈQkb«‹å×[ð•ÅNC „¹¹ûæî›»‰ó“49irÒäþ}û÷í¯ÕÓ‡•Ê=+G­^Ërï›Ué1¥£Û‚©[¶œ(V¼ödÿFÚ|–¸‰qãXÚ ¥ü˜òcÊ¿~üõ㯵ZÏcB¿ÂSþ©e¿´P¬»±EuŽ3 m/þØ·D+­6d9{ûìí³·3³´Å÷H«§!«9DßÞq†×0cûMü¼£çyߦ;núÿìÚD›Ï"ÚLÑ~ò3?¢Ï#ú?š#Aô£DŸÊØ¢Zô?E_TôK¿òLp¯à^Á½D_—0?b|*ƪš#AŒyŸר¢Z̈y1‡ð•畟>|.æ%ˆPBƉ0Ìĵ×N\Óê©Ù=šFU·2¶.¸æãÑ…-×¹kuÇôÉv'ÛlG<˜‡ørñåâËiu¿¹G“‚Õ†™VTŸÚÝ:ÁcpÑÙÛåÿÊ‚T‡np¸ñ`~|øñáÇ¢«‹®.ºú+÷›nØÄå¤iEõ…‘Ö5cÊ ´)]è¯<ù´zï꽫‰óðÌõ™ë3× ñâ+Äåæ³R¡Œ©îU~yçS¿[zLéX½íÄÝë×®Pf@¥¯ÜZ·eЖA[æáÕýW÷_ÝwŸí>Ûý+›MTø£ûŠáWk=‹\pr°©Dµ[‹)ç6ÿmó›ãÙê_¹ iõ¶ÕÛVo3ti‹ïŽæ+©öÎîŒuÈ•×íí=U&óË8+¬ŽŸãòw~=ª|ÿ•(Н_!^´¥|û̃èç|e€6¥ ý!úN¦Õß}TÍŸNôuE¿—x0bLú•zŸ]°]þubœkZQ-æ´™ysÄÈ‘†q" “wÌ÷˜ï1_ÍÔ—]ÝÊ,zÿ.xƒÏ7¦ÕÿŸ{êwõ<ïÛtâ/ž*úhþ¼;Úïh¿£=±aºÎ¶8Ûâl ͵ú¸JéR%ÇöèîíaºQýåL蟾±³ËÕãø‹æÏ»î×u¿®û•Ø0]q1q1q1šk¹ÓŒJ/f¿ºÕý‡z=M7ªUža~E ðþXyºæÏùm䷑ߦëÖâ[‹o-Ö\˶»ÝÞzö¨<'ncSI¥q¬¹üÏS*-ÿÏïù4Þ9 sæ$¦ëþõû×ï_×\ËE:9Opí8Ûy÷]Žj¯åËOròè[fòVÍŸw’÷$ïIÞª7ª7ª7ú-mñ}ÑüïWe¦êMXw?oÓýe|öO×uÇ4?WnªýWÖ³í*ßDÓ%ú6škYô‘DÉt£ZôWEßõ+ëdÄÄÅÄŦKŒC5ײÏŠ±­éFµ˜[ó _Y'£ÅÙg[ Ž0Œ `˜°è“Ñ'£¿rïíþ6Í®V?b‰…ãÉ­gyx~%avuÝÕuW‰Óû(öQì#Í5»íE“Õn™_T_XX®æÙ¯$Ì~Šü)ò'âÄ´œo~¾ùùæ_i¯¾kìrÝü¢úšCû™µ¾rËΜsÌY@œ˜–k×,®Yh®ÙŠzídêé±4žžÜ3-ÿÖù®Z_¸±ÒgŸ8f☉cˆÓoooû•ýª¿t=ñ‹W­åKOÅšST׈ºsnÁö‹J\Túìà ?6ü˜*V«ŠÕ½´ÅwDé½lü ŒÎ_æŽ]ÇS^KÍï—1r¥ïcç¯ì«*ÚX¾•¦Eôg¾R³ígÖò1¿¨ýXÍŸ]ô‡‰Ó"ÆžškVŒaÍ/ªÅœƒæÏ.æ.ˆHÃ8‘†IŠÍ›76ïW–¦™Ð©…×óëˆÿÏÝôåºÖ¯Û¶\ ›¼…Æ)•Ãö~ÛûmïGÌ¿sÇÏ?w\sT_ïÓ῵f˜wT¿ÚÜíc½NnSíc¬S”ÊaÍ”5SÖL!fŒßÕØ«±Wc5GõÅÓs<-Í;ª7÷äíã׬”·­â“ý‹_,~±ø1cüâóÄç‰Ïó•ÅZ‹ŽZ±ÖüR¿êGÏv‹ÖÆØØyºÏ÷]ªT3ÿ˜ùÇÌ?ˆã÷hᣅjŽj—y¿>XfæQý|É c¡ÅnÕ½ÐP©ÆŽ;zìh]J[|/wBS~Z± ÊðÉcÞ¿Œ§z·ŽóþÊh.O|žø<|CŸèÃ(Õ£èÿˆ¾yGµèÓj&úÆÄŒñãM¥zcU1n5ï¨óš£ZÌc3@Ɖ0LÌõ;×ï\¿£Ôõ,ó“uíB¹^µëvµ^Có?t ¾ìSÄϯTÛ¥’9ayÂò„%ñcœî»Wì^1¥º+ø.ßý|Ÿöéš³®cö‰ê¤_CR|δîSþa±(¥’9ðûßüNü§'‹Ÿ,~ò•¥q<éü¶öËìÕŸ¿ô|îÛ¹ûëÊKþG©LvVÛYmg5âÇ8½lý²õËÖš£ÚmÍÔÛ[¿5ï$™ú±Ö•Èö'K—ˆoÜ¡ãDÅçû‹¯+¾®8ñcœ'6NlœÏ?Ÿ>¥¬ÞqbìúÙ'ª½¬–—èÿdŸ¨ý[ÍQ-úÉÄqcL¥ºãS1VÍ>Q-æ"ļ„RɈ9 â@vFƉ0LÆ›Ko.½¹¤ÔÝ,=ÞÚ¢àÓÄ?z„y{eŸŽøÿ$ÌÎö,ês×ï`©>¶½”JéÑ÷¾ô=±d<Þ~?øýàý ô/Ð_^_äûÕòåËÄn[ê¹dϨNZÄwx›ÖjSÜ!ïöÍÛ7oß$–ŒGRݤºIuËL-3µÌT¥ZûgyÐÎ:©Ù3ªS…^ñ}ìY9¶dSŽâ®Ç]»N,”j)ÕRªÕ¸VãZkJµVcþŒó;.d£$™úÑqy¯SãJViÒ±“b?íLÞ3yÏä%–ŒGj@j@j@£¶Ú6j«xCCÓ)‡7Ï˦Qíµ|ù©S¥O·š®T>GYtd‘6¥-â_é<º(3Nµ*¬_6íïÝ_ÞyX핊­ëµ×j\í0ß\ã!ú*Jµ&ú9¢Ï“=£Zôuo[ŸZfj™©¢ÏL,1®Tª51&ãÓìÕb^BÌQ¤1wÑ¿@ÿýÅü± {" ãD¦`‚j‚jB€M€M€â½áÿtÛXÏ9{vÄÿçiàíÁo}*Uˆ)’Ó*²ªø±âÇŠ?'~NüœHXƒ ÇAƒ+&Éú­¨ó–¨NÎÙÓÉç…gÿâó‹–—’õJë•Ö+?Å}ŠûGDƒ~7ûÝì§8urß­s‹ÚS‰ê”ù¡¥|Gû·/óÀî©RY½»úîê;öq7 £Ê*7ªœb’ÌqJ‡Íù²s’ìß§#·žœkÿ±vî&+•Õë¯?¾þHDƒéû¦ï›®¸«ëŽñ»Ö$ª½*,ïz*Âáeƒ À-JeõÌõ™ë3W¥r1¯ôo;ªôØaFêÀì›$S?ÞlØAªõY©¬D;Ì7׈þ‰RM‰¾èçբ߫TV¢ÏLD1–ãJyM‰q¨“ÕbŽB)ªÅü {" ãD&`UþUùWåWêbÞ)Þñ´×2:âêÇçõ»n«û§R‰M š4)ˆ¸ÊZ['m´u’R] l÷Øó6‘¬~|³ºû¶zg•JlXÙae‡•%®²–d%YIVŠÏÿn³ÃƒI“ÿ9¾w ö¾¢´œZxÎðœá9‰«¬»;vwìnÅ]QcF \R’$Ùÿì¢úpI—cþ×ÛÏ-qB^b‰‰‰ªTUª*•èÊ*ú\ès¡RT;Ÿâ3·<‘ü?77 Yæt|…µSùUU,ÒØßôƒß¿ªU„*â :U•ªJ1/ÿWeS­“ ý”rÚg ¿†êǘN-«Õ8£Ÿ¢Mæ[œµDÿDiÛÑ·!’Õ¢¬Õ¢ÿL\e-1–Tª#1%’Õb¾B©ÄÄ\q »!¬/»6íÚ´k“(ÃñkƯ¿æuƒ× ^7 d2†0ŒÚ“AO=¤Ô­Ü³·éêé|+Ohê­TzW¯_½~•%F³ÀËK//½T\$sc›FË«. z•ŽqÚíðTŒê³‹Ï.>Ë~ZYà­×[¯·^Jõ²ÜÖ¯€3SÊ; ^î¸ÅkºRéńDŽDŽc™ïãöÛ?nWª—òC‚J iIbLéèþßYuv­W*½½>{}öúc™ïsµÏÕ>W+ä^Ƚ{K’žh»µw?¢Wéèá=×jÿRÅþ[…6VP/mçJÿPÕ¥CJü*çüT×Õñ¾Ré‰ö™otæ}ÅmY.wÜâ5èU:Šþ°R鉾41–ùÄøQq[– ívxF½JG1w¡¸Jߥ——^^"Æd$€u÷¥Å—_Z(ý² ÎÀ0jãÇŽ“áTµzét¸µ9Nkéµ³R§4ž[²q±q±QýWõ_Õ‰´ÌîîžFª¬ÓÊJoæ±ÚuóN¬;òªx·Cõ<‰XmŽ_n†.ñ=Yá}‘‚V¥ä%¹a膡†o™ãžõ=ë{ÖJQýälPÏ:çˆX­Ž=ÜýJy­q/’ÆÊÒ;Kï,½C¼eަü3åŸ)JQ]£òôIÛ+’Óòyê¤íJ·ÞÎò’œYkf­™µˆ·Ìñê㫯w¢­¾pÒä ûˆXíÅ-ëýÖ¼hûÔÎ5oÔ<Ûòÿ·yÏrÁö—T_ÂBùÕÓîxwB§­µ+(Å­h«ùvgÑ‘ׂ跈> «ÍQô•¢Zô«‰·Ì!ÆŒòZcL1Þ$bµ9Šy ¥¨s Ā쀰îDBW$w-µF2X3À0>ïTïTïÜï¸ßqOc¹= ÉÍjoéd§÷xâKkÅ}”¿8~qüâHèšÿEÿ‹þåå¿zDƒ‚.yˆÒô/] üäÙDñ‰É²Ée“ÙØà‚ví Ú%/ÿ?7Ô{íôŠ(MïñÖöŽ>^þŠOLþøáÇ?u†6`ꀩ¦¦±gç˜vúv&õ•Þc3¿ìj£¸¯Þ­7·ÞÜ"ê ml‹±-Ʀ±”V©!AÝ¿!JÓ½t£¹öï¶L§‡³»¸Ô)È/]z“îÔê]1'&E[Í·ÛÐDßC)ªE¿…(MïQô“åå)úÕD¡‰q¢RT‹1&QšÞ£˜Ó—§˜!êd$€õ‹d°¾†Ñ¹èpÑᢃü ì0Íê‚ߦ޽îûšîuÆŽ®”~k×V^¶û÷'îO$ö çæŸ7ÿ¼ù§ÒSJÐo|{Ÿ\rê¡cn‡ÕòRÝì¾Ù}³;±g8ó<Ìó0RTz병øÌرJ§‘ZXºUŠjÏ< w¾Gê+cÇÒ1­"BÉKuö¨Ù£f"ö 'aeÂÊ„•JQ]ó»ùÑۈόË]ìl;H«4ð¨KåYJ4ƒÇw ƒ+z+îÈ.Úm¾é†#úò’}â3cGÑOV¼Y$ÏÃ<ó{†#ƉilÉôÐ1·Ãjâ3cG1§¡Õb>„Ø`ÞHÉ`]†Ñ |ø4ð©üK{0Oón—èXërŒÑn®çzyÙVN®œ\9Y•¢JQ¥†Ðk{¯í½Ò˜ºÚ¾Ý?‡ëD¦.Ç;³;~ðÚ+/[›Ë6—m.«êªêªê†0¢óˆÎ#ÒØ™ou½ú©UTD¦.ÇÇ3»¼©3Aq͆®_º~éJ´gÓžMKcÏÚ •ºuæJºK§'&7Îë.5V\³¡}rûäöD !,i»¤í’4nþ+[1ðaŸ"S—cÍS žºªÍÔÃËÁÝÆÔ³â×M—ãü½õæ:¥‘ní6ßtCý ¥¨}"S§'&ëÕO­’Æd±ècQWUWUWŒå%/Æ•D¦.G1¿!/[1B0o$€3Éàô" #òªè«¢¯Š*NyG‡Îö¡K­ûÑu½}>ëi xNÜ9qçq¨_ï¾y÷Í»o§¼_÷ïë@LêáéöÒ'ì¼ä%×)®S\'âP¿>íû´ïÓ>¥¨þ˜3ÄÒÇ‹˜ÔýØ9§ca‡ ò>s2æd q¨_)¾)¾)¾ŠOIN^`wðé.Ý%"Íî𻼄£S£S£S‰CýJý+õ¯Ô¿”¢Ú£ýÜ.ûIëãéö­mÃÇ/ýFUM*}ƒ_4Ý ï{Tö.¢¸šŽoŠoŠ/ßzýý yi‹þ 1©ûQô™WÓÙ÷iß§}Ä¡~‰±¡¼´ÅX’˜Ôý(æ7”¢ZÌ‡Ì àÌG2X$€aDVW]]uuUù×r™…o€s:Óú:î[Ôlvõ4–#ßo|¿ñýˆCýÚQGýõå¥=cFíÉ•â‰F}­i•×½¹¼œtxÐaâP¿•;TîP9yi|æXÞ–hÔ×ñÂŒ@ûšÇååÜ-g·œÝr‡úuúêé«§Óx’Ï!©Á¸ÀxR\ú:ºUž´¹°¼œ›–mZ¶)»¶ëÙÕW[\Mcß_ûVµr5ÊC4êm—ë«3ÿÜyIqÑË€k¥ð‹¦¯cŸb.»K§Ñ†ˆ6œo½~‰þ†¼´Eÿ„hÔ×QôŸåå,úÛÄ¡~‰±¡¼´ÅX’hÔ×QÌuÈËYÌ‡Ì à¬E2X `‘ªMª6©ÚDþU|1¦[Ùºñ™Ùa³¿î§Ÿþ¸ñïp Ög]Îv²Së~废­\»DJù¡6ã )´3…|mËM°©Th~·ÛNJ=>¼•ä¾?“î5ÞÒÂ'D©áK}Ÿú>õ=Ѩ/ ž5xÖ E•í^Ç•¨Ö×ñóøž|½Ÿ 9˜r0å Ѩ/†tÒiˆ¼œo-ëXË«Q­¯cªSh”ïm¥¨Nj‘Ô"©Ѩ/ýNö;Ù祿œ]go°f¼!’Fž§–X}R®L‡”þɶ.Õ›Õí^è7ç2eòÝ-t´pëÊ;9ÿbÿÌ+¾ÉÏ.°^¼1cïRõùèÂË/wªw§ù¼‚ïŠ +™¯L‡†âhÑ)4Ê÷6Q­¯£è?§±íNC: !õEŒ•âGŒ%‰j}Å\‡ü‰¹¢€¹"l¾ öóóiläýÑû£71 Àü6N$ƒIÃ(Ëw,ß±|i,þlëÛÚ¹[f¦~ª9¶BŸ4é<Ûú€†w«–’ï+³ ŸwÊEbö´lSãžøoùÞ¥ê6ò¨ÚÞПwÿúf«_‘ÒõÖwXߘÔÝ… &\˜ /áék·¨ETâx¼P«ùîiìw¸¸è⢋‹“º»¹ïæ¾›iìþ;â×Ê%ª q¼T7ð gù'²`Ê‚) ˆIÝ=\÷pÝÃui,þ<½~Õ¶•ô›"ªu/rÄÉ6W¸]ø÷må;–ß×á\ƒo«;Îíc;ÑÒ5ç￯®í<|pí?®‰gåé.Íïâ˜øsÝI“Ôÿ¾h£ª¿ÔÚYat÷ÐáS]âF¬[.þ[üïêéTüçK“} ¾ô”©c¶L“—yÄ¥ˆK—ˆIݽhû¢í‹¶ò¶Û_³Tý¥Dµ!ŽîÕgÛÝN^æ!';–\£ßß…=#š¯n¯þ.œ¬kïxiþôzãœ6js|·3ØÕ{¯éþ2†'Tù§Ôyi‹öœ@w¢!/aÑ'1DÕ¢/Æ2òûnî»ÉNÀz ƃòãG¢ÚG1ï‘Æ2ò.L¸0˜`~H¿ì™ & £0îý¸÷ãÞ§± ¨kÇB^ΆèŒ> n¥µ}:ºì•äa[þ—»v¹ ¿R|²Mû¥h÷\ë[½Ì*ëˆBÿNÙ‡D:7)¹L$-”o©ü¶ä¿÷Y‹+Îc¸îø‹­ÝÜë>•_IPþ üAù‰IÝÍK™—2/E^Âó6«ù˜¨6Äñmîó¼Ó˜~mìÚØµ±+1©»ÕQ«£V§1Œ?¶¡•¥{ ¢ÚÇO!Ã}~KcibKWKWKbRw;«í¬¶³š¼„ ©8÷Gý¦ˆ*÷pqÆÿܸàÒ{ò„Vâÿ•§ÁÄÿRzIËÔžÄ[õ,•»üeÅT\›¥ÇŽÛ ³;â°ÿß',÷úÌmyJ†œè“¢N‰jÑ—–_‰è{“ºãAy ‹ñ#QmEûó6«ùX~%bž„˜`~H›–ì“ & £àqÆãŒÇ™4ö8t ‰÷1ȳ’+®ùí­â¡ý×[û3ïZÔ´ëVñ¯ÄŽ//juËS÷œæó¨ÿ½îË™jµ»dRX.¿ÜŠŸ÷¦ê¦ê&‘©‹€¨€¨€4Reï:ô^ETn±©ü[óýd™ÆwêâÔÅ©‹‰L]¥±Ç¡O·sõ|‰jÃ+l¶I¶*˜ÆþÖùRò¥ä#2u1tßÐ}CÓx®Ý=lvÈž²úM•iÓ¦~ø¿ËÔ‹ýJµYü¶Æò¯w$ý¿Ç$ÿÿç&åélÿK‘Ù]þýËùÛÈéÑoî_Q­5?a©þ÷Ú?‘©ûÑf†£ªz‹1~òüäùÉ“ÈÔÅäã“O>./[·ÓÊníFTîh·¹æ7õû§‘`(Úc±wG}ý"ôû±ê™ÒÄ™[Ü)—P¬œ¾~‰Lå—ññ£ Ë: åå,ÚsZ]ˆ~…¼lE?ÄpuJT‹¾tI» à à "Sb (/[1f4ÜÆLDµ˜÷—¼˜'!2˜À¦Ë¼“Á$€a¤M¤ý”Bƒ ´1\gôòîv=›™«öîJÉò£.I…þÏ«.SIü«Ö[˧;¥ýÔßqÀ­j7Ê|ùë&µËDØ­Mc_–K/}dF=Gõ¿‘°#ÌßÏ•¨6ܱky'ïÝåŸ7qZâ´ÄiD¦.Š*v¨Ø¡4’ë•C£|oÕ†;:î:«ÌEùç}žü<ùy2‘© ·FnÜ¥±Ojû¥—Ž;ê79äÚ`N`¢xѾK­òܵIJ¹ïþ£ãÞ4Ú4ù_–xÜøçŽÿ>Yk7Ä£©ßí“^êg.Y°IŽN *+“ذOÏâ<´yhóІÈÔ…ÿxÿñþãåeë9sqë˜DµáŽêv[6l’üsÝxÚaa­GúúEhܶLI»_Ä™‡uw[SÎJ_g6•_ÆÏ]znñMãæ0ÑžÓèBô+äe+ú!†«S¢Zô¥å%/úÞD¦.ÄP^¶bÌHTp³#ÌßÏUù¶]0ÿy`À¦Èü’Á$€a¤MdgÇŠ{3iGIÝâô&üV–êfûï²{‹š{?¯Ûí\ƒüÈ£‘G#‰LýFõ9ê\t\MT:ªO·lSÑcüóî·gÜžqD¦~£zt'ºå×Õ†Žê«íÚûÕ*,ÿ¼ë ­+´®‘©ß¨.áÞпݽÌO•ºU¢UÙeòëÉ7¶àòBïê2î¦æ3ä÷´zfýXü«ª.#Ï-} ý»‹¿ÿ÷èÖEº:UV£áô›ÛçÊ?ï– [.lIdê7ªí›×ÊÑè[¢ÚÐQíþø„}¥äŸw’g­Êûëþ[p>gÛÉ5–Ÿ?l`•v¥êm¨ÛÈ£j{ñ7bŠ¿·ŸKH©Çù¾± ·üŸ_L¥'ÌLë—ñçЪ.¥»’TÐ/ѯ—ªè‡¢‰jõ£èWÕú%Æ€òRcF¢ÚÐQ-æ@ˆjÙsFØ\™V28‡ñ|%u[¯6iZm‰)& \Ê7ÄòÙ¿ÏÑ®i·Ês§öÿVü½ø·êç1Ü'=õ¥MnñÄ[æXë·½Ju¢Úੲüí+ÕÊE¼eŽÙ=êüé8†¨6tTß½ÜélíšÄ[æ(-µêZÉxReꪼv~Á~ÅOOäoW §øËêÖÖ­ÓþÝÅßÿû6jç1`ªìÎqû¾!Þ2G‰ü .·ó#ª Õ5=ÿ,}`†ü3F¬uë^ö…î¿{û4+Q½Õ¿[0ܵËUøÕú€†w«–RÿM”ÿ«}› ¯>%Ô‚‰ÿ2ŽÚà®*?šowæýCÔ#Q­~ýjâ-sˆ1#Qmè¨s Ä®M»6íÚD°Üµ¶iצ¾¬èñá­$÷t,ŽztmË-îÖÿN@ï°.Vð¡»ãç^¶S3œxËk~l°Æ%„¨6tTߘÕ!¢Öâ-süY¨Þn§SDµ¡£úÁÝÎoj?'Þ2G™g6½?fÕÞ¨µÆ- <~½Fꬻú;¯|aÎ[—êÍêvW¿B¥ç ÕË­:ã··‘Òñ¬ä·#=—–ÿ¶ ‡]•âÿöÕ ÷I=:Ï ‹ú‘xË%[79Û9„¨6tT×\µ`À¡ZòòäâÚ¾ÌÃý¦÷³cýJ˜ú/ãøÓžõ+<äÛ9D?$3{wÙ3ªE¿šxËbÌHT:ªÅñ€¼1ycòFÀ€ ?\ÛÖan‘­â_íØëßÕÕGû+vpÿVý<<lL÷ `ÓŠjžÎL¦û°iE5Og¦¬zXñ HKKKKK»îQ¾gÕ¯Sþ—6ö•U‹ÿoåC?Ì|œŽÝR{ ¸8£ø·êçá `óUOg·¨6ôÀº7l\¿jª¸g•mË£Mý—‘'€3“áž&ªy8«î `¢š'€P’žk óâ%^ò/ƒéîÜvv…­Åkˆµ¬o ç íÿíÒR>Ÿœ+ˆ8¶bîâ} ÝWÚøOÏ?=ÿô$2õÕ¦»°iEµÒÀÓ{Nï9½'‘©ß¨6Ý=€M+ª•ö;g윱sˆLýFuVí¬MÂLPz–ÑîRÍ þýDç‡Äý–Žç˜+††xÿæ!þ­}NÏï4tªLià!‡‡r˜ÈÔoTgÕÀÙ-ª ½°¾ö¤´Zÿ÷|Óä¿\¦õ˨´0-€./ѯH#Uf°=€‰jmö&2uy‰1 ¼T ·0Q­ÍÀD&/^¼²Ã(lþ÷ó¿Ÿÿ=%c~¯ÝÃvÛ=,,gXΰœÚ§~Åßg£=€ÍO„OÜ멪ØÒ“ ϸV+óoò©‹ãoé¸ß¿syÇÒÿîÈ2(Úuz™s†îޝÓ°šË~ùç;w*ߨܱz¹²ŽDµ¡£z÷«¦¸¦Ê?ïÉÙ'gŸœMdê7ª»mrº\b?Qmè¨>úSËA5ÞÉ?ot®è\ѹˆLýFuÑ®ëÔ×órÇËæU—ò«¿KÅw=“F÷Óþ ÕŒ©¹Ò_üÛü±Ö‘E‹ÊSY%ë5ù£³øß‹ùÕùÖÿ‰öç/f]»¿EñoKö÷/ÝùŠ¡Se®ÆýguË·n)¿¥ü–òD¦~£ºðò²Ïœ.Õ†Žj7§)]6[ÉË?2Éï{糺ÿzÔ¢a ¯ƒïš¿®ñÃÝÄN×k×Óþßn?îŸËÕB\O¥FEþ°ê/ÿå2­_FÿÍesÚ¥¤Õ@Ɖ~…¼TE?ÄõHT«E¿š¨Ö/1”—ª3Õ†Žj1BTÈž£0‘,¤d̃HÜŽ_3~Íø5Ú'}Åßg~ÒW `iÙÙñ¢Ã^SL*ìZÔ´ë¿ éžŸÿN¾#‰—zŒön¢ù_½éqÓ{Œø{ño÷Œhz¼º½¡?éï»jŽªÐKþyŸ$=Iz’Ddê7ªæ*ígûš¨6ô'«ªûÆ©¥üóÆw‰ïß…ÈÔoT»Œ·}Tø:QmèOº*©þƒ*¯Ó¸Yg`ÜÀ¸D¦~£:¿Õxë`C?ïè`å»·µO:žeüo°ýˆÃÿ¦¨ÿ®¶ ¶“<•ålÿK‘Ù]ÄÿžolÁå…ÞÕܹ`å¡_¿²h탅®‡ÝÅßÿ»äàðÁµÿ¸fè§?+G|>ój7ëÔ8Yãd "Sùæç›Ÿo¾¼l½*-;5†¨6ÜÑ%à×\‹üå%/mØåÖH÷ß‚ZÅïñçlð{i+Ûtì^ÙÿyµÑe*‰Ûã@å%]ä¿›¦õËXdwÁ\ù‡’TÐ/ѯ—ªè‡¢‰jõ£èWÕú%Æ€òRcF¢ÚÐQ-æ@ˆjÙsn°©3ݤ¯:À0Ò&Ò~J¡AÚ˜bRáÓÐE>”›`S©Ð|íÏ0*Éöüâ/+„Úܵú6¹}Ïf>*CÒ&µËDØ­•Þ—>^úx‰ÈÔoTÿ ;Âüý\‰jû–wò.Ñ]þy§%NKœFdê¢Ø¡b‡Š’—mjåÐ(ßÛDµáŽƒŽ»Î*sQþyŸ'?O~žLdê­‘[#·Fò²­Õ~é¥ãކK•Y.Êw,¿oÕ¿½ìð•EeÛÏvÛý¬àm—¯'þi™r­w†Ý“§ÊÕjfh¨øËB%Šÿ·ÔÆZå–V‹ 2tª¬Lr`Ã>®ò’hóÐæ¡ ‘© ÿñþãýÇËËÖsæâÖ1ˆjÃ+Ôí¶lØ$yÉßxÚaa­G†øÕÓæ—ëà·Íç¹]È—hyÄr„øû#±-Rj¬7Ý_ÆÏ]znñõ—ƒhÏit!úò²ýÌéËeϨ}iy9ˆ¾7‘© 1”—­3ÕÅìó÷sU. 0ÿy`À¦È<’¾êHÃ(xœñ8ãqFþåIr ‰÷‰2­¤‚Ò~.[µHéÑ%î»õx<¿ËÛ:“ö7kWýP¯Ö.yJmVÿË uyTmoè¥xR“ÂrùåVìŽßTÝTÝ$2u%/Ûw‚ z¯"ª r|ìçk¾Ÿ,Óø‘N]œº8u1‘©‹à à à yÙ¾òév®ž/Qm¸c…Í6ÉVåW›’/%_J>"SC÷ Ý7tŸ¼lÝÃf‡ì)«ßäPõ “Ý7.Îw·ÐÑÂ}Ô߫䙦 ƒšUþc`™åÅ¢¸â©Ç2mÚÔ_¢¾4®Ø'U,½«UBNìj\©a™v›«ÌŠXÿg=‘x«òý÷óò8,¯ß·m„ú_:ÿùÒd_C/“+Ž63UÕ×˯ö“ç'ÏOžD¦.&Ÿ||òñ4Òc¦•ÝÚ¨6ÜÑnsÍoê÷—_íÛ¢={wÔý· á~rÞVeçY_,ôïÞ·"Uéܤä²{ý»ºúœjÚú¤Gç.æTÕÛÏ%¤ÔcõtBð–ÊoK†iþå2þ_ÆÇ‚,ë,”_§hÏit!úò²ýCÔ&Q-Ž¢/-¿NÑ÷&2u!Æ€i¬ø²5ßO–kÄø‘¨6ÄQÌ{ȯSÌ“™Ì `Óe~I_u$€aƽ÷~Ü{ùé–kÇB^Φ˜TDZ§k–¯P]›&#ß7–á–~“»ÕZRq{æ|Æ[»¹×}*¿’ üAùƒò“º›—2/e^;“]Ìجæc¢ÚÇ·¹{Ìón'¿’Æ®]»“º[µ:ju·5ÛÐÊÒ½Qmˆã'‡á>¿É¯ÄÕÒÕÒ•{çõ`gµÕvV“—°ó±!çþh¸… ó/°¶(ÒEû¡…}¥EÕâ«[OHX·N›T–H³iuj/Ë–§Ë.jï×÷¨¡ÓcâXkÈ2ÇãËåb·Ên•Ý*bRw‡ƒ–—°“õÏ{'—"ª Õï#÷Ÿ\©xcåì°:~Žúýís¬Yä¥ÕßÚ—v·ÛNJÏ™ú/㾜ÍÚU,¿ÑžÓèNô1Ò¸AÇ!d¸Ïo†ëÑeç¨}iù•ˆ¾71©;1LãÜ=æy·#ª qóò+ó$Ä$óCØ´˜wÒW `…cùŽå;–ƽÆËl}[;w3ݤ‚8¾ÒbeAjT:å𛸴ÐÎüòµÿÝÅÆñ7‡Ç¶úѽif~Æýë›}¬~EþI×wXßa}bRw&\˜pa‚¼„§¬Ý¢RQmˆãñB­æ»ÿ%ÿ¤‹‹..º¸(1©»›ûnƳ’#þ¨q­ÜY¢ÚÇKuzVÒ) ¦,˜²€˜ÔÝÃu×=\'/a‡éõ«¶­d¸tÑ¿ËÞ¶iS?|‰õ¡ŠCª†hQ¤]@¾­…ªZm)|£ÜâÊ{ì÷{ù7ÞæÒ{ò„V^–ËóžÊ›Þ§]"~¿(Áþ™W|“Ÿ ηo]bh¾2F.þ»˜_oýŸTuynéƒÌI’‰£Û”©c¶¤±cÄ¥ˆKl?¡/Ú¾hû¢m)öý5KÕ_JTâè^}Ö±ÝiÜ‚rÒ¹cÉ5†ûüó·zwœ4 )}ÂΫäŽ N(“ï|¾âbiPñË%U ˜èæ¤þ¯Lý—1<¡Ê?¥¤±€üº‡ë®£ÐècÈKXôI ݯ˞Q-úÒò2}obRwb<(/a1~$ª qóò2ó$Ä$óCØøeŸ¤¯:À0 É É iì6TýªýhëKYµpÆ:ß;Oæ,"ª~ :äd[¢±¼Ìlz°éÁ&bRw½?zô–—pñ^ĤîÇÎ9 ;l—ðɘ“1'cˆCýJñMñMñUŠê𓨹}r{"Ж´]ÒvI[y™—­ø° `Ž5O-xzèª6S /wSÏŠ_7]Žó÷Ö›ë´[^¶¢Ýæ›n¢¿¡Õ¢¯Bdêr}fyÙŠ>6huUuUuÅ81âgwüൗÈÔå(æ7äe+æC@æpæ é›^$€at.:\t¸˜Æ=ƒÓ¬þ(ømêˆÐ뾯éXgð)É+¥ßÚ¥1 ¸?qâþDbÏpnþyóÏ›*>µP#ôßÞÄgÆŽ:ævX-/ÕÍî›Ý7»{†ó0ÏÃ<ó(>µð2$Ög#ñ™±cßU”Ncš{yèòÐå¡Äžá<}ú%Ó*"´‘¼Tgš=jö(bÏpV&¬LX©øtûwó#¢·Ÿ;–»ØÙvÐnm¦F]ò°(?™_·Œß- ®è½]©lE»Í7ÝpDßC^ò¢¯B|fì(úÉJQ-úØÄžáˆqbû.?tÌí°šøÌØQÌi(nˆðçÍ?oþIì0o$€ ‡¤¯.HÃø¼S½S½s¿ã~ÇýNOL4¹Yí-ÝëôO|iíï‘_ñy2Ç/Ž_ =Có¿èÑÿbOLŽhPÐ%QšÞ㥫Ÿ<›(>OV6¹l2;J\Ю ]A»äåÿç†z¯^¥é=ÞÚÞÑÇË_)ª?üøáÇ?u†6`ꀩ¦¦ñÄä˜vúv&é•îR?Îü²«RT¿¹õæÖ›[D¡m1¶ÅØ4ö.5$ ¨û7DiºŸho4·ÂþÝ–éôpv—:ù¥KïqÒZ½+Ε—§h«ùvšè{(Eµè·¥é=Š~²¼S|¢=âCć"-3-ˆX± Û ºÛ9O®5lY㛉[ÍÇ*¯‡]^pH)ªV$¬HX!b[éovDûwwõåWOó1Õ#ô ï]÷:ÅBl:ËËP´Ï|£3“è‡(Eµè÷_9N«íWIôåe(úÒDZfcF1~”׈o·ZmÉ´²Ò[‡4n`óD€ìƒ°îvmÚµi×&’¾úEFíÉ 'ƒž RúªïÙÛôNõŠt¸•ާ?´ õˆV*½«×¯^¿zË|//½¼ôò’R½llÓhyÕD¯Ò1îB»žŠQ}vñÙÅgc™ï­×[¯·^Jõ²ÜÖ¯€ó¢WéxûrÇ-^Ó•J/&<&<&œË|·ÜþQq×ÉòC‚J iI2LéèþßYuv­W*½½>{}öúc™ïsµÏÕ>W+ä^ȽP{–9Ñvkï~D¯â²ÏÞs­ö+®ã²±ÂÆ +¨—¶ˆsÅå U]:ÔáÖ(Å㜟êº:ÞW*=Ñ>óÎ|¢O¢T/¢?Cô*EXq…3¯·^oI•e1~Tª1ö$z•ŽbîB©ôļ1 û ¬»/-¾´øÒ‚¤¯~‘† X•UþUŠû×Þ)Þñ´×2:ßêÇçõ»n«û§R‰M š4)ˆ¸ÊZ['m´u’R] l÷Øó6‘¬~|³ºû¶zg•JlXÙae‡±ão“¬$+ÉJ©ŽÎn³Ã㑬~|ïì}¥à»|÷óULã®ùœá9ÃsWY+vwìîXÅ>]bF \R’ĘúÑóá’.Çü ®·Ÿ[ℼÄU©ªTU*Ñ•U.ô¹ÐçB¥¨v>;Ägny"YýXkÈ2§ã+¬Ê¯ªb!/1¿~ü>¨"Tªÿ}¢=U•ªJ1ŸÆžâ©ÖI…†~J9í³…_CõcL§–ÕjœQŠOÑ&ó-ÎZ¢’ÆZïòÝÏWQômˆdõ£è+Eµè?WYKŒ%•êHŒC‰dõ£˜¯P*11×A\ÈnHë‹úsÀ$}uG¦`‚j‚jB€M€M€âÝ…ÿtÛXÏ™Žø‡íÁo}*Uˆ)’Ó*²ªø±âÇŠ?'~NüœHXƒ ÇAƒ+îmÖ'hE·DurΞN>/<ûŸ_¤°¼”¬WZ¯´^ù)îSܧ8"Êô»Ùïf¿›JQ}ß­s‹ÚS‰ê”ù¡¥|Gû·/óÀî©RY½»úî껫D”1UnT¹Qå”jÊÍqJ‡ÍùH’ÕJŒÜzr®ýÇÚ¹›ü­TV¯?¾þøú#e ¦ï›¾oú>¥šrÝ1~×Ú‚DµW…å]OE8¼l¸E©¬ž¹>s}æªTÎ"æ•þm§Q•;ÌHzÅ÷%¿Œ7vj}V*+ÑóÍ5¢¢TS¢o#ú9Dµè÷*••è3QÆ@Œ%ŸR^Sb*ƤDµ˜£PŠj1¿ADÈžHÃ8‘†ÉxséÍ¥7Š ç–omQðiâ=¼½²gG<élÏ¢>wý–êcÛK©”}ÿèûGßKÆãýà÷ƒß.п@ÿýåõUàA¾_-_¾Lì¶¥žK6M’ -â;¼Më 5‹%(.7wóöÍÛL‘¤ºIu“ê–™ZfjÅ ¯–í¬“šM÷5zÅ÷e°g娒M—›»w=Ž%úHJµ”j)Õj\«q­Æ5¥Z«1Æù²i’Ìqy¯SãJViÒ±“b?íLÞ3yÏä%–ŒGj@j@j@£¶Ú6j«xsCÓ)‡7ÏËÎ àÒ§[ÍU\ðöÈ¢#‹Ž,Ò¦´Eü+gà@×eÆ©V…5ð˦ý½ûË;«½R±u½VãZk¢æ›k÷íÜýuåÆ%ÿ£T&;«í¬¶“ n#õ²õËÖ/[kŽj·5Sooý6=õ{%²ýÉÒ%âwè8Q©LÖ_W|]qâÇ8%6NlœØ8Ÿ>ÿ|þJ5X½ãÄØõ²Qê×jyÉSåJ÷j¯T&K.m¸´azK[|”ÎÙÿTµ_Ê”þò 4Ò÷töùe¼}¬ã:¯ÉšÛUÑöòm5N¢ß¢Tw¢Ï#ú?Ù'ªEÿVsT‹~2ñcœÄS©îÄøTŒU³OT‹¹¥mk1§AüÈÎHÃ8‘†IŠÍ›76¯æaUü„N-¼Þ˜wGüY¹®õë¶-WÃ&o¡qJå°½ßö~Ûû3ÆïÜñsÇÏ×Õ×ûtøo­æÕ¯6wûX¯“ÛTûë¥rX3eÍ”5Sˆãw5öjìÕXÍQ}ñtàOKóŽêÄÍ=yûø5+åmÛB©¿Xübñ bÆøÅç‰ÏŸGsTW+>:jÅZ3ßë·Ý¢µ16vžîó}—*•ÃÌ?fþ1óbÆø=Zøhᣅš£ÚeÞ¯‡™yT?_2èXh±[uo4T*‡±£ÇŽ;Z—Òß ¥ó·S~Z± ÊðÉcÞ¿Œ§z·ŽóþÊh.O|žø<|CŸèÃ(Õ£èÿˆ¾yGµèÓj&úÆÄŒñãMÅþ¦ÚÇX§ˆq«yGµ˜ÐÕbƒ˜À0N$€a¢OFŸŒ>©¹3º¿M³«Õ˜_GüäŽÖ³<¾2¾\wuÝÕuìibbÅ>Š}¤¹f·½h²³Ú-ó‹ê kËÕ<«ù³GþùSäOĉi9ßü|óóÍ¿Ò^}×0ØåºùEõ5‡ö3kùhþìsÌY0gqbZ®Y\³¸f¡¹f+>èyl´“ù%ÉÜöLË¿µA¾«…Ön¬ôÙ'Ž™8fââÄ´ÄÛÆÛÆÛjŽêò_ºžˆøÅ«Öò¥§bÍ)ªkÄÎ Ý9·àFûE%.*}öádž~L«ŠUé!y#¾#Jïeã_`tþ2wì:žòZj~¿Œ‘+};ïÓi¢å[iZDæ+5ëÐ~f-3L‹~¬æÏ.úÃĉicOÍ5+ưæÕbÎAógsÄ $€aœHÃäó=æ{ÌWsÇtàeW·2‹Þ¿ Þàó /º«çyߦñ|Tñ+é„íw´ßÑžØ0]g[œmq¶…æZ}\¥t©‰c{t÷ö0ݨþr&ôOߨÙåêŒqüå+ Â_×ýºîWbÃtÅÅÄÅÄÅh®åN3*½p˜ýêV÷êõ4áIÏ0¿"‹x¬<ý+74|ùmä·Ä†éºµøÖâ[_YêÜv·Û[ïÑ•çÄíolÂI²šËÿ|ø•g&ü­†xðtó»nªTÛоF· îå»íÚ{Nlœ·Ìv=4–¹Kä.‘û^ؽ°{aÄ€ùù°äÃ’K‚{÷ þÊä»Uåüùì/ÒìPõ_¾ õ÷]ht;c5é£ÖÄV˯/ö•e „)rs÷ÍÝ7wæ'irÒä¤ÉýûöïÛ¿¯6Óg•Ê=+G­^Ërïkté±S·l9Q¬xíÉþ´ù,qã&ÆM$ÌOÊ)?¦üøëÇ_?þúQ›HpšÐ¯ð”jÙ/-ënt‹m¦¬~Èß0_Øß7Ìsé˜:)ôŽoB–í³ÛdMµËåƒm~+¤ÕÓÌÓݧ»OwOÙ˜²1e#Õn殨®¨®¬í´¶ÓÚN–Z[aï7°ŠeʰPß,›"Üý©éüê9\ŽØ¦~¢Í5ÿÞá÷¿wHÞŸ¼?y?Õžl¿uþÖùÚGõâj>u*ïKZÚóGŸ¸¬Šê¨ÏƒÜJÔ|Q<Ø&I›kVpXÁa?µþÔúSkj<;غ7to¨öQ]þv×îC<[.š“#«Òc.~ß,*YÄùˆ{7m®¹o¾=úöx?âýˆ÷#¨ñìààùƒçž×>ªËýÝiΠjþ¾àǃ»²*ª«V¹wilѧ®¡uܵ¹æ{4îÑ8±jbÕĪYUÎâ;%¾_Ú\³O|É}EU‡Î·¨[Ã=«~?ü¼ÝçûyEë&;µÓ>BD;É7+;ýÑÒ&6DÿJôµ²*ªE?Sô9µjѧ¥Æ³1VãVmbCŒ…Ÿ8«¢ZÌ ˆùí‰ù1A½€f$€aœHÃÌ=¼øðâË7nÜÔ¾›ëû¹T)ÛÚëj4êòðá/]ÊÕÉ£ßÎ÷󟻬¹uwïjóZL)w¡X!í¯Í#Ü#Ü#ü¦åMË›–Ôoöô´ÔÓROKu˜Ýav‡ÙÚGŽW²ÃÄ"ëV—¯ÿ¾Jò½‘óÔî¦ß¨~]¼»C½Á;Ûø/v œUѲøí¯Íi³Óf§ÍqËâ–Å-£~³§—V/­^Z'''j9n×íïÙäYå×Ì99þûN%¼.éy¬ƒ=†y7Øßôeõjuôq8®ýµ•XZbi‰¥çΞ;{î,õ›=½Yûf훵}Sú¦ôMÑ>r¬Z–<]~lEà­#Gºý<µÜ–"úM‰y¶_´.¦H•CgÏ»VÜÏ»bóOé¸67+7+·KO,=±”úÍžÞÞz{ëí­ˆÍ›#6k9Ÿ (¹¿Bënw‡ÝªþvòÊM¥ôÕ K&Såö°% "‚ü–·ék™NG,ŽX±0¶Òß5ñ½Óþ³ôhRùç’ÖQ-ªWOùP1ø žG1·u¬éUIUŸe•ß9Ï·u,¦ýµ‰öP´|›²'Ñ/}$í#GôÁDLôÍôÕ¢)ú“¢o©ýµ‰¾«èÇR¿Ù“Êñ¬ö‘#ÆËbì,ÆÑúj1Þc1 ýµ‰y1ç@ý€öHÃ8‘F6rràÉ'V^Zyi奖âRÅöXác}‡Uý³ô²?sÕÛêt|«[“Õ"¢SšWu›w$¦ÅçëVlþ—ÛíݛܯöqÑhï/•g’\§—9ç~³X¤Í茽¯MœMœM\tßè¾Ñ}U“T“T“¨MçsœÏq>‡G"E2]NM‹¶´zÔûœË‚ÒßÎó©÷£S·-ů«æÝ= Ùmà‘?Z<­±ìà†æ—Ý>îøÅ¿«ëwŸå•ßiS}\ÙàZ+~(ÒÑR»“v'íNJ½”z)õµ‰§QêÄÕ‰«ãÓ§…O‹ŒÅU…n6·­r†ÛUYP*lΈºAŽ)›¿m\·j²t2à[À‘n-®Ö˜sðNó'5þ³s¼ÿF×K_úz;·øÇmXÙäºA%ú­¦KTouÝêºÕõKÜ—¸/qÔ&„.7\n¸4õiêÓÔ'cqU°³Ýr‡Åã}ÿÛ*¸¼k—æƒýœú÷½4ef•nÖóǹLþUZ\ÃÅaø€…Óœ ú8»JÅû=Œ®Pêeó‹=â‹ø8{¸OÑ%ª×•XWb]‰”‰)SXêÿºsåΕ;WÚ¾iû¦í›ŒÅUE«Ùÿ\<л[‹:ånuvtËÉ£o™É[ªø Ý7?·Ëè_—-ÎçRqø¬…;œ]~i?{K%×ÐØ1¥ÃZ¶¹V$Éeg¸.Q½âòŠË+.'¿J~•üʘËY|ïÄwP—Ïë[°äYÛÜ¿ªÑ§Ü´È%¾÷îêê¯rýëeó¤Gª´8Zc’T9`¢›ÓÆ]­ºoö¶:;çô qžWòt™ÞÖ= Ùeì}E»'Ú@¾5DIô—t‰jÑgý7Ñ—ý:ÑÇý=Ñ÷ý@Ñ'ýCÑWÌØûŠ>ªè¯R›ÄxVŒmu‰j1¾cm1îcp1cs1Ncv1~cy1®ÏØûŠù1·@m@Ɔqâ§ÙÏ_ª¿T^szÍé5þÑþÑþÑ–FÉÓÂÓÂÓâ°ÿaÿÃþ©mSÛ¦¶¥ê èêêÍ…‘F^ÙÆ·o_ãŒj—Ç.]Kö’½dÿ¥õ—Ö_X_q¥ð•ÂW wžßy~çùÆÕå'•ŸT~Òî½»÷îÞ›R(¥PJ!j šÝpcÀ!ÛC¶‡l7Ψ.¾¬ø²â˶ÛVl[±ä?“ÿLþ“ZƒfwfÝ™ugÖÏ ^øóBãŒêÂS O-žèS'Æãbl.Æé” Ð `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€ÀL3AÌ `0$€àÿkÏdù[ßã+&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜ÀǢ䰀\ß%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/switchMapTo.png000066400000000000000000002077561431412030200256540ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTgãþcSŒŠ(6Ä‚(RDºˆ"ÅŠ{EAc4ÑÄh¢Q{‹]cÃD5ön¦¢(ö‚¨(ÆØbW,ûýcŸßùù9ë@w‡÷‹sî“ó<¢3÷\3ìÜ;[LЄbLh0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0Pž'ûûìï3ù4ºŽg¶_‡º|1øÌÔŸê÷a³`¼û”ïþXâãnÿí—?Ow+7,}v}§¿ú«cëÖ¼ßötß+ƒÝü|§æ§ÎYW}]õuÕ³&eMÊâC+€7JÞéÏÁüœÅ!åk¯\ò»a>ƒ§Ç- ¹î¶gg¯pçJÙ¢m†Oiµ~äŸÉ¸FLòvÙøwËä{gom²Ãynÿ~nókuøÌ¦¯U•ÿöïê¯{úk GZE ÓD »~úúéë§#R"R"RþÅÉËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎê_Z;8kpÖ଼ÿ”·nWãhœü¢·Œíýù4ÇÍV¬8r¤ Fÿ΋×ÅW¬ïóÍìùç«…9µ}ñ/¶ÍÛÚÛÚûð²ÃË/ãø…M®éÏ»¼Ÿ§}Ã\?¯a³?2ÂË+ë¹S´\Àw1—wmÐliƒàå®OÝTv®›÷mÓ_õ×FŽ/´„¦‰ZÔP×P×0noÜÞ¸½yZÐüвEÙØß.6ŸïÞ5grLjÈã‚](Éû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬vLÁž˜=1{bò^ŠÔ¹Ü«Ï7ýÛ-ž_¬`ëÞ¼î¡ßÞZ\£¢Ÿ[EßÞy*rúî;¸ï³QÏF=Å ŠþœÒŸ_y9ƒ¯ÔØ[I'ŸŒ ôñ}[÷/Ï?ŠÞ\b~¥ÀL—Ny¿î鯓qh0L04åἇóÎku¿ÕýV÷s_t¨çPq¼uÌAçvW}½t%b? -ý¶M^3fÅÆ„†œôáÈÀª‡Uª–û¾¸ví6úæò›Ëo.'¼yS2¦dLùbðƒ¿œ—òÃõа’³Š5¸üƒCƒßVéklô^4móæÃvÕO o™—}Iš”4)‰GCù¢?òrÆupö°.ÛufÀHºÑÅÆ††¾ÜÞÿdHëí)áŸ{†åe_ô×Lýõ“ À|QÃ4QC#Î>ø|žÞ5»»Këý^Ö¦¶\’ûxàçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯üÃ/ŸÕŒ™3Î+ ÎŠîG¾2µÒרèÕqÒ®õë*Ôuø²Þ?üjÝæa›‡mF€Kîä~~y<­r̦߹‡«úëÌæ.fVl“PçOCûÖ/‘ûÞ鯟úk)y€9¢†i¢†Ù;r0ä`HîË CÏzz;,~ö4zCð;æUýþŸß©ßÙÿdHëI_ùßp Î}·wÞÞy{g²@á¹´äÒ’KKrÿ‰\y—÷“ ±~®s“öµ2—Ò÷5cà ˆõ x÷Dz¹ïïÜÇsÏ}L6€¼ÐŸ/¹ŸS+Û5 ­ÿ“îQlŸÐ 󽋹ów¯™ãÚžpœVõnîû«¿®’ ˜ `˜& `˜1!QHs_DØ×¡M²—j¾Ë%ÆÆÄíígùùç¾ïë’×%¯K&'¬ó¥Ï—>_:÷ŸÂN×úëbÆ¥¯±Dïžn¹¥yÙd«õZÛ÷Iã&›4ŽœÆèÏcgmx¹±–©Uº X¦½»˜¸_CnºíÍýú©¿Æ’˜ `˜& `˜¥„2 eÊä¾ppeb·È€GÚ[4ù?¿MïØ«Y`GGÛ2VãÍö!Û†lBfÈ¿+¥®”ºRêÖZmìþ_Öj¯ú}uôï´xm¼mß!ËŒÍÃOs~šóÓ2¼J^;k>WgºÝÄçu¢ÅàRÚ¾‹9òYû$¿è¸›+u¥Ô•Rd¦¦‰fæBê…Ô ©Æ– >¶ilõÁƒN½“›¶Ðö¢É«ãó^Ñgƒ+††ÖlR9ÂØÌ¶8lqØ‚üðßÜo¿ýýö¹×Þk¦]Þòž¶«ßWÇFçâ:'Öª~¥U—®“Œ>¤Úºj몑@.;S¾8âñ•C­ìk1q!G‹Î]Ìåƒ]×LÉýºª¿ö’˜2 `˜& `˜GgytÆØÒ@­ 6¥ËßN›Ó76( è,š¼:fï_)øÏP©æ ÊÍÒ7JÜ(A–È»,,,Ÿó>ç}Îû ë³`æÉí§ŠNõûF猯Q?¬k7£¯ÓŽ•9VæX²„¢IŸcgÇСžåÆëVÅ6u/šw1­è>²ñ¯F¯®ç}Îûœ×_‡ÉL0L0ÌÁDÝDÝÄÛÛ[£¿þwïMÝŠæ¢Éÿy7ð¶è'ÁõêÆW,nýš¹rJwJwJ™ö2íe± /Æ8Žqãhô]¿ÎS»l*[D«ßWß œ·%q^ÕôÆ%Ã~36WÓ¦?L'Q(:ô™7vFtSï¦ýÌœ¡1çBîs“Ò¢Ë^›+ýu˜DÀ4QÃ4Qà ¬²\e¹ÊÒØr@jµ®G–³hòêx·Y¯­ ÍØäž“{NîI®È]®„] »ŒýÇŒ]uõ×dÂSC\Pvþ¾ó÷¿ëçpš k&¬yØüaó‡Í™™ÿ†&íÖ°[Ãn 3¶°{OëT/'JŒGŸwˆñŒÍ^ò…ä ÉȆҷ¥oKßfìghá=«oGÝklôýdV“ëÍÞžà=Á{‚É´MŸscgÁu].Mêq·blœûq §ó_ÆfO}&c0Àù—™™iì.€2ø¿¡†I‹5>j¼á ÿù°^µú²8’—qz»€õº½æ}K¶î¶î¶ºOtŸè>!i¼jÊî)»§ì6üéY!»N)·–nÅÍHŒ¥èÍ}tU†fütÇØÍÛóÏG<AÒ =úlKþv!¼gw(¹9~1RÈŸ¾MìúÙv7œCýõ™¤ÀtPçß«ïýÍepÞQÃD°;awÂÎØIþdt_9h(‹#y_ví¿)ÄÏ:ܲOÙ×,Eí)¹§äž’ä ½¿§þ=õï©Æ^ø¸Î˜¼Í‰r7cÜ‘ÄÊ¿zor3œÉŸýÔè§Fä ڣ϶aæÛöwŒ®zF—ÃJÞÆ?'vÛÒ¸®±«±þZMÞ` (€óO_èêË]‹<£ Î0LÏSÝSÝSßTßTßTÃSz[DXŠÇDþíx8»}¸ŸÑÏQÎvÎvÎv&z|9íËi_N{ÍgvŽëô|pwjÝ;ú¤ÿ”½³ƒ±W .=ºô詃6èólô±Ï³{¸7)Ï]É¿'§6úÌižá|ê¯Õ¤¦€¸`Q `˜œÓö§íOÛžÀöÓ­ç”/gTÌ…‡,…ü·±å¹ZOªt4œÛ}iûÒö¥‘=@Qv7ænÌÝc7þ¥~Þ¥\¥Ðýoc­øOGÄ´4œÕÙcf™=†ìAôy6Ìù˜3~¥ëLáNä¿OŽv 2ú‰ìúë6ÙÀÛE\x(ƒóƒ&'êvÔí¨Û†'­Tªí"ï3,‚ägLÕižÿzùuÍtÍtÍÔeé²tY$P4M¿3ýÎô×|fmÝz½»ô¤ÄÍÏè·q~Ÿ?Z»1ËìœÙ9³3 „ùÒgØXÂïÝ{\SkîDò3.ØÓtžË.ùÕ_·I Þ. à7ƒ2øß¢† yPéA¥•Œ>¦Xˆ™ÏòGþGÏõUËÚÌ4œáÔé‡S“C@Q“’’bìHÃ)‹ªH'(qó?Vk9»Ë†3,ä9B9„ùÒgØ0ÛCÆ4Ȩu‘»üŸõu ªhì*­¿†“C¼-Àoep^PĬn°ºÁꆧåòÒ!n=Xø(¨qïâ6³½¾æò7d CÈ! ¨9š|4ùhòk>~"£ùø¨+·5z»Ní¹©‚á<·®ÝºvëÚäæKŸaÃl§Dt‘eq÷QPã ;÷]µ^s Ñ_ÃÉ!Þ à·‹2Ø `˜a „žŠ÷Æõ®xÅ”#æî îòñÿz»ˆ^šòÖ¦oíÜÏØ…/çYγœg¤Pt I’8$Ñðg¢ç¬ Í×L0…êÔÿÈR‹·ºd}‘YÙÝ«M`«ïíÝÊþiu Â ›븸}UõNÀ•°ÏÝe³d£‰ÖÀÎ+>;2Ѳ‚õP›×¼Þ{ºþéú§ëI#Ì‹>·†y®¸ ÜKË/tkb[„º¿ÝWþYþ1ÅC>+w¦ìp‹;ÿÉÍ=ž4™l w1§ïFÅù¿¦Ö_ÃI#Þ `ÓAü* `˜„Ç™3gžx^ÉUÇÚ˜öçþ–Ž-jáß¢Ú¤Š¥_ÝrÓÿ úž²Kåê¯ù4¾k¿_ûýÚïdPäØäØäØ»h´rù‡;¿ÝÒÔkØd« 5¬?®~˱KÞo]ªu `±¢Ì‘2¦V×¹ÚkȈ⯹=¾;þ6™„yÑçÖ0Ïóë7-îÒÝ^ó_ èjàn‘¦Sg]i2Û诱ÚäØäØI¼yÀ¦‰2˜&á`Ùƒe–}Íß+‡´wëmÊÕïûþPwá–›~¼o}›t¯s†[¾¾Ëú.ë»I@Qp}Ýõu××½æáÏ3š5èXïí¥®ÆJŒ´Mv¹æ}꛵¸ìAËûÍ߉òrž7¨ò$ Ïâ?þ¸º±Û·_7žs¾šKÓÔ¶ó-,~±8ú꾘܃ §N·yºáœ83â̈3dæEŸ[Ã<_véúe@Œ)¼æß=ªõ!¯ª¯nÛœÄÀªÎgÌh:Þec^Ƨ;¢=ƒö˜Î]Ì€Çõÿ®¹ÈpÎõ×s2 €7ØôÍ2˜&aü³ñÏÆ?3<Á.yvµ p3……†Ûz ¬·vp g÷]c2ü*×™ãþg•*<0vi0ýøÞ–Þ¾¯y¿BOËž–=-É$ (Øá±Ãc‡‡áOC·ƒÃæ}ôv‹R×¾_žžù~É̹ßgS&~ªÿ Ë]ýÿRki»œþôÿmÝ¿fÉ:gM­n4|¹ó¡†s^eU•UUV‘I˜}n óüòiÿ¿CºšÂk~}Ý«ß*§N}­ýÌånÅØ¸·x›N^_ιþzN&ðæQ›—¢SSÃ$øó;æwÌð¤Êpîw%x¿),4ür>tO}¿¼_Lé$'#öƒÐ’F·?E—¢K!™mûfï7{¿ÙkøsÐ7vv¿ÝµßnQêСC³KõÛSþ@Õ¿kxäå‘Î>+f>Üžñÿ½ù÷ÿ7°©ÕÀ¶3u^¯ùäÔþ/ü_ø“L˜>}V 3Ø¿úJ^¦óšÈG ŽÕõÛ™êøØÎÑÜ à›7zZ4ùÙpæõ×s’ €7Ø|i» ¦†‰^"«NµV®ƒé,4œÝÕ©•ÿ÷?}ÐxW½LÃÑ `ýÖØaD•µ†ÛŸ~&ýL:ahœwKï–Þ-_óé¿—9äüv+Rûœæs£ÒÊÇVQí÷UíѨNKß¼T¹¾»ætÝÓÇpL­vÈŒj1Èó5qµ½n{Ý–dÂôé³j˜á‰•ü£ë>7Wû­::Ô¨ò•~ÛFöñ^ãhm¾Õ¯~|Ù£ÿæ×üb®þzN2ðæQkƒöÊ` `˜è%²»Ÿ³“ýsY†0ßøÇ ÇÔh¸ý·2neÜÊ ™€¢ö IJŠõ›hS«Kó>Öì}näÉWß7lš°«0ôîOɆóŸè“è“èC2aúôY5ÌðöÕá=›˜æ}Ê¢!A>®õ¿ÀÚ$»zóJU+·*¿Ìò¬K½J¡Ö©£„j)q%B6¸-ЕŽ-jÒw4w•ÿÀò›×Ý…omØÜi£ ¦†‰^"'íñ×9µ£.ìqí¸îû ·?éHÒ‘¤#$PÔ^Tºç9´I3Ó/z½»N}´é”Ç™ÒVýàVõ«Š³{T¯×¡ӦW÷ÅéiÿŒ±CL³ö¬;þÝÕ× çsÍu6×!™0}ú¬fødRÇ —™Âëü'ñ}S‚ƽºmÖ«-,;=/Ëͬe]ùÔµÝo6¾ašw1á›j¯’E Ó\[ Öó-ƒ)€a¢—È_#BoÔoO\Ø£˜Ñv¶÷ Ãí?w î@ɵW Õ}[„wºjú°Õ¥êŸÖ^n¸ýe(¿Âê©óÇûO1åí÷i1#eÛ<Ãíÿ¹ÝÏí~nG2aúôY5ÌðÕÒÝ®5nn ¯óOï8¥áç†[;´~§šM7¶ôkÐYÿg¶Ü ûÔcÅg¡îýjÞ,ûŽÅ‹ÿswcšïþ<¦{­^À0͵ `­2¯2¸˜éœÀ«¶$‡µöXJ\Øã‘ì%ý&7ôjýñiï˜zæ[¿ªþý‘'í3Íí÷M“´÷òí¹Ý´çãÀ¦ð:Ï 6Õ½>Õo•ûŸU>¨ð`}D‹?Ô|õþÅð»övoó­×Ô×ÔÀ&v3fƒ¯®ÎXòÀ\ìü}çï;§,v®m]Ñs;pa'îw×py@ÏáN”ígéæò‰¿Æ/:tÁ'gV¹_¸­ýúÔܹ•ݽÚöyu¸>±ìš©m¹_÷y±û?"oО»)½nî1å{–{wÓµY½/í››Ú¾L8ê߬îuòÀ\dnÌܘ¹‘àÀ¼€·À\ÞllÔïE•æ¾ûCŽ¿º_¼x3LçÀù7•oÕ¬AŽ~Üt•ÛUË;€ ?ŠÐ;€õÏ@ç‹/ý—áÉÀg¿ÝÏ^è¿Ð¡?Éä‹/¾øâ«¨½1—ÏÎK ¬WÞ¯Jýj:S«}ðpe¸2\!™|™þ—>«†6Ï.¨Ï¶^mùcÙé¦vcì3€I&_|ñÅ_|ñÅ_¦°¶° Ä‚ J03ÚûÚ5r×È]#c‹Ç-ž÷êWÿç‹Ðg¹¿#|ÒS; àÂ׎káá¾Ïpû“Ž$I:B2EíH¥{žC›4{ËG^>ßëËW·ÊéiÿŒ±Còþ7x4×ð×pý÷Z&ØÄUªdj°gÝñï®~Íã[7×Ù\gs’ ӧϪa†O&u¼Ðp™)¼Î—oD¶ð ž¶}èóáŸiÝ.4nš÷ïÝv(üÏÒú=ª×²âë/Lí'|SíâU²^w¼ýµ}YÈÌhƒ¾¸°fš kò^úêÿü›/}_E ½Dv÷sv²ßC\Øã;Ž©;ÐpûoeÜʸ•A2Eíˆeë 6Ѧö.^{ë=íƒóþ½NŸDWõ¿÷&VúÍcQcS+€]…¡wJ6œÿDŸDŸD’ ӧϪa†·¯ïìÙÄ^ç7ò«öWÅ`ýV5ÿ±–uåSyÿÞ/îzŒu¨§ÿÞ¾¢ë¢î¦vSqWù,¿¡€i®-P›;ó-}_E ½DVj5¬\ àÂÃ;Œ¨²ÖpûÓϤŸI?C2ÚæÝÒ»¥wK߃:/;sÈÙt `‹ÅeZ†4˜ùý“¸.ÿðÙºg{ïºSþ“ÊË«5Õ«ƒcû±WM­vÈŒj1ÈÓpæ¯Û^·½nK2aúôY5ÌðÄJþÑuŸ›æJ^îS¤÷ÚÎ÷>U6ÍBµ¥ÿójBd–ÏzÓ¹yÙ£ÿæ?ÃýÒ_ÏI&Þ< `mÐFéû* `˜¿c~ÇüŽž<Îý®ï§.Œ1'#öƒÐ’F†Rt)º’ жoö~³÷›½†?}cg÷Û]ûíV¤^§¦øn\RöO«½ºm5޵nѳ뜡}ª£Ô³[Õ¯*ÎîáСC³K_}à³þÓõ”6µO)¶é¬óZo8ó/ü_ø¿ð'™0}ú¬f8°õ!•¼LáÕþã¿ú:YמosÚꟕ«¯uûŹ…ÕX¾}Ox/Ïà#­Û'úußèÞrnƒYŸ…º÷«yóÕê7z³ë“±¦vwsóFO‹&?μþzN2ðæQ›/핾¯¢†Iÿlü³ñÏ O¤Kž]­Ü(€ c¼·¥·oàmÃ-ïiÙÓ²§%™;Û†™oÛß1ºê]vl w(yÿœØmKãºÆ®Æúk5y€) Î?JßÂ@ “5>j|ÔxÃûóa ¼jõeY$/ãôv;êu3œCw[w[w[Ý'ºOtŸ4^5e÷”ÝSvþô¬]§”[ËF·âf$ÆRñæ>º*C3~ºcì&íùˆç#ž iÐ}¶%»ÞÇ3„;”ÜÇ¿)äOß&výl»ΡþúLÒ`:(€óoçï;ßù;¥oÁ¢†I»5ìÖ°[ÃŒê»÷´Nõrb‰ÄØxôy‡?ÁØì%_H¾|Œ`(}[ú¶t£Ÿ:YgxÏêÃÛQñ}?™Õdçzc³·'xOðž`2mÓçÜèã u=º4©ÇÝŠ±qîǞΛ=ýõ™ŒÀtPç_vdvdv$¥oÁ¢†Xe¹Êr•ÑϯM­ÖõhÀrJ^ï6ëµ5p¡±›ÜsrÏÉ=ɹKØ•°+a—±Ÿ§îñ£†.­AÝûêè}iƒáå×WWý°áŒE¥E¥E¥ért9ºÒËÑåèrô™ÍgŠçØdX}ó"³ßÑàÍܹ¼:ÆwkçásÌØUWM&\05ÀåÕ÷Súæ0ÌÁDÝDÝÄÛÛ[cË÷ÿî½±©‹&Ï·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆy1ÆqŒãGc¯@¼§vÙT–ê·QZÜ–ÄyUÓ— ûÍØ\=L˜þ0D¡èÐgÞØÑmL½›ö3s†Æœ ¹Ï]LJ‹.4zil®ô×aÓD ÓD ³ñèÌ£3Î[¨5Á¦tùÛisúÆÍE“Œãý+ÿ*ÕTy ±YºQâF‰%Èy—å‘å‘åásÞç¼Ïyc?a}Ì<¹ýT-€W <2¾Fý°®ÝŒ¾N;VæX™ceÈŠ&}þC‡z–s¯[Û<Ô½hÞÅüµ¢ûÈÆ¿½ºž÷9ïs^&K0MÀ0MÀ03R/¤^H5¶@àð±Mc«têÜ´Ez×o¯è³ÁCCk6©alf[¶8lA~øoî·¿ßþ~{‹\y¯™vyË{Eè]¿çâ:'Öª~¥U—®“ŒÍɺj몭«F~ý¹`ìLùâˆÇWµ²¯ÅÄ…-:w1—v]0%÷ëªþÚK~`Ê(€aš(€a–Ê$”I(“ûbÁ•‰Ý"i{ÑäŽc¯f}lËX76Û†l²m™ ÿ®”ºRêJ©Ü_xT»ÿ—µÿ¬ßN‹×ÆÛVñ÷]²ÌØ<ü4ç§9?Í!3À«ôç…±³æÓqu¦ÛM|^'Z .¥í»˜#ŸµOò‹þ‡»¹RWJ])Ef`ú(€aš(€aÆ„D!QHÌ}á`_‡6É^ªöM··ŸåçŸû¾¯K^—¼.™œP°Î—>_ú|éÜ ;]ëp¬‹öª_ïÝÓ-·4/›lµ¾B+cû>iܤq“Æ‘Àý9bì ² /7ÖÒ!µJ×#Ë´w÷kÈM·½¹_?õ×XrsA ÓD ³w0ä`ÈÁ܆žõôvXüìiô†àwÌw¹äåÎþ'CZOúÊÿ†Spîû»½óöÎÛ;“ Ï¥%—–\Z’ûOäÊ»¼Ÿõs›´¯•W¿ W,<"Ö[4àÝËæ¾¿sÏ}<÷1ÙòB¾ä~N­l×,´þOºG±}BƒÌø©E÷š8®í ÇiUïæ¾¿úë*Ù€y¡†i¢†Fœ?|þðùÃy°»Këý^Öæµhràçvë|Ëçeï;%vJìDx3îxÞñ¼ãY÷JÝ+u¯äþ3º^͘9ã¼ê¬è~ä+s©~½:NÚµ~]…º_Ö»ŸûÞm¶yØæaäø·ôçÎ?ÍqsÅ‚-zý;/^_±¾Ï7³çŸ¯äÔöÅ¿Ø6okokïÃË/;¼Œã 6ý¹¦?ïò~žö sý¼†ÍþÈ/¯¬çNÑRpßÅ\Zܵa@³¥ ‚—»>u[PÙ¹BlÞ·M=Ô_9¾Ð `˜& `!‰C‡&u]æºÌu™Åâ^¿òÁ l°°Öò…4Ýârh‹wX9BVÛÞóÕøÈ—>ë$§¶+½/nëö—Gúâ±AÙ®³‡ýá9Ãá„oŠ]œíØÿöïÚ&Ù&Ù& ƒ…ÁÂ`ÝdÝdÝdŽ&æâ¢ûE÷‹î­ƒ[·þo¯Êw¯²Â~fµ+!Ÿ|]dzGÛ¯C]¾|fêOõ{°Y0Þ}Êw,ñq·ÿöËŸ§»•–>»¾Ó_ýÕ±ukÞo{ºï•ŠÁn~¾S-òa]õuÕ×UÏš”5)‹G=o”þ¼ÓŸƒù9‹CÊ×8^¹äwÃ|9N[rÝmÏÎ^á:Ï•²EÛ ŸÒjýÈ>“ÿp˜äí²ñï–É öÎÞÚd‡óÜþýÜæ×8êð™M_«*ÿíßÕ_÷ô×@Ž&´Š¦‰EÏJÝJÝÊ£kŽ®9º&\ “ä_Ú¿´i%\ WÂs:ætÌéÈ¡ÀÜ]üòâ—¿ì·­ß¶~ÛLóHµåÕ–W[¾Õn«ÝV»Ì…™ 3rÔS ?õç¦þ<5Íkˆþú¦¿ÖqÔPPÃ4QºÛûn﻽o‰ãÇ%Ž5kÔ¬Q³Æ›_(±²·²·²ŸµrÖÊY+¯»^w½îÊq@Û|<ðñÀ 7TÜPÑÏÙÏÙÏùm6c?ûáØ/ã⎠`.ôç¬þü}[WýµKÓ_Ó8.(j(€aš(€×¸ßâ~‹û-ö÷ÙßgŸáÑã‡G׎«W;.ÿK$vÓí¦ÛM|ið¥Á—v6ÜÙpgÃÛ“nOºÍ€.­MZ›´6~;ðÛß~Xöò–yñâ9$ÿ¯@Ê— .Ü×¹¯s_ç £7ŒÞ0úZÓkM¯5eÎ-ÑŸ×ús\¾ëÏýü_Cô×"ýuIÒ_¯˜s0MÀ@Hxžð<áy¼C¼C¼CBTBTBs Û‰Ë'.Ÿ¸¿;~wü>x8çNΜ;Ì €Üé¯úë†þ¢¿ž03  À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À@Hxžð<áy¼C¼C¼CBTBTBsswxÂá ‡'ÄwŒïß1Á1Á1Á‘9¹;êuÔë¨WüÄø‰ñfÌ8˜¡»¢»¢»ÂÌÐ `à5î·¸ßâ~‹ý}ö÷ÙßgxôðèáѵãjÇÕŽ³È7»évÓí¦¾4øÒàK;îl¸³áíI·'ݞĜ£°=üðá‡?»‰ÝÄnßF|ñmD½æõš×kžÿTW]it¥ÑŸ½÷Ù{Ÿ½·­Ô¶RÛJÝšpk­ Ì9 Û£­¶>Úª U†*C¿óý˜ïǸýåö—Û_ùOu…~úUèccc·éø¦ã›Žß|cðÁÌ9ÓG èn﻽ïö¾%ŽK—8Ö¬Q³FÍoœ•½•½•ý¬•³VÎZyÝõºëuWŽ òã^è½Ð{¡+âVÄ­ˆsZê´Ôi©Å[2Íšÿ4ÿ«.W]®ºp\¤ÒiõãÕW?vîþÜýùÛJõ„­¶NØšú~êû©ïs\ õlÛ³m϶†óÆÌo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À(B‡&MêºÌu™ë²ÿX_Õ¯|°ÂÁÁ#,¬µ|áM·¸ÚâVÎc„Õ¶÷|5>ò¥Ï:É©íJï‹Ûú„ý呾xlP¶ëìaxÎp8á›bg;ö¿ý»¶I¶I¶IÂ`a°0X7Y7Y7™£ ½“ÅN;Y̯¢_E¿Šÿ-].­+µ³¾ñÙ ÷EµÞ›Üô#—Þ›íZ­óðúDdzUçDÞöY.mh{Ö;}ûWáÍ==—ú¯p}6¼ƒ×øÚÑ~±ÿ°b×ü”g»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo04îúé맯ŸŽH‰H‰HÉûò}ÈËš5+7^çÓâ÷ë׿êáØ¤”NZPãÝÏ{Iq[v…yÌœêxÊÎ*ïÛæ7Ào€ß€‹‹Ó‹¨Û5o×¼]³Ëì.³»ÌÎ{r2í'U\·ºN³gõ3¯Žî^ªqï‚MõÃj}ì›~½£CøϘ¨YNÕ¾ü%ô&—M.›’–'-OZÎñ-šî[ß·¾o–÷äx_¨zÕ¶ÔŠý¡mÜ2¯”èV=àLÁ¦:Mê;2¨ùî+­ï{ytÿÎ9ØþPÞ·­ú²ê˪/;qüÄñÇ‹ÚѤÞ. `hQC]C]ø½q{ãöæe™ÞúCËec»Ø|¾{לÉ1©! ¶BÈû¸5!lÇÙ:Ѷß[ÎË–Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»å½‚ú¥jèÐúY#clCF¾­TïzÑzW1wµrV…[yÙæ»üØåÇ.™û2÷eîã°[lY°å_<Þy‰Gp×½Ëúœô¶R½ÿeÄ0ïê ïU‹¶ÍÈË6,?²üÈò/Ú¿hÿ¢H<öœx»(€¡)ç=œ÷p^«û­î·ºŸûr|=‡Šã­c:·»êë¥+ûIhé·U$¼fÌŠ 9éÝqYÑT«T-÷}qí6ÚmôÍå7—ß\N´çI‡'žtˆºu7ênîI°·þ¶Ü3éhÛ?½u9•cv„\0¡TëbcCCÏþÙ©³ÿ¤Ve>¬Ò÷Þ=Y²zÉê%¯Æ^½K´çùÒçKŸ/=0zà?ü‚Ž«eTÙ/÷Ul#{íÈ~?&<ägSKõ…°.ÅMúôtõv‹rß—rýÊõ+×/eWÊ®”]Ú>¾ÀÀÛE 8øüáóyz×ìî.­÷{Y›Z…ûxàçvë|Ëçeï;%vJìD´áŠãÇ+ŽyúÌQ¿°ò#Í+ÕGvµì÷u¥Ùå;Y®Ë}ï”æJs¥9yІëé×Ó¯§WZ]iu¥Õ¹÷µJ‹0÷DóJõ©ÑQ6 ã‡ÚÖ²š“ûÞíY½gõžÕZ=ÊÀÀÛE ³w0ä`ÈÁÜ—Ú‡žõôvXüìiô†àwÌ«Nxu|¹³ÿÉÖ“¾ò¿áœûþnï¼½óöÎdÃ|<y<2÷£s³~­šÕÓ~èÛ'ÈÏ|S},faHÂlÇ&㜿Ê}×}·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°ióMµÎ?Ö>´ââ/ƒÒ]g便qïŽ÷žöŽ50ðvQÃŒ ‰B¢˜ûòú¾m’½T3.ŒŒ‰ÛÛÏòóÿ‡Â,y]òºdrb^n$ÜH¸‘û‘Ýz/l‡Ç%í¥úÔÚ(džÇÿ¡0û8îã¸É‰y9ÙödÛ“mÿázõ~‹h÷ ÚKõyûÎ?5ú‡_Ù™»h‹´tÄ)€€·‹f)¡LB™„2¹/©_™Ø-2à‘öê„WÇ;޽švtô±-c5ÞØ}4j®¿…¶S¶©ï° àÐ65ƒ*}gÿ’{Kî-¹§ãN ¼]À03R/¤^H5¶€îð±Mc«têÜ´…¶ë„WÇç½¢ÏW ­Ù¤r„±™9lqØâ0‹ï&êªÝU»«vÆŽ]ù§eÿ*ët{P¯âÎE'ÕßõË >Ö~PëvûÍŒø£ø£ø#ù1M·–ÜZrkIîÕïµ[ÝŸ4¾_tRý2»ÿÝî}º¶ªñ®±9Ùá±Ãc‡‡¹} `àí¢†ÙxtæÑ™GgŒ-š×š`Sºüí´9}cƒŠNð ³ãý+ÿ*ÕTy ±YºQâF‰%È’éxöõ³¯Ÿ}]î‹r_”ûÂðx•»Vö;‹û÷Ózonê^4SõmLÅo;´¯ÛÐî±±T_N¹œr9…,™ŽŒÀŒÀŒ@‡iÓ¦;j¯è¹£INÑLuΰ˜s!÷£ý]j´66?I’.$]0ß Po0ÌÁDÝDÝÄÛÛ[cËå÷ÿî½±©[ѬþÏ»·E? ®W7¾bqë×Ì•SºSºSúË´—i/Óˆ•)èy³çÍž7–dƒzþÒä ©Î,Þß%øžÿÕT¬`8K6¿Úüjó다I/’H”)’2$eHбTÿåÝ=²ñ4Rµ ¦fÈØðÎתÜ66WO“Ÿ&?5ËÏq§Þ. `˜U–«,WY["O­ÖõhÀrê„WÇ»Ízm \hlÆ&÷œÜsrOrõvm™¼eò–ÉÆŽÑ¹¨N7ý/“äWÇG«ûlmzÜØŒ¬=²öÈÚäêíúÃúë?¬£cJ‡í~÷Hò«ã3ïèè súǼÎØ€âŠ(nŽI .XQK£–F-ÕÏáV‹­[-²zgõÎêÍÌÀ `˜´[Ãn »5ÌX°{OëT/'*cãÑçbüc³—|!ùBò2öæÝ?sÿÌ}£3ߨ¡åŠ‹H¯±1éT§íþFS}|Éñ%Ç—±7ïIÀ“€'ÆŽËŠÊ¡åÜΑ^cãå³]7Ì06{ñâÄ0¯j¼á¢ççÃxÕêKm—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€×TeÝ~­÷Ä~‰Í˸¸wPšëÃ9¬Ò¯J¿*ý²]²]²]HÚ›42sdæÈLÃ#Òê–C§*ót3b‡Ö#·¹k&4?ç>ÎXÕ—Ù.³]f;sÉp½ z彿¹£ À«(€a¢Nذ;agl¡óÉè¾rÐP ƒ¼Œ/»ößâgnÙ§ìÙÜSrOÉ=%ÉÛ›q~Ùùeç—Kõƒj½å¦þ$6/cvJÌÒĺÏ*–·®i8“¾Ùð͆oÈÛ›qÕæªÍUc©¾u¼gÿ&'HlžÆþ±n¡5ÖØ¨¸Àp&—¥.K]–j.© .°ŸKÎ/9¿¤íƶÛn´È3Ê`PÃô<Õ=Õ=õMõMõM5\ÖÜ–âñ„ªàߎ‡³Û‡ûýålçlçlg¢WØÂO‡Ÿ?m8ÿ«G5/ï^Š”þÛñLrÔ ÿ0£ï˜¬Y;“O.t=wöÜÙs§áü/ÜÐô¡ËRúoÇKÛº„Kõóžôü#3Hp!  @ÞQÃ䜶?mÚÞpÓ~ºõœòï匊¹ò’à¿-ÏÕzR¥£áÜîKÛ—¶/ìž”…) S[ Ïò‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µë5Ÿ¦³"fEŒégƒ¸°Q wÀ09Q·£nGÝ6\¸”Jµ]ä}†b ?cÒ¨Nóü×έk¦k¦k¦.K—¥Ë"…aà¶Ûn{Í;Ú·…óüˆdægLÝõyÀùµ=k{Öö¬.P¨ $…aT÷QÝGuÍ;Ú›6Ë©¯#™ùoþÔãQ“‰FŸÙÐ+»Wv/SÎð›D CÀ0!*=¨ô ’Ñ%o!fvH<Å@þGÏõUËÚÌ4œáÔé‡S“Âõô§ï<}ÇècŠöŸbO& àÝíýj®`8ÃIÝ’º%u#‡ëÅÞ{_ì5–êôâý,‚ÈdþÇîÅ+Øo0œáÄøÄøÄxSNðÛB = `˜Õ V7XÝÀpiryé·”5î]Üf¶×kG¨ðÀè;Ûòþ(ÚVý׆x9¬²aõ¿%û~qna5–ëK c¢7»>©«ÿoý÷êÿžÂ+îméíxÛpKzZö´ìiI&óo~Öü¬ùY†3|Ú2ªMÛ¤º0Æ'%ûÎêd¸%­<[y¶ò$“ù·zÿêý«÷ÎðÁ ŸZøF’êÂ_Ø÷û6ø{Ã-ñ´ð´ð4ÑJ•ØQh 0L‚ß1¿c~Ç^ó‡Îý®Ê{%9º§¾_Þ—8óþ7ï\ÜÚÊs‹þ»Ê);ÜâνF½KžÈýïyõÏçÿq¦yútÉŒØBKÝß]Š.…dæGÄþˆý¯©Êžv‹.´ŠTÊø$6:4ÈrKÙ-Ö¼æó­—ä,ÉYB2ó#ºgtÏ螆sû ¸÷‰¦!¤ºðƺ›l3­Ë¿æó­Ëf•Í*kj9¡6w”ÁæŽ&Áp±êT«aå:ÞbúÙ]ZùÿÓwÕË4óS*|q×c¬C=ýwµßR'ÇîHÞÿ†WÿÅ//y\t(ôÇ_‡5vQe­áþ¦ŸI?“~†dlªÿ—„í±á¡ž¤ºðÆ^u\‚ª÷1Üß´éiÓÓ¦“Ìü°“íd;ù5åºkÌþˤºðÆa‡Q2×Åý[*„þZ³wåhýw-nt×ubÞ¿÷ç^A³]#ôßÛâ«ZCª|XØ{úãΆcê4Üß[·2neÌ‚Mu‹j…V~Hª {Oçé¹´3Üß+=®ô¸ÒƒdlªÝ'T¾Qá©.ì=]•ÑìZý‡†û›44ihÒPSË °VQ˜ `˜ÃåÂI{üuNí̱T¨=ßæ´U¯ÿ-z&‡ý÷ïÝr3ìSúï­óí«c…ýpѵãZx¸ï{M©p$éHÒ’Y°©þº«—cmgR]Ø©Þõ õÏÃýMœ8;q6É,ØT÷þÝålõ}¤º°S}àãvÃ|žî¯ððð©å„¸(  0eÀ0 †K„¿F„Þ¨ßÞK…JË[.Õ×ÁŸ?ýÈ·uÞ¿Wÿçõß[Å¿ü‹rv© f´í}ÂpĈ;G2 6ÕsŠ59í¼šTvª¶ëàä·Èpwß=~÷x’Y°©ÛÍ/°Î:R]Ø©NîÔ9´QÃý]gµÎj•©å„¸¨ÉOÌì `˜ÃeÁ-Éa­=–šc©PîLÙáwþ÷>Ú5VùïÈû÷êÿ¼þ{_ý{ oOdw(é7ÁoÄ/ ¡Ûê{‘êB¯Ê,;×kôy{3f÷m²Ðy©.ìTÿy¶ÛñÆ É´‡×À…&ÁpApçÚÖ=·›ûcE}ûé¾ÿâá¨Ö¶Ûìk£ÿÞZÛmìÊ?-ìRáÄýŽã`úÍXóQó5îýHua§úâ¬.#"ooÆB«¦»\ŽêÂNõµ?»?j|—¼AKÊÏ+?¯ü<^ `˜-½¸qeûy·è¿kûžð^žÁyÿ^ýçPê¿÷Õ¿‡wó`RÍ;€ypQN5ïï@ÞQÃ$.šïgwœ]wK5ýw-· ‰të™÷ï]V3ø…[]ý÷FýàT²ÚàÂ.Œ}ðBÿ…þ ýãßåë¿Ϊù~°y¥ÚØgÏè?£ÿŒþ$³`Sm¾Ÿl^©6öÀ?ÌýaîsM-'aaa†[ˤկÕ#VX="040404ïÕï‚w¼»à]^ `˜ÃeÁI{üuNí̱TzÌÓÃáåS[çïíïåý{»×q®eÿ¿Ï•&xÎp8QØ¥ÂÚq-<Ü÷îoÒ‘¤#IGHfÁ¦úë®^޵Iua§z׃ÖsõŽØ_{¾Íi«^V;,ë–í¨ÿï¶ÎßÛß;øó§ù¶~“û¸o}›t¯s†{º¾Ëú.ë»Éü;5ñÔÄS gxFzãÈzûIuaŒ‡¬>]à»ÒpO—TZRiI%2™){Sö¦ì5œáQs|Î;'Õ…1ž Œ’üëîéÔESM]dš9¡6”¾ZE “ð8óqæãLÃEF¯äªcmμ­O~µ`(ì¿çÍì?!ÄžLælÙ¯Öá*†3œÔ-©[R7rX°^ì}±÷Å^c©N/ÞÏ"8€Læì^ܹ‚ýÃNŒOŒOŒ7å„P¿-”¾Ð£†É‰ºu;ê¶á¥Tªí"ï3Tù“Fušç¿Þpn]3]3]3uYº,] , · Ü6p›áÌoÛ^Ìó#’™Ÿ1uv×ç{ çÖö¬íYÛ³º@] .†QÝGuÕÝpæW7m–S_G2ó3Þü©Ç£&þ:T¯ì^Ù½L9Ào¥/ QÃ䜶?mÚÞp±Ò~ºõœòï匊¹òzà?¾Kò\­'U:Îí¾´}iûÒÈ^áIY˜²0e¡ÑO¨õ‰y'ä3òù߯n×KÚ¯6œÕM¾›|7ù’½Âs½ÔõR×KKõ‹ûý‚7’Ïÿ6¾Ö@¬µËpVWĬˆYcúÙ .l”¾È0LÏSÝSÝSßTßTßÔ×¼c2",Åã õÀ¿g·÷³4ú~2çlçlg¢WØÂO‡Ÿ?ýšwLŽj^Þ½)ý·ã™ä¨þaF¯];³vfmRWØzîì¹³çNÃù_¸¡éC—¤ôߎ—¶u 7–êç=ÿèùGf àB@é €¼£†‰:awÂÍ'£ûÊAC© ò2¾ìÚSˆŸu¸eŸ²# grOÉ=%÷”$ooÆùeç—_f,Õªõ–›ú“ؼŒÙ)1KCë>«XÞº¦áLnøfÃ7¾!ooÆU›«6WmŒ¥úÖñžý›œ ±yûǺ…Ö Xc? âÙ\–º,uYª¹¤‚¸À~jPúà?¡†I‹5>j¼áâæçÃxÕêKa—qz»€õºΡ»­»­»­îÝ'ºOHÚ›4 `@À€Ã#Òí×zOìؼŒ‹{¥¹N1œÃ*ýªô«Ò/Û%Û%Û…¤½I#3GfŽÌ4<"­n9tª2O7#¶qh=r›û¸fBósî㌾£½]f»Ìvæ’ à{´4jiÔRJ_ü[À0i·†Ývk˜±åÎÝ{Z§z9Q>ïã'›½ä É’/±7ïþ™ûgîŸ1v\6vh¹¢Á"ÒklL:Õi»¿ÑT_r|Éñ%dìÍ{ð$àI€±ã²¢rh9·s¤×Øxùl×Í3ŒÍ^ü€øñÌ+À%åJÊ•”+”¾ø·(€aVY®²\eôókS«u=°œ áÕñn³^[›±É='÷œÜ“\½][&o™¼e²±ct.ªÓMÿË$ùÕñÑê>[›76c#k¬=’Oü}Ëþ°þÃúkcÇè˜Òa»ß=’üêøÌ;::è\ù§eÿ*ëd8cŠ(> ¸9&¸`½ú>`J_ä0ÌÁDÝDÝÄÛÛ[cÕÂý¿{olêFð|[ô“àzuã+·~Í\9¥;¥;¥¿L{™ö2X™‚ž7{ÞìyÓXªÿÔó—&OHufñþ.Á÷ü¿¨¶ bÃY²ùÕæW›__$½Hz‘D¢LÁ”!)CRŒ¥ú/ïî‘§‘ê¬15CƆwv¸Vå¶±¹zšü4ùi²Y^Ù(€€·ŠfãÑ™Gg}pn­ 6¥ËßN›Ó76( hÖ ÇûW þ3Tª9¨ò@c³t£Ä7J%Óñìëg_?ûºÜå¾(÷…áñ*w­ìw÷ï§õÞÜÔ½ˆ–d߯T ù¶Cûº íKõå”Ë)—SÈ’éÈÌÌt˜æ0ÍašÑ_nXÑsG“œ¢™êœa1çBîGû»&Ôhml~’.$]H2ãGôSo0ÌÌ…Ô ©R-š;|lÓØêƒz'7mQ„ÞõÛ+úlpÅÐКM*G›™Ã‡-³øn¢®Ú]µ»jgìØé{{P¯âÎEè¾ë—|¬ý :×íö›ñGñGñGòcšn-¹µäÖ‹\]»ÕýIãûE'Õ/³ûß éÞç¡k«ï›“;}4j®¿…¶S¶©ï° àÐ65ƒ*G›‡%÷–Ü[rOÇx»(€aÆ„D!QH̽ZØ×¡M²—ª½:!q{ûY~þ¹ïûºäuÉë’ɉyI¸‘p#áFîGvë½°—´—êSk£Ï}ßã>Žû8îcrb^N¶=ÙödÛ¸^½ß"Úý‚öR}Þ¾óO‚sß÷¹‹æ.š»HKGœx»(€aö† 9’ûòúгžÞ‹Ÿ=ÞüŽ?>tgÿ“!­'}åÃéê„í·wÞÞ™l˜¯ã‘Ç#Gæ~”cnÖ¯U³zÚ}ûù™oª³Å, I˜íØdœóWÿP~·î»uß‘ ó•ŸŸŸûQî6³Þ=ûÙ.õù°i3®~ýcíC+.þ2(ÝuÆ?üBÃ{q½cM ¼]ÀЈó‡Ï>Ø"vwi½ßËÚ¼ê„?·[ç[>/{—Ø)±Sb'ò  W¯8^qÌËqßâVÞc¤y¥úÈ®öý¾®4»|'Ëu¹ïÒ\i®4'Úp=ýzúõôJ«+­®´:÷ã¾ViæžhfïbeÓ0Þq¨m-«9¹ïÝžÕ{VïY­Õ£L ¼]ÀД‡óÎ{8¯ÕýV÷[ÝÏ}ñ½žCÅñÖ1Û]õõÒ•ˆý$´´  Y±1¡!'½;.k82ðƒêa•ªå¾/n£ÝF»¾¹üæò›ËÉ€ö<éð¤Ã“Qw£îFÝÍ= öáÖß–{&mû§·.§rÌŽ“{ îÙ?;uöŸÔªŒÃ‡Uúæ¾/ÕKV/Y½äÕØ«±WcÉ€ö<_ú|éó¥Ñ£FÌ= Ö®–Qe¿ÜW±ìµ#ûý˜ðŸM-Õºk4éÓÓuÖÛ-Ê}_Êõ+ׯ\¿”])»RviûøRo0´¨¡®¡®aÜÞ¸½q{óòîIë-[”ýíbóùî]s&Ǥ†<~[EÂÖ„°5gëDÛ~o•§w3Ïðá;Ã7kcÖÆ¬v;§;§;·¶ÛÚnk»YäÙ/UC‡Ö·ÈcòÖÞ¼ëEë^ÅÜÕÊYnåe›ìòc—»dîËÜ—¹Ã^lY°eÁ–yOõà&®{3–õÿ(8ém¥zÿˈaÞÕÞ«m›‘—mY~dù‘å_´ÑþEû¢pL)€€·‹wýôõÓ×OG¤D¤D¤ä½`yY³fåÆë|Z|ã~ýúW=›”*Øòàî罤À¸-»Â‚<æGNuöM¿ÞÑ!|‰gLÔ,'‹j_æ}Û\6¹lrÙ”´;ᾨÖ{óƒ›~äÒ{³]«u~BŸˆLï¡êœÈÛ>Ë¥ mÏz§oÿ*¼¹§çRßà®Ï†wð_;ºÑ/öVìj‘»2veìÊÈ9“s&ç GzIM’š$5 Ž Ž Žüo¹ªÛÛö²uñUê/ª;wT`Oç¬Mïµ lùGb„ì¡öŽLö™+¥¶½åóîŽ á=¿\v?$ȭ㈿½GÖÎ ìY}P%ü¤z‹çÏ-žÙIÙIÙIEóRo0Šž•º•º•G×]stM¸.„ &É¿´iÿÒJ¸®„çtÌé˜Ó‘C£éé}jô©ÑB:„t1ÍT»ßt¿é~óªTý£jvûìöÙí9tÈݹ ç*œ«Ð}A÷ݘfªëL®3¹Îä]{víÙµ'Ë*Ë*ËŠ£F ¼]À€îö¾Ûûnï[â¸Äq‰cÍ5kÔ¬ñæ++{+{+ûY+g­œµòºëu×ë®äǽÐ{¡÷BWÄ­ˆ[ç´Ôi©ÓÒ·UMóŸæ?ÍÿªËU—«.äÇéô@ZýxõãÕÝŸ»?wþ¶R=aë„­¶¦¾Ÿú~êûCÀÀÛE ¼Æý÷[Üo±¿Ïþ>ûû =<ºv\í¸Úqù¯ ì¦ÛM·›>øÒàKƒ/íl¸³áΆ·'Ýžt{sŽÂöðÇ>üPì&v»}ñmÄ·õš×k^¯yþS]it¥Ñ•FöÞgï}öÞ¶RÛJm+uk­ ·&0ç(l¶>Úúh«2Tª ý~Ì÷c¾ãö—Û_nå?ÕúUèW¡_Œ]Œ]ŒÝ¦ã›Žo:~cðÁ73çL0Pž'UÓÔ45M}¬>V«ÔGê#õú@} ÞWï«÷Õ»ê]õ®zG½£ÞQÿVÿVÿVo©·Ô[ê õ†zC½®^W¯«©©©WÕ«êUõŠzE½¢¦ª©jªzI½¤^RSÔ5E½¨^T/ªçÕóêy5YMV“Õ$5IMRϪgÕ³êiõ´zZ=¥žRO©'Ôê õ¸z\=®UªGÕ#êõˆzX=¬V©‡ÔCj‚š &¨Ôê5^WãUEUTE•UY•UQUQTAÔýê~u¿ºOݧîS÷¨{Ô=ênu·º[Ý©îTwª;Ôêu›ºMݦnU·ª[Õ-êu‹ºIݤnRWWW7¨Ô êzu½º^]«®UתkÔ5êuµºZ]­®RW©«Ô_Õ_Õ_Õ_Ô_Ô_Ô85NS—«ËÕåê2u™ºL]¢.Q—¨‹ÕÅêbu‘ºH]¤.Tª Õùê|u¾:O§ÎSç¨sÔ9êlu¶:[ýIýIýI©ÎTgªÓÕéêtuš:M¦NQ§¨SÔÉêdu²:I¤NR'¨Ô êxu¼:^ýAýAýA§ŽSÇ©cÔ1êõ{õ{õ{u”:J¥~§~§~§ŽTGª#Õêu„:\®W¿V¿V¿V‡©ÃÔaêPu¨:TýBýBýB¢Q‡¨ƒÕÁê`u:H¤~¦~¦~¦P¨ÔX5VUû«ýÕþj?µŸÚOí«öUûª}Ô>jµ—ÚKí¥öT{ª=Õîjwµ»ÚMí¦vS»¨]Ô.jgµ³ÚYí¤vR;©ÕŽjGµƒÚAí ~ª~ª~ª¶SÛ©íÔ¶j[µ­¡F¨jkµµÚZ WÃÕpµ•ÚJm¥¶T[ª-Õæjsµ¹ÚLm¦6SCÔ5D VƒÕ`µ©ÚTmªªj ÚDm¢6QÔ5@m¤6R© Õ†jCÕOõSýTÕGõQ½UoÕ[õT=UOÕCõP=TwÕ]uWë«õÕúª«êªºª.ª‹ê¢ÖSë©õT'ÕIuRë¨uÔ:ª£ê¨:ªµÕÚjmµ–ZK­¥ÖTkª5Õêjuµºj¯Ú«öªj§Ú©UÕªjUµ²ZY­¬VR+©•T[ÕVµUmTÕFµV­UkÕJµR­Ôrj9µœj©Zª–ª…j¡Z¨eÔ2jµ”ZJ-¥~¢~¢~¢–TKª%ÕÔÔÔÕÕÕj µ„ú¾ú¾ú¾ú®ú®ú®Z\-®W‹©ÅÔbŠNÑ):%[ÉV²•,%KÉR2•L%SÉP2” %]IWÒ•çÊså¹òTyª-Ÿ’Oɧäò ù„|\>.—ÊGå£òùˆ|D>,–ˇäCò!ù |P>(Èô/ ô—Y’%Y’EY”Eùùùy¿¼_Þ/ï•÷Ê{å=òy¼KÞ%ï’wÊ;åòvy»¼]Þ&o“·É[ä-òy³¼YÞ,ÿ.ÿ.ÿ.o”7Êåõòzy½¼N^'¯“×Èkä5òoòoòoò*y•¼J^)¯”WʿȿȿÈ+äò 9NŽ“ãäeò2y™¼T^*/•Ë‹åÅòÏòÏòÏòBy¡¼P^ /Èóäyò•>•>•ÚIí¤vR[©­ÔVŠ"¤©µÔZj-…KáR¸ÔJj%µ’ZJ-¥–Rs©¹Ô\j&5“šI!Rˆ"KÁR°ÔTj*5•¥@)Pj,5–KR€ ùKþ’¿ÔPj(5”|%_ÉWò‘|$ÉKò’¼$OÉSò”H ¤’»ä.¹Kn’›ä&¹J®’«ä,9KÎR=©žTOª+Õ•êJu¤:R©¶T[ª-9H’ƒTSª)Õ”jH5¤’½d/ÙKÕ¤jR5©ªTUª*U‘ªHU¤JR%©’TQª(U”l$ÉFª U*HV’•d%•—ÊKå%KÉR²”ÊJe¥²R©ŒTF*-•–JKŸHŸHŸH%¥’RIé#é#é#éCéCéC©„TB*!½/½/½/½+½+½+—ŠKÅ¥bR1©˜¨u¢N̳Ål1K̳ÄL1SÌ3Ä 1CLÓÅtñ™øL|&>ŸŠOÅ41ML‹ÅÇâCñ¡øP| >ˆ÷Ä{â=ñ®xW¼+Þo‹·Å¿Å¿Å¿Å›âMñ¦xC¼!Þ¯‰×Äkâ_â_â_âŸâŸâŸâñŠxE¼,^/‹—ÄKâ%ñ¢xQ¼(^/ˆÄd1YLωçÄsâYñ¬xV<#žψ§ÄSâ)ñ¤xR<)‹ÇÅcâ1ñ˜xD<"ÅD1Q<$‰ b‚˜ ˆÄx1^Œ×¿ü×ÿØõQq¿¸_Ü/î÷‰ûÄ=âq¸[Ü-îwŠ;Åâvq»¸]Ü&n·‰[Ä-âq³¸YÜ,þ.þ.þ.n7ŠÅõâzq½¸N\'®׈kÄ5âoâoâoâ*q•¸J\)®WŠ¿ˆ¿ˆ¿ˆ+Äâ q¹¸\\..—‰ËÄ%âq‰¸X\,.‰‹ÄEâBq¡¸Pœ/Îç‹óÄyâB/¡—ÐKè)ôz Ý…îBw¡›ÐMè&tº]„ÎBg¡³%D QBG¡£ÐQh/´Ú Ÿ Ÿ Ÿ ‘B¤)´Ú m…6B¡.„ áB˜&„ -…–BK¡…ÐBh!4š Í„P!T‚…`!X‚„ !P…&B¡‰ B#¡‘ÐHh(4 ~‚Ÿà'ø>‚à-x Þ‚§à)x „BÁ]pÜ7ÁMp\WÁUpœg¡žPO¨'Ôê u…:B¡ŽP[¨-ÔÁA¨)Ôj 5„B Á^°ì…jB5¡šPU¨*TªU„*B%¡’PI°l[ÁF°lkÁZ°¬+ÁJ('”Ê –‚¥`)Xü¿öî;,Š«müxôI3>*v±co`D)±¡H¢b¯ &c‰Æ’X¢1ÆÆÄÞ»;ˆŠ¢Ä®ˆŠ‚{ýýqž?xì [ؾŸ½®¹Þë}dvæÌ}NÎ9÷Î9a6a6a%ÂJ„•+V,¬XØÃþöß°OÂ> û$¬HX‘°"a…}öQ؇a†}ö~Øûaï‡+V8¬PX¡°B’VÒJZ)KÊ’²¤ )CÊÞJo¥·Rš”&¥Io¤7Ò)EJ‘R¤×ÒkéµôJz%½’’¤$)Iz)½”^J/¤Ò é™ôLz&=‘žHO¤ÇÒcé±ôPz(=”H¤Ò=éžtOJ¤éŽtGº#Ý–nK·¥x)^Š—â¤8)Nº!ÝnH±R¬+]“®Iפ«ÒUéªtEº"]‘.K—¥ËÒ%é’tIº ].Hç¥óÒyé¬tV:+‘ÎHg¤¥¥¥()JŠ’NJ'¥“R¤)EJÇ¥ãÒq)BŠ"¤£ÒQé¨.…KáÒaé°tX4’FÒH¥ƒÒAé€t@: í“öIû¤½Ò^i¯´[Ú-í–vI»¤]Òi‡´CÚ.m—¶K[¥­ÒVi‹´EÚ"m’6I›¤ Òiƒ´^Z/­—B¥P)TZ'­“ÖIk¥µÒZi´FZ#­–VK«¥UÒ*i•´BZ!­–KË¥åÒ2i™´LZ*-•–JK¤%Òéwéwéwi‘´HZ$-”J ¥_¥_¥_¥_¤_¤_¤ùÒ|i¾4Oš'Í“æJs¥¹ÒiŽ4Gš-Í–fK3¥™ÒLéGéGéGi†4Cš!M“¦IÓ¤©ÒTiª4Eš"M‘&K“¥ÉÒ$i’4Iš(M”&Jã¥ñÒxé[é[é[éééi¬4V+}-}-}-}%}%}%’FI£¤‘ÒHi¤4B!†KÃ¥áRˆ"…HäaÒ0)H ’‚¤¡ÒPi¨4D" ‘Iƒ¤AÒ@i 4Pê/õ—úKý¤~R?©ÔGê#õ’zI½¤)@ zH=¤Rw©»Ô]úLúLúLò—ü%ÉOò“ü¤®RW©«ä+ùJ¾Rg©³ÔYê(u”:Jí¥öR{éSéSéSÉ[ò–¼%/ÉKò’ÚIí¤v’‡ä!yHm¥¶R[ÉMr“Ü$WÉUr•ZK­¥Ö’³ä,9K­’Ú)=€IDAT¤VR+©…ÔBj!9JŽ’£Ô\j.5—šJM¥¦R©‰ÔDr$É^²—쥆RC©¡Ô@j 5êIõ¤zR]©®TWª-Õ–jK5¥šRM©†TCª!U—ªKÕ¥jR5©šTEª"U‘*K•¥ÊRE©¢TQ²•l%[©¼T^*/•“ÊIå¤2R©ŒTJ*%•’JJ%¥’R ©„TB*.—ŠKÿ•þ+ýW**•ŠJE¤"RécécécéCéCéCéééé?Ò¤ÿH…¥ÂRaé=é=é=M–&K“¥ÉÔdj25o5o5o5éštMºæææ&U“ªIÕ¼Ö¼Ö¼Ö$k’5Éš$M’&I“¨IÔ$j^h^h^hžižižižjžjžjkkkiiihhhîkîkîk4 šÍ]Í]Í]ÍmÍmÍmÍ-Í-Í-Mœ&N§¹¡¹¡¹¡‰ÕÄjb5×4×4×4W5W5W5W4W4W4ÑšhM´æ’æ’æ’æ¢æ¢æ¢æ¼æ¼æ¼æœæœæœæŒæŒæŒæ_Í¿š5Qš(M”æ¤æ¤æ¤&R©‰Ô×××Dh"4bÚ^L׉n; `³Þ0˜‚%äCI€& @%H“ $€IP À$€¨ `ÀT‚0 `*A˜0• L€J& @%H“ $€IP À$€¨ `ÀT‚0 `*A˜0• L€J& @%H“ $€IP À$€¨ `ÀT‚0 `*A˜0• L€J& @%H“ $€IP À$€¨ `ÀT‚0 `*A˜0• L€J& @%H“ $€IP À$€¨ `ÀT‚0 `*A˜0• L€J& @%H“ $€IP À$€¨ `À€\°Ñ‰òQkÚèm[™me¶•É߫נÿ5“– çž {.´±*A«ƒV­æÙ=˜ý`öƒÙ5n׸]ã¶(™ê%ª—¨^"ñNâÄ;Ö{_'<œðp‚ÔôÿÿðÄõ¡¾ÔwJæG[ÂU‰^ºè±‹«=yÑ«ç©PÀ$€ `H¤· -³$õO‰õ¯ß¿~ÿúù{µlذÍm2ÈÌ_$€­QV•¬*YU:õìÔ³SÏì%óK¹_ÊýRÎÚïnܪq«Æ­² £¸¶¸¶ø©§FœñÍÖo¶~³Õ{§÷Nï {5ìÕ°W¹Ðr¡åBë¯?¾þøvñíâÛÅõä«'_=9y,òX¤xR´3õõ–0޶„kûÙñgÇŸ³_UçöÛwnO\PÀ$€FÀB3VZ{¸Âì ³+Ìί»HYœ²8eqÞ’yDfþ"lfO=uöÔìeRëX­cµŽY{Êl”Ù(³Qíݵw×Þm -Fxrxrx²ãQÇ£ŽG ‰ØC]u=Ô•Ö ¾Ôwê;òwm ×–¼'yOòFÇÔ0 `€0y$xÑõ)˜ehí àü½‹í)ÛS¶§¶F$€­KÌœ˜91säe²xÅâ‹WXûÝ.}¸ôáÒùÛbˆw/F]dtSD¯˜§å¨ïõúó£-ç ‹ú-ê·¨ì×V&¢LD™ÆÈÔ0 `€0yÌ´\AH÷ý´ï§}?5ÿuz:èé §$€­Ñ‘Fùg7ã|t?kc}‹˜F,pª¸¶¸¶x‡o:|Óá›ì¥*'TGm ˜0#`F~µbj8xzðôàé¦þKüÔw€úN}‡ùÇÑ–s…©³Rg¥Î’_¡Øä…'ÀÚ‘& ÈñÆ›ÒÇXÃ!ÀÖxÍÙ•_R~Iù%æ¼¥+ `¦ZxÖÆµnÓºMë6ÉKue­•µVÖ²ö»Û8`ã€ò·ÅïÇ&×: u@ë€õSÖOY?%Þ&Þ&ÞæÍø7ãߌÿ÷??ÿóó??;sç<ŽÖ ¾Sßê;,mTbi×¹lвAËKÔ‡0 `€Å ‡H[×5Û%Ú%Ú%æï½ì:¹ë䮓òo¯q»Æí·™"¡máY.-$-$-¤ApƒàÁÙ˳ª}UûªöÖ[¶o;½íô¶Ó¢C‹-:”¿?¹¿äþ’ûKtïÈ–#[Žl©Ï5ˆE uŸ­RïJ½+õ¦^ à ¾SßA}§¾ÃF%–vJ?§nÔ±QÇFÓ{§÷NïÍÓ`H“XÜpˆ°u]ó¨ £*Œª ÿÿ÷Ûkl¯±æ¹Â!g‡œrVÿk#)XÛÊ'o”Þ ÐÊ2‰ Ó›o6¾ÙXüddÂ×¾žðµ<¥_-ÆÐÃC=¬ô=ÖôXÓcM®¿½¸¶¸¶¸î{ËQáPê;õÔwê;õÝ’G%Œ¡ÀXÚñÒÑKG/mø²†Ô‹?»ýÙíÏnD;¬õúê;õún-£˼ڬ*YU²ª0’ &$€I°Jb‡’­5·ÖÜZslØØ°±ažç=Ï{ž“ÑbÏ›2e"ÊDÔ¼XóbÍ‹ŽG:øÉÀO~òë£_ýúèÎå;—ï\¦$-s8dº†Ø Jã®q׸‹!w»øvñíâEä”ÝSvOÙ=u×]\w±{1÷bîÅ=ôtÐÓÍ›=6{$]Jº”t)¿îúBÂ…„ ã§Ÿ6~š{¦{¦{fýñõÇ×/®Ùî=»÷ìÞsç<ÎyÜè"£‹Œ."Þ|5Ï“ÒýoIJf¦‹¢ÀíÛ·Ë¿÷˺_Öý²®ù§{Ä“Z2Éü%óE›Ó: u@ëcâúÿ{j‰v‰v‰M´M´M´Ÿ‡þyøwÞßyç-ž]†k†k†«á×sr’®Ò_‰òÍš4ƒ:u ²omßÚ¾µx«[Ü‹huELžir¦É™&ÖÒ¶XÎu¾(ñ¢Ä‹맬Ÿ²~Šˆ–6.m\Ú¸ÔÞ]{wíÝÙ[$ñŽËÀ·ß|»aÔ†QF‰¿5ÏuŠ6G^’ß—ÿ¾ü÷å-ù¿2Ö2AÜá›ßtøFé»t×VýXvbÙ‰eJßÒ©g§žzÒ3õ¢¾SßA}§¾Sß­eÆÃ’¯yÒç“>Ÿô¹üš½Žxñ:Â3`]H“`5’÷$ïIÞ#¦› Ú•,T²PÉBâÿ¾UèV¡[…ô¹†ÉN“&;)s÷ÝvÈÛ݉ĤÒòMÂà›ƒo¾iH†Œ 2FéübϤ¼ `tcòyX^\[\[|ݦu›Öm?0üD4w(¿G‘à ˜0#`†!W+öÄ2ÅÀ5ûÕ†'‡'‡'ËÿWñS S tÅ"TJWV#¬FXÜ–yÞ¢KüÅã¹ÇsçÆöß7ÿ¾ù÷͆,·¥ÿ½¿Šxñ*"huÐê Õ†\óÕ‰W'^h™S-–0á"ÊyJ)u¦Ô1Vœ$ÞI¼“xÇW{Öî¬ÝY;¥ï^½>z½%÷N85âÔ¿¢¹û˜s‚øyÕçUŸWUú–ê%ª—¨^Âhߨs¿@Š„µ£¾SßA}§¾Sß-5&€Åšy€:& À œuþÕùWÙ—š4® ³+Ì®0[ŸŽìÑ+G¯½¢tžq«Æ­·*o÷Õ/ª_T?Ý×Yg]uuÖÒáV:³þ):ëJ‹·xÑ¸× öÂOÍXOAžBkÔ±QÇF ¿ÚªöUí«ÚÇ̉™3Ǹ‘“ý‰˜!è}óöÍÛ7/‡ÅŸß³{Ïî=}ÞN6äÚDÊÍðô¼þD<›"Þ®÷½Þ÷z_±R‚á×)Þ[Íߩ˜°ÉÔì-¹±Ô:VëX­cb?<ã^ó×7¾¾ñõ ù76»ÕìV³[,Ôo8±ƒ²Ò·ˆµŒû,‰PߩSß‘¿Qg½W.Vàãɰ$€I°húüöÐXÄÒ¦º»ãâ=]¥3´ü½åï-ÏÛ.øhÁG >2Ý[°â-g¥³u­ÔµR×JjJ?mó´ÍÓ6bé]ÓÅL×*®U\sûDô9sã*«4®bÜ«m~¡ù…æò¶°°þOD÷4‡qÛ‡àéÁÓƒ§ë³Ÿ–që”xÿ[,¸mcFÛwnß¹½ø¿åÇ[þ¾m`i“_b‰?SGˆØþÀX÷¨{0Qû ÚT)¢Hì̧ô-³§Îž:{ªqïnÖ/³~™õ‹Ò7®¬µ²ÖÊZô?QpP߉Pß©ï0ÔYþ•+­ %~ ÏO X À$€X¨ôÞé½Ó{ë“bùtѧ‹>]´qÀÆ\Œ¾}1úå{/ß{ùžØ±U,P¹¥Ù–f[š‰+uŸMì¿(&¾Í9tì¾£ûŽî;ô9󪲫ʮ*›Û󯹺æêš«Jç\thÑ¡E‡ 6+ýÕÛœ?ºÏ¦ôWº¯P¼‡*vöÕ}~ïÞ;½w†.]º\$ÈÅÞÒâÿÞ?yÿäý“E*1û‚ár5n׸]ã¶þÏ=·Iñ>ëOƒüÓ`ñoÊâ”Å)‹Å.­;cvÆìŒÑ'¶ ‰OýϦô–¼q‚íƒÒõHM¥¦RSÓÕÙÑé£ÓG§ë>›ˆ 197rnäÜ[I·’n%½ÿfü›ñâ —N\:q鄨aZüCw¤åíjó–J å‰eíï/¹¿äþQ;Ärâ¢ræ2Ìe˜îó˜npS´T¦ðhø£á†ëSæ"¶§lOÙžr÷øÝãw‹¥¿ö&ìMØ»ãþŽû;îw{ÖíY·gú¼ñoøŠ¸Uú–åí–·[Þ® MÕ™"Š”Þ±Ä~ÏÆ½»~þçç~VúÆo|»àÛôBQpP߉Pß©ï0ÔYþ•/´lвA¼SÀÚ‘& ÀBéÀˆwËDZ×té¥3¬N]º:ÕX]a}ÎÍ.o;ëÞ×3Ö7Ö7Ö×ðÒ3î W.Þ&×çÌ]tiÐ¥åLð™óJzöì¨t%¥/•¾TúÒ_ÿzø×ÃܶHºã¤×Ø^c{5äÊ¿óþÎû;ï‚9écÎ b_g_g_g¥o H÷îtofá—á—á—A/õõúóGå_ù™&gšœi¢týß—ÿ¾ü÷åy¾, `À,Tö}q”MÊc×YT™˜øV:Á½îýs勵ïŒê9b‡cý“4yÛ XélMŠ7)Þ¤¸±Þ^5î <·gï)ê>gnS¿Ù‰E\E’L~æšk^¬yÑðe´…†½öjØK¤[ªõÇ×_¼q6¡ÿ¿ï/Þ> :|èð¡òóðá3ÂÇt à°a5Âj(!ûº¦›œÊ¾º±¦º„¥£—Ž^:ÚuÙü“–p º§á„ܦ~ÍYæîÅÜ‹¹“Ÿ­ü’òKÊ/!l¬ïríàÚÁµƒÒ·ÄU«Wݸw'ÞãWúƶ•ÛVn[™·:PpPߩSßaþ¨³ü+×½æ–XŒç Àò‘& ÀB‰˜RwóÊÒ+K¯,5äü|ÿÇ÷|¯tþ>=úôèÓ#o]y‡Féß­_¼bñŠÅ+äçiÿCûÚÿ`øU÷Ppܪq«Æ­2Ö°Ù¸ƒðÜžmæÊ™+g®Ô½ª©“sÆJo+³­Ì¶2y»B±l¯q—äÍíýŠ_µ+½ïhÈSн·Æ]ã®q7ÝtÏ’ùKæ/™¯t†_ÊýRî—r†·~×¾¸öŵ/t¿3jܰxC×ç¢Ï›ßú,ánž >ó\ÃÀ·ß|«û]|S·HCÎ9;älnÏ)v¹V:§ÏZŸµ>kI뻚h›h›(~cÞ~¤Ûã>û<î£ôb·x&ˆQpPߩSßaþ¨³öëϯ~ ·H“`¡t/nù¢Ä‹/Jrþx›x›x›©i9Ä"¨ºÏ0õã©OýØðdßOû~Ú÷S¥ á;¯þpõ‡«?Ô·TC†ÍÆ„ë}–¢êÕ/ªŸá‘)Σô-kO­=µö”!wÛÈ]ï{½ïõ¾æÜGVþïÅ.Ú¦˜^)^ý6îtÏ7[¿ÙúÍVñ¤üs¾ðùÂç ¡ùÓ{AocMun{ºí鶆_ø¾yûæí›§ô-åBË…– 5Ï4Aþ&€Ÿ9ÿKì$mÜ2?\úpéÃ¥•Î9qÈÄ!‡Ì©:SDQíݵw×Þ­ô-¯"^E¼Š0îÝ%ÞI¼“xǸ«DÔwê;@}§¾Cÿ¨³–ë»G³0ëE˜0 U­jµªÕª*u1Åî¿ù{…Ç7ßp|ƒÒ®¹ºæêš«ï8…ÞiCvÿR~Û ¶l'˜:hž³qjÄ©Jçiú¢é‹¦/Œ58Ñý¦£ r×â'†\¡îwdÍ“ÖýW~EýŠúÍÛ݉%Öõ_üÙüÓ=†KYœ²8e±yÀÆ}@ŸÄAHïŒÙ³3FéÛ[´h`Ü+1n™ÿõ[ÔoQº— /˜Su¦ˆ¢ŠÃ+¯8\é[Äâ{ƽ;Ý úUµ¯j_Õžé<Ôwê;¨ïÔw˜?ê¬åú•Ö«ÄúXz}ôzk™zHº”t)é’¥Mpr¥¿I&ý¯aT…QFUŸç‹î_tÿ¢»%'€Å»Ëâq‘<[6hÙ eƒÄŽÂzvêÙ©§îEïM—?1îý^H¸p!AéÇ9sgê2Ïß°Ó.§]N»”¾=Ö7Ö7Ö׸ߨ´žDÞÊ<û²ùrgíÎÚµ+˜Su¦ˆ¢ZÇj«uLé[D_ȸw÷ò½—ï½|Oék^¬y±æEù=ÚÀ”¡±ÊúN}§¾Sß©ïÔwëŠUkOŸn{ºíé¶JwáxÔñ¨ãQ~XÀ’‘& À¢]Œ¾}1:ûpÅpâÝ⫯N¼:Ñð+|8áá„‡Š¿íÕ½W¢þà ¥£{'àŸ üdà'ÆMÀXf¸a¯†½öR:Ï“ÎO:?él-©c-f9 àËN,;±LþWÙFÓ}Ýû.‹“ówºG\áÉI''œ4ãôŒÓ3Nþyøçá–<é <¯ú¼êóªÆpÝ­bƒàÁ ‚ÕξD¿yÊ\´rÆ*óì+Xä°JA¡[…nRwßÜÄ«4®Ò¸Š9ÿû¥»†f¿žÜ– H‘¢¾ƒ2¤¾S߉U}JØZzÅqÕãªÇUWº‹z³êͪ7‹0KF˜0+ 3b™ß’…J*Yȸ÷ÙSgO=Õßá*¹w`ïÀÞò/Þ”k¢m¢m¢•w ÅrÍò¯{'`¥«2d×OËLWê]©w¥ÞJç1ÿÂàæ,CóLprÂOOO–ÿUö·fÍ?Ý“¼'yOò±£­q[¤ìK´™:œÞ;½wzoãF¸XqAé+wªÜ©r'u'€Ë/)¿¤üs–¹îEÿ²·úœM÷¢…¦xgÅÒ˜s‚Øe˜Ë0—aJßbŠwôu¿/Þ: u@ë&ˆI‘¢¾ƒúN}§¾ƒð‹/J¼(‘¿#;0 `À¬rZv²Ód§ÉNÍ/4¿Ðü‚% ;§ÇN+?OUûªöUíåçTZ8Zi1Ûn7Ün¸éͺ‡âLKH«ël¥/•¾Tú’Òyļ֒Z°Ì Ó };u ê¤ûoÅ®Øò¿>tøÐáCÍŸ iÝoyêC¤ÙÚ¸´qiã´:huÐê­5·ÖÜZÓ<“¦KFŠs*}c™ˆ2e"H÷ÅÒÆ*óìoç[~‹jþø1nu{ÖíY·gJßþ~øûáï÷î”öSº4èÒ K&ˆI‘¢¾ƒúN}§¾ƒ°îQF©»¥î–ºK€%#L€J¦h¼YðfÁ±«¨î·—L1øK¿ê¶1!cBÆÈÿMèòÐå¡Ës;xï,v•ÿKýߘ4OZÅXgÓ½HøËÄ—‰/­%µ`™†Ÿ'rnäÜȹò¿Õ½´îÅŸö?Øÿ`s–†>5=;±(Vÿúýë÷¯¿ðúÂë ¯KM¥¦RS}¾×< `S,Gü´ÍÓ6OÛ(}£ÒdÖXË”˜ ègÏž9(}cö%õ9[ößòˉï*8½ SGѸUãV[¥ô-ë6­Û´n“qïîïƒüû Ò7Ž 66Œ& æh‚úPß©ï0OÔYËõëeTq­âZÅ•0KF˜0•w²‹ú-ê·¨^c{í5VÿÄpÙ=e÷”Ý£GVwšjÁG >Zð‘þƒÏÜä;‹å²åÿrÐÓAO=U_X÷»à·ïÞ¾{û®µL=Xæ‡ÎS\[\[<·ç9zåè•£W ÿ)ƒá¥!ÞÚ¬»¸î⺊‹‹d¶Ø{ûò¾Ëû.ï3]í0Ö½›b:±ÃºÒ7:u<êxTÝ `§]N»œv)}»XÑÁ¸ß¨{•ˆì×£ÏÙ²ïæ%ëëë[0§êLEvû³ÛŸÝ”¾E¬/bÜ»û”+}£ø=IÌQõ ¾Sßaž¨³–ë=¥»hÜ ¸A0 `–Œ0 `´ó}·]%ß.øvÁ· ïÜ‹ Ä¿¹÷Ͻîý“·®³ÒÂÑÿg'`i¶~þçç~6ݰ9¿ÎÖá›ßtøFé<‡ºêz¨«µL=X懱Î3~Úøiã§ÉÏÐþ‡ö?´ÿAþïÇœsfÌù¿Ïþ½yJC÷oêEê÷ÀÈ#Œ4Ös4Ox{Êö”í)Æð-Ͷ4ÛÒLé³×Vk¯eJ:·ïܾs{¥oß}`÷ÝŒû»Nî:¹ë¤Ò7Š…Öõ¿wÝ ì¨~Qý¢úÌ©:SD‘Òç‚_Q¿¢~E{w✊‹R&‡'‡'ÓcDÁPßê;õæ‰:k¹þS#N85Bé.ZþÞò÷–¿“`ÉH“P@¥…¤…¤…èþµø»Åß-þÖÿœbgùy²¿y¼qÀÆÈÿMàöÀíÛuwo%ÝJº•¤ûšåïþ/AU¨d¡’… ïš[fxÒç“>Ÿô¹ÒyæyÎóœçiÜøo–»gþÿ‘ø1gšg‚ÃÔ‹¥Ëã3«JV•¬*Jß(R­æ, ÿ8ÿ8ÿ8¥¿¹ræÊ™+-ó ê>ÃÔ§~<õcãÖŽ‰C&™8DéÅÿš_S-晞»ÔëŽã~ã[~Üòã¥o-¤þgû<üóðÏÕζòþÉû'Ì©:SDÑ«ˆW¯"Ì´°žÎŸˆ™gn€úN}¨ïÔw¢ÎZ®ß¼}óöÍSº‹kz¬é±†è`ÉH“`qÄi³§æü Nc}׿]þíòo¥îl¥Þ•zWê­wöqŸÇ}÷Ñ=¤]dt‘ÑEäÿÿÕ®þpõ‡† !ÄNÀKæ/™¿d¾ümß.¾]¼ZÀ;î︿ã¾Òy<Ï{ž÷_ø|ac=;}~êa¬°x×Óh£¸¶¸¶x£Ž:6ê¨ô[kn­¹µfþNð™ç¿bJßÞÆ¥Kã~cë€Ö­Œõž·Ò›ú‚î½êÕ=Ugº(2Ï7FìØ±_÷ÛHLá¡ ¡¾ ¾Sßaþ¨³–ëûU+ÝÅ„¯'|=ákž2KF˜0‹36llØØ0Å÷ÕÒ¦¦MM3Öw%]Jº”tÉX `Ý]|ñÖ—ÒÒšú直{'àÞ½{Êÿ×9_ÍùjÎW¦Äæ×Ùž9÷ä=É{’÷ëÙé^BÙ¸ `ãÆžÔTj*5U:©»¥î–ºkž)üM?éü¤ó“Îæ)óK'.¸t¸e®{׺E‡Zt¨`NÕ™.Š”~¼¥ÿYôñE÷/ºÑ]é[–Ž^:zéhz¡(h¨ïõúóGµ\¿XùLé.–·[Þny;ž2KF˜0‹³àÍ‚7 Þ(u1•ö Í›ËN,;±L÷йí +-Å©”ú­u¬Ö±ZÇôÿ–õSÖOY?E~žÚ»k﮽ÛÔo(ZfXŸ³‰Ô¸á%0ãôŒÓ3N+¾i÷Áö¶`λ6χq¯Yì!ª{!hã.?kxiؽg÷žÝ{J{1úbôÅhßšXE a¯†½ö2g¸k¥®•ºV2äÊŒݺßC ˜0#`FAH›³EÒ½\s¿VýZõk•Û»Vª¡Ù×±(˜Su¦‹¢{ÿÜûçÞ?e÷”ÝSvü»²ÿ%oç¿sùÎå;—•îE|¯øy½P4Ôw€úN}‡ù£ÎZ®_i;A¬¨ÇS`ÉH“`qN·=Ýöt[ó ϲ¿M(7²åÈ–#[æö»t/+-7𓟠üDÿoÃHýÏŸ=1lêa³qÏ&RJúŸMiYcEÎ…„ ”ÎYqxÅá‡ës~Àº‚Vz‹=o‹?«4\;¸vpí ô·s?›ûÙÜÏ y^â-v¯#^G¼Ž÷]›\ÊÛõëÞ‡;o;7[NK•7‡K.}¸´éÊ\l ûÌáÉáÉáɹ=szïôÞ齕Î)êBÁœª3uéþÆî;ºïè¾C´Ÿ¹=³ø[¥3g_y…^( ê;@}§¾ÃüQg-ׯ4 ®0»Âì ³‰.–0 `–GgrH¨»¸î⺋EÂ/·§SÛº÷8Ä.¤¹=¿H[êŸnY6hÙ eƒL1|²/ eêá«qÏ&Þ†4î9ÿÏ‚¨z³ÅûÓÍn5»Õì–î%¾Iëoâ‰C&Ñ?’‡ý:ì×a¿æWøûòß—ÿ¾¼Òß–‰(Q&"o×v°ÿÁþû7nÜ ØÉZýÏVúRéK¥/éæ·ÞvzÛiJ)u¦ÔÑ}f_g_g_gËyûÖ&}²¿™‘Û«Ò'õÛsaÏ…=r¿–°”·¥MÕ™:Šö&ìMØ«ôžPn •Ù(³Qf#ÝËBŠwÌ~0ûÁlºŸ(˜¨ïõúóGå_ùëu¯×½^g9ã;ÈÀ$€X¨Õ©«SW§ê e_06tyèòÐåb'ÝW¯"^E¤…¤…¤…ÜJº•t+)bÄþˆý"EWg]uuÖé>󠧃žzjŠ©s¹èõÑë£×çöüº—âù?‹§lOÙžbža³qÏ&v}ùÞË÷^¾'ž¦xûY÷9ŸW}^õyU}žröȹUèV¡[…Rg¥ÎJ%†èw»Æ]Ÿ d_°×üehž S\snß•ß7oß¼}óò«4®÷½Þ÷zßì)ÒZ¤¤’I%“þ÷æåûá/Úñ£™b±èß7ÿ¾ù÷Íî™î™î™º'nt_s\õ¸êqÕuOÙ`ïŸ{ÿÜûçà '<œðfü›ñoÆÇÛÄÛÄÛˆ¤Ë0—a.ÃtŸAÜÅÍÆ7ßll9|æ¼±ì^ö÷×uÛ³3fgŒhëDäˆÿ[´ä]tiÐ¥î3ˆåÊÅS3äÊÅÎñ–S’–?¦¾wýkè¶2ÛÊl+s÷øÝãw‹*Ú„u›ÖmZ·Éyœó8çqºÏ vncòõ ¾SßaþçnùW.^‡PºþŸÿ4ø§Á<_–0 `*·ïÑ‹XâæE‰%^”0äú7ŒÚ0jÃ(}¦éó6ØZskÍ­5û>ŸáWÓ ƒsû]ç_uþUÛ5n׸mºh©Ü©r§Ê.ﻼïò¾ü*CóLp˜äšõx×_¨âZŵЫ©aêˆÕ‡XH\ì$Û¿ÝqÇý÷s{ÍÙß\7.Ñþì:¹ë䮓–öÞm~MýTê]©w¥Þ¦‹QS"çFΜkø^Yzeé•¥$€óëÞMÝÚ|}ãë_ß`j ¾Ôwê;ÌÿÄ-ÿÊ}ôë£_)]Ìœ˜91sx¾, `À,ZÊâ”Å)‹Í“úý<üóðÏÃï$ÞI¼cø•‹=ucö½Ns{~±<²îównß¹}çö–œþÎû;ïï¼M‘Î~µ«4®ÒØÈ?&oýf߯:¿ÊÐ<¦»f}b huÐê Õ–K®™¢ýiñw‹¿[ü-ÖÿŸM~›ü6ù™:lŠ©(Û ¶l'ˆëÉß„«¥M¸ˆo¯y±æÅš[æb[±X½yZ’þõû×ï_¿ MÕ™3ŠtïÄlˆo|»àÛL Ôw€úN}G~Eå_¹èí˯Üñ¨ãQÇ£DkA˜0kíMÁFulÔÑXä¶•ÛVn[Ùtï¨éþöE‡ZtÈtç_x}áõ…×ÍyG¹=›XrÙt `ù·T˜]av…ÙyûF±˜­øUµXÎ×ÊÐ<¦»æ3MÎ49ÓDŸ…ˆ-hº'[‹¤ÿÒ¾r"¨¸D›ÞoHžÎþ/›oR¼Iñ¼Ý‘œœœXøÚR­–9áò2ñeâËÄ _OøzÂ×ÙwÎ-±“ÜÔ§~<õc±ñ)®vzìôØé±òoϾÌ~Á™ªË¯(ߘ·Â‡Fy`ä‘LØÔw€úN}GþFµÌ¿ÉÍ8=ãôŒÓ?kD˜0@›t`ÜÚž²=e{Š<ŠúôèÓ£OÊÐg,f™W+zõò«Ýur×É]'yš¬ `ÀnÒ0r­¸¶¸¶¸<ŠÊî)»§ì" Ðg,fi×ù¢Ä‹/Jȯ³K—6.ôóX/À$€ ܤÃxäMøûáODy‹YÚuÎ\9såÌ•òë OOOæ9°^$€I¸IÒu0n\UîT¹SåNÏž9}ÎäÓçl>}ÎåÓç|>}.äÓçb>}.åÓç²Ù?Ñùô¹’OŸ˜|ú\ͧϵ|ú\ϧOl>}näÓçf>}âòéŸOŸ[fÿÜΧÏ|úÜͧOB>}îåÓç~>}äÓça>}åÓçq>}žäÓçi>}ž™ýó<Ÿ>/òéó2Ÿ>‰ùôIʧϫ|ú$çÓçu>}Rò铚OŸ7ùôI˧Oz>}Þšý“‘OŸÌ|údåÓG›?Ÿˆ÷òéS(Ÿ>…óéóS}H€j‘•PmXà(8T›~ÒõI×']E˜ìs<Ÿ>ìIÌnÄìFlù»œ}ˆ ÎÄgïáËùô)8{œ]‡ Î~Ãg§aöVßîÂùµÇpÁÙ]˜}…ÙQ˜½„ÙE˜]„ókႳ0;³g0»³O0ûç×>ÁìÌÞÀ¿+ð“áO†?®Ú7€¦@T‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€JŒ 2%2%2%¢NDˆ:‘‘‘” ¬Ý©™§fžšÑ3¢gDÏÈz‘õ"ëQ&°v§[œnqºEĬˆY³N¤H;‘¦×Ækã)X¯s7ÏÝâQÄ£ˆG'–žXzbi¦M¦M¦ %c\¢­í†hCD{BÉÀŠÅkãµñ¢'ú{¢ïGÁÀÚ‰ñ¸›‹q:eôAÈÁ³Ï:<ë ¢¢òmà·ßÖ]]wuÝÕ6«ösµŸ«ý<êÆ¨£nìm½·õÞÖf?šýh6eS{ññ‹_||¸ßá~‡ûMò›ä7ɯQûFíµ7<ª+M©4¥Ò”ïxÄû»Ší*¶«Øƒ™f>`P “{¹óåΗ;Ž9:æè˜ï§~?õû©Mî4¹ÓäŽáQ]>¨|Pù àjÁÕ‚«m;»íì¶³÷FÝuoeSKêšÔ5©ëñŽÿsüŸ+g¬œ±Òi´Óh§Ñ†Gui¯Ò^¥½†Úµj¿yÊæ)›§Ümw·ÝÝv”9L-¹Frä'Oœ¿¢zÚÇÓ>žöñõ=×÷\ßÃs!’’’vTÞQyGe//¯üŠêIm&µ™Ô&Æ-Æ-ÆM­¥-ꬨ¿ùU΢íí˜hÓ¨0„è_‰¾V~EµègŠ>§èò\`1ãâüŠj1' æÄ\ÏŒKÞöFü'â?ÿ¡d¿H£àù[û·öïÓëO¯?½Þ7Ì7Ì7ÌÆ"¹w-îZü¨ïQߣ¾Y=³zfõäÑAÑKíKíË S.L¹0¥‡wïÞ–ÕÍî7»ßì¾TUª*UÍìžÙ=³;º])¥ü•òý—ô_Ò‰eFuý9õçÔŸ³ïÀ¾ûd”Í(›Q–§Ý®}ýëë_í Ú´Ë2£ºúªê«ª¯ÚYmgµÕÒÿHÿ#ýžt‹û5î׸_¿\öå²/—YfT—ŸW~^ùy›»n뛸7qo⬱œE}uSÔSË,mѾ‰¶ŽÚÝDßIô£DŸÊ2£ZôEE¿”§ÝÄ8WŒyÅø×2£Z̈91ŸÀ³C†e"Œ$jLÔ˜¨1W6^ÙxeÓWM+Ÿ(bÔÄæÔ^õÇGív8œÜѲsiÇ aÝš·\|,Âÿm«á »ýÝòú®!ï8¦þ9Í3³ñ±’Óü:çœc«­¶–·ïµ¶¶6*l”vŽvŽvOÂù÷οwþ=—Š.]*æ-ººTú¬Ü½çš-­ýþb¯vEo¯Öi££KØ¿ô–cŽýæÿ¨ÕªðÍÝ.·LÝýo{'§Î^5~ým?Ö l³ÆîãŠ} vîKÛ—¶/-ëRÖ¥¬KÜe¸ËðX›X›XžoÁô¨Ö£ZjõYØgaŸ…úGŽ[ºÝìŠCëúºiúí)ý‹µlܨ~Q}ˆ]»q{zø.w øµ¡Mõ¯s‘„Þæ°Ía[ôªèUÑ«x¾Ó³rÏÊ=+˜˜˜¤ä´¼Võ¶m±¿4>]›¤Çد†Û%ãFuRøÐ‰ží÷ÇwyÖ±ÿwö^v's‘ØXYce•çΞ;{î,Ï·`z¹á冗FeŒÊ•‘‹ý—T¶/²¢¹×ªÆÉ7þìÛÚíSãFuJÃÀp¯b¿-2†vnüeÍ ú_[¹–åZ–kyjå©•§Vò| ¦W7^Ýxuc¶ Û&lËÅJ ÍmG” ûã—v ®ÛöéÜf¯q£:Í-èž×áÃÛºk6¼PÓùµçvâûXñcÅ·´ÒuMÔ;ýïEÔkQÇE}7ni‹vI´Q¢½ÒÿÚD{(ÚFjSÁ$úE¢”‹·o¿³÷²;)úc¢ofܨ}HÑŸ}Ký¯Mô]E?–ç[0‰1¬Ïê9b¼,ÆÎbmܨã}1öóú_›˜gs<_Ð `X&ÀP£ÖÚÖÚÖ«®>¸ú ^š—êP2äŸëí7ë›5'8Î;Ѹoý;#;¯w¼\?Ðöû²§ô¹òùÎóç;glÉØ’±…Ç®rW´W´W6ôÛÐoC¿\¼ÝRÕgLS›Œ‰Á¶Þó+ª÷½é²¤Å{ÍŽUÎ(ÿ@Ÿkþ¡Ï}~è“~(ýPú!{A°cÉŽ%;r±¼órG/÷ÆÓV+â_Q­yë7¶eÖO«Úêõÿ‰e&–™XæM÷7Ýß°ìyp ø@ð`ý£zq%t‡^)Ewy}˜_Q}伿G+g¯øš+iõJä 5tÔÐד_O~=™'^„Ÿ?~^ÿ¨þ%ºíßž'F­éY:¿¢úĸÏ2œ}|WÔɨòF¯Ôi§¡†vJjžÔ<©y~•³¨S¢~éõ&b|̓•´¢þæW9‹¶K´cúGˆh'©Yèÿˆ¾>±!úW¢¯•_Q-ú™¢Ï™‹5`–ìX²c O¼ cU1nÕk%¹c•3Ê?ãâüŠj1' æô'æÄ\Ït# ËDªòâ÷¿¿ø½Ó³NÏ:=ÓÝ‘mT§âå‚OØvÛ¹…öÃÿúϯŽxÇŒ`ïó-{®l=Ñã£+UÇÛBSšLi2åþªû«î¯"ÔçUW=^õxð$à‰îH°ó-7©ôëðÓÝnµÔfUÞã}Í‚¢ZâãsùV¯Þ®³;•¨óq•wLkÖ(Z£h¢·Cn‡Ü!Ô'eEÊŠ”_~øÅ;~ Ó¸T@ɯUìz¤ÅžÌ‚}½—YZT_ëÜç½6³?¿XSµ¥ºï¥tPé ÒA±ûb÷Åî#Ô'í§´ŸÒ~újÔW£¾¥Ï„ÚîXß/:¿Ý=ì¼wK‹ê›“úþâ6±¿Ÿ½£]˜>÷=;zv4KC«PF‘Œ"E¾Ký.õ»T}"ak@§BÍ/¥×æê•liQ}{DÿÛö6§ÉÚš—õ¹—³7ÏÞ<{Óœ¥-ê‘^oCúÙ;Ú…‰zjiå,Ú4Ѿés/¢Íí'5N}DŸGôtG‚èG‰>•¥Eµèо¨è—¾ãà/¿üBôu‰õãS1VÕ bÌ+Æ¿–Õb®@̈9„w¼¯ü$àIÀ1/A €À°L$€¡WO]=uU¯·f÷÷é¢iQÎÒºàºÇ—}¶ÑY¯_LGõŠêÕ‹xP‡øzñõâëéõ{s—Îe'ZWTÿ»¯{¢Ë¸J Ëô*õީ޶?Úþh{âARRR+…V ­úŽß›íйY”uEõ…)ZGÔc[»ìoïxó)ô@èPâA;=vzìÔ ¾A|ƒwìHúW²ÏЦj q÷±·–¨¾ò¢wUW­cr•3Þ1}¿}ìö±ÛÇêðüÎó;Ïï8/t^èüŽÍ&–žóìÛ¸qV§àHïk‰ê÷ýÀ­ŽG¹Ý*ÕÒ}w¡;Cw†î4ui‹º£ûJDõÑjþËøkˆ»½h÷tßh?E[JíSÑÏÑýÜEIô¬«¿'ú¨ºïNôuE¿—xP1&}Çs_X¦W©bœk]Q-æô™ysÄÈ‘†e" «wÂû„÷ oÝÔ1—ZÖùóuràf¯BÖÕÿ?¿©ß;ì¼w—Ù߸ÞkèõŽ÷Šzïî½»7±a½ÎúŸõ?ë¯û)ßoZ»V¤C‡xºXoTgž þÃ;ra=÷éößè¾ßßmünãwĆõŠŽˆŽˆŽÐý”ûýÒè©ÝÂç7†|Ün˜õFµÖ5ÄΧâŸ_{¦6ž¯û~W¿¿úýÕïÖëÆòËo,×ý”»«7¯ê“Çýâ1ÝŠ£úeÈÏ¿?ûÔ§éÝ÷»(qQâ¢DbÃzݹvçÚkºŸ²÷o53+×½?wÀs÷™VÕÚŸÍÿvÙ|‚îûã9Çsާö¥ö¥ö¥qK[ÔÝß.ꨃÖ[΢ í¡îûí*5Ñz‰¾î§,úH¢¿d½Q-ú«¢ïúŽu2"¢#¢#ˆ ë%Æ¡ºŸ²Ïб­õFµ˜[ó ïX'Ãÿ¬ÿYb²# ËDV,,*,*쿽=Ô£kL‹cÖ>9%?Fíîþ«‹ë;f1c6Æ'Ö%ò^ä½È{ºŸìΧ÷8ÞP_T_ØP¯õÙw$Ì>YýÉêOˆër¾Ûùn绽£½ú C`³kê‹ê«v½´yÇOv-]´tÑRâĺ\-~µøÕâïh¯ÖzßorP}QW¥ï¿n+m}KO+UGéÞgOŸ=}ötâĺÄWޝ_ùûUkçìð½6=d˜·š¢úîòþ1moÔ+R!³ì$¥{ŸtbÒ‰I'´‘ÚHm¤á¥-êˆÒw‰ú%êšúÚÑ6êŽ4ÑÆR+­‹èϼãÉÚõ^ÐÆK}Q-ú±ºï]ô‡‰ë"ÆžºŸ¬ê/ªÅœƒî{sÄ $€a™HÃ*E–ˆ,YâKÓÌêçïöR}ñÿókúzƒ>õèY¯•m‰²?*•îѻFïMÌX¾s'ÏŒÒsýÑRwT‹>­n¢oLÌX>1ÞTzŽb¬*Æ­êŽj1ÿ ;ªÅ<1$€a™HÃÊ\‹»w-N©ëYç“ mË~ô¼×à˜vÔÝÿ?“°ƒ/{Uôñ©å^ÙO©dNÙœ²9eCüX¦ÛÕnW»]MéÙ•I.y§dÃG#ö°/8Qö]P†×™î#ë'TÓ(•ÌáÿpøâÇ2=Xþ`ùƒw,{÷AÿWmŸœ¨~›9ì‰wÿ!/wªù¥2Ùã¸Çq#ñc™žuÖýYwÝQ}óDßn?œ¨Î¼¼ÚûôWÿ:~S§¶âûýÕ7VßXø±LI’:%u*é[Ò·¤¯bº¢Hïzm>(8Q­mRɧü÷ÿqTßN©LVvXÙae‡Ü–¶¨ JçõHÔ©‚SÚ¢ÍÔÝ®Š¶—Új™D¿EéÙ‰>èÿœ¨ý[ÝQ-úÉÄecL¥g'Ƨb¬Zp¢ZÌEˆy ¥’sÄ€‚Œ0, `X——^^zyI©»Y{f…âe%ý64ÄÓ­MQeO˜VÉë–Ox­‘•¿P*¥{ÞûðއĒåx=îõ¸×ãJUú«Ò_ÉŸWé»%¿³yö,iðövÍ fTgL ®è=©G÷­«)îw3öfìÍXbÉr¤y¤y¤yÔ™Wg^yJOíá_÷¸g̨Î|ÅûY kãÈš]÷Š»}-ú±d9233[]muµÕU¥§vç¯þÛ®-˜Q­]ÒÞ§Ù˜1N¥ë(®Gr¦Ä™gJK–#Ë/Ë/˯cÏŽ=;öTzj±I}2Üì hTkCB||¦¾u©R_ñmÝcûóØŸú”¶ˆ¥óˆº#êQÁ,gÑ~*•h{E;L͵¢¯¢ôÔD?Gôy fT‹¾®âÏÖçÕ™Wgžè3K–CŒ+•žš“ŠñiÁŒj1/!æ(r˜»øªôW¥¿óÄ€‚‰0, `XƒYÚYÚY~¶~¶~¶Š¿ 8xK»&yŠêoï |åÕ¨ADÅÂår(«†© S¦¾Mz›ô6‰°²ï¼?ð¾b’läÀ5êôÂüžº~U}IÅòòRª°¶ÂÚ kßD¿‰~MDY‚ѱ£cG+NÜiÙß¿í<¢:cIp-ïi¾½ëÜ­òH©¬’c’c’ÙÇÝ"L­7µÞÔzŠI²}¤6o‰ê¬1ÁW¼Ÿõ›Úè¾âR/R_¤¾H%¢,ÁüƒóÎW܇õÒꀻ®îDµvqH;‡wš­®]D©¬;=vzì¤TÎ"æ•þVÔQw(mÑ–*••h‡©¹–@ôO”ž”èÛˆ~Q-ú½Je%úÌD”%cI1®”?)1cR¢ZÌQ(Eµ˜ß ¢L$€a™Hà ¬+µ®ÔºRJ]̸ê}O»­¢#žýøäÓA;=þP*±9ç œ3¸Ê_;æì˜³cŽÒ3ºÐë¾ëM"9ûñeèíÎ*•ØÄºëN¬K\å/©œTN*§øþßÑ»]˜4ù?Ç×-=¯(-§6¼ððÂà Wù+r_ä¾È}JQÑï3ÇVgˆäìÇ7éA§½¶×ͪVv¼¼Ä’’’´YÚ,mÑ•_.Œ¼0òÂH¥¨>بkp‹ï‰äÿ³€ʰ‡Þ}]ZW‹°]’Ãþ¦)>)>)Ú Ú Ú ÿ§ ³´YÚ,óò¿uDÔJ8ûQ´«Jñ)Údjqþý¥mkD߆HÎ~}`¥¨ýgâ*‰±¤Ò3ãP"9ûQÌW(•˜˜ë ®4$€eïÖ½[÷ne8sýÌõ3׿hÿ¢ý‹ö”LÞ†E{0öÁØc•º•ût‰kÑηÒñtJ`—0ÅÝ®Å\‹a‰Ñ|ðìÒ³KÏ3ßÒ£ã_Í—½JÇè ½v»*FõÙåg—Ÿe?­|ðÊí•Û+7¥çòWeŸÒM˜ TÞñrßínóSŒÃ#†G 'ÆÌ/uWê®Ô]JÏeÑ'Nöwˆ^¥c‚v@÷FJ¥wÀë€×/bÌüÞ:¾u|ëXÖ¹¬sYgùs™YÝõ£Ñ«øóÊÏíõX¦Øk°¥Á–ÙK[Ĺҿu„RU:Š6V©ôDûL6?Ñ'QÜ–årßínó‰^¥£è+•žèKcæ'ÆŠÛ²\èµÛ5ŒèU:й ÅUú.=»ôì1 à l¸LÿLÿL¥ÿ² ÎÀ°h?üÃ~r_ŽmÞ¢öP:ÜúþÌmO£~ò2lfÛ̶™­ö¿ÚÿjÿK¤™Óp·ánÃsH•õ[Ûè•Ý"VŸãŸƒ=“ÿ$/Ã*AU‚ªe:d:d:iæ41}búÄtùéô N¯*¿k燴õašûÇõ3Û_i6]©››þYúgéŸiæôÓþŸöÿ´_þ,œÝ«ÙöÏr ÷¾EÜê>îóâä­Õ)R&¤L ÒÌié„¥–N?‹Ú[+T)“”ñá°çÞ‰[ÝÇð¢Ýþh©ø3¾Ä5‰k׈ØVú7¢^P’ïXRÞ%8Üû–hoåe(Úgj´9‰~ˆRT‹> qûŽãü¶>Dß8‡ÕŒÒ'¦OL'ÒÌ:Åìéé Æò'"ƛĭ>G1‘ÃjFnÃ݆ó³ `Ãe÷W7’Áú# u®Ú¹jçª)þBvÊÐ#žcèjëµl]ßaÛ¼]Êù–R2‡©¨E=P”x3«+¯®¼ºR)ªŸW|¤+«Ï136x…wTƒ×Ë”«%/ÉÍã7ß<žx3ÛnW¸]A)ªœ8Ìý«×qXHŸZnëí†WÌaeeÜʸ•qÄ›y<œûpîùJQ}kV¿m±z3C‚}|º «X5‡„Ù‚6 Ú,hC¼™ÇóÔç©Ïw¢½Ú©÷ê6¾D¬þÇ!MPãjûÔ.žºxêbÛòÿUÔQ/(C}Ž¢½UŠ[ÑVS»ÍCôCäOAô[D†ˆÕç(úÆJQ-úÕÄ›yˆ1£ü)ˆ1¦o±úÅ<†bcåÕ•WWo À† ]‘ܵÑÉ`ÝHÃò$k“µÉÎqÎqÎ9 2wùuŽu|E';·ÇS™Ý}]÷Qδϴϴ'ôLÍ÷¢ïEß‹òòܾL³bDin—bÞ¸vV|c²nzÝtv6¹{î¸W^þln÷Âá9QšÛã]}½Ü|ߘ,’R$¥Qgj_ÏûzÞ×óäå?'®Íˆ†¿¥¹^zá€fîe÷Õ»ñòÆËD©ÍðŸá?#‡¥´&–jùS½÷‰Ò\/=fÐQ¿lrIÔJ/·GÑöÊËS´ÕÔnS}¥¨ý¢4·GÑO–—§èWu¦&ƉJQ-ƘDinbNC^žb„¨P6.’ÁÆBç¢ÝE»‹vò l÷s¹ßʼŸ59øš÷ º×y;v¼RûU•žò²=”t(éP±g:±Äþû‡Òœ2ZòA|æqÉ©û¢v¡òRÝæ¼Íy›3±g: ÅŠ%SŠê7Ï‚"½¶Ÿy;ŽºÛüpí}9ì¦üWð_ÁÄžé< ~ü$X)ª“—6ôÜE|æí8õ’Kñú9,Ý¿pê© §{¦“¸6qmâZ¥¨~Ñnˆ}»)ÄgÞŽ v·Mµ·ÓgBÄ?%–·£h{•ÊV´ÛÔtÓ}yÉ‹¾ ñ™·£è'+þX¤XB±„bÄžéˆqb[2%ص %>óvsJQ-æCˆ=êFØtH‚0,NÀ£€Gä•6¼X·¥-/ѱ6ä=¹×ï®›äeÛ8½qzãtm†6C›AšÂ»¾ØõESW»vù¾çT„È4ä·°oŠÛyÙÚ^¶½l{Yë¡õÐz¦0¹ÿäþ“sØ™/´Ý§YMµD¦!Çû ¼tŸ¥¸fàÌA™ƒˆ@SøùñÏ~,/ó%ÚýîÀ4·AÇgãOoWNq͆Þé½Ó{¦°¢çŠž+røñß슮Ç6&2 9¾òºÙ3HŸ©ÿ”˜!GÑËËV´ÛÔtSý ¥¨}"Ó 7&Û}šÕ4‡ÉbÑÇ&MÂCë¡õãDyÉ‹q%‘iÈQÌoÈËV̇€Ô°y Î-À° Ï+=¯ô¼’â”wXðBïºÔ†6U-Yá—<§âNÅ"+¹Pr¡äBŠSÞ/†Íô¶#&ðv{PíSUÜä%Ý/º_t?âиÞ|sðÍA¥¨N-dãåFL~ì_ؾ¼Ýfy GEDEDE‡Æ•ááá­Õ‰¯‡6ö¬HL~=µyZíëòË Ë Ë"+ë﬿³þV|o2jÐ]=ĤáÇiq._ÕT*gó”’áGÑ+®¦ãááM­7.Ñß—¶èŸ“†EŸYq5ƒo¾9H—ÊK[Œ%‰IÃb~Cq5BÉ…’ ‡Ôаù‘ Ö `XÐæ¡ÍC›Ë«åªâÞ~MЙ6ÖñàŸ]¶Èa9♣gŽž9š84®ÝŸîþt÷§òÒþå—¶?5Š'u<±þóÎÝäå<öèØ£c‡Æu¤Þ‘zGêÉK{Êcç€ú•‰Fc/üPµõIy9.<¸ðàÂÄ¡qŽ9s:F^Ú#«5ÛW»<Ñh¬c¬_Ÿð6òrîR·KÝ.ìÚnd1þ1þ19ìûÛÛ¾á†êçˆFcï>éŸÜö¹â¢—~}ÂÛdPJÆ:Š6Y^΢ §Ö—èoÈK[ôOˆFcEÿY^΢¿M—ÊK[Œ%‰FcÅ\‡¼œÅÜq@­Hç/’ÁJHÂ4ïܼsóÎòªøtúàºñæì°.:äñ­Ã'ÿ›¸ñís¸Í[CÎÕ¯ûh—zCÎ6n[#£þxÛ™eÏ”ÝSªAÉžõfÙ6*»dðM‡{5ŽŸœô¹ä|ÈL¿5Þä兩`]Öë¬×Y¯‰Fciÿ¸ýãö9,(z¯î€áîNDµ±Žog;ìí©ø^HxFxF8Ñh,ý¾í÷m¿oåå|cUß6ní‰jc³‚5Þ7•¢:Í?Í?ÍŸh4–ÑQ££FGÉËùâ“€Õ®å‰j£ׇtðiVqIé·¥¾Êá½MÉ›’7Æ2=azÂôy9Ÿ,òùB翈jã›:W)?_^ÚÏ'¾ÛÎÒ6ÖQ´É9¼i5:jtµÞXDCq´è¬ñ¾ITë(úÏ9ìGûm¿oû}K4‹*EµKÕÆ:йy9‹¹¢€Z‘¶$ƒ³# ‹˜ž˜ž˜.¯x-bªN«`Þ}‹‡”ð±qíP}vÅâÙ¯$og›¹ÒµEƒk% Ù ·ñѧ¡ùqKë ÖšçNq¨\£“üîn½»õîVbÒp©ž©ž©9¤$«+÷~é-ÚW!>žDµqcn;µ®³B~ ×7]ßt¤‚¼õ}ëûÖWéYkÿRÔ§QmÜãë[_o°F~ çC·œ!& —U!«BVÅŸÜv÷^HT÷¸¸i»Â9ì ñ(âQÄ#bÒBµ¡ÚPÅŸÌVØëQmÜ㺙Ÿîo-¿†ý ºlhQ”Ò6ÖQ´ÉŠ‰É Y²*ÐNô1rxÊë[_o°†±¹‘ÿ )êSL11éûÖ÷­/1i81”—°?ÕF>¾ ôñó9lä™ê™êILPÀ–‰d0 `X„%O”hu“Î5W‰î¾’Àí_Õüßï¬Åߊó˜®;þtÇ`gGò+Xj`©¥ˆIÃ-ÎXœ±8‡/– èÚú>QmŠã«¢C{ö’_I'§NNœˆIÃ…jB5¡9 ãOlþÜÆÙŸ¨6Åñ]Ð$¯ïåWâdãdãdCLnãÇ=Žò>X¸k¯ãˆj“,ÚŸ<ì¡w_ù•TYWe]•uĤᎠ<(/áÍå:6hÞ¨6É¢ý?ßð~©x¿ CÜ}ì)mcEû,¿ÑžÓNô1äDŸ„6ÄGÑ—–_‰è{“†ãAy ‹ñ#Qm’EûKtm}_~%bž„˜ >$€­KÁI“†Ep9ãrÆåL‹ÔÙÅ{™ä]É5W}4uÑ¿zëæ½v)ë´CüUéK%¿µyü´ÍàbçtŸ'û¿7|! ½&ªÒB>ò)ªx¿±ÚXm,‘i?ŸÆ/‡TYr¿À2žëˆjÓ-6UjGÉOlrøwÖò¬åYˉLC 80‡=½ŸkçMT›îØ`›mz¹29,P\2£dFI"ÓãŽ?8>‡÷Úïßh㾌¨6ÝÑcXÑ•Zä`p}ãúÆ•È4ÄO':ùÓIyÙÆ¹õq %ªMwìÓà‹êÅsH0TºÜ³/¥m¬£hŸåw*ÚsZCˆ~…¼lE?ÄtÏ”¨}é’v$2 !Æ€ò²cFÓmÌDT‹yùŠy"€ú¶^êN“†…6‘Uç–[º‡é:£—÷õêäúý‚Úîk”.?Òÿê‰ã´:Ä_ußQ?«Ú¿úŸ!û7~}Ãñz“/ݹm U6ä°/Ë¥ÔK©,Ãhä¨þ_$ìñõq"ªMwTßÁ³Æùý&ýœôsÒÏD¦!ª©v¤Ú‘’ëƒ5Þ7‰jÓÇžtúµÎEùý>I’þ$È4DËŽ-;¶ì˜Ã®{†m÷v!ªMwœUÉ5°AJ‹¸Ú&Ø&Ø™†ðé;Ówf½;¯ ú^¾DµéŽÔj§q8'¿ßëú,ksÒ6Ú*†m÷Î!­"ÚsZCˆ~…¼lE?„±¹ œÝ8Xã}S~§¢ïMdBŒåe+ÆŒDµ ÿ˸;Ä×ÇI9á êŸ&lÔ— & m"û»Ø7´;`¦½Xtv‹sÛ÷Y[kpåÿ-»÷g7Ï'géÿ·Ëy.lì'þ¶Ã7µGWùØÔwúÃÞÖS|!¿ßiÒ¤™ÆêÕö©ü‚¨6õþ®õxéð™ü~ãĈ@d7ª›Í¬|¯ü5¢ÚÔwº.íÓ»M_Èï7zLô˜è1D¦q£ºâ¾2•OT›úNw‡úövr—ßoT«¨VQ­ˆLC”\RrIÉ%9ÄÒšŸ¦DµéŽG?ðïÞ*‡wø¤Í~{[v¤´{m5Iãý y©Š~ÿe4õŠ~5Qm\b (/U1f$ªM}§b„¨P0çH[;u$ƒIÃB›ÈÙ\µ ­²;^wq…‹e‰¿ÚÓy«cŒþ»ã~çÏÿ[¼í̲gL½,φé›Ê!©ðoô¿Ñÿ™Æêq}[Ô«kOT›:ª÷=ïò›SVI……Q £™ÆêÁ[.×8DT›:ªòÙØVÉòû û(죰ˆLãFµï¶º…«dÕ¦ŽêóÑ=¯µ^)¿ßíõ·×ß^ŸÈ4nT·Xuw…$¢ÚÔQÛµOx› ùý®Nóù°ÉYJÛ¸GÑV“T0.ѯ—ªè‡Ð†˜:ªE¿š¨6.1”—ª3Õ¦Žj1BT(˜£0Àjb½É`À°Ð&r­ŸÏ½¦Ý­±;^©w¯R+Ä_Xöyç.úÿ­ø÷âo«¸–ySúSwǧu[Ø2‡¥êޝ>¾úøj"Ó¸QýÛ{îíC‰jSGõéÏz4tY*¿ßý?îÿqÿD¦q£zZ?ú‰jSGuL¯Þ>mÊËïwcÙe7–%2Õ_7oV{Qm꨾]¼ßݶíå÷»ì³eŸ-ûŒÈ4nT÷¶k¸®úi¢ÚÔQýhô Â9LsÏqmÓ¸áW”¶q¢­&©`\¢_!/UÑ¡ 1uT‹~5Qm\b (/U1f$ªMÕb„¨P0Ga$€Õʺ’ÁïYN•²ÛÓ¹‹ã k쎗¾Tò[›Çÿ{v}¯u®{ôÿ[ñïÅßf?éîôßÌE]foæ±&ÒgWÓDµÉSe¥z7jóñf ‡ºÿa?¨6uTߺÜïlÛÖÄ›yLÝ쬭?¨6yª¬ÝÀDšÄ›yŒü«ÙÃÚŽDµ©£úe¿!KÚ…Éïw†–Cê>¥´{m5µÛ|ø„QØ’—|¸äCJF}Ÿ}÷MÜ71¤pHáÂú§~Å¿/@{ºßŸ}ÀUÛð3kìŽ9ãäXçɧ¶ößÛåâ÷þýëÛ×¶ûߎ,cÜæ×9gêîø†é›’ßoô¿ÑÿFÿKd7ªÇõmQ¯®=Qmê¨Þ÷¼ËoNYòûZµ0j!‘iܨ¼ÕárCDµ©£úø'Ÿm•,¿ß°Â> ûˆÈ4nTûn«[¸JQmê¨>ÝóZë•òûÝ^{ýíõ‰LãFuËUwWH"ªMÕ±]û„·Éßïê4Ÿ›œ¥´{muN÷‹¼ý y©Š~mˆ©£Zô«‰jãc@y©Š1#Qmê¨s D5€‚9 ÉBJFDâvæú™ëg®×?é+þ½ù“¾Ù‘†…6‘ý]ìÚ°ÆîøÞ?»”uúßB:å—”Š+y,éÒÐižuÿÕ«ˆ¡±žÓÅ¿»r—“-ªšúNØÛzjƒ/ä÷û íAÚƒ4"Ó¸QÝá£Ú>•_Õ¦¾Óßµ/>“ßoü€øñˆLãFu³™•ï•¿FT›úN×¥}z·é‹~¬3&zLô"Ó¸Q]q_™J'ªM}§»C}{;¹çðcVQ­¢Z™†(¹¤ä’’Krˆ¥5!>>M‰jÓ~àß½•·ü~¥Í~{[v¤´{m5Iãý y©Š~ÿe4õŠ~5Qm\b (/U1f$ªM}§b„¨P0çH[;ëMúfGÚDV[vléÖØ3>èO¯ßêͲmTv‰þg˜šæR¹þoâ_6¶½UîýôÞúziM}§ÛÖ™Peƒü~S/¥^J½Dd7ªÿ »C|}œˆjÓÕwð¬1D~¿I?'ýœô3‘iˆjGª©vD^¶Yƒ5Þ7‰jÓÇžtúµÎEùý>I’þ$È4DËŽ-;¶ì(/Û·†m÷v!ªMwœUÉ5°AŠü~lll‰LCøÎôé;3‡ÞWP}/_¢ÚtÇ?jµÓ8ä°µÊõG}–µ¹Gië(ÚçÞtïØ²cËŽ´†ý yÙŠ~csÓÝ£èKËïTô½‰LCˆ1 ¼lŘ‘¨6áîñõqRœ€0LØ©#é› `X—3.g\ÎÈ+Oš}P¼—ƺºãJgø²nóеýÃjøÝi9ôþ’¯ÜçêÚ5ºÅ‘/º7+Vk[ö¹Ù££KóÞ¦^Š'+-ä#Ÿ¢ŠÝñXm¬6–È4„ŸÆOã§‘—mr¿À2žëˆj“_…úx–ÚQò›þ#µX¸k¯ãˆj“¼½—<ì¡w_ù•TYWe]•uĤᎠ<(/áÍå:6hÞ¨6É+¾áýRñ‡• CÜ}ì)mcEû,¿ÑžÓNô1røŽ]Ð$¯ïiCLq}iù•ˆ¾71i81Ìá:E‡.öìET›â(æ=äW"æIˆIêCغ¨;é› `X„%O”<‘ÃoWUöîÞd°õvÇÿ·Øÿµ­ÆökÕè_»ïë.®p±ì ²{J5(ÙSüßlí¿·{zbÙçEœ»˜ómêšÚâŠüN7õÙÔgSbÒpf]˜ua–¼„ç§¶õo¤!ªMqç°€üÆ„ i 'úò}ÚSE_Z~§¢ïMLNŒå%,ÆDµ)ŽbÞC~§bž„˜ >$€-_ÁIúfG!1=1=1‡Ý†ZÄTVáR~-6•½knêó˜gaºìÇG*×è$/ó»[ïn½»•˜4\ªgªgª§¼„«+÷~é-ùµØ”º£zÌm§ÖuVä°÷ަ뛮o"& ÷Ö÷­ï[_Å7œþRÔ§QmÜãë[_o°F^ÚçC·œ!& —U!«BV¥¨Î¸ì6îqqÓv…rH•E<Šxñˆ˜4‚Pm¨6T)ªÓæ+ìu¨6îqÝÌO÷7–—öþ]6´(Jië(Úd¥Øí9 €áDC^¢OÂØÜÈÇÿ„õ)¦Õ¢ïMLNŒå%,ÆDµ)6fóò2ó$Ä$õ!l™ fÒ7;À° Í;7ïܼ³¼Ê=>¸®G|þvÊÕtLÝäï¤8uò:ëuÖk¢ÑXÚ?nÿ¸ýcy9ß«;`¸»Ñh´Eg;ìí©˜Â ÏÏ'¥ß·ý¾í÷m‹ö¯êÛÆ­=Ñh´E‚5Þ7S8þiþiþD£±ŒŽ5:*‡EûŸ¬v-O4í¸>¤ƒO³ŠKJ¿-õ•¼´“7%oJæÇ:F3=azÂô„Þv*òùB翈Fã›:W)?_^ÚÏ'¾ÛÎò1Ú‚¢OV»–——³héõÆ"úŠ£E‡`÷M¢ÑXGÑ–—³èoÆ"ÆƒŠ‰ö™Ã{{F[£î€áî9,¸-æFˆFjEØrôÍŽ0,HhóÐæ¡ÍsXº¸·_“t£¶oÖŸ]¶ø#‡fnôÌÑ3G‡ÆµûÓÝŸîþT^Ú¿üÒö§FñD£ÑöÍZÿy çnòr{tìѱG‰Cã:RïH½#õä¥=å±s@ýÊD£±Ž~ ¨Úú¤¼œ\xpaâиNÇœŽ9#/í‘Õší«MØhÇX¿>ám2äåÜ¥n—º]ê‡Æãã“C §·}à ÕÏÆ:Þ}Ò?¹ís¥I󔒱ޢM–—³héõÆ%ú9,ßúK@ÕÖ'‰FcEÿY^΢¿M—ÊK[Œ%‰FcÅ\‡¼œÅÜq@­Hç/’¾JHÂ<¯ô¼ÒóJJ23,x¡wiÃN›ª–¬ð‹¼„ãNÅŠ;EWr¡äBÉ…”¢:ýŰ™ÞvĤáÇŽAµOUq“—pt¿è~ÑýˆCãzsðÍÁ7•¢:µp—1iø±aûòv›å%AW†w†w†·RT'¾Úس"1iøqôÔæiµ¯ËK8,+,+,‹84®¬¿³þÎú[)ªŸD ºë±‡˜4ü8-Îå«ú‘Jå,bžR2ü(Úaŵ^¼3¼3¼©õÆ%úòÒýbÒër²ñrSŠjÑß&KŒ å¥-ƒĤáG1¿¡Õbn„8 V$€Í¤¯>HÃâ< xðH^9Ëu[Úò]jCŽÑ“{ýîšÃÎ7Ó§7N×fh3´D )|±ë‹]_ì’—ü®]¾ï9!2 9Æ-ì›âv@^¶¶—m/Û^Özh=´D )Lî?¹ÿävñ m÷iVS-‘iÈñþ‚/Ýg)þjPæ ÌAD )üüøçÇ?ç°hÿ’í~wØGdr|6nðôvåÕ;½wzo"ÐVô\ÑsEOy™Ï®èz¬ac"Óã+Ÿ¡›=ƒô™bñO‰rí°¼lE»MM7ÑßPŠjÑW!2 9Š>³¼lE›4 ­‡ÖCŒsøAü¾)nˆLCŽb~C^¶b>„ n$€Íƒ¤on‘†Å¹hwÑîb¿´û¹ÜoeÞÏš|Íûë<¾%y¥ö«*9LJ:”t(‰Ø3Ø?bÿˆýCñ­…VÁ…¼GŸy;öK°/j*/ÕmÎÛœ·9{¦“P,¡XB1Å·žEzm!>óvu·ùáÚ9LsÿüWð_ÁÄžé< ~ü$Xñ­…e =wŸy;N½äR¼þOòR]8uáÔ…S‰=ÓI\›¸6q­RT¿h7ľÝâ3oǻۦÚÛé3Ý âŸËÛQ´½Šï²? ~ÂMHô=ä%/ú*ÄgÞŽ¢Ÿ¬Õ¢M왎'æ°ïr‚}Q»Pâ3oG1§¡¸!±ÄþAìP7À¦CÒ×$€ay’µÉÚdç8ç8ç¸Þ˜ôëëøŠîun§2»ûº”R|ŸÌ>Ó>ÓžÐ35ß‹¾}/æðÆääöeš#Js{¼ðƵ³âûduÓ릳£¤É Ü;pïÀ½òòÿcs»ωÒÜoìêëåæ«Õ)ERФ!êLíëy_Ïûzž¼üçĵÑðw¢4·Ç„…š¹—QŠê—7^Þxyƒ¨3µþ3ügä°ðÄR-ª÷>QšÛã“1ƒŽzüe“K¢.Pz¹=жW^ž¢­¦v›šè{(Eµè·¥¹=Š~²¼G1¡ØÇXyuåÕ•Ä€‚€°áHúš `X´€~ øQ^±¿Û¼Eí¡tµõ9þü™ÛžFýäeØÌ¶™m3[íµÿÕþ—H3§ánÃ݆»å°äÔÚF¯ì–±úÿì™Ô8‡¥D«U ª”ééé@¤™ÓÄô‰éÓåO¤Óƒ:½ªü®ÒÖ§q«û¸~fû+ͦ+¾ÑþYúgéŸiæôÓþŸöÿ´_þ,œÝ«ÙöÏr ÷¾EÜê>îóâä­øFû„” )ˆ4sZ:aé„¥9ü°öÖ UÊ$e|8ì¹÷@âV÷1¼h·?Z^RŠêÄ5‰k׈ØVú7¢^P’º¢í­¼ EûL6'ÑQŠjч!nßqœÒÖ§‘èç°CúÄô‰éDš9‰1£?ÊŸˆo·zmÉ´¶Ñ+»~À*æ=ˆ4 `ÃíݺwëÞ­$}‹0,Úƒ±Æ>«TÕ÷è×¢!n¥ãé”Á.aJ¥s-æZÌ5bÌüž]zvé™âÔá–ÿj¾”èU:F_èµÛU1ªÏ.?»üìrbÌü^¹½r{å¦ô\þªìSºÉ¢Wéxórßínó•J/bxÄðˆáĘù¥îJÝ•ª¸ëä¢O<œìjË>kôqo¤Tz¼xð"ÆÌï­ã[Ç·ŽeË:—ÍaïÙÕ]?j ½ŠË>6h¯Ç2Åþ[ƒ- ¶4È^Ú"ΗƒÖèãÎO£¢U*=Ñ>S£ÍOôI”ž‹èϽJGÑV\áÌí•Û+Reù@Œ•ž‹{½JG1w¡TzbÞƒPp6\¦¦¦?I_ã" +°®ÔºRë÷¯«Þ÷´Û*:ßÿgŠêÓA;=þP*±9ç œ3¸Ê_;æì˜³cŽÒ3ºÐë¾ëM"9ûñeèíÎ*•ØÄºëNdÇß|&•“ÊI唞љ£=v»<%’³_· ô¼R&¹ä’ søÕ|áá…‡&®òWä¾È}‘ûÓóý>slu†HÎ~|“tÚk{ݬ iesXV1 ) ) I›¥ÍÒf]ùåÂÈ #/ŒTŠêƒº·øžHþ?Û©¤ {èÝ×¥uµÛÞpòIñIñIÑNÐNÐþß7Ú³´YÚ,óò¿uDÔJ8ûQ´«Jñ)ÚdjqþýùÓýÑ·!’³EX)ªEÿ™¸Ê_b,©ôŒÄ8”HÎ~óJ%&æ:ˆ+ `cÉþ0I_ц5˜¥¥ågëgëg«øë‡ƒ·´kBG¼÷!±d9^{=îõ¸Ò_•þªôWòçUúnÉïlž=K¼½]³š$›\Ñ{Rî ZWKT\n.öfìM¦N,HšGšGšGyuæÕQœðzø×À=îY4I66øŠ÷³@ׯ‘5»(.7w-úZ4Kô[ Ç Ç ÇVW[]muUñÇ õŸØvm\ÒÞ§Ù˜1N¥ëü¨¸@‰3%Δ –,G–_–_–_Çž{vì©øã†¤>nvyš{ê[—*õS*ŸcûóØŸú”¶ˆ¥óˆº#êQM’ýÕbÛµJå#Ú^ÑSs-‡è«(=5ÑÏ}žš$ûkà÷,¥òýdÑg&–,‡W*=51&ãÓ‚Õb^BÌQä0wñUé¯J%æ7ˆ% `X&À°2×â®Å]‹SJ}R¡mÙž÷Ó®CzëwPàe¯Š>>µÜ+û)•Ì)›S6§lˆËt»Úíj·«)=;±œÚ£‘ƒ {Ø 4|”áu¦ûÈú Õ4J%sø‡Ã?þø±L–?Xþ@q?-áîƒþ¯Ú iÁ·™Ãžx÷ò¢q§šÿQ*“=Ž{÷0Ám¡žuÖýYwÝQ}óDßn?œ¨Î¼¼ÚûôWÿ:~S§¶R™l¬¾±úÆêÄeJê”Ô)©SIß’¾%}•ž`L‘ÞõÚ|P€¦¹‡Tò)ÿýœÕ·S*“•VvXÙ!·¥-ê‚Ò9E=uªà”¶h3u·«¢í¥¶Z&ÑoQzv¢Ï#ú?'ªEÿVwT‹~2ñc™ÄSéÙ‰ñ©«œ¨sJÛÖbNƒøP‘†e" «Y"²Dd ÝêøYýüÝ^ª»#þ¸Þ O=zÖke[¢¬â;7»Fï½k41cùΟ^ÿçj³”ÊaÁo ~[ð1cùî-»·ìÞ2ÝQ}l´ÿVKTþã³*A×¼ö®åðW Å0͘6cÚŒi†”¶¨JçuJÔ/u—¶h'ß1š+_,¾5Ôò‰>ŒÒsýÑRwT‹>­n¢oLÌX>1ÞTzŽb¬*Æ­êŽj1ÿ ;ªÅ<1$€a™HÊ…E…E…EéîŒêÑ5¦Å1õuÄ£vwÿÕåãË1c6²¤•‰¼y/òžî'»óiç=Ž7ÔÕ6Ôk}V÷½¯þdõ'«?!N¬Ëùnç»ïöŽöêƒÍ®©/ª¯Úõ^ÐÆK÷½/Zºh颥ĉu¹Züjñ«ÅßÑ^­õ¾ßä ú¢:®JßÝVÚú–žVªŽÒ½Ïž>{úìéĉu‰¯_9¾²î¨^|¬³Ã÷Úôa>Þªzcoyÿ˜¶7ê©Yv’Ò½O:1éĤÚHm¤ÖÉQG”¾KÔ/Q×Ô׆ˆ¶Qw¤‰6–Zi]DæOÖ®÷‚6*L‹~¬î{ýaâĺˆ±§î'+ưê‹j1ç ûÞÅÜq `X&À°z'¼OxŸðÖÝ1sÙ©e?_'nö*dŎîvÞ»Ëìo\ï5|G:awïݽw÷&6¬×Yÿ³þgýu?åàûMkת‘4cèO+^>ôLðÞ‘ ë¹O·ÿæ Âï6~·ñ;bÃzEGDGDGè~Êý~iôÔnáóC>n7ÌŠ'M\Cì|*þùµgjãùïH¾¿úýÕïÖëÆòËo¼c©ónçêÍ«úäñÃA¿xL·â¨~2ÄÇóïÏ>õiºà?hH\”¸(‘ذ^w®Ý¹vçi ïßjfV®{î€çî3­}‚{ó¿G6Ÿ û~çxÎñœã©}©}©}iÜÒõE÷·‹z'ê ¯ZôpÐ/ÓE{¨û~E»JM´^¢o£û)‹>’è/YñªE7†|Ün˜è»ê¾_Ñ&6¬—‡ê~Êb<+ƶV¼jÑŒ¡C<]Ä<ƒîûóÄdG–‰0Tâê©«§®ž²ÑÃþ>]4-ÊYWGüø²Ï6:—Ñçî¢zEõŠêE<¨C|½øzñõôyî;\:—qœheKÿíëžè2®ÒÂ2½JmÔ}wGÛm´=ñ  © © ©•B+…V ÕýÜ7íйY”•½Å>% Bëˆzclk—ýM÷Ý=z ”xP‡ÇN;5ˆoß ^÷sÿ+ÙghÓµ¿†¸ûXÍžîW^ô®êªuL®r¦Bî»Û>vûØíc‰ux~çùçwœ:/t~Gbcé9Ͼgu ŽôN°–¨¾ñqßÜêx”«Ñ­R-Ýwº3tgèNS—¶¨;º¯DÔAQ­æ¿Œ¿†¸ûØ‹vO÷݉öS´¥Ô>uýÝÏ]ô—Dßɺú{¢ªûîD_Wô{‰ucÒw<÷…ez•Ú(ƹÖÕb>AŸ™1GA<€ `X&ÀP•¿¿øýÅïžuzÖé™înk£:,|Âþ³ÛÎ-´†ü×§¸uÁ3B‚}¼Ï·ì¹²õDjt®T]÷½4™ÒdJ“)÷WÝ_u1 >¯z¼êñªGÀ“€'ïxgÂηܤүÃOw»ÕR›U9x·Å-¨{ùV¯Þ®³;•¨óq•¡ºï¥FÑEk½r;äv1 >)+RV¤¬ü"ð‹À/tGB¹Æ¥J~}¨b×#-öd~ìë½ÌâvÆêÜç½6³?¿XSµw,{X:¨tPé Ø}±ûb÷ê“öSÚOi?}5ê«Q_Ògúlw¬ï—NßîvÞ»/Æ®ÒíIDAT‹¥EõÍI}q›ØßÏÞÑ.LŸ{‰ž=;z61 >E2Šdù.õ»ÔïRõ‰„­ 5¿”^w˜«W²¥Eõíý?lÛØœ&kk^Öç^ÎÞ<{óìMs–¶¨Gú\›¨›¢žZÜzE»‡÷î"Ú7}îE´™¢ý¤Æ©èóˆþîHý(ѧ²¸õŠ>öõ^&ú¢¢_ªû^DÿVôu‰õãS1VÕ bÌ+Æ¿–Õb®@̈9Ý÷"æ"ļ1JHÃ2‘†µÖ¶Ö¶^}põÁÕõ™z(÷q©%Cþ¹Þ~q³¾Ys‚ã¼ómŸ•ÈÎë/×´ý¾¬^o3Ïwžï<ß9cKÆ–Œ-ü|øyý£ú—è¶7zž=´¦géüŠêã>Ëpöñ]Q'£Ê}®yh§¡†vJjžÔ<©y~•³¨S¢~és͢Ίú›_å,Ú.ÑŽé!¢¤f¢ÿ#úBúĆè_‰¾V~EµègŠ>§þQ-ú´<ñ‚@ŒUŸUŸØca1.ί¨sb~@bþAÌEðÜ@7À°L$€¡r .&\ô‹õ‹õ‹Õ¿›ëý¶V­Êm7¶ê0¾YBÂ7ê¹3nçûÉ—ƒÂ=VïØ×ÙÓq±ÿÜzª•ÕÿÚ\†» wkkkÃó-˜ÕzTëQ­> û,ì³PÿÈqK·›]qchýO_7M¿=¥±¶ƒÕ/ª±k7nOßåNÁ¿6´©þµþ׿°Ía›Ã¶èUÑ«¢Wñ| ¦gåž•{V.0)0)0IÿÈiy­êmÛbi|º6Iÿ°_ ·KFÞ+|èDÏöû㻘艾™q£Zô!ERô-õ¿6ÑwýXžoÁ$ưb<«äˆñ²;‹q´‘×½˜Ò¿XÛÁbì/æô¿61Ï æx¾ ?À°L$€Q€D‰5¦ñÊÆ+¯´É“fM+Ÿ(bÔÄæÔ^õÇGív8œÜѲsiÇ aÝš·\|,Âÿm«á »ýÝòú®!ï8¦þ9Í3³ñ±’Óü:çœc«­¶–·ïµ¶¶6*l”vŽvŽvOÂù÷οwþ=—Š.]*æ-ººTú¬Ü½çš-­ýþb¯vEo¯Öi££KØ¿ô–cŽýæÿ¨ÕªðÍÝ.·LÝýo{'§Î^5~ým?Ö l³ÆîãŠ}m °/m_Ú¾´¬KY—².ñ4ñ¿i÷h÷hw///ÿ¼ÅUƒÁ¶7Ë^¥éÒZ!‹&{ ´ÏØö~'æéR”ß‘–~ÇûÇ´Z×íA«ÿì™é»Åéë•ϼ=›ôœð°åĺékŒ¬ähHTïpÚá´Ã)3:3:3š§ áz³ëÍ®7ëâÕÅ«‹WÞâªÎˆ CËVÔdqÍÓ wºï±_´åaǘæ¥Æ~³[:kê¼Õœ#6ÝÒZß;ÈWëô÷êÞ M|7¶ÕÈz?{—©y¶rQC¢zc56ÖȘ1;ƒ¥žñ?qWâ®Ä]éù²çËž/óW5F–{P¦ÅÐõÔ´_à^Ä¾áæ¨Ž#›OÐ,òëÒ²è±÷üw¶šr¤ÿ[ÙîûO—ÖN§Ötðù¡iÅ)iÎýêWk¸v£Êñ†DõšËk.¯¹œþ<ýyúsK.gQïD4ä~E; ÚÑ>ˆ¶B´¢ í‰h[D;#ÚÑþäí{E»'Ú@j ÑGý%C¢ZôÙDÿMôåD¿NôñDOôýD?Pô EÿPôóö½¢*ú«˜I™ÃÔ^î|¹óåΣcŽŽ9:æû©ßOý~j“;Mî4¹c„włʕ ®\-¸Ú¶³ÛÎn;{oÔ½Q÷FQæ0µ¤®I]“ºÿçø?Çÿ™±rÆÊ+F;vmxT—ö*íUÚk¨ýPû¡ö›§lž²yÊÝvwÛÝmG™ÃÔ’k$×H®qòÄÉ'OÌÚ4kÓ¬MÎ/_:¿4Ö¤ö@‡6TÞPyCå[Ú[Ú[º´E½u\ÔwQ÷ /gщvI´Q¢½"Âaj¢&úc¢o&úi†Gµè7Š>¤èOо%eSãe1vãh1¦6<ªÅ_Œ÷ÅØ_ÌPæL$€#ˆL‰L‰L‰¨Q'¢Nd@d@dekwjæ©™§fFôŒèÑ3²^d½Èz” ¬Ýé§[œn1+bVĬi'ÒN¤iãµñÚxJÖëÜÍs7Ï݌ر?bÿ‰S'N8•õ8ëqÖcJÖërûËí/·xñ(âщ¥'–žXši“i“iCÉ—h+D»!ÚÑžP2°bñÚxm¼èã‰þžèûQ0°vb<.ÆæbœN™}•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•  *AT‚0¨ `P À $€@%H€J•øö.¯#ÙLÓ %tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/take.png000066400000000000000000001054531431412030200243250ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwUþ?nÑ ºî’AP@’¨È JQ‚Š9cÎ ˜s^w×ÀŠ ²FTÌb`QÐé ¢ †5+怂(&æ÷Gï§~lÃw€¹syž®:E÷ö=ýîs‡yÑÝk•PÖR€â (`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!†ÿ‡iWN»rÚ•ÙÏÙÏÙÏùŸÕ¬ ¬ (|s§Í6wÚÔôÿßòŸ¨ €9€â&fÍ[œ9÷̹gN>pò“<ó¾3ï;ó¾6#ÛŒl3²îJË÷“ï3ßþYjVV¬¼_þºð×…¯Å¯Å¯Åcê©?¦þî#w¹{üŸ+—ï-ßsþ)ù'ª<`Ž5ÇP³€)rŸ­÷ÙzŸ­7j£æ6Þlx³áuW»üsó>äýq^ÀªÀª€e[rÜ’ã–7µtjéÔÒ#F1âˆu«IþéyOò^9;€9Ö äʯ§¬3e)ë¨ ÕKLqiVÖ¬¬Ù´›¦Ý4í¦þµú×ê_«nAÊû–÷3ï³SVVÌk3¯Í¼6#nqÈê°¼‡yo5ÀkŽ…5™˜Â$¦æ›_6¿lþ”›§Ü<åæ¶ï´}§í;+¶´ê¶~‹®MƱq—ÛõólßA[–<±Çnt™ݸ÷IÝ'eßï[»ÇÄüÏùÏó×ä¯Ïß»bŸ›÷9ï~,N)T÷ª dZ“qgl|èóízŒyö‚Y[–<±ÇˆZ]&E7Ž9¶û¤ìû[g÷˜˜ÿ9ÿyþšüõù{­ XŽÿ}}?ÿûùß_ÚòÒ–—¶\™À ùÛ>µó¡›îxPÇS)é}ÒŸ®ß©ôœÚ7~´õ6½å˜¼Í’ÿ×ü•ù»VæsóžçGálÅ:Çn}ô®?otÙ.× Üf›AG^7p³-ŽZï¶![Ô>n­{öëpdÞæ?ÉÿkþÊü]æX(n` “˜lN«9­æ´ê?³ÿÌþ3+¿lÚmH»«šO¿ÎÀ:ÇŸ½|äà>³Êʆ 0 ªÚ|ŸùþóÏZŽk€föŸÙf~\Î/¬úUÁö;7Ÿ0~«ÇuŽ?{yÒ}f••͘1`@Uµù>óýçŸeU@nñØÅc»ÉØMÆn²¼a@»ºûrq—.ßôž‹z÷;vÆŒªmó=矲¼}Ë(?:g¨‰s쀛Nݶu¯¡×Œ_§ã6ýëë¯wëVµm¾çüS̱PÀ&05Ì’’%%KJF=~ôøÊ,Œ6žÝh^ƒ;<ðþη•M²Ç€nU÷Vª4dÝò>äý©LÏócÌ×y€ªX4;¦Á ¾ºCçÛÊ&͸a@·ª{+ÕNšqÀnyòþX¬iÞ}ãÝ7Þ}£d@É€’•ù¿@ëé»6>tË?~ªˆ{+ÓæŸž÷¤2}Î.?Rg(ä9¶÷¹GÕÛxøiS'}Ði·U÷V¦Í?=ï‰9j"0…IL1wÐÜAsõÖ{XïaÿÛ6NnqV“fì½ÿŒžG”=2d×]ª!ô­¨}dÈ®ºä}ËûùÿX†ë=¬÷°üØXþUAǽš¼0cï»nèyDÙ#3®Ð¥BߊÚGf\= KÞ·¼ŸVÅíÁÿ<øŸÿS™_îo¶Ý¡Î8hÛ.7ÿ%:½ºBߊڼWy+s,ùQ;û@á̱»þrîým×;Ñô':O¨®Ð·¢6ïUÞCs,Ô` “˜`ö›³ßœýfe=Q»½ûv¿£€âÞJ´yŸ+styŒ¬ *·*S»û÷V¢ÍûlUPL~ýî×ï~ýî¬îgu?«ûÿãJß§¾sÈÇÛö¸¹ItI¡…¾†Á=nn]’÷|ÙG—W ¯†Q¬þ9¶÷À#ÓÏ»`éIç' -ô­¨Í{›÷Ü …LLaSЂۂۂۖ½Ä¹ø mZoöËÏu޵ßÄšý.ÝæýÏeÙÇ›×ÄØÀªà·VǼÙ/?×yöð~kVô»t›÷??«€šëÇÓ<ýÇÓwï¹{ÏÝ{.{>ï2êòN÷\USBß Ÿ<êòN÷\µì#Í«‘WÆVÏ;ô†ñu;öª)¡o…O¾a|ÝŽ½Ì±P˜À&0jâÚמ¸ö²—5Yß}fô¸¶æ†¾µùq-ûØóú'XüߪàÖ=®­¹¡oEm~\V5ËGþpäGö¼¤ç%=/©hön¹sß-÷^Üëª[·ŸòVM~—nó#Ê®¢cÏ+“WÉhVÅÛc‡z4?ûâf ëòbM~—nó#ÊÎ …CLaSp–}}O“ý´­78®Oçâ‹~—nócÌ×u?XüÖª ñ•õæ}²Ñ“qŸÎÅý.ÝæÇ˜¯U@![ÔtQÓEM·jû§¶ª¢»ý¾G¿qþ˽·{ýŒ§Š)úýŸv›±×Ïx*?ÒŠêW)¯˜‘TÕ»÷&—=¼Iú׳_Oºm]LÑïÿ´g¿žtÛ:?Rs,0…ILYöSýº]Ðâð&á·{Fß¾Åý.ÝæÇ›»§`Uð«‚Ž7 ¿}09¬oßâŽ~—nóãÍݪ àô.ë]Öûˆ«Ž¸êˆ oƒ¼eãÓß¾®cц¾´ùQWT“¼byõ "`eæØC¿5`óÇ‹6ô­ ÍÚ ÕKLaSæš;hî eG¿?üý¸ûµ^s¢ß¥ÛüØ—ç54–(öUAÇ›„?ü}ÊQýZ¯9ÑïÒm~ìËŽ­ V¿ÍG4ѼÂè÷ÃaG\òšýþO üá°#®?¹¢úäÕ3Š€›cÿzÌÓí^ӢߥۼæX¨.` “˜j¶¤dIÉ’’ÞÃzë=¬¢>¯iWý.ûjàŠn ×0¯§q@1® _YoÞšvÕﲯ®è¦ÐV«ÓÔc§;õØŠ~í^2è¤Ã®lº&G¿K·y5*ªU^I# ¨ü;hìuÁf}Öäèwé6¯†9V?0…IL5=~ôøÑã+Zš¬ Ïú]±gWT±¼žÆŸ*(þgý®Ø³­ ªË‚dA² ©hnWgÿ㆜/ô-ßæ•©¨nyU.`Ùs쀑§vo½­Ð·|›WÆ «“¸ª<9þÉñOþ÷÷BWÜÅýWÜ?çù;ÏßYeVŒ˜j3§ÕœVsZU´Éúî3£ÇµâÞŠÚ¼>U/¯­1@±¬ nÐãZqoEm^«€Õoè{CßúÞoܵâá-:w®³]é|þiqoù6¯L^¥òÕË«jtͱ›ßu J.ëóÚ=]gˆ{Ë·yeò*™caõ¯¼Åû,Þgñ>ýfC¼bÀT‡¯Ê¾*ûªÿÌþ3ûÏ,ÿe¾ø mZoö‹ˆ·2m^«ò5Ìk›×Ùp &¯ Ž?x³_D¼•ióZY¬/~iôK£+úÕ6玼qÒÑ‚Þe·y•*ªa^a# ̱åýH¶åÖý½Ënó*™caõ¯¼¥¯ý]6apå €©Snžró”›+úÿøÙñÇõ;C¸[™6¯UE•Ìël¼P“WSÏîw†p·2m^+«€Un˲-˶,9»äì’³㉿[Ÿøñ w—ã©À[ŸøñýF%Ï.9»äì¼Ú˜cÿûÄ߯k¼Y+áîr<xÇëoÖÊ «šxåånîÖ­4að² €Y½š•5+kÖö¶ï´}§ü×5j·wßîwˆu—·ÍëV¾žyóšzÔ´UÁ˜ÚÝïë.o›×ͪ`ÕIžJžJž*?Ó6<©ùÌVÏo÷á—N?@¬»·ƒþðÎK§W¯|Uóju`ŽÝð½Ö_5xð²Ûÿ3°ë—bÝå¸ôíÿØõ˼zæXXuÀUK\UÀ¬VÓnšvÓ´›Ê9»MnqV“ÊJ‡ì5 »@w¹ÛÒ!{ èž×°|móš{ÔœUAǽš¼PV:cô€îÝånKgŒÐ=¯¡U@›]6»lvɺ%ë–¬[~Žíüíe%ctW¬Í«÷ר­[²nɺyå @X“çØÁKÚ½d¢@wÅÚ¼zæXXuÀ«Ž0xe€Y­ú×ê_«­ò_È{ï?£ç¢Ü•ióþÆ“ÿjõ¯Õ¿–±@ÍYÜuCÏ#D¹+Óæ5´*¨Z¯ux­ÃkÊÏ®ü©Ý_:œÔ»çØg<#Ê]Á¶çØg<“W²|…óʰfα­îØ»Ñ+=÷õg»uå®`{îëÏvëœWÒ «‚xõ//0«Égë}¶Þgë•ÿúm<»Ñ¼w”2¤ó€M„¸+Õž2¤ó€Mòz–¯s^ã€Â^4;¦Áe§Ì8hÀ&BÜ•jO™qЀMòzZT•!³†Ì2«ü¼ºõ  7¾åD!îÊ·y%ËW8¯¼kæ{Üïï9¬ÃÑBÜ•oóJšcaU¯~ÂàʳšŒš;jå¿r xçÛÄ·UÕæõ,_ç¼þÆ!…½*¸ºCçÛª+4}{÷Gm÷ËÒý©é1p^O«€•÷ã]?Þõã]ý"i»ëî8çùZâÛ*xðuwœó|­ŠêœŸ£Ö´9öÒ™¯¾ßu\ÍŠZO¯5y—NG.}…Ы¼’æXXÀÕK\0«Þ7eß”}Ólx³á͆—ÿš}ûرÃúöÜVU›×³|óúçç PWÉÑ}ûN\Óc༞V+oê6S·™ºMùuÓ>µ;eoÁmÕ¶yUËW;? F#¬9sì.W ;¼M÷šx­maÀy›WÕ UK\8„ÁK³ÊÍ=sî™sÏ,ÿ¥ÚmH»«šOÙ®Š6¯mùšç瘠ðVÛïÜ|BõÆ¥Åçm^[«€•qêɧž|êÉåçÒî;\=æÑ£E¶UÛæU-_íü,°æÌ±§wš|K§ÓÀUÜ·N“oétš9ª–¸0 ƒÀ¬r“œ|àäË‘Ư3ðƒÎ±°vU´ymË×u—ÓGSÿtûO 3Îë\¾Ïùy1>(ŒUAÉ´&ã !(­(n4±áõ\öz`“·,k¸ðµû|°×ÄÂŒó:[,¯±§Œ=eì)¿quÚ×WžøÀ’‰K·8æîäÂÎëòÇÞ§Wþï³%Ùɱ0à¼ÂåûœŸ#Š{Ž=ù³ ïm9¨‚ÒóOy>èü÷öM¶»¬IPùÙuÐÔë~Ùl·B€ó ›c¡ª€‹Cñ…Á`Vå¦ïü¾óû–ÿJœ±q—Ûõ(„ˆôûqÇ]×wþæç6½¢Ñ‹yßÚkr^£ö×ÑghÉñSØ÷±mš¼úÔA»öº$^¸÷üë^úsÏf›ß_ü¿7‡,Ä8¯sùúççÅø 0V‡>ß®G!À¹ ûûôf—?³ç¨¿tKÿôºÇºŒ=µÉÁ'nrU½Zu_¨;`éW.i>}ŸþoZœ×Ùª`y [0lÁ°åçÏžÏ* ‰K›¿²í;¯óßÎ=_ÿ korê¾'?«£Ïk:úŠÎs/Û`ì«›÷:bÈÙÇ5xt£ Z<¿ô±t?ôêo]hp^áò•Ïψ‘ Å=Çž·à¹:RÍAi×kw«[òhß©M¿Yºo[~½Óc>ºÇáOnºá ­îÿKIãýž¹r^»…%½vüµéóým¢Ðà¼ÂæX¨*à"ü-VQ„Á`V¡÷Ÿxÿ‰÷Ÿ(ÿ5ólßA[–BDšÇºy¯ê}[7«{ÑçüÄvƒ* wãö‰/opRÃ+ 3Îë\¾Ïùy1>(ŒUÁ³¶,)̸þGõû×l5úŠîó×,ýTàüÏïðþ.ü'çu¶*X^»õß­ÿnýËÏŸÛµ¼½Ù´ !(íôú9ÇÜ´×»uK½gë÷ß*:¿÷Íeùͼôëÿû÷ßËŽm´pé#*¸ÛY·¼½Ù´ÊW>?#F&÷{IðÊÚ]VoDzÈ7ž³ùÿü†p×=Î9¿ÍKù­èWÿ;N<ºåO…ç6ÇBU·š €Y…fž=xöàòCÿ‰=v» Ë¤BˆHŸ»`¿`›gNŸÛå²v†_Úë‹-TæŠÞò!qa^œ×¹|?óób|P«‚µºL*Ìøèw÷z³õÔʺK¿kàñÛMlÞ»Ðà¼ÎVËk‹¯·øz‹¯ËÏŸ½×¹óóéïBPÚâËÞïïöߨn<{‡§÷j^™@wécÙðú­:ôÌ îFÐëÜùùôwÊW>?#F&÷{Ù‚ÿ¼ÙíÕ‘vze—6ü5ïO~ èʼëÒ~¯|Õõœ'oÞºá[…ç6ÇBU¯9jV¼Vá|%XsD7î}R÷I…yÕì²£ÜÅÚÿî‘oõ™Rr[áÀy7 {U0æØîÇ ÿunu+óÞIÝðF·ÿ÷8‰VÏ4j_h×çu6ÞªJïžcoœñt!¥³M¶Üb÷¼WK_ûûÿxfpûÑ_G;uÿìÚ{Ÿøc±#æÿûç‚ €{޽qÆÓF¬™þzîëS»u®Þˆ´ù¢Íj8!ïÏá›Ý|tû&ÿí[%ÞûGT`p^a# `uzrü“ãŸ/¦Èeßï[»ÇÄ €¿Yë˜a;>5Ø»W÷[îüCÿ‡;¾dƒmoÞnÐå[¬ßòÔ[4z¨Á9W¡K^gã €Â^Ü:»ÇÄ €?š:qâöŸTæ½ïµ||`ï;~kmP(p^gã  ªÄM’'Ü1÷ùQK÷ªG¿ë¦O¸´à¢Ü•h4X3Uo8zñ¹³¦wywéþœþÙÓouz¤ò{8â»[þÖþñÂ9¢ÊÕ¬:‹YôÈ¢GÀ¹B»xf«^ßví½Ößô£¯ÿQ½æu'TÔóγ›Õ¤íQ_u¼¦õˆòÿÕÀ°ü«‚½øç!ÏÞÓïùʼ÷Ç+§nÑïÐßZ¸ 8ÂÀ=^úçeÿç÷ôšq[Ý©ŸIì `XƒUïÀg­°Õä¥û“G•ßÃI{|XÇþçˆ\ °Æ[ƒ®Îïn+îmlý±õÇÖ/?Ð íÀŒ®ÿ^½,ï[§Ú-Ú`àå/l»yûnÜý™®¼»å¡gôüË®'<п[þ®·w?$úß_ÿß/ykÆ3€L›Íf³Òª pŸ\ù+€ç|;áÒíwÌßÕà•k×ý²ÐàŠžldÚl6Û²·¶?´ý¡í¿À3€{ÝvëÅS·XºWÛ<²ûS_I\Á3€ó3bdÚlÅ=ÇVï3€/}òÕ‰]ÿçÑogüÌÝ^©üŽ|ó¶Fí—r\Ñ3€Í±6ÛŠmå¿M£ÿ0ú£ÿ 2Å·=uþSç?uþµ‡¬=díÊG¿ùë× g³&xÿ‰÷Ÿxÿ‰òÃ}̳}mYRén;·»¨ùCy¯Ž~·ã'­§.i>øÉþo.;Ö}ëÐCŽÛnjáÀy«ŸP8«‚ fmYRÓŸüÌž£þÒ-ù¿L¶y“ Zœ×Ùª`yíÖ·þ»õ/?n×òöfÓv(´›$wþÝŽnoW™wu»ûªû~óøåœV›O;jãsÿÕ»îØ:3êNœW¸|åó3bdBqϱ—¯¬Ýu`áÜùðiß¾wåß»ÇþÐöíB€ó ›c¡ªTô­U¦8äÁí÷_qÿ÷W>ôÍ_¿úCߥ €Y•_Œ¾óûÎï[~蟱q—Ûõ(„ˆ´Ù® o¯ÿjÞ«é‡íZÏÍ*ó®göÜóµÿû%o!Àyýª€Â^ú|»…ýî^o¶žZ™÷8rçuZþ÷ÿ¹ Ûå–ã -ÎëlU°¼†-¶`Ø‚òógÏçG•a¡À­^Ú¹Ö n•yWëOw=åбù»šÜÐþã­,´+€ó —¯|~FŒL(î9ö¼Ï}Ôù €Û_Ý{—&Wêêá~¯|Õõœ§nqa£Ý 9Î+lŽ…ª".ÂßbÕØÐwi`V¡_¦ÿ2ý—éå¿ÝÖoѵɸBˆH; Üð†Æ§ç½zx‡=;¼ì×üä}ú4ËŸ\øp^g¿ê °W%ÓšŒ+̸þGõû×l5úŠî+z×Ã;ü£烗~×Ôno·M“‰~ó6¯³UÀò{ÊØSÆžR~þìúõ•'>°¤‚Ò’'þtÅèÿvëùú5X{ë×.zð¶¡½¾{Ç«´QýÚ5Ù<S›÷ØåÈ=ÿ{kë‚ €ó —¯|~FŒL(î9öäÏ&¼·å êH=ô¦í7¿ä7žO\ÑM•oýÏ€®_ô}dèf­úUþ]ÕÕæ6ÇBU‡â}—&f•k3²ÍÈ6#Ë1~}jp§þë7"=áúN÷¶yí¿ÿVzAãI 7¼çéNÚê¾_=üšíýbèQkíÐaêû>¶M“KîÙlóš oÐ½Þ¢Š¾ê…ýæµ-ßÃü\“Þªàùžý‡ZÜn\«gµÏÿ|Q×ãÎÞlriŸQÏwûiÂsÿܼkíS›|â&W-ýúÇo7±yïB»ö7¯­UÀŠya½Ö{a½ò³hI×ç_quAÜ*yÂsŸU¾‡›Ü¶ï’ު˹WŽz¾Ë9yÏŸÚ?zÌ¢ wiسùV-ÿûkÊûlx@ó½ óÉÁy…ËW~FŒL(î9vÐÀë6Ù¬M5¥u^¯Ýí7~û·å×;=¶á£û½ê’MûœÐêþ¿”4> Á?vÚôøŽ­û]·aãü5-NÞ¼u÷ 9Î+lŽ…ª"®¹Š/ô]š˜UîÌûμïÌûÊI>ixÄ1}¶ªÞ ô«íŽþË/µÜtNãßUþëý扇¬¿Ýˆ6/opRÃ+—þù®¶kÓü¬B€óÚ–ïy~.ŒI oUðdiŸ­ -ž2é¶¡=>Øph“Í런ìµÁ–Í7;dƒ†M8qûO -ÎkkU°b¾ž÷õ¼¯ç•ŸE7þãö½vû´pâÒ¥oæ\™¿ÕÖÓ¤ö†Gtºàìíox£Ð®ýÍÛ¼Âå{žŸ#Š{ŽíÚn¯›\·Jn4í˜ÎõÛ]Ö½×WWfvmóÒÖW5—Ã…ç6ÇBU×,Åú.MÌ*7ùÀÉN>°üfü:?èB\š÷ç²/{žµùó½·hµí†äÏÎÛßoýëFW¾nÇ¿w|dq‡Á‡ö¿ûž2¸éœÆ¿Ûèà†ýêß6ôØ­&´=¯Ž(¯mùšç瘠ðVWëZœÿ<ÿó‘¿ìydëAm³–;6 ßÛ¨{½k»¤žmrÈå/ ½­}·ï¦¤Ûôýk¡E¿y›×Öª`íX¶cÙŽýh»ôΦϿ\h1pûËŽ|Á5Óé_=ÿXÿ‡¦[oôzý7¸°é]M/(‰º jsúî›þŸm>¹aÞÓ- -ôýï5ÍéMŸ¹Â;oíX¶cÙŽ&¬ sìe{¼t}©âÒ¼?û¬wyÏvµ7×kR“Ñgl4«þ 7Ü y½!mÝ*n|ÉÀÁg}Ñæò‹Ï5½Ë»…| 輪æX¨Zà·愾K³ÊÍ=sî™sÏ,ÿåÙmH»«šO(œÛ&/û6Îý×Â|úo^Ûò5ÏÏ…1 @á­ ¶ß¹ù„BˆK+ q—÷ç…Óæµµ*X§ž|êɧþÆ•RÝw¸zÌ£GfŒºìëz óªßÿ>¥x‡«Ç¼óÒét—㹿Þyéôòꕯj^m£̱¾×ú«^vûvýR [ù6¯X^=s,¬:àª%ô­*`ªÁ”›§Ü<åæŠ¾¨?~vüqýÎëV¦ÍkUQ%ó:oÔäUÁÔ³û!Ö­L›×ʪ`•Û²l˲-KÎ.9»äì߸šjë?¾â"±nåÛ¼b¿QɳKÎ.9;¯¶AæØÜ ¯k¼Y+±nåÛ¼bæXXÕÀ+Oè»*€©_•}UöUÿ™ýgöŸYþK{ñAÛ´ÞìáneÚ¼V¿ñ„¿™ýgöŸ™×Ùp &¯ Ž?x³_„»•ióZY¬/~iôK£+úUÔ6玼qÒÑÂÝe·y•*ªa^a# ̱åýH¶åÖý„»Ënó*™caõ¯¼'Ç?9þÉñBߪ%¦ÚÌi5§ÕœV}³¾ûÌèq­ˆ·¢6¯OEÕËkkŒP,«‚[ô¸VÄ[Q›×Ǫ`õúÞÐ÷†¾W~îmòð;×Ù®ôÎ?>ÿ´ ÷7nû\zçŸ:¯RùêåU5º€ŠæØMŽïºÇ%—õyíž®3½¿qÛç>¯ÝÓuF^%s,¬à•·xŸÅû,ÞGè[µÀT³ÑãG]á¿ìød£#ŽëÓYÜ»t›×¤¢Šåõ4®(ÆUÁ“qŸÎâÞ¥Û¼&VÕeA² YT4·«³ÿqCÎ÷–oóÊTT·¼ªF°ì9vÀÈS»·ÞVÜ[¾Í+cŽ…ÕI\U–¾Xè»òÀT³%%KJ–”ôÖ{Xïa¿ñï¦÷kж޼o<öŒ¾}E¿yòš”¯U^üžÆŸ*h|e½yß>˜Ö·¯è7¯C^«€ê5õØ©ÇN=¶¢_µ— :é°+› }ÿûÄßA'veÓŠj•WÒˆ*?Ç{]°Y¡ïŸø;öº`³>æXXýÀ&0aî ¹ƒæªhÒ킇7 øûqök½fF¿ù±çu¨¨Jy %Š}UÐqã&áŸrT¿Ökfô›{^«€Â1¢ùˆæ#šW43oùá°#®?yMŽ~ó TTŸ¼zF°bsìá_yºýÁkrô›WÀ ÕELaS@f¿9ûÍÙo.;^Ó®ÎwÙÑo^7ã€5iUÐqã&ášv5p~¼ËŽ~­ ªMï²Þe½¸êˆ«Ž¸ªÂ¸ñéo_×q‹~Ÿþöu+ªI^±¼z°2sì¡ßްùãkZô›µ9ª—˜Â$¦à···U´pÉo€¼&<8?ÆŠnøœËkḛ¦® _YoÞšðlàü+ºá³U@áXÔtQÓEM·jû§¶ª¢»ý¾G¿qþ˽·{ýŒ§Š6úÝfìõ3žÊ´¢:äUÊ+fäU5Çî½Éeo’þõìדn[mô{öëI·­ó#5ÇB!S˜À¨‰kO\{âÚu—)ë»ÏŒ×_ô›ײ=¯q€UÁÿ­ nÐãÚâ‹~óã²*¨Y~8ò‡#8²ç%=/éyIE³wËûn¹÷â^Wݺý”·Š)úÍ(?ºŠŽ=¯L^%£XslèÑüì‹wš5¬Ë‹ÅýæG”9 ‡˜Â$¦ -ûºŸÜÅmÓz³_~®sü«ý&ÖÜÐ7ï~,Ë>^×÷`UPñªàøƒ7ûåç:ÏÞobÍ }óþçÇbUPsýxú§ÿxúî=wï¹{ÏeÏç]F]Þéž«jzô›Ų4¯F^#X=sìÐÆ×íØ«¦G¿ùQ˜c¡0 €)L`j€e?piQ»½ûv¿£fE¿yŸ+stžê˳*S»û5+úÍûlUPL~ýî×ï~ýî¬îgu?«û²çöÖO |ç·íqs“è’šúæ½Í{¾ì£Ë+WèVÿÛ{à‘éÆç]°Îô¤ó“5%ôÍ{›÷Ü …LLaScÌ4wÐÜA½‡õÖ{ز=Ý&·8«É 3öÞFÏ#ʲë€.ú>2d×]ò¾åýü,O‡õÖ{X~ìÆ,ÿª ã^M^˜±÷]7ô<¢ì‘WèR@¡ï#3®Ð%ï[ÞO«€âöàüσÿ©Ì?ôÙl»Cœqж]nþKtzÁ…¾]nþKtzÞÃÊK~ÔÎ>P8s쮿œ{ÛõÎ_4ý‰Î -ôÍ{•÷Ð 5…˜Â$¦†YR²¤dIÉèñ£Ç_™eÐÆ³ÍkpÇ#ƒÞßù¶²ICöЭBßICöÐ-ïCÞŸÊôïŠ}nÞç¼ÿù±8¥PÝ«‚’iMƱñ¡Ï·ë1æÙ fmYòÄ#ju™Ý8æØî“²ïoÝcbþçüçùkò×çïµ*`9þ÷õýüïçiËK[^Ú²îJhþŶOí|è¦;Ôñ”CJzŸô§+Æw*=§öm}À…Mo9&oóŸäÿ5eþ®•ùܼçùQ8›@±Î±[½ëÏ]¶Ë5÷ÙfÐ‘× Ül‹£Ö»mȵ[ëžý:™·ùOòÿš¿2—9Š›˜Â$¦¸4+kVÖlÚMÓnšvSÿZýkõ¯U· å}Ëû™÷Ù©««æµ™×f^›7Œ¸aÄ u XÞü·Î`Ž5ÇšLLaSä>[ï³õ>[oÔÜQsGÍm6¼ÙðfÃWÿ¢-ÿܼyœ°*°*`Ù–·ä¸%ÇM-Z:µôˆGŒ8bDuEù§ç=É{åìæXs,S˜À¬qæž9÷̹gN>pò“<ó¾3ï;ó¾6#ÛŒl3rå—kù~ò}æûÏ?KÍÀªÀª€•÷ëÂ_þºðµøµøµxLý1õÇÔß}äî#wYU!D¾·|Ïù§äŸ¨ò€9Ö @Í"†ÿ‡iWN»rÚ•ÙÏÙÏÙÏùŸÕ¬ ¬ (|s§Í6wÚÔôÿßòŸ¨ €9€â&(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"!(`€"±Zà)ëLYgÊ:uÖyN*¨ñÀEb €óŸO©5¥Ö”ZSÖš²Ö”µ²%Ù’lI¶8[œ-Î~É~É~Ée‹²EÙOÙOÙOÙÙÙÙ÷Ù÷Ù÷ÙÂla¶0û6û6û6[-Èdßdßdßdó²yÙ¼ìëìëìëln67››}™}™}™}ž}ž}ž}–}–}–}’}’}’}œ}œ}œ}˜}˜}˜}}}½Ÿ½Ÿ½Ÿ½—½—½—½“½“½“½½½½•½•½•½‘½‘½‘½ž½ž½ž½–½–½–½š½š½š½œ½œ½œÍÎfg³³—²—²—²™ÙÌlföBöBöB6#›‘ÍȞϞϞϞ˞˞˦eÓ²iÙÔlj65›’Mɦdi–fi–dI–dQeQfaf¥YiVš=“=“=“MÎ&g“³IÙ¤lRödödöd61›˜MÌ&d² ÙÙÙÙãÙãÙãÙ£Ù£Ù£Ùøl|6>{8{8{8{({({({ { { »?»?»?»7»7»7—ËÆewgwgwgwewewewfwfwfwdwdwd·g·g·g·f·f·f·d·d·dc²1Ù˜ìæìæìælT6*•ݔݔݔÝÝÝÌFf#³fÿÌþ™ÈFd#²k³k³k³k²k²k²dÿÈþ‘]•]•]• φgó+²+²+²¿gÏþž]ž]ž]žý5ûkö×ìÒìÒìÒì’ì’ì’ì¢ì¢ì¢ìÂìÂìÂìüìüìüì¼ì¼ì¼ìœìœìœììììììlX6,–™™™žžž–––šššœœœ””” ͆fC³!ÙlHvBvBvBv|v|v|vlvlvlvLvLvLvTvTvTvdvdvdvxvxvxvXvXvXvHvHvHvpvpvpvPvPvPv`v`v`v@v@v@¶_¶_¶_¶o¶o¶o¶w¶w¶w¶W¶W¶W¶G¶G¶G¶{¶{¶{¶k¶k¶k60˜ ÌvÎvÎvÎvÊvÊvÊúgý³þY¿¬_Ö/Û1Û1Û1Û!Û!Û!ë“õÉúd½³ÞYïl»l»l»lÛlÛlÛ¬gÖ3ë™õÈzd=²îY÷¬{Ö5ëšuͺd]².ÙÖÙÖÙÖÙVÙVÙVٖٖٖYǬcÖ1ëuÈ:d[d[d[d›g›g›g›e›e›e›f›f›f›d›d›dm³¶YÛ¬uÖ:kµÊZe­²³³³Y‹¬EÖ,k–5Ë6Ê6Ê6ÊšfM³¦Y“¬IÖ$kœ5Îg²FY£¬AÖ kÕÏêgõ³ºYݬnV'«“ÕÉþ’ý%ûKöçìÏÙŸ³õ³õ³õ³õ²õ²õ²u³u³u³?dÈþý>û}öûllllílílíl­l­l­´,-KËÒÅéâtqúkúkúkº(]”.JNNNLLLHHH¦ Ó…éwéwéwé‚tAº ý&ý&ý&ŸÎOç§_§_§_§_¥_¥_¥_¦_¦_¦_¤_¤_¤Ÿ¥Ÿ¥Ÿ¥Ÿ¦Ÿ¦Ÿ¦§§§¥¥¥¤¤¤sÒ9éœô½ô½ô½ôÝôÝôÝôíôíôíô­ô­ô­ôôôôõôõôõôµôµôµôÕôÕôÕô•ô•ô•tv:;ÎJg¥³Ò™éÌtfúbúbúb:#‘ÎH§§ÓÓéésésésé´tZ:-šNM§¦SÒ)é”4—¤Iš¤Q¥Q¦a¦¥iiZš>“>“>“NN'§“ÓIé¤tRúdúdúd:1˜NL'¤Ò ééééãéãéãé£é£é£éøt|:>}8}8}8}(}(}(} } } ½?½?½?½7½7½7—ŽKÇ¥w§w§w§w¥w¥w¥w¦w¦w¦w¤w¤w¤·¥·¥·¥·¦·¦·¦ÿJÿ•þ+“ŽIǤ£ÓÑéètT:*•Þ˜Þ˜Þ˜ÞÞÞŽLG¦#Ó¦ÿLÿ™ŽHG¤#ÒkÓkÓkÓkÒkÒkÒ¤ÿHÿ‘^•^•^•^™^™^™^‘^‘^‘þ-ý[ú·ôòôòôòô²ô²ô²ôÒôÒôÒôâôâôâô¢ô¢ô¢ô‚ô‚ô‚ôüôüôüôÜôÜôÜôœôœôœô¬ô¬ô¬tX:,–ž‘ž‘ž‘žžžžžžžšžšžšž’ž’ž’žœžœžœž˜ž˜ž˜M‡¦CÓÁéàtpzBzBzBz\z\z\zlzlzlztztztzTzTzTzDzDzDzxzxzxzhzhzhzHzHzHzPzPzP:(”JHHH÷O÷O÷O÷M÷M÷M÷I÷I÷I÷J÷J÷J÷L÷L÷LwOwOwOwKwKwK¦Óé.é.é.éNéNéNé€t@: íŸöOû§}Ó¾ißtÇtÇtÇ´OÚ'í“nŸnŸnŸn—n—n—öJ{¥½ÒžiÏ´gºMºMºMÚ=ížvO»¥ÝÒni—´KÚ%íœvN;§[¥[¥[¥ÒNi§´cÚ1혖¤%iIºEºEºEÚ>mŸ¶O7K7K7K7M7M7M7I7I7IÛ¦mÓ¶ië´uÚ:m•¶J[¥§§§-Òi‹´YÚ,m–n”n”n”6M›¦MÓ&i“´IºAºAºAÚ(m”6J¦ Ó†iý´~Z?­—ÖKë¥uÒ:i´vZ;­þ9ýsúçtýtýtýt½t½t½tÝtÝtÝôéÒ?¤¿OŸþ>]']']'];];];]+]+]+)KÊ’²dq²8Yœüšüšüš,J%‹’Ÿ“Ÿ“Ÿ““““’’’…ÉÂdaò]ò]ò]² Y,H¾I¾I¾Iæ%ó’yÉ×É×É×ÉÜdn27ù2ù2ù2ù<ù<ù<ù,ù,ù,ù$ù$ù$ù8ù8ù8ù(ù(ù(ù ù ù ™“ÌIæ$ï%ï%ï%ï&ï&ï&o'o'o'o%o%o%o$o$o$¯'¯'¯'¯%¯%¯%¯&¯&¯&/'/'/'³“ÙÉìä¥ä¥ä¥df23™™¼¼¼ÌHf$3’ç“ç“ç“ç’ç’ç’g“g“g“©ÉÔdj¾(ȧ$Nâ$N¢$J¢$H‚$HJ“Ò¤4y:y:y:™œLN&'O%O%O%O&O&O&ÿNþü;™LH&$'''%%%ã“ñÉøä‘ä‘ä‘ä¡ä¡ä¡äÁäÁäÁäþäþäþä¾ä¾ä¾d\2.—ܓܓܓܕܕܕŒMÆ&c“;“;“;“Û“Û“Û“Û’Û’Û’[’[’[’%ÿJþ•ܜܜܜŒNF'£“›’›’›’“““‘ÉÈddr}r}r}2"‘ŒH®K®K®K®I®I®I®N®N®N®J®J®J†'ÓáÉÉÉÉß“¿'O.O.O.Oþšü5ùkriririrIrIrIrQrQrQrararar~r~r~r^r^r^rNrNrNrvrvrv2,– KÎLÎLÎLNONONONKNKNKNINININNNNNNNLNLNL†&C“¡Éàdp289!9!9!9.9.9.9696969:9:9:9*9*9*9"9"9"9<9<9<9494949$9$9$9(9(9(” J%$$$û'û'û'û&û&û&û$û$û${%{%{%{&{&{&»'»'»'»%»%»%“ÉÀd—d—d—d§d§d§d@2 ôKú%ý’¾Iߤo²C²C²CÒ'é“ôI¶O¶O¶O¶K¶K¶Kz%½’^IϤgÒ3Ù&Ù&Ù&éžtOº'Ý’nI·¤KÒ%é’tN:'“­’­’­’NI§¤SÒ1é˜tLJ’’¤$Ù"Ù"Ù"iŸ´OÚ'›%›%›%›&›&›&›$›$›$m“¶IÛ¤uÒ:i´JZ%­’“““I‹¤EÒ,i–4K6J6J6Jš&M“¦I“¤IÒ$iœ4N'’FI£¤AÒ iÔOê'õ“ºIݤnR'©“ÔIþ’ü%ùKòçäÏÉŸ“?%Jþ”¬—¬—¬—ü1ùcòÇäÉ’?$¿K~—ü.Y'Y'Y'©•ÔJj%k%k%kÅKâ%ñ’xq¼8^ÿÿÿ/ŠÅ‹âŸâŸâŸâãããïãïãïã…ñÂxaümümüm¼ ^/ˆçÇóãùñ¼x^ÄQÅQÆaÆ¥qi\???OŽ'Ç“ãIñ¤xRüdüdüd<1žOŒ'Äâ ññññcñcñcñ£ñ£ñ£ñ#ñ#ñ#ñÃñÃñÃñƒñƒñƒññññ}ñ}ñ}ñ½ñ½ñ½ñ=ñ=ñ=ñÝñÝñÝñØxl<6¾3¾3¾3¾=¾=¾=¾-¾-¾-¾%¾%¾%þWü¯ø_ñÍñÍñÍñèxt<:¾)¾)¾)¾1¾1¾1ŒGÆ×Ç×Ç×Ç#âñˆøºøºøºøšøšøšøêøêøêøªøªøªxx<<___ÿ=þ{ü÷øòøòøòø¯ñ_ã¿Æ—Æ—Æ—Æ—Ä—Ä—ÄÅÅÅÆÆÆçÇçÇçÇçÅçÅçÅçÄçÄçÄgÇgÇgÇÃâañ°øÌøÌøÌøôøôøôø´ø´ø´ø”ø”ø”øäøäøäøÄøÄøÄxh<4Žǃãâââãâãâãâcãcãcã£ã£ã£ã£â£â£â#â#â#âÃãÃãÃãCãCãCãƒãƒãƒãƒâƒâƒâãããâââýâýâýâ}ã}ã}ã½ã½ã½ã½â½â½â=â=â=âÝãÝãÝã]ã]ã]ãñÀx`¼s¼s¼s¼S¼S¼SÜ?î÷ûÅýâ~ñŽñŽñŽññññöñöñöqï¸wÜ;î÷Š{ÅÛÆÛÆÛÆÛÄÛÄÛÄ=âq¸[Ü-îw»Æ]ãÎqç¸s¼u¼u¼uÜ)îwŠ·Œ·Œ·ŒKâ’¸$îwˆ;ÄíãöqûxóxóxóxÓxÓxÓ¸]Ü.n·ÛÆmã6q›¸MÜ*n·Š[Æ-ã–q‹¸EÜ"n7›ÇÅÅÅÆÆÆMâ&q“xƒxƒxƒ¸QÜ(n7ŒÆ ãúqý¸~\/®׋ëÄuâ:qí¸v\;þsüçøÏñúñúñúñzñzñzñºñºñºñâ?Ĉÿ>þ}¼N¼N¼N¼v¼v¼v¼V¼V¼VT•EeÑâhq´8ú5ú5ú5Z-ŠE?G?G?G?F?F?FßGßGßG £…ÑÂèÛèÛèÛhA´ ZÍæGó£yѼh^ôUôUôU47š;ˆ¾ˆ¾ˆ>>>>>>>‰>‰>‰>Š>Š>Š>Œ>Œ>ŒæDs¢9ÑûÑûÑûѻѻѻÑ;Ñ;Ñ;Ñ[Ñ[Ñ[ћћћÑëÑëÑëÑ¢ÿDÿ‰^^^^‰^‰^‰fG³£ÙѬhV4+šÍŒfF/F/F/F3¢ÑŒhz4=š===M‹¦EÓ¢©ÑÔhj4%šMÉ—ÿùÿö£\…Q•F¥QiôLôLôL49šMŽ&E“¢Iѓѓѓѿ£GÿŽ&D¢ ÑãÑãÑãÑcÑcÑcÑøh|4>z$z$z$z(z(z(z0z0z0º?º?º?º/º/º/‹ÆE÷D÷D÷DwEwEwEc£±ÑØèŽèŽèŽèöèöèöèÖèÖèÖè–è–è–hL4&ÝÝÝŠFE£¢›¢›¢›¢¢¢¢‘ÑÈhdôÏèŸÑ?£шhDtmtmtmtMtMtMôèÑ?¢«¢«¢«¢+£+£+£+¢+¢+¢¿E‹þ]]]]]]]]]]]]]]]]]] †FC£!ÑhHtBtBtBt|t|t|tltltltLtLtLtTtTtTtdtdtdtxtxtxtXtXtXtHtHtHtptptp4( ŠŒŒŒöööö‹ö‹ö‹ö‰ö‰ö‰öŠöŠöŠöŒöŒöŒvvvv‹v‹v‹F£Ñ.Ñ.Ñ.ÑNÑNÑNÑ€h@4 êõ‹úE}£¾Qßh‡h‡h‡¨OÔ'êõŽzG½£í¢í¢í¢m£m£m£žQϨgÔ#êõˆºGÝ£îQרkÔ5êu‰ºD[G[G[G[E[E[E[F[F[F£ŽQǨCÔ!êmmmmmmmmmµ‹ÚEí¢¶QÛ¨mÔ&jµ‰ZE­¢VQ˨eÔ2jµˆZDÍ£æQóh£h£h£hÃhÃhèIÔ$jmmm5ŠE¢†QèaT?ªÕêEõ¢zQ¨NT'ªÕŽjGŽþý9Z?Z?Z?Z/Z/Z/Z7Z7Z7úCô‡èÑï£ßG¿Ö‰Ö‰Ö‰jEµ¢ZÑZÑZÑZá’pI¸$\.‡¿„¿„¿„‹ÂEá¢ð§ð§ð§ðÇðÇðÇðûðûðûpa¸0\~~~.„ Âùáüp~8/œÎ ¿ ¿ ¿ ç†sùááááçáçáçá§á§á§á'á'á'áGáGáGá‡á‡á‡áœpN8'|/|/|/|7|7|7|;|;|;|+|+|+|#|#|#|=|=|=|-|-|-|5|5|5|9|9|9œÎg‡/…/…/…3ÙáÌð…ð…ð…pF8#œ>>>>>>>>>N §†Só_þåÝÏÿ'æ‚0ƒð™ð™ð™ðéðéðépR8)œ>>>N '†Ã‡ÿÿ>>>>>>>>>ŽLJãÇÇÇLJ‡ÂÂÂÂûÃûÃûÃ{Ã{Ã{Ãqá¸p\xwxwxw86Ž ï ï ï oooo o o o o o ÿþ+üWxsxsxs8:Žo o o o o o G†#ÑáõáõáõáˆpD8"¼.¼.¼.¼&¼&¼&¼:¼:¼:¼*¼*¼*‡‡W„W„W„ ÿþ-¼<¼<¼<¼,¼,¼,¼4¼4¼4¼8¼8¼8¼(¼(¼(¼ ¼ ¼ lnnnnnn¶ Û…í¶aÛ°mØ&l¶ […­ÂVa˰eØ2l¶[„ÍÃæaóp£p£p£°iØ4l6 ›„MÂÆaã°qØ(l6 „ Âaý°~X?¬Ö ë†uÂ:að/á_¿„ÿþ9üSø§ðOázázázáÃ?† ÿþ!üCø»ðwáïµõõÃZa­°VP”eÁ’`I°$ø5ø5ø5ø%ø%ø%ø9ø9ø9ø)ø)ø)ø!ø!ø!ø>ø>ø>ø.ø.ø.ø6ø6ø6ø&ø&ø&˜Ìæ___sƒ¹ÁÜàËàËàËàóàóàóà³à³à³à“à“à“àãàãàãàÃàÃàÃàƒàƒàƒàýàýàýà½à½à½ààààíàíàíàÍàÍàÍàààà?Á‚ÿ¯¯¯¯¯¯³ƒÙÁì`V0+˜Ì f3ƒƒƒƒÁŒ`F0=˜Lž ž ž ¦Ó‚iÁÔ`j05˜L ¦iiqQQ+ JƒÒàéàéàé`r09˜<<<<<<ü;øwðï`B0!˜<<<<<<ŒÆãƒG‚G‚G‚‡‚‡‚‡‚‚‚‚ûƒûƒûƒ{ƒ{ƒ{ƒqÁ¸`\pwpwpwpWpWpWpgpgpgpGpGpGp[p[p[pkpkpkð¯à_Á¿‚1Á˜`L0:Œn n n n n n F#ƒ‘ÁõÁõÁõÁˆ`D0"¸.¸.¸.¸&¸&¸&¸:¸:¸:¸*¸*¸* †WWWþü=¸<¸<¸<¸,¸,¸,¸4¸4¸4¸8¸8¸8¸(¸(¸(¸ ¸ ¸ 8?8?8?8787878'8'8'8+8+8+ †ggg§§§§§§''''''Cƒ¡ÁÐ`H0$œœœ ƒ‚‚‚‚ýƒýƒýƒ}ƒ}ƒ}ƒ}‚}‚}‚½‚½‚½‚=ƒ=ƒ=ƒÝƒÝƒÝƒÝ‚݂݂ÁÀ``°s°s°s°S°S°SÐ?èôúý‚~ÁŽÁŽÁŽÁÁÁÁöÁöÁöAï wÐ;èô zÛÛÛÛÛÛ=‚A [Ð-èt º]‚ÎAç s°U°U°UÐ)èt :ƒŽAIP”[[[íƒöAû`³`³`³`Ó`Ó`Ó`“`“`“ MÐ&h´Z­ƒ–AË e°q°q°qÐP €ÀG\–4_Ò|Ió]ÜõÀ]\ºþ#h<¢ñÊï?_<âÁ#<âèw~÷èwÜ=àîwoÙ|Ëæ[6o2¼Éð&Ã7:x£ƒ7:¸dÛ’mK¶íÿDÿ'ú?qQ׋º^Ôõéß>üéÃwXÜaq‡•ïɵ]®írm—¥q·wÛy·ó  @Í"p!~éðK‡_ºtåÛfm³¶ÙÊœ…ÏÏûü¼ÏÏËãÞºUäÎïüñÎËj—Õ.«½b½Z8qáÄ…7 8€À@Áé—,k[* ®^¯_õúU¯_U¾ò£nuÛ¨ÛVlŸã÷и‡ê®b_wüºã×W¬‡7L¿aú Ó—Þ[Ã) §4œbÔ5‹X œÊ]krŒU¨vYí²Ú»œµËY»œµtÍ7?wós7?wÅêŸ_¡[wµèvO·{ºÝ3¿Îü:óë,o?¼òÇ+¼²ü>ó›`@M!G,®.]§{{ÛÛÛÞÞvy÷VÚ§´OiŸeŸÍúÕÿ¨þG ;hØAÃþ=ùß“ÿ=ù½–ïµ|¯åÏC~òó¯¶ûj»¯¶Ë¦eÓ²içqÞç±áÐ ‡n8tÙûÜéÆnÜéÆ_{ýÚë×^ËÛçõ¯£þu”±Ô\`0PpÀàÕ/\Ûn?¸ý५ݢ¤EI‹’å­ü÷ã¾÷ý¸MGm:jÓQÇü³fì1c{T~ÿù+÷ÜhÏöÜhU|S*º¸ÃÀ; \tð¢ƒl´…L, ŽX¼úUtåëÉÝOî~r÷å­ü?úçOÿü©¢3Øæå6/·yù³áŸ ÿløŠõvq‡ÅwXö8iµV«µZ­µbcÆj.°(8`ñÛêôÓ¹?ûÓ¹›]¹Ù•›ýÆ•¯ùí——wŸ=OèyBÏ*:ƒO]óÔ5O]³ò=Ÿ×b^‹y-–¾F¹ªÆLü»øwñï*ºj9¿ZÚÈ “X °xuºûù»Ÿ¿ûùŠÂÎå­ùGS?šúÑÔŠÎÝ–Í·l¾eóª=Ë-G}uÔWG}µ¼û\Ò|Ió%ÍC & €€‚³úàÙÏþxöÇ£¯}ÝèëŽüÓ‘:òOÛÚvжƒò°éyMÏkz^£‰&6šØjA«­t*ëTÖ©l¿x¿x¿øÂþö¿°Ô j5øµ×¯½~íµª+PSÎc~›âä“ä“ä“3_<óÅ3_ìÿDÿ'ú?Q²mɶ%Û6¾·ñ½ïmÞ«y¯æ½:ÕîT»SíÃzÖã°ù­˜¿›òݔ怜ž~öYÜgqŸÅåë|É—lpÉË»·IMºhÒE»K×½tÝK×­Úþ¿°ý Û¿°}EŸØãŠWô¸bÅFÎû]°ßû•ßg¿¤_Ò/1S…I,ªMÝ*µ\»¬vYíñmÆ·ßf‡y;ÌÛa^Õö䦇ozø¦‡Wæ6¹«.Î{µïKû¾´ïK훳·9{›³¿Úî«í¾ÚnÅ>å‘­Ùú‘­7?wós7?wÅj¸ôm?¹ï“û>¹oUŒÀ™­f¶šÙª¢>¼vÿk÷¿vÿòîóú/®ÿâú/*ÚçãŸ>þéãŸVíQ|³Ö7k}³VEŸØ²NË:-ë¬ØÈÉÿa„뀀šE,ªÍê€|¸àú|Ðåƒ.¯»ZäOi­ÚʬXµ¼èàEïÿøþïÿø²¯]±è÷›ß,øfÁží¹ÑžUm 7:x£ƒ7:xUÄg¼sÆ;g¼Sþ·ž³õœ­ç¬Ø'æ× Wt,/vz±Ó‹ªö(¾}åÛW¾}¥¢O̯´^™êU´çaá°pXh X T›Õ/œ¸pâ‰ùµ­uW£ÝvÞmçÝvί9®ªÊ,oóè÷À‘޵ɩMNmRÑž¿úÅÐ/†Ví÷è¥ú/Õ©~EŸ¸Ù•›]¹Ù•+S·ãï<þÎãï\{XÀ` ÚÑô··e‡½kÙŸuÚ¢Ó¶hÙ{nýAëZpåˆ+G\9bÚÕÓ®žvõœoç|;çÛŸÎýéÜŸÎͯ‹}åÙWž}åÙ‡wxx‡‡wȯv­W«^­zµª6¶¬ªýü²ë/»þ²ëAÃvаŠöÖý¦î7u¿iÅ¢ßü)¿ù“}—Ýç½Ößký½Ö¿ÿâû/¾ÿ⥫:¿Îü:óëäO±½ü…Ë_¸ü…VkµZ«U…74^ºÚ+3öòó[ѧܺã­;ÞºãŠí9ÿ§ù•ßå·Uñ=sÚ˜ÓÆœVѱ,}»ïÛþTf7‚j °(8U5åÁí²÷Yþ¦ÐËÛÛ†SNi8¥¢ýp×wp×ê¬@ýrÀ!r@EûévO·{ºÝóå!_òå!+v¦þùÇþñŸ\ös|Ÿºæ©kžº¦ò=Ï_y䟎üÓ‘ªhÏm^nór›—W&R½°ÿ…ý/ì_ÓCÍ_{ýÚë×^;tìбCEGqÃô¦ß0}e>%¿muEûÏoymÖ ‡X œªåÂÖaë°uE{ë’vI»¤+ø-»Ïí·Ü~ðò† +V<¿–ú»)ßMùnÊÊ|J~ ñŠ>¥ï¬¾³úÎ2k…C, NÕÀ£¯}Ýèë*ÚÛˆÆ#h¼ò}~óÄ7O|óÄŠ>¥Á+ ^iðʪ€óèwÙ·Ñî:¡ë„®VþI´+ý[éßJ+ú”;ÝÑèŽF+£þ<äç!?ÉãêòŸ²q‹[lÜby?%¿EsE=p÷€»Ü]øð£ møhÃe“k»\ÛåÚ.Uu,}ÊÒ×¾›»€B §jà³ÆŸ5þ¬ñù•å·YkÏZ{ÖÚUÐéJ\±ºêà<ú]öm“ókW>úÍo.]ѧl5«ù[ͯÚ8ð±ß?öûÇ~_U£"j5ˆT´Ÿó9ÿ˜ó)Ð/Fí²Úeµ—ýrvØa`Õž…sþyÎ?Ïù§'…O, NM ™~õèF­þxq‡Åw8ê«£¾:꫊^ßyvçÙg~Þçç}~ÞÊé´«§]=íêŠ>kø¥Ã/~iÕÖ6¿¸¢OsÚ˜ÓÆœVù½åÏÄ­ª½­ù ·÷yoŸ÷öyoÙc#:òÛ»¿½ûÛ»WmFÝ6ê¶Q·Uô¹y,mî X œš?³ç3{>³çê €óè÷˜™ÇÌhØAÃVѧ̯3¿Îü:«sTô¢ÿýŸ¨ü1î¾ÍîÛì¾ME{+íSÚ§´OõŽ«|DmqÐmqPeÎl~…÷ÌV3[Ílµê¾#OþôáO^Qöúu¯_÷úÕܰ(8…çOÕ}¿îûußÿo(ø¯£þuÔ¿ŽÊŸ(¼ë»¸ëùõµu—ÓÊWà„ëO¸þ„ë+ÿ‰;tìбC~EéÊW¦ç =OèyBÝ‚±t*Óÿ¥ŸR\^£®þ1ÿòk/¿öòkîp÷€»+sÔõjÕ«U¯Ö¹—{Ù¹—UÕ™]¶¶aû¶_ö¦= (`0PpVOœßBù¹ ž»à¹ .áò.a¿x¿x¿xU–+_Š4šØhb£‰«ºzí·Ü~páÀy¼]ù£Ûäß›ü{“W´·9µæÔšSkõŒó…N\8ñ‚ý.Øï‚ý*¼Ýoê~S÷›¦>0õ©¬ÎÀõ½–ïµ|¯eE½ÚìÊÍ®ÜìJ0PÀ` à¬º3ÜþþÈßùû#UC6Þdx“áÕŸ¶Þië¶Þ²_ÓpJÃ) §¬| 7ºáÐ ‡NÜjA«­Tþ¸šž×ô¼¦çU´·.øpÁ‡«z„çOJ.Ù¶dÛ’m+sŒ›Ÿ»ù¹›Ÿ{×w½q×Õ²æ7÷®¨‡Ívm¶k³]À@! €€‚³*àxa¼0^Øn\»qíÆ­LܘLJÛõÜ®çv=¿óø;¿s|›ñmÆ·©®+€O[tÚ¢Ó-½çe¿~—³v9k—³Êj—Õ.«½b•¬ÌuÆ«ÓÒý©Lÿë}[ïÛzßV´·üÖß«nl_ÿÅõ_\ÿEeŽ«EI‹’%#h<¢q!«ù¯+êmýêTÿ#0PÀ` àTmœßä¹òb~3ÛÃ7?|óÃ7ùÖÈ·F¾lllU™>¬Î¸|ô›ûøÉŸüøÉÊ\§»bg§mÖ6k›U´ÏFý0ê‡QÕ5f*óÊ¥¯U-ïëŽ_wüºcw®vYí²ÚÃÂaá°ðÿñdßoë}[ïÛü9Ó«ÿ¹×Ë–W¦¢ž7ïÕ¼Wó^` €À@Á©ªØrÑÁ‹^tð¦£6µé¨eGnGþéÈ?ù§WŸzõ©WŸZ™àmõÀ§Ï=}îésW&ŠÎo›<¯Å¼óZ,ï1vI»¤]ÒŠöüÁG|ôÁG…<º–~Zmyoïþöîoï^µŸ¸tT_‘®ºNè:áù“ž?éù“ 3FÍ+SQÿ—~2´ ¨^`0Ppª*¾çé{ž¾çéeG¿“Ož|òä“«*¸Z=penàœßÊxÙû9iÀIN°¼Ç¸ë»¸ëíóÅN/vz±S!®öó±Ÿ/û,,}½o!×mépº¼î7u¿©ûM` €À@Á©ªxŸ÷öyoŸ÷*ÚÏ·_qû·WmdµšàJ›±ÇŒ=fìQ¯V½ZõjýF¾ÔÏ+¿Ï‹º^Ôõ¢®õí±ûá± ytíïïWÔÿIMºhÒE+ÿ)s¾óíœ Ÿ4œWþŸ?ýó§þTSBÓ§®yêš§®©èˆ¸ë€»¸K °(8UvžÝyvçÙígÖÚ³ÖžµvUõyÙ_uÀ•Ù[~íæ/»þ²ë/»VfoO¼þÄëO¼^ÑÞ>îàã>®jÇCþTãmÎþí-ù$ù$ù¤ò{;÷²s/;÷²Šúï­÷Þzï­+ßç!g9sÈ™}Êu›\·Éu›Ô¬¸tÜCã÷PEGtÞçqÞæ. €À@Á©ªøsƒÑŒÞ`tEûY8qáÄ…«ªÏlýÈÖl]˜ð7k}³Ö7kUUß¾îøuǯ;V´‡úÕÿ¨þGUmVtÍñŠ]Á|ËÞ·ì}ËÞõÿÆgn|æÆgV¦·ŸÜ÷É}ŸÜWÑþû,Ïâšx¥ì Óo˜~ÃôŠŽëÖoÝñÖÍ]@! €€‚SUñg«µZ­ÕªÂàóå×^~íå×V¾·_òå!_²ÅA[´ÅA…ç8õS8µ¢}6Þdx“áUÕÃÁü×Á]ùÚ.;ºî—ôKú%Ë[“ü)¿íó´õN[ï´õV¦Ï£¯}Ýèë*Úÿ3{>³ç3{ÖÄoe^™ŠŽ+¿Ù¸¹ (`0Pp–..i¾¤ù’æ•ÙO¯]zíÒk—Šösõ¾Wï{õ¾+ÓÏüZØ¥cÈB€+³çýßÿñý¯Ì~ž»à¹ ž» ªŽ·¼ü–Ô»o³û6»oSÑžó«®—wÏ‹^tð¢ƒ+Úg>fV¦Âõ¹éyMÏkz^Í}JnEߦåý§«šX œeŠù·•ÙÏ%\²Á%T´Ÿ†SNi8eÅ‚«§úð§o?¸ýàöƒë.§•¯ÀÊÔöíÝßÞýíÝMl4±ÑÄUÝÏzßÖû¶ÞŸ‹\V»¬vYíÊìs~ùuæ×9òOGþéÈ?-û¹Å+SUr ëÚeµËjW´ç潚÷jÞ+ÿó#W÷¶2cæûqßû~\Eǵtàmî X œeÇŠg?küYãó›ÿ<äç!?ÉŸºZ~?oúÖ¡oÚà•¯4x¥2!eü»øwñïæ|;çÛ9߿׉Îk1¯Å¼ùÍ¢ozø¦‡ozxég¸–·ì§çÞkù^Ë÷Z.û:æUWfÿ›Ÿ»ù¹›ŸûÝ”ï¦|7eÙûÉë³É¿7ù÷&ÿ®Lø=æ´1§9í?cþ3æ?còýµÝWÛ}µÝ´«§]=íêk»\ÛåÚ.ËÞC~6_ªÿRý—ê¯L®:ýªÓ¯:½j뜜ºiej5õ©L} ¢=ÿãèý£ÍZ@á €€‚SµAתŽÖ6ºáÐ ‡>öûÇ~ÿØï—÷½úø§º¼}^ù ÿtîOçþtnU‡³Öžµö¬µ[-hµ Õ‚UWç<ª_úIÆ+S<„®Ú:G ¢Qƒâ €¯ÿâú/®ÿ¢¢=¿~ÕëW½~•Y (`0Pp.ìaÿ ûWUе¸Ãâ‹;¬ŠP­Û=ÝîévÏk÷¿vÿk÷ç?yh¯‡özh¯Â€saë°uغªn†œ¿²c‡Ž:Vqµ[”´(iQòØýðØU[Š>ñðÍßüðÍ—woñàQ|p^òûì’vI»¤nþ °(8?^ùã•?^YÅA×RÏgÍÅÛ›—Û¼Üæå[w¼uÇ[wüO\æS` -®Ìgí0o‡y;Ì[ö «+:wMÏkz^ÓóV¬Îù­ž™yÌÌcfæ·ø^Çþ×·ÿúö_ß.ÿéíÆµ×nÜò~b~“𢠀—9ž/áò.Á|°(PùSxó¿³ìü·ÿ¶óßÚn?¸ýàÆ÷6¾·ñ½vØaà€»Ü=àî#ÿt䟎üÓò^«š;ê«£¾:ê«­æo5«ù·Ø¸ÅÆ-Ni8¥á”MGm:jÓQ½·è½Eï-NÙô”MOÙtòÉ“Ož|re>eé,oßlûfÛ7kµV«µZ­Õ²NË:-ëô¢ÿýŸ8iÀINðÆùoœÿÆù….V,DÌŸò›¿÷ØèØèØ(¯g^Û¼ÎyÍ;•u*ëTvèN‡îtèN£nuÛ¨Û>ýéèOG¯ê«K߯û~Ý÷ëÖ«U¯V½Z«'n¯Y²iÙ´lZE·ãΟyl¦ X Ô«ÿZØšÒóš~«·2õääî'w?¹ûš|¦òúP¾2û?¾ÿãû?n$…I,`6ñÁ‰N|°¢gç×s¯i5ùyÈÏC~’_Ÿ]¾2“.štѤ‹Œ 0 €À¬Ñò'ÚuÉÕ+:uù:ô<¡ç =Opí/PÈÀ`({ì‡Ç~xì‡ò_>ä€C8ä€5­ùQ—¯Æ„ç&<7á9£(d`0”•Õ.«]V»üß—Ml4±ÑÄ5çš×ùuæ×™_§|¶ë¹]Ïízºö(|`0üWü»øwñïÖäA_qû·_q{ùcÆ ã…FPøÀ`øåÿÖÜl×f»6ÛõëŽ_wüºc±õ¼óZÌk‘éÒÇ~ltltläÚ_ ¦ €à|~Þçç}~^ó^Í{5ïµæ\|q»‹Û]Üné#mQÒ¢¤EÉC¿úÅP£¨)À`ø åÿîÜdx“áM†_ šQÓóšž×ô¼¥÷S8õS]û Ô,`0ThMxðÙwœ}ÇÙw,}tCzìÐcE¿@M$@…¾÷ý¸ïÇåwÞ®çv=·ëÙwVßY}gG8ºàÃ.øpé£Ûký½Ößk}Ñ/Ps €À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(àÿʦVz{¶š¶iÕ´=WMÛóÕ´M_íÛŒjÚ^¨¦íÅjÚfVÓöR5m³ªi›]MÛËÕ´½RMÛ««}{­š¶ÿTÓöz5moTÓöf5moUÓöv5mïTÓön5mïUÓö~5msVûöA5mVÓöQ5mWÓöI5mŸVÓöY5mŸWÓöE5m_VÓ6·š¶¯ªiûzµoóªi›_MÛ7Õ´-¨¦íÛjÚ¾«¦ma5mßWÓöC5m?VÓöS5m?WÓ¶¨š¶_Vûök5m‹«i[RM[YõlSÖª¦­V5mkWӶΪÚÀEK P$Š6Î9ÁÀš£hà¹{ÎÝsîžÙ”U¶M­¦Í3‰=ØÓˆ ÿiÄkÎsˆ×œ'¯9Ï~µš¶5çÙÃkÎS‡×œç ¯9OöŒáâ{ºpu=cxÍyº°ç {¢°g {а§W×S„לç{r°g{Z°ç{Npu='Ø‚=¸àŸ 0TŠ€Â'€JPøÀP)` Ÿ*E @á@¥€(|`¨0…O •" ð € RÀ>0TŠ€Â'€JPøÀP)` Ÿ*E @á@¥€(|`¨0…O ÿÓ®œvå´+³Ÿ³Ÿ³Ÿó?« ¬™À>0kœ¹gÎ=sœ|àäϼïÌûμ¯ÍÈ6#ÛŒ¬»ÒòýäûÌ÷Ÿ–š€UU«‡˜"÷ÙzŸ­÷Ùz£æŽš;jn³á͆7^wµË?7ïCÞç¬ ¬ XÀ—feÍÊšM»iÚMÓnê_«­þµê¤¼oy?ó>;u`U`UÀÊSóÍ/›_6ÊÍSnžrsÛwÚ¾Óöûõk·õ[tm2îŒ»ÜØ®Ç˜gûÚ²ä‰=v» Ë¤èƽOê>)û~ßÚ=&æÎž¿&}þÞûܼÏyÿócqJ ºW%ÓšŒ;cãCŸo×c̳ÌÚ²ä‰=FÔê2)ºq̱Ý'eßß:»ÇÄüÏùÏó×ä¯ÏßkU@uSƒÍi5§ÕœVýgöŸÙf嵺ÛvW5Ÿ0~tŽ?{ùÈÁ}f•• 2`@Uµù>óý矵×Íì?³ÿÌü¸œ_Xõ«‚íwn>aü:Wëöò¤úÌ*+›1cÀ€ªjó}æûÏ?˪€UML ³¤dIÉ’’ÑãG=¾2¿<Ýxv£y îxdðÀû;ßV6iȺUmÜ[©vÒ=tËû÷§2=Ï1?^çªbUÐì˜w<2øêo+›4ã†ݪ6î­T;iÆ ºå}ÈûcU@ÕScÌ4wÐÜA½‡õÖ{Øÿã¶“[œÕä…{ï?£çe Ùu@—j}+j²ë€.yßò~.ûXòãÍÝ€å_tÜ«É 3ö¾ë†žG”=2ãê]ª!ô­¨}dÆÕºä}ËûiUÀÊSÌ~sö›³ß¬Ìõ1Q»½ûv¿£€âÞJ´yŸ+styŒ¬ *·*S»û÷V¢ÍûlUÀÊSЂۂۂۖý ЋÚ¦õf¿ü\çøWûM¬YÑïÒmÞÿüX–}¼yMŒ ¬ ~kUpüÁ›ýòsgï7±fE¿K·yÿóc±*`y €)Pמ¸öĵ—ýKϬï>3z\[sCߊÚü¸–}ìy}Œ¬ þoUpë€×ÖÜз¢6?.«*OLÁYöõ=Mökж޼O6:â¸>‹/ú]ºÍ1?^×ý`Uð[«‚ÆWÖ›÷ÉFOÆ}:_ô»t›c~¼V,›˜²ì§úu» ÅáMÂo<öŒ¾}‹;ú]ºÍ7?vOÀªàÿV7n~û`rXß¾Åý.ÝæÇ›»USæš;hî eG¿?üý¸ûµ^s¢ß¥ÛüØ—ç54–(öUAÇ›„?ü}ÊQýZ¯9ÑïÒm~ìËŽ­ Öd`ªÙ’’%%KJzë=¬÷°Šnø¼¦]õ»ì«+º)t^üžÆŸ*h|e½ykÚU¿Ë¾¸¢›B[¬ÉÀT³ÑãG=¾¢ëWÖ„gý®Ø³+ªX^Oã €b\ÿ³~WìÙÀV@M÷äø'Ç?ùßß ]qÿ÷_qÿüçï<g•Y1`ªÍœVsZÍiUѯ,³¾ûÌèq­¸·¢6¯OEÕËkkŒP,«‚[ô¸VÜ[Q›×Ǫ¨‰ï³xŸÅûTô› aðŠS¾*ûªì«þ3ûÏì?³ü—ù⃶i½Ù/"ÞÊ´y­Ê×0¯m^gà €š¼*8þàÍ~ñV¦ÍkeUÔ,K_û»lÂàÊS ¦Ü<åæ)7Wôþñ³ãëw†p·2m^«Š*™×Ùx &¯ ¦žÝï áneÚ¼VV@Í’ºy¸[·Ò„ÁË&fõjVÖ¬¬YÛwÚ¾Óöò_רÝÞ}»ß!Ö]Þ6¯[ùzæuÎknèPÓVcjw¿C¬»¼m^7« &W0«Õ´›¦Ý4í¦ò_În“[œÕä…²Ò!{ è.Ð]î¶tÈ^ºç5,_Û¼æÆ5gUÐq¯&/”•Î= »@w¹ÛÒ£tÏkhUÔ\Âà•!fµê_«­þµÊ!gì½ÿŒžGˆrW¦ÍkøOþ«Õ¿VÿZÆ5gUp× =å®L›×Ъ(Âàå%f5ùl½ÏÖûl½ò_¿g7š×àŽ²S†t°‰w¥ÚS†t°I^ÏòuÎëoPØ«‚fÇ4¸£ì” ØDˆ»Rí)3°I^O« ˜ƒ+CÌj2j£æ–ÿÊ=2xàýoßVU›×³|óú‡öªàêo«®ÐôíÝm´Ý/K÷§¦ÇÀy=­ €b% ®ˆ˜Uoʾi6¼ÙðfÃË;}ìØa}û n«ªÍëY¾ÎyýósaHP¨«‚äè¾ý '®é1p^O«`M ^š˜Unî™sÏœ{fù/ÕnCÚ]Õ|‚ÈvU´ymË×ixÄ1}¶Ö®Š6¯mùšç瘠ðVO–öÙJ¼*Ú¼¶VkN,f•k3²ÍÈ6#Ëa~}jp§þà '4ýü¼#ïëóý•#zýs‹ºŽlÿxË[ÏiþÇ æm0ºþ{õ²öƒ›Îiü»~I›G7úiDãíëÍkqt²c¯Â €óÚ–¯y~.ŒI oUð|Ïþà 3žµö½Ûo{Ê¡;íúD«Ûf-wll0ºÑÂzYçÙþÔ¤íE];{³ÉóZ3wìU˜p^[«€¥w,fúeú/Ó™^þëÑmý]›Œ+œ¸4ùdŸ]zônQÒhï}ê.§¦þéöŸf œ×¹|Ÿóób|P«‚’iMÆBPZQÜhbà ê¸ìõÀ&ÿnYÖpák÷?ø`¯‰…çu¶*(¯øÂ`0«ò Ów~ßù}Ë%ÎØ¸ËízBDúý¸ã®ë;ós›^ÑèżoíÆ59¯Qûë¿è3´äø©ìûØ6M^}ê ]{]/Ü{~u/ý¹g³Íoȯ þß›Cbœ×¹|ýóób|P«‚CŸo×£àÜ…ý}z³ËŸÙsÔ_º%zÝc]ÆžÚäà7¹ª^­º/Ô°ô+—4Ÿ¾Oÿ7 -ÎëlU°lÅ €Y…Þâý'Þ¢ü×`̳}mYRiëæ½ª÷mݬîEoœðÛ ª(ÜýÛ'¾¼ÁI ¯,Ì8¯sù>ççÅø 0VÌÚ²¤0àúÕï_wB°Õè+ºwÌ_³ôSó??¼Ã?úw>¸ðŸœ×Ùª òjn,fš=xöàÙƒËý'öØí‚.“ !"}î‚ý‚mž9}n—ËÚu~i¯/¶P™+zˇąyp^çòýÌÏ‹ñ @a¬ FÔê2©0à£ßÝëÍÖS+è.ý®Ço7±yïB €ó:[¬˜šW[\—5XtãÞ'uŸT˜WÍ.;Ê]Üað¡ýïùVŸ)%·~œ×Ùx °WcŽí^ p¼ð_çöX·2ïtÑ otkñ“hõL£ö…vp^gã `õ{rü“ãŸ/¦Èeßï[»ÇÄ €¿Yë˜a;>5Ø»W÷[îüCÿ‡;¾dƒmoÞnÐå[¬ßòÔ[4z¨Á9W¡K^gã €Â^Ü:»ÇÄ €?š:qâöŸTæ½ïµ||`ï;~kmP(p^gã `õ[ôÈ¢G="¦ÈÚÀ3[ðú¶kïµþ¦µø{ýê5¯;¡¢žwžÝü¨&múªã5­G”ÿ¯®€å_îÀ?yöž~ÏWæ½?^9u‹~‡þÖÚÀÀkº5è à)ëØŠ[lý±õËôB{ð£ë¿W/ËûÖ©öF‹6xù ÛnÞ¾ÛÄw¦ëïnyè½ÿ²ë ôï–¿ëí݉þ÷Ĺšò `#Óf³Ùl…´*(ÜgWþ à9ßN¸tûów5x¥ÁÚu¿ü¿µA¡?ØÈ´Ùl6›Íf³Ùl6›Íf«ÌöÔùOÿÔùCÖ²öµ+ýæ¯_ƒžÌšàý'Þâý'Ê÷1Ïö´eI!D¤»íÜî¢æå½:úÝŽŸ´žº¤ùà'û¿¹ìX÷­C9n»©…çuþ­~@ᬠ.˜µeIMð3{ŽúK·äÿþ1ÙæM6Xhp^g«€Ê˃Û+î¿âþ+î¯|蛿~õ‡¾K³*¿}ç÷ß·üÐ?cã.7¶ëQi³]Þ^ÿÕ¼WÓÛÿ´ž›Uæ]Ïì¹çkÿ÷KÞB€ó:ûU/…½*8ôùv= 3>úݽÞl=µ2ï=päÎë´üïÿs¶Ë…-ÇZœ×Ùª`Ùjnè»40«Ð/Ó™þËôò_ƒnë·èÚd\!D¤nxCãÓó^=¼ÃÀž^öë?~òˆ>}šåO.ü8¯³_õPØ«‚’iMÆf\ÿ£úýëN¶}E÷޽ëáþÑ¿óÁK¿kê··Û¦IáD¿y›×Ùª ¼â}—&f•k3²ÍÈ6#Ë1~}jp§þë7"=áúN÷¶y-ïO«'5Üðž§w:i«û>|õðk¶ô‹¡G­µC‡©ìûØ6M.ý¹g³Íoh2¼A÷z‹*úªNô›×¶|ósaLPx«‚ç{ö^hp»q­žiÔ>ÿóE];{³É¥}F=ßí§ Ïýsó®µOmrð‰›\µôë¿ÝÄæ½ íÚß¼¶VK+¾Ðwi`V¹3ï;ó¾3ï+ÿ%ù¤áÇôÙªzƒÒ¯¶ûÿÚ»¿Ðª;€ãX÷"e­Vk³6êÔTlg,%.I³®I.ŧn%Úvµk­3®ø`t0„Â6Šq…ZBC`ÃõF%A«­©¡D²Zö"‹%°[léÚqz÷ðc¸½ÙI͹'ŸÏÃ!¤ñæœß=~äÛä>óíýåÞMߘù­ä/ïó¿|âæ¾<ÿ£;žŸ±sèçi^0Öö4à˜mñ™Çsáž }[ÁÑãËïO[îénß\ñÎÍ÷Üö‹áwƒûf-|âŽÿx¿«ëÁÓ€c¶¶€lGß¡`®»cÍÇš5¿`:'¯¸Xs* ¹4Îç7ÿ\ºýž–}oîîÜï LJþ6ï?wínûýC/.>|uѦ'›þ8ô*"ßõøŒÆÛÚ7o¸ÿHÕ¯ÓpE1Ûâ™Çsáž }[À è 6IDATÁîC5§Ò€ãóññÓW~üô¼µU§¿ûÐŒ3ÿt{Ý´=KÞ[t¦â‰ßÝÜ~oí¿zÞ{ á·iK¿qŒÙÚ €‰iâDß¡`®»|k¾5ßZüây´eÁK³Ž¤çÏ&ÿgœKý×t¾ûo̶xæñ\¸'HßVðàÃ³Ž¤!—–Џ#ý|zŽ1[[0qLÌè;”Ìõ÷Yá³Âg•»*wU~ÍûÏ}þç ÛÓPË÷ó,žsÌ?ž ·$iÝ Þ}¦¡1Í1µ¼Ž1O[0ˆ¾C ÀÜ ûóûóûóÅ/­Ã›V¼QÓ.ÜŽÕ1æY<瘿û€to»Õ´ ·cuŒyÚ €¬}K€¹A§ NœRü2›sîöKÓ; [ZjrwË·£:ni©ÉÝó,žsÌß}@º·‚Êg§w¶ô­ËÝ-ߎ긥o]î­ÈÑ7 ˜ªiRÓ¤¦IÅ/¼¾Õõ-]/âŽæ3,žmÌܽ@ùlØ»t½ˆ;šcÌÐVdƒè;R07Tï¾Þ}½ûŠ_„µÇfo¯8[8Þ²*W'åŽøx¼eU®.fX<Û˜¹{€òÙ ¯ª8[8Þ×–«“rG|<Þ×–«‹Ú €ò%úކÌUY¨,TV]¨ºPu¡øeyrÁꆺAw¤Ç˜[ñ)|Rø¤©¿©¿©¿øEûºæ-¼"î&9Ƭ¾æþú›ú›úcÎn7Êy+ØøøÂ+ân’cÌÊV”—£G;vоcKfÜ Ì˜;0·ÔËøtÚ¾ú=o©çÔôb¶î1²²¼–«ß#ñ–:Æ|l@9ººæêš«kDß±%3ÎÚ:Û:ÛJþŸßµþ¹å5rïÐc̤ÔÄbžî+²¸=µ¼FîzŒ™Ø €r7ô÷€EßÑ€gת¯U_«^¶mÙ¶eÛŠpYñÓéUÓ.}þÖ†­ ÒoÌ!fR<«˜aÌÓ}@·‚™;§]úü­wÖÐ ýÆb&¶†€I…üÚüÚüÚR¿¿R»cöSï|õâsoœ71Óo\{̡Ԕb†î%²¾,žSñÎW/öü¼qÞÄL¿qí1[Å`RäÜùsçÏ>O´ßŽë>ýÆÜÜ?L¤­`ñœŠw&ÚoÇõŸ~mÀ¤Î‰öí'ÚKýX3þòDxoà¸ÆRð9ĬÜ3LÔ­`æÎi—&Â{Ç5–úƒÏ¶†€I©®›ºnêºiê°N7¬é«ß“½ô×5üµÇ|Ü'Ø þ·¼–«ß“½ô×e+ 9˜Tþ÷~ ë˜·ðÊå[7þµ±«|£oœ\Ëð×ë÷{°”Þ 6>¾ðÊå[Ï<ÕØU¾Ñ7Î?®ÅVÀH À”áßp¨“ V7Ôu”WúsNruÞÕF²¼¥®£¼Òoœ³­€Ñ€)ùµùµùµË¶-Û¶lÛð?­=6{{ÅÙ¾Õõ-]_8ÜòHnIŠ¢ïá–GrKâÜâ<‡¿–¸Þ¸v÷Œ|+X¼ªâlßê?ì]º¾p¸ownIŠ¢ïá¾Ý¹%qnqž¶FO¦Ì\«¾V}­º­³­³­3ÉïÇÌ9wû¥é‡7­x£¦½Ðݲ2W;Ñ·»ee®6Î!Î'É™Ç5ÆõzÞ`,¶‚Êg§wÞ´{QM{¡»oo®v¢owßÞ\mœCœ­€±%SÆæÌ˜ÛÔßÔßÔ?5±G[¼4ëHçäkN ~ôô¦åŽmîÇŒÇï•üÜâZâº<¿pý·‚žu¤sòîC5§?꾸üñͽñ˜ñøñ½l\o0åïÓ§…O{ôè9Pu¡êBÕ…©ßHíͳ¿_qhëœ%¯.¨?x¦aí}Õo¯|tǒ®~¾®ûô—?¹¥¾+>ŽÏÇ×Ä×Ç¿ýfß7Î9Î?®ÅS ã½T÷VÚ:çÉÔ<³ãÃûªß^ùò¤%Ý'_=¸¡®ûô—¯«ïŠãóñ5ñõñomŒ˜l©,T*{÷õîëÝ×4©iRÓ¤©©çççì©[­€Ñ€É¸Á)ƒS§ìÏïÏïÏWîªÜU¹ëÆÿ`7¾oœCœçl¶®˜ 'ßšoÍ·k>Ö|¬¹õõÖ×[_ŸÿÊüWæ¿2úéÆãÄcÆãÇ÷2s°Ø ¸1`ø?zwöîìÝyúòé˧/ÇÇfSqèí™Ü3¹g²É0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$"~0$òfÇ›ovlmÞÚ¼µ9>øbà‹/L€ô€2BÈ #`€Œ€2BÈ #`€Œ€2BÈ #`€Œ€2BÈ #`€Œ€2BÈ #`€Œ€2BÈ #`€Œ€2BÈ #`€Œ€2BÈ #`€Œ€2BÈ #`€Œ€2BÈ #`€Œ€2â¿ -G\5H¢%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/takeLast.png000066400000000000000000001120301431412030200251360ustar00rootroot00000000000000‰PNG  IHDRVØfa‡gAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwtÕþ?nÑÛ¼A¥Ø ÒD,*н`ï Øìå^ċТ‚ØQ±‹í¢¢™" ö.ö‚‚ØE%¿?æ~×/wÅð “ÃóÌZ³X1gΞ÷ì³³Í+3{•2ŠÂ*JPÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$ÀEB P$Àð˜vé´K§]šýœýœýœÿ[MÀ¬À¬€Â7oÚ¼ió¦MMÿÿ-ÿŠÊc(n`V¾ÉÙàyƒç ž|Àä&0øîÁw¾»õèÖ£[n°ÜòãäÇÌŸ¿—š€YYËï×ï~ýî×ï^‰_‰_‰Ç5×p\Ã~£ûîW ?¹rùÑò#çï’¿£ÊÆXc,u‹˜"÷é꟮þéêcæ™7f^³ÍF4Ñ`…Ëß7oCÞ×Ì Ì X²ÅÇ.>vñ±SK§–N-=|Ôá£Õ –äïž·$o•«c±@®âçzÊjSV›²šÊP»À—feÍÊšM»nÚuÓ®ë]¯w½Þõ¤¼my;ó6»t`V`VÀüÖó[Ïo=êšQ׌º¦AË[˜·ÖUŒ±ÆXX™ €)L`ê¾e ÊL¹~ÊõS®oóv›·Û¼½lS«Îk±U“ §¯ßéÚºŽ{¦WÿÍKÝ}·s:=]»×‰]žÌ¾ß§~×Iù¿ó¯çß“þÚe{ß¼ÍyûósqI ¶g%ÓšL8}ýC¦oÔuÜ3çÌÞ¼äÑÝGÕëôdtí¸cº<™}Óœ®“òç_Ï¿'ÿþüµf,ůï|¿àû 7¸pƒ 7XžÀ ùç[?±ó!ïp`û“.éyâ_‡OìPzVýk?Ürÿs›Þxt¾Ï¿’ÿ×ü;óW-Ïûæ-ÏÏÂÕŠuŒÝò¨]^ï¢].2 u·þG\Ùw“ÍŽ\ýæ›Õ?v•;÷mwD¾Ï¿’ÿ×ü;óWc¡¸ €)L`ê°¹-綜۲÷¬Þ³zϪú´i·]Öü±‰«õ}¿cüé‹G ØnvYÙÀ}úT×>?f~üü½–â Y½gõž•Ÿ—ë 5?+ØvçæM\m䄎ñ§/>ùþv³ËÊfÎìÓ§ºöù1óãçïeV@î·ñ¿ÿmüø Ço8~Ã¥ 6j°ß€çwºæ’ï<¯gÏñãgάÞ}~äü]–¶mùågç*uqŒísÝ)[·ê1èò‰«µïvñů½Ö¹sõîó#çïbŒ…â ¦0 €©c—,.Y\2vâØ‰c'Veb´þœFó׺õÁ}ïéxsÙ“wïÓ¹zãÞ*ퟸ{ŸÎyòöT¥åù9æçëº@uÌ š½Ö­Ù®ãÍeOμ¦Oçê{«´ræ5}:çmÈÛcV°²yçõw^çõ’>%}JúTå§@«»6>dó.G6œøXMĽUÙçïž·¤*mÎÏ.?SW(ä1¶çÐ#×\Ä©SŸ|¿Ãn5÷VeŸ¿{Þc,ÔE` “˜:c^ÿyýçõï9¤çžCþÇ6NnqF“çfîµßÌ=8p×>j!ô­lÿàÀ]ûtÊÛ–·óÿ˜†é9¤çüÜõXúYAû=›<7s¯Û¯é~xÙƒ3GöéT ¡oeûgŽìÓ)o[ÞN³€âvß«÷½zß«Uùåþ&ÛÒçô·îtý?¢Ój+ô­lŸ·*oaUÎ%?kW(œ1v×_†ÞÓfõ³Íx´ãcµúV¶Ï[•·Ð u…˜Â$¦˜óÆœ7æ¼Q•IO´Ñ^½ºÜZ@qoöy›«rvyôÌ ª6+W¿Ë­÷VaŸ·Ù¬ ˜üúí¯ßþúí]ÎèrF—ÿãNß'ú¾}ðG[w½¾ItA¡…¾•†Á]¯o]·|Ég—W ¯†^¬ø1¶gß#Òõ‡³ÚŒ¤ãã…úV¶Ï[›·Ü …LLaSЂ›ƒ›ƒ›—<Å9ÿÀn­6ùåç5Ž{yÇIu+ú-¿ÏÛŸŸË’Ï7¯‰¾€YÁïÍ Ž;h“_~^ã™ÃvœT·¢ßòû¼ýù¹˜Ô]?žöãi?žÖ¯{¿îýº/y<ï4æ’w^VWBßJWsI‡;/[ò™æÕÈ+£‡+fŒtÍÄí{ԕзҕƒ¯™Ø }c,&0…ILš´ê¤U'­ºäiMÖkï™]¯¨»¡oeûü¼–|îy}ôÌ þ߬à¦>]¯¨»¡oeûü¼Ì ê–ŽøáˆŽè~A÷ º_PÙè½Áν6ßë·—Ý´í”7ëzô[~ŸŸQ~v•{^™¼Jz Pcl×í÷ïÚüÌówš=¤Óóu=ú-¿ÏÏ(?;c,0…ILÁYòý=Mö]«Íšó?^ïðc·ëX|Ñoù}~Žùùºï³‚ß›4¾tÍù¯÷x¼]Çâ‹~ËïósÌÏ׬ -jº¨é¢¦Û>±íÛ>QÙˆÝvŸ£^?ûÅžÝÆ_=ó‰bŠ~ÿgßmüÕ3ŸÈÏ´²:äUÊ+¦çÕ5ÆîµáEl˜^|ækIç-‹)úýŸý™¯%·ÌÏÔ …@LaS@–¼ª_çsZÖ$üæ¾cNïÕ«¸£ßòûü|ós· fÿoVÐ~ý&á7÷%‡öêUÜÑoù}~¾ù¹›œže=Ëz~Ùá—^éc7o|Ú[W¶/Úз’}~Ö•Õ$¯X^=Xž1öoÆôÙô‘¢ }+ÙçgmŒ…Ú%¦0 €)óúÏë?¯ÿ’£ßþuì;¶Zy¢ßòûüÜ—ç5Ô—(öYAûõ›„?ükÊ‘;¶Zy¢ßòûüÜ—›¬x£šj>ªy¥ÑïC¿ú¤•-úýŸøƒ!‡_}ReõÉ«§Ë6ÆöÕ¸§Ú´²E¿å÷yŒ±P[À&0µlqÉâ’Å%=‡ôÒsHe|^Ùîú]òÝÀ•=:¯a^Oý €bœ4¾tÍù+Û]¿K¾¸²‡B›¬HS™zÌÔc*ûµ{Iÿ½´éÊý–ßçÕ¨¬Vy%õ( êclÿñW›l·2G¿å÷y5Œ±°â €)L`jÙØ‰c'ŽXÙÔdeXëwÙÖ®¬by=õ+ŠqVPüký.ÛÚÀfµea²0Y˜T6o´Æ~Ç<[è[qŸW¦²ºåUÕ»€%±}FŸÒ¥ÕÖBߊû¼2ÆXX‘ÀÕåñ‰O|ü¿¿~Ïð{†ß³`ç;/ØYe–˜Z3·åÜ–s[V6Ézí=³ëâÞÊöy}*«^^[} €b™ÜÔ§ëâÞÊöy}Ì V¼Aïzwл¿óÔŠ6ëØqmJoûóô§Ä½÷yeò*U¬^^U½ ¨lŒÝð¸­v_§ä¢í^¹s«™âÞŠû¼2y•Œ±°b€—ßo{ÿ¶÷o{Wö› að²S¾,û²ìËÞ³zÏê=«â‡ùü»µÚäoUöy­*Ö0¯m^gÝ €º<+8î M~ñVeŸ×ʬ`Åxaì c_[Ù¯¨º }í“G z—¼Ï«TY ó ëi`Œ­è̳ͷÜQлä}^%c,¬àåWþÞß%W˜Z0åú)×O¹¾²ðŸw쎧 w«²ÏkUY%ó:ëoÔåYÁÔ3w<]¸[•}^+³€·yÙæe›—œYrfÉ™¿³âï–'|4ü<áîR¬ ¼å  ?ïw*yfÉ™%gæÕÖéÀûßw¸²ñ&-…»K±*ðW6Þ¤¥1jšxùånî6¨2að’ €Y±š•5+kÖæí6o·y»âÇ5Úh¯^]në.í>¯[ÅzæuÎk®ëP×fãêw¹U¬»´û¼nf5'y"y"y¢âH»ö‰Ígµœ¾Í·]8c±îR<úƒÛ.œ±^½ŠUÍ«­×1vÝw[}¹Ö}Ýòjß­¾ë.Åã oyµïV_äÕ3ÆBÍW/apu³BM»nÚuÓ®«øáì<¹ÅMž++¸gŸ.Ý¥Þ—ܳO—¼†k›×\ß îÌ ÚïÙä¹²Ò™cûtè.õ¾tæØ>]òšT³9esÊæ”ü¥ä/%©8Ævü梒ñ ºË¶Ï«÷;÷¨ý¥ä/%É+¯ÂÊ<ÆX|¿’IÝeÛçÕ3ÆBÍ×aðò³Bõ®×»^ïz?3÷Úof÷ÃE¹Ë³Ïkø;+ÿÕë]¯w=}€º3+¸ýšî‡‹r—gŸ×Ь z½Òî•v¯´«8º®ó×þÑîÄžÝÇ_;óiQî2væÓy%+V8¯¼+çÛò ö=½tñÐמéÜQ”»Œû¡¯=Ó¹c^Ic,ÔðŠ! ^Z`VOWÿtõOW¯øñ[N£ùkÝZvòÀŽ}6â.×þäûl˜×³bóúë‡ö¬ ÙÑkÝZvòÌûl(Ä]®ýÉ3ì³a^O³€ê2pöÀÙgWW·ìîú7ž Ä]þ}^ÉŠÎ+¯ÂÊ9ÆûÇ;mw”wù÷y%±PÀ+ž0¸*À¬ cæ™7f^Å܃úÞÓñfñmuíózV¬s^ý€ÂžŒl×ñæÚ Mßê÷P£m~)ßžºçõ4+X~?Þþãí?Þ^Ù/’¶¹òÖ³¦×ßVÃzÀWÞzÖôz•Õ9¿ z#¬lcì…³^~o« u+j=­Þä]:Qþ, ¡Uy%±PÀµK\05ï벯˾n6¢Ùˆf#*~̾yø˜!½vÜV×>¯gÅ:çõϯ…. @¡Î ’£zíX8p]ózš,¿©Ý¦v›Ú­âˆºñvntò^‚ÛêÝçU­Xíü*è°òŒ±» rXë.uñ^Û €ó}^Uc,T/pá—'¦ÆÍ¯ª1ª—¸ð­œa°˜7øîÁw¾»â‡çãµ?z»-„µ5±Ïk[±æùµÐ'(¼YÁã¥Ûm!®‰}^[³€eóÕü¯æ5¿â(ºþŸ·í±Û'ÂÚšÛç®XùüŠè™PÜcìVíù|³“êbô[øp¾Ï+lŒ…ê"®[Vž0XLk=ºõèÖ£+~`~}b@‡Þ# '4ýlØwo÷ý¥£z\µYƒF·}dƒ®[Îmþçuæ¯3¶á»kfm4Ûø;&­Zï§Q·=´]6¿ÅQÉ= 3Îk[±æùµÐ'(¼YÁôî½Gf<{Õ»¶ÝúäCvÚõÑ–;·É6Øaí`±¾[3ë8§Ý_›´9o«cÏÜdòüÁ¬zfœ×Ö¬`Ù<·ús«?·zÅQ´d« Yp÷ξÛy3ön÷à þyÔzww·mûµ.Z÷óÿXó’µÇ7ú®ñumnn{uëµw[åÐC»Œ¼ü⇯,ä8¯pÅÊçWDÏ„âcû÷½rÃMZÐ]³›¾rÞVÙþký{§k7}‡NMïh2¶Å· ?[ëîÆû®¹Ã÷—ü£Ñ¸íß?þOÜVß)Ûo9¬ðà¼ÂÆX¨.ຫ¸Ã`05è—¿ÌøeFÅG翵تɄ‰K“÷Þ¥kÏ%öZk»Kéé‡}²íÇ…çu®ØæüºèŸƬ dZ“ …”V7š´ö9k°äùÀ†ÿÙ líï^¹ç¾ûzL*Ì8¯³YÀÒòø“ÇŸü;w§}ué ÷..œ¸tëIãîHÎ]oX§?÷<­êÿ?[’ôЈç 3Î+\±ÍùÑ3¡¸ÇØ“>}ìÝÍûBPzöÉÓƒŽÿjÛd›‹šU]ûO½ò—Mv+ä8¯°1ª‹¸8_,¦&?0½ôZЫâGâôõ;]»Q×BˆH¿Ÿp약l:´éðFÏçmÛhB“aÚ^ýùvƒJŽ›zï>wkòòîÚã‚ø»½týË…?wo¶é5ù=ÁÿûpÈB €ó:W¬~]ôO cVpÈôºrœ;·÷1OmrÉÓ{ŒùGçä‘O®|¸ÓøSšt†—­Y¯Ás ú”ÿÎÅÍgìÝûB €ó:›,­! ‡,²°âøÙ}ú˜Ò ,œ¸´ùK[Ÿ¾ójÿmÜô†®µê†§ìsâq ¶8jXÓ±Ã;λhñ/oÚãðg»ÖCëÓbzùsérÈȯšShp^ንϯˆž Å=Æ[øì‡®å t×êwnPòP¯©M¿.ß¶Í¿ÚéáuÚ¯ýˆÇ7^÷ø–÷ü£¤ñ¾O_:£ïJzìðkÓé•ýßD¡Ày…±P]ÀEø[¬¢ƒÀÔ ÷}ïÑ÷­ø1÷L¯þ›—BDšÇºy«Öü¦AÖà¼×Ï>èÑmúWîþÎã_\çĵ/-Ì8¯sÅ6ç×Eÿ 0fçÌÞ¼¤0à†6ìÝà±`‹±Ã»´Ï¿§üªÀù¿Øþß½;Tø+çu6+XZ»õÞ­÷n½+ŽŸÛlpK³iÛBPÚáµ³Ž¾nÏÿ6ëÆ5ŸiØ{‹èìž×—åÿ5ÿrùïÿïÿÿ^²öøFß•?£‚{œõ·4›¶}ÅÊçWDÏ„âc/^Zu«¾µ‘üùµgmú?¿!Üu÷³ÎnýBþ_+ûÕÿÓŒÝà§Â€ó c¡º€‹[Ý ƒÀÔ 9æ ˜3 b×t÷ÝÎéôd!D¤Ïž³oÐíéÓæuºh£v#.ìñùf}ªrGoŸ0ïÎë\±ùuÑ?(ŒYÁ¨zž,Ìø¨wö|£ÕÔªºå_Õ÷¸m&5ïYhp^g³€¥µÙW›}µÙWÇÏž«ÝöÙŒ· !(mñEÏ÷vûïTן³ýS{6¯J [þ\Ö½z‹vݳ‚{ôj·}6ã튕ϯˆž Å=Æ^´ðÕ7:ÿ©v#Ò/í²ýº¿æíÉ]•W]¸ãK_nuV‹“6mµö›…ç6ÆBu¯<êV¼Já|$XyD×îub—' ó®Ù%G¹¿µpHï;F¿¹Ý”’› ?Î묿Pس‚qÇt)Ð8þ]ÿR•×>yÞ5¯wnñÿ–“hùt£¶…vp^gý  ºôì>þÚ™OBPÚ8ÛpóÍúå­*ïïÿ±fpÛ±_E;uùôŠ»ýs×ñ£üçç‚ €»¿væSz¬œ.úÚÔÎk7"m¾h“×~,oÏa›\TÛ&ÿm[^û;gT`p^a= `Ez|âãŸ(¦ÈeßïS¿ë¤Â €¿^åè!;Ü­µW.7Þö§Þt{Á:ÝlºQÿK6ûÛ§¬ß¢ÑýkUÙyÚ¹äuÖß(ìYÁMsºN*ÌøÃ©“&mûqU^ûîôíyëïÍ %Î묿T—‚xHòc·Î›>¦|«ºîxåŒÇ.,¸(w9öz¬œj7=èìÞ)ßžÓ>}êÍVý‡{ã?Û>R8gTõ €š³èÁE.zPL‘+´;€gµÜÿµ­WÝóoØâ_ ?\³yƒÇ*kyÇ9ÍlÒæÈ/Û_ÞjTÅÿê`XúYAáÞüóÀgîÜqzU^ûã¥S7Ûñß›¸ 8ÂÀ]_¸ê¢IÿóÇ==fÞÜ`ê§E»Vbµ{ð‹÷ßbrùöä‘pÕpâ?Òþýÿ9#w¬ôV¢;€óg ÛŠ{ßp|Ãñ +vôB[x± ß]3ËÛÖ¡þz‹Öé{És[oÚ¶ó¤ûú=½Õ9ïl~Èé=ü²ëñ÷öê­~Gÿû âÿ÷KÞº±°ži³Ùl¶BšîÀU¿xî7]¸íù«Özi­U|Qhpekë™6›Í¶ä­Ím~hóÃïÀ°p›o:êfå[Õí Ñ]žø¢HàJÖίˆži³÷[»k_øøË“¶úŸ¥ßN?èé;:¼Tõ#ñÆÍÚ..串5€±6Û²m?Mcÿ4öOcÿ¤2Å·=qög?qöÀU®:pÕªG¿ù÷¯Dk³2xïÑ÷}ïÑŠÝ}Ü3½úo^Rén;ot^óûóVõNû[M]Ü|Àã½ßXr¬ûæ!»ÍÔ€ó:ÿ^; pfçÌÞ¼¤®¯üôcþÑ9ùL¶i“uúZœ×Ù¬`iíÖ{·Þ»õ®8~n³Á-ͦm_hIîø‡ó{ܲQU^ÕùŽËî~à½MO8ü—³Zn:íÈõ‡ÞгÁø5f®Q8p^ንϯˆž Å=Æ^¼´êV} çñȇÝ0®mÛžUíî§ŸûC›· 9Î+lŒ…êRÙ[«LqȃÛá÷ ¿gø=U}óï_ñ¡oy`jòƒÑkA¯½*výÓ×ïtíF] !"m¶ëÚ·4|9oÕŒC÷;µû&UyÕÓ{ìñÊÿû%o!Àyýª€Âž2}£®…õΞo´šZ•×0zçÕ6øïÏ܇ìrî -ÎëlV°´†,²pÈŠãg÷écJƒ°Ðà–/ì\¯窼ªÕ'»ž|ÈøüUM®iûÑ–÷ÚÀy…+V>¿"z&÷;lá³v<¸pà¶#{îÒä£*Ý=¼ãK_nuÖúS7;·Ñn…ç6ÆBuáo±êlè[ž˜ôËŒ_fü2£âÇ óßZlÕdB!D¤íú®{MãÓòV=°}ßîZò÷ôøáÛm×,_ ¸ðà¼Î~Õ @aÏ J¦5™P˜pÃönðX°ÅØá]ÚWöª¶ÿwÕÔ{oÙ¨[“‰~ó}^g³€¥5þäñ'?¹âø¹ÕW—žpïâBJKºžðÓð±ÿmÖô†®µê–¯œwß̓*ûþ.íGöP£†õ÷o²iþ¢ÖÏï¾Ë{ü÷ÑÖç®XùüŠè™PÜcìIŸ>öîæýk7"=äë¶Ýô‚ßYŸ¸²‡*ßôjŸ­>ïõà MZîXõWÕÖ>¯°1ª‹¸8Gè[ž˜×ztëÑ­GWü`üúÄ€½GÔnDzüÕîjýÊÿVzaã'×^÷Χv:q‹»?xù°Ë·}èóAG®²}»©÷îóp·&þܽ٦×4±V—5UöQ/œè7¯mÅæ×BŸ ðfÓ»÷QhðFZ>ݨmþïó¶:öÌM&—n7fzçŸ{öªM·ªJ“ƒNØð²òßß÷¸m&5ïYh÷þæµ5+X6Ï­þÜêÏ­^q-Ùê„ÃGÄ£’»uÞô1[¸áÍû,>þ-: ½tÌôNg]<ëο¶}èèEçî²v÷æ[lðß_S®µ÷ºû7ß³0WÎ+\ñ¼ò+¢gBq±ýû^¹á&­k9(]ãµúç·›µÓÃë>´ßøË.Øx»ã[Þó’Æû¯õï6>®}«¯\·qþ=-NÚ´ÕÚorœWØ ÕE\w_è[ž˜7øîÁw¾»â‡äãµ?z»-j7(ýr›£þ±ý m4ÛøUÿx¿qÂÁÛfTë×9qíKË}×6jÝüŒB€óÚVly~-ôI oVðxév[Z<åÉ›u}ÝAM6mxü’ç›7ßäàuÖþpê¤IÛ~\hp^[³€eóÕü¯æ5¿â(ºþŸ·í±Û'…—–˜sUþ¯¶á¸&õ×=¼Ã9gn{Íë…vïo¾Ï+\±åùÑ3¡¸ÇØ­6Úóùf'Ä£’M;ºcÃ.êÒc‘U][¿°åe'äÁp!Ày…±P]ÀuKq‡¾å €©q“˜|Àä*~`&®Ö÷ýŽq!Ä¥y{.ú¢û›Nï¹YË­×='_8ßïð^«_×9öÊþÕþÁßÚ 8¤÷ÿ³ È€¦sÿa½ƒÖÞ±á̓ŽÙâ±6à áŒòÚV¬y~-ôI oV0rBǸÐàüëù¿øe#Zõo“m°ÃÚAã»uYóŠNi»gš|ÉsƒnnÛùÛ)i·^Zô›ïóÚš,£Êv(Û¡²_m“ÞÖtú‹…·½èèç\¾îÑnèþç†?4Ýr½×ž°Î¹MoozNIÔ¹ëÓúmxØ«Ý>¾fþSZèûß{šÓÛšN±Ò'oíP¶CÙ:&¬ cìE»¿lõB!Ä¥y{ö^ý’îÕßtB'›Œm @áÍ ¶Ý¹ùc…—Vâ.í× gŸ×Ö¬`yœrÒ)'ò;wJuÙ~万Ž*ÌuÉ÷õæ]¿ÿ]¥xû‘ã:ªbµó« 7ÂÊ3ÆžÖaòN-´{g+ t+ƽ…yïo^Uc,T/paZ9CßòÀÔ¼¯Ë¾.ûºÙˆf#šýÎúsß<|Ì^;Z€Zw÷y=+Ö9¯~-tI uVÕkÇBSëÖ>¯§YÀò›Úmj·©Ý*ލowàF'ïU˜1jÝÝçU­Xíü*è°òŒ±» rXë.… Öõ}^Uc,T/páú–'f3o̼1ó*~´Ð÷žŽ7 n«kŸ×³bóúë‡ö¬`d»Ž7 n«kŸ×Ó¬`ùýxû·ÿx{¥‚¾òÖ³¦×ÜVÃ߯¼õ¬éõ*«s~ôFXÙÆØ g½üÞV·Ë¿Ï+iŒ…š ®]BßÊ€YA>]ýÓÕ?]½âÇlý9æ¯ukÙÉ;öÙP|»\û“vì³a^ÏŠuÎë¯Pس‚fG¯ukÙÉ3쳡øv¹ö'Ï<°Ï†y=Í ªËÀÙgœ]q\ݲÿ¹ëßx‚øvù÷y%+V8¯¼+ç{ìï<´ÝQâÛåßç•4ÆBM¯xBߪ³Bõ®×»^ïßù{Þ™{í7³ûáBÜåÙç5¬XÛ¼æúugVpû5Ýâ.Ï>¯¡Y@õz¥Ý+í^iWqt]ç¯ý£Ý‰=»¿væÓBÜeÜwí̧óJV¬p^y=VÎ1¶åAí{6zé⡯=Ó¹£w÷C_{¦sǼ’ÆX¨ àCè»´À¬PÓ®›vÝ´ë*~;OnqF“çÊJîÙ§‹(w©÷¥÷ìÓ%¯aÅÚæ5×÷¨;³‚ö{6y®¬tæØ>]D¹K½/9¶O—¼†fÕlNÙœ²9%)ùKÉ_*ޱ¿¹¨düBQî²íóêU¬j^í¼ò: ¬Ìcì€Å÷÷+™$Ê]¶}^=c,ÔpÍú.0+V³²feÍÚ¼Ýæí6oWüXFíÕ«Ë­Ý¥Ýçu«XϼÎyÍu=êÚ¬`\ý.· t—vŸ×ͬ æ$O$O$OTi×>±ù¬–Ó·ùà¶ gì/Ð]Šu?¸íÂûçÕ«XÕ¼Úzc×}·Õ—kÝwÑ-¯öÝê nÕ÷yÅòêc¡æ€«—зº€©S®Ÿrý”ë+û þøéqÇîxºX·*û¼V•U2¯³þ@]žL=sÇÓźUÙçµ2+¨q›—m^¶yÉ™%g–œù;wSmyÂGÃÏëV}ŸWìw*yfÉ™%gæÕÖéÀ›ë¿Ã•7i)Ö­ú>¯˜1jšxù }k‚˜ÚðeÙ—e_öžÕ{VïY?´çØ­Õ&¿w«²Ïkõ;+üÍê=«÷¬¼ÎºuyVpÜA›ü"Ü­Ê>¯•YÀŠñÂØƾ0¶²_Eu:úÚ'î.yŸW©²æÖÓÀ[Ñ™f›o¹£pwÉû¼JÆXX1ÀËïñ‰O||¢Ð·z €©5s[Îm9·eeã¬×Þ3»^!â­lŸ×§²êåµÕÇ(–YÁM}º^!â­lŸ×Ǭ`Åôî w½[qìmòÀf;®±Mémžþ” ÷wû\zÛŸ§?•W©bõòªê]@ecì†Çmµû:%m÷Ê[ÍôþÎcŸ·{åέfæU2ÆÂŠ!^~¿íýÛÞ¿í-ô­^`jÙØ‰c'Ž­ô/;>^ïðc·ë(î-¿ÏkRYÅòzêWã¬àñx»ŽâÞòû¼&fµea²0Y˜T6o´Æ~Ç<[Ü[qŸW¦²ºåUÕ»€%±}FŸÒ¥ÕÖâÞŠû¼2ÆXX‘ÀÕ¥ü}ÀBßå'¦–-.Y\²¸¤çžCzù¿›Þw­6kÎÿæ¾cNïÕKô›×!¯IÅZå5Ìë©_PŒ³‚Æ—®9ÿ›û’C{õýæuÈkbVP»¦3õ˜©ÇTö«ö’þ'ziS¡ïWüíâ¡—6­¬Vy%õ( êclÿñW›l'ôý㯠6ÙÎ +ž˜Â$¦ Ìë?¯ÿ¼þ•MP:ŸÓâ°&áÿ:öƒ[­œÑo~îy*«R^C} €bŸ´_¿IøÃ¿¦¹c«•3úÍÏ=¯ƒY@áÕ|TóQÍ+™7ÿ`ÈáWŸ´2G¿y*«O^=½X¶1ö°¯Æ=Õö •9úÍ+`Œ…Ú"¦0 €) sÞ˜óÆœ7–¯lwçç»äè7¯›þÀÊ4+h¿~“pe»8?ß%G¿fµ¦gYϲž‡_vøe‡_Vi Üø´·®l¿ÒE¿O{ëÊö•Õ$¯X^=Xž1öoÆôÙô‘•-úÍÏÚ µKLaSp‚›ƒ›ƒ›+›¸ä@^ÖÎϱ²>çòZé3¬¬³‚Æ—®9eX8?ÇÊølVP85]ÔtQÓmŸØö‰mŸ¨lÄn»ÏQ¯ŸýbÏn㯞ùDÑF¿ÝÆ_=ó‰üL+«C^¥¼bzP]cì^^ôÀ†éÅg¾–tÞ²h£ß3_K:o™Ÿ©1 ˜Â$¦@MZuÒª“Vm°DY¯½gv½¢ø¢ßü¼–|îy}ôÌ þ߬à¦>]¯(¾è7?/³€ºå‡#~8â‡#º_Ðý‚îT6zo°s¯Í÷ú­Çe7m;åÍbŠ~ó3ÊÏ®²sÏ+“WIojbŒíºýþ]›ŸyþN³‡tz¾˜¢ßüŒò³3ÆBáS˜À´%ß÷“;ÿÀn­6ùåç5Ž{yÇIu7ôÍÛŸŸË’Ï×ý=˜T>+8î M~ùygÛqRÝ }óöççbVPwýxÚ§ýxZ¿îýº÷ë¾äñ¼Ó˜K:ÜyY]~ó³Xò™æÕÈ+£‡+fŒtÍÄí{Ôõè7? c,&0…IL°äUË‹6Ú«W—[ëVô›·¹*ggU?XšYÁ¸ú]n­[ÑoÞf³€bòë·¿~ûë·gt9£Ë]–<¶·z¢ïÛ´u×ë›DÔ•Ð7omÞò%Ÿ]^¼z°âÇØž}H×vÎj3’Ž×•Ð7omÞrc,20…IL1¯ÿ¼þóú÷ÒsHÏ!KžôtžÜâŒ&ÏÍÜk¿™Ý/{pà®}:PèûàÀ]ûtÊÛ–·óÿ˜žé9¤çüÜõXúYAû=›<7s¯Û¯é~xÙƒ3GöéT@¡ïƒ3Göé”·-o§Y@q»ïÕû^½ïÕªü¡Ï&ÛÒçô·îtý?¢Ó .ôítý?¢ÓòVå\ò³võÂcwýeè=mV?{ÑŒG;>Vh¡oÞª¼…ÆX¨+À&0uÌâ’Å%‹KÆN;qìĪLƒÖŸÓhþZ·>8 ï=o.{ràî}:×BèûäÀÝûtÎÛ·§*-ÏÏ1?_תcVÐìèµn}pÀÈvo.{ræ5}:×BèûäÌkútÎ۷Ǭ`eóÎëï¼þÎë%}Jú”ô©ÊOV3vm|Èæ]l8ñ±Ú }ówÏ[R•6çg—Ÿ©+òÛsè‘k®?âÔ©O¾ßa·Ú }ówÏ[bŒ…ºHLaS‡Ím9·åÜ–½gõžÕ{Vƒ*ÛmàF—5lâj}ßïúâ¶›]½qo~Ìüøù{U½mù¹äçåú@ÍÏ ¶Ý¹ùcW9¡cüé‹O¾¿Ýìê{ócæÇÏßˬ€ÜoãÿÛøñŽßpü† –ÒF ö0ðüN×\²ñçÕÈj¾×\²ñçåï²´mËÏ(?;W¨‹clŸëNÙºUA—O\­}·YÍ÷ò‰«µï–¿‹1Šƒ˜Â$¦î[P¶ lÁ”ë§\?åú6o·y»ÍÛ –I翵تɄÓ×ïtíF]Ç=Ó«ÿæ%î¾Û9žŒ®ÝëÄ.OfßïS¿ë¤üßù×óïÉ¿?í²½oÞæ¼ýù¹¸¤PÛ³‚’iM&œ¾þ!Ó7ê:î™sfo^òèî£êuz2ºvÜ1]žÌ¾¿iN×Iù¿ó¯çß“þZ³–âÇ×÷ ¾_ðý…\¸Á…4XÍ?ßú‰Ùx‡ÛŸ|pIÏÿ:|b‡Ò³ê_ûá–ûŸÛôÆ£ó}þ•ü¿æß™¿jyÞ7oy~®&P¬cì–Gíúózírù­»õ?âʾ›lväê7ܬþ±«Ü¹o»#ò}þ•ü¿æß™¿Ê ÅMLaS\š•5+k6íºi×M»®w½Þõz×kPò¶åíÌÛìÒ€YYó[Ïo=¿õ¨kF]3êš,oaÞZW 0Æcae&¦0 €)rŸ®þé꟮>fÞ˜ycæ5ÑlD³+~Ò–¿oÞ†¼=® ˜˜°d‹]|ìâc§–N-Zzø¨ÃG>ª¶¢ˆüÝó–ä­ruc¬1È €)L`V:óÏÙ>Ù>Ù^Ù^Ù^ÙžÙžÙžÙîÙîÙîY¿¬_Ö/Û5Û5Û5ë›õÍúf;g;g;g;e;e;e½³ÞYïlÇlÇlÇl‡l‡l‡lûlûlûl»l»l»¬gÖ3ë™m“m“m“mmmuϺgݳ®Y׬kÖ%ë’uɶʶʶÊ:e²NٖٖٖÙÙÙÙæÙæÙæYû¬}Ö>k—µËÚe›e›e›e›f›f›f›d›d›dgggfffm²6Y›¬UÖ*k•µÌZf-³õ³õ³õ³Y‹¬EÖ,k–5ËÖËÖËÖËšfM³¦Y“¬IÖ$kœ5Îg²FY£l­l­l­¬aÖ0k˜5Èd ²5²5²5²dÿÈþ‘ý=û{ö÷ìoÙß²¿e«g«g«gÉþ’ý%ûSö§ìOÙ³?fÌVËVËVËVÍVÍVÍVÉVÉVIËÒ²´,ý-ý-ý-ý5ý5ý5]”.J¥?§?§?§?¦?¦?¦?¤?¤?¤ß¥ß¥ß¥ß¦ß¦ß¦ Ó…éÂôëôëôëtAº ]~•~•~•~™~™~™~‘~‘~‘~ž~ž~ž~š~š~š~’~’~’~”~”~”~˜~˜~˜¾Ÿ¾Ÿ¾ŸÎMç¦sÓwÓwÓwÓwÒwÒwÒ·Ò·Ò·Ò7Ó7Ó7Ó×Ó×Ó×Ó×Ò×Ò×ÒWÒWÒWÒ—Ó—Ó—Ó—Ò—Ò—Ò9éœtN:;ÎNg¥³ÒYéóéóéóéÌtf:3‘ÎHg¤Ï¦Ï¦Ï¦ÓÒié´tj:5šNI§¤SÒ\’&i’Fi”Fi˜†i˜–¦¥iiútútút:9œNNŸLŸLŸLOOO'¥“ÒIécécécé£é£é£é#é#é#éCéCéCéÄtb:1} } } ½?½?½?½7½7½7½'½'½'½+½+½+NH'¤w¤w¤w¤·§·§·§·¥·¥·¥·¦·¦·¦7§7§7§7¥7¥7¥7¤7¤7¤ãÒqé¸tl:6›ŽIǤcÒkÓkÓkÓkÒkÒkÒÑéèttzUzUzU:*•ŽJ¯H¯H¯H/O/O/Oÿþ;ýwzYzYzYzizizi:<žOÿ™þ3ýgzIzIzIzQzQzQzazazaz~z~z~z^z^z^zNzNzNzvzvzv:4šMÏJÏJÏJÏHÏHÏH‡¤CÒ!éééééééiéiéié)é)é)éÉéÉéÉéIéIéIé é é é tP:(H¤Ç§Ç§Ç§Ç¦Ç¦Ç¦Ç¤Ç¤Ç¤G¥G¥G¥G¦G¦G¦‡§‡§‡§‡¥‡¥‡¥‡¤‡¤‡¤§§§¦¦¦ýÓþiÿtÿtÿtÿt¿t¿t¿tŸtŸtŸtïtïtïtÏtÏtÏttt´_Ú/í—î–î–î–öMû¦}Ó]Ò]Ò]ÒÒÒÒ>iŸ´OÚ;íöN{¥½Ò^éééévévévé¶é¶é¶é6é6é6i´GÚ#ížvO»§ÝÒni·´KÚ%í’vN;§ÓNi§´SÚ1í˜vL·H·H·H;¤Òiû´}Ú>-IKÒ’t³t³t³´mÚ6m›n’n’n’nœnœnœn˜n˜n˜¶IÛ¤mÒVi«´UÚ2m™¶L×O×O×O[¤-Òi³´YÚ,]/]/]/mš6M›¦MÒ&i“ttt´QÚ(m”®®®6L¦ Ó5Ó5Ó5Ó5Ò5Ò5Òúiý´~ú÷ôïéßÓ¿¥Kÿ–®ž®ž®žþ%ýKú—ôOéŸÒ?¥Lÿ˜þ1]-]-]-]5]5]5]%]%]%)KÊ’²ä·ä·ä·ä×ä×ä×dQ²(Y”üœüœüœü˜ü˜ü˜üüü|—|—|—|›|›|›,L& “¯“¯“¯“ùÉüd~òUòUòU2/™—ÌK¾H¾H¾H>K>K>K>M>M>M>N>N>N>J>J>J>L>L>LÞOÞOÞOæ&s“¹É»É»É»É;É;É;É[É[É[ɛɛɛÉëÉëÉëÉkÉkÉkÉ+É+É+ÉËÉËÉËɋɋɋɜdN2'y!y!y!™•ÌJf%Ï%Ï%Ï%3“™ÉÌdz2=™ž<›<›<›<“<“<“LM¦&SóIA> $q'q%Q%A$ARš”&¥ÉSÉSÉSÉädr29y"y"y"yÝÝÝÝÝÝÝÝÝÝÝÝ‹ÆEã¢ë£ë£ë£1јhLt]t]t]tMtMtM4:ޮЮЮŠFE£¢QÑÑÑÑåÑåÑåÑ¿£GÿŽ.‹.‹.‹...†GãáÑ?£FÿŒ.‰.‰.‰.Š.Š.Š.ˆ.ˆ.ˆÎÎÎÎÎÎΉΉΉ†EâaÑÐhh44:3:3:3:#:#:# ŽG§G§G§G§F§F§F§D§D§D'E'E'E'F'F'Fƒ¢AÑ h`40õúGý£¢¢¢ý¢ý¢ý¢}£}£}£½£½£½£=£=£=£=¢=¢=¢~Q¿¨_´[´[´[Ô7êõv‰v‰v‰vŠvŠvŠúD}¢>ÑŽÑŽÑŽQ¯¨WÔ+Ú>Ú>Ú>Ú.Ú.Ú.êõŒzFÛDÛDÛD[G[G[GÝ£îQ÷¨kÔ5êu‰ºD]¢­¢­¢­¢NQ§¨S´e´e´e´E´E´E´y´y´yÔ>jµÚEí¢vÑfÑfÑfÑ¦Ñ¦Ñ¦ÑÆÑÆÑÆÑFÑFÑFQ›¨MÔ&jµŽZG-£–QËhƒhƒhƒ¨EÔ"j5šGÍ£õ¢õ¢õ¢u£u£u£&Q“¨I´N´N´NÔ(j5ŠÖŽÖŽÖŽF £†ÑšÑšÑšÑÑÑQý¨~T?ú{ô÷èïÑߢ¿E‹VVVþý%úKô§èOÑŸ¢?FŒþ­­­Õ‹êEõ¢U¢U¢UÂÅáâpqø[ø[ø[øKøKøK¸(\.       ¿¿¿¿ ¿ ¿ ¿ ¿ ¿ † Ã…á‚pA¸ œÎç‡_†_†_†óÂyá¼ðóðóðóð³ð³ð³ð“ð“ð“ðãðãðãðÃðÃðÃðƒðƒðƒpn87œ¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾Î ç„sÂÂÂÂYá¬pVø\ø\ø\83œÎ §‡ÓÃéá³á³á³á3á3á3áÔpj85ÿå_þ¿ûùù0„A„O‡O‡O‡O…O…O…O†O†O†O„O„O„“ÂIá¤ð?áÂÿ„†††„„„………ÉáÄððððþðþðþðÞðÞðÞðžðžðžð®ð®ð®pB8!œÞÞÞŽLJãÃÛÂÛÂÛÂ[Â[Â[›ÛÛÃÃÃÃÂÂÂëÃëÃëñáØplx]x]x]xmxmxm8:ޝ¯¯G…£ÂQá•á•á•áåáåáåáÈpd82¼,¼,¼,ŽG„ÃÃááððŸá?Æ—„—„—„………†††ç‡ç‡ç‡ç…ç…ç…ç„ç„ç„g‡g‡g‡CááÐð¬ð¬ð¬ðŒðŒðŒpH8$žžžžžžžžžžžžžžžžžž †ÃãÃãÃãÃãÂãÂãÂcÂcÂc£ããÃ#Ã#Ã#Ã#Â#Â#ÂÃÂÃÂÃÂCÃCÃCÃÃÃÃÂþaÿ°x@x@x@¸_¸_¸_¸o¸o¸o¸w¸w¸w¸W¸W¸W¸G¸G¸GØ/ìö w w w û†}þá.á.á.áNáNáNaŸ°OØ'Ü1Ü1Ü1ìö {…Û‡Û‡Û‡Û…Û…Û…=ÞaÏp›p›p›pëpëpë°{Ø=ìv »†]Ã.a—°K¸U¸U¸UØ1ìv · · · ;„ÂáæáæáæaIX–„íÂva»°mØ6lnnnnnnnnn¶ Û„mÂÖaë°uØ2l¶ 777[„-Âaó°yØ<\/\/\/l6 ›†MÂ&a“°qØ8l6 …µµµ†aðaØ l6×××ÿþ#üGø÷ðïáßÿ† ÿ®®®þ9üsøçðOáŸÂ?…ÿþ!\5\5\5¬Ö ëeAYP,‹ƒ_ƒ_ƒ_ƒ_‚_‚_‚ŸƒŸƒŸƒŸ‚Ÿ‚Ÿ‚‚‚‚ïƒïƒïƒoƒoƒoƒo‚o‚o‚¯ƒ¯ƒ¯ƒÁ‚`AðUðUðU0/˜Ì ¾¾¾> > > > > > >>>> > > >>>ÞÞÞÞ Þ Þ Þ Þ Þ ÞÞÞÞ Þ Þ ÞÞÞ^^^^ ^ ^ ^^^^ ^ ^ æs‚9Áì`v0;˜Ì fÏÏÏ3ƒ™ÁÌ`F0#˜<<<L ¦Ó‚©ÁÔ`j0%˜L Ò Ò â ¢ ¢ W”¥ÁSÁSÁSÁä`r09x"x"x"x( J‚’`³`³`³ mÐ6hlllllllll´Z­ƒVA« U°A°A°A°~°~°~Ðÿu]>m¯Ð¨ …‡ €ªX  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@k°Dꣶ“OG|:âÓ­Þoõ~«÷ó~¸Á¬±Á ?XøÁÂêúÙåg‘ŸQ~vù™ægíê@! €€'¤T[V‹›/n¾¸ù®ìzÀ®”j<ªñò?_ï;ü¾Ãï;ü¨wŽzç¨wúÜÑçŽ>wlÞ|óæ›7o2¢Éˆ&#Ö;h½ƒÖ;¨dë’­K¶îýhïG{?zÞVçmuÞVOöÔaOö[»ßÚýÖnù[rE§+:]Ñ©ü9î¶ón;ï¶s^=j—X Ô8!¥Ú²2qሠG\X¾¶ÉÚdm²åéŸ ûlØgÃò¸·A5¹íÇÛ~¼íDzúeõËê/[«¾›ôݤï&ùÜ@a € Æí˜,i[* ¤T[Š{´yí²×.{í²Š=pÌÍcnsó²sÂýîŸpƒöUû¯ÚÕ~ÙZxÍŒkf\3£üÑÖž²ö”µ§øô@í € ÆU%„X™+ ‡¨-ux´©_V¿¬þ.gìrÆ.g”—M‡n:tÓ¡ËöŽùº VˆÎwv¾³ó ÖX°Æ‚5–¶?^úã¥?^Zñ˜ùC°õF¨-`0Ô8°Rm)ÖѦ²ûtoisK›[Ú,íÑJ·+Ý®t»%·¿á‡ ?løáCràÿLþÏäÿL~wƒw7xwƒŸþ<ðç_nóå6_n“M˦eÓ†>ìôa§¯;hÝAëZò1wºv§kwºö׿öøµÇÒ¶ù†#o8ò†#} p€ÀPãÀBJµ¥øF›s÷™»Wýøùwî±Þëí±^MÔ§²û€Ûõm×·]ßE-:hÑAz&¬H`0Ô8°Rm)¾Ñ¦²;_OêrR—“º,í{]õÓU?]õSemnýbë[¿øéˆOG|:bÙZû[»ßÚýÖnÉ•i¹JËUZ®²lUòI€Â!@‹FÔ–bm~úÓП†nré&—nò;w¾æ_^Úcv?¾ûñݯ¬ÍO\þÄåO\¾ü-Ÿßb~‹ù-Êߣ\]UŠÿÿ!þCew-çwK런b€ÀPãÀBJµ¥˜F›;¦ß1ýŽé•…Kû.Nýpê‡S+kíæÍ7o¾yóêíÏK®Ï‘_ùå‘_.í17_Ü|qsŸG(`0Ô¸ÏùhÎGs>{åØ+Ç^yÄ_øëݺÿÖý·îŸÇ3M‡5ÖtX£I&5šÔraË…-v(ëPÖ¡lßxßxßøÜÞçö>·w´V´V´Ö¯=~íñkš®@]¹Žù#d“““??øùÁÏ÷~´÷£½-Ùºdë’­ßÕø®Æw5ïѼGóêw¨ß¡þ¡]ízh×ü1¹ßNùvÊ·SV|懲Ÿ—B뽕ÉW~Øzb뉭‡„CÂ!a¯Ù½f÷š·s½ƒÖ;h½ƒÖž²ö”µ§ä/î”vJ;¥ù]ýùÕŸ_ýù/ðò/×ÅÑf»ß¶ûm»ß*ù‚u.Xç‚u–öhOž÷äyOžWYk/üË…¹ð/Õ[¥ç¶}nÛç¶­ì»ï:¼ëðe«Õ9ûž³ï9ûV<æŽÉŽÉމŸ†°b€ÀPmT«¥xãúeõËêçAÔöó·Ÿ¿ýüêmÉu\÷Àu,Ï#Lk.ŽÊ[µÏ û¼°Ï •¿Û™ÝÎìvæ—Û|¹Í—Û,Û»<¸åƒ[>¸å¦C7ºéÐe«aùGÎ~|÷Çw|÷ŠéuuàcSð½·¼ï&}7é»Iy̹üm[³ÞšõÖ¬—ÿ{n½¹õæÖ+üÑfVËY-gµ¬ì8¯ÜóÊ=¯Ü³´UÍãðÊŽùÈ'|òÈ'ÕÛé¾^åëU¾^¥²wÜ` ÖØ`eûå¾à>`¨]`0T›É,ü`á ?èIÿKú_Ò`…ÈWЬÞÊ,[µ´è Eí÷È~ì÷È’ïä[¶è÷ë…_/üzáëí±ÞëUo ó{C«+ ª»QS]é½¹ÙßÎþvö·åq\½šŒh2¢Éˆª_µÚ €Oûô·O»â¶œ»åÜ-ç.[¯[r þ|‡ç;<ß¡zûÞ7/}óÒ7/UöŽùÝüËó ªìÈùâ~V@M € Ú¬ÈH&¿1¿·µÁ ´Ûλí¼ÛÎù]›ÕU™¥­sý0ú€ÑŒ^rô;o·y»ÍÛmiÿUû¯ÚÕ¾çf=7ë¹ÙŠ©jÍõºÂü¤Ô­Þ[•{:«KÕ£Çß—¼Æí€‹\<àâeë§49¥É)M*;òçƒ>ôù êí/4|¡á +{ÇM.ÝäÒM.]žOÐq·wÛq·ÕÄ‘€ª € ÚÞô÷·%G/•½jÉïuê¢SºhÉGnõ~«÷[½é¨KG]:jÚÈi#§œûÍÜoæ~óÓП†þ44¿/ö¥g^zæ¥gØþíØ>¿Ûµüci«+\¬®ãü²ë/»þ²ëCràÊŽÖåº.×u¹nÙ¢ß|•ß|eß%·yÏ¿íù·=ÿvÏù÷œÏù嫺`k,X#_aô’ç.yî’çZ®Òr•–«Tå!ÀËÖëêb\Wzoþ§U ªwºv§kwºö¾Ãï;ü¾Ã_|åÅW^|%Èp~§iþ`äüAâù:ÁK>Ú6Ý·é¾M÷Wtº¢Óªë\*{—òw¨ûù5A,€W½‘ÌϘxÆÄü®»ŠÛìUg¯:{ÕjhtîP¬¹8~—üØäünÑå~ó‡KWö.[,ØbÁ ª7ªyøÿñá?ÚúÊ+FÝê½K~”t¾Þóò4ó½ï5x¯Á…?ÿþvK›[ÚÜÒ¦vG›\´V´V´VeÇ<ûè³>ûè|ë—Õ/«¿ä?;ȵëÛ®o»¾Õû©9몳®:ë*+ÀŠ'@«‹Àc~óØÿÖî·v¿µ;òË#¿<òËʾ¿ãœŽs:ÎùlØgÃ>¶üg:mä´‘ÓF.ù1¿Õ[Ûü>àÊÞqÜ©ãNwjq÷®ºÒ{Ëß“]Q¾úïÊ0ÚäkâVW]1ò‡ºïýîÞïîýî’k’¯ÀýV¿·ú½Õ¯zÛ0ææ17¹¹²÷Íci? &€ÀPãêbD÷ôOïñô+2Σߣg=ëèY•}gÈ}:âÓŸŽ¨®3]òš 3qèŒCWd¯8â—#~9â—âî]u¥÷n?ûùÛϯìµÍ{4ïѼG¡Õ¹&úé‹N]tê¢ÊŽyÿž÷ïyÿž…pî?^úã¥?^zÙi—vÙiU¹úùœýíìog[×ñžóï9ÿžó+{÷!ápHèç#Ô°j\]‰èò‡!ç÷5¶z¿Õû­Þ_1ðâæ‹›/n~ìÃÇ>|ìà ª¬ºÎúÀ!9pHÍ=æwikÒûÑÞö~´¦×W.>5Ñ{ÿ}Ô¿ú÷QUï““Oš|Òä“ò²˜F›~Ýúuë×­²c–nWº]évµ{õóë¾ä5›+>E`VËY-gµ¬¹OÊS‡=uØS‡UÖ†=Ýó×=õój‚X 5®"º|UÝ|ÍÑ<°¹áÈ޼áÈ|MÖ]Øõ€]Xòok.>þêã¯>þ꪿cûvíÛµoW]1[÷ã»ßýø£|{êJï*ÖÞ»ðƒ…,ü`y®æå½.ïuy¯lZ6-›–?˜º.Ž6åW®(QW|¯xñ•_yñ•>wô¹£ÏU¹kÖ[³Þšõ†^4ô¢¡­˜þ¹mŸÛö¹m—¼Š¹•€ &€ÀPãVLD—?BùÙsž=çÙs.yî’ç.ynßxßx߸¦Ëå¯@eMj4©Ñ¤š®^Ûm´P8po¯lp!÷Þ ùä+ka³]›íÚlW0Ô°j\MD2ñwñwñwMØhÂF–'vÊ£mºoÓ}›îÇÝvÜmÇÝ6±õÄÖ[×ÖÀ§.:uÑ©‹ÊyÉ߿˻œ±ËeõËê—Õ_¶JVå>ã©|{j«wÕ´ºÕ{+«ùy[·Õy[å«ÉÖÖÝÉ+¦?¬ù͚߬ùMeÇÌÐ]s½åêϯþüêÏ«R±%-JZ”Œj<ªñ¨Æ…Ðÿóu©+kmÃ~ØðC0Ô°j\õF2ùcr«#å=lÓÃ6=lÓÑoŽ~sô›ÁÁÁUiÊ €+F¿¹ÿèñ¯Ê}ºËvuÚdm²6YeÇ\1ë¶VV±ß»jZ]ì½U¯ÿU?]õÓU?õëÖ¯[¿nK¾k¶æbàš8ßò÷ªVôUû¯ÚÕ¾š;Jý²úeõ‡„CÂ!áÿ±²ï7k~³æ7ùjÐ…ÖóóÊTÖòæ=š÷hÞC 5A,€W]‘Ì¢ƒ´è Çlã?ÿÙøÏ–|åï÷-äÏfùpº¢.×u¹®Ëu`¨ `0Ô¸êŠdö~wïw÷~·²ã ¿eø-Ão©Þ8aÀU6s÷™»ÏÜ}ÍzkÖ[³Þå¾^õcæ+¹VÖ¶‡xø‡‡XzWM«»½·æü<ðç?\r ;ßÙùÎÎwÖnØ7Þ7Þ7®ì˜Ož÷äyOž·üÕ˜ûÍÜoæVºÒpþéβ]WBÓ'.âò'.¯ìŒö¿}ÿÛ÷¿] 5A,€W]‘LÇ9çtœSÙqf¯:{ÕÙ«VW›—ÆÔV\•£å÷Õý²ë/»þ²kUŽöèk¾öèk•í c:ö c«·?ä«w;ó÷·äãäãäãß»jZÝê½yð?âÂßßòÇSWWkó?k¨¬…ë´ÞAëT»kB½hèEC/ªì˜wÝt×MwÝ´üu8xààƒ+{—+7¼rÃ+7¬[qé„û'Ü?áþÊÎhØéÃNvºŸPÀ`¨qÕɬ3v±ëŒ­ì8ßMúnÒw“ª«Ínùà–nY˜ð׫|½Ê׫TWÛ¾jÿUû¯ÚWv„†6ü°á‡Õ;UvÏñ²ÝÁ\WàºÕ{‡„CÂ!ae¯ºðç ¾ðçêjí7/}óÒ7/r|ã^7îuã^•óÚ§¯}úÚ§—§ßýñÝß]Ùñ·ûm»ß¶û­.Þ)›¯ý\ÙyÝ´ÃM;Ü´ƒŸPÀ`¨qÕÉ´\¥å*-+ >_|åÅW^|eù[ûÅÁ_üÅÁ›¸Ù›X˜pîÞSî=åÞS*;f“MF4Q]-pñ€‹\¼üµ]rt½c²c²cR¬pÝê½å5\ÑÎÿÜùŸ;ÿ³º*óÌ ÏÜðÌ K~tí~ÖòU~+;æ©«Ÿºú©«/OÆ^9öʱWVvü§÷xz§÷¨‹#^™ÊÎ+¿óÛÏG¨ `0Ô¸%G2‹›/n¾¸yUŽÓc—»ôØ¥²ãŒÜgä>#÷Yžvæ÷–! 9®Ê‘÷{d¿Gö{¤*ÇyöœgÏyöœš[56$u¿nýºõëVÙ‘óûV«·…ó)¨[½÷¹mŸÛö¹mWÌ*ÂùŸTvü“ºœÔå¤.ÕõY«úhSÞ¢ƒ´è ÊŽ™_Ùå©@eŸ‹¦Ãšk:¬î®’[YŸ_Ú?O––X 5nÉ‘L~ÏbUŽsÁ:¬sÁ:•gí)kOY{ʲ… OöÔaOÖv@Ûm4XJË_å©í[ýÞê÷V¿F“Mj4©¦Û¹æ7k~³æW–-«_V¿¬~U޹`k,X㈿ñ×#þºäu‹kbEäüá½+r+’Þ[¿¬~Yý%¿vã1ÙxLþ§KÛæðöój‚X 5nÉ‘ÌϘxÆÄüáÀ?üyàÏó1+çÍCÞ<äÍCÖzi­—Öz©*!eü‡øñæ~3÷›¹ßäÓüó[Ìo‘?n÷º®{àºʯ¯YÑ’×mͽ»Á»¼»Á’ï,¬é{(—|üM‡n:tÓ¡ßNùvÊ·S–|œ¼>þgÃÿløŸªÄ‡ãNwê¸S_÷ê¸WÇåÇÿr›/·ùr›i#§œ6òŠNWtº¢Ó’_;Ðð…†5qîµ¥8zïm?Þöãm?þPnåæ»nºë¦»nÊÿ(!ïù':?‹)ONyrÊ“Ão~Ëð[6š°Ñ„&,ùÈG~yä—G~Y½¯úhSÑe§]vÚe§Uïg9¯L]éÃU—Çö•ùßGýû¨å'#Ô°j\õ†5{¬;hÝAëzøÿñá?.íkùä‘OùdiÛ¼üþièOCZ]¡ÎìUg¯:{Õ– [.l¹°æêœ‡åW2^ñ½kŇgu«÷æÁðН^þèàüÞñÚmÊËÿСz?ËÑZÑZÑZÅ_ýùÕŸ_ýyeG~í²×.{í2? æ€ÀPãÎí}nïs{WWñ[»ßÚýÖ®&Îwv¾³ó¯ÜóÊ=¯Ü“åþ=ïßóþ= ?Î…­ÂVa«êzPmþíÛµo×¾š«Ý¢¤EI‹’‡xø‡‡¨éU -<«‹½÷‡1?ŒùaÌŠ©Û¾ñ¾ñ¾ñÂ~°ðƒBmªÞßÛô°MÛti[{ßá÷~ßáÅçÕ¨xÌNi§´SêáÏPÓÀ`¨q?^úã¥?^ZÍ!D¹µ3ó@qÙŽßúÅÖ/¶~ñ¦nÚá¦~ç«°jáÀUy¯íço?ûùK~`ue׮鰦Ú[¶:ç>>zÖÑ³Žž•?twÅ<þº@ó:Õ{+­]ßv}Ûõ­®ZmÛlÛfÛ6{ìÙÇž}ìÙåï52Ú”sñ[¿uñ[_[þ¡ÖUomþ(ï¢ €—Øë.yî’ç.yÎÏD¨i`0¬ ù:¦ù |çîüÏÿÙv@Ûm4¾«ñ]ïÊ#¥>wô¹£ÏGüõˆ¿ñ×e»'/_7t‹[,ØbÁú-Öo±~‹µ§¬=eí)ÙxÌÆcznÖs³ž›¼ñÉŸ¼ñä“&Ÿ4ù¤ª¼Kù,çaUËUZ®Òr• ÖØ` ÖèýhïG{?zbŸûœØçõ³_?ûõ³ ÿZ,[À“¯êš¿ö˜è˜è˜(¯g^Û¼ÎyÍ;”u(ëPvÈN‡ìtÈNcnsó˜›?ûÉØOÆ® wþ-Ïšµu¦÷– ù.úâ¢/.ú"¿s·Cýõ;ÔÏž·<ÿt·ÉÚdm²üåüÓ}ÕŸ¯úóUÎ\½¢æF›÷¼×à½ÿYù¸¦ÿ¤£nɦeÓ²i•=ò=_óØOC¨i`0Ôš/l]iy]¿Ž*³2÷ÞÂì ÕÛžÊÎñ¤.'u9©ËÊÜoó?P¨X™ýÙï‘ý1&ÀŠ!KaÒ}“î›t_eë[çw]¯l5ùyàϘ߹^±2Ož÷äyOž§çÀŠ!K!_EÛ½ïååkHW¬C÷ã»ßýx÷þÀŠ$Kíáþáá*þ†áàýÞÿàýW¶jäg]±=ûس=«·ÀŠ$K¯~Yý²úÃÐhR£I&­<÷¼.XcÁ Ö¨X‡mºoÓ}›îîý€O,–Qü‡øñVæA¿eø-Ão©xîñwñwñwz¬x`0°\*þž¡Ù®Ívm¶ëWí¿jÿUûb=ëù-æ·˜ß"?Óòç~LtLtLäÞ_¨-`0°\>öٰφ5ïѼGó+Ï}ÀçotþFçoTþL[”´(iQòù Ï}>H¯€Ú"Õ âošŒh2¢Éˆâ Dó3j:¬é°¦ÃÊŸï½§Ü{ʽ§¸÷j—X T›•a=à3o=óÖ3o-vƒŽtÌ cD¿PÀ` Ú|?áû ßOÈÛ°M÷mºoÓ½×ì^³{Í.Žptá ?XøAù³Ûóo{þmÏ¿‰~ p€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(àÿʦVy{¦–¶iµ´=[KÛôZÚf¬ðmf-mÏÕÒö|-m³ji{¡–¶Ùµ´Í©¥íÅZÚ^ª¥íå¾½RKÛ«µ´½VKÛëµ´½QKÛ›µ´½UKÛÛµ´½SKÛ»µ´½WKÛܾ½_KÛµ´}XKÛGµ´}\KÛ'µ´}ZKÛgµ´}^KÛµ´Í«¥íËZÚ¾ZáÛüZÚÔÒöu-m kiû¦–¶okiû®–¶ïkiû¡–¶kiû©–¶Ÿki[TKÛ/+|ûµ–¶ßji[\K[YílSV©¥­^-m«ÖÒ¶ZMm`€¢%(Eç\``åQ´ð¼=æí1olJmSki³&±Õˆ­F\ø«¯<ë¯<+¯ú¦sfoÞ÷ôóGÕÛâõ³/wÌ–Ÿ×é¦9ù¿ó¯çß“þÚe{ß¼ÍyûósqI© 0Een˹-ç¶ì=«÷¬Þ³ª¸®÷`§·Ý¹ý™§|8rB·±£xòýž=ÇŸ9³ºöù1óãçïµwÏê=«÷¬ü¼\_–L @·¸dqÉâ’±ÇN;±*‘êZMšÞÚìèöžò¯‘ízvæÌkª7î­Ò¾Ãø3g^“·!oOUZžŸc~¾®; €¨ÃæõŸ×^ÿžCzé9äÿx˜óEÿ³ýžÖ½èþÛ¯éÙ~ü©3GÖBè[Ù¾ýøSgŽÌÛ–·sÉç’Ÿo~îúå €¨“æ¼1ç9oTå®Ù-²³wW¿€âÞ*ìó6Wåìò:èäÀÔ1ÁÍÁÍÁÍKŽE7ì»÷ÏÇÔã³›O|æ°ºý–ßçíÏÏeÉç›×Dß@ @1iÕI«NZuÉQè–WžûìM}ênè[Ù>?¯%Ÿ{^ýde& Xò]¿kÞÝhíÆ—v[óê=‹/ú-¿ÏÏ1?_wS‘€‚¶äµ~×9cãÃÛ¯¿õƒãF&‡wô[~ŸŸo~îÖ¦<0j^ÿyýçõ_rôÛã„ߟräÊýþÏ Á'Üøþ”#—ç5Ô—V` Îâ’Å%‹Kzé9¤çÊø¼²Ýõ»ä»+{(t^üžúÕÊ@ @Á;qìı+»«ueXëwÙÖ®¬by= óZ?>ññ‰ÿ÷Z¿gø=ÃïY°ó‚ììS°lÀ¹-綜۲² sË+Ï}ö¦>âÞÊöy}*«^^Û¹ֿíýÛÞ¿í]Yk…ÁËF @aø²ì˲/{Ïê=«÷¬Šqà†}÷þù¸ƒD¼UÙ絪Xü¶y á‚—¿÷wÉ„ÁU'  L¹~ÊõS®¯,ìñÐMON=S¸[•}^«Ê*™×¹®xèæánƒ*/™€ÚÖ¬¬YY³6o·y»ÍÛ¿-²³wW_¬»´û¼në™×9¯yátapuP˦]7íºi×UŒ÷Ö¹hã¶ß³çã‡Î+Ð]êýã‡Î›×°bmóšf/0µ¬w½Þõz׫éuZ÷¢ûo¿F”»<û¼†¿³p½Þõz×+ü¾! ^Z`jͧ«ºú§«W ðÖjÒôÖfG÷l5~—™ q—kßjü.3ÌëY±ÎyýëJoW…€Z3fÞ˜ycæU íÚxÊ¿F¶ßV×>¯gÅ:çõ¯‹=G\0µá벯˾n6¢Ùˆf#*u[Ower”යöy=+Ö9¯~-ênW—' Ì`ò“ø‡?Ÿyʇ#'kkäAÐgžòáÈ kž_‹âëc+g,  ¾{ð݃﮿ukpõn— kkbŸ×¶bÍókQÜýmå ƒÀÔ‚Ö£[n=ºbä¶ÍM·Þ1½{¡E§Û¼Ûy3ön÷à þyÔzww·mûµ.Z÷óÿXó’µÇ7ú®ñumnn{uëµw[åÐC»Œ¼ü⇯,Ì8¯mÅšç×båé{Å €X¡~™ñËŒ_fT ØÖ9|ãõJ¦Zhºõ¤qw$ç®7¬ÓŸ{žVõ°°$;é¡Ïf œ×¹b›óë²²õÆâ ƒÀ¬P z-èµ WÅP­Õ‚]¯½â®GÿÜuü¨ÿù¹Ðà¼ÎúÛŠñøÄÇ'>>Q ÀJgˇÏëtSA¬˜»Íc·Î›>¦|ÛºîxåŒÇ.,´(wÙöyõ·cу‹\ô €•NáÜÜõ…«.š4©|Ûz̼¹ÁÔO‹#vðŠ´Ýd|þª&×´ýhËû íà¼Îàßé™u6ô-O À õËŒ_fü2£b¶Îá¯W2­p‚Ò’®'ü4|ì7½ák­ºå+çÝwó Ê¾¿Kû‘‡=Ô¨aýÆý›lš¿¨õó»ïrÄù¿ ç¼ò: €sÅú–' ´ÝztëÑ£µmnºõŽéÝ !(Ýæ±[çMS±…Þ¼ÏâãØ¢ÓÐKÇLïtÖųîükÛ‡Ž^tî.kwo¾Åeù÷¬µ÷ºû7ß³ÐVÎk[ñŒòk±òô½â }ËP ß=øîÁwWŒÙº5¸z·ÇK íAÐùÜ«6פþº‡w8çÌm¯y½ÐîýÍk[±Íùµ(îþVÜ¡oy`jÁä&0ù€Š‘[û3Oùpä„B[77o[Û‹ŽpÎåëÝá†înøCÓ-×{­á ëœÛôö¦ç”Dû·>­ß†‡½Úíãkæ?µA¡µ?ßçµ­XóüZ_[yBßòÀÔ‚yƒç ž7¸bü¶ÞƒÜvç PˇÁËö_kwŸ×¶bÍókQýjå }ËP¾.ûºìëf#šh6¢b ·õÄqW&Gr \·öy=+Ö9¯~-ênWú–'þ¿öî=¸ÊòNàø`W;™]5 w墄[ bBW¢ ‘"–E©Ä´¢T6 rƒ¸¶µh-`ÁÅ¢C¹XjK™µ#hAÖ¬¬utµ\ um‘ªÈþñü“×7 æ¼çÍçóÇ3Œ&'Ïó{Ÿÿ¾sÎŒùáþîÿáþÏù è±Sî©î-Üž°;åžêÞÑ9‡ùgãÍ}ãÀdÌžœ=9{r¢¡.¯MÛw˜PÖeÙÐ-cåÛãZ»,ºel˜gtÎaþÙr[D߯€Ȱòå-Ê[DÓ]q»ª•?,âÏfm˜yòï†è{¬`2ì¥G^zä¥G¢¯uUÁ¼>#ÊÎ[6}ËB)÷˜×ó–‚µW#IDATMß²0Ì0:Û0ódÞÑ÷xÀdZ‡ºuÎy뜷Îy+öÎ{aÆÐŧ ºÇº†¹Eçæfžœ+ úž(0‰°iѦE›Å¥¾Ò5KžÛ|»¬Û˜5Ì*n’aÎIxâ¢ïA Ô¨;P¾­|[ù¶hö;÷²‘ŸNºFÜmÌfõ9ßû»­|[ù¶0ç$<ðõ«×¯^¿Zô=±`äÎït~§s\ì÷À¬ß.¹Tâ[Ã|â¦f›œg}dä‘‘GFо'– @â,\½põÂØ÷†^ÐrÁˆõÏ˽õ×0“¸‰…y&óY×°è{ü`çháÑ£…e•e•e•ÑœÙrÅ™gäßûÕU‹«s­ôæfU˜a˜§{ÕÀ$Ôþ1ûÇì÷®ÖÖ·|£ÏÙ¥7ýèÝMßlžé7œ=Ì!nJa†îRó!h;ÞÜñæŽ7ÎÀÍíÝÀá¼ §ß07÷§¹€È—n\ºqi\ì €Ü¾8œ10+w¦y€ÈëNZwÒº“rÔïY¿]riúÒo8WÃgóqOš3€,Óð»ƒs/ùé¤kJ÷.üâø,þ–ß½K'¿8>œ¥áóz×/ @Vjø»ë;ï…CŸ–]é7ì¹1§ó]¿Ô'ÅöÙ?fÿ˜²Ê²Ê²Ê†Ci몂y}F·«ZùøÃe}–}gKu‚¢oŸeßÙRööÙðYÂyÃÙÝê€ÈzG -\¸záê…«ó®Ù¼6mÜaBŸ±Sî©î]V´ìö-g ú-»}ËÃaa?Ùy8c8¯çN” @J|ºãӟÓîè”{ŒÚ¯*^uÑ×úÜ>å½ê'/XøÐßž{÷ÄæÞðšáõÃß:Ö†s…3zÖÄ€Èz5k:ÖtÌÛ›·7ooî Õúí _êò¿Ã÷rÏ–ÌÜÞ÷²©w>Øâ¼ÿš1ñÄ~kg/Ùþþ{ø™ðóáwOì~ÂÃy=w¢`²ØŠKV\²â’ƤÓË»M?xNë'õñ6×ç&RØ[Øgc~>œÝ >€l3¨nPÝ ™ûg¿áD:lùô–]TýÏÿÙ¿Åܹ55ýû‡õöG_8­_Ùˆ w=·*ÿKí¦¶ú§¦Ï½áï†=„ýÔßaØsØïæfâj 5jsjsjsÆwßi|ì·üæý.ÿñ–WL9ð‹Šþ¡~Rmx¾îÅ_÷ûëuÛ–~©çá‹\_{öî¶ã; Ïëyü¡7¼NxÍðúáo5~oá,á\q%Ì$ÌÇ=iÎ`²@íüÚùµóG¯½bôЏúÏu£çu\wç’9ÅûŸWÿ¾õƇŸÚYXzÃ;O¾Õ{eø÷ýùÂã&æfåÎ4O0ÉVYWYWYѲ¢eE˸ðùõÿ˜¹òœ%s'׬íß÷‹±^'׬íß7œ7naVan®Os#hÕ%Õ%Õ%q±sTáw×´KyôYÃÙã&ææþ470 µáâ o¸8.p^ùÈ=t{¨y¦ßúk˜Cܔ ݥæC qöTï©ÞS5/}kÊs]®’~ë¯a&q ót¯š€$™Y7³nfù¼òyåó¢!³÷šA§´}´jý•%}ë¯a&a>ѹ…y†Ùºbé& k/Z{ÑÚ‹âÞÉ:cé+§Ÿÿ¹7n ó‰›^˜­;–n0‰phô¡Ñ‡FÇÅˉO ë](ñ6f ³Š›d˜³û–V0‰ðàÔ§>85,KòG<ÓáFY÷X×0·è<Üݷ´€Ȱƒƒ:8(î«·o}¡¢ß¿ºÇº†¹ÅM5ÌÜÝK€ [rÁ’ –\”ƒ»i[çG¤ÜãYà £³ 3w÷ÒG cŽŒ92æÈ˜¸w©NÿÚæ#ý¶Š¸Ç³†ÆM8Ìß=L€ŒÙ:wëÜ­s£aò+¯ŽšÜÑÇ>Ÿ°5Ì3:ç0÷0M`2æ¦7-¸iA4LN¾î™â>¿ÏÆÔzk‹_-º®þY’°«0ÏèœÃüÝÃ4€È€Ú/×~¹öËqM\5ú÷¯–¼.Ÿ¨5Ì3nÚáY¸“é »ÖïZ¿k}4FÜ:é½N˳÷Ö“€Ãfyxîd:ÀdÀONúÉI?9)#oÜþô€Âð±†ÙFgž…;™00êþQ÷º?#g>¾¥æüýð±†ÙFgž…;™0MkyÝòºåqßG;÷êšïõ/HN4­êñûÙ%/\wß‚I½_TÜö‰6 Ï:ØjoÞŠü«Zê´²ðÔ3|÷ÆS:­œvÙ¦ýîHr³›|x.®g¶€hR/ÿxùÇŸ€û>4äôv ’“KgÜòòÆóïéÙf@U›¹6fóŸu¿<¡xnMMÿþaÎчçâ~f;€&µoö¾ÙûfGäßÝú­.+JO¯9­nášK6·ýðÿ%ê?YÛnͨ>ß]_ÐîÆÎOZ˜Õ†{?èöQaé Ú¶/Ǿ§9a8Ì9ºÏð\ÜÏl'ФvõÜÕsWÏh€=rþ¿ìHB"ý×}?˜ÖcLý½ >mF××Âÿ ½ƒ^ªXØé“äà0çè>Ãsq?³ @“Ú:g뜭s¢òº;–ÜÒóí$$Ò¢C¶« » ݘߺkðÎ%Óκ¹G—3v%9‡9Gçž‹û™í`šÔ‹_ìøbÇh€œ¸sù)½¯HB"íx¸ûØ3ž »ß}Ñõ=Û4>å&ÿÀaÎÑ}†çâ~f;€&µyÒæI›'Eä …ËŸè=%³qôÎéÛ_)þCý]ݺçW»ŠV5þ¾qðGóz>“äæx.îg¶€hR[fn™¹ef4@~sÑcz Èl½íŸ¿ú¼_ÖßUHÂ…Éóž©ìón’p˜stþï缟ó~Žû™í`šTMiMiMi4@Žýö÷;t¿;³qô®õ¿[W²´þ®¦^³á‰¢Çð »o.=³çÑ$à0çèüÝÌt€hR»‡ì²{H4@0m\×W’Hëïjü£‹{ö,küïŸ:ëoçüw’p˜³œV0MêPΡœC9ÑY|hÄôã’€{V— mó~£Þ={ì³Ç*s+s+.¤¹½_4¸íOo}ôW£ŠN~ô û {nø\áìaî @Ö[;{íìµ³sáü»¿þ—öïÞòܺËû.MNô û {kÌ)Ây=w¢`Rb÷u»¯Û}ÝЖC[mÙ˜ŒÚv\§ËòzŒ~öþ™¾ôŇúý©iroø[áï†=4f·á\ጞ5q`ÒåpÝáºÃŠ6m(Ê=FùsÛhÕÿÒI·ü©KáÄËOé}ŬCÛºûûBoøÝð:á5Ãëë®ÂY¹<^&Z‡ÿxø‡ÿøtíÓµO׿ž ­‡uXÓêŽ.gõýAþ™çn.ù¨õåáß῟¨¿ööï9Òx0ÍBíâÚŵ‹ŸøüÀçž:xê੹‰öööéyñ÷€h¦|tà£ý¬ôg¥?+Z0´`hAÓäÞð·Âß {ð,8Q`øÞ^÷öº·×=»êÙUÏ®ªº°êª ‡>`ø€NÓ;Mï4½á¸~&ü|øÝð:á5Í–/š 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JÀ)!¤„ 0@JüÿfVÇdGè%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/takeUntil.png000066400000000000000000001262061431412030200253400ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwtWõý?pÑom­­²Aeƒ (‚€ŠˆBp+NÀÜ îQGU,Ž b¡®"VWAÐÜ¢¢(Ž:j«ˆŠŠZ÷€ßמ_zBÒ ?ùäñÈ9ïà ÉÍû¾>÷xå™Ï箳€¢°Ž0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0@‘ 0EbÞUó®šwUöMöMöMþg5=zЃ =z€ÚFLZ:réÈ¥#ç ž3xÎà‘ÓFN9­íضcÛŽ­»ÚòãäÇÌŸ-5=zЃ =z€šNLAX²Á’ –l0aé„¥–6Ýlt³Ñu׺üëæ{È÷ãqAêAЃ õ èAЃzô P‘ò=5w½¹ëÍ]Oeøy €ù94[ÑlE³yãçŸ7¾¤NI’:u R¾·|Ÿùž=tèA=zô =zP‚r` “˜µeÙŠe+–ͽiîMsoj÷z»×Û½þÓþóÑsÃÛ6zfË7¶ï=éñþC¶êòà>{]Ðcvtã~'÷š}qÀF½gæÎߟLþñùçþ´¯›ï9ß~.Rjkv™×tê™-{²}ïI_ðÜV]Üçú:=fG7N:¶×ìì‹É {ÏÌÿœ¿?ÿ˜üãóÏÕƒèÁÕéÁ&Gvج˼6Ëö¼î°';ÝpÌä žÛj3/¾¾N·WοfÒ±ÛÜQÉ ó?çïÏ?&ÿøüsõ zpuz°M×­îk¼iß¿›ÙrÚ~ñelþÅá#'vèøú1OÜÞc˯{sêkïÎÿœ¿?ÿ˜üãóÏÕƒèAó ˜õ zÐ<ÅDLa³Æ-j½¨õ¢Ö% J”,¨ú,öÑþêæÍXo·ºÇKž?jx¿çV¬1bàÀêZócæÇÏ¿Ö*üÜ‚’% òóòøR¼=¸ÓnÍš±Þ˜©Ýã%ÏÏ~«ßs+VÌŸ?p`u­ù1óãç_K¢ËÚlzé;íÖõìÓÞ3u»‰c¿œýVß¾·Ý6~u­ù1óãç_K¢Ëêüê.ûnrס'Œ×±ËÙßf³¶9â²Ë^~¹gÏêZócæÇÏ¿–DšÁ<¨уæA¨‰À&0kÄò.Ë»,ï2qÆÄgTå¿-6ú¸Á-Ó‡ïqW÷)+fØg`Ïê﫴αÏÀžùòýTeçù9æçëq§&÷`³cÜ2}ø˜Îݧ¬˜=ÜÀžÕ;ÞWi=ÜÀžùòýèAjO6hºÉ-ÍŽé:ô´+Ætî»õmgÏW½ã}•Ö­o;{þ¸|ù~ô µ§›Üؼkým>®~dž—õòäž[VoÜ[¥õ¨—'÷Ü2ßC¾=ˆyÐ<æA=ˆyÐ<…OLaSÍ–Y:dé¾£úŽê;ê¼pМg5}zþ~ÍßþÈÓGì9°ÇÏ0äW´N±çÀùÞò}V~.ùùæçî æô`×AMŸž¿ßíã¶?rÅôùcöø†üŠÖéóÇ ì‘ï-ß§¤øz°É¥~ßuPM/½çöq}»Þvúü1?Ã_ÑÚõ¶ÓçÉ÷–ïSR|=ØæÒ­û5î9bØ=ßvùûe‡¾<®gÇŸ!ô­h=ôåq=;æ{Ë÷©1šÁ<¨1š¡0 €)L`ªÍÂW¾ºðÕªüvXÔ~¿þ½n) ñ¾ k¾çªœ]^×…݃“6êuK÷UXó=ëAŠ£»eçï>i£ï«°æ{ÖƒG3î¶W¶|·€âÞ*¬ùžõ æAó ˜õ æAó 0…IL5¦S‚)•ÿóñÐíÚlñÝ7ÿ’5kÔ/»æûÏÏ¥òóÍkâÚ zðøC¶øî›?bÀÌš5ê—]óýç碩Y=¸ùûsü!}Þ›ròãGÔ¬Q¿ìšï??=HÍêÁ÷œôNëI¿ëþ|Ým›Õ¬è·ìšï??=ˆyÐ<æA=ˆyÐ<…@La³Zf®;sÝ™ëVþO~Öÿù½¯­¹C~Ek~^•Ÿ{^× ?wNØûÚš;äW´æç¥)üÜæº Ÿ˜<°æù­ùyéA ¿ûÃÔ’Î×ÕÜз¢5?/=ˆyÐ<ˆ4êÃæAøy €)L`~¢Ê»­é ÚÕûxñfGׯ{ñúe×üóóõ[oR6¾ªÞÇ‹7›÷ë^|£~Ù5?Çü|õ …Óƒõ¦5jØøªíêÝ0hV\|£~Ù5?Çü|õ …Óƒ ë4þ¬ÞQgÍHFv[V|ÑoÙ5?Çü|õ æAó zÐ<¨1šaíS˜À¬²ÊïiÑó‚G4 ?»ûØ3û÷/îQ¿ìšŸo~îîÁÏ݃][6 ?»;9¼ÿâõË®ùùæç®ùy{°ÉYŽìÚr‡é“Æ$‡÷¨_vÍÏ7?w=ÈÏÛƒmŽÙú·;_Øþé°G“âŽ~Ë®ùùæç®1š1šõ æAó ¬M` “˜U°tÈÒ!K‡T>êyÅqÿЦöŒúe×üÜ+ûóº–X3=صeÓðË+æЦöŒúe×üÜ+ûõ k®óq·ÏIzkî°Ú3êÿסNúÓ[s‡U>öëAÖ\æñçE?<ûï«=ÑoÙ5?÷Êc`=ˆyÐ<ˆyÐ<èZÂi#cüª®yÝô «ßƒÇŒ»í•-ßë®êš×Mb4b4êÃæA¨^àê% ®.`VbÞøyãç/ßB=ç´8«éÓ+JG ØË¿ÊkéˆA{å5,_Û¼æ®=þWvÔôé¥ó'ìe€_åµtþĽòêA~Z6¹´Ãï»êÛí¶sçO4À¯òÚí¶sçOÌk¨ùi=ØæÒ­û5îyÙÑ/ßÒsKî*¯G¿|KÏ-óê̾̾A=ˆyÐ<ÕE¼æƒW‡˜•(©SR§¤Nù¶™¿ßAó·?Òè¾:k^ÕÜ÷¢NI’:®=þWÞ>nû#æ5Ôƒü´ì±é¥÷Ü>Îè¾:k^C=ÈOëÁÃîù¶ËßE¹«³æ5Ôƒ˜̓˜̓zó yª‹xí¯*0ÿeÉK6X²Aù&i¹°ÑÇ nYqêˆî77´¯Özêˆî7ÏëY¾Îyý]‡zpe=Øì˜·¬8uþЛÚWk=uþЛçõÔƒT½4Ýä–fÇômsÛîó‡ÚWkmsÛîó‡æõÔƒT½›Üؼký.Ûñå#z¶â®ÖºãËGôl™×Sb4b4êÃæAX}àµO\`þË„¥–NXZ¾1¦ßã®îSŒëÕµæõ,_ç¼þ®C=¸²Ó¹û”ŸkHþÇÞ÷5Úñ»²û©éc^O=HÕ{°ëÐÓ®ÓÙ¸^]k^O=HÕ{ðÐæãêwlX×3êÌÙ}ë£ÊžK!ì*¯§ÄѼ¤çµ=Îø¶óÁ=ÒÎ7=´ÉÄFŸ×Ë6ÿ[« ?7b´š)nàŸ—0¸"`þ㓟¬ø¤Ùèf£›.ß ŸÝì¨þ êÕµæõ,_ç¼þùcá’Ôƒÿ݃ÉÑýN\Óc༞zª÷à3&]—mP¯®5¯§¤ê=xaǧÓMÀÕµæõÔƒ˜̓˜«k½°äØG¶¸¼ò³š1Z̓+pá—%æGKG.¹tdùK¯í¯nþ}M¬ymË×<,\“zð?=¸ÓnÍúyÇãâ €ó5¯­¤òÜlzé;ífD_k^[=Hå=ØùÕ]öÝ䮚û’Ë…çk^[=ˆyÐ<ˆypõ×ÚœÛhX¾çóÎ<ú÷Þ|õ¤é“w¼þó™éýçæühÄaܸŽ]ô æAó æÁÕ_Ëî9~̓˜­æAjpá«a°˜œ6rÚÈiå/ñÅ <¦_7ÃùšXóÚ–¯yþX¸&õàzpVi¿nà5±æµÕƒTÞƒÛÕ½a¯Y¥†ó5±æµÕƒTÞƒgÝ“œÚícðšXóÚêÃæÃÕçó£yó Õn,Ø¥Oaüymõ •÷àŽ“o¹ãÉí mTÞñ­[/zjÿÎÓOÜå÷Go6­Ç¤º6¸tÓ÷[ü¶Þå okôyãñí¦tº¡mýÖ9üð^c®¹ìþë sàÏk«©¼/ùô¥Í¶½¿pBÓK;¾tѶÙÁ þ°k‡ã;?¹KMîh:±Å¿ë¿×`ZãëíÒêž.¿m4iç·NX¿Õ=çì1wçmÎ+ä8¯­¤f̓ù:wö÷~ëèv]Üæ±|l|gýß×»¶kçÍ6~ãàÛ; nµîÃ×ìsê¶K–7>«äUó æÁ5úÖ”»ÿš)Žy°ëE§}5&lv}¯‘»¼Þà¾Í.hñd½uo|“‹:œÛu§u‡\Êõ}NýÓ‡sOíÕuÌ÷5*{FæAXÀ5Wq‡Á`V|÷ÔwO}÷Tù‹¸ç†-¶m:µpÆãdñþ»÷îÛ¢K£ýô«»ŠÞ~ìˆwwZ\˜c^çò{Î×gíîÁ.óšN-„Á¸¢¸Ñ̆Ô\y÷mþ·V+~þÒ]wßÝgfaŽýyõ , 49²Ãf]æÚ¨¿ÃÌIw$nv^_ö=£êÿvÉN¹oô3…çuÖƒz°ü5ЦëV÷5Þ´pâÒóO}2è~E§¦;^Ú4¨z÷ yìºï¶Ø«0à|Íë¬õ`áσy”{ÖŒm—tX¿ê=xЗ·œÿÅÔã®ë¿Ì<ˆy°z×öS[?Ú¨S¾þ׿àoµx²á ²[Èga¤¦Ìƒ}æO©ûØ’æ/ìpænëUýßÁm^ºèî)'–¿yª—¸8_,fŲþËú/ë_þÂ=³eÛ÷.„‘8×;ž»É•žÉ÷Ö~jÓóuºáý~'v9þ±¿pÿvM_|xèž}~¾ß²Þ¿ºä›í›u—?'ø¿ç´þ¼ÎåëŸ?.®ÏÚ݃‡=Ù¾w!À¹ KŽ}d‹ËÝwÂo{&¼{Ýý=n;­é!'m~u½:uŸ®û_¿¾¼ùSû—¼Zh^g=¨W>-ÛóºÃž,´¸ô¿þ'ëm°îæ§pòñ˺}Þ&¯ì¾ôÒ&·½Ø±Ï‘#Î>.ÿMð²gÔë°1ŸÜ·°ÐÎ(¯³Ôƒ+ù±Ô߇Íl9­ ‚Ò_Þ¨gÝ.÷õl“OÊîp«v½Óûê:zV‡MOh}×o»4>ðÑ«>nÿy—>»|¿É“ý»Yhp^g=¨ yÌ×ß—îpy§S~ü¡üÄúoÔË.ùÕviÇÃÝwß—z& ZüòëN½g×Ç»ýs—7Û|¿Ù˜•=Ñ<ˆyÐK@›©©ó`«®»¼±ß„²;lµÎ.{ zµk«S_øCI©—õ—Ç»ò®:°*!±yª—¸ÿu(Š0XÌŠ7|óÁ7,±Nz¼ÿ­ºÂHœÇºù®ê}V7«{Ñ+çòàŽC*æWòâ!Ï79¹áU…9ðçu.¿çüqq}Öî¼à¹­ºf\ÿíú%u ºM¼²WײÙ?ß»óJºRø/ÿ•×YêÁò×@§Ž™|Ás…3oýò9ÇŒôãæþTïñú%Ý¢óûÞ´"ÿÛòcüÿn^Þð¶FŸ樟¯yõ , ì_öÈæ_BDzèû7žÓñ¿þç¹ç>çœßöÙüo+üv™7|b«¯ ?Îë¬õ`!σ‹êþ»~SÿízÍë>´é‰ –Ö?á嫲c›Š>>ßÿÙ·ôܹCŸÂ̓þ·÷¯ªò¹³/÷JÏÿyñöÿw¨Âøó:»Þ(¯Û+ç_3éØÂŒg›oµåÞ?î­ÌsÿÇ=ƒ;Mü(Úµ×’kï|ð—½o»~Ùß¾)´8¯³ëòŽyâö[~]ióo·Úð¡|WGlqÓÑšV=Ê-ügçuv½QÈóàÐQ[ÛêÇ;tÎ}ÀÁ½ßZÕÉ1×ó/-Nm:Ï<ˆyPl¤f̓M.êpn×ò]•}]¨ª|nEggXûf͘5cÖ 0!ûâ€zÏ,Ìø“u޵Ë_£ûõéõ§[×/¹w뉿k²ÝðŽí‡\¾å†­NkÙ¢Ñ= Î©è¼ í\ò:»ÞXYN^Ø{faÀo?6sæN‹«ò¹o´z`¾·¬¬ eàÏëìz£¼mÇ䂸cîŽݲôÉÿºÛSï×=õÐ%…åþÄ4»ÿ¢“ºÞ(ï¸7§¾ÖùîŸ7½øÜçžêñϲ»:cÉ#¯m=½êG8òßú}§Ê¡Ðà¼Î®7 yÜö¡ ›Þ°úgÔ.kòXàЦBó …?wl¤çÁ•L‚¯ëýà*¼ªÓÖœ½Ó¸WÊŸy`íûvú·Ó¿.¦ Ú3€´>øåÖ´a‡·[\‘ßÿ©¢w_Ø|XÓvÃ>ìzM›ëËÿ­ßø¦æô`á>ø›ÿeÀ“Uùܯ®zlˇ­¬ýÆ7…®p~ã»÷³¼tæýXªÏü)u[R°ßø¦"…ð à³6Œî6§ì®òH¸êG8ù÷ŒêúVÙ#x0æÁU]›ŽnЫ޷«FecÄ<(6Røó`þN«3 n{í•ÛßuVù³3¬}µèÀùk {+„·ÛêßVÿ¶úå/ÇB»p“‰õߨ—å{Ûz£Í¾m²G~/¨™wïýè¶üs«ÃÎì;<¿ÏSþYÿØûÐè¿#«Bõ+¿ç“+Sò=€«þ àEŸ=tÉN»äŸÕà…ëÖýà?Xè÷|reêÁ¹çSŸ)“/~l˲{Ûî±½þ 8àŠîùäÊÔƒ…pàKf½8sÛÿº¥È™‡ëý´µÐ¦Bó ·ÂŸkç=€]™z°æÁíûø‘VewµªÏîÖãÜ«&éë+'þ¸¹'ëm°î6/]t÷”+úø^]Çq_£ú5Ò´cþImŸÙg÷£ö-´?¯³Ôƒ+ù¡[×­îk¼i!D¤‡6~§Ž¿+¿ÃŠ>þÒɸíûý§Ÿ¸EëUÿ¬ŸkÍë¬õ`!σÏý{ð;;LýÏÿBë5¯ûÐÃ×ìsê¶K*ÿ¬ ì½îÿõëùq̃˜ÀæAjÖ<¸Õ²Q£o¸½ìÞòÙ°òÏÚ¢ý¡ßŸñmE…yª—¸8Gè[–˜µÛvlÛ±å/ßï¾uÉèŸw$>ᆭïlûÒÏyú´ñ솛þå‘]Oî6í_/qÍN÷½â°uvîüØ_¸»¦—|³}³ŽãšŽnЫ^…ÿÅ)œQ?¯mùæ…kRþ§ŸÜ¾dt¡Àí§¶~´Q§üÏm{ÜÙ[Ì)í7áÉž_?ôÄ;n»ÑiM9ió«Ë~üÇï8³yßB{îo^[=Hå=¸ãä[îxrûBŒË¿üWnó),?áÞü¥ÀzœsÙ‚¿üºÓ}Ç|{áî ·oÞ­ÕCHƒý7=¸ù B»sp^[=Hå=xɧ/m¶íý?sPºñËõ\Éÿ*·úh×û7½ï Û®þ]‡~'´¾ë·]Üà»v8¾k›×mÚ8ÿ˜§tlÓðµÂ €óÚêA ÌוÜIkd·¡ív¹ëâÝ^ØæÒ<Üy÷Þn{Áà±hõ_Ïç;ê×]^iÓÆ<ˆyPl¤F΃uoÛxþÆ-Öíó‹Ýâ²{k5gÀøæw½è´¯Æ„=^¸ü³©—wùìÔ¯¾ºÅ‘;vÜc»cì‹:œÛu§?áOõ¯_R8°yb"®¹Š/ô-KÌFN9mäJ^ümqÃ#é×íçŒ?Üñèßîülþ²]UoÂWO:tïoû|““^Uöý{nß¶ùY…0ðçµ-¿óü±pMêÁÿôà¬Ò~Ý -ž;{ʉ½ßÚôĦëŸPy'nÕ|‹C›4|û±™3wZ\hp^[=Hå=¸]ÝöšUZh/¿˜sUþ5¬?©éF›¹õgï4î•Bû]ï¼¶zÊ{ð¬{’S»}\qéyæÓ½~ûK{õi2¦*Ý×öÙm®n<5† 3Îk«)üy°ìK:Ñ±Ëæ­gV}*Üw³h±Ï×çÿ§ã -6RSæÁb €ÍƒÔ¬yðÇ'ÆÜ¶ëiƒÏ«Ê¿€›ÞЭóöY÷m.~öÏoçï)û+ÂæA¨^àš¥¸Cß²ÀühÎà9ƒç .YÏXo·ºÇ…óß—~°ýYŸì»eë6½ ¿7p¾îòf›ï73ñº]®è:ý‡ÎÃ+¹ã¿îÖ6|“Eÿo³C¨?åÄc»=Ôî¼B8£¼¶åkž?®I=øŸ3µ{\hpÙ!ÿ¨ïö=ªÍvY«]ïlÔ«Þµ=ÒÎ7=ôò§OœÒ©ç¿ç¦Ûõ¿¬Ð¢ß|Ík«©¼»ž}ÚÛc¦Ú}sü×íÒc†_pͦÇl}óö¿¬ÿå&Ûlörý“š\¸Éí›\Ð%ê9¤í{o~Äß·[<îãGZÚþó5¯­¤ò<ô„qã:v)œÐ4ßÕþ\¾}û:Ní3»éÄÆó7{®þ> 7mÒ¼Þˆ¶‡u‹ÿnág½ßöò‹Ï}î©ÿ,ä—€Îk«©)ó`Ù5¦ïÐQ[ÛjêækÚ²áçfÖïToðÖ+šÐäÒƒ踼åüücÊÎ’…væAjʸÕ{%¼ª`ó ÅG\8„¾e €ù/–NX:aiù˜>|»ºO1¨Wך׳|óú»õàÊzpLçîS êÕµæõÔƒT½»=íŠ1·Õöb_CO»bLg=HÕ{ðÐæãêwl(¸­¶n>®~džzó yó yPRøó`çA#š_ö~¾“FƒZýyówè4ñ£h×Ê?«çÂ?l7}rݯë/mþx­N}á%æAXÀ?/¡oEÀü—%,Ù`É囡åÂF7¸eÅ©#ºÜܸ¾Zë©#ºÜ<¯gù:çõwêÁ•õ`³cܲâÔùCnn\_­õÔùCnž×SRõlÐt“[šÓ·Ím»Ï*¾]­µÍm»Ïš×SRõlrcó®õo¸lÇ—èÙR|»ZëŽ/ѳe^O=ˆyÐ<ˆyÐ<¨)üypûÓÇÿ¥ô †Û7ïÖê¿B¦üå{/¿¡Á¬3úôûÓÐìÁS/?ê/wœtÔµç¼ÑàÒMßoñÛü#óû÷™?¥îcK̃°&€×>¡oU€Y‰’:%uJê”oùû4û# í«³æ5,_Û¼æ®=þWÞ>nû# í«³æ5Ôƒü´ì±é¥÷Ü>Nˆ»:k^C=ÈOëÁÃîù¶Ëß…¸«³æ5Ôƒ˜̓˜̓zš5æ{¨wyÃÛ}^õ¨£Á}›]ÐâÉ/\þÙÔË áş̓+ðÚ!ô]U`VbÞøyãç/ß*=ç´8«éÓ+JG ØËè¾ÊkéˆA{å5,_Û¼æ®=þWvÔôé¥ó'ìet_åµtþĽòêA~Z6¹´Ãï»êÛí¶sçOå®òÚí¶sçOÌk¨ùi=ØæÒ­û5îyÙÑ/ßÒsKQî*¯G¿|KÏ-óê̾̾A=HMœó´~v·:Cz–NðÏ÷íÝö¼ŽMÛ½½ß¬cÙnñ¸iUѯyâ&^s„¾«CÌÊ4[ÑlE³v¯·{½Ýëå›'j¿_ÿ^·àWuÍëV¾žyóš»ô¨ZNÚ¨×-øU]óºéAV¿»eçï>i#yÝô «ßƒÇŒ»í•-ßè®êš×Mb4b4êAjú¡ïš ¦b®øpŇ% J”,XÉ݆n×f‹ï óUYóZ­äþ J”,ÈëìrcÕ{ðøC¶øÎ0_•5¯•¤z{pó=öÿæøC óUYóZéAª·ÜsÒ;­' w«²æµÒƒ˜̓˜̓zó yÖðê›5cÖŒY3„¾ÕKÌÿ°¨õ¢Ö‹ZWÔlYÿýç÷¾ÖH_Ñš×§¢êåµu±z=8y`ïkô­y}ô k®·¹îÂ'&4ÒW´æõу¬¹<îSK:_'â­hÍë£1š1šõ æAó ¬9àÕ÷Ãþ?ìÿÃþBßê%¦J&Θ8cb…¿±x³#ë×Ýx_vÍkRQÅòzº®¨¾œ÷ën¼/»æ5у¬Ü®Þ ƒfÅÆû²k^=ÈÚéÁ³f$#»-÷–]óšè̾̾A=ˆyÐ<kš¸º”}°Ðwõ €©’å]–wYޥ慨£úŽ*ÿí¬é ÚÕûø³»=³£~^‡¼&åk•×0¯§ëŠêëÁÆWÕûø³»“Ãû÷7êçuÈk¢Y;=XoZ£†¯Úaú¤1ÉáFý¼yMô k§ÖiüY½£.lÿtØ£‰è7¯C^=ˆyÐ<ˆyÐ<¨1šaMS˜À¬‚¥C–Y:¤¢ßÞêyA‹#š†_^qÜ¿´©£~~îy*ªR^C×k¦»¶l~yÅÜaÚÔÎQ??÷¼zµßƒMÎêpd×–}NúÓ[s‡ÕÎQ??÷¼zµßƒmŽÙú·;_ôóÿîñ·Úýæçž×Ab4b4êÃæAX;À&0«lá« _]øjåcmûíïü|+õóº¹~Xó=صeÓ°¶ýöw~¾•úzµÓƒù¸[Û~û;?ßÊG}=ÈÚéÁ<þ¬mÏÎÏ·òèWb4b4º~0šaMS˜ÀüDÁ”`J0¥¢Ôó¼ª ÷‚Êϱ¢øÊåµrͰv{°ñUõ>® ÷‚Êϱ¢øÒƒü\=˜¿àUm¸T~޽À—äçêÁükýós¬èŸõ æAó æAó Äi£š5êç{ÖƒG3î¶W¶|·fE¿ùžõ æAó ˜õ æAó 0…IL5[:dé¥CúŽê;ªï¨ÊÿCÐsN‹³š>=¿ƒæoäŠé#öØ£€†üé#öØ#ß[¾ÏÊÏ%?ßüÜ]Ôœì:¨éÓó÷»}ÜöG®˜>ÌÀ4äOŸ?f`|où>õ Å׃M.íðû®ƒzlzé=·ëÛõ¶Óç) !¿ëm§Ï“ï-ß§¤øz°Í¥[÷kÜsİ{¾íò÷Ë}y\ÏŽúúò¸žó½åûÔƒ˜̓`Ôƒ˜̓P˜À&0kÄò.Ë»,ï2qÆÄgTå·ÃZ.lôqƒ[¦ßã®îSV̱ÏÀž?Ã?{Ä>{æ{È÷S•ç瘟¯ÇšÜƒÍŽipËôác:wŸ²böüq{þ CþìùãöÌ÷ïGR{z°AÓMnivLס§]1¦sß­o;{þ¸ŸaÈßú¶³çË÷ïGR{z°ÉͻֿáÐæãêwlxÙQ/Oî¹åÏúõòäž[æ{È÷£1šÁ<¨1š¡ð €)L`Ö¸E­µ^ÔºdAÉ‚’u«l¯í¯nþÐŒõöx«{¼äù£†÷{®zÇûü˜ùñó¯Uõ½åç’Ÿ—Ç—âíÁvkþÐŒõÆLí/y~ö[ýž«Þñ>?f~üükéAô`Y›Mï1}§Ýºž}ÚÛc¦n7q엳ߪÞñ>?f~üükéAô`Y_ÝeßMî:ô„qã:v9ûÛlÖ6GToÜ›3?~þµô zÐ<æA=ˆ4BM$¦0 €Y[–­X¶bÙÜ›æÞ4÷¦v¯·{½Ýëu’ž¶Ø¶éÔ3[ö¸±}ïI÷²U—÷Ù낳£÷;¹×ìì‹6ê=3ÿsþþücòÏ?÷§}Ý|ÏùþósñR[{°Ë¼¦SÏlyØ“í{Ozü‚ç¶êòà>××é1;ºqÒ±½fg_L^Ø{fþçüýùÇ䟮D®N69²Ãf]æµY¶çu‡=Ùé†c&_ðÜV{œyñõuº½rþ5“ŽÝæþ‹zL^˜ÿ9þ1ùÇ矫у«Óƒmºnu_ãMûþ}ØÌ–Óö‹/{dó/9±CÇ×yâö[~}Ü›S_ë|wþçüýùÇ䟮DšÁ<¨уæA(&` “˜ŸC³ÍV4›7~ÞøyãKê”Ô)©S· å{Ë÷™ïÙC‡Ôƒ AêAЃ õ èA '¦0 €)K6X²Á’ &,°tÂÒf£›n6zíÿ·&ÿºùòýx\Ѓzô èA=zô =TDLaS –Ž\:réÈ9ƒç ž3xä´‘ÓFNk;¶íضcWÿ?4ùqòcæÇÏ¿–šƒ=èAЃ€=@M'¦HÌ»jÞUó®Ê¾É¾É¾Éÿ¬& Azô  APÛ€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ H€Š„ μ«æ]5ïªì›ì›ì›üÏj@U€`[:réÈ¥#ç ž3xÎà‘ÓFN9­íضcÛŽ­»ÚòãäÇÌŸ-5¨ÀPÍ–l°dƒ%LX:aé„¥ÍF7Ýltݵ.ÿºùòýx\ êÊ÷ÔÜõæ®7w=• ð €`õ4[ÑlE³yãçŸ7¾¤NI’:u R¾·|Ÿùž=tP05—VݲËV,›{ÓÜ›æÞÔîõv¯·{ý§…²=7ì2¯éÔ3[ödûÞ“¿à¹­º<¸ÏõuzÌŽnœtl¯ÙÙ“öž™ÿ9þ1ùÇçŸûÓ¾n¾ç|ÿù¹xH¡,05—VÁ¢Ö‹Z/j]² dAÉ‚ª®{Øi·æÍXoÌÔîñ’çg¿Õï¹+æÏ8°ºÖü˜ùñó¯µ Ï ^P² dA~^_È €¨¹Àð?,ï²¼Ëò.gLœ1qFU"Õ– ›Óà–éÃÇtî>eÅìùãö¬Þ¸·JëìùãöÌ÷ï§*;ÏÏ1?_;µ™€šK Z:dé¥CúŽê;ªï¨ÿñbÎsºjúôüýn·ý‘+¦Ï3°ÇÏúV´NŸ?f`|où>+?—ü|ósw P; €¨¹À° _]øêÂW«ò¬Ù¨ý¤zÝR@qoÖ|ÏU9»¼®j05—þK0%˜L©<½xèñ‡lñÝ7?~Ä€™5+ú-»æûÏÏ¥òóÍkâÚ öPs €àG3×¹îÌu+B³þ“ö¾¶æ†¾­ùyU~îy}\'Ô`j.0ügý6=°ñUõ>^¼Ù¬¸_÷â‹~Ë®ù9æçëÙÀÔf`j.0µZå÷úíyA×–MÃÏîNïß¿¸£ß²k~¾ù¹»70µ“€šK @-µtÈÒ!K‡Tý~yÅÜaÚÔžè·ìšŸ{å1p^C×ÅG @Í% ÖYÞey—å]úŽê;ªï¨Š^ð¹¶=ë·ògWô¢Ðy ózº®(&`j.0µÎÄgLœQѳZký~Ú½+ªX^O×ÅD °6Íš1kƬg´+ïºò®+ïZ¶Û²Ý–í¦2?€ZdQëE­µ®(ÈÌúOØûZqoEk^ŸŠª—×Ö5Fq¬?ìÿÃþ?ì_Ñ”! þiÀÔ®øpŇ% J”,(ÿc…‹‡È߉x«²æµ*_ü¶y]nÔt`€µ£ìs+' ®:0µÂÜ›æÞ4÷¦Š~”ðÕ’ÇÎp¦p·*k^«Š*™×ÙõFM'X;ò@7wëV™0¸r`Š]³ÍV4k÷z»×Û½^þQûIõºE¬»ªk^·òõÌëœ×Ü¥GÍ%Xû„ÁÕE @‘›7~ÞøyãËÿ˜ çœ®ƒš>½¢tþĽº«¼–Ο8°W^ÃòµÍkîÚ£æü¼„Á«C @‘+©SR§¤Nù ÌßïöqÛ)Ê]5¯áJî\§¤NI×5— pƒW•€¢µdƒ%,Ù üZ.lvLƒ[Vœ:èÀÍ…¸«µž:èÀÍóz–¯s^×!5‘ 0 ƒ«B @Ñš°tÂÒ KËÿÓ‡éÜ}Šø¶ºÖ¼žåëœ×ßuHM$(|ÂàŠ€(FŸ¬ødÅ'ÍF7Ýltùÿ³û“£ûÜVך׳|óúç…K’šE P³ƒËP„–Ž\:réÈòãý^#vÚ­ùC"Û5±æµ-_óü±pMR³€j.a°€"4gðœÁs—ég¬7fj÷XX»&Ö¼¶åkž?®Ij0@q¨a°€"4rÚÈi#§•ã7œUÚ¯›°vM¬ymË×<,\“Ô,`€âS{Â`0E¨íضcÛŽ-?ºÿð“Û—Œ.„¸´îj+´8¯mù}æ…k’šE PÜŠ; PT¾{ê»§¾{ªü ÞsÃ.óšN-œ¸´n5)´8¯sù}æ‹ë“šB P{_, ¸F÷þËú/ë_~8?³åaO¶ï]hðS³û/«|ÍæMžÞûžÆw6êUïÚü³†}8¨y›ë 3Îë\¾þùãâú¤¦ÔÒ‰²(Â`0EåÍß|ðÍË䓿๭ºÔ¬»ê¾3kÖýšµŸÚúÑFò³è³û6woºÑ—æž: }aî9¯sùúç‹ë“šB @Í ƒÀ•…Ã_8¼üþà>××é1»¦D¿ŸÏL¿è?g‡!Ý>Úäå|ÿ­?mñÛ†›¾õößúìtna>÷7_ó:—¯þ¸¸>©)À”U³ÂàŸ-® kQtã¤c{Õ€ø‡ÎON(¹ãàÛwݵպùÎë¿]¿¤îCñç7ŸÛûW…ýæk^g×@nÖŒY3fÍ@5˾˜¼°÷Ì€Ïùã° ;Œ,»ó SÎÜõœüÏ…¿ÿ¼Î®7€Ü·Ó¿þít0T³Âðä].J· Êîù„¼ªíK5ë¾Åž PV-zp~ßoÞ¼yóæÍ›7oÞ¼yóæ­zßn«[ýÛê—¹ ùÀ¥ý&<Ùóëü¥žóÝöûí¶“7}ïës[2`\Í €+º°+Ó[Íz+ O\âú×WoÞ¼yóæÍ›·ÚùöðùŸÿðù#Ö±îˆu«ýæ_‹î k›¾ùà›–¼'=~Ás[u)´¸ôï“î9¾ÏÒæ}6=²Á¯ó}¶ËZíÒ0xgÖ¬3ú5ËßS³à¼Îåëïʤf©è—T öȃÛ+ïºò®+ïªzè›üÚ}ËP\#zÿeý—õ/?„ŸÙò°'Û÷.œ ôƒCy}磻ìÐþ_§å;l8·AX¯ÕcýsûíšÖÄè7_ó: €©éÀµt¢¬±¡oY`ŠÊwO}÷ÔwO•È{nØe^Ó©…‘æ/ìÜÿ¹Þ×m–”ÝaÙ{×Äè7_ó: €©éÀµGq„¾e €(BmǶÛvlùýû‡ŸÜ¾dôÏ‘õë}þÒ¦MÙ]³`¿ m¾ÿ|fúEÿ9_LÍ쿬*k¡E¿ymË×<,\“Ô,`€âV|¡oY`ŠÐÈi#§œV~\_ÜpVi¿n?oPZ·šZœ×¶ü>óÇÂ5IÍ"(>Åú–% Íi6ºÙèf+¹+íg÷'G÷P1p!¬y=Ë×9¯þX¸$©YÀ5‹Ð·,0EkÂÒ K',-?äO>¦s÷)‚ÛêZóz–¯s^×!5‘ ð }+" h-Ù`ÉK6(?ð·\Øì˜·¬8uþЛ‹oWk=uþЛçõ,_ç¼þ®Cj"0@aúV…€"WR§¤NIò?˜¿ßíã¶?Rˆ»:k^ÃòµÍkîÚ£æ¡ïªPäæŸ7~Þøò?è9§ë ¦O¯(?q`/Qî*¯¥ó'ì•×°|móš»ö¨¹À?/¡ïêPìš­h¶¢Y»×Û½Þîõò? ˆÚOÚ¨×-ÝU]󺕯g^ç¼æ.=j.0ÀÚ'ô­.`j…¹7ͽiîMýÈà«%=àL±nUÖ¼VU2¯³ëšN °v}×0µÃ‡+>\ñaÉ‚’% Êÿøàâ¡Ç²ÅwÂݪ¬y­Vrßß% Jäuv¹QÓ €ÖŽY3f͘5Cè[½ÀÔ"‹Z/j½¨uE?PÈúOØûZoEk^ŸŠª—×Ö5Fq¬?ìÿÃþ?ì/ô­^`j‰3&ΘXáï˜/ÞlVܯ»¸·ìš×¤¢Šåõt]QLÀkSÙç }WŸ€Zgy—å]–wé;ªï¨¾£ÊÇ=¿ÛÇmäŠéóÇ ìQ@¡ïôùcöÈ÷–ï³òsÉÏ7?w×µ“€šK ÿÃò.Ë»,ï2qÆÄgTåY³-6;¦Á-Ó‡éÜ}ÊŠÙóÇ ìù3„¾³çØ3ßC¾Ÿªì{>{>[˜-ÌfÏfÏfÏf ²Ù‚ìéìéìél~6?›Ÿ=™=™=™=‘=‘=‘ÍËæeó²Ç²Ç²Ç²¹ÙÜln–fi–fI–dIeQeafaVš•f¥Ù£Ù£Ù£ÙœlN6'›ÍÎfg³²YÙ¬lf63›™=”=”=”=˜=˜=˜===Ý—Ý—Ý—ÍÈfd3²{³{³{³{²{²{²¿fÍþšÝ•ݕݕݙݙݙMͦfS³;²;²;²Û³Û³Û³[³[³[³[²[²[²?gÎþœMÎ&g“³?eÊþ”MÊ&e“²›²›²›² Ù„lB6>ŸÏÆeã²qÙØll66ûcöÇìÙõÙõÙõٵٵٵÙ5Ù5Ù5Ù²?dȮήήÎFg£³ÑٕٕٕÙÙÙÙåÙåÙåÙeÙeÙeÙ%Ù%Ù%Ùï²ße¿Ë.Ê.Ê.Ê.Ì.Ì.ÌÎÏÎÏÎÏÎËÎËÎËÎÉÎÉÎÉÎÎÎÎÎÎFe£²QÙÈld62;#;#;#;=;=;=;-;-;-;%;%;%;9;9;9;1;1;1‘ÈFd'd'd'dÇgÇgÇgÇfÇfÇfÇdÇdÇdòaÙ°ì¨ì¨ì¨ìˆìˆìˆìðìðìðìÐìÐìÐìììlh64š Îgƒ³ƒ³ƒ³ƒ³³³³²²²ý²ý²ý²AÙ lP¶O¶O¶O¶w¶w¶w¶g¶g¶g¶G¶G¶G¶[¶[¶[¶k¶k¶kV’•d%Ù€l@6 Û%Û%Û%Û9Û9Û9ë—õËúe}³¾YßlÇlÇlÇl‡l‡l‡lûlûlû¬wÖ;ëõÊze½²m³m³m³Y¬G¶M¶M¶MÖ-ë–u˶ʶʶʺf]³®Yç¬sÖ9Û2Û2Û2ë˜uÌ:f[d[d[d²Y‡lólóló¬]Ö.k—µÉÚdm²ÖYë¬uÖ2k™µÌZd-²Y³¬YÖ,Û,Û,Û,Û$Û$Û$kš5Íšf³ÆYã¬QÖ(k”5Èd ²úYý¬~V7«›ÕÍ6Î6Î6Î~›ý6ûmö›ì7Ùo² ³ ³ ³ ² ² ²_e¿Ê~•­Ÿ­Ÿ­Ÿý"ûEö‹l½l½l½lÝlÝlÝllltEº"]‘þþþ~Ÿ~Ÿ~Ÿ~›~›~›~“~“~“~•~•~•~™~™~™~ž~ž~žþ;ýwúïôÓôÓôÓô“ô“ô“tYº,]–~”~”~”~˜~˜~˜~~~¾Ÿ¾Ÿ¾Ÿ.I—¤KÒwÓwÓwÓwÒwÒwÒ·Ó·Ó·Ó·Ò·Ò·ÒEé¢tQúFúFúFúÏôŸé?Ó¤ÿHÿ‘¾–¾–¾–¾’¾’¾’¾œ¾œ¾œ¾”¾”¾”¾˜¾˜¾˜¾¾¾.L¦ ÓçÒçÒçÒé‚tAúLúLúL:?ŸÎOŸJŸJŸJŸHŸHŸHç¥óÒyécécécéÜtn:7Í%i’&i”Fi”†i˜†iiZ𖦦¦¦sÒ9éœtv:;ÎJg¥³Ò™éÌtfúPúPúPú`ú`ú`ú@ú@ú@z_z_z_:#‘ÎHïMïMïMïIïIïIÿšþ5ýkzWzWzWzgzgzg:5šNMïHïHïHoOoOoOoMoMoMoIoIoI§¤SÒ)éätr:9½9½9½9”NJ'¥Ó‰éÄtB:!Þ˜Þ˜Þ˜ŽKÇ¥ãÒ±éØtlúÇôéÓëÓëÓëÓkÓkÓkÓkÒkÒkÒ?¤Hÿ^^^^•^•^•^™^™^™þ>ý}úûôòôòôòôÒôÒôÒô’ô’ô’ôâôâôâô¢ô¢ô¢ô‚ô‚ô‚ôüôüôüôÜôÜôÜôœôœôœô¬ô¬ô¬tT:*•ž™ž™ž™ž‘ž‘ž‘ž–ž–ž–žšžšžšž’ž’ž’ž”ž”ž”ž˜ž˜ž˜O‡§ÃÓÒÒÒãÒãÒãÒcÓcÓcÓ£Ó£Ó£Óaé°tXzdzdzdzDzDzDzXzXzXzhzhzh:4šM‡¤CÒ!éÁéÁéÁéAéAéAééééþéþéþé tP:(Ý7Ý7Ý7Ý;Ý;Ý;Ý+Ý+Ý+Ý#Ý#Ý#Ý=Ý=Ý=Ý5Ý5Ý5˜L¦%iIZ’öOû§ýÓ]Ò]Ò]Ò~i¿´_ºSºSºSºcºcºcÚ'í“öI·O·O·O·K·K·K{¥½Ò^iÏ´gÚ3í‘öH{¤ÝÓîi÷´[Ú-í–nnnvM»¦]Ó.i—´KºeºeºeÚ)í”vJ·H·H·H;¤Òéæéæéæi»´]Ú.m“¶IÛ¤­ÓÖië´eÚ2m™¶H[¤-Òfi³´YºYºYºYºIºIºIÚ4mš6M›¤MÒ&i£´QÚ(m˜6L¦õÓúiý´^Z/­—nœnœnœn”n”n”þ&ýMú›tÃtÃtÃtƒtƒtƒôWé¯Ò_¥ë§ë§ë§¿H‘þ"]/]/]/]7]7]7]']']'Y‘¬HV$?$?$?$ß'ß'ß'ß&ß&ß&ß$ß$ß$_%_%_%_&_&_&Ÿ'Ÿ'Ÿ'ÿNþü;ù4ù4ù4ù$ù$ù$ù8ù8ù8ù(ù(ù(Yš,M–&$$$ï%ï%ï%K’%É’dq²8Yœ¼“¼“¼“¼¼¼¼•¼•¼•,J%‹’7’7’7’&ÿLþ™ü#ùGòäµäµäµä•ä•ä•äåäåäåä¥ä¥ä¥äÅäÅäÅäùäùäùda²0Y˜<›<›<›,H$ ’§“§“§“ùÉüd~òdòdòdòDòDòDòxòxòxòXòXòXþŸ‚üÛ@'q'Q%Q$A$¥IiRš<’<’<’ÌIæ$s’‡“‡“‡“YɬdVò·äoÉß’‡’‡’‡’’’’û“û“û“ÉŒdF2=™žLOîIîIîIîNîNîNîJîJîJ¦%Ó’iÉÔdj25ùKò—ä/ÉíÉíÉíÉmÉmÉmÉ­É­É­ÉŸ“?'N¦$S’)ÉŸ’?%JnNnNnNnJnJnJ&&“‰Éød|2>¹1¹1¹1›ŒMÆ&7$7$7$×'×'×'×%×%×%×$×$×$c’1ɘäêäêäêdt2:\™\™\™\‘\‘\‘\ž\ž\ž\–\–\–\’\’\’ü.ù]ò»ä¢ä¢ä¢äÂäÂäÂäüäüäüä¼ä¼ä¼äœäœäœäìäìäìdT2*•ŒLF&#“3’3’3’Ó“Ó“Ó“S“S“S“S’S’S’“’“’“’“““áÉðdxrBrBrBr\r\r\rlrlrlrtrtrt2,– KŽLŽLŽLŽHŽHŽHKKKMMM†&C“¡ÉdH2$9898989(9(9(9 9 9 Ù?Ù?Ù?” J%û&û&û&{'{'{'{%{%{%{${${$»'»'»'»&»&»&“ÉÀd@2 ôOú'ý““““~I¿¤_²S²S²S²c²c²cÒ'é“ôI¶O¶O¶O¶K¶K¶Kz%½’^IϤgÒ3é‘ôHz$Ý“îI÷¤[Ò-é–llltMº&]“.I—¤K²e²e²eÒ)é”tJ¶H¶H¶H:$’ɿɿɿI»¤]Ò.i“´IÚ$­“ÖIë¤eÒ2i™´HZ$-’fI³¤Y²Y²Y²Y²I²I²IÒ4iš4M'“ÆI£¤QÒ(i4H$õ“úIý¤nR7©›lœlœlœü6ùmòÛä7Éo’ß$¿N~ü:Ù Ù Ù ùeòËä—ÉúÉúÉúÉÿ%ÿ—ü_²^²^²^R'©“ÔIÖIÖIÖ‰—ÇËãåññññwñwñwñ·ñ·ñ·ñ×ñ×ñ×ñWñWñWññññçñçñçñgñgñgñ§ñ§ñ§ñ²xY¼,þ8þ8þ8þ0þ0þ0^/—ÆïÇïÇïÇïÅïÅïÅïÆïÆïÆ‹ãÅñâøíøíøíø_ñ¿âÅ‹âEñ¢øÍøÍøÍøŸñ?ãƯǯǯǯůůůƯƯÆ/Ç/Ç/Çÿÿ=~1~1~1~!~!~!^/ŒÆÏÅÏÅÏÅ âñ‚ø™ø™ø™x~ßßßÇÆcãâââëãëãëãëâëâëâkâkâkâ1ñ˜xL|u|u|u<:ޝŒ¯Œ¯Œ¯ˆ¯ˆ¯ˆ////‹/‹/‹/‰/‰/‰ÿ.þ]|Q|Q|Q|a|a|a|~|~|~|^|^|^|N|N|N|v|v|v<*ŠGÆ#ã‘ññññéñéñéñ©ñ©ñ©ñ)ñ)ñ)ñIñIñIñ‰ñ‰ñ‰ñðxx<<>!>!>!>.>.>.>6>6>6>:>:>:‹‡ÅGÆGÆGÆGÄGÄGćŇŇŇććÄCã¡ñÐxp<8ïïïŠŃâ}â}â}â½ã½ã½ã=ã=ã=ã=â=â=âÝâÝâÝâ]ã]ã]ã’¸$.‰Äâñ.ñ.ñ.ñÎñÎñÎñNñNñNq߸oÜ7î÷‰ûÄ;Ä;Ä;ÄÛÅÛÅÛŽãÞqï¸gÜ3îooow»ÇÝãmâmâmâ­ã­ã­ã­â­â­â.q—¸KÜ9îwŽ;ÅâNqǸcÜ1îwˆ;Äíãöqû¸]Ü.n·ÛÆmãÖqë¸uÜ*n·Š[Ä-âqó¸yÜ<Þ,Þ,Þ,Þ4Þ4Þ4n7›ÆMâ&q“¸QÜ(n7ŒÆ ãúqý¸~\/®׋7Ž7Ž7Ž7Š7Š7Šÿ&þM¼a¼a¼a¼A¼A¼Aü«øWñ¯âõãõãõã_Ä¿ˆ¯¯¯¯¯¯¯¯¯­ˆVD+¢¢¢¢ï£ï£ï£o£o£o£o¢o¢o¢¯¢¯¢¯¢/¢/¢/¢Ï£Ï£Ï£Ï¢Ï¢Ï¢O£O£O£eѲhYôqôqôqôaôaôa´4Z-ÞÞÞÞ‹Þ‹Þ‹ÞÞÞG‹£ÅÑÛÑÛÑÛÑ¿¢EÿŠE‹¢EћћћÑ?£FÿŒ^^^^‹^‹^‹^^^^Ž^Ž^Žþý=ú{ôbôbôbôBôBôB´0Z-Œž‹ž‹ž‹D ¢Ñ3Ñ3Ñ3Ñüh~4?z*z*z*z"z"z"šÍ‹æEEEEs£¹ÑÜü¿ÿù?ûQ.ŒÂ(ŒJ£Ò¨4z4z4z4š͉æD³£ÙÑìhV4+šý-ú[ô·è¡è¡è¡èèèèþèþèþhF4#šM¦GÓ£{¢{¢{¢»£»£»£»¢»¢»¢iÑ´hZ45šMþý%úKt{t{t{t[t[t[tKtKtKôçèÏÑŸ£ÉÑährô§èOÑŸ¢IѤhRtStStS4!šMˆÆGã£ñѸh\4.ÆFŒþý1º>º>º>º6º6º6º&º&º&úCô‡èÑÕÑÕÑÕÑUÑUÑUѕѕѕÑï£ßG¿......~ý.ú]tqtqtqtatatatAtAtAt^t^t^tntntntvtvtvtVtVtV42ŒÎŒÎŒÎŒNNNN‹N‹N‹N‰N‰N‰NŽNŽNŽNŒNŒNŒFD#¢Ñ Ñ Ñ ÑñÑñÑñѱѱѱÑ1Ñ1Ñ1ѰhX4,:*:*:*:":":":<:<:<:4:4:4:$:$:$ ‰†Dƒ£ÁÑàè è è èÀèÀèÀhÿhÿhÿhP4(íííííííííííííííííí ŒF£Ñ€h@Ô?êõvŽvŽvŽúEý¢~QߨoÔ7Ú1Ú1Ú1Ú!Ú!Ú!Ú>Ú>Ú>êõŽzG½¢^Q¯hÛhÛhÛ¨GÔ#êmmmu‹ºEÝ¢­¢­¢­¢®QרkÔ9êu޶Œ¶Œ¶Œ:F£ŽQ‡¨CÔ!jµÚGí¢vQ»¨mÔ6jµŽZG­£VQ«¨UÔ"jµˆšGÍ£æÑfÑfÑfѦѦѦQÓ¨iÔ4j5‰šD¢FQ£¨aÔ0jÕêGõ£zQ½¨^´q´q´q´Q´Q´Qô›è7Ño¢ £ £ £ ¢ ¢ ¢_E¿Š~­­­ý"úEô‹h½h½h½¨NT'ª­­­.—‡ËÃÂÂÂïÂïÂïÂoÃoÃoïïïﯯÂ/Â/Â/ÂÏÃÏÃÏÃÏÂÏÂÏÂOÃOÃOÃeá²pYøqøqøqøaøaøa¸4\. ßßßß ß ß ß ß ß ‡‹ÃÅáÛáÛáÛá¿Â…ÿ …‹ÂEáááá?Æÿ ÿþ#üGøZøZøZøJøJøJørørørøRøRøRøbøbøbø|ø|ø|¸0\. Ÿ Ÿ Ÿ „ ÂáÓáÓáÓáüp~8?|2|2|2|"|"|"|<|<|<|,|,|,ÿá_>îçÿȇ¹  |4|4|4|$|$|$œÎg‡‡‡‡3ÙáÌðoáß¿…†††„„„÷…÷…÷…3ÂáŒðÞðÞðÞðžðžðžð¯á_ÿ†w…w…w…w†w†w†SéáÔðŽðŽðŽð¶ð¶ð¶ðÖðÖðÖðÏáŸÃ?‡SÂ)á”ðOáŸÂ?…7‡7‡7‡7…7…7…ÉáÄp|8>ÞÞÞŽ džcÃÂÂÂëÃëÃëÃëÂëÂëÂkÂkÂkÂ1á˜pLxuxuxu8:ޝ ¯ ¯ þ>ü}xyxyxyxixixixIxIxIxqxqxqxQxQxQxAxAxAx~x~x~xnxnxnxNxNxNxVxVxV8*Ž Ï Ï Ï ÏÏÏO O O O O O OOOO O O G„#Âá á á áñáñáñá±á±á±á1á1á1á°pX8,<*<*<*<"<"<"<<<<<<<4<4<4<$<$<$ ‡„ƒÃÁáàð ð ð ðÀðÀðÀpÿpÿpÿp¿p¿p¿pßpßpßpïpïpïp¯p¯p¯pppp÷p÷p÷p×p×p×p`80„Âþaÿ°¸s¸s¸sØ/ìö û†}þáŽáŽáŽááááöáöáöaï°wØ;ìö {…Û†Û†Û†ÝÃîa÷p›p›p›pëpëpëp«p«p«°KØ%ìv;‡ÃNa§°SØ1ìv ;„Âaû°}Ø>l¶ Û…möaÛ°uØ:l¶ […­Âa‹°Eظ>¸>¸.¸.¸.¸&¸&¸&Œ ÆWWW£ƒÑÁèàÊàÊàÊàŠàŠàŠàòàòàòàÒàÒàÒà’à’à’àâàâàâà¢à¢à¢à‚à‚à‚àüàüàüàÜàÜàÜàœàœàœà¬à¬à¬`T0*œœœœœœœœœœœœœœœœœœŒF#‚‚‚‚ãƒãƒãƒcƒcƒcƒc‚c‚c‚aÁ°`XpTpTpTpDpDpDpxpxpxphphph04 †C‚!ÁÁÁÁÁÁÁAÁAÁAÁÁÁÁþÁþÁþÁ `P0(Ø7Ø7Ø7Ø;Ø;Ø;Ø+Ø+Ø+Ø#Ø#Ø#Ø-Ø-Ø-Ø5Ø5Ø5( J‚’`@0 ìììììììììô ú}ƒ>AŸ O°C°C°C°]°]°]Ð;èôz=ƒžA GÐ#ètºÝ‚nA·`ë`ë`ë kÐ5èt º]‚-ƒ-ƒ-ƒNA§ S°E°E°EÐ!èt666Úmƒ¶A› MÐ&h´ Z-ƒ–AË yÐUúDé¥O”Î+W:¯ô±ÒÇJ+[:·tnþcûüÇuùÛÀkõ„Ö„BÈCÀÕ@,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À` H€À@‘ €€"!EB,Š„X  °(`0P$À`€•¨[)õ)¾ {ÄkJ…=R@åÀ`€•2ý¼^ûu.´ýè)½ ü4`0ÀJ™~Þ €õ”Þ~°X‰Ieoµ¡B¦Ÿ·Âàâû Ö°X a˜©¶]c®ù5] 0°v€ÀÀJÄLµísͯéjkeoz¨.`0°Â0!Sm»Æ\ó5¥# r`0°Â0!Sm»Æ\ó5¥# r`0°Â0!Sm»Æ\ó5¥# r`0°Â0!Sm»Æ\ó5¥# r`0°k?þYøÎÂw¾3ñº‰×M¼î¨_õë£~½Ã†ì0¤ÓðNÃ; ßä¼MÎÛä¼F3Íl4³õ§­?mýéÖ+¶^±õŠããã K.,¹°$j5ˆ|ßçû>ß÷YÓ¨)ãèüCçdq²8Y<ò™‘ÏŒ|¦äÁ’Kì²C—ºìÐøÎÆw6¾³yŸæ}š÷Ùz£­7Úz£Ã{ÞûðÞ7»yØÍÃþ=÷ßsÿ=·˜®±Ÿk?O\°ò·Š>þÓ}ú¯Oÿ5î©qO{jßÍöÝlßͶY´Í¢m5™Ødb“‰­6nµq«{ï5¾×øÓšžÖô´¦a›°Mئ¸âëM`Í € V«[­Vá o´b£Íh;£íŒ¶;¼óÇ;\½;ïø{Çßû͈oF|3bMTfujžïê€gxö€g+:þvgowövg¸ã‡;~¸ãOû*Ó·™¾Íôm:žÛñÜŽçþ´¶èÒ¢K‹.ùŸO[óó™ŸÏÌŸÛZw-Úk·½vÛk·ü9ÇÕU™U­sý;xìౕG¿K÷Zº×Ò½Võøuý¨ëG]ûnÙw˾[®ª®k¯ÐzaMù’o.ùæ’oª÷ÑÉ_ :ðÂù Ö°jµ#7Yù[åKEŸUù×:ýÛÓ¿=ýÛÊÜæ­6oµyëªë¯ºþªëç™7fÞ˜EŸ-úlÑg_Ÿûõ¹_Ÿ›?/ö…Ç_xü…ÇïÝùÞïÝ9¶k½:õêÔ«S½^uç»=¿Ûó»=‡Ž:jè¨Ê㺟ýæ!_~gßÊ÷ßöù¶Ïÿ´—×®J…kg| 'Üp «ÿlÚ\þk…ð z)*'+Q½KØ&l¶©èh=ÒitM?£´ÓðNÃ; _Õô§Uàû>ß÷ù¾Ïa»¶ëa»®¹èwñ´ÅÓO«èø›œ·Éy›œ·ð…ï,|ç'Öv£­Ø¨ò:\úÁ¥\úÁšx¼j[Üÿ¹þÏõ®z£ÐU½æ×Üw€ê=¦¨œX ¬DõF,¯›xÝÄë*:Úõ¯o|}ãÕßó«'½zÒ«'UôU¼Ðà…/¬é8~+ÝmÚö¡mzÿÄ÷O|ÿÄÕ9ßß—þ¾ô÷¥}•[ÝÒè–F«‰}3â›ߌÈãêò_¥e‹–-Z¶Xcm €Ÿ:ü©ÃŸ:|U<óî™wϼ»¢c–}NüÏû z)*'+Q½ËY3ΚqÖŒ&Wþöܺϭûܺհé*öaEß}a÷…ݾwÞ{ç½wÞêŸé¼1óÆÌSÑ×}ÉèKF_R½µÍŸ\ÑWœtú¤Ó'^½×Xí €Ç0æ€1ü´#Wþ«` v €€•¨‰Ë£û>ºï£û®Í8~YpÌ‚cTô‘ù‹$/½dô’ÑÕu¦üåùÇ_Vï‹ ¯NMŽúî¨ïŽú®z¯±Úß×ð¾†÷5,´ €€šK,V¢¦D,ù3 §o3}›éÛ´y«Í[mÞZ;ðòæË›/o~ÜýÇÝÜýu«¬ºÎz訡£†Žªè«,ÛxÙÆË6^›WEɃ%–ß÷©ü8'[ôÙ¢Ï -®ÊÑzï5¾×øïöünÏïö¬ÊÑ|ùÁ—|¹¢£rÜ!Çr\õ^ù]·;{åoÉâdq²xUyÒA'tÒAŤÓ'>éôµsµ¾dô%£/©h'#ŸùÌÈg ¡›~ÚñÀ@m#+Q]K“‰M&6™XÑq>ŸùùÌÏgVמ§o3}›éÛfüÉ:Ÿ¬óÉ:Õµ·º~Ôõ£®¡þÛõß®ÿvõ†a=çø§=ƒ9WyŒ½Ë›»¼¹Ë›Uy©íÕñ͈oF|3¢kç®»v®h'a›°Mئºé§_ Ô6`0°Õ±´^§õ:­+ >Ÿéù—žiõw›ßÃuË¡[ÝrhaÀ¹¿žö×ÓþzZEÇl:ºé覣«k‡Ã/~ÙðËV¿¶•G׫óòÈÿžûï¹ÿž»&Â˪ûÃÑ8úGWôuÛeí²vÙêïA\½Ç• €€•¨»÷Ù½ÏîgÌcsÀêì3.lÙ²àªù zà ªrœ'.xâ‚'.Xsjþ’Ô{o·÷v{oWÑ‘óg]¯¹j”}yõ^ᕇñ¹[׿uý[×_ÓÝ´¦¿&àªXu• €€•¨ê×Gýú¨_W~ßâկƗ¾œðå„ÊÏ¢Á ^hðÂê¿løÇ->nñq‹3–ž±ôŒ¥•ž[öݲï–k' ]ÓÇ_pÕ¿¬‰:€€Ê €ÀÀJT±œ5ã¬gÍÈ_8¿‹êâi‹§-žVþ8¯öÚa¯V6À«<¤Œÿ/þ¿øÿ}¶è³EŸ}{È·‡|{HÚå/=þÞñ÷Ž¿·ßý~è÷CUž3Z‘7Z½ÑêV•?‹ñç í:žÛñÜŽçæ/’\ùqòúlþ·Íÿ¶ùߪN:}Òé“Nÿû¤¿Oúû¤üøîøáŽî8o̼1óÆ\ÛãÚ×ö¨Jûlýgë?[¿º®·—îzé®—îjÙ¢e‹–-ªäÏh;£íŒ¶ÿÜêŸ[ýs«Oÿõé¿>ý×÷}¾ïó}ŸüỄöü™¾'{â±'[•cvÞ£ó÷xwâ»߸vºiMMÀUÿ°&ê *'+Qw5TïѪbÓ7=qÓïÿÅý¿¸ÿ«ú¹¼ûÀ»¼»ª{^ý }î×ç~}nuEwÏ­ûܺϭÛúÓÖŸ¶þtÍÕ9ê˾xòš¸êÖôYTdë[¯ØzÅë}_ïûzßµÙMk§[ÞïÕ[0P9°X‰ K.,¹°¤ºâŸ:ÿÐù‡Îk"´ëù—žéù—üù£ù{îtÏ {~œ Û„mÂ6}•úo×»þÛ«úrÐ];wíܵš«Ý¢K‹.-ºÜÿåý_Þÿ嚎ÙÞ;ï½óÞ;oÐ÷ƒ¾ôýÚ‰~OxòÀ“®Î‹KWåq©Ypõ~¨Þ:€€Ê €ÀÀJ|uÕWW}uUõÆ?ù=hËŠ?íømŸoû|Ûç'ï2y—É»¬ä+–ù*…WåkíüñÎïüqå/X]Ñc·Éy›œ·Éy?­ÎùK=³à˜Ç,È_àw­leÇý>Úï£ý>ª®¸7¿óôñ·ëñ·æ/d½¦Ï«&Àkâ;€X;À` Bù]xó©a·ßïöûÝ~ßix§á†7¾³ñïÌï–:ðŽw ¼ã¨_õë£~½ªÏUÍ ûp؇Ã>춬۲nËò»Àæ]‡ &t˜Ðw˾[öÝòÔ§v8µÃœSæœ2甪|•²/°¼S³šíÔ¬õ:­×i½N«[mÜjã’K,y0Þç+ç¿rþ+çþcñÓ­ü.¿ùçåõÌk›×9¯yþȇízØ®‡í:aÊ„)¦ä÷Á-œP-ßÉ“ïœ|çäÓšþ¿öî=ºªòÎð ³:ã¯KÊ5 á á’.B@BRE«@/rDAmAÑŠÚb«`©8%ÒÂ0Ø¡X)he à¥Â"Æ¡b­¨cGkiÇV§H5¿?^\+®CÒC8;û<Ï^ë]YpròîïÙŸZóñœ}]æu™¡ï×´_Ó~MÃY„Ò:|ˆô€ 8®Ï›Ü´à¦¡ì7ïݼwóâT&S»FíN°8§þ½°eçýulì“ñ~Ðxü/@ý)€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€À@L(€Ù±+éã™»St<›¢cOŠŽçNùQ‘¢ãùÿ™¢coŠŽ_¦èx!EǾ/¦èøUŠŽ—Nùñë/§èØŸ¢ã•¯¦èx-EÇ¥èx=EÇoRtüwŠŽ7Rt8åÇ›):þ'EÇ[):~›¢ãí¿KÑq0EÇïStü!EÇStT¦èx'EÇ»§ü8”¢ãpŠŽ÷RtüoŠŽ÷Stü)EÇŸSt|¢ãÃÿ—¢ã/):ޤèø(EÇÑS~ü5EÇÇ):>IÑQ•šcçߥèh’¢ã´§Ÿ¬C [ `€˜ˆmx€ôÛ¸òâÊ‹+/Þ±ó¤»Rt¸'±»»qôïFœ>÷!NŸ;§Ï½‡_JÑ‘>÷NŸ»§Ïý†ÓçNÃî1¿» §êÃéswa÷vGa÷vawNÕ]„ÓçþÁîìžÁîì>Áû»C°{Gþ®À•WU^UyUlß œy¡ñ+‘IDATÀÉ ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„˜˜Ø½p÷ÂÝ wÙqdǑ𵙀 ‚ 2¤0U9·rnåÜ­—l½dë%s×Î];wm—¥]–vYÚ¬ÞÂó„ç Ï~–™ƒ ‚ 24v `"áàÏ8xƲÊe•Ë*³e-ÊZÔì” ?7ì!ìÇë‚ Ê È È  ’*‰×ÉÎÓwž¾ót“ v `R!«*«*k÷ý»ïß}I“’&%MšERØ[Øgس—”AAAäÔPP7 `N•ÃU‡«ï|`ç;èúz××»¾^·_„~¾ãÙ™kæt*¸¯û åÏï›ûØEÎ/Øòô}c¯¸eÇ_n:hSø:üyxLx|øÞºýܰç°ÿp.^RÒ5ƒ¹»3×Ìé4yO÷AËŸ™ÿBßÜÇ.º§IÁ–§ï[~ÅÀ-;>X±oЦðuøóð˜ðøð½2ˆ Ö'ƒm¦öhŸ»;ûðK&ïéuïôó_è;zÎm÷4éÿÊÍß_~Å€Go-X±/|þ<<&<>|¯ "ƒõÉ`v^ßG2Ú½XÐû/3ÞXóZŸ‡Ã×áÏÃcÂãÃ÷Ê ÉSP7 `Nºt>йdoÉÞ’½Éÿ’ëÂÙÝïê°qÃé£ßÌßvðÅËfx¡ªjöìÒÒ†ZÃs†ç?ëÞ±·doÉÞp^^_â›ÁáçuظáôÅkò·|qË›#^¨ªª¨(-m¨5X6djÕúŠÅ¥)(}kZ×W,.-{ û”Aâ—Á6 z|7oLA»ë,+Ê[ýõŠÅ)(}kZóV½bqØ[ا ¿ f/è7"£pö´uå¾|û¤ýe…9)(}kZ'í/+Ì { û”Áô¤ nÀ4˜}¯î{u߫ɼSáéîc‹®ŠPÝ›ÄöœÌÙ…9¸ˆv—7¸*Buokس  ößqóùË›F¨îMb {–Aâ‘Áée«_éý»Õ½I¬aÏ2˜nÀÔ˜ðÔʧV>µ²ö_EÝ6apvÏ£G¾0ó¥Q›Wõ[} ûçRûù†™¸6ˆRgNìyôÈž™2jSãª~«¯aÿá\dÆ•Án£Ç™9qèïW^óÌ”ÆUýV_ÃþÃ¹È +ƒ£Ö]ýÛÎË¿•ÿb³³³Wõ[} ûç"ƒé@ @Ý(€©—M§m:mÓiµÿúiGñ¸ŠAw7ÞÒ·¦5œWíçæã:!Õ\Q:èîÆ[úÖ´†ó’A¢ŸÁKnyvEiã-}kZÃyÉ ÑÏàŒï­)鳤ñ–¾5­á¼d0ÞÀÔ˜:ªý™_iÙµù¡·ÛO1"?~Õoõ5œc8_ïÀ JÌXØüÐÛí7o‘¿ê·úÎ1œ¯  6_ÛºUÆÂÁÍï³y[üªßêk8Çp¾2Ht2تIÆûÍ/»aÃö¹ýǯú­¾†s ç+ƒñ£ nÀœ°Úï¯V8¿ã”Ì_¼ÿðsŠ‹ã]ýV_Ãù†sw?6RÁ¼N™¿xÿáí—Ç»ú­¾†ó ç.ƒ¤6ƒmnè15¯Ó9ë—/Þ~i¼«ßêk8ßpî2Hj3˜=½ß™}néþü/ ÚÄ»ú­¾†ó ç.ƒq¢ nÀœ€Êñ•ã+Ç×^ý~xÇŒÿ•>Õoõ5œ{í5p˜¡k‰““Á¼N™¿øðŽÓFe§Oõ[} ç^{ ,ƒœ¼ †úsèÕ?|sç´ô©~?s‡à«øæÎiµ×À2ÈÉË`¨?oýø—*ø÷ô©~«¯áÜk¯e°qQP7 `’òIî'¹Ÿä]_t}Ñõ5}àsº½ë·öw×ô¡Ða†až®+.ƒ ›J·wýÖþnàš>Z9 €œnïú­ýÝÀ5}(´ r22>9ÝÞõ[û»kúPhl\ÀÔ˜¤”o(ßP¾¡¦w¤Ã½~ëvoàš&æéº¢á2ÿ{ýÖíÞÀ2È©É`:Üë·n÷–ANMÓá^¿u»7° 6v ` }lÞ°yÃæcÿîçCw>tçC‡Ï;|ÞáóL¦nÀü :è| sM¿<ÚQ<®bÐÝêÞšÖ0Ÿš¦fë£~\Q:ènuoMk˜ rò28`É-Ï®(U÷Ö´†ùÈ '/ƒ3¾·¦¤ÏuoMk˜ 6^ ` |<îãq«éß^•Áu£¦fïT½SõNÉÞ’½%{#wÛ„ÁÙ=ªx“YìgfæìrãÄ38sbÏ£*ÞdÖ0+¤a3Ømô¸#3'ªx“Yìd†Íà¨uWÿ¶óro2k˜• 6F ` Tïoí”ÁÉSS£ì|`ç5ÅìÿΜ1jŽr7™5̪¦I†9»Þ8ñ îš7jŽr7™5ÌJiØ }dÅ–]ó”»É¬aV2HÃfð¶ïkWð®r7™5ÌJ#0B¡ÊÝfIS×NÌñdUeUeu}½ëë]_O ÕÓÝÇ\¥Ö=Ñ5Ì-qžaÎaæ.=’Ëàò¦W©uOt s“AêŸÁþ;n>ySµî‰®an2Hý38½lõ+½§Ö=Ñ5ÌM0n”Á EÌqì¾÷ý»ïOŒPáÖŽ7d>_õäì1¥º'¼>9{LéÀ0ÃÄÙ†™»öø[Ì“ù|Փ奺'¼>YQ^:0ÌP©[Û,èñݼ1EýWßTQ®Ð=áµÿê›*Êà eºe0{A¿…·_¾Uao…î ¯—ï_UØ;ÌP 0ΔÁõ¡æ8Jš”4)i’›Š±_­2U•[Ÿ5Ìð8÷`kRÒ¤¤‰k¿•ÁˆLUåÖg 3”Aê–Á‚v Ö=X¦Ê­Ïf(ƒÔ-ƒ³§­û(÷eUn}Ö0Cl,À2øD)€ùŒƒg<ãà‰!é´¯õ¡–«ª®_ÚM‰[¯õÚÙù¥ÝÂ<çæï:”Áãe0kzËUU×VL(í¦Ä­×zmÅ„Ònaž2Hòl™ÙvUÖô¢ìÕçWLPâÖkÍ^}~Å„0O$ù ¶¹¯C^‹{o¶Ja'%n½Öaû§v ó”ÁèS$R'CÌg,«\V¹¬21ëg~(¥ú¶¡Ö0ÏÄ9‡ù»eðx\Ü'eªJÓÿúÒ#­‡­¾ŸÆ^‡yÊ Ég0oÂuw,m¨5ÌSI>ƒ“:”µÈiÕ ×o4Ùz~¿ËªŸKvæ)ƒÑ§¨2¸& `>õ^Õ{Uïe-ÊZ”µ(1 ï?zÅõÅ£· µ†y&Î9Ì?¼.Iül·_^<*:pc¯Ãƒ·ä<ÿ™ à†ZÃk˜­ R{óæ]÷Öâ5ÊÚ“òAÐó®{kñ¤ö Nº²¬,'W|R>úʲ²œ\Œ20@ý¥g¬æ˜¹kç®»6ñ»ÕÔé#ú+kOÆf›8óðZ¸&eðÓ n~rDðÉXÃleÚ38¸Ù½n~RY{2Ö0[¤ö Þ°nûµý)€OÆf+ƒQ¦hXéS+€9¦ËÒ.K»,M¼¬ÿúóYýJE§4ýý7/[;⃅÷ ýçÞÍ.YÚëgg p Ã?´9Ô¦¼Å7ßÑkVÛ?j{—GÚÿ垌á—öÙq¨ãåÛGff›8óðZ¸&eðÓ îR²(šð §ýxø9×Nþâu>¯ë޳F¶zªMyë?7ß‘¿¯ÏÿËìzëÙ3æõÜz¨ãS{Gff+ƒÔžÁa+VýhϨU§ÃÞü×[Ÿ×gýU#¿{yûµˇçµ\ÐîÏlþV«[ÿ9ãþ®+{ÝÛ¥Õ…wé¥ÿöG—D³³•AjÏà·ÿ÷×íÏ~4:¥é‚œ_ßzöޝµüÞ{Ìì³gdAÛe–wüS‹ß·\›ñ•æ#ÏZ—{fëåç¾yåçÎZwãèçøf” à0[Œ20ÀÉï2XLÕÑçŽ>wô¹Ä‹¸ðóÏÎ\ºtûÛãÎTÔ1·õØ–#š ·vMùÝð·£Y‡9'î9¼.®ÏôÎ`îîÌ5Q(Jk*€[oj5¿ù%µ§¯Û¿ŸUÕêÏ¿~èᇇnŠf æ,ƒ2˜x ´™Ú£}î¦çlZþ£í·´ÿfÁ?}#ùæîø§Gýg4kà0g”ÁÄk ;¯ï#í¢S—Þ|íž§òïè•9lAæSɧoü®%G{^Í8¬aÎ2M `€S#~e°˜ªÃŇ‹'^¸s:Ü×}P*ÒÖÌXR|8禶w¶þϰ·îk2¿Ùº×½qUîÌ]?ùò£ƒ3_úù„ †~kÛŸÇôß>2$+§,¼'ø³WÅ8Ì9qþáuq}¦w'ïé>(ÊppKÉ÷üÎ/;³pûÏ~·äÑ‚Õ×eN¼ºÛ]Í›4{¾YiõG~Òá¹q%¯F­s–AvÑ…ó ¶D¡"}vþWžüÄ7* tï³èÛCÿл4™wô&–ÄÑ|p˜sâ>ÃëâúLï ÞÓ¤`K4 àË3æÕì]ɺտkôÌa›:E­s–AL¼úŽžsÛ=M¢S”vücÑ^öÖiß¹éL¡[ýŒÚÝÛ¿ÏQ+€ÃœeP¯Kç–÷Èy= i¿_n»¿ûOC2‡-È|*©;ìŽúÕ;gߨñŸr²[½å8ÌY£I « NYÜŒÈ{ú¾±× ÜÍwÍÖ^å~ÜgÖä’-}mÄÎÜ•Ñ/€Ãœ]o/ƒË¯ÑxÛŸpÓ Læ{·ÜZöJaÇO?¼½ó­{Eí}Àaή7õåæï/¿":EiÆŽn}{éØÞª½÷÷oÜ3¸Wù»OqàÁ»üØ? Z}Ïá?µ8ÌÙõF¢éÏ>XÐû/Q¨H;|ÔsB«aWSz>py¯Ìä«Üè¿8ÌÙõ'Ïæ ›7lÞ &v|ð妃6E³~ïï¦_?ò'O·;tàÿõs%?íWþ­6ƒgåtÿÞŸ?ëºN[¯kycMçµs sv½q¼ ®Ø7hS4 à·vmÚ4üíd¾÷¿ÏúÙè¢UÇKbT à0g׉ZÿÑúÖ+€‰„¨½xoç¯í?ç´1ŸïñVÇ;Z¼Õ¼C³5í<_‡i™]§½“÷ýì{ÿÖ;€i<Œî;€Ì~æßFíIæ{ÿoá®Þ£&/‰ÞLÔEçÀƒ~ùÏ 6}æ?SZ±²Ù®ƒñ(€½˜šDáÀ7|~Û×úo­¾«P 'ÿ ×|÷g×ç½Yý¼ÒM½8ܻȅcu‹Õ-V·H¼£và6å-þ»ùް·~MÛÔfôwž?'§Wᦇ¿ôÄÙóÓwòœ¢YG/¸ò'%…á»þëK“žþle4–{»2e0Ê÷NþÀÞßøíá#ÃwµüUËÓšýñÓ$FýÀ®LŒÎ=€‡®\qÛ®ÞÕ÷6xâÒ?ÿc< àšîìÊ”Á(ÜøÛ›_Útögn)2gâ?ê÷«äŸá²WW¶îõIõgh,÷veFáH|]Ê?Wþ¹òÏ™ŒÃáp8‡Ãápœúãç7ÿüæŸß<û´Ù§Í>-ùê7<>îLt¼ñؽñXâE¹ü™âñ}s£P‘^x^÷[;¬ »ºü7yogïú¤Ã¬Í%¯Ö^ë¾6yÒŒa»¢_‡9oŸÈàüúæ6ö{?qñ²3 ·úŸnäd¶µ8ÌYe0ñèuïôó_ˆNQZ}oùÛÐéžÌwþ讵?}#çê©Go윳{Z§›~PÔlõ*¾ó s–AL¼Æn»ýñnD¡"­¾«)?XÞ«WQòß{Ñœ[>ìú_Q.€Ãœe0šj*æMàÔÅíÝùÐ%_ú†ÇŸúÒ·:0U‡‹.N¼@çt*¸¯û (T¤Y´ú—/…]=wéW¿>¤g2ßõÄÅÿúÓÚ)Êp˜³_ºÉàñ28yO÷AÑ,€/ÿ͘W³w%ó½—,=ïô³Ž]á®?ÿ–³ÖD­s–AL¼²_°dòžhÀy^“ñ…É|Wöï.¸vòêð]™e½~;àᨽ8ÌYe0ñ(zyÚ¦Nk£V÷Z\t~æo“z÷ð¨_½sövõ¾¥õ…Q.€Ãœe0šÀ)øME£-}«SSuô¹£Ï}.ñb-ü|dz3×D¡"í3º]YÆ7®~zîè!ùküo7O1"+Ü 8úp˜³_ºÉàñ2˜»;sM4 àoµ(i¶ñ©þåwÌ«é»~zî÷Jò'Vÿ®]?ù—îƒ3£Sý†5ÌYe0ñh3µGûÜÝÑ)Js]ý—;ËmnO‹ -Oðë[^yUM˜·xÊ#­[4ÍŸ™¾©Ë^tþe«Ö"s^aÎ2(ƒÇù0òú>’Ñ. éäÉ÷ÏùVâkzü‚/—žý‡âõWõì<*ùïJÕæ,ƒÑ¤85âQúV§æ˜.K»,í²4ñòýëÏgõ+Y”ÚŠôÊ{ûý¸Ë¯½çé3¶´j÷oñšþkÿç¥)ßþÈ®šöwçöÙõ“/?:8óÛG†då”e.j9°ùG52:Õo˜mâÃkáš”ÁO3¸gHÉ¢¨ÀÝ×t~¢u¯ðõ­gϘ×së“#–í)üËÆgÿ9çì¦×eN¼ºÛ]Õ?zæ°MŠ¢öÞß0[¤ö [±êG{†D¡(¶qUåže‰;ì¶òËŸ\ùÓþ7-\¶§àÆÛ÷þÛÿëõÈôn9¿ÕýÏ:V´×îkÆDíÎÁa¶2HíüöÿþºýÙ¦¸(ýÂþ¦…Çù•}ßýâ£íùê껾ÕcÄ•:37ãk-¿÷Å3ó²G-i—ÓñŸr²[½Í8ÌV£L pòįô­NÌ1s×Î];÷8þöv«©ÓGôOmQúΰËÏ<÷—½fµ=ñ÷ɇðÕ«'}~Ø=]^lsM«…Õÿü‚KºwépC à0Ûć×Â5)ƒŸfpó“#úG­Þ¹eåUƒÞlwUfN‹+kObß='µiõÖ®M›†¿µ8ÌV©=ƒƒ›Ý{áæ'£öAÐáÜ“ù§a‹å™MÛMí7Þð²W¢öÞß0[¤ö Þ°nûµýE¡.ýfëÝÓó[t_0ph›Åɤ¯Ë/Ü•±&ÃÑ,€Ãle0ÊÀ +Þ¥ou `ŽÙzÉÖK¶^’xYo8}ô›ùÛ¢P—†ý,øãröõî|N»ùáÞÀaùFö_Û/._2ò޼õ÷™5¹äGŸ¹[Û¬¶2þ¾ýÄV£Z¬¼êŠþ»~3 gf›8óðZ¸&eðÓ .^“¿-jpøóðõeG/¾,{|×glõTÆ[l~wÁôy&sÒwž¿je¯Â?íüÁÅ·G­ú k˜­ R{óæ]÷Öâ5Q»o-˜>kþ÷ÛMï÷ƒ!ÿÐâöÚïoqu›[Ú>Øv~îÓ…ã»|ãKݦ¼<øí²CŸµý‡5ÌV©=ƒ“®,+ËÉNiv5îŒï éÞ4gÍÐ-™åí_hqQ«vm:4ŸÝerÿmß=ë†?tùÎm7½ð\Áo¢üÐa¶2e `€úKŸÒ·:0ÇTέœ[97ñ¿pv÷»:lŒÎÇ&×þ1Î5ým4ïþf›8óðZ¸&eðÓ ?¯ÃÆ(Ô¥5•¸'úçÑYÃleÚ3Ø~}ÁúáçE³@­^×íoS»†ÙÊ µg°Ï«#/nûPÔî›[½ ®éÏ«ÿm4ïþf+ƒQ¦¨›ô,}«Só©÷ªÞ«z/kQÖ¢¬ãÜóýG¯¸¾xTÔ ÔÆ»†y&Î9Ì?¼.Iül·_^<*ÊejãZÃ0@ò”¾Õ)€ùŒe•Ë*—U&`ý¬Ñå¯TÜ6Ôæ™8ç0ס /ƒ‹ûä¯TÜ6Ôæ)ƒ$ŸÁ¼ ×ݱ¸â¶Á>üyÂuw,î#ƒ$ŸÁIÊZä´RÜ6؇?w(k‘ÓJ£O P;¥oMÀ|ÆÁ3žqðŒÄ0tÚ×úPËUU×ÎÎ/í¦¾­×zíìüÒnaž‰sówÊàñ2˜5½åªªk+&”vSßÖk½¶bBi·0O$ù ¶Ìl»*kzQöêó+&¨oëµf¯>¿bB˜§ ’|ÛÜ×!¯Å½·Û?¥°“ú¶^ë°ýS ;…yÊ`ô)€)}“¡æ8Jš”4)i’б_­2U‰[Ÿ5Ì0q¶aæ®=þV,2U‰[Ÿ5ÌP©[ Ú-X÷`™·>k˜¡ R· Ξ¶î£Ü—•¸õYà e°±PJߥæ8vß¿ûþÝ÷'F¥pkÇ2Ÿ¯zrö˜ÒªÜ^Ÿœ=¦t`˜aâlÃÌ]{ü­ æÉ|¾êÉŠòÒªÜ^Ÿ¬(/f(ƒÔ-ƒmôønÞ˜¢þ«oª(WåžðÚõMåa†2HÝ2˜½ ßˆŒÂÛ/ß¿ª°·*÷„×Ë÷¯*ìf(ƒ…HgJßúPs÷ñ8¥oÃR“”ò åÊküï/Þn?uƈ|uoõ5̤¦‰…yº®h¸ nÞ6"_Ý[} 3‘ANM7¿wÌæmêÞêk˜‰ rj2xÆísûV÷V_ÃLd°±Sé£úû€•¾õ§&)Ÿä~’ûInÑõE×]ŸøkˆÌ¯´ìÚüÐû_1§¸Xõæf’8«0Ã0O× —ÁŒ…ͽÿðöK‹‹U¿aa&2È©É`óµ­[e,¼cç´QÙéYý†ssAN}ÛÜÐcj^§¡WÿðÍÓÒ³ú çæ ƒœú fOïwfFŸ[?þåŸ þ==«ßpîa2 `êFÌ Û÷ê¾W÷½Z{ œnïç[{õææúáäg0¯Sæ/ÒíÝÀá|k¯~eS“ÁP¦Û»ÃùÖ^ýÊ §&ƒ¡þL·w‡ó­½ú•ÁÆH @Ý(€©£§V>µò©•5ý‚)|r:Ü8œcMø„Y¹f8µÌXØüP:Ü8œcMø,ƒ¤*ƒáÓáÞÀákúÀg$U €œ÷çXÓ>Ë`c§ nÀÔ˦Ó6¶é´fµÚQ<®bÐÝñ«~ÃyÕ~îa>®RÁ¥ƒîŽ_õÎK‰~,¹åÙ¥ñ«~ÃyÉ ÑÏàŒï­)é³$~Õo8/Œ70u£¦ÔþŒà¶ ƒ³{=ò…™/ÚÔxKß°ÿp.µŸ¯wZ½ ΜØóè‘/<3eÔ¦Æ[ú†ý‡s‘AW»wdæÄ¡¿_yÍ3Sñ]~¿òšg¦„s‘AWG­»ú·—+ÿÅfgg5ÞÒ7ì?œ‹ ¦0u£¦ÁÔ~?¶êžî>¶xàªÆUý†='svî¯FcÈàò¦W5®ê7ìY‰Gûï¸ùüåMWõö,ƒÄ#ƒÓËV¿Òûw«ú {–Át£ nÀ4°Êñ•ã+Ç]_t}ÑõµÿrªpkÇ2Ÿ¯ûÕŠ!S«ÖϾ ´ B¥ïúÙ”„½…}Ö~.á|ù»h<Ì“ù|ÅØˆL­Z_±¸´ B¥ïúŠÅ¥aoaŸ2Hü2ØfAïæ)h·`݃eEy«¿^±8B¥oÞê¯W,{ û”Aâ—ÁìýFdΞ¶î£Ü—oŸ´¿¬0'B¥ï¤ýe…9aoaŸ2˜žÀÔ˜“â“ÜOr?É-ßP¾¡|C2ïTè´¯õ¡–«ÖÏýPþʪ-³/*-LAé»eöE¥…aa?Éì<œc8_¯;9ƒYÓ[®Z?kqŸü•U[*ÊJ SPún©(+- {û‘AÒ'ƒ-3ۮʚž7áº;÷)ê·z^EY Jß~«çU”…=„ýÈ é“Á6÷uÈkqï¤e-rZÝ~Ùþ…½SPú^¶Eaï°‡°D @Ý(€9ét>Ðù@ç’½%{Kö6KÚ…³»ßÕaã†ÓG¿™¿íà‹—ÍñBÃÖ½á9Ã󇟕üÞ¹„óòúß ?¯ÃÆ §/^“¿íà‹[ÞñBÃÖ½á9Ãó‡Ÿ%ƒÈ`uí׬~^Þ¼ëÞZ¼fpùÒ·¼Ù°uoxÎðüágÉ 2X]ŸWG^Üö¡IW–•åäÎûhÇæS¶î Ïž?ü,$‘€ºQsª®:\uxç;Øù@××»¾ÞõõfuRøùŽgg®™Ó©à¾îƒ–?S<¾oîc]8¿`ËÓ÷½fà–|¹é Máëðçá1áñá{ëösÞÃþùxII× æîÎ\3§Óä=Ý-fþ }s»èž&[ž¾où·ìø`žA›Â×áÏÃcÂãÃ÷Ê 2XŸ ¶™Ú£}îîìÃ,™¼§×½ÓWÌ¡ïè9·ÝÓ¤ÿ+7ù½µ`žðuøóð˜ðøð½2ˆ Ö'ƒÙy}ÉhWôò´MÖŽÝvûãÝ>¸tnyœ×§?û`Aï¿ÌxcÍk}_‡? ß+ƒ$O @Ý(€I…¬ª¬ª¬Ý÷ï¾÷ý%MJš”4iIaoaŸaÏ^:dPAAeSC @Ý(€‰„ƒg<ãàË*—U.«ÌZ”µ(kÑ©ÿ[ø¹aa?^dPAAeTQP7 `"ªrnåÜʹ[/ÙzÉÖKæ®»vîÚ.K»,í²´þ¿\ Ïž3<øYf22È ÐØ)€‰‰Ý w/ܽpÇ‘Gv _› È È ƒ@ºQÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄ„ &À1¡ˆ 0@L(€bB  `€˜PÄÄÿ©ö_ŠJkAŠ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/takeWhile.png000066400000000000000000001400341431412030200253100ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTÇãÿïÄTņ Qì ˆ ˆ¢ˆ »ÑØ{ï]c‹5±{¯Øbï5²&ö½wAcG~LÞçËçw]ÞWiËõùàœ=9öîÎÎ컯;3)¢!EŽ08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚ÿÃÌ2ÈÖ%¬KX—ðÎáÃ;S&>5÷Ü?pÿÀ>ýÿýˆÿCÉøÔˆÞ èŠ^"eàSµ jAÔ‚ý+÷¯Ü¿2ìï°¿Ãþ>ézÒõ¤+%àSsÙû²÷eï}µ÷ÕÞW{¿Ï~Ÿý>χ<ò|%€rn©·Ô[ê–³[În9ÛuJ×)]§d}žõyÖçNqV$U‘TER ½1ôÆÐê@u :ðñºÇ믣ÌXÍÛgoŸ½}vZ=­žV祟—~^úZÓkM¯5Ý)žˆ½‰=‹W¯HɰÑ[=7Ñ‹=º¸ß ESô6EÏSôB)sÖtuÚÕiW§­y¾æùšçm¼ÚxµñrÊç”Ï)_Üï‡%—<^òø˜µcÖŽY{0ÅÁS<]ýtõÓÕ”9«y9ðåÀ—ºu=ê:5ÍÔ4SÓTlX±aņñõI¹Ñ/~iôKÈöí!Û/ܾpûÂíèMÑ›¢7Qò$`w%Õ•TWRMð˜à1ÁÃ)‰i[¤m‘¶Ë—/_¾|ùâ‹>,Êu˜Þux×á]‡}¡ûB÷…¶šÒjJ«)Iu?¯.ŽDW@b=1Ñ+=´¤ºŠÞ©è©r]$¾s9Ïå<—sèÖ¡[‡nMª;aàÈÀ‘#7]ÞtyÓå§CŸ}:”ë 1½Ú÷jß«}{öì ¨}«ö­Ú·’ê~ØsxÏá=‡mq´ÅÑ\É‘í-,UXª0>í"‰;”·7ÞÞx{c¯ë^×½®^]¼ºxuq²¤&]›tmÒõdàÉÀ“Ño£ßF¿åÚˆ_ò<Êó(Ï”SfL™ádaâÅÑrÕÄw×0úmô[Ñã½/kÞ E¯Uô`Eo–K ~½ªûªî«ºn8¸á`ÖÓYOg=mÍûa÷UÝWu_uqÊÅ)§pÕ$„[cn¹5fø¶áÛ†o³ò'å%•–TZRéY§gžu⪰>`Xp²÷nØ»aï†í´cÐŽAqúöñ×>'²mT«Í’‹]‘ªh¶íOKé[S•ç×ò{cŒ\8 ä¹ðܪ~7í˜ôÊ'÷¬yƒ&)ÓíÏFgó†{œÍ?ÓyêǽnÀ‹€/N¤<‘òDJ®&€¸xüÏãÿœ+8Wp®¸ÜsÜ-½«jóšéÙ̳l÷¯Çl,:0ÍÌëÅͺ ØŠÿ#þUü¦ø«¸¼®8rq\Mq!zV¢—õ‘wÂð‚_d\^úD󾮫jë#Êå«Ñ¼Ą̈B}ÛeùÂ]îðÛÊŸ<æ¶o¸Üã@Ëuóª®ToÛ·ü Ëêx!×òüƒüŠd—û¡èÙŠ^.WÀÇyÓüMó7ÍW,[±l؏ܑªœÎ{Úeíð&¥Ü ¾ ¹\¹y±Ïv^øÞÃWÑ|ë¦.él|[wWÉ‘¡{ë´ð˰!}õ±Þã§5.çãY¹Cc¯yä陹rÆÞ÷º &5˜Ô`ÒÅí·_ÜÎÕ·7ßÞ|{s·yÝæu›÷‘K{ϼ5}¥–j­·³“Sô9áQcm»qG‹?Ú[mö—%T}Î¥dGmý‚Ô%‹ín2co ç7]lËÏ點.\¹N÷ Ý\Äå><#猜3r>ÿùùÏÏæj°&`Xp2vrèÉ¡'‡ö.ì]ØÛþnSÓ?ªOÈõtçúéÝ}w< VÖUØ}øpåÊñµ½òó¶B…VŒþٯ؂2u‹oÉö!“£· n|oí½µ÷Ör}Ø#*$*$*$$_H¾^¡-¿SƒÎ]†ûÌ]`Ű²eCBŽß­Ø³x•=6qFâì¸Êì!zP¢7eÿÝ&Ÿ‡Ï½ÌY^ž¸®ÀÚ‡K!Å|G:{¶D‰øÚq â­´??¼ð¯Þ;¿¯ž=Òþc½\Ñãåú°_ØÞ°½a{?´÷Õyv±Ôyäó?ðûõåèŽK*ÍŠŽîÒ¥råøÚžm6>༽ë{¹»§Íæê\ØþcX}`õÕŸfyšåi®/{¼êúªë«®“=&{Lþ€%ᲦÏì’>ë¯û^ò˜{jصLŸø}føÎ5¼^Ð_û'->WªFÿý­VøæCïÕÛ.o»¼írththt(W€uÚ€“[îÚ«k¯®Ož<ÙžŽQ‰Rž÷³lÚsyæÃ=ã·ÓfÿöÍðƒAA–<^Rtšý]ºõ#ÖX?":2:2:’ëÀÖÅsÏ]<çYÙ³²ge{î*¹Ãk87÷òsž˜~ã¶„ˆ{íÙŠWGbÏ1‹³gÊð‘ёё¢×d/«þƱçò?n~*³ïˆø{íß¶I»èGw§Ü•¼Î8»Ù5GÂäàÉÁ“EO˜ËÀÖS§§NO:eSv{î*5úæ÷Ì1dßõ¦”úOü½öo#Ÿ´ŸT±Þ´nåJ{V·ÿ®¤PR(<É`êhߣ}öµÿ®2òf—\…Þn¿{b¹]Iõäð¨¼êëÒ­Z ÿ¾DîÏ캇7©Ñ¤F“»»î‹+À €aM|lH6.7¸Üàr—`—`—ÿ1ªã{­|Wÿ3S×µ.s7©ºnfÛ¨Ýá©‚ty÷ÜÝ~crÎV'ñŸK‹5-Ö´Xólñ³ÅÏSkϬ=³öŒ= 4¯Ü·IiŸ¹ß)}’*ô5ÛŠ£GhϹˆ³æêDïHô”b¿{8×Éö*}¾v­B†¹ŸÙýt¤ï_Iúšm{Ê;y-ñ|Q©b¶/c?ѽbêáØŒc3ŽÍ°§7Õ¡¼×¡vÍï5Øm°Û`·7ýßôÓŸ: úÇ補qaÆ…ìZaw~p«¢ÃŸ;…}^)µÕžÞýlÏÑò—n—»àwv}-&£’QÉH´€aMÀɀ⢸(.±wwrõq¹šÁøóÁŠEþÏ­Öu‹}»qà¤Þçc?»t—Ò]JwéjÇ«¯v¤>Ÿ¦·Oß>}û´¿_¿þ~ÿc¤ï®ê7»QºäÜ,Ê«…¾¦apɹY”âÈc?;Q¢4¨À§IôˆDï(ö;F³Å3ž ´ZÜû¶ë’ùŠ”Ë|%ÇöôëþÇÃ>ÅEq¡>Ÿ²5E×]S4ö{EYg7Ÿl·7û5à’ÕB_³í»Í½^pµ’›×o±Ÿo¤o¤oäÃ}÷=ÜG}>MÏŸ>úüi#§FNþGP:¶mîî_¼rÝߥÒîäòÌðæñ]µË5o¼®êå\ƒb?»©]¦v™Ú%Úˆ6¢ j€ÄG k"¶´U!«BV…ÄÞÅ™µyТ"åßu Ÿt?yE¿1·…T¯ Úo­[5Ïÿ˜õ¸×q¯ã^Ô àÓñ¢Ï‹>/úÔò¯å_Ë?öûƒÏìÑEWŒO.¡¯éÊÁ³G]1>ö3¥!J†|:D/(öûCÉž ÇåøeHÏÃüÏ'¯è7æv¤vf¬ïóÚލ—¯vìç+zËÔ à5)`RÀ¤€ÿ1{Ê®j¿y§L.¡¯ÙööúÖM˨ú{¾Â.c?ß«¯6¾Ú˜ |:e}”õQÖ‚ .(¸ÀìÎP({žÕ™ö\¸½irY×äûÌPl¥svø•ŽýNسwÏÞ={GMŽš5™ 1Ú€-jÁÉ'œŒ½[s*ïš!eZ$÷œívÓŠI|\c?÷ùç>œ›z8¶ç­Ÿ·~ÞÚ„ÿÓµ-sU­èõCT™ñ ÃÎ'÷è7æVœ‘8;³s%#J‰Ú86Ñó‰½wÔ¼ÈÌÇ…z%ßÐ×lÛcζz^ÿ#æ=gê àànD߈¾1âóŸøÜìn·cæåW_«Ú²qà”äýÚnçU©XÈ+]ì÷Ë].v¹Ø…Ê8¶û'2ý¡ô‡Ò2»{t:P¨}Ôo‡þ ’é™áÃmÒà yƒöú§q1¢åŒ–3ZΈJ•.*µ@â †5[Ί A+‚Ì:1ù½e+÷$PTa—ãE¿1·gS¬Û*ö·'.ž¸xâ"up<¯³¾Îú:kà®À]»Ìî…ëµ=7øDÙR!Óïr¤è÷ÿlK…L;¼Kœ©Y9ˆR%FÍèíü±ÏvìðÚâxÑoÌíàèðß½w䛿;?³éÈÑ‹¦ÎŽjÌÙ1gÇœ5}ÜȳÛ_/»wœSiªãE¿1·û†Ö[R*Mìï 7¾¼ñå/©3€ã‰p‰p‰pqžã<ÇyŽÙ`óœÉk}8ö3臞ÉÃ: -¸×tÝ÷ºêv¨û.ú]ô;*€G k"¶½Ò^i¯dÖqiQ}U®7¯Gô¥cwãbno÷Ø=½ÜžØ?Ü^_y}åõ•ÔÀA”.]¶ÕøVã[™NƒìåÜç¯E6ô5ÙŠ³6+Qb¢ô¨D€c=œØ{A¶ſwìè7ævĵ“|zø¾Kö—fe"zÔÔÀ‘„üòCÈf­~HXI‚ßÝëòYåÔŽýÆÜž;ÐôH@רß#"rEäŠÈEýÃë¯k¼®QÒ£¤GI³V¿÷â×¥|:Ï Åvn«Á»ŠümV&£fš5jõ@B#†5[ÂùgçŸf:¡_ŠCÜJF}hsÐÚO­'¶¾ õ(o˜•O¶mÙ¶eÛöüÍó7ÏßP—€änJŽ)9¦ä0~¯õk5­Ç§ýþŸøZ¿VÓz˜•(=j܉^èᘵ÷AoøyõéD¿ÿg…`ÿÓó}ùT«]Ã%YùˆÞ5u Hîö³ÿ›ýߘµôakK^)x2:ªKçÊAŸNôs{qSóee1+ŸÊ_Wþºò×Q£.F1oìu?×ý\÷s¦ ¥ Z¶Õ¿ó§ùÌPl –ÛkŠYù¬ÿký_ëÿ¢H8À°&à$ö¢÷‹Þ/z§sOçžÎÝö6QáŠß‰ìß8xTèSîÆ‰í­"»æ–ëcÖ™ëø¦ã›ŽÀ@2¶¯ý¾öûÚ›µqÏÆÝ[ŒÍú)G¿1·¢4ÌÊJ”$5 H¾D¯ÆtÔoq½qñìŸfôs\àä^ßkú·Ê’×¶”DïZô´©Q@rtÿ÷û¿ßÿÝìNØÅ¥X©¼E¢[uñ¬œûÓŒ~cnO/l²´ÌV³²šè>Ñ}¢;5 H¾Ö†­ [fÖÆÕ§ó”LÍ3C±˜ºwewÓ˜ü·¾½ð-5 @B †5'±~>ý|úù˜uM"ûkÞýèÀÅÜž,¹Z/SЬÄv¼ÞñzÇkê¼DhZ„fÖ®ó§mСË`B_Û­(ÓIÿ´-B£vÉ‹èɘµëù·þê•™è7ævèwLóIkVb¢§M½’™ÍÑ›£7טXcb‰¶íÚWqÍ’e曪VùýÆÜ†®ÓÎ/³Ùýð¨óQç£ÎT. y¹žêzªë©ÌÚuÈ™Q9‹¥à9áÿÙ®<üKåâ-ëÔªæ&Û–XŽm9¶åØö¦Î›:oêP»Ä/àø²sãÎ;7Š2³zÌê1«W}\õqUJæã'™ð[á·Âo™uãÎÝßP2 /]7³íêócŸeVz_>~ùø%u H.º^êz©ë%Û¶œe½»·wڀХ©ýNÜk»%#JɶôD©R»€äBô^Ìú6#¦T)ØŒ¸×lÛëҮ「ÍJOôº©c@r±¹Êæ*›«˜µè»'Ú(_‘¸×l;~S@S÷‰f¥÷ºÛën¯»QÇ€d`pôàèÁå2–ËX.£m[î ×Ë‘§GtÔápž¾oûÏ #²Ògfw©•¦VšZ‰* ~Ç]TݨºQuÍîÞ„Á‡8 ¼õëÿÖ?S›Lm2µ±­ÊK»LUt#ݵÿ±}|X®\¡Q–*+r½g­ÐÞË{/|šXßÑ9GçcöÖ^jÐô™»Ûôƾ¥d:ÚcÎÑ9GçPÓë½ÛV\,²†oöf£Ÿ /áMÐû¶þýq üǶ E¯[ôÀ©i€•E>‰|ùĬW#}_g†£~ÿÇöíêÎîA¿^õ…szÛ2œuuÖÕYW©i€õí»c쎱f÷Ãgõß+®æÙ`ìÛSÑkó—1]øFÚio¤¥¦ˆ/ÀqsìoìƒíGœ~ö۰߆ÙVÜâý ¿Ê|úݤð5A‘tÔìÙÞ¿úMyÓu¡.Ü¿pÿÂ}ê`Q^Ñ^Ñ^ž<xxÏŠ¿Å»Ý3Œp÷V.ÞíÆ˜÷¼³ˆ¥M¥¬IôXÌú3ƒîÈèŠpמíÈãg–ù¾É5Èc[¦q¶%)zàÔ7ÀÊ~ž÷ó¼ŸçÙ¶ß–g<;¸ýM¸kÿö|Ÿf=ÂÍÞYö{Øïa?ê`M¯|_ù¾ò5k¿ÆÒ…¿–\Æó@û·¿œèî]xmI6{ÐìA³Ô7ñ…8îD +Â]'»ÇŽ8Q½ }ú2Ô¬²ž­ºîq@:gº é1ò¢wl˳Aꩤ¦ÖÖ¤íÒvi»l[nÆî9ޏ ¸¶48¼!±îL}mipxCQz¶¥*J›ZX“è±¼§'Óq|֞ĺ<´óŽ'^’Y[ôÆ©u€Õ<øáÁ~`ÚçøÝw)õMÁ‡¶å9„ÿfD,jyÿåý—÷OÏзr᜛xø¡ÛçûÃfT*jöþr>Åùçy6 Ç/ÂàøÂ›\¢Zë¾Ö}­»mÕloÔm˜Ç›nÙÇmßd?ð"ÈݬÙ_º~éú¥ëÔ=ÀBŽG>îù¥ç—ž_Ú¶YïÈ‘ž!º·¥÷žqÀ_z~éù¥(y* `¢—bÖ‡ ö<æÛ‹@÷ã¶%6œã=ã€EoœºX͘cŒY`Ûf'.;ƣ̶œ÷”ÛSnO9ê!´^,{±ìÅ2³7à€_— <”’ø6ÖþuÉÀC)ÍÊY\j#´DÏĶ…V{Ñ?Ož·ñµíâ±n‘g˜m9‹ž9õ°‚²ÃÊ+ûžOpW¯´,8ˆø6¾¶­>÷èvÛ¶œO;uì_’ØÝwÜ}Ï4øE\ Ìp>uøOüâcÙ^Ë_ÑÛô 1×ß]Çr>pÒ" 6CœàÞ,x³àͳJövõ¡"A¿X§3¤Ý\àS²lÇ¥õçYâ•£`³Ì³ŒsÞœîuÁ±y|2Í©U*ð^Žk“*ö)ë‘ëÅØ}[­3w-Ëö?Û–s°:au¨@ÒÚWj_©}¥l[hrMò÷üÁ Ñi™Ã‹œöÝ.˜¿ÙÛ>¯]Š—¨]¾]¦nEóçOw%Ó¾Ì=²|Y¨HÑþ®÷Ê^®Ù³øoò,Ü`åX”ªmi‹«@m’–è™Ø¶Ð~eåˆbý­¬Žhy¢™oáKþ™ù¬8ò>)÷T+ÚÚjÇ|ïtZßfýpÑK§6IåIë'­Ÿ´¶m›îë³5v®e…Ðôm™ÎŸuÏp2Ý@§{NåÖœVO˷¹„_j°Ô?Èö‡>døj#´VÖZYke-Ûº!Õ„‹Þc, žÔ†V¬9õe¿žEË?òË”½~®´.33lÛJZ©êÙ_NöéóÚ£áóÙa=+å·f Ü¢kÍÙnlKûRà¥ÀKÔF‡Ø:ƒc"Npg^œyqæ…m•¼³Ý¨‚…,ÑJs8me§>÷›‡ä÷øÐ´]ñµÿa uæ¤Ãs+ûe.šiyºõ¶GûòÁË/P'¤Ò«G¯½zضM¿òçmj›´qi‰~ã3­ÏãüuîÛ›ÙÌÕ¼bïºuË:…¤=œÖj°(UÛcWÚ$ѱm›dŠNW|T»³KKxX?.+µ™s‰íYXóh+<î|ÑísÛ£½tê$TöÚ;hï Û¶r¤râ﬚þ]¶y–²ÅâÀ:ðëaš¥6;ÎèÖÑ­£[S'¤RöZÙke¯Ù¶ÍGƒäLêXáiÛáï—MóoY¸sÞ Îÿ±ÿx}ߎ7­ën Ú•¬a{´sŸÍ}6÷µÀÇ!¶&Â`à7Ûi¶Óì÷T£?º-ïí¿Ä ]Ÿ)Î?þèaÄ<6ÏÒù¯9ÿ6¿ÍÐj^uޏ­Ø_ú312xBÛ^ûÜ·å(“­U†¯cþþ“õ?.[§37nNÏ–îïéÌ>|:˜: $ Ñ¢+˜Nþ¬/ÍzèD’M˜|ué°ðºYϹîwüßZnú ·£US6.á9«‡Ë8'ßÏ~þyU`Ñ!gœËU¤Â¥f;•uZæôG̳°ÜDÐúÒ¬‡N˜>æ«]!ºH|¢7òžÉŸ'÷ë–ÇßúÑo“uS'œgvo±èDÐwÖß,’ÊöhE/: $•nk»­í¶ö=ÁÑ–÷ïX!4Ý=ìûƒ%\cÛŒðò®ž'çüZá—"ìÙ>ÛÑÁ·âëLݼ€GG·ò¶e~o½ ÷&P'Ä÷²ÿËþ/ß³îoÁíyg ±Â¶‹^›-ÛYŒñÇæ}Üãë,yÇ÷¬é^YÎ=·‚_{õ?óöúÿeCwçÂËsºf?›a`Ìs‰ò84;h¹už>Ë¥¬8ǶÌýóûç÷ÏOðq€­ïÓ ƒ €\Å4ÓTLc[uþÉjTªx,i;=/í»]i†[„ëw³‰£òÝæ9:Ë4èþØü•øÿ1ÿÊì7“jûgÄŠÿ÷Œº^ôõ¢¯}MßÃG=|dÛ*s¦,SóVÒ¥^íûž˜òÆ%{vì>al}ñ¯¶á®ø?ùÕ{×éß™œ;åý¦Ð)kN-JضäÅ¡f‰OôFl[e×e )oåè·W‰¼dJ‘ecºÉ+VûH˜Ï`Û£½tê$GŽ>lv'‰Šî¼6è„âR÷þ;1u“l¥œýÿûÉ7¹®¼is‘>n¶e®ø)~ŠH|狜/r¾ˆm«œP»×N÷MVxÂÖpY•*¹>GU£QÙ>9ú‹%álŸÆü?™çdz–ΰæ3C±-ìwt¦—¶%ÿzàë¯R3|(àäåÓ ƒ €PÔ‘¨#QGl+Jö³Y«¤ßc…îΞ3g–¨óضžÒÃç¬=³˜%Öù°Ðª$þÚç Û–|㥗6^JÍß_ýñÕ_Ù¶JOßnÇLLÚˆ4ÆUº.Ç“qŸë<>öLé\2dÊãí¯þ;ø÷ÿ¶Z,Jø=³P|õÇW|EÍŸèضÊ!´öù¢jÎ#½}ºæþWGçoÿíûÍèö»Û´ä‹m¦Y/¥{üž¨éHÔ‘¨#ÔL 1=õlÔ³Q¶íñ‡ù¹^¶N\Úû+ï?ó)âØê^*‘³`r€¯Œm±%ð=Ÿ”Ç´ÓnL;j&øÖÿ½þïõÛ¶Ê‹–l,5>iŸ­ýÕmÀ)âxÒ¥túéòße7ÿïÄøö<3‹Ím;8µo«ÀÁ:…Ú½gŠû×ï_¿OÍ𡀓/ǃ €Г€'Ol+Gçu ÚçÍd…îΠÃt/éã&sþ#py-ÿYÿFÚM³ÜJ¿ÈBßé«v¸Låïi—mœÚ8µ¡f‰/¤gHÏž¶Ò÷áØnkÞ%mDêö®êÌÆ‘»ä0Üöº¶ (T½”=Qn©]3šïyÏÇE«À¢„ß³º^Ïž!=©™@|,lãÔÆ©Í{¢S÷³%²Z3:õs©_*GÆÇÀõ <ŸµhðÎS;|%¯Ø¿~“³®lYôØ©™@bºXÿbý‹õmÛãÌ”å‹{^±N\Z£Qþ<9þšup;¿Õ“oô+¶/»vœ]iŠmÉWÍ\5sÕÌÔL ñ ê=¨÷ Þ½ÜïÊ7OÚgkëõé~÷¿_‚©Ôàÿ} ÆZQîÇmw;cD‰÷¬gl¤5Òi©™>ø“>°Cp¼0˜8]8ráÈ…÷Œ^˜wØZ¯VèîˆoáumßPÊûSﯚüï·›?tô°XÿÃjÁrr‰üÙß·ò%€D×/¢_D¿ˆ÷¬²shv¨$[sò䨷…ë¶=3øXÌqÃÖ €E Û–¼¸"ÔLÀ  T-97óŸÖ M˜3ªo¾;â8³µË)ÃÈÕÃÊÿ)yM-¶u¯þ¼5CÛc=vj&˜ÔGê#õ=‹ƒÈþÛo¢uâÒ˜Ç6¯wÅ’^Ù¦¦Üåñº\TîªÙ]]jd\œþTì•/5íà.纰ô‹ õEçD§é’¶²UG ŸéÒ´r€Ù=œš $¾Š'+ž¬xò=/>0;(mÒ>Uk<ºªš«—8žùm†Vóªó__uÙ¿¢Ò¡ëûvì¼ù|vXÏJù“W|>ëÆ¼;mK~ñŠÅ+¯ fˆû'}àäÎ1Â`à´ÿóýŸïÿܶH)æ´öËcÍý!n}5èHÎGÿøgˬùçY-î•»iß|ùX XAÍ šA5ƒlÛc@®Å.Ê[9èõk>ñɦã>'GG®]Ôµ¶é­r{TËßdS̳pÖéÕÈÞÖ €E Û–¼¸"ÔLÀ  º´*™³ˆÕâÒ.­×½ô<þû oœŽ¦ë’¾«Óè‡VnóX3èM^pÛÉKÓ¸¿gÜ›è±S3Ä´âÆŠ+nضÇsÇšžèn… ôiXû ÿÏ$ÕΫÒÿœn²=}ªþœÏÙåøõ}-oÞ´f !×Éleø¤ XAÆý÷gÜÿžöh^X¹dÒ>U+ö¸ð´Ì»Äñlß3õ–o¥#n+ö—þ¬ÞÑ ô9[f Ë §ËõïÑ‘éÆ; ¿ßc«é¾x’B©Ra•à‡%¤,RÛ–üÐÚCk­MÍ÷OúÀŽ$ù†ÁÀ h[Åm·U´½ðÇ­Ú]zZrœ %ÊãÐì åCê·‹*Xóß± ]³JßéÆÎ}ʹXíh'MìÓߣ(k+pèþÐýá{&LNµôNøßV€3ý»~%¶GžntÆLÏ<¿îÖñ— –¯œjéð÷¬)%®5°ÂǽîÈsÁ:AéOo>ón™#cþƒ;‰#¬•mð¼]l#Þäw»³¹]‘ ¶Ç,zìÔL 1M^6yÙäe¶íñöÀÖ•ËíµBDzì³FJ¿gù’.?k’·ÂúòÕý½›ŠßÙr«f}Ÿî•‹wÌ{+]J§®Nÿgܰ5G·ªç9Óퟔkö ¯Ê{Ñ9½žªåJë23ÆÿNƒß®|Açô×Ó9m³ÿÁ÷¾5‹ó—ÊbÍ'œÏ/†­ªôžÞlë_ZÿÒúj&€¸ßÏ €Uò ƒSX§I|:Î_ߨ\O^ѯXñ·â±’¿f×þû èL~é&«ÿ™·×ï¸5WY>ÜÝëo'VÖ?dæáß“cS±‡ƒÍÛkѳð™yøwj`eõŠþR&o+D¤#ž©ì{×ëa•ÍÙþç ø’ší²Ï•ölšï w“WÜûÈµ©o€•=ÚÙöU…–VˆH÷ô¨û¿ ¿’#uæGëêT»â7æÔжõ{ËÚCJL|O l±¸ïÏ>¿çç~XT9£Dáìé¬ðT-æߘ¦¾ì÷À³èéÕk×–ÙñÏJckÅÇWRn5¿]µð— Å3º7É×ÕÙ_üfáÎy78ÿçI„úŸ —­öÌðÍw¤¾ÓÎ;7îÜHìà.•ØÒ¼ì 뇾jmÊð¦EÉš=ÝFÄ<~¿YEÞfy÷gÑ_ûþïZ+ÿ2ßQ]Šeâ¶XYrYñ7à—%þUòÝ´ ;û]3àøÌ™.ÅKÔ.ß.æ¹x~tñuk?5 °²ûÇ«jY!"­æôã”<ÿ•ë•B÷3¥Rÿð÷Þÿ~Õ/¹À};ìÝYô,õ °²'/Û¯pÕšÓ&ÿ÷“ܼŠG_·ªV;—AÏýr0¨o€5U-Y&…‹j…§jÙ›f¹•~‘8*1øJä¶àÀ ±? ÿšo{®èŒÏbž—Õž¾-}ð¯ îÔ7@bz½áõ†×€œ•G¿nz u¥è±SzLqwÊ´#ãtbvõ¦¦îçåñúU—ý+*²fŽÀ@òbýÀ±Gª9ª– :òΈÀ>Fw~¸ÎËs“Óót!N-2ødš”Î¥{ºÍëŠìGhöW¶çÂ`qaÀqÙnÊX£Š÷;qFE£]êeÉ`ö³Î`ïã_gÉ+ŽjÖúAó‹”³ÿI`Ì3ªÖ¿ÌË_2€Oh°˜ݱ& ˜0`ÂÛËlÍ5€ÿ.»éxÙâ¾Û0;(mÒ>U[œw„ÑÂâxzh²)_]ûÿvÐÈ6 ¬ÛúMíÖ¹[íãù¬óì´-ùÅ+¯X¼‚š îŸô €“»äúÆDœ€ž< xòžW×5hŸ7“º;rî¹üÚ‹£J—Òé§Ê—rm©^vIr~£«.S9Ç{Ú_§6Nm¨™@â éÒ3¤§m£ô}8¶ÛšwÖ €¤ÛŸ>È{ʈ§K›ÅþW¥šN÷Ûu/ã·.KrUš¿`ƒ]®Z-%l[òâŠP3$øXØÆ©S›÷Œ”u?X"«•×Ð} `úZùhýë79ëZÀ¶äEš $¦‹õ/Ö¿Xß¶=ÎLY¾¸ç+¥æil¥þç‡Ù~ÇÓE:NÃÄïê¾-¹Î:c_ví8»Ò{æB¨š¹j檙©™@âÔ{PïA½m[å½r¿(߯Xضä/m¼´ñRj&øþøê¯þøÊ¶Uzúv{ñ3ïi—Ö;œg‰^ó7­9t$¸@'£P;Û³»~ÿúýë÷©™>pòåx¡oLÀ ®bšŠi*¦±­"ÿd5*U<–Ä“$G•hœÝ5¾Öx³N7îψ!þ/lpÑ׋¾^ô5uH|=|ôð=ýåLX¦æ-+¥ÿ®ã;/Kšl­ì¿ïeuõXàs¹D–±k×Zmì¯ØŠ¶=rqE¨™@â½ÛVÙuÙÆÂEÊ'ÄvXí#a>ƒmË\ôÒ©“@8}8ú°Yÿ**ºóÚ ÖìY:ÛCçßìï¶½Xäfî}/u\Pi†u¢_±Ý´¹ÆH7ÛcVü?ÅŠ $¾óEÎ9_ĶUN¨Ýk§û&Kлc†ºÙ樓nK&oçÍ™Ï\èµÛuoÙZ5¶zvì>alý²N!i§µfô+JÕôŽ]!ºBt*&øDoĶUV›Ü¯[à„Øv¹³þf‘T¶e.zéÔI ©t[Ûmm·µï}u´å½À;Ö MÅQÍQáR‘ëÕ;æ;”£lž™»g›1,ݱt¹ ŽÍê‘iN«¬ž#ÜHÅêŒó+ó¯¬7/àÑÑ­ü{&›po½ ÔI ñ½ìÿ²ÿËþ¶­²àö<3…X-4•ŠÍãWDŒë-0;÷ LmœWeòK7ÙoV‘·YÞµ½Xç¯Üûv.˜ÞÊwKÌÑÃV;‹g¹ô‘çØ–¹~ÿüþù©“>°õ}:¡oLÀ îÌ‹3/μg4êàíF,”Œ×ÙµæV:<·²_梙–§[o[æ/¼|ðòuH*½zôêÑ«‡mÛô+?qÞ¦¶Ö‰Nc[ì¿cµÐ7æV”ªmi‹«@m’ì1߃—^>°m›dŠNW|T»³KKx$¯ØúÛ ;_tûܶÌE/: $•½ƒöÚ;ȶm†©Ü°è;«E§öÄºÖ }Åöõ°N̓R›~5°utëèÖÔI ©”½VöZÙk¶móÑ 9S…:V{ò{¬kÍÐ7æVw[Юä{Ì}6÷ÙÜgÔF‡Øš>ÍÐ7&à÷fÁ›o˜U¦·« ú…à6¾¶×²lïø³m9× «V'ŒÚ$­}¥ö•ÚWʶ…(×$Ϭ¦&Ç­(UÛÒWÚ$-Ñ3±m¡ýÊÊÅúÙÆ×6øÞé´¾ÍúᢗNm’Ê“ÖOZ?imÛ6Ý×gkì\Ëš1jò݆_j°Ô?ȶ´‡>døj#´VÖZYke-Ûº!Õ„‹ÞcxÖ¿Û]kÎv›`[Ú—/^ ¤6ø8ÀÖAèp"éqºÇé§m+VøÕeeüé~ÅÛv|¿^_»³-ç=åö”ÛSŽz$­Ë^,{±Ìt"è_— <”’à6&þuÉÀC)ÍÊY\j#´DÏä=A¿èŸ'O ‚Ûx›üÙcÝ"Ï÷í¢gN=¬ ì°²ÃʾçÜÕ+-‹"¸¯m«Ï=ºÝ¶-çSÇN;uŒz$­» î.¸ûž¡#E\ Ìp>uøOüâcÙ^Ë_ÑÛì“ò»ë﮿»Nmðq€“¡¯àDr|ìñ±ÇÇÚV²®Uœêú˜NXÜ·¯æî?Xé”Ycþçî?wÿ¹K=¬ Ë±.Ǻ³m§Å͹ ñmÜ·¢$mKX”<5°Ñ31ë·Œèwb”o1âÛ¸o½úW¾”í==pÑ3§V°£ýŽö;ÚÛ¶ÓaËJ^,x‚à6îÛ‡½ÛWÈdxzWè]!ê!`þýýûû¿g=àó/6¸Ãs¿¸o—§±XÛž¾iú¦é›¨â‚8ñúÚƒ8‘¼Ûünó»ÍéJ§+®ô{¾Ý¼u{¦ÀtÅâ²ÝxhRyeÛ·_ß~}ûQë8íqÚã´‡mkÍüuþï<º—õ™yx/!îGnýCfÞ+JÒ¶„EÉSë½ÛÖÚlÿÌR…j߯eÛ/¼°XÛ²½qÑ3§Vð¢Þ‹z/ê™= ‰xÐÞ½bBܸl'¹”-ï‘Ù¶lçÍ™7gÞj `¿wþ½óïm[k»j?xæ¾Äs¿¸lßD\ÔÜì½æî°»Ã àÄAèû¡€ÕZ÷µîkÝm«`{£nÃ<ÞtÈ>²—ýÀ‹ w³æ}éú¥ë—˜Â°’ãÑÇ£{~éù¥ç—¶mÖ;r¤gHQîÇmEéÙ–ª(mQòT@À:D/Ŭìy2Ì·QîÇmKl8;Ç8ÛR½qê`5cŒY0æ=ÓŸN:]vŒGyBÜÛ>ÙÜng…ãfï2O¼žx=ñ¢îÖñ¦Ð›Bo ™µÙ+öå ,È3À4:ÉÏûžm©6¿ÑüFóÔ=qGœp}ã‚8Q½ }ú2Ô¬Rž­ºîq@ºeº é1ò¢wl˳Aꩤ¦ÖÖ¤íÒvi»l[nÆî9ޏ ¸¶48¼!î¬û{mipxCQz¶¥*J›ZX“è±¼§'Óq|ÖžD¹ºíå¼ã‰—dÖß½qj`5~xðÃLÇfhS |EÝÝw)õMÁ÷Ì’5„ÿj`MËû/ï¿ü=A7ð­\8ç&ž~èöùþ°•Šš½¿œOq>ÅyžˆÀñ‹Ð7¾ð&—~ö۰߆½gýËþ…_e>ýnRøš Hºhölï_ ý¦üïf þÂý ÷/ܧ¾åííå9Às€ç€÷ŒX-ÞíÆ˜aĺöoE‰½§$xð J›JX“豘õgÝ9Ñ;±®=Û‘ÇÏ,ó}“kǶLïû+zàÔ7ÀÊ~ž÷ó¼ŸçÙ¶ß–g<;¸ýM kÿö|Ÿf=ÂÍÞYö{Øï!Ë$õÊ÷•ï+_³ök,]økÉe<´ûˉîÞ…×½gÉ•Í4{@}_€ãŽÐ7!'·þoýßúgj“©M¦6¶Uvi·‘©Šn¤‹ö?¶Ë•+4ÊReE®¶eØ{yïå½—SÓë;:ç蜣sÌÞÂK š>sw[ÂÝØ·¢”ÌÊP”05 °>Ñ{±mÅÅ"køfo6jðÙðÞD¼±oëßW¡ÀlËPôºEœšXYä“È'‘OÌz5Ò÷uføùîÆ¾}»º³{Ð/…Wg}áœÞ¶ g]uuÖUj`};Æî»c¬ÙýðYgý÷Š«y6ûöTôÚüe¦˜•á´7ÒÞHKM_€ãnçÆwn$ô_ÀI&üVø­ð[f•øÜý %úÒ]3Û®>?vañYf¥÷øåã—_RÇ€ä¢ë¥®—º^²mËYÖ»{{§ ]šúÐï½ï™ö9tiêC¿‹R²-=QªÔ. ¹½³¾Mãˆ)U 6#â5öùҮ「ÍJOôº©c@r±¹Êæ*›«0ôÇmÇo hê>Ѭô^w{Ýíu7ê Ž=¸\ÆrËe´mËôz9òôˆŽ:ÎÂ÷mÿyaDVúÌìN8µÒÔJS+QÅÄ/ซªU7ª.¡oü"Nbý|úùôó1«Ö‘ý5ïŠ~tÝbnO–\­—)hVb;^ïx½ã5õ H^"´-B3k×ùÓ6èÐe0q¯íV”ŒY¹‰R¥vÉ‹èɘµëù·þê•™¸7ævèwLóIkVb¢§M½’™ÍÑ›£7טXcb÷™¾Šk–,3ßTí´:ˆÑÀÿgz¸N;¿Ì¦³Â8u>êLå’—ë©®§ºžÊ¬]‡œ•³X žþŸíÊÿT.Þ²N­jn²m‰åØ–c[Žmo꼩ó¦µ @ü"Ž/1ÇúÆp{ÑûEï½Ó¹§sOçn{›¨pÅïDö‰oœ<*D7îV‘]sËõ1ëøv|ÓñMÇ7Ô( ùÚ×~_û}íÍÚ¸gãî-Æf%ôýwÅ߯Ý[ŒÍjVV¢$©Q@ò%z5fm|@q½qñìD¿ÁNîõíQ°¦«,ymKIô®EO›$G÷¿ÿûýßÍî„]\Š•Ê[$ºUÏʹ‰~O/l²´ÌV³²šè>Ñ}¢;5 H¾Ö†­ [fÖÆÕ§ó”LÍ3C±˜ºwe÷sfeuáÛ ß^ø– !Ú€-áü³óÏÎ?3ë 4OQcˆ[ɨïmZûivà|êQÞ0+ŸlÛ²m˶íù›çožÉÞ”SrLÉaÖÞ½®õk5­Ç§ýŠ0+QzÔ" ¹½ÑÃ1kïƒÞðóþêÓŒ~GúŸžï{ȧZí.yÌÊGô®©K@r·ÿ›ýßìÿƬ¥[[òJÁ“ÑQ]:Wú4£ß‹›š/+û‹YùTþºòו¿Žºu1ê"u Hë~®»i´yxв­þ?åèwÁ€a¹½LWü]ÿ×ú¿ÖÿE-p€aMÀ²WÚ+í•Ì:+M#ª¯Êõæõˆ¾üt:p·{ìž^nOì‹~__y}åõ•ÔÀA”.]¶ÕøVã[7û\øµÈ'ý:÷¹ðk³2%&JJ8Ñɽ4 Üh[üûO'úqíd߆Þ¾ï’Ýt½dÑ£¦þŽ$ä‡B~0kõCÂJzìøî^—Ï*§þt¢ßsš èû{DD®ˆ\¹¨?€cx]ãu×5Jz”ô(éaÖê÷ï^üºTƒO-úÛjð®"›•ɨY£fšEýЀaMÀ–³"hEЊ ³ŽK@~ïFÙÊ= TUØåظ³)ÖíHûÚO\<Áw™Güp›õuÖ×Ywî Üev(\¯í¹Á'Ê– ™vx—ÃF¿¥B¦Þ%ÎÔ¬D)‰£æŽGôvbïõ|¶c‡×ÇŽ~G‡ÿî½#ß4ßù™K›•ƒèESgG5æì˜³cΚÝZòlãö×ËîçTšêØÑᄀõ–”JûûÂ/o|yãKê àx"\"\"\œç8ÏqžcvØñ¹ÙÝ oÇÌË3®¾VµeãÀ)ŽýΫR±WºØï‡»\ìr± •pl÷OÞ?yÿdúCé¥?dv7öèt Pû¨ßý$;Ò3ÇۤÁòíõOãRÔô+A3ZÎh9#*]Tº¨tÔ‰ƒÖDli«BV…¬ ‰ýެ̓)ÿ®[ø” ûÉ·QHõªð ýÖºUóxÅ~¾Ç½Ž{÷¢nŸŽ}^ôyѧ–-ÿZþ±ß|f.ºb|r~ÅYÄ~¦¢4DÉPC€O‡èÅ~(ٳḿ éyx˜÷ùd¼Ê¯vf¬ïóÚލ—¯vìç+zËÔ à5)`RÀ¤ÿñÕµ»ªýæ2¹‡¾·×·nZî@Õßóvù³A\m|µñÕÆTàÓñ(룬²\PpAÁfw†BÙó¬Î´çÂíM“˺&÷èWê1g‡_éÿ1/Nïž½{öŽš59j25@b"†5'Š‹â¢¸ÄÞÅÉÕÇåjãÏ+ù?O^¸'¥ð>ûÙ¥»”îRºKW;^íxµ#õø4½}úöéÛ§ýýúûõ÷‹ýŽ‘{Wõ¿›Ý(]rneDr }ÅÑŠ#ýìD ˆÒ VŸ&Ñ#½£ØïÍÏxV(0yE¿]—lÌW¤\æ+9¶§_ûÙ‰2õø”­)º¦èš¢±ß+Ê:»ùdp>¼Ù¯—’KèûnsçA¯\­äæõ[ìgçééùpßÃ}÷Q€OÓó§ÏŸ>ÚÈ©‘S£ØoNcÛöèîþÅ+×ý]*íN.Ï oßU»\óÆëª^Î5(ö³›Úej—©]¢h#Ú VH|À°&àdãrƒË .7p v v ޽Óó½V>‡«ÿ™©ëZ—¹k¹U:v‡§ ÒåÝswûÉQ8[ _Ä~.-Ö´XÓbͳÅÏ?[L ¬=³öÌÚ3Nv(мrß&¥}æ~§ô±\èë3÷;¥8B{ÎEœ5W€ zG¢§ûÝùN¶Wéóµk2ÌýôÈî§#}ÿ²ZèÛSÞÑÈk‰ç‹J³}û¹ˆž°èSÇf›ql†=½©å½å©se@‹uù­ú¾žÚ©]з›¢k,ññ¶ç\» vìö¦ÿ›þoúSDÿýcô3.̸0ã‚=÷%óƒ[þÜ)ìóJ©­öäðîg{Ž–Ï8¸t»Ü¿³ç\”ŒJF%#U@Ò"†5'3¯®½ºöêZðäàÉÁ“íé•(åy?˦=—g>,Ñ3©ºno† ª°äAð’¢Óœì¶~ÄúëGDGFGFGrÝغxî⹋ç<+{Vö¬lÏ]%wx çæ^~ÎÓoÜ–T¡¯xuq$ö³8;q¦\qï)zMö÷²êo{.ÿãàæ§2ûŽHªÐ·MÚE?º;å®äuÆÙÍžc½_Ñæ²°õÔé©ÓS§NÙ;eï”Ýž»J¾ù=s Ù÷C½)¥þ“T¡oä“ö“*Ö›Ö­\iÏêößÕJ …'9Lí{´ïѾößUFÞì’«ÐÁÛíwO,·+©ž•W}]ºU«áß—Èý™]÷ð&5šÔhrw×Ý]wwqÅX0¬‰ ÉØÉ¡'‡žZØ»°waoû;vMÿ¨>!×Óë§w÷Ýñ$XYWaüvÚ®ü¼­P`¡£ö+¶ LÝâ[²ÙhN­‚[· ¾·öÞÚ{k¹¾ì’/$_H>§”ß©Aç.Ã}fŒ.°bX‚¬æ;ctÃÄ«|豉3gÇU`у½)ûï6ù<|îeÎÚðòÄuÖþ8\ )æ¿Aï×ð'ÞJ«ñóà ÿê½óûêÙ#í?6ÑË=^®/û…í Û¶÷C{_gK×I>ÿC¿__Žî¸¤Ò¬ø{χ6paÞÞŠõ½ÜÝÓfsu.lÿ± ¬>°úÀêO³<Íò4 ×€=^u}ÕõU×É“=&{Ø·Éš>³Kú¬¿6î{Écî©akÔ2}â÷™á;×ðzAퟴø\©ý÷·ZYà›½Wo»¼íò¶Ëѡѡѡ\eÖA k"NöÞ {7ìݰƒv Ú1È)¿ö9‘màZm–X´èâˆTE³mÿ{ZJßšª<¿–ßcäÂ%È…çVõë¸iǤW>¹gÍ4©H™n6:›7Üãlþ™ÎS?îu^¼xq"剔'Rr5ÄÅãÿóøŸà\Á¹‚sÅå~˜ãné]U›¨Ð¤HÏfže»=fcÑÐif^/ÞphÖíÄVüñ¯â7Å_ÅåuÅ‘‹³àjˆ ѳ½¬¼†ü"ãòÒ'š÷u]U[Q._æ%fFêÛ.{Èîr‡ßVþä1·}ÃåZ®›W¥p¥zÛÆ¸å_XþPÇ ¹–çäW$ó¸¸ÜEÏVôr¹š>Λæoš¿i¾bÙŠe+–ÅåŽTåtÞÓ.k‡7)åVðMÈåÊÍ‹}¶óÂ÷¾Šæ[7uIgãÛº»JŽ Ý[§…_† é«õ?­q9ÏÊ{ÈÓ OÏÌ•3öþ¸×m0©Á¤“.n¿¸ýâv®&€¸¸½ùöæÛ›»Íë6¯Û¼»#e=žykúJ-ÕZ!ng'§ès£ÆÚv㎴·Úì/K¨úœJÉŽÚú©KÛÝdÆÞÎ+nþ<ºØ–ŸÓw=]¸r.ˆË}xFÎ9gä|þóóŸŸÿÌÕ`MÀ°&`‡òöÆÛooìuÝëº×Õ«‹W¯.N–Ô¤k“®Mºž <x20úmôÛè·\;ñëQžGyå™2cÊŒ)3œ,L¡8Z®€øîF¿~+z\¢÷eÍ;¡èµŠ¬èÍréįWu_Õ}UwÃÁ 7Ìz:ë鬧­y?쾪ûªî«.N¹8å⮀„pkÌ­1·Æ ß6|ÛðmVþ¤¼¤Ò’JK*=ëô¬Ó³N\5ÖG k"vpWR]Iu%Õ <’ªÓV¤m‘¶EÚ._¾|ùòå‹>,ú°(×@bz×á]‡wö…î ÝÚjJ«)­¦$ÕýP¼º8qT\‰IôÄD¯LôÐ’ê~(z§¢§ÊuøÎå<—ó\Ρ[‡nº5©î„#GŽÜtyÓåM—Ÿ}:ô)ÓÝHT¯ö½Ú÷jßÞ€½{jߪ}«ö­¤ºöÞsxÏáG[mq´×@rD k"þäÜRo©·Ô-g·œÝr¶ë”®SºNÉú<ëó¬Ïã!èMU$U‘TCo ½1ô†:P¨|¼îñºÇë(sVóöÙÛgoŸVO«§Õyé祟—¾ÖôZÓkM¯¯bobÏâUÄ+Rò¬FôÖDÏMôâD.îwBÑýMÑó½PÊ€5]vuÚÕikž¯y¾æy¯6^m¼œò9åsÊ÷ûaÉã%—<>f혵cÖLq0ÅÁOW?]ýt5eÀj^|9ðåÀ£®G]ºNM35ÍÔ4VlX±a|}RnôK£_ý²=d{Èö ·/ܾp;zSô¦èM”< ÿÃÌ2ÈÖ%¬KX—ðÎáÃ;S&>5÷Ü?pÿÀ>ýÿýˆÿCÉøÔˆÞ èŠ^"eàSµ jAÔ‚ý+÷¯Ü¿2ìï°¿Ãþ>ézÒõ¤+%àSsÙû²÷eï}µ÷ÕÞW{¿Ï~Ÿý>χ<ò|%€€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA€ƒ A ‚08`pÀà €ÀA$j–*,UX*'ødˆœ”’=`pŸ\,þXʰ”a)ÃR„¥Ka¼3ÞïŒ(#ʈ2ÞoŒ7ÆkãµñÚxi¼4^/ŒÆ ãããã™ñÌxfD‘F¤aDÆã‰ñÄxd<2‡ÆCã¾q߸oÜ3î÷Œ;ÆãŽqÛ¸mÜ6n7›Æ ã†qøf\3®W«ÆUã²qÙ¸l\2.—Œ¿¿¿ Æã‚qÞ8oœ7ÎçŒsÆYã¬qÖ8mœ6N§ŒSÆ)ã„qÂ8a7ŽÇ£ÆQã¨qÄ8b1þ0þ0þ0‡ÃÆ!ãqÈ8h4ŒÆcŸ±ÏØg„aF˜¡º¡š¡š¡Š¡²!²j„¡Æ^c¯±×Øcì1ö»ÝÆnc§±ÓØiì0v;ŒmÆ6c›±ÕØjl5¶[Œ-Æ&c“±ÉØhl46ëõÆzc±ÎXg¬1ÖkŒÕÆjcµ±ÊXe¬2V+•Ærc¹±ÜXf,3–K¥ÆRc‰±ÄXb,6‹…ÆBc¡±ÀX`,0æóŒyÆ\c®1טmÌ6f³ŒYÆ,c†1ØaL7¦Ó©ÆTcª1ŘbL1&“ÉÆ$c’1ɘ`L0&ãñÆxcœ1ÎgŒ1ÆcŒ_Œ_Œ_ŒÑÆhc´1ÊeŒ2‚`#ØaŒ0FÃŒaÆ0c¨1Ôj 6ƒŸŒŸŒŸŒÆ@c 1À` 0úýŒ~ÆÆÆF£ÑÇèmô6z½Œ^F/£‡ÑÃèat7ºÝ®FW£«ÑÅèbt1:ŒNFG££ÑÑho´7ÚíŒvF;£ÑÆhc´6Z­–FK£¥ÑÂha´0šÍŒfFS£©ÑÔhb41šŒFF#£¡ÑÐhhÔ7êõzF=£žñƒñƒñƒQǨcÔ1¾7¾7¾7jµŒZF £†QènT7ªUªFU£ŠQŨbAFQɨdT2*Œ Fy£¼QÞ(g”3Êe²FY#À0ŒÒFi£´áoøþFI£¤QÒð3ü ?Ã×ð5| ÃÇð1ŠÅâF1£˜QÌð2¼ /£ˆQÄ(bx†‡án¸îF!£QÈ(h4 ŒF#Ÿ‘ÏÈgä5òyÜFn#·áf¸nFN#§‘Óp5\ WÃÅp1\ŒìFv#»‘ÕÈjd5²YŒ,†³ál8™ŒLF&#ƒ‘ÁÈ`¤7Òé 'ÃÉp2Òi´ÆwÆwÆwÆ·Æ·Æ·Æ7Æ7Æ7ÆWÆWÆWÆ—Æ—Æ—ÆÆÆÆçÆçÆçF*#•‘ÊøÌøÌøÌHa¤0RèÑz´­GéQz”þV«¿Õ_ë¯õ×ú+ý•þJ¡¿Ð_èÏõçúsý™þL¦?ÕŸêOõ=BПèOô'úcý±þX¨?Ôêôúýž~O¿§ßÕïêwõÛúmý¶~K¿¥ßÒoè7ôúuýº~]¿ª_Õ¯êWô+úý’~I¿¤_Ô/êõ úý‚~^?¯Ÿ×ÏéçôsúYý¬~V?­ŸÖOë§ôSú)ý¤~R?©×ëÇõcú1ý˜~D?¢ÑÿÔÿÔÿÔë‡õÃz¸®‡ëõƒúAý€~@? ïÓ÷éûô0=LÓM×tMWtEWtY—uYÕCõP}¯¾Wß«ïÑ÷è{ôÝún}·¾Sß©ïÔwè;ôú6}›¾MߪoÕ·ê[ô-ú}“¾IߤoÔ7êõõúz}½¾N_§¯Ó×èkô5új}µ¾Z_¥¯ÒWé+õ•úJ}¹¾\_®/Ó—éËô¥úR}©¾D_¢/Ñé‹ôEúB}¡¾PŸ¯Ï×çëóôyú<}Ž>GŸ£ÏÖgë³õ™úL}¦>CŸ¡ÏЧëÓõéúT}ª>UŸ¢Oѧè“õÉúd}’>IŸ¤OÐ'èôñúx}¼>V«ÕÇècô1úÏúÏúÏúh}´>Z©ÔGêÁz°¬ׇëÃõaú0}˜>D¢ÑëƒõÁú }>H¨Ôêýõþz½ŸÞOï§÷Õûê}õ>z½ÞKï¥÷Ò{ê=õžz½‡ÞCï¦wÓ»é]õ®zW½³ÞYï¬wÒ;éôz½ƒÞ^o¯·×Ûêmõ¶z½ÞFo¥·Ò[é-õ–zK½¹Þ\o®7Ó›éÍô&z½‰ÞXo¬7Öê õ†z½Þ@¯§×Óëéuõºz]½Ž^G¯£×ÖkëµõZz-½–^S¯©×Ô«ëÕõêz5½š^M¯¢WÑ«è•õÊze=HÒƒôŠzE½¢^A¯ WÐËéåôrz ¨êz€ —ÑËèetÝ_÷×Ké¥ôRºŸî§ûé%ôz ÝG÷Ñ}toÝ[÷Ö‹éÅôbzQ½¨^T/¢ы螺§î©»ë^X/¬Ö êõ‚z½€^@ϧçÓóéyõ¼z^=·ž[Ï­»énº›žSÏ©çÔ]uWÝUwÑ]t=»ž]Ï®gÕ³êYõ,z=‹žYϬgÖ3é™ôLzF=£žQO¯§×Óëéôtz:=­žVO«§ÑÓèiôoõoõoõoôoôoô¯ô¯ô¯ô/õ/õ/õ/ô/ô/ôÏõÏõÏõTz*=•þ™þ™þ™žBO¡§Ð¢µh-Z‹Ò¢´(í­öV{«½Ö^k¯µWÚ+í•öB{¡½ÐžkϵçÚ3í™öL{ª=ÕžjZ„¡=ÑžhO´GÚ#í‘öP{¨=Ôîk÷µûÚ=ížvO»£ÝÑîh·µÛÚmí¦vS»©ÝÐnh7´ëÚuíºvU»ª]Õ®hW´+Ú%í’vI»¨]Ô.j´ Úí¼v^;¯ÓÎiç´³ÚYí¬vZ;­ÖNi§´SÚ í„vB;®׎kGµ£ÚQíˆvD;¢ý¡ý¡ý¡Ök‡µCÚ!ívP;¨ÔökûµýÚ>mŸ¶Ot Äm@S5US5ES4E“4I“´P-T Õ~×~×~×öh{´=Ú.m—¶KÛ©íÔvjÛµíÚvm›¶MÛ¦mѶh[´ÍÚfm³¶QÛ¨mÔ6h´ Ú:m¶N[«­ÕÖj«µÕÚjí7í7í7m¥¶R[©­ÐVh+´eÚ2m™¢…h!ÚRm©¶T[¬-Ök‹´EÚ"m¶@[ Í׿kóµ¹Ú\m®6G›£ÍÑfi³´YÚLm¦6S›®MצkÓ´iÚ4mŠ6E›¢ýªýªýªMÒ&i“´‰ÚDm¢6^¯×Æiã´qÚmŒ6FûEûEûE­ÖFk£´QÚ(-X Ö‚µÚm„6L¦ Ó†jCµ¡Ú`m°6XûIûIûI¨ Ôj´Ú­ŸÖOë§ý¨ý¨ý¨õÑúh}´ÞZo­·ÖSë©õÔzh=´Z7­›ÖMëªuÕºjµÎZg­“ÖIë¤uÐ:h´öZ{­½ÖVk«µÕÚhm´6Z+­•ÖJk©µÔZj͵æZs­™ÖLk¦5ÑšhM´ÆZc­±ÖPk¨5Ôh ´Z=­žVO««ÕÕêju´:Z­¶V[«­ÕÒjiµ´šZM­¦V]«®UתiÕ´jZ­ŠVE«¬UÖ*k•´JZ%­¢VQ«¨•×ÊkåµrZ9­œ¨jZ€ he´2ZÍ_ó×üµRZ)­”æ§ùi~Z ­„VBóÑ|4Í[óÖ¼µbZ1­˜VT+ªÕŠhE´"š§æ©yjîš»æ®Ö k…µ‚ZA­ V@+ Ðòiù´|Z^-¯–WË­åÖrkn𛿦åÔrj95WÍUsÕ\4ÍEË®eײkYµ¬ZV-‹–EË¢9kΚ³–IˤeÒ2h´ Zz-½–^sÒœ4'-­–VK«}§}§}§}«}«}«}­}­}­}¥}¥}¥¥ÖRk©µ/´/´/´ÿhÿÑþ£¥ÒRi©´”ZJ-¥–BK¡¥Pß©ïÔwj”¥F©oÔ7êõµúZ}­¾T_ª/Õê õ…úúúúL}¦>S#ÕH5RP#Ôõ±úX}¬>R©Ôêõz_½¯ÞWïªwÕ»êõŽzG½¥ÞRo©7Õ›êMõºz]½®^S¯©×Ô+êõŠzY½¬^V/ªÕ‹êßêßêßêyõ¼z^ýKýKýK=«žUϪgÔ3êõ”zJ=¥žTOª'Õãêqõ¸zL=¦S¨GÔ#êŸêŸêŸêaõ°zX WÃÕpõ zP=¨P¨Ô}ê>uŸ¦†©aª®êª.nª¢*ª¢Êª¬Êj¨ª†ª{Õ½ê^uºGÝ£îVw«»ÕêNu§ºCÝ¡îP·©ÛÔmêVu«ºUݬnV7«›ÔMê&uƒºAÝ ®W׫ëÕµêZu­ºF]£®QSSSW©«ÔUê u…ºB]®.W—«!jˆ¢.U—ªKÕÅêbu±ºH]¤.R¨ Ôê|u¾:_«ÎUçªsÔ9êu–:K¥ÎTgª3Õéêtuº:M¦NS§¨SÔ)ê¯ê¯ê¯ê$u’:I¨NT'ªãÕñêxuœ:N§ŽQǨcÔ_Ô_Ô_ÔÑêhu´:J¥ŽRƒÕ`5X¡ŽPG¨ÃÔaê0u¨:TªV«ƒÕŸÔŸÔŸÔê@u :@ Pû©ýÔ~êêêjµÚGí­öV{«=ÕžjOµ‡ÚCí¡vS»©ÝÔ®jWµ«ÚYí¬vV;©ÔNjµƒÚAm¯¶WÛ«mÕ¶j[µÚFm£¶R[©­Ô–jKµ¥Ú\m®6W›ªMÕ¦jµ‰ÚDm¤6R© Õ†jCµ¾Z_­¯ÖSë©õÔÔÔÔ:jµŽú½ú½ú½ZK­¥ÖRk¨5ÔjuµºZ]­ªVU«ªUÔ*j5H RƒÔJj%µ’ZA­ VPË«åÕòj ¨ªeÕ²jYµŒZF-£–VK«¥ÕRj)µ”ZR-©–TK¨%Ôª¯ê«úªÞª·ê­W‹«ÅÕ¢jQµ¨ê¥z©^ª§ê©zªª‡ê¡V «…ÕBj!µZ@- Pó«ùÕüj^5¯šWÍ£æQó¨nª›ê¦æRs©¹TWÕUuUs¨9Ôjv5»š]ͦfS³©YÔ,j5³šYͬfR3©™ÔŒjF5£š^M¯¦WÓ©éÔtjZ5­šVM£¦QӨߪߪߪߨߨߨ_©_©_©_ª_ª_ª_¨_¨_¨Ÿ«Ÿ«Ÿ«©ÔTj*õ3õ3õ35…šBM¡D+ÑJ´¥D)QÊ[å­òVy­¼V^+¯”WÊ+å…òBy¡ü£ü£ü£/Ÿ—ÏÉçäsòYù¬|V>-Ÿ–O˧äSò)ù„|B>!—ËÇå£òQù¨|D>"‘ÿÿÿˇåÃò!ù|H>(”Êûåýò~yŸ¼OÞ'þ‰ûâM^$Y’%y¯¼WÞ+ÿ.ÿ.ÿ.ï–wË»å]ò.y—¼CÞ!ï·ËÛåíòVy«¼UÞ"o‘·È›äMò&y£¼QÞ(¯—×Ëëåuò:y¼F^#¯‘WË«åÕò*y•¼J^)¯”WÊËååòr9D‘Cä¥òRy©¼X^,/–É‹äEòy¼@ž/Ï—çËså¹ò\yŽiŸ&…Ia’.é’.©’*©’")’" ¡R¨*ý.ý.ý.í‘öH{¤]Ò.i—´SÚ)í”¶KÛ¥íÒ6i›´MÚ"m‘¶H›¥ÍÒfi£´QÚ(m6H¤uÒ:i´FZ#­‘VK«¥ÕÒ*i•´JZ)­”VJË¥åÒri™´LZ&-•–JK¥%Òi‰´HZ$-’J ¥…Ò|i¾4_š'Í“æIs¤9Òi–4Kš%Í”fJ3¥éÒtiº4Mš&M“¦HS¤)Ò¯Ò¯Ò¯Ò$i’4Iš(M”&Jã¥ñÒxiœ4N'‘ÆHc¤_¤_¤_¤ÑÒhi´4R)”‚¥`)X. —†KäaÒ0iˆ4D" –Kƒ¥AÒ i4P( ”úKý¥þR?©ŸÔOê+õ•úJ}¤>R©—ÔKê%õzH=¤îRw©»ÔUê*u•ºH]¤.R'©“ÔIê(u”:Jí¥öR{©ÔNj'µ‘ÚHm¤ÖRk©µÔRj)µ”ZH-¤R3©™ÔLj"5‘šH¥ÆRc©¡ÔPj(5H ¤zR=©žTWª+Õ•êHu¤:Rm©¶T[ª%Õ’jI5¥šRM©ºT]ª.U•ªJU¥*R©Š$IAR%©’TIª U*Hå¥òRy)P ”¥²RY©¬TF*#•‘JK¥¥ÒR)©”TJ*)•”JJ%¤R ÉGò‘|$oÉ[ò–ŠIŤbRQ©¨TT*"‘ŠHž’§ä)¹Kî’»TX*,– J¥‚R©€T@Ê'å“òIy¤}ú0ôaèÃСB„Þ ½z/ônèÝл¡·Co‡Þ½z+ôVèС7B¯‡^½z5ôjèÕÐ+¡WB¯„^ ½z)ôïпCÿ½z!ôBè_¡…þz.ô\è¹Ð3¡gBÏ„ž=z:ôdèÉГ¡'BO„ž=z,ôXèÑУ¡GCÿ ý3ôÏÐá‡C‡†‡†‡†‡ =z0ô@èСûB÷…î íÅã:Ñm'NÔ€„`…<”â00AL ÀApÀÀ00AL ÀApÀÀ00AL ÀApÀÀ00AL ÀApÀÀ00AL ÀApÀÀ00AL ÀApÀÀ00AL ÀApÀÀ00AL ÀApÀÀ00AL ÀApÀÀ00AL ÀApÀÀ00AL ÀApÀÀ00€…8ÅŠò±_Ãe —5\fV’UnoâŽ-îÞâN.îêâOi€äˆ˜ÀBˆâËŒðá3ÂÍJ2cXưŒa/ƾûbl<¿pšè4ÑiòœÈs"ωدæñÇo¿‘çÞ¼Jó*Í«˜½nÐÖ ­A[µ6'¦w9Þåx—£F£j4ŠY>Sœ§8Oq¦¬ !\Êu)×¥\Ùºfëš­kü¾CMö™ì3Ù'æÞjV­YµfUîç 9"&°b§ørìé±§ÇžÆ^žûç~ü¾®ˆuìp!Yþ•ùWæ_iöº#ï¼7òž=¯KLKŒÝ¸àqÁã‚mG·ÿ³òŸ•ÿ¬¤| ~½-ó¶ÌÛ2b“„x‡³ƒÄœÑA˜ÐvBÛ m)¼ ©¤Åöó)”±S|ccNf˜8ìÔ—S_N}iOœ£j®D^‰¼ûëʹåÜrn`Zb\œvüÙñb$}Ì’™½hö¢Ù‹(%HcYûùìç³3œÌp2ÃI³3U2(” ÀœûÇ1 Öï‡_?îQ¿¶ÜÚrkË­ýbYüC—»üØåGÛWYä½È{‘7×X00°BJ !´,Ô²PËBf¥Ú½r÷ÊÝ+ǽ„ËT+S­L5Ûý·yÐæA›ãûŒï3¾Ù1\Iy%å•”qêçïÛ¶;¾Vÿ¥6Òc£{ Ž-8¶àXÛÒ0ŒÜ£ ¾Üw{Üíqb¡Š¤ €Õÿ¨ÿQÿcû*1gƒàzk"&BèB $„?,øaÁf¥ê£ûè>z\Jø^³{Íî5K—2]Êt)m÷¿ìܲsËÎÅ~eÅHš¸ïù~Í÷k¾øZý—ÚHKŒ)æ(yÛà]Žw9Þåà>ñ Mtšè4uÞÖy[ç­í]·¾Z_­¯&æ;”¸Ã˜]`vÙ¬ ’```!‰º¿qüÆñs~óëœ_[ÝúëÖ_—n\ºqéÆ"ØÈúSÖŸ²þ”iG¦™vˆ‰|‹F.-À 44HL«û¶ÌÛ2oË$ÇHQQQÚMí¦vóÇ?üóÇ?ƒ¶m ÚêYÚ³´giçUΫœWå(“£LŽ2EÓMS4M‹’-J¶()&˜}ö4ìiXüϹÁçŸ{Ù>r}äúÈõãö¿¶ÕÚVk[™íùÚ©k§®úw:h“ÑtÿWE›4rÐÈA#ËE•‹*UhP¡A…ýÛŽR¸¥pKQj@©¥ôþª÷W½¿-èÓ¼Y­¥˜×ѶFd‘yDf¾žñeö¢Ù‹f/2[NâÎOw~ºóSâ÷‡ÔRH}Û׊¹¼×X 00HNñê^8Mtšè4ól̳1OùGå•_ÇçDžyNˆÿ~ÕåU—W]¢dâRæâ¨ê­w´ÞQ³ý‹XîAÀƒ€÷*Šo(¾¡¸ü>®$]=]=]=Åßüíæo7‹¯Z—o{¾íù¶›½î®I»&íšôq{6[!¯ø•âWŠ_‰ù›­ß´~ÓúíoºÔp©áRãM75ÞÔø¸cˆYmÅœÂ1!jãã´Ó>N{» —+\®p9îõ<¾ZPB?^·rK‰éˆÛ·#nfÇpzõéÕ§WÛ_&b²h³±òbœz|'þ2øËà/ÍŽ|a……Và½qG­F|93ï̼3óÄWl¯¯ýë'ı‰¯v™½â±§Çž{ÊVCL ’@âÀ×"®E\‹K@e?1†ïãÃ%ÄC½×M_7}Ý´Á–[l1ÛsÉ1%Ç”#¢ß}­'O"žDÔÎ^;{íìñ[’Ù›foš½i|=Ðkñš½Vð«àWÁ¯>îµÌb<1¦3æ>ͦÒö­Ù·fßš}õ‹^½.zžúïóÙÏg?ŸµQŒ®ö¨îQÝ£zܯxÌP3!î-IÛ“KK‰©ïß}ÿîû·=_n°ßÀ©§œjv.b>†¸óÑôGÓMŸþzúëé¯Ûî_L¬*¾ Ä{1â µq!¾¢çßÉ¿“'Ûë+¾d–ÐïPö³àؾb?¹ŸÜOf0°``3~¶ãÙŽg;ÄØV§DT³jͪ5«&mì$¢ßFÓMo4=öè÷~Íû5ï×üÐWyXäa‘‡Eʺ—u/ëžÐå9¯÷¼ÞózÇ¥Ö-λ8ïâ¼fû¯Ö¿Zÿjý?´bŸ\zûží{¶ï‰¹Ï[sn͹5Çì÷G]uaÔ…=±ŸÙ>«Ì¬2³ÊÌ„h§âë^9¼rxåˆßkí}Üû¸÷ñ¤ý Eü¶ÄäÕR1f1ÿÊü+ó¯´}•Σ:ê<êãJC|ÁìøÅÄû·g1†Þ,DÉéšÓ5§«-MPñqNî?¹ÿäþÃßþþð÷”µÚÊÄÔú—r]Êu)—õvp»Áí·³½¾âËU‘'#OFžŒy}“*ãÒŽKm_±àØ‚c Žå+Àj€ €@h•õý?±?Ò2û«Ø_«÷ëÞ¯{¿Ž}Ϲ¯æ¾šûêØ)c§Œr`â‰&^‰¼y%òå —ƒ^A—xð½¾üúòëË‹1|fS>Æ$~ßþ’‰¯‡zâ‘q“~Mú5ég¶7¿Y~³üf}\ô+Ö.9ÖÙLoê|Sç›ÕÃW_=÷ûÜïs?~Wÿµ§6Vý¹êÏUþ?+¦pKá–bBÛ m'´=;þìø³ãE("VAÞzvëÙ­g+«x¬â1{‚L1Z:~9ñ÷“[Š î„±O6—°áP÷CÝu7Û­RµJÕ*õ¡û÷ðØïÆ„dqa¶Þy\¦¯w$Ôê¤"Þk–¾Xúbé ÛwX+¹X Á¶?™.2]dºH1Á¸íY$U,V 7{Ýðá-Â[pÖAL ,$~i‰à6ÓŽL;2í0Û§˜úÅØc_ŒßˆHh¸¬á²†ËìßsÜK@<ˆoÖ°YÃf ÍöSbE‰%VÜkv¯Ù½fW¶SSOM=5uìùŠUuí?þ')ž¤x’Âþµ–?®Ž‰q*fû1›ý{3›X[~f5¤þúCê›Ewºs鯥—nlºúï3õ™ú,!àÿ]G•‹*u{Üíq·Çý×J&:ÍŒðá3Âcßg̑뉉¯ý$ß–24hhÐÐ Ó?;öÙ±Ïâ~Ïæ;Ìw˜¯Ù«,É´$Ó’LöìçÔ®S»NížÛî§õ×­¿ný5ï°qgÇ).ÞY>åR¢V'Žëû®ï»¾O¬‹löµñhÍã_î1[BBÔ¢Äé-ÛïÏ¢ý³¨ÙëŽÈ<"óˆÌ|X00°ø}¤%ç–s˹Íöæ£ûè>úÓ°§aOÃâò¸júùéç§Ÿ7{• w.Ü9qJàm™·eÞ–i^¥y•æU.úSM:¯r^å¼Êl¢Ëã7Žß8~ã#K5Mtšè4±—ÃÈ{#ï¼÷qûo¯´WÚ+f{ž¹wæÞ™{íÙ³Ú³uÍÖ5[WÛýŒYlþ|óç›?7;¯§Oœ>qúC÷yÙé²ÓeÓ™Ú³Ÿ˜këÚŽî²g|dÌà=Ç&:MtšØ÷ VÛ5;—˜dB´Ç"E<ŠxØsœfÎ7?ßü|óømõV€“{KQ2(” f{Ünp»Áí"fuaÔ…QÌ^WD&1_|ùÆl,šXýwÕ„ ¦®åìYÚ³´giûc91+†øo1†Õ±ËŠZý¡ÄRâý+æTööcgç]œwq^ñE«ÅäWR^Iy%eÌQà1M»;íî´»‰ß[þP§œ:pªÙ«ëgô3úî“À € €€…$í#­#Æ:$~ì$¤6Ú~ç§;?Ýù)îesT«­qÁã‚ÇÇï•£ͦYž×{^ïy½?îÅÄÅfç"ÑÆ¾‡ —+\®pÙlUi{ŽaÖúYëg­7;1(ö=ÔWë«õÕ„XýמÚü*øU𫸥ÀñàäÞRb_¡9.í.vbrQ³5­cŽf~—ã]Žw9ÄJÛ¶¿Y4ºhtÑèVþ³òŸ•ŒýMhâH”síìµ³×În\'¾Œ%þ[¬wëxåC­¶ÇáïøûvGÚiwÄlÍc³ñ¦¢$¦†¶rQ´1ƒ‚í¹Të_­µþ¢X¿·<{ÑìE³™½zÌÙw¸C€¤EL ,$9À1'cLœØInŸf+ð }î÷¹ßç¾ÙµÛü|óóÍÏÍþ6æšÐö‰ÙXäï _øûÂfû‰}åi&t{¼y%òJ¤ÕZ½àäÞRj•ªUªV)³ã-Z.´\BßcÇ÷ßg|ŸØ×V7•žÜßé’{SäÉÈ“‘ÿ^©âWŠ_)~Åþ#“Ì‹ÿ~ñ$âIDrïá8v­ŽÝ½f÷šÝk&J@,s`Mï†[Ïn=»õ¬Xö"y…‹ý³èŸEͮ徭«®Z˜ø«ÔÇ…è[š½z·uÞÖyK ¬€˜Xˆ`ñxQ¬+¢Žùmæ·™ßF¬(\£QF5Åœ¶1~©Ç¾ŸNÓ:Më4íã Ç½dÄêzÖ *Äñ|ܹ\;uíÔµSf{Ž9]§íßöþª÷W½¿2™ô¡GÒï‡_?³Q¼bÂOÛ¿Z~hù¡å‡ÌŽÿ— ¿løeCBÍÑŽÕZ½àäÞRÄ*Åf{;âvÄíˆ[â܇]]]ì9GÑfÅÈÂäþNçHðÿ‘&:Mtñ* ¶4ØÒ`Kº”éR¦KiÏQeý)ëOYŠù%›äØÃqìZmëØgÇ>;ö™˜oC¼£ÙsÖbDì€%– Xb»N|ò*ñnöÕ‡æUšWi^%9ö–ÿü#ð@³W÷Ñ}tO4À € €€…$Î#-1±¤˜Pqô£ÿý‡XK5öØ#q©Üþc´:òÞÈ{#ïŽ w.ܹpgë"ÞŽËyåðÊá•ÃlÊ͈k×"®ÙÿW]Ûwmßµý‡ÃæÏ7¾ùs³sÜÓcO==lÿªgžz0û+í¦vS»™à“3§‰NÆj­Þ pro)ù¶çÛžo{\VÈŽ/gæ™wfž=w¿Ó«O¯>½:¹DDŸhlãR®K¹.å¯ëêéêéêùqÇlÿÊ©VਵZÄÛâ­ÊÌ*3«Ì´ÿ Ѝ{I¦%™–dr¤uŽÍÞ©Å=öa‘‡EIÚwº¸·\[Ç[pl4€ I¸GZÏv<Ûñl‡i¶rêÇÉ2.˸,ã’*£Qw¬Ý±vÇZ³ßÉ–1,c˜Xq6.e˜­k¶®ÙºZ'¨p‹p‹p‹Ó¤ Ý+w¯Ü½²Ùþ¥bR1©XÌßý¡çÇ­*VN=ýõô×m÷)FAÙîÓo–ß,¿Y ·úoB·Ç„{+Àɽ¥ÄmiËì‹ G|MÇìxº5èÖ [Þ=“»˜±_É1%Ç”c ùå­är¾ŽT«×—__~}yû¿ø"ú$m/¶½Øöâþùûç|Çøš‰½W&¾Ú—óMÚX,d`öê.5\j¸Ôàž¬€˜XHB<ÒRŸ©ÏÔgºæœÙ”þþþ—v\ÚqéÆ<ólÌó±ubÀ½_÷~ÝûuÌQ˜Í6kجaìëÂÆ¥$íŸÂ1qˆã‰K}[ÓkM¯5½Ìö?fñ˜ÅcÇ,±EÞ‹¼y¿gÄpÊt)Ó¥k~Ü‘TÒ*i•4Û={÷>î}<æ1ˆµ0ͦN­Þ±zÇê­ÜúU¬'÷–"FÀ›íMŒóKœw1ùm™jeª•©fÏäÀ¼‡:jÀì+2¶kåZ¿&8^­³_Ä~uD<<¡í„¶ÚÞíz·ëÝ®ŽÝfE_Ñ´ç–LÞͼ©ñ¦Æ›f¯.Z+w0`ÀÀÀBâ÷‘–˜äÙþÑxbÚº–…ZjYhúùéç§Ÿc@m׋M¸#ÿ¸èW¸±óÆÎ;cÿÛ¿¯ø}Åïwuòy¼†ÙžŸÏ~>ûùìäUßnþvó·›¿™Qíìµ³×Îó ŠûlS<ÊË‘Œ2vÊØ)fGrõúÕëWÿ}œ*ê¤ý¡µuÚc⼊àäÞRÄø-³ãÓ–&ΑĜ¾>vâ«ÄÀŽJ¬&ë°ãÕêØ`ñ5¦ã7Žß8~ãÓi¡¥”Pj€5§yÿ©ïO}ê—³‹9yµÙ*Îܵ€ ‰¯ðFŒ°)0»Àì³Íö&F¹µþºõ×­¿>µëÔ®S»¬;õ¹ßç~Ÿû±¯½:#|FøŒðØ'ƒý¸sôÑ}tÝž2y1[û9{ÓìM³7+F‹Ÿœ®9]sºÚþæ0ßa¾Ã|ãòh;¼Ex‹ðfe+VF´xmégô3úठ€“{K_…1;þ µ.ÔºP+¡áð÷‡¿?ü½=ã>cšßf~›ùmx'u þøG`§i¦ušæ¼Êy•óªä;j­¶g°-ñ®ê¨µ×úp\ZŠxˆ}´7w0`ÀÀÀBâ+¼ã\c~ã¾[BùÿØO¬Ñ¯ &h-ݸtãÒÍösí[û­F£j42ÛçŸEÿ,úgÑäXëzeé•¥W³óã–ă{³ß‘s˹åÜq©KâQ¸ÙêÔ1G×y[çm· ½úoüÖêÄ|+Àɽ¥ønóÝæ»ÍìøÅ—îÕÅéâWŠ_)~ÅöÕË}Wî»rßÅœ=¦˜ó=ð~š¼ˆ{×òCË-?èèèb %88ÔýP÷CÝ­yõ»VÇ>/…÷&îMÜ›$þ¼‰Ã±à˜mÍ–ß,¿Y~³¸§+ &_áMÝKu/Õ½û4¹Ö<òøÚOì¥XAvÿüýó÷Ï·Ÿ1ǹÚÚü|óóÍÏ“c­[_~}ùõåc}eö¯b\Z|Å®­²¶ÊÚ*«Ù„Šb\»øï„^ý7~kcb¾ŠZbro)õÕúj}ÕìøwÛ=l÷°„{õ~r?¹ŸlûºÃ2†e ³­ÁV­RµJÕ*eåÀÌɳ.应ëR®¡ACƒ†™}ýÅì®+Fž8}âô‰ÓIuüÔêØëv†“Nf8iÿ5ÿ-¦ûNî½YÇ€wMÚ5i×$³ý7\ÖpYÃe|¢V@L ,$¾L›¤‰ùx1¾¤^‰¼y%Òj° V Ž}”†ý{ÞzvëÙ­gÍöÖ´CÓM;Äïãi±ª±xjû£ÝÔnj7ãþ*w»Þíz×t•èvGÚiwÄì_¿/ü}áï Ç×ù†Ü ¹rÇìµy/ò^ämö¯1W¶Z{LÌW±BKLî-eÐÈA#4;þU W-\µ0!îÿJ%ƒ’A|=ÅöuÇ ó÷Å”øfǹ8ï⼋ó&Çw:G €ßåx—ã]Õ;Zïh½£f×Ú–˜–|b½‰õ&Ö{ð àA@rçýéÔj[7»ùÛÍßl—ŸøPoj¼©ñ¦=äø}§‹K Z¹n底ë.`ˆ/ÀÀÀBâëÁtæ9™çdžc¶Ÿg;žíx¶#¾ŽyCñ Å7·fü$Å“ORľÏ)ÎSœ§8Û³71I£±d»Ÿ˜ëÆWÙš¤ÓãwÒH³ioó¯Ì¿2ÿJ³³¥_g-b¼Ø×Õ3ûWã€qÀ8@l…–˜Ü[Ê‚ü°à³sŸ¹wæÞ™{ã÷øŸD<‰xaVÃý;ùwòïdEžŒ<i:¾Ð¥†K —Ö !>X„µSSOM=5µgiÏÒž¥í?’JZ%­’&ÞaÅÕO^‘Ò§V«c÷rÐËA/‰#}‰ ³wañßw~ºóÓŸè-'í8þá3Âg„›½ú +,¬@ ¬€˜XH|=ÒrKá–ÂÍ4ø“FÆýhï5»×ì^³˜ëØY-ÖôZÓkM/³}f—e\–qöï¿íŶÛ^4Û[çQGu÷"ºvõtõtõ4 â·îõý»ïß}ÿþа$~G“ %V”XQb…ýÇ &Ï×­ÙóU¬Ó“oK«üšyï¯zÕû«ø­—v\Úq©YX~4ýÑôGÓ›½bì“‘Æ\3;¹¼Ó%÷X,@ÐiZ§i¦ÅœÚ7vâ 6wØÜaó·#nGܬ?±3µ:¾ZAÌ¯ÅØSOÄ‹•hé-'~ó]ÀVÌ%Hø\’00°Øi‰ $íÙO™jeª•©f¶1d\N‰u"\‰ßGê ÷POLVl¶ç[li°ÅžW98äàƒCb?N1•ñǧs½C[1G]ÇWÝÛüùæÏ7nL"&´´¿NÚ/æô‰ö¨Ñ¨F£¿=ZóU¬Ó“oK«MÇüjHL1ï®q¿ú±O—ü*øUð+{öÓæA›m$D9#vbô凖Z~(Ð%Ð%ÐÅþ{W¾íù¶çÛ>fñ˜ÅcÇœŠ?¹— µúC]½~õúÕàœ®9]sº~Ü×â‹Pɱ·œÐ¯nÖÇïLÙ ¬ƒ˜XHì´Äˆ[{ö3"óˆÌ#2Ç>‚DL™û¡Gø{Ëß[þÞ2öÉxmÙ?iaÂ=Ô»PëB­ µbßÿ–[[nm¹eÏÞb0.2]dº×EŽN&:=û|œöqÚÇi[ÝúëÖ_ǾnñÛ2o˼-¿uOLUjÿš”­ß´~ÓúMB´‚Ðr¡åBËÙ_»bõß„® ÷*Vû*Fòm)â‹fãÿYùÏÊVÆåº‹ûy¯æ¾jû*>ºî£Çœ66ö½Ý¯y¿æýšf¥‘£LŽ29Ê0"-¾\Êu)×¥\Cê©?¤~®´¹ÒæJkÿýªÜwå¾+÷Ýo“›üÛdñUGº.Ôê¸÷q^:FÌ•†¯ï»¾ïú¾O³·œÐWÇlĶøBwH`ÀÀÀBÌVÍúo쿱ÿF1åé«.¯º¼êró·›¿ÝüÍv?盟o~¾yìÈbF/êÔÿ¨ÿ¹y%òJ¤x$ýÈõ‘ë#W1Yô¬õ³ÖÏZ_.ª\T¹(³½Å¾êp£é¦7šnÏ8æ„~¨'ÆZ™í¿Ð Bƒ Ùõ`Z”=dÅÜy½çõž×û̼3óÎÌ{ö4ìi˜\L<0ñÀÄÉ>“}&ûÄ>î'ÃÉ '3üíÝ{œOuâøñZ»ßÊþV£R+J¹Œ±( Chd+»eÓª´JR¥•.ËšÒ’nºHúJ º ¤¬KQF‘\Rý _[¹L$wæ÷Çé÷øÎ>>>³ƒ™ùœ9ó|¾ó؇˜Ï9ïóþk^s>gEÞ›yüšômÒ·IßüWp÷UaìIpG]Þ+êßþŸüÌy3çÍ€ ö«Ô×)¾ï”!½‡ôÒ;Þ«ÌŸ0Âü ÇsÞ¯ísmŸkûÄ»2îz´ûdÅxû|uÖÕYWgÉÀÇcúÈé#§ÌÿÊ«1øq™Ø{â£7?Vuaˆ}®y~Ö^aßðyáíOî§<ýÓ‹f5Æ«„óÃØ‹ã;%ˆÐñ^ëéïžþîéïŽíUÆ¿;þÝñïæ}ý9ž=o¿®ýºöëâ}ý—'½<éåIþ¶=6;Oì<±s~îÂ|ðû¿ðûà‡´JB²ª‹Fp÷yì=ÐñdíÊÚ•µ+zó¨œûÊkõÕCV€€ð€` Dú¥÷Kï—^PøPCuÕé\¡s…Î 6´÷ê­|måk+_ ~eÒ•“®œteþ¿B¼[.šoê½_íýjïWËû¾™e›–mZ¶)?_틾xà‹ #hUI®’\%yÊî)»§ì.š8õã©Oý8ェ¿¾þúúë {Ož]ôì¢gå½'W´½¢ím oà‚=öâøN V{ì+þ¥æ_jþ¥æÑÎFðcñ²M½2õÊÔ+³{øîệÏ<çþáŒX¹ïŸöwîÑŠ€›vlÚ±iDZ_Œýbìùÿˆãh°ª%øŒ„Ü/ À…½r_ùc?ÞÜXB$øðÛ‚ À?+“S&§LîLrl‰¥úòêË«/±Õ‹­^l2ôæ¥7/½yiÑß=<]5ï™üë'ý䯟ö^従&žG2Éx$£ðöD.Œc/^Ö<´æ¡5±¯^ãå/×xù(^±LN™œ2Á"pïò‰eO,{â«>XõÁª‚:ŠF 1 ÞìuØq`Ç2ðÑ pðCB.íti§K?\ðá‚Dûƒ­êâr.‚c¿jÛUÛ®ÚÌ¿\°3|þðó‡Ÿ?<ö.¸dàWT l`à)¼ÁÿKiûpÛ‡Û>\ë¶Z·Õº-øÀÛ:—Õ¹¬ÎemƵ×fÜ¥o,}céüå]ÓvMÛ5-øÊ7m½iëM[ƒCîž ž@|{«yíæµ›×îu~¯ó{ÿNÏwz¾Ó3?w5åþ=-*µ¨Ô¢Ò9'œsÂ9'T=µê©UOM;ýíô·ïhsG›;Ú÷†a¶ ãv¹ïËé:§ëœ®s‚ù æ6˜ç`ÎëåÔË©—„„ᣆ>jóó›Ÿßü|ø¿ž=ô-×â+ü“¾Nú:nfâ–óXr¬MY›²6å›ßlüf£+aöe§/;}ÙÉ*-(±?ê‘ûÑëw®ß¹~§ÙÂF€€b °ïo(¼»(Šò£ùŠãy43þwJ¼çölÔ³QÏFÞ¿Ñü@dìßÞêðV‡·ÌN° @\Ó&N›8mb¼g ÀQµ¯û¾îûºç~Îtn3ûÏì?³¿¿€p€`â:\ùpåÕj<¨ñ ü?Ñ€â.¸ÂÇ^ùSoM½5õÖàÙÀf 'Xà?˜²{Êî)»cÿ-yý5×_sý5ÜWøÜ¦~<õã©»òa& Àü'erÊä”iÚ±iǦsÿ[²Ü´rÓÊMË>5ûÔìSM@4Wõà ŸûšŸ–š–š–êÞ_ ü`€|ÉúeÖ/³~û/ʼñ7þñ†»Á¢aÐKƒ^ôRìÕ>kWÖ®¬]®ö@ø À0G¡ËÚ.k»¬Íý/ÊJ—Wº¼Òå’@q·½Êö*۫侪ºÎé:§ëó° ÀQøöþoïÿöþØWþ½Æßkü½†ù(¾‚+yîk{•ä*ÉU’¿ëñ]ïzøA ¸€`ŽÚ«O¼úÄ«OäþweùGÊ?Rþy 8 o…û+Ü_áß~ÄgÂîœp§k;P¼À0Ç趇n{趇rÿëòÞ§î}êÞ§Ì @ñÒwtßÑ}G羞÷èÚ£k®f(Ž`€côÓË?½üÓËÁ¿+ÓRÓRÓR[Öú³ÖŸ¹W  ¸Ø±adžr_½¯üõ•¿¾ò×¹¯ðf (^`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"B€€ˆ€` "`ˆX"BþÙ‡óó=>JÐX ñq‚ÆÂEE>'h,IÐø$Aci‚Ƨ Ÿ%h,KÐXž ±"Aãó"+4V%h¬NÐø"Aãÿ&h|™ ±&A㫵 ë4¾NÐX_äã› 46%hüO‚Ææ%h|› ñ]‚Æ÷ [4¶&hl+ò±=A#;A㇠;4~LÐØ• ñS‚Æî= {4ö%hìOÐ8Päã`‚Æ¡à 9‰óNHÐ81Aã ¥ kÀ‘%DDdpÀ JŽÈà-ÜòÇ-üp^¡ù žIìiÄžFþ§—œç—œ'—œgž Qrž=\rž:\rž7\rž4ìÃÑ{ºp¢ž1\rž.ì¹Âž(ìYž"ì)‰zŠpÉy~°'{f°§{N°ç'ê9ÁžìÙÀ¡*ð–[zléÙ;€( 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!D„ 0@DÀ!ó,8kÁY Κ×}^÷yÝݶè¶E·™ ¤Ù²`Ë‚- æð¿#ø3@ØÀ%Îæ¬ÍY›³ÞZýÖê·V÷Úch¡vWØ]awÒq«[ªn©º¥úm귩ߦ¬{³îͺ7{Rö¤ìI曃»î:¸keÖʬ•Y/œöÂi/œÖî™vÏ´{&©€_-øÊÁ«¯hæ(lpÄ­/µ¾ÔúRÖy´Î£u’¤n—º]êv7nܸqã¶ÕÛVo[=ç(J‡o9|Ëá[æÏž?{þìÎC;í<4Q×ÃàÕƒ= öÊÙŠ—Ø+ÛØ6cÛŒmcfÂCŽ”ƒ›n:¸iV•YUfUIéžÒ=¥{R(]ÛãÚ×öXÑbE‹-ræÌ9èÜk{õíÕ·WúìÐg‡>›bÁ{ë¬á'„Ÿ\ìî¸ÿáþÓî›vß´ûŽ'B´(ÝpyÅ7îkwÓèóGZ; T½Šÿüêé/¼"ëýÿn×èÀ‡¾Ø·ñÈ÷khÛ¨Û›Óß×°Ús/Ü÷xÝf·òçÕç.ª³ºÆ°3Ÿ:¶×MÛ“¶'mÏò—Ÿ¸üDg8Ù?eÿ”ýSFÕŒªUçzXù»¦3Úv:¿Õµu{]ŸÜüŽÒƒ&×›}o™aë_Ó¯ÂÈ›ƒmð+Á ~gð§Žçuƒ=ŽÂÙÂI?¸[ÑoE¿ýj5¨Õ Vƒü†ë–\öhÕ§¿þÌNû!cΤVåä,^ܦMAm×?<µf‹šã>Üèw#›µ¯ÿVÅ£ùpÔŒÎ3¾ŸøýÄï':¿@~Ê<”y(3ó¼Ìó2Ï;ÚàZ#©ÃmÝÿÞðÙçïß¼yfæâÅ» ¾rð*G»oÁGç,á!„Ÿ\ÌìÛ°oþ Od<‘ñD~ÂEM’·”ó¯‡m»¨WÁ†ÞüoüýãôôV£·fŒ®÷tþãÇë^ðú€œ9;sv:ï@¬µ_¬ýbíÉm’Û$·ÉÏU¥Ú¢ËÏì”ÒèÌÇN›<µ0ro~¶Á«{’Ÿ}Ž.8Rg üàbãë_wøºC¥ŒJ•2ò˜Û²r•ÔUOMº±Ùw‰Š¾ñ¶‡f.*•þÁû3GÌl4¨r­ŠWžþ_yË n˜pÄ]/ízi×KÖ˜¸j⪉«òP/HëÔæîk›6ñ›9½}ãmƒ½ ö0?ǵ³$– ~p10§ÒœJs*åªö®ôÍé~²uü¨ÔÝa‹¾yo'ßûø ¾ÌûèÊ®+»®ìºoº}Óí›nÖ”L<øãÁïitO£{ý‡;}g\öÕõ›š6Q~΀°E߸1¸ñˆòs{ž÷Ñ3̆U= üàP{%ó•ÌW2óŽÏM¹oTÝ–‡o_44}KñJ¿¹·;jf¥´ÚÚõíöm«ÿ‡E]–²,eYе%ÇžÞ{zïéÝ.µ]j»Ô¼¯ ‡¬7~Hq‰¾qŸ<|`½ñCò>Ò`6‚™±B€¢$„ŸR#WŒ\1rEÞàós'ü­Ù Å7úÆÛ¾9þñ­ «ä}ì‹«-®¶¸šuѶûÆÝ7î¾1u@ê€Ôq?ÿ m딫5òb‹y_÷ô›{QptñŽ=˜™`–¬ hÀá'‡ÎøôñéãÓã}»?­Fƒ?W¼ø‡sîk5#zé7÷võ “f¦•Ê;/_»|íòµÖ DÏþ û+ì¯ÐbF‹-fÄ»ÔúS—/XÞ¼IæÓ‹gD)ýþÛ¶IæÓ‹gGo‚Y fÌÊ › ~pˆÌzoÖ{³Þ‹÷-þëv\öJÕû,èŸ~r´Óoîí¿zÎ|æâwòÎÀ_ÞøòÆ—­ˆˆæ9ÍsšwÒyH縃œrfï5OÖlô³ Ž:Þœ3ÌžE üàPør×—»¾ÜïÛúN¸üoç4>ô‡…SÒ'–œô›{»õäÙuZ~o~*N­8µâÔÝvØ}ÀZ‚ânhå¡•‡VŽ›~7ôéütÏ’–~ÿ-oèÓùéžñæ'˜=«(<0@ø À ¶ç®=wí¹«lí²µËÖŽý†Z«õ–ŸýؤÙé5KfúͽÝ\wƈ‹{ÇËÝt;ÐM†bl~×ù]çw÷OîxÇ ƒ+”äô›{ÌF¼¹ fÒŠ ƒ ~p‚õiاaŸ†ñ¾‰¿óž¹ Z7’~soW4~íƒfÄ›±iû§íŸ¶ßº‚âeÇÜswÌ÷¾®qj‡[º? úÆnƒ™‰7oÁ¬Z]@Á€€Â0}òôÉÓ'ßmôÚ ×½–Ý6»mv[3slà„Y´yÑæE›ã}ãþ‹-o4N»[î·}íËÁ/Ö.ÞìeïÍÞ›½×ƒâ¢Çºëz¬‹}/—½vƒ§¦ÍsÒÂwåÞØm03Á,ÅÎ^0«VP°` `j¨ý¡öñŠ|là8˜z0õ`j¹›ÊÝTî¦Ø¥<æöKÕ›,ñþ‡möâ÷Û´úsùKÇW=³Bïw׸»ÆYi~Ÿ>ÿéóŸ>ï¯ö&÷=3lf¡7ïm0Kñæ0˜a+ ((0P°rßû›718ÿàxµÿ«ý_í»pëßSkßY+?¾hBúN‰7?Û-ëfÿºå»ñ.k¶¬Ù²f‹õ!•’“’“’Ü7¹orß#<ñ·þí›õwâ©Àõoß4è³3̶E?(XAÐ ânR¾‰Áy€‹ÔÞÙ{gïo±®n;);ítY÷h·™=\RïÛØùìpR‡“:œdÕA8Í1wÆÜ±ïÜ3ôœ…iÆd,ºFÖ=ŠƒÞ0&cÑ5ÁìÅÎj0ÛVpü` ðˆÁE.RkO¬=±vìÒìúaûkª7rm{àì{ÒkÇ{Û¯Û¸nãºÖ„Ȳœe9Ë’ON>9ùäØ÷lƒ&gîtmÌÞî>9ùä䓃™·ã!EC >p9<åð”ÃSÊ6-Û´lÓØåøÍÛÿ,×¢§”{<ÛÉ oÙ`[ìÜÞÝçî>w÷±!w–®Ý?vžß¹ø‹ß¹Ø:„ÄÚ3vÏØ=cãýœöäè{ž(ßÀó€Ÿ}ïÂãÍsp¬FàØÀ@xˆÁñÀ…îÀÈ#ŒŒ·È¾¶°nú?ÂPçþÏȆ›wó§ÅÕG§T¾àú³Î(ÿÈ™SÊî¿`põ†åžoפÅ÷•7<Þºwó:U÷ ž_û’Na ÀÊÿó–ÇÎó•ó®œwå<«k~“ùMæ7‰}‡žñµ5z]†tÚlñ¨¤ùÿº Æõ{ï¯Tÿ¢?¶¼¹Ü€sêÕ¨Qv}¹ùgõ,rͺõî©ò}ó¯¯èUÿÕþå_|#Ì8˜ÕØÙ΂Õ'187¸Ð­Ú³jϪ=±Kêé7?tAÍP¤Ó2‹Om“Ô{K§Ìu’ŽÒ'õÆ—N]¢ üÞâmU¯Ü¸²¯ÇîíÞ­{·îÝjMB¢ÜÙóΞwöŒ}o6jùØ ovIl.½¨Ïr¯W?³tµ]p}þ¯U;µ¾«}ûæI™§.>5l8˜ÕØ}΂Õ?1X.tÓ†' ?Â2Zrû¸»RG‡!š=ó¯­óaî}KnZcÙ¯þ÷Mý~ŸråÒsÆÔôÁÁv¹s~í©•›Uì|zéÜ¿ÿ‡Y¿lõux2ð#Ï÷úKíËcç|eÆÊŒ•Ö$$@«œV9­â~øóc*,\ž°LþfLÿEí+¬®»±Ñ²ŸwhdÙNK?çÓ¶'v¼(ù¹ž•Iºð?üJ‹zëÛâÙ/ªÖmµîªáIÍ“Æ&-É}¡û èÆTX¸<ÞœgÄÂŽ– /%3 À…®u™ÖeZ—‰]:?Uøð’ÖŸ%6”î½oþ¿.yöœU~sFÅ`¯.œš<°üÓAÐý9Äü©à×sÿ©x¿3QÛOvŒÏL=Â]×£J*=ª´5 EoÛömÛ·m}Wþö¤ͮ؜ØPšÒõîåCÿí¾äänw<:øêà¿ÆÆÝàWÎõ§Ã·þüIgÞzî¯k~΂f8væƒ3beGKН’ƒàBthé¡¥‡–Æ.”³WW¸ô´wÂJßé9lØEWçÞ··WíÙpu~‚nî?uÉÜ&—½7<xgêÜ_µ®;óÇtÓqŒ• EoÉ)KNYrJì»2ùÂÛ³=–ØDZãšk.í1*ØŸ3æWù¶zÃü|¤sãÌ¡ÙÿÜ÷ÿoþý߻Àƒ>§Pœ²ä”%§X™ÀÑ€€hˆv € Ñi?¤ý»8n›Ô¡ë¹åÂJ_lÕÿƒ”÷ŽíÜ—´×.õ¹Ÿ“öuå7Ÿ6*D÷ÿ~q³6•ð¾¼)馤›¬L(z™½2{eöŠ}S^¸mðí'6‘žs¸í°Ž;Ïè^ùÃsfUéœVó²&ùI¹Mf<Ûé›c(l8˜áØý Έ• -ˆžèÅ`¸­Yºféš#Üüâ¹ý'¦LC(úñS5/,Ó£ë5ï{ÿ]§\Áysòqsß=Ü`YÒåÏ ÛA_üþE5Î>Ò“/"×gGŸ}vľSŸýÞûáüðä¼·µÚwYõÀg¹ïgf8væƒ3beGK¢-1X.Dýê£_}ô«ØEðÞ Ïߨ¨zxBiì;ççw^•¾ô·?ßü×OþR¡Æ a ÀwV»îîó€! ®H¿"ýŠôØ÷cZÕ—*-hæÐÛ¨Óc?¼¹¬áŠ;_X¯Ê=Ÿé\­Îïk\ûf½ëÖ}ÞÎÌpìÌgÄÊŽ– ”Å7 À…hjë©­§¶Ž=ñŸzefӧÀóÞª³pxú¸¿]}ó¡ ®Ž¥bò5O»uÓôé½/®¶½}ü±Þ÷Ô©'CÔÞV{[ímGøÀäRc¾]ôU˜p¹¯ª]}þèØ=/;ðŒÌr»’KßÞíkB}¿r©1ß.ú*vÿƒ3beGKJ¦âƒ€“J°/7Nþ mcñJ¿Á[ָɳçGqæ+å•}"ë—/Ìj´,l÷þþü„ãE¯òUbÍS3‡-~·8àÜ~·íÏ^˜Ò£HͶø]+ Q¦Ož>yúd8âÖ]ôV§æãÃ}×´{³\Ú_Ñ뜹÷¿Ñsu–?üI½ñ¥S¿Îý{áCÝWÎe¬¸<ñ7í£;~ü~úôé½ëMè»lذJõ/úcË›sKƒúÿô¥áÜ+ Qö¿±ÿýoÀæ;€÷_·àÆKrí9´vR¹igü­ìŸƒ}®zj¥a§¿ñÔI}Rêìß×ý£ñ—, ~=ÌÛÀ~á¿8ï¤Z¹m“ÙéKÿíˆÜ @.%èày¥¢?íûhßGûÆžæp>ø«æo.k^ÿ©ÉË?ìçé+NÿEÒ÷Îê–]³Æ;²~Ùêëà׋ËÇVÇ{pIX{†¶qîîswŸ»;öýþgçÿÎÚ3R+ÿ®êÏ?ÞþggÄÊ4 ãhGìõ¤ÿÌþ3ûÏ43†a†a†a†aD{Ìx`Æ3èþ‹î¿èþ‹ü§ßà÷— g—ýê£_}ô«Ø“ýÞ Ïߨ¨zxBéúS3Z´ªuÛ¹oœùË`ƒÿ½à±Ñ£›ü#ø=Å+ýÛ;«]w÷yÅο• EïŠô+Ò¯H}?¦U}©Ò‚–‰Š£©£‡_ôÞi¹÷§ö®[÷=xWþ¿Bö5×.ø³§-(?æì³Ã€ƒŽùàŒX™ÀñŠÏØ6cÛŒmcf€è Âí ×½6èµüGßà÷}ôÍM.Dk–®Yºfiì‰ñÜþS¦‡'”6û}ý‰ËûvÉÜ&—½w{•÷–¶jV£oîíÅï_Tãì$ ώ>;úìˆ}?¦.>û½÷Ãsï9g¦¿Óá’üÿÙÚÿç–*ý?þìÙ¯6|¡Eݰà`†cg>8#V&p´` ÚŠoôÍM.D?¤ýöCZì"¸mR‡®ç– C"}¿ÚˆVº{UöĤ%ImÖU}ë²æ£‹{úÍùýâfm*áýwSÒMI7Y™Pô2{eöÊìû¦¼pÛàÛ'ONYö£ÓÒ ðã˜ëóþSM®{¦ÑŒïÏø?•FWmüÑt˜Öý›°à`†cg>8#V&p´` z¢}s€ Ñ¡¥‡–:ÂÀg¯®péiï„!”Þ2åOeªwÿù¾·U~sFÅà?ÿä§×}ãh·á À;Sçþªu­Ø™ï8¦ã˜Žc¬L(zKNYrÊ’Sbß•ÉÞž=è±Ä&Ò‹–=ÚäË®/7ÿ¬ž¹÷­ú'øýLyö¯]Ÿª|Ôs½*÷T|¦sk®¹´Ç¨Üø<ý7ø@é°=¥8˜áØ™Έ• -ˆ†èEßÜàB׺Lë2­ËÄ.‘Ÿ*|xIëÏü!ɇ.êxv•¤žüÉŽñ™©{b÷pTéQ¥G•¶&¡èmÛ¾mû¶í±ïÊßžÔ¢Ù›ÃJ~Žï åËTìœÿë^…*uF6üú¢òƒwLœ¶{ƒm0ñ{œ+8Z0P|E;úæ&ºáIÓ†a¹,¹}Ü]©£J«žZiØéoD/?ò|¯¿Ô¾w–®Ý?vžß¹ø‹ß¹Ø:„ÄÚ3vÏØ=cã~ô“£ï]x¢p[þüäè{žožƒ³`5ÇFÂCôG."Ë/¼lpì"»jC맪d ·Ç¿Ý7â£/ù<Þ›ù§ï~úî§ï¬CƒîŸuÿ¬ûg±ïÓúûýväíòíñoƒ™Œá`æ­@àxÀ@b‰¾ù!‘ÃSO9<¥lÓ²MË6]vß¼ýÏr-zŠ¸Ç³¼ðñ– ¶ÅÎíÝ}îîsw+Âce•uVÖ‰}·žUºÆoêÜÑ<5sØâY"î1nS3‡-žÌdì 3oÇCŠžè{´à"5±öÄÚkÇ.Á®¶¿¦z÷ضÎ^°'½v¼·÷ºë6®ÛhíAˆ,ËY–³,ùää““OŽ}Ï6Øù`ræ)÷ضÁìÅÎj0ÛÁÌ[€Àñ€€¢!ú¸Hí½wöÞÙñåê¶“²ÓNtv›ÙóÁ%õ¾Ï'u8©ÃIV„ÓÜsgÌûÎ=ãŽÊKÏY˜¶aLÆ¢kÝ£xîï†1‹® f/vVƒÙ¶ê€ã'…Gô-(p¼ÚÿÕþ¯ö?Âó/冀ﬕ‡_4!}§¬›Ÿí–u³ÝòÝxoø5[ÖlY³ÅzƒJÉIÉIIî›Ü7¹ïîX­û¦AýeÝüoƒ;ÂLöMî›Ü7˜m‹8~0P°Dß 'ÀÁÔƒ©SËÝTî¦r7Å.Ù1·?XªÞdq÷?l³¿ß¦ÕŸË_:¾jåØ9¼kÜ]ãîg¥Aø}úü§Ïú|¼¿Â›Ü÷̰™]Äݼ·Á,Å›Ã`†­4  À@Áš>yúäé“Eß‚%'̢͋6/Úo±åÆiw ½ñ¶¯}9øÅúÏÅ›½ì½Ù{³÷ZcP\ôX×c]u±ïåò¯×nÐàÔ´ÙcNZø®Ð{„}ž=椅ï³;{Á¬Z]@Á€€‚u¨ý¡ö‡Ú‹¾KN°> û4ìÓ0Þ²ÞyÏÜ­ɽ¹·+¿öA³ âÍØ´ýÓöOÛo]Añ²c;æÆ{_×8µÃ-Ý{c·ÁÌÄ›·`V­. ` À@aÈ}°è{üàÛsמ»öÜU¶vÙÚekÇ~C­ÕúFËÏ~ì@Ò‚ìôšÒïæº3F\Ü;^êèv Ûn¬((¾æwßu~×xïñäŽwÜ0¸‚èûó;ÞqÃà ñæ*˜I+ ( 0@ø À¡ðå®/w}¹+Þ·ò;pùßÎi|è §¤O,™éwëɳë´ü0ÞüTœZqjÅ©»ì>°[†bohå¡•‡VŽ÷~OÙЧóÓ=Krú f Þü³g…G?8Df½7ë½YïÅû¶þu;.{¥êýôO?¹ä¤ßõœùÌÅïäýÐï/o|yãËÖDDóœæ9Í;é<¤ó¸øÌÞkž¬[âÒ×>}|z¼oñ§ÕhðçŠÿÐbÎ}­fD;ý®>aÒÌ´Ry§ßåk—¯]¾ÖšèÙ_a…ýZÌh1£ÅŒxW€ZêòÅË›7É|zñŒÈ¦ß&™O/ži¼yf)˜1+(l0@ø À!5rÅÈ#Wä???wÂߚݽôûæøÇ·6¬’÷±/®¶¸ÚâjÖ DÛîw߸ûÆÔ©RÄ»TmÛ:åªC͆¼ØbÞ—QJ¿ÁGïØƒ™ fÉjІ ~p¨½’ùJæ+™y§Ðç¦Ü7ªnË÷/š¾¥øFß5³RZmíúvû¶ÕSò>Þe)ËR–¥XPrìé½§÷žÞíRÛ¥¶KÍûúÐpøÀzã‡÷ôEÞGÌF03VP”`€ð€‹9•æTšS)ïPµw¥oNÿð“­ãG¥î.^éwò½ŸÐà˼®ìº²ëÊ®û¦Û7ݾéf=@Étðǃ?üñžF÷4º§QÞWŒj3.ûêúMM(?g@q‰¾ÁÞ{ž÷Ñ3̆U= üàbãë_wøºC¥ŒJ•2òΘ۲r•ÔUOMº±Ùwa˽‡f.*•þÁû3GÌl4¨r­ŠWžþ_yË n˜pÄ]/ízi×KÖ˜¸j⪉«’òá‚´Nmî¾¶iÿ™Ó;tÑ·áˆßÌéìa~Ž%8jgH, üàbf߆}ömÈx"㉌'ò .j’¼¥ü›ï|=lÛE½}üýãôôV£·fŒ®÷tR¾½>àõ¯ÈÙ™³3g§óÄZûÅÚ/Ö~‘Ü&¹Mr›ü\Uª-ºüÌN)Î|ì´ÉS}ƒWö$?û]p¤Î80@ø ÀÅØŠ~+ú­èW«A­µä?¬^·ä²G«þ8ýõgî¸pÚs&µú¨`sïú‡§ÖlQsüÀ‡ýnd³öõߪ˜ÿ]KêœÑ9£sÆ÷¿ŸøýDçÈC™‡2efž—y^æyIG©FR‡Ûºÿ½á³Ïß¿PžæûìÀóÇ÷^åh÷-8¢àèœe <`€ð€‹½Ãý÷?ÜÚ}Óî›v_ÒqhQºáòŠoÜ×î¦Ñçµv@©zÿùÕÓ'^xEÖûÿÝ®Ñ|±oã‘ï×ѶQ·7§=¾¯aµç^¸ïñºÍnÿäÏ«Ï]Tguag>ul¯›¶'mOÚžå'.?qù‰Î&p<²Êþ)û§ŒªU3ªÏõ°òwMg´ít~«këöº>¹ù¥M®7ûÞ2Ã6Ö¿¦_…‘7ÛàW‚ÿüÎàOÏë{…³ „“ ~p¤ÜtpÓÁM³ªÌª2«JJ÷”î)Ý“BéÚ×ö¸¶ÇŠ+Z¬h‘s0ç`ÎAç(XÛ«o¯¾½úÐg‡>;ôÙ¤ ö0Ø[g ? üàˆ[_j}©õ¥­óhGë$*oÔíR·KÝ.ãÆ7nܶzÛêm«ç¼Eéð-‡o9|ËüÙógÏŸÝyh硇&êz¼z°'Á^9;@ñ"„Ÿ\âlÎÚœµ9ë­Õo­~ku¡=†öZaw…Ýv@è-U·TÝRý6õÛÔoSÖ½Y÷fÝ›=){Rö$s„ÍÁ]wܵ2keÖʬN{á´Nk÷L»gÚ=SP¡7øjÁW^%xE3@a€ùœµà¬gÍë>¯û¼î‹n[tÛ¢ÛÌ PÒlY°eÁ–ó?øßüŠ™ l`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆ€"Bˆ "`€ˆøòpë¤ñÕ¥Ú%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/tap.png000066400000000000000000001337651431412030200241740ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝu|×âÿ(ZZ$hwN $!Hàî )”Å¥-wip§Á¡ìxp)înÅ$'ì﹟Ç/÷»ìÞ…l’ÝÉë9Ç<9sæìÌì¼sÎIfB2ªŒ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ìÐûCッ^7¼îÁ +¬@ðe>¬ø°âÊ3Ì<03<2<2<ò\ás…Ϧfø2×Ó\Os=ÍþÀýûøð?àÿºþëú¯ëS3FB ÿÃÓ™Og>)N§‹Ó‡VtXÑâ)‹§,ž2CœåZ”kQ®E}3öÍØ7ãöˆíÛ#dyåAê`l7gßœ}söº‘ëF®ùÀü0 ƒƒøÈ>²<)xRð¤àÃ-·8Ü"zdôÈè‘Ô9À¨Þ¤|“òMÊ£NŒ:1jº÷tïéÞÕ»UïV½›£î­­CZ‡´Y1dÅC®ö¿ÚÿjóqóqóqjÀ™Ày¼àñ‚Ç B … -Tt^ÑyEçeH$ÓöLÛ3mÏí”·SÞNÉy¸®ó Î/8¿`XñaŇO¬»jõ)Õ§TŸ²-ù¶äÛ’Go‰Þ½…ópEoýßú¿õÿÛïo¿¿ýöoØ¿aÿĺ·ö;ÕïT¿S'Ëž,{²,ç”YÞ%ÃS„§OAÍ qHÚn™o™o,w²ÜÉrÍ^7{Ýìu§T¡w…Þz‹ÓÄiâ´˜å1Ëc–sêÎéÍÄ7ßLÜXec•U²ÜÊr+Ë-ç¼·öOÙ?eÿ”7‚nÝ⬜Ù=ížvO™sdΑ938±Ð•¡+CWF?ˆ~ý€³H:€áœ€$Q'ÆŸb¼w w wà—ý¸-Õ1çžlùûN){£`©yRuo¯Qa}ê,_OœÖ$÷HmyÓ§•VÈ ›÷~±£xƒ ,Qj,uyðòŠÕ ûù.γ&Gž/Û¯Û*·Un«ö†ï ßnþÎüù;Î& q½[ünñ»ÅË'-Ÿ´|R\^× ñ}æñõè{”+ê³bþ¯;ËßgÖÁ ÿ(õí«”S}½$M¥¦!ó^z§Ü4oʤr}gL¸¨¤{·"M®æÏw›ÇÕÌßÙ~Ûll³±ÍÆ«o¬¾±š³ p÷/ß¿|ÿrȺu!ë¾ìî–1WÖßÜ»änP¼aŽ"¥Ûç·äɾ&'/óÝTóò—ýqDðâCeý†Yd.ÝwpæÙ¡%Ö÷*ÿ[ãB[–éõk®WU;—{úœsÌ9ð:õëÔ¯Ss6ÆF çD yìA²ÉZoi½¥õû¸ÜÏ3ûÚ¶u‚ËV½]­c˪˜Í!!µj9jýÔ³‹\ÝwGûþJµ|Vl`žLö—­Ìã2Ë<¾PàB 8¿€„§œQÎ(g>÷¥pïÔ­ü ,“ë.Œò¾õV9ð°æ5³ùèÑZµµ¾´bóA¿Åów +㵫ðÅ|³|Æð˜ÃC†‡ ‰ŽŽæüÒ›ˆ7o"~¯ñ{ßk|FÐë™uŠ{¯"³:4ýy{…÷ço¨èï¿|ùÑ£ŽZûýZãÈ7åÒê°¬qþ^ Òwüûsïû;Gíµs”ù´ù´ù4g`<ÀpNÀŒn·y·y÷Ú´kÓ®MkÿÔ•Ûk§)Ó;&wÏV¡Ž{í_ïšÕЭÂ_¥}r¥ÉÖÜž2OÌ61ÛÄlï¾oø¾!§"§EN‹œÖ¥J—*]ªØs‡jäUm€g³ƒAö©<رA¯ýëȲ[õ;lü9O‰ö?¨ª‡êÁÄ·)N¤8‘Âþ;T¡€–É{Õ¬¼wv×½}÷Ú¿.h܉Õ-rUµd}»þ¬Á민~´éѦG›8ã#!†s"`XQí£ÚGµoѧEŸ}lÿ-P7Û‚Ì+Ô ¦?Vjñ±sÏ&Vèkm}fyë;¾uÚL•ëÐÿxðM¡o }sûÖí[·oÑŽu|áñ…ÇÚó’7¤T‹£ÊÝöØÑ«ê„Ä }­­ß^<ð¾æíÍy§¼,7ÍžcbtŠÑ)>ôûÐïC?ÚÀaüÌ~f¿™Ëg.Ÿ¹ÜžûQñ˜žÙÆÎóí½øvx—Ä }­­+o™]u¯Úu³çXäCò!ùM` ÀpNÀ èÚÐkC¯ µçgçöòõO–âlq¯íõ‘,-Zø¸gû˜)¥ÛÛG>9|rødÚ îV]]uuÕUÛ÷•:ßÒ¾¥}K?Ûüló³Í´@\¼ªúªê«ªÍK4/Ѽ„í»Oám–ÿé÷ýÒ«ž:[èk5 þzf±]Ó=øì®ífûèf™f™f™ÌWÍWÍWi×E çD ÀPŽ•:VêX©ÿ1ïà“²N½ÖMª1Àµ¢ßØë˜ ž=7LŸVuJ‰ë¶w³ïfß;´ Àg»n¾n¾>1ÓÄLÿÇüô[‚~¿V„¾ÖÖ÷vì®ТF¥JÙrþiûxï<¾óøÎcàsEdŽÈ‘¹`®‚¹ æ²v—É2(¯[ÁÞã§öûÅUB_kë2¹‡Ôœ÷³í»êOA?ýI ¸"`8'`±øþáû‡Ûþa¹³fƒ¹ººnèkmýÏÉV¿Téú?f5N»2íÊ´´€]6˜7˜7 í6´ÛÐnÖî,ÅÖ¸™5ÓÝ?v5 ÈäêÑï­#Ž µªÏy4$…WfÛ÷Ö›Mn6¹Ù„ư‡>÷íÿ˜Ð'G‹I!ký®‡þ|¤–«G¿±×>Sæ¾4‰ÙÏy]öÞoíØ;oî¼¹óæ˜á1Ãc†ÓZ®…Ή€Ë;>ôøÐãÿcÀç+Ú…ùE/ú½ŽÓeBu÷r}<ª¸§µVçmœ·qm`ÛØ´cÓŽµz7é6½iÉü…ß.8p¨æYCE¿kåÉbŸJ¶Ÿ1îﺿëþ.Ú ÀšçÙžg{ž-ã3î¶v7)ÕvÀ_ÓŒúZ®ýöþùáðæ3oïÚÇZ=ôœÜsrÏÉf³¿ÙŸ–pÀpNÀ\ØJ7*ݨdí§cö-™Vgô}t¶óÄj£ŒýÆ^¿Ù¼µfh“vE:{ž²V3jYµ¬Z–ö°´$í’´K¬F¿c[÷Ü^t¹íÑ ZyýÆ^Ÿ“6¾[«“ÌZf-³öÂã…Ç Ú ¶·«Þ®z»ª|—ò]Êw±v)7cô«ÐŒýZ®‹ží\wÈIku2þñŒÿƒöpÀpNÀ\Rtè:Ñu¬ý\tÏÔ0cêgµº–ª>:éD¿±×ïOõ¸ؼiá"›<ÍÖj鯽÷nÜ£-tÊ1å˜rÌÚ]c\Ç^uŠy$Ð×r}yÝ–9~ç­ÕOƒ~ ú5è÷qñÇÅÓ–æææ!cCƆŒµvï(?ü×k«<“Zô{]¬G׬Ãó[«Ÿ¿šýÕì¯f4%€ó#†s"àj^š_š_¶nÜ>ØÚŇ;{Wk4£ßØë·%ƒoÔ4yo÷<ýkËZòøèñÑããÛýo÷¿ÝO³€¤ì¡ÛC·‡nÖîªý¶ý§àójULʰ¾>]dmD•ÇÖêjf™ufÖ¡EÖe_—}]vk÷‹²cFü¹$CRŽ~c¯ —hýïɬÕÕÕýW÷_å+À©Ã9p1[|¶ølñ±öãðâÔ¶{üÚýÆ^?«ÙÕ«ú(k56ªû¨î£ºÓ® ‰ªm®m®]cA5XÞ#ü•››£é‡>‡Ì¿ýÆ^ï©2{UÅôÖî­gÜϸŸq§q@Òt«×­^·zY»G”XÞ+Ço¥}ÿkyý£<ö šjYcù²äË’/Ëûˆ÷ï#h]çDì(»¶ìÚ²k‹^‡ÖMX7aݳ:Ïê<ãϬ¿0—ñ¤Ô“ROJYû!6¡Þ©òMˆ{­­ÏŒh}Þ×ÛZíª|ªò©Ê´1Hj6\ÝpuÃUkw‡']Lª]$îµ¶7¶W×b-ë-{úìé³§/¼Þ ´1HBüÌ~f¿*«<þÔXy+×*Òâ q¯µµoþE5_kÏ$³ƒgϦ‰œpÜÅ4iÓÔÚ“að—!à2ºÿÚý×î¿ZÞº4öÚšo ¯=ëù«ªOóÚfY‡ù ä/¿@Ì‘˜#1Ghi<_ó|Íó5Ö~\©É×­T“ˆ×öúýÄCõkäûÚÓ#snË:\òý’ï—|OK€¤cÛím··Ý¶voõ-»ØKJÐk{]aÁ„Ö­²V‡÷VÝ[uo- àl€ã.vß_ÛƒíG ÀœÏ{>ïù¼Ö.úÏþêÚ²ú<Â]{Ö1=»®+ØÛ=eæ;ŸèE,,Y÷HF.¹|ärË{Ap³fäŸF¸kÿúüÖÃ|#­=¥üÑê°Ï LKªÝ%ÖýÜõ/Ù:m.Üê?G«O¨>¡:­Œ-4$4$4Äò.à™×7¤n5ÝϺîâAÚykÏ*W^yxå!­à<€‹0ØQ€8µK—<.yX^ÐÝFfX¡Ë‡Èžµçè~Ùºõ±â…òŒ¶¬ÛmÇ·ßvœ¶F5zØèa£‡}bv½aƒo—Tˆr¿lý´„p©zUk?D£ÖD­‰ZCÛãy×ç]Ÿw}¬]ÿ+ý:}ÚŽáº_¶öÊðcè”–µÚéy§çžÓö΃8þÇ0§fyß]²a½ § qã²¾Z®}ÿÒ–u›û]îw¹ß™g™g™gÑÀH^Ö{Yïe=k?¢½ÕÙ5–åÆe=¾`ïMÅ~³¬ÛÐT¡©B h÷–Ý[vb¾º<k¾l^‡7.k¿–ËÊeí¹åqŠÇ)óbà€aðç"ढÆE‹gu˜â“=.6'Äûºæ•ü{s~´¬á‹i/¦½˜–vFò×Ì¿fþ5ÓòšÿÛƒÞ#Š &¾ûúÑÔ})ªõµöôòñÅÇ_ÐÀH*œ«p®Â9Ëk¾÷È©­ÂZâÆ}]\îÑjÌŸ–5õŸb-v;10ï?u’·®Xrnß\“2Tøê·ßÖT-=|pÕÙóxU¿Þd^ÿ +2‹},N7ôß w(³,ëÜ?Ê?Ê?Š6 H\ÀÎ/i†ÁÀœÎ¬!³†ÌbyÁ=û²MßiΗ>ìÕ9YµëûÕ-Yv÷˜·>¹ŠÎ.{Ó#u¶§Vç%rú8²_טê,KÞ$U“TMRÑ&À…µ7·7··v‡úxéȽZ)¹¿ìýÿÖœ7Ò3mæÿ˜z{Éqî3õ@÷ÿî¤ÿï§ôÿûSÖþeb­×÷ž”®ì®O¼X¾.| \×ÅÔS_Lmy…/Ò ý‹7(-ÕmÀééÿõGÉ%ƒûL™Ø\ÿ-Ã]ý¿\ÚìcMÿ™Ã¸GuΠ3çÎu5Ï Ëšð>à=#W °kI:a00§t+èVÐ-Ë‹ìËãÝ—Öxã q銋µö–ñ±ÿöàü°ùdH«ZU¬–?³9³93-\QÔ·QßF}kymo»(¨Kž!(ÝÛwΜŠÍc—mÛ…é}Ë_°'Ðý©šJå œoœ'¾:)ì{ÿOÌV8-bZÄ´Z&¸®õëׯ_¿Þò _îö˜wËÿJ܈´PË–µ{-ÕË“y¿çƒüåíÒ¹ÒòéÏv¼ý¿Nµÿo`g € Üj²¥[˜eÍßûûÞß÷þ¦e °ë2vL Àn™ÿy|7ä‡ZΗžÝݦžïè©«î.ñÎrí’°9$¤V­vóJ”Îû‰Y¬¢sGçŽÎMËWt)Ç¥—rX^Ûgq©Ô0gJ—T©–¾l0çcUW6ð™«*g[÷û—:O?àWÃk~¢æ›ômÒ·I_Z&¸®m¶ØÆò ïÓan°)UâF¤y?Ö™Ó:*sˆ‡–wŸç~Eƒ*ÛåVÞ=»ýÞ®Ÿ`ÙÉàR§–˜Yܲœû•ýÊ~…– H,ÀÆ`¼0˜€ Ü2>/<Ì3ÐUbT× €g†T)dYþ[—n]ºu‰– ®h_Õ}U÷UýÄÏÑFKÝ+q† tû¡E+¤ëÕ­¥P`hÿoÛ)(ÙâÆî=\îT‰4îœh è~GÛÖ*hYóYsgÍ57-\—ŒŒŒåޯݲó‡Ê8çàɶ×Åšv9?ìdì~ÃÎWœ8¹É¦þ–5¿Âm…Û 7Z& ±1Â``.pË>ºRÆ"- €ã{½#oƒ"òY–ÿ¸v\;®Ñ2À-s[æ¶ÌÍòÚ~-cØÿ.Î3`²åÀÎöüËærà‰ÜÿéüóñŽÙ -t¶™€ËyŸ’Íü©g€q~±þ'.­¼|ÖÑ=Îôz·ÿýù_§ÊŸµz\iÏA9fý¯DÝBmþŠ}Å£{¼Ûß9`Ÿæsëí»mYócŽi8¦!-à<ÏÀFâºa00¸eΟS}¢×àø^ÎÚüUåë–å7U6U6U¦e€+ÿaü‡ñ,¯íNï«\m¤sÀ¶×1%Ï \9¼yט"õõcÉÑ˽hÆwwíú) —³•¶eƒÚ_ç~F ÆþÅšµhþºE.;Oß,Wó5/ü§eùÝÆe^ž%ºdšÞÁã¯8sù}k-,·§Ýžv{JË8ϳ°Q¹VœÌy¾`ÍÚ¯ëÔ.[œ8Þç6öjãîÛ‰öIAä8ypd®ýê3þÖ8YéœÊ^¸¯Éâí6MN¹pŸ÷)gëû«¯{¥n9°@7Ú[ŽŽ¥§TŽrÝ8¶2ÃN.Üçœå÷Ë·,ÿÁ ÚpE»¶ìÚ²k 0ü—ME‚J—kAßë ÇÚþäW†öIÁ‹Ùj¦Cœ?ô½Òà¯,~ï;TªÿcÞѱËï=×ëƒûÇã¥W¥ñ9úw[g,ÿuíV¼C{cËy¸ÂWUw¹ÊŒ¿~ãÿl}èR¥33íú©ôúÁ§æÌÉU¶b£j]cQ¹²£þYvÇéJÞyÙÃCÀÀ%½Ûünó»ÍÀð_èL`€c9sàwmvªiž8½ïôâ²ìÌ<Ü­•^æ<ésÍÉ´yFê¥J¼{r`UÍÃÿwŸuÞ›À¸J`kký(<êT6žˆ}\ôp”$ÔX………År±¼82pâÎ<³ÔÌR3KÑ2YXXX\qé9¶çØžc-¯íÎ9ðUÿ¿Nù—­°½ä8÷™z93ÉôU†G£³?+Zèy¤œ²ú ç}환–ÉÂÂÂb¤_¬®2°=1°.³G™Ëò׎kÇ5Z&¸¢enËÜ–¹Y^Û¯e âßÅy‚Ò›QÛÇT­^¬gÍYSê%Ôÿ÷Áßÿü³òxý߸Vô«¯ËyŸ’Íü©g€q~±þ'(­¼|ÖÑ=‰Žúü9¯¢1vyŠG÷x;¶¿ý[(_ç×*+èŸÍxÐ=4gNg €}šÏ­·ï¶eÍi8¦á˜†´L€ó<èa!5c zp;aÝ„uÖÙúêÿ>áCߨ€¸À-³áóÂÃ< €ã{=3$ JÉO ¨uëÒ­K·.Ñ2Àí«º¯ê¾ªŸø9Úh©{¥#ΔúÖ-»!G:½l5•ÊA9ß<õNT÷uÅÐ÷?ë~GÛÖ*ø‰^b¹³æÎš›– ®Ë?Æ?Æ?Æò ï×nÙùCeœ§oÞ¬{[Ô´ÿ³Å¿ïî9RÕ?›smù…U½œ-®8qr“Mý-k~…Û ·n´L@b!6× }c#à·Ìÿ¼ü½òC­àø[·›W¢tÞ<–åÎ;:7-\Ñ¥—r\Êaym_œ}Ä¥RÜ!(ó-¨îýŸYrÝ’g8–¡Öõ<[ƒüÿtáè×|ôh­Z¯:‡ÖüDÍ7éÛ¤o“¾´Lp]Û l3°åÞ§ÃÜ`S*ç €3,v;1°ÜôÑ/BÛÙþTå¶³¼w?Êü}®?óT×?Z¨H‹!·œ-.uz`‰™Å-k~¿²_Ù¯Ð2‰…ØŒúÆF ÀéÝ ºtËòbúòx÷¥5ÞÇËúdH«ZU¬Fï™Í™Í™i™àŠ¢¾ú6ê[Ëk{ÛEA]òüë Ai÷°féò‡ü§¯R¤gÚÌÿ Mçÿ1,“׿Ï];Ñ|Ɠ¾÷¯aYóÓ"¦EL‹ e€ëZ¿~ýúõë-¯ðåny·ü¯Dî#{jJåÍKÜnfÙŸ­oì²å?Þ°n§F¥fÿÜmFQ}¨çÒžƒrÌú¡PË–µ{-=à³>û¯> ´³ÍR\àV“-ÝÂ,kþÞß÷þ¾÷7-X€]—ñBߨ€8YCf ™5ÄòÂzöe›.¾Ó€ãcÙ¯kLõŸè¥”ªIª&©h“àÂÚ›Û›Û[ûÑòñÒ‘{µR&nPS±uNÏ â<ðúÞ“Ò•Ýõ‰ëÂ×…¯£a€ëº˜úbê‹©-¯ðE´2`‘3¥ÿ™Çw¡{º?ØÍîYbqùÝ'FnØàl}õuæÜ¹®æ™aYò÷ïÞÐ2‰…ص;ô€Ó91ñÄÄ-/²³GVK^R%Žuøéf*ýkYòÐn¡ÝB»Ñ&ÀÕu-ÓµL×2–×ùí°-qƒÒ<ésÍÉ´Ùxp³¦5ÃrW·,aÄ¢ˆE‹h“àº^|=òõHË+|-_êÂ>Ηþg0ç–-k÷Zê®ÿ¥\p¦¦9Zz4vÛš¥\Ö°l—‹,)µÇsŸƒzÛJ÷™2±¹†åé¦wÎè·Êß w(³,ëÜ?Ê?Ê?Š6 H\ÀÎ/鄾±p:/#_F¾Œ´¼àêêÞ)KNW™O7vìüåüñp¹–±¬ók×®ñ—ÔàòvîÞ¹{çnËëüºR³–íçºóì:çúÍ?Š×\cYÛnf7³›Ù|Ì|Ì|Œ6 ®Î'OŸ<–Wû*ù柕 ;[ l;ÖuÎÐ7öºÌ™aÃ6´¬í%]–tYÒ…ÖH\ÀÎ)i†¾±pR5rÖÈY#ç'ú*ÕîT> ̵b`g^¿[Ø#80µ^ÌИ¡1Ciàê"D,ˆX`y¯P±d^÷AD¶Ž]ﺬ}åŸø™vBÚ ii` +Ò­H·â¿¤¼.þä>­¼3‡©®¸öÌçÛ«n ËÚ¾éuÓ릭¸€¡olÀœTØô°éaÓ?1ôýjEJ^&¸uÔZÑôf¥E–õ¾øøâã Ú!I…sÎU8gyÍ÷9µUXKâÛ¸¯‹Ë=ZùÓ²†çe—u^VZ À'V¼PžÑ–u»íø¶ãÛŽÓöÀ¨F=lô°OL²0lðí’ !î—­Ÿ–.U¯jígÔš¨5Qkh{`<ïú¼ëó®µë¥_§OÛ1œ(÷ËÖ^~ ’²V;=ïô¼ÓsÚÀyÇB߸ àꌨ3¢ÎËKù†¬u{—½F”û¹ëSÕZ'¯²ËêðÚYßg}ÏPZ`X|øãíݞ,0-©v—@÷s׿dë´¹p«Oüì¬>¡ú„ê´:0¶ÐÐÐË»€g^ߺՈr?wí[wñ í¼µg•+¯<¼òVpÀŽEèë(À\Àù¼çóžÏkíâþ쯮-«Ï#Öµgس{ຂ½ÝSf¾cY“aÉÂ’…q_€$aäò‘ËG.·¼7köGþiºö¯ÏoÝ8Ì7ÒÚSÊóTÏS=gðg0¸7ßt~ÓÙÚ½ œÛ¨îËÚëÚ¿.”­Å¨E–5ùÕ®üp…öp6ÀqGèxÑÀetÿµû¯Ýµ¼Ðwiìµ5ßÂ]{ÖóWUŸæµÍ²óÈ_ ˜#1GbŽÐÒ )x¾æùšçk¬ýˆR“-®[©&á®íõû‰‡êÖÈ÷µ§GæÜ–u¸äû%ß/ùž–IǶÛÛno»míÞê[v±—6”p×öºÂ‚ ?¬[e­ï­º·êÞ*ZÀÙÇÝ®-»¶ìÚBèëXÀ\Æ“ROJ=)eíÒ6¡Þ©òMˆx­­ÏŒh}Þ×ÛZíª|ªò©Ê´1Hj6\ÝpuÃU«ÃAw1 ¨v‘ ×ÚzÜØ^]‹´¬·ìé³§Ïžþ½ð^x/ÐÆ ñ3û™ýª<®ò¸ÊcË»CÞÊµŠ´8CÄkuØçü‹>j¾ÖžIfÏžL8'ซiÓ4¦)¡¯cp1[|¶ølñ±v3¸8µí¿öĽ±×Ïjvõª>ÊZê>ªû¨î´+H¢j›k›k×XPcA–÷¿Aåææhú¡Ï!sà/Ľ±×{ªÌ^U1½µ{ë÷3îgÜi\4Ýêu«×­^Öî%–÷Êñ[)âÞÿZç_^ÿhÏŸýB‚¦ZÖX¾,ù²äËò>â}ÄûZÀ9;Jì~À„¾qG ÀÕ¼4¿4¿lÜ>¸}°µÕ?vö®Ö€è÷mÉà5MÞÛ=OgÿÚ²–<>z|ôøøvÿÛýo÷Ó¬ ){èöÐí¡›µ»j¿…mÿ)¸Æ¼ûè¬Z‰~OYñ©~]º™ufÖ™ÉOS€y]öuÙ×e·v¿(;fÄŸK2ýêëÂ%Zÿûc2kuuuÿÕýWùÅ pjÀpNÀ\Rtè:Ñu¬ýDtÏÔ0cêgµº–ª>:iF¿ïOõ¸ؼiá"›<ÍÖj鯽÷nÜ£-tÊ1å˜rÌÚ]c\Ç^uŠy$åè÷òº-süÎ[«ŸýôkÐïãâ‹?.¦-ÌÍÍCƆŒ kíÞQ~ø¯×Vy&åè·X®Y‡ç·V?5û«Ù_ÍhJçG çD À…ݨt£ÒJÖ~.fß’iuFßGg;O¬6*éD¿o¶o­Ú¤]‘Ξ§¬ÕŒZV-«–¥ý,-I»$í’´Öî c[÷Ü^t¹íÑ Zy“Nô{NÚ øþm­N2k™µÌÚ /ôøÐãC3Øt¥@»0¿(cG¿cºL¨î^®Gw«/î7ÎÛ8oã<Ú À¶±iǦkõnÒmzÓ’ù ¿]pàPͳƎ~•'‹}*Ø~Ƹ¿ëþ®û»h3kžg{žíy¶Œ»3îθÛÚݤTÛM0vèë·÷χ7˜Ùx{×>Öê¡çäž“{N6û›ýÍþ´€« †s"`û‡ï¾¸íW´;k6˜[¡«ñ¢ßN¶ú¥JWÛǾ2íÊ´+ÓÒNvÙ`Þ`Þ0´ÛÐnC»Y»³[_àfÖLwÿØÕ, “¡¢ßˆ£B­ês Iá•Ùö½õf“›Mn6¡±ìñhÓ£M6Ù¾³ÊÑbRÈZ¿ë¡?©e¤è×gÊÜ—&1û9¯ËÞû­{çÍ7wÞ3Þ;›}7ûÒ6ŸíºùºùúÄL3MÌdû^³%è÷kåNºzô{oÇîÊ-jTª”-矶÷Îã;ï<¦>WDæˆÌ™ æ*˜«`.kw™,ƒòºüè=~jÿ°_\=ú-“{HÍy?Û¾«þôSÐOA1‘1‘1‘´€+"†s"`@׆^zí ­Û^¾þÉòO\+ú=’¥E ÷l3¥t»bûèÂ'‡OŸL{Äݪ««®®ºjû¾S# ’GÎåWŸ„µõoã*¡oÌ»#O-¨7l­×EÛGç[Ú·´oég›Ÿm~¶™öˆ‹WU_U}Uµy‰æ%š—°}÷)Ü£Íò#ý¾_zõÀSW }+=³Ø®é |v×v³}t³L³L³Læ«æ«æ«´ €ë"†s"`XQí£ÚGµoѧEŸ}lÿì,P7Û‚Ì+Ô ¦?Vjñ±sÏ:[è{fyë;¾uÚL•ëÐÿ4ì›Bßúæö­Û·nߢ ëøÂã /´çO¬BJµ8Z Üm½ªNp¶Ð÷íÅïkÞÞœwÊËrÓì9–Ñ)F§âC¿ý>ô£ ÆÏìgö›¹|æò™Ëí¹é™mì<ßÞ‹o‡wqºÐwËìª{ý hÔ®s˜=Ç"’ɇhc †s"`t»Í»Í»×¦]›vmÚ v[¹½vš2½cr÷lšX¡ï®Y Ý*üUÚ'WšlÍí)óÄl³MÌö¾áû†ïrÚñ'rZä´Èi]ªt©Ò¥Š=w¨F^Õx6;ôgŸÊƒ+ôL!»U¿óÇÆŸó”Øhÿó€ê¡z¨œq@|;‘âDŠ)ì¿C h™¼WÍÊ{gwÝÛ'±Bßò‡ÆXÝ"÷WUKÖ?cO™¼nðºÁk}.dÎ8ÀH€áœ€$!’=Hö Yë-­·´ÞbÿOë€ûùrf_Û¶NpÙª·«ulYõǽO=»ÈÕ}w´oà_¡TËgÅæÉdÙÊ<.ó¸Ìã .¸P€ó HxÊåŒr&Ãg꺕_erÝ…QÞ·Þ*Ö¼æØ¸÷ÒŠÍýÏß1¬Œ×®ÂómÌÒßþ² 2<$:8:8:˜ó HHo"ÞD¼‰ø½Æï5~¯aÿ+£gÖ)ÌêÐôçíÞOœ¿¡¢cƒ^¿Bkù¦\ºQ–5Îß«AúŽî}稣vŽ2Ÿ6Ÿ6Ÿæ,Œ‡Ή@ubü‰ñ'Æ{zzfø"¥:æÜ“-ß)eo,5Oªîí5*¬O½ƒåë‰Óš¤ñ©-oú´Ò ya“ãÞ/voP¢B%JÍ¥.^^±za?ßÅyÖäÈóeûu[å¶ÊmÕÞð½á{ÃÍß™¿3ÇÙ$®w‹ß-~·xù¤å“–OÊuC|Ÿy|=úÇåŠú¬˜ÿëÎ2Åwç™u°Â?J½Eû*åT_/ISi„iȼ—Þ)7Í›2©\ßÓ.*éÞ­H“«ù3äÝæq5ó÷_¶ß6Ûll³ñÆê«o¬ælœÁýË÷/ß¿².d]Ⱥ/»»eÌ•õ7÷.¹›o˜£Héö9ä-y²ï…ÉÉË|7$Õ¼üe¼øPY¿áG™K÷œyvh‰õ½ÊÿÖ¸Pã–ezýš«AÅUÕNÅåž>çÀœs¼Ný:õëÔœM€±Ã9HÚn™o™o,w²ÜÉrÍ^7{Ýìu§T¡w…Þz‹ÓÄiâ´˜å1Ëc–sêÎéÍÄ7ßLÜXec•U²ÜÊr+Ë-ç¼·öOÙ?eÿ”7‚nÝ⬜Ù=ížvO™sdΑ938±Ð•¡+CWF?ˆ~ý€³H:€áœ€à¿<^ðxÁã¡…B …*:¯è¼¢óëÇó´=ÓöLÛs;åí”·Sr^®ëü‚ó Î/V|XñaÅë®Z}Jõ)Õ§lK¾-ù¶äÑ[¢·Doá¼\Ñ[ÿ·þoýÿöûÛïo¿†ýöoØ?±î­ýNõ;ÕïÔɲ'Ëž,Ëy$eÀpNÀð?<ùtæÓ™âtqº8}XÑaE‡-ž²xÊâ)ãþƒ9×¢\‹r-ê›±oƾ·GlØñ ˃,²Pçc»9ûæì›³×\7rÝÈü0à‡Žzí#ûÈ>ò¤àIÁ“‚·8Üâp‹è‘Ñ#£GRç£z“òMÊ7)OŒ:1êĨéÞÓ½§{WïV½[õnŽº·¶iÒ:dÅCV ¹Úÿjÿ«ýÍÇÍÇÍÇ©ygF vèý¡÷‡Þ‡× ¯^÷`…ƒV Nø2V|XñaÅ™f˜y®ð¹Âç S3|™ëi®§¹žfàþÀýüøð]ÿuý×õ©#!ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒHÐ8jµ-F‹ÑÞkïµ÷Ú;íöN{£½ÑÞh¯µ×Úkí¥öR{©EkÑZ´¥EiQZ¤©EjϵçÚsí©öT{ªEhZ„öX{¬=Öi´GÚíö@ûWûWûW»§ÝÓîiwµ»Ú]í¶v[»­ÝÒni·´Ú í†v]»®]×®jWµ«ÚíŠvE»¬]Ö.kµ‹ÚEí‚vA» ÓÎiç´³ÚYí¬vZ;­ÖNi§´SÚ?Ú?Ú?Ú í„vB;¦ÓŽiGµ£ÚQí°vX;¬Òi‡´ƒÚAí ¶_Û¯í×µp-\S5US5ES4E“4I“4Q5Q3i&ͤíÓöiû´½Ú^m¯¶GÛ£íÑvi»´]ÚNm§¶SÛ®m×¶kÛ´mÚ6m«¶UÛªý¥ý¥ý¥mѶh[´MÚ&m“¶QÛ¨mÔÖkëµõÚ:m¶N[£­ÑÖh«µÕÚjm¥¶R[©­ÐVh+´P-T ÕþÔþÔþÔ–iË´eÚm‰¶D[¬-Ök µ…ÚBm¶@[ ÍÓæió´¹Ú\m®6[›­ÍÖfi³´YÚ m†6C›®MצkÓ´iÚ4mª6U›ªMѦhS´ÉÚdm²6I›¤MÒ&h´ Úxm¼6^§ÓÆi¿j¿j¿jc´1Úm´6Z­ÔFj#µÚm„6L¦ Ó†jCµ¡Ú/Ú/Ú/Ú`m°6X¨ Ôj?k?k?k?i?i?iýµþZ­ŸÖOë§õÕúj}µ>Z­ÖKë¥õÒB´-Dë¡õÐzhÁZ°¬uÓºiÝ´®ZW­«ÖYë¬uÖ:i´NZG­£ÖQë uÐ:hí´vZ;­­ÖVk«µÑÚhm´VZ+­•ÖRk©µÔšk͵æZ3­™ÖLk¢5ÑšhµÆZc­¡ÖPk¨5Ðh ´zZ=­ž¤iAZ­ŽVG«­ÕÖjkZ ¨ÕÔjj5µêZu­ºVM«¦UÓ´-@ó×ü5ÍOóÓü´*Z­Šæ£ùh>Z%­’VIóÖ¼5o­‚VA« •×Êkåµ²ZY­¬VF+£•ÑJi¥´R𗿥yi%´Z ­¸V\+®ÕŠjEµ"Z­ˆVX+¬Ö jµ‚Z­€V@˧åÓòiyµ¼Z^-·–[Ë­yjžš§–KË¥åÒrj9µœZv-»–]s×Ü5w-«–U˪eѲhY´LZ&-“–Q˨eÔ2h´ Zz-½–^K«¥ÕÒjßkßkßkßißißißjßjßjßhßhßh©´TZ*íkíkík-…–BK¡}¥}¥}¥%Ó’iÉT³jVÍjŒ£Æ¨ÔêõúN}§¾UߪoÕ×êkõµúJ}¥¾R£Õh5Z}¡¾P_¨‘j¤©>WŸ«ÏÕgê3õ™¡F¨êõ‰úD}¤>R©Õ‡êCõ_õ_õ_õ¾z_½¯ÞUïªwÕ;êõŽzK½¥ÞRoª7Õ›êuõºz]½¦^S¯©WÔ+êõ²zY½¬^T/ªÕ êõ‚zN=§žSϪgÕ³êõŒzF=¥žRO©'Õ“êIõ„zB=¡W«ÇÕ£êQõ¨zD=¢Q©‡ÔCêAõ zPݯîW÷«áj¸®êUQUR%UREUTEÕ¤šT“ºOݧîS÷ª{Õ½êuºGÝ¥îRw©;ÕêNu»º]Ý®nS·©ÛÔ­êVu«ú—ú—ú—ºEÝ¢nQ7©›ÔMêFu£ºQ]¯®W׫ëÔuê:uºF]£®VW««Õ•êJu¥ºB]¡®PCÕP5TýSýSýS]ª.U—ªKÔ%êu‘ºH]¤.Tª Õùê|u¾:O§ÎSç¨sÔ9êlu¶:[¥ÎRg©3Ôê uº:]®NS§©ÓÔ©êTuª:E¢NQ'«“ÕÉêDu¢:Q NP'¨¿©¿©¿©ãÔqê8u¬:V«ŽQǨcÔQê(u”:R©ŽT‡«ÃÕáê0u˜:L¢Q‡¨¿¨¿¨¿¨ƒÔAê u :P¨P¨ÔŸÔŸÔŸÔ~j?µŸú£ú£ú£ÚWí«öU{«½ÕÞj/µ—ÚKí©öT{ª=Ôjµ»Ú]í®vS»©ÝÔ.jµ‹ÚYí¬vVPPP;ªÕŽj{µ½Ú^m§¶SÛ©mÔ6jµµÚZm­¶T[ª-Õj µ…ÚLm¦6S›ªMÕ¦jcµ±ÚXm¤6R© Ôjµ¾Z_­¯©AjZW­«ÖUk«µÕÚj-µ–ZK TÕ@µ†ZC­¡VW««ÕÕ5@ P«ªUÕªªŸê§ú©¾ª¯ê«ú¨>ªZY­¬VV½UoÕ[­¨VT+ªåÕòjyµœZN-§–Q˨eÔÒjiµ´ê¥z©^jIµ¤ZR-®W‹«ÅÔbj1µˆZD-¢V «…Õ‚jAµ Z@- Pó©ùÔ|j^5¯šWÍ­æVs«žª§ê©æRs©¹ÔœjN5§š]Í®fWÝUwÕ]ͦfS³©YÔ,j5³šYͬfT3ªU7ÕMuSÓ«éÕôj:5šNý^ý^ý^ýNýNýNýVýVýVýFýFýFM¥¦RS©_«_«_«)Ôj õ+õ+õ+5™šLM¦˜³bVb”%Fù |P>(ï”wÊ;å­òVy«¼V^+¯•WÊ+å•­D+ÑÊ å…òB‰T"•Hå¹ò\y®/Ÿ•ÏÊgå3òùŒ|J>%Ÿ’OÊ'å“ò ù„|B>.—ËGå£òQùˆ|D>"’ɇäƒòAù ¼_Þ/ï—Ãåp9\VeUVõ €,É’,É¢,Ê¢l’M²IÞ'ï“÷É{å½ò^y¼GÞ#ï’wÉ»äòNy§¼]Þ.o—·ÉÛämr˜&‡ÉÉÉÉ›åÍòfy“¼IÞ$o7Èäõòzy½¼V^+¯•×Èkä5ò*y•¼J^)¯”WÊËååòr9T•Cåeò2y™¼T^*/•Ë‹åÅò"y‘¼H^ /Èóåùò|y®’ä#U’*I•$oÉ[ò–*H¤ Ry©¼T^*+••ÊJe¤2R©”TJ*%yI^’—TB*!•ŠKÅ¥âRQ©¨TT*,– K…¤BR!©€T@* å—òKù¥¼R^)¯”GÊ#å‘<%OÉSò<$)§”SÊ)årH9$wÉ]r—²IÙ¤lR)‹”EÊ,e–2K¥ŒRFÉMr“ܤôRz)½”NJ'¥“¾—¾—¾—¾“¾“¾“¾•¾•¾•¾‘¾‘¾‘RI©¤TÒ×Ò×Ò×R )…”BJ.%—’KɤdR2ñ£øQü(ƈ1bŒø^|/¾߉ïÄwâñøF|-¾_‹/Å—âK1ZŒ£Å(1JŒ#ÅH1R|&>Ÿ‰OŧâSñ‰øD|">‹Å‡âCñ¡ø@| >ï‹÷Åûâ=ñžxO¼#ÞÅÛâmñ¦xS¼)^¯‹×Åkâ5ñšxE¼"^/‹—ÅËâEñ¢xQ¼ ^/ˆçÄsâ9ñ¬xV<+žO‹§ÅSâ)ñ”øøøxB2ûÈì#±.sxæðÌáñÑnr_À„d°µä’Ò™Ó™ÓÕTwPÝA±ÏfÑ!E‡™$ÖÓõC­"é<§½žøzâ뉖-VòÚu÷\00I°Q­Þ¸zãê–gsYe– ~‰õtAýP«HjÏi‹:/꼨s´ބÜp-ÀÀ$!ÀÆó6ämÈÛb=‹õ,Ö3öyô,éYÒ³$ç¸OÔµÊsZR{N³Ö7·DP‰ AïÚ¾kû®­+î ¸``’`ã±Öw_ï¾ÞœS@â>]P?Ô*ÏiIó9-!Û0ß`‰˜€$„ØHÞ y3äÍ"‹L,ò‰~ÚAí vZ$îÓõC­òœ–4ŸÓä”rJ9¥å±ëý¡õ¾Ñ®¸/à*€ €HB€dåᕇW¶öª‹³ p†§ ê‡Zå9-i>§}ôøèñÑ#aZrBî ¸ ``’„€OÝ=u÷ÔÝùÌÿcþÒtJÓ)M•ÖUZWi­¿üÊ>4ûÐìC³ì̲3Ëμ‘y#óF–6—6—67—›ËÍå#GJ™¤LR¦¾|?øÆ½<‡†ÛZ¬}êöÙÛgoŸýÍô›é7SPpPpPpÉ*%«”¬’uMÖ5Y×èÇRãd“5N;dì±ÇK/}¼t|ŸÍ€˜€˜€Ë38:Ûèl£³ÑÚû½¯÷¾Þûz¦S€)@–³úê7ªßпÝú5ªð¼Âó Ï H6 mç'Ÿt~²©Ú¦j›ªE‰:u&¾Kø,ý³ôÏÒ¯µnÔºQúµÔÏÇÏÇÏ§àŽ‚; îˆ]BÿâþÅý‹wzßé}§÷ëû­ï·¾ŸþÙø+Ûç^Q#oGÞŽ¼=ûÈì#³4ÊÙ(g£œeo–½Yöf¶ùÙæg›Ÿ'}žôyÒ{Ïõžë=·Ÿ{?÷~îb>1Ÿ˜/þʯϹ%ÿ–ü[òŠEýz®Ÿýœms¶ÍÙ6sxæðÌáùOç?ÿtyµ¼Z^ÕÏÂ̇3Î|¨ß#¦­:gKH˜çŠ˜1%bJ(÷”{ʽŸÿ|üçãÛ·n‹}Göðõðõð-®tºÒé:TêP©C%}Þá/Â_„é™-)\[¬¹³ÿÎþ;ûÿ(øGÁ? ÖkU¯U½V¥¼ùðæ—Û_n¹}—“ç4~,롦RS©©¸î¾€ó#&À€28Ôgì899þ½ÚÓjO«=ulIænš»i ãfÿñê/‹ƒCƒCƒCãRæ‹Ã.»8̱ç÷DÞyOäµ¶Çsëέ;·Îþ­éƒº%wKî–ÜrkµVÖZYk¥Þ¯"î%ó͘oÆ|c­äKª/©¾¤:ß_$tætæt«7®Þ¸z£ìÅý½3zgôNGP¿ *4ªÐ¨BŽºŠêákBÞqbÿK=ôKùod¸‘ᆢ/ýLé1LÜk5öõófò›Éo&wl ;Kˆï¨rsÙÍe7—-:¤è¢C¾ìx=Kz–ô,©ÿï{kï­½·ÖÕŸå’µ%¶ç‘Ï#ŸG†üòsÈÏq)§¾ø®gžÓbÓÿ4aþ !!÷œ00”ð°þâ¯õ¸ÖãZË žz>õ|ê5£÷ÑûxŽœzïǾrpuÀÕW-÷¥÷¢û²}Åwïð2þ“ñŸŒÖ¶ÜøCã?ðb C¿zè½ù{]Ò{žép¤Ã‘q)¡Z]hu¡ÕŽ-a­€V@;VõXÕcU掣ÇzÏÚ¸—_ï—þ|'_œ|qòEì!XË}’û$÷IŽºš¹JKˆ{‡Ôé}Ä{ìz¯nç¿ãÄ_0é*×–ØÏq‰ÿcÓû _˜|aò…Éñ÷üÃsšýå×ï ó݉}gFL €%d¬÷£ª<¸òàʃ3$ úuêש_GïÃçØšÑ_:¶´nQnQnQq=g{†³ž¿öüµç¯_¶åWó^Í{5ÏÚ–õÁº¿¬üúàº>=|zøô°ÜrnÏÜž¹=]¥?–s:sàÌ3Ž6<ÚðhCjö'~OüžøéÑÇßÕI„ö˾/úàÉñ}ýtlf{_cÞŽy;æ­c˯­l9íéæ(úpÄq©a×j Ž ¥"¼"¼"¼ô‡æ|¹â³\R¸¶è1m|”³DP‰ Aë?®ÿ¸¾c[ÏiÖXSGÿÃ)Ç~r_À™`@?dÿôbûõ–µOÙÞWÿwýßõg{Ëùn廕ïÖÄé§Oœ~ð÷ƒ¿üýfÔͨ›Qo†¼òfˆÉè!–>§¦ÞãÇÚ`wqy1÷e/ ×ø»ÆßíØ»c÷çߟ¾>gäµR×J]+õg–?³ü™ÅÚ‹³ØôY$ãòâI¯½øBùpŸÃ}÷‰WÇÖ rƒÊ *n讟wkeÖÏ8/ãâbÃ~ØðCìZÕÿ‹þJ—úÑéa¡>³¯íï©>säš%k–¬Y¢ç«ßõÿ½gäž‘{FêóÛ¾Fé×=ûÛöÃ^{=ìeÏI¿B†½ {öJŸ Sÿî®»»îîÚzëý­÷›D4‰haÿ ¸q©ÛϽ¢VÍU5WÕ\eþ+ó_™ }0ôÁP} }˜Ó>µúÔêS˱ÑÝ»¶ïÚ¾kkÏ*ÕžS{Ní9ú7èô¹ÓçNŸ{žìy²çÉô™žõ[õáˆõy‚moMŸKõs‡fuÅ–à¨{´þ=Õ¿ƒöÜ—õ™kc?Qè³ÒêýPÇwlܱ¼Éò&˛̞á»íªå¨ZuÅ¥R]¼Mñ6ÅÛØÞWÝAuÕ¤?Kè³qëeÖËvnع¡Õ¬V³ZͲö}wìs&ÏiÖè³q'ÌŸb$ä¾€3#& qì«=¸µ½MËA¡?·´±CSK-W´\Ñr…£j ¶Œw2ÞÉxgYe–°§ä|?ø~ðµgË ‹5,Ö°Ø—Á#GÆ÷+-G½ =»ûìî³»­m¡SšNi:¥á5\ÜYÀ±MþiòO“zÔîQ»Gí’r-ÍH=#õŒÔ¶ûè볌Ûß&c÷$³¶åof¼™ñÆž­µíÞ¶{ÛîÖ¶“éL¦3™Î,°üÁòŸ[BÛWÑ6Û l30¾¯º3{Ìì1ÓžòÛ³5ûK¾vÚÚik§Ù>ûz¬Tdÿ6]±%8êØmOõXq÷ÔÝSwOýÜc}DZ¤ÏþeSK8ÿ3›+¶¨!c‡Œ2Ööwvaÿ…ýöÿÜ2g›Ÿm~¶ùñ×Gœç4kŽ—>^úxikûÒgdwÔw'!÷œ00Iˆc_H‰ùÄ|b>k[‹=‡nü•9ö<ŽqßZlŸûbñËöò¹[H6 ­åvb¿ÐŒ{;ÑûQY+s®z¹êåªg{_zn­´…çžWxž³½jw]¶`]침O~uò«“_%úÑ{íÛ®ŸÏ~cÓVÕÿdÄZ°d{Ëêyõ¼zÞv ?7žI˜+’ýÛÝ_6á¯ÿÍåærsÙÚv&™4fÒ˜/¬tætæt¶Ë©BölÌu[BÜ·¦÷×´=¼mìA¼ããL}4öÑØGFzfsÅ¥ÏðßOhö1ó¹{á9Í}$Û÷WÜpfÀÀ$!Ž}á;ÿùÌÿÃÚÖ¦gžuzÖ¸—ùRïK½/õ¶Ýsű°ÞC7./éôA,ípÛþmês-[ÛZ­•µVÖZéØÞ´'òžÈ{"¯µX«éõ¦×›^·öÙ? þQð‚ÖJ»¯Ñ¾Fûñ}t9¥œRNé>É}’û¤ÏíÕ¤ë¿6jýLX6aÙ„eÖj@ŸM|kÜÕ·=ìù…çž_—º]0zÁ裭m¿]Ëv-Ûµ´g;®Ûâþtñ›é7Óo&k[ЧZˆû±ëƒW\UqUÅUÖæ:užq)â^«®Ø¢†uÖuXWÛƒT'üÀõ<§Åw«Žû$)‰»/àœ€ €HBÚ2hË -zŸËÅa½ íèµãØXŸ;0î=L¥¥¬k²®ÉºÆþ’K™¤LR&k[Ó_˜&|›±,¿íÀ>öŒÑ|ãïL•¬R²JÉ*Ÿû‚[l¤žÙö ÌþeÁ¤%};Öö²òðÊÃ+[~*Â+Â+ÂËv õ!:ã^B}žuG]‘ì¿JÄîaö¹[¾êÕÿªܯÿ¶ªÕgKÝÞÈp#à cÞ~zѧ°½Wo q9;úlåÖ>[æY™gež9ö®öuØ×a_;ÿü q)¡+¶(Û½6uÿdü'ã?ã^æ‹Ã.»8̱0ÏiöøeÆ/3~™‘0ß¾„ÜpNÀÀ$!®øäÕ¼Wó^ÍK˜¸Ü©r§ÊrTm|ôøèñÑÃQ%Ÿ}dö‘ÙGl‡õoû…lìþRúñn ܸÍò_–6—6—6óº-aÄ¿ÔçrTl²«?³¹b‹Ò§±¶}ûŽ-³íÇ?÷.Ìsš=ÖZ7jÝ(kµ4P(]q_À9„¸J¬÷úÒ{e廕ïV¾[ ëÃB:öXÖ,Y³dÍk{l±µÅÖ[íÙNƒÊ *7¨lm;¦S€) qÛÕXý혷cÞ:ß_cÀÖŽ´ìͲ7ËÞüÜòèýœžG>|éÌç´C¥•:Træ~Ÿ±g ¶´ýÐöCÛ9v¶¿µ=gä—}wâàÅý;2¥Ë”.SºØßÂ÷öÝÛwoß×_O|=‘–ßOz4tn™c÷tÝg6WlQík·¯Ý¾¶µ-è}š\æWa¯Â^9ê.Ìsš=þîøwÇ¿;Z+Iã?4þàŠûΉ˜€$Ä`}VN½Wœþ:lQçEuÖg®×ª^«z­l×ðåö—Û_nïØãÕûdXÛcåÁ•WlOùcWkéDÞyOäM˜sgÿ‰A&ëÛa¤ø¿Äšc[ÿs·änÉÝ’n õ9íœúÖõ­ë[×Z™Ï­;·îܺÄ-a…í¶WØn­„W\ip¥c÷xaò…É&ÇýŠdÿwçÞÚ{kï­ïï¦í-DÞŽ¼y;.ßÁ©5¦Ö˜ZC;¨ÔêÐõtáÓç‡Oç¹ÞÆ.ë>³¹b‹²Ýâ£ÌöÏlÏÖxN³Ç±ªÇª«j­<åÕòjyÕQåIÈ}çDL @’0!“>H¬>”ܸcãŽ;Ö\n.7—!$³½…§žO=Ÿz:¶Î }0ôÁPk{,Ö³XÏb=í)ÁwÜam;7“ßL~3y´¢ó Ï/<¿0ËÎ,;³ì´Výÿu†€ÍQßÃÀVêa耡†ð,éYÒ³äç–Vï=©Ï5˜¸ç´x›âmŠ·±VÎÇõ×\?qKXhu¡Õ…V'äI?ê¸_‘ìÿîÄ}ØpG}GNŸ;}îô¹ü§óŸÎÚQßM½o±#%å–—³{_ÎÀ«„W ¯®»b‹²Ý¾ÌŸ{…á9Í×ó\Ïs=µR™Xdb‘‰Žúö%ä¾€s"& ‰¿)zgôÎèúŒ¶Ž}ë>É}’û¤„ €ßµ}×ö][ÇÖ¹ÞWÌÚsÕËU/W={ÊŸ}hö¡Ù­Ézÿ6çiK½[ônÑ»¯ÕŒtŨ4¡Ò„J>÷û›0ƒ^Zc{¶ã„àךló³ÍÏ6?!¯HúQ[Ûcìs†;‹=Ûÿܽ蔣þeýÝm›4fÒ˜Ic>÷šìê-!.g'G¯½rôrž8odÞȼ‘®»b‹²}ÅNø2î†ç4{胺Çý©ØÙöœ00IH|¼¦—£åh9Úv_{è/Îü|ü|ü|‚CƒCƒC·äß’Kþ„ì¯õmZÛcæðÌá™Ãí)¿[”[”[”µíèƒþ%L+ÒÈöັ_ƒò½3Þ5DŸ©1ãŒw2Þ±gfÁÄ*m¦3™Îd:ã ßk>¤ÑgXû)¾ï,öo?.{Ñ?;²ÂÈ #+”;UîT¹S‰ÕƒßÕ[B\jÀv?Å„»<®ûÌæŠ-Êö;áËü¹ßbžÓâ^籟+\k_À9„8öº>ȳý/UõÁÖ:íX´cÑY—g]žuY(#”ÊØS×ú‰ß¿'~Öö{0RÛÛ‰ÝSÁR„W„W„W´¢±Æ>ûÈž3¬Ï2˷Ϩד¢CŠ):Ä9`Ûƒý>|ù<2që0á‡iÕ¯Öö{Óĺ³Äßõßþ½Ìx3ãÍŒ7 *7¨Ü ²í^}ŽŠ]½%ÄåØ h´šµÏÆÇŒËö‘ë>³¹b‹²}ÅŽ2ëÛtԆ紸·___G}ûr_À9„8êºÞ· ð¼Âó [ÜXï Ñ)M§4ÒœÝ}v÷ÙÝqyYŸ0ðåö—Û_nïØ:×熴¶Çòjyµ¼jOùcÏUféJƒ+ ®4ˆïös´áцG:ÿ,¶ˆ?Ǫ«z¬j™=fö˜iÏyOÜØvŸÎ[wnݹu'që³Âö Û+l·V«þWý¯ú;vú6­í1vyþÎß×ÿ¸ï}ö‘ÙGfi3°ÍÀ6í†íéQêê-!.g'ö}Ð9¿§®øÌæŠ-ÊvKˆ2Ûž#ös¯0<§ÙC¯GÍ>î<ûΉ˜€$ÄQ¯~Vý½êïUÛŽ~÷öÝÛwo_g lo!ìUØ«°WŽ­óÍe7—Ý\ÖÚëª;¨î ¸¿Ì=ÒáH‡#â¯åè}°ÊÞ,{³ìM˽¤ HÖZØ{~G¾ƒ®EŸqåᕇW®š«j®ª¹ì•¬·íÃ}÷9Ü'±Êûûei_£}ö5JÜ®_§~úu¬•pÇÞ{wìuì·Ú~hû!Û½Á€?·T¥Í¥Í¥ÿG9™ñËŒ_fµ%ÄåìÔkU¯U½VÖ>{¼ôñÒÇKóÌö¹µêŠ-Êö;>ʼgäž‘{F:ê Ãsš=ô§kµä=×{®÷\G•$!÷œ00Iˆ£^ 7½ÞôzÓëÖ¶3aÙ„e–9ö•JÂÀc¾ó͘o[çúë:¬«µ=êÿ¯=Ûi.7—›ËÖ¶£¿ÄŒ¿–3P(­Íê§÷ðÞ¿~ÿúýëÝ’»%wKnù/õÁTy8è N,!ëAï5"pDàˆ@ûK˜uMÖ5Y×ôêÖ«[¯n§Ï>wúœ3¼TÞ|xóáÍ­•yj©5¦Öpìõ¢1ÿ1–ÿ^Ÿ}ÖöµÔ±%¿yüæñ›­íQ¯±Äº³Ä÷õ?þ¼ yò6Äv +®ª¸ªâ*k[põ–—³cûØãã³’Â3›+¶(ÛÏKñQæß›ýÞì÷fŽºÂðœfÝSwOÝ=ÕZ-µ\ÑrEËŽºª'ä¾€s"& qÔ tÛ«žüêäW'¿rT™oFÝŒº•0°Þ{ÃaÕΜΜ®DP‰ AÖö¸%ÿ–ü[òÛ³±!c‡Œ2ÖÚvÖ,Y³dÍ’øh3R&)“”ÉÚ~'™4fÒ˜ØõïºÃA'Íø£ÇGúKÒfÿ4û§Ù?Ÿ;«·å tç9§[ïo½¿õ¾µò×8Yãd“ŽÝ£OŸ>=>Ñû*& & Ʋ~ôpËZ ý|ü|ü|[Â*­«´®ÒÚ±a›3ÀúéW*ËEEU·¶_ÍÙ6gÛœm­•ÖÕ[B\ÚÀ¶ Û.l»`í³m»·íÞ¶»cýî®»»îîª<øÓ‹rO¹§Üsõg6WlQ¶¯ØñQæšJM¥¦â¨»0ÏiöX½qõÆÕ­íw耡†pÅ}çDL @â¨×=Ùæg›Ÿm¾µíDïŒÞ½ÓQe¶=„²c`ǾüÊe„2Ö¶ŸñNÆ;ïØ¿¯ÅM7YÜÄÚÖæì›³oÎ>Ƕ–ç‘Ï#ŸGÆž#-¶ØAWìOE‰:uÆZ9sÕËU/W=猓NüÄï‰ß¿©g¤ž‘ºd•’UJV±¿$úëòØßJg¾âExExEx%L ߟþ}«WÅž¿öüµç¯–Ÿz\ÿqýÇõ¦„gœ9p怣®Hñqg‰ËwÓÚg­õŠ‹9ªm_ýlÀ®ÞâRfÛßÓ¸´Lk¬õŽÝ3ÒÕŸÙ\±E%d™íŸý—ç4ÇÒÇɰ¶÷%Õ—T_RÝ÷œ00Iˆ£^¨åM–7YÞdÖ¶£÷Ò>j÷¨Ý£vÅÛoS¼MBÀr6ÊÙ(g\J®÷ª´Ý¦õ¸ÖãZ³¿äúìqÖ¶ÖÿÛþßöÿÖ±­%84848ÔÚËÜ2þ“ñŸŒÖ>k{ؽÆhüÁµ¾®ë}{Ìì1³ÇLû÷«Ù=¬{X÷°yOä=‘×K´}ŒŽê_8îØ¸cãŽYíýöuØ×a_'n mOÚ¡R‡J*/žñfÆ›o¬}ªÎou~«ó›£ZÚEXd{hÛ¥uÝ–ßwgkBñ¹ž'{žìy2ÛàbŒØu[”í2ëÃöƽÌ]Ot=Ñõ„cïÂ<§ÙC¯kûÕŸU\q_À9„Ø~½¥Ç–ölÇ·®o]ߺֶ£ —rêýìš/>zÇå°í™Gu{ûîí»·¯ýÛ|×ö]Ûwm­mM?#Žj'¶äÔûÌÙS?®;´«{=ñõÄ×W^yxå᪹ªæªšËþ6_pGÁwè³->ìõ°×Ã^®~¦ ?4üÐðøk§îžº{ꮵmæè•£WŽÿQ‡¶ðŒ{ CS…¦ Me{Ër´-GÇÇ%¾ï\¶÷r¬ê±ªÇª&̵H)­m¿¯w_ï¾ÞFm q/m|Oß×{_ï}=}–Sk[ÖÇ6ø²íÿXø/ _«®Ø¢ôyjã¯Ì¶Ÿpâ²/žÓâò Â}’û$÷IŽÝcBî 8'``’Û¯xô·ölgt¶ÑÙFg³ÝkðË^¬üÝñïŽw´6œ]BÀ™Îd:“éŒý[Ö_.*4ªÐ¨B¶·û´£Î £ÉÔÛ@¾[ùnå»e¹—òjyµ¼jÿ^ôá­õ÷ðõðõð圣èZÚóÇŸ˜¡6m@Ú€´k§­¶všQψíø¯oP:s:s:{¶©Ïw^öfÙ›eoZÛ²¥ÇýE|–YvfÙù¹gÇžx¦Õ¬V³ZÍŠËywæX?›¶?[x^áy…çéäç–M|lÏý©Óc­¸¯s¶GµÛÛq‹r‹r‹úÜïé³ôÏÒ?Kß)M§4ÒXÛ²÷\ï¹Þsãï[à̵êŠ-êsŸÐt¶çŽïÚæ9íåê—«_®ŽgãÄÝpfÀÀ$!¶_o Ú2hË -ú‰oCÞ†¼ ¹·öÞÚ{k-·s¹ýåö—ÛÇ~gûE­œRN)§¼u3êf”þºü©çSϧžú`Ñs7ÍÝ4wS@L@L@Œµ­ÙžuX§`¶û1ÇeÞ]‹w-ÞµøÁÐC }3äÍ7Cnd¸‘áFý5hì¹ÖlŵR×J]+õegpòO“šüSüÅ-m¶Øf µ³y¸Ïá>‡û|î6cÇŠ–ô¡#ùnÆ…Þ2?÷:½ïô¾ÓûؽîŒ]Kú5§ÐêB« ­¶§–Ö,Y³dÍ’›Éo&¿™\ïQ}w×Ý]ww™L¦{¿ØÃ×ÛSB}aÏ’ž%=KÚSB½˜~•Ö¯«úÿ{ö*ìUÃb ‹5,f{ úKýšw–ø¾sÙ³—Ðס¯C_ÿp1Öü¯úÙ¿ÒàJƒ+ ^„¿®ßõ»Xøžð=á{ôhßžÕùIç'Ÿ»%8ª èßS}{Ž}aÿ…ýö?¿ðüÂó õ3¥Ïq~ð÷ƒ¿ü}Zùiå§•·çzh{°Ü„i¥ñW«®Ø¢lÇœÖzoßÙgÿýú·Uß»þg…ík·¯Ý¾¶å§ô ¬móËú‰òœfí¾ÝSºLé2¥‹£îø ¹/àÌ€ €HB; i|Ï{ªªÏù¹ŸÕûy|n™c÷Õs,ýóöCÛm?—×úkîøx±¸êïU¯úÛÚ6‡:`ègë݆6ü°á‡ÿñ:>2odÞȱÆ>ûH•Ÿ4ëüä‹“/N¾°?Tø2¹ê媗«ÞÙÝgwŸÝýeß”œms¶ÍÙ6þJ¨÷ëÒC²¸·ç€õ? ÊàôHõ¨Æn ŽmzßzýªÇ®fëû­ï·¾_| 7võkKìô¥öœÚsjϱ'ÆþÜ£à9Íš™g>œùÐÚ–/L¾0ùÂdGÝër_À™„Œ8"ÐQpL‰˜1%âãbÅUWU\unݹuçÖéÿecã76ŽïØžó¹²Í>4ûÐØÆýܱ°%L@ßÛ·/¯æ½š÷j^ÂD¿zŸ¹ÈÛ‘·#oÇýØ¿%ÄGÐ?ëU«„—ƒŸ4ô¾°zVgk¥ S«®rm‰]fGýáNßêüVç·¯¯/½Ç¹µ{:žÓâþœ¦{܇­v¶}gFL @¢dêàùÏbͰhÿƒ–ôבKª/©¾¤ú'öhÇ<ŽŽ €cÿËØ¯Õ>WÓëM¯7½®êØ—M¿^ùõʯW,÷{0R»6”ΜΜ.ö\h–¢ªçÕóêyG•Üvµ×z\ëq|O?—ëó ê]jµƒÚA^qÚ=Œ=ÔççÒ‡vpuÀÕWõ8ÁQ%|ù<òy¤Þ¯+öÜêŸKŸãsÌ7c¾ó>L®ckÒU`Ë»I‰ A%‚€UÍU5WÕ\qéÁ[BüµØßSýªâ2G×]Ot=£ ¸JìZ×–Øô«kÿwýßõ{’{è÷Ça]‡uÖ5víéü[ûTìùÝyN‹ÓsšÍgøqÇÆwÌa %!÷œ00IŽ>£[ìžz/‡¬k²®ÉºF!^ke­•µVvJÓ)M§4ö¿¨Šýt¡ÏzXæY™gežéýô—ŒzÿâþÅý‹ÿXøÇÂ?ÞÛwoß½}íÙ‹>ónìWíú}yÒçIŸ'}à¶ÀmÛúÔêS«O­‹Ã.»8Ìv íyª×•>Ǫ>W\åÁ•W¬÷DÑ_}Æ®1ýÕRìãã êsÇž±2.¯†mÿûø8Єߣ±é³Jߺsëέ;ÔÞ—‰:u&êLìk—>x¯>©éÒ–;UîT¹Súµqi¹¥å––Ó窌ìC¦÷ð. Ð húÕU/­þßõ®µnÔºQ®Þ*âñŠ+*ÐH×{îêú£Ÿq½nõû£^Ûúz ÏH=#õŒÔú€¢ SÏI¹%è£~ݤnR7I–П+ôcן7J›K›K›õ?ˆ™·tÞÒyKõyp¹B£EéûÕ¿}uÕTw>ú‚þ=ÕŸiõgB}jk‘ÿ¡á‡†nÏ0Ñ<§Åe±ÿ(Írvý%Uò„Üp~ÀÀÀß³±Æßö?wËŽêOã ³ØZ+C_ï¾Þ}½iÕ@ü}Ëœ'FbFmê––Àìò´¨/{&ܹa熬©þ…<§Åþçž–õÐbk‹­-¶:¶]%ä¾€ó#&Iˆ‘^[{q©Ä­÷–æŒXš»i›¬=ê=ŒyN‹‹·!oCކĞ?8¶=#÷ŒÜ3Ò÷\00HBŒôøèñуžOÀôá»õ‰6b/Þs½çzÏu쾚^oz½éukOPq yNÛzëý­÷-Ú§‡OŸŽ­„ÜpÀÀ 1Þk¸°Wa¯Â^YK»–íZ¶kÉÆxNsÔÓÚõ<×ó\Ïcmû9Ûæl›³­£ö•”ŸÓôc´<ö퇶Ú~Èu÷\00HB Ø#99å±dÙ™eg–ôx®bâô‰Ó'N·öœÖ±hÇ¢‹êO>_¶ý¾|?ø6‰hÑ$ÂÚ^º‡uëæ°'¨$ùœö,ý³ôÏÒ[µŸŸŸc:!÷\ 00HBŒ:ŸœRN)§d hàºnŸ½}ööÙŒw2ÞÉxÇö3ÛódÏ“=ÿŒ÷i^^^ík·¯Ý¾¶µmº%wKî–üH‡#Žtà9-.&,›°lÂ2Ë#•£åh9Úu÷\ 00HBŒ=›å媗«^®zúKOÎ>põ§µØôÃb>1Ÿ˜ïÖ[wnÝy×ö]Ûwm }0ôÁÐð=á{Â÷ o>¼ùðæölm 8P(Æß3aRxN{êùÔó©§~\±´›ÔMê&9¶nr_À€$ÄØ°þºÓÃ×Ã××~ÀÀ½žøzâë‰PÕ\UsUÍõ"üEø‹pžÓâbT¡Q…FŠ}\ž%=Kz–|Øëa¯‡½\w_À€$ÄØ°µctŸä>É}¯Ã€«ÐãØøŽ~õù€£wFïŒÞÉsZ\èåÏ>4ûÐìCcÝú~ëû­ïçØ'í„Üp]ÀÀ I °í#¥ W|ª)Y¥d•’UâúVi]¥u•ÖÛ.l»°íBb=ï9mðŸƒÿügìcéÕ­W·^Ýâã¸r_Àu€$dÌ[[‹‘Žôåê—«_®ÖŸôü|ü|ü|jœ¬q²ÆI^WôÑã£ÇGýIfd…‘FV   .Þ¦x›âmô¹`3‡gÏ^hu¡Õ…VW\ypåÁ-¶¶ØÚbë̇3Î|xêî©»§î:ó‘žÓ"oGÞŽ¼ûX×ø»ÆßÅDZ$ä¾€«#&€KJ:ã»À~ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``õ§Û{7IDATAL À €ÿCÛo÷r ‘–ƒ‰´J¤åp"-G|9šH˱DZŽ'Òr"‘–i9™HË©DZN'Òr&‘–³ ¾œK¤å|"-i¹˜HË¥DZ.'Òr%‘–«‰´\K¤åz"-7i¹™àË­DZn'Òr'‘–»‰´ÜK¤å~"-ÿ&Òò ‘–‡‰´&ÒbNœ%Ô*ÔJ1èï^÷R,dMx3ŠŠµ0ï0oÅÌЬÐ,…õ­ö·Ú+G³2¼™µÔRÞ¿2üÊpÅè°aS >+øLXÊÊH 0ü/½_z«ž\ðºà%äÚÁµCÁnãêÆÕ³ýëÖ­[73³<ÙlO³=Ygç×›_/?,(=(]núTÿ©¾j5k¶¤mIÛT5»v—­ºdê’¼´òïªÅÙïb¿‹9û6:mt*t¿6îÚ8…w®{®»`Áš¤ª°zauauÔª¨UŠG^}¼ú¦ ™9dfnãŠÚ['¸LpÉs=°üÀrYË„E ‹”¡B¤)(Xy1£€IóIóQûµókW$ï°³ÃÎìMuÙüºéù»çï…1)ÕSª« y_º+Î'ÎGéäjìj\°»²vÕ!›†lÊmúÛ»¿½+o’ Xñ¾tQÑ€¢ÂÖ?Ìÿ0—ïµhԢܻ•µ·.Œ^Ÿ}£ÇtÁ€ªM}— ­ZMÑŸ•Aå¢Pµ% É‚ò†É …`W`WgRYÏeg¯¹½ææX^ð¼à)¨ôWú ñ¼uq*ô(ô<Žõ?Ö_vB?Y?9ËFœ{ë¢ê‹ªçç'Z'Z+³x×b–z9õ²j’{S÷¦WŹ«§ßO~?ɪå>Í}*Øð®ª `ˆ0€**j}ÔzÅ£>Ãû Ïqz³‹Û®Sšþ~÷ØüM=–îükHï6óFþ½*é‚ç˜ZËb.ûÛ¾\Üçâî1‘K§œ2¶é´²÷ÞaË~¸ÿ•ï!‡äf¾-‰üfÿ^½ƒz³><z6T¾KøHøHÈäÝT.™¯ÌW8ì¿Ñ£L¯<[¹˜e\ýtõ‚Ù&þgìúæôÆàà–[ÿvm2rϹ%I— öÖZ|òüòy_:¾sÓÆµ¾[¼–íÙ±i¦Ñ˜„Ó-Zýf˜ðhÖ›ý{'›x,Ï+ñçÄŸ•¼›1x|÷ñ]Õ\—Ã.‡ó·¼ÙîV¯YÃo3¬[Ø 2~tÔ¨›CÓûßu¾1ÿvü{Ý?Z^#Υǂ•N·Fö0wûçÖÒnó¿j÷´Ó‘9=ã3Û}nß=ñ£f6½>1(Ïž¾=l{XѰ‚š5……¼›i£†8Q¨Bž¾óô•û„€ y«µ¿pô¸õ (“C“,ÖM<Å~òApq±°¨¨|ÙÜñ¢­ê”ƒÍ€•õí3:.»à¡ý±uOëž–S÷vÛÛm•\T*AHLHŒâµ? ž[s¼y ÙE«ÝÙKw…„=³„ðp ‹ŠÊø'þž¾e×)×î[¾l§õ±¤Ú››‹›KÁ‰\§\'a8ï/à¿T˜^˜.x~?ôû¡…Ç^£èmÞpS†•ÑÖ/lï›ö’{캹hÀÿððŠJóë~C#Úš|²ê‹Øð6slê$O{Ý}ÿôªÓ«ä¶ÂMá&OH0ĉ€Ô Á‚ìPíCµes´¿@ý)hD-te çñ–¶[÷jŸg¶ŽÒs]Ó­_³ZwëhsÌ<:ËGÉG §xÛoO–g–§Ðȱ¿cÿ|­ªßÑ]/ ýèoëýóì­Ø¢Wû̪vQïóŒÍÇ–¶Ü™¢ýï— /* yÇo[Tµ¨jŠíw¨vƒìßMldzvÛŒëó+¶îÕ>{^]3»Å{;?z®Í1ÛØäÆù|Ðîƒì1)É)É*cfP±"wGîVÜÒæC^—®ãÂý!ÅðԜɕUújÊ¢;arë_N´Ú”·¶6¯euµÕÕ ž(* a̠˜ æBŽ·¿·Q=mö#c¥s£»®fs}S"‡TVé«)M¶ ¼þuÛ¶£'']Óæµ\¼zñª¢&# `ˆ0 º¿âþ e¬6—A=?»±2UluoÙùþ¸qóö7RÕ¯žöYÙ¯.ô»ÐïØ@ùL8˜ Qö¾3tP_Ä“¦ö[é«)•²z8ã3ÒõЖZe¿:³nfÝrNgœÈ8¡*bå‘?0 à8¶ÓØNy½ËÞ}ÚÏžèÿ £ùÇ?&D„ˆ­ôÕX¿ïÝñº`èÓ/øñ'e¿º­ç·ž/j#$ ‚’©è. `ˆ0I‰èÑUñ×ÿxîà‹ÃOîÎqù×è.ºUý–L¥µólK/Ï›v.ûõž0;a&‹d6¯íð@PzÔ÷¨_è\ö^`ýýý5³t¥ôÕ”©§‚M'ȆöíÛ(³ì×û0íašÊŒ¼®ôé T×?möi³ì!švý/[齨Ýgý‹¢Mt¥ôÕ”Ý[,7±ì]u±õbë‚ZÊ,e–ð€ è" `ˆ0‰¸âvÅMaWö…åéa6;Üèné«)¯ßÿµóÿã©Æµª-ëÈœ´rT8*ÈVÌ\1³@ãþÒñHÛ¤Õm>c71\׫ßezøŸvÛŸ/¯¶uqÙ{kÒ˜¤1ª÷€6ŠŸ}û?èÓdÜÆÄÞæü–Fèzõ[2ûmÚ‘u¥ñ­.wŸékzíÓOL?‘_Gé¦tn3-ÝB q¢ ó"WD®PÄ”}!}¯íäÀiîÒ«~KfúÇ v Læö¿­ñ©KÇvÛ) bfe[[{míššv“™^¶OÅù„]µŽ•Tõ«–!/|û-™_öïÏ<>£rafšd6Êl¤ê× Îjªi7é:iÉÉÛaR*}ÕÓüì~EDï¶ÞŸ%-Ñ´Îß9—¿J r˜€® †8QÐa‰}û*5~ Û8 þÏÏ?î1n¬´«ß’YäôëȯÇL6š~i•¦•¹ÔãREsæ noí½µ‹ÎjÚAÖNpòs&…[[œ“võ[2oýuôÏ™ï2ÒàrƒËYýs s …nÌ ¤¢ƒE…Ý={:æôÕ´˜lYë(íêW=;ÄN·JÐøüãõ›×o.üœùè `ˆ0”k™k) Õt¹hZÔó¿2,ftµ5®:ÕoÉ”GϾg5ж½Ññ—šV)151U)g–ÅB"B"švuSæXî{QuJ_õ¼{8`û´[šÖÇf¡ÍÂÜT¾*_á³T‚J\Öº¬Í×ø\ùžnßÜù¹ªU¿%³ãì ï]Ô´>'íNÚÉ2%€øQCœ(€èšÐtqué_«%S©xËN¹ÇÕϬ–µ~¿¹á£Žêk¸÷ã½eÒ êø-å·¹‘¦½Õ¬‡o—ÈE½eg/Ÿ Soj|*pêÁÔƒª L@l(€Ë¯äwËNÊ`íQÐq­âZ)§h:égœœa?&‰rW›TwžeÙûÓ¹Õ“Ky*pà;ïÈdÌTîþîþ7Ô÷';»ÍA;(wµÏ¸_¹ÎÐø-êÌ™5T*æ ¤­pzáta½¦½ÀDoÕ¬Øk”»Úg»FãV%šª¯äÔ{SïåñQ/@t(€Ë¯¸Ð-.wµ©)ƒµA @X®´\™ë¦~Š?ÚÐjî:GjÝ×ÍèÁÞ½AÓÆ)o(o(2u UÏ<[ Ú®ñ¶Ï>ç÷Ž­O­ûºùu£i'.årtȆ!…“™:6??—¢R>ümÞÊÌ%u?…îkßÚÊ÷ËHüÞ³{Ï”l´­#ÅmEåå•¶I‹Ç¨¯óŠ AÞÌ!HI/ã^Æ9ÃÔÏù©gr'ö¥¾­¨´ß;bè…Kêëoo ÜÌ€4<ž*wõ³}ÃOÛ§m¦¸­¨ì?ÃÇ/ª‘¦q…ÞBoçü*på¢ Ö„€H m:´in[õSó“ÓzŽ¿'æJuû¹Á_oÝZ|´÷l&ÿ5mš˜V¶{¶“µ¡¦P¹B¹Bˆc@×¥û¤û¨n«Ÿç{õîÜ*î[±¨!©¾=—,qò³ ú¢«¡Ñä»w 66 |þÜÈ£MÏÄïlL>¿²ð‡¡‹øøx\1þì3±ÿ•—ûn+åò²ö†Ú…˜F†ŸøDÖDýlßåÎbƒ;ÅPš…ÿX7"ϨÝdÅý-Ízôý¤‹þêVÝ^xë%é_Ép3ø C—çÍŸH|¤êqÈÝàVs1×ÀÍ[›ÍIݯ¾ÚI]’º¨ølPÉ(€Åƒ2¸$~I :yYyYÂê'âv3 ¦%×õwj?q©c‘efÕrc´Û¿þV²è¿¼àš‰ý‰-êk~ÐýAÊhftÝéàÓÁr{õóüá® ¿=/Šêô“ð:Y‹ÓüÓþ"­8#»¬5gŽx àÂëaÆ#Ky¼‚ž 'dÕ"„AÁL€®ëײ_Ëœíêgûþ­wÅF¬Üº´÷²ïôo~Ò°Vë'/Zi¿Ÿ¶tºèa쀺þuÂ3ÅVwqu»uUý˜÷:îu,ºÀ4*°8QS((Å£Rnþì>øÝmËÄ\ý~{¾ÿºKy¶¢ø àЛvÓMQ?r¿™~3‹IÐy3ºÏèžoTÊ}5Fÿî:þ–JS¯†K—îÜYòØ:÷o—’Ð}Ïô•V›7Gµ:æòWñ7ƒ79.¼²;ÃЬÉÔ'Þ%ÿ|fÖÅêŸËÅSÛÙ i¬¾æé{Ò÷¨n3“ » Ü Ü…¯ÔÏðú—[×|1¹r‹Ród?÷ˆ†owyø¬Þ«cóÕ Ë\Óêºå»)G;ï˜ß,¾G¯÷¾ý6Æ´›ÛWãî·ì2äÁâºêÈ /ùZDw#è?vŸŠŒV_óÙ²s’™I@墿ªYS­Ë·./j¡~ÂÍ›è8ó¡êÒgs¦¿cod¡UçuñkŠú5óóë‘dXóNgÏ%}œµp†òóêG>¦Æ˜yÕ™IÐa‚ƒ§i‡RÅÿ“:¢Q%_vù•'#ý[e5¯ýÈôÕ©ƒ:¯‹3..tÿßNúÿÿTñ?/ùSšþde呹?Yw¯”‡VX0˜ »îÔ¼SSYÊÓl–ß_\¹Ei×™KnÞþó_¡ÊiÞ¦øñÅÿ­z¹[üO>ýÑN•¸çÕ3Œg·ý(í¶8oÝ E³„ôãê+/$$1™€ÊB¬[ªNL @t¬“­“sýÕO²y‘³~´Ù †ºôÀ‹³7j¿=ˆ¿n¸Œ·pÖxü „B&“ º(ûÃì…RþZÕ¤=ÖŽçÒÄP”ž¿}ûòå%í·Û^óÝÛkSè–ü©a!¦Öá_ЧNØøñÔ5ê+ï™î™^Çd€î:räÈY)76IY#‹mY¹i;{û‰ïOƒ+ÍŸ¦·Óæ–Î}ý½2nŒ~õZJ|XlpÛä1I=ÔW>õÔ?T™L@e¡Ö]Ò.ƒ)€èÀ–ùê#àG.S-&Š¡. ž8rV-5ïHSO,€ ‹É;;u;×Wýøs[ä¶1™ ‹â›Ä7QnV?·û6^¿ù#1¥{‡¸_òìóf7sŽø“Í\ýâŸj:ÉàñÓ§âùpþôÐá6†¥Ü]cþ˜ùyµ˜LÐ]Ë&.›XÐ_ý ßï‹NQÏ+·"m¥²ÜžòmÃËé‹›O5ïº@›*×4x›Ãõ…¥Ü`Ydp×›Ë:Ýž©~œWB®„(Æ3™€ÊB, Ò+ƒ)€èÀ–9*³½kh]©Qu·övÔ{†úñ'Ç'Ç«š2™ ‹Î <7PPÊåèè ý!†¢4èê–+WΙiÿg`à¢'?®}‰[òÛÃ&ÑjÝ^+¢A/ ŸdQÊm*¶hØ"k “ ºk€r€2'Eý o>y_\ÄZqÞ<¹ììhëw/ºä÷†ÅY÷öønLt)ŸÐ; 'kÂd* °ôH£ ¦ [¦Ûê¾õ®§~Ûyª•ÑJsõã¼yYq‡É]´OoŸ^Ñ]õsûýz˧Šç†Éê7vÖæO޽8<êâ«o/œÒøˆ ¶'›t1Þt;¿´ß Ò¹b}U—šúo ¿.梷Ã÷™Ñc{Ƭˎ™Ò­ù—MnµîdÕ.ejÉWaœ;»èîZqÀýÆî•¥¾òkF­U g2âùÝ€XJt· ¦ [æ®íC<¶|Oü¶óZñùóÇ©ÿyÓó¦ò L&è¢õŠõŠÂñêçöç7Ï™Ž³g\v*;]Ûiié6v†òàÁâ×ÒdŽA‡gÛ9³xâI±­½Íˆ÷/È(€@ÚW¬ ;´±zñø¿é«ŸÐzì‹êǯ·®FXçZsâˆùøÍ,|çGNS?þ™/g¾ÌÆdÄó»°TéVüŽxþ/A’$©)½o9bý à·þlã. f-fÞH’$«Bf­»øÕçÛu«ú-~âïÐ}7G´zõû/ú}^ ¾X}÷¹¥×ÄöÝßâœSÓ~Y`6óF’$)íl2¥Û¦§‡t·.™ÝÓ]oÜ çñ›·Þ×&â$óF’$I’¤.晀3òYÀ$I’ÿÊãFÖÝÖ>£~Ûy;bÒbÇÌI’dUÈœm—ên&þÒ÷žÍIýiÓ¾èûÙ‚?ê”<þ>;º(bc#»¬5gŽ8«ßâ\txòÁãý™7’$IigÓk½Þ{²NWžøk¾~ÿ„ˆi}UÞõoTïvä«è¸ß›õè=úI—’¯È¤Çªë±¢;òéûžE¸3o$I’$IêbÊNÈNG)€I’$ÿ•|˜o“$I’›bþ°lÒßÓ¬­=¼æ{ùféŸnàöâEñ1·¬Ól{ª×–šËºîH+r ;h'æê—o“$IVÔ•okÊâWahizþñ¨’¯‹o“$I’$IVTV¡oß$IR=ÕOŽ<¸rŸìÝÕ»kQ-&“$IRÓy­óÚüR¾+#Îg' 8=õt¯ Îë⌋³~Lý÷^]ÝÈ)ÿ 3ëbõÏåâ/}µy0“I’$)¥+V]y°65pq6ègØ=}§Øj`MÏ<:87ƒÉ$I’$Eôiv]5ŠœYée°k°«|‰Ë{.ïå¯×¾ú-þóUèÀ ýÜV÷­wp=ðÛÎS­lŒVš«äåÈËŠ;L&è¢}zûôŠîªŸÛï× \>ÕPÂâÿü÷÷û÷/XPügt«ú-N“.Æ›nç—ö»@:W¬¯ŠRSÿ­á×+«í·gï¨Ó%Ç8wvÑݵÚÿ/ô´ü¦LTñÏÖûÛÀïeˆØ à~cwŒŒÊR_ù5£ÖŒ*3™ñünP\²2ÒP\Ün8¼ápátíKßâ?ÿß—¾%QÐ-sTf{×Ð>Ào;½]õßž¡~üÉñÉñª¦L&è¢sÏ ””r9:úGƒEˆ§(5³êq4Ú­øØ†…˜Z‡ù²ùŸQ¶J],}_åÂðIÇKù–X‹†-²Æ0™ »((sRÔÏðæ“÷ÅE¬Ï·x[5~öá@íÖøãYÍï™ÿlÓC=w?ùQlpoïÆD—ò‰Á½z²&L& ²PKî–¾%QÐ-óÕ‡¿\¦ZL¤~{9yg§nçúªn‹Ü &tQ|“ø&ÊÍêçv߯+ã7$†¢ôBkŸ!_¶(>*½wëFdÐòWë)St¸úÂÃ-,ò§‡·1T_ù1óÇÌÏ«Åd€îZ6qÙÄ‚RnöØï‹NQÏÅS×õÕ Ë\câµ:'vFÙ?e:ikŸë4ø¸ÙþôóÅ?ÛÎhÜéDc±À]o.ët{¦úÊ_ ¹¢Ïd* °4H£ô-‰€èX'['çú«ŸLó"gýh³ø­ä —ñΫ÷B›U€NÊþ0ûC¡…ú¹}ÒkÇsib(JgÚ}rêÃWßUÊj^û‘é«g&mv­¿eË릈žg¼1ðã©kÔWÞ3Ý3½0ŽÉÝuäÈ‘#²íêgx“”5²Ø–•üÙèM¦Ñ¡zIúW2ÜJ[›ÈQVÉuºn[:ó¶Oñ­ž»5ÿ²Ém£vöö#ß/yÃçâ§ÿßPZlO)n›<& ©‡úʧþ‘ú‡j"“ ¨,ÀºKz¥oIÀDgëò­Ë‹Jù¨:6o¢ã̇Ào#³ÎP~~ ”o)ÕS#¯:3 :ÌApò4]´¨âÿIѨr‹ÒAÊÞ¢Úh¡UvЧ>2wã'ëî•òAÀáÐà tךwj*ÝÕÏðF6Ëï/CQúê9¾» >yùXû=´qóN¾Ïõ6ðȺ9Qlßý-Î-š%¤—òxù ù !ˆÉT `Ý"íÒ·$ `¢åå¡x¤~’Ýæ>øÝmË(€ßF†Þ´›¶hŠú‘ûÍô›YÄH€Î›Ñ}F÷|#õóü“Ñ¿»Ž¿U¹EiË:Ͷ§zI¯¶³ÒXýÓ÷¤ïQÝf&@w¸¸ _©Ÿáõ/·®ùb²xêÒW7s¶·‘ø¾Aˆñ×ϲëÛ6±9FïW}“ ¿Fwö>?ÑüÜ›Ô6æmŠ? ®ðLqV¿ýÿØ}*2Z}ÍdÈÎIf&•‹XüªNé[0ÑÉËÊ˾P?á¶›a0-¹Ž®‡…ÛJ¹Œ¬½¡vᦤáÀ'>‘5Q?Ûw¹³ØàNg1—©º˜Í[›ÍIݯ¾ÚI]’º¨ølPÉ(€ÅƒÒ·$~I R^^òj¥Üúñ`£m)n+*/¯´MZé-ËQ?çûtîÊc)nËŸÏ8Wmœ‡¦ß^T9ªá%sRÒëV¯[9£ÕÏù}ÜÝú¶üi|qöø»ÇÔWxgà ‹&21 þïQújƒ€¨9:æOS?Yw5Òµõmy2ÁÄAêyõµm!k!Ëʶ […B&¤$odÞHÁNÓ…PnŸKÛF¢Ä-O®ÿtîñ«¯­_ ¿EEL HOp@p€üKõ3Ë;Ãò.¦¾-OšÛï ‹Ø é÷–´jiÕTL @ (€ÿ”¾¯‹€¨ÅÆ*7«Ÿ¸õÜëúd¼Pd9[X.¡Ê}³œaÜîOõµý-ò·Hy{f¤jµëjׂ—¥Ðtué_«%S)wËN¹ÇÕϬ–µ~¿¹á£Žêk¸÷ã½eÒ êø-å·¹‘¦½Õ¬‡o—ÈE”»eg/Ÿ So^Ô´†©Sª&0i±¡.¿3gä³(}+0ñ¢ë‹®ªM§þÀ #£WERñjʘ•âfehZ½hÓhSef ªš£ Gd¿½úÂñü’±ý(z5庵sfì‹Q_·Æu×ÉZ+ÿSþ§À * *1Ì…œþiýÓr~UßZ™Z=lMÅ«ñ¶Ïmö¨"Wjúd›Ó6§¢.Œ@œ(€ËOi«´b)}+0Ð/ Ÿì¾¦ÍàΓ~w´§î-™Ãft±í¬iÅVÍZ5«à>sUÔa„3Ôg¨On'õ=ÂüK“7~QÌ»*XFS÷–Ìßûo;¸ÂVÓÞcc äCj¨¢’ç$ÏQ5дGtòŸÓ$>Ÿº÷_ÙÆÿ³ðäæKÍ]RKyðSkýÖúÙzòtyºpéˆpE)ù=`Jßò£ kò„ý‚Rö«Ûz~ëù¢6B‚ (™ €î¢†8Q¬l‡l¡í¸yãæåY—}ÙÙÖª‘OŠç%kÛKŒUÓ¯˜'¶Ò7ÆÂÃY·,'}Zãê“ÿqÓ°Ú}=&%9%YeÌ *VäîÈÝŠ[Úü+—®ãÂý!ÅðÔœÉb+}‹î„É­9ÑjSÞÚ>Ú¼–ÕÕVW+x¢X¨X(„1€ c.˜ 9ÞþÞþEõ´ÙŒ•ÎÍõM‰"ºÒ7`ÛÀë_·m;zrÒ5m^ËÅ«¯*j2i †8Qº`!Xª}¨¶lŽ6¢¯ž˜4¢–Gº²…óxKÛÊ*}Ïl¥çº¦[¿fµîÖÑæ˜=y4*t–’Nñ¶Þž,Ï,O¡‘cÇþùÚìP£» ^úÑßÖûç-Ø[Y¥oVµ‹zŸgl>¶´åÎí¸dxÉPaÈ;xÛ¢ªEUS$h¿Cµdÿnb#Ó³Ûf\Ÿ_Y¥oÏ«ë¢bf·xo`çGϵ9f››‚ܘâg!󎤄âD   yúÎÓwTî&ä­ÖþÒzÐãÖƒ¢LM²tZ?6eðûÉ *¶è}ÙÜñ¢­ê”ƒÍ€•õí3:.»à¡ý±uOëž–S÷vÛÛm• yÿ½˜…ö;Wqέ9Þ<Ðì¢Õî쥻ŠBžYWlÝàÄßÓ·ì:åÚ}Ë—íï´>–TCûcssqs)8‘ë”ë$ çýü— Ó ÓÏï‡~?´ð˜ö;W½æ 7eXmýÂö¾i/¹Ç®›‹*¶è5¿î74¢­É'«¾ˆ o3ǦNò´×Ý÷O¯:½Jn+Ün Þe€ôPCœ(€TQQë£Ö+õÞgxŽÓë^¾g×)M¿{lþ¦‰Kwþ5¤w›Ày#ÿ^•tÁsL­e1—ým_.îsq÷˜È¥SNÛtZÙ{oȰe?ÜÿÊ¿÷Cr3ß–¿D~³¯ÞA½ƒYž =*ß%|$|$dòn*—ÌWæ+ößè¿Q¦÷f»[qZ¹˜e\ýtõ‚Ù&þgìúæôÆàà–[ÿvm2rϹ%I— öÖZ|òüòy_:¾sÓÆµ¾[¼–íÙ±i¦Ñ˜„Ó-Zýf˜ðhÖ›ý{'›x,Ï+ñçÄŸ•¼›1x|÷ñ]Õ\—Ã.‡ó·¼ÙîV¯YÃo3¬[Ø 2~tÔ¨›CÓûßu¾1ÿvü{Ý?Z^#Υǂ•N·Fö0wûçÖÒnó¿j÷´Ó‘9=ã3Û}nß=ñ£f6½>1(Ïž¾=l{XѰ‚š5……¼›i£†8Q¨Ú’…dAyÃ䆉B°+°+È3)Ï%îÛË^s{Íͱ¼àyÁSþPé¯ôâyëâTèQè!x묿ì„~²~r–8÷ÖEÕUÏÏO´N´Vfñ®Ä,õrêeÕ$÷¦îM ®ŠsW-N¿Ÿü~’UË}šûT°á]TÀ' `ø—4Ÿ4U°_;¿vEò;;ìÌÞTYÏž¿{þ^“R=¥ºŠ§tXœOœÒÉÕØÕ¸`weíªC6 Ù”Ûô·w{WÞ$7 7@°â}袢E„­˜ÿa.ß7jѨE¹w+ko]½0:?ûF=¸¯3 j£†8QÀÿðÒû¥·êɯ ^òG®\;ì6®n\=Û¿üÌÍö4Û“uv~½ùõòÂ҃Òå¦OõŸê«V³æiKÚ–´MUã°ûawÙÚ©K¦.ÉK«¨£û]ìw1gßF§N…îׯ]§ðÎuÏu,Xs€TV/¬.¬ŽZµJñÈ«WŸÂ´!3‡ÌÌm\Q{ë— .y®–X.k™°(a‘2Tˆ"yš/€¸Q@»*¿*W|jj¥ôw¯¿{)²&¼ÅÅáZ˜w˜·bfhVh–ÂúVû[í•£YÞ̃Zj)ï_~e¸btØ€°Š©Ÿ|&,ee¤„$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$‚$âÿŠ–lÑ,1Š^%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/throttle.svg000066400000000000000000000123261431412030200252550ustar00rootroot00000000000000zyxcxbyxaiiithrottle()cbarxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/throttleTime.png000066400000000000000000002131431431412030200260610ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝuXùûøwuÕ]W¥QEBR ìÀî\[°[±;V×Z;Ö^cµƒi°»À\cíN,8¿?f?××÷ïpûpx>¸®×µ—KÌÜsÏÌkîûÌL:À"¤#`h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h€…  ‚0XÀ`!h§§ÝO»Ÿv~ý8úñži{¦í™övéÛ¥o—|“ “ “÷\ÛsmϵèEÑ‹¢Ž>}8šÀ¤Ä¾7ûÞì{]5ºjtÕ½{÷>Ž>ãÕg¿úLXŸÀÜ=nz½E¯½èu½&cqÓkezÝL¯¡éõ´O›^ßÓk}zÝO¯r„€´ŒðWòlý³õÏÖoúnÓw›¾ :1t¢Õ7Y$²Hd‘3sÎÌ93‡íbÙ.L¸0á„Ñ.£]F»|«| ]]suÍÕ5>~øøácóÛÝ9wçܳ¸àâ‚‹ žUxVáYß*z“wLÞ1yÇÕ W3\Í@>R/}æ©ÏB¿ÕYUŸë³q}fÎvþG[C[CÛý ÷7Üß°}Îö9ÛçüV{k“§Mž6yªþ þ þ.!]U à¼*ýªô«Ò»Bv…ì ©Ù£fš=¾ÕÞÚýx÷ãÝó;æwÌ/µDO_Z}É¿UÜô­¦oA}kšÜôº„^£øVqÓë3z­F¯Û˜Üô:˜^Óëcß*zzmP¯r¾ãý.:}túèôDß—R_Ð?Õþ©öOµzdè‘ÁÊ,Ù^±½b{emɵ%×–|9î帗ãØj©×›îoº¿é¾5`kÀÖ·anÃ܆™gÖµ kÖ&,.W\®¸\f¸+†+†+Çüùó¯_/¾^¼yÆ-°s`çÀÎâdq²89aIÂ’„%ä<À<é³J}†©Ï6ÍóܪÏÒõ;[ iÓ£é¦?š>³óÌÎ3;[™± 3&̘0ãîØ»cïŽe«!mº®]×®kC‡8q4ç½uñ²ÅË/{vëÙ­g·Ì!nú’èKeÎqÓ·¬¾•Í!nzÍA¯?èµóŒ›^ÃÑë9zmÇ¢§×»ôÚ—yÆM¯êõC½–È1øt4€ažhfÿ¬øgÅ?+š¬m²¶ÉÚ; çßd·Äæçv…|Z»XMR掗Ã_³ª5ñï5 v…bÔøº‚+ÕëfvÜî\³RàÑ¥³+-ö-2¬[ñ …KT wëìôçL–Œ_2~Éø×ó_Ï=Ÿ­iþ*'TN¨¼>ÓúLë3}Êv/Ô®Ä8Ïò¹Ã åÏYƸUo´*6¯¤G¯v=–5ñ,Úþ·ažSÚZ<¸ÈòfËg —«;d¥kB‰nM3äõqÔ\åüȇÕT¹\år•˱b'Ä~ƒO sdÌ‘1Å*«X¬âÇ-¿OKÇö.]'úýãæ3K -æ=tc—ê{ª‹“ëüTlˆ¶¤îƒà¥òÜ:‡‹=ÝR$Ì3ÐuR¡Ï¹~K‚BÝCJÍw^™Ûùãþ®õrëåÖËwFïŒÞmÈbÈbȾø¶ôÙ£>“ü¤G†—zèôðný —X:{äVß"Û§ï <ªTŸ·;ØQ_ðSðਲ਼žËð׬‰ãý»NÒgž—C»Bu.¸XåßätÁæç¼ãpm“µMÖê3y¶&,Û“‰O&>™8.h\и OÙ[}ý«ÞrÌS%¦wÖñ®Oî[èû_ö-ˆ÷xÙîîr_Ï&ím–ðìØºÚÂóE\Ÿ’·P½juû*.ƒü§ÔÌèxÝZÊ™ÎjñÇýÝgœpæ~Áûïdk²Ý8wãÜsá«ÂW…¯ú¸ý%G»ÑmòÕ+[¤fîBE›;öÊïu¬kì„ï|³ È8ËůÛàó÷ù… :0ÏP´k?›‹=WGŒ®]°vC߈‘y‚–—û¤{dßóûžß÷ÄgŠÏŸékÆMÿ‹ú_ÿ”å÷n_ñûÜž•ý{Ô*гáÃ_÷¸oü¥Â‚‡Ú©Ën{Vo²\òìÓúÐ"¡H­&¦j…–U?; ‹KbàÕº¶yÖÚº8ܵV>îïê[\ßú_5á²²²èu½æð‘ÍÅZîöneß¶ïïܪžç˜À‚Ý[6œ³Ùý]…eY=ó·ß¾b†ç¶Ֆ4)r¤ùä™3 O©]sx€[d©•-®ç½Ÿ×à‘ßö§û»zmG¯ó|ý½U¯ké5®[~½¶¦×Ùôš›^Ókqz]N¯Ñéõ:½v§×ñôšÞ§d»^WÔkŒ{Cæ‰ðgð¬Ã³Ï: >èÞâçp×¶Çì-¡3¼·]ÚÌ9d¾Á^©Òç_)í*\”«ÖÙXìJçL¾\}èé_9©œTN²}ÍÓáŸÿtø'§œ~ø–PT½éyžµn¸ða÷ÁOŽh6rdllPÐç{•ß=¨è¡úÓÇ­,x#ÿ@ï¾¶—R¾l“#&GL~ >P¨_.n·ÒÝJw+]ãõ×7^Ÿòe+{£@YÇ\6­ÒÁ¯ÌÕr-–ùíóî­ò¶‘CKmiV:ЧáC>ÎðÀ=ß»¾w}ïÆºÆºÆº²_¾>}Æø¡óÌΙ…¸.’«Î}RìÊ+eÏí  †ƒ+Uú\ãÙ¥ëö†ÌŸ½%Ò×{›{\µ¶ðxL}V¯ÏðÙ¾° ‰Ë—%.[•eU–UY>to­Ð­sdþ1áu×^ö:>²sìú ïÏ{ÑYØèàýG•¿{Ý-ðèC—m^îy¹çå~Ûèm£·ØÊ° /ÿòþ¯å-ÿkùhôæµ›èQhz‹º½7¾7{MPéÒK–<ø¹Æ£‹ËÈìŸmh‹Eµ]"²·Üõ¡{ëÖ¡[‡nj8a8a8ñEwÂpÂpBÿ+ºle3´Ýãüs‡}öô|9¢ûéøÀsŸ÷(×íÇ-¹}ÚÖ8éàZËÖÝ᩵šòeÓ3AÏŠ/—uz=A¯-|@-âRõœŽ Zv›sÁÃgà›}Ïü[~Þ¸õ©+åôÔ¸Äo™ åuo¼ËþTÊ—M¯ùèõŸ/7½~¥×²>à¶ŸÞ}m/éu3½†öyã¦×úôºŸ^Lù²é5F½ÞÈÑøP4€ažhÕIuRR~*ýmm™ ϵӷ=zíó6R>î­V¿zñ~µ¼Ý§å­—¢ö–lS²MÉÇ“O~<™-þmÅçŠÏŸ«o¥¾•úVJɶ+ø¨X‚ýƶó–\+rûóN(S>Ýu¼tÀÓ:sGös»õ‡~[ý¶~¾wm7l7lÿ3ëŸYÿÌšòeX¶¹òO¾òujTqñ·Ú[·M¯i¸¡h‰[©×Õ>Wû\í™’œ/ÙìlÞ Ý6o-ï³à[]AôzµÚ÷‡rí;x9LQ1=:tþè¸q7ân°Å‘zI$ý‘ô)?C,Û𻈠ÅwÎh»³Ëçm÷¦| Ø7êÈŠù¾/ãU#E ‹‹‹¿ó׿îüõ¹â¦ÿ6ý7§èåJ޵wæ ïœ}ýmïößê(׿Vtu¿ÈÊY{d-Ð.å[\ÏÏ7½n ×Rò×óuòˆ³õj5xÞ ß*n#\N÷ Tž˜à>!åqÓkAz]èsEO¯Y¥|ôš˜^ûVÑÓkƒz0%ˬ×õ:$Çg %hÃ<Ñþ`o»¿íþ¶û°ôÃÒKÑÔ|]þj“ý'¿Šë˜¯ÂÕoÕF25^ujY¥ÌØpß²®þ)Y—ÃsÏ=<—øúââãâãRt1ã÷°ÆCÇ=^î,Q´Å·šVš‡?u-på/µ¸z³êg¥Y½gºñ8âqÄãø„ø„ø„‹Û“æOš?iÞ Kƒ. º$ÿ·\«ÚϱYªV«Û-¸AbëNG+Þ6·½õä’Æ×J•­ÒÔ-cž}ï)d.˜¹`æ«W®^¹z…}ðyé³Á=ÀЧÁAWÿ«N["ÊŒýVM_S㫸=o*\]—âsÿݱ¡Ïüõ«r©Å¦Ñ›Fo¢×²üÝëNGì[á_ËÜ® [š`UËshI·\)Y—¥‡–Zzˆ­T#Äb™¶dÚ’iKR’áE:Ù˜Uªóü«Ñm¾UÓ×ÔX|ýŒ2;K»ºÖjÖ:Eí%yŸ¼OÞ÷)ÁÓCJþV¹“î;¯ìï˯§¹å†$}°µAÅñÿ¸HɺèÙ¢gÎÇÅM¯èuƒäÿ–ÇíÒr¥ïÚxÓ ŸBæ·™aÏÚç\ÞϳC®mÎ7sVN~]ôº^#ú¸¸éµ)½NõžÔÏJ³òÓk_zÌÜ¢§× õúaJ²N¯IrÀ’Gæ‰ðx¸îẇëJ-U´TÑäOsª‡ôŽKxÝiUÅãæÖF25^¸×¼ié&å˺8;¾çÂcù…å–_ ¾Ž­·NÜ:1ù-’·[a›s]Çmò 6·i¥É±lL_£-“óº¿gê\`i¥–Þì|³óÍÎ)ÛÅ^˜’‰ìæ€ÇýTØ6hPÂÁ>1gëóɯ]ô„è ÑØŸNŸ&Þ)_6ØÉqÉ…{›–nbnM_ScÂëAÏ©ù§w\òk§_èWäÌSb£ÄF‰†õÖkX¯äó¹„w“™ys Ù»Ê?_j¹‚¼þðÚ€Š¡U:îr>üž’Ή˜1çË—7.dÌÓ‹2/ʼ(Sß³¾gý÷¼¹Ó½c“%݇ü¼ðžæÖô5Ù þašÇ¶)NsJl¯lüÚMš5=ÊpÁpÁ²*ÓÃÃý§Þó€â9Õæ:†ôª”ö½žZŽrÃ~=±&°xÕ›}3¹4N~íôÌѳ(åY§×’ÿÍ9ãìÖX×ëtpÍS¯å©¦¾4266(¨Å•Ù7=Ò¥¤ ¤×‹R7½¥×¦’ÿÍzK¯w¥–¸éµD½®øžgõMÜ:qëDŽÞ€)4€ažh§Èµ»×î^{Ï›0Ê»89þq}K«?Ê6H]Í$ãq}µjoý½ça³9Çå—ÓpÉpÉp‰ ùæg›Ÿm~¶÷Lú‡SðòÈÆ±“ƒ ¥®©ù»ãÀáûòúú¨áãøë{>uø,îYܳäãvÈçÏ!Ÿ÷¼wðž_E×ãO#ÛIå{¥Þý4¡Z§Ž×L™\f¢ç{Þµ¼®ÔºRëJ±O>Ø%Ã%Ã%}Ö—ü¹f}µ_/úK-M_Sãõ-Û‹—mP>8ØÞñä×W¿: A`>^gxáu†&››ln²9ùìíxau]¯ú©÷Úá¿‚µÛ¦I>öÖZÎÌV&?¾\¶fÙšek>ëñ¬Ç³dÌÇ}›û6÷mÜò¸åqËc*{mûæ·vK,6fRýSKÓ×Ôè›o@…Y½“?.õ¬Ö³ZÏj '<67ýÿêß™üokðGÎ"­RûQ®çÙ]jÑUNÝÜ;ØŒ1µ¦zé•|Öé5äãVãrd1×#‚OÏ Ü—zã6xÂሀà’WšOÊûžW~èµ£äã¦× Þó¾5|ÕëZ©8ëÇN*¤×“__½VÉ‘0Fæ‰ð{\®s¹Îå:ÉŸü~¿Sn‚·á~x›J¡©½õûîøïo­|ËæôXë¥É’ßÀvÛ lgXcXcXC¶|.S¼§xOñ6™p}¬$+ßÇw¼(Z;µ_Ò†N’ÝÿI~;yï体÷Œã3(fPÌ ÷|b±BØÌÀ¶–´ŸêãÑcú—lûž·g]–uYVö/@Ь1¬1¬Ñgz& ¸Úõ²]ÎÛV¯lÎÔÞúýŸñþA¡Rèïw¤÷¶Iþܪ_),ø¶^•{UîU¹*?Uù©ÊO¦rÕ?WXqGq°vøh@ Kºv6ÿÄžÀÒ!¥ZÞÉ—ÏÔº{FzFzF>yûäí“·d ¾-ýmµïy¡OîãÃÿ ¹´¸÷J©½õûîXbâÌçQb®ÓÞçŠÅ˜lÜ®k½®õº„A ƒ½7ý_ôÿkêg U,QסÀÀ{Oø»[ÒQnÄÌ3ÅoVZß½cŠÉgŽ©7+ëu€÷|D~ì†Þ“-¯¾ÔòâÜEõ“_w½Žd7½îôžû}‡N’Ýÿ±¼¸éõF½öhjÝõº%Guà]4€ažh›tcÛm7¶%²WîÕ­\ÖòšIætÌTáT»)>ã\ÜMÅaDÖYGÐXú fw˜ÝavSqöʺ&×®Á84³¼)æ»cçö†yL~ï;ïuÞë¼—·Ã<üž>Ÿwm¶1ä‰eï­÷‡·êàßÅ©¤ƒÉ ¼µ³ÖÎZ;‹} <}vgêlÒnJ]/÷Wsöì«pÊ¢Z¿F£ro~‰à²ÉÏ1ô«r_ßÛ¦o›¾mv1ìbØE“wt͸Ó5ddÉØæAy-û ¢Á° ÝM> 6£oFߌñañañad¾¾GöìÙçØžc{Ží¦²Ô§i¯ SÊZRÓ×x ÙùÇÛýë\§ÕÞܶ‹©8tšÐiB§ †ÒÿïKÿSßz¥SLþt#Š¥îûVSôˆãy³# ß6=»ôLÓ³N¿ö7õýμFØn¸a_OÿŠ–·vºmšü\N¯)éqÓkMïi™·ß0Ì{¤eÇM¯=êuHSqÐk˜á `˜'ÀIxêôÔé©“f£Ùh¦Nr§¥&ëJí²ìfÒÿŒMÃ=+åѸD™Â«LÅdAÖYÐþHËo,¿±¼©Ø–ÌÓ,0oøˆ,§«î´ì)æ»cïc¢¯oí÷<´gè¡¡‡†šú¿¹Öç\‘£ÔS­Ç•švöÖ—›;ü]aqf…Zç=n*2ªŸê§ú±ßŒé3:“ûkÜisáU†¦«UÊoÙ­ßwÇÓÒ¡”Éâ—~Õ _A?øJnnnwÙÛeo—½¦2³ñ‰)9 ÕI;×úøË……¹= ¦bRgGuv$~ïyï 1‡èœ5sdzX©­Oè°´¹Ÿ¾9Þñ|ÅúuÝ ý•×d ìŸëÿ\ÿç:û @§ÏâL5FµŒ¨âá”vš¾Æã¹Uë9c*>ú„~5A.áK›×{^ïy&ß©Ùtùô2…î¥Ík}l¿x_‘M&f^£¼Fy‘Eøò&C¢!1|Døˆð&ÛuƒF^\ž7­µ~ß=:¶µäò¡×ûuŽüÞíDZ>ÊEÔ]·È»à‡ÆÍgVeûÜÓ‡>Õ({hû¡í‡¶g€4ª²¡²¡²>s3>G„ôõŸ™»îÛ.û ûÓú}wÜQrÆò ì¦Î­ú•É…Ïëùéç§ŸŸ6•ueg´Kq½`<Ö¨:°¨«Éû ï%ÞK¼—Hváóºq%âJ„©¬ó\‘{´Mßÿ]–Ô8Ø"oïðj“L>(;OXGqd™Ø6A´0ÿglxî×eî«“¯“DŽÛË2±zwìþ÷¶DŸGÉÇM¯A«wG½V©×-#¦×99 m¢ü¹l[¿mý¶õz Ç®»j쪇UVyÈǬ? `ÃáðFÈ•=Wö\IqF(™ÕÃ’©ñ^›6ŽåâLM•Ö\XsaÍr̘Ô_ê/õç"7Öí?êUA?SÑ{Þ¶}¿ò—Ù7Ç“ƒŸ)UÌäãzŠ/~¼8û&¤5úlÍdk¤MT¯rq´{M£FD´õp3Ž›~e¡_ecø\Ú´hŸÄ3]æºÿm3cxÉ“ûp¥ÄK/ÏÜÊìy.´n®$$Í4{ÐŒGVâó 1„BJÞ-y7©gEä/^©Pƒ“´{M¥\æ%j¥LÍIªŸÐÝ%‘cš©±Äì¦ayC’ȺÜ^GlÅ‘cƒ‚쉒ñØ|Þ̵…g˜ÊºÙ÷6ö·"JÆ£^·47½æÉ i àO—P7¡nB]SÇšÁ‡°aÁÏ ~^ðsHùÁN¶É÷f\G©byZGÉjººõ‚+˜Ú9­|´òÑJ2M÷rÓËM/M¾ªÙ» 0•|Ïh›=ȪТ÷ÊÇpdh‰Y…/²Wšg/ìDº¸º¸º¸&H8p€ýÒ}†fjN¢¦›_5¸-ÞäÇ7ãöÕ¨X¾ÀylòÇP¿Ê Óðéb×Ç®]oòãEwßš\#$?,½w>S1Ü£îQ÷¨d>ݦ«›®nºj*ÓJùÍ÷ÖÒèM~ œ3¶Õªå¦bØ÷‘rÝïŽiÆãGÞŒ1·»f/-ü”(™‹Õ¨?ÉÉÕ8nÁ':­$>¦F½†i*ëôú'ç¤4€?Ý»÷þ&fpÊ¥éð£Œ2>Êh*ÎüÝ4s©Ç´‹R>v¨WÔÇe²q$‡,²dÈv6ÝœÆsÏil%ðÒYâFvŠ]äÅ$2%cß^ÊO¾çMí¿ÿÎoTÖŽ½ÒxL¨Ø©}ÅUn2Ø\3ŽÛÆtÓmäƒA&è34ãsA‡zõ~s™Ls7å㙿×F–zlò£e|”‘|ÃGºg¸g¸W&c™Œe’¸n­»kt÷‚U¹.ø€·÷šíV8‰+ÇŽ $¬KX—°Ž¤ÃÇyÙúeë—­M>¾ØzhûEMiî¦|,hß`hø<ãH9בGæhfjìpäÏÁž¯M¾þéòña鈒ñ¹ë@¨ÿ"Sqë6q˟߈Rc§Ø5A^z=Ó8nzý“³ÒÀŸNoèêÍÝ”¿©fpòÒt¡lèØÐ±¡ÆIÓß>¨›{#Eü8è9m|ÊýkjW¼Ýív·ÛÝÒr¾==úôèÓ£&?¹ßCï[”é㇎5s®å•Ä›Zžúz¸òðv“ãñr¿+¹ÍT6¾±{c÷ÆŽ$X*}Vfò±Ïs¢”û—¶î‡ŽýíYçÞ(‰ËÑб¡cCÉ:|œƒ¥–:˜ÄQs¸æüÛJþ穹s¸"ø€±Tl‹ |.!¾íúGu{Çí·w$ëðq‡/_nœWyó— ¯Zކî?ºêü¾ÚSs•ž5v,:cš©Ñï~{ŽŒãVÿÎø²î鉩±Éø©µ %q[‹Ç«2?åÊL|L>º‡0Þ·¨©½U¯…rŽ@Z@øó¢ü¹¤Ñð“•OV>1ùÈ»žmö„–¡EôqãŒÈré¼ã¨‹9,2-ïló¢çEÏ‹6ŽL¹Z:ÿÊ”ñãÆ¡¡Çº4µ/ßÿKXY‰½ÒÔØøP‘‚ÎÃŒã¶éð¦Ã›s‚K¥ÏÊŒÿ3"û]õRhå~ÜøÀS8ZÆÔœD¿ú ÷ð¡Ê¸•q+“Ä{¦Û [ÖÛ3k»:oíckÕܹsçÎ;ñ|âùÄóäRîu—×]^w1uü9eò–A4t?nô¶ê¶xbú$î^^¯cž{ÍL}jH™}šÊÉaçNúÖ#JI¼3>ë黬Dë²VÕŒãÖýÅöþE3%S£^Û4Ž›^ åL´€ð—C3øS¤Ñð⌋3.Nâ!ZcÜJ®öM[èSÆgÅÚg,¿ÐÔŽ÷¼úóêÏ«§µ|{ëöÖí­›©˜ôÓÖo#“ÅOë/UðN{t¦’‹<†°Wš/ø7·-Äç4ó½Î÷:ßkÃtÃtÃt&`Iô™˜©9ɳbêŒò iå~Ê8Æ­ó_£c«_}H¹‹µ.ÖºXË8—"óÊ9.ÌëdÃUÀ§Œ…cC²;$QB:äuÈ눔۾~ûúíI¼¯Î9®ÂóúUhâ~ÊÒpÑž}yLÍ[ ßÓÒï2G3Scñ•W9Ý7ŽÛ/æ/ñØN|L­öÌôXj·â­u:C|LzmÓÔÞª×E9_À²Ñþ:h¨4×N|šø4ñ©©T¸3©u—r]i }ú8úVÉýŒ#¼aÚ†i¦¥µ¬‹™35fjÓÇ:mœŽ1Müôqˆï‘)=LíׯulV1{¥©±Ây—މÆq‹Ë—5.+ °$úLÌø˜?úVçÁýhß~úxgÒîô庚š“èW"ä!Rb`—]&qOa«Wó'{lfþÿécøÚ¿"½G¸I£&š4"‘r§Ož6Î¥bC&5ÚØ&î§E䎆ÿaáZ ÃþtkÅÑÌÔØ3f×E“hd°ñegM|LÃGj8ÉÔ\npÎC ˆžéÔilãtÌ8nz]”ó, à¯fpJ¤¹ðY‡³gŒ7|à œÓÑ ú\ãõæ­†–-gçÀ"E‹¤µ¬k’¿Iþ&ù£Ñmâ–·>¿1Aülœ)Ø^rN¢äºgQý,Åk±WšµÁu/Ï3ŽÛÀÍ7ÜÌd,ªH]$°H`ãcþõæÛž•-÷­š¦çÃ6؆¼ywyR{¸á‚ÊåÓÇY¿!‘¼7ÙÞd{“Íä£;»œèèÃÌÿ3<êsß™é/M¾³°öÓÚOk“HÞMÃMÃÍ$ ¾vŠ›{‘ò4n?×X²íœÅ²©½udØ¢AvÓLÎ+¼¾·Ä³è²kçýÚScÍ'Cθ%ñäÈæ‹fn*<“ø˜õ:g®Êß$“üœ5`Ùh[4ƒMIs à±YÇf›5‰Ï"=¨w ¸;­ Ï;9]wèkíûsîϹ?'-ä[|³øfñÍL^¨dŽý>(+ÄÏ5vŸ·íŒÏmã8wèP´˜ËtöGSãë¹;T4YdL˜00a ÓHíôÙWÎ òÊïÐ÷Û¶KÀ©½ ó`QóâîI\^f›u,O×À{Íw4ßÑ|ÆùÞñ©ssþÏ;Ö.6<«[/ãhïŠØ±+‚lDò–f[šmiWRÞq=&иý¼cÞ¥"ª–7ŽvïB_wŽf¦ÆæMg–,<Ô8n 6OøÃ½ñ15öÛ®…úU1Ž[¡ðS¼‰É1sì÷AYMÕ—ô)çX*Àæƒfð»ÒRøááµÁÚ`Äùòh‡¨ +i}Þq•O•m~Ý£½uûÖí[·§…¤;Øð`à #Pýè€f.¯™~æOñ¯<Ó0ð¾É7Žììä[q{¥©±Û~ÿ†nýãv±ìŲË2u€ÔNŸ}çWùŒ³óëNøóŽ/î)Ra¥ñéW"úU 9 S†5ÖhX#ãüéšÓîrûÌcŸÒß$öÖ–³ZÎj9‹lDòJ8—p.álœ?% Ì>%¹Ó²ý¼£ïÉÈAskG»nâèy´É1òÈvþ+Œãæêìog'ŸäÇÜÛ ü™s¡qô†l;: `!ñ15ê5Oã¸é5RΰT4€ÍÍà4Ô¾?ïþ¼ûI<æ´^ÝÂyò…ÒþùãÍZ¿—Ýdó¶¾m}Ûú¦…¬µnÔºQëŒ#нݶ>±L ¿ÄX¶A»zÎIÜsóÏ“‘e2³Wš£OÔû%ø¦qÜ·[Ünq;¦ Úé³/ããüÍZ;"Ën¢ü%Æzu+l̚ijpæÝŸw9‰$Äâ ñvìØ%ñnÚáV'gò¸ÎÏ=æ‰u ²1ù,œ ˜Hbg?$~ˆqÎØj2¹— YûE½kîeºqÌ v-–Ë~4G³äǼ>…¶ÛÄGohïcJÀâcòAÐò¡®Ïãq{ýJïÆÄÇäóùÚmàk7½FÊ–Š°ùK›Íà4ÔŽ^½*:‰M»ºsUO¿m´¾Ä˜x¶ÓÛJLí<†æ†æ†æ–u¿{üîñ{ïîZ}âR`y&…_bl7tY/Ï@㘯Pm½ÿöJSããîmBßÇ­NÆ:ëddŠ©XsCsCsSó±Ä³®WÊ@øKŒ«;Ïæ·-‰BÀªèUÑ«HL{Zïi½§õŒsÆsv¹ ¹¦3ÏÿrcHhËçùò'ñ™™7gÞœIfÂX\¦¸Lq™’x-ãV³Âஇˆ©Q¯yÇM¯‘r¥¢œº¤fpjO¾?ùþä${a|ó€Òåͧ skà/–}>nJ©©E¬M÷øÛ9Øï²S&ûö³s\²Ö<:åºl—¡‚â²Áñå»2-<µyÛ(¡¥Ì¹±Ôt^‘ÎIÜYøäÇ'?>ùÑRóíõà׃_6^ëüš÷ Ûæ0!’ïH€ˆ¼] °9§/›×†ò1¹½gwü¤k`íwо´k¢ÿT‘žeÎå*:bÁ™J·Ía½ŒÛÓÅïªqä»5ð/âÖâÓóY,Pûj±vïþæcß7šX²[J~vËΰÖÞýÙ£9ù– 6‹½õXx£J%M~\ÃÆ`c°ar©‘>ã2>¶7W­óMsh”šjû~e™’ÝšW®¾)WÍ9ÔF°ŸmûÌZó?îù“ƒëÀöý í|W8ZÊ<ÀÆoü¹tÅ/ýª„Ì„±ÓSOO=Dc£Î¥‘Ü \A|¹±eù9Ó<’h+¿*¿*¿’™0¶zõêÕ«WçŒÿÕᯗl0·¦iÈ•ÅCÔõ\:ºãŸsËxç‘ûvÞ¬Ö£l–Ø>³›éºÐcš‹Mt-ZûuÒÈ¿™sØõJõí6G¾ïkå¥ßåLάÍäõ§qÜšÔŸò¬Ð`âfr½Vm0;‰få-÷c®â–ü¨×?£§×K9ÀòÐN½,»œ†ÀuºÖéZ§«ñ¦zѺý© ¹Í¡£\¯[5¸t^/Û:9ËZ} k1-o”¹nž àù¹ÊŸñ‰4^æ³¹Ïæ>›ÛRóíÖ”[SnM1^ë î‰ù»šÏ„ìÿžÃbuÖ*èÝå4õýUöÚ[àηJç°Þzkï²B€¯sò?õUßœçt‡@)‰O.ÌõÔÎêÓóùm©NßWì’?]«œÿþï]JïÿÙ_Þxûh¬€ê´Ë¡YÊöëŒÍfyÍŸÄ[¬žå{–ïY>&é3.ãcûü\ƒÏúDšsØv«Í ëFÉÏݶ8lž^µfM©­æÖ~Ñ:ºb…$"¯_•™0¶~ÔúQëGçLxµ—¼ŽqñåÆ^w[Mâ-é3~™ñËŒ_ÈLëÓ¤O“>MŒs¦D‹™¢2šÑc“·Î]¦ v©tÏ”×—¼´®Æ6ϰω>žÓŠ/s‡]6ö|ÊQÎäå¯ïÍæÿ½qÜÊÜh;Õù{âfrì«ù™ÚSˆ[ò£^ÿ4Ž›^/å<ËCØ2X^38 5€íòÙå³Ë—ÄmÝÃý+¹}Û¦Ëóí+ÿ°ð€\cmÿ÷“m=¦Ý.áÕ!fu½ÅNmoR½Ô0ùY‡Á™‡¿*‘§ð ýžàmA}ƒw‹Öªç|À8ò»Ëì.³»Œ¥æÛ±‘ÇF™ÄÝ6§¦Ï(ôÖÜÏòîÚ—Î37GßþÕ¢Ëù |÷{ºÕÞ2ËgPŽš9ßXÕ¿³~•qn›ÛS#\®ä<›ÔÃ$?OV¿û;7çµq˜–’}<×ÀœÓrÕê×z!/ŠÜ6·=wZxÙ’^ÕŒãvå앳WÎ2 €ÔHŸq%q9Zk¡CðsnëWl·«Ð¨Ýµfe Rþ¾ñÛÆ€%Ýšvv›`ýÕ!«ÿ9#':¨[ñ¬µ»lZÉÍxô«2ÆF¿ýbt÷ÊôûW›â׈+ˆ/7¸S@°qäÛ>jû¨í#2ÆJ'”N(`œ3!ÍÙçk>íR§“%{UIÿßÂíÏÑ$ç÷nÝëuéðзÍÀ\³Çúßa¿äTáR­ÂûµÏ¹ÁqPÞýï®K±æ¿>ÚpÜÜÀAã&Ôù«‡qäl™°Ä½2G9SãðÚ§¾”Ä”{s±KÜ’½³UˆÈýË5€-5nzý3‰güŒ<6òØHÎ#°<4€-e4ƒÓ¥åÐßÛÉÕÞ`M½­«/•õ+ÍjH\dÓM!M5®Œ×Åå„}›qæÙ¾˜£y§ÒmŒ—y‘õ"ëEÖ–šoÛ¯m¿¶ýZŸßÿam¯íæ6-3~ìÌ»ÓÇ…O ÔÜÏŸeŸ¨ÿ»ÏýÊso0ç7Žø²8nýr à]kªŸòß¿¶vÕËþ®ÿíãßYEXUºü¤ÅÙ2¡æ¶·nÉV(°€ñzÖk‡5Nüé3.ãcûÅ”ncž à×rT´Ú,øÎ[Ì[ÿžwß ¬ÿ÷_å&Vôojþoö÷.2ÑÞÔrÿ-絜×ržq¶ ¹qô`À:® ¾à3„œN‡'õ ¡à§ÁOƒŸ’™HI}IWºø’éw˜C£´hlÿ¶3kÿßC?¬÷ä¨è+E–žcÐÿïKûÎ÷ÿw­:Êf‰í³ÿY#3k—¨?³úî$^ùTq^×1ùos”39ö‹Õ¾ü¬–Z_*_+|t~7âö¡£^ÿ4Ž›^/å<‚´07 lIRo38M7€†yç{hM—}ƒê Åw÷¼0¢ çøá¥n©”’f•q“Ø<ï¾s¢õØrCŒ—sÌÛ1oǼµÔ|[f»Ìv™­ñZ÷ Ûy¤h¤yNÎŒ;Óüè¬Ì…WÔì5ø…ëùw?‡Ø¯ºÑÏÓw:bëÖw—­ÔÁ…V17-¤üî¶Œ£Ü׿Ø2âöõï¶Œ¸q0KCwëÏ@ÿš_Æá6·wÛÏÎqÉZûoòšÍñµ}µQ‡JöÒï2¼èÓ¼WéNoªw\]1Hÿ©óaͤÿ-–ý_Á+u¼¸ÓˆN#:øú™ðu¾†ÖZh}ãµ6çwÿ÷–ŽïvV-úË»—Ñéøfß3ÿ–æ?ÑüÒï6õ èjÜö;•þ/ó›µnZ®Í»æØ¼/,S`6ólý&ÿài>Ó|¦ùXêÞÊ_|ñeÙ_úŒËøØnÎïNùÀ—Ÿl^&Tÿ©œ's~ouÇÜÀ¦ÞLfòeüåÿÌÿ™ÿ3ãl1çw[È„‰wÛ–°-a[‚Ìä+%õ%óyp©… †ÆywÙŠ7^lûËhýw[Räk¾Ø’âö5ßlIq3õ`½^Êy„¯´07˜qvÆÙ‰Œå}mܹ=2üûðïÿOyëWÿþ4ô`s¸çØßÛÉÕÞ`M—U qZ«/U›‹Þ× Ä$:uÚVñlò«sÍ›µ‰1ÿðÅÍ;•nc¼œ‹¬Y/²¶Ô|Û~mûµíI<î/ü‡µM¼¶›çälDáÓCµBRIw‡ÿ>Q듹R¾Ümõ)æ×üœã§~†°,Ž[¿ÎÞ±ñEõ×úï·~b¥Yý÷q‡¹=ÊûüwqåœÝë^7íX«‚ÁœÀ[ò‡ ,`·ÃÚaí°f¤BúŒËøØ~1ÇÆ¥Û¤öwï®5+kò ,ì`_ÍÜÀþÞE&Ú’š“ÿ-絜×ržq¶ ¹qô`À:® ¾àZ8LⱨÁOƒŸ?%3‘ògÚ•.¾dúÁæÐ(ýŸÚW†¡¥LÉO-›ðç_ÿîÜêMÿü…÷¶Î7`^i«%Ùf7Ÿp‰ú3«ï¾jùŠóºŽÉ›£œÉ±_¬ägò9Ä-Ù±|­ðÑù݈ۇŽzýÓ8nz½”óÒÂÜ@oË 7nÇ®»j쪔7}õïÿúMßw¥¡°]>»|vù’(¾t÷¯äöm›.yªÛ,ÊqJ_ž-ô(Q(%?µ»V­ÓÿWð2çpt­z>ÁŒ—sw™Ýev—±Ô|;6òØÈc#׺é©é3 ½5ÏÉY€Y\óü÷ùå&Ž™sê×NÝèçi¼­žÎíñ·9O4#\®ä<ûuö޳ÚߪP0×ÀœÓrüÏ}•–¹¶ÉÓ^ÿï¯ÜÝ^˜çúî8-¼lI¯$¨uå앳WÎr²€ÔHŸq%q9Zk¡Cðól·¹Xûl˜”ül£éUÒ;ë?Õ¤OÕÁÎ+̨Üý`ÓJI” õ«2ÆF¿ýbô ãœé÷¯6ůW_n<þp§€`ãenû¨í£¶ÈL+P:¡t‚q΄4[tfŸ¯¹5€ó­ò]ã ”üTÕ»5_¢ÿ”à ýÖ˜ÛÀAã&Ôù«‡qäl™°Ä½2G9SãðÚ§¾d¼Ì{s±KÜ’½³UˆÈýë4€-)nzýÓxÉõz)çXÀ–'õ6}ß•†ÀuºÖéZ§«ñ&yѺý© ¹¿mÓųZîv=õåù«\µþM“ÿþ·µ*[6þ&`óoÏÏUþŒOý8›ûlî³¹-5ßnM¹5åVoh®à‘˜¿«¹M˺^Ü|ا~ÅF³ú¯äT÷¸Ÿ½;©õÝYí„cý_w»vÏùlÐÞCöþ/ÍîóûyNwHêóû s=µû‚{Çÿ¼c©ªóøÜÙÞýý1ïæÜúÕÇf³<‹æw6ŽÞ³|Ïò=£T ©’>ã2>¶ÏÏ5ø¬O¤y6€s\ËQÑj³à;{l1oS?õW¹‰ý›¾ûS1«,î`>÷þ¾h]±B‘ׯJÈL[?jý¨õ£’x†Pµ—¼ŽqñåÆ^w[Mâ.¥¿ÌøeÆ/d&ŒõiÒ§IŸ&Æ9S¢ÅÌQÍ¡QêÜùåØÙÿ-ÖþMr~ïwzÈš…¦¾¿˜÷¯-7ØæÈfר¡°þC.‡kVý¥Öw6›MØçDÏiEŒ#ßaן=Ÿr”35¸¾7›©,s£íTçɱo¬òµîœ¶¨¸Œ ÒëŸÆqÓ륜G`yh[Ëhú¾+ 5€'ߟ|ò}ãÍsa|ó€Òå¿mӥ㴢+]Nÿ÷ÙÌÇv;lr/ßU¹‹ïŸWOµœTfÃíˆÖéÊyƬ®·±¸ÃðW%òžá0>g1ëצÎÜZJMç9á|Óx9ŸüøäÇ'?Zj¾½üzðëÁÆk_ó~aûÂŒ>Záä½Àþnó×ڗ֗гa¹Î¹†ŒÌ›-観ÿ½«w®þÖÌù±3Æíéâ—Ä#¡º5ð/âÖâËå¹þÑ ã¿ëãä¸ØÞÆüïý5 oT©¤É£ŠÁÆ`Ã$R#}Æ•ÄSIæUkã|Ó<ÀWäßmëñßÃoÛ÷+´3ªì¬ýA/7ï›Z80[w‡¦Ý&¼ûýÕ:„lu*mn¾0~ãÏ¥ËG^¿*!3aìôÔÓSOOMâC—F>p3pñ寖åçLóÈoyåWåWåW2ÆV¯^½zõê$^4vuøë%Ì¡Q²ù»ûg/¡ÛÂz‰ÿò 0nÖþ€þ#,ÿÉcCÛ׃«Ú”pòuþ¯x³nî†NµÍóÍÁ®Wê¬o·Ñx½ú¾V^úýÈQÎÔØéÌÚL^Ç­Iý)Ï &n¦Æ!+Ž6 ˜m7ϼå~ÌAÜ’õú§qôôz)çXÀ©—å5}ß•†ÀÑ«¢WE'± Ww®êé·íÛ¶^î…´ÉZî¨G§\—í2¤<ÉÎvn–%dŠË û.6ãÞý÷ê º8õ5‡–RâÙNo+™\#CsCsCsËÎ:ß=~÷øÝx݇­>q)°¼9LÈ*oïT`¡¾T6¹í¬Ã{ÞÜu®è:S“È$Œ–°tšçOæ3Ål7tY/Ï@ãå\7 Úzÿ%_.ÛŸF·;_~¤ÝÊ£­'¿ûwǬ+yÁc™ù7€wo›šÄÃyêd¬“±NF¦Š5747475K<{àz¥ æÖŽÞ±0"øJî‡Â9:&?öq*ÔÌÞæZÌÖ­e®›[xuçñÙü¶%QX½*z‰ cOë=­÷´^…æÙå.äšn>ómË»‚ mù<_ à›3oμ9“Ì„±¸Lq™â2çL¡°æzÍ3Ÿvé»sNI•)Ç\‡l¹[ԯ̌8s»÷Wmòå¹àœÄe†—>y-°/G9“.0àž«ñrvï¹mŠÏyâfò®Ü7[¾óii¼œ5+ ^ázˆ¸™õšgOæûÝãwß9ƒÀRÑN],»éû®4Ô¾?ïþ¼ûóŒ7[½º…óä 5‡Œ¾<#î”è[xé"ùK椿XCÿ)ðÖñ×Ù¿…Žñ^—àÙ©yÅeÿsí”ë²]Ǧ6r,Œhç»Ùu 9¬ÑÍZ¿—Ý”ÄÔÄ·­o[ß´u£ÖZ7j]“ìvÛøÄ~Û YÄÎõu¼«X_Èégõß'—Ã& jï:%ùÏŽXp¦RàíÂ~%:ô|w†ä;Ò# Â&še´«çìnóž´ˆ,“ùëìÅï:ÖL ycþŽ>Qï—à$îÔ_Ünq»Åí˜@j§Ï¾’hoÔÚYv“¹5€õ×ÿû—7µ~)ÐØUsµìVÚ³ž zîqh6êPÄB §Ñjñò#Í­õ«õêVؘ/Ô8æúU 9‰$Äâ ñvìØ=H¢½aurF`{® >ó˜'Ö-ÈÆT‰'aA‚„$&’ØY‡Ä‰bœ3¶ZLî%Ì­iú_ÕhDÛNƒ&ån[t^‰L9^äòsŒÍÑÙ~p®¥¹yIA]z†¹µU¶ùu7ŽöÖí[·oÝž’î`à 64Ž@õ£š¹¼6‡iÙÇ=.Æø§Ìá±3#VžixßÔÁúíÎN¾'|éœïíÛÄõ¿R¯þ¡TððgCxx¥JÝöû7tëo·‹e/–½X–)¤vúìËø8¿Êgœ_wsh—šjâ~è¿›Ãøòèž"VG[¿ѯJÈI˜2¬Ñ°FÃçO×ü›ÆøØqñyÇ>'¤'¾Iì­-gµœÕrÙˆä•p.á\ÂÙ8J˜}Jr7Ï6jò÷õšç]¿úè{2rÐÜšÆÑ®›8úFÁVåL‘G´ó_a7Wg;;™¸%?æÞVàÏœ £7dÛÑ ‰›©Q¯yÇM¯‘r¢lžÒfÓ÷]éÒÚ&›ulÖ±Y7j̃zŠ»›“&uAN×ú&qßÜûsîÏI ùß,¾Y|3S‡’‘™c¿ÊjžïêHc÷yÛÎøÜ6Žs‡E‹¹LÿÒÙþbVû[ ê÷ëëwnòÁ>¹Í¿üzndz™¼ïa`ÂÀ„L µÓg_ÆÇùÀ ¯ü}ͳšzǘ‹šOây$ú•ÙˆäÍw4ßÑ|ÆùÞñ©ssþÏ;Ö.6<«[/ãhïŠØ±+‚lDò–f[šmiWRÞq=&˜g5õŽy ”ЍšÄCe{7šøºs4356o:³dá¡Æqk°yÂ©±ßv-Ô¯Jy/1ÕÁ›ø˜3Ç~”ÕT}I¯‘r¢l>hú¾+Í5€Ï:œu8ë`¼.ðhàœŽ–íç¯7o5´l¹$ŠŒE‹IkY×$“üM’x§T·‰[ÞúüÆñså ¶—œ»ÇyÏ¢úYŠ×úÒ9¿äV¥V¾ÿ½ñ:çIëþVwôw{›ÿÞª ®{98‰ÇãܦF½Îi7½.ÊY–ð·EÓ×”4×N|šø4ñ©©M~gRë.åºÒ¾ýôqô­’3<úGxô Ó6LKkY35fjÌTãh¯ÓØÆéÄO‡ø™ÐÃÔ~ýzPÇf3}Þ ô¸í‘О¯hÿ[ù‡k68P¢¥Ë û.6ãþ{ËõŸ2Þ¦–‡?W8ï²Ó1Ñ8nqYã²Æq—X}&f|Ì}«ó`~4n?}¼3iwúr]MÍIô+ò)1°ËÀ.»gQ«Wó'{lfþÿécøÚ¿"½’x×r“FM5iD"åOž<Í‹ž=/Ú82åFthéü+“҆ëpÐÔ¾|sü/ae¥/‘çó딿ë3.Ç5k'«Íúß*Ñ1ß©\Köwi`_üqj¹÷·ñ¡"‡ÇmÓáM‡7fJ–JŸ•ÿgDö»ê¥ÐÄý¸ñ§p6´Œ©9‰~õAîáC•q+ãV&‰’¶¶¬·g ×7vuÞ4ÚÇÖ8ª¹sçÎ;wâùÄó‰çÉ=¤Üë.¯»¼îbêø.IL•†,²dÈv6ÝœÆsÏiœÄ„2¼tV‡¸‘b×y1}LÉØ·—ò“ïySûï¿ó[•µc¯4*vj_q•[g‡ 6׌ã¶1ÝÆtÓ±Ÿ@Z ÏÐŒÏêÕûÍe2 Ý”gþ^Y걩9‰~ÅA¾á#Ý3Ü3Ü+“±LÆ2I\·ÖÝ5º{Áª\¤|lÑk¶[á$®  8p,°.a]Â:’çeë—­_¶6u.ð·Ú~QSÚº) Ú7>/‰{ëŽÈ#s435v8òç`ÏצòpèåãÃÓ%ã1r×PÿE¦âÖmâ–7>¿¥$ÆN±k‚¼ôz¦qÜôú'g¤4€?Mß/B¿aÁÏ ~^ð³qêøÁN¶É÷f\G©byšFÉjººõ‚+˜,{­|´ò¼û¿ËÂM/7½Üd*VÍ†ÌØU8€Iä{F«ØìAV…•¸çăG†–˜Uø"{¥©qöòÐÉÞId ‹«‹«‹k„ ØO -Ðgh¦æ$jºùUƒ+ÐÜM~|3n_Šå ü×É&Ÿq õ« 2 Ÿ.v}ìúØõ&Ÿ$tPt÷­É5BòãÀÒ{×øç3Ã=êuJ¦áÓmººéꦫ¦2­”ß|om ÍÝäÇÀ9c[­Zn*†})×ý~à˜f<éqämÀSqk±köÒÂO‰’©±Xú“œ\“x„û‰FN+‰©Q¯ašÊ:½þÉyi àO·mý¶õÛÖÓôý¼hÞo„7B®ì¹²çÊnœL£F”ÌêáFÓÈäcŸÛ´q,gjW\saÍ…5È1cR©¿Ôßdç˜èë[›©¤©±nÿQ¯ ú™ŠÞó¶íû•¿Ì¾i<žÜøL©b¦âv¼øñâÇ‹³o@Z£ÏÖL>ºMT¯rq4zM£FD´õHâý¬ú•…~•AŽásh?Ð~ ½q¾9ÍuÿÛfÆð’'/öáJ!‰w:¾}}k›Š›^óä„€´†ð§K¨›P7¡.MßÏ‹ðN:œt8é`*½v”¬¹1(; ¤wÇ·]:ÙTìÒ×ùeî$vËòsÊÏ)?ÇPÙPÙP™ì2¥M‹6-Ú´0ŽžÝtÇ.9J-q¬UÀ~¦•ïŽ~[3ÁkJòŸŠ›ÔtGHsöÐwLJÚz‡5ù¨öCÛmÏþiTeCeCe}æf|Žéë?3wÝ·]ö*ö§ÝûäŒåAÙM[õ+ ’ Ÿ×óÓÏO??m*ëÊÎh':—âzÁx¬Qu`QW“sI¼—x/‘ìÂçu%âJÄ•SYç¹$"÷hÚ½ÿ3º,©q°EÞÞ!áÕ&™|Œvž°2ŽâÈ2±m‚œ9²½;6<÷ë2÷ÕÉ×I"Çí¿å?™X½;vÿ{[¢Ï£äã¦× ˆÕ»£^«Ôë–ÆÓ뜜6Ñþ\Þ½˜¦ï§£ü?¦U™VeZS'þ…7*y—f’a{xÍJAÝçú/s3ùØÀÛÖ·­o[“QÉ{²ûÉî'»MŰh\Õª¹FÔ?½?ð8SÌ^qQÊ&¤üéÿ·[+ÆÞúÊ«Ã?¢ŠmÎ{"×IÜ/’è”è”ø*æUÌ«öGHËô™›©³j÷¹Mº­4l?8½R­ß…þ¼ŸÔ}]:ýj‚ŒÂ—s8öpìáXSXïÜØWsíðß ÎZ\X5«¨ªQU£ª’QørVåZ•kU.Sè7|ð ¬hýꣻgã›ÝÒ¥äJ¿jý>™\Ü9¾écûð?{ŽJIÜ ¼ôµ²k1¬Ü @ÚçAÒÇŒñÛ–òú’^"nz}R¯UšŠ•^çäø´‰0Ì àÿ‘8?q~âü°îaÝú›:™[ÕldÈ™´ÜRÕ²d:'SñQ)‡”CäRÊpüÁñ¦âYòXónyWŒ´‰µ²N›SÌ~¹U¿œVÈ!:gÍ™Vjë:,mî§oŽw<_±~]÷Bå5˜ŠÒ?×ÿ¹þÏuöA€NŸÅ™:kŒjQÅÃ)-·~Ï­Zÿ{ÈSñѯ ô« r _Ú¼ÞózÏëm*›.Ÿ^¦Ð½´\¤n¿x_‘M&f^£¼Fy‘Eøò&C¢!1|Døˆð¦²1`ÐÈ‹Ëó¦åÖ¯GǶvƒ\>ôz¿NÑ߻HËG¹ˆºëyüиù̪lŸ{úðѧšNJ›q‹¿ÿ®ÿd›böµ¬{}hôôÚTÍ:›Xû k½>iòµbŽ?8Î+¦Ñ†y¢œ„§NOž:Ùh6šfêÄvZj²®Ô®4ÔRjîY)ÿˆÆ%Ê^e*& ².Ⱥ +ùóq6–ßX~cy“mà<Íó†ÈrºjàNÞ)ò®CC =dòáÆ¹Öç\‘£ÔS­Ç•švöÖ—›;ü]aqf…Zç=n*2ªŸê§ú±ßŒé3:Sg;m.¼ÊÐô`µJùÓNë÷´´F(µËTLô«ý ‚üÁWrÛpÛp»ËÞ.{»ì5•™OLÉQ¨NZ+Rÿraan“¬³£ÎŽ:;ž$âÐ̲§˜Ûoæ=2ù½ï¼×y¯óÿ}rÿðÀÃ|Ï÷»6ÛòIJ÷ÖûÃÛŒ uðïâTÒÁdá~í¬µ³ÖÎb_$OŸÝ™:›´›R×ËÅýÕœ=û*œ²ìÖ¯ro~‰à²ÉÏ1ô«r_ßÛ¦o›¾mv1ìbØESùYcöÀ®!#KÆ6ÊkÙW †M¨èh*¾}3úfŒ‹‹#sðõ=²dÿÈ>ÇöÛsl7Ù–kÚkÔ²–Ýô ÙùÇÛýë\§ÕÞܶ‹É·®Nè4¡ÓCéÿ÷¥ÿ‹©ï½Ò)&ºÅNÏ Ügᵟ7;¢ðmSqгKÏ4=ëôkSßïüÀk„í†öõô¯hÙqëñ`§{ѦÉÏåôš’7½Ö”ü÷ë5+ËŽ›^{Ôë¦â ×09Â:À0O4€ßãrËu.×IþÄÿûr¼m ÷ÃÛT µ¤fÒ¿¿µò-›Ócu®—v&À;°ÝÀvÛÖÖÖ-ŸËï)ÞS¼M&\+ÉÊ·Çñ/ŠZà§ $»ÿ“üwòÞÉ{'ïÇ-fPÌ ˜AÉÿìÖ a3ÛZ^ë÷è±FýK¶M~Ý—e]–uÔ¤ÌÃÃ}¦gêÌâ±Úõ²]ÎÛV¯lN‹jýÞ?(T ýý΀ôÞ6ÉŸ[õ+’ßÖ«r¯Ê½*Wå§*?UùÉäý…¹ÂŠ;ŠƒµÃGjXҵðù'ö–)ÕòN¾|¦ÖÝ3Ò3Ò3òÉÛ'oŸ¼%[ðmÝùëÎ_wþJþÌR0wƒñá†\ZÜû@%Kjý–˜8óy”˜ë´÷¹b1¦Ö½õºÖëZ¯K”0(aлqÓÿEÿ¿¦~¶PÅu l°÷„¿E½!xÄÌ3ÅoVZß½cŠÉgŽž]ÆY§×ÞÓλa‡÷dË«/µ¼8w‘Gýä×]¯#ÇM¯;%ÿ³zýÊ[æÇw¼(Z[¯=šZw½nÉQx `˜'À)ríîµ»×î&â/ìâäøÇõ-­þ(Û µ7“ÖW«öÖÿXòë;.縜ãr...‘!_Âüló³ÍÏ–üV¨?lܘ‚—G6ŽT(õN.ß—×?ÐoD Ç_“_߸gqÏâž%·C>‡|ù¼çòæž_E×ãO#ÛIå{¥Þý4¡Z§Ž×L™\f¢ç¥ä×w]©u¥Ö•bŸ|°K†K†Kú¬/ùsÍúj¿^ô?–Ú[¿×·l/^¶Aùà`{Ç?’__ýê€ùxáu†×šln²¹Éæä³·ã…Õu½ê§öòtW·M“|ì­µœ™­–˜ZÓ²5ËÖ,[óYg=žõ C`>îÛÜ·¹oã–Ç-[SÙkÛ7¿µ[b±1“zlìŸÚ[¿¾ùT˜Õ;ùãRÏj=«õ¬–ð8áqÂcSqÓÿ¯þÉÿ¶Ö ä,Ò*µåzžÝ¥]åÔͽƒÍSkªg‘žQÉg^H>n5.Gsm0"8ußK=xÂሀà’WšOÊ»ö=/ó9äsÈ'ù¸é5¨ä^ËÒëZ©8ëÇN*¤×“__½VÉ‘0Fæ‰ðx¸îẇëJ-U´TÑäO‡sª‡ôŽKxÝiUÅã©¥™tá^󦥛”/ëâì¸$ùµ[~aù…åȇ¯cëÄ­·NL~‹äíVØÅæ\×q›ƒ|‚SÍä²lL_£-“óº?N~í ,-°´ÀÒ›ov¾Ù9åq»8ðâÀ‹ïy(´ns@c÷RWë÷€mƒ%ìsf°>ŸüÚEOˆž=ýðéôà{>Y6ØÉqÉ…{›–n’Zš¾ ¯U<>§zäŸÞqɯ~ _0O‰%6ÖkX¯a½’ÏçÞMfæÍ=0dï*ÿ|©¦¬¿þðÚ€Š¡U:îr>œüÚẺ˜1çË—7.dÌÓ‹2/ʼ(Sß³¾g}ÏäóÙ½c“%݇ü¼ðž©¥é[ü‡iÛ¦8Í)±½²uòk7=jzÔô(ÃÃCʪL  ôŸJþ7ûΩ6×1¤ïT¥´ïõTóTƒ_O¬ ,^õfßL.ßs3€g}Ïúžz¥<ëôú@ò¿9gœÝëz®yêµ<•="ûÊì›éRRÒëE)›^ÒkSï¹'xËä¼îõzWªù@Õ¸ÍA>Áz]ñ=OÔ›¸uâÖ‰½ShÃ<Ñþ`o»¿íþ¶û°ôÃÒKŸ’‰ÅºüÕ&ûO~×1_…«æÖFºêÔ²J™±á>¾e]ýS².‡çž{x.9ðõÅÅÇÅÇŧdù=¬ñÐqc—;KmanÓÊáÇO] \ùK­®ǬúYiV~ï)Ü<Žxñ8>!>!>áãâö¤ù“æOš7èÒ Kƒ.Éÿ-תösl–ªÕêv nغÓÑŠ·Ímo=¹¤ñµRe«4u˘gß{–¹`æ‚™¯^¹zåêöÀç¥ÏS2' ÷ipÐÕÿªÓ–ˆ2cÍ­éû*nÏ› W×åŸøÜrJÖEŸùëWäR‹M£7Þ4:%^åï^w <xdß ÿZf×ôµ>47Àª–çÐ’n¹R².K-=´ô[©Fˆ!Ä2mÉ´%Ó–¤$Ë$t²1«TçùW£Û˜]ÓwýŒ2;K»ºÖjÖzcJÖEÞ'ï“÷}Jðôß’¿Uîd‡ûÎ+ûûGçòëinG¹!‰GŸlmPqü?îR².z¶è™óqqÓkzÝ ù¿åq»ôƒ\é»6ÞtÃÇìž97B83,ðYûœËûyvȵÍùfÎÊɯ‹^ÒkD7½6¥×©Þ³‘úYiV~zíK¯ƒ™ÝCž_î,Q´…^?LIÖé5IØ@òhÃ<Ñþ$ª“ê¤:Y¥ØokËy®}œ¾í©Ðkߪ´·ZýêÅûÕòvŸ–·^J–¹MÉ6%Û”|<ùñäÇ“ÙâßV|®ø\ñ¹úVê[©o¥”l»‚Š%Øol;oɵ"·¿Õ´rè®ã¥žÖ™;²ŸÛ­”ï)[ý¶úmõûlÛnØnØþgÖ?³þ™5å˰lsåŸ|;'äëÔ¨ââoµ·n›^Ó:pCÑy~²¯Ÿ’eg?Î~œý›šoj¾©Éþørô™¡>KLɪ–w¹^yëí­öG—âý¾UÓ÷qzÙ:ôÚok{;{®Mù|@Ÿí³Å‘z]ísµÏÕ>Á‘Á‘Á‘)Éù’‘ÍÎæÐmóÖò> ¾ÕD¯GQ«}(×¾ƒ—óÈ”,sþèüÑù£ãnÄ݈»ÁGêu$ý‘ôGÒ§ü U°lÃï"*ß9£íÎ.ߪé°oÔ‘ ò}_Æ«ÆÉ”,sX|X|X¼©·Õ~ý·é¿9%ËèX{gžðÎÙ×ßönÿ­ŽrýkEW÷‹¬œµGÖíR¾Åõ ù\qÓëz !%=_'8[¯Vƒçmñ˜ðÍš¾.§{* OLpŸò¸éµ ½.ô¹¢§×¬R¾ zML¯}«èéµA½N˜’eÖkz’ã34€ažhÏ:<ëð¬Ã ðAáƒÂS~úws¸kÛcö–ÐÞÛÎ.mæ2ÿó¶Ž^)í*\”«ÖÙXìJçL¾\Y} å¤rR9Éö5O‡:üÓៜ~púÁ釔oÓ ¨zÓó}Æø¡óÌΙ…¸.’«Î}RìÊ+eÏí ?o»÷ìÒu{CæÏÞéë½Í=®ÀZÛ)_6}V¯ÏðÙ¾° ‰Ë—%.[•eU–UY>to­Ð­sdþ1áu×^ö:>²sìú ïÏ{ÑYØèàýG•¿{Ý-ðèC—m^îy¹çå~Ûèm£·ØÊ° /ÿòþ¯å-ÿkù”ï 9òÚMtˆ(4½EÝÞ›ߌ›½&èó6zCŽ.. ³¶¡-Õv‰ËÞrׇî­[‡nºu¨á„á„áÄ Ü Ã Ã ý¯|貕ÍÐvóÏöýÙÓóåˆî§ãÏ}Þ£\··äöi[ãH¤ƒk-[w‡§ÖjÊ—MÏ=+¾\Öéõ½¶ðµˆKÕs:6hÙmΟoö=óoùyãÖ§®”ÓwPã¿e.”×½yð.ûS)_6½æ£×¾\Üôú•^ËJù²éµ2½n¦×Ð>ó“3ž)ÐL¯ûé5À”/›^cÔëEæ‰ðgöÏŠVü³¢ÉÚ&k›¬µú(ù7Ù-±ù¹]!ŸÖ.VS§”¹ãåð׬jMü»F ¨]¡X5¾î†àÁJõºÙƒ·;׬xtéìJ‹}‹ ëV|BáUÃÝ:H;ÐØ’ñKÆ/ÿzþëù¯ç³5Í_Bå„Ê •×gZŸi}¦OÙî…Ú•çàY>wx¡ü9ëÏ·ªàVÅæ•ôèծDz&žEÛÿ¶"ÌsJ›C‹YÞlù Cár5c‡¬tM(Ñ­i†¼>Žšë œ/>îïV¹\år•˱b'Ä~ƒ÷ÔsdÌ‘1Å*«X¬âÇ-¿OKÇö.]'úýãæ3K -æ=tc—ê{ª‹“ëüTlˆ¶¤îƒà¥òÜ:‡‹=ÝR$Ì3ÐuR¡Ï¹~K‚BÝCJÍw^™Ûùãþ®õrëåÖËwFïŒÞmÈbÈbȾø¶ôÙ£>“ü”9IÕðR~Ö­£áKgÜê[d»óô½G•êóv;ªñ ~ 5`Öóbþš5q¼שSúÌórhW¨Î«ü›œ.ØüüqWŸ½ë3y¶&,Û“‰O&>™8.h\и OÙ[}ý«ÞrÌS%¦wÖñ®Oî[èû_ö-ˆ÷xÙîîr_Ï&ím–ðìØºÚÂóE\Ÿ’·P½juû*.ƒü§ÔÌèxÝZÊ™ÎjñÇýÝgœpæ~Áûïdk²Ý8wãÜsá«ÂW…¯ú¸ý%G»ÑmòÕ+[¤fîBE›;öÊïu¬kì„ï|³ È8ËůÛàó÷ù… :0ÏP´k?›‹=WGŒ®]°vC߈‘y‚–—;þ)G‰ß÷ü¾ç÷=ñ™â3ÅgúšqÓÿ¢þ×?eù½ÛWü>·geÿµ ôløð×=î©° ‡Ç¡vê²ÛžÕÛ‡,—<û´>´H(R«É©Z¡eÕÏèâ’xµ®mžµ¶.w­•û»ú×·þWM¸,†,†,zA¯9|Üò»Õ t·w+û¶}çVõ<ÇìÞ²áœÍîí*,Ëꙿýö3<¶­¶¤I‘#Í'ÏœYxJíšÃÜ"K­lq=ïý¼ü¶?}ÜßÕk;zçëï­z]K¯q}Üòëµ5½Î¦×Üôú›^‹ÓërzN¯×éµ;½Ž§×ô>%Ûõº¢^cäØ |À0O4€¿ ªýSíŸj=2ôÈÐ#ƒ•Y²½b{ÅöÊÚ’kK®-ùrÜËq/DZÕR¯7ÝßtÓ}kÀÖ€­nÃ܆¹ 3ϬkÖ&¬MX\®¸\qæñ™+†+†+Çüùó¯_/¾^¼yÆ-°s`çÀÎâdq²89aIÂ’„%ä<À<é³J}†©Ï6ÍóܪÏÒõ;[ iÓ£é¦?š>³óÌÎ3;[™± 3&̘0ãîØ»cïŽe«!mº®]×®kC‡8q4ç½uñ²ÅË/{vëÙ­g·Ì!nú’èKeÎqÓ·¬¾•Í!nzÍA¯?èµóŒ›^ÃÑë9zmÇ¢§×»ôÚ—yÆM¯êõC½–È1øt4€ažh­Içúg럭ßôݦï6}:1tbèÄouš,Y$²È™9g朙Ãv±l&\˜paÂh—Ñ.£]¾U¾………®®¹ºæêš?|üð±ùÇísîÎY\pqÁÅ Ï*<«ð¬o½É;&ãj†«®f Ÿ©—>óÔg¡ßꬪÏÀõÙ¸>3g»ÿ£­¡­¡íþ†ûîoØ>gûœís~«½µÉÓ&O›p‡ ‡ ‡õ5Ò×N_ÓÏöá³v¡íBÛé[Dß:ú–²Œ¬ÓkzC¯ièõO›^oÑk/zF¯ÉXFÜôZ™^7Ókhz=í3<åq¬íXÛ±z­O¯ûé5@Ž–ÑN5N»Ÿv?íý8úqôã=ÓöLÛ3ííÒ·Kß.%2ø"&&&ï¹¶çÚžkÑ‹¢E/:}8úp4I‰}oö½Ù÷&ºjtÕèª{÷î $&|}Æ«Ï~õ™°>+&2€¹y˜ð0áaBÌݘ»1wcæÄ̉™s³ÖÍZ7kÀÜ\úéÒO—~Š©S1¦âžÒ{Jï)_#¾F| "“<=JzÄôèé‘$2)¡×Fô:‰^3!&)¡×âôºœ^£ÓëuD4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°4€ÀBÐ A, `°_µ>:}tz+H3ô>) `Hõh€…Hs `ýߣ¿‹þ.ú»ètÑé¢Ói‰Z¢–¨%h Z‚öF{£½Ñ^k¯µ×ÚKí¥öR‹×âµxí¹ö\{®=ÓžiÏ´'Úí‰öX{¬=Öi´GÚíö@»¯Ý×îkwµ»Ú]íŽvG»£ÝÒni·´›ÚMí¦v]»®]×þÕþÕþÕ®jWµ«ÚíŠvEûGûGûG»¤]Ò.i´ Úí¼v^;¯ÓÎiç´8-N‹ÓbµX-V;­ÖNk§´SÚ)í„vB;¡׎kǵ£ÚQí¨vD;¢Ñi‡´CÚAí vPÛ¯í×ökû´}Ú>m¯¶WÛ«Åh1ZŒ­EkÑšª©šª)š¢)š¤Iš¤‰š¨‰Z”¥Ei»µÝÚnm§¶SÛ©íÐvh;´mÚ6m›¶UÛªmÕ6k›µÍÚ&m“¶Iû[û[û[Û mÐ6hëµõÚzí/í/í/m­¶V[«­ÖVk«µUÚ*m•¶R[©­ÔVh+´Ú2m™¶L[ª-Õ–j‹µÅÚbííím‘¶H[¤-Ðh ´ùÚ|m¾6W›«ÍÕæhs´9Ú,m–6K›©ÍÔfj3´Ú mº6]›®MÕ¦jSµ)ÚmŠ6Y›¬MÖ&i“´IÚDm¢6Q› MÐ&hãµñÚxm¬6V«ÑÆhc´QÚ(m”6R©Ô†kõáÚ0m˜6L¢ цhƒµÁÚ`-R‹Ô"µÚ@m Ö_ë¯õ×úiý´~Z­ÖGë­õÖzk=µžZO­‡ÖCë¡u׺kݵ®ZW­«ÖEë¢uÑ"´-B ×µp­£ÖQë¨uÐ:h´vZ;­ÖVk«µÕZk­µÖÚ/Ú/Ú/ZK­¥ÖRk¡µÐZhÍ´fZ3­©ÖTkª5ÑšhM´FZ#­‘ÖPk¨5ÔêkõµúZ=­žVO«£ÕÑêhµµÚZm­¦VS«©…iaZ˜V]«®UתiÕ´jZ­ŠVE«¬UÖ*kµŠZE­‚VA« …j¡Z¨VN+§•ÓÊjeµ²Zi­´VZ ÑB´­¤VR+©•ÐJh%´`-X ÖŠiÅ´bZ ¨jZ€ ùi~šŸæ«ùj¾šæ£ùhÞš·æ­yjžš§VD+¢Ñ k…µÂZ!­VHs×Ü5wÍMsÓÜ4WÍUsÕ h´Z~-¿–_˧åÓòiyµ¼Z^-–GË£9jŽš£–KË¥åÒ4ÍA³Óì4;ÍV³ÕlµœZN-§–CË¡åЬ4+ÍJË®eײkYµ¬ZVígígíg-‹–EË¢ý¨ý¨ý¨eÖ2k™µŒZF-£öƒöƒöƒ–^K¯¥×¾×¾×¾×Òié´tªA5¨5AMPÔ·ê[õ­úZ}­¾V_©¯ÔWj¼¯Æ«/Ôê õ™úL}¦>UŸªOÕÇêcõ±úH}¤>RªÕ‡ê}õ¾z_½§ÞSï©wÔ;êõ¶z[½­ÞToª7Õê õ†ú¯ú¯ú¯zM½¦^S¯¨WÔ+êeõ²zY½¤^R/©Õ‹êEõ¼z^=¯žSÏ©çÔ85NScÕX5V=­žVO«§ÔSê)õ¤zR=©W«ÇÕcê1õ˜zD=¢Q«‡ÕÃêAõ zP= P¨ûÔ}ê>u¯ºWݫƨ1jŒ­F«ÑªNQUQ%UR%UTEUT£Ô(5JÝ­îVw«;ÕêNu‡ºCÝ¡nS·©ÛÔ­êVu«ºYݬnV7©›ÔMêßêßêßêuƒºA]¯®W׫©©©kÕµêZuµºZ]­®RW©«Ô•êJu¥ºB]¡®P—©ËÔeêRu©ºT]¬.V«¨¨¨ Õ…êBuº@] ÎSç©óÔ¹ê\u®:[­ÎVg©³ÔYêïêïêïê u†:C®NW§«SÕ©êTuŠ:E¢NV'«“ÕIê$u’:Q¨NT'¨Ô ê8uœ:N«ŽUǪ£ÕÑêhu”:J¥ŽPG¨#Ôáêpu¸:TªU‡¨CÔ!ê u:HT#ÕHu€:@ öWû«ýÕ¾j_µ¯ÚGí£öQ{©½Ô^jOµ§ÚSí®vW»«ÝÔnj7µ«ÚUíªvV;«Õ5BP;©ÔNjGµ£ÚQm¯¶WÛ«íÔvj;µÚFm£¶V[«­ÕVj+µ•ÚRm©¶T›«ÍÕæj3µ™ÚLm¢6Q›¨ÕÆjcµ¡ÚPm¨6P¨ Ôzj=µžZW­«ÖUk«µÕÚj-µ–ZK SÃÔ0µ†ZC­¡VS«©ÕÔªjUµªZY­¬VV+©•ÔJjEµ¢ZQ-¯–WË«¡j¨ª–U˪eÕ2jµŒ¢†¨!j)µ”ZJ-¡–PK¨ÅÕâjqµ˜ZL-¦©Aj ¨ª¿ê¯ú«¾ª¯ê«U‹ªEUoÕ[õV½T/ÕK-¢Q‹¨ª‡ê¡R ©…TwÕ]uWÝT7ÕMuU]UWµ€Z@- æWó«ùÕ|j>5ŸšWÍ«æUó¨yÔ<ª£ê¨:ª¹Ô\j.ÕAuPT{Õ^µWmU[ÕVµQmT5‡šCÍ¡Z«Öªµš]Í®fW³©ÙÔlêÏêÏêÏj5‹šEýQýQýQͬfV3«ÕŒjFõõõ5½š^M¯~¯~¯~¯¦SÓ©éƒbP J‚’ $(o•·Ê[åµòZy­¼R^)¯”x%^‰W^(/”Ê3å™òLyª+Ÿ•cåX9V>#Ÿ‘ÏȧäSò)ù¤|R>)—ËÇåcò1ù˜|D>"‘ˇåÃòAù |P> Èûä}ò>y¯¼WÞ+ÇÈ1rŒ-GËѲ*«²ªdI–dIeQå(9JŽ’wË»åÝòNy§¼SÞ!ïwÈÛämò6y«¼UÞ*o–7Ë›åMò&y“¼QÞ(o”7Èä ò:y¼NþKþKþK^#¯‘×È«åÕòjùOùOùOy¥¼R^)/——ËËåeò2y™¼D^"/‘Ë‹åÅò"y‘¼H^(/”Êóåùò|yžr¹·Ü[î-÷”{Ê=år¹‡ÜMî&w“»Ê]å®rg¹³ÜYŽ#乓ÜIî$w”;Êåör{¹½ÜNn'·“ÛÈmä6rk¹µÜZn%·’[É-å–rK¹¹Ü\n.7•›ÊMå&r¹‰ÜHn$7’Ê å†r}¹¾\_®'דëÉuä:r¹¶\[®-×”kÊ5å09L“«ËÕåêr5¹š\M®"W‘«È•åÊre¹¢\Q®(W+ÈäP9T•ËÉåärr¹Œ\F.-—–KË¥äRr)¹¤\R.)—‹ËÅå`9X–ƒä 9H”å@Ù_ö—ýe?ÙOö“‹ÊE墲ì#ûÈ^²—ì%{Êž²§ì!{Èra¹°\Xv—Ýew¹ \P.(»Ê®²«ì"»È.r~9¿œ_v–eg9¯œWÎ+;ÉN²“ì(;ÊŽrn9·œ[vdÙ^¶—íe[ÙV¶•mdÙFÎ!çsÈÖ²µl-g—³ËÙålr69›ü³ü³ü³œEÎ"g‘”””3Ë™åÌrF9£œQþAþAþAN/§—ÓËßËßËßËéätr:É $ƒ” %H Ò[é­ôVz-½–^K¯¤WÒ+)^Š—â¥çÒsé¹ôLz&=“žHO¤'Òcé±ôXz(=”J¤ÒéžtOº'Ý•îJw¥ÛÒmé¶tKº%Ý’nH7¤Òuéºt]º&]“®IW¥«ÒUé²tYº,ý#ý#ý#]”.J¥ Òé‚tN:'“ÎJg¥³R¬+ÅJg¤3Òé”tJ:%”NJ'¥ãÒqé¸tL:&“ŽHG¤#Òaé°tX:(”J¤ÒiŸ´OÚ'í•öJ{¥)FŠ‘¢¥h)ZŸþë§}I'J¢$JQR”%í–vK»¥ÒNi§´CÚ!í¶IÛ¤mÒi‹´EÚ,m–6KKKK¥ÒFi½´^Z/­“ÖI뤵ÒZi­´FZ#­‘VI«¤UÒŸÒŸÒŸÒ i…´BZ.-—–KK¥¥ÒRi‰´DZ"ý!ý!ý!-’I‹¤Òi4_š/Í—æJs¥¹ÒiŽ4Gš%Í’fI3¥™ÒLi†4Cš!M—¦KÓ¥©ÒTiª4Eš"M‘&K“¥ÉÒ$i’4Iš(M”&J¤ Òiœ4N'•ÆJc¥ÑÒhi´4J%’FH#¤Ò0i˜4L* •†Jƒ¥ÁÒ`i4H$ ”J¥Òi€ÔOê'õ“úJ}¥¾Ro©·Ô[ê%õ’zI=¤R©»Ô]ê.u•ºJ]¥.R©‹!EHR¸.…K¥ŽRG©ƒÔAê µ“ÚIí¤¶R[©­ÔZj-µ–~‘~‘~‘ZJ-¥–R ©…ÔBj&5“šIM¥¦RS©±ÔXj,5’I¤R©T_ª/Õ—êJu¥ºRm©¶T[ª%Õ’jIaR˜&ÕjH5¤jR5©šTUª*U•*K•¥ÊR%©’TIª U*Hå¥òRy©œTN*'••ÊJe¥ÒRi©´"…H!RI©¤TR*!•JHÁR°,“ŠIŤ@)P ”¤)@ò“ü$?ÉWò•|%ÉGò‘¼%oÉ[ò”<%O©ˆTD*"– K…%wÉ]r— J¥‚’«ä*¹J.’‹ä"å—òKù%gÉYr–òJy¥¼’“ä$9IŽ’£ä(å–rK¹%ÉArì%{É^²•l%[ÉF²‘l¤R)‡d-YKÖRv)»”]Ê&e“²I?K?K?KY¤,RéGéGéG)³”YÊ,e”2J¥¤¤¤ôRz)½ôôô”NJ'¥ÅF,€IDATD1QLÄñøF|#¾_‹¯Å—âKñ¥/Æ‹ñâsñ¹ø\|&>Ÿ‰OÄ'âñ±øX|,>ŠÅâñxO¼'ÞïŠwÅ»âmñ¶x[¼%Þo‰7Äâ ñºx]¼.^¯‰×Ä«âUñªxY¼,^/‰—ÄKâEñ¢xQqŸ¸OÜ#î÷ˆ1bŒ£ÿôË}ý$/êQq·¸[Ü-îw‰»Äâq‡¸]Ü.n·Š[Å­âq‹¸EÜ$n7‰‹‹‹Ä âq½¸^\/þ%þ%þ%®׊kÅÕâjqµ¸J\%®WŠ+Å•â q…¸B\&.—‰KÄ%âq±¸X\,.‰‹Ä…âBq¡8_œ/Îç‰óÄyâqŽ8Gœ-Îg‹3Å™âLñwñwñwqº8]œ.N§‰ÓÄ)âqŠø›ø›ø›8Iœ$N'ˆÄ âxq¼8^+ŽÇŠ£ÅÑâhq”8J%ŽGˆ#Äáâpq¸8T*‡ˆCÄ!â q8HŒ#ÅHq€8@ öû‹ýžb_±¯ØGì#ö{‰½Ä^bO±§ØSì.v»‹ÝÄnb7±‹ØEì"v;‹Åp1\ ;ŠÅŽb±ƒØAl'¶Û‰mŶb[±µØZl-þ"þ"þ"¶[Š-Åb ±…ØLl&6›ŠMŦbc±±ØXl$6‰ Äb±¾X_¬/ÖëŠuÅ:b±ŽXK¬%ÖÃÄ01L¬!ÖkˆÕÄjb5±ªXU¬*V+‹•ÅJb%±’XA¬ VË‹åÅòb9±œXN,+–ËŠ¥ÅÒbi1D CÄ’bI±¤XB,!–ƒÅ`1X,&‹‰b (ú‹þ¢¿è'ú‰~bQ±¨XTô}DÑKô½DOÑSô=DÑC,, ‹î¢»è. ŠEWÑUt]DÑEÌ/æó‹Î¢³è,æóŠyE'ÑItEGÑQÌ%æs‰¢ƒè Ú‰v¢h+ÚŠ¶bN1§˜SÌ!æsˆV¢•h%f³‹ÙŬbV1«ø³ø³ø³ø“ø“ø“ø£ø£ø£˜IÌ$f3ŠÅŒb1ƒ˜Aü^ü^ü^üNüNüN0Á $ ‰B¢ðVx+¼Þo„7Â+á•ðJx)¼^ /„ á¹ð\x.<ž O…'Âá‰ðHx$< …‡Â}á¾p_¸+Üî w„;Âá–pK¸%Ün 7…ëÂuáºð¯ð¯ð¯pU¸*\®W„+Â?Â?Â?Â%á’pI¸ \.ç…óÂyá¬pV8+Ä qBœpF8#œN §„SÂIá¤pR8.Ž Ç„cÂ1áˆpD8" ‡…ƒÂAá p@8 ö û„}Â^a¯°Wˆb„!Zˆ¢UPUYIIÐE QB”°KØ%ìv ;…Âva»°]Ø&l¶ [„-Âa³°YØ,ü-ü-ü-l6 …õÂza½°NX'¬Ö k…µÂjaµ°ZX%¬V +…•ÂJa…°BX!,– Ë„¥ÂRa©°XX,,þþþ ……Âa°@˜'Ìæ s…¹Â\a¶0[˜-Ìf 3…ß…ß…ß…éÂtaº0M˜&L¦S„)ÂoÂoÂoÂ$a’0IøUøUøU˜ L&ã…ñÂxa¬0V+ŒÆc„QÂ(a”0B!Œ† Ã…áÂPa¨0T" †ƒ„A !Rˆ"…Âa€Ð_è/ôú }…¾B¡ÐGè%ôz =…žBO¡»Ð]è.tº ]….B¡‹!DB¸.„ …ŽBG¡ƒÐAè ´Ú í„¶B[¡­ÐZh-´~~~Z -…–B ¡…ÐBh&4š M„&B¡±ÐXh,4 …B¡PO¨'Ôê u…ºBm¡¶P[¨%Ôj aB˜&Ôj5„jB5¡šPE¨"T* •…ÊBE¡¢PQ¨ T*¡B¨*”Ê å„2B¡ŒPZ(-”J ¥„RBI¡¤PR(.Š ÁB°, AB ‚¿à/ø ¾‚¯à+Š EoÁ[ð¼/ÁK("Š‚‡à! …wÁ]pÜ7ÁMp\¡€P@( 8 ΂³OÈ'äœ'ÁIÈ#äò¹…ÜBn!—KÈ%Ø ö‚½`'Ø v‚`#Ø9„BÁZ°¬…ìBv!»MÈ&d~~~²Y„,ÂÂÂBf!³YÈ(d2 ???é…ôBzá{á{á{!NH••••••õ&êMÔ›¨×Q¯£^G½Œzõ2*>*>*>êyÔó¨çQÏ¢žE=‹zõ$êIÔã¨ÇQ£F=Œzu?ê~Ôý¨{Q÷¢îE݉ºu'êvÔí¨ÛQ7£nFÝŒºu#êFÔ¿QÿFýu-êZÔµ¨+QW¢®D]Žºu9êRÔ¥¨KQ¢.D]ˆ:u>ê|ÔÙ¨³Qg£â¢â¢â¢ÎD‰:u:êtÔ験Q'£NFˆ:u"êXÔ±¨cQG£ŽF:u8êpÔÁ¨ƒQ£Dˆ:µ/j_Ô¾¨½Q{£öFÅDÅDÅDEGEGEëe{½\§OÛiÕ€/Áú¡4€à3 L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L€… L_œU²ˆÈÃÏ«ÑôFÓM·JU:,î°¸Ãb¶ ¾„›ãoŽ¿9¾À•W \ѳÅ9»svçì¯>¾úøê‡þ¶ç+ž¯x¾böo³›ý[óÊÍ+7¯´Ûúlë»OqÓMl3±ÍÄ6l|(À4€ñ?*(É}}ÛI9ÒB¶‡ŸŽ0;!vBìãÇùÎZ8kᬅš3S3MÍ45SJ2Yt¾¼ùòæËËV07›÷mÞ·y_ò[°TÕRUKUíîÐÝ¡»ÃÈó#Ï<ÿèñ£ÇÛ%çè‡/äRûµ@†s¤ Ž6mð%\‹¹s-fÄwFÜéæÞͽ›{‰Ž%:–è˜üoã‹/6¾ø”¿;ãÀŒ3¼û;õ ÏÙÎg;ŸíÌvAÊѦŒ/>aeL¶‡_Óή;»î쪯×ü:Ÿú•|Ü>ý÷ë_RN)§”“0>ƒl†l†lUûVí[µï»¢¿÷倗^øÐ_™ü‡*ô–áéU§W^ENš³N#;ì4ÒÔvÔ›¾zþ˜Ûäè‡/ä8šd8çAΧàh¤¼ê’|vœÖqZÇiŸ’“ñãâÇÅsŸå>Ë}Ö»¿ùÝ—|±)4€iã‹O#˜š-ä![ùÓéw ›úbKA·b튵+Öçê"×E®‹\?.o“ïïZhÁ‘Äü韈7µÏ5?×ü\sóÜŽœ¿ð¥sãÿkï¾£¢¸úÇ›Ähžä± ‚ "JSªHì½+vQQ°ÆÞ»¢&öØKìAĨh,‰ ì½ÝØ»‚(pÜ|ÏÙü–Ùg…]vv÷ýÚsîyN™½sç¶Ï̽´° 6(á†H[íí)¨m€Ï•:"uDê©r¨<úÎË·,鲤˒.ªÇÿeÆ/3~™ÁU€&†Î»tM(-”C®2 kïcÞǼqééÒÓ¥§r)µs·s·sÏÝ»¿‚YºYºYºÔ]—##?Ù³/f_Lê:~îÎÐÔàl”X€ε(±0Mb§^©r(Fßyÿñp™úeê—©¯||·znõÜêQæ¡ À€¡ón]J å« èšÔ“¡}ªö©Ú§*µ ÷:RAÙ% „ƒkPbaš¥1f`ÌÀ˜ªÇ_î½Ü{¹7Wê& WÜtM(-”C®2 ;âÜŠqã*Æ©–ÒCG9t„Ú€A©(±%\;PbÃ*û î/¸¿ êñ•W€ãZ@ `ÀÐyÅMׄÒB9ä*º³æØšckŽI >Ù~²ýdË]À T”X€®(±€a•F1«ã¼ÀyóöÆç"L:¯¸swÌs÷ÎÝ;woØøaã‡ËËË®4¬Ò°JÃJ%–J,•èPÀ¡€CjCª ©6¤ÿúÿ§ÿö•ÜWr_IíæÆÑ‘9r×PånŸÈ—Å^{Y,~Lü˜ø1¿íümçoƒ‚‚œ¶;mwÚ.rC4!®!®!®?vþØùã†~úmè'þÖ›yà g»e»e»¸àþûO <5ðTÍ­5·ÖÜêèèh±Þb½ÅzÛ Û Û *E«­R´ƒÿþbéÚ×I¯“^'1´ÈŸ{wŸýòì—g¿ìgÕϪŸUh™Ð2¡eÊ*¨ü!Ë…– -Š«ÙØ¦±Mc›Õ©«SW§j¾Ÿè£á†?¾pæÂ™ g6¬Ö°ZÃjUUUÖ±Ö±Ö±¥‡—^z¸k¤k¤kdä ÈA‘ƒ–…/ _ž?û•Jym„jùk9Ör¬¥ïø¼ã¢¼yÝöºíu[”C±ËNÕùUçW/Êê_åþ*÷W9ú6†^›Ñ~©ï+ŠúSô‘Û¶ l#þõç?ýÆ4‡4‡4Q»¶Øßb‹ý£jŽª9ª¦è=feeéúl_xUàUõËÖ/[¿¬}íöµÛ×g[îïr—û[ÜÅ•m+ÛV¶­µ¦ÖšZkFûŽöí{ªÊ©*§ªV©6¦šínòÝä»É3f:Ítªßº~ëú­Å5ç&VžwÊÈ#[ŒlqµýÕöWÛSßÊ¿=ÕŨÍßÈ…®»nXm®qôiO©UhOiOe+õƒê·Ô8Pã@<)€ Ó]Ðm5"`Ùfb›‰m&æîLÂo…ß ¿¥­JÿsïãØÇ±c'žœxrâɈ³g#ΊI½ÏmüDó?¦Â˜ c*ˆATîrÃ<É<É÷j*?™(5š{uîÕ¹Wsw+×-ºÈmC)ϧN;œv:‡Kñ—â/ÅkžKùY#}n+#¦rlÚÚ´µiû¹gÂpHÎS{r8sƒi¿Š*Š*Š&8&8&8VQýEõÚº[Ï;žwâ©S6Üû]<Ä–—5'žÖÏûù_^|yñåÅâ©m[‰»%î–¸«|n†8a-çšíL‰3%ΔÈËž2å^Öò™°ÎݨÍ8&¬MaäB Ïû¼„aµ¹¦¦=¥=¥=¥=5ÍQ¶XaBõ»”ëCâ>[<”0Œ|ТþoŸ? ~œ÷@‹*ïsÞç¼Ïé¢ (þßõ?ÖÿX¿ÇœszÌÑä|ԴIJ*bIÝ ±r×™ ¬ê¹ÇsçbÙm]Œ÷_ÜqB&ù3œS"|¨‹º¨õÜÖs[ÏÕn KâçåŠbySRËôœÐsBÏ ò©ër×ÊŒ{?îý¸÷Ú=+±ì›iŠâýž‘˜‘˜‘(¶ü(žÔiP§AÜå°x2],€©»3\Yhe¡•… qÂZž5[Ê´”i)ÓtqÕ4¼• kݵ§yµú„µéŒ\(áy™—0Ä6×”À´§´§´§´§¦9ÊŽ^½2z¥êw‰ÅäÅ Ä}@˜0JçüQ_qKýU^ƒ:“êLª3I5˜1=jzÔô(Ñ} èݹxçâ‹[S¶¦lMK‹hÒd®9¶æØšcºÇv‹íÛMóÆ[j %–LQáHÏ—my»åí–·b±hÒ½÷vÜÛñûƒßüþ éó¦Ï›>WœÏ}CZw¥E>åPóR!ööP~ZYJ“ïš|×ä;±óíôÛé·ÓÅÛŸbaá“¡'CO†Š¥rÔ_}ñ–玥;–îXJX×ÃéV«[­nµZù¿ˆ7®†Î:{èl±¤°¨‘.¾pøÂáY³,fYh²°§¨¤¦<Äõà ±OäÁË/¼Ü«e¯–½ZjRÃ,X¾`ù‚å¦Sžüpä‡#?H}‹Ø)ùss#?k$õåPü:³t³t³tåÿ.öŸþÍü7óßÌÅîÑâ‘…CG9t¤w­Þµz×Ò¤´ü2ã—¿Ì lj`C¼ßûèÿ¡ÿõg+š‹›7+n–¸w”ÏY LùZqkÞ9ËËË~8õáÔ‡SÿÇ7UU;¨?¦rÇQ[g.B>ªÿÝr¡åBË…bIÒ]}võÙÕGì@ ´¢ÉWý–¶ÝÛvoÛ]ê»J^(y¡ä…UV=ZõHó3_·iݦu›”÷V9(rPä Ý]YÃ*‡šgváÙ…gV\ßùãÎwþ¨ùñEÀOý*ï–dš!“üN+Ëýéù§çŸžy Fª¯I”ÏGêøkw¯Ý½v·ú£)ïUl åyTÍQ5GÕ”:þÙ/Ï~yöKùßRÇôpópópSþ/â9ëm?´ýð?Vq=©?ç¼×ÿôp ñÌ ë~“Èê¯ TfÆeÆeÆiwŠVõ‘ MŽÙm_·}Ýöiŗ ž6xÚ@“#‹Þ£îÞóÈÏVž5Û°ñÃÆ/9õ–n–n–®ü†&Ç»fŠq.®—ü'¬åÓžjkÔf¸Ö¦6r¡„箄b›«Ý<§=¥=¥=¥=¥=5”Q¶x|VêÅ#¶¦Öz€ Cç·&)ñœ x|îwuþØùcçRGûŽh÷ÌUŸ`K¼Þ*~«ø­ÏÈ+ñ†Ÿúœ¡ßÜå¿«?¾xÔP:ú ‹'R¥ö8»½Š…syžEEEÕŸçø'㟌’Ÿ]S‹]m4?~—g]žuy¦É‘ûYõ³êgõ¹çܰZÃj «IóŸån4fèå9¬HX‘°"RCP±8•á°•‰/Ä/Òü¹4riäò¹o~+ñF‚ú )ãî›âýþW¹¿ÊýUNêh>}úT¾²¹ËÛ¹Wç^{5ïwʉF'h¤ÉÔvVPVPVPîÎùs÷ù“s +‡šíjû«í¯¶WÞYYU^ßÓÖºž°îëü¿?¦Ã°–CÍ6¢ëˆ®#ºJM,[š÷ûW“¥ åO{š—Q›!NX›æÈ…ž»nXm®.òœö”ö”Ú†ö”ö4wÄkWRg.Þ×Å÷Jm )j0±q›P(€ #cõÇË×äe“vñ¼¡¾B×ÊK|h~d±Ó§ú%š/óâμ7ðbõA#±…¡t:óÿ˜â‰Z$Pý[Ï—ž/=_ŠiYm݉[¾Þòõ–¯¥Îöü¥ó—Î_2ô¡…~ÏDýÑf:Ítšéô¹G¾iÓþ¦½ú#O¸6áÚ„k¹;gmÕu†^ž÷•ÜWr_I©£)O@ú[¼åœ»#_¹r=„ÉA”1©|èÐ# ‡±öÍ ÷~œ08ap‚ò›ýʱ̻J²OÜ«?€Ø»Wý²™ë—­_¶~™¶î;ÕÅå kÂZ5›xo@ìd)uœ3%Δ8S"ïWMìèÌ„µ&¬s7j3Ä kS¹PÂs÷]†Òæê.ÏiOiO©mhOiOs'üVø­ð[Rç,f¤uñ½Cg=t¶Ô÷Š7€B¡ LùЫ?æ¸÷ãÞ{Ÿ—ã+/w“Ÿgž—÷Ö”­)[S¤ŽØ&°M`í^ÙjCª ©6Dêw,ݱtÇRCétæÿ1Õïð:uÜÔqSÇi·Ã*žþ³ŽµŽµŽ•Z@)†7¦V~—Wóc*ﺤþ^ËÝ9«&TóczyV¿û».î}Õu?4ÿ¡ùÍs÷-ºk ‘r©PÕìf³›ÍnkßÌ”Û/MˆgÃó’ÃÛŽn;ºí¨Ôß:p(àP@´Ú:çO¶Ÿl?ÙVXWa]…u†8a-‡šMý&,âkí–´ ºAuƒêR'âUúêSóSÂó³„J›«»<§=¥=¥¶¡=¥=͘1cJåÒ’.Kº,颋s^°|ÁòË¥¾Wye L`ÀÐyc¬»gÇô{æSVLY1eE¼)½*åF´ue•ß;ÔÖ7šNxváÙ…gÖî²Kš¨;¸î຃U¿QyñpÃZè÷LÔíï»ßýû®.ÎSì‘£ß|0ôòÜÿCÿý?Hÿ¦&›šljbà¼lŽ ·ûW¿ê·®ßº~k©|X™¹2se¦œó„öKwö4ÞÓxOã¼äðhßѾ£}¥þ¶ÿúÿ§ÿtqæšì,ÏV5›òr¦Ú]«CŠúÅ™°Öu{š—Q›¾ÚSj~Jx~–pCisu—ç´§´§Ô6´§´§¹£>LÞ°ZÃj «éâœãÇĉ#õ½Êc%L`ÀÐyc¬þ˜·Óo§ßN7Ä3W~ÚñsÜ Nƒ: êHYùmm]Yõ ‰ˆ÷ŸK‰9(rÔßænmMt¬Ô±RÇJªßXskÍ­5·úÐB¿g¢þhâý*]œg^ެ­|0ôò¬<„Pµ7loØÞ0ã`‹!¥qÜ¿ú¢þ¹`ñlõë¤×I¯“Œ5lÊí—ñÖËf¯Í^›½Ô/Z¨I׋®]/Zêo×mZ·iÝ&]”®_fü2ã—†8a-‡š­}íöµÛ×–:‚ò:=Z뇿ÝòvË[êd}µ§yµé«=¥æ§„çg 7”6WwyN{J{JmC{J{šâíp©¼ZÚtiÓ¥Mµû»;î£Ô76Éj’Õ$‹0À€¡óÆXý1Ó/¤_H¿`ˆg~û‹Û_Üþ"wGöÝæ»Íw›Ô‘¯5¼ÖðZCí^Ù”i)ÓR¦I}£X ÚP:ùL±CdqÙÈÏ+M3,çËûñ ½<‹½v¤ŽvÚá´Ãiã`ßÿåþ/÷1Žû7ˆ,öÜ_pÁè•Ñ+£WªÏUV=ZõHþ¹Aû¥¹¬ ¬ ¬ ±Ö‚xD,;&v7ï‚—µ+kWÖNósVÿÞç¼ÏyŸ“ú[±ë•.ʘú­å‰ò@ L:oŒÿÇ1‹*Š*Š♿J{•ö*-wGV¿sÛ »v/ì´{eŸ6xÚài©otééÒÓ¥§¡t:óÿ˜"äÓíópópóp3ô¡…~ÏÄ”À†^ž¶;mwÚžŸS`ú*-ÙnÙnÙnÆqÿÊaØ)TŒ«W1N¼‰b }3ãk¿Ä}qtäÑ‘GGN<9ñäÄ“-ö·Øßb¿úGCòBýù8žw<ïx^êoŸ´{ÒîI;]”ŠÇ±cÇℵj6õ÷Eþ÷Ù°Öu{š—Q›!NX›òÈ…®]rksu—ç´§´§Ô6´§´§y§É#ÚªÁnÚß´¿i¯~ÔO”`ÀÐycœ? ¼a…®-Z.´\(uäm?´ýÐV»W63.3.3NêmÚÚ´µi+Ÿ++·r(– •O·Ï!Í!Í!Ípë9œ‰)€ ½<—^zxéáRGK»“v'íŽq °éþÍR`«©VS­¦Š½~E kX9@û•‘˜‘˜‘8yóäÍ“7Û³/f_L[ç#ÊF^r¸ä…’J^úÛ÷1ïcÞÇè¢T¨ï×ÉyÂZ5›è÷ʧ΄µÎÛÓÝ>q>†>´ÐrHÏÐ˳YºYºYºÔÑÄbtF2À6¢û7¨Øo­ßZ¿µ†øÛM¹ýÚŸ±?c†úuS4! ˃'8&8&8¾Y÷fÝ›uyÉaõSŸº +?ÊÀ„õç_}Ø>ÿûáLXÓžRóSÂåPåßæê.ghOiO©mhOiOµeOã=÷4­€ÔoÉ{X}mPân‰»%îå@˜0tÞV•ÿK@?÷xîñÜCêÅ’ªÆÝéÌË1Ë*¨ü!©¿}»àí‚· ¨ ëLLyÈdèåY<Ë)uþ¢®c€-·û7ˆ§€«¿¨þ¢ú õ¿}L…1ÆT0…zØpïw±à¤æÏÝ‹e¾:VêX©c¥¹Wç^{õOÏ?=ÿôT},@»9¬~i8±P¡.òçYð³àgÁLXçîøêîÖE?\“ kÚSUUeäB ÏÏh(m®îŽF{J{JmC{J{šwc-ÇZ޵TŸçu×\w°xKXw³Ü¶A¶A¶A\€ Cç1`U¾Û|·ùn“:òõë!×C´{eÅ1¥¾Qœqw:órLŸƒ>}Jýíßwÿ¾û÷]êÃ:S2zySNRç­áµ†×2À–Ûý+·ºK˜óxÎã9»6Äû]¼/â¼Àyó©3+tþ¶ó·¿½¸óâ΋;õÕ"TRmHµ!R+ÎM¹¤É[Æ×ÂæO;¨‹~¸ú]ʘ°¦=U&6³`äB ÏŸ#V›«»£ÑžÒžRÛОҞæ…YKåUÕùUçW¯zÿæåÅÌÔ7Їt¹.†ÎcÀªÔiP§A©#oßµ}×ö]Ú½²ÛŽn;ºí¨Ô7Ö‹®]/Ú¸;y9fýÖõ[×o-õ·§ªœªrª u‚a‰)™ ½<«€æx‡ãŽw`€-·ûW_î&ßM¾›,•b‰B]ì-Ÿhˆ÷ûÚÝkw¯Ý­~zWŸ]}võ‘ÃÒò÷–¿·ü]êo×mZ·iÝ&]Üq¿Vÿµú¯Õ™°ÎÝñÅ›ùÙÿcô£ÿML{ª‰¼‡7LyäB 7î6WwG£=¥=¥¶¡=¥=ÍW^xU@Œ¬UsI¬ðpêé§j÷*ë}¬÷±ÞêCÎ\€ Cç1`U£}GûŽö•:ò”SVLY¡Ýü™¼yòæÉ›¥¾qd‹‘-F¶ÐïðFÎWSýõÚòvËÛ-o© ëLLyÈdèå¹Åþû[ì—:1)À[n÷¯~õ³êgÕÏJ*]4vÑX9物µ_Ín6»Ùì¦ú>’|rx긩㦎“ú[å²§Ýs>`ø€á˜°ÎÝñGtÑuD×üì‡ÿÐü‡æ?4§N¦=ÕÄ–¯·|½åkF.”ðü9²aµ¹º;í)í)µ í)íiîü´ç§=?í‘Ê¥×\p]×wç;Üù£Ô÷¶ZÝju«Õ\€ Cç1à:"o·¼ÝòVêÈÁÁÁÚÍŸÀ6mۨ︖²5ekÊÖ©¿mÛ½m÷¶Ýµ{½îí¸·ãÞ±°¤êçÀý÷Ü7ô¡…qLâÉÐËó°ñÃÆ/uþë—­_¶~l¹Ý¿úµ§ñžÆ{KåƒòÔ§ñõÍ ñ~÷>ç}ÎûœÔ9Ÿýòì—g¿ÔÖ9ßN¿~;=/9¬¾t9p(àP@,°©­;f©ß{˜ kõ~ðûƒßäg?¼Æj N6Öö4+(+(KkûÌ)O•2r¡„ëúÈ†Õæê.ghOiO©mhOiOs§ÉwM¾kòT.í Û¶7L÷¦òJKª”–UÀä& 7ö€U=mð´ÁÓ%/”¼Pò‚ÔñS¦¥LK™–÷œ¹pøÂá ‡¥¾¥ÄÝwKÜ}û8öq¬qw:órÌçÏ=ž{˜'™'™'Iå¡v˳ԓ†f_˜}aö…8CZè÷LL9¤gèåyiÓ¥M—6•ÊåçO`39"¨ßÈŠÿÿ)ÆÚ73ÄûÝr¡åBË…R¿7#1#1#Q[g»Ùk³×f¯¼äðë¤×I¯“¬c­c­c¥ŽðËŒ_fü2C[笼'Ö¹;¾&ýðKñ—â/Åçýl5Y~ kCoOµ5jõ›»»;#JxþÙ°Ú\Ýå í)í)µ í)íiî¨ß¢K{ óŽÏ;>ï¸Ô÷. _¾,œ0À€¡óÆž°”þü;øëúi2õË¥Šs0…NgÞu#êFÔ ©#ôœÐsBÏ yÿíbÿ ©®ªxâÕ8†ú=Bz†[žÅ.¿RgÞÿ?ýÿÓÿ?€åvÿê—˜œ’ÊQ>»ofX÷»xkVêlÏ_:éü¥¼çê“vOÚ=içéé™÷ŽíÛ-¶›Ôœ8/p^÷oEˆ­çýøJw*Ý©´ú…ãò~Î]Ow=Ýõ4Ö†Þžªoˆ‡<òþ]ON<9ñ¤¶J‹iŽ\(áŸËÛ\]ä í)í)µ í)íi_¦~™úRùó,øYð³`]|¯ò̪N4:ш0À€ñ½XtNnÝ}‹®Ï|_É}%÷•Tÿ-yYÎte¡•…VRüýû3ögèb@’»Ò"çrxtäÑ‘GGª?ΪG«­z”»_ý±þÇúë7¬Ö°ZÃjRÇW~nÚЇú=Bz†[žÅbªVS­¦ZMU=fPÝ ºAu ëîø}ÿ÷Gn}Q wªÈÔÚ/å»X•òÞo¹;[ñì¼&Kjþ-êLZÏm=·õܼœùŸ‡ü<äçâcÂZ½ä É’7¨?ÚÊÌ•™+3swžbÙ@ñƆî&¬ «NÖר!ïg^1®b\Å8©ã{Ýöºíu;/ß%F…Êï1r1Äþ†!–pClsu‘3´§´§´§´§Ìê¢Ìˆ_§‹ï•j¿ÄL‘ˆ0`|FÅ-žÜ”[Bwß’?gÞò÷–¿·ü]ê[J%–J,•ø¹ß(B¿êŸ­‘r+-ò/‡]žuyÖå™ÔqÌÒÍÒÍþÙÙHQTQTQT“c¾,ö²ØËb¿íümço¥Ž,ÞøÑîž(ò¹ Œi8mX!=Ã-Ïõ[×o]¿µÔBLoÖ½Y÷füïC îs÷¦6¬û}¬åX˱–RG‹°:rèÈ¡#Ÿ›“»;î£&»ç*{4üÑðGÃ59¾ú÷r~ó>æ}Ìç†~™°ÖœòQ%úÒ¢_­ù1ÅžˆR*™r¬¯±CÞϼÍÄ6ÛLTÿ-Ê5¡æG;ØY¬·Xo±^¹–cäbˆý C,á†Ûæj7ghOiOiOiO™ 4”Q¶˜í‘ ó‹P:ñ(#Lÿ¢¾œ08ap‚X˜BLHÝÿåþ/÷‘Cc`¸à ,|°P“îf³›Ín6»)ž9/Þ„ÿ{ËÛ-o·¼mäÒÈ¥‘‹ú㈅žÄà*/¿E¥Eþåð…Ý »vš\/¿µ~kýÖ.ÿâþ—_^|y±Ø)P,rä‡#?ùa†Ï Ÿ>eíÊÚ•µS?X:SâL‰3% =ì*Ÿ3!¤gèåyÚ÷Ó¾Ÿö½Ô·ˆçÐå6ÍÚL_gn(÷ûÕöWÛ_m¯þ •'YöÜ_pÁÛé·Óo§‹~‘ø¥báÊù¿Îÿuþ¯aÙaÙaÙRGS¿¢ò„¦ú7*Ô/6þ¯žXšCšCšøß§ªœªrªŠ8ç· Þ.x»@ìZ½h좱‹ÆzŸó>ç}Nõ ê4¨Ó Öy?¾˜$Õäª)çùÝä»Éw“E/Tô¨E¨£}íöµÛ×VýÛî[ºoé¾EêÈbjÛêdÝt Ž Ž ŽšävùCå•?$þ÷±ÞÇzë-Þ€“•7*ߨ|£²xNêȵ»×î^»›‘‹!ö7 ±„n›«Ýœ¡=¥=¥=¥=e&ÐPFÙêW˜5=jz”üÇøÈO€ ã_zôè¡Ý7 kB}ú$²U€ ã_Ô?OG8:¯Ò^¥½úga@Mv­"ö÷͸oÆ}#–Ñî™ë¢´b9T>ÛÒÃK/=»ú¼önØ»aêÏPùß„– -ZF,$h_̾˜}±š[kn­¹µw­Þµz×Oýîù‹íÄñ›Ÿi~¦ùñ^”˜d»Ö‰¼­]/º^ô,‹Y³, qȘܹxç⋳ Ï.<»pÝÁu×ìéé)ú¢¢_*ÊÆ”SVLY!u½ŽŽ<:òèH©úG,„ÈHÓGšÊµŸØ»Tœ¿˜VãŠ2~+üVø-Q/%ý‘ôGÒÊÁ6j~cêoG 7ô6´§´§´§´§Æ7Ê–ÚUûTíS•»Lw”'ï‡4‡4‡4Ê-÷»ÎÐPz”IS%nLܘ¸QêZ‹ ‡)_wã+ÿ†~_Ë­æ7¬þ†q—pCosA{J~Rç0’2Üß(ÿªßÒò÷–¿·üRLj"@yñ:rIž´{ÒîI;å<ïp04eóÿëü_¥êñFu`ý ´§€éÈŸQöû˜÷1ïcÄ[ÔªßòÇè?Fÿ1š{Rì“í'ÛO¶þSü§øOÉËnø\çî»wîžrn‹Å¬ä9ô{‰I ME)⚦C,ÁWîïÿÿSu~ÕùUçk÷»¤Vª`Ò 0¾þ@{J{ ˜‚l·l·l7õ;ykë»Ä¬Žê·ôèÐC,ÎÀ€€ÁÛòvËÛ-oU{8íZµkÕ®º0íûißOû^9·—6]ÚtiSy涇›‡›‡äõiƒ§ ž6àš¦Cì(U'\^|yñåÅyÿ–›ö7íoÚ—¼PòBÉ ªß"v¶ËŒËŒËŒãŠÆÑßhOiOSð8öqìãX©{_<¢-ʳ:ʶÝvtÛQúP0``øŠ*Š*ж lØF¹‡S*±Tb©Ä—Å^{YŒLÊ»;ï\¼squêêÔÕ©VS­¦ZMù\1®b\Ÿô éÒ/ÈóÌÛ4¶il#5@ݾkû®í»¸¾€éˆ›7+n–TбRÇJ+åe:)+(+(+¨éó¦Ï›>—ú–î[ºoé¾…kS =¥=LÁÖ”­)[S¤îÊægšŸi~&ïß"frĬŽòñƒ‚‚x÷š L‰ý÷Ü_PµŸ3yóäÍ“7ódhÞIíµ|¬÷±ÞÇzË9‡\p}Àu©ªòûÁÏ=ž{<÷`0 7^R¿oYÿÿôÿOÿÿ¼*ðªÀ«Ï³‹:Dy‰ZUf_˜}aöÅñÇ;ï@ÛS =¥=ŒPQEQEÑgÁÏ‚ŸïXºc鎥îîîR÷æ°ñÃÆŸ÷»rÊŠ)+¦¬P=þþŒýû3¸ë¡ À€€Q‰ºu#ê†r?§Lý2õËÔgxwå•?TþP#—F.\FûŽöí{ÿ—û¿ÜÿEþy›¼!yCò†â¹ÂuŒ•¨ÇÔ×eíÊÚ•µÿû¯r•û«Üßwÿ¾û÷Ým?´ýÐöÑðGà Oú#é¤?F¶Ùbd ûböÅì‹©?æ ¿ý5è/ò0¾þ@{J{ “£#Ž<:òsGÐg¿<ûåÙ/óÒj¿°{a÷ÂNy&G趯۾nû¸.Ð`ÀÀ¨ˆéÕÞΘ c*Œ©@þäáN¿Jí$E¼ÓÀŒ•Ø/°x> -Z&´Ìë¤×I¯“eÆÚßhOiOãð¹à^-{µìÕ2ïß+foT×QÞ{˜«M& ŒÐ/3~™ñË åÞŽòräiJ»“v'í`Ê”§uGì_˜‘˜‘˜‘HK =¥=äOó°ØóûݰwÃÞ Ë˽)B¼¥‡—^ú_õo跡߆~Üõø\€ £ÕsBÏ ='(÷y†Î:{èlrÆ”}²ýdûÉvíîµ»×îËK:¤9¤9¤‰]ĦLÜûêw5Ó\`›À6m¶¦lMÙš"öNcÒ @{J{  Õ°y’y’yRŸŠqã:øwðïàÿÇè?Fÿ1Z[w埇ü<ägåoŒíÛ-¶×¹C˜00ZoÖ½Y÷fèíDœ8q–)¨bß_‚xLDÔb_ÃzÑõ¢ëE»FºFºFŠÝÈÄäW…uÖUXWmHµ!Õ†´ü½åï-ŸóxÎã9ÏÝ;wïÜ=&©´§´§cgMˆõº”glš|×ä»&ß)Ïêóø\€  ©÷“ÈhOòA˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#A˜0#Aø‡’5þÖÓ爞>Gõô9¦§Ïñ|ÿœÐÓ礞>§ôô9­§Ï=}ÎêésNOŸózú\ÐÓçb¾.éésYOŸ=}Rõô¹¢§ÏU=}®éés]OŸzúÜÔÓç–ž>·óýó·ž>wôô¹«§Ï==}îëéó@OŸ‡zú<ÒÓ籞>Oôôyª§Ï3=}žçûç…ž>/õôy¥§Ošž>ézú¼ÖÓ'COŸ7zú¼ÕÓ'SOŸwzú¼×Ó烞>óý“¥§O¶ž>ŸôôQèç“T@OŸ/ôôùROŸ¯tõ! F‹0 £ \`¦ÃhÀO?mü´ñ¡$}’õôaObv#f7bùïFl:û›ÎĦ³÷ðE=}LgïaÓÙuØtö6†ÙcØøvÖ׿³»0û ³£0{ ³‹0»ëkaÓÙ?˜ƒÙ3˜Ý‚Ù'˜}‚õµO0;³7°ìw~û4öi¬Ñ¾ ÐÀ`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ F‚0 À`$€‘ l0.9_r¾äœ”–”–”vxÎá9‡çd­ÎZµšœ`n~{óÛ›ß&×L®™\ópÈáÃ!™ 2d6 gÀ”‰¯èýŠž°è“3ŒÄ Å ÅŒÃwß=|7iEÒŠ¤§’N%J"cÀÈ rçaã‡6N^”¼(yQòÓä§ÉO_f¿Ì~™MÎ05€õ&ctÆèŒÑÇZky¬åÔè©ÑS£öìØ_\K: è4 Ó€øÑñ£ãGßžw{Þíyä9€üô®à»‚ï žszÌé1³ªÎª:«jx·ðnáÝ´U˵‰iÓ&fõ°ÕÃV»Þÿzÿëý§§§Èy?Ñ;=UÑkÕVë zÔ¢w-zÚ¢×MžÈO÷ß|opB£„F ¢[F·ŒnYjJ©)¥¦ä½–ózëõÖëíø.㻌ïrèÉ¡'‡ž¤õNëÖ›ÉHÈHÈHØúÅÖ/¶~>=|zøôâz2Âu„ë×Ë‹./º¼ˆë@[Þ‡¼y²;xwðîàFýõoÔ__µ\¿sýÎõ;wÖë¬×Y/® ÈèyŠ^¨¾ZѽqÑ3çºÐ–ëÓ®O»>m’ã$ÇIŽúªåüÂýÂýÂ74ÚÐhC£—i/Ó^¦q]y1ò`ˆ² dÈ.pðëƒ_ü:òuäëÈ×úªåº—ì^²{Éc­Žµ:ÖJÑUÑUÑ•«)ªå'髤¯’¾"g _€uèV½[õnÕë_°Áþ‹ËR©¿Ký]êïM›7¾‹{÷.Ž«@s÷Ý?tÿÐh›Ñ6£mŠËØÊ5+׬\“ñ(ãQÆ#®èšèUЦèmʳu½tÑcçªÐÜÇ~û}ì—è“è“èã4Öi¬ÓXyÖrQ £F5L-Z:µ4W‘#/rötÊÓ)O§L›7mÞ´yr®åæ÷šßk~¯Ws_Í}5—«e€!O€µìÖº[ën­‹Ü¹)rS«ÌÿÛ­bå.ŽÅgÏ }ânõë‚z‘Þ}ökR£jÁƒ™Í~óu ~³bþ6;íÕò=³za­•ž®cûV›V) nŒS/Û¯óÒŒ­šºjꪩ–~Xúa)W€ªW\}p5&>&>&>wõŒõ6óB%†vjç¾ÐáÃŒè½nQW×ýÙ+kO¯Æ·üŽ\Ýl–ÌUÍ*ûWþïQ‚_ѵkkwó\=1>°Œ‹GãõÎÙõÍK-÷ÓáŸÿt8³pfáÌÂ\MÐÑ{=ɼÔÒuc‚^Ú~=¶oïJ«NHôtÝi?÷ˆï™õ—ìñ·9˜¹ì[ÿQ{‡-xSµà¯ ¦Oõî3{Ö %îVÝ*6½îXÜa«íuóÿæî{Eï]ô乚Te×ή];¡pBá„Ây©å*v ˆ³r‹°Ž©èP²Å¼¸ø :U]è2 [ÿ5‘nUºÏ\×ÐmVÔÉ•£\×¶[;OQ©z£”ÑëËgôm[Ю²Í¡ò#K¾ÍÝ÷Ö¹]çvÛ)ÓR¦¥LãjšÎÈ«D‹IVQe›‡¹6²®X¥½Í÷³}R¦}áùݰB ½úŽŠ^zÔ+xäñ%Š*}†˜Ï[é¶!ÖgR“ MZyÆN(ÓÐomõsŒ¼èÎó Ï+<¯0ìò°ËÃ.箞1ÛW²@ñ•Þ³²¹_¯ÙàŽ#Û\™eW±y—z˯¹:v7_;Ì­G·§k=Ý";]–éò®õýƒ+~Y'y`‘r™žÞuÙ”ÉK-ççç—>=}zút®&CžkAFtFtFôȘ‘1#c4o$œS­ž–ê¿p{ø<WV·³^ªPÄÄÔª¥­ôý5nì¯ÛtKÕ¿{ö|U~Åç6c.¸pà×À»çïž¿{þCÄ?D|F ÷OóoK ŸÕ3t”ÛåK%#ûÍÓn-—½¯çÜšIÉ7›'U+?h±ï¸ G>·–K“8&qŒâ¼â¼âài¹W½þÜbåñ³v[Õ ½RüW05™¥3Kg–\kp­Áµ4©+*¼ªšm¹¥ë’Uw]kyJZãtÌîs!>¯›.ž0ÄéÑg„å¼½Ù½Õ G^ÂZ}[£Ú®y]wõÖn¸WóÔçèÄÓëZ–ý2Ô½ÁF^ÔK}ú õC’C’C’&5FõîÑîö¼Ú»Áók}µ­}·%FT^8¢Ý»išœ³ÿÿþ#î º3èÎ ®¸©! y"üÙ²úeõËê7ö«±_Õ¨k¾Ù¡Þ ïïS{”­qG_á©ôŽmÇ:¡Sb*{†•÷Öä·œZ|jñ©Å”ÀÈ+‚ÁsVÍY5g•FKÇW¬eU%õm\÷;5ÊÉ­–{T¯óü°§Ãºú=v^­ÉoÙtÿÑýG) Eô5©Qc*·oC߆¾ máÖ­…›úz`Zó`×!ïö(]ã–¡Ôr÷®ujV¾U—²éêÝܽs÷ÎÝ«¸®¸® ®€ˆ úú3"ÌßÖfÕõg[Ú†DÊ-è+•f8îWóÜ¢ú#~ñHUÿëÄ(@Œ(€ñIœž8=qºúzÀ®o%Gó«}â¶ùUö—ÛÄ´d:4%ÙÏ«õövÎiê]¹ÕåV—[ý°×Ã^{Qä3òroZð—_?üBnA_É`ð×s\v̲]°³¶#/À4}tüèøÑ1vQì¢ØEêëð:=vÛŸ•pj“OMCi[‡‰÷.à9ßî,d=vÀØc|jý©õ§Ö” ãFòDX#wŸÞ}z÷éÿ˜ðòw´µùùþöN?‡µ4”pˆTšP¯^–÷Ùÿ±Ñ}ɸ’q%777)!€¡{nþÜü¹¹S§2Ne¤îz7KëqÝo”hß#$ÊÐk¹=ç›ò»¥¾–û¾Þ÷õ¾¯—––F `¢n*n*nŠ^Ÿú:3¡Þ7¼ÏJÐW*½¿}gµ°–þþ–6?«ÿ½bt@ŒÃÒ¢K‹.-ªþ®o16nr…ÛÚ¤Ìð«h0¡_Õ ëqGí¼}½Æ7¨lóƒúß›š‘š‘šAÙÐ×È«Ô`3§OU'ÿØËPC úJ¥že‡ÕX0‘`:2úgôÏèÖ(¬QX#©»ÞìPÉoНêã´õÇÊ–†ÛªŠ´Çõ ÍÜ[¨¯å"·En‹Üö¡à‡‚ RBŒ`ÈàÿávÓÛMo7U_‰ÿô¤ú4sÅó˜¨Zá†ù×Ûr3;y†•tÙPú…ä”ßðnû ï¦Ø¨Ø¨ØHi ‘ØI}-7aNÀöJ/?é¹¥æecªåžŒ ­þ<ül¹·6qR¿½Ëæ.›»lΙ=2{$¥€ ٨بØ(zzR5¤Ë†ò·-JÞ›¹£yXICýþ+}~âÏZá?=ö•‡¹úöQŒ(,€ášå1Ëc–‡äM>¨ø¾âžýÏýñ¶JCŸžVM[ùq¿óÿx ò³ Ï.<£œäçÈ«‚uË©1¿ß\9ðx-Cý*§Óç¿ÙûWéKW«&3òŒUzVzVz–Û·n#¤îôà ŽOÊ–»ôüaßcjUG:uƧwé†Õlþ’úíu¾­ómoßW_ý}uJ‹ñ! y",éÁŽ;ìPß5?ð¬Yÿ0c ‡¨¦ïõ(\ãb·Y•ã¥òa|‘ñEơ̆å•å+ËW–%v–ØYb§äž%?7Xìsܸk¹ìz={ÔÜ0bIÕ½ËIåCÏi=§õœ¦Q„(B(9LèÝIÕŠÝf5swt~¿èðÑ*ô«’x¶4À?Lýˆ@Œ(3€aY½0za´Ô}í^$|céÝ£ÒNÛû´3¾Ð¯rÚ«ûoc=&¨¯å®¹_s¿æN™ÑõÈ«rÛ¿Í 3¦ ¯j¼ëç¬c›ËÏi²­koF^€1Él˜Ù0³¡g!ÏBž…¤îî–c§Õtö5îVuB`J{?» ‡ï*,• o4¼ÑðFVÛ¬¶Ym)9Æ„0ä‰p^Û¾¶}mk~Èüù!©ÊúÒ¾ÈÍA»;(ò¯´mŒ[-‡ñmB+ÅKåɲ"ËŠ,# €÷k߯}¿Ö'Ê'Ê'JêŽ>:®Å¾j{M¨–SÄÄÔª5?­úS&Ry2yæä™“gR~7Ñ£“|ì¯MÏm•âmOÔ«å`Ü¡_åôÒ¾í–Ê1j#Ê ["¶Dl‰º£Ë´óµ‹ÿÝ¥º¾»Œ|’Z)xö/OÏ&êÃÀO=iô¤åG#/ïÙcß®ìdÜ¡_Õ´ÒÅ.u‡eäºìôìôìô¦4ý£éRwtçëË­]¦ÓªŠ´ÍùY%*J®*ÚûHï#½(++SŠŒ`Èàù´ôÓÒOKökدa?© új|» Á—M-(¢œNìXÀÅVò­è“N8IYäZÍ)>)>ÅŒ3^ê.>U·U\À9S®å=Ž(äñQ*~kþ[óßšS”Ñ‹“ªý&vŒ­ãbk:A_Õôj|ÂOÁ—%Ÿåï×°_Ã~b4AYäéÜ‹s/ν ýžmß×nÝóK?3S›¤é냕½$·òÈôÈôÈü°íöÛ(KÚyùŒœpc­©…~•S—]-F:2ò ×D÷‰îÝ¥îâ¨Ì•G]·šf«*Ò¶kç†V|&•?K.¸d ¥È8†<þ—9uæÔ™SGªR>_±MëÀ§¦ù'ÝÓ¨–_¿ÅÞkœÖKåÕc³ÇfÍ(Q€ÜÄ—Ž/_ZêÎ=¨h¶Õ µœH§– Jv­"•Wד¯'_O¦D0¢ç&Uãõ[ÜöŒÓzÅÎskù™rX¤ç+þò<ð©T^‰Ñ% ›ô=é{Ò÷HݹURëÖµÎßâÒ1ßs¦òò7êçeÅM9ô«œ:»µyØ·#/À°ì­»·îÞºRwn‡ VV:H«*ÒæW§DWØ ùFÊ©”S)”(CGòDø¬.X]°’ªˆÿl´Å¯áå4«wOóšCƒÛ¿³n¦šc‹"E,RÔVÔVÔ¦trðwìß±ÇJÕrk‡×nṈší_éÀßZÚžu}`Ÿ¡šcåJ•+U®ÔÇçŸ|Né`Àj+j+j‹ž›j]<Ø{¾u³¬ÞG5‡úUNÿœ·Ö¯˜T«*F.@>¢:Duˆê z·Z̵é]"pLÀÙN>ǘžVN{ÎÜ8Í}–äc£ßüæà7”«Ü¼ÜVÅZOªLÐ÷_©ãª':Ø Ž©÷##/@þž}zöéÙ'©Z®AÝáUÊ;Ò’ª¦aóºýe$•oo.½¹ôæ¥ËpÖ– ;v$ˆ<œ?%~JüË:/ë¼ä1ë\"¬øøçÇ??þYºXéb¥s˜Ä™8>°ˆ‹©ôYT”MõT©¦kãõ×7^§Œz¬V> |šÓK1Õ½`Ö&!¨¬TÞ_{íýµ”4†EôÐ$ßî*°´® B¼êÓqGÔŒ(÷µ­ym„ePÒ}y·õÝÖw[¥j¹v£çí®äÃdôÿH‹§ó+^qEÀ3«PÕ<œ>!|B8%Mó‘W×RCà ôªO}Mé¿–‘ O‡>xø Ô:<äÈFï²´žêÓ'þröl$•‡) ) ) ”4CD8ï”ßýU`°æL:üªÐ«B¯ I£Ë¿·ý&(°‡æitó*•g¨æäèU£W^ÅÍèaÚ«Ë».ïºHÕrÉÏš«æLÝ¥y:a\ÀæJ9<ËßéZ§k®QÞÑCS­Ó¢›7Ÿé8ƒà®æéåß7J“|²Ð«B¯ QÞ€ü·¨Í¢6‹Ú¨Þ•.1!E¬R'ôLÙèçÎ4´&éà¾õ¼&UËÝ[zoé½¥”7õ#/o³1ÝW´%¸«yZÁ²å˜˜%Œ¼ùÈÞœ½9{³M9›r6årØñwÀB§J×h1?cÝ“úUÈaåÐB¡…B )ž)ž)žQê à¼]Ü-®1‚Áê™txJø”ð)᪅f¨¥__çÖ„:>{9èEQ•«ß“º÷}Ü÷q_n9 ?­ŒY³2Fõ~Œ¬èZÇþ'j­Ï^úB÷Ÿ#>HÕr×_{|í1¥€ü‰^™ä²Ï‹ö.«~°îç¦C-;ovnÃp4|JøÞòÕë3¯Ï¼>#¹ìsÿ?§zVaêùsÓF%G5.¿W5?{¾îùºçkJÔÈËÎ!(¦nuºŸ½tÝ¥ƒ]fäÈÇÎ;{ìì¡z?:{N·4!(¥ƒïþ~Îrп\\컨Dù’¿? š«'‚N¢ÔÀÚE0X[L4œ¾>}}ºä’w/Ü¢‡‡êÈ]:oDõî94]cGŒ1v·?>ôþÐûCo©ZîŽwǦ¡?P_å.Ýô¼žµwmÕ\íüªó«Î¯({äOôÊrØ]oÄ;îåæ.}áöç•ðP©–WŒ>({@þX’´$iI’êX}|tGû˜tÎ]:&üloŸRµÜé§>œÊÈK•ÿ„Y3¶$ ›»Ô£xߕӿbäè×§kŸ®}ºfmmmmm­z?ö±ß:©r)ZÉÜ¥ÝÆ®èæ›Ã{ÀN¡N¡N”=ÃBXwç…‰€WZYhe‹?Ov Üà2‰ðF^ÒŒªÝ E,—Üm´þ›úoêSmº¶3agÂÎvMèVeªã!jª¼¤ëöˆ¯é'UË=ýêéWOéÞ)Ñ“ªÁ2ªœ±œPn^ÒÉN½~u™¤š·bôA t-Ë)Ë)ËIª–ú*¹«×¦›ó’¶X··Â“æR O.<¹0#/eö©5Þ´¨C7/ip«‡–aäè×I÷“î'ÝUïÁJ)ÁŬâió”–Iqò3·a·¿ÄMÕ¾ÑøFã)†‚pþ ü¹L.üéõ§×Ÿ^K…'?vé]½á¼§“Îs¢šÃ¿ÍùmÎos¨ª]ó½ä{É÷’ê=xýaû6!m¨£òžþü´æê*sTsxÅ‹”@ò$zbªuפG½F¹ !|›÷ôÉ{¾ªÞGj¬!F"”C@w’g'ÏNž­z÷UkÚÆÜö,ÍyOG{žžåÓ_ª–û0òÃÈ#y UGÿØzK+‚¸yO]÷÷h=îgF^€¾D¶Žl™ÃF'1›~áþ‚–1ïi§÷Kg¸lSÍá὇÷Þ›h(ç?‚Áš0¹ð«+VW¬T/|«e.-í ÒÐVz¿}§1aÕUóÙ×Õ×Õוê Ð‡Š‡Š‡9t;¼.Ø~iù”ÚI[iZÅ®wŸIu&~ ?…¥€Üˆž˜j­u¿ýŽŒ°êú š^kø[©àÿªE < ÜjYíûªù,F"”C@w"""Tï¾¾Ó·gUžÉ³¶Òêºï³Ïáa—Ã+¯8¼‚‘—Å'g×·ÚJ».Z¹¿2#/ ÿ½nòºÉë&Rwßø£—çú¾£MÌ{:¶÷ùA¾’µÜÇ¢‹~,Ji”?ÀúE0XŠÉ€§™RdJÕ‹ü¢ùñj΄4´›úúÙÞ·¬šÛÏ=_ô|  «‹®.ºº¨ê}·¥@ýŸ}¼©—´›FººÖµÿI5·o{Üö¸íAi ¢÷•ÃÃy~îVƒõ.U z8ùÅŠöÕœs^™RdJJ#  ™í2Ûe¶“šÜ™ðMÊ—~E˜bÖVÚoÉŽË•«æsttttt4#/Ôï­fø¸ÕnjW.(¶n#/ ?íŽÝ»;Võ¾kRu\§´†ÚMÃcz¼¶OUÍí3eÏ”=S–Ò(€åƒ`°2S ŸTœTœ4S˜)Ìr¸!߉Þ[c=Á í¦ñ•ëìðê§šÛ‰;w&î¤2t!À>À>À^õ¾{™Úµ{øJê%í¦û†5ªºU5·—E-‹ZEi ¢÷¥Z_ÅW޳ðêGX»é»3‡]k¬WýEb$"F%”I@»N´:ÑêD+Õû®þ™aí?0­¬ÝtüúË­|ŸKMŸeíÊÚ•µË”G^å^ÜçLÈV»©ç…#7bää§Ž :.è¸@õ¾t~_ºçzZCí¦}¶N®l¡šÛc[m=¶5¥QþËÁ` ?_ò|Éó%ª—³y³JeʆÆÐEú°qgÿ°B#]=»zvõ¤´+stæèÌѪwœû¯6–¨‘t‘¦¿ìöcD3Õ<III§LÑûR­¯6þcDØVÀºH›7«±¥lxká,y¾äùÊ$ ]7OÜŒú0Jõ^s8äñ¶Ô[9LæŽ.{º¿O¬]ŸJå̯þ³BÏoÉ¥_©ÿ«±ç.”÷mRîI•w‘â¯\¿½ZºÊøe—kù>–Ãïw¸·×ÕœïÛ²o˾-Msäå}g܇U¿É-hü÷ÊÑÇ›¹mŽ Ÿeó‹ÏâP’ã­Û1›h¾ªT†ÅüòË]æ8š7(СCÕ~œ°e¦œÀåÿnšÐm #/@×üpà‡?¨Þk#Íqq UÕ]Úôæ„N9„/;4ûÒlJ¦œ6\Æ 6¡pÓ>Mû4í£z©Þvé~±†µBî7«ëbç^ªiɰâŸénrÇ¡÷å^Z:âråªç|ÅúŠõkª@[EŠ©z¯=Méò°úú­²‚z~Y³·C‹N%ïýûí®ÿý·?zx•k#þ½ÏAÛÝVí4ÿÛüIK4œàÛF5ç“$H>@É _¢Ç¥ZG--=êJår—J4iÖZ}Øi»½Â<ãRüÆA‰r ¿í’T³F9/F%”L@[Íz4ëÑ,Õ{­†sì'‡>ò™Òýç´&¿RÜï_ iJüû:Ë)÷äŸú°€U‚YâÀ°?}<íÕÿU¾î\æR´ï>ÕœwYî²Üe¹i޼:ÌÞ[HFË&'.^s`”ÍpŸÂ!ßk>¿ä~¨ÏoSOÉ3\ùü ·9®Œ¼]›×y^çyUïµ…ö˜UÙI«ª»4¦é¦›îgUs>abÂÄ„‰”L9#lŒ/lB`‹²e-Êæ°¸\¿ïZNú ¼Y×}fÄËJÃJO)uJœU…uVÃK¹Ìy뼡ù–jVwFÖ»?£éKÿoƽ(Sižx'øsC)ùŸ&5n^Ùÿ¸jÎï ݺ'”jЖììì–ÃêÞckMY¬ |V¾ÛìÌ­æhR7–^rN‰*â¯~hüÖõ±Üj¼”gmGû«æüj³Õf«Í(™ôKô¸rŽ6^nå\Î`aTÍn»+NÜÓxA¿¿?˜¹ÅgU?«¶½œ¦™}Qüdñµ,Ÿl7«yEFaà~'ÚÖrÊa¯²e-ÊR2m9;á섳rXçàâÜy³ä¶´£òZ†”Y\bðÐzIÕ½†+ÿ›¾M¶/¨<²D£’‹Ÿÿ²E8§ §ä6I-R›XÇ¿K^ÉiSy·[qù¨§|Â¥¶Ôùꟓ;V"²ä—Nýš÷Ž~é5¼ôÂ)ÞOÇ[®ºX)¨SÌî%³iwLù·TmÿëßÎÉ-ì7­é¯ýyºÖõU×W]_åÐ3Ÿzª§?­ªîÒ!÷ÍòÊáØIo'½ô–’)g€qƒ ˜òMèía[ÞR!‡à늳2K/~¨øèÔm··‘ îªþÇó–½Íãä¾Q¢}Ï(Õs^a¶Âlt@‡µÜ?µÇØεÂäPìêÓ¸œ_‹œ¦‡rþ÷›šÔ½í]þŸºñ‹â±ÅkÝNïp%4\nµÜÓ ]Rª'¨þ®qÆ5׈’ @¿DKµŽºQb˰(y€KÜ-Q³ø¶?=N©ê!þò®ÀâÿZ}zMï¶òß9ØÛÃuº¥ÂÔB#@~ÚywçÝwUﲘ¯7Eºï”ÛÄ®ê•ÊÐã+]í{ÈùJµ–ŸÄ¯ü¼öëßä¼[¡—¢áw6‰¦VËI¼Bª­š{â9J«¤ í:¿Éÿ-úav¸DMÏ}#B)ÄÿûÏÙ*ýûÆ\ÍW•Êø×/’Y8 Åüú{î0òtÍÿµÿkÿת÷ÚxÛK1¾ûhUuø‹œ9á³9‡Å·—t\Òq %Ó°ú€‰áƒM:ܪ¡‹Ù—rÙâÏj{¾ê3¾‚ÛÔqA]kiò~›jXžï?9ßeJõѪç99krÖä,ª@wµ\å}6×-«É§6øÐ¶Gã Õ…î¥þ}›‰®ßÙ÷ÿ¦Î$'‹2çäY˽Iî¾$"S5ÿ»½èö¢Û J&ý=.Õ:êÉù=Õª–g8êF“+å’5 è*ÿU½èàDÛ¹€[5¬ýuÙ—€ÝYSjM©5¥Tï²ïî:]e„<§wU®lfÁ7•Ö50êmùkÊo2 évp‹—›<ßRixÉì÷¶¨äX·âUùJíž„ÜjÐWœ[ÙsÕw7±Õ$ «ü‹¬çxº’[8¨ÖÒ>‡N0òtÍ"Ý"Ý"]õ^›Ð/e§_ZUÝ¥ãÞ_ªä»M5çCŸ†> }JÉ4¬¾`ceXÁàò¹%ò_laÏÙå»Éó­YõAŽl·žík®™{5,É}¹üÀi»Œ(P@¾«¹ÈQQ¦¢<ë7!¬ˆÃKëGªÿæU®ƒÂ7”J,áò»?®,Tó×* åYË}îQ£Æ{ÊÃ’6qÿˆò ïÏX2ÌÿMþöÑóRýìþo ‡=¥\äöpláVƒÊw£¼ùoðªzÞ“ó[>Êg[ú•Cƒ’íÌ­-mÍbĉôŸu¨â@9OR‹´ÞÐ!_:N¥¼Yw¬2½Zº|¥‡œ*»6ç¦üîïÿØ3Øeáó}µ«>œ±~kaÿU³^n/·pp¹ŽGêQÞ€ügÑÂæ‹δª:O¿MùÚ¯(å 0V;v$ìH œOúÇû|ãtWž`üØW²iPÕ¥"ì1Ö²ZÏJÄûpeíJm*9TêwÉí·¼ž×íXÄ0no ÿ5x[áOÛór«76Üã;R}ݵ:µÖ.ÏñßEXÔŠò¬±?NêñWÍÊÃòzÞÁ’Ãä¾›œ˜z_“¿½iÿ{½ŸsjSäîßn­Ó]Êÿ†<<4ß«¬—y”X¸Ò'¶ñä2²žžVJÖñ¸üPÊ›Í1ß/CwÈ"Dºíç§Ç(Ÿ›™Ç·“[(7—¿®ËŠÇG z`íéðWÉþ´ª:Ok¦ôö+GyŒÕ‡Í6ØL8ŸÈí àÓ­R¿lòó]»É%îšÙß&uæÞçl»X•ïòÌãÇr³ršðâ `Å‹Ëõ àwâ—Ö˜gÓÖ¼F‰åRuWcçévÄïàïvÂa¬<ë7Þ`¸äüðû˜ÃkkÓäo3ã’]k´Ï©?ÌÀ€©“ÿÀªo, ­{ÿ¸ÊùŠ¡LUó° Ÿ7€ýÏÌŸø¯]™ƒN,/žüÐHÀ¼ è‰üß6ŽV•7€ãfBo‹5Ðóó£šÝrÛØra‰›f‡Ä¹U)jóÁ²ÞÄ“•\üÄÛr7*·Òócýjú‰¿ºÖ°Ý¾O–ýß„—aìÜs|Ïñ=ÇçIàÃÇX?ªw™Üö–Zº^´Ó1ÛjŒv]ÚVR~fÛц…}‹ÊóW¨ß¸ñÎÆ;ï¤dòáÃG¿ÑãR­£ä¼°æoßNß6.4\üUÉ %¿,þDn`©=€)™|øhë3¦Å˜cZ¨ÞerÞX¤ß±«n•ÎÊ T báÊáfxw”ÿTµÔÀ¦6ò’ÏÀAË—IvU>·jmçVÝùÄ8ÀR{3òâÃG»ŸR¥J¨ÞkòÜؘZU©=€½3¼3¼3(™†Õ7XXha¡……Èãûì±sÄÎ1_Æ|󥿡_ñïMh`9¼sìía[ÞR!‡àAƒ:FÛnguÃã~¹äO¶=wÔ¼¢>¬{µ}»îÁÉòß(ѾgH”êy®0[a¶ÂŒmÃ]¯¬ xÓ¹V˜Üj†-oëð‰gh–^üPñYÜ?¿²µøßöÅ,¾.¹ùCÛk(ä~º¡KJõÕœ×h\£q(™ôKô¸Të¨%¶ ‰2ô=€÷4^PÄïÀÿ=@YÉʲžÜÀÞ®Ó-9õØhÇλ;ïîÌa¡õ˜¯7Eºï”çôîøJ—Fûª¸/ÐÙêŸZ«ò7µÊZw“Ôÿšj—ýTµ—¢áw6‰¦VËI¼Bª­š{â9Jÿ5÷UpLЊ šü•ßši¿üz«R¯N‡:T:Ò¥ì°%!ÅW;QL>à€óëï¹ÃÈ Ð5ÿ×þ¯ý_«Þkãm/Åøî£UÕáBÖΜðÙ¬šó—t\Òq %Ó°ú"XHθ?%~J¼æA_ñïó?è«Ì„Àe-ÊZ”ÍaXÒ/Æ»–“~ƒeꛯ(qQœÏñ-ûh´dëžÆ/ýß„—œÀI›Wö?®zž{B÷„î ¥ú´%$;$;$[õ^ûؽÇÖšAr«Þ.èþ¨F…ÒÃKÎ)QEùlk­)U¦»øßý?ø8;½•gͦœ¦Mû4í£zIÞvé~±†µ~ƒnõ¬çY|/Îç×êõ¼Ûªÿ÷÷vt +#v–xiéˆË•G¨žçë+ÖW¬©Jm9(rP¤ê½ö4¥ËÃêÈ!è ºöS­ÿµÓ‰X_Ρ_‘&–h8Á·jÎ'H>|€’ @¿DKµŽZZzÔ•Ê#ä.q·DÍâÛþô\8¥ª‡Ô_ýZ}zMï¶ÿªu7¬¨PÍJ>ïþ¾í’T³F9/F%”L@[Íz4ëÑ,Õ{­†sì'‡>r›ØíscÛ©Ê-J0?TüŸÇ[ì‰{Q!CùÍ$Ï]õÎÛÔÿÅfOù~%3F9iéýNvo\•¹í»O5ç]–»,wYnš#¯€ó£÷’C Ôݿ׻) ÿ9­c%"K~éuiôÆå±Rÿ¾ªÇ+U¢¨E«JâO5ªÛ¹ñ?o6Ë&\ùü ·9®Œ¼]›×y^çyUïµ…ö˜UÙI«ª»4¦é¦›îgUs>abÂÄ„‰”L9#lŒ#è«Ì„À3žÏx>ã¹êå¹>µ½OH„~ƒ=æTYïxéŸg3Ó,þ0·^»»voÏ_î\ìøcèoc»¨î–¼¡ù–jVãÞ”©4Ïjjɪf$—{•Yh¤í×óöUÏ3ý?éÿIÿÕ  -6lذaƒê½vܽeÇ[y†NÅ#/9ì^lk³ÒÒ\þïþŠt”¿«ŠãTÅýÝ÷wßßMÉ _¢Ç•ûqKêEÙ?”g¸Â:‡=¥\ÄÿíÛ}HÅ]{Ãó{·íèìJ¾EûYµíå4íß{É'Ú†ÈmñçëS·ü7$B5çŨ„’ hˇQF}¥z¯9òx[ê­Œvõ«qá™ïP§¥¾›,ÿ©¯ÜZUïUzô„b)Eýþµ(¥øK ,=Ô캜®w¸·W‹ñömÙ·eß–¦9òò¾3îêßä( ÞöóÓc TÏÐiyóO=~õô·à˜ÏÐ §×~ëò[×£êšØzÚÿ3y]²™u+Û&òÜ9¸üßMºmaäèÚüpà‡"ŽX4ÇÅVUwiÓ›^8åJ¼4ûÒìK³)™rFØp_ÐW™ €“â“â“r¸„zÕuóÚ¡ßàÁ³à¨"Õϸô,}Û¢ æ…ìJ¯vßÏr]9~¿VA¹€“þXëÿ·u¬U¥=Ô÷‡+ÛVlgi~7911ô¾ÜÀzM-êµ#‡‰€ø¤ø¤x & ].?¹üäò“ê7vÃù›¾r˜Ò­½ó{¿rËÅY™[[ÚšÅ|ÿp÷Õ*›¥¦¡UK×ìÕsܾ•Ï$u·1k¸ùªžçæa›‡mfš#¯Š Û°D>áRåÅœ5™e*±Øª¨u§*#‡„ÎK•Û»¿"5/[æºýlF^€®=œÿpþÃù9,tÞñMYZUÝ¥n «_/=Wõl_7ÝüusJ¦œ6,ÆôUfBàçKž/y¾Dõ²5oV©LÙpù,…:þIÀàJÇB\­GнE~«\–Í g†OöØœíÖ³}Í5ÿZd©géÛmÚš×(±<¶›ç¶òÃåð‹6îì¶5‡&Ö³«gWO*@»2GgŽÎ­zǹÿjciq@ÎTÕs¾Ö°Ý¾àòý¦¿ìöcD3ÕóIII§LÑûR­¯6þcDØV¹€Åÿ»óÇÆËµ)È>ÜüO‹õ¥ªšÍð9èvتÝÄ“±Ë]ü^'¬1An¡_‘6oVcKÙpÕ<£Ê$ ]7OÜ÷ÿ•ç{rñ•ëìðê§šÛ‰;w&î¤Òt!À>À>À^õ¾{™Úµ{øJy†QczF–ÿgŠ\<ìb(ïþîÖ4ªj¹,‹Zµ,ŠÒ@>DïKµ¾Š¯gáÕOáR© îçþw9¤ïÎv­±^5·ÅHDŒJ(“€vhu¢Õ‰Vª÷]ý3ÃÚ9~ÃÄnîœTý+9,\9~ýåV¾Ï¥¦É²veíÊÚeÊ#¯Àr /îs–gUý{½ò|ëW¤žFŒ\܈‘Ÿ:.踠c‹É:¿/Ýs=­ª–÷3vØ:¹²Ek™´ÛzlkJ£ü–'Ó ú*+`j—|J‘)E¦Q½¨É/š¯æ,ÿ`ƒa¥¾~¶÷­çðÞâ狞/¢tauÑÕEWU½ï¶¨ÿ³·Üj‰· º?ªQA¬s ÎsqÿÿÊÖ†Žtu­kŸÃbƒ·=n{Üö 4ÑûR­¯|ýܬË3Œj¸iò‹í«åðVœ‰P]Èl—Ù.³ä»Jߤ|éWDž»ýbÚoÉŽË•«æsttttt4#/Ôï­føÈ3Œj¸©]¹ ØºŒ¼€ü´;vwìîXÕû®IÕqEœÐj7 éñÚ>U5·Ï”=SöLYJ£ü–‚¾ÊL.|ÅêŠÕ+Õ Üj™KKû„lµ•ÞoßiLXõ&]}]}]©†Ýy¨x¨x˜C·Ãë‚í—–OåVW¬zT«“ç?;…—¼`6´ø±'ºük¹´Š]ï„?“ÜãÜOá§ð£4ÑS­µî·ß‘VÀ­¶ÒVËjGØPÍg1¡ºééé z÷õ¾=«òL&—µ•V¯Ð}Ÿ}Õ|>¼âðŠÃ+yYprv d«µÅŸ».Z¹¿2#/ ÿ½nòºÉë&Rwßø£—çú¾£MÌ{:¶÷ùA¾’µÜÇ¢‹~,Ji”?ÀúEÐWŠÉ€?½þôúÓk©KþäÇ.½«÷!|›÷tÒ£Ày.CTsø·9¿ÍùmU ó)þK¾—|/©Þƒ×¶oÒF_5ë´®§Ão½Y×}fÄËZèèxÞ²·yÜ?»ƒŸ®Z.ËPÞýýùiÍÕUæ¨æð‹ ,(äIôÄTë®IzrBà6ïé“÷|U½ÔXCŒD(‡€î$ÏNž<[õî«Ö´¹íY¦˜óžŽö<=˧¿T-÷a䇑F2òªŽþ±õ–V„oóžºîïÑzÜÏŒ¼}‰lÙ:²µê=³é×î/hóžvz¿t†Ë6ÕÞ{xïá½)†‚pþ#諉¦Y8VZYhe!ÕË?Ù)pƒË$·yI3ªv/±\ê{SÿMý7õ©ž]Û™°3ag‚ê=Ø#¬ÊTÇCúª~Œiâ–Ã.Y6mÍk”X~µ}»îÁÉò¯å>Öí_ÓOª–{úÕÓ¯žÒ½ S¢'&UƒeT=8/b9Aܼ¤“zýê2I5oÅèƒèZ–S–S–“T-7ôUrW¯-L4ç%m±"no…'9Ì¥ž\xraF^ÊìSk¼iQ‡ðm^ÒàV+-ÃÈ Ð¯“î'ÝOº«Þƒ•R‚‹YÅÓ2æ)-“âägn5Ân‰›ª9|£ñÆ7S àüAÐ÷s™h8}}úúôõRâ…[ÔáðPB¹¹Kç¨^Àý@[Ö;bì*) |èý¡÷‡ÞRµÜïŽMCÈÿúaiÓˆ§•ãJÜ5³-þϳ=Ê^,½êXï––ÕÒ åÝßMÏëY{×VÍÕί:¿êüв@þD¯Lµ›7bÈ÷qs—¾pûóJx¨TË+F”= ,IZ’´$IõN¬>>º£ýL7ç.~¶·Ï ©ZîáÔ‡SNeä¥Ê¬ÛGÊÍ]êQ¼ïÊé_1òôëÓµO×>]³¶¶¶¶¶V½ûØoT¹­dîÒnc× tóUÍÕP§P§P'Êža!¬;}ó¢€)ÿø)áS§„çð\°¥__çÖ„r?7}¶(ªrõ{R·Üã¾û>îK…ä§•1+cVƨޑ]ëØÿ¤¯ºB,ý´A—íÕ‹ÿb(¡ß7ºÿñAª–»öøÚãk)uäOôʤj³g‹ö.«~€îç¦C-;ovÎaq<1â Ôùéõ™×g^Ÿ‘ªåöÿsªg&?7mTrTãò{Uó³ç랯{²¸½äÈËÎ!(¦nuB¹Ÿ›Õ]:øÐeF^€|ìì±³ÇΪ÷£c°çt‹A‚R:ø•¥­Ô<÷ËÅž‹J”/ù{ñ^£:t"èD¥Î°Ö.‚¾ÚbÒàW…^zUHª¸\þ½í7Ai„u5O£›W©ì8C5'G¯½jô*n6 ÿ½ëò®Ë».Rµ\ò³æÇª9SwižN°¹ÒSÕœìt­ÓµN×(o ‹è¡©ÖiÑÍ›ÏtœA@Wóôòï›F¥Iµ¶bÄAyòߢ6‹Ú,j£zWºÄ„±JÐ3e£Ÿ;К¤ƒøÖóšT-woé½¥÷–RÞÔ¼¼ÍÆt_Ñ–°®æiË–cb–0òä#{söæìÍ6ålÊÙ”S½7; XèTé-¦æi³Ý“úU¨›Ã»¿…B …Ròr¨V«bË „x%—}v\òéP#/@þÚ½h÷¢Ý ÕûÔíjx³ÒÆ¿»üÀïÚЖ}¼pÃwíbçßÍçå>·n9Ü’Òe¸ç]v³ìfÙÍújà\°º`uÁJªxýØh‹_1!ÊiVïžæ5‡¶gÃm±(bQÄ"EmEmEmJ Çþûw¬T-·vxíž‹¨Ùþ•Œñ­U¡íY×ö9¬Qª\©r¥>>ÿøüãsJV[Q[Q[ôÜTëºàÁÞó­›eõ>ª¨9”p¯rúG༵~ŤZU1² pòÕ!…¨rbIDATªCTÕ»Õb®MïcÎvò9ÆÄ´rÚsæÆiî³$W‰øæà7¿¡\ånäå¶*ÖzRe½ÿJW58ÑÁn`pL½yò÷ìÓ³OÏ>IÕr ê¯RÞ‘–T5 ›×í/{ÉÇ\Þ\zséÍ%J—á"¬-ÊïôÍ;Àÿ2§Îœ:sêHUÄç+¶iø” ˆbgL£Z~ý{¯q’\6ð±Ùc³Çf”(@nâKÇ—Ž/-9•£h¶Õ µœH§– Jv­"•Wד¯'_O¦D0¢ç&Uãõ[ÜöŒÓzÅÎskùú=_ñ—ç9½×%ˆÑ% ›ô=é{Ò÷HݹURëÖµÎßâÒ1ßsLOHÝ;¶J¶T^ Mš:4••÷‘—׸Q?/+NèW¤Înmö-ÀÈ 0,{ëî­»·®Ôۡ‚••ÒªŠ´ùÕ)Ñ6HåÕ©”S)§R(Q†Ž0ä‰ð¿|Zúié§¥ û5ì×°ŸT¥|5¾Ý„à˦™Ø1°€‹­Tþ8yàä“”%@®Õœâ“âSÌø˜ñ1ã%»žu[Åœ3åZnÑãˆB¥òç·æ¿5ÿ­9E €ñ½8©ÚobÇØ:.¶¦ú½ŸðSðe©ü#1š ,òtîŹç^HÝÅgÛ÷µ[7Á<ÅÒÏÌ4§§‡X¬ìUR*<2=2=2?lû°íÃ6Ê’¶F^>#'ÜXkgÊ¡_—]-F:2ò ×D÷‰îÝ¥îâ¨Ì•G]·šrè·íÚ¹¡ŸIåÏ’K.H)2€!O€sðÚöµík[óCæ‡ÌIUЗöEnÚmBA‘¶1nµÆ· ­/•'ËŠ,+²¬å¿÷k߯}¿Ö'Ê'Ê'JêŽ>:®Å¾j{M-ô;?­úS&Ry2yæä™“gR~7Ñ£“ª Ç·é¹­R¼¢í‰zµL'ô{i߯?ƒvKå‰5ˆå¿-["¶DH†Ë´óµ‹ÿÝ¥º¾»LgzZì…\\­'ž4zÒˆò£‹‘—÷ì±oWv2µÐo¥‹]ê;ËÈ 0tÙéÙéÙéMÿhúGÓ?¤îèÎ×—[»(L-ôÛæü¬›JåIï#½ô>¢x¬x¬xL)2€!O€%=Øñ`ǃê‡@ž5kàfÜá÷‹z®q±Û¬ÊqŽÎ’SEÆOè00¯,_Y¾²,±³ÄÎ;¥îî­?7Xìsܸk¹ìz={ÔÜ0bIÕ½ËIåCÏi=§õœ¦Q„(B(9LèÝIÕŠÝf5swt~¿èðÑ;ô{àÙÒÿ0õ#1j Ì†eaôÂè…ÑR÷µ{‘ð¥wJ;mïÓθ§§{uÿm¬ÇõµÜ5÷kî×Ü)3ºyUn;à·YaÆô ÞõsÖ±Íåç4ÙÖµ7#/À˜d6Ìl˜Ùгg!ÏBRww˱Ój:ûyè70¥½Ÿ]ƒ…Ãw•–\7èFà odµÍj›Õ–’cLCžÿ·›Þnz»©úáÐOOªOó0W<‰ªnLA‘{3;y†•tÙPú…ä2Pû ï6¼›b£b£b#¥0DO~}òë“_Õ×ræl¯ôòS‘ž[jÕøÏF…V~¶Ü[›8©ßÞes—Í]6gÌ™=’ÒÀ„lTlTl==©ÒeCùÛ%ïÍÜÑ<¬¤Q…~ŸŸø³VøOO†}åa®¾}# `¸fyÌò˜å!y“*¾¯¸gÿs¼­ÒÄø&©[ùq¿ó-õµÜ…gž]xF9ÉÏ‘Wë–Sc~ ¾¹ràñZÆú ˜>ÿÍÞ¿J_ò¸Z5™‘`¬Ò³Ò³Ò³ÜF¸p!u§u|R¶ìØ¥çû†S«:êЩ3> ¼K7¬fó—Ôo¯ómoë|û¾úûêï«SZŒ`È`Ü}z÷éݧê»éþ޶6?ßßÞéç°–†I¨W/Ëû¬úßW2®d\IÅMÅMÅMJ`èž›?7nîTÆ©ŒS©»ÞÍÒzœE÷%Ú÷‰2ôZnÏù&…üþÇ„×÷õ¾¯÷}½ì´ì´ì4JuSqSqSôúÔ×™ õ~¸á}ÖÐC¿÷·ï¬Ö2ÂßßÒægõ¿WŒ( €qXZtiÑ¥EÕßõ-ÆÆM®p{B›”~ wzzø¸£vÞ¾^ãT¶ùAýïMÍHÍHÍ lèkäUj°ƒ™Ó§ª“ì¿e¨¡‡~=Ë«±` #/ÀtdôÏèŸÑ?¬QX£°FRw½Ù¡’ß_ÕÇië•- =ôÛãú†fî-Ô×r‘Û"·EnûPðCÁ)!ÆŠ0ä‰ðgx¹ùåæ—›ƒªU ª¢¾Z_T?ü„Gjö‡žñ5ÏJ8äú³ömC"#ÂímV©ÿuk¯¯½¾ö:å0>oC߆¾ máÖ­…›úz`Zó`×!ïö(]ã–Á¬jp­S£°ò­:¸„”MWÿëæî»wî^ÅuÅuuüCôÿÇ‘aþ¶6«®?ÛÒ6$ÒP‚¾ÙŽûÕ<·¨þˆ_µGÙwä¹cÛ±N蔘ʞaå½5ù-§ŸZ|j1e0rÁŠ`EðœUsVÍY¥IͰªb-«*©oãºß©QNnµÜ£zç‡=ÖÕï±ójM~Ëþ£ûî?J)¢7¨IS¹å‰òÞwl·Ç†N‘[Ð÷}êá5îlv˜þÆ{†&¿EôüÅ(€2·ÔÌÔÌÔLMj¯— ^ÚléÿnW@•r›˜wîâ]ßõ/+ïr¶øâ‡Š{©ÿ-±i±i±i™Ù™Ù™Ù”9¼\³{ZŽ_Ôké¤(Ù}æ…î )_¾q».[yP¶úäê“«OjR34vèTz”ÙÉÅ>Åeô=}twã:¿xRî•&¿e뤭“¶Nâê›À'ÀyrÐö íAÛ⛹)ÔÏmSÚW]/†ßÕW8äH½õ« iìá<Ç®¹&ç˜6#mFÚ ®8`jNuú«Ó_i^ËMŒ øäRæÑäΛÂÞé«–;}¹µM k‡?Ü>:,Óäœf6Ìl˜)vä⊀&DÏPô5šÊñ¨>À®ù‘z?÷®6D_Aß´¯ö›…ß¹i ½Û&ÍÛ5ÑÛ犦&³tféÌÒƒk ®5¸–&uE…WU³-·t]²ê®ëc}MLÙ}.ÄçuÓņ8=Ò¼–KôJôJôâŠâÈ«BX«/bkTÛ5¯ë®Þú úúxz]˲_†º7¸ÀÈ €z©R¤>pHrHrHҤƨÞ=ÚÝ~€W{7x~­¯¶µï¶ÄˆÊËG´»b7M“söá?ÂÄAwÝÄ75€!O€µ #:#:#zdÌȘ‘1šwÖS­ž–ê¿p{ø<WV·³^ªÝÈû=,jÜØ_·é–ª÷*ìùªüŠâŸéÀ…\àúx÷üÝówψø!â‡Íëë?Í¿-1|VÏÐQn—/•Œì4O»µ\ö¾žsk&%ßlžT­ü Å¾ã*ùÜZ.qLâ˜Ä1ŠóŠóŠó\eÈÑcüܸWáÖÁåW쯻8½êßï~\ã†výWVo>¼táöž;œSËm*Õ_ós½zÑÃçú8õí©oO}kûµí×¶_k^“øím>·LF—VË_º:J?]Χv§¤DìYåd‹¹që+ài¹W½þÜbåñ³–ý½Rü¸úàjL|L|L|îêëmæ…J íÔÎ}¡Ã‡Ñ!{Ý¢6®®û³WÖž^où9¸ºÙ,ÿ˜«šUö¯ü‡_£¿¢k×Öîæ¹zb|`Æëÿ²ë›—Zî§Ã?þépfáÌ™…¹š -¢÷(z’y©¥ëƽ´ýzlßÞ•V/œèéºÓ~îß3ê/Ùãos0sÙ·þ£ö[ð¦jÁ_LŸêÝgö¬AKÜ­ºUlzݱ¸ÃVÛëæÿÍÝ÷ŠÞ»èÉs5¨Ê®];»vBá„ …óRËUìgåaSÑ¡d‹yqñtªº$Ðe@·þk"ݪtŸ¹®¡Û¬¨“+G¹®m·vž¢RõF)£×—ÏèÛ¶ ]e›CåG–|›»ï­s»Îí:·S¦¥LK™ÆÕ4‘W‰2“¬¢Ê6smd]±J{›îgû¤LûÂó»a…8zõ½ô¨WðÈãKUú 1Ÿ·ÒmC¬Ï¤&š´òŒP¦¡ßÚêçyÐçžWx^aØåa—‡]Î]=c¶¯dâ+½g5*ds¿^³ÁG¶¹2Ë®bó.õ–_suìn¾v˜[nO×zºEv>º,Óå]ëû3Wü²NòÀ"å2=½ë>²)“—Z.Î/Î/Î/}zúôôé\M†<Ö¡[õnÕ»U¯Áþû,.K¥þ.õw©¿7n Üø.î]Ü»8®ÍÝ?tÿÐýC£mFÛŒ¶).c+׬\³rMÆ£ŒG¸j k¢W)z˜¢·)ÏÖAôÒE«@sû}ì÷±_¢O¢O¢ÓX§±NcåYËE5ŒjÕ0µtjéÔÒ\5F^Œ¼ÈÙÓ)O§<2mÞ´yӿɹ–›ßk~¯ù½^Í}5÷Õ\®”†<Î'   [¿ØúÅÖ/§‡OŸ®¯†j„ë×®—]^ty×€¶¼yò>dwðîàÝÁú7êߨ¿¾j¹~çúëwî¬×Y¯³ìg² zž¢ª¯ÖAôÀEo\ô̹.´åú´ëÓ®O›ä8Éq’£¾j9¿p¿p¿ð 64ÚÐèeÚË´—i\F^Œ¼¢ìÙ² üúà׿Ž|ù:òµ¾j¹î%»—ì^òX«c­ŽµRtUtUtåê@ `È`½É1:cô±–ÇZk95zjôÔè€ýûök«‰ê4 Ó€NâGÇŽ}{Þíy·ç‘çòÓ»‚ï ¾+xzÌé1§Ç̪:«ê¬ªáÝ»…wÓV-×&¦ML›˜ÕÃV[=ìzÿëý¯÷WœRœRœ"ç@þDïTôTE¯U[­ƒèQ‹Þµèi‹^7y ?Ý|oð½Á %4ŠnÝ2ºe©)¥¦”š’÷ZÎë­×[¯·ã»Œï2¾Ë¡'‡žz’Ö;­wZoòœ‘#/ÆêãÀ?¼ÐýB÷ Ýç_žyþåºwêÞ©{G[µ\ÓjM«5­¶¬ú²ê˪§~—ú]êwŸü?ùò'ç:Àã’ó%çKÎIiIiIi‡çžsxNÖê¬ÕY«ÉÆáæ·7¿½ùmrÍäšÉ5‡9’Ù ³AfrL™èñŠÞ¯è ‹^19ÀHÌPÌPÌ8|÷ðÝÃw“V$­HZq*éTÒ©$2Œ¼ w6~ØøaãäEÉ‹’%?M~šüôeöËì—Ùä SCŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒ`0€ÀH#AŒÄÿ¿%ªéãºZ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/throw.png000066400000000000000000000141741431412030200245430ustar00rootroot00000000000000‰PNG  IHDRTOšgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿ«1Í—IDATxÚíÝ{˜TeáÀñweÍ Œ‚& *æ5 ©dÉGAEÓT4Jñhå%Ò¨Ì4Ó4ÅJ¢,1¯è/T¼e ®à£¨©¥e¢€®IÊp3/ ûûãìÙ™–³»ƒûùðøÌ»3gΜ9;ò|9s.µµaª+‡m({3VV­Y×4YMíKåúeXjk׆Úû_ã{šöhk?¯užß´)òLU›à¼›zýæÛ¼g4ÿYM|vmk,CÛ̹M— vm¼³–ù¯Í^¹¶å—¢æÒZÏZ¿OiÒS¶îT-?EñµÙÜ9'ÿ¼äIfúÂÿ··À¼=ºE0„ªµ!„*l9l1…:X ÖìÃß>«>¥ímmút–íg³º24y—=ÿS´Ãi €@ €@ €@ @ €@ €@ €@ €´  €@ €@ €@@ P@ª^{{çÿùù.‹R©»¬X\êœV,Þ¹K*µË¢ÿüÜç €À–‚íéÝÖö<í¹¥}C8{“N=JW§ßÙ5„¥}O¬¶§Ï ÊÔ•§V?B×éœÄÜF_BOÌÛj¥5 $¥Ò*Jqèìxôð@k#„^¹òŠkCá¼M'1¿Ž_ýÙC¡rF*•N[¿€ÚÜ3ÃãQ*È“BçóF‡Âvc~ø½±£’™åi¹0„°fXÕ«H†¯€tÛsBß¿;¹ÞôWBÕ¶¿ÃiPæ>>󲿄B§ç½›ä|GîÝî0`õIÖ2 ÊÈ”kî!„á›';ßMݾùä63­e@”Æ_S·¥î¸k“ÞòžUÑm÷>>Óš @™¸ëèètÍÝO8bhÒó¸]t[sǶ·[Ó€6 /¼5þ’¯¬Ýkü63{U ¸àÜÍëZxÚ§~ýɽ¿¶çGãsï[Öå΋Né8°j·û·™¹Ç õ>eÍÔs–uiíwwã~Ñí×§ßþ·¶ÏìšqÏž¾÷ÛÞÞóÀ};sÿßZU]|Þ‹Î:$íw¯ÏPªŠÚÚuOT]9lËB˜±²jU„PìÚ™øÉž&^Öe츮n<ýü{=_ü¢9.9kò¨Ç*_O-íÛý„¿ß™nUõU£&.É¿, _ȽÇO¾xý«Ñè–;œ;ýša=÷þ nÞ_›c¯Æs-Ÿ˜—/rãü«œ1ò°†ÜòptÛëùª1…–gùŠ£v8uAãü aÅâ¾8½Øi^öÞ>ögŸ' 4hÇÿéÍ'ó?²bñ7ûäÀbÏ]3lÌÄ‹vÏ÷ÈS?>8½ä¬ÂÏ|÷ˆáÛ7Œªý¿ÿ_ã韜šç›ïÂú¿3«r¶ñÕöüCÝÀ_¼¹Ðö¹¥}ðøû…—öý™Å¯š|ܵÑ팧œ€@¾Yô§Ø= Òie©e?üÚÜñ5—¿ðÄÍsû=–y쵃º¾TìµÎÞî΋òÝ¿ä¬Ã~ùé Ž7Õ¼xÿ;#^ºmÊ?¾òZ&ª:õÈÎ¥ÊñèŸ?jœQÕS³ú对Ï~9zSÃÌ{ê»ñh¿Çò¿‹µ}N¸ô…·âŸ­žôÝçýgÌëµôýÞ#©eñýË ÇÝ~G·Ñ¡&ÍçRp@³ÜT÷j&Wnª)þŒ}Þ»ýªÏ^B=BpDçTÖ?@‡\Rì™·ÝB›L8éÐ!×m{y×9]ë®?|îêxŠs®évö÷l„Û‡íÑ!*g¬B+=-{n×¾}Îv…íá7³ž3ïäœ)ž˜W¿ÄÃ!ÙÜÿP<÷ì©yç~ý«O3uêñÛo¸tÚÅ!„ ›Lèú…«»õñ=Ÿ !„ÚÎ[ÏNï˜Z˜oýž«OâM|RØ´Ší‡Þ=(Ê¿:˳· ½P³®/5wy|Þø?ì7xbß-¶ºÉ„B˜óòÌ»âG¯évö ·È¥ÓQþ…¬ßgÏýÐ{âÑÈœ¯•_œ››{¹K5õœèv§µýçäOÃhÙ«¹ã§uÛF7;}ÖˆKs—öõÿoàõÏäŸGŸ½ê_íAŸ(@eïÒ‡·ž{ß-wÆ£ÿ+þìÒ÷ß±Sºa4ýa×x4ä’Üü‹¢*3>æÑÌ8s¤íãï7 ¼xÀ/‹ns÷\°O<|]Ã×{æó¢Qß-ò¿ƒ?v‹G—ÿþ Þyö\þΈÝ~U÷ÎöËŸÃßþ¶Ê^€€Ê\ÏNÉsR‚ÝþÖ¬#'\½íå ïYÚ÷žú¤ºp×ü‡]Ì©¿lÚôW²ƒéœ£ÛEo6œ>ÀÑׯ÷4Ü pNý€C&6|füånû=–oYÖ ûűÑhç×Ï]i?ó›žRׂ+ ­‡Ñ?mÚú€@›ûÚü|ѳsÏf·Ï'#.ͽ¯º~ëáç;`DþçõÞ?5¼|ZæT0çeÝÝyÆSÑ «s²¯?d³±Ç¼Þð•^švÜ2ß’<3(]ásøeöUüùÉù§ÈÌ}ÂO|ª”µ/]ŸïÞ̹ŠÎM™óû =­pR÷t<ww¾¥É>Ì+?ŠnwûU&Àîøç~ÑíA›ç¾ÎkûÄ£­ÞÈ·™ë™üZá÷ù™ßÄ£¹WåŸb«…_@eiÏ3Jyö_n|ßü}ãQ¡½îBaïúÃ&žÍºªG‡ú8fg|<à¸túÀ=£qö^€¯Ž¬Ò)¹ÉùÚAñ(sB—øx´ë}MyÇoÍÊ¿_&/ÿ=Ч €@YÛja)ÏîùùÆ÷½SŸf{\Vø™»×uüö¤ì¤º¾î(Úÿ~#s_|À†„°gýé¢3{föÌ|…{sfñwºpe<Ú¹"UD<Õû÷¯k=¾ù¤Ã@”µ-«Jyv—eïË(±õß ?³ëœÆÓ‡}*˜ÌÞvñ¼§=BX^Ÿ}órpÏ3úžû:«ªëí|˱¬býÞqf~…°Ð(ËKyrçÅp‹ ?s‹ªü˜9¦8¾4ÛuÛÓvªûr÷š®Ñmf/ÀèDÍ! ™ØxŸÃLŽå?…ó²õü»ve¼KÕ¿òª'|¨ÈÇ<*ë3é£3>^|jåªã¢ÛÝ£Ûx/ÀW®ŒŸ9xbã×ùp|<êxb¾åX}øú-w¡¼ËÄîÿ&ùXÍçRpÀ©s§%õ±Txg¸‹ãQjÙ<2ø¦kLR5äWSCa—ÇCÝl£½ç¼¿îWÏOŸžû:G¬Š[uÅVy—öݺQÍå›mÊûK­ãýt±Ò‡h6[ 4ãÑÒ O•îºÔ6|¤ÿ½ñè§„Âí7F?9.wÑ^€ñ€?›ïu2[æ–î˜ïñÌ«ÿ÷ˆ¦½¿ü§¶ÉÌ}ËÞ>€Ú™mâó÷åórý·Ý¦çüå÷bLÃË$gþ¥}÷ˆRÞuVöñ ÐÎìû^ögù^'s…ŽüÛ#¿° -~²¤Ü©ñ+@ è÷x<šõûÂSͼ+õ¿9÷±CþÝ~pCÖ€Çe21“X¿Ü8þxßù_çsõK“ÿ+àÌ«O=»ðÒ¾5kÀÑŸÙ5°~î»<ŸNûÍå `ƒ­‹ÿH¥òÇÐKsÿ^·eo£Oîž;M·[â#-οfZ·02„ª†ä›Ïœy^†LüKÞWÚåùâXu|uRù®ÜaÎ1Îýaã“Õdé|ßÛÑ`øæ¾Jã+` D«OÚfæ—Ç-zóÝÛÜÒ}D÷Ñ÷|¦éy’9'^á³ã5m>!¹Ýk}ß9kYEjÙ6·ìzßaãÆLlÝLz#õ…åµãÐ+6åªêÃŽö¯o¿sÖ{{w<1µ°÷aŽ;êã½ÆÖóŽB‹žs Ä^€@"¢­^m½e*ÞöÖ6Ë¿úÈÝ'Î[Ÿé›¶¼gïqó;!„p蔇¿e PZ¯ù HD:N·}–¤Óm¹·NŽnïýßGã×gi›²¼ŸyïÑèÔgäP*¡ß‹nW,þ줤çýÀ…ËW„Â^ÇŸp½5 @€2Q±è¦šhtøà¤ç=õœèvü)¶ÿ Œ ÿltûз  Ü˺ÜÿP!ôÙkäaÖ2 ÊÉò{V…]™$I7ü2ºýÙC¶ÿ Ì´:ºÝ¢jiߤæ™Þñ7ÿBÇN;jk€e畱[öaUõ.‹’šãµ›®ª¡SËî²ý€ehÛËW¾B›þ`ÉYIÌoÉY¿;&„®:x÷Û¬]@”¥h;݇W$lW÷ÿà†N<¶ØU‚ @{ë×!ôÙ«ßc¥ ¼bñäsûì5hõmwË? 9•V@Ò6?1}b!„’£­Sá$Ï@€@ €@ €@ €€@ €@ €@ €€@ €@ €„T®Ïĵ³Ÿx2ëÇŠ&>­¼§ût¼ ¿ ÓùíšÎ§Àt>-­8]E¹¯å$ðˆÃ3@è²a/¾¯€Ú™&`Õ+ àÓ¢I_¿{ÔôE'(çoý? {$˜›5býZ#Öˆ5b”é{¨(»÷°ûè&Ì ¶V´'ö€@ €@ €@  €@ €@ €@  €@ €@ €@ @ €@ €@ €@ @ €@ €@ €@ €@ €´»|zø‚IÉ/Ò‚IO÷‹(ÜróàÙýÆ'€ &õ?xö”›ýjZFEmmóžøôðÁ³£Ñü ½Æ$™Ñè¡ýïõëH^³·n=4%·0“Ùó ,°×˜ù’MÀìüKr«"‰`Ò (ÿ€öjÖ´TjÂËZíûÏfï˜l¶É? ½Z{ÌÖF£ó'½©Ë¬–ÅϘÌV@ù´_~#]9fçy­±%°äA—ž€òhÏöŸ|~VAµF–øpé 'ÿ– ½áä+tPK~œH6?ãä@kG`Bؼ”“­‰àúçœüh‹L0×/éä@ÛD`¢Øô¬“m `ÓÒNþ´]&€ëÎ;ùЖØX<ñä@ÛF`‹`áÌ“m-€ùSOþ´}¶X6Î=ùPØ‚Ø0ïétÔ ùÐöØ¢Ø0å@9D`“0•²šÊÛmzôº§ÚÈŠø´8¤I›ö À§Æ#M™ª²©³›±²9 Qó…3^ͽoò®ÝŸõë(ÍÊ î»âöNÙ÷ŒX±ÿäЄ¯€ °Á)Û£€ Üâ¯EЕ@Ê/þZ0]  ã¯Å°XæI@€¶‹¿ Àu%žh«øk‘lJÞI@€¶‰¿À¦¦h‹øK<×'ë$ @ëÇ_¸¾I'Z;þ ÀæäœhÝøK0››r 5ã/±,%ã$ @ëÅ_BXjÂI@@üµVü%€Iä›Ú¯YÓNÕzñ—@&•nh¯Ö³õ£­%`’Ù&€öjÖ´GµVü•€I'›h •O®õ3B<î7~Á$¿€² À÷f%›¹ øÞ,¿€² Àþ÷^{]²ù—€×^×ÿ^¿€–PÒA Oßzhòûê-˜ôÞ,ùP–À†g#«@ €@ €@ €@ €@ €@ €@ €@ €@ €@ €@ €@€@ €@ €@ €@€@ €@ €@ €€@ €”•ÿ¥3Y”£%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/throwIfEmpty.png000066400000000000000000000173431431412030200260420ustar00rootroot00000000000000‰PNG  IHDRܬ€gAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿ«1ÍþIDATxÚíÝyxTõ¡ðñ_¥ZY†Ek-jEE .l-ˆ‚÷*¢öyõ¹u¹ˆÕ÷Ú«´¨­àƵVÁ¢VlE!‚Ö]|-ŠàzQDD"¶*’÷ÉÉL’™0‘,“Ìçó<}òËÌ™“Éo&åë9gÎÉ+* ä¦@ €@ €@ €@ €@ €@ €@ €@ €@ €@ €@ €@€@ €@ €@ €@€@ €@ €@ €;‹Åb±ØÂF€@ €@ €@@jÜì鱨¸Ç ÖÔÏË+*2é¥Åb!„P°5{õÿ¬ÃZ¾]3éÒÉÍgWÿO´ V={v4?úÀÅ5±%PÔª÷]3)ñ]MD ]ÀåÔä.àB(xïùãG'ßR»ƒ @­`ÍF ÈЬ¹€Y€5 «°ú#Pd]Vo @€¬ Àê‹@µX=(²:«> @Ö`ÕF ¨Xu(êLVM @€:€» Îà®E`ÆŸ²×# ƒ¢Yð›UÏÿjí'Uÿ³È†µÔÔ£*÷.­ê%kv©ê_¢âÙü¾k®úÇUÝ=U³|ú¿öjX÷é§UK†¿#„Bž-‡ÕºM¶¡i0³u†ÿ7ð^õ.͵ÙôîÌÚ÷æÂF!ãÏlø£ÈÁÿÒ@ €@ €@ €@ €@ €@ €@ €@h  €@ €@ €@@ €º®‘)€\‹E£Í›ý®_=òÐú…Ïþï9«¶¶XÕîŒç;§zleÔÿ9 @öÞØ3îú¨Aá•Ö…u“‚| @}¶õÍÓ—®qð ú¡ï¼hô\o³‘ÎǬÙ#ñ]ãq?ç@ Îúç’¡ši½|k¸!>:¼Çÿœ—?úë4ËÝz‚w ê…÷®Î~ð‡Vù£Ó|ã¢'ÌP9È)«ÖD£#öõé]@䀢öѨñ8³@ õ@ŽZöÉ£^|ýú±{íõó}®évç=ûlL·ì+×Ç¿vûïÒ·µÿfdÙ©…ÍŸ½â™Û>8òÓë óZ¬jswÇ¥¯ê7¹yanÍnÙ{£áƒ{/môÉ£[ßl{íM†½0lÉžg%–^ÝôÖ³ÿxцˋšµøèˆ}OzíÌ_&ß_v­‰õ~üÖCŸ.šöñ[ë/o5¯íè®Oýbúѯ{o;—WT´ó…6Ô$„ ¶æo7emÒ_¾,ñ!‡Ò—G+l~éUÏÜ^vé£_í¨Ô‹ˆÝ»áòû.œÓèÃØ¦Î¥/ƒöåÂ[/¼÷ߎ,÷_šÛ­ZÖtÿÒ·Þpì+⣩ý¼_ÙÇlÔþˆÝ]òçŽåŸÕeW=úçøè/Ï ê–j>’Ÿ[&³Tu—ÌKž±ÂæÍy¡ÌIeÚܲþºøO(j× ¿]QvÎZ¼±©sùgPúÙ}¹ð×ï?>4qLcêßhç¿{¿™¯žB­fþïYy«Ó-9ê©ÇÏ!„¼-Ëìwœ¿:ÈF•é5»€!ç¼7¶W~ùü áµ£šîŸÉµp'nøiÏÛO^ÒgSçÚ‘¸ýõŽ]VMÜP>ÿBØ>(„.«Ê®»ï”h4omùŸûz‹(ÿBX°8Õó˜ÿN”—}²ø?Mß?¥OÓÊSpýu{\‹…ðõ˜¡Þplù9ÛÔ9oKůŊsNØ1íÊTù·ÛÕ»¢ñâco¼ø7é–ù÷ïfM‹Ž.ÿ >€c>ï=â/k¥¾ï‹š[q B!¼7ö½rG¼-œÎK|·`q×Xé›óÞ Ý㣾“c±ï°­Ü,U•‹ç¬ü?!4X~ñßÏÝçÀMùü©·<mïûàøvg<{C!ôì~Ù°nw6\¶ìíÇn|ø¹è±››ßr{ºßì¢9«N !„>ß^ôÄÑ+c…kÿ:oퟆ¾ýXq<¶¿¤à—I¬øwßÿ°#?_Ú2„ ^I÷{üýÄø×Ýï²Ç¹Îžõ€c¡Þ¨èøµÒ[mŽüüÑ[;ý®d©fw=ÿ›’cðúßôì éŽ!»q÷ÿú&„Ù·ÿ„6·´šßj^üC #GÍz<¾LÃùh}n›äG?ò·+Ún¼höý‰µOù÷•Å[ŸþÔçôéÉÙñÓÍ·¾™ø~è’'º”~V—L™ve|ôj¯®ó3?ŽoWîý>¯E»ßóè­'¾}·ø¶7—^öÆÝ¯\Ÿ½‡ŸûÕðèž“^zá„ôÇ16X~Û ¬H|ÿ]¯VI3ֻݼµé,}Ïmâ¯ks>î¼WùßæË…?Zþõ˜x8N^ë/ ²•c ì;ðo}’ò/„-¿êzêgÑ7ËÖ¦OŸ›> !„ƒæ.óÀ1ý&vÞkßñü›ÿN”!ü¡õ?)ý¨³NŸ°.ϾæìÄ=}ŸŒFóÖ•Ž›å/'ç_ —}Vóßí°ãG3²ûŠcOöaâ»îWö~ò½çýàÊõÉA6²o¯NÑø­g*úÍÆÝžœ!4œ¿yóeÃJftíãÇgú “v¿—jïÓÿˆçŸÀP@È9ÿýÜ–— ‹Ó_ŒFŸ JÿÈ¢f!tØüô_*³郣Qÿ›ÎmS>ZÎ:}À¯£ñ䯉„hwÆ¡#⣹ÛJ?":°ûUñ¯e\yäºIñQ¿jJ’XÆÞhXÑzÚÜ2êÒ3rvßĸÉá×Söù_ò£Ñ¦Ò¯·w»Q,ëo_é4*Oý™ÎLÇ¥‡ ˆRïþ{ñ…±Â¾Oº|@ j¿ß©ß”ÿGüljFÛUüøq·ÿäÞÒßÔ9‘ ¿98utŒ=)Í|÷äOúxõš¥«Sà%wD·,Xœ¼æèÀ!ôŸ˜Ýó}ÉÛþ¾ô-&ÍÞż ì«‘x-R}Ø&rCëT3Ý`ù {GãÙ·T˜é³²güë{c_íUö¾Í¼Ô2>:íýÝö¨ƒ†.‰¥ø»?0Ãí:G~7à×eƒeácQ46à°©·Þ#Ú2õÍe/ß–¸=Í©`š-º/>èÙ=:ÃßüR§‚™W€{\šß?»·I•?¦.ù4*ÇÌ)ÿˆšì|­Íí2'õïÝÂÞwG3½pZ¦Ïò”}¢QÁ+eÃrƧÑë;â;€AuR·;SÝÚ¨ ³G§Úášø ñÀ‹ÒÂÀ‹£Ñk&–êvgtzèäSÁ¼;vSçBøñ]­fFGÄ•> 0:3àñ{–½I¶)„bòV´NW—ϸÝïÙùZwK7Óy«—ƒ¹´a¦ÁvÈÍ?¾«8÷Þ-{_´¸ÃŽcï´ P'uµ+ÿˆ÷ì^þ¶%GE£TŸ qhI&]Õ£áüŠ/@—ü™ÕE%'ŽÅ¢L> pÅ9ÑûM©®mR›3Öù»ŠÖ³…§MÎdk_*GVð3»”\ ni%Nôm|½ã›$ß¾þºÅ'nû@ ®j±jWÝþ°òù¸¾äôÏ?¹9}\Rráu“’—:ùÉø×ÏÎ~w|t[´ë²gÿ:]Ýjfü»ÄQ€‰#»³Uú‹«íüÞô‘~¦£t„°faæ±ÂÓÿH½é­£« Ÿì¯ PG5Ù¥«f4/,Û–/¢QË7Ò?²ÕüòˇBß'ó¶ÄG‰SÁD[{ŒÚ¼9l‰¶:&ŽŒ°Ó¨ýŽËÍ’­æ¥¿¯ÍÝ©gºb‡÷èP<“3KíŽvw™sÐ\;€AuÕ–]yp³ý+ À½z¦dârm¥³¤Í-‡÷ˆ¢SÁ|ûô÷!„ÐasüJýËí”ì?1WwJV4ÓMK^£/>®Ì:O-¾:È¢?}Pr…áÕkþ9$>á € ùXYD£¯ËœÜ$Ú»`ñçû%ç]þðxrônÿ>: ðÝñÇoé7Ñ RÑLÿ{LezÇOgý)º-º¦pÃùCß7³ J4k¾\~©ÄÖ¨Xaé{úMŽ–X¶6„Äàüþñ¯ÍÝçÚ(c±Ä5@š5=ö¡\Ý)™ÙL'^™LµrÿÃâ£Äõ@¢À'¿ÔržÀ Rà¦é—ÚÜ<5/sò®OE·ÌÝ‹%8Z"ú$pü(ÀèÀ_k8?Wç|cï îë•.µw&:ÌœF„ŠsÞ|9~‹À JI|èàݱé—z§ä3¾­g–ù¿¡å'|P€kCXû×U[C¡Ý4‰¶9õ.Þ9¹`ñæÍ¡Y´‹¸úN“ýÞ¾/ý}o=“n¦wfHñQ€ß\öÜy!$¶ÿí•?ð"Ûÿ@$9êóh´ì“ôI¶ì“’å7•]ªï“ñ¯‹oÛð³…Åù’? qò¹ßzló!„·åä—r7J–¶H?Ó‰ó2–ŸéŠûP´³}Æ»±X"‡ìùƒÿô>¤ËÜh4ûþôKÍz<u}¨ì}'¿?Ì¿î}uHÉ€Ãñr@“öûÅG ÷<³8nV¶š™»sþôãiïj6c]4Lu¡¹ m|H|ðÜyŸŽ^öItêm§€PFþðèX¼åo¿œæs§o¾í˜l°¼ÇUe·Üµž]Cdî¶É‹×Ú?y‰ÒG†Ë§€ !„ç¼Ð!õ=/´fQ4Ó‰£(3}xÛ¬9»EŸn;ºWw;€A”ÒjæÏJ®óûÛ÷SgÙ}~þ‹½ï.ßÉñ¯Ó[Gë,} Ý’|'úÀHÿ ¹=ë7}–j¦‹ÚßpH4î7¹Í-• ·ã.޶«ÎX7áëøhøƒ-¶z—ƒ²^Qûšýy®ˆF³¿ç¶ò÷Oiüü©Ñø—ϧ —~Åç\qNükÏþ¥ïð³³ óBˆo3Ìí­Rs·?­ü­¿é–øÈÒo#M÷i°|P¿øhÚùÑmÃ'ø‹‚ú§‘)€úgcïÖ5úóúlì;#þ¹Ñ®h{Y¬tšMiüë%¡øÔ$ýo:þ‡©Â­Ëë±UñwÄ7"Vj-íÎèØcå‘¥‚qKõþN÷­ÌÒ=Qó¯ò˜ÿؽñy_'¾ß>è·+îÞHæ~7O¬ü;dÈž“¿‹¯-þýá=±y„¿)€@¶þ9Dÿhß:llÞ—nì¿”ZM˜°öÐâÑ·#Cöáù_wYÚzægƒ_òÀ1óöŒò/V8a],–*óVŸ4çoIßç÷ÓK/Ñ»ÓÊÆ‰ïúNI½žªsõK• ÀZx½¿ëuåžOmºø‰£W6/Z7iîW÷]ðöÂè¾Æãî˜T~†2y‡ôê[8gcÃ'T÷Lµ!¯¨hç -l4¨I!lÍßnÊ [å~û±Ò·$þáNì L÷yEKìüÑ!,XÛy=Ü%à ž² ê‘oGî=«ûU«×lì½÷Ôvg¶»äÁm5ÿ6u>hõ)m?è¼þò¼XáÞSž1àªþÌËd;Râh³ÔÇíìþú®ì®áoGî=ë“ß\´þò­o¶¹»Ý™½: [rܵÍLfïóŸLúÿ¹¢ç^ùþ® ®¨L¯ @¨§™PÛ”ÉqƒTÕœVî5ßÉÒÍ:·_½&„†½xÿQfêgú0Ô;Ù\²/{g»â¥ç/^}\|4âŽØ ¯#ÔOŽ É£Å/i9ïÄ•ò õÞWÄÿ áô[½i>@Pï=>tÛ¬øh„KÀ þÛ6k¿ã£#ö=Ê`¨Ç| Ç}õÈò·;~´Wþ[Ïܸχ#ã·]õ7—€@½µáò!„ðtâ–CnÜmó3õ—]À”ÒzêÔgbþu@®è°ãÉ/»Î·ûê7»€êˆ+×WÏz[ürNX÷û«¹ó´FžÞj´ü@V¸q÷êYï^ù·…°%„XlÝnÓÛ„ùê 9Âv?ÈŽ€@ €@ €@  €@ €@ €@  €@ €@P}Ufá¢y %}›—áò{¹úñ[x5,çÕµœwå¼[jp¹¼lŸåª ÀÁ?WÌ¡yÝ~úv䘌0»‰¨/2Ú¼ñÔ™.Í{ýëà ÖfF̯1#fÄŒdéï—u¿Ã!—d°‚¢" K €@ €@ €@ @ €@ €@ €@ @ €@ €@ €@ €@ €@ €@ €@ €@ €@ €@ €@€@ €YìÕ!+'UýZWNzuˆÈBSê7¯Ë˜ªNÀ•“ºŒé7oÊCui&òŠŠ¼€úïÕ!ýæÅGKÆu]•ùý£w×§êÊ\Øä„–£QÕmLä_òú @Vè8zɸªMÀäü«Ê­Š +°*óoöôXlÜc…5¶ Ñ1€@©ªl«ÊüÛ1¬å‹ñÑ5“.Ü|võÏ‚-€@©š­€U»ó÷Ù³£ÑøÑ.®‰-€µ˜!ô¸ïš¤gQh0sv%áªç£…ï=|©uUçî`HÀÑÕý¸ìŠ@HÀ S®úOüR3( ˜QÎÕÔyÿª? 3Hºš=ísõF $àN³®6®úQ}( ¸“´«½‹¾UO @@V˜wµ}Íߪ@HÀ ¯¶ó¯:"P¤Í¼ìÈ¿ªŽ@&õ²)ÿª2 @Ê̾ü«ª€)ðɦ§~‘ùW(R&`öæß®F`Æ‹yKd·GxÚΗj`¢ê‹“3Ú´'êçó2YªQ¦«+ØjJ€úníÑ£V”½í¾ƒÛ½–Ïuëµ3~÷hÓä[Îü¢Ç}!ƒ]À>P̧€r6ÿœ çò/Ýmu=þ @¨(õ\  §ò/{°êâOì4ñj;«6þ ÿ2È»ÚKÀª?È¿ŒÒ®6°zâOò/ì«Ù¬¾ø€€üË8éj*«7þ ÿ*‘sÕŸ€Õ•J¹êLÀš‰?È¿Jf\õ$`ÍÅŸäßèš~|íÆŸä_-­#aöô³.¬¹ø€€ü«Õõ„ÂŽa-_¬¹ø€€üË‚uÍž~Ö…5Y³¾šÓÀ›ßGÇÑKÆEã.cVN€YåóÙU›eðóÙug. º>uÇ„ªÍ¿ä¼cB×§êÎ\8ȯi9°êÕ[9éóÙu)ÿ @α @ €@ €@ €@ €@ €@ €@ €@ €@ €@ €@ €@€@ €@ €@ €@€@ €@ €@ €€@ €d—ÿl´µì™E|Ä%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/timeInterval.png000066400000000000000000001225671431412030200260510ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝytM×ÿÿqôÓ~ªZCL!Ä’4!bŽ1Ô¬h5”"T©˜‡ÖTCc(J¤¨¹´j( BΜ˜b j¦QÔÄcòûc÷·V¾ëöæsI"''ÏÇYk/KoÎÝgŸ÷Ývï+çœÉKÈÁ€5€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€E€Eã=i÷¤Ý“v»»ìî²»K´G´G´Ç™ggžyÆÈ™kÏ´=ÓöL3žOŒ'âÏŒ XÇs,s,Ù0þ¿gÉÏ’Ÿ?uþÔùS«'¬ž°zB—Ý]vwÙ?Ô;_ï|½ó3g&ÎLô\ÖóQ›nî]ó¯á”üjïÛg`Ÿ}^žuyÖåYœMXDBrBrBÔ¢¨EQ‹Êž+{®ì¹WûtíQÁÅk{B‹ÙÝöUšÛ{ÉØ#ï7úÕœœ¾§ÆÌ ëSeóx¿%±âÏâïÅkÄëÅϾÚûŠ>‹þ‹cá”°Žuœ»÷û›Š8Ñ+¼äÚÕI;Ë=ü$8´‚ǹÞ{WúU~üÙŸkÎxþ"þ,þ^¼F¼^ü,ëX̱öøçq«æ¼fhI¿ïË×ÛݨÓû^[Z·ë·CùþÃÏ«ï0¶Ï[#\üYü½xx½øYæXxYÀ0'`+zœü8ùqÄΈ;_v¹öåÐn ˈʽäbÏï+8)99&¦I“ôjO,_ÿy[óª ¿ì5ªdy— G;Þ·©E§Z41$1$1„“Œ¬(®t\é¸Ò‡r¼ò]6øm¨÷÷ˆÁ—BÖÔ ÷hÇÅ€€+bbÒ«ûûïõ¿í{(ðPà!q\œ_Ö±)yžnئغ®ýæÏ÷ðñÔØV¥û¤I'Oúû§W+ö)ö/Þ‹u,€ì3Ƕ *?ÃuëÆ7š_¬ª^=Ú³ý#ÉÉAAMš¤W+ö)ö/Þ‹9ì!†9[Ê-×[®·\;œíp¶ÃYGdî6+RjÚOWõ¯µ4}ƒ^ÇÛø‘»v5X5Í{PãJO_Jî/²¿Èþ"œq˜_’W’W’WèÆÐ¡©í‚ÎÅ–•èíÝyð7!ž>+FÄÌO߸סÖgň˜ù¢¢?Žô\£8^Î;@v[ÇýÞÕÛinW×ùN…&õ<¹Ä¿rúƽµ=O.ñ¯,ú úÃ:€5æØ’±…o\¶¡óuU—&ïjÝÄ?}ã^‡ÚA­›ø‹>ˆþ0Ç€@ s"¶ˆèêÑÕ£«;²ð ú$¦ü¤¿ÛlßRTf…¾öÚÄmÑm÷[SwÊ^ß(GŽ%dAÈ‚IS’¦$M¡`6ñâ;Åw 0,`Øÿø²lb…)ÞmýŠO\¿r~€÷Š!1!™úÚk½W ‰ }ýLýXÄñŠc§¬½ŽuŸèS¿ˆP¯õO½NLêzr¾¿G&„¾öÚ®'çû{ˆ¾‰~²ŽµæXÿ·áÎb>ü(¦Vä A-šøeBèk¯ÝÔ¢‰Ÿè›è's,€ìŒæDœ•%%'%'-:ºè袣©/³Ú–mXÕíÛ¿Úüþ]½¹f }íµÏúï­Xgö ¡ žKÿÇMoº´ìҲ˃€( ˜AìéØÓ±§ù%_cL³°¼&Š{hEŸ9:1Ô€õÖ±½ç¯8UùoŽ´¢Ï¬c˜ŽUÊبú2Ž´¢Ï̱²'`˜p–”t<éxÒñQê(u”šú¢jûÐùÿ­öWV }íµq…·«—¿ê}ϲΞvŸ“ºÚeµËêµnÔºQ‹ Af‘–JK¥ÿñ+ åš·{Ò·KkK?ßÝ=kE¿)[Ñq,©¯j «¯c¯x¹tØ×Uæ¯V"kE¿)[Ñq,¬c˜gŽýªsM÷ŠÏžäë{¼qxÖŠ~S¶¢ÿâX˜cdÀ0'à,&iHÒ¤!A1A1A1ö–Pµnù†SnxïŒhÐ)«G¿)Û¤ûûŸ4É=ýÔs+ÿÀéjðÕà«ÁT ^§ð\á¹Âs¥^™UfÛ»¤IÖ }íµâ¸R?v1>Ô @V\Ç~öíš@ÏÙY7ôµ×Šãb sçX£Q»˜³²nèk¯ÇÅ ; †9gÉÉCî¹?ä¾Ýçû~ùÉÑòSž×Þ{:ðs+E¿¶íöëóûT{žú"ò–ß-¿[~2Zê¿É[`máBE¦Õ,0·í6ÕzÑoÊV£8^~à «¯c å,r¯@Ïáµ`ßëE¿)[qŒâxYÇx=s¬s‡‚e ܾâÒã³úU­ý¦lÅ1ŠãeŽ`UÀ0'à,cVëY­gµ¶·TšÓ.x¥glòã˜è&­ý¦lº­z^k½1©ä\ɹ’sâŽÄ‰;¨d„ÔŸßStx…Þ%ko Ñ>±vô›²Ç+ŽçýdÅu¬{oŸ÷ŠxŽ+@ö+jíè7e+ŽW;ëX7Çúuëî,ßû¥ÏÐF¬ý¦lÅñŠcgŽ`=À0'à, \ WÃí>ëwîÃá[¼‚²OèkÛÆ>^»·vœ½ñé9 ç€ž’'N>L-!½ÄwŠïß)õè·ÎÀÅ£zeŸè÷ÿÑoÊV{ê10ëX¯6ÇŠøóÑ7ŸýÕØ=ûD¿)[qì©ÇÀ̱²"`˜°©]ô¸èqÑÃÞ’hBÕ~=úfçè7e»·ùòj57Û«åû–ï[¾ŠBÚ%y%y%y 0ÌÞ Ÿ³ÛU¿©_ lï¦Ðb ÅxRW™»Ž7@ÎnWý¦~5°½›B³Žð²s¬¸rv»ê7õ«íÝš9@VD s"6©_t~ÑÙk¶×l¯Ù¶ÓLJ-w;˜±ÿ@às¢ß”íúö3Bª–³Ÿ»wîÞ¹{TÒ"tcèÆÐöj,;<ë÷Õž loÄÄxRW™»ŽÍÏú}µg³Žö96;<ë÷Õž Ì À€Ó˶Û6nûçßө릮›º.Ⴤ>`d^ °I-ž±xÆâö–A÷†j¾ü‰{íµCu»R¾¾í¸ù,õYê³4©ORŸ¤>Ô^V\é¸Òq¥í}*«Ì·wIâ^{­{£'Æ–xýëØÏ¾]è9›¸×^+Ƈu,€W›cFíbjÌ"îµ×ŠñaŽÕ§Ý‹v/Ú½hgï_ÂàWCl:×W__}}µ½B?¸iõ Z׈xSo·E·iÜÏÞ®[¶>ŒJÃK¸™|3ùfà¡ÀC‡l+ª\óvOúv!âu¤ce;†blÅ8Sn¯gÛxýÀ˥ÈxiÅX±ŽàøûUçšîŸñ:ÒŠ±bŽu§]ÊkSGì8`ÓPr@É%mËzô O'T¸@¸ëxs|åÓZãíM&ѧ~ÿIŸž\æ_™@÷¥ÛOO.ó¯,Æu,Àk;øG¸ w>Ô¶IuÝ—n#ƒÚ6©.Æ9@ÖBœqƒÓ‚Øn½}ôöQ{Åú¤Åî™u¢Ü´´_ÎïÖ­¼³íØn®¼¹òæÊT ì ̘30§måøŸ¸~å|¢Ü´´b ÿå?9sæ¤ö2bÔkýS¯D¹iiÅ²Ž˜cmç˜?Š©Õƒ(7-­CæXY ðëAü²€MáÇ?>øñmi†6}Þ{)ñmÚÛ‹Ç~¿ÞpÛö¨ãQÇ£NòÓä§ÉO©C¤t5÷ÕÜWsÛÖLAçbËJôp_Ñ,¦3!nšZ÷Íb:‹ñ´g1þÔ!@z­c‹~ïêí4wRÝ“ÝýK⦩­{²»I1ž¬cæX¡dláÛ—%TµI9BÜ4µ_UmRNŒ's,€¬‚øõ# vpf;”|(ùK=—z.õlËñÖb©_C·Ì M϶ÚT¸î³”ýÉê1p=w¿ËÅ·ÚŽó¥A—]D1"¥…ñ ãÆÛV‹wçÁß„xߦW+ÆÓvœÅøS‡éµŽíê:ßÉ£PV \¿ÌŅ̃gÊc1C¯Äx²Ž˜c… ý›¯«º”ø6½Z1žÌ±² àÌElp&»’÷JÞ+ym‹¯Õ¼ú>®27.µ €³z ¼}ëüZÕîØQX©°Ra¥¨FüãNòä;%¦—˜^bºmµÔÞ6[û”à6½Z1ž¶ã,Æ_œ J íëØqt?gàôjÅx²Ž˜c…{›û kÔ˜à6½Z1žÌ±² `ó N‰8“­©»¦îšº¶·Ãe~ˆÿÛÀéÛÞ¯­jÔÇöˆ¼Êy•ó*G5BˆŽŽ¶­— ~ê}@d›­[Û1炚HË:ÖótÃ6ÅÖeÝ[.›3­[Ö±@vžc[•Ÿáº•È6#Z1¶Ì±ÌØœƒ €3Y‹¡-†¶j[d cä ¿%Έ¶ÖJßÅ6Ú׃%–Ç~ô›GRɘ‡k>›Ý(Áœ1°gæXfFl Ö ƒ €3Í/W~¹òË•¹qìÚŸkŸ4s,Œ ì³³âä]m¾ç¯ýö÷ìÍ~+;wXnFœùäo’ò•I®ûÛž6OüÂkßÂÀU¶Gä{Ð÷ ïA*3[Oñ%4ú—/ÎZÌî¶Ïlq©ë±ÚC?xãŸ.îsê\0W¹Áí?ï›àûéèb¡S«ÆO,ºâ¸GA#>+¸Ée¬Û¾”GT½[ÈM±f;"1ÎÿòLôF QŸ/»Ž 8Ñ+¼äZS¥ùNæõÏﵩQt±;){øþ­¦›‹oúÈ{ú¶ Åû•^÷žW‘»¦Ý.ÿÀ«NÃçÅöÙû¿Q³ÀbœYÇÙmŽZÒïûò5Ì”N‰¬=¹Ò ~‘=ÔéBcÂÛ5un»Ú´ùÃ_;Tú㓵s­Yßt·ïù†º?w ù·‡¾™1ãÌ ÀÌ€-ø¯¿%Â`àLóí/ßþòí/¶%rµÎŽõ7š3vºä˜«ä:µº·xMʧÿssƒo«v1ÿ“ƒ‹.,|¿€ñoýDöõç–?·ü¹Å¶**Íí½dìó¥>'Gö^ÐöŸÎ-.°Û)ÐW°(Yü×¾ìKñzñ7â¦Ðÿç A“ÀbœmÇ_œêàe×±ª“v–{h†ˆ´ëõïGztJÙ·­GŽ)sXüW{_ 4ÜÓ?´ÔcóÀbœYÇÙmŽ ÛݨÓû^fˆHãr~òu½w.pÍ¿µø€‚ñNýNÎèÒ©®»½×‹þXæß BóÇÀbœ™c˜°µeÝ0˜8Ó é3¤Ï>¶eqoŽÖ´Q]sÀŸžo{Ú=Ú‘@7åO5ï[7Ü5ÀlpÝÜUë¯IŒ”bûÇöío[ï7úÕœœæ JÝnüÙò Ñ·’± v¶uu$ÐMyDÅçúzÖ2Ì‹qþ—û"ôíÛŸúxÙuì'Á¡<Ι!"õ9Ö¬Añçÿüz¥s݉ΒCOØm|ìfµ‘nƒ<Ü 1s,Æ™u,ÝæØ-­[ŽõÛa†ˆtòÚ•þùešöuU¾îH”û¬E¿ŸýÅSÅë?oR¥oÙ¿Í‹qfŽ`fÀÙGÖ ƒs˜ç#!1:ºkãæ €Õ?Œªñ¶#?»cüüSþnâ§Ê¯)½«p%³]ÜΫQLÉÔá{jḬ̀>æ J‹åÞ¯Üꟾ¥¸ö÷<3¸Rè-¥iõ«³~Úòß+æ$üþÄl°gê ½ôÞ»Ò¯òc3D¤®O+v.´Uôª{ÅEŸVrv<Ê5ÿÀbœ©7 »Q¾ÿðóꦀ;«Ü§Ô?OÉÚÑþãÿÙ”Gä¿Úí ç=f €Å8So€¬nÛÆm·m$ÎÖž´Ùý]cÜð¥èððzWùÙ ¥~k°ÌöèÌwnÕì“RK¨78¢Êæñ~KLñÄܺ[—Åï[˜²o5ÏÞ¿u‚Ù¢ÜWkÅ8Soéå³?לñü%sÃѯFÙïw>e¯¾¼ºóŒÏÇ÷Ðãþâ)•~K¹³Àbœ©7 »1¶Ï[#Ü iµ­n…œç¦ýˆÊE£ Iÿÿ<³Àbœ©7@V÷tÃÓ O7gkf¾øIÐîÕ÷9ò³‰Ó¢+7îf{t\Œ¬ÈŸòÛ0ï‹)÷ÀÀÌÀÇßCÏÓK WJ2slïÀT&›µçXó<Ø'¯ËÓ¢ÍÿéÕÉ–ýNžmÕU©ûìÕZ³ÀöžLe²±±™g³£Bß }+ô-FÆzÛö1ÛÇl”+(WP.Ç£_ñúlô `|ûË·¿|û/7‰ºZgÇÀú³ú3€wµYøž¿&~Ê'¯‡óÿ_†š'.º°ðý†íøS™ÙÙŸ[þÜòçÛª¨4·÷’±GÌ”¦ì[Õÿ|UçÇòŽü”ÿªkýÓc`g#K{ìéUrÔùWä‹Égžãã̧ ½Ö±ª“v–{h†ˆ4e¯ºÿV©R€ã?Ûzè¸GeÏš9ãÌ:ÈnslØîFÞ÷2CDÚîBÅ»%+Š^E jãîßÁlÏñMK+Æ™9€™Ùû%FÆDp;uÝÔuS×9úŠ×¿þÐ7%àLóË•_®ürŶ,bc×þ\û¤9àOÏ·=ííÈÏvœ÷Á¥jˆŸê<¬Ù¸RkÌ¿ðÚ·0p•íÈûô=è{ÊÌÖSy£„F lkÃ=¡ÅìnûÌ—>üAÎNþŽü”ûß-¾è¶âŸÛ:ͯt¹Ê/f»XŒ3ÿS^ëØ€½ÂK®5[\)$ ™óe‡®n|ìfµ‘%£++ÜÒ̰gÖ±@v›c‡–ôû¾| 3D¤£‡Vo]áOÑ«þ“|s”}בŸzÔ÷aã}uš•š^ÿÇ[÷~çQ-ï`ç.ËÍHùúæ}놻˜íæÏGvüt°v¨íÈ/?µüÔòST&ÊÌ+3¯Ì<Û ©»dÙª}µÌ”Öݺ,~ßBÛ–[Ú>©ß¯¾~£¦-Üç7rÒ¡ÕïTÚÔûé¸f…j¹ú–úg!R°]ñ]ÛšíÉÁblmHœ j -ëØ wÿp©¶9“ƒÒ|'óúÿË×%ïßjº¹ø¦VÌøºBý~¥×½çUäã‚ß6­Ð×Û½ñìâEÄkÜy¸:cÎXŒ-ëX ;ϱϷ÷÷ œn† ô_.uöí\¶áº¯>8Ve¢wÃiµ«ÚØŽó*ýVêÿ\SÛó¯Sîîf{ú¯[æXæGœuY/ôM‰8Ó¼Èó"Ï‹<ÿr­aPá#"’ŸÄình¶8jÇÒ5.àìáÔ/õÀû®»-t):<¼Þ³À¡sÆòÞð/7ßNŠMŠM¢2¼6xmð¿ÜÀ­fþ¹-·EšíFÐâfÎŽü³ä朷xŸ±#êÍ?e¶kÅØÚöYœ j -ëØáëµ/|o›!.]xOïªNå'V¯S4Ä‘l™ÃUfY#‚asÀblYÇÙy޽R¨Gïú¾fˆKÅ-»{x•+îøWØm\*|ëÖúñ¨¾‹Ï7[,Æ–9€ùg-Ö}S"Îd-†¶Úb¨m1%Œ‘/4üÖl°øû~7ðY›žîÊ¥’ŠüT¸zY~ºçn箓 XZÉÿ~”^³Ñ$³E¿¢­µÒ·G±¶cþ`Ƀ%–P“ˆèÑ1¢£m…x|)dÙž›ûÏsÔ&öî?vfñÞ>?Ôú¯Ó£bU\N: ,:®ØÊbc½ÿNe¾lU®û‰šWæßÞYÊlý­[Û1炚HË:¶k¿ùó=¼ÌšŠ^µË=¹Vù¼kêìp-ãrÄ©u¡âE] •éæ«ùºyÿá×ËLþjÔ‘ý~çÍ| h1¶¬cì<Çn|£ùŪªÙn›,®ôí<¬rŸRkÊýî\²ÐƒÂáN• tôI.ѾèÄ~óH*#^“òêa³…[æXæGl~Ù'ôM‰8“­©»¦îšº¶…µÃe~ˆÿÛfˆKí…¸/û÷fhï×Ö5êc;Ú^å¼Êy•£!ÄÇÇÛ։˿ õ>0g€š2 ~µÿš¹­[Û1炚HË:ÖótÃ6ÅÖ™í¹¹)Ã`{Ÿò¿šóé¿blYÇÙyŽmT~†ëV³E§¶7…¶÷_ÍÙsÑŠ±eŽ`~Àæ”=Cß”€3Ù•¼Wò^Ék[d­æÕ÷q}dÎ5ë¶Û·Î¯UíŽíh‡• +VŠjÄ?î$ßI¾Sbz‰é%þåI3µ7†ÍÖ>5s œµZ1ž¶ã,Æ_œ J íëØqt?gsÆÀY±ãÉ:`Žîmî3¬Qc3‡©Y«ãÉ « 6Bß”€3Û¡äCɇ\ê¹Ôs©g[v·KýºܦW[ÏÝïrñùÍÁKƒ. º4ˆbDJ ãÆ/Œÿ—AwüMˆ'ÁmºÝü¹óàoBzû¨½¢|Òb÷ÌÆ:!nZÚ/çwëVþ_nϵ¹òæÊ›+S°'0g`ÎÀœ¶•ãW|âú•ó qÓÒŠ1´[1æÔ@F¬cƒz­êu‚7-­CÖ±s¬í<óáG1µz⦥cÈ k!~=}_°‰ ;pìÀ±¶ººÊäDß鄸¯Öþ=}û…úߨûð?ö{ì÷ØÚƒ={ìY°gÁ¿\?1±Âï¶¾+FÅ„å¾të»bTL¨CÛ±cNídÄ:Ö}¢Oý"þ“>=¹Ì¿2QîK·Ÿž\æ_YŒ!ëX€9Övðpî| 92¨m“êD¹/ÝFµmR]Œ!s,€¬…8ãú¦°‰ÄEÇEÇEÛ+Ùû…´Mºè¾lÛ{䇺_³ÏEyåY”‡ªÃÿP"¹Dr‰²çÊž+{ζŠ|1ÍÂòè¾l+ÆÍv<Å8‹1§ô2nÛ{þŠS•ÿ&Ð}ÙVŒëX©Ï±JùU_F û²­7æXYpú"ôM/À¦3 ä€’JÚ–ïèAŸN¨p@×ñ6æøÊ§µÆÛ›&l}Øú0* /áfòÍ䛇²­¨rÍÛ=éÛ…pבVŒÕ¿<ËçPà¡ÀCbœ)7€×³Žm¼~àåÒa„»Ž´b¬XÇp|ŽýªsM÷ŠÏwiÅX1ÇȺ€ÓnÛÆm·m$ôM_À&µxÆâ‹gØ+ñ{C5ßFþ½öÚ¡º])_ßvÜ|–ú,õYšÔ'©ORj /+®t\é¸Òö>•UfÛ»¤ ¯½VŒ½ÑcK¼þuìgß® ôœMÄk¯ãÃ:À«Í±F£v15fñÚkÅø0ÇÈê€ÓîE»í^´#ôM_Àf-÷Î/:¿èì5Ûk¶×¿ü¯æ‡-w;˜±ÿ@àsâÞ”íúö3Bª–³7Mœ»wîÞ¹{TÒ"tcèÆP»¿‹T³ÀܶÛTâÞ”­{#&Æ“ºÈÜuìðZ°oqoÊVŒ ëXiŸc¯¸ôø¬~UâÞ”­æXÖ@œ^R^Lè›vÀ¦vÑã¢ÇE{‹¡ UûôèKè+ڽ͗W«¹ÙÞX-ß·|ßò}TÒ.É+É+É+`XÀ°€a¶•V`máBE¦ÕÞ¢}Bô+ÆAŒ‰íX‰1ãI]dî:¶PÎ"÷ ôWþ€ìW”èWŒƒÖ±Ò>Ç:w(X¶Àí{¿ôÚ¨ѯ1&̱¬æDœ„«áj¸Ýëçæ>¾Å+(;G¿±×î­go|zè9 ç€äÃɇ“SKH/ñâ;Åw²WuE‡Wèá]²ÎÀÅ£zeÏèW»{£$ÆZ0Ï:Ö½·Ï{E<Ç¿8|ßï÷ìýŠcãÀ:@úαþcݺ;˾ùì¯ÆîÙ3úÇ.Æ9€•Ü€³ŒY­gµžÕÚÞòhN»à•ž±Éc¢›4Î>ÑïA·UÏkí±7&•œ+9WrNÜ‘¸#qõƒŒ{:ötìéÔcàìv5°8ÞÔ£_1nÔ€9×±"þÌnW‹ãM=úe ís¬ˆ?³ÛÕÀâxS~™cd]À0'à¬#"9"9bÈý!÷‡Ü··T þò“£å§<¯½÷tàçÖŽ~·_Ÿß§Úóü©ºåwËï–…ƒŒ&-•–JKíÕ¡¸rvx6°8F{7|ÄXQ3æ_ÇŠ g‡g‹c´wÃgÖ±2bŽ7@ÎÏÇhï†Ï̱¬æDœÅ$ I’4$(&(&(ÆÞ²©Ö-ß°bÊ ï :Y)ôMº¿ÿI“ÜÓO}1·r—ԣ߫ÁWƒ¯S-xÂs…ç Ï•zeV™=nï’&Ö‹~Åq¥~ìb|¨€¬¸ŽýìÛ5ž³­ýŠãb sçX£Q»˜³¬ýŠãbŽÜ€³¤¤ãIÇ“ŽRG©£ÔÔRÛ‡Îÿoµ¿²zôWx˱zù«Þ÷,ël÷f\.«]V»¬¾QëF­µ¨d–ÔÃW(׼ݓ¾]ê\[úùîîYø)¿×–~¾»»8–Ô—ßä°Æ:¶ñú—K‡}]õhþj%²nè+ú/Ž…u,ó̱_u®é^ñÙ“|}7Ϻ¡¯è¿8æXÙ0̉8+KJNJNZttÑÑEGS_Tµ-Û°ªÛ·µùý»zs³Jèû¬ÿÞªufšàù?–È-»´ìҲ˃€( ˜AêÏûIÉ×Ó,,oÖŠ~EŸ9:žß`Õulïù+NUþ;kE¿¢Ï¬c˜ŽUÊبú²¬ýŠ>3ÇÈž€aNÀ]=ºztuG–YÁAŸÄ”Ÿôw›í[ê2[蛸-ºmã~kêNÙëåȱ„,Y² iJÒ”¤)ÔÌ&¾S|§øNÆ K½’‹N¬0Å»­_ñ‰ëWÎð^1$&ÄD¡¯÷Š!1!¢o¢Ÿ©‹8^qìÔ€µ×±î}êñêµþ©×‰I]OÎ÷÷0QèÛõä|Ñ7ÑOÖ±²Öëá6Üù@̇ÅÔꑼ!¨E?…¾‚Z4ñ}ýdŽÜ€-å–ë-×[®Îv8Ûá¬#j§»ÍŠ”švàÓUýk-ͬÐ7~ä®] VMóÔ¸ÒÓüÛ_d‘ýE8ã0¿$¯$¯$¯Ð¡C7:RÛ‹-+ÑÛ»óàoB<|VŒˆ™Ÿ ¡¯ÏŠ1óEDé¹8Fq¼œw€ì¶Ž-ú½«·ÓÜ®®ó< Mêyr‰åL}{ž\â_YôAô‡u,ḵ%c ß.¸lCÿæëª.MÞÔº‰&„¾;‚Z7ñ}ýaŽæDlE“'?ŽØ±3bgþ—ôåÐn ˈʽäbÏï+8)}ãÞË×^çÖ¼jÃ/{*YÞåBÁÑŽ÷mjÑ©E§M I I á$#+Š+W:®tà¡ÀC‡¯|— ~ê}à=bð¥55Cç=Úq1}ã^±O±ñ^Ž÷M‹8.Î/ëØ”û ¼<ëò¬Ë³8›°ˆ„ä„䄨EQ‹¢•=Wö\Ùs¯öé(Ú£‚‹×÷„³»í«4·÷’±GÞo>ô«99}O™Ö§Êæñ~KbÅŸÅߋ׈׋Ÿ}µ÷}ýÇÂ)`ë8wï÷7)p¢Wxɵª“v–{øIphs½÷®ô«üø³?לñüEüYü½xx½øYÖ±˜cíÞ8:[5ç5CKú}_¾FØîFÞ÷ÚÒºåX¿Ê÷~^}‡ñ°}ÞáâÏâïÅkÄëÅÏ2ÇÀË"†9g#|ù>ò]]wuÝÕu󛨍#£ŽŒ:riÓ¥M—6qÖ`q%’K$—س`Ï‚= sæ ÌiÎO¥è›è§è3§€u,ëX`ŽeŽ`˜p¶v´×Ñ^G{· nÜ&³‹Í§4ŸÒ|Êö™ÛgnŸ™¸7qoâ^Î ²³«¹¯æ¾š{aüÂø…ñ%¦—˜^búëÿTŠ÷}ýá¼€u,0Ç2Ç€-`˜0þ¿gÉÏ’Ÿ?uþÔùS«'¬ž°zB—Ý]vwÙ^ËÄzçë¯w~fâÌÄ™‰8xàà£cŽ=:ÆÀ©‹ŽŽŽèÑ1¢cðÚàµÁkËÌ+3¯Ì¼´*Å~Ä>ÅþÅ{1æ` ̱̱d]ÀxEOÚ=i÷¤Ýî.»»ìîíííqæÙ™ggž12@æÚ3mÏ´=ÓŒ'Æã‰ø3cÖ±ÀË @öA A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A ñZà¨7¢Þˆz#?d"'%€,,"ÛÀâï£rFåŒÊ•#*GT#ÉH2’ŒÆ ã…ñÌxf<3žO§Æcã±ñØH4Dã¡ñÐxh<0Œ{Æ=ãžq׸kÜ5îwŒ;Æmã¶qÛ¸eÜ2nñF¼oÜ0n7ŒkÆ5ãšqÕ¸j\5®WŒ+Æeã²qÙøËøËøË¸h\4.Œ ÆãœqÎ8gœ5Îg3ÆãŒqÊ8eœ2N'“ÆÆÆÆqã¸qÜ8j5ޱF¬k6‡CÆ!ãqÀ8`0bŒ#ÆØgì3ö{½Æ^c±ÇØcDÑF´eDQ†nè†nh†fh†b(†bȆlÈF¤iD»Œ]Æ.#ˆ0"ŒÆc‡±ÍØfl3Âp#ÜØjl5¶[Œ-Æã7ã7ã7c“±ÉØdl46___õÆzc½ñ³ñ³ñ³±ÎXg¬3~2~2~2ÖkŒ5Æ*c•±ÊXi¬4VËåÆrc™±ÌXfühühüh,1–KŒÅÆbc±f„aÆ"c‘±ÈXh,4 ŒÆc¾1ߘoÌ3æóŒïŒïŒïŒ9ÆcŽ1˘eÌ2f3™Æ·Æ·Æ·Æ c†1ØnL7¦S©ÆTãããc²1Ù˜lL2&“Œ Æc‚ñµñµñµ1ÞoŒ7ÆãŒqÆcŒ1ÆmŒ6F#‘ÆHc„1Âa 3†ÃŒ`#Ø6¾4¾4¾4†CŒ!Æ`c°1Ød 2ŸŸŸŒÆ#È2‚Œ~F?£ŸÑ×èkô5ú}Œ>Fo£·ÑÛèeô2z=žFO£»ÑÝèn|b|b|bt5º].F£‹ÑÙèlt6:ŽÆÇÆÇÆÇF£ƒÑÁho´7Úm¶F[£µÑÚhm´2Z­ŒF £…ÑÜhn47>0>0>0šM¦F hÆFc£¡ÑÐhh40 ŒúF}£¾`F]£®QרmÔ6jµŒZF-£†QèaT7ªÕjF5£šágø~F£ŠQÅð5| _ã}ã}ã}ÃÛð6¼ OÃÓð4*•ʆ‡áaxŠFE£‚QÁ¨`”3Ê匲FY£¬án¸îFi£´QÚ(i”4Jn†›áf”0J% ÃÅp1ŠÅŒb†³ál8EŒ"F£°QØ(l4  'ÃÉp2òùüF>#Ÿ‘ÏxÏxÏxÏx×x×x×Ècä1ò¹ÜFnãmãmãmã-ã-ã-ãMãMãMã ã ã #—‘ËÈeä0r9ôd=YOÖ_è/ôúsý¹þ\ª?ÕŸêOô'ú=QOÔõGú#ý‘þ@ ?Ðïë÷õûú]ý®~W¿£ßÑïè z‚ž ßÒoé·ô›úMý¦~C¿¡ßЯë×õëúUýª~Uÿ[ÿ[ÿ[¿¬_Ö/ë—ôKú%ý¢~Q¿¨Çéqzœ~A¿ _ÐÏëçõóúYý¬~V?£ŸÑÏè§ôSú)ý¤~R?©ÿ¡ÿ¡ÿ¡×ëÇõcú1ý˜«Çê±úýˆ~D?¤ÒéõƒúA=FÑcôýú~}¿¾Wß«ïÕ÷è{ô=z´­GëQz”¥ š®éš®èŠ®è².벩Gê‘ú.}—¾KÐ#ô}‡¾Cß¡oÓ·éÛôp=\×·ê[õ­ú}‹¾EÿMÿMÿMߤoÒ7éõúFýWýWýW}½¾^_¯ÿ¬ÿ¬ÿ¬¯Ó×éëôŸôŸôŸô5ú}¾J_¥¯ÒWê+õ•úr}¹¾\_¦/Ó—éKõ¥úR}‰¾D_¢ÿ ÿ ÿ ‡éaz˜ª‡ê¡úB}¡¾Pÿ^ÿ^ÿ^Ÿ¯Ï×çëóôyú<ý;ý;ý;}Ž>GŸ£ÏÒgé³ô™úL}¦þ­þ­þ­>CŸ¡ÏЧéÓôiúT}ª>UŸ¢Oѧè“õÉúd}¢>QŸ¨OÐ'èô¯ô¯ô¯ôñúx}¼>V«ÕÇècô1ú(}”>J©ÔGêÃõáúp}˜>L¦Õ‡êCõ/õ/õ/õÁú`}°þ…þ…þ…>H¤Òêõú}€>@ï¯÷×ûëýô~z?ý3ý3ý3½ÞGªª÷Ò{é½ôz½‡Þ]ï®w×»éÝônzW½«ÞUï¬wÖ;ëôNz'ýcýcýcý#ý#ý#½½Þ^o¯·ÓÛéíô¶z[½­ÞFo£·Ñ[é­ôVzK½¥ÞRo®7×›ëÍôfz3½©ÞToª7Ñ›èMô@=PÔéôFzC½¡ÞP¯¯××ëëõôzz=½®^W¯«×ÑëèuôZz-½–^S¯©×Ô«ëÕõ꺿î¯ûë~ºŸî§WÕ«êUu_ÝW÷Õ}tÝG÷Ö½uoÝK÷Ò½ôÊze½²^I¯¤WÒ+êõŠz½‚^A/§—ÓËéeõ²zYÝ]w×ÝõÒzi½´^R/©—ÔÝt7ÝM/¡—ÐKè.º‹î¢Ó‹éÅtgÝYwÖ‹êEõ¢za½°^X/¤Ò éNº“î¤Ð èô|z>=ŸžWÏ«çÕßÕßÕßÕóèyôZ­ö©ö©ö©ÖKë¥õÒzh=´Zw­»Ö]ë¦uÓºi]µ®ZW­³ÖYë¬uÒ:i´µµµ´´´öZ{­½ÖNk§µÓÚjmµ¶Z­ÖFk¥µÒZi-µ–ZK­¹Ö\k®5ÓšiÍ´¦ZS­©ÖDk¢5ÑkµÆZ#­‘ÖHk 5ÐhõµúZ}­žVO«§ÕÕêjuµ:Z­ŽVK«¥ÕÒjj5µšZu­ºV]ó×ü5ÍOóÓü´ªZU­ªæ«ùj¾šæ£ùhÞš·æ­yi^š—VY«¬UÖ*i•´JZE­¢VQ« UÐ*hå´rZ9­¬VV+«¹kîš»VZ+­•ÖJj%µ’𛿦¹i%´Z ÍEsÑ\´bZ1­˜æ¬9kÎZ­ˆVD+¬Ö kµ‚ZAÍIsÒœ´üZ~-¿–O˧åÓÞÓÞÓÞÓÞÕÞÕÞÕÞÑÞÑÞÑrk¹µÜÚµÿjÿÕÞÒÞÒÞÒþ£ýGûö†ö†ö†–SË©åÔrh9´j’š¤&©/Ôê õ™úL}¦>UŸªOÕÇêcõ±š¨&ª‰êCõ¡úP} >P¨÷Ô{ê=õ®zW½«&¨ j‚z[½­ÞVoª7Õ›j¼¯Æ«×ÕëêuõšzM½¦þ­þ­þ­^Q¯¨WÔKê%õ’ú—ú—ú—§Æ©qêŸêŸêŸêyõ¼z^=§žSÏ©gÔ3êõ´zZ=­žTOª'Õê õ„z\=®W©ÇÔcj¬«ÆªGÔ#êõzH=¤TªÕ5FQ÷«ûÕýê^u¯ºWÝ£îQ÷¨Ñj´­F©Qj”ª«ºª‹ @UTEUTY•UYT#ÕHu—ºKÝ¥F¨j„ºCÝ¡îP·©ÛÔmj¸®†«[Õ­êVu‹ºEÝ¢nV7«›ÕMê&u“ºAÝ nPUUUQQQVVVתkÕµêOêOêOêjuµºZ]¥®RW©+Ôê u¹º\]®þ¨þ¨þ¨.U—ªKÕÅêbu±úƒúƒúƒºH]¤.RCÕP5T] .P¨ß«ß«ß«óÔyê5ŸšWÍ«æUßUßUßUó¨yÔ%Ÿ’OÉ«äUò*ï*ï*ï*y”#Ÿ‘ÏȧäSò)ù¤|R>)ÿ!ÿ!ÿ!—ËÇå£òQù¨+Çʱòaù°|X>$’Éäò9FŽ‘cä}ò>yŸ¼WÞ+ï•wË»åÝr´-G‹/ÿÄÿî‹äeA’%Y’wÉ»ä]òNy§¼SÞ!ïwÈÛåíòv9\—Ãåßåßåßå-òy‹ü›ü›ü›¼IÞ$o’7Êåò¯ò¯ò¯òzy½¼^þYþYþY^'¯“×É?É?É?Ékä5òy•¼J^%¯WÈ+äåòry¹ü£ü£ü£¼T^*/•Ë‹åÅòòòò"y‘¼H•CåPy¼@^ ///Ï“çÉóä¹ò\y®R©Ô[ê-õ–zI½¤^RO©§ÔSê.u—ºKŸHŸHŸH]¥®RW©³ÔYê,u’:I¤¥¥¥¤¤¤öR{©½ÔNj'µ“ÚJm¥¶R©ÔFj%µ’ZI-¥–RK©¹Ô\j.} } } 5•šJM¥@)P ”K¥ÆRC©¡ÔPj 5Hõ¤zR=)@ ¤:R©ŽT[ª-Õ–jJ5¥šR ©†TCò—ü%ÉOò“ü¤ªRU©ªä+ùJ¾’ä#ùHÞ’·ä-yI^’—TYª,U–*I•¤JRE©¢TQª U*Hå¤rR9©ŒTF*#¹Kî’»TJ*%•’JJ%¥’’«ä*¹J%¤R ©¸T\*.“ŠIŤ¢RQ©¨TD*"‘ I…¤B’“ä$9I¤R)Ÿ”OÊ'å•òJy¥w¥w¥w¥‹|ù4òiäãÈÇ‘####F>Œ|ù òAäƒÈ{‘÷"ïEÞ¼y72!2!2!òVä­È[‘7#oFÞŒ¼y#òFäõÈë‘×#¯F^¼ùwäß‘G^޼y9òRä¥ÈK‘#/F^ŒŒ‹Œ‹Œ‹¼y!òBä¹Ès‘ç"ÏFž<y:òtäéÈS‘§"OEžˆ<y"òÈ?"ÿˆ<y,òXäÑÈ£‘G#D‰<y8òpäáȃ‘#FÆDÆDÆDîܹ?roäÞȽ‘{"÷Dî‰ŒŽŒŽŒŽŒŠŒŠŒ_Û‹¯ëIJøµ0d3ä¡À€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜0©ü©b|¨êàs À00`R >×^00`R >×^00k©m¯¶O‚P¯ó𹬘Hñ%>Á¨FT2€—EL ¤ƒŒø¿ïòÔ6Æœ#f4@%°EL ¤¾Ä5ÆhT2`ÀÀ@:àK|PcŒ@%f@L ¤¾Ä5ÆhT2`ÀÀ@:àK|PcŒ@%f@L ¤ó‰¿wì¿oö^$ב\Gr vì<ع^‰z%ê•(k”5ÊEC‹† õÉë“×'o—6.m\VžZyj婇k®y¸Æ‘ž\}môµÑ¡³Cg‡ÎnU³UÍV5}’}’}’‹(> ø€b£‹.6ºrçÊ+wî<¬ó°ÎÖ4\ÒpICÇ÷Ÿ/<_x¾ðÔ®hW´+Áƒ ܸ%p‹Wm¯Ú^µ‹üTä§"?¹Öq­ãZGŒÀ'5>©ñIzýÐë‡^÷£îGÝÊŠ5ö²µq÷¯»Ýýkþþùûçï5P%®J\•8Q¥ò•ÊW*_õÕT_ êGv—Ýe÷¬þ‰3sm¼ì´'É5É5Éõñ¨Ç£²Þ,{9örìe1óô|§ç;=ߩݩv§Ú*õ¯Ô¿R1ó/^8¼ôÝÒwKßóRµƒÚA8.p\ RP)¨|^çyçu²Ï¿@VDL ¼„üé*-ï•^=Oùš„| ùòµ?ÜþpûÃ/{,VXXa¡½¾‰`iÞ™ygæËËîßý¢ûE÷‹Šl¨²¡Ê†*£Ûêl«³­Þw}ßõ}×´‘¸Š.åžÅÕ„mŸ·}ÞöyÚG¬@Î9 äL¯häÎÝ;wïÜ×°¦ï™M‘¾žÚˈ=‹ÿ*Âûaò0y˜œö‘×;ÞçÌ €­Q¶¯œ{}îõ¹×ÅõÊö~Êã²ÇeË¥s”ÎQ:‡½þ'NKœ–8-}gצß7ý¾é÷özu.à\À¹GÆM\¡Þir§É&çÏ`â*ð´œM` #/Áz°KÄ-|Ó븪ÆV­+þÜq^Çyç¥ï¸¥Œ¦^í<Þò¾å}Ë; r@å€Ê… 6$£k/#ö,þë„'žLx’¾c"nöOAFÀVª ñ_ŸµxÖâY‹~sûÍí7ב^‰["‹ÛwÛ{Íï¿Gü‘^óê¥èKÑ—¢SþzGJ"vd?„?¯9¢æˆš#ò¿F-?hùAËÒwf&Ò‚˜x =Šýû–ú—øö~*õ÷z=ðÇ+?^ùñÊ”ãtÉé’Ó¥‘ßünäw¬ûcÝë-|´ðÑÂc»í>¶{N‘9Eæqä6Î"F²–l[¼mñ¶Å"l»“ãNŽ;9ôú ýÄÀ~4ð#GB—…K.]¸ôeGC<É5åu{ö´ÍÓ6OÛ<ë¾Z÷Õº¯âîÅÝ‹»'®f7Ê>Pï@½õÄMtí]+™òªeq¼i©½×ï Ù²'¤À½÷ ÜKù÷â™Ð› m*´©x¢³ø5c±ÇØóy“Ï›|ÞÄ‘3¸vÖÚYkg™çg½Úÿu@Ÿ}ôq<Ο\ñy´÷š¾Ëû.ï»<½BJq]²½÷ZµoÕ¾Uûy¯!O‡<òÔ‘›ÉO›3mδ9¢ÂSžÁ›uoÖ½YWÌu¿6øµÁ¯ ÄUàöÂé”ÄëÍó¹²3`` dÄ—ø¯'NIÜVò•|%ßÔ÷&‚“—½NN„Ç)ûcoÿ«w®Þ¹zgê{Kù¬bÇÇá»ÿ~÷ßïþ›ú³Z·ÏÜ>sûLÇG[ØŽ?7Ô<5–úž½=½=½=Sþ¸Šôi—§]žþ›§ íìé<¬ó°ÎÃÌsݤõjC|âlÿ¾hhÑТ¡CÏ =7ô\Ä ˆAƒŽÜ?rÿÈýËÛ.o»¼MD¡âÖß§UœVqš½Ñ•öùÓÞõÖÅP|Àý¨ûQ÷£R߃nSÿÅqShqóêŒxuÊ_¦1ÃçÈ΀ €€t`8åuxŽì³×Í^7{ÝtdÏâv²/ÛçV5[ÕlUÓÞ>E4åøÞ®¬½²öÊZ{O?O/޽{9öò+žµ¼Éy“ó¦>oL¼1ñ†ÙnëÈlt¤Ñ‘FGÄÍ„ÇÖ•ZWj])õ+MÍðé°jmØ^·*nÏþgþ?óÿéÐX:zèè¡öö¿³ûÎî;»§¥öR>Ù×VPpPpP°#û‘ÝewÙÝÞ~üt?ÝOArZ>/óÎÌ;3ïLúÖ30€ €€tÕà +,¬°P\çø>ŵ©ïÙµŽk×:ñ-ã[Æ·|Ùž‹çŒ¦~½²ã{›9%rJ¤½½-+¼¬ð²Âi]ž= zdï]Jº•t+é–àýŸìÿdÿ'/û^á¿„ÿþ‹½}Š*U(Ê Ÿk׆à“ì“ì“,nÙíø»ô9èsÐÇÞ>SÞ°ýÕÆdú„é¦O°·ÿ蟣ŽþÙ‘ý‡Î:Û‘+¡ÓrO<=ðô@{ïRðXÁc™çs dgÀÀ@:Èêðìr³ËÍ.÷²{¾PêB© ¥Rß󤳓ÎN:ûj}>ÓíL·3ÝÒ>âºÕr¿—û½Üï¶{ðMðMðMÏM¯zØüææ77¿i¯ÏGÿ8úÇÑ?ÌPcŽì¹þ{õß«ÿÞ«í9õë;Íðéȵ!¤¼yõËî_„ǶûO8~^çyçu^m4ªm­¶µÚV{qµ¸rÚ‘ý ß8|ãð)opr;’ëH®#¹Ò!RuàJnó|®€ìŒ˜HY=Ny-¯ãûLù,X{¶-Þ¶xÛâWësêWL:¾ÏÔŸXœòÄôªÑsñSÛw 6$lˆyžšúžCÚ‡´iÿjï’ò–Ñæütd‡ÚHK„/L>0ùÀäöö¯T *_vŸ"êΈªË8>Zøh!0`~ÀÀ@:ÈêðÅK/]¼”ýOÍܱýî¿ßý÷»ÿ¦ïÍÑlx³á͆۾cÏg=Ÿõ|–UàM…6ÚTÈ<•œ¾û̵1õÇ©?Ný1-GqrÆÉ'gØÛÿ§Cžyú²ûŸðö„·'¼ý/Ï-¾Wà^{—·]Þvy›ÙBÐ]mvµÙÕ†0?`` dõ8É5É5É5#ú™–=§×8tÖyXçaöö/!_B¾Œ¨ŠîÝ=º{ؾcà–À-[ÌPcŽìY„ Výtd‡ÚÐOè'ôi¯“Zýjõ«ÕÏvÿe²FYãe÷ïíéíéíi»·o}xëÃ[æ™ÛÅUìªl¨²¡ŠûE÷‹î €ó#&ÒAV€Ívìé»{ÁUfýÉ*gðÊÚ+k¯¬µê§#;ÔF\θœq9ÓþILù¤ðùVaGÔŽ¨Žì'åuÕ¶DÔúzâOñôbq—‚Èú‘õ#ëÿÐë‡^?ôOnѱEÇKº•t+éæø4Ûü dOÀÀ@: 6s\©¥þ•ú›'ä×>f•3øÂó…ç O«~:²Cmܹ{çî»iÿ$ŠÅÛ{š:2þ#¿ùÝÈïl÷ ¢ÖÇ£z<*½ffQ½{Çî»w¬x’qµƒÚAõMðMðMȈ3h¶ùÈž€ €€t@læ¸ø€âŠ0OÈWún黥ïrÍðéȵ‘79orÞôšëkµÆší»TœVqZÅi©¿¸!|ù5å×”_c»‡àƒÁƒ¦½‡Â„?ÿfÃ7¾ÙP*_©|¥ò¥×Ùqžî<Ýy:0`~ÀÀ@: 6s|X8¼pxápó„|¢?œA3|:¨—µèëE_/úÚÞ{íû|ßçû>·÷³ÚíŠvÅÞÏv:ìtØ)-}V¨ÔöfÇ]lt±ÑukÕ­U·Vßå}—÷]¾±ÌÆ2Ë<\ópÍÃ5À€ù逨ÌñaY£¬QÖ°·‡G -|´0{ÖXV9ƒ·Ojãe]p}Àu»×Lí0¶ÃØöÞ÷‹ _Tø¢‚íOÕQsDÍi镸ɳã×s‹ë•»{t÷èî1ï̼3óÎH¾’¯äû×ñ¿Žÿu<õÑ#̘HÀfŽýt?ÝO··ñdÓìYcYå fÜ>©WÓÆ¥KÛ÷òªíUÛ«¶íû>kñ¬Å³¥s”ÎQ:‡íO}¿ëû]ßïzµÞ>íò´ËÓ.VXXa¡½(p¯À½÷z¾Óóžïß~|ûñíæ™K €€Œ@L ¤`3LJ-:¶èØ¢£½=ô9èsÐ'{ÖXV9ƒ·OjãÕ¬<µòÔÊS©ßÌ9åëwŒß1~ÇxÛWŠ*U(*¾e|Ëø–¯ÖÛÕ;Wï\½3õè7bPÄ ˆAæ¬g` #逨Ìñáøj㫯fo›m~´ùQö¬±¬r3nŸÔÆ«¹s÷ÎÝ;wí=AyÂÛÞžðvÊwÿlóg›?ÛlûÊ®wý¸ëÇiéI» í.´»`ïØ§þ8õÇ©?šy´ €€Œ@L ¤`3LJ[Nn9¹å¤½=tù¬Ëg]>K߸åò¶ËÛ.oO6µÝ´+Úí gÐ Ÿj#-:ë<¬ó0ÛwôMðMðMNœ–8-qšK—..]l_¹mñ¶ÅÛ§¥ŸUc«ÆVµwìGrÉu$WzCܽ¸{q÷€ó#&Ò°™ãÃ[Þ·¼oy‹›ÍÚîÁé’Ó%§Ké·Ø»®´@Î9 äýá šáÓAm¤Å†*ªl¨bï}í>¶ûØîÍon~só›¶ÿµÜïå~/÷ûó:Ïë<¯“–> -Z4Ô^„?þzŽ—0`` ›?>üôü§ç?=oo?ý'õŸÔRÚû|'Çwr¸y¹y¹yÙ¾Kc­±ÖX3Û8gç˜ÚH‹G -|´°ø€âа}ßo6|³á› öz•2OKJç(£t{ïrô£ý#íGz£ë®7ºVî\¹såÎÀ€ùé õ/ñ“\“\“\ÓwŸ™»·×³çôÝÿÞ±{Çî›úÞV\[qmŵWëç³ÏZsûÌí3ó;¬áŸ ÿløgz½û×E¿.úuQ{ï%nîmì1ö{^vÏ;»ïì¾³{¥þ•úWêïøÑ]}môµÑYåÜVEL ¤{φo¾qøFqØ'AO‚ž]Y{e핵©ï“8#öÛí¶Ûm7G‚ÿÕþ«ýW‡ 6äD؉°a÷£îGݺY÷fÝ›u÷„ì Ù2Ëo–ß,¿’n%ÝJÚÝgÁcJ¥’ïþÂó…ç ÏÅzëQ,}Ï—¸Úûu¬ûcø›õm×·]ßÖñ=üö÷oÿö·™Ï`=ÀÀ@:Hœ–8-qpÖ €mÏ]±ÑÅFýjA‘¸oïC½õ>$n8œ¾g0£?qÔFZˆÛWXXaa……öz"n¿œ½Ê›œ79oÊ ýÕÎW™£eŽ–9º¤á’†KŠg3ÿŸ>çMΛœ·íó¶ÏÛ>'̉˜H7≒býÁ”¦|0¥RÿJý+õ/òS‘ŸŠüäÙܳ¹gó&«š¬j²ªç;=ßéù#f6âI®)¯V ¨P9 ²ˆµÄsgÅS]}’}’}’»5íÖ´[Ó…K.]¸ôïпCÿ%¶±ê'ŽÚpœŽôAøƒðá¢'½nöºÙë¦o‚o‚o‚8Gâ|‰s'Σ¸…uÄ ˆAƒz<êñ¨Ô"åkꕨW¢^‰Ò9Jç(C< 9pKà–À-Ÿ7ù¼ÉçMÄÕä|Z€×‰˜È@\ÑeÕóÈ9åGmXé³ÌlX 00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €Xð?Œh‡·Ý™´íɤmo&mû2iÛÿÚ·˜LÚdÒv0“¶C™´ΤíH&m±™´ͤíX&mÇ_ûöG&m'2i;™IÛ©LÚNgÒv&“¶³™´Ë¤í|&m2iû3“¶¸×¾]̤í¯LÚ.eÒv9“¶+™´ýIÛÕLÚ®eÒv=“¶™´ÅgÒv3“¶[¯}»I[B&mw2i»›IÛ½LÚîgÒö “¶‡™´=ʤ-1“¶Ç™´=ɤíi&mÏ^ûö<“¶™´%eÒ–œ9[TŽLÚrfÒ–+“¶72j#Ë"‹°l,p‚d– €ãÛÄ·‰ocDeØIÏ$æiÄ<ØüO#Î>Ï!Î>O Î>Ï>žI[öyöpöyêpöyÞpöyÒ0϶ÞÓ…3ëÃÙçéÂò}仺î꺫ëæ7±QGFuäÒ¦K›.mâ¬ÁâJ$—H.±gÁž{æ ̘ӜŸJÑ7ÑOÑgNëXÖ±ÀË À0'`‹{Üîq»ÇíÂÜÂÜÂÜÒ²¤kµ ü×G“ZÕúÁ#nUbÓ2¾c·ŸiRí‰6¥]¹u¹Ý5ïŠn›ÓÿÜúfÍÎWuŸ=¼^iÏe=yû¸wtÍSèŠSò«½oŸ}öxyÖåY—gq6a É É Q‹¢E-*{®ì¹²ç^íÓáîýþ¦"ÅNô /¹öCuÒÎr? ­àq®÷Þ•~•öçš3ž¿ˆ?‹¿¯¯?ûjï+ú,ú/Ž…S À:–u,˜aŽ-Ú£‚‹×÷„³»í«4·÷’±GÞo>ô«99}O™Ö§Êæñ~KbÅŸÅߋ׈׋ŸeŽ€—E s"¶¢ÇÉ“GìŒØ±óe—k_õk_¾@Tîö…kì|¾¸ùÀIÉÉAAMš¤W{by—œunÍ«Vš×¨’å o,8Úñ¾M-:µèÔ¢‰!‰!‰!œddEq¥ãJÇ•<x(ðã•ïyºa›bëºö›?ßÃkÄSc[•î“&<éïŸ^­Ø§Ø¿x¯—ømßC‡‰ãâü°Že ¯gŽuÙà·¡ÞÞ#_ YS3tÞ£V¬ˆ‰I¯VìSì_¼s,ØC s"¶”[®·\o¹v8Ûál‡³Ž,È:Ý­ìWjÚO?ö­µ4}ƒ^ÇÛø‘½¢¬šæ]çóJO_Jî/²¿Èþ"œq˜_’W’W’WèÆÐ¡ú]Ýï]½ævuïäQhRÏ“Kü+§ï×dµ=O.ñ¯,ú úãHÏÅ1Šãå¼°Že é5Çt.¶¬Doï΃¿ ñ ðY1"f~úƽµ>+FÄÌ}ýaŽæDlÑÕ£«GWwdáT-_ùI·éqªþ¨Ì }íµ‰Ûú¶oÜoMݦK}£9–! B$MIš’4…€ÙÄwŠïß)`XÀ°€aÿã&x}êñêµþ©×‰I]OÎ÷÷È„/Ëìµ]OÎ÷÷}ýLýXÄñŠc§XDzŽ€W›c‹N¬0Å»­_ñ‰ëWÎð^1$&$B_{­÷Š!1!¢o¢ŸÌ±²3`˜pV–”œ”œ´è袣‹Ž¦¾Ìj[¶Â-·oÿjÓ½k½¹f }íµÏú÷ÛXgö znžKS?º–]ZviÙåAÀƒ€Ì ötìéØÓŽüCïù+NUþÛD_“9Њ>;rtb¨Ö±¬cÀñ9Ö×Ó,,¯‰â^ZÑgæXÙ0̉8KJ:žt<éø(u”:JM}Qµ}hëϪý•UB_{m\áO¦ÕË_õ¾ë gO»Ï>Yí²ÚeõZ7jݨE… ³HK¥¥Òÿø•…Æë^.öuÕ£ù«•ÈZ_™¥lEÿű¤~¼bL¨ Ö±¬c0ÇÚS®y»'}»Ô¹¶ôóÝݳVô›²ýÇ û †9g1IC’†$ РРб·„ªu«Ô[Ŕ޽š5è”գߔmÒý 7›äž~ªî;•ÿÇ"òjðÕà«ÁT ^§ð\á¹Âs¥^™Ÿ}»&ÐsvÖý²Ì^+Ž+õcãC°Že €96¥*³Çí]Ò$놾öZq\̱²`˜pÖ‘‘1äþûCîÛ}¾ï—ÕœÊOy^»®ÀÏ­ýÚ¶Û¯·ž[íyê‹È[~·ünùQ8Èh©ÿ&o¡œEîè9|£ì›`½¯ÌR¶âÅñò¾¬cYÇ`޵7«X[¸P‘i5 Ìm»Mµ^ô›²Ç(Ž—9€UÜ€³ŒY­gµžÕÚÞRiN»zÃ_™¥lű§þõ™Cj €u,ëXÙaŽñg‹/FõÊ>ÑïÿyBðÀÅ£z¥3ÇÈŠ€aNÀ¦vÑã¢ÇE{K¢ Ukõ蛣ߔíÞæ~©¹ÙÞX-ß·|ßò}TÒ.É+É+É+`XÀ°€aön”—Ý®–Hý* {7Óc(Æ“º`Ë:€UçXqäìvÕoêWÛ»)4s,€¬ˆæDlR/:¿èü¢³×l¯Ù^³m§[Tìâv0)¢ÿÀçD¿)Ûõí›]¬ZÎ^ |îÞ¹{çîQ]H‹Ð¡C7Ú«±ìðŒ´W{¦š½ãI]°Že ÀªslvxÖï«=˜9€5§—m·mÜöÏ¿§S×M]7u] $|Àȼ`“ZK}–&õIê“Ô‡ÃËŠ+W:®´½Oågß® ôœÍ×döZ1>öFOŒ-5À:–u,+ͱUfÛ»¤ q¯½VŒs,€¬Ž8í^´{ÑîE;{ÿ"¿`Ó¹¾úúêë«íúÁMo¨uˆ7õ6q[ßöûÙÃõaëÃÖ‡Qix 7“o&ß <x(ðmE5^?ðré0¾s¤ce;†blÅ8Sn¬cYÇÈêsl¹æížôíBÄëH+ÆŠ9@ÖEœv)¯ýMa°ã€Mg@É%”´-ëуª·¬pp×ñ6æøGÏk·7Maºë¾lÛ{äû%ݯَç¢<‹ò,ÊCÕá(‘\"¹DÙseÏ•=g[E½ç¯8Uùo¾{ÙVŒ›íxŠqcNé°Že +α¾Æ˜fay‰u_¶ãÆ +"N_„Áé…ØDŽ8vàXÛÂ]]¥i-ßéD¹¯Öþ=½Ç­úߨ›û=ö{ìGíÁž= ö,سÀ¶rÜ'úÔ/â?éÓ“Ëü+óEØK·Ÿž\æ_YŒ¡íØŠ1§öXDzŽµæØ¢+Lñnà»bTL(îK·¾+FÅ„Š1d޵gÂà´ 6…ÛGo½}Ô^±>iÑ÷Fc(7-í—óýz–w¶ÛÍ•7WÞ\™ „=9sæ´­œ ^ëŸzà+°´´b ÿå?9sæ¤öXDz޵æX¿âׯœO”›–VŒ!s,€¬…øõ ~YÀ¦ðãƒüøÀ¶4C›5è½”ø6ííÅcÝ½ê ·a:u<ê$?M~šü”:DJWs_Í}5÷¿ü>ï÷®ÞNs'Õ=ÙÝ¿$_~¥©­{²»I1ž¶ã,ÆŸ:`Ë:€ùçØ‚ÎÅ–•èྡྷYLgBÜ4µî+šÅtãÉ « ~ýƒAœÙ%J>äRÏ¥žK=Ûr¼µøÓïºߦW[Ͻthñ­¶ã|iÐ¥A—QŒHiaüÂø…ñ¶ÕÒÕu¾“G!¾öJ¯VŒ§í8‹ñ§XDzŽ`þ9Ö»óàoB<‰oÓ«ãÉ « Î\„Áög²+y¯ä½’×¶øZÍ+ÿØõÑëH¿ßÕ`¤÷;¢g[uUê>KËÞöòÑZ{z¿žûsQŦ>X8Ü©Rާó,úéyï+îÑ{Çvjîz=G·}këñÕîØŽvX©°Ra¥¨FüãNòä;%¦—˜^bºmµŒó8 û9gÜI}.­v÷ü¸f—Ne]¹ÅyÄÎQ¨xQ×A.»Ê.øÀ«NÃçÅöµh=rL™Ã_:²ßïüËî¿ÿ­õï{mª‘ë£ý®½Jx—«^¨¸“VÈÈÿHì¿úœrºÖêÿߟôúôõ|q&ÆÓvœÅø‹sAI˜;®æ?ýÜZÍûYÙ9N×\X4©èo®Ÿ:-­G•Ú Î_¶ÐF5*óè«7äôÛÎ:€•æØÚÃfkŸfDZ'fiþè«Ëw}þåÓUüÛ4è]øëÒ>åˈ+]tóÛÞ>ÃÝnüÙò‹*kÇ;/ÙðjïR5~bÑÇKy7¼ðáÂBJŽ)s·@ù‚ã -ív­Œ_© [¶=]uÎ×÷—w}=°OæXY°y§DœÉÖÔ]SwM]Û‚ÛáÒzµÿÛ¯5Δ¯Iþ:ÍJM/þéWÛÛÔëøW:] gþù›8òûfCís•Veô1Þ¯Ýg]£>¶ïîUΫœW9ªB|p|p|°mxžnئغ ù )ßɼþù¤^ß–\–ÿ% h²a†·»#ïòÁÒ¡{Üo䟜ÿt~GöüA¥/“Ü×óõ™[Û>ˆsAM˜t+ž‰Ûsýc¯?J¬(Ÿ£P}Ç×±Ãó¨ûF°ŽÕçX— ~þ_{wUõø<ýôéó1[†}ßedP‘EALqGSÄ\!MEp_rÏÓ„I\pIÓD­\¨ü¤¹‹ši¦_õcfIF©¹&üþ8ó}ü¦ÇuøÉÀËë9Ç}ðÀ»ž9s<Ü÷œs£Û# ýŽÕÇÖÏ»_oÚ×ðÖÕõµØŒ„„(UáË%/rï+½¿qZ¥Z¥:jÈþ½?í=ì ëÚ‰EÙÒÆ?`y" &®c3;fvÌ”V²ò‰É11sk3úõe«™¾Ã¥gRݽmìÖárˆ§îâS½;EågĶhf¿og^-®ˆŸÅïu×ü¸M|xH’±¯7|•Ë »"é•ÞAõ­$‚IDAT)¸Sp§€:‰âÞŽ‹{?aÒ¼!¹¹>jcÜ6ê´nÂ7ž1ºÇrzØ´å§ f†{¿4´¸¨{@{128>mÌÏ3­û8üÛ¼©îú“z–t )Õ·ÿ$ç…¯6ýJw}¿«­WÛõêž7#Óë§Ôˆ'û?‹ßë®™ô^ŽSÓkFŸ@oHn®ZZæâ½ Nȳ;êúçç7‰1¾âXnÎê3V_u˜1:Ñ#,Ù¦ð¿]ÉW-ô^„²6QŽùæctÏmºÏ™)¡{éÇ0Ý66`ìÈ«Ùkk6øŒ¼²rÊ‘»³W›—j³Ôì€yœÛ‰ö ÃÔ‹†;¾­ m8kևѓÆFçž#w¥!nÕGQßÑæwþfLJŒ‰Üæ;=9mÒ¼à3S6,*~¿ÿËU»Ž8=7ÎèAy5{-m,ù#–¿ú×™Ç7~ÜXZ¥lÒÍšW>HÒ.ÎñçÏC=ÓÆÿ£‘ÔÁ;¦=wôÉ ¾ìô/›_õUqÃ÷ü¨ãâ¼×ÚN°òÛ¦® ìä±BÌú¼¾¥Ùmtí·×ÚN°òû1^œ· fvÀ&é™”V”V”VP3‘µ.k]Öº'ŒQظgDЯ5{ÃèͲÒÜÐgmóœo›ÿ$Žâþl³TëD +~#ÝJü^w+}kNk{ú—ÐqögÜ/Zh¯HL.-ÆëÓâzï¾NÚψØVìÇx7ÎDÙJÏD¼ÔI¹õcÅ2¨8þ”ƒvl–¯6Ã즈ǔHû¨º¿±XgÝÓ,†~,e´±-U ;mÿ²fƒÏf)™§üe†:õ¹szŠ•†»â7^ËzT ùXül=ij±Ï7zæ^Ër²LwÚëö…vÜpqÛE=Jĸa½c‹³Û6ì¡5Pl+öc¼X”-m,ù#6-õ' &®37bnÄ܈‘V£QšÞ*ãÅŸ«Îµ+ 7¼Z¾çíK»X…nÕþIÚlœêÆ/‘ƒ_ls¢êýè®ÿôSO²<¹³÷ñVyÒ+]yn幕稙ðÈñÈñÈ‘Öi¿ŸqÝR³7Œ~·ÌÊ·B÷(ý¶ååûÜÒw#L â™jÒuLûà ßl±ŽÙ‹`ÕG¬&‡˜W½Ýõ«¾1WSKQ¶Ò2ïu@nýØ ‡;-µ˜©úN6jôçæs ïÇŠ ôoºd°¯-ýX¦ÛÆF¬X}8¼fƒOï^½^ºLµîwþÉCcÈ”Î- ”öàÿþÿÑÀÒ5ÇØç ЮyؼEÃðŒEk¾|µêqúë>Îø©FB¬X}8œ6€ü›.e‡ÁÀuæèª£«Ž®’VÏÆg†L6^üùÍŽ>#¦¾÷¯èþ¥Ë§ €G•i¦{û‹­^ÝêSáRbøt˜yAsÞ{°ñJ üPò€˜镦{¦{¦{R3ë³GGytDZ7Üšm¶¶7Æ £„òYG½“ ŸÌù/ÏZ;ýñnõŸb+«,»qf¤··tŸ+Ô.¾‘ƒ»á·ÀtÏ*:pp—ýÆž@O”³´üÅûBýO?6þû±[=´!k³›¯l±ß\³Q+ýXòocm4qP4FðéVÑþýÄ[b”­ó€HŸø–†D­-wä¾Vœ,=Oéšî?vñZ¡öTã»´Ë6<ÊýKkÙé™~ýŒ=´(gÚXrF¬ Ê ƒ €ë̆k®m¸ö„‰ˆK›·:[KOÿ­2ˆ­nÜnµç`Ç×µ&é[ÖlŽáÛ~0(6§Y7±m‡1^Nÿ6Þ5>V§½·Zz¥AÇ‚Ž£fÖë&>¶<¶<ö ,};h›Ë:cÜ*#Zy÷mç<<òì€. †ßØÒ=,žµ&ÝÖ×6rºí.ñû„ɳþá­©F8Ýhf¸·vr'¿QÑçí}ãL”óž‰[[KýO?6xE§d‡EÚ~f£™áÞ/éþëÔþ§ú†úŽi¼»WPñ›ÿ<Ù@³£ºû§ @þm¬{yÇù¯6vüiøÒ7að·OêŽÖëÚ/ òß+þÕ÷bʼ)ÿ¬ÆQ6'?œÜAûÌ`ÇàÿFÜ7öu‰r¦ gÀ üß_a0p™»a¤UäzÄÀÀÖE¦7Yl{ÊjØê“³Š4Õˆ±·þØ©§FûÝCŸñvoY3öDÐ6‹Í/ší}Òõ¢þºôÉ¥O.}"­ÝwÏøÜëcß6Ò¯`Èš§;´±×ŽŽ^ìàò‹t[‡öZÓ\Úð3é³ø¤ö»½Ž^Í-í=ž(giù‹÷…ú Ÿ~¬k ÿ¶VYâ(ý?È÷õZ\Ô= }àÀöãíϘw±x¤Ò> Hu׬PÕO¬ßú”M®-&^92;dcÕû§ @þm¬ïÂä‚I'k?èmþZöo›K5§gÞZ;SLæìîßÁ»ÏfÝsó»3äÁô }°ežó«îãµ³8¤džZ0¼Ï'Ël=_;õ½å—‰¿{"hQδ±äŒXÙL7 &®3)))ÒjqkAJZl¤)ÀI–m͵O(9ðAÏF-»¾­X_;ùL„å}‹çG6r=aß’ºJÓJÓJÓ¤µ¢_V^Ÿ µW½œîsfJèÞØðônÎÚÉŸŸ±-2Û6æÍ=.A—¤ëëN =Ämý‹jkÃ%ÖÛZ÷qø·yScß8åü„yÒJÓJÓ¨ŸòéÇÚlul¾T%æ`Zžë}³t󡪙†ßIݼ®­ÿoúöO?€üÛØfñ™o.hPû°Õ÷žMVHÏÇl¦e¡ÕõóÃRg_õÌ#¬oØþ(¶ ~óÄò«†]¬/¶5Ï·}É~€±`Qδ±äŒ¸þ0­0øù|$ ÜÛŸÚ§íPS €-N›SÝ[YßgmÄ6÷ë‹mu÷c¼+MP7Ýìò õ †H>´Jãw¿n£_ñÄߦ_µjb¯ý¤h¬æ™9&?^µÐÿy}·´Ì.X«´ÏfÑí³ÅÍ&~D±¾öÏHýïE9SßäßýË_çMzÝsèINÉ9ÑR³0«õ.MkïKïmúŒ“¥÷!Ë!Ú±¹…ÞÏX¶žÔ³¤KH)ýX¦(èÜÄyù)ò €ÿrn7'žÌÿBïs|›÷±h(Ö ³óû† †]¬¯=ŒÎ~Œw½¢œ©oS·½h{Ñö"àzíA×Ô_Úî5õ) M깫å†o»ÿ£[ZÚŠm½>³u±¼SÝ£WwÙ§³_/×ê ñú¥µçý7Ô~è;ªAq‡Àš‹Ýº8öÔ=÷÷­û m·é÷ªoféN—ö¯–«~t1&ClkŸìne1ÝØ7ÎD9SßäßÕ¡+Fg}²ëÏ vU÷¥}K}ëÓ Á[¦h Jëꉿ‘³W$ú®EÅB‹í£?[úþûŽÁa]Û$ëž¡¾Ñ½ºS@‡,˜z{eßjŒ~ö͈åÞb[Ëp§ Wí=^ã]©(gêÀÔ=ÜôpÓÃMÀõšéŽŽvt[d¿UlõYqçA¡m ßV<3Xl«»FCjsðÔÒÓž¡Ý:¨²x¨Ì÷XîUÝÕ½­ÖÙ~bgúÔþ§ú†úrË{zó›l±¦x6[5&²Û–—ïsKl«»FNÐusVŸ±úJ¥kÉÔn^] ï+ꞡߨèóvôc˜¢º¬w\¯J¥R©œÚ·ü2î¸îyJ×´sö_ª¹$þµÙž¬»ïýX ™S2O-.¶ÕÝ#€¨Z=,æ@¯Ï¯Ä®‰]»J+é>¸wŽïV×b«Vq  ßv¹gÛûÚ@+q¦_cבÕ=zM=˜šYŸ_…æ…æ…æÒZQ;Ï5úsóÀ9îÏ6Kµ~AWLX÷Ü3ÜvˆÉñª{ë*Ø¿ãRí§©gû9^ÞÇ ß¶Ç™·úy¯Û¯è”ì°ÈØ7Îô=;šÉ‹/^¼xñâ%·~¬ÿáÝjq”´››©7¾­Ñ+¶µ.q8iþ„ð˜~,/^¼ä߯ÖÕ3€ ‰}#tN·ÊlÿíqòRÏL½gøþýÒRc§†‹mFü³ýncÀúžLÍäÅ‹—|^Ò6*ï¹¼çòž£d”÷Ú1qÇÄÓ¦7Lohxô+Ö¯GÏÆÜ s7Ì}Â$Q×#¶.2Å8ëX¨Æ;_l5ÀN=Õí÷íï£örÓ>xôBç{Ÿ0vl³Øü¢ÙÞ']/ê¯KŸ\úäÒ'ÒZÑ}÷ŒÏ½þ0Þ #1]žx š8¢øyÈûëϨ#tÇITwÏÑ«“\~Û†îí~ɱÐðmC»u·qÔ>;­µuò®æÆ¾q&Ê™O%€üû±-F÷Êqš£ýëïöÒY¾[ ßvpðŠ‘~£Ä¶®Õ/ZåKû™ôcÈ¿õ]˜\0éd͆á+‡íúKØìwgȃé†ïAÓ~F«ÕŶæmW:8HZ˜N¹ýíÄï]Úµ~¶óuÃ÷ïb=ª³ŸØÖcTg¯þß;åL @Îô}I…’Qܾµþ­õo­7<ôë×~è«‹¸Îl¸¶áÚ†kÒjQZšØ¼ÕYS €·/íbªºÙ&ÏüÌöÞ:2=¶SÕ[ÝÞ—ò}ì ±¾Øvç”.‡ÂœwÕi¯Å­~ÂÔ=Ç‚Ž£fÖë¦<¶<¶g€vî±™–…VwZmË_½grÕ{nuõƒÐ¯[ŠõŶ“ÆFçž3ö˜fQδ±äŒXÿû›lè«‹¸Î]utÕÑUÒ*òñÙøÌɦߟº´mnÓ9vþVy†ïaÚƒpGŸ\íw'Óì.[?û0iH×¶•Æ»ÆòCÉb ž0 ß3Ý3Ý“šYŸ=:òèÈ£#Oø£. Ùfk{£<-̦ð¿]ÚÃÌT}§ ËLúbuà隣ðfYinè³_xŽ´¸£{EUoW6ÂÂýYݱÈâÉÄÆ¾q&Ê™?êäß_X´Ê²g¦ú8é½§¦× ûk–n>T5SlÕ÷ç÷Çù$Ò`Šm¬Í€&êƒÆ€UK͘Dž,˜z{eߪ·j™”Ó|Ç ËW¸j¿ãÝôÕméW¤pDÉ2Õþë–ûòÐTý´`Ý¥WIÏ÷ÒÒÄšVî®/xnŠlº\sp ±`Qδ±äŒX”úê"®37bnÄ܈‘V—QšÞ*S €õíaD“{¯„ÿ¸wûoó”óÜnýÎ]»ž Û3ìÕà=7ÿ%ün’dìÉŸOîì}¼Užô­kÌ[3;`Ó&ß®(­(­ f"k]Öº¬'Là6fãžA¿Öì £&©-ŽÙœUÕªõJÛŒáîã ÚÑLÕwª°ø´1?{Ì4öh ±e+=ñ^P'äÖÕ._>ûR˜**~à×. ﵊gôNqxWÈlCŽB?€œÛØ–ª…¶i¼qÀæù¶/Ù0¼µsö_ª¹f;ç÷  hExlЮ£T«TG›,Mj7r¿±GýjÇ4«vÚþ%m,ù#6-Ê}uױޙ3;fJ+SùÄ䘘¹¦‹å×ß&¬n1º_ ÿ·©MÛž²dµÍÜ׬·øy€zªÛ/>èÙ¨e—Ú¼ÆðU.7스Wz§àNÁê$Š{÷.î-­!}‡äæú¨kö†‘ÍV§ÁæKk'Ë×{­)󟢹ح‹cO‡öZ3ßc¹WuWüº·û%ÇÂ!në_T[×Î-3±e+½"ñ^P'äÖ}ÂôÎkW6÷ËãzEßÒBc5ÏÌÑýFà}ë>ͼÚÀ)\<ÙWwt¯áû§ @žmlÀØ‘W³×/ÕNæÜ«×+C—Ùîñ’j‘`ßË©›ÙV«ë-6ç›4ÛéüET玟¨Sߘ;§g”ªðå’—«;67xÂä·–þî|#êR§–yίº7ó¶˜b9IüìÒ®õ³¯‡¿ybùÕÚ‰~ÅR”-m,ù#–¿úúê"®ck#×F®”V¬]Ö„ý»®&‚Ö ƒ½cOø¬»¼Ý*e}lŠ´´Õ^j/µµBYVYVY–´žøÓÕn}mÞN2Þ²êÛmÆž(Oºe+-sñ^P'L¥kì~&ýXrkc6i6E·7vjÈ“zŸ~BfcKQ¶´±äXžêgè«‹¸Ž]{éÚK×^’V²Î9Þ÷îÖm¬¼åŽO»L ýMZÚù®ù®ù®ÔFhýVù[åoŽo;¾íø¶´¶Lö9úµÆV1°–¢<¥å,Ê_¼TIú±ôcȹmU”?ÏàÚ G•½åI ÀTË¡¯.àºv¼òxåq‡h‡h‡hiµ»¹tð{1η5µŒvw˳ÿTZÎW‡_~u8•º—-.[\ö„ ôœrÍ},¹áUc“æ9åšûXJËY”?õ€~,ýXòocúŒœíOp[c“?÷9;ÛŸ6€© ®[„¾úËÂò;Ëï,¿#­‚yb†,#¸}úå•ÓýÕÑc¤%ìááQù°òaåCê!t]ot½ÑõFÒ:có¾S€ù‘gû‡¹pÛë©–‘gû‡¹ˆò”–³(ê!ýXú±ä߯ZØÚ­pLŽr/ìPÒ‡øö©–î…Júˆò¤`*€k¡¯!€eá×S¿žúõ”¾Jù cê¶_â>ÍrT®f ÷¦çÚâ·Åo‹5úÄ5ˆk×@ZsÒm|¨þ–›_O³e(-[QæÔ=ú±ôc˜V«±Ÿ¾qU.!îÓ,EÒÆ0-ÀµƒÐ·º€edؤa“†M’VÐ5Á¯„½Mˆû÷–?¾=àfëÙú>ü÷5÷5÷5Ô=èspÑÁEIkŽûôÀÖÖa3Ÿ]æÇ-°j/Ÿ]æ'ÊPZ¶¢Ì©{ôcéÇ0­6Öfz“YÝ¢‚ Ç—äåV{T8¾$O”!m,ÓBl<„¾OƒXF.ÿò~}Uö¶eJ~l_Ýê.“Ç5sqÿIZžK/i¼¤1µÿÇJÇJGÏ ž=`Y»âsÅ犾Îд–§|R }ÅòP|Ï -·è+«•‡W^y˜…§W¡®PW¨£FGŽ-­i– ¬o™ œì}ô?n™‰re"-+Q†¢<©WôcéÇPjk¶ÎÊÒzN«MùÙ{úýŠreB @€!OÀ&`Ûîm»·éýNÜÂ?ZT§×çè·ô~b\«ËúÊgàÐC­‹˜?<ÚÙÿÿè"wJê”Ô)éNÔ¨;QT ÈAÕÏûÑ•œ[xÎïGÓºe&ÎÙ«ãù=ôcéÇ@uÛØ ½;ä¿dZѯ8gÚXõ0ä‰X!ö7ßß|sCºYYé¡/{Ïø±ë€s­ÇË-ô½·=µGÛ!k#_Y´ÏkÉ^”½({QŬŠY³¨›²Ä²Ä²Ä¨ÑQ££FW]“ݧ¶¶K´ñ¡úÛ}Ïæ†ùÈèfYß³¹a>âÜÄyV}-âzŵSèÇÒ€¿×ÆÚLo2+ ›Æ~úÆU¹Q…%Ù2 } 3J²Å¹‰ó¤PŸCž€å¦ÓM§›N=¿ïù}Ïï P÷Ó¸Î9:¸WPø²º }ËÆ Ú×fõœ€ˆ7|ª vÄúˆõkÞqÈ_…ºB]¡Î+Ê+Ê+2¤nÛ¼ï`¾°¯S®¹åŒg ÂüêàfÙÀ³a~âÄùræâÅõò¾Ð¥ 5ÕÆZØÚ­pLè3rv¶T`áØ’Ü:} Ç–äŠsçC 0ä‰X‰îWÞ¯¼_üyñçÅŸ«ªiT¦¦‡·Ù¾F=¬Z|þçÒ4ï¸5÷~»2©AÄÍœÐÖsÔã]¼­Š,&~noÙ¼eó–ͽì{Ù÷²y“aŠ.»]v»ìw<îxÜqÃk¾ÿw1]íÖ÷’›ë£ûpïöàþ5{›LìSì_Ëðs×"®‹÷€~,ýX¨6Öa“fStû€±#¯f¯m™—sw畚{Å>Åþűhc@`ȰÂÝO¸Ÿp?!ß9ß9ßYõ:/ò~àtwFçð|.¯¾÷ŠGФç»d‡>Ø3+Á«EÓ¯ÿ“ðA‹‘_ìïÖ ìÂÆ.†¸Ïíæ¿bàÝ€@÷ÞN-¯™Wþ½ã¦ K–2ì‡wx÷‡wy7¡å•å•åû–ì[²o‰çÏ žþÞ§Ã= Ùfkû¨omsY×}÷ŒÏ½þè—•×ÄçBò¡U¿û¯_Z{ÞƒøYü^¬#ÖÛþ½ãŠsç/®…·€~,ýXCk3 ‰ƒú {yÇù¯ö]˜\0éd³øÌ74:7q^~Jð–)š‚Rñ³ø½XG¬/¶¥€ê"†<×#wƒîÝ Z¹&rM¤JÆÆŸrüÉ«›¯n¾º™w çXéXéxpÑÁEÅ5ˆk×@žŸJqnâ<Å9óÖÐ¥ ´±´±@ y"®×N :5èÔ ¬®Y]³ºÖUg1~Vü¬øY;æí˜·cÞ½C÷Ý;Äû‚úìz£ë®7Z\¶¸lq™ãÛŽo;¾]ûŸJq\qâ|x_@?hcic@ŠòDŒÿõ¨òQ壋ç.ž»xnÍ´5ÓÖLK:t é@Mu£/F_Œ¾8ïÞ¼{óî=vôØÑcwOß=}÷4T­,«,«,«¸wqïâÞYë²Öe­óÈñÈñÈyúO¥ØØ§Ø¿8eú±@K €é"Æßô áAƒ„I’$í÷Ùï³ßçü£óÎ?¢d€ºupÎÁ9çì}°÷ÁÞâgÊôc€6–6€úƒ‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚‚âÿS‚”Tj!u %tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/timeout.png000066400000000000000000000700741431412030200250670ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷ÜoSIDATxÚíýy˜Žåÿþßà û eI !ÒÞÒ‚ÊÒ¢TD%Š¡’%R •µw‹½MeW’¤$û¾„Æ:–ùýq¿¿¿¯Ï÷6ÞÃXÆåñpŽ9Îóšë:ï×uÞ3ÆsÎóŠJNNNNNp–Ë Á 0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À! °vYØea—™ófΛ9oö”ÙSfOI¾3ùÎä;U€H{fgæìr³ËÍ.7«ñ¬Æ³¯®¸ºâêŠ*œ]¢’“““““€ô/ñPâ¡ÄC‹V/Z½hõ÷üpÏ÷Œ;4îиCKÖ-Y·d]š~<~?êý¨÷ïNº;é}jö©ÙçÚ+¯½òÚ+ ¿Wø½Âï©<ÀY©¨¨ÿ²ÕËV/[=ëƒYÌú`⤉“&Nú¦ö7µ¿©öÓ_•çªþêã¯>þêôáæØ›coŽm³³ÍÎ6;+«\¬r±L¿dú%Ó/î@ðÄÆÆÆÆÆÙ2!qBâ„ĸƒqãªgŠ€tdyÌò˜å1½'öžØ{âÈÚ#k¬ÞF˜3Îü9ó÷ŸÖZÿiwä¸#Ç92gËœ-s6÷àôÛµ×þ]ûÇ[|lñö{Úïi¿'}޳]R»¤vI­Š´*ÒªHÅXìÞƒ˜ôI À¶<ÓòLË3=z6ôlhjŽ©9¦æ8Þ3œ¿(Ë´è‰Õž)ø@îŸËŠ©–my¡NÙâ2_»sæÑ/f¹,C­¨‡3…n õÞýÂÁ  ý÷ã}9”[Vvç¨}›æÆníµkÀÏý·~»k‰àíox{ýëXÿÃèÑ9¢s¸§§ÎÞ¼{óîÍûþ§ïúþ§/6~±ñ‹Oì<7g¬´"×—W6.S>Çàb_|;ËÃy›ä¾$ÓY«œwc†üQKBcBWì’tÃáñ',³æ…Í›’,ì¿ì³Ýݾýóç5;Ø›¼×á½Ç{Ýfe›•mVöùRÏ—z¾Tþó˜ÿC÷àì%&}pìLØ™°3á•…¯,|eá‡u?¬ûaÝÔ|VáñÙsgžôä˜Ò‹ ήzC-¹»]ro®×Ï»ædj_ËCóçž·¥KâÎÑ«WõÙz÷˜¾«l{.U?`ßuGÔ“æNš;iîuË®[vÝ2wà¤9~ñøÅãßÿöýoßÿvê?µåø»šæ¿êîûª¬ÊSúÚše«åè50ªrÔ}'kh‹¯xkO®ož™;?!æk>Y¼þáý&åN®™šÏí:¹ë䮓Ûdm“µMÖÌ2WÈ\Á­8»€IŸÀœVß×ý¾î÷uëO«?­þ´Ôßmä™ ÿðЬK²å[žý•èšÏÀówg ÝüêÎûº¼0fÝÅsæoÍ»ëÎcßô¢¦5½èõB¯z½Pö)Ù§dŸâ¾œ˜Í6oؼá¡ëºþ¡ëgsöÎc×¶*wç©ÙîÕF7¬T¡kÉ2Ù¿=ýcÞØnk(éúÁ×uÿæ ýµqcßÔ|ÖïüøÎïThZ¡i…¦î;ÀÙBLú$à”;Ð÷@ß}ŸðùŸðýâï¿ø±~Ïí/ùOÍŸ ˆm½,ÃoQÓÏkY•e××ûz¿²ò÷Vë¾ù¢ìšžÛ»ûøé{¦ï™¾§ÜþrûËí7RoêGS?šúQ½öõÚ×kì#ÛL©_£@£'5Œ/¸ ßñ¯fÊ~^Åž1û63zÈw÷Uk?÷­oV­8öñÝGuÕ}Ôck[óØšP‹P‹P 3 =“> €8…¶¿íümçßÚíÖn·v[ÕyUçUS:²Ï¼«Ë_|ëCw]²"ߴС;CÓÿ«[’°ãé½åúvæWË2.n¹ã•½)®Nþ`Â>˜P/®^\½8³ EcBcBcúNï;½ïôW>yå“W>IéÀ;zÝP/æï7³<Ñïâ 6;ÿïÌߦÿ·¿WÒe‡ïî]qdÙ ¹{5ü$aÃc)Yó‰šOÔ|bHÖ!Y‡d=¯ÓyÎëdj¤O`Ò'0§Äª|«ò­ÊwÅ+\q ¥cn*’oZÎß>(xC±KnË7%ë³™ŠŸ½¯wÔð•¶fmÝvNß?¥tÌKϼôÌKÏ´íܶsÛÎfÀ‘_yøÊÃW¶ý­íomû$÷'¹?Iqïç^WªÓÍqWfÍýýÙûz—nZ›´wHíÑ6ü}ó–—â[ø7ò˜BÏz¾ÐóÓ[Lo1½ElîØÜ±¹Í€ôFLú”A 8¹–.]ºtéÒcG¿oþyUû¢ Çý~ËÀ2­Îöè7ìÞû‹m:ï‚ëë¼Q!Gî½™úg|(ò˜—z½Ôë¥^¯~õêW¯~:::d¶úêÐW‡¾ºÿ»û¿»ÿ»”¢ß는ݜãóO~žµRµ³=ú +Y pæ¬ÍOUñÕ'c)p”­¡×w_ß}}÷Rç•:¯ÔyÛfo›½m¶Ù¤†€“fÍè5£×Œ¾æšk®¹æš”Ž™ÒôÖ‘eF>|aÉù ^ŠNÊñ[–Ëþnpw¿+VלV¨c̘Ècz?ØûÁÞ¾9âÍoŽ0g€sYòÌä™É3[®m¹¶åÚ‰Å'Ÿx”_jûp£RËNü¾o¥21±/ç½+HÈ09CѨ_^ÙâÃ"÷™ûÂM%VEs À ”ÏS>Où<;w&îL4s€c³4'ABĆ ‹}[ìÛb)>…ñ—+j)¿ù’©¹¾ÈZç\¨Iò³ÉO$|îÅù½Ö4|Ñ?_l>ÊÖÐï~w𻃛4hÒ I³8×¼œýåì/gï—¹_æ~™#{߸÷ñ*E«µX÷…ü»ÎšÌºbá¡“j­êPãïó#{ËÖ*[«l­:þÐñ‡Ž™Êg*Ÿ©¼YpfÙšôÉ `Òäp‘ÃE¹«á] ïj˜Ò1 ίóB…ŒçNôõFÔÛQ_ß~å¡¢ ~V*)ÿQÖû¶iÙ¦e›–?wÿ¹ûÏÝÍ%àÜ1öë±_ý:¥è·÷kO~qÒ¹ý†ÝðÛåsÝñõ’·Z_v8²÷ωNüsâ3 ŸYøÌB³H‰€4yíÇ×~|íÇß[üÞâ÷‘½sšÝñaùÛŠ.ͱ<Ë•çh ‡²‡²ô¸©Ò¡¢ êµ/š7Ï?‘‡T³ú›ÕßܾtûÒíKÍ( ØþéûOßú¶¼·å½-ïìíÒ²yá‹4oUçp¾Ïå*]“ï²{r\÷Åůg.Õ?²wØãÃöøÿçð›Q@$0'h^¿yýæõëue¯+{%Üý²óÍSJ­*Õ?÷wYw¨UTæPóPÜÀ ×-ž³h¶ì}³dŒ<¦EÍ5[Ô m m mR1 xÌ80ãÀŒª­ª¶ªÚ*²÷îË«tÏsoû»·¿p‘Z…Uý­ÒÄÜŸôíÖŸˆì}$ï#yÉ»¾Áúë=D€³Þä/&1ù‹ð–Ú=G÷ÝstBÍ„š 5UæÄ€8nI—%]–tÙm/ßöòm/GövýºÂ ¯òLa¹ªÕ‘2ÍÍP*CÝ)OÞöy™Ï"{§n›ºm궉 '.œhcO €Þ^øö·î-´·ÐÞBG¶gØÕ=ÔîÝgŸÙQ|FèºP¹PNµ:ÒƒÍkµÎ7ûžïª~—g\dïqÄ=¡Vœ×;\ïp½&Í›4oÒ<ÜòÆ£o<úÆ£Åæ›SlŽ0øÄ€8n› l2°Id{±™9ÞÎ2¬íø2×̨J))Ð1ëE™{Ž.Qåà¥×FöÞ×è¾F÷5ÚýÝîïv§V@0¬ýrí—k¿ìö|·ç»=Ù;ã­ÁóÊ=–µV–Û2\¨VG‘-t^(Ã[3ÛßVlbdç¯/ÿúò¯/OÉ7%ß”|JÀÙèëû¾¾ïëûRêŸ0Çak‰­%¶–x©÷K½_êÙûÙ'Uÿ-5'C·¨ø¨·ÔêØnŸwa³˜äµ/Üs”uÒ>ðÁ€T †gW<»âÙ‘íϽ~ÝB7–yââDzݧJÇ–ãɬßdüí«w{í,}qdoã4n´:iuÒjµàìrýàë_?øÙAÏzvб§ž€ãÐçpŸÃ}G¶wø»ì%–/Þ#çÒó~U¥Ôë»ÿšÊ׉lïñu¯{|ÿ~üûñï«pöZÒxIã%§t›ÒmJ·ÈÞ¶ æŒU¥Ô«Ü¤âÜ\ùnžqå3¹–Eö~Vô³¢ŸU%Î.1“c&ÇLîÔ¨S£NV^·òº•× ƒÓN @ªlOØž°=a`ÂÀ„ ‘½m§—©\0³*¯c²VÈüvÇÃåîºpmdïUCV Y¥JÀÙëå|/ç{ù([‹îzð’‡Î{6ó ›Uéxõ)ÿä³oˆloÛ&¶MìÁþpðUàl$ >YÀ¤Êˆ#rŒÈÙþòœŠõ ×ËY?ÓÞŒžû{‚U*ºÀg‘í¯xuÀ«ö¯Ù¿fÿUÎ.›Ël.³¹ÌäᓇOÙ[«yÜØ¬ªtb.>|á‚óž®ûGågò¥†?%ü”ðS‚*p¶§…€ÿápýÃõ×ïrA— º\Ù{ÿª»/¸Z•Ò"¦læLÑ#[U½´Cþú‘½ÓnŸvû´ÛU 8»Œüpä‡#?ŒlwÈ31Åæg|=ÃŒ¨yª”[N`þ‡E_.úrÑ—‘í 6]|8oë˜ê™c¢?W¥´kÕ¾T÷üD¶¿™óÍœoæTàl‘üvòÛÉo¿\ëåZ/׊ì½sò¿åé{¦Æ¶ìÎuwì{Ûm?ÿþûì­ó¥cŠÜœõ» £Ïošiõ‘í ¿]øíÂoÿÝþïö·›085Àü#ÖŒX3â([·ÞX*¦Àõ9YŠ•ÎÑø¼®yÈrmôƒG¶ÿ¼ìçe?/Kì“Ø'±*éߊäÉ+’#ÛïÚX¥Nž9g[–qIúíYç e e|©Ù#m ¥sjÞ©y§æ56apJÀ¤(ùïä¿“ÿ~¯ì{eß+Ù[~EÌÄl%T餹 t^(S§yå:Êš¹ùƒçž?X‘€ôï›§¾yê›§"ÛyàÎóuPŸ“ë–?®®sadûàƒW ^¡>œ;„ÁG¢ÍÛ6oÛ¼-²½^ó¢9ó,Ž®–a@ÔU:¹nmWð…˜Ž‘íã^÷Ò¸—ÔHÿ†fšuhÖÈö+~º´döhõ9¹ò|›kTtÜùÄìŽþàÈöù•æWš_)馤›’nR%Î5Â`0)úcÌcþÙ~÷}Ejçm®>§BádzÈüxdûðO‡:üÓÐþÐþÐ~UÒ§¤éIÓ“¦ÿ“éŸLÿd:²½È}ùʼ,Û¦ó^ÏØQ•N…‡¿¬sM¾Ú‘ík¦¬™²fŠúp.;7Ã`0)šÙbf‹™-"Û+l‰}.Û{égœ›;ï­œôÅkýþ(µþç{ßþ©Æ?;¯\=aÈï£ ýÌ/]ʶþ²ã‚©·Mûæö?ÇõËÿ×® ]â‹î¿÷`:]»œaSÔQ£®ÿþ‚—ræ8²ýàŒƒ3ÎØÛ~oû½íÍL }Úüîæw7¿ÙÞ ã-¯žuzùï—>½»t³/m\š¡äŒçw,0èŽ2¿t¹jáCU®èzÍà±k:ÄÝ™1½~ï¨\­âäܱ‘í‹ú-ê·¨Ÿ™ açN, E?–û±Üå"Ûóݵz¦Ìéa„Ó6l^µsß5&Žù£Öë//zi}èë®Hø{EÅĬû‹ïït¸Rr £öVLÊ1¯î¶‡vx9é÷ñëêßùyÝù‹ÖÍÚÝeÿGé³ò·f,X?w³Èö-wn¹sËf&>­h±¢ÅŠ£üÚе”-˜#]ÿòÊm㟼ñ¯ÍæÎ¼?~ÎÖ: óÖÛßéÀEÉu–WY—yßÖ·—޼©Ñµ¾bᔿF¯\¹§mz‰g/úἌ‘íóÍk4¯‘™ ‘‚ €HÑﱿÇþþVE• =ª–9[†ªšÙ±íq°ä¡Ñ¾=û¦å}w®=ðáùÞ=¯u¦ _^R±Iá†ß»eh™ófŒ¬W®í—ën^Yz_»Í—å(Ø-KÏ ó£Æ‡ÏP¾Ö¸Ë~/›>+_®xlÛlGÙêyý¢õ‹Ö/23ôiéÞ¥{—îl/öÐ…EÎ땞G~ éÁw“¿~üêúc t[¥Ç¡K¿öWס—¼õÀyw4½ SÔŽÐw¡kþ½/!öàEq¶l¹¨ir‘äžÉo§ŸñÇæÌÕ(ã?‘íó2ÌË0ÏÿÀÿ¼0Ø·ŽÃU9ó6Ï1=”1Š:³#ù¥îÖ‡vÜ8hïn‰ZzbÜŸÕ®/}ù‹¥ŒX;¦V«ï\¼¯l˜"ÙfWÉ^ s®Êýòÿµkc—ðšàðòNËr_t:}åEy²]¹Hdûúmë·­ßféÓòË—_¾üòÈö¼ïä~=ºRús†?2\úø?Åz>[ªH·oZÅ™Þà§Îÿ©{gÁ› åùtؾIŸþÛóýª;•8ÿÈÏÊ“xûÔ_®M?¯"ó—Ñ2å¿›¶_Ø~¡ÀqF,à8{%gç,ýÓÃHÎë™q~Ôø‡–^òT¾‹:ö)wi¡¹× ˜tÿSâã7¾æšðßGn™óØÃË×·l«¼ÿ“ƒ¯ÇÆŽùóÏé­Î¹ÛdžýBdûæ¶›ÛnnkéÓºåë–¯[ÙžõÖ,U3HŸc¾+©ò;yòÔ[Ùé%kþŸïß~ûÿ| \oêÍ=òn=ò³nhXþÓœ—§£—Ñ2tW(¾bù¿hØûÓÞŸöþdfÀ‰9{Ãàè3U²ØØØØØXSàì’÷û,¢o Å…B¡3üôÜk_½à³œ½® ]ÊyaèÅÐK¡Ðký…Ö§xüáòɉÉ;ù|Cž„¤Ð€P(4%=×ù¼ÉWFM …BÙC·ÙÞ¥t—Ò]Jw u u1³Fô®Œ¢Ö§Ï±ÝŸÿŽòÝòaüóß^RùØGŽz¢ÛœKsÝûv—ëþÙ¹¬ÊºÌû¶ÆÆÞvÛÏŽ ŒÏ¬| b;eʾeVü’Žl÷?±§S휵sÖÎРņ|í ¢9¡9¡9©?<WRqHÅ!5C5C§+¶€ã¹V†{3<ž>Ƕ*¡Þ#•ÞûñüMìh0,˲[¶ÜýRÉkW5~uÚðÊßùŸºóu½fAíµÒ3<Úõ¦ùCT¨¥¡*ésl%~/tS–å©9òÒ‹´?ïåðÇ[ÚÄ78°!½½–óÞȼ!j‚ùéÍ­É·&ßš|Z¢TtR/iâáQ‡ßI?ãù­ø¶'wwwŽ©ÿ®R|íç£çg»ûЋ–<Ó.Û/¬êôÖþÅ£6n™Ò{}¦„aç?oR¦ÿܽ¬È y^Lÿu>üN¨`òÓæ É›’K†ÒéFÄù>‰Ï´.5GluþêÌß§ç:ï{6éÂäÚæ¤7ßE}õ]Ôé¼âÛzBâ„Ä ‰n9@zößíËŽ°í–ý™ÎHc›û¿õŸ©ûìÔ,wÙßépùä:—;%Ë õ¦^\!凌VäéŸý¶ÒÝsOκ­ÈEÙ¯Í2?úò ?FÅ,»sç•{ÿ"´&´ýåô\ù}5K®Úòro¾¦ùšæk'öÊéN÷¾Ýûvï;»ë쮳»Ù~0Ç¡MÉ…¢CCQ+ÒÛ˜·Ü{ࢋBùBYþÇ‘›Ûlop`CèõP¿P(ãôŒ;CÿºéP®Ð¥é赌ïy`wd»ÿ‰8?1õÜÓsOÏ=å•?TþúIbÇÄŽ‰ǽ6îµq¯Ì52×È\©ù¬Æ;ïl¼óúÁ×¾~pèîÐÝ¡»OÏhÏXw0î`ÜAÓ ]‹xrÕÊ®‰=ö?ú>ôFèŠ3;´W]øãº„ýï®—Üâž_‹ü™gâUoø®Äùynµñ—kC¡PƒÐ?ññ_sM(ú1þ¬äÜ¡¡ŸÓáw¼›Tíà«¡¡Q¡—Žl¿®çu=¯ëégj }ª°¦Âš k"à½ßíÿñð¦óªe~6ýmG¸¼ÂúéûK\ÊW/ËÿxðÒfk{ï}1 e Õ-—/_–WeظoúxƒC_†6G>ý7k•¬U²V‰û2î˸/ÍO€ÓóS8úõ/ö`H¨™P3¡æÀ>8ðÁðÓ|C¹B¹Bÿ#ú}vгƒžÔzhë¡­‡ÆLŽ™3ùôÜЇy‰Û†ìº)t(”J>³#Yq{±ÝeÂ?úR©^ŽZ5>ê‰pèûÿ~ÿ?V'îj·ÿ,ø˜uÛ÷ü›´&²½PÞBy å5ô©Ä K,ŒlßöøŽŽç§Ï1ß<é¡-©ÚØùƒ[ÆíÙÒ1üq™–?’µiúyIwì}ø(ÿ¹|yŸËû\ÞÇÌ€Ô ‡¾=G÷Ýst±9Åæ›óßè÷˜Â¡ïÊëV^·òºN:5êÔèLE¿a`RT!¾B|…ø#[’—†ÞMMÚsøÇßٱÅ$gÞýaøã5ëvÿ¼¿Ò±_?yÏ⤿ž{eþ›kNÿ•_´"þ­=GÙ´P¹Bå •33ô©dÖ’YKfl_ùц5ûžIŸcþ2ó´Ç·oŸZiÞ·;6¥t̪ýÐyÛù_w“3áïpËãW7S°C|ü·ßí—N¿øÄ£e3ê«_uøªÃf&[0Bß# €HQÕEUU]Ù¾eÖÞ¯ÿï&“§_\õ|ys>þø™/çu]ýã§ß®ÈøïCkÿÜ]bë-mö <°aÖ˜-Õ¾œôûøµu®Z8aïï+–WIübßÖô_ùïmülÇQ"ö|ãòË7ÎÌÒ§âï¿øû‘ísÿýsã®tºõüi¹ŸÍÔ±ÞÊNo,YÓõšÁc×tøþæ_'Œ›0wæýñsÚì;tå-üÖã—å“ÂÇßаü§9/¯Õªý–ÅûÒÏ«Xþƺ›÷åI“W¾jôU£ÍLˆ¼Ð÷H`R÷~ÜûqGù¯üßóÅ¿¶§Õ™[÷Ï*µ*’tá½YdÞ_4éÞƒ{o8÷“•­/¿qÜ«¿?TjÄ1¿­«Õêûïë—ÿ¯]»ì{íÐ’ä|s›Ö:PþżӲÜÝñȳվ÷ûoWH5?\ ùßä{gßòïK‰»Žl¾1úÆè³öÉÚ'«ÍÇ<$ï _”˜œ­Éy34z{éØÁ›Õ_йú?šÕxiãÒ ÃöMúôßžá#‹æ,P+Kô{<*>2½½ŠiSÔÜÙ^®]¹våÚ™™ìÐ÷H`RT¾aù†åF¶ñÉš Û†œÙ±å–å¾L7ŒÚ[1)ÇSÿ\Ö¢à×—Š-›­Mޏè>f„ÿ®ô[ž­ÙŸïÙµÒ3E>Üvѽµ¯~ûÚO'fúãåm•÷rðõpxœýŽè«2ô.š3{¿,Ñ顿kßÙýXÒ;‘í÷7½¿éýMCYBYBYÌL }Ê|Sæ›2ßtéK\zàÈö5Ÿl®’tÉžû:z=½9®úååj±gľ‡Gßõo•»òÔ8|L¥èÿd©TT—KÆ]4é¼Z¾kÒûÂKgŒ¼¢Ü“åk5mú{Ùô³ùs؇wÿyË„Èö"5ŠÔ(RÃÌà\vGŠJNNNNNvûˆ”üwòßÉç¹>Ïõy®ìý÷?¦_]5ºZ†Q{Îì8ccGŽüùçøøÆößñ)õû³Î”o\ºdó3Oÿ9oþêG¶™ÿËü_æ¯òw•¿«ümféÙÀŒ3ÌØ9Wç\sÙ>áöÞ9K7úòÏs=¦¿kÜvÛÏ?G†¸ÇÛžl¿mç½g–˜WoÛüLG¶Wš_i~¥ùßû¾Ø÷ÅÌI€Sù=%666öÿ|¿Kœ8!1î`ÜÁ¸ƒês¦„Cß|pàƒ©‰{áoë¡­‡¶zvŽ‘¬ EQ¥£JG•nõg«?[ýÙûGñ„Z{–§‡q;ÄM©7½E¿¡CûBz^õG¦õ#;+µ¬Ô²RKsHÿnï{{ßÛûF¶0l\Õ-½ÓÇw£G¹ÇÛž|_þ—É "Û[oY¼eq³€sǹ¹Ò7%`þ‡&EšiR$²}`Á% ›j«Ïɲòï]#÷½²mØþ¹‡Ù~Í%×\rÍ%9ÛçlŸ³½*é_ñ¨âQÅ£"Û¿,øÓøíSvµÜsÉ¡Rªt$†ö„½ôño­=JgµmÕ¶UÛ¦H›Ð7%`þ‡rw•»«Ü]‘íc ¬Ê°m`Â×I ïQ¥´{¯Ï’ç7‹l:ñéħÕ8[D=õDÔ/N|qâ‹GÙÏ`\ÍWlJ•Òk~Ø{놃[?=PôÈöËo»ü¶Ëo» Ïy.È£JÐ75Àü¯?ËðY†ÏºýÛíßnÿFö¿xyöQ¥´Hø3éÀÁÆïýøOïÍŸEöVþ¦ò7•¿Q%àìÒøáÆ7~8²½Mó^ ++êxøÆä«T)-z¼?,Óúþ‘í]wmܵ±ú¨Ÿ˜„¾ÇûS¼I@j4ÙÕdW“]‘í/^·à³µÿIüì@ÖC‡TéÄ ºaÉÁMõ#Û_xì…Ç^x,K‘,E²Q%àì’qþÅù×¼¿æý5ïì8df¦ø½ªtbVeØPqß›_•ŸÖkûQjX%¦JL•Uàl'ôM 0©’'&OLž˜Ö1­cZÇDö¾uÓâi“Téxmj¸÷÷¤'^ϰèË …#{›_Üüâæ«pözqË‹[^ÜÙþÀÁW¢—}´ï¤æ‡ó«ÒñjÿGÿ7V]Ùþnü»ñïÆGß}sôͪÀÙHè{²€8í3´ÏÐþ(?Kö.ýç² ¬èœXrß•ª”zOeùyÚªñ‘í«w®Þ¹zl‹Ø±-T 8{•Yjd©‘5ºÔèR£Kdï[1£+mŒW¥Ô›6bÁµ;·üp㯽v^Ù[uýÕõW«g¡ï© à8œ¿üüåç/©ÃK^êÙ[ÿ¾/XrÝá.ɱÉmÕêØ¾¹jÃÇ QS&l8?aLdïc<öÈc¨ o£øÅ#Û_ë8ü«õ3¿½jÀžOTéØvõß{û¡+ê¶y&×ß«"{GŽ9väØÌE3Í\T­8»Ìn9»åì–Bß“K Àqk=¢õˆÖ#"ÛWÆízbÿoÕY<{£ç§hÓë{×%uj´ü§èæFö~2ú“ÑŸŒÎ~kö[³ßªV@0¾«ð]…ïêÒ½K÷.Ý#{olÛòªEöNÜÿíá ju{BûB‡ÛÆõùve­ÈÎ+_¼òÅ+_¬±¥Æ–[” €³QõOªR=Å_úž0Ç-ó_™ÿÊü×·/~ûâ·/Fö¾Rý÷ßÖÝÿS¯Mì£VG:píá%‡¿ªÑÿÛ{×ì­–·ZÞjyk]^ëòZ—«,[©þ¹¿Ëºã\®RrRhHhf‹×g]´låú¬Þ¶ýÒÈc–ÿ¼üçå?ç)™§dž’æTÿôý§ï?}¯}åÚW®}%²·KËæ…/jÐþõÆC.ô,ÛÐW̯µã¾»WuLZòddïÛ>ØöÁ¶zêe¨g‘À{dË„Ä ‰ãÆŒ;¨>œ)þq@šþï‰O»ûšš{8GÓfÓ¿Zúëà‹þùbóO‘Ç<ßÿùþÏ÷oÒ Iƒ& ÌàÜÔõ›®ßtýæžn÷t»§[dï³£ÞùiõÔ—žþàñµ»oM~0ùµ`Wã‹~zeÛ˜Z«:ÔøûüÈÞ¬s²ÎÉ:gÒÀI' ÌT>SùLåÍ %`Nš"Š4*ÒèçŸþùçŸS:¦Æ§ß5^ÜøÃ K nþ xX}Ç®+öÿUzìí~+:¹òú×FÓah‡¡†>Ýäé&O71g€sYT\T\TÜàƒ .\kE­µVDóÖ‡£—lü³Ö-OÍ_œÿbâµ&øpÍë“~±Øû¯ÕüÚW§/¿8ò˜L›2mÊ´éílÿc{®œ¹ræÊiæÇ&à$+Y²dÉ’%Ëô[¦ß2¥tÌÓeçõY}ù¾o½ø½-5ö¾q`ÅÙþªG _Y`kÖŠ³Ç?ûû®Y˜ðÁ„¶ÛvnÛÙ܈”á× ¿føõíQoz{T×ûºÞ×õ¾”޼§ösw.éÙôƒý3|ãÇ[K'Ýv¶¼Æý½’.;|wo‡5X÷à5eš×ú£Ü–—â[ø7òÈšOÔ|¢æóÌ;0ï@lîØÜ±¹Í õ¢’“““““€Sç@ß}ô}þÁç|þÁ÷‹¿_üýâÇ>~ø=7¶¿ä?5*T ¶]ô² ¿EL?¯eU–]_ïëýÊÊß[­û拲kznïvìã§ï™¾gúžrûËí/·ßLH½©MýhêGõÚ×k_¯ý±l3¥~ž\Ô0¾à‚|Ǿš)Å¥{ÆìÛ|hÌè!ß ßV­ýÜ·¾Yõ?v¼è>ªû¨î£[óØšÇÖ„Z„Z„Z˜ éYlllllì‘-'$NHŒ;w0î úp¦€8­¾¯û}ÝïëÖŸVZýi©9¾ÛÈ+2þá¡Y—dË·<û+Ñ53>ýcž1tó«;ïëþñ˜uÏ™¿5ï®;}|Ó‹š^Ôô¢× ½^èõBÙ§dŸ’}Šûpb6oؼa󆇮èú‡®Ÿ½söÎÙ;}ü]۪ܧf»WÝ\°R…®%Ëdÿöôyc»­¡¤ë_ÿÕý›3ô{tÔÆ}SóY?¾óã;?¾S¡i…¦šºïg 0é“€3`gÂ΄ ¯,|eá+ ?¬ûaÝë¦æ³ Ïž;ó¤'Ç”^\pvÕ lÉÝí’{s½~Þ5'kTûZšw8÷¬¸-]wŽ^½ªÏÖ»Çô]µ`Ûs©úûލ;¢î˜4wÒÜIs¯[vݲ떹Ë'ÍÈÐÈÐÈñ‹Ç/¿øþ·ïûþ·Sÿ©-ÇßÕ4ÿUwßWeUžÒ×Ö,[-GרQ•£î;YC[txÅ[{r}óÌÜù 1o\óÉâõï4)wrÍÔ|n×É]'wÜ&k›¬m²f®¹Bæ n5ÀÙELú$à [žiy¦å™ž =z645ÇÔSsïÎ_”eZôÄjÏ| ÷ÏåFÅT˶¼P§lq™¯ÎÝ9óŒè³\–¡VT‹Ã™B·†zï~áà‡†þûñ¾Ê-+»sÔ¾Msc·öÚ5àçþ[¿Ý5áÄÆ?ðö·¼½þ‡õ?¬ÿatŽèÑ9ÜS€SgoÞ½y÷æ}ÿÓ÷?}ÿÓ¿ØøÅÆ'vž›3VZ‘ëË+—)Ÿcp±/ ¾åá¼Mr_’é¬Uλ1Cþ¨%¡1¡+öIºápƒø ‰–YóÂæMI ö_öÙînßþùóšìMÞ¿ëðÞã½n³²ÍÊ6+û|©çK=_*ÿ‡ù?Ìÿ¡{ pö“> €HG–Ç,YÓ{b'ެ=²öÈÚém„9óçÌŸ3ÿiý§õŸvGŽ;rÜ‘#s¶ÌÙ2gsïN¿]ûwíßµlñ±ÅÇo¿§ýžö{Òç8Û%µKj—ÔªH«"­ŠX\`qÅî@0€IŸ2(éG‰„ %Ä ˆ·¦õšÖkZ98äàƒå––[Zné™Õ“?=ùÓ“?Ím0·ÁÜkþ^ó÷š¿ïÊwW¾»ò‰~άYrdÉ‘å¡õ­h}|||||üÔSNجn³ºÍêž©QÝ{sìͱŸeü,ãg·\²å’-—¼¸ûÅÝ/îý§‡Àœ5%J<´hõ¢Õ‹VÿpÏ÷üpϸCã;´dÝ’uKÖ¥éÇã÷£Þzÿ“îNªÙ§fŸš}®½òÚ+¯½²ð{…ß+üžÊœ•ú‡ú‡ú/[½lõ²Õ³>˜õÁ¬&Nš8iâ¤ojSû›“°ÃÄUy®ÊsUžÚÃj«=¬Êš*kª¬)S©L¥2•²”ÎR:KiåÎ0µ°ËÂ. »$ÖM¬›X7ÃÖ [3l½nÀu®5.j\Ô8õàH{fgæï­~oõ{«äòÉå“ËZ\hq¡ÅE]Ptúg 0@@x0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À}:/63zfôÌèÚ9kç¬Sé€sÁ„Ä ‰ãÆŒ;xª¯e0@@€":= "¼ä9t8t8t8”J%'N>œüßlOÕÇ'öY§ÿÌÆyêÎlüéó*i¸brrrrrÀ_c`G’~êþGuvð ü$|58wî…j¸ ý8M?)øØÇ'÷c8§êß*æùÙ>Âôóÿ\»;®è*§ó*§î~¶TãÜg°Ï¼ñœÜɧý~ÖÖ¤þÝõï®÷9‡ÅŽ;wøÿ4E…¢BQ¡ ¡ V*¡Ðÿùj1”1”QIÀW_ àå'ðoÿßñ ½Ó}gßÓdfôÌè™Ñ¡œ¡œ¡œgî‡'A `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À@ªÄ“ú@Pmz}Óë›^/±¦ÄškÂï÷b1ÅbŠÅì\»síεêsú…+¾ á;¾;á;¥>@´‘’‹$I.òÈ ÜðÈ Û_ÛþÚö×Âím³´ÍÒ6KÑË‹^^ôòøøøøøøcŸçÑþö´ÿèG¿8úÅÓ3òܹrçÊkÕêU«W­>Ù§ååþùþŸïÿùþϪ}Ví³j ¢D/ˆÞ0rÃÈ #ÿ­óoëä]˜waÞ…[lU°U…rTÈqϲ{–ݳ,®a\ø†Qk¢ÖD­IËrÎU8Wá'J>Qò‰’Ý–u[ÖmÙö Û+l¯Ðâº×µ¸nÆk3^›ñZjî T`à(Þxø‡ßxxf¿™ýfö ·œ?þüñço¹¦åš–kÚ5iפ]“Ôœgež•yVæ9Û«ñÓîŸvÿ´ûé OOxz²;—ݹìÎÐ'¡OBŸüŸƒ&‡&‡&o m m m´qÐÆAóCóCóC…> }*š³h΢9WÇ®Ž]›ö€¶ÕË­^nõò»åÞ-÷n¹p¼ºýÖö[Ûošeh–¡YÒr¶Õ‰«W'†?nÓ¢M‹6-Þžóöœ·çdø#Ãþ8Þ³e¿#ûÙïxê—§~yê—.¡.¡.ÿm£ùÍßh^÷ñº×}üÒw.}çÒw¼à\#€šWw^ÝyuSìŽŇl ÞËG“;”;”»}«ö­Ú·:Xû`탵ÃÍ-øhÁG›/m¾´ùÒÖñ­ã[§êº{Fì±gÄ¿mþmóo›³«òáè÷±µx¬Å¨>£úŒêsrÏ?ⳟøì`¿ƒýö;&vÌ ® ~äûG¾äûwz¼Óã›;oî¼¹sø®µ¯Þ¾zûê3cgÆÎŒµ4œkÀ@ª4ì×°_Ã~êÁ6âÃŽøpv‹Ù-f·8²ý™Ïžùì™Ï l-°µÀÖøžñ=ã{¦ælÇÞüù‰LücâE7\tÃE7¤·:ôÍß7ßüÇŽ~ËÖ([£l'.}âÒ'.½¶ÿµý¯íŽÉÛ?Ïé2§Ëœ.ý7÷ßÜóâÁ‹/y†1íÆ´Ó®ë]/èzÁ‰ó¼çÎ{î¼ç:4ïмCógCφžýoû̯g~=óë]vØÅ¬€sMTrrrrrò鹨Ìè™Ñ3£k笳vÎ#Û'$NHœw0î`ÜA·Ò.66666Å W­ïåHI%=–ôØÉW$_‘¼aÔ†QF…ÛsÎU8WájýSëŸZYzf陥gêÏ9aæ6«Ñ¬F³G¶GOˆž=aó£›Ýüè‰m€|ê„ãÛ«þ¸ê«þ¯`Ž<¦Y©f¥š•ê·»ßî~»=þÃå—?\þñêW¼úÈG~8òÃÈc›9Ï»|Þåó./б@ÇwÌû^Û÷Ú¾×JÎ(9£äŒ]3wÍÜ53Ü××ÍZ7kÝ,_ùàôHyh·¶oؾaûŽŒ~Ãêf«›­n¶ƒ *0èxÏ™Ò àÂe —-\6½E¿a]Kw-ݵtJÑïíýoï{ÿþsúÏ韪g÷†ðþ€÷¼Ë·üpË‘Çìž´{ÒîI/'½œôrÒ±#ÿ”„××)]§tÒG¶‡£ßÞ%z—è] €s‡Îiû;íï´¿SŸKû\ÚçÒÈÞ´lÿ¾2veìʣę¾øðŇÓ[ÂÏÐýÏ•ÿ¹ò?WFöfmµuÖÖá0õ¸cÚ¡¡}Îïs~ŸóS:dt»ÑíF·[ÒdI“%MNlüÞjôV£·"Û{_ÝûêÞWŸX´ œÀpN{÷Ø»ÇÞ½éõM¯ozýÈö ï½ðÞ ïk×0®á‰m œR\4gÑœEs¦·Hò«½_íýjor‘ä"ÉE"{ëO­?µþÔð¦Ê'V"¹¨ÈEMokz[ÓÛ"{Ã×·qÜÆqO¬2• V.X¹`þù{äïqd{xU·çÀ¹#Z €Óoî s_˜ûBdûµ¯^û굯F¶ÿžñ÷Œ¿gü(ßGù>Ê· zAô‚èõ#×\?2qQâ¢ÄE;ìX°c8Rª÷}½ïë}_ï×z¿Öû5[“lM²ýµtá5_\ðÅ_\0i줱“Æ®µvÖÚY[Úli³¥MrîäÜɹó¬Ê³*ÏªË ]^èòB·Ì¿eþ-ó?ÜøáÆ§æüi~z茯g|=ãëq›Æm·iáú…ë®u›Ûln³¹M–YdwaÞ…y–¿¬üeå/»©ÌMen*aޏq9âNçMˆIˆIˆùºí×m¿n;åÍ)oNysyÅå—WÜÔySçM¢¢¢ò¬Î³:Ïêüïæ7ÿ»Å_P|Aͧk>]óéÛ‡Þ>ôö¡1 1 1 Þ#§Ó‡W}xÕ‡WE¶7ø¢Á ¾È³?Ïþ<ûãCñ¡ã€ìª<«ò¬ÊÊÊð=}®þ2Ó—™¾Ì”RoÓ[›ÞÚôÖp4›–çé†àO¿ýôÛO¿=Ê2™ùËÌ'væ¨5Qk¢ÖÔoP¿Aýï†Þ ½{”»Ü:¶ulëXÏ€`‹JNNNNN>=K=€ 9¹ëçŽ ûZÇ'¤t¶#ÏŽùñ‘ùñû›¿¿ùû›Sþð¸p¸9¶ðJ»w¾çûw¾ï¶´ÛÒnK4=Ðô@ÓÔŸ?Ïïy~Ïóûö Û+l¯p*¢”ϯüüÊϯ|áönáöƒ6ÚxÜÏ^ÍU8Wá\…w®Ý¹vçÚ?þ9ðÏáÕœ§bîš¹kæ®™½š÷jÞ«ùÀ¾ûì{¼õ ‹ž=!zÂÁÚk¬½záê…«†_Å©{œŠ{wbW<ïå#ýVü·â¿¯_-¾ÚQŽŸ9hæ ™ƒâ{4îÑã­Õ¡›Ýtè¦üóÌ?0üñ‘½CwÝ=t÷ƒÙÌþ`öôFÆ/_´Ä¢‹J,Š\“““¼2yeòÊäðfÎiºXîPîPî‹c.޹8fÇÎ;wìü?ÿM³&jMÔšåå–—[^.vuìêØÕÇ{úð¯‰T)W¥\•r‘½?®ýqík+䨣BßCàTHy¨- €tgÙËî\vgÕ\UsUÍu¼ÑoX8ú ?³óÈh-ü¬Ó{VÞ³òž•]¯ézM×kN,ª G¿Q;¢vDí8YÑ]8 ºë¢».ºë¢‡W<¼âá'ý†…£ßðÇ׌¿fü5ãOÅv»áøðÊÕW®¾ruÿ-ý·ôßrbõ G¿áÃçôÔÒSí“o?ùö“£¬C ¯Ì¾¬Ñe.ktbíÚEk­]ý†]|èâCJ?uøsôŸ£ÿÒæÏW}uÕWW}u¢ßÿ¾ÕC;B;þ{Îá1ü5ø¯Á >±Ó‡÷*¸8þâø‹r×>ùå“_>ùÅ; ‚M ¤#áØ²ÑÛÞnôöêÄÕ‰«Ór¶½÷Ü;°ÄO%~*ñS8ðxàÂ.|àÂÏÿñüÏOûhÃDÇ&Ä&Ä&¤%P ÇÉwÞpç wÞðÓîŸvÿ´ûäVu÷¤Ý“vO <ø©ÁO ~*íç oâ]·PÝBu …·Ë>¹cÞZgk­u²ß‘ýŽìw«N…pÐ8aæFö^3üšá× OKåWæY™gež”zÃ[@§Ÿˆÿ~ãï7þ~#¥Þ«~¼êÇ«~<¹ó0|ΔzÿyüŸÇÿy<-W¼fØ5îÙ¾ãñ‡ãÇö.€ ÀY¬nÖ£ÿ9Ÿuz´ø±Å-~\QqEÅÿûCËþÈðG«—Z½Ôê¥ð†´zl象ÇôIÓ'MŸôbæ3¿˜9Ó§™>ÍôiJç\^ey•åU Ýõë®_w=²÷Æën¼îÆëFôÑkD¯åE–Y^dUª„U ãf›5nVøiÇs|L|L|LÞ=z÷è}¼Mø)¿÷¾zï«÷¾Þ¸5¥#«¨z êAOzrГ Ö,X³`ͦG7=ºéÑð¶´ßUø®Âw:|×á»ß…é”ÎóÜ[ϽõÜ[“?˜üÁäNì…ãÞÆÝwoÜ=ü 攎¬’½Jö*Ù‡nºaè†?&þ1ñ‰›on¼¹ñ¢‹F,1ì¯a ûëæå7/¿yyJgG×á ƒŸþ÷òÜ'ç>9÷É”ÂûcÇ“©±2veìʣܯðÝÌœ;9÷G5k̬1³ÆtÚqhÇ¡7¾ùð͇KÎ(9£äŒ|“òMÊ7©xTñ¨âQ×~zí§×~ÚèãF7úø½—Þ{é½—V[Yle±“UÿŽ÷ZÜ+¥ÞbñÅâ‹ä úØOA^òø’Ç—<ž–ó_õÓU?]õSd{ø â¿Ôý¥î/u}€ ò ` SñÜÓÓó à#ey@æ#{ì5²WµùÕæW›ŸÒ‘sÞœóæœ7kv¯Ù½f÷Ô!·ÛÜns»Íáñ¤ô*>ýöÓo?ýöñ†7|¼aJg»å‡[~¸å‡ð†Õ©¯Æ[ç½uÞ[ç½”õ¥¬/%´ Geï=ðÞï=ÐøÕÆ¯6~55ÕÞµ#jGTø £)“wZÞiy§m«¼­ò¶ÊÇ{ïš¶lÚ²iËIc'46²7ãôŒÓ3NïsAŸ ú\pþûóߟ?5çñÙˆÏF|Ö¶`Û‚m ¹ô‘j>Ró‘š„£ëÔùlyðé—Û»ÜÞåöw~yç—w~‰ìýqç;ÜYáP…CÜó‡7(~eÉ+K^YÒùáÎw~ø¯ÑþktZj>ç±9Íy¬T÷RÝKu?±3„×ßO_<}ñôÅ‘½ã'Ÿ<~ršujÖ©y²æLøZáëFöVÝZukÕ­á½ NìŠó¯˜Åü+nYu˪[VEö¶ÍÒ6KÛ,oíkÿ[ûÓÏ:lÏHÑó·<Ëó·Ô[Yoe½•Ç>òº§¯{úº§ï^v÷²»—¥æÌœ÷ÀyœŽ~Ã-ÇŽ@Âë€o*sS™›Ê¤tÌŸSþœòç”ÔG)FmµaTz|Ôã£ÈÞðӋñS8ú?±Ï^[yì-^ÃÑïSÿ<õÏSÿ¤~em8²J)ú G¿mK·-ݶtêïu“úMê7©ÿÖÆ·6¾µ1¥cÂÑo¸&Þi7cÎŒ93æD¶g陥g–žek–­Y¶fZÎŸÒ à¿Ÿÿûù¿Ÿ¿+Ç]9îÊ‘öè7,®q\ã¸ÆiY#^ÇŸRo¡Æ…j|rƒÒð9SOø¾i¸bùËÊ_Vþ²ð¯Ñåî=ãë_{@P €€t'ü=ò÷h9¤å–CRÜwÛ}·Ý÷?¶kÎY.g¹œå^¸ê…«^¸êxã¢ð6Ô)õn/º½èö¢©?ÛG|tÁG$=–ôXÒc‘½=>èñAª”«R®J¹ v„v„v„·\Né!W ¹jÈU©?å’CJ)™RoõWª¿Rý•ðªßs8®Ñ¡F‡R:fh–¡Y†fñTà´o¬½ð¯…-ü+²·BŽ 9*䈞=!zBZ®’RœÒœO‹C7ºéÐMáÛœïvMÚ5iפ”zÃkñOî˜Ã_‹RÏÄ]wMLËùÃã‡càÈÞßwý¾ë÷]áíô½# xÀ@ºÓªo«¾­ú|½àë_Oýg¥æ9->jñQ‹ÂO=ÞòÒ/ýøÒSêM}¬Þâxؾaû†í;Ê«XYle±•i‰Q^ÿ7t÷ÐÝCwGöîØ¹cçŽÓfN›9mæ±Ï³½Âö Û+L˜;a)Ó¥d—’]J¦=š ¯üN©wüßãÿÿwøÉÇÞ)'æ—û¹ÿ—ûÃÏŸŽì ?ý7í÷qUÆUWe<ö1á ÃëQÿ‹ú_ŒzbÔ£žX8cጅ3ÂÏ·^µzÕêU«g½>ëõY¯¿Ööµ¶¯µ ‡ÓÇ>gø Áò Ë2,KêG»{âS \ë¢Oî]8ö9÷ŒÜ3rÏÈ´_%¥g9‡¿ Í«:¯ê¼ªÞ<` ÝIMÌé¢.ºá¢Ž}LJqHjÍY4gÑœiuáÐåßûþ½ïßû"{½Õè­Foå]—w]Þu'«žá§çfk’­I¶&‘½³ßŸýþì÷øÍ=sôÌÑ)=·lÿ÷OÚCër×—»¾ÜõeZ–iY¦edo8hŸýæì7g¿érbM^4yÑäS7Ï·´ÙÒfK›=#öŒØ3"¥cŠ/(¾ ø‚oš}Óì›fŸÝýÙÝŸÝ^A^¸lᲅˆÃÑܹrçÊ+<ÂëïÃO&Ÿ!¥ÍÞùâ™/žùbEÅWTL͘ë¢SêÍ2 Ë€,Nî]Èú\Öç²>—âxŽHŸ¬¯Záë­§€àéÎ%ã.wɸãÃ[žû˜2Ï”y¦Ì3'R;pJ½¹/Ì}aî )õV[^myµå'·žá‘WÈ^!{…쑽³{Íî5»×±ÏðkÕ_«þZ5¥ÞpÀ|rc¤š-j¶¨Ù"¥ÞùÅæ›_Lpub–W\^qyÅ”zó¬Ê³*Ϫ´œ?¥ÍŸÃJ~\òã’‡£ß[Vݲê–UÇñ~ÜÚÚ>þó<Ÿçù±™œ½¢•Ho ßPø†Â7„Ö„Ö„ÖœÜ3Ÿ¬U¼i1÷‰¹OÌ}"ôAèƒÐ‘½%Ç•Wr\|B|B|Âɽî.˜pÁQB¬õ“×O^?ùØ!ܯWüzůW„æ„æ„æDöžØŠíc»ü²Ë/»ü²PöPöÐQBëùÅçŸ_Ü;åÄ,¯²¼Êò*)õÆ&Ä&Ä&¤e%wx­yë½­÷¶ÞÙûĺ'Ö=±î’?.ùã’?Òr•¸êqÕãªw¹¤Ë%].鶬۲nË"{ÏØ{ÆÞ³¨ä¢’‹Jûlçõ<¯çy=÷†ö†Ž2äPRÓ¤¦IM3‡2‡2Ÿ´»°ÿ±ýí,ôzèõÐQ6ºÏ41ÓÄLCåBåBåÒr•cÇùË*/«¼¬²wHw¢ÖD­‰Zsv9õV'®N\˜Ro±¨bQÅ¢B±¡ØÐiZÛúßÍfë„ê„ê¤tÌæ6›Ûln“R\º{é§}óç#•zµÔ«¥^ õ õ å9©m´qÐɽâ¹cݤu“ÖM   ‹ì=öšÑÔ(YùËÊ_V¾wùÞå{§tLü£ñÆ?šö×ÒæÖ6·¶¹õÝÿ¼ûŸwÿ~Rõ‘½áç·ñ»ßmlÛ.¶]lJs&ûÙïÈ~ÇÞ{îÙ»¯Ó¾Nû:ä¸ÓþNû;…bB1¡˜”Æ“ö«ûn®›µnÖºYÞG<¶€8­¢¢¢ÒÏxvÍÜ5s×Ìc³cçŽ;v¦Ô›÷÷¼¿çýýäŽêüéçO?ú‰‡´Üñ´o}:…ŸܸCã;¤tÌÅ(þÃÿX/ž½Iö&Ù›¤Ô~òôÉy8TN©7G­µrÔJûUŽ§æ½œÀ§UB†„ éèg±Ä™‰3Óç¸1Ç9n<¹£Ê—#.G܉‡c;vì»:vuìê³ëÝxÝ×Ýx]J½Kï\zçÒ;½ÎõØ+nãcâcâcNî˜}ÎcÏÿÔ‹MñUïš±kÆ®Þ<`€Óê@­µÔJ?ãIŸ!PôŒèÑ)Žê¿ÏOå„{íé±×¦Oek”­Q¶FJ½ÿÖù·Î¿uŽ}†ü=ò÷Èß#¥Þ £6ŒÚ0êäŽyã{ßÛø^J½yæ]˜waÚ¯rì_ÎØ3hÏ =ƒ¼# x<à´Ê+w®Ü¹¶†¶†¶¥wC =6ôÈÚ:k묭ÓÛ˜·„¶„¶¥7!ŸÜÇï\»síε)õÆ&Ä&Ä&¤¿[ÊÊÊʾÙ:{ãì³7ÞÚÚu”Þðêê<¡<¡ Ï„ÐôÐôÐt_™ H¬8­b’c’c’SêMÍjÅÓ/§Ô»ýâío¿øä^ñءݱkx¦ì\´sÑÎEé{Uèö¢Û‹n/zv½§2MÈ4!Ó„´Ì–pœRïòŠË+.¯xrǼ2ÏÊ<+SÌØ/ýøÒ/ý8íW9öÝÌY.g¹œå|M€àœVùßÍÿnþwSêÝZgk­uή1ÿýüßÏÿýüɽââ7¿±ø”z/Áø Ƨ·*m«¼­ò¶Êé;ö;Ï»=ÕŽsæû$ß'ù>9öJ~\òã’)®ó+ί8¿âÉó¯U~­òk•”z/}ûÒ·/}ûTW&gùœås–÷5‚G pZUZQiE¥)õ®µvÖÚYémÌWl»bÛÛRê]¸~áú…ëÃÛÕž¬+†Ï™âx¶_±ýŠí'÷ЧzÌéGÑœEsÍ™RoZÖs‡+04ßÑÿœº€|E±ÅVK©÷¢¸‹â.Š;ö®\på‚+dú4Ó§™>ìýõŠ_¯øõŠí9·çÜžó$ 7w(w(÷üâó‹Ï/Ù=!zBô„Ї*ªx(íÛMûn{&g/0Àiuõð«‡_=<¥Þ1mÇ´ÓöäF›ë'¯Ÿ¼~ò þgÚ†i¦m8ö®üéÊŸ®ü)¥ÞÉLþ`ò'·J“ÆN;iì‰Õ0õÝtè¦C7¬1O[gúœésÒ>Ú™cfŽ™9&¥§óÞXýÆê7V?ö¦ë©wì»YbA‰%¤·_¤ÒN pZÅ5Šk×(¼Î/²wJ×)]§t=¹W|ïÅ÷^|ïÅŃÿ¿þîõw¯¿{•«Y®f¹šÿcÌ ãÆ5Ì8=ãôŒÓ#{ÿøë¿þøkv§ÙfwJûhÍ^4{Ñì?§ü9åÏ)Gù!ö døãú§¯úú§Ó¾>ri¥u–ž„ ·wOÚ=i÷¤ÏîþìîÏîNÿ30û¥ÔŽ O,Œ«W=®zJëh?þùãŸ?þùä¾–ä"ÉE’‹Œì=²÷ÈÞ)s󶛷ݼ-5g«Þ­z·êÝRêùáÈG~˜ö¸4|ž”zk¶¨Ù¢f‹“ʦ&ö5‚G pZåù=Ïïy~¿³àï,Ù{¸üáò‡ËßÛþÞö÷¶O{´#jGÔŽ¨aû†í¶/²÷ʯüñÊÃã9öyÎþøóÇßÑâŽw´Hé˜n˺-ë¶,íc~9é夗“Rê­Õ VƒZ ò½›ïÝ|ï¦æl)…Öa ¢D/ˆNû˜ûæï›¿oþ”Öt¦7rTÈQ!GJ½Ëî\vç²;OìÌÙšdk’­É5ï~ÍQÖg¯¨¸¢âŠŠOùxÊÇSNÖkÙgdŸ‘}ÂgŽì­ô[¥ß*ýV¦e™–eZ¦æ×RzW†}qÁ|qÁ‚ v,Øqb£]ûçÚ?×þùù%Ÿ_òù%‘½áà¼N©:¥ê”:YõY^ey•åUNl&g/0œsÂkæÔáÌj9¤å–CRêÕgTŸQ}Þúû­¿ßúûÄΰöÁÚk7»¾ÙõÍ®O)˜lýTë§Z?•úø³ùÒæK›/M©7¼ió€7¼9àÍó°,ò ËòÝ]ßÝõÝ])óðw÷ðw©ó.˜pÁ„”z{ÕëU¯W½´ÜÇÏÿñüÏÀgË{9ü|Ùóž;ï¹óž‹ìWu^ÕyUÓ2ªÆ7~¸ñÃ)õ¶iѦE›“°Â5¼Š½ãÐŽC;Mé˜Ní:µëÔ.õ׺ðÞ ï½ðÞ‡–>´ô¡£ÌóýöwÚßé™/Ÿùò™/Olü–wXÞaùÞ{îÙû@Ö²>µà£-øhÚW·ûn†ïþÉzÒ0Þ€àœ³µòÖÊ[+«Ã™uí«×¾zí«w/»{ÙÝËR:¦]¶vÙÚý?Ï.ÍÊÊš3'Ä$Ä$Ä´ø¡Å-~˜¾xúâéGy*m©î¥º—ê^7[Ýlu³¥>þ©ºµêÖª[ovÛ°Û†¥tLÛ‚m ¶-x¼ñX8úíðk‡_;üšÒ1Õ_©þJõWªd¯’½JöÔ¹âÁŠ+L©7¼rô®¤»’îJ:Þ1ølÄg#>kôv£·½^·Ò¶Þéí½^izåoWþvåo‘½ þkð_ƒ×¿»þÝõïžØ¨š<Üäá&_^èòB—Šì ÿ:ÂÅñÇ_b1ê”ÞSzOé]³{Íî5»ïš¹kæ®™‘ÇT›_m~µù·~yë—·~y¼g‡_:üÒá—”z¿}àÛ¾}àþü÷ç¿?jøðÜx¼áã oþÜÈc²ôÌÒ3KÏ?wø¹ÃÏ'kóç=#öŒØ3"|7#{¯þê꯮þêôÏXàô@û¿õëÛ'=–ôXÒcFmµa”º~½+õ®Ô»RJ½GÆK׸vÀµ?5ø©ÁO…×>†£¯m•·UÞVyΛsÞœófŸ«û\Ýçꊹ+殘ûËÌ_fþ2sä9Ã["ê2¨Ë .ç/:Ñù‹ŽwÌomxkÃ[Rê=Ðô@ÓMÃ×[Yoe½•ãÿÿ÷ø¿Ãs,Üþø«½_íýjoݲuËÖ-ŽºÝtè¦C7Ež36!6!6á­om|kãñÆc ‡6Úpè± ×*¼Íuøü??ñó??±½Âö Û+„ƒ´pTÞLû¶i·M»mZx%kø>O¿=ýöôÛs¶¼—+_XùÂÊF¶‡ËðæØ'6æ¨5Qk¢Ö¼YéÍJo¦8·WÅ®Š]õßû®yxžü5ú¯Ñ×uçÿ=ãïÏ“Nák¢ÖD­ G¿­†µÖjXZª1cÎŒ93æÔ©Y§fš§nÌ9Ëå,—³Ü˜ºcꎩ^ñyÜcÎÊÊ]£G5zÌ}aî s_8ãìð]‡ï:|÷•/\ù•'w†œŠ÷rXø×nèxCÇ:Fö¾¼äå%//y±Ô‹¥^,•–yòýÍßßüýÍõÔ_PÁ©þºnÇV[ulÕðëJûû=¼r÷ØñmZ4Ÿ×|^óy½Kô.Ñ»ÄÉ=sÿ-ý·ôß¾ƒ‘½³;Íî4»Óõ=¯ïy}O[@ÀÉ•òP+€ €ª­¨¶¢Ú u8[T8TáP…Cs›óØœÇNÅùsÎU8Wá¢?Šþ(ºa¿†ýöK{äsãu7^wãußÔù¦Î7uNŘó÷Èß#ñ³ÆÏ?ë£ß°¡¡ŸLùdÊ'SNòÓdø#Ãϵ{®Ýsí^¨öBµª]ïå2-Ë´,Ó²ø‚â Š/ˆìýµê¯U­šö«ÜòÃ-?ÜòÃW~õçWžºwÐÕï~õð©±Sc§Æž¬è7¬o¦¾™úf:cnõR«—Z½ôƃo<øÆƒ§b%nJwð’q—Œ»d\égK?[úYÑ/•èùjÏW{¾š:œ]ÂÏåÝØqcÇÿ]‘™µuÖÖY[ŸØÙÂ[=×›Zoj½©³;Ïî<»óƒ>xპÜ1‡ƒ·U«W­^µ:Ü’–§Š†ŸMÛn_»}íöÍ»|Þåó.¯ŠN{LÞÞy턵ÖN8²>'v¶ðókÃátÇ;¾ØñÅpÌîÍ~DZþ¤·÷ò]î:p×Èö9/ÌyaÎI[-ÞnzÓ£›Ýôh¸%&9&9&M»‘ÍY4gÑœï=ðÞï=ðu›¯Û|ݦԈR#J8¹¡fxN†Ï9|öðÙÃg_xï…÷^xÈEE.*rÑèf£›nöZÛ×Ú¾Ö6<Or›;”;”{îsŸ˜ûDdgøÉß6€`³4Vøy«ù&å›”oÒuO_÷ôuO¯Y·fÝšu[+o­¼µr¾Oò}’ï“ _ØøÂÆ¶º°Õ…­>ÚýÑîv«[ú~ÊoáÚ…k®]ÿ‹ú_ÔÿâŸÇÿyüŸÇ7·ÙÜfs›m—o»|ÛåÙ›do’½IìêØÕ±«ËÕ(W£\ÞÐð††w%Ý•tWÒe.ëtY§Ó¹Î/üÜÜkJ¬)±æÎ‚w¼³àò Ë+,¯sBTBTBTø™¾áXr\Éq%ÇÕxºÆÓ5ž®þVõ·ª¿U,ªXT±¨S=æƒ6Ú8(\Ÿê¯T¥ú+NùsÊŸSâcâcâc’š&5Mjax-r¸¶ ßjøV÷âÆ5Œk›!6Cl†ÓSÛS÷^?‹÷ŠÐ¡+ŽÒ;nÖ¸Yãf…Ÿ{r_QøyÏá§P·ÒbH‹!‹f/š½hö¦Î›:o꼥͖6[Ú.z¸èá¢ùßÍÿnþwÃwáºn×u»®[õnÕ»Uïvmÿkû_Û?ﺼëò®;3<üdî<‰yó$6~¸ñÃþ§Ù?Íþi~úòÖ›¶Þ´õ¦ Æ_0þ‚ñá;Rº{é7ø¨ÁG >ª\¦r™ÊeNõÌIi{öð&ð¿…~ ýªX¤b‘ŠE¬€S!=ä¡`8‡D®úã>¦ÿ{z¶Œ9¥q¦·ªžÜ÷r½•õVÖ[9µÒÔJS+ÙÞ¬T³RÍJ}¼äã%/98[îBúüÛ¶tÛÒmKß<|óðÍG¶ß6ì¶a· sç˜;ÇÜé«(œ:é!vàÜ!îuÙ8#=<ïáyÏ›ššúÚ¿ÚóÕž¯ö¸ gËÈ“Kz,鱯ö~µ÷«½)ÝåØbˆ}À÷6Ï€sZÍ5;ÔìPúÙÒÏ–~öÈökw®Ý¹vØ_Ãþö—*¥SºLé2¥ËŽ;vîØydûe.ktY£ðë¢_8€àœ~:ìsížk÷\»ÈÞ1íÆ´ÓîØ›x“„ïTd{§‡:=Ôé¡ð³‡U Îþé„ê¨[ n²5ÊÖ([ãÈöoøæoX™¼2ye²*¥O 1 1 1á;ud{ùËÊ_Vþ²Ú·×¾½öíÖþÀ¹C „B;B;B;ºÖý³îŸÙ| é¦š2`È€!Ö§Oûì;°oøNÙÞí›nßtûÆÚ_8×øø¯*ª¨ràž_ïùõž_l8dàCÔ'½‰/_4¾è€ÿ øÏ€ÿÙ^ÿ‹ú_Ôÿ¢Jö*Ù«d·öÎ5`àÿèñAz|pdË®™»fîšùd¾'ó=™O}Ò~çõ;¯ßyá»nÉU8Wá\…»í>¶ûX+¶àÜ$þü=ò÷Èßc`—]v9²}póÁÍ7+¦[Úli³¥ÍûõÞ¯÷~½#Û{UëU­WµR#J(5ÂÚ_87 €€£¸·ýÿû'ܲïµ}¯í{­ÕK­^jõ’úœY½¯î}uï«÷Ü;pïÀpK“úMê7©ß°_Ã~ û‰~à\&RÔ»Dï½K„?.YùËÊ_6¯ê¼ªóªZ|¦ì\»síε¿^ñë¿^n©z êªzÝÜëæ^7»/@´)ÉÖ$[“lMâ›Ä7‰oò:âCñ!kLÏ€ðS~¿+ü]áï GÞ…£Ü)àc0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€DtzDò´äiÉÓfÌš1kƬÿqhT(*u†èºA½® »®ëº®¯T®ëº®ëº®ë•º®ëº®ëº®W꺮뺮뺾¹n:»nTTTT”:÷º§Xº€ëÔªS«N­Š Å('ÆÐqZฃqã*:À©pZ·€Þz×Ö»¶Þ5~Âø ã'œ’ ØÙß+õJ]×+õJ½R×õJ½R¯Ôu½R¯Ô+Ua¯Ô+Ua¯Ô+Ua¯Ô+u]¯4Ð×=O6—Ò¬T«R­Jµ:M/"999999ÀYÎ3€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€H“v4ÚÑè³JŸUú¬Ò¹Y¤YI³’f ¬3°ÎÀ:ægV´pbÂÑoùÙåg—Ÿ˜˜˜˜˜˜<>y|òøuÔipND¡áè÷žf÷4»§ÙÌí3·ÏÜ>;ûìì³³ß=|÷ðÝf§ŸÀœ +î½âÞ+î G¿á––÷·¼¿åýcÇ?v|°_{dônŸy|æñ™ûôëÓ¯O?3€ÓO À ºìéËž¾ìéÈö`ÇÀ)E¿G*\¢p‰Â%ÌN?0'èó?ÿøóãòÄå‰ËÙ¼85ÑïàჇ~îl‚ @z#àe¾!ó ™o8b`Ñ/À©3ù‹É_Lþ"66666¶ç螣{ŽN¨™P3¡¦Êœ˜¨äääääd… -‚‘Š~NÃõ×;\/ïÔ¼SóNì}vгƒžÔzhë¡­‡ÆLŽ™3YÅRà `N‚à­ýœj_ß÷õ}_ß—Rï¾ñè›SlN±9V§ž€“&1°èàô¸~ðõƒ¯^é{ì#…Á©g hN‰³1Fýœ)á@wàƒø`8îMÍgÙ&:’€Sèl‰TE¿é‡08-Àœré9^ý¤gÂàã%à4IoQ«èàì" N 0§Uzˆ]E¿g;apJÀœg*‚ý0øH`ΘÓÇŠ~ÎÂ`0gØ©ŽfE¿ç¦s3 .œŠ˜Vô @ع €HGNVd+ú %ÁƒÀ¤;i‰oE¿¤^ðÂ`0éÔñF¹¢_Ò"a°€t-5±î€|4à£O;|ÚáÓ¢_Òîì ƒÀœR§Dô @Zœ]að €ccccccM ¨F 1dÄšw×¼»æÝ§çŠàT¸5ùÖä[Oër\0À)ñ]ÔwQßEÎ+FŸ©—:!qBâ„D·€Ô8Pÿ@ýõ»dé’¥K–Eã[4.õŸûôþ§÷?½¿jRÕ¤ªI* ÀñJì˜Ø1±ã¸×ƽ6¹Fæ™+5ŸÕxgãw^?øúÁ×ݺ;tš¶€>cÏ€ÔHš•4+iÖ=ÍîivO³™ÛgnŸ¹=ò˜ øhÀGŸvø´Ã§R:fððÁÃoP§AuT€cK¨™P3¡æÀ>8ðÁ7}ãÑ7MÍg=;èÙAÏj=´õÐÖCc&ÇLŽ™|úG. JMô{d¬{¼Ç«0G:{Cß# €HwÒåŠH½`„¾GŽœ¬øV @J‚úI @ºp*"[10aÁ}$à ;Õ1­àÜtGpÆœÎhV p.87Cß# €8ÎT+¡ï‘ÀœVé!‚œí„¾)p𤷨U pvú¦†€S.=G­b`€ôLè{¼ÀœBgK¼*H?„¾i!à”8#U10À™"ô=YÀœdg{Œ*8=„¾§‚€“&HÑ©àT›üÅä/&Ѥy“æMšûH¡oê €8 ‚—ŠNÃõ×;\/ïÔ¼SóNìúž0ir.D¤b`€SçÈuÀBß´p‚εXT @ú'àÕ.Q»DíçZ* =Ë œ˜¿ÞüëͿތlvü™ù†Ì7d¾áó?ÿøóãòÄå‰ËyÌÚåk—¯]n†púY À ÚÑhG£ÊÏ.?»üìÄÄÄÄÄÄsmåkäjà:Iu’ê$ ß=|÷ðÝf§Ÿ€4 ÇÀß.ývé·Këϯ?¿þüs­áøÃžöü°gëñ­Ç·oVp¦€Â3€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B `€€„ À!0@@€B ÿ?>Þºôñ•%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/timeoutWith.png000066400000000000000000001577411431412030200257320ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwPTçÞÀñ½šb ر€ŠEAEA©jlÁÞ{ïØ‚±÷^£‰Ý˜`ÃØ»ž¨!Q±aïF¬DöýƒûÎxg]‚õpü~˜y&㕹gŸýqÈ9ßìî'&€!|€1€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€†=&zLô˜ð¨ð¨ð¨È}‘û"÷¥5NkœÖ˜˜KOO¬Y1²bD›ˆ6m®»\w¹îÂÎ€ì… È6âSâSâS"¯D^‰¼2ÕeªËTggg«·fffÖ-´[h·Ð0·0·0·›½nöºÙ‹=€ll¡i¡iá¥àKÁ—‚Î÷s¾Ÿóµ oÞ*Ü*‹ø9ø9ø9,Ðh ´¡'BO„&Æ$Æ$ưñàÃ"t*>$>$>dkÞ­y·æ­ý öƒÚ¬>qÑã¢ÇE_èy¡ç…ž€'qOâžÄ S†)ÔÌß4¯¤-Q rÅ@ßç.s/mhÝËÊdêÛ7 «Ö={U÷k)¬m¶Ó#°×D׺Ž?½Á§·³ngÝîˆãÇ#Ž<¿ÅÖ›Ö›Öï»sìαo\Gj]ú;ù)±æ›šÒúü>×ÿ¾ÉUëéÔMj·˜\Á¹GÁrXÉü±Í;2ïȼ#I'“N&äI€ìˆ }"Þ«ÃM79Ü$ó7Çï«W Ò‰gc{–ôÝ’µ¹7ó«¶&èQuõ}J§S3sÌýû;÷w~ø,ðY Ï8¼Ø;±wbï4(Þ xƒâ™9wImÚÕ¡íɉë×yÎÎÚЛùõ¯Áû¢êŽŸ°±Oùò3ÿûîä¯'=ù+Ï8d/`èðÎ%ÏKž—y»)Å”bJaZ e{Êö”íí·ÜÞâÇÔ¯ì™TL|€Y ®e\˸–§ßKõÚ¬“dìôûêš6¢Ï9ÿG#Ÿ¹wu²øÖС›C7‡nf~|œ&|1á‹ _X:C.ï3¦©K±£¯ùáºêhK{âÙÞ³½gûäSɧ’O1? `èðVRíSíSí½Ã¼Ã¼Ã,ݰ¾^ºão›'ýþÏz³o§ïï{|á´×Òþ›rlʱ)Ì€Çæý›÷oÞo鬸ê§qº~ñ±¥ßW×c÷~©•ÏÒþ þuð¯ƒeŠ@ÀÐ'0à­L½2õÊÔ+–nRŸØî·:-?Òôûê«“úæ ø²û$G‡û–öêÑÅG]d¢Û…yæ]˜géL8wdp%çžsú}u•\—ðXgi¯¶¤nIÝ’ÊDÀ‡E†>€ÿRÔü¨ùQó-ݘ–g}{ÔãoÒï«k²{o¿.EŠ®)hc¾cAŽAŽAަ»¦»¦»LãIÖ’µd­pBá„ æçÀ®^M—8ô1‰ZP“ôûêºfñ„v®c-ý¶½Ýâv‹Û-˜.øPÀYeïÖ½[÷nMßÃi§mœ¶1®~\ý¸úìÌ¿C¼±¤òIå“Ê[º=ï˜w=çä^KëÝ]ו,íÞî»ì>ÀŒ0ž¹Kæ.™»Äü¼—?‡õ« Ïw‡Oós&÷¾fMˆÒüºýÑìÕ|÷|çûÎ÷o 5…šB™1xÿÀo/5(5(5ÈÒõ1øß!ÞØ‚É &/˜l~q^ål±_ îHÓg´ÿBoÆë·¦yÝ-ÝæxvèÙ¡g‡˜4ÆpsÛÍm7·Y:ã[Öµö}BoÆëÓ…ªµï(K{¸ïоCûø­øí½úÚߌƒ3 x8¬G°¯/A÷ß­ÓóÕîRá©ù®Î=gôœÑÌ€ì«í ¶ƒÚ2?¿í°—·ÚPRî¿[¯åØñÒ딥ßÈ/Å—âK‘Ù€÷ƒüîƒß)‹_.~¹ø¥ùöÂóu{TêNÄ}›5îL÷>k,ÝÂH¼‘x#ñ {‰-[.¶œ¥3[ÊÈcyüG“rßfí|«ÉT‡Âæ{{xëá­‡·2ð~€ßbð›"þAjóÔæ©Í-]TÇíïÞÖç'"îÛ¯£š¹Ovêa¾Ã:tbd/ó#æGÌxÍÛoZ²ÊUòíÛ¯êÿ6¡ÎtóöjéÕÒ«%ïøý#gð¢sFçŒÎi~ Ý3Ñ5Ÿcá6«Ö«jÇϼ4ó}¨P- s »H[”¶(m‘¥Û¯O{*q¾?T4½Ôx›]ÿy7‹lœã£”ß ¶¥ûÛ=1ßçûî?ºÿˆi€wüaƒ-!þÁ¨;£îŒºc~Ù|üZëâž•·Y¶ÞïÛ5 žãà‚¶C^ó)ËsãçÆÏeèßå…—^^h~ëò¢iG‡66ššàìž7q±êkðÆO6~²‘{¿ð΀õƒü*þ%`QZLZLZŒ¥Kå—BïÓþÍ·Y»®ôôóq9d¾Û²“ì$óFв¥Ÿ.ýt駯¹!Þj•}(pÖ®üGŸ/Í‘ÏUŸ«>W™Fx×ÀúD &,º~7ün¸ù…q÷`{‡»ÄÚw±^ë(zW5ßóà Á‚70“ôÏýK÷/Ý_“$ j>¾'Àïb-=¼äl·˜?®¤ÚIµ“j3“ðî€õïãŒÁ`€EtpùÅðîãûVo@¬}kjÁ>-üW›ï¹m#ÛF¶L‰¦DS"“ @Ÿ’Ô$5I5?ƒUà]à¡B©QðôÒ=+$š?®KÏ.=»ôŒÉ€w‡œ½|<1˜ °hüéñ§ÇŸ6¿¾µ¿Ó ï›ú‰¦±!]6ÔM˜>¿ö‚ŠV­UØQ²FÕëöy >.øcþ«ÖZ…>…¯Èå§8n+š8¿€wGgíqñnŠOm=gà–Y`_Ì|çŸ÷{Þïy?&€>Ýl}³õÍÖæç®Éƒûµ¬PJÏøä§ë½=uüfg©ú¥µ’>¶BÁížYknÑÎ_*=¶zÏ‘å<..÷©­ÏÑkU|ÍÏÍ×¶)Û¦l›ÂdÀ»CξŒƒ À‹¼MÞ&ï×ÜÔHŠï]Î/V¡T¹Ô †WñJvßÚÔµzC·":ýå}GŸxîI¯ÛÎ!æÇ|}ÿõý×÷3™ôI>,–›Ÿ»NY2È}±ž°ÝÛï­[gü[£Ìî’&Ûgg7nÞ\{Þpìå;êå5?æï/}éûKL&¼;`c0^ &,2¿Äµ®n5Ö*ȔҷO€ÿ‡M¤ ¡=çùÆ•ÿ®ð4»?Ó­lh¡» ïÕíW©WĦæÛk:³¯í7µÇËϾ«ñÙ„¤ZÅÊ/NMðÿ¾í§ðø¦Í݃Í÷?bNÄœˆ9L&}Z±kÅ®»^óFÄw¶Íñ*®çœnŒƒå&jºô+weÇ_ó¶Wûyp¡výËÌ´Îaõ‡UÀ«3Íþ÷ ÿ ú ÀI÷Ž|æ÷—ù# ¼x%ð “ ï󊉜Ý#€™_Öúû8^+f§‡Dšžuÿ›¥ã­4«±çG·ÛY§¥¸kþXO`;]Ÿøl®¶}j/0?æÍ!›C6‡0™ôé»ßÝøî†ù¹ëqˆhçÓLŸ8ÿ­üþV»„*?Nó¨œþw^ýTàôÞRo–¿[;]rð²¨ï\̰pÓÂM 7e2à}^1€$ûÆ`0À"óKÙ^á®m7è!‘ý¾…PóÐÐÕ&–už1¡ö½Š™yE¯y$Öçë€oî\¶îkÞÌsqìâØÅ±L&}ê v;ˆæç®BDK¿>ú ÀÝ®4»à‘™ ûêw5ìUg½—ÞÞºlÃRÃí ¼îwàý]1€*{ÅàOôó#п‰-œnéóU³§ÜTç>üYt±nx¥UúÀËvûO½ß™7ÆðrÇÑþõ€ågË¿«ñYf¾wÿØÅçÝ‹§WÙÐR‡ì*üÿo½àÚkª>*RŠy@oönÝ»uïV0@§ÆÿQsKù¦ú ÀÒ}¸Ï&ÉæÛÚ+Öæößâúãø‚5û”/ÛfrÅ/K.QÜ.Ìf”¥Ç¥·ÇòxQ·‡>­˜7ÆrìX}ÿ9ú À·"öìñ¾“™ï½ZrGC¯5¯û ¢—ìW¾Æé¢g™7ô&ù·äß’#tJo¯>^ªUŒç§Í¾tºU|jþ[ÖöV»,¹[´}×B¥»>¬<Ça¾ùÿÊ+€àÝÑó+€“úFþêw,3ßûbzDE¿¯û Â+€@F>¢W§¿:_|ñÅ_|ñÅ_|ñÅ_zþ2¿pÕÛgü1ÿUk-ýØ\óM.Øpòžå+¸ïÙÜøPõﯸtöêóò›Þ›üÝÓ¿ëRãöÒÿÞú×g¶ôÀÁñÁñÁñL&_|ñ¥Ï¯‹,j°ÈüÜ¥çÏÎü+€¯Çïšàí“þ]6§m>µº¯·lé3€™L¾øâ‹¯÷yÅôcîsÿ˜›1Þ×¾ÑûFïÝ÷Ó¾Ÿöý4óé7ýïDŸ Ð?óËWÇkÅìôHÕ/;Ö>,ý¨º]©|Ç!";Ï^ÿ gÝ‹Ú÷¬¡ÿ|6WÛ>µ˜çæÍ!›C˜LúôÝïn|wÃüÜõ8D´ói–Ý?øPÓ¥_¹+ÿÿŸ•/T°¡Žð²¨ï\Ìw¾pÓÂM 7e2à}^1¥ÇBvÆÒÃí´Ó6NÛ˜ùè›þ÷ßô}`‘ù¥¬uu«±VA¦”¾}ü?l"-öíêügÒê÷Ž-‡Ô*—™ï:Ô´éÙÿ¿}¯ç| ¾is÷`ó㌘1'b“ @ŸVìZ±kÅkÞŠÿÒms¼Šë3w»Òì‚CDf¾·õ¢ú9KÖHÿ®¶ÃŒ)ªŸœtïÈg~™ï|à•À+W˜LxŸWLàì.ûFßW€y›¼MÞ¯¹©‘ß»œ_ì‡M¤Î ‹,.04ýx¶ÔkXË­Ý?¼©òÞÎuëKÿ$`ýà¹'½n;‡˜çõý×÷_ßÏdÐ'ù°|X>l~î:8eÉ ÷Åú Àùoå÷·Ú%TùqšGeKßµ¥Þ,·vÿóŸãlZ]¶f!ý¼ùsìå;ê½æƒ¾¿ôý¥ï/1™ðî€ÁÑ÷U`€EãO?=þ´ù…î­ýnxßü°‰´÷B×õŽgÓ§Ô“ûm‹üz0p@• 7Ïtšã½í^¿®ŸÔsŽØÔ|{ÍB’j+¿¸Ð ëdK—îz À þ,³À¾˜ùq>ï÷¼ßó~L&}ºÙúfë›­ÍÏ]“÷kY¡”>pÙÐR‡ì*¤ÿóØê=G–;p¸îÒcŽ.(_=ßàBíú—™ùêßoØ«Î{/½}úoD¯Uñ5?7ßùmS¶MÙ6…É€w‡œ}/ú¾Š °èà ƒƒ2¿èÝ}¼qßê >l"}X§ÛWõNTèSøz\™¿\¿Ð¿ý—uæ;ž*8Àvú«þM벎ö#ô~S öiá¿ÚüÈmÙ6²mdJ4%š™Lú”¤&©Iªù¬ò§èõ€Ã÷¯êWãF‘~…Êçïñoûrí ÚފسÇûŽÞðôÒ=+$¾æÍ·Ÿ]zvé“ ï8{1vô}`ÑÝð»áwÃÍ/€»»Ø;ÜÕC.M?ž‰÷k(Ì«b)Ï"ß§6púêsÍ!¥èìçùL­ü[ªsŸþ¿¼ú(ÒãqÑv¶~ùWõëQeWé=<¢ëaEïªæ{¼!xCðf€þ¹éþ¥û—æç±„‚šï ½àô?Oÿç./›vqhSZ+éc+Xoça=·šêY¨ýä?ú­ªàþ4\­é;Ioé7}-=¼äl·¼æ#j'ÕNªÍLÀ»CÖ¿'ú¾Š °(-&-&-ÆÒ%ñK¡÷iÿfúÉÀoú¿êóÍŸWzúù¸2ßmÙIv’˜Iú·ôÓ¥Ÿ.ýô57Ä[­²¯¥‡\j)â¾éŸëa}ä'8ú¼&·û\õ¹ês•i€w¬Ogô}ðFÝugÔóËãã×Z÷¬¤·€š×û}»Ôs\0ÐvˆùnÇÏŸ?—i —^^xy¡ùy¬Ë‹¦Úè3£fßuóЫ>1ßíŸlüd#÷~à#ëÑ÷UüKàDçŒÎÓüR¹g¢k>ÇÂmV­WÕŽŸyiæûP- Z@5æ@v‘¶(mQÚ"K·YŸöTâ|n³`R|+Ø–îo÷š|ÿÑýG÷1ð®€?,¢¯%`À?HmžÚ<µ¹¥‹ç¸ýÝÛúüD¾}ûuT3÷ÉN=Ìwø ÓA§ƒ¼ù3€lf~Äüˆùæç´Ð­SKV¹J¾}ûõBýß&Ô™n¾Ã^-½Zzµdàý ¿DßÌ 2eñËÅ/¿4¿^x¾nJÝÉ·o³ÆéÞÃg¥[‰7o$Þ`d/±åbËÅ–³tfKy,ÿh"îÛ¬o5™êPØ|oo=¼õðV&ÞðûAô}S`@¦<Š{÷(ÎÒ¥u|X`__Rî¿[§ç«Ý¥ÂSó]3zÎè9£™=ÙWÛAmµd~~Ûa;/oµ¡DÜ·^˱ã¥×)K¿‘_Š/Å—"³ïøÝ!ú¾ 0à „” )RÒü2{r¬gµ uH¹oºÞmÙ¥VÝ]–n^<^þxùãåL€ìë|›ómη±t–{13¢’_G‚ߞñZüákÞ^Ûj eèà½"g-¢oV!ÞÀ‡,]x_ é0Ï+„¬›ùµM‡ )%{™ïä¬Ö³ZÏjͼ0†6sÛÌm3×ü\7cÙ Ît3¿*¡+>­ájé·pÒõ¤ëI×™7xŸÀoèû.€olÁä“L6¿¯r¶Ø/w¤Žé3Úq7ãõ€[Ó¼î–ng<;ôìгCLc¸¹íæ¶›Û,ñÎ- ëZû>q7ãõéBÕÚw”¥=Üwhß¡}üÖ€€üöönÝ»uïV¢oÖ"ÞXRù¤òIå-]–Ï;æ]Ïy'‰×âÛ>ÏèÒ¸®di÷vØ}`÷f €ñÌ]2wÉÜ%æç½ü9¬—XMx¾;|šŸ3¡÷5kB”à×íf8¨æ»ç;ßw¾ï|ïþ øí¥¥¥}³ð/EÍš5ßÒ…º<ëÛ£“{_]“Ý{ûø½p)RtMAó r r r4Ý5Ý5ÝeºO²–¬%k… 'N0?võjºÄ¡éHÔš€šDßW×5‹'´ské·íí·[ÜnÁtÀ‡BÎ*¯¾˜èûöÀ€·2õÊÔ+S¯Xº1}~`»ßê´$ý¦%õÍðe÷I.Ž÷-íÕ£‹.>ºÈD0¶ ó.Ì»0ÏÒ™pîÈàJÎ=‰¾é«äº¬€Ç:K{µ%uKê–T& >,0ô‰ x+©ö©ö©öÞaÞaÞa–nR_/ÝqŽ·ÍG€oöíàýÝa/œöZÚŸcSŽM96…YðñؼóþÍû-Wý4îO×/>æô{ìÞÏ!µòYÚŸÁ¿þuð¯LèúDd¸–q-ãZZeèR½öë$}D¯úÑçœÿ£‘ÏÜ»:5µ´'¡›C7‡nf~|œ&|1á‹ _X:C.ï3¦©KÐÇ–~#\W­‘biO<Û{¶÷lŸ|*ùTò)æô€ }"²Ì76ÞØ˜q>ڿžšûŒ~_tèUÕ/¨í©ŠÓK´´³×Í^7{3àc–žžÞmq·ÅÝ[:[ŽÖÛ£¼gêƒß+ú7vúÝzaNc·¿-íCáó…Ï>ÿ$þIü“x&ôƒ }"²ØÅ‹/^¼˜q^yÇo’ËMã¥ßë :.÷.V"Ý:›¡–ûäí“·OÞnJ1¥˜R˜HÙž²=e{ûÇí·léÌY¿²gR1ññ8±°¡^œZÿØÿMãJöª\Îâc·K´K´K|ù0òa$ÓzC†>€ïÄ5»kv×ì2ÎÀ+—=eí^`—§õJg÷ô»áçú«6Íøñ.˜º`ꂩ̘K­šZ5µê€r È‘ñ¹T ÿIõ˜™ÝÓïÅ»[#êÜ.» T˜]K´â슳+Î~ü÷ã¿ÿÍ„€>€¡O`À;ôÐæ¡ÍC×¥®K]—f|Cõeÿ:®-LÎ}‹È.Ñ÷|\»+u†ÕÜ\b^á‘?º-á[·„3ð6™6™6Í0oÀ¼ŸWÛ­hؽdì_ëö=­;;»DßÄY ~?N=8 d…õ?º¶cÛŽm;öÅ´Ó^Lc(@ÏÀÐ'0àKž—¿Ïõ¿Ÿµ¹÷tꦵ[Ì ®àÜ£àÆ9¬dþØæ™wdÞ‘¤“I'“Nò$@vD†>€Øå\—s]Δ+(WP.«¥ôí‚§l#zµu­â8QŽºÃ* ømtín?~Ö,Ø£¤VåÙ€wíyþçùŸç_¸oá¾…ûÞæìý­Ïãâò”ý‹VhZlÊÖ*Âþ‘‹O¹Sö¬ÈWÃM·b‡œ—Ä»Ø\yÆúª7çl:ÏÙ£SíÆµJ,l]°XþÂÿîÿw ç@Ïž±Ýb»ÅvãÙ€ìŽ }"täò×—¿¾üußð¾á}ítÉÞÉÞÉÞiÛ½m÷¶ÝKJHJHJàY€åiâÓħ‰«‹¬.²ºˆ•ŽMøb¾¸[în¹»åxÖÀHÀÐ'0@§âCâCâC¶æÝšwkÞÚj?¨ýàCݸ=.z\ô…žz^èÉózv|Ãñ Ç7 ì<°óÀÎê·Æ·¥¾-õm©Ã6‡mÛ$WK®–\猊 }"²ø”ø”ø”È+‘W"¯Lu™ê2ÕÅÃÙÃÙÃùíoÖ[‡Y‡Y‡u íÚ-4Ì-Ì-Ìíf¯›½nöbÏ ZhZx)øRð¥àŸóýœïç|­Â[…·Ê²w˜ðsðsðsX -Ðh'BO„žMŒIŒIŒaãÀ‡EVô˜è1Ñc£££"÷Eî‹Ü—Ö8­qZcv`.!°|`y«d¤çHÏ‘žg\ϸžqåyô#>$>$>dkÞ­y·æ­ý öƒÚ>ÔYb\ô¸èqÑz^èy¡'Ï  ç>žûxîú™ëg®ŸYµWÕ^U{}¨³ÄôRÓKM/uÕÿªÿUžÀHÌÞ·;nwÜîÈÎôŒ €÷êÆ•Wn\QrDÉ%­tlƒçÏ ž/j¼¨ñ¢Ïð>]þúò×—¿îÞ7¼o¸>ÏöNöNöNÛîm»·í^RBRBRÏð>ÏŠgÅŽ :&èó,QÁ·‚oßýeö—Ù_&Å5Å5…ÿ¼ ÈÆÀ€ìˆ €wîæ´›ÓnNë|¿óýÎ÷ÿå›.V-6%ÿPF-æÚ—ntdtÞÒÛu\^îL·¢k+öíÙê×Îc{lúEpöíütÅ” ;ZµšuÈi¬ò g‡ÏÖ;UxÁÛÜÆ]¹åþ•û“Z%µJjų ¼ —s]Îu9WP® \A¹þÝÏiéÛOÙFôjëZÅqþ¢u‡UðÛè†[Ý~>ü¬Y°GI­xPcªâ”£Fþ½kš¨¾ógŸ׫cÖø½\dÀ¸Ò-‹ux«ÿd¤Õ†VZ½|úòé˧<›À»pæÒ™Kg.ùÎöí;û_FÙm¥ï°í×¼Õ¶Ò#~X;êhå\ÛŠÌ™àfÎþ”Ç£¹Öke×Kä‹Ë»×øtÏÐ…#«Z5^pm²·Û§¸zÜ-ý6g‰Âa‡ú õAêžM {!²#0Þ‰çÏžL\;qíĵ™¿=Z8w‰Ý6_5õ×¥L©ÁÝ÷Žr97iRLŒ»{V­ÚŸ)P}\Ïr¿®pX§V§¿JÓ¸‚»à.¸óüoïIÜ“¸'qÔaÊ0%ó?ƒ•´¢% D®èûÜeî¥ í¯{Y™L}ûdÕú¢g¯ê~-…µÍvzöšèZ×ñ§7øávÖí¬Ûq<âx„›Â@xøÇÃ?þѳ|Ïò=ßàC"jôvY[¸Ò:ÛIM«ä»V}§£×“)** «ÖøÑЇoýËǹ—éôyãü¥¶fþØç;ÎwœÒï¤ßI?ž_ » ²#0²X¤©Fª™¿ڰψXÇÉ!WŽ*n-²6÷f~ís=¬P¥0×k Zý$3ÇÜnI»%í–ÄYÅYÅYñŒoêp“ÃM7ÉüYbñ¾z*x6¶gIß-Y›{3¿jk‚ÕXWß§tj±Lßú;÷wîïü,ðYà³@žqàMmOÚž´=é Þ«có8—3IW"ÓünemîÍüzxùVy=kV9[8:3Ç<úæè›£o&ÎLœ™8“gÐ30 ;" ¤N=œzxZ›im¦µÉÌMÏ6gç(4>GôÁê_~¨èki1Pù´ÊÅ:}:{”¨”™Çr4æhÌÑfÈXò¼äyÉóF<ñxÄãÌüdíìÖhR5á¥cïåþ•>Tôµ´^ËÝÑÁët×;•g:ÌÍÌc9ûtîÓ¹™ cÏ»<ïò¼K!=Bþáƒ!¾²›aýë¡EK빟L-vl¦ÿš}-­ç_üV¯ÎðvþõK Êø±ØN±b;årÅË/Wd}"²#0ÞJ|ïøÞñ½ý—ù/ó_–ñ-Î&íÆüQúô„ÛgÿS}‹Þ¢¯¥uXÁ¿Š£³M݄½2~t«L«L«à5Ú<´yhãºÔu©ëÒŒŽV_ö¯ãÚÂäÜ·h@½E_Këù¸vWê «¹¹Ä¼Â#3~t[·„o gs·gÞžy{f‘áE†žñÏÑæ63ŽT}¨·Ü›ñýõ†üžaN!]íÚeüè¶<Øò`KæÐ0 ;"à_º»ñîÆ»mFÛŒ¶méVféFnÝ œ>\jRezv‰¾–ÖN~ò­?ã[·ãbÇÅŽ‹5õ0õ0õ`B€kv×ì®ÙeüSÓ¸rÙSö×îvyZ¯tv‰¾–Ö ?ןXµiÆwÁÔSLe6€tg=ÎzœõÈø§¦Spã¥"ãÊŠ+}¾Ë^é÷Ö²QvË¥1‹\þá?)[{~íùµç™ @?À€ìˆ €7v{öíÙ·gg|û²QÙïâKœä3ÐÝ!»§ßW×Q94µj—R¾• Øýaé±?düñ&k“µÉšiÁÇéâÅ‹/^ü‡Ïì¼ã7Éåfv¾æëõ—{+‘ÇnÍPK}òöÉÛ'o7¥˜RL)L >N'vžØybç?¼Þ÷ÀL·O³qôµ°Æ¬ßR³N¹Œû’ K&,™Àœz@dG`¼û‹ï/¾¿8ã[–Ý\× ¨8ÄHÑ×|Pãô…êÃjOìZüº¥}ucÔQ7Lñ¦xS<“ƒÇ76ÞØøŸœÝ¿Å¾šûŒ—~_]_tèUÕ/¨í©ŠÓK´´³×Í^7{3ƒMŒkŒkŒë?|rvó1µ+/ý¾ºÆ÷Tœ|Ýü«Ö\WÌÚâLĬŠYÃÌ€) wî$Ü)U¥T•RU,ݦgû²Êû~ÿgí³Õ½rÃ\#<»ZÚ“Åa‹Ã‡1?øĵŒk×2ã¨s©^ûƒu’Œ~_]ÓFô9çÿhä3÷®Nß:tsèæÐÍÌ>wï:ÞuÌø,q»íÞòuó;ý¾º¾Œ>:Í¿E·˜fgÂ-íÉÞÜ{sïÍÍü €ðO†˜†˜†´™ÒfJ›)–nMê°;ÌeüG”~ÍÖoJrv”-íÏÁäƒÉ“%Uª}ª}ª½w˜w˜w˜¥Ÿ‚ë¥;Îñ¶ùxÒïÿ¬7ûv ðþî°ÇN{-íϱ)Ǧ›Â,Á¨ÓÓÓÊ-S´LQK?÷¬\¨WèãI¿¯®i-~맇ý·§óYÚŸsãÎ;7ŽYÞ?0 ;"à,ï´¼ÓòN–nGöMùí³ÊŸÌé÷¿ë„˜ÓîÕ}|zo/eñUM¡·Co‡2Q0ž©W¦^™zÅÒäŸØî·:-?Òôûê«“úæ ø²û$G‡û–öêÑÅG]d¢`<ƒ7Þ8Øâ›ÃßÜ¿û–÷¦3ý¾º¦ô?šæ?ª‘­wnû5–ö*¡RB¥„JLð>€ÙtþÑùG–nAvø}‰©ü/¤ßW׉ÎÙU¿^±¶÷øÂ%ÌwÌ#G€³Ê‘¨#QGþûËŽ^7zÝèu÷½ÿëý_ÙxÀxÔ©R”ý³ìŸeÿ4¿åáÜ'WÉKä^Këè[¿ÏtÛbéf÷:çuÎ뜙1dwIå“Ê'•·4çóŽy×sÞIîµ´ÞÑ¥q]ÉÒîí>°ûÀî̲»øËñ—ã/[ümh;©i•|ä^Kë¯í˽XÚ½ˆÚµ#j3cÀûAÎ[L[L[lر=b¾ŸÄ`xÀxÐÊ¡•C+›_œçw°Ùb¥ŒïyªwugBoÆkŸš›* ³tëöaøÃð‡áL²¯“L^0Ù|¶«œ-öKÁ©cúŒößCèÍx=àÖ4¯{ ¥³Ä³CÏ=;Ĥ!û 9r0ä ùl7nìlÿ—iuÔøWBoÆë†ÙÓ–Vmhé,‘üCòÉ?0iÀ»F~{¯¾ö7cÄ`È*`ü§Ëž.{ºÌÒyÿÛÛ;TÞBÜÍüê5«k•óÌw2xvðìàÙ̲£8X:K\ é0Ï+„¸›ùµM‡ )%{™ïä¬Ö³ZÏjͼ!;º>úúèë£-%b›ð¯ûˆ¸›©õÛ(߀u*¹u(RÏ|'×<]ótÍSæ x×ÀYp¹ã鎧;[TlQ1«L#ÀÛ à,ر`Ç‚æ—ßž7:Ì-FÐ}Óõ{ûßãÜ,¾Ñëí·WÜ^ÁÔ!{ )R2¤¤ùk,%o$ÞH¼ÁBÿÆä“wL^óÞÐrZÿªuˆ¸o³ÞIÙ7´nOKg‰Ô© R0À»@~?ˆÁµÀ0™™™,X<Ðü¢zÄ åIÕψ¸o¿6z2ºeéöæ;¼Þy½ózgÆz–Ú<µyjsK·Þâöwoëó÷í×QÍÜ';õ0ßáƒN:1‡Ð³ÄÞ‰½{[:K¼h‘Ç/ˆˆûök‡YßüUªùG­Zµ–9ÞðûG €·G€éZÝku¯Õ5¿„®ØÚ{kár„Û¬Z¿+q¤ªf¾Ïe{—í]¶·)Í”fJc¡OÑ9£sFç4ŸÞž‰®ùC·Yµ^U;~æõš³D@µ€jÕ˜Cè™ì.»ËîæÓ;¡vï3åûn³j=©­?ç¹Ü|Ÿ»í>¶ûXæxÀ1þ0L ë-¬·°žùes·”µÑùÜß,^Ë-®u©PmóÝŽ½{5ö*Ó}ugÔQwÌçöøµÖÅ=+n³l½ß·k@=ÇÁm‡¼æS–çÆÏŸË4BŸÚ?jÿ¨ý#ó¹½´}“×ÂmV­i¹~÷ò?mñS–×&­MâuÀ@#ë12 S©˜R1¥bÌ/•Çþr¢Uµ¥$Û¬];^:³¼h¾Û[ún黥/Ó½I‹I‹I‹±tCí¥Ðû´3ÂmÖ®+=ý|\™ï¶ì$;ɼ4tçåg/?{ù™¥³„©T”}€-á6k×)-û^¡¥ùnG{E{E{1“@Ö"ë12Fø¨=¹ðä“ æÆåƒkw.4Xû.Ö»#ÝÝò›ïyË-w¶ÜÉLBoî†ß ¿þš· v±w¸K¬}ëõ°Ž¢wUó=Þ¼!x3 ½¹˜z1õbªùÄŽKèu¦|qbí»XO ÙXÖó¥ùžÏ¹7çÞœ{Ì$µÀúG s`€Úóþ˜÷Ç<ó‹á=§·)C¬}'k§˜ŸÜ+Xº ‘æ™æ™æÉdB?:8èà óYÝ}¼qßê ˆµïbM-ا…ÿjó=·mdÛȶ‘)Ñ”hJd2¡¡ C†.4ŸØ#?­ÙTs±ö]¬/ŽFtòëo¾çî'ÝOºŸd&¬EÎ^ˆÁŽ ðQ[öÕ²¯–}e~иku¿W¿÷DþÖU«ŠÍ}ºé!—Z½5}fàr·ÇØm1?Ú”¦)MSš2™@V!g_Ä`30ÀG­sPç ÎAæ½cªÿq®Z1=„ÒÿÐd« V¥¿_Uð‡ûéÇî“B[­÷ «+T«R2ãïzÿkëŽs¦;1ßùS%N•8U‚É„~x›¼MÞ¯¹õ™ß»œ_ì‡M¤)µû|ê? Ô':ÛÜþßTóÏßÛåeåªmÒÿ~5Õþ`¡ö™ÿÞ÷³Î=éuÛ9Ä|ç¯ï¿¾ÿú~&úaËþ–ý­×¼§E›ß'øß5FÖgömÇeÇšçÃé§?œÎdY…l Ä`0ÀG­l“²MÊ61¿Ð¸ÿÜÈêOõ“K_=¶‚^Å–å1ªax½ª!¯þAÍv/uù>›—V'þûFÖõ§—)û§ÞÒoúÚ÷Ò–•ÒÌw~gžyvæa2¡æSj]Ýj¬U)¥oŸ=„ÒW­ú®â¶…fü÷B{Îó+b³0¿kúwÍn^çyÅ{z Àâ›6w6ßÿˆ9s"æ0™ÐóY¢Zcç~…êê'”¦UB¨¶Ó7.ãU;²ò·aÖÛyXÏMÿ®®›Ù;Ì×gþ5jÊà*aæûÎ÷œï9_&xwg9pvG ð1 |ÔÌ/k •¬iSVo¹Ôüí _ͺËŸ[]sºPsiÁÿ&U—GÛ‹lÓó'—¤SUÖšïÿâ‹ ,.ÀdBÏg ÇkÅìtJ6upoñº×ê½þï‡5kpÝ­ôcv«~V×ã;^ðöÑÛ'ŸÍÕ¶OíæksÈæÍ!L&ô|–èQçÛGŽvÙëSuoïÝ;´n±²¡¥ÙUHµTÝ\$ßó¥áƒüÊêó˜ÃmVÞ«qØ|ÿ¥/¤/¤/˜LàÝåÀFB `T`€šù¥l…}^K Åë3šš¿t‡K?+Ú$xÌóÒ—^}}ðÈêöªÎú|íoú:ú—ß‹¸-5ßÿ1D ™Lèù,Ñ+ܵ­ãý„Òäv½›ú™ŠW²ûÖ¦nfp›É¿,98ýïÔŸR¦@±h½½ö7}½=¸sÙºy_óŸ‰Ä.Ž]ËdBÏg‰I}O–™]Òï³=j‚ïÏ6UŽI?þROŠe[äÆ­Ýµ½¿ÓógŸ›Ö±ö=óýó ó ób2ww–#1€‘€>j¯yÛÆÉMws×ókgÿçõÊ—jdÓÞ¶HA{ë¾éÒ¶Æ|­Ü0=§ßÿ¾¦yÀñÕ¦XÙPÈDN·ô–K_=º_•Š+òšÏ'þû“îÃ}6ÙíÉ_Áºuúß\›Û‹ëú ÀËvûO½ß™7dG‹wŽÊWé¸þÓoªó±¥þ¿´ZXòÓô#Ï+¿¿Õ.ùÙòïj|¦çô›¾^/¹ó’· ózðË7¿|óË7Üa@€N°ÇÉ–Ãì›é:Zx;èjýšN-VYÏGþê:Îïä jp£ÙÑø?jn)ßTo¹tÏæÆ‡ªŸñA¯;p J­ô?OÏÀéIXo%}}¼¨ÛCŸV̲£eí¿ã’ ÞzÔ‚®_: {õÈ—® i]y”þÓoúz«ú?ïæ ôàÉÚ'kŸ¬å0t€õÿ `ó×§k=`ÎÏN²KæÀȾôù àÄïz­ð[\´­_þU–pÓ¢N³Š7IÿóŽ5œ£J7ÿ;¼x{úðJŸ±ª‹ðê1÷^ØbºãÙìõ¹Å¼ôƒW @×XÏŸœ¾Íq k—Wßö9]úÛA‡¼<úÌ­“þ°¥ÏîÔ9¨sPxN¾øÒË—ù”êí3€-½tÃ^eŽÙ{¥ÿùýö]ÛÕë–ÿ–µ½Õ®ôÿu×ÑÆyªçÓç£Èø3€ƒãƒãƒã™L¾ô|–Ðóg®»ô˜{bú[=§mݯª¯,›ø]Ä]¿ÅÙ+[ú à)ÁS‚§3™|ñõîÎr3ŠÏ(>£8;c¼¯ƒ3Î88c財ˆ.Ë|úíœÚ9µs*Ÿ € ]àÂA%kÚ”Õg4XþìØêZ9ÉÓ©PÃô£uù, D‘îéé÷n=ë>—¤SUÖ¾æUSX\€É„žÏþ>Ž×ŠÙé3šnþMrµ~éÇio¥YMÿçeC|k¸Iÿç’_øÍoÉíz7õ3é9ŸÍÕ¶Oíæû¿9dsÈæ&z>Kô¨óí#Gݽô¹ea½j?°¯]¤³ÍéÇYZ+éc+ÜÞ»whÝbÿÿ~Ù)‡Û¬¼Wã°ùþK_H_H_0™À»;ËmwÜî¸Ý‘1†§íŸ¶Ú~Q±EÅË|ô½nôºÑ눾ôŒ ðQ+Û¤l“²MÌ/h'î?7²úS½EÓFÕB¾,ýßËòm‹~–¿ÜÈêöªÎ¯ù¯°Ÿ®˜Ra‡žpßK[NTJ3?òyvæÙ™‡É„~˜O©uu«±VA¦”¾}üõMŸ/íëW¶pˆÍÂü®¯sÀ/¥»ë™þÏC’«9•y®ç7N_Ä7mîl¾ÿs"æDÌa2¡ç³DµÆÎý ÕÕO(½ßþàåzÝ*y–½Y`CúÚ†ÛˆÖ%#6­.[³PvL¿éë¯QSW 3ßÿs¾ç|Ïù2™À»;Ë€³;¢/€ࣖþ†Ãæ·cªÿq®Z1ýäÒWvýéÒ"¿b«Yý7Û´84ýqÙg¯¾Þ·Ê†§ŠÖOÿ“¢‡J¶yöý‘? º%ê3·î8gºÓó?UâT‰S%˜L臷ÉÛäýš[ŸIñ½ËùÅêÿ k7(9£H¾Wÿäè÷-„š‡ôœ~Ó×¹'½n;‡˜ïüõý×÷_ßÏdB?ìoÙß²¿e>«im~Ÿà÷Ã&Òô7vö=Yc^QåÕc{õ3€³cúM_‡}Ûñ@Ù±æ;ÿpúÃé§3™@V!ÑÀdž ðQ[öÕ²¯–}e~¡;hèî.ÓôJ'ø~X}T™Õà z¥›s«zý ôuL>÷ÿy«çôÿÕnXáQÖ—õÿvе>iëWüKó¤>R©L&ôcüéñ§ÇŸ6ŸÕ[û;Ýð¾©Ïtº¥^ÃZníÌÙžèÚ‚¶úíoúÚàÏ2 ì_sƒòy¿çýž÷c2¡ÝÏu?×ýœù¬>>*6÷éöai—/šüêàðêQu?þíR‡”g{Ôß ¡ÚN߸̬ú Àån9ޱÛb¾ó)MSš¦4e2¬Bξˆ¾>f`€Úóþ˜÷Ç<ó‹Þ=§·)£‡P¸o¨»Ãªÿ¾ac‘‚öÖ}‡Þ=xÑõ7Kq×ü±tO]·Ðù àN1?¹W°t»!Í3Í3͓Ʉ~tpÐÁA泺ûxã¾Õè3> ïqÉwRõù§XÏ}õ˜§þæy¹Â/úÀ©û´ð_m¾ç¶lÙ62%šM‰L&ô#taèÂÐ…æ{ä§5›jÎø°‰Ô*‹è-ý¾8Ñɯ¿ùqºŸt?é~’™²8{!ú@:0ÀGíÉ…'ž\0¿.\»s¡ü à~¶~[¹¾õe›ªV›Òªñœï{–žŸñëz'®<Pý^ùªžq…†¾úˆÆ–8>¤Z?=à»#ÝÝò›ïyË-w¶ÜÉLBoî†ß ¿þšÿ´"ØÅÞᮞ3ªù1_jÜ^ªóRÿ¯ý½ÖQô®j~üÁ‚7o`&¡7S/¦^L5ŸØq ½Î”/nŒ¬· |jÈÆ²ž/Ípν9÷æÜc&¬EÖ?¢/˜#ÀT*¦TL©óKⱿœhUmé‡Í¥ÿîmœÍ¿K?oݱðÒ™åEóÝÞÒwKß-}™FèMZLZLZŒ¥g/…Þ§ý›é3£öV¥miŸôãô¹æRtvvyó畞~>.‡Ìw[v’d'fzóò³—Ÿ½üÌb4-e`›}?g÷Õ¬Ÿã™Ò²ÿçZšïv´W´W´3 d-°>} c`˜Ö[Xoa=óËãn)k£+îÖçgèfßµÜâZ— Õ6ßíØ«±Wc¯2ЧQwFÝuÇ|n_k]ܳ’Þêó¥=cýÊûÆvuþ3éǹlˆo —"Ù ßïÛ5 žãà‚¶CÌw;~nüÜø¹L#ô©ý£öÚ?2ŸÛ+AÛ7y ÉîX?kZ®ß½üO[ Ik“Ö&­e¬EÖ¢/d¦ku¯Õ½V×üR¹bkï­…Ë‘l³jý®|Ä‘ªšù>—í]¶wÙÞ¦4Sš)i„>EçŒÎÓ|z{&ºæs Ñ[Fý96 s•\éGhsÚz”Õý‡uº}Uï„þ_û{Uíø™×kÎÕªTc¡g²»ì.»›Oï„ڽϔïC¸Íªõ¤¶þœçò×¼-ÿØîc»ewüa}àß!Àd:d:d:T<°x`ñ@ó‹ç/”'U?#ß¾ýÚèÉè–¥Û›ïðzçõÎëCèYjóÔæ©Í-Ýb‹Ûß½­ÏO*šþý¤ûqŸk ¡=çùÆE5iù{­Nާ °þß(rÜÅÛ!%»¼ùó¨fî“z˜ïðA§ƒNyógèZbïÄÞ‰½-%^´ÈãD¾}ûµÃ¬oþ*ÕÆ|‡£ÖF­âµ¿À;A~ÿˆ¾ðöÀø¯MS7MÝ4ÕüBÚgeŸF%ï‘oßf×åäÚjg-ݪx">ŸˆL ôoñËÅ/¿4Ÿá…çëö¨ÔýCEÓ9¾^ÍœKšUÑv¶~ùW]ìоgý§ß¸3Ý{ø¬±t–H¼‘x#ñý“wLÞ1yÍgxCËiý«Ö!ß¾Íz'eßк=-%R¤.H]Àïøý ú@Ö"࿞þüóçŸ[º´•ñ]U>ø_®Í‡LÝRö5q}xñáŇgö]<Š{÷(ÎÒY">¬G°¯ïûO§+¾õ}à2=ÿ-k{«]éGR«w‰3…>6 eÁšO²Ëk§ç«Ý¥ÂSó]3zÎè9£™=d·†Þzk¨ÅO¨õˆë'’rÿÝ:hVÛ”2}Íwuݤu“ÖMbö€w‡üî}àÝ!à,ر`Ç‚æ—Ùž7:Ì-FÊ}Óõ{ûßãÜ$K7/n¯¸½âö ¦ÙKHÉ’!¯yÅíäXÏjê|¨€šþÐuÝ]oYúŸd—ô{·e—ZuwY:K<^þxùãåL²—Î:7êÜÈ|ž—E~Â¥)÷M×Ëù¶mñr²t–xÞãyç=˜:àÝ!g-¢/¼`üïù²§Ëž.³táÝÿöö•·u3¿zÍêZ¥Ä<ó ž<;x6ó†ìèÇ–ÎWB:Ìó ÑvÕÏÚ¦C…”’½ÌwrVëY­gµfÞ]}}ôõÑ–Î±Íø×}DÖÍÔúm”o@‰:•Ü:©g¾“kž®yºæ)ó¼kà,¸ÆÜñtÇÓD_xŸÀxÐÊ¡•C+›_„çw°Ùb¥ŒïyªwugânÆkŸš›* ³t;ãaøÃð‡áL²¯“L^0Ù|¶«œ-öKÁ©cúŒößCÜÍx=àÖ4¯{ ¥³Ä³CÏ=;Ĥ!û 9r0ä ùl7nìlÿ—iuÔøWoÆë†ÙÓ–Vmhé,‘üCòÉ?0iÀ»F~{G¢ŽD‰"úÀûDÀk¤H: ìŸeÿ,û§ùe¹OpŸ\%/‘x-­£oý>Óm‹¥›ëœ×9¯sfÆÝ%•O*ŸTÞÒœÏ;æ]Ïy'‰×âÛ>ÏèÒ¸®Å7‡ß}`÷ݘ1dwñ—ã/Ç_¶øÛÐvRÓ*ùH¼–Ö+^Û—{ °´{µ#jGÔfÆ€÷ƒœ¶˜¶˜¶Ø±=b{„è ïtþÑùG–n>vø}‰©ü/äÞW׉ÎÙU¿^±¶÷øÂ%ÌwÌ#GŒ£~ÿúýë3WÀûDÎ*¯¾˜è ïÿ`y§å–w²të¶oÊoŸUþœô;iBÌi÷ê>>½·—´øæf·Co‡Þe¢`˜Ì(Á¨RíSíSí½Ã¼Ã¼Ã,ý\/ÝqŽ·ÍG€oöíàýÝa/œöZÚŸcSŽM96…Y‚Q%¦%¦%¦•)Z¦h™¢–~ îY¸P¯ÐÇ™~ÓZü>ÖÿNûoO;æ³´?çÆwn³¼`@vD@¦$ÜI¸“p§T•RUJU±tkr@žíË*ïÿˆÒoÿ˜­î•æáéØÕÒž,[¶8ŒùÁÇ ®e\˸–VºT¯ýÁ:IÑ«~Gô9çÿhä3÷®NM-íIèæÐÍ¡›™| î:Þu¼ë˜ñYâvÛ½åëæùxÒïËè£Óü[t‹ivÆ!ÜÒžìͽ7÷ÞÜÌð¡€Ùoàþâû‹ï/ÎøÖm7×5*1vúPãô…êÃjOìZüº¥}ucÔQ7Lñ¦xS<“ƒÇ76ÞØ˜ñYâhÿûjî3vú}Ñ¡WU¿ ¶§*N/yÐÒ>Ì^7{ÝìuÌ >61®1®1®Ÿ%N7ßS»²±Óo|OÅÉ×Í¿jÍuŬ-íê˜U1«b˜àÃ"²#0ÞØíÙ·gßžñ­ÛFe¿‹/]p’Ì@w#¥ßQ94µj—R¾• Øýaé±?düñ&k“µÉšiÁÇéâÅ‹/^Ìø,±òŽß$—›ÆK¿×t\î]¬D»u6C-=öÉÛ'oŸ¼Ý”bJ1¥0-ø8Øyb牟%6˜iãö©ñÒoÌú-5ë”Ëø±/™°dÂ’ Ì  `@vDÀ¿twãÝw7ÚŒ¶m3ÚÒíËÒܺ81|¸Ô¤Êôìž~;øÉ·BþŒo׎‹;.ÖÔÃÔÃÔƒ ®Ù]³»f—ñOMãÊeOÙ_»Øåi½ÒÙ=ýnø¹þĪM3~¼ ¦.˜º`*³¤;ëqÖã¬GÆ?5‚÷(WV\éó]6N¿e£ì–Kc¹ôÊøñ®=¿öüÚóÌ `@vDÀ[‰ïß;¾·ÿ2ÿeþË2¾¡Ù¤Ý˜?JŸžpûìªoÉ.ÑwXÁ¿Š£³MÝ„Âÿp»v•i•iã¼ÆC›‡6m\—º.u]šñÏÑêËþu\[˜œû (]¢ïù¸vWê «¹¹Ä¼Â#3~t[·„o gs·gÞžy{f‘áE†þ¯ n3ãHÕ‡Ù+ýF½!¿g˜SˆCW»v?ºƒ-¶<Ø’yô† ÈŽÀÈ©‡S§žÖfZ›im¬2¡ÍÙùÊÏ}°ú—z‹¾#*ŸV¹X§Og•2óXŽÆ9Êçóÿ y^ò¼äy#x<âqf~²vvk4©šðÒ±÷rÿJz‹¾×rwtð:ÝõNå™s3óXNç>ûtnfÈØó.Ï»<ïÒ#¤GHŒ¦ ~e7Ãú×C‹–Ös?™ZìØLÿ5z‹¾ç_üV¯ÎðvþõK Êø±ØN±b;årÅË/Wd}"²#0²X¤©FªV™Ö°ÏˆXÇÉ!WŽ*n->Tôís=¬P¥0×k Zý$3ÇÜnI»%í–ÄYÅYÅYñŒoêp“ÃM7ÉüYbñ¾z*x6¶gIß-*újk‚ÕXWß§tj±Lßú;÷wîïü,ðYà³@žqàMmOÚž´=)óg‰•›ÇÙ¸œIº™æwëCEßÃË´òÈëY³ÊÙÂÑ™9æÑ7Gß}3qfâÌÄ™<〞€ÙïÄó€çÏ&®¸vâÚÌßÀ-œ»Än›¯šúŒëR¦Ôàî{G¹œËÚÐ;¡ý™ÕÇõ,÷ë çujuú«Dq«7$¸ î‚;Ï/ðöžÄ=‰{7L¦ S2ÿ3XI+Z¢@䊾Ï]æ^ÚÐþº—UÖ†Þ={U÷k)¬m¶Ó#°×D׺Ž?eþجÛY·³nwÄñˆãn YàáÿxøGÏò=Ë÷,ŸùŸÄ½]Ö®´ÎvRÓ*ù®Ußéèu%kCoühÅ÷Æþå‹ãÜËtú¼qþR[3lŽóç;Î?éwÒï¤Ï/]€ÙïÜÍi7§ÝœÖù~çûï[ý+«›’¨G£síK7:2:oéÆí:. /w¦[Ñ5ûölõëç±=6ý"8ûv~ºbJ…­ZÍ:ä4Ö?y³ÃçÎ ë*¼Àê-¬Ü¿rÿÊýI­’Z%µâÙޅ˹.纜+(WP® \ÿîç´ôí‚§l#zµu­â8QŽºÃ* ømtín?~Ö,Ø£¤VH}À³ d/`@vDÀ{uãÊ+7®Œ(9¢äˆ’V:¶ÁsƒçÏ5^ÔxQƒg xŸ.}ùëË_÷ ïÞ7\Ÿç{'{'{§m÷¶ÝÛv/)!)!)g xŸÎŠgųbÇ„Ž ôy–¨à[Á·‚ïþ2ûËì/“âšâšâʳd_`@vDÀó|ÜóqÏÇí©µ§ÖžZåË–ÿP7jGzŽôéyÆõŒënÑ:²5ïÖ¼[óÖ~PûAíê,1.z\ô¸è =/ô¼Ð“çÐÇsÏ}ÔYbz©é¥¦—ºêÕÿª?Ï `$`@vD€Ž$œJ8•p*ªmTÛ¨¶³¿œýåì/ë쩳§Îž¬º9ÛAí vP×»­w[ïv-絜×r²ç@öŸŸŸy%òJä•©.S]¦ºx8{8{8¿ýùÁ:Ì:Ì:¬[h·Ðn¡ananan7{Ýìu³{d//ú{Ñß‹T7ÕMu_y|åñ•]g¸Îpñög‰‚û î+¸¯Ï€>ú Øžo{¾íùî,»³ìÎ2özC@6v~øùáç‡GXGXGXG94ù|òùäóì €tÑc¢ÇD ŠÜ¹/r_Zã´ÆiÙ颣£ç„O Ÿ™™™jŠ5ÅšbÙd_`00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À``00 ‚ Aƒ €A€À À`ï5‡ç ÏžÓ >é” Ù ⣠Àéž#SŸªOÕ§êõ‰úDý[ý[ý[SãÔ8õ‘úH}¤>TªÕûê}õ¾zO½§ÞSïªwÕ»ê_ê_ê_êmõ¶z[½¥ÞRo©7Ôê õºz]½®^U¯ªWÕ+êõŠzI½¤^R/ªÕ‹êyõ¼z^QcÔõ¬zV=«žQϨgÔÓêiõ´­F«ÑêIõ¤zR=®W«ªªªQj”¥þ®þ®þ®UªGÕ#êõˆ¡F¨j¸®†«éUQUR%UREUTEõ°zX=¬R©‡Ôêõ€º_ݯîW÷ª{Õ½êuºGÝ¥îRw©;ÕêNu‡ºCÝ¡nS·©ÛÔ­êVu«ºEÝ¢nQÃÔ05LݤnR7©ÕêFu½º^]¯†ª¡j¨ú‹ú‹ú‹ºN]§®SתkÕµêuºF]¥®RW©+Õ•êJu¹º\]®.S—©ËÔÕÕÕ¥êRu©úƒúƒúƒºX]¬.V©‹ÔEêuº@¯ÎWç«sÕ¹ê\uŽ:G£ÎRg©³Ô™êLu¦:]®NW§©ÓÔiêuŠ:E¬NV'«Õ‰êDu‚:A ŽSÇ©ãÔ±êXu¬ú½ú½ú½:Z­ŽV¿S¿S¿SG©£ÔQêu„:B®W‡«Áj°¬U‡ªCÕÁê`u°:H¤RªÕjµ¿Ú_í§öSû©}Ô>jµ·Ú[í­öT{ª=Õjµ‡ÚMí¦vS»ª]Õ®jgµ³ÚYí¤vR;©Ôjµ½Ú^m¯¶UÛªmÕ6jµÚJm¥¶R[ª-Õ–jsµ¹Ú\ RƒÔ µ™ÚLm¦6U›ªMÕÆjcµ±ÚHm¤6Rª Õ†jµÚ@ TÕ@5@ PTÕ_õW}U_ÕWõQ}Tµ®ZW­«z«Þª·ZG­£ÖQk«µÕÚj-µ–ZK­©ÖTkªª‡ê¡º«îª»ZM­¦VSÝT7ÕM­¢VQ«¨®ª«êªVV+«•ÕJj%µ’ZQ­¨VT+¨Ô j9µœZNuRT'µŒZF-£–VK«¥UÕAuPK©¥ÔRj µ„ZB-®W‹«ÅÔbj1µ¨ZT-ªV «…ÕBj!µZP-¨TíT;ÕNµUmU[5¿š_ͯZ«ÖªµúµúµúµšOͧæSóªyÕ¼ê—ê—ê—êçêçêçêgêgêgjn5·š[ýúõ?jN5§šSýTýTýTýDýDýD1)&Ť¤*©Jª’¢¤()J²’¬$+IJ’’¤¼P^(/”çÊså¹òLy¦W>W>Wò(y”-Ÿ–OËÑr´-Ÿ”OÊ'åãòqù¸ü§ü§ü§%GÉQòïòïòïòQù¨|T>"‘Èr„!‡Ëár¸¬Êª¬¦ŸdI–dIeQåÃòaù°|H>$’Èäò~y¿¼_Þ+ï•÷Ê{ä=òy—¼KÞ%ï”wÊ;åíòvy»¼MÞ&o““““·È[ä-òfy³¼YÞ$o’7Éä òy½¼^^/ÿ*ÿ*ÿ*ÿ"ÿ"ÿ"ÿ,ÿ,ÿ,¯•×ÊkåÕòjyµ¼J^%¯’WÈ+äòry¹¼\þIþIþIþQþQþQ^"/‘—È?È?È?È‹äEò"y¡¼P^(Ï—çËóåyòro¹·Ü[î)÷”{Ê=är¹›ÜMî&w•»Ê]åÎrg¹³ÜIî$w’;Èär;¹ÜNn+·•ÛÊ­åÖrk¹•ÜJn%·[È-äærs¹¹ü­ü­ü­ÜLn&7“›ÈMä&rc¹±ÜXþFþFþFn(7”Êõåúr}9P”eÙ_ö—ýd?ÙOö‘}d¹ž\O®'{ËÞ²·ì%{É^rm¹¶\[ö”=eO¹¦\S®)×kÈ5dwÙ]v—«ËÕåê²›ì&»ÉUåªrUÙUv•]eÙEv‘+É•äJ²³ì,;Ëä r¹¼\^./;ÉN²“\V.+—•KË¥åÒ²£ì(;Ê¥äRr)¹¤\R.)—‹ËÅe{Ù^¶—‹ÊEå¢r¹ˆ\D.$’ Éå‚rAÙN¶“íd[ÙV¶•óËùåü²µl-[Ë_Ë_Ë_Ëùä|r>9¯œWÎ+)))...&&&ç–s˹åÿÈÿ‘ÿ#ç”sÊ9åOåOåOåOäOäO$“d’LRª”*¥J)RŠ”"%KÉR²”$%IIÒ é…ôBJ¤é™ôLz&ÅKñR¼ôDz"=‘â¤8)Nz,=–K¥‡ÒCéô@z Ý“îI÷¤X)VŠ•þ’þ’þ’îHw¤;Ò-é–tKº)Ý”nJ×¥ëÒuéštMº&]‘®HW¤ËÒeé²tQº(]”.H¤ RŒ#ÅHç¤sÒ9éŒtF:#–NK§¥h)ZŠ–NJ'¥“Òqé¸t\úSúSúSŠ’¢¤(éwéwéwé¨tT:*‘ŽHG¤)BŠÂ¥p)<ý_ÿÓíKéDI”Dé°tX:,’I‡¤Ò逴_Ú/í—öJ{¥½Òni·´[Ú%í’vI;¤Òi»´]Ú.m•¶J[¥ß¤ß¤ß¤0)L “6K›¥ÍÒFi£´QÚ m6H¡R¨*ý*ý*ý*­“ÖI뤟¥Ÿ¥Ÿ¥5Òi´ZZ-­–VJ+¥•Ò i…´BZ&-“–I?I?I?IK¥¥ÒRi‰´DZ"-–K‹¥EÒ"i‘´@Z -æKó¥ùÒ\i®4Wš#Í‘æH³¤YÒ,i¦4Sš)M—¦KÓ¥iÒ4iš4Eš"M‘&K“¥ÉÒDi¢4Q/—ÆKã¤qÒ8iŒ4F#}/}/}/…H!Rˆôôô4R)”FH#¤Ò0i˜4L –‚¥`iˆ4D" –Kƒ¥Ò@i 4@ úIý¤~R_©¯ÔWê-õ–zK½¤^R/©‡ÔCê!u—ºKÝ¥®RW©«ÔEê"u‘:I¤NRG©£ÔQj/µ—ÚKí¤vR;©ÔFj#µ–ZK­¥–RK©¥ÔBj!µ‚¤ )Hj&5“šIM¥¦RS©±ÔXj,5’I¤†RC©¡Ô@j 5¥@)P ¤ÉOò“ü$_ÉWò•êIõ¤zR]©®TWò’¼$/©ŽTGª#yJž’§TKª%Õ’jH5¤’‡ä!yHÕ¥êRu©šTMª&U•ªJU¥*R©Šä"¹H.Re©²TYr–œ%g©¢TQª(•—ÊKå%'ÉIr’ÊJe¥²Ri©´TZr”%G©”TJ*%•”JJ%¥âRq©¸d/ÙKöRQ©¨TT*"‘ŠH…¤BR!© TP*(ÙIv’d+ÙJ¶R~)¿”_²–¬%kékékék)Ÿ”OÊ'å•òJy¥/¥/¥/¥Ï¥Ï¥Ï¥Ï¤Ï¤Ï¤ÜRn)·ôé?Ò¤œRN)§”CÊ!å>‘>‘>ÓÄ41MLSÅTñ¥øR|)&‹Éb²˜(&Љâ ñ…øBLÄñ™øL|&Æ‹ñb¼øD|">ãÄ81N|,>‹ŇâCñø@| Þï‰÷ÄX1VŒÿÿÿïˆwÄ;â-ñ–xK¼)ÞoŠ×ÅëâuñªxU¼*^¯ˆWÄKâ%ñ’xQ¼(^Ï‹çÅóbŒ#ƈgųâYñŒxF<#žO‰§Äh1ZŒOˆ'Äâqñ¸x\üCüCüCŒ£Ä(ñ˜xL<&ŠGÅH1RŒ#Ä1"ýæ_úå~ú/y1 ¢ ‰‡ÄƒâAñ ¸_Ü/î÷‰ûÄ}âq¸GÜ-îw‹;ÅâNq‡¸CÜ!n·‰ÛÄ­âVq«¸EÜ"nÃÄ01LÜ$n7‰ÅâFq½¸^\/†Š¡b¨ø‹ø‹ø‹ø³ø³ø³¸V\+®W‹«ÅÕâ*q•¸J\!®WˆËÅåârñ'ñ'ñ'ñGñGñGq‰¸D\"þ þ þ .‰‹Ä…âBq¡8_œ/Îç‰óÄyâqŽ8Gœ-Îg‹3Å™âLq†8Cœ!N§‰ÓÄ)âqŠ8Yœ,N'Šʼnâq‚8A'ŽljcűâXñ{ñ{ñ{q´8Z-~'~'~'ŽG‰£Äâq„8\.ƒÅ`1X*‡ŠƒÅÁâ`q8H$ˆÄþb±¿ØWì+ö{‹½ÅÞb/±—ØKì!ö{ˆÝÅîbw±«ØUì*v»ˆ]ÄNb'±“ØQì(vÛ‹íÅöb;±ØNl#¶Ûˆ­ÅÖbk±¥ØRl)¶[ˆ-Ä 1H ¿¿¿›ŠMŦbc±±ØXl$6‰ ņbC±Ø@l Šb  ˆ¢Ÿè'ú‰¾¢¯è+Öë‰õĺb]±®è%z‰^b±ŽXGô=EO±–XK¬%Ökˆ5DÑCô«‹ÕÅꢛè&º‰UŪbUÑUt]EÑEt+‰•ÄJ¢³è,:‹Ä b±¼X^,/:‰N¢“XV,+–K‹¥ÅÒ¢£è(:Š¥ÄRb)±¤XR,)‹‹ÅE{Ñ^´‹ŠEÅ¢ba±°XX,$ ‰ÄbÑN´íDÑF´ó‹ùÅü¢•h%Z‰_‹_‹_‹_‰_‰_‰yżb^ñ ñ ñ ñsñsñs1˜GÌ#æs‹¹Å\b.1—ø©ø©ø©˜CÌ!æL‚I0 iBš&¤)BŠðRx)¼’„$!IH…Dá¹ð\x.$ B‚ðTx*<â…x!^ø[ø[ø[ˆâ„8á‘ðHx$<„ûÂ}á¾+Ä ±Â]á®pW¸#Üî·…ÛÂmá¦pS¸)Ün7„kÂ5ášpU¸*\. —…ËÂ%á’pI¸ \.ç…óÂyáœpN8'œÎg„ÓÂiá´-D ÑÂIá¤pR8.Ž    QB”%ü.ü.ü.Ž G…#Âáˆ!DB¸.„ ª  ª ² ’ ’î°pX8, …ÂူOØ'ìö {…½Âna·°[Ø%ìv ;„Âa»°]Ø.l¶ […߄߄߄0!L6 ›„MÂFa£°QX/¬Ö ¡B¨*ü"ü"ü"¬Ö 넵ÂZa­°FX#¬V «„UÂJa¥°RX.,– Ë„eÂ2áGáGáGa‰°DX"ü ü ü , ‹„…ÂBa¡0_˜/Ìæ ó„yÂaŽ0G˜-Ìf 3…™ÂLa†0C˜!L¦ Ó„©ÂTaª0Y˜,L& …‰Âa‚0A'ŒÆ c…±ÂXá{á{á{a´0Z-|'|'|'ŒF £„Âa„0\. ‚…`!X* † ƒ…ÁÂ`a 0P( „~B?¡ŸÐWè+ôz ½…ÞB/¡—ÐKè!ôzÝ…îBw¡«ÐUè*tº]„NB'¡“ÐQè(tÚ í…öB[¡­ÐVh#´Ú­„VB+¡¥ÐRh)4š Í… !Hš Í„fBS¡©ÐTh,4 „FB#¡¡ÐPh(Ôê õ…@!PüÁ_ðü?ÁGð|„zB=¡žà-x Þ‚—à%x µ…ÚBmÁSð<…šBM¡¦PC¨!ÔÜwÁ]¨&Tª n‚›à&TªUWÁUp* •…ÊB%¡’PI¨(T* „ B¡œPN('8 N‚“PF(#”GÁQpþ¯½;·¹ZüÇ_Ýní+³dž#ó,cÆ %!¤IdH…4P†¤Ð¨Ütiò©DQI‰tŽdJi0… ™CHÆÌç÷Çû~¿}ÛÞ÷pÎqöÙžÏ÷ãñ~xÔ9ë½öz¯÷²í×^kN,œX0±`bÁĉ $æKÌ—˜/1obÞļ‰W$^‘xEbîÄ܉¹s%æJÌ•˜31gbÎÄì‰Ù³'fMÌš˜51Kb–Ä,‰—%^–xYb¦ÄL‰™/M¼4ñÒÄK/I¼$ñâÄ‹/N¼(ñ¢Ä‹/H¼ ñ‚Ä¿'þ=ñï‰Kü[âßÏKáׄ_~MX“°&aMÂê„Õ «~Iø%á—„• +V&,OXž°<á焟~NXš°4aiÂ’„% K%,JX”ðSÂO ?%üðC &,Lø.Ễï$,HXðMÂ7 ß$ÌK˜—0/anÂÜ„¹ÁÇöÁÇuÁÛvð}Ái!òP0@* €€8!qB,â„X Ä °ˆ`0'À` N€À@œ €€8!qB,â„X Ä °ˆ`0'À` N€À@œ €€8!qB,â„X Ä °ˆ`0'À` N€À@œ €€8!qB,â„X Ä °ˆ`0'À` N€À@œ €€8!qB,â„X Ä °ˆ`0'À` N€À@œ €€8!qB,â„X Ä °€3$sTÚbS›·Û¼ÝæíHOnƒE 5X”vW︶ãÚŽk#]½èœ¢sŠÎIÊ””))SZ\ý¥í/mi{¤«g[šmi¶¥û§îŸºjFýΆñy밭ö+¼¡ð†Â‚×U𲂗¼lÏÆ=÷lô¤ŸyAËw!¸#ÁÝ î”ö %À`Î0dD#¿ùÝÈï"=¹ÙçfŸ›}î_Cÿú×ÐT¾p¦¤LI™Š,)²¤È’è£ÇâÍ‹7/Þœ¯½C“M:4‰tÝFSMi4%>F¿øŸOä;‘ïD¾¦·4½¥é-¡¯ëÅœ/æ|1gò_c——º¼Ôå¥ÌgPüòÈŸ&’))SR¦o{|ÛãÛ}ôÐG}ôç«Ú]Õîªv9ßËù^Î÷J>ZòÑ’Ö_W]ýu½vôÚÑkÇœoæ|3ç› =S«"ÏW~¾òó•C_u³k›]ÛìZï H °€3D Ñ¢}‹ö-Úýù?fþ˜ùcR÷ºA¬›œìTc¼ä+>®ø¸âã"]÷‰ßŸøý‰ß“s]pú6hØ aƒÂçŽw`ÜqÉ/§ñ;ßiüNF€gퟵÖþʳ+Ï®<ûôjU._¹|åò¥VßæÐ‡ÎÌ<Óñ™ŽÏt4pzÀ`N¢á×ÑŽÓ+S ñYfû….Ózf"؇Fq(9qTZÌ\¿wýÞõ{£_wfá™…g>ó°ñ9ùV _1|Åð`žzè+õƨ7F½qª¯®ØgÅ>+öYF €ƒ§¸çÅ=/îyqêÖ°{§îºw:^úxéã¥SRÃð•‚»ö˽¿Üû˽FrN•X ÀI¤E †Œû,·ïܾsûΑʹåå[^¾ååÔ}–[\Òâògp^ìIDAT’—$'‚ ‚¢äìÅ›|[Ll1±Eô+&þhêŽ~ÆçdÉ””))Óu]÷Ðu…¾–`YãCzôУÉ/,¸×™Ï¸”ÀAôÛup×Á]§]=ï{ÏØ{Ʀ¤·ËÈ—UbT‰Q¡%‡.Üm< ùÀ`N"-€àâH‡6‡X~–_}áÕ^}!R9…Î)tN¡s‚È-åu¢ \¯æz5׫ɠ¦=7í¹iÏ¥V»»¢FºV°pz~àä7qÜÄqÃ_Ë›Eß,úfÑS}]˦-›¶lZ¤öÙ4oÓ¼Mób³ÂwØ W³mͶ5ÛN0aÀ„ë2¯Ë¼.sÿüøçÇ?_ãá×x8z9/{¡Ø ÅRRÛ1w¹kÌ]á%u0ž|`0'a¶.x–CEÀ«:¬ê°ªCÊ뺴ròõ™ÙgfŸ™©5FÕÍ[7oݼ‘®5xõàÕƒW§×x(Žîp·ÃÝw+ÕµT×R]C_Eþ2ùËä/sªsŸ.øtÁ§ "ÍOùÈiá·W{õ·W¯è~E÷+ºGº³÷U»¯Ú}Õ’Sÿàgº=ØíÁnF*-Oû<íó´ß:lë°­ÃN¯ÎÁ—?ò6ÍÛ4oÓÐ’K__úúÒ×{@ò €Àœ„<Ëÿ%SR¦¤L…7ÞPxC¤ÒÞùöoßù6å£Dÿ*ý«ô¯r’yÆ{ í)´'Øé6üÿVØ]aw…Ý)¿úÁQG•mi¶¥Ù–Fz¥_eû*ÛWÙÀ±)Ò,Ò ì<½Wôòª—W½¼*R¯‹ÍvèôU§¯:}éž¶y»ÍÛmÞ>åB3%eJÊtóO7ÿtóO‘J]núôj)f~£Ò•Þ¨dT 9À`NB žåp·—¼½äí%#•Ö£qÆ=§|”¨u]­ëj]^þ];ïÚy×Î὆÷Þ+RÖŸ»þÜõç¦è_ÍÓçNŸ;=µvÿÍ(ãs|ŒùÁìÞ+‡^9ôÊ¡á¯bÎ7s¾™óÍé½¢^;zíèµ#¼Ì›vÝ´ë¦]±ÖÛúnë»­o–½YöfÙ^çÜ}s÷ÍÝ7X¶úôZcæ ›6lŠÔ[‚ënï¾½ûöî§WÿYçÏ:Öùá%‡Îê6¶ð?þe'N žåp¯ÝôÚM¯Ý©´Ê³+Ï®<;%£Äï·þ~ëï·f97˹YÎ /ÿí•o¯|{eôWÌLI‚}LSk÷ߌ2>Çǘ:=<8<‘ïD¾ùN¯äÇZkq,¼äžGzéy$ÖZitÏÑ=G÷Œ¾ìsʯroë{[ßÛ:ÒUBÇŠS-9¸S%F•Ub”ý€8=`0'ûaÀ‚ÇN~DúùEç-:oÑy\þÀå\ìîYtNÑ9Eçäz5׫¹^-Ÿ©|¦ò™nÌscžó!Sògøs­^}áÕ^}¡yæ5š×(ŸT>©|R°ób0×êªvWµ»ª]»>íú´ëózý×ë¿^ÿÌÌ vmüzË×[¾Þòàþðà¦4šÒhJ™šej–©™ó½œïå|/_­|µòÕ Zà¶ê·U¿­z°€ê¾¹ûæî›{æïìîËv_¶û² & ˜0àÎÜù;ÿQûêÚW×¾ºØgÅ>+öYŽ©9¦æ˜u®ªsU«îÒïN{nÚsÓž;½×iïÏŠë+®¯¸>ô'ƒà?ü'ó6ÍÛ4oÓ£M6=ÚôôêPdI‘%E–Dzu¡‹ÓÆÓ=Mþïãjô˜<ºúë꯫¿.uŸ  ýXèÇB‘®øó„Ÿ'ü<áô®x¬Ö±ZÇjEÚzòß'ÿ}òßc'Œ ¾~iñç‚—¼¬àeÁ>¾©p±LI™’2È_ ü‘‚NÉ×A‚¯Dº§‹ö-Ú·hŸwqD"œÕâ5^Ý|uóÕÍËå+—¯\¾”¼¢`þnhÉÁ“‘–=U¡Kݦünþ¹çÏ=î æ1§îÍÓ>Oû<íÓ"äb›âãŠ+>.uëÌðNyÀႽx#ýî Ãƒ:|zíé+ ÁüõÐ2#-ö˜÷þ¼÷罪W_[nm¹µå¢½àਃ£ŽŠ¿{šœß æ—¾¾ôõ¥¯Oy}B¿b’ò§¦÷šÞkz¯IÎWNÕºÌë2¯‹ø*‚µ%b'Ýç8\«Y­fµš•ºWŒþ«`Gí””¬¨^rŸ™}fö™i0‘€Àgµø €ƒyŸÁ‡þ©õº*-®´¸ÒâàÏ·¼|ËË·¼œºíº˜íéÝÇ]ew•ÝU6X9s v—Lyß –!  N»Ú¦<º‡{³è›Eß,éwC—ŸMþ«Ž¾¸ôg_|öÅg_„–ùÛ«¿½úÛ«‘~~ðêÁ«¯>Õ:{‹F*³É¿šü«É¿âõžFÿݵwÖÞY;å_©‰>ºž^Ûë1DúI×Á]wœ’ògžYxfáHõÿóœ?ÏùóœØù;=ú.Ýà 4lPêŽ]C_úâÐ#]1t¬8½òï{ÏØ{Ɔ—|åÐ+‡^94Õf3wÀ`€³Ú¹O~DÿÈ>ÒoE¿Ö™ €Û¼Ýæí6o‡þ—¬›²nʺ鑌xdD°h0‡oéü¥ó—Î1ç‹9_Ì™œe‡Ku-ÕµT×ðÿÞìÚf×6»öó×>íóׂ 6ˆf/Ÿ½|öò{[ßÛúÞÖÉ BF½1êQoœjk»ü;ûF/¿Å%-.iqI°·îú½ë÷®ßÌftý¾î÷u¿¯ìoiwÕÐYËÁë=½^·½ûöîÛ»G¿J ˜Í<ùà䃓nš·iÞ¦y‡»îv¸ÛæÏ7¾ùóO~ûä·O~»i×M»nÚ•vs 3J|&Ÿå`†}¤2ƒ}µ´?ÒþHûä¿ê`íðÒ‚ç7Ò‚ÞÕŸ®þtõ§Ã«Þ?ëý³Þ?OõõÚÑkG¯i±ûoìßÓèe^;äÚ!× ÿÚÊ3ŸéøLÇÃW _1<Wƒ}š§¬˜²bÊŠ‹,j°(9£_0Ÿûôž—ožýæÙožTr°çzJžÖ7*½QéJ‘F•П æ?üÖÃo=üV°q°AèŽÈUß­únÕwƒ¿§þ=ðßÿ=ðׂ¿üµ`j‘fB‚½ÒSwìŠþµ‰àoÞ”\1Ø“>RùßÝöÝmßÝæ½áÀ`N"-B¯3‡Êù^Î÷r¾—X!±Bb…è¥E" ÂãÐúD*ÿÝïÎxwFôÒBÒL~;Œ¸pÄ…#.Œ|{²&¿µƒ;zmC÷I=Õ{×¾sûÎí;G*9Økóÿ¶ýß¶ÿÛ–ü2ÇM7qÜÄÐ=€ÃµëÓ®O»>gf÷ÖØyúÒ®þÁ ¼H%_)H~i­?iýIëOÂË ¾Üé·kõX«ÇZEúšB0o5ùu¨Ù¶fÛšm#îþ»ÖþYûcá.œùñù¿ÂõãõŽ×;¾uØÖa[‡ý+fJÊ””iäw#¿ù]ô2CWV8Õš?ÞèñF7оDsJúy¤òƒ‚=¡¯îru—«»¤|>t0>%µm^£yæ5"•º@tjWÁW"~ñ(d»„Ó+ÿ‡ò?”ÿ¡|¤òæ˜k`. AN,à$â#~iûKÛ_Úžüò£ïlê˸üËOµÎÑ?šÿÏ‚–ɶeü–ñ[Æ!w¤Ý‹o^¼yñæÓ¼k™’2%eŠÞOüþÄïOüžüò£G ú=½:1pôòƒ$}Ÿ…ØyRRRÏN_uúªÓW‘Jþ×—ÿúò__&ç*G›mz´éݯè~E÷ðrž~óé7Ÿ~3R9Ñ—çØbb‹‰-’óZöÍÝ7wßÜ,{³ìͲ7uwÿÍ(÷49ãÞUí®jwU» V?ÕkÝyôΣwTr°÷óéÕ:Ø÷7˜›œxìc/{Aòkéï…@0Ó=uÇ«`î´˜Û*t/ápÁÚÞ¹J,à$2z:—7ùeKMF/ùó×>íó×N¯ÎÑgÓ&¿Ìè;4lаA©O5„Œî9ºçèžÑ¯8eÅ”SVDªs°÷jêöá×x¸ÆÃÑïcz= ±ó¤¤¼¶Á²À‘Ê_îúsן½„úë꯫’$9˜Éœ:¼2é•I¯LŠT‡à ÑKh5«Õ¬V³Òb÷ߌrO£—9èð Ãƒ§¤ü ÈOÝšGß]89ãRtÛ»oï¾ýD¿×W\_q}è>µÉ*:dýèKI瘚cjŽ©Á2ËÉ)8z\ü—ºãUô¿7ƒ}èS~•QoŒzcÔ‘®òê ¯¾ðê ‚ ”X ÀIdôxæ ›6lJ‹z³Ó·mG\8âÂF*á»Û¾»í»ÛÒâ£ðëºî¡ë ¿bèÂΑ~w`®¹æJ»–áBçj§äŠàèB—Y÷þï?ðþ‘®õç9žóç9‘vÞ æJ&§ž+û­ì·²_¤:Œ84âЈCËÉ””))SÁË ^Vð²HñÛ©.&Ÿïiô2§=7í¹iÏ¥¼Ï¤nÍ{éy¤ç‘è;@§¤Î [ðØ‚Ç"•_åÓ*ŸVùôôvDþ¯Oi¢.èòR——º¼”œ«Dzšþó»)˜Ãɉ|'òÈ}ntʯ2aÀ„DºJŸ™}fö™)à¿Þi €À„Ëèpð‘tZÔ3%%§V;´ëÓ®O»>‘JHþâÆ§*tW×P¦4šÒhJôßmvm³k›]©ÎŸ.øtÁ§ R÷ãûèËV‡.|柅ØyRR^ÛqÇM71Rù½vôÚÑkG¤kM>8ùà䃑~÷—{¹÷—{“_ÏHs‘o(uC©JE*'ô*á‚/=œ ÷4z™ë÷®ß»~o¬µCóÍk4¯©´„z õꥤ¶Áâö}{ŸüøíÕß^ýíÕÔzŽž¯ü|åç+Gz-Á>Ç›?ßüùæÏ£—“»oî¾¹ûF*'XË!uÇ«àë‘®ìÏò«Ì¸}Æí3nt•ÇZkqL @(°€“Èèp¬½öÔ-ÿê.Ww¹ºKæ˜Ô'zƒÙr‘JXÝ|uóÕÍS·¯¾bøŠá‘®, ý!ã>)`¯Óè‹{GºVÏ‹{^ÜóâÔÚ7ô¾j÷U»¯Z¤Y¼Æwà${¿óí;ß¾óm¤ú?õáS>õa¬*g~|Þ»tïÒ½Kc­oûG*íÇB?ú±PFù;7Ø-¸ð†Â oˆ¸ð_cÿûWô¶*:§èœ¢s"•ì×›º5æñGºb‘%E–Y’ò«|_÷ûºß×t•ʳ+Ï®<Û;7B €Àœ„8–àR]Ku-Õ5vಥ˖.[:z‹+>®ø¸H%ü‘ÿüäOÝ>¼£ÙŽf;šEºbІ±Ð2\¾rùÊdØ`AÚH±S¤ßêÞ©{§îNµÑç|qß÷}q_øoÝ_âþ÷—ˆô[_oùzË×[À©µtpêÖ¼ØgÅ>+öYJöŸŽ5µz¬Õc­"½¢;rß‘ûŽÜÑÛ*Ò3FÅÔ­ó¶¾Ûún‹8ç8¨OʯòkÁ_ þZ0ÒU®zåÐ+‡&@°€“Çr|E÷+º_Ñ=vàB{ í)´'zs½šëÕ\¯F*áHû#í´OÝ>}aÒ<íó´ÏÓ>úCÆ}RBõhÜ£qÆ‘®’X!±Bb…ПçœÞî­ÁLÄ`±Üð2~ëá·~+¼Ìj¯T{¥Ú+i·ûoF¹§g¦Ÿ¤îU¢/wœ³]ÓZè^˧·ÖBôõ!VuXÕaU‡Ô­sôµ‚5R~•`kƒHWÉÛ4oÓ¼M½s ”X ÀI€c9¢©Ø €ƒúD¯ó™€6=ÚôhÓHWÌ>7ûÜìsc¡?dÜ'%Ôû¼ÿÀûDºÊÓo>ýæÓo†^ñJoTz£ÒIf Ÿ›åÜ,çþ~ëï·þ~ëéÕ¤á× ¿nøuxÉ•WZ\iqhþÜóçž?÷W ÿùëï¹þžëï9{îiF €ƒùå‘J;VëX­cµ2Öß¼ÑTf±ÐB‹ÖfÄ8Paw…ÝvGZpûxéÿÿ(¿@þùò•þUúWIIݾ»í»Û¾»-Òë}+Ç[9ÞÊñ†›½|öòÙËÀ±;¿F*muóÕÍW7ÏXóîv¸Ûán‘^QðÕŸè%¼vÓk7½vS¤¯¼zðêÔ½§O~ÿä÷O~éŠcîsט»R~Åàn¦|OwÎ`0'!Žå¸é-MoizK¤~(ÿCùÊÇZjvm³k›]©ÎŸ}ñÙŸ}‘ºWütÁ§ >]éŠÉ_à÷L¨ÑwÆýøË¸üË#]kñæÅ›o^xÃÂÞégB—“=½:sÁË ^Vð$;††Î8ù`¬õ¨èuNÝåvO}øÔ‡O}銵z¬Õc­’sÅ3 Nþûä¿Oþ{Æ €']3éšI×$g.`¸œïå|/ç{©»Þ‘ûŽÜw䎴Tl°çtðç´Þý7£Œ~1n5«Õ¬V³"•6½ÿôþÓûŸ^=ƒ/+óÅõwÖÞY;-ÆÉyïÏ{Þû‘^Q›·Û¼Ýæíè%ì›»oî¾¹‘ö‰úü‰|'òÈ— ÕÍ””))Sþ2ùËä/iÁê`§í”_jÚsÓž›ö\JZ€³X ÀI€c9ž²bÊŠ)+"•оsûÎí;§nl³ùóÍŸoþ¼ÆÃ'?¾Þòõ–¯·D/!ˆ¥#Õ¹öÕµ¯®}uêÖ¹fÛšmk¶“§<>VëX­c©¶÷dï5½×ô^“qàíÝ·wßÞ=Òµîþñîïþ1Òÿ½¡Ô ¥n(•Z5ù¿mÿ·íÿ¶EºÖ•Þ¨ôF¥Hÿ7táØQÀGŸxô‰GŸˆTÚ{¯¿÷ú{¯Ÿ^=gÜ>ãö·G*ùÅœ/æ|1gZ“OJªí"9;‡*´§ÐžB{Ò¢&¡ Ã&Gøù5þÆç3s•`/çˇ]>ìòaá¥Õº®Öuµ®KIýßñîŒwgDªmè×bRÒ&Á¼Þ¼Mó6ÍÛ4Òµ¾¼ñË¿¼ñT¯ÕkG¯½vD*³õ'­?iýÉéÕ?ôwÃõ™ÙgfŸ™©û…ÞÍPÁÝþ¶òÎ €P`0'ýcúßoýýÖßoMÝ2Ó·´3SrZ”×λvÞµ3RiYöfÙ›eïJΔ”))SrÊÜ}ÙîËv_vç?îüÇÿˆTrµWª½Rí•ÓÛ7zxºìjòË ¢ßè³uoyù–—oyùTkÛöɶO¶}2ú] m«ä—Ìù f¿iyä´{RNïYŽngíµwÖ–ONìzçÑ;Þy4-Ʊ„z õê%?N‹ÝÏüè ãó™¼J¤yºÁ—*‚ÅœO¯ä J¯sU«ê\©Îå“Ê'•O:½úO{nÚsÓž+¿@þù#•ßò×–¿¶üõôê}!ôÀý%î/q‰ä|iàxéã¥—Ž¾ìs0·x밭öK­žÜÁH_‘ ¾¢ä=áÀ`N"zõÐG}ôÐGÁâÀ‡»îv¸[°àdô2ÀiQþùÿÈÿGþä„[Ár¸Á¾ŒÁœ³}s÷ÍÝ77ˆë¾yö›g¿yöùÊÏW~¾rô@"YÊúSÖŸ²ž^C—.?¦¬˜²bÊŠ sþ‚?O>8ùàäƒ7”º¡Ô ¥þÇÓs Sèœm}·õÝÖ÷TëüQ‘Š|T$9µ-:§èœ¢s‚?ÛãÛßövGŒµåÖ–[[nì_cÿûW°tvx Ñgž^k§Å³œ5®ñp‡“ÓnÁ<õ´ˆ]ÿú×п†¡Trj2wúÜés§Ç~ûãó™¼Êð^Ã{ ï©ÌyïÏ{Þû)©sô…¦ÃãÕÏ~žðó„àÙß»tïÒ½KWuXÕaU‡à«*×=tÝC×=½œ25ËÔ,S3t„?½úGß8„Ügÿ8ûÇÙ7ÍÛ4oÓ¼`!ô_ þZðׂÁWU’óD{ñ¦î³ÜÁHW|¦ã3Ÿéhñg €ÀœÄÕ]®îru—SÝÅ3z™à´+?tÿÔ´Ì'~ÿ÷xÿ”·Æœoæ|3ç›´®s¾Zùjå«ÄÛ§YçLI™’25ùW“5ùWÚÕ3Ø8-zHZ<ËÉñð[¿õð[ɹV°ŸhÚE8-޵8ÖâXzíþ›QîiÆ €ƒ¯³D*ó¥í/mi{Ê_Å©Î&O‰«Ú]Õîªv¡¯+å-}ænÊ;§Å³zí¾bøŠá` €ÀœÄãoôx#pF €+û­ì·²_Z|¸ìv̸MÝžvª³ë’¯Ä¨£JŒ ÆSRÏÍv4ÛÑ,uk,j:lаAÃ….к=$-žåäøtÁ§ >]ý*ÁÊi=šünäw#¿‹^“f×6»¶ÙµiW‡Ø¿§7„îÆêö’·—¼½dj½Š¯·|½åë-i£6šÒhJ£)Û»oï¾½{ê¶|°vBZÔù‘ŒxdD°@Z±¡w0TåÙ•gWžíÝ‘€ÀœD°tª8cÀá÷.wßÜ}s÷=½õƒ¥žïþñîïþ1XB6ífYý¹çÏ=îIþ>¸Ñ÷tÑ ‹],pºu-3ú~ÃÑû†FZœ6OûhG,<ËÉì$}'àxð‡HëÙ{¡s# bø´«Iê¶vìÏgþ*ƒW^=xux™ÅÇW|\꾊`¦xPfÁË ^V𲔨åò•ËW._°²B°oZ?Á"Õ¥º–êZªëéÕ¹l鲥˖þâ¾/îûâ¾4|#’))SR¦à«<‘VM0÷€HÀ`" 3tík‡\;$øÈ8X.µôõ¥¯/}}ãw¿Óø;ÿqç?îü‡‹5¡e§¯:}Õé«`¯Çà#õ j vü "ÉM:4éÐdÔ£ÞõFèN½g²ÎÁ¾¹¡³÷j¶­Ù¶fÛ`‡Ý ÎÅ>+öY±Ï‚ÿô½ & ˜0 ÏLCÛç–—oyù–—ƒ'"ˆiƒ(:Xʵþºúë꯻¿Äý%î/ì2g²mcùYŽ'c…IÆçPë2¯Ë¼.b`9{ùìå³—§ÅuCg¾»/ûûVØ]aw…ÝÁh|§|¦ò™Êÿg1ù¹æ˜kþ˜ùcæ9^úxéã¥Ï|ß ›»=ØíÁn6XÔ`QƒE%-ùhÉGƒ,èQÁžå=÷hÜ£q0úÌŒ`‘¶ 6#X¿wýÞõ{ÀD"p Ònfé{cÿžf”:g”Võ,ŸãOË_[þÚò×ðv¸¯Ú}Õî«væÛ$c±±Ö—‚/̈́פõ'­?iý‰ç€èÀ` ÛúÁÔ¦~is_tÈ(w;Üíp·`uŠð»9½ÿôþÓû»›D'^°¬qõ§«?]ýéðÏ=>ùí“ß>ùM+žàN…ßÁ«»\Ýåê.ÁÔZ €èÀ` NL>8ùàäƒáŸ{ÜÚæÖ6·¶1s4ö…Þ©PŸ.øtÁ§ ÜA’C,âE¦¤LI™j¶­Ù¶fÛÐÏ=rLÍ15ÇÔÝ—í¾l÷e)6w'¸S¡÷®öÕµ¯®}µ¹¿$ŸX Ä•YçÏ:ÖùáŸ~<õáS>õ¡Y¤±éé7Ÿ~óé7ÃïÚ¬ý³öÏÚï®|`0‡:®í¸¶ãÚÐO?ò6ÍÛ4oSQb¬ù#ÿùÿÈzw¾êôU§¯´§J,âж¾ÛúnëþÈ€âŠ(®}bGpGBïQþ2ùËä/³½ûöîÛ» ì8U`0·Æ??þùñχ~rù°Ë‡]>L¬ ‚ˆ7wßÜ}sÿWTÿþï?ðþî§G,â\×Á]wúIÈ##ñÈ-“¾~ëá·~+ô¾tïÔ½S÷NZ€” €€8w`ÜqÆŸÔ¾ºöÕµ¯n°¨Á¢‹Ì1M/{6îÙ¸gcè]hqI‹KZ\z§´§G,â„X Ä °ˆ`0'À` N€À@œ €€8!qB,â„X Ä °ˆ`0'À` N€À@œ €€8!qB,â„X Ä °ˆ`0'À` N€À@œ €€8!qB,â„X Ä °ˆ`0'À` N€À@œ €€8!qB,â„X Ä °ˆ`0'À` N€À@œÿÇœyÉ>æ§ÓñM: Òéø6ŽïÎø±0ŽïÓéø!ŽÓéø)ŽEét,N§cI:KÓéXvÆŸÓéXžNÇŠt:V¦ÓñK:«ÒéXNÇšt:Ö¦Óñk:ëÒéXÆ étlL§cS:›Ó騒NÇoétlM§c[:ÛÓéø=ŽétìL§c×?þH§cw:¦Ó±'޽étìK§c:Òé8˜NÇ_étJ§ãp:GÒé8zÆcétO§ãD:IésÌ='ŽsÓé8/Ž¿¥Õ!ˆ[`€8·pÀ Îqï¸qÇ;nœ37ÍŽyétØ“ØnÄv#Žý݈Ϟ}ˆÏžˆÏž½‡—¥Óqöì=|öì:|öì7|öì4láøÛ]8½ö>{v¶¯°…í%la»§×.ÂgÏþÁv¶g°Ý‚ílŸàôÚ'ØÁöŽù]wtßÑ}G÷¸ @ZÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œÄ 0@œ­ì³²ÏÊ>ó²ÌË2/Ëü^ó{Íïudå‘•GVj °øñÅ/~|î¹ ç.œ?mþ´ùÓN4?ÑüDs-Zxh᡹Cæ™;dþñùÇçOÚ–´-i›– ãC,9°äÀ’…í¶[ØîÙKž½äÙKjO­=µöÔÌ©¤Ãì³;Ì~¯Ò{•Þ«´îoëþ¶îoÚ2–½ÇöÛ{lþÚùkç¯}ªÜSåž*W­tµÒÕJ§||È21ËÄ,;Žë8®ã¸‰•&VšXiã=ïÙx6‡ŒåÏ—ÿ|ùÏ—gWš]iv¥e–X¶ü°òÃÊKù(‘kZ®i¹¦uíѵGד3MÎ49Ó–Ñ[Fo­Íˆ5`ÒÍÁ0õê©WO½ºIÉ&%›”ÌœN®ùp͇k.+¿¬ü²òî ÄŽ½}÷öÝÛ÷£K?ºô£Kkí¨µ£ÖŽô%,°xÀâ_:ÿÒù—Îî ÄŽ?žÿãù?žoø{Ãß^ñžŠ÷T¼'½F‰¡…†Zè×F¿6úµ‘ûñ$üyŸ\dr‘ÉE´ ±L Àµa통Ö>Tð¡‚ÌÃÆ×_s|Í¿ªÿUý¯êîœIk.[sٚ˺Íí6·ÛÜØò•ÈW"_‰·¼ýãí‡>pø€»gÒÏ3žùóÌÛÜvà¶±9J”jPªA©Ó‹M/6½Ø±òÇÊóõ2ÈÀÀdD`ÒÜÆ§7>½ñé;~¿ã÷;~?ÍE+æ’µWµf­žÏW´Ù7ý.-Ú¼ým/ͽrYÇýõé¯O?Üæp›ÃmÜMH kÎ_sþšó[žßòü–çŸÞsZts®%ÙçÝÓ®|…"/¾|n½Ëôø°ßõUú¿„ý-zW+8'ËÄêO}]¤å¹Õ³~þÖ 9«Lù¿ú —ÿµÿ}Õ¿»r~ãE[çí¢¯Œ´ßf|›£ûŽî;ºÏÝ„´°lõ²ÕËV7x¶Á³ ž=ÍPöã¢[rfï~s›‹>ô¯±,({þÇW<7¨RRâÏÿ¾°ÚÍsîyý®ê¯ÌZ5æîêçMíõÒÃUîsáÀÄò-ú~Þñ‹»¯ÉYµGž¢)%>Iü$ñ“Äã;Žï8¾ÃÝ„ŒE @F$ Ml|°ñÁÆOŒ}bìc“ÿñhî |–íŸ7Öpg±BÜýù#å–¼bEÕª©ut벜Ut¾òÝ×JßWûêÛ+ÿT?ÀM¬šX5±ªû )·g÷žÝ{v?øõƒ_?øuòŸÁ2sòÈ9ÿµû,÷üêñ·®¯“9)©[·ÆSëüWç{ª4l8¶Å”jMîy¢|½"ÿ>…]„ÛgiŸ¥ý7E¾)ò…!ìü~ç÷;¿ï\²sÉΧ°IDõ.寿.óvöÁ7VÈ´®Ê”"uÖ&%-\ظqj÷öûºZƒêÓÇŒÜ]µØí7ÏZè£ä×­È‹E^,ò⢆‹.jèþBF! #ÊæÏž?{þìäz}ׇ¶y²ïÚ_Wj•ºqoòÏ]×O¼¼ÌÄòë®k“çœäÔ¹ý+í_iÿÊîÌ»3ïÎìŽÃ©J¸!ᆄ’?JŒœvMÎ2?íïß¹`ƒI©÷&ÿ<ç­–»ª¿}mý¢Çó&k|»·ô½¥ï-½¿Éþ&û›¸ãpª&ž|xòáSX«ãƒÙÊ-;¼vþ‰†›R7îMþ9aÌ«™«]Z³F…Ÿs/NNûmì·±ßÆCà ?4܇X& # Ž'O8žðtÛ§Û>Ý69z¶ýùÅœW¶xîâU.I¯Ð7Òù¡û¾>¯ÂªÚ]ï¨V Lr^Ë‚ V,X¡@tG^8ò‘úã¡?ú#9OÖ”ŽÍWNÒkï9°çÀž“²$eIÊ¢·pvZµjÕªU«þÇž[.·1£‡¾áçõ×Ý6¦nÞæx;[¯H¯ýÉÉON~rrÒ±¤cIÇôÎN?MùiÊOSþÇ|ß/†g«t^}#œW¼7©Fí+£¿öW½2è•Aú Ä0‘€SðûÈßGþ>2úG–Ë¿Õ㪞ñú†ŸU_úK•k=qÛ¸üë#µÃ#ÙðȆ¤½I{“öê9œ=6LØ0aÄÿ±sö½­¦Õ˜Ñoèù¯÷Tlزݒ«†œ©ž}ûÙ·Ÿ}[Ÿál³¢üŠò+Êÿ³ož°¢VÙø‹~CÏ{;]¢A¥Fk¼7KÄ &V¼±âú ¤/0‘€d9°åÀ–[ U(T¡P…HSö¸pòè²Óã;úý¯ó½+>ªZöúóªYä®Hm2râȉ#'ê?œ v·ÞÝzwëè¡ÎêknQûp|G¿¡çu]Þh×Ãû«ÞU"âÒÐã>÷Á¸ôÎ[‹l-²µHôQbs»ÏKÖ»0¾£ßÐóÑÅ žnÔªãŠË ÏÔ&Ÿ_ðùŸ_ ÿ@z €ø_z&õLêÙvHÛ!m‡DúhòþŸM,7ð,Š~ÃÎM =RºÈ¬Hí3ãÈŒ#3ŽèJÄ«ãùŽç;ž¯îĺëNŒô¬/zÛsu³=Ñï7v»½qÝGªý£Äç‘ÚçÛ!ßùvˆ¾D¼:tâЉC'Šå)–§XžHOÁöÌ_ürÍågOôz>Ñê»þ¶tÊwÓÒ"™"µÏòË, /Á™' #ð?Œ¹}Ìícnôqd·c^Töâ³9úýÏyЊ¥U«Ô¯ßerÁ…g5Ûµ6RÏ_y_ûk·>K£ßÐÙÀ‡»]Øø’»—+Rø÷HmµkÕ®U»VéQÄŸ&<0ላÃoœþÙ¦ºïŸÑoèùؽ N4z¤Yöºä{+R[(s Ì2zœI`2"0­Üµr×Ê]‘>‚ìðÝ+I%ßý†žŸ´FFw¸äá’‡KFêç/|[÷šÒSĽ‘Î[‡ÝÙ¼ÞW‘Zï³/>ûâ³/ô12º½kö®Ù»&â߆ÙßX!“¸7ÒymÉcêôˆÔzójÍ«5¯–>g† Í?ƒjy¼åñ–‘ÞùƒO€“Wv\ÙqeÃßvg-œmRæ¯v^Ò¥JiAoôs×ï(ó`¤À윻sîιz׈'G<9âÉð¾]áç¼ïäúäøã]û5š*è~þ¢Ò—Vmi”Øÿåþ/÷©§‘qõÑwFßá}»yóºGòý–ôæÂË z£ŸÇ?ûô¨Š×G%ŽüëÈ¿ŽüKOƒ´&Hk¡s£'Ÿ€ÿ²oô¾ÑûFGz«}ïæÉÊNî&ÿ\ç™»*x!¼%{?ÛûÙÞÏêodD; ï(¼£p¤Qbmß/Ôé+ÜMþ¹m‡RÇ ÞÞ’ÏÜòÌ-ÏÜ¢¿‘­ï·¾ßú~‘F‰m7ѨÞ.án²Î7-lи@í2•:\qMxK¾µï­}oíÓß ­ €ÒZèánædG'࿌ødÄ'#> c]sC‡çóOèžêù±|ßí®q¡×ͯm~mókzKß‚} ö-ÞŸŸÜV³r©ÚÝS^ºõW×û4Ò(ñǘ?Æü1F¯#c¹£ÙÍîhÞŸGÏì§reĺ§z^“éãIuJD%v:Øé`'½ÒŽàL§0ÿqð⃼8Ò›éGŽÍ{´âgÝÓ;ßÜó©IÅŸ oÕ>ùûäï“_ß#£Øµ{×î]»#{'vêÝ @÷ôÎC3Õº³Ô¾ðV}®ßsýžë§ï‘Ql굩צ^‘F‰ÃÕæ÷o8S {zçûŸiw¬X·“ì¦<øíÁoÖ÷ í€Ò‹08%ÀüÇûO½ÿÔû' )ë¿ÞµYÁíBÜ”œܹhlåŸ#ýãdÏÌ=3÷ÌÔ‰}#Ž<:òhx~ie½Neîâ¦ä¼{ÙÝê¿i”8´áІCô@bßã—>~éã—†÷áñ­Ÿ¾·bm!nJÎ[ŽMëU¯s¤Qâøˆã#ŽÐ!-€b0øT €HJú2éˤ/ó7Éß$“ð·ËýõõžŠ qS~n¶§_뢷†·ð{¥ß+ý^iÝXvüæã7¿9Ò?ªwO¿»]ý qS~~¤EÕ'Kt oá%f”˜QB?$–êr¨Ë¡.‘F‰¿ÚÍ»°aK!nÊÏžiú[¡¶á-¼pì± Çê‡À±Fœ`’ÖÕ[Wo]½ð7ÇWÝR÷£ÜW nSëühÉyßTœÞÎÅ»ïR¼KÒ‰¤I'ôFbÓâ¿-þÛâ¿…÷Þ·Êg*ÒWp›Zç_gßvQ“Œ+7®Ü¸²~H,›UuVÕYUÃ{ï Z]–•ì*¸M­ó¢9ï-¯9&¼ïîwÿ»ûë‡À±L‰€¤—®yéš—® CÜñØØÅWÙ÷7•ÏW޼zõåµÂ[{Û¯Û~Ýö«ÞHlzdË#[ÙÞo\wKþše·©vþ½Û]¯)ò@®&Ù{žd—åç÷>¿÷y½‘Øtë®[wݺ+¼ß®m9ùý:=·©u>qþwu-¸ËòØÃc› ©L QƒC €H*´¢ÐŠB+Âß÷ç§6•G‰lS÷|[îQÃKÎ oíIÝ&u›ÔMo$ÖœXqbʼn‘þ©|4±ËÒF-·©{~½fÃúå¾ oíY%f•˜e!hbÎÑ‹Ž^tô¢H£DR¡…ùgܦîyHë{/.Õ:¼µ×Y\gq}R— # €Îj{~ÙóËž_Âßò–ì]ëŽËŸ֦ŹoŽoî®”5¼Í[Oi=¥õ}’X³uîÖ¹[çžd¹ÑÞåòÞ*¬M‹óú‰·Í¬[1¼Í{ï=¾÷x}’X³êøªã«Ž‡÷ØîYV2¿°6-ÎKzN(^óhx›?·ý¹íÏm×'!u €2º³3 œÕ¾áû¾!ümn«ÎCÛ_!¬M“óí+þ]µT¤`œ¨y¢æ‰šz&±cÆý3îŸqx_ýìÇæÝª\'¬M‹óñ\][5z3¼Í³7ËÞ,{³¤CI‡’é™ÄŽq/{iÜKá=ö›¿õ~aÂÚ´8ÿµ`Þí ï o󪋪.ªºHŸ„Ô%ˆ'gO,8«þçèŽþgø[Ûû{}öS¹tžÜ¿À=+wÏ_ÉÂÙWµ*óqƒy¹ÿŒþ[/-Z¥EáßËÊÙ.ø­«zÕ]•»ü¯/o\e{ìÄÀWŸÓ®aþKÂ[~×ì]³wÍÖ3‰—\:ð$ûMnš~û†ºÓ7(Y¸ÅÆjBkµè¼[ž©yr~÷³/šßU¥aèïþ”õ– 5«ÇN |ÝÅFäËÞò»ì~°»žIì¸{ùÝËï^ÞWÿX0óæúc!.Íœb±_¹©Èã9&…×öØÇn1}ùÃUöÅN\Z·\uòŽÎúÐ#×Ͻ¦bßП¹¿Åg£Ê=–õ†lG3ÿôŸ…¬¯Z¬ø±ýçn«'ýTæDxËO¹pÊ…S.Ô3‰á½4K•Ìý3·L:Ö­kãF±”†Ö­Ê§ù³_þRôŸ?0®ó vçî›í¥¬åƒßzöæÚ¯Úkð{o¼¹jïðöŸ÷ܼçæ=§gË£D忥»_^/v‚Ò VÆÍ™Ò`wôóœo^ÿ°úÄœï娖åùà·îÚÙ"_ác3~wá*L oÿå –7XÞ@Ï„´åÀñ->Â`0ÀY-ü kî–kd+kqiørС±î%î_eN‰_jŒÊõŸHµÜ®&“¯ø8–wîóÕWK*Œ oÿ‘9Gæ™SÏ$–G‰Fõ‹¬Ë›#†‚Òûn,\µÕÉæêüç'¶¸n}¥¢ÿ ³ÏÍÜ=sãõ{oû¥nýXÛ øçóÛu­5"üu}Ð÷ƒ¾ôÕ3‰åQ¢Sí›vÉ‘±vÕÝüùç½êå->®Ð—9J¯¢Öu?¸"ÓÁQsïoX<6ë<7ÛëÛ«'„·ÿWÿøê_ýCÏ„´åÀgŒ €ÎjáoRKM«3êò½±š†/Ýá§Q•wCïÇ]:?øáN³'W,›sƒs¿w¾»¢Ò¨ðöï;³ï̾3õLby”¸gnùvEÆÇNPz¤}—&å/“ã¦lõ’·}òªK >ü̵CŠåÌ»8ÖæþçÍÜQ¼Þ¥'ùšÈ¶‘ÛFnÓ3‰åQbð¼n‹JÍ(Ñïþ©³4ø¢fÛ »r¯ê_hOþf¿bæÏjÕ}4–÷^þÜÄÛjmoÿ‰u&Ö™XGÏ„´åÀg§Œ§[œ€˜TùÉ?É[5–çÎþ×|å? 5Ëvkö+råËÒ-ø/íª¿8çÊc9úýÏœæ?þUyˆþFFÔ÷‰j­Jlе¸4´†õþYh÷'ÙŸøÏsîîSÿýS³–ÊrKð“c/h4©ü«±ï,Þñï×|§¿‘œòH¦2?Æ~ô{¼ô·£½Óæí&M žÔ<리2:kÿ˜G«_ËÑop^_pÊêºÙô7€Ø÷ùGŸôùG`ÒMµE­Ì×"¦£ÓËAWî~ãSyËÆrÍCÏ.º¿ò÷úÑÀïkL*yc¬Å¥S?hþe•ÇÂkú3o¯lüE…«ƒÿÄÀA$k¯%8ÿñrÇõÛèodD£o}ìñr` èGFÜuI‰Ck>ê¾·”}äÿ±^ÿMU¦6¬;Oˆ}G><òá‘À¤›ØŸ>8pKçþ¯Ä/%6˜Œ+6gzôž×ŽÌÓ>{ìo„Ö6ôgnÌSâ™ü7ÿý¶ê¥þ3fCÊÅþ à×ë÷Ÿ].1´Î]^j5´ÈÏkßb3€2гhðÜ¿9‡Ãáp8ÒÿKË{ç^ç~q]ù;C—}ËA÷=º`¥Ûc?Ž´ð-ïhyGK=ÓË£D¬íi!èëï)öm¾:ÁÿýÖ»Ú_Ó1ë¦,ù2üßO4¿°J¦Ø|Ñ÷î½·÷ÞÞ{õLG,±¼pB½QßV=,õÔ¶Þ?«¼~ŶCÎÛÚpdÆ €#í<¤÷ÞCzë™GÚrÃòË?,¿–q8޳í˜ÖoZ¿iýº×í¼nç%?ú ~þ,Ú€XþÆ4wË‚5²ÍÐô‰’?÷¯2çʯj–¸üú ¶å.j\àŠ»ƒè÷¿>zŽù¸ÏW_-©0ö$³¦rŽÌ92§žI,êY—7Gl†¦“6=R¹{PÏ,{3ÏÉÜ?øóèž ª—»"øsÁËrþ=Û‡GÚw¹±aR,À?Ÿß®k­áíÿAßú~ÐWÏ$–G‰NµoÚU$æ–€^>zâ=µvä«uÅÙþԳ蜂õ³'nþüó^õòþ¿õ2R<7ÛëÛ«'„·ÿWÿøê_ýCÏ„´å&™\dr-p6‚Û§'<=áé É}ƒŸ?ó¡o(0ÀY­ø Åo(~Cø[Õ'¦/¸Ê¾X M›Uî{IÑÿ|D›³]ž‹²^ùp§Ù“+–>É<Ú}¯ )õI,ÀÝVOú©Ì‰ðšO¹pÊ…S.Ô3‰á½4K•Ìý3·L:Ö­kãF±šÕy[Ãâ¹ûf{)kùÐ:7~§hǼƒ?÷W¥C±ßrÛsCK, où%–XR@Ï$vÔMª›T÷$}ÞÛåʆÛb!èZ×vE¦Ðÿ²à±V‰5¾Œåè78?¿¨ÎæÒ}Ã[~ýôõÓ×O×3‰ù6åÛ”oSx_=Ñö»A¶¦oD,ìÜ`Qõò|Z·Ð=€3bôœ¼é¶/Š÷oùCwÝ9TÏ„Ô"8ÄGèJ pVýÏÑÿýÏð·°÷÷úì§rOÇBP:¨áÒU)öZ•‰¹êu+Ýæš{s÷|ÙŠLUÿk©çàÿæx0÷#YÖÄþrÐWŸÓ®aþKÂ[~×ì]³wÍÖ3‰—\:pix_Ý4ýö u7Æft:éšë¯®Ô>¼Îåòå›+{ìÏý Î×ýPlD¾¼á¯â`÷ƒÝv×3‰w/¿{ùÝËÃûê fÞ\¿cúF¤wþã†w ­ÕÝ?Þ4ªð±ýSghðÅqs¦4ØœslÀWn*òxŽIá-ìÆc7»QÏ„Ô"ˆWñú†œÕ¾áû¾!üíl«ÎCÛ_ Ai“i½ª~ã? 6^‘+_–n½¶ÎXUþÃHánøk¹ûøÛ/•þG À·¯øwÕR‘þ!q¢æ‰š'jê™ÄŽ÷ϸÆýá}õ³›w«r]lF§ûævZÝ`pÎ÷²Éò|hŸú°æšRïÄ~|»¡ArìÔgHë{/.Õ:¼µ×Y\gq}R— #:;CßP`’^ºæ¥k^º&üoÇcc_õYlî¡›qÏW޼zõåµÂ[{Û¯Û~Ýö«ÞHlzdË#[ÙÞo\wKþšeb-@=8ªó¶†Åó6ÍþfÖeA=G÷lP½Ü þ½Û]¯)ò@®&Ù{†·öÞç÷>¿÷y½‘Øtë®[wݺ+¼ß®m9ùý:=3z;ççW§ÑÒHY{xìá±z#¤.0@F!ô % i]½uõÖÕ |Õ-u?Ê}¥È6µÎ–œ÷MÅ9áí\¼Kñ.Å»$H:‘tBo$6-þÛâ¿-þ[xïí|¨|¦"}c-Fý¿mï¨p~PÃlK³<’ù÷µ;þóšŸbîﯳo»¨ÎIF‰Æ•Wn\Y?$–ͪ:«ê¬ªá½wP­.ËJvܦÖyÑœ÷–×s’eùûßÝÿîþú!¤0@,úF" )éˤ/“¾Ìß$“üMÂß?ô××{*^$¾Mù¹Ùž~­‹ÞÞÂï•~¯ô{¥uCbÙñ›ß|üæHÿxÞ=ýîvõÿ^¡éŸ{îþ±þºã:¿Ð`÷ÂZwõíE–äê‘}èB‘ËÕ-|,£,þüH‹ªO–èÞÂ3JÌ(1ÃâÏÄ´C]u9Ô%Ò(ñW»y6l)¾Mù¹Ã3M+Ô6¼…Ž]8v¡¹¿&À±Fè›`þãý§Þêý§Âß"×½k³‚ÛÅ·)9¸sÑØÊ?GúGÈž™{fûFytäÑð>üÒÊzÊÜ^¡és ê´(]0¼VyÚgo˜õUní\{^ìG¿»—ÝÝ©þ[‘F‰Cm8´A$ö=~éã—>~ixßúé{+Öߦä¼åØ´^õ:G%Ž8>âø=Ò‚ }O•€ÿ8xñÁ‹^éMó#Çæ=ZÑ~À§y¾¹çS“ŠŸ$\ï“¿Oþ>ùõ=2Š]»wíÞµ;Ò(±wb§Þ œùèôµ›ì(74ë¦,ù2Ôäê.–åþ¿o{´ÎUcOF™û;4S­;Kí oÕçú=×ï¹~úŦ^›zmêq‡Újóû7œ)Ê=½óýÏ´;V¬[x«¾=øíÁoÖ÷ í€Ò‹Ð7%Àü—ŸŒødÄ'áo knèð|þ‰¢ÜS=?–ï»Ý•¾Šôϒͯm~mókzKß‚} ö=ÉŒÛ'·Õ¬\ªvz¨ÁÐ;šÝõÙ5£ƒÿ’Q¢ß­­ï¼ºÞ§‘F‰?Æü1æ1zËÍîhvG³ðþøÆ ™D¼‘ÎkëLS§G¤Ö›Wk^­yµô183ÀiþTËã-·ú¦.0­Üµr×Ê]‘Þ‚wøî•¤’ïˆ{CÏO Zž£Êú«jÕ˜»@x‹U»°Ú…Õ.<ÑâD‹-ô.âþ¸ðÅH£Ä¬gnZPíOqoèùHÕ.õþU6RÏ_y_ûk·ýž8ÜíÂÆ—Ü=¸\‘¿Gj«]«v­ÚµJ"þ<0á DÜÑmãôÏ6Õ}_ô{ìÞ'=Ò,{Ý ò½©­”9Pæ@= Î$0‘€ÿ¥gRϤžm‡´ÒvH¤#ïïðÙÄrÏæ¸i¡GJ™©}f™qdÆ]‰xu<ßñ|ÇóÕXwb݉‘ž‚õEo{®n¶³4ÞØíöÆuM¨öŸGjŸo‡|;äÛ!úñêЉC'(–§Xžby"=Û3ñË5—ŸÑï‰Vßõo´¥S¾›–É©}–X>`ù} Î<0‘€d9°åÀ–[ U(T¡P…HMö¸pòè²ÓÏ¢è÷ÞU-{ýùÕ,rW¤69qäÄ‘õλ[ïn½»uæ¨V_sëŒÚ‡Ï¢Y¿u]Þh×Ãû«ÞUâÆHm2îƒqŒû@ÿál°µÈÖ"[‹D%6·û¼d½ Ïžè÷èâO7jÕqE‹e…çFj“Ï/øü‚Ï/Ð ½€ȈÀœ‚ßGþ>ò÷‘Ñ?ºíXþ­WõŒïèwPõ¥¿Ty°Ö·Ë¿>R;<²á‘ lHÚ›´7i¯žÃÙcÄ 6Lˆ>J,¸·Õ´Óâ;úý«Ã=¶l·äª¡gDj‡gß~öígßÖg8Û¬(¿¢üŠòÑG‰¥7OXQ«l|G¿{;]¢A¥Fk¼7K¤vxcÅ+ÞX¡Ï@ú €8e›ŸÝüìæg£tÛ¬ø£{‹æÜhÅ}U ÇSôûȹsfW¼³Pƒ²9s|éµ÷Øs`ÏIY’²$eÑ[8;­ZµjÕªUÑG‰×·4\ncüE¿ë¯»mLݼ.Ìñv¶^‘^û““Ÿœüää¤cIÇ’Žé-œ~šòÓ”Ÿ¦D%>øbx¶JçÅ_ô»â½I5j_ýµ¿2è•A¯ ÒO €ȈÀœ¦­¶NØ:![¿lý²õ‹ôñeÑf•:æü©OŸ¯n¨04£G¿·çüwƒRY£\;`Û€m¶%uJê”ÔIu9ÖåX—#úSÓ¼lñ%ùÖmorç¾kŠfôèwüÿ]ûDÅ£¿ÞOxjÄSú~®ösµŸ«EjnïݼS¡ù»‹Ï|½þ£8ú-¾°pãc¾züår÷D½cWŽ]9v¥¾±C @F$ EövÙÛeo—F£n4:úš7´üû¢KmþùïU&e”Ð÷ÁëU(R:[½¹ÿÇǵo$½‘ô†î'±3ÛÎl;³•U~TùQÑŸ£7×4ª]¾URényçÌ(¡ïÊÝí×Ö~°Æ^ÈýpôW7i“æênóðÍÃ7¿¢Ï}®èó?æ·öMÅ+ú]|Ùø¬5'–è[ø®í£¿º­g´žÑZ€X# # Ž'O8žðtÛ§Û>Ý6s2´ýùÅœW¶xîâU.‰µÐ÷¡û¾>¯ÂªÚ]ï¨V Lr^Ë‚ V,°?üG^8ò‘úã¡?ú#9OÖ”ŽÍWN$û5W­¹jÍUúÄ&0‘€T6öüÙóggN¶ë»>´­È“}×.øºR«ô }»®Ÿxy™‰å×]×&Ï9É©sûWÚ¿Òþ•Ý™wgÞÙ‡S•pC 7$”9íšœe~Úß¿sÁ“Ò+ôóVË]Õß¾¶~Ñãy“5¾Ý[úÞÒ÷–Þßd“ýMÜq8U“O><ùpòG‰×?­Ü²ÃkçŸh¸)½Bß„1¯f®viÍ~ν89uî·±ßÆ~ ?4üÐpwb™€ŒH @š8Øø`ミûÄØ'Æ&ÿÜÜø,Û?o¬?àÎb…¸ûóGÊ-OÝ wЭËrVÐùÊw_+}_í«oÿ­@þ̧(±jbÕĪî/¤ÜžÝ{vïÙýà×~ýà×ÉËÌÉS çü×îkp°Üó«Çߺ¾NæÔ zÿê|O•†­Ƕ˜R­É=O”¯Wäßɯ[–öYÚgiÿM‘oŠ|ãCaH;¿ßùýÎï;—ì\²sÉä?‰Õ»”›»ÌÛÙßX!Óº*SŠÔY›ºAïÞ~_WkP}ú˜‘»«»ýâæY }”üºy±È‹E^\ÔpQÃE Ý_È(ÀdD`ÒÜÆ§7>½ñé;~¿ã÷;~Ï|ZrUÌ;$k¯jÍZ=Ÿ¯h³oú]Z´yûÛ^š{岎yÞjrU·ÎmÞÝQº§÷ßI,ÝàŽ}¯ )õI›6Ï|Y¢£#÷—.|qé—®Y’{Dæx}úëÓ_Ÿ~¸Íá6‡Û¸›Öœ¿æü5ç·<¿åù-Ï?½ç´èæ\K²Ï»§]ù E^|ùÜz–éña¿ë?ªô û[ô®VpNþ–‰ÕŸúºHËs«gýü­rV™òõ.ÿkÿûªwåüÆжÎÛ!%£Äø6ãÛŒostßÑ}G÷¹›–­^¶zÙêÏ6x¶Á³§÷œ–ú¸è–œÙ»ßÜæã¢ýkì# ÊžÿñÏ ª””øó¿/¬vóœ{^¿«ú+³V¹»úyS{½ôp•ûß\80±|‹¾Ÿwü¢ÄîkrVí‘§hJF‰O?Iü$ñøŽã;Žïp7!c €8£6¬Ý°vÃÚ‡ >Tð¡‚™cØøšãkޝùWõ¿ªÿUÝ]ƒ3iÍek.[sY·¹Ýæv››ãC¾ùJä+ññö·¼ýðÃp×àLúyæÏ3žyÛÛÜv 6G‰R J5(Õ`z±éŦ;VþXùcåÝ5ȸÀdD`ÒÍÁ0õê©WO½ºIÉ&%›”L¯j®ùp͇k.+¿¬ü2ÑB ÙÛwoß½}?ºô£K?º´ÖŽZ;jíH¯QbÀâ‹,þ¥ó/éì¾@ìøãù?žÿãù÷†¿7ü½áï©xOÅ{Òk”Zhh¡¡…~môk£_¹/OÀdD`bÈ%–X²°ÝÂv Û={ɳ—<{Ií©µ§ÖžšZÎv˜Ýav‡ÙïUz¯Ò{•ÖýmÝßÖýM›CƲ÷ØÞc{Í_;íüµO•{ªÜS媕®VºZé”Y&f™˜ebÇqÇu7±ÒÄJ+m¼gã=ïÑæ±üùòŸ/ÿùòìJ³+Í®4°ìÀ²Ë–V~Xùa)%rMË5-×´®=ºöèÚcr¦É™&gÚ2zËè-£µ9±F @¶²ÏÊ>+ûÌË2/˼,ó{Íï5¿×‘•GVY©e€ÀâÇ?¾øñ¹ ç.œ»pþ´ùÓæO;ÑüDó͵ Xxhá¡…‡æ™;dîùÇçŸãTîµ)_<Åû›|Ñô2›“~}ûõí×·\€E999_4I‰ T®T _œ TUA•”œ 8å3€ßøà€2é|²|¦+ñ‘¸‚ž '|³GâòË( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À(qFù"?Pï—¾_ú~i­°ZaµÂÄ‘Yð†a ÃÄðÄðÄpò(·¨ÙQ³£f_lúÿÿGfPÒÄOñGüô?‰ÄO%ò€¯£F ”gRK©¥ÔrT›QmFµ‰õŠõŠõÛ§hNÑœ¢©o¡o¡oñ•«6 ƒ+g¯œ½rö¿§ÿ=ýïiЊ A+ÂÃÃãââ&>L|¨o©o©oiggWóuÍ×5_Û/²_d¿¨CH‡!MBš„4 )Õ¤‚ÁŸnütã§Ãw8ÜážÚ=µ{j‘û"÷EîûÐûCï½+=¨ô ÒÓ1¦cLÇØéÚéÚéþðê‡W?¼rà0Àa€$L& #f%ŒYI­¬»²îʺ[6nÙ¸eãF‚‘`ÇØ æ’ˆYü”™TgRIu½ZôjÑ«X»X»X»Ñö£íGÛ_|ýñõé(,‰T*•J¥¥ófjjj½ôzéõÒËÝ~2édÒÉ$‡,‡,‡,v €òÉÿJßoðÅ:ËÒK,]àõ§×Ÿ^Š-Æ'ŒOŸˆéÓ;¦÷×ÏšýÓìŸf+:­è´¢ÓÓ-O·<ÝRô8 =0ôÀÐ.kº¬é²¦ä²q)åRÊ¥·;nwÜî¼êóªÏ«>_·žCއ9vòíäÛÉ·¤÷ 1—NÌÊ*§QN£œFõ½ê{Õ÷úðã‡?üøm?§Ïå3æ¿¿?sWsWsW~S(ë¡J_è|¹óåΗåõžkw®Ý¹v…]'`(¦gËž-{¶¬µgkÏÖž¹Û—x/ñ^â=nĸãF|méééÓc¦ÇLÙ{xï὇K.òèÑ=¢{¨ïQߣ¾§èk¯#ß©¹Ss§fñFûÑü£ùGs•‡*U×:‰¹tb.ŒŒŒûf÷Íî›ý­>§ÏÄ,ZwsÝÍu7çv™Ûen±Eí¤ÚIµ“Y½²zeõâ÷%€²Bê¡<_¸õ}~ÿxj/”„` ˆe€ÜͦcMÇšŽ=cöŒÙ3 »¶QwGÝu·¤K¿¢Ê~•ý*û‰ï[”õˆåñ£Ç?º$Ê!¢J•"*EˆïUôµséÄ\~lžºyêæ©ßêÝÏĜۨ £.Œº»E,ý:tuèêЕ£G%nÀŸùý#?(}{}öúìõ¹¶õÚÖk[s·Ï<<óðÌÃ…½ÊjÍË5/×¼h:1+rÌÊA,Ô…4iÒX¼:_¼µ»……EÁK¿%‡ñLÌòˆ×˶G\¸qõó#€üw%ʃttt•uWÖ]YW¶W¼!yaË´§üOùŸò—mK¶ÿ4û§Ù?ÍŠrí`­Kµ.Õºôiã§Ÿ6Ê[¦W«^­zµ*ø:£fGÍŽš}¸ïᾇûʋܻ–w-ïZ…Žxûà­"ÇÉx&æ‚hgÚδ©l»øG UöUÙWeŸì‡0ʘë¿åýOÞò÷Uï«ÞWj:Õtª©“…“…“E+u®Ô¹RuSÕMU751hbÐÄÀÙÜÙÜÙ\¼ ¤XØ+H$âÕE›VmZµiUŸ6}ÚôiÓDh"4ªM¨6¡Ú³Ùf³ÍfÛ ±b3dÈÌ!3‡ÌôéèÓѧcÁ×_âíO/G^޼évÇíŽÛ.'ºœèr¶­m[Û¶âÇ–ßY~gù˜ŸZÿÔú§Ö[Gl±uDr`r`r âìAyį×Åëz ²¼OsŸæ>ÍeÛûí´ÿÑÂ^ötËÓ-OåeÛ h3 Í€âzn¨õ/Ö¿Xÿ"¯÷Ã~üðcÁ׿«î«î«.¯×µ“k'×NEÜo™ß2¿ercÐðÕðÕ fE‹¥ƒñLÌ! “„IÂ&tšÐiB'ÙÞæÇšk~Œ£ rŸ”J¥R©´tÞLz QñÞ4ÿ¯Pó¯Â~ýZµÅÆÆŽ 0*àBû í/úú›€Ä€Ä€D»l»l»ìÜíbÑqÝ…uÖ]˜×r^Ëy-¿.c†z`¨øôÁâݳâm‡ëò[—ߺ¼ÛônÓ»M…]ƒ¾…¾…¾Ebxbxbøã7>Þ(^#[:cOv5}júÔŸ\ôŒ¥y¥y¥y™.5]jºT¶W×A×A×A,Ûç4ÅYÅYÅYÕL¬™X3Q¶×Pj(5”ÆKâ%ñ’b(]‚‘Š‘ŠQv,6Ä£‰˜!fåpcÒI7&yîðÜá¹£g{õõõ¢|Æâ³’ñLÌ…$^Ñ.ÞØ¼¤Ç'Š‹"ÔC¹JåUŸW}^õqÒwÒwÒÿºÒ¯¨»{w÷îî¹K•╦?„þúChQJ¿¢Aë­´®¸Êð ‰ ‰ ‰âuÌ#CF†Œ ùºÒ¯H,ýŠ?·<ÑòDËßêI¢k¢×D¯‰®··ÞÞz{½;ywòî$>ãS,ý|=ŸûûÜßçdÛkÞ«y¯æ=‡±cÆ66ñ¶ŸbùYöŸéXÓ±¦c‹+Ñ?Fÿ-÷ßê9Õsªçd=<>ðø€¼Þb¾ž,AHäuŠåbVœ˜•C˵-×¶\{4¹pÿJ3BÆ31–m5Ûj¶ÕäõŽúgÔ?£þáw?È¢ ¥2píÀµ×¾Iz“ô&©(ëË{µ.ÕºTë’xmå0³afÃÌŒŒŒ‹§Ô@j 50Š7Š7Š/JyU,…Š7 ¾”r)åRJñæ3Å/Å/ÅOü¹tÊÀY½²zeõ»fìš±kæ×›_o~½"åÙRj)µÜÞ|{óíyÜü¹å_-ÿjù××];Õ÷UßW}_‰WËþk=ºõèÖ£‹+'×¶^Ûzm«¼ÞÚÇk¯}¼ ëy¶ìÙ²groUÚ< y@ó€â½’Ì}¾û|÷ùòzW¯4^iLÌŠ3J㙘¿Î€?ü9àOÙö“×O^?yý[ý‘`€rêû yÿ+‰W•¦Æ!Cþe÷¡ÊC•‡c~óû˜ßÅÛüF.‰\¹ä?¿ÿüþó›¯1_c¾†úõ=ê{ä­-Ø1Ø1ØÑ¢—E/‹^gçwv^îÞ¶ömíÛÚï]¾wùÞåÁ–Á–Á–¯ã_Ç¿Ž?~õøÕãW];»vv휴q†q†q†_·¥âS~ý1èAˆ·ˆ”·¤S¦S¦Sæ¦É›&oš|/ì^ؽ°÷cß}?6T* •ž·;owÞnÆùçgœ ÒòÖ#I$HJú‹æ)¦SL§˜˜`þùE_ÛõÉ×'_Ÿ,¯W,(òqš1>c|ÆøÛ7n߸]Þ2Ã+ ¯0¼BAŠO—?]þt¹¼Þq5âjóMDó¿:ùùÄçŸO$fEˆ¥ƒñLÌ_§ù¥æ—š_’m¿ôýÒ÷K9² ‹0@9µ32ï%ñªÒ§±AcƒÆ†C}õ9Ôgóï›ßü»ø„× ã*Œ«0ΦµMk›ÖS£¦FMÊtÍtÍtŸÒWðõ‹Åã+AW‚®uÕ}T÷QïW¼_ñ¾Ô@j ý®Áw ¾k°î຃ëdmÿíøoÇ »k_®}¹öåÍŸnþtó'Ù^ñ9¾û~Û÷Û¾ßÄ'\\0pÁÀVzVzVzšžšžšž†ñ†ñ†ñÍš4 ø­ÙoÍ~k&¤3œ3œ3d×)^µ\ér¥Ë•.‹OX,‰}·÷ðÞÃ{çn£qkÄ­·Äg'„„„?Úûhw ïÞ1”·¶Sþ§üOùËëu»ãvÇíŽb¡Û}l÷±Ýpá:Ãuî'ßO¾ŸÇjÅ}ç¬ë¬ë¬[u¾úrèË¡òz‹÷IÏ¢jÝ«u¯Ö]^oAŠ"Ä\:1£t0ž‰ùë4»Ûìn³»òz§hNÑœ¢Éñ€Ü(@ Íé8§ãœŽ.¡.¡.¡ù_)öü)}ô†i ÓZ± cAFA®¹,È2Ï<>óøLÁ¯¬Ü¹?rÿï~¯ð{×^‹Eî§Oœ>qzðƒÿüGÁot).¹Cm‡Ú5yˈ…ɵ·ÖÞZ{«¤÷£x î ñ6Î]ÖtYÓe®®®ø…»X–·±H/Ûžÿ«Jšx]o¼a¼a¼áÛÓoO¿=ýtËÓ-O·ìóÙç³ÏgR×I]'u­ý°öÃÚOo;½íô6Ù5ˆO/Þ}m÷µÝ× ±ó½â¼Úàjƒ« .Þ-ÍqÕãªÇUÏäséÄŒÒÁx&æ¯[#ëFÖ¬å~Ò½röÊYŽ/äFJ¥Ê’*Kª,Ÿ[ðÂØ‘Gj©‘ÿ2z6z6z6¿5ÿ­ùoÍ ûìÀ¿ü}àïòzc­b­b q5í“&;Läõ.Ù¶dÛ’mŽ6Ž6Ž6_ùŒÃ!AHˆ58jpÝuu×Õ]'»ˆXŽ-¹’Rõ¸êqÕãNí?µÿÔ~ñçÂn‹øôâ{ª÷Tï©ÊöŠ%äÒŸ÷Uï«ÞW­²¯Ê¾*ûjHjHjHl†Ø ±Òƽ{÷ñnãÝÆ»ý}ãïß·‡®]ºŠ™1k:ÖtlÁß=Ù/Ù/ÙO^¯xÕxñn¯xÔÈçTò©äSĬ1£t0ž‰ùëäÿ¸ ñ.ü‘r£ ¥2fÕ˜UcV¶XX'ŽÞ1zÇèu®Ô¹RçJa£ª»»îåõŠ×ƒd=Y½²zeõZÑoE¿ýò؊С5B§eNËœ–ù•¥ß\ÄÛhÏþyöϳ–íMHLHLH,¹ýèéíéíé-–ó¿n ònŽ-Ÿþ[ô,•ñ†¥ÿTü§â?Ïž <[Õ½ª{U÷®'åTÊ©¹Eˆ’¸*:ÿu¦îKÝ—º˜!f”Æ31é7œßÇü>æwy¿p| 7 ÀP*_we§yó6æmò_¦(%CñÉ»Eߺ[N·œn9Éë¸zàê«‹·¨)>áX^ïÒáK‡/^¼{°qvãìÆÙâÍ«‹²žG§~tº¤÷HéoúýCì±?Äú&û&û&ÝzÄ«¢åõjnÐÜ ¹¡x#¯0«Â¬ ³äÆ“o‘†˜K3f”Æ31EþŸ\žó<çyÎã(€ˆ0”Jíãµ×>^ØWåsEQƒ™ f6˜ùuQ‰WÓ}ë®ÿvý·ë¿ÉëíÜ!¸Cpñæ3ÿȯ-¿¶üÚòâ}Ç.«»¬îR eìàÆÁƒËë­øºâ늯ËâwÖuÖuÖoõÓ;¦wLï‚¿ö“×'¯O^r‚“ê'ÕOo´jÿ©ý§öŸ¼Þ”½){Sö³"ÄŒÒÁx&梨ø¦â›Šo¾îSå `(‹6m,ڔĚášÑë“®Oº>I^oãuŽ×9^šñ¼=ýöôÛÓÅûÜÁ¶ömíÛÚ}=ÁŽÁŽÁŽòzâââKÚeÛeÛe‹?‹Eî›››`Ë`Ë`ËUþUùWE¼Š«a·†ÝvËm]×u]×u]œUœU\ž!­å©å©%÷&¥®®®Å»½éãÓǧ˽½¹ú)õS꧈YbFé`<sQäÿ§K¯Ú½j÷ªGD€ T$a’0IXÙZsÁ½Iz“ô&I^o I I ‰Q ÷Ž%qkYˆ– -}=~~rošÿuT%-÷õͪÿ©þ§ú_ÅûïW¼ßøcã?Ž6vÚØiWö]Ùwåó3#å]‡Ò8¤qHãY g-œµ° ï«ÓC§‡Ny½iiiÅ»¥ééé_1—fÌ(Œgb.Šü?¹"®F\¸Z¼’€²‹0PfÄKâ%ñʼn'90909°x×ioo_Ò±••[@‹¥âŒñã3ä^[v¤Ù‘fGšäK!:Ct†ÈëÍÿ]¾Nþ…Ýžº=u{³"ÄŒÒÁx&æ¢È¿\ŸÈ(»(eF¼J¼J¼ýŸ˜˜TÌ_7XXX}=ùnôÆèÑ›²²ßó"röwÙße7íÅ´Ó^俞ü¯B‹3Œ3Œ3,æÈó]§®ƒ®ƒ®1+BÌ(Œgb. £8£8#¹ŸÉW’¯$_á(€ˆ0PfdöÌ왩@Wò•È×Í B‚PôÕä=Vþׇ)¦ +6¬Ø°B^Þ>x›ÿª,©²¤Êy½‘û#÷Gî/Þ˜ßm~·ùÝfy½•TzPé1+BÌ(Œgb. ݶºmuÛÊëMÝ”º)uGD€€2Ã@ß@ß@_^oä’È%‘KâJQtèÑ úlQÁ:ƒuËëMHLHLH,[{¿ÕÚVk[­•×ûöôÛÓoOç#è:Çë¯s\îö½Ý÷v_ñƹ)rS¤Ü‚DÝuu×Õ]—ÿõÍÄ\:1£t0ž‰¹(ï’žžþuŸz(o(e†¡ÔPj(•×û¡÷‡Þz—~TŠYXÊÿJ©X«X«X«¯[s‚$A’ Ùý<ïŸ<|òðIIlQþ×´½õ{ë÷Ö/ÿ5ä_ nÜ8¸qñÆZ1´bhEy½uw×Ý]w71+BÌ(Œgb.Šü?¹ôlôlôl8Ê ¢ ”UÖWY_e½¼Þ˜Þ1½cz“%Qþ_…å9–9–9–“íóþçÓѧ£OÇ’Ø"õ“ê'ÕOæUþk¨³»Îî:r‹wßi|§qñÆ|Ûñ¶ãmGy½u×Ö][w-1+BÌ(Œgb.ŠÿQn¤×H¯GD€€2£iHÓ¦!òzï†_ ¿J–DVzVzVzòzc«ÇV­þuk6zcôÆè¼Þ'[žly²¥$¶è£íGÛ¶òzMö˜ì1Ù“ÿšÝkv¯Ù=y½·›Ünr»Iþ7‘.Á@0PPP—íT;©vRí¤³¹³¹³91+BÌ(Œgb.Šü?¹òÿÔ@yC(3ZüÕâ¯Éë=8åà”ƒSŠ÷Å'˶qÏûßåÈË‘—#3Wµ/Õ¾Tû’¼Þ¢Ü:O7?Ýüts±•rytíѵG×äõšþjú«é¯ù¯A×A×A×A^oÒ£¤GIŠ+ÚÀƒÊëmÛµm×¶] ²b.˜Q:ÏÄ\ùrÕºWë^­{<í" À@™á0Ða Ã@y½gæ™wf^ñ–7Ïß<óü§[þÿÿž-¶üÙòï~ßðû†Š™+ñ«py½E/ÿØòÇ–?¶”mOLL,‰-òî?ܸ¼ÞvfíÌÚ™ä«Ïyžó<çÉë4}ÐôAÓ‹í>Ÿ}>û|äõvÝ}t÷Ñ/TséÄŒÒÁx&æ¯S0ÇD€€2£âýŠ÷+Þ—×›Ó(§QN£âúR;A’ I¬}¹öåÚ—²½Íš4 Pä\ÙéÚéÚéÊë}ÕçUŸW}вþ¾ú~èûA^ïÐzCë ­W\Ûò±ÝÇvÛmûaÛÛ~·Lgßξ} ²¶>¦}Lû˜ªïQߣžÇ-£š59jR”?#þ8üñžs{Îí9'Û+¾oïz½ëõ.D~ˆ¹tbFé`<ó× v v vüºO=”7€PRK©¥Ô’<|[g&œ™pf‚¼Þý+÷¯Ü¿²(_jgõÊê•Õkhë¡­‡¶–·Ì¸i㦛¦ÈW6ÎnœÝ8[^ï-§[N·œŠ²þö1ícÚÇÈëýûÜßçþ>Wô«±Å#n좱‹Æ.’·LÓ»Mï6½Ûé~§ûîdfƒÌ™ ÊtÍtÍt•íM÷H÷H÷輫ó®Î»Äg[6æÁ3‚gËëVaX…a¬=¬=¬= ¾Nb.˜s›RÿÿãlüuÏÄüuä}riÍÒš¥5«óåΗ;_æø€H"•J¥Rié¼Y Z Z Z/½^z½ôr·ŸL:™t2É!Ë!Ë!‹]ðmå_²zÑóEÏ=Mþ6ùÛäïâZga‹ˆÅ»¶ÒYsAÖ_ØwÉm’0I˜$L,ÆåÄåÄå B‚ÿ:ã ã ã §eNËœ–é«á«á«!»L½Åõ×[ü|Îó9Ïç|]NJ:Ïy/•‡*UŠ×L—ܘŸC)Þº°ï"î‹_þúå¯_þ:7ìܰsÃä-yìñ±ÇÇ‹·€.øúŧ;7‘6‘6‘Ê+ˆbõbõbõÄ%o1““Ln0¹¼ëá4=5=5=ï%ÜK¸—PÕ½ª{U÷Âf›˜K'悟¯Jâ˜U´O½’ÛFÆ31\êÞÔ½©{«M¨6¡Zþõ]ƒï|×à¿§ÿ=ýï)·|PŠPå `Âr—å.Ë]Ä›gŒÏŸ1>räþÈýd¦ô…è‡è‡èË+Æç¾VÛHÅHÅHeË´-Ó¶LŸà+–$Å ­Z´be‹•-V¶¨!©!©!‘WúUýOõ?Õÿ6ÍÝ4wÓܲò³ÇÏ?{ü,Û.~‰_ôõ4ÿhþÑ\^oîç‹E&ñúìС5Bk¤ø¥ø¥ø‰×[GOˆž=áRÊ¥”K)¿õÿ­ÿoýÅ}‘éwì´±ÓÆNûº'1Wë^­{µîù—CD“*&ULò5ñ5ñ5‰¸q5âªx圸{ï=¼÷pÛm{´í!¯"Z|hñ¡Å‡x5ðjàõuÙ&æÒ‰¥ƒñLÌwOížÚ=5y½b˜Ò/rã `|¡(7­•÷å#W<·…}—ûª÷Uï«öë×7.Î*Î*ΪD¦ a’0I˜Xú³kÌ®1»9Ϲ‰ï6îmÜÛ¸—Ü;Š¥‚v6ílÚÙ”Ü^È­g—ž]zv9åÊÿ”éŒÌ¢qkÄ­·¶7ßÞ|{óâÚ¿Ä\Ò1spin#㙘ó·&zMôšèùõæ×›ŸÇ…¯y\ó¸æQÿ×ú¿Öÿ•ßcW@áLl1±ÅÄ䡬°Ë¶Ë¶Ë‹Ž–æ–æ–æÅ»~} } }‹j;Ôv¨½ô[úüÒà—¿ÈëícÚÇ´iÑßżyó6‰‰‰-×¶\ÛrmIl‹X†wŸï>ß}~q•~EÑ=¢{D÷(‰˜Çü>æ÷1¿—D9„˜K'f”Æ31çï¶Óm§ÛN²íµ×>^ûxkÏÖž­=9Ž`|aN‡9æt e‹øuóu×ë®×?ßâ²Â¸ ã*Œûºµ‰·zv¹èrÑåâµÙ×f_›=Ül¸Ùp³²[Xš~súÍé7eÛƒ~ ú-è·âº&L,ÀŸ^zzéé¥b‹éXÓ±¦c‹²N±èÛ»~ïú½ëÿkø¯á¿†K,]°tAñî õ=ê{Ô÷ä^§Ù ³AfƒŠ’‡C =0tóï›ßü{IŒb.˜Q:ÏÄ,—` wüÝñw²ßk¯ý½6Ç>òø>[@@–ø´¼Ê~•ý*ûٻٻٻ…E„E„EÄ´‹iÓ®òß•ÿ®ü·Ù`³ÁfƒÍƘ1#>5V9nZr[‘ÿú‹÷ÝŧÏZô²èeÑ«ßÑ~Gû}1ñÅÄ£&DMˆšðÑö£íG[!:Ct†½1zcôƦ›M7›nm´Ðf€s†s†s†µ‡µ‡µ‡r|­üÚèµÑk£¦ Mš&H ¤RÙeJbKs—–G^yaä…W}^õyÕçýì÷³ßÏŽš5;jvò©äSɧ*¾ùÿþÕŸYfý™ŽfŽfŽfíƒÛ·nlÙØ²±eiî ñÒâ1cü±OÇ>û$Û;òÖÈ[#oŒ;wƒyàÀÊ…î3ºÏè>C¶],n徺@nï–¾[úni -ò‡A@É93÷ÌÜ3ss·[´h=pÐÚAk­%K‡0€rA|bâÎÈ‘;#e{{véÙ¥g²È:ã}ÆûŒwîGmGmGm2”œƒSN=8U¶ÝãgŸ=~æÏ/? ÀÊ‘ï«~_õûª²íþÃü‡ùËÿÉ@ùþ8üqøãÝÏw?ßýÜs‡çÏb{U÷ªîUÝgþ;óß™ÿ’% $ÄÆÆžò?åÊ?w{#ëFÖ¬‡vÚmh7²€üQPž$ B‚o²o²orîæL×L×LWÒˆlÛÚ¶µm;Ù~²ýd{±EßBßBßb×Û]ow½åêC äl\µqÕÆU²í‹üù/òçè@APPî8f:f:fʶë:è:è:ÄÚÅÚÅÚ‘%”gÆ'ŒOŸhgÖά٤:“êLª#>-»åÚ–k[òäQ DÄYÅYÅYm8²áȆ#¹Ûûíw´ßQgsgsgs²€‚   œz6îÙ¸gãôlôlôlÄ–äÀäÀäÀZaµÂj…‘”g/Û¾lû²íåÈË‘—#ÞXxcá ®;JÚŸZjý©%~‰-â•÷‹->´øÇ Ž0€rªÊ’*Kª,Iz”ô(éQîv­YZ³´fEOˆž=,¡<£à”ñg«ËV—­.¹Û—wXÞay‡z{ëí­·—, à((×dK\i^i^i^|á(Þ-¼[x·ø´ñÓÆOÅ–!ý†ôÒoÌ®1»ÆìâO1PX€@x»þíú·ëÅŸY7²ndÝ, Y@³######ò( âÓµ·LÛ2mË4ñÓÇ)Ó)Ó)sï὇÷¦ô €¯£F @{ˆöí!qCâ†Ä ù¢#NˆøòP"ħüRè@ñâ `P€@IP%A”`P€@IP%A”`P€@IP%A”`P€@IP%A”`P€@IP%A”`P€@IP%A”`P€@IP%A”`P€@IP%A”`P€@IP%A”`PjŠ„ô²ô²ôò•«W®^¹ú?•Aò Bä}•õ}É0ïËûò¾œ©x_Þ—÷å}y_¶”÷å}y_Þ—÷eKy_Þ—÷å}y_>‰x_{_‰D"‘gå}ߦàÞ={÷ìÝS`( †¤_‡[@€’(Õ°C–C–CI€’Pª·€ŽqŽqŽq>qòÄÉ'Kä ¸³?[Ê–ò¾l)[Ê–ò¾l)[Ê–ò¾l)[Ê–’a¶”-%Ãl)[J†ÙR¶”÷eK•ú}¿Á‚KEVoL½1õÆ”ÒFH¥R©T*Ê8ž J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À „‚¼‚¼‚¼®d\ɸ’!þLN”´ — — —k®×\¯¹^µ¾j}ÕúeÖˬ—Yd@IÏ6â™G< ‰g$2€™Ê'‰T*•J¥$YŒ[Œ[ŒÛˆ;w"üýý}?ø~ðýðqÞÇyçeÍ•VZXi¡³‰³‰³Iß.¾]|›š75ojn¼Âx…ñ 2”kYB–|mÿµý×öûuñëâ×ů‡_¿E_½Ým»Ûv·{›õ6ëmæôÄé‰Ók k k 6l*Ø~ <ûôèÓ£Ožd<Éx’```}"òDä‰ÈûÍî7»ß¬èëï!žÈü{ø÷ðo=¨õ ÖƒjÖªY«f-AMPÔÈ?ÀÌ‹™Ê: À pÞk¿×~¯}4ìhØÑ°%>K|–ø${%{%—êß’ëÎÒ¥;köÈÙ#gìkÙײ¯eÕÔª©USÙ;€r{8âሇ#vÅîŠÝësÉç’Ï¥Ò¡[·6n“´&iMÒrjëÔÖ©­V+­VZ­Ø;€²J»žv=ízÀ•€+WÖ¦­M[›vuÅÕW¿A9d¤ãHÇ‘ŽÃ*«8¬b£í¶7ÚÎÞ˜y1óBYD¾5 ÁB°òòò˜7qÞÄyoÜ4¸i ha¶Hh‘Ð"aẅ뮳÷´÷´÷Â…p!œ”]Ÿš~jú©é?ºÿèþ£;ñáć*fœcÆŒ ˜:!tB¨¹³¹³¹3û(ë"|#|#|××X_c}MN›œ69)fœë­k´®ÑÉ?$ÿ\áN…;î°ïf^̼ ø(À·/Ä ñÞix§ábšÇ4i^ØÕT´´Ú¡¡m¾¿©FïJÑ5Ô5úèž0™¤öN£¿ŽžŠ¹JÕ½’ã9QÙC¤}2¥$åD$÷þ°6ËôcåÐÌŒãƒîd|šöæçŒBÿu¹ñ-ã[Æ·vžßy~çy‡ †‚¡`ÈŽ_ºKºKºË®[»níºåžèžèžøuëùnqå(½ÈgŒwéF×8¨·Tk«q¸æXµyÚÕ¶¨ÚIÚ3…®éš9cr&Åÿ‘þ*»K¸Mj§ô¹Ä¤ž¹`y*~’zVã¾o?×~®ý\¯ù{ÍßkV›^mzµéìS ¬x»òíÊ·+ù=ä÷Ã{ï9¼§°kÐËÔ®¯×ñC‹Ú†ƒlç×Ú¬ÝÍâQ••š‹ Ó‹Tõ×LWŸ©²VzUª-œM>5û~ŒEü´¬…¡"¤¾Ùíi@råÿæÜ I2ûºø—ê/Õ_ª?¬ù°æÃškÑ<¢y„} ”Ÿ™—æ÷Ut,NëüY{†ŠÖ_Uõ­4ÕÏ„7QY©¥¯=RòLu¿ê$iýìAÙks¦§%¦údvM°Œ¹›öÓûÄ7é)S_yßÏI?•Þ™J`(Uoj¾©ù¦æè#£Œ>r³ÃÍ7;äUæ×›:VØd·²o'ÃÅÕÖ6®U¡‰®—q µgÅUò¬˜Ð¬úo'Ý þt÷þô£çãçD´ºséÓØ‚¼¶ÅÅ[\Üê²Õe«‹UˆUˆU{P8éBºîÙÿ²ÿå8 à/ýyD펕%.­.W<`¿ÆÄH/Hu”¤£äJq…ötW¦Ô}ç×G.IXîð¸^¤$!:sDöÆ‚¼öWÍ_5Õœæ6Ímš›–›–›–»P4i+ÒV¤­XµbÕŠU+–¥/K_–^WTÖ¹£:n†Á 3i§ -½ f6V}˜öàâŠ*{[Î`iÛ É/$ÙðsìÀÛOÞ‰.Ä÷ä8xà`—v]Úui'h š‚&ûPŽ™—ŽOm;ûJ×ZöªS£V¥FmÕ÷ª]\QeNèÿ±rJhðLJW>¶ ¼qrwÊÈW#ï1óBñ¢ %Nj+µ•Ún^°yÁæ#îU{ªï.ý˜o|æ“ÈüŠß¿+~ò–œ7tD¨¹÷¤ÌLw¨mTÝ$ÑVü­ wŽ Lï9ùñÊÝ¡é1w‚—È[Òë²×e¯ËclÆØŒ±$‚D06Å™yÕ81¾õÒ½9õ5½PV¶.iñóýw:†öÞpÍ]…™ Ž0³‹Û/n¿¸Ýe†Ë ¹Å‰æ[]-uðcc¼Hõ{õk³²¸¥ÙÇ2[K#gm~3÷Öè=6qîò–<â}Äûˆw‡FtÁJ‚ô±ô±ôñì˜Ù1³c69orÞä,oÉ}#Úõ¯ó ›w55£Qew{ßTN¶L¿áùÜ<Ø"iwZ„ì2:ëtÖ鬻»áLMM'@IøàðÁáƒC“ñMÆ7Ÿ21ebÊDÙej…›k™©¹äh½«hÓ4Í–ew{ÏÌj·mðö¹^ÚÊ[f¬ïXß±¾KŒ—/1–4”4”4dœßjæeÒ¦CÔ€U¶÷œ1\Me€Z õIeqKsfÝÌ\5â”÷άW/V9èÇÌ ù£ ÅÆOÕOÕOÕUßUßU_Þ2ýg¯oa>Ï"­éíýÊ´íáZw&§:´dÂ͈…ò–Ù“¸'qObìÙ=²-@q‘N“N“N›à:Áu‚ë¾Îû:ïë,»Œu°aj…£¾íÛw¬¿Ùä¾VuõX%Ùöda›ðß²·Ôßöõ²¨ñVî—¡OG>ùtdÕUWT]Á˜ŠË{·÷nïÝø4ðià#o™YA?-¨Öã×j?Ž­vT¢+y |§ÛþÁ..6³¢ó¿î¯ŸyR+ÔýS_ÙeŸ|nð¹õ{ÖïY¿G²J²J²Š1”æÌ«æ¼‰gV´Ôõ­óÜn±2m{²óËz÷ç„,\×Íí3/ÈCŠAþ{®– &qþùÈ¡ÕWé=ª“#e™Ûnn»¹í¦›~lú1FP3/ÍÑU¾·4¨m?Ýfm;ÕÕZ•µ'—‡œdOI‹N]ó*hå£I—Ó·F K`æ‘ )€¯38fpÌàüK¿®[vDZz•ŸÒ¯HÜ^qÛÅ<È.#æMÌ!c (,¿K~—ü.É+ý.xÛx˜Åà©G¬SÌf–ŸÒ¯¨é›J‰ºó/½ïÖ¢á=Ù^±X5îø¸ã㎠÷„{Â=ÆP÷„{Â=ñ’Wú½ô~㙆÷ÊQéW¤)h*S j`6sÁÛÑYäñ»xÆÏÞ % xg^bé·NªÛ ÊOéW$n¯¸íb˜yAD Mj+µ•Úº˜»˜»äQÚoø,^õ«¾X+BeaùÌ’¸íbÄœÈ.#æPÌ'ã (ˆ0ë0ë0kWgWg×<Ž©©µ\60Y»A†ipyÎ’­¦Qm_δ鴥ÁNÙ^ß½¾{}÷îÊØ•±+ƒœxÔˆGlï™6Öi°ÓV³¶ªÎ/å9K“µ˜šO­5ð‚éÙ^ñì-žÉQ@Ñg^â ŸÅ«~UjhŽ/ŸY·]̃˜f^  …¶yÁæ›<Øö`Ûƒm²½â³~ËÛU¿òˆys"Û+æPÌ'¹ò—3$gHÎ^£{î5Z¶·½CÕúæ-±³4ß@®D­N™ü«·akÇÖ÷k™ÈöNí:µëÔ®ÁIÁIÁIä ÈŸx¤ˆGlïÖŽsj™´:ÕpƒçŸÏæ-)5ßÐÞ¡™¶þÙ^ñL.žÕÉP”™—ø¬ßòvÕ¯jdddddäyÀó€çøîñÝ㻳g¿Ï€BxSóMÍ75Ç5Žk'ÛÛöúæó,Òš®ÑÞO®d…kÝ™œ:èÐ’ 7#ò¸*úžÑ=£{FV!V!V!ä µmÙ¶eÛ–Íôœé9ÓS¶7lD¿ÞÍêêy«ëª’+Y3:Ý´±ýö«)Ñ÷r·W÷®î]Ýûε;×î\“l•l•l%W@nÒÑÒÑÒÑM[7mÝ´õë¯g¼ž‘»wD³^+7ö>?%²º¹’•4#õ—ìxËí߇Þ~!Û»Üc¹ÇrQ¿ŽúuÔ¯ä (ì̫漉gV´Ôõ­óÜn1¹’•ìü²Þý9! ×us»¡ø3¯———J+]¬tQ¶÷×M¿núuÓ¸ãvŽÛixÚð´áiöoAp0ÌGá£ðqô‘ÑGF‘íl¾Õõ‘ÑRJ¿ùó#æJ¶÷sn? …ä È-zOôžè=òJ¿vtñ±~Fé7‹g4=nYO¶],hiq¤Å‘d %²¥ßÿ;²ÆÏëÈ‚HÏ[{‹ªá…ë†Z?“íÏêâž\Ÿy™´é5 ¥ßü‰ùs¥ø3¯³?žýñìòz—]6vÙØA5‚jqepÁQ€ <x8ððÍ7;Üì ÛÛ&ó—–•ú‘¥‚—+1·bžÉÛ‚9 æ,˜#Û>nh½¶Uî4u®t^÷'²”?­îª•UBÏ]éc=I¶w´ûh÷Ñî©ñ©ñ©ñä ‰G„xtÈöž»²&Úz’VwßTBÉUþš:×ûI÷§qC˜ZåNÁÏð3/y3¯*£{ü;Ìœ,„¼\)ÚÌ«õ–Ö[Zo¯ôÍIŠÁGþ ÁB°Þix§ád;]­ªöDí•Æ¦"æJÌ›lïç<[‚¹Þ\}sõÍÕ½ {ö&ÈöÎÞר·ù\²TpÍOÒ½î2ÆÊ bWãí6ßm¾›/”ÿqD¸Œiß¾â³æ Ü×½N– nö¾avy±Å3¼x¶'K@þ3¯'Æ·^š£²J=J£?©*1WbÞyæ%ÞØÙc Ç@¡ö¡ö¡öƒ‹aï“È_GGGLó˜æ1Ís·WœV½±F]«»-¯ét&K…%æMÌaîv1ÏbÎɰÜo¹ßr?Ùöu5[Yט¥ûAýžê²TX‹Œß±ô‘mŸ¥>K}–zz‹ôéÜåšxˆGD^GÐ/ÞyAÈŸîmsÕëjÎxWcVÁÏö3/‘æ´*n–Nz“ëÙ5]J– KÌ›˜CÅŸyQ ..€à˜7qÞÄyeÛ»¾žã_e§P]°tÈR¡UìÏ9,pÎò#îaÜø‡{ÖïY¿g½loS+ßJmÈÒ×1u×þMãÒÏ‹j;WÖ’í=óȩ́3ŸÈÊ3yGÁÏ‹zõª¬eênüQãYú:ýM;®Ïëì-žíÅ3?Y3/Ùv‹ÍCê¹uô„Bs²ThzB¡ùç–©™Åࢠ r½×~¯ý^û¦ÁMƒ›¹Û5ÿгTY`úÊfTn0U$bÅ|æns.æŸ,¡|ò­é[Ó·¦l»g릮–Þ'Uç«üA–Šbª“õmÓ¡²íFFFB¦)d’%”;™B¦ùù(Èã¨ô0¯£§qRÝQåÏÖãn[zü̔癗ªV…Uº.ÚZÕ·7à6éE"æPÌgYœyQ ., À ×Ѱ£aGÃdÛ;-ý5¢Ê"¡³à!T!KEÒYðª|Îgó(¹»Â]áîÜžs{Îí)Û9à‡êuŒ¤¢³´Ñi«yß®¢‘§öîÜíï½{ôîQÄŒˆ3ÈÊqä‹GAîv»Šµiï¶´©²Mó>Y*º?tZ–×™üó™ÿ®pW¸K–ÀÌKT­ý€È)×sa0,‰¹0H˜þ9Ÿe|æE1¸ (@^„!a‰ÏŸ%y<宆nk_5Å 6r£AŸ<ü~Ÿ—ô®á–Ã}†‡Düéø]Ì‹€Í­{o ¾xJožõ;µÈÅ®}²QÌdËËççü' BCåG¤S¤S¤SÊý”û)_Z¾[Xù½^dÅQšÏÕê+rüëÏ?ÓÅÈhß¾7^õIðé”"G;ku£Èjßɶûð;áw‚шòFÞÈŸµzØ€¼Ž”oårä½q‰icvy Áƒ[ýóþÓ¥=ßÞ<ÙÀkи»}û´q³zºÍ»ÓÞ‘/Ò¼2†çTV´øú°O»»“ǽr¿¯ ÅTyù,»3/ŠÁòH¤R©T*å ¹Å¸Å¸Å¸Õñ©ãS狯!̯7u¬°iÀõ^+!ΫնÆÇœ ŠÜ^1¶—à-´^俼½ÙϱO´ôËsc…»²íàÀ ³Â§G´ºséÓØÜí/G¾ùr¤ñ ãÆ+™(ö¶ÛÛno» '<œðÅ“ ÷ë´[W7­kDµ@Ãv º°W¸ñÃiG9®Å{¥~¾ð .nð`ÅøêVVrÛLÇlK‹Ç‡ÇÞ>œ»ÝÂÄÂÄÂäÁ‹/¼`L¢ü°­k[×¶nø‡ðár·‡7×ôn½Kºs'Ûg̓â/J™»øÅÏ#_ßh}£õ†\ryÈeÆ$ÊóÌKǧ¶}­Õ“’W,ú¶¦µ|ïöfÐë ›üfŸ¡Ûà}þ¸Í°W³á:Xžüi‡ÇÁVX#œWœœOY«ë67eä«‘÷ƒ”uæ%t7ß8|ãp±Ü[W‰Åãq;Çí·S,-—Ý p0äáNĈ;y|±h·²o'ÃÅŠá³mþó—ÍØÞ=¶®Xú­ö°ñÚ ]Ú{Naòl€Í†‰ægÅŸÅvñUA‘;*Æö~¦®KâQE˹¼ÜÊÛ€²ÚÛbo‹½-dÛ[ 3Ù®»PAƒ6ö 7ÿóÀ-bhîÒ¯âÓ½¢~I5ÌzÁ‹ Ûs·‹°ŸŸÆ$Êq´Ë–~­×Ôø¾Âöo\úAþÔÚ?*òDîÒ¯EÃÊ46.ë;±µ•ÓE£u~ =^^»¾í솪¶[ÏFû{Õ qÉŽ¯'j<霘Ò:k³âä¼Õ°†.yÕå} åmæUéºCË^ßø¹ãÒÝÒWRÏð‘{î,ÿçséw¹ÄO¥…Ñ¿ö ÝêZ,ª;K¨“èæ¶Á®ú„_ìZ6½Ó~‰Xî?y{çÅ‹„)’ÎE˹¼Ü*ÓÌ‹+ƒ)@üýýeÛÍ:Ù¾Ôºômc˹œe"mpzµ×‡÷bKƒÝŒõþh³q‚…ÿ¿+·¨ðÑøu]ÅŸß6º7é“ý§]{ê}.ctþ3àÃeq=Š“sy¹•·/å“£›£›£¸=p{àÅHÍÁ*ç% çkÔQ;§qFOHÛ˜ypêë+1ÓdÜ?Þ»Ùƒ“i÷CVô{ì¹»,f~èÇZ[Mò¸C^ðˆàÁ#™(äö¡»Ÿ2ùÆ÷L÷È0Ï齿å¡-ïŠ-uv[ÌÐZðŸß–š6ö¿]wíM@“zê:Ú™5Þ¨¯5ÓçGjk“¥ËÖ0z£Ÿ­¦-¾ªº•³î&Š“sÃùzïÕÎiVÈÝ.~ ˆŸŒL”癗ΖšãVù¶±%.zÐ?°Ú§Öaž;Š-7]¯Ì4°˜2xçŒõásv'{ ÚZXÔY¡ÿ_ÃöIñawšþ;ÛdXǾ—×hœizEÑr./·Ê:ó*ŸÅ` Àß¾|?ä1Uîb|Díߎ/´íµ»)Æ©±Í²ÇIn©Ö6;›âXÙq¥¤µÊ aúôk×êÖ•ýï³gO%—_ûç­ïj¿T ë`äåVÞ¾”ÏÇV[}l%Û>D³¦§É@ACPâ ’³“ߞ׳ëZxÈà?«ÎûøÅ”¸¢¥Õ m•Õ*ç%K¾m„¡ß]»›b,þ\}|«§:3» Î ½ò^%öJ›g‡cÄ»ê?t48¥8™s+æ9w»¸/ÄýÂø„r 6óhÙÿ–ÅÌ[ê®ÖT—m¿Þëz¯ë½™(äv+CÓ>y¥)üq”mú¸Ü-íÌšlÔ×’WúÍí¼ÝÚï¬??`âéæÐmŸöuî|ã†âdÞaŒíœ¼Îðò>€ò0óÒü¾ŠŽÅiÉ_*9*«¿m„™û{ÇöW¬wÂèö«öõÔ rKgIeµIêã?ÿÏa²ÐIÑ2/æVÌsyžy)w1˜0|!Ù#Ù#ÙC¶Ý|S ÞŠaŒë«Oé–âÏ5Z¶ÉЩ˜é7·é3¬+ç|^Oû`ÏŒ Š–yy–·_eÒ1¤cHGÙö:úZ®ŠgÃn†–Úצ¤Y7ë%ûß²˜yýÑêÙªš²íA‚`d¢<7ÚõGkÏÉëè(MU–T£ÑwH¿.GŒÇ OïYÕähÁoæüÑ6¡kÖ¿âÏUÝkkx*ZæëdXÄæu†—÷‰”‡™—ΟµgØ)DõÊÂi°ÞŒçÖÿ9hX=tÔ¬kd¯ú••°õîìK“ÄŸÅë†3ÿòò\>g^ÊW ¦ _ˆŸ?%~Šl{¥èê}!„Ƒu2 ?OÚ[WÚ z±“üÖ•6¨^ø¼ž ‘C3£W®lÝú…ÝàT^žåí@™¼|ø:P¶½ò­tõ§ä§ä¨<èIvk.Q¹-9‘»=´chÇP 0(dG»æõpÉ •*-$ßøÙÞ½Z9üed¿~ëLýš·W¥NÝ]£EÜ­.ÇÚDµvÊjj ?SÑ2_y‚Ñå¼Îðò>€ò0óÒú«ª¾•¦âÇŸný}„Fêú°¾/Î$¾~äqm]DìþÅ+#"/þÓfƒ“¸L»îF?µUÌøåå™™—rƒ)ÀýýýdÛuO˜LR{§f4L½Ÿc þ¬=ÑÈM­Q®Zñ;µž¹Ö£¯hù——gyûP&‘þ‘þ‘þ²í:.jöª«ÈOI«;C?±Â¯äø¿#²·¢ùßü9§QÎMéÐßúoj¦qÞùf‡„9ÚC´LUN‹4ÈlQAn]št\*¼Êë /ï(3/õ³aÆM?þß7ŽšuçÕwÞ–¼_'nMw,6âZôéŸ%3ÔV«GXd¸˜y³R6û{¸äºáÒ'/Ï̼r+»Å`µo•2######†€²B£¿ŽžŠ¹ _ÄeË8'½-ø‚ hÚé.U-‚ è …Ï˳…õ™‹Ò¬s§…ÿ÷©À ”g!êËvÇýŽû÷ â? œQo©’ i$‚¡ðŠl”“ÚZ¯Õ¯ á‚ ænç[,”×#Âp¹ú5A¡KY‰ù¶Ó³…Éß»ÿ½¾ýËÛNÏ*¥\ÑØ ^O2wïO þ¨ÓÉfïþ÷ÄÅ¢@õ_A½¥š±¤‘ ‚ð0wûÎÃÿß?F#Ê••ZúÚ#…_ÊjüRï¬)™æá{„å‚ÚQƒñƇôúÖ»ßÔPAól/Âaf^…$ A_\,7ÞÞx{ãíÝ…îBiU¹ 6}ª¢ºWr\"Ñžhè¦úùªßŒÓ)Z9…¸.9mXÒ?ÙŸo~XÁÓ \õyÊÀùg™°VLJšfuÕ}’mäø¿#BcMY8"^õ‰èñéÔO­ì~ÙºÓýIÿ=™sÛéÙ”ïë-¶ŒÑŠ=½lÕÃíœuÝû?wT´kÿï /iÁø’ä™ê~ÕIŠgƒó{ÿmÓhæªng®×] º÷ç꛹ôǺ5ë:6q— ­µÁɽJr°íêä¹<ë$í$í$-ÕÏ’‘•=DªÏÖim¼AíósSׯ¯È.ÄŸ4âûgž êZšÔSÓ&Ï@8ÿü*Lö‘‡’–þ:{°tyþïˆÈ˜¬¨GD¦kÖúœ³^þuåí6cGÿòèÇÏ®ü·ÚPªû‡ªÏïŸFY™G_~´i¿ÍÍŽ¯'j<鬘¥ßÿ;ÃKor†¾$­Ÿ=({mY‰VrV¥»j¢†“áJ“!úëÞkÕ*9äÅ¥»GôìnñyÖ²¦ýôFä¹<;/9/9/)Íwüf·€>™t2éd»€¢ 666˜’3%gJNîöŒC)I9‚Á·P÷ñ0µˆháùÌt!õŸØÌ¬UBAÆ䵩Õã®dŸú¼K“zjÚÑÂóGé ”ÿÏyf‰ri]¯u½Öõ:séÌ¥3—r·gÞÈ1>Ôj£*ÈRÉùð*­zfkAS„§œPÞôÒë¥×KïË#"~ffkA–+ÔïiŽi1ƒgΫõbÍË¡á ÒÕÿT…µS4|4m;íÅÓ¦Õ­œuïTž²a`=³–q·ôûgø¬éCÙönŽÝ»9N<9ñäÄ“ŒO”·™WÎô´ÄTALéQ5'>ñ÷AД~;ˆ-jÖz5 ã<˜2¥³‘â<øÿͳðå,—ß|äIrOrOr?îuÜë¸×>ý}úûô òªÁ‰ƒ'¶ÞÒzKë-B_¡¯Ð·t¢ýf`‡,‡,‡,† ESíDµÕN? ? ?ånOîýam–©pùÛG¨ç^õwµ¹Â$Av½™sÃ?õ‘í¿Îi†zmØœ›þ©ÄŸõÝ«,PŸ+ÂEÊÿç<û˜E¢ü¹zèê¡«‡d À)G²‚²§éMUo­º‰,•œÞ‰úŸ– ³AèÍù厑`$}yD„ø´L„gÂ"EðMÒûSéY}¬g6zö rhŒwÆ|³AÆ>É>gæ$ÖÚjÿÞæ•^u#£Îº7š(òõ¾²RŽ|ª=M„ëˆÜíM]›º6uuðuðuðex¢¼Í¼2»&XÆÜŽ‚ù­bËú9e}b×'Óf¿pù\œ®10jÚðJ=ÚìïáZ5Ô¶ŸÞpíw¯‚V>žô_Žwæ”Ls¡»0U‘òÿ9ÏWApâ7yâ»Çwï¾qøÆá‡‹Oóô}á”~Ýôë¦_7Û9n縆§ Ož.ýȹ4|ÁpµájÃÕ²í+‡ff(iji«·Ú©³Cü9$"pfÊ®ŒÓ)Z9ïóU†uêýýߥ\û¼çÖcµ§O¿v­n]ÅÉ¿âäøG·Cu‡ê²íÑëÓ43Ÿ’“c+M’MŸÓLúEé·Æ…j\ ?(dG{úìL iïÛœ›Ò¡Šáç[¿¼¹?fd†nóc Ú輿ⷹ†}÷ÅÓ¦=ý|•rÙ*ýþß>®]^gxyŸ@y˜y¥ýô>ñÍ7¾I‘Ú úgs·¤Ö xô¨àkøt%<üÅLñç ¯ÍÓkWR´ü+Bž“Xôõ<àyÀó@ A5‚>—~ó%}CíCíCí=z ôø­J¿" Àð]O]O]OÙöˆAw2>ÍP„­&´z¦ã¡sÈx˜jDö¸ŒóÒ;ëžvjò*1ÿW]wÜ5!6@\^wuåxµÆâz-ÿŠ“g ôÕ¼PóBÍ<Ê/5ÒöŸ’“¸5S5;/@íÚ´H~PÈí‰[SgãòÀ¿µn»'X>ºòKªŠ$A8/´Ü2l–Pk_ÍD—w•Å¢ï—gøðŠyáå}"åaæ•2õ•÷ýE‹6nñ-½ ’”¾!?<þ3ÿ%3Í6ÄXE §ìþ]lÑYPÃÜú„¢m‘bæù[QŽ¢onjìTøbšÔB­…Z‹J +-¬´ðã¼ó>ÎÛcÃÞüœ‘š3%GG:[eµÊyÉ’oáFN’¦)+cæf›çn÷Ÿâ¹:ê^½º7鞮Ի†¯æ”®¯RÓ-_¼¸86©ûã:'U_ˆK¶‹›ha¼gµãw1/NŸ~MPŒ+€s¦ät’ÎŽ]ù&%cxîvq_02QXî´Üi¹S¶=psô›¤u.«¬*WjI–J›øä)陂 û²½ÕÉV'[ñôM” âhßg¿Ï~Ÿý—GÇ»ã陆Bœo÷Eò¾•çnŨ ÃA0Œ×o¯ö¨©Õ0ÕÓ<çWµôÙ´êh·÷…XÛØi}ÏTݬ8™Üü`qÒ:¹ŸC…¡ÂPÆ'ÊÛÌ+ýXTJxw銕kÉ_*9*«¿U„u/Ínà³â¥ÁòãïKgöHß,¬¦ •.´k휬{µNµÆ/ÔO<­T;ëIRh\ÅTû7žµ‹™tyÜ1ç¿´©))âÓG·_ЯRÕ½VPˆ§ÿJÊQÉ™’î•þ¤<ϼ¾¸½sв eA‚ø/__ÜÞy á@ÂøOÑŽ/N1 ËÙÄÙÄÙÄGð|¾hOñqÉj§'TÔ—|ÛÅ[7^Þ¼!¦ýõ[;wÇn~du|‚ö#á¸a‚‹pX.ÂaA"AP® 3„ëBÝ6oGVê]?±s¬~ßúÓ; ú tóg1·‚ ü•×¾`L¢<¨t½ÒõJ×uA]PÏݾ7=ÄãÕ-¶V_!h*‚„\¯kO?œNª,ÛÞ¤n“ºMê’”òFûµ§º&U¶ëZç´Î7‹íeïði§A8#qV‰ªY©b»Ç Ùa# »¶±Óú Uãi2„LAº7ý쟂àôeñàó'PŽg^Yn‰>.T·5ìÿí¦Z“ªŒµ´“>Èì™î¦²T+Gûû÷4•Ôc;^¾æ{é£pYð|÷ùþÂuá˜à/\„ úæËkßµqðë¡'Óf[¹äØÚ®¢þû9·‚ B¿ò6óRî¢onÜòÐÅ·‹o_ÙöÈóê¤9*NœíÆŒ7þ·—u/Í'Õ¾íÔN·“Ž}¥ ªTŽ©"ÅŸëœhWwõÀ훚[¼¶7[é„bæ\^nåí @ù¨$«$«$;Œpá0"w{ú¾œNÒñ 2^fu&K%aw¥àÑò(«×Ú^k{­íäå¼Ñ¾»Òéž¾ñ¼®Ù6m•òå<~ARÕ¬Îéû2¤_”ÄOñ‘‰ò<óJù%dãã(EˆÐÖvõêsçÄÒoå.]Z ñÖ:VmL­ª´»è9Iv©×ÒØ©y£ê «ýú‡l¿søËbÀ³Ý;ÕIœé¶±ñ‹´¥V¿ü"®Aqr./·Ê:óR¾Û;W@šš75oj.Û~úÑóñsêèÔIo¥âDkaÓ,Fûì¡f/G¼˜>ýÚÒºaÂ%A¡`,¿Bš ¬Œk­ú"cºpMPÔ‹ÙÄÜ A[}(«!7‡Ür3P¿h¿¾ëÈäy]W 4l§ÈñÇÅ üÏã42Ú·ïÆ EŽ6¹m¦c¶å“Ç u?}Qt·0±0±0Ñ©3Rg$cå8Ú-–Z,µXþ!üCø±ýÉäÐcŸF$oN’ÝO÷Šv¶jXéÇ´U³Í‚ œ”ê6ø×w=>’,ÞðVKöS€1 f^[Þ8¹Û0¨©à´H⋸ü§LéÜY¼Æ÷sY×û‹Åú ƒS¦t>odÛbM§ó¶‚¢\õ+›[aKA÷EYT~®ô•G"•J¥R)§øB‚ $Xl²Ød±)Ù+Ù+Ù+wçDÓóÇkki Ö1Q±$UE—±/åCNغwú¼JËÝ®;Kw–î¬ð±ácÃÇ ‚`@®PDDD4Ti¨Òð‹;·}·°ò{½Èã“:NkàL–ŠË™“oãzyíËê¹Û—.5\jøKè/¡¿„’%”[jl©±¥†{¼{¼{|îö}»Y×yÝ­—ýj£d©¸ôY;sôSßÿæÝ{d–»ýqÎãœÇ9f f f d ̼n_:ïØªjUÒGªŠ.{jÚÇÔG¸/üþå›y}Qô-À5¾¢/оeêßüq hÈ‹` Ì9{äì<®ý M¾æœ’E’Š‹¼|~Î?¥_”3fff:v:v:v¹Ûÿ›]5É,v[z½¬gd©¸xMyhöö?Ùö½{ôîÑ›ü ¼‘7ò½¦ì:˜×‘‚¯»-q[Ö3ÙÒ¯xæ?Șy‰’=ù¤Øw)[äå³ìμÊçí ‚0ÈÕײ¯eß<®ñ=ï¾Ì\½Xå _²óËz÷ç*yÄüˆ¹Rü™W׿»þÝõoy½}¿`(«««ÏížÛ=·ËöZ2áfÄÂ$›èm™gÉUnbNÄüÈöŠùsK®yFÜqoÄ=‹yó,æÉö{~%ûåF©¿ÔSêG®r;Üïõ¬¡Ûo¿š}/Þþ‡ûî/Ù*Ù*ÙJ®YâÑ!)²½ÛoŸl}ïp¿‹CÉUnR©Dê7ìù¨—e{Å3¹xV'WÀ×ͼB®ëæv#óaüÑ)ä*71'b~ÊÊÌKåˆÊ•#{·ïݾ÷ó¾¦è[ ŸàR©T*•’(8©­ÔVjëÔÕ©«S×Ûl{°-w¯Z‚F˜Äyl¿[µNkü¨cªbUžs•ñwÊ»œ7›^öhÜ=Ë ÃRê›»×v”í(ÛQgΜ•<<<`tù ³³³¶{g÷ÎîlïÔZ .›˜«ñF‹×äêzÏí“Æw»zþ—§Ãe{ÿ<ûçÙ?Ïk9¬å°–ä (ˆ]7vÝØucjש]§v•í=ÓæÏ: v¶:ÕpƒÞrµ ù6•ðêèøî lï}Óû¦÷M-ŸX>±|B®€¢Ì¼$ÕÕ4Ü­5þp?ôDuµVeíÉå9WÙSÒ¢S×<Éømiké¸Ì¬Œ¥Ì¼Ê3®€B'ÌG"ŽDÉã‰Jb™sïw£¾3Éœ“fž3¯|fIÜv1²¥_‘˜C¾€ N,ìñÝã»'cêÏà§íÞ\“úTã]­òœ¥éq¯R¶È+ý:qâ.¸cõQ?yAÇDÿÍOºËöši™i™iÝÞy{çíZ]µºjue…•v6ílÚÙfÛ o6<2-2-2Mv™ úkc¬O7}Sÿ®îür‘”t!CÈùsÈþàHï}&G8Ê.2·ÝÜvsÛM?6ýØôcŒ" $f^š£«|oiPÛ~ºÍÚvåçj`ñª_±ô›¾5êXX3/ˆ¸ŠDœHñ>â}Ä[¶W,Š7@.Ï·QÜ^y¥_1W|Ýô Ó'LŸ0<|xøðpÙÞïo‹ptó¸uøµSv[éf©’qg¢ßÖó“WúýgþŸùæ”~¢ ñh’·LÇÄIÆOºŸ‰Ú§äO%Ïn›­/­ëæ±Fﵓ¼Ò¯x–ÏØŒ äf^bùS¼ryx6°¸âöÊ+ý2ó*ϸŠŸªŸªŸª«¾«¾«¾¼eúÏ^ßÂ|žEZÓ5Úû•iÛõîLNthÉ„› å-³'qOâžÄÙ=²{d3Z€â"&&6Áu‚ë×}÷uÞ×Yvë`ÃÔ G}Û·ïX³É}­êê±J²íÉÂ6á¿eo©¿íëeÿPã­ÜRÓÓ‘OG>YuEÕUW0f€âòÞí½Û{·> |øÈ[fVÐO ªõøµÚc«•èJß)Ƕ°‹‹Í¬èü¯ûëgcžÔ uÿÔWv™ÁçŸ|nýžõ{Ö’¬’¬bÌ¥9óª9oâ™-u}ë<·[¬LÛžìü²Þý9! ×us»ÁÌ òP€bvqûÅí·»Ìp™á2CÞ2Í·º>2Zêà5ÆÆx‘ê÷ê×$feqK³e¶–FÎÚü(fî­Ñ{lâÜå-)þíy‡FtÁJ‚ô±ô±ôñì˜Ù1³c69orÞä,oÉ}#Úõ¯ó ›w55£Qew{ßTN¶L¿áùÜ<Ø"iwZ÷ÐY§³NgÝÝ w7ÜÝ`hhÈ8J‡šŒo2¾Éø”‰)S&Ê.S+ÜÜXËüHÍ%GëEXE›¦i¶,»Û{fFPÛ¸mƒ·Ï­ðÒVÞ2c}ÇúŽõ]b¼Äx‰±¤¡¤¡¤!ãøV3/“6¢ô¨²½çŒáj*ÔZ¨O*‹[šs0ëfæÚ¨§¼wf}¸z±ÊA?f^È`(ù?¡*7—E«ƒª=±Šk)Õq.+[÷Æè†$Å÷ÈÜ)öo­ó_’'N¥J*HéæG›m~4«Ý¬v³ÚÉ[ÐɸJ°þì5 [M®¡iá«£¯yJñ7.k\NiêZõgÞý¼p÷ýĹ_õ¶íѶGÛû#öGìй¤sIçC(i)Ž)Ž)ŽƒÌ™2¿âwÅïŠÜâļ¡#Bͽ'eèdºCm£ê&‰¶âo]¸sT`zÏÉWîMˆ¹œ¸DÞ’^—½.{]c3ÆfŒ $‚„±(Î̫Ɖñ­—æèÍ©7¨é…²²uI‹Ÿï¿Ó1´÷†kî*̼Pp€ Å Ž3ØÅÜÅÜÅüÁ¶Ûl“·dÅiÕkÔíúzŽ•¦6›+¸õ„N‚žBlÆsá¼ôNãјOGÎV_Ü%jxìª×÷2^È[Üv”í(ÛQG"ŽD‰0Þg¼Ïx#(}Wí¯Ú_µïù¼çóžÏó_räà:ÒÊÓgDZ_7K5õÕ^­qGq¶"ítvtN<ßôø8tÂÃë3B{å¿üœÅsÏY<#nFÜŒ8ÉÉÉFP𤋥‹¥‹½¼¼ÏYfïóÒWE­ `æ…¢ %Nj+µ•Ún^°yÁæ#2úÈÍ7;ÜìPW™_oêXa“Ýʾ W[Û¸V…&º^Æ5ÔžWTɳbB³ê¿t/øÓÝûÓžŸÑêÎ¥Oc òÚ[\lqq«ËV—­.V!V!V!ìe@ᤠéBºÿeÿËþ—8`à€‚¿ôçµ;V–¸l´º\ñ€ý#½ ÕQ’Ž’+ÅÚÓ] ›R÷_¹$a¹wÂãz‘’„èÌÙ òÚ_5ÕüUsšÛ4·inZnZnZnìj@Ѥ­H[‘¶bÕŠU+V­X–¾,}YzA^ePYçŽê¸C4̤&´ô2˜Ù`XõaÚƒ‹+ªìm9ƒ¥mƒ&?¼dd\Àϱwl?y'ºß“8xààƒ]Úui×¥ )h šìk@9f^:>µ}ìì+]whÙk¨NZ•µUßgp¨RtqE•98¡ÿÇÊ)¡Á^ùØ*ðÆÉÝ)#_¼_ ;0óBÁQ€o!^ˆâ<0¼ÓðNÃ;Å4iÓ¼°«©hiµCCÛ|S Þ•¢k¨kôÑ=a2IíF=s•*ª{%Çs¢²‡HûdJIʉHîýam–éÇÊ¡™Ç#ÝÉø4#6ìÍÏ©…}_ã[Æ·Œoí<¿óüÎó:  CÁ (¾t—t—t—]·vÝÚuË=Ñ=Ñ=ñëÖóÝâÊQz‘-ÎïÒ®qPo©ÖVãpͱjó´ªmQµ“´f ]Ó5sÆäLŠÿ#ýUv—p›ÔNés,ˆ3H=sÁ$òTüþ$õ¬†9F…}ß~®ý\û¹þ^ó÷š¿×¬6½ÚôjÓÙ§@YñvåÛ•oWþò{Èï!‡÷ÞsxOa× —©]_%®ã‡µ ÙίµY»›Å£*+5þ¦©ê¯™®>Se­ôªT[8›: }jöý‹øiY CDH}³ÛÓ€äÊÿ͹’döuñ/Õ_ª¿TXóa͇5×<¢yDóû(?3/Íï«èXœÖù³ö ;­¿ªê[iªŸ53n¢²RK_{¤ä™ê~ÕIÒúÙƒ²×æLOKLõÉìš`s7í§÷‰oÒS¦¾ò¾Ÿ“~,*%¼;3/” Àð­Y‚EGGǼ‰ó&ΛxÓà¦ÁME ³EB‹„ ×-\·p½§½§½§.„ áì@ ìúÔôSÓOMÿÑýG÷݉'>œøP1ã06`lÀ„Ð ¡BÍÍÍÙw@YááỾÆúëklrÚä´ÉI1ã\×h]£u~Hþ!ù‡ä w*Ü©p‡}0óbæÅGÎ{í÷Ú﵆ ;¶Äg‰ÏŸd¯d¯d¯ÒŒAw–î,ÝY³GÎ9{d_˾–}-«¦VM­šÊÞ”ÛÃG<±+vWì®XŸK>—|.•~ mÜÚ¸µq›¤5Ik’–S[§¶NmµZiµÒjÅÞ”UÚõ´ëi×®\ ¸²6mmÚÚ´«+®®¸º¢ô#é8Òq¤ã°ŠÃ*«Øh{£í¶³wf^̼PQ€2 Æ-Æ-ÆíNĈ;þÎþÎþξ|?ø~ø8ïã¼óвæJ +-¬´ÐÙÄÙÄÙ¤‹oß.¾MÍ›š757^a¼Âx™ʵ,!KÈ   ¾¶ÿÚþkûýºøuñëâ×ï‡_¢¯Þî¶Ým»Û½Íz›õ6szâôÄ鉵†µ†µF› 6lH?Pž}zôéѧGO2žd<ɰ°°>y"òDäýf÷›ÝoVôõ÷Odþ=ü{ø·ÔzPëA5kÕ¬U³– &¨ jä`æÅÌ e`PBA^A^A^YÓ³¦gMW[©¶Rm¥ý,ûYö³È €’“á’á’ár[ë¶Öm-é]é]é]“&LÔQ«£V‡‚ €ô2ëeÖˬ¶l?ØJšHšHš4Kk–Ö,MãˆÆ žÔ €™Ê À $TH( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  J‚0( À $(€’  JâÿsLJVlU%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/timestamp.png000066400000000000000000001223011431412030200253730ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝyx ÷ÿÿôÝEõm_B$ˆ5HˆD챆Úס–R„*ûÒÚj©­(‘¢–RJ…Ò zfOlAÅRj«} Rk¬ÉïW¿×•Ïïôä}H"“Éý6×õºr‘Ì™yÎk^yóÈÌdKXB6JÖ@ A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A AŒWô¤Ã“O:ìÚ´;(Ú3Ú3ÚóÔ³SÏN=£2@ÆÚ3}Ïô=Ó'Æã‰øšš€y,0Æ2Æuãÿy–ô,éÙÙ“gOž=¹f⚉k&íÚ´;o©¶þÙúgg'ÌN˜pààƒ>:úè裣HY\H\H\HdçÈΑCÖ…¬ YWzA饤þ¬ëëë¯EÍÀ<ccȼ€³´#½ô>Ò;¤mHÛ¶y3H‹©-¦¶˜ºcöŽÙ;f'ìMØ›°—ガìZÎk9¯å\·8nq\ñÅgŸñúÏJñºbÄöp\À<ccÀžý˜õFÔQoPd,à,ä‘Ï#ŸG>kê­©·¦^^}xôáч/m¾´ùÒfŽ,®xRñ¤â{íY´gQ`öÀìÙÍyVŠmÛ)¶™CÀ<–y,0Æ2Æ0̉ØâwxÜáq‡0÷0÷0÷ÔLéZ/jPÍíÑäÖÁÃ<Ïÿ0eŸÏ¸§v©þD›úÝõšty鹚C~‹^ìfcó™S|=æŽö°òŠ^Úv÷èì–«XÍüI¯öº}õÔwÐå9—ç\žÃÑ„EÄ'Å'ÅG-‰Zµ¤Ì™2gÊœyµ³£HÏò®^{<â[Îí¾¯âü>ËÆ®ÒbØó²ûœ;;¬oµ-ü–ÅŠ¯Å¿‹ïß/~öÕ^Wl³Ø~±/Ræ±Îó𮲹p±€?zG”X×^¼«ìÃBBË{žé³wµ_¥ÇŸüµöTå âkñïâ{Ä÷‹Ÿe €1Öÿ\îÕ]Ö+á÷m¹ša»w©âµµM«q~;•oÛZc§ñ°cîšâkñïâ{Ä÷‹ŸeŒ€—E s"¶¢ÇI“GîŠÜ¹ëe§kŸëÞ¨\¾¨œË.ÔÜõ|é¾2““’bbš6M«ö•?­{{Aõ—½F—(çz®Àç·mZ‘iE¦I˜•0+a™ÑùRçK/x(ðPà!ç{¾ë&¿Mõß÷9äÒ¬µµB<Úy! `Õª˜˜´jÅ:ÅúÅk½Ä_û <xHìÇ€ylr•ÿlÔ¶èúný.ôôùÔØ^­ÇäÉ'Nøû§U+Ö)Ö/^‹y,€¬3ƶ .7Óm[ø-.øª×ŽôÐàpRRppÓ¦iÕŠuŠõ‹×bŒG€aNÀ–rÛí¶Ûm·N§;îtÚ™ Y—»Í —œ~àãÔ^ž¶A¯ómܨß~køÃtïÁM*>u~*¹¿ðþÂû sÄa~‰^‰^‰^¡á¡á¡áÎôí.EWïãÝuÈW³*T]52faÚÆ½NµUWŒY(¶Al3[.öQì/Ç «Íc‹|ëæ~7·…ù= Nîub™¥´{j{Xæ_IlƒØ汬1Æ–ˆ-t§ÀŠMZ¬÷]ž´3¸MSÿ´{jw·iê/¶Alc,À0'`‹ˆ®]#º†3¯àbÊM¾ÚvÇÖ£3*ôuÔ&lnפÿÚzS÷úD9³/³ÍZ4kQâÔÄ©‰Sé0›¸.q]⺠0ü|X6©üTïv~Å&m\½0À{ÕИYú:j½W ™%¶MlgÊû"öWì;}ÀÚóXIUöî½ñ©×“»Xè¯£¶Û‰…þžbÛÄv2¹ÆXÿH÷.bÚS»gÒ¦à–Mý2 ôuÔn nÙÔOl›ØNÆXY0̉83KLJLJ\rdÉ‘%GRžfµ+ÓÈ×ýë‹mý¦þ|³…¾ŽÚgöúÖ;xX|ååÿã¦7A­‚Z=xð €N3ˆý3öÏØ?ù#cló°Ü&Š{hÅ6;³w¢ôëÍcû,\u²ÒUŽN´b›™Ç0ÿ«”kß¸Æ ŽN´b›cdMÀ0'àL)ñXâ±Äc£ÕÑêh5åIÕŽa ß®~1³„¾ŽÚó…¶­Ÿ×÷~å2.•>'uë×57k߬}³6=EZ.-—þÇŸ,”mÑáI¿ º×—º»GæŠ~“·bûž¤¼¿¢&ô €Ì>m²qÐåRa_úÉ[½xæŠ~“·bûž0`ž1ö‹®µ<*<{’§ß±&™+úMÞŠíûÂ ë †9g2‰C‡& Ž Ž Žq4…ª}Û'¬¨rÓ{WdÃ.™=úMÞ&Þßÿ¤iÎ'?›_éN×B®…\ ¡·àuŠÈ‘#"GÊ=³ÚÜñ{—5ͼ¡¯£VìWÊû.êC?ÈŒóØO¾^Xynæ }µb¿˜ÇÈØ1ÖhÜ!¦æœÌú:jÅ~1ÆÈ €aNÀ™GdRdRäÐûCï½ïðù¾Ÿt¤ÜÔçuöþø©•¢_ûvÇ…}«?OyyÛï¶ßm?:Ò[ÊÉ›o]¡‚…§×Ê7¿ÝvÕzÑoòVì£Ø_þ ³Ïc f/|/_¯áZˆO¼õ¢ßä­ØG±¿Ìc¼ž1Ö¥S2ùî\qíùI_ëE¿É[±bcX0̉8Ó˜ÓfN›9mM•æuY]96éqLtÓ&ÖŽ~“·Ýx^{£šTt©èRÑ%agÂ΄ô¤‡”ŸßSdDùžÞ%êl ›¥}díè7y+öWì;ÏûÈŒóX>Uÿ[¸òørd¿"ÖŽ~“·bž3~c¬ÿ8÷.ò½ }‡5nlíè7y+öWì;c,ë!†9gj„áðY¿óŽØêœuB_û6öñº½uÎ;ªO¯½ö˜ô{ÒïI¿Ó—VâºÄu‰ë’rô[wÐÒ Q½³Nôûž'úMÞnì8s–oYG1ð™{gî¹GïBj„†‡†‡†;êcYáY¿¯öl`Gõ¤_dì<6+<ë÷Õž Ì<@êÇØ¬ð¬ßW{60c,k N+Û÷‡oÿç÷é´õÓÖO[ÿ~üûñïS™WClRKg.¹t¦£iнašOcâ^Gí°ÆÝ¯”k`_·ªË«.¯º<±obßľô1¼¬ó¥Î—:_ÊÑYYmîø½Ëš÷:jE}UOÔ–>ðú籟|½6°ò\â^G­¨óX¯6Æ;ÄÔœCÜë¨õaŒÙ§Þ‹/:¼èàè7að«!6kn¬¹±ÆQG?¸yÍàÚ׉xSn¶G·mÒßQ 7†m ÛFOÃK¸•t+éVà¡ÀC‡ì{TÙžô "âu¦µ²¯¡¨­¨3Ý àõÌc›lt¹T¯3­¨óXα_t­åQá¯3­¨c,€Ì‹8õ’_û›2Â`ç›ÎÀK ,aß­Ç þxbùs„»Î·1ÇV?­=ÁÑ0ñ0þaüÃxúœµ$jIÔG}©îæe;£Gî:ÓŠZ9ª¤¨3ý àõÌc¿ø1¶˜ßmÂ]gZQ+汜c®õû¤É0Â]gZQ+ÆX™pê‰@W„»yFœ2`9}>ú|´£®|¿ ¶¹q7bÝ—mûŒjßÞãº}=—äZ’kI.zþ‡âIœЗ9SæL™3ö½ÈÇÛ<,7±î˶¢nöõu5§ë¤ß<¶ÏÂU'+]%Ö}ÙVÔy,€”ÇX¥\ûÆ5Vë¾l+êÆ 3"N[„Ái…ØD4nÐ8ûŽ»¦Ú”ŸD¹¯Ö^±ã\ƒ¯ ýû=ö£ïÁ‘=‹ö,ڳȾç™T~ªw»ŸU£cB t_ºõY5:&TÔо¶¢æô=€ô˜ÇzLªÚ °ÿäO¬ð¯D ûÒíÇ'VøW5d 0ÆÚþ‘î#\$Ù‚Û5­A ûÒ­-¸]Ó¢†Œ±2àôCœÀ¦pçÈ#wŽ8ê¬OZîžÝD'ÊMMûùÂîÝ˹Ø×vK¥-•¶T¢‘ÀìÙ³Û÷¿b“6®^H”›šVÔð_žñ“=0{`vú@zÌcƒ{o|êõQnjZQCæ±c¬ý8Óþƒ˜Ú=‰rSÓŠ2ÆÈ\€_Âà—El ß?øþÁ÷ì»fhó1g½—ߦ¾½pô×*õGØWس®g]ϺIO“ž&=¥"¹k9¯å¼–Ó¾Ïp)º¢xŸUÍcº⦪õXÕ<¦«¨§}Eýé‡i5-ò­›wþù“ëèá_‚7Um½=üKˆz2c…±…îX‘ôY°oÓ²„¸©j? ömZVÔ“1@fAüú;ƒ8£J:”tȵ¾k}×úöÝñöR©#÷Œ MO·Þ\¨Þ³äÛ“Ùcàú~—‹m³¯ó¥Á—_LgDr‹ãÇ-޳ï-Þ]‡|5«2ñmZµ¢žöuõ§¤Õ<¶›ÛÂüž3càúyöÈæU{%ß3l•¨'óX€1VØ4 ÅzßåÄ·iÕŠz2ÆÈ,€3a°#ÀìJî+¹¯ä¶ï|­4¨êö(cãRû8³ÇÀ;¶-¬]ýoû= +V2¬$½ÿø;é錄‹Ï(>£ø ûÞR'=‹†Ûï׃e–=XFŸDdçÈΑÿåæÏ#‡\šµ–°6]n=rÈ¥Ykík.Ž} 5óØný.ôô"N—A÷_¸ÐÓ‹y,•ÇØð7Z\ðU kÓ£µeŒ`~Àæ—5Ã`à ó"׋\/rÙw©"Á…ç‹Lz³»i pz´¡óÆôÞd¿_±‰±‰±‰ôL„¬ Y²Î¾‡ÔÊ;¿Õvamz´¢¶ö5Ç‚> šyìˆÚg>w€Ó£µe då1öJÁž}øÖ¦G+jË Àü€3—¬g˜›n6ºÙȾ}>´{ƒr¦YÀ‡süX¿ÎgÝ›µÜZêý2FÉF¥"¡…ä3|c+¿ëRfBõOFVˆ¼ã.jTלðá?¬j¿_+O®<¹ò$=¥”^Pz}©·lÅûj›-:­waå„ý*oØhêÇ®ëüÂê{˜Tì†ûóM)¸ªÐƒÂ‹Ê,¯8¿tÁVÙ>ú¨Æ¬Ù“·Ì5g,jk_sq,è“©™ÇN¼{ܵú󄦓\]±sÉ;f·ù¬úµD·Ûÿ4g,jË Àü€3/k‡ÁÀæÀꫬ¶ï:?Ÿøú7ßñf€ E—¯sÊ'@Ù_K&|p|ý† u#ÌÇïU\-³ßæà2Áe‚ËÐ3³²gûŸí¶ÿ_®ËïYÞÕkÙBÓ:a?hã]Çø½ð¹ó¿œ¼ŒÁ›g4g ,êl¿Íâ¸Ð?^vëá]esábæ‰KÇ~¶Oòýª¢K½I.’ó3Ø.ÑsŸUheÎX´¢ÎÌc¬6Æúçr¯î²Ö}ú¤gfé!¾q|ãøÆÿòÁY|˹Ý÷™-.u;ZgØûoü³‰ûòw-£ìŽŸö‹÷ùxLÑÐi¾q“Ь:æY·gðÈO lvç¾/ùÕè>ëïͱfÛ#Qçy&zãøÆñéŸ/; ø£wD‰u¦JóœÈíŸ×ksãè¢'ßÂ*·›m)¶ùïÛËë_jý½ wúmúr¼ê6z^tŸ£w£f €E™ÇYmŒVÂïÛr5Í”NµÕ™Rqð?Èšÿ\>câ;µtÏm{Ü_;TêÃur¬ÝØl·ÏÙFy@i´g@hÉÇæ€E™ÇYmŒ ÛݸK/3D¤ç³ôeý÷ò_Êç–w[±âò÷?13¨K=Gß/¶ä ÿ†åëš?ufŒ`fÀÖ–yÃ`à 3´ïоCûÚw‹{ó´fë™3þøl»?=¢ t“ÿT‹~õ"ÜÌ×ËéÛ X-`$; v@ìû^Q¥Å°/æe7OPê~3à¯VŸ‰m+ÛpW;7gÝä{Tl¾OåÚ†Ù`Qç¹/€Ø±èŸ/;ý($´¼ç3D¤U6oXìù?^éRo’‹äÔv›½U}”û`O‚§Ì‹:3²Ú»µM«q~;Í‘N9Pdzâ?L3«c½G•n8å>kÙÿ§@ñT`ñýŸ6­Ö¯ÌU³À¢ÎŒ±ÌŒ8ëÈ\ap6󜢣»5hÎX}ðÝèšï8ó³;',<éï.~ªÜÚR¿ªh¶ë€;x5Ž)‘þgøœ;;¬¯y‚ÒÂFÙ*•Zÿ³mÉ®ýýÏ ®z[iVãÚœ·¾]sÕ¼ø_Ÿ˜-u¦¿¤•>{WûUzl†ˆÔíi…®·‰­êQaÉÇ]œrͰ¨3ý Èj”oÛZÃp×á•ú–üç)¹Q;;~Xó‚ó?›|ü׸æ²Çl°¨3ý Ùmß¾=œ8K{Òv÷7M sÀ—¢#"ê_qægÏ•ü¥EÀ û½3OܵuóJ.£¿ÁÕ¶Lð[fŠ'æÖÛ¶"nßâäÛV³ÉÜýÛ&š-Ê}µVÔ™þV>ùkí©Ê26ýbôáý~g“oÕç×vªºÉù5ô¼¿tjÅ_’¯Ál°¨3ý ÈjŒ‡s׌0CDZ}›{A—ù©ß£2F‘è‚ÒÿûÏ,°¨3ý Ù=ÝôtÓÓMÀYš™¯~¼{M“}ÎülÂôèJMºÛïW#32ÏÀ5ÿfRÄÿyÛS7fyÞèkÖ€¹ m™á à¹Ô}"“o•ˆ„_çSî}!ù¸€˜ç `—jä{šú=J¾® me¡+€Å=гòÒ¥m—¶]ÚÚw3?Øù+€ÏßÛ6±~#ñSŽÈ‘÷æÿ›>šýÀô̬¼¬Ê¿*ÿªüö½Â<Ï®»|ÙÑ•’o[­ 5vÜ´FìèÀôL–W›ÇšáÀ·‹¨¾<ùV ú퇪G_C¯?—ª˜hæØÑ3€é™,,ÖcÍó હ]ŸiñÏVhîwâtënJ½g¯Öš-vô `z& ‹yû1*ô­Ð·Bߢ2Ö[vŒÝ1vÇØàÁ9‚s8ýŠïÏBÏÆ×¾Þðõ¿Ü$êZ݃„gögÿÖvñý5ñSUs{ºü¿i¨yà"‹ ÝÏgØ×Ÿž™•ýµõ¯­mµïç÷Y6î°y‚ÒäÛæûŸ/ê~_ΙŸòÿa溟ÿòÔóÙ¨Rž{z—ý]@ÞUybò˜g¿D9+ÒjÛ^¼«ìC3D¤É·ªÇwa+8ÿ³m†Tæ´™`Qgæ±@VcÃv7îRÅË i‡sî–¨ ¶*rp[ÿNf{ŽojZQgÆXfæèT¨Œ5ˆàvÚúië§­w>ôßÿúCßä€3̆+®l¸bß-bc×ýTç„9à϶ûÓ#Ú™Ÿí¼àý7JÖ?Õuxóñ%ך'~áµoqàö•÷9èsÐç =3KåãÇ7¶ïñ-çvßgθÔïïgïâïÌOy\mùY÷UÿÜÖiaÅËÕ6˜í `QgÞÔ¤Õ<6àÞ%Ö™-®8+ ¹Ëe§®nrôVõQ%¢+/ÔḚ̂¨3óX «±ÃJø}[®¦"Ò1Ãj´)ÿ—ت“}²•yÏ™ŸzÜïa“}u›—œQ,wÅEÏþÏìÆí*—4[,êÌ ÀÌ€-øÛ?Ó†¾Ég˜«¬>°Ú¾‹ü|âëß|Ç›3Î)`Þm’Oè´ÞŽ~êç†_ú%ÿ©èŸ¾/WËÅ<×þÆïU\-û—ËðË— .CÏÌÊží¶ÿÙ~û¾Q¤gyW¯=æ J½jz<-ôŸÛ—¿kÕŽOذ| £ï¯á=«ÇæBùsîââ)~¨ôÁ6Í{ýs zóì—¨3oêÒjëá]esábfˆH»w_TßóKû-tôý“–ýÑ´úÆ›V(ÕÄùŸÊ¨VÔ™y,ÕÆXÿ\îÕ]Öš!"=|¿óå:kÿßgwùÜònÛ1»ÍgÕ¯¥üSã:ÕÌQáÿüyXÙ`QgÆXfFl Ö}“#Î07Ýlt³‘}wù|h÷åòš3.·¶Ôo…*Н'Tÿdd…H[ƒÅûüoÛûgõÜC\‚•™üû[ô«á`¶›?ÞùãÁ:¡ö•_yråÉ•'é™(½ ô‚Ò ì{H½e+~ØWÛ Ai½m+âö-¶ß²Ë;&öÿÙÇoôôÅûüFM>´æÝŠ›û<ß¼`m7Ÿ’ÿLD t(ö¡[;³=9XÔÖ~ı O¤f;ñîq×ê[28(Ís"·ÿ¿|\Råv³-Å6°jæ—åô/µþ¿^…?,ðu³òý¼=šÌ-VX|û`O‚§Ì‹Ú2²òû|Ç€ª3Ì”þË¥!>]Ë4ZÿÅûG«MánĆֿU×yAÅ_JþŸkj{½ëuÒÃÃlOÿµeŒ`~À™—õBßä€3Ì‹\/r½Èõ/×:œ/2éIÌî¦f €£v.XóB±.žùû§|Tq«Ð­HÁKÑõ¯˜-7¶ ÷¦¹ùvblbl"=!ëBÖ…üË Üjåßj»Íl7‚7svæ×Rþ0—ÜÅzV7²þ“f»öWÔÖ~›Å± O¤f;b£ö™Ï3Ä¥c íé㛿ܤu‹Ìrf[ú÷j3 ¯Á°9`Q[æ±@Vc¯ìÙ§âRqKçž^eKE8ÿv[×ò_»·y<ºßÒ& Í‹Ú2Æ0?àÌÅÚ¡orÀ¬å°–ÃZ³ïLñcås¾6[,þýŸ¿ |Ö¶—G—2FÉF¥Â?ª‘oŽŸ^y·K·).¯è?J¯Õx²Ù¢_ÑÖ^íÓ³h¸}Í,{°ìÁ2ú$";GvŽìlßC¼G¹4k­Ùž›ûÏsÔ&õ0nv±>U¿«ývþGE«¹žÈ?¨Èø¢«‹ŽóRü»”þ¼uÙÔº²ðή’fÛ~ÑŠÚÚ×\ ú$@jæ±Ýú/\èéežÐTlU‡œSj—Ëí¹¶îN—ÐÂ1®‡ó·)X¬ˆ[¾àÒÝ}ÔÂ_¶0âFé)_Œ>¼ß﬙o-jË<ÈÊclø-.øªf»m²¸Ò·ëðJ}K®-û«K‰‚ E䯘¯sÕ¤â‹LúàÏÄ1â{’_=l¶½µeŒ`~Àæ—uBßä€3ØÚzkë­­gß±vº.œåÿŽâRG!îËþ»Úûu´CûÚWÛ«¬WY¯²ôFq!q!q!öýÄu“ߦúï›3@M¿Úÿfl+jk_sq,è“©™ÇVþ³QÛ¢ëÍöÜÜäa°£Oþ¿æ|ú¯¨-óX +±­‚ËÍtÛf¶èÔþ¦ÐŽþל[.ZQ[ÆXæGlNY3ôMŽ8ƒ]É}%÷•Üö¬õ‚UÝ™3FͼíŽm kWÿÛ¾Úa%ÃJ†•¤7â'ýôwñÅgÿ—'ÍÔ ›«}læ8sµ¢žöuõÇ‚. úyìxϺŸ‹9càÌØŠz2c…{[úoÜÄÌajæjE=cdÀæAè›pF;”t(ék}×ú®õí»Ýí¥RÿFî·iÕÖ÷ð»\ì_þrðÒàKƒ/ ¦3"¹Åq‹ãÇýË »ùjVe‚Û4»ùs×!_ͪl_gQú!@ZÍc»¹-ÌïYà6Ínþì¶0¿gAæ±c¬°i@‹õ¾Ë nÓªõdŒYg,B_G€Máûß?øþ} m>æ¬÷r‚ÛÔ·ŽþZ¥þû {Öõ¬ëY7éiÒÓ¤§ôC$w-絜×rÚ÷™.EWï౪yLWâÛTµ«šÇtõ´¯³¨?ý ­æ±E¾uóÎ?r½=üKߦª­w¢‡ QOæ±c¬P"¶Ð+’> ömZ–ø6UígÁ¾MËŠz2ÆÈ,€_?B_g›Â#wŽÜ9â¨S>i¹{v75íç »w/÷/·çÚRiK¥-•èp$0{`öÀìö=ǯؤ«⦦5´¯­¨9} =æ±Á½7>õúƒ75­¨!óX€1Ö~ˆiÿALíž„¸©iE cd.À¯¡ïË"6‘Aã4©6%Ág!Wgì8×à+G'ÿc¿Ç~ýè{pdÏ¢=‹ö,ú—ë'&•ŸêÝ.ÀgÕè˜P¢Ü—n}VŽ 5´¯­¨9} =汓ª6(ì?ùã+ü+å¾tûñ‰þ•D ™ÇŒ±ö〤û—I¶àvMkå¾tk n×´†¨!c,€Ì…8ýú¦°‰œ>}>ÚQ—½_PÛܸî˶}FµoïqݾžKr-ɵ$½ÿCñ¤âIÅËœ)s¦Ìû^äcŒm–›@÷e[Q7ûzŠ:‹šÓõÒoÛg᪓•®è¾l+êÆ<@Êc¬R®}ã+t_¶ucŒ§-Bß´Bl:K ,1°„}÷3øã‰åÏè:߯[ý´öGÃÁÃø‡ñãéopFÔ’¨%QKõ¥º›—íŒI¬ëL+j娒¢Îô7€×3ýâÇØb~·‰uiE­˜Çp~ŒM¸Öï“&ÈuiE­cd^À©G蛀MçÆškn¬qÔ¡n^3¸öuÂݔۄíÑm›ôwTÃaÃ6†ÑÓðn%ÝJºx(ðPà!ûU¶E‡'ý‚wiE­þåY>‡u¦»¼žyl“ƒ.— #Üu¦µb Àù1ö‹®µ<*<#Üu¦µbŒy§ÞöðíáÛà }Ó°I-¹tæÒ™Žºø½ašOc‚^Gí°ÆÝ¯”k`_·ªË«.¯º<±obßľô1¼¬ó¥Î—:_ÊÑYYmîø½Ëšñ:jE}UOÔ–>ðú籟|½6°ò\"^G­¨óX¯6Æ;ÄÔœCÄë¨õaŒÙ§Þ‹/:¼è@è›¶€ÍÚÝ»¾èú¢«×\¯¹^ÿòV³}ËÆÅÜ&Fî?øœ¸7y»±ãÌY¾e gî¹wæ½ ©êðo‘jå›ßn»JÜ›¼5qT1QOú@ÆÎcG„k!>ñĽÉ[Qæ±R?Æ^qíùI_âÞä­¨ c,k N+ɯ&ôM=`S»àyÁó‚§£ÉÐDßþ=ûúŠvo‹•ÕkmqT«•ûVî[¹…ÔKôJôJô 0<`¸}OË·®PÁÂÓël ›¥}Dô+ê jb_+QCQOú@ÆÎc f/|/_¯ñåÈ~Eˆ~EDM˜ÇHýëÒ©@™|wîmè;¬qc¢_QQÆXÖ@ s"Î"Ô5ÂáõsóŽØêœ•£ßØÇëöÖ9ï¨>½öØk`ÒïI¿'ýN_BZ‰ë×%®‹£^WdDùžÞ%êZz!ªwÖŒ~ž‹:8ª’¨!} À<óX>Uÿ[¸ò„¿ß÷û5kF¿bßE˜ÇHÛ1Öœ{ùÑWŸ\lâ‘5£_±ï¢Œ±¬„æDœiÌi3§Íœ6ަGó:„¬®›ô8&ºi“¬ýtÿáyí=ŽjRÑ¥¢KE—„ ;vÒbÿŒý3öÏ”cà¬v5°Øß”£_Q7ú€9ç±"þÌjW‹ýM9úe õc¬ˆ?³ÚÕÀbSŽ~cd^À0'àÌ#2)2)rèý¡÷‡Þw4U ùü£#å¦>¯³÷ÏÀO­ý°oõçyStÛï¶ßm?:Ò›´\Z.-wÔÅ ³Â³Å>:ºá³ jEŸ0ÿ3c¬¸rVx6°ØGG7|fŒ` À0'àL&qhâÐÄ¡Á1Á1Á1ަMµoû„UnzïŠlØÅJ¡oâýýOšæœqò³ù•‚RŽ~¯…\ ¹BoÁë‘#"GDŽ”{fµ¹ã÷.kj½èWìWÊû.êC?ÈŒóØO¾^Xy®õ¢_±_Ìcdìk4îSsŽõ¢_±_Œ±²`˜p¦”x,ñXâ±Ñêhu´šòDjǰ…oW¿˜Ù£ßó…¶­Ÿ×÷~å2.oÆåºÆuëš›µoÖ¾Y›‚Œ’ò_ø e[txÒ/¨îõåŸîŸò{}ù§»{ˆ}IyùK^kÌc›lt¹TØ—¾GòV/žyC_±ýb_˜Ç0ÏûE×Zž=ÉÓïX“ˆÌúŠíûÂ ë †9gf‰I‰I‰KŽ,9²äHÊ“ªveùº}±í¯ßÔŸŸYBßgöúÖ;xX|åÿ1EnÔ*¨UЃ€è0ƒ”Ÿ÷“œ1¶yXîÌýŠmvfïx~€Uç±}®:YéjæŠ~Å63`þ1V)×¾q™+úÛÌ k"†9[DtèÑ5œ™f…SnòÕ¶;¶6m¶Ð7a{t»&ý×Ö›º×'Ê™}™µhÖ¢Y‹§&NMœJ€ÙÄu‰ë×%`xÀð€á)÷ä"“ÊOõnçWlÒÆÕ ¼W ™e¢Ð×{ÕИYbÛÄv¦¼/bžÓ¬=õ˜TµAaÿàÞŸzý1¹Û‰…þž& }»Xèï)¶Ml'óX™kŒõtár ¦ý1µ{&m nÙÔÏD¡ï¦à–Mý͉ídŒ•Ü€-å¶Ûm·ÛnNw:Ýé´3j—»Í —œ~àãÔ^žQ¡oܨß~køÃtïÁM*>Íë´ý…÷Þ_˜#óKôJôJô   w¦op)º¢xï®C¾šU9 êª‘1 3 ô­ºjdÌB± b{œÙr±b9îYm[ä[7ïüó»¹-ÌïYpr¯Ëü+e@èÛëÄ2ÿJbÄö0`1¶Dl¡;VlÐb½ïò¤Ámšúg@è»3¸MS± b{c@ †9[Ñã¤ÇI#wEîŠÜ•÷%}>¬{£rù¢r.»Ps×ó¥ûÊNNÛ¸÷•?­{{Aõ—½F—(çz®Àç·mZ‘iE¦I˜•0+a™ÑùRçK/x(ðPà!ç{¾ë&¿Mõß÷9äÒ¬µµB<Úy!mã^±N±~ñZÎo›Ø±__æ±ÉUþ³QÛ¢ë»õ_¸ÐÓkäSc{µi÷ŠuŠõ‹×b 댱­‚ËÍtÛþF‹ ¾êµ#½48œ¶q¯X§X¿x-ÆXp„æDlq;<îð¸C˜{˜{˜{ÞTh½¨A5·G“[ó<ÿC”}>ãvœZØ¥úmêw×kVÐå¥çjù-zq°ÿ™ÍgNñõ˜;bØÃÊ+z=jÛÝ£³[®b5ó'½ÚëöÔwPßA—ç\žsyGŸŸµ$jIÔ’2gÊœ)sæÕÎŽ"=Ë»zíñˆo9·û¾Šóû,w¸J‹a_ÌËîsrìì°¾Õ¶Lð[+¾ÿ.¾G|¿øÙW{]±ÍbûžpH˜Ç:ÏÃ»ÊæÂÅþèQb]{uò®²? -ïy¦ÏÞÕ~•ò×ÚS•7ˆ¯Å¿‹ïß/~–y,ÆX‡7ŽÎå^Ýeí°~ß–«¶»q—*^[Û´ç·Sù¶ý§5v;æ®!¾ÿ.¾G|¿øYÆXxYÀ0'à,ä‘Ï#ŸG>kê­©·¦^^}xôáч/m¾´ùÒfŽ,®xRñ¤â{íY´gQ`öÀìÙÍyVŠmÛ)¶™CÀ<–y,0Æ2Æ0̉8K;ÒûHï#½CÚ†´ i›Q“ÅS[Lm1uÇì³wÌNØ›°7a/ÇYÙµœ×r^˹8nqÜâ¸â3ŠÏ(>ãõŸ•âuÅ6ˆíḀy,0Æ2Æ€=`˜0þŸgIÏ’ž=yöäÙ“k&®™¸fbÐî ÝA»ÓjšXÿlý³õÏÎN˜0;áÀÁ|tôÑÑGG)<²¸¸¸ÈΑ#;‡¬ Y²®ô‚Ò J/HýY)Ö#Ö)Ö/^‹š€y,0Æ2Æyã=éð¤Ã“»ƒvíŠöŒöŒö<õìÔ³SϨ ±öLß3}Ïtã‰ñÄx"¾¦&` Œ±Œ±dÀ`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`À`¯5Žz#ê¨7ò@–!rR`Èô€À"²\,þ=*{Tö¨ìQÙ¢²Ee3D#Ñxa¼0^ÏŒgÆ3ã©ñÔxj<6#ÁH0‡ÆãñÀ¸gÜ3îw»Æ]ãoãoãoãŽqǸcÜ6n·8#Έ3n7›Æuãºqݸf\3®WŒ+Æã²qÙ¸l\4. Æã‚ñ—ñ—ñ—qÎ8gœ3ÎgŒ3Æiã´qÚ8eœ2N'“ÆIã„qÂ8a7ŽÇcÆ1ã˜qÄ8b1bX#ÖøÝøÝøÝ8d2ŒÆ#ƈ1bŒ}Æ>cŸ±×Økì5ö{Œ=F´mDQF”eè†nè†fh†f(†b(†lȆlØ ›a3~3~3~3"H#ÒØiì4vÛíÆv#ˆ0"ŒmÆ6c›±ÕØjl5~1~1~16›ÍF¸n„???ÆFã'ã'ã'c½±ÞXoühühüh¬5ÖkŒŒŒÕÆjcµ±ÒXi¬4V+ŒÆ÷Æ÷Æ÷Æ2c™±ÌXj,5–aF˜f,1–KŒÅÆbc±±ÈXd,2 …Æc±ÀøÆøÆøÆ˜gÌ3æsŒ9Æc¶1Û˜m|m|m|mÌ4f3Æ c†1͘fL3¾2¾2¾2¦SŒ)Ædc²1Ù˜hL4&___Œ Æc¼1ÞoŒ5Æc1ÆcŒ1ÊeŒ2F#‘Æpc¸1Ü1BŒãsãsãsc¨1Ôj 1†CŒÁÆ`c°ñ©ñ©ñ©1Ðh 4‚`#Øèoô7úýŒ~F?£¯Ñ×èkô1ú}ŒÞFo£·ÑËèeô2z=ŒÆGÆGÆGF7£›ÑÍ2‚Œ £«ÑÕèjt6:NF'£“ÑÑèht4ÚíöF;£ÑÎhc´1Ú­ÖFk£¥ÑÒhi´0Z-Œ÷÷÷fF3£™hF£‰ÑÄhd42 †FC£ÑÀh`F€QϨgÔ3êuŒ:Fm£¶QÛ¨iÔ4j5ŒF £ºQݨnø~†ŸQͨfT3| ÃǨbT1ªÞ†·ámT6*•JF%£’áixžF£‚QÁ(o”7Êe²FY£ŒQÆ(cx†‡QÊ(e”2J%Œ†»án¸ÅâFqÃÕp5\¢FQ£¨áb¸.Fa£°QØ(d2 ŒF#¿‘ßÈoä5òyGŸ­ÏÖgë_ë_ë_ë3õ™úL}º>]Ÿ®OÓ§éÓô©úT}ª>EŸ¢OÑ'é“ôIúD}¢>QÿBÿBÿBŸ OÐ'èãôqú8}¬>V«ÖGë£õQú(}”>B¡Ð‡ëÃõáú0}˜>Lÿ\ÿ\ÿ\¢чèŸéŸéŸéƒõÁú`}>H¤Ôêõú}€Þ_ï¯÷×?Ñ?Ñ?Ñûê}õ¾úÇúÇúÇzo½·Þ[ï©÷Ô{ê=ôz½»Þ]ï®wÓ»éÝô®zW½«ÞEï¢wÑ?Ô?Ô?Ô?Ð?Ð?Ð;êõŽz½ƒÞAo§·ÓÛémõ¶z[½µÞZo­·Ò[é­ôz ½…Þ\o®7×›éÍôfzS½©ÞTÔõ@½±ÞXo¬7Òéôz½^_¯¯××ëéõôzz]½®^W¯­×ÖkëµôZz-½†^C¯¡ûëþº¿î§ûé~º¯î«ûê>ºî£WÕ«êUuoÝ[÷Ö½t/ÝK¯¤WÒ+éõŠzE½‚^A¯ —×Ëëåõ²zY½¬^F/£—Ñ=tÝC/¥—ÒKé%ôz Ý]w×Ýõâzq½¸îª»ê®zQ½¨^TwÑ]t½ˆ^D/¢Ò é…ô‚zA½ ž_ϯç×óéùô|z=žGÏ­çÖsëïéïéïé¹ô\z.=§žSÏ©¿£¿£¿£¿¥¿¥¿¥¿©¿©¿©¿¡¿¡¿¡çÐsè9ôlz6=›–¤%iIÚ í…öB{®=מkOµ§ÚSí‰öD{¢%h Z‚öH{¤=Òh´Ú}í¾v_»«ÝÕîjkkkw´;Úí¶v[»­ÅiqZœvS»©ÝÔ®k×µëÚ5íšvM»¢]Ñ®h—µËÚeí’vI»¤]Ð.h´óÚyí¼vN;§ÓÎjgµ³Úií´vZ;¥ÒNi'µ“ÚIí„vB;¡׎kǵcÚ1í˜vD;¢ÑbµX-Vû]û]û];¤Òi´Ú-F‹Ñb´}Ú>mŸ¶WÛ«íÕvk»µÝZ´­E‹I4US5US4ES4I“4I³i6ͦíÒvi»´H-R‹Ôvh;´Úvm»¶]ûUûUûUÛ¦mÓ¶i¿h¿h¿h[´-Ú-\ ×µMÚ&m“¶QÛ¨mÔ6h´ Úzm½¶^[§­ÓÖikµµÚZm¶F[£­ÖVk«µUÚ*m•¶R[©­Ô¾×¾×¾×–k˵åÚRm©¶TûNûNûN[¢-Ñ–h¡Z¨ª-Òi‹´oµoµoµÚm6_›¯Í׿ió´yÚ\m®6W›­ÍÖfk³´YÚ,m¦6S›©ÍÐfh3´iÚ4mšö•ö•ö•6E›¢MÑ&k“µÉÚDm¢6QûRûRûR› MÐ&hãµñÚxm¬6V«ÑÆhc´QÚ(m”6R©Ô†kõáZˆ¢…hŸkŸkŸkCµ¡ÚPí3í3í3m°6X¬ Òiƒ´Ú@m 6@  ÐúkýµþÚ'Ú'Ú'Z_­¯ÖWûXûXûXë­õÖzk=µžZO­‡ÖCë¡u׺kݵnZ7­›ÖUëªuÕºh]´.Ú‡Ú‡Ú‡ÚÚÚZG­£ÖQë uÐ:hí´vZ;­­ÖVk«µÖZk­µVZ+­•ÖBk¡µÐšk͵æZ3­™ÖLkª5ÕšjM´&Z­±ÖXk¬5Ôj µZ­V_«¯Õ×êiõ´zZ]­®VW«­ÕÖjkµ´ZZ-­†VC«¡ùkþš¿æ§ùi~𝿫ùj>šæ£UÕªjU5oÍ[óÖ¼4/ÍK«¤UÒ*iµŠZE­‚VA« •×Êkåµ²ZY­¬VF+£•Ñ<4ÍC+¥•ÒJi%´Z Í]s×ܵâZq­¸æª¹j®ZQ­¨VTsÑ\4­°VX+¬Ò i…´Z­€–_˯å×òjyµ¼Z-–Gû¯ö_í¿Ú{Ú{Ú{Ú»Ú»Ú»ZN-§–S{[{[{[{K{K{Kûöí?ÚÚÚZv-»–]˦eÓ²©‰j¢š¨¾P_¨/Ôgê3õ™úT}ª>U«ÕÇj‚š &¨Õ‡êCõú@} ÞSï©÷Ô»ê]õ®¯Æ«ñêõŽzG½¥ÞRo©qjœ§ÞPo¨7ÔëêuõºzU½ª^U¯¨WÔ+ê%õ’zI½¨^T/ªçÕóêyõ/õ/õ/õ¬zV=«žQϨgÔSê)õ”ú§ú§ú§zB=¡žPÿPÿPÿP©ÇÔcêQõ¨zTUcÕXõ°zX=¬R©‡ÔƒêAõ £Æ¨1ê~u¿º_Ý«îU÷ª{Ô=ê5ZV£Õ(5JRuUWu1¨Šª¨Š*«²*«6Õ¦ÚÔßÔßÔßÔH5RTwª;Õêvu»º]P#Ôu›ºMݦnU·ª[Õ-êu‹ºYݬnV7©›ÔMêÏêÏêÏêuƒºAýIýIýI]§®Sש?ª?ª?ªkÔ5êõõõu•ºJ]¥®TWª+ÕïÕïÕïÕåêru¹ºT]ª.U¿S¿S¿S—¨KÔ%j¨ª†ª‹ÔEê"õ[õ[õ[uº@] ÎWç«óÕyê5ŸšGÍ£æQs«¹ÕÜê{ê{ê{j.5—šKÍ©æTsªï¨ï¨ï¨o©o©o©oªoªoªo¨o¨o¨9Ôj5›šMͦ$)IJ’òBy¡¼Pž+Ï•çÊSå©òTy¢P>P>P:)”NJ¥ƒÒAi§´SÚ)m•¶J[¥µÒZi­´RZ)­”J ¥…Ò\i®4Wš)Í”fJS¥©ÒTi¢4Qš(•ÆJc¥¡ÒPi¨4P( ”%@ Pê)õ”zJ¥ŽRG©­ÔVj+5•šJM¥†RC©¡TWª+Õ?ÅOñSª)Õ”jŠâ£ø(U”*JÅ[ñV¼•ÊJe¥²RI©¤TR<OÅS)¯”WÊ+å”rJ9¥ŒRF)£”VJ+¥•RJ)¥”RR)©”TÜwÅ]qSÜ7ÅUqU\•bJ1¥˜â¢¸(.J¥ˆRD)¤R )•‚JA%¿’_ɯäSò)ù”/Ÿ“ÏÉçä³òYù¬|Z>-Ÿ–OɧäSòIù¤|R>!ŸOÈÇåãòqù˜|L>&‘ÈGäX9VŽ•———ɇäCòù€|@Ž‘cäyŸ¼OÞ'ï•÷Ê{åÝòny·-GËÑâÃ?ñv_ü’—I–dIþMþMþMÞ%ï’wÉ;åòNy‡¼CÞ!GÈr„ü«ü«ü«¼UÞ*o•‘‘‘7Ë›åÍr¸.‡Ë?Ë?Ë?ËåòFù'ù'ù'y½¼^^/ÿ(ÿ(ÿ(¯•×ÊkåäääUò*y•¼R^)¯”¿—¿—¿——ËËååòRy©¼TþNþNþN^"/‘—È¡r¨*/’É‹äoåoåoåòy<_ž/Ï—çÉóäyò\y®•>•>•J¥R°,Ký¥þR©ŸÔOê'õ•úJ}¥>R©Ô[ê-õ–zI½¤^R©‡ÔCúHúHúHê&u“ºI]¥®RW©‹ÔEê"}(}(}(} } } u”:J¥R©ƒÔNj'µ“ÚJm¥¶Rk©µÔZj%µ’ZI-¤R é}é}é}©™ÔLj&JR ÔDj"5‘I¤FRC©¡ÔPª/Õ—êKR€ Õ•êJu¥:R©ŽTKª%Õ’jJ5¥š’¿ä/ùK~’Ÿä'ùJ¾’¯ä#ùH>RU©ªTUò–¼%oÉKò’¼¤JR%©’TQª(U”*H¤ Ry©¼T^*+••ÊJ¥¥ÒRiÉCò<¤’RI©¤TB*!•Ü$7ÉM*.—ŠKŤbR1©¨TT**‘ŠHE¤ÂRa©°TP*(”òKù¥üR>)Ÿ”OÊ#å‘òH¹¥ÜRné=é=é=)—”KÊ%å”rJ9¥w¤w¤w¤·¤·¤·¤7¥7¥7¥7¤7¤7¤R)‡”MÊ&e³%Úm‰¶¶¶¶g¶g¶g¶§¶§¶§¶Ç¶Ç¶Ç¶[‚-ÁöÐöÐöÐöÀöÀöÀvÏvÏvÏv×v×v×o‹·ÅÛnÛnÛnÛnÙnÙnÙnÚnÚnÚnØnØnخٮٮٮڮڮÚ.Û.Û.Û.Ù.Ù.Ù.Ø.Ø.ØÎÛÎÛÎÛÎÙÎÙÎÙÎØÎØÎØNÛNÛNÛþ´ýiûÓvÒvÒvÒö‡íÛ¶ã¶ã¶ã¶£¶£¶£¶#¶#¶#¶Ã¶Ã¶Ã¶ßm¿Û~·´´´ÅØbl1¶ý¶ý¶ý¶½¶½¶½¶=¶=¶=¶h[´-Úe‹²E‰íÅÇubÚNüZwÒƒòP`HÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL d9ySD}@æEL d9ÀÀª€ €€,‡X00`jM´”–W['08 VEL ˜Zz„µÀà,X00`jé}õ[™ÒB͑΀U¦FôpœGL ˜ÑÀYp00`jD_gÀyÀÀ€©}œç¦fþèkï¸_}ÿá‡sÎ1ÄeˆË—úÅë¯_¼ŒQÆ(c -Z$´j«ænëÚÖµ­ëê“«O®>ùpíõ×:³%×Ç\s}LèÜй¡s[×j]«u­ªIU“ª&Xl`±EÇStL¥®•ºVêÚux×á]‡/k´¬Ñ²Fί?5^T~QùEeíŠvE»r0ä`ÈÁÀ­[·zÕñªãU§ð…,ü£[]·ºnuE>ªùQÍj~×û»Þßõ¾u?ê~Ôë9š Ó¦'L/^:¼ôpy¸<\n|¸ñáÆ‡+¨8 â× × × ‚Q£ F•>RúHé#~ºŸî§÷z·×»½Þcþù7.»xìâ±Ì~Ä^޽{Yô%±wuºÔéR§‹¨ƒèK…" EŠ(u·ÔÝRwEOë¤vR;©ãÇŽT (”Ïë>¯û¼.g\ÚžqŽ*rDÏœj›j›jkѯE¿ý’Ÿ}âÈŠÞ>zÒèI£'¬z°êÁªü2#``Àò¦©Ô¼VZmyòï‰ÏŸ'>OÇß;þÞñ÷—Ý—ò‹Ë/.¿ØÑ¶%º%º%º-8µàÔ‚S"{Ùõ{\ð¸àq!ý¢ÄMÕ6UÛTÍs´çhÏѯv4ݽܽܽÄ×WÖ]Ywe]Ún჈"¾,òe‘/‹”p/á^Â=5}/_ö|Ùóeµõ:Ï‚ÿ#wRî¤Ü"önx§á†wÒjDL.¾~ü$øIpúYçŒsþ¸‹?žè·²ßÊ~+óÝËw/ß½×Ô£d(``À¬Ÿn}ºõéÖUܪ¸UqK͉« “¯ùñèÇ£n÷¼ÝóvÏS_±ä±eêæßwÿ¾û÷]qUeÚYq nZmçáû‡ï¾/®}Ì›\f¸Ìp™áüÖ¾þøîÅ»ï^ì2¥Ë”.Sò¦3qÍwêgœ3ÇýT÷SÝOuW¨§~k“GÝü¶̘0ëÀ"Z«v¾ÚùjçÓj¿|c}c}cÅ×t^ÐyAÚÖ­T¶RÙJeKMÌsÛû¶÷mï€J•*¥w 64lhØÐWÛNq‹ãä×§q‹ÝÔ÷Ì´= ÄuϵFÖYkdÞרÕû­Þoõ~z\ÿšuθ”×ùw¶¿³ý-õø¿„Ö÷òÝËwO\ÓÏï,ÀÌ€ €SèYôß—” G?•òk½žøÃÕ®þpuòÉ)ÿ¥ü—F}3ê›Qß_|ýñõ?ZühñÑÝGwÝ=¯ð¼Âó ;sSYGW¬ŠhmûÒíK·/A¬ˆ‚ô?ô?ô?}0èƒA8ó,^¾xùâå/[ ñ”ßäWy:Ò.W»\ír­ÿbýë¿8ïü½ó÷ĵ•ⶽꨠþ”SL9<st ¥Ø_ç·óiÐÓ §AΟ;möm³o7ôÜÐsCÏ#Ç?r\ÔóÞÑ{GïGP„aâÉ©)¯­^ízµëÕN¹ª¯ó,útèÓ¡O¹YñôyÓçMŸ·gÖžY{f%?^·êݪw«žè½?7ü¹áÏ Å5ßö7Á¶'¾ÿÕÆ θ”×&žÄìè¼û5ò×È_#¯†^ ½*žx}¶ÊÙ*g«¬(´¢ÐŠBµû×î_»ÊëÏÀæj`ÀÌ€ €SKgR¾žØþPÉGò‘|R^›ˆÙ^öÊ<e%ßGë_³kÍ®5»R^[ò'§:_‡oÞþæíoÞNù9¾;fc¶óÕqšóO™uf;×ÍY7gÝg®q|Ù^áÌ‘ŠÚµ3jgÆöXܦ|Š›B‹€0=ždœ<¬åŒ{Ù3Îùíø÷e¾/ó}gÖü¼îóºÏë:³æ6ÛTlS‘0'``ÀԬϿ1ÿÆüί¿÷­Þ·zßrfÍC\†¸ qyÙmn]«u­Öµ­³Âô Ó+Lw~mWÖ]Ywe]òÛ?KUÜrùZî¤ÜI¹S®Ã¤›“nNºéÌú])̘8c⌉¯ØYs'åNÊ<³7>p|àøÀ´T_v3eÙCöp´6ñÔØûQ÷£î§ê*ϧœZp*åkjÓãüÍ gÜë¹MúØ>cûŒí“òúkû[ÛßÚò{ 0``ÀÔ2{\~qùÅå‹+)_§¸r1å5»Õu«ëV7®U\«¸V/»åâ6°)_=éüÚ¦Ú¦Ú¦Ú­MÜZ6õW > ~ü$ØÑ«”p/á^ÂÝ™W©ÔµR×J]­ç°?ÂþKÍÖ.ùrÉ—K¾t´þnvû°Û‡‡Î :7åk[S¼þôç ?9z•G -p4=Î߬pÆ9…njŽ ¸©{Ê7KO~‹r~[æAL ˜Zf€ç–[vnÙ—]ó¹’çJž+™òš'Ÿž|zòéWÛæSÝOu?Õ=õuxÖòYËg-ËþZöײ¿Ú¯Á'Þ'Þ'^ÄHiÕ¶¼¹åÍ-o:Úfñ¤Þ”×ü ¦öÄsˆS³…åý+ï_ÿ¬mâ“ÿÿ"nÆ›±ðˆðá#ÂÅÏ ýÿ/‡sÎq8GDzN\·篵Ï8g* ˆgi§þ8Úß¶Ý>º·jç·`ÀÀ€©eö8ù•…ίóiÐÓ §A)¯yûÒíK·/}µmNùjZç×™òóSÅí”Óöê@±åÅXl £Þ¦üŠÉ¯¶'žþ›΂ôöhñ£Å¿þó×Úgœ3ðõõM«ã˜è–è–èVnm¹µåÖ:zň "6ðÛ 0``ÀÔ2{|áÒ…K.¥ÇvŠ+M3¶¶ß¼ýÍÛß¼íh û?ÚÿÑþÒ#¤l>¢ùˆæ#ì_±×³^Ïz=KùÞix§á”oók¶`53Àâé°¯ÿüµöçÌz&¾3ñ‰ï¤mß9r0ä £WüjÓW›¾ÚÄ ó &L-³Àâú¹ôØÎÔ¬9­êÐux×á]‡§ßí”éáÙó‡§ý+n ܸ5åŸýúã¯?þúã¼N‹98rðË>SÖügAz·WQ{\ð¸àqáõŸ¿Ö>ãœYOòÛ¤§Õ‘ýqÙË~\æè?øåƒ_>ø…0``ÀÔ2{l¶}OÛõ×î_»íþyMClOÊÛ|÷âÝ‹w/¾ìšÅóqÅ׳Ïn<»±±ÇØcì7:ÎŒgÁËz^÷yÝçuÅU°¶¶¶ßõþ®÷w½Å…[vnÙ¹eç”o¯mÎó7sqάGæú˜ëc½¢øm˜00`jÀfޣР,6°Ø@óÀ¥î–º[ê®óHkåËž/{¾ìiµ%~ºŸî§‹¯Å5Çæì "D<ˆÏp-™§dž’yÒª.3\f¸Ì Nõ§¼ž§AOƒž¥í8,®twôŠÅ[oY¼%¿­ó &LØÌqT¡ˆB…"Ì‹íyµj_|ýñõb=¾±¾±¾±iKg+•­T6³Ežêõú ÜÚrkË­MÍÞStLÑ1õj׫]¯v¿•ýVö[^:¼txé‡k®}¸–8=Öÿú`±NG¯X0ª`TÁ(~[æAL ˜°™ã¨2F£Œáh ¯çù¸éÝ÷¾yüÍão·®ÕºVëZ"ì|ý·>NÛµ‰›<;õv…é¦W˜Þó‡gϧœZpJò‘|$Ÿ‹Ç.»x,å-!Nõ¿þ[@ߪw«Þ­zŽ^±ô‘ÒGJá·`ÀÀ€©›9ŽJ~£c{.]¸tá’µ{c×á]‡wî|0œüšé×ßÄuœå—_\Þáí|óÝËw/ß½^ïöz·×»ÇvÛql‡ÙÎà”×sªû©î§º§mÏO¶Nù†çü¶̃˜05`3ÇQ-;·ìܲ³£5¬z°êÁªY¡—&LO˜ž0]ìuÕ¤ªIUÿGmG}3ê›Qß8_ç´ê kv­ÙµfWÊÑoäàÈÁ‘ƒÍyrÆ9¿ž-¶<Úò(m{ø¦j›ªmªæè›h>¢ù~[æAL ˜°™ã¨ Õ'TŸPýuQæ÷$øIð“à”kë¿Æÿš×w8×á\‡sŽÖ3íûißOû>«¿™ëŒsf=ß™øÎÄwÒj›…±}ÆöÛÇÑ+&ÿ_~gf@L ˜°™ã¨­'¶žØzÂÑ‚> ú$è“´….o¿¼ýòöZ#ÿ}Ñ®hW´+Ž~VÒ3&þû"nwœVÛÓ&¦MLG•q r r zý=Á7Ö7Ö7ÖÑzç8œãpŽ´:^çï¿wþpz¬?åõTßV}[õmivÞåNÊ”»r‹Ê-*·pôŠá¥ÃK‡—&̃˜05`3ÇQ·½o{ßö.U0ª`”ýò_Ê)ÿ¥´…]sœ/{¾ìù²‹íqô³ÃåáòpÙáu“O&>™ø$­¶öÞÑ{Gï5[\$´Hh‘PGëyñ âADZ©”oLœ~pÚÞ€]ò‘|$G¯"Îñëc®¹>†0``ÀÔ€ÍG}|ö㳟u´ž“L09õÛüw¶¿³ýÍÝËÝËÝËþUšhM´&ZÊkøæñ7¿yìh;ߟúþÔ÷§¦Umw·û»Ýߥ| èפJe+•­T6Gë9rüÈñ#ÇS¿ï7»Ýìv³[¥®•ºVêJœëw&nëÚÖµ­kj¶<Ñ-Ñ-Ñ­N—:]êtqô*]¦t™Òe ¿§³!&L-åCDi»ÎŒ]ÛëYsÚ®︽ãöŽKym«®¯º¾êú«mç³–ÏZ>kÙºVëZ­k9ZòëM­ç@ýõÔOy;S¾‰´ó’ÇÞö×\cp×Ôm^·yÝæŽÖ3«ã¬Ž³:¦¦w‰+°EïLHi¶óÂJ°ð]ïïz×ûÕ¶v\§qÆuJyý‘ƒ#GæÚ_Àl€ €SK9~צí:3vm¯gÍé±þÞ·zßê}ËÑÚòÝËw/ß?O„OufñyâóÄçéõn¯w{½ëhÍ5ÕXTcÑóºÏë>¯û?V—;)wRnÏÑž£=G;Z[ùÅå—_üjxô4èiÐèI£'ž”rm£Šþ)ú'ç_%­Î‚/‹|YäË"ŽÖ#nåmì1ö{^vßwõØÕcWŠ*¨8ÀùxRÜ:˜3.ýàG -ptå[+ßZù–3klñE¹/Ê}Q.å5‹?Èà7`NÀÀ€©9z¾¬0"|Døˆpqsà'ÁO‚Ÿ_YweÝ•u)¯“8=ÖÇýŽûwgB)qä°¡aCÆþöGØa÷£îGݺUïV½[õöÌÚ3kϬ9~süæø•p/á^Â=åpë÷ü¿çÿ=¿óÛ¼2aeÂÊ„”·P8³ÀÂɱ'Çž›”»—»—»×–G[my”š-|´øÑâG‹_OôÛIí¤vRï^¼{ñîÅW«mÚž/*¿¨ü¢rÏ¢=‹ö,š¶{*®í>¾þøúãëÅ¿ll·±ÝÆvίᗫ¿\ýå*g\ê×óÕ¦¯6}µ)­ŽlÑ1EÇãÌÑ`ÀÀ€©%LO˜ž08sÀöÇNH©¹î°Ï¡>‡ú77N³«s'åNÊ-ÖV¹Eå•[¤U`V¿xýâõ‹‹k%“WÛ²¬Ñ²Fˉ'1ÿŸWÏ”;)w»çíž·{Nü:`AÜÄ»j«æ~µãÛá\‡sΉۀsÕ/Y™€xþ¨˜½¿?õý©ïO­8 â€Š ÿXøÇÂ?Šè®éMhúC¯w{½Ûë]*f6âé¹âöUú*}•€J•*•_\~qùÅâ·â‰¿U“ª&UMêÞ¬{³îÍ/_¼|ñò«¡WC¯†¦{ø”,M~å®ÏJÝ-u·Ô]±¢×•1Êe qÍ«èuß¼ýÍÛß¼}b扙'f¦mp˜ÞgÁƒˆ"’?¥Ø'Þ'Þ'^±×âH‰£öYùÏÊV>rpäàÈÁâ9²)ïiòïÑx©l¥²•ÊV2OÉ<%ón ܸõÓ¦Ÿ6ý´©¸vœó%e/$'ï9ŸlùdË'[j¬5²ÖH <.Š(Q("yÿ™r`Ê)Äó¹ }€Ìˆ˜È”Òãú<˜á8šó˜šs;Ó{K^çµ°œ Õ9€õ€L#³üÙ€ŒBL 2 `)#&™0€”€Lƒ@Ê€ €@¦A eÀÀ Ó 2``iH00È4€¤Œ˜dÀRFL 2‰ORZ¨``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚˜€E°``AL À"€ €X00‹ &`ÀÀ,‚øF´ÓËî Zödв7ƒ–}´ìíKL-2h9˜AË¡ Z~Ï åp-±´É åh-Ç^ûr<ƒ–?2h9‘AËÉ ZþÌ åT-§3h9“AËÙ ZÎeÐòW-ç_ûr!ƒ–‹´\Ê år-W2h¹šA˵ Z®gÐr#ƒ–›´ÄeÐr+ƒ–Û¯}¹“AK|-gÐr7ƒ–{´ÜÏ åA-3hy”AKB-3hy’AËÓ Zž½öåy-/2hIÌ %)c–¨l´dÏ %G-o¤×B –E aÙXàÈ:,ǵk×ÖˆJ·%:ƒžIÌÓˆy±ùŸFœužCœuž@œuž=|,ƒ–¬óìá¬óÔá¬ó¼á¬ó¤až1l½§ gÔ3†³ÎÓ…y®0OæYÂãõŸ•âuÅ6ˆíḀy,0Æ2Æ€=û13ê¨7¢Þ 2ÈXÀYÈ#ŸG>|ÖÔ[SoM½¼&6úðèã_Ú|ió¥Í5X\ñ¤âIÅ÷,Ú³hÏ¢ÀìÙ³›ó¬Û&¶Sl3‡€y,óX`ŒeŒ`˜°Å=îð¸Ããaîaîaî©™Òµ^Tî‰Û£É­kçyþ‡„f¥}Æí8ÕfVõ'ÚÔekVÐåßÕò[t»ìþg66o~Ö×cîˆú¥*¯èõÈ»ªGg·\¯äOzµ×í;¨ï ¾ƒ.Ϲ<çòŽ&,">)>)>jIÔ’¨%eΔ9SæÌ«Ez–wõÚãßrn÷}ç÷Y6îp•þ˜—ÝçäØÙa}«m™à·,V|-þ]|ø~ñ³¯öºb›Åö‹}á0už.÷ê.k‡•ðû¶\ͰݻTñÚÚ¦Õ8¿Ê·í?­±ÓxØ1wÍñµøwñ=âûÅÏ2ÀËg`À0'`+zœô8éqä®È]‘»^vºöù0¿ŽåòEåìX¨æ®çK” œœ”Ü´iZµ¬ Ê^÷ö‚ê ¦{.Q®Px1ÎoÛ´"ÓŠL+’0+aVÂ,22£ó¥Î—:_*ðPà¡ÀCÎ÷|×M~›ê¿ï=rÈ¥Ykk….x´óB@ÀªU11iÕŠuŠõ‹×z‰¿ö=x(ðØ/Ž/óØäZ—›é¶-ü|ÕkGz hp8mß]ŠuŠõ‹×b €Ï ø¬^?`˜°¥Üv»ívÛ­ÓéN§;vfBÖån%¿’Ó|ü¡OíåiûVÜù6nT暴?L÷®ûiŧÎO%÷Þ_xaŽ8Ì/Ñ+Ñ+Ñ+4<4<4Ü™¾]À¥èŠâ}¼»ùjV倪«FÆ,LÛ·pNµUWŒY(¶Al3[.öQì/Ç «ÍcKĺS`Ŧ-Öû.OÚܦ©¼ÇÜܦ©¿Ø±=ÌcðYŸ@z#†9[DtèÑ5œ™x…WÏSnòÕ¶=O6Q¡¯£6a{¿ŽMú¯­×l¹O”3û2kѬE³%NMœš8•>³‰ë×%®KÀð€áÃÿÇ š&•ŸêÝίؤ«x¯3+ÞÈ9j½W ™%¶MlgÊû"öWì;}ÀÚóXÿH÷.bÚS»gÒ¦à–MýLôsSp˦~bÛÄv2Àg|VéæDœ™%&%&%.9²äÈ’#)O³Ú•)Ûýë‹m{t«?ßl¡¯£öÙ€þÛëÎ\ß½òòÿqc± VA­‚<x@§€ÄþûgìŸÎüƒ1¶yXn½…s¢ÛìÌÞ‰:Ь7Uʵo\cEfyw)Z±ÍÌcðYŸ@Ú"†9gJ‰Ç%­ŽVG«)Oªv kóIõ‹™ëm¹}{¾ÐGÓëçõ½ï6Ø¥²ÃgŸ¬q]ãºæf훵oÖ¦‡ £HË¥åÒÿø“…²-:<éT÷úòOw÷È\oç’·bûž¤¼¿¢&ô €Ì>ý¢k- Ïžäéw¬IDæ}w)¶_ì óX|VÀgzÀ0'àL&qhâÐÄ¡Á1Á1Á1ަPµo—|«¨rÓ»wó†]2{ô›¼M¼üfÓœ3NÖ{·Òÿ˜D^ ¹r-„Þ‚×)"GDŽˆ)÷ÌjsÇï]Ö4ó¾‘sÔŠýJyßE}è'™qk4îSsŽ•Þ]ŠVìóX|VÀgÀ0'àÌ#2)2)rèý¡÷‡Þwø|ßÏ«ç/7õy9?µÞ›óäíŽmæWžò$ò¶ßm¿Û~t¤·”ÿ’7ߺB O¯•o~»íªõÞÎ%oÅ>Šýå/|2û<Ö¥S2ùî\qíùI_k¿»û(ö—y,>+à³xYÀ0'àLcN›9mæ´q4Uš×¡þðʱIƒû5mbí7çÉۃ½ÇQM*ºTt©è’°3agÂNúÒCÊÏï)2¢|Oïu6…ÍÒ>²öÛ¹ä­Ø_±ï<ï 3Îcýǹ÷p‘ïmè;¬qã¬óîRì¯Øwæ±ø¬€Ï ÀyÀ0'àL BP#>ëwþÃC¼‚³ÎÛrû6öq—À:çÕ§×À^{ Lú=é÷¤ßéKH+q]âºÄuIùí\ÝAK/DõÎ:oçþÏS-½Õ;å·v¢†ô%óÌcEüùè«O.6ñÈšï.ž§3Àg|VÉÜ€Mí‚çÏ žŽ¦D}kñì—•£ßäíÞ6ÔÚâ¨V+÷­Ü·r= ©—è•è•è0<`xÀpG7qÊjÉ›ò_ø:ºÑ“¨¡¨'ý cç±âÈYíªß”¯vtShæ±ø¬€Ï 9`˜°I½èú¢ë‹®^s½æz͵>Ú·¬ä~01rÀßÏysž¼Ýرùß²Žbà3÷ÎÜ;sÞ…Ô   wÔDzÂó{^íy?Ž*&êI¿ÈØylVxÖï«=˜y,>+à³HpZÙ¾=|û?¿O§­Ÿ¶~Úúø÷ãߟʼ`“Z:séÌ¥3Mƒî ëûQcÞ;j‡5ö[U®}ݪ.¯º¼êòľ‰}ûÒÇð²Î—:_ê|)Ggeµ¹ã÷.kÊ[8G­¨£ê‰ÚÒÇ^ÿ<ÖhÜ!¦æÞE:jE}˜Çà³>+G€SïE‡^tpô0øÕ›Î57ÖÜX㨣Üüá¦Ú×yžr›°½_Ç&ýÕpcØÆ°aô4¼„[I·’n <xȾG•mÑáI¿ Þ¶9ÓŠZÙ×PÔVÔ™îðzæ±_t­åQáïiE­˜Çà³>+{À©—üÚß”;Øt–Xb` ûn=fpVåÏñÆÛù6æØÏkOp4L<Œÿ0žþgD-‰ZµÄQ_ª»yÙÎ葼as¦µrTIQgúÀë™Ç&\ë÷I“a¼stꌯõû¤É0æ±ø¬€Ï Àpê‰@W„»yFœ2`9}>ú|´£®|¿`ß°ÆÝxãý²mŸQUJx\·¯ç’\Kr-ÉE¯ÃÿP<©xRñ2gÊœ)sƾùc›‡åæ­Ú˶¢nöõu5§ë¤ß+à³HŽ8m§`4nиAãì;îšjÍjûÌàÍö«µWgô¼Ýà+GƒÂc¿Ç~ýè{pdÏ¢=‹ö,²ï9E&•ŸêÝ.ÀgÕè˜PÞ¤½të³jtL¨¨¡}mEÍé{é1õtár ÉÜ®i Þ-¾tk n×´†¨!óX€1–Ï ø¬àôCœÀ¦pçÈ#wŽ8ê¬OZö»ÙDçÍvjÚÏúõ*çb_Û-•¶TÚR‰G³fÌnßsüŠMÚ¸z!oÏRÓŠþË3~²fÌNßHylLûbj÷äbª6Ôþƒ˜Ú=™ÇŒ±|VÀg ¿„Á/‹Ø¾ðýƒïØwÍÐæy/ç vêÛ G{xÕa_aϺžu=ë&=Mzšô”~ˆä®å¼–óZNû>SÀ¥èŠâ}ë}Å#zï¸NR­ß^ÏÞíØÖfBõ¿í«V2¬dXIz#þñwÒßIŸQ|Fñö½¥NxØ\íãôx{S7fyÞèkÊu{þùÓâÕüÛ6ìSèËRUË•Ëw¾Pt‘Á.ïxzWá~3à¯VŸU[7ÁeÙ¦W{߸IEV+éÝè\ûÅ”[ún¾r&W0Úýzi¿’Ùµj÷§ï¼/ï¯ìözÞÔ‰zÚ×YÔ_ º$@êç±÷¶ôÞ¸Iú½Ûú5²uïêMÄ»¿‹Ü÷¸$ Í.ŸQq@Ñó…ÿÓë™w5.êƒöñ5߱ƻKQOæ±clZ}VàÖkΨsbm5¼gõØ\(5k«Öb܃¥~%#›,êSø]kºåû¥oá-⽿ëñê•êß,ÿ¸ÛÀÏê._öEt%³}¶Àg2`ó NŽ8ƒ­­·¶ÞÚzön§k›5þï¼Ö8wpž¦yë6/9£Øÿ ¤_mmÿ_{wÓ½ÿq¼ÜÞöª{™l‘}²Œ$2²É¢ÙJD[’"HDb©4A•ª*j‰R”HE‰å§Õ&”K¤«Ö.¨ÐE[~¨ªVJZ¡’ßßÜÇo<ŽÉHÆÌœ¼žóxœG1çÌ9ßùf|?ß÷œs^{;4Àó;³Š1ŠX]þÀæw;í¹^ßÇx½[ú;QéÒWW¹«ÜUîôF•¹•¹•¹Ò~Ò¡X]ÑC!hÀÄùVﻊ’L÷ÿ–œ†De'&†+ŠÚ–·{Y•!#ÌIDATÕåU”çßwR®X§8¢Ëö•Û×îÑÄÀ¢m¥û Þ ú$@cƱñYÊùöÛõQa]uùydè0•»óÝDZ“Jº^êø„©W—b)Ú–q,À\A£êbEQÛò¶6Ë<ê²YsË·—Ÿ{=7¤HÑ@ê^=¶á)c›[`®€© 6N„ÁÀÖ+§WN¯i'«šš¹àQF¿³?î6Ës¼tOºµ÷úö<ç惡…¸ ÷CöáÙQA>¶{wõt^ü,~¯ùÌ÷ŸŽ ñOÑ÷ñ†¬s¼Ü¾Dz¤7 oÞ(¤O¢lpÙà²Á¸ Óä ò66mðv~íôÉí¿í|!°¢îeV™í7qþ²G‹¤Õòñvó][Ξý?¾Ó&G,;%¾]+-´êյ瞞?ÿ¾5ÎRØÏ™i™ÓvùzúæÕcÄÏâ÷÷µÓs'ÄèýâN“'\ÈÛ(msñ^Ð'3Ž-ù[ÜyÿÝú¨­RFy}êôƒx³kŠ=Šéã»ìv·Ûöm|‰úÛã-/èö\‰kÜÿâ `ͽZvøiÕIS¯.EÛ2Ž˜+hLô«œ3è»±)Ò-7tkf uν/¢¶*vþBù£ç–´;/õToœ5|Ã~qfpÇU)±ö™Ø´±M½ï<椕3v?n]ã®øÛ7¿`f¯Ø^ÿåÅ3?ø9~€ºHœËkjyÛ⩪¶i¶‘9¦[]жe 0W Så{qÙÕÄW½Ý˼‘™Ùn»WomŸi ½¥”ÅLÛ_þU7»˜ ¼¨š%]m[¿×\KÛ3 5·À\SAlZšOLl0—#/G^Ž”v£ç³Õý• ý¨ëNÅ–ù…èÞ­ußòÎU V]?¨>ž4{Aqù·°‘ÿzúËú·£ùüÆ_zZ—åñ]ƒuË—éÚSkO­=EÏ„ëR×¥®K¥=$¬pÍúC!M|* zfÌêºrhŸÃ/®j].éT´¸êßÕÿ©Ìþÿl`é3}&Ù.ýÏ÷y™'[´ É^¾áãõ“šÏoÔå§t?ºpÍúCø\ï} 1ãØ¿J3}cæ5mU•Ú^5Ãù7±ý—b‚ží4K÷:N—ªÓTªKѶŒcæ t©|½ûfÙ¿ú«î3rº×Ô¾ïN®xóMÍu5¿n^ÿºškÙª}ÿgÒec`¯Žr˜þ…îsÖ\ª{¼Úm}ÝYÈæ¡í.Ûü,}uÃÎ-0WÀø˃üÂ``ƒÙ|qóÅÍp!⊤Ànß>¢»ÿ>Ôw±µ-c×»´UwÓ~Q•>su_÷­QK}úŠu{Nr϶ÿ‡þŽñž*sHÌzé‘úõ;êw”žÙ¬?⣪¢ª¢¤}Ã¥ª×¢!‡ôê¾ôLùÍÔãšç k+½l—øy‡ìÿêy&}áô¿7àU¶¤Ýy©gÝ}}ìºüz[ßÇ%Úù÷DªŠªŠ¢4t›ã¨~S¤ªJ\À¹îä®q­ƒÿÐ}]ñ|±nï`å7ö?šnu)–¢ÇÌ4fÙ˜ØgYnúι±g}â2?.îÙNºoAóìáv×Ü?÷~Jº®aç˜+`ü€eø¿¿,Â``ƒY°yÁ曥]äRèpßî%¦w\asÂj„XkÛ·ñ%êÄØâ^Pb])í_³:ªïKuY¯0?c¶çAÇ‹æëì¶³ÛÎn“ö Ï%i…ÓŽ?ú 7pHÞï[*Ô'g]Û8K\pÉÅ»§2y‹æ¾yÝ]=3[[ig™ï0ÐeŠæ P@ät_´µ.f¾á8Õõ}_Z´³´ýÅûBÿhè8¶`T’JõTÙîíì*Ä«ˆÀU÷u—üÚ}Œ*C¬«þÂþC›g¥ÕŸiU—¢ÇÌ*Ö¶5]žiß#øã˜cugèFÆ/Ö^º®aç˜+`ü€åÍtÃ``ƒÉNÏNÏN—v‹k‹Ó3£ÂL1îbm^w7Óýo hœ ûºâùu“Ñø.¹þŽ4¬•Ó—¶ÁÀÐT‘Y‘Y‘)í>q9//nñè`«Ó.:®‘îÙ,Ë"«ª§ÆfÌù¡þ-h^¾É¿ËË_¾}A÷Wϯ» TMÛT}À¢p]„ÌŠÌŠLú'@CDZÛâ§©w飞zYܶÓïâUDX{Õaäç‘¡õ¯uV1TþµƒÊªŸE÷º³Á4ªHÓ­.E;3Ž˜+0žø¿Ü[wûšÊC+ÜvôsK»WWõ·i—dãT³ÄbçóÆ6·À\ãGÜ|˜Vü˜ñüI@¸µ/#9zŒ)À'Í^P\k}ýNòÆÐº¯+ž/ÖÕÜŽþŽ4QÕi‹ãcô7èÂïÔÔ…éÆß·oW¦/øHkyÈ<Ù¢eÝàlæþ±y³î¯.ž_÷2ÛÑßñŠv¦¿4•ÏÞì7.P/ð喇<«y~­ðÎË=Nv™yîÚÐï""o®õK´ò›‚äšÐÊ7žŒ(õ¾£ýÖ]nôÌg›½.­þL«ºíL˜+0þXÜñ×ö ŸÉA‹Ä«˜ ´lk(æ´½®aç˜+ÈÃÎ’%;K€›µê>¿Eï1õK@œ6à“àt_wß»ý·ÛˆuÝÿmãhyCß%zro¯AN…ô7è¢ËÖéê CÝñ7lΚ¤ƒß‰ïáŠ{óØu èótšæjû®æešüϸ¾öÙ|K÷ñ—CßVŠu-CìýœjõW‚Š¥hgú@SÙógÿ6A;ô]?ºí±Þgù‰î{5Ã:8Ó£nœéüG»]–¶ÒêÏ´ªKÑÎô7€¹ã €;ç Ûbåp9ülüsšÛ·~¯ÓSÿR¿ðê± OÕÿІ[`® wŠïß)&nÖL÷ à;ç嶈µþ]Ö{D×è\2ëÛøõ·b]Ííp0Œ¡Î®¿,Ô¼O¶ò©½ƒ÷*õYñ¯>ŸçÞ|ãç\d)=çÄâñb]Ííp0€©ÐßÀ÷ üXÚÄÈw'~Úu‘òKßZ»þÖ3Í®)ö(¦‹}°ÜkvÜÌià5Žå_•&÷ ¡¹‡þö#lܤ՟iU—œ 0W`lpX§·Õ†wT$-¿ØLi1Ýr𨦅[û½vovú`èö‰>¡Õ«×íß Ëkvn¹€<4£3€Å5Лó#©ORŸ¤>ÒN`º÷¼Ôó§ ±Ö«˜Dßắû¶[ôm_O±nÒ,¯ÖNô]¢k»0=³9?ŠÌ‹Ì‹Ì¥½ÂP÷Ö½8Ôö-Zû“ÝrzüMüÞ+?ãë·tß¾WfFÔŒ±®CËп÷ØÝøôáîëCÏäÁƒugý&OôJwÚ(­þL«ºÔv`z&Ì<ú8pHÞï[*¬”U³ê6tÈ<Ù¢¥û„þã2ªº%­œ±ûñ†nß°s ÌðàÁÃøÒϨü'òŸÈ‚–‘ߣtjéÔÒ©Y-³ZfµÔ=úÏoF÷Æ‚Í 6/Ø,í —B‡ûv/1Å8÷hWµ²@¬•Ú^5Ãù7Ý׿¡rw®»d–øæ¸¾KtëægÌö<èxÑ|ÝvvÛÙmÒ^á¹$­pÚñ¦ ;CÖ¬øä¾ÒëÆèê™Ù ½sX×ü€ÍÚ¤E”kdü²aíÅïc»?Þû’îÛw´‰x¾·—X×õùÞîþÑw,Ú™¿J€¦ÇìJòQªºÔ¶ìw¥S¾Ã5±‡ £Âûz;™zu)Ú™q,À\aà èE‡·¿båâôO·b±ñ³ÿð#Ö¬Ñ|•†nÙ°s Ì0~Ú¾¤BËȃn_{çµw^{G÷ÐW<ÿч¾š€ fóÅÍ7_”v‹ŠŠ¤Ànßšb¼sU‚U׺‹kYç›ÿ¯Ùžk'ÓgFÅ׿Öõ½é?D½*ž/ÖÝ5=á`€ƒþŽñž*sHÌú\ºç¨ßQ¿£ôÌfýQUU%í.U½ 9¤ï³xÛÅ” ŒnÀ·hÿ9ÊaúbݛԥE”¯Ã$Û¥©â÷f³,‹¬ntÛQ°þó—êßr· ouý"X<_¬ë;mrIJSú>§Y´3E@ScsÕo*ƒôQUFFÇø|âô£m´kuYë‡ÞÏ~v׬…bŒ¢®ö¿1ÝêR,E;3Ž˜+0ll³Ìó§.u§šØª}ÿrtÅÁOŽ5þË܆[`®€ñ#–áÿþ&új"6˜#뎬;²NÚEÞÿ6.Çÿ%S €Å¥½:Ímïm•¯û^©±óXV÷ÝÉÌöçÚ=~'etŸèZýcÕÁ´ÔÈœ†ï–å–åFÏlÎî¾{øîaiß°NíØAu@ß°b•Ù~óÿÅ3®¯}¶þµ‚S––^¶ü§Ý§H±ª²ÓÀYç¥E]hùjžK–û~qUë^Fº—x#3SóûÂâîAú€E;SÔ4Õ86 µCW›ú¨ª˜Ò©îj4ÌìÛ÷¿5 Up‚¶çßš›=¤×`¥«ý$±VÊ(¯O~ÐV3šJu)–¢ÇÌ*ö[òâ{+#ÿ³šbâH`Ùë–Ä5Õu¼ ;·À\ãG,ò}5ÌåÈË‘—#¥Ýåùlu¥Â`m[x®£¿­{â§.} Lÿ9?õz÷ùõéóuÀçcvù—Û–ûÂï§ãBüSô}y®ã»ë–/Ýϵ§ÖžZ{Šž ×¥®K]—J{HXášõ‡Bš6ò ¨X\\hvÎjŸõxÍ×r=šÐsxŸe¹éoxˆK=‹ïÛ* zfÌjÍ >‹»ÿŠ Jë^Fºx÷T&o%¢ˆ“ýžxáÏÿr.zfÂà5ŸÙÙ鹓 bô}ñgѶÒýï} 1ãØ¿J3}cæ5qmÕ&«íŠ?…ˆ`w?ÞoE`…¨ç?å5½Ë9û'­¯Ö]ùæ±v©?U U†mêÕ¥h[Ʊs† €ò¢[öo#Ö²˜iû«Ã¿ê¾ ã62zªEC—Æ3·À\SAlºäúj"6˜{­ïµ¾×úßÌ2?bVV[5:6Æ`±œu¤›‡g€.*âò_ F†­öÚþhŽ1qäœÎŸøvMEME =¹›r7ån’ö`Å’øëï<`ó›6¶©ºÿ7ÓÞÁ{•úl€ÍÜ?6oÖ¥ˆá±N›W¬Sé¸*%vÂ>}Ÿõ[wN³bIüÎ¥;"Þ ú$@cƱ-SÓºûé¯~Ô wëç•lÜ.ä¨ï é!åº×›Æ\]жe 0W`ظý4ÕgIŠ&b ИqlÉßâÎûïÖwùÆ“¥Þwb¶¹µ²ëìÔ¶Ýß-ŠTVý,ºw¿çÒ£ƒƒøWq߇«4³ºmË8`®À°°…[û½vo>šøQÎ-0WÀT¿æúj"6°aÃ6†I;Ö® þa¨ Ak–ñúÞŽ¾/É¥¹¼Þ-ý¨tik«ÜUî*wz#„ÊÜÊÜÊ\i?éP¬.Žè¡ï(T—¢«ñdÖ÷öºm+msñ^Ð'3ŽÏRηßnØ*²©¾dl<Õ¥Xжe 0W ™GY•çÜsL°qjž¡¯&`»Øæb›‹m¤¬÷Råmû›† €å·,Ýž0½ëïÒÖ.p*p*p¢7¢Îﵿ×þn7ÏnžÝîæÕ­¤`Ñç#¿ 3•¥hOi;‹öï] ñãØk[Ó'FES6ÕR´'ãX€ÏXæ ˜+`ãA諉ØÐŽÕ«=Ö!¢CD‡i·»²jä‘”ÖMµŒpqη}À·³/Œ¿0þÂx:#4­¨\Q¹¢òwJž0'Ï›b¬É.þœåYƒ—~ESÊóEJÛV´9}@ãØ€2‡I6Gj?ÎêHµØàåÇY}cE2ŽøŒe®€¹€õ‡Ð·1€È¹}çöÛ§­Ë^·L/ˆz–’»¡Ë´|]~‘¶çÊÖ+[¯lM¯ÃaWkWkçvÚí´Ûii/òÛ3µgAŠ´†.E»IÛS´³hsº€þƱŸ)ûE®¡ZlèR´ãXÌ0Wš€›¡oS!6:cÇ8Žq”vßÇÆwü_Jî\˜ë«…L×öqðgÕŸUVÑß ‹½+÷®Ü»R[_ ÝR¸kßdJ5]–¢­´µ¤hgúÀ£ÇÞº”1*:‡ÊQ—¥h+Ʊ˜+`®¤€ÐW€Î¯~Ýðëmúè–AÅ!¿P~ÿ—â|gFÿèÑÚÚð½‚÷ Þ+ §¡~«ý­ö·˜c1ÇbŽI{”{\buF ›.KÑV¸—ϱ˜c1ÇD;ÓÝÍ8öåä`—Nw©uYжb €¹æ @Џñv–ì,ÙYBèÛ´€Ôªù«æ¯š¯­‹_ËI@®m™¥.Rv—¶›ïjßÕ¾«kÒkÒkÒéch¨sÎçœÏ9kû«ì²è¥ƒ…±”mÚ–¢}´µžh[úÀ£Çî‰J,z*RÛR´ãXÌ0WÚ7Þ½Ä{‰÷ }›°±v÷ä{É÷’U‹T‹T‹¤Ý½_¯N)GkÊ2ù‹‚\sù^ÿžçýݵ}Lœ¾vúÚékô.4F~I~I¾Öï"›-é»s7%œæR´‰¶íI¿0ì8öb‡ÔQÝý©(5—¢MÇ`®€¹¨pSÑ<˜Ð·ñ€Úyóç=´ †^ñ>á‘AY.–ãlÞª­­ÖZ{hí!z¯FU£ªQ…O Ÿ>QÚÓÌ6YY¶›Û­¸ ïó¡”s¢D›HÛJ´¡hOú€aDZ6,ÜÌ®^ÛœžEu)ÚA´ ãXÌ0Wõ#†q"6;vïØ½Cëwâ–üÙ}‚*«9ç·“bºÓÖ>ÃÇ 3|Lí—µ_Ö~I_BS©LªLªLÒÖë¬'uLíì:vÕù½#šg9'Ž]´ƒ¶VmH_0žqlÀ4‡a6ŸÞœ3êÇh—æY]ŠcíÀ8sÌ€.€aœ€MÆë ¯'¼ž mx´81b¢wEíí¬ŒØèæSœuôBÈmmâiãiãisk×­]·vÑ ßU|Wñ]ý¥]sû†¯8ÞúË9ÑnôãÇŠø³¹ ,Ž·þè—q,æ ˜+)`'`ÓQV[V[–}=ûzöumC¥Ü绚+gÿÕ-³eÌ8y祿&,éú—¢^WÔWÔWÔtèÛ'«?YýÉjmýP\Ô¨9ÜïG£¶‹8 ¢­è3Æ?Ž@n÷Ǩí‚ÏŒc0WÀ\ÔƉØÄÔd×d×dg•g•g•k6…\qz¢ýg—;èùt’œÊòšëYm5ïTØS^)õG¿—r/å^Ê¥·àQÚÑrGË-ëï™]½t°0V~åœ8®ú]´ýÀDZ{¢˃^—_ô+Ž‹q,æ ˜+€Æ †q"6I5_Õ|UóÕ”ÝSvOÙ]ÿ@ª4'aT×M½,?g5tn„ÂÿºýxomGÚaC‡ 6\¹r9„C©ÿ¾‚{\buFJè/«ÇífÂwîùeõ¸ýÃıÔ¼|“@ãØ—“ƒ]:Ý­n›ñUôÓ­.Åþ‹ca €¹æ  ñ€aœ€MYMmMmÍÊ+O¬ërtÜ¿@®ãØÏ”ý¢טVô+ö™q,æ ˜+€¦E ãD,û÷î Ôe˜•›Õµ­òÕŸû¤žê>ÅØ ò[;3úGÞöÌj¿½ºKÞò¼åyËkf×Ì®™M€±©LªLªL Ÿ>1|bý=ÙzfÇÙûªmg¾·nYxç¢ìò<#*ä:e—ç‰}ûYÿ±ˆãÇN÷86 Ìa’Í‘ò~ËCRk‹³zŪ¨Æ,Îê«û&ö“q,æ ˜+} †q"–•+öWì¯ØøaÀ~Ð%@MúÃKí4÷ÈÈA~!« U–W¾0bïÓëçvçyG¡³Ãí·;ÜŽwƯFU£ªQå—ä—ä—èÒ·-lÚ¯±K뜈ýa €¹æ @߀aœ€åèvííÚÛe–}Xö¡¢žÏQ÷WšímÕß*èÿVe*c^mÚ‚ü›µ)-B¯,íÚ}®jŠ£ÒªÄâEÝ÷í5ë׬_³¾•w+ïVo2LÑ9çsÎçœcŽÅ‹9¦{ÏïP¬.ŽèÑyò„ yƒó—ÞÜu¾iK8±M±}ñZºï›8q\¼¿Œcï»YO–r¾ýö’¿Å÷ß}éÄðÌîÇ›¶ºÛÛ¯Å8sÌÀ£G ãD,s·o'ÞN,p(p(pP4BïåÊjû›¯öyËãÜú[ϸúM+ý>!¯kõç³݃:}ñiâ[A>Ú×·EÀé÷zö<ãï²hR„³÷šá7;ûº ¶omyѼöá^7}lúØô±?½þÓë?½Î» ™¨ª­ª­Ú»rïʽ+ÝN»v;ýpÖ©;¨¸TõZ4äç’´ÂiÇ}âr^^ÜÂïÔÔ…é]¶NWVˆŸÅïÅsÄóź÷ºbŸÅþ‹cá-`«»€Ö]m6æ8ªßTìJòQmKˆŸ¦ÞõÙ›ýÆîÚógÿ6A;ÄÏâ÷â9âùb]ƱøŒe®Œ0Œp3rÓï¦ßM¿ aÂ6„)ŒØ”ãSŽO9~aË…-¶ð®Aæìjíjí,?°üÀò˜1-bZç_¥Ø7±ŸbŸyëÇ2Ž>cùŒ`'àfíĈ#NŒÈí“Û'·¡‹q³ãfÇÍ.]Xº°tá­ƒ·Þ:Èû‚æìR«K­.µZQ¹¢rE¥Ý<»yvóý_¥x]±bx_À8øŒå3¤€aœ€ñwkïÖÞ=sêÌ©3§6¼²á• ¯¤ìOÙŸ²¿©†‰g"ÎDœYxká­…·Ž=rôÈÑ›'ož¼y’†êW™[™[™[6¸lpÙàÜM¹›r7¹.u]꺴ñ•b;b›bûâµhs0Ž>cùŒÀtã!U'V'V'îOÙŸ²?eŸÇ>}ßßýþî÷wiÀ°Ì=0÷ÀÜ=Õ{ª÷T‹Ÿi0Ž>cùŒ ù ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ ™ø?{µ©<)#ˆ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/toArray.png000066400000000000000000000715711431412030200250250ustar00rootroot00000000000000‰PNG  IHDRv¥HgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷ÜrIDATxÚìýyœOõÿ?þŸ±±“% ¥P$…JH!½-’‹^-Z,Å«E´h•¼xU¶ˆ"’—=Y¢²fÉÎ`ì†çïçëóþÍë;ž^#Œñt½º\\æòx<žç<Îýs޹Í9'& …B¡€ \:%ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ”àÜY•¸*qU⎠;*ì¨sm̵1×V>\ùpåÙFgi´úÑähÓ£M6]˜yaæ…™C?…~ ý”iþ¥ù—–ÎP:Ci?ƒ€T …B¡B¤Ä¡Ÿý|èçGW]qtz¹é妗¿yüæñ›—T^RyIå3_~ƒ‰ &6˜Ø`Jƒ) ¦Üxï÷Þxo©ËJ]Vê² CÁ¯î©,1H ×®Y»fíšï‡?üûáëN¬;±nø‚åÌ_qaÅ…ÞYäÎ"w©½¢öŠÚ+Êe*—©\¦,Wg¹:ËÕÊŽ ¢ÃóÏ?<úìé³§Ï~ÿðû‡ß?<÷͹oÎ}3õgòp­‡k=\ëÁ<æy0OùAå•dïç²6ËÚ,k3d÷ÝCv:ãÓŸÎHý9T{ºÚÓÕž~,óc™Ë\»Fíµkd®š¹jæªöÖÄÅÅÅÅÅ%m™0!aBBõÄê‰ÕÕ‡óE ð_6Ý4vÓØ~%û•ìWr@íµÔN›óü üå?(÷þ»÷ß½?Ë¢,‹²,²ï€Óu¨Ò¡J‡*}•ý«ì_eï´¬Ó²NËÒæ<ÛOo?½ýôŽë:®ë¸®h㢋6¶ï€´@LÚ$þxë·þxëïkÿ¾öïkG}1ê‹Q_œîr˰<]ü-;ŠÜ‘ûÞ =ãöf­Wìç¬Sc_Îý|ìåé§ÄI÷Qº÷Csƒ7‚É›%>z|ÉÎbG$¾´®YÂs‡YPoçƒû Ìê¾½`B‘?7ÿ×r¾–óµœ^÷àu^;:vt¬· iz¤é‘¦C~òãŸÛ÷ܾçöý¹åÜÔëšR96WùæÊÚÙ·—Y¤yæOòmÌýv†YGƾ“¾bLµ˜ƒÁíGb½qâ±=¯$9^wãÕÛž:òÂÒ×´;øÍwù¬Þ3k‹³5«ãCß…jÌûÛŽø„FwX_swó ZýÝöÓ¸Z1rÄÈ#ëÖ¬[³nÍ 6ˆ bík 8 ŽL™9e攙͛5oÖ¼YÊ?úP›†• Ä4í_ûyFÜð^ù[rÌKß6ݰ˜Ùgkj¿ ù}ÈÁaSûýÐeï}÷=º9fïö•Ž÷OÉgŸ}6öÙØ'Ÿ~òé'ŸÎütæ§3?mW©ILÚ$.: .(¸ `Ý£uÖ=š’ñÏ¿ú¾"ÛÛÖ/}oÁùúdþ"ãg©?ç…ïš·¿ù›o/O¿yû7%þX½çµS¿uÁ­ n]ðQê|T'φ<òl°ßàâ´»øî⻋·›ÖnZ»iS«L­2µÊ©Ç×[c¦ÜÏ=ýdË»‹¨üég‘úsÞÙeÏžc÷œ4îµmÍ_ÛðÙ› ¤äSS2MÉ4%S•mU¶UÙf¿©CLÚ$. ¡^¡^¡^}ãúÆõëÕ½W÷^ÝO=¾_ùª}KN¸»k‰‰y?Ë\?}tëÒζli|ðñ£•úYQusÖO‡­ŠÙþÖ©Ç]öë²_—­6¯Ú¼jó pñ˜{ÃÜæÞpÇowüvÇo§ùp‹;¿-ðTçÍ-·9Xxl¾Â™¥­8<éh¯%¿êýï.»îï¸ìÍzëžz|÷^Ý{uïÕ9¾s|çø˜î1Ýcº;€sGLÚ$¢ÜZj¨uoÑ{‹Þ[töÄÙgOŒ4²Çýsíûر+úþG†þé&ÆdMû[·±ñ}GîøÛòùï­;2}ç¶Ëö½idŸ™}fö™ÙîêvW·»:ˆ b‚ÇD¡P BýüÑÏýÜ¥f—š]jFX;_¥Ërv{盛î/[llÁê±_§ýKìp¼}èàûGNÝòÐKŸ *¹©s¤‘5ÔhP£ÁðMÃ7 ß”mF¶Ùf84€sALÚ$¢ÖŽê;ªï¨~í_¯ýëµ=Ðé@§’¹lcŽû3]ªv‘²›JlϾ!öú w{¿éüGbüÀƒf~¹ªB¤1íǶÛ~ì«ù^Í÷j¾˜«b®Š¹ÊqÑ!´<´<´¼ÛÎn;»íÐx@ã#ÖæåC¥—Öë{Ã츶îö®/°%ó‘š®íÖä·¢kŠmÚyxSò1Ù>ÈöA¶~úð§ú0ÿœüsòÏqœg—˜´)ÑgëÓ[ŸÞút™eV”Y)úí2¯üÑK,¨°æB~Ãêõ½$C\Û•Å›Üxm½rkrÌ2&ù˜ðƒ;êx¨ã¡Ð“¡'CO:ZàB>§‡Ïï‘¢ßrkJ¾–eÌÊâ#G\[ïB~ÃJl/|8öúÁ åÖt™÷À‹—4H>&|¾& _:Z¸¸ˆ*»«ì®²»Êe«/[}ÙêHc†ýVóÅÒ;ë¸ä׸ÑZ‡ã5B…Êï£ø‰-ʾ0jU¾HcÖ\¾æò5—çYgAžà̹˜´ÉÀ@”8<ùðäÓoÚtÓ¦›6Eó]κíÊMŠîè7,ýì˜v1+ßì}Ý=—NïY§bÛ¢'yï]øÇÄoõ{«ß[ý?p! ŸÇ#E¿=ë<ü^Ñoöþ[Â¥Ó£;ú «Wà†vq ¾ËùþÎr“" _+†¯?D+0pá[,w×a\‡q›o>¼ùpò!3¶Ö«rÕâJëóîËÞó"ªLl>H÷ÄèrŠ<óâ×T«°¯V,^ôÛ«jó»ä½ iøHÃGN´<ÑòDKµ€´&|ŽŸ¯“÷Þ\½rÖœßõxõáPQW>ÿQõë«>Ìñá'·tí~Yþä½ákÈðõ¤Zœ_“ÆL3iLøÊ½GôÑ{Äžú{ê﩯2ޏ … =zäž/ïùòž/“÷¶©|ù»®¹gÔ¥}ò–T«¤bêÆti0¤lô¥;$ïÝøÒÆ—6¾4èšA× ºF­ ­ Ÿ£Ãçëä½CÊö(XºCLݘPLµJêžQujç-Ù¦rÃåNr…¾ž _[ª@ê;ÑôDÓM[¶iÙ¦e›pËëí_oÿzû’óJÎ+9Oü瀀 Òè*£«Œ®ò{çß;ÿÞ9yo¯Î•Æ/«J‘äè›1{úÜßý£î§å~MÞûLïgz?Ó{ûÛ¿Øþ…Z@Z>/‡ÏÑÉ{¿ûÇ÷—û5G߬§Ï­V‘ôêÜá¯'»> _O†¯-U õM¾oò}“ï‹Ô+ þsÀÀæàžƒ{îyä¹Gž{ä¹ä½ßξmg¹Ç2×O_ Ý:µ:µJóNÍþ@‡ûËÖ(¸(yï‹Ý_ìþbwU€´ Òy¹Ãýw?QpQ¥ÆeÈþ€*Zæú™žO·îÛÙïm/÷XòÞðµeø:S­RÓßøñ?;àÙÏ8õHapÊ €€ ÌgE?+úYÑäíMÛ•È•ç×ë®Ê÷Xöùª”r݆•¿³è ÉÛ‡îºwèÞõs×Ï]?W•à| Ÿ‹Ãçå“Ǭx²ó8‘\wÕ•K²ÏoÚîæ›óüšòëLÎÜ“rOÊ=©kó®Í»6_wúÖÝ >s`à‚q¤Ê‘*GªtÉØ%c—ŒÉ{_Ž»fQñOUéteß‘qqú”ªZ®d—ä½oL|câU ΗHçâJuÞR²KöY‹¦ß¡J§ëå¸Gûžìº1|¾æT%€Ô' >[ÀÀã›CßúæPòö‡^¾¼qÌ…ŸËú|¦ªôçü¥p‰±y«%oÿ¢ßý¾è¿,~Yü2U€Ô>ÿ†ÏÅ';wßÒïdçnR¢ðsùvešñÐË ÈœòkNR“0øL€€ Á±àXp¬k\׸®qÉ;Ÿ¨]naáûéLdš¾gºWzßX©Uñ¾É{Ç–[jl)U€ÔéüÛûÆ ‹÷Í4!c­t¯¨Ò™x¢ö½ËNv ùŸkÎcÁ±à˜*¤ÂàÓ%.›:o꼩󖟷ü¼åç¤íóÄõÎúYñ«³Õˆ]¢Jg®ÙÝ—–Î÷bòöîxáŽî~ ~ ~R%8ç~ ~ ~úÏù÷$çë[_?Ùù:u¬¾kSƒC_ÇÅÝvÛ?„ÿ¾pË\üê‚c—TÌsùÏY?KÚ¾æ _:ÒapJ€€ ÀÄñÇOŸ¼½Ë»å7_r“úœ-yÚÆþ–ኛ^*°5Çæ¤í–Xr`ÉæÚ›ko®­Jp®…ϹáóoÒö›^ºæÒ›ó´ÍÙ6Ãig¶z ÜåÝ›ìz2Òõ'i‡080pø ã?Ș¼½FŸWå|Z}Î®Ž¯]1ªpžäíÓ+N¯8½¢úÀ¹éœÛñµ¦­NvŽæLÔèSდ]OFºþ m'%Ò´ŸøôÀ§wlܱqGÒörïåZ™ePöÙg¤ß JgWÕóÊþRòö¡U†VZE}à\‹tέúàUMOvŽæLdŸõxú åÞ+Ù(Ë ¤íáëÏðµ¨*\X„Á` M[ÓfM›5m’·ß¿ë²Oò‡Ôçœ\"÷ÌT:÷±-ÒM‘´}Π9ƒæ :‘ýDöÙU Î…ðy6|ÎMÚÛ"ãô˜¹{æØšá[U:îßUÿë“][FºàBqq†Á` MûiåO+Z™¼ýÆ+ó×ϱ=íÌs[·C5Žéóβ²üpïû3ê­ÜWyý„AK†0â™/\Õaìs‹§Ý6sJÝåãÞ)¸bÿæâK¹7ñ`-z¦ ]Ó2¶TïüÍ“w«ê®ªŽL8"g[ÆÞþDþæA¦ c“6g¾$ýª§\q½¿oY•®ôì¿<·è¹B\¹à…ë–>TkéÚ×üå†Îñ%ö¥O«×?7^yõä“][FºàBtñ„Á` M›ßp~Ãù “·—ÈýÝØ4ñV¶™›·ý¾ïðõ¾¹ìŽ×^üùï“{l~pϯk¯IÈr¤Ô‘®'*…îÜ<üÐ5G³ÿØh×C ½xtÉøMw–Ú÷U£E?oš{à…#ÿH›•¯Þ®@‰’·oh½¡õ†ÖŽL8"g«·«Ðýdçå´ã¶ñ«±bÛ„ùsˆŸ·óÎ=‹›éz¬hèÎ5µ6e:¼óýU_~¼µyÕ¾vé7+F¬[wðñ´6ÿ¹ ßu²kËH×¢\è¢; iÚ¼óFÌ‘¼=ç#§=¿s;84±ôñíßÿþ¦5oïÛxìßÇè—¹CÆ"/þvMËb;þè–ÁWfž=¬~õ«»éæuW~b[¹ì…_ŽínQÌøðÊß1®Ü’«ÒfåKÍ9's«äíkoY{ËÚ[™p.D:Ï–>Zl÷ÉÎËiDZV‰ýB“;U¹gd¡Î_Özõx™ YÑcðåï>˜¹A«ü]cöSƒëwÜ·'.±hõö>ús«PñPïÐûigþ9ÉÚýd×–‘®Eˆ&Ñ €€4mÝ-ënY÷_?}5ݘñé–ÆäˆùìüÎmA£(¼eÀ¡×ݳ!<6ny¯¨Ð³ìâ¡GÞÑî»Ö¿¾ª^îâY¿¯•­P·œ5ß)¸bÿ–Â÷‡—wfì}žK›•/Ð1󑌿$oÿ}Îïs~ŸãÈ€s!Òy¶@Ǹ™';/§é–¥«|6ºdïgËyJ»¸â³þ2£[ú•î*|Ó%y¾rxâ;zR»[×Ëò%ýTž„ºÓ¤¡—J¤[š®JÌg±¯fÜøÿ~Q/Òµ(Ñ-:Â`0p)Ó9ç¾,Ϧ…™dî~QÌø‡V]þd¢Ï½uu™KæßðáÄ–}ߢÅõׇÿN:>Ü2ï¯ þY¾^¸eWÍ#Ÿ'¾7lØ?¤µ:gkšá†ôo'oßïüüqü‰ò¡„ÐýS¾ÚœgÏÑàà ¾IËuÎx}º½1åƒ ‚eIÛúÿÿq4@j—3äûÏyyuZ›Ûü£À-ŸÆwÿöòš§9ü±—ç•Éyïû/ܰrßêZ›2ÞwÛm?lNŸïëÌÜodü>ØÜäNÚî§X@Ê5ÌÑ0GÃA\¸~ˆFó‚yÁ¼”‡Á× ºfÐ5ƒêõƒÔJÝ \`b/M?,f`ÚœÛï{š¶­ôÑô|[—íýËØÕ·loò÷B‹CoñÊÌ®¼²Ô¾ÑýÜãúÅ 7vNûuN÷zð~ÐÂñiã¼S%­ž—/[rÉM±kR2²ÌgÅŸÊübøëíãÿrlsÚ»ÎÌô^Z½ÎàÂukèÖЭ¡Tý„¢–#¿oj›væóS©];0µIöiÝ~­UjãW#emrüß?ÿöÌY´ý½ë»G~¾eû7}ÿȸgH¾ñ™'fÝduñçóôLûu>ñlðX0Ìñiã¼ZVÏË>‹Ï¸)%# ·Ë·>Ówiû:óèßÒÒu&ÑajÌÔ˜©1©¹Æóöè &$ØåÀ©ýç±9IìX}øÒc7¦…¹Í~Ç= Ï4zvZì¯/éz¢|èÎK¯Ê¶=¶ZÓi—VÌ[¦ÒÚ<ïe»íŠ^¹&eÙU¼h¶ª±‹2TH7=&÷ê»öU>ÔiL°!ØýbZ®ü±Nä -KÞ^¯V½ZõjušÐiB§ ŽO8»>høAÃ~3ã›ßÌøïórâÎвÌÕ2A–´6çí÷ÅÇ+Z4(Äþ‘Û:îþ˱ÍÁkÁ;A~Vú}ÁÊã7Ï”I;Û²cõžgŽÝÄAðKÒv?Å"Iþ“«Þ{ì}°üñòÇËWŸh’ð\Âs Ïë3®Ï¸>ÃrË9,gJ>Õb_‹}-öÝøñßøqÐ$h4IÙž·¸zbõÄê‰àHöÆ”•}÷å<ôzAðòùÚ+ —Nß´çH¿MCܽ°øò<_¬]mêeùòÜ:|Ë‚ªAü%XߢÅõ×A0ýÿ½I.”+üö `tâ¼ãOAm’¶WjU©U¥VÕÇV[}¬Ãή¹_Îýrî—Éà£]~üÉOd ÒHks^SñYG.+hû?Þ¼êþ}õ ‚ }ШXõb[ÿžnËá#ih[VöÝ0þÐëA· XpgÒv?Å"Jö“«pôëú!:ì©¿§þžúý[÷oÝ¿uøm¾AÎ gð?¢ßg<;àÙwÜapîI¹'åž”ú3÷h M+ù]ÉïJþ×£t;Q9tç‰ ¡„Ðýçwn‹Óï.yàÊð×íÿ^öBÇlˆóX8ôý¿è÷ÿc}Âþ'Ž\ÿØÞïpì±+“·_ZýÒê—VwdÀ¹é<»½_|Í“—Ó‚n›øÐö=Øyà-ãn.üõ•^Ú6K«´³'*œXºÿH·cÅBwžúZ€è}{è=¢÷ˆ’óJÎ+9ï?Ñï)…Cßu7¬»aÝ ]›wmÞµùùŠ~ÃÀ@švCóšßÐO|-gkáºt}KäÈöNl†4q)üâÑU‰·vâÖÐ=ð°z›êmª·I·?Ýþtû™p.„ϳásnÒö#ÃŽÕ5ßóbB¡ÄÛÒÚœ«ß^ᡜzxˉwÔjœ§^¾ñ¹+eéÃŒec^¸|\щ™ïè<µeß"efûxíÕ+G«VK®J;þ×–“î8Ùµe¤kQ.Oè›TL( …Bv?–U(S¡L…2wlܱqGÒöWÝ3 ò=Ùggœ‘~Ãùa\ܰa?üߢÅÉ~”©÷ÔŸ:_&ý£úž™÷˜Ùieæ¤íýÊ÷+߯|Ë™-g¶œé˜€sghÍ¡5‡Ö츬㲎˒¶Ïör÷2‡oßtCíÜ5Ï÷•Ïm·ýðCò÷tÛÓ‚ý5¦?^¼ØòFuŽJÚ^,±üÅò/]¹tåÒ•ŽI òuQ\\\\Ò– &$TO¬žX=Q}ΗpèÛ¿uÿÖý[§$î ‡¾wÜað…÷&ç`àÐéX§cNòV¶Ù]¶/ß÷fZ˜á©CÜH½i-ú ë÷ܯ÷lÙ¼½ö’ÚKj/q4À¹éœÛï¹Ñ_œì}>®|Nåžn{Z0»ËÒN'»žŒtý @ÚtqÞ鉸4¸³Á îLÞÞçñeEþ˜¥>gËîGÊ&þ:«ÇöB E’¶g«˜­b¶ŠE¦™^dº*À¹>ç†Ï¿IÛgõXü{B‘Ý÷ LüU•Ζ>y²ëÉHן¤BßHÀÀ hߢ}‹ö-|uá« _´}Éîø®ïßðóÙG*ªÒ™ùÕï«vöLÞþò×/ýò×ÁµÁµÁµªçܵÁµÁµÿ9ÿžä|=õÙ“¯9]~ÞÖöHÅ%»W_}ðþ¤íákÎðõ§*¤5Bß”‚ŒAÆ cïøÞñ½ã“w¾3}Eå-Ÿ)Ò™8Úðø‹'žïúý¢/6tNÞÛxmãµ×ª¤¦Hçß®ß÷¯¼¡óцÇfœx^•ÎÄ;Ó‡—?Ù5ä®93ƒŒª}O—¸`ÔËR/K½,ÉÛÿñÂê±Ûoyíà+Gk©ÒŸóå–õwÍMÞÞªc«Ž­:Æ•+W^• 5…Ï¿ásñÉÎÝßu<Ù¹›”ØòÚμGkýã… ¶Nù5'©Iè{&ÀÀ#vAì‚Ø}Žõ9ÖçXòÞâWÚð°*®ýù]s<§µóW¬ë“¼÷™Ï4x¦*Àùé\ÜimßÂëúìÏpÓñüªtº^ˆÿ¸óÉ®Ã×™ákNUH}Bß³E \`îßtÿ¦û7%oýÑú½»¯øqùÎ÷÷WU¥”{µÅ²ñ›^NÞÞ2WË\-s•¨V¢Z‰jªçKø\>/Ÿì<>dÉÉÎãDòãò_*î¯:ú£ÿ{÷)¿ÎàÜúž `à“5wÖÜYsòÚ'¯}òZòÞÛj|›oÅû‡'ß~¢¤ZÚ¢±»nÝÿÏþŸý6{[¥ä½={õìÕ³—*@Zé¼Üÿ³¯ÞÙViÑØßþ¹ÿŸªtj‡'}åDÉÛjü­ÀŠ÷“÷†¯-Ã×™jš¾ôûG¿Tè{v €€ RÓM4]pißKû^Ú7yo÷¾‹îÚð›*E’ÐùØþã{nyhÊÃ+NrïË]ßèúF×­ ´*ÐJ­ -Ÿ—Ãçèä½·<Ôé³W$t>øèñ=jI÷¾ý?<Ùõaøz2|m©J©ïöÏoÿüöÏ#õ }ÿ0pAŠù$擘OFýeÔ_Fý%yï …«ß¾xÔ=¿wÙµN­’ M õM|ð·ÙÇWõOÞ[¬G±Åz´YÜfq›ÅjiMø>_'ï}ð·—¶­êšŠ MT«¤FÝ3mú®uƒN¸jûI®pÂדákKµH}éF§nôÐAC núž¹˜P( …¸p ùaÈC~xâö'nâöä½ßT»õã+Wý:ÿ¿s|¨V/^·¸ÃÆKßYóKÍ-#“÷.)¼¤ð’ÂÅW_Q|…Z@Ú´¡Ü†rÊUÜRqKÅ-É{Ÿ¸¬ùw…›õü±í‰b¿«Õü;–ÿ5á¯õæ>±ê—ÖÉ{ß™üÎäw&?xýƒ×?x½ZN\\\\\\Ò– &$TO¬žX=Q}8_Ü \ðÌô`¦35nÙ¸eã–É{ëÍúè/­—‰_}à㋹Jïü%Ó–Ë"E¿_ŒýbìcE¿ö…Ï×áswòÞwÖŒ¸eËÈ÷ŽÜ²å²‹¹JK¬>~àãHÑoøº1| éˆ ú€€ ß5Á5Á5ýïêWÿ»Šd.’¹HæäCjúfÁòk•Ø•sÿ‹QeŽǃï4]‘mó=/YÊßw¼Fè£P™§»þ8ê÷Ú/N[2pÓIÂÝÖl½ñ©ŽOu|ª£ã.Dáóxøœž¼÷ÅiŸþmS­§»¾—ã÷ÚÇkÏ*ÝÕøfû¼â'Þ²ï±|+êG¾V _7:~ˆV` ªäYgAž¿<üËÿ<iL‹²3{®Ê÷Úo?ù#_h00˜MØQñðïÇòÔ÷M†Ÿ›~úU'¶¿y’ |ÛâÛß¾õÂ[/¼õBP7¨ÔuäÀ©nP7¨>§‡Ïïɇ|úñ5·¿Ys\‡é?7ÝQ1~÷±<ÑT€ÐþP…`Ök¿}6÷|-ʾ0jU¾H#ÃׇákEÑ-& …B!…¢ÏŽê;ªï¨~í_¯ýëµ=Ðé@§’¹lcŽû3]ªv‘²›JlϾ!öú w{¿éüGbüÀƒf~¹ªB¤1íǶÛ~ì«ù^Í÷j¾˜«b®Š¹ÊqÑ!´<´<´¼ÛÎn;»íÐx@ã#ÖæåC¥—Öë{Ã츶îö®/°%ó‘š®íÖä·¢kŠmÚyxSò1Ù>ÈöA¶~úð§ú0ÿœüsòÏqœgW\\\\\\Ò– &$TO¬žX=Q}8_À@”;Pë@­µî-zoÑ{‹Îž8{âìˆîqÅœEû>vìŠ~…ÿ‘¡º‰1YÓþÖml|`ß‘;þ¶|þ{ëŽLß¹í²}¯FÙgfŸ™}f¶»ºÝÕí®b‚˜ ƱQ(„‚ÐG?ôóG?w©Ù¥f—š‘ÖÎW鲜ÝÞ»ê©ûKÆ[°zì×iã;o:ø~Æ‘S·<ôÒgƒJnêid5Ôh0|ÓðMÃ7e›‘mF¶ à\“6 €€‹B¨W¨W¨W߸¾q}ãzuïÕ½W÷SïW¾jß’îîZbbÞÏ2×O_ ݺ´³-[|üh¥¾EVTÝœõÓa«b¶¿uêñ_—ýºì×e«Í«6¯ÚÜâÎo <ÕysË-E›¯p¦Eig+O:ÚëDɯzÿ»Ë®û;.{³Þº†§ß½W÷^Ý{uŽïß9>¦{L÷˜îŽàÜ“6 €€‹Î‚‚ .(X÷hÝ£u¦düsů¾¯Èö¶õKß[pD¾>™¿ÈøYêÏyáûæíoþæÛËÓoÞþM‰?VïyíÔão]pë‚[|Tç£:Õɳ!φ<ìw¸8í.¾»øîâí¦µ›ÖnÚÔ*S«L­rêñõÖߘ)÷sO?Ùòî"*zÅÃÙG¤þœwvÙ³çØý'{m[ó×6|öãæ)ùÔ”LS2MÉTe[•mU¶Ùï@ê“6 €€‹Ôá7¿yøÍ·ß|ûÍ·ß|ýÈëG^?’’Oå*qPús]õ[‘Э‹tËõÌ•æjŸµÅÙšÕñ¡ïB5æýmG| £;¬¯¹»ù?­þnûi\­9b䈑ukÖ­Y·fıö5 ŽG¦Ìœ2sÊÌæÍš7kÞ,å}¨MÃJbšö¯ý<#nx¯ü-9æ¥o›nXÌì³5µ_†ü>äà°©ý~è²÷¾{‡Ý³wûJÇû§ä³ÏÆ>ûlì“O?ùô“Og~:óÓ™Ÿ¶«€Ô$&m¼õÇ[¼õ÷µ_û÷µ£¾õŨ/Nw 9ŽeXž.þ–EîÈ}o…žq{³Ö+ösÖ©±/ç~>öòôSb¤û(Ýû¡¹ÁÁäƒÍ=¾dg±#_Z×,á¹Ã,¨·óÁýfuß^0¡ÈŸ›ÿk9_ËùZί{𺯋;:v´} Dr¤é‘¦GšùqÈC~|nßsûžÛ÷ç–sS¯kJåØ\å›+kgß^rd‘æ™?É·1÷ÛzdûNúŠ1Õb·‰=öƉÇö¼’PäxÝWo{êÈ K_\Óîà7ßå_°zÏð„Œ=wºë½§Õ=­îiõ÷R/õ÷R—{úìé³ß?üþá÷Ï}sî›sßLý™<\ëáZ×z0σyÌS~PùAåÙ;À¹°¬Í²6ËÚ Ù=d÷ÝŸÎøtƧ3RÕž®ötµ§ËüXæÇ2×®Q»F홫f®š¹ª½¤5`Ò&0Ài8ôó¡Ÿý¼â芣+ŽN/7½Üôrã7ß<~ó’ÊK*/©|æËo0±ÁÄLi0¥Á”ï½ñÞï-uY©ËJ]d2ÔHU‰Ab¸vÍÚ5k×|?üûáߟXwb݉uÃ,g¾øŠ +.¬¸ðÎ"w¹³HíµWÔ^Q.S¹Lå2e¹:ËÕY®V~øsÀçЪÄU‰«wTØQaG…˜kc®¹¶òáʇ+Î4:ÓèLÞÔ D•£M6=Útaæ…™fýú)ôSþ¥ù—æ_Z:Cé ¥ý*¤0@”H§ÑA %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQ"Cj®lN†9ædh˜£aކ9”¸LH˜0!¡zbõÄê‰çz]îˆ`€(‘!-L"|Ësp"8œBA(…N„N„þóuÒö}ýç>•úK6Ïs·dóO›k9ƒ5†B¡P(Ê·1jg’vêöguaÍð<Íü,|7¸xö…jØ QúõýOÁ×¾>»_«@*~¢k³Ef~¡Ï0íœñ/¶½cÖ’šk9wÿÒ/”j\œóŒî¥Eß|Îî•ü™ÿK¿`krO“{šÜÓ䢀꟨~¢ú‰ÿjŠ b‚˜ ]ÎÊ@ü×wƒôAú ½’€ï¾ÀEÊÿÀ5€kpÆ¢é_º3;8§G‘9æd˜“!Èärœ¿ÿ<ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %Àœ‘—W¿¼úåÕq)ðó÷?ÿó÷*玀32ºÎè:£ëœÝ‘ÀŸ#àOZðÀ‚<°>a}Âú„”Œ]ytåÑ•ƒ\A® —êÀ¹A €‹Ùm3o›yÛÌH½ßÖü¶æ·5U)’‘|häCÁø`|0>%ã7.߸|ãò¸tqéâÒÅñA¼ÀY&.j?6ú±Ñ"õÆqA\/«ü/Ço:~Óñ›þ<ðç?ŸîgôÈ G©!œ  Ài›žaz†é¥¸ôg¥?+ýY¤Þ1ùÇä“?.....N%àìpÚ¾lòe“/›Dê}fÔ3£ž©wç;ïÜy§À¹ à4îs¸Ïá>#zŽè9¢gòÞ¬-³¶ÌÚòÑ=ú¯GÿÕíînww»;ÒrZÝÖê¶V·©'œ]`Nä“N©·áõ ¯ox}øëÆGm|4ÒÈñ¿Žÿuü¯ g—€Ópê‡?7·ù»Íß?õ›€÷mÜ·qßFõ€³+ƒ¤¦=¹÷äÞ“{ò㓟üø7o~óæ7o®¹fÍ5k®ÙÚmk·­ÝöÄì‰Ù“g}žõyÖìW°_Á~¥—Z\jqý§ë?]ÿ麃ë®;8÷žÜ{rïIý™ïÙ³7fRîI¹'åNÞ›ÿóüŸçÿ¼é}Mïkz_|Äÿ§½û-Ýoé~K¯ïz}×ë»äŸj¼£ñŽÆ;ÎõÌç??ÿùùÏ'o¯úJÕWª¾’ò儊‡Š‡Šmu´ÕÑV±½c{Çö>¿ëŠdéKÿXúÇÜ‘sGΞϪ»VÝµê®øÜñ¹ãsÇÇÅÇÅÇ%ÖH¬‘X#{ì5²×È•3WÎ\9/ŸqùŒËg\ÑëŠ^WôºeÑ-‹nYtÓ•7]yÓ•ég¥Ÿ•~–¹Š˜P( …Rges2ÌÉ0'Cà s4Ì‘´}B„„ Õ«'VO´K€sáì>j8|‡kÊÇÎþ9o´y£ÍmÞÛþÞö÷¶ŸùÖ/]¿týÒœÅrËY,uj8$vHìØ'²>‘õ‰¬É{;´éЦC›þƒúê?(i}Vßµú®ÕwU™UeV•“„ˆ™»dî’¹Kø½Â§[Õ³µ÷“¯w{Çí·wü¸ÍÇm>n3=Ãô Ó3¬‹[·.nwÅÝwW,ro‘{‹Ü»¼ÿòþËûŸßuýG® WkLþ1ùÇäÁû Þ_ðS©ŸJýTêlU¯×À^{ lû]ÛïÚ~—éÃLfú0%Ÿª;¾îøºã<°à$mÏ7>ßø|ãW¶\Ùre˘ 1b6œ­y†ß<ýeë/[Ùú¿~ð±7foÌÞ¥³—Î^:»hµ¢ÕŠVóý8wÒBêÐçP8Š«¼¾òúÊëÏVô^æÂÚ k/¬:Ûò?þüNówš¿“<à¼|Üåã.éSáè7íì¯ð>*;´ìвCûÞÚ÷Ö¾·†+ŽcÓÚºÂÑnñL‹gZ<ÓfW›]mvÝè7¬{Ûîm»·-8¬à°‚ÃâKÄ—ˆ/‘’O5ÊÒ(K£,ÉÛwÞ¹óÎwæIÈ“'álÍ0|%~ê5«Ö¬Z³òw”¿£ü¾#0À9~ônø:ñuâÃwyžÝ凃´F—4º¤Ñ%g÷þæä6ß<|óð9“çLž39yo8â­³vÎÚ9#-áùÊÏW~¾r¤ÞÛ_ºý¥Û_:_{*±abÃĆíßkÿ^û÷z–íY¶gÙ´¿®L<0±Þõ>¨÷Á7}¿éûMßÔ©Õå(÷@¹ð=ǧyWá» ßU8Roø~ñ³5«ðÕ#õ6{·Ù»ÍÞ=w÷—¤5`ࢾ1ùŸsñ©pÜ[¯_½~õúzd­lµ²ÕÊ6xóà̓7/ûzÙ×˾ÞÖb[‹m-~úóП‡Y1dÅ7¯¹yÍÍk"-!†}îbàÑ•GW1¾mþnów›ÿ€­ÉÎ&;›ìŒÔû]¥ï*}Wé\ÇØ‘<^øñÂÑsDÏ=/”u=Ûó·=Û/ÿòñ/G“gIž%y–<×ó¹žÏõœÔ}R÷IÝoX¼añ†­í·¶ßÚ~uùÕåW—Ÿ5qÖÄY^;ðÚ׆Æð“#-sö¼ÙófÏ‹K—.îü<¡ØUÅ®*vU¤Þ ó'ÌŸ0ÿ¬ŸuF×]'y{øÕ_ñø_á{ pñð`à¢vºolM‰V¶z´Õ£¿œøåÄ/“÷¦Ÿ•~VúYoå+ÿ[ùÃÑTJÖžg† &d˜¾‹4ù˜úmë·­ßvèCßúÆÙ­RÍê5«×¬¾lŲËV$ï]¼wñÞÅ{Kœ(q¢Ä‰3©ö™ÔüÌ×›TlïØÞ±½[ÝÖê¶V·ÝþîíïÞþnÁW ¾ZðÕ|³òÍÊ7+ßÌ|3óÍ Iýuíª¹«æ®š—/»|ÙåË"-³^çzëuNzgpÊ«š’#­î{uß«ûÞˆûGÜ?âþS/í‚ï|§à‹G_<úâÑs±ÇÃo×.Ö°XÃb'™gø×5þuè_‡þuÈÀ@êð`€¨2ë—Y¿Ìú%RôvºÑoXxd¤@.lÒÀI' <»÷Ѯ촲ÓÊN‘¢ßª¯T}¥ê+×äº&×5¹R²´ù{äï‘?RïMWÞtåMWžß=xÙŒËf\6c^×y]çutÝ ë];+f¯˜½böKê_Rÿ’ú‘¢ßÔY×Ò?–þ±ôHË ?Ž;ýÆ'‘òY¥äHûyîÏsž›’#íÔ‚î<µóÔÎSϤ†_OùzÊ×S"õzø3pqœ5ƒJ*=¨t¤Þð›nO7úM*%Ÿj:­é´¦ÓÎÖ}ÙäË&_6‰ÔÛüæï4'åÛÒøXãcEê=yöäÙ“Ï׃ /¿4þÒø¯‡=üëáá¯Ï]px&ëú­Óo~ë©·Õ=­îiuÏ™Ï|~«ù­æ·ŠÔ»­ã¶ŽÛRôNëR‹K-.µ8Rï™?:ÒÃÉãöÄí‰Û¾ß÷%àb#8 vWÜ]qwűùÇæñ×J¿Pú…ÒgÎ…ßÛ©wü¯ãÿëÙŠQGÝ=êîQw'o?"ø©Oí|jgÊ—Vr]Éu%×Eê µï«}_í›ú{°wßÞ}{÷ ?~9-¯kí¥k/]{iøÎàänÞyóΛwžù Ë|Væ³2ŸEê=~Óñ›Žß”ò¥u»»ÛÝÝNrýÖý·î¿uÿsÇj|‰øñ%¾}ðÛ¿}0yo“ÕMV7YíûpqœsFÌ1gD¤Þ«ê]Uïªz5ZÔhQ£Å™¯ë꯾ñê#õýëÑ¿ý뙯åÇF?6ú±Ñïé~O÷ûIþçXwHÝ!u‡ü¹%÷ÌÔ3SÏL‘zGÕUgTÔÜw׿æø5Ç[¼Ò╯¤ýu½Þäõ&¯7ÙÚþä*¯x¼âñ3Ÿç¡>‡úês¶¶ú®Bwº«ÐŸ;"·uÜÖq[#õžî½éÑD p,¬½°öÂÚ‘zë·­ß¶~Û³G=µà©O-ˆÔûô¨§G==êL–ê‡?ŸÉÛUm|´ñÑH½‹®]tí¢kSóAÐuß­ûnÝTzSlj®ëLÌ™ióì˜gÇ<;¦á½ ïmxïåË._vù²‡×>¼öáµáwZŸÝ94ÊÚ(k£¬‘z_kýZë×Z§d9còÉ?&â›¶› n6¸Ù`ß‘€‹Y%8s{÷íÝ·w_¤Þ¼Kò.É»äì®1߬|³òÍúsó9µ‘­G¶Ù:x+x+x+yïç?|þÃç?„¿>wjþõõ__ÿõõ¸×ã^{ý\ßÍ™{Oî=¹÷¤ÎqrîÖ¾o{A£4ú¶É·M¾m²dÿ’ýKöOm<µñÔÆÿ5tq’?c‚1Á˜ÔÙöS¿»zü¯ãÿë£Á£Á£ÿc9‘þ\yzåé•§_WûºÚ×ÕŽâ7+wœ§\³×È^#{³»ÆìÕ³WÏ^ýÏÍ'’Ã}÷9Ügø[ÃßþVZ¨ê“+Ÿ\ùäÊs½–\ÅrËU,u¶èì®ëÀÄL|õ«W¿zõ«¼›ònÊ»©^¿zýêõë{kß[ûÞz’è7Å2wÉÜ%s—sQ'?qø‰ÃÉÛç~2÷“¹ŸœúW 6lÚ°iæýØèÇFÉ{›¿ÛüÝæïzø3€à‚”av†ÙfGê=ò×#=ò×Ó]æä“{Lî‘v¶1ü>Ús¾š½ÁÞ`o*mÒYZ׌3Ì8PiO¥=•ö¼ñð¿ñðŸ[N–Y:déP¾\ùråË…ßž;(ï ¼ƒò†à\ Ò#ÄÃw0ÿ¹ã!ý¬ô³ÒÏ ?ÎÚw0ÀY+g®œ¹rFêÝ?{ÿìý³Ïî÷mÜ·q߯H½q{âöÄí9Ýe~ÙäË&_6I;U]Ÿ°>a}¹{Ðô…hþóóŸŸÿ|㢋6.º½ãöŽÛ;žz|¡ç =Wè¹pìúÒ/ýðÒ£KŽ.9ºd¸÷PÿCýõŸ9g朙s>zð£?z°Éê&«›¬>w÷Ñ^»öÚµ×®Ô[÷½ºïÕ}/Ro¤‡?ßúï[ÿ}ë¿a`€³àÔðîKw_ºûÒ³»ÆøÜñ¹ãsGêÍÊÊJùÒöÆìÙóõ”¯§|=%yo† &d˜ðûžß÷ü¾'þ¸ñ‘¹ñ‘Hskÿdû'Û?é;ÖêX«c­¼äÁK¼$Ò˜˜ 1b64>Úøh㣳‡Í6{ØÖ×¶¾¶õµq[Æm·å±Ò•~¬tEuÕY”´þ©¿-múצmš¼}z†é¦gHù¯ºÕý«îÿùûŸ¿ÿùûäŸòðg€¤ÀgAÁ~ûì©÷×î¿vÿµûÙ]ã/¯ÿòú/¯GêÍ?>ÿøüãS¾´mý×ÖmÔ[gmµuÖ^šûÒÜ—æ>Õk|¬ñ±ÆÇ"õ~uùW—u¹û€G¶ÙzdëmݶuÛÖ-yo8úÞ}x÷áÝÇf›il¦«ê]Uïªzç7è¤Q–FYeIÞ~ô¯Gÿzô$.tïoøMØmvµÙÕf—ïBa`€³àÚ]×îº6bµô¥,ýãì®ñÔ˼v÷µ»¯ÝòØoT“QMFE|øóÝ«ï^}÷9|,ð]…î*tW¡H½)yÐñÅ „Gê}fÔ3£žÕü³æŸ5ÿ,íß {ý?¯ÿçõÿŒÔÛxGãw$m‰7ÊÚ(k£¬Ž €¤ÀgAå•gTž©wÒÀI' <»kœøåÄ/'~©·Ê?«ü³Ê?S²œ-¶ Ø2`Ö/³~™õKòÞLfú0Ó‡íßkÿ^û÷Î]õÂï©=õ˜ >Pð‚ó1~#r¤Þm´mÐölE¿§^×Y°7ØìÔùíƒß>øíƒá{¾Ã¿è°ú®Õw­¾+ùÈfï4{§Ù;þ ”à,¨Þ¬z³êÍ"õ.[±lŲgë!Æá7¡.ÿfù7Ë¿9Éó–¥[–nYë"­‹´.’’¥Eº·2ì¶±·½mlêÔ°wÞ=z÷ˆÔ;n븭ã¶^Ì‚Þ4wÓÜMs#õ^>þòñ—?[ëZX{aí…µÏõŸ4~ÒøIÉÛL<0ñÀÄð×_UþªòW'9> ·/ܾpûFW5ºªÑU¾ÿü×O”àÌåŸo|¾ÿ¿5øKƒ¿4øË™¯ëÅ£/}ñh¤Þ;þrÇ_î8µŒº{ÔÝ£îŽÔ{®þœÔ]…ï*|Wᘽ1{cNro螘=1{b.æc,k‡¬²vˆÔ»öÒµ—®½ôÌײã¾÷í¸¯GÙe{”=×[Tí‘jT{$RoË{ZÞÓòžH¾nöfÿhö÷þ$'ˆ(T¼6uª]äÞ"÷¹7”+”+”+Ò˜¦ÓšNk:íâ</©IýKêGêÜcrÉ=Îdù»+»bËG[>ÚòÑ?&ý1éIçz‹Âw«GêÙzdë‘­7.߸|ãòä½ÍÞmön³w}8Éÿ¶” ’5wÖÜY3åãk﬽³öÎSÉøEÆ/2~qº1p8ú}"ëYŸÈiÌí/ÝþÒí/5.Ú¸hã¢)Yæ—M¾lòe“H½õ^ª÷R½—R¿æ½öØ+âû’ÃoS¾8}Ë¢[ݲ(RïkO¾öäkOþ¹Ê„ß¹{Sµ›ªÝTíÇF?6ú±QjnW¤_›Hl˜Ø0±aòö«o¼úÆ«o¬Þ¾zûêí}HN ÑMßhúFÓ½1{cöÆýëÑ¿ýëæá›‡o~êO­è½¢÷ŠÞ9‹å,–³XòÞc­Žµ:Ö*üu8®ÿëø_Çÿ^r¸7üõ¿ýëп…ßrzêè7nOÜž¸=ïnywË»[RþPÜSÀMV7YÝduê?b·QÖFYeô èƒC=8ôâ<[ÝÖê¶V·¥Ÿ•~VúYÉ{Ãqĭ˜ 1ÂÇÕŒŒ32Îȸ>a}Âú„ðq_"¾D|‰ð©?ýáèGß|âæ7Ÿh6®Ù¸fã’Û±½c{Çö>õ¬Ö•\Wr]ÉÓ½W>©›®¼éÊ›®Lùøð½¿þ IL( …B©³²9æd˜“¡aކ9æHÚ>!aB„„ê‰Õ«'Ú%@j:“{IOA…—œ­A¶Ù˜x`â‰çbþ9®ÎquŽ«G6Ùhd£ú½ê÷ªß+%ÁØ¢k]»èÚ[~¿å÷[~OÞ›tÎç+f;õ~©ß¶~Ûúm‡¾1ô¡oœùÒÎî6žëu뻟³¶ÌÚ2kË?ùð“?i­u¶ÖÙRþÙ!+†¬²"ü.çs±]áx{ùË¿XþEáö…Ûv0椅<ÔÀÀE­S•NU:U9KG}á5ï̼3óÎ<»Ë/øjÁW ¾:~îø¹ãç¦<ú ;õ½¿õ©ÿHýGÎï~yyÊËS^ž©wêÍSožzóÅù è]EwÝUô\,¹Ìe>(óÁ·5¿­ùmÍpôûIíOjR;u¶kä]#ïyשÇÔ*\«p­Â庖ëZ®«ï]‘€€‹Z÷:Ýët¯sî–e–XXba‰m:´éÐ&Ä 2LøsK ¿?ø‰ÃO~âð~¬ðc…ŠÇ+¯x<åÑï‰ò'ÊŸ(?àíox;Ò˜»Wß½úîÕç÷»áAGêMúí‹î¿ñËÒ-K·,þDü‰øá–HO‰ð¯&¼YéÍJoVZÙie§•Ê5/×¼\óðÞ¿gÚ=Óî™–:ÛU;±vbíÿñ[ðþ  ðŸ@±ÀÄ L¼áéž¾áé ›6lÚ°igÍ5wÖ,ðyÏ |^¤E‘EZiW¤]‘vc3Í46ÓŸ ¢’Þ·~Xk*®©¸­ã¶ŽÛ:î‰Ù³'&üNßðzK+=®ô¸zO×{ºÞÓíßkÿ^û÷ÎÖc„Ó~v¡Ì3-T)üuøÍÍ‹Ó/N¿8ý+î®x`衆æ]šwiÞ¥ûìW°ß5‰×$^“xGÝ;êÞQ·ùgÍ?kþÙ©+|¤ë‘®GºPh@¡³WÌ^1{ø_G(W(W(WéÏJVú³²”ý ì®ët]§ëÊö*Û«l¯3ß–¤2wÉÜ%s—Ã}÷9ÜÇñ¤ei!œDò ê\ÇN‘¢/qií>'KÎä rU,^±xÅâá€9igÓiM§56ºÎè:£ëø¤ei!Í`7$—ú!“X‹ åˆ:Kž5oÖ¼Yó6TÛPmCµä½ÍßiþNówÆŒèßÀÿàÀÀy6ìÓaŸû4y{ø-ÅÍÆ5×lœ*¤„8o=8ôàÐHð=Óî™vÏ4UH90pÞ|y÷—wyw¤Þæï6·ù»r`à<80ñÀÄß=üîáw'ï­pI…K*\R'¾N|Ñ/ÀiÈ À¹~¼ó²ËV,[Qê÷R¿—ú={õìÕ³W_þÍòo–Ó³PÏB= ­kµ®ÕºVÉ?ûô¨§G==êÎ+î¼âÎ+T åÀÀ9±½ãöŽÛ;Ö êõþ_Ó×Á×Á×§þTÙ^e{•íõÀÜøÀþ pº<HòžÿóüŸþÍçß|þèàÏçÙ¥'.=q鉱ûÇʬ*³ªÌR€?G œù&ä›oBøëpÄÛ;¶wlïÂí ·/ܾö±ÚÇj{÷×w}÷×ßÓýžî÷tåš—k^®¹{΄wçDöêÙ«g¯ž4Ћ‹‹‹‹Ûl ¶[2nɸ%㘂c Ž)ø@üñ}Î0JÜÝ p®y4@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D 0@”D‰ ia¡™¡™¡™³çΞ;{îÿÄ1çaŠÖ­ëUaëµ^ëõÊz­×z­×zm©õZ¯õZ¯õÚRëµ^ëµ^ëu&²Þ4¶Þ˜˜˜˜uŽÞõžci"¾óŽ;ï¸óŽÈär+ŽG@D‰T €«'VO¬ž¨èçBª>zgãw6?aü„ñÎÉ <Ùß–ÚRëµ¥¶Ô–Z¯-µ¥¶Ôzm©-µ¥*lKm© ÛR[ªÂ¶Ô–Z¯-êõž‡7;–ÎXÙveÛ•m—J …B¡PÀÎ;€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€¢„ J€à´ûû¤æ²wÉÞ%{—nw{¸ÛÃMŠ7)Þ¤x¡ƒ…:hïp&ÀD»bA± Ø¼®óºÎëÚ£SN=:-ȵ ׂ\imšUöVÙ[eïK¼ôÁKÜÐû†Þ7ô6ƒv )' í ö{挘3bΈַ¶¾µõ­;¯ÛyÝÎëNw1eŽå,¹_|Ìù~Ùa¹fg9P¸O–Ë2¾‘£nÆ½éƒ ¥ûgÌñÄœx ”>aʱ\ǃ-]­9öÌo-öÖ8”möÎíCö=¶2ã¾U‡;žîzóý˜ïÇ|?ž:xêà©Õ›Wo^½y;Èä¶c950Qe}©õ¥Ö—zdô#£½ Î‚: ê¤äS5Zèšã³6_~o7þT wŽÜ…Êg‰ÉôìÙšÕÖe‡BG_ÿþÚí]ö ztõðí ³‡mïpJ>[eZ•iU¦}Òô“¦Ÿ4-±¶ÄÚkíe"pÁ UUUøèÅ^üèÅ®mº¶éÚæÔãsÍȸ6ýÛoõ¯2åÒw7.14ïGÁíÁ%©|íäà`ÏWc×·ÜÕî© êþžno­c¥Ž?yêõÔ{PïAíz¶ëÙ®gÌÒ˜¥1Kí}’pÛÙbg‹-šmZ´iÑ¥—\:0ÒÈ2#r>’yj¿U›•zÿºûòý=ûòàî x'MlÆWÁ†`÷Ÿïüûþ«:¶Ÿ?ríc+›ïûä𭑆Wh[¡m…¶£7Þ4zS¾aù†åæH L ÀiéÊ¥+—®¬UµVÕZUO=rL›+—}»öo…Êäº`‚Òée·®ÜÛ¢Éö/üíÜýÅP“„/e9~üÖ%Sv.ᄇ߾q‡ïN>Æ»/Nî ÚÙbg‹-NýNÏzû+W·½x¢ß°ðö†·=\‡äcÂu ×бtñæ„*„*„*4-Ú´hÓ¢É{Ã@ßõ›¥[†Þé.¿8«Þöp"=:\Ãp=W0iÎG/~ôâG/.¸tàÒÉ{~ßðæŠ·]lwýF®C¸&É{Ã5 ×3mÎÒ˜Ic&‰‹‹‹‹‹ë=¢÷ˆÞ#öÔßSO}{öÏñ`Òõ¥Ö—Z_êšøk⯉OÞ;¾ro¯x¡ÆÔ‚ƒrNV«äfߺ­Í¾Ûï\8í¶__NÞ»8nqÜâ¸kK¬-±6-ÌöDÓMO4Í;-ï´¼Ó’÷>;àÙÏè0¸ÃàƒsOÊ=)÷$û7%Ü @Ú°+Øìzdô#£¼óoõ¯ÌSh‡è÷ÔÂõ ×*yïj»+ØìJ ³|ßäû&ß©÷õö¯·½}Éy%畜çÎà”&Ì5gÔœQ ê,¨³ NòÞ®o•¿¥èsª”‘j®m¸Îiaž7~|ãÇ7~¾Ó÷Ô#…Á)çМoÅ‚bA±ÒÓKO/=}çu;¯Ûy]ÒÎ1n®\öíÚ¿*“k˜R¥Üô²[WîmÑdû¿þödÒö|?æû1ß«j¯ª½ªv°1ØlL ³ ºý[÷oÝ¿u8îMɧ<&:9wpžÍë:¯ë¼®É£ß2#r>’yjí åÈ5@•NW¸ná&m×9\ó´3Ûp|Ûµy׿]›¯»aÝ ënpgðŸã`γºéꦫ›nA®¹äJÚþíÍ·}[®Ñu_å”}‹*ý9?Þ½³Íþ·ýûÛÛVü+i{•½UöVÙ;åÄ”SN¤åù»3øt¹€ófkÖ­Y·fMýæš‘qmú·¯+–¯}ö¹ªt&Â5 ×3i{¸æáú§åù»3øt¹€ó¦ÿÎþ;ûïìVº[én¥“¶zoµ—õ½»‰yGÄÅ öÑ–ߢÅõ×§Í­[}×¾f‡¾®2ëë&ËòŸÝÙšXúøˆK:~ùÒÂ’)©ÌWÖ×ÚÕüáásÛ¯éœtÌ««^]õêªù:äëïÂ:r܉;€8ö{ƒ½¯~úꧯ~š¼ó¶zE~Ì=,ú6úÔaö¹[W¤zþ§þ{ƒ½ÁÞ «’î ŽD Ày°óå/ï|yŸý}ö÷IÚ^£E®9>ËÑ(ãô'I²v½·a•÷“þ}qV/kË «Ò7OZ“ï»6¨W>O¤ñáz†k›´=\ÿð¾¸p«! NJ Ày°hÓ¢M‹6%ooóñå÷ÈéSé–Åäˆù,éßs Ãy×!Ãì˜vÁo§©¶‘öÅ…H,à<˜ÒxJã)“·WËÿRŽ'Õç\ˆTÛHûâBwq†Á`΃±;Æî»#y{Áϲ,ÌØüÌ—¿­Û¡šGÇôygYÙ?~¸÷ýõV~ %à ñÌ‚®ê0ö¹ÅÓn›9¥îòqï\±ó ñ%ŽÜ›x0u¶}IúÝ%\q½YYV¥+=û«û=žÕuK'^º¶Çõ?5ÜÐù\Ì'Rm#í‹hrñ„Á1¡P( ù@êH\¸ qAþºùëæ¯›´½Ì±œ¥3÷›¿ÿŽë* IÚ7lØ?„¿?ôøÔËŸ¹yÛïûß_oVæUéöm<öïã‹S>·e_ßµ¢âò¢Õ²½ûЙoéê»ö5;ôu•Y_7Y–?i{Æ/Ò‰¹ýX«›C“#}6ÿç™seØ4vÿͯ^1£\óܳ³¾ûçÖ•¼bU³ýãÒWfÜ·êpǤí;¦ì˜²cJ†*ªd¨rñá@·ëþ­û·ǽ)ùT8<î0¸ÃàƒÃÑrÚÙ"wªöwÝßu×äí5òx0çûg²äƒCKÑþýïoZóv8ú-Ð/s‡ŒE^üíš–Åš}ýÑ-ƒ¯Ì<{XýêW?>vÓÍë®8üĶrÙ ¿Û;Ý¢˜ñá%”¿c\¹%Wë „£ßNU®¸£Pç/kÕšSæ_CVÔ¸õòwÌ|YÛü]cö-ƒëwÜwxobÑêí'uü¹U¨xèÎÐûgkí‘êi¿D·è»3X @ªÚóøžÇ÷<ž¼½ì°\³³8“%/h´ó¡…· 8ôú±[b6ãƒÇÆ-¯sãz–]÷ÖÕe.™ÇXöMø1ÈɆn™÷×ÿ,_/ܲ«æ‘Ï_KúÐ鳫ñÑbóòäiºnzŸß6$CÒ¯›N+Q1ïΤŸªÖ,ÿäÎÖ"Õ9Ò~¹8]¸ap†óU²¸¸¸¸¸8‡a9êfÜ›þŒ–Põ•ü£r¼Q5Èä(ô þ}Þù9ø#âøåC ¡û§|µ9Ïž£Á‡A|s®·ñ‚—e-p˧ñÕ[\^óÔ#‡?Vó›29ï}f½•ûV×J{xg\ܰa?lNÉ[STç™ÿßöZÃk ¯5<ÿ!¹yÁ¼`^ʇ‡Ãàk]3èšAõƒúAj¥Àì)Ò‚ ¥ûgÌñ Z½eþ¾§iÛJMÏ·uÞÞ}ëö?q$q]Üþ©GÞþ­Ó¾ÏÕÿ~ßöÁ ?ï½þXÃã¥Î6^¶$Ç¡Ø5Aµ :õÈ2ŸåÌùÅ ‚àÉí÷?¶ù,×ùyÏ N ·†n ÝJÕGŠ@Zø„Òƒãg¶œŸJíúÛ©/m_’}ãË37n¯¶/ë‰ò¡„ ]5hÁ‘ ‚ o1rÙŒ3ç«sIáçsõsù†Wv¿x®·±Àç™seÜTûß# ·Ëúl¦ï‚×ÎYƒàsÇܹ75fjÌÔ˜‹âà &$Øå›5¹ÖäZ“ëñŸxüDÒö„)Çr‚ŽÁî?»äùÏï¸'á™FÏN‹ýõ…#]O”ÝyéUÙ¶ÇVk:íÒŠyËTZ›ç½l·]Ñ+פ,»ŠÍV5vQ† é¦Çä^}׾ʇ: 6ç>Þ~ßá½ÇŠ ²±ÿcä¶Ž‡úÛ¼T ‚ô³bÚ+ßú((sæsøO“‘ßE¬Øs Ï%<7®Ï¸>ãú Ë9,ç°œ)ùT‹}-öµØwãÇ7~|ãÇA“ IÐ$uf{Þàê‰Õ«':\.6—Œ¿dü%ヂ‚’¶oérhͱg‚ ˆ ÿ¹%¿²péôM{Žô;Ñ4ôÈÝ ‹/ÏóõÀÚÕ¦^–/ϭ÷,¨Á_‚•ÿ÷ÝéAîð§B¹‚¡Á©³ík*&d9rYÑ [û?Þ¼êþ}‰‡zAŠUÏúrlëßÓøèÈY˜ÃêœìÀò»¤öÔßSOýþ­û·îß:ü6ß g3øÑﳞð쀃; î08÷¤Ü“rOJý™{²7©*÷»¹ßÍýnòößZì­q(Û™,yqúÝ%\þºýß˾Qèᘠ1ãc ‡¾ÿýþ„ß œ:ÛþÏmknÿ.%#Þ²jõöçÂ__ùhî¿f9koF>ó:G«pèÛ{Dï½G”œWr^Éyÿ‰~O)ú®»aÝ ënèÚ¼kó®ÍÏWô& Ueï½wöÞÉÛgïÜ>dßcg²äÜ¡L2|þzæ?©têñL:øËÑ]^Zô憇SgÛÇfÚxÃîÝÓ*m)±wk¤1£ë¬_²+ßä›Üók¸¥S•+î)À>]g^çh¡oR`RU†*ªd¨’÷¥¼/å})iûÊŒûVîxü›Ð÷¡:nÉÕo/7GÛð×ÏŒý±Çúé_|»6ýއ6.?pÙ‘Û;îlóÜ‘ÛoOXúâÑ%ã7ÞyÝÒ ‡–¬]S+aÌá)_˺’ nQvè˜Ü?m ÿòÏæ›{_Æçš®›Þç· =®ÿ©á†Îßݼeîžqæo?ï‰Â?d[wKÛŸæ®X31<¾Z³ü“sT¸£Ýw­9|æ•×6\ç¤íÉ÷Et‹¾Ð÷¿þ}ù@êkœ¿qþÆù? > >ý¯öm÷ª|lD‘YƒLùOw™½FUjWüè¬{·-KØ¿¹Ä¡kŽ‚ùÁºÿ7 wCƒÖA´ ‚à… ~ ^˜ßêŽcå{6h7õ¡_ïªyäóÄ׃ÞûÝ”_*N~KÝ+—$]Ëñò¡„Ð}Û;îìÉpK\ÇaÁ›Sr‡î ¼Õ×\6©YËé«V¾úþÐ_Komþ~ðk°5êY‚tA þsot‰ÙÞ‰Íðу7+5¬üÈqÁ’«Î¼æáÚAðûÉöEtoÿõNßy¯Ï{}^þsJÿõNßæ¹›çn„ÿ¤aîà<¨;¶îغc“·ÏßÑ#áí?·Ì¼3cïËøÜæá‡®9šýÉ•å)<¹Â%qWe혽z†·ÒÍÿ]é§<;³uïÝ£Ò3Å?ÝUôÞ†UÞ¯úÅ×—½Ž~‹Ü›eq¦ýÙd¸.]ßp{v·ºúíòæ|äàÐã¥OŒh¼£x©<õòý:ÃèL¦{:æ…ËÇå™ùŽÎS¯*\¤Ììaõ«_ý·òwŒ+·äª³õðçHµ´/.tÑ}§o$îà<¨T´RÑJE“·ztõðí M‚AÞ?¹äp\7ì“nÿ¿ètA°àÿ,‚¸—† ûá‡öñe[º>>øÿÇ«qqîùá‡øø-®ÁÄ“-ÿòq9Gf¹#ˆ ‚ H·,&GðÙ‰ò¡„àþSLâþß ‡ýðM||‹Ï¯ßýqqöü°òùø o}¶¢ß¤µ †¥t_\ˆ.ž;}#‰ …B¡PÈ·RÕÞ`o°·Ø€bŠ ØßgŸý}’vn|OÛÊ×åh”ñ@útqqÆýðC¸ýì¢g"ü^á 5ƽ²ä¡´0·Õwíkvèë*³¾n²ì¿æžU¿Že;~¢xëQþ˜´7{—ì]²wÙØ~cûíƒ\A® ×…x(ýW蛂{|Ãþ+ô½ îñ=5€à|Èä ru{¸ÛÃÝNÞùí7›¯ÛÓ"-OÎäí»>¹PŠ©žÿ©ÿý^œwN €à¼iR¼Iñ&Å»Åv‹í›´ý© êþžîîÇK¼‘w]Òöð}®I[þó˜åTžC¯ãKÞôlA0÷<Üû›+ü°ºÖ¾±‡v„~O·¿À‘¹'ùxðC°î© zýž.~òúƒƒÁÁ´´x¼sJ€8o ,t°ÐÁ*骤«’nA®¹üç>Ô½µŽ•:þä7ïüv£ n þn?É#ŽƒÔ_/Ÿ‘³q–ü›ÒŒ9zÞêv°bÏãëªtüÿV#¹7î°¿Z¸žIÛ«ì­²·ÊÞB' (t"-!BßÓåМg/}ðÒ/}¼½cûù#×>vêÏ&}Cp*Ù´ ®ßõ›vÞII¤FªyZàñÎg"& …B!ßV8oŠÅ‚b¥§—ž^zúÎëv^·óº¤c Ü\¹ìÛµ+T&×°ä Ài?ˆM}‘¢ñ|?æû1ß«j¯ª½ªv°1ØlL ³ý¯;}S÷†ý×¾eÜ›œ;€8ß6ƒƒ§ž:xjòÎ&Ûÿ½ð·'o=žxâêä½¢ßä"Õ*ì?uNѯ;}Ïw6ì v»ên¨»¡î†uÔYP'içßê_™§Ðއ^s{ñ;”êÔz¶\ÞñÄãîö†çÞ–SG¿ášˆ~q0¤S¿8©1n®\öíÚ¿*“kØ…²uÓËn]¹·E“íÿ^øÛ“§é]¿$å`.HáÈsU½UõVիжBÛ m# ǨU§|}é«?Þ½³ÍþÂÁWÁ†`wÚ˜¯‚ ÁîðÜÂóÈðPºÆOüljBé¦Ëu<ØÒåКcÏüÖboCÙfïÜ>dßc+3î[u¸ãé®7ßù~Ì÷ã੃§žZ½yõæÕ›¹ƒÜ©|2 0Ñ®XP,(6¯ë¼®óºöèÔ£SN r-ȵ WZ›f•½UöVÙûÒ/}ðÒ7ô¾¡÷ ½ƒÁÆ`£HÊ €¸èlͺ5ëÖ¬c6ŒÙ0f럾ú髟îﳿÏþ>©9‡ì]²wÉÞ¥ÛÃÝîöp“âMŠ7)^è`¡ƒ…Ú;œ 0;ŸÞùôΧmZ´iѦ)§4žÒx쎱;ÆîØÕcW]=ÎdÉy_ÊûRÞ—çoœ¿qþºc뎭;¶RÑJE+Í÷f¾7ó½©òœ]`8mqqqqqqI[&$LH˜P=±zbõDõá|I§ÑA %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQB %ÀQ"ƒÀéúèíÞþèíùßÌÿfþ7UëU­Wµ^Ñ¿ýKÑ¿¨ çWL( …B p¡óh€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!ˆ`€(!àÿמÈ ò·¾ÇW`BL`€  0!€&0À„˜À`BL`€  0!€&0À„˜À`BL`€  0!€&0ÀDE­MÜ×5¼%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/window.png000066400000000000000000003247161431412030200247150ustar00rootroot00000000000000‰PNG  IHDR@«ž‹µgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTTçúÿ}““b¢té½JGÀÞ+좈Š»‚ö^£Ø;V¥ˆ`ïEì‘>¿?Èw=æ6¢¢3ïWÖº×YçÄœ=×þD/îkö½«‰R¡%éÀ¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á•ìº ë.¬KHKHKHK:t é@‰[‰[‰•Á·q.ñ\â¹Ä„˜„˜„˜¤ÓI§“N—d—d—dS|gk­u¶VBdBdBdÒ½¤{I÷DcDcDc¨ ¾´)iSÒ¦$ÌJ˜•0+)')')GtQtQt‘ÊàÛH5L5L5LIIIþ-ù·äßDE¢"Q•Á·‘"J¥ˆz&ôL虬•¬•¬EMðMX3¥fJÍ„f Íš%Û$Û$ÛP|K§:žêxªc‚}‚}‚}rãäÆÉ© ¾¥ä[É·’o%h'h'h'û'û'ûS¾/Àøˆ·5ÞÖx[#)/)/)ïï¶·ý»­C{‡öí徘ü4ùiòÓzMî5¹×äíÊÛ•·+?hû íƒ¶ÔÊöÉöÉöI\”¸(qQøÔð©áSí:Øu°ëðå TôWôWôïãÝÇ»÷Ž;ìXÑ*£UF+j޽™ýfö›Ù ¦ ¦ ¦aÑaÑaÑ6ílÚÙ´ûò*[)[)[üðSÀO»~ßõû®ß6~Øø!Û4ø¬ëY׳®Ÿ8~âø‰ã“2&eLʰjeÕʪ՗'Põ'ÕŸTêß/¾_|ThThTh¦K¦K¦ 5Ǩ¥¥ß*¾U|«‰LücâM,šX4ùòª]V»¬v9p|àøÀñ»³wgïÎ~dúÈô‘)5LJ^÷~Ýûuïc…Ç Ž·o=ÞÚÌÝÌÝÌý˨¾^}½úú Û Û Û½=ööØÛã±ÚcµÇjÔzµîÕºWëŽî:ºëè®±ÆvÛÁÄÖÄÖÄöËXgH!u† |6ðÙÀgûÒö¥íK{RíIµ'ìÏà?^Þyyçå8ÿ8ÿ8ÿÑ+G¯½ÒÈÀÈÀÈà˨å¢å¢å2xõàÕƒW°=`{ÀöIÆ“Œ'ÔÿI âKÅ—ŠG~;òÛ‘ßBÞ‡¼y__­¾Z}µ/O öÏÚ?kÿ<¤å–CZF/‹^½ì鉧'žž æT.~ÀÀdÏÏžŸ=—Ã.‡]®F®F®FrßÉÄ5×L\s£ÑF7q_dÇ›.oº¼é²½h{Ñö¢ÕToPý{%0Ì8Ì8ÌøfÊÍ”›)ÜÙ‘e˜e˜e¸õàÖƒ[Ú_µ¿jõ{%0<*<*<ê¶ÏmŸÛ>ÜÙñªøUñ«â̓6Ú<Èf½Íz›õß+SͦšM5»sðÎÁ;¹/²£t£y£úFõê–––ß+Ó7Lß0}Ã=½{z÷ô¸/²ãEÊ‹”)뎯;¾î¸™‘™‘ÙwûI$B%B%B%}zúôôéÜÙñ|ïó½Ï÷®í¶¶ÛÚnFFFß+³Cg‡Î½ÿðþÃû¹/²ãÙÂg Ÿ-\³:guŽÁƒ%K¾}ö.*\T¸87snæÜÌ § § 'î‹ìx:èé §ƒV†¯ _^¯a½†õ~û*ç(ç(ç,h¸ á‚†§>œúp*÷'ž¨£-¶<Ú’Êe €!ºmsÛæ¶Í€ßü6à79‰Tçzëu®GÅDÅDÅä?Ê”ÿˆ»&MnúÝô»é0%`JÀÉL öí+ÚWözîõÜëY°®`]Á:îš4¹>üúðëÃ{åôÊé•#™ Ô;¥wJïÔþøýñûã Û¶)lÃ]“&Wî†] ëÞ¥{—î]$3†{ ÷î±±±/Ì)Ì)Ìá®I“Ëá—Ã/‡wîÝ5Z2hzÉô’é¥ØÈØÈØÈ¢ˆ¢ˆ¢îš”Èå‰ò.޹8æâ˜Î¿tþ¥ó/’™@Ëw–ï,ßùáÈG~(V-V-VåÖI‰ Q†(ã|Ÿó}Î÷iß²}Ëö-%3vØýa÷ÇÑNG;íT¼¤xIñn”8):):yÖë¬×Y¯Ö3[Ïl=S2èTÛ©¶Síã뎯;¾®ä÷’ßK~çÖI‰e¢e¢eiJiJiJÍ4?Òüˆd&ÐUÃUÃUãÄ“ON<)Z2´d(·B€8À2ê¶émÓÛ¦mýÚúµõûÌD¼j¢R\€§¥Q½óßx 2ë¿shÓí6k޼n=Ä¡îIͶqŽSâõÛþ਽±¥šÝ¾È6¾õ-Lw¼h˜êû^Ï:}¾¤ܬ²Ye³Já£ÂG… ƒ«¤›Ê7•o*·ü­åo-?ókSt"•ëõ i?¬Þ¹q!-Í–ì|±ÄæpœÍÒiæ'­W99Έ¯µb–cÍhÿvë×. ÓµŒß·Ï%ÙÞ%NcëüïK¸­Å¶ÛZÍ/š_4Ÿ»Y]{}íõµ×Mv4ÙÑdÇçe@)Vëx½t´|.tèmÔ­û¥—æCô"ò¬†Œñ^g=g|ꪦ֚ãú¬gùÓˆ”ù¹&Gú5 ­··FïìÚYŽ6_’À!;Cv†››s\j•t%öJì•XOOÏÏüjÔPýJ– 2»\ÑêÔÊ`¢¥¾j×+‹Úµíõhí6“}—nìjº OÿõMMͺÿºü™qïö§éœñÚÚ¿ö«úÇUß}IwÏÝ=w÷ÜâØâØâXîfUtiÄ¥—Fx¤x¤x¤|^LâÕ{¨´ ªeõVoÍâ:ž+͵£ú5 °•‹µ¾âàrxÛ;ŽËާµIw¨ßb¦ÿ?|jXÚ©î _?ÉCQçúÓ/Ià¾ûVì[Qb_b_bÏݬŠ.h_о íÒÐ¥¡Ëg>]d6¡¾ŠJô@÷ΖzgŽN2oõp¶–­ÙцËþrxrƪ Ž«G¯häP°×¼;v^«O†ën™ªuÓ]ÖÙX¥íõ)ë ÚyLè³\ÛVo‰M†ÊãÏL¾¹Š¹Šùÿ#þGüEDD¸›UQJJJJJŠyOóžæ=?/ Öêd©¦§ØÐß³ÌÙ+ÑüòžÎÍëÚ†«Ù¦ÃŠ“§Û;î8®Þ懫û6¿jûzeˆÏ,¦Žb7Ôà¨Ó€º!µûÞÿ¯†¶†¶†ö1“c&ÇLDËEËE˹›ø`ÇX†d×È®‘]c„Ê•*Ÿ°½®ñ‹JÌJŸ†-¦Üšßõº[ ‘(0Ð×·²Ö÷aîÞ]ãâZÇ9´ ØgÙ®Þ§wùBî…Ü‹¤çIÏ“žs%_Öâ¬ÅY‹ƒãƒãƒã?á©‹FU‡¯n9q¡EÁí­»õÝšŠD©©¾¾•µæª&ÔðþíˆÛ’Söïû·¹SïS~S S KIHIHIàþJ¾×5^×x]#¨kP× ®Ÿp— ôo™š˜¬(­ï°iÖÝ%nn‘‘©©•µºü¹"öD†åÓQ+/«{ÂsF«;Ÿ0ü_ÿÕù_ZDZDÏÃU/ƒ_¿ È È È¬ø]Ö=h¹N¥q¿?Ö7¶óˆ­åëÉ“¯]³·¯¬u¼ß[Ãq«çØns¾Î?¿6±:cuÆžs?ç~Îû+ùžÇ?ßË¿—/ÿŠßå]êž«ýÏú¦¾VíïÝðâ^½rûÀ7¡}ª7¬³©åh»—›†ê´ù„¯‚Ý5¸kp÷Bú…ô éÜ_É÷¬Ú³jϪù'ú'ú'~Âs?“lV©·ßè6%Å*1=kßDw¯Êí_g³öZ­áÙtKSKSËËÁ—ƒ/s%ßÓ'¦OLýêøÕñ«Sñ»\»¿Ùßö5Í ‚ŽNmî8iî”ýƒ+·lpyɽ¸çÑÃ/Ï;¤yÜÙ®ÑþŠ_›ÕP«¡VC¯>¿úü*? W|ù<òiß³}ÏöŸ0r3Ü笠æÛY4·‡aÇå¬vTn8Æ'9ÆF×ÿÈÒÍF9–1Mj©gWüÚì×Ù¯³_w£Ã7W›?lþ°y«%­–´ú„£Å}Sô†Ö´m[“uÖ%/woæQ¯rûÀç?ô\æ9}OÓæê¶Û\1œ£õ¢â׿ïïkû­í·¶sQŠ0ˆc,ŽÌ=2÷ÈÜŠ7R C=4;™Ó¹¯Bà •ÛÞU|=yªm±ãöÆsôÕë\®È5H6 -Ç8Ç8ǘ;.ibcc+žÀ%cjš÷ÊÕNPð®Q¹Û|_ã÷¯üÓÑÆ{›““ÆÛŠ\sðÆàÁßÍ}7÷Ý\9péÀ¥—*ž@ãÀÞuÇ™»l]µ)±[ånóU|µº>vöò€ÚƒÍ–ÚëWäšG 1`Āܻ¹wsïrÇ%ÍÞŽ{;îíXñ¶Ý0¥±ç¤¶}í *w›¯âk¯“kšDê÷²k¬jR‘k£>F}ŒzžJžJž w\‚‹ŠEÅ»w%îú„‘Û?M|þgi]°¯ß¥ïÕöluÞþ¨ãñºµ+ô”ü„è Ñ¢óóó¹íä±è±èñöºÛën¯[ñ®Í ëe™RøæÔŸ®ß«Œým‘½«í^ÓCj*rÍ“]'»Nv-ð.ð.ðæ¶KÒÁ¢#¢#›ûnï'Œöƒ'†÷uݱærʘïÕZŒ´[¦Ò®ÞY£©¹æ©»§îžº»Ð©Ð©7¶J’±¢±¢±ë—¬_²¾B#7ùn ä&uZ<ëiýÇa3®êÙe|¯>°ÛÄeyÆvš«êÇ(-ªÐ{ÓkEÔŠ¨U¤V¤V¤Æm— :"‘Κ}kö­ÙW‘û¨j®-¿cËäÆW¬ÃJöíSô½úÀ½FÍÙî6lZ[E¹B'vÌí<·óÜÎEéEéE|)P¦1q €¥VÁ†‚ BÚ†´ i[‘†i¯qóA¶» Uú-ö1þ^MžÐzÏÈßÂíV/;óͺk*òY.¦]L»˜F¾¯ü1ùcòÇ 5j4Ô¨"wíÀóµìÚÆ ñiý½6û„Ö;½wG»èV»…–ÎÞŠ|–+»®ìº²‹ |_yNyNyNAO‚ž=©Ð³æG^ZØÂuæš§²¾×fŸÐêà1-ª©Vc—ûMnWä³\}}ôõÑdàûÊ}œû8÷qÀÜ€¹ù–Âx¥¦r÷zöø§š‰IØoW¼í~¯Í>¡uˆkÌ[˺VMšÖÒøÈ! 5j(Ô¸etËè–ø¾ÞMy7åÝ”žš=5{j–×ÔÕÓÚÇ™´žê`VÔ¸ÏIë¯êìjÙf˜a ÖÕò?‹ÚpµájÃsâÎ 2ð}åÔÊ©•S«ë® ».,ÿ®i‰4Ž)9¶aùP‡#Å™§ |ÎHZxåâ¶T—c-´Ý¯i~äOa­wZï´Þ¥{¥{¥{‘ï+;,;,;¬CV‡¬Yåß5Å{uäëFX·_ke'×kמ•´>Ð.nꥭNêùÖ#\‚Êÿ,úÃô‡é{°íÁ¶ÛÈÀ÷•u+ëVÖ­Öö­í[ÛäHÛÓzÓó4654=öìêYûê’Ö±§“ùmÃbç…jÝ?òzˆk&×L®=,xXð°€ |_¯5_k¾ÖlÚ»i尿?ræ_õ"•ÝI)í5œüDšÊ¾ŠÔæøzŸÛÒ)й‹ûu[êùSØZÏZÏZï±õcëÇÖd@61q €¥Ð —./\¬T­T­T?ò„ÇŸz–Þ"Ý@U_%IÛìZoÔéòÊuB¥ºjÏ)ÿÓí²cÈŽ!äáÛ{¦úLõ™ªñTã©ÆùÆú:½É]­äEKRÇøšKÚfŸÐzõÜöù.y¶ÛM÷«uøÈ;2wîÞ¹{'yøö_}|õñÕz·êݪwë#OxÜpæo7ÇÈ9©û$m³Opðö4»­1*êf(ÿÓí?³ÿÌþ3äáÛË›96s¬¦Š¦ŠæG^¸à÷ÛÜ¡†½'O¾vU’¶ù>² ¸pÏlóGu¼ôý”tÊÿt/¼pðyøö2ªeT˨¦â â âð‘N©_ÓÆ6½«JXºž›Ò©«s[½jªã•æ—ÿéŽÄ‰=Â;ª¿ƒô ô ô Š|])jϬ\[ªÒ–®i9ëo58ªÕ\ÃF±QùŸîøßÇÿ>þ7yøöîÄÞ‰½[‘ZôvgîøªÒ–®6OÃä#Óä÷([«ì*ÿÓ%Ø%Ø%Ø‘‡oïæ‹›/nVèÛîî+š¬*`éÚoÍ–'fò­\䯖ÿé’O%ŸJ>E¾½ë?^ÿñúI`¬q«_í}ªV˜p·]Çgùt©î©î©îäAÖ0q €¥Ê½æ÷šßk^~Ô<Ñ`»fòS™žU«Õ_7?o¼Êú#ßB§=O{ž6Ùø6n¼=òöÈmªÒ0V«ðù‡»yN¯Z[~ÿY_¥õõÚP7ü‰Õ”ò?ïb»Åv‹Ù|ùFn„Ý»VþÑLvnÞèbƒY‹ $V­-¿ÿ¬–‘#R盜ï734½üÏ»Âd…É ²ñm\|uðÕÁåßÛ)­öÔqk’ÒØfpÕÚòûÏju­©½FÛ·S.üUþç]S}Mõ5ÕÉÆ·qÉõ’ë%×òïHÏyæºc³ê÷žìµ·êv€%çûçùþ¸ÌÃ+ÙüJùŸwý‘õGÖ!߯¹Wç^{Uþ ˜Û.®ÞÊ7'oiX«êö%†§»úÜ^¤;*ÀìqùŸwKç-·t&ßFZhZhZèGÞ^¿¥ÑÔNKÏ.ŸQuû@׸µ¿¥Äîôß8Bë#_ô¹²ãÊŽ+dãÛ8õîÔ»Sï>ò^óüvu»M°9»ÀvhÕíC/^δÛÔì§üz1åÞ=¶{l÷Ø’o#±Yb³Äfåß‘‘Šv; 2r;ö=ï­ZuûÀÂÁý¢}ܦµteòÃGΙy`ä‘dCv0q €¥Ä-Õ[ª·>ò¼ïªyÞ½,ÎUõ¡¯øš>Ƈ{ýºÓ”/* ³îîî%*Š IË×píÁµ×|än·ÃºZ&WᡯÐÑ{ÌÜ–¨å¨þ¬  ôÙ§§MO›Î±ä_ÑåˆË—#>ò¼oÜ€)«ðÐWè€h눠¨úr£ä;È ¾ÛiŽýû9öääë¹ Aþ‚üGž÷U›aØ¿ }Öà„m‹÷åö…¡ C†’“¯çÌÈ3#Ï|ä X;Í›.°™'}}à•—~Ç\>ò†ãe[—m]¶•œ|=)1)1)Ôž#g;LúúÀK5·Dº|d·zßê}«÷‘“¯'ñZâµÄkyÞ7u„òü?¥¯´ûyʼM-?rêÒªu«Ö­"'_OüåøËñ—Ë¿ =Æ® 6¾+}}àëæåöÒ÷p““¯'.*.*.ê#'£4nmmŸ/}}`Êž j|ä«05wÔÜQ“œÈÀ Žp•wÿÁý÷?2x;eÐ~µÓékõ>\߇8{wîÒÄd¿¶à³ VVVd¦rÝ}x÷á݇9~gź3 †Hߖ߇k®JÂïÞ¿µ·ðñ¯;Bðyô{óîÍ»Gf*×­·NÜ:ñ‘g.Ï„ßÛ8@ú¶ü>\]þ\qðÄB»µ‚Ï@/鿤ÿ’þd¦r]}üõñå'pà†=;Ì_Hߖ߇ëøvgjØ/rë¢&ø<Üʳ+Ï®òfz¿—åÒݾñëýÎë½§“nw S¡:DÖŠ¬Y‹ÌT® S.L¹ð‘ÓP®+ï˜çê)Ý}àëyG³¼æ5ˆ² ¬½G¨›L7™n2%3•ëÌ…3Î\(?êZ»NJwØ fÉ”¸•"ý S;¡:l×Û®·]ÌT®”‚”‚”‚ò8Lý°åQéîG_Lze]¨)2ì¥t@ðØÿü¨ü¨|2S¹E‰¢DQù L·õ_à®*Ý}àÓe=<í Ôz*×|AÒÖý[÷óu@)ÇÄ1®Â^‡½{ý‘ÃNoýÒu£ë énõþs$`Xÿ[>Y£úÛϪ(T“ 76ÜØü|¹—ö/í_Ú—ŸÀ;/öèº-”î-¿×â›§5}NûWE¡šlë»­ï6¾] ž%°Ð¢ß?>–ݲ͆èd¾:ã`ÆÁ òóåD<ˆx xö†|sù_ä:=iëãñRvúÀ‚ZÉÞ¯;Oi|\[ðß͸qã’Ÿ/w/ô^è=ÁŸåO)U­Ñ@gѶʲÓºÜ^í›dVç˜c†k„*6þl<_ƪ·[ßn}»µPU_jžVˆóWò]#Ùé'Ÿ?l{Ó´•g·Ú‚oNú=é÷¤ßÉÏ—»ž=ÿz¾Pë©å)~õ ÷o^ýe§|WÐw—÷Þcê-ÒüBêiíÓÚ§yIœÔb âWIÅ–Å–Å–ÞÞÞBmͽgþ£Üÿ';­ÞÖG=|=ÆX;8Ôü>xŠMŠMŠ Yú/8^p$KŸ'^þ¼üy† 6ªð¨:'³­egËïÃ5ìÚÕvÅN:kh^|&µÖ•ZWj‘¥Ï“÷KÞ/y¿Ôͯ›_WpãïÙ¼žƒ=ËfX|£ÿ*ŸÓ=4Íîé>“w=îzYú<¹írÛå¶S¬:YurÅÕ«-§ø"ãÈuÏw²Ùå¤ú,ñ›Üdšö¡Þö¸íqÛƒ,}žœ‘9#s½—_¡ôD¥uƒâ¥ÝŽÎ•Í>Ðuäšú§VÔyì8ÃÛKp¯`ù½å÷–“¥Ï“=({Pö ÁÑïrM……㦎±¹!›}`è—FÛõ0]áù öBÁ½‚SN=8E–>O–s–s–³àèwºÚeÿ·ò}–7ì"›}`þˆ€|ï4ï‡õŽÔ©&øÉ3™g2Ï%éÃÄ1®’¦úOõŸê/¸¥eÒe‘«¯ŒŽ~?\ ¬áûgŸ_-:ÔûM¨V/·¾Üú’C`>Ù¤³“ÎN:+øÜùˆ(·ŸdtôûÁZ2àôŸçþºÍýu¿¥’¥’¥B¢>Õ¥1Jc”ú;?»Ûž­2:úýpû/m­SJæÌ¾7…j•Ý)»Sv'õ©†5Ö|XsÁ§~«nÕS6·üþ³ýWxÅÌn¿ù¯ÞÝÕÿªUÎÀœ9< ÷É‚zõ ê%TÕ‡£ºzÔ¤,LêwÕ§m£½Ø:Ë…j•Û!·Cnõ©ú´êÓªO+¡ª>¶8ØÓc;}`ÁªäE>5=þ°[©^ÆsHJã•Æ+ÏSÈSÈS QŸà½è½è½¿¼¿¼¿¼àWß/Ò;@è’³z~ÒÕˆ3,ÖŠWIÓNÓNÓ.}þúüõÄê$‹’EɶvØÚa«PÇÈ'ÿe#G8qí9Ûçu—˜)»ŠWI?A?A?¡ð—Â_ !VŸ`€h€h@KÕ–ª-U…øjR¯L¯¶ô¹Þ}O{+n­í¤\ƉæFæFæFEEE|Kª0q €«˜ÔÌÔÌÔL¡Vï¸u›Í·iõ>\ Úôkæ]l«qSÕA¼bm¦µ™Öfš(C”!â0ÀŠýÌ;.y\ò8¡&,[ÝÚñ&[~®y’\½·×Ÿ«;L¹»xÅüºøuñëB®*îDƉŒ‚{Ú¬ 5Z»Ž-¿ÿlÿ-\Õ=±ºBQm×âë!ê!â4èOqTó¨æQM¡ÐßÙÊ\•-¿× ³ÎYØÎUôT^/¯-^±þ#ûì?’\U\¬Q¬Q¬‘PÏ_ïtÓy ½ß‡ëÛ˜>W |4øhðQrUqûÝÿëþ_…êyyõÖ.cèý>\ßì8¾¤¡àWQCn„ܹA®*n×Á]w žnb¿dFèŽô~®ÎrKW½#T± I’&$‘«ŠÛê¼Õy«à“—C-bWX¡÷ûpzJËFð½ÔSþžò÷”¿ÉUÅ­Ÿ»~îú¹Bõ¼[à¯évžÞïÃõÙŠžC=‡ U,B%B%‚¯ãKÀ€tˆÞ½+zWé¿ÅS·LÝ2uËëÆ¯¿nLe>à*#¿I~“ü&BËœ6îJ¦Kiï„ÖÇÇzôôH|a›ýmö·!cå{¿òýÊ÷‚ït\ÔeÔ³¶ù„ևעgyÔª^ìŒØ±3ÈXùÞ{wìÝ1¡oîý`¼1Û|B«ã ¹M÷ë Uïè‚£ Ž. cå{»÷íÞ·{…jØ>jÚMƒ,¶ù„Öa³X>ªÞÉ “A'ƒÈXùÞ„¼ y"Tãí³ºH¿'´ÞÒéºË5[¨z§”N)R"cå{ýûëß_ÿ.TÃm7f˜ÚüF¿'´^›·ÃÐU°L›“6'm+ß‹Á/¿|õŒù­¡º³=è÷„V»£S¯nuþòÐùë篓±ò=]÷tÝÓuB5ì–²|¼qKú=¡5hqÔ%ó‚_ʾœ}9›Œ•ïÑæG›mÜO(iÕÉ~$ýžÐššÞ±ZƒI‚g(Þ¾~ûúm2&U]qÛâ¶Åm…~ÇfüyWóšÿÓüŸÄ£oeR§jDq`ÿá>{hìÊ_c—´²²<:;gA΂F ‚fv›Ùmf·2ŽYÛk¹¾öèŸÓC}°ÁWþºô¼}v‚߀Î]˜»0w!I>5|jøTñºÕŽ2ïå`âVc­èt|坿»‡,›5G(y½ózçõ&iBÆ?~üxñº™¤yŒ­Ýj²çµ{m6øÊ_ý:Ï-2œ ”À‚ ~,ø‘¤ é9Òs¤§xÝÚZî®ûƒè\`'_g:½ò× 5™X nÿ“4!ƒ.º<è²xݺTkòL;QTšìëC§Wþúý¤Æ–æâ5T{£öFíMѶ¢mEÛHšûû{ñêÕ=é9»Õz¼Š¬ÆÞ½6]$^Cݺ-t[ï/Þ_¼Ÿ¤ éÐ- [€xõLíb®å@W‘µeñ^z±eôÒ£LF™Œ*™U2«dIÒ±oǾûŠWoˆŸÍsý ôxY#Ö¹)™Š×ÐvˆíÛ!"‘Ȇ¤Uu €ªîÃgËÇ0¸âWÏ»>ïú¼«PÜïXÿ5Ü-f®âkç÷&öÚ3Ä+9ãüŒó3Γ7qOz>éù¤§PÓìkån˦^…ÖâÔ_ŸÖ^·´‹WrÞÒyKç-%oâ2m3m3m…èx{ÞÖOÙÔ«Ðj9=u»z‘õ—‘â•\jºÔt©)ywÿòýË÷/ à¹í¤±uC6õ*´ú\h¯[_ϱ³j¼x%WÏ^={õlò&î®ç]Ï»žB |¦Õ³¡g{º»Š¬%ù¿øÖpÈÔʬ]F%×Zhý!ò&îæØ›coŽJà‹G®zrL…Ö¯ÓÁ>,Œ ûª–ñîÆ­¶Øz€¼‰»z5ôªàAîε–.;z“¯"«ë‘µ¿¦Vê 9Eg€x%£ÆGOÞÄ]lw±ÝÅvB w2MÎ&—¯"kè‘ËGíÖ¨4WÏV(ã\¢räÈ‘7qgÞžy{æ­àc 5û¼o¸¯"káýfûè+^“-÷L¼’‡†zh(y«êU]é@·t¸+Wa ƒËǸ ³o̾1ûÄÃÞÃùc-Ú¸O>zAÖñB¿e¼ xð*€Ô}h˜þ0ýaúⵚé¼ÑdÛyŸ|t@´‡à!ŠY%Y%Y%¤îCz è5 —x­ ousÁ–ß§ÝxÎõ}ó…ø¶ïÛ¾oû’ºõ êÔ+H¼V­—„îÓ_ÀvÞ']ãpmËX¡¾[þnù»å¤îC]ܺ¸uq+cd¾Ò;Ѳ}ݧ®7b»º®Jàûeï—½_Fê>ÔæN›;mÊx‡èú]áó¬Ð×}êz%yÛI—#B Ìï™ß3¿'©ûPß&¾M|Åke¶råt^ÿñéÇA·ý;lóTÁÓ8r r rH݇<ÆyŒó'^«®%‹Vu§¯ûÔu@ûëÌë %°¨uQë¢Ö¤î_ÏDÏDÏÆ9Œs(#û¶èmçC_÷©ë©Sío8¥‰×S>P>P>°xdñÈâ‘D¯êb H†Á•…°D{eðÊà•P ³'ôéÙЉîóÖiË]™(ˆW5"+"+"‹ì•zîþÜý¹»à·McN¼oËFÞç­¡Cû•¯ê‚Û n/à 4ÿz¢ýDû‰¶P]BVUO˜ÍFÞç­z¾­’z9‹Wuùüåó—Ï'{¥¦Mèè>oíy¬U¾îßâUÝ´#hïDÿ×ñ7Æß(ãå rÆr=åF»®[“ÒŽŽîóV-;—MM扗vo£½ö6"{¥®´»ÒîJÏþ*ÿ¨¶W>:lâU9»{ttŸ·ZÔñm¨(^Û˜1/b^½Rçßwþx•ôäUÕ—ìîÿ§€ŽîóÖÆ³õk×¹$^Û¸®q]㺒½ª‹0 ­ ÀmÑäE“Mïü6ÖfÞ4m_²fýÒ{”×6ÁwaÍ;šw”ÎŽ˜1;B¼>ËÇŽ3OeóîKÖ—mâ̼þÜÖ..&S»Ní:µŒðMBfOZÁæÝ—¬ ”ý}(Cp[ÿqáãÂÇ$pbÎÄœ‰9âõé¤<ë×úGؼû’5dÿIëFB ,Ö/Ö/Ö'£:Œê0ªƒx}¶+4I±Q¡—û’5ãQ·l÷—B ,1.1.1&Á‚'—ñÞîݳßÛÑË}ÉšÞaßÏîuË,ý©ü§òŸ%ïJÞ•¼#ý÷Üo°x•,uFê-H/÷%«ÃÀYÚ»ËøÝ¯®R]¥ºJ¢i¢i¢i$°{ýîõ»—ñ¬j/ý5~&éå¾d Þó£Å›2NxÊ0Ì0Ì¥‹ÒEé$°ã掛;n¯R|P[ G]z¹/Y/ÿågäRÆaøÖc­ÇZ%{U`@0 þT €%TqÿâþÅý…"û:¼·¯×lš¶/_G=±?\¿Œ#°bcbcbcd9E¶E¶E‚o]ÍV=þ´¡.›w_¾Qîj¥B¼ÂÇk|L¦¿TXX(øìïÏ+ÖœˆgóîËWm‘ÏöÄ+œðOÂ? ÿÈró5ò5ò5Ÿýýùü¶1lÞ}ùj¯Ò6¸Nœx…S¦L9(Ë |oÿÞþ½½à×ÔÂÖx/¦‹ûòµS3ã¥Ú†â>»üìò³2}ù;ÕwªïT¿¦f›ÜÐû=]Ü—¯-—ykY‰Wø’Û%·Kn²œÀì¸ì¸ì8¡ºXóÓ)À•°ª÷²\Ú ºx…¯m½¶õÚVYN`–a–a–¡PÃj^iiwˆ.îËWýFvµUuÅ+|ëÆ­·nÈr_v~ÙùegÁ/JŠúoó¹H÷Ekq`__ M=Õ2F†÷ÎÞ;{ï,ûÒ €0 fŒ¯èB÷ Ý/thßöêµ§]«¬õ^M}·+âuö™è3Ñg¢,'0mqÚâ´Åâ•4ËÏNßâ{m“Ýj¥ìZøáõTõ¿[µw½pͯsËÈ–‘-#e9És’ç$—q`úö¥`Ì_Ñè)£§ŒžRÆ a UÙ°«´õU`o_/=;ÕyJ«Ëxεkv×l}ÿÇ.Cº éRÆ †[¸èIθÊ×§†ûZ©ÿ¡š®PÆ›sNçœÎ9-› ì—Ó/§_›òö!34v˜°aWi«b¤Zªàs®¹E¹E¹E²™Àî­»·îÞZ¼&CÄî´θ²Ö°ÃWÇÙå>çš•—•—%› ìÜ1¸cpO$öïëVDÿVYkqïþC|¢ŸsÝR°¥`‹l&°E›mZ´¯Iƨ£Ý/Krg5Þ§Ï!ÃðòÈ—œ«-2;uÖ'Pè:‹t‹t‹te3 ß7|ßð½xMœ-vОþ­²VWç†$ï|ʰ{q÷âî²™Àà oPÆÐGë&²Ž—œ°ättŸ·N²½¨hWGðu ÝKº—Èh-£-£-£Åkò²i¯a^0®¬õ½i€¶wcÁnAW¤+’Ñ?…`Ì_QÉ£’G%ßËÙ/ŧ v•»®Š÷aq³Œcx;tìÌ%°FI’‚[QoRúù,f\¹ëâ‹£š7ÿ\‰V‰V‰V²–À¢·Eo‹Þ úwgíàÓîlØUîj8è¯;ÃËŸpzÀi™ûîsáêÂÕ…«ýË»úÈþWÀ•»6~:¼y½2Ž <×ç\Ÿs}d-¿üZðká›-ç.g*èàkHçV¹ë¤•N˼ÅK~Yç²ÎeYK`ž]ž]žx54´Õ*ÌÝLÝåë&É=Uý%º£•{–^ó˜a½¦Ô¿w#hç*×¹9N¼k+™}ã¨C=Më¯ùõ5××\_#k ÌÕËÕËÕ¯†’¹f í³ôl_cÕÒ¤¸K‚xÍo§ßN¿-sïa}{åí•·eœVWŸ‰²‚$tMÒ4.]–tž¥ùXüs¥?Hþ@Öø¦ñ›ÆoÊI: ¨R»¿$wSÏ›÷Üï¹üÿþüuhYÿ^Ué»0óÔI¯ùÃM7=ÜÄ5` ƒ£’=ùõɯOÊØøë•d~G÷8›t_cMï˽Œƒ_†ý8ìÇa?ÊZŽy8æáñjõéô·Þ¾ï|`²”€o¿ßÝËí/ñÏ5Öc¬ÇXYK`ú¶ôméÛÊ8üÙ£ùìn lÒ}•ƒ £f¤í¬UÆv’ûd÷Éî²–ÀÛ«o¯¾]Ƹá¤À:vUwsM’ÀƒÖí °ð¯ù Ñ ‘ìD~½õõÖ×Ëxú<ü”³¡±=Û×XÏMêÔŹŒ§]ç‡Î*k ¼”p)áR£ ˆAC–˜dI~Oõá5—Ž~%ÿšOOÌiPÆ›€—Å/‹_/k <›6ÿl~‡?;wéIÏöU‚Ξø¿Õ÷Äk¾&aMšYK`JVJVJ/èissòýÀ_å è§ë™–ñEÀMÓ6MÛ4MÖ˜°9asB/èYûÄ·šåiÉ頻ʳ¿®‡ô[ØO¯ùÎ?vþ±óö¨`\Õ‡Á €%Ρû‡îº/µý[¸Ø™³I÷U4ïïï³^¼æŠ!Š!Š!¢\Q®(Wv¸ÿÁþûˆWãPÛžöÓ•÷ÕÝ?µÀ§³øçÒ²Õ²Õ²•µßw­Ûµn×:ñjXe½º©aOÉúV•·ÿþg-IMõõU½ ¢#¡Œ·`Z”X”XÈN›ov¼Ùñ2¾á¶²íÉ-’Ö;™O~q´Î\‡á^·£4Æi¥ÈïQ¶QÙ­:¡þhs÷úrçšë2xå‹„ÁæÝ¢”?üDôYì#§§nü·¦º¨º¨ºì$ÐKÙKÙKY¼žÏ·}$™à1…§rlº•v}ZéFÏ•«•vƒš†~JûlòZÆÕùuà”=#ÌïKèØõZwûº‚ \*Z*Z*; t4v4v4¯Cþæ~x_“ä>ª*¾¸t-IêÿÎG$˜Àç¢ç¢çìT3À0¸êƒK'QFb·Gî™’ÙöÍéë®aº²ŒwϦ¦ËÐ÷þìOØŸ°/#…ÃO¹ú¸KæXù€Ò8ùNågO¿¶H)çÊ–mÛ\HæößÔ½ß-ãÝ3Í6{ØLvhffVÆÛ×­‰Ii'AOKX¾>~¼ÆÛ_܆Vü÷@³“ƒ¢¦Ÿ‘̰¾;û€2ß~üòñËÇ/e':"‘N?:†E\5´{(ÏI N‰³ùÛXÍ5L-®âÙëœ8§Ð°¹$€=Þôí­ÝUüÊŸ·xÞây ÙI ª‹ª‹ªKC Ûý‹}’ˆm2ÍþÑ>7Fî²{\ÿO`‡=F%uSßmì;§ákÉì+Û(ê·¿òWA¯‚^ÉÐH‚ S|$³ƒ2بsXÙ¸týðšuïk¥(µþð•ä/öíÑö|½Žâ•ÓäM“7MH ›cäìÔ½’Ð/¹¤®–K|¬yÉyXãêÿ=ÐúÊ„m«”ñ¹$¦Ô:áÖ«Ù™2¾ü‘ù6óm¦,'PÑRyм†äôKâWX'Ò šR…vfú Yïgj)™c`K•F¹êet¶¹¹¹²œ@N*“ßKþµê€K×&‡õgj–õuü.y]òº°SÍÃàª; f\~èýKÎTNGTØÏ×çû¶D¥ÛvF£kOUþ÷‡Cƒjc”ç?õ`¸µÝn'µË1~Í\&ÏióÚñ×ÐüuŒ–>,ùà¡þ­&ÙÏ/¢v¢v¢¶,'P£±Ú5…å’°5&4.5Þ§Ï!Ãðí–üi¿çќݶ‘Áj]‚ôgÈÿ —&÷Ÿ§CJ4O·õ¹!iûÛÍ[bgVƱŸOO<=Q–¨ä«ÙIÇRÒÆ¥ÿÙøKQðSüQ?¸ÝÀ€×V½ÆÔ^:Õæy˜jäe#—î!}KŸùð9ü‘uAâžbœ±¶Œc?Wž[yn¥,'°îhãwÊ6±AVëZM{9³¨†‰µÿóv:‹—v«Gu0Ÿ]_½ŸÎ–?ÍTÚžöÊ ÇÌÅ«¨vŠÐï™’¶ñ×Ù}޼¡¶øu^¹r9D–Øàïºéµ·HN¿4åˆs¸ñ Òk+íñBu:aô×áV­®ØÇŸÕéxÍùÇÛ%YÝñº§[¤QÖS˜’Ø®ås×ò€øÕÞ¨u£ÖZ²œ@ïAN¿jdV•×jTÅ# K×åÃÆÍ±P/ãØÏ~wúÝé'Ó?‰ˆì¢<KN¿¤mîu·Í’¯P»šWóÖ7̵_šéc»1¼Ç†$³€3§µ¯ÈXr>—‘j··#ËߟpÂý ²œ@ëºÍ¦h äp©¶¯§¤tvæHeÁh‹Ä‹Ö‰¥¡JªÆy…–’dtÓ#KêMÿ\™m2Ûd¶‘åöXi^S·!௽Nþ§ÁA£lñú?yøäᓇìT3À0¸êƒW…m—°zK5žJBKT:Ö-½*ùl¹“r®í²×µ³P“'þYê]T¨4M2¾+=üfº”ñ¾Ÿ­¹[s·æÊr[ZzìЪ-™`… ¹}qVK§:˜¸ñ÷áÞá9ÓǦ‹äx~Á¦ÝÎsůs÷¤Ý“vO’åj^qÓøÉÙ ³¼6ª÷âÖÿ^ÜJù$«ccÝ–‰JÿWñí¼Ï WŠTΑУÿÜ"#SSmõÂRÖ•ñö£è¤è¤è$YN ý¼v>u2%ak¬ëÓE£Œþógn³–£ÆÖ;Wþ† Wrÿ¥Úy’?x½ù€ÙÏâ×y$õHê‘TYN`à«!z­%¡SJÿÁ’û òšrûÔ(>WèwmF—ήºBéõ‡¬±÷¬ï"ùcàã«ÛœsȿγOÌ>1[–8Ìï¯÷> €¿özèÔâõöëÅëªæ©š§jÊrõ–µNé=C:%ëÍÔVíüðÚL[jN~úa¿'®þÊ.¾Á‰’?¶8><{^ºøži~¦ù™æ²œ@ß+ÁÛuÛJè8W>RÎ@ì®6æ…º»ªòEÀ®óÞ2*ã%,›\lrQ¦OA˜™äzÂä4௽n>Öx–uçp\«~­ú5:Ÿ0Hß0˜pøã*@ÉR­Þ$Ih‰NkçtxèsÛ0Óé¡.OM|+ÒØ‰‰%³|ÛÝÓCSü:vXØaaYNàà;]\õÇIæ¸×Ö7t+2ÐýðW5 p= é&ié×÷¹—±E¾bÿŠý+öËrë½my¼Ç :"ï™Û½æƒÿ}6ô‚ç¡ÖšÙÂûð©Ï·2mpRÒÀÃg9î6¯ä…È ‘d9>Í꜕ˆÃñ.5ñT/*½ªÒ# +ò«B½/½°¥5ÈHWé¦$oü/ŠNµx,^ÿ-;¶ìزC–8m»Ë Iè”ÂÓœŒÿÝJŽhçškò´"]a³~[}ìKß \ú÷ôµÐ{$i}à¥Í¹xŠ×?Ê'Ê'ÊG–87høÓ« €¿öz6n£§³¾xý¬<°ò€LŸÃaüSÏô1 $âÙßj^Í[ßø÷ë‰êNÆ> é]ï¯pº­jKƒL³pIÛ$„®Š´¿ÂÃQ‡£GÉrÛ]ÚÍ`³d€wꪹ³ü¾nìýÓÛl—üpßw›ª™î¿Îø°ø°ø0YNàFíF ¬Ž2þÚëÑm~p%^ÿd¹d¹d9vª@Õ·°*lôÕúÚð•ߨ›öÿËgý‚› f«%ü¢o¯:ž×É[o¾Tï?Ùh…d€ç¬íøkE~íÁ ¯ÛkýßÑåÿß[â$gãï©RìmO5òVÆ“]ýÆ >.9d*'õ-LZ”^Û‡Ïþ~äÁÆK_käðxö¦½¿8FÎ}½?_ÒÀNúóçÄ·2´=ÎCoº$liú)í+½ªn†Ëz«U| Oò7þFÔ8ºÄªy·ÌË+Ùüª$tJ~#Lúhÿ{VJÂÁvïjÇøïSõ´«%KZxgá_ËÜ&‘7qkF†zY†0þÚë §#]ÃÉ›8SQÏß{$¡SRP´¹{éU}xLE~­ä?l÷pZ«­7È›¸.¹ Îý"™à.óhfJG41j«ùLò&nßäæ/mKíõôêÓØ“7À×½+zWô.ÀøI&NCŒŒ%³IʪÖ{„×ÖcŠm\V®ýŸÏË¥“Tút7©¡\WKy»â(¡Ï%iŸåÕ™Þ?zõ&oâ¦9 jj\$™àŒÄÜ+ô^º»Ú{šº­)+‡’²ñ÷<êðcÏ(ò&Îp’¿âð^’°5æºoÍó”ÿ¼õÍÑ{Îé}¡’6ÊýÌpÔB¯X/ò&®µMèÿô‡~ßM±‰£ÏŸ¶½óáU }|è¦åΊÿº¿]9Åx$oü¯ju—¼‰[æ}ÝR"ž¶Û§¥¤6ÿË?‘ÞIÕD¥8IëÓ“ýSÜÉ›¸ g§ µÚÎøk¯·×îÖrkLÞÄ™˜+q ÊǽŸpš‹å¸÷…e|ÕXrú@û%3&îØFÞÄù·[òÚè‚d€/í8nV$àA-ö^´Ð#oâ6j¹ß^ð×^Ï®èô“³&y|m; vìdŒÿ´'€Ïêt¼æücëõ3´þ.}œÐ•Û\Ð쩦×ó…ù,ݹe Þx¸jä'€ó“6x§Tä×¾Ÿ–hâýWY9ä `I'9O;ž›vàÀ‡×æ’ºZ.ñ±” €yX€$<<²ÆñŽV±^UéH¸âÿ„SöŒ0¿/É<,DržV›®è _ðåŸèÃOK>žæ àïKž.=»åK:@»ÙSl)þéxXòIòÀCˆmbÙƒ'€¥Oó0@šÈÐÀ Õù«ì¿Äc!iïV]ªpWþdéµYÖÔ(PmZúN¸ÛZ¶wÇâ¯anýKß÷&ÔJf;(ôàaáÇ…Ër%ùÀ8={_¨û¿O7*^RüQ €…Þ<ºÆè£kÈr%çÀ.«WML4ùðÚœº,pˆy&`¡wOè9¡ç„ž²œ@Ixphôåvÿy™Â°.‡×[^ªø?¡ÇÕÊÆ%’¼ñ'ôàÉOþ{òß²œ@Éypi×WzU{¯5ße{­´Çû¼UÒºA¡wO=mô´Ñ²œ@Þü}ß<Ëq–ã,GYN $¼Ø)sá«CÚ^Õ§>le;zÚ’I ½x^ò¼äyɲœ@I~°4 €…Þ¼Xo±Þb=YN ïþ¾ï^Þzyëå­Ù©®ºÿ-8ºàè‚£T†¿ø‹¿*÷¯˜±1ccÆþøcàý–þý2ô`TüÙhï°zK5žJBKÔ¼±ÁÍí¥WÕëŽy¦nb‰fÿhŸå7y7ÿêÚ×5QòÀWzøÍtÙ(~[s·æn͕嶴ôØ¡U»ª¿øp«%ÚÇÿߌÔþo [r6þÎ/Ø´Û¹ŒgåwOÚ=i÷$YN æç1ÿœ ²¯Í槉.ÿTè`½õ36ï¸gÔ½p”ŽQrϺ£W¸ÉEÖJ­%9ŸËV/,eÝ¡2¾›–$Ë ´Ÿ×ΧN¦¤mùu[±ÜØØ­â¿¶å°ñ¹z·$yã/àõæf?‹×ÿHê‘Ô#©²œÀÀ=VCôZKB§Ôö®á›º†¥W;¨•®}ûªµµWþz|u›s9âõ?1ûÄì³e9ÃüþzoàÃøk¯‡N-^o¿^¼þ§jžªyª¦,'PoYë”Þ3$íèÒnÅÿ Æm{]{^’ÀLJgÏK¿Â3ÍÏ4?Ó\–è{%x»n[À_{í:oá-#gñë¼Øäb“‹Md93“\O˜œfüµ×ÍÇϲî(^ÿkÕ¯U¿VêªûoÐÑ–G[mIe|¹ÒÁíÔ-S·LÝRñ¡oéßÿ퇾 €«ØWrÉ™Êéˆ ûùú|ß–¨N3¥.—^ÔiÿCVäWnÕêÊÿ Þ$¹<Ô¿Õ$ûÙâ×™¨¨¨-Ë Ôh¬vMa¹d€{Ýi}C7±"¿¶Ó‚ÆÕµÿ}·Ÿßˆ&ãµ7JÚx»yKìÌÄëzâ鉧'Êr•|5;éXJæXç\ã:ÛWäWé>j6ø¯È?]hüÐz›¤=l>28=b­xýÏ­<·òÜJYN`ÝÑÆï”m$mËÏ8­‰Úà ==ì}é…ݨº‰&ã•›KòÆ_g÷9ò†Úâõ¿r9ärˆ,'°ÁßuÓko‘„NiÌ0‡–õï•^UÿÉVÕôþ¨È¯Ê xçâÒD{ºzMãþµÓU~šÕЭµ©¶¤õkgùܵ< ^ÿµnÔºQK–è=ÈéWLÀ_{]>lÜ uñúßéw§ß~2ý“ˆÈ.Êc±¤u€š—œ‡5®^¡áñýµN·UûÕÈÜR¢€6Ríöväñ+¼?áþ„ûd9Öu›MÑÀøk¯MGŒ,©7Mü:3Ûd¶Él#Ë ì±Ò¼¦nCÀ_{üOƒƒFÙâõòðÉÃ'Ù©f €¡oÕú2–h'~); ÔéˆtÊøÑ1,⪡ÝÃï»5ö×_‹Ý&U| /lÕU_»§ w0Ôñ–ü?7}{kw¿Îç-ž·xÞBv¨ê¢ê¢ZÆëJn÷/öýéûvJçßvzè¼ñÿþü•×”Û3«å`»Çåÿªqí4üÏ—Jÿ9’ÖV¶QÔo)^ùWA¯‚^ÉòÆÙ¿}ûÄÔ_#À_oíÛ£íùze<{ô¦É›&oš@7ÇÈÙ©{¿ó3²¯GLŸ¿îë*í ËÿU†]‹† ¾=]rú@­n½š•1~›ù6óm¦,'PÑRyм௽Zª4ÊU¿Î\\\YN N'•IŠïíµÉaý™šjâõÏë’×%¯ ;Õ €0ô­ZC_À-thèÐСâ1ÊÜ-Éýâ÷m‰úÍ·ÜTïÊ¿m蕃Jê5hµùÁån³Ü£žèYÍÓ4qk»ÝNj¡ù ê-T›®è /øã®¤5|M§ë_Õô-ãG·\·\7ÙIà覣›ŽnZÆHù`s’66بsXÙøß7•Úõ 1Œ=â±$Å>oß©yFv5ƒÕºéÏøðïoàz@ÓMÒžý-]=2ì½5Êú‘£c^Ç¼Ž²“ÀàŒàŒàŒ2žS_´èP®$l‰XJu»’~;J´5ùì†ß£zŒo¢Ô@ÓJûßEÛªwÔl-™oVS?Ê|ªøç*0+0+0“ösîçܯŒèÆ?5Û¦ÙwÞ «u­f;xr/íVê9cR}~:[þ4Sé¨8³Qýs]ï9ê*¥Ö #]¥›’¼ñ§™fø›Ò†2¾~”P˜P˜ ; ìÖ®[»níÄë5³÷f¯S’Ð/•qHõp+?=¯-_²+îØÖâ°Ý¸N Œ÷üßÙÿ>Åò»Ùu]]ÉìuCTž)9ŠºbõbõbuÙI`£FŒÊYÅ'5ìÉø«¬%©©¾¾ªTtä/”ñå‹‹ ÙI`³ãÍŽ7;.^·•mOnùÎý’\d­ÔZZ?ºüÜø?W¨뽸]ªù„à÷Gm/…go 7Ëì9c†VwW£¦N¥ê„ú£ÍÝÿý+å“|$hl9=u»àÏìÕEÕE2tü©—²—²—²x&.<ŸoûˆðWY]¯u·¯+˜À¥¢¥¢¥²“@GcGcGã2ÙÜïïk €¿ÆZ’Ôÿðàž‹ž‹ž³SÍCߪ5ôe,ÑÝ?tÿÐ}ñHíïØÂÅÎüû6F/\{ýéy®ôø¾ŠÿËp#¨k ×¹õ.ªTúÏ‘>Í:ÔÓ) _±yŸ2Þ¹¥¢¢"ÊåŠdèÀûì°ÿx5µ]ìk?]ÒÀ Wp¼¯>@ÍH¡_ù9´Ð4쪪”‘xà€{¦¤ € ïŸZàÓYüšµlµlµleí÷À]ëv­ÛµN¼VYc¯.O´ƒ Ks®Èï„ ËÕjªw·â¾ðº¤=óáZÿ«ä¿Ä¯Ùp¯á^ý²–À-º[t·èŠW# r³©ésIØ&£œÜÛFÁ ÌÁE5¢"Ù«wÎz†ÊÆÒÁ°dnüM|{!ÒîeºøÆúõYK`dïÈÞ‘½ËxÀéËxJB×Tz¤s7#3}ï[iÔŸ©Õ2otÀJï…’¶-˜;©ï=o2N¯]^»¼–µ®è½¢÷Š2xîô&Eç^ €¿ÆšcbAÃUe¼yt§ïNß²–À…z õ–qv”ÝýiÞ[OKN¨Ù(¸Ó˜Šüî§>ßÊ´ÁIë‰çþù÷ Ž~5P>‘óøeoŽ/¿òÖ¦­M[›ÊZ#6FlŒØ(^àW1ý-fü5Ö±]RVØL¿B¿ ¿ ¿ YK`xfxfxf¯hñ×D·`À_c}~¯ç3ÏCâ5ïØ+°W  €0ô­‚C_ÀíɯO~}òkÍG’ùÝã’óäGس#RÜLtœÕÇ•¾¸tõº§[¤±tŽ×ßæ;‹MûÿõßÁjéðX£‹’·Âê}¬öé‘„O”þÞÿ–{CñšûqØÃ~”µ>ópÌÃ2¶3‚útú[oŸ¤ €?ÜìëQت‡ng½“Ú^Jq*›”ägÛž0MRëž6`µ±ýÛ„N 'K泿·ßïîåVÆøm¬ÇX±²–ÀôméÛÒË©Öóh>»›‚¤=5ûïïla½û›¥ÞÛrEƒ_rk[k\SR_{]íqfÇì;×ÚB¿ÛU§Ì…¯iKÚõ—®öQ3ÒvÖ*ccÈ}²ûdwYKàíÕ·Wß^-^†“oèØIÚ€m o`PÓh£ËAµ¥*©çZ*©«jÊÖûËê¸Ê¤¦ýG>­>qôùÓ¶w$yãoк}žâW8C4C4CæúÀë­¯·¾ÞZ¼á§œ í$mˬôI_¿&}´7êïW««”£|@ÁX¾“¥¨N;Õ°{ŒJꦖþ=ö’ö)ÎMêÔŹxÍç‡Î*k ¼”p)áR‚x5" Yb’Åøk¬§§Fæ4°¯ù²øeñËâe-góÏæŸÍ¯†‘s÷€ž’ÖZn ¹°h‘v5¯æ­o¨ôÓ«atY~²ÊîÒ7þ¹t éëÚñŸ¤Sš~5{£ãVV’3¶Îžø¿Õ÷Äk¾&aMšYK`JVJVJ–x5ÚÜœüD¿„ð×X{?]7È´ºønš¶iÚ¦i²–À„Í ›6‹Wcíßj–§õ~«û2¾‚°óìüƒ=jÀúVÅ¡/`‰Vò¨äQÉ#¡ÀFöKñi"9càOý_%³\ï=Ââ¦xµ:vèØ!™K`’%5„Xô&¥ŸÏbIØÚûòÿ^rÖÅG4o"^íD«D«D+YK`ÑÛ¢·Eo…èzgíàÓî’9F-#OÒžúýÏÛéýug¸FO8=àôYK`áêÂÕ…«…–wõ‘ý¯’vx²ÐFžø6ŸdþÜøéðæõÊØø;×ç\Ÿs}d-¿üZPÆåfË¹Ë™ŠÆ:øJZUþfŸäoNZé´Ü¨Œ÷d_Ö¹¬sYGÖ˜g—g—g'^ mµƒ óD7SwùºIþ¸ª¼÷·tu¨§iýñâ5¿¾æúšëkd-¹z¹z¹e<¬d®YCûlÕê?üïK….ýoêXÛ·òì-9¡î&Å]ÊøÚÇíôÛé·Óe-o¯¼½òöŠx5êª7QV´êózEIë–tž¥ùX¼æéÒ¤?µ¾iü¦ñ›ÆâÕpP7¤vÿªõVݪ²vaæ©“$^ó‡›nz¸‰=jÀúVõ 0–P£§Œž2zŠxøÎ†u,tV¥E«´õU`o_/=;ÕyJel÷gwÍîšÝU68¤Ë.Cºˆ×ä’á–.zUk[M¢×õ©á¾Vꨦ+´¯vÎéœÓ9§e3ýrúåô˯‰}È &’¹ýW%WÅHµT ¡v'·(·(·H6ؽu÷ÖÝËx shƒØ–ëîöŸ¤­a‡¯Ž³ËJ`^V^V^–l&°cpÇàŽÁâ5¹wØ¿¯[ý[¥½¤wÿ!>QB ,ØR°¥`‹l&°E›mZ”ñTtƨ£Ý/Ó¿UÖZdvê¬O à×.u‹t‹te3 ß7|ßð}#A †´ÿ^]“Á¾NAUÔâMFÙÞëæ3âEÅmÝ ž‡Zÿû°öŸúí§IÂØÕùŸ!É»„Xܽ¸{qwÙL`ƒá †7.^“Ѻ‰‡¬ãéß*kd{QÑ®ŽPKº—t/‘ÑZF[F[F‹×äeÓ^üþ «¬õ½i€¶wcÁ·ÿêŠtE2ú§0` }¥© €%Ô…îº_è.ľí-.ÔkO£VY뽚þúne|Ã×g¢ÏDŸ‰²œÀ´Åi‹Ó‹WfÐ,?;} 6ì*íPëÚ»^¸–qÈXËÈ–‘-#e9És’ç$Ï)ã èe-"»‡0¸­´ÃŸ;N?°½ŒCÆ:Íè4£Ó YNà‰æ'šŸh.^oÓ ÿé³aWYëÀó{òÌ ÅëÜþ‡}{YNà‘3GÎ9#^™)7g§«¬õLFÇã Êø Bÿ­ý·öß*Ë ŒQŒQŒQ¯Ì,Ó¡&¦ôo•µ¦üºö´Ó-ñ:y2äÉ'²œÀ=uöÔÙSÆXȨM÷m!¿W×dÚ:PsòÓÒ+Qn­ýþgã¥/5úH¯ua¦ÓÎUry Ï–þZsíÁ—fúHÄáÏ»'Ø®ºPƘ³`tÁèYNà¶gÛžm{VÆAÐ/Â1ø‰þ­ÒîlrQ¼Î¡çCχž—ån·a܆qeâ“cy’þ­²ÖXV?Û—ñ2¸é¦˜>@Àú2Æ×SÜ¿¸q¡h¾ïíë5›víË×QOìן*^áØ˜Ø˜ØYN`‘m‘m‘­P³U?m¨Ë¶Ý—¯C”»ZéŸ(ãøñÆÇk,Ë ,H,H,HJ ËÏ+Öœˆg|ûå«¶ÈgHû2^:ðOÂ? ÿÈró5ò5òŸžøóùlcضûòÕ^¥mp8ñ §L9˜rP–øÞþ½ý{{Ág£ÃÖx/¦‹ûòµS3ã¥Ú†eœ¸³üìò³Ëe9ïTß©¾S|6Ú6¹¡÷{º¸/_[.ó(Ö*ãí¿—Ü.¹]r“åfÇeÇeÇ ¾dÀšŸN üö]Sƒ!‹7é Ô@ÓJû?[Ì¥Ç;;–ÌWŒêâ±Òïä^Ûá=6$-ï1{Ô]Å0õ§Z–þ¥ï vI]-—øXú@õ^–K”ñ †k[¯m½&Ó_‚É2Ì2Ì2|!HÍ+-íÑÅ}ùªßÈ®¶ª®x…oݸuãÖ YNàËÎ/;¿ì,øt¾¨ÿ6Ÿ‹tq_´ö÷õµ±ÐÔS-cdxïì½³÷β/ÍC_ÀøêM^4yÑdñ˜ÎoãamæMÓö%kÖ/½GymÜZ=šw4ï( œ1;bv„x}–)ŽgžÊ¶Ý—¬/ÛÄ™yý)¸µ\\L§vÚujWñú˜„Ìž´‚ñímb*/úûP†àûæ>.|L'æLÌ™XÆÓ”gýZÿÛv_²†ì?ébÝHpcK¿X¿XŸŽê0ªÃ¨âõÙ®Ð$ÅF…^îKÖŒGݲÝ_ ;i\b\bLƒ'Ož ^ŸÝ³ßÛÑË}ÉšÞaßÏîuÅk«ü§òŸÊ–¼+yWòŽöÜop¿ÁâU²Ô©·`à÷}ã¯|¸R¤rNÅ·™£4Æi¥Ø^ ÏÞ. ‡?; œ¥½»Œë¬«TW©®’hšhšh ì^¿{ýîõÅ«ÔKŸÉ@z¹/Yƒ÷ÅühñF¼¶†††¢tQº(vÜÜqsÇ2ÎjŠj«á¨K/÷%ëå¿üŒ\ˆ×Öz¬õXë±d¯êb Ȇ¾ŸŠ°D{eðÊà•àS˜úôlèDëöyë´å.‹LÄ«‘‘‘EöJ=wîþÜ](91'Þ7Œe ïóÖСýJŒFˆWuÁí·Ü&{¥žh?Ñ~¢-øpÈªê ³å~ÞªçÛ*©—³xU—Ï_>ù|²WêaÊÔ‡)‚Ï¿¿°ÙîW¶ð>ou‹èiS·ŒcÞ×ʯ•_+OöJÝwºïtßIð«BVý<¼séè>o u}¼ Gkx¡ß^¼ x@ê>4L˜þ0}ñZÍt Þh²-¼O]DÛxü.”À¬’¬’¬R÷¡½ôЫŒoˆßêæ0â&£ÜO]Ϲ¾o¾Pßö}Û÷m_R÷¡^A½‚z‰×ªõ’Ð}ú ØÂûÔuXõ-c…ønù»åï–“ºuqëâÖÅM¼V«Wz'ZÖ ¯ûÔõFlWC×µB |¿ìý²÷ËH݇ÚÜis§ÍñZ­ß>Ïj}ݧ®W’·t9"”Àüžù=ó{’º5ñmâÛÄW¼Vf+YN7þ¾=Õ‡]…É'Þ9zÏ9½/ÔùÀòõñã…þÎï»Úµý;lóTÁ¯åääºyŒóçQÆÛX»–,ZiÔ¾îS×íw®3¯/”À¢ÖE­‹Z“º===sç0ΡŒî?Ú¢·}ݧ®§Nµ¿á”&^Où@ù@ùÀâ‘Å#‹G½ª‹0 MúVÀUÀó®Ï»>ï*ë;Ö w ¤«øÚù½‰½ö ñJÎ8?ãüŒóäMÜ“žOz>é)”ÀôûZ¹Û²W¡µ85Å×§u×-­Ã╜·tÞÒyKÉ›¸LÛLÛLÁ7R;Þž·õÀSƺZí#§§nW/²žà2R¼’KM—š.5%oâî_¾ùþe¡†l;ilÝí¼ ­>×ÚëÖ×sì¬ZÆ×°VÏ^={õlò&î®ç]Ï»žB |¦Õ³¡g{º»Š¬%ù¿øÖpÈÔʬ]F%×Zhý!ò&îæØ›coŽJà‹G®zæÐãUd-ñ:ìóÀÂȰ¯jïWÞz`ë­È›¸«¡WC¯† %йÖÒeGù:`…V×#kM9¬ÔAsŠNŸF5ž¼‰»Øîb»‹í„8îdšœM.=^EÖÐ#—Ú­Qi®ž­ '^ÉräÈ‘7qgÞžy{æ­à©l5û¼o¸¯"káýfûè+^“-÷L¼’‡†zh(y«êUC߯p•1ÿ§ù?ÍÿI<âV&uú¨Fö–®ü5vI++{ÁÖyA΂œ$MÈÌn3»Íì&^7§½–ëk.ñ9=Ôç[{å¯ûGÏÛgg'”ÀÜ…¹ s’4!áS熗ñ¼Bí(ó^&n5ÖŠN°µWþj¾{ȲYsß}Þ;¯w^o’&düøñãÇ—q¥IšÇØÚ­&{^ °×fk¯üÕ¯óÜ"à ‚OýXðcÁ$MÈHÏ‘ž#Ë·µ6Ü]÷ѹÀN¾Îtzå¯j42±š$x qpapa0I2èò ËƒÊø*L—jMži'Š R“}}èôÊ_ÿ±ŸÔØÒ\¼†joÔÞ¨½)ÚV´­hI```_Æ;kOzÎnõ€¯"«±w¯Íc‰×P·…n ÝÅû‹÷ï'iBºt è ^½S»˜k9ÐãUdmYc¼—^gÀ˜Œ2e2ªdVɬ’Y$MHǾûvì+^½!~6Ïõ/ÐãUdXç¦dR(^CÛ!¶Cl‡ˆlD6"’VÕ1ªºè]Ñ»¢w1ô­\ €«Œü&ùMò›…~Nw%Ó¥´t‚Ç>ëÑÓ#U¨zûÛìo³¿ +ßû•ïW¾_)TÃE]F-0ãùácŸ¯EÏò¨'T½Ø±3bg±ò½;öîØ»cB54ÞÜûÁxc¶ö}4·é~=¡ê]ptÁQ¾þòo÷¾Ýûv¯P ÛGM»iÅÖžà±Ï³X>ªÞÉ “A'yçåG¼ yò&D¨†G7Úgu‘~Oh½¥Óu—k¶PõN)R:¥DÆÊ÷ú÷׿¿|Ŷ3Lm~£ßZ¯ÍÛaè*ئÍI›“6‡Œ•ïÅàƒ_ ª¡ù­¡º³=è÷}>:õêVW¡ê¿~þúùëd¬|O×=]÷tP »¥,oÜ’~Oh ZuÉ|Põ.g_ξœMÆÊ÷hó£Í6 î'”´êd?’~OhMMïX­àW¯ß¾~ûúm2&U]qÛâ¶ÅmúV.ÀULjfjfj¦Ð¿Ç­Ûlv¸M{÷áZЦ_3ïb‹X›ªâk3­Í´6ÓD¢ Q骈äqÉã’Ç %0aÙêÖŽ7ÙæûpÍ{”äê½½þ\ÝaÊÝÅ+æ×ů‹_rUq'2NdœÈJ ÍÚP£µëØæûpuY¸ª{bu…¢Ú>¯Å+ÖCÔCÔƒX}‚£šG5j %p€þÎVæªló}¸N˜uÎÂv®¢§òzymñŠõÙdÞ³õ bbb„7ñ;Ýt^Cï÷áú6¦ÏÕ†‚‡Ç >|”\UÜþ_÷ÿºÿWÁMüÕ[o¸Œ¡÷ûp}³ãø’†¿ ¾DàFÈäªâvÜup×A¡zÚ/™ºc'½ß‡«³ÜÒGïUlBÒ„¤ Iäªâ¶:ouÞê,TÏ¡±+,‡Ðû}¸Ž =¥e#xÖ”¿§ü=åorUqë箟»~®P=ïøkº§÷ûp}¶¢çPÏ¡B‹P‰P‰P!WÒ„0 >|˜¡ï—c\%MõŸê?Uð(ãë&]¹ÒêùŠ~ ¬áûgŸ_-:ÔÜvy¹õåÖ—[IÔ§štvÒÙIg…ªzkD”ÛOlù• 8=Ç繿nsÁ7çe©d©dñ#Ç'£4FiŒ’PUÎÏî¶g+[~®ikR 4g6ˆð½)T«ìNÙ²;‘¨O5¬ù°æÃš UuDõ£Ó­z²åZxÅÌn¿ù¯ÞÝÕÿ|ùÂÀœ9IÔ§ êÔ+¨—PUŽênèQ“>°0©ßUŸ¶"ôbë,|ùB‡Ü¹HÔ§êÓªO«>­„ªúØâ`Oíô«’ùÔôøÃn¥úcñ*)W¯4>O!O!OD}‚÷¢÷¢÷þòþòþòB tz¿HïP} KÎêùIsT/ΰX+^%M;M;M»üõùëó׫O,J%wØÚak‡­B #Ÿü—}àĵälŸ×]bb¤\ÆÓçú ú ú …¿þRø ±úDDZª¶Tm©*”ÀW“zezµ¥Ìõî{Ú[Ñpkm'å5eœadndnTäQäQäA¬¤ `ǸJ*¶,¶,¶ôðöðöðjûî=óåþ?møöðõcíàPÿ‚P}RlRlRxÃÇg*Ò/Ò/Òwì8ØQð(¶Éû_»ïÑ¿ÈÔ0_«á:þ † ÕçŒ÷ï3ÞdéódddY[[ nÿéÏŸ#/£*‘z©Æ:¯÷ë,ø”ÌÇ ŽÉÒçÉŸ—?/žacÃÆ†…*<ªÎÉlë@ÙÜò »vu§]±S‡Îš…ês¥Ö•ZWj‘¥Ï“÷KÞ/y¿Ôͯ›_7_¨ÂÏæõì9X6ûÀâýWùœî¡ivO×@ðë’q×ã®Ç‘¥Ï“Û.·]n;Õɪ“U'—Q\ ¹ÚrŠ/2Ž\÷|'›}`QNJ Ï¿ÉM¦ioJàmÛ·ÙtþL9#sF挪­ü ¥'*­/ívt®Œ~päšú§VÔyì8ÃÛKp¯`ù½å÷–“¥Ï“=({Pö ¡Úª.×tPX8n`ê›2úÀ.¶ëaºÂóAí…‚{§œzpŠ,}ž,ç,ç,Á'ÑëOW;£ìÿV¾Ïò†]d³Ìïæý°Þ‘:Õ„ª”y&óLæ²$}€8ÀUØë°×a¯ÃÊ!ö­_ºnt}!;­^IXÿ[>Y£úÛϪ(øž¼†nlH~¾ÜKû—ö/íËOà{tÝÊΖ_ñÍÓš>§‡Žý«‰¢à{òúnë»­/ùùrÏž%/eè©ßZÉÞ¯;Oi|\[ðß͸qã8ù Ü ½zOð€wùSÊcUk4ÐY´í°¢ =õ{{µo’YcŽ5®ªLüÙø³ñgÉÏ—»ÝúvëÛ­ÇÀ/5O+Dù+ù®‘ =õ|þ°íMÓVžÝj ž€•ô{ÒïI¿“Ÿ/w=ÿzþuÁ/Ö/RËSýêAïß¼úËNø® ï.ï½ÇÔ[¤ñX¨2§µOkŸÖ&?ÒŠ0ˆc\åÝpÿÁýåoÿ2h¿Úi‹t·zïCœ½;wib²_ûŠà>¬"¬"¬ÈLåºûðîûËO`êŠug ‘î-¿\•„ß½koáã_w„PæÝ›woÞ=2S¹n¸uâÖ‰òh{&üÞÆR¾å÷犃'hÚ­õübÐ’þKú/éOf*yóeüõñ×Ç—ŸÀöì0!Ý[~ãÛ©ak`¼È­‹šà†Ëʳ+Ï®dÓ¹’]Q¸¢pE¡ü^1ñ qY.Ý}à¿Þï¼Þ{:év×üZFd­ÈZ‘µÈLåº0å” SÊOàuåó\=¥»|=ïh–×¼QVµ÷Õa“é&ÓM¦d¦r¹pæÂ™ å'ÐA=Bk×IéîÄ,™¢R¤Ÿa*ø¾ÕízÛõ¶ë‘™Ê•RRRP~‡©¶±<*Ý}àè‹I¯¬ 5E†½”~ 5?*?*ŸÌT®DQ¢(QT~Ómý¸«JwøtYOO{ƒµžÊu¿„ºuÿÖý¼NÊ1q €¥Ä-Õ[ª·TËoûVÍóîeqNúZ½ô1þ;Üëצ|Qq®Ðg÷ ÷ ÷Š E…¤åk¸öàÚƒkù"ÂÚÛa]-“¥oËïNÁ3·%j9ª?+nÁOO›ž6=œ|=—#.G\Ž(?¦qB¦l”¾-?눠¨úr£ä;ÈïúìsìçØÏ±''_Ïù òäËO ŸÚÜÃþҷ圣mñ¾üϾ0taèÂPròõœyf䙑åß…æMØÌ“¾>ðÊK¿c.‰åöe[—m]Æ–ßW”““Sþ]ØS{Žœí0éë/ÕÜé¢Uþg_½oõ¾ÕûÈÉדx-ñZâµòï‚EêåùJ_h÷ó”y›Z–ÿÙ×­Z·jÝ*ròõÄ_Ž¿¹ü»Ðcìª`ã»Ò×°Þ`®QþgßÜwsßÍœ€õÅEÅEÅE•Ž4nmmŸ/}}`Êž j”ÿÙwÔÜQsGMr" €8ÀRå^ó{Íï5/¿õižh°]3ù©NLOªÞêm~Þx•u÷ò?ï<íyÚó8àå¹=òöÈÛÙ€n«Ò0V«ðù‡»yN¯Â[~¯Rúzm¨þÄê#O½,¶[l·˜ÃN¿‘a7Ân|ä`|Ídçæ.6˜µ¸ðHbÞò³Œ‘:ßä|¿™¡éåÞ&+LV˜oãêૃ¯þÈóèSZí©ã0Ö$¥±Íà*¼ågu­©½FÛ·S.üUþç]S}Mõ5ÕÉÆ·qÉõ’ë%×òïHÏyæºc³ê÷žìµ· ¿òã|ÿ<ß—yx%›_)ÿó®?²þÈú#dãÛ8÷êÜ«s¯Ê¿#sÛÅÕ[ùæäñ- kUÝ>°ÄðtWŸÛ‹tG˜=.ÿóné¼¥ó–ÎdãÛH M M -ÿŽèli4µÓRç³Ë߯gTáW~Ä­ý-%Îp§ÿÆùòÁŽ+;®ì¸B6¾SïN½;õ®ü;âšßîn· 6gح¯ü¸x9ÓnS³ŸBòë}ì«?¶{l÷Ø’o#±Yb³Äfåß‘‘Šv; 2r;ö=ï]…Ÿ .Ü/ÚÇmZK—Q&?”ÿyŒ<0òÀH²!;€8ÀRè…Ë —.VªVªVy&øŸ%>õ,½Eºª¾JU¥Õ»Q§Ë+× ”ê¨=ç#?îÙ1dÇòðí=S}¦úLÕxªñTã©ù6ºÞä®Vò¢%©c|ͫʖßÕsÛç»äÙn7ݯ֡üO·{çî»w’‡oïñÕÇW_­w«Þ­z·>òLðgþVqsŒœ“º¯Ê<çq{šÝÖ•?u³ ”ÿéöŸÙfÿòðíeŽÍ›9VSESESå#Ïÿ6w¨aïÉ“¯]­:[~î™mþ¨Ž—¾Ÿ’NùŸîà…ƒ^ ß^FµŒjÕTTT>Ò)õkÚØ¦wÕÚò;7¥SWç¶zÕTÇ+ÍÿÈ“.±GbÄ’‡o/=(=(=H®¢öÌʵթZ£ß´œõ·Õj®a£Ø¨üOwüïãÿ›<|{wbïÄÞ‰­H-ú»3w|ÕýÚ< “L“ߣl­²«üO—`—`—À—P¿ƒ›/n¾¸ù¢" ìî¾¢©ñȪ5úí·fË3ùV .rcËÿtɧ’O%Ÿ"ßÞõ¯ÿxýÇŠ$0Ö¸Õ¯ö>U«L¸Û®ã³Š|ºT÷T÷Twò k€8ÀR«`CÁ†‚ !mCÚ†´­H{´×¸ù ÛÝ…*ýûKZ“wÏÈßÂíV/;óͺk*òY.¦]L»Èq»ßYþ˜ü1ùc† 5jT‘»và‡ùZví ãN…ø´–¸Cž{ïŽvÑ­v -½ù,Wv]Ùueø¾òœòœòœ‚ž= zR‘»fÙy䥅-\g®p*KâyvŽ˜ÕT«±Ëý&·+òY®¾>úúh2ð}å>Î}œû8`nÀÜ€¹åß/…ñJMåîõìñO5“°ß®xÛ”´Í¾!®1o-ëZ5iZK£ÞG>K … 5nÝ2ºeD¾¯wSÞMy7¥§fOÍžšåß5u5Å4…öq&­§:˜õî³GÒúÀk§º»Z¶f¨uµüÏ¢6\m¸Úð;'s‚ |_9µrjåÔ꺰ë® Ë¿kZ"cŠCŽmX>ÔáHqæiŸ3’Ö^¹¸-ÕåX m÷kšùSXëÖ;­wé^é^é^dàûÊËËëÕ!«CVùwMñ^ùºÖíÆ×ZÙÉõÅÚµ§C%îËqS/muRÏ·áò‘¯VèÓ¦?ìÁ¶Ûl#ßWÖ­¬[Y·ZÛ·¶om_þ]Ó8­7]1?@cSCÓ£aÏ®žµ¯.q_þ±§“ùmÃbç…j9}ÍäšÉ5“k <, ß×kÍך¯5›önÚ»iïòïšYõ"•ÝI)í5œüDšÊ¾ŠÔæøzŸÛÒ)й‹ûu[êùSØZÏZÏZï±õcëÇÖd@61q €e‘¹Gæ™+Wa C=4;™Ó¹¯Bà ߫Õ;yªm±ãöÆsôÕë\®È5H6 -Ç8Ç8ǘ;.ibcc+žÀ%cjš÷ÊÕNPð®ñ½6ûâ÷¯üÓÑÆ{›““ÆÛŠ\sðÆàÁßÍ}7÷Ý\9péÀ¥—*ž@ãÀÞuÇ™»l]µ)±Û÷Ú쳺>vöò€ÚƒÍ–ÚëWäšG 1`Āܻ¹wsïrÇ%ÍÞŽ{;îíXñ¶Ý0¥±ç¤¶}í ¾×f_¯“kšDê÷²k¬jR‘k£>F}ŒzžJžJž w\‚‹ŠEÅ»w%îJ¬xÿiâó?Kë‚}ý†ø|·b{¶:oÔñx]‡Úž¹æ Ñ¢'Dç;æ;æ;rÛ%ÈcÑcÑãíu·×Ý^·â \›ÖË2¥ðÍ©5>]¿WûÛ"{WÛ½¦‡Ô:Uäš'»NvìZà]à]àÍm—¤ƒEGDGJß?ZñšN ïëºcÍå”1ß«´4i· L¥]½³FS+rÍSwOÝ=uw¡S¡S¡·]‚Œ]¿dý’õK*rå»)t’›Ôiñ¬§õ‡Í¸ªg—ñ½úÀn—åÛi®ª£´¨"WQ+¢VD­"µ"µ"5n»ÑéˆtÖì[³o;ŠÜGUs…hù[&7¾bVr°ÿkŸ¢ïÕî5j>Èv·aÓÚ*Ê3*rås;Ïí<·sQzQzQ:·]–1q €eHvìÙ5F¨ŒP¡Rñ€ÍÂ5~Q‰YéÓð±Å”[ó»^w«Q¹Ýû°wï®qq­ãZì³lWo}ůMî…Ü ¹IÏ“ž'=çþJ¾¬ÅY‹³ÇÇÇWü&[ž0Ú¨:|uˉ - noÝ­ïÖ´r7ørUjxÿvÄmÉ)û÷}ŒÛÜ©÷ T S S KIHIHIàþJ¾×5^×x]#¨kP× ®Ÿp— ôo™š˜¬(­ï°iÖÝ%•»ÁçòçŠØ–OG­\¼¬î Ï­îTüÚêü¯Îÿêü/-"-"-‚û+ù^¿ ~Yñ»¬{ÐrJã~3~¬o8lç[Ëו»Á7Þ­a¸Usì·9_矊_›ÎX±:cϹŸs?çÎý•|ÏãŸÇ?ïåßË¿—Åïrƒ.uÏÕþg}Sß «ö÷nøq¯^¹}à›Ð>ÕV‹ÙÔr´ÝË¿‚MCuÚTüÚ îÜ5¸{!ýBú6ûª€gÕžU{VÍ?Ñ?Ñÿ¾Žà:Éf•zûnSR¬Ó³öMt÷ªÜ>ðuæ1k¯õÑÊósíúo’ }èÆ„–¦–¦–—ƒ/_æþJ¾'¦OLŸ˜úÕñ«ãW§âw¹v³¿íkšÚÜqÒÜ)ûWnØàò’{qÏ-¢‡_žwHó¸³]£ý¿6«¡VC­†^}~õùU~®ù<òyäÓ¾gûží{Vü.îsVPóí,šÛðLjŒãrV;*·ã“c£ëdéf£˘&µÔ³+~möëì×Ù¯»ÑáF‡¸¿’ïaó‡Í6oµ¤Õ’VK*~—}Sô†Ö´m[“uÖ%/woæQ¯rûÀç?ô\æ9}OÓæê¶Û\1œ£õ¢â׿ïïkû­í·¶sQŠ0ˆc,£n›Þ6½mÚÖ¯­_[?¹Ï¢¯š¨àiiToÆü7ƒÌúïÚt»Íš#¯[q¨{R³mœã”xý¶?8*Fol©f·/²o}ËÂ/¦úþ£×³N¹/°Ye³Êf•ÂG… q7«¢›Ê7•o*·ü­åo-û¼ LщT®×/¤ý°zçÄ…´4[²óuÄ›Ãq6K§9˜Ÿ´^åä8#¾ÖŠYŽ5£ýXØ­_»0L×2f|ß>— gz—8­ó¿/Ià¶ÛZlkQ4¿h~Ñ|îfUtíõµ××^7ÙÑdG“Ÿ—¥X­ãõ~ÐÑò¹Ð¡·Q·î—B^šG ыȳ2Æ{iœõœñ©«šZkŽë³bœåO#Ræçšé×$t¶ÞÞ6½³kgYX8Ú|Iw†ì ÙRlZlZlÊÝ¬Š®Ä^‰½ëãéãéãùy¨3T‡’eƒÌ.W´:µ2˜h©¯ÚõÊ¢öFm{=Z»Ídgߥ»š.èÓ}SS³î¿.fÜ»}ãiúg¼¶öï£ýªþq§@Õw_’ÀÝswÏÝ=·8¶8¶˜w¬VI—F\qi„GŠGŠGÊçeÀ$^½‡JÛ ZVoõÖ,®ã¹Ò\;ª_³[¹8Që+þ'‡·½ã¸ìxZ›tÑú-fÚùÿÓÁ§†¥Ý˜êúõ“<uÞ¨?ý’î[±ož%ö%ö%öÜͪè‚öí Ú. ]º4ü¼ ˜M¨¯¢=н³¥ÞÃÅ™£“Ì[D=œ­ekv´á²¿žœ±j‚ãêãÑ+9ìß5ïŽ×êÅO[þ>*½gÓú»ÙvPŸñ% Œ^½8zqɆ’ %¸›UÑÙ¸³qgãv;ìvØýyP©¥›k¬ûkã~ZFù=émþ|h»Ù“¬6Œyºl¾õš ÕVͱ®1Î|…Å–á›æM21ì2Ѧޥ–]zôUÛfbnóëçýÿÊ[È[È[Ćņņ‰ª‹ª‹ªs7«¢´¦iMÓšÚÔ²©eSëó’P7Îd°rSW£n)uÕZoMÕ_ú×ÉÅo"{÷œer½ïñL×ö1\wËT­›î²ÎÆ*m¯OYgÐÎcBŸåÚ¶zKl2TfòÍUÌUÌøñ?â/ê ê bô[%¥¤¤¤¤¤˜÷4ïiÞóó’`½¡N–jzpŠÍý=Ëœ½Í/ïéܼ®mرšm8¬8yºm±ãŽãêmþq¸º¯a󫶯W¶løÌbêˆ!vC Ž: ¨R»ÿçýÿjhkhkh39frÌD´\´\´œ»‰1q €!ºmsÛæ¶Í€ßü6à79‰Tçzëu®GÅDÅDÅä?Ê”ÏÐWªÜô»éwÓ/`JÀ”€)’™@í+ÚW´¯ìõÜë¹×³`]Áº‚uÜ5ir}øõáׇ÷Êé•Ó+G2¨wJï”Þ©ýñûã÷Ƕ)lS؆»&M®†] »Ö½K÷.Ý»Hf ÷î5Üccc_˜S˜S˜Ã]“&—Ã/‡_ïÝ5ºk´d&Ðô’é%ÓK±‘±‘±‘EEEœy -òDy¢¼‹c.޹8¦ó/éü‹d&Ðòå;ËwG~8òÑŠU‹U‹U¹uR"C”!Ê8ßç|Ÿó}Ú·lß²}KÉL ÝvØýq´ÓÑNG;/)^R¼„['%NŠNŠNžõ:ëuÖ«õÌÖ3[Ï”Ì:ÕvªíTûøºã뎯+ù½ä÷’ß¹uRb™h™hYšRšRšRó#Í4?"™ tÕpÕpÕ8ñäÄ“OJ†– -Ê­ƒÀ Ž0þ#{~öüìù»v9ìrp5r5r5ú^MÞÄ5×L\s£ÑF7q_dÇ›.oº¼é²½h{Ñö¢ÕToPý{%0Ì8Ì8ÌøfÊÍ”›)ÜÙ‘e˜e˜e¸õàÖƒ[Ú_µ¿jõ{%0<*<*<ê¶ÏmŸÛ>ÜÙñªøUñ«â̓6Ú<Èf½Íz›õß+SͦšM5»sðÎÁ;¹/²ãå—w^ÞÙ¨¾Q}£ºe e eà÷Jàô Ó7LßpOïžÞ==î‹ìx‘ò"åEʺã뎯;nfdfdöÝ~‰P‰P‰PIŸž>=}:÷Ev<ßû|ïó½k»­í¶¶›Q†Q†QÆ÷JàìÐÙ¡³Cï?¼ÿðþCî‹ìx¶ðÙÂg Wç¬ÎYc°Ä`‰Á’oŸ=…‹ .ÎÍœ›973Ã)Ã)ƒ·J˧ƒžz:heøÊð•áõÖkX¯á·O rŽrŽr΂† .høpêé§r_Pq €@`|ÄÛok¼­‘”—”—”÷wÛ¿ÛþÝÖ¡½C{‡ö_ÞØÉO“Ÿ&?­×ä^“{MÞ®¼]y»òƒ¶Ú>hKÍñ¡lŸlŸlŸÄE‰‹…O Ÿ>Õ®ƒ]»_ž@EEEÿ>Þ}¼ûxïX°cÁŽ­2Ze´¢æøÐ›Ùof¿™`š`š`mÓΦM»JøáÖJÙJÙ*à§€Ÿ~Úõû®ßwýþ°ñÃÆSs|(ëzÖõ¬ë'ŽŸ8~âø¤ŒI“2¬ZYµ²jõå TýIõ'ÕŸúÅ÷‹ïšé’é’éBÍñŸjgigiÇ·Šoßjâÿ˜ø‡E‹&M¾püîìÝÙ»³™>2}ıöø×½_÷~ÝûXá±Âc…ã­Ç[·6s7s7sÿòª¯W_¯¾>È6È6Èvo½=ööx¬öXí±5LJ^­{µîÕº£»Žî:ºkl‡±Æv0±5±5±­„3®†ÔRgÈÀgŸ |¶/m_Ú¾´'ÕžT{Âþ þ£ô‹Yqþqþqþ£WŽ^9z¥‘‘‘Á—'PËEËEËeðêÁ«¯>`{Àö€í“Œ'O2¨9þ“@Å—Š/üvä·#¿…¼yò¾¾Z}µúj•pÊÚÏÚ?kÿ<¤å–CZF/‹^½ì鉧'žž æT.~À@%»°îº ëÒÒÒ’$H:PâVâVâFeðmœK<—x.1!&!&!&étÒé¤Ó%Ù%Ù%ÙT߯ÙZgk­•™™™t/é^Ò=ÑÑÑ*ƒo#mJÚ”´) ³f%ÌJÊIÊIÊ]]]¤2ø6R S S BBB’Kþ-ù7Q‘¨HTDeðm¤ˆRD)¢„ž =z&k%k%kQ|ÓÖL©™R3¡YB³„fÉ6É6É6ÔßÒ©Ž§:žê˜`Ÿ`Ÿ`ŸÜ8¹q2_-Å7•|+ùVò­ííídÿdÿdjÀ÷Ť` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤`†’x€IDAT €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0)Á¤` €@J0!?-?-?-©gRϤž‰º‰º‰º7íoÚß´§2àöÌÛ3oÏLtHtHtHjžÔ<©y^ë¼Öy­© ˆc ¾ŽQ‰¨ä®Í]›»6ÚøÓÆŸºöèÚ£k¹Jânïnïn?«÷¬Þ³z§ù§ù§ùçþûwîßÉ÷>ø}ðûà3ÛÏl?³}NÝ9uçÔõ4ò4ò4ª¬>Áo¾ß|¿ùëG­µ~Ô;:wtDOEOEO©<YÀTš‹¯.¾ºøj„õëÖrßI“°&aM¢oD߈¾ñ¾ïû¾ïûr_ø¾òfæÍÌ›yðÕÁW_5ŸÖ|Zóiß«O:mè´¡Ó.ø\ð¹àÃ}À—ï9ª'TO¨Neð}1Ÿ)wrîäÜÉ 6l4“`£öÚ?j†^†^†w €oãቇ'ž÷ó¸ŸÇý,É}º~ëú­ë÷.â]Ä»î>`H&Ààä­Ë[—·n…ý ûö_²ÙªqÆNÎý”~aƒ@#ÓI»Ã7Yvyf¡¯µý¸+2¬GŽ¿ò¡•Îè¦KÆ™å î8c£áпž7©íÙ·Õ.…j-ÔwÞÿoo¹Þr½å2²3²3²¹›T®Ì¸Ì¸Ì¸~uúÕéWçóþ¤Vè j_»qݱ[4lòWаféƒáa¥8Z{‰õÐñÁ+/Y7wbEŽeŸ‘y '˜.ðÔšVÎø©Ž†ý/ž¿|I²äÉ’'Kž¼ßþ~ûûíÜMT`H&ÀàcŠDE¢¢C§>túS7Ru75ÝÔuõªñïWMv¶¦Ç© 7·ÈÈÔÔÊZí»NOØ~ÈȽûˆaе3ë­øµM9>åø”ãïMÞ›¼7á&ðyò¼ó¼ó¼§Ÿ~|úñOôNW½¡®axµ[ýIö:ÓÿÜv¶r;×kÞ¤ücý`ÂÅÕ«ëi5×öŸú©=L̘…1 EODODO¸ËÂ’‰0ô2æeÌ˘ŽË;.︼"[¥š7§7®kkörÝÓÊÝÆ­øÚ xñš#­ê›u~1øßäMQLQLQäŽPqišišišÿÓÖ`u'ý # ~Xä}hî÷êlg‡+oКçšÐ쇊\s¿6~müž?xþàùî8Ä1†db ÊÔ.©]R» =ã›ÕlÎ_)N6óÇ4ý^›¹B«ËþUɉ3Móƒ¬þ^R‘Ï2³úÌê3«—4+iVÒŒ ®äYɳ’gsöÎÙ;goEþl5íØ2ÜÐeú*·„ë’Ö'8MZ°íà¤z;[dtO«Èg9ñþÄûïÉ>Ä’‰0ø½Wô^Ñ»ü Ð:*v¹YŽsö×´Í\Á£ ƒ×(ž 5\ç?yxVùŸ®i»¦íš¶{»ïí¾·ûÈ¥Þ5{×ì]³Ö=Z÷hÝ£ü?Ië?èZÈcWÛº&/¨*}‚cò¼ÀK4«;Þ÷ÞWþ§[|hñ¡Å‡DoEoEoIC21"ÑO¢ŸD?];víØµåozZÖñ|nUÙÌÜäu›»/PµKýßÍŸ^ªmYÛ²¶åÓQOG=E@²ìyôóèçÑÚáÚáÚáBnªØÔëoô£ÃÙÙ÷DVõ>Á2:¤pÑéò;¢ïF¼ñ®¤_I¿’~$@–1†db €L+ÙX²±dcÐÕ «AW…¶8UŸ^¶¬æôtaá!«ª¾¥ûŸU)R#U«þê.̓ϔ¿ÉûhÉ£%–€¬yªýTû©öGÞì»·S¿ò®ïÖ9½Ašú„-ÛN¬­f:Í6Iè³÷ÝÞw{ßíÅÅŤ@61†db €¬:':':7\n¸Üpá÷û^iÖà/×5ƧVKÕèWüYŸ5!{ *ƒûÅ ƒ^ "8Yð*úUô«èòÿd´¸9Â{~Séî\×®ÙÒ´Þ£–ËzìªÃÀwÜ)š,š,šLrd `H&ÀȨ¹s=æzme:ýå4¬‰›säÒÔ£Ò½±ûáj»#|䆂o4X`ýï-Þ[¼· ?i•w8ïpÞa‹>},úý™h[-¬ó:CÙéJW#ûîBZ ÕdF÷Ýgt'?²†0$`dNŒ_Œ_ŒŸàè7Æ?a„¯¬mé~¸Ú­œ¸eP}ºýÑínˆŠŠ’%€TÉe‰²úÖî[»omÁÑï«)>_ÉrŸ`ß³ÆèP¡úì´wÒÞID @v0†db € yàòÀå‹Ð–¥¾{Ûë²¼¥ûáj“)X«îþs÷Ÿ»$ M6ÌÛ0oÃ<¡?ûl~˜h÷O:„ÒÕ ¸ã jBµºûöîÛ»oI€,` ÉÄ™P¼­x[ñ6Ë¡–C-‡Š7¦uôìu=]sÖÆœ^͖¹op󙂇Bߊ¿+žtªº{>÷|îùýygÖh`ý©—é þ³*Fj¤jiÎk°Ú7«Œ×FÄÖ­[´µhkÑVÒ ÝW–è]Ñ»¢w•Öpê–©[¦nyÝøuãשÌça €LX=õüÕó…6v'-+8¾ŽÍ\¡µ^@‹Ÿºí(cC|‡Ù³%uKê–Ô%c€ª¨äNÉ’;öCì‡Øÿ“NW©ñ-¿–tB«ó£®'¼…ú«¥–X:€ŒH7À_®¸mqÛâ¶B}5ÃàÏÃ)÷lÕ³UÏV ¾É¯Éd×õ­ØÀ-u‰_••xT¨†[£¶Fm"i€ª(ª[T·¨nBƹ \™™@'PþjW{JÚ¦ÕB5|¼þñúÇëIÿ½»Žª*{üÿïèèè”Ø(Š*ˆ X€ÝÝÝÝ::æ`çØ…ŠbcaÖ=mccwˆŠ"ñýƒùýïu½|@@.‡çc¯µ—Kï=ì³Ï¾ì}ÏËs WÀ‰ûÚ߸Ç0:7pÏÀ=÷/˜ì5žÓÕ—“¶ñ¯ÿ™|w£µ©èÇj«}¬Æx¤a•Â*…U2ùÄßuK®ÝÈìÿºˆGóÀÞ%Œ{²ç«ž¯z¾b¼èpâź1á®E¼ÇÝzøáᇇLÞöyÕŠVŠ%§kZò©Y¹Eãþ\zséÍ¥7u€ÔbUçUW}ãÚß‚ù«x6ªÈŒŸàû…dñöS/™ZwÝky¯å½–Œ:ý!NZ„ÁI…Ýl=Øzð7®X-Uºï¾É]9Qû}uÅÙ‹.Úcj¹¶8lqØbÆÀœ}éñ¥Ç—¦æ² Á îø—dÆÿ¾Ú¡íÀŽ3,{µ·moÛÞ¶Œ=ý!N>„Á‰A €—G†7†7“Ïó»áSá„§hSÛµlx¦s7ã¾ÝYzgé¥s¶?ëþ¬û³Ïb6uo[ƒY>1µ{±Õ.'»™Zƒ3ô„øÇ N(`th]‰u%Ö}ã)tÅ7w=2:'g_Wضà…Œ{¸Hh‘Ð"¡Ñ!Ñ!Ñ!ŒC€y*}¤ô‘ÒGŒg±òŸæî­Æ,ŸøºDhÏ žŒ{Ø{„÷ïŒ@=!þñƒãƒ}yý$ú‰õ&ëMÖ›Œ:•¦.}dðå´lRÕy:Ž/ßĸŸ•}TöQY#ÀÜ<½øôâÓ‹Æ3Wž bWœÒ1³'U]Ùb™·x׸ŸsvÎÙ9gçè¹Ñs£ç2ô8e›B €®’ñÌUzÉð¾ J3³'m]àŠékÞûÆóyäóȇÑ Àæƒ086`teóÐÍC75^Ê8equQFNÅ&ñõ=o½»¨ƒ¿q«mµ¸Z\e4ÌM¹k宕»f§w+·]>AþÙø•ÙŠæðÌ9ÎÔ»Jî^slŽØ¯¯Xj¡ïAÇ¿§î'ÖÚŸ~lÜ~ÇŽŽ;22æ ÂÊ ++|ã:T÷YkzŸzÅ !ï6ãßmE÷bÓMC6 ad¤vÀú£0˜˜ë1×c®‡ñâ£b•…ŽM©“ž±[RhvÍô-þ4~Ó¸‘U߈yMî_mŸë`±2Û‰ìµâ>)l=×ýhý1ÿjÙ«Dó2¯ã¾~(ÙŸðç’ûŠåiãþgdÌÁ7ÎOäµp°pñðX·6à +„ä«+/ÉpÄ͸û§ ˜6`ÚF&€þVÚÀz’zÃ``tbxÕáU‡W5^pTþgùy©9À9[¿°s6~M‘!-ö~ó»ê wÎû\ól¿æùZhó¯EZ.èÛ7eOïæíèÐÙå60À<ÏPyÚWsøÂ !Ùá=Y]eÜòþKû/í¿”‘  ¿•6°^¥®08ù|$@rp›¾ÊõØ…”:éYFë±<:îÓµùœ2W¬ÿßm“=‡„Íÿç9cœñö?·R|9£ËÖÿyŠa¹ŸÇ»­.šRûSèU)WíjŒ7@ja5ß¹‘ÇYVÉ]»½òz¢ã HËüwúïôßI ’ŒÛU§ÙRì¤çŸõ'6f{ëxžA±[õß¿^|lp쿯8kÑéC›ËdõÑ똿É6%çº\b¿«Dóîׯ^Œù›ì'-×ZYÅþ×”ª­Î N1Þ©EþöÕÍ !¹k÷Ò«ëŸôd¼iYøŽðá;€@’IÙ+€oóXðïª^7Æü}Ùúã>¬tŽùûÜ} ÿVüÊmÎî}Rýhq:{»éc¿÷¿¨õ¨G£{ÿÛZíª?7zû_¹€øHÙ+€ÓÎ +€¤¡+€cîN¡P( %©JûíG´a¼¼HÙgÿwEÎÝžs<3Æ´'ǽüœó”>{‹¶óÍù{›áµï¶bŸ¨5Þ—ÿží7)ßKëÿ®þ)µ£õ©ÝSvïâ~0#“B¡P(æPŒg¨”}pÚY!˜zp‹->´øÀȤP( …BÑßJ{Y¦e™–e¢gôWŽ=8öàØ~éû¥ï—>þÑoÌëÓÐ3€@Òšë1×c®‡ñ"£b•…ŽMÙSŸåŸÏÝ´÷—o\{tÕ¥d•W¦NÔÆ~eþŸ]„ª›]-g¼Û¶íÿ?×»ÞâlŃ‹;îa§w³»ä¾byÚx™sðóy-,\<<Ö­ 8à !ùêŠÁK2q3ÞÇi¦ ˜6€‘  ¿•vLXHÏèCLp;}Ëô-Ó·Ä?ôyý}c#@'väÞ‘{Gnã‡Ë¯S×l2‹ Æm˶'W¹Ü»cþ\þðÜœ{êÇ~}™…cü–W7~e Ë·¥²8ۙíÝO¬µ?ýØxï;:vtìÈȘƒ ++¬¬°Òx¶rŸµ¦÷©W¬’¯v ›ñï¶¢Æû¸iȦ!›†02R;`ýI½¡olÀèÄùç[œoa¼øp¸<èÎ¬Ìæç²-ô{á1ι̺•íhãµnUW¶ÓöZ|ΔC4Þ¯¢­[×éïc§w+7ZÞIºnÜÂÞν{;32æ`pÈàÁ!ƳU%ÑË[XÄ !ùêÒY‡›—͸§Kž.yº$# µ#Ö}„¾± Aí‚Úµ3^ˆØÖ¨7°ý¯æp´L¦Q½þ0naÁ ÕŠ5éjêD­©V¹ùB×v0‹+{FL Þ’Õ¸…«§­ž¶z#`|ûùöóíg<[9Ožº±"+„ä«í4žÚõ×^?zõ<Š‘ Ú§^ú }c#@'"‡D‰òUÉ™ìír¤÷¨´ni€!eO€ºù¬¼d¶)9×åú»%îöœã™1þ·…ÌQ8ï±üKÌçÊž+zø{kÜ΋Ý/v¿Ø‘ 0Wm¯Ú^µ5ž­Š»vi5²+„䫳_·¼dÕÁ¸µŒL€ÔŽ8uÑwè0ºÒxqãÅã—e ™ç“€]^Îè²5ÄäUA¯Ç^\qô®ºTíHÓæsz×òQÉ;å^ïWè…Ð ¡“sðÉö“í§oÀ¹#‹<+U‘B²<$¢ÿr¹¾ñ~ÕÊW+_­|ŒI} 6i'ô]Ù*Ë`˜›§Ÿ^|zÑxæÊTìŠS:fö$»GˆÅ2oñ®q?ç윳sÎÎÑs£çFÏe4èpÊ"ô5…ZWb]‰u%¾qkâÍ]ŒÎÃiÙÄ×¶-øã@!ã.Z$´HhtHtHtã`žJ)}¤ôãY¬ü§¹{«1Ë'¾.Úó‚gãöá=Â{#@O€úùh鞥{–îi2N7©íúbi.úuíÒfdcS}2«Ë¬.³º0~Ò`˜'`Òª Ñ¢/ ·n1ÜÔ™L Û« *uìä>rM‰S:6°Óš‘{— ²ˆSð àAÁƒ8€´ Ä?Ä?Ä?î™±ô­5Ö×÷ Á}íšÝ§ëÛ=k¼¼ë~Sý0pÇÀwDOŽž=™‘ÖÃ<¦EùFùFù¸6àÚ€k¦Nkæ *vÅ)]Å—‹¿)£«»9×YXÛû´o8ä\Ü'¸Ÿy=ózæÅh¤5/ ½,ô²Pܳdѽmú Ìæþq­áÌF=­*5Zê|ôx^ËR3œO˜Ú÷^~½üzùE†G†G†3ZÒ&`˜'`ýsôÏÑ?];víØµqŸäuÊ:"h‘mj?¥[ÁcÞá}ýò´·ÿÕa¯©=Íë”×)¯ÓËQ/G½Å¤eAþAþAþ…¦šRhŠ©y3w9»¾ÅÓ—??·ížu©þ¾ þ#¿.9÷ŠhÄÇG|ŒêÕ'ª# -#†y"ÿû‡wïqŸôÌŸÛåSÕ·zÏ/¿ÿ·Ts Ç!krœšXl}§ÉÃ߯½wõ[ÔoQ¿Eè¾Ð}¡ûÄøØàcƒ švmÚµi׸gRûGì‡>ww^Ýáä¢TóŸÃN.èwÀ«@† kî‹{ï–Yzdé‘èÐèÐèPF€až€À7œhq¢Å‰ñ`û¶Á¼Ž§+–[xô Ù=Ðmÿª“Çÿ-õe@™i^ñÙ—3ü›áß Q ¢D5` `,êUÔ«¨WóöÎÛ;oo|æÖR]û5žRÌmæ*c7ÌmPq¢m‡&Øíhô¸ËÙøì‹¦†©aŒÄF óD Lz}ðõÁ×[¯h½¢õŠøœ-p«ò̺KOz½þeŠ=±oÈÒ5†&ömƒg²ˆ·Ó9Nç8ƒ#@ü-p¶ÀÙñŸm‹ú´)2ÀPé§%5ÌO©u‚óÜ)¹6ö¶^à~¬ÁOñis³vÍÚ5kô(èQÐ#Ž8ŒÃ<€ÿKDtDtÄ‘3GÎ9c‘@¶›êoê°¦ìªÂVMvŸ±¦ë©ÇI{×µÃÌc~GŠWé2bä_9Jç}š_ŒÛ¦ÊSå©rXɰ’a%9È|ŸÏ5?×ü\s¦3ÏÍ|VÅ®u¶qÂÕfæÛÎ'ñ£¬ywzuÙGž—}|ì¬ê4=¡k˜ƒ‹.>¸8úEô‹èe˜B óD àóúÏë?¯÷võvõvµH«s.UNùÚªh¿â¥&ôÛ=e“S›¿Ï-®]ÖuÜïÇeÿþ矕OÊØŒ®ï5ÎáóàÖ³|‹ ëørxÉ‚þÕz5Ù™}‡e£|»¿ïçö°èaÑÃâñûÇï¿çh´ž O…§BŸü}ò÷Éÿ}3uöVy\óÖ-8¶ªoãCÅêuð×,‡ƒ3ϪZ&ÇèB^µÊûgÈÊÀ²•Ʃޜzþýy±g©åýšúgÑ2­.öÿ9¿•ë/Õ~IÌúÄë…× ¯a~a~a~MÄ0Ì0øNŸ&šüi²oQߢ¾E-ÌØ¨ý£öÚÿ¸ðã sÔø1ž¨OÔ'긌ã2ŽËhÎë„õ}Ö÷Yßçãì³?Îæ¨ ¡€až€@’¹r9ärȈ²#ÊŽ(›R§qëMª7©Þ$ÿ›þ7ýo†õ ëÖ‹ã@Êúüïç?ÿ{(äPÈ¡†3Îh8#¥Ö Ãf ›1lÆ¥Z—j]ªÅq@âÃ<€äu¯Ü½r÷Êùþìû³ïϺvèÚ¡kRÀ­âZŵŠëœszÌéq¶ÓÙNg;}šöiÚ§it<æ/lHذ!çüÎùó›Wp^Áy«¯V¼Zñ¤Z'´[Øna»…FmµaÔ]›»6wm¢_F¿Œ~IÏH €€YøröËÙ/gOt;ÑíD·ã¶ÇmÛÞr½åzË•žwþ½óï—?^þxù O4<ÑðsÓÏM?7¥gÀ0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0è0èÄ €e8–áX H3brR`Hõ€@'Ò\ó÷Ç~:öÓ±ŸŽ¥;–îX:-J‹Ò¢´H-R‹Ô¾j_µ¯Z¸®…kŸµÏÚg-L Ó´ÚGí£öAû }ÐÞkïµ÷Ú;íöN{«½ÕÞj!Zˆ¢½Ö^k¯µ -H Ò^i¯´WÚ í…öB{®=מkOµ§ÚSí‰öD{¢=Òi´‡ÚCí¡v_»¯Ý×îi÷´{ÚíŽvG»­ÝÖnk·´[Ú-í†vC»¡]×®k×µ«ÚUíªvE»¢]Ñ.k—µËÚ%í’vI» ]Ð.hçµóÚyí¬vV;«hZ€vZ;­ÖNi§´SÚIí¤vR;®׎kÇ´cÚ1MÕTMÕMÑMÒ$MÒDMÔDÍ 4ƒvT;ªÕk‡µÃÚ!ívHó×ü5í€v@; íÓöiû´½Ú^m¯¶GÛ£íÑvi»´]ÚNm§¶SÛ®m×¶k~šŸæ§mÕ¶j[µ-Úm‹¶IÛ¤mÒ|5_ÍWÛ mÐ6hëµõÚzm­¶V[«­ÑÖhk´ÕÚjmµ¶J[¥­ÒVj+µ•Ú m…¶B[®-×–k^𗿥-Õ–jKµÅÚbm±¶H[¤-Òh ´Ú|m¾6_›«ÍÕæjs´9Úí_í_í_m–6K›¥ÍÔfj3µéÚtmº6M›¦MÓ¦hS´)Údm²6Y›¨MÔ&j´ ÚÍSóÔ<µ´´´±ÚXm¬6F£ÑFi£´QÚHm¤6R¡ÐFhõáÚpm˜6L¦ Õ†jCµ!Úmˆ6H¤ ÒjµZ­¿Ö_ë§õÓúi}´>Z­·Ö[ë­õÔzj=µZ­‡ÖMë¦uÓºj]µ®Zg­³ÖYë¤uÒ:i´Z­½Ö^k¯µÓÚií´6Z­ÖZk­µÖZj-µ–Z ­…ÖBk¦5ÓšiMµ¦ZS­±ÖXk¬5Òi´Z­V_«¯Õ×êjuµºZ­ŽVG«¥ÕÒji5µšZM­ºV]«®UÓªiÕ´ªZU­ªæ¡yh𻿮¹k•µÊZe­’VI«¤UÐ*h´òZy­¼æ¢¹h.𳿬9keµ²ZY­ŒVF+£•ÖJk¥5GÍQsÔJi¥´RZI­¤VR+®׊kÅ´bZ1Í^³×ìµ"Z­ˆVX+¬Öl5[ÍV³Ñl4­ VP+¨YkÖšµ–_˯å׬4+ÍJË«åÕòj–š¥f©åÖrk¹µ\Z.-—–CË¡åвkٵ욅f¡YhYµ¬ZVííííwíwíwí7í7í7-‹–EË¢eÖ2k™µLZ&-“–Q˨eÔ2h´ Zz-½–^K§¥ÓÒ©Ñj´­Fª‘j¤¡F¨j¸®†«_Ô/ê5L SÃÔOê'õ“úAý ~PCÕP5T}§¾Sß©oÕ·ê[õúF}£¾V_«¯Õ`5X V_©¯ÔWêKõ¥úR}®>WŸ«ÏÔgê3õ‰úD}¢>V«Õ‡êCõ¡ú@} >Pï©÷Ô{ê]õ®zW½­ÞVo«·Ô[ê-õ†zC½¡^W¯«×Õ«êUõªzE½¢^QÕ@5P½¤^R/©Õ‹êEõ¼z^=¯žSÏ©çÔ5@ PϨgÔ3ê)õ”zJ=©žTOªÇÕãêqõ˜zL=¦ÆPTEUTI•TIUQUƒjP êQõ¨zT=¬V«‡ÔCê!Õ_õWýÕêõ€ºOݧîS÷ª{Õ½êuºGÝ¥îRw©;ÕêNu»º]Ý®ú©~ªŸºUݪnU·¨[Ô-ê&u“ºIõU}U_uƒºAÝ ®W׫ëÕµêZu­ºF]£®Q}TÕG]¥®RW©Þª·ê­®PW¨+Ôeê2u™ê¥z©^êu‰ºD]¬.V«‹ÔEê"uº@] ÎWç«óÕ¹ê\u®:G£ÎQÿUÿUÿUg©³ÔYê u†:C®NW§«SÕ©êTuŠ:E¢NR'©“Ô‰êDu¢:^¯ŽW=UOÕS§ŽSÇ©cÕ±êXu´:Z­ŽRG©£Ô¿Õ¿Õ¿Õêu„ú—ú—ú—:L¦S‡¨CÔ!ê`u°:X¤R©Ô굿Ú_í¯öUûª}Õ>jµÚKí¥öR{ª=Õžjwµ»Ú]í¦vS»©]Ô.jµ³ÚYí¬vT;ªÕjµƒÚNm§¶SÛªmÕ¶jkµµÚZm¥¶R[©-Ôj µ¹Ú\m®6U›ªMÕ&jµ‰ÚHm¤6Rª Õ†j}µ¾Z_­§ÖSë©uÔ:jµ¶Z[­­ÖRk©µÔj µ†Z]­®VW«ªUÕªjµŠZEuWÝUwÕMuSÝÔJj%µ’ZQ­¨VTË«åÕòª«êªºªÎª³ê¬–SË©åÔ2jµŒê¤:©Nª£ê¨:ªªƒê –TKª%Õj µ„ZL-¦SíU{Õ^-¢Q‹¨…ÕÂjaÕVµUmUÕFµQ ªÕ‚ªµj­Z«ùÕüj~ÕJµR­Ô¼j^5¯j©Zª–j5šGÍ¥æRs©9ÕœjN5»š]Í®fS³©ÙÔ¬jV5«ú§ú§ú§ú»ú»ú»ú›ú›ú›šEÍ¢fQ3«™ÕÌj&5“šIͨfT3ªÔ j5½š^M¯¦SÓ©é”h%Z‰V"•H%R‰P"”%\ W•/Ê勦„)aÊ'å“òIù |P>(¡J¨ª¼SÞ)ï”·Ê[å­¢„(!ÊkåµòZ R‚” å•òJy¥¼P^(/”çÊså¹òTyªŠ²RY©¬T¼oÅ[Y®,W–+Ë”eÊ2e©²TYª,Q–(K”EÊ"e‘²PY¨,Tæ+ó•ùÊJ¥—ÒKé¥ôTz*=•îJw¥»ÒMé¦tSº(]”.Jg¥³ÒYé¨tT:*”J¥ÒNi§´UÚ*m•ÖJk¥µÒJi¥´RZ(-”Js¥¹Ò\iª4Uš*M”&J¥‘ÒHi¤4T* •úJ}¥¾RO©§ÔSê(u”:Jm¥¶R[©©ÔTj*5”J ¥šRM©¦TUª*U•*J¥Šâ®¸+⦸)•”JJ%¥¢RQ©¨”WÊ+åWÅUqUœgÅY)§”SÊ)e”2JÅIqRœGÅQqTÅA)©”TJ*%”J ¥˜RL)¦Ø+öнRD)¢Q +…•Š­b«Ø*6Šb£T *kÅZ±Vò+ù•üŠ•b¥X)y•¼J^ÅR±T,•ÜJn%·’KÉ¥äRr(9”Jv%»’]±P, %«’Uɪü¡ü¡ü¡ü®ü®ü®üªüªüªdQ²(Y”_”_”_”LJ&%“ò³ò³ò³’AÉ dP~R~R~RÒ)é”tr”%GÉ‘r¤)•¿Ê_åp9\—?ËŸåÏr˜&‡ÉåòGùƒüAþ ¿—ßËïåwò;ùüF~#¿‘Cä9D–ƒå`9H’ƒä—òKù¥üB~!¿ŸÉÏägòSù©üT~,?–ËäGò#ùü@~ ß—ïË÷å»ò]ù®|G¾#ß‘oÉ·ä[òMù¦|S¾._—¯Ë×äkò5ùŠ|E¾"Êr |I¾$_’/Êå‹òyù¼|^>'Ÿ“ÏÉr€ Ÿ‘ÏÈgäSò)ù”|R>)Ÿ”ËÇåãò1ù˜|LVeUVc~È’,É’,Ê¢,ÊÙ ä£òQù¨|X>,–ɇäC²¿ì/ûËäòyŸ¼OÞ'ï•÷Ê{åÝòny·¼KÞ%ï’wÈ;äòvy»¼]Þ&o“·É[å­òVy³¼YÞ,o’7É›äòFy£¼AÞ o×ÉëäuòZy­¼V^-¯–WË>²ì#¯”WÊ+eoÙ[ö–—ËËååò2y™¼L^*/•—ÊKä%òy‘¼H^$/”Ê åùò|y¾J¤Òé½ô^z/½“ÞIï¤7Òé"…H!R°,KAR$½”^J/¥Ò é…ôLz&=“žJO¥§Òcé±ôXz$=’I¤Òé¾t_º/Ý•îJw¥;ÒéŽtKº%Ý’nJ7¥›Òuéºt]º&]“®IW¤+Ò)P ”¥KÒ%é’tQº(]”ÎKç¥óÒ9éœtN ¤éŒtF:#’NI§¤“ÒIé¤t\:.—ŽIǤc1Ëÿ˜i_Š!J¢$JÉ ¤£ÒQé¨tX:,–I‡¤C’¿ä/ùKû¥ýÒ~iŸ´OÚ'í‘öH{¤ÝÒni·´SÚ)í”vH;¤’Ÿä'ùIÛ¤mÒ6i‹´EÚ"m–6K›%_ÉWò•6J¥Òzi½´^Z'­“ÖIk¤5Òiµ´ZZ-­’VI«¤•ÒJi¥´BZ!­–K˥咗ä%yIK¥¥ÒRi±´XZ,-’I‹¤Òi4_š/Í—æJs¥¹ÒiŽ4GúWúWúWš%Í’fI3¤Ò iº4]š.M•¦JS¥)ÒiŠ4Iš$M’&H¤ Òxi¼4^úGúGúG'“ÆIc¤1Òi´4Z-”FJ#¥¿¥¿¥¿¥áÒpi¸ô—ô—ô—4T* •†HC¤!Ò i4H( ”Jý¥þR©ŸÔOê'õ‘úH}¤ÞRo©·ÔSê)õ”zH=¤R7©›ÔMê*u•ºJ¥ÎRg©“ÔIê$u:H¤öR{©½ÔVj+µ•ÚHm¤6R+©•ÔJj)µ”ZJÍ¥æRs©©ÔTj*5‘šHM¤FR#©‘ÔPj(5”êKõ¥úR=©žTOª#Õ‘êHµ¥ÚRm©¦TSª)ÕjH5¤jR5©šTUª*U•<$ÉCr—Ü%w©²TYª,U’*I•¤ R©‚T^*/•—\$ÉEr–œ%g©¬TV*+•‘ÊHe¤ÒRi©´ä(9JŽR)©”TJ*)•”JJÅ¥âRqÉ^²—쥢RQ©¨TX*,–ì$;ÉN²‘l$©TH*$YKÖ’µT@* ¬$+ÉJÊ'å“òI–’¥d)å‘òHy¤\R.)—”SÊ)唲KÙ¥ìR6)›”MÊ*e•²JJJJ¿K¿K¿K¿I¿I¿IY¤,R)³”YÊ,e’2I™¤ŒRF)£”AÊ e~’~’~’ÒIé¤tb”%F‰‘b¤)~¿Š_Åp1\ ?‹ŸÅÏb˜&†‰ÅâGñƒøAü ¾ß‹ïÅwâ;ñøF|#¾CÄ1D ƒÅ`1H ƒÄ—âKñ¥øB|!¾Ÿ‰ÏÄgâSñ©øT|,>‹ÄGâ#ñø@| Þï‰÷Ä»â]ñ®x[¼-Þo‰·Ä[â ñ†xC¼.^¯‹WÅ«âUñŠxE¼"^/‹—ÅKâ%ñ’xA¼ ^Ï‹çÅóâYñ¬xV Äñ´xZ<-žO‰§Äâ ñ„x\<.9ùóu?f’c¢ âQñ¨xT<"ˆ‡ÄCâ!ñ xP<(ˆÄýâ~q¿¸WÜ+î÷ˆ{Ä=â.q—¸KÜ)îwŠÛÅíâvÑOôýÄ­âVq«¸EÜ"n7‰›ÄM¢¯è+úŠÄ âq¸N\'®׊kÅÕâjqµè#úˆ>âJq¥¸Rô½Eoq¹¸\\..—‰ËÄ¥âRq©¸D\".‰‹ÄEâBq¡¸Pœ/Îç‹óÄyâb±·Ø[ì-ö{Š=Åb±‡ØMì&v»Š]Å®bg±³ØYì$v;‰Äb±½Ø^l/¶ÛŠmÅ6b±ØJl%¶[Š-Å–bs±¹Ø\l&6›‰MÄ&b±‘ØHl$6Š Åúb}±¾XO¬'ÖëˆuÄ:bm±¶X[¬)ÖkŠ5Äb ±šXM¬&V«ŠUEÑCôÝEwÑ]¬,V+‹•ÄJb%±‚XA¬ –Ë‹åEÑEtˉåÄrbY±¬XVtD'±´XZ,-:ˆ¢ƒXJ,%–Kˆ%Äbq±¸X\´íE{±¨XT,* ‹…E;ÑN´mDÑF,$ ‰Ö¢µh- ˆD+ÑJ´óŠyż¢¥h)ZйÅÜbn1—˜KÌ%æsˆ9Äìbv1»h!ZˆbV1«˜UüCüCüCü]ü]ü]üUüUüUÌ"f³ˆ¿ˆ¿ˆ¿ˆ™ÄLb&ñgñgñg1½˜^L/þ$þ$þ$D ÑB´%D QB„!D_…¯ÂWá‹ðEø"|> Ÿ…OÂ'á“ðQø(|B…P!Tx/¼Þ o…·Â[áðFx#¼^ ¯… !H^ ¯„W á…ðBx.<ž O…§ÂSá‰ðDx"< „‡ÂCá¡p_¸/Üî ÷„{ÂáŽpG¸-Ün 7…›ÂMá†pC¸!\® ׄ+ÂáŠ( Â%á’pI¸(\. ç…óÂyáœpN8'B€pF8#œN §„SÂIá¤pR8.Ž Ç„cÂ1ATAdAdA$Abƒ`ŽG„#Âaá°pX8( þ‚¿à/ìö û…}Â>aŸ°GØ#ìv »…ÝÂNa§°SØ!ìv~‚Ÿà'l¶ […-Âa‹°IØ$l|_ÁWØ l6ë…õÂza­°VX+¬ÖkÁGðV «„U‚·à-x +„ a™°LX&,– K…%Âa‰°HX$, ……Â|a¾0_˜'Ìæ s„9Âa¶0[˜-Ìf ³„™ÂLa¦0]˜.L¦ Ó„iÂaŠ0E˜$L& …‰ÂDa¼0^/x ž‚§0N'ŒÆ c…±Âha´0Z%ŒF    #„Âá/á/á/a˜0L& †C„A a0P( ú ý…þB?¡ŸÐOè#ôú½…ÞBo¡§ÐSè)ôz=„nB7¡›ÐUè*t: …ÎB'¡“ÐIè t:í„vB;¡­ÐVh+´Z ­…VB+¡•ÐBh!´š Í…æBS¡©ÐTh"4š„FB#¡¡ÐPh(Ôê õ…ºB]¡®PG¨#Ôj µ„ZBM¡¦PS¨.Tª Õ„jB5¡ŠPE¨"x‚‡à&¸ nBe¡²PY¨(T* „ BÁUp\gÁYpÊ å„rB¡ŒPFpœ'ÁQpÁApJ %…’B ¡„PB(&Š ö‚½`/ŠE;ÁN°l[ÁV($ …‚BA¡€P@( äò ù…|B>!ŸWÈ+äòy„y}òšôjÒ«I¯,íbú‹é/¦O¾~Ž-ôXè±Ðc㋎/:¾¨E‰ æù4%ôÓ EL ‰©×Ôkê5S‘ÏÈ5#׌\ó}[>ÓéL§3âŽÙŠúõ-ꛘÐÔ–sËy,ç±ølùGÀQ¢ D!ŽGˆ‰)c®¾ÕñVÇ[3®­¸¶âÚ ‡Ê•*'U€šýqöÇÙÇîÃä€ÏÛœ·9o{%•ÂZa­°v¶ÊÙ*g«ðiŠÿ§ Š˜@‹¹²ÐTðsóáïÛò‚_ü²à—øGn ÝþƒŸüôà'S[‹¹²¹À¿Lü2ñKÒF•1Ç(²Td©ÈR mí¥'—ž\zbaÚò˜k'w«¬Ú[µ·jÿòi€„"&,’#Rjµ§ÕžV{â³å5¹ÖäZ“+¡Û_cýõ7LmsÉÑ%G—Mü¾'GOÆV%•üUòïʹ+箜/ƼóbLÌ͇µ“ÚIíäÀÚk¬±_Ìónãsí¬Í;›w6ï&ä™gBž˜§ü†X‡X‡XôýèûÑ÷ÆØcoŒé혧o!Ûûlï³½Oª–¿ìÿ²ÿËþñé˜Ør÷§ÝŸvz|üññÇÇ¿ôûÒïK¿'þOüŸøïy¶çÙžgÍ^7{ÝìuÜÛ±v°v°vˆ;Óò§ Š˜@²X¶6lmXREV1W£Æ?¶ü¾g—ö^Û{mﵦ¶y»ÑíF·Åg;)÷YØgaŸ…‰¿F9F»íF´ÿvö”zJ=¥¸·Ùz}ëõ­×5 jÔ0>Ûü<úóèÏ£“û àö½Ú÷jßËÔvræÌ¸îźë^$4²}£ãÄôpZþ4@BHO7?Ýüt³©øgPùAå•ÿÖ.†^ ½ÿÈêûž]jjkN:ýéôgR]¯™ÐžŒÏþÖ¸Xãb‹Iµ¿1Jô-Ñ·Dßøl3 q@ã€Æñ‰~“ãi²‰é縟°#¡Ñï÷µ™O$``ÉÈTäXʱ”c©ø‡@^>^>^>ÆÛ©;µîÔºSÞ-}·ôÝÒ¦¶0rÍÈ5#×$~¯“/D<ÓéL§3ºåÛl;°ÍÔ6c_½÷vzíîµ»×nSÛ±÷²÷²÷J|à—ÐëVã³Í®_»~íúÕÔÚ,j³¨Í¢Ä·<îvö8ßã|ó|š ©HF3OÌ<1sâ#¥Žu:ÖéXÇø½1OºMü³K×fZ›im&SÛÊe„2ñßëWý£êUÿø¾-ßñ¸ãqÇ#1aj̳{ã~ï¦U›VmZ•T#êàœƒsÎI|üÚñµãkǸ·påà•ƒW&¾Í'Ož0õSroʽ)÷¦ø´9m~š ¡€ €$£ã[o=¾ÕT´þÆúëoü›ø3úÏè?¿ï)°ñviÌ+·wLÞ1yÇ$í­•Ú‡qomv‹Ù-f·ø¾£óµÁ×_$&LÝwjß©}§L½Ë&M:›tI{³ß¨Q¢ $>Þ{}ïõ½×M½·rÛÊm+·MÚ–'¾ÍióÓ EL E¸E¸E¸%ææ·×g]Ÿu}–ñ{]7ºntÝóçCW ]141Ï.5Õ¶SÚNi;Åœà˜«6sŒLzºxºxº˜z×Ð,C³ Í’ßq„8BLL?OÈ3!Ï„<¦Þ;Õ0Õ0Õ´mž|{òíÉ·óÓæ§ Š˜@²3Ù_d‘ýqB>å|Êù”ûF¸>4|hxÌk®­¸¶âÚŠï‹ou¼ÕñVGSïZ]xuáÕ…“j“#þ¾§ÿÆûq·¹~ïú½ë÷6õ._?_?_¿äQ›çnž»ynbú¹a݆uÖ5õÞ˜+›“¶Í»3îθ;£©ŸØü^ó{Íïñi€Ä#&ì6œÞpzÃéï‹”LÝNv{µíÕ¶WûïEqÞØ6îg—šŠÄb<>þøøãã Ýß?ÝütóÓ͉9:‰ €Ë]*w©Ü%SïŠyömrŒ¨ËW/_½|51ýì²ÏeŸË>Sï½Ýèv£Û’¶Í¦®¾QqdÅ‘GƧåiíÓ EL Ù½óbÌ‹1¦b¡˜[Κzoüƒ®ï{vi×_»þÚõ×Är‰isâ·Y*²Td©ÄÄÀv—í.Û]6õ®W^uxÕ!9FÔËþ/û¿ìŸ˜~Ž}Ccc!Ö!Ö!ÖIÛæ †A ƒšú‰%ú–è[¢o|ZžÖ>MPÀÀ~S‘Rû^í{µïeüúû÷-îãõNÑNÑNÑÆaRÌ fúìRS­š˜yb扙“vOÍ!NNèöãþ)9sæ4õ®/ý¾ôûÒ/9ÆRØŒ°a3Ó3y–åY–g™©÷†·oÞþG¶Ùª½U{«öñ?¦içÓ EL à™|{òíÉ·¿X;X;X;GJ¦nu; Õ€VZ¿þŽÇ;ñã¾%ï ïÞ'¼¿oOÓN;¶ü‘pL@›º௠¾6øÚÀÔOÌy,籜ÇâLÓΧ Š˜ÀrjÜ©q§ÆÅ?Rê7¼ßð~Ã_³iÕ¦U›V™ú)ñv©w7ïnÞÝŒ_Yк uAëÄÄ«i'Ž}ãbc17=Nޱìì잺nýÚñµãkGS?±Èþ"û‹ìÿ1M;Ÿ&H(``?HÌÓjMEJ ~YðË‚_b¿þûâ½ø?»´S…N:U0~e·ànÁÝ‚ €ãóSb?ÛÕØ•ƒW^9˜c鯨coŒMLϸìsÙç²ÏÔ{c®MÚ6Ç}Mmìöði€Ä &ðC™Š”š½nöºÙë˜×<ÝütóÓÍÆ¯‰}½©©í›ºÕíÿ<»ôÏè?£ÿ4Õ’Ís7ÏÝ<79öQp«=­ö´Úcê]¾~¾~¾~É1жWÛ^m{µÄôLú ë6¬kê½ûï?¼ÿpÒ¶yß©}§ö2õë÷®ß»~ï„Ó´ði€„"&ðCÅÜrÖø[IÞ1yÇäóçm]¶uÙÖÅø5½v÷ÚÝkwܑՃ÷Þ?xw4seªñßgû)ÛOÙ~J|°švà™gNœ9ÑÔ»†X±b™£hÌ_cþóWbzÆÓÅÓÅÓÅÔ{§¯ž¾zúê¤mó´ÓvLÛaê'Žk9®å¸–|š ñ€ €üP¯:¼êðªCÜ‘ÒÐ,C³ Íbü÷k3­Í´6S|~JÜÏ.]6oÙ¼eóŒÿµúýê÷«ß'ŽÿO9Úäh“£ML½Ë&M:›tIFˆ*U îgÇç'îþ´ûÓîO¦Þë^ɽ’{¥¤ù•ÛVn[¹­©ŸÓ>MxÀÀR@ÜW^šz>ëíF·Ýn”˜íÇ<»´}¯ö½Ú÷2þ×YÃf ›5,ùöNpè±Ðc¡Ç³…„:<èð Ãƒÿƒ5 jøcZx"ðDà SÛÏþ8ûãì“ã™Óúø4@BH¦n‡k*¬*¬Ö kñɶŒß2~ËxãíÙ_d‘ý¦­‹é/¦¿˜>ñ{—vàølÁÞËÞËÞë}àûÀ÷‰ig„[„[„[ù¥å—–_šTÁmÜ[ˆ‰6ßÃ-å–rKÙÔOéT¡S…Ns4õýi€„"&4hlo]íúk×_ãY=ÝütóÓÍñß~ì(+ñ{—Öà3Ît:Ó)>Û‰ q¿¯#׌\3rMüi|¶)årH9’ï:à˜Û,ǽeùƒüAþÀ§ ’ 00€ó$×øGJÞݼ»ywKèO‰ÿö´Ðj@+à仚6¶˜Û/Çg›_ú}é÷¥_B£ß„öLÜÛÉu ×\ºÍøD¿mµYÔfQ⣾?MPÀÀRLü#¥«[®n¹º%¡Ûšeh–¡Yâ³ýÝŸvÚýéÇìWÊníûŽB|¶ëÚ¤³Ig“.î­Ù¼³ygónb扙'f>çtÎéœSˆuˆuˆõ'¯O^Ÿ¼bžM»|Âò Ë'”»TîR¹KÆ[hX·a݆u“ªgž-{¶ìÙ2kkk‡øôÆÞë{¯ï½s]lxûðöáícþ3Š—h\¢q‰ÿ£ÒÙ¤³I÷bÌ‹1/Æði€¤EL Ål²uÈÖ!ñ‰Ê¾/ìÜi·Ón§]ÜÛϘ#0G`Ò^­˜6à1·ƒÎß ƒü ,’AÌsmߦ{›îmºäèg«öVí­Ú[$›nÜ ¸œ}röÉÙI;êôúi€„"&b^;¾v|íw¤Ô¾Wû^í{}_¤ôªÃ«¯:ĽýØ×’&Õ~¥å8ö6 k…µÂZRE§¦W˜^aúƒ÷Þ?xŸ|=ó^»Ëv—í.'môkïeïeïu1ýÅôÓ'GDª×O$00€w¤´äè’£KŽ&ßöÝZtkÑ­¹G)»µ„n?1?%æ:Ý¡áCdžg{Ÿí}¶÷ McÞõ׿îüu'lFØŒ°?¦gÞ¾{ûîí»1ùkÌ_9å<–óØ÷…¾1Ï޹Ùuè±Ðc¡Çø4@r#&€4-î¸4icæ•ÍV6[٬ŅZ\pÝèºÑucÌ“w-gZδœéíí]¿wýÞõ{ÏÏ=?÷üÜ1ÏÖMÙ+Jcwî\¼sñÎÅ+·­Ü¶rÛ˜ë›câá"û‹ì/²?æï»þÚõ×®¿n¿eü–ñ\ ?00 Å$Ç5Í)Õrâ^0ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÀt‚˜€NÐ ``:AL @'€ €è00 & ÀÿÑŽÇ»œH¡r2…Ê©*§S¨œùá% …ÊÙ*çR¨œO¡r!…ÊÅ*—R¨\N¡˜BåÊ/WS¨\K¡r=…Ê*7S¨ÜJ¡r;…Ê*wS¨ÜK¡r?…ʃ^¦Py”Båq •')Tž¦Py–Båy •)T^¦Py•B%(…Jp •×?¼„¤Py“Båm •w)TÞ§P M¡ò!…ÊÇ*ŸR¨„¥PùœBåK •ð*_x‰H¡™B%*…JtÊ”céR¨ü”B%} • ÉU€@·€@'tÇàH;t5 jÔD;–låx žIÌÓˆy±ù?8í<‡8í<8í<{øJ •´óìá´óÔá´ó¼á´ó¤až1¬¿§ §Ô3†ÓÎÓ…y®0OæYªިz£êÍÿ4ÿÓüO;Wì\±sÅù‡çžH´€À0À‚ë× ®»·îÞº{ëvÑiD§ɦ¡eCˆ–ol¼±ñÆ“.Oº<éBÿPÀ`Œ¤Q+¬ü±ò.»]v»ìÊÍ+7¯Ü<‹•;8wpîà•W>\ùðµÍk›×6#âF Æ€@\6¸lpÙIÝ'uŸÔÝÂìõìÖ³[ÏnwmîÚÜ% à€À0й°+aW®LÚ:i뤭ßÄ ¬&7-R*oß¡“³”»3ñù:/·‡>-Nxxx¬[`².»n\€·ó›©õ}?:\ôjV^ÛêÛµÿ˜­uιÜÚ†®]º<Ÿð|Âó Sb€1` [»Ní:µëTüCÖ<Óì;vwð4}æòЧ/<¼åÿˆxQW®¾¼‚´ÅéàÈÈ%çóï)ÿ Fßø·sQÎE9åŒÊ•!*G–€1` +Á}ƒû÷mèÔЩ¡S|ÂÔ¢=[ÿÕÿZEÛ…3þ’|qo¼"áLËþýKþÚËÒóp|Zn½Ûz·õî[çn»uŽãH›€}ðßé¿Óģxú–é[¦oyS÷MÝ7ué™ïC tâ”xJ<%Æ':-¶«ÓöE+Ÿ_ªÇ=–©5Ú°ìÔúšª]Ϩ·õrÜûÛer—É]&GdˆÈÁ‚:G ¤v1nL¸ko„Áq#0#oß½}÷öÝþüûóïÏß·…o _‹ÂÑÛÑÛÑ{ù¿Ëÿ]þï£êª?ªÎ±˜¿Ëf,›±ÌÔì–»¥Ý…â3+ ‹‡öÔGôû?×÷^yùXã‚BµÑMN™êVÁ­‚[G4ˆhÑ€ÑÐ+`@Oƒ“ 0@ЉR¢”(% }@ú€ô­zµêÕª—…Ù°-k[Ö¶¬_)¿R~¥>ÿTüSqŽÀ|,íµ´×R“óf¡¼Õ}šUs·^ódyýE¿ÿS;­° ØèŽQÃë˜êž¯{¾îù:ºHt‘è"Œ€þzEœÀ?TÔí¨ÛQ·ç9œçpž|Kò-É·$ñamÞüoçÈYø®s×ÜÑÅG¹õ±œiß«B@žëÖCŠÍy+©"á¹Kæ.™»ä}÷5Þ×à8RÊÞV{[ímej¶²ÛÞèA—“Žë†ÌÑyôkT—üÒ÷×IÓMžóšî5Ý‹ñÐ` - N(`€äÌ‘3GÎ)´©Ð¦B›â¿TͶ;ûS‹•5ÖõÏiSµÇÈuKÞ½øÄ¤²Ï&O¾~ÝÕ5¡õ¤É×,]ö_´óOÇÊM÷+RÚnoÙV¹W&4 ^c³ÆfMDÞˆ¼y9²€ãF5nÔ0yïŠg †t\ça³®v@ë´ýþO ¼¿ÓĦzÉ?«Vÿ¬Œ%€ži ap|$£·^o½Þzõ<ÝótÏÓñZ–µh`aÕ|âÔ,E]FöQ”uø¾ 7¡õ?§ÎÝpnÔmúêš%Ë—øÉ½¥|k•Þ*½UúˆˆËŽ5 ù„9‡9‡9›šòŸ«P±Æm÷ûkGž©Ÿ–£ßØuÑ/më*gªÇŸz|êñ)Æ@€´Œ0Ø`€dqlÕ±UÇVÅgÑY|½Û>K¯þ¶;8æžìt½®«Õ }ã®ÿ¾«/]£q¿)6Eâ³óÎÌ;3ïLT¶¨lQÙ8ú€¤5jبa£†}cúñÊv0{·+sjí}ÿ§Î¼öó™w+ö«ÕøÛ*¯â¾¨yQó¢æ1º©0€„Á±$íÑÛ£·/|±ðÅÂq/. ®,Y6—Ç€·»‡9î6‡¸7îztÄÉ å²T©Õ}LÁ³qïW­6µÚÔjóvéÛ¥o—2‰w¡ç…žzššwÊ—›=dWIâ^Suå¹+ŠÊ·MõÞæö›ÛonϤvÀŒ$¯ó¾Îû:¯Wå^•{UŽ{)Ù~ØÂgÅnOv¹ÞÌ5¿ùG¿Æõà~ûÕÒSò¦/¸#ÇoqïéÃ-·<ÜÂØ|Ÿ¨òQå£Êv-ìZØÕx–)Ù¢WôøÇD¼ñ©ËušÐfÍ"Sóõ»?ÞýñîÆ õ"·´#^®õ¹ÖçZŸ•íV¶[Ù®Å×_[|µH´2™Ëd.“yÜñqÇÇ* •„JQ;¢vDí ·©ËçSŸO}>Uß³¾g}OS³^‘,ÎÛóü9ò½¶¥l‡Ôú×W^™æ²¤îëá-í~Ž{Æ¿¹ôæÒ›\ H°ý]÷wÝßÕxfÉi°>c÷§ûÙµ•OGîÆ¿¶™WÇ¥£qNÊ2)ˤ,Œ7@êE þÒNLŒÿñyÇçŸwHý¥þRÿ¶3ÛÎl;Óâ‡Ëß-·üÝ–––ž< xÀq˜§pïpïpïºsëέ;×ä-‘‹¢_ãºûæµn%—Ç=¿ß~{øíáŒ@|D–‰,YÆÔœâRpêÃM tZWš½4Ì ›êÕ×_o|½‘±H€|}‡ÁÀˆzô èÁ¤"“ŠL*ba–*Þ©x§â¹“ÜIîÄñ˜ƒ¨§QO£žv ïÞ1ÜÔüÕêÀ¬ öuôú×CÖû?)÷œþ¢Ò‹J/*1~q‹ˆEÄo|?ÍïàZµZ¢ÜÄÔÅrt‡m7îÛ9®s\ç¸2ö©0€ÄÓ_LœF=›ólγ9ý×ô_ÓMb¢Ùú‹¼+ÐzìÈò»Šå[þ´ÆÏŽáÛjÖû§ìó=ÕæqþgWÆÕÊ…op¨}£L£Ù{d(ù®g‘Ò]í²óV˵ñ;äb‹Å‹ýzè×C¿F]Žºu™£ øñfQtFQS“U‡‹WwL;Ñoìzø]±N™–¦zÆfšÍ4›iaÇÃŽ‡gL)Ÿ¥|–òYŒç×?fœÛö!nbêÊ –·’Ιš©¿|úòéË'F u!´ô§!ŸúüÓçŸfYͲše•ÐÔuÚŠÊWK¬>ÙúL¥ðèè~ýj×Nªú}½žk8ø¯Ÿµ\Õ†.EGØÿV•ÚVj[©m/^äø~Œ#uÔ=R×ÔÜÔfûÜlöoÒfô»þë°¡¾S¨©^ê“«O®>¹KcO ?)ü¤°ñÜ‘»gá Å<Ü×ù'ÄM|m·¯ÑÇ.ŒûY.'—“Ë1© 0€ä“zÃ`à4áLÏ3=ÏôŒÿÐôŸ_¾X[Æ 1ܲzKê+‚Û$«‹¯ëð·Å‹ì‡sŒgtÉͧÿNÿÀøAfõÈXòýÇà^[kD›[èkª>{¨u³J» îÏõ8Ç Ž ÀŒm}zI9O‚Þ¸kW·æ{òŸf´Êj¡s +D¶ÉQëÚñÀ_/c@r ß¾#|0’‘³m –®÷/w\å§Ôú~£^ׯví2^ýª[:à˜RJ÷Gk7”ô#ÜO=.û™ÛåŽ2f åpkÐçY% k“£v­>s”_ÆÜÒÐÀSvMÙ5e—Sz§ôNéÓeƒ: ê4¨ÓÖ[;lí †«ájø± i±ìôßé¿Ó?î¾ú7ÐýdÉs‘Íúö¯å—Š£_£úZÉvWÝãÞ÷¿žüõä¯'islP(Jê*[Nn9¹åäÀòË,Ÿ˜B™‰e&–™8ÕoªßT¿£Œ>0úûÚ3vüØñc¿qkÄÒ£k?Ê7“X7¡u'7¯“Å¿qp±ÑÅF­iš¦i| ( %m–Yzdé‘ÅxލÐk~™ý?Ö&Gívͧ̉ìÆ}^êZ©k¥®1&) …’ZŠñ\¶H\$.é …’´åàØƒcŽí—¾_ú~ H6c^Ÿ†žü?M.ñ¦Ä›»Ãw‡ï¯V3¬fXbNøNm5µÕÔV×^xýa¤w¤w¤·¾:ý²ÞËz/ëÅÝ'GÛ5¹éªé)ô5®ß=ëY¼Fžšþv~VMõƒw]ïºÞu£©EåèÊÑ•ï‡Þ½ºèú¢ë‹®çy™çež—ß·B(k]Öº¬õÆ…n\ø²ÌË2/ËÄýÃ?Oû<íó4S[þDlY¦ nBëI¯¯]výÙªŽÝÆçŒ{õÌÎ3;Ïìdà@ÚärÂå„Ë ãÙÁÝmõˆ“ûÌ-:uô6[Ì?¿üðêwrì²g}:Ûž\årïÎãi?Ú±Š½EÛùƒæ» ^|lpyÇÙw劽Gæ¶/9ƒ v²;kÜóç#ÎGœgdÌŸñ,&6‹é‰ÜNß2}Ëô-ñ?óúúÆ–Î<;ô}Î÷9ßç<8üàðƒÃG7Žnœ¨[F{=îõ¸×™3fŽhÑ4¢©>†Ý‡]v}Øeåkåkåkjß/žns¥òJ}G¿±ë¯ïû<¯Õ±ç™Ò>v.¦údo޽9öæàפJb´->Éø$㓌Þc¼Çx±Ëg—Ï.ß÷­ì›Ø7±oâÓ̧™O³§“žNz:)ú^ô½è{1?jçØcwŽ5~—ÛÎN¡ÖoˆrS÷Û¬9d6îÛZÃj «5Œai“ñ¼ã~þlç˜Ñõ²>ÇŸ¬üWÝ ø/hW=·ùô7þ{óÙ/Û¹õ[wøÆWBÞ†¼ yËȤÆU0€ÄH½¡oléRKw8øáà‡ƒ‚¯à+ø¶UÚ*m•ÄDÂÃ=†{ ÷8÷âÜ‹s/Âåp9\N]ƒ/ê]Ô»¨wÍG4Ñ|„©}¼öª}~·¨´ýÆ®£œûеîõiá4ßþ¹ìÙÿ²?¿È Õûý5úëóKÏ/=¿´îʺ+ë®8þìø³ãÏß·BÈ_1Åü—®]ºvéZë%ÖK¬—¿fDM1¼Ì(BÜDÕ…®—tÍ•§]þ“Ù¿q{í'>O|žø0´ ­1ž Ö¨ò¹Ñ ó J 9V¿×Ì+v ¥«Þ°éMÇBƒÿ­åì;¥ëƽþ;£e|BbóÙ¯’z‡O´7náíu·×Ý^ÇȤÆU0€„ÒGè[ºÔ{0Âr„åË¡-Ðh º»uwëî–˜H¸Ýþuû×=5éÔ¤S“>¿øüâó sÞ÷Å!‹C‡˜Ú—ó3[GVΛ6£ßØu¤EßfµV5Ï_l‹u„©¾z¿âýŠ÷+øÕúÔ*¨UP«-/¶¼Øò¢Â– [*l±H´ÜïZ^Hë°Ÿ×sê{_Ì¡U×/=RÜ˸ŸçÌ ˜À€´ÆxF(êßfÄ@[sˆHËnö´\µãž’Û´_É/cþÕä½FV¶¯=ä¸ùÀeÚI·¬—q Oýtê§S?12©qA >ôúÆ–NO‡êK±/ž;írÚå´Ë€!† ’˜“¼Ý~ëö[·ßÔ+êõʧ3ŸÎ|:cûxÅæŠÍSmÞÙhœKK¢ßØõ§a½nÕ,`u#çðì‡{¬ë“®Oº>áפ!‹C‡,Þu`×]jü\ãç ¾J¸Ç•õõKF'UíÙýüSçI¦z;Ú.Ú.ÚŽq i‡ñ\PÒ©×¢ñmÌâÚßtÕ6½Óªù*–¨•=>!®ûõžgšçi\ô©Ãs€×Li¸q‡q ýzè×C¿22©qA À}‡¾±¥Ó÷ ÿþ)üÓùÅçŸ_<¢ÓˆN#:%&n3£ÍŒ63 ÷ ÷ ÷?ôúÐëC¯¹/_Ÿ}þõy¾:ùêä«cܶ‰¹+ž,Þ•¸×Tý ´ÓÍ*ÕMYá¾p_¸Ï/>HkÞÍ~7ûÝl77·Fùåkôp[à¶Àmž<3xfHL$ÜHh$4ü7úoôßøîð»Ãï'_ËWY­²Zeõ§"íÏõ8ÇŠ¯¿ô™_Ëž 7îzW•mœ1u4ÃBÂBÂBøUiÙƒí¶?Ønsלàn¡kÒ—ìhÜç›{mîµ¹cÒŽoÀGyÍÜ‘²á¨û¾5A§ÿçrÏ«°W‹ÿœÆ¬²ø†YÀ}g¾ñ{gÜÂí¶?Úþˆ‘ H«`i3ô-ƒ RŠ”"¥coŒ½1vZ÷iݧuOL$\ï†_ ¿Ý¶»mwÛ†œ9r" †©ôFz#™ú‰×Jµ»æH¸¯úV¿µ=ê…Y[ ˆqO.Ù¹dç’|" -kˆ5ÄÆsD‡‹W/Mœõز§[–fÜç­¶Øz cÒã¹ TÙ¾âäÁ)ŽVX7ÿÍþ/±[åàcqüyü·à2wz¥-›sìÒjÚ¿›·pßð}Ã÷ gdšƒÊ å…¢¾R_©¯–LY2eÉ”žK{.í¹´âo«ø[î:¹ëäþƽⲯ̾2ûJç Μ3t;‹Åyí絟×^('”Ê=™üdò“Éô-½®"€´‰Ð76àoˆ:u8êðÝŸïþ|÷ç¹ã掛;΢E!‹Bß WlQ±EÅ[Ûmm·µ]ÐÜ ¹AsÚž©~Sý¦úoyT&×>ö-ˆuZ?|Û¹B•q¦Ž×û ï+¼¯À§Ò¦I#'œ4Òxva/ž*3È|BÓIůzºh­sü[Ǿw©ÓÕón°\fšýEŽÍ¹[f«^ÈÏá\+ª=쓩ߨúǪ•cÎðäö׺75/GEFEFE22 -0žŠÍïToøæ” G+>]r¤Pb®.ãþòñ—¿B„ÑcZi=¦Yü­œ[9·rÞ·}ßö}ÛßZ½µzkűÚWÀ@ÚAèk pü Š=èa퇵Ö^Úhi£¥¬&YM²šô} kÇýŽû÷¯¯¿¾þúú/~ñû‹ß£#¢#¢#Œì»ïV¼[aj;!£º?ªÞ”@÷ûêV]l‰q¯.ºtêÒ© yH›Üûº÷uïk<;Lr©o×Ë>-”›VÂÒ}’¥ÿµGÛãó¾kh¦ðäë×]]]Ö4[›é7þcÖÞ÷{ßïed@Z`< Ø6¨7£})s»tL ÿ-”hÞýÚØ‹æ;þ4ø¯Y߈¨µ@-Pcd&£1Ñc¢Ç\¼zñêūݚtkÒ­‰…Ùh¸¼áò†Ë… ;9!rBä€ÔµŠ ôÐ7>€¿×Íè›Ñ7ŸVZýiõU7VÝXu£èÊ¢+‹®ü¾…µÝ» v¼C½C½CŸÔzRëI­ècÑÇ¢ùØúØúØ¿~Æ<·ù%³â&¦ÎÚ-¢ÚqSG$ü`øÁðƒ sàKcÎ yšenAiÖëºZ8ìªq<ïÛØ-,ýºÎî|»Z9Îô·Ï×Çf˹[Rôƒƒ[õˆ¼§MÍtæ7 ˜ôg‘Æí¼+ß•ïÊŒLH›³°å¢Ên6‡ˆ4v« Vþ«n†x…Ç×zžin™¹¸£“Yߺh·Ö}ûcÍðüÈó#Ï02“VÔã¨ÇQÅÂba±p‘fEši–T‘mîù-³w´ªi·:ÇYËöÖ³²&m$¼£ÃŽ;:|õúêõÕ‹ãÀüWÀ€þú&p{ö"ìEØÆüóoÌ_fH™!e†|ßÂÚr‰åË%¦þ5èQ·àjG q_ºT6¼Hã–nJ7¥›ŒgàK£ã«ZAùÚ™CDÚáå’QÅÛÆn[ƒÆ£ÆÚ]ˆùWSk†ê'û.+ôÙüàîÕÖÌ*ù›oŸøýÄï'~gd@Z·tÞÒyKÏî‘kϨ)‘–~3bæÂõ±[åPaÀçéËâ~W±¢"†…›š£Í'Îw¸Ì¶Ê½[ø¹ç瞟{22“ʹ%ç–œ[R,±üÅò'ôQå ZÿÛ©º×Åâ£s÷-+|ߊËsæ{ç¹]¬º_"´Z–^s õø¾sV†—†—†—Ñ!Ñ!Ñ!Yæù]žÐBßÄ NvÁ½‚{÷òËç—Ï/_åˆÊ•#ó?.;´/•×&ÁmRÕ·:wèíþ뀛4kÒ¬I3F/ð¥±jߞà 9˜CDêX¯Z¾ÿV1·€ŽÏ»&Ö ve=¨¸mÎ[æ¼´'Üñ«qÿïëLH z4îѸGcã¹ Ò¯0ñ×J-Öe ÈjÞ-c]9vÛ ®¹´E€£ç°Ù¢sà”÷¾SÞ®6k–u÷âõ+Ƽ&§ýhÇÿ￯Ìv"{-ó €Ý¬u¦Á7î€2/缜ó¢¿D‰þÂÈLŒwußÕ}W·oû¾íû¶ÿ™ŸFƒÇ•.›}Œç‚²G<[® 7ŸAÛ¬«3¤Í˜ø|Ï·°L©JZ¹²ã/¬~ü_°Z©@™BÑæWœ¹èä¡ Æ-ïÿºÿëþ¯“‰qÜâ¸Åñxç)üÜyhžô}ªl©êPhr©ëÕ\óšÃÚlPνƒKgs’ëÊ÷1>{±»ÒîJ»+qܘÏwy` u!ôMÀfáý ÷ƒÞ:TíPµCÕšZ6µljiòÙ´ûT¬ùžà6i륑ÕÞ867îícŽe8–ñ iùKc“–ã'±OÙpãG_<ã|7v«†=?rËiGü·Ð%tåÔ{Ì9þû¹i™CÆý¿¼íò¶ËÛ22 -ˆyî»ñ\`·®‘Ðe¥ùÜ09¦UN[G^Z²¤Pºê ›ÞÌݧðoůdÛ“«\îÝ1Oü-îÖ¥ßÈ^î­WŸ8UàöäZ\.SÆ|`G¿¡ÿÎñ4îóíU¶WÙ^…1™`-¢[D·XÐuA×]ã>Y™ÿ^Ñþ9[õ¯¶c’c!s[•×COzäÔ¨ä¸*ÁyãÞ¯aÇ~uýêúÕ•á e¿Ë©‹ÿNÿþ; }“°ÙyÕòUËW-¿qó燥Ú”!¬MŽú®wGoIÆ}>jר]£v1& -il|Üszá°G“[—9»U1‘pn° û,,t­ÐµB×,¡¥wKï–ÞËW/_½|õ¥ý—ö_ÚO?ˆÑÿrÿËý/ÿÞpQ§?ÞÚ8¥‚Ò¢ûÚ ˜ÛR)9ª\ïb÷;×ÿ÷¼TíHÓÿ®.ô¢–}ËæW®µ¼†äŸÐßÞîMÝ›º7õûâ÷ÅïKðÅà‹Á±a£ÂF…ªiUÓª¦•©~+R×%_»‘'µŽe¥ÆÐ׸÷él?ç_\Ö5ÛßËÔ^ç‘wDÞÁ}ƒû÷eœøñßå €Ô(öuÀ„¾‰Glv¦ö›Úoj?ãIë¡}§×U›OhúbL×ÍU?Θﶠ¤E›E%öªPöA_ò„äY–ý^6­Dß¼rÿ\S±Ûeõy~î*Ji!ÖÝ•ênæ×¼cwØ*ʸçÚ‡5kÎÈ€´ù¥Ñݹó‚ùÍáD[ìVuö^Q¢„GüßÛø¯>¾mÎpÿÏ;%ÇNÆý ÅZ02ŒðÐðÐðГÃO?9¼÷ËÞ/{¿´øáj­®µºÖêÝa»Ãv‡½/õ¾ÔûR ­ È1 £ñï›uZ·i—Rqi©¦ý Lþï·b®¦…Vé_¹Ä²×R¸ßåzéߊ;VY|ΔCŒy¯c¡ÁÿÖ2‡kKí¿aêýÄÿÞ.{¶ìÙ²g}3úfôÍørÀË/¤±úùÙçgŸŸUÝRuKU“Oª«õfp>ÛŒ“‚®]týYѯqÝbËô¬E—›ê­s´ÎÑúõÍ×7_ßä÷€ù]ž€ÍNÍ'5ŸÔ|bÊø(##Òæ—ÆâwÝóZn3·¸Älz–OâuõpÍÀ`—Q—ü'WCs€»äöN_¢qÿ< xð„‘™|‚ øoÕ«þ[ÕÂ,uŸÒ}J÷)×äkò5™ã¤å#ÊG”7õ;¡reǤ?>.­4téFC«œ• ”)ô?«…˜Û;WˆZ˜Ã˜[Õ•í´½Î¾Sºnû4îÓ8~Ëø1ßå €€8LW1¢ƒúu¯]=e#Ò¾½æÕxS|tÞé¹ÎÅ´ª¨¯å˜\%¾¬Úß¡÷ñ­-vW´¼r°]· ò‡fo*džø¥Rþâ‹c® þŸ}1Ëøà§Æ^®éŒ{þÄÍ7Oð?U MÏ“û]ßî꘲§Õ:v\Z¥ø„o´ÍÄë'­ºVÛåeý‹ÙÔŒÿ»RªnÐiÔ»+ßø¯cx<€‘™´^þòò——¿ ‹5,*QW}©ù¿æyÞsfé©vE§N¨<°D¯ÍÕK;Žñ™USrúÅ»x ÏÒ5goðÈY2bȾr;Šl¯QÎÎÊjub~b•=UöTÙs1ôbèÅPŽ# o‹-z´èÑ7žÏÏ”²OüÍ6%çº\âÿ»+Ç.«qÖ§§¼÷b7.³cl¦å¿qsþÕ-W·\ýßøý%úËó¥Ï—>_º®óºÎë:;´théÐòû~{ç›ÿmþ·^u½êzÕ}xöáÙ‡g£ÇGŸzǧ§•§•§É>w¸,oñ›i'ú]÷Kç×Ôဩžiq©Å¥—¢nD݈ºÁo9Éý]ž€SÁtU­·í+WsˆHcbÝÿ¾ô¾·Ð,¢|Dùˆï‹„³-϶<ÛòyæM˜7áî⻋ï.Žºu%êŠùÌ=»öìÚ³ËÔ~µ?°¨S±÷i3ú]÷é½ešƒƒ©^ZP}AõÕù- i€1àT0]õÌ^º­Ýo摞×R¨xtX󤢥fNt{Y²v|®è5‰Íó:àÇ:¿­dÜÎ%+–¬X²‚‘ iÁ [,la< ä?£ô-s8¡6&×Éå²TÞ-Ïìøœ`µ»PvVnߘ`Ø<àIó¯•vyú¦Ÿ±8cq&:8:8:˜‘™ûöì‹ÿIù¿>9?)Ú÷z¶ö%Ýùñë±çG»v­zÆ«võ_To(»¡ì†²k@&¸Npðÿýdw®q®R6Lèºe÷>©~¬PsÞ™}+X±AùÇÔ+S¶v¸6èÕ¬¼ÆýéQÉ£’G¥èÈèÈèÈ„£n!ÝBºíª»«î®ºÕ;UïT½Sbîô0}Èô!Ó‡ÜÌ~3ûÍì‘#G>6ŸÑøhæšjyc§&>Nô»îT×ëNñs¦zìlû³í϶ç·€¤B Æ€SÁt5Êàêgÿy^5w”YªoÇZݪzÌÁÇüà OÝB«}ãÀÓêO«?­>#Ò‚€%JÏÍÏM_´‰ùœPû¯UY¦T*úgq_·C–ËrX]ÌÞ8g¾<²õ³ëXFÎ=¡~ß¿_ÚM?úâç»æ| è¿#•ˆ²¿·pÀ¢‹,bL~ŸÈÍ‘›#7Ïr™å2Ë%>'ÜWì©Ñ´tñÐ-=/Ö0§5§c?«ÚyŽhrßõ¤UýœÙWĽõ=ë{Ö÷ ¹r!äcЇÀÀ@SŸzÃô [Í!X5ÿº’æµEØhª'‡ šTGí]Çwßu<x ð@`ÃQ G5•˜Hx|ÞñyÇç½ÒàJƒ+ "ü"ü"ü~ü8Œzõ<êy¥F•UjdÜÂr;W¶z3¹Ñõq®… }ë:]†úØN4u|Æ ;Èï:ÉqF€SÁt5þ\ÅFÅs™gü6]Õ·J9š¹•_¹6S­íNË&䩨·xѶSJþVhHAë\~9L~Ù3·} ñëþ±zGãvN˜5aÖ„YŒLH BmCmCmçÛ×N‘¹Û›çi5S®qÜkž7n—{þÌb}¾ñ°œ¦9Msz÷ìݳwÏ™ñ÷îö»Ûïn×î^»{íîqŸRŸQÜ­‰/jôúµÆó\gÆ®£Šö=\ëöÞ6 Ç;‰O`pÅpÅpÅÀxôaÕß«þ^õ÷7n#<"çð\‡Üžûô;Ñžˆ×d]iÝ’€#ÖeÝVÖ›üû­ê¹ªçªä>‚²}Èö!›!!!Oë­´n˜Høïqû{Ü÷ îÜ¿–úZêk©än¿_y¿ò~åMµçŸ.ç 9— è5UO|u5«Ë΂¿•pÍõç7Ö{§uœÖ‘ßr’ãŒ:0§‚éjLdùÉöÑæsî¼Mëë•Ó7ýÍþ±õ´ì³°0ySÁr— t³,Ü-ØqŽí|ó€ƒ/w¯Uíq;§ZLµ˜jÁÈ4O7-nZÜ´ÆHc¤1ÛJn+¹­äJû•ö+í—,_²|Éòe½–õZÖkƒãÇ Žþ ýú71-Qpõ|êyNANAN%½%½%=1wy&Ö&Ö&ÖÕ>ª}T›Ô›Ô›Ô›_¯¼OyŸò>…ûûE©Ó[ÀZîGÛ½‘XqãixÂð„á ˜å »£`€ð¸\©ÜcI¡ $…-¶½»Ø.Ò¿üÚ+ãFî¦,,½E¼Ríìeݺ#zfRY¤_þT­K)9ÛÏðsáçÂÏAfþuüuüuüçsÏçžÏ%û¥äRäRäRâFâFâF`\Xizî÷Üï¹;3P]£§!÷¾$[m"¼ ¶ðˆo5ž¸üÅ*·Pó6))ihjhjhj×®®]]» ‚A0Ë;W;º;º;ºgLò½}"-§¢/nÛRnÀ)snc<Ù+²“„â´5ikÒV˜ßXê‚ÊƒÊƒÊ éüÿ9Š(BéW$Ö{Í[‚,¶V·V·^â3Wg®Î\-’(’(’8Mšþ4Q%áèèèV¬>X¯_?¾~öOeee!ôÛÎ|,â÷ƒµÜ¶Î^¥½‚í„¢Ú¢Ò¢Ò¢³`¡vÔ¡ P^—+ŠªÕYHasnEyå×^åë<%¾}.?•¤¡Q%œNúàäâ}¦"Ô¸ýÌ4Ê4Ê4‚Ì\ yŒ¾'¾'¾‡y€y€y€Œ„¹±¸±¸±t‡v‡v‡Âذ¨ŒªŒªŒâÎÇK^Ûsïƒ-ô1ÿ0ˆÍ‰Í‰Íi*v*v*v)>š͈f,7-7-7u¨r¨r¨"æþnŸü>ù}ò r r r#'FNŒ|÷ ÔGg}t÷§”Âlî0öÁZŽ˜öг›YÛåqc{zÛém§·Á$X¨u(€IŽd¢d¢d"îEk&ÂÜZiã¯ÝVãܽÅo³í×þDÊíÐýß·Ç••¥ûú&`Ò/ßf‘uåÂsƒ÷9ãsÆç ÈÌ…»kGÐú]Þ»¼wyó»QߪF+¸IņþÐgÖÍ!1—VóNeÒ²‹zŒNe+ÜD‚eeܶhÿñŠ·Ø›™‚Ï.[«sÄÈlj¼¡u›_.¸^p½à:`5`5`C Àr•³>g}ÎzÜ€ý³X›wÄ´‡M}7nÇ3[½³zgõw,ºRºRºRÂÂÃÂÃÂyÓxÓxÓæ7{ÓèÑèÑèùUùUùU5;5;5;!û}Ⱦ¥•™˜L&BÙNÙNَБÖ]Õ;'U²rJ¿ß¶šf%Š›E9~£ÙF(>aaa0˰t}}Ï«@@ÁwÇò™^ ¿çµrJ¿Â9ש_ÙÎ~ì>Ö}¬ûØrÊÌYÌYÌÙj•j•jwwwbJÂÊ Ê Ê o´Þh½Ñ"ôoìu³éù+`-GÔ²”M QŠðhÆhÆ(ìÀ~€€IŽ“¥“¥“%îE«#èè]Ù}¿vCÍüï3æÿÿ[ÆáÍ [ž¼W±æ{ÞZipC&ªû¸ÑorœYZoĨ]§ÅévøQ_Û$²q†Ð²žÔ¶ ÷meïÙŠçû"ã´ã´ã´™Ä«M©M©MàààŸûMø)ý6û<ï>±iBÅ]âÛÎ{ ѲN:¿âý}{ ³eÈÜ{fffŠ=‡=‡…G…°¬`#±‘ØHššXRÎLÏÝž»=wüÖ¯è¡Éí+³ôûm;šfZ§p‰áeó¦{xkÅoÅo…ö@{ =`®`é––– _K¿–~-¡YqçSóU®|Ë»ôË÷Ù!øÁÅÙ¯t ‡7^ë7W¬+Öµ¾µ¾µ¾ÕËÖËÖËv¡ž%̨éN—ök×QßöÇö÷DU^Ã%ü>às.²àÙxcóÆæ Ìo€`À`’óNÿþ;}Ü‹V‚z¶0ݯÝJë“2þG®„¦yós¿MªµÒûKʇ¹œÊšâê·ÿÿ6fús¤°Eˆ°x¢TB°P]T#Õ™óƒÙÙÙï³Ñg£ÏÆ9½yWX؃vgæ¿t¢nX³üëJÝ‹Wô½m}[#óÔ-Ì¢Gâ\z.ä&ä&äÖú©õSë'w–“d÷d÷dwܳ~3ÙOr2ךÊ!¡p(ëνÝóÜž‚¹7žû öì'f¤õõõÞš½5{k¦¨¨HÌ&¯{‰{‰{Iõê;Õw0W1W1WI! r r r¾ë×kß‘õPúý¶íÚaè)ÛF(b×»¯w_ï†Y€¥n`ÏÀž= ¼ ¼ ¼„Î÷mBò£ûßH <2‚–GÑWêyðÇ<Óí¿ë]±5þ÷ãFµFµ+û•Fʈ2¢Ü,Ò,Ò,âwÐï ßAêêê]zÍ­G:௖îšÐîAæßüÒ¸G$""3ñ Lr:‚:‚:‚pÁ–—ù YHb+íÿ߇Ú#~nGžôNF‰-Ž_ß üµ•obBÓzÝ»)™û†ÓâˆRØ·GñµxL«K¡Hþè¸)_ ËR8¢¶>ƒq¬û°îúÃú‡õëS>ýúôëÓ¯‹nÝ.º=ódæÉÌ“Åë¹·§·§7žUð™Ó9PÝÇðXè+…A¡wöÖ«Xš•s n y’y’y’±­ØVl+Ìu,u¨Ç¨Ç¨Ç'ÛN¶l›}ߺQRpFô®Oal!é}%¨ïÅ¥þÆÒ±?ÑôÃÿx¢ÒV¹­r[uuu!~A#èéé|ßI½ôƒ)¬©–_Xkÿe;6GÜãʜɜɜÄ €I”­­­ž÷º¹ª–…-¼…m¹[i¯S­›ÓŠÉäÈäÈ^Ÿ|}òõÉ~T?ª¹ú­tÆtÆtÆÙcxõ7›mC3f9–J«–Vé·Í‹ Ù+þÛìÇkii‰!ÃaÈ CXêœO;Ÿv>Mè|w*/êÜå^ÜVþù§m„â6•3•3•ó«ÆtRdRdR$s s sÀ¸Â¸Â¸‚˜’°e¬e¬el.{.{.ûTîTîT.ñ=ìÞÒ½¥{ ¡Oü,x¤RJ¿sjQÊæÏ•„6;ŸÙˆç¡îñºñºñP,`YyÉò’å%Ë\foFg•ßµ{E?ùÞ‰+!¢¯¤èC¹L?¶ñCb6Ûærž—=/{^Æ\À\À\€ÑŸŸ^lx±7¶¦—Âì9…¡¼íi©$[Þ|Üãrövövö†œ €ITaLaLa î"ø"pœÕ¶ðìáÏ' ²eʉÙê~&üLøÙsÿçþÏý{¢z¢z¢VfÆ&''Ï«¬´ Q1ú¥^ôÅmGÄÓ×(phe+ýÅ@ð›dzÆzÆzƘ5˜5˜50¿°tMENENERî¡ÜC¹÷Lç¦QtÙ²ÉM¯ªR¨о_[ï¿ÙÍe~e~e~¤6ÊÓ*Ó*Ó*y7ónæÝ´^e½Êz1ëÃÓ†§ OgœË8—qnâéÄÓ‰§?ÚŸÓ§NãyœéÕU’zC°–ûѶ€ï`ªø!‚ÏÚùé÷,¶ÖðÖðÖp©7Ro¤ÞÌeÞ¦þ{‡$ïUž²³ì·X~Ñ—ÿËÅæGQô÷ÅãU6Îé2“A–A–QœZœZœ cM<ÓÓÓÜ0_¸Ÿ»K€D¿|•;&` ×b¾vÛË­Í;z)Ûô|óòô3ÛSÄL©§Ð­·öx{–»…DŸÃQ‘&t÷¸v>ÞùxçcÈIb@˜D¡· ·  ~Ûc$×ô¢ÂnØÂ#¾u ×Û‘ˆašBšBšÂùmõîß9¾süñéǧŸî¤ï¤ï¤GÆ‘qd|¹æj6&“! JwŠ÷´gÇ;Ë2,¿Òïw­eÁAe–ËVA®„¢ažižiž‰ ˆÌr,]uuu„Ît©fÃ?^ªÞ'L·’K¿F1A·w*ŠÒƒÚµj—ʈ£6¢6¢6wwwí=Û{¶—˜’°vvvO²S²S²Ó˜Ä˜Ä˜¡Ïí±ê±ê±"ô{Æ„ÌÖ(ÂZn~í¾gÛé·†ãùðûø÷ñïa–`Â"XCCCÿ£ó65ëŽë¼½RÆ·Î Ç{¶½â$¾Ð+~ôŽuò?œÑÇ5=ÎÓý.'ø£½ºç~Ïýž;êêê ïB¡a§a§aǶ[Ù§!i€éBØ~£KΘž ;ÌÉKšëFÆ¿¹â(ñìÌ ŠPE¨"ÈL€ù0Ióò÷ò÷òÇ]¼TxÅc›wÄ´£gMSNº5š0š0š0ú"þEü‹xPBPBPÂÓ¦;Lç·Õ» ³ ³ ó`à 6´)¶)¶)"/‘—ÈË¥žŸõ‚õ‚õ‚„Žšó&›Þf×á5i›äÛ—yé§}èx‘•Ç—àC°e®Ê\•ù €¥.N.N.NŽÐ™.[m&´MóoµŠ0íJ+ý+ûì0} (&(&(†ŒhäÑÔz[2¶üÉã*úp«¬d®j2C‘Üë}ÿlm–NÛ«LË%@%%Iqоޱ†øÏr?ì~ØýðÀ;w`nÌÙ6[S™Î*‹Pnhz²éž.J¶â±çÉ*çÏ:È}-ž}ËæÚRruÒd´ìSùmxØÞÕÕ™ 0?P&i=F=F=F„–øã³(ÅÕ°…7¿öÖ´ì)®ãxþ¶wØmØm˜Ðˆt7v7v7>í}Úû´WUUu~·î”©”©”©·ônéÝÒkbibibA¶ [-K%3GÅFÅFÅÝöÍL ”Σféƒ 6+­ôû]øýEž BQŠyó,æÌr,uwÇîŽÝ#t¦‹úkçÓßr™¨0Ò_ ¥_ÝO·ïm'øLÉtÉtÉô™ 3f6,¿LÀ”aÊ0e5Ù5Ù5Ù—».w]î"f‹_n\n\nœÐe2 V0€µñ­ì%¦-´xñ]TTó+Á´Ç´Ç´GìùØó±çy6ðlàÙ@Fb‚˃˃ËG G G a¼nü¥Ón1<&ÑðÄÆ2ý㉯÷sï"TÜ%”W¤¶†<€¾fÈþ'n?ëùêùêù 3æ ÀKÀ … 'p—Â>,2&œÙ°y÷£m_1¿\¡¡õõõ¹N¿x¿x¿xä§ÈO‘Ÿ¤K?–~LÌí½§™§™§Y]J]J] V«€U ¹t@]3]3]3BGÑ?š)Ï¿’K¿ß¶WNYGq”ŠUË‘–#-G`–`©»&sMæš ¡3ñ wå½lÖ Áò+úº©W}*Q™±}ÉDð{T;ûwöïìÛ6¶mlÛÊÉ l6›Ó¸§qOão´7ÚMVOVOVOÌ:átŒ`ÛaXË-T›A©©'ªŠgrrr˜ÙX™Úï·ßo¿ÉÝÈÝÈÝøs ½Th*4Úóç!ÏCu†u†uPîýpÇE=ã¢Ëi€E;uôè_Í^ÐuhÉ¿,ð’ô ÀFãÁkvÁígÞö¼íyÛ!3æ ÀKÀÛ/¶_l Ý(¶Ý6¨©ƒ-¼¹·æš¼7™sp#élålålEüx i i iÄ8Æ8Æ8îªÜU¹«’˜·ínÛݶ"ûDö‰ ÊaŰþÚlŒZµ>j=¡ÞÖDí—þоߵ¬SþG{½r1CnÄx‡y‡y‡1ï0ï0ï`®`©ó ó ó ûo_“ [͹my”~íè2øù)XB¦6|'®pŒpŒpÌèãÑÇ£!C;ıkñlñlñ¼“'ÿN>ÈÜWŸzué%±°–[¨vÆÅ\_‰àªC…¡ÂPAÚ¾*û§ìŸ²‚= zdælælæÌyóç½¹ÏáLh&4ZOOOOOÏåòGå­Ï[Ÿ·bK:pGí·÷èö-¤YÖõ½M¿½c~Ž&µU¥å‘—C\xvN’¤’¤’¤ 3æ ÀKÆåC—]>„ç!L¡´µ–+ÿ y³·™"š9¢× Ý=z<´(ÛÓ£[G·ŽnM¬M¬M¬ÕL×L×L'¦$lÿÔþ©ýÓ2Ú2Ú2ZT* •ös2°ÿDÿ‰þhÌç#Øå^Bíè†ôç ‡>Ø­"¸"¸f9–‡°è°è°èÙgr±©ÃÂ[×_èÈ-ÐYbß÷e¨²JÓþã:'»ÑìÇx8ùpòá䩯©Æ©FÈ ‚>#Ÿ‘Ï®®®ö=Ú÷hÛÛÁ‡Šc7Z¼Uú+º…mO­(dý€çÏÚ6Ôo¨ßI +îµàÈ©;Æ;.“fز"2 ½< ÀÖ!oŸrãùƒÂ˜¶˜¶˜6ÈL€ùð’1±fbÍÄB‚ãÉxÁ¡¶?Îø< ¡è½ Aÿ‚þgŽæø³ñgãÏR‡R‡R‡ŽX±8bALIødÝɺ“uÍÍÍ333‹Ñg+K+K+KÜO7âÓðb2ƒï\ÚÂUaôâW cßå¾Ë}—a®`yÈ>™}2ûä\æðýÊn¬EÇJÚß’héW¶ÚDx›ÙÙ§Û8¯RÌP?Ù3ûÝ8yã䓨1ìv 2áG}fùÌòÏŠå¼ °=;¼÷wQÚläž[ÐËkAqwîíÙ#×Ùq#y–ò,åYJ˜åXNz¸{¸{¸•ô”ô”ôæ2{«±8D±X;†Ôô‘ÂfÜÑãw8Ü©cXȇçÒÿlÅlÅlEwbD܈¸q7¶™×5¿ˆÂŸú-J;*jú\Á7檪ª“°rà^ t®Þ(eo…ðb·õ/ɸ"pû™|"ùDò ÈÌ_«£®£®£.¾$¾$¾ÄÁÄÁÄÁD4V4V4v~»UìììgËÏ–Ÿ-Ûû¶÷moë©ÖS­§ ÎÀb€ð’d¯h¯h¯Hh9Õœ©Ÿ##ÛyHŸ¥±²üÙ¡'l„bÕ9Ú9Ú9Jš£<Ý2Ý2ÝR°»`wÁîÍ'šO4SÖ·Õ·Õ·M»›v7íîx×x×x×Ü{ràßÿø÷w>½sù¾(èþh;ŸZ%_Nh¤¾ôéÿҳˊ¢…hE¼ŒxñrîóöÎßd6ÓüuT;à4ÇE¼6‹·éæb_î)$p¼ðõYn ™;&0tνŸ§*OUžªiii¡&žùˆùˆùnœû)Œ ä#µµÖÇ-mÑãFî¦, šæÍl~Fî±Ñ››“VyógíPm«ÞÝP?!Ô‰¥·ˆWª%Ñ#ÚÒBY‰²–\dãQ<ÝæÆrc¹!3`%ÀóÇy7-X| ¼Ø­Ñïtwþ…çK}ù}ù}™?S‰A‰A‰ÁÙggŸ}FöÓO9žr<%·#·#·Æ €—¤™3fpqrqrq,m–šË–¬ä°ç¸ÔÙ Å'õÔ?RÿXZãŽòGù£üK½K½K½ÏGŸ>MÌÂZ«\«\«üýÕ÷Wß_µµµÀýÄf·f·f7B¿õ,×Titç×lw¢ãÁógŠŠðý9–­A‹A‹A‹ó£çGÏþè¼MiKsfc½lƒ™Ì¶újw;v”Øõfòþ7ø~z 4m‚„ÞáܰÇò|s +§`ÍöD¬C¬C¬£R¤R¤RÆta1îcÜǸ7æ”E„R)¬¯¾–rϽêd_;÷œ9øv–¡`ü©ÙM…AÒ\7šã©f>„Û󡬡¬¡,ÈLX p¯’•‚[ÑP^ìVËâr›;n?!3O¿w¿w¿·ßj¿Õ~«ÉHÒ•ô+éWÒ»ÔºÔºÔ`¼€à%¬ûp÷áîó/•Úÿ0ÀÊŒ­ Òo‰¥Ž²Äµ\©?vjŠÉ=‡{÷–Éý0¿c~Çü^åYåYåé*í*í*MÌÂZµ_µ_µ?–7–7–w(d(d(Į®®÷_¾ªörˆ‡".1íxqf¹Â4¡±û4öiìÌr,o½ ½ ½ çÏž $#yÒqÒqÒqùbùbùb0v‹7òü*tÅT¤³ÖòH–pç°ùÚ7ª{äŸ7fº®ËØq$IC£J8½˜Q»ZbÕÓ—*Ù|òMLhZ/Ü#"Í5d@B"noëQõ¨zd&¬Ì«03ŸÑf(/v+UsÅ …ÛÏA§A§A'ÈÌ…Õ_Ò_Ò_rû÷nbîh6'gÜ;È–D_vBN€™õÛZqÆw¯IÞÙ¹éÒEñȽ§> Ò³îCm—ÚšÄ@M±é1ŸhùÜò¹åóããcG`. ¼äÕž¬=Y{röEREÈ¡6IÙå]úE…šç)í>á) ÍjA(Žÿ9þçø‚A0f¹æ–ËŽe¯“®“®“¾véÚ¥k—£ 0U—-¨E\âÛkûO°ï”ÄpTcTcT#Ìo¬ÃG† yòד¿žüµ­y[ó¶fR(ú:_p¾à|¡iSÓ¦¦M0F?î(˜Òðè1ÿC k­æßõ]dþ&oÛHO³åø¦^rójOÝCRL„þý×þÛ ˱K’~8yrßFÜ~f¹d¹d¹@fÀJÀHÅHÅH…{-p³¬êªðâµtX¶0 @‰ ?=ö)Y÷/Éѳ7„Ù>νÏi=i=i=0Ö.(/+U«W=ž}adr—‡ƒip¨Î$K¾n©—~ßU«_šúß^ÊvÎvÎF2‘L$2äÿ!AHPkekekå}‘û"÷Errræ²°þìøö¶t 逗GXÀxg õ_xxÅ9È9È À•Ó‘Ó‘Ó&&&á*î*î*nÂkÂk«qEãŠÆSSÓ=á{Â÷„ë5é5é5Ù©Û©Û©ß¼7xo0Ù%Ù%ÙáB¸.ˆ$©Á½ÜU’ßÀmB ë®Ãgwšn{úµW´´E[æþ³ß‘ð“­'¨sHmUÙ`s„CZ 7þO6<Ùðdd&¬o¼ßx¿ñƽ<Âìä€ðb´'»Þðâyûì•ÛWn_¹ 99?˜û˜û˜û׊®]+šË>ÏmuY_®‹#Ó¦¾ Igm6U{,M1"(Y‰wï\Žâ\À¹€s3L3L3LÀWP^†ÚuÛuÛu©ORŸ¤þ†ŽBïy$È Xš(Ë/•¢o[žA—ÌÍ¢í= ,³]à@à@àäÜ !CÈЗ¸/q_âQ<¢xDA(ªÈöfeJ(/lûôO`¾DÜãz¯÷^、'¬¸×‚GÛx†Ia &³•‚úñß8gɤʢH!µA7×&ÃŒÛÛ SA§‚NAfÀŠØK9Þ~¼Ïó™Dh¦w"µÇ&ÿhÙ÷“B«>t±œu nÌÃäÂäÂäfÒfÒfà9?²µÓ6Ô6Ô¦h¦h¦h6ûzìR–xÎÔÈSCQÒß œ$;F©(wû’l—çìÇÅñ‘ã#ÇǮخخXÈ ÀËքÄă‘¿‘¿‘ÿìË#¦6gR0fÐkˆîÁÚZT)õ‘ÜCžN˱_P‘c¯žËÆbv@v@väÀü4V5V5Váyƒò Sòíš¿¶Pº\ Àíñ{dñd²õ?ÖÿXÿ9 +îµàA¦‚)¬Ç¨¯mÙ8C|øÛßC:«ÍÏNG¤cq{’’[Ï$­È®È®È.iMÒš¤5¯5_k¾ÖŒŒŒŒ¼y#òÆ»Ìw™ï2óèóèóè!V€ÙaC±¡ØPB×/—ú a¡K· LríùêLaþÍÍ´cäg_9W=®z\5÷Rî¥ÜKS]S]S]«¸Ú×´¯i_3{$¹'ioSýÕp爘ô~`ÕQSY~¥ ÌctŒ³oMAMAM䀕 ÀË A!¨W,¯X^±ÌeKŽ\…¬Ì÷¹ì.}~±©ªcÃÕ’®\êÐQ‰AcQîp¦ÇséùÙ²dû-ú-ú-`؉ñ2àeÀËÜgŽ–ŠÆAx1ZÌh>ŸR)Áo]7!MHd&¬¸W/^©î­¤°ÝÆû/í Õî¯½Š®ÞûZ°º^M/U 5¿–Ô ÀU9‡ßH&ãÆÿ•Ç+W™¿Jó™æ3Ígžä?É’¯Í¤Í¤Í´°o@—••õèÿÐÿa•v•v•6Äà,å,åŒç¥æ;·pQCáv¡Ú3Mvóœßìmô·ÑßFgTfTfTNäOäOä¯äŒmüÐø¡ñÃìóz,½i' Ca¡¥ôh©¿ îÿ[IËmÊ[½P,àýwöc/Å”bJ10³X™ ¼‚ôœê9ÕsJ_W_W_wî ëÝ¿±†Ñ³¿®ÚÃ+0ø1Ü"ûxam¨'æùJ»‹®i‰7¹Pˆ™ï`ýÑ¥ÂÑ„£ G‘Qd…Q&žM¥M¥M%nœû~Kf“K'Ípéªg2'ލì‰fÜÅ’¹Mž"…ê娯L2Î Ô,…Ìì¶'lM)–—$å2°:FnïÖ]¸G7;;/€÷*p’GÀ‰õ&)l´i~Þ>̰ýk¯m4˜„,“ DÄÒRYù#‡£h:nüS±©ØT,dæÏÑèÑèÑèá~Ûý¶ûm²_Êâ‹,þ)r(r(r€q`¥©NªNªNÂóíÉ&¥š-¡p»P­²Ö‰<&¶…š·u®é\Ó¹–ܜܜܶK팆ÿc9î?Œ¹#™Â¨,É 7&ÎïÓýíüíüí&''a4§1§1§1nÌ1Ìy7•BH³LGá¸Qgöœa݆PŒU…¿x!Gš`_¡³¸þÀíy³~³~³>d&¬xV\÷™ZhIasíÂiuö¦ÿ/]âûåï¹üÔ´å±qÅfƒ".1íþw¶?qcëšãšãšóí(`R1©˜Ô‡‡‡ËF—.³§¤©©ù†ù óæìì쥘™¨nT7ª[|£øFñ„Ž´Q÷È%éÓ+§ôûmÛµÝðšl¡ÈШШШLl›Ø6± f9+€ÁwzJ{J{J0˜ CCC¯*÷;uìÔ±SIII0.?îX|¨ìÀCš`ò6r%²˜¾{WD¸¿þ›oß üõGÊ]WÐ%ý7WêG„KÇígdSdSdd&¬yò䎌>3-Up"…m5ܾYžá;Ì"‚ßíkq7î…Z’£ÎmŽ·ÛD¿ý—†¸j˜˜Híí¿_[îDZÇÍXÜ£Ce¡²PY™Ä«w­w­w­­­˜ûÙIÍfÝ´u>ˆ”Ƥn¿·°«¯©îlÅÈbá'Õk[eíØò£÷,iÙiÙiÙ0¾,?“×&¯M^#tý ˧¥ÜmvæÒŠj×¾®}]ûfl"6›Ø¸ºquãjooo²­d[ɶÎoßIì€Ø±ººº½Þ½Þ½Þ¤Ÿ™Î¬Î¬Î_VýZ×LŠce–~¿mÛÿ;ºJf‚P”Œ_¿2~…`,¯ù°ÌAü= = = ñrñrñr6[m¶Úl¥>O}žúüBzUþRùK寻™w3ïfVMTMTM@Ì-<7·/õ¶[¤Y6nÜWË”5—‚îwo¶>&G/Mjà¶¿ãXd’qã_á¾Â}ÈLX P> |@‰{-(ó?´M"6Ô¾>ÒÙ`+cÜÜ×{´ì×·ªOÙ{¨èGjài‰c튩¸}æÛÌ·™öKÌIÌIÌIß1ß1ß±¹ä‰ÐK®‹Ô>I÷î* —aQùˆò_¿jUVRðŒBÂøˆÒž·Œ»æÒsã,ã,㬃ƒw–“À}û÷áy°°â›-ô—ܪ?AY÷GZEQ+ZÆ3¸ñ‰³¯o¿o¿o?äKÞ82ŽŒk×<®y÷Lg?.ZAUëÆ_uC(ʽ¸­d´þôÖaܸ1T2T2T¢Q¨Æ_5°}f}f}f/i^Ò¼¤‘@I $PļàÌëŒ×¯3õmõmõmXW¬+v/ܢ٢٢Iè;´Ž:ÈÊÀŠn.킉·|¡H–ŔŔÅÀT`ù0à;¸KaK”¶‹ÑRÿpóHŒ«ŒüןÚT±iY©€?û¼ ‘ÆsC¤¤¤™ùóµìnÙݲûõ#êGÔÒ´Ò´Ò´d‹f³Ôf©ÍRNùNùNù…Ê…Ê…ÊV²·æoÍßšãyÄ_º\-·lá-T[c«ûZJ›˜ÙÛàoƒ¿ þN›L›L›œøwâ߉WfÆ&0%0%0ýïû®²ãZÂE_më¹Ø(™æ­[§)~;ðò»Ëï.¿ƒ™ €¥®7©7©7‰Ð™®°×Ò…‘ʽ߶þ¸ÅöŽPÄjòkòkòIm”o Þ¼ñ¶ôméÛRe9e9e9bÖ îªîªîªÕ»ªwUïœŜŜýÑþØØØâþæ»¿É qkÁZîGÛ×›vw dâÆSr‹äÉ-È$2‰LÂ\`90à;¸Kaå@ñt&KýÀIwÿNÿúS¼ÿî ¦ÚMjà °ûâ/pãÛÛÛ™¹è·úƒƒØ±=b£L¤L¤L$#§N1œb¨¾_}¿ú>Œ+Ljވވ¡™}Ò‚Rɶðˆo­Ÿð{² vÞ>púÀé§ß÷½ï{ß7ê7ê7ê·¼s5=.=.=ŽP4hŒ©ôÈw~¡|ç!kµüJ¿ß¶Ó§³_*èqí®bü“à·Ÿù>ó}óK~Þ+M/M/%t¦ï+pûõ ”~2s'¥°˜°˜°%ómË›››ÙÙÙ}²ûd÷ɳNp¨v¨v¨.?V~¬üš͈f$ô¹---„~ÏTÙ±dÅç°–ûуX¼P*ßjIi± Ï[ËRËRËRa–°œ@ð<÷düd[™‚e%R+7î«eÊšËÏêÜÞµz›èן:|VÕiÛSR+¿êöº%ð7üÅ3Å3Å3™‹¡u°u°uÐfÊfÊfŠŒäqvsvsv§=O{žö‹Åb±XA–7VVVÜÙà=FãpláÓöÅ‹ËõÜT5™2™2©««s‰u‰u‰%föÞ}k÷­Ý·bbb†J‡J‡J—G~~âûÄ÷‰ÐQ ØN½~Ä$UA`y—~¿m±–ùÞJ=gK ÚØ*¾Øì¥ÙK3˜ßXêüÖø­ñ[CèL×âº,Êvre–~ îå¨&‹`‘%|/3¾n|Ýøº–,?Xž:öùØçc>ˆâƒlÊÞ”½){~[½B(!”ê9Ós¦çL=ç{Î÷œ'Ñt<„BíißÓ¾§Ð± %§ÖÉW¬ÐÒï·ß¶Í÷WêÓû°G…q¡X¬Y5² f9–.Œ#ÆãhÀ`À`À@èLi9èK¯ílWš-ظüоn*Uo…ŠT„Ni1&AiAiAé‰uë&Ö­œÜ˜6Ÿ6Ÿ6ÏëÌëÌë´¾c}ÇúñO„º¦(Y±SŒ4×Wõjz©ßïÕþš0,W…œïnœƒºƒºƒºa~°<@ð”á”á”aÜEpÔ”7— ©€?&<:.Ú²å8õróÙo–xè·ëQQ´eÅÅÉtZxª;[V1OŸ÷óìçÙ9IŒ.º.º.:33³¹ÜTsügüû…‰˜ÓÏüœ¢ïì-?™£TÀ.*2¶mœsé²h²h²(Œ;ËI™F™F™¡³~ôŒiŠÂ)(ëνÕNæ0Ú¶7’>«|VùWŠ»‡ÜCîµÞn½Ýzû^Ò½¤{I d d óÜäÝ©´Si§R0:ŒþÒü¥ùK32‚Œ #¿6ÃJÃJþù²¹8ÆDFJ¿ß­ñd³’¯°l`xKá‡çO¸0:³Kúúú“±›±›±¡rÓ½Í"¥N~z'̓Y¥_»Û™¿óK°Ò SQ:j‰"‰"‰¢q±q±q1È'ŠÅY"Y"Y"yî¹ ç.üèÚ 5Äà‚L€ªt0‘—÷Â3Û*¶UlðçY– (¾ÓcÖcÖƒ§T¦K£ŠÙ–Ojà¯ÿÿ×ÿmˆÒ0d:Ä’¹Mž"eó3J‘Þ‚œÙÔzî…Çq~ÌS¸Dšßý­x±IR7æWö\Ùseääüd¾Ì|™ùrN›ìŽÇœ]®J¦öf%BÑO+\'xð’iØ%Ê猯Ørf?"çcÎÇœa0 È–Ý0Ý0Ý0Üóý»@ k6”uçÒ&žÑ`&øÈýñçãÏÇŸ/ð°õ#ýHÿ—ó_Î9ÌÌÌÃAÁAÁA1¿’ð6ÕmªÛTïûÜ÷¹ïÓ¶ºmuÛjä òyòs2°Ó Ó Ó€Pß’bï®r/¡¶µ=nL4¡è¥&¦&¦&Â,ÀR‡ÍÄfb3gœgœgfŸÏ÷ª_eauÛ[õ^¨d)–~uÞ°g/Ÿý`Ž`Ž`¦Í¦Í¦á­ç¡_¢_¢_Vî®Ü]¹Û™Ê™Ê™Šà³©(*ÉÇ&K}eÒ\eõî5Š•{ðµ·N‹¨³7-•õ¡¢,³ m=nÌûô=è{Y `©ƒ0à{ˆâ@èÆcúpö=Ŭ_»‰F¨ˆû£ÿ?é´¿Ïá's›Û6·mnç»æ»æ»NNNB’Îî±ïcßǾ³oI0mW¥>üHrK@k&5‰}gm¹o»±iöcT%S%S%„¬`©ëtïtït'øíÛ}r"«¡ÄK¨íæ6ì‘ÛJ(zqÅqÅqÅ?s4{6÷lîÙüLÿ™þ3}Á2Á2Á²ù•„)×R®¥\ëÛàÛàÛð¹ésÓç&ä?ä?ä¿Åèóá´Ãi‡Óðü Âz=6ÖT(ñÎ¥}=xÃ@`œà{óôæéÍ0×°·}nûàÆ¶{x­äAX×-FÛ~ý(,9nÌÏ:#9 `©ƒ0ÆÆFÜEðb¥Z†û°…·Pm±À“*‰µdDÓ[£·FoM*y*y*ùøÞñ½ã{WZÆ^¸~àU7ûÏ)úžx'ÍóPÉÁFñóÜûisÄæˆÍ‘ÑÑQkâí*ÜU¸«7δfï7òºk)¾øk‹F,ö(ÝÇóê ¯m^Û¼ ',uPàíÁö`{6þ¹ñÏâ.…»©›äh` øöà#eG<ïs5ù`òÁä1[½ûì?°ÿ@ÂPÂPÂÐÈû‘÷#ï—k®ÞáºÃu‡‹P©•>Ü#¥T‘˵ K¿8-¯á¹¿ãßvLµ“j'ÕÄ‹‰/`–`éüsðÏÁ? 邹ôÉÔG&ØÌ>(þ½’ ÀîT; E)»2»2»riû¨ê¨ê¨ê{é÷Ò掠 µ µ ‰Y'ØSÛSÛS—æ•æ•桞£ž£ð¼ÿ¸*¨*¨*Ï›“hfÈû±bùJM°–›_{FS?‘í"ž/†‡‡Â,ÀrÕ$Þ$Þ$®±Kc—Æ?éa»²¸5“zÏÅ\ÖÕæ–áž\Ü#KŽ >˜{‰×³ê’ÐGËÞÈ^î?´þðd3⾦$³EôG{Âÿÿÿ‡2Ÿ2Ÿ2Ó……í‚dÉ4‘IËcÊŠP^¼VbË6*š<ÜøÏ„Ï„Ï„CfXº  (ìϰ?Ãðl1»d˜ŸÛ¡›wÄ´-¯c7ÉØº©ÆÒaé°t-ŒFëSƧŒO—Ž^:zé(1[½*ú*ú*úÑ×¢¯E_lllYêùkkkEðÑÇjÆ:ÒŒ!ÊWBé÷ÛV€ÙùqÐ3B‘ÑÚ¤µIk6›ˆM„Y€¥«ŠºŠºŠšÐ™.bº5Žztô¦iŽ‚Ý *ý[*)óº?ØL¸ôlll¶|˜Å›Å›Å‹x"žˆ'ŒàbÀüAëí ɤ¿[ê`ûW"kØcpãßgÜgÜg ™ `é‚0€ 1Æ1Æ1FB7=žI¿ËÙÀÞüZã¨}qLI¸Qà‹à‹à#4"Xs¬9Ö¼Þ¬Þ¬Þìú­ë·®ß"æ6^ŠAŠAŠáeíËÚ—µ}é}é}éK%3ënÔݨ»A踘FöÜ=R)Í¢S`½ÒJ¿ß¶ü½¥Š’÷^ï½Þ{a–`©Kû/í¿´ÿé[ë(oo2ïì0<)[¹¼K¿h%‹µJ'¬ìøiX¾#ùRÅ¥ŠKË;¦þœúsêÏlºlºlºcúÇôé/F]›w@ÉÖrÄ·G׫Õ2váF¸àmÁÛ‚·0¿°r´¶¶zœð8áq‚tо§Ïž>{úlíµÚkµ×`Œ~ÜQpß/ŽâØàÅnC”™xñ<ü¼.½.½.2ÀÒ`Àÿà­ã­ã­ƒ»¶’Õ±dy›w?ÚV^ˆH‘$ø®Ö©†©†©†ADlÊhÊhʸ}ñöÅÛ©ŽQ£:6¿›|þüøüÙ4€% À€ÿa”y”y”™Ðíbq×Sc (ëÎ¥ÅÜÈkVJØñåoÊ*<ßý­¨¨_€{¼GÞ·U·U·U000100Ìo;€½˜½˜½øÑóGÏ=ïxÕñªãÒ‚´ ¿ìñÑÎáÎáηø%W<ÈH„¢/nË6}h—¡¸kŒkŒkÀ\ÀR—ä—ä—ä7û¬î%&Õ¿³ÅnþP‰{©—~hÐ ï›ýx/Õ]ª»T·2K¿„ ^£^£^—6—6—6ÛËØËØËÌ}UÐ5™˜-GNÊk-'%Ó÷ÛÝg? Òé-ö÷|I¥ BýœÙ>³}f;d,à[µ«jWÕ®ŠNNN÷tötöt6‘0‘0‘PÔVÔVÔæ¥à¥à¥Ø~iû¥í—¸¸¸ä¶Ém“ÛfÐlÐlÐìáàáàáðêò«Ë¯.WZUZUZA q q qåºÊu•ëêüJÂtItItIw™ï2ßenIlIlIDœ'Äi±3°²¨²¨²ˆP¯„=ý"³ ÐK¨•Jz¼&/J‡ý7®§¸Ñsâpâpâ€Y€å¡øsñçâϳÏä”á䬵ò‹ˆË-­í¹Žº£¯d ´ý84°³cð©àSÁ§ æ³³³¹ªºªºªÚqÆqÆq7žÛo3KQ> ýµû]&{J£¯}¾pÚØƒ½©ÖêU ”ÏX\ƸB"©€¿¶—þ±”ÝQ†ó £ £ #ÈOX9p¯ïΪ› µBx±Û¢^íLñqÜø'R'R'RCfXº  ˜L¦SÀ¡Ã¡ÃçqЧ4õŒXK¡ÄKðgžJdÚ¤.‘/‘/‘ÿùcÚËÝËÝË~/ü^ø=QnQnQîù•„7m4ÚhtóðÍÃ77:7:7:cK±¥ØÒë¨:¢Ž¨óQòQòQâ~:½1×…q(ñÎ¥õñ‰"4ŽJJJ0×°‡kŒ²×mu©)Ò-•²"Í-¹!“Gòé®{ÅvXÏåª”ÝšÝšÝ 90?Å-Å-Å-¸Qõÿíü^®&Ò_q}Û篥_Òïs©Ê³sθ1¿¥wKï–ä$¬¸×‚¸-j—…t¡¼ØmÁ„öŸâ¸ñO2N2N2†Ì°tAðê½ê½ê½m¹>Ÿ¾ÒÇoåÞoÛ¾ÀäÇr„"vÑè¢ÑEúnÇÀÉ“'£,¢,¢,äoÊß”¿IÌÛ¤®ìº²ëÊ®t ºùŒùŒù<¿^¥t§t§tãy[•Ðærê\)ïà3¹h(îνå°2avÄSÒ¨Ò¨Ò¨‚Y€å„By¹x¹x¹ÌeÞ–)d¬ÞR›¥)$ÊðZÒ)Sýªm¸uÝ)ukSþÓ,}séùþÖý­û[ûiúiúi`܉á¿Ö­ÿZÜW†D4J:,­p½Z¥Šôûßûœ˜’ðÅ¡‹C‡*++ÑOÑOÑOgÿtl'¶ÛIW@W@‡çÑÙ)®!TPÐýáÇAóíϹLhŒj>Ô|¨ù³ËO } } =¯+¯+¯ëÜçí“'üX³Cü-¶oñ6Ý$PKóÝÈvá”üÑ+K\O\O\‚BP F™xê‚ê‚ê‚xÞ¯™i«Ð@úEߥòö_Ü–‘ŸÞ~Ó nŸ1æsŒ9d&¬¸Wۿɞᲆðb·¯ÛÝ,Šçu uuu™–.(~\Ò‡ô™››Úb+P õ×_™¥ß©«Y£ŠwžŠZÓ¾#ŸÖý­û[÷/ÅÁ£££OLLÔ¾ }Aû1%ásšç4Ïi–°–°–°¢XQ¬(Öo?+·%·%σ(i„9»„ä¡”KLËs猵/žïhhh-ÅÌô:äuÈëÐò;äwÈ[Ø[Ø[Ø Ä±€ €ïÄ"±Hl|q|q|ñüæmJÖc…M«yB™Et|x4’íÛ/ò÷Dû±5Š"„¶Õ2;´Ö‰F?-W©äûbÇ"¼‰}÷.Úý›Ûç×..®ñèñèñhÒ…E°tZX¦,Nšë.¶§ŒI”_ÛïþØ®ekžoÿ+)¯­tÚX𜕃wï ÞÌ$Š"†ˆ©´©´©´E7E7E7 ­Z?´ ý«°•%?K,€»½Á%½‹“7þ™Ë[SnSnSîÉ´“i'Ó Ê Ê Êfþ›ùoæ?ˆ `y€0`ž¦e¦e¦eøyùyùy mfR2‰º¯œÒï˜H†ŸÂ#s¡-[¾ñ7Ç=Ç=Ç}9eÂÄõ‰ë×3ø2ø2ø ÿ0üÃðbJÂÖÖÖÖÖÖy%y%y%»Yv³ìfÁý7‚f—î„¥C—¨ï_ >’û™Ð(ôåõåõå-™”B¤)Ü£ÐqÓqÓqƒ¹BÐwÐwÐwÞí|·óÝNV[V[V[2æŸíŸíŸ=ì7ì7ìc·xp#¿{ÔczÑ¥²[Š€þÚ>Êvæ¥Ä½Y½Y½d&1š:š:šð¼%õYê³Ôg)_…y{éöR9Ax±[BŽìmJxž€’>ž>ž™¹¼Ý¾~ûúíëøžË€DÒÒÒÙŒlF6üÖHÄkÜüiË»ôÛžo/»•vu¹/¡8Ä\‰¹se%dÅÔ›©7Sor¾ä|Éùb©j©j©ºPrÙÍ“ÔÒ[B¸ D ˆK|»³ÐÜÙµ 7ÎA»ƒví^*ùÖü{óïÍ¿ãErCrCrÌÒÌ]­T­T­”ÃS‡§Om¹÷П‡þ<ôg&’‰d°üT¸ca§i¸‰}'€»Mñ¾W,¢€ÿléléliÈLbÜþpûÃí¸±;;vvì,Ä@:¶7loØÞ€;_¡­,(”ÎCxQÚ–ZÊbŸ€¢h#Ú™ËV’„$QÙSÙSÙ;îê’ê’ê’Àò`ÀèîîÞ´9hs¡¥óé ýÓlS·²PŠ÷—Sé7-1@Udföìׯ;^w¬ä ™ñññ-:Pt èÀi•Ó*§UæWàúÛÊærnª•Ø|ïõ‡ Ü83œa8ÃpéGú‘~ÒÏ®Û#·GnàÙØ533ùbÔ¨?P P8P8Px7ínÚÝ´ [èå»Êw•ïêÕ W/\½PXYXYX 1ÿµpÇèÖØ¹h.K(/v[zü™¯ÄÜøÇêÅêÅêAfÎS ’‚¤P}¤úHõñÛ¨ªM«M«MCx¤æÜõs×Ïáù&bÇ®£v²RP^Œv¸Â”I7æš»4wi\ÞÚ>·}nÃó\´ø‰ø‰ø ˆ`y€0`Á ý5ô×Ð_¼V¼V¼V¿Á™FÎAö²Ìö¹Dú~ÔóõŒJ…¨³©Õl¥³om'"‰H"¤èíèíèíåNåNåNX¬v.¥ñÜ» )‰P¸]Ø–VAàˆÔ]ÜhwUtUtUt¥!iH55õw=W{§öNíœe,¶†= {ödUdUdUDoÞ½õɉ''žœª ª ª ݺ-tÛ«úWõ¯êÓTÒTÒT>Y~²üd q#e¸×‚ÇénʼéP^ì¶Žò5£Tnüó³³ 3ç§mªmªm ÏÆnA|A|Ä@jW'®N\;k½aßóJP À‹Ñæl= !fó`£`£`#ÈÉå-€;€;€wô‡‡‡!>€å À€6Õ7Õ7Õgœgœgœ7{1ž6kQßãä0¹/¤¿1‡UË·WjAûj ÑÌ¥TYú¶ômé[ȇ¹Ã8`0EýEýEý¸ñÜ|%Œã>k£å‘=mx³7æQ3Q3Q3¤œ3íäíäíxþ^;þqüãøÇpNÀÂQŸò ä»àÅn´£Ú¥EpãÿTñ©âSEÈÌù 0 0 0ij±›?œ?œñš½½=<ßFÙͰji½Uw©´g?Ýd+ÁùÅ_\|ÑÄÒÄÒÄ‚lA¶ [ ?—•d™aŠdŠdŠüvܹ¹¹!<€å À€Å‘‹ä"¹_ÿjr.åÒË(k-ŽØÞÉd¹TÚ’ûXðHY,‰óΈp"í.yêìG¡´ZiµÒê¾¼¾¼¾UxªðÎ#˜Ü«À:ÛXNy(/v[´!¬O<7þï”Þ)½S‚ÌüQYYYx6v÷¼ÙófÄ@Ê|5|5|ñüIP¼‹ú¡—P¸]¨¶àåÁ~ñ3dDpÛá¶ÃmÇ'²OdŸÈ0¬V +dïRr#äFÈ Ü1€ø–(~î2+1$1$ñGÖ¦¿ïOa^÷Îø6Jè󗆄m²÷‰ßhÃ0åy+=.zòIb­×)Ó-ôU[>mâœ{¯t®è\ѹÒùªóUç+Ù…rPï ÞA<½’\žQL:ES‰¸aéN´×IÛÎ=g¸2m¢®‘fx+¹¤ˆêï¸}%µ<élìlìlij±»õÍÖ7[á<€ùÁWOì?\Âz À‹Ý¾÷³Âÿüßòˇ{ö¿ãHIIƳ±[;P;P ñ²Ö˜Ö˜ÖÜŒ¯€.˜* ™±4WV‚ò-ñ­özŽ­ Md Êþ™ý3ûgetetet¨4T* ò™4qÝçºÏuÿÛ±«««ƒÈ–¸™üS4S4S4W˯–_-'fyÍ J;½ÉíÀ%†‹v)†ÇØ®?<9²3íöM»\7|Þœéãüâ`ñeÇ;³|-fæ“¢ <(š]Ä|¢ M©e©e©%Œãb ¿J~•ü*nä¥YCö˜’N¹”¾Bâô®Õÿß¹<òÛV±žÔ²>6Èg|æÞ^7ªÊ’G-íÌ6EÑ:nýî}Ø"G¼†¢ÊH­¼#׈Éþnä?G|ŽøAjyÒÒ‚ç]Ñ>|„óæÏõ×NÐ`Ë (/v{g= 7-nü›t›t›àÐ?Œ«…«…«å»]?1?1?ˆ `©ŒŒÄS®b8|Zò.”o‰iÛ/å”%¸ç3¦4¦4¦”:˜:˜:xÄüˆùsbvNÖŸ¬?Y_ÐRÐRÐ2C1C1C¹ýkõ ö ö âŽTDtDtD4İü@ð‹VVV=b~Äüˆ™Œ$™F›F›FW›W›W›Ãx-6ÜøS7î,¨%B)oõy“;ûþ¿s7f“+ñ¥:HßG¾þ×ÿß.ÿæßý¾>ú»-u+óí¶/¸Çˆÿ¬ô¬ô¬tRËîÜ;¸w|·±«&¦&¦gcSñ¦âMÅx^ðwÁ?ÊÿAxñZƒ4µÆjÜÈtŒtŒt@fÎ]ïîÞݽ»ñlìzDxDx@|KEÊË”—)/qg³½Slè+ ˆKLkóž˜U7¶ÏŽ>;úì(îXL~™ü2ù%+-+-+Í,Û,Û,›˜ý¥cùÇòågÍ>š}tŠiŠiŠ ²ýg   Å—Þ„Þ„Þˆ`ù0€äTqVqVq:Ô8Ô8ÔüürïîîÝÝ»»c²c²c²a,~>ÜÙ–­˜¢…У’{¤›öžøÿɽßG?—‚î·G´å§x&©€…ò¯`"NáÆÿµÊk•×*¤“!½F½F½Fx6vFŒ8gãˆñã#ƸsìPSê¸|=€¥m*ˆV–!´.ÅV`+°™s^^^†gc7¤7¤7âX*0J%Œ¡«C±„v‹Ä:(åþhûYòHµôSBQ”Ÿ”Ÿ”ŸËèL·L·L·¨¨¨žh:Ñt‚¨GIëŸÖ?­:í^Ú½´{ã]ã]ã]ÿ‹GTFTFô»u444D°\A°|1ùbòÅ$þ]ü»øwö]ö]ö]BTBTBTó[^Ó¬§YO³^_M_M_-("("(¢J¾J¾JâL pÇ‹õ¾Ö€ù=Ò)”nÎdåÙ©öÿïaú滿ÿãÁ÷úSUD:½ŸE¯ ñŒ&µ°èž›-1xHHHG:ñ[Äo¿áÙØõêõêõ‚3ˆñØç±Ïc€å ÀHîrœ}@oífR(‘JÅ÷æÝý¶o¢Š7óc\I­”;¿VÌúö©Üøßê¼Õy«“t2D´P´P´ð»Ý×ܯ¹_ùÄ«9Vs¬æîµàÒËàýP^ŒöãæÀ^ÑܘANÎÝ€ç€ç€'ž]»P»P;ˆ`)Âza½°^;|wøîðÅßîÊ¿àþÅݹ´¯ÇöHL*¸N·O·O·/ìØa~ÇüŽù½êZÕµªk®R®R®RÄ”„UTTbùbùbù†B†B†à™?,êLÔ™¨3¸±í’è’è’€ø–+( !¸Ëñí4z¶Iâ;²%¾nqqßöM²àYVç2)»Þ~à§ü÷­¿oýM ¹144„gcW)T)T Î ÞŒúŒúŒ:¡ÍGD¢€Oy 逗Ê{¿¶V­:,%¸ÑÞX¾±|cùÍú›õ7ë³³³°ØFl#d)!QÁQÁQÁx6v™º˜ºà ‹€%¬üAùƒò„®ÎŸ’tÿ’…/¡¶}ûÑ¿dЄ¢—ö4íiÚÓŸ3ŽXv,;–½NªNªNêšÛ5·knÄ”„e2d2d2^ù¿òåßïßïßO ùäƒäƒä¿ÛO`9Âr„å‚A0âX®  €„àÞØ°1¼o™L %RÉGÎY;¿í›˜îm‘w=Ë£,êíû7þ„?'…܈*Œ*Œ*ij±»¡kC×8w`¡è*ê*ê*âη†ob¥Ï,­ò*)·Ó™Ù=Š?ºá{¥øJñ•âÚ]µ»jwa1ƒ˜AÈØ¯äÛäÛäÛ¾ÛØ%g!g!‡]Àòàüó?Îÿº:ŒÐ™J)0C¹÷ÛvZðX«bÊEš3”¸3R3R3RûŃºY‹¬ýù9òs¤¯‹¯‹¯ … … …ËüJÂBBBÏÞ<{óìMLL œ5_ Ÿ>1|7bµj=Ô‚ø–7( !¸‹rÆd•LÒ)”~Û7?œ%ƒØæòSÂažÏ#›vXEgÜ‘cÄ` Mò_Á¤s\Âj×¼¼„ÿ·^Üzq‹rC]]ýÛ¾1ç2ç2ç"h áÜ€…’z.õ\ê9Ü+‚ ·ùï;vBáv¡ÚÔ™±"%dDsvtvtv¬ô¨ô¨ô@'¡“ÐI+-c‡Ý†Ý†ñ|ê!ãCƇŒpF–‡išišiª$ª$ª$ÜOis>ÝzÔ€y‡’”~*ËMÊäFIÜL„®žÃ7‡oß$¹aB‚ ÖŠÖŠÖŠûÂ÷…ï 3d1d1dÍo…Àq‡ãÇà+ÁW‚¯|yòåÉ—'È 2ˆ ®´s'‡ŽÃó-ðöóíçÛÏÃÜXÞ  €„à.Ê·åõ›&Í0cÉ®ß Ï姘¾ì9q$äëOQûq´ó¿ µoóït¼ÿttt_›ÃþÃþÃþ¸}   „³֔єє¡Íĉo+òBù–øVꈀۖ½¸Þݲ»ew 1%ás-çZε”\(¹Pr%ƒ’AÉ,ïŒgggdz±«ß®ß®g4`9i\Û¸¶q-¡ùßôÏYf:,»E¢Rý -ý¶[U–½H%úb{4¡(333/™!B†¡/±_b¿Ä? ~üŒ#‹#‹cž%aÿû÷)îS´f´f´f H ¸¼Ïš½ïö¾ÛûîÛ8ÐÐÐ yH’³ `yƒ0BèFEZ<Ä¿ ‰ ¥\¢VSWîý·òÈoZÅ_uñÅ£ã„þ½·—A%ù¿›Qïøÿï­©«jüÿq‘Lxçn³6çTÜÈ×iÖiÖiþÚ¬ˆ×Œ×Œ×ij±«Ð®Ð®g ,gUgUgUܹ÷‰›‡_”o‰ik"Ã¥váÆvûÚík·¯EJ¤dÂlÂlÂ,½,½,½ìèñ£Ç'¦$ló›Ío6¿åoÏßž¿}úâôÅé‹Ë)W÷NïÞ;ýíñRwRwRw"ÙH6’ ç2`ùyoóÞæ½ ¡9ÿØi^ æ;èV Y¥Û+¨ôk`É¥Ìä¬!¶uû4¡È<ÿýùïÏ_9Уޣޣþ¬äYɳ¡‹B….Îo…@¡F¡F¡æ{Ä÷ˆï‘Ï>?øüY¬FV/(1Ž1Ž1âµß{¿÷~ïa&¬P@BT=U=U=qè’/Ÿe%…B©TLpoÞ]ܲ>ÒšGò Ú_½›'xþRñ“ Q&3Nªâô|Ûþ¿°½Is‹6ý>Ò|sð¶Ë ƒšã¸Ç5ôbèÅЋ_›j’j’j’ßmìRR"‘ÈG8k`1´÷´÷´÷Ú.œ¬É:®xJ¹ók5˜ä,·îÃj‚f‚fÁ?ºšò™ò™òÉñÊñÊñ²ˆ±ˆ±ˆ!¦$lRcRcRóÑ÷£ïGßɳ“g'Ï.Å,À³±{ÅïŠß8‹ËÛcõÇêÕ Íóût¶ÿ¶õîÄZ³hÅ5Ë»ô‹Úl~G‰ÃB—w˜e5¡h\×»®w]oyçChhè«èWѯ¢eee‰Y'\Ó¿¦M¿nGÝŽºX&,–i)Æ$Y:Y:Y÷èšmšmšm`¬P@B¼\¼\¼\pè"V7¶¾ù‡ÔýõaÎs¹}"@ýï–£¼Žv2~5¤öÝ_iÑŸ‚X2‹¬íp{޵ÆZc­U>Œ)Ž)Ž)âÙØÕôÓôÓ„ó›©–©–©žyøžÝ4W.”r´ÍJ).Ahµ€vC»¡Ýæ>:3gfÎÌœ)Äb ±¶ñ¶ñ¶ñÄlõê×=®{üÛo>¼ggg!ýüL6O6O6dz±»¿yó~8+¿´¿´¿4¡¹Fg“ùަýS2«–_é·kÊð“¹à:úsÔ¼„"p1öbìÅX¤ éBºVZn ½z=ô:V-V-Vm÷–Ý[vo!fàJíJíJ]u¦êLÕ4 B£H?Ú×´¯i_Ã=DQGÔaö¬P@B²Â²Â²ÂpèœiÇ/z¼&µoÍ~퇛‰…ã-&¼âëÈ'høi«É­¨œhBi¹R…1Ûª±|ëðx¿Ôúÿµ•¿ÏŠç¦hŸê>Õ}ª¿6’}“}“}ñlì 5 5 Áù‹­M¢M¢`Á²=7ÞEv”uçÒ¢öäÒ+ o^G‘´Ñ7’ïTÞ©¼S!~¼Ðdh24Y9G9G9‡ƒ­ƒ­ƒ-1[½ûâöÅí‹K¸žp=áúÈÍ‘›#7I-?µó´ó´óðlìîFv#»áü¬÷=Ü÷pßì³zd÷n{W$ÅrŸ²ÈR/ý¾oÔx!ü|öã½òùÊç+Ÿ‘f¤i† ùjôìèÙѳïC߇¾ÕÂjaµ°Ä¬Î{÷:ïUjWjWj‡òFy£¼IçH'nNÜœ¸‰Ûg¯Z¯Z¯ZÈÀÊ`$dÐwÐwOÁoKß Ò, ~[ žßýµ-ß{®ûxòé»Ñw£ïFDÑAt~U>èlÐÙ ³ÏÆ®¢„(Áù?‡kkkîl,o!r–ö¶!¿Kù(ñÎÞzõžšâü7†¼ïyßó¾ÇŽaǰc‹1v˜c˜c˜cÕdÕdÕd—¾\úré 1[½Ê‰Ê‰Ê‰Ñ[£·Fo|3øfðͯÊɉG&áÙØ ó ó ƒs°2ÅÈÆÈÆÈþ™ü–t Íú7e(—VÑ·ó“áqÙ2]µqÛ>Í~Œ!=!=!=s1>:>:>šö6ímÚ[ý@ý@ý@bÖ 'N$œH(à/à/àŸ®®þe¥Ö ñ ñ qÜ6Ð5Ð5ÐÁ¸V( %X‹`[[[ð¼ ø€ÀŒR./Å–ÁQ6B=yö¹š74oh6m8Úpûûû`±a"r"r"ÏÆ®—¼­~ªñ]ã»ÆwºFÜgr¸Ê]%^‚}6 ©ßA(zÕÕÕ?u©e‡µÃÚÕ¿®]ÿڋ‹‹‚˜­^I;I;I»—Ç_y¼ïFß¾?ç(2Œ2Œ2ŒpûS­ÇÖcᜬdeees™ÃíM„»ÙC{’3"Í¢ï±ÉùÔ«t’fs9¢ŽŽÈbLíœÚ9µ3Û>Û>ÛþØè±Ñc£Ä¬̂̂̂²žg=Ïz>Ù8Ù8ÙøsŽÂp“á&ÃMx^qu{{F°r@ÉñïõïõïÅó-ÑsV·s d»P­äчÉùæw#çÁãÁãÁS]P]P]€¹ƒ¹ƒ¹³°9q-ãZžS×7×7×Ã#¼àÈxñ:ã5¡ëBöñ 1(÷~ÛvÍ$æÊm"±ëE׋®‘ÄÐJ#ÒˆtóÚæµÍko£n£n£¨·Ro¥Þ:¿___ß“SON=9ÕÍØÍØÍ¸]6Ô4Ô4Ôij±{{{ÎVµµµ2e2e2ešËìmáÄ‹aÙP}NwŸý¯-ú6y/ío'.LËÎ:—žk¸i¸i¸õåõåõåÁ¸/†ººº‚é‚é‚éS«N­:µŠ˜’ð©#RG¤R«R«R«ÆŽ?¸°½Š™Š™ŠÁý\÷h÷h÷hMÀJ`$§mCÛ†6<þ¥ú´Ý—' · ÕòØžFù„’-Ç,Ç,Ǭòáòáòaônôn4QïÞ3¼exËðž]W¬+ÖÎøUmmm] êµ¢¶Ha ô;v>#Ká%ßV <ßýåcâcâcB[£­ÑÖ$:ÌiH’ÖNÕNÕNȬƬƬ6¿;;;Ý#žG•>•Žgc×ÁÝÁÝÎPÀ3© ¤ ¤ Ì}ÞÞKIvÒ×[¦›‹ºNCÏP*cñʽM/õJO=ˆTPçaßöp³Ø¦¢¹÷3æxÌñ˜ã0¾?*•ƒÊ)ã/ã/ã·/´/´/$f'AóŽæÍ;‰)‰)‰)£ä£ä£äÄô-g0g0gÏ3W<ª=ª=`ì+ €(^.^.^.Ü…»ˆªWtÔ%(ßÕ2„ȨmЧõÝÚáðêðêðêCý‡úõs#w†ò åÊ¢Ò¢Ò¢Ò™„™„™„¹ŒûTñTñT1ž]ww8/à×B™¢LQ¦B ý-ô7¡ù¿e{ya·ÊÊÊà\ÒTSUSUS5ûL~Äq7;‘VÞ°œJ¿i'þéþo(ܳ1fãJÎáûÃ÷‡ïÇŽ?Xm—Ú.µ] »N(÷(÷(‡·úÀË5É5É5qrrb>Â|„ùÈÂÎÞ[*·Tn©<Ïvží<[FAFAFÄ|Åy…¼B^µi·i·i?à|Àù€“‘‡‘‡‘gž¥·Eo‹îÿD ¢!Ø€• ÀHÊåò ´Äç¹uÆÀ—ʺsi%äî §>#ÉÂs…ç Ï-Ô¨¡/£/£/W¤W¤W¤_ä¸Èq‘ƒ˜­¹ÏrŸå>Ç_¿u8r8r8Î 5Ÿ>7|n˜}>W@‰FÑ|ÉIøOÖoé}g rL”~³k0tfß=ûñ&c“±ÉXÈ \c*c*c*É÷“ï'ß×Ù¬³Yg31ë„3ìgØÏ°———¢6 6 àÛÀ°è ×®)\óõõõpúáôÃio+o+o«kÔר¯Q߈¾}#: , , ìÍßoþ~ów^q^q^1Ä üãÈ82ÞÉÝÉÝÉýØï±ßc?N6N6N¶ù­(ë(ë(ëîÑߣ¿Gß*Ý*Ý*x#Þˆ7„°r@À¾-}[ú6BËz±~ÿµïe Ä;{Ëp\ÖNÝ7z‡O>yøäb æ#æ#æcooïåk—¯]¾FÌV¯‚“‚“‚Ó›ÕoV¿Y=00ç1¾´}iûÒÆ|Žùó¹!¶!¶!6ˆ `~ú®÷]ï».È!È!ø?þôç³=7ãÔ¾¬\Åë¤_ôÅvä(¯}wì6V¨iNßIÝ_¾¿|?äÃÜMDMDMDeødødø>2|døˆ˜u‚UUU]ž]ž]žÝ´Ì´Ì´ D˜qÓqÓqÓ®¹þåúR„!E?SOjOjOêó˜ç1Ïc„«„«„«æ·B ¯!¯!¯ñ9âsÄçÈç¿?ÿýùol¶Ûžì3ì3ì3+I+I+ÉÌ;™w2ï@L 5P°dèÚèÚèÚà.â©?ì´8$õ*¸6Ï ½¸-—®µñUB·@ݣݣݣ¿àV!›‚Mi¤n¤n¤öŠðŠðŠ f«WŒYŒYŒ9B,B,B¬÷bïÅÞ‹p¾ÌE×Õ®«]W¿äÖ‹[/n½8P8P8PñÌJ%Šu¸äpÉáÒ\æðg—£ù×OVdS´!¡Òï©=e¶4$ÀUtëÆm.%³…âzÅõŠëûFúFúF ˆ7U6U6U–+›+›+{¨ýPû¡vbÖ ÆÆÆ™•™•™•“\“\“\á¹H(N(N(þ6’NrNrNrÈcä1òâàWøsàÏ?_{¿ö~íÍŠeŲb‰Y'\=põÀÕµþµþµþØß±¿c‡ÿ«UÈ*åååïÞâœ6•6•6á€t@À’Ñ_Õ_ÕOð/=Y>ïjúʽ߶‚î—ÆžHZ—§(ÁIDATŠXÔ¥¨KQ—HadËsÊsÊsð¼éYšFšFz~·pÜîÜîÜî¡ÛC·‡nïDu¢:QA#h8¾%š*š*šŠ'òö4ö4öý&ý&ý&%1ÒsÒsÒsæ>{»•X’íÈü\ñ¶Z:çç}{Ï$½“ yÔ겎—vî}€±^<ŽJŽJŽJ ûîÉÃü‡ùó§ô¥ô¥ôUŽUŽUBœqŠž½…½…½b†˜!f%¿ Æ ã„q½N±ñ±ñ±ñ³NpYã²ÆeMeeeee%º ]†.ƒhëeÚË´—i„¢÷AíƒÚ5ˆ¤ À–˜LL&&Ch¡ÉbRìô”~E^ßy»•P”̋̋ÌIèñ}ŽÎŽÎŽÎ¸ýœ1™1™1é8Ðq ã@àLàLà [1[1[ñünᘙ™ÊÊÊÚÚÚL$É\ÉgÓ„û„û„»Ôq©ãRÇq#FaJaJaÚÛßÛßÛ3€cµcµcµÎýÎýÎý?0qÏå)]ηæâˆ(Êxâ$Þ·°åÞ¶™¸&™áBŽ<ÿðnÚAGµwî]Ó<¤yHóP»m»m»-ŒïâÁ¸cÜ1î¸ñ·Ô¶Ô¶ÔFË eÐ2åEåEåEŽžŽžŽžÄlõjœÑ8£qæ]Ê»”w)#‚#‚#‚ÿJÞJÞJ^B;{é쥳—:„¡ƒXøùªÍªÍªÍp¯P¹¹¹£y£y£yIÖIÖIÖ%J”$f`wÊî”Ý©’â’â’b”.J¥ ñ¿_~¿ü~9¡ˆ%ù%ù%ùA”øµ  `Iòßî¿Ý;¡…&§ˆEá%וYúÝxsGt¡È033Oý=õ÷Ôߤ0Ž/ŒÆ ÏÆ.%% ¡Ÿê^ß½¾{ý©'RO¤øBøBøBæw G}‚úõ ?~?~?þf–f–fDQ@VÚÙ4yiòÒä%ùµòkå׊Uee%Ì<âµl=ØzÐx½ñzãõD½þ¨¨0møé}%¶#¾}gÛ¸¸Bz.ñðý.z•žßöI…Ç9¾È»þöqŸs 1ßn°ÏKÞck(™(Íü>Qø²ðeáË… >„qü9ª/W_®¾Œ;999xÖÞoŒwõ‹êÕ/ÜÇÜÇÜLjÉ1¥J'”N¼Uy«òVeP}P}P}eŽÂ'ýOúŸô Eé”÷)ïSÞØ,l6 2ÀÏäîèîèîˆ{mšJŸJŸJÇý÷222é¶é¶é¶¥¥¥Ä¬lülülüòÝòÝòݦ§§Wæ(î ܸ“P”  àõRü2P°4#ÅH±µ±µ±µ1¡…æŽF«íí¤¥B‚ òVBéWXêšùK…ÙoQºZºZºZHg«ŸT?©~‚gc7/'/'oî¿§ï\ß¹¾s/Å_Š¿—ä”ä”ä$æFÎKÍKÍK­¾¸¾¸¾ë„uÂ:­„SjêÌÔ™©3Êw”ï(ß!˜?Ÿº>u}‚é°P:6tlèØàXìXìXLF’õê=Ô[†)Ôa`¼~>÷÷÷<»1S1S1sù X?¬Ö¯A¶A¶AöÍ š4Ä䃳³ó ¯^/¼ú¶õmëÛ¶rƢƱƱƑPd¬¯[_·¾Ž5Äb !o,6ìììÜë‘á~Ãý†ûà.øÄÔ‰©9<9<9<[-¶Zl%f`zÊô”é©ýû?öOÞ›¼7yoåŒHðùàóÁç E&n2n2nò€Ÿ À–0 5†C}xíᵇ ~s‘ééîP½RGƒZre—ké—·ì¼Æ‘ÙoE¢¢¢ImÝ{Ü{Ü{ðlì>›z6õŒ˜ß<øpðáà÷ƒoß*Û*Û*Ûs#çÎèÎèÎXÍWÍW͇9‰9‰9¹\Ï©iíiíií=”{(÷PŠF§P§P§Ì?€…5ùjòÕä«ÛÛ[íOÚŸ´?ýür¯XƒXƒXCĵˆkש©©a\~ì ì ì <»ä†ä†äDýj-D Ñjöiöiöñ›ò›ò›¢¹Is“ææür†×—×—×7ìZص°k]‘]‘]‘Ë{\ê¼ê¼ê¼EÃâ‚Å‹ ˜>L¦rÀâ©ÇÖc뱸W¢ à à ¢þiF{F{F»ðyáóÂ綬¶¬¶¬Ä¬-õÖê­Õ[›º)uSê¦ñ½ã{Ç÷.ïq %˜M1›b6Aöð3AÀ’‡JC¥¡Òt't't'-4)×3$²(ˆî½Ù¼<оRjA/r¦Ù(:XÞ™ý–£ž¶ž¶ž–ÔF {{{··G+ŽV­XŒOqqqH0H0H0ØwrßÉ}'‰¹‘sxíðÚáu¹z¹z¹:z z zËr:§f8f8f84®j\Õ¸J(W:®t\ù°Ø>ÿtüÓñG§ztê÷!îCÜÄzU²T²T²n¶ßl¿Ù^ U U q&5 t t tx6vÅ2Ä2ÄøÃ ¤ ý^û½ö{}ú<ôa‰c‰c‰›_v±¾c}Çú.P*P*Pª}¤}¤}©@*Še5:Þ Þ Þ¿ÿ¤kªkª‹±ÂXa¬ “,¯'^O¼ðe\2¸dpÉ€¨?L4P1P1ˆöŒöŒölllY±&bMÄBGýŠñã+(°è  ` Ê Ê Ê›}‘MžF}m ZÀÄÅ2øé}ÅzüPïùóTÑÍ~\»Åw‹ïžžž å1ºAvƒ Ï“É&œ'œ'œU¯&Í&Í&Í>š4ÿhnr×ä®É]bnä,Æ,Æ,Ær¢s¢s¢§‚¦‚¦‚–âÙ„Š@E "É’;$GèH[°-Ø,Ì<€:¢Ž¨ãÙØ½ª}Uûê¯íZoyoyoyDwDwD·8·8·8QßG¿Qu£êFUCxCxC86Ž _ŠÃÕlÞlÞlNðÑ—#z#z#h)´Z RÀ\wö7ïoÞ{ÅI6O6O6ÿU½ÂÃë7«7«7»î{Ý÷º/1+©mRÛ¤¶½¬{Y÷²®/½/½/}éŽW$u$u$5¡#}±éŦðPh€,[E3E3E3sY^SýÁŠâ<Àì„ ô’úôøp> )}EÏúÆÊ1«í5PœËQøö;ìwëõÇú“ôÀh"šˆ&ž]ememeRëìô©éSÓ§òÏÿ=ÿwë4ë4ë4bn䎾:úêè«ô™ô™ô™‰sç&Î-•³ ­…ÖBkñ<ây„à7ì›YšYšY`æ@Œf›f›f<»ÒÉÒÉÒ¤ÖÛÁµƒk×¾‰|ù&RÑUÑUÑ•˜u‚G¼G¼G| u u 5&ŽY2%áVéVéViBÇ¥®®Žº…º…º€~Wü®ø]Á½ÖŒñññ“PGAD°)½)½)ý¶Óm§ÛNT¦T¦T¦ó[!ð?äÈÿðIû“ö'íÝzÝzÝzKkÔ¢è£è£è ݳÉg“Ï&!·X P°ÌsŒsŒsœå>Ë}ö¾¥±ÝæHãZQÚ›ªÑ5?§Ü+a~ÿUš Ïû3;yÔá;Ùù‘¹ô“ÉÉɯªªªªªj©ŒH³g³g3ž"b2E2E2é÷%ˆD –,9Xrð\ع°saÄlõj3h3h3$¡“ÐIè±µckÇÖ’ò±£уèAà à à BGôYê³Ôgø–€yò{ï÷Þï=ž]Æ1Ʊ%ð¨ÀáÑáÑáÑw;Þíx·CÝKÝKÝ‹˜u‚Ó~§ýNû+ä+ä+äÑFh#4I?8º}]ûºöu„ŽEkŸÖ>­}3Ÿf>Í|‚<ðò‘l$›º›º›ºûÛëËÞ©½S{§–@ÿß#ï‘÷mÕmÕmÕŒŒŒL˜0=˜ß ½„½„½äQø£ðGá¯;^w¼FZ„¤½)zSô&BGVVViÀ‚0€¤âVÅ­Š[ôôô?º¼fâW=œÍS}Vü–”Ø?·âß̯Ð+UðX8oB@ÇE!ø{›Ç©^ÊXÆZöß~´?OôŸè?ÑG¢GÑ£Kküüüðlì’‘‘-żB¿E¿E¿­4ª4ª4r–q–q–!f«wïî½»÷‹‹ÖÖÖ µãÅ\Ä\Ä\4í7í7í't * * *0çøyH’G#D#D#ôÝ•1noÜÞ¸¥{XcÆŒ=H1H1H18´ïоCûˆY'œyzæé™§ÅlÅlÅl333¤v¼™™™„ú¯Þ£Þ£Þ3óïÌ¿3ÿBʘ»vƒvƒv q q qáºÂu…ëÊüVtÉtÉtÉwYî²ÜeiIlIlIDœ'ĉÔ:‹ŽE:ŠÇþýûC¶°P  `å)FŠ‘âLÕLÕLU.6.6.62â]Þ躱‡Ò…‘Ÿm;•#ûnñͯXº8Fȱ4{i§ÉˆÚ퇳³³Z’‘/@ WWšï¸÷ÌÞ3{Ï,§Ãtaº0]µìµìµìWü¯ø_ñ'fÜåyäyäy¢8¢8¢8444Iâ1 cù—å_–êyBBL9æ¢Ý¾Ý¾Ý÷j‡ŠCÅ¡–Ó‘NLOLOLgªeªeª³N8}<úxtnFnFnÆ2…Æ— :Oužêc>c>ÿªãzú>ô}(¡~>˜z0õ` Òb@øÎ¸ú¸ú¸ú‡C}8dBoBoBÿsʽâââ]»>vý¢öEíË2ükLJW^yˆçqFÃzÃzÃz+.ÕÜ7Ä­¥©¥©¥éîñ»Çï§g¦g¦gžçŸ 0s1s1‡H…H…Huztztz ?ñK@Ørl9¶Üv‹í[‚eàOdŸÈ>‘Á ¯»ú,ú,úßmì>’$ÿhe†d¦m¦m¦­X»X»XûÌø™ñ3ãĬ3u¦t¦t¦RØSØSØÇ.]»ô3¥'¸'¸'˜PßäLåLåL'N< §\]Ì]Ì]x‚£‚£‚WfL†-‡-‡-ã†ã†ã†÷>ÝûtïSbÖ ‡/_®¬¬D?E?E?ý™Ç’b˜b˜bH¨owïܽs÷œÌ€€9ù‚ú‚ú‚J½’z%õŠþ:ýuúë¸;¸;¸;f_LoûkÛ_ÛþÚseÏ•=WœFœFœF^ç½Î{WgVgVg¶"Â÷uc÷9Ës–çßmì’?$²ëÿµ!mH[GiGiGé£ÞG½z· lØ.0¿[8&&& 4´Å´Å´Å ñH<¿ˆýgGØösÿœûçÜ?„zUÑZÑZÑ C à[]]]x6vOGŽ: ñù }}}¢âTÅ©ŠSNÁNÁNÁÄlõªó©ó©óÅÆÆ× × ×-vÿû˜ú˜ú˜(i(i(ipû#™%™%™5a0a0ac à[¡v¡v¡v¸×ŽÏÏOˆÏWcôcôcôɂɂɂÚöÚöÚöĬÎiÓ:§UÂZÂZŠbE±¢X»ÿididi„_ˆÆâÇâÇ£ À‚0]×®]xꥥ¥ñ™]·c·c·ãSÖ§¬OYùÑüh~ôüná6c6c6cn ݺ-Ôô°éaÓC„ áB¸¸»'È ûûûB=){Vö¬ìŒ,€¯BŸ‡>}Žgc÷ìÀÙ³B0јhLtBBÂåU—W]^EÌV¯"³"³"ó›SoN½95Ð3Ð3г}î¿Û·ÿî–[vnÙ‰ÛQjQjQêqqq __qOrOrO~w½ðõõ€ÈÌnâúÄõ‰ë¼¼¼†« W®&f`mcmcm“W’W’W2m0m0½(°•M¨>O|žø<‘`î  €EZZZgc÷èÀÑ£ŸÕ×Ô×Ô×III-å"å"åBÌÜu•ë*×Uê%ë%ë%±XìBÜÈ=Gž#Ïrrr }n‰^‰^‰Œ&™ï6v¥D¥D¥ 2? …ÂF5”6”6”zoõÞ꽕˜‚X±X±XqÄ‹ˆ/zc{c{cªŸèôš‡‡÷s   ÆøÇøÇøaL`%ë é é Á½R„—†—†—B|~ÔÔ›©7Sor:r:r:,wYî²ÜEÌ:ÁDÎDÎDî#ÿGþü“û'÷Oî_¨~f)e)e)úÜT7¨nPÁh0PÀ¢ã¹ÆsçÚ·Kv‘I‘I‘IˆÌBD¢ÑÑYÑYÑY*ïUÞ«¼'æFîù%òKäŸî~ºûé.F£‚Q™g·Ê‘r¤ÜÕ×Õ×Õ—Ðg­*ZU´ FV¦Þ„Þ„Þ<»¡á¡á¡Ÿp 9†kÙܲ¹e³ÿ¨ÿ¨ÿèÌÌÌüV<ü<ü<ü¡A¡A¡A]"]"]"__ó1¿® :0t€……………÷³¸ý¹ý¹ýG׎®] Ã+S„G„G„î5¢wwïîÞÝâÍøÌøÌø(:Ptà´òiåÓÊÄì$.>\|¸øƒÆcè1ôš˜¾åääú¬kŽ×¯9"X‹`a  ÀXD½Å½Å½Åx6vÏ„Ÿ ?ñY<###‰‰‰û£öGí"æFîÂÝ w/Ü-‹(‹(‹@õ zP?òXÈAdôØí±Ûc7¡ßŸÿ0ÿaþC5Xi"b"b"bðlì ô ô @|Å'äò©ƒ²ƒ²ƒ2Ð-Ð-Ж–v~+–},ûXö=ÜópÏÃ=ígÚÏ´ŸAr‘\$wîÝÚñ׎¿vü…ûûw¤ìHÙ‘2\8\8\C+˜¿˜¿˜ÿ·×®f®f®fˆÌâAoGoGo/w*w*wrÀ8`0Äì$ì£ÜG¹2%%eÄhÄhÄèGû“/Ÿ/Ÿ/Oè÷{”y”y”!#È2c.(`E´D´D´àÙØ¥ë¥ë¥ƒøüLãÆãÆãÆ©ª©ª©ªzúzúzúÄÜȪ8Uqª¢Ð®Ð®ÐnFyFyFù|<Á ˜«W'®Nú¹l¹l¹l0R°rˆÕ‹Õ‹Õ·±{ë×=ˆÌÏ×UÔUÔU–––Ç;Â;Â;2¿ ; ; »ß[¿·~o›-š-š-5D Q›ýÓGêFêFê¸:¸:¸:ð”™kXjXj†<†<†à°" ÔÔÔâ^B’B’B’ >?Æã€q¨Ö¯Ö¯Öw·q·q·!f'A™B™B™âmÌÛ˜·1ƒ.ƒ.ƒ.séCáË—…/ ýN777¤©Fªa¼ø€°ˆÄÅÅ¿ÛØÕàÒàҀȂɗ“/'_f1f1f1šf™f™fs#gžožožŸÎFg£§ô¦ô¦¾ß×ËßËßËŸÐïÉ Í Í‚Ç~À2700000€gc×+Ä+Ä âC údúdúd^ä¿È‘/qIâ’Ä%bÖ ^¥^¥^¥ T T TX/¬Ï(­[?¶žÿ ÿþ7¸¿¡¡¡}{{F–·7{Þìy³÷ZÐù±ócçGˆÏ¯…õÀz`=ê'ë'ë'½îzÝõºKÌ A¢H¢H¢èêêªO»O»O›Ðç–¬-Y[²–Ð﹨uQë¢òy¼†1à+(`Q ®\5¸ ÏÆ®nˆnˆ.ć4M¿š~5ý*?&?&?Ʀææƒ˜9‡t‰t‰t‰ Ž Ž Žo?ˇهه™ÐÏfnÌܘ¹F–«7öoìߨãÙØìŒìŒ„øèêÎrÐrÐò­Ç[·JJJĬÜ#Ü#Ü#ª]ª]ª]0—0—0—¾~Ê8û8û8»ˆˆžïmiÛÒ¶¥­?¿?¿?F–+…^…^…Þoç¦q¦q¦qd™Af >$GQET›w7ïnÞíwÁï‚ßê*ê*êªù­ødødødÂÐaè0tWgWgWç·U¦U¦U¦EðõU.\.¸ ç‘óÈy  €EñæÉ›'ožàÙØõëôëôƒø,( ”Ê¢S‚)ÁØ¥Ú¥Ú¥³Õ{ í@Û¶$$$Ñ·£oGßÞ~zûéí§„þ}šmšmš-Œ,?Š<Š<Š<ßmì¾`zÁô6v—–µµµw“ï&ßMjkk³Npww/\þ¸üñˆßˆßˆŸ$­$­$ž÷SVPVPVôê;ÔwF–“áüáüá|Ü™?àhÀÑ€£Ÿ%#ÉF²ÛuÚuÚuR>¤|HÉòËo,¿Ío…Àvœí8ÛñÀwïßuðuðuðUØVØVØú÷çÏž Dø~„†¬dPÀ¢P<«xVñìw»†L†L†È42LC|–.t#ºÝXõ{ÕïU¿»hºhºh³Õ»gÍž5{ÖX³X³X³ú7)™)™)™yX†‡‡ñlìrppA|–º±ž±ž±žÌ˜?0ö<ìyØ“˜u‰¾}'ú„„„ðüç8²8²¸žêžêxç,ñ…ñ…ñ…¸S~ÛTÛTÛÄg)o% hÝEßEßEz<ôxèqîîîy>uŒVVVýbÒŤ‹I„þíKÛ—¶/±MØ&l„¬LPÀÂ]|?@=@=@A|–ììì†Úµj?\ ºt5ˆl$­KZ—´¢ K]üDüDüžÝƶƶFˆÏò3)7)7)÷ñÏ~üÓkŒ5Æ.Æ:¡[µ[µ[¢ KڌڌÚÌ·3Â>Â^ì’Ø%±K »B°yeóÊæÖëŒu†hƒ• ÀX`ïß1¾cij±›Ù–Ùßã\°ÃØaìðgÁÏ‚Ÿ}žø<ñy²In“Ü&9âoÞ"ä#ä#ä!°t©K©K©K}·±{žê<Õyä=òyñY ¦÷Mï›Þ—žžnÍiÍi͹P›¼MMMaXŠÆÎŽ;‹;·ßN¹rJ¿+È@å@å@åÙ7²odjjj‰_!èVëVëVcÿÅþ‹ý" V(`©»¨»¨»|·±ËAÅAÅ$ HÄg…º…ÜBnµš´š´šÜ3¾g|Ïx«ÏVŸ­>ó»yKØ–°-a––±Ëc—Ç.ãÙØõ¼íyÛâ³’¡hP4(š’ßJ~+ùíÅ9ŠsÄlòB<`)JY“²&e ž?îiojoj‡ø¬dÃYÃYÃYñéñéñéjÝjÝjÝó[!˜y˜y˜y@<ÁÊ`,0<»n¸}"³Ò`Ô1êõ¡ãCLJŽ×´Ô´Ô´ÄÇÄÇÄÇx¶x¶x¶hšjšjš’)“)“)Ïý†ü4ùiòÓÜÜÜaXZR¸S¸S¸ñlìæ6å6åB|VÒÁ ˜•••îÞîÞîÞâÞâÞâÞååe{Œ=Æ#e!e!eñ£»V]V]V]`XŠt2u2u2ñüY"†ˆA|V½È^dïÃÃCëÞÖ½­{3«2«2«M›:6ÅnÊnÊnú£ë„©©)0X9  €†gc7²)²)"³\îËDgBuBuBµõnëÝÖ»e>Ê|”y(ÿPþ¡¼yˆyˆyȽz;ôã ûöì€A€¥H¿^¿^¿ÏÆ®"„A|–Œ/Æã;ü×ð_ÃÕ¶Ô¶Ô¶$''{yy¸ràÊ+ä¹ä¹ä¹‹±NÈÏχQ€å±“p½âzÅõ ˆÌr2ó|æùÌóž—=/{^–n(ÝPºáÅÇ_|t¨u¨u¨•U•U•U%[4°Ò@ lòéäÓɧYdYdYd¦¦¦/‹ðBd–ÀÍXÎLÎLNOOOOOO©E©E©ÅKù—ò/åÏ;žw~>~>~Ã Ã Ã Ë –,/´°´°´°ÀpÀR„½„½„½Tß]ß]ßíåìåìå\½þzýuˆ éÃcŠ1ÅÃáÃáÃáuuu‰6‰6‰6Þ‡¼yÒÖÖ¦”¥”¥”ý™ëÅBÅBÅÂc[Žm9¶åVä­È[ðµ°â@`¹ßŒµbZ1­Ã à à õ¼õ¼õ¼‰Í‰Í‰ÍÞ½Þ½Þ½:ûuöëìßL¾™|3ùϼSz¡ôBé…‹–‹–‹Ök×:¯uÊãËãËãûNõê;…ºŒºŒº c,63ŠÅÜû´÷iïÓ2÷2÷2÷ȤȤȤ‹5.j(H+H+HÿÌuuuÖᇇ~èSäSäS”t8épÒá¹¹¹,– Ëc,"?Äñ›T˜T˜ThWoWoWÏŽÍŽÍŽ ² ² ²³ºmuÛê6÷î Ü~æ:çož¿yþ¶¶²¶²¶ f f fˑȑȑhllœ´Ÿ´Ÿ´G‚‘`$(,a“V“V“VíwÛï¶ß͡ˡˡ Âa‚0ÖbÖbÖbܥܥܥ?ófŒ[™[™[Ù*Ë*Ë*+(8(8(8»2»2»²Ý´Ý´ÝtRcRcR¹‹ÜEîÂØ‹h ²Y3rnäÜȹ†í Û¶'‰$‰$‰ø<öyìóø°Ùa³ÃfÔ—©/S_þ™ë…ó çÎ_t¾è|Ñ9²%²%²¥,¸,¸,¸7¡7¡7ʼnâDqÂЋ å„rB9õé÷é÷é—””¼æ{Í÷šÏ…Å…Å…EÉVÉVÉög®6ïß¼ó~«:Wu®Þ¤ºIu“êýê÷«ß¯®W­W­WîîîÅtaº0]0vÌ€–°Ÿs3FéJéJéª]¥]¥]å}Ùû²÷åDßDßDߺÿkïîUâÚ —j#KK‹(£XM#2(XXª¨…„*8­DÒ(v!Šƒ’F‚Šˆ…ÁBRø“&èL¡Ä¤£‚8 8Å ÌèfŸ8©ääĕ繄o5ßâe¯]úQúQ*ìv ;Ñit:ø,o.o.oþž=!QH…±ã±ã±ã¥ª¥ª¥ªÃÌaæ0s5s5s5S:-–Nã‰x"žp.ð'hH7¤Ò¿gOèìèìèì˜ü8ùqòãúèúèúhîmîmîm>ÊGù¨’«ä*9'ÿà{úe¬cºcºcz²f²f²f-¿–_Ëç^æ^æ^æ?ç?ç?W¶*[•-s€çåËÅ—‹/OÙêªëªëªûwûwûwg¿Î~ýº“ÜIî$¿W¾W¾W õ…úB}ô>zyÕž™¶Wm¯Ú^=eOhZhZhZ999ÉŒgÆ3ãÃÃ×——¥ÁÒ`i0Їâ!Ó†ÿ‹ ðŒýê2Ö˜mÌ6fG#‰‘ÄâÕâÕâÕ~q¿¸_¼|}ùúòu©¹Ô\jŽ{âž¸Ç  <×éëôõ/¿ìIu§ºSÝoZÞ´¼iYM¯¦WÓÙêlu¶ú6¾oãJo¥·ÒGqG& á™oooý—aîÅÜ‹¹¾}ú>ÌÔÎÔÎÔ~úöéÛ§oggg÷÷÷Ñ@4 ˜!üù`€gl7¹›ÜMž­œ­œ­ÜwÝwÝwE©(¥Lþfïß=¾ÛÛÞÛÞÛþ9õsêçTqµ¸Z\›ãæØvà¯v¾v¾v¾vtststsÛ~Û~Û^¾+ß•ïâr\ŽËæa€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€!B„  0@ `€@À€ñ¶sd$‘Ð &%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/windowCount.png000066400000000000000000003233161431412030200257210ustar00rootroot00000000000000‰PNG  IHDRz¨¤ÊgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝyXNÛÿ?~Žs8‡cJQÒ+}V:fÂ`èd±±±9T•Cš~hú¡éã½Ç{÷ÒIì/Ù_²¿t<åxÊñ”üØüØüØ–-Z ç¡³ÔçÖçÖç>îÿ¸ÿãþûÏî?»ÿ¬¹¹ygexêÝ©w§Þ ³ ³ ³{®û\÷¹.S‘©ÈįgÐijŸÖ>­}úÐè¡ÑC£Ý¯v¿ÚýÊ¢·Eo‹Þ•á™i3Óf¦É<“y&óEä‹È‘Ì|f>3=¥æIÍ“š'Y³²feÍÚ9`瀌ããã;+óÉÙälò¼æyÍóš¯ú¼êóªú:WÕÛª·Uo3d,ÈX°Mn›Ü69ý9úsôçtV†çÇÎ{1äbÈÅ×ã_=}«RªRªR*ujêÔÔ©›57knÖԪתתïxz‡Å ‹ãêêzùéå§—Ÿ¾]ÿvýÛõèsè\û+öWì'5IMRs“Ê&•M*jÛÕ¶«mïx†GÜqcÄ ×e®Ë\—EŠ=èÝÑwGßEŸCç*¯,¯,¯LÖMÖMÖõòòR 4@i@Ç3,''·Lw™î2Ý8Ý8Ý8ݧ?œþp}«Ì¸Ì¸Ì8É.É.Éníĵ×N” ” ” ìx†Å.ˆ]»°¢fEÍŠš»»»O¡ŸB?…¢ÏX¡ ÒlÜlÜlL%’G;>v|<äq6t6t6̸—q/ãÓ’iÉ´Äè'ííí;î‹¦.šºèWeØÝÉÝÉÝé~Òý¤ûIÌOÌOÌOàD}ßú¾õ}sss'æMÌ›˜÷«2ìéäéäéô(øQð£`Œ pîûÆï¿oŒ7ˆ7ˆ7#?F~Œü¯ÊðÃ5†k sÕrÕrÕ0.À¹ªœªœªœhßhßh_³9fsÌæüª û5û5û5·¾"‰qÎ}“ú&õM*ê`ÔÁ¨ƒú^ú^ú^¿*çNœ*T8¨_C;”ï*ßU¾ë|ðùàóÁK4–h,ùUÞ&±Mb›D‘u‘u‘5Æ8÷Eæ‹Ì™Ó³NÏ:=KÑHÑHÑèWe8dsÈæÍ¯§¿žþz:Æ8÷éÒ§KŸ.ès¢Ï‰>R•R•R•ÿ}zììì÷¥ïKß—^bQbQbqÿk&Sú¤ôIÁëæð‹¡ íVZQZQZ±#pGàŽÀ!\ìඃÛn«Ð®Ð®ÐƨÁ>>üøðãÃÍ7Ü|›3|ìû±ïǾW¦U¦U¦aÔàGïV½[õnÕúUëW­_ÅÍ>­qZã´FͨšQ5£0jð£×/_¿|ýrµøjñÕâÜœá † /ÖêÕêÕêaÔàGE‹ ô8æqÌãw¦Wð¦àMÁ›W†^zehýÈú‘õ#1jð£ç}ž÷yÞgñëů¿æÎ Kì”Ø)±36>6>6¾l HŒüèéݧwŸÞS3§fN wfXÁRÁRÁò¦ÌM™›2MjMjMx½ þO³ŒYöØì±Ùc³iyÓò¦åqg†5çkÎלgÑEw5/j^Ô¼Cÿ8Ã<ëVÿ¬îµÓk§×ΟÜìk¨ÀΡ³_ÚÊI¸ï¤<Ÿ)õ¹¶]Gƒ¼Uš I®9~^oñคžþÍ”ƒƒuT"®n•P/Úê¸ô©Â^‡l«qb2Éð®Ò]¥»J«ó«ó«±Ñnõ>à}Àû×B×BןKŸÊð$Á(±yf“lGëÍÖZi¡üÔã}°€ú uƒ)k¬XïvµÝôZÆ}öŠÐò[œ6VÌ\±C鸳íYa%鹫޼WPŸâ¸5Hv£¹Åâoâkdâµ FŒéH†oÚß´¿ißRÔRÔR„Ñì™îMº7éÞ$Õ™ª3Ugþ\Š4ÆÊqÅNÍS2gðY$¨dŘÚ×òKî5Y[÷•æÐ¤Å›|V÷Yœ“í+­šãk,ëU÷x_ÖÞ&›¥OŠZÿsÿGŠŽ)z÷èÝ£w2C˜!ÌŒ&t.€;¡ ´šv7ínÚ}\ë¸Öq­v\GõUHÊ~3c£¡ “éæfcÓií+·96¦YG¦½3X±q—¾¶|¿ö^ÛùÚóµçk[ü[ü[ü1ʼ­áqÃã†Çzèu W;^V(ÖÈ—}=m žœ‹œdÔÉÌʲ±é´–/‹ÏfHÆépýŸ… ×ɽho†¯&]MºšÄtd:21ʼ­.±.±.q‡ÏŸ>í(ô𠝬9'Ô»¿N¿mI—–˜˜œ>•ÕY­qz¸BæGÍ^ÕO J9ئÌÕÞ 'È%È%È1Ÿ3Ÿ3Ÿc”yÛw›ï6ßmÂÂÂ9OˆP_±ëÃÚYlœ/#±bQÂZÕ¼ÀÀü|Îjýr‡ko\<úÜq%cƒ¹ïÅDÛ›á;:wtîè`|{‚ªuUëªÖ­[½nõºÕíøêk´Pº@ÍQyKQÕþÏ=œ–gvî|¸îÕÒêR²ÅäIºncÔÇIëµ7ÃT)UJ¡üÐ#TØUØUØ-¯[^·¼Žó„¨ÏPz2jã µÁ/ £'šLëÜùpM.•oÙp»þÐ~‹â'J~oÇË@þ#üGøß³¾g}[ìö_î¹ÿåþbùÅò‹ÛqHĈÜÑÁªáJ ®çítËw%ÅJuî|ØðÜQBWÍÍä_ÅøLçNäãüÚ¤öHí‘ÚóÈê‘Õ#+ŒoOð±ücùÇr§~NýœÚ±~%{R×cÄÁ)» äj½ûÞÝ£¾°sçþó2ÏhúÏÍ>¤`¯áo«,ÜŽ—*T'¨NPðôÓÓOOqpUP__oÀþ€ýÎsb3ZZ{Ô¸K“Çh|.Ù1OÕŒ¯sçÃ¥ÓÜ0?fk µÏaÑhJìoÎ¯Í Á Á ¡P£P£Pã `àN(Ï®=»öìšÔn©ÝR»9:3o—Žœ^ÑùÙ-&w:¹ÜËq›/ê¨fÜÙ égœ\³NšNšNÚë”×)¯S0â¼'‡Ê¡r¨áæÃ͇›s’‡ ÓïÍxû,>Õôs'—{9nŸì‹45úÍù™Ã)Ž–q-…,…,…Þ‡¿Žç=–>Xú`i;æNŸã~KÿÑK‰»¼Åy«¿ù`DÑ"“$[ŽþÜÙýe÷—Ý_¥ƒJ•âœ?”F¦‘i$çïºú£ÔfŸ—„æÔÎ]Þâ¼u-ŽTŽR{5nº0G¯ 9†:†:†~òuÈ×!qÞ“ü6ùmò[Î3¼7´RY¤ÒÅy–¥Ö¯š§OIÑ—¶ Ý/r““k^|gñÅw*#*#*#0â¼çføÍð›íxùæÐO•ßW¤ØY‰üªù01å©'bY«wYø'×ìèèXó æAÍŒ8®nÇdŠâ‹çlf<ääÇ´–_5V·^w÷ðÁy fêO9¹fß7¾o|ßÔ××cÄyÊ#æ#æ£È¯‘_#¿ržái¯‚¿ÈMó/yú»öå_5žßïøy…›â‹”öprÍ[Š·o)nÈoÈoÀ^e¼E›©ÍÔ÷÷÷ç$ ÃÇñ-ºîsì9 ç–®o¬«Õ|8öœíq­ûòrB®·9¹òÝ>»}vû4%6%6%bØ¡#Pî„0ü˹ÁçŸÌÉò€“Yµò­J9gsK™_õP§kË¥RÆÛ^]V”àh#&§§'Œ~·WÂ,a–;yì䱓°{}ýÕEÕ!džeô¯Zä¢kK•o˜ïßôÊe§üNî%1"1"K·ÝŸ4Sš)½7~oüÞxNÆ]i”«O €ÑêãÌ”í¿j‘‹®Õ;0$ñ7)æ¤w 9¹‡ð!|î®9©9©9)hfÐÌ Ž6›ùtÏðÑ›z?¾¥=àW-rѵ«=ˆßÔŸ»ÎÓSæä^2ò3ò3°ìÕí5Þm¼Ûx×o‹ß¿-œŒû5õ Z¿7Ìu±·îÅmóáâò9¦æKæªiIq´ùyvrvrv22ÐÝÕ›×›×›{xxp2îñû6k¯l|ž±Ëz:·Í‡_‰^c²`Ž£m°Ä6Nî%O-O-g¬v{ßçŸÿ}¾³³óÿØÿf¨+ÿDíê|ëD™G‡½Î æ¶ù°Îíàª+æ"rúS­Ç¶}/ü[ø·ðoy¡øBñ…"2ÐÝUÉUÉUÉÍ´œi9Ó²íqÜ-ú–ïó¦³ÞJÚgòìµK¹m>ì‘wWu²âw3JhÎÿ8äâ¾ä}Éû¯£_G¿ŽFº»¯~_ý¾úM8<áð„ÃÿcEbÙȰáëÒì§”ë3¸ ²ÌEóáF7WëG‚3ö®2K‘ÔÚö½¨ªª¾O~ŸüóaøI(wB˜^^^ËÌ—™/ûßl­¦s_no•…s”åbn[ä¢kËd:[üî§î%=ù|ú~Ãû ï[äZäZp.Z7SW[W[W;¯h^Ѽ¢¶G9ÀÜõ´üÙïïR.[éqÛ"]ûñqb¤ù_ónNZ$ù?^ÎîÜ?¸?sssRѽÔT×T×T;4:4:4¶=Êr»EVì1:õGº·-rѵzßö–%˜‰¸HÙü\=põÀÕÖ—9Šî¥Ò¥Ò¥ÒÅú¨õQë£mò$Çõ÷¥süKžþñë¾lho»jÜku)¥af5BKÚ¾»“̓̓ˆC·T>¹|rùdݺ7tÿÇù¾Ç^Yª-þ®…ÖÝe>\¸Ä)ä·é.‰ä‘YmßÝ…† ‡îèSì§ØO±òÓå§ËOo{”Ϥ>W×a^È ²Ñè.óá<ç(c£WšÑŠ‚"ÿãÕÞe1Ëb–!ÝQIpIpIðHï‘Þ#½ÛeeÒãÒöôî2nmµµ·Ê]àãß'j%¹ í»»5íÖ´[Ӈ ¨ ¨€“VæˆÚ'ŸÜ]f­­›ÇåAÊÏ …†ÍlûîÈx2žŒGº£‚“' 8ú âfð¤:Ýe&üÏN9^SŽëàäîî…Ü ¹‡‚¡ÝPî„pV]^]^]ná`á`á@û^mô¨!ËŸ,™¹Ü°¾{=ÚYÛ̾S+ôŸ·ý˜Ÿ‘=#{Fvý¹úsõçî÷ÿÿ7~ͱšc5iߪKe7ìhÂåÓÆ6Ýe‘‹®%ÇÔ›ú?¶st_ì¾Ø½I¶I¶I á~_.|¹ðå‚Ô%©KR—èÆT Fâ¡l¥î‰[ÑyÝk©‹µUkYû2´¼í ¯\µrÕÊU-‚-‚-‚H÷ûù!òCä0ßa¾Ã|éÆTÚVsáðloïäIêÛº×Rk;wøK…ÿqÎ߯?nüÈtf:3‘î÷FàÀ¶ÇtŒôñQÛ>ˆÏ—5»ÐÝçÃQ·Çÿ©iÔöýîÈÚ‘µ#‹YϬgÖ#!ܯ°¢°¢°¢í1ò§Õ1Òi·ÃÍwãùð‡¬›6ægWlž«>ûlg-|Hø0²Ñ]<Õ}ªûT·í1“5=5ÑÙ°×a×»'ºñ|˜ÿ´h–¤ᬹ~Û÷^^^€lt¾<øòàËÿ8s4Þ1PtÌz…û)ZBÝw&°ôéWígßø5HGµ}¿Q½£zGõF6º‹´AiƒÒµ=¦ÞÂÚ“e/}ï¿øºUßî;n<ï’e=a»–ÑEí¶ï÷ú‘ëG®A6€s(wB¸‡ªÚQµ£j‡Ê%•K*´%U;2#ë—0­²»ûR×mõšÅ"–QNšJ$úÓÝ»u“u“uS]A]A~éâR_Õ¿ªUuuu¤ýfýÈ‚çrW›T3Y»w÷ÒïmŞ䙓Κ÷Õ¤»÷©©SS§¦6îoÜ߸iáNŸÕ?«Vÿ'ûŽŸ.î¾Ôø}øÎ{‹»{é÷ÇÖ`mhb’§ÐQ1\º{_X±°baEsDsD3¶7çR%;Kv–ìl;ö²ë*¥GZç{èHv÷ÒïíÚÞ©1_ÂRe¸À}Ú“)7ynòÜÄÊÊŠ´p§"“"“"“¶3|dÅu•{ÌÞ™ ·¶oÊç2—U´ Ý_dƒ×¯ ^Ì|f>Û›s©ü ùò'´áÓaUjU¼4þgƒè­ÑMÖ †ú€vwœôàôàtä„›eÇfÇfÇþï}s=Þ㥙ð?DûË^ÖoûÞCýCýCý‘n–¾2}eúÊÿñ½oÍ‘¿úñÒL¸µ]f]¯ò?Îk?~"ürÂÍî†Ü ¹Òö8ÞÞiWªÃS+Ã­í½­Ó6ü5™¨QQ£¢F!'À €;¡ÜãÔ¦Ô¦Ô¦h:h:hÒ~õnnMªã½Gû¿Ú-n†6 {W›+Ó~Ç3áæ„›n6õoêßÔÉáÕƒ«W–t—t—t§»K¢Ûi¼â½¥®Û–ƒ÷®YWo5[J(ì ë' ' '‰–?[þlùÉá_/~½øõâP‘¡"Ci·1T \¥¶ç=ï-uýØÇ„½ËÜ-=Û¾ÿBÚo Üž¹=s{ƜƜÆÄVx\äóÏ>hûWå…jaË=yo©ëÇÖ_/ç™ö*£€9¢Åtý°öõÚ×k_3+™•ÌJ$‡{”<(yPò í §lœb¦—ËÛóá:jÉ «só=”›%õèúa«ÞV½­zÈ ·)šQ4£hFÛ¾¯sÖÆàoχkr©<ˆ)üV›Ä´èúa_ñ¾â}ÅÈ ·ÉWËWËWk;ÃÚAÛ"óy{>l~t!7r¼š­þÚ&òOæŸÄ‹8\'Û1Û1Û±í {ZÝ`ªIðö|ØW&ÓDs™ä65Ûá´s‰‹¢E/Š"3Ü&-'-'-§í ¿º2g¾I=oχ?ÿ¹ÀÐÜ^î‰à'åtý———€Ì@ÛPî„pÒ¢Ú¢Ú¢:åÍ”7SÞОâ 7éªÎ /ý²´kÆÍÓxJ×'îéîéîéÌçÌçÌçHѯÕ$Ú$Ú$j™`™`™@7^ÄoÇ6ë àí¥.Ö6,ÉßW-ˆ®O|$}$}$‘nP?»~výlÇ5Ó—fœÿ’ð Þ^êbmåÏο²®]ŸQAT…üpƒšw5ïjÞI¨K¨Kо+½¬_ôQ•›¼½Ôõ¯viþU•ñ¿¯6”¢=Õï@Ô¨QÈ7ø÷-î[\ÛK]ù_7ë÷ ùð@·Á6ƒ78êQ£ º> ++þ8\áKÆ—Œ/mg¸hyÌ6“èž3nN¼×Çšôtqò’¡ÝY$Ê6Ê6Êùá¤>H}j;Ãz_ö&È÷œ™°±g˜`FÓb¬=m†ú&ôMè‹üpƒâ”â”⺑â{ÂÿzHãÚW©Ö—zÎ|xÓ´'¶Úrj™ãTGÖÑõ £/£/æ Ï¢žE=£ÝÄ[v «€xùº…o,ì{Î|øûøÅ÷­¬_KE»7C¦m¦m&æ@ `àN(÷ [n¸u Ýc,阽½îß=­ôûc{%wü#ÍxÚ “$IFŠ~­5ukêÖÐþ:‘zö”„þðžVúý±=«¸Y^}"]ÿœ+=Wz®)úeš˜MÌ&WqWqWqº1Ò ßlw.¦§•~l4®òµ§ëŸè©ÑS£§"J¿Œ'Ó“é9sËÌ-3·ÐÑòÙ×£T7õ Ò/K;Ab­’ƒ®n5Üj¸Õ€(ý*-#ZF´Œ+=Vz¬4ݽ(˜í`2­'χ7Ó÷“§}½#åEÊ‹”ÈÒ¯Òø­ñ[ã7ÝÞº½u{ÓÑÛ1ñSL3{è|xo–·òʾ³d5èúçAãƒÆÈÒ¯R×R×R×"#,#,#L7Fú¹n$>ë™3aã/á§îm7¶4™ö›¼¼yó6"K¿JII ŸŸŸ›Òïþ>Cûþ‘ù‡æÂž9öOË}¤}F]{ÜáQ´¯(™™™ K¿JElElíÆû2u‚z}*¯9{[ZõÌ™pým~«63¤mFM¡ë¥wï4Þi KÀ `àN(÷wnݹuçí’ºÙ„Zæ=y©ëÇ6Œ²> ¶v#µÐû¡÷C‘¨ÿ^lzlzl:í’úÂÐ):;{ré÷ÇöÀ㵲ʴ_´?õzêõÔ ‰úïo9ßr¾…n\4.n?q£'—~le+f*yОIùrÍË5/× Qÿ½csÍ=6—v³î¦+ªüÕ“K¿ÿ´þù9:Ú.ÑâYt}UQQ‚“­O!ŸB>ÑKîùYÖF~˜ 3ýÜôlF»W«’>J×WŸ[>·|nA¢þ{Ol<±ñíë ý®]0‘ÅL¸e½5Ö%N¯',¤ß©¢" " "‰úï­ˆ\¹"’ö«ßã{Š®¿ÅLØxwØêŒá“Z¾¦}éúªF¹F¹F‰úOµ0[˜-óÍ4íÁ®)k46c>¼éà“[ÚFÒÙZc†7°ö’Ðy¡óBçë¯ÿ½þwÄê?À `ØEÚEÚÑþ=\Þa¢….æÃß/þl%§0I(O€ÍŽÒ*¥UJ«š~oú½ †A¸ À<®,µ,µ,•îѲÅÄUIvÖví(¹ ´¿n™Ö˜Ö˜"]ÿ±b?оŸxÔÍo›ª –ºþÕ6d¥ÛX»~vTšö §zézézi¤ë¿Qœ\œ\œL7JO݉­}±Ôõ¯Vô´IÖQ%£àqlÎù–*’*’*jRhRhR@ºþeeetž}/”)K]?¶þyÚÅŠF¦›„ÄX{L·Ÿn?Ý~-ö-ö-öH×ã‘Ñ#£GFt¾d÷Içf¿?¶§\2¬ÇéVˆ~âcí±qãÆ9033#]ÿ´¨´¨4Ú­Sçž,Õï‡9ðmÝé´~V'dù%Æ üÅÚcŽIŽIŽIÈÕ)É0É0ÉvœøÍû"0þWk$|¬„rƒOŒïk-»tìÒ±ÈÕ)º4º4º”vœüø@ÕHÌlý†Þ{¦y›®Ç|«}«}«‘«ÿÒ¹;çCûe¶ýì"“K˜ÿØ–J,8g¾‡®Ç‚‰`"˜@®àG(w–„« W®þs$\dPdPä×±_Ç~ÅÌç'¡ÌãæÚ̵™kÃúÐø‘2WD”[.»–Z×ã¡ÎfÙë°KªõÕ^¡#Ølš½¦jMÕš*¤«Ë•3Ë™å¶1¶1¶1lnRÆoÿƼ•j£ƒE.6Ë^ÛS«­ ¿²ãcóKWUU"Öå$˜L MMMÖQØ8æ·éeXÞ¢]örŒ"¿ÒýºuðòÁË/#b]­yYó²æe²dÈ>`‹•®¿‹by‹®õ}{/Xó2]†Ï(Q:£„Œuµ†ì†ì†l¾M|›ø6±ŽÂ¶£xE9Ì{éÚÏ{x˜/§ËðÕ”«)WS±®V;®v\í8ºQ]ºÎEEó^º¶db‚¸Ùï´{yßò¾åŒuµÊ•/*_о ©èz>Ðó^ºVwwÈÎèc´/¥¥!c]­,¨,¨,ˆnœæØ*¯€y/]»\åúlÕt½—-œ-œ-ŒŒuµc>Œù0†n{Oª×1¼—®½Ÿ8}²A4]ïððð!cÐ àNXƒrhvhv û‡bðÏA˜ge(d(d(Ðý)Í\ðÆ<ò¶Û7¢sÇ™ÒNôóüòüòü´®sgå•wVÒõÿ7U†–E¶ÚnŸŸ¾ºÛ˜v;è¢çEÏ‹ž#i]'&#&#&ƒ®ÿ¬»Q©XØj»ÕöÜú:ò7º>|?æý˜÷c´®¡¡¡Âæ„3Éa—‡›?qÑVÂÂVÛ­«þÅåUtþ’ò%å Jh]èðÙÃgŸeíùÑÆBC‚šœ\Y¯ÂŒ·íönÄäaºt®´«´«´CÒºN°\°\°kÏj«?Ênq½bý3Þ¶Û¸í{jµ˜tþþùûç´®ãsË疛㨄Ÿiëš6˜(ž^’µ 3Þ¶[e½¥µA‡è2Üp°á`ÃA$­ë¸Ív›í6›µçµ7Lvµs]NZÕÍëeG²ö¡èzÑõ¢ë›'6Olžˆ¤u™gœÉæã–å¯4çʬÇ\—“6¤Úd¿ÒX6‡yÔ8©q’)À` i€pÇýøíoÛP æ À<¨¹¦¹¦¹F´—h/Ñ^lNü½<á•–#Þœ·'/XÝScsÊ‹Ñ<£yFó˜/˜/˜/ºÎÕèÛèÛèK÷W|’î!R§‹Yœ·{ ¼(±ù’ÒÎÅÎÅÎyë u}ëúÖÑžÚ¥i²±&L‹Yœ·29S#]Ù¼Ž³`õ‚Õ V#o]¡êhÕÑ*Ú@—–DÏV¹ŒÅ,Î[“ ÔÅv³öäÊ+w®Ü‰¼u…rÍrÍrMº ?sqêo¼³\ÎÛùµ*j’3X{2ðBà…À È[Wøó!çC]†_OŽ»g:³\ŽÚú¬4k» ó¢.¬=¹/s_æ¾Lä­+ûûÓþN§}À*ѳ\ŽZ‘ÓºY–‚ÉŠ+4Ù”!ꪰ?Y—(]0º`4í&Æâ™ÚšK1ËåèxϧõÚ…£–ÈáWfíÉ+RW¤®H!o]ááˇ/¾¤ËpÕ)ç–¾˜år´OäX— ÖÚ$ŸêPG6_Q;&:&:"o€pǵt[‹»C8†bpÛPæA‰ýû'ögó~âIÑ¿C˜6nÒ6£ððæ¼mZë*hí;b,c(›“h3Ÿd>É|‚Ôu®ËG.¹|„µ·Ç^4š9ê9³.+ÍÆ ‹Yœ·õîiV™tÉ"‡ÈÁÉ%,L&L&L†Í;Î^Æ ÇoÆ2V»·ƒÖ>®Km¥Ëð‹«/®¾¸ŠÔu®½1{cö²Ù~ßðõì]¢QXÆj÷)h"÷¾jÒž^r¼äxÉq¤®s°9or½¬žýh|ëÐþí Ã¬2§Ý—¥tkéÖÒ­H]çòLñLñLaííË=+V`~ÛÞömvüÓ´{ y~óüæ‰Ôu®y¶ólçÙ²ö¶Â¾E'ü²1¿m÷vÐSvæ\£=Zâ»ówçïÎH]ç²Í±Í±eó"ÎLé]oFÀü¶½­‡^ìUÚoÙ§5Lk˜†ÔušJf%³R¦þLý™¬½wÚ¶^ûÌoÛÛf&NÓ4èC—áfãfãfcD¯'C¸s¡ÜYPæ-ƒ™ƒ™ƒE†Š ÊúàñۙƆ…x`ÿ\KtØ¡·˜ÍwÀnFnFnˆ^giii¦ý•àyñÕdã·XÀú¹ö†ÜþÚY{ÕþwûßíGö:Kƒpƒpƒ0]†õÎí©‹ÿ X?¹ý]žÇç`6[‡- ]º0Ùë,ßÿúþ×÷¿è2¼¶)uÆu,`ý\;ÅsëeY6¯2x‹z‹z‹"{¥â}ÅûŠ÷t®èµÈÛâ"f¶?×î¾ej¨ÄfK®-'·œÜrÙë,Ÿ¯¾þù:]†k)KËlÌl®Ý$µ¤N^žµWòä?Èìu–·^o½ÞzуRqrKÚÌl®•4·pVk¯ž <x&Ùë,…’…’…’töOË}¤}3ÛŸkµnÛóbs¶ýµ÷×Þ_{ìu–ǯ¿züеŸ%…‡gðK·»YÃÌöçÚñÓd(6»Z$Y$Y {= À]ÅàŽ@˜§<8õàÔƒS¬q·\*¥&| éµSÝämĤO¸ÁÏæû3‘"/DÀŽ#“‡Éì=<=rŒ­x,Zu¤mŽÊ¬·¦ÿþ̽ĽÄ 츄] »v±ö°„œuÅ´X´êHk<öÔÑô·´ßŸ…—†—†#wqëÅ­Ù)-N¸ÚŠ¢UGÚó…kÑžËþíî·»ßî"wÜã¸ÇqÖÞ¡`¼]ñæ´i+;/µ4¥ýþ,í{Ú÷4$°ãB¬C¬C¬Y{ø¨•Ÿ»êÌi;Ò~y˜”n^AûýÙ† 7ÀŽ[ÿ÷ú¿×ÿÍÚÃÊÊKó‚–bNÛ‘Vßhß³´Åõæ½Í{›÷"çN¹SîkÏ]~䥂*æ´iW:Ý>§–ËÚ·#›G6lf:0˜H`ÇÍtŸé>ÓµŸN“tßaNÛ‘ö©ñ¬ F'YûVm›Ú6µmÌff3³ ì™Pþo Ü^(ó§r§r§rÖˆßó™æg ‚‡tÇÛD»a:Ø|Å¿–-Þïc×]7vk瞸øÌÈ‹Vo/ûîX©Éæü³m¶=Úö ì8ÍRÍRÍRÖÖ=ò(º‹Voý—„lbs6íáu‡×^‡vÈmæmæmÑ1¢cDǰöðêZâ›ÆŸX´êxkûÍwš´kŸW:¯t^ 1숗—º_ù¾D,Ô2ÿ€ÙlÇÛM×õÏʳùv'.5.5.9ìˆÆïß¿Óe¸raniˆÙlÇÛå‡É¬`³,nÎ0g˜#‡QçRçRGû÷°ÑÁ Sûa6ÛñV4ÃdÍ6{]d…g…gá…È©º]u»ê6í·¿Ê9©Ú+0›íx«¸Ø4MH‰µ‡Ÿ?-~ZŒvDYEYEí«NÍ\X§c6ÛñV[Lä¥ ›¹Ä«>¯ú¼BÁ`€Q F:[õ_ÕUÓnØØ¢ëšlý 玷 º¨Y•Ѿ3~¨áPÃ!¤ñç”›–›–³ù¦DLFøå°uÌsY[lÔÿûå¡Â‰×Œ¼žî¾àUóš*¶l¦ýe`[ó¶æmHãÏù0ùÃä“Y{u„˜ìd% UÕŽ;b—œF—aæTæTæT¤ñç¼2{eöÊŒµWg˜^Ý—–¼z'ŽS›ÿã½pÃU­“OM×`óM‰¬‹¬‹¬ ³…ÙÂlANÞ€¼yXûvv”Òa‰y˜ÇvVûæõÜ}¦±lÎcøÆð rØY±Y±Ylúv9Óq¦Ìfnža6NȱÖÙ¥åÕ 4]‹TJtqX z(%s]œÉ_ÍmWû|ÎÕYÆ©lF1±7±7A;‚¡ÃÐaè°ö­Ì…©¢.¹˜ÇvV«-·¥þ|k?/Ú°hâ ÈaGÄŠ;wˆµo'Zû~”^ûkç?^Oë,·û€—_8®Ü‹Í+§1«cVÇ ‡ñ$âIÄÖ¾ ó´öV[ÍsˉNÉÿÿ•7nŸßk·J'ˆMa©8¨8/1 Œ0ŠÁ(CgK’L’LbsBÉÁ5æs”°PÕ¹­_žéh6Û.=ˆ|ù iü9×z_ë}­7k¯žuÞ<]ÝñW-±€y£ ìn:=\Ú“õ¾òßæ¿Í‹4þœðøðøp6[Ä«ò{åî–ÅBUç¶"Y†³Æ°Ùº¸¦¸¦¸iü9ûÌ÷™ï3gsÊrSøcÅë(wn;ú€A¡ ko,úXô±iü9þçüÏùŸcíÕÌMÓDô¿cÛ¹­Ê"a§áŸY{ûëɯ'¿â<àŸ´üåò—Ë_²öjNíÅ™FS¸yn¹ÞÚùÖèÍm/¯pÑ5ïÉò¶QÔ¾|è6§,kÖhÖh"?Ç©Ì©Ì‰Í ÓºûBG_Ä ¶ÓFyîqÏ„îÏZ}x}x=¾þIcrÇäŽa³Añê÷D®ÆoÜSæ¶™m{[ÿ 9 Ú>tn*i*i*AŽÆmÛl¾bÿrm¡žù'€;«­ ]2Æjí‡Xx§`€Q F:×ãÆ ŒYƒûFu®é,Qun›»s–ÑjÖÞ^_µ¾j}Òøs&Ž›8n"›í?Þò1·F¸sÛ{œÞkÀÏz_»ªwUïªFŽžœžœž›/¢ŒÈ'‡b¡ªs[õ>ÙGؼÄp2õdêIl@ú“$ò%ò%òY{uÃÙìéZ‡PîÜvŽÐ¡`ù»¬½}Ùí²Ûe7¤±Ý¶2·2·ÒîÑÒßEݪ 3ØÎmφé£Îf£×ĢĢD¼ÄÐnÍEÍEÍE´{´Èeî³>ÃÍsK¹C’ë´^­ÏÊ…[ä^=[zå„ñžêx²Æ2‘;çÏw­MTf³T—&“&“&ƒL¶WãŸ6þI—a“a§Gf‰`Û¹­¬×ôcKÙì÷Øä±Éc|ËÞnµÔþQûk ZŠÎ㻸1ÿ‘Ž6 ÀÛšê-\ –Áz_…ò…ò…òÈd{}Ëù–ó-‡Í+8n¢7«¹yVYj»àºùÑÿ›EèN’{Õ]æÃóÍ”¿Hª°öùÛwoß½}‡L¢Œ0ŠÁ(Cg,”5—5ÓnJÜòÝ­¯M,QunÛ8Íå²µko‹;,–YÊ,e–"™íX,jjbó‹Ö—áL¾¡Ìò¬»6(wn[»&UÄj&ë})¼Sx§€Ijû øjùjùXûs¸¬”Ùèl,NuÉFЧ.!”YûÜìÙ;3d¸ý‹Ͼ=ûöŒµ?åWÍ 꾋JÜ\öH_¤Éæïi±Ób§Å"“íUêQêQêÁÚŸ³®)ú‰ÇbîÚmÉ“yãÍØì?ä6Ñm¢ÛDd²½Þ>|ûðíCÖþ\öif‚LîŸ[þxÍ­¥_î¿æzט¨³ö¹ßu¿ë~בÉözÞü¼ù9›ƒfd\§ÌX‚ÍŸ»f#hŸ­Í‘²¬}ò)äSÈ'd²½Õ=ª{TÇfóçÞ¾^Ò\±Ù2ï€]B"Ó•õYïëDé‰ÒXUk·T"•H%Ølþhí§æÃýsËîòíïííivù:$kŸGÝŽºu™D`ƒQ†Nð1ìcØÇ06‹–K¤ßaqªëÚI1r EÙLÁ+wWî®Üdr®Ø¯Ø¯Øµ'7ú-Y-ßç×. ñj¸µÕ÷U[+´”õîj/Ö^¬½ˆdr._<_<_œµ'Gž³`U§º®vSø°h9kÏ7îjÜÕ¸ ÉäÜýÝ÷wßßÍÚ“So›)›p—´sóè(оÀgØbØbˆdrŽ‘ÆHc°9üÊ·ñ…šI˜µvEÛbáJY¿¡Ýì7–ËÄ« í———ÎÚ“·çÔIé^àÖù3÷_scXÆ\k6û‰ ‹ ‹ #“í±/b_Ä>ÖþÔ\´É- ›?wIktñDDê\Ö>×y¤óHç2Ù^‡dÉ’a³¶ö2v° à®h׫ÝÏÖf½/[;[;[;d²½¶l ØÀÚŸ/VÍV21Áܵ+Ú/›Ž6ÅÚçóÍ?4ÿ2‰0 À(£ €Ò£ô(6_£ÆJÛ.ÕºÆ=Å>ó/˜ÕlÛc´WqÈŒý 1âzÅ"ýF”8ÌW4”Rp*þ»!uM¸nÏpÓ9JT¹èBˆ›ó'ä¬ Uo°ö|®|®|.6«i‡ççgÖžL{T^÷w€ývÞÔpùì1b%ÆJSâüwF¨Ji>Vê/(½A{ñšÑ‰å¢wZqó²×ίߕ³ÞÝËÒ—¥/ñ¾m;DN‹œ9µ'µŽŸÙÈug†½ßpÏA銻Ŗ…Â´Žšª ùItàÐÍü§ª‡‡JŸTØ'ÅoÛkÎÝ!Ñ»¹yÙKzŸ}Ì"7ÖžïýÞû½7’ɹ£<:µ'—{]ÏVå¢/€äŸnЦ¦Û1Fn‰R¦…–ÐYÁâU|‡]>u¨…x”ò@£æ¯]úŠG­Ÿb®áÃÕàÀü|ƒ^³¬D°ö|YF–‘H&ç¶ïؾcûÖž|å1g¬Égn›C¦Üœ2]ïõ—*ï$S[çÀÃÏómºKEIØfxÑô3 3Ä»2i¹ö‡×ëgÜ<žª ¿LlkÏWåUåUå!™œ[ó`̓5X{òCÂÍ{f™Ü_ôí6§ÿ²´¦’Z%#cY¯¹îZݵºkH&çå-Ê[”ÇÚ“å‡UïNá¶9¤Ê†µ;ïŽÚ£»ÊâŰkÂ~¢™Cc4‡GØ ·NÅTnÈÌ={Œ–ÿ’²\WeçÜkÿÚΚËî…?_LLj=›STíšìšPBk»svçìα9 eÄÃ…Z®ÜYöį֜Û:û-–/èÕ:+i=‹?N³nÒQ.Ûã­òšKËÀ¾ù™:šC†j Ãæ…Èë-×[°C;èè°Y®·ä“ÉÍóÉîxð?/D–»õ±¡=þ€ùŠùŠù ÉD=ƒb0 ÀÐ!¡ÇB…có†—Òl>nxïÆé™ˆ* Lf6¤Þ¦Î}oÊ¥ß1ß¿5}²A4›Óûö^Þ{y/’ɹ-É[’·$³ödIEB˜™ÔϼJ…Í+P/ä_È¿À ‘í U¡U¡UÁfO‹›+­í¸s&)!q[@¡µýñš%_‹fòÛÿø¿rsx븥 !l~©-©-©E29'òVä­È[Öž4. ?}ÏŸ+¾—Í:9$õƒHŽáʱ}8ÿ{Xãé†K'ÝÙœjÌ5óa)Û±sY¯ð˶/Û¾lC2;²pÿÏìqQþi%î,:-Û‹Ÿ£u6gϳ³”Ô¸³ ¬cæpsT›Ýõ + + ‘ÌŽdXL^àÚ°n°ùs÷-·¶be­E‚Ùü&ò­ö[í7$`ô ŠÁ(C‡,9µäÔ’Sl¦J1Ϋ-­~í#°u¹J~PÀ?ï³ËFú(ìûd殼$õâ”h}Áܳ&mbTOþª÷§½Á(ù­ßsÿƒÿcôüÛæ¿±ùõ`oàÞ@€ÛÁÁÃÁÃ͹}µR­<¸³üOiÄÚùÖèÍ·í Ô!bÞïŽÖ:½BÐq©LðÐÞCîù×W-"÷¬ŸqÛ‚Wñº8qS6§F8}àôÓH&猚šØœyfìöGÆrîYúׂW&߬a¿É¬˜²lÉWõ…>B‡ƒ4KFœÎ•7šç¶fqë—?Þ‹îì×s[XÇi;ÅfÁë¬÷Yï³ø¸d'ÉN’ÄÚ“7óÖhWýâ…¡Áùƒt†(_³LúWiDµlLôÈkÓT¶'Èt‘ˆ¨<|êímå²ÕÊFMB™´Kx\¶àåVx9[¹…Í>.ýbûÅöC2;¾hËLv›l£Ç óÆ-I†›þ™í´ÎuýÿÔ'ågß¶³{ªC<”˜žoø[DÔ˜4õ—¯$›„w²û†’çÃŒ“oê¾g³‹c²c²#’Ù‘ ‹èŽtöWw9X¤;nÝÚÆiíIÐúÂÚÿY˳–g-G2;’áÉþ­äÎ=óFq‹¢É‡þµÝw/ [ûg*âËsvXkElž.MyɲÛ¦rR$æžûRŠv·Ý²‚õ ó,ó,ó,‘ÌŽdX1ÅÌCÈ–{ætitøºå¾¬ãÊIKÕÖ©¦>ÑHm!Ï~Ä7‰û·Œ¶Û±±H†ÍIÀ¯ ^¼*@2;’Ṅò\‰|€»|žof8UÁžµÿ?*Tþ¨Œd¢ŒžA1`èÃfÃfC6…‡¦XWëm¿xI¨zòW½¶ÂZ9„²¡À×1Öx&ÝCõ.¤žŒXÆ¿;ðß›— ²2f½f§§'LRÛAFEFEF…͆?ßîÕÙüÅm`¾·|ÖCâî¨ÒUùqÁëÇÿû²ùkMGîßþî[#IJëu®Ø¼bóŠÍHfÇ &†§d1¸aaH-í¢Ðÿû…äøÐ4>kõd_“#ÌÖÿ•u럿·7óŸ¨ææ-ï ´¾»=MÙ², ,  ÉìH†…Äõ‡ÉrÃ’Ó§ƒkåÿ5s˜0i­¯TvÛ a鮇Å븿ìœüD=œÍ‹8à ?0ÉìH† ìIJ„NpÃŒ±¸÷œM¦ó½*2$n¤û°R>—ü`Ǚƒtÿ|ëõ¯ Ó1—3âþ2ðóþN6Æl¶Ï=Ór¦åL ’Ù‘ Û½·øMt= À]Ýf_h6tbíÿ˜s1çbÎ!™ɰ¸•¥ää2n˜1j\Ø xâÊצdï&øéÇy/+¹ãŽ6+R¹¿¬‘°ảOl^ÄéŸÜ?¹?’Ù‘ ›;,ù[ÜK À߇ž2Ç=ñêd•±t³ÜîòBä¼ûÇMØl¾¥’¥’¥‚dv$ÃÁÊÆ Š(wu{QlÜ`6/â É’7ÉD=ƒbð¯-£Üí4i<’M’Éøõ_ÃzF>}D2;ò€¹RPÏ–„X À _Ú?“L夠ûãO_b/bÂm ^õ/Òš­ØlÔæ°Òa¥ÃJ$³#¾Gz§‚÷, ‰~6ye»üŸm ›ß²ádéê_*÷©+PÜV6R=.C-gíÿ%‰K—$"™ɰ “C‚•ܰ$¤–3Î|dÓ?W%h x‡“Ÿò·Êù¢½VÔC^’ÿ97/xùž½7Ró›ÝîúÜõ¹‹dv$ó*“pá†ãæû†ò ÿ,Âîœbü]ñ'3ÛÆ .­uZOnýç—Ùh,‘~Ïu;âxÎ?kVÅÚÿ;ýwúïôG2;’aOw§U2OQîòqÄbŸ›ò±öÿ‰^'zÀjI‡2,+=í‚Û#®øö·—…­ý³¾­©¯`ÍÇÉLØøuø†{#&ɾSÞÌÍ`«íë£æ°^a”I”I” ’Ù‘ Oúº![æî,ë}˜á$r¥íù­ïë{[5£ºÁŽ8.Û+³ÙM$Q?Q?QÉìH†ÏÞó·ú2€»ºM>7y¥nkÿ§V¦V¦V"™(£gP þµÅà^ÜóG:‹Pù°;|¸ó¡Øöƒ¼YÉu¶õÙýÏÍR”OvƒïtÝDm„·® >_A|Äaî,3ª­Óû““Ÿ½¹á@Žèÿm~þÿŽÆ= ^Í*™‡­Ï"o]aä]õÛ†ë¹gah8%£ª8ñŸ?_?|ûû?Î V8\–òÖÖDèXÊsÃŒQ;N”_p_ÇïHš‘ʇÛfÅßn; YDÞºÂöÓË—(NB¸«ÛR¡Û^æx‰¡K(lXää·žëfÂÃwëŶcW5¿5¦ X Àq{åã­·®0³lÙhGî,»å\f(7ñFØÓí¦©š òÖnü1ÉH;à®n³ÏÎp1œ…¼'®4\i¸‚0t·}üPbz¾áoöäÞŠnm=ÿŒîÊ5‹,”^ðE%Dr»²¾î)¸ù àz·´sV™œülí¶TE«Ùì’Œ/€y÷|¬—½7 >þÇk3Ê:9$õ€ñp—á†/€W`LWOüñªZKœÿ–m‰ñVyÍÍ ^ø¸ëpÏÀ‚Û‡émèøýøïÁÀ=¾ÆÀÝ7|ܺ‡MGfÂÚ»‚ "W³Þ¾î ¸ù `¯Þ‰ãÔæã `h¾ÆÀÀmzÐÀ­{ ã?ÿψر#bÙ™¸æ à‡ùІR­W¥6H¸aÄøÖ³Ðâ/M¼­í÷RuöJ×ÖsÎèüÜùø§;X=V=V=Éäü?lŠg\|0ç_WÆù›Z´þÔ°œa¿ ùÌm`º3€ÍŸ™?3†dv$ÃÜs°ÑÉS¼6}Çýº7>óF˜î àɃ'ž<ÉìH†¹á `ÿ„Üxí ±ÒñöYµÎÿ óŸPháæ/º3€ç9Ìs˜ç€dv$ÃÜspëì÷Ÿe¸|Û«Zù­sÝŸk¹mVLwð²sËÎ-;‡dv$Ã8ø×žìó»Ïï>¿#™É07œ¬ÿî@ù-ñ¯ª½_«k­Ûv(“› ÀtgoY¹eå–•HfG2ÌÍgóR˜î àÝå»Ëw—#™É0Îþµgñ9âsÄÉìÉ÷=Ü÷p_ô ïýç†ï ß¾n¿¹ýæöç¥ßÖ¾ Űٰٰ™5RM±®*ÖÛ~í#Ðv¬ì‘¨ÖëYøRådj‹ˆk‚õ³¶êÏg;-6Nåþð÷æ%ƒ¬ŒY¯Ó©À©À©ÉäœŒŠŒŠ › Z¾Ý«³ù«ûž|ÛîÐ@âÿ^}ü¿Å_îYðúƱìÇÚó+6¯Ø¼b3’Ùñ=-L OÉbpÃÂÐW¥ùûF£S²-' ¾pù•üÒyk%äÓˆ­;f2äôà¬Áܳàe uðÝíy¬=PPP†dv$ÃBâúÃd¹m©kî±£ &œÿ줕ë¿Kró‚—wròõpÖþ?0üÀðÑ̎dØÀN,Kè7ÌŠFÝzU‰v’:S»×’VÛíóþN6Æl^E=Ór¦åL ’Ù‘ Û½·øMt= À]Ýf_h6tbíÿ˜s1çbÎ!™ɰ¸•¥ää2nÛºµ Ëù¿AÁaažï#n.k$lsâë&÷OîŸÜÉìH†Í–ü-î‡pW·óî7U8ÇzY*Y*Y*HfG2¬l¬ èpW·ÅÆ Öˆ`íÿ¼!yCò† ™=ùÏ`k±=ÃZ ·A‘A‘A‘œ}[ÿùÿ¾è‹0OYrjÉ©%l6K©Œq^miõk£&ðŸâËm½ž{s¦yŒæä§nÛÙ=ý¿²7?þ?FÏ¿mÎæ-À½{÷"™œsðpðpð`íÉÚG©ÎVÜV^øÒþ™d*'?;cÿØ>âz­?5Ë{Üzñn+¯‹7•eSx8}àôÓH&çŒššØ¼ˆcìöGÆrn+Kdí=S‡“Ÿ’|?aùìÓÿl=z@¡Dã·}¬ã´ŠJdó¦³÷Yï³ÞH&çd'ÉN’Ħ”~3ov÷,u)ì4'XÂÑ×ÃV9_´×Š¥*®°åê/ /g+·°Ù®­_l¿Ø~HfG~Ùþç™›üëwÄñY©;IîUëõ¸ª÷’þ›“Ÿªw[Rc•i4N|ûÈA ®BÅñ4±Wç¶ù0cÁ䛺l¾ÚIvLvLvD2;’aÝ‘NÃþB¸«Û8­= Z_Ø–g-ÏZŽdv$Ã#þ’ý[ÉÛfÂ"9†+Çöá¨xü:|Ã=Á?åUÔ¸z h¥hwÛ-+Ø,ó,ó,‘ÌŽdX1ÅÌCÈà®nívl,’Ñg½ÎW¯ ^áãŠex.¡ªšQbñ³ˆ¡"Cân„LZ®ý¡íŸò›ª÷Ûè½¾Ðúïá¶ùð¡~æU*ÓØü&"ÿBþ…<’É9­ ­ ­ Öžl¼™±ÒÚà®k·Ž[š¡Âæ7‘Ú’Ú’Z$“s"oEÞŠ°9\Ƹ,üô=ÿ_W> ^íàœàœàÌæÛ‘±Gåu/p[X6Bâ¶€Bëÿ½A{ñšÑ‰If‡2uêâ2öÊkZ!è¸Tæ_Ó¾ñKŒãEL¸íÛßÖvgƒ×ïJƒY{þeéËÒ—¥H&ç"§EN‹d³ü­%püÌFnXbÝþ®•ÌÉ)-.—[·ÂÓZøð\…k‹Öã7Qÿgò:Ìaät{î<9XzŸ}Ì"7ÖûzïýÞû=¾n‡£<:µ'—{]ÏV úÅ Cƒó±Y¹¢Z6&zäµi§ƒ7É™¹HDT>}ØŽ1rKT$­vÞúψzÈKò?çæ/ƒ^³¬D°Þ]YF–‘H&ç¶ïؾcû6ߎxÌkò™ælNZ¥>KÚ"rãØ€Öânü¥‰·µýfìWˆÿ×Ü~~åIIîœOU_&¶ŠõîªòªòªòLέy°æÁš¬=ù!áæ=³L€»®5•Ô*Éfóºku×ê®!™œ[”·(oQ›"Ë«Þò‹çCNÎ,ú›ÑcÿÚ¤:Ñ*tJ–ʆµ;ïjål®ŒØ¬\¹Ü<8Xtž±üø¾G±AnŠé??p|hŸ5·€ùóÅĤֳ9̮ɮÉÉäœÝ9»svl6"Þ0âáB-W€»¤õÍÏÔÑ’0TcÈ6‡‚]o¹ÞrÉ䜞ž›õáúqK>Y‘(wEÛRîÖÇæOÚuìWÌWÌWH& Àè}Q†ùö1ìck—Yj,‘~÷k„_Œ4ÏnݶŽó?<Ï–: 0Þ#õdÄ2þm?þ÷fÈJ‰¬æžÇü¤¹…¢l&Ó•»+wWîF29WìWìWìÇÚ“ý–¬–ïÃmà”›'Ýõ^t”çsi;ɪ"£Fð¿M7}Ç`}_µµBKÙ¼¥x±öbíE$“sùâùâùâ¬=9úðœ«Ò¸gyèÇÍœ9ùÛ˜ï¨à ‘óÔüÖ˜(à¶¥®ÖvØMáâål¾—ÚÕ¸«q’ɹû»ï﾿›µ'§.Þ6S6Ÿ–‡|ÒiòÉèØÉIz¥²5‚‡G´†¹tÁknþºëo1l1l1D29ÇHc¤1ÒX{òÊ·ñ…šIÜ0olÝÒy®¼²ŒD<ç³b;a¹¢“êÖ-9nu€Û–ÃZ,\)ë7´ ^±ÌXf,’ɹ¸ô¸ô¸tÖž¼=÷ N À]Ñ6†e̵ÇæäZaqaqad²½"öEì‹ØÇÚŸš‹6¹…]äž™°Äé1+føpò7ðÈ}êJ”¦ÆÆìSÿ|Ùüã+’ÜpGFOD¤Îe½rG:t!“íuHæÌ!6kk/c«0QîŠv½Úýl-aÖ+´µ³µ³µC&ÛkkÀÖ€­löeY5[ÉÄà.Y÷Þ¼p´ù+Ö>Ÿhþ¡ù‡I€QFÑ`èÍeÍeÍe´ ˆßÝúÚôç†/>¬–Ï4Q”0é×z6pkkñJ²IxçáÝ[U®4+¹Î¶>û¯Óþ\…Їÿ.ìÈoÅwÒÝY=Nš+¶.iœærÙšÍ[uÃb‡Å‹e–2K™øz²………XûSðËp&ßPfyÖ] î)ÿ¸È5¿Ñn¾äLiJÜ‚ÿÎðóºCwi‘Ji‚N›ï»ŸTЩJ!õ-¹³ô[»&UÄj&kŸ+¼Sx§ð™l¯Z¾Z¾Z>Öþ.+e6:›ÛЦÿŒuÀ"W¿‘‹ÔŽôãû.¤!œÏ·tÄz¡3B~ÊÉ:3¥¼&ÊÌÍÓw ü–8·]kkxúèB™µÏÍÞ™½3C†ÛíÛ³oϾ=cíOù•Fóƒ¸íä3‡¿6È’0º)xxx–ð#¾Iü#Gˆ u“š­Î¾i¼ëêOR›7®{tOë%7/xµ–´Y¯pZì´Øi(›µ[©G©G©kκ¦è'ËmKE­_úÎòVt¹.(Æ_-ϧ0t†sÔ”Óbä[IJZÿ™çÒÜv%Oæ7“dóeóD·‰n‘Éözûðí÷Ù>ÍLépW´/ô®=0Qgís¿ë~×ýðÍY»=o~Þü¼™Í~3®Sf,Éå¶™°ÚÅ5ïeakÿl¸‹ôùÜ¡1šÃ£[Oü•7šç¶f±ñôSi"ÿúýTGž¡®Î=`mŸ­Í‘²¬}ò)äSÈ'd²½Õ=ª{TÇÚŸ{ûzIÏG¸+Z—Ète6§ÿž(=Qz«jí–J¤©k†Zû©ù Üííivù:$kŸGÝŽºu™D`}Q†N³ÀxñcÖ€¾Qkgºƒ{6¾kïÿÊþܳ ŒV³9+±j}Õú*¤ñçL7qÜD6ïà*¼åcnÍ KZÿï¹§½÷Çé½ü¬½½«zWõ®j¤ñçèÉéÉéɱöª¡ñùäPî,£¶½€Å_ý¶¶ê'|²x²ööÉÔ“©'S‘ÆŸ#‘/‘/‘Ïf㻳ÙÓµqÛæÉt X¬Ë[ܹùó¡CÁòwY{û²Ûe·ËnHc»menen¥û…­¡¿‹ºU·Í'Û^äâþů³ácú¨³Ù %±(±(±‘l¯æ¢æ¢æ"º 7Ëeî³>Ãýàî²ísk{p×ÚDe6Kui2i2i2Èd{5þÙøg#í6˜&ÃNÌé.3áÿûÖM¡[ÿ›Q:v拸g†,ë5ýØÒ¿X{û±Éc“Ç&Èd{ÕþQûGíl^L·Çw?pcþ#mn›O¶wÎÌm³bS½… Ä2Xû¼P¾P¾«µÛ·œo9ßrXûS×Mô†`u÷:U·»´óÍ”¿Hª°öùÛwo߽ŋé(£Œ¢/ ÀÐy’$“$“ؼƒpùå<’;·õ«Ó3íÅÚÛ"D>ˆDεÞ×z_ëÍÚ«g7OWwì^ËIÜߺ›N—fS<Ë›ÿ6ÿ-ÒøsÂãÃãÃÙlì©Êï•»[–;˨ݷÉ2œ5æ-ko××× ?gŸù>ó}欽º°)ü±âõî¸àÅÍíè…‚F¬½ý±ècÑGÏ~’ÿ9ÿsþlNïËÜ4MDÿ;f°Ûª,vþ™µ·¿žüzòëI¤ñç,¹üår6»äÔ^œi43ØNk÷dyÛ( j_>ôko×hÖhÖh"?ǩ̩̉ÍþdºûBGÿ² eãf,]6\P\«¹dô«¹ÖÞ_8ÿY±Çæ·ìÿùXü£µÜÔmÜP6~îqÏ„nɲ>¼>¼>iü9crÇäŽÉeíÕÕï‰\ß0ƒí¬ÖBNƒ6ífìM%M%M%HãÏѸ­q[ã6k¯~¹¶PÏüf°ÕÖ†.c5v?Nf ³aD`}Q†ÎSýWõ_ÕÑ>xt]“­_áñÜñ¶áO5+Ú ·5jÀ?©Ü´Ü´Ü”µWÅd„_[Ç<—µÅFËUok^SÅ–Í´ß—lkÞÖ¼ iü9&˜üa2k¯Ž“¬D¡dÛi›?;b—œF{êäTæTæT¤ñç¼2{eöÊŒµWg˜^…ªÎj×ɧ¦kP¬ý,ë"ë"ëÂÄjAä È7€µogG)–˜‡ylgµo^ÏÝgËfÇ‹7†o ß ‡‘››Å¦o—3gÊlÆ<¶³Úçs®Î2Neíg{{{|7Ù! †ƒÍ–³2¦Šºü² •ìÝD?µ^‰€½ø)wC…ÃeÉcÚþ)Ç;ô¯œRÇW:ìŸ;TÄ—çì°æŠÍŸå¶ÔŸÏcíçEmX´9숸Cq‡â±ÙÚÚ÷£ôZÌc;«]R|á¸r/6…ö˜Õ1«cÃŽˆxñ$â › =­½ÕVcÛYí­±v«t‚ØŠƒŠƒŠ‘C€QFÑ`èNåNåNå¬Q¾ç3ÍÏ@玷‰6vÃt&°öðZþµükù‘ÀŽ»n캱ëX{8÷ÄÅgF>X®êx{ÙwÇJM66n{´íѶGH`Çi–j–j–²ùîálÈ£èJ”o;Þ*ú/ Ùt”µ‡¯;¼îð:$°Cn3o3o‹Ž#:†ÍrL-ñMãO,Wu¼µýæ;MÚ‰µ‡Ï+W:¯„vD‹K‹K‹ ݯv_"j™Àl¶ãí¦ëúgåÙÛ——‡Mø;¤ñ{ã÷Æït®ÜF˜[b6ÛñvùÇa2+X{˜aÎ0g˜#‡QçRçRGû÷°ÑÁ Sûý÷³GÏÐsIÓø DÔÅÿµ8Ûº½³^˾a ^FfÇgQ±Z›çŸK“?:×Ú¢a#?‰lý'[Ï 6Ê:9$õ7̇E3LÖLxÏÚÃYáYáYøö·CªnWÝ®ºM—aåœTí˜Ív¼U\lš&¤ÄÚÃO‹Ÿ?Eñ¬CÊ*Ê*Ê*h_úàzÄ:³ÙŽ·Úb"/ÙÌ%^õyÕç ~(£Œ¢/ ÀÐ5œzpêÁ)ÖX[.•R¾„Çs‡Ú©nò6bÒ§FÜàg³Åë ‘"/DÀŽ#“‡Éì=<=rŒ­x,Wu¤mŽÊ¬·N¦{ø•¸—¸—¸#—°+aWÂ.Ö–³®˜¶åÛmv7öÔÑô·t. / /Å‚W'¸¸õâÖ‹lÎRµ8áj+þ ËUi7ήõ”.Ãßî~»ûí.ØqÇ=Ž{÷`íá ÆÛ/`NÛ‘¶ò°óRKSº Oûžö= ì¸ëëkÖ>jåç®:sÚŽ´_&¥›Ó.‹7Üh¸Ñp ì¸õ¯ÿ{ý߬=¬¬¼4/hé¯=ñwèfþÓÕœ/»&ì'š©•³¹2b37lþ¬o´ïÙ /ÚÒÎÞæ½Í{‘ÀŽs§Ü)w6ûµÌ]~䥂*æ´iW:Ý>§Æf“í‘Í#›G63˜L$°ãfºÏtŸéÎæU'§É ºï0§íHûÔxÖ£“¬}«¶Mm›Ú6f3³™ÙŒöL(ÿ7Pôm/€yË`æ`æ`‘¡"CE†²ýñۙƆ…xTÿ\KtØ¡·˜Í[ÌnFnFnˆ^giii¡ûËúyñÕdã·Xºú¹ö†ÜþÚÙlv÷»ýïö¿#{¥A¸A¸A˜.ÃzçöÔÅÿRîϵÊyŸƒG²9¡6taèÂPd¯³|ÿëû_ßi•XÛ”ºNçÿd;ÅsëeY6ÅuoQoQoQd¯³T¼¯x_ñž.ýy[\ÄÌöçÚÝ·L •®²öê–“[NnÁ¹¿æóõÏ×?_§Ëp ei™™íϵ›¤–ÔÉ˳öêAþƒü±ŸS§yëõÖë-m‘Ò¨âä–´ ¿¶ ,‘=¶÷LÖo‚ÿùÞWOÊG^Púíäç[úï”ßç†Òok+i:ná¬&Ök>x&ðL ²×Y % % %i¿NË}¤}3ÛŸkµnÛób³Èµ÷×Þ_{ìu–ǯ¿züеŸ%…‡gðK·»YÃÌöçÚñÓd(Ö¾M²H²H²@öz2€»о0JìŸØ?±?kèµOŠþ-´q“¶…6çmÓZWAkßcùCٜȕù$óI椮s]>rùÈå#¬½=ö¢ÑÌQÏ™uYi6VXÀâ¼­wO‹°Ê¤{æ9DÔu®0™0™0ÖÞõ2^8~3J¹ím´ëR[é2üâê‹«/®"ukoÌÞ˜½1lÎø|={—h–®ÚÛú‰ÜûªI¿Ãñ’ã%Ç‘ºÎ```ÈÚÛëeõìG¯Çü¶½íç°«ÌWÒîÁ°µtkéV¤®sy¦x¦x¦°ööÎ垇+0¿moû6;þŽéGÚ=<¿y~óDê:×<Ûy¶ólY{[aߢ~Ù¿vnùcA׈ïX:Y£gµû^œ¿aüѳÄzºò×¶ºSvæ\»L»ƒówçïÎH]ç²Í±Í±Íaíí™Ò»ÞŒùm{[½Ø+ª´¯û7Lk˜Ö0 ©ë4•ÌJf¥þLý™ú3ÙÛqÚ¶^ûÌoÛÛf&NÓ4èC»ƒq³q³1¢×“¡Ü¹Pôí,(ó æšæšæÑ^¢½D{±þ1ˆ¾<á•–#Ûœ·'/XÝSÄæÍåyFóŒæ1_0_0_ u«Ñ·Ñ·Ñ—î¯ò$ÝC¤N –±8o÷xPúÊÚ“v.v.v.È[W¨ë[×·®/]†5M6Ö„  ¬Ëy+“35Ò5ˆµ'¬^°zÁjä­+T­:Zu”.ÃKK¢g«\Æ2ç­ÉŽêb»Y{råΕ;WîDÞºB¹f¹f¹&]†Ÿ¹8õ7ÞY.çíüZ5ɬ=x!ðBàä­+|Èùó!‡.ï'ÇÝ3Y.Gm}Všµ]ù Q6gÓîËÜ—¹/yë žžŴ¿ÓéG°J´Æ,—£Vä´n–¥`²â ÍÙ¬=VVV…¼u…‚Ñ£ FÓeØW|I—áªSÎ,}1Ëå¤mërÁZ[€äSêÈÚ“‰Ž‰Ž‰ŽÈ Üq(úv€yV†B†B†í{ú™ Þ˜ÇãÞvûFtî8Ó º>ÌóËóËóCҺΕwVÞ¡ýÖä›*CË¢ KZm·ÏO_ÝmL{ÞdÑó¢çEÏ‘´®“““A»ýõq7*KZm·Úž[_GþFׇïǼó~ ’Öu"T"T"TX{žOrØå!ĦÅO\´•°¤Õv몱Fy]†¿¤|Iù’‚¤uÃgŸ=|–µçG jrrd½ 3Þ¶Û»“‡éÒe¸Ò®Ò®ÒIë:ÁrÁrÁrlöcÐV"”Ýâz/Äú3f¼m·qÛ÷Ôj1i¿›üüýó÷ÏHZ×ñ¹åsËçkÏ ?ÓÖ5m0Q<½$kf¼ÿã½¥µA‡h¿›<Øp°á ’ÖuÜf»ÍvcSz×Þ0ÙyÔÌu9iT7¯—es”èzÑõ¢ë›'6Olžˆ¤u™gœ9µÿ—¿Òœ+ƒ}q8jCªMö+eíC“'5N2˜L$ P« W®¢èÛ¹PæqsmæÚ̵aýC2~¤Ìå–Ë®¥Öõx³y·ë°KªõÕ^¡#ØL’ÖT­©Zƒwl»^9³œYnccËfRÇ”ñ›Å¿1oe…Úè`a‹µ­ÛžZmuHøµßm6I« « +D¬ËI0%˜ššl¾B“Ø8æ·éeXÒ¢ÝöyÈ1ŠüJ7Õ;xùà僗±®Ö¼¬yYó2Ù²d°Ž‚ÅJ×ßÅ ±¤E×ú¾½¬I»Uã¥3Jg”±®ÖÝÝÍ·‰oß&ÖQØVc¯(‡y/í¶Ï{x˜/§ËðÕ”«)WñúB—«W;®vÝ(„.]碢Žy/][21AÜìwºÞ»å}Ëû–72ÖÕ*_T¾¨|A7 JŠ®çí0ï¥ÝöywÈÎèct½—j”j”j„Œuµ² ² 2ÚœæØ*¯€y/]»\åúlÕt½—-œ-œ-ŒŒuµc>Œù0†n{Oª×1¼—®½Ÿ8}²A4]ïððð!cÐ àNXƒrhvhv@Ñ·s¡ÌëSÕÔ²Ô²Tº?6![L\•Tð8gm×Þщ’Û@×o5¦5¦5¦H×4Uýû!–n,ŽºùmSÄòÖ¿Ú†¬tkׯӎJKÓõ[½t½t½4Òõß(N.N.¦=ûSé©;±µ/–·þÕŠž6Éš ªd<ÎµÇ¤Š¤Š¤Šššš®ÿFAYAYA]†gß eÊŸÅòÖ¿¶¹óÏÐ.V42Ý$$ÆÚcºýtûéök±o±o±GºþŒ=2¢Ëðí »O:0ûý׫§\2¬ÇéVˆ~âcí±qãÆ9033#]ÿ´¨´¨´(Ú"ÐÜ“¥úý0þ׫§ÓúYå—'ð›I“““«ÿR’a’a’!]†µâ7ï‹À|øß¯B +¡„‡Üàã»Áæ0ޱKÇ.ÅÒç*º4º4º”.ÃËóãU#1þ±õzï™æmÚ ´«}«}«‘«ÿÒ¹;çC»?œýì"“K˜ÿØ–J,8g¾‡®Ç‚‰`"˜@®àG(w–¿FÑ·ãPîîܺsëÎ-º‡V´Ù„Zæx´·¶a”õµít}u?ô~èýP$ê¿›››NûþþÂÐ):;±ÔÕÚx¼VV™vÛç§^O½žz!Qÿ½ó-ç[ηЋÆÅ â'n`©«µ•­˜©ä1˜®¯^®y¹æå$ê¿wlî±¹ÇæÒ‹[Ó•?UþÂRW ~ŽŽ¶……K´x]_•D”D”D Qÿ½O!ŸB>ÑKîùYÖF~˜ 3ýÜôlF»W«’¦=üsËç–Ï-HÔoã‰'6ž —ý®]0‘ÅL¸e½5Ö%N¯',”P§ë«Š€Š€Š$ê¿·"rEä ÚÝôŽï)ºþ3aãÝa«3Z„Ojùšö¥}%]¹F¹F‰úOµ0[˜-óÍ4ݸ¬uMY£±óáMŸÜÒ6’ÎÖ3¼µ—„Î :_ÿ{ýïõ¿#Vÿ©f3À.Ò.ÒŽöïáòþ -t1þ~|ñg+9…IBylÖp”V)­RZÕô{ÓïMÈ0ü ÀÀPîA¶Ü:pë@ºÇ|Ò1{{Ý¿{òþJîøGšñtýs$ùHò‘d¤è×ZS·¦nMí×gOIèïÉ ^g7Ë«O¤ëŸs¥çJÏ•"E¿L³‰Ùä*î*î*NûõCøf»s1=yÁKAsá*_{Úו¦FOžŠ(ý2žLO¦çÌ-3·ÌÜBûõÃìëQª›zò‚׉µJR Úוn5Üj@”~ÙÊ툖-#ÆJ•K»CÆ‹‚Ù&Ózò|xÓ8}?yÚ²YÊ‹”)/¥_¥ñ[ã·Æoº½u{ëö¦£·c⧘föÐùðÞ,oå•}g'ÈjÐõσÆ‘¥_¥®¥®¥®EFXFXF˜nŒôsÜH|ÖCK¿_ÂOÝÛ nl9hr]ÿämÌÛ˜·YúUjLjLjLø¼ø¼ø¼XG‡o Ÿ!}ÿÈüCsaÏœ û§å>Ò>£®=î‹ð(Ú/MMŠLŠL¥_¥"¶"¶‚v=™:A=>•ל½-­zæL¸þ¶ ¿Õ ›Ò6£¦ÐõÒ;wï4%`…0p'€{Ò²—j‹j‹ê”7SÞLyC÷»©7éªÎ žö€¿X3nží“îéîéîéÌçÌçÌçHѯÕ$Ú$Ú$j™`™`™@7^ÄoÇ6ë èi ^aIþ¾j´çùHúHúH"?Ü ~výìúÙ5k<¦/Í8ÿ%á=mÁKþìü+ëúÑžóAQAòÃË^ïjÞÕ¼“P—P§ÿ²jY¿è£*7{Ђ×Òü«:*ã_m(µ€®ODˆ:…üpƒoqßâ¾Å iSþWÇÆú=h><Ðm°Íà ŽzÔh‚®O   nð%ãKÆ—Œ¶3\´H}ú Õv†õ¾ì-LïA¥_Ï0ÁŒ 1¦ÅX{Ú 'ôMè›ÐùáÅ)Å)Å)t#Å÷„ÿõƵ¯R­5.õ ¯~§=±Õ–S˧:’ö•}F_F_2ÌžE=‹zF{´„ì:AWñòu ßXØ÷ ¯~Ç/¾o%`ýZzä(}ºžÉ´Í´ÍÄ\h¡ Ü à§6¥6¥6EÓAÓA“öHípskRí?à·¸Ú(ì]mZ¬ÌG×nN¸9áfSÿ¦þMý‘îQ=¸zpõ`IwIwIwº±»$ºý˜Æ+ßàîà½kÖÕ[Í– ;èúÁIÂIÂI¢åÏ–?[þDr¸Ç׋_/~½8Td¨ÈPº±S \¥¶ç=/uÅ„½ËÜ-=Û¾ÿÂý´ ?s{æöŒ999 ÉáŸ|>ðù@ÛK· Õ–)zòøWz9Ï´W̉-¦Ý ðõÚ×k_3+™•ÌJ$‡{”<(yPò í §lœb¦—ËÛóá:jÉ «só=”›%õèúa«ÞV½­zÈ ·)šQ4£hFÛ¾¯sÖÆàoχkr©<ˆ)üV›Ä´èúa_ñ¾â}ÅÈ ·ÉWËWËWk;ÃÚAÛ"óy{>l~t!7r¼š­þº~8™2ÿd>2Ãm²³³Ûΰ§Õ ¦šoχ}e2M4—InS³N;—¸(zQô¢(2ÃmÒrÒrÒrÚÎð«+sæ›Ôóö|øóŸ Ííåž~XN×q q q È ´ `àN(÷PU;ªvTíP¹¤rIåÝãÍCUãŽÌÈúÀ%L«l^z´W¯Y,b天4@¢?ݽ[7Y7Y7ÕÔÔá[.õUý«úWuQGQGQÚ_ºÖYð\îj“jÆ#kw^ZêªØ“|Ã"sÒY󾢚t÷>5ujêÔÔÆýû÷#-Üé³úgõÏêmÿº%;~º¸ûRã÷á;ï-楥.ƒµ¡‰IžBGUÄth¿rXX±°baEsDsD3NKåR%;Kv–ìl;ö²ë*¥GZç{èHòÒR×ÚÞ©1_ÂRe¸À}Ú%¿Mž›<71‡2‡2‡"-Ü©u¶3|dÅu•{Ì^[êzS>÷i¼¬’ ­í™ë¼6xmðbæ3ó™(ˆÏ—5»ÐÝçÃQ·Çÿ©iÔöýîÈÚ‘µ#‹YϬgÖ#!ܯ°¢°¢°¢í1ò§Õ1Òi·ÃÍwãùð‡¬›6ægWlž«>»íû=$|Hø0²Ñ]<Õ}ªûT·í1“5=5ÑÙ°×a×»'ºñ|˜ÿ´h–¤ᬹ~ÿÿ(›„„ãeônãÁ—_|i{L âEǬW¸Ÿ¢%Ô}gÂKŸ~Õ~6ñ_ƒtÔÿ(›õŽêÕÙè.Ò¥ JÔö˜z kO–½ô½ÿâëV}»ïL¸ñ¼K–õ„íZFµÛ¾ßëG®¹~ÙΡ Ü ``6z5z5z-3_f¾Ì¼í‡ßºa:÷åöVY8GY.î.ö2™…ο»Å©{IOnûî6¼ßð~Ãû¹¹9¤¢{©«­«­«W4¯h^QÛ£`îzZþì÷w)—­ôºËR×Çlj‘æÍ»9i‘äà¶ï.¸pÿàþÌ Ì Ì HE÷RS]S]SíÐèÐèÐØö(ËívY±ÇXèÔéRÝe©KïÛÞ²37)›)mßÝ«®¸Ê,a–0KŠî¥Ò¥Ò¥ÒÅú¨õQë£mò$Çõ÷¥süKžþ¡}¹»,u­wÇZ]Ji˜YÐ’¶ïî$ó$ó$âÐ-•O.Ÿ\>Y÷†î Ýmò±W–„ªG‹¿k¡uEw™.qÊ0émºK"ydVÛww¡áBÃ…ä¡;úû)öS¬ütùéòÓÛå3©ÏÕu˜²‚l4ºË|8Ï9ÊØè•f´b… HÛw³,fYÌ2ä¡;* . . é=Ò{¤÷ÿø&˜ô¸´=½{•~µµ·Ê]àãß'j%¹ í»»5íÖ´[8ú¤[**(*(*Â9"‡öÉ'w¯Ò¯›ÇåAÊÏ …†ÍlûîÈx2žŒGº£‚“' Nr’á›Á“èHt¯Òoª×”ãú8¹»{!÷Bî… Ð^(wBþåÜàsƒÏ æäqxÀɬZùV¥œ³¹¥ ·=ÔË¥RÆÛ^]V”àä^bœbœbœ0úÝÍ€YÂ,9vòØÉcMX]_¿CuQu™gÍm‹\¥Ê·Ì÷ozå²S~ '÷’‘‘ˆmr»?i¦4SzoüÞø½ñœŒ»Ò(WŸ@£ÕÇ™)Û¹m‘K?ìÀÄߤ˜“Þ-ää^‡ðAº»æ¤æ¤æ¤ ™A3ƒfr2î3Ÿî>ÚaSïÇ·´pÛ"×jâ7õçÆ®ótÅ”9¹—ŒüŒü l“Ûí5Þm¼Ûx×o‹ß¿-œŒû5õ Z¿7Ìu±·îÅmóáâò9¦æKæªiIíåä^²“³“³“‘î®Þ¼Þ¼ÞÜÓÀÓÀÓ€“qÜ·Y{eãóŒ]ÖÓ¹n“ç!ÑkLÌq´ –ØÆÉ½ä©å©å©!ÝÝ÷ùßçŸïìãìãìÓöˆuåŸ(°]oÈ!sãè°×™Á\·Éóíàª+æ"rúS­Ç¶}/ü[ø·ðoy¡øBñ…"2ÐÝUÉUÉUÉÍ´œi9Ó²íqÜ-ú–ïó¦³ÞJÚgòìµK¹m>ì‘wWu²âw3JhNÛ÷"y_ò¾äý×ѯ£_G#ÝÝW¿¯~_ý&žpxÂáÿ±"±ldØðuiöSÊõ™ÜÙ æ¢ùp£›«õ#Áû W™¥Hj mû^Ô Õ Õ ß'¿O~ù0ü$€;¡ l<»öìÚ³kR»¥vKíæä—í5»t äôŠÎÏn1¹ó«íù¢ŽjÆý— Òp~ÆÉ5ë¤é¤é¤½Nyò:#Î{r¨*‡n>Ü|¸9'yØ0mñžÑŒ·ÏâSM?ÿªE®'û"M~s~æ°DJ“k¶²²zþ>ü}8Fœ÷b>Šüù5ò+çžö*ø‹Ü4ÿ’§¿ÿºræ÷;~^á¦ø"¥=œ\ó–â-Å[Šòòð*$oÑfj3µÃýÃýÃý9IÂðq| †®»À{Nùå€ëëê_5Ž=g{\ë¾¼œ«ÀmN®|·ÏnŸÝ>M‰M‰M‰vè€;¡ ´šv7ínÚ}\ë¸Öq­!í4ʨ¯BRö› ]:ùqþÊmŽiÖ‘iï VlÜ¥¯-߯½×v¾ö|íùÚÿÿŒ2okxÜð¸áñ^zèÅyB† ë?äËξž6ŠOÎEN2ê×ÉË[|Y|6C2N‡ûè§ø,\¸NîE{3|5éjÒÕ$¦#Ó‘éˆQæmu‰u‰u‰;|vøìðáCAhDèɨ/Ô¿(Œžh2­sçÃ5¹T¾eÃíúCûu>,ŠŸ(ùóká?„ÿ=ë{Ö÷¬1¾=Á—û_X~±übùvä$wt°j¸’‚ëù@;Ýò]I±|xŠá¹£„®šÿšÉ¾Šñ™ÎÈÇùµIí‘Ú#µç‘Õ#«GVßžàcùÇòåNýœú9µcýJö¤®Çˆƒ3RvÈÕz÷½»G}aç·}çežÑôŸ›}4HÁ^ÃßVYx'çצ:Au‚ê„§Ÿž~zú ã۔ėėÄÛ°?`€óœØŒ–Ö5îÒäqŸKvÌS5ãëÜùpéô7ÌÇ„ÙhísX4šû›ók3H0H0H(Ô(Ô(ÔÀøBgA¸ ÀÀ‘²#eGÊŽøÔûÔûÔù)ÃúU’ä8RñŒxVp•ñ*Åc‘cs5nÙØ­ÔÙJÚ8xèM%šô¬çÙÒ™|þñXM ñmšF ÓJ†‰ é€ É É ÉÊÑ•£+Gc4{¦ÏêŸÕ?«{íôÚéµóçR4b¨ÀΡ³_ÚÊI¸ï¤<Ÿ)õ¹¶]Gƒ¼Uš I®9~^oñคžþÍ”ƒƒuT"®n•P/Úê¸ô©Â^‡l«qb2Éð®Ò]¥»J«ó«ó«ñ^mõ>à}Àû×B×BןKŸÊð$Á(±yf“lGëÍÖZi¡üÔã}°€ú uƒ)k¬XïvIK;åÌ0›ê7^Ð7•8vŒ4sTJG2|öîÙ»gï6Ê5Ê5Êa4{¦gqÏâžÅM´˜h1ÑâçR$ûT¢X@ÛåÊÔ“R/ö¿^³T9ìê;/h2î˜Þ§«Néœ0ÒÛA 8¬70Á~¿´vx¸W@?µkëÕ£Fo´ŠÓ7®éH†/_*¾TÜtµéjÓUŒfÏ”[˜[˜[h¹Ór§åOþN' &®+ýNb…MÎôkòçoX›¡rÙsWˆ¿z Ï†#ý4®ybÆ?‡c‹Tßy/Ù·F1xIä¦;Ò‹íG/LòW~¨³¬#޹s'æNsisi3^Á顲³³õ÷ëï×ßÿs) •wãÿ`4wÎѧö¢›^˸Ï^º@~ë"ƒÓÆŠ™‹c"v(w¶=+¬$=wÕ‘÷ êS·Én4·XüM|L¼vÁˆ1ÉðMû›ö7í[ŠZŠZŠ0š=Ó½I÷&Ý›¤:Su¦êÌŸK‘ÆøQÙ#î¯Ø©yJæì>‹•¬SÛáZ~ɽ&kë¢Òšô¢r“Ïê>‹s²}¥Us|e½êïËÚÛd³ôI±ÃBëîÿïHÑ‘¢#Eï½{ôîQf3„‰S~¡“¡ Ü `h·ÒŠÒŠÒŠ;wáb·Üvp[…v…v…6F ~ôñáLJn>¸ùàæƒÜœácß}?ö½2­2­2 £?z·êݪw«Ö¯Z¿jý*nÎðiÓ§5jFÕŒª…Qƒ½~ùúåë—«ÅW‹¯çæ _0¼`xÁ°V¯V¯V£?*X4°h Ç1cǸ3½‚7o Þ¼2ôÊÐ+CëGÖ¬‰Qƒ=ïó¼Ïó>‹_/~½ø5wfXb§ÄN‰±ñ±ñ±ñ dÙ@bÔàGOï>½ûô95sj¸3à – – –7enÊÜ”iRkRkÂÕðʘe̲ÇfÍ›MË›–7-;3¬9_s¾æü;‹î,º³¨yQó¢æE:øÇææ™ûÛïo¿¿}âÖ‰['nåÎ 7o4ž\A® W´Ìi™Ó2C]`àN(C‡477“GÉ£äQÇÇŽÿª‡º³¡³¡³aƽŒ{÷˜–LK¦%F8Ñh×h×hwwÜÝqwÇM]4uÑÔE¿*ÃîNîNîN÷“î'ÝOb~b~bb3%àH}ßú¾õ}sss'æMÌ›øË–<<<? ~„3Ì ¾oü¾ñûÆxƒxƒxƒ1òcäÇÈÿª ¯1\c¸Æ0W-W-K´ÐU9U9U9ѾѾѾfsÌæ˜ÍùUökökökÎÍÍŸç¾I}“ú&u0ê`ÔA}/}/}¯_•á€S§N*T8ãœ+ßU¾«|×ùàóÁçƒ5–h,ÑXò«2¼Mb›Ä6‰"ë"ë"lQíðEæ‹Ì™Ó³NÏ:=KÑHÑHÑèWe8dsÈæÍ¯§¿žþ{Þ@;|ºôéÒ§K'úœès¢T¥T¥TåŸ^{{û}éûÒ÷¥—X”X”X`\à¿„0p'€¡“5Æ6Æ6ÆæP9Tuhú¡é‡¦÷ï=Þ»³çö—ì/Ù_:žr<åxJëòVË€–-ÐóÐYêsësës÷Üÿqÿýg÷ŸÝÖÆÜÆÜÆ¼³2<õîÔ»Sï†Ù…Ù…Ù=×}®û\—©ÈTd*¢ç¡³Ô>­}Zûô¡ÑC£‡F»_í~µû•Eo‹Þ½;+Ã3Óf¦ÍL;“y&óLæ‹È‘/"™ùÌ|&6'‡NSó¤æIÍ“¬YY³²fí°sÀÎÆñÆñÆñ•áÙälr6y^ó¼æyÍW}^õy…_É “U½­z[õ6cAÆ‚ŒÛä¶Ém“ÓŸ£?G¿Ó ÃócçÇνr1äbÈëñ¯Ç¿>‡ÎU)U)U)•:5ujêÔÍš›57kjÕkÕkÕw<½Ãb†Å ‹quu½üôòÓËOß®»þízô9t®Šýû+ö“š¤&©¹Ie“Ê&µíjÛÕ¶w<Ã#nŒ¸1â†ë2×e®Ë¢EŠôî軣ϡs•W–W–W&ë&ë&ëú ù ù ) P 4 ãŽŽŽ[¦»Lw™nœnœnœî‡ÓN8>‡ÎUf\f\fœd—d—d·vâÚ‰k'ÊÊÊuÂ^’bÄ.ˆ]XQ³¢fEM‚]‚]‚ݧÐO¡ŸBÑç¬P†_ìãoûø[jXjXjXê»Ôw©ï¾Îþ:ûëlô to½yôæQªgªgªgUEUQèè.^î{¹ïå¾TóTóTó4‹4‹4‹Ú°Ú°Ú0ô tÞÞÞ©CS‡¦MóJóJój(h(h(@Ï@w‘s5çjÎÕ”7)oRÞ¤…§…§…7ÏjžÕ< =ÝE¶w¶w¶wJ\J\J\Úô‡i™ƒ˜ƒ˜øŠº¬º¬º¬º”-)[R¶¤5§5§53?2?2?¢g »ÈtÏtÏtO™š25ejºbºb:^1‡n&ýkú×ô¯)2)2)2é³Òg¥c& Ð PO Ú€IDATà(ð€x À<`0@€G  À#Pà(ð€x À<`0@€G  À#Pà(ð€x À<`0@€G  À#Pà(ð€x À<`0@€G  À#Pà(ð€x À<`0@€G  À#Pà(ð€x À<`0@€G  À#Pà(ð€x À<`0@€G  À#Pà(ð€x À<`0@€G  À#þÓpJŸ”>)}†ô­uR€º=€xD+·þ÷)½Sz§ôNé•Ò+¥ÕBµP-T3ÕL5ST#ÕH5P TUGÕQuT-UKÕR5T UCUSÕT5UIUR•Ô7êõª *¨ ªœ*§Ê©2ªŒ*£J©Rª”úL}¦>S©ÔGêõú@½£ÞQ飯„*¡ÞPo¨7Ôkê5õšzE½¢^QETUD½ ^P/¨Bª*¤žSÏ©çTU@PùT>•O=¥žRO©\*—Ê¥žPO¨'Ôcê1õ˜Ê¦²©lê!õzHݧîS÷©,*‹Ê¢2©L*“Ê 2¨ *J§Ò©T*•J¥R¨*…")’")‚"(‚J¦’©dê.u—ºK%QITu›ºMݦ©D*‘ºIݤnR T•@ÅSñT<GÅQqT,KÅR1T C]£®Qר«ÔUê*u™ºL]¦¢¨(*ŠºH]¤.R‘T$I§ÎSç©*‚Š ÎRg©³Ôê u† §Â©p*Œ £Â¨SÔ)êu‚:A ŽSÇ©ãÔQê(u”:B¡ŽP‡¨CÔ!*” ¥B©Ô굟ÚOí§öR{©½Ôjµ‡ÚEí¢vQ!TBí vP;¨`*˜ ¦¶SÛ©íTDQ[©­ÔVj3µ™ÚLRT åOùSþÔ&jµ‰Ú@m 6Pë©õÔzÊ—ò¥|)ʇò¡ÖRk©µÔj µ†ò¦¼)ojµŠZEyQ^”åIyRžÔ jµ‚ò <(jµŒZF¹Sî”;åF¹Qn” åB¹PK¨%ÔÊ™r¦œ©EÔ"jµ€Z@- æSó©ùÔ\j.5—šCÍ¡æPN”åD9RŽ”#5‹šEÍ¢fP3¨Ôtj:5šJM¥¦RS¨)Ôj25™šLÙSö”=5‰šDM¢&R©‰Ôj5O§ÆSc©±ÔXj 5†CYSÖ”5eEYQV”eAYPæ”9eN™Qf”eB™P&”1eLS†”!eHP”¥GéQz”.¥KéRÚ”6¥MiQZ”¥AiP”:¥N©Sª”*¥J©P*” ¥D)QJ”"¥H)Rò”<%O¦FS£)9JŽ’£d(J†’¦¤)iJ’’¤$) J‚’ Ä(1JŒ¥D)Qj5ŠE S”0%D QB” %H RéáÔpJ€ ¨aÔ0jÅGñQ|Ôj5„L ¦S©Ô@êoêoêoj5€@ýEýEýEýIýIýIõ¥úR}©?¨?¨?¨>TªõõõÕ‹êEõ"™$“d’Íd3ÙL6‘MdÙ@6 d=YOÖ“µd-YK~'¿“ßÉj²š¬&«È*²ŠüF~#¿‘dYA~%¿’_É2²Œ,#¿_È/ägò3ù™üD~"?‘Èäò=ùž|O–%d ù–|K¾%_“¯É×d1YL“EdYD¾$_’/ÉB²,$Ÿ“ÏÉçdY@ùd>™O>%Ÿ’OÉ\2—Ì%sÈ2‡|L>&“ÈGä#ò!ù|H> È,2‹Ì"ï‘÷È{d™Aféd:™N¦’©d*™B¦)d+‚$H‚L&“Édò.y—¼K&‘Idy›¼MÞ&ÉD2‘¼IÞ$o’ d™@Æ“ñd<GÆ‘qd,KÆ’1d C^#¯‘×È«äUò*y™¼L^&£È(2мH^$/’‘d$Iž'Ï“çÉ2‚Œ Ï’gɳäò y† 'ÃÉp2Œ #ÃÈ“äIò$y‚d²ùùùÙ‹ìEö"˜“`ÍD3ÑL4MDÑ@4 D=QOÔµD-QK|'¾߉j¢š¨&ªˆ*¢ŠøF|#¾DQA”åD9QF”eD)QJ”Ÿ‰ÏÄgâ#ñ‘øH| >ˆwÄ;âQB”%Ä[â-ñ–xM¼&^ÅD1QLEDñ’xI¼$ ‰B¢xN<'žDQ@äùD>ñ”xJ<%r‰\"—xB„áC¬%Ök‰5Äb áMxÞÄ*b±Šð"¼/“ð$<‰åÄrb9áAxÄRb)±”p'Ü w•p%\ Â…p!‹‰Å„3áL8 ‰…ÄBb±€X@Ì#æóˆ¹Ä\b.1›˜MÌ&œ'‰˜EÌ"f3‰™ÄLb:1˜NL#¦Óˆ)Äb á@8„=aOØv„aGL$& [–°%Æã‰ñÄ8b1ŽCŒ!Æ6„ aCXV„aIX–„9aN˜f„aF˜¦„)aLÆ„aD„a@èú„>¡K躄¡CèZ„¡Ehš„&¡N¨ê„¡F¨*„ ¡B(Ê„2¡H(Š„¡@(£‰ÑÄhBŽ#äB†!¤ iBš$$ IB‚ $1BŒ#D QB”EŒ"F„0!LB„!H‚Äpb81œ b1ŒFð|1„B !ƒ‰ÁÄ@b 1ø›ø›ø›èOô'úýˆ~D?¢/Ñ—èKüNüNüNô!ú}ˆÞDo¢7Ñ‹èEôb´0Z-ŒfF3£™ÑÈhd42 ŒF£ŽQǨeÔ2j5ŒF £šQͨfT2*•ŒoŒoŒoŒ¯Œ¯Œ¯ŒrF9£œñ…ñ…ñ…QÊ(e”2>1>1>1>2>2>2Þ3Þ3Þ3Þ1Þ1Þ1Þ2Þ2Þ2Þ0Þ0Þ0ŠÅŒbÆ+Æ+Æ+ÆKÆKÆKÆ Æ Æ ÆsÆsÆsÆ3Æ3Æ3F>#Ÿ‘ÏÈcä1ò¹Œ\F.#‡‘ÃÈaÆ>Æ>ÆÆÆÆnÆnÆnF#„ÂØÉØÉØÉf3‚ÛÛÛAŒ Fc+c+c+c3c3c3#Èdø3üþŒMŒMŒMŒ Œ Œ ŒõŒõŒõ _†/×áÃðaø0Ö2Ö2Ö2Ö0Ö0Ö0¼Þ oÆ*Æ*Æ*†ËáÅðdx2<ËËË †c)c)c)ÃáþÿػϨ¨±‡ãê6]wUE, XQQĎر`Á²vÅÞ;öÞX{/Ø ö6IFE+VPlˆ(*Š ½Íóbþ/Ø30”aø~rNÎ’›››;!¿É½òQò‘ò‘ò‘òòòòaòaòaò¡ò¡ò¡òÁòÁòÁòAòAòAòäÿÈÿ‘÷“÷“÷“;ËåÎò>ò>ò>ò^ò^ò^òžòžòžòòòòîòîòîò®ò®ò®rG¹£ÜQÞYÞYÞYÞIÞIÞIÞAÞAÞAÞ^Þ^Þ^î w;ÈÛÊÛÊÛÊÛÈÛÈÛÈ[Ë[Ë[Ë[Ê[Ê[Ê[È[È[țɛɛÉíävr;¹­ÜVn+·‘ÛÈmäåååÖrk¹µ¼¡¼¡¼¡ÜJn%·’חחחדדדווובבבגגגההה[È-äòêòêòêrs¹¹Ü\n&7“›É«È«È«È+Ë+Ë+ËMå¦rS¹‰ÜDn"¯ ¯ ¯ 7–ËåFr#¹‘¼œ¼œ¼œÜPn(7”È äòÒòÒòÒr}¹¾\_^R^R^R®'דëɋˋˋˋɋɋÉÿ’ÿ%ÿK^T^T^T^D^D^D^X^X^Xþ»üwùïòßä¿É“ÿ"ÿEþ‹¼¼¼¼€¼€¼€¤’BJ–’¥d)IJ’’¤)AJâ¥x)^Š•b¥X)ZŠ–¢¥()JŠ’"¥H)RŠ"¤)\ —Â¥oÒ7é›&…IaÒé‹ôEú$}’>I¡R¨*}>H¤)D ‘‚¥`)Xz'½“ÞIo¥·Ò[éôFz#½’^I¯¤—ÒKé¥ôBz!½žKϥ璿ä/ùKϤgÒ3é‰ôDz"=–K¥‡ÒCé¡ä'ùI~Ò}é¾t_º'Ý“îIw¤;Òé¶t[º-ùH>’tKº%Ý’nH7¤’·ä-y+oÿ•û’’(‰’(É$™$“®HW¤+Ò%é’tIº(]”.Jç¥óÒyé¬tV:+‘ÎHg¤SÒ)é”ä%yI^Ò é„tB:.—ŽKG¥£ÒQéˆtD:"’I‡¤ƒÒAé ä)yJžÒ~i¿´_Ú+í•öJ{¤=Òi—´KÚ%í”vJ;¥íÒvi»´MÚ&m“¶H[¤-Òfi³´YÚ(m”6J¤ ÒÉCò<¤õÒzi½´VZ+­•ÖHk¤5Ò*i•´JZ)­”VJË¥åÒri™´LZ&-‘–HK¤ÅÒbi±´PZ(-”H ¤’»ä.¹Ks¥¹Ò\iŽ4Gš#Í’fI³¤™ÒLi¦ä&¹In’«ä*¹JÓ¤iÒ4iª4Uš*M–&K“¥IÒ$i’4Aš MÆKã¥ñÒXi¬4V#‘ÆH£¤QÒ(ÉEr‘\¤Òi„4\. —†JC¥¡Òiˆ4D$ ’I¥Ò@i€4@ õ—úKý¥¾R_©¯ä,9KÎRo©·Ô[ê%õ’zIN’“ä$õzH=¤nR7©›ä(9JŽR©‹ÔEê$u’:I¥ŽRG©½Ô^j/µ“ÚIí¤¶R[©­d/ÙKöRk©µÔZj%µ’ZI-¤R ©¹Ô\j.ÙIv’ÔTj*5•l$ÉFj"5‘šHÖ’µd-5’I$+ÉJ²’H ¤R=©žTO²”,%K©ŽTGª#Õ–jKµ¥šRM©¦TCª!ÕªKե꒹d.™Kf’™d&U‘ªHU¤ÊRe©²d*™J¦’‰d"™H¤ RÉX2–Œ%#ÉH2’ÊIå¤r’¡d(J’d •–JK¥%}I_Ò—JJ%¥’’ž¤'éIÅ¥âRq©˜TL*&ý%ý%ý%•ŠJE¥"R©ˆTX*,–~—~—~—~“~“~“~‘~‘~‘ J¥‚R©€T@LSÄ1YL“ÅD1QLÄ1AŒãÄ81VŒcÅh1ZŒ£Ä(1JŒ#ÅH1BŒ#Äp1\ ¿‰ßÄob˜&†‰_Ä/âñ“øIü$†Š¡b¨øAü ~CÄ1D ƒÅ`ñøN|'¾ߊoÅ×âkñµøJ|%¾Å@1P|!¾_ˆb€ ú‹þ¢¿øT|*>ŸˆOÄ'â#ñ‘øH|(>ŠÄâñ¾x_¼/ÞïŠwÅ;âñŽè+úо¢è#úˆ7Å›âMñ†xC¼¡|ø§üs_ù!/* ¢ âñŠxE¼,^/‹Å‹âEñ‚xA¼ žωçijâYñ¬xZ<-žO‰§ÄSâIñ¤xR‚pK¸%Ün7„‚·à-x ׄkÂ5A.ȹ ’ J2A&È„ËÂeá²pI¸$\.„ Âyá¼p^8+œÎ g„3Âá”pJ8%x ^‚—pB8!œŽ Ç…ãÂQá¨pT8, ‡„CÂ!á€p@8 x ž‚§°OØ'ìö {…½Âna·°[Ø%ìv ;„Âa»°]Ø.l¶ […-Âa‹°IØ$l6„ ¿¿¿Âza½°^X'¬Ö k„5Âaµ°ZX-¬V +… a…°LX&,– K…¥Âba±°XX$, „ÂÁ]pÜ…yÂË>Ë>Ë>É>É>É>Ê>Ê>Ê>È>È>ÈÞËÞËÞË‚eÁ²`Y,H${+{+{+{-{-{-{){){) ”ÊeÏeÏeÏe²Y€ì™ì™ì™ì©ì©ì©ì±ì±ì±ì‘ì‘ì‘ÌOæ'ó“===ݓݓݓݑݑݑݖݖݖùÈ|d>²[²[²[²²²2o™·Ì[ùØ^ù¸NyÛNœ£ ÙAòP`ÈÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @G²]œkœkœ«XI¬$Vš1dÆC“““lÛÙ¶³mWmIµ%Õ–”>Wú\ésƶƶƶµljÙÔ²±«aWîƨ¡£†Žº³ÊÎ*;«v ì؉ú¨CL W"MÔõŒìó¢ß‹~/ú L˜80±D68íÚÿ´?õŒüéãÒK?.­T)¨RòŠ0)nRܤxÄ»ˆwïòúÑ)ByDÊ£S©ò¨9ûH00tÁ$õŒœô¥ã—Ž_:Ž3g>μD"Bþ‘bœbœbÜ¡W‡^z¥¾ Ö”YSfM6]LQLQìú­ë·®ßZ¼sñÎÅ;;[t¶èlannnZÀ´€iRK=.õØ4Â4Â4¢ÞÛzoë½í!ï!ï!_Ùje«•­î›Þ7½ošUGºªÁª«¤>ÆŽ::(k€–u€ € ã&©gä åà̵kÖ®Y»f‰§|;Йÿ2ÿeœ è¶¥ó–Î[:/uû¯r½Êõ*×5éo×;^ïx½ÆÓOk<-«®ÊKc/½4V“#:u.êŸ,È(``è8‚IêÙívÿÛýo÷OO TnT¹QåF óæ5ÌëŒÏŸ3>O.<¹ðäBxñðâáÅ•óØôaÓ‡Mw›Ýmv·Ù†cŽm8ætÊé”Ó)½H½H½È´·oæiæiæùÚäµÉkÎ ²Oë«i-Ù·_åWT[þÆwlܑѭ)¯8åÛÙýççç̵ÇmÛ·SoMß[ß[ߛϨCL G0I=#û„ 9r0í³¯ nç˜Í1›c¦I«PþÖˆu#ÖX—ö›'7Onžœ\3¹frMÎr¾ÇË–~¯˜¢˜¢X»©í¦¶›šz/Õ]«»VwÍð‹)Š)ŠõkÛ¯m¿¶9ù¦¾r¿=ôØ%±Kb—¨nM96­ª€ € ã†ïNk¡~² p~£nÒÔªž­z¶êÙÔïgm{KÏ;Áœ)ä|—mÏó¨çQÏ£ª{ÙYeg•U2ºµuŸÖ}Z÷)íò+£åyñóâçÅ+¯âP·P·P·˜1c6>=ôôÐÓC^¿yýæõÛxÃñ†ã Ë(s Ìì«™­ƒ¶Ú:ˆ+éAL Âå7+º¯è¾¢»º3nlklklûè飧žæV««X¡b…ŠhÈù¶—µ­.Þ%Þ%ÞÅb¤ÅH‹‘©·_¡V…Zjet_ï"ÞE¼K»ä©…ÎhÔUÔUÔU[?¦L ˜È\ý¨{¸fûšík¶×dˆiè``Y€8ÿ¾|#øFÚg\þ«üWù¯Ù]å[ȹ0/èñr°Õ©{óul£±Æ6Êè¾ÖÆ­[§®Ìƒ_ ~5ø•&åi÷Òî¥]Y·²neݲ£~¸ÒÀÀ²åó™=fö˜ÙCݹæ5Ìk˜WNžwuCã*µòkå×ʳ†œìñ²ªýǹƹƹV[RmIµŸ¼ùzýÖõ[×oet›mN·9Ýæ´êÖRG¶Ù]?ʹ‡3·eå—KT·©|CZù¶4íÀÀ²p~ù8òqäcug¹Ü¨r£Êú°éæ›r²TaMÚ†5UWªÔós‘3=^Vµ·}¾û|÷ùª ;3º—hÏhÏhOu¥P}@õÕ³ªä玜;r}ÕXÿaý‡™ÛWzÞû§}€˜ÈŸ™?_Ôý¼r¶EÛ·=nw1êbÔŨÞÛzoë½5Ød°É`“Iq“â&Åmh´¡Ñ†ñ†ã ÇŠ•ÄJb¥ì>Šï¾ø^àÀöÛlW¾‰eÓÛ¦·MïJA•‚*)ËVǸŽqcû}öûì÷Ͷšm5Ûê^Ý{uïÕU·Íœy^<¼xxñCsÍ94gàŸÿøgÓ&M›4mRõlÕ³UÏ–>Wú\ésæÍ7šo´«aWîÆÀĉ?<þðxåïÒ†5¡lÉêÎòh§ÑN£r+€ÉÉ!yi‡ô«9ÓÞš'7Onž¬ºå¹s ædtkw›Ýmv·™ºÒnž»yîæ¹YU?oJ¼)ñFmÍdnöâÔÔCÐújë«­¯rM€˜@Ç)£;uaÏ^:{éì¥Ìm9±Cb‡ÄiÏó§œMP“ò»Lv™ì2YÝöÏøœñ9ã“ö²ö}ú·–vT–ÊèYÕb6ÆlŒÙèþÙý³ûçó+äWȯPöÕsj?¼xÿðžc6ÇlŽY‰,¢ ¸š2z5)¿ n WC®†\ É­¾NYÿSOü|¹<àò€Ët£fw/—ó{Ôæ~µD–Jÿ~ï›Þ7½oªn;O==ôôPFëùÂÊ +/¬T·ÍãõŽ×;^/«ZHì’Ø%±KÔí«|‡òÊwФ}>|ÿðýÃ÷¼ u€ €tܵgמ]{¦îñè´]ÓvMÛ•¹-ßî»ÿíþi?~5ó4ó4óÔäQ¬º-ë{ë{ë{§gË9T(‡¦œ"N§ˆšGÊ÷Ø^ô{ÑïE?MÚÀ³-϶<ÛR˦–M-›¬Š1J— .œº³ãA¼2IÝŠ²J•ëU®W¹®|Ž«)=W“ò ÙW6m¦mí0£ýRvœ—¬Ý£6÷«¹Oz9é夗ª[P¾ëœ¹sz¢ò‰Ê'*+‡V]nn½¹õæÖ¬j!AÁAÁAÁêêÁ¶m;Ûvš·LuÛW¶îò3``§|³PÝCRå ™™ÛòÚ?Öþ±öìxð­ô¶àÛ‚o ªÛšrØOm €çÅÏ‹ŸŸµò%×L®™\3£¥MÏ;R9#£%W›Ý¥2r6r6rN óóÕ$’GÉ£Ôm¡¿uëþÖºkg;Ìh¿”×àÜíWs¾'L{ŽÛ‘óGÎ9_û¯åéêŽB9(ºæ-søîệïVÝ~µ%Õ–T[Â{Àù00@¾ñ€Ó)§SN§Ò³å]¥w•ÞU:£Ûß°7`o€ºmþ{åß+ÿ^Ñüس£&SkV¾YùfåOêŸÔ?©êêê¦ôõú­ë·®ßc?Æ~Œ}vÄ~ÊyFÓó΢i„i„i„rFIå,¿ß*|«ð­B´g´g´gÀŒ€3”µúͳÔô"õ"õ"³ªäŸF}õiTzjC[zÅxÅxÅß¾|#Þ%Þ%Þåýù÷çߟ?õáÔ‡Sº~íúµë×´·“ÑÙ(óçÕ´èø¢ã‹Ž«ÛŠî+º¯è®K}¦ö·Ãìn“9¹GmîWÿ)ûó%ímªû­ôÔÆ­·VÜZ¡nËÛ[no¹½¥6_;Êö¯SÒ_ΡÒPi¨”ö6{îí¹·çÞ/¿tüÒ1=ÛŒsssÍî7€‡9s¦n;¥—z\êñžÐ=¡{B3Ù¦èX“ΟWS¿¶ýÚök«n —Æ^{i¬.õ™Úß3Ú‡dmýäVœ»ýjö}²¤6«Í¬6³ÚäÅP3¬iXÓ°¦ÊZUWòV~­üZùeÕQ(¿´¤n_Ê/6q?ä !C†T÷tl£±Æ6JÿÖü~øýðû‘þGö™›TÝÖê«[¬n±¬z_3£5™žãÍÜî´·©œ£1=Û¼ÓùNç;Óýf÷³­ç´gØUÊhä–¹2s5©j7µÝÔvSÕmçé¡§‡žÒÞ2¯´ÃŒn3kk)çËŸ»ýjv²¤Öüïæ7ÿ[u›› 6lÊ­Xù^¯rl åÛíÊÙål?°ýÀöô¼u­Câæ›>lʪR%8'8'8§Ýf¸ÈŸ€ €òuIk׬]³vÍô?VÞ¸cãŽ;T·ã°Ða¡ÃBÍ‹¿ªóªÎ«:ê¶0m×´]Óvi~ÔÙÞÜî»ÿíþÝò¹#玜;¢n›©ßL{;ü†y óR·óæÍ7j!dô½Õôl3õ¬ªz­ïµ¾×zÍKžv9‡ÜrÈ}®&UÊ9SÕmG9ô±nô“y«¦¿_Ê™O“ì €s·_ÍîO¥¨sQç¢Î©Û¦ý>û}öûr>ö+äWȯ&3wèÕ¡W‡^—~\úqiNÞÛhr~×ä#ó Ï+<¯°æ­Õ «œ‘Qó¹Kwÿ¾û÷Ý¿«ÛŽ`)X –é?êœ €S¿¹•Ñ-¿´{i÷ÒN“XE9woÚ¿«|[+«ZÔ…•V^X©yôµö×Ú_k§½…'ž\xrAó2?¾ùøæã›êöRæ@™e¤§Ìùíjªr½Êõ*×ÕmG9k^ï!ób;LO¿”×àÜíWsæ“EI*%•’J©ÛæŒ!3†Ì’ó×Eæ`åÛÕb%±’X)»#Øék§¯¾–™€00@>rãðÃ7«{<º7`oÀÞ€ÿgÅÅÅ2÷Púç.Uþ¤êʺ•u+ë–µÑBFë0í­­è¾¢ûŠî™;;‰;$vÐ$¨8ãsÆçŒºß2-`ZÀ´@Ö> O1N1N1Ö<\9íÚÿ´¿ºßµémÓÛ¦wÖ–\ó2ç·«I9ë­ºò(ßÏë=d^l‡Y»œ/¹ö÷«9óÉ¢äqÛã¶ÇmuÛÜ2aË„-rþºÐü `ù¯ò_å¿f_ Õ£ ´iõ¦Õ›Vsßä#I¶I¶I¶š :ê¿Ì™ÿ2Õßm¸¿áþ†ûS?¤ÖdîRu%ì½ ÷‚Þ ´9V¾µ©É9Ò$¨˜m5Ûj¶•ºßšPdB‘ E²# š"N§ˆšÔó\ƒ¹s ÔýîBÙBÙBYÖ–y~àüÀùšì1¿]M+T¬PQíûå?¼xÿðÎë=d^l‡š÷9ßSå­~5g>Y”&$LH˜ n›G:uÌùëBó8µ/¿tüÒ1kKxhΡ9‡æ¨Û£òŠ;@€ü†˜ ßQ÷´êÙªg«žMûáõŽú;êï¨ÿ“p1aB„åÏ<Ûòl˳-™{8þ¢ß‹~/ú©û­UvVÙY%«Ž7;úgn–Êôo?í2·Þ~xûáê~Ëó¨çQÏ£ÙÑ¢®:¸êà*Mê¹£CG‡Žê~WùfsÖ–Ùë7¯ß¼~S·Çn¯»½îöš«)5ËpËpËpu[{þýù÷çózߨ{íP7àÜíWsæ“E©SãN;5V·MYsYsYóܽsPþ·òë/Ê!Ó”|PòAIå[¶©ß’W§ÞÛzoë½UNXUe»<àò€ËÔíÑ1É1É1‰{?€ü†˜ ßÙç»ÏwŸoæ^«NöX‹c-޵øß¥9°mÚs—ª‹Ä”‚oß¾‘ÑãÍɇþ!C†ÔäìhTÔXÿaý‡ê~K9çhv´¨GO=}ôT“z¶:cuÆêŒºß ìØ)°SÖ–YÝÛ·J§5žÖxZzJž®¦ÖW[_m}UÝÖžzzè顼Þ7æÝv¨Ûpîö«9óÉ¢”ö×,î›Þ7½oªýבê<Öª†ï¾{øî¬ÚãÝfw›Ým¦n_ ®5¸Öà3ä7ÀÀùN¨[¨[¨[æfLÿ#ïÌÍ]:ðÏüS“ D“2k¾5ÍgBÕ$¨¨ü¨ò£ÊÔýÖ羟û~î›-êÓ¨O£>Ò¤žSh¬*kßSRCªn#-FZŒLOÉóÏÕÔk}¯õ½Ö«+É•.Wº\é’×ûƼÛu;ÎÝ~5g>Y”R êmÁ·ßÌ+WSÚõ“zNqÍ÷õÚäµÉkuûª¶¤Ú’jK€ò``€|JÝ£RçaÎ܇©þü›oJ¼ùÉÏ×UÔUÔU¨>ZU0›Ñ¹KÕ•j^áy…çÎÚ#Õž‡þéß~Ú{IýH]U¼K¼K¼Kv´¥Ø%±Kb—hR3› 6lR÷» Î Î Î9Yf#g#g#çôŸÓüp5¥=ÓóŠî+º¯è® =Û¥±—Æ^»7àçKPpPpP°îµCÝ€µ­´ÙWæ²neÝʪýBIÄ»ˆwïtãNCÉý³ûg÷Ïšï%¼xxñðâêöR¾Cùå;ä7ÀÀùÔüÀùóUï +ÔªP«B-ÕG¥ê†ºí4Úi´“êÏ¿´{i÷Ò.ýÈÓ õæÖ›[onÍÜ‘æŸ8u\”“°2Ë[pb‡Ä‰ÔíQß[ß[ß;ýç4?\MiÏVÛgJŸ)}¦hCÏ–v-ùò+äWH÷Ú!pÎ×Ov”Y/R/R/RÝ6•3ïæ­;Ûl?°]ÝuÐýA÷Ù}• .\2˜ ¿!&ȧ|fúÌô™™þGØ.“]&»LVýåã]u{IÿÜ¥[m´uêOV¬P±BÅ š<ºÍ?pêcU)›Í޶Ö4¬iXÓ¼5ô×Ú_k­­n©båjJ}–õ êÔ+¨ºåÔÃçVŸ¦œ)V]-¥ŽÖt¯æhœæ¼ÔÀš”9õ»ªª”­%oÝi¼ªóªÎ«:êŽÈz±õbëÅšŸå´¯#c[c[c[`€ü†˜ ŸRΪ¨îéÚ?Öþ±öÔ?Ÿ¹‡Ý韻´¿uëþÖª?9(lPØ 0àôì%õÜ®ªž\xráÉ…ìhK3fÌФf¬ÎX±:£îw•ï¿fm™Ó~§6uy¸š²ª}f·3>g|Îø¨+Uý‡õÖ˜v ón;ÌÉ󢈘8;Êœz¶ZU;vÊÜ–¿ø^à{uC£?zúè飧ÙqUF‹:u.»£YeÍh>—6t 00@¾¦îiׯ]¿výªüuïե硪º¡nÿ3wišï“\upÕÁUÙqŒº;r:åtJÝoyõ<êy4;ZѱÇZk¡IÍttèèÐÑAÝïž½töÒÙKY[æ´ÃÂöÃÛo?<«B,]ºšf[Ͷšm¥nûª¨> znõf“^Nz9饺²¥~ëZ÷ÚaNÀ¯M^›¼6!ÎŽ2§ý„Ûýo÷¿Ý?s[V¾¿®nËã ÇŽ7ÌŽ«R9õ@VͶ®Žïß1¾cÔí¥Ñ†Fm Èo€ €ò5uóó•u+ëVÖMùßGþ9òÏ‘Tf˜×0¯a^i?T}ù6òmdÚÊ•o¦þdÈÖTƒÍjrŒù'^:oé¼¥órþ¿Û$·In“4©™´cÅÅ;ï\¼3kË¼èø¢ã‹Ž«ÛãÌ3{ÌìÁÕ¤êÝ“wOÞ=)õ¸ÔãR5Ÿ;9«Ä¹Æ¹Æ¹¦àZÕùmç·ß¦«í0'à´gƒ&Ö¤Ì=ä=ä=äê¶yqöÅÙggG=´9Ýæt›ÓÙqm~ØôaÓµój×UÔUÔUh~–/¬¼°òÂJu{é¹·çÞž{ €ò``€|ísßÏ}?÷MûAö„"ŠL(¢úï»ßýûîßÓ³—´ç.Ý´zÓêM«UÿoË7-ß´|Cœþ½\ér¥Ë•.ê~Ë´€iÓYû<Å8Å8Å8í¹‡Ó³G¯¯¯u¿Û´IÓ&M›dmË·émÓÛ¦·º=*ËÃÕ”¹VÚŨ‹Q£œìÇÒ~=õ¼ªºÚs2NûMk`MÊìêîêîê®n›iÏ®I™ÓdÔå—\ n¿í¦¶›ÚnªæûUŽo¡n/ʯ(q¿ß@‘öoê¥Lÿ|„iÏ]ê<Ìy˜ó0Õÿ»lⲉË&fßÑé^üÃû‡÷‚.½4öÒXÍ÷ø¥ã—Ž_:æLÉß||óñMuÛ/\2¸dpvÌ’«W“’rÖçÔoçÖ|ÀÊ6_»fíšµÕÎÁ<¶ÑØFcév;Ì™2§=Ÿ+°æeÞÖu[×m]Õmóß+ÿ^ù÷Š&õ0Æ~Œýûœ¼f§ˆSÄ)¢º}-Y³dÍ’5šïÅã¶ÇmÛêö²½åö–Û[r§ß@í0¤êª*׫\¯r=ý‹Í94çÐÕíT=[õlÕ³êÚúò+äWHó£Ë?pz¶`¾Ñ|£ùÆÈÇ‘#kRÎ$Û$Û$ÛÔs+j^3ioAmj^Ãi²Úߺ¿ukMΦn_Mé?_©‡‰Î¾¾K9°¹º2”9Pæ@™Êa«³ê¸´³ª”;«æ~VZpwÁÝw €³¯ÌÊY~Ó?@“z,KÁ2í¯JdÕµÖ4¬iXÓ´kén³»Íî6Ó|_êFVPºÓùNç;¹ÓÈo€ € P>MÿcýüsàŸéÌr0ä`ÈÁôo?u”¥ùÑå·8í!5eˆ›¹rNÛ5m×´]YI¥¤RR©ì{—Q9ÌrÚ[–GÉ£äQ\Mé»$vIì’´1VF°Y»÷äšÉ5“kÎ1›c6Ç,ícŸ1dÆC2º÷¼Ø«-©¶¤Úu[«÷¶ÞÛzo£=£=£=3Wæô× °’rxüŒn3Á9Á9ÁYÝ6mÛÙ¶³m§I=(K¥nûz‘z‘z‘š×¹r/iÅ!k¥WÖŒê^ —.5\Êì¿ù00þŸ‡Âª¶Ú:hë Œî%ýÛí4Úi´pö½M›šrØÛôl3Þ%Þ%Þ%£ÑoÖFA¥Ï•>Wú\F·™žÈ­×ú^ë{­ÏªðCW¯&U¯ê¼ªóªŽ±­±­±mzÊ“Ñ÷qSS”­œc8í½4žÖxZãiÙ1”·v¶ÃÞ z/è½ =õŸÑ·ÿUgWÕ÷Ö÷Ö÷&N{kÊÁ³¶´šPŸž’k2pxñðâáÅN9r:•ö^®†\ ¹¢ù™U~­AÝ^:5îÔ¸Sc`€ü‰˜ÿ“þHéé¡§‡žÊèöÓ¤15¯¯¯˜œ9®ÜÝZæÎBz¶£ŒuM ˜0-öÖL#L#L#æžWx^á{uïÕ½W÷[…o¾UˆÙ³1f£2rÛlªP«B­ µÒS§ýOûŸöW¾«|NùßÊVÔÙ¢³Eg‹ÿ§ ˜0-êêêÆÕ¤Éñl2Ød°)íò¤~ËPˆ*[ò¼+Ï ò¿•ï²ïóÝç»Ï·C¯½:ôJÏñV ªT)èmäÛÈ·‘šQÞj‡'*Ÿ¨|¢rú[݆cŽm8æ;ÆwŒï˜¯µ¿ÖþZ[¤)ãüݱ»cwǶ¾Úúj뫪¿»ÿòþËû/§½µ©'¦ž˜zâ{ï¾P~uFÙÒ³eåŒÝÙW'ÊwèÓßZ”Cˆ¿6ymòÚD9tb‡Ä‰>ú4êÓ(åÛê3{Ìì1³Gz¶æêîêîêžUgöÆá‡oV·¯åƒ—^>˜»;€ü‰˜ÿsxüáñ‡Ç§'¢ÈÜ£ÛôDÙ1ohþ €•”Zê7º²–r^[eÈ‘õlälälä\"Û(ß[½µâÖŠ[+²¶ÕéêÕ”ž³–ölÄÙ§Žqã:Æž>zúèiÖQh‡ÅÅŲ»†™8£ÛÌܾžmy¶åٖ쮓àÁ7‚o(¿”3Whßž}{ö홵=ÒºOë>­û¤nþËü—ù/ãî "&Àÿ(ßKû®ó0çaÎÃ2÷W9$fÚÛOý.iVW~€So³Êõ*׫\ϪGùÖ‹­[/NýževÔŒòw+?ªü¨ò£¬"Ì7šo4ßèWȯ_¡ìˆHuõjJÿYëþ ûƒîr&XRÖä÷ˆïß#²ïˆ´¿*ßûo´¡Ñ†F²ª„Êa‡—Î[:oé¼Ô%$žÕfV›Ym²#N»Ìª¨> zVµí à à `û}öûì÷eǵ©|ãÉš%k–¬É޾HYªûmp­Áµ×ü ?#&À¤ý0÷ß+ÿ^ù÷Jömý‹õ/Ö¿ÈÉ#ÊÝ­etûšìEùžî„„ RÛÑGù“^Nz9éeì’Ø%±Kr¦f”ÁžÛ$·In“Ò?ÿ¨ºy[•ƒ]ÿðþáýÛ«)gj@EëÔ+¨W0 "¥‚zõ ö™ÒgJŸ)ÊAŒs&æÉ+íP¹MÕ·À3ª®¢®¢î†ØM½å[Ñê–ü+ûÀì €çΜ¨ú»fžfžfžYÛæS ]ݵºkuWÍCßþÖý­û[gß—lÒ~ë]ù¶:wtù00 EÒ~Pžµqȶ®Ûºnëª|S³áþ†ûîWÎxj¸Ôp©áReüÓ~xûá퇯)³¦Ìš2Ê9,s÷*Õ7álzÛô¶é­|¿YË)‡ VþûÀ?þ9ðÏCsÍ94‡·Á´¡mu<êxÔq´Óh§ÑNmN·9Ýæ´rni倨ÊÀRùß–á–á–á­üZùµòS~qáX‹c-޵ø¸ôãÒKi‡é/çÚ?Öþ±ö^ë{­ïµ¾fûšík¶WÆ´Ê(ºFŸ}jôiù¦å›–oÆ™3gî}Ñû¢÷E]º^²¯_UÎ÷¬Ü‚ÃB‡… -FZŒ´Yæ@™e(k[ù~­² ¤_oJ¼)ñ¦DÚ_›Èî¶=ùÞä{“ïu1êbÔÅHùf¹Iq“â&Å•-\E+Gƒ˜80q`â®Ò»Jï*­"»ÛÏõ[×o]¿¥.~Ö|päuÀÀþ'g†œ)9qo^o{yñ æ•£àzÉ+½¨º35¶ÑØFcåç–£ü²‚jIœN9r:E{00€Ö9wäÜ‘sGTŸá(GkˆsssÍouïïïR±BÅ +¨ÖÌÅÙg_œMË00€ÖI1N1N1Îî9’ó–SN}8õAµšŒh2¢ÉÞý€00€–òŠñŠñŠQ}’Ó·gßž}{æ·ÚPµjmœñ9ãsƇÖ%``mULQLQLõINés¥Ï•>—Þy /^<¼¸j=4mÒ´IÓ&¼û €Ô€ €´šüWù¯ò_óó@Ћw.Þ¹x§ê±Ë£äQò(ZR#&ÈTŸç”ïP¾Cù_k­ýµ¶®õ· ß*|« <ÒÔÇ>T* •x÷ª€ €ò€P·P·P7c[c[cÛüóð³9fsÌRi…ZjU¨õiÔ§QŸFÑ* Š˜ ÏP}ªc¸Ôp©áRÝ D•GTÖ­¬[Y·ÔÇ{xüáñ‡Çóî/Ô!&ÈcòÃ|ÀÓvMÛ5mWê£5tÔÐQC‰~6``€<&Ú3Ú3ÚSùT§i“¦Mš6iå×ʯ•Ÿn„£ï"ÞE¼K}tŽE‹:%ú@zÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀt00AL @GÐÀÀtðÿ\¿‘îåf.-·riñÉ¥Å7—–Û9¾ÜÉ¥ån.-÷ri¹ŸK˃\Züriy˜KË£\ZçÒò$Ç—§¹´<Ë¥Å?—–€\ZžçÒò"—–À\Z^æÒò*—–×¹´¼É¥åmŽ/A¹´¼Ë¥%8—–÷¹´„äÒò!—–¹´„æÒò)—–Ϲ´|É¥%,—–¯9¾|Ë¥%<—–ï¹´DäÒ™KË\Z¢ri‰Î¥%&—–Ø\Zâri‰Ï¥%!—–Ä_’riIÎ¥%%—Eî,Þri)˜KK¡\Z~É®…t0è €•8Áò €¿tùÒåK—ëÞÙ¶ÜÈ¥…9‰™˜Ùˆµ6âü3qþ™8ÿÌ=ü$—–ü3÷pþ™u8ÿÌ7œffŽaÝ›]8·æÎ?³ 3¯03 3—0³3‹pnÍ"œæfæ`æ f¶`æ fžàÜš'˜‚™Xëgþ2ê˨/£tö `@v A :‚t0è`ÐÀ #€@G€Ž A :‚t0è`ÐÀ #€@G€Ž A :‚t0è`ÐÀ #€@G€Ž A :‚t0è`ÐÀ #€@G€Ž A :‚t0è`ÐÀ #€@G€Ž A :‚t0è`ÐÀ #€@G€Ž A :‚t0è`ÐÀ #€@G€Ž A :‚t0è`ÐÀ #€@G€Ž 2¬„ ï_¼ñþ…šAî"2ŒÚ‰È0`h'` À¡€€ #†v"2ŒÚ‰È0`h'` À¡€€ #†v"2ŒÚ‰È0`h'` À¡€€ #†v"2Œ8«œ?qþÄùÊ:\|hñ¡Å‡Â¨™Ì!2ŒXsÉÝ’»%w+¡apæF¬¹Ôïþ¦08ý€€ #Öœ2ÐU†»%Ò08mÀ@†g-Âà¬B dpö! Ö0aÀ9ƒ08£€€ #Îy„ÁéA dpî" V‡È0`íAœ0aÀÚ‰0˜È0`í—?Ã`` Àó–üFœwévLŒÑ3¢gDÏ{õïÕ¿WßËÖËÖËvcÓM763?f~Œëg×Ï®ŸÝœÜœÜœÖXXcaÍú›õ7럞~zúééf<˜ñ`FŒ]Œ]Œ5 ´°nн0˜Y&94949ôÙÝgwŸÝ]çµÎkW£¹æ6š["4+ج`³‚›¢6EmŠ ü%ð—À_£££9 gë݃ €¡‘‹^,z±Èí½Û{·÷%´À‚Š *.¨øæì›³oÎrv@ö!Ömy7 &F†‰»ÅÝâîZÁµ‚k—Ðb6ýmúÛô¿¹â抛+8k kçy+ . =—tUÍïå–Ù8k´õ¨j+¼juðjÐôÉ»>}m—*..ööi¯¼è5ÓfØq‹öëꯙ^¸áHóU Bôý¨Uh¿ó'Ο8‚yØ”"VÌÞyé¤h2G!¹tµo”ž 7£ë”r#϶ ¸ù¶G•ÆFYÆVÙKÍ@Û$O8žpœyF£ ž”ý]òì:©‘,A6br›2Ù÷¦g7~øæÖk/–輫áoÕ§—]Túg¹+½¼àä‚“ NÖ-T·PÝBšTÙØþcûí¸ïᾇû^K¸–p-A9º:KFYYY—v!íBÚ…¤]çM’Lþ*{Ýϯ—¿ÍŽÜŠ{Ó³ö­Ô#±qű²ñeJ¥}D½:öêØ«£4[š-ͦ%°°°äÏeK¯-½¶ôêV [n4ù\î2©Ë¤.“6ÝÜtsÓMáŠpE¸Bݲ°°°°°ä‡eíÖµ[×nmß*¾U¼&÷ýüúùõóÛõb׋]/ä‹å‹å‹©[–ü°,ù{ÉßKþ¶ªlUÙª²&÷.ý]ú»ô?h|Ðø ñµ¹×æ^›Kݲd÷¢Ú7ý¾é÷M¿S3º·\˜qaÆ….…\ ¹d ÙTþ|>šø?Ó&[„[„[x%x%x%´ŽmÛ:V“.~¡ÓB§…NþAþAþAÉ[“·&oebê´…Œ 2Î`¢ÁDƒ‰i×­l¼cóF…þ.ÎöMµ9úýÏ`щ.…틞¶ì8¡Áé´®öâÚ‹k/{ö4ì)­@~–à˜à˜àx×ã®Ç]‰¿Lüeâ/š|.÷­Ñ·FßRu©ºT=Ú)Ú)Ú‰@·Å´ŒiÓòªëU׫®ÔèkßKÇ.»ôöŒÛ3nψß¿5ž¿ñÐq"*DT8çpÎáœC‡]vuإɽÄ¿9~süžœrþÉù$Ÿ$Ÿ$jYKµÕ)ÃBjF7(ƒÛŇZ|(ý=òçs>ôM­€vVh¤~¤~¤þ…É&_˜ÜYÑYÑY£!£g~ùuæ×Ç…~\8É1É1É‘&«ô|Âó Ï'¤]{£;Ö+RåxTµaZmÉ+¡¯ºuxõ!UZºö‰ªñ¯Éµ´:¸Xp±àb´PJŒLŒLŒ|èýÐû¡·›·›·›·&ŸË]gvÙuæ¥"—Š\*éééM  Ûâ&ÄMˆ›p«á­†·ެ>²úÈêšÜK 6tØÐaÞ¼?xˆÝ»!v5 €nûñüÇóϯ¬¿²þÊz'W'W'WMî%¦5žÖxZã'œxp"Ñ1Ñ1‘¼!Ö=y7ôM­@^©î¨ Q¢.ž‚§àÙûj﫽¯jÒÅO¶›l7Ùî^è½Ð{¡ òy‚<¿5ßûûû´kédR‡ êåõÐ÷'ëP—Aö-özØï²´H»Þu×ý]w:;P•Ü9¹srçg'Ÿ|vr¾Ý|»ùvš|.·]ØvaÛ…§÷žÞ{zoxXxXx5 ¥7×Þ\{síÄá‡Ož.N§‹Íº6ëÚ¬kú[W©‚TArÒwÒwÒ_usÕÍU7¯Ù_³¿fŸT1©bREjrKBï„Þ ½ï¿{üîñ‰u&Ö™XG“{ çDçDçD©¨TT*Ý.º]t;jJÏZ>kù¬åâŠ(>nȸ!ã†4lÖ°YÃféo]f6f6f6ýG÷ÝôÆ¢‹n,êÛß·¿oE²"Y‘L @n‰éÓ)¦ÓÕ W7\ÝðOÑŠþST£GúŽí;¶ïínÿsûŸøµñkã×RÃH?`Ý ¡ojòîɈ-[*¶Ôõµ××^_;Øv°í`[MºøQ£F9ø¸û¸û¸Ç…Æ…Æ…êj#ªT5¨jÚµñÈ®÷?6á:ýª¬oUêaÛxlÚµñ¹ê窟«Òý@ÚR†¤ IØ#°G`å“–OZ>I“Ïå¦m›¶mÚöhÔѨ£Qa÷Ãî‡Ý§†u[DlDlDì颧‹ž.ÚyGçw”ÈA®^®^®^F<ñ`çrKbBbBbÂÃ×_?|íîî®Ñˆ#í»¶ïÚþâ狟/~޼y!ò5¬Û>-ù´äÓ’ýöØ?ÀÖÒÖÒÖ2gî"ʼ/ó¾Ìû%_—|]òõyÃç Ÿ7ä\@n‰›73næ­n·ºÝê6²×È^#{i4âHá ‡6ô¾í}ÛûvìòØå±Ë©a¨Cœwé^è›Z]:UñÕâ«ÅWóµòµòµ=~ôøÑã5éâTtPÑkO®=¹ö$ævÌí˜Ûy½~"*ETЍ”öQ ðk³~ù!úM½ö_ãìÜ´²º:©²§Êž*{bÇÄŽ‰C‡`©°TX¾9õæÔ›SëÿYÿÏú 46hœ¹Ïåz×ë]¯w}¿b¿b¿âÓÈO#?¤‚ó°EŠEŠEw§ÞzwjOãžÆ=Kh™å+—¯\¾2ônèÝлœ.È-É=’{$÷xvëÙ­g·æœ?rþHFéÖ¶[Ûn§ÝO»Ÿvþ*ü5œw%5Jj”ÔHHR„» vì&hÛ½Äö‡ÛnQ(¢PD!Îä–„A ƒÝõ¹ës×gb¿‰ý&öÓhÄ‘;Îwœïˆ_ůâ×è¦ÑM£›RÃPÊ\ü£âŠ?*>ùãÉOþHÚœ´9i35™3t;ôM­€nŸÈ„˜„˜„˜û÷=î{Lé?¥ÿ”þštñ½–ôZÒk‰ìììMÔ°¨aQÃòJ=¤¸¤¸¤¸´mÛ¶mÛ¶j‡;ž8`d³-ù-úM½å|¬iuõ3°ÄÀK(>(>(>ÐE@&]T\T\ ö ö öÙúÛÖß¶þVi\¥q•ÆeîsÙ<Î<Î:ú(LÂjX›%O:ŸtþˆË—#.Yо/y´ÔÃå·ê-*Ÿd}»õÆ çìwØlüÑæ”Cr“ë>hÒ¡”ŸÑ»Š5ßÕìäÙɳ“Ö…- [Æy€\þ4)˜T0©àÃØ‡±cg”›QnF9F1ìjØÕðâí‹·/ÞŽ<y8ò05œ?e.>Þåx—ã]RÿÖÔBS Må«cÙ"ÿ„¾©Èo§9iNÒœ¤9<>òøÈì_fÿ2ûMºøNB'¡“p~ÿùýç÷G\ЏqI;z½|½|½\ÝQtuÞÛ´K~Ž~S¯ï÷4h²J]]08`pÀ€î²L¼"^ÿqóÇÍ7ïºgèž¡µú×ê_+“_Ø*ÿ±üÇò7¶ØØbc‹ ß ß _ÅÅŪ9wùµðká×Ââ7‹ß,~KÿÙÔßgø—ÞFûãÏVê>|úàš¯\߬QïÙüùþþ fn=iò•u_ö}ôo—ê]­vvÝU~CFÛØ´³ÓÎN;û]ú.}—8³ ((¼¹ùææ››ë¯_¼~±Á$ƒI™œŠ¢Þêz«ë­ÞÿrÿËý/?õúÔëS/*XˆõÅúb†¿ÔUú¼é+óߪ­ïßeòÉöó­öµ±Y½¥ºüÝž=wîdx]rÁ² O.»w¼DÍK£†/\W¾nÃv-2ü&Ùº1ëÆ¬ß3¾g|OÎ,hƒdçdçdçgož½yöfþúùëç¯×hÄ‘Šm+¶­xzà駆߿΄VùBæàf}šõiÖç?¯:¼0aþ‚úÌ*ù3ôM­ YJ–’¥€3f,¼hð¢Áštñ­Ž¶:Úê¨W%¯J^•¾ÝüvóÛÍÜ=º§IO“ž&©+­ì/G£†a„¾ªë£ŸÚ—­o¯v ì€ € ®È>_L¿˜~1=4ëЬC³¬³þÍú·Ì}.ë­Ö[­·zµëj×Õ®¯Ö¼ZójMÊã”Ç)©áìååå6¡è„¢Цÿ|uû¶Ð×ÌyÎŇüÐ$èÍèzlÓÓçëTlêùÏžŠ-Ó_Ú³3ÎÎ8;ƒs Zç²â²ârðËà—Á/·ZlµØjQé@¥•drÄ‘kæ×Ì¯íØµc׎]!‡C‡V¼U¼U¼¥š³Û'Ù'Ù'™£‰£‰£IºâÞ¿*ÞªâT»È¸Ë>Ûc™É 7Sëú­æþ²Ë¼‚sÓ²í«¦¿uùÊ|e¾2Î5h›”1)cRƺºº/¿¾üúòëšä¶olߨ¾9zòèÉ£'ÃŽ‡;N 람Àß~_ø}¡êoí8¹ã䎓ԧ&}S#þY)åRÊ¥W¿¾úõÕ¯«f®š¹jf “&%L2×Å7îÞ¸{ãî‡ûîs¸Ï—U_V}Y•3G‘Ü(¹Qr£*ÆUŒ«üd^½š„Z'èM{=fN½™U"Uk¯Åß-þnñ·b£b£b#× äŒoC¾ ù6ädç“Ovn9¬å°–Ã4ùlñÈÅ#|^üyñçÅ“ß%¿Kfàè,sÁý÷¤ë‘º³õƒÇ.£ýYë¹û×gþ𓡝ºõ¬÷7èØ#xió‚é9Š•VX9ªqTã¨Æœ}ÐR ŠEÂÇ#|<²g鞥{–Öò¨åQË#“#Žœ,²üÉF6 :tN1S1S1“jÎ*«_¬~±zzÎE…vE;ôo¸yÙâcçr2îM{ÝdÎ?Ùjó§ÎÉN¥ç(ܸ7poT$©HRÎ>h)k…µÂúMà›À7ë¯?¾þ¸ÁQƒ£G39âHïz½ëõÞqÿÅý?µùÔæS*8¯Ëh|&üLø™pÕß 9r:ä4õ™Q„¾ê§ÏXÅXÅØ û û û 6tÚÐÉÈÝÈÝÈ=s]|í³µÏÖ>»·ýÞö{Û‡þúWè_Š$E’")k‹|Àø€ñŸD¿Fõ;•Ü›4bE›*D¼i¯£× [ÒꋺóxqÝÅu×qq@n‰ø'⟈Μ 8Ðq^Çyçi Ï)9§äœ’OÚ>iû¤mÒ‘¤#IG¨áŒÚýy÷çÝŸÓ®çr–¦R© .Ž]®•  qoÚë¹#¶ªÕmè‚çf5ÓÓŠ¿~ üBK€¼âK½/õ¾Ô;´ëЮC»¬[7¶nœÉGœôœôœV;®v\íøÊí•Û+·”)RPÃé—2-eZÊ4÷iîÓܧý?÷,÷ÙôoTgÅÀ“†Úúª[ÛÌÝ'ßmVÓéšKdÚÇee`e`eðåè—£_ŽÒ )d YpxpxpøVÇ­Ž[+½ªôªÒ«LŽ8²Â|…ùŠ3vÌØ1#dcÈÆŠ7Š7Š7Ts^‘ѸÝÒvKÛ-ýÏW }Êû”÷Q)‚AÔgzú¦pf=WîÝÈÆŸp7ýë륺]²ž¯®>;%vJìÄÚ ªTT©¨R²ò²ò²ò=»÷ìÞ³»&‘ðÔ)S§Lò ñƒÆ'ÖH¬‘XƒV•2+eVÊ,×+®W\¯¤]Ÿ=».?c>Ó}õ³ÚV!Úýª®]—ßœX/¸þ¯ô.¤}¤7úÝèw£mò¢o“¿Mþ6ùäø“ãOŽo¹¥å––[4q¤Ùâf‹›ÄÄÄ&¿J~•üŠVû#öGìn–Ý,»Y¦]Ÿu}§[m(£ý¡¯ºu£S+ãOU3hnv±–Ãÿó•²!C‡Ð6 QŽ8"û(û(Ûslϱ=ÇjùÖò­å›ÉG¦•ŸV~Ú†è Ñ¢ƒvíÚ­pS¸)ܨfí”þøG§~tRýù57ÖÜX“šL¡oFg±ÐØÐØÐØýå÷—ß_Þr¼åxËñ™ëâ ÷î5ÜëÑÓ£§GÏ·Þ6zÛHa¯°Wا§ ›;lî°¹ƒê6G~¶4«R™@7sëΆæÕ+è«Öêq£ãFÇhù bÜcÜcܯ•»VîZ¹ÞüóæŸ7š<ƳvÌÚ1k}ßû¾÷}?,~Xü°ü\·I±I±I±CJ )1DmTÙ[*yr¤8Ú²o^ }Õ­ûýò¯gõAi·–Kw.ݹt‡kòºˆ±c#Æž‹?.¾ã©Ž§:žÒä^böÇÙg|RçI'u’ö%íKÚ—Ÿë6j|Ôø¨ñ e e ej¯n4©å‹&›¬Åy7úM½n´{æmÇêkŽ›~.íÖòèù£çžs @^÷¥Õ—V_ZºvèÚ¡kÖã¬ÇYËäˆ#FzFzF««¯®¾ºú«!¯†¼’r'åN uj…ôÀ—.;\þÉWÁ‚Ä 1H¤&Uúj‚8Û… 6ìh¹£åŽ–³I²I²IÒäÏÅ“VLZ1)080808e^ʼ”y©÷ïï¯v`ê‹vl.åfnø¶oŒ±ººeþHÈ+âÅŠ;tËï–ß-?—ª.U]ªjò¹¨ø bbåÄʉ•óCÆÄÆÄÆÄZU²ªdUI]ÍT;ÞÿÀ”Šv÷ØÝé¨ѯêº~µ9'v^J»…<÷tÜÓq\w K¾Íÿ6ÿÛü“ëN®;¹®åÝ–w[ÞÕhÄ‘2‹Ë,.ð6àmÀÛdÿdÿdj8ç¥?î>¡û„îþíׯ7^1[1[1›šT"ôÍ*À¹Ñ|W…¯ _uêᩇ§Ú·´oißR“.~ÇþmýÛú·=ûâ싳/Tf\týáUÝ q5_w¿W½]Ū5ìÓß§¿OÚ6äE Ë–%,»×ü^ó{Í'U™TeRM>—ûüèó£Ïq¸8\ý{ôïÑ¿ë^¹–w-ïZ^] tj<ãq•ɺúª®gLô½V±ñ¯fÇôÕ¾|¯È½"÷Šp­€®ŠY³*fÕµF×]k4°ØÀb‹i4âÈ1CÆ ñõõõõõïß/^§¦Hþ;ùïä¿;”êPªC)u5PÛg‡•‘ºúþdhèw«6œúžv«öööàZ]13bfÄÌóeÏ—=_¶cpÇàŽÁ8"Ìf OÊ<)ó¤LÒö¤íIÛ©áì–ž8Ú/Ú/ÚOõ'W^=xõ`êÐ7;k…ȱ‘c#Ç^lq±ÅÅŽ-[8¶(‘¥Þô¯fǼ¿Y°~Ø»w›Ÿ NåT©„S Z2膤JI•’*=ryäòÈeÆË/g¼ÔäSر‰cÇ&m/Ú^´9&rLÞ­™Ýuv×Ù]GÝ‘v{²p‡Y×üý¦^Ï®xBƒQ¦#j÷( ®~BƆŒ ËõùAÜé¸Óq§o…Ý »æÒÝ¥»KwFi8¤á†Þ5¼kx׈íÛ9¶sÞ­×i®Ó\§©å÷åôI†æŸè7õºñ°õ½/ê««}}}—è²Ñe£Ër}@~U+ªVT-™³ÌYæÜólϳ=Ïj4âHù©å§–ðÛƒßü–h”h”È„†Y,=°ÜYî,wVýÉW ^-xµ€:<âü‰ó'}³°–Šþ#úè?ÄQâ(qTŸ„> }2×¹×e<ÌМà6ËÖ¹·/^r³^Á{UkûG«­~´¢õ€îIžš<5yªÿþtZÐiA'Mþô²·±·±·9u÷ÔÝSwÃW„¯_¡ý5pïÙ½g÷ž©}ëwðL£*îù3úM½žµóÞêÍ ^Ÿ(yä'CY«v¬Ú±„Ý »vsM@~“°.a]º{Î÷œï9Orœä8ÉQ£G®÷¹ÞçºØVl+¶ŠŠŠ×þ8é|Òù¤³º#ªÓoÒ…5íógô›zm¼V~þuµÔïF¿ýn(Š@®)Èob6ÇlŽÙ|­Çµ×z ´h7ÐN£G¬ÆX±ò=î{Ü÷x|·ønñݨaM¤'î_²Éþ%U2åaÊÔ‡Ôar·änÉÝ}³pžëëëìÝÑ»£wÇ!£‡Œ2:=]ù ãö_êß$¸ÍÚõæÞ-ýjªÖ¶l¨l¨l(mòƒ÷÷÷À?¬p]áºÂU“?½l¢m¢m¢–>Zúhé°!aC†hÏ‘Fˆ*U@]É›vüç÷ŠUæÏð÷iXŸX¹ž¾Ýûa½ÕÕØ¼òóÊÏ+ÏH²H²H²x4ÿÑüGógþ1ó™h4âHÇ"ŽE._4¾h9 r@äí9Òw}Þõy×G]É-¬Ϝїè7õÚêý’N‡ýÕÕØ!ÛC¶‡l¹‚qBœ'øö)ìSØÅÝÅÝÅ]£GþòÇ?¼‹{÷.Û*¶U,¯9e@ÚpÜ_qÅýõ“P³Ûân‹‰Þÿ#õ{À„¾š#ÎÃâGĈáêêZµjÕªU«ªv"_/ÞÖ²*‘mÖ®ß0«™§jm½9ôæÐ›´Lȧìö û·MÞ6yÛÄ£ŸG?~†G ÉÜŸ^–#-GZŽÜo°ß`¿AhththtnÖ8§qNãœTKX~aÕ{úæÆ<nÕŸÐWu=êë‰ãµÕ¾çt÷ýÝ÷yðÉ3“g&Ïôì?Øð‚é ¦/˜®Ñˆ#…í Û>uôÔÑSGÃg…Ï Ÿ• ‡¤§ÐSè5ñhâÑÄCµ„õ› íTήÁ÷;{}U×µ?Ll¹ÊEÝùýðýÃ÷ß¹j©%lMØš°õÞÔ{SïM4{ÒìI³5qÄ£G±ºX]¬õ5êkÔWjX´à›f7Ínš©þÌóBÏ =/Dí!ûçýn}Uª„UªÝ‡I‹2†¥.ÖfÇ:åÒÈïm’Ô}4¦ìJÙ•²‹– PÜPÜPÜxïðÞá½ÃÖø­ñ[ã+ûWö¯ìŸ¹?½Ìþ5û×ìßí·?Þþ8¤YH³fŠçŠçŠçÙWüx öÝß)ÍÅ(Ë©½i¯»\škYÕAµö 7üÝð÷¤ÕI«“Vs¡ÔIYœ²8eq`R`R`ÒŠÝ+v¯Ø­Ñˆ#r¹üÈ#?ŽüëÖ-,Ûß89s<æxŒÚò<ßZæZ ‚޴צ]í§öl¨Z{Ýܺ¹usã¤-É2É2ÉòѶGÛm›Yof½™õ4¹—èâßÅ¿‹ÿ…ä É’###©a¥´àác†>Fõg’ß$¿I~Cí!ûçyoÝߺ¿ýÉðîVMêUßMX›}ëaêDW¥Zóa-ÂZ„µ e~ö·—"I‘Z<´xhñ½]övÙÛ¥¶¬¶¬¶,sz¹¹¹mpØà°Á!¨UP« VŠ1Š1Š1š3E–"K‘™ë›ë›ë«î·WÑqæ—wÓ³vwxzÚê^ù·fcõòµç3ÏgžÏ¸,ÐNÑNÑîm—·]Þvñ˜ï1ßc¾a°a°ap&G©gYϲ޾¨}Qû¢BƒCƒCƒ³ª˜Ñ£FT·ßúös‹íj@¸›žµ÷–ÇW¯¨«Iß¾ |pYÒ/Ù=Ù=Ù݆ÿ ÿ ö,س`&‘p›§mž¶yzjù©å§–‡ >&Öªº8¡PB¡„BªÿwvÂì„Ù ´Fd7à<ïâ‹ /.TíD¤æ];5òÔž¸4ÔmàÁæÑKÖØ®­Q¢×z‹S&ÖõÞÿaðÍ`SÉ×z×-F–}[æ×ÖW+Ÿ4Š[S¦Yÿš×¿U|µ¥­6ÀGKµ»]¿ŒjÍß)x§à‚´L@ú}YóeÍ—5‡px@ã¾û6î›É¿½ K–0\5uÕÔUS_xUàU”K)—R.e´÷K5êNZl­ØZ±µ¸ ™tSqSqó}¿÷ýÞ÷ÛVa[…mª«R¬J±LŽ8Ò߬¿Yÿí'¶ŸØ~"¤fHÍšŠE€" £…òXï±ÞcýO†}žÝÜ«ó bÝŒ®ë¶˜ºlýWÕú¬Z-´Z¨òk\ €ÌIYž²4 ÑÎøé¥>Gm/©–y¯Ë^—½.´L€&¾ù|óùæãeîeîeÞêt«Ó­NkòØ¢þ‹ú/ê0=`zÀôd1YLÕþá÷2åeÊËòæåÍË›«ngÔœã_j[èfnÝä—>í+ü¥Z«{¾ìù²ç me’ÉŠäPÓPÓPÓ½“÷NÞ;¹vdíÈÚ‘™q¤…Q £L7˜n0 ªT'¨ŽÂEá¢Pû7oôæèÍÑ›Õm­ñØõ“.6"ÐÍðÚxO“;öeUž\]OµVo™Ü2¹eBÃd™ŽŠŽŠŽo‡¾úv¨ÇaÇ˖/[¾lùÌÝKÔMª›T7iŸß>¿}~¡C†>Ô½ SŸ7~Þøyªÿ7é@Ò¤44d7à<¯_á~…ûVíDbz ókm»i´ç°Õ­Â«»–]\úÞÿ¾MìièVÚbݧæ£j ¿q¸»WcÃ'út°+ên]x^|“òÕ=”ï§>í €¿n¼¶eÕšwss£e²VÄ•ˆ+WÎ:èü¡NÞ¼;yk ÏJž•<+ùñÇHš4;i¶r/·×Þ^{{íOÞ/¹oÓܰ !®&ë©W[Y~PwF’¶'mOÚN;dŸ/»¿ìþ²û°ûa÷Ãî×4^Óx&÷«:¯ê¼ªóËÏ/?¿üœr6ålÊYå^<ïzÞõ¼«úóUF8Ö,åj²®ÿ~žbÏ9Õºm¶²ÙÊf+iá€lä£ðQø¼ÿ~üûñÛZmkµ­U•6UÚTi“ÉGÌÌÌÌ̶/Û¾lû²²!eCÊ*ž)ž)òðIªÇ(÷‘ûÈò.õÔ~SûMíGƒBÎ ÎóêϪ?«þ,Õ®$寑'Û<Í݈Të*Ë£Yâz‰Ù3œO7í­.ÜU=ŠÊ Æè/ÑÎ8¾çðo­o¨–¹G±Åz£e²[Ôð¨áQÃeÁ²`Yp¯Õ½V÷Z­ÉcÜ)=§ôœÒ³õÕÖW[_ýÉ»¿vÇgÕ®Hˆ«ùºá÷î_S­á'nœ¸q‚V ÈIß¾| ðrðrðrhõ¡Õ‡V4¹—XxqáÅ…Kz–ô,éù“wg®ßyqÈÀyž¾ /è ª]‰â‡Ë0ûV¹‘úÌì!4¾2ñKw³šKçÙ~ªaŸž7zUCbí|8å·‘ÇÛyù$Å+Å+ÅK;ZµäìØ °Sý÷DóDóDsÚ rpž÷“?®Þê?-­oͦå&×ٯ;õ/š{×Ú¡ý°b¸K]ûʪå4·1·1·¡e´Aܧ¸OqŸ|ù,òY4ªó¨Î£:gôÏ­ÎKZ›=΋ïÚjg<¿ªƒ†%üô–pT­í¨/Q_¢˜ E¢&GMŽš, …z‰½Ä^bFï%êWž³sç~‚Û¬ZÛÜ&z×WWÛ)¯R^¥¼¢Ý´Ç·ß>~ûèåâåâåÒºlë²­Ëj /úsÑŸ‹þ pppH>“|&ùŒ6czJ>fú˜éc¦Ó“€ó<ծĤ}£R—µ3þ^`È”–‡¥R]mmÛý{›cu7Í5h<²ºYï5ŠšŒ¯X¡ôÑRÓÕu‘ZwDk\šÙ×úɰÕo*¿©ü†– ÐN W®&\½v/ì^ØäÖ“[OnöŸ(ÓÏxÇ×ÛNœµëÎçg©©ZÛ××^_{}-­ Íbücücü¯E_‹¾=¨ù æƒš§}/Ñ´èŽç7¿Üfíº¢}óBBTk;èmÐÛ ·´R€6‹ððð?z>ô|hgóÎæÍ5‰„gœupÖÁÇSO}<5i|Òø¤ñ9Dé)§ïSß§¾O9ûÈIÀyžjW¢?VÏKï/í Jï›öô·)äXÔ<¸Â¢’ÁzÆ%Ψý^ðCãA†U…Õ^YiMúÕÈdû_UËY»TíRµKÑ2yE´¼¦oËe÷nªð£dh©ƒezèµ49ZëïÒ[ZøÝäèôöÞ-ê¹is¬\×.Üz`¹¿2ðî¨ÝQ»i™€¼bÆÒKg,UýDk\qÝìó‰ÚÖž=>v…X~M£É-_–:i4³‚¯Þ©ÒõËxÌ6w­Ý̼Dï5cרŽÛæ=®QíN–N}DZt,–{\ïlT;ð×”¯)_i™]———ì#ø>¨ã:¬I$<Èÿ ÿëÝ®w»Þ-&1&1&Q“²¥½/okokokÎ rpž7¹Àä“ ¨v+ߦ~×Ò1w#Òòôw–üß·€o÷wšÐ¤Zz~ëJ—.O^Õþ8¸Î€Í~2ÈÕªý«ö¯ÚOËä“>Nú8é£ê'š[[võ‹jCP:cœ¯P‘…aSwC!ýÎõ¾±:±ZGm€»ÌŸãWµ¡jÉccci™€¼Âj¥ÕJ«•?™ýwðÎ/>´!.µ½³£ÄÆm&9ü’þ{‰zOgÙ1Jõßµh&àfÍÂ:ùª–0òPä¡ÈC´L€nKx”ð(áÑ}“û&÷M&oŸ¼}òvM"áÞν{; C…¡ÂШíQÛ£¶g´<ËJ-+µì'_¯íÛ=¶;ç 98ÏÛóuÏ×=_U»•ǽãm;ånDZ³}92•å9Ö¢}“úÎiÿüûóÿ4o^^9°öÀ×^v󴞦ZÎ ½.ôºÐ‹–™×…¬ Y²òÀé§œøzàë¯õ¯ê_Õ¿ªÉmD%ÏJž•<ǵ×r\ËÓåO—?]>ºbtÅèŠÔ6€ÜÕ¸{ãöZóŽ<Ùeµ%—ƒÒâþÅ–¨u²Õ²ßÿ3¤ä×¶^åN:Õ^zÞ¼ÜÓC×*ÓãÊ’ofQµl[&•õU×k[<4~»šTË) ’É‚h™€¼Bõ³¬T£²)åßhOPjR»åë®ÿy_Ö¤@ËŽŽÏk›Œ{¼¼MÏ÷߬5|Ìò%=ÒkÏqY”\Ùí“j _¥¼Jy•BËä7I“& |ÜôqÓÇMgµ›ÕnV;MžåvÞÐyCç ê\¨s¡NDLDLDŒÚ—R”Rü$úíÐ' “E"×çy÷ÞÜ{sïjç²ïIÛ2–“s7"±®îÊO•å1(sQ¿ÜþËmÇX|÷dÀÊf'?T E͇»{56œߤ|uÃ¥¥é%¨ëpµ-^ù»]ãš%ò‡V±WÅ^£eæ)V)V)V÷ŒîÝ3k1Öb¬E‰\â>Ö}¬ûØç矟~žó '©öHz^%?”ئ ißOÿN¯Þ;uÙ:tž>£òåÿU×£¶¼5r“IœöÀ?^~Q÷¸j9w´ÛÑnG;Z& ïÞKmÙv€6D¤õÎ6ÜþŸOÛšŽ.Æó?)ÿ¯º{ ómÎöãohl©ïZiãOf»yíæµ›×h™$L>˜|0@?@?@ቅ'žÐäùmëå­—·^îuÆëŒ×™ð"áE‹(÷ò:þuüëxÕŸD'щ³€ÜBœç…ß¿~_µsqº`Q â½ÜHÚþ»Å‹‘eß–ù5ýÝèóÑ}‹6]Sù‘Áý%ÿyàÛˬ²ñTí €êUhdxà'C:Ü‹½{–©Íâãã7n ÜXB+51jbÔäx•ãUŽWQÄ(b1œ5ÙGµª*Y}1h¯ iÝÇíZ”KR–J9tz~k^ëÇaVÓ+Œ­^Iÿ…6ÀnF·ÆÔ×ÿÉW‚âÜãÜãh™€¼{/Qe¦ãØ!%µâÝß-;:>ÿ_,]®±E›’é q›íž}»›Ag³Z ´9¶ê´hÂÁ ª%ž\sd¿6ûR—_9ë·.¹cÔPË3UÜ´!ú¶6¤ÕSÕÚ®½¬ö²ÚËh’Ú)âEÄ‹ˆ‹/.¾¸ø¢&ê-<µž²tÀ1³ë†¹®]÷О%ê-;Usu…ӽƬZÖ ÃV‹6Ô+°î·)1µê]اNÕZ ¿Öv5 Ðd¿»oí¾µûVBé„Ò ¥9›²–jŸcy¡ý#mˆHªõÑ?£,Õ€j›[¦?ÊÕþ7€gºçÕÀ^µœã[«ÖɃ}åmN^”þý«a­ACºœª4!£en 7…›œ_YEµŸiÚýµñ/¹ŽÎqõ»Ýà?÷6ʓӿ…~l[hqJ›à9ùýÝà’jýk7¬Ý0†€äá{ ËÁcf´ÍÝp´é™]_|ÿ3ï¯u™ÕÖ§¯§ ugNkæ Í°õŠ5GÎîV-áÖw[ßm}GË “++¿ÿöþÛûoÛno¸½aÕcUU=–¹0¸Š¼Š¼Š|ÛÆm·m|¿õýÖ÷[www©fÍ]øqáÇ…?šühò£ µ¡ŠXGÜwºïtßIµs™6¯aCs+m PóúÚ9¾F´Irú»x“d“d“ä- ”y€IDATnùsËŸÁ­ƒ[·VUU¥ÝfŸ×-^·xÝ¢Îý:÷ëÜOÏ9>®ûþÊÿ>L8xÛæ­¢À_ìÿÊÚÐ7íu‚Í-‡ÖqÞv;þ´¾Ù!Á.ÂxKzÊÜ'¥OJŸ”oÿ ÿ6œ3@ª=ŒÕ§n•ÊŸÈÝptjQyOËÿ„£ÊH8ý[³ðÔ”ÚAÚϾ÷`wƒýªõ?Âi„Óf äá{‰ê¯ wÎåptÏšð³ÿ™ÏöÎŽ7>f`€åU‹›šªÕð?k*œù¢ZÂí˶/ÛÎødd±Ðá‡Cï›·oÞ¾yuÕ]TwQæ"á²[Ên)»ÅCá¡ðP¼õxëñÖCÑ]Ñ]ÑN¿%»–ìZ²ë_=\k±Öbmd¡ÈB‘…¨™Ô€uD¢e¢e¢¥º%®òðY­çÜj¾þ~vÈ…–5Ÿáµ´TZ*-­ë»®ïº¾oª¼©ò¦Š¢œ¢œ¢-YsGYt$]½KÚŽíe¡øê$X¶,–“qozÖAWÏš6›8Ê´ç²*£Òs,7}núÜôáìÈœŸLj°³ÍˆrÍr7wþÉ9«©K5ÉùʾºÓ¿…Ïw”¶HÑæx¦ÿÝúõò•²)c¦Œ™2†– È»÷æSúÜ_-wÃÑÆ!ß.›hò°e×%}µzè"ËCOÌV-áÁ‚ ,HË ýPüPü¨X·bÝŠuKd‘•¦+MWš¾lý²õËÖ)ÿ¦ü›ò/Õ¬Jh.4š«Ö^ÕãUW=þ]ø.|¨%%`2wèÜ¡s‡ª6}¯×" #¾Õ|½½aëu.«ÖðÈÑ#Gm·Ûn·ÝnMºøeÖ [6ì…ðBx!¤´Ji•ÒŠVIó“æ'ÍŸì1Ùc²GÚ5<ƹ·}•Ïa¦²æ-|µ-ôU·~½ðÔ»s޶¥ÊßHûè¶|ßò}Ëwf•Q?»Â²f£Ò´!"M]ª[·XXØ¥ÿw;OšS%P›àém½›ÖsU­ÿEW]Q”– È»÷•v¶_Ùw–¶ ­ tÓ¿‹nƒŸÍðÓæ¸A]÷o{?«–ðâ‹w.Þ¡e}>Ä~ˆý«ú)|Àí€Û·S-Nµ8Õ¢ÍÐ6CÛ Õ$/X¼ yA²ÿIÿ“þ'“W'¯N^MÍÿxöãÙg–A–A–A?y¢%3‘™ÈÂ]Â]Â]¨+`44hhÐO:”’5Kµ:>ªšiëôÿVn­¬Ýbhñ“‡¶>“}&ûL¦eêžÇ!C‡œ8zâ艣+ýVú­ô›`6Ál‚Y¿zýêõ«×ݺ»uwëžõ{ÖïYè“¡O†>™=kö¬Ù³vØï°ßa/דëÉõ’–$-IZBMÐ6êþ*±k°ÇýÎÞ\ŽHç,]·7u©jYŽ[¼)íߪfÖ7ib‚ÚãÒšØìQ¯{c6¨–ðƒÞ½z´LÝsgå•wV ‡„%ÎKœ—8¾?úþèû}ÆôÓgL·6ÝÚtkÓ«r¯Ê½*pá>ÂÝ}û÷5{­öZíµºarÃä† uY¥ÆÒKk,Mýùk``žßzõ0ê¡ðAø |èS­Oµ>Õ4É &½™ôfÒ›{'ï¼w2áxÂñ„ãùç,Ä)SÔ¦›M7›nª5Sæd™“eN†m Û¶)¶R`ôÄà‰Áµ±Pì£áZ%ÐÍÀ¼¿AC|Z¾TWŸAýôWFÏQôèѤïÒwé{¿‘ýFö©I?þÅøã_Üy{çí· ú ú úºÝÂã†Æ ÚÈ©‘S#'uu²5n–Tg’"üŽdßR—¢ßÔë¤_|Ž·8¹eÿãf3Ôy½rÌÊ1+óó¼ @­%K–,Y²ä'3Ñþ)n°’ËAiqÿb Ò¿ÕùÚÖ«ÜI§=Ëæš7azèïZez–ZÞÖ|xíJ­W—+£ü™ c«WÒ¡Íp›bcÖšþdj‰¤¤$Zf^ô5àkÀ×€3ò3ò3òþ÷úßë¯D¶±n1ÜbøòˆåË#žÌ~2ûÉlê@néìÒÙ¥³‹jOeÛeÛÒëßr9(-±§øâ Ùþæ ÿÏð€—Zoè~§öìñ±+ÄDz.¨9®Å²eþiZ½}cåÏÌ6w­Ýì¿°MïfÉ6Ú—«]'ºq=Õš7>n<-3/úpóÃÍ7.>¸øàâοuþ­óoÙw/ÑøZãk¯m:¶éئc/Ã_†¿ §þ =>¯ú¼êó*Õ~õh¡£…ŽÊÜ6c-b-b-®ß¿~ÿúýÁ»ï¬ÑD“.\>¸|ð±÷±÷±{÷8î±nŸ‘X½X½X½fÑÍ¢›E«Ö†ž‡ž‡žÇ—²_Ê~)›ßÚ*°Îê¾³ûÎî;U›ûâ-¶ ,ˆuÓ¿ßµþ²ªUkr\ÁqÇ̲NêcìÇØ7ä7ä7äÃn »5ì–&]üpßá¾Ã}oþsóŸ›ÿęƙƙêF«Né’Ò%¥‹ÓU§«Njߢ>Ûyíz«šºúþdxÇǾÍÚS:Ö*¤®N–:-uZêD¯@a°FX£Ú{ è·Y°¨® A©[é[Cê—4sodk°"=Ÿƒ•Ô[VÆS ks\¡dµ…ú?™`"áX±„c´LíçççzöûÙïg¿7ñlâÙij„˜ÕdV“YM^|5òÕH΀œ±N±N±î'ï7¾4ôè'íÚtOÛñ½ÜÒÓ—–[gY³Éõúõæ<جüý&Æ–& í €›ÞuÇwìOJnXΰœ!m2¯ˆèÑ-¢Ûþˆýû#*[V¶¬l© ÷«ë­®·ºÞ‡¸qâ8G ê`çƒvþÉ4‘ÎaÎaÎYµ—ø¦ñMã›úNðà;aôÃÑG?Ô¤ox`à®m¸¶áÚ†˜S1§bNéà_è…ã Çn½¼õòÖËÕÕçUŸV}Z•Ú*°ÎzgöÎ왺†þðPos›û„»i¯¯»w{g½Mí¼¿NaNaÙªÅÅÅÝi§ýöãÞŽ{;î­&]|ÿ‰ý'öŸ(ß(ß(ßš[õ"ïEÞ‹¼Õãeã ÎÊGѯÊúß›Ó?ÔþK]ýx}ôúèõ‘¾€ªÐr¡åBËý䀶½1¾§=q©²TÝŠ,hbV¬º§íEÃMeîù•ì¬_ÎÀXÏ¥r?Ky™¹íGNýTyÁW¿Û ^ióгÏ?pm°Cµ„~môk£_i“Ú,údôÉè“+ÿZù×Ê¿Jh=kÑZ´oÊnÊnÊ8w²ÏÝBw ÝýÉR-Ž ù2ËJ{Þ—U–ªîáiÿýפ@ËŽŽÏËŒ¨R´ú½S¥ë—ñRÎø[Ýö—iÚöÜyÓÇ8õ±6¬.·´ÔžØÚmÍ„³?kòôÉÓ'O§Mjõ½w»Ðv¡í¦¶œÚrjKí¿—è~ºûéî§ŸzZèi!Î(5´mhÛÐ6uoiÙÞ²½eûìÞobáĉ…ïß¹çþ)W¦\™rE“¾WÅ^{U”í”í”íŒjÕ.ªnœ¸ˆ¸ˆ¸ˆv%Ú•h§öØ?F~Œü™Ú*°Ž[³hÍ¢5‹Ô5ô=†žjåBЫºþr|P@‹“êêmß·}ßö}Ëù³™øo⿉ÿú­ò[å·júéé§§ŸÖè&þQ÷GÝ]^ryÉå%?FþùC«ß‘ÅÊbe±êŽåDËþõïççè7õzaØè¹ÓÕÕÕËO/?½üDß µ”µ)kSÖªë7Ü+?duUÛÞUèªÆ½ÚùîïÈ®G*Öš©ZÛýLû™ö3}ßò}Ë÷-Þ o…7íSĚĚĚ¬Ù¶fÛšm™»ï¶®ÎÇʃlûÁ2âÅܾ“šÞËÀÝi„ËPûVBÇåê,;ÙԹƊÆÑ”]’Ñ2Ô=V÷XÝc¬X=°âœÈZ?d?d?dª=žY՚˵'V ƒÓþwå ÐÊ)_¯a—C´'®i6rË|;Õ:Ÿ[ný¹õ¿¸}qûâFËÔß}[ômÑ´jÓªMËð,%—ê,l×bà™ŠÓú–ò(T]ϵýÍõî§ÿÎsžÙã‹Vcÿ™·Uf±¢MÕ1—M¯•¿dV]ß!£%q¬íXÛ±öëÕ¯W¿^Í9?} üø5Pµ‡Üÿëþ_÷ç—¹“V%­JZõøÍã7ßÌ0{ÀìšäºuêÖ©Ûùçž±5bkÄÖ¼{¦âïÆß¿ÛiY§e–©;Þí?´ÿÐ^·[,°ŽKôNôNô®òO•ªüó“[·ÉÕþ¬°=åï‘'Û<%ôU®ΘØF¿Q‘ †¯Uk¬yÝæu›×My™ò2å¥6œßä‚É“ >]ötÙÓeóìæÙͳӤ‹o÷µÝ×v_ÏÖ=[÷lÝï{¾ïù¾G+>VÿøúÇ×?Ô•yÅã jþNèûŸu‘;Eí‹õ^æàm2AµÆL×›®7]Ÿø(ñQâ#zH©Mtžè<Ñù'Sl:W²Îzm PóúÚÖ¥ÿŒ i.n5Üj¸Õ£«GW®o¼mð¶¢¢¢ m5' Ž‚£à˜þ»©:‡ž48ê`[¯êÇÏ'6ÏÆ{ìDã›ÛÔ¼?´çw½)áV»Í30]Èáw†ß‰xñ"âg@V±ZfµÌê'Øš¼Øø],˜[A©Ù™^£Ç”1¼ZczýáÕÞ h3%,ý¿[ña‹ËŽÿ{Ø$´y%Ú—Y¥Xõÿç^¢öôÚÓkOßk²×d¯ÉÇØ±cIŠ$Em5',}°ôÁÒéÿŒ®žÒ´»á¹7¿³¨ëãV¿6ŽI3ðþ»ó†—=Ь¦ØhN÷ÆVé/çB·…n Ý’º&uMêÊYœ¨q¢Æ‰ª½bè—Ð/¡_´¡„Éw’ï$ß 8p,àØ¢+‹®,Òè-áVv­ìZÙ <x2ð›ç7Ïožyë|%lIØ’°¥ë®?ºþPwŒï=Þ{¼÷ÐÕKœ/¼¶{m÷Zm4èV²Q óÛŠX—áö­ósô›42Åþ·!/ë´®¤PWW¡CC‡†ÕæsbžbžbþÂî…Ý »¥ó—Î_:_“.¾ÙÕfW›]=îqÜã¸ÇW¯_s¡+ì[ªo©¾¥TËÖ¾cÓ=ÆÖ)^·o´I ôU]G]ºß겺3»¾ÄúëKÐ7HívÈíÛ!ª=F‹6ÃbL¦ÙfÕzŽôоA´&ŸÎ+Æ®»blà›À7oRæ¥ÌK™GëÍZ?üøÿðÚeh—¡]ÒsFf6zZÍòÔ>4w׆{ÚK{»X5XݰìàÒÓS~qœ8NÇy ¹ý7öߨCµŸ©õçè‹^æÚ›²Ž.Æó?)KRÚÑdgÕQ6›¾JmÓþ­†—7>¾½D\É/¥Äÿ…©&ã/o£ Ñoã!ë»]ü;sw•×V^[yíVß­¾[}ß×y_ç}Å5Å5Å5ZoÖ uuuhÔ,¨YPzÎKÇÄë ˜õæ~N¹|¿ªï_¦¡^ïè5]ªõK»zôùÑçGŸ9ïòƒæ‡›n~8uh6ÕlªÙTm.sʵ”k)×^ÕUÿUýU~«üVù•ØVb[‰LŽnell|¸øá⇋ùeä—‘ÚÖ{'öNìݳKÏ.=Õþÿîþ»ûïîë^‹%ÎGÎw<ßñ|GuM|É@Û95~S$ºŒ°o“ï`}={½É/­š˜mWW?7úÜès£Ož<ñ¿+~WüþúØëc¯­·vÞÚyúóôçéÏË\oÕÙª³Uç^¼x}nö¹ÙçfÙWð'oœ¼¡v î°²Î-îô¦½~ôíÐR[µßoÚð~Ãû ôÈÉõ’ë%×wmܵq×îXß±¾cHÍhÑ q±Äb‰ÅÔõ³<Ø×À“øVóõ?[«ZŒËÚ¹Ù´\ÐrAKÿÖþ­ý['ONžœ<™öœ9þ§üOùŸJOÏ/ÞdAõGá¿1h9AKïo#\†Ú·º5 G·Æ3ª”2X¨¿1í#š7kÞ¬y³’G'NMK9a¥ÂJ…ýäË»z‘¥ìôöèß)“óqi“ öËœô›[šüç«ÞÊá­SÖ•:?Ѷù¶>×O7ð\0pÿÍê[®šþº”{¹Oþ²*ç ¶½³£ÄÚ›û9‡MØ–Uw†ƒ ö°ð°ð°x[ñmÅ·---iÏ™smܵq×Òu§×í—uÍþšSÆÏ¤ w­îŽO¯ZùýÓxk3‹Éé9¢]åv•ÛUŽ·Ìèªï﾿ûþNµ÷Û.n·‹yì`&+&+&M š4iî »6ì2J0J0JÈܽDíµ[Ôn±'iOÒž¤!C>†(‰ŠDm;è¤"IE’Š8ïpÞá¼Cݱ¼M|›ø6Q—Ú-p¾³®ùºæëš«}¼+Z‡V PÌuil_=?D¿ÉGŽlsdÔ5ËgUV«ñwʾ)û¦èT#ةةØùîÉ»'ïžln´¹ÑæFoU¼UñVæºx‹-þµøw×¢]‹v-ú°ïþûáŠpE¸&Lî™Ü3¹§A€A€ÁO†´:¼fZƒ„»é_/ø6ê¢ÅOÆè×±_Ç~é‘3žµzÖêY+ÕvHÍh›C ]0TõLõŠXµ¬ÚïÄ·­-ýÛ74*;Ádl©ºª5üdã“O6^ls±ÍÅ6ŽŽŽš<Ìá7Ão†ß£A=”d’d’dBÛNÛå!—‡\’v­¶_5θoð„7›=ÊcãÜXÛ¼>2¿Ý¿õþŸ·ÏÛÕkW¯]½¨®Q]£Î@&u*Ü©p§Âª=Lƒß܇ïm’»3þê-ÐßS:*ýŸ§¥NͬàÛàñ‚HÏÚ0ø³íŠím¼Õ¾Qt;èvÐí£-޶8Ú¶‘m#ÛF8ÒzEë­}}}Sf¦ÌL™IÛþ´ÛYlg±´kÕfC¿ÂÖÏèþ¬¼u;wÜ#W«:Ï ªr ícœà3Ág‚OrÕäªÉUitÉÙkg¯½¦Úï…X…X…XåùÃ{©x©x2:dtÈèÕvTÛQÍ\Ï\Ï\/“#Žô®Ü»rï­û¶îÛºï½Ñ{£÷F ¹B®kÃ&M:šttÀ«¯¼RWþ7åÞ”{SN7Ú-pþ£ˆQÄ̸1ãÆŒêšx¿ßkö1m#×ºŽ®F¿{‡–hõGÛ¥U.–߬®Vù¬òYå“/ZÅwÅwÅ÷ç>œûpn×Á]w´¸iqÓâfæºøŠ=*zlÖ߬¿YÿÝÕwWß]UlWlWlÏÀꇳÎ~øÉÜQ­-K—Ý¢X|g¬} bÝô¯c¦{÷l]QÝùz.=—žKtÈnîóÝç»Ï'Ö~!‹B…,R×cÌ}ý¸‰•QnæÖÃ'¬ù“YZíÞÛ½·{¯z.¢‹D‰.¢ž×¹€sçš<Æd0É`’Á=ë{Ö÷¬',NXLkW:`rÀä€IÚµwÌ¡}Óúýw\zÚ7Éë÷ÀŸ'Üb„CdÕfå?«ýs½k宕»~«ú­ê7ÝȰÛÖ·­o[ÿäMÓæÕßXö±³Ù³åÎÕÜM8ìÝPõàÿ½ïk]Ù­ºa•à®ç‡^nâñí²‰öÌû[ãÆˆóΨ–yZè´Ði¡ªç"|gøÎð§bNÅœŠ±Ÿe?Ë~–F#Ž.0\`è_Ó¿¦Íä±Éc“ÇÒÚooo^xxáá´ko˜à¹³æ.ݸ§¸ärýº« ÇU8Zò…ºãuœé8Óqfü¨øQñ£h&tCûí´º¯3r6r6rV(ºzÔŸŒ?2Þï²ße¿‹å;Ëw–ï29âHuÃê†Õ=~ñøÅã—·¾ýó퟊fŠfŠf¹u\ÉÍ’›%7R|Hñ!ÅÕ•ù•Å+‹Wyý çW;;;ܸ5pk ®‰—iUò½é–}Ï6Ö¥è÷Q·Þ#lþŸïü®ðYá³Â‡fò¹Ëç.Ÿ»ð;àwÀÏj®Õ\«¹™ëâõ;êwÔ︶ïÚ¾kû¾ÞüzóëÍŠ_¿(~QÝcJ¯”^)½ô—è/Ñ_ò“·£¶°u%ÐÍÜú„ÛÊBõ<ôÖwZßi´vdŸ”N)R:©¶½ÁË/¼ŒúÑNýŽô;ÒïˆêYsÚ´l¼yS¢Ü  ·ö™¥Uˆa™ %K ªµê;Õwªoºf ŠíÛ/¶Ÿ·£·£·ãIC& ™¤Éc\CCÃ[>·|nùĈ;w ¿µó}÷ÜwPmY–(_Âà•O¿£v+tï«)] Úÿ±.¤¹K­áê* ô†ÒJoøæòÍå› ½"€ ¨¡¨¡¨a``ò“ñœêΙµÓ5wcÔÔ®mÉ­·®E[·^}ûÌ<›s[ö]¥î'swmómkïkj{ì÷Çß<=''rväìÈÙ‡]vq˜ã ÇŽ34qÄs†ç ÏG9$•M*›T6µó(E”"jî˹/ç¾TW?Uk7øjPέé­Ãõ+êÞýíÜ5NY5iúu IEgu5жpÛÂm Ç?ÿ”®@Þõcß}?ö©örêm¨·¡^~«°eaË–rtÈÑ!¶clÇØŽÑhÄ‘ò+ʯ(x&ðLà™”é)ÓS¦çä±$ßH¾‘|cD½õFÔSWÂÀZµkåÝóEœ¿=WÔ>ÔžŽìðâÛ‹o/¾©¶ºëòëòërêG;½.ýºôëÒêz ·dŸ¸úÿë¦ÝgÊÚšÕ~òŦúR}©¾¤‚BÈÜ™Š?2~¤o˜o˜oؘcvŒÙ¡Éçò?þyôÏ£kz×ô®éÅ̉™3GW[¸×;¯w^j¿¹ÜªUeS£½? =ÐjH~˜åB`ç•Vñêjì’Y%³JÑÝ£»Gw§o~òÛòÛòÛ?éVöë•Ù´óÎã·’µ!XÍ+ëªÇ{Ô¦Z£-G[޶ÔäLE—Ž.]Z\)®W:×u®ë\W“{‰‰_&~™øå^…{îUH˜“0'Agï%VÏ\=sõLuõ`ëØ¿K¿ykžŒ·Z›îu»õ_p×ÌB]môLê™Ô3)ùuòëä×ôò¢+%¯”¼Rò'“/XYYS?áÇÇ?mpÚà´ýIû“ö'5¹—˜ÿmþ·ùßüõýõýõ“G$H‘ÝåOišÒ4¥éh‡Ñ£Õ&GÏMŸ›>7Í‹g‡ÿs<úxôñÿgV°ò%ô—–¼éãßãMc¿<ðH+Ìe°}Ky±®[=IOçr9örìåXZBF}?ñýÄ÷g;Ÿí|¶s{£öFí4éâëT«S­N5Õð§çl›†„¸ÿ×Þ‡Õ´ýÇu'5(JÑ<ÏólNæ13•©$d !„”!J!IQI³Ò ‘ÍÐ$©4Ïu:çìßîïyÜçtú¦SÞ¯?Öó}¾WµÏg­½Î:û}öÚCodŸÙ/ãO[a§ß~wúãFÂ…è Ñ¢iG]—P—P6eh{÷:îu¤í;%õåV¼Ó뤵ÑIn‘M§÷®—íœíœí<¼½Ö+Ñ+Ñ+‘¥¥¥}àä“Nå}y¥ÁJƒ•ÑlÑlÑlíLíLí£~Ûöô­é[Óé>ëwE®è¤éy½3L] Ćè÷ëöåÅå[Uènÿ¾Èz‘õ"k*;•ÊŽ¹Ä“ð$<•Ÿ*?U~J;«›„YË!ÖH«}nÊ£sôæçÚ‰µk'o×u™v™v™&íIÚ“´g«çVÏ­žCYK˜}6ûlöù¥ÿKÿ—þÝ·»owßõWϘ˜è>Q?`W5¿›ÝÂxEÙŸmÝ»v£óKá7tï?~äø‘ã˜`4Zþdù“åOúx¨Ù.b± õ¡Õz±õbëÅggžyvÆØÏØÏØoH;Ž9räÈ‘\©\©\)23™™Ì<ÇLõ¡úP},[,¶XLïH /ü½p”]?G ÿQ[[;OÝ{Æcî™i‹WìRb´ X —:+ï”XÆÝÁáßÿ«¨¨¨+»\v¹ì2z¸´Y·Y·YGyEyEy-·|Üò!=³Õ‰å5Ó;bRú_†S¾\únQ »FïŸW:ºà¶Åñ%zfôªMµ¤ZR-1†aØ„íH[ü†y 3ÊÃøÚÚè>4aC›k’èzD¼t[æBfE&±Dí]\ i«gzÍôšéµïÓd²?Ù?ß(ß(ßÈ–Ï–Ï–o(ïË ÷-Ü·p_XVXVXV˺–u-ëFËxþÌþ™ý3ÝûÚ½šý߄ރ¦‘Ú?[ôûŸ˜i¹¢Š9½*Ù¿±c-à,:YD÷«H wì­|cñÒkÕýÜ%oeÚǬË|»m'7ߨ|có÷éÇ«««´ßÓ~Oû}wÚî´ÝiCÚqÄk£×F¯øöøöøöN«N«N«Ñ2žóÃóÃóÃé½.] Sꌷv{ ƒ¥~êo¼ì„oÒ«RÀ/¿ü‚¹F‹NÞNÞN^ÚÙìòÆË/oD}®C C C öqìãØÇk7­Ý´vÓv‰Û·/îõ/¯yý éééÀ°è/Ä/Ä/ûçŸîÝÀùeùeùe£¥ò€¡]æ]æ]æGêŽÔ©È)Ç2™é5Óé»–ÖÒZÌ·’tIßóBUÁæ ›7éî–¼3ðiâBü…ø ñ¤:R©=>âS|[G[GÛ‹ A/‚Lžj`÷ÎîF, —²¥eKË–ÒŽ´˜Â˜Â˜BÔg´x²äÉ’'KèÍÒVéÑæÒ=ˆ{iÛÅ’¶šBÜôêÖ´¤iIÓ’Õ§”””ÅìÅìÅìöÖöÖöÖCù襻Jw•îª@ý@ý@ýÆîc0uuuf½f½f›g ßä’e¿Ýµk‡’þÊŸ9úýº \tAa=½OlJlJlÂÜgÝþºýuz³ŠÚÊ[‡âHˆ{ÿÓª{º§'ó0ü´²$Mw˜î0Ý¡÷ZïµÞk?ªO{{{³Öf­ÍZ{Àÿ€ÿÿ!í8¾’}%ûóŽçÏ;Úiÿ¥áº×1äN/já©8UW­8kà/­Ñ²c/sèU¬T«T«T s#0¾xžxžø>v»|ßþ¾ý};ê3]V]V]VIII[³¶fmÍÒŽ#ÑfÑfÑ/^:½têvîvîÚ^kÆ„1a|HîÜ!9z1÷Qî£ÜGŒ_gÀð?äïÉß“¿G:R:R:rà§ÜL©©Rl[.ÞÖd#e¨¬äW½6\¤^-Zî§òô YÍMô(×_¬f,œ?*•÷ãÞ{‘ÿƒu‹u‹u‹¥N9œrxGûŽötï0ûôìÙDm'ÀÃÛ&Kz¤(“i_×5Ûk¶×l1>a¸8::÷ñäöôöôötÔgÔxK¼%Þ®’Z%µJŠÞ\}Ô1=T® —º¾´›×{ÄDèÕ*&<&<&œÑ:™ú†ú†ú¦äFÉ’ާO;žf¾Ë|—ùîà>z)u*u*uúZùZùZÕM«›V7íǾ:AAAzG[sv“Ÿv7B_Úö²¬æ#ñ•ôêÖêÐêÐê€ ‚äAò y̠ΠΠÒÎ'\Y’¯”žhØÜ•~åè÷K+j¹Uþè<ºO¡»X|±ø"£õ29„BÉ7Í7Í7µk;×vîvÑZ¨µP+,0,0,°eaË–…?öÕíËÞ—½/›ö8Ù7q­d~c«‘½U> kàÿ´› =Å –ÅM£ÐÖM,_,_,Ÿ"G‘£Èa†F¶ÁpƒáÃ>öP §†SÃQŸáÕs´çhÏÑ444Ý]»»vw iÇëÖ­ã ã ã ;M;M;¿ýYÂWˆ+Ä•£LG™ŽÒý+ÙÛ³·gogäª"ƒow/î^Ü=~‚Ÿà'†rú *Lufó0²š½€OØl‚tö̦ýÅ *³Ü÷ïV`šuzG€ô’™÷Nžµƒ×cÆ!qÖä¡ü-é×Ò¯¥_¿ìzÙõÏ÷ePd2 ™¥Î+c fÒ"‚Ó¯* Þ¶ãqb˜^3íë’e–e–ÅÆ¼0‰@"C…C…Cåë1¶xé⥋—¢<£QËÓ–§-Oé½ÛòWH‰rŒ³•Ë^"Ÿò3_ê2Wò ’xE¯J¶ž¶ž¶ž£¦ËO'ˆYYY. ]º,œÖ5­kÚ ?€IIIy®ñ\㹦úZõµêkDÑCôŒô‹¨ÚUµ«j½£JRZ6K9 A/½–ªjö \kwRwÿkYiYian€+{^ö¼ì9½9yÆB=õ¥S4êî¹§ý™£_É'–×.Ñ}âïC¹‡rGM`F©¥ÔRj‹Å‹Å‹Åí=ì=ì=†rmGWPWPW0pfàÌÀ™‹7.þ>¯"cnÆÜ ºa¶Õé知+÷Òk;d‰Ê;Ò«Þ9wæÜ™ƒ¹S·q·q·1íÜuÖð¬áYCÔçûèÕìÕìÕ̲ββ>Pt è@ÑPÖ+>®ø¸âãó‚çÏ Ú:Û:Û:tñD<o[j[j[Jï7g²d²d²0f Ã`ÁÛ3¶gl_Ö¶¬mYƒÙ8wãÜss;s;s;ÑSŒïCè‡Ð¡´ýxXp˜ٙ?6(«ð—V¶BÌhj#í«ëNíNíNÅÈ„¡¨´¨´¨´ ]>>>¨ÏèUèTèTèDïýw–ˆâƒ©{·d•Ê?ýé¢_¿x‰tz•ѯӯӯ£üJù•òëh~Ã&>ªâ«â«â=2=2=2…ÿþCøÁ­Ö6 lØèJr%¹’***ˆgÄ3âÙðòª7«Þ¬zCû×m¦)fÍ¾Šˆw í'›5Úvôú±práäÂɘáûxïýÞû½÷¿wÉŠÉŠÉÆ¯‰_¿•]¢¯D_‰¾B÷+e+ Ϭœ¯Ñ~/"íÎOý–L÷¡û9÷sîçí½O-¦S‹KüJüJüýýý˜‹˜‹˜y1W)^)^)Þw±ïbßÅu“ë&× óû%„B áSãSãSëã"òÛ g/CÄ;vgíoÉÕôú±aÃþ†ý˜áû¿©è«è«ègÊ8”q•Z)%)%)%´³VÑ΢E;QŸ…IŽ$GæŸÈ?‘ÂÖÊÖÊÖjH;Žü½ðï…‡] »v¥E³E³E“îþH|$>Úݵ»kGw§´ô ô ô F«`   ‰‰‰†L†L†ß5î],´Xh±P¨I¨I¨ é$é$é$zdt‰\¹ rmÏ>'\n*Ö2fœ=á¡–ÚÞõsóÏLœ¡Ë3õ&{;s¢\Žø$NÁã Û G6òÅdêª3r|îæžb}Ü{]VYVYV‰‘ CáºÎuëº>¶ kkC}F»¸œ¸œ8ºÏôšövÖV¶e‡E^ÚËqþ>_½³FL^5xOðžà=Ñ&Ú&Ú&:VÇCížÚ=µ{¼ÿôþÓûOÙ\Ù\ÙÜÁ­è¦ŠL™*ruùÕåW——ù•ù•ùÒ„4!=¸£Ê}šû4—î=ëí¤í‹õRî¼õt2Ô’îcïKKKÌŠð}\ʹ”s)§¯¯fÂèsÏþžý={ºïž jjsž«û¸ßI^ñ3D¿bgwxœ¤{ÅÃd±Ébr1¹˜\<‡Â)âqª¢²¢²¢ÒÅÊÅÊÅŠWŠWŠWj;ŽpJpJpz*x*x*TŸ¬>Y}’è&º‰îÁZCCí_áÛ+"ÈööTh…B ÂÝ·Ú/¶ÿ3£+?‡ôéÒǬßǪ?Vý±ê¬%` Lo™Þ2½E;Z(Ï)Ï)ÏQÆAi¤4R‹õ‹õ‹õíSìSìS†’4é4ë4ë4Ž8¾Q«Q«Që?¬›è&ºí—Ø/±§û¥½T½T½T=Æ©`Ao¼ýñöëÖ¬ÍâÌâÌâÄÖˆ­[óÍÛ8ÿ!ý‡ô{÷8îqô-ö-ö-®·ª·ª·B…džsç ÎÐö{%˜‚Ö Æ €ÙÃØŽ2¯êÜ …Î ØÚßø>~¬Ƙp¬Ð-¥í´Gý úAôŒL¤N¢“èä?À€ÿÀ×ãÊ`¡ÁBƒ…(ÏXÝÿL¸G%8PŠo ^ÆšV(¨È¶ø²m¥jÿ¨ç¯ç¯çÿÙÆF}n}n}®ÅâGÑX©±RcåP>€9ìpØá°ãÝ¢w‹Þ-¢n¦n¦nÈ1èêê÷q1=Øs¡«|:ÝomÉ'Ìx ޲p2å2¥­jÎäœÉ9¸FÒ&b±©;ðÖ¯X¿b=Ê3z]mºÚtµ‰ÞüÏúyšÂô(åN'Rø’±újˆßÑ}i5sþB¿ *ô* •¦•¦•ÖmÝmÝmý ‹J¢’¨¬zSõ¦êG›G›G›°–°–°Ö w™-0[`¶k¾k¾k~å“Ê'•Oˆp"œøOm$“ƒÉÁt×·lÁ{¥˜è~k{T("—@¯ªµµµØÃFòB…§§?íØ»hqÑâ¢ê_#©“ÔIê´£åXÕ±ªcU¨㣖PK¨%%ñ%ñ%ñŽyŽyŽy,,,,,,ƒÜqä’Ò%¥K¾â¾â¾âŸIŸIŸI_þÊ…Ž :èýTJJJJJ #T0ü`+ÌW˜¯0§(;©I/ô53þ÷ß`[”ðéç‹]þVŒúäøTÞÓ‚sí.¡ Ìã™2þ{#<•7m©A1£À¥åAši´¯ëÆÇo|ÄÈ„Á©6¨6¨6 WA2A2A2¨ÏØVVVÜÿryÏYÎYæ§â ì:Gû¥+›+)‡e«ÄÏè<çºD÷¾¥_xáý¥ž½ž½ž#䋦–¦–¦–`¿`¿`¿9׿\›sm(‘°¬¬lÁ£‚G( ) )ÿùrÉ»ïv¼ÛAûSïYn1»RjÌî¼F ;¸6†ÍØVi6mmÆ3ÂçJAååå}<¸äùÉç'Ÿcÿ§Qïæ¤›“nNú_ ÿǺæ*ߨˆ~•œ.]{êÅöû4Çô^ïü·óßÎÛ-Ø-Ø-ˆòEí‰Úµ'¼%¼%¼%äþûCn¡àhæhæh¾*~Uüªx™K™K™ !AH_ÿ­èYѳ¢gõ1gÌýû¢Ü¡´‹ NlZJ[ÛÓ.§]N»`œÃÈI8—p.¡'¬¿«xWñ®õ¯e¬ÉX“ÑÇ ly®y®y®¨Ï¨t†8Cœ©è®è®èvququqå5å5å5ÜZB¼B¼B¼Â“ٓٓùdðÉà“t¿4–¤š¤š¤úc_:>¨À6»zvõìjÚ)’––jÐËh0K%‹SHŒÌM{%É/ÿæë§ùßþ:rkÿÉÁͯâ>êöqïõ¾‹û.‘ ƒsïŽ÷^ÐŽ«&½&½&=Ôg¬zYú²ôeiÿKdþ{’ÏØë,=žÝ–Ö]ªN=)خдv¶óá„þ_£¾´¾´¾tkOkOkFEÿZ_µ¾j}ÉÉɲäÂ’ K. %>üìð³ÃÏrbrbrbv—ï.ß]ÞÇ3Èÿ1ÒRÀ½¿Cj©RfÑ%¬w™·2õq¾²ûd÷ÉcFÂußë¾×}iG][n[n[.ê36<‘z"õälüË›¢6wN†Êõ« ÏÞŒ²û}õx™’/"¹Qí hÿ¯q÷êÝ«w¯&O&O&cg…ÿ¡¾²¾²¾Ò†ÿ ÿCÚqDÓAÓAóÒ;¥wJrårår}¬%,ØÂꥢâ¥=öðµ»¼.½^èêîêîêÆØ†‘°éʦ+›úx=õ$õ$_&ƒÿ°ô²ô²ô¢-äÃäÃäèÏQETUU5U5U5w8ïpÞá> |@øÀàV\þ\þ\þôþk¼g¼g¼çz¡€à£9Y9V0—1BDJo)1.HH ûŸopïÐãÕd´¸çPJ ~mý—ó,çY΃‘ ƒ#n.n.þŸ{úU UB…ù)TøWøWøóióiói÷¿8Öhß$6}ý!™$YK½Duª°@QÑTÛWWb×éWXûEÇ/¿püù#ù#;( RÇšŽ5kâdãdãd×)¯S^§Ì4¬zÇ™^6Bˆ;ôÖòüYrF´¾òáʇ+0’a˜åyD···Ó×ãmÝ»øÂÁ”٘٘Ù8Y}¶ËZ%‹`5›[_Ø3hè›vO!µCê£õ6gë¼"÷Íî›Ý7 DÑ€‘08ÍãšÇ5 ÎÎΘ“<'yNòp­"øwI®g/F|;\­Á”Ý×ø£hëeeeŒ‘ ë;³;³;³ûÎõOëŸÆó§á?z?ô~èý@;Z¬5­5­5QŸŸA­s­s­³·±·±·±œ†œ†œÆp­%b7ÄnˆÝðý_`øÁúØXé7–©ó3~Ñîf£üÇ@~öÙñkEŠ|_~j–7ÿsvQF»˜ò[ê!7Úúk'j'j'bd·úœÿ9ÿs>íˆz¼ÿñþÇûQŸŸèö‡îÝl8l8l8²V-\Í·tñ|¢t#\Ú¤æ>^4•gæÌí¬ñ9þèøèøèxôûHèòêòêòJžœ<9yò¶{Ûîm»7¸ZwhPÅÜWÛ~q»ÞSzÕ¦’¨$* £†ËÇæÍ›iGZ˜B˜B˜ê3V5ÝlºÙtsEýŠúõ™ç…Ü—QL«úº,‹QüÁѯŒç¡ôë»’ì—ü}*ç\ιœsè÷‘ÐZÐZÐZ)))³$jIÔ’¨Á­%6^w+uþ±kÔÿìÚ5>ržô¦Ñï¿-£ÚÇæçIó“æ'aÜÂðz¥üJùU_--4(4(4@}àk9Ž9Ž9Ž´£%óTæ©ÌS¨ÏÏ©¾­¾­¾Í_×_×_W#V#V#v(1p´~´~ôwýê `øÁh§Bå©B. Æ €+“ôªô„ÝAó5ï2òFÐÔ iy´G¨â¨â¨âˆ‘ ßʧ̧̧ŒvDáI¨?³TßTßTß/…Ùs]`.[’i—'DÚŸ;[Æhä.<\–ÿ›Â1ó“þÒåšZ›§ÃV?Ûݶ»mwkªmªmªE/O={öB‚ŽŽÔçgfffñ Ox-Ú/ö@bÓîƒçTT]“й¸WÅíeB‡¬ÔÑ»n)ÓÅ´ž,:<ðãT˜¤(;uÆ´m,»h_WSSÆ* ólólólÚ‘F±¦XS¬QøÚaÓæ‡ûx.,©…ÔBjA}~f$G’#Éñ³Íg›Ï6‰ãÇ'Ž·ymóÚæµp¾p¾pþÀW€WÖ_Yeý÷KL±¹šb+ûi ˜,n‡IÕnÒrÿC4mލ¥¶ÀÞ>¿±ßúÖc.“.“.Ë’È’È’@Ÿ2ÐèÚÒ»¥wKÆÁŒƒéõ±Ê\Ìp"Ûámã4–,Tz@[í{1÷bîÅ`dÂp   úzŒélÖÙ¬³•ùÙ´[¶[¶[žs:çtÎipk‰éMºœÆ.âóÍ'ÛåÈsœºsßN}ÅíÛI¿$èUÈ>7命÷¾jGMAÝÅQ[ÄX_ð<þÏ·ƒ±‰±‰±Ié’Ò%¥KЧŒ£+ + + üqøãðÇ´½&Á«›ÂÇ¡é˜ €í ß°mR§}]¯v½Úõ Ÿ"a‘‘ÑŽ±#yGòŽä¡>0kÔ»ŒwïÂÖôc%–K‰m±m±m±}ëúÖõ­k$S$S$Ó¥ŠK—*Vþ³òŸ•ÿ°¹°¹°¹ ×FÐßÿ5"†{söšû––Ñ~pykÈI-Ý/?ÅšÇ:é3£À$—óõ{hë¿Da‰Âl©ß ‘·‘·‘—v,yYxYxY >ðŸá·H·H·n¯¹½æö&†§¦¥¦¥¦õòñËÇ/£ïYififiOö:j§Ì*¼ aíH´-k¶vèvÑÖ|^è¼Ðy¡“0t5~5~5~´cì‰×¯'^¨ÏϬ©¨©¨©Èþ/û¿ìÿbüµÄ ãÆ+Œßd¿É~“¾cd±¾±¾±}ì[³–Ãy®p à‘h-¯>;'­ÖÇýñOO<=c†îµ×k¯×^´c,wkîÖÜ­¨ÐÊ·Ì·Ì·Ôû[ïo½¿¿Œ–TTTTf”¹D\".u t t |dûÈö‘-eSʦ”Mwþ¸óÇ?vMÞ5y×d s s óï¹&***ùþÅ@ ?˜@©@©@i߈N0d½Ï~¾ØåoÅŸ)ýçÔùŒ·ZÆKéõñ1rÏý=÷÷ÜÇÈ„{ñ$âIíXª¹Ws¯æêôUɪdÕî/Ü_¸/2]dºÈ”.Ôž8yâ䉓¥ ¥ ¥ è£Q3 …? NÛ› ÞK”ÍÖŽHK1734äÚÌzžE¬-õ¶Q¶Q¶adÂPxñ:ãu†vt5²6²6²¢>ðE§q§q§qPQPQP‘Ò¥)JSa-á¬î¬î¬^ÃWÃWÇ>-Nðœà9ÁCÛ›Ö¿Å:ÊlA<퉨\ŠÂ<Ú×%y_ò¾$®HÀ0°J³J³J£cd~2?™õz·÷nïÝ^/^/^/ž»8wqî‌€Œ€ [o[o[oý·úoõß~ÏUG/G/Gïê©«§®žêxÙñ²ãå¨Q£6¾»üîò»Ë­ì­ì­ì”nJ7¥ûGU 0ü`‹;,v @»]SÆë»1Z¼¥Ä¸X y ?»êêÜ_f(ù©5ÖóŽÍðf´øÃo¡«´NöqÁbóç5™0p:¶:¶:¶ÿù^›³³3A%¨õk»Òv¥íJ¬g¬g¬çžm{¶íÙ6rËt__ß+1Wb®ÄþSøOá?¨ÿèe=Îzœõ8Ú^þ¼oóSF‹N“ž-[©\±¥D²J YÔŒ«œc"ÇC–3Ì—%Åy 9JWÞ]5cBÄ%£½ ÕT^³pƒbFŽ÷6Ëmêc-QUU'ÃH;H;Hÿç3‚bbb*ý«Wÿ®þ]ˆ~ˆ~ˆþ† 6lØ0rk í8í8í8wYwYwÙ2µ2µ25ÔôR|¯ø^ñ}_ ìÉÛ©°1àý¯Úå6èT˜þ6ï\¤Ž}«Çrf]^’ð¶¹n£˜iì>d-YÁÈ1ðô÷b^ìËi_]oAoAoF& Yƒ¬AÖ WVÜVÜVܨ£¡P ¨­•­•­•ïß½÷þ]´T´T´”S©S©SéÚšµ5kk¸¸¸¾g¸«S¬S¬S|lÖ±YÇfùeúeúefçfçfçÖI×I×I“>“>“>3~mÀvÊã”Ç)ÚIöÓÓª¶#£À,•,L!127í•$éý”¿ŽƒÜÚ¯*ùÑY*œŒý~i¯»Û+ߥ­|DgDgD'Fæ¹æ[ï[ï›°%aKÂçÎ œ˜29drHâ7‰ß$~ÈrGU^U^U~·ânÅÝŠwIwIwIYfý™õ'Ù‹ìEöjákáká£ý)wAwAwAÔ†×{ê{ê{ê3‰gÏ$nFߌ¾}´ôhéÑR3!3!3¡ Ÿ6|Úði³Äf‰Í{#÷FîLVLVLVìåïåïÅw½Ç ÅùŠóç÷ñí~YSÂ`'#¥_¢ÜOªgÿ6ðœ+‚D¨ÓÓ;¼·;ê51fì“>×Yvuë%æ&æ&bd W/Óë§×O§W>é>é>é¨ EÞÆ¼yƒÝ‚݂ݮ^¸záê…C!‡B…l?¼ýðöÃ&d² y ûö-ìûŒ÷ï3¾Ð|¡ùB³o³o³osÚ”´)iSˆ*¢Š¨B%ÇÚ9‡³sú-Öß'(íãáYž³Æ±idE±ÍÒk¸4cÀÚqÛ'ÏècWßZßZߊ‘ ƒ“›’›’›B;®^«¾V}­Šú0‹7,nÈæÈæÈæ|ÏXWTUTUTÕÌÄÌÄÌäö»Ûïn¿K K K ûPû¡öCmçáÎljmÄ6bŒìh…~°=!{Böô±mãñÛ~Ê›-žåÍÿœ]ôËÿ>®°ý pd´¶KªbwÈ+'…,8×îºðõ¿Ÿ¿C#ŒW“ÑîýýÒ:͵Þ"ñmåßU½«z‡‹£L¹‡ÜCNÑIÑIÑÙã°ÇaÃ÷Y6q¾æ|ÍùšöÿÿøñãÇÑ/ð}ÐÎB<;Ùæ³x2NPz&Zí´è¿«©7YJ™Oþ¡’ ²þùâÅoã3ùWªMðö›“"S¢[&@æ¹ØÇ£12N÷\Q«ºöhÃÃÃà =>÷øÜãs}ÜÓŸö9ísêßg-!O2>5m#À_,m:“1k­Õëè]Ò$©ä\Ùä’çÃgss¤ód³1þ–Ñ+¯^œíLûºŠz‹z‹z12apŽ;zìè1ÚqE:G:G:‡ú05Q5Q5Ñáº>ɬ¬¬²Lv™ì2Y{{ûÅÅÅbíbíbíæ‡Í›RL)¦ÓŸ­Î€à+//§¸OGì¼,*ÃhpÒ3ÊÜ;9EXþdz*¥x…×Me«L ÓªbÌX«[áw%í‘wZwZwZcd2¾’_J~)ùå€ÚµjL æÖ±[Çnk<Õxªñz Fí,4÷£Ê´jFˆHËÇ›œÐú‹¥’™—)„{'k‹iá…µ«5èýû/Çð®¢ÎluÆËϘ<Õ¡=N·nÜ>`d /ñªñªñ~=¢Äç‹ÏŸÊÀ÷\KÌ™e©"°‡AàNfO&“‘O–HÎ¥îÒû¤Æhð6¶û‘âÌ´Ç™ü[òoÉ¿ad·¢\¤\¤ôñeJsssÔ€qlÒØ¤±Ic ×Õ½Õ½Õ½eÊ:”å»Âw…ïŠL…L…L…Ú}µûj÷‘þ ýAúƒ $‚„ªÒB ?i"i"i"íä>£Wšõ-£À_þÿ/ÿ{SïâM«gè²Åp˜}0û þ|ýùúó‡áûq›Ù”Øwq$ Iˆ-àš%¦0ž3Cì–œ3ûcþˆYùÃï¿¿ÿþþûÕ‰Õ‰Õ¸ Fí̳}’TØL=FˆHOg¨‰ˆþ{öâ2N±ÚD¹½ L(~y*ð—¿ÛPv‡à'F €ë<7çéøÓÖߞǞÇ—Øà›5-lZØ´vDÝó»çwÏõ€ï¹–X*rÚj'cÀÊÕ«Öñôè©H;+çÇøð®Â§†’¾}ì&2>l|ØxŒLøV…^…^…^´#êeÚË´—ØG€xxxn ß¾5üË-–[,ñ¯â_Å¿*[þ¶ümÇœŽ9s&‚‰`B­†00CYCYCÙ>žû’¤ÓôcãRz!î·þÿŒÓfúzK«Í ­6¿ ¿ ¿ÉƒÊ•*k×Ö®­]‹‘ÉÊ­Ë­Ë­&M6šü­áëŒgúÎËR¤„­X*Å_– Ú­©é陞>¸V!Ô>ì«Ø½­'§ñÈÈ i}ëñœ"N§ˆöµíkÛ1º`ØôñÕùÆYŒ‘®±Û6Ãûÿ÷Y¶R¹bà?ûõ+R|À·—ó%£ÀÍN[ë¦ÒÖÿˆøñ#â™ð­‚ôƒôƒôiGTµjµj5žØßu-±ÊéRùì*Æ €×:]å®ÜÆÑŒ[Ø…ûKUЧß=¿{~÷02á[®=]{º–vDu?ì~Øýõ€Ÿ ``>zøè!ííñäóeß2r˜:[«ƒYë×ÍΜ9;ÓÃÇÃÇç* * *€¨ *ˆ ŒØ‘ÖëÑëÑëqùüåó—Ï<^ê^ÁgΧØéðä‰ìP‚Þ·¢wT_šÊm>±å®çt^­S‹´~´Ï¯=¿öüú†Žv†±Sp˜õš"R…>6Nç¡ï¦ ˜85™-†Ñ6‚náÞZ¢[C{´6Wm®Ú\ÅÈ„oe`n`n`þŸ¯'®à_Á¿‚è$:‰NÔ¾çZbµôå.aÆ €Íóü_HÇH\±]º=á¯}¼ö1¾4 ߀z•z•z•v,m|³ñÍÆ7¨üœC¨ÛS·§níBMt¯`0ǯD[z‚¡‚ÛaØüY$ù‘þ©¡\€žö|ÚóiÏ]fºÌt™YYYI#ŽÇ0†‡K™p™p™°Ðx¡ñBãûï –eSe¹ô¤µØ_ý¬!rGååŽïúöߪ¿¹+öžˆÝ&ƒCiæžæžæž:t@ïÀàÐÎ-;…e<w1BDÊyžU‰™4ôøëßÃ8pÃ-vº}ì÷pìÔ±SXÀ7h•k•k•£K®®®¨|ÿµÄrûÊYñŒï9OzÓØ€÷Hß‘â¦=ΠAƒ6bdÂÀ½Wy¯ò^…v,%°&°&°¢>ðsB DƒÐ 4úøèU\Ð¢áƒøvèmH¦“„ÂÚ Ä Ä Äö9²Ì›™7;®q\㸦ĶĶĖšMͦfc<«g^ϼžy ¤æÒÛt^;Êqoÿ­úCw÷ä%ÂÏMr¬Wý0›……­ìxÙñ²ã ð­úxn¯ð#> #D¤Òÿð¦þûÔöàÂ…Oä ß-Z§Ñ;¸–Ñà9´'ÐÖÿZîµÜk¹™0pQQQ´c©rkåÖÊ­¨|ÿµÄü¤ƒ3=t»ÃÇGI¼ö8ãÜâÜâÜ02aà.ýséŸKÿÐŽ¥Î':O >ðsB $Ú&Ú&Ú†v¹¶¹Â˜MàâÛ¡´Ô’´ÉӔ¹®±dÑV¸\¯\¯\¯Ñ¢Ñ¢Ñ"Ð,Ð,ÐL×Q×Q×q(÷*ÙϵŸk?·ˆ\D."SJ)¥”RŒpzn,½±ôÆÒÿ±÷œ5{-Õó=ÄS&3~ôKÛªl¾ºðÙ¯ÓþQx¯Ùÿ+}•ñ*ãUF íL"’Êõ€½œ"Ò¥¥Â-Ó…¿UäžÅŠËí9¾CisÝWÛ©ÿJ[ÿ……ŒL¸Å{ï]¼÷ëQÄÁÉÁÉÁI‹GcèÛG«îé–ž a²{Ï9Éþ_utCtCtfEÁù‚óçÓÎ$Ôƒf… ?6"=l¥d4»ìËñ˜ÙÉŒük ?Õc¾£C?U}ÞŒóÜÿˆšq•sL¼¤§i,>ƒÑàÐ?ÍP˜F[ù´?ÓþLû#óg+’+’+’‘‘××מʕʕÊE°¬ÄÿØt±=·=·=—v9ßr¾å| €ïƒvâ§J™pLB<Òíò¾@PÚ㬞U=«zFæÏ =&=&=&ž3ž3ž3F0F0FðÅùç_œO{šö4íé@~Cù…ò åú¸ªÀÍÍ ÀÏ 00¯·^o½ÞöñݽÓs¤¦÷"ÊýÖ¶7畽Áræ}Ì‚L›h«úzùë寗¼wÚyÛyÛy£å£å£åW^yxåá¡D–Xz`i–P–P–P¯P¯P¯ÐÏ3ÎO¹r;åF¯2C;‡´ToÕ›úc#Òì¶UÕ¼ÿÝî¾’™—)$â’Ñ^…êþêèrå  ¿~-_~£Àv^ªQ"m´•¯²«²«²ÃȽ³³³cïÅÞ‹½wØâ°Åa ácÂÇ„1 “5÷×Ü_sÿAþƒüùÞyÞyÞy´ÿ¦Ì Ì  Oÿ€ïdFÎŒœ9}<ÕÞ±@R¡ ðȵ¢$­I\Òg·D·D·FæèU»±vcíÆ0æ0æ0æ=¿îùuϯÜw¸ïpßú*‚å ËA–ƒÛÍ·›o7’ø$ñIâÙgœ]@û/Û™Û™Û™Ñð3C §G¦G¦G†ÞR/©ÅÃE¹±îÀÛÛÂÇ>J§­¤î¯º¿êþJô½DïPú«Ó¡Ó¡Ó!A&A&AfÓÄM7MÊR~÷îÝ»wïNÍJÍJÍêÙг¡gÃØá×5®k\× W™ü ÅL®kÄßãLÍ«Ñï×­ªõ'Ñ[ÙÆM;<ƒ™^M2ÿÎü;óoÌ@GŽGŽGms‚V‹©e3BPJ{læûeÖêúÚÎÍ“=õ%Ü {¼è¹ÂÑUWEƒf(ý/7M’(`´§ÿ~i•¦óÝæ¬¤}u=á=á=ᙣECSCSC“×k¯×^¯%ŽI“¶ w(ˆÄ bz¾îüsg1¤MýËirD{êf†B í²cÇ6Žè&º‰nŒÌÑ¢êFÕªל¯9_sžj2ÕdªÉ]Eè¯Ô_©¿ý€TèãÐÇ¡é-æ:ö%^Ðûˆp·ÿ¶Â2äƒÖz5,ºVt­èÚHô]÷Óî§ÝO_~zùéå'óyæóÌç eá¾U{«öVí$Ù$Ù$Ù.ã.ã.ãÑ;ª#¶GlØNï• /×1› )ãy8ýÖÏý~ݪå¸Râ›9Ôfډ̤WŸªøªøªxÌ@+§&§&§ ˆ×kuÎK²1BPúeKç "Büa\Ì3ÛϨÛfÇmýkŒwWíHÒ÷£=fñJñJñJŒIƗߜߜ߼.p]àº@&†Ä.Æ.Æ.ægégégÙÒÒ‚^€‘ãßëßëßÛǧчž=b €G¢=•h(Ûǵ‚¤¤$ŒIFF¥R©TjŠOŠOŠîÝ+ºWs-!++ûœúœúœJ‘¢HQ¤Ðwð³A Œj ±†X£¦¦ÑÇ¥Ò2+oîAÄKwÛç+¯–H<œ­ÈG[½Ã¥‡K—~ÏÎ$9‘œHN_¶›¶šc5Çjζ |½æõš×±F±F±Fíävr;™ñ‡s)K)K) Ý»~ ÞÙ ¢©áy7=õg‹~ÿ‡»úÆÛ±\ÚÍ­K[%á„NNN`‚€¯uœê8ÕqŠvÞ9>Ínª£Ý5ûåNß5ÖbÛfx …rNgkgce^%ML[6õÔŠ êôô/ÿæë»‡íU䚯¶Pë¡­ùÑÖ£­G[‰&¢‰hÂÈd4ùIùIùIºnºnºnƒ[ƒÉYŠÅpþc¥½¾r–Öí7ÇwK={é©p*IÃãOåòýTQƒ3i5÷uTçÄøÝü¤4ß7óÜ5Ùköw¯0Þ®»ƒÏu(+@¯›^7½nöNïÞ;½ ëB·B·¢Ï êÅ4ø¨€G¢]wùZˆ*íúvûvûâÞ_ÆÓCô=IÇ“Ž'ŸY4³hfÑàÞÍ5ù7q;.PÚ?»ó^¦A§tÒ³B£ÏвÉUËRT„¾¬3S(Ë%U¶G/~¤øðÁ_sÄdNÚ¾TY Âf.È2M~(k‰g²ÏdŸÉR«©ÕÔjt)ü c ©©¡·t{(|ö¤ q/mks|sÒl_º÷OgvdvdþØž% “…ɹÇrå;B=B=BÊ"ޘ͘͘í™à3Ág‚­›[7·nfœ1ÜûGï½ð»ò»ò÷qÑsÚ Å©:<©÷dS[~æè÷ëV%üÚšÈMôúúÄß'þ>í  ÊG”(¡7ßlýUw;£¨ÿÙê–Îe´cþº=9Q%^d=½¹zúÅé§_¼õÏ­nýó!öCì‡XÂp'Ü1J¿¿¥¥¥íþÛý·û|e¥!-·‘[×»ä¬LmEd(–Åð®T»>%зJȾ]¯¼/ûš{BFߺöKz”ô(éú† å:å:å:½9çd^~µÂCF{zîÀ`ÚÿÍOÿ½¡¹Ž³š^͘˜˜ž{xîá¹ÏbŸÅ>‹a”þ(å~å~å~†&†&†ß°±ó’-Â[ùrƒ'.Ü(ï[óhÓ3qûm|²¥Swý³^£.EU“âüg~lR•R•R•ç ΜCÿÀ؆FŸ2Ÿ2Ÿ2zK·äówþRaBèû¥õÜr*IºŠ^­^k¿Ö~­Í ¹PŽPŽšššœÞ{zïé½C‰„ Y Y Yƒ‚ƒ‚ƒ‚›N4h:ñ£^—Ç;wè§ÚK×’ø—}i[ù¸ÓÁÞtŸžñ6ãmÆ[Ìð5¯¯¯ÚãñywdÉŒ¦Ž®–üÞLÓÀù[ß—ÙôØôØôœV:­tZYz£ôFé b1˜€q;r‚/^<ð>ºÓ}¢\zm÷Ìdoý?jûÒën°ŠƒÑ%>³émÓÛ¦·Û¶´miÛ‚€¡ÛϱŸc?íl³K0ð/ÉÝ£1fÌöÈ›4K9Ÿo]Kˆ®])ºòëî®ûäøÉñ“#ÑH4·#jEµ¢Z¹*¹*¹* ¤wsÔ±©žZ`)ÏAðš³²þ¨•j¤ÿbÅ-òoxã97äÈíììzö.ì]ˆ~€±0Œd‚LMW˜®0]AoÑ–Í÷p…ÚŸ9ú}jÙC~ ½úÜšzkê­©£ì#ÇYêYêÙw]ïºÞu]¼yñæÅ›C‰„Õ2Ô2Ô2“““êWÖ¯¬_9ÒÇ_jUjUjE÷ÍÎös}íôöߊ4m¾sX“¶z¬¬¬½u½u½u˜ à‹Ï|Ÿù>óõñ„u¹©Ml…D®ùjCuÄ·CoS§/'©”׳Ùί:¿êüª·Bo…Þ Q¨TŒä¡è²ì²ì²4 6 6 î¿òS³¿gމžé¬ØBY’làÇh+Û Ðß´ÌM•—ëÌŒÈXÊ9Ÿs>ç<Æ EöÌì™Ù3ig%¦å‚¼Ln‡«]¹Ò!zöñ¡¯"¦/›¾lú²›57knÖ|xüáñ‡Ç„áF¸a$E½]½]½î_ºéþÕý•‚ùr¹&f(¬œ¡z•ð6Ÿk(Ëh«Ö7û×8«?Zpx–4ï±þ_ˬ³ÌzPÉ]É]É1c `5zzz¤¥¥éÞxÉë‚êß-ú}"p1Vî%½š˜ÿnþ»ùïD*‘J¤ŽúA0˜GÌ+_P¾ |Áµ#׎\;ÂYÈYÈY8¸‹2š2š2š^½^½^½5Õ5Õ5Ãü ˜¹És“ç&ÓþÝÙ ëæïcC¸;V#ãžZ*…½IÀyvm%===ñoøÝ:Ý:Ý:Ú#ßu Ä·CoçB^¼³i+|Cï†Þ ½ùóæ åbîIæ“Ì'™ßX¼±xcA&‘IdFõ@|Úûiï§½Ó¥§KO—î¿ÂºÎ•- >¦‡j–µî»YO:5Ú4•å%¸mûu~Ûý¶ûmÇx€Á¡8P(ôf˜Ã\/wʱ"¾J{jÕ›L…\zvãuãuãUx®ð\áùàVl“Ø&±Mr’t’t’,=Yz²ô$•J¥R©Û‘oœoœo<:Çæ,™©tit­`ÓyWtæÐ™Cg²÷eïËÞ×{©÷Rï%Œó¯666ô_Ãõö *ùW5ÚÇN×]6Ú×ÀWO‘­ïÿõ^Y|eñ•Å08níníní´sËœÞ}¡q‡Òn™vwž˜9mmWe®Ê\•ùu/4„6„6„k‹i‹i‹ iÇÉó’ç%ßNy;åíê4ê4ê4Œó¯Å‹?®ÿ»§|\øf7ÛŽƒúÇFñ£LJÌ4 œØµ¢Å)ý¿Þ'EOŠžalÀh‡F¥šäšäšäþ—kÙ-—ˆ½£š¥]6ø<–¢ßN•$!}æ­UK|fާ÷ÚµÓµÓµÓ»íþµûןnp 2A®á­á­á½¿ëþ®û»$?I~’ü4¸Š<‹xñ,º!rCä†H…\…\…±“ØIììÿ4’4’4’ú¸çø·C.ÿ Ð\Ëß:×ruUußî¾Ý÷úÀ¿(–KŠ%½Y=ùšYêfˆr×§ ‹ñ=¥­jp@p@p@ÿýÒÑÑÑÑÑñ"üEø‹p“&L å2îÞ§{Ÿî}š.‘.‘.ÑSØSØSøsŽö¼ùyóóæ÷_+ßÅç¤d޽¯BVœ iÑÚ* ƧÊ6›Þk·Ë²Ë²Ë"z‰^¢s# \KyKy ݇ؤ¦”Êv#Êýæ{§¾1QˆaÙÅ&ÁTL[Õ¼î¼î¼îþû¥9®9®9.tèþÐýóWÌ_1ÅPÖ'ªOTŸ¨~³òÍÊ7+ÉíävrûÏ9Ú#m#m#ÿÇîñ*KÿTž:öV¶Yö«Ö«-íÿµ{K{K{KcV€Ñ 0ŒbŸ]?»~vV<­xZ1½åš²ŠÔ1®™æ„^Ôº2Ú/ueýí}RM©ÿåé’â%ÅKŠ»ºº0B¾Vç^ç^çþèð£Ã«œQ9£rf(/¯¼¼òòÊ÷Mï›Þ7QèaÔ°/¥¸¾¸¾¸»RX¯ñð­Ôüí^sZ5¢ÜÁµ*'®ú?;E¯GzWô®è]q_ß ¾|§ç¯oâíà´%äÌy 9è~ÃsÝVÌV!Óc{c{c¿µºÅ»Å»ÅSާO9¾ƒ´ƒ´ƒ4”÷åí.Û]¶»$ßO¾Ÿ|¿ë]×»®wc{„¿Íz›õ6«ÿšdW?lU»?¶wÄéªJ¶Öß·.nÁ~Qº_ ½rñÊÅ+˜à[<x>vVQ{µ~ ŸÝomW3]~!ÜÇ,­ªª:¸>j;ÝvºítÔ˨—Q/—+-WZ®4¤GVZ}huöêìÕÙ«{Ïôžé=3¶Gx‚v‚v‚6½j°3Ofò­´ÞðJ+ol¯rflÙ¢;AÆ~šýÔ»tï¶|bùij"ŒF€`Ôk—i—i—™_2¿d~Iÿ úëN‡¢%Ç‘Š^&L-¶š·ÅÝÐ;pn£õ¬ÿ±AÍÁâƒÅ‹)ë)ë)ë1*¢1¿1¿1ÿ©ÎS§:zoõÞê½ÊÇųêgÕϪoœ²qÊÆ)}Üû;ñP“˯q‡á>à9†KWN¢­ð ®\/¸0ªà Š)Å”bÊyœó8çqÚÿ~þa¹SˆuÒö›2éÓ} × × ×®^#ñ‘øH|é”tJ:År’å$ËICy_^¯°^a½B\v\v\v‡k‡k‡ëØÛŸ¥>K}þÏ®û05t›Ö™1þ0”¯Zê­´`ƒŽCe›çͦûõ>ï&ï&ï&Ì0p­s[ç¶Î¥7«ìÔ8,9±î@Z›Ê—“åèî^ö&ïMÞ›¼áêµÎqã:ǽÈ{‘÷"Ï$Ï$Ï$oH;ŽœÞ{zïét–t–t–žÌžÌžÌ±1¶ þ,ø³àOz¯Zê)OáT…ö­ït«žo·âŽÓúgŒvÌ6ä¢W™¤ž¤ž¤Ì0º €±b 1…˜raí…µÖd)ï¿ÇÁLniÂKýzF»ŒÕZJoѵÚC*Š$ýfûÍö›!0t-)-)-)áñáñáñ‹>/ú¼è3Ó0ÑØr§îÕBÄ·Ãð<àN‡À'r´^°kÁ®»0†àk¯¼Zðj½™ù“úÆmkD¼ý·vœªçDòi«'ûNöì;‚‹à"FðË7½¯z_õ¾ÊQÊQÊQ²É³É³ÒeÜ¥——^^z9òYä³ÈgmSÚ¦´M]ã™”AÊ eHqHqHqÐÕ6¹Ú§~žè÷?maº¿¡Æaõ-kgÓ'iº_³ÛðaÇ ˜`´@ cÐË·/ß¾ü†»9¯n9ø»„]5ZP'þG]´*½tG3âhÀ6=áM9fÑ(Ñ(Ѩ’½%{Kö¢ÇGN»e»e»etototïªÐU¡«B¿õ#âl•5,{•Ü[+çy<݃%s)w8mµ[Þ¶¼my‹q _ÛÆ·oíŒ!ÏŹ–<Ý´Û`‚^Ú6~Úª23½w··—Þ^z{éû÷&EŒ"F+))9µâÔŠSCzþßÜ;sï̽²:duÈêf­f­f-FÉ6Ñ6Ñ6Ñô^KÙÉà š?iôûõÝÀ½i„áä­BKX èÕªqOãžÆ=˜` ¨¿Q£þ&!!A;Ÿ¨ø®öçm°;Y˜¯¨€¸—¶]nyn׬wôfã&Ù&Ù&Ùïß§¤Ù¤Ù¤Ùœœœ–J–J–CÚ8zý¯ë]ÿk\p\p\pÇåŽË—t(³lÛÜ3sÏÌ¥»[Fó¡­÷t“°î^¹ãŠþEY÷i SKi«$è%è%èEj$5’1CãC cVç”Î)SN\9qåÄ•/ße8Ej¦ž»k{r¾´MÙ´`&Í¢a¾8Õc¨[pÆo¥zõ•ûÃÄ ¦î`ÍülàGxGäŽÈŠ$E’"‰^þã*¿3¿3?¡1¡1¡q³âfÅÍŠý÷—Rà¥ö ~·ÃÛŠMÚÎuü9mµ£ÿŠþ+ú/ŒRøZsksks+Ý(ŠÛg/Å¥®¯Û²w&û´~¡W±k¡×B¯…2NÿRçRçRç¾}óöÍÛ7œ.8]pÊe\MsMsMsÿ`ÿ`ÿàááaFx 5 5 5ôŽ9õœ§¸J¢ß¯[Ò?/…ô%Åfßáèã1Ë·-ß¶|ÑF´m˜!` J¼K¼K¼éÍÃË>Ø[ÏòCÜûukZôhÄ2z{¶ìÙ²g˧{³z³z³rŒsŒsŒm¨6TêvY¿týÒõ‘·"oEÞj›Ð6¡m#¼Æ{ãï¿Gw#îŠýþÔÚˆ5ðž |cËe]^z;³é̦3›07ãC ?…òÊòÊòʵ×>^ûxp‹xa N«äY³§Þ«8µQúÕó(—MŠÅU#$µ—~}É)ïò£_ÕÕž)]óTüç6˱<)›Ýî« ö̲àwfçÜ_?¼îðºÃëZZZÑ›Œ¦óvçíÎÛt7î¼—æ‹Èvx[e¯+ah«mvÚì´ÙiŒI õêô«Ó¯NÓ›«]|u¥$ãRW½ÏjzUÒÕÔÕÔÕ¤P)T •¡;›à#øÊÔÊÔÊÔœÏ8Ÿq>ÃNf'³“·“kkkðNöNöN®M¯M¯Mÿž/¥ã]Ç»º÷N¹{(µ q/½¶úgzÚ÷é>ÁÚ.Ü.Üs# œï}ßû¾tg•M¿Ü¾'Žè×r÷3iºÏª·j°j°j`ü¾¦ÈRd)²:::§Nœ:qêÄvÙ=w÷ÜÝ!Ê!Ê!ÊÍÒÍÒÍÒßóµ|¬þXý‘îê.f—ñ%5¬éµÙ‡V…«] ûkæ7Ìo˜17#C ?ÒÚÒÚÒÚ='÷œÜs’‰Ù“ìIö¤:Ž:Ž:ô#«ª­ª­ª¥íA“yqk­ÖŽD«ÑpÏ+nC†„!F&ÐrÝêºÕu+½Ùã^”A“ôOú̳Æi[^èªq{²,ûéÕ§¡¸¡¸¡xTv|@T®©\S¹ÆUÖUÖU–_…_…_ep+4‘;Îwœï8šõiÖ§YD QCԌğÑ;£wF¯0~‚’ Ï*9}œád½ý·/®é+´ÑëÍŽsç:Îan€³4µ4µ4¥7«l•÷”{ùsF¿ûº£º¥CèUFŠYŠYŠ™$O’'ÉÆ~§.¢.¢.z[ÿ¶þmý…È ‘"‡´ãˆ‚¦‚¦‚¿“¿“¿SggçÈùRí¥ÚKµiÁ:TÁaÖkD¼i¯ÎÔ>)aM[Cqyqyqyª;Õꎹ`ø©u)w)w)\¸p]%P%P%ðGŽKÖ.Y»dmLiLiL)ñ;ñ;ñ;zg´ˆ–Ž–Ž–¦íSé-š¯Y1\tZqïxÚRñ€ºg¶ðøÈ»jI²žâ®åû›ù4›'{;Ç AQç™l Ç™˜(]¼d÷Ô‘‘c`>²ÏÂ>6‚nÞѼ£yF&ô¡•h%Z-},},}è½#_Ò±–ü ››ü —´>%oš¨}yÓ%¦uôjRÔRÔRÔ2¦FBÑAtTËTËTËÜs½çzÏU\J\J\jp«8¾|3øfÜœzsêÍ©Ô>¨}P#.—ˆ!=#¹*¼*¼*œÞ_¬,KÖúŒpwàí Cûéi´•¼¼ìò²ËË05ÀÀõ–ö–ö–êÉéÉéÉÑ›¥Mzn1‹þñóD¿{üCKé÷ÿ^Y¯_¯_¯?¦†?ÁOð———;û;û;ûs(p(p( rÇ‘¹¹ïûÞ÷½ï×FÖFÖFýÓKÓKÓKé~J~û6½„»iÉf¿ì™VÌ–ÇÒN[ɰ”°”°ÌÀ˜üGûÝö»íwV$¬HXqìÒ±KÇ.‰\¹.r}¸‚^111‡#GŽdÔgÔgÔSø(|>T~ô:ÿøüãó}l-®|ãÊ«ÐƉKÕÂ\½âñ–ÿ]sßÀG¬DâžÀó¯3ÿÝLùÔ ÚcÎWÏWÏWÇÈz(((Öë¬×Y¯CoöÛ—(o5kf¯¢©§ÌX½˜•U¿ÊNͼÿwÔs©çR¢û#?ÇŽÿïéé©XªXªX:¸õKKKÖ•WV\YQúg韥R?S?S?üHvõìêÙÕCû›$¬IL@ û­í'¾ˆ‹Ú{èõWS{S{S;æF¸ÁÁA G G Gzs‹Ñýãóëì6º*ŠŽÕèw“›ûCÑÚþßË%Ê%Ê%~ŠaH•{*÷Tîq]íºÚu5¿%¿%¿åàÖÂmÂmÂmwvßÙ}g÷'ÖO¬ŸX‰j¢š¨БäùD¾\¨\¨\(íoŽ8h´CábÝom3ZWîP¡×_d² Ùs#0À߬F°F°F0U2U2Uò¹Ós§çN¡C/†^ 333ˆñŒñŒñÌÐÌÐÌÐìTìTìTDÅÆ¶¥nKÝ–ºÑ~P¿ï~9Y“qâRÞ<5«¹¿üÿ}–5¬„,–íÞÑ$³å0×M{¹ºSS=óEÔ7šÜÎÈs”/õë×¢´þbs`£Àòò§È÷ûx¦cPIPIP F&ôÌNf'³›0™0™Ð½ô&~…;€ã䇛jyŽ‘ XëÌÅ ùï~2¸'íÔÿeÇ—n/Ý^ºaœ4NnœÜ8ùɵ'מ\Ó™£3GgÎP¾xnѹEç;;;QÇQÇQûø<^;¥vJíz¿¡Ó2i‰>/ÝÁµ§oï<$*ÖG¬.ê$ê$ŠÑߪ5±5±5QªUªUª•Þ¼-í;·ƒ»áHdš¶Ü±úžTÈËW°2̵ðXÒÿ»^IrIrIòO=D:‰N¢³Z¯Z¯Zï^̽˜{1âÛÅ·‹oÜ*‚·†·†·Æ¥Ù¥Ù¥ùì³>Ì"ÂöÏf-ÏZžµœö7Ì&sö°ÛãÌ'þ…@wpí⇳cùöÒÖ6rväìÈÙ˜€Ñ ’3$fHôñ\NOÑtYFJ¥ m½aüïaÝfNa1‰;¢y‹øò_ÿ=Ú¯þý—ÿç˦ÐÿyE «Œsæ ?B[ù+ ¯,¼²#‚RO©§Ô[ï²Þe½«ÿ‹n æèÈ\¢J™E”ŒÆËU• žj%ëÍ\ÓØÿ+Íyó:ç5Æ=-SZ¦´L   Z`¾À|ùP"a[ª-Õ–šŸŸŸMÎ&g“³Ï=ôüQÚé1ÑvT-BÜ¡´f±è.¢×=-=-=-áð­:Ã;Ã;Ã-^´xÑâþçüÍwæ‹©Œâ­ž/…hK©p¸ñaѤ÷™}™}™}«˜ª˜ª˜06èùœ÷9ïsžÏ{Ÿ÷>ï•X•X•X¹ãˆ ‹ ‹ËÉ+’W$KÚJÚJÚ¨Ÿ¨Ÿ¨Ÿ–•,+YVBûï.ÍR¾‚w(m¡÷Ú-´µ³³³!š‰f¢#`€!¡]ú³ÓÎø‡ž•ûY³lá¿ßQž£eÌ;@÷ëWÄí,#®šÈh°ÚUW…}lܺwßÞ}{12à[yä{ä{ä÷¡M¨†S–Èà[9Uõ2ã_¢jº]NïÙÅ™Ubeý¿.þ.þ.þ®ª¥UK«–b$|«¶ô¶ô¶ôçûžï{¾o…þ ýúL# íe‚ºÞi„¸Co­Þ˜¬žµ™¶Â1…1…1…Ï08”;”;”;Ç«W¯î>Ò¼ÍÙfÙ©*½ñC_ßoÙMM~Ó­û] ×/\¿p}ëåÖË­—1¾U#O#O#Ï“Ð'¡OBuŽèÑ92k ê<³ƒJ„¸CoU™¦‡r]îã®wƒƒŒg`€†„vÑϵPBLÁq‚RŽD!)±ïwùúÞßÿ¯ŠÞlˆ›£T}ùaðïÊžWšB{-VO÷ø'¹Š¶þëÚ×µ¯Ã“ü`2ü2ü2ürMK…ÿ÷³4á&ªÓ¨žfŸ ºá‚Tã¡-t÷h«K,È«°–¶–¶–îQïQïÁÓÓ‡M§N§N§NüÁøƒñ7m(ÚP4”˵V&›gmcäHµwÁ+^ÅËòûHâ+åÄS8×M½ÉÞΜ(:ƒ`kg´£}¿<°RS©èBg¡ÎBŒ^ºpÎpÎpÎÌðró¼·˜–#Á8¡ïÖøZÙßôÍUù§äU\%_%_%S}¨>Tôþpiámámáýò ±·Ü^p{(k‰ûn†÷eÄ3L}·h]œFï×GËøpt—ñ~%~Ú:Ÿ.8]pº£`€!¡]ôóÊk-f„ˆT#än]ªË×Ǧ¬ï˜r’Ñ¢ÜA¾:Í;G^FÑÖ‰ñã%ÆŒ?rš[›[›[s s sq¿ÃiëhëhëØ[¹·roåÀ/®¹šèÉHq|bߘ¨½ëû\~ê±ØÑ­Ÿþêúò•ø akøß ühãßÅ¿‹‡¾þ>º-»-»-_Ê¿”)o&d&d&4ðžzÓôøƒz2#ÀÇ ¶E ŸîÿU0Ð1G§ß4TšËÕËÒ@{œíÚ7´oÀˆ€¡«X;±v¢Ñ[£·Fo2Ûs§ ¤±z­a»b/lzØö·œÂ÷‰{ d”ßµEðîJ±Ý¢šæœŸr´ÓŦ‹MË'å“òIèëï´:-j+j+zîôÜé¹Ó ëÖ+¬¾–h m Ñ•G<\m÷ž7õèÞiýœúœú#`€!é#Þ-W¢©Î©r–Ó©°°¯M=݃)¹zŒÀ²wV¼t ­ÿÒGK-}ÄÈc¦U¡U¡UaÆçŸgü{y%{Iö’ì%8›SVwVwV·¨Š¨Š¨ÊÀ/´±ÞcÞÆTz¼T¹]¸ìiI‹òŸµ³7UëðòbÅÜÌаPr­¢Æß^7 ™íF‡gñ‰~ëýç·žßz~k§f§f§&zöÇ"­&­&­þrǹ¥¸¥¸¥8½^£¸¦~6xÎÈðlö7U>lµåÌì²â]îWÚÃ:ô".&ÒÓ ošn¼O[í$‹$‹$ ŒO^1%1%1%ßú®ÍÝ4óOÖ§óոδ6-}´BbÅÑ÷êrÄà‚Þ“mo¦+íæ~ú\2vÉ;¡¡.Å…SM¾õ¨<Õ<Õ<ÕÈ=ärzöÇê\ع°saüµøkñ×Ö²¯e_ËNÛ_ªõ3~ãŠcä0µnáæP×ÿ_E(Í.-AoÝ"5U ¯Š~ùò!ã`€!¡]îs½&«Ã›${¸Û&‹}}l*k¯*E|°ú=÷óÉÊ´õßø~ãûïÿ­[-¶šöÈ_S_S_SqN0¨7ÄâMLDLDLÿ]þ»üw‡þ$6q!î³fGg¶O0þ{öG¾³‹~™•ÀûFý÷\›*ËÍ¡ÿ•ƒ Ô:×:×:£Ó‡¸qâhûÎÂ}m®ã?U÷ëcþý2þ1—\|Z yœ¶æ‡wÞ}x7Æ$Œ2+™•Ìê7Ùo²ßäázªëôf±—ìëD[4É\¿IM2àÞ* ;Ëm¦œŒ Ç>æBVQ&ß¡ÿGGGGGÇV×V×VWô#cJRORORï#°2\ ÝÅøaêh¹÷÷ë6FÜøœ’mÍÕ<ªyTƒ1 Œ0ÀÐ.÷YÎMÍçfeœ ô?O™šh«~gÖ@~JÑ낙Ȯ½‡øE^nžnã¦Éä9%} ã¼.5™[â¶ÒÖÿÍ!›C6Œî—êž×=¯{F&|Oun>n>n:::ßg-!â+â+â{#ðFàÀ ¦ ¦ &ôÅh¤,¦,¦,FÛ¿=‘¦¬úï9FÏþ·å6g3d¡»þÉ&²‰lŒLø± ɆcŽm8F»ÜW£º]Lða„ TByW·ýÿo"šÊ²†u‚ì›ã=vÒû÷J’7²³üñšSäËÍ|m4oÓâ/ÿ›q`ÙÇÍ=úxÊQdrdrdòh?lllô>4¦³}fûlî²¹Ëæ.ãØÍ±›c÷@.ËJòKòKòo·uÜÖq®]/º^LŸ•>+}õ õ õ *<6ȩ˩ËõC’'¾ 0ØÄ˜Ñé,oþçì¢_Ú¯Y ‚/•ÍøëÿÊȰ}ÕžI¢µ´•ÿ¸ê㪫02€ÇÇÇúûûp;àvÀMËFËFËfà¯ÂZ…µ kwRvRvRF&üX€†¤§§‡v¹Ï§¦5ÏÑBÓ/Ç&zj«ÙÑKÜ[¥ÝTgéä’å)dÙ5õ×}®£qŠ«gî[$´¡@¥êZcÔ F;þïi^çí+EÚšsÙpÙpÙ‚BPFþøúãëtCúØÊØÊØJœwc íl¿Oa=ˬ_t[n"¤%L[ÿÛn·Ýn»adÀè]Kî”]quÅÕWëŽ×¯;>Ú‡Õ-ö[ì·Øé«h‰h‰h œ|cíêùÒåK—/adÀè]K;-¼&ÿðH·é=+'©öqE(êmÔÛ¨·™ðc!ÇV[ulí¢_óLÚC7ÆŒQGo;+q•ûî•ýoa-yZò´äéûÂ÷…ï W÷V÷V÷d‚LG׸ºmuÛê¶½×iii†³`´£áÏÛ;OÌðH·u“žo×qè£þ/Ï¿<ÿ’ñGŽë*×U®«î³ßg¿ÏŽók‰¯…×É($ é6ë⪠jËhë!!!ÀЃf±Ø`ýõ?ÖÿÄÇÇã<{ ƒœ 9r&Ð.ú¦Ím_cÈvØ6¾û)Õ‰iPfºÏtŸéî–ã–ã–óQî£ÜG9"‘H$tÝyqçÅô^W¸K¸K¸ ÎA€Ñ«;€ÿä#ñ;€õ"U´kû¸¸úrõåjF3îîî_ó7wÞÜyƒ³ k‰Ÿgÿ~¡±üÀ#~ðŽyªÛhëÿœë9×s..n„á¶øÖâ[‹o}}Ì1ãcÆÇŒÇÙ0– d_²/Ù—^D§Öâ¶)ÁñíÐ[9»i÷f1 νœ{9÷^“½&{M¶\°\°\Ð#ô=Æc÷Çß<½×†3`4¢Õ-î¬ÍòA<ÒmYlðM2mýÝw¸ïpß1ºÆÌ¿O/¶¿mÛçÖ^¬†Y2stdzDKɃ¶þ)Z)Z)ZŒ9ZB$C$C$é­%¢t¢t¢tpNŒ €†ÍE‹5hÐ☩œJ@|;ô–[^úw•y´NHHðSõSõSUWWJ0|qÑÅE½Ë|—ù.“zŒzŒzŒqƘ·œ·œ·½#úòé˧/q&Œ.´ó¹ÑcÉ| €GºÍúÓû˜šbÏMT V Vcä1=-zZô4zë[¢·Do‰âÌø™×çEÔSÅätë«37Zv?mý l l lyÌxÄ{Ä{ÄÓ[KDXEXEXáÌí ›šššz hõV‡”³q×*Î8?éq:mUyyy‰Ä bÅ×}Ñt»évÓí ¦ ¦ &Ã}†û ÷ %>Íšÿ4¡L¡L¡ Å‚bA±ø±#ÍwµïjßÕôŽ6 - - ç#ÀhA;“óìäleñD<Òm°°c¥üSÚúgpgpgp3þȉÍÍÍ¥·¸w=îzÎ/€Ÿs-a¢.þšÿ$à‘níêT߈þB[ÿÏÏOÆ9ž¿yþæù½µD¨K¨K(80Š!f[·&nM¤]:‹­ÝÁfKE”ûÍ­ºçíôD®R¿(‘úø^êĈ‰Ò/­GZ´y¶áÙ†gŒ-Œ-Œ-† yräÉ‘'¹F¹F¹Fdn27ù\&öÛë·×o/½#|÷8îqÎGƧx_ñ¾â}Ú™¼wç+ À#מöÛyFTжòU7ªnTÝ-ã'þHü‘ø#ôÖÎsœç8ÏÁY0¶ÑÎÿÓzØÊXzt;/ZÈ—“¶þÝsºçtš÷ß4hÐ[Kùùùã, ³ò¢ò¢ò"zKgUWÁhbÝ·2ñGt]í£”:L:L:QŠ(e›v°v°v°ÆÚÇÚÇÚ¯µvÖÚ!=]x_ǾŽ}¯g¾žùz&éééÄ÷oO<9ðä½£òñöñöñÆY ÀÈlNÚœ´9I;‡z÷lºö-À#תÇÈýÊ-L[ùÖÖÖÑ5Š’Ø’Ø’Øè­.¿¸üâò œkc•ºžºžº^1ä›±ú¾€G¢¥Æ™µPé½óuDQ7ºF‘ÏvŸí>Ûé½¢'!OBž„à\]Œ+[+[+[ÚEótkíkF÷ë¤UŸèæžKïãGlTlTlÔðöZ×ö®í]Û“L“L“L·ºluÙê2”HجݬݬýeðËà—ÁÝwºïtß¹ñddD÷žæ¶lØâ¬`Laaa´³wä³ë™ŠÛDÛ+ûj’4mÍüüüFïXJ¹—r/å½õ€ƒ¨ƒ¨ž 0Ûqnǹ´3ÿ;½uÏ5zD[ç¹9OÇŸ¶æ[â¶Äm‰½céñÉÇ'Ÿ¤·–ðó÷ó÷ÃÝÀ£`€Ñ´¬iYÓ2z‹f©˜ýµNoñößòï4LXéF[½9µsjçÔŸˆOħ‘îÇËËË´ñiãÓÆï~±ûÅîC‰„7l ØOŠ'Å“:tè<0¼Gº.t]è:zÝsžç<Ïy87ÍÇâÅ‹içíÒ+¯ îA<íÛ’'1hk~¼ûx÷ñîÑ>¢RùRùRùè­ìÏÙŸ³?Gô=DÎ>€±á¥ÎK—:´s¾ÇB}_)À#ÒFÚ,ž¥¸Š¶æ.\í#*àRÀ¥€KôÖ¾7}oúÞÄyÀøŒ À’À’Àz‹f¥žË¥ÁFzi[ÉyËêéÕ­2´2´2ôGõi¯|¯|¯|ÖŠ¬Y+xð:à5”Hxåô•ÓWNN~N~Nnÿ­ý·ö߆~„ÊÊÊôþâ_ïüzçWœ›Œƒ*I•¤JÒ›·Éþ©2öŒ–mŸ¿´ÎŽJ¬¡­6¿0¿0¿°{{{P•D•D•QDE£q\¥;¦;¦;ÒWvvvDQETáíZ}Z}Z}hg{¹RÞ휳G×SuGK»žç·¢­¹âÅ'ŠOç=Î{œW¯W¯W¯7zÇÕS‡§Oè­%¼­½­½­qö02À#©’¨$*Wo_½}5Ý'©¨9¸ò¾ÈFèû¥•xzÛƒtºO´}ëóÖç-£u29ˆDÊßœ¿9³­–­–­ÖP"á…óÎ_8?,<,<,¼eqËâ–Ń;ª¨ß£~úÞ_q q qðr€%ÁIDATÃó{Ⱦâ}Åûú¸8§Ã'Y­ltÅ« Ý®JŸk8ƒõKSé@Þ—y x x nÞ¼!X!]!]!Mì$v;G˸zÝôºéu½Ww‚ãÇ "‘H$qŒvŠÞŠÞŠÞ´³}ÝêÍÏtn#²®¶óéöV}ñÆ—'3NfœWžWžW^MnMnMîèW!GBŽ„¡÷êîëÝ×»¯‡³€1!q-±-±-tŸe;õ°§Tœº¿û“dóŸ9úUZq±80”^•6íÝ´wÓ^¢–¨%j¿Ç)5”JMñìâÙųí¯Û_·¿>”HXWJWJW*P4P4P´qiãÒÆ¥?’èÔèÔèTz¿ùæ²›Ën.à À^?~ýøõcÚ¹zÓ*}Á{n‡«-Z㟬±„iÈ./¹¼äò’÷õïëß×SèaÔ0F]ÙzÙzÙzô^ËѹGçK\#®×p&Œ^¾æ¾æ¾æ´ó¼»Š¾®Ôs·ÃÕF\4Ú«P=”UÄ,ÑY¢³DÝ/º_t¿XÅ]Å]ÅMD#®ðuáëÂé>pêîÄ»ïNÄ9Àh|'…³ gΦ·\æ"K­R6U¿î¾-ùÏŸ.ú]w±!ð5½ÊÌØ4cÓŒM]“º&uM½½O-¢Q‹J–<,yèxßñ¾ã}æ æ æŒÁ}\TÊPÊPÊð]å»ÊwUÝ”º)uSúÿëqGãŽÆ¥÷Û®U]«º†í~0òEòEòEzsu‹Ò 5Ý&Ä·Cowî\™ ØÇ],ŠžŠžŠžC¹˜{Vñ¬âYÅ¢ÍE›‹6S")‘”HFc¹çsÏçž§wü‡vÚ}h7±œXN,Çù05É4É4ÉЛç)Úf[ |ß©í0ßn¨/Í7mÜT#Ú ‹M›*6up«ž¿yþæùû:å:å:¥‚§‚§‚‡0%L SFc‘R‘R‘Rô^ÅíðÛá·Ãq&0ÀßUìﱿÇÒݘ—ÃVp¥¨‚jíMþXíŸbÃç´ÓÞûÿ T³­f[Ͷ18N§ˆSeee.;]vºìäÉ;“wæà>.JÌ”˜)1ÓSÃSÃS£úLõ™ê3D7ÑMtýf$ÌH˜Aï78™;™;™ã ø±®P¯P¯PigéV6{$åߥ­xn£s…Þû`¯E¯E¯EË«–W-¯ÂSÂSÂSµ,jYÔ2”HøØ›co޽ɻ’w%ï ùùù#Œ±ü¸ü¸ü8zǼßn¿Ý~;ââ✣ÑúêõÕëû¸?5f•ñM%%„¸CisW;«ÿC[[…s çÎ}©]`]`]à#ÏGž¾f=m›K:¥×ì‘A¢ÜÁµúÍ3ã§M ­mܸ…q éõHã§ÆOŸžš>5}jªÏ®Ï®Ï>¤Gþ>û÷Ù¿‹æÍ/šO ¥„RBÔH‹õ‹õ‹õ£wœ×[®·\oÁùðc!øa‚ƒƒû_Ü‹_2wºD“ÇS>]s´‡¾êÒ·…­øÛçZ¯NýÑoQiQiFȵGkÖõòò’%Ë’eɃû ÈAá pP®*\U¸ªðä쓳OÎÒû— .\0@å~”G=ÐÇÖýö7w¿-B”û­m…iÈ;­õôÞõZk[k[kÞ; m m m›56klÖÊeÜ]Z»´vi¥r¦r¦röðõðõð}Ï‘V<¡xBñºÇvf×™]g¨úT}ª>ÎJ€ÑE³Z³Z³û€CØÉ ÊýÖ6ÅtY—Šm=ÙmÙmÙm)y”ÒãíÝ”wSÞM¡w<¦¦¦”×”×”×87F‹œäœäœdzs{KÝ61=NĺiIJ¦ºú]ô*]]= _^o?Ñ~¢ýD _ _ ߪºUu«ê†´ãÈë Ö2M2M2MHU¤*RÕˆ_×jJlJl¢»‘uëåÖË­8+¾?À ¡T¹T¹T™5—5—5·ÿ¥¼`×’¶íªú»lŠ™ËÈ¡¯¢ï…ÿvîZY=u±þ_ц¿6üµá¯N×N×NWŒ„Ái"7‘›ÈÁÉÁÉÁÉs¢æD͉®øäÝ“wOÞ%J‰R[C|W—[.·\îã´òóÄM9µ(Á©TƒxD¼ý·²—®ÉO¤÷×-ß-ß-?}GJ%¥’R3'fNÌœ¸Ïþ=û÷ å½xµãjÇÕŽ1gcÎÆœmÔþ¨ýÑHsÉß%—üMï¶.ܺpëBÊÊÊœ›£…I‚I‚Ií¬nV'3[Páî@ÚsÕo‰õ±i³rƒrƒrq€8@‰¾ë¬è¬è¬HdJdJdÚ¼{óîÍ»‡´ãË.–],¯È¯È¯È=l=l=l#qÌ)ÇRŽ¥£w 68lÀY ð=!` _6´˜b1ÅbÊ@ñ‚‹maW¾r%,ô #„¾òjvL^<rµš rüÞO½Ÿz?E¿„Ö¼Ö¼Ö¼HÑHÑHÑ%K—å㢞‘ž‘žª ð=u»w»w»Ó›™¯¼µþK¼ /ÝmŸ÷†”km W½Ø± b|ÏÞ$¯&¯&¯Î›™73oæ1žc<Çx†ò¾l”n”n”±$bIÄ’Ö_[mýu¸Ž³”ZJ-¥Òû»§mœ¶q9”JÅ Àøj/Ö^¬½HoVµZ4GA/½öUáò2•lzÕ{Ûõ¶ëm×w]’»ÉÝäWQ¯¢^Eí|¸óá·CYKl~·ùÝæw‰+W$®è$w’;ÉÃuœ¯z_õ¾ê¥÷wí£í£í£ A"H8CF`•ð<áyÂóox«æL)‰Õ»MÎqi\¾kýŠ2Òq¯Š¨³g„°0˺¸}~ß%>Ö{¬÷øƒÖ­Zèå—H$‰ÝJÝJÝJïÞ;½wº©wS咽FŠFŠFÊÀ{ÕƒÕƒÕåøþҌӌӌéÍÏñ»]Tþqï×mgoRŒ¾ïîVqÚŠmêÚÔµ©‹z–rrr¯TH*$±;cwÆn(—qõãõãõãŸ>-|ZØÄÝÄÝÄ=”c+/////§÷·Ö¾_û~í{2 ™…Ì‚3€ñ=ZóhÍ£5ôfõw¿¯óÖ¨GÜûu[sn“¿v7Ý/áýrå—+¿0BÏ’rH9¤œL¾L¾L¾ý®û]÷»iÇ“Õ&«MbvÄìˆÙÑîÑîÑ>¤+é»Òw¥ï¢÷·NO>=ùôd¢š¨&ªq†ŒÀ ­;¡;¡;áú­ë·®ßÜ"ž?syµ¤$ûÞ§œŠG.û«}kÐ+WwŠÝ3WìŸíBÇÓxWnÐOÜ‘+}VúЛÕë,6Çëx"úmÙ.¯÷Œ¿€ã [á˜.?]~:¹›ÜMîfЫÉÉóÔóÔóÔ38f0¤G\\\#d"d"dZºZºZ¾ù+t¯3_g¾Î¤÷ûO,<±ðÄB"™H&’qšŒÀ£FËÄ–‰-;;;˜‡$‡$‡dpCpCpyyyzp ¨QÔ(jT»b»b»bÙ_e•ý§§§y=ízÚõ´Áƒ7OïœÞ9½ó{öfWWzàG!·[È-š)š)št÷o(ûüDëן4NŸiȱóÞÊzA{zõÉÉÉÉÉÉeoB˜&åoÊß”¿¹~ôúÑëG¹¸¸÷n.U,U,Uìõ·×ß^×XÔXÔXT‚JPû?„‡?þx˜Þï\*¿T~©<É›äMòÆy ÀÈZÃZÃZÃèÍçÓòزYZ›×nuÑù9£ßn‰'ôí4ªøù¹éÞ·Z]Q]Q]1ºúòòò°ˆ¥ˆ¥ˆåŒß¿3~C¹2 ï¨ï¨ïø4ìiØÓ°¦IM“š& ä²²²èýΣ'Žž8z‚p!\œ§Ã 0À¨D '…“ÂïFÞ¼É8¡ïæW›_m~•••…>úZ¢–¨íQíQíQ­®®®®®NoLoLoô^â½Ä{‰õë)ÖS”E”E”E¾g † † †n ݺ5ôÓ-¦[Lñ/ã_Æ¿,[þ¶ümÇœŽ9s&‚‰`B0‚&¥&¥&¥þçö·ŽONjdÿ<Ñ/ù~ª¨Á³ç+,¹èÕä鉧'žž#ƒ ‡È!r>,þXìþû?îÿY Y Yr%Ð+Ø+Ø{;îvÜí¸?™D&‘Iûg?É|’ù$Cï÷,J[”¶(­§¸§¸§ç)#+,,¤7ŸóþÍö‰…¨{°9_'à'ºëWdûx=W ‘︵éUæõÁ×_c€úúúð½ç{Ï÷ž—Ò.¥]JÒŽ#êªêªêÚµ=j«+¬+¬+¤÷wsÍrÍrÍèýžC=8ô€XM¬&Vã<.€F±k®=ºöˆvé¼"cEÆŠŒ‘Ž­ó¬ó¬óRƧŒOO=L=L=üsö¹„\B.iÚØ´±ic¡F¡F¡FèÁЃ¡ÏM:7éÜ$#’ɈôýÃx###û]ö»ìw…t‡t‡tTTT4 6 6 ’ɉäDœA£QEpEpEpÿï/ÞÝ«rplG¿mç&é˜/­áÀ+K¯·&ÞšxkâT‚JPknÔܨ¹áµÖk­×ZéÒ ¤ nýÀUÀUÀUp]äºÈu‘òGåÊ«ˆUĪ/ªúmõÛê·ô~vÞ²yËæ-ë¦vS»©8OYºjºjºjÿïïüÖ}ÐdÛÑï§°Tí+¼ÙY¥éÕáYæ³Ìg™c|@l"6›Ê?—.ÿ|ýþõû×ïsŸã>Ç}n;ŽxIyIyݯ½_{¿¶Æ¤Æ¤ÆäëGòïæßÍ¿Kïg÷?ßÿ|ÿsâ/â/â/œ§C‡`tzE¼"^qMãšÆ5íëåòÂô…é Ó¿þ‡111û3ögì÷ÉðÉðÉ8íxÚñ´ã6×m®Û\®]7º®÷Yï³ÞgƒgÏ ž-Ë^–½,{wØî°Ýa—=/{^ö vvv.XT°¨`Ež"O‘ÿ™ ¿Í|›ù6s¡ B„.|ÏXWi½Òz¥õû·íß¶ÛƒW^=x•nŸnŸn_}¯ú^õ½¶¶6â#ñ‘øˆS`l{7íÝ´wÓú×p{zìœÔ–±ýÏ 8©ñ?.J:]rºätég!õ“ë'×O~¼ññÆÇUËUËUˇ²¹´èÒ¢K‹Þ¯¿þýú™™ºwë¿Ö­ÿº›£›£›ç)#K4O4O4ÿº»(BÁfìE¿ÉË.ªŒïÿµ?}óôÍÓ7?éàÈ#òˆ¼õë?Ö»Ë¹Ë¹Ë ùùù rÇ‘$Á$Á¤Û®·]o»~tÿèþѽànÁݺ1°E¢E¢E"5˜L Æy 0€F¥->ZÐ.”Ãÿ ÿ3üOÔgäDÆEÆEÆ o¬;w:ïtÞ ä ä äë ×®+ĦƦƦ–F–F–F¶OlŸØ>‘ú˜ú˜úõ€¯•E—E—E÷ÿ.3ÏP=o¥ºìÙgí¼Qý>J?o(ç®{<^*¦ÿ×ëþÔý©ûSŒ ZMªMªMªA¼A¼A¼CY½dü‘ñ̬̬̬´ÿU[E[E[¥kF׌®¨<#K«J«J«êÎße,;YðI[Ö¶2½³£7ô%˜ÎÑï=9E%YdCÿ¯7J J Jcã?¾ì8âSãSããeëeëe+}Jú”ô©Aî8âÁåÁåa{Êö”-Ýß°+vWì®Xê|ê|ê|”`pŒJ·õoëßÖ§]"·X·X·X£>#ç×;®w\ÿ`3OfžÌ<;m;m;í§~Oýžúå[æ[æ[687878“ÿ&ÿMþU€¡¨®®–Ó–Ó–Óîÿ]éö¼c„ÔYb^º†!ïh‰~sVûÌW{.\1ó(»ÿ¯.B-B-B ãaàZZZ"nD܈¸±X~±übùáýŠ›ÚMµ›j7;y:y:yPmFö>è}Ðû ÌíA] ×Ê{®è7îÈ’-JÁyuYK²–d-Áxø†Uè´úiõÓŸz|êñ)56565¶á]K˜>6}lú˜’Oɧä£Úß 0ÀhC!(EÐ@Ð@Ðàëe±nˆnˆnÊ3ÒZ^·¼ny-;Qv¢ìĽµ{k÷ÖzŠzŠzоJy•ò*¥*¦*¦*¦{J÷”î)D4MD£bð}*I•¤J;;»\P{rí‡\‰å¥°~£…¾E2þ5æ.“Ô¿>ý<¡yó:æuo]ߺ¾uźö¤ö¤ö¤˜ä˜ä˜äÕí«ÛW·ýÒ­dŠdŠdJ³L³L³ * ÀÈZZZ–Xþaù‡þçö…Ƭo_p-ñP* Š˜E¼g Ð7É|™¡JÚÎTÅâø¸8¯÷ÿZTóTóTó>Ïú<ëó,Œ¡kš×4¯i^ff¦Á&ƒM›†¾–Xa·Ân…]ooooo/* 0p€F™¹¹9ÚqàÉÀ“'Qˆ ˆ ˆ øe5G «ñ+UœÚ ¿ÜÛÅ—T¤¯õäÆEågRå\Ú9æÃ‚‡ vuvuvu¢ÇGN___b`b`bà–=[ölÙ3¸K·BìBìBì¨'À(AD>g}Îúœø<o¶Á3é; ª[vëþñýCß–»Û¦èýî7g^‰œ¯[ë¯9f—™.3]fR>R>R>¢ÛGN«t«t«tDhDhDèâ‹w,Þ1¸µÄ¢Û‹n/ºz `€QæþÍû7ïߤ] 7m<Úxõ€/ÚøÛøÛø‘‘‘¾!¨œáÈ–wcº¸äŒBOÙÃ÷¶]M`Ñ;šìÔ¤0guϼi3. üØZZZ³Ü²Ü²Üп#âñøÐ3±gbÏÄj»j»j»ôµékÓ×>p|àøÀq?ï~Þý¼ õ õ õßzÑöNݺ;u(0ÀèRs¨æPÍ¡µ'מ\{ràs¾êõéU\~÷u OÊp–O3¹ Å2¼qouô¦MÚéªç­•ÍÃ.xyšíÀÍ@Ó@Ó@³Ì¥Ì¥Ìý;"Îg‰³]»&vM¬,­,­,MaKaKaóxàñÀãÁN§N;ÄNˆ;ñ­k‰$R)‰„ `€QFJXJXJøëE°òrååÊËQ §teéÊÒ•«n¯º½êöàîºà*žúŒÅp}äÂÉü[.\´à;íýáì<™Ïa¥Îé öÑÂ.Š­‘%×ë÷<¹v‰C®üfÐ)ɰ}”õ³¤•=¥2¹Ô†²õ_Ðû ÷Aï)Í”fJ3zspÈÏÈÏÈÏšþjú«é¯‚¨‚¨‚¨¤¤${{{‘Eµ‹jÕ2Ô`´ËÊÍÊÍÊU½ zAõ wƒðáäfkÙV&å=SűCk‰xô#½y¼²F¶ -ÑqƔ؞5µ)*û×,'yÕVû¾ÄùÒ2÷÷H¬áîæx2È¿[&T&T–’’BÔµD-zspz÷.î]\GÔuDîäÜɹ“öì Øg+g+g+§o¬o¬oŒµã@ 0jÔÕÕÑ.‚}ƒ|ƒ|ƒPˆÒ¤Ò¤Ò$‹8‹8‹8&†$q]âºÄõHïHïHoònònònô]“ˆIĤ¹¹¹ògåÏÊŸÅߊ¿ëfÞͼ›y[Í·šo5\+¸Vpí÷ìA¥¥¥šÍo7¿ÝüöДCSMAGŒíD;Ñž;5wjîÔÕ³WÏ^=›1×söÎÙ;gï«Û¯n¿ºM¨*„ ºŽª2U™ªÜÛÛûþîû»ïï>ÿüýó÷NÖNÖNÖkMך®5å ã ã ûž=¨Ý£Ý£Ý³µnkÝÖºKS/M½4=𭌿}~û|j<5žøyl£l£l£üØU„³³³Û·-n[j¬j¬j¬Ð/D,KÄvótótóTåVåV循zUõªÊs™ç2ÏeÓ,¦YL“Õ–Õ–Õþž=%úZôµèk³b³b³bwmwmwíä É’'TN¯œ^9½óVç­Î[Ä.b± 0t€F •$•$•¤ÿÜ((ˆÊÀà>"|äëÕ…f¼f¼f|ÆüŒùó/¹^r½äªÃ¡Ã¡Ã1 ñañŒâÅ"""¡‡C‡¦>¦>¦>þÙjN9E9E9ÕìØìØìXÌ]Ì]Ì1>b|Äx==½¥K+–V0½ezËôö{^o0ß`¾Ái¡ÓB§…‚6m ڔߕߕßÕPÛPÛPKV$+’q¾À×z§öNíJûžbãiãiã™(•(•(uJá”Â)ùÉò“å'ýÝJÜFÜFÜæˆÀ#1ÇcŽÇÿ9+Oæ s9¼¼¼ò/å_Ê¿ô4ûiöÓl; ; ;‹y;ç휷ó{®"˜ó™ó™ó—…/ _îÐæÐæÐq1âbÄÅâÅ'ŠO4¿n~Ýüšrˆrˆrg À÷„`h¬n¬n¬¦]d{Þö¼íyõ€oU{µöjíUÚÕ…½½=ê3röòîåÝËû}.ÈʉȉȉX”Y”Y”y¶x¶x¶¤š¤š¤š|ú$ôI¨{n÷Üî¹D ‘B¤ _à[evgvgvÓ¾ûäpçpçp£>#GÊKÊKÊëû¬%4d5d5dm l l |C|C|C2eËê3r<8”K±Ü~Ü~Ü~ë”×)¯Svžî<Ýyzô–è-Ñ[JÆ•Œ+×ÚÓÚÓÚC]D]D]„jÀ¾£ý~à÷¿Ó¾OõÆõÆõÆ¡>#G7U7U7u(k ¡B „l“ß&¿Mþ–Í-›[6 œ œ œ,,,fffÁEp¡Ú£`€Q@ŸKŸKŸë?O¸IHH H‰ ¡>ð­ätåtåt¿^]ÈÏ•Ÿ+?•i¯æ¾šûj.½ ²’’’¶õ¶õ¶õO&>™ødb®M®M®Mýœú9õsz­z­zñ\CøÁÈ®dW²+í»˜E¡E¡E!ê3Òî^º{éî%zk £x£x£xû÷öïí߇. ]º¤P P P É¨É¨Éˆü†ü†ü5ø `h-…-…-…´ z7M7M7MÔ¾U}{}{};íêâáø‡ãŽG}FZëäÖÉ­“S®¤\I¹òQþ£üGù.….….‰p"œP`|ù“ò'åO¢]K¤—¦—¦—¢>#­bSŦŠMéÙéÙéÙÕ¹Õ¹Õ¹=R=R=RD5QMT£>ð`†^^^Cû±ªòSå§ÊO¨|+ÚÕEmmmmm-êý;î{Ü÷¸/íZ‚ÄJb%±¢>Œ0C3šm4Ûhöר¦^™zeêâ9ñœxŽúÀ·ÒHÔHÔHüzu!rNäœÈ9TúGyCyCyCýîHÙ‘²#õ`€TûÉö“í'i?V]u»êvÕ õ€oÕÌÔÌÔÜdzâîdßɾ“ú@ÿŠÞ½)ê#NYŸ²>e=êÀ80¨þþ~ÚUe9e9e9¨|«àæàæà>àO†Ÿ ?¢>Ð?û öì'Ю%ºù»ù»ùQÆ€A­jZÕ´ª‰öc¡H(Ѝ|«9”9”9”¯×|'øNð >Ÿ‰Ï¨ÐCM¥¦RSi¯Q˜ì5Ùk²õ`4€Nç‡Îh?V9::¢>ð­Z?¶~lýH»º¸¹úæê›«Qè_Éš’5%kh×/®¿¸þâ:êÀh0œD–D–DÚUï¾;øî êß*rYä²Èe´«‹>lø°õ€þ9²;²;²Ó®%:ª;ª;ªQFƒ€áÜó¿çÏŸ-‘-‘-ñëUÔÔÔ¨|«%ÍKš—üç鿬2¬2¬2„3áL8£>@×!âqˆ‰`"˜ˆ¯×˲–e-ËBy`FåIxžê>Ô}¨ ­­­GIà[uXuXuXÑÞ¯sÅõŠëWÔúWáRáRáB»–ˆ:u&ê êÀ˜ŒYq–q–q–´mK%K%K%Qèß7>Üø@»–h3m3m3E}`€1kû:÷uî´m©ÍÔfj3êt•eDÙ´uÓÖM[÷õ*b^í¼Úyµ(#C 0uEvEvEÒF¿ç®»vîêý«º\u¹ê2íZ"T2T2ûˆ04ÀcPòœä9Ésh/ÚGGG >Ð?333ÚµDó½æ{Í÷PF†` Ú>aû„íúØüùOêŸÔ?QèßlËÙ–³-¿^EhÅhÅhÅ 2Œ0À˜ÒÙÙÓÇæÏ' Ož0D} µêµêµê´k‰ççgÔ€ñ!SÒ Ò Ò h/Úæ“òIù$Ôú÷ÀçÏÚµDÃÕ†« WQƇ`LÙ;c3h/ڒߑߑߡ>Ð?YMYMYͯW óæ+ÌGeF ÀcJUQUQUÑÁšƒ5k„„„† 9‚ÊÀ@”$—$—$¯É\“¹&“e"ËD–‰< @eF Àc`€10À`Œ@ 0F #Œ€ÆÀc`€10À`Œ@ 0F #Œ€ÆÀc`€10À`Œ@ 0F #ŒÿÛ,Äb×%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/windowTime.png000066400000000000000000002337351431412030200255340ustar00rootroot00000000000000‰PNG  IHDROü¿2ÔgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝw\×þøcQQì‚AAöÞ{{,±aï½÷Þb/±w¦ƒÝØÅØkÔØ;åûÇÜÏãÇý­Ë]dvy=}<Îã>rÙÙÙ9ï™=ïóÞ9“*`RqÀ6PAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPF2{”úQêG©ÃV†­ [ö ìA؃­^´zÑŠ#œ|òýÉ÷¡ãBÇ…Ž;}$úHtì£ØG±82HÙ_±bég„~vèg ÐGPúhJYé£,Ž pnعa熅ž =zòÈþ#ûì©S;¦6G™@æy°U€‘È>íú´ëÓ® Úí‚¶ É‚& šÔè_£þ™I½Íõ6×Û¼4tièÒÐð]á»ÂwÅüóKÌ/yßË9/缜£zªžªçH÷‘î#Ý=&yLò˜”ðó"ûþìû³ïïÚ³kÏ®=wdØ‘aG†‹,~°˜ck¡G¬½z$ëQð³C?Ëô3N?ûô3‘cãÓG8úhGù裠ÄSé#4}´¦ÜôQGÆu䯑GnŒ/>¾øøâ>Å|ŠùKøya·Ån‹Ý–ë:¬ë°n‹çÏ-žwƒîÝ â˜d^d^ ó"ó™™ëB ííí¯.V«‹[œkq®Å¹Lɤ“o'ßN¾ÇN;qìDl¥ØJ±•è$¯çÓŸO>}ýäõ“×O.T2¨dPróOÌ?1ÿÍÀ›7ézd&×y¡Ÿ•úªŸ­ô ’Y¥ØJ±•ô‘Œ>ªI®³CÑé£;}¤Gç yEGGÿ™þÏô¦÷{â÷ÄïIr#Î87âÜßÿîüwgú ó"ó™™ȼȼ 3íßÐïC¿ýž#ƒäE_ìÉË'/Ÿ¼œ2fʘ)c2ؼ‰ó&ΛøÒë¥×K/z ߯%ñ’xIlý¦õ›ÖoŒy^¸Vr­äZé@¡…Šòˆòˆò ×ÔôHÓ£N@cžú™«ŸÅô¾ }”¢XŒ<¦ÒG}ú^÷q=ãõŒ×3v íÚ-Ԙ煃³ƒ³ƒóöÇÛoüá͇7ÞÐk™™ȼȼ@æEæ•2Q†1Q†Ež-z¶èÙ¢àÁ‚?|ÝX–tvÅ2…´ÈUtM¾““_ûÿ^tÉÆÑÕ.–}¨JÝ~ÞãÕ* z•n¤D7hPºòÁ¶uóx×_®šgÉ|=ýz¹~jüÄ5KÞ+ ùúœP`B "ŠD‰(Bo"q]¼vñÚÅk•¦VšZiêWN l/ø ›}÷†M¶0oÕ cî?lÏ5m”g¬piÑO> µ eíKÏ—¯.éX:õÞ¾³zý¶âäHÁ£^ð¾_TÈæÝ3wÁ„œ;…ÂN!úIô“è'ô&‹Qzt%$>sŽrûË»gÁÎõŠt8XtrÐÆ‘Bñýƒf,™}hƒ%KÎvcYûc‚‡/úÉ}kŸéÓF¹Ìk7|бü½«\h²=«G>Ÿ‚¾î}õ3Z?»éM$.}4¢Lrv”èP£lî¢Õîÿ^É黦ï§/(òs»óËÓº~êôb­w±íÖö+Ô¾üòEó5;:#¦H힦9õõl_{_îËvÃ2OÍ4ùëÞW ê#Cz‰ëú׸þCƒüÐà‡¯‹Ï‚÷³Ÿ· jîQÂiæœïÊÿîÖsÛz®‰¬×Ï'ŸæØ@(=^qjð]éÌûVÖÉæµkuÅ*[ùleú ¡G‘Q–G`ÞÌmjgö5°þܾk÷R|Ê•[½úäÉÄj}žOÙåT̵ëú1u³_,2¹ø*Ë÷M?Óõ³žþÅ×ÑGúäKÇ-•C{fÌ¿ºÛØ­^nwÆü.x—3&<ÜÛ;±Ú3·uŸU­m¿–.}é¾é£D}ÄH/ãë¼zñêÅ«¿+¿+¿+–Çž›–;o¶#K{Uz[|úµ -o—Ë”¸Ç»ÎA^• «êíò©4Ú£¼Ó¢/xŠp »v-Ž:u:êDÿd^d^ ó"ó™™WJ@ÆDŸñ÷ö¿·ÿ½Ýi†Ó §–| œî]Ö¹ôÍõ­bÊ ‰\ wlá៮g†’ þmÉ>{ñ>â}äNèÐ;¡ô8,·ãÃŽ;¾à>øe›Gd)~ñÃ#1•ï%åmÈ’…™|Òû–)q)§EOérwÈÝ!wßO~?ùýdz–УEKb,G[×ò%.•,.Ì”¸Ó –·þ™–?:S4_çÖ#²X~FëWz–ÓGú¨Ã’ó}Õj“ãŽÞ©÷ž.¾/q§,oû- Éâñ¸üëÎAù,ºR1ê£Gz– ©R'¤ŽåWà¹û+ds;9¼s¾J[“+ãÐV6xVzMµŠ£ó¨–ìsb=Šõ(Y5²jdUz ó"ó™™ȼȼl``ü—µ×f\›Ñ¢)˜–å#ÝE8wªP©PrMÁ˜kŸ;uÐ*úO¼î·µh~‹bj¹³åΖô>ÌyÛîm»·í:w î,eÿ5ë$»µ‡ç,¨à}6:ÏñÉ+“kêÁ\{åݶ þýe ¬–÷·ø?‹ý8ûqö㮽^ôzQbæè¢GËÿzVb™FÕ¼O~½­BrM=˜’رòÎñÉ%2vXPÁ®«}í¬“âÿ,úÕ@¿20G]X2©^ê÷3Ny‚£½÷l›\SæÚ¡NÕ+õ}Ã;|iÉgÑG’ô>Ìù8ããŒ3<ð|ÀsK"jW‡ZcJ Ÿœº, t3ZÆq+Mëå.´à>¹ÀtK>Ë…4Ò\HC d^d^ ó"ó™™—í¡ c¢ŒØO}?õýÔ·g…žzVˆÿ«epïSγ^Wì´¥Rg£MÁ˜kŸêЩâÝv—è[°~üŸnø?ÃÿþOŒsŒsŒ3QÝýÉ÷'ߟœ«®þ¹úÇ?››M:Zò©Ñ&âoÏeÜÙw‹spöY[Äÿé5>ÔøPcâqéQñ?&³f;V.ÐÞËk¼ó†ÌF›zˆ¿uS{mžt4þO§_ô«ñ>ŠÐGñÇOÙó-v;Öw¬ §Ñ¦̵ÃzŸö+åQa[Ж|Kâÿtú¨RaÐ=Íò4ËÓ, <x,ˆ?~V\ô÷h[¬[î*Ù¬%ã¸ò¢Å ÿßËlÎ;#çÀø?ÝÖЭ¡[Y ó"ó™™ȼȼl `à-òyäóÈçTlP±Ù§XíÈ´%Óo烚ýæûÁZ¦`̵ÇÓ4zYæjü_œMÏ4=Óô̇µÖ~XK„¤d—|.ù\ò‰?ZÚô«Ý)ÿ‘…Åe[×ĵ…O¨’u‰4lNñ ø?ïª+«®¬ºBl@„ø£ÅUéä9lN9ûÕŽ' X×DÜÖ7Õ®Ⲽ…VÔîÿçÕ¯ÄFJ¦ôQDüÑÒµúf;·ÁÖ2õ`®í©î¼íþ6S¸]LfÇúSm!)Ù­¬·²ÞÊÿyQÛ½ðy‡[«¶{]¡ µgVW]²nüŸwÖøYãg'62/2/y‘yÌ‹ÌË6P†1QN¡^Oy=åõ÷Íî›Ý7›ûòèU¼¤P(ׇ1A±•ÏXûDLÜ6r`g‡J[Zzû%:sŸ=0*0*0êý•÷WÞ“t¥8gvÙuf×ÿøÕùÁÉYdrá­e¬wêÁì/Ó/öz0ù<³J¿z')>ZÐGæbÃóaUyRÿî/¿Rí¬}"n;²ûù>^î~C[/v¼iî³ë£M}äI´¤4W¯^½zõüørÙƒÊcŠßµ¥\CooWo½$ OÞŸ²®ÉÒ×Üg»c쎱;b£b£b£ˆy‘y‘yÌ‹Ì d^d^Ö‹0Œ‰pŠó.ô]è»PÏž <ÍþnhU…@Õc­íMÄüW;®›o×Yn»e6wj¨y æ¨tQé¢Ò9)A¸G¸G¸Çÿx~[Ãá~î¶7·è¬8Wò ,YfM;sÇayøòðåáÄLÊ¡÷¸Ù%¹jxÔ*³ÆwÕâöгíM@Äm½ÖM˜¸1<þ«„~%!fR}„ ÌÞ×XgÈû‚CÆT ïë]À–& LÛFá“òŽ6;ÓÀ³g}Jä¤w6ÞÙxgcüWËc=í/³ß¶3Žw­‚JVnÐü|щù™;S×L]3u 12/2/2/y‘yÌ‹ÌËzQ†1QNAbŠÇ)Þðnû ïšû’8PºÎŸÞl¼ôkÒnzS½mÉKæŽI÷£Ýv?{5öjìU¢ÈV=tzèôÐ)þÔâ~ó}.å²í ˆ¸í§sÇ&6ê^ïbPsÇd_š}iö¥!~l›ÞËæb olÅjõ.ú÷Y™ãØÛž€ˆÛ–~:ëÚ>—ø¯úU…ø±YWc¯Æ^ÕGæb ùàY¥ŠL²í©Ó¶]à²,®§Ì}ªH "[õ¢ñ‹Æ/þÇs ¯UhyÈÿCÊÉ5bt½øl`¤w{g³KC¯Û¼nóºÍÄȼȼȼȼȼȼ@æEæe(Ø(§ ãÿëø_Í}1„,©WÏ'}J+ýÆm·]¬qÖs¯¹ã³HZ$-’ˆ"Ûó>æ}Ìû˜B¹ å.”Û\ï?Îtðï 9RÎDÜ6¦Ñ‰á:9Ô¿à”ÁÜñ¹<âòˆË#ˆ%Û£÷¬¹~Ïç_)Cý þOW­81<åL@ÄmË\œ»ÿàßæŽ~Uѯ0Ä’íÑGæz¿e½¹=] ¥´ ˆ¸m‡V+iîøè#R¢ÈöD;D;D;l ذÅ\ïß.ØzZ@–šqÜíÖ¦JÀàŸtÎûÌŸããŽ;>ŽX™™™™™™ȼȼ¬ `àA8$Ì.;¶£|Íý¥*¤äÒoÜv¥8×c’¹cujþ©ù§æQ¶¤÷ÆÞ{›]¢ðî=÷6¥Ì ˆ¸mTc1ƒjÙ¤qXiîX½q{ãöƈ² zošëëÜËK Hã?cå€c1)sâ¿~“¾tæÍ=÷Ì+ý CDÙ}$`®Ç-¸¯ðã”<·m5x~_³c*}tJDÙ’ñ7ÆßÃ\_éÕb›cr˜Ý~ªòKÇ1Å ükîX=»úìê3V™™™™™™™™™—Õ  c¢lãž…= {fî `Ú¸r]‹¹3cÚ¼·87›n¼ x@tY»ßß_s½üW¿ui|홀ˆÛFÞ×rW ÍÒ?óþLMXj=ªõ¨F\Ù½7?sbìÏœ7ó~¿ÜKîk¹™€ˆÛ–Ú;vö:³ËµéWâÊê§çÞ¼ 0×ËÆuÌ7©Ó¶f¯A;œ®š-t…= {FtY»“3OÎ<9Ó\/ËSêóyI~·ýèÝ¥båwÅså^™=‹ékàÔÀ©SìÃØ‡±‰.y‘y‘y‘y‘m‘y‘y‘y‘yàIJïÏ}îûS?†6NØ8aã‹j/ª½`äó•(Û¸6UÚTiSÅôT#W¡mn1[»> üÀŒiûia—°ÀªÅS垟ý3‹f|=ðõÀ×D—õЏq=⺹!Ñû1uKd`ÒÁ\{£ÜŽ%åzš;za~a~a~ĘõÒ{Ð\ÿú̘6uÇ&̵Ŋv]?Æìóõ+1f½ôoÓžu<ïrÞþÓ¨®‹zeÒÁ´}û²àª¨T¾cΦGO©]ÖëƒË—fŸÌ7ãx@…b»È,̵'µ«]Þì’†{î9¸ç 12/2/2/2/Z2/2/2/2/㣜pÑ ¢D70wm§üu(Û¬c®Ç\¹š;ažo·Â^¦]âoï:¶©0ÁìÓw†^zy(‘f‚ þÌ¢èµk|tø'vÅÉ‘U<˜nˆ¿Ý0u‚’5Ìç}œ÷q‘f]ô^3×§n¥{¼›°€‰†ÿÑ]trd|>šCýÊC¤Y#ýßÜÙÑ¿¢ø®Ä@¦âoß<ú}ÉXsÇPµiÖhÖØYcg5íÓ—òü‘}gô°®CÉ8þG{гnzïªæÎŽÈч#i ó"ó"ó"ó¢%ó"ó"ó"ó22 À ÷ÞßøQ ¶`ý&úMôÇTŽ©S}承[kÞ*Õ‚©ËÛå*ŸðÈ`z$ýÚúµõk{=öz,¿+´·‡Ür{ˆ¹/G –ƃEmý“•ªäõwól•«‚é‘\ùzåë•Ü%oeô^3íÍRÑÞž­Ê9¬ö9Y‰‰KÚ2;æV>hî:£_…ˆ7«q=özìuýß´7.ÿ¦ð\¦¾àÙT[çŸpYü™ßò§rLå˜JÁtÖâI'ž0w­»ÜjF¹`òËÛf­\£ò™É)M§4Ò”x™™™™-™™ù™—‘QN8½ «w3YŒbpü(Û ƒé¦;˜ÎôdðZî˜>Ç´Ø*Ý VÉÃ$‹åmÔ ®9‡d¯–Y¶ÛezTŸ?~þøy¢ÎZ´­Õ¶VÛZ¦ý¸øÈÐ3Åݘ\øÒöz†í[Ë9›û~Ûém§·ˆ:ãÓ{Êìâc §^ؾ•É…/m]gw\6ôŒéñÔ¯BDµÐ¿åMû1ËèlYì¼G]¸ø×z&¾ u ÷÷ΙÿCñFÙ~6=ªú–¨³Áù‚óç3íDZ|K¹ú“A|ñrÐÛ•-¿ÛÜwñó%Ï—<_BÔ̋̋̋̋–̋̋–Ì˘('.ŠÁ‰…°mÉ›16£ƒƒƒé pî^3ßkL¯|]«Îk0¥tçÏÜÜͯ›_7BÏøîõ½×÷^_s_|Ž ¯,2­ðuíoSšGêö™gzY3fÍbÏøôž2íÁÕ;4bBáëZ¿—ËÇn_‘ˆ=ãÓ¿åM{°³÷ÚÝÅú1­ðumϱ;û¹ß1=ªúVÍ{FöìųÏ^˜}êÞ–Ný*U"wøºvb¿v®Ÿ¹'lÚiC¦qȼhɼȼhɼȼhɼ ŠpÒ¡œ€mÊé§Wœ^aî•z8yäÞÌ”J‚ÚFÝ\ªä-¸"û~û½¦GøºÃu‡ëD ‘ K?,ý°ô¦}·¡ñ„%ý™JHHû jßòÍ}ÝFÏŠž=‹4&½wÌõ]¿ÙïïË„BBZ7·—'ô0=¶ú‰42ý›Ý´ïrÞÌï–¥ñ˜áÕ½s3¡¶È̲çs”5=Âúh–4²¹Ÿæ~šûÉ´ïf_)ßÉ­#YCBÚ;vª¸ÒÜ÷òû;ï_C‚̋̋̋̋–̋̋–ÌËh(ƒ¿`›ÒòyËç-Ÿ›†ø‰àÆC˺3¥’ðö`•ºY¼kšáAöƒìÙÆô¾Ëû.ﻘûx×<ì§Ê ¾}ê~­öö¬þÿ5yjí“­¦Ôü'3Ó#|rÕÉU'W‡Æ¤÷Îgž s¬ÜÀšÿ0‰¿FŸ·¬CØOf§ò»¼ïò¾ qhLú7»i¯µ;²,Òõ5¦ý}¿;XÝ£]ÜÏ’¼ûÓõã–*nŸYðVͼnÝ0º¡¹kÚ‹›W\D¾ðvP=ï±ÎŸY ôó!çCÎÄ!ȼ’¢ýTó˜C ÷ôR}?kRJ-v$GËì ³FÚi…ö䋵$ó™™Rfæwô|Ê3A2¯oƒð·G1Ø€mDdÚÈ´‘iÍ…uŒOW)ð“) o?þÜÅ£ò3sÇùã‚ >. Fö–½eoÓþå×å¢K×äJÚM ÀÖ^>«­¿ì»ÄôuÞqxÇáÄ¡1é½ó™gÆ;û°þ2“‰ÕÚÐȱËEÓã¬_ˆC£Ñ¿ÍÍ}×Ü|þ–W% À oGo¼ÜÒËì˜JÙFsîûsߟûþ3Kó½÷ÈàL¦XíMµõÏå4Óã\¥T•RUJ‡ óJŠvX`§CEÆÆ?]Hæ2/2/¤´ÌËt¯¬1$óú6('/ŠÁæP¶!B „0 ây+´vûÈ4Jâ¶Cß—(ò™gÞxzãéD£Ñ´|ÖòYËÏ tn4ر©\ À‰ÕÆüp¢\à³ÏúZõaÕ~n z˜ë/ÿë«z(ÇôAbµ>³§-ܱé3¿·}ÖòYËgD£ÑèßæŸy Æ¤nó—¶Þ…¿ŒVÖÛº>#júÌ‚oúÈ–h4šA=ôÀ´¿þºÕÔÑ×!ÑÚ»µ¯RÁ©wöªö}>ó”åéÓ#¦ óJÜÖyAÁYÛë{ܯÃ8ç[÷ضÌfä^õM¥ƒFËÔȼȼhɼȼ(“y `ã `ÑÞ¿½{ÓÀ½[¼MÝ€)L£$n{qjó²~>ód‘×Ã^{M4ǧŸ?ýüég³¿àÎÒ¡Š=àÄmÇ5î‘Öµ±éç:Wî\¹såˆIãÐ{Ä´§ ÷m²¤GZ&¹Í²:×Is×"ýJEL‡þmnÚS½ŽíÞX¼6àÄmû×~,lz´õ‘-Ñh1á1á1áf¯cB— õÈ·]æ[¹bñß¹‡ÉYv–Yd^‰ÜÆÝ[½ôKæ2/2/yÙR˜Ì+©Q6&ŠÁ€­^ô³ègÑf—qˆyÛ-M•tL $nû©q—­¥Mv–]YveÙû$öIì"Ó®F_¾mÚS#Þ]tqLÞtÝV Àçûl,ìû™Ï5íñ´ÇÓ“Æ¡÷Èg– ½±0I²Y׆Mƒ>³™~¥"& áIì“Ø'ú·ùg–¯¬vá×` À‰Üþpù“wzsãX}”K`ÁÃЇ¡C?³Üh¿â’$E{{Kk1 ¤é1﷡߆~ˆIy%]XÏÔȼ@æEæ2/[*“y%5 ÀÆ—2‹Á€­Þ£•V>Ziš=+• *øÀ8S‚Ûm(ÿfâL¿YE35ãº3_é’·~Êþ<ûÂÌ7í4×®9ogû¡²â´=÷û™ÙZÓž;vP*úyR¦ÎN玟 D̈˜1ƒÈ4‚u³×Í^7Û´Ž.Z¹©Ì$c€Ï¦^àû[«ª5wå¯VPËWÑ^Ⱦ0k¤æy®Xº‡{uXäàsGᯊ~Æœ†xw,¬M妟Ëû¬÷Yï³Ä¤qè=bÚS~›–­ kc´ÞÿΪá'Ûֽ⸹7”Zàžet®ÇŽ¿Úµ_52Ûü‚Ë]g;Ù×JÕºµÏÔicvÌ0æ4„gÇ‘ÝV~f92ýJELþ nÚGn/*{åúÑpOrr¹4ÜKk’eJUç bÇ+–ÊùGޅޝ3?ʲ![#»Šù¶¸ýšuq…;]ÒäÛ2¨Fh…’Á- ÷ööK×ê’ãAÓ#¯r‰L#8ôÛ¡ßýfÚG{þªÝÍ«ºÑFé¡6)}§Ã ÷Âô,#ÛúÌã즻Ë]%ÛÍ&k\›æK½Zß¼Æ8tÝø·1sèì]®0=æöµìkÙ׊}û>ö=‘ 2¯Ä*úZËÓɼȼ’ºuÞûÝT1ÏLŸß+^ϲ=÷PÇãv;³zfÛ‘}¸ó`÷çLÍföšé÷ÛÒ§¡¿ù¸Om³=kÜODæÛ˼L÷0øÓ±HÏ6zžåxÛåIÖTzþåð±HsûÝžïëy~î9ng÷;Æ,“y% ÀÖ%åƒ)[=­´VZûÌݨ» ÖêQj»&/” ª—.çè–µ~–ò™¾Ð½°6ÿ<0è²lΕ}‹ï7Ýç‹.].º™FÐñrÇË/›öÑócbÊŒYκ×~¨]ÓøÏ‹B{òÅÚG^Ú¸y³ß^cNF¹ç4,ëVÓ=ªU7ª.‘™¼ô^øÌ„rxÞ¼NÃŒ6á»wñʰÜÁ¥~*××òï7­×öI§öYÊ>_X\lø™ûç.w¼Üñ2‘iú7¸i5¸;noá&ÆIÚ‡üv\ðïšÃtÁòó¢YØŒOEj³ÜºíÂ\.™î³>Ê%2`ä…‘F~æy“÷´¹p×#s½”;àO¯‡Îi,?/ït‰É{òͺÎ3*½0fÆQýt¡YyL÷üm÷·Ýßv'2Aæ•¶ðºü‡³ºêmÜ}.pÇñ¸}½¸ÿ¯‘ï&ó"óJxëwry¦°‡|ûUûÞòïÐ’—†o^ÞÝô¿“yÁ–2/Ó=̳ºp*{‹æ·;õù£y1£€É¼’`ëeÛÅ` ÀVoþ’ùKæ/1 ÁëÅZe.çž¼údŠËàœ²žþÏ3NÖåÎê:ûqùînAa›î(“ãâþæ5ýFÊ‘õ_”þyÔ‡²y\æê÷ÿ÷ïm8sêP“úew˜ù­³¶ÎÚ:‹È4‡{÷î}fiôf'F>4fø?Ï“ìt¨ÈØÃuüê­ìügÆŽR«{çhÑ£Ðd»ï2Êô_¿Uq8Ñ ðo£MCü^¿õÁÂÃM?×Ó‰O'>Hd&/½L{ÇɵVµÖV4ý¯iˆã™›gI]¨wÞA/Jtιp‚ç“ÑÙW_tñkÛm`gý÷éq?‘O«©/·Ÿ3Ð}ÌÏV­>1ÊôÈëW*"ÓôopÓ>êþë¶Âî ‘´g ÏàÉm{¥°œ/ãîañgUwäÚÞØ}Ò>ç\]òoüÕ-[£ÃŸŽtó«•ó¸¹ï-OÝóÐ÷ãL÷På™Fð™I]ŠT~d„‘ù¸ß±®½ô½Ò³‰Q?—Q]Z®[÷’·òWþ&ᾩ×m©z¤ÄŠ· Dåžú¹;üŒ˜qL?[î~±Ï<­íöÛn 2Aæ•’—€&ó"óJ¬6Ÿ{Å›õÄÝÃ|©*Öª÷·{¾ß.L ,µnl»µGÜ‚zN™ØÈ’"1™l$ó2SþO¡úŸS…[ô;ÒÃããàâaçK†é¹X¶“¹Ïf®cä%£É¼’`Û`{Å` ÀV/hEЊ Ï,±³Ó€J•“wÂB/ëêûc‘IË4üÊ»ü›™›jṵ̀ø|öžö9óhG»ÃRf:uÖ˜Yc(ô«·TíbÝs”7B¢nZÎ|/s`¦ÝB‰…|ÜãNCÄýß[+L ôlaüEÉÖž×»ÄÓý¼\ér¥Ë•ˆÌä¥÷‚iïÛÑ½Ö¸ÞÆ™†ðÔq~½ÿìÜR»#™KHCÊ-ŠÕÿ_ÓÉ…ÿ|׌µ_5Ò˜ ‘émö´…Óëþ¹³ÉOÿ7íAB+9ÚézËÇó¹ü×8ªfACœÎÄ?=Qñh×…ùÞ¹<Ìå”V*‡éê£\"Ó˜c*;¯LÃ35ˆêÖµJ`2?+÷»Ö#Òg¾gçiw®îYždî>¹E3ÿæþ^ßÿ+½+8û¿ |0¢nCï~¦û6-lZØ4"d^€É¼È¼Ò–Ü0<Dzmÿµoõº9Œy7Ã2å¼´E•ÞaF.“y‘y%Iø­ÝêL­»ü³¾{5sù”ñzKæõ-ÇB€­mƒ)[=ßhßhßèÏ,ø³««{`2—N m$”9Ü÷I©Ñ…‹Må÷¸hK&VL‹ÄÆœŽy”¡²¿é~¶¼ÒòJË+D¦1¿z;ù׿”Õ˜à7êý] Ì’‚nÜWÕòßëPÎhÓ¡Y–=.bzü¥tR:)‘™¼ô^øÌ^û†W]öØ8éºã¿ånÕúÏó&óž«p¨žƒ% q?Q®Ù%Š•ÕŒVÎW¹RúϘ†0&ýÜ´wFxŸmZê¨Òu Õ+äŠÒ÷J_Ú’Wª|á©× Ç^.ì¯sbÔ‹K9¼>³ªŠ>Ê%29¦ ¬èt+OV#ŒÉÇžòuqýÏtÛÔ†þo‹>¶$wøT³Ë¦@oý©Àúß÷¬R2¨à?FË8.ýм«ßg¦G7oÞLd‚Ì‹0™™W‚r“TkÕûû?wÇæ*ã˜Ù’œËÿΪá'd¯SøÛX#€É¼È¼·\úaÓ–ÛâϤ†Ü91Þs‹‘ Àd^ßr,DØ–Xo1˜°ÕËåŸË?×gʱr·úUJm #þé˜èb][þ1çjùP·åÆ/GéÚ"pé~ú=ò{ä÷ˆÈ4æWng]>³,G.\úgK^{`øÜ+ÞŽÿ·¬úÿ÷Ì*ãLC\ž¶¥µßcÓ㿥ܖr[Ê™ÉKïÓÞñ®“ªú<œ¾~×O¥WÏ|±çƒÑ À… 6ÞÐí,ÓƤƒ›öÎhçKÁ^ªÒu‡EšÛïÖ÷ªM‘E\sX>¡`äiˆ1Â×x3ÝC}”KdsLêÑÜiƒÆäÍûí”oÝ&Y4lRúΗæ&ÿù\ëø[Ž£FË8î÷n[¸|zÓã?÷ÑÜGsÉ8@æE˜Ì‹Ì+a÷Èwì ïUܘ,y­ñï&ó"óJÜp‹YsŠ< ó‚åc! À¶ÊºŠÁ©ŒsJ ±ä|žEÈ\Ó˜Ë&¿LÕ±ÅMR–ú~>KW¥ Üê±pdö2]] 7[ô—|½ó:fÝ’e¹Ïe¸OäÓͱJNâͺÌÝ5(ƒÛ_Æ,ß Û»7à%¯½™ogr+¼ôí|»®d!Þ¬Ké<3jîºfˆ'6í^ùäø=ƒªtå'v2Z)÷ëZ— ¶Ïe ެ˧pïlÉ›¨|öD©q÷ªïÃCW=¶Y¾…¶¯—ŽsÝiäçQÙ‡å¨f·†x³Á£}9ß3˜Ük·£}ŽÙ ÿDµìaö‚Ñòާ…;üXáñ2/ Àd^d^Ižse›Qz׬Ÿä1t`ÀÜ+F.“y‘y%n¸Û…­²[”Հɼ€dµïÏ}îû“0¤@ÖlGì gÚâ¯üMÂ}S×ûÅùžãxýé\æöÜóœCûÛ?uŸV`¦éÿk¸ðݪV)A¼Y—Å-‡+nÐ% ?t;²¶òqK^ûnbXÑÊ­>wŽeâž×ÞÊaÄ›•MCìžå²·²õÒgfÞ»7î¾ù\ž)ì¡m€]‡wl9tñfeÓM§x;'oŠ>à¹I‰ƒq÷J/ [¾…žãvöw¿cäiˆóÚe~F¼Y‹‘§Êlu©k„1yŽIY|ì>&üÅÝŽq2Žçs:<­Ø„x™`2/2¯DιVÏ|±çCBr.¯éÊn`úéȼ`í™—¹RnßïV÷hg`2/ ¹|ÜöqÛÇm€‘ ƹXpö…™oÚiú¾ydÈý1{ ýI]{7×>ì5ôFñVýÊuÕŸÂ¥¿êZí–ÒÆŒ6ÃÀÖË6î¾±{T@EýUY.dIéßÿ;Gø:0 a˜;€ý–/V4i1Çgÿ¿ÜŒd›†0ÀïÐGí»¸×ë¿ѯÅá?<.X¾…v/Ïêcäi~‡n]Œs°ž_è{µ+¼ÖŸ¥ÂõlâëZ£åÜ 2/ Àd^d^IÑ–y0÷ù¡|ÿµW_xp‰Rƒ'.8núéȼ`í™WJ(“yÉ%ݬ¯Î¿„ÿ˾+û®ì»LƒÉÏ®U­ðp‡-úþt¸áþ @XŒC×}ÿ×~š¼êj«–ý?ó Vkyp‰]%v•ØEdáßg†\6ñ àÃuüê­è¯òÈà’ãÿ&=ÿ$ªqýÆõ×ÈLÞz/˜öŽÑžwß<á·¢°%¯òþcò†­·\z´ý4(¿ËÑöy/)—iuÆ“ÿ$*"ÓÿôopÓÞ1Γ¨âîU›%‹]]ËYþÚ:ý†½-xÍ ÓfžD¥r‰LcŽ©Œó à7‹¼Ê[Dß«ƒ½êðndÌGá$î3€ûEô‹èAdòÌ‹0™™Wb-­t¿àþÚ.9kä0™™`2¯ä -L³0ÍÂ4Ûû·Èþ!û‡tKÝ-u·Ô–—~õ¿OAÏFbñöö6 ©¨]]Ý'&ï„Ežšö+2_Ô÷çDëÆ}ʱäU‡ëÖ½ôÅ-#€ßFe¨ìoºŸ-¯´¼Òò ‘i¦½ÓÉ¿þ3'ƒ.ÝáF½¿ „YòÚ¦sª}Ÿ¯´þªæý«Ë·ÎhàÐ,Ë—1=þR:)”ŽÈL^z/˜öNÉ}ë.{lÌpþ3Õ¾kæmÉ« üSó·V«õWå˜ëz¿äf£Ýœ¯r¥õŸ}î;ÉOÿ7íÞg›–:j´ שåªç¸oÑÝÕ/<õ”7¬è°¬µŒ9 1êÅ¥^;L¼>Ê%29¦ ¬èt+OV#ŒÉƒûùÔq¾¥ïU×1%RLoÉ«>t zSù¸_õ|“repíšóv¶¦U*W¯X>£e—~hÞÕo–éñß¼9xs0‘ 2/ Àd^d^‰•s9\ðíWí{‹ŠÇwV ?Ñ ÇÏ.î†^šÌ‹Ì‹0™WòŽ…ôb!GÆ6è…Û 'lœ°Ñò¢¯þ÷ß¾è`«´"hEÐ ÓðŠØÙi@¥ÊÉ;aQ¬F®¹Ùúêû³µB²ž-þÇ/Ü÷µ-_>þ$`ã€íhw¸Âg~å1fÖ˜Ycf™Æüê-U»X÷åYÎ|/s`¦ÝB‰…|Üͽjk…)ž-â¾*lÓŠÂermbíÉq½Kl1=þ—+]®t¹‘™¼ô^0íb;º××Û8éº[éï',üÏÎÏÜDt)Rù‘FæŸYbë÷Í VÜ8¢Ú…’£õâîÞ͵{ m:Çuçÿ­¤¢k—ÎíJÆÌ8¦Ÿ-w¿X°é§»}àöÛˆLyQ&ó"óJP›iuÆ“SûýXMŽ»‡ùVžßð¤ûðÞ力¥.ŒX7Ö-â· “';¶õw©Qæ? ÆwìðŸ,µ;’9Ð8`2/2/ Àd^ß`Û`E߸([=­´VZ+mv» ÖêQj{òNX<õïðk…3ú¢j–Ÿ0÷hù‹ÿL§óÙ{Úÿ×@¹fÓÂNŒ3³Ì¹²oñý¦ûÑå¢ËE"Ó:^îx¹ãeÓ>z~LlX±ƒÑ À¡–w/}'W÷.™»ÄŽw(Ò2»ý½°½{³\äžÓ°¬[?³4}ݨºQu‰Ìä¥÷‚iïØ‡çÍë4Ìh &Ç]ÌÙ’oÌ‹sdÈÕÖcèÀ€¹WŒö ô²Ïšî³~¥"2@ÿ7í£wÇí-ÜÄ8I{pÖ£=3íã—}ª%ç…Ó™’“³­Ó ÃÆœ†hÝvá.—L÷\å™F0òÂÈ #/˜öѽmîÜ5ÂÈ\_Ò¹‹[¡ü{-Ï;êævžâXçýà ¥•ç³\ýt¡YyL÷üm÷·Ýßv'2AæE˜Ì‹Ì+±r®ü««önlÉ·g®Ù%Š•Õ{¢Ô #OCø¥kuÉñ éê£\"Óývè·C¿™öÑž¿jwóªn´¢©~§oóþE;å[WhO޼ö‘Y÷fvµkê›§aöÑwºÄä=©ÿMÜlÅhŸ":{×FŸyÐ}-ûZöµbßǾ}Od‚Ì+%€É¼È¼’"çòØ4ðܼyùRU¬Uïïl] þârÑngVÏl;ô'þºøµí6°³“GŽ9Äý,9¼]ä%ŒS&ó"ó¢LæõíQ¶.¶]ô‹°Õ‹~ý,ú™¹ ŒyÛ-M•tÆ)éÿkÌé˜O»l üÌ]×YveÙ•eWì“Ø'±OˆL#¸}5új´iOxtÑÅÑ8 ÿïÆiÏ÷ÙXØ÷“é1ŸöxÚãi‰IãÐ{Ä´§¼‚ÇGo,lÌj܉‰¯û“·-ÔµaÓ ‹¦Ç\¿R“†ð$öIìýÛÜ´§FU»ðÆk°ÑÊÀq§âŸzˆÿ/“­ýáò'ïôæÆ±ú(—À4‚‡¡C†~æNš~Å <4ÚXÝtQhkÉ2â¶··´Jšó~úmè·˜™×·ÉËȼ23/sYUÜÿ®/ ­ÿ—<%½ëVèhœ\ŒÌ‹ÌË8Ù™ò/2¯$FØøRNÑ7. À6¢½{ÿöþ¦z·x›ºSŒ<µaíÅ©ÍËú 0=ÚÃ^{=ì5ÑhŸ~þôó§ŸÍ>U:ÿI‡*öÖ•ä¿׸GZׯ¦Gû\¹såΕ#&CïÓž*Ü·É’i\¶Ê6Ëê\'Ì]‹ô+1iú·¹iOõ:¶{cñÚÖ; a̶ éÇŸYlPÙÆnö:&t¹X!‘7ã[¹bñæG[v–egbd^´d^d^ o ïnÚ£g¶JÑAžAEnµ ìÿÔò׿=WáP½ÿä8ù:7šhˆ0™™-™W2¡lL)³è`R ¤@HÓ`7°Bk·L $n;ô}é€"}Möé§7žÞH4MËg-ŸµüÌ]ò7ìØT®‰ÕÆüp¢\às_œV}XõaÑhz˜ë/ÿë«z(Gá6±ZŸÙÓîøÌdúÕ‰h4ýÛÜ´¿*Mêö8i&·­ë3¢v¡ÏLÒé#[¢Ñh=ô`ÐÓþúëVSG_7r„DkÿíÖ¾J§ÞÙ«Ú÷ùÌãf¦GL˜N4‚̋̋̋Ì+ám±zÝÆüçîä¬õò­(ÔÝ×uá3©jü¯ò>7¥Ì¶e™Þg~’EÔ_ëžï· Sɼ@æEæ•’Q6оqQ¶‘i#ÓF¦5»´OW)ð“) o?þÜÅ£²Ù·?.ø¸àã¢ÑhdoÙ[þÌ8Fùu¹èÒ•éƒÄjÏjë/û.ùÌâÃ;ï8œ84&½w>³™ó¸ë/S¸M´%È64rìò™%Èô«qh4ú·¹¹ïú‘›ÏßòªÄôAÂÛÑ/·ô2;¦ÒG¶D£ÑœûþÜ÷ç¾7í¯Îï=28“)$V{Smýs9Íô8W)U¥T•RÄ!ȼhɼȼ«-ÛgþÚÆöeJäû¯Ò…¾¼sé˜ÙYöõõ+¿´¹¶«Ôº±íÖqYÜnú ›YFçzìø«þ—ús‚ýN.ÏöÌ d^d^)àäEÑ× À6¥åó–Ï[>7 åÁ‡–ug2%áíÁ*u³x×4=ƒìÙ²'é}—÷]Þw1w¡×<ì§Ê ˜DHxÛjJÍò73=Â'W\u’_ ”Þ;¦½æx¬ÜÀšÿP¸Mxë7oY‡°ŸÌ]ô«qhLú7»i¯µ;²,Òõ“ o»~ÜRÅm÷gîÏxÞòyËçD 1E7ŒnÝÐÜ5íÅŽÍ+."_Hx;¨ž÷XçN¦Gøó!çC,þ 2/Z2/2¯$yâ¯ÝXûÕY#-Ÿ4ϲ=÷PÇã¥.ŒX7Ö‹?“y‘yÑ’y%/ ÀßE_KP¶)§Wœ^qzÅg–Îèáä‘{3“) jus©’·àŠìûí÷šáë×®;F6,ý°ôÃÒ›ö݆Æz”ôg!!탨ý}Ëw6÷µ=+zVô,"РSù³¢gEÏ2×weüfÿ½¿/EÜ„´nn=.Oèñ™gƧ–~Xz"ÐÈôovÓ¾Ëy3¿[–ÆcJ„W÷ÎÍTBBÚ"3ËžÏQö3ÔXqzÅéD ‘Íý4÷ÓÜO¦}7ûJùNnÉÒ¾¸Ø±SÅ•f'¯ï¼¿óþ2/2/2/2¯¤+ç?Sí»fÞ¦÷ÿç~ßÒNÁ.9 Þ«¿¯Ó¡2æ>?”ÏÏý%ó"ó¢%ó2 ÀßEß/EضdŒÍ›ÑÁÎÁÎÁÎ4ÐÏÝkæï{‰•¯kÕy ¦”þL¢å×ͯ›_7BÏøîõ½×÷^_³ÏIò92¼²È„Â×µ¿MiU¨›éQ]3f͘5cˆ=ãÓ{Ê´ TïÐ<Š"îWþýåòqG†›»æèW$bÏøôoùÏ,xë½vw±~L%|]ÛsìÎ~îwLª>‚ÕG³Äž‘={ñìųæ®o[:õ«T‰ÜáëÚ‰üÚ¹¾6=ªÓ†L2m±2/Z2/2¯oSþOF“yÉQõMéÊ3Nìå»wñÊ0sIæ2/2/PN:}‚° :˜î`ºƒé>ód‘åŽésL‹­Ò­`•½§Ìõ£Oé¶o¥ û¥­ëìŽË†ž1=žúUˆ¨³ú·üg–¼-‹÷¨ ÿñZϴ´®áþÞ9ó(Þ(ÛϦGUÁuÖ"8_p¾à|¦ý8ö‘o)W2ˆ/m6nW¶ünsßÅÏ—<_ò| Q2/2/2/2/Z2/2/Z2/c¢œ¸(ú& À6(úMô›è7Ž©S9¦2= vl­y«T &Y,o—o¨|Â#Ãgîýmë×Ö¯mìõØë±×‰:kq{Èí!·‡˜û’xÔð``ùgL.XÔÖ?Y©J^7ÏV¹*˜É•¯W¾^ùšx³.z¯™öf©hoÏVåVûœ¬Ää‚%m™s+ 4wѯBěո{=öºþoÚ› —ŒSx.“ –·­¶Î?á²ø3O¿Kå˜Ê1•>‚%è¬Å“O <)`îZw#¸ÕŒrÁä–·ÍZ¹Få 2=’SšNi:¥)ñ2/2/2/2/Z2/2/ò)2/#£œp}“`›uÌõ˜ë1Ws'Æ“ãíïVØËTKüí]Ç6Õ&˜;†—‡^zy(‘f‚ >dÚ§µk|tø'vÅÉ‘U<˜hˆ¿Ý0u‚’5Ìç}œ÷q‘f]ô^3×§n¥{¼›°€)†ÿÑ]trd|>šCýÊC¤Y#ýßÜÙÑ¿¢ø®Ä@¦âoß<ú}ÉXsÇPµiÖhÖØYcg5íÓ—òü‘}gô°®CÉ8þG{гnzïªæÎŽÈч#i ó"ó"ó"ó¢%ó"ó"ó"ó22 À ·ïÏ}îû“¢oâ¢lãÚTiS¥MÓ“¤F®BÛÜb¶v}øiÓöÓÂ.aU‹§Ê=?û¯¦Goàë¯ò[+q=âzÄus_!kìÇÔ-‘‰sír;–”ëiîè…ù…ù…ùcÖKïA³‹’͘6uǦ̵Ŋv]?¦®Ùçb^¸ÁŠVLÿöÿÌo¨Ï»œ·ÿ4ªëÅ¢^c™n0mGß¾,x§**•ï˜ó3“×úH•è²^\>¸|p1wÝ›q< B±]df—}žÔ®vyÉÜÑÛspÏÁ=‰1y‘y‘y‘yÑ’y‘y‘y‘yà„‹nÝ ºEßÄEØÆ= {ö,ÌÜi3m\¹®ÅÜ™|1m Þ[œ‡›;noÞ¼ º¬]ˆoˆoˆ¯¹^þ«ßº4¾öL:Äm#ïk¹+…féŸy¦‹¦G¬GµÕzðl#ôÞü̉±?sÞÌûýr/¹¯åfÒ!n[jïØÙëÒ˜»žèWâÊÚéßþæz¹Â¸ Žù¦1é`ÚÖì5h‡ÓUsÇM©]ÖîäÌ“3OÎ4×Ëò”úÇ|^’_Äm?zw©Xù]ñ\¹WfÏbzÄ85pjàû0öaìC¢ d^d^d^d^d[d^d^d^d^ÆG8±Ä½˜¢oÂQN„CÂ!á¹/€åkî/U‰½]©Îõ˜dîXšjþ©ùD”-é½±÷ÆÞfŸ+p÷Àž{›˜€ˆêq,&pP-û€4+Íþ0ÂíÛ7"ÊFÒ-·7noÜÌõuî奆¤ñŸ±rÀ±& J/ysÏ=sÇJ¿ÂQ¶D ˜ëñFK'î+ü˜©‡ÿ{Äå—GK¶GïYsýžÏ¿R†úüŸ®ZqbxÊœ€(sqîþƒ›;>úUE¿ÂK¶G˜ëý–õæöt)”’' :´Zy°èHsÇG‘E¶'Ú!Ú!Ú!`KÀ–€-æzÿvÁÖÓ²¤ÐŒãn·6U‡ø¤sÞgîøw|ÜñqÄȼȼȼȼȼȼ@æEæe](Ø(§ 1ÅcŠÇox·á݆wÍ}1(]çOï )m:fÓ›êmK^2wLºí~´ûÑØ«±Wcù%¾ÍzèôÐé¡Sü—¿ß|ŸKùŸRÎħsÇ&6ê^ïbPsÇd_š}iö¥!~l›ÞËæb olÅjõ.ú÷Y™ãØ„ôÛó§³®ís‰ÿŠ¡_Uˆ›u5öjìU}„`.šžUªÈ¤”6Ñ.pY×S掉> ÕG¤‘­zÑøEãã¿B^«Ðòÿ‡t×—Ÿ Œônïlöi…ë6¯Û¼n3ñ2/2/2/2/2/2/y‘yY# À0& À)λÐw¡ïB=x6ð4ûHíUUµ6>3®›o×Yn»e6wj¨y æ¨tQé¢Ò9)A¸G¸G¸Gü©Å…†ÃýÜm{"¢³â\É3°d™5yì̇åáËׇ3)‡Þãæâ!W ZeÖø®ZÜ^q¶í ¯u&n ÿ*¡_Iˆ™”@!è£sñP»Î÷‡Œ©Þ×»€mO@4 Ÿ”·p´¹ã <õQ(‘“ÜÙxgãñ_-õh´¿Ì~ÛÎ8Þµ *Y¹AóóE'æ3û8ž©k¦®™º†˜™™™ȼȼ@æEæe½(Ø(§P¯§¼žòzŠûf÷Íî›Í}aô*^R(”ëØ ØÊgli"&r`g‡J[Zzû%:sŸ=0*0*0êý•÷WÞ_!ZRš3»Îì:³+þ4cóÁÉYr0›„?¬³*OêáßýåWª-M=Œì~¾—»ßÐÖ‹ošûìúhSy-)ÍÕ«W¯^½ÿ•sÙƒÊcŠßµ½Òïíê­—äÉûSÖ5YúšûìcwŒÝ1vGlTlTlÑ2/2/2/y‘yÌ‹ÌËzQ†1QNÑ"ŸG>|^±AÅÍÞ l·#Ó–L¿jö›¯Õ/Ôv—|â–6ýjwÊäEaqYÅÁV<Qød*Y—HÃæŠÿ󮺲êÊ*~X=âW¥“ç°9åìW;ž,`½S¾©v—å-°¢v§ø?¯~Å 6R2}ä "â–®Õ7Û¹ ¶ö ˆžêÎÛîo3…ÛõÈdv ©0õÑ&’’ÝÊz+ë­¬ñŸµÝ Ÿw¸õ¸j»× Z{ƱauµÑ%ëÆÿygŸ5~Öxb ó"ó™™ȼȼl``Ä~êû©ï§¾=+ô¬Ð³Bü_œƒ³xŸržõºb§-•:[Ë̳B:Uü¡Ûî} ÖÿÓ ÿgø?Ãÿ‰qŽqŽq&* »?ùþäû“sõÏÕ?WÿÿñËôf“Ž–|j]ç2nÈì»Å9¸@û¬-âÿt‡j|¨1ñ€¸ô¨ˆ?rìg;V.ÐÞËk¼ó†ÌVö«sµ×æIGãÿtú•A¿JÐé£}Dü”=ßb·cýàqÇ zúXËÔðާýJyTØ´%ß’ø?>ªÔG˜DtO³<Íò4‹Ç âŸ×ý=Åë–»J6kÉ8®¼hqÃÿ÷2›óÎÈ90þO·5tkèV–ãȼȼ@æEæ2/2/›BÆDÿemƵ×fÌd¹-ËGºŠpîT¡R!£MÁ9p¥Ñ¦®¼ÛVÁ¿£¬Õòþö?ÈqöãìÇ]/z½èõ¢ÄÌÑ#D–ø#ÊÁ¹L£ÀjÞ‡'¿ÞVÁh“þ;VÞ9>¹DæÁ *Øuµ¯uRüŸE¿èWbæè£ KÆ!ÕKý~Æ)Opô±÷žm6õ0ôÑ©z¥¾¯³cx‡‚/-ù,úH’Þ‡9g|œñqÆ€çžxnIDíêPkL)á“S—%nFË8n¥i] Ü…öÜ'˜nÉg¹æBš iˆ€Ì‹Ì d^d^ ó"ó²=€aL€ñoÿ{ûßÛf8ÍpšaÉWÎÀéÞeKß\ß*¦œ\S0áŽ-<üÓõÌP²AÁ¿-Ùgï#ÞG¼Ü ½z‡ßàã ìø°ãÃŽ™,¶lóˆ,Å/~¸q$¦ò½äšzY²0“Ozß2%.å¹;äî»ï'¿Ÿüž_×Â"z´è‘cIŒåhëZ¾Ä¥ƒÅ…™’mê!ÓòGGbŠæëÜzDËÏhý @ÃrúHCuXc¾¯ZmrÜÑ;õÞÓÅ÷%×ÔC¿%!Y<—Ý9(_+KöY1ê£Gz– ©R'¤ŽåWà¹û+ds;9¼s¾J[“+ãÐV6xVzMµŠ£ó¨–ìsb=Šõ(Y5²jdUz ó"ó™™ȼȼl``˜5#jFÔŒ¥¥––ZZ*ÓšÇ/kÈ™»MGøvIäÉ—[ÝZW 8¹¨ñƒ²½GL/ãåòÓ—îÛúwëß­3*fTÌ(z_çé©§§žžêìÒÙ¥³‹å±WºKñU9ÝÖØ©["Ã-¯]Nån$îtCÄŧRéKæ¾ð.Ô&míÌùÿ´|ßœf:Ítšy¶òÙÊg+Ó¿H=Šôˆ²<ófhS;³Ç¨õç¾ð]»¸—⓸“>ϧ‡ìr*æÚuý˜ºÙ/™\|•åû¦ŸéúYOÿâëè£}ò¥ã–Ê¡=3æ_ÝmìV/·;c~¼K$î¤C™ÛºÏªÖ¶_Ë—¾tßôQ¢>b¤—ñu^½xõâՋߕߕßËcÏMË7Û‘¥½*½->ýÚ†–·ËeJÜŒã]ç ¯Ê…UõvùT íQÞi‘åûf×®…]‹£NGŽ:Ñ¿™™ȼȼ@æEæ•P†1Q†Ež-z¶èÙ¢àÁ‚?dú*YÒÙËÒ"WÑ5ùNN~íÿ{Ñ%GW»Xrô¡*uûyW«4èUº‘Ý AéÊÛÖÍã]ý¹jž%óMôôëåú©ñ×,y¯dJ€ &˜P ¢HD‘ˆ"ô&×Åk¯]¼Vij¥©•¦~]|ºn/ø ›}÷†M¶0oÕ cî?lÏ5m”g¬piÑO> µ eíKÏ—¯.éX:õÞ¾³zý¶âäHÁ£^ð¾_TÈæÝ3wÁ„œ;…ÂN!úIô“è'ô&‹Qzt%$>sŽrûË»gÁÎõŠt8XtrÐÆ‘Bñýƒf,™}hƒ%KÎvcYûc‚‡/úÉ}kŸéÓF¹Ìk7|бü½«\h²=«G>Ÿ‚¾î}õ3Z?»éM$.}4¢Lrv”èP£lî¢Õîÿ^É黦ï§/(òs»óËÓº~êôb­w±íÖö+Ô¾üòEó5;:#¦H힦9õõl_{_îËvÃ2OÍ4ùëÞW ê#Cz‰ëú׸þCƒüÐà‡¯‹Ï‚÷³Ÿ· jîQÂiæœïÊÿîÖsÛz®‰¬×Ï'ŸæØ@(=^qjð]éÌûVÖÉæµkuÅ*JÑG,FSé£>}H¯áÛ¸žñzÆë»…v íjÌóÂÁÙÁÙÁyûãí·?þðæÃ›oè5€Ì‹Ì d^d^ ó"óJ™(Ø(#A¢ý£ý£ýÕÅêbuq‹s-ε8—\_|;ùvò=vâØ‰c'b+ÅVŠ­Dï y=Ÿþ|úóéë'¯Ÿ¼~rÉ ’A%ƒ’ë옘bþ‰ùoÞ ¼H¿ÀôhÔ#3¹Î ý¬ÔÏPýl¥_Ì*ÅVŠ­¤dôQMrúˆNÝé#=:É+"8"8"øÏô¦ÿ3½ß¿'~O’ëìqnĹçþîüwç¿;Ó/™™ȼȼ@æEæ``$²O»>íú´ë‚vA» -h² É‚&5ú×è_£b}5ÖÛ\os½ÍKC—†. ß¾+|WÌ/1¿Äü‘‡ñ½œórÎË9ª§ê©zŽté>ÒÝc’Ç$I ?/²ïϾ?ûþ®=»öìÚsG†vdx°øÁâ‹9æ°zÄêÑ«G²Õ ?;ô³L?ãô³O?9æ0>}„£vô‘> J¬1•>BÓGkúÈMÅqäa|QQQGn¹q䯸âã‹/îŞ˜O±„Ÿv[ì¶Øm鰮úë¶xnñÜây7ènÐÝ Ž9@æEæ2/2/y‘y°.€‘Ì¥~”úQê°•a+ÃV†={öàE«­^´âÈ'ߟ|ò}è¸Ðq¡ãŽD‰>û(öQì#Ž Rö×Fì£ØGú¡Ÿú™Âô”>šÒGVú(‹#œvnعa¡'CO†ž<²ÿÈþ#ûcjÇÔŽ©Í‘@æyd^l`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAl`°€ÀFPAlÄ7-‡~ú}è÷™ ÅÐ뤀ÀêQ‘â Àúý.ô»ÐïBS…¦ M¥Åh1ZŒ­EkÑÚ'í“öIû¨}Ô>jïµ÷Ú{íöN{§½ÑÞho´H-R‹Ô"´-B{¥½Ò^i/µ—ÚKí¹ö\{®=ÓžiÏ´'Úí‰ö¯ö¯ö¯öH{¤=Òjµ‡Úíö@»¯Ý×îkwµ»Ú]íŽvG»£ÝÒni·´›ÚMí¦v]»®]×®i×´kÚUíªvU»¢]Ñ®háZ¸®]Ò.i—´‹ÚEí¢v^;¯×Îiç´sÚíŒvFûKûKûK;¥ÒNi'µ“ÚIí¸v\;®ÓŽiÇ´£ÚQí¨¦…iaZ¨ª…jª¦jª¦hЦh’&i’&j¢&j!Zˆ¢Ök‡µƒÚAí v@; Ðöiû´}Ú^m¯¶WÛ­íÖvk»´]Ú.m§¶SÛ©m×¶kÛµ?µ?µ?µ­ÚVm«¶EÛ¢mÑ6i›´MÚFm£¶Q[¯­×Ökë´uÚ:ííím¶F[£­ÒVi«´•ÚJm¥¶B[¡­Ð–iË´eÚRm©¶T[¬-Ök‹´EÚ"m¶@[ Í׿kóµ¹Ú\m®6G›£ÍÑfi³´YÚLm¦6S›®MצkÓ´iÚ4mŠ6E›¢MÖ&k“µIÚ$m’6A› MÐÆkãµñÚXm¬6V£ÑÆh£´QÚ(m¤6R© ׆kõaÚ0m˜6D¢ Ñ‚µ`-X¤ ÒiµÚ@­¿Ö_ë¯ý®ý®ý®õÕúj}µ>Z­Ö[ë­õÖzi½´^ZO­§ÖSë®u׺kÝ´nZ7­‹ÖEë¢iAZÖIë¤uÒ:jµŽZ{­½Ö^k§µÓÚim´6Z­µÖZk­µÔZj-µZ ­…Ö\k®5ךjMµ¦Z­‰ÖDk¤5Òi µ†ZC­¾V_«¯ÕÓêiõ´:Z­ŽV[«­ÕÖjj5µšZ ­†VC«¦UÓªiUµªZU-P ÔµÊZe­²VQ«¨UÔ*h´ Zy­¼V^+§•ÓÊiþš¿æ¯ùj¾š¯VV+«•ÕJk¥µÒšæ£ùh^𗿥•ÒJi¥´’ZI­¤VB+¡•Њkŵ⚻殹kÅ´bZ1­¨VT+ª¹h.š‹VD+¢Ñœ5gÍY+¤Ò iµ‚ZA­€V@+ å×òkùµ¼Z^-¯æ¨9jŽZ-–GË­åÖrk9µœZN-‡–CË¡eÓ²iÙ´¬ZV-«–EË¢eÑ2k™µÌZ&-“–I˨eÔ2j¿j¿j¿jéµôZzííí-­–VK«ý¬ý¬ý¬¥ÑÒhi´µµµïµïµïµÔZj-µ–JK¥¥RcÕX5VV£Õh5JR£ÔêGõ£úAý ~Pß©ïÔwê[õ­úVT#ÕHõµúZ}­¾R_©¯Ô—êKõ¥úB}¡¾PŸ©ÏÔgêSõ©úTýWýWýW}¬>V«Õ‡êCõõõõ¾z_½¯ÞSï©÷Ô;êõŽz[½­ÞVoª7Õ›ê õ†zC½¦^S¯©WÕ«êUõŠzE½¢†«áj¸zI½¤^R/ªÕ‹êõ‚zA=§žSÏ©gÕ³êYõ/õ/õ/õ´zZ=­žTOª'Õê õ„zL=¦SªGÕ£j˜¦†©¡j¨ªêUQUR%UREUTE5D QCÔÃêaõ°zP=¨T¨Ôê>uŸºOÝ«îU÷ª»ÕÝênu—ºKÝ¥îTwª;Õíêvu»ú§ú§ú§ºUݪnU·¨[Ô-ê&u“ºIݨnT7ªëÕõêzuºN]§þ¡þ¡þ¡®QרkÔUê*u•ºR]©®T—«ËÕåê2u™ºL]¢.Q—¨‹ÕÅêbu¡ºP]¨.P¨ Ôyê-Ÿ–OÊ'å“ò ù„|B>&“ÉGå£òQ9L“ÃäP9T•UY•Uý K²$K²(‹²(‡È!rˆ|X>,–Êåƒòù€|@Þ'ï“÷É{å½ò^y·¼[Þ-ï’wÉ»äòy‡¼]Þ.o—·ÉÛämòVy«¼UÞ,o–7Ë›äMò&yƒ¼AÞ ¯—×ËëåµòZy­ü‡ü‡ü‡¼Z^-¯–WÉ«äUò y…¼B^./——ËKå¥òRy‰¼D^"/’É‹ä…òBy¡<_ž/Ï—çÉóäyòyŽòoòoòor/¹—ÜKî!÷{ÈÝåîrw¹«ÜUî*w‘»È]äÎrg¹³ÜIî$w’;Èär{¹½Ü^n+·•ÛÊmä6r¹•ÜJn%·[È-äærs¹¹ÜTn*7•›ÈMä&r#¹‘ÜHn(7”Êõåúr}¹ž\O®'בëÈuäÚrm¹¶\S®)×”kÈ5är5¹š\M®*W•«Êr (W–+Ë•åŠrE¹¢\A® Wä9@.'—“ËÉ~²Ÿì'ûʾ²¯\F.#—‘KË¥åÒ²·ì-{Ë^²—ì%{Êž²§\R.)—”=dÙC..—‹Ën²›ì&“‹ÉÅdWÙUv•]dÙEv–eg¹°\X.,” Êe'ÙIv’óËùåür>9ŸœOv”eGÙAväÜrn9·œKÎ%ç’sÈ9ärv9»œ]Î*g•³Êö²½l/g–3Ë™e;ÙN¶“3ÊåŒr9ƒœAN/§—Ó˿ȿȿÈiå´rZùgùgùg9œFN#ÿ(ÿ(ÿ(///§–SË©åTr*9•+ÅJ±R´-EKQR”%}”>J¥ÒéƒôNz'½“ÞHo¤7R¤)EJR„!½’^I¯¤Ò é…ô\z.=—žJO¥§Òé‰ôDz,=–K¤GÒ#ééééô@z Ý“îI÷¤»Ò]é®t[º-Ý–nI·¤[Ò é†tCº.]—®KW¥«ÒUéoéoéo)\ —Â¥ËÒeé²tQº(]”.H¤ Ò9éœtN:+•ÎJIII§¥ÓÒié¤tR:)NH'¤cÒ1é˜tT:*•¤0)L •B¥P}ø¯íK:Q%Q ‘B¤é°tX:,”J¥Ò逴OÚ'í“öH{¤=Òni·´[Ú)í”vJ;¤ÒéOéOéOi›´MÚ&m‘¶H[¤ÍÒfi³´QÚ(m”6H¤ Ò:i´NZ+­•ÖJk¤5Òiµ´ZZ-­”VJ+¥Ò i…´LZ&-“–JK¥¥Òbi±´XZ$-’I ¤Òi¾4_š/Í•æJs¥9ÒiŽ4Kš%Í’fJ3¥™Òtiº4]š&M“¦IS¤)Òi²4Yš,M”&J¥ Òi‚4N'“ÆJc¥±Òhi´4Z)”FJ#¤Òi˜4L& •†JC¥`)X –Kƒ¥ÁÒ@i 4P H¿K¿K¿Ký¤~R?©ÔGê#õ–zK½¥^R/©—ÔSê)õ”ºKÝ¥îR7©›ÔMê"u‘ºHAR$u’:I¤ŽRG©£Ô^j/µ—ÚIí¤vR©ÔFj-µ–ZK-¥–RK©…ÔBj!5“šIͤ¦RS©©ÔXj,5–I¤FR©Ô@ª'Õ“êIu¥ºR]©¶T[ª-Õ’jIµ¤R ©†T]ª.U—ªJU¥ªR©ŠTEª,U–*K•¤JR%©‚TAª •—ÊKå¥rR9©œä/ùKþ’¯ä+ùJe¥²RY©´TZ*-ùH>’ä%yI^R)©”TJ*)•”JJ%¤R ©¸T\*.¹Kî’»TL*&“ŠJE¥¢’‹ä"¹HÎ’³ä,– K…¥‚RA© ä$9INR~)¿”_Ê'å“òIŽ’£ä(9H’ƒ”[Ê-å–rI¹¤\R)‡”CÊ.e—²KY¥¬RVÉ^²—ì¥ÌRf)³d'ÙIvRF)£”QÊ e2Hé¥ôRzééé)­”VJ+ý,ý,ý,¥‘ÒHi¤¥¥¥ï¥ï¥ï¥ï¤ï¤ï¤TR*)•#ƈ1b´-F‹ŸÄOâ'ñ£øQü(¾ß‹ïÅwâ;ñøF|#¾#ÅH1RŒ#Äñ•øJ|%¾_ˆ/Äçâsñ¹øT|*>ŸˆOÄ'âcñ±øX|$>‰ÿˆÿˆÿˆÄâñžxO¼'ÞïŠwÅÛâmñ¶xS¼)Þoˆ7Äâ5ñšxM¼*^¯ŠWÄ+â1\ ÃÅKâ%ñ’xQ¼(^Ï‹çÅóâ9ñœxN<#žψ‰‰‰§ÄSâ)ñ¤xR<)‹ÇÅcâ1ñ˜xD<"ÃÄ01LŸüÓÓ}ýK^Ô ¢ âañ°xX<$‰Äâq¿¸_Ü/î÷Š{Å=âq¸KÜ%îwŠ;Åâvq»¸]üSüSüSÜ*n·Š[Ä-âq“¸IÜ$n7ŠÅõâzq½¸N\'®ÿÿÿW‹«ÅÕâ*q•¸J\!®WˆËÅåârq©¸T\*.—ˆKÄEâ"q‘¸P\(.ç‹óÅùâï…÷Â{á­ðVx+¼Þo„×Âkáµ!DÂKá¥ðRx!¼^Ï„gÂ3á‰ðDx"ü+ü+ü+< „‡ÂCá¡ð@x <î ÷…ûÂ]á®pW¸#Üî·„[Â-á¦pS¸)\® ×…kÂ5ášð·ð·ð·pE¸"\. —…ËÂEá¢pQ¸ \.ç„sÂ9á¬pV8+ü%ü%ü%œN §…“ÂIá¤pB8!œŽ Ç„cÂQá¨pT„0!TBUPUYIIÐ…!BˆpH8$ …ƒÂ~a¿°_Ø'ìö {„=Âa·°[Ø-ìv ;…Âa‡ð§ð§ð§°MØ&l¶[„-Â&a“°IØ(l6 ë…õÂza°NX'ü!ü!ü!¬Ök„UÂ*a•°RX)¬– Ë…åÂ2a™°LX",–‹…ÅÂba¡°PX(Ìæ ó…yÂ!ŸWÈ+äÁAÈ#äò¹„\B.!§SÈ)d² Ù…lB6!›`/Ø öBf!³Y°ì;!£QÈ(d2„ôBz!½ð‹ð‹ð‹VH+¤~~~Òi„4ÂÂÂÂ÷Â÷Â÷Bj!µZH%¤R…ĄĄĄD‡D‡D‡| ùò)äcÈÇ!ïCÞ‡¼yò.ä]È›7!oB"C"C"C"B"B"B^…¼ yò"äEÈ‹g!ÏBž…< yò4äßCþ yò8äqÈÇ!Cþ ù'äŸû!÷Cî‡Ü ¹r/äNÈ;!·Cn‡Ü¹r3äfÈõë!×C®…\ ¹òwÈß!‡\ ¹r%ärÈåË!—B.…\ ¹r!äBÈùó!çCΆœ 9r&äLÈ™Ó!§CN‡œ 9r2äDȉ!ÇBŽ… 9r4ähHXHXHXHhHhH¨>m¯O×éÃv Àßô@R0B=”0$ À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€Ø À€¾‘LñâøpœaNÓ9Mç4“ɪ­ Z´ŠXERx8éᤇ“ Ü)p§À=ZòeÌ—1_ÆWw_Ý}u—ãƒäò(øQð£`¡ÄÿÿGƺèWýª¢_aô«~åáøkA˜0À7B±‡ãŒ¯CÐÅ8Ä8Ä8ÔlZ³iͦq£ef¶™Ùff³|;]fw™Ýeö·<#ò:æuÌë˜$%Cl†Ø Ç{ïy¼ç€?ü9àÏÀ]»wm^´yÑæÙÖg[Ÿm½Ë`—Á.ƒ+Þªx«â­¾Oú>éûD;ªÕŽêÇ“¸J,W\9p¥®iÖ†Ùç饦—š^*nÖªV«Z­jœ5ÀZP¦ ðPìá8ãëPt“FM5iTÜ8)¨Ô j_3Uþ¨òG•?¬½,GÊ‘rd)µ”ZJMȾ®{¸îáºDWBD‹.]¬ÐžB{ í1Â5ÍcÃhû¹7roä^¾¡€õ¢Là¡ØÃqÆ×¡ „OŸ>Ù4N,_°|ÁòĽN¹¬ß}Ø'mŸ´}Ò&Å~ê…LâíKIY¤,R–佦YclŸçž˜{b۴µµå{ ` ÀßÅŽ3¾ÎÁ^{ìµ´~âü‹?Bë]ôr±ŠD!6Cl†êª¨> n„èËÀ~i´¼Y÷fÝ›uÖXÖKe]ÇtÓuLRï-‹Ü~©fc›m66¹®iÖÖ²Ïï&¾›øn¢é6õ…è‰|`d€)|#úæþq| E5XK„pM€%ÖmY·eÝÓX]QpEÁ¿tk÷_Üq¿¹ø¿v/ì^˜1ƒéIMù6ómæÛlãˆ#6ޏ•éV¦[™Þ~?øý`ýo˜¾aú†ée–Xf %e3bÏ›Ûnn»¹mòOkŒ ëÚç%í—´_Òž3X À€`S˜ÐÛð¡Û‡nº¹vuíêÚ5n”:º9º9º}]Äî>¶ûØîc¦‘oäe]ÿYøÏÂÆæöòéåÓËÇ’ý×Åk¹[än‘»×s>ÕüTóSÍy‡çžwØòûP‰ ëÝgs÷«Q¬F±[|lñ±ç0 À€`S(ïm0w×åÅ!Ss®Î¹:çªé6K¼(ñ¢Ä cž¤NR'ÉÜ9ÛdM“5MÖ|ñžgˆÍ›!þ«¾ó}æ÷ÎÑ;Gïb±€X ©?ÅËT/S½Lµ~Ùúeë—µªÚªj«ª¾Í|›ù6+p§Àwô}+îPÜ¡¸C•?ªüQåá^ý†{ö8íqÚÃÜ6¿ÍÔ䋌/2¾È¸qÄÆG´K×.]»tþeýËú—-´§ÐžB{²îͺ7ë^çÎ œè÷QµûÔîS»O›zo꽩·þZb8¹Øêäõ—^Φ>›úljý|È' OA­ VPÓÏ; <2è׊5WÖ\Ysåͺ7ëÞ¬³dOô»ÜÎX8cáŒÚej—©]Æ#Ö#Ö#6W÷\Ýsu×ïN+Ú¼hó¢Í›÷oÞ¿yÿe—U\VÑòí'„¾¤­ò@y <øýôï§?¸+pWà.7_7_7ßl볭϶ÞÁÏÁÏÁO?­K·.ݺ´¾óëÐס¯C¿Mo–.]>Ú4>Gf™}dö¤ˆÿYïg½ŸõÞhQ]}@õÕ˜Ûçø#ÜrG–Yrd‰¹w©Ù´fÓšMSÎÒZ ÀÖ¶ÏC m4´‘é–++••Ê c `€)€oD/Ý™›ÚspÏÁ=¿nËŸj~ªù©¦¹%ïtnt¸ÑáFBö¿ÛïÝ~ïö»¹íëÏÆ‹ ‰;1jùÖô¢oB&moeº•éV¢Mݾ]ðvÁÛ£ÿýïè>¡¬±’î8Ç¥—FQxDáÄš× óœM_z6%„q Àßþš ÿø á™†gžI¬3N§ßfîù²–;Øë`¯ƒ½’âho+¹­ä¶’.ƒ]» þº}stststÓÿ÷ƒ 6<ØûùWþ¿òÿ•ßÜ>\Úxiã¥_·å(¿(¿(?s[ÞñãŽwühœ1ÃsÇçŽÏÍí­þ£¥D;gã}~jJ[úxÏã=÷¬÷Ë—ýû–`kŒ [Šçs÷ÏÝ?wŸû€€ñQ¦ ¾õ²zY½lnªhàÊ+®üº-Ÿh}¢õ‰ÖñOE^Wx]áu ™–2·eûPûPûPK¶ü-‹=z1¦¿Ø_ì/&¼H©OM^muµÕÕV ‰Ë‹//¾¼X¿Ó.± ¨™ïe¾—ù^Üc˜“’zI&n%ýžKý™‹œM–ŸM ‘2 À×j_«}­¶~?}B"6îô÷ÕŸVknaá/e÷Ýwvß%V_¼|õòÕËWú}̉{ææn‘»EîI3ý®÷»Þïºé;êk6$äõŸò|ii?¹èÏ96··äFr#9qÿ·¿‡Õ–|Ë£g±a{ñln›úÈ“3` ÀàÑï,47a¤/>üu[žõÓ¬Ÿfý”t‹Þþîöw·¿3·µ¸¥…ø·ó-‹=£>Œú0êCâ<ô>ÒPýÒ½µä~‘oãK÷\_’1©÷êK‹IœM ‘2 Àqˇ çyÎóœç9ýžø¦sšÎi:'qψü©ò§ÊŸ*!=òÌý™û3w}vc^[LÅÿ|Í®cºŽé:&!Û×ö·–§þ¤Rsû9iÔ¤Q“F%î;Nœ9qæÄ™æÞqEÁWd,÷uןÄ.kŒ Û‹ç UA«‚V™n¹ÈÄ"‹LäÀ(SßTRL6ÞÙxgã–lyeÖ•YWfýÒíëÏ¿4·Íy‡çžw8áŸ=)Žd\ú3>·Ûo·ßn¯?¡S_|X¿+¥g•žUzVIŠR‡¾ä¬%÷Îæ•ÿUþWú.õ§üêK&êO½2äÊ+Cô£m®”waÄïùãî»?înÉÑÐË–;Þîx»ãí½°{a÷Â>tûÐíC·ûûîoç?;ÿÙùOýgõŸÕfù³œMÉu2Îõ0é® ú}óƒf š5h–¾¤°¾0û…#Ž\823ÛÌl3³éϱþºRh­jµªÕª¶oé¾¥û–ê…Xýißúë=÷hÜ£qÒVõ©èOöËúÒµú“¼oGÜŽ¸¡ßͬ_µôûòÇž{j쩸餻kùèÔ£SN5÷.ú“’²ýåžË=—{Zrå Û¶)l“¾–€þ4b}­=*ô£á½Ö{­÷Ú&kš¬i²fÑÈE#¼™ïf¾›ùëì0w'´Nžz➦o˜¾aº¹wÔÏFqßòûÈ–bÃöâY2:wÌ#£L|S«Þ­z·ê]bMéý–¾îÙ¥æîrˆ»°ª%ÛI®bO—Ù]fw™ð{”uÍû7ïß¼¿åûÙIê$u’âߦ^BxRëI­'µ,Ù¦^¤Iê»ôZtnѹEgsÛÉr!Ë…,V?Zýhõ£/-ÙÆ]è8!G8%ŸM ‘’ ÀÙÖg[Ÿm½PB(!”ˆÿ],ÿQE\zñ8±®6ú³Š¿ô8Ä»^ìÜ?mÿ´ýÓ¾ôÌm—®]ºvéÌmÙé¼Óy§óúÏV¾.† ˜tñinûqï“.Û¥l—²]~?´þ“„ìmí2µËÔ.cnûúO—÷|Œi}}‘sFq 9£’4u0€IDAT뽬16l/žõê™Û¾þc>Î ¼(SßÔƒ 6<Ø`n¨—O/Ÿ^>–oíì볯Ͼ¶|Júëž]jnk<2xdH¬û5¿ôHZòy+­t¶ÒÙÄú¼:×®®]]»Z²Í“uNÖ9YÇ’ÒoR¶øØ"þñ'çH^€)€d`nÂȽ˜{1÷b–OH-X¾`ù‚å¦Û©6®Ú¸jã>ÿô™¾ÑúDë/ÝòÞÍ{7ïÝln›qï^;wtÞÑy‡¹í8/p^༠á“Â_zߪ%Ûl÷©Ý§vŸÌm!îO“â,Ðuü«ã_ÿâlú–×Û.Ý÷^asüüü,¿ƒ?®=÷Üs0þû•-ßçq!ãBÆ…Ä¿hyÂ{Y_à]_Ùô]ò:æuÌëø¥ï¹7ro¤Ù·«üQå*$õ5ÇhÏHöˆõˆõ0»ÏOýŸú?õOÜóñß–ÿ¶ü·¥¹wÔŸ{M8!Ñ•Xïe±a«ñœð±"@Ò¡L$ƒQ?úyÔÏ Ÿ(lUµUÕVUM_«?é6áÏ.]•fUšUiÌmG/Xþ©¿e±'îd_ºåëå®—»^.!“¹ú"¨ñ¿vý²õËÖ/K¬ˆŠ» kB޳þ¼Òø·pqÿÅý÷'|Ÿõç­&¼ô•2Ϧ„H™à…fšQèK·©ß—ÿ–Ç\sm̵¯Ûç«­®¶ºÚ*ágî§šŸj~ªiîµ%^”xQâEâöïŽwü¸ãÇÄêA)‹”EÊbn;C:é8¤cRÇ[Ü;wõ¥û ?0üÀð»ï^¼{Q_xÿå«—¯^¾º¼øòâË‹õçþƽ0qK€…öÚSh¹í¼}ú:4qÏÇWw_Ý}u×Ü;º vì2˜‚VB¢+±ÞËcÃVãY–0OÆD˜0Ha›Â6…m27U´æÊš+k®üMX°gŸ]ªÿ¥¹¥Dw±Ó/=†ñomjé §6üºÞ‰¿”bÉ>ï>¶ûØîcæ^•?UþTùS%î´`ŒCŒCŒCÂ' w…ï ßnîµ¾Í|›ù6KÜ=Oø>§Ì³)éŽù·¼~ËkÂוØã_äS·oé¾¥û–~ÝÐï¦MøYptêÑ©G§š{í¤Q“FM•¸}ÿž/Ïâ>–om'æžH¬­™zÜýq÷ÇÝã?Â%o—¼]òvÜçzZ´é8Wø—’κ7ëÞ¬{-ßr®î¹ºç2»Ïzd&nŸÆíúÓ£)h%Ýw™å¬16l5žÍ­¢[8cጅ38;@r¡L$ƒ(¿(¿(¿„,~>9|rødÓׯ]–SŸ4OȳKÍía³±ÍÆ6kä°~×fBú(!“¹Ã½†{ ÷2÷ª>iû¤í“6)¦Ñû‹ýÅþbBŽóÈì#³Ìnîµú³‰»ÏqïžüºwL™gSÒÅö·¼~ËkÂ{wîݹ—ûy+Ó­L·2%×ÕF7ë§Y?Íú)qÃOÈžëËÈ[¾>û|ìóÑÜÖ¶ÔÛRoK½„ì籡džjnû^»½v{íNø"´¦K¿šê2»Ëì.³-Ùš]„]„]„ÙxÈ›!6Câöfü?$JøSmÛ·,[clØjê£/SùuÓ‘ñ/Lº¢àŠ‚+ &ÖçMŠbO  ™Ì­T#¨F¹W­Û²n˺-IQ¦o˜¾azBŽs­jµªÕªfîµú͉»Ïñ/$Ûàfƒ› nr6}›+m€õb@RìgB¶œð«®yÿæý›÷7÷Ú_d|‘ñ[ö`à®À]»,ïÇÚej—©]ÆÜÖBʇ”)Ÿý<éü¥ó—‚û}þß? ÿYøÏÂoÕ™ïe¾—ùž%G&îÚ¦ô;°·7ßM|7ñÝDsï˜cRŽI9&QNº³ØrÖ¶χÚjs¨¹w©U/ª^gH.€)€dóÇñ?Žÿqüë¦ Í-'»µÂÖ [+üçâ]Ø6þg—š+‰éî…Ý »ö¥Ÿ÷[{lx°áÁ†„ôNB&s=ÏyžówLÜ}~RëI­'µÌ½£kW×®®]-Ùó”v6%]l[äpÜ3ÅÜ‹¹s/fùñ‰{§¾©ÛßÝþîöwÖõý>´ÑÐFC™ûDms¶ÍÙ6gü[(îPÜ¡¸Ùlõ+ç·“ÄÝÆoIq[ÎcÃVãùf¾›ùnæ3÷.E&™Xd"g H.€)€dfnÚ¨Eç[t6ý{ýy“¦çn‘»Eî–÷iÊ9›’.¶­wORr8W÷\Ýsu7N8ÿ«ü¯ò¿²üøÄ¿qtstst362·ÔmÆ=÷hlú÷×Ë]/w½œå“’ñO™YrdÉ‘%_÷ISN8nÙò[€õ­u€?ÕüTóSMsïhjjjyŸ¦œ³)ébÛz÷$%€³îͺ7ë^ã€ãî%GÀ.Â.Â.ÂÜÖ¢ü¢ü¢ü¬ë›ýîÅ»ï^LȳÉë?«ÿ¬þ3s[HÜ} ˆÄæÞ±Žk×:®”²’î,¶œ5Ɔ­ÆsücËŸù (SÉìØÐcC µ|Ò°ÛïÝ~ïö»é߬_¶~ÙúeæÞÅòg—.i¿¤ý’ö¦™×1¯c^Ç„Lc¥œpü˱&ÅR‡º§þOýŸú[×ÐÏÜŸ¹?sOH™$ežMIÛÖ»')¹ÿó5ß.x»àí‚äŠ4Kþ2î}r¦ô«„u}³Gîܹ7!?m¸ràÊ+ÍmaÝ–u[ÖmIÜ}^{hí¡µ‡Ì½c±¿Ø_dÌ–tg±å¬16l5žãÃ8ø9ø9øQÉ…0`Ìô§Õš›<šõÓ¬Ÿfý÷ï¿nzÑòg—¶.ݺtëÒ¦Ùþiû§íŸR¶ä]â>ÛÕÔÅý÷_ÜŸ±teÈ•!W†$äÈxíöÚíµÛÜkõû_wŸã¿§6îþp6% À¶tµÑ•RK©¥Ts¯½sïν;÷Œü=÷I™¦®Õ¾VûZmëúf×Wz0÷‰âìÍmaiý¥õ—Ö7·}µƒÄÝç±§Æž{ÊÜ;ê?gaÌ–tg±å¬16l5žõ«“¹w‰ûs@ÎðíQ¦ ÁÜ䑾hžþ76<Øð`Ã×M0™[êö¿ž]š!6Cls{²aú†é¦'Åg´½pãw6Þù-ïtÑm­°µÂÖ 92µªÕªV«š¹×î9¸çàžƒ‰»Ï»í>¶û˜¹w¬T#¨FЗöiJ8›Œs&¦„k‚ñ À5›ÖlZ³©¹×žö8íqÚÃÈ߀ñÿôäDë­O´¶®ïô‡“Nz8)!Ï–#åH9ÒÜêýRï—z¿$î>ëÛ4»Ho¤)G2ZKº³ØrÖ¶ÏÇ{ïy¼§¹wñ™ï3ßg>`\(S† /9k:JÉœ38g°þ¿7·ÝÜvs[Ó¿é¼£óŽÎ;âŸ`ºq;âvDüS“ú©¦ÿÝî;»ïì¾3ZÅÈ%™I£&š4ÊÜ«zçè£wޤˆ¢à~Áý‚û%äÈ ÷î5ÜËÜk'¬˜°bŠÄÝçñÛÆo¿ÍÜ;m4´ÑÐFœM‰‹°-]m,9sw¼ÝñvÇ[#6’Édsû`øá†Ý–ÏÝ?wÿÜ}}yvÓú²ùIñ‰Â6…m Ûdî5YÓdM“5ñ÷ìëÐס¯C¿ÑÒ²ñþ`åKŸÅž2}˰5Ɔ­Æóþiû§íŸ–3 éP¦ áß–ÿ¶ü·eüS‡}ÒöIÛ'­é_•fUšUi,y—øŸ]ºpÆÂ g˜þ¿oU¼Uñ`ËßåpÝÃu×5÷ªü©ò§ÊŸ*q'cbbâö°%見ֿ̽¬Yÿ²‰ù¾Í|›ù6KÜÂUJ8›Œs&¦„k‚ñ À»Âw…ï 7÷Ú[tnÑ9qûîþ¾ûûîïÓ—»7ý§©õ¤Ö“ZßfÏ/¹päÂsÛÏ|/ó½Ì÷’â™Ó¶q6çLL ×〟¹?sæžtg“)s÷Ý=îñ?tÞáy‡çþºý|³îͺ7ëÌm¹äí’·KÞNܨÖŽ£oÙÜû^^|yñåÅ–lÍÜOIt]ÇtÓuLÂ÷¹Gã{46÷.‹û,#´¤>‹¿”5ƆíÅóÜsOÌ=aî½–U\VqYEÎ\(Sbn9\sŪ‚ZA­ fùÄâÆGlaºB{ í)´ÇÜÖÙÔgSŸMðO—r À–lÁyóç".D\HÈ~FùEùEùÅ}Î\ÂLü[H¬» ã_ôµuéÖ¥[—NHoÚöÙdœ31%\Œµ±d;‰U\y™êeª—©Ì½Ke¥²RYùÒ#£?å7þûõp„-ÿ_º€þ´ò¬{³îͺ×tkÙf_˜}aBöÿîÅ»ï^4··úûþ³ðŸ…ÿ,d„fœ³Þذ½x6·šˆîd“uNÖáìÉ…0`` úTQ&‹µK×.]»t_:•lùöã–²þéRZ8þ’F\z÷ëösàÊ+®´¼O-Ù¦”EÊ"eIºél}™åø·,GÊ‘r$gSR l{Wݱ¡Ç†štgî§šŸj~ªY»Lí2µË˜Ûò¶’ÛJn+ù¥[þØâc‹-ÌmÓ¯º_u¿ê 9Âk­=´ö¹í;º9º9º%¼7õûzã?òú7Bïl¼³ñNý¹§_ºeýµæ¶Ü_ì/örd~sþßÿlcüöí ÀÖÖϦô«“é{嘔cRŽI,œ’` ÀÀ@ô¥#-/)-i¿¤ý’ö_ú.–o?î2z ÿt)­ü¥G[_~Ù’m~èö¡Û‡n_ZúýÒ#ÿvâÞÁcù6-)ý6ÓtNÓ9 ïGÛ>›Œs&¦„k‚µ\m,Ùš]„]„]Ķiq‰åEÆ_dŒû# Sq×!HÜãð%¬-¹xÄzÄzÄïy¼çñž_ºýýÓöOÛ?-þí7¸Ùàfƒ›_÷)ô'.›»o2.ý“Æ¿µèbÑÅ¢‹Å¿L®~/æÃI'=œ”Ô±mE²äúŒÖÖÏqÅ¿¼|ÜÊÝ€äB˜00Ë'L/m¼´ñÒÆ/Ý~ü Öŵã펷;Þ~›Ï•¼[ûº^°d;zY7ªü©ò§Škù_å•ÿÕ¨ŸGý<êçÓ§=N{;ûììÓïq¿Çý›4;hv°èî:ÅŠ+W …†Ânãºë6nü:ùuò•½|m͋ߙ×vpÛÁmÝß\­BZôßGþ>ò÷‘¿™dþ‘ùÜ#Éc߿žÏѦHÑO.Š^sÌ17ÆÜ°Ò³Ò³Ò+º¿hÏmÖ´YÓfM‹Ž<Ž;;vÞê½Õ{«wѺà•Ýd>È|©ÿCýêÿð=ƒ´â¯?ã䌓3N­ïk”b”b”Rôü¢øÜ°ža=Ãz7wÞÜyó… ‚víÚQ¨_¨_¨ÿýǧ@Y ,ø÷>fçiÎÓœ§Ù<±ybóDg¶ÎlÙE?¸) Õ:t è0Én’Ý$»€è€è€hÉùÙÇÆFu©óí»·ïÞ¾+îÇyÅŸÈPµ€ € qªïÅñšyq¾cNÕî¿âj2Ù|²ùdsŽlÕ±ÎE÷[ÿgýõbkT³2ž«K]´\´\´Dk2àÌ€3Î0ž€ä &@‚œ?zþèù£âÖ.Ši¥êEtÅôöMÚ7iß„À ÕE®s®s®sÑ3DNç]œwq­$00¤øc`y®€txúéé§§ŸŠ÷`ÑÆiTgbÎÄœ‰=µßf|›ñ—€¤!&@âœÎ:u:KôûûÐCHûT/+]Wº®t-Þ;ûìì³³-ƒê¢èÈ#zDò»çwÏïí$ 00’§ž°ž°žè÷÷†çžoxžûí$_äóÈç‘Ï÷¿Úÿjÿ«â=¨½\{¹örzÕEÊ_)¥ü%z,jצ]›vmÉ@2 ¡nÖ¾Yûfm]‰[Å9xRð¤àI´ª‹e»—í^¶[t<ß̸™q3ƒö’‰˜‰&ú-¾I÷&Ý›tO2H2H2 }$“úmõÛê·{êöÔí©;Ïtžéàê…>Bõ5_s¾æ|MÑ»Øã&ÄMˆ›@ûIFL @5 ú]^q…â Å„1*VÑQ¥ÑœFsÍ)~Ìñâ;Åw ?k’˜€jƒõ€T¶™{f§øf˜ c&Œáhª ``ªLŸLŸLŸ¢ïòíÚ´kӮ͛'6Of”_ZdZdZdñ#Lﺽëö®ËT/ÀÀ¤00)AL @JÀÀ¤00)AL @JÀÀ¤00)AL @JÀÀ¤00)AL @JÀÀ¤00)AL @JÀÀ¤00)AL @JÀÀ¤00)AL @JÀÀ¤00)AL @JÀÀ¤00)AL @JÀÀ¤00)AL @Jÿëv`™· *ÚîVÑv¯Š¶à*Úî÷-¤Š¶U´=¬¢íQm«h{REÛÓ*ÚžUÑZEÛóï¾½¨¢íemaU´½ª¢íumoªh{[EÛ»*Ú«h{_EÛ‡*Ú>~÷-¢Š¶È*Ú¢ªhûTE[tm1U´}®¢-¶Š¶¸*Úâ«hK¨¢-±Š¶¤ï¾%WÑ–RE[jmiU´}©¢-½Š¶Œ*Ú2«h˪¢-»Š¶œ*Úr«hË«¢-ÿ»oU´VÑ&¨¢MX5ÛZU´ýPEÛU´ýTY0H-`R¡ƒÔR'ôJè•ÐëöJÛ«hcMbV#f5bÉ_¸æ¬C\sV ®9k?¯¢­æ¬=\sV®9ë ל•†YcXúV®ª5†kÎê¬+̊¬%Ì*¬"\U«לõƒY9˜5ƒY-˜u‚Y'¸ªÖ f…`Ö–øU&$LH˜ µw*0H `À %€@J€” )A R‚¤0H `À %€@J€” )A R‚¤0H `À %€@J€” )A R‚¤0H `À %€@J€” )A R‚¤0H `À %€@J€” )A R‚¤0H `À %€@J€” )A R‚¤0H `À %€@J€” )A R‚¤0H `À %€@J€” )A R‚¤0ðÕdDÜùéÎOw~¢ePµ€€¯F ÉD |5`H&`à«C2_’‰øjÀLÀÀW#†d"¾0$0ðÕ€!™€€¯F ÉD |5`H&`à«C2_’‰hY}³úfõ ² ² ²Ù|wóÝÍwG¬±~Äzýýý™2бױױê6Ôm¨Ûzßõ¾ë}o¸uâÖ‰´¾i}ÓúÒÂ5MèòÐå¡Ëzô8è1eÑ”ESµíß¶Ûþe™[6îÕ¸Wã^Ýft›ÑmÆ‚ñ Æ/ï×Á¯ƒ_‡2d>ÈжjàŠâÒÿ¤ÿÉ¢6\vdÙ‘eGRº¤tIéBË|`@""‚ˆG=|ôpŽë×9®2ß‘«§«§«gð´àiÁÓ .\*¸DTwnnn[¶&lMÐ×Ò×Ò×ú>sË^î½Ü{¹Ÿéz¦ë™®)ÇRŽ¥£/H+àò+ì[Ø·°¯¸s að·!ªLŒzŒzŒú²>Ëú,ë##aæºÌu™ëÑ$¢IDz @òeÞϼŸyßWè+ôª¨©¨©¨IÎܲO>uúÔ¹·üÞò{˃ƒƒè/Ò¸üŠßû[:Âà²#¾«pÕpÕpUÇñŽãÇ—ÿRšÜ…ŒúÕòä‡ë$·3W<¥«Ûnâíæþ­å½F4¶­U÷pXô²èeñrþËù/çÓƒ’#-6-6-vÍÚ5k׬­¨°V~žzÝ–›µ ´ÈhœÓÊÍr|#-ý ¦µåæ(ç¨ Ëÿú ÿnøwÿý5ý5ý5. ý ú".¿¢@·(Ü-ûÙ„0¸tÀ@¥Kü)ñ§ÄŸœÇ;wþêÐפW¯M4†XnX©ÉGü}-` Â<Î|œù8³,_B®þ uγߋ Ó§’úŠ-mÃ&™©9þ²ÙWgTY>W`íÀÚµ å—º(uQê"[E[E[ÅÒç`Í{ö¸8¼k›9[n\-¡o©¥éöeÃŽìSè¥ÓbqéŸkí¯k]û«p’p’pã€d"þþƒË‚¨~~~¥Ùh»bhZS/ÕûYÆ7%:ôSÎëõ莉»Í¯Î¿¨þYú'õç3Îg£àÛDœŒ8q²ôWƒgJ±Íš™­è}LCòCßJý}ãC< ü¦î[³ã<zÏÈ=#÷ä]Ï»žw±@ÒW-Â`q€€rñÙä³ÉgSé_-F¹ìy­·´:†¾âÊñÞG>µh_ú§Þ¢´Ei‹# ì^Ÿx}âõ‰ÒgYZŠƒ}'Ÿn7OÇ{תeô+ºfpü¦‚Ë­-lñÄÌEܧ¶e;ËvVöÍì›Ù7'$°ä .ŽøF‡öÚsh¸¯ŠÖM‡É†Ì Øi”-MÑoñrN«»[•Ô¾ý"?Tl |qËÅ--¥{{ìí±·ÇJ¿Hm4qŽÉ¶#ÒúŠ–íb÷n¼ï¢Ùy ü„áâZÀf¾Í|›ù¹çsÏçžgÌÀ’‰0˜øjû_챿¸/ zÚ¯i¤:ïìã©&;¥5ú-^.¸Z×´»i¿>JMæŠk“#fGÌŽ˜1rDÅΊ;«ôKÒf{Vî<þDZ£_ÑRÿõ„KåĵÆ`ãÁƃ³³³?ª°ä«™a00ð^è¼Ðy¡#öžŒŸºnVúcaóP?ÓI5!ú-^znzijÓ¶ßÐ-MÅÆÀ÷ôïéßÓgÉNËNËNS›¨6Qm¢¸”EŸµé~çjNô[¼lÙÄ5i­­¸–YüÛâßÿÆ(Pµ€«—še’¶?mÚ~q_t”Û†(NX¨zÙtrM‹~ÿ_{¹À4ÃIJ—i“fâÚ*nUܪ¸UŒ(€ñYã³Æg‰›5™¿ðštæJÍŒ~‹—-öM¶Ya-®•.h_о ÍXPU€«/éƒ €ñ¤ L˜6ð¡ñCã‡Æ§-O[ž¶ÜÚnk»­íe-ÊZ”5;~vüìø9æ ˜3`‰Þ½%zÛå¶Ëm—;;ë쬳³»?vìže•e•eEK€*P(,Ý5t×Ð]¢Sÿ?44®_wq&}jrôûŸ‡B;=s1m¡¢¬ß°áѳ¶¶¼¼¼bp€šétýÓõO×wqÙdßâ¾Ïý/µ;;Žuó×b1cÆd\øþ€¥ƒô…ÁÀ¨0…±…±…±/¼|ðòÁ†ÓNo8m¾À|ù™JÐþ‡ö?´ÿa[ƶŒmozûÓÛŸ„……éPÎ×?_ÿ¼ØËsÓ|¯%ÙúŠ–³»¶z(®Ýö¯Û¿nÿ:F¨iâÏÆŸ?+nŽÔ¢ÿ¤^Ë%î-¡”Û×4D­É[‹ÑdEÛÍ6Þ6Þ6^xLxLxŒ1à{"–>Ò£\Þ,}³ôÍÒ9Ÿæ|šóIF,n¶¸ÙâfÎ}8÷á½Ê/}FúŒôâæÖmë¬IÐ[z9¶õÁKúÓĵaB“„& Mi æpTuTuT5ëÔ>ßþ•Õ¾½!÷‰{Å•m-·«ßX'nnyní¹µçÖ2Æ|OÀÒ­ú†ÁÀøj×÷^ß{}o‹¨Q-¢d$XÛam‡µ´:huÐjz |Ïž7Ü|¸ùp###ÑÿWÖKásc}+™}…Ô#Ä-×}ÀáëŸOmaÅŠ;wÜÞ{{ïí½Œj66¶ÊÛD?Û~Ùö˶_héÛ.¸_p¿àîü£óÎ_‘lýû´ð–MÖMÑMÑ=w:ït^§ìNÙ²Ë3µZ2`É€%Â"Â"Â" wî(ÜÁÂÔ¥‹v‰v‰vQpUpUp-½m¯NéÝÁüGa˜ó»v’ýþçaÑùÎuìêž5ê1ÕäléŸÎ`™Á2ƒe‰/_$¾`TP}åÊåÊåÊÝÜÜLl8±áĆõkÍÙ›‚´Š©Ž«ë—ºŽ,þYª¶>s?Œ6é-® çÎ)œÃH’@pDpDpäݱwÇÞ[óvÍÛ5o+jnip|ª×š…Ä·U*­5énu_´ßj¾Õ|«ÉHPyD©ßÖÚ²Ñôê{Ç­¤ÀEe›º4­+ÚÚ/ž¼xòâ ãH¨¿… ÿþ˜þ1ýcúf¿Í~›ýïi¼§ñž¯aZÊ츕Lp[Qe«1smwî*áüÜes—Íeب<ÀÒ§ú†¾ÅÕª.Íq!ãBÆ…k>×|®ù 08 <‘ð4«iVÓ¬Æ>Œ}›w3ïfÞÍš6|_Ù½²{eWz+*èîmÒªº‡¾%”±ÎÛYïßd·ÇH·ôˆìÙ/²;¤OÁÔ‚©SCg‡Î=÷ÄÜsO”>+™åÝYïWàŠ-ŽÿÜâ•hk/o¾¼ùòæŒRPm„ C…¡Ÿ2?e~ÊÜe³Ëf—Æ 7ÄÍ-›ª[NíÚȶbKË'ÞÍóĵ¹pppC@e –ÒúW«úvFvƒìÙ n¯¿½þöúQ–£,GY–'žÐeB— ]îyÞó¼ç™››+­ƒ8B#B#B£ôÖxf5xDÛ)Œ~EÊ»jý-[O.½5â5â5â58ü Ý Ïž+Ç}fL¨ ÀÕ—ô…¾ÅÕ’¦®ÊÕÎÕÎÕ6 6 68e┉SÊ ÿ]÷ïº×½õüÖó[ϳîgÝϺ_ÝÛ'M-M-M­ôO1nxíöŽ5!ú-^†­2¤]sqm¢¾O}Ÿú¾ìIÙ“²'q@@Zå&ä&ä&”FjhhÉ)TßèW’à¢RowÝFíE[þËë/¯¿¼fd€êËÁÔÁÔÁTtžÓæÒÖ×<k+£lY×Õß«„0æÊ?Wþ¹òc@e ®^¤;ô-®–twd^V^V^Ö£M6=Ú4}ØôaÓ‡•'´|ÐòA˯~¸úáꇌ±c3ÆV—v8 œÎ;wîܹ³ØÇ»wjÿOM‹~‹—¯& 9Þ®¿Ø?ÊŒ”)#ŒÆc8D }"~Žø9âgÑ9@ç)S/ª-•´@×SçÅ<ÓÛ¬ê¬5N?¸£I£ŠÛš¦ËÆ68,ß¿~G•c-þløuÄø_TŽÍêvǺÕI€û5]ª¬9¡„gÒø<óyæÃÈÕ’‰ÐDh"î*“•Ö>‡)’Ì›’½úz“uæÓ:¾kpJÉ£ipý3 åO+ÌÓšmÐ^KfðºÉë,]v&Þq17X=üTÃÿ|"‰ù÷×O=_ÂzÌó^Î{9ï%@e –|5'ô-®VMëæ‚ùó æ‡ =ztÞOó~š÷Sy"aûkö×ì¯ùô?è0íRÚ¥´K’ù©7ÞÜxsãMqŸâUŸ!ûÛõªÉÑoñòò@…6^âÚêÂ!…C .>WÛ_mµ„ûPG7Û÷§ÞMɉKÝ]‚¯/ÕUlç©x­ì³ÖÁkóµ{Hf¼ôðÒÃK™ :J_‘¾"}E «ÿ²ú­û Z77Ä[&ð³rh[·._q´Õ‹yG½KøŸ$|¢v¶»×Ý}!Z·ÖµZ×j]‹‘  2K¦šúÇiOXx£ðFáWî¯Ü_¹/µtÔÒQ剄mŽÙ³9vZí´Úiµä ä ä ªýt/ ^¼(WÛ«ôV2K$ô-Åukdl'öAÙ¯"^E¼bß@šl¼¸ñâÆ‹¢çýi‹®1’Œ{ÿ «g&Óâ”M`£Ôâ5l™ÔùtãS Vøk5¯zäÏòý¯,OÖÌhaÙ± Q°¸ùŒäÀstî.5V­á샳Î>ÈÈÕÑ4Dg8:çF~šÝSr`ƒŽïûl-^C•Z{ô~m âºÊÖÄgñȃA-ÆMZµ¼YBbÉù\²[4^.ZCF&€Ê@,9}‹#.à’à’àRxíðÚáµ½<¼<¼¤|¨„èWÉUÎ^v^ÁøÕ¶êD¼¥—™Æ.·I×7\Üpq;Ò¡‹G.¢gü…Þ72] A©ahWëÆÿ>Ù¥èÐeù«…BMg5¬£&÷F2àEŠaM͈¶¼f„f„f#TGgœ=r¶„ËЦZKò½’ˆ{kuìÑûuQ­”·Öµ•-KˆÛ.bï¼û}zjF·X,ɰºe/Ÿ’òÈÈP€¿?Bß² þV¯…¯…¯£;FwŒî¸ëÕ®W»^iîÔÜ©¹óÛ"áæ›?nþxGúŽôéŸl?Ù~²ÞÞÞù¶ªe®Ï\Ÿ¹^Ü{= lÞ6Œp·ìåí}/Y,מùöùöùöìTw†c ÇŽ=×{F¾¼iöƒ$¥ÊyÚr~Eµ®½}”®bÙ£\I¾øßf×?(3Œ‹t@:ìOÚŸ´?Itnc¾|Í¬Ó %!"U˜§5Û ý¿÷%‡Í½¥wÙC\É¿X{ãv·[Ì-|Àß¡ï×"®`±Ù±Ù±Ù›lr°‰Ñ£)FS¾-Vܯ¸_qÿ¦›nøÑü£ùGs¡ÐNhW–:lï¾½ûöéo¤©Þœ@÷ÛÊžŠZ:MåD[õ„Ò ¥JŒ|ª;õ£êGÕ–”v s3k^µáèüÙO¯•ëçËo O”ýF¤ï\¢{F’`…‰Mbe—p‘H‡Mv6ÙÙDtnc±tݶs+ª6mç·'!ø?ëþZȯµ8{»ì¯`è1³ý¦W’ëjŽêêÞ˜¹%€ïƒ¸òú–p¥K›86qì±ÆÇkܶ mAÛ™rXí¶ÚmµÛÛ¨·Qo£   ‹¿W®g®g®ØS^6²G‡D¹ßV¾ý84ËJY\ÛFFF2Ú¨¾4]5]5]K€­ÂFš5«ÚptFÝ›.¯UQ$\öW˜´äÌtƒI€å×)—mÃE: võÞÕ{Wïà±ëŒÎÕ®ÚpÔbߺ”s¹Åkeâ-ø¹ì¯`구͑’ëÄý½rNsæ–¾àŠEè[Q€«bøz¥x¥xyzæé™§ví:Úu,O$¼¸Ëâ.‹»„uëÖùÜ›soνý7.™Æã4< qË_ö{¨ÓµÙpѾ7ìÞ°{ÃÛT_¦ëL×™®+áÐÇ_þmšRµáèBÿççM½‹×ÊmÈ•†¡e…‘¯½ê $4^jf*Úò²¶²¶²¶ŒLPyhä¡‘%<ZyµÖÉÇU޶ŽÞ”|Y¥<ø·¶WE[x€Ì™L"Q-…Ì™òïïvå?Ë–ÿ|dá‘…GÒ2jšÞ+z¯è½Bô,¿à³lÓ.±Jn1Ãwü£«kUö¿íé67Ký­dÀžÁ/7™æˆ¶|KŸ–>-}™ :ºðæÂ› %ܤa2hÑÄ«$íÐEîW<`¹ï¨—îO$9VûÐ}ˆãr`ßpùùŸô?é’зbK¨Ì_3Íüõú„ë®OpÈsÈsÈû¶è×8\y¬¢Ám…•8ÿe÷—ìöú?Èìmít›t›tF/ª—)ZS´¦hñ¥¦o›¾mú6Ñã¡û™û­ŒwJZ¬»Úª«â§2Ý=Ü)4ÑtV³@½¹ {Hf<ëÉgÑ–d:Èt)#TGþxôÇ£?Jø‰ÛT·¬u»$!"-^+åжn]~*Sx±wÞý¾Šut %úÐJ*­RÚÕáZ€ïƒ¸ü ûö-ìKè[±€«ì!ÙC²‡Üéq§Ç£'Žž8zbYà“ÊÝŒƒn+¶Ü>¸ãƒ·¢­}uÌÕ1WÇ0VQ]äïËß—¿Ot$Ïð›á7ÃöPÓxû{û{û‹§6»pݰ¡$¥ŽŽ[Úë,(a•bqwÖîziggsb‚¶j§²ÿÕ÷/gNºu½UKÑ.‰]»$–‘ ª£èߣþ]t†£5Ða²Ë IˆH[¦L_±á?·7´°˜˜³l[饭9´ÀUìm*·Þ·>伸22TàŠRü>`Bßò#®ÆrÇçŽÏ«¡¡¡¡¡!z Iºjš #AG‚JXiƱ`ë@s—þVϬ„ËX-“:Ÿn|jÀ¾• ´:ŒW=òg ù VuÖg Öimcù¢Ót²ŽšÜÉ €ÇYš©Oôsù¹û¹û¹32@u”}#ûFö ÑNã”V,m$"(•Ù÷WÈ_M´ü¹ËÍâ5T¹ÔiK¿ƒyS²W_7 ]üÅgq‹/.Ö+W6ÑN§[뢣0Ok¶Aûÿ`gý Y[É €-=vÉÞÙ+ÚòÝ5»kv×dd¨ ÀLÀÕ^žWžWž—è!FÅZ^±Á%ÂÚÊ(—œRm Äý–P°G°G°‡‘ É7+{Vö¬lÑ1œožožoNû¨iâdâdâJ8³·[;½YɉKç4¼;ÚXVÓÓÜRauYžÓüq«•ò>EÁ°dÀÝÚÎØÑ|ºhÍß-z·èÝ"F&¨– „‚†þ ý–ðŒ™vwöª¿•œA«îëj2‡aƉ!gæß¾Øj¸ä„¦¢a°¸ÿ^üÿ•´è×ãbH¡qz kãÕÕª«U÷ë¯>¼š Í…<—TKWT®¨\Qíè'NüuéHÉ €EÃàÒÿ{ÑC¡‹þK“Vf½¬GKN¬hªsÅHW´Íou¼ÕñVÇ<·<·<7F&€ŠE ÉD\í­j±ªÅª%D§{†¿j^µi¦Ïص6):³-kø°¨Vš>Šsênˆë0¡Å¸@ß~§[+>¿àÐÝrÁÍŒ>)uæ¶i¢³©èžàâŸE2à—ŽY^mùýÎû÷;32!É.\¸páBÑÑ›;-wZî4Ú@Mæíí-z„Øu•ÖlÉ €«o9²ÁÎ+ºWËò£ÀU×V][uííü·óßÎLLLb¬¢¸P£P£P£Ãþ‡ýû»OvŸì>¹×—^_z}iQ§Eu¶iئa›ÿ,—ã«â«âkoo?nù¸åã–o²Ûd·ÉîÆ•Wn\) + + £Uå— :·Q8¦ý›A~Õ¥š~ƒ&N’W Лe`•X[­þË%!nk¶½Á2=ÈÚé¸Óq§ãw—Ý]vwYÎÚœµ9k«øÏž{9ùròåóŸÏ>ÿyEêŠÔ©Ã~öû°ßÍÌÌ”(=PzðŸG£ë6Öm¬kbbâðÄá‰Ã“¥£—Ž^:úìì³³ÏÎþ|äó‘ÏGhUéF ÉD\í9Öq¬ãXGô“5hì“N U‘źEõ©ÿEæ¶Ì¼WîCζ,.Ü-aÕºg “ä–Kfœ´sÔúŽMEë<;gvÎìF&$“ ¥ ¥ ¥è¸}dô‘ÑLF@˜R;¥vJmÑãd£LÕ Í 0kEp[Q¥N˶ñŠSe¾É¢5‹Ö,ZóòÝËw/ß:::0zk‚PýPýP}Ï)žS<§(ÔS¨§PO¦’õkݯu¿Ö§óNçÎööö£_ËØÒØÒØRô,Ó:fSòeÕªŠKõ{;+/Š+ªIÃÞ*»5&´ÕÝ–t£óÿXa÷éªÖ'vÉäÈ&4øw —ÐU¶’pïo‹4«•˾íŒ?bôˆÑ#F<xð ktÖè¬ÑŒÛšàËÀ/¿ ôÎöÎöÎn³²ÍÊ6++{ni”j”j”ºM›þ6ýƒƒzA:C2WÿIä\ã¹ÆsE1‚?œNÙ¾¨ÚˆôžGÿk­¯¸&˜xjê¯Xh§gW–;zECbɼ8wà¸äN¢õì_¯½þõ™LoF½õfT “×;®w\i(Ò)¥SJ§Ñ£åÔ.n2´"¸-9sâ­k­ *öbŠ»œ»œ»ÜÓô§éOÓ jÔ*à›Nµs4æhÌÑÅï¿[üNFbt²êdÕÉêzÒõ¤ëIô ,ŽM96åØÑsŠÎOÃýfxTU\Úfê–ƒWȵQ6RùOtQôxg Á†þ®–v:Ü>kâ³xäÁ FzÍzßÀ³q\Ó?‹þeÑ:Á–!Þ2Ÿ«8ÖÙ7¸óà΃;y#óFædlK¾—²/e_ÊöñêãÕÇ«‚/®5ªŸZ߸~k™ù2ý*ö•÷{ì÷Øï‘ã“ã“ãCD}qûâöÅMÜyÄ2Â{`PǪ]ñ·þb¹} 3Ê~îkpJÉ£i°Ièâ/>‹%ááÏ&—(ù\,ág[™2;e>_ñ|ÅóóÍ_4QyÎøÝ ºt/8¿äü’óKÒZ§µNkÍØ–|I=’z$õX¾(|QxÅÎë;ËNY\ÿ¸ìG™*ö•gÙϲŸeëëëHVÀLÀRxpiòQî…l¦d>69µÖèé}o4èci¾sï/¶Ç ·-Phí¤£9x±^]•)Íš6<Ö`–¸“ŸÄ}¢qΆvÍEë©ÕV«­V[F&$ÎÂ?„ˆŽØ!C,†XÐ<P\þàüÁùƒÅÍIf¬ hkMˆûm¥»}ðcwqm›é’é’éR¼/²Wg¯Î^}çÑGwi7¦Ý˜v幘âÔÛ©·Sï»=ïö¼Û3gNΜœ9ŒvIååå2HcÆ ¯íÓžîZ=›êînÕI`ØâÅ6‡Ý–g¾mn_hä4Ìöà…—=W™æÌ§¢NEŠø ü~ô, ¸)ySò¦ä‰ž;Zü0±ÛÒ U ÕDõq—›‰Þüïý¾Íçè(ªGõñs¹uô¦äË*’ý•m9Çb“h_¾|]¼ S S S_÷xÝãue/–½Xö¢m|Úøô»“ïN¾;I_ŠDôŠèÑKì}Àãw†Þé% 1pÑÿ¶”Ýq÷V¦E§µ÷ý¶=ÿÏ€¹âþeßûÛØóèþ¢í©à¤à¤à$X(X(XXz¿Þ Þ Þ‡‡‡¯X±6BVSVSVóÛæ–æsÌç˜Ï9¢rDåˆJ|F|F|#ÿ{ P P P+{éÞ±:©˜=òü®º_è>«eÚ¨²¿ -Œx.4=6zï¾d½„–©Ï5>]öÚúûûÓË’‰’‰X .r“럮ÿ‡$D¤Ek+l“}_ÿßGÎÖSÊSè¶øA[]³óGí¯˜z„·tt³rÊï>Þ×Ö¬è¯ÞÚ½Ñ.¿<:ܩЮ¶h= 40hÀÈ„¤Y}ýõõ×K¸×J!S!SöQÙ­²[e·÷õ{Òϧ·\ Ð-{é¦u¥›á-qí™r+åVÊ­oë©ü>ù}òû<>óøÌã33ÛÏl?³}¹Ö{sà:ÀõÊÚ+k¯¬MKKc_¨Xïß¼óþæD͉šËÒ#'6w»h|8Ç~ÜêN+%á[À럇D·›=ª¿ŸÚ¡²Ôßû¡÷Cï‡ô; È¨W£^zUÂóä;Lwñ—„Hµº”ívíÙl.ûTñš’µh{^seÌ•1ߨIK…K…K#„ÂáÖC[m=¤ì¡ì¡ìñmsKýGúôí«½¯ö¾ÚŸÇÿy¼0[˜-Ìf_¨(y«òVå­š:rêÈ©#ËÒ#]†»9¨½˜5þÎôV‹$á[ÒœÙ÷dŒí7x¸¨¯/ÓXûŽè;¢o¦m¦m¦-½/9€!™€«=µDµDµÄâRGg};Õª½8Ò£‹æ<åcEõn­(Pvò·}]z¬ûÆqèØv’ü9>Ͷ„;N:½êôªÓ+F&$È~á~á~¹·roåÞ«½={{öö¤y tGbĉ-a=ѱ†×[Ø8ô ©3áné¥ç­—ËM³š[yÊOmÉÍoþ{óßÛkÁÁÁÏ/=¿ôüÒü—ó_ÎY®õÞ¶ußÖ}Ûy›ó6çmÒš¤5IkÂ~ñmüãüãüãÊÒægïñ·‰¯d.jS¼ü¤9â÷öùC¯ê[©êüD ˆ•)“)“)ÃH€š,zIô’h±K ˜…®jâánYJÝ£ÂÝ_—pcF=ƒzõ„ „ „w{F´0Z¼[c·Æn í•Ú+µW~ÛÜRõê;Õwÿìûgß?û¢6EmŠÚ$ôú Y<â«EhGhGh+z+z+z—Þæ¸6QÛ>ÿÝÓÙ&BIþÞ´0ñ…¬é)ûU#Õ×–e,½êüªó«ÎŒI@ ÉD\íu–é,Ó¹„@ž`ü[ª½ Ò¤»ÜnÙçEõ¹?lÀÔ6Úeù«+½z½0 ü8£ÛØ?mö‰ÖslÔØ¨±QŒLHŽÈŒÈŒÈ ѱzÑù¢óEgÚJWx¨ðPá!M M M‹.%¬š¢¶Žˆ·ô²Ï¸EÊaâ.[äNÉ’;¥Òû1¿0¿0ÿµûk÷×î˵–k-×*×zo³¬gYÏ:yöäÙ“g“'7NnÌž"V¶0[˜½áІCþÇý²K¶uÔ³~ÜÁNÛ%?ú-ïÛßæÃŒ{÷6îýmsKùòälÈÞ½!ûÜs>Ìj µ…Úì)âÛÛÛ”Þª:Ž–Š ¦OºÑÁhIuü5ËóÎþV«Îu»¯Ô¹ôOzMïšÞ5=FEÕ"†d"®ö¦ÕšVkZ-ÑCLò¬Q‘{WíEýn7É»Õç¸u·6ÆCþÇ/èýGtèФh%`É€£Z?Ùþ¶h=½zô:ÈÈ„äØ>mû´í%ÜqõeÁ—_Ð>P/e_ʾ”÷•{ôš}!zŸzEË 6'¨Šk·{ïu¼×±ªúT#ˆÄ„g„g„g¬3\g¸ÎPöÙdÿùÆõÞdÌeÌe¿9üæð›ø§ñO㟲×Ç Ç Ç»OuŸê>µôÖ{â?èaÛmÕ1ô-s÷´“ß̳f]´:”þ©ß§¿OŸÎ0€š)÷rîåÜË 7hÜ ±è9¢ùRû1#´ zE˶…;–ÞÚ+îÜ:oÔ¼QóFUmÏ&æ&æ&æïy¼çñžíž´{ÒîIy~t¸ê×U¿®úõ­â[Å·Š‚‚‚ì;WÕ®ª]ý?¹¨½j¢ÖdiúVåØm‹ŠÎœÿ±lJЉ AŒÅW{û’ö%íK*á÷noçZÚWíåñ 5ñïãMÒä/Ê5>x¹ó$£Ã‘χ¯i*nÂßµ¬õ}ûn­¸0·MMŠ+˜×Ïw“´‹;·Þõõ±˜)ZÏ ƒ. º0ˆ‘ ‰&L¦©4Si¦Ò¬ø(µ[b·Än Í_kê «6¬7WqýëÒ߆c }‹Ê‘[ý ®­æšÌ5™k"q¼J¸J¸*R;R;R{kúÖô­éÊ Ê Ê ß¸ÞÛ(ýQú£ö^Ù{eï•Ï?wüÜQ˜%ÌfÕˆ]%K˜%Ìší1Ûc¶ØÕòz-Ô:ÝtlÆä±m|¥#ú-Ïžë±Ïäqéãäcíµ?Öæè 5ÓózÏë=¯'v.aë”·è ¡ï¿+þ†ì5 ÎjÒËì¨u +(ËÕ‘«#W'Ç-Ç-ÇMÒz9U.U.UîlÎÙœ³9]~ïò{—ßË {>ñ|âùäåÔ—S_N-´*´*´ª9ûËÕ‰W'^Xzû¸48§ßrœ´~Ãr›{å½á‡ÿï;±ïÄ>Ž®ŠW{?<üð°„Cÿçå¦Uí%Äv£þ´~¬ëÔè£|í²Oe^OZ·ÝºæÏ&É-ÿÏêkƒ4›+Ïœ :k~±j­_Â@áõÂë…×cdBÄ<‹yóLt”žÉ?“&Ÿö€¯%È ämBmBmBÅÍdfö¼µ²•FMŽ~Ý«×>ÚQÚQÚQyò6äm¨]þYøYø9F.F.Fn÷”ÝSvOÑÎÒÎÒÎúÆõÞ&«NVüÏÀþ30jRÔ¤¨IÂSÂSÂSÒ·§¬<°òÀÊâÚaNms ­»…B§£¶Ï¤5ú-^>m0(µíñÒÇFüËø—ñ/9Æ@Íä½Ö{­·Øõ> fþ´iu€Uöu é­v Û®¡ĵқÙof¿™]]züKì—Ø/±—/9^rìSا°Oay"á9}çôÓ÷©çSϧžùïóßç¿—¾}äþêû«ï¯×6©k`9ûvÐóVY5áÛ–Gè=ãõÆyò‰âÚäêâ«‹¯.æè €¸ÚKy”ò(å‘è~ÀÝZÍJÂ%¡ßf†N°•žjÛÆEk•?¨(­Þ¶¶ãRƒ…úN޶ÿ¹TT+ ‘ë$ë=aŒ‘Ÿúɹ”cV¿©¹b +™e?Ì~˜ý‘ I°'bOÄžÑQš²7eoÊ^Ú¾qöå›â›â[ú…˜™:·º¶R¬iÑïœw÷®÷—_£4J¶µ¸–ùÜës¯Ï½ªûˆ»w9î²ÏAŸƒ>¯_1¾òë½ÉÉmðÝà»Á÷C¯½>ôª U…ªÕ·eŽ{÷8.ö®ßåg,wé) ³ÇÙuª Ñoñò]SÇ?­ôÄþ0âwíßµÏÉÎÉÎÉæ 5N¤0R9~Æøãgˆμ¹yA‹~›í³éÕü^Oó‘æâZæÜÕsWÏ]­îC sFæŒÌ7fߘ}cöPß¡¾C}Ë Oõšê5ÕëA=ôȳȳȳ¨Æ;ÇüÈù‘óÅ}R•سž˜ëûð€‰MMûæµ@éiŒ©œ¾ŠõÄÞ¶!lCر@MF\ýžžw Ï7ÞÏÖRrbà¯ý%óáÏ™FcGÛ¼mmƒ•+ V2$!9ôšè5ÑkR|”Z¶·loÙž–€ò _¾.|Ýÿ¸øbxá¡RM¸1}þF«JogÓŸM6]ZÇCR£¤FIŽo<¾ñøF+ + +‹ò\¶[é¿Ò¥ÿ›„7 oö{½ä·À‹u/Ö½»GÌѺ·Ž‚°ÐÙÉζ¦E¿ÅË7™Cw·‹×J2'dNÈäè 5S^\^\^œu¬u¬µØ3E‹-“•WÔ¯|6Ûý÷Ý*“löõ{×ïÖõ[×o]/­ã!ûjöÕì«={ö[ol½±õÊ3·ï9Þs¼gГ 'AOrºçtÏé.ù-³3ggÎNåÁʃ•‹~"Å—ÍFÊÎÝñp…‰UM~öÒ•§)¦ Õ3MV)ü*®÷¿¬þ²úËjޱ@ÍD,%<Â=Â=ÂKX Xnð)K•š|‘¥RVÿÝÓw­…“¸Óª^¦^¦^æ^·½n{Ý>+Vþ¬,Ìf ¹”ƒÿáí—·_Þ~ T T T9cxÆðŒánºèæ½Ô{©÷Ò½ç÷žß{þ¸Óq§ãN×c®Ç\yaöÂì…™¸W‹Ÿ?!~‚èø;®Ÿ¥úð'çºvò=¢¨¼?uÀ¬6úâZìL£3Î4âè 5SæðÌá™Ãºu7ê.îL¡ñ²¿ŸÓ–v÷\ ,}Ño¹Í /¿SPÑì§$ö™"Ë3–gÔ´±‘{5÷jîÕûá÷Ãè»è»è—gn9¼åð–Ã[üðGÀY Y Y ’öy§ÇOŸ/®þ³Gé¶zY“£ßÿ<:ûÁD“:2¶2“dÔJ˜Ë“&/, 9Æ5 °”x4àÑ€GJxüàB33-S.²Tl9$W/Så+ÖçP)T)T)üç÷~ÿç÷¨NQ¢: 1nkš·ÆoßïîîvÝÛuo×½2Ê Aƒ>K"—D.‰\zaé…¥DÿM¢G¢G¢}+ôvèíÐÛ¥¥;ÕðPuÌÓgr¦Mªû%†…¾Ï½M·w>kKó¥ê{¿ÝûíÞoŒ"é?¥ÿ”þÓ¥—v\ÚÑwDß}G”ç¼?;vþìü§=Ÿö|Ú3ÿqþãüÇUõ¹f}šõiÖ§Öck×ÀC¶y¶å8ÍNÝù!Zú<ìj-vUàßâ‹g߀*#:#:#ºmlÛØ¶bïVø[K¥Å#‹ˆõ—Ï ¤#ú5ÊqOû'¦ôùÏêm«·­ÞÆ)’?#FþŒ'šO4ŸhΪ=«ö¬Úå™[ößÚkÿ­W~ºòÓ•ŸÒ½Ó½Ó½«êsÝ9|çðÃâê9¹×Ù-5}EK·«N†¹b–îtÎéœ{ PÓKË)ß(ß(ßHÜ!>§ù¸¹p‘¥üeê¹Ñ:>-P×ðFà olºa膡Ô?¨P666f$K“×g_Ÿ}}Ö=Ò=Ò=RFhçkçkçÓ/Py>túÐéC§²“96´Å…êxYa²öÙ-o4k-›Yúg|q÷ÅÝw¥Ë\›¹6sís7ÎÝ8çXDZŽcr­÷f2ÕdªÉùòäó4ó4ó4+»þÏ:<ë𬃸ú¼[ïhneË7±e¾óx;Ûa›ô“T7‰¶žƒ·ƒ·ƒ7ûÔd¹ÏrŸå>î6Üm¸[és½=ã’*´[·Ç=øçjv¿ïù­×&ª„vŠîߪôÏxàÖ[n1*JWð¹àsÁçZ/´^h-ز`Ë‚-å™[vóïæßÍÿÜÙsgÏM}›ú6õme×?§ § §@lD=jy?Mîúýå°ß¶ºè\û8h÷/î_ÜÙS€šƒXª,³`Ì‚1¢÷Óï»1ËE–ò—»Ì:Y·¼,ÚÂN&:M´Úkµ×ª\÷t®»rìʱo®½¹öæšÀF`#°aTW›Iöã‚Ç/ø]ð»à§©­©­©-#Á6ìÚ°kîTÇTÇTGú*Vš}š}š}w…î ÝJ?uîö»’š[Ÿ+› ŸHòE„z7½ŒîX˜ ÔTþÍ Í Í ã…ñÂxÂ7Ê~šý4ûiàòÀåËÇN;qìÄr­÷¦1^c¼Fж mAÛrÌrÌrÌ*¬¢õ„õ„õôÖè­Ñ[#ú¾Þý:k™Ïw‡2ýÀ´áè¹OŠëÁ©!SC¦JÂÈ4Xm°Ú`õTå©ÊS•ßt}ÓõMWÁ Á Á öY¨tÝ…Ý…Ý×÷Yßg}ŸÒÏûõnаA¦‘Ðãç?X5Ü×,¤¹d†¾–;ÜQÐ55×ݱ,ó™ Aƒ62¾   ÁëÈב¯#—Xþaù‡òÌ-;¬ë°®Ãº“O6>Ù8)4)4)´bk»¹Þæz›KXíXÓÆì©ÂÌEµ_æ›ýAÄ[–Ò¸¾½®ÒÑ–œg>Ï|ž¹$ŒLococoãQê£ÔG©ïµÙk³×&燜r~`Ÿ*°T‰1&¢„XV_æµÌªÂmNKl¯p‘åÛÊ\qï;]7Jì‘Ø#±GQ/¤öJí•ÚËÏÃÏÃÏ£Ëó.Ï»v§êÜ-ç^sÜvÄÜ"«Ùúê …!!vv¢e`_ïÈÖµŸ^æ×ªïìþ~£uÒh¾®…Âîo«Ãê«w¬Þ‘±!cCƺ*Œ¶P[¨½½ûöîÛ»—åhl4¬›‘’î$…Óç ®IÂ%ƒ) Î'´¼j¾¢¦²E™~Äveå••WŠî9 ó+Vî£ÜG¹BäBäBä\–¹,sYVž¹å°'Þ {róéͧ7ŸfÕʪ•õ߯ξ:ûêì–>ÉÒ ¢°“ÓXÛ#|ƒ({égÙ#Ô$Y´=utt„c…c…c«j&,HX°@´n¾ò¾ò¾òì¡ð=Ý+¸Wp¯ ,g|Ùõ _·m¹tZëu_¬ÚíÛr¯jCß¶îÛco®Öží(œÖ¥,õ·µµ?<~8ý^±Ù‚lAöûᄌ.r]äºÈ;ìl°óÛæ–fjfjfj‡-[¶Œ_¿$~É·Õ*µKj—T±ccZÝ«¯êë–½œýGàæV—ĵgÌŘ‹1«vj©i©iýgÅâ¿vøµÃ¯ì¡@Å"–BöJöJöJ%=ëßÞÆ´—W¾­Ü§l'gø²„{9=rzTz¤7MošÞôÒëK¯/½îÐ7 o@¹Ö{ó™í3Ûç©ÒS¥§Jù7óoæßd̯޼zóê‘ÀH`$({ßM2dÆö Ó»3Z÷î–¿|?èÌ «cë–N Ö×à‚l¢LTÙkxöÕÙWg_ £„QÂ(z*Ê›Ø7±ob•Œ•Œ•Ê~L¶¿ìqN}·›Ú•ކ‹<Ã^Tæ‚iÙ×§ ë3fQ#°wå×Ô·/K Uö¨ìQÙóì賣ώÒËßSþÒü¥ùKŸ8ØùÓ¶ú×õZ>šÞtC£Æ ÛÜ+{=¶?Úþh{ápáp!Ñï÷²E¸E¸%rqäâÈÅÛvoÛ½mwÓÏM?7ýümsK½Éz“õ&ïUØ«°W!&9&9&Y˜.L¦—^…Õ V/X]ÂÎ:iLÈWD ûme¯ßç 5J¸£zÚïÓ~Ÿö{U ·¸æqÍãš‹ÖêDÀ‰€ìŽ@Å"–BÏž+<ûÈÁìgã†wšÌE–¯x,[Äè{߉kψ?"þˆøãkû(óPæ¡ÌC7Ro¤ÞHutrtrt*Ïe»)o¦¼™ò&äcÈÇyryryrì•¡àcÁÇ‚k>¯ù¼¦L“àö*&QÏ8ïµPäßÚÕ­¼Ð·ôòÊIÝv§Öª§q³L‘ƒœ½œ½\Âô„é Óéw¨(‚AŠ Åïg¿Ÿý~þ¶3¾Q®ÞJöS[ª®9ÑÉÿè£Þ_{ `BëÓ šè³"CKÓd`¯¿›h}[MŽøñ;âW8 p@ázV"f)/¿übð‚¸q âʵÞ[Ÿn}ºõ9çzÎõœkêõÔë©×‹¿W°R°Rp ?eèXWí„ÒP¾;”§ n5à‡ÖŸDÛÖò¾å}ËûU5ºZëµÖk­W¼>öööìw ^.{¹ìå2«`«`«à¯=ã+ÜÒî×rˆÖ‡.Ÿ<æ8mKh¾×å~û²½­½6†]¼hðɵ×èæýzQß¿¡ü¯¾Õ!evÊì””s)çRÎѧ!Q˜(LŒ™3!f¹=r{ätuu¿mn©â¦â¦â¶ýØöcÛEÉFÉFÉ }„>BŸ¢·Ê É É ÷·îuƒeŒÇå~[9ïîã-&ûŵmrVrVrÖ÷\§œ~pºh}’|“|“|Ùù€ŠE,µúíî·»_ „]ö¥‰î+.¯”½œÒÇx¥ÆVÑ–tùÁå— [™ ûsöçìÏ7oÞ{wìݱwËsÙn\ð¸àqÁA#‚FÈQÍQÍQe(Ø«±Wc¯šN3f:­ô–ïyÓZ¹i›W}ßl׫ªâÞÒË´Ì›m/N™pIת,cévÁí‚ÛŒ¨ Ç;|ì°L5±¿éþ¦û› m…¶B[úNò ”Êå72odÞȬ0\a¸Â°\ë½iwÐî }"ìD؉°.Q]¢º”ð|‘‡ƒ®ióœïå*·8w´3ÐÞÛȬ¡·h ÜöqÛÇmßs%_N¾œ|¹„£Aíýµ÷×f/IóÀïß?›É6“m&KþÜræÛ™og¾Mh™Ð2¡%}W]Äÿÿ[üo‡lÙ²19jrÔäè7.ˆfØÐ°¡áúÜõ¹ësw´ÞÑzGëîýÕžXKu2!nÜÑ|¢YzÛ6xÛ ŽLÂýºû6·i(™¡¯¸òóæ‹§;ܪÖí¡ê/¥ÆËv.Û¹Œñ•"K˜%̺ßå~—û]†ªUª* —äz¯é½¦÷šÛ‡nº}H&H¤ÑQÕ@( „ï=ß{¾÷\o´Þh½‘\=¹zrõÊ?Z97X-ÛBØÖYÅ®1ß Ê_^hÐÓÚôh;/u_ê¾Ôý{Ž™ÓuN×9]G´&Ÿã>Ç}ŽcŸIö1ãcÆÇŒEº‹téJÂÜR-Y-Y-ÙÇÆÇÆÇ&írÚå´Ëô‘tH•4*iÔ ½z'ôÚ«µWk¯VQcfÆÐ›‘FÏ«6:-^×.u5Y`÷NÁÓŒg‰kgá/Â_„¿|ŸÑ’¸6qmâZÑ:úpèáìM@e –rë–®[ºn©¸C|zÿ1glœ¹È"Z&œøû•õ)qív ù@òäïß›ù›ó7ço~âõÄë‰×¬³³ÎÎ:[ž‰T¿gýžõ{vyùåå——§;¥;¥;±¿wÍèšÑ5£ÒÛpå£)}ô6æ…ß½k«\½¢_Ñòêð­fÿc=ãù}ç÷ßW8B8B8‚•xÆŸ–?-ÚíY·gÝžå&ë&ë&[Ù—ä&Nœx]éºÒu¥ìýÙû³÷Ó 5ÂááŽÈã‘Ç#oKØ–°-¡Ù fƒš úÚñsp\g{£Í|ƒ¨¨2;rÜèN®âZ»PX(,üNÄf‰Í›%Åß½ù˜æcšæ ó…ùì@P½¼<ðòÀË^®^®^®úÃô‡é«¼¹e÷+ݯt¿rhÔ¡Q‡FÅèÅèÅèÑþ5GêôÔé©Óýø=ð{еo×¾]û~íøQïkcã˜Ë1—c.¢uˆ?0~ ûP€¥ýâü;ùwÔG¨PQ½Ó´oºKð§Ó)Û\j)*óüÇ»ÚÊ™ÿÖt“âûgØÁ°ƒ¡ààà$ôoá…?þðbå‹•/V.´ZhµÐª<ô®I]“º&3»[·6nm„Ã…Ã…Ã9ÆÀ÷—¨Ÿ¨Ÿ¨ï—î—î—¾~ðúÁëO͘š15ÃáˆÃ‡#öŠöŠöŠ=¼{x÷ðl3Øf°KˆKˆKˆ×q¯ã^ÇÏ(Q:£ôÉõ“ë'WZ%H& “cÖŬ‹Y·gØža{†é:è:è:”>/J\=JÏ:‚ï[Ž3¼Ù<º„‹t©ïRߥVö@H;™v2í¤è»ï8¶ãØŽcì( Uæçç\pýÁõ;.ãâœÉs&Ï™<Â`„Áƒ^µ{ÕîU»ÛÉn'»ì»·ïÞ¾{ÇÕWk\­EG]tÔÇÜÇÜÇ<Ø"Ø"Ø‚†„8éíÓÛ§·¿¬uYë²V?Ë~–ý,KŸ[:ŽÝÒKgpÅ–c§ú(ê—p“Ø†Ø ±¾Ós"-=,=,=Š¿»î{Ý÷ºïÙG€ÊC\#¼·zoõ^l48GÖ\Oë¾0Ûyœ]§š|‘Eá$°ûyô»–Ô„âÚ*vLì˜Ø1’Ü×-–@ëÕ«7V+­X´bQy"áöíÚœØtbÓ‰MI›’6%m’î=% > > ^\k4‘o4[önLÁÅÖöH_ô[¼,ü3xží®©m†öÔ¸/ön`Ùù²óe9ºPD¸E¸E¸‰Îô66î)ß™°¶2Ê;“ûµ±xRÂÂ×v^Ûy­²{ܵÿjÿÕ¢ïþ©Ù§fŸš±G€òȼy;óvÛÚþÐö‡®T_¹·Ô¸+pÅ–ó‚o79 ú‰tõuõuõ+»ÇSΦœM)áI–{.ì¹°ç{Py€kÿþ=ü{ˆ‹s–´œ¯÷³0ßy¼m»È"ç\ß®þ´w¦m4w‰kŸ@‡@‡@‡jÙñ¿þòþøûãï¯_¸~áú…r åÊ-ü¶HØ´§iOÓž‡N:}èt|ûøöñí¥cïxyúåé—§Å}j“‰ú‹;y°Ø¦§tG¿ÿ)Ÿ‡øÚY®Pž,Ð3»6°öNíÚ]nÏ2že<Ë(áŽÜS[L ¬­Œ2ÝbÌa›Ñ¢mÞ)®S\§J_×~«ýVû­ÅßWÑTÑTÑT °G€òÈ¿”)ÿ’è<§áíÆ?ÕÏZ´0ì¹™)pe”WL#ºŠ~®ÌM™›2+ñ¶Ÿ³ªgUÏªŠ¾o̵˜k1ר#€ÊC\ãl谡Æââœy×-bµ_ 8·¶Ó© V {89ÙpËè¥úZ±+þN?0ýÀt©»…»…»#ŸG>|¾Ý|»ùvófw›Ýmv÷Û"aÝͺ›u7ïYºg鞥1bĦS„)Õ¥1RURURUÄ}:£]º½fºÞ^iUƒ¢_‘r…‘K==q­t{Îí9·çpt@ZíVÜ­¸[Qtðdÿ  ¶%îÞÙ‹ýZDŒ 7ˆV ÔujôQ¾¶ü!Ù%õ½ ô•ìäßܯ;HåÇ kzº˜~(;ùÛ¾–äo+MÏ5\Ò „¥| ÿ*ü«ð¯Êè댡C3†Š¾ã¦º›ênªË¾ÊïÓO7>ÝoØ4w6W•—œ¸´„»“óïe·Žÿ‹Ê±¦uÖjpX¾ýŽÊyÚr~Æ9=¯5©3iÉ™é’÷ê8ÿo‚Ø0ƒ0ƒ0ƒÊëq»ëv×í®Çfš}höA˜*L¦²G•‡¸æÉf ³ÜÝÝÅ®µð‹¾ƒj›¬›cs:µ”Öè7mÿ›_;¯P¿Ød»¸vðºçuÏë^©ÂTajÌù˜ó1ç÷ÞsxÏaÝ Ý Ý o‹„›mj¶©Ù¦írÛå¶ËEDDw w wIܧ^*\*\Ú3§gNÏqŸ%uÿ Žkrôûoù2ä˜]»©G‡Ò»6p‚|‚|‚<‡X¤ÏH›‘6#mDÏþi/Æ4·i ‹¹(;ùÛ¾žqÒô³Ö/eŸµ8£#h’é3v­MŠd~gq`ÒUó÷Ö]^–¸,qYeôõÕ{Wï]½'úŽÿúø×Ç¿Ø@ùÝÌ¿™3_t¾1rõ./ÝO’7Ù§YK®CYæ™c¦pÐ7”´ØÙþØËEk{üËñ/Ç¿TF_Y÷eÝ—u¢ï¸½óöÎÛ;³/•¸¦òz ½ç˜Ì1™#ö®>yÙõg½5z®]¦4E¿Ïúß6£ô“ôê{«ï­¾Ç0‰ïß+¾×¡'‡žzbºÀté‚o‹„åzÈõë±~èú¡ë‡¾ßþ~ûûퟄ? ªÚOwhþ¡ù‡æ‹«ódžgŸµ—!ú-^´¾f;ÉÒ®Õ‘ÆжX÷ÇÝw,ôú ýØw&* * * ¢gÁ§$Ûÿ˜?/Ky9ûröålFÂ×J=™z2õ乞çzžëÙM©›R7¥òD *,TxáöÂí…[A~A~A~eÔyøá†}÷I/PÏ'â-KyMcÛ\s=qý˜¡ž¡ž¡ÎÞ€t=×­+T/ sþÅÚêèþ{¹mu¿vYzqe‰ró»÷µ5+Zøßy ]«qê1’öæ½–ãc«½¢í¿§ÖžZ{*ø»ü­k·®Ýº&ú^o/¾½øö"{¨(=öhØ£a WåC½MÇKflñyÐP奺î÷—“äØ3ûe´YÑê>Ô}¨û°b{9S#S#SCô½ÖoX¿aýöàû Ƽ|öòÙËge ê,}TŽ6n~¿×€‰m4$íBÉ­C}7XLhѯq¦üñÒ?…Z‚Z‚Z¯^¼èýŠ’>=}zúôË.¸| ­þµú×*O$öù‹c@3#Âݲ—Ž+ºG«mÉUÊ«”W)³/ DÏõ®sMiJÄê¿ÓõƨøÕêÎÅ~-"Êþ·Å?‘ÙÁ¦.Šw%í{M¬`ä+k9Ñö_ÓyMç5¼jÚȘ‘1#cJxÐ÷lÁlÁlöPQZùµòkå':ëð y¹Í4W2à!ë7*kGÛƒ£%íAÐ⮋Vl/_?wýÜõs¢ïòÞÿ½ÿ{öàû F ²³³ÝÜÜÊÑÉÖ•y(³xÏTÛé†3ÒœGçuü®+%Øþ}ÆzÛ6ûŽ“ v—=V\°2`e@^B^B^=^Ù2Ó3Ó3Óož¹yææ™aÞü‡y—'v¹àrÁåBˆQˆQˆQî«ÜW¹¯Ê^ÛZ¶µlK¤O5\ãa, ÐýÚ2¶å%Ñâz*Å/Å/…õ€¨öDÏòóL-Îk_’„ˆÔÔ¯©œâ™rS¿­(wMÒ´kÔúŽÍJ¸Œ8tÑÐEC+ªs>æ|ÌùX»d/Ê^Ä’@Ó˜¡1CcF sNaÌT%3(u=~³EtÀ ¿5i';º²à!S†L2¥„w©#¬#¬Ã^|ÀøžO~>ùùdÃK†— /•ýJó– -åF­ÞiU_/ïAëªm6UÔE{öýµ>½¤ í]F4p’U,{­¬[[·¶ný®Ö»ZïùU,G/G/G/hNМ 9ã2ÆeŒË(Ï»±Þc½Çz <x(;<;<;\ô_÷xÝãuÑ¿m8Y®c}»ÂÁ‰¶W t¿­\º{Òïº{DÛvÝÅu×ñÀ@ª½àz‡´OKBDª¸¢yý¼òÀÅ_G‚ൣVw,a•Ež‹<yVTÿÞ›toÒ½I¢ïÖ(¬QX#Æ?¨X‡5k.a†cæ$©°ë—ºŽ”ŽX>­‰¬ìÐÊ €³gdÏÈ.!à_±yÅæ›ÿÀ÷D †¯pcï½7öª U…ªÂrý¾ÞTaƒœwO7­îMµ~4|Òû`l¿ô~éýÒe$̈.#ºŒèò,ëYÖ³,zªúÊ¿›7ÿîSã§ÆOg?œýpöÃÊ-ù×îÍ´íýýCÓ·ö§þÿEÆÿŸfUïØ­•ã+MKѾ©sSç¦ã€êKôü>h¹î 3IˆHû¾×Nk¦]T«K“{©™õ—´u|ËS†ßqø\ôõŸ™<3yfÂÈ•aªÆT©¢3Ù!^ÆáÀ•W.Pšeª Zþ}úöéÛ§ü=›;?w~îü¢ýÞ {/ìÍȾ?`T¢O;?íü´óàôƒÓNwºátÃ醞ƒžƒžÃW?ƹŽaÃ:“×N^;yí‘×G^yè–è–èF CÐYÐYÐùͳ7ÏÞ<[¹j媕«Ê>®¢÷\ÐîЛ¸ÂÊ !3ìZ(4h¸¦þ!ÑÏ•Õ «AVF,Õ‘ÚYµ³jgKøÿR§w¶iU‘>Iô©­OQ}d£ê+Ëø]XÓÓÅôséåÑßâGíÅ?KÑëHZ|èBÝVE[þ¹Ýs»çvåïÙiJÓ”¦•°ÆpAƒ‚ÌÜ@¥Øþiû§íŸJXdäÉe?CàÊ+gÝTiu@´† –-X¶`Yù{ö¾Þ}½ûz¢¯ÿbÓ‹M/61òï€tQ* •?X|°ø`áÕë‡WÑi‡²~ã¾ ~¦†Ü°³!®ØrCÎŒs-&ˆ~®àöÁíƒÛ3<¨ŽF5ÕhT#Ñó{Z‹ÑŸ:&IBP*Z7çiFêÌïÚʳ(Ü=ÔþŠ©Ç ºgT,ŠÿË‘¿·x¥¦&i«ÿ•S쌗jlýtI:I:Iåz€^A÷‚îÝK¸ðzÏõžë=Æ<¨<·Ôn©ÝR+aQ¿×;é!®¼ÒÉïhH‹]¢5<Ùéd§“Êß³“žüóä1]X»°vamF>ðýZÏÏ>?û¼„»UV›ºA/Y˜,…ðës'^´ÛSÂd÷ÇE?.ú‘1 @u´'xOðž`Ñóûc›A6mm$!(-z¤ópªç¿b)%­UM{æÌ·³Ó&É €•.Ë9Éú•pmpáàÂÁåéÓg™Ï2ŸeоòÃßþöð7Æ<¨<Ñ¢D—pjǺã{©\"®¼²gç¹GÕŠÖð•í+ÛW¶åéÓüùò;ˆ¾ò¬ÀY³ó@U! µ¼[x·ðn!:ùxôȧg[É €Ÿüx¨}[ÇÎÝϪvQ¿­ÒQîšÂ¶†õo?Õÿ]Q}žéؙڗ’›^{ÔÑR2à¼QwÇÛþ ú¹tÇèŽÑØ :znûÜö¹­èù}wûõú‘’šÝéë0]oŒŠÆ9Åfr ÏËêÖd(lÒOÁsÀA³¢SüîaIû_œÆ ±1móÎ;;ïì¼³ü}êñÀãÇÑ×Ï›•7+ocTž‚fÍ š‰ÎCä4ŒêO^47ì™ pe”ê–ÆåKøYg–I–I–IyúôñÜÇsÏ-á:çö'ÛŸlgÌU…€Ô²nȺ!ëD'_ZÜ̷ђ̸áy9úƒJ¿[E㜊P.ãÅ‘£G-ÏKf l:¤E;Åy%\R Ì ÌãwT3ÙrÙrÙr¢gv­DÅô†Ó%-:}(´¸ÿW2k^TÞš××Ób¤h›ÏŸ>úüé¹§rOåžú¶Þ,ÜZ¸µp«è+;991ÚÀ÷a¿Æ~ýÑ9Éó»ÞÆÊ’š~[l,ú¿«¶œ7þQ²É"ÑÖVÿIý'õŸR›¤6ImRžÞœ=#zF´èëçoÏßžO T`RK.X.X®„ßµ µBÔìJf\d®í˜ËÚ‹¯ôÚú§YÀ™˜µ§MöMQ2QceýdÈü炦@ù~_Û×’{¼ã¤=QôsÅ=ˆ{÷€‘ @ud}Ôú¨õQÑó{Bï¿Ï[ïä0µJ¤à6ÜIDAT:–c¦´ôh®RúÇ<ó`̃@Í@Í@ÍìÙ'²O”¥Ã‡={,újw·ÞÝzw+ã|GcŽÆ“ 5ßÔA§À’YŽq:Ð]¿EésËvÉí’Û%u|ÔñQI?&ý˜T¦¥Ü ®\-¸*új...Œs jZ¢“Ë;Æ¿7Ö•„ˆT4–’µ•ñ»f´m™¹AÑ¿)¾*pÑÿ>n½ÊÖxˆä¯|tòаVi¢õ 5 5 5bdPë¬ÿ±þ¢ç÷}‹ìZ&ÙVT™ýÃ8™NV2ßdèØ¡c‡Ž½ÑóFÏ=3ÇdŽÉ,aŽ%¦KL—˜ŠþmΦœM9›çàûˆ×‰×‰×“¨Ù·ü,¯Nd[±¥ad×!J?|íÜÒxŠñã)>®>®>®qûâöÅííÇçËŸ/¾\ôoC† È8ª0©%:ù˜ðãÀ©ê£%3ÞûµZ`YÝâÕm\»óÊV’ßÝ¿çlëU¢íµïÕ¾Wû22¨Ž’G%JUÂjm3êûÕ¯'ˆv®e÷ ñmùËs†ö¦2¤Ï…>ú\¸ÔòRËK-Ó–¤-I["úoFÌ1Ä|F8øþL˜40i :?™>ûÆ£·å/笻gaܦ¢æ–Ú¾Ú¾Ú¾»Ûìn³»MtntntnÑ%¢ÿ27:7:7šT-`RKtò±lÎ$ݧ’ßÌØ1Û¢NYþöâ¼M¯Ìšý•¦ê•†º’vð«c'~i7Z´ý}GûŽöÍÈ úêÕ'ªO”èYþþákÚXß–«ìå¬e×´y's¹ñ¢-|]öºìuÙEuÕ]TW¦B„„„3¶À÷çׯ…_ &î¨4~‚ÊuâÛò—ö‹=ú©—°ÖòºØu±ëb÷¦ìMÙ›¢Jÿ”þ©Šš[Ž==öôØÓŒm@Z¢S-fÛhKfxþ|ûè²üí{•3ݬöHòƒ #~òójo'ZC�ÿöþ›‘ @õâââ[ÂBËUö4n"ÌuogK”ûmey¿èÖ¢mk}Àú€õâ½ &&öÖâ­Å[‹UÖ«¬WY—ç"][ÿ¶þmý+W>®œ™™É8ßGö³ìgÙÏÄÍRæ´¹{À¸)!î·•ótyš¸ˆkÛÔ©#RGï‹øøøøøø#ùãÈæC͇šý¶¹eýkõ¯Õ¿¶6gmÎÚœðá/Â_> > >2Úï€Ô‚l?áža,™p®sÐÁNÁeùÛìåz%9Ž|}® ýiÑ£ÎŽ:=hZ[[¸Npà:aSʦ”M)ìGüG+a+a+Õª=T{ˆžëï ï¶õ9¢Ü¯-;>ÙfiLT¬-WÂÝÕÁ§‚OŸ*ËæÃ¶Û>lÛØrcË-å3ä3ä3¾í²qmãÚÆµ}t}t}tãæÇÍãÑåâŸçŸçŸgcfcfc–}+ûVö-Ú€âÖÍ[7oݼ~÷|\ªÊa¢Üo+{¤¸÷U"Úª³¦Ìš2kJYú%Ù(Ù(ÙèdäÉÈ“‘Ö7­oZß,Ï—%.K\–øÚáµÃk‡ÂôÂôÂtFþ·‰öˆöˆö(jÕ×#^x=‚68À¤–èTcÃŽ[ ¨îwüâ·°}Ç¢¿jÚàG™xI €ßœÉ¶z*Úþ{íy´ç‘$™¡™C3‡f¯óz·õnëÝØ›(îÆÙgoœ=×7¶k.;¢`ª“¼ílbݲ—§ºww4ù]´= Ož0ë~Öý¬+Ú’aÃ:‡u¦} Š€Ô=.øqÜ{Õê¾ð•^[ÿ4 ø÷²`=E…n’?áëk9Q´ýODˆ:U½ÆL‘5±kb×IJOð¯‰Â‰Â‰FÙFÙFÙ%Jô¼Ù\Õh°üDÏ›/—˜fîþrNØ]3cÃ_;¿k|Q´%= < < ÊßSá÷Âï…ß}}UUÕòDÂ3˜ùÃÌ{=özì•o›o›oË~QœÛS·§nb*ñBõ…ê UZ ÅZ¢'ÂáŽöýT$3ÞûµZ`YþvÐÆ.?©ü»>œÃô®sU|$-¾é¼ãwóXÑö¿etËè–‘$™»w-îZˆ›H­ì½²÷ÊÞìYyaúÂô…©¸óæëCÿj·ˆWlùÚy¨]»AµtÝUD[oÄæ›Gl®€Nz$|$|Ô(¦QL£˜â¯ßC±‡bÅ¢’ðG é{¤ï‘¾æwÌï˜ßùÆõÞž×^ÿùÚ#k¬=~4ühøQÁ+Á+Á«š¼$OIž’™‹å5%â-½òjãíBqm˜ñWÆ_•¿§Ö~XûaíÑ×Ï<–y,óX–c–c–cÀ•€+WFtÑyDçòD“U'«NV½oyßò¾eî’Ü%¹KjôNÒEØEØeæõ™×g^×bÏŸ%>Käx‚"À¤V w9Ñ8,ßC2`Ù(Y[¿kFÛ–™ˆû«ãÖ«lÿ³zG ïnÍÖŠ’ý•»óD–°ÊÈë ¯'¼ž ù#'Ø/Ø/ØOÜDj©ïRߥ¾Â,a–0‹½ €y+ç­œ·²„8°¡Œ«L÷ÌecÛÄ÷Š–{OØÆ^7ßHÔKÔKÔ+ï|:ÿéü§ó¢¯~ëù­ç·Šû«äÞɽ“{ŸÒ8¥qJ££VG­ŽZåZïmDzËv¼Ö{­÷Z¯0®0®0®¦í#)S¦vxìðØ!ß4ß4ßTZ÷”/ÿ ÿ2\/G/G/G´4j>Ô|˜ö[Úoi¿qTÔd¹ù¹ù¹ùÝ4ºit=cÊmVøRƒÇŠ_㨚ýη²Àä±Jz‹Õ ψ}ìóäŒÉ“+ª_¶ÜzpëAÑwIWOWOW/Ï+Ô-¨[P÷™Â3…g î}Ýûº÷-Ïܲ÷ëÞ¯{¿¾¸ÿâþ‹û¿lÿ²ýËv©ÝU> ? ?.j¹¨å¢–âZ#$/$/$£JÍD @jxxâቇ¢§½‘ÿì3¿/ipÑ/úß#ó{T¬~[¥£Ü5ùC Íë{™ÜÒRºøÁo]³ô;·ZÛ,’Ìè7cÛ­÷6gEÛ¼ÓÏ~îôsõKO>yøä¡¸‰”ûH÷‘î#‹ƒÃ~¨ÉÎÌ<3óÌLqgÌ…G[ t<…7ûØYÔ´è÷UÛ!;Úu×2†£ GŽÎš74ohEõEìôØé±ÓEßëTSuNÕ©ŒÞÏš–5-kZ@V@V@ÖˆC#8TžËv“îNº;éîýŸïÿ|ÿç\×\×\WiÚSÒ7¤oHß`llXÂýÙªT?¨~H¹˜r1å"G@M=)zRô$q³…&'5åål=Ö…øG׸è·Ãg“íŸ[G)ŠýqáÛßþøöÇŠë a´0Zy¶òlåÙÅߥK|—ø.ñ•Ñû…£ GŽz)x)x)XtwÑÝEwË3·´{o÷ÞîýY³³fgÍR®¤\I¹"U»J¶0[˜½4jiÔÒ(q-¼&xMðŽ*5 0©õ1øcðÇ.©¸^pœ­©" q©¸÷kÿ»ä”Áö¹µ©+Úæ[×n]»umuQ¡…þú—¸‰ÔLÏ™ž3=…6B¡ { &[ÿÃúÖÿ ö>WG“9ÙÙn© ÑïƒÑÚx—~A*iLÒ˜¤1Û ((á®Üd›d›äï4WÉÙ•³+g×Ý“wOÞ=é”ä”ä”T®õÞvÞ=z÷‰w&Þ™˜=.{\ö¸ê¾§døgøgø›®6]mºº„‹ÚQM¢šD%I’<„£  &{tøÑáG‡ÅÍä’×Ö?5ËöŽE«Y5âÏ›ƒ…ÆTÚé÷h8]\›¨¨¨Wl/D'E'E—0—ó[é·Òoå÷ 7›Àííî·»ßî^•µ*kUVyæ––»,wYî:¶äØ’cK·'nO”’»„W®X¹bå qŸúný»õïÖç¨RsZ………âNx…ïٞ”ä0µ:–Ó—÷Õ¼%®Íç¥ÎK—úÜä¹És“ŸŸŸê8®^ؼ°y!vÝ;·Mn›Ü6 Òé‚töA@M¶`é‚¥ –Šý ~7uë&½S{Œ^ßñ²´F¿Ç7tl<©ô OQc¢ÆD©Œöo×2®e\ñ÷2ßn¾Ý¼Š/låÍÏ›Ÿ7ÿa³‡Í6sMvMvM.×zo-†´Òâúªë«®¯Êl˜Ù0³auÜS2f>Ì|ئC›m:ˆ~F…× ¯^'&%&%&qTÔdÆ +}n01òô`ƒcÒýN]yq¶¡Eé-à×ȯ‘_£ÊhÿÝÍw7ßÝ\ôS¤HPeÃÂRh)´üý!ûCöÆ?lü ¡¡ñmsËVr­äZÉ\upÕÁUqqqÕwñRñRñR÷Iטּ³âÎ Ž*50)7)vRì¤XÑS]h”oË^D¶U渧nkñÕë½õÑwFßÇ5käkäkäkT—qæææ$îs¹lwÙî²]°E°E°…}PCÝÞÞ÷<àyÀó@éóÃÚ¸IGè›m1N½S7]c%~¥êHHHÊhø„¤„¤„îÏ8brÄ䈉¤ “‚F =ëö¬Û³nîGܸ)×zo3{Ïì=óâè‹£/Žþ2÷ËÜ/s«Ëî’õ2ëeÖK«««ÑÏ%{Sö¦ìÍ··7-€š, ]@»€v¥Ïú>X²V³×¢ÙaAfÆÒý:è­;¡íò?¢ßñ~ãýÆW^Ëk/Ó^¦½¬ø;Z]°º`uAâ†È á áO¿}úíÓo;îX¸casõæêÍÕ¿mn©ÕI«“V'ïnÞݼ»EÏ‹ž=O. †W—ýe½ïzßõ¾bïO H Hå¨"Ý€H¹z!õBꉞä&«ŽÒP$¸­¨òÎ'ï5 2å6iÒ¤I“&?~ü8wxîðÜá’<º^/|½ðõBqŸeÂÚ k'¬èt:쉀šl»×v¯í^¥Ï<¢-,´'g›ÖI¯:F¿w|ûõ¶x_úgT—Q—Q—‰W‰W‰W©¼Ö>Úìh³£ÍDß=^/ˆHþh)t)t)t 333X¬´Xi±R¹Ö{›c7ÇnΙŒ3g2R¼S¼S¼%ù³g?Í~šýÔf¾Í|›ùâ>Q\\\\\G@MöHá‘Â#…ÿ1ïZf|W>Òmâ•Ã×Õ1ôq%`…QF‹:niä_ú'½µäÖ’[K*¯µã¶ÆmÛ*ú¾Ç£G®Ã%_˜/ÌÿüüóóÏÏ÷½Ý÷vß[ƒzõ ê}Ûܲ‰Aƒ&[no¹½åvIJˆeË„3„3„3$¹6klÖØ¬!îÝèv£ÛnU¤0)—___ î$—6éæ˜ŽùÄ·å/m·hÒX´…î;Üw¸_®õÞ:Œî0ºÃVwZÝi•Ý;»wvoIcoW¾]ùv¥¸ú›9n渙…' OždÔdW}®ú\õ)ËÙÿ˜L×{Æ ów¿kÛE’CßðcŽû¬–ô9¡½ iTéŸhø•áW†_É6Ë6Ë6«ìvn³°ÍÂ6ÿùš~’~’~5~€°ÀCà!ðxò6ämÈêΫ;¯î\®õÞL,M,M޵?ÖþXûÄY‰³gIÚç͹–s-çZ—:]êt©#îSÄöíÛ—£  &ûö)ìSXsíæÚ͵K?ûÛÌs~¡j2'îÞ ãÁ’úz¤?còK×-Óg5·,ˬæû;÷wî•ÝÎ>C}†ú }÷$ë$ë$ëê;~Ž$I>’lqÆâŒÅ™oœ\>•y*óÔ+Ë+Ë++¼sxçð΂ A HÒ>ï¶Û6nÛ(îC\ÝzuëÕ­U¤0€aÝäu“×M=½m¾?+ÎàOâÛò”o[œ,hWÂêÍ\›¹6sº ]…®yëóÖç­Øÿaÿ‡ýÝ:»uv+×e;‡‡^ïy½çõž’0ÆÂ—„/ _"®Î£zê=ªw¡f¡f¡&û# &‹|ù,ò™a¸a¸axYÎû‡ä:'ef5{¥S]I}Cδì6XG7NeHYê0è`ÐÁït(¥iJÓ”¦¢uØ×h_£}¤juvvü¨úQõ£ê&ýMú›ôÇ*ŽUûmsK#_#_#߃6mÚÄý÷{Üï’ðswæîÌÝÙcI%=ÄÎ0cŽÇ9ÎQP“åûçûçûÏ›6;¬,çýNŠ¢TfÌ 5 —„ÐwÖ…;ÂVÞ]çMïÙܤ,õwêìÔÙ©sv½ìzÙõ¾O ÛÛÛ¯ƒ‰¥‰¥‰¥ô¥ä­É[“·žºrêÊ©+6õlêÙÔ+ÏÕË¥K#–F¼ºõêÖ«[…O Ÿ>‘„ϸ#mGÚŽ4qu¾ôüÒóKÏ9ªH`5B¢g¢g¢§¸ÓÛ—m=mÚå~[Ù?Æ6±ÙîV¹ãwÇ)Ð.Ð.Ð~6÷ÙÜgsÝîwA¹Ö{“ë-×[î¢úEõ‹ê_þþò÷—¿«j¤}pýàúÁUìÝ?M†7Þ¤`]Áº‚uì•€š¬pRá¤ÂIÿüýÏßÿü]ö3þø‘†›šßÎнMýï÷ÆdTè°{WN§•-ci5˜&Û´,õ´2·2·2ÿý1úãw},Þé§?žþ(ZŸÏnŸÝ>KûÚ±·„·„·>~2üd¸#dGȎ曚oj¾éÛæ–šašašaÞµ¼ky׊=(zð­ð­ðí÷ÿXy“ò&åMêÖ;­·ØKuŸr?å~Êå¨@Ðà‡AË~Æ×`j¨ 5Ìfk¨Îƒù¶O\MTvÜ»°Khºéì‘vè>Óõµš¯˜\öÚ^ruÈÕ!ß³=sssDkâ“ç“ç“WFTšWšWš—GÿŽþí›Û7·o^ž«—ó–Í[6oYhVhVhVÁæ‚Í›«êsíãîŽâêy¡ö…Újs<‘ÀjY;f혵CôÄæ™çl¤ó(÷kˇSZ¶y#nº¿&Mþš²÷N¡{¡{¡{ذ°aaû,vYìR®õÞØ5°kpæì™³gΦ,HY²à{Ž´ˆ^½"z‰½ƒùÇ7ùñùñùñì•|vøìðÙáïßÿþýïß¿öŒßñ½Z¾Òª-s¬¯˜/ЬuvòÝQÂŽ£¾6è}½qhãvÛO÷é~ÍÄvÒŒV³ÕS¿mâ¿Úµÿjá$á$á¤ïß’žtzÒéIñú¨¨¨s„9œ7° „‚ϹŸs?çîo¾¿ùþæîîîßÖ³Jו®+]ß2sËÌ-3###…S…S…S¿ÏGÉ7È7È7Ðg@Ÿ}ÄÕ0Ê<Ê<ʜ㠹Ss§æNÝb¿Å~‹ýמñk)'Èž·UtVõæ(Ó=3ôܦ-ºvÄ諃Þéo,2Ú0æÇýÿè×í,p=£v¾‰­ÆH9µ¯­ÏJÓ•¦+M³jeÕʪ‚çxã=Ž÷­U\t\t\tÍ]í2Úe´»êyÕóªçÀ/¿ üRž«—Ó?Mÿ4ýÓ£¨GQ¢òeòeòe¾çgÙ·dß’}bŸ4sNãœÆ9 Ž'Õ0€$¡mBÛ„¶âNloW²µúX·,e~ä½M¶ƒ•(žõ*áÞ_/?/?¯ò÷—`©`©`éÛì·Ùo³Wo[½mõ¶òLªÚ>hû íƒ£yGóŽæ%L˜8°²Ç[”J”J”Џú X9`倕ùæùæù\ªà_ok½­õ¶ÖЄ¡ Cdª‰£uŽÖ9Z'oOÞž¼=UÕn_~ûòÛ—ßDëöÏ….üsqõŸoî î î¾&¾&¾&­•Z+µVúÆŽ.3\f¸×!¯C^‡Â•••×××+¯æùùùûö;ìW©ˆñã#ÆÓËI]•º*uÕê=«÷¬ÞS]æ– g.œ¹pfâ/‰¿$þRµ­×îa»‡íþsGµŽ‡Ž‡Ž㪸¬ÃY‡³ßr¿å~Ë}¤ûH÷‘îåéý‰ùó'æ¯ ^¼*×.×.×®²ëðÒÁK/‰«Ï™ÖgZŸiM/W_Àjœý7öߨ_ô”¦ûE£‘|ó‚±÷rmgñ–^®MšÖOÿ²hêµÒk¥×J°\°\°¼R:¯«°«°ëÇî»ì¾É}“û&wÅ0Å0Űo›TYYYÈ? ?ösìçØÏ•QåO‘Ÿ"?EŠ«CÝ>º}tófæÍ̛ɾ @qñòñòñòk¯y¼æ±ä\’ë5¡×„^%§­. ¹0äB kGí‰Úµ‡±TºäóÉç“ÏŸœœØL·™n3½\ë½­[ºnéºW›^mzµ©0°0°0°bk[°¼`yÁòaÑâ‡E‹«Ã‡•V~XIÏPœÀX`,0>5õÔÔSS[lk±­Å6I˜[ªQ=¢zä°ãaÇÃŽyŸó>ç}–„¶JmÚ µhmwßÛ}o÷=ÆRér‚s‚s‚ïéßÓ¿§ï|ÅùŠó•òŒQ!£BF…ÜŽ¿;>Û4Û4Û´2ê|øÃá‡?ˆ«ÃI«“V'­èÙêˆ@“[[[ î”¶lĤ}º!D¼âÊSûÃÛˆ½(öâÅ‹/^|×î  ƒ> ú4èÓ ò;åwÊ«ÿ¨þ£ú߸ޛ³¦³¦ó.ÿ]þ»ü£ £ £ …¯„¯„¯Ê_͘m1ÛbÄ~µèq­Çµ×råÊ=Ä €8¯:½êôªÓª€U«š¿oþ¾ùûʾ$7Ür¸åpË‹=/ö¼ØSè+ôúJfËô|ÝóuÏ×Åk.GþŽüá9á9á9FÎ×J;šv4í¨ÿ"ÿEþ‹ì—Û/·_^®õÞŒæÍ3 ,XV°¬`YùkXج°Ya³QG5ÕXÜû†{‡{‡{Ó›ˆ“á’á’árHóæ!M»>v}ìúTöܲ]~»üvù{î9¸ç`R^R^’„®¤{6ëlÖÙ,ÑúÇØÄØÄØ0r¾VžOžOžÏÃm·=ÜævÞí¼ÛùòŒ"‡\ÿñú×ÌÏϯ¨zÍ>š}4[Üû3=fz̔ެ^€ÔPÒ¥?JwJ»øe³‰™qoñ2ÎᲬµ¶¸[~uùÕåW%¢k „‚XåXåXåý÷OÜ?Ñ Æ Æ æ×{³W²W²ß¢³Eg‹N„q„q„±p‚p‚p·U-¶]l»ØvâÞ«KÇ.»t,ú {(e÷jó«Í¯6Ÿ:yêä©“Kú,鳤ÏÐáC‡Þzkë­­·ª-R[¤¶Hq¬âXűMÌ›˜71o±«Å®»º%tKè–àjàjàj°Ë`—Á.ƒ …A ƒ ÖÖÖT—Ïžq"ãDÆ ÑyÅÆzëm¬Çب°v”1(cÐÕëW¯_½>¨ß ~ƒú•k½·5Ó×L_óèÔ£SNå ó„ßzí·ðHá‘Â#ã¬ÇY³»ÌÍ·Þ (»´~iýÒú]3¼fxÍpc§6vrúÙég§Ÿm¶ÚlµÙª¥¥ÕxKã-·4þ­ñoӲײײ·V¶V¶V;&vLìÚ·kß®}{)éRÒ¥¤øÜøÜøÜêÕ]~íòk—_‹Ï(šNo:½éta¼0^Ï)¿‚6m Ú<»òìʳ+ÎÎÎåzFÑö^Û{m¿ðüÂó Ï¿X}±úR®»uOþpò‡“?ˆ{¯#M4=Ò”¬.€Ôhkk­­µ¶–¸SÚÇCKÛ.&úÍX{+ÌætóAÍ4ä&ж’ÁjƒÕ«ósósó%z:›°+aWÂ.ß9¾s|ç´^ÒzIë%å™Zy ôè5ð]Ê»”w)‚ó‚ó‚óe¯IÜ‹¸q/Ľ²Í%›K6—²Ã³Ã³ÃÙC@é®­½¶öÚÚ¼ôÃÒKiŸÊ“u=ëzÖõ[çn»unä«‘¯F¾*×zo{'î¸7¸_p¿à~¹­r[å¶*{MÍÍÍ'8Lp˜à îõ_ïx½ãõz ”îËç/Ÿ¿|Klë½­÷¶Þ´Oå)\Q¸¢pEØö°íaÛ¿\ürñËòÌ-m7Ûn¶Ý|f䙑gF¦8¤8¤8|m}Nž.<](îõæÌ=˜K¯I>`5š ‹ ‹ Kûö=ìÅÒ¾ŸÞ®uÍŒ~³2ï\êÔ¶m7£¨FÏŵOŒCŒCŒCuìýäçÉÏ“ŸŸ¶>m}ÚÚæÍ›7åZïÍr©åRËWc^y5¦ðráåÂË¥¿{Âð„á ÃeçËΗ/újíÕÚ«µWËŠÊŠÊŠb?â Þ5x×à]¢s ¡®PW¨Kû|O9á9á9á÷Fß}oôù òä˵ޛË(—Q.·Oß>}ûtv³ìfÙÍþÇ÷šõ‚õ‚õ.c\ƸŒû½fIØ’°%ôçÒKC. ED:D:D:Ð>ßSÑìî]Ëw-ßµ\]°º`uAyæ–m»¶íÚ¶ëуG=˜Ø"±Eb‹²ÔÁ/Á/Á/AÜkî ܸ/ž’dÀ LwIwIw‘W‘W‘W{7ðâCÛ®®9Ñï÷s ‹å-/52×&®=¸öàš4„´ ´ ´ ÿÿÿûxûxûøòL­æ¾ûvîÛÐM¡›B7Ì.˜]0[ôß$¾I|£°Ma›B +·™Ûfn›¹™o3ßf¾e?Åeÿžý{öï¢ó‡UMW5]ÅcÙ$BžžžÿÃ<|0­Þ´zÓê•gn98spæàÌkAׂ®eÜɸ“qGô)‚AŠÛH·‘n#Ž΋/F¼ñíÝXÍ÷ÿÇñváªmv]|ò£,‹’:Í k̬ Å\3 3±™eäg~k“’¢ÌrÕ¶f[L¢R¥Ð¯‘L«PÒ©súqÖ©sÞß?ìŸëà»ôÓ9÷Û¿ÊÑãyº^OçqÞçÍt€º™Š™Š™ŠÇ7ýAúƒô B€@>ì#á#ᣢ-E[жÞ ¼xËðsÃÏ ?¾Ýò­3oyëLDxDxDxY\Y\ÙS/e‰¹s9æòÓþžP¯P¯PÞbØIQÀ?ʺ–u-ëúì£1Ö9ÈgôLÍ®~‹ÏE—Oø¹×.ý€žúOÍÁ<Öw.i^×ä›n`»Y“ªßD‹ï§½ýå³ö“ 'N&hó3¤>¯>¯>/Y’,I–8ví<ºE÷{³uµuµM7J7J7*ŸP>¡|ÂÀСCÕ¿r¸îpÝáº5a5a5aüž€E}õ]ÔW}gP9©œT|@ß C¤ Rå§å§å§y õê5´E÷{ÙŠlE'Þ8ñƉ7$©’TIêÑÑÑS?å¨"»"»‚)€¤µIk“Öªo ýsèŸCÉçÅY.¥ ,›V6­lZxJxJxŠÕr«åVËŸo·ìw®ß¹~ç‚ÒƒÒƒÒ‹„"¡Hˆ¯Š¯Š¯zÚ׸~àúë ¡ó €'¸_~¿ü~yï½½÷öÞû´#ÍâãÁ–}VŽˆJoõâ–¾µ¯%¯œ¸òÓùŠÁ>ûÈOÔKÔKÔ㹡îoéßÒ¿¥iâ4qšØe¥ËJ—•-yÙn~åüÊù•Š (z³îm‹·-Þ–¹ÉÜdn$€vjÐ0 á 7.ÙV¶­l[ù¼èTÁª`UpáüÂù…ówÛï¶ßmß’Ýr\î¸Üq¹³/ξ8ûâÓ¾&óPæ¡ÌC$€6›÷Ó¼Ÿæýô„7V©ªTUäó¢«H­H­Ḩ̎̎;Nwœn‹.h1s5s5{ÚŸ¹¹¹yg@ OUãPãPã0-dZÈ´g{;æ¹|hÞ¿¦ïùß'Íëü¥¯Êöò×¶Å'ßóOUõoõ\¯\¯\îåÐ ŠKŠKŠK™:™:™:«–¬Z²jIV5ÄiˆÓ'©¥ÔRjIÚh›ôéÒŸP_ß|}óõÍä£GÁ±(²(²(2È,È,ÈÌðšá5Ãk­»a^uüÕñ„ €¶‘ÇËãåñOøDŸ>;}ÈGSI%’ÆãAǃŽ}0÷ƒ¹ÌmÝÝ2 : : šœ;0ü?T#T#T#üìýìýþÕ»ï¿Û¼~‚h…låùá“Fw¢êwþûÆW}ç3ú®Ñ׆Iÿ)|öOaçcçcç#,,Ìs åš››sss7öÞØ{cï–/RF·nÝ.Ý\º¹”—zÐ"®ö®ö®OØK•••ÉG+d ™BfiTiTi”8Qœ(N4U˜*L-ß0£3£3£3 í‘âââ ¾ÜáßõTz*n§ÕjjjìììæX̱˜cñ|»¥ššy¶? `h¶†˜†˜†˜½z{õöê5÷ÀóX¿àÈàsç%âwƼWùy‚ÍûÿiyÑÛôQZ¹í×9ÿý¯÷;þ%úR?ãz5£ô2'dNȽ£÷ŽÞ;Ê|ÛB£I£I£IÅ?Vü˜³=g{Îö_â~‰û%n“Ã&‡M“Þ™ôΤwžo…JÖIÖIæ4@+dnÉÜ’¹E}È È È í¡¼ ¼ ¼ õ•úJ} ¢ ¢ ¢b-c-c-ýtýtýtgÛ̶™mÓëj¯«½®6w·tJqJqJ!a´‡ú>°eü–ñ[¸1„6qœçúõ+êW\<|ñðÅÃâ$q’8i鸥㖎3ïaÞüù/\÷î,דëÉy3Aà%ch‘Á‚¯Î[·:¯%ˆaõÀ¬©ïû‹Æ|4çÍ#Ûƒ¾ŠZ½¿ëº¾¢~‡úl:luòû\Ïž¢zŸ­î·‡Å¹œ«7hÙûo¾ýîë [òˆã#ÆGŒÈž•=+{s|>*#•‘ÊHæ!óy)R8$Þ:Þ:ÞÚÿ°ÿaÿÃN‹;-6Øa°Ã`G6ÃÐþ‰þ‰þ‰êû@cIcIc ù¼ðö{„=rK¹¥Ü²tpéàÒÁ©ž©ž©ž¡æ¡æ¡æ®Ö®Ö®Ö–bK±¥¸ívËðåáË×3 ´‡ú>W—W—WG2šAQ¢(Q”T˜T˜T˜d'f'f'‹>},zc·Ý6v›øûÄß'þÞv»¥è¼è¼èüõáæŒÍ›3l_¶}ÙöåöÜ-û¤öIí“êXîXîX¾³ûÎî;»ûöðíáÛ£T¿T¿”û´ Mf3„E+‹V­ ¼x1ðbSaSaS!ÁtfÊZe­²VöŠìÙ+·5,?,?,ß=É=É=id—‘]FviÏÝÒ\×\×\w鈥#–ŽŸŸŸ¹xðâÁ‹‹¯_/¾^ïVïVïöèþmÌ sz˜ý0ûavî”Ü)¹S¢Œ¢Œ¢Œ¶NÛ:më´¯}xíÃkí¹[öJî•Ü+yöÈÙ#gôÓñÓñÓ‰5‹5‹5+8Vp¬à˜t—t—t—2Y™¬Lfj/. `he·vÝÚuk—ú±šÜÜÜ@>mÇù]çwßmëõh°Ç`Á_X}aõ…U°m°m°mrLrLrÌ_ÛÿÚþ×öºÈºÈºHÁB°,˜À‹ëü•óWÎ_iëݲg—ž]zvù¸ëÇ]?îê³Ðg¡ÏÂÓ§ NÜ4¿i~Ó¼úûêï«¿W:+•Ôº/¼ö)w'äOÈŸ¿aÆ 6ü¼îçu?¯ËÊÉÊÉÊyð̓o|£R)‚˜…6 €Væ“ã“ã“£~ôÖߨ¿Qƒ|ÚÎBË…– -[²ÍȘ‘1#cgìÎØ±§tNéœÒÉÈȨ:Ru¤êHSCSC>€V(*,*,*lÉniãaãaã±ö§µ?­ýé訣£ŽŽÊìŸÙ?³¹s¹s¹³BG¡£Ð‚BP6€6hÉnifhfhf¸dß’}Kö\rpÉÁ%ö_Øa±q±q±q}·únõÝ[ÁV°%g =Q@‹XÞ¶¼myûñêwì±Æ Ðþ(€à9UL©˜R1EýÚßÈo#¿ü–|@û£€çt4ëhÖÑ,õ¸"¼"¼"œ|@û£€ç4fÛ˜mc¶=^ýŠ"…HA2 £P@³I¼%ÞoõkÃ×…¯ _G> £P@³E…D…D…¨Àe¦e¦e¦ä: 04ÛûwÞ¿óþÇ«_Ó>¦}LûJA)(Ét `héVéVéVõkŦbS1×þ€F Ícccª^—~VúYégä:04ƒ}½}½}ýãÕ¯A…A…A…pI¸$\"б(€ d›d›d›ü]ü]ü]ìÚ´èèèM2 3  A ‚40h `ÐÀ !(€@CP€†  A ‚40h `ÐÀ !(€@CP€†  A ‚40h `ÐÀ !(€@Cüˆ>m aì·Í%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/windowToggle.png000066400000000000000000001720551431412030200260540ustar00rootroot00000000000000‰PNG  IHDRâÿJ;PgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìýw”UÕý?þ‹&¾ã'‰ÒAiRA@TÄƒŠ ±vņ]ATìÅAE"Ä ! ØBÔSAÔ1D%1Æ #j4FòýcûþýÆ5 ïQÚ3Ǭµk¸3sξçug¿öóν­ 62Å (0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!¦D-¾~ñõ‹¯Ï?Ë?Ë? ÿ6' v@í€ÚµjGí€Úµ°z`Ö“ŠÑ£+F/¶`Ø‚a£gŽž9zfû‰í'¶ŸX…ï¾gøþág™sÔŽÚAí¨P; v@í¨ÔŽÚµÔ5`Ö‰å›-ßlùfwVÜYqgEËñ-Ç·_½ ?7C8÷ jGí vÔ¨P; vÔjGí vÔkKÕû}á& 7Y¸‰™aó6´\ÙreËÅw,¾cñeõÊê•Õ«_’±…ã Çì®Cí¨ÔŽÚAí¨P; vÔjGí vÔߘÒ$æ»Z±rÅÊ ïZx×»:¼Öᵯ}·_x½Øz§æ3ÎkÓëöŽ}§<5`øöÝ9pÿ‹{Ío?øŒ>óóOÙ¼ïÜðïðùp›pûðµßíç†cÇÎÅ]Jm«n‹›Ï8¯ÍQÏtì;å©‹Ÿß¾Û#ÞZ¯×üøö)'ö™Ÿ2uiß¹áßáóá6áöákÕu³všÛ©E·ÅíVìwËQÏt¹mäÔ‹Ÿß~ðy—ÝZ¯ÇËãnšrâŽ]ÚkêÒðïðùp›pûðµj‡ºY;íºoÿ`Ó­úÿéø¹mfœ\õÛm>9zôäN_ùô½½¶ûÏIoÌxµëýáßáóá6áöákÕúýjG¿úÐï¨âSšÀ|kËÚ.k»¬mÙ’²%eKjþËlÿQohõèœM¿Ù3Yþ‡ãNÝãù•+G4hmá{†ï~Ö·xÖÕ’²%eKÂy¹)½ÚÙ}ŸVÎÙdÂŒžÉò?ÌsçW®,/4hmá{†ï~–Ú¡µÓbv¯Ù»ïÓ}ìÙoM˜±óä‰ÿžÿfÿþÓ§——¯­1|ÏðýÃÏR;£vº¾²×A[Î:ò”I“:wûy>oÇc®ºê¥—z÷^[cøžáû‡Ÿ¥vÐïèwÐïèwP;úÐï¨ÚKLiS#_uûªÛWÝ&Ï™ýœò áØÂqªJ§vÚ]¹ÃM{:þÏ»ýéª#_šÔ»óØ©n<ò¥I½;‡c Ç©vÐïèwÐïèwÐïèw@¿ã(e`J“˜j-}eé+K_©É3’âŽèsO mÔ` Ç\“³ óàz`ÝÔΔÍûÜSBÛ5Ã1«6líôÈÇí;eóÚþ¨ÁŽYí°akgä¤é/o÷÷Úþ¨ÁŽYí ßÑï ßÑï ßÑï vô;®‡Ò$¦4 €Y…'§=9íÉi«ÿ•sÙˆÛmûÅg[œüÂÀ¹µk+¤òŽ?œËêÏ7̉kƒµQ;'±íŸmñÔ1çÖ®­Êc8þp.j‡õS;Û úÙÉGô{gÚOS»¶B*áøÃ¹¨ÖOí |àô¿µryÏ?Ôß©eíÚ ©<†ãç¢vÐïèwÐïèwÐïèwP;úJ‡˜Ò$ææn`hyß›kï&Huc8¯ÕŸ{˜× ßµv¦ê{síÝ©n ç¥vXwµ³ã-—<=uPíÝ©n ç¥vXwµsÒ3ʺÞR{7AªÃy©ô;úô;úô;úô;úJ˜Ò$æk«FUóCuhðþÛ-Ž=ižÅÛ ©<†s çë™V¬Úiz}ƒ÷ßn1/Ù£gñ¶B*áÃùªÖ¼vÌlÒ¸éõ;7¸mȼ¤x[!•ÇpŽá|Õk^;ë5ý¨ÁqçÏIG÷XQ¼­Êc8Çp¾jýŽ~ýŽ~ýŽ~ýŽ~‡ ELió¼Bï‹[Ó<úèþÏ0 Ø[!•Çp¾áܽïßµvº·i}tzô€ÅÞ ©<†ó ç®vønµÓìüNÇvo³ëì)Ò£‹½Ry çÎ]íðÝj§ÝÈ~Ü´ë%Ÿ‹z5+öVHå1œo8wµƒ~G¿ƒ~G¿ƒ~G¿ƒ~G¿Ãú'¦4 €ë´ŠáÃ+†¯~+äßמô×íêÎVHå1œûê·Eº–ÔNÕ­_»ðøíêÎVHå1œûê·EÔŽÚ©n+¤ßéw¿¹ðøº³òwÌ:ýî7¿úmµ£vªÛ ¹ôËßÿ«×oêÎVHå1œûê·EÔŽÚÑïèwÐïèwÐïèwÐïèwXÀ”&põU·¯º}Õ­ÿ˜þcú©îÐêÚ³àWÿìøê^$-Ìa˜O×•Ú /Vמ¿úgÇW÷"ijGíT}´ºö,øÕ?;¾ºIS;j§ê  ÕµgÁ¯þÙñÕ½HšÚQ;úýúýúýúý나Ò$®£&Ï™+öY±™ùnÀuβ¶ËÚ.k[Ý/‰|ÀÐò¾7Ûþ¨n óSÝì…¹uÕÕÚ™:¨ïͶ?ªÃü¨µSÕŽ·\òôÔA¶?ªÃü¨µSÕI7Î(ëz‹íêÆ0?jGíèwô;èwô;èwô;èwô;¬kà5÷åÐ/‡~9´º«ZüÝ€ë’÷V¾·ò½²%eKÊ–T-¡ËFìÜnÛ/lyÔd sUuÃ܆yv¹Õ¥Ú9ùˆm¿°åQ“1Ì•ÚQ;Á6ƒ‡~vò¶÷Øæø¶c˜·ªóæ9̹K¯èµ3eó>÷Øæø¶c˜7µS—k§G>nß)›Ûæø¶c˜7µS—kgä¤é/o÷wÛßv ó¦vô;úýúýúýúýë‚xí¯-à:añ‹ïX|GÕ’è½ õùÍŸ[ùĨ!ƒúØàøÖ㣆 êæ°ê܆9wí·vºiþÜÊ'Ê'êcƒã[O”OÔ'̡کkµÓìÊN×tÒ¿Çô Ë'ÛàøÖcé–Os¨vêZí´»r‡=šö¾ê„—îé½ Žo=žðÒ=½· s¨vô;Fýúýúýúýk—xݯ pPV¯¬^Y½ªeP~ðaå»kkcMÆ0‡«x¯…zeõÊê¹öŠ[;÷NÚåX[k2†9T;u­vzmuå÷N²µ±&c˜CµS×jgÔñ|ÞíO¶6Öd s¨vô;Fýúýúýúýk—xý[à‚[¾ÙòÍ–oVõ¢o³´ÉûîYyÖ¨žƒ¶±©±FãY£zÚ&ÌgÕyóï:,Ví´Ùèž•g•´M5Ï*1h›0Ÿj§.ÔN£æ[ÞÓrdÿvÓ÷-aScÆvÓ÷-æSíÔ…Úiv{«î o»j·—ŽéÝÆ¦Æ»½tLï6a>ÕŽ~ǨßA¿£ßA¿£ßA¿£ßam¯ÂàšÜwVÜYQõBŸ}êàY=§ÙÎX[c˜ÏªóæßuX¬Ú™Ðµç´ µ‰ðçl²Û•§¶o‹„ùT;u¡vº8ûÚ ]mg¬­1̧ک µsd«I ;7®çÖ[°ïÇU>—R8ª0ŸjG¿cÔïPšýNMÆ/ö{ºUYï›{ûy×Ã{e]Ÿj~d³ÉM>noó›­W6þX¿ƒ~G¿ƒ~çÛŽ•'t1µ7Öïl(à K\pq}°òƒ•´ßr|ËñU/î:qÌ€62ÖÖæ³ê<‡ù÷…K²(µ“ž0``éÀµ=ó©vêBíì:gÊ-é 62ÖÖæSíÔ…Ú¹¤ósY¯æàµ5†ùT;ú£~Gí”f¿S“ñ’²»íÕ«ßÎÓï ßÑï ßùnpét.úÚE\:„Á• € «btÅèŠÑU/åýGu¼¡Õ£¶0ÖÅæ¶êœ‡ûÂ5Yûkg÷}Z=ºa·Š‡1Ì­Ú)jí´˜ÝköîûØÂXc˜[µSÔÚéúÊ^m9«ön=”fÆ0·jG¿cÔï¨Rëwj2vº³Ý…MŽÇ|Ñy'\ÓéWNŸ=u·[?ž›}2`AiöGúýŽQ¿£vJ¹ß)R¬ßÙPÀ¥I,.¬Ã [0¬êå;g“ÁoöLl^¬‹1ÌmÕ9÷…k²ö×΄=ðºÃܪ¢ÖN÷±g¿5a†Í‹uòÂhcÏ~k µSÔÚ9ò”I“:w¯“F;eÒ¤ÎÝÔŽ~ǨßQ;¥ÖïÔd¬|Ì!úÕï ßÑï ßëw6,pé«›a°¸°FÏ=sô̪—ìÛ¹G›ëb s[uÎÃ}ᚬýµ3ï‰=z€×ÅæVíµvv®Ûþóž°y±.Æ0·j§¨µsþéY=Þ¯‹1Ì­ÚÑïõ;j§Ôúo‡þH¿ƒ~G¿ƒ~G¬ßÙ°ÀµKÝ ƒÀ…Õ~bû‰í'V½LÿûØ©;”/M„w.:næŸ\k¿ŸlWØÄ.oÝwÇe­þ§ÙûÍ&7üKƒ¼Ë©[.kú½iû[üçÖ¦»Ý5¿õ é^ýJsC$ÌmÕ9÷…k²ö×Î3»”/Íøù¹û®gµ÷~´Ý§C¾õ^Ÿl6¹ÉÇ òžK»þ¿æ.Ý餱Û.x¿õ“KöêWš"anÕNQkg·©÷Ü÷Ì.¥¶•°Û›?¿ôÙ¡]gŸ¶×5'´˜ÙkÊîÝ]¹Õ»­ÜàêÆÓ›|ÜôŽÓºÜÖ¾ñþ}tŸ 7]õÐ-¥¹!æVíµv®øðÅ;=T:›Wv~ñÒòÃݸw§“»>³W¯-ïk>¹õ¿¾ÓhfÓCìµõÝ~ÜdÊžož²éÖ\0xáž;^TÊp˜[µ£ßYŸãÂù‡Þ÷Í^ïþv»E¡Çiúˆ×4¸¹{׃šþåð{» ÛzãÇn:ð¬–ÕêÔye¯èw¨›ýNMBßÚòî¿úýÎþÛÙKÏþtBÔòÖ>£÷z­Ñƒ-.nýLƒ‡›ôlúP³K;]Ø}÷Nõ‡ßzæ­ýκû½…gõé>ᘛT>#ýu­ß©zl}ñôÇ= ÝMëe+šlºžVŸo;¢ñ£=ÿsà“-pÆ5éþfiÀúõO\{; ÐÏ~ñìÏV½({ÿ°õNÍg”ÎöAúöÐ}ûöoÝ­ÉÁö¨ÿ-½µè˜¿ïþvin‹„y®zÌá~q}ÖÎÚ鶸ùŒRØ8¨.n2·ñÅ †­¾j¶ùÍÖ+üâ¬ûïï7·4·EÂ<«"ÕN³c;µè¶¸Ô¶Bv;å¾ô’õúŸþçÖü÷N·üÌÇÿ®4cà0Ïj§HµÓ®ûö6ݪt¶ÆõÌ“=¯íÒ|·+›?Yóª¾è–/¶Ý¿”ŸGæYíèwÖÝ¢Üóçì´¼Ó¦5¯ÃîüU›òOfœtË€úêZ¿SÝØqFÛÇ›t ã7~c¾Ùú™ÆC*ÿo)Ÿ…~G¿³®Ç~åÓê/ZÞ껞·Ï&5ÿ½³ã‹—Þ?í´ªŸ×ïPwúªGØrzÇ×h¿úÄsîÑu‡ÒŒõ;듸Š €‹x™X1`Å€ªâymzÝÞ±o)l„íŒÎny]“ß…cë8£ùEMºÜöî§u;yѯyhçæ/<6b¿~—'¼¢ï®øl—–'…¿ þæs{KqC$ÌsÕù÷‹ë³vÖÎQÏtì[ÊppIÙ‰¿ÝöêǺóǽӇÿ~ËC½¦ŸÝüˆÓ·¹¡A½úÏÕÿƳæ¿jõìвWJmC$̳Ú)Rí´[±ß-G=Sjqé76Dži8¢ÑÆÛœ}È'¯èqÂE[N¾®gŕͦ¿Ð¹ß±£Æžž)_ùŒú5თ–Ú…yV;Eªþ:~n›™%±q°ÅK›÷®ßíÁ‹¶ü ònÿϽÚêÁúŸ×i«SÚÎúq·¦‡>~ýû?îÖo¯ÿnùLu¿§JmC$̳ÚÑכּñš'v½ºË™_‡“þ¥A~ÅvÎ:õøA½Ø;]Òöð—vÝxÆ{?Õãõ½Þh÷ßVõ·ŒúêV¿SÔ—€ÖïèwÖϸu÷½þrð•pëöÚÈ+Ý·>ë7–õšqõq¿xªÛÉgÜxý¡5 ‰õ;Ô‰~§š8ºâšç:qÞïž8}‡Ï/Ü~Ñv\: ¦å-žox`é¿d´~g}ð¬a°¸€ÞxäGÞx¤êÅ7å©÷ïV [!Ö GÕà£úyýK_wÄ#» ¯n³c/Xñ‡fg4¾¾47DÂkgí\üüöÝJ3nøVòú>Ùcòu}ºWÞ©üï_ïycYÏ#JÿåÑÂ<«"ÕN—ÛFN½øùÒÙ8Øá¥ FÞ1ä냻»ÁS ËzÄãúßµ2üoÕmޝO]Ýxz“Ks+$ŒažÕN‘jçàäªßnóI)lùîítþÆ m¿/×þ÷«ß(Ùkñ©“·þOéÀažÕŽ~g]ŒËê}ùî?jøVƒVõÝê´F Oyé†#†ïÖ®ºÛ‡ã{Oï=;õ+ýX¿£ßëwÔN©õ;;μ´ùÔÙ•­ëQ­®z·r_SU§»tö¢Ò€õ;úõÿ»ÁôúGŸ¶`ÎÁÝ÷©®‹©-OxÕï¬Oàb«½a°¸€–žºôÔ¥§V½à9pÿ‹{Í/…-ƒ§/>ôÉ?·¢×•»Ž¿¢ß»Û ªÉÖFÕ¸47DÂkgíÜZ¯×üÒ €Ox}È+íÕ$ЭüUƒOÞmn«þ¥¶!æYí©v¶|Þe·Ö+ƒÖÿèÿÆþg…ck³tÏßiU“­Êg´Õm=ºî’—ZæYí©vŽ=¹Sç×JaË`‡?î»çVÿýz‹³ùnW6²Fï85ðïítAë3;·küj)oˆ„yV;úu1^ýÜ®»|½98áÝþ½Ý»5é\¾Øï”_•õï nÆ Oîðwýu§ß)v¬ßÑï¬Ã¿ýÝh¯ý‡¼ŽªÕV;w)kX“Ng·7~é³C›ØñínW—r¬ßÑï¬Ï¸ïòaG¶š½úþeÜ›Ï^ÛóÒ€õ;듸î¨]aðF¥S¬kñíŸÑg~iþÕìê7D¾ìzêQe÷M|u…ݦ•~æÙõV¬Ú™rbŸ €“zaßÔäkç_:éåÞ­ÿ÷E×ÿÿïžU:"až]oEÒãåq7M9±t6šæÛl¿Ý_[¥¿ýý?Þ3¸ËäÆ{÷Y~ó/ùŸ¾Óo]ñ›ÏJ-óìz+’‘OßÛk»ÿ”–A«Ï·ÑøÑpTÇl{× ]š×|k£ô7DÂ<»Þô;ëb1f»·þú>Î?äð¾o~ÛÎèëwfýE볚/ÖïPwúbÀúýÎ:|—ÜK;]Ø}÷pT•_÷¨&_[ú¬ßÑï¬ÏøˆŸLlµíÛú`]˜7gÞœysÀ¬ù'‡lÞwniÀl4rÌ^¿ŠܯÏÝ?ß´ì×;L¾¼ÙΧvî8üêí~¸õÙmZ7y ÑÕW©K˜g×[±jgêÒ¾sK3~kÑܹ»¿]“¯ýËÖîϪ*¨T6DÂ<»ÞŠdLJ.í5µ$Þ1w·Gï©xæï†Õwà-Ï>zE©E¹ßñߺ´×Ô¥®·"9é¯v½Ãn\váóÏöz½òQ»ü·¯î0»æßáØÝ}M—‡KyC$̳ëM¿³.Æmݸùmk~Fòf‹?Yj]~G¿#ÖïP:ýÎ*:¦·ô}ä[¼jÑÝ}ÒËUÏN¿C±ûê¢ÜQüuÒí¿Å€õ;Pj>ŸýùìÏg €Y'Jí/€—´=ü¥]7òÃNoµ¾6¼?VuGÞsi«ã›w8þ½î7µ»µêÿzF<ë¾vJ÷/€?õÔ/>S“¯ýôúEÛ >_ó3ªü}ô;Ô…~Ç_£ßùÖÎô[Wüæ³5étvºùº]f_õìô;»ß©.Ê=·Þ‚}w8Î_ëBú àðè>ÖÅÇô†ÓNoXõò*µ÷n6¹á_äáØvؼÅç͇÷Êš{ÿïtñëÛu^ÿSÃû`…¯úóGÆßŒ¾Jm+dõï‰åʬ͵Sºï\ó¿^öÑ£Wì¾WøªFl´qý”Z\Ý{b¹2koí”Î{bõ›6õ²EÛU>¶˜Øç±#®î=±\™µ·vJá=±®˜÷ÂܾñÖçñø};ü±æßá¸W¦5éòU)oˆT÷žX®LýΚ¡»ùú¨^ÚN¯—B/óÝÆRëzô;ú°~Gí”N¿³óÛ“ÞÿíÖ•êÛþp^^ç3¥ëwô;`ýNéTçÉ›NÞtò¦f¦x{lÜcãFmpÁjmè[™¸€¾xö‹g¿x¶êÅ×û‡­wj>£¶ ºÞjRÓsÃQýzÏÁ»ôÿ¯aÛuÆÿ®Ö´ªÿèc7xÖNËWÿUÚwãm¿ñ´‰ð}ô;Ô~§Ø°~G¿³_$yŘñ·Ý[ùØBï³ú¯Ú¶ã‘ÿ=·Úw¬×ïPúbÀúõI\ Å}+Vû‰í'¶ŸXõrüïc§îP6~ÃnœrÛ¿lÿâ׃õaÓù·úÅo÷>£ÇÌ¿¾pÌM»?øîiÇo´g×E¿:ä¡›_ñÙ.-;Oj>¾QŸÕ.IKg+$ÌmÕ# ÷…k²ö×Î3»”/µ¸ãŒ¶7éþ}éN'ÝvÁ{ÜùLïÿ<úôO:ï´ùÙÍ8}›*ß~ðÉ»ÍmÕ¿Ôþö7Ì­Ú)jíì6õžûžÙ¥6ª¾³s»Æ¯–æ†H˜[µ£ßY×ã*ÞùitöšuÙ>ÜñÊîνÿ€ÇwºxØÄ.oý¿ <îÿu{¹];ýu­ß)j¬ßÑï¬ó±þô-Ê·h½q¿ïï“T>¶­ ¼ãòî—žý鄨ׯþhÆÕÝ>:kÏnh}ìnïüuŒ}i§ »ïþõÜÝ੆e¥ëwô;`ýNm!®½ŠúV&.¬Ñ3GϽŠyx»ñ±#÷è±a7ÞÛí„ïùûð²f5/ªWN?ò‡»ÝÚþÍÎh|}åÏï7¬cûVç—†H˜ÛªGî ×dí¯yOìÑ£Ôà…ó§Ö÷Í­NkÞ¹á)«¯ í[m{d³Æo-š;w÷·K-s«vŠZ;;׿mÿyO”Ú A‡s®ÉoŸ†Sšo¾Õ±;\{ØE5ù³Õm=ºî’÷Üñ²ßÿì­ð™ÊOÕïPwúâÀúõO\»;ô­L\X †-¶`XÕËtÎ&ƒßì™”Î3â¯üÇ.çw~¦ÿvmwÝêâðÞÀaÜëvÿm1aò-{]Û}ö—]O=ªì¾o¼ Ý©[.kú½G4ØpÚi'öx´ÃE¥pFan«Îy¸/\“µ¿v&Ìè™”Z\yä¸/:®ÝðùÖ{5~²é/›ôips¯¬ëSͼú¹Ó¦uéý¯…Ùή*µè7ŒanÕNQk§ûسߚ0£ÔÞ7÷ëß&WŽ<õâ›¶¹ÃOwùŸ†ÿÞrÇ/5<½Ù%[Þ»åÅÝâÞÃÛŸ{À6Çüiç·'½ÿÛ­KíøÃæVíµvŽøÔóßmõe>ÿl¯×KyC$Ì­ÚÑï¬Ï1ü¥ïˆ1Û¸õŒm~Ó¼Mã›ÌmØ¥Á°V¶<¤Ù•‡=Üù«6åá6•{¥R; ýŽ~G¬ßQ;¥ßï„£ÚáWc—Þ~ûÖíµÿWšžÒá‡_hðp“žM ïøÛ¹ß±£Æž´Ûá?{êéV•Ï¥yïÎI¥ëwô;`ýNm!.}u'ô­L\X£+FWŒ®zÉî?ªã ­-M„ÕomT÷¿¥¹!æ¶êœ‡ûÂ5Yûkg÷}Z=Z:[kþùÒÃܪ¢ÖN‹Ù½fï¾Oi¨•·H¾ÛÿnØ1Ì­Ú)jít}e¯ƒ¶œUjï#Uy³cõ› «¿å†ÃܪýΆ}QèÚÒãèwô;¥×–÷ýÕïèwJ³Ó©üùð¢Ðá3-wì}О#K§ÒïèwJy,å®G¿³þ €KSÝ }+×+?XùAËñ-Ç·\Å;Í|ôЉc ,åÍ…Ú5†ù¬:ÏaþÃ}á’,Jí¤' X»¶Jy ó©vêBíì:gÊ-é ¥×®1̧ک µsIçç²^Íkï¶H©a>ÕŽ~ǨßQ;úýEêw:>:ìô3š6O·» çÉÛ¾qLÙ˜÷jþµm–îùÛ!_ÿðÖï”u:ôúR€õ;ú£~§v—¡oeà‚»³âΊ;+ª^гO<«ç4kk óYužÃü»‹U;ºöœf#cma>ÕN]¨î#ξvBWÁíZ{1´g_;¡«Ú© µsd«I ;7¶‘±Ö^ ­Õ¤†«ýŽQ¿ƒ~G¿C‘ú®CFµºêÝp$M†lý³mNÛµËäÆ{¯þ«z/½qçÙSëÿ§aE£èë³Øú¬?ÞX¦ßA¿£ßáÛoXBßê€ nùfË7[¾YÕ‹»ÍÒ&ï7ºgåY£zÚÆvÆgê9h›0ŸUç9Ì¿ë°XµÓrd£{VžU>bÐ6¶3Öh<«|Ä mÂ|ªºP;šoyOË‘ýÛMß·|„øvÆvÓ÷-æSíÔ…Úiv{«î o»j·—ŽéÝÆvÆ»½tLï6a>ÕŽ~ǨßA¿£ß¡HýÎ.çÜñ‹'k¼K«[#„/ïÜ÷«ÛÍ;·ßwÈé5ãêã~ñTç)ÇÝ|Á_]¹Õ»­nÞ'¸_ù´ú‹–ëwÐïèwø¶ÀëŸÐ·&ÀuBY½²zeõª^îåV¾Ë±65Öd sXunÜ»öŠ[;÷NÚåX›k2†9T;u­vzmuå÷Nâ®ÉæPíÔµÚuüŸwû“M5êýŽQ¿ƒ~G¿CQûp ®n<½ÉÇ5ß oô`‹‹[?ÓëW4ãêRxñgýŽ~ǨߩÀë‡Ð÷Û× ‹ïX|Çâ;ª^ú½´>¿ùs+Ÿ5dP[ßz|bÔA}ÂVÛ0箽âÖN÷!ÍŸ[ùDùäA}lm|ëñ‰òɃú„9T;u­vš]ÙéšîCú÷˜~aùdQî·{L¿°|r˜CµS×j§Ý•;ìÑ´÷U'¼tOïílm|ëñ„—îé½]˜Cµ£ß1êwÐïèw(v¿ޤíï÷©7¼wÕ¿ þúï}û¶¿¨sóo<ïÄßîüö¤÷»u)D¿úýŽ~G¿S{ €×¡ïš× -W¶\Ù²Ãk^ëðZÕbˆ;< Ï=68¾íæ­ê|†ysîÒ+zíLÙ¼Ï=68¾íæMíÔåÚé‘ÛwÊæÝo;†yS;u¹vFNšþòv·ÁñmÇ0ojG¿£Ñï ßÑïPwúÊn¿†?]œ}Òwà-Ï>zÅ®s§Ü—^RÝ-õ;èwô;|7àµKè»¶€ë…w-¼ká]ՕǧËO>iày¶9j2†¹ªn&Ã<»ÞêRí,;ð<Û5Ã\©µô{pêüEcź5Ã\©µ\öË¥[õú§mŽšŒa®ÔŽÚÑïèwÐïèwÐïèwÐïèwXwÀkNè».€ë’÷V¾·ò½²%eKÊ–¬â—ëˆÛmû…ÍŽšŒa®Vñž KÊ–”- óìr«KµsòÛ~a³£&c˜+µ£v‚mýìä#lvÔd s¥vÔN0ðÓÿÖvŠÍŽšŒa®ÔŽÚÑïèwÐïèwÐïèwÐïèwXwÀknÞœysæÍú®]à:gYÛem—µ­®xòCËûÞlË£º1ÌOu³æÖ5VWkgê ¾7Ûò¨n ó£vÔNU;ÞrÉÓSÙò¨n ó£vÔNU'Ý8£¬ë-¶<ªÃü¨µ£ßÑï ßÑï ßÑï ßÑï°® €×Ü—C¿úåP¡ïÚ%®£&Ï™œïê·BÔúýúýúýúý뎘Ò$ækON{rÚ“ÓªûE^¬.¼WV8Çê^-såš¡fµÓôúï×…÷Ê çXÝ  ©¾mí„« ï•αº@S;|ÛÚ /VÞ++œcu/€¦vÐïèwÐïèwÐïèwÐïèwX?À”&0ß0wã¹Ïݸþj冖÷½¹x[!á¼Vîa~\'|×Ú™:¨ïÍÅÛ ç¥vXwµ³ã-—<=uPñ¶BÂy©Ö]íœt㌲®·o+$œ—ÚA¿£ßA¿£ßA¿£ßA¿£ß¡€)M`VaõÏ´ .±s»m¿øl‹“_8·ön‚„ãç²úóõŒ*Ö^íœ|Ķ_|¶ÅSÇ œ[{7AÂñ‡sQ;¬ŸÚÙfðÐÏN>¢ß;ÓÎxê˜Zü®WïL;ã©c¹¨ÖOí |àô¿µryÏ?Ôß©eíÝ ÇÎEí ßÑï ßÑï ßÑï vô;”0¥ILµVÿ¾ •ÅÐçžÚµ޹&gç}X—µ3eó>÷Ô®­pÌj‡ [;=òqûNÙ¼vm…„cV;lØÚ9iúËÛý½vm…„cV;èwô;èwô;èwô;¨ýŽë¡4 €)M`þÃ+†W ï?¦ÿ˜þcVÿK¨÷‚Öç7®üàÃÊw9våìQû êUB› ³Gí7¨W8¶pœ«?—p¾áÜ]¬ûÚé>¤ùsåß;i—cWÎ.Ÿ0¨W m‚Ì.Ÿ0¨W8¶pœj‡Ò©fWvº¦û^[]ùÀ½“úwŸ~Nù„Úé>ýœò áØÂqªJ§vÚ]¹ÃM{:þÏ»ýéª#_šÔ»s m‚ùÒ¤Þñ…ãT;èwô;èwô;èwô; ßq ”20¥IL|Õí«n_u›uBמÓVÎ/Ÿ4¨÷Ø™_>iPïp áxÔ¥_;šoyOË‘ÝGœ}í„®ýw˜>¶|ÒØÙaúØòIáÂñ¨J¿všÝÞª{ÃÛŽl5©açÆW÷ÒÔÞÛm€Mã^šÚ{»p áxÔúýúýjG¿úµS[€)M`¾µem—µ]Ö¶lIÙ’²%õklÿQohõèœM¿Ù3Yþ‡ãNÝãùµ»ý¾gøþágÕüØÂ¹„órÿRzµ³û>­³É„=“å˜ÿæϯÝíð=Ã÷?KíPŒÚi1»×ìÝ÷é>öì·&ÌØyòÄÏsín„ï¾øYj‡bÔN×Wö:hËYGž2iRçnc?ÏçíxÌÚÝþß3|ÿð³ÔúýúýjG¿úµS{ €)M`¾«+W¬\±ð®…w-¼«Ãk^ëðZýï¤÷[ïÔ|ÆymzÝޱ ß¾Û#îq¯ùñíŸÑg~þÉ!›÷þ>nn¾ö»ýÜpÌáøÃ¹¸K©mµÓmqóçµ9Ꙏ}§åÄ>óóO¦.í;7ü;|>Ü&Ü>|­Ú¡nÖN³c;µè¶¸ÝŠýn9ê™.·œzñóÛ>ï²[ëõxyÜMSNÜñ¡K{M]þ>nn¾VíP7k§]÷ílºUÿ??·Í̃“«~»Í'GžÜ©ók#Ÿ¾·×vÿ9é¯v½?ü;|>Ü&Ü>|­ÚA¿£ßAíèw@¿úµS<`J“˜µ¡åÊ–+[.¾cñ‹ï(«WV¯¬^ý’Ž-g8fwjGí vÔjGí€Úµ£vP;jµ£vønÀ”&0ëÄòÍ–o¶|³;+³¢åø–ã[Ž_ÿ¿JÃÏ ÇŽÇý‚ÚQ;¨µjÔ¨µƒÚQ;¨µÃÚ"¦4 €YO*FWŒ®½`Ø‚a †ž9zæè™í'¶ŸØ~âšÿ ß'|ÏðýÃÏ2稵ƒÚQ; v@í€ÚQ;¨µj¨kÀ”¨Å×/¾~ñõùgùgùgáßæÔ¨P; v@í¨P; vVO P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„¨Å_¿øúÅ×çŸåŸåŸ…›k6¬Ùê20PB*FWŒ®½`Ø‚a †ž9zæè™í'¶ŸØ~bý5¾Oøžáû‡Ÿeά٬٬يD l0Ë7[¾ÙòÍ³âΊ–ã[Žo9¾þz~n8†p<îk6k6k6¨‰ªµ°p“…›,ÜÄ̰a €õ¥åÊ–+[.¾cñ‹ï(«WV¯¬^ý’Ž-g8fw`ÍfÍ`ÍfÍU €)M``]Z±rÅÊ ïZx×»:¼Öᵯ}·Åb³c;µè¶¸ÝŠýn9ê™.·œzñóÛ>ï²[ëõxyÜMSNÜñ¡K{M]þ>nn¾ö»ýÜpÌáøÃ¹¸Kk6k6k6k6À”&0°N,k»¬í²¶eKÊ–”-©ùB°Åì^³wß§ûسߚ0cçÉÿ=ÿÍþý§O//_[cøžáû‡Ÿõ-ž±¸¤lIÙ’p^î_ÀšÍš ÀšÍš À”&0°Ö|Õí«n_u›âìk'tí¿Ãô±å“Öî2´FãÓÇ–O Çާ&GÎ1œ¯û°f³f°f³f£nSšÀÀZP1¼bxÅðþcúé?æÿx‘™+;]Ó}H¯­®|àÞIý»O?§|ÂXŒV7vŸ~Nù„plá8W.á|ù»k6k6k6k6ê0¥I ¬‘¥¯,}eé+5y6_|ܾS6/¡eh ÆpÌ59»0®ÀšÍš ÀšÍšºCLißѓӞœöä´Õ/×¶<ô³“è÷δ3ž:¦v-I+áøÃ¹¬þ|ܸ6k6k6k6k6ê0¥I |ks7ž»ñÜW¿DÛñ–Kžž:¨ö.F«Ãy­þÜÃü¸Nk6k6k6k6ŠMLißÂêŸØ`f“ÆM¯ß¹ÁmCæ%Å[’VÃ9†óõ,EÀšÍš ÀšÍšºILi5²ú÷ iv~§c»·Ùuö” éÑÅ^’VÃù†s÷ž%€5›5€5›5u˜Ò$þÃ+†W _ý’´ßéw¿¹ðøº³$ýÆ;—œ~÷› _ýò4Ì¡k °f³f¬Ù¬Ù¬Ù(0¥I Të«n_uûª[ÿ1ýÇôSÝ ÑÔµg#®þYŠÕ½XM˜Ã0Ÿ®+ÀšÍš °f³f³f£À”&0P­És&Ï™<§ºgÛÕ…÷ ùnïYRÝŒ…ùt]ÖlÖl€5›5›5Å ^[æÍ™7gÞד×ͺnÖu³Vì³bŸû˜™ïF ¬Â²¶ËÚ.k[ÝkÇ[.yzê ËÐêÆ0?ÕÍ^˜[×`ÍfÍX³Y³Y³QÛ €×Ü—C¿úåÐê*]üÝ€ozoå{+ß+[R¶¤lIÕ‡Úmýìä#,=k2†¹ª:‡anÃ<»Ük6k6ÀšÍhÍFí%^s•ÿöwõ„Á5'¾aá] ïZxWu¯ýœ:ÑX‹ÎšŒa®ª›É0Ï®7ÀšÍš °f3Z³Q{ €×\tC¸[¿Æ„Á«'þWË•-W¶ìðZ‡×:¼VõÁ´G>nß)›[n~Û1Ì[Õù óæÜ¥X³Y³ÖlFk6j#ðÚ% ^[ÀÀ×ß±øŽÅwT}èlve§kºéßcú…å“-4¿õØcú…å“ÃVÛ0ç®=ÀšÍš °f3Z³Q €×aðš_+«WV¯¬^Õ‡Ë^[]ùÀ½“,1×d s¸Š÷)©WV¯¬žk°f³f¬ÙŒÖlÔFàõCüm €•Ë7[¾Ùòͪ>86j¾å=-Göo7}ßò—k4¶›¾oùˆ0ŸUç9Ì¿ë°f³f¬ÙŒÖlÔ.àõO\``åwVÜYQõ±ûˆ³¯ÐÕ²rma>«Îs˜×!`ÍfÍX³­Ù¨]À–0¸:`¨Û>XùÁÊZŽo9¾åøª‚»Î™rKz‚åÚÃ|Vç0ÿá¾pIÖlÖl€5›ÑšÚB\:„Á• €¡N«]1ºbtÕ‡¼³{ÍÞ}KÉu1†¹­:çá¾pMÖlÖl€5›ÑšÚB\š„Á`¨Ó [0lÁ°U¼(ÍØ³ßš0Ã"r¼@ÍØ³ßš0£êœ‡ûÂ5 X³Y³ÖlFk6j pé«›a°ê´Ñ3GÏ=³êCÛÎõoÛÞ‘ëb s[uÎÃ}ᚬ٬Ùk6£5µ…¸v©;a°ê´öÛOl?±êÃÙnSï¹ï™]Öçr­õ±»u¼søéMf·Í:þuõ·oÏû#ïøè°ÓÏhZíWÕŸ¾Eù:l¹°åíáö­ïÀ~¬ÿ…i˜Ûªsî ×$`ÍfÍX³Y³Y³Q[€k¯b‡Á`¨£¾xö‹g¿x¶êƒW³c;µè¶xý/×¶›|ò‹—Zõxª»}óI]þ¶ãýßx?•–;þµßª»ýN_÷»_õ¨|û®íNpU× õüÄ0ÏUÏ7Ü/®OÀšÍš °f³f³f£ô €‹¡xa°êêÃÙ€V ¨ú€ÕnÅ~·õÌú_¨õ~ëŠß|V“…é®Ãïº<ù^Õ[6èØèÒÆW÷U]:œ0p\£o¼üN×Ûf<Ö}C-LÃk6k6ÀšÍšÍšÒ'.à£z!Â`0ÔQo<òÆ#o’­' ÜøÍ«Þf‡‹Çî>éåp›¦ÿ¯Ýòm¬wƒ§–­~9ÛúæÝüIøßæ'uÚ㟫æãºÃk6k6ÀšÍšÍšÒ'.¶Ú €¡ŽZzêÒS—žZõiûÁç]vk½RX˜6^Ôúö½ªÞf›³9ãä_¿ŸÇ^ûO:fËÿãùŒá]I†nux«!á·)?ô'§žºa¦až«y¸_\Ÿ€5›5`ÍfÍfÍFé×µ+ Þ¨tJ(=^wÓ”7Ôr­G<®ÿ]+W¿Ðܪ×?Øypø|÷KÏþtBôw(¹¨×ÿô?÷ïJòîõÇþêýÊ·éù½Ëúý¬ã†:ǯÏôåq7M9ÑõX³Y³ÖlÖlÖl@±Í›3oμ9``ƒÙñ¡K{M]º¡–ký>›vïS¿h°¬É¢fgV]˜ö;ëî÷žUùó;ß0ñ™ù3{lzÁ'wþ8|¦ÁÕ§7ù¸òWuzŸÆ=>ÓpqóŸ·hQu±»þÇ0Ï®7ÀšÍš °f³f³fŠíóÙŸÏþ|¶Ø`6ì3«¾@M›ó÷¸óÀ_|½˜|ñÇw÷ ŸozJ‡v~!ü»_ß.Î>©ÿLÃ6®ºœmýxÿöûú]XÚ Úã{,/……©g&ÖlÖl€5›5›5PÔ¡¿¯îÇ õ1½áô†ÓV}Ú°ïMòõs _?ñ¦K¿ާÑ_Zþ¸ÍuáýE:Õ~ë™·†Ï·=èõ߬¼Ä¬z._¿+É•[½Ûúëç-v}Ú^ל°aÏnõïMâÊôáÇ>|X³Y³ùðáÇ>¬Ù¬Ù¬Ù|Ô–ª×ÞäM'o:yS3S¼ÇÆ=6î±q£6µñ¨ký†Ûס÷6¬7yã‘7©ú`Ôå¶‘S/~~Ã.Úú,¿ù—üOÕckñâNÛíþê–˜•oÙò{;=¹ÇÌÞͯÿðþûÿ«Ô{ë?·óc“ŽZ0²¦až«ž£+°f³f¬Ù¬Ù¬Ù¨-ª{ò™)†Ü^7ëºY×ͪyèn¿þCßÊÀPW¶¬°b@Õ¦v+ö»å¨gJaéVõØ<ܤgӇ¿û,¸¹ñÿñb/·]ôÀ]{U½eÐüƒ®›õj_ /JÆ0Ϧ€5›5`ÍfÍfÍFí%.à£z­ }+Cõų_<ûųU¤šÛ©E·Å¥¶0mÒnëu˜þÝxrëÃÚ]Xu‰Ùo»GäÔÿOÊFQÕóêxøá{Ÿ6­t¦až-Lk6k6ÀšÍšÍšÚK\ Å}+CÖ~bû‰í'V}ØÚmê=÷=³Ë†]ºõØô‚OîüqÕcksßžÛt\uKÌêˆ{Þzù¿~~d),IÃÜV=Âp_¸&k6k6ÀšÍšÍšÚB\{/ô­L uÚ虣gŽžYõ!lçú·í?ï‰ »€ë7mêe‹¶kpuãéM>þÆ»§¼~âM—~¿æ/hӨÖ [Þ^:ÏI s[õ8Ã}ᚬ٬Ùk6k6k6j píRìз20Ôi †-¶`XÕ‡³îcÏ~kÂŒÒ|‡’Þ½þØ_½_íóÿ9îù)㙌K÷üíV¥³0 s[õ¼Â}ᚬ٬Ùk6k6k6j pé«;¡oe`¨Ó*FWŒ®]õ¡­Åì^³wß§–qÅÃÜVóp_¸&k6k6ÀšÍhÍFm!.Mu3ô­L uÛ+?XùAËñ-Ç·_õÁn×9SnIO°”\[c˜Ïªóæ?Ü.IÀšÍš °f3Z³Q[€K‡Ð·20°òΊ;+î¬XÅ ÔŒ8ûÚ ]-(×Ú‹ÒŒ8ûÚ ]«Îs˜×!`ÍfÍX³­Ù¨]À–з:``åòÍ–o¶|³ª‚šoyOË‘ýÛMß·|„eåí¦ï[>"ÌgÕyóï:¬Ù¬Ùk6£5µ‹xýúÖ„øZY½²zeõª>,öÚêÊîdq¹&c˜ÃªsæÜµX³Y³ÖlFk6j#ðú!ôý¶ÀÀ×ß±øŽÅwT}ˆlve§kºéßcú…å“-1¿õØcú…å“ÃVÛ0ç®=ÀšÍš °f3Z³Q €×¡ïšÿ«åÊ–+[vx­Ãk^«ú Ù#·ï”Í-4¿íæ­ê|†ysîÒ¬Ù¬Ùk6£5µ‘xíú®-`àÞµð®…wU÷0ÚïÁ©óµÜ¬É檺™ óìz¬Ù¬Ùk6£5µ—xÍ }×0ðMï­|oå{eKÊ–”-©úºÍ࡟|„EgMÆ0W«x?’%eKÊ–„yv¹ÖlÖl€5›ÑšÚK¼ææÍ™7gÞ¡ïÚ%VaYÛem—µ­îAvÇ[.yzê KÏêÆ0?ÕÍ^˜[×`ÍfÍX³Y³Y³QÛ €×Ü—C¿úåP¡ïÚ%ª5yÎä9“«}ÞÍÎ n2/± ­<†9©nÆÂ|º®k6k6ÀšÍšÍšb¯-•ÿXè»æÀ@µ¾êöU·¯ºõÓLÿ1U5˜Ù¤qÓëw=eBz´%i˜‡0'Uç*Ìa˜O×`ÍfÍX³Y³Y³Q `J“ø?T ¯^1¼ºgÛ5;¿Ó±ÝÛô;ýî7_7—¤áÜÃÜ&Ü>|íwû¹á˜Ãñ‡sq—ÖlÖlÖlÖl€)M``}i¹²åÊ–‹ïX|Çâ;Êê•Õ+«W¿$…c ÇŽÙ]X³Y³X³Y³AU`J“Ø`–o¶|³å›ÝYqgÅ-Ç·ßrüú_††ŸŽ!ûÀš ÀšÍš jBLi%¤btÅèŠÑ †-¶`Øè™£gŽžÙ~bû‰í'®ù4|Ÿð=Ã÷?ËœX³X³Y³‰¨Å_¿øúÅ×çŸåŸåŸ…›k6¬Ùê20@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„  À!(0@A€ B P`€‚„€U¨_ÅÂMn²p3¥L À*€ 6° `¨À¬‚j#0« €ÚH À*€ 6° `¨À¬‚j#0« €ÚH À*€ 6° `¨À¬‚j#0« €ÚH À*€×–ysæÍ™7'Ìáu³®›uݬû¬ØgÅ>f€uA À*€×Ü—C¿úåÐúÕ°.€Xðš«ü·¿«' `m° à5ÝîÖ¯1a0kB À*€×.a0뇀U¯;Â`Ö0« ^?„Á¬]`VA¼þ ƒXs`VA¼a ƒønÀ¬‚¸tƒ¨90« .MÂ`VO À*€KŸ0€ªÀ¬‚¸v€Xpí% ¨ËÀ¬‚¸„Áu€U0 .° àb•€U×Â`€"µ^}`™7gÞœys¬FJ‡¨õl¾À†òùìÏg>Ûj t€ZÏæ;ø `0Pë…÷¤ôáÇk÷£jÔ7yÓÉ›NÞÔÌïã±q{lܨGm7Ÿ›ÏÍÍÍÍÉÉÉÎÎÎÌÌÌçäsò9ù¯ó_ç¿ÎÈÈÈ•ÿ*ÿU>+Ÿ•ÏÊ™ÿ2ÿe>#Ÿ‘ÏÈïËïËïËïÍïÍïÍžÿ<ÿy~O~O~Oþ³ügùÏò©ùÔ|j~w~w~w>%Ÿ’OÉïÊïÊïÊïÌïÌïÌïÈïÈïÈ'å“òIùÄ|b>1ÿIþ“ü'ù­ù­ù­ùÍùÍùÍùMùMùMùùùù ù ù ùø||>>¿.¿.¿.¿6¿6¿6¿:¿:¿:¿*¿*¿*¿"¿"¿"¿<¿<¿<¿4¿4¿4¿$¿$¿$—ËÇååååäääcó±ùØ|L>&“ÎGç£ósósósósòsòsò³ó³ó³ó3ó3ó3ó3ò3ò3òÓòÓòÓòQù¨|T~J~J~J~r~r~r~b~b~b>2™ÌÏÏÏËËËÉÉÉÎÎÎÌÌÌÈÈÈGä#òù°|X>,?Ï>Ï>Ï>Ë>Ë>Ë>Í>Í>Íþý;ûwöqöqöqö¯ì_Ù¿²³³³²²²ÙŠlEöÏìŸÙ?³÷²÷²÷²dÿÈþ‘½›½›½›-Ï–g˳¿gÏþžý-û[ö·ì­ì­ì­ìÍìÍìÍlY¶,[–ý%ûKö—ìõìõìõìÏÙŸ³?g¯f¯f¯f/g/g/g/e/e/e/f/f/f/d/d/dÌþ˜ý1[š-Í–fÏgÏgÏgK²%Ù’ìwÙï²ßeåYyVž=›=›=›===-Îg‹³EÙ¢lQ¶0[˜-Ì‚4K³4‹³8‹³(‹²({"{"{"{<{<{<[-Èdó³ùÙül^6/›—ÍÍæfs³G³G³G³G²G²G²‡³‡³‡³³³³9ÙœlNöëì×Ù¯³²²²_e¿Ê~•ÍÊfe³²_f¿Ì~™ÍÈfd3²û²û²û²{³{³{³Ÿg?Ï~žÝ“ݓݓM˦eÓ²©ÙÔljöÓì§ÙO³)Ù”lJ69›œMÎîÌîÌîÌnÏnÏnÏ&e“²IÙÄlb61ûIö“ì'٭٭٭ÙÍÙÍÙÍÙMÙMÙMÙÙÙÙ Ù Ù ÙõÙõÙõÙuÙuÙuÙ5Ù5Ù5ÙÕÙÕÙÕٕٕٕÙÙÙÙeÙeÙe٥٥٥ÙÅÙÅÙÅÙ¸l\6.»0»0»0» » » ;?;?;?“ÉÆdçeçeçeçfçfçfgggggggegegegfgfgf§g§g§g§e§e§e§f§f§f§d§d§d'e'e'e'f'f'f'd'd'dÇgÇgÇgÇfÇfÇfÇdÇdÇdGeGeGeGfGfGf#²Ùˆlx6<žžžž–––’’’ ͆fC³!ÙlHvPvPvPv@v@v@¶¶¶68œ ÎöÍöÍöÍöÎöÎöÎeƒ²AYYV–•e²Ù€l¯l¯l¯llll÷l÷l÷l·l·l·¬_Ö/ë—í’í’í’íœíœíœõÉúd}²ÞYï¬wÖ+ë•õÊzf=³žY¬GÖ#Û!Û!Û!ëžuϺgݲnY·l»l»l»¬KÖ%ë’m›m›m›uÊ:e²m²m²m²Y‡¬CÖ.k—µËÚfm³¶Y›¬MÖ&kµÎZg-³–YˬEÖ"k‘m™m™m™5ÏšgͳfY³¬YÖ$k’5Ég³ÆYìaÖ0k5Èd[d[d[d›g›g›g?Ê~”ý(ûaöÃì‡ÙfÙfÙfÙ²d?È6Í6Í6;Ÿ}?û~¶I¶I¶I¶q¶q¶q¶Q¶Q¶Qº2]™®L¿L¿L¿Lÿ›þ7ýoúyúyúyúYúYúYúiúiúiúïôßé¿ÓÓÓÓ¥ÿJÿ•~˜~˜~˜~~~¾Ÿ¾Ÿ¾Ÿþ3ýgúÏ´"­H+Ò¤ÿHÿ‘¾“¾“¾“.O—§ËÓ·Ó·Ó·Ó¿¥Kÿ–¾•¾•¾•¾™¾™¾™.K—¥ËÒ¿¤Iÿ’¾ž¾ž¾žþ9ýsúçôÕôÕôÕôåôåôåô¥ô¥ô¥ôÅôÅôÅô…ô…ô…ôéÒ?¤KÓ¥éÒô÷éïÓß§KÒ%é’ô¹ô¹ô¹´<-OËÓgÒgÒgÒ§Ó§Ó§Ó§Ò§Ò§ÒEé¢tQX„‡4I“4Iã4NãôÉôÉôÉô‰ô‰ô‰ô·éoÓߦ Òé‚ô±ô±ô±t^:/—þ&ýMú›ôÑôÑôÑôáôáôáô¡ô¡ô¡tN:'“ÎNg§³ÓÒÒÒûÓûÓûÓYé¬tV:3™ÎLg¤3Òé/Ò_¤¿HïMïMïM§§ÓÓééÏÓŸ§?O–þ,ýY:-–NKïNïNïNšþ4ýizWzWzW:9œNNïHïHïHoOoOoO'¦Ó‰émémémé­é­é­é-é-é-éMéMéMé„tB:!½!½!½!ŸŽOǧץץץצצצW§W§W§W¥W¥W¥W¤W¤W¤—§—§—§—¦—¦—¦—¤—¤—¤ãÒqé¸ô¢ô¢ô¢ô‚ô‚ô‚tl:6›ŽIǤcÒÑéèttznznznzNzNzNzVzVzVzfzfzfzzzzzzzZzZzZzjzjzjzJzJzJzRzRzRzbzbzbzBzBzBz|z|z|zlzlzlzLzLzLzTzTzTzdzdzd:"‘ŽH‡§ÃÓáéáéáéáéaéaéaé!é!é!éÐth:4’I‡¤¥¥¥¤¤¤û§û§û§ƒÓÁéàtßtßtßtïtïtïtP:(”L¦Óé€t@ºgºgºgºGºGºGº{º{º{º[º[º[Ú/í—öKwIwIwIwNwNwNû¤}Ò>iï´wÚ;í•öJ{¥=ÓžiÏ´GÚ#í‘îîîvO»§ÝÓni·´[º]º]º]Ú%í’vI·M·M·M;¥ÒNé6é6é6i‡´CÚ!m—¶KÛ¥mÓ¶iÛ´MÚ&m“¶N[§­Ó–iË´eÚ"m‘¶H·L·L·L›§ÍÓæiÓ´iÚ4m’6I›¤ÒFi£´aÚ0m˜ÖOë§õÓ-Ò-Ò-Ò§?Nœþ(ýQú£ôÿ¥ÿ/ýéféféféÿ¤ÿ“þOºiºiºiú½ô{é÷ÒMÒMÒMÒzi½´^ºQºQºQòUòUòUòeòeòeòEòEòEòyòyòyòŸä?É’O“O“O“O’O’O’“““’’’“““ÉŠdEò~ò~ò~ò^ò^ò^R‘T$ɻɻɻÉ;É;É;Éß“¿'OÞNÞNÞNÞJÞJÞJþšü5ùk²,Y–,KÞHÞHÞH^O^O^O^K^K^K^M^M^M^I^I^I^J^J^Jþ”ü)ùSòBòBòBòÇäÉ“¥ÉÒdiò|ò|ò|²$Y’,I~—ü.ù]Rž”'åɳɳɳÉÓÉÓÉÓÉâdq²8Y”,J% “…ÉÂ$K²$ IœÄIœDI”DÉÉÉÉãÉãÉãÉ‚dA² ™ŸÌOæ'ó’yɼdn27™›<š<š<š<’<’<’<”<”<”<˜<˜<˜ÌNf'³“_'¿N~ÜŸÜŸÜŸü*ùUò«df23™™ü2ùeòËäÉ/’_$÷%÷%÷%Ó“éÉôäçÉÏ“Ÿ'?K~–ü,™–LK¦%w'w'w'?M~šü4¹+¹+¹+™œLN&'w$w$w$·'·'·'“‰ÉÄä¶ä¶ä¶äÖäÖäÖä–ä–ä–ä¦ä¦ä¦dB2!™ÜÜÜŒOÆ'ã“ë’ë’ë’k“k“k“«“«“«“«’«’«’+’+’+’˓˓˓K“K“K“K’K’K’qɸd\rQrQrQrArArA26›ŒMÆ$c’1Éèdt2:9797979'9'9'9+9+9+9393939=9=9=9-9-9-9595959%9%9%9)9)9)9191919!9!9!9>9>9>9696969&9&9&9*9*9*9"9"9"‘ŒHF$Ã’aɰäðäðäðäÐäÐäÐääääàäàäàdH2$’˜˜˜ì—ì—ì— N'ƒ“}’}’}’½“½“½“²¤,)K&“É^É^É^ɞɞɞÉîÉîÉîIÿ¤Ò?é—ôKú%»&»&»&;';';'}“¾IߤwÒ;éì”ì”ì”ôLz&=““““’’’í“í“í“nI·¤[Ò5éštMº$]’.Iç¤sÒ9é”tJ:%“ŽIǤCÒ!é´OÚ'í“¶IÛ¤m²u²u²uÒ:i´NZ%­’VI‹¤EÒ"Ù*Ù*Ù*iž4Oš'Í’fI³¤IÒ$i’4N'“†IäaÒ i4H¶H¶H¶H6O6O6O~”ü(ùQòÃä‡É“Í’Í’Í’$?H~lšlšlš|?ù~òýd“d“d“dãdãdãd£d£d£xe¼2^ÿ7þoüßøóøóøóø³ø³ø³øÓøÓøÓø“ø“ø“øãøãøãø£ø£ø£øÃøÃøÃxE¼"^¿¿¿¿¿¿WÄqEünününüNüNüNü÷øïñßã·ã·ã·ã·â·â·â¿Æÿ/‹—ÅËâ7â7â7â×ã×ã×ã×â×â×âWãWãWãWâWâWâ—â—â—â?ÅŠÿ¿¿¿ÿ1þcüÇxi¼4^???/‰—ÄKâßÅ¿‹—Çåqyülülülütütüt¼8^/ŽÅ‹âEñÂxa¼0,ÿïý8ˆâ(Žâ'â'â'âÇãÇãÇãñ‚xA%>%>%>9>9>9>1>1>1ŒGÆÇÇÇÇÇÇÇÅÇÅÇÅÇÄÇÄÇÄGÇGÇGÇGÆGÆGÆGÄGÄGÄÃãáñðxX<,‡ÆCã!ñxH|P|P|P|@|@|@¼¼¼<8Ž÷÷÷÷Ž÷Ž÷ŽŃâAñÀx`<0ˆÄ{Æ{Æ{Æ{Ä{Ä{Äýãþqÿx·x·x·x×x×x×x—x—x—¸oÜ7î÷‰ûÄ}ââââ^q¯¸W¼c¼c¼cÜ#î÷ˆ···»ÇÝãîq׸kÜ5Þ.Þ.Þ.îwŽ;ÇâNq§¸cÜ1îwˆ;Äâöqû¸}Ü6n··Ž·Ž·Ž[Ç­ãÖq«¸UÜ*n·ˆ[Ä[Å[Å[ÅÍãæqó¸YÜ,n7‰›ÄMâÆqã¸qÜ0n7ŒÄ âññññæñæñæñâÅ?Šÿ0þa¼Y¼Y¼YüƒøñâMãMãMãïÇß¿ooo׋ëÅõââ⢯¢¯¢¯¢/£/£/£/¢/¢/¢Ï£Ï£Ï£ÿDÿ‰þ}}}}}}}}}}}}}}}­ˆVD+¢÷£÷£÷£÷¢÷¢÷¢Š¨"ªˆÞÞÞÞ‰Þ‰Þ‰þý=ú{ôvôvôvôVôVôVô×è¯Ñ_£eѲhYô—è/Ñ_¢×£×£×£?GŽþ½½½½½½½½½½½½½½½ý!úCô‡hi´4Zý>ú}ôûhI´$Z===•GåQyôLôLôLôtôtôtôTôTôT´(Z- ›¡Ý¿ä£àÉèÉèÉèñèñèñè·Ño£ßFó£ùÑüè±è±è±hn47šý&úMô›è‘è‘è‘èáèáèáèÁèÁèÁhN4'šý:úuôëèèèèWѯ¢_E³¢YѬè—Ñ/£_F3¢ÑŒè¾è¾è¾hz4=šý<úyôóègÑÏ¢ŸEÓ¢iÑ´èîèîèîè§ÑO£ŸFwEwEwE“£ÉÑäèŽèŽèŽèöèöèöhb41šÝÝÝÝÝÝÝÝÝÝÝÝMˆ&D¢¢¢¢ñÑøh|t]t]t]tMtMtMtutututetetetEtEtEtYtYtYtitititqtqtq4.‹.Œ.Œ.Œ.ˆ.ˆ.ˆÎÎÎÆDc¢1ÑyÑyÑyѹѹѹÑÙÑÙÑÙÑYÑYÑYÑÑÑÑéÑéÑéѨhT4*:%:%:%:9:9:9:1:1:1ŒFFÇGÇGÇGÇEÇEÇEÇDÇDÇDGGGGGGGFGFGFGDGDGDãáÑðhX4, †FC£ƒ£ƒ£ƒ£ƒ¢ƒ¢ƒ¢¢¢¢ýÿ¿öî;*Šóýû¸¦'ßD± bWTE¬`ï5ö†½÷c‰½`¯ˆ±Wì]±î¬]ÅŠbEQ± Tê>ÜùCžuɶÙáýÚsæxÌîì=×ÜWæą̃›¨›¨©©©ªªªë«ë«ë«ë©ë©ë©ë¨ë¨ë¨k«k«k«kªkªkªk¨k¨k¨=ÕžjOµ‡ÚCí¡®ª®ª®ª®¢®¢®¢®¤®¤®¤®¨®¨®¨® ® ® .¯.¯.¯.§.§.§vQ»¨]ÔeÕeÕeÕeÔeÔeÔ¥Õ¥Õ¥ÕNj'µ“º¤º¤º¤º¸º¸º¸º˜º˜º˜ºˆºˆºˆº°º°º°º º º ÚQí¨vT;¨Ôj{µ½Ú^OOOGGG[[[SSSCCC]]]m«¶UÛªmÔ6juVuVuVõoêßÔ¿©UÿªþUý‹úõ/êŸÕ?«Vÿ¨þQý£úõêÔß©¿S§þFýúufufufI#i$”,%KÉR¢”(%J R‚” ÅIqRœôEú"}‘>IŸ¤OR¬+ÅJ¤Òé½ô^z/ÅH1RŒ-EKÑR”%EI¯¥×Òk)RŠ”"¥—ÒKé¥ôBz!½"¤)Bz&=“žIO¤'Ò)\ —Â¥GÒ#é‘&…IaÒéô@º/Ý—îKw¥»Ò]éŽtGº#Ý–nK·¥)D ‘nJ7¥›Òuéºt]º&]“®IW¤+Ò)X –‚¥KÒ%é’$IAR (JR€ —ÎKç¥sÒ9éœtF:#‘NI§¤SÒIé¤tRT’JRIÇ¥ãÒqé˜tL:&‘ŽHG¤ÃÒaé°tH:$’J¥ƒÒ~i¿´_Ú'í“öI{¤=Òi·´[Ú-í”vJ;¥íÒvi»´MÚ&m“¶H[¤-’Ÿä'ùI›¤MÒ&i£´QÚ(­—ÖKë¥uÒ:i´FZ#­‘VK«¥ÕÒJi¥´RZ!­VHË¥åÒri™´LZ&ùH>’´DZ"-‘K‹¥ÅÒBi¡´PZ -Hó¤yÒëÙwàç`)ÀÀ€ÉqBŸ:#}¬7fÖŸc€¥&Ç }êŒô!?Çø9¤00`rœÐ§ÎH`ðsŒŸc@Z&Ç }êŒô96øØàcƒÅ\õ»¡¯Ôgˆá믓ÙOf?™Y~Ž–BL ˜œ¸"P׋ú Á ˜!`– & '`†€Y €˜€Bœ€f)`` Apf˜¥€ €(Á ˜!`– &¬Làø¯¿t½ÿÝ“wOÞ=Y´4hiPó|Íó5ÏWîq¹ÇåçZžky®åŽY³:f­¸¬â²ŠË†æš{hnu!u!u!SoEL¦˜L1™¶¬Þ²zËêÎõ;×ï\¿jûªí«¶/^(¼P¸[Yû²öeíëmª·©Þ¦ &T˜P!Ø%Ø%ØE×:ÍœDgÎuÛÄm·MìöK·_ºýâQÅ£ŠG•¢‡Š*z(‡ÿþÅ}‹û÷õ,åYʳT·„n ݶÝ>tûPñYæ°¥XK´fsìéù§çŸž_PtAÑE·kÜ®q;qüŠc¹„w ïÞuÔ=P÷ÀøÖã[o}¯ó½Î÷:[¶Îò³yfiRé¤ÒI¥OGœŽ812xdðÈ`±¥eª–©Z¦jÎ-9·äÜb_;š}5—,.Y\²xUòªäUie÷•ÝWvÿpîùçøy9#&€É‰èN×éìCÇ;t,}kNhœÐ8¡qž±yÆæ«ký=öxØã¡!ãï?²ÿÈþ#u­ÿ`àÁÀƒ©¯Á¸'ôõ_}óuÌ×1_G›4ªsºÎé:§9|òýäûÉwJä”È)‘"IJI†iÍtÁ‰<&›Xlb1CFnwÎîœÝ9ñgÌs4¥õh2„œ`ùÌ1ýż‹yóNìÓl™³eÎ–ÙÆæÙSò³©géîr»Ëí.WrLÉ1%Ǥo«Ê8”q(#þ±5bkÄVúÈ 00LîÌí3·ÏÜÖu*yôºÑëF¯Kß©í ¯ ¯ ¯ÔOUó+æWÌÏñ—nTºQéFº‚}®…2gœlŸlŸl?J=J=Jmc0q}°áÁÃí·WÜ^!®-³1Û§¶OmŸ¦›)‚“+¯¼RPÌ"£*r¶ÈÙ"gÓ:6Ž&CÈ3–ÛÓÇUÛ«¶Wm S×ÝšúX¶–1›bÛEì-îaÜ9–òÑí@>€ €`râÊÂüó7ÎßX»7NßéãE?.úqÑúœ¤¾ßô~ÓûMÓºþÇ™g~¬óú0q2]Ÿõ˜3ž79nrœqOñ²®?»þìú³‚ï ¾+øÎÆdÖÿ°þ‡õ?·ÎâÆÚâ&¨¦yZãŽ&CÈ-–çK]èìÐÙ¡³MqDëúdžï)ë³q·=Ê9Ê9ÊYÜ*ÜÆÄV [1lÅ0zÈ00ÌD<çU׉ãW^ x5 ­ël³¿Íþ6ûõ91½.Ǻër¤õúÆ;ïl¼£k>'|NøœÐgæ €æÌ ˜›í}¶÷ÙÞ§üûêù«ç¯ž¯Ý^»½v/Ǿûr¬¸1ìÙ€³gÕToP=}j¸uþÖù[çë?Nñ,R}®kÁ̤\“rMÊ%žòûÖá­Ã[‡X¿X¿X¿;ã3NT[<½X{ Ú[mHÅl,˜©`¦‚™R_§ˆ-÷}Ú÷iß'ñ<Ѹþqýãú?;üìð³ÃûŸï¾ÿùïQ¿Gý¥ÿ-U9šL÷SH>°üç˜6q}v©¥:”êúw5ü£á ÿØUsWÍ]5Ÿ„< y"Æ,nì¿Ã‡ÿŽvKÚŸ´É1s8IDAT-i·Dû³õ}êûÔ÷1Öž²Æ1k=â)¿âɾ©¯³ÅÿZü¯ÅÿÄ3§¿üþñû/c¾Œù2Fü ¿\ýrõËÕ§]žvyÚåÔg¬¸¥öáU‡W^EÏË"&€™¬ÿ¼þóúϺNïl±³ÅÎú¯MœÚÖÿÊ9ñìÒ´ž@ï³¾Ïú>ëS¿R>°siçÒÎ¥SþMßÅ}÷]ß1¾cü\ÿ·é⦋›.¦>Σ:Œê0Jÿ1÷:Ùëd¯“©¯³íƶÛn|Ýäu“×MôY³ˆ% Zgê:öîØ»co]ëÉ~3ûÍì77¼ÜðrÃKý×é·Óo§ßΔÏg5¤Âùh2„|`ùÏ1mc¦Œ™2fŠÎðï}¶÷ÙÞ§¼TŸoÙSxOá=…s-ϵ<×rSËÖ8fc­'õkúÅ?82ïȼ#óô_L¦˜L1ÿñO ß(|£ð n Ë"&€™ˆë¨t2\qpÅÁõ?e|íõ×>èò=}Ï.Õõ´H—,.Y\²è¿óÀ)Õ¾VûZíkâvÁúK3§fNÍœt­Ó©ŸS?§~ú¬çR³KÍ.5Ó'úM¬–X-±ZúêÖçë³ÎÔŸ°+ˆX.}c]êëWfs4™‚`k™c)Ýë|¯ó½Î)ŸºmÜÛÿŠHոDz5ŽÙX³Tü|ȹ%ç–œ[´×glž±yÆŠ›ó§sægÑdÑdI}œS"§DN‰$€¥À¬ªô­Ò·JßÔ¯^Õg=¾k|×ø®Ñ^Oƒé ¦7˜nø³K–}XöaY]ë½nôºÑëô­ùà ¯ ¯ ¯´®_ÜæT×:Å•…ú¬§÷¾ÞûzïÓµžâ¾Å}‹û¾¿ùþæû›†ÄâºÕ”O½5¼Îݺ%tKеqXÂöÓÚOk?M×·ô¼ÒóJÏ+úŒ9cM†Cl]sL×s\Ïq=Mýüæ®yºæéšÇXDz5ŽÙX³tºjºjºÊ¸·p×&n‘­ë[ 8p(à@ K!&€YMþiòO“ÒuÊX<}PŸõèzªxÒ­á'¾×ÿ°þ‡õ?èZä*¹J®ò €küVã·¿¥oï<ð|àùÀÓÑŠg÷æðÏáŸÃ_×¶¬Þ²zËjcÚ·0MßÈ£œ£œ£œS¿}nÈ‘#!G ùÍ 7/ܼ ë[Äu{âé›MÆeÙØ瘸|¡ðBá…Âu­íªíUÛ«¶†Y<íÛðcÙÇl¬Y*îúPôPÑCEiÖ5Ú5Ú5ZüÓcÍê}ßïû~ß÷ºF{ãÖ[7nÑùÀü€ €`Vç·Ÿß~~»®“Åïl¼³ñΜæÎ¢É¢É¢ëä¾xš¬®@Kÿg—¦|§öÍ3Å“hõßjsÀs[Ím5·UúÖœò–ÑéíÁÀƒu}¶`¦‚™ fñŒ±fT²}²}²½¸)±!#?z ô@¨®ÏVm_µ}ÕöÆ=*®<ºòh]ßxxÕáU‡Wq4—e`kœc©ß°Z\oÜ1WkX­aµ††ì)k³±fiÀÜ€¹su}vÖäY“gM6îl×çw@Þºn²ÍuÀ0?``˜•xæ«C‡2eÒwcÒÐÙ¡³CgkÖ}³ûf÷Íâ=)O:§ïÙ¥ºEqcÕ´nµ9à”Wm¦o2Ú &T˜PA×g‡ý<ìça?›b^éó<àÔ×0)פ\“réúlÊ[ªkÌSïO½?õ¾!ߘ1&CX6¶Æ9¶0çœ sêZCÊõk̩߾XŸï²Æ1k–.úqÑ‹~4î£ôÑð†4üCûSÞðœþæDL ÐõÜDqãÊÔ?»¦üšòkÊ%\Œ?,^üùöŠÛ+n¯Hß³Kïu¾×ù^g]Ÿ][dm‘µEÌÿLGý×&Nñ²w m£>ú4ê£ë³~;ývúí4E°uþÖù[ç2ò& š4hÒ@×gS^Ùl¬1§~ëÔ–a-ÃZ†éóíh²ÔÜ6œ5Î1]× )¯i6Ú˜?íû´ï“!{ÊÇl¬YÚaT‡QFéú¬>7ýNŸ.%»”ìRRûë¨{ îz˜00,`ÓÅM7]Ôu’Z\•¨ë³ºn'»«æ®š»jþsŠ<‹&‹&K‘³EÎ9›Ög—êŠÄ„§çŸžz^ÎpÄÖˆ­[ Ù;†Œ¶üõò×Ë_×õÙ”Ï%5îŒOš4däV8Xá`úbÎôÑuõ­ nÞËÑd\– €­qŽUé[¥o•¾æ³>OÕUÞ˜5KSßvóã¡ç€ùÀ^Ž}9öåØl™³eΖ9­O ,á]»„·>ÁgÊ›OêÿìÒn¿tû¥Û/†rÚÌ'•N*TÚ½cÈh ß(|£ð ]ŸìÙ)²“)fÔ«¯¼`ÈÈSŠð[‡·oŒ;fñ„]]ßèÔÏ©ŸS?Ž&ã²llsL¼G>cÖgOYã˜5KSßvós.í\Ú¹´0;``XŒG*U´»Ó޽;öîØ[ûd÷#›G6¾rŠÙEã¢qùÊúSÞ`Vÿg—êºÒqòO“šü“)"[ˮ͸ëÏ~3ûÍì7u}6®\ÿ¸þ¦˜KŸ½?{ö6dä¹–çZžk¹®ÏÆwŒïßÑœcÎ×1_Ç|9šŒË²°5Î1ñùŒYŸ=ec6Ö,Í; ä|Wð]Áwt;0?``XÌÔûSïO½¯Ý:”q(ãPFûJV]·ºØf`›m´OŽ?ð|àùÀSÿ¦~»Ô +/¬¼°’8õϦ½˜.¡ŽuÀ '4ÖõvçìÎÙãh2®Œ>ÇRÿ'æ³áÿ Ežc6Ö,ÍáŸÃ?‡¿|`1º˜00,&p|àøÀñºN_µ½j{Õ6åûûì?²ÿHíwnY½eõ–Õi½É­ö³KWv_Ù}ewíwp(àPÀ!±ZbµÄjéÛÒŒ§~Rq£TSÌ¥7o<ÞxX×- £œ£œ£œu}cÑCE=ÄÑd\íІϱÔoênŠ1‹ušîFôò³±f©®kî…O¾Ÿ|?ùÒ{ # &€Åˆ«³:fu̪ݣ.úqÑ‹~LyÊ»¬}Yû²öÚï|üþñûÇïuッ÷¾Þûôyv©W%¯J^•´ßÙýM÷7Ýß²¥'ÏvÕõÙ#!GBŽ˜b.ÝwgÜq†Œ¼ÂÁ +ÔõYqý«qÇœú5µb<MÆeÙØç˜Û·3ngÌ9æ0Ç0Ç0GCö”5ŽÙX³4õmþ4ü)½2``X˜„´{Ôߣ~ú=Jü9bkÄÖˆ­Úï×›¦¾~]·ºý׳K³h²h²ˆ§j¿sëü­ó·Î7$"Ê8p›ýmö·Ù¯ë³~;ývúí4Eض«æ®š»j2ò& š4hÒ@×g;tìÐ1ãŽù`àÁÀƒº¾±QŸF}õáh2.ËÀÖ8ÇþÑð†˜sÌG'pt‚!{ÊÇl¬YÚ¸]ãvÛéúl°K°K° ]2``XXÊ[Φ”glž±yÆŠç5î躣뎮Úï×#¦¾þ”W4êzv©¸2Uû¿fËœ-s¶Ì†ß¸8ãÀ³&Ïš¡Â„ *èúì̵3×Î\kÜ‘ÏØ=c÷ŒÝº¾q|ëñ­Ç·Në7f„£I>GbZYã×s\Ïq=Í9æ¹­æ¶šÛÊ=ec6Ö,M}Žíû´ïÓ¾OtÈ€ €`a‘";Eváv§z~ûùíç·ûyØÏÃ~Öþ¯ëXÿÃúô9-î\Ú¹´séÔŸ]ª­Ö£Zj=2|3N|¢ù‰æ'šëúlÁL3Ì$bHcÍŸdûdûdûÔŸ=¬ÏÈE4¢ë³U<ªxT1nhTµ}ÕöUÛ§Õ¤õ3ÂÑ$Ÿ#1­¬qŽí¾ÿùþçæsÓuN×9mÈž²Æ1k–=z T×g;öîØ»coãnû³ÃÏ?;,nþ¯ý:q:ât}̘²Pã·¿Õø-õ«µt]q¨Ïéìm¶Ø&õg—j›=|öðÙà ?]žqàç>œûp.òеq`cÍœcƒ >6ØF©¯G\™šýfö›ÙoêZCèìÐÙ¡³ óÍ 7/ܼ ë[lŸÚ>µ}újÀ«¯p4—e`kœcúŒùÖ¶[Ûnm3|Ìúšäs$¦5Î1qóðÔ×¹þóúÏë?§oÌâÆÅºn]ž¾=ec6Ö, 8>p|êëÙðrÃË /Ó·í '4nZ¹i妕u­w¹Ýåv—³ì?ø@FFL YOr-ø®à»‚ïô9™¾²ûÊî+»§õär¹Çå—{¬ÏúÅMnµu-R¿ -}1p\ÿ¸þqýÓý¦uämö·Ùßf¿®õäðÏáŸÃ?­ë±\ê·¥Õàh29ÀÖ;ÇR­ÚÄ÷Š1è¿Nñ¼ÞܳrÏÊ=ËDz5ŽÙXëéþ¦û›îot­'Ûûlï³½ÿgzÿãŒè¬ÑY£³Š2¢kÍâ® â ô6°``ÈH¯“½Nö:©ÏÉtñÇ´žö󰟇ý¬Ïú÷}Ú÷iß'¹Eª¦X›éÖ/žÄ©OµSF•Á.Á.Á.oÞ:¼uøäûÉ÷“¯x6íß“þžô÷¤ò×Ë_/]{ M4iФ±Fþ|ùóåÏ—ë3ò–a-ÃZ†‰kÅu±ñã;Æw³¨™S3§fNÿQL3Ìôrì˱/Çk?*õh’Ï‘hkœc‘";EvÒgÌ)ǧ矞z^üÓ ñíÇ»ïr¼Kçúëw®¯ýÙÞûzïë½OךEìªì1k–ŠŸ¢úl»ûf÷Íî›W [1lŰÛ+n¯¸½B<ÍýÇ7sæÌï6ßm¾[‡RÔ¯Ú^µ½j˵¿°,``ÈÈö¡Û‡nªOŒ‘¾ÛÉî)¼§ðžÂ©¯_œÂ~÷äÝ“wOŒµ]3ô¹´!ÄsmÅÓ(;ò³gÎؘ˜}5ûjöÕDÄbÜÈD©G“|æ¶á¬qŽ¥¼}´qÕ÷©ïSßç³÷gïÏÞÿ1c=fãÎÒ”ÏÞ6q=qÊŸ9ô3°,``ÈH”s”s”sÊ[SjëØ»cӷ~}®×w»2r,\tqÐÅAÆ*ͬ4³ÒÌÇï¿üÞ¸·`MÉtvqßâ¾Å}SÆ3M¦&·ØzçØåê—«_®n¬q6˜Þ`zƒébƦþN§~Nýœú){̦˜¥wÆÝwgœ)æ˜C‡2eÄ•èô0``ÈNíkµ¯Õ¾¦ët³Ï Ÿ>' 9.‚C]ë_roɽ%÷Œ– )¯ÓM=˜Lý:³F<ñ åUw&ù»˜w1ÿܤÚîœÝ9»sé Kij]'ÿ4ù§É?‰›¬š:zTÞÑ$Ϲm8kœc)o2œÖ#Úö©íSÛ§ãzŽë9®§x^¬ø{qËw]ŸOžVö˜M7KSþÌÌ36ÏØÙ>Ù^œ[ÏÜmÔ§QŸF}Ju(Õ¡T‡üó7ÎߨîœÝ9»sÅüŠùó«<ºòèÊ£Ûìo³¿Íþů¿Züêú³ëÏ®?3g€jc ?```º®eÌL‡˜€BP`` AL @!€ €(00… & ÀÀ‚˜€BP`` AL @!€ €(00… & ÀÀ‚˜€BP`` AL @!€ €(00… & ÀÀ‚˜€BP`` AL @!€ €(00… & ÀÀ‚˜€BP`` AL @!€ €(ð?Ξ×ûuÁB¯ ½-ôºh¡WÙ_—,ôºl¡W°…^W,ôºj¡×5 ½®[èuÃB¯›z…˜ýuËB¯Ûz…ZèuÇB¯»zݳÐë¾…^,ôzh¡W˜…^,ôzlöW¸…^O,ôzj¡×3 ½",ôzn¡× ½^ZèõÊB¯H ½^[èõÆB¯(³¿ÞZèm¡WŒ…^ï,ôzo¡× ½>Zèk¡×' ½>[èõÅB¯8 ½â-ôJ0û+ÑB¯$ ½’-ôÒXæu.“…^™-ôúÆB¯oMõ"Å"…Pl,°ƒdŠ €_7Ýüuó³çLö:o¡Ï$æiÄKÏ–‘a°±€™„î ݺÓuŸë>×}úÿêê^¼ù´B=N¼õíñv‡ºj­N"Ü5ÖR¬S¬_|—þcÛ"¶‹ý 2vÏæ\«Po[ظG¼ÝÑ#¶V'îk)Ö)Ö/¾‹ž г¥µgsW·Z–?¶ÇÿÖ•*ÕkœÇÅ~åG‰p×XK±N±~ñ]ôl°é‚L(áY³„g³ífÛͶӫ ÍSæFîmÇ,;è¾U“|)ÈxAo–É—‚êÕcãÑgäbÅö²ß€Ò{6‡*¹·Ð|‡ûVM²1ƒÞ4,“û÷¯WOŒAŒ‡ž г¥Tȭ쉜ù»ÏZ[¯T¥©SBo/èMÃrJèmww11z6å!6Âà´"“xöôÙÓgOK-+µ¬Ô²Ô 5®êÙÉ~È­=;öV;l¸W¥›gêÛ"¶Wl;s(«g+–Ç~È­=¶V;l¸W¥›'=Ș=[é†5[ç3¤Õ¡Ueÿ²@Ü«ÇRŒMŒ“žM€Í0XÀ`dááá©ÿ²Éy±»æZåE¿)—bÅöꪆ¨sȯgË[$§óëÞÝ¥šk•ý¦\ŠmÛKϬ«gËWl¥]—1{.ì+­¼è7åRl£Ø^z6ù#–¿Œ@:¹¹¹èúõPß¶jÞü?]8çSÇUÙÑoÊ¥Ø^±íº*#êÆüòèÙŠÌË?ñÓ…Þñu\•ý¦\ŠíÛNÏäß³95õx˜ûêÄü×JºTvô›r)¶Wl;=›œ[—Œ@š=Ÿñ|Æóº~Ôó­r,¸S^Öy˜q¢ß”K±í¢ºª$jÈ\–ëÙŠtÉß#îTßufœè7åRl»¨=gÏædë1:÷‰IÞ76U¨”q¢ß”K±í¢ôlòDl½”@$nNÜœ¸ÙÅÍÅÍÅMûG‰Ù…Ýs,ÿ4â\Ë:3úý×ÕÀ#ε¬ã j¢]+QCQOæ0oÏ–§LŽåŸFô¾_Ç!cF¿ÿºxDïûuDMèÙ€|z¶|ª"òœðñêS·ý3úM¹u5¡g“`eP^L i°à§?-øI×ûÈšÇkv&úM¹5ÑU1QOæ0oÏÖ½EÍÎD¿)—¢&ôl@>=Û˜ÂçUåNýþëÙÀ…ϫʦg“`åQFL z¹÷ñÞÇ{u>oãîF÷*uˆ{u-E}tUOÔ–9Lß³µY[¥q¯®¥¨=°lÏÖ¿ÄNß2g‰{u-E}èÙäƒXÙ¬7 &€ÿ2C3C3£Šsç*ÎÚ?Êgm2°Ts"^}–¢VÚ5µufºÓôlÕ¾”jNÄ«ÏRÔŠž ˜¿gkè;jla"^}–¢Vôlr@œqXWœI>‡X£øJuë|!ÜÕg)jÅœ–èÙúÖªó…pWŸ¥¨s˜ß¤S7¬Ð˜pWŸ¥¨s°‡÷Þsx0XóÇ׺UÎO¬›Ö¥¨ó˜«gku¸r~bÝ´.Eݘ?À<úÙÚªô{bÝ´.Eݘ?€üÅïŽß¿›d­fU÷ÙùJk/Ö«K ›æeâ¥ÀzuE ™KÀ”=[¡®ùJkû÷«W—@7ÍËÄþýêÕ5d.Ó)>½ræ\áS'‡†¸W ÐMórrhˆ{QCæ gè `qt^¼xñ2ü5mï´½Óöº|ãòË7†üì5Øk°×öNÛ;mït&þLü™x—7.o\Þh¿óZ‹-UL”kÈRÔP»¶¢æÌj^¼xñâÅ‹žÍ=[»­U'å²5¤gãÅ‹/^¼èÙL׳ <»¯°ó¢\C–¢†ôl–ziW~ùËXþ•QÞëȸ#㎌ëÿMÿoú§á'¤xz0˜ä1ìNÑNÑNûâ÷Åó¹Îç:ŸûïtJúù)Gˆæú¥­õªâ´¼~ik½j¢žÚu~æøÌñ™#óz¶ôölyçÑ\ïß¾^5B\ƒ–×û·¯WMÔ“ž z6ãölù=ж°+0uPè~÷²„¸-…îw/+êIÏf~Ú5a!•QÈOÂÑ ¢ÌÜ6sÛÌmúÿ|ï7è›0…{o÷Þî½Ý‘‘GFÙLÓLÓÌ [Ðx²ð·{– Mï7Ý›Ã#!åx¬=õÔ®óâY‹g-žÅ쀞-½=[“n÷ˆoµõ¤gÆíÙ¼Ž/ßXòƒe£Ó”ãžùXC—nÖ‹zÒ³™°òXoè›0€ çã‘G>‘ü$?ɯýéö§ÛŸÖÿ‡øÇÝg¢k‘Olí1°¨§öÙ%Ù%Ù%i.h.h.0c gK{ÏÖ»\í#·ÆZŠzÒ³ãölò_àÖ_>°`½°¨'=›ù+ƒ2Bß”€@ó9ûç쟳Ÿ]tvÑÙE½;zwôÖþQÞrGÒò[6.U^,–¢¶ÚÛõj⫉¯&2?@Zz¶ ä'²5ÅRÔ–ž Þ³•½UzÞ­rM•‹¥¨-=›9[/å…¾)À¿v:ìtØIûÇúþ +ÝV›b)j«½]b_0'@Zz¶&ÜVÖšb)jKÏ ïÙ¼Ü|• 6É Ý|•  g3'`ë¢ìÐ7%`ø—¡C‡jÿˆžx´ruÀ¦XŠÚjo—ØÌI–ž­[žëkM±µ¥g†÷l£}Î~[®°)–¢¶ôlæD,'ôM‰þ¥À˜c ŒÑþqŸTï⎺Ûå_ûfKõªC:×o| `ƒ"gkÙI¹–çø˜ílùë¥É]dB…Þ£K{ë ]©UMž°¨­öv‰}ÁœiéÙúõ©»]nÑé¹£­ÚV ïñÐ9¢Ðy§~yçü.çÛéÙæ;—ÎW/gXÛNí¿92¯Ù /’íû®{Wž°¨-=0¼g›â~ki™^<6!ðcù.5Ãûþà¸ÓáqÉ×92eßš³u¶Zöñ%:Ø,ÿ¥™”ÿ§AÓ÷r—g,jKÏfNÀò”1Cß”€à -Z$´Ðþ¡_9Úåfž™rJuÀ9üíÆgk—ú¯®¢‡5vomÛ±£š¿}S"€¼óvÎÛ9Ú¿F]êò¸Ø 9ÀÂ_u{/1íDsßßÜOï¾`ŸÛ†¡¹;,:;[f›Ë6õR¾3Ù>¨eÝ»r €Eµ·Kìæ'ø¯ž­ÂÒb7ä”NWUæ4XŒ-×rÛ°lg'ÿTùLÉÎ'š7¿å~úJÁ¶¡U¿ñÛYÿ‚ëÃZ %æ›ûµÇ|È1u¦géëÙjäïíh'çXh=ýr±Ž#‚U]âÇ”=£Üù6γÏ›óR¾k¶ÍäËhQgz6ó ¶,B_]€àañañañÚ¿ VÍ™P®¬<`Û§¶umJ®ËgVtïIùT`ñç]5çÔ-ßQþOuÖ§Ø/ÌOð_=[Le}ä‘>Îì5©ú¯¶O³ÙÛÌ; ûkÛ¾¡³;¶÷(¤ëýÿ< o{ÍâÕä‹:Ó³€ôõl-—O/WÌC¦ð§ll¼Ûó»s]á®®0In°¨3=›y›¡¯>€àמ]{ví™ö/†ƒý†¹}‘gÜãa‹»…Îëè¦üT£>þöžr €E¿ò„ãgמ]{ÆüÿÕ³5yæöEé´ËUK:ýsrpn+O¥^éå&4®»x*°xÿ zåúy.·XÔ™ž ¤¯góŠÿÛÖégyÀ•^´ëd¿;õ@w\xÐŒò;å‹:Ó³™°yú¦0ü# ]@»€¯õqå˜J?éóÙ£–ÞqwŸ*æWðD'¹],ê¬]±_˜Ÿà¿z¶ßý*Þ—CDÚaT©^Ž~ÿœú9Úªm¥pý?›r‹Ü7; É ·XÔ™ž ¤¯gëe»Ñ¿t6yÀ-±/‘¾GË-u¦g3ôÀ!ÙB²…d«U©V¥Z•Æ{pìÁ·íÞ¶{ËÞùB_CÀ?Î?Wü\qí_gÏ®ÞQi‡<à§çýý«GèóÙ0Çý<×ÉùFТÎ_i˜ŠŸ+~®8óüWÏÖ2¡Ò9D¤:Øå^lc°"gs·“äv#hQgz6¾ž­w€ß¾Òå÷¿¹ëT™DeÀ¢Îôl摾x‚ÿÿ þ_;[›Ñú 0ü#àEÀ‹€Ú¿<Ôq¿®¸Lžp\ÿ ›ë\Ô糟½Ï—ªÓYਲ਼ö‡ ÆüÿÕ³ý^®â29D¤¹ge¯˜-Þð8åzä‹:Ó³€ôõl='n8Xê‘<àá™5t馌XÔ™žÍ<Ò'ÝNºt[ûS}Žö9ÚçhƬ!¡¯)À?®G]º¥ý‹d¹…ÝÆXûÀßœ\½–øTö›Ù¿±‰”[,êÌ¿zéíÙšds#‡ˆÔ%K¾ø\Ĩ„6Ùãz¿i§“ é[Ê-u¦géëÙ:¿ñ­Rr/°©—¢Îôlæ‘ÖøÎƒ;î<ÐþÔ…ÖZ_h1kxxÏá=‡÷ú0üãqßÇ}÷Õþ¥²å’¥dîÿ;))ŸXԙƤ·g«µÇù‚"Ò–a%Þ(!FulpóBî­åö_C–¢Îôl }=[‹çS<‹î&6õRÔ™žÍ<ÒÏÌ:3ë̬ڟúbÿÅþ‹}ƬaRˤ–I- }‹þ§ý fè Ž»‹®–gÜãa‹»…ÎëóÙvK|ëXI|ªÃ¨†9úÉ-u¦1éíÙÊ/-ºZ騛ÿç†{ý¦ºf*ò«>ŸŠëß'¶ÎÅj gåÍâÔ/ÏãœßÍ«íÙ¢´£Ü`Qgz6¾žÍc^×Ñ*›z)êLÏfúÀÉ—’/%_Ò~¿WW¯®^]©dÊë€ } G ÿHôHôHôÐþ\ÎÞéP®3ò €mŸÚÖµ9(¹.ŸYÑY×§vÕœS·|Ç”Ÿ:¿}m±Ê¹åýŠ¥¨3)HoÏ–_ëŒ"ÒkÚ=«ê÷ÝZ6{›ƒGæ5RáEêŸߺÒ7%š¤Ü"±¹À¢Îôl }=›c³ÒrŒ#6õRÔ™žÍ<ô€v}ØõaWí÷Ÿš{jTÆE ÿRüXñcÅiÿN̨®Û[np1¿‚'r8‰?O¨Ð{t‰cª¾Ý¿ \T²B–¡¹;,:;åûõñð·÷”Ûµ¿¢¶Ú5û‚9 ÒÒ³õýT··‚Rí±õéÚ¡H­mÜ,7E„»þ;šž¨0¾Ý§ýÿw§¡Û/eî*$·§ÿŠÚÒ³Ã{¶É[Bþ®°œØKQ[z6sÒ?^PhA¡…´ßû4öiìS* ã"€ùsìŸcÿ«ýkøi>—ê'åŸ;ºf@¥ð¼r—´ík“ª²ö%:å²{zÞß¿z„Ü`Q[í1‹}ÁœiéÙºl­~Rq©¸¥s—’eŠô·Ñ[ó|Åç84û2¦Ïª:Kå‹ÚÒ³Ã{¶QÇO^t]KlŠ¥¨-=›9éььɖ-[¶lÙR¾³Õ©V§Z¢†0`øÕHÕHÕHí_Û;ŠÌZ[î±Ü`ñ÷ÿ\)’м[¡öEÎ:Ö²“rnÉQ1Û|·3¥/äî4íò€5NîΩ\{ªÜ¢_±µÕ®¹ØÌI–ž­á°råvÛdq¥o‡Q¥z9ú=”»€ÝÇþ¶NÙÚ¹hò·Ê5¥Íþ’É.‰÷¤¼zXn[!jKÏ ïÙ:,XÔ±ÄB`S,EméÙÌIŸ8|uøêðÕÚï<>þøøãã©!Lþ%ªeT˨–Ú¿Œë†V)œß]q©®7­/Ÿ¥¨­vÍÝÂÝÂÝ·ý¹íÏm¾vxíðÚù þ«g+’3¿»Ü¢Sí›Bëú¯ò¹XŠÚÒ³Ã{¶’Gª…æ^#·çæ¦56Öþ³–¢¶ôlæ¤O¼ìí²·ËÞj¿óCÏ=?ô¤†0`øŠ"Š4*ÒHûWrÌÜ“‡jÊ9Lµ®¥¨§þ7E,Ó¦L›2m6tÝÐuC×Ë^,{±L§‰ÓÄ1c gûwÏÖs[­@9‡©Öµõ¤gÆíÙÆŠ+Úzc`¹-E=éÙÌï?àGšGšGùå”PÊ÷4¼×ð^Ã{T¦C _±ºÎê:«ëhÿòÞ*͔ʵ!¸5ÖRÔÓÆ…úê[¨ï Í Í ÍÓóOÏ?=¯9ª9ª9ÊFê.Ö¼XóbÍ= {ö$üüwòßÉsÆÌ3gÌŒN3:Íè$þ,þ^¼G¼Ÿº€õôl æ–kCpk¬¥¨'=èÙÆíÙÚ÷_б„3Á­±–¢žôlæ—z±$bIÄí÷*r¨È¡"T¦C _ñ*ðU૯\å#Äni¶.É7ƒ×û†øÖ¥¨¡¨§vËú”õ)듾V5—k.×\®K:,鰤ã=ö<Ú£qÕ¸j\™ÕÍÙ¨³Qg£Æ´ÓfL›|óÌwÐÆ¨Ä:ÅúÅwQsSÏfëž­KòÍ~qõ¾!¾5d)j(êIÏz6€q{6Ûkvm¦|¸ýÐýâ[C–¢†¢žôlæ—z¼fäš‘k¾ò$ì˜U1«bVQ=˜0èÔ4²idÓHí_Ïl׎©\–×¥¨¡vmEÍEýß\{sí͵q;ãvÆy4÷hîÑÜS?sÍ4gÐý÷[Üo‘Ü#¹Grf¸2Äg‰ÏŸEJ–’¥ä&“šLj2ÉÆ¢ÄÄxÄØØG`¹ž­Uh岄¸†,E éÙ@Ï0]ÏÖ'|ëê2™q YŠÒ³YJêpñ)ŧŸ’ò¿Vß]}wõÝüL€©€N—Ï\>sùŒö¯ðRo‹†åì¬)}©X½œD¹i^–¾T¬^NQCíÚŠšëÚ#Ño£ßF¿=°åÀ–[êÏ«?¯þ´¸»¨!=›¥è €_ÕzUëU-íÿº{æî™»gò3¦F ºmÑlÑl){«ì­²·´U­¸tƒ{Ý´.Eݾr;š[eo•½%j®ÿ.záý…÷Žývì·c¿ý>õ÷©¿O5¤U«««¾~úúéë§Þ%¼KxÇA Ÿw|ÞñyÇÂo~»ðÛôíßôlr¶sûÎí;·ko]d¥ÈJ‘•ø ó €4XÿrýËõ/u5(úhâùЏ7åRÔDWÅD=å°gº'tOè~5âjÄÕˆÑËG/½ÜVµM›66'Zœhq¢ÅéƒôAâØÑÇöòÛËo/ÿ· |SiEv•íw8|Yž¡¯®¥³êÛ(êÀ|Söl^õ<_÷¦\ŠšÐ³qì«gkù¸N»%"œ_®án]ÿÿ"Æ,ÆOÏ–íÙF|Vù»þDÜ›r)jBÏ&ÿ¹]ívµÛÕn§Ü §IN“œ&qÔÜ€ -ªkªkª7)פ\“rºš’·5¥ÈZuˆ~EtUIÔPÔSž»:141414$2$2$rR©I¥&•2¤Um\¾qùÆåý¿õÿÖÿÛMŒ&†cé_Î[8oá¼ÔkXöݨy‹·ZWè«k)¶%õí5an€){¶WjÕ!úu g£g3VÏæ¿oñÖ )ãÿhĶг€e{¶q¿^ÌV¾ѯ¨=›ü{¶èËÑ—£/kyÝŸëþ\÷'=̉Òþ‹|GôŽèºZ¢“í>¾ßyºKíÚ3úÛ.ê «J¢†Öµß“Hþ!ù‡»Ûîn»»Í{¬÷Xﱆ´ª5mjÚÔ´Ù3tÏÐ=C£¢¢2æÑä=Å{Š÷]U²‹-0±ð§ÊÅûÉ­Œè÷_×[ìs$·ØF]õá§.˜¦gË]Àîãû½FÖ®1£_±í¢ôlôl†ôl%'þ”ãjÄœ#¹k4QÞÿ݈íÛHÏæïÙòö(d—}Ê_Å/«ÝrgÌèWl»¨=›ü{¶t<ÐQ{„ÏW?_ý|5Ç;̉ÒéÎë;¯ï¼ÖyJ±Œã2»[QW¤…µœ2Nô+¶Wl»®Êˆº)c$¿M~›ü6Ì1Ì1Ìqᤅ“NÊþkö_³ÿš¾VÕ}‹û÷-[}¶úlõ‰Ü¹7r¯² Ÿï}¾÷ù^W5 ¸W¿ÖÔ¯ZÌš&)/úM¹Û(¶WW5D­ø© ¦éÙrEÙÝŠºÒcS-§ŒýŠíÛNÏFÏfHÏÖå|S¿‚wãª\˜TG­ìÿÓÛ(¶—ž Ìß³å-Tpsöcoî/ß2ãD¿b{ŶӳYKÏV?gýœõsþë×Ä LÔDk¢5Ñé0'`0È…a†]–zÃñ0~O_eŸÛ˜zD­>!jj>iñ¤Å“Ë«/¯¾¼ºC'‡NÒת–Š-[*výˆõ#ÖxaÿÂþ…½&V«‰µö"íÝ·wßÞ}º¶ºp¿¦¿t9èñeýÙ ÝÊŽ~S.ÅöŠm×UQ7~ê€){¶ÎjO_eG¿béÙèÙ ïÙF-îr°Øùä%A»ë~È8ÿàUl¯Øvz6°TÏ6¢Á‰é.Á ÖoƒÓ]‚éÙ¬«g{¿õýÖ÷_yà×ßßÿýýßü1X0:^¯ŽO½É8:yé=÷Ê; "¶+õmõÉ “#R©‰|^åy•çUÖ]{tíÑ’½Jö*Ù+}­ªc’c’cÒŠ_Vü²â—§užÖyZG³S³S³ÓZŠqëÛ[ßÞúVgô›£Éw^=< n¨©]Ɖ~ÿµ,¸¡þ¥v¢ºª$jÈO]0eÏÖì¢{åE¿b»èÙèÙ ïÙF<ñêQ¬—fÀ¥võŠdÌGÞˆmu gKõlÝú­nîtGyѯØ.z6kìÙŽž;zîè9íoyrüÉñ'Ç9®a~À`4žžž©7C tØV´E쬳«j¿²ÞSbüb[Rß^Q憶W_=|õÐïµßk¿×nEÝŠºM_«šãdŽ“9N.î´¸ÓâNŠ<*ò¨ˆ&¯&¯&¯Ü¶7Ö#Ö#ÖC×VتR·ÞDëyfÐè7åÕÀÖò5ÑU1QOŽ#0eÏV>Wѱ³zO«ýÊzC_1~±-ôlôl†÷lm6Ô›X 0ù» Ϻ73hô›òjàï‚<ëÞ5¡gKõlÕ¢ºt/ðÝ„éWÝæYoè+Æ/¶…žÍz{¶ßm~·ùý_k³s·s·s׬ҬҬbÁü€ÀÈî}ïû{ßëÓR̶p¥Û3ë:Í!ƬÏÖ‰:0ôU%ªJT•]·wÝÞuÛs½çzÏõ6˜Ý{vïÙ½ïI÷¤{RríäÚɵ-»uC¦ ™6dšö8m³çì“»Zµ>«nœkJôû¯g÷Yuã\SQŸ¯ÄÓ†L2£ÌÕ³59ëö̺¢_1fz6z6cõly§æ®f;èÓÀsMëä'úM¹5õ¡gËöl^×–_,™`]ѯ3=›µ÷l±Uc«ÆVÕþÔ¢&‹š,j¾€¥€IÄDÅDÅDµÑbD‹©7ííûf8|pøàpìî±»Çî¶<ÝòtËÓ†´ªcüÆøñ»žïz¾ëùN%œJ8eÜÑ&H8 G¹år”ÓþöÒªæ¯!âÕg)jõ••ËQ.G9QgްDÏV·¼KÓ7]{ä­jþÐW|¯==›éz6¿¦¯q=JÄ«ÏRÔŠž äÖ³µvœù¸Ø©±Å&—ÏeþÐW|¯=›²{6mšÌšÌšÌÔ–B fòâï¿ø»ýÓöOÛ?Õ¿Qpïíœ%÷±µ—'I.-%8YýÆ=I!Ö)Ö/¾Kÿ±‰mÛÅþµ”Ø-±[b·œŒ9s2¦s¿Îý:÷3¤1zo轡÷.=¾ôøÒãx»x»x;Cƶ}þöùÛçkK®NÅ-sÈó»õ¯ƒÂ wõZ~·þuP¸¨›v=Eå3'/']NºœdWÔ®¨]ÑÖk[¯m½6lnØÜ°¹­”Þ³9´Í}líåº]Z/t½ÐõB×/¿üRPŸ1ÄÿÿgüŸ:O‘š·SC¬›Ö¥¨›®ªŠšËa÷î?Üÿ+ÿî2hÏ–£^öÊ^×Ê|WpÃ,¯jJynÔÔ p­½~“ònówoª©°YüYü½xx¿ø,==›¥z¶ÐN;5¹ˆuÓºu£gëêÙrJùŽØ6ªP¬ÅåüƒŽUµ°kÛbsúì•ËwfI©kï•s¦Š?‹¿ïg£g3]Ïm_Š~)ú¥hé5¦×˜¾¯Í¾6ûÚPmÀ`a7¼nxÝðêдCÓMmdIŒMŒ“ýeâÂãÂãÂ/5ºÔèR£!‡<òØùà5Ük¸×ðS¾§|OùƾŒ}ûRû÷oß¿}ÿvíϨ[]Ó”«~ ZŠj×VÔܲ3-Ñ&Ñ&ñ+sf¤óHç‘ΉèÙèÙ`-=[WÛ¦á#‰r YŠÒ³==›²{6צ®M]›šºgÿêÿ[Üoq¿•]vvÙÙ)+¹»íî¶»ÛRŸ”€@FÞz¼õxë±eâ–‰[&–?Yþdù“æoCÅ÷Š1ˆñ°_”'Á'Á'ÁçÚükó¯ÍÿóÀŸþ<`Èœiu£ÕV7Ž{÷>îý!χ<òˆ(Q Bû·Ï{ºÿ„¸†,E ¿®Gˆ(¡Ù©Ù©Ùi±ÿÍvºátÃI{lÁ‚?â¸@ÏFÏkéÙ^Ýÿ?Ïy„¸†,E éÙ€žžM©âÆ-Œ[¨½Çk ª1¨Æ £õlý>ôûÐj§´¿Ûþnû»éªÞކ;îhH•`°š_h~¡ùÌßgþ>ó÷ª5«Ö¬ZÓðT¬G¬S¬Ÿ:gdI™“2'e¾5ûÖì[³'{NöœìiÜÿáÉëå2»ò;â[c-E=µë|o轡÷†Zj>nø¸á_¹Õ¡/ÅKeèÙèÙ ÿž­®oåwùKßk)êIÏôlPž ŽAƒ:jÏ„[ýoõ¿Õ߸=[è†Q £¹r9ä³!fCÌê¿çåž—{^êªØVç­Î[¹¯ 0øšäâÉÅ“‹ßó¼çyÏsÖÔYSgM5¤U-×á¯B«†Ük)ê©]çÉ‹'/ž¼Øü³%©ORŸ¤>ÚãPi@¥•8š°–žíL¹UÃ*5—s¤šÐ8о®û|·áñ¥Ûº)}!w§\Ës|Ìv¶è!GÝG¹VÔ“ž åÜjp«Á­´«&Æ%Æ%Æ™ºg«~ºúéê§w/ݽt÷Ò¨¥QK£–f̽°ÿñþÇûu>6eó÷›¿ßü}Fž¥À@??h~Ðü¶+lWØ®E“M^4Ùn²Ýd»Éú4¦?¬ ºp‡àÖXKQO]ÕN^•¼*y•9§FhÖЬ¡YµGøgàŸrè`-=[ÜÎ wêÜ‘süWÝ^ÇKLK}+ä3ZQOz6”$¡YB³„fÚ¿Oÿ÷ç¸?Ç™§gÓV¡Y…fšmÙ·eß–}‘Õ#«GVÏ8{äÐÅC]ÔU™õÁëƒ×g̹J Òk­f­fí“'!OB¼¯x_ñ¾¢Ýf9zÕÙ² ‘­)–¢¶Ú5j÷Ôî©9'ÂÔçSŸO}®=’/_"¾Dp  ÿž­×Ù–m ——ÿM•‹û“£»óØ=¦twàîÕ ?úŸ‰­}Ln°XŠÚÒ³  W·_Ý~u»öïÓk¯ ¼6ÐX=Ûßÿ®øwÅ ¤/vòqòqòY7cÝŒu3žoz¾éù&M´&Z­Ôýrdó‘ÍG6ëªÆï5Þk¼3Ú\%F°«Ò®J»*i7X®uÇH˳Öšb)j«]s±/̳ߓG'N­=†nñÝâ»Ås\`-=›jÅò¬•œrÌ"ú•ÿ˜EméÙP†Ñ®£]G»jÿVM˜“0'aŽ‘¿,F£‰yîÿÜÿ¹ÿº­ë¶®ÛêtÁé‚Ó…ôE–XZ`éßvÛým÷äô“ÓONkVkVkV+iï~|øñáº*°²üÊò+Ëgœ¹J Œ çýž÷{Þ×n­ªŒX¶CåEXkŠ¥¨­vÍž0Ï~¿¿çþžû{¾òÁ‹g.ž¹Èq€µôloꩼj^·®ø~Ó½9<ä?fQ[z6¬]b@b@âW®Ç²eÈ–![Ì9’Èæ‘Í#›o¹¶åÚ–k&U˜TaRú"a»&vMìš,ê´¨Ó¢Na‡ýö·æ[Í·šo­}OI.’‹ä¢k«}¯û^÷½žf,00L‚&A“`mmý•§ÿ&¬¿¤’Ý3tÃ×OjYz÷€ZÓ{äÛê¶¢ºsö)y_9ü–mšÝ†s.+²Æiqa»&™¼¼*Î7uß™> 8aýÕ •vÍžûÅÔ;®Ý\»¹vÚcøtáÓ…O88°–ž-Ù/HU÷‹üC_kyúoÊ¥¨-=Ö.dÈþýÚ¿O/¿TüRqËŽ-jcÔÆ¨»î>¸û`õ˜ê1Õcl 0«ó¬Î³:ß+y¯ä½’É…’ %²Æýu2üdøÉp]Û¸´ûÒîK»+{ƃÄIqRœ¤ÝHåmåÒ¯r€ÜBÓªþ+6þ+ßX·=‡ëßø–9;xï¬`yÆÀ¢ÎÚcûÅ„;ÞSã©ñÔþÞv£Ûn7šãkéÙêv«?¿œ¯ -æWðD'±L9òBáíZ¤ü¯rÞ Qgz6¬×Ä‹/N¼ø•ßæ·ânÅÝ’ÛhcöÄì‰Ùs¨Ù¡f‡š5Ê×(_£|†D“sMÎ59×­·FÜ‘˜˜˜`-{íÌô3ÓÏL×µ] Ÿ,|²ð‰Rg,00È›ºo꾩«ÝBùüûûÞ?É-.µ¿YuDƒoÿâEÛÙ¿):´Õ >Ñ®=ÆæY>³üë)¹6„”¬ÖµÿèÞÙ÷æï𯶾bç¹1{¯Ëm‹D¿r#Ǻo꾩kºýþø‡Ç?<þá+O¼¥º¥ºÅq€µôlmëýS‰ò¿‘²õÞZ,EéÙ°FIqIqIqÚ¿O{Ïí=·÷\kÙŠ£>Œú0êø¦ã›Žoj©u¦Ö™ ‰„ÿœóçœ?ç\ûãÚ×þH˜Ÿ0?a¾œ·ý|îó¹ÏçÖµ-óÚÎk;¯­òæ-00ȃ€¾rj©W}ïL©+Ÿ Ô%ôÏžËZü3¸UÙ.ØÖu=9Îóoø¯â¯S¾_ü¸)tÊí’[,ê¬]±_L·ß—$,IX’ ý½»}ìö±ÇÖÒ³­?5¥®Ëi`S/EéÙ°FwGÞyw¤öïÓó«Î¯:¿Êz·+öCì‡Ø§öŸÚj¿×¯5^k ‰„‡rdÈ‘K®—\/¹ÆÝ‰»wGnÛ°.`]À:7¾>1ëĬšdM²&Yó–äjë«­¯¶Ön›\rŒÒ,©&Ÿ Ô!ÒóQ“!bl®×<ÞÂ^Ÿ@÷_7µ^ìZºÊY¹À¢ÎÚõûÅ$»ü”æ”æTnûÜö¹íS~cÓMw6ÝÉ€uõl‡‡,©Va+°©—¢ÎôlX#ï¼Þy½ójÿÿ|÷óÝÏw•´¥_J})õ¥Ô…±Æ^ÛçcŸ}> ÷^Ó{Mï5ç·œßr~Ë營~~(‡m Ê”+(—®1ϰa;ÃVóAóAóÁÚ÷&00È…óÎ_8¯Ý0•+4þ•‹ä”æ<[´l©¦bl)¯ýýg;-:Y¿â‹ù[üXiÃÂèCqr €Eµë/ö‹)öø³\Ïr=ûJ£|xÅá‡WpD`]=Ûi»•‹*e%6õRÔ™ž ë’‘‘¡ýû´³Sg§ÎN¡ñùãóÇç¿w)îRܰï†}7ì;C"áÎÕ:Wë\ídÈÉ“!±+cWÆ®´Ôv]žryÊå)ºÆ9¥Ó”NS:iîjîj¬8à'9§:§:§úJ<û¯«+È!"õ8¸îõEß”c«TgAÐÁÉr‹rÓÏþëÄê ÚõûÅ{|媕«V®ÒþÆw‡Þzwˆ#ëêÙΖY]¡Ò,`S/EéÙ°.£F=ŒÒþ}zòâÉ‹'/fÌš$$$\/½üõòc‚Ç 6$néÓÒ§¥Ï1Õ1Õ1Õ‡l²}ÈfÎm¹òðÊÃ+um‚ïß ¾šýšýšýÖ¸§€€A..»¸ìâ2í&ÉµÛØlËÇË!"­tuÑÿ”c«viÍùÊ€Eµë=þzüõxc÷øšMBᦅ›nšò»j¯¨½¢6ב`•=›TxùøŠ¥€M½u¦gÀº,,²°ÈÂ"Ú¿Ác}c}c}©ä”ä”ät»Øíb·‹Mi>¥ù”æ†D üø5ð;èuÐë WL͘š15M=þ륮—º^J×xÆž{fìÍ_š¿4Y×~! 2(dv{äwby`S/EéÙ°³5³5³m½m½m½ÿuÅê”–SZN¡<©K®Ÿ\?¹þ½÷nÜ»1{Îì9³ç {óæ9lב]Gv‰*U*ª”)Æ|sÀÍ7èÃá„ÿ®©¨©¨©h-{ä©ýSû§öÚQÉ2]«Ž.)Ÿ 4åØÊ7±ÚÚbú|Ê}Óì­»•Ø5áÏ‚%º³ÒÓfCÖKYå³]¢Îæ9™¸!vCì†Xíïz{úíé·§9°ÆžmÉüÑ%ËÌ#6õRÔ™ž kñ¤à“‚O jÿ>=¶ïؾcû¨OšÙkì5ö*=ªô¨ÒâI‹'-ž”ãcŽ9>¦/.ÿ±üÇòý‚ü‚ü‚^¿ ~l¬aÞZ}kõ­Õº¾wø»áO†–É €€AÞ·xßâ} í–È1¤NdëÊò € ^m¹½»>Ÿ*ô¼ñÎħr/uzVn‡Ü®u6ÏÉDgwgwg÷]K]³rÍÊ59 °Þž­o™Ö• Ÿ$6õRÔ™ž káûÂ÷…ï íßÝ~ýðë‡_©ìÖìÖì~ÚöiÛ§mW”YQfE™‚®] º¦/.éZÒµ¤ëZßµ¾k}Ÿ—|^òyIÍ+Í+Í«ô -ôdèÉГº¾kð‡ÁHž‘<#y†œ L ’4)iRÒ$ífÈ®™ýЂÍä”–©4ðËÌåÿ î¢m‡ìß”»5aÇšºÞ_Ñyn—½9l³älŸûŸëk 7kØíŸ§˜Èg»DM}2ñuï×½_÷Öþ–íM·7ÝÞ”£ëíÙŠå-Ø,Çÿ€M½u¦gÀ ¼Ð¼Ð¼°¿k×þM»¤Á’K( Åjb5±/œ_8¿p^ï³Þg½Oé⥋—.ž¾HØ¡¸Cq‡âËó/Ï¿<ÿÏ'žO<5ó5ó5óõÎÝ»!wCt­¿ÿ‹þ/ú¿HΙœ3Y¦Ø FP!¸Bp…`ífÈÃnÍÇ€,rJ=®{}ÑW{„E×´Jî»ËÕmŒ·ïE·?§^Ùü‹ÓÞžñ5´«bïê¨ïÉÞ2o[ûr{r°¨­ö‰}aÜý»ý§í?mÿIû»^{¿ö~íÍüÀÚ{¶¸wYê¼$6ÅRÔ–ž kñ<Ëó,Ï¿r¾å`‹ƒ-¶ >æy2òdäÉ­‡¶ÚzÈ=Ô=Ô=4}‘°m¨m¨mèÂN ;-ìökدa¿&G&G&G¦þí÷ïß¿ÿ¾®uöîÜ;8ieÒʤ•r«00‚iï§½Ÿö^» ªØkÞÏ{ßËíFÐâfÎzµ†+rgÉÛÕeüèêKïÈíÚ_Q[í1‹}aÜý[éN¥;•î¤üçÎ72óPFÏö ßÞ÷žU €M±µ¥gÀZ¬í¹¶çÚžÚ¿»cªÅT‹©F}äàíÏo~ûóž{ìYP³FÍ5kØÀ»•w+ïVw—Þ]zwiræäÌÉ™µ¿ñaÈÇ:¯îî×ݯ»_RÖ¤¬IYåS%``ç_žyþ+W6”*Ñûωnr{n®›Ó”žýÆÏËÛÓee•m?å)—/Ôv`®¿òlÌ3¾ÌI÷ö…‡7-Úåv別o;Êmüb)j«]ó³“ÎN:;Éh-õÆ·ßnÔþ–=6z0óPF϶:d¢[Ù0`S,EméÙ°%"JD”ˆHùûÔ³³ggÏÎTFÎÞýöî·w¿ù;ú;ú;6îѸGã†D“¾›ôݤïBBBBBB¯%^K¼&¾å‘ú‘ú‘Z×§¼†x ñ’8:qtâh9Ô„ÁûïG¼¡Ýúä¬PxXÉßä ¦ ƒÓ÷_-»µÕÕtŽ2zÈè!Wƒ¯_ NèÐ!¡CúöìÞ½!{¿ò/_þðò‡—?0óPFÏVVSò·\õ­%¶–çþŠ¥¨-=ò÷Êÿ•ÿ+íß§»vìÚ±kõ±..~¸øáâ‰A'ÔÆ£GC"á”=Ûùç>œ«ëœ:8upJ¸’p%áŠe+@ Œ¦Êé*§«œÖn}*ßYzîØ+9ÇÀÖµõLk«:xÉà%ƒ—Mš49nuÜê¸ÕúìÓÚåk—¯]>åz Ÿ(|¢ð M¢&Q“Èœ@I=Û«¢Ç^ÕÌo]ñªœ—¢žôlX ¿~+üVhÿvŽ*U4ª(õ±vŸªªþ©úé§GœÑåz—ë]® ÷ÒcH!ºþkëÐÖ¡­Cò$äIÈc©í%F³kÚ®i»¦i7=%ÏuÏ1f>Á­±–¢ž6ë5´×Ð^CϽ9÷æÜ›ÏË?/ÿ¼<åÞ|÷÷»¿ßý­ý©•ÏW>_ùœÙ€òz¶e«ÆÌw®Fpk¬¥¨'=Ö¢üŽò;ÊïHùû´üãòË?¦2JõeÈ—!_†¸¸¸ô+Я@¿6FÕbt‹Ñ-FÇ·oßÖü[G Œæ]›wmÞµÑÕôxô^û1°=ñ­!KQC]Xq`Å iL;}ßéûNߟ´=i{ÒvOôžè=ÑÚïyæùÌó™'³¥öl ËÛ×­O|kÈRÔž keee§ýûÔOò“ü$ê“qˆ°öòÖË[/o^lx±áÅ «W ®7=nzÜtsn 00²¾úvèÛá+Ï–Û3òÄ¢„¸†,E µk+j.êŸð%áK—ëw®ß¹~gìó±ÏÇ>7Ö¿[Ì3wÎÜ95ç4ç4ç˜ç(µg;ÔnÑŠ ΄¸†,E éÙ°»¼wyïòþÊ2.¼ºðêõÉȌճ՟SNý9æ900²{A÷‚î鼸×Úm‰rÓ|ío¯µÛꪪ¨¹®=’Ô*©UR«ÛgnŸ¹}fjש]§v5ä”b}¯ú^õ½Ì:0ëÀ¬èðèðèpæ<ÊëÙ|Ûrp:®ýõ l«ûÚ_z6äɳ„g ÏÿzœYþ’ùKæ§2ÈaÍaÍáÏo?¿ýü6bJÄ”ˆ)C‡]lý±õdžx ñâåêåêåꕾÞìéè§£ŸŽ6ç“hž¥y–æY´ÛÒß÷+;ÅŸ@7­KQ7ízŠ:§uï$÷Mî›Ü÷~ïû½ï÷ž³xÎâ9‹ 9½èQÀ£€GwwÞÝy÷Íé7§ßœfþ§OŒgŒgŒ§Ã]‡»wW\XqaÿÊ`±žmCó)þ.áºi]ŠºÑ³Ñ³¬‹û÷#îGRþÞ\;kí¬µ³¨Œ2$|Jø”ð)ªkTר®!EBŠ„ÙW{_í}µ§¨§¨§¨ø4ðiàccbæßj``÷|îùÜÓÙõÚùµókçmË·-ß¶¼’s%çJÎék¸³uÏÖ=[÷tXÐááćNL¾–|-ùZF;^Îz}ôJHH ÎÀÀLâĈ;PÚ®´]i;ÿ:oâÂɇdÌèWl»®Êˆº‰šbïÖ¬XCû{C«‡V­nøúß x7àÝÿ÷þïýß7ÙÚdk“­†œ^œ3!fBLˆ[ˆ[ˆ[¢_¢_¢ŸRš >A}‚úèªÃô•ÓWN_©‰ÑÄhxÚÀ¬=Û‡CªÏ̘ѯØvz6z6z6ÒgÙ‹e/–½ÐþÙhQ£EMë9­ç´žû—ì_²É­|·òÝÊ÷6ÓÛLo3%ÖH¬‘Xƒêé˜UäªÈU‘«R?UTÑfŽfOºXloê5u3Ý~éÿ ÿƒþ´¿7iDÒˆ¤¦øÆöí?Ú«ÜTn*·¶cÛŽm;ÖÓ‹´ü£å-¯½ZôjÑ„¢ EŠ*騹|åò•ËWtmûä'“ŸL~¢¹¥¹¥¹ÅO€9{¶{û÷¬ò¸“q¢_±½ôlôlôl@þ€€<,ü°ðéŸ*·æ¯/«§+;úÛ˜zD­L·/âwÆïŒß©ý½ãÆŒ3ë s>Íù4çÓœ3®g\ϸvû®Ûwݾ3äôâ Aƒ tñêÅ«¯Æu‰ë×ÅÚš«%®–¸ZBç6ù&ä›O³S³S³“Ÿ0sölg—¬ž^i²£_±ôlôlôlÀZ‹¹³õÎÖ;ÿq[¹’5»Ž=Æãñú1AM”úŠmÛ•ú¶‹ú˜z/ïÞ¼CûÛot¾ÑùFgËÎ/û¾ìû²/àyÀó€çýöoØ¿¡!§{ÖèY£gsåΕ;Wîs‹Ï->·°Æ£æú¨ë£®Òµc뎭;¶®f”f”f?aæìÙ–¼=¦ÌÆäAMê†*#ôÛ"¶‹žžž X``aV=Zõè?n0˜k û²v•l?°ÛŠŸòk³ øÝb[Rß^QóÔÄí·GÜÖCbĉä6[âÅ/Š_Ü:¸upëõGÔQßÓ‹‚;wV7S7S7û˜ø1ñc¢µ57Ü|øðáÉ÷’ï%ßã' Àü=Û¬ Cz—jöÑýÌ’Ú«åúŠqŠ1ӳѳѳkG d$±_b¿Ä~S¼¦xMñÒçÔOɘîÆÖ¬VyUí³ËäúŠñˆ±é³b{Ŷ›³Ú7‚oßÖOpùàòÁå­w%K—4.Ô+Ô+ÔkÚiC¦ 1äôb½ìõ²×˾ÿÀþûDOŠž=InÛ{çÛ;ßÞùV×ø<|ððä1Éc’Çð`©žÍwÊØšÎÃb'Ÿ]Vû…|B_116z6z6z6 $À@¦gΜ­ÿIŸ‚ûê¯mw¸B¿¶†™?ôß+Æ ÿ˜Å6ZªÂãgŸ5~–ö¨â§ÇOŸ®¤¹”<#yFòŒûŸï¾ÿyîò¹Ëç.7äôbÕËU/W½¼#~GüŽø7mß´}ÓVÛx/罜÷rêsÿžý{öï™ücòÉ?ò³`ÙžmàÆv‡‹œ¾‘ckXÕçæ}Å÷Š1гѳѳ¥"²–0+aV¬¹æ~˜û!­'} Ö¬W³Í—Å£§û¸V ò=%5<èëëëOë¨Ä¶ˆí²TU“æ'ÍOšÿ•SNYûgíŸ5CL¬†š†š†?nü¸ñÒqKÇ-—;4whîÐô^tõtõtõÜ”°)aSÂË/_¼|a©ÍzÿAþùu³wýÞõ{×Oš4;i6?[òéÙú÷hó¡ˆçÑhW÷Jom¤³µ*ôŠõˆuŠõӳѳѳ€ŒƒXȉ‘#'Ž|7òÝÈw†\ íDŽV9ïæóuëéù²`dƒ¶í7Ùj|ßoŠmjWqàMñgñ÷â=âý†|£³¿*º#tGèíqœ 8p&ƒN¯ š š ÏÚ=k÷¬Ýªœ«r®ÊYä›"ßù&}{¼Xÿbý‹õ_}xõáÕ‡#\"\"\4w4w4w̳)aÙò‡e×5¶îöÝí»Û'&&&&&òS çž-·*ç]ÛG{¾´_>èFûME¿ŸT¶ï7%KÍh?ð¦Ó"ñgñ÷â=âýôlôlôlÀÀ*½þðúÃë Ë/,¿°¼,‰±‰qÊ­zÓ>Nû8í£ö˜¿lú²éË&f×?5‰šÄ—ö/í_Úo¸qàÆÎÏŸ;?Oß|È×4_Ó|M—•\VrYÉðòáåÃËkhh˜nø%§›žnzºI×7¶nÔºQëF ™2'dfoèÙèÙèÙèÙ€µ#È@æå™—g^íÓIŸþúô×§¿¨±¼»ðî» ‡O>}øtÓȦ‘M# 9½ø×ý¿îÿuÿæÒ›Ko.M“8&qLúFÑ=¢{Dw]ßÒüEóÍ_ÄW‹¯_====°^ÀC+M+M+íSHm«¶­Ú¶*å1µÃ>û8L• JP%´;ÔîP»C†œ^å6Êm”Û•ñWÆ_­ÿH^d{‘íE6]kn<ºñèÆ£ãúÅõ‹ëÇ^€žžž X#`€ áñ‚Ç /Ð>y¤úMõ›ê7êc~ŸB>…| 9óöÌÛ3o»»wwïînÈéÅuÖX÷bþ‹ù/æ+W ®@êßþòà˃/êZ[½Ïõ>×ûüÅû‹÷oöôlôlôlÀºdK?/ý¼ô³öi£¿}üí#'eáË»/ï¾¼ \¸*pÕ€F aÈéÅ6=lzØœ}vôÙÑŸúüÓ矴¿1²~dýÈúºÖPk@­µ|^þyùçåìèÙ@Ϭ0€Ò]Ò\Ò\Ê3?Ïü<óSž*jÒ·Iß&})œÅÄÄ\Ét%Ó•L#ûŒì3²!§Ûû´÷iï#Í–fK³?îü¸óãNñ-¯ƒ_¿Î›=6{¬ö§<®x\ñ¸òiŧŸV°G g=?`…{æûÌ÷™¯öI"ÿ‹þý/Rë’Ø.±]b»›n¸Yà¯åø+‡!§›Ýhv£Ù#m´=ÒöqÏÇ=÷ÌóKž_òü¢ýÎÊE+­\4v~ìüØùìèÙ@ÏäŒ@áV-\µpÕBíÓCïÚ¿kÿ®=õ±vIë“Ö'­ýú9ôóô¿¦ÿ5ý/CN/Öˆ¯_#>ÏÈ<#óŒÔþ¯nƒÝ» þ8òãÈ#©<ôl gòD  \Iš$MR‘CE9ô¯ç„5©Õ¤VÊ£TÉ’7$ox0ëÁ¬³æ­ž·zÞj£*»µìÖ²[?4úÐèC#ª =èÙ€Ü(ÖËö/Û¿l¯}2h¯Ç^½Ô'é¬é¬éüøæã›oúŒöí3:o½¼õòÖ3䔢ãhÇÑŽ£ßÛ½·{oG g=`ÅÚøh㣴O½íô¶ÓÛNÔ'C»®¹®¹þìö³ÛÏn¯:¹ê䪓EVYUdUZO)–ÜVr[Ém”z6гù P¬²>e}Êú¤<õSñuÅ×_S™Œ#¡fBÍ„š¯Ÿ¼~òúÉõ°ëa×ÃvWØ]aw… /'¼œð²ö§ÚŸj2äš’·‹ß.~»˜:@Ïz6 ÀŠÕ=o÷¼Ýó¦<õ³mà¶ÛRk—\6¹lrÙ÷[Þoy¿åÁ˜cŒ9±åÄ–[9/r^äÜѶ£mGÛ<¿çù=Ïï6&ƾ€ž ôl@n€îËë/¯¿¼œ8'pNtÅèŠÑ©‰LММøòÓ—Ÿ¾ü±?bÄþÀC‡mȾ!û†ìC‚‡ v}âúÄõ‰•*SªL©2ýú;õwZ=eõ”ÕSλw;ïö´ÖÓZOk±Ó g£g£grC ˜\âω?'þåååÒ=¤{H÷}¾û|÷ùN-6µØÔb ³5ÌÖ0›9OÚV±­b[¥õ¯­mýëÜ*s«Ì­rä쑳GÎÞÝzwëÝ­1/b^ļHš’4%i ûгѳëB AØÎ°a;Õ‡Õ‡Õ‡}òûä÷Éß%¬KX—0‡x‡x‡xsž(ô˜ï1ßcþ˜ÅcY¼-f[̶˜+;®ì¸²ãÕ©W§^ŠwwwÕ$j5‰ì5@ÏFÏ”‡0‚ÏJ<+ñÌt§‹î*º«è®^3{Íì5óïŸøûÄ™ÆgŸi^1¼bxÅØ‰±c'j5ŽGö=ÈÈ€#(+••ÊJé;QØ€#Xù~åû•ïSž"¬Ô¨R£JF•UjT)¿~~ýüú]Ò\Ò\Ò¼xÿâý‹÷q5âjÄÕмҼҼ¢zôlÆB A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A ñÿ 2B¾+b.%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/windowWhen.png000066400000000000000000003041351431412030200255300ustar00rootroot00000000000000‰PNG  IHDRg±7¾;gAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwTWÛ÷qcŒ&1‰ˆ‚(*¨(Eº4©Š‚Q±w$Š%"öÞ½wMTìMì{‹ÌŒ(ˆÆ5öØbŠ•öþ±ó¬Åýžs*e¾×ÚëY÷£÷}ÎÞ×™³çú™)ЄLh0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0h0CRç¥ÎKwäБCGV+‡•SÇN;uŒ™A~ðÏÍnþs3öeìËØ—±³bgÅκ[ÿný»õ™ä&ý™ôgR¬m¬m¬í‘Ð#¡GBß6}ÛômSfùA|l|l|ìá°Ãa‡ÃŽV:Zéh%æù‡¨yQÿâ³Àœ ?û±çû±bfˆó\qÎ+ÎŹ03ƒü@ô9EÏSô?E/”™€ÜB |”¿”¿”¿” ‡6Úp¨SýNõ;Õ7nmÜÚ¸µÑGóèëÑ×£ïø‰ã'ŽŸx¤í‘¶GÚ>~ý<š9‡¤Nœ:øâ´‹Ó.N[’¸$qIbÓ"M‹4-b”Eê«[¬n±ŸÊþTö§²g®ž¹zæj’Y’Y’35xuöÕÙWgŸ8~âø‰é¯§¿žþ:àjÀÕ€«YUÿ¡GB„Y=zõèÕ£¯^¼zñêÅ´¤´¤4Ú¦P…§ÕŸVZýжCÛm7wâ3(>¬ r†Øoˆ½GnÕ¿Øw‰=˜Ø±.ÈnâSœoŠsÏܪqÞ-ÎÁÅù8«ƒì&zŒ¢ß(z¹Uÿ¢ï*z°¬ ò ÝJ>üéáOÊÌ w½óyçóÎg륭—¶^*¿¼üòòËT©ë°®Ãº»ÜñrÇËY5d•g¥ž•zVj~ôüèùÑF*6Ùk²×d¯<|ðUCV¹µåÖ–[[†œrjÈ)5×ÿj¿Õ~«ý^¹¼ryåª! $¦%¦%ž)t¦Ð™B­ÜZ¹µrSgå»\w¹îrýÀ¤“LJqKqKqcéðñD-‰º5¦ÎúŸMñ9ŸYÖOì%ľBÍ;±7û4V YEœKŠóJ5׿87ç鬲Šè%о¢:+_ôcEoVôiY5¨0Ô‰øÉnÉnÉnk'®¸vâÇlP‚îz;•õYèûF6›W$à|rׄ¹ Ý7Jæ‹æ{)U–8yM:øõ‚nžU6­›Ö¾Úƹ!_9Œìr¬Ù£Jk+Oµ¼VòÁ‡ýï6îÓ¸Oã>—k\®q¹«‰÷õÂä…É “Éòdy²ü1õ_®yõAÉUn´zÓã¸Ã'ÝëOØã¼dкÃ]C†¿]ìí>Âkñt竃ûÿÔÅaX#“VZÿÚ¡÷½ò?øM«·ÛèŽñÖý>ìw°Ë`—Á.~xôãXM¼¯Û3nϸ=£s÷ÎÝ;wÿ° 4­Y溱¥Ç¯Íz”}:´¡•mh™9l~ëðzùçU¿û¾þê öC;ïüù´}p³Å±v[.™æaýcðŒÞ޽ºÖª[úâÇ|î¢ÊG•*ÿ¦é›¦oxº0ÞÛ©E§ZäSç†O«@‡ëæv¦Ç{Œuiõb~ñš¯[m-P¹[µßš6Nôì­ÌlzÏkY̶&x¾Ùñcƒfî¾K»ÕÞî\`ðrÖƒü¿®à\fÀÇÔÿnßݾ»}S÷§îOÝÏj"óD͈úù˜ ôÿÚ­h™ƒ—w(e=hi·Ö9Øñãì8wߘm‹jy¾Qf.íµì·¦ »zöÞZ`F5·jó‹¹ïØªÇØÖß[½p¸nÝÉôøÞ¨†O ŸâóËjâ}‰=ƒØ?|Ô üï¹wªáZåëí#ûÙOŠLïÜvà•y­]½†ï]ô·ë€C_s);Äw~¤Ã?½|§Œ³év¨ßK‹U5+7 3ž]êŸ2¹‰=›Ø¿±šx_âœQœ?~à l-K¬7Š©v¦ápó¤z#}SijëÄY lÂ:´YšXÕæûÒ«GÛwí|oµ­}ëð½K®Ù½hulFõÛo£úÅTüÛùiÝ~æŸ}ÔÏ åÉòdYœ¿³šx_¢g(ú‡V•§š+ù Ë1ç°Jkç†Ô˜å0rÓºz1Õ6üºñpÏ*J•¦1^“$ó&©^F»&4üÚ}ãŠäàÏOŽ,äõ³Íæ »VeËzLý‹ž­èß²šP`¨0ð¯8—8—8—‘%"KDf~Ûñý¼¦o*uá}w¯_9,ÐuÇÈKnú-X>/Þ*kwþu&OÚÐölûÏÞ6~]ÚÓüZæ_›ØË‰}‹ CĹ¡8O|ßú¯kÓ_%³¶ÎpÜ™µ;ÿ±a~ò°üjCg‡½µ^t[U!ì}_›8—çõ¬2 ½AÑ'Ì|u9¾4ŸSªèÇÚ~N{®|VÄß:kwþ¯þêR¨¶çÁGzZ?ÏéïJ3ÿÚDÿVôrY_¨0Ô‰ùZâñÄã‰Ç{¼êñªÇ«Ìl/‚Ï{?(ÛG¾²ø•× ¬m÷d~|i­4ªuöÇ}ƒ¯:~‘ùÑþRûKíç6Aø·zßê}«·÷cïÇÞ3SE÷jéàa<éÆú³¶Ý“ùÑËff¿íßXy7ZÑ1SõoagagawA¾ _Yq¤wÌô˜é1ÓÌE¿½Ù? R!»r}žÅMŸL‘·6^uüÄõlÈ!ó_2óš›_n~¹ùåÇå—{\ŽÇ¿n¤ÝH»±¾Áúëd¾þW öp~ì‘Ô-k›>™÷Lix£BµcåÚ™UÊÌkç;Îwœï»ïF¼Á²Cõ j#3UTí˜}!³J{¦Ì»éQ!·vþÉ®qg‚º­2æ¼ó{ÜH|ÆÅçu‡ öbo©[n–ò­S×Ô­ÑØÆ?wÍ­¿w½Ÿì÷﯒ҺEÏÚ™¯±ÇcÅ‘ž8熙©¢À/"ê[îéßóà8§ÜÚù÷ ÜñƒÓ ïßC7•ÏÔs¸Åy½8ÇgÅ‘žèfþ(ú㾚ƒ¿xiý}ûZgskç/_iºÆkPðy«e3u²èëŠ/+ŽÜB u"F>u®Ô¹Rç2µ ïÔð~EkáÛFúoÊ­Ö¡1©CœSÏöÞ³n¹½ÍÌ{ðå€/|ù®â»Šï*RùÙûö;ì3S3U–¶ªÜý€÷òù‹çVëÇÐès j¿´Øöd‡êCög潬xµâÕŠW¬~~–:>u|êøi?MûiÚO™z΢çô ë¸fžzæv'·Z?†ÆA5å®–ý;ÆY\ÉÌ{‰õŒõŒõ¤ò³{_ì}±7´yhóÐæW‹eIÓ"%6Ç85ùÅórJZ×õAgr«õch<ß¡ÍTß5!6Uú–[ýï%Ò2Ò2òƉ'nœ ò3Q¢2®™›“r«ÏwXßßwÚvþ)iÇ|‚ÎÄ8E]ó¼lY²ì›3~/âó.>ûÔ@~&ö™Ù-Tr iù]Bõ¹EwG«mçïûË’E±ít›3>.3ïEì÷ÄÞÈÏÄ9`fj¦ÑõQý*·r¢€›•ÚvþC'ÇU­æUçEße·e潈ó}V??}?ÑÌLÍlïr×ímR‡ˆmA>jÛù_ »í¿)¼“ÃÛŠ™y/¢ßK çC€‘ïln±¹Åæo<·8•.tÑlã<¿@µµ~ ŽmêWXa?úŒóòÿ¸…‹“£“£ÓÃúë?¬O=ä© S¦.³ă1þ£]¾¹vÿf˽[ýÔlÿ#µµ~ ¶„>_´^>eµ©IÑNÿq³¸®Ž]»:¾ÛônÓ»MTEþ‘èŸèŸèú­ÿ–CëXYnr®ûpµµ~ Ú²pùÁqEP·2ÿñôÖ…gžYx&-5-5äæ#×Ï]?wý\fÚ%[»Õ?âV_mMŸŒÇãá-½—”û¬ä-㔌ßÔFj#µ¡ò±î×F¹ÏÊT3N9þs„÷’<³óOKHÞÚmÆ$·ú™ùt‹ãõŸ¶þi©i©â{?ãÚ(û½Ç?Õ¼&ÍZ¶cv^Ùùû…-»Wͦcؾ~Oÿc_*öEþ!ÎõÄy_ÆRË:2 ‚ÙÈ/~¯ëÖ)¯ìü‡œ?’èš\½F«—å2~wâÜ_ô¨ŠüCôúDßï?~"o´ÏyyZÛHûà yeçÑ,t†_ ç–ò§KÊøÝ‰Þ/õ€œD u"F>2·ËÜ.s»d¼EøÅÂ—Ô´ä„øà ¼ÕJ?Þ»ovÍFV5»—o’ñû½öÕµ¯®}EmhüxÊ»)濾u ëÖõ?nuè÷óåßä•ÖÁ'_œd»nmñº%˜|nèúµ÷kï×þÅ®»^ì¢B´í÷ïÞæ«ÍW›¼R°‚£Ã3“Øþu¹TÊ+­Ccû{‹{ÙmÊø“>$fH̘Ôs©çR 4î¤ÃI‡“×CÄ:ç-•.?/×Ù¿V¥¼ý¦SR»®:3ϽÆ]‡èÿxN^èºÐu¡ÔF~ Ö:ãz˜ç>h“CtJê1ï 3ywçÿ¼\Ì“Z•"Ö5_Té?ní+Ž Ô†¶‰ïwñ]Ÿq=8׸t^‘¼¾ó÷*3³vôYÓ7•ÿ°·2ôNÅ>Pì ©mçwâ\ÏàsCK™´)nÜ3zû8§à¼¾óð]ëã`ñOˆïÖ5¬«è P!Ú&ú{ÿq¥»•õŒòMî¿íà^3$ïîüÓ’#»ýâ_'Å%5ã÷+úÀÔr0Ô‰ù„L8`ðWÏËJß2¾{=<:Èÿ^Þmý—5ÊÙ?ã-Ñ¥-—¶\ÚBhÏÛ³oϾ=[/©^R½$ƒW½ìó©Tg™O\Ô5).¯7€þçÊÇeuŽ©¸¯Þ¶ÿzï¶!¶!¶!ÏížÛ=·£Z´ç^ÿ{ýïõÏøèWw〕•j-øÇ¢y½ô?W”‰Ýäú›ÕØj1¦7 ½÷ȄȄȄÔ>©}RûP-Úw5îjÜÕŒëÛË6n«ópëÇÀx&¢uoŸÿx4ƲËN,ã¦Ðš%Ö7ã8±¶¼Ï[ííü·½œyÀí?n.ŽÔ‰öˆïtñýnhõÍÛw‰ò.úã÷ûöjiçïÿåŠÔco­µiÕkNÆõ/ö‡T‹öˆs:q~ghõý›„Ÿ´>êúY?÷ZÚùˆ8áäæàò¤¾£¹ÁŸ=‰ž€èP-Ú#zzÿ±ûTÚÙ_{;ÿëáßÕò¿WvYɃÆw ½wѦNÝ€¡NÀиf˜a0úm5ÿÛ–Õ_]=¼¦¶‡ö@éÇøí+y’ñvðÆÜsoÌ¥f´!9.9.9®ñÓÆO¼1šMñ¶ûú®ñ/³Ò1ÁSS Ñ~Pä¼q£ ̓ÃV‡­[_-~µøÕb*G»=v{ìöÏw·X|Ú.FK­Ýqô®s;Ü— îxÒÂ`ØçEŸ}^¤íMÛ›Æ"5âÔÎS;Oí̸þ/îó뢽Púñ©u§JCª{Zt*fh~­ûkÝ_ëR3Z"ÖÔЊW÷t®U:ì©õoK‡h{çq÷¦b~ÿqß#q¬ f4boÚÞ´½â;Ýàó}]BÚ~wÆoüòÖq—´½ówn7ðμÎ׿Ø+R8Ú ÎãÄ9¡oÙgê}ë ÚÞùµ¹àíaVÆà¿+Ý64¢? zTŽ6ˆ>^ÆG¼øí-\¼?ÑöÎÿÕÕ.k{´šomYÝÐ<ˆþ05ƒìC u"†v@³ýëlC_üâÛ]¯r&ÕûXdÐ m7€ÒWšoùËß3ã­á“ÑOF?MýäaoÒÞ¤½é½¦÷šÞk Fž_v˜pEÛ­ÝÑå“ÁwzghNÎk8¯á¼”y)óRæQDy×ë=¯÷¼Þcgfgfgfh­»ùmæh¡ñPúqÔ…Óî!ʰÂV¯‡˜ÑpFà ©Ÿ¼îæÍ›7o¼æ»D¡âvFûÿ¾~¬fQm7€Òo"ÊÔ¾ÞÊØnŒ¥¹¡™ù­ëo]ëJýäub þèÓ¸ÎrKó· GžÕ¾žvþ_Ü»©fÑ…ŒÃöšqÜ ~ò:ñ=nðGŸ3¿ ê¿ÊßoåÒ„Øü³ówë?Vù9ÙМˆ½¢Ø7R?y—8wçq†ÖºÃöesªç£ÿØ <šß¢ßÿ‰¯[5ÔÐüŒî;ºïè¾TQžt2ídÚÉðnáÝ»Zß3·w¼“ß@édžŸð²Úmh~vÆìŒÙC)åE/½|ôò‘Éb“Å&‹uW¶ø_F¿ }Ü©ãð@ãüÓJ?&èê4¥ua»+–M ÕÿÕ‚W ^-H-åEbí ­lëÂß¶³lš| Þ?hJþÜù?îtÐ7иø_ÅGéÙÿˆã†8†PKy‘øî6ø¸£v×Fçç¿{Ç ;3x?˜náÝ»‰=$µ”‰s7CëÛéüªúU“óóοͯ³'Ú,44?¢o@åE¢_'zwàåöÝó€&ùsçŸv<²e°Ï ñžÖ†æGô©%d-`¨04å‰òDy¢<ÁKnÔ¡b›ÔÃÇÎ¥åÏPúñÒšMñ~K ÍÕ¸!ㆌBEå-'Wž\yr¥Áß¹¿í|gäàüÜJ?:ÍêßzviCsµÏ~Ÿý>{**oY¿"~E¼¡5øgÝ@‡¶ù¹”~ šÑ³wƒ·†»i{Óö¦-•·tÜÕqWÇ]Ÿw޹Ɖ|ÚJ7¾kÑ vªX…e&êÎ’iÓ>¦}Þô~ÓûMo**¯ë%ÖNϳÃÜê–™ø®ÅѰکìüïÅî¹PÃ`›XC¨¨¼E|_ZÓÊkš—Ž8Áž_ŒÕ&Œ:¿ÂÝÐ\‰=$•·ˆó5CkÚ®üÂ&v&ìùÅØT?¢J}Cs%zTTÞ"úu†ÖôÒš¶ü–°óO=Ü51(-<Ùѵbƒw@Tž(O* Y…êD ­x™ö2íe‹"-Š´Ðsí¯}¹*ŸšF¼Ýqäzí?i¥媋»{¼]X|b|b|"Å¥~¯Ö¼ZóÊà Ÿ+™„|ö]'Z?º£Í•vÞ®š·‡^|x‘êR¿+ϯ<¿òÜÐ:†ZÌieCë'ý8æîq‚ÃËôÖsŸ€™3f¦´Ii“Ò†êR¿èkÑ×¢ ÇÎ÷j3Ëw-  ôã3×NwŸš±!C"†DPWy…X/C«ùÌ5Æ#ð »ýôãù^ëGú®54câxB]©ŸøŽß׺ëXv™çÏµÊø¥­¸|ì8»ýô£Ãó^µ¦L3x£ÔçWž_yNu©Ÿ8G3´Ž Æoi5ݾîP­c‹#†æMô¨.õ=:Cë(WmÚÉ«!»ýÿyÌŽˆâµÿ´/Wf¬©ž£è!‹~2Õ…GœUvmÞµy×f1‡×N\;qíÓoŸ~ûô[fæÃC+‡†u»ÖíZghtwØî³5ÆÒô14ÎùlÀ+‡j†fïÍì7³ßð„ Ua3Âf„îÚ•úÄà í7~V¯Rµ4}  ýÚ×`ûìÄÄOL¤ÆÔL¬‘¡üãІ ¾‰ìð ?›jZ­Á«a†>úd(5¦fâ;ÚÐ ú¬Šê*¹°Ï74V|UuØÝyûI±·¤ÆÔLœ£é® cŸ Ó2ÎcM/˜{³Ï×G½:û½ûwæg­”ÐóllÑO ºÔLôå ùç|VÃÔ¡;|CãÝaíÿ®1ÖÐì‰~25†GüñRš¦4M1øØ&ÂàCŒ<ï列#^Ž0thØÝbî3÷Ë4z2SN3 ŠsK²a¦ç7q3MgšÎ4¥ÒÔéRø¥ðKá†êß«ÈÌ¢ÑShôd(Ž-Tš:‰ïeCßÚn³Æ™¯îÉÞ>ãÑ÷—%‹bšC±·¤ÒÔIœ—Z»¡±qó«…°·Ïxì_öÀ+—’o~)üR8•¦N¢/§çÈŸTî¤YDÊ©®QAqìí3w·hê~ÙPý‹Þ2•†AüñÒ_û›1ÂàÌ#Fž7ýÏéNÿSÏ­<ú·¶8H‹'óãµ£ÛNøÇ:°>(ö ØƒbÔ›Š¼K{—ö.ðlàÙÀ³zžøÛ¿“ïðf´xÞã©Àúß}ZÏS!MMSüRüRü(:õxùôåÓ—O ¯"WlŒpxH‹'óc`Óˆc–zê¿›E7‹nÔ›Ú\ZriÉ¥%†êÿñŽãMiñdêÙ`%ºF]pp-sßTÏc6ÜPpCAêMmĺè¹}½k•˦kRK«t]}fÆÇC†šŒ–\Zri õ¦6â{Yw½¬Z5Jî8šý|æG7·1I«ÞŒž¾|úò)õ¦â\Lœ—éyâį̈’vÞìç3?60Ö½òÝ™½Ñg êÔCôâ ¯®ýîKÿXvõ™[ô±½kqPw&Eo™zÃÇ þx"Ðá®Q¦gŒyù 0ïé¼§ó ÞöÙiwT¾4wÞwœØ·ÇV»“ºó9¨Ý vƒÚQuêq"àDÀ‰=¥_ÚÈÑÈïӲ§qMhî¼ÇXuå÷ #Í&ÛÉ®?èNêÎOv~²óªN=]XtaQÝ•ò¼ØbL¹f´uÞûvЭO˜¸Ùú>½{#öF,U§Þ6zÛè­îJ­ù¤Î$—Ý´uÞwlt=iêúʺ³jooŸ:)uRê$j/w½q{ãöÆÍÐ1jÐwòÏ®v´u>ll¹gZ„µž§)wÞ}x÷áÔž\™eþ•ù†ê?é^Ä­ 6´u>llÿÌádŲº³ºéঃ›R{j ÖBwÚ?k8»bYöð6&Ý‹[ÔÆÐQEs¨=5ßźkd?/òé¸×ìá?l¬Þj®ãîk†ê_ì9©½Ü%οĹ˜îõLÛñ¹S8{ø;õ[¹¼ªžÛáŠ>µ§¢ÿfèõbLg¹Vöð6Žïça¦;«¢ÏLíáÃgÂàAŒ<éí„·ÞN0ôñ~ré·ðÀ.4t>fü±Íà9/tçvNŸ9}æô¡s×õ× \/ »:ƫ͜ËLó/²âå±Ç4t>f4w«æèª;ÃÇŒŽãd8—m­ºµêÖªº«ã?¯CM‹9´r>fÕèL {eƒß­gžœyr† Ì]=÷ôÜÓsîêD× ä¶‹VÎÇŒ×Ç}ר_ÏåK…” )’fžfžfNæó4ó4s±ºkt}\t¸ÿSvï3FךùÆm—žpeOÏ==÷P€¹K|ÿúvöM\:ûÈtvï3V<_¿z˜ž@ì9©ÀÜ%οtUÝX#°tmvï3ŽIúã¡Ç¦ýÍ=]ô|·¸^à:ã\&úoº«óc›šÍ^°{ÿ˜ñÉ¥N…»¼Є·ÞN ñ¾€saðûâëyÒ¯^¼t?̶[ZåPnµN.7Øbâ—”þõäÝ6Ð?[ ÷¥sÞ­ž·zÞê©»"UÆ{Ö,5=/6\Ô=7©Z]Ýy600Hû=í÷´ß©Æœ·3vgìN=OœqØÿºý`‚Û¬>n>¹úbÝyî·§ßž~\™kÄüë®ËÑÇËU_¬æ½ôˆ ÎûlÆeÜ€PÏ«q¸_wûÁº¯P¨Ã\ð{Úïi¿‹ï_ÝuñÞ1èÁöíY5–¶°_îv[wžÅþ“bÌyâœKÏA³´‘¥Q‰1ÏþøÓ£°`õìá?ð@ÅNŸq7ø %úTcÎ=7݉,èâde«Î]t^ €¯6 í¯çyÀ¢çLâ}ç.Â`C€‘ǼòbÈ‹!ºW‹=e—X”v.a]°/pV§ý²ËGÏïm<ðpÀCª1çv=ízÚUwE*íiøY{žþ•ţݤNǯÑíÝ·vßÚÍ“°sA”e”e”¥îŠ„^¼Æn7pÖŽµê”¾¨;Ûw¾¹óÍo¨ÆœW?°~`ý@ݹ]«½I‚·Y5&݈¸ÔÚàPz%÷JîE5æ$1çÓ7âæµVó^Úz~Å!&īگãxëë—ºoZâ7+q§ü²Ö^µ)Ü®µË¬FAÝyǪ1ç‰ï\=?ɺçÞ¡†3{õ¬›<<Ï[w¶Åþ“jÌyâœKwEšü2vzåǹ»OÖR,ÆG¾7³l û¾DÿjÌy¢ç¦»"§µR|æ¨sý0¤ÃŽšQÿ·çñlh}=ìÿÏE¶ öµØcr§Ä"=OYòbÈ‹!T#2X=ƒÓ#F#;ÉN²ž4Eí.9ÙænÓD{p²Üå ž†‹©ÓS§§N§&sÒØ˜±1cct×ÂÝ{‚ç¯UhÜdíXý³9ö»ôü"tOèžP®Ë•*;èyBíˆî'<Ü €³v ÷Zœd§;ÛküÖø­ñ£sÒëØ×±¯õ\û[®¯ÉW%LÓþŽ ®Ip›µãÀÇîiÖ%uçüÒ‚K .- &s’˜sݵø¸ýaë’êßKÿOýtß´Äo–ª_óß {ƒk–ë[fr SÝ9Ç"j2'‰ï\ݵpî:èÓyÓØ«gíèõ—ô»îl‹ý'Õ˜óÄ9—žãÿ\©¦Ë]à¬{TÝzÑñ°ž÷36fl Õ˜“DŸÍàý»~ÔSÍ»è¼ríoú1jG­&Nzî}(úÏÔ$2Xƒ €‘Ç Ü1pÇÀºËë^Ñ•ý¯gÇØeU³ã•–뾯»Ãï¿;œšÌIæ³Íg›ëy6§ŸÅ2³£¾4n²x¬°²NBKC[”ò)åSÊS“9#qIâ’Ä%º«`Õ®ÚXÓóy·Õ¢æxØÊc¦Õô›šÌI¢Ï¦»]V97¨´œ]zvŒ×½¾só¿¦çç&;šDæ«_þ ƒ €‘ǘÕ6«mV[ÏïàVÅÛSg|ªà/>½ÂêÔ®ð­•bXò`©&‰Å•j§í¿4³éþý ›½OÊü=ÐWm Ý…çnw×}_{öì  &s(ëœØ9±³î*”‰s¹äó³:(~7WŒ<ÖÔ~S·ÀñÍu‹ p,1¦Ìýò_Wr¥I¢éOVKíæT*Rà»ï<§M»u¦:ßE¥Oêþ®˜ž@½[ônQ*3gœN=z:UwoýWåÅêiŒ±=?Ò]iYbjë.öñn¥6[Pþ…ñß%~5m^<ÐrƒÃ×&Q5oF¶Ü0¸Þáš®CÕuጇ{‰9¦ŽÅ}ôü¢hJÑê?‡,<¾ðøÂãzvW[]ñY¡¶Êá=ÍZzÝìxÕñNÅX»®¥o˜2ýÅx|ñŽöæÁ¦×Z®²keYp÷ô†½Ü稜ëº+è’:Û@/6t>Sk¤îœ{òÛ“ßž¤&s’˜s=7åÛ W©5Rý¡o^yúïÿ<æê/}Vè¾Zq,¢&s(+šR4¥¨î*Vr‚É)¿•KލmÏì8²÷ëi¿•åÙ?ðJ‰-æÃËÇßfRÍtk©‘ÖC¬ZÏê9Ë·×âG‡{y:Nk·Å$ýûRÑ#`¬: Ós±¥2s(+z·è]=õP c‹jØ'ë¾¶¡Iq‰ÕÚ‰}~ù¶M ˆý¹w6mJn¯ö¦áÁ²Ÿ÷¿m€ãM5ÇÀv+ü{›é¹í°èEP™9CôÙô<ˆªpC?÷x5ǨyñÀbL^ÕÕ&hœîœ‹þ35‰Ì#Î[òOLŒ<ãµÛk·×nº¼à:ÞÃË6VC»ÄPl²³äðâ­2>|TÞa™V2ñüÚõë}wª­ tÇd×.zn»ziÄ¥—¨ÌœqaÆ…f讂ݧ®¥º[¨íŒúYa>Ô­ˆß̉:(=·L>¡ºçY¬87R÷Õ*y¨ä¡’TfÎXqqÅÅzžGÛýåÖaŽÑª¸^¶WüÁjìÌüƘÌ|Í·Ž™d¢æ«üÇv°²˜¦ûÊ>|Àó sH³RÍJ5+¥';ÔùR­±jhšˆ(wàf÷{Ö…3_ÿ-¶Ù¦Z$¼\óýÌZOU× JŠìdÒݸXq=a^jçÔΩ´A³˜g=ûêî%kNKJˆ Rg€ZeM…ý&vbLÿÊ+Þ,_²qúÿ¯:_ÿ‹C²G­±º3/ŽETfÎß³º«Pñ÷ú•Âj¨gŸì›°Ô(ö^¹³>ý¾ý4óÇ×ó#×/í¦ûŸ«á¹Wÿü—º¯MìE©Ìœ!γtW¡ý¤EGìf¨3.»²J’52SÿûüÜÆÞYpãðÑÍ+Ö}Í¢Aeæ ÑgÓ]…;&í;Õp!ξ1¸ŽU²zî€"zÑT&2ƒ8ïÒvLŒ<㯪Uý«ªî‡mÚ'}jV½ æøß¸4¨ó>›qûÍÿÚCÚvwæV·•½ÍB»WžRü£ãFÿÓ^L-w¬iÐ%õ´ÞÍ=:=è+ÝwäÛÚ·µok*3gl«»­î6=7eª¶z´ÇŠíj Mÿ§ oܦDÁʽ›õèòÔ¥ãÐÒ &V{8¦ÔÊs¶¾í#}/®HÿŽ<æý³å´zÞ‹ç?3b¢mtg~¶Ål‹ÙTfΈ´Š´Š´Ò]…aG޵ª¶*—Û%Å.|ãaä°¥VléÒ¿6§Çu¶–ÙÒÂqò.ë2Ö~í`Ú|ÿ¤'U|“KǼ©ÊÚ@¡ç.²IÑ}ÇW_u|•™[§‘ÿ¶T¢"k;©¡]2þ€Ï8»žâU•Z`|­¸2úóê²mØþFÎ{H¿WhyÁ§àš uޏ\ ¼^1Ù|š¾ë ÕØêáTºâÝWûìÖ³[ÏnQ™ÙM̳îüwŠhTñN^yJ^¼tZTÂð`'ÃW-#'ˆïYÝùwôëí8u¿zöÉ–Ž×šüÏ#, †4¾ähÙëìÔ ·5ãÂWqèÒcê¤æ™ ‰Uñ3V‹ ‡Ìu_›Ø‹R™9Cœgé®B¿›f¹Pg,4}:þx•Ð~'tw~7Ä)öŒk¬80M0?eÜPý·Œîê».Éa€îû½*3gˆ>›î*¼›Ñ9è+àì§}âw±êÝ™½h*væNœi/ &FžqtÚÑiGõ4 w˜WÓý¹:`ã[ÆAFÛº,˜è阾 ”þÿÞXsjPµPõßÎ$ dùâ¾´rËäΓ;OÖsLõšsîïž ¢ëe/ îôÓÿýjrqñ#ÆA.‡†ù/Lÿ_ÝæÎ¿·³Wr¥I¢:oçûÅ¢Mò9Ý™/^8¼0•™3\N¸œpÑs5†¸årî6JÚÞÿq°íÿœ¢×o8xX¥“·‡v]`ùFýpáÛ:;êyÒú;ë﬿CeæÖidð«ve;ª¡Qrã“ïF|e|«x9£íeº•xhqaJhk¿Š†þ¾xýƒ–{Ô´öU ¼àÀåŽz®é¿ÖâZ‹k-¨Ìì&æYwþü1¬¾ãAàìƒxï+Û‘nß³ºóïÞvÂÒ_שa‡ìúëH³%›Ò¿6ûÆ‘åÆÞO¿Ã×e½84¸w¬š`¿íËÆÏ×}mb/Jeæ qž¥» #‹þâÖYuð«â+¾ë¶wsÇo íçóÊO?U‘k»ê¹ëŒèEP™¹µó7 (žZÜWýj^€wh8Úý¹îü‹^4•‰ûüçuÚƒ €‘gl¼»ñîÆ»ºª³ÁkOøVUgÜñjãKc3è¦ÿWõºøí,篶6з|G–½M(·tœÚqjÇ©z®ÃvYl§ PO\Zþÿõ^âµYœ®¹¯q¹Ì4tþç©Æs\ì½=Éøè »ø¿ugÞm¢ÛD·‰Tfnm£ÅSµÔÐ(q>[·f™äoÉnæ7Æì`fþÕèÚg¹.ßÓ¶bÉ?UÝŠVª»ê¹îÔõS×O]OeæVýðuoW%Z ’qÇ}líþmkNkæ÷ªêýÌ´{’êG¬ òO¿G°k«»jkíÐÈÊ£¥îüÇûÇûÇûS™ÙM̳îüïðc”GKàìø¶ë[%šnß³z~ú9lîâ=ÝUqíoÀÆÿÞ¤´\™êvAÆ™ÙóûÝ\1òXÓR «Üq§ÎXŒÅÇ•\iò‚úÏ-â¶”§%åÞÙ´)¹]¼ªv6 ;Ú™e¾¡£þ6ЈÒÇu+¡û:ûtîÓ¹×äZýÏ1¯QÞÁK ’6ªv¶\óïÉížf-½nfþߦG«Ë÷2;ª¶6Љ¥-ñÖóÓ·]I»’v%Q™ÙM̳îüŸXºº½÷màìç˜,âàÅÎ?·ˆïYÝù÷Y5Lª£†r©‘ÖCÄ«J Ìü[5_,F³=UÛT«Aýçqž¥gŸ<üB‚‡›ÚàÐÙsËÙÜÑÆÎtô¹Mî‹u_§èEP™¹µóïVÈe–U'àìo}ÞnEÀ~Ýù½h*öù%Öª¼PÏGø0÷7¯9Að­Ø;2õ”²k–Ûêù/Wó GÌìüÂfõ¦6~)+ÎSÔyÃ4¯Ú3m­¶çØXâ‡27ʤÞÔÃ)ªN¹2ór·EòÃSÇÜ®¦U}ïíûÓySæÿÚ¿X<Þn›šÛ@?Ì?•êvzS›•…ƒ‹:ŸVC£Ä}{ù’fs>þY)¥bKT[«è¢Wh”_]êMm.zmÜèW—8»Ç•…ÇŒp>M½©ïº%?ǶUÝžßt¦Wô{œ80à²Ç¼ìk%Poêa6»ü=ã;êÙ!§m‘g7Æ8$k#sóß< Poj3b¦×`›yÀÙ=>Hì0¯æê @vÛµy׿]› €÷ð¸ÿÁoMÔ¿<²ºv|fþíëI±Uk‡é¾;õ´Æ‰›ùÿ†ðKKMìRÕÜâ `uRÏÀÎߘ¿+UO¼ªè !›Ý.ˆÖχjkq°:q0Wçgj¸¸úyOöY¦Uï{°‹ÛIóãußWÃ5_¬¥˜+€Õ‰+€¹€–ä£+€Å=ÐùßÌÿ6 m€žŸhãÀûÍÿÚCÿÊù[³ÿk§ªÿÀTfÎüñtòtòtÒ«ìÀé_[µB?ø.«’™åñó”_7^·íÞ>ipÛ£,†,ò7ZY,¡˜šŸ\|eñ•ÅWR™9óGwþÕó àô¯ªÝ¢(;;ÿÌÿÛ†ýF¼²º¬æ6¡g·nÔºQëFTfnÕ¿zžÜôšÍ3 ñªöölTÑ£yÞjô|Ø3€gÔ˜QcF *3»ÿˆyÖžœ»Ï¦2sæøžÕ5<X÷Ð"ÐÍüƒ]ÓŽ ;¥æØÐ3€©Ìœù#γôÄ¥ª|°–`CϽ*3·vþ<8wŸ,zÑT&>ìó» ð‚ 33Úû³{Øîa»‡EŒ,ù ‰¿Ÿž ¼¯w7ÞÝxW÷Ãs6xí ßªê €;^m|©blfþm«¹ß~jùo“¥Í€º#,ר-þö‚ïȲzÚ TfÎè8µãÔŽSõ\à²ØN Î¸ÂÉo?ií‘™Uñný^aÿžä›Í³»íº^=ïÈïè »ø¿ugÞm¢ÛD·‰TfnÝ5¤Ä¯¦Í‹ª­d7Í¿®ÙíLµWjŸ}ä>Ø"¶ê“5·E+Õ]ƒuçêú©ë§®§2s«þøº·«­†FÉÐ~ž ­¯‹WÕu¬K«¯2ó¯ÞFvyY;Þ·®åä2ߨu-}ôÐôZþí-ÕÖÚ; ‘•GKÝù÷÷÷§2³›˜gÝùß;àÇ(–ÀÙ=ðm×·J4;ÿÜ"¾guç¿ú°¹‹÷tWÛž¿ÜYŸ~ß~š©}õÍ#55ûÜÖÑYÕ·€.>®äJ“ÔnçYºó?¦íùóî瀳oÙó÷×nãu_§èEP™¹µóÿöBe÷²· €³{<ÜZò­ª;ÿ¢MeâÃ>¿",df´A·×N\;qmæC_ñ÷s>ôMyÆÑiG§¦ûAÚ}`^M÷çê €om?è²`¢§£¡µ±æÔ j¡éÿUìºeUª›©­ dP²|q_NƒsËäΓ;O TsÎýÝÔÓ.qðêþfâ‚ÿë‘·)QÐõüÈõK»úûžŽÓÚm11þÆ´µ™­øG•N4¬ÞH=m ß/m’ÏéÎ|xáðÂá…©ÌœárÂå„Ë =m Ûó#Ý•Üm”„…ý`;*ó 1Kþv¿_kS7› µÕßê1|[gÇkº¯sýõwÖß¡2së42xU»²ÕÐ(9õ¢ÕmŸ5ÿ·ç)^Îhûîé {¹ßËø_ oîUÐæ~ú þ{ÔÖZðGàrǃºó­Åµ×ZP™ÙM̳žßÑÿ1¬¾ãAàìƒxï+Û‘nß³ºóïÞvÂÒ_שa‡ìôtÀä9«Ò¿6qñ¿²©Ò6¹¯Á'ǫ⧟:×7ÿ{•ó —.'¨Ìœ!γtWadÑßCÜ:gãO?«Èµ]Ké¾NÑ‹ 2skçoP<µ¸/pv»4íþ\wþE/šÊć}~ €óº¼ú¦GŒ<㯪UýKϯ±¦}Ò§fÕ ê €«¬©°ßÄîßÓ÷ïÙì=Pc~¼Ç›íq³mÝ¿émÚ½ò”ô¿^¿åüÕvíﻹG§}¥çÚÓÖ¾­}[S™9c[Ýmu·éyaµÕ£=VlWÑõ²š&•—6KØ(nç6xìï«¿´ÛÒé݈º%½Ë¹Xþ»I*Ñ´LËrÕöä`ÏfÄDÛè¾£Ù³-f[P™9#Ò*Ò*ÒJw†9ÖªÚª\n—»ðž~Ž‘Óã:[Ëli±rÊ(ëÖ~í`Ú²ÄÔ:Ö]+ÖžYÆTüò=m+–üSÍm Ð‹s٤辻㫎¯:¾ŠÊÌ­ÓÈ÷ Q‘µ‚ÔÐ.Ñsk£þ.m¬×þðíY×1"Üݹ¾Á~÷á­æÚm³üŸ›Ê†ép±bEu6‰:E8•®¨'€yvëÙ­g·¨Ìì&æYwþ;E4 ªx‡8Ǩ„áÁN<Èâ{Vwþýz;NݯŠ}²ÑÊb ÅÊôýìÛÿyTŠåÞÚ?5KpÙûõ´ßÜÎŽ{¾fœÃó^5§L)ßÞ϶^uñwJ´âðï?X\üˆqz`‹ ‡Ìõ|¯YEZEZQ™9Cœgé®B¿›f¹ ïº$‡º¯Sô"¨Ìœ!úlº«ðnnDç ¯€³oœö‰ßŪtg^ô¢©L|Ø™;p^¤Ð7=`ä¯Ý^»½vÓsLïáe«3>¼gi7¯›eº™ÙGd|˜p*gÓ¶TÉ[±;wÜQ[|Çd×.º¯yÄ¥—F\¢2sÆ…f\˜¡» vŸv¸:t–zâÒô7…7sÎÌפq”Ù7eÚ;0ï¢Únçl9°âÜHÝ×|¨ä¡’‡JR™9cÅÅW\Ô]…î/·sŒVC»d¨ÉÑNÕŒ«Œñô-5-35_é¤ëÓ5"VsÈl+ =ïèAàƒÀTfÎhVªY©fz®Æxq¨ó¥ZcÕÐ.·tngëP¹ÂÎÌŸ 52·žZ¾á›!]מ§º&QRd×à “îÆÅŠë‰·S;§vNå:˜l'æYÏu0ÝKÖ,œ–”Dœã‹C²G­±º3/ŽETfÎß³º«Pñ÷ú•Âj¨mÏ_aeÞ­†fæÈ_fŽ‹½·RÍõ‡“ËþýyGúƒªá¹Wÿü=w{Q*3gˆó,ÝUh?iÑ»ÀÙ76ݼòhÝ×)zTfÎ}6ÝU¸cÒ¾S àìƒëXÕ(ÛXwæE/šÊDfç]Ú }Ó#FcVÛ¬¶™žÛf&¯Š· §¶8}ë'<©QxÅÖVŠe`Ƀ¦¿˜xŸá&Û1k;îx·¥v/ËÕÿ¯Õ¢¶6ÐîÂs·»ÇëÎùž€={¨Éœ‘Ø9±s¢ž6h™8—K>?«-Nß²Ó©ëðée:9/ò.büª´«ùãî¥F”^Uz¸Ã!Ö•ú6¨Üîêwæ=Ùg©ÎwQé“ú‡¿+¦;ów‹Þ-z·(•™3N§žN=ª» ·þ«òbõ4MÄ«júÅ8ï*ߨ®ñÝc¶À4Áü”qÃ’eJ•+Y)Ì%ÆtT½®ïW÷ÃSÇÜ®ªº 4êÂ÷sL‹ûè¾Î”¢)ES¨ÿ²ðøÂã ë®Â©«­®ø¬P[ëD\éÛf@ÕΖk*ï0³(™h²ÓØ®x+ç´²ÍJi±Í6Õ"AüôW«í]¼ØÐùL­‘zžÁvòÛ“ßž¤&s’˜s=?€Ø W©5’8;ÆSWyè³BwÎűˆšÌâ{VwŠ+9Á䔿ßÊ¥ GÔ¶çw^7èô?Z i|É4ª¨í¹âÛLª™nOüµõm9è{¿–ËŽÄ•KÿŽÌ¥|Jyj2g$.I\’¸Dw¬ÚUkz^m­“ô-žŒ[?ÿÍ܇­z°<ðjÌy§]O»žvÕó<Ñ= ?kÿšÈ6‹o7©ÓðákôÜ|éÖî[»oQ9/Ê2Ê2ÊRwE /^c·›ÆMÖŽµê”ÖóÜå;ßÜùæÎ7TcΫX?°¾žçAÞ®ÕÞ¤FA7Y5&݈¸ÔÚ`Ó­Wr¯ä^TcNsnhE’nÄÍ jÍŽ=«ÆÛµv™Õ(¨çÞõëóÜ÷\ ¾sõ\“wϽC çÜÝ'Û7Ž,7öþ¿Oænl¹¬r7»ÕÉø_yœžZ}Ó£7ÆKü&þ­£e¯³SƒÔ°ówn>ðð÷}îK5æ¼[=oõ¼¥çžUÆ{Ö,5ÆMVCÄMª¦ïpææi¿§ýžö;Õ˜óvÆîŒÝ©ç:à‡ý¯Û¦}“UãÑÇÍ'W_¬;ÏýöôÛÓ{?ä1ÿºërôñòGÕ³cϲ›?î×Ý~°î<‹ãu˜ ~Oû=íwñý«».Þ;æ=‘[»eï>?­>Т¤w9ËÿiwŠÛ;{¥Î)±«¯oÅm”h·5ãÂW± Ÿ1øZ‰1eî—ÿZüMñœ`ß„¥F±÷Ô°ÿ/ma¿Üí¶î<‹ý'ŘóÄ9—ž“ÞÒF–F%Æ<ûãOÂìÛ³àæÏÅNŸq7Ø ýª1牞›îŠDtq²²eÇžUãÕfa£ýûêγè9S‡x_À¹‹Ð×`äI¼xðÒseêÀvK«¢}óñã?[ ~l<{ôÚÊzž5¾,qYâ²DÊ0·$ÎOœŸ8ßÐ÷ò»™ƒŠÒÄùø1dU•eåéÎð¹€sç¨ÃÜ"æ_w]BV (ÇÎ? Æw3N *jè#Ž?Ôanß¿ºëbWªc™¡WÕðÄßâãJ®4IÌ|£­ÄóáåãÝÎŽ{¾fœnþìÕ{V³z2%öœbÿIæqþ¥»:ÝÖlvv dßþñc»ãQ£íéyÈÎÑGG¥s‹è¹:Šþ³¥ÓÎÀSìÛ?~0н_=;Ñs¦ñ¾€s¡of#Oz;áí„· }ŒŸ\ú-<° ­œl3xŽÃ ݹÓgNŸ9}¨ÀÜu½Àõ× è®Žñj3ç2Óü‹¬xyì1!îÇŒænÕýBugø˜Ñ1£cFT`îÚZukÕ­UuWÇ^‡šshâ|ÔκW6øÝzæÉ™'g¨ÀÜÕsOÏ==õ\]+dÛ.š83^÷]cÿ§ºs[*¤TH©4ó4ó4s*0ט§™§™‹µÐ]£ëã¢ÃýŸ²{ÿ˜1ºÖÌ7n»tçVs(ÀÜ%¾ Þ(qéì#ÓÕW8ùí'­=t¯ þ÷z_¯JCmͬn5ÙÕy_õ;óžì³TCô+ÆŠçëW Ó}ÍbÏIæ.qþ¥«êÆ¥k³{ÿ˜qLÒ=¾0íoîiì¢ç»µÀõ×éç2ÑÓ]ÛÔlæð‚ÝûÇŒO.u*ØÅÐw«è9Sx_À9ƒÐ÷}ñuŽl|1Fþ¬VC‡ËG·ÝzÄÓOU¡–Q-£ZzÖÈeç0‹… q?lt=iêz=˜I¼I¼I|ê¤ÔI©“¨½ÜõÆíÛ7CǨAßÉ?»ÚÑÐù°±åžiÖKugµûðîû§öÔàÊü+ó¯¼8é^Ä­ 64t>llÿÌádŲº³ºéঃ›R{j ÖBwÚ?k8»bYöð6&Ý‹[ÔÆÐQEs¨=5ßźkd?/òé¸×jØE§t}•_zÕžylûhŸQ?K# ýÍÜ«·šë¸ûš¡ú{Nj/w‰ó/q.¦çG*i;>w gÿac§~+—W½¬;«¢Ï@í©è¿:F½ÓY®ÕŸ=ü‡ãûùDØéùéè3S{ø0ÀÙ‡Ð÷c#/øç=÷tž¡ù]§ÝQ5xð{ûöØjwRO¬ÒnP»Aí¨:õ8p"àD€Þ§"9yøuZö4® î{ŒUW~Ÿ0Òl²ìúƒž§ß}²ó“ŸPuê±°è¢ õܬÒób‹1åšÑÐyßqDë&n6†¾OoÄÞˆ½ÁÓU¤ÑÛFo½Õ]©5ŸÔ™ä²›†ÎûŽçn´ õlð €Co½=DÕ©X C+uîÆúo|'³“ßqÍ'ã£\vëΧ8ÎPuê!¾‹ Õ¿uLÚÂ~þ}GËrëš4ÑO±Ï¤êÔCœ‹é®Tå¯Ýv”*6¶Ù… UØÏg~Ý霕û#k£êFfº³*ú Tzˆ^œž`£¯oe»“ìäßw¼ëÔþx¾†¾OEŸ™ªÃ‡!Îâ܇Ð7‹#Ï›þçô?§ÿ©çi}‚[[¤­“ùñÚÑm'ü ¶{PìA1êMEÞ¥½K{x6ðlàY=OëßÉwx3Ú:™ô¿;û´žÖ%š&š&¦ø¥ø¥øQtêñòé˧/Ÿ:^E®ØáðæNæÇÀ¦Ç,õÔ7‹nÝ,¨7µ¹´äÒ’KK Õÿã!ÇšÒÜÉ̘Z¢ktÐ×2÷M×èÎ䆂 n(H½©XÝõrp­rÙtMj‰cõ‚.°«ÏÌøxÈÁ@SCGqœ¡ÞÔF|/ë®—U«FÉG³ŸÏüèæ6&iÕ;Cõ/ö™Ô›zˆs1q^¦»^ífF•´óf?Ÿù±É€±î•¯èΤè-ðÜkµ½8CÇ«kG¿ûÒ?–]}æÇ}lïZè¹£Œè-SoøÀÐ7;#ïÇ#^Žx9ÂÐ!`w‹¹ÏÜ/ÓâÉxL9uÌ4(Î-Éþ…Y„îÎ4i:Ó”JSi ~)üR¸¡ú÷*2³hôZ<Þ»ç?8ÈÐŽ>}8šJSi µ!jC”¡µûaæ©gnwhñdãqw‹†¡î— þôgÄË/GPiøÀo׿]›wm&ôÍZÀÐÊbÝ®u»Ö¼ô°ÝgkŒ¥ÝchœóÙ€WÕ >ýhö›ÙofScj6Âf„Í=-¼’'->«ÔÖÏsYç£Ëh÷èWš%”)ÛÔc{ÍÛº³×z|ëñ­ÇS]j–Ú9µsjgç¥ÎKõ<¹Öÿ^‡s›hô¼ísÑã³Ü¾1tä_ßÐXñUýÕawtçMì'ÅÞ’S3qަ»‚Ž}‚LË85½`îaÌ>_wõêì÷îß™ŸµZP"YwöD?êR3Ñ—3täŸóY S‡jìð ÞöyXû¿kŒ54{¢ŸLáã¼”¦)MSšúf-`hÅË´—i/[iQ¤EÝ„}¹*ŸšF¼Ýqäzí?iú¤媋»{54t`OŒOŒO¤¸ÔïÕšWk^­1´Ž•LB>û®íÝÑæJ;ï× ÍÛË/>¼Hu©ß•çWž_ynhC-æ´²‰¡é“~s÷8‚NÁáezë¹êL‡™3SÚ¤´IiCu©_ôµèkÑcç{µ™å»–¦Oúñ™k§»O ÍØˆ!C"¨«¼B¬—¡Õ|æãø„Ý~úñ|¯õ#} ÞNMO¨«<Ðk“Ò&¥ø¾Ö]DzË<®UÆ/mÅåcÇÙí§ž÷ª5eš¡úûIªKýÄ9š¡ul0~xK«éìöuÇ€jÛX14o¢Ÿ@u©ŸèÑZG¹jÓN^ Ùí§ßîˆ(^ûOûreÆšêÙ1вè'S]øxÀY%ýuÀ„¾šòDy¢oz¿éý¦7•Wˆõk§ç>anuËL|×âhXíTvþ÷b÷\¨qÂÐQBC¨¨¼E|_ZÓÊkš—Ž8Áž_ŒÕ&Œ:¿ÂÝÐ\‰=$•·ˆó5CkÚ®üÂ&v&ìùÅØT?¢J}Cs%zTTÞ"úuo彦m¿%ìüSwM J Ovt­ØÆà]O”'Ê…ŠBV!†:CƒŠ$I(bè ~Ðøpok´ã ?ûäÏÐM·íÛššß¾'|O$J>”|ˆZÊ‹–ÜZrkÉ-Cëë ÷\?ùh~n¹\¶$ÊàMSG÷Ýwt_ª(O:™v2ídx·ðnáÝ ­o™ÛÆ;æë§7ül„—ÕnCó³3fgÌÎJ)/zùè壗L›,6Y¬»²Åÿ2úÍhèãN‡çÏPò®®ASZ¶»biðvRW ^-xµ µ”‰µ3´²­ Ûβiòxÿ )ùsçÿ¸ÓAß@ãâi¤gÿ#ŽâB-åEâ»ÛPýÛµ»60:?ïüÝ;NØùkœÁˆw ïÞMì!©¥¼Hœ»ZßNçWÕ¯šœŸwþm~=Ñf¡¡ù}ª(/ý:Ñ»3ø£^·ïž4ɧðñÈ–Á>ƒÆ{xZ{šÑ7¦–µ€¡NÀЬ_gÿ:ûWƒOÈßîz•3©ÞÇ"ƒnäŸЕæ[þò÷Ìø!êOF?ýd4õ“‡½I{“ö¦÷šÞkz¼)´Ã—Ý#&\ÉwÑï'ƒïþôÎМ4œ×p^Ãy)óRæ¥Ì£ˆò®×{^ïy½ÇÎÌÎÌÎÌÐZwóÛ4ÌÑ"5€F]8íᢠ+lbhNf4œÑpFCê'¯»yóæÍ›7 ­r‰BÅíŒöÿ}1üXÍ¢ùè¶o ej_oel7ÆÒÜÐÌüÖõ·®¿u¥~ò:±Ž†V¹•qå–æoŽ<«}=ÿìüÿ¾¸wSÍ¢% ‡í7Ø ¾yóæÍ›ÔO^'¾Ç ­²ÍÌï‚ú¯ò÷[¹4!6ÿìüÝúU~N6xo$3;3;3±o¤~ò.qî&Îã ­u‡íËæT ÎoÑo«3ºÛ04'¢W úTQÞ%zw÷÷®4«àï™®úõîtc@¼ûÜ*g ͉èS?ÈÀP'`hýdøÀŒ3lÍÿ¶°eõWW¯©í¡íPüö•¼?Éxkxcî¹7æR3Ú——×øiã§Ÿlo»¯ïÿ2+<µÝ²9oœÁS#‡­[¶¾Züjñ«ÅTŽ6êEôD¯€ÊÑÑÇËøˆ¿½…‹÷'ÚÞù¿ºÚ¥`mVóí¢-«üÑóf f}€¡NÀÈ&˜p`‚Á¸ì²Ò·Œï^ò¿§½в£F9ûg¼¼´åÒ–K[¨íy{öíÙ·gë%ÕKª—dhõËíó©Tg™O\Ô5)NK­?ÇeuŽ©¸¯Þ¶ÿ¼-^ˆmˆmÈs»çvÏí¨í¹×ÿ^ÿ{ý3>úÕÝ8`e¥Úc þñÆ£¨–@CÊÄnrýÍjlµSƒ×ƒF&D&D&¤öIí“Ú‡jÑž¸«qWã®f\ÿÛ^†´q[­½ЙˆÖ½}ÞfüÞ—XvbÙ êD«Äúf\g"Ö–÷y«½ÿ¶—3¸­Îø½‹ãu¢=â;]|¿Z}³ÆvÅ]¢¼‹þøý¾½šŠ~¿\‘zì­u£6­zÍɸþÅþjÑqN'Îï ­¾“ð“ÃG]?ëçÞBK;ÿ'œÜ\žÔw45ôÞEO@ô¨í=½ÿØýŽ*í쯽ÿõðïjùß+»¬äA㻆޻è S'ÈnÀP'`ä#s»Ìí2÷?~ ÿ‹ÿ„9.©iÉ ñÁAy·õsÿí¾Ù5CYÕì^¾IÆï÷ÚW×¾ºöµ¡m寮›ònJX×°®a]3®‡j~?<[þMžÖ×ÅI¶ëÖ¯[âÉç†Þ©_{¿ö~í_ìz±ëÅ.*DÛx?ð~àm¾Ú|µ¹Á†xG‡g&±ýë r©”×@íï-îe·)ãOú˜!1CbRÏ¥žK=G…hÛI‡“'2®‡ˆuÎ[*]~^®³­Jy·õ“’Úu}Йyî5î:Dgü~×…® ]Jmäb­3®‡yîƒ69D§¤ó:“wwþÏËÅ<©U)b]óE•.gü~Å1ÚÐ6ñý.¾ë3®ç:—Î+’×wþ^efÖŽ>kú¦òöV†Þ©ØŠ=!¢mâüNœë|(F)“6Å{Foç”ço á»ÖÇÁ"ãOºèˆž¢m¢¿—q=4²²žQ¾Éý·Ük†äáè79²kpÐ/þuR\R3~¿¢Lm gC€‘ïln±¹Åæo<·8•.tÑlã<¿À<Ój›P/¸Â ûÑgœ—güîÖXÿa}ê!5ƒ¦.L]8fØ c6d\!–›k÷o¶Ü»ÕOÍö?Ê+­ßÏ­—OYmjR´ÓµŒß]WÇ®Ž]ßmz·éÝ&ª"ÿHôOôOô ù0 ¤åÐ:VÖ£›œ+ä><¯´~´9dáòƒãŠ nejdüîžYxfá™´Ô´Ô´Tª"ÿ¸~îú¹ëçŒ2ak·úGÜêç­Ðñð–ÎÞKÊ}Vò–qJÆïNj#µ‘ÚPùX÷Œk£Ügeª§ÿ9Â{IÞŠ~·v›1É­~f>Ýâ8@=ä§­ZjZªøÞϸ6Ê~ïñO`5¯I³–í˜gîô¶ìb\5›Žaûú=ý}]hHhH¨ØRù‡8×ç}WH-ëÈ€ f#¿ø½®[§U‘ˆ^Ÿèûe\!+ìƒö9/Oki\!¯ìü/š…Îð ôÜRþtéB¿;Ñû¥“€¡NÀȧΕ:Wê\©Ì´KÂ;5¼_ÑãZø¶‘þ›ÔÖôIêçä³½÷¬[no3ó^|9àË_¾«ø®â»ŠÔ@~¶Ã~‡ýûÌÔL•¥­*w?à½|¾ÇÁâjkýøˆÚ/-¶=Ù¡úý™y/+^­xµâ«Ÿ¯{¡ãSÇ§ŽŸöÓ´Ÿ¦ý”™šiå9=È:§ž¹ÝQ[ëgPMy€«e@ÿŽqW2ó^b=c=c=©üìÅÞ{_ì mÚ<´ùü ¨¤i‘›cœšüây9%­ëú 3jkýœïÐfªïš›*}ËýÇ­n-#-#-#oœ¸qâ7|Î×D ˆzø¸È&À¤ÜêóÖ÷÷]£¶JÚ1Ÿ 31NQ×5Ÿ‰=@fv •œBZ~—P=dnÑÝѪû¹ç/KÅ6¶?ÒmÎø¸Ì¼±ß{?j ?瀙©™F×Gõ«ÜbDȉnVjÛùWµšW}—UÜ–™÷"Î÷YýüLôýD035³½wÈ]··I"¶ù¨mç-<ì¶ÿ¦ðNo+zd潈~/5€œG u"F¾–x<ñxâñ¯z¼ê‘©S‚àóÞÊö‘¯,~å5(·Z?/­•FµÎþ¸oðUÇ/Œ2m©ý¥ö³Âÿ¸ÕûVï[½½{?ö~œ™*ªÐ(¸WKãI7Öÿ˜k7y³™Ùoû7VÞVtÌTý[ØYØYØ]/ÈdVé3=fzÌ4óGÑooö¨T`Èî#‡\ŸçVë'òÖÆ«ŽŸ¸ž 9dþKf^sóËÍ/7¿ü¸Üãr˱âø×´i7Ö7Xß`}ƒÌ×ÿÊ!ÁÎ’]#Ò‚ºåVëgÏ”†'<*T;V®Y¥Ì¼æq¾ã|Çù¾ñnÄ»,;Q¢62SEÕŽÙ2«´gʼ›rkçŸìw&¨ÛÊ!cÎ;?ÈügV|ÆÅçu‡ öbo™**_Ê·N]S·FcÿÜ5·vþÞõ~²ß¿¿JJë=kg¾þÅGzâ|Pœf¦Š¿ˆ¨o¹§σã\œrkçß+pÇNƒ¼ÝT¾Qf^³8¯çø¬8ÒýÀÌEÜWs°ã/­¿o_ëlníüå+M×x >o5°lŸÌ¼fÑ×=^V¹…êD ü+Î%Î%Î¥Dd‰È‘™ß}?¯é›J–XÐÛÓúÕ_‡××öÌڦϕo¶lô·^â8r›ÓÇ—6~¥Šfþµõ«Ú¯j¿ªÏ"žE<‹`}aHêÙÔ³©g×-\·pÝB£÷T¹@ÓbßÛW{3ÆUa§•}fdñÓ|m'øåºu™Ö[zîyß×¶pÌÂ1 Ç$J.”\ˆU†!¯§½žözÚÄRKM|SâReWjh5¢§•ÔëÈÎÎN«²¶Ý3úöùBî¿ÿ{ÍûMþã:T¶˜þ¾õ¿wßÞ}{÷¥½I{“ö†U†!÷£îGÝ ;v0ì`æ«Ëߥ‚™k6Õ9êrí¦ëwÏgm»çéäNßÎÜy ì>ªOÕF–ïñÝäææv.õ\ê9nrŽÿ êDÔLæk¬OÝF– w˜³Õ}ÔÓɿݜ™µ;ÿ›®Û£¯Ù4ÁÒåš¿‹›M™™mâ³,>׬/ z“ö&íØ'¼ïî¢âïõ+‡ºîYcÉM¿ËçÅ[eíÎߣÎäIzØ–mÿÙÀÛÆ¯K{š_Ëük{9±¯c‘aˆ87ç‰ï[ÿumúï«dÖ£ÀÖŽ;³8î »ð“‡mäW:;ì­õ¢Ûª aïûÚĹ¼8¯g•aˆè Š>aæ«Ëñ¥ùœRE—8ÖösÚså›°"þÖY»óõW—Bµ=–h<ÒÓúûyNWê˜ù×&ú·¢—ËúB €¡NÀÀÿž¸%»%»­¸vâÚ‰F!è®·SYï‘…¾od³yEò˜Î'wM˜ÛÐ}£d¾h¾—‘Re‰“פƒ_/èæYeÓºií«mœ2ð•ÃÈ.Çš=ª´¶òTËk%|Øÿnã>û4îs¹Æå—k°šx_/L^˜¼0™,O–'ËSÿåšW¿”\åF«7=Ž;|Ò½þ„=ÎK­û1Ü5døÛÅÞ®á#¼Ow¾:¸ÿO]†õ82i¥õÏ¡zß+ÿƒß´z»îo-ÑïÃþw» vìòè‡G?<úÕÄûº=ãöŒÛ3:wïܽs÷«@Óše®üÚ¬GÙÇ!¡CZÙ†–™ÓÈæ·¯—^õ»ï믾`?´óΟOÛ× 7[kw°å’iÖ?ÏèíXÑÛ¡k­º¥/~Ìç.ª|Tù¨òoš¾iú¦)«‰÷ujÑ©E§ùÔð©áSãÃ*Ðẹéñc]GZ½˜_¼ækÇV[ Ô_îVí·¦={+3›ÞóZ³­ÉžovüØ ™»ïÒnµ·;¼Üc…õ ÿ¯+8—ð1õ¿Ûw·ïnßÔý©ûS÷³šÈ¦ý¿v+ZfÀàåJYZÚí‡uÎvü8;ÎÝ7fÛ¢Zžo”™KF{-û­é®ž½·˜QÍ­ÚüâCî;¶ê1¶õ÷V/®[w2=þaÿ»â3+>¿¬&Þ—Ø3ˆýÃÇÔ¿ù=÷N5\«|Ý¢}d?ûI‘ ãâÛ¼2¯µ«×ð½‹þv0bÈâk.e‡øÎtø§—ï”q6Ãõ{i±ªfåFaƳKýSÆëÃþwÅžMìßXM¼/qÎ(Î?¬-K¬7Š©v¦ápó¤z#}SijëÄY lÂ:´YšXÕæûÒ«GÛwí|oµ­}ëð½K®Ù½hulFõÛo£úÅTüÛùiÝ~æŸ}ÌçNœ³‹ówVïKô EÿðÃ*°òT³b%t9æViíܳFnZW/¦Úƃ_7îYE©Ò4Æk’dÞ$ÕËhׄ†_»o\‘ü¹óÉ‘…¼~¶ÙtתlYï©ѳý[VêA u" zçóÎçÏÖK[/m½T~yùåå—©R×a]‡uv¹ã厗;²jÈ*ÏJ=+õ¬ÔüèùÑó£Tl²×d¯É^>xøà!«†¬rkË­-·¶ 95äÔSj®ÿÕ~«ýVû½ryåòŠ_=#+$¦%¦%ž)t¦Ð™B­ÜZ¹µrSgå»\w¹îrýÀ¤“LJqKqK¡õƒ, jIÔ•¨1uÖ¿ølŠÏ©øÌ²vøxb/!öjÞùˆ½™Ø§±jÈ*â\RœWª¹þʹ8OgÕUD/QôÕYù¢+z³¢O˪A€¡NÀÀ{¸ôâÒ‹K/FI£¤QRnm}|ÅGÙä½É{“÷ó"Ï‹¿ûüèmÑÛ¢·Ý ¹r/„9‡zˆšõ)jUÔm½ ö ö â3%>_â³ÆœC’Ò’Ò’ÄžDìOÄ^%«v>b%öTb%öZL6>6>öpØá°ÃaG+­t´s‚üCÔ¼¨ñY`Nˆ}ŽØóˆýØ 13ÈÄy®8çç¿â\˜™A~ úœ¢ç)úŸ¢ÊÌ@n!                                                                                                                                     ²…Ù5³kf׌t03È>À@¶ @Î#²0r0-€ó€€lA €œG d `ä<` [ çÙ‚9ÈÀÈyÀ@¶ @Î#²0r0-€ó€€lA €œG d ଒j–j–jVêy©ç¥žÛ-·[n·<öÓØOc?Më•Ö+­ó0-€³Êþ‚û î/¨;“„Áº€€lAœUĵ¿F" €€lAœUânÅÝŠ»åúµë×®_ea0ÈÏ€€lAœÅbÒbÒbƒ2F d àlD `0-€sa0@:À@¶ ΄Á ß#²p.# ù0-€U„0äÀ@¶ V)Â` iÀ@¶ ΃€æÙ‚8! š@ d à<Œ0äYÀ@¶ ÖÂ`§Ù‚Xƒƒ€êÙ‚Xダ*Ù‚8ùø0 ‹äZlàg K@®qêàÔÁ©§¦ «@.ãÔd•\ €Êþð‡?üáøÃþhùézÓõ¦ëu£>fF{”sÊ9åܢ͋6/Úl;Ãv†íŒÌ„¾•’*%UJÚa²Ãd‡ §¦ «` €ì`vÍìšÙ5®õÔ¬˜´˜´˜¸[q·ân¹~íúµë×™ }í–Û-·[ûiì§±Ÿ¦õJë•Ö‹‰Y‹ÈÀDè TÈÀAè ò` [ça„¾ Ï"²pCè 4ÈÀy¡/Ð` [«¡/Ð4` [«¡/È7€€lAœË}@¾D d à\@è ò=` [çB_€t€€lAœ} ²p#ôÈ` [gB_€Ì#²pV)õ¼ÔóRÏ }2ƒÈÀYeÁý÷$ôÈ ` [g•T³T³T3q0¡/@Æ€€lA €œG d `ä<` [ çÙ‚9ÈÀÈyÀ@¶ @Î#²0r0-€ó€€lA €œG d `ä<` [ çÙ‚9ÈÀÈyÀ À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À 9þôð§‡?5€|Cä¤Àç€Fä»Xüç‡?9üÉáO8\àp%UIUR•%EIQ’”$%Iy§¼SÞ)o”7ÊåµòZy­¼T^*/•D%QITž+Ï•çÊ3å™òLùGùGùGy¢+Ÿ•O˧åÓò)ù”|Jþ]þ]þ]>!ŸOÈ r‚œ “ÉÇä89NŽ“ÊGå£r¬+ÇʇåÃòaYdI–äCò!ùü›ü›ü›|@> ÷Ëûåýò^y¯¼¯åþë€IDATWÞ#ï‘÷È»ä]ò.y§¼SÞ)o—·ËÛåh9ZŽ–·ÉÛämòy‹¼EÞ,o–7ËåòFyƒ¼AÞ ¯“×ÉëäµòZy­ü‹ü‹ü‹¼F^#¯‘–––WÉ«äUò y…¼B^./——ËKå¥òRy‰¼D^"/’É‹ä(9JŽ’È äò|y¾<_þQþQþQž'Ï“çÉså¹ò\y¶<[ž-Ï’gɳäò y†<]ž.O—§ÊSå©òyŠiŸ´OÚ+í•öJ»¥ÝÒni—´KÚ%ívH;¤íÒvi»´MÚ&m“¶J[¥­Òfi³´YÚ$m’6I¤ Òi½´^Z/­•ÖJk¥_¥_¥_¥5Òi´ZZ-­–VI«¤UÒJi¥´RZ!­VHˤeÒ2i©´TZ*-–K‹¥EÒ"i‘´PZ(-”H ¤ÒOÒOÒOÒÒÒÒ\i®4Wš#Í‘æH³¤YÒ,i¦4Sš)M—¦KÓ¥iÒ4iš4Eš"M‘&K“¥ÉÒDi¢4Qš M&Hã¤qÒ8i¬4V+–FK£¥QÒ(i”4R)”FH#¤Ò0i˜4L* •†Jƒ¥ÁÒ`i4H$ H¤þR©¿ÔWê+õ•úH}¤>R/©—ÔKê)õ”zJÝ¥îRw©›ÔMê&u•ºJ]¥)Bо—¾—¾—:K¥ÎRG©£ÔQê u:Hí¥öR{©ÔNj'…IaR˜ÔVj+µ•ÚHm¤6Rk©µÔZj)µ”ZJ-¤R ©™ÔLj&5•šJM¥ÆRc©±ÔHj$5’H ¤Rˆ"…Hõ¤zR=©®TWª+Õ‘êHu¤`)X –jKµ¥ÚR-©–TKª)Õ”jJ5¤R )@ $?ÉOò“|%_ÉWò–¼%o©ºT]ª.yJž’§ä!yH’›ä&¹IÕ¤jR5ÉEr‘\$gÉYr–%GÉQr$©ªTUª*ÙIv’d#ÙH6’µd-YK•¥ÊReÉJ²’¬¤ŠRE©¢TAª U,$ ÉB*/•—ÊKe¥²RYÉ\2—Ì¥ÒRi©´d&™If’©d*™J&’‰d"•JH%$cÉX2–Œ$#ÉH*&“ŠI_K_K_K_I_I_I_J_J_J_H_H_HE¤"R©°TX*,’ I…¤O¥O¥O¥O¤O¤O¤R©@LjLjLjLJLJLJLRLRLRÌ»˜w1ïbÞļ‰yó:æuÌ똗1/c^Æ$Æ$Æ$Æ'Ÿ“ÏÊgå³²»ì.»Ë§åÓòiù¤|R>)ŸOÈ'äcò1ù˜ì&»Énòùˆ|D>,–ËåƒòAù€|@> ï“÷Éûä½ò^y¯¼[Þ-ï–wÉ»ä]òy‡¼CÞ.o—·Ë[å­òVy‹¼EÞ"o–7Ë›åMò&y“¼AÞ o×ËëåõòZy­¼V^#¯‘×È«äUò*y¥¼R^)/——ËËåeò2y™¼D^"/‘Ë‹åÅòBy¡¼P^ /È.²‹ì"Ï“çÉóä9òyŽ<[ž-Ï–gÊ3å™ò y†IŸ¤Òéƒô^z/½—ÞJo¥·ÒéôFz%½’^I/¥—ÒKé¹ô\z.=“žIϤ'Òé‰ôXz,=–‚¤ )Hz$=’IR (HR€t_º/Ý—ü%É_º+Ý•îJ~’Ÿä'ùJ¾’¯ä#ùH>’·ä-yK·¤[Ò-é¦tSº)ÝnH7Ô—ÿê}IM”DI”’BRHפkÒ5éŠtEº"]–.K—¥‹ÒEé¢t^:/—ÎIç¤sÒéŒtFr—Ü%wé”tJ:%”NJ'¥ãÒqé¸tL:&“ŽJG¥£ÒéˆtD:$’I¥ƒÒAi¿´_Ú/í“öIû¤=Òi´[Ú-í–vJ;¥Òi‡´CÚ&m“¶I[¥­ÒVÉUr•\¥ÍÒfi³´QÚ(m”6H¤ Ò:i´NZ+­•ÖJ«¥ÕÒji•´JZ%­VH+¤åÒri¹´TZ*-•–HK¤%Ò"i‘´HZ(-”Jó¥ùÒ|iž4Oš'Í•æJs¥ÙÒli¶4Kš%Í’fH3¤Òtiº4]š*M•¦JS¤)Òi’4Iš$M”&J¥ñÒxi¼4N'“ÆJc¥±ÒiŒ4F%’FIÎ’³ä,FH#¤áÒpi¸4T* •†HC¤!Ò i4H( ”Jý¥þR©ŸÔOê'õ‘úH}¤ÞRo©·ÔSê)õ”zH=¤R7©›ÔMê*u•ºJ¥ÎRg©£ÔQê(u:H¤vR;©ÔVj+µ•ZK­¥ÖR+©•ÔJj)µ”ZJŽ’£ä(ÙKö’½ÔBj!µšIͤfRS©©ÔTj,5–K¤FR#©¡ÔPj(ÙJ¶’­T_ª/Õ—êIõ¤zR]©®TWª#Õ‘êHµ¤ZR-ÉZ²–¬¥R ©†T]ª.U—ªJU¥ªR©ŠTEª,U–*K–’¥d)U”*J¥òRy©¼TN*'•“,$ ÉB2—Ì%sÉL2“Ì$SÉT2•JI¥¤RRI©¤TR*.—ŠKŤbR1©ˆTD*"– K…¥‚RA© T@* òKù¥üR>)Ÿ”OÊ+å•òJÿHÿHÿHKKKIII¹¥ÜRnééé)—”KÊ%å”rJ9¥R)‡¨•¢RL“Ä$1ALÄx1^Œˆ?Äb¬+ÆŠÑb´-F‰Qb”øMü&~#ÅH1RŒ#Ä1\ ÃÅ01L CÅP1T CÄñ“øIü$~?ˆÄ÷â{ñ½øV|+¾߈oÄ7â+ñ•øJ|!¾_ˆÏÅçâsñ©øT|*>ŸˆOÄ`1X ƒÄ 1H|(>Šb (>ˆÄûâ}ñ¾xO¼'ÞïŠwÅ»âñŽxGô}E_ñ¶x[¼-z‹Þ¢·è%z‰^âMñ¦xS=ø§þº¯þÕQñšxM¼&^¯ŠWÅËâeñ²xI¼$^/ˆÄ âyñ¼x^<+žÏŠgÄ3âñ´xZ<-žO‰§Äâ ñ„x\<.ÝD7ÑM<*ЇÅÃâañxH<$ˆÄ}â>qŸ¸WÜ+îw‹»ÅÝâ.q—¸KÜ!îwˆÛÅíâvq«¸UÜ*n·ˆ[ÄÍâfq³¸IÜ$n7ˆÄ âzq½¸^\+®׊kÄ5âq•¸J\%®WŠ+Ååârq¹¸L\&.—ˆKÄ%â"q‘¸H\(.ŠóÅùâ|ÑEt]Ĺâ\q®8Gœ#Îg‰³ÄYâLq¦8Sœ.N§‹ÓÄiâ4qŠ8Eœ"N'‹“ʼnâDq¢8Aœ NljãÄqââââqŒ8F-ŽG‹Î¢³è,ŽGˆ#Äáâpq¸8T*‡ˆCÄ!â q8H(ŠýÅþb±ŸØOì'öûˆ}ÄÞbo±·ØSì)ö{ˆ=Äb7±›ØMì*v»ŠÅÎbg±“ØIì$v;ˆÄvb;±ØVl+¶[‹­ÅÖb+±•ØJl)¶[ŠŽ¢£è(Ú‹ö¢½ØBl!¶›‰ÍÄfbS±©ØTl,6‹ÄFb#±¡ØPl(ÚŠ¶¢­X_¬/Öë‰õÄzb]±®XW¬-Ök‹µÄZb-±¦XS¬)Ökˆ5Äjb5±šXU¬*V­D+ÑJ¬,V+‹–¢¥h)V+ŠÅòby±¼XN,'–-D ÑB4ÍEsÑL4ÍDSÑT4K‰¥ÄRb ±„XB,.‹‹EÅ¢bQ±ˆXD," ‰…Ä‚bA± h"šˆ&b~1¿˜_üWüWüWÌ+æóŠyÄ Ÿ„OÂGá£ðQx/¼Þ ï„wÂ;áðFx#¼^ ¯…—ÂKá¥ðBx!¼ž Ï„gÂSá©ðTx,< ÁB°,< „@!P„!@¸/Üî þ‚¿à/Üî w?ÁOð|_ÁWð|Á[ð¼…[Â-á–pS¸)Ün7„‚‡à!x² ² ’ j A!(„«ÂUáªpE¸"\. —„KÂEá¢pQ8/œÎ ç„sÂ9áŒpF8#¸ î‚»pJ8%œN '…“Âqá¸p\pÜ7á¨pT8* ‡…CÂ!áp@8 ö û…ýÂ^a¯°WØ#ìö»„]Â.a§°SØ)l¶ Û…mÂ6a›°EØ"l6 ›…ÍÂ&a“°IØ l6ë…õÂza­°VX+¬Ök„UÂ*a•°RX)¬– Ë…åÂ2a™°LX",–‹…ÅÂba¡°PX(Ìæ óÁEpæ s…¹ÂaŽ0G˜%Ìf 3…™ÂLaº0]˜.L¦ Ó„)ÂaŠ0Y˜,L& …‰Âa‚0A'ŒÆ c…±ÂXaŒ0F#ŒF £gÁYpF#„Âpa¸0\* † C„!Âa0H$  …þB¡¿ÐOè'ôú}„>B/¡—ÐKè)ôz Ý…îBw¡›ÐMè&tº]„ÎBg¡³ÐQè(t:„B;¡ÐNh+´Ú ­…ÖBkÁIpœ„–BK¡¥à 8‚½`/Ø Í…æBs¡™ÐLh&4šM„ÆBc¡±`'Ø vBC¡¡ÐPh 4õ…úB}ÁF°l„:B¡ŽP[¨-Ô¬kÁZ¨)Ôj Õ…êBu¡šPM¨&TªU+ÁJ°* •„J‚¥`)X „ B¡œPN('”Ê esÁ\0Êe„2‚©`*˜ ¥…ÒBi¡¤PR()”J%„bB1¡˜PT(* ……ÂBA¡ PP(  ù…üB~!ŸOÈ'äò y…„„„¿…¿…¿…¿„¿„¿„ÜBn!·ð‡ð‡ð‡KÈ%ä~~~r9„ ¥B©P*’IŠ$E‚"A‘ ˆWÄ+â???±ŠXE¬"Z­ˆVD)¢QŠoŠoŠoŠHE¤"R¡ˆPD(¾(¾(¾(ÂaŠ0ÅgÅgÅgEˆ"D¢ø¨ø¨ø¨ø ø ø x§x§x§x«x«x«x­x­x­x¥x¥x¥x¡x¡x¡x¦x¦x¦xªxªxªx¬x¬x¬V+‚ŠE€âââÂ_á¯ðWÜSÜSÜSø)ü~ _…¯ÂWá£ðQø(¼Þ oÅ-Å-Å-ÅMÅMÅMÅ Å Å õ°½z¸N}ÙNüK72‚!ä¡À€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &² “Ñ>´3´é¾¿ûþîûµíÓþ-ü[øgÜ»~>øùàçÚÞ½¼gyÏòžª|ª|ª|ñîëCÖ‡¬Ñöî…  ˆºu!êÇã@L d0´3Òf£ÏFŸ>Úöiá…o¾»4viìÒt~ã|ª|ª|å”{PîAÊýêþ»ûïî¿ËˆmïÛ²o˾-µ½¯ÃY‡³g9.`` Ë €¡‘6þßý¿ûOyÏzm÷Úîµ=}ßWëšè`mѵE×͈>VñPÅCi{ßùŸçžÿY—÷å¸UY 팴Qš*M•¦æùÍó›çÿ•ìºë~¬û¡KÜÖ©­S[§ô}÷Wß^}{õ-å÷ËŠeŲÀŒ 00eÀÐÎÐGïa½‡õ¦mÏöØÐcC é»—;þÓñŸŽÿè«C­Ë\¼º;ÞñxÇãS~ÇèCч¢q\0&ÀÀ@–1|oJ í“^ºŒÕ–5[ÖlY£mÏZä°Èa‘C=k¯þ丹Q¸Ø–b[Šm1ÑÙ¥U—V]Z•^Û;åÔ”SSNi{/ÇŽp\0>ÀÀð?ºŒUà¥ÀK—RÞ¿Oú>éû¤¯þï•üÑʺ›,N'‹éÕÓš”nRºIimïµàé‚§ žêþ^² ``ø]F+Ÿ*Ÿ*_Ù×e_—}­mÿ¸}àöÛúïë9uçÔS÷'÷GZDZDÚ_·¿n]óÿZGXGXGèÿî1®1®1®…  ж¥R!©Tˆ€ñ!&€ÿAÐeÜúWî_¹emûwŒãÇ1Žúïk»Vv­ìZi®PØ °AaË',Ÿ°|‚¶:¼Êù*竜z}÷¿|ãòËé5û/Ç€¬…˜þA—qÛÑiG§´íß:u<êx賯?÷ùÜçsŸ9 ä,Ssýûƒ÷ïN¹íª½«ö®ÚúÔaM…5ÖTH¯Ù9.d-ÀÀ@6å=ëç‹¶¿|ù&òÍFŸ>}:”êPªC©Z¯j½ªõªØ–b[Šm1Ïožß<½Íõ6×Û<®ø¸â㊫ç@Íè­øšãkޝ9ï<¼óðξ-û¶ìÛ²aφ=öT?æW]·¦5Lk˜ªC/õƒyýjúÕô«©m¿&èŠÈ‘?"ÿѹGç;0ÏÀ<ó4²mdÛȶÂù ç+œ/r¡È…",]-]-]Wi\¥q• &¸sç6NýZúpÚÏ ž<3å½nnn–¶õplÀ±ÚÖü&ðMà›Àÿ÷8è9,rhþMïa½‡õ¦Oë¹°çž µÕaá…wÞIíúÓv\ÜwÿÝýwÓçOŸ?}~Ó¤¦IM“*O¯<½òtuW·@ƒ© ¦6˜:þïñÿ[ý`ê_Ó’ª&UMªzýýõ÷×ßOò›ä7ÉÏá¬ÃY‡³ÕVkX­aÑÃE=ljgjgjW3_Í|5óõ«ß¯~¿úÛm´}Ð÷ßo|¿Áù0LÀÀÈ2´Í©©vþÊù+篤mÍ mÚ$´)1£ÄŒ3´­ðóÁÏ?×§þΓœ'9OÒ¶þsÞç¼Ïy§¼†ô &u_:T(Õ»TïR½MR)ù\§éÕÔó›Îÿ<ÿóüÏêÉ$MÔ«fÝ2.V‡Fs+έ8·¢>5W?ÂWýouðÃєڣI´k[Ã¥U—V]Z•¾uSrÉÿRêkþeé6¥Û”n£nɴա܃rÊ=жuòïòïòï« r²æ/›¿lþ2ãî->Yëd­“µÔQtÚjhVͬšY5õ¿ßyäý‘ô­aÖ=?†€˜Y†Ç#G´ dOÝ3uÏÔ=iÈöéçÓϧ_ÊåUõ¯Úºj몭µ…yºÜOö+`¥©ÒTi:Yœ,NMô¦¾ÿLÿ˜áѶGÛmSߟg’N ¾-ø¶àÛäuˈø®Å]‹»ê^d’®Ê{–÷,ï™Úºq4©çâÕVC—8—8—¸´µ€¶XQ}iòu¸}àöÛÚêpÓí¦ÛM·Ô¾ûóÏk<¯‘òOÔ?¡H¯3Fò-Rß]­mïè²êÿ ò5òkä×Hõݱé{ &_Óëó.+žŸÃAL €,C}?œúÞ8ÍkZõÃ-Ó6„½îÏu®ûS—ò§íž¶{Ú.µë•óUÎW9µ­SH貞_'ÀÒ‹>ûHý Y‹H‹H‹H“ ³7÷ÞÜ{s§o;«ܪ~lÆÕ<µGÓîò»Ëï.¯m=­¦´šÒjJj[ å‡K«ï«N¾Î[>lù°EÛß/xºàé‚§©­Ã‘ÕGVY­m-7µÜÔrSÚÎÀ)ïͰFa©·ž¾}»öýÚ÷kß×'žüRýKõ/ÕÕR7É`ÛÆo¿m¼þŸwYëü ``d1êy^µ a‡Œ 2*µëìv¦Û™ngt"ßSdO‘=ER;D¾?xðþ`mëÜtmÓµM×tYç¯ €o­¼µòÖÊß |+ð-ùoRºIé&¥O>]øtáO3>Íø4CýðaÏ[ž·B'„NMßÙu9ÿ8-rZä´èŽÇ9,r¬¼bðŠÁA˃–-Wßy¬žùlÐÙ ³A-ü[ø·ð×¥·¨ï–NmÕ³üªgöMyýÿéøOÇÔsr¿úöêÛ«o?¦ÿ˜þcºúüs§É&wš¨[/å#º@Î9 伸ã⎋;ôù¤Ë*çgÀ0 ‹Ù»7vo¬¶Áëãw<ÞQ÷µ©ãÝïÎTÏ]šÚødøÞá{‡ïMù>Hà €«W­^µzÕäÿeÄúëG¬W‡a)¿WÊ´Uë5¹×ä^“u¯óPi¨4TJyÝ÷wßß}hÛж¡muY³:ÚIÛ}rº·pïa½‡õ¦m=…  Ø÷iß§}Ÿt_ç¡ã‡Ž:ž|`}Z8;Mj•–VZZi©¶µ©c?Ýë¦-üVÚ^5«ë¬®³ºj‹ÕwÖê^‡†=ölØSëì¿Qr”•ðÿD×IM“š&}\öqÙÇeÿÇ{åSåSåSÏb›ò:{l象džÔÖ<åûÑÕ?˜PÏ÷¬û1þ5Ç×_ÿŸt$Ÿƒ9mŸtYåü &``d1ï¼?òþˆ¶Áë±õÆÖ÷Ákÿïþßý¿ël¤mîRms‚ÖÌW3_Í|º¯ç×ÀÉ©ïÏS?.X÷wioÕÞª½•¶uZ´i5R—õø¶÷mïÛ^—è7Ñ.Ñ.Ñ.míÚy4uYgÊ3쪩£ß´ÕY§¼~õM)KùçºßO¬>FJŽ*9ªä(Íõ,Ù½d÷’ÝÚÖ#–ËŠeõáÕ3k»‹]ŸÙu?cTéU¥W•^êÐ:µ}{`ÂÀ„ ÚÖ¬Þï©ý¤(z¸èᢇ5×VbF‰%f¨,ŸÆ°3Ÿ*Ÿ*_Ê­1ÿóüÏó?ëù0dÀÀÈ’lGØŽ°‘òÝQº¬Çu—ë.×]º<Î4ms—>¯ñ¼ÆóÚÖ3uÏÔ=S÷è^Û_ûôóéçÓ/µë¿pì± Ç´­SD鲞aîÃ܇¹k[¥«¥«¥ë·€oßô¹_M}ßjòù/õo産,õ½Œú=ö\Øs¡¶wrwÈÝ!wu©sö<šÔ’ÇðšúWî_¹e]ÖyãòË7.§üØ^mëQß^|YñeÅ—i¾vä‚‘ F.Ð¥ÉïîÕ¶ôéoºêG§íxL>G²>ç µEŠEŠEŠô}ü¸&õ£Úµ½K³2feÌŒõü 2``dI.¹üåò—¶!lõ Žº¬GÛ¨Éc }ƒ½¹÷æÞ›[ÛzkÁZ°6ÌX=ÿhÚöγÆÏ?k¬OmÕs÷¹PäB‘ ÚÖpxçá‡w¦×£J5›¶š©þ¥ú—ê)?¢9ðRà¥ÀKú×<À+À+ÀKÛ»¨ï}TÏ`ÊѤÍK“—&/Óáåäsë&WºMé6¥Û¨ïÑLy _t~Ñù…Ö:äSåSý÷7«gÛÕ¶-ÉÑ´õ·” õÏt©§6Oú>éû¤¯þg9ukW8_á|…óšk°Ž°Ž°ŽPÿì#½>ÜÿpÿÃýmu~ððÁÃéü >``dI7ÝnºÝtÓ6x½?xðþ`]æž,ûºì벯5× žMV[ ¥ûÜ¥ÉÿRó¤ê;ÿtßê_¯ì²²ËÊ.i[sòG’¦­¶ç¼ÏyŸóÖöZ‹9,r¨ç¼L¯¥4Uš*MÕa›>5?t6èl¶×ªçgMßc¡ÁÔSLÕöŽw\ÜqqGSÊÔ.Öç|•óUΔ×Ðüeó—Í’$«ïÒÖ¥›Ol>±ù„¶:¨Ãþ”×ÐUî*w•3bö_]Î.q.q.qú¬_ÿó†Zòû­5-sYæ²Ì%}cNõ}ÀÚ¾mü¶ñÛÆ§ö ùü >``dIê9_ͪ™U3«–¶‡ß-Z´\óµ6mÚTÿMòû´Ý¨-PÔ=JîWÀú<ÊUÿÚΩ;§îœºÚ^;þïñÿ;#ú•.󧼆yÅæ›W,ãîÂÔ´àé‚§ žêóŽÙóhJ.ùc–5¹sç6N[ |Íñ5Ç×ÚfÞÝ:oë¼­ótÙãÁ3ƒgÏÔV‡u?ÖýX÷Cëzò©ò©ò™ç7Ïož_óµê;éc—Æ.]ªO+¥|\$¿‡>ãÞE—5¬ûsÝŸëþLßÇ&ë¢Õ”VSZMÑ|Çä„7Žó3`ø€ €… (1 Ä€š×·ê‡¦üÚ]µwÕÞUû'ábüøøññê?ÚöhÛ£mi›»4åÇ™î.¿»üîòé ¤¶õt™]RŸ½£Om[o=¼õpm¯=tüÐñCÇ3"¨8²úÈê#«õ©y[§¶Nm´½6ùÍéUç”?›üÁÂMÚ$ïQš&„Nªmýî1î1î1Ú^ûxôãÑGë^7m÷"··joÕÞJÛz’¿‹&u0©OKù¸ÐýQá}–ë5¹×ä^“µ­A—‡¢§Mò£“s8ëpÖá¬1ŸÃGL €,ìÀí·ÜÖ6„­¾+QÛkµ=NöD³ÍN4ûƒàùTùTùÊ{–÷,ï™Ú¹KµEbjoo¾½ùö¦!Àï¼?òþˆ>{GŸÚÖ¾_û~íû)?7#‚ õlúԼçêžK[Ì™6Úî¾US? š£)eoß¾ LùÁÝÚÖ¯¾]óU•§Wž^9Õ¤[ol½±õ´ÝÅ}(úPô¡Ôî»Å'Ÿ\|2£ïÍýð-à[€þýYÿ³œíÛ¶#L †º>Æt~ 00²°O3>Íø4£@Î9 äLíÌ‹•–VZZi©.ëÉà©ûÜ¥ó Ì30>œ¦_'UMªšTUŸ½£OmË=(÷ Üm¯ýÜçsŸÏ}2¢G…Œ 2JŸš§<‹p¸Y¸Y¸YúÖY=î¶w´i5Òj$G“.j˜Ö0­aªù.êÇ;G¾‰|ùF÷W:j訡©­CÊ÷s_{e앱š¯úÏò?Ëÿ,µ½êúûëﯿÏð‡3çSåSåÓ/è–S÷yà €«W­^µzUc:?†˜Y^#ÛF¶l5¯r{ë=¬÷0Íáì—&/M^þdÈ»¦ª¦ªæOÖŸü³ºÏ]ªíNG—¿\þrù+#"ÛÌ][ú®¿P@¡€BÚ^çççœ}I=Oª>5/¶¥Ø–b[´½6¾w|ïøÞ¿²Î¥z—ê]ª7G“.Æ8Žq㨭%kÁZ°Nþ÷/Ì_˜¿0×ö÷Ç;ïx¼cj릞Q¸àÛ‚o ¾Õ\çÔ=S÷LÝ£¹Îz›ëm®·9ãfÿý5gŒôz—’£JŽ*9Êp`‹H‹H‹Hc:?†˜YÞ‚§ ž.xªy•kVͬšY5Í;¥´=.ut·ÑÝFwÓþ~ÖøYãgu¨oÊäõÚîµÝk;pʯUÇ–¿>V´Y+Nh“Ð&¡¶w,|£ðÂ78štá6ÎmœÛ8mïµd÷’ÝKv'/m¦VßE­Ï}êö×í¯Û_×\sòG£«ÿòkä×ȯ‘ÚîÛVÏ¥^=-«ÀêØÛp`u}Œéü >``dyÞ³¼gyÏÒ6}¯à½‚÷ &ÿ{çIΓœ'iþåá‡wÞ™Ú‡ÜjÎ]º}ÐöAÛiþe³2feÌíííÒ¶¥Ù'Nù!®ê‡gD_ kÖ(¬QÖzô—ê_ª©®í+œ¯p¾ÂyŽ&]¨X­mÛ;”êPªC©äuëÛ²o˾-5ÿÒ®•]+»VúÔdéÚ¥k—®ÕV“×o_¿}ýVý—êû’u­3ëˆþ•ï¢í~qµ××WÃÿ\#ôAL €,O}W¢y~óüæù5¯u×ý¹îÏu&ÔÖ6gç«o¯¾½ú¦mø{˜û0÷aîºÌ]Ú¯~¿úýêkþå °AaƒÂôÙÒì«çvÕöÚÀK—/eD_ ž<3x¦>5¯{®î¹ºç´½V}ÿkúÖ9å{jÕõáhÒu„u„u„¶‡i«ÛG½¨ChÍ¿œSwNÝ9uõ9Ž|úùôóé§mŸ&É“G¼š<y<òx”Ýà:u<êxèŸ2`@ÀÀ0ê@HóZ·Ó—N_:}Qÿ[Û~êûMS^¿¶GÝþÏÜ¥ùTùTùÔ3>jþå‘ÕGVY­Ïðzö €»év¦Ûm¯=tüÐñCÇ3"¨8ÑìD³Íô©y[§¶Nm´½öü•óWÎ_Iß:Ÿó>ç}Î[Û;¦í!ÀÙáhÒf\ñqÅÇ×Öž÷ßÝwÿo{ßö¾íµýXV,+–Õ§n)ÇðÉï<î˜Ø1±cbFÏþûkÎéõ.mz´éѦ‡¶5øÕô«éWÓð?Ñ€}ÀH$älr%f”˜Qb†zîÕcŽ 86@óoÔ÷#¦¼þäw4j›»T}gª¶9Aõpqö €—¹,sYæ¢íµÉ#ºôíE3&Θ8c¢>5O~÷gF?’WmñÉÅ'ŸÔö޳ºÎê:«kjß1;MÚ¤ü#m¤V+z¸èᢇÓ+vPb@‰%4ßÅÔÎÔÎÔN½ÔÿÎèÙÍ#½Þ%åcÐ=Æ=Æ=Æð?Ñ€}ÀH|îó¹Ïç>êpHóŠ÷¦ÛM·›nãÿÿ÷ø¿5ÿïÞÜ{sïÍ­ËÀwõªÕ«V¯šòCY55Ùüeó—úocö €¯u¸ÖáZm¯µÈa‘Ã"‡:K¯þ£4Uš*MSž{X—š«ã%m¯mdÛȶ‘múF, {6ìÙ°gÊqWjß1;MÚ„Œ 2JÛ»¹;äî»Úþo{«öVí­Ò«&û>íû´ï“¶÷ÚU{Wí]µµýßä³§W}²J|6èlÐÙ mkè=¬÷°ÞÃÒ·Îï.¾»øî¢úÁõšËõ÷×ß_oLçgÀðÀ¨4ý·é¿MÿMùÎKmwê2ð=ºÛèn£»¥Aÿõì¿ñýÆ÷%G•URk§~pzõœ+c¯Œ½2ÖD)¯G}gj¡€B…´­!hyÐò åú×9À+À+ÀKÛ»|[ðmÁ·ê8“£)µ´Íå¬~Huá…o¾¡ù×][tmÑôª›:VÔÖ)ÿXÁó–ç-Ï[Ù3þRýKõ/Õµí#õq‘¾uÖvϱú'êúÓù0|ÀÀ0*Ú‡«-Î)ïYÞ³¼§îë?:÷èÜ£s5×Sá|…óÎk›³Óÿ7ÿßü#NíúG 5tÔPmk°tµtµtÕ¿¶‰v‰v‰võ6×Û\o³þ°Z¿úýê÷«ŸÑ÷ v•»Ê]emGSÚL|6ñÙÄg&©”u³9hsÐæ îuP?†úÇôÓLOß6É*°ZÊ?#¹`ä‚‘ ô¯ù×_s|ÍaVͬšY5Íw±¿nÝþºa¶60Œ00ŒŠo{ßö¾íuKæ˜g`Ý×ÿþÈû#ïè¾~u”¥Ê§Ê§Ê§ÿÖe·Ø§ŸO?Ÿ~)¯§Ç†zlЧÎS÷LÝ3uîûT—uJ…¤BR¡”×£žg7muNþ˜emä(9JŽÒ§eŒûhJ™ûî¸ÿ¡{Ý,"-"-"ÕOßšè2/urmz´éѦGF´IÖ €½gyÏòž•òÚÔÙN[=Ú$´IhÓ®A»íh[ÿÉZ'k¬e¬çgÀÀ¨¨u£KX²}ÐöAÛ¥vȻ֫Z¯j½Òeýê‡Ü¦×Öe·X-å;ùÒÇ9Ç9Ç9§6úMmÍ»év¦Ûmë)r¡È…"R»Nuô›ò#¦Õ­ÁѤ°FaÂi›ù'áwÂÀ„ QESESESÝûgFÌþûkÎñ.ƒÂ… Ó¶¶ß |+ðíÿ­YçDäÈ‘_ýsmkV?Q@ýtÃlm`7``¡¡ÒPi¨¤KXòðèã¦vÈ{üßãÿÿ·.ëwqq1Ì!û¬0¨gÕÕý.Lõ¿ýjúÕô«nnnãã㪞›vë¼­ó¶Î«}¿öýÚ÷5×ÐÖ©­S[§ôªù‡-¶|Ø¢KÍ;¿èü¢ó‹³AgƒÎ©ï‹ïß;¾·úßê^ÔÞª½U{«ÿ£rXä°ÈñiƧŸf¤×~4Ö£I ¦6˜Ú`ª.uSßKšu‹]»4vi±-ŶÓ©/ݸ|ãòËÀjê3€.í¦~Ôö¶ñÛÆoÿhÛ£m¶©g"WÿàÖÊ[+o­\]guÕuʘ•1+£uêgÜ+x¯à½‚ú´ 0 ``!·qnãÜÆé•¥íq²§Ê*wª\ÊëWÇ‘o"ßD¾I¯íÊž°š.ƒÖ‡z^[õŒžé[sÏ[ž·›øLýˆÝäµÊÀšG~üúÿR]øFá…o¤-pRÏìò—Ë_.©T›Ñ±ñMºPÏöšòLÀ“ü&ùMòËèº-Z´<å^±Ìe™Ë2—Œ«IV€Õ’ï%f”˜QbFÚŽAõ]éCî¹;ä®úQíY«€`Ü€ €`äRÎN¯ufÜú‘²äóÝv¹×å^—{ê¹<Õ÷ä_V|Yñe5U5U5U­‡·ÞzøÚ¢k‹®-šMj©ï¬Uסåþ•ûWnسaφ=Ë{–÷,祈‡+œ¯p¾Âyõ˜g`žyŽÎ=:÷è\u0ùëëÏÑdøu㜣»ä?žPÏuݸJã*«¨ïªWƒêÕç¾-û¶ìÛÒu—ë.×]Égø¦%CCL ÀeÝ;Û¸3à ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚˜€‘ &`$€ € ``F‚øÿñ¼©óâ•IË­LZ¼3i¹I‹Ï/_|3i¹“I‹_&-w3i¹—I‹&-÷3iyIK@&-¿|y˜IË£LZ‚2i Τåq&-O2iyšI˳LZžgÒò"“–—™´¼úåËëLZÞdÒò6“–w™´¼Ï¤åC&-3iù”IKH&-Ÿ3i ͤ%,“–/¿| Ϥ%"“–¯™´DfÒò-“–ï™´DeÒIKL&-±™´üȤ%.“–øLZ~ù’˜IKR&-ÊLZT™³ÜÈ‘IKÎLZ~ˤ%WF-À`´€ÀHm¬Æ}mÚ!´Ch϶Ṳ̈…9‰™˜Ùˆ 6âì3qö™8ûÌ=˜IKö™{8ûÌ:œ}æÎ>3 3ǰñÍ.œYs gŸÙ…™W˜…™K˜Y„™E8³fÎ>ó3s0s3[0ó3OpfÍÌ ÁÌ l𳇎 :Êhïd`0À`$€ÀH€‘ #A F‚Œ0 `0À`$€ÀH€‘ #A F‚Œ0 `0À`$€ÀH€‘ #A F‚Œ0 `0À`$€ÀH€‘ #A F‚Œ0 `0À`$€ÀH€‘ #A F‚Œ0 `0À`$€ÀH€‘ #A F‚Œ0 `0À`$€ÀH€‘ #A F‚Œ0 `0À`$€ÀH€‘ #A F‚Œ0 ` ÕL4ÜÈu#×\´ 20jÀ0LÀ@ªÃ0©F ÃD ¤0 0jÀ0LÀ@ªÃ0©F ÃD ¤0 0jÀ0LÀ@ªÃ0©F ÃD ÙÙÙIn’›äv¼ÑñFÇí²Ûe·ËnËé-§·œÞÑGÿýxñ>â}­âµŠ×*>˜ð`ƒ ´ ë"†a" “‡§žzxjãŸÿÜøgc“Æ&MÒ—U«"VE˜.0]`z{åí•·WÒæCFœ^.žºxêâ)u.9ºäè’£NNN´LÚø‰W\}puÜ€qÆ 0ÉT£:GuŽº^ûzíëµÙ/ÃA¬¿¤ÎI“:k N`ªøñ=â{œêzªë©®EW]]tµ‰[ï¿Þ½ÿ×_7~ÝȾd`ý%¿÷7e„Áº#²)¥¯ÒWé{òôÉÓ'O§-ˆ-[¼è­Â寙Ô_aéþþŽ+­Í<Â:¯?#.v„•}ˆJåììè¨YzOïªhpõxµVµKÏžXL¥Õu›å/¾&muXm¶ÚlµY´S´S4_ÿ¿°þÔ®:ÜÕ}4€08eÀ@¶s¿Âý ÷+X”·(oQ^÷/W3çÖ;[©´ß îëli wõ/Ÿ›õÓxØú†M­ª5)²¢`Éít¯áùÀóçUIª$U{Ñ€Óapz!²õCžç¹Ís›ç¦Ë×§v­*>3}»\ׄ¯U¯û;6ɸÐ7åòI—>ƒyŽ «íQá².5ïx¢ã‰Ž'‚ÂÂÙCœqƒõA ¹7 Þ4xÓ \çrËuNùkR¿‘UŸ[¬xÞ¯Dc¿ÌŠ{S.¿v²¡ùµA¶w+«tùâçuÞë¼×yú #ÿ„Á©E -¯@¯@¯À”¿UØR¼pá/ªôìÙ0Ô0C_m凣â›®êYÇê‹y¿”·qÏË=/÷¼¤?Òð¯G¬ `À-z¶èÙ¢)ùquin^}|Rƒ‘ƒg­èW³¼jÑa¨Íœ”·wá•…W^Q]R]R]¢‡ôGœ¹ƒµ!ŒÊ‰â'ŠŸ(žòWû…z|mx"«‡¾šeHó‘ÍÊÕ6«V|¯¶mŸ®˜®˜®P©ô@l8ƒ“#ŒÄÅ[o]¼¥í+MÒ¥ö+üå·Á=š%_ô›¼Lx;âµCÏQaÖÊoÑÖ‹,z°è} `ÃDL dy~cüÆøÑöÆñEù¥'ÆV^ƾ¥qG¿ÿSntnæXmA/Û=•ßhk™}3öÍØ7ƒþH`×=Ã`` û\ìs±ÏÅ´}]±w.·¦Ô»¸žÃ#ìof£è7y™è<ÒÑa~‚íìÊ~ÚZÉû³÷gïÏô%@jg-Ù' &²$e>e>e¾†þ ýúk~9±ø\ôbáѳ‡Íkñ!›F¿ÉËùζŽV#C¬+–/§íë\øÐð¡áCéW€6A]ƒºu½à~Áý‚ûæõ›×o^?³×Ì^3{X0bÁˆšh> ùà僗^>>a|Âø„e_—}]öõÈÌ#3Ìôç=Î{œò˜ò˜ò- cBœuwL dI[n=¸õ ¶/$6kz™è7yï;b†C‰Z'KGûÉC¡»7ëÞ¬{3Uœ*NGï@öñ$âIēˉ—/'‹=,Ú$Ã4ÌÛ0oü[Æn»eì³’ÏJ>+Iû#+"6’³ŸÑ…ÁÀ@óúÄë¯Ohûúq³_— þ$îÕV~ èÜÔ_[ë]Éu%×¾¨ [ˆ«W?®þ•²WÊ^)Û`ãca00Å´ý£ímÿÐü²1§eýk•"^]Ê‹ËÚÿ[÷¤¶¯m1±1±1±ô4ŸèöÑí£Û¯½nôºÑ&¯õªÖ«Z¯ò¯ë_׿.û†‰Ø¸eÝ0˜È2n¿=þöxm_0b‹/aß‚pW§RéììèØén¥•f¡š-¹qÿÆý÷Óß`b£b£b£6æÝ˜wcÞ´±}'ToÑy÷a‡Ê5[zïíêÓÀ3Òfȧæº\{?<Ðë€Ýùs÷ÛýS×d¶²þÞJ'+·(1±ˆGjëÐba‹…-× ®\‡} ÃAœ}d­08‡áÒæÚ°Ïm¼ˆuS[¾½Ó?¤ÉGú fZü[‘ÉûÆ9Öªùé]à€6MËeÜÕxì‘áíí‡Üœße_ƒüÃÿªY¸ÜÚ€±ºxêâ©‹§€èÄêUɼE˨Ú;[:š覭œe^/¼R3ú²§);ê¾²ÌùÒ¦_Æ/2÷Ê<úѰ½-âO ióGíGEæ,R 5{€qˆ?2þ$0xÞêœXÿ8!®>åçñƒ7A_@ö1·_ƒr•¿Ì¼°y1½V7s.âXHÓqb= ö€¬.ݼðôÂÓ O×ü­æo5Ó§ÉÆöÛol?·>n}ÜúxÄ{Ä{Ä«Ÿ®ÎÂÂÂÂÂÂÂÂÂb˾•ûVî[9À}€û÷Œø ¡¬9RpxNˆ«9¼LÍÒåh¶ðöÆÛooLOfaaaaaaaÑeYb¾Ä|‰yí˵/×¾¬ÏUî¨Ù£fš}D:"‘<zô8HÛ¦¼¬M\›¸61åVm¹³¼Tz×ë÷ýk7™‘µ®Õ¾ŽøàÐg×(ûs5s¤¼N:=ˆ Äô –_³höÃ-¹·äÞ’›–1¾åÒÌK3/ÍtþÍù7çT$›ê¿ÏFsÿÏ´ÉVVVîñîñîñö±ö±ö±ú\,궨ۢnA¯ƒ^½NÚž´=i;SÀ$ H4àQä£ÈG‘ Î,8³àŒ>×½{×8¼¬y‘à6½ÊÀG½ºÛ-Ñlç‡pˆÞ Z_]¿º~u=_â|‰ó%Zy·ònå­ÏÕ¯K_—¾.}n¸ýáö¤ÜI¹“rÓÂj‡:xè`Ê­wìa«³µÿRqnëX'«_·¿ÝØ?°É“ºgÍ _¯m{ë=¬÷°ÞÃïû¿ïÿ¾Ÿ‚Œ¦ÙÕa!-cÔÁí’£KŽ.9ªûg–úï}è›\ÃlÐo…¿þVøÒ¤K“.Mj¯j¯j¯×#£g}™õeÖ—€¿þ ø+±cbÇÄŽtYåxåxåø§žnxºaÅë¯W¼Öý*7læàò͸÷7ÝJåö‘µvœ}œ}œ==@ßûïÿ½ÿÕñWÇ_ßåt—Ó]Në3ê;íÁ´Óøïñßã¿'a{Âö„lw#Ðþ³ûÏî?›r+=/Õwtã¡Æwõž=²¥ƒë‚“¶be­×ðVVVߟþý9G2°ñɺ¡or9²JsG]ŠºuI8$õ¼ÞózÏëú\Lj<©ñ¤Æ~Ÿü>ù}Š—ãåx™ ƒ`«²UÙ¾ }ú2t•é*ÓU¦šW³µª–¾Qì&‘mF”Kr4L°º¨Ùæ÷{Ýïu¿Ý }E¿Œ~ýRv‘]d—~úuè×AŸQßq9Çå—Ó·¿oßþqŸâ>Å}2Öv;½óôÎÓ;µµC‹Éåj—:ñ½ôÐ-úe‡køãCZ}¬]I[kØî²Ýe»+nZÜ´¸iqÈÀÆÁ8BßärdÝ[(¶Pl!Ïužë<× ¶l7ØN¯Y%œF9ròžï=ß{þO?>ýøDw@æòyíóÚç'÷ooÖbIV„µQ>èÞsdßÜC°FX#¬è“íGÉ%”ôjíÕÚ«õð£Ã?ªÏ¨ï°a!ÃBn>¼ùðæÃØðØðØð¬Þ>·¯Þ¾zûª¶íí¾ÎªSeÂÖ7Zf·+yÅàŽ m´>It@ä€È‘ª•ª•ª•eH_ÀY—ñ…¾Éå0¦]W)®R\¥Ûuo×½]wô¸ÑãFÓçâ`Ð?ƒþôG G G`ŒOŒOŒ~¥5îkÜ׸k^©ÛõÞѨµ¡ ¸Ü¸Ü¥{ý׃ŸW_ö¦ÕȯŠþ^ôpÁEVW¯Zʱè‹îû­z˜ÿviUûÿê~TšŽ¼èðØ0‡b[ ¯bß^³ÍŽn8ºáhú$À¯ÿoü¿ñÿúúùúùú»:î긫úŒúö]ÑwEßrn9·œ;úTô©èSY¥>ù}òûä§m»:œ´”ÍÆ%œáçÐ6;ÿ óZPÇ¿l^ik¥Íá›Ã7‡sL!}g-Æú&—øwd|L|L|ÌÝw7ÞÝ8¹ßä~“ûésqÐci¥=–*^*^*^F ‹5ŒCÉ)Ÿ*Ÿ*ŸÞÚzkë­­»VíZµkÕÄ«¯N¼ÚvmÛµm×Ö°¯a_ÃÞôéÓ%Þ—x_â}¹'åž”{b+ÚŠ¶bßN};õí´øŸÅÿ,þÇÝÚÝÚÝ:øXð±àc´*Ù™SQ§¢NE5¯Kc>ÿÓ¾AÌ›k:ò¢Ãã)§ê~´Ì­ûuu·3••e|£ [Ó"Â0‡Ê,¶°ðfÍš'UKª–Tž ¹®&\M¸zÿïûßÿ{úâé‹§/ÖgÔ·óûÎï;¿¿q%âJÄwËï–ß- m{“““Âm×Ù®³]§Yÿ*mKÖ)Z/6jø(û)<ÑG]íît£Ötm{üîໃïæ8Bz!6|Ù'ôM.GvÛ͉sç&Î 8p,àØœ\srÍÉ¥ÏÅA;¡ÐN¸xðâÁ‹#¯D^‰¼Â”-ø©üT~Wn\¹qåÆÀž{ìi’ÁÊ÷(ߣ|•9Wæ\™3Ø4Ø4Ø”@öü©¦úî<Ô±…! ¬,R4\h5V]«b[ ¾(àéòWÊ}¯uèðÐæú]‹îA ;t¼¥—õóæ/Ë&–Zù“m1È£±«j½ªPC³¶vvvôLC“dždždþPùPùP9?Ïü<óóè3çççwnã¹ç6~íýµ÷×Þ™»uÛ¶nÛºm«¶Ú†ìT¨Y=B_ÍrÎÌúw+ÝÖÖn±6±6±6;ȈoîÀ† {†¾Éå $IIR’<3xfðÌŃ^µyjó”A"€,@ÙDÙDÙäÉÉ''Ÿœ\ÞryËå-õ…kìÕØ«±×‰ˆ'"¾8|qøâðk¶âmµ·ÕÞVÓV+¯í]ó4hOЫ­LñÜ¡{•Î%mŠ6Ðl½ãŒ_0ž#ñÍ8³ú&Gü³‹ƒ+Ê+Ê+ÏþûóßWÏZ=kõ,ssó´]4èÒ Kƒ.n½Üz¹õ ]º:t5-løJ&”L(yüËñ/Ç¿˜d}Ž÷9Þçø“‡O>yÈÀX¿FÎ\ïh¥¢†0˜²ðNÃÊV6êZ­ìÒ(¦Jˆ.QnB›n6êYÕ?ƱÖðò m¨H¸ÓÑ£^§Ÿ ±õë5–ž %WWYøeá—…×7^ßx}ã"®E\‹¸¦m,®NÛ:më´=üûáßÿò9äsÈ猨rg‹Î-4ß}víúÝ*Í#âÕ¥|ñ¼_ÁÆ>ÚöãËÑ/G¿ÍÁôýæNü+újC¬›±ª±ª±¯_;¾vÜÜns»ÍíJÍ/5¿Ôü´]T?_ý|õóû[ïo½¿õ§¼Ÿò~Ê«JT%ªiæL¶IµIµéòøËã/OÛžµ¨û£ò.§¢V ®|üdîFCT*__GGÝËðïâ”æcnßû¨Á‹M?¦ÿ[½Xóõ–•Úš Ü4pÓÀMÍ?š4gÇ`L_#7ÿÙlSõR†0ŒÒkr•¡æ‡þß—ÛË]º×­ûk“o‘ÍA³ÿŠß2´A"ÿ&=ö5œ­Ùþò\Ès!=ÀH¸©ÜTnoë¾­û¶îÖˆ­[#Ìš?4˜¶±ÁÊ++¯¬¼rwÀî€Ýœ>8}pR}V}V¥1¾Wþ^ù{åµ½WLÓaÞö wu/7Nmª¬&k¶d×ü]ówÍÏ¡€ôýæNœÑ}uAœVUUß7ßü}óÁ;ƒwWÜQqGÅi»8(w¯Ü½r÷¶ßþ}û÷wïÞ9¨n¨n¨nÐ̿ƛêoª¿©Þ¬³þÍú벿Šv(ü½ÀŒUf¬1÷ýÇK›JmЛ¶òö‹}lÿѶk§r^º÷®­¶>Úú(©sRç¤Îìk²ú×Èý÷X[ÂJÝsf…‹¯×ÿ)&å=‹Ý,,Úƒ 7ïØh±fmývì·c¿Ñ3ŒV”*Jõ1ÿÇüóïí¹·çÞžUîV¹[ånÚ®uÍ™-2[´¥Ï–>[ú¼ðfÀ›ªõªõªõºTÄ.É.É.Iso´/_÷*nj˸ãìµÎü8äqÈãº?Òë›;pF ôM-àtö)öSì§Øƒ¥–>XÚzœõ8ëqi»8(¾¿øþâû7vߨ}c÷Wõ^Õ{UOå¨rT9ÒÂéëÈŸGþ<ò§.{¤Û\Ç!eä3Vk˜ôkâޔ˘Ž7êÙ=\}ñbë]ê_ãI'5ž¼™ðf› ìw²î×ÈC»Z^·~b(Å—ªW ^ÿ8ùz gxè©MŸ‹b4k{$Ï‘`ù€åôs¤×7wàôBè«à 6,lXذã%—<^²abÃƉú ­œ¸râʉOß>}ûô­ÒEé¢t¡…S+6,6,6lÿ ÿAþ)·vû»Í,Í=s:º±!„¾ÚÊ„ãÞ#Ú¾|{íʺô¢k×"®EÐÈŠ_#wû;Ô¯ÙɆNjæ+_¬µºVgƒÚžªô´]©QBÚJC €Ýîmb÷“øÄ†Nl gàKÄ—ˆ/§ºŸê~ª{ÓЦ¡MCõõ]êºÔu©ëã+¯<¾2ü·á¿ ÿí'cz×:$Ùô|èùÐ6ùÛäo“ß$]%6™Ëa¬¡]9'ÿA§¡ý¬S[¹ÇÎaPMgÍÞå¼Ëy—3=ús'N-Bߌ@l¾ý6öÛØËÍ.7»Ü¬c³ŽÍ:6ÓçR`棙f>z0ìÁ°Ã---há·Ïß>û<åvÝºÇøò'c&Üèdoš£_ÍòNåv¶ëRÞj—¡.C]†ª*…JA?Àð¿FŽý^;w…–†0h2cb½ö–/Õµ¹À:Gù¼:ͼå<<Úþ¶]+óe%óY,ñªèï«Z4îXÕÜІ„ÎǶ›^·³fûßYvgÙeôLèâûùï翟¿ÖàZƒk º†u ë–¶ñÞ «›©¶Ê0ÃÔ¬GlÒ¶ùOnž)­(­(­P½P½P½ ÷BŸoîÀ©uñÔÅSOú¦/`ýgôŸÑŠ£ÄQâ¨^ñ½â{é5¿ÚD³‰fÍüìüìüìâ—Æ/_š}ZòÝÍw7ßÝL¹}޵[&Ö 1ŽÐW³üºCºÞüNËé G•Þ¬­æV[unUŽ; ÿkd#'ó% aÐÄÿ{w ©kUðmS“s—Vµÿ¯îÇ”_5«kýß*µM¾EêõÚкÀ¦¹ªUÒlÿ׫_¯~½šž €´‰©S5¦êõf×›]oÖaÿ…ýê2ºûÎo€SS à SCÛ:ßl›ºžê‰f•§þ´=Qq¿©‡fkœ÷qÞÇyôUèóÍ8µ’:'uNêL蛾€³ŒØÞ±½c{ßh{£í¶CF=d´>‘°sç2ÎenݹuçÖG~ùqÄøZ,|iøÒð¥)·ƒÏÆ}*Û:Æý&/“JÝ^æ°g¢k¿Š»hk5ÇÖ[sŒc ÃQäk‘¯E¾j~j+?9çtüÓM~r9ɺWùæGç:Ôš¯w/kw­î¬¬Î˜×Oþ—óT .[Ö0ïèV¥–ùÍ­‹êÕ%ª =éåG¿ý~ôóèëÑ×£¯æõgÑŠ»¯ºëÜñ¡!‡©YåÞßÿyêÏÜvmêÖÓlóî'ÜO¸Ó3¡;àô’ü>`B_ýgaq#âFĸýéö§ÛŸÆ¸ŽqãªO$<àñ€Ç{õ(êQ4Æ%Æ%Æ%ë¶L|B|B|BÛ:¶ulµmï£-LJمf‡è÷J?ßƒŽ ç‡8—¯|[[˸×q¯ã^‡ã CÐ?¸pÿ`ÍÏ믥‡Ìk~ÚMÔtî_¹Z‹ º_yv(e¹Â¬ýéÃwØo4¸¡¢½ÎŽŽ5µÕ\e¯²WÙÓ3¾‡={ü“D/Ðp U¬¬f•2¬ÔàœÍni¶yo‹Þ½™T©@ ÃDlTª&TM¨z¯Ñ½F÷M™9eæ”™úDÂÝÛvoÛ½­¢¸¢¸¢xTÁ¨‚Q³J;LÞ;yïä½Ú¶ëáŒc‹íŽe»è7yùÚ÷œc“Ó/·|­­•‚ÿþ#øŽ)2×þOû?íÿ¤ùIíý¢ë›÷ mE}§o¯ÉU†šªp¾x™ÂQE.´*У¦ªt—b󻩬,ã«þC¾K ¢åÍçýäÚ8¼{x÷pú$2Âᇇ~ø“+ÿ÷]ß50ä5+ÎüÿÊÙÎõ+iU*•J¥’ž ]Ã0¹Äã‰Ç¶ lØfnñ¹Åç×'n;½íô¶Ó/^¼Ù/²_d?CÛÞK_.}¹ôE[ýo”Ü^_ÌÖÑo²R¹ÔçCdÏ?œú™k}¶~ì©ØS±§8ŽÈ,£G=ŽÒüŒž{¬AÓÊÿòÃß´ ýþø´“e½5šm~°ÛÁn»Ñ'¡ö éƒ¦šîo²¿Éþ&cj©=¦¶Í[›·6ouùVUÀ¦€M›fAÍ‚šM;;íì´³'¢NDˆzòæÉ›'oh[²'ç¶ÎmÛj^9„7ìÛ¼9pÆ•ªÝ([T³å#FŒ.ø¸àã‚Kþ[òß’ÿô‰„›÷oÞ¿yÿÓ­N·:Ý*|Pø ðA™µ]_†~úe¨¶zîRÎ3­iAè«YFÇ{FÙÿVh`Á£&þší6ëø¬ã³ŽsÔYr$äHÈ¡õ7éGÆ;æâÑmé[)V=¡ìmm>{Ùìe³— 08qTâ¨ÄQôRãöºËë.¯»¸¶pmáÚÂj‡Õ«&¿„ý|ûùöóÝ\Ý\Ý\ÃLÂLÂLØ·Ê9*ç¨ü“+ÿ¤k#×;xg\¹³¢}×4[þI÷'ÝŸt§gBÀ0LÀP)•ÊÀçžox¾aÍÜ5s×Ì-àZÀµ@g®—T/©^ÒÑiG§jjjök¶bH±!ņÓ¬O—ör™–ª+¾›mˆ{µ•OFŸÚHë¬ÀyóæáH ³ ˜9`怟LíñdWŸ9‰lÓ«Œ½4¼«ýˆÔ^ýNz>éù¤çw[Þmy·eü‹øñ/è±YWŒyŒyŒù±MÇ6Ûd>Ñ|¢ùDƒa/ÙKöÒu‡ë׃ƒƒÙ_ÍOÿʳJ,-r×戛zìáÑyGýñší/õ—úKýé™HÛñK C@ŒŸ™«š«šûúÎë;¯ï¸¶tméÚ²tDéˆÒiª¨Ö­Z·jÝö Ø7`߀›?nþ¸Y§ŠSÅ¥WeýGúô©íÝÃ^+5‹"âÕ¥Ün2ûï5Û°Æè£kŒV9¨Tüzž¥.o\Þ¸¼ôaCömÇ·ßv¬Ù¼fóšÍúïý‚æNš,µY^ݪøõÖö¶›Út(×l”YGÇá¶›J÷¨Q¼RÏb…Ò+>Ùìd³“Í·$nIÜÂ~ «Óü¬ïöêx™gÀ]>~ÙǦ‘›fûúxèã¡ôL¤íø%†! †nÞ¨Þ¨Þ¼—ÞKï¥]·wÝÞu»RŽJ9*åHÛPEÙeG”±MµMµMõöæÛ›ooª.«.«.§ºV÷T÷T÷ê\­sµÎUÍw9á±âXíiĺº—‰×o7sXQú[É ã4ÛS¬,V+s(ðëÅm‹Û·MÛ•UÔaí[xßêUÆ8w´·¶.=¼Ø*Íîß«¯þ½ô êt~ÐyÏFž<Å|‹ùó^¹Ÿ'>O|¾¯È¾"ûФvo6*TÛ©¤ÝÖf3÷Tè?åð¶†Ë_Ýîí°>mWà‘Åä²Í?yI{r4è±ôÓØ‡UÊ—ûXƵðÊÔÖJz/½—Þ³gȺ4?ß'Œ®Ó©b~àŒ.?ôð¼é,Íö_½>z}4=i;~ €a€¡—Ñ!£CFúýÐï‡~¯å[Ë·–oÚÅŠY³.f½¡×†^z½<õòÔËS*k•µÊ:åw÷•}e_YsmL] E*›ùüçðšX7µåíkûºÙæÒlU³¾f}Íúª~Sý¦úžÀ¯·èࢃ‹j~Fï^èPºfB\}Êû1=í¾ÔlÛ:ÓêL«3MÝþñÁñÁñÁwëÜ­s·Î$a’0IÐ'îiÓÓ¦§ÐNh'´‹Úµ!j=ü×¼x=𺙟™Ÿ™Ÿ.{ªe׆íK¯¾vßu’Í˨ O[œù5×äa•ŽÍ|_bW«f9Û2ù Õ¥¶›tnÒ¹É禟›~nʾ kÑüdŸW»Á¤ÊU €3º Ë?(±ÙMÍö_ÒnI»%íè™HÛñK C@Œtæææ<îxÜñ¸FuhÔAŸ¡±cVŒY1æiǧŸvTVVNþ^Ë–9,ûÉé5ïηõ¯妱Túú8:6©VçKÉ šmëSÓ§¦OMú9¿Þ§??ýùéOmWMÑLJ­kI”›¶{›,»¢”ãOîªô‘|$m{$qXâ°Äa:tœí<Ûy¶³>×½íÇ·ß~ü¥b—Š]*JŸO/Ê-Ê-Ê-VnX¹A§;kgý>Dªdû~õ¥’MÛÄõy’¯£ãÃÃÇŽÚïQ¯¥Â¼œ.[q¹Ïå>—û°÷È*4?Íçµµ¬¼8Ãà;ƒ[4ûÉÔ‡‹&/š¼h2=i;~ €a€‘á"Â#Â#ÂÏ>{øìá–«Z®j¹JŸ¡±õÔ_P_#‘Æhþß2—ºUh¢*Ÿo>ÇüD¹ú”w ¨bû“²,:XЫÈ,cVŒY1f…ægôÊÉsU!NuéáÛyOý‰šíY|~ñùÅç+ó+ó+óë¾w’Ž'O:\!¸Bp…E~‹üùésÝk?Ô~¨ýP÷íîÛÝ·‡+ÕáJúj}ëú­ë·®mV·YÝfuÊ­=!Ÿ¨ ñ¡¯m¶Ëð¯Õ_>Üh¯ý²f¥BSÞ.•‹ÊE¥Ì£Ì£ÌCÀi~ŽOëj³ØrpF—ŸÞn–G³ýWZuhÕ!z&ÒvüÃ#3b¼¾y}óºòüÛiA§˜¤“3g×,­³9³bž¶;]äÿ¹“ecàâ¾Å ;TDYÀK³¿Ìø2ãË z2¿Þ‡ï¾ø®íZèUŸ~ûš˜ëêRþX2|Ÿ½«ÖUWI«¤Uúï/å1å1å±gçŸv~UèªÐU¡ú\ëÚ°-`[Àí‘Û#·G¡·Co‡ÞæˆÐæÛ;·wn&[M¶šlÕÖžfŽ¥jr ´q[n7(ë^·_¾¶é/›ª)÷œŽ :&Ä®Œ]»’¾€aÒüx¼z᲎À]¾îW ±·fûﺿëþ®ûôL¤íø%†! †AˆîÝ#º‡T]ª.UïcÝǺuÚÅbÊÞ(lŸ×pà¬ظp–õOæskëÖÖ­-ý€Ì²Üb¹År ÍÏh›NfŠ_H:5r•ƒLÄ›r9otƒ¥•h¶a“YMf5™¥’T’JÊ7X5X5øU«„W ›<6ylò(y¡ä…ŸM½¡‹ÓjL«1mÿýwößùÔþSûOíUIª$URv>:žÛ?·nŸr»-ì1ª¹Uéïâuãù=á[ĪÍ{t|ÒüºÙ9m[]'Gur|¿ùýæ÷›œE04?ùñ_·2wKì"ÎèÒ7¶ûß¶‹4Ûÿ‘ G.¡g"mÇ/0 0 Tì¾Ø}±ûnþyóÏ›Ý>tûÐí)â |Õ¡MÙΙ;ìb|pX;Åàfš[ÔxUãUWÑKÈ´+%ŸXŸXm×EkÊ5ÉUu¯¶òºyçõ jk½«^¬zñk¯sUªÀw‰ïß%îì¼³óÎÎVxXáaÚ"áò®å]˻c掙ïV½[õn•ÊWå«òÍÇÅË-/·¼Ü’rû\µiƒMW£Ìe©ïXÇ*ëOžZ-Ÿ¶°>a}ÂúDL˜18—`8 Î.8»à쟌+ntnæX8ãÊãwZç«ÝT³åý]ý]ý]é™Ð0 0²Œ¸ƒq㺬pYáò“yïä¦Û>×{Iœe•z:­ý“û­Å ŠDÏ ³Ünq»ÅíÚbqe§¿ëÍ&îM^¾é×`“MÚZÌõ²ëe׈³?]ütñÓÅ;ì8°£æÉš'kžL[$\b\‰q%Æm|³ñÍÆ7¯¾Zøj¡ª“ª“ª“1 ¡7Bo„ÞH¹ýn·Øh£_Òýëê¯uœµµFK‹–--Ç%ŽKǹCÐù¯Îuþë'ãoÿ»`ÿ'pÆ•Ó]l¢,Ý4[>äuÈë×ôLY0²˜6#ÚŒh3Bó#9²—Ü­y,pF”òLñ¬öŸæv=8÷à܃sôI2×’†K.i¨5ôrîUÝn,ÑoÄÂ!ÍWik¥æõš×k^OÙVÙViГ\„Y…Y…YÛ}l÷±Ý ›4lÒ°‰>3 ¯Êµ*ת\Ïj?«ý¬¶r½r½r}Vìÿq!q!q!ÕºVëZ­«¶-}x&ã5Ù'úM^*ò»° ÓÖ2“^Oz=‰aM ÂúNë;­ï¤ùyýøVŸêg\iTòš-Ÿp<áxÂqz&€¬‹YF’w’w’·æ‡q±©EžP¨â|½ 3öÿíp“†ÿõmÙæ¬…SyOóæ……b[ŠDð¬}¿jžâåçÔ6µÒ•p3áns;Ã6ò{8¢á>ÍíÚ5z×è]£é™dò5R«¤VI­Z”hQ¢E m1ÏS›>ÅdÏè÷ÛÊ¡Ã[ØUÊ[\Ud–¶ö {ö"ìEVÜûÝ#ºGt?ÓûLï3½V8¬pX¡O$¼ðÅ _í Ú´+iyÒò¤å†ß†O>a¸¶-zrñÔžF³gô›¼¼`³Þ©î@m­t¼Ïñ>Çûp. sÝ6¹mrû'ŸÔûv8¶¨ù8#ʘ#ÃÂí+k¶yý=õ÷ÔßCŸÕ#ËïÞ+¼—æGòèw=BÊß3„mp‘ …gè‘òp[…óæªÂQ;fwÁÐŒ¾•CZXhÖy@®¹0“!Ò$Ò$òÿˆ÷ «#F–ñ¨ð£Â k~$,ºðµõC€Õf; ½Ziáµ®ÿÚ\?óa{}ãŠ÷]ayœ&wL“ÿ¥ÒÔ§³ƒÝ© ôóyæø“ P³D³D³Dz&†ã]Ò»¤wI)GzŠ{Ô31§óúÜoügÊíp£ôÒ7Jg‡^õ4êiÔS!IH’zµíÕ¶W[}"á‰âDq¢è·Óo§ßÎø#ñGâüú- _¾>|½¶î=6¿NMqïOÊp_Á±ùÝÆ—ýɯEjÅ׊¯¯­­ä?dš aÂ*üdú†ïw‡¾l±˜È6}ËiOl.Z.ÔvUiíjíjízÐæ ÍA›ßC~ùþ k!F–q­àµ‚× j~ßj¼gHƒI†|[ÐÁäœ`½eI½êê¿I>+°úß'š­p¨ÝÛðg¶¶µÊUlÍÏê ËË»/ï¾¼›rŒ·"¶ÑÃ*“JŽìæ°Ç˜qÎh›T÷ÿˆ~Ågâ3ñYvî!±µckÇÖö|çùÎóÝ`ÏÁžƒ=õ‰„o8ßp¾ámímímýÃ÷‡ïߌ®ÿˆí#¶Ø®Y“®Ž•Y¡ºá»Ë±q¯¶2ºg¿AÚöæQË£–G-9‹Y\½]½]2ÞÅþí”uÙ¦W™°f„‡ƒCj¯{+zVô¬è¹óûÎï;¿¿ïø¾ãûŽª'ª'ª'ô[¤MÈ÷ï!ß/M»4íÒ´oE¾ùV„6Aú"F–±¿ÝþvûÛi~ô>«tZn\Í0àÁÏ;>.{S—@7ù«ZotÁ´±¡ õ~Ôz½y40YÅ{—÷.ï]R¨٨ô?ź=_Ùwsã9Ywø&âÀNÍ7 ¹XælLÊÛë]Ï»žw=ú†¦8û8û8ûÛ‹o/¾½xô÷ÑßG×'¸pà =æyÌó˜ããã–^õ ¼x-ðšÖ¹œ§+6{FÄ«Ké“°¿£mm-ù½ß÷~ßûq\ðë½]ôvÑÛE?™•vn³µnÓ«¼Ñ©KÍú>&z+u¬Ô±RÇ6;ovÞìüºÛën¯»©Æ©Æ©ÆÑ“¡‹}¾û|÷ù&ïQöIöIöI´ Ò 0²Œµ›ÖnZ»IóƒöãœË»›* 3–£¶O¯ÿ—.¯½àÉ%úw«xŒ€¬%òLä™È3ŽM›86IyðbñȆV¿oêÓb†áÙ$ÎYÂaæÑGNQµ6ë24óÔý©ûSwúƒîò'äOÈ÷ÅÝw_L~6ùÙägú uOèžÐ=A±T±T±4ªiTÓ¨¦i«UÓ6MÛ4ýIlytáÒžµ릶Y¨ë—r? ûW†® ]ÊQ@f©i^Ó¼¦ùOnƒ‰íÛ¯q_â[ýËf/Êî,ÕI³…×|_ó}Í÷ÕTkP-¾­MZ›´^½uõÖÕ[Ÿ~^øya¥B©P*èÕÐT-¶ZlµØäݧÁÜsÌ¥e^€‘e,ž¾xúâé?ù¥ÿPÅäfÁ†¿½yáB“÷º¼ö…ù™Ö÷òƒ ]þqºr`²¢$÷$÷$÷åÓ–O[>M—Q‹-ùšw«¾î{é¡»Zô3œaš¤g#w9øž}Øöd ]¶¢§ÔSê)}ÿóûŸßÿ¤è/qCâ†Ä ‘‘‘sæÎ™;g®>‘p»jíªµ«vÑé¢ÓE§Èu‘ë"×¥üî®?¸þàºæzŠ­-ò¥€GRûÛîÇtS[~n|Õ«Y_mûè[Ü·¸oqô|~½KE/½TTóÓyH—ʾ"¾Õ§ Ø»U£âšm[®A¹å¨\U®*Wõ^¿~-üš{÷<îyZ,i±¤Å}®~»,vYì¼2xeðÊ$Ï$Ï$OúyvÚ)´SèO~‚à6ÅmŠÛÚé…YÆâÖ‹[/ný“xš¡<êM3Žsö:h[—ׯ.½Yž¯AÀF<¬<’€¬îNß;}ïôÕ}¨b\áÚ+, ”{µ·›ÿëhÞøô_ÞääªÜT-¨{OÖ?Yÿd}öuFKº—t/é^°,‹‹/~¼ø±>ƒb-е(Ö¢ØiÓ§=·…o ß–ü½ºõêÖ«[/ÍW ó·Ü¬×”(WŸr~¼³ue?Ͷݺ+t÷ âïÄ߉¿£íªé™²ïÀÆýˆrÓV¶[áŽiSÍV½4÷ÒÜKÿÇ—‘§"OEžº¸úâê‹«Ûmm·µÝV}®~ç”SvNÙE€"@‘¸0qaâBz~öqôåÑ—G_jöŠÐí¡ÛC·Ó>H/ÀÈ2Öæ[›om¾Ÿ<úÚå{M}²úÀ¯¾siÒ\ýªB…~3ùlp€>Õß§â`ŒCœEœEœÅÚ"k‹¬-’Ú¡Š‰}ê«è ÅtZWïî—–ƒ'4ÿGÿ˜¸9Óìïú ݾÛN[2ÜÎÂʯȽ‚u ¤"¨QuDÕUÃìÂìÂìØ¿™EySySyóy‹ç-ž·X¾:|u¸‰—‰—‰WÚÅê_«­þµývôÛÑOÛß$øwð&ÄÕë>à/×Ú7[¨µ…““éÛüz‡ .p¸€æ§³Óå •K?WÅ8s´'ÐÕ½ôêÞåk­Óâ$Љb¢˜Ú}Õ'ªOTÅmÅmÅíC{ í1TŸHxòìɳ'Ͼ{øîệã“â“â™ ÖhÕß^{ýíÉ÷~õWÕ_UEË }#ËØ·`ß‚} ~ò«·Cîe·Êês_ëàú¯Íÿ{¨]Í|•‹kmhpŸ·m†ZÔ"Àø„D†D†DN>1ùÄäú XXM/ñ¾èŸ}¿Vu·7gh}¯J7Öú6Ù[5ÌuOó*Õ§mxÒôFµ] [ØÆX^¤fñróê½1{W"¿^ÞÒnK»-A·‚nÝb?¨)ª)ª)¯¼^ðzÁfÅfÅfEéò¥Ë—.o¢·C‹îZ{r°šÐÆÛÔÁfu ñU»×ñ¨êU¼O±-E¢ xV8o®*ehµí_¨]I wÍv~PùAå•éÈüzñgãÏÆŸÕv-t¥Y‡6­‰uu)Ü~Åþ¶–¼Úæj›«mÒk¯ÅxÄxÄxxˆ¢‡80d`ÈÀ}®xG¯½nôºÛ­n·ºÝ*®F\¸Y]øºðuáë4÷õþûGìAû }#˸jzÕôª©æÉÑ»äÞü f<øyÇÇeoêòÚœr™×W¿ª×äV³ÍZ\ëe•¶Å¾`ÜBBBV_=|õpƒôß¼ÿæý7ïÙ‹g/ž½`eIÏUÏUÏßÏ|?óýÌ]-vµØÕÂÒÖÒÖÒ6µ=áëy)°ù}C€g; ½ZiaÊ[a8µ½óù@€í5ÍN];uíÔµt[2‹à,8 ÎÚ®%Â> n×,†ˆ7årî†õ*ÿ¥Ùz ò5È× ŸjšjšjZÆíÁ¯¼þñÚ{¬÷Xï±£,GY޲ÔçÛÐàþƒûîïyÈóç¡ØR±¥bKqŒd-§Ož>yú¤æžýTêS©OìM¤3`dË<,ó°ÌO~û?gQ¼u€aÀßt09'XoYR¯º¶Wh¶Â¡vï䯺鶻bƒâ†3¤LòÍé˜W³åK{•ö*íEÏÀX%\N¸œpÙ§¤OIŸ’£ÝG»vÿõqo§èNÑ¢¯»RìJ±h—h—hö‹± ©R%¤ÊÁE\T+O­<µòhë­ç4ºeÚÂð­léZvz‘Aê:Ϙ8x‘åËÇ£Oîl´6ê‚Gt‹+†'¼óÞìÐK[›+s)s)sÑKÈIª$URç¼óvþÉèœÓ” &¥ï*G>pøLЫYŠQjÖÛ¤u6å/Ͼ<ûòëwiü•ø+ñWüú=ô{8Él’Ù$3}¾1õ|×ó]ÏwÂ5ášp-JŽ’£dCÖ<¶ylóØä{°\b¹Är‰*õ¤+`d_\¿¸~qýÉ] Sz…Vj˜pÅC׊X©ÿ=§î°©•®(šºÞ¶ùqÎ{]åºùÆï=ºÂòÿÌÞè‚icC úöüú¢í5[¾ïÕ¾Wû^¥gݼºöêÚ«k'o¼uòÖØ ±Acƒ*½®ôºÒë´ X”,\²pÉÂú è3 Ï¾ û*ì«4'hNÐÚ‡7ÞpxƒfŸqo¶zDæ†'¯³:ú5ü:Ö],?C³Íßàÿ)_Üé—·±—¶sýâúÅõ‹áìßÄ6‰mÛ<ˆyó fÖÝYwgÝÕ'îP®C¹å.­¸´âÒŠofß̾™q‚È¥‘K#—jî¯wÜQöAF F–‘49irÒdÍSd)«âRÁ †߸¼kTý×%G¯\pDÊÌ5L+õ)VøíÍ š¼7´øÁª£ írþäéýŽö;ÚÓ3FÖYsdÍŸ<mð•NM¿f­XýMÁð묈ÜÒµÞOžºtzËé-§·Ð'È\Âda²0YÛèâA±åÖG‰~ÃrŠkæ©­•"""•ÎJg¥³!ïë$×$×$× ÿ ÿ ÿEõÕ[TOŸHØ¡´Ci‡Òg ž)x¦`D݈ºu9š~½‹u.Ö¹XGsï¼ëö®Û»n´20²§ÒN¥Jkž(¿ ¾^¾EmC €“ý Lè0°lÏòžæÍ E©W`uª^Åû,¼3j—•Í÷ Z,0´èW]n ™þ[õšm~?ïý¼÷óÒ'Î>«>«>›Œ4i2ò'#è³Ôá“ᇾYeößäåg×kÿ4¯YÛ±KÆ.»„Ž €!Xá²Âe…‹¶kŒS[¬í™=£ß//»5¯^¬и‚¥µµOøÝð»áw³â~WnWnWn6ôÙÐgCWõ^Õ{Uo}"aÛ»¶wmïër¬Ë±.a¹Ãr‡åæÈÊhíòµË×._ò½PÜ¿¸q•—ÊKÅ4‹ÈÀÈbvÿµû¯Ýi~hyœÚq¿þhÃôÑÿ¿NYãD¥;Å~òë¤W^]xu>™E<ŠxñèHí#µÔp{Àí· ´)Ц@ýg|ìQµGÕU÷xîñÜãù.ì]Ø»0Z€ì#v^ì¼ØyšWmÎ5¾jºÂ¯œÕSÀ$ŸF­ìk³Û…;&ÿ¿†Yÿ¤·?8\Õlù Wø»ÂßôL BUU™æÌ˜kWÙÿØñеmö‰~?|X éŽ•L¦›tÐÖ&OŠ=)ö¤˜Qõ„žªžªž¯Ü_¹¿rßd³Éf“M‰!%BÒ6W³AÍ5h ýöŸÖ~Zûi­J©Rª”pú‹ªU?ª¾f›oœºqêÆ©´20²˜Í_4Ñ\ót9̬ó®rN†ÿPµ¬U~ñ–7¯”òÅÕ&«MV›ö,Þ³xÏâ>øp@¡ŠPEÐWJ¨*Tz¿÷ýÞ÷{O¼;ñîÄ»&™d˜ç0Ïaž·sÞÎy;§2§2§2';ãó>ô}èûПÌo§û¡Jå¬r-­.­Zu/vøgw-CÕj}«õ­ÖkEYð›íÜÊ÷’îŒÜâpËX£_ÿ1=Î6\’òh’““S¶èwUwUwß]|wñÝž;|wøVÈW!_…|i…«Ð¿Bÿ ýwæÜ™sgÎwÞ=x÷@å¯òWùsô¥–b²b²â'oåôÊé•탌CŒ,FÙFÙF©õþÂØ7¢íÛܦWy¤ø»Z5S{qPfc™e6n-¼µðÖÂo®¿¹þæºj§j§j'½7k‰:u0êàÞã{ï=nbÀ6¼ÚðjëëëköÆá~îû¹ïçþÉL´V¯ópF—ÃKwRn>0†ï‡×¯^­§´žÒzж‘“¦Êþ[2>dß "ÍêIô;ÅÙÆÑrßxÇÚ5ÿ»]½ÿôþÓûÏlÝE”*¥Jùiʧ)Ÿ¦(y ä’5Bk„ÖMÛ(\Ɇ%–l¸é¿MÿmúïÕÝWw_ÝUõUõUõåHLY÷çÝŸwþ“«k'•“ŠˆYÒÒGK-}¤yҼാ{Ý¡·éPNñàhiz¾¤¢Pý#ºÂm ·-Üv]Ÿu}Öõy±õÅÖ[U¹T¹T¹èɆ&Æ)Æ)Æic‰%6–Ðg—\o]ÅÖ£ü²Ž›†Ø[Åý8gfõ;ã¿­þ­æÖ©;6u¨yjêËMGj˜à³¦x•çϛW¡[—R×”ºU'©Éi}ÞwA«­´ú:óë̯3Ù›d]Âjaµ°Zó³þÖ’=;,$Îèr™å¹«Ô" «Hœ08aðû!öCìS9qÛæ{᪠ÎM«eÅè÷ÝÜUšæwÜ\¾éÁ)oéý÷÷ßßOßÐ&ôKè—Ð/Ç,ŽY³°]`»Àv>#r«6­Ú´jÓ³EÏ=[¤Ü§Ü§ÜG «ÅìÙ³_³ÅVn\¹qåFÚYÒkéµôZúɃ)™/üU5Ñ·ŸcEB\}Ê{=]iè¤Ù½z;ô>yî乓çš|mòµÉW}.–õ]ÖwYß'•ŸT~RYYVYVY–¾ vªvªvž‰<y&2µ{°ì‘Ön}ö×?{ÌŽ{‹î+ïkÕ¸ñ¾}¾¾éUÖ¾ì2ußïåŸtÚ:tcjë¶ïþ¾ûûî'L:˜t @ÖrÚä´ÉÏ~ö0Ç1K»µÀ]î,2gwsÀd1÷T÷T÷Öþ·ö¿µÿ¥£¾‹&/š¼hrз oAß’v'íNÚ=[Õc¬ÇX±šíó4úiôÓhz20²°&;šìh²ã'wxï¹×`!®>¥ÃgÛÚ¥©(¨€IDATj¶­W¢W¢Wbò½ðõÔ×S_Oo¾ýùö­Kµ.Õº”>.Å\й{8ñáćèççcÌǘ1-‡¶Úr¨.{Çìuã›mÛÖÙ¸°âÁÙŽï¹{rúƽÿGYlŸ¥ou›RKŽ]²sêÝó¨.u®:·êܪsŸWy^åyö8YÅ‘G>ù¨ùÉþäÈ©gtyP\4Ôú(0Y—GuêÕu9é]©¡ÙÕ›ž »J*Á¹“c=C}¿¶²¾ùÕÍg›To¦ËVLì4±ÓÄN?„ÿgï§—oy¾åù–çRßK}/õmÿ´ýÓöOõõwvÞÙyJ” (™Ø-±[b·ìІ‡ 6p˜fk())ÑÇÑ€‘…yðà=@óZés¹EN*_ú|vüƒ(7µ¥ß샶Ï4[µØÐbC‹ Uº(]”.)ï—ï“¿Oþ>ùê«®蚣kŽ®9ô¹8˜¶bÚŠi+ü§øOñŸ’°:auÂjz¾þ®-¼¶ðÚB]Ú¿üüŽs‡X6¸¾qæ••¿4îÕ¡løÛ–qâAËà>¹Ç ºl‹[m·ÚnµÙû>·Jn•Ü*i~š?<Þè0pF—¦,bÝ€¬.ü|øùðóý~ôûÑï‡.#'ez¹^hÑ!·–7­Ÿ'&Œlå°õW†¾w.wïdë>4©†{¹¦ºÊö²½lϾþ5¢NFŒ:)¬Ö k{îî¹»çn}F}'õŸÔR¿¿¿„x¯x¯x/cj«7ÜüqSs«:/t^èL_¯AŒ¬l¹j¹jyµÓÕNWûÉâΜ\³°Î&]Ýˤ >9<*”1_Qø'ø¸j~ÕüªyÚvTô÷èïÑßå3òùL¿]ývõÛ¥ÏÅÁ—þ»ôß%_k_k_ë¸à¸à¸` W W _¿"~Eüÿq§ïˆF­û5X·áÕå†új ƒ]¶&ʇʮiÝ·Oãÿã7¡#&Ž˜8"qdâÈÄ‘t ÓÙƒgž=¨ù9þ ËÑü £€3ºÜš{æ„êÞÀ¯²^e½Ê­Y´fÑšºÂUxZ¼zᤕ9W º}ª[ ÛáþCr5šÆ ÷‡ópGû§'ú¼i\à˜I+çZÏzüf5˼xjÇ7]ÜtqÓè¥ÑK£—²g3Wì?±ÿÄþã9Ës–ç¬Á%—\RŸQßQΣœG9{oöÞì½ùGĈY·e¼Ëx—ñ.£¹A}‚úõ¡çà× F–wÇóŽçOmcÅÀæËwu)÷æw¹Vs›fZŽ·o9^é©ôTz¦×^ûQåG•U¼fxÍðš1x|Ðü÷¸cSýÞÀ]º\Y»òB`ŒÒCé¡ô8;÷ìܳsMôV Æä¦É\[ÿ2‰%®t¬ô¥Lž;«®·èÛË¡JóíN£+ä-}ÇòIñ°"ãõ¯‰e'–Xö£ÏGŸ>ìGCgggqÛâ¶Åm‹ÑFwÝAŸý>¨Ú jƒªy„x„x„Ä<ˆyó «´ƒóç#ÎG4·(iFÒŒ¤ôüÀ0}üúøõñÓ<¥öÙÔ¦¢…¹*Ê×ñ¯¶òE3Ýï×öAëßÝ¿»÷ŒÞƒñ¥ãKÇ—öóóÿûøßÇÿ®ÏÅA_»¾v}í¤@)P ŒÞ½=z{ö<.Ö&¬MXÛ­C·Ý´^l•ZVǦñ©†u·šHS²zô›¼´{¸«†W~óóö »\жíuÖÖY[gmÔè‡Q9‹`8‚lƒlƒl5?»¯]ì_«pF—½í[—1$À¸%½Mz›ôöF¥•nTrjíÔÚ©µ‰Ùd»Év“í—_:|éÀþÊºâ¿Æÿz×å®Ë]—É&7šÜHŸ^ÑãXc=Ž)¢ÑŠè¨ÿ¢þ‹úÏà¶w_ü¾ø}š5Ÿ73nfý¿0ŒÄç€ÏŸ´}0¼ÈÔz#A¯fù㛫íg˜ö/9£PÍv›|pòÁÉ3kŸ&ÜJ¸•pë~íûµïמî7ÝoºŸ>7uÞÔyÓÅÅÅ÷ß |/`äñÑIÑIѽg÷žÝ{¶¶6©Ø­»ý¨m¾ìÝï³À˜¢ßÿ)íöíðõ´ú8ôÄœêÚÚ¡þˆú#êøqéÇ¥—8—`BÏ…ž =§ù©=cüà…–/ €3º,cYêe¡Àd7a~a~a~n n n -¶¶ØÚb믌{]–º,uY¸.p]à:ö…qKœ‘8#qFÀÖ€­[g¿›ýnö;}zN»×í^·{}ñÚÅk¯EzFzFzfîÖù­ô[é·ò'ÓÙÌx0ã÷þâ—"†Q9;óì̳3µ}Üž´Ï´ÁwBßÿW6÷­çXjI‡ eûik±h¯h¯h/ÃÙ¿IVIVIV*>ªø¨âüó;Ì×ë"N‡œ9:×ï\¿sý¾6ûÚìk3c:¦ÿ>ý÷éZ²zø…yw6ôÕRÖ83éæºÃZ?ø²ÇË/•‹•‹•‹9—¹%4JøÉu«U/>8ãÊx‹[uì¿k¶¼­­­­­-=€ìéñÈÇ#tëèÖÑ­ãï Þ¼ôjЫA/ÝGá,B,B,Bz>ïù¼çóõçÖŸ[îæõ›×o^WRR¢…‘t-éZÒµ`ç`ç`çÅö‹íÛë3êÛ¿… w[w[wÛðûá÷ÃïÿÊm™¸âþ‰?yÖf¢e¢e¢%û¿0ŒÐ˜›cn޹©íàISu]#žà\°ò m­àààiøûZÙRÙRÙòɃ'ž±9û¿0ŒP\÷¸îqÝ­rYå²Ê¥í¤ÿtÒéÚÏvѯÒ×ÇÑqÅüqÏ«\ÕÖ2nJ7¥›2 ï~S•©Êôeý—õ_Ö_?oý¼õóŠD‰*•¶‹ƒÚQµ£jGò9äsÈ'Ä/Ä/ÄÏ7= $ $ DÛ¶T^1pÀ´}Ù9úM^Vo7nð ¥¶¶’ºKÝ¥îœKÈ\ónλ9ï'?ë|fyZn\8#J·:KßÖ:¦Ùæò,y–<‹> mbïÇÞ½/‰’(‰§Þžz{êíÁüq`æ™fÛslϱ=Wz^éy¥gðÈà‘Á#i1j£U£U£_×{]ïu½ÍÖ›­7[—êYªg©žiõ­þ´úÓêO÷Ý?tÿÐO%>•øTB•¨JT%êSÁîܸk¾—_g¿Î~Ùøõ€a´B'†N ˜ò‰ÞÌá —d‡èWÙÝg®Ã‡YÑCgUš ­5–K„%Æø»þ“ª“ª“o»¿íþ¶û¶jÛªm«famama¶‹ƒÊÖ•­+[ïvÝíºÛõCå•?TV…¨BT!™»‰?†ýöc˜ÖÇ츴ü«{Tã†û¶øŠD¿ÉKËɽ|ÇYjk·ð)áS§p. ³x5ôjèÕPó3z«ÝÌÕ³Jœµ¾5´.Ôh²iÍ6¿üúòë˯´üÑòGKzfv“$$ I ûö7ìgo˜½aö† I’*$¥ï¼÷Ü?pÿ©–§ZžjÒ2¤e= ü_‚UÁªà÷uÞ×y_g§°SØ)Tœ\qrÅÉi»)[.¶\ìŽ|;òíÈ÷®Ë».ﺨ¼T^ªTL8«û¬î³ºÿä Fkãׯ¯ewá×#†‘{uúÕéW§S>¹ŸùºærÆýFwðü¯Å³Î×í›”)«­¦Œž2zÊhÕ;Õ;Õ»lÑ-¢UѪèÕ?VÿX}尿›önªjYÕ²ªeÚ.Ì,Í,Í,·”ÞRzKé7ß4~ÓXµZµZµúWnЂS N-8¥Y·B¹Jô.ýÝÇ]#½z÷j–"öñY^ru/ÛŸ ` x=àõ€×œEÈ,Q…¢ EúÉÐLó2E WÅùÞrt`b—ô*£úyœiqH—«ßþ¦ýMû›^Ïy=çõœ1…b Å0oŸqÙ¯Ú¯ÚÑñ¢ãEDZ-b[Äšd’"u‹Ô-RwsŽÍ96çëÖ/¬;èâÓçOŸ?}>˜ë`®ƒ¹¬¬¬Òv5RÜ·¸oqß7NÜ8ñUËW-_µT9©œTNšï˜´$iIÒÍ58Û;Û;Û³GY€‘-¼ÜüróËÍ)ŸÐ§¼pÙ²À/ {# ƒt=š¿áÿñèãiã§Ÿ6^USUSU“~òYú,}–Žœ?rþÈy› › › ´] *T0hmŸµ}Ööy‘÷EÞy•Ÿ•Ÿ•Ÿ3¢ÎÏÎ?;ÿì¼¶šÔë¼ÒÿôQ‚Þ”KÛê›\sÔÖ†Þ¼y?âè ³8Þv¼íx[ó3úÓù•MÖܦWy!÷ú²u»§íê·ë® ».¼{5öjì÷-ß·|ßB¿Íbƒ¤~úóÓŸsoν9÷¦‰kûGÛ?ÚþáçëçëçË^º ëÖ+¬×ñœÇsÏÙðQÃG ésM²ríʵ+×>ýþôûÓïÊEÊEÊEAk‚Ö­ÑüË[oo½½õ–öGf!F6òqÎÇ9甚]jv©Ù)ŸÄo¿Þ7É6oV¸‰³óšo/-y26§ÕÇ”·qmε9׿T}T}T}¤ohþwøßáŸZsjÍ©5Íš6kÚ¬©>K»,í²´Ëã7>ި̩̩̩ [½kõ®Õ»Ÿ<ªºÃ€CSÏî¦bV`ñ÷Wÿäï{f÷Ìî)ÿRþ¥ü‹#€_ïRÀ¥€KšŸÑ –8ï©Fp›e¼ï-GkÁʹ؉ô êZïo½¿õþó‡Î:è룯¾òs:ƒú)ôS觉&>˜ø ÷Ää«Ü¼æÚ …:·6³Ú±±– ¯m:wÍîµÚ®·ë?Z·ù½»&-^×µRë¾c&®,­¬`¿?mïnó»Íï6¿ßs¿ç~Ͻ R+bAÄ‚ˆg®œ¹r抣©£©£©>W¿-Oµ<Õò'OgüqúÇé§imd`d;ѽ¢{E÷êñ{ß{üžò‰»}ëùÞ^½p¢É[ø9¹®UÝbº| ÷9ïsÞ‡ž6‘ÿFþùïó æÌÛ n3¸Í`}.æý>ï÷y¿&ú'ú'úë^ÿþ'üµÒ5ª¸»æ­>ĺ©(‹î+ïkU쟊ªŽ×lÏ+5®Ô¸RƒþÀ¯[*¶Tl)m×Yûd퓦=˜ö`Z¢e¢e¢%-Œ_ÙÕJÕJÕÊÝóvÏÛ=O—Sö࢕ÝüýdãF“ a˜æG˜Wsû“§®ºX'¿I5“ÿ¯½;‹qûãÎu]wã¦EI›¤TÚRŠ”]Ù+‰d‹’Š•H¶¤B¤E‘P ¡’’Ò*Ú7mÒJûÞ,Ïï÷÷5_š0ÕçýÇùãÞÌœç{ÎÌsæ|fžG˜eÊ×û/X'X'XWjQjQjÁZí©í©í©1ûböÅìÓ¯;_w>#‹KSKSKÓ7¯ß¼~óš´‰´‰´‰Þó.[¿lý²~.Ó'ýÁê´—3ÝÁµ +O6¥­*O2O2O21–KŒÅœøñ8,pèçZ,W²lX$»â2Òj÷©óÅÐÖ6öAìƒØ_޵—ÚKí-Ó/Ó/Ówkukuke{Àö€íÁ Á9Qq¢âÄ`©`©`©»»;Ìóïç]æ»Ìw™"…"…"…ámëwìy9÷þÞHùŸµ2W±öù+ñ²äxÓc®Å“/³WLÑHÏïkÜ׸;íÀè vP;¨Ï×=_÷|ݦ‚M› Ùõ5W5W5W}½úõê׫ûÎ÷ï; 3Î'ß'ß'¿V°V°VÕ …€(ý»ôïÒ¿åÉ’?47ë™·:Ø[oª;gȼj¸ýðEÂYÒÁâÊÝÒ# _ø©Åm‰Û·%¤ R)cýct©u©u©½0aþÂ\?K?K?‹‘ÅÁþ‹û/î¿˜æææÐëÓëÓëS©^©^©Nû—“W²up°Ïÿè-í¢\FÚ©„”áÜ~Þ ^ÿöú·×¿a†üxu§ëNצ·^jŒ¿¾è/D¹ßüù¢58A¹Œ^U)¿R~¥üúæq‰¸ôþÌû3ïÏ\½z9”ÂGᣠnÝ+¾Q|£øFÿ?üÿðÿ£¦¶¦¶¦–h#Úˆ6ÌFÜwwÜÝq©¿Øi£6óÏúLéfÎUºìEÛ<Ÿõlw¦íã{üõcÙu×ý]÷{kzkzk0`¨t¯í^Û½6qNâœÄ9FËŒ–-cd×w÷‚Ý v/H®H®H®è ë ë C…Îä°Éa“Ã_Ö³úPõ¡êC¨Ì—ü‹O§Æß_~ùýåßúfÍêÆú+‹¿•ض‘­Oz„(²?¥izò"l½wÌë÷ÀÁ\ÚYûŠúy¾›ßÚŸukÖ­Y·æ½ò{å÷ÊYfÐcÚcÚcš,,,mÂoÂoÂÏÈâ`·9æôsß_©ifÏ/B|Ëx+?Þq× Ú oŽß¿9óàg9ôòÐËC/iÏÑG|¶ß©G ;ð–:-M[³H¼tfÖ”´õ|Èþý!û ©‘h$kÌjÌjÌüýýÅÆŠ;¸u¯€ž€ž€Þ•ëW®_¹^õgÕŸUAD/¶þ?ŠÅÏúŠõë+_¯°ÐNm‘íO”{ÿÿ`جØù¤kI>?˜x6ùëG7ÝtºétÓÚÆÚÆÚFÌ b«‰ÕÄj–!e@2 ÄÄÄ»Nuê:…2ÓºÇzõ+½VEVEVE¢JŸ!èGOTOTOÔ{7îݸ7´oâ¬ÏYg±ÜͱdòÅ¡}d­\­\­Ü܈܈ÜŒ óë[ß·¾o}FpFpF°™°™°™0ãs@%ÐÇ=Iñ-ãíüOþ~iöôêÜnÙnÙn‰9 ðã}šùiæ§™ôÎÑo½n=P¾€pw ­Ÿã!é~îû+à'à'àGi£´Q†øw· , , ,·ÖÜZsk|œ|œ|ÜàV¼ÜÜÜê/Ô_¨/«)«)«!X‚¯ŽÏzÝzÝzÝtçèÎÑóõJ*LqN¼å>Ü×íÊ|—Sâ8ùÕÞ¬ üúñÇÇÇ`†ÀP©°¬°¬°¤]u<}òôÉÓ'oÄÞˆ½;¼ùðæÃ›Ùï]`ýõžI>“|&Ù1­cZÇ4TžAŠ El4ßh¾Ñœ^Ý*ë+ë+ëQ+Àò¼íyÛó6Y³4f±0 LJŽV›V›V›bŒ†ý©«‡ÔCêÉ*Ì*Ì*ž~S‘íжsC/L‰§­¶¾ª¾ª¾*æ'ÀOû¨F#‡‰Ø‹Ø‹ôsÅŽ¿éœž¡N”¤‡/VEÜûeÛžè¤!>u!çBV!Úºr9ärÈåçŽlËÑ–£-G=,zX´Ìx™ñ2cF>C9„;„;„ç¥å¥å¥QX)¬ÖûŠð'û“ýW§­N[F¯¢ÎÛ–[¹ŒŠ›¹$O¿¹æës£bJÅ”Š)x/€AJ%R‰Ô©+§®œºò?ÑlÀÊ€•yJ9¥œR^4¶hlÑØ“Ú'µOj3²îU?®~\ýx¸a¸a¸aÓ¾¦}MûFÑgÃ.r¹k[Û¶¶mmôêS&R&R&2:§*`€!Cý‡úõŸ8Í8Í8Í‹—/^¾xy§ÏNŸ>ó“æ'ÍOâ_Í¿šÿ?w`;Âv„íˆøñâ ´æhÍÑšcggwkã­·6fµeµeµ¡ªð%þ%üKø—ôsñçÞë¯ÙqËÀ—>ƒÞÒâLq¦8cNü,;þî8½3µ—õ9I„¾ÿÞñ×?í©f÷Æ–e.t9ýw×ß]3Û(·k´k´kDËEËEË­]½võZ†î²f-b-b-ò6ûmöÛlR)„2üw¼2A>hÐþ ÝÛ—H´™ª»žu_ås®óÁþ¯Ï‡æqÍãšÇá½¾Õ‡hW‘M‘M‘Mƒ{Lj5‹šUêTêTêtÞð¼áyÃÉû'pëÞ¹3æÎ˜;ãö…Ûn_ø(þQü£øÈÊqÊqÊñ<;yvòЫÉ;éwÒï¤GÛ\E 0 trwrwrÓžº¸…¤ò”þ`Ò;éVúÛ¥éÌÝ£î¼}Z°¼·š$›#w=ßÄÉÇÙ8:¦x ]sŸÁ¾rŒžÞœ3gîŸgΣ4[FlN¦­|-O-O-f&ÀÏugÍ5wèþÚï^ûé·rN£:NN÷[¬dme/L¯JyçòÎå6«â”ΔΔøÅñ‹ãomÝÚºµ•‘HøÀ¦›lJ÷H÷H÷èíëíëí^óßo±ßb¿ÅôŽNRúÀo§]Fõ}<Üѽ۴Z¯Z¯Z/eeeÞK`à®]3ºfD»ºh5i5i5²§±%l ÛÊØÊØÊØKâ—Ä/‰ó¼âyÅójpë^ [ [ Û€#GŽÔÞ¨½Q{ƒè%z‰Þ‘4.Ô_¨¿PÙ­´[i·½:Ï.ž]<{ôÌUÀÃ@axaxax?s»²íŒU1³mµ(Gz¾°vD~‚ªÙ7,D^î?õšÙŽE*ÙbÂ2moãããñ `¦`ÅgÅgÅGo¶ïL\ᨋ~ Óï-žog¸óʬ—t+3+lVجá>ú=ã{Æ÷ŒÅúŠõ«ñ*ãUÆ«‰„5Œ5Œ5^M|5ñÕÄžq=ãz˜ô¢9:9:9:ôŽB¬tÇi»_pEŸÏ­b÷éð0yzµr=àzÀõÞE`@(… YYYüç"̧ÔO©ŸúîÏ^IT•ÕÕÕ×î‡])))ܺWÐMÐMÐí*÷Uî«ÜU9U9U9D4MD÷!¢¢¢Ú¿dÿ’ýKè{áÔ©…SGÄE 0 <¸ôàÒƒK´§+¹íÇŒýn1Û& o޲ùÒqÿv1•uÛ/3¬ÝgÜ,³ýÈÔË'å>:r䊪ì¶ÜÉ>͆/õË#š³õLKxóËœØsü›h+ï~Ïýžû=ÌL¦Ø‡ÙGÙGÙ·Vi­ÒZºßõ¾žeß+Í9¢_RbŠ­æš½64½¥W 7/7/7¯‘:zI½¤^Rú•ô+éWl?°ýÀvF"á­u[ë¶ÖÅ/ˆ_¿ óUç«ÎW?÷èz‚{‚{‚éoä-7Ø¢ŽÐ—¶•!l~»ú ½ºevfvfvâ½¾®nQÝ¢ºE´k‰ðá;Âwü¬^Õë×ë×ë555ÈÉÉ nÝ˹™s3çæ‹‡/¾x¸üyùóòç„!GÈ Ç‘¢æSó©ùfKÍ–š-¥{%¤ž¼ž¼ž‘=c ®A®A®ýœ¼•xÜ=nbžé+#/í;wmò+VM™¸£ªWˆÏÿ÷óþòï?ÿ—Ï…þò¸˜è×Ì­W ÐVÞÐÚÐÚÐ3€yôr÷r÷r/š¾hú¢éô>ä²Ö+>Ùg•l¥ùÛÈ‹~?­¶{ažò1Ù¿¦VЫ€C“C“CÓÈ»àÛבî’î’î¾-x[ð¶ÀZÚZÚZš‘Hx­æZ͵šÑÑÑíêíêíê?òXN$œH8‘@Û+6 nQÞ)óÿ¸žûêâ^zí¬¿·Ü5»H[½Éé“Ó'§÷=ê{Ô÷ï¥@ÏÈ‘7"i×M¦M¦M¦ÌÓÏO‰Ÿ?%Þ­¸[q·b¾è|Ñù¢Œ¬~O»žv=íZbXbXbH5¦S‡Í€‰â„øáy‡çžGïèrRsRsRGêŒE 0 ¹¹¹Óž¢Tø®6¿ež-¾Õò•¦ŸûÆŸµ0Z›w îîjì.3{ÞK&º“ñsÿI©‰´•WˆPˆPˆÀÌ`6=w{îöÜ]™°2ae½ù3O ”±7”6G©zŽŒè÷åfŸs/~}ãæÄÉ'Oœ$jˆ¢ó„ÂNa§°ç½É{“÷Æá‰Ã‡'ŒlŠ-Ûºlë²­³f?Ìn±j±j±ú}.7,7,7¤×‡9ËÏ<wAÄûÖö·ý’Swq¨èÍä ­áÏ+žW<ñêz¤t¥t¥t¿\?Ì5wÖÜapS•æÍš?x3ÂŒ0;Âw„ïÝÛeÍ:›uväÍXÀÀF·F·F7íÉi¾ß¼”æÙR™òr¦”ø¿÷]ûò·¿ÿçW¶b—ã–Ì©=wëÁ„¹nÍz™h«h^€Wú³~~cÁÁÆÁÆ™ ÀœÈ7È7È7ö[ì·ØoñõÍ ÏyVÖŸúÄ“U4:‡WèÛôêùõí{Çn˜#äóõcôõõŬø:ª"U‘ªXìPìPìpªçTÏ©F6ÅÔÄÕÄÕÄCeBeBew6îlÜÉxuÌuÌuÌiŸkV¼^¥Å^„»ßpWà²ÓF¡YôÆ®Y»Y»Y¯øÒǸqãhW·=o{Þ–_ k{Öö¬íÙÓî§ÝO»×è¯Ñ_£ÏÈê÷Hé‘Ò#¥Y9Y9Y9¤.R©‹é8„!BlÛmÛmÛéÅ›o¼Y0’æ-`€a@FQFQF±Ÿ¸Ï?=í S|›þ¡ßÇÔÿÜ¥x®Æù´‡#c“ˆm3·)o?‚ÆÌ`j-D ÑâcìcìcÝ>Ý>]¦8È\"—Èuˆqˆqˆ¡×óŒÚŒÚŒò 0À0 &$&$&D{BRå O—e† ”¹o.8Fþç*é×Y’jGÆö;…ÿŠ'`€á+‹/‹/‹oàws]-ÇFlN_¾xúÏ }Ûó–,rq£ZÌš= ß¤.°Z`µÀªÎ¶Î¶Îã>Än7‰›U“ª&UMºt%èJ€‰€‰€Éà6ÅD»D»D»ü¦ùMó›V³¿fÍ~âñ‰øDû´ëƒ×¯¦}©{‡"/\D”;¸vùò–çgéNûŠöí+0åà3¥¥¥–/W ŽŽŽ#û¨»½»½»½ÛÛÛvXï°ÞaÍH$l2ÅdŠÉ”d±d±d±ž}=ûzöý´k!Zˆg g gº×‹J;–v,íØpAÀÀôaéÃÒ‡û €Çø—¦e2ÊÊuû$ñ/û¦´ùâœ' #äÀ7¦éðy!îH1¤RŒ£££ÏÀ·*vZèTÌØòjœï~¥ÙÝ/Û4~ùŽv^Û¥¾äQú……¥‹Û”ÇòX¼ŸÁÚÁÚÁ¸tíÕF´m5k>Ö|ôgñgñg777ܦ___Ûå[—o]¾õÞå½Ë{—ZR-©–DïïçßòKH5D”ËH+|l}ò^uÚÚÞ¼x#š:š:š:hW ¶¶£î —½¾½¾½¾i'ÓN¦Ümÿµý׉„õSôSôS^ì{±ïž®ù]ó»æÿЃ¡‚rJà”À)z=Lù#å”?†ïx![tnѹ~6}ÎøíMiež ”/û&÷«½Š¯ð€îÂè|¯\t¯Éjºh²!¿õUU–€ÒÿaŠãR ¸–žH[ùÉ;&3`ø*å(å(åXY½²zeõ·nUHìùmJ„ã!“Ѱ§Ó=.(þA KÙ£¹ràAoƒTtôÂa"gäRÌ>l½&,6Å€˜l÷­=±T¶T¶TnºÔt©éÆ”y486868+++*r)r)r nSl21™˜Lô3Çï]ââ[Æ[¥OÞè­´fKaKaK!6›ˆM˜Ï£Ùý÷OÜ?A»Z¨ ª ª B}H[H[H[Þä¼Éy“cieieiÅH$¬+§+§+cccܞܞܞücŽâLì™Ø3±ôz•t"éDÒ‰á8:€†Ãã†Ç ÷sǯE׌^>gÎxú›¥c7*ä_ Ö¬0Ýðù_qyˆ}½Ãö7#ëÞWl\±1’;’;’»õÏÖ?[ÿü~=w[é¶Òm%½ž$´'´'´¯±@ 0 ¸ººÒžx”Œ/n}ÊÍ<['s÷öœ¼üoçRY7±ý"›gwçúz?GòŒ~8ë¤)¹D?ÿ£¯µ–m[ýï®™áÒÖ‚Wû^*ös‰}}ÌL€‘§:¯:¯:ïLÑ™¢3EÌ÷ ú ú ú………´*µ*µ*aŒF†–––ÂG÷Ý{toù½å÷–ßÈ|à—V{¾ê"Û¡me÷Øn¼I[ís7ÎÝ8ws`tj­j­j­¢]!\å»Êw•õ8ê/Ô_¨¿])ºRtÅe‹Ë—-Œ|>Z¨°Pa¡B˜K˜K˜KÓoM¿5ý6´½½˜q1ãb½g_¿6~íp©<`€a ¼/¼/¼¯Ÿß¡V;þðŒ‰~/ûÐïcê%Ú~μ¾–ºëžŒ¼µË¥Ty+§Ì ?ÅÂúl—±Ïã•ø÷¢vl:Üëyµ™íÎÁsÏë?èç>çÝλwÃÌ J•<*yäåïåïå?ç9ÌùãûŽ«DV‰¬¹E¾E¾E®±¯±¯±GýGö«íWÛ¯FS¢)Ñ”9ï缟óžv†ÈηI»J ²â/}žóY‘ØÐÏ]™Oñâ;…™ 0:=÷dÜ“q´+„ª¼ª¼ª<Ô‡ÔÔÔe,e,e,nFnFnF¬ïYß³¾Üg(Å Å ÅŒàÐàÐàІg Ïž1ÞÃKj—Ô.©Ñ{ÆØ Ø ØappÀÃ@¾q¾q¾1íÉFÌÔHÂf³m |y1眤Y½¹&qHÛXªy2Ïo?·ÒG,çyd÷sš÷õõÇÌ€—™/3_fú_÷¿îýXƱŒc;ïì¼³óŽ®–®–®–¶³¶³¶ó†7Þlx³ÇhÑ£“b'ÅNŠggg¦å¤å¤å †@KÍ^Í^;Ÿ‹?gx7¼(Ddû=Zî÷²*ÿÐÖ¼ÕªÕªÕ s`´ÑZ£µFkÍ—«NNN"šˆ&¢QŸ!vŽ8Gœ{¯þ^ý½úe¡ËB—…øäøäøä Ïæ™Í3›Çÿœÿ9ÿsµbµbµbD'ÑIt~k§¼ƒ¼ƒ¼ƒè=Kt]t]t30À0ÐÒÒB{š™¶G®Husn üQ;™Øœå6’¾:ok×TÙi¬{9m§Þ˜j#§¸q†Ùª™úùJÕMÑÌy3ÜV9¬¡­ü‡Ž:03`h‘.“.“.Ó®?Ùáq˜ÆœkfI»Ýgžó¸Í9¤þŽ-|š _êä¹)÷9íD¬%ÕDX6ºíwS1½ö)Ñôó-`¾<.æ9 ñÜ]žM´•ψȈȈÀÌ=:Nwœî8M»*¸xäâ‘‹GPŸ¤ž¨'êk$j$j$|}}}}}EUDUDU Ož.<]Ø{¦÷Lï™U:U:U:Ä=âqo ñéóéóé£÷ÈOyŸò>åeÎ"úˆ>¢³”³”³”ö43_Ý÷Tr3›þë›;̶õóo;;`Wº#½S;ù>ù>ù>&&|VZZú\ü¹øsq¯³^g½Îš.0]`º`•Ð*¡UB e e ebÙbÙbÙœœœ*–*–*–L6˜l0±á±á±á <x,ðXúŠôé+Hµ¤ZR-ª 0:Õ × × Ó®?…Nj»Íg¢Ë&§_gIªåÍQ6_:nà[o²yvw®ï¡ýïÌpDŠü§~¿“ÒÏ}þ,®Z\µÀÌ=bçÅ΋G»*(++C}~®ú¬ú¬ú¬›Y7³nfÉr„1¸H˜£Ž£Ž£ÎÝÊÝÊݪ\®\®\Žà%x ºQ®¿º¿º¿:½G‹ÔˆÔˆÔ`¶Z!6ŽÝA>A>A&°ºruåêÊÄÂÄÂÄBŒÀÈüOð?Áý܉Vñw—¸;{˜a,lÇåúŸ»¬iïæuªÿòê>´D®m^| ‰™àù%þ{Ò”hû&^"^"^‚™ 0t}ìúØõ‘v=púÜés§Ï¡>ÃE‹F‹F‹ÆC£‡F–†/ _ÎÈ^œãbÇÅŽ‹ó§çOÏŸN¥ˆRDoݾuûÖmznnn u@ 0lôuõuõuÑ;µÌŸx½üU;‚Û!h9„Ó%&/b+doadq`[b[b[’ã‘ã‘ãA¶&[“­1‡™_Ýõºëuר±?bÏ2LÛÛÛ÷>í}Úû#0ܹv9ìr˜öŒ¯Tê‘EaŠßþŽQ_©]ô¹W¼ÜJbš¬ qçWúÛ¥épj WKgÎøsËú˜Ë„;»Ÿ_üÀ(ðRü¥øKqÚ•@‰Q‰Q‰ê3|µ³·³·³G%D%D%èøêøêø2²ghhx&åLÊ™zsoǽ÷vüÜ£F 0ÌXKZKZKÒžT¤O[ôäD|Ëx« sbê­~î1Cu†ê UFòòò™6™6™6}Í}Í}͘ÏÌ ínÛݶ»Ç{tìÑ·Žé´å3BØ2Ÿ: $8w»¼ß!q3‹{q÷e¼œ ÞšÎ}´_êÐæ™îÛg%(ÞhÅ[5¸9áááJ­¥ÖRqa€aÉTÃTÃTƒö,¯üî*_Â4fX-sÚ‰XKªýû¤ÀÊÈK{à!.3ÿøs;ÕQ"GÑ0ÀèdxÙð²áeÚ•Õ˜jL5F}F’Îë×;¯ÇÇÇoÕܪ¹Uó{ül#dmÈÚµ?ë 3ïBÞ…¼ ¡=°uólåÿ¤Ê ’¾!.#-‘bƒz?ßõKæHæHæèÊíÊíÊMhJhJh2T4T4Tdd°Ws¯æ^ÍTžTžTž^þ^þ^~Ìð¤h#Úä?È?ðñš-±Phêm¯|:ĺIùŸÿøÖ ÷[[ëß“ÎÉ>ÕñuVVcŸÉ)=yß@ú)Wþ®üÝw»ßí~·C 0¼èŸÖ?­šöü®òܧ.éÑO¾HòC¿©ÿ¹ïïÜ)çç>x9ðG¶±Tó(dæ˜WPICS0ÀhÓû[ïo½¿Ñ®œ6;mvÚŒúŒÝåÝåÝåI÷’î%ÝÛykç­·†*X°2`å?"ÀÃ’J˜J˜JíéDÖÁÖÏg2BÜÁµŠ×\/Ü{AïTMé¢tQºhÇ¢§µ§µ§5åZʵ”k{Ì÷˜ï1gdA°e;Ëv–—–/-_ZvÿÞý{÷ï˜íC«emËÚ–µ6oؼaó@Fdåº#‹„D¬{’¥å~ÿÞqï@ÚýÝIRzò«Çñp ¤ÿ> > > ‰ $Œ>óÛüÏæ6÷s`•Æë6¯Ì~îjyn€[ó£Þÿô*ý:KRí7\kçÜÉy·3sÌ7Nå¥I€F›”ܔܔ\Ú5@~|~|~<ê3:õ÷÷§+¦+¦+𯛯›Æ3²ë8>p|àøÙÀÃRêƒÔ©hO$“ïsHN¹3ÿŠß¥TQºßÐÎ 8Ÿþp*UJo®)mUï?¼ÿðþÃN_r_r_ræ˜Ì1™c2>dÌÈâ`£çFÏž±®±®±®w;îvÜÅüœlÛlÛlÛÔ|U»-—P„dæùÌúÒk‰ÅN”™*»nEÅ´ÿs\:Ót¦éLkmmÅL`f†Ú†Ú†ÚýÀn>ë;~îšY©Ú£)Z€‘_ËÈ[»\Jeæ˜gƒbÂÂnÀ£Íž·{ÞîyÛÏBt(:Ôgt"O$O$Ol¼Ðx¡ñB®i®i®ihxhxhø^¿½~{ýf=œõpÖÃïñÞé¼Óy§óGö0ÀðTLÅÊ~Ê~Ê~´§ñóÆQÇrë~ÃÅèÂ,+=CèžÉºd]².CË… ä ä 9ü9ü9ü¶¶¶ŒDÂZÙZÙZÙOÖ?Yÿd}Û„¶ mð‚øºG]|tñëU•«Ðòâcòê–l3‡¾ôZ“ ;á—¿~Œ¬¬¬U™U™U™˜ÌéÝ!»CvýÜØüÊ›ø½Ìv èÏîÀALg{þÑ·Ìs6Î*”þ 0ÀhC{ö?Ry¤òH%*3òPC¨!ÔŽqã:Æ•=){RöäyòóäçÉž2ž2ž2úÝúÝúÝü\ü\ü\C{?ऀ†±¼š¼š¼z'•¹/ÌŠTG¸ûõVyÎÎ8{z5Œ7‰7‰7ùcGñ§øSü º º ºmmmY@h¤h¤h¤Ü/¹_r¿¤™§™§™¯ŽÏž<xþõêéW{‡ŠmŽ¡/më •“¢ppaý.6°¯uq@q@qf³9owÞî|?°›û†Ç©Ì°~þ²W¼9ÊæKÇ (<®ô·KÓáú]TRš©/Ͳ’%cò8À£Mý«úWõ¯ö›í7Ûo&—-—-—•—•—•‡Ê ˆć^¶^¶^¶ZßZßZßtçtçtç Ä Ä ÄCÛm;´mÎÆ9çldù¸ ¸ ¸ Vå­Ê[õæ`€aï°Õa«ÃV´'˜)îBîbNómýÔRž"èí§°+Ý·Y9}i?›PÚdm²6™ ‚òcÆ‘@  ¼;õîÔ»Sg}Îúœõady1Ïzžõ<ë;Üw¸ïpløØð±a´½.üuýuýuéÕ‡ã÷ Ö_-üâ¼e¼FFôKÛ,¸ºRìð×çI g g 'ÞE˜GXwXwX?— –¿u|gP3¬¢¥š-N¹ßø²os÷öœ¼üõ5Kx Ù¬Þš„Žk¾³ßú”ü~¾Vû`03~r9œÐ<£yFóŒüòüòüò‡;vž49irÒDKAKAKå‡Ó¢jQµ¨.“\&¹LztäÑ‘GG Ô Ô Ôš › › É¥äRréÏ­`€a¯#²#²#’Þ©HÈO»Ô(qo? SÚ~âè.zu«ÿ«þ¯ú¿~òÐn%¶[+r*r*r<-=-=-¹s/æ^<¸E‰T¥T¥Te k k kyy9A%¨uä½"ÂòÃòÃòéÕa¶ÔBá©íN¼”?;R£ß/Ûý±½¤–}nTß­¾[{K0…·o ÞО¯%¦ì=wr"S¬¥YþIÿ‡ï•ñKã¿ì¡@”†×ÚtI»ÝgžËço»y\¢Ít¡«+ŸÁ|ÑåJŸÿ†ÓNÄZRíßpmò+VMæ €ç]½$ò¬ŸË?:(tP3`ˆýCüCüÓ¹¸sqçâŠÂŠÂŠÂI/’^$]™xe╉F÷îÝ   ÿ‘±î\‰¹s%,Ø,Ø,Øn®»¹îæºôÖôÖôÖÚºÚºÚº^å^å^e¢ž¨'ꙿÀ€Fˆtátátaº¡×úÝRNBßïøûÒJÈ“ W«Go½yô†I‡9‹È"²>äÈÿïó‡Ï>ÌÜ=s÷Ì݃[ÐÌ7sÜÌqׯ%^KüðàÈL"“Æw‡Mß‘¾#}½ã•YÍÂÃåp&×Dáühˆ~¿l펵•‘¤W.a.a.áNçNçNg¼—ü\¢¢¢´çëé4ÏèþÁD—JþÜ«€%6ÐåïÜefÏ{)'kÿÆ·êóaŸÇ+#@0O,Ïãxÿ†7mσ%‚%‚%03†ŠŠ¯Š¯ŠïŒuùIü$~’Áƒ'O<3=3=3ãÄ-ˆ[P>©|Rù¤Ž9s:æPc¨1Ô˜‘TgÀ#ŠÉ‹äE¢ûP6³œóB£9ú•k/ï;^}¬ý¬ý¬ý†ÙS *A­ó¨ó¨óÔ Ô Ô•ÖÖÖÜbhjÙÔ²©ež’ž’ž’÷*îUÜ#6ˆ Ì_†ßߺ GÉvM÷V‡°Ü[ WG[ôûŸX!VP†‡^•67nnÜÜH<#žÏð^ ðÓwòTyª<ÝK%‹ìL·g¶X:Ä2ËÓS`ŒúJí¢)»„þÍÁ!7åþç;þŠªì¶Ü9½ï«Þÿ|MQ4^F†yàYÛ·F™7ÑÖ¼`lÁØ‚±˜™CEyòå5Cî.ëYÖ³¬Ç©Ú©Ú©:B2B2B27;7;7»ñmãÛÆ·d1²YltÖ0ÀÈ’J¤©»Æï¿k<Ý0Ìê@í™ÑýÊ.°É»6‘^M4'hNМ@¶ [-FÆDøôǧ?>ýqgóÍw6Ï+œW8¯‘…ÔY³:guÞ¼3xg@õ¦zS½™çH©AÔ j:—:—:mÏy.̬dW¶÷xÛ+_3š£ß/Û}§"l$«èuÐÊ •A+ñV ðsmø°áÆ´gêyBžbø™s½M/Êýò¿¾(ô¿ë4YÅÕ ˜'æ85]KxmÍ» º º 0'¡mvÛì¶Ù¯ü_ù¿ò¿$wIî’ÜöÛl? sNæœÌ¹|ªRŒUŒUŒ5Q1Q1Q¹Ö{­÷ZoºwºwºwOdOdO$* £‡ó"çE΋¾~Þ”-”-”-PSS£JŒC 0bugvgvg.ؼ`ó‚ÍtïP²°@{‘ŠÖµ“/?ޤÐw¾­ŸjÊS¡°5“Œ*é;o o oL³B³B³Âèœ!mmmO.<¹ðäÂj‰Õ«%Ù°°I²I²IÊnÍnÍn%/'/'/ÿÞý¯[R·¤n ½þì òœ½Aï×Ûùóõ?òóÓVOC_C_CŸÈ%r‰\¼—üx GŽ6¥=Gs™ˆm•éû¹+íÙÚ»yê?÷‡C[Àwæe±ËqK¾þ¯³N+…ú°ô°~d{þo˜-`šsZ“>;H²šÞ>=iàë^•S*§TNݵ¼ky×òÓÅO?]ÄŒîªx«x«xŠŠŠY˜Ìù„ó çêÉõäz2F 0À×sµçjÏÕ5Äb ñõ–òÇ:ƒT†{ô«Øq:8L”­h…ßœî%D~—ý]ö÷–ؖؖXÌ/u$t$t$ľˆ}ûbcãÆÆŒlUâ8ÄqˆãõÛ×o_¿í{Ú÷´ïéÐöÖ@Ä@Ä@„öyÕÖów#ÜHkgÿfŠüiz#ëëë†×ÀÏ"Y!Y!YA{ŽVÚ{qßSÉŸö{Ùƒ^AÏtÙçñÊüçóÅçË;Ï¥º³=6SYpmÓËò7o z%ê½íœU›#w=ß¿7dù|Ÿ`•ôë,Iµ?ù„JÀÕô)y¡ FÖ½2„ !CÙÙÙÖ‹Ô‹Ô‹`ö2¿B×B×B×µ‰k×&2ÓNöeMañâ÷—ãPæTtæ4™§ÐÀ¹œÏUt-{ÕP…ÁÆ;w﬌¨Œ¨ŒÀÀ×!(‡(‡(‡¬ÇX±óõ”‚+ô¶žVþç²÷ówÃ%ôU9飸ZøÉ«}3¿~tzWõ®ê]íñéñéñÁ¬ˆnÞnÞnÞ—w_Þ}ywû®í»¶ïbdÃbïÞ=¼)&)&)&=å=å=åƒëUAUAUÝm[Ç×[åî~C»ãL ël%zõ¤Œ§Œ§ŒÇkàÇ»ç|Ïùž3íÙY¸iãÌý¿1Ã'gàèø†‹Ü†O³áK•Ï9Þvó83\üYñ¾ëÛP6Ú~Š™‹™‹™Ï˜7cÞŒyƒ[÷ŠH‰H‰H]W¹®r]¥Ú²Ú²Ú’(%J‰RÌ꟫övííÚÛúõúõúõß:¦ ¼Ú±<{6ïu7«è`qÔx鵌¬ÀM‹"OJÝ^ß}&OäÔã%«¹¯ó×mùñâk¶j¶j¶ÂÈ-À£o#éð½Ã÷ä#å¬zǵ)ï¼?‡éB_ƒkÏeÄÃw :lȱ\ÙteÓ•MD3ÑL4c0¢W¦W¦W&uuêêÔÕ{½÷zïõf$ÞV¾­|[yBTBTBTW\W\WÜ@ú ]£]£]Cûh›Ã.®™ÕŒ@÷›[Ç‚À×±¬cYÇ2zë(寫º †ÌO³tìFEÚßÿû{ß¹3Žˆr U­y¼#Z©Ú£)Z€¢ßÏ-_­jÁÊý\Å0Ö0Ö $‚T[R[R[PPP/9Cr†äŒÁ­{y¸x¸x¸¼y=òzTi_i_iOX„æù÷F•¡ÊPe®ÿrý—ë¿ |¼ªíü$pxÿ»‡éRëœ6œUœõ½×䎲yg^íÙzORtÞÙÍJ|Jïm888?QDEqø 0À(Uv¼ìxÙqÉI’“$t¿«A«’ ‚ç,8s9\ÿgmÐ(q¸ë?Î>°þÒÞqº —édÓɦYYYñï§ÚGí£fÞͼ›y×â„Å ‹ŒDÂ6oؼaó³—Ï^>{Ù±©cSǦ/Ÿ«rUåªÊUôþ­CUÞ/ ÷èòWÁ‘RRWh«Ê·“o'ßNb ±…Ø‚ÙðãÙ·Ú·Ú·öóeÍ^}ÏÃ:Ì£~誰^MN蜫q>í¡ƒr¤wà [zùsÛ9zgÚÃóé­*I]¤.R½ùhðÑà£ÁmòmòmòÜWs_Í}5È…o K K̹šs5çjJÕJÕJÕ¨‰ÔDj"æüP©Í­Í­ÍU>«|Vùì@d3ébèöÖoÓäK™a}n»ù5§¼è:#]áüôýùõçןoékékéÃè`€QâKñ¥øúçúçúç~óeÍT7 ˜.WØq":øíç»g ñÙŽ¹*Ü[%ªf`fyµ+wšþÀûv>þ|üùøÞžÞžÞŒòG>A>A>‘ó"çEÎ ;1;1;1F"áUn«ÜV¹=vyìòØå°îaÝú´³å“§è&„¸Œ·¢*ª\´ÎáÉáÉáÁÜøñêsêsêsè­”æ)z~ŒÙ5\nÝÂíü¿ô”i²r³æëÐÖ3D>D>Dþ[ǨɧɧÉ'<%<%>Ù!ý+à¡m—Ì;¸Eðmµ3 3 3 1U~–pÉpÉpIzë"¥«¢Ö èí§ Xž¾…w¥Ò+Í’~n8¢µJk•ÑJ´­?r4»îvÝíº›p"áD‰mg·Ýv–‘ÏJ{ö6ìmH=–z,õX¯z¯z¯úèy]\Z}iõ¥Õô*3ýƒ”ô”±Ö¥É¿È#õ6.‡îÆ6Ëh°®eÇ’E¯a’a’a’x=À7£Ì£Ì£ÌË Í Í ½(|Qø¢ð¢G‹-z4TAï¼mó¶ÍÛæZíZíZîšîšîÚSÔSÔS„Ê:%D QR•[•[E÷ÕŽÛó*òmkzàÑk©´Õv¸êpÕá*&&ÀOóxH<\ɹ’s%'í™zÊÔSf]™ÿÏõšWd„¾_¶¢:¡–t¯qRw¹îrÝefÞž×=¯{^§(¦(¦(î~½ûõî׌|ªÚµ=j{Ô˲—e/˺eºeºeFÞ âö²ÛËn/£WùÐÕ½<Ç®e'+¨ŽÔè÷ËÖVÿ5¿¼ØÌŠbœèÕ$î÷¸ßã~Ç[)Àh€¾£–––¤ñIã“ÆÇîŒÝ»óYϳžg=/³^f½Ìª9Qs¢æª_WVVÖÏl6O㓾4Ì#çP0èç.ƒRüRüR˜“?×'³OfŸÌè<üÏ^8ŸâŸ“öѯÔó÷nNôjy'òNäfë¾Û}·ûn¿xð:À<Ù<Ù<™‘Hx“ú&õMê±Ý±Ý±Ý……ÃøÊ.)¥ü•òݯS·Œá3ptÎçQ¨ ÑïVòRÙ*p‹ç/83U‡^}Š—/)^‚÷R€‘ 00µØìØìØlÚm ý'Þ[Å–2ÏV‹£hžÂËõl§—ˆÏNU—ŸÈu™¯µŽ-xʺÉêw%&rx/¬Üõ›À]«å‰ e0sü¹eQ~ĵ“¶ò]î]î]?Wê–Ô-©[è<3”WÚè‘T¹f¥KÎèWÆöÈÞË-ôêcWbWbW2Ç<Ÿ<Ÿ±úÄ“”')ORÚ”Ú”Ú”˜¿õê7ÔÓý…«üZïx&9¦ä{(ôŒ¶è÷?1°R6·ߌ'²úS®Ó«UÇñŽãÇñ^ 0R!¦æ*î*î*N»aq¨ãù™­Ì°½rÔ45Vî„×|G®Øo·mL:Ošµ’™àUu2¢íy™z™z™:f&3¸U}«úV5½õ†à’e6›yçÇùÿ“š4z¢_iîÃ/jѫɪ€U«({({({FÆ œ¡œ¡œ)¸Qp£àÆñšã5Çk‰„544"ÖF¬XÛ¼¶ymóZæ9Rj5Ž· lAÙ‚2Úž (Ï^ÆaqÌ8{·‚ÄhŽ~¿lmLÒÍä éõÎàÁ;ƒñ. 0R!¦¶FzôiÚ ûso›ä?üä• &)²H„/JšúŸß—H5.¹Ï®+yê±÷®é·'JLYãÒ$Ü!¡¢NžšJo †Ù6ŒvHßh˜=¶ŸÏ—?_þ|9f&ó8|>ø|0½5Ïo I "”Û®nO84b£_•€«é â|;7ÚÿM¯2Se¦ÊLí*ï*ï*Ùóz‘z‘zñÝÜwsßÍ=û×Ù¿ÎþÅH$¬¬ ¬ ¬pçòËw.þ$üIøgWÀ¡€C‡èõÓzý+Ùl„¾ýÜzæPôdé“ôêŽwQ€‘005žE<‹xõ—ª*òÿÜÍ”-õžV¢¿ìÕ -«£3Þ|þ¿ô6YÔ“M. ô0l>>æé'´ýô)ó)ó)ÃÌüÞB±}bûÄQ:9tB§Â¥Â¥ÂÅ£Á£Á£aêÑ©G§òòÑÒÒÒžžžuëÖ=üÞÝo°j°j°¢ûKÖ#7gÍ>… ÷ëíæiîÚ³žÓ«a×ß]wýý³¦g‹g‹g‹g,,,DZŽcÇð~À8ÀÀÔúùËaav¦¸û¯tβ…ÜäϽú| èü+œO V|ûEÙ‹™9>”¢'·¶þÇXޱcÁÌü~ÈFd#r?ß¾}#úF4ê_weæ•™Wf~=À³4Zlc8ÿ¦_|ªÁð~åY/Þ0ÿ?4ž¤9IsR§W§W§æÆ¤éDú‡ .|¸pÍéšÓ5'¡¡¡€ÁEÂ3Óf¦ÍLóYî³Ügù‡ž=zˆ\"—ȪÎîâÞŽ‹›öyU{ Ûù"ÜP»¯à¾¢”ÄŽEêS h+yZî´Üi¹Ÿ5ç‡OŸþe´„´„´„ð2```jýlYÞR=ÊÕÈ Û(¼}³6±?üÜ+ýYW¶‹q <Êeþ_ÛY¼'ïBÛO“D“D“DÌÌï'gEΊœ´•ÏÍÍE}` "µ"µ"µ¾Ú±-âæ,oèä1\Bßy¿x.‰öhÑ\°îö×Î<Ì<Ì<Œ,C–!Ë`> … ”:::97rnäH9I9I9 .æ¾Ã}‡ûŽg´g´gtEwEwE7±ØNlÿÖN½kz×ô®‰Þ³ØNÈ8)?áîÀÛÉ/¼eºéÕóÓËO/?½üñSO}ºútõÿÀBï…Þ ½Ç‹€€€©õsÿ¶ËL›ýs·Nì­ß¦É—~Ù+³ÚèbéÐ?‚Aû5g±f€í©Yþ¤­ÿV¿­~[ý03¿[[[ÚÊ÷mìÛØ·õ€+¾Z|µø*Û}¶ûl÷ÿ_\'c«,¦ ~B+xÓ…¾\žç¢gf­»ab?èñNÈ;!ý¡òñõÇ×_‡”†”†”Λ6oÚ¼iŒÜQølÕÙª³UïÂß…¿ §†PC¨ÿg¤ôšõšõšigCþ¹M"ºƒk—M;8ƒ¶ªÇ¥K—þ‘³«ueëÊÖ•´=¹v-ìZ^}Œ@ L­Ÿøáò”i‹òwçÿŠ_/õe¯>G„}Î’•Ì›”õVáÚúo¡n¡n¡bf~”;”;”;ýüêz–É,“Y¨ NŸRŸRŸ’­Ÿ­Ÿ­ß@":v¾e‚»$ït={Tù’÷Âxê }'ü•þ§¼¨cÑL¾ªR+Î ¤Ï²²²åJåJåJñï­ylóØæ±÷îÜÐ0Õ0Õ0e$vNrNrN*œ^8½púçµÐçg©=^{¼ö8½åÀ‘sUa¢ÜÁµ6ÁéårôjÛq«ãVÇ­3—"Ã"Ã"Ãhûð!øCð‡`¼Ö˜ív€øÕ3¦ªþÜM‡Ç¹‘ ×ÿs™ÁÍ1Ò9„mE×9ĨL} è°7»å¯ÒÖ߸͸͸ 3ó{((( ­y²b²b²"êŒË~ý ûx¦x¦xæÀ#º©g$Ú¯ÍÞµ{ÇñEslή¹¯5Tq¯R™GAô8é&«;^÷j5…Ö9k|x{Ïí=·÷P÷R÷R÷b|–Ö¦Ö¦Ö¦'¼OxŸðjÕ:ªu”‘HØv›í6Ûm¬¬¬ýüö×þì ‘r„¸Œ·KÅÍÇ &ÒVøîow»ûÛ™9+篜¿rþÞmb§ÆN%^¯‰×xe0005Ú- ¾½¢üìḚiòe¯ô¯z‹‰}C,­enÛ%TÂÌðQ¡Te¹}ýlɩ۪۪cf~ΉΉÎýlÃõì9Øsõ€¡B­ VP+¢ô£ô£ôÙ~cûí·Áu“µÙÇpñŽ™[¨q[(@»Ê(Dt‘ƒ¥“¸›ñ³câÅ»î8þ!&³Ýôè2áuëÕöxð?]¸gõcŽ3Ó7obè2ÂIg“Î&µŸk?×~£Éœ:¼:¼:¼bׯ®]»Qm£ÚF5–!b'—é!oÆ ë³±Qˤ· ߨ²ùe ìfÚ Ïòšå5Ë‹ d‚ügÈ/¿tüBûìž\ž\ž\x0005ο9ÿæü›vkÀis»¢(óÀbgT—q}Я‡5r>)Xñ'‰Ûr¬dæØ¼çÙ™ßi+ï½Ç{÷ÌÌ¡õùx´ÕÖ/Ñ/Ñ/A}à{{©õRë¥Ö÷î ÜY˜’Ÿ‚Ÿ‚ŸBnn.Æk8êêìêìê|©þRý¥ºásÃç†Ï¿u(ßÝ*ÉçÍ<ëæ\Ãk+rMig=íqÕ”Ö”Ö”~¿ùÓÓÓAû¼þþþx½000µZ+´VhÑn SÉž®Àÿs·K¶nõR=6ðm GŸüÅ õ‹B÷Ìš®Áü›G;{oM˜ý¶ŸÑw¢ïDßÁÌZïÂß…¿ §­ö ëÖ/¬Qø‘j“j“j“®½¾öúÚëYKg-µôÇǽÖ=Ö=Ö=9†9†9†ÔÓÔÓÔÓ—‘§wRï¤ÞI)S>¦|ÜÓ¹§sOç×gŞá%’²€‡¶ÕŸve…;íqݼróÊÍ+ßoô׳®g]ßÏ%¾ ]B—À—<†``jÇçŸw|íÖÀaÏ‹ejò¦É?“úÙb‘j\rŸ;\7Àõ˜È‚]ÓoO”˜²žíôcIAóÜSþ½õ~QAöbfÞ<Ò–søu¦íÑ•L*™T2 3sh}öýÙ÷´ÕîRïRï·à'#Ç‘ãÈqIs“æ&Í=µàÔ‚S Ôg¨ÏPŸÁHÄ+Z)Z)Zi&c&c&ó€óçÎÚ µj' Ú£Y_f_f_&G3G3Gs?_õÈ~¢ ‚xˆoû¢Ÿ ×ÏWZ—X/±^ò]¾†ØeÞeÞeÞϥݕÏ*ŸUÆ«`¨ ¦öôüÓóOÏÓnÞó=)®Á ›&G8’äX…ç¨pžÈvçŒ7²®Sn~†™yóHâÕ¢¦©Ý´ýïpîpîpÆÌ2Û‰íÄvÚ:ë.Ñ]¢»å€Ñ£Õ¢Õ¢Õ‚v]$Q®ÁÍ=†VÈ#/þÜró”±:ÑÉ”dJ2ÚQ~Ñþ¢ýE;ís½Óy§óN¯€¡‚˜ZUkUkU+íšÚöýüi̳iò¹W:Ÿ'ç ÉJf€Uï93}íÑ}°û`÷ÁnhGÙ À À €ö¹¨—©—©—ñ**€€©QX(,º¿¦uì̯TœÀl(ô]Ú¸—97`&uUú mµäääI ¤RfæPñŒòŒòŒ¢­v{F{F{ê£GàéÀÓ§i×Eû>>‘ú•9`žá1ì r 7Í–fÎx[°O¬X#mŸ_¬z±êŪ¡ßžk=×z®Ñ>‹3§3§3'æ?ÀÐB ÃÀv¾í|Ûùh7 ̳Ÿ–&Œ ¯1O»Òñˆ»â×7°æÌ9˜“a™a™aÙ·¸oqßbÌÒo–Kä¹Ü!Ü!Ü!_ÖvžûVìCy`´9dsÈæ íÊó(K*·ÜNæ €ÿ½P³s†ðfó×ÏöJ÷YK%eË&éJžz,Âýùš@ÌÉh³¼èé`Úãòã=Æ{Èv“ï&ßM¾Kû,±±±˜ÿC 0 q‰q‰q‰´›Ëçöžq‘íPµŽùÏǰ Ê®´]i»Ò^‘_‘_‘{¶ôléÙ‚yûuz>ô|è¡­d¤H¤H¤ê£æ{Í÷šïiWGŠ9y æLwM`ÑÛ¶Fré@®ÄÌ1°JúL¹TÚ~š››ÕøšÔ™Ô™ÔÑ> ÅâNqÇüZ€`è é é ¡·â`’;[á8â[ÆÛ}â÷ $Y†ˆþQý£úG_(¿P~¡Ü%Ö%Ö%†™ü%Ÿå>Ë}–ÓÖ­•¥•¥•õ€Ñ†?–?–?¶Ÿ¸ti™â f €çÖnØÂúõ@÷heÚ ¹»Ì{žó«B?ëRmYmYmYÆG¶Ï®Ï®ÏŽöñmîÙܳ¹‡™ð= €ac¿÷~ïýÞ´†¾¾ûÅÕß2ÞÊ ¬89m/m…oêÝÔ»©gggÇH$¼®j]Õºª¹¹¹öˆöˆöˆÑ<Ÿg¦ÎLùŸ_Z,\¾pùÂåx¥ÀèD»zd÷ã?Ù‹yVË_ömó…‹¼³ªwáh¦»Й|…´ýœ»i›Ù×<¯y^óÐ>~öûì÷Ùï1ó¾À0lÅÅÅÐnpÍâ“a}éø)?KñW„¸ƒkÍ?>ó—ù•^pK©£ÔQê>¹”\J.Í›76oì1c:Çt‰„WŒ_1~ÅøGÕªU·´µ´µ´†™\÷ îAÝÚj„y…y…yá•£íêhÚ´ëÙž3g¼;ç^¼ydÀN¬슓iû9Ûc¶ÇlÆGÖ¬Þ¬Þ¬žöñÉšdM²&f>À÷€†UaUaUá~~,q=XœQîàZ9¹UÆÓ^ÑVõŽÝ»;v_êŸÔ?©=/z^ôÜÅ×Å×Å—‘HxAÅ‚ŠaÚaÚaÚŸ?5~ys8Ð#Ð#ЃöØ›&6Mlšˆ×8ŒN´«#î‚\lŽÌ›Z&½m„À¿åŠiû)ù·äß’32¦ä©ä©ä©´lN2'™“0ç¾À0Ìdþ•ùWæ_ôâÃc¬Y “è¼Ýs*”,9—^={[{[{[¿uŒ¨­ÔVjk™|™|™¼[[[ÛB¶…l  +V<¬x8Ø"Ø"Ø¢Á¯Á¯Áo¸ÏaéÒ7¤oüçß+¾WÄåï`T£]²îfe)DüÝ/½6ï•Bm?U|U|U|Óì%ÙK²—Ð>òëø×ñ¯ã1ç¾À0,-²üÉò'´[ ˼,ŽÌPA¬;öXMÎr… lŠn“yi+y_ó¾æý¡» ›;áN¸¿7zoôÞèòöËÛ/oçsãsãs\$,þRü¥øKÿ5þkü×Ôþ]ûwíßDÑAt0ÿ¼ý$üIøS?¿_~ü,ø^×0š‰,Y(ÒÏW8 ¦*²"þŽŸ ³Ú¦Ðös}Áú‚õŒŒéÑÀ£Gi¹ïaßþ‡˜óß`–ʯ•_+¿F/ Ü›v_R2ï×Û%¡fB‚Wû‰WûÄûÄû¨G©G©G¿ã~$>kVÖ¬¬Yé[ì[ì[,zIô’è¥ÁEÂiiiWj¯Ô^©­’©’©’!Bˆ"„ÙæíKw.Ýéç^6¼lx‰×5Œf«÷®Þ»zo?×øÙ–m  ŽøûµG²SîÉ­¡íç‘Þ#½Gz7š”ý”ý”ý´¹gÜžq{Æa¶|o€`;ÿûùßÏÿN/´9*W… —¶ÝѤ2{ ½º<(xPðàgi}S}S}Ó­¿nýuë/ùõòëå×.æ8Íqšã´û÷9îsÊYÊYÊYN‚“àü¹3VY^Y^YþË~Ζ›-7[¯eû‰öíû¹­UeÒ2Ù»€¿_kú.òŒTm?oŒ¿1þÆøÁfxx8íc¦lHÙ²³à{C Ãé1é1é±È,‘Y"³h7IJU_q‘Úòx"ú~nÍËž¹JôBSw-w-w-f寥K—Þëº×u¯Kõ­ê[Õ·, pUsUsU+¾]|»ø6U•ªJUý1GѼ¶ymóZÚþøûøûøûൠZZZK»^2q¹c'qð÷k·,ó0AÛÏÔäÔäÔäÁæñ)ǧïç²Ò=E=E=E˜íß`ö*ÎTœ©8C/ðS™¯'Á—æ$U°X‘{4G¿ÖO_½m§W¥·Ü^p›’@I $0ÿˆ·èµèµè=ô~èýÐ{Ù¸eã–c$vë8Öql^o^o^/…ŸÂOáÿ}ŽÐ‰Ð‰Ð¡}öZÙZÙZY¼Š = = =i×K«¼l,„."þ~­²Ñ–>Ç~nSÒØÐØÐø­ãHµ¡ÚPmhm[â¶Äm‰˜ç?`!bbbè…| ÓŒKD ”¹F[ô{ä÷ä•rY¯³gi WŸÆÂÆÂÆÂá;úíbíbíbQ]Q]Q]:Í:Í:ÍŒDÂÖ¶Ö¶Ö¶Y¿fýšõ+)ŠEŠb¼‡šÇ4iûòY¦«LW™®BtD'^¿]7ºntÝ ]› >’¾:e àïÒŠ(+rÑ[S9¨TŽoÇ’”’”’ÚGKNNÆ<ø1Àˆâ]ì]ì]Lo cÞ§Í|›®æWð ѯEJÜ{™À¯‡EÁEÁE#p#¦3¢3¢3"þïø¿ãÿÞê¹Õs«'#‘ðˆ"ÒSÒSÒSúþîû»ïï÷¤M©M©M‰ö1½¼¼ðšø’t”t”tíÚɶ:ó/ù ÃqMþeèËl°¥lÂ&Ùi´ÕV[£¶FmMmrmrm2ÑGô}Á3‹Î,:³ˆö1»¢º¢º¢0Ã~ À0*?U~ªœ^˜'²}î+Îü£n©]rFjôkR~—SâÎ×CÍŒ 2&ŒžYÑÝÒÝÒÝ’T’T’T²³mgÛÎ6F"ac_c_cßW¯4^iôpõpõpÑ{Þ')ORžôóˆªÍU›«6ãÕ ð¥ËI—“.'Ñ®¶ù{ˆßÍ·tùíºÒSbÂÄ××½‚dA² ùꎫ;®î¨ê«ê«ê#b‰X"¶ŸÁS'Ô uÚGØ ºAuƒ*æ6À„F" A!(®®®_ßÎ0!ß]&ñhdlß8~Ì£øëê´c«fj}ý¨ÓúÒúÒú0Mzë{ë{ëÓÒÒüyàÏ2 ëiêiêiÆÛÄÛÄÛt–v–v–~~–ÕΫW;ù—SÆL3e J„¡€/UøTøTøÐ®µ$’}œÚÈvÈÚÝ÷%9[y³Yï뺗333íbÂÅ„‹ åµåµåµ„¡D(UðUðUðÑþý³ˆgÏ"0·~$À0Â]÷¾î}Ýûë[‹*ö8M×µ;þ†Oþìpܾ13ž }bºŠä©_?Ò¼+yWò®`VÐCò!ù|Þ½ zdUlUlUÌH$¬í¨í¨íHûßÝ]Ü]Ü]Pm€~Ü"n·¸ ¸ ¸ h×QÖüI‘²ñˆooÔ<Ù,ý ËZ+¼Vx­0íïXÓ±¦c ¦6À„F…¸Œ¸Œ¸Œl[lYáa$*Äü[66þé9rý¹ûï链~D’Ê’Ê’Êõšõšõš˜ ߊ222!Ï/Ï/ÏÏa‡Ã‡Œo]½z=´Å£Å£Å $$$G»ŽZhá>c!â[ÆÛ¹jëåyÓVø‘á#ÃG†´h=ÐZ2nɸ%ãY÷JJJæÊÿ”ÿ‰¢GÑ£èanü€`ù0ïüóäDåDåD²a±ù°{ã¬wöâo5ä™a›ÆR=ÁBvº&ß¾Ðéqéÿ±îcÝǺIF$#’F¨PgSgSg¯-^[¼öÔíS·OÝfdSLÍ]Í]Í=Ô"Ô"ԢѹѹÑf\ëŒÖ­3.7^n¼Üˆj GmumumuôVP61¿Èu Ä\{˜#~—Ì3zµ%’ I…ÿ‹m7ÚnC £ÅžbO±¿v%ìJØÀ·*TÚðûìû뾟dÔÙš±›—é'hÛ"ŸÄ2Dç«üÂe1ðÞ¦íOÛŸ¶cýƒüAüAüQ__!èBÐ… vWvWv×ÁmŠ)ð*ð*ðÞr»åvË­AªAªA ¸¶m;ÚvL›5mÖ´YŸëé‘á‘á‘Ê G‚‚‚´ë¥¥Bfí‚/å®3u/mUý;ü;ü;2.ŠŠŠÏKŸ—>/Ý|óýÍ÷‰„Í,Ì,Ì,2 2 2 úŒûŒûŒ1óÎf‚Í› _Ö³ziõÒꥨ €Q­Æ´Æ´ÆTOCOCOã[·*¤å—Šs'¯ßx:NÄÎt죿¥¶1²cÜüTâ·“¬þšÍ×!6‰c·öçRà¥ÀK½ä^r/#ûs½¼üòòËËCu751C1C1C?#?#?£š‹5k.MDÑ„:ÓšýÏìfÿC[à «/¬¾°õ^>¹rÿäNod±èy¯Œ%Ý·{ƒÂ?IÒ]£vÇwÇwÇó ‘ 2A,,,ªÕ¯ÉA“ƒ&“ “ “ {zzðZ 5#jFÔ z5¬r­r­rE•F3Àÿ*´(´(´Ðå×å×åªÍ öÓœ•“Ïs º°]žzZÀ‡Mi²Àä,{‡êñ]=]=]=[t[t[t1‚ÌcûÓíO·?¥¯êùÕó«çû¥ø¥ø¥ˆõˆõˆõ nÜù ø ø .·\n¹Üò>ü}øûpâ*q•¸ŠÊ'¦&¦&¦Ò«ÛÙij‰gQ%€áå¬üYù³ò´göYVóîpÉ:Í*PRäB¸ûõÖal޵Â6ög\s&ûÑVòÎÁ;ïÜèÔv×v×vÓ>æÝÀ»wÓ´Ó´Ó´÷«ïW߯Îȧƒ™3 f¾¸õâÖ‹[]ëºÖu­Ãë‚”@J %l|·ñÝÆwôêVù¬òYå3Ô `tB ÐË>,û°ÌÙÇÙÇÙ‡…iÕ Õ ÕÝ]|wñÝÅ·:ouÞÂH1›^õ^õÞ~¶·7:ntÜHû÷   ·ZoµÞjU¸¯p_aÐcçdçdç¼0çœ sÊN”(;A%¨u”ŽB²N²N²ݯMˆ»Š»Šc® Ý«ºWu¯¢wf×}ê‘ÈTD¼_o—È\#hF[=‘F‘F‘FÊ;Ê;Ê»ÁÎ þü7úùúlSxSxSø—IZAZAZñÆÿÿËé–Ó-§3òÉH×C×C×#&0&0&°½¢½¢½bt¾:È{È{È{ô¦ëM×£[ÏòÊòÊòJ¼“Œ6€þ߇ê£ä£ä£o=Þz¼õ°jÿÔþéäÌÉ™“3¿wÜ;×m®Û\·ëY׳®g}ý úAcÁüR¥K=F;šùâùâù ###B³C³C³,X ÀÈ,:5çÔœSsŠÙ‹Ù‹Ù©|T>*ß(‹ôÔôÔtz•9á|Âù„3ÑIt˜·Ì/A1A1A‘Þ™}_ãq©_ôÒ¶F6aâeôê–’’ÂȸHZHZHZ|ù˜J¿*ýªôë€>g%‘“ÈI¹·soçÞ¶²²bdÝ»"zEôŠèÈM‘›"7µ · · žWåWʯ”_ 7n2ÜD¯>¥Ý¥Ý¥Ýx'= Rkbkbkb&w&w&w€k€k€«YˆYˆYˆÆiÓ§ù§ðOáŸB÷®®¾b¾b¾kÅÖŠ­s,s,s,‹0‰0‰0)YS²¦d !Bˆ"¨ðp´·~oýÞzڧ̦̦ÌÜc¶¡}ä™!3Cfî1)Ý”nJwÑž¢=E{\þtùÓåOFÖ½ ¯.¼ºðjXjXjXjÓ̦™M3Gö«ƒrrra§ÓN§NôjRB”%x# ÒDÒDÒDÚMë|ë|ëü¡}®v‡v‡v‡èøèøèøuë$ÖI0²5fµÝj»Õö·zoõÞê‘N’N’N޼ÑÉôÊôÊô¢Wû¿ìÿ²ÿ‹xB0³*¡*¡*!zçtžM3ØgÙ˜¥;É•Œºèwk Yѯ¯ôšcšcšc%%%Ž/YÒHÒHÒè»ÿ)âqê=÷{î÷Ü—Š.]*âMâMâMܺw¶Ël—Ù.þ¹þ¹þ¹µ«kW×®&º‰nbØ_*™jGµ£Úí¿³ÿÎþ;ô޽ º º ï'#`€!`‘m‘m‘M»±BJ!¥R~|zzz^y¼òx屋oß.>F"áæ;Íwš'M:›t¶;§;§;gøŽTÎÌœ™93é©åfËÍ–›‰Äbf53ËHËHËH£wNgsŸ"1YÙÒ5¡Evîhˆ~z<=%­òõ]©}©}©=ã•ozÔô¨éíãß`»Ávƒí'L…Z¢–¨­™P3¡f‚¯®¯®¯î¬¬YY³²·îî1Ýcº‡÷AïƒÞ«ŽT©:BÜ'î÷‡ãk„ZN-§–¾Q½ãÍ{™÷2ï%ÞOFÀ !»“ÝÉî´›)'œxp"óô³ofß̾™¬¬¬%JdèÂÑ[Y¶²le‰‹Š‹Š‹êtëtët^£–·)oSÞ&zGg¾Ï|Ÿù>j µ…Ú‚ÀÌâ+ã+ã+¿¾nÙ³2ÔKRh¤F¿Û]ý?ÿõ d“²IÙ¤¡ªy8)œN¢}–ÚÖÚÖÚVæ™õaõaõa7Ïܾ}|ûxæ»ûû{º—Â>`zÀôÕêNuÇ<`f/b_ľˆýúZeµ­ý«™òŽ›òÞ*ä ÷Ð÷˜]¶»‚¼¦È¾Øé _?êœ99sræ mµXt`Ñ/Ÿe†Í ›6‰ $fž'“'5NºgsÏæž*‡*‡*#«_×l×l×ìâ¾â¾â>ª6U›ªÍÔ/+а:b{Äöˆ-½#ÊZ—µ.kÞOFÀ ±;lwØî0íJ__ßð:Š4Eš"¯’¯’¯âhéhéhÉȦØR«¥VK­ª=T{¨Ö"ß"ß"ÏœG]äYäYäI÷7C;÷ìܳ“*D¢ a¶0³·šo5ßj~}}Âg.*Î^ràÎã6©¦áýW.ùËd3V+–“_?Ò2§2§2§¡­pëíÖÛ­·iŸëjÌÕ˜«1Ãqδˆ´ˆ´ˆ<œñpÆÃKW.]¹t%#«_GoGoGïü5ùkò×P( ¦;à0"Œ³[c·Æn ½£x3áÍ„7ð~0Ü!$J&%“’I»ibL1¦SFÆ1RWRWRW××׺Þw½ïzŸ‘M1Õª TÜ»|ïò½Ë<<<Ìs¤%×K®—\§×sãUÆ«ŒWQB(!”Ì|fV;¹vrídñâ;Äw|}e¢Ò¨oÈÿ«Õ´—-²»™9ô=$Ë+3MN`•Æ´øÿóõ»¥!KCZ¶¸M1Ö¬7Xo¸)º)º)–ö”ö”öPk¨5ÔšïÑç*Ù*Ù*Yz=ÑÕÓÕÓÕ#I“¤IÒ_€á¢SªSªSêªæUÍ«š,ÃÄm«ÛV·­zï÷Þï½ÿã+¶AkƒÖ-Ú^ ‰…ÄBÌ(Z¤c¤c¤co—¾]úv©Õ|«ùV ÝKxÝúuë×­.Ž.Ž.n?Ó~¦ýÌ÷ë¹Û ·n7èõ$áaÂć_æ‡à›«>W}®švC¤³³³³³õ¸&®&®&®°Ð°Ð°Ð…Xx€‘­1  ‰"û"û"{ ™B¦‡ªŸ:>t|è ÷¼ÚTmª6µÏ´Ï´Ïc 0¼Pš)Í”æXóXóXóÅÒ‹¥K3CÜ«›­›­›lœlœlLtÄO[av=ëzÖõŒ¶‡gÎ(œQÀü8r ¹…Ü’·$oIÞ’cÇ2Že02C–[,·XnñÈå‘Ë#—–”–”–”¡í­‡ ‡ ‡ ½ggggŘ03Àß‚° ,X¢Y¢Y¢ÿó­ü?×ý¹îO”‡q­Ü­Ü­Ü‘ª‘ª‘ª+.¬¸°â#[cö¥ö¥ö¥¹±¹±¹±ä4r9‘¾Õ××Ó{®•î+ÝWº÷úöúöúb†¯N®N®N®'%OJž”ºººï¸wŸá>Ã}†qÕqÕqÕ¤¹¤¹¤¹ÌS„ˆ„ˆ„Ú>—¼(yQò³…Ô©Ô©Ô©ÅcŠÇ9Å~Šý;#³hÁÊ+¬ m m mj|Þø¼ñ9ã=¼äqÉã’½gŒÝ»=v;Æ€9!ø•v•v•v´ÛÑw¢ïDßA}¾‡ö¼ö¼ö¼××WÝ=º{t÷0²5f¹Ør±åâ7‘o"ßD’tH:$oíOݪºUu«è=þRŽ¥K9zâ{â{â1v#jMâÚîÚîúfõ›ÕoVßɾ“}'ûäÒ“KO.5¾m|Ûøöê§«Ÿ®~ºˆºˆºˆªñHã‘Æ£5©kRפî.Ù]²»äôÂÓ O/ g g gˑϑϑïuíuíueþ£Þ–³-g[횇z„z„z³bhQÉT2•\f^f^f~aÊ…)¦°Õ°Õ°Õ nÝ«ðNá»àIÁ“‚'5ìoØß°p½òîòîòî¢÷,ÑAÑAÑA;fƒàx=òzäõˆvã£ÝªÝªÝ õù1º–w-ïZþâÜ‹s/ÎéSô)úF"áý&ûMö›¤íJÛ•¶«×£×£×c }¨ÿPÿ¡þ½Ç\tfÑ™Egºs»s»s1^0õ¼ëy×óŽvsü÷ã¿ÿõùA®Wˆ+ï}ßû¾÷½üöòÛËoù¥ù¥ùy¡rqaqaqa¿Z¿Z¿Úšüšüš|¢h#ÚÒ‘ë+®¯¸¾‚Þ#?)|Rø¤ÃÀ< L)QJ”òpòpòpþçþ[ÂË…— £\}¸úp?Ûºté¢>Ì¦Ï Ï Ï #>#>#ÞlµÙj³ÕŒD›‹6m.zÞõ¼ëyWçÂÎ… ¿|®OõŸê?Õs¦q¦q¦ÑþÛy«æ­š·ªómçÛη.ö°îaÝÃJ»¶¡ì¥ì¥ìE}˜Mƒ@ƒ@ƒÀ-³[f·Ìä[ä[ä[·îe¯f¯f¯¾t!éBRYvYvY61‘˜HLüò¹ÓÓÓè=ÂŽ80"?`€¹®|]ùº2íGKDKDKêÃüH‰ Y-Y-Y-G'tt#‘ð‘5"kDžæ<ÍyšÓÚÚÚ´¾i}Ózž\ž\žÜ~îÁæ­à­àÝÝݱfÖÙÙI»ž9êuÔë¨ê3\4Z5Z5Z…n ݺQm§ÚNµŒ¬~O¥J;•Vl\l\lL•¦JS¥ouÞê¼ÕIïïÃùÂùÂù0 ? `€‘‘‘ürSC¤FR#¡2Ãe#e#ec~a~a~¡ÓI§“N'Ù["¹Dr‰dðŽàÁ;|||iÿFº@º@º Ý«Ý«›§À¤^§¾N}J»’ÉVËVËVC}†¯———‡Ý»v/ó\æ¹Ì“‘Õ¯Ã)‡S§Î:ÿéü'zsû÷=nTàÇC ðÔ‹Ô‹Ô‹Ðng„F‡F‡âל# u/u/uoÉÑ’£%GO?9ýäôF6ÅØµØµØµhÿûìßfÿ6û·¶ímÛÛ¶£æÀlýqèCЮaÈSÈSÈSPŸ‘¤]»]»];Z;Z;Z{­íZÛµ¶,ßAÈ„ !Pm€ 0ÀÿddÔÏVHãÍÆ›7QŸn1‡˜SžWžWžw1àbÀÅΫœW9¯2¾&Ô#Ô#ÔÓ:½uzët”˜y)y)y)íºÅ¬Ø¬Ø¬õ :s:s:sâ ã ã õxõxõx‡*¾Áwƒï. ðƒ ø?d¨2TêîçzZá´ÂiTf”zF<#žU5T5T5\Õ¼ªyUSðµàkÁ׃Û›>9|r8Š Ì »!»!»vÅòšý5ûkvÔgtêù§çŸž^I¼’x%almlmlÍH l¿Â~…ý Tà{C @×'÷OîŸÜi·-nÜ*¸U€úŒRÍD3ÑÜ{°÷`ïÁºUu«êVe8e8e8]j¸Ôp©aÕšUkV­áããPì5Ùk2î LÁ&Ú&Ú&švÅÒw´ïhßQÔgt¢ R©‚mÎmÎmÎï¾[ønáö'ìOØuê8Ô!±NbĺÀž=7znDU¾7Àtݵ¼ky×’vÛ¢A§A§Aõy(c)c)c›#›#›# ^¼,x9;rvfPcÎPIDATäl—V—V—VíÉÚ“µ'íÑìÕíÕíÕQy`´k“"“"“"TfzL<&w7u7u7U;V;V;¦L9˜rÐ?Ê?Ê?ÊTßTßT_F_F_FhW¿(<À€®žÆžÆžÆd¥d¥d%NNN±,±,±,Tf˜‘!d™ÎèÎèÎèJßJßJß„²„²„2okokoë¦;Mwš Ç Ç Ç±ü@\|\|\|—r/å^ÊÅ3¨±ª±ª±Ú™²3egŠh•h•hUòäÉ7P™á…ÔEê"u544ä å å Ý_tÑýEŽÏŸ;>_ê¹Ôs©ç\÷NÞ0yÃä ªÉªÉªÉ€0 OT‚JPûôúôúô888ßH¼‘x#âââ{dÏ‘=Gö¨º«º«ºÿÈí-Þ÷¼ïyßëµêµêµzlöØì±ù9ÿsþçüejejejí1í1í1Twª;Õß°øõ¡úP}Úßµ¿kWfYfYfù|ßó}Ï÷y<óxæñLßDßDß„ï ßA¾ƒ?rõ«:Iu’ê$k²5Ùš²8dqÈâÌ™3?Ö¬ÿXÿ±oIß’¾%… Œ À„˜Å—âKñm•j•j•*žV<­xÚSç†O ÏŽ;;îì8ݱºcuDzmbÛĶéGno-e_ʾ”Ýqã:ÇuáÍáÍáÍ9Õ9Õ9Õsç4Î!U‘ªHU;øDQÑÓÕÓÕÓUk\k\kœ.›.›.´)hSÐ&óóóŧŠOŸþÈu¯°¼°¼°üŽÞ½;z½§zOõžšà™à™àY¹§rOåžNŸNŸNb1‹˜…`N€€‰Ìž?{þìù?r{K:_:_:ÿ§ýŸöò×ó×ó×KMM­^S½¦zMwNwNwAD*«úVõ­êcùáV{®ö\íéâêâêâú¨äQÉ£’———æóÍç›Ï“[É­äVŒÀp‡˜ÈÝaW‘K‘Kq“à&ÁM‚n»Ýv»íŽù+毘¿Þýñîw´moÛÞ¶ÊAå r æðã-åXʱ”c¨V¿s3æfÌͰ¸bqÅâÊ͸›q7ã2Ô3Ô3Ôëøëøëø{7önìÝH|">ŸPy€Ñ00‘lo©w©w©wٱٱٱÝ;sï̽3YYYÏ<ÿñ<‰‹ÄEâB%€™/:_t¾èëë^@@ÀmšÛ4·iz©{©{©Ç]‹»w­\«\«\«C¯C¯CšLM¦&£žð%ÀÀDvoÙ½e÷ŸŸŸ¤µIk“ÖVm¬ÚXµ±ëi×Ó®§Ä!âqU€á.N*N*Nê¸Ñq£ãF#.F\Ì›–7-oZÓ˜¦1McÈ È È P%À#`€0À`„@ 0B !Œ€FÀ#`€0À`„@ 0B !Œ€FÀ#`€0À`„@ 0B !Œ€FÀ#`€0À`„@ 0B !Œ€FÀ#`€0À`„@ 0B !Œ€FÀ#Äÿ/°2m„SÒÓ%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/marble-diagrams/withLatestFrom.png000066400000000000000000002013771431412030200263570ustar00rootroot00000000000000‰PNG  IHDRädÓùgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿÿÿÿ X÷Ü€IDATxÚìÝwT×ûÿm“˜˜|”."Xé TQŠ4ØÆÞE°E…¨(–`±…X°E±Fƒ û€AK$;–ˆŠpž?v¾ëGžá£  Ãëb­½²ŒÈÌÞ÷ìÙ3oÎL9 @ÊÑ À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À À ÀøÇŒ3N O O O K K £O”5wŽÝ9vçXò‘ÿ÷%þ„ž(krcscsc®=ºöèڤߓ~Oú=Í"Í"Í‚ž¸ò”Lœ­Ä™KœÅÄžµ".snºqèÆ¡ÏÿxþÇócÆ Œ1}júÔô©^‘9–w,ïX~|æøÌñ™‡Æsh̃6>ØHŸPš—O^>yù$ýPú¡ôCK«,­²´JËoZ~Óò½b"þ5ñ/‹Ÿ"~"= L׿_›mþ†§žnxÚÛ©·So'½:zuôê}eèyÆóŒç™èøèøèøã厗;^îñúÇ믧ÏÁ•W^@Qˆ³‰8³ˆ³Œ8ãáUG¯Ž^q6gFq–¤Ï t!V¹«å¯–¿Z~¦ýLû™öz%ıcÇ>«W¯^½zõ=ç{Î÷œoS^ÿ¼þyý“÷%ïKÞ×3¦gLϘ’šÅO["¶ŠÑxû.Ô¸PãBñÛÇo¿½¤V†¾“|'ùNÚzeë•­W<þñxÆ\yqåh#Îâ¬!Î %u|‰³§8“2.€ ?R’Ê'•O*OÏ d«ÊËÌ—™/3---œÂÂÂõ©óÀÎ;LóMóMóÕ¼Ô¼Ô¼dì¯ûµî׺_+fAÌ‚˜z &¶Pl-£ð&¾ù¸iºiºiº2W†ƒ× ^7x]FLFLF £®¼¸òÄAœ”yd‰³ª8ʳ-£†²‰ÊD\êåEæEæE&D$D$Dé·+ZÍ5ÛÑÒýZ½eË2/;›ýô{Ë¡n-h{É#GšÔîÏØ¶mþôÝš2ŵæÂ¥MRú¥AÃÚ)öçÍŽÍ{½Ÿëíí}ö³ïœ}‡ÑPþ~ð÷ƒ¿£,£,£,‹2vz¯Y7ËvÓ¿ÚÕ.䇸è- ÚîIûöºû #5cûz¶­øñÅßßU”Ÿ+¶\ì£ P9Ýrºåt[³jͪ5«Š²B3û¹þF;ê4o÷<´‹½eXôä:ζ£š|3¿õ¸ßÅ7˜2þ‡ï«Õoqv±­c³/Úμeý¨ÇÄQ–c~i—R5¥Úé¯÷s;Ìî0»Ã쌟2~Êø‰Ñ„Z¯¼ô y^mÒ§³G†ÕjØ©×ÜæÖv½?ZnW©¹5ŸÙ÷­øñÅßßÅ•ÔJÌüâ,ðz^k¨q°Á°þœÎÖê0¿“Ÿ«Cðæ*ͧ¹Ìؗئ»GUé“v»<'vkWÁÓhç¥Vönã®w«ÿî„Î ­¬sš¦×N7/Êñ%μâ,Ìh¢ì †2—biãÓÆ§·u±u±uÑý4Üåg»?-ïÜÔªš[BVTß5þG5šððààâj¯Ní¾Í×fÍ”¦êÇ6ng9ËìUÑÕ3ªgÔíøÛñ·ã_ºÈËË‹«W'î•ßÐ6¹[ø›ë¿YéuW£IM .ÞVüË⧼궉={Ç(è.)1)1)ñUW_VfAÉÚ×ÿilµ%iYfœœåã—šZ\­G•YlYmÓwѸc†þ–Ãë8ë¾mcši>¦ùc“Ç&M_”Æ+¯à…_4ªÙxàì-åNž|þ¼»{ñ¶â_?…+/”Fb†³½îÕkWÙÌÂÈvibÀgNv÷uá}©xïñ>›º"pá‹mëyÌ [T¿BíWƒÅ™ñEY@ e".ežÿñüçD͉š5G—­{C‹`“­{®´ná>´xº·9ì ò_q7h•ó|Ý—›&nš¸i¢æ‘æ‘æã@.ãBÆ…Œ ÁÁÁºÌ*ûtsªûñÅS[vx_yq¯.­øébKtÙf±wbOqmë=Ö{¬7 Ú€jªé²Êª6ÁÕØgZƒÇ*,»V¼A¯îm£Ä¥ ‡X?í1sT°îWÊË,w;9Pô•—ODoýÓ‡%ï¾æÜâMĽº´â§‹-áÊ J&fuÝÏóù5rhþ(«ßì€ö%u§7¹mû˜†ï…Œ¨ëP}œ.Û,ÎÎâL͈C­€¡L\6”W:\ép¥ƒy”y”yTá§ÕV‡ë…Yx›×9§ñ­’Z hksw‡Í :r`w[3èê¶«~Pø¾tßÐ}C÷ O–?Yþd95@ˆ?.þœ.—s¶Œèl?"Ëýàpÿ„’ }µµb«Äê²/b¯}€üN/8½à´Noµp¨ÝnOû¹wX”Tè«­õn°¼Ã±Yކ›ÌÑéù^c­ÆZµÊ•3*g5%\y…äD¬¯ýÑØ)Û]v”Tè«­[%¶+/(˜½ÅL®KMnÕ„¬puy1o@ß O”v§÷êèî}ëöoât¢V]öEœµ©¨0”‰¸8h~Ðü ù\Ê7²­*ýr·£äõTiKÂÛ-cBþçr±ð½Ó¿¬YÿòµÐk¡×B© lzùøåã—GyŒòõïQö¢kf§YÍNôߣ´ÐWkÜìàDÿ=bË ß;Ñ¢7¨ P–mpÞà¼á?¤lr×î¥kUÃY•¶lQZè«5 Î[y.%Ùöy¿ë‘£ ß;·GnÜÝK¾—|/™zÀÛ¿òòiÞëH¯Æ•O9ì²Si¡¯¶Vl­Ør®¼ðö‰[ÌÞ…W`ìµ@+§ò¶…Ý zQZîñ^Lé:×û²‘•«ÙèÂ÷NœÁ©¨ 0”‰XÑÖÅ­‹[Wø)sá¶&iŽMò…¥Ý)]Ñoþö¡Mßëþwûmwú¶–Sáû{ÆéŒÓ'j(;²‡gÏÞÒ«¥WK¯Âç‡_ή™á•UZB_­o>»f†WVá{*zCô Ê\M®&w¶÷lïÙÞÿñ@×_‡\Ÿ¡_ZB_mmØo®ì–Ìž5Þ8´ðý½ÖéZ§k(¼+¯ ¶è96.-¡¯Ö7/Ø¢çØ˜+/¼b–.¼Þší­ckžqsS¯.~ÇJï=^ÑÆïúô—w ß_q6gv*¥0”‰X¡bÓbÓbÓ ?MþZ»³Aãî¥}A o·® ‰tµ(|ßSk¦ÖL­Iêö´×Ó^O{yMôšè5QÛlЯ]ÛÜZfÙ–IƒJ{ô›¿{$öNÛ¾‹ž½Dµ•ËÔdj2'¾?ñý‰ïk[U}aZã¹gtÌw?Í*íѯ¼µýªoëqƒ ¿RÎÏϧXð&®¼<›tô¬>zBÓÓ#])íÑoþVì‘Ø;®¼ð&ˆ™¹ðÙ{iÓ'}õÝãý£YN¾1µCW¬×¶ïâÌ.ÎòT J/`(°â¬ Z´&HÛIÑ»®åE3¿,ß¾³üw©oY¿=_®Kïò…/ÎfœÍ8›AÍêóÂô…é Sß]¾»|wi›–L{Ö1Sógê®`?5E¿ÿjÿLÝì'öT[?ˆ^=F嵊>}>ú¼¶Q ß´–ëŸXöQòeõE¿ùÛ9j.ÿ+åÌ3?ÌüšAq]yµ­3iS#“GŸ?ìÞ@MÑï¿ÚÑç»7{Ê•Š‹˜ Ÿ±“Ç·_Ѱ’ºïñ>º8p^½­~ÓÖâ,OÍ ô"†2+HâþÄý‰ûµ»<´{d™óbâ€îAª{Y¿½9¤W€ßžÂ—J××^_{}-õ¨„ÆGãÓsFÏ=gh;êô›ëè:Nµ¡¯–Vìµ¶>=&z"j×6®m\[m« Ú©mÃúuðùhåó”GêŽ~ó·îÛgœÛ\­ð+凖-ZR?(Ê•W·G‹‚m~Tmè«¥{Í•ŠBÌÀ…ÏÒŽu9é=°ìÜãÍ»þnp…qIžöÖZ_j ÎøÔJ#`(°"\|rñÉÅ'ZÜåì?·òÌm_v–ùÛ»ö~ÑDÒÖ?f;Ìv˜íxšó4çiµ”v1ÕcªÇT×v¼'ôŸ?ÄmPY‹~ó·¢´õè=ª¨ÃÑ~|ôcm+Ÿ:Öíæö?ãã·2õDÙ‰~ó·«gŸÞöH[ÿW ®\17#7#—çfᕯ¼zÜ[º×¶KY‹~󷢸ò«³®˜µ>®k·U>_—Í{¼šÜð°à ÈxÏ«ÖZ_}(ÎþÔJ`(p Ë–=,{˜¾¾¾|šð¿ZóeµY9zÙ”ÑeA¾ö†cÏŸý†k[„æ„æ„¥Xr¿ä~Éý´ãë]¦™6V–£ßü­è ­ê—Ü/¹J¯;{ïì½³WÛjÇÊ%بÃ>Ÿq~©-Ëfôû¯ON»§­¯fÙͲ›eGEA÷+¯Nqs÷[û•åè7+zƒ+/èN̺Új&ýûÎ+o篦g¸CpÍpóú k;jë+± ¢PZC™€KØHב®#]µêê×#ÀƒeAþ6ͳӾÆÖZ?ø"áE ê (]~xøáamÇõäÏÃÇÚüAè+oEÏh}èßᇇ¦º@)³M³M³-dVȬYòŽqÛº÷f{w\ž|¼Ñoþ¶~ëˆß»k[ž2:etʈâBáW^Áß|áQ³¡¯¼=Õ 'fZmu²/µM_cîëæosš XäævÐÂÄä[y‰•€XP]P>àâ²sËÎ-;·üóvðõÑë£×?hö ÙƒfôÌë!.1)7Rn¤ÜÐúˆ;]~÷ÁR@[»þb³¿,ÔÖ{ž=xöà5”/¼<ð²üXnœâRÙÌ.·ë‰½A›‰{å­èÑKòÞ½Ju€Òe[ÓmM·5Õv­×ðù·{‡÷jkëEtþ틆ÚzïÅ ƒ^ ¢Æ¸ò*àê¡n­Œ&ù¥¯qK%î•·¢gD/qå91»j›{glõîb7‹{¹ÚÚ[g{×k ­÷Ī€ƒò]n»Üv¹í´Í„Á¯‡¸¼ôzéõÒ˰·aoÃÞòR^9(è¬óNÿÿÑ>ïìÿ¹‰íTËÞX3lõ°ÕÃVSi€òZ|jñ©ÅÚNí7w÷ñÛHÐ[x+zIë§=ŸZ|j1•”ïQÖ£¬GYÚV5õþ²[¼Œˆ·ðÖ{éŠïN8:ZºÔ¾"ïÃ…×^[xJãÊKnôfÉ©A Aoá­è%®¼ 'fWyUØ®7Í6ªòr}˜]Ð×ÜË-¼ÝߪÍ7­ÏÈÌz”õ(‹Jƒ’]þÏþŽ0XwÀ%à‡È"ˆ”nƒQæWŒÓóf‡] zĉ_—öÎåÞ·›h}/Ô¥;—î\ºC½ å¤qÒ89Œví0Z~üþ0(:²Aá®î­è1yOнMÑ%›ºtêÒ©Kåë™ }/¶ÜN¸«{ëñÞÌ [µ])ßyo佑ÔW^ÿ¼ñ×®‘µáî+¼Ø®‘µW^ÄŒªm¾½8¼ëïîßêÞö8çÐßêwyOŠõ%#.:èŠpWOg„Á…#~«ží{¶ïÙ>mÅz¾Y_煮ì_µ\ßù/yv¨Ð¡B‡ T L‡wÞux—üÈ­»Óê„¡c^Í”ŽA‰uuoE‰Þ“÷ªèmª(ÓݶwÛÞmËcŸ‹·­ãÓî×Ð^2Ñk¢×D/ªŽ+/³Ë5ïVŸ´ü\s·Ûĺ¯ð8èå皻ݽǕČ*¯„ æ ?¶¾Ç=Ûâ}´X-PuP&àâE\\€ßªx»x»ø.ÀúIN±µ\8Í¿^›SmÀâ ;m‡ýåë—¯_¾Ní rFsFsÆáC‡>”³)“âz9è¾^+z¯€ßFÿÐáC‡EÏS€@i¢c£c£cåkkƒ®G†o#Ê}½¶Q‹%žÑv¥œå”å”åDí•å+¯°¼-t_¯½Ç•WY&fQ­sì¶¾;ýÏpÏöõÚÙé>ÑöM ˆvb£c£c©=(ð›C\ÀoIÞ¶¼myÛôé7Òo$/ÇkÛ{Xúá_”vˉ;—{ò¾1rÄÈ<Þ Ptûtût{ùÑêÚÚ~°‰Ÿævjbp¢Ü×lo§&7=)ïaÑóT PŽìöÙí³Ûk»qÓhÆRãCljr‹ÒÖËêÚnx yß.]¼tñRÞWZF¯¼¬º8ú¦MŽ8ÔÝ…(÷5ÛˆóGÝ]DOråU6‰YT>ú³Í}šØsŸ¶(íûýìL´­ ÄÊ „Ò¿„Á¯Šø-93íÌ´3ÓäÅ×öë8µ½}¾d@…À_µäßúûÖß·¨C@ ÂO‡Ÿ?-?NØÇòlEˆ[ôVô¤¼‡EÏS@9ú%ôKè'_·Ô©×nfâÛbh½6-ê¹?XÛ•ržMžMž uXÖ®¼ú¿¿¦»}BÜ¢·¢'¹ò*kÄÌ©õ=ëÃúDùrŸ¶èmä*Ï ë³ò+êJCüöë‚ø-’>$}Hz;½Ö!΋“z±µ3FzÚEÊûyß¿=~Ô!P²²We¯Ê^¥íürè‰w‚"Þ~\z©åVCïœü[RÚ`Ñ“Z[vUöªìUT#PŸHŸHŸ®àmh[»f%—Ê`uÄÀ¢Wåû%Fj%+«WV¯¬^òµŠa/ËÓuâ‰l‹·u}oRÿU¬Ã'Œ›0nÂ8ª±ì\y}=²G-ÒøY[eÀ¢½Ê•WÙ!fÎ>äs¹ÃJ¯ îÍok·É¬“QËÞ²Ü+«WV/ªÊA¬„Áù¿qç²ÏeŸË–—ÔØǬm8‘s»?¼M°‡±s•]ú›ä}þìî³»ÏîR“@IùbÈC¾"?6/mÝÚǧ p1ï×Ö­}|ªÈ÷KŒÕJVbDbDbŸì±¯6~² ‘mñ¶ÞNË›¯í†—¦—¦—†ÛèeâÊk¸óžXçaÀżmÎ{b‡qåU&ôÒôÒôÒ6—¾ˆÐ-¨÷f‹·;ÜÑ9OÞÛbAIB9€•‰0˜ø[¤·HoQeôó Ž®^+8‘¿‰vúâÆìBä}ž••EM%À_ã¯ñ×vZÍýêÄÙ Ÿ€‹·½ªõ6Ÿ¿Æ_ãOa€’2(~Pü øþ|fÞ´„ýD¶o¢µHðñ Y*ïóÛ3oϼ=“š, W^“Z¥ïw;E\¼­èU®¼Ê1[ÊG¹[=ûP«&Ü}íõS=nûþ%ïs±Š &¡ÀÊW6Ã`à7. R@¥€JòÒùÛ´—€ÓœÈßDûËÃŽÉ^|êzYÅe—U¤&·ïÞý{÷ïÝ—•ÝO·¸aWŸ”Ui,ZÑÃò½#Be€ªIÕ¤j»Éâ}iåÀÞþûFZÇÃþšý·¼Ïzô8èAaªûÊË­n›_̇”ÆèWù°hEså¥nb¶”òÖm!“\­¸û&Ú\MX|ÐY­¿`‘ªIÕ¤R™PàÒ¥ì„ÁÀoPîÉÜ“¹'å…Rí¼Á—Uö(í„ú×W½~ðû{ZLãyvzŸcû£¥gƒ«Õ+ß7^\å²¾dfzÕè½Àõ¶V{cäÛÝ^ºoÑç°ce.yõk`+ïùN+;­ì´’ÊÞ¾Ÿ?úù£Ÿ?’•?DFÏjÐT™ðéw×ù6Ú­iÈv«fµ%KƒýÆ‹ ŸèK.gì+šÔŽtë?ÚzÏ}‹ý'ý+9=\ÀS(>úù£Ÿ?¢2ÀÛ÷dò“ÉO&Ë×'æ›=Ò>Wè#”¯­ŒLig¿y ÿÔ>Õ~p]êëXu’Ù-‹ÿéO1ˆ3|b´°ö2Ûùµ Z”ëÞÝcÖìÉÛæ*s/<æÎØa_Àͬ¾Ñ}£ûR™ê¾òêÔ|nëZ úÔ¬Mz¤›Ô±ê̦õBíOø»š®6Ylñ¸Ê_U0úLßßr£Ãÿ —6¹6àËcš'5ið•ò`ÑÃ\y©›˜-å£|uZ÷}m•vw4iwûŽž×úd8þY3YÜ×5ZWeªþGûjÁF—;®²ýÜòÝ]³[ u»™W=lgÐoJŽÛ~gaqEÞóbEAeB €K/u‡ÁÀoP–w–w–·¼8Â6Ö¯\ÛP9'ÑöûÔÓÇÂÁ°mU?½Wt=¹Ç ß?·8ø4¼Npõ6··^o½ÞT&ðöÅ 7T~Pþšº!¯ñeÀ† ãô?/|¬ó“¥ÆàIúúøøÆ Ê €EË·\Œ• Þ¾ŒÏ2>ËøL¾>±ÕË|L ¥…¦–®><¾ÚW®|†ë~¥ì Ù:ý¥íKããË*$ÿ.ßÚfÆÍŒ›S™ê¾òrsÇe§NJJÇ=±ßåk[ïI&ûu?¦:%Ïͱn¡äXô0W^ê&fKù(?º(0F wDE”;j‹ÛÍzè~|uøÑ&¯FêßkûÏ x ÌøÛwš4p¸*ßr±¢ 2¡Àê ¾0˜ø ºtòÒÉK|øûÚ^N;•pú§v›ÓhÃ_ĶÕ]kò•¡íü[~B“7´ßÖÐä×]CO<ô¤íÏ£ž{™Û,Ÿ þ÷ƒR•¸8ð;PÓ¹ZAðÖ|8òáȇòãñ~Åýü=” ãƒúíµž’ØzÑÿÜÿxcî6׸/Lº ª3Cÿ½Ÿõ‚óÿͼê)í‚~SZ,zX¾_bD¨Lðöºèþ¡Q[ûتKŽ+-4­žÖhD³òÿlâ‰*«¾[ç‹öƒCÔïó•éâh—;“Œã~µiÜ3|tÿª[«³8‘<ºÍÊÚzFA{ä7=u£ÖiBÕW^_=<~Ý¥k ¥•ÏWr×sØlš•Ûœî5Ýf¶µƒãôõÌX­ÿŸƒÑg‰Óî×}âÐØÿ¥é m«´Xô0W^ê¦uþ<Þ%Ø[ ÷B§îk4ÅöŸG‘‹û·Q6m~«™¬K ›ÿ»š‡z'T÷QZ,zXÞóbD¨LðöÍY5gÕœUòõIï¿9¸{©r‚R‹Û>WZüó(ÝgšìmS]—@7ÿ™Í¯oï%)-®ÑÖ¯n+®”Ëڕפ‡ç~sÿ d#Rç´O›˜½Û#­ËwE¦Ýuc1Ħ¦ÁE%À¢‡¹òR7ùøölïð­Õs%Üòs#Û~‘bV{ï§v·t¹[›2`C»x+°øûƒƒ„Ö¾¡´{¼7Çô öK”÷¿XQP™Pæü@¬V¥+ .§œC¢ì¸x½ëbïëÊüÔlዃ\û°nA«¿¹è—ä°Lùð÷)cœ~× `šÛ©{ƒ›(->ôä»ÏuùÞÝ‘ .¸[üß#ô­ m÷9àÛ©{ƒ›Pi@ù¼n/®} H9A©‘TÇÉ®¥Ø¶üŸýýwÛ.¾w°©ÇÍ9ë¶WðŒ‹yðÓs¥ÀµÊ‡¤v7¡ÞÊšÉç“Ý]J6"­þº³Á±==¬—ô±5Ñ=Ê-`‹¦ÒÊšS]÷Öm­„» GÚõ³\+¶*iwûŽž×^õn°à¾Æb¨É1¥Ý㽿³ÏsÿÔ€Ònç–[vn!V¹ËîÝ~õY£Ì8«\ß‘þVmÛØ#våA›œO4nfS·Ó»-¿¨aa¸±êmû¥´}Yå<¾¾!Ó  dJˆHåðõä„ß?uùÞË–?6÷Y¡ÌýÒöIeejÔeÉ”C)!"õÞ±âΉEù·Í3pnÊŽ(¥E¹¯×ÖnÒú§>µ¨·²¦dÃÑ §S\3òoÏð›{/:oÖý_èù8vªíÊÙ#݃j¨[ÄSËz’í°00™_ô=ª-'ìÿ¿;й_ý¬ïÿkÔ€ÒîÅæ›_l&V9¥}ø¤UÇóÞmóq½ë_‹wEhÛr—3Õ{›Ôî}×qvÍùÿåÀ^•2?ü<üèšÀº|oö´d»Àn͇|àÕ(çÀž§æMJHÈ¿mS—é%ßTGÌ'€Ë¦’ýð¨u¬¿'ÿöˆHX÷aðÔG:þ+þáÀPå|ØdzUýEߣüÿŸ€âU†>,ž®î¯™£gŽž9Z>ÌJ{°ñâ*—õ%±mΕª½0n.Þ‘ß2Ñm\†S·>aââ».µìzðßa‰Ò–…¿¸,Ô_|)í«öÓÚOk?•Ê|°îŸ¾úhG”¯¿ø®ªiUßÕ»ýó¡Òß,F„Êä‹/¾øâ‹/¾Þþ×Pï¡ÞC½åë弸ñ²ï'$ÛýkÛº|ã±ë¶:`mï¦2Õ}åU²ïŽÚùk‚Û¿^%6¢Kâjç4Ýÿ…^¿-3´ÍSr¬íÀ\y©éK>¾Êy°¸£+¶jûù[\Ï‹û·¯×*íN¯¶w‹•É—2ç‡Å,þ`ñôŒú¾vÝ5vרðwÃß W÷èWüý2ôà²àèûGß?ú¾|°÷—k3Ú£–NŸ-šÕ¬¾QlUŸ Ç?k&çUÛô[á±îÅn]û{'+?þ¢¦Ë˜:³ ÚNo[‹ A-‚äÇã‹úÇš>-½ïNl½èî‡ÿïhlLþïrK9°èayÏ‹¡2ÀÛ·&sMæšLùúÄ}ÇŒK›k*'(Í¿m.ïMh¼¼®.ßå¾zÆ›®Ø ê™3ÆÊæXïßùèÅUN­¬œý2Ùk×Ó¥WÊeíÊkâþ´wÝš+çñÈ=¾[jkë£û÷¶1þiíKJ€Eså¥nòñõ®j™fÖX wAÛ]¶~XÃZlÕž!­kº¦Ì—¾^{át—³Þƒåý/VT&”9?ˆ°žQÜF¯^½^÷ÐWüý·úæGü]:yé䥓òÿ¾v —ÓN%œ>ÍC –WùUlUJ÷ü¬uù®ÄÖ­Óÿ/ðPrìw ¦s5=.k%ùpäÑåÇãýŠûø{(-î“Ñæ·šÉº|ïçß4+oé)¾«óÈOÇ[®UZ,zXÞóbD¨Lðöºèþ¡ûòõIýíc«.9®ÌØêT³w:¹ëò]5o„ í÷σ4Øf6ˆWÐ'€Ý㦧nÔv‹ŠÊT÷•×W_w骜Øv–ϧ&™:}z80í®Û˜Évã [(9=Ì•—ºi?Ï…w ö.Ù» _ðhUïŠØž°ÉõËÕþD—ïzúwà‰ÆŸZN7«dfzÕè½Ù>mì-•v÷À/mkzð!±¢ 2¡Ìù¸´+½¡o~ÀoP–w–wV¶ ÛX¿rmC%œ>í››-0.¶jS“æ^.] ÿû™;{úù™‹7+:þ4¼NpõŽ¿Þz½õzS™ÀÛ74nhÜPùAùkꆼÆS”W¹^%HoÇþú‹£=µ}צ&3ƒ\ºäÿ®ä Ëë64QÐÛ5©©ÁÁ¢‡å=/F„Êo_ÆgŸe|&_ŸØŒêe>¦…râRÏAÏ¢ÿ³q'ªt®únƒôÈøeµý}ÇY=¶V©dÔÉÄF|S­_Z}Ú«µøoE<Úúø² É¿Ë{¾™q3ãfÆT¦º¯¼†ÜÜqÙ©SÉF¤Ýº-ôµ™XÀû‰µ=TùûsÁn·6´¶ Ôý»Jª=Ì•—º‰ÙR>Êφ. Œ)Ù{¡§žÙhíÿÝÓЯ®·c×ìVCÝnþ]ã>ó|×ú_¿Z!þ¥Àß¾Ó¤ÃUyÏ‹• % Vu„¾ù¿A¹'sOæð àjç ¾¬²G §Ïó×ÕJÿç7ší60[³·éàú?üñkÙ¾[o ì]®‰}ò†öÛšD=÷2·Y`2½ª‡þ í¿/¬”eÁ#¯~Ílå[Øie§•VR™ÀÛ÷óG?ôóGò£ò‡ÈèY š*-®»Ö*ÑðŸ9$Ò­ÿhë=ûüp¶ãø<·J_˜tTgFþ¿ß<Ô;¡ºÒ>û+ZÑÃòž#Be€·ïÉä'“ŸL–¯OÌ7{¤|®œØ{ÇŠ;'É·³Î²öy6Õw˜¶è„ë˜É'×T´ÝÚ÷ÅøO ¼ª×·üçö_Õvf«·QÚ›ƒ=æÎØa_ÀM«¾Ñ}£ûR™ê¾òêÔ|nëZ%”V>_ɽ€»IN÷šn3ÛÚ!nÆÄz~¬ÖÿÏÁ¨cÕ™Më…:Ö œkf$þŽÅ›š•‹æÊKÝÄl)å«Óºÿèk«„;¢¼uòËúkû¯ŸÐ,­Á$î&Ä·Lt÷ù7¶?þßóÌ„^.Ô¬©Ì§<¶ýÎ:ÂâŠ|ïÄŠ‚Ê„—^ê }ó#~ã*T ¨$/‘¿Mûw 8]²§Ï»Þ}þ×ä”xćîÅýÛ ®{ÇÔ:k<Ø`Zþ?ù¼n­ê£”°,øåaÇd¯lù–/«¸¬â²ŠÔ$ðöÝ»ïþ½ô×ýt‹VqJ €“v/èyÍl ‰M•…χNÕ­»\ONHðýS™°èaù–‹¡2@ HÕ¤jRµ­¯¼/­˜â¥´A‹‡9ër½\e©I%³žÎãFû.¸ œÏþŠÖñİ¿fÿ-ßæƒ=zP˜ê¾òr«Ûæó!ŠxT²á±¾.UêNòhl»KM%å‹!_ ù¢€ß‰¾´ukŸ*%—j q_õϕӊ^•÷¶ª”¬ÄˆÄˆÄùZžzØøÉ&Ê Pó‡Á¯÷KìqÖNË›¯5 ê¥é¥éEM–…+¯áÎ{b‡)í³³Ú]yÜ«ÌÏþŠ^åÊ«Lè¥é¥é¥m.}9 [P¥¨…¿¼O™¡oþ6îdpGçmh[»fJSKc+zUÞÛb¨FP²²zeõÊ*à6ºa/ËÓuâ•—ÆÖõ½IýW°Ÿ0n¸ ã¨Æ²såõiôȵ<” –öVô*W^e‡˜9å#žr¹ÃJ¯ îÍok·É¬“QKyo‹UÕå VBßü€ß’!éCÒ‡¤°8¸Ö!΋Óy±µ3FzÚEÊûyß¿=~Ô!P²²We¯Ê^¥õb†žx'(‚à¶è­èImý,FjJàééSÀœçˆ˜®?yÜW[Ãß7»åyy?ÿzú×Ó¿ž¦ËÚ•WÔÉ_¯¸­%¸-z+z’+¯²FÌœòïù¾Ã«›Ü›-®öÚÕõ} ¸³!VÔ!”†¸dújCü–œ™vfÚ™iò"kû‡õ‹œÔ‹Þ>_2 Bà¯Úæ¿oý}ëï[Ô! á§ÃO‡p±tÄ>vg+âÛ¢·¢'å=,zž Ê‘Ð/¡_B?ùº¥N½v3ûÜCëµiQÏýÁÚ®”ólòlòl¨Ã²våÕÿý5Ýíûß½=É•WY#fNmóê½a}¢ü ¹O[ô6r•g†õYy‹•u¥!~û}uAü¶Ûò¶åmÓo¤ßH¿‘¼ì®mïaé;„S{QÚ-'Bì\îÉûvÄÈ#GŒ¤åH·O·O·—­®­í›øin§&7!Ä}ÍövjbpÑ“ò=OåÈnŸÝ>»½¶4f,5>tœ·(m½¬®í†×÷íÒÅK/]L–Í+/«.Ž>†i“#Îuw!Ä}Í6âüQwÑ“\y•Mb•þlsŸ&öÆÜ§-Jûðn?»­Ÿ­oŸÝ>»=¥!~;}_ð[ooo'/Á~’Sl-Nð¯×æT°8ÈNÛá}ùúåë—¯S{€‚œÑœÑœqøÐáC‡ x0þ¤¸‡^ÎD¹¯×ŠÞ“÷ªèmÑó PšèØèØèXùÆÚ ë‘áÛq_¯mÔbI§ƒg´])g9e9e9Q{eùÊ+,ocK‡¢Ü×kEïqåU–‰YTë»­ïNÿ3ܳ}½vvºO´}“"œØèØèXjÊDüæúð[õlß³}Ïöi+ÊóͺøzWå4ÿªmÜàúÎÉû³C…:T êe:¼ëð®Ã»äGnÝV' ój¦t ºH «{+zLôž¼WEoSu@™î¶½Ûön[mWÊ Ÿë°w8î«¶u|ÚýZÀ¯JOôšè5Ñ‹ªãÊËìrÍ»Uã'-?×Üí6®î­è1Ñ{\yĄòJ˜`Þðcë{ܳ}ÕöÖÙÞõšh[ˆÕUe".^„¾Å…¸üùCä‘òm0ÊüŠqzÞì°+A8åëÒÞ¹Üûv“½ÚøKw.ݹt‡zÊIã¤qrí0Úa´üøýaPtdƒb]Ý[Ñcüúh‡Ñ£EoSt@ɦ.ºtêRùz¦FCß‹-·èêÞz¼7ó–p­ï§yoä=^“Ä•×?:ùÏ5²¶"ÖÕ½=Æ•1£j›o/ï:Ä;…û·º·=Î9ô·ú]Þ“b…@½AÉ€‹ŽÐ÷M ./½^z½ô2ìmØÛ°·¼dW :ë¼…Sþ´Âûûnb;Õ²º¼‡­¶zØj* P¾S‹O->µXÛ)ü¦óî>~ w oE/iëCÑÃTP¾GY²ei[ÕÔûÊnñ2ÂÝÂ[ï¥+¾;áhèhéRûм^[xmá5*+/¹Ñ›%§„»…·¢—¸ò‚œ˜]åUa»Þ4Û¨ÊËõavA_s/·ðv«6 <Ü´_b…@¥AÉ€‹nç–[vn!ô-^À%&åFʔڊøÂ.¿{àô¯­]±Ùß jë½Ï<{ðŒJ‹—^xY~,7Nq©lf—ÛõÄޠͽòVôŒè%yï‰^¥º@鲭鶦ۚò8è×këEtþ틆ÚzïÅ ƒ^ ¢Æ¸ò’×FP·VÆ“üÒ׸¥ôðØg¿ô5n©¢—¸ò‚œ˜]µÍ½3¶zw±›Å½Ü×{ì³XPcP>à¢Ëm—Û.·¡oñ".a#]GºŽtÕúûM£úõð`)¿Móì´¯±µ¶Kx‘ð"áu”.?<üð°¶ãzòçácmþ î•·¢g´õ›èUª ”2Û4Û4ÛBf…Ì ™%_á·­{Ïa¶wÇåÉÇ«÷æoë·Žø}±»ÖÏ&2:eDq¡ð+¯ào¾ð¨Ùˆ¸WÞŠžáÊ …3­¶:Ù—Ú¦¯‡1÷uó·9ͬrs;habò­¼ÇÄJ@¬ ¨.(pqÉÿ9`Bߢ#.aÙò‡eÓ·Ó·Ó/àó[þWk¾¬6+GoÀ‚ –7{þì7\ÛB*4'4'4‡ŠJ¯ä~Éý’ûi;Æ×»L3m0ŒÐW´¢7´õ•èI* ”^wöÞÙ{g¯¶ÕŽ•K°Q‡}>5âüR[ýºN»§­¯fÙͲ›eGEA÷+¯Nqs÷[ûúþóÆß¸¹û­ý¸ò‚îĬ«­fÒ¿ï¼²ñvîñjz†;× 7¯ß°¶£¶¾+* ¥0”‰X.>¹øäâm'¼nåì?·òÌm_6—w?ìý¢‰¤­Ìv˜í0Ûñ4çiÎS` Ô‹©S=¦ºÖOù÷Ÿ?ÄmPYŽ~EhëÑ{TP‡£ýøèÇÚV>u¬ÛÍíÆÇ'neꉲýz¬ž}zÛ#­Ÿæ¬\1¸bnFnFnµ„W½òêqoé^Û.e9ú=À•^•˜uÅ ¬­~2¶v[åSVß œïyÕ:M[ÿˆ³?µ„Ò…ÊD¬ ‰û÷'î×vòëòÐî‘e΋‰º}Xv–7‡ô ðÛSøK¿¯¯½¾öúZêP Ƨ猞3zÎÐvÔÿè7×Ñu\Y‹~Å^këÑc¢÷(" &qmãÚÆµÕ¶ ªÚ6¬_ŸV>OyT†>õ»}ƹÍÕ ¿R~hùÐò¡%õƒ¢\yu{´(ØæÇ²ýнæÊ E!fàÂgé ǺœôXvîñæÝ7¸Â¸$O{ëPm}"ÎøÔJ#`(°â¬ Z´&Hۉл®åE3¿,ß¾³üw©{Yp¾\—:Þå _*Í8›q–ßeTè…é Ó¦¾»|wùîÒ6,™<ö¬c¦æÏÔ]Á~ª~ÿLÝì'öT[?ˆ^=F嵊>}>ú¼¶Q ß´–ëŸXöQòeuG¿ r&Ô\þWÊ™f~˜ù!5ƒâºòj[gÒ¦:G&>ؽj£ßÑç»7{Ê•Š‹˜ Ÿ±“Ç·_Ѱ’ºïñ>º8p^½­~ÓÖâ,OÍ ô"†2+TlZlZlZáK„_kw6hÜ]}Ë‚­kB"]- ß÷Ôš©5SkR'€º=íõ´×Ó^^½&zMÔ6ôk×6·–Y¶eÒÅÀ 5E¿bÄÞiÛwÑ3¢—¨ r™šLMæÄ÷'¾?ñ}m«£ª/ÌCk<÷ŒŽùî§Yê‹~m¿êÛzÜ௔3Â3Â3Â)¼‰+/Ï&=«žÐôôH×_ÔýŠ={Ç•Þ13>{/m`㤯¾{¼4ëÑÉ7¦v¨ñjƒõÚö]œÙÅYžjAéE e"V´uqëâÖžDX¸­Išc“¼AaiAwJï‚à¡Mßëþwûmwú¶–Sáû{ÆéŒÓ'j(;²‡gÏÞÒ«¥WK¯Âç‡_ή™á•UÚ£_±…ï©è Ñ3T(Cr5¹šÜÙÞ³½g{¾^røuÈõú¥=ômó͕ݒٳǾ¿×:]ët­‚·så5pÁ=ÇÆ¥=ú{Á•Þ1K^oÍöÖ±5ϸ¹©W¿c¥=úßõé.﾿âl.ÎìTJ;`(p)pÐü ùAóÂO™–Ãl«J¿Üí(y=-] ‚-cBþçr±ð½Ó¿¬YÿòµÐk¡×B© lzùøåã—GyŒòåQøŒ1ìE×Ì:O³šœè¿§´„¾bkÅ–¾w¢DoP ,Ûà¼Áyƒsák'“»v/]«zΪ´eKi }½óVžKI¶}Þïzä¨Â÷Îí‘Û#·G÷’ï%ßK¦ðö¯¼|š÷:Rã«qåS»ì,-¡¯ØZ±å\yáí3¶˜½ ¯ÀØkVN?äm »ô¢´Ü㽘Òu®÷e#+W³Ñ…ï8ƒSP`(p©q¥Ã•W:˜G™G™G~mu¸^˜…×¹ysßRÚR wwؼ #v·5óˆ®nkð°ê…ïK÷ Ý7tßðdù“åO–S„øsñçâÏéé`ΖíGd¹¸Ð×ýàpÿ±…ºì‹ØkF ¿Ó N/8½@—Õ”åè€Cív{ÚϸÃBq¡oƒåŽÍr¼0ÜdŽ‹.û2Öj¬ÕX«œQ9£rFQP•WHNÄúÚ}‘²Ýe‡ÒB_±Ub ¹ò‚ˆÙ[ÌäºÔäVMÈ W—óô úDiwz¯Žî¾Ñ·nÿ&N'jµÑe_ÄY›€úC™€K™ç<ÿãùQs¢æDÍÑå´êÞÐ"Ødëž+­[¸-©¥@΄û‚üWÜ Zå<_Og›&nš¸i¢æ‘æ‘æã@.ãBÆ…Œ ÁÁÁºÌ*ûtsªûñÅS[vx_)©ÐWüt±%ºl³Ø;±§Œ8€6õë=ÖPm@µÕtYeU›àjì3­Áã –]+©Ð·QâÒ„Ã ¬Ÿö˜9*X÷+åƒå–;È(úÊË'¢·~éÃ’w_snQR¡¯øébK¸ò‚’‰Y]÷³ÀüA~š?Êê7; }IÝéMnÛ>¦á{!#ê:T§Ë6‹³³8S3âP+`(— ¥XÚø´ñiãm]l]l]t_(tùÙîOËÇ;7µªæ–ÕwÿÑbþͯ©Ý·ùÚ¬™Ò´SýØÆí,g™é¾iz=£zFõŒº;þv<ã @¹q¹q¹qquâêÄÕÑ{E“»…O°¹þË‘5‘^wßÈÛ|¬‰ôº+~Ê«n›Ø#±wŒ2€î’““_uõee”Ü¡}ýŸÆV[’Öø—eÆÉYÅ÷zT™õÁ–Õ¶1};fèo9¼Ž³îÛ6¦ù˜æcš?6ylòØ„ñEi¼ò ^øE£šÎÞRÞ±áy›ïì-功•J#1ËÙ^÷굫lfad»41à3'»‹ûºÎð¾T¼÷xŸM ]¸ðÀŶõ<æ†-ª_¡ö«^zâŒÌø¢, †2—zy‘y‘y‘   zEà[Ñj®Ù或î×ê-[–xÙÙì§ß[ukqè@ÛK9Ò¤vxưmó§GèÖ„)®5.m’âØxÐ/ ÖN±?ovÌhÞëý\ïlïlïì³ïœ}çì;Œ&€¢xð÷ƒ¿üeeeY”ù°Ó{ͺY¶›þíЮv!?ÄGoiÐvOÚ·×Ý©Û׳…hÅŸˆÿ+þ¦ø®¢ü\±åb/M€¢Èé–Ó-§ÛšUkV­YU”šÙÏõo4ÚQ§y»ç¡]ì-â'×q¶Õä›ù ¬ÇÍø.¾Á”ñ?|_­~‹ˆ³‹m›}Ñvæ-ëG=&Žò°ðK»”ª)ÕN×ðx½ŸÛav‡Ùfgü”ñSÆOŒ&ÔzåÕ OÈój“>=2¬VÃN½æ6·¶ëýѲp»JýË­ù̾—hÅŸˆÿ+þ¦ø.®¼ Vbæg׫ðZCƒ †õïät¶V‡ùü\‚7Wi>ÍeƾÄ6Ý=ªJŸ´Ûå9é°[» žF;/µ²w;w%¸[ýw'tnheÓ4½vºy|QŽ/qægaFe0”‰XU^f¾Ì|™™h‘h‘háîî®§HvØy`šošoš¯æ¥æ¥æ%c xݯu¿ÖýZ1 bÄ,ÐS0±…bk5€7áy»çíž·Û||óñÍÇMÓMÓMÓ•¹2¼nðºÁë2b2b2b5påÅ• Îâì Ì#KœUÅVœm5”MÀP&`•»Zþjù«ågÚÏ´Ÿi_RKÇ>Ž}û¬^½zõêÕ÷œï9ßsf\¼MyýóúçõOÞ—¼/y_Ϙž1=cJj>?]l‰Ø*Fàí»PãB 5Æo¿}üö’ZúNòä;ië•­W¶^y<þñøÇãpåÅ• 8Sˆ³†8ƒ”Ôñ%ΞâLʸ0”‰¸Ì¹qèÆ¡‡~<ÿãùÏŒ30Æô©éSÓ§Åô–w,ïX~|æøÌñ™‡Æsh̃6>ØHŸPš—O^>yù$ýPú¡ôCK«,­²´JËoZ~Óò›âºÿšø—ÅO?‘žP¦kó¯Í¿6ÃÓ O7<ííÔÛ©·“^½:zuо2ô<ãyÆóLt|t|tüñrÇË/÷xýãõ×ÓçàÊ‹+/ (ÄÙDœYÄYFœqŠáЪ£WG¯Ž8Š3£8KÒçPºã?3>f|Ì8)<)<)<%,%,%Œ>PÖÜ9vçØcÉGþß—øz ¬ÉÍÍ=ºöèÚ£k“~Oú=é÷4‹4‹4 zàÊ P2q¶g.qg4zÔŠT‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚P‰ÜØÜØÜØ£k®=º6é÷¤ß“~O³H³H³ g”5W\®¸\qInÜ:¹õQ×£®G]ŸŽ{:îé8z(º”°”°”°¤ð¤ð¤ðcÆÇŒÓ'@qÇ”8¾Ä±FŸ^0 h׿_›mþ†§žnxÚÛ©·So'½:zuôêè™çÏ3žg¢ã£ã£ã—;^îx¹Ç민ž> 4ÏÆ<ólÌ)‹S§,æUšWi^¥€Ž:ê“Ï¿þüëÏ¿Žû)Ÿ.ݼtóÒMÍVÍVÍVzeÁƒ6>ØxhÌ¡1‡ÆŒÏŸ9>Ó±¼cyÇòE?²LŸš>5}:0f`ÌÀ˜ÏÿxþÇó7Ý8tã}޲CÔ¼¨q,ˆã¢èÇ—8NÅ1+Ž_q,ÓçP 5.Ô¸PcüöñÛÇo×+!¾“|'ùNÚzeë•­W<þñxÆÀÛô<ùyòóäDïDïDïÖ7Zßh}£¤æÃ¡†N:áT÷SÝOug\ ÷œï9ßs^½zõêÕ«û8öqìSRÇ×Lû™ö3í¯–¿ZþjyÆê êYÔvIYâ¸Ǹ8ÞÀ›#?5kѬE³ô J@ ”˜çíž·{ÞnóñÍÇ77M7M7M×S¤Á민.#&#&#†Qð&܈¾}#zÂŽ ;&ìÐS°+W>ðdÀ“ŒJ—š—š—i¾i¾i¾vØy 2,§p§p§ðD‹D‹D‹—™/3_f2t(‡WæËÌ—™¢nE +óøǾ˜ÄœÀØŠ 0JF ¼U9Ýrºåt[³jͪ5«Šr+§izítóø ZYçÄ] îVÿÝ—ZÙ»<ìÖ®‚§‘ôI»]ž“ö%¶éîQus•æÓ\fÌïäçêÜ¿“ÓÙZj 56öz?·Ãì³;ÌÎø)ã§ŒŸMEqsÛÍm7· Z:hé ¥¯ù€Ù3ÆÛ«ö8Ô2ÎêüœrÃÏÚ‡Ä÷~ªÁýÄO}è~èÈâØƒž¡‡7ÅV𬿻ó‚Dw£5NRÿÇ©U¦Û·ì?È"¶(óð‚ j,¨ñtêÓ©O§2šPš³ïœ}çì;ÞÙÞÙÞÙ¯Wá†ßY}]÷[«ÝMw~Þ&©·AÄlÇ”awf?¯ÿÍWÛ–4k°tüýïG7Ð×ä»–NÇG~<ÿ»®¡&Ë×¶lݪ÷ Ójöó\ÏåøJˆHˆHˆÈ‹Ì‹Ì‹d4¡¢&E}¥ÂëFx8Oor"ô’åêö;¢­ê~ßcãÒ¦¶ý:®¶·¯×ÿ‡µ_Ù/é[-î»Ýܿ͵ÑúÈD¿:!Îva±®zŠõ«_ïçŠ9AÌŒ& è€P2`à-IJLJLJ|ÕÛ4a‹êW¨­wàbÛzsŸM ]¸P£ .®öâ¾®3¼/-M øÌÉή²™…‘­îÛ6¦ù˜æcš?6ylòØ„ñ ‹çŸ|>pŽýû9¯ðxLÓ*ÆæULçvqÙ~ɯ‘5®Ñ¤¦W›g‘Ò>è·£³—_h2êhϵõ>~Õ¹zÇ•Wv\ÑìÓìÓìc”QRnÇߎ¿ß3ªgTÏ(Ý«×d¡íí?Ú¯h5ÕÃÓiîô6>>qq©©ÅÕ6ò_âup£³Õ¨:ß ¶á= ùLÝ·ÍÖÅÖÅÖ%m|Úø4^H&êPÔ¤î5ì²³UójzÎø.Åvî8‹”,—ƒ“'Ÿ?ïî^\í—öÇÕwëxeÖÆzñuì]o›ê¾mb®óã x=À(0ð=Ö{¬÷Xo@µÕTÓåFLȈºÕÇ%·mÓð½â zuoeõ›Ð~þ ¿FÍu¿…t°ÜÁr™OhujÄ©§Fè>«Lú3ÜÒæøÍ~»gùí*Þ¸W÷öÔuõì9¡•{ÍwušÃ;‡té|k×­]·v1âxKiimš¸i⦉º_v‡|µÂ»×òǃŠ7îÕ½u>8ÆðÛ{Æaõ<îè²ÍQs¢æDÍyþÇó?žÿÁ°ãíõ&jO—*­ètÎȪwåe_ÚéoЫ{ÕíWc·‰Ÿm™v¡îÝç1‡ˆù„qèŽ%#°ÞˆÓ N/8½@—.ý›8¨Õæêèî}ë–Tè«­}1o@ß O¶jBV¸êôY‡±Vc­ÆZåŒÊ•3Š ùRó¥æË—\ZpI§7ì~ÕÓyÂS½¤÷+”Tè«­½õîžSM Æ6ê[Óú:ýZŒÁAƒƒ”Þœ'ËŸ,²¼û†îºo(¼«,2)oÖ¦þ–±–ìö>¹Ò/¥|I…¾ÚZ÷Àé6ö2·r7mR½ð}122ºÒáJ‡+¨¼9¢ÆD½^“Ùf=ð¹ÓŠ’ }µµ“§?rû­oϸH»t£6fÏ«Ô)|_Ä|"æj  `”Œ(fœ78op.üöŠ‘•«Ùè‹)]çz_VZè«­ÍÛv7èEìµ@+§ ß;·GnÜÝK¾—|/™zʦ§Ÿ>~úøs½Ïõ>ÿ tZŸ!ƒí>xnq4ï{lصÙwKoè«­uûeÚÆ¾ï±i±i±iÔ ^¨ŸÂklÈâí¼Koè«­íæøí›/ ßw1ÿP'9`”Œ(’èóÑç£Ïk½Ý¡·Õoχ.œ§¾è7›<¾ýІ• ¿y”ùa懙R3€ú<4hþÐÜh±Ñb£ÅÚf€m‹çÄ»vPSè+osלxt Ò»ÿxëD­ï}o׿]ÿvyšÏˆ¹ˆšäG €’¯)®m\Û¸¶Ún‘ŒKò´·Í»þnpuG¿ùÛ ÇºœôXøÍ£‡–-ZR?€:¼yò"ÄÓÞÓÞÓ^ÛQt÷ò UýÊÛ%=Çîrü][ŸL^8yáä…Ô w}íõµ××~Vm8å›=»¿Qwôû¯GC;-9iñ•÷„æë´õIâþÄý‰û©NÔ‰¶*r9Ö*¼Ú³‰¤ù»uTwô›¿"õiЪð9GÌKÔ@ @É€Wvôã£ýXÛm‘ÈxÏ«ÖišÜð°à ²ýæo3¶v[å£õbÁƒ+WÌÍÈÍÈå3@©7øÂà ƒ/h}hdĪí^ae-úÍßÆŽŽ¬é£­6ý¶é·M¿QE{šó4çiŽÙ³f;´ÕWè©ûìËNôû¯xÏ Í‰m[|j†h}4ôÅ'Ÿ\|B-ANÔ†¶Êqý´uˆy­I^éß¹(;Ñoþ6âå1—´õ˜—ÄE-€P2`àÜÙ{gï½Únˆ„›×oXÛQÓ3Ü!¸fÙŒ~ó·éßw^Ùx»¶¾še7Ën–”^ñIñIñIÚŽñC¿íY¡,G¿ùÛY†ÛiÉ/}ré“KŸPQÈ/4'4'4Gë§~ƒç?Ûµ¤lF¿ÿŠC–¯>öÀô‚c¦ÇYy/éÛéÛéÛeË–=ŒŠ‚ êAÔ†¼f¬[xõ4©U/-ÑmHÙŒ~ÿõiàG:5¨¦ms @É€ÝlÓlÓl ™2+d–|ëvÐÂÄäÛœfÖ¹ýæo÷¥¶éëa¬íæÑ)£SF§Œ(. t¹^þzùëåµ×qç&ר_ŽÐ÷_íÚÔ¯ƒôhÓòS«ò«¾£úŽê;rÚä´ÉiCu!áE‹„ÚŽ/·•Ñ£×!úý×»W/xØE[té:Ò•º‚ êA[µŒÿßÏó]+ýæo‡ÔÝ>×IëJ^ÌWÔ”eÀÅåɆ'žløçÉy›ƒ7oN I I ¡gEA èd[ÓmM·5ÕvûãÖÙÞõš÷jkglõîb7K[ï½ôbЋAÔP ŒÕŒÕŒõ3ð3ð3Ëý´¯^kˆ&75…з öïléQà»ÚfÂyóçRbeÙƒgž=x¦­B"™ö=q¯¶Ö}ÏŒ»›=µõ^Ê”)7¨±²LÔ€¶ ùâò®VNâ^mm§‡1M­»jë=1wQcP6—ÞÛ{oï]ÀSôƒEA ü‡GY²ei»å±¿U›|ê÷?Ú—ëÃ삾¶]ošmTEÞ‡ ¯-¼¶ð•(_´„i Ӵ͇OÂŽì XOÐ[xû«&¾nc­oάœY9³2•V6 [=lõ°Õ|F|_#ë¦k|Å-N=@Ð[xk÷Û€5“ x>aoÃÞ†½_z½ôzéE¥•5bÜE Èkã³;Óýë½GÄûíØó)î.õ…¸U+ s•eð›ëIÂ`@ÑÿaêÒ©K§.•/¼zœsèoõ;á®îíÅá]‡x§h[ÈÞyo佑Ô LÏÝž»=wÓvüJ+¿Ÿë¹ŠpW÷ö볃]l7Ê{²ëÝ®w»Þ¥ÞÊšKw.ݹtGÛñåÕcá }îêôVà앇R6m­}ßö¹¼'ˆü!ò‡Hê­¬ã.¯Ëû†Ó'9·Ê-‡ˆW—6â¯c.Z_!æ1ê Êàâ²§ÖžZ{jL3˜f00P\€­î¶½Ûön[û\¼íó†[ß“÷çD¯‰^ù\ P«G­µz”üÈíàl[c+î«¶O&-tÖv~¹Xîb¹‹¬ÐÊ:TèPA^ öÚLú™X÷•6ýÞÆÚŽ¯gûží{¶ª+ ÄXk}ì³QB–Ó~bÝWm;„Î0­çPÀz B‡ *PuP֯ܣ¹GsŠ ·­¢c£c£cåK«Ùé>ÑöMˆr_¯ÍÚÖw§ÿmËÖ,§,§,'jPŽ››mÇìÕȵ}­ t_¯Ý²o¶‡Ëmy¯vËì–Ù-“Ú+ ._¿|ýòumÇ—wËåŽeè¾^kÙ=àËvå½oooGí•b¬å5à9¦ã¢êÓ‰r_¯rHKrûBÛ¬%æ4jÊà7‡0PtÀ@²Ûg·Ïn¯m9õðn?»¢Ü¢´³Í}šØËûvé⥋—.¦åض7lo˜ühíûi[‡š— q‹Òæ<:¾"¨›ÖçLDÞŠ¼ÅãjUnÄÈ#GŒ”¾ã²aÝf7!Ä-Jëãû“¡¼oõé7Òo”·-o[Þ6*P­ÄøŠ±–×ÀÈJ¾¯ßŸ(·(m×£ß6´i)ï[1§QPv¿„Á€×C  ¡_B¿„~òÅSä*Ï ë³Ä·Eoï ëåo¨m‘šg“g“gCJà5Êk”W¾˜½åŒ÷_„¸EoWWžbP¿©¼‡¿ÙúÍÖo¶Rjõ÷­¿oý}Këgß]vàèqBÜ¢·æ‰š€yò>3íÌ´3Ó¨Cµã+w§QÁ—ͦß½8òìd·úÚf01¿Q‡P¿}„ÁÝð‰ô‰ô‰”/˜®]íQß7‚ø¶¸Úžï;Œ±º)ïç_Oÿzú×ÓÔ!P²nÅÞŠ½UÀcðÍë-0º¨ÉM=A|[í£~‡ë¸hý…˜ëy×óxœ¦ íñÛã·ÇO>âõ†tNø¢"Ámqµ®ïO°ª±¼Ÿ‡¤I’Nª•_ù¸‡Ûo\æD|[\í§Ù£jÕê.ïg1¿Q‡P—,Â`@á€Éê•Õ+«—|yd·É¬“QKåGªß&6ãXQló¥–]zç(ykS.wXé$ïí ã&Œ›0ŽjJÖÚ–k[®-à›ËÏÌp‰VN€zøÏXWOŸÐ•íSk­pªnÝÕØÀdºÑ6ýÖÓj¹.nÙÐ÷võ?f ÷±·Ìž–lØM™1p÷-YÍ,à}о—}/ûRêÓ&©MR›¤ÞN3þ§þJˆN§.ÓK¾i]·ëËá/̸·nÒ×p¢•sݺúW “‡˜|hãè<Êâ¶Ï•CüiòýfeÀÞKW|wÂQÛͯœØœØœXªQMĘjñ¨Ûé•ݶ”‚Ï×ö8ÛÕͶ^¨ç/ÆçÅ–gϧν”¶#}<¬_À3BÄüF5@Y@¬„Á9`à_###äK¢¸“ÁóW ¯¬×øSËéf•òo¹’·ùEä€nA´-C5½4½4½¨I ¤øüáó‡Ïòcó~ÄCÿ6%šVJ­¬7üN·¸ºöz¯èç5½R•±Šíë"ßÚ%O–r†á¦ZFkÞ´îªû‘eÙ-`X»v>zq•S++-®½¸MRßÉòm>—}.û\65©&bLåcíÿ ,ÃêýÒòÉZŸý½gÖX!ß Åmmßó+Ýí«Ž6Ôè7o­˜ë¨IP7`e" ÀÀ¿ Š?(^¾ º~ªÇmß¿”ýNÝ×hŠíbTÅj¹[=ûP«&ò-¿=óöÌÛ3©Iàí{6êÙ¨g|¦Çú§Z ã”—Æ}ù¥½”ÛÕýÃè‡ïzÿÔ©ÍI«5G½+><³ÏÉv;ª76ëYµbþ¿ŸõðÐ{þW”?±<2)`±¼Ï½êzÕõªKMªIzTzTzTèì4´G ^öÚÊÈ”v¦ç¯{œùg³bõV ²:ÕìNî ‡˜O×s{wêÔu¾ÎãFû.¸`éè¹í"=½Uz?çßÅ=ºí䎫‡Éû|‘Þ"½EzÔ¤šˆ1-àáÏmúÓ±¼ò£ßÎçͶ^ªí¶¬B=gä Z^ò­s5 êF¬|„ÁP–ÿ'U“ªIÕ¶ôÉÕ„ÅUB\zk`ïrMì7|ñ©Cƒ]QϽÌm4¸Z½‚ñ}­Ÿ£U|¼u[È$W+ù–ô8èqЃÂÞ¾‹Ž/ðÐÔ™­¿Øi·µdƒÒgÉ7X=´øŸ™Ø*·SLæ‹@÷ÿæ½ÿÿw‰?Ïÿ]Úþfɶ¶.µ§>“÷ü‹1/ƼCeªÃ²ŠË*.«(e×溺‰+٠ԩ߈³1ÿúe2‡ÐÁ3§}&þ¯<ÜRgYû¼›Ä ¨ý±Í¯J €׉}O ”÷y@¥€J•¨I5c*ëÈÖ'“\Ç*9úýÂ}g=§c†åL¶è'”®xàª-¶Žü*§˜ë¨IP7àÒ…0Ê`àO&?™ü¤€Ç¶ýÎ:ÂâŠrâÒU‚÷Ô÷Òý‘ŒÊ€¯Nëþ£¯­|Ë£ûF÷îKeoߦß7ý¾éwùQylÙŠ- g”lDºgȷߺ–«¶Ÿâz^—@7ÿwnؼÚ3¥ÀQõH6} x Åëw®ß¡2Õ¡ÓÊN+;­”r£%Kƒ¿_²AiÝŽ›\&¶Ç Ùâ¯Z®º<ÒÙ3.æÁOÏÿïÿÿïÓÀJ‹«|fìfÚ´€_ò;™{2÷$•YêohžÌ=™{R>¾†[L/ë?PrôYãä0×5ßs 5úäŸ3Ô‚A{­æ—–xÜß{¹~ ßZ1×Q™ nÀ¥xíD e0ðŒÏ2>ËøL¾¸ùö& ®*'.ýuWçÆçUðÝeÿBÞ–ÆøÙÀÐE1\673nfLeo_݈a<.õ¶ßÞcMº•lDú½ä§ý¯÷0çŸ}W·ôZ(¾«Z“U–)ísÀ»?Y0Ñý=yÏK•¥ÊRe*S%·ÉzëõÖë-eŸjq R—lDj•×ìÛN «KV‰=½mš7Ô%Êm¸kA·=üâ‚Ò`+‹ ³úÉ·3Ë;Ë;Ë›Ê,íÄ8ð ýÏ:Ÿ·¨§äØÃü³†Õ ÄÖÚ ÷½hêµó×·e¥%žlwÞ×Ý´€;Ľõzëõ¦2@å+[`U µ"þqèþ¡û‡ xò_ÚÖô˜¥üU´¥1Öœ ïì­ýÌÞ¶€´€´€´D¼üØ¢ Ê%‘î8>ÏÆ­ÒÀ~÷×þjØG]­ëÔ=ÄÍÿéa—3öMj+-¾hº¥¶÷NyÏ/_³|Íò5T¦Zo“™uXâ^Wiq©î­m»>çÆžÎÿ¹aeÀvôÿ$2^Þÿ—N^:y‰O—zbåãÛîÚÔíu;*3:m»xòˆ:‰í4ë[Ó°ê¤1Í“š4øªt=Z´õšy.1þ…•<°²%.íƒ@M€¬É\“¹&S¾ˆ¹pºËYïÁÀoºõ®j™fÖ˜ÛF€58jp´€ãQJý>ØSiMÖ=ÄýìPÐÉÿ|øË_z˜Ö]ª´øžû~ÿ òžßz|ëñ­©LµÞ&«ÙíÓ]F(?èõè6+kë×´)ÖNq¶eöMÏšöŸÖí¼5ÿ¾Ø=ð|Ò0eÀõ;G¼\ÜKÞÿGß?úþÑ÷©ÌÒNŒ£||ûÌYYÉ.Fiqix¯ÏÒ«´ªš£wJ?¼Ê@½)ýO¬Ýa¿:Ð[º`ïðžž5YÉ+[`5! €ÒŽøÇœUsVÍY%_¸ÜÓ+Ø/‘øM·=Û;|kõœÛF€2/ãm×ÕÎ0ª¢´èW—6×þÄ¢ Õã>ë›kÝâŸOY 4±©2 sçÎá~æJÛÚ§Ië ¸éßëë^_÷úšÊTëñeý~×…ÃG)?6ü½ægõVÈ·_ŠAœá‡ŠƒB¿¾¤äíw«1õu»åÛ¿#`GÀŽ*³´ã(ßAmëë¸Y9AéW9ÇŸ¸ô¨nP÷¸Á±…-ÍÆ~_;\ñ–®8dؘ„Z—XÉ+[`µ" €Ò¨Ä`= ”¸¿³ÏsÿÀoº1ÕuoÝÖÔ L~’»m5ýÒýŠ7þœöœ[í°Ø £u†ús½·4ÑãŒÒ>û+Úœÿ»dM½•5vuûŸ`Wzàüêß{zi¢B?Ál:«ú–#Ô[Y3ìäî‡Î­•‘Núþ\°Û-§{M·™ýó¹ù+Zô­¶pråó•Ü wKWÜÞùëÆu‡Qo@Ηÿ.ÿ]Ä0@ (NÖ³¾gü¯¿é6⩇e=‰z”©™gãr懔ú^j¹ÕÐ;§»g‹¡Vóo¿ÇBÇ—&y¿8¯©è•ús£·ÿe£ã¿ ¦ÞÊûúa{'‡—–7þz½¢Óñß<óæWÝ9ÜyÃè3ß~kÞÀ½u“¾ù÷È¥Á„S˯+.Þ?§æÝ¨·²fDÿÄÎç•‘~ª÷eL­¶ÊâªÍÃrã>KmåòÏ/$•ö¸ÃÑ‡êµ¤Þ€ÜÆCm @ÉŸ~ÑåX¯@Í´˜!1vz† ãô?ÛlYÙüÛª›çUédÿâyøÑ5'þoVTn€Í'€Ë¦Òò `m­Ø‹êÍî :™¿ø0”@ Ÿ»·ÑÉa«ÞSý8½îU] gë›Öß¶Ñ1Ql¡¶ï’ï Ÿ¥Ÿ€2'•ç‹/e} õê=Ô[¾LáÀ%û`*“/¾Þþ—üHTæ;€÷ÙzƧÛ‡)&óÅvVM«ú®Þí‰Æ¡lêf=<ôžÿ凾º¼¸EX‹°aT¦Z¯Òò`]b`ÁÀ«z}KÒb`mïž9zæè™£©ÌÒþ%ÆQ>¾JxðçWæ ´.W¼7R#œ’Ï6HVþ;€©L¾øâ‹¯²¶²õòöòöò¦gÔ÷u¤Ó‘NG:ͽ<÷òÜËUë†W ×eÅÒðƒ†4ü€w@™ €¥Y“¹&sM¦|±rát—³Þƒ €ßtë]Õ2ͬqAÛàm38jpÔàhÇ£”ú}°§‚Ò«vDùúÛ†ÕÞlôÞ?uXíÍFbEïÅß)]ѯhï¹ï7ñ¯ ïùñ­Ç·ßšÊTùøÖìöé.#J6õZ±È}•}.ùɀ瓆éþ/¸6›Ühõ?€­rÌdeµjJ €ëwŽx¹¸—¼ÿ¾ôý£ïS™¥Gùøö™³²’]Œú`¥}&Ø;¼§g GVòÀʶY‹f-šµ gÔ!÷hîÑÜ£{jí©µ§–Á4ƒiÓtYŸoÞ¼™Ð”€øÇ¡û‡îº/_¸ø¥mMYÀo°=Þ%Ø[Û‘ÊÞ¾€´€´€4ùñøbù±EA••”6þ´A¼Y%±U‡6¯öì¾Åþ“þKc蛿½hº¥¶÷NyÏ/_³|Íò5T¦Zo“™uXâ^WiŸâµ2 ÚÓ!P÷ïµû¤¿Eä?X®öƒëR_G¥Àvôÿ$2^Þÿ—N^:yé$•YÚ‰q”o»kS·×íX²áèø†?_qµþΞO{éÞæß‹Þ—¯³k.ÿ¿Ê €ë5ó\bü +y`eK\Úú€šÿÈø,㳌Ï䋘oßiÒÀá*ð›kŸ ]SÀeƒq3ãfÆT&ðöE ‹QÀ›ünûí=Ö¤[ÉF¤j.ñ÷è'¶Gÿ½Ÿõ‚/[þØÜgEi~E»û“Ýß“÷¼TYª,U¦2Ur›¬·^o½ÞòQö©× µ±r`½Xý£U‚\b&>^ÙµðïjØå]· >1_aé/¾µ®u‡„ðkJ €­,‚Îvè'ïù,ï,ï,o*³´ãXÀƒ(?ë|Þ¢ž’ßž«Ë;€Eè«Ð­µ;ïënZÀàÞz½õzS™ ò•-°*ú€Zÿx2ùÉä'“å š¶ßYGX\!~síÕiÝôµ•oytßè¾Ñ}©LàíÛôû¦ß7ý.?*-[±¥áŒ’Hûok_©Ö?o²zhñ?3ñߋ玭ê¸ùU[¥ÀQõH6}å=ýÎõ;×ïP™êÐie§•VÊG¹Ñ’¥Á‡ß/ÙˆÔýÌ̆›¿×¿j˜l<$ÿ¶Õú¥Õ§½Z;-ø²ß<ñ¨gg‹Qfßô¬Û±cÓËò?ðY¼ýWè,ð›h·n ™äj%ßòƒ=zP˜ÀÛwÑñ¢ãÅÞä7³õ;í¶–lDê—ëÞ©šEq½=Qi°­Kí)†Ï xøö˜c^Œ¡2ÕaYÅe—U”²ë÷SÖÄ)çAÐU–šT2ë©ûÑdjaëzÅÝdÚÃøx¥}ö·qØ÷¤@ù6T ¨P‰šT1¦ò±Žl}2Éu,ð›h®ÚbëØDÞçb®£&@Ý€KB_(k€?(~P~ªÇmß¿€ßDÛ­ž}¨U·nϼ=óöLjxûžz6êÙ(ùQiýS­N†q%‘ZV6ÿ¶êfõÀO,L X\ÀÃKëzÕõªKMªIzTzTz”|¬ëtvÚC9¡é?sîØ±éÀe&‡íƸ„VmgÖ±zý ]Œ¶_´þÞi·E¢OËí¡ƒgNûÌG/®rje¥E¿¢um;¹ãêk¿Ho‘Þ"ÞQª*bLåÂÿÚô§cyà7Ñ~:gä Z^ò>s5 êF¬|„¾P–ÿ’‘‘!_úÄ îèœWZ? Vò¾ˆÐ-¨‚Ö`¦—¦—¦5 ”Ÿ?|þðùC~lÞ8`èߦ´¿mWií«Ø¾ž!òÞ^òdÉ“%O¨F5yv÷ÙÝgwåc­ÿ…A_ÃÕ>õã¾J]¢´¸ðXW™¡oþ¶öâ6I} xÍǹìsÙ粩I5c*kÿaVï—ÆA+ºí{~¥»}Õцýò>s5 êF¬L„¾ø—¬^Y½²zÉ—Av›Ì:µ,]°òÛ”ËVzÉ{{¸ ã&Œ£’µ¶åÚ–k[ÊÐÍågf¸DÙoÛ}`‹EV3å½}Ù÷²ïe_ªQ}Ú$µIj“$qÏȘñ?õWr˜ZºZï¥+¾;á¨í&WNlNlN,Õ¨&bLµxÔíôÊn[n‹«ésàaýž"æ7ªÊ`å ôÈð‰ô‰ô‰”/Œ®]íQß7‚මڞï;Œ±º)ïç_Oÿzú×ÓÔ!P²nÅÞŠ½UÀmtGóz Œ.jrSOÜGû¨ßáº.Ú.Èó®ç]Ï»N5ªÏ¿=~{ü xôÎ _T$¸-¶‡?¿?iÀªÆò~’>$}H:u¨Vb| x´ýÆeI·ÅöðçìQµju—÷³˜ß¨C( €K¡/ pÀ@ú%ôKè'_$E®ò̰>Kp[ôöÞ°>Qþ†Z›<›<êP¯Q^£¼ ø|ÏÅì-g¼ÿ"¾-z»ºòƒúMå=üÍÖo¶~³• T«¿oý}ëï[Ú΃Þï.;pô8ñmÑ[óDMÀB_€î€d·ÏnŸÝ^Û²éáÝ~v&„¸Eig›û4±7–÷íÒÅK/]Lʱ7loØÞ0ùÑÚ÷Ó¶5/ߥÍyt|EP7mçš[‘·"oERê6b䈑#Fð9ûeúÍnB|[”Ö3<Æ÷§~ÕL¿‘~#ýFyÛò¶åm£ÕJŒ¯ky Œ¬tàûúý q‹Òv=úmC›^!æ4*Êà·ƒÐðz€­¢c£c£ xüéìtŸhû&„¸¯×fmë»ÓÿŒ¶åi–S–S–µ(GŽMŽM޶cöjäŽÚ¾ÖD¹¯×nÙ7ÛÃå¶¼W»evËì–Ií•—¯_¾~ùºÖÏ·\¾áX6Qî뵖ݾl×QÞ«ñvñvñvÔ^Y ƺ€7m鸨útBÜ×k£ҒܾÐ6k‰9Ú€²ƒøÍ!ô0 ÕݶwÛÞm«õ³Yg{×k@ ûªíó†[ß“÷çD¯‰^½¨:@™VZ=ju‚îàl[c+Qî«¶O&-tÖv~¹Xîb¹‹¬ÐÊ:TèPA^ öÚLú™(÷U[÷°é÷6>Ðv|=Û÷lß³}T]Y ÆZ[%|a”å´Ÿ@÷UÛ¡3Lë9°¨Ð¡B‡ T”5ÀÅ‹ÐP¼¸½ü‡©K§.ºT¾ÀêqΡ¿Õﺺ·‡wâ¢mÁzo佑÷xd PÏÝž»=wÓvüJ+¿Ÿë¹ŠXW÷ö볃]l7Ê{²ëÝ®w»Þ¥ÞÊšKw.ݹtGÛñåÕcá }ëêÒzg¯<”²Áhkíû¶Ïå=ùCä‘?ðXõ2GŒ»¼,#ìwNŸtæÜ*·b]]Úˆ¿Ž¸”×6S‰yŒz€²†¸¸úÞ`à?<Êz”õ(KÛ’k«6 <Üw o_®³ úÚv½i¶Qy.¼¶ðÚÂkT | Ó¦%h½}vdoÀzÂÝÂÛ_5ñuÇhëÃÌÊ™•3+SieÓ°ÕÃV[-¯ŠêûY7]ãÓ(nqê"ÞÂ[»ß¬™T@@eØÛ°·aï—^/½^ò¬‘2GŒ»¨ym|vgº½÷wÿ£{>ÅÝ¥þ£·j]å}(æ.* Ê&à7ד„¾€¢#t²­é¶¦Ûšò8è×kglõîb7K[ï½ôbЋAÔP ŒÕŒÕŒõ3ð3ð3Ëý´¯^kˆ&75… · öïléQà»ÚfÂyóçRbeÙƒgž=x¦­B"™ö=¯ÖÇ>ï™qw³§¶ÞK¹‘r#å5V–‰Ðú8èË»Z9izµµÆ4µîª­÷ÄÜE@ÙD\\zoï½½÷vB_@ñ"t³M³M³-dVȬ‚L·ƒ&&ßæ4°>ˆOÿ«Ý—Ú¦¯‡±¶F§ŒN2¢¸€Òåzùëå¯k}dܹÉ5ê—#îýW»6õëà=Ú´üÔê@ŸïÜQ}Gõ9mrÚä´¡ºð"áE mÇ—ÛÊèÑë÷æo­^:ð°‹¶é:Òu¤+uAÔƒ¶jÿ¿Ÿç»V&îÍß©»}®“Ö•¼˜¯¨+(Ë€‹Ë“ O6<Ù@è (^ÀÀ+¸³÷ÎÞ;{µÝ 7¯ß°¶£¦g¸CpM¢ßôï;¯l¼][_Ͳ›e7ËŽŠJ¯ø¤ø¤ø$mÇø¡Çßö¬@ô+ÚY†Û]ÐúÞÄO.}ré* ù…æ„æ„æh«™†ÁóŸíZBôë²|õ±¦3=ÎÊ{IßNßNß.{Xö°ìaTQ¢6ä5cÝ«§Ií¨zi‰nCˆ~G78Ò©A5m³˜£¨(0JF ¼²£ýøèÇÚnˆDÆ{^µNÓ䆇•Íè7ck·U>_k}gIÅàŠÁs3r3r3¨% ´|að…ÁZ£ÍÔˆUÛ½ÂÊrô;:²¦“Ö7þnúmÓo›~£Š ÷4çiÎÓ³f;Ìvh«¯Ð…S÷Ù—ÑèwÏ Í‰m[|j†ŒÓÖ?Ÿ\|rñ µ9QÚ*ÇõÓÖ!æµ&y¥çv¢lF¿/y¸|¤­ļ$æ(j @ €’¯)®m\Û¸¶ÚnŽŒKò´·Í»þnp…²ý^8Öå¤÷@½B=´|hùÐ’úÔáEÈ‹!žöžöžöÚŽú£»—¿hØ¡¬E¿KzŽÝåø»¶>™¼pòÂÉ ©îúÚëk¯¯-ü¬ÚpÊ7{vS†¢_§å!Ç"-¾òžÐ|¶>IÜŸ¸?q?õƒÂ‰:ÑVE.ÇZ…W{6ñ4·ŽeèS¿)RŸ­ ŸsļDý`”Œ(’èóÑç£Ïk»EÒã„Co«ßž ]8OÝÑoòøö+V*ü†Q懙f~HÍêóÐü¡ùCs£ÅF‹k›¶-žïªò8w͉ÇA"½û·NÔÖýÛõo׿]ž&O“Gá@'g3ÎfœÍ(ü ëÞeú‘»Uþ®_÷%UF˜ì·äò¹¶~X´&hM5݉šÑVQuæ»}gÜh¬&e¯K‚º£ß¡Oœ~,|žs5È%#Š&S“©ÉœøþÄ÷'¾¯ívIíPãÕëÿhÖ£“oŒú¢ß¥Mlœô ¿a”žžN±êv'íNÚ´*'ªœ¨rBÛle?à˜M¿ÜNüt@MÑï½ûÇú×Jôªdî¬õW‚ôXÐcA®~®~®>Õ‚W•Z3µfjÍÂ϶ŽÇ†]›}W}ѯÛ/Ó>Ø0®ð}M‹M‹M£NðzDý^cCïhï䭾跛ã·l¾(|ßÅüCä€P2` 8äjr5¹³½g{Ïö.üJü®Opy§´‡¾77õêâw¬ÙÞ:¶æÿñ™¤k®uºÖ‰ÊŽû¦÷Mï›ZÇZÇZÇj›lªÕZo¸çÒÍ­s|,J{ô»ÈâF…Ï„C‡ 6tXîœÜ9¹s¨Å§3Ngœ ¯7Ë.áíš5ê»$îS)~ÔsÖÊM)16Ç{׌XVøþ®‹[·.ŽÚ@щZ*¼ÞZÿ2±}Ö“Ÿ›æö´ô†¾ã†¦Fº\ôÚqzõ¯ ß_1çPm€P2` ˜mpÞà¼Á¹ð›)>FV®f£/¦të}¹´„¾yÛÂ½håôCá{çöÈí‘Û£{É÷’ï%S@ÙôôñÓÇO®÷¹Þç…OzÓú l÷Ás‹£á»KKèûç™]­ýºuÚØìŠeDá{7/|^ø¼p¤‘4Uâr-ôZèµPýËú—õ/ÿÇg‚ç ³]®tE¿®±SüÖ,«êaVÎüZá{wÐü ùAsêÅKÔUáµg|µúOU6\±¥Ž£_éŠ~»._ðÄÆ·ð½s‹˜g¨@á€P2`à8½àô‚Ó ôtп‰Ó‰Zm®Žî¾Ñ·®ÒBßóô úd«&d…«‹.û2Öj¬ÕX«œQ9£rFQ4_j¾Ô|¹àÒ‚K .é2‡¬ø.ª§ó„§zIïVPZè{ëÝ=§šŒmÔ·¦õÿtÙ—ƒ Pxsž,²üÉòîºo辡ðj¬²È¤¼Y›ú[ÆVX²ÛûäJ¿”òJ }ݧOØØËÜÊÝ´IõÂ÷Å<Ê<Ê<êJ‡+®t ðæˆõVxM:d˜}8ô@ÂçN+”÷NœþÈí·¾=ã"íÒÚ˜=¯R§ð}ó‰˜[¨€.€P2`à z¬÷Xï±Þ€jª ¨¦K`2¢®CõqÉmÛÇ4|¯¤BßGYýf´Ÿ?ȯ‘Cs=,w°ÜAæZqjÄ©ºÏ*“þ ·´9~³ßîY~»J*ô=u`]ÅF={Nhå^ó]æðÎ!C:ßÚuk×­]Œ8Þ’GšGšG›&nš¸i¢îÇ—Ý¡ŸG­ðîµüÆñ ’ }Ž1üöžqX=‡;ºlsÔœ¨9Qsžÿñüç0ìx;D½‰ÚÓ¥Jk:3²ê]yÙ—vz%úFuûÕØmâg[¦]¨û@÷9AÌ!b>aܺ#@Él€·$)1)1)Qï…-ª_¡¶Þ‹mëyÌ}6%tEàÂâ{/îë:ÃûÒÒĀϜìì*›YÙê¾mcši>¦ùc“Ç&M_ºx>ðùÀççØÏ±Ÿc¯ûlcZÅØ¼ŠéÜN#.Û/ù5ráÆÃ‹7èͳHiôÛÑÙË/4 u´çÚz¿ê\½ãÊŽ+;®höiöiö1Ê()·ãoÇߎïÕ3ªg”îÕk²ÐövƒíW ´šêáé4wú›â zù/ñ:¸ÑÙjTo[ŒðÐ|¦îÛfëbëbë’6>m|ÚxÆ%KÔ¡¨IÝkØeg«æÕõœñ]ŠíÜq)Y.‹7îýrÂþ¸ún¯ÌÚX/¾Ž½ëmcSÝ·MÌbÞ`|¯‡%#Þªœn9Ýrº­YµfÕšUzEÐ4½vºyü„Î ­¬sâ®w«ÿîÎK­ìÝvkWÁÓHú¤Ý.ÏIûÛt÷¨º¹Jói.3æwòsuîßÉél­µ† {½ŸÛav‡Ùfgü”ñSÆOŒ&€¢¸¹íæ¶›Û-´tÐÒ×›‘LÏo¯ØãPË8«ósÊ ?kßwú©÷?]ô¡û¡#‹cz†Þ[Á³þîÎ ÝÖü9uJý§V˜nÜf°ÿ ‹Ø¢Ìà j,¨± ÆÓ©O§>ÊhBiξsö³ïxg{g{g¿^…~gõuÝo­v7Ýýùy›¤Þ³S†Ý™ý¼þ7_m[Ò¬ÁÒñ÷¿Ý@\“ïZ:ùñüw캆šL,_Û²u«Þ+L«ÙÏs=[”ã+!"!"!"/2/2/’Ñ„rˆšõY” ¯ááh<½É‰ÐK–«Ûªû}K›Úöë¸ÚÞ¾^ÿÖ~e¿¤oµ¸ìtsÿ6×fDë#ýê„4:Ûm„źê)Ö¬~yòо€IDAT½Ÿ+æ1?0š€¢#@É€ó¼ÝóvÏÛm>¾ùøæã¦é¦é¦ézŠ4xÝàuƒ×eÄdÄdÄ0jÞ„Ñ7¢oDOØ1aÇ„z ¶"pEàŠÀ'ž x2€QC)ðRóRó2Í7Í7Í·óÀÎ;Tæ‘åîîžh‘h‘hñ2óeæËL†¥àðÊ|™ù2SÔ­¨ae_âØó€˜;@q!@É€¹PãB 5Æo¿}üö’ºIä;Éw’來W¶^ÙzåñøÇãóÐEoÕóäçÉÏ“½½½[ßh}£õ’š‡N:aè„SÝOu?Õq:Üs¾ç|ÏyõêÕ«W¯vìãØÇ±OI_3ígÚÏ´¿Zþjù«å¨ƒ¨gQÛ%ud‰ãZãâxg\o0JF (Úµù׿_›¿á醧žövêíÔÛI¯Ž^½:E¿=äyÆóŒç™èøèøèøã厗;^îñúÇ믧Ï(ͳ1ÏÆ<sÊâ”Å)‹y•æUšW) c@Ç€ŽÅu»üó¯?ÿúó¯ã~Šû)î§K7/ݼtS³U³U³•žGYð`ãƒ6shÌ¡1ã3ÇgŽÏt,ïXÞ±|Ñ,Ó§¦OMŸŒ30æÇó?žÿñüC7Ý8DŸ£ì5/ê_ â¸(† ·¼cyÇòâ˜ǯ8–és€@ ¨DnlnlnìѵG×]›ô{ÒïI¿§Y¤Y¤YÐ3Êš+.W\®¸$·NnÜú¨ëQ×£®OÇ=÷t=]JXJXJXRxRxRø1ãcÆÇŒé ¸ˆcJ_âX£O¯‡T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚T‚Tâ­ÀIå“Ê'•×€2Cä¤ÀPê€J”¹XüyÒ;Iï$½“T.©\R9)OÊ“ò¤\)WÊ•r¤)Gz!½^HϤgÒ3)[Ê–²¥¿¥¿¥¿¥'Òé‰ôHz$=’J¥‡R–”%eI÷¥ûÒ}éžtOº'Ý‘îHw¤ÛÒmé¶ô—ô—ô—tSº)Ý”þ”þ”þ”2¥L)SúCúCúCº&]“®IW¤+Òé²tYº,ý.ý.ý.]’.I—¤‹ÒEé¢tAº ]ÎKç¥óRº”.¥K¿J¿J¿Jg¥³ÒYéŒtF:#’NI§¤“ÒIé¤ô³ô³ô³”*¥J©Ò é„tB:.—ŽKǤcÒ1)YJ–’¥$)IJ’ŽHG¤#Òaé°tX:(”J¤ÒiŸ´OÚ'%J‰R¢´GÚ#í‘vK»¥ÝÒNi§´SJ¤i‡´CÚ!m—¶KÛ¥¥¥¥­ÒVi«´EÚ"m‘6I›¤MÒFi£´QÚ m6Hë¥õÒzi´NZ'­•ÖJk¥ÕÒjiµ´JZ%­’VJ+¥•Ò i…´BZ.-—–KßKßKßK±R¬+-•–JK¥%Òi‰´HZ$-’J ¥…Òi´@úFúFúFš'Í“æI1RŒ#Í‘æHs¤ÙÒli¶4Sš)Í”fH3¤Òtiº4]Š–¢¥hékékékiŠ4Eš"M–&K“¥()JŠ’&J¥‰R¤)EJã¥ñÒxi¬4V+}%}%}%‘ÆHc¤ÑÒhi´4R)”¾”¾”¾”†KÃ¥áÒ0i˜4LúBúBúB" ‘†Hƒ¥ÁÒ`i 4P(…KáR¸4@ B¥P)Tê'õ“úI}¥¾R_©·Ô[ê-õ’zI½¤R©‡Ô]ê.u—ºJ]¥®R©‹ÔEê,u–:KŸKŸKŸK¥ŽRGé3é3é3©½Ô^j/µ•ÚJm¥6R©ÔJj%µ’ZJ-¥–Rˆ"…HÍ¥æRs©™ÔLj&5•šJM¥ )H ’¥@)Pò—ü%©‰ÔDj"ùI~’Ÿä#ùH>ÿ_{÷ÅÕø\MQS삊…bW‰%*–Ø{CcKì½5Qc4j4b쉽EÝ©+6b¯ÑØKŒ{C~Ü<çáû[—g) Ëð~Í9sr ;sçÎÝ™¹óÙ™kö7û›ýÍ5Í5Í5;f_³¯ÙÇìcö1{›½ÍÞæjæjæjæªæªæªæÊæÊæÊæJæJæJæ æ æ æòæòæòfO³§ÙÓìaö0{˜Ë™Ë™Ë™ËšËšËšË˜Ë˜Ë˜ÝÌnf7s)s)s)s s s ³«ÙÕìj.n.n.nv6;›ÍEÍEÍEÍEÌEÌEÌ…Ì…Ì…ÌNf'³“¹€¹€¹€9¿9¿9¿9¯9¯9¯9999—9—9—9§9§9§ùSó§æOÍŸ˜?1bþØü±ùcsvsvsvs6s6s6ó‡æÍš?0`þÀüžù=ó{æ,æ,æ,æLæLæLzœ§Çé±z¬«¿ÑßèoôWú+ý•þR©¿ÔŸëÏõçú3ý™þL¢?ÑŸèõÇúc=FÑcô‡úCý¡þ@ ?Ðïé÷ô{ú]ý®~W¿­ßÖoëÿèÿèÿèëëë7õ›úMýº~]¿®_Ó¯é×ô+úýŠ~Y¿¬_Ö/êõ‹úý‚~A?¯Ÿ×Ïëçôsú9ý¬~V?«ŸÑÏègôSú)ý”~R?©ŸÔOè'ôú1ý˜~L?ªÕê‡õÃúaý~H?¤GëÑz´~P?¨Ô÷ëûõýú>}Ÿ¾OÒ£ô(}¾Gߣ š®éš®èŠ®è².ë²nÒMºIß­ïÖwë;õúNýwýwýw}»¾]ß®oÓ·éÛô-ú}‹¾Y߬oÖ7é›ôMú}ƒ¾A_¯¯××ë¿é¿é¿é¿ê¿ê¿êkô5ú}µ¾Z_­¯ÔWê+õú }…þ‹þ‹þ‹¾L_¦/Ó—êKõ¥úÏúÏúÏúb}±¾XÿIÿIÿI_¨/Ôê ôú}¾>_Ÿ¯ÏÓçéóô¹ú\}®þ½þ½þ½>GŸ£ÏÑgé³ôYz„¡Gèßéßéßé3ôú ý[ý[ý[}š>MŸ¦OѧèSôp=\×'ë“õÉú$}’>IŸ OÐ'èãõñúx}¬>V«ÑÇècôQú(}”>R©Ô‡ëÃõáú0}˜>L¢чèƒõÁú`ý+ý+ý+}>H¤Ðèôþz½¿ÞOï§÷Óûê}õ¾z½ÞGï­÷Ö{ë½ô^z/½‡ÞCï¡w×»ëÝõ®zW½«ÞEï¢wÑ;éôNzG½£ÞQo¯·×Ûëíôvz;½ÞFo£·Ö[ë­õVz+½•ÞRo©·Ô›ëÍõæz¨ª‡êMõ¦zS½‰ÞDo¢7ÖëõFz#½‘Þ@o 7Ð?Ó?Ó?Óëëõõúz°¬ëAz¤×Õëêuõ@=PÔkëµõÚz-½–^K÷×ýuÝO÷Óýt_ÝW÷Õkè5ôº·î­{ëÕõêzu½ª^U¯ªWÑ«èUôJz%½’^Q¯¨WÔËëåõòº—î¥{麇ë^V/«—ÕËèeô2º›î¦»é¥ôRz)½„^B/¡»ê®º«^\/®×ugÝY/ªÕ‹êEô"z½^H/¤;éNº“^P/¨Ôóëùõüz>=ŸžOÏ£çÑóè¹õÜzn=§žSÏ©çÐsè9ôOôOôOôõõõìzv=»žMϦgÓ?Ô?Ô?Ô?Ð?Ð?ÐßÓßÓßÓ³èYô,z&=“žI‹Óâ´8-V‹Õbµ7ÚíöJ{¥½Ò^j/µ—Úsí¹ö\{¦=ÓžiO´'Úí±öX{¬Åh1ZŒöP{¨=Ôîk÷µûÚ=ížvO»£ÝÑîh·µÛÚmí–vK»¥ý­ý­ý­ÝÐnh7´ëÚuíºvM»¦]Ó®hW´+Úeí²vY»¨]Ô.j´ Úí¼v^;¯ÓÎiç´³ÚYí¬vF;£ÑNi§´SÚIí¤vR;®׎kÇ´cÚ1íˆvD;¢Ök‡µ?´?´?´h-Z‹Öh´Ú~m¿¶_Û«íÕöjQZ”%. Äa@S5US5ES4E“4I“4“fÒLÚ.m—¶KÛ©íÔvj;´Úm»¶]Û®mÕ¶j[µ-Úm‹¶IÛ¤mÒ6jµÚzm½¶^[§­ÓÖi¿j¿j¿jkµµÚZmµ¶Z[­­ÒVi«´Ú m…¶\[®-×–iË´eZ¤©EjKµ¥ÚRm‰¶D[¢-Ök‹µEÚ"m‘¶P[¨-Ô~Ô~Ô~ÔækóµùÚÚÚÚ\m®6W›£ÍÑæh³µÙÚl-B‹Ð"´™ÚLm¦6C›¡ÍЦkÓµéÚ4mš6M›ªMÕ¦jáZ¸®}£}£}£MÒ&i“´‰ÚDm¢6^¯×Æiã´qÚmŒ6F­ÖFk#µ‘ÚHm„6B¡ Ó†iô¡ÚPm¨6X¬ Ö¾Ö¾Ö¾Öiƒ´AÚ@m 6Pë¯õ×úký´~Z?­¯ÖWë«õÑúh}´ÞZo­·ÖKë¥õÒzh=´Zw­»Ö]ëªuÕºj]´.Z­“ÖIë¤uÔ:jµöZ{­½ÖNk§µÓÚhm´6Zk­µÖZk¥µÒZi-µ–ZK­¹Ö\k®…j¡Z¨ÖTkª5ÕšhM´&Zc­±ÖXk¤5Òi ´Zí3í3í3­¾V_«¯kÁZ°VO«§ÕÓêjuµºZ­ŽVG«­ÕÖjkµ´ZZ-Í_ó×ü5?ÍOóÓ|5_ÍW«¡ÕÐjhÞš·æ­UתkÕµªZU­ªVE«¢UÑ*i•´JZE­¢VQ+¯•×Êk^𗿥yhš‡æ®¹kîZY­¬VV+£•ÑÊhn𛿦•ÒJi¥´Z ­„檹j®Zq­¸V\sÖœ5g­¨VT+ªÑŠhE´BZ!­æ¤9iNZ­€V@˯å×òkyµ¼Z^-–GË£åÒri¹´œZN-§ö©ö©ö©ö‰ö‰ö‰ö‘ö‘ö‘–]Ë®eײjYµ¬Ú‡Ú‡Ú‡ÚûÚûÚûÚ{Ú{Ú{Zf-³–YˤeÒ2©oÕ·ê[5VUcÕ×êkõµúJ}¥¾R_¨/Ôêsõ¹ú\}ª>UŸªOÔ'êõ‘úH}¤Æ¨1jŒú@} >Pï«÷Õûê]õ®zW½£ÞQï¨ÿ¨ÿ¨ÿ¨·Ô[ê-õ¦zS½©ÞPo¨7Ôkê5õšzU½ª^U/«—ÕËê%õ’zI½ ^P/¨©©©çÔsê9õOõOõOõŒzF=£žVO«§Õ“êIõ¤zB=¡žP©ÇÔcêQõ¨zT=¬V«‡ÔCê!5ZV£ÕƒêAõ º_ݯîW÷©ûÔ}j”¥F©{Ô=êUWuUUQUQeUVeÕ¤šT“º[Ý­îVwª;Õêïêïêïêvu»º]ݦnS·©[Ô-êu³ºYݬnT7ªÕ êuƒºN]§®SSSSתkÕµêuºF]¥®RW©+Õ•êJu¹º\]®þ¢þ¢þ¢Fª‘j¤ºT]ª.U—¨KÔ%êbu±ºX]¤.R© Õ…êBõGõGõGu¾:_¯þ þ þ ÎUçªsÕ9êuŽ:[­ÎV#Ô5B©ÎTgª3Ôê uº:]®NS§©ÓÔ©êTuª®†«áê7ê7ê7ê$u’:I¨NT'ªãÕñêxuœ:N§ŽQǨcÔÑêhu´:R©ŽTG¨#Ôê0u˜:LªU‡ªƒÕÁê`õkõkõku:H¤TªÕþjµ¿ÚOí§öSûª}Õ¾jµÚGí­öV{«½Ô^j/µ‡ÚCí¡vW»«ÝÕ®jWµ«ÚEí¢vQ;©ÔNjGµ£ÚQm¯¶WÛ«mÕ¶j[µÚFm£~¡~¡~¡¶R[©­Ôj µ…Ú\m®6W›©ÍÔfjSµ©ÚTý\ý\ý\m¬6V« Õ†jCµÚ@m †¨!jˆZ_­¯ÖWƒÔ 5H­§ÖSë©j ¨ÖQë¨uÔZj-µ– ¨ªŸê§ú©5ÕšjMµ†ZC­¡ú¨>ªZ]­®VW«©ÕÔjjµŠZE­¬VV+«ÕŠjEµ‚ZA­ z©^ª—ê©zªžª»ê®º«åÔrj9µŒZF-£–VK«¥ÕRj)µ”ZR-©–T]UWÕUuQ]TÕYuVÕbj1µ˜ZD-¢Q «…Õª“ê¤:©Õ‚jA5¿š_ͯæSó©ùÔJ¥¦„)aJ/¥—ÒKé©ôTz*Ý•îJw¥›ÒMé¦tQº(]”ÎJg¥³ÒQé¨tT:(”J;¥ÒNi«´UÚ*­•ÖJkå å å ¥¥ÒRi©´PZ(-”P%T Uš*M•¦J¥‰ÒDi¬4V+”FJ#¥Ò@i |¦|¦|¦ÔWê+õ•`%X Vê)õ”zJ]¥®RW©£ÔQê(µ•ÚJm%@ PÅ_ñWj*5•šŠ¯â«ø*>Šâ£x+ÞŠ·RM©¦TSª*U•ªJe¥²RY©¤TR*)” J¥¼R^)¯x*žŠ§â¡x(J9¥œRN)£”QÊ(¥•ÒJi¥”RJ)¥”TJ*%WÅUqU\ÅEqVœg¥˜RL)¦QŠ(E”ÂJa¥°â¤8)NJA¥ RPɯäWò+ù”|J>%’GÉ£äVr+¹•œJN%§’CÉ¡äP>Q>Q>Q>V>V>V²+Ù•ìJ6%›’MùPùPùPù@ù@ù@yOyOyOɬdV2+™”LJ&ù­üV~+Çʱr¬üZ~-¿–_ɯäWò ù…üB~.?—ŸËOå§òSù‰üD~"?’Éä9FŽ‘Èäò}ù¾|_¾+ß•ïÊwä;òùùùù–|K¾%ß”oÊ7åò ù†|M¾&_“¯ÊWå«òeù²|Y¾(_”/Êä òù¼|^>/Ÿ“ÏÉçä³òYù¬|F>#Ÿ‘OɧäSòIù¤|R>.—ËÇäcò1ùˆ|D>"–ˇå?ä?ä?äh9ZŽ–Èäò~y¿¼_Þ+ï•÷ÊQr”%nþ‰î¾8ÉË‚$K²$ï–wË»å]ò.y—ü»ü»ü»¼CÞ!ï·ÉÛämòVy«¼UÞ,o–7Ë›äMò&yƒ¼AÞ ¯—×Ëëåßäßäßä_å_å_å5òy¼Z^-¯–WÊ+å•ò y…¼BþEþEþEŽ”#åHy©¼T^*/‘—ÈKäÅòby±¼H^$/’Ê å…òòòò|y¾<_þAþAþAž+Ï•çÊsä9òy¶<[ž-GÈr„R©&…IaR/©—ÔKê)õ”zJÝ¥îRw©›ÔMê&u‘ºH]¤ÎRg©³ÔQê(u”:H¤R;©ÔNj#µ‘ÚH­¥ÖRk©•ÔJj%µ”ZJ-¥æRs©¹*…J¡RS©©ÔTj"5‘šH¥ÆRc©‘ÔHj$5H ¤)D ‘êKõ¥úR$Iõ¤zR=)P ”¥:R©ŽTKª%Õ’¤)@ò“ü$?©¦TSª)ÕjH5$ÉGò‘ªKÕ¥êRU©ªTUª"U‘ªH•¤JR%©¢TQª(•—ÊKå%/ÉKò’<$ÉCr—Ü%w©¬TV*+•‘ÊHe$7ÉMr“JJ%¥’R ©„TBr‘\$©¸T\*.“ŠIŤ¢RQ©¨TX*,– I…¤BRA© TP*  Hù¤|R>)”GÊ#å–rK¹¥œRN)§”CÊ!å>‘>‘>‘>–>–>–²KÙ¥ìR6)›”MúPúPúPú@ú@ú@zOzOzOÊ"e‘²H™¤LR&Ó[Ó[Ó[S¬)ÖkzmzmzmzezezezazazaznznznzjzjzjzbzbzbzdzdzdŠ1ŘbLLLL÷L÷L÷LwMwMwM·M·M·Mÿ˜þ1ýcúÛô·éoÓMÓMÓMÓuÓuÓuÓ5Ó5Ó5ÓÓÓÓeÓeÓeÓEÓEÓEÓ_¦¿L™Î›Î›Î›þ4ýiúÓtÖtÖtÖtÚtÚtÚtÊtÊtÊtÂtÂtÂtÜtÜtÜtÔtÔtÔtÄtÄtÄtÈtÈtÈmŠ6E›šššö›ö›ö›ö™ö™ö™¢LQ¦(ÓÓÓqÛ^Ü®—íÀ©ºÁ`އ@ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``Àª\ ¢„§Ì€±fi‹½ eVSf #Í€ 00`0e2ÂÑŒ€‘V¥lhQOKhr„¦ÇZEê·:¤ÇýE ã &¬JÙÐÂ0¨möWò—¼¨YZNìw)‹˜°ªçÒ„¦Ä.8ý–9ý¢¶Ù_´ 00J€Óo™iuHïû‹– ã &R pú-3­é}ÑdÀÀ@*!N¿e¦Õ!½ï/Z€Œƒ˜H%Àé·Ì´:¤÷ýEKq©Äqàc×]?v}ø„á†O¨[;¶vl¹á冗ž[þmù·¹frÍäš©ÆÐCk ˜}`öÙ•¼J^%¯#×CÚõ9æü™ógvþ¨óG?ªÙºfëš­Ý{»÷vï]hD¡…Fü[·1®1®1ã*ÆUŒk¡¶P[¨£ƒF5üÆïß?Çou ‹õŒõŒõÔnh7´_úúÐׇ‚6mÚìUÓ«¦WÍ+ ¬,°²˜_1¿b~sTÌQ1GŸ>|vYØea—Ç{ïy¼'uöÚó)ϧ<Ÿ²¾äú’ëK–˃åºGë­{Tìµ"m‹´-Ò6ßž|{òí)y¼äñ’Ç«êUõªºØ¿³ÿ™ýÏ쮞¼zòêÉô²¿Œñ½Û?êÝSb—ó¶ØÛbo‹½þbø‹á‰ý샜r>ȹzì걫NJöàïëïëïë¶Õm«ÛVñM/3¯Ì¼2ó<<<:¿îüºóë5Ö X3@|Öqêçh–£YŽfà4Ài€S­¢µŠÖ*ZÊ\Ê\Ê\p~Áùç‹oh“"MŠ4)²ìì²³ËÎ>]ñtÅÓ¶”äÖˆ[#nGÅÆ5×h\C÷ ÷)ܧpqTôhãÑÆ£M›Ám·üSàO?Ú¾| aÀÀ°jLµ1ÕÆT³lݹuçÖI[ò놯¾n(n[[~× ]/t½œò‡}öuØ×Ö–¿eÿ–ý[ö'¼„¤E&¹RTJ•P­'µžÔzRÒJx)ðRà%‚¨¸q9ârˆà°Îý:÷ëÜO©}-‚Fñß/Ã^†½ K©ZMÙVgͺÊë*¯«,~L´õ:{9{9{‰ÿ¾±êƪ«Rv×=ÙödÛ“mã Ž+8®`qçâÎÅ“SK¹3çΜ;sÒê-õ÷—1àÄ–ÿŸ>ÿôù§Ï¤?&ý1éð—¸RâJ‰+‰ÝvñÓ„±¥Ç–[ZD¼IÛSâ'â¿c®Æ\¹šúõ#ÎÍ4?ÒüHbË/‚mkõ&bõ9çæœ›s.iµïp €ä &€Uúiý´~ÚÚÚ¡?ýyèÏI»Q{°ÃÁ;$|#¸ôŠÒ+J'ëI Ïž <X»o˳†Æ€ÏŽ<;òìHkµ‘œˆ.iû%ýQ"°INˆn;ñÔlJÅ{ö €Æ<Œy#žLÙ2ˆgpSªU}|ôñÑÇâé^{ì/§©NS¦:òþÊh°xJ[á¦f«£üÆFÙš¦7ý¸éÇb´Ôøµ!^BûG­?jýQK¼ž7~Øcí‰Àí‹¶/Ú¾Èö½öªí«¶¯ÚÚÛן[ný¹k;­í´¶ÓñSÇO?õ0ÓÃL3=:ñèÄ£§VŸZ}jµxÁµ-ß1"¬ã%Òï÷Îö­ÿ·O÷>Ýût·=b´‹óZÂm2þω6>Ûølã³kQ×¢®E‰—·_ß~}ûõí›nnº¹éf³{Íî5»gï7+$\?­–µZÖjYüÉs-ϵ<׆Í6kØ,ÑÂŹ@£" Dˆ(`Ëkœ­=U/~¼"¾³âÇ"â;%Þ,Ò·eß–}[Ú²æ-ž·xÞbb`$00þ‡¥Ï—>_úÜÚÍÙ_›þÚôצ¶/MDG¶?S%FNìÍßžK{.í¹4á§Ší§ÎÒlYf|µckÇÖŽý{êßSÿþ_/ªÍ—#.Ç÷¿?øýÁ„—ÿ©¯´­ûÁmÂAˆx)ôó)ϧ<Ÿb±`ã‡7ŽÐê~‚_DY;f옱c†íëáíc$ÛRÎUß­únÕwVCåG¹å~$bÝ”}šöß^öï{~ßó»#ì¯ôø½KìVˆÀÒòß Î/8¿àü¯þú꯯þÚÙog¿ýÄËÀE@+~Ž`¹–¶=ÚöhÛÃÚºòžÈ{"ï‰È[‘·"oÙ^ò¿®øuůñǶÔfp›ÁmÛûŒ žS—*I•¤J /Mü%±OîŠ}¿<Ö–¿|×ò]Ëw%¼´øcs=Ûัêƪ«¬ÝœíçÝÏ»Ÿ·í7gÅÍwÛo%'m$àrÃË /7ÜrisTÌQ1‡íË1FìÑÆ£Gd&v]_w~Ýùµµ%‹zv„z°¹„\B.a­´UõªzU]Œ'œòÏ97çÜœsÉ©4uj[ ¬«*F¯\NbmäˆË—#á2O¸=áö„Û¶,¿…ÚBm¡Z[ÎÔñSÇOŸÄf‘#.G\ŽÏÝ?wÿÜÝÚòGä8?0vlù$½xAñ¥\—r]JÄ6ŠçS®+ý&­ÞD œðòÍûÌûÌûìwF£#Û^þ.w»Üír×–%pà4À)±en\£qÆ5¬-³ì”²SÊNáJ ‰EL ›øöòíåÛËòJ²¼gyÏòž¶ßJŽÿ:Ç„_Vœ´‘€/T¸PáBkËúóП‡þœV£f¦U¼!߆|ò%m-[wnݹu§µ%‹§Ù¡ìgþÌù3çÏ´å¹Ãä¬åϾöý³oÂOÚ£…$vi“M“M“M)ûÂvKâ%ºÖÖRܹ¸sqg[Ö"~ú`m9§œ^pzArJûã¸Çý8ÎÚòÛµjת]«ô§&ñvûmEŸŠqãn¸5âÖˆ”ýÉ‹xçAò*âÖÖÒíp·ÃÝÛã,Sf^™yeæ‰wؾLñ¬pÂKoõ¸ÓèN£;[ò„Ï2âç&\ƒ ±€ €`“ñÙÆgŸÍÚ-Z1º§-˱6¢pü29ÁÒÒ—~¸ôCkˉ#Û–Ò¦÷XÄóâiŤ-ÿ\ûsíϵwüz°Ÿ!뇬²>þëdãOG³Ír4K ”܆'_íÑBl_Î놯¾nè¶Õm«ÛVËåTzPéA¥âï)Uó?ØøÁƬ•\ŒÔ›ð~Ý®‡89%Œÿtéø—ÿÿ´¤Ô’RKJ§~ÿõã¶/YŒS›p›9¹ã䎓;’¿/Ä8» GžIkŸ ×ÌL·™n3Ý[þ‹.].º$¼ä‰ç'žŸx>i5c³ @L ›D­‰ZµÆÚÍÙeg—]vÖ–‘eK\)q¥ÄË%ˆ'‡¬Åöÿ/-_NkmÄGkÒ{,‚¨ä,_Ä~9NÏæ=›÷lž#À *^§œ²{P<\¸Oá>…ûX®qÁÀ LxñŸ¶$Fÿu´–@œœ­¨ýiíOkš´%o>³ùÌæ3Ö–\³uÍÖ5[§ì¾®1´ÆÐC­­qû¢í‹¶/JÙúIìO „Wm_µ}Õ6á%‹Ò&­•&üÄ?0’†˜6yã÷ÆïŸ³—³—³WÒ^YyfÚ™ig¦Y~¶úòêË«/?ÔIÚHÀâ/-— ^¹™Ø­NïpÒž„KõÞín²»Éî&ŽÏÊ:+묬֖s°ÃÁ;Øc~6ä³!Ÿ ±\cüWõZûlûuî×¹ŸðKk­Õ'g+—„/ _’´ºWp\Áq­-9þËÏSj_Çj6¥Ö˜pý\¹våÚ•kö¨yñ4¼c¶|dLÀÀH„N…:êTÈòzR¼6áÏ.®²¸Êâ*–Ÿøj૯,GåLìHÀ ¿FÒ^Çšúñží¯æNïõ‰§«Ås¨ÖžŒwœ¸Íà6ƒÛ ¶ßë”­éX®c¹Žå,×´9hsÐæ„?ûm×o»~ÛÕö`rg¿ývöKì©)+­àôò­Ix+ôÓúiýtÒ¶¨QH£F!Ö–¼eÿ–ý[ö§l]%ü’óЋ¡C/¦ì9ëm±·ÅÞ³GÍ'gÉœ`ÀÀH„_ürà—ÖnÑŠg|­}ÖÚË™«ó[ßêü{“7G\ޏ¥Ì¥Ì¥Ì‰ ØZÀ,\‹ºu-*£ÀN<:ñèDò÷;pb‰'æÅSq¦Ú¦Ú¦Ú »,ì²°‹Q¸á ¿høEÂ/(v´Ø·—o/ß^Žó©(OÂe޹s5æjb—,Fwÿ=£îŒº3êš÷™÷™÷‰×tÛ»å'g+.g¾œùræ¤-¹Ú–j[ªmIÚÏ’ÆÚ[1ñ‚èŒÓ~€²€ €·FÜqkDî̹3çΜØQ9ËN);¥ìËOÝXucÕUñÿ2þË]m ¸óG?êüQJÝFÒ{,õäïw`K±ž±ž±žûGíµÔ¤?&ý1éj µ…ZéA¥•Ø#òLÛ}çÞÛ½·{oÇ €Ë{–÷,ïiKÉŸ:~êø){”áìȳ#ÏŽLÙvEœœ­xó0æaLÒ–lmøá¾ó}çûÎ)»-wÝit§‘µ5Šo\Æi?ÀHYÀÀH4___˫ʶ=ÚöhÛÃòv­xÒRŸŠqß±üø¯k¶}$`kÏ Ï6>ÛølŽU:r¼—Þë!u<ÙödÛ“m߬ûfÝ7ë\rºätÉ™RQ¢ÓT§©NS¹…îS¸Oá>Ž»Æ¸Æ¸&"ê?^Ÿµö–¤©ªWÕ«êâ¿Å3ÇŽó]3Æ÷.[‘ŒŸ¼ÄòÛÒ«¶¯Ú¾j›²Û"^6nmEÚi[¤mÆi?ÀHYÀÀH´‰ç'žŸxÞòªÒÙËÙËÙK<ÿï­½8ºo˾-û¶´¼½ûWÀ_Øþ*΄_¤¹wáÞ…{'°úD}¢>IøA[QhD¡â'=—ö\Úséú’ëK®/ùtÅÓOW8r É¿-ÿ¶üÛ'åIZœZ}jõ©Õb9UŽU9VåXŠÅÒ™\3¹frÌot†€“!õ`1 ¸µ5æÛ“oO¾=§ý e ÑÄko­Ý¨=’çHž#yâÿ}Ø×a_‡}mù—+ZùÓÊŸûÊhË‘€Å誖)ÆX£±&mK €ÓK=Ø»µÛþü«h·Ëu,ױܜssÎÍ9'U’*I•®ž¼zòêÉ„·Ô‘[ˆµ'ì…Ô×~ÄVÌz1ëŬk4®Ñ¸†ˆêSÿÅÝÀiµ©ÿ è{åï•¿WÞÚݶºmuÛšqÚ0R00M<ãkí¸³²ÎÊ:+kü›¶ŠU(V¡˜å_^~tùÑåGÖnïöØØcc¶ŒÜÁ§ƒOË¿ìr·ËÝ.w“³¥Àé¥ìA<óWf^™yeæY+mîG¹å~$ÆŸ>¹ã䎓;ŒÚBâ¿èØÒ•kW®]¹f¤£œå6¶Üfp›Á¶ÃñŸ™v„opªm©¶¥ÚkKï¥HÙmIø]¢<ŽS?ÀH_€ €D"^µ¼¶lv¯Ù½f÷ÄßXucÕU–ãÞÛ½·{ï„—oíÅÑÿg$àq9ârˆÑ@-ÿrÕw«¾[õãÄ«À©Yæä[¾kù®å»Ž~wöÛÙog?GŽ@Rj™ ¿høEÃ/¬-çPÅCUÌǽøã¶ŠQÌ®áa³†Í6ËöÚ&N«­hÒ(¤Qˆµ%oݹuçÖ)»-[öoÙ¿e¿µ56èÙ gƒžŽS?ÀH_€ €Dñ_àl9Ê©xzrm§µÖv²üñtoÂËÿ|°µ‘€-Ÿ¹ü7œËœ;sîÌwÝit§Qr¶‘8½Ôƒ=„^ ½zÑZ9ׄ/ _’²ktä2¦Ú˜jcªY[ÎÆgŸm|–ÑŽ/Ã^†½ K¸†«/¯¾¼úr`GþŽØÒÂÅ÷=eëê›u߬ûfµ5Žj1ªÅ¨ç r`¤,``$Ñív·ÛÝn'¢VË+̨5Qk¢Ö Ì>0ûÀì–ÿwé‡K?\ú¡-7vË{–÷,ï™ðHÀ–/^ ¼”üm$N/õ`UŽU9V嘵rÍr4ËÑ,)Uæ„îà-dó™Íg6Ÿ±¶œ¶=ÚöhÛ#e÷àõí×·_ß^cè»'í†vC»aí³"ž:þÝ“øáHJ•3úóèÏ£?·V3EÚi[¤­#|;€&ÚŒµ%ûûúûúû¦l]Õl]³uÍÖ ÿ¨‚˜ICL €d©ýiíOkšðóRÖžßµåÆnß–}[öm™ðHÀ–¦ š6hÚ G»åMœšeN¾‚ó Î/8ßZ9Ÿl{²íɶ”Z׺Êë*¯«ìÈ-ä^ù{åï•Ï·'ßž|{,—“çZžky®¥ì´öD¦øÑ‰(µÏ–˃ek[=þåø—ã_¦TixtâÑ àÔa¿­oŒÈ{"V÷æ™ig¦™–ü­8±÷ÄÞ{­­E|›þéóOŸú8Ný }!&@²X{‰eµ-Õ¶TÛbùï¥Ì¥Ì¥Ì¶/õØÕcWµ\ŽÛV·­n[]rºätÉi¿§3 €ÓK=؃k&×L®™¬•óø©ã§ŽŸJþZÄ“ôm<Úx´qü’ð/zOì=±÷ÄäïLJ™fz˜ÉÙËÙËÙËr-õ´zZ=-á%Ìz1ëŬÖÊ29drÈä”jo{î]¸wa¯€v„o°-:øtðéàcï'Ý[¨-Ôªµµˆ28Zý }!&@²$üúSK?êüQçl_þU7VÝXeûòE0—#.G\Žäo]jŸo‹½-ö¶XÚ–ÐêÁqÚ¶ßg~Ÿù}f­œÓ›Oo>½yrÊ,žaq¦-mÛû.±­nÿ¨ý£öJx™‘·"oEÞJZi_7|ÝðuÃÆ5×h\ÃÚòã?-mm9Ôú£Öµ.gÂ/‘¶]üØÛR?ï~Þý¼Óö(‘¾¾wi»J^%¯’7ᵬüiåO+JÚòã`úD}¢>q´£+0Ò``$‹$\c\c\cl ±vYØea—ÄÞÒ­|¹òåÊ—mY¾xetJm]jŸâIд-¡#Ôâf©=Y+縂㠎+h­œâeÈæ}æ}æ}‰­]wuÜÕѽ·{o÷Þ¶ÿ¸áÖˆ[#np„V×ån—»]îZ[fîG¹åþwÛølã3Ǽ%mmüTaÈú!뇬/¿}ö2ìe˜xú95K˜:kÉå`¬•ó\ûsíϵOø³ñÃNõ}õ}õýË.?ºüH„÷ï;ßw/‹þá·~ûá·Ú±µckÇZ[Z£‹p(±O‚Ú£Õ‰í²¥nÅ  \0pÁÀÓ N/8½àñžÇ{ï¹ë×ÿ®ÿ¾éû¦ï›þ]Õïª~Wµ¸sqçâV—)b³#yŽä9’ÇöV·ôùÒçKŸÿ=˜9wæÜ™ã?Ù)F(åu"öéžß÷ü¾çw1ºyé¥W”^‘ð’ELîG‰Ô#ö…øî‹ÿç£ÏÝ?wÿÜ=áåˆ΋y8æ ÀH_€ €Ö X3`Í[np'íåÌëK®/¹¾dÂËQÌÕ˜«1WSj»Rö–´o/ß^¾½R*ž´G Sg-é%FµÕbT û­½pŸÂ} ÷ÙøÁÆ6~ðË„“V~{´:!þHÛö#"öøGÛ[šˆÉ›~Üô㦧f‹/Ï4'¶ÌöÛ_À‰%žï·wk)æW̯˜Ÿø1„#Ç´ÀH_€ €Äh¦ñŸ†´Ô¶GÛm{$mùâŧ ß nÒ(¤QHÊnWÊÞ’4:htpú €c=c=c=;êT¨S¡”]¯x:6þ3ñ¿6ýµé¯Mm_¦››nnº™ú­.¾³#ÏŽ<;ÒûÅÙËÙËÙKåù”çS€ÓWü¯q9ârÄ&“¶®’ÇK/yü§ÀŸ cÙþŸ2äˆË—£é›¦oš¾I©Ø­.áµQhD¡I«ñ·ÃÝw;,^¢›b-9ÞôlàÙÀ³AJµŸZEk­UtËþ-û·ìß“VLûí/àäxó0æaLüñ¿“ÖZÄøÁã³Ï6>›x͸#«S³æ €²€ €Â¾]›R·¡í·|{#DŠr†L™2Ù½·{o÷ÞVXY`¥ˆ¦‚ þ%ø—Îuþ¨óG´(GódÛ“mO¶ÅçµÒƒJ*=£ØŠpH<ÛàààÑ¿Lÿ2ýËìì·³ßÎ~/†¿þbx­4þ߈pQ¼>Ý%§KN—œA›ƒ6mþ2øËà/ƒÅÓ·ŽÖêâÇZbtpQ¢NDýˆºªW1®b\ûúíë·¯?oñ¼ÅóÇ{ÕŽ»0^ÿÉÝŠ9*樘Ã5Æ5Æ5F”SÔO)s)s)³xb[ÔϬ¬³²ÎÊzfÚ™ig¦Ù#¦â(áÈÄ/ÄÞéX®c¹Žåj¶®ÙºfkÑNDËqÛê¶Õm«øw±V]=võؤ½@biŒ§Œºí÷l\zluéå ?Ç,'G‰ô{`©˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚˜€A0``AL À € €00ƒ &`ÀÀ ‚ø_æ(›§½i4íK£iMÒh:˜êStM¤Ñt(¦Ãi4I£éhMÇÒh:žFÓ‰4šN¦út*¦Ói4I£élM¦Ñt.¦ói4ý•FÓ…4š.¦Ñt)¦Ë©>]I£éjM×ÒhºžFÓ4šn¦ÑôwM·Òhú'¦Ûi4ÝI£énM÷R}ºŸFÓƒ4š¦Ñ“FÓ£4š§Ñô$¦§i4=K£éyM/Òhz™FÓ«4š^§úô&¦Ø4šÞ¦Ñ—6ÓžLi4eN£)KMïÙk"Ã"ƒ0l,°ƒd† €ï4¹ÓäNó»MQi41&1£3±ãFœqÆ!Î8#gœ±‡O¦Ñ”qÆÎ8£gœñ†3ÎHÃŒ1l¼Ñ…ÓjŒáŒ3º0ã 3¢0c 3Š0£§Õ(Âgü`FfÌ`F fœ`Æ N«q‚!˜±~Tà;}îô¹ÓǰOì ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚ ‚€ÿáξ;ûîì‹Òÿ;‰¡f2šØE±‹bí]±wÅÞ{þÚóמ¿N8Ÿp>áLÍô¼G&ÎVâÌ%ÎbâŒFÍ€Q2œ7OÞÇ|Ž…¯ _¾v¦ý™ögz¼úñêÇ«©sÐó¢ç$‡8›ˆ3‹8ˈ3N |µÜr¹årgCqfgIêÒ`€Á½íñ¶ÇÛQ¦(S”©SD§ˆN¹ÒˆX»(‰({ õ-~¶øÙâ£7Þâû\L”P”–½`/C_†¾ ]·Ýþuû *tªÐ)Ǽ2ürå—+¿\y!âBÄ…öèyÑóÄAœó›%Ϊâ +ζì5dLÀpLÀƒxðôÁÓOÇ»Œwï’œLë÷ÝÏ»„NëãÑpÕÚÉ•›í<Ѥ~õ¾z‰ÐN>Ä\ü‹ø¿â/ŧ’³^Qr±ìM€äxÝþuû×í—/[¾lù²ä\¡þ£ÒÍš[Ü„¾ìÙÖÓ¥wøD·ŠîCêÌ™]¹ì¨i ×Vž4zÕOE*5~|¾{ù;ý§ì£Žã†x»Œ¬{(ô`ÞƒEŽ÷NÚz[Îh9£åŒ [/l½°•½ ãö¼BÚ»„NÛ¿GÃUkÃ×Wn¶óÄÜkÕûê%uói$æâ_Äÿ)>EÏ F%Žüâ,´^²Áà|{´®p¼dËÙ­kWõ ^—§Á”*ÓL»›vðÎkþ$t‡Ï­ZhVŸÛÏîYM‰¼ܾR–±mj¸–}]ÿT©SE×&çû%μâ,ÌÞDÆA ÇD HÇb#c#c##Ý"Ý"=BÛÄö¾KË];¤·Úê{7..,,88eçbÉb-‰-›Ø"±uìeÛíÙ½g÷žÝ‰½úr-Õ²y¥­#‹üxÂïÐâ‚Q"#££Sjîgú‡ëqè6oÔ¾ü.ƒÜ*Ú^¶a †5Öà±Óc§ÇNì_¤ÏžWØØr×éËÇøÞ‹‹ŽNÙ¹X²X =/¤Gâ/Žö¶·^œ… ¸/Ø]·Es¦vÓüϧì=“zþ\ïù\³2Þ3{Ï«”µT¢Ã`qFfÿ"# †c"¤KÎ^8{á¬W°W°W°-Am«6,ýñ¹#ífù_²GÜkË\¬]”Ä–2‹­[ʰæq®Ç¹çêU¤W‘^El¹Ê*2¶jÁ€)•ͺøJʽ¶Ïkî^°Mû¾ì³Žß ¶ýfº’Iɤp'Þój_¡ôÇ玬ßâÉq¯-s±vQz^pdâ¨nûY`vßÚ5½åþ²ûµ1CÞºjª=ªöè^Ô½¨{Q´¤EÏ«Ýu·gC”q;-ôµ‡(ãwŠ’ÓóBêGlqôN¸.ºRϵª·{ß z•^îlœ;Øn¦ÿÅ€®U MxëÄœö#!†c"8´çƒžz>¨±oc߯¾ w!oµË÷azéY9øx«]¾ÞRQ¢fh! ‰‹‹á?Æÿÿx¡ëÉ~צåN/¡¯µyˆ9—~7~Qy_Ï„·÷Jë+­¯´¦ µz^˧ù>L/¡¯Õ‘ƒ/ŸFÏ ©E¥no!»ÜÜ‹^øû·ÎmkïKïw6ÖîølU•Ì o¯8›‹3;-é00ÀA=ëü¬ó³Î¾ã|Çù޳ÖaèZa`ÉÂÏ]z©”Þ;Hñçb‹ÄÖYÛvQ3¢–h-Àà®Ç]»>îƒqŒûÀÚÕQÞWE{é±pëôôýZÎÝGtk2êË„o¦_»v!ŒÆûô¼šÅ–,üÜeϹzAé=ú?[$¶ŽžìA™>z/¨_·\…ÜFº§!æWC:¶®QªgÁ_ò­¶¶íâÌ.Îò´¤_ÀpLÀ‡óªÐ«B¯ ÕÚQkG­Ö: ?N ¼TþzܰNÁµ×Múw~#¬Spm±¥ÖêAÔ’¨1Z0ªð3ágÂÏX»"*î]ëDãÕ~gºh¼è7þ¼òë±%–¼—pp=Ûõl׳Ñfr=¯‘ÇË_»½#¸¶‘¢ßÿ3¿½#¸¶ØRz^H)âhœð;jtóŸkä0ì=¸°°àà_öœ_oVÇ^]\ÿ´Vâ,O›AúE ÇD p$qq¦ušÖišµŽÁ¦Ú Teì’å\lµµ:5&jFŒ$²Yd³ÈfÖ®‚JE7ëݽe@ö¥/>2vô^}ó´ÓëŠ$*ĸĸĸÐ~¼ž×ÌòUG6ôµ2[MÏ É!ŽÀ ¥Ïîk{Ø¿Oƹ§ñövX–ଣöøx–µ:¨8ãÓ~Ã1HD±ˆbŬu¶õhY­oF‹~ãÏE X«Q{´"` {?ÞûñÞ­]ù¸• ÙãX@@äÒè'ú?÷þeÆÑ¬ÕOðGÁ{!öBìÚßóšÝ¯ZߌýÆŸ‹ ç…ÄG]q¶úºþ í—|“AïlĆõ³ÖçrÙÖêGœýiKH_€á˜€!ª{T÷¨îÖ:««„ì¨<0#G¿ñç¢6¬¾Bª{T÷¨î´(~ÝÙug×]Ö®v\«hi (Y;ºqÆŒ~ÿÏÓÀù§Ü^i­®¦{L÷˜îA‹Bbz^S U˜‘£ßøsQô¼`;qÔµÖfNýÔf©ßfîiÄu ó .V´RRå­Õ•¸ E!½ †c"¤±-F‹Ñ¬]ôOüÂwI¹«t,ç¢f¬¾ôO‹Ñb4ZHg6ÆmŒÛØpzÃé §[^álVúž× ÿVK¢ö!ú?¯Ôdø_ó«[»2ŸÓÕIþ\Ô¤e ‹š§DZ­û¶îÛº[^·¸• ý¶ñm Ì}›×I ¶v;ìm¹·åÞ–£f¼ž×¢¾>Ÿâ&.j’žWF#ŽœVÇYØu|`~îK$>f™Ï…²Ç-kX\9Ðáh€Sa°-€©äù²çËž/³v~Ó¿wþ áÉï$œoÜNñÉ­›$jÒê¯e—=_ö|­8‚€1cÆX^±ø|Ñn«/ñmJÍ‹ÖzÞøŒe=Ÿ­w vl‰ÿ~¿Rï.‡Ço…[hüŽQ–;?ìü°3­ŽƒØqÇG H%ú è7 Ÿå)öü†v×ò$Ζ38—ßg.S çHÛ§E­ZÖƒØ ´F¶vß=|÷;žìñ,Ö{ôD'ãÀ%n6ìß>òO2¥ÊÚý+,i°o´µ^qã:Çq=ƒô¼6t Èc¼xÐö‘¥=ßÕL•mÙ°¡+=¯ ¢s\ç¸ÎÖŽ¥¯Æôj”Õxð ;U'¼ûû•k<ܪâ[˵‹«š$°c" &Ø_`\`\ µÓjìˆÞö¦û8GXÎà\“M5'¹÷KÛçÅ\ÔªÕÛ|qq4LVú®í»¶ïÚw¼üùج)Û$#E¿^æ~¦²vU–š%qÞàÛpen{ûÛÛßÒ&3FÏëÀñ ­F €×všz¨ò=«½žTÙQ«ô¼2q´´ÜËíËxöt­c¼èwm§ÏÂú~¥F®éx»Ö-˵‹«Ú$°ã˘a00ÀîîÝ¿wÿÞ}Ë“h‡£^ï»F¦ð“¯©ÿÓ§K¦:žk|æUyÇø—¾EË}_ùr±¬ï§m×Èr.jزNåòôJÛXÌE Óó26q´´ÜË66œPÕÕHÑï™im[û—(Ü'_©òÓö¸ÞkƒŽ[-Ct\t\4-Ž€8}É8a00ÀîþÈþGö?²[ž8W \¹~êÀG³|ñmÍþíë{~åRÊ\0*ŸTp~ž‹¹ÍUŽëâTjL5ŸmewÞwîªúÙ²–egƒwVòµý!­ºm¢†-Ë#ö-¤¾'ŸL|2Ñòú¤è:ïu¿H¥W"_Y:æ`¨çº>“»YUuA­òy'þÇùÓÜ“òEæRà‡R‹Ýg—Ì×(S‡ÞÓgLÜ83Ñ#þæY¸OZðóÒ7¼&‰­s«z®g•´ €}*Ìœ¶å¯ñ ïÞ-¼-Óè=¯ðé•ëÛñ)XÏó‚~Yvvâ?•|…Ô*_ìW×çOó.8?ÿ“ÜæÊ—=¼?|B—ýeÖܱ³[í§É €ŸlÓŸÖÝYm‹×$§ÙÿŽf]ºg•²Ó65LÏËØÄÑÒr/_žÒaS-w{÷î÷üÞ¼•Ï•®Êß(åÞ»ÐåïX™grîïÊ{ .p±Õ2÷/\²ì˜ñyÿj¿-Ö{{ПI[Ë“m=ªÕÝYm‹s¾ÿ~¿jä|÷÷+õîl4[Xv¸ó%Ë2ˆ+ Z&púeì0˜`w‘ý#ûGö·È)Oü*ø_sѶ§VÒ¢ò„¤…µ]î6-V"B|ê³!~/Še{ã·ÿÏ /Ó65LÏËØÄÑÒr/¿èÓs^½{ôèE”;d}µ¿Ë|hû÷«å¦ro‹G?]Ñcf݉]c—»ågü÷ûå6°X¶7~½³¼ûû•zw6æf®SÙë²eÄ-Ž€ØŒìnpÌà˜Á1–'ÈûuÝè:°0:ȧ]ÙI»›49U]Ût³Q‹ª‘œª v›–;s®>¹‚ãÿer~3ë8°¨aËòˆ=BË©O½¯ÞWßñŠÚJ›Gæýq¿½CÐb'j~òÞ¿«<§MÞ,nšÙóA¥®# ͯrgBÁÈ“åü:… í‘wC‘QÎâ—лýô‡Ž%¼|÷ Ýzš!þ>Ÿo±J.q5v|ß~g7Gxt@õȩѿZc ŒÝó’ä@ï>sDç Îõ¹{íUÎNñ×z±^Ëâe—>Ÿ0°â¡½ —\«ñùÒÇo©8¿qZ·‹]MÎëš 5£Báÿüx×%.ßñ<±#¼ZÔ0=/c³ÚÒN‡µ ö·G~²©æ$÷~b-âfã³ÕÐ˵÷4»¶:S3ËŠ_ëï­t!ðR‰7E¦'ç^Ä‚u}þûýr*žïÉ­W%ôýJ½;ò¡f%¼ß±u⊂– Ç<>§wƃ €v×(¨QP£ Ë“â«J½j×{fï8ϵÜÅrm‘*5ê]>~@ÿ¿«ÓÀ·JÛ”êÒ8N,jزw3ÄX¼b\Þ„ïB ý¹z2~‰½#ýy˃¾óíÉ}4·‹X£y_è›ÿ~¿Òþ.ÇÙ£mû¿ã)dqEAË„c€$ý†ÁÀ»ó¸çqÏãžå‰ðíáÞσ3Û;cäØÒE‰ÿ©=Ý Hï°¨aËòˆ=BË©ï»eß-ûn™åõIoæ(¿/°_ðé|;àR£_ÿÍ *~ Ï®äék¶üßCóöK‡ó7uYâÖGüeÙM¶ ®`-TNÛ¸x³Ú¥?ÏGœñz^ÿ Μ²‘g 5èpñÄòÅ+ mùÔë†û‹U/ïYæçm kï;K‡ý<Ú¸õ)à+þrVÖÁþ3ìNü¿LÛXÔ0=/c³Ü¿š{Íu}i¾ü¤?j–s¯.Ö2½¹ÿ3l¹·ðºa¯5AÕŨÀâï¿ ®Ü³ÔM«ï sîªúy´)\ã¿ß¯ÿkå8w9þÖ9¸önË2ˆ+ Z&óø@lTé+ Îä8_ @Fw;¬Kp{Àê“f|²ÙòÙßÇ|¾¿º³øTéN#ò»'­cã8°¨aZp|¾·ç—’ƒì|0»Uðh,ÖÿÙßÿ1f°ûü{J}ï¿¿[¹9«Odă­/ãÿ_ÿ+KÇ -z×çÇz-Å’³ø}¢äŠÌ3á89­à’ï5ŒîàD{Ëx=¯è]ÁuR6òôªYújUbù[öÏ*W-Çú>ÿû³ïê1YDªÅ†ý)^(-þ¦õ¤Õe€xõtÒ–iÇùíè]ô¼2ž¯&WÝUº‰=úòm{twY!Ö²ç÷æ­|®$íŽDõåÎýöY]8ôbÙ˜ÿ~¿<>v—#,gp.G»Ëq{×—ioÒ»í뷯߾ž1nCØ¡c`_‹êx³Ö [>{Ñ¥ý?'¿œiÛ5²¥<ަfÛ'©ÙíyúoùùÎyñ×åSoæÁ-ã“¿ä2¹ZGô‹Ë,ðQ‰¿Ë¶«ÙúÇqêûâ_3.U§ÉÖ®%io¯ç•’açó)QõÚÇ_þ… gô¶} ;f|_¤Úß —pJD¿ÿo…beÛÌ÷0F}?𒵿·÷V'-؆± æíRÆl^|µ-Îùœf'¿„¥Ì£òI–÷%¦DøÍúï÷«ÈÒ‚ùÆt;üßï—cÝåxø¢Û±À+´7éÝ«u¯Ö½ZG È·!Rå à—a=ŸÖ;`ËgŸOéøod$­c“¶]#žé‘ýžö92k¶mñ×å½8WÔßÉYf•; FžÌÕ/wÕÜÓr·Ì—3¿wµŠßXùF,ß–J'ü—<Œ”îy¥äÀ×¢¶m«u#þòE$lûŽ]_õ{Íóÿ·Çôßÿ{°CäIß²¹åž–kL•ù½swôñÊ75WXþ%O#mÙï `§©y½s¿J~ ã/G,ù`‡–}Ëæ~”ËœkL•y&çþîèã/®ÿ÷ûåˆw9x€1d '€Å;Й˜˜˜˜2ÂTêY©g¥žYžöRg `ÛŸ¾ü¨ÃŸµŧòžÈ=,×í¤ulÒ¶kdËÀbÐ2™˜˜˜˜˜˜Rêïßß¿¿¿åõ‰ýÆö[üÓØ(ÿ³®¶s¼wÜNÎ2½>êÛó›ó)ç›;~×_i50-Óè=¯”øßþ?ƒ¾Œ¿ü‹.›ülûvö›;·z kaíÊŸ¾9_9_Ê~¿n·ÛõW®©?0=/#M–û×~cWÌQäUÁb-›Ï4Z_õŒ¸×‘´yüû+ qIùïW—¶uº¦þÀ⊂–Éä˜Ç‡ùÎÿpþ‡ÔŒñ¦#wŒÜ12,KX–°,¶'Åßg 1€G£ FA‚,O~¯*õª]ï™ãŒ¼»I“SÕ5ñ©øÝ­ô‹¶,Ø#´Lú–__~}ùuËë“ê[¦_WÂ~Ágþ¦.KÜúˆuUy¬ß’Ò¶|ªú/ÓVýv©\ßN¯‡¹–Û×¥øð…b|_{À©óL°Ó.NUBÞu½ c÷¼öÕ©÷,e#ÏŠ9Ê9ý§Ç´u笛ÕêÙþÙ9ç†öðZœš°½Ÿ 5LÏËØ,÷¯^—…ýìÑ—?:ïÎ~MJTo‘RK¶Glïûg¶=îÿ¥åÅ-Žy|a!5c "¸ _¾:|µíGEñ÷©úÆG °»Á1ƒcÇXžïÔug ·½à®Êß(eËg¿˜ã¾ÉÅG|ªÍ`î.+Ò{,jز­®Yþ_ûÀ¢†éy›Õãçé°¶Áþ)Û—ñ•÷çeþ‘·÷ÄJ™J}b˧ÄX~Ÿ¹L-œÃ½w¡ËÞŸQ7 ©§Kü¿yt¢û„º’ö ñ¾_MNU׬=al¹|¨Y ïé–5/®(h™pÌãpz—~Cßø€vÙ?²dË“âÉè6Íý&Ù;Îs-w±\[¤JM§z—·ö©ßê4ð­Ò6þ§¢Ö4ßXÃ)iepœXÔ°eyÄ¡e€Ôw¡Å…ZX^Ÿ”Ò¹è°Fö‹?½|ú¾ŸÿïÊäi“7KåScÖ.îcíïE(›'GÖNåćJúü³ÎM’ÓÆß^±üÔý×oÿâ¬QYÖ|HÁ‚!i™Fïy­yë7)e#Ï|ç]µªíOÙ¾-v04èÏÑAÝw•dgsã/M„¾©9°¨az^Æ&Ž––{ùEŸžóêE¤l_>þ¸¼âžÆŽŸ÷¯öwŸÕÂ'KÙFñË&–“üòüßïW;ÅÿujÞÙ˜›¹Ne¯Ë–5/®(h™pÀÆ`ŒÐ7>`€Ýý‘ýìd·Q÷ ûÅŸþ[~¾s`žåzÝ7Ûë·JU‡O™w ê°‰‡—価۫џåó-VÉåßÛyyC ·*Ö4ù#§mìSaæ´-žï¸iÕ-¼[x7Z¦Ñ{^áÓ+×Oáà3GtÎwt}r…^¬×²xÙÈ[=+½¿wá’k5>_vvâ?•|›©ÓÍùsñ7å=Ëü\࢑`QÃô¼ŒM--÷òå)6Õr·Gþ£H~]©M©ÀÕcCNTž ÂÝmkï®6*þûÌ„Îy-Q"¥îH¤mÜlaÙáΗ,kC\QÐ2á€Ó/ã…¾ñìîÞý{÷ï½ãEŽz½ïiïxÏïÍ[ù\)Ü'ï<½>yW(VdiÁ|×¢:Þ¬uð¨aËòˆ=BËi :.:.ÚÚõ˜ÿù¥}úÚ/­qãûû»\ÄËœm¹¹“gSŽÂ*ŽZëû³ÉEsÚÀå ¼5ã©å6*ÞŠ·âMÃ4zÏ«ÑM×H{ŸwýM-ë©U´ê¥Â›lùNÕZqH¡¾"6R,j˜ž—±‰£¥å^Þ°±á„ª®öèÑ‹W:w,çåæºÍöX¢I‘2ß:þbxÏEõ¾Oïpl\ïµAÇ­¾|;:.:.š– G@œ¾;ô`qqÖNŸ±#zÚj¿8~w¥óëò•K´.e.•O*°2ÏäÜßUÕ‹írj7éšåÜ«?ÞÓý|݉Éï 9B,jÕj7)0.0.† ÒJßµ}×ö}GëslÖ”m’½£P±.÷ ÝzšQ¸[Å…¾Yó<+T¹È™<} Ž.´¬Ð(/¥zë’ƒ»u<-c{ŒCœú°ó¶ß† ,ëüö··¿½ý-m2cô¼ÚjøS,a—ÑŸUh´Ù7kÑòÎ^EŠä­í4µÀÆÜ¯|Â+ü^¨ê·]Dyly>%Ê£^{#½ZÔ*=¯Œ@--÷rû2ž=]ëØ»/žôm3Ø£»Ë ·­NÅó=É¿-{î/*Æm^pBËMåÞÿ¾„=žENÍøÚ‘Ž·kݲ¬sqA›„ã v|'ôJôÐo@?ËSéù í®ä±Ç‹’’ÿïö+‰½ç¢V-k[ìZ#H[»‡ï¾{¸åµŠg±Þ£':¥f,šðs½Éê׿þ–4Ø7Új@Õ9®s\gÚdÆèymèÇÞ¨µ@×2îM©è7mç¢Véyeã:Çu¶v,}5¦Wû ¬öîé'üCó´}™=摇ƒ[U|kYÛâ*‚& ÇAì˜2fè0 •DÕˆªUÃò´:uŠß]#uQa.jÕ²¶Å^ 5€´õ°óÃÎßq=g—£nkÓ{àêhóªïOè±ì×ácG5v­1#õ¼ú7óIï«£ÍE­ÒóÊ8Ä‘Ór¼Ør©o÷"Rvîñ[áÖ[Ö¶¸Š 5Âq;Bßø€©äù²çËž/³v¢}Ó¿wþ áto’?5i­žÅ^ 5G0&`LÀ˜w¼ú«ˆv[} nSj^<°ÖóÆg,ëùäÑ“GO¥f¼ž×ÌAà n“?5IÏ+£GNË=Þé¯a®sG"¥æW.w¬Tëß/qå@;„£!N[„¾ÖRUØÑ°£aïè,éž¡Ý|>§““ü¹¨IË5O Žc[÷mÝ·u·¼nq+úm‚Û˜ûþ6¯“lí¶×Ûro˽-G;Ìx=¯E}}>'¾Mþ\Ô$=¯ŒF9­Wï ì:>0?÷%’?³ÌçBÙã–5,®h‡p4À©Ð×À€TuÊó”ç)OËpÕ&Å"œjÇÝë\‡®Nç·Ãº×5iYâæiÀq-0£ö¼<¿tªw;zwpBÜ$ÎoGï®#j’žWÆ$Ž¢–{FÑ€:ž¹;‘œyÌÝîu¬>[ßüyóçÍip4À©ƒÐ7±€©ëXܱ¸c^Ù¼²ye{Ǩ9ZŽõ­H‡'isQ{–µ*j[Ô< 8šðEá‹ÂY^ÔÍ×N´‘7ióš~l­³v#ìa…‡V íeìžWdŒoE¢Ü¤ÍEíÑóÊÈÄQÔê1vc·íǸG‘´ùŒSážuÞá, _¾ˆ¶ÇDl?„¾ÉA HÚm‡¶Ãòô\z»Ó¸üåß–è½#èÝÛç¢ÆDíYÖª¨mZpLw›Ýmv·™µÛ75^ÎõÚ5ˆ@7±s·€Ð“==,ësœï8ßq¾´:z^¥·»È_þm‰ƒ­‚ÎèÚ>5&jžÄÕ²%Œ-Zãã²÷¸S‘Øù?Ç»”©S×Úõ€¸Z ÕÁ1§,Bß”B H â*ÄUðê5Ôk¨å {Uß~•ëÒù±}.jì¿@ê5Ôk¨¨mpd“L^0yåõLñµÎ5ÞL kûÜûýoÏ®³:>åà{ƒï ¦½ÑóúOÏ+|LåºÄº¶ÏEÑó‚ Ž¨ÖŽ·çµëçû¶Ï;žöêáú—eMŠ+ÚpòúÚ0 Í™dþ‘ùÖNáWììYûWº@ ÏE-Y«CQô4àø=|ôðÑCkW5•z𘿘p7á¹ÿ‚Ÿ(Ÿ¿¼K•R—,ëð‡+?\ùá -ž×»z^¿w­ý+ánÂsQKô¼`I]-[…ûêBÏ äy³º·GÐ7Ü»Hx.}Þô{ïjÖ¾_â –GFœ|Û×o_¿}=¡oÊ"¤±>û\ìsÑòtîwÐå÷±íz÷ ZGwÈr.jFÔ’eí‰Z¥u€ôecýõ7ÖçuÐI›—ÞæÏ5¬ÕÞ«¾¯ú¾êK£çõ®žW•œ…=bÛØ´Ž ×r.jFÔ=/XGWkÇÞiüÛzLçFÒ^û,® hcp|ÀÉJ蛲€i,F‹Ñb4k'ø‰_ø.)w•N‘å\ÔŒµzµJëéÌÆ¸qNo8½átË+œ‚ÍJßóšáßjIÔþ"Ľñ畚 ÿk~u«Ï&8RàHþWÏ+ld¹«Ä½–sQ3ô¼0q¤µÖNLÑM»yä>Füùë^«ƒªUSœœæZÖ˜¸W´.8>à”ÿ9`Bßä#8„¨îQÝ£º[ë,­®²£ò@:Hb.jÃZ]‰š¤E€ôëή;»îì²vµãZ%¸@KS@ñÈÚщ~«çŸr{m¤µºšî1Ýcº- ‰éyM)Ty ¡¯˜‹Ú çÛ‰£®µ6sê§6Ký6sO#®S˜Wp‰°¢•j”*o­®Ä•- é00ÀD‹(QÌZ`[Æ‘Õúfän’¨kõ#jVŒaïÇ{?Þû±µ+·²¡3{ ˆ\} cF¿Þ¿Ì8ºñ‘µú þ(ø£àb/Ä^ˆ½@[Bâ{^³ûU뛑£_Qô¼Xâ¨+ŽÀÖÚÏ… í—dÔQcÃzYës¹ì kõ#Îþ´%¤/ÀpLÀGÐiZ§i¦Yë lªÝ¨@ÕQ­›$¶ÚZˆµG#FÙ,²Yd3kWA¥¢›õîÞ2 ûÒ—e §~7O;½®H®ŸĸĸÐ~¼ž×ÌòUGe´èWl5=/$‡8'|”>»¯íaÿ>çžÆÛÛaY‚³ŽÚããY¶§µ:g|ÚÒ#`8&`€ÃyUèU¡W…jí¨µ£Ökƒ'^*=îFX§àÚ†í&Ýë\[l©µzµ$jŒ–Œ*üLø™ð3Ö®ˆŠ{×:ÑxµßÅÙ£.;ú­üzl‰%ï%*\Ïv=Ûõl´¤\Ïkäñò×ãnDï®mØè÷FôŽàÚbKéy!¥ˆ£qÂGì¨ÑÍ®‘ÃØÑï‹/{ί7«ã¯.®Z«q–§Í ý"†c"8¨gŸu~ÖÙwœï8ßqÖ: ÝC+ ,Yø¹KÏ"õ‚ŒÔA[$¶ÎÚ¶‹šµDkw=îzÜõqŒû`ÜÖ®Žò¾*Ú³øKŸðˆ…[§/úuѭɨ/.„]»Fc}z^ÍbK~î²ç\½ #E¿b‹ÄÖÑó‚=ˆ#sÂGïõë–«ÛxÑïÕŽ­kE”êYð—|«­m»8³‹³<­é00À¡=ô|ÐóA}û6öM¸Ëtèx«]¾Ó{IlEÂ[*jCÔ -d ±q±q±3ügøÏðOøzÉëd¿kÓr§÷зFÄœK¿› ¿¨<ȯgÂÛ{¥õ•ÖWZÓ@Z=¯åÓ|¦÷èWl=/¤q”N¸½…ìrs/záïß:·­½/½ßÙX»ã³UU2'¼½âl.Îì´¤wÀpLÀ€tàÍã7ß<â=Ä{ˆwÂ]ˆ¯ª–q{ö0¤[DàÎôÒ5¥%OxëD ˆÚ U€ŒlMÅ5×TLøÚÉé®Ç›ªy½óOϱ~}z }ýß.=}0Êýe÷kc†$¼uÕU{Tíѽ¨{Q÷¢hH‹žW»ënφ(ãw¦—ÐW”V”œžRŸ8b‹£wÂ-pÑ•z®V½ÝØûnЫôrgãÜÁv3ý/p­ZxhÂ['Îà´ 00 Y{zíéµ§sÙà»õg<¿zX½ÛÔÀmúVï65p›(¡-Û"¶š½ßÑï~ô{[®¦\†ÖUC÷ñœ9n‹³Ã…¾•—´Ü7½üÙANßU±e[FºŽtéúzÈë!¯‡Ðà=¯¯Úx~õ°º2(p›Ã…¾Õ•AÛD éyÁˆ£·8’ÛÒ&7Ä5ü¹j•W³zu úÄÑîl\Úá×Z¥{Ô©p dS[¶Eœµi0`8&`@ºtáì…³Îz{{ÛÒÍÔ¶jÃÒŸ;Òn–ÿ¥4û=ì‘v³ü/‰’ØRf±ubKÙãÖ<Îõ8×ã\½Šô*Ò«ˆ-WYEÆV-0¥òã±Y_I«Ð·æîÛ´ïË>ëøí›®f%“’IáN¼çÕ¾BéÏY¿ÅÿRZ…¾bí¢$ô¼àÈÄQÝö³Àì¾µkz5xô°ûŒºÍÓêÎFT³æ5ÞoøUi¯b£l)³8;‹35{FE ÇD·ŽÅFÆFÆFFºEºEºåJ¤‰í}—–»vHoµÕ÷®]FóÕ[mõ½+֒ز‰-[Ç^°ÝžÝ{vïÙØ«/×ÂAQ-›WÚ:²È'ü-.õ0eã^ï<Ó?\ÿ‹{D·y£öåtäVÑö² k0¬Á°;=vbÿ"}ö¼ÂÆ–»vH_>Æ÷®]FóÕ—ñ½+ÖBÏ é‘8‹£½í­×#gaçî v×mQÁ㜩Ý4ÿó){OãŤž?×ûA>׬Œ÷ÌÞó*e-•دW.qFfÿ"# †c"ă§ž>x:Þe¼Ëx—\ÉÐú}÷ó.¡SçúÅx4\µ6dråf;O4©_½¯^"´“O#1ÿ"þ¯øKñ©ä¬W”\l{ 9^·ÝþuûåË–/[¾,9Wh…ÿ¨t³æ·¡/{¶õté>Ñ­¢û:sfW.;jÚµ•'^õS‘J†Ÿï^>d@³oÿ)û¨ã¸!Þ.#ë =˜÷`‘£Å½“¶Þ–3ZÎh9ãÂÖ [/leo¸=¯ö.¡SçöoçÑpÕÚðõ•›í<1÷Zõ¾z‰EÝ|‰¹øñÅ_ŠOÑó‚Q‰#¿8 $­…—ì_08ßÀ­+/ÙrvëÚU½‚×åi0¥Ê4Óóš? Ýá3A«šÕ§ÀöóŸ{VS"/·¯”el›®e_×?UêTѵÉù~‰3¯8 ³7‘qÃ1 è~Éû%ï—Œø>âûˆïs90QBQZö€=¼ }ú2tÝþuû×í/tªÐ©B§óÊðË•_®ürå…ˆ "Øk çEÏ gqvpÌo–8«Š3¬8Û²×1Ã1 îm·=Þöˆ2E™¢L":EtŠH«®‘X»(‰({ õ-~¶øÙâ£7Þ`}àMÕ›ª7UgÛ϶Ÿmß®¸]q»¢ÈC‘‡"W‰­[%¶Ip“à&Á#åGÊ”ÿ+õ¯Ô¿Rúžúžúž!«CV‡¬®ªªB_ôgŒÃŒÃŒÃl îÀðË”6—6—6û=÷{î÷\¶—é[é[é[ÅnŒÝ»±Þ¦Þ¦Þõ€ïÕ`æ2æ2æ²€3gÎH»I»I» ô²>;|vøX(X(X(TM«šV5 ýÐ|{ïo÷s0ü$Õäjr5Ùã™Ç3g²<#v|ìøØñ”*J¥ sÝãï8ê~Ôý¨ûÇÖ[sl˜{`ï[ß·¾ßÛÛ‹à?ng¸ËùŸw0ôŽ‹ÄEâbÁó‚çϵ¦kMך.Ëó\]]¤¤¤1ÀŠŸ`j5‰šô%îKÜ—8>âUÒ«¤WIÕáÕáÕáèFþƒ0øGA ?X™H™H™ˆzzzÁ÷F°6’š$•Ö„/æuï—/ý²À(’v3"i„›‰ÄÉØjí,nö±ÀÙ:Äð@Ø2cmí1zg”ƒO~‰¹‰¹‰µdµdµdaN SŸ€‡ˆCîݺ?ìY{!zÙôYû­\v-X5)yê‰Ã* âúõ;8 ¥ÏZn™íõç_&k¿P]ÿxæŒm„Æzï‘|øð! ecËÆ–èLþƒ0˜€áhõhõhõpúÃé§?8YCãyZqµ%ö$“ýœG¼ÜŒEGmÎ:8ˆi?Q›Àùq&d$d$d0ÉL2“Œ¹èÏúnœ_‘_‘_!–(–(–ÈÉÆÙ˜Ío¤´m·­Xö´rÔ…Wâyßô~ïÈT”.lvŸ±ÿÓšÓOgkN©à|›ÏCßCßCý À¯/ÀÀ•¼Œ¼Œ¼ NbTó*yJC‹ämîúüœ¸·û‘ëiþ0ñ­y„®9'ǯÿAÿƒþ‡æ Íš'`Þú§¾›J™J™Jq²AvÔn!}zÌר"Ò{;îåd¬jº¸jë¹›Ä?æäøÏxñ:ãÕ”Ù”Ù”‰^àWƒ9¾S—©ËÔ œ8-pZ÷¡©î5嫊³*æ|yoDðBèËndLs%™ÓS–ZÌÒ{ÂIœššŠNèoúJL¢Q„Žß=~÷øÝî7Â^`:­-où™û›¥y!ôe7’Åÿ¶Ý~Eiøfý%û9ÙàK›™63m&:€¿! f0|êêê ? ? ¿î#ÒLaKо6/‡¾ìFš¯ë ó/¾teÍ5ÝŸcÜã¸ÇqÑýïÀeeeB‡„ ê~Û+BFê7Ñ=¼ú²½3øÃÅá[Wý´°~zH÷çèYáYáY¾è 0p¤íuÛë¶×êöêöêöìÑÏG5jU>¶¶8Ÿ1ë“Ñ/ëX&dbô?îZ´(h‘MdÙèþÆËpnFnFnF÷Û[ìÖ,˜§F½xíäÀ¾ý²ŽÎÎûÄE´º?kË–;-w¢{ú„Á€áhËnËnËVRTRTRd‚F7›zéœ'4ÝI üý~;¶:»šÅ’†ªK)+°«@€u€u€5ÑF´mè~Å›pžhžhžh÷›Y.&ûôDbø#ôe -ÎúmY1á/ÁËcž²«)šMŠFô7ý3 F lÑ^Ó^Ó^k¿×~¯ýž]ð™»áó3þ }YGæs·9¤½ÞÏôÍ4Hìª!!!‡ÎàW¼Wœª8Uqªû­«¯Ù'Ä6dñkôûíØ²åÊ°íÆ’es¦NcW çjçjçjt2@ÿÔÂ`ÀЕÛÄmâ¶í'ÛO¶ŸØ…%ËmGMêÑïÆ7’Ið;#=­‡ì*“ššŠ&à?¼·Ê¶Ê¶Ê ¯^-¼šÝFUþ–3™›­úCôûíHº¦-¹ècÑÓØU&Þ5Þ5Þý ПñwŒºiiiÍ.à,þ`“`HîwÑï·#Å͉d0Óð¤¦3»*UÇUÇUÇ¡—ø OÀùD>‘®è\ѹ"vÛRygÜ6«ö·è÷?1ðk’›÷‰Î{,Ìv;¯öÚ?jÿ@Wÿ…Á€á?Êv–í,ÛÉ.ÔÌ|`5^ß¶_G¿ßŽ7Ü^’Þ:ŒÖ–VÉ®b´y´y´yè+þÀ ðçiŸ§}žÆn*Ñüøµ 'ûsôûíØv¥CbÅÜ3™ã YkµcÑŽE;1[™­ÌVô6tâ00ü?Ú´?h° 2CÏ׊CèË:Ò>ºŽ47QÚ.¿K΀µn>ŠÝÀ~m\ò©äSÉ'v[Nz{'­.FèË:–7\'nÈ®n¤]¤]¤]èm`ÕwÃ`ÀðÿuuuY#Lý*#e™šnËH‡÷²ëݘx²‹Ï+**Ðcü¤åJË•–+Ù)Ù)Ù)¾S|§øNÑÖÖ–å‚Å0‹aÃ"®F\¸Z:»tvél¦Ó€i€jðŽ_×5DÍ®1»ÆìÃúÓÿY¼’1Ç Ao÷cиC†ëÒØmÒU}¬úXõìô­0ø—ÀЭã²Çeÿÿvðý°ûa÷ÃÄ Å Å '1'1'1ìÏšá3Ãg†»ÍèÆPGAÓeˆx9ÍtýXkø2êeÔË(¯_¾¢·ú®ñÖã­Çÿçýè'N8œpXtqÑÅEÇŽ;~ìxT‰ÌÝ1wÇ܇B… ‘ýéž:>u|ê(®*®*®:åÔ”SSNaZà[-òWænwDÄËÉx×YdäÜ2ô üL€û5Á‚#Gt¿üDð‰àÁÍW6_Ù|eŠ÷ï)ÞÜüÄ«†W ¯²þ”Ø—f{t¼ër>2‹Ýö’.iŠá ³Xë)"#"#"ƒè»V®^¹zåêî×ç³›Ïn>»yéü¥ó—Î'8Npœ êÖU«0VasÓæ¦ÍM²<é–÷-ï[ÞK—.]ºt)æ  ? thí:ĺœÍ·þ>½} :~&ª=Õžj¸_›?qþÄù¿w#øåû—ï_¾ß6jÛ¨m£„u…u…uæ ̘ÛýÏš•8+qV"»ïIg¸ê˜· ÖýÞ±âó7ã®:Iv’ì¤1Bc„Æ¡Ïú¢ËÁ—ƒ/ïú|±ébÓŦ+VŒ_5~ÕøU¨$oï;Þw¼ï.¡]B»„¸‰f5ÈŠÁ Ó̵MÔ–Fõ¦Å,6×¹™ `þî?ñaæ³t7Gz™”içûÊ\Öœüù­]EE¶PÖFÖ°g?ñÃ¥—>\Z5yÕäU“ <x„Ùè¶:ÏR˜²“h¾þ÷Žíˆu¿w´Ý²ûùªrtüýèà°Aøèú#Ð-Ð-ÐͮȮȮHu‡êÕ=ÛVX§°NaÍC›‡6ýŽû÷;ššš÷íÏ2¤R ©¬_›™dµN?Q.7£¥‚Æ6•.b`·2·2·2ô9>ðÑ?¼{ö:l~Üü¸ùqnB½Uz«ôV¹¸»¸»¸ååå ¶¿ê#Ô3Ô3ÔÓq´ãhÇÑß;ÎÉ:qj广}¾bð”é´Â4ïGý©»lŸbr#i”9U7Äø£ªÒGÎJUWUWU×û÷!ïC˜_|àøÀ>zãã\̹˜s1?jhaòÂä…ɯµ^k½Ör¡¹Ð\hÿù³Še¨e¨¥ðDá‰ÂY¿65ÿ䩟åöl¤/¸F“”f7/ö©ö©ö©èv|àøÀ>ð||ûáùÌó™ç³ë¿]ÿíúoœÿ™¿óóûÑ;€s”JJ%¥2mDÚˆ´FgŒÎá&xˆ-o.o.of÷9Œ×rÒ\„¸ÜŒUkív?f­­ÙT³©fSÑÕ}S©ÀT¨¦WÓ«éAFAFAFܬ̖‚–‚–‚Ùc³Çfm—h—h—@…{[£z£z£ºáÆ8™#»ÉZŽªú¥ú¶F7‰³nOH¯~æï”öÎÕfuéã,Eôg¨+”ÊërrÌA—ƒ.]fÜ`Ü`ÜÀŒü(O‡=ötë¶NIuIuIµ¾¤¾¤¾ä¬„Y ³z Ïן¯?_ßèƒÑ£¬Ÿ³mî,)âr?ÚÏÚ£¼Z‰µÂ/ë^Ö½¬C·@gp+c-c-cÍùŸê;?ÿ燾ßBÜ'µ½m{Ûö6ózæõÌëæoÍßš¿ýQïL°2¨{ñí‹ÝlH†ÙŠ^ “YëÜ"Õ"Õ"…Nà+Sˆ)Ä”ºÃu‡ë‡y‡y‡ys³›&„ ‘‘‘Ñêßêßêÿ(éåéåéåœÌB@¡¡©f^˧;f¿óÜëT¾|1žhFRKRëþ,ÝÝÝë÷Öï­ß‹Ùà»ø?ŸD%¨µÂ³Â³ÂÓÌÜÌÜÌ|©ÏRŸ¥>?ê¾áˆ‡G袈oÀØV~õŠÄ}vu¦.¦.¦.FÏô7}7ôý`>ÑÞÖÞÖÞ–c™c™cùùÝçwŸßõ,rh›ä|ÃÌñíÓi–òúGYëœx%ñJâô-Ÿ“%d Ù† >F¹D¹D¹(ŒR¥0ªgë³~´~´~tʱ”c)Ç(‚AŠ Ì9æææßK¾—|/u_g—9:5j-›N›¶÷•ß5e¶ÉFêÊÇä䲺?»Üq¹ãrÇ¡¸ÁQÌFÍæšÍ5›­½¬½¬½ÖŸ_~ýùžÀtkéÅ’ßþ¨ñ¹Íú™ .°Ö9*=*=*=ÐðGèû-À|‹º‡º‡º'ß?ß?ßßî‚Ý» Ýo ›'¨oQ~…Èö?´SÞ¹Ù¬‹Gmë¬ÒY¥³ ] Ðï$ÉDr“V“V“Vܧ¸OqŸT­U­U­{ kÝÕº«u714141”,I–$K­D+ÑŠ2‹¶•¶•¶Õ"Õ"Õ"µûz–ÊØ*]뻿q˜ Üþ ­]c¶\Ǧû3÷ˆ÷ˆ÷@oô 70«úWõ¯ê_9~rüäøi›ÿ6ÿmþÝo0½­{¼0‘í3ÿ8%³i3kµïl¸³áÎô<¿â¿Ð÷[€ûÚSÚSÚÓpépépiÖíàŒ“–vú7ÙöÆh¬©ê¨$ÇZóŽ1c:Æ 3úµ¢ƒè ¿%¿%¿MMMÕž¡=C{FÏ"a•••–¸‘q#ãF6I5I5I±D,Û?KKLL¬×ª×ª×Ê®bN®:—Ô,©«\TÌóÓï9ûÙÆD÷݉Kà{ýؘUÓã¦ÇMÏ5œk8×ÀúSRÛO^Þ¨„ÈöÇŽŒÒ$Ùmð1Ÿ2Ÿ2Ÿ¢óø‡¾ßBÜï¸.w]‹·ÒŠ:2mCXÛc¢©ùWÝ.îÇ*M,M,MDO+Ê^Ê^ÊÞ”¨”¨”(ƒ‡ ö,–—’—’—ŠZµ*jUƒxƒxƒ8ñ‚xA¼àïêÑÒhi´4ý"ý"ý"¶wÁ šêŽ'ÜH&üúÛ§ã“ËAóÅ– ÛT„ÙÕ!ª6ª6ªWçz;î4£bFÅŒŠ.ÞJ{íš”äoˆl{c¼vy…ÖìXÖšWn®Ü\¹ÐwõŸÐ÷[€û“"¢ˆ`»Nt{@zÎ;ÛÖ-»Î›Ò†Ëjµ›­å¢j¨—¯Ü¤øXq§\Ü%-+¥K ïÌÃÔ7(¿ˆŒ4©Ñ.nr¾Î«o/®Mµ76ÙÃZóÈÂÈÂÈB4&p¢µ±µ±µ1C$C$CÄÔÊÔÊÔJ– akÂÖ„­©Z7´n(1‚AŒà*1+˜Ì ëtëtëtvçž½ÊÊÇ`tÿùKḨnsH{ÝÉzGÔÙÖ$5.5.5W'z;n-h-h-`ýþÛÊf1§(òZhZùôÂgqÊ'•ª‹Ž«/rž±~U¡ð‰õuóÇ„.’žT8áw‰àÙŽSÚU&l9»$´~Ú¥àmy3v¥ìZ#ÄZùóóst>@ßÒ?Cßo!îG¨iÔ4j붯…f„êÞÙª.k#ih¢¢¢0Sþ»‚ÚÔäøÎô¯m¾Óþv`®Ãz´V²V²V²èLè™öíÚd¿È~‘ýÂÒÍÒÍÒ›H8h|Ðø ñÕÕÕÌGÌGÌG}±&A*A*A*ìÎ1¯Òz’AE?}"Ås·÷¤^rú»4n²«OÙ—²/e_pet¯·àüÀüÀü@Öﯜ¾Er‰;ïÄ¥Áe‡w¯ß™$3>¾óØæY =¿H­JüÆÒ«á6GœD…R=OîÝø:¨åPÃú¡o:Ħ.Ôè¼'ø¿ã­¸íß«$N°VþðäÓOFçð&„¾ì îGÊ~+û­ì7Ö­ÞÜ-Ÿ_ÈðÂÆtg¬ÛyTrOd‹djÛß6YÂ.Üe=õóŠ‹åCysÛ«n¤ì…~&ÚhÚhÚèBR!©äxÍñšã5n"aÏž7—}.#ʉr¢W«Þ€®]3ºÆúýó¦žùgóß¼”vƺG5¦Y Tàeæ³S.›N° wYÏevòÄ›ã>ñ܃ ¯\_±c6ëÑ '<À;úrp?’™™ɺÕ[¹íK±8/lI—ž¶}atÎ{«¾¢†vØkc7íÙœÜÑËóæ}ÀžÖz QÀðkÑÐД¼+yWòÎm„Û·ÜDÂ.….….…Å1Å1Å1´Z ­ä§ž ƒ` ësÖç¬Ïuñ‚qM3•ÂÔM¤„Зu$Û9Í5Í`{Ï´M¦M¦ ®V½¿~óúÍë7¬ß¿nó¥[Û†ñBPõ\Ê_Ô÷^ÈÛyKdßl¬Z¼ƒ“;zYCbÞ¼xÑàI¾ãëzo~ gú~/ÀýÈ×ñ_ÇϺÉ[Ou¸nÁ›ÛÓÝG¹L·å¤CÑŸM uþâý8ÔÍøº0ð†0C˜!\¾©|Sù&/E/E/En"a‡Õ«V”””PC¨!ÔÞ;ò‰‰ vGÒ¦à¬iæ… ·û1ïåçfƒDv5ì8×q®ã®€oõv|}ÔõQ×G±~Êá+w¶çòÜ]³ßÜãËî¿2–HŸ‘$©g‹‡-5âýxçË9nSµð„¾Ü@Üĉʼnʼn±nï6ÿæ(kú˜77¦Û‡:‡˜¥ØYîOZK¦˜dØ¡5ÖÎ@«@ÕSuˆÂ_òØ¿[—·Î%ú¥©’Ž$`à}ŒFF#£±2­2­2ͯگگš›HØæ’Í%›K¹™¹™¹™/:^t¼øGèÂpa¸°û‰yë?g"Üå|tÜ¢©vˆµ’Á‡ƒÆð­Þ€Ïxñ:ãÅúýÛ ®ZKèófÜ8àò¿ÛlÇÚ¸ÎÀôI»:¯'ŠJ/œwâýâ3îLŸ6þËØÇì¶çxí\Žf.9=0À¯‚Ð÷GAÜÄ–Ç–Ç–w/sÔ5}Ã;ÛЋ¿È´¾¬y@%D®Qn”l6»-~ý£*ŠêÎ{tôÕ"û@œbj§s0ôEL¦ Ó¤fOÍžš=ÁsƒçÏå&¶¸mqÛâv–m–m–mû¸öqíßýNµ4Í4Í4Í.¾óPuWåp¢ÃÍ…dŽX—ó‘2ÝÉÑl1»ù¢œ¦œ¦œÆUЩ·àÓe§ËN—uG^õ–°ä 4a汌 ¿1¿dÚGÁ’1®ì6ãV¾(4çbí2ÅY*¼sZtvÆ`À?BßÞ€¸Iš“4'iëÆnƒœƒ±Iï¼Xq§\Ü¥ÎcÓ}¤|SqnÈ£t-ƒlúçÁ›êmöš¸1>»¦“¦t~U=ÙäïÀa!ÆñÚ«ŸXL,&×ÖÖ†o ß¾‘›HØä¸Éq“ãé'ÒO¤Ÿh•m•me»62ç2ç2ÙÆÏuÖöµ&ÏèölŒúÍt€vkUƒ>}úŒ–èÔÛðU›«6Wmºxtó•/yçÀuóÇ„vÛŠ?§P'îy·aᢵî¶û}×<Ï[~æþfiÚÞk6’k;¿*gÿéÀM4Þ€÷Ïu^†àgòpðpðp@èûc!îG2OgžÎ<ͺ±[uÊî¨1OÜlõAÃXåXçQ9‡èD¨•£ÝN“nuëÖm³0¹Ìû°·–þ ÀÀ·4 B£!¦!¦!&zeôÊè•   =‹„õ…õ…õ…“K“K“K[²[²[²;HÁ½‚{÷X?ß¾Dû„Úoq¹;Ü\.˜¯e7#Ô›Ô›Ô›hs€Þ€Ÿ'=OzžÄúýë.5n;É é¾]ó^ é<ªKyËÊf…3…¥=$³ºu³Ïœ¾²)œ÷àe^SžM` ø™‡‡‡úþX€û‘©©)Ö-ÝüÖË ZxaëYÙD>Jîÿß4Y¶×6ÕH““¯Ê‹³mPÄû°Uª†ŸŠ4`èG²ˆ,"«)½)½)=~`üÀøjgÔΨéY$¬¨¨¨­£­£­Ãú_k:ì÷›!Äå~ É1ž¤ÆZá Á Á A45@oÀºùºùºù¬ß¿Àçì•Ít^ˆH§îg,øÿoÉ9{ô®ØN¾Ê÷À´µÁ<»^ß¿c ëN :AÐÛ¾½¡/÷÷# b b b¬[º±fGu‚xaÓY[[ÉGÁ«ó¨Ò÷[îÖ_Úýç7_wt0Uî|0ïÀò‡äVÊ6"€~FÐ9€@HrLrLrÔNÒNÒNâæñÑšAJ#þ"(nN$3Ä·Üä…ŽSoÖ:ë&ê&ê&¢…z;ö™à3Ágë÷s;rt}/¥KöLÖ˜p¯ó¨ì¶î[}ªûÏ/õ8/.>µóMÀ¼wºZ+Æz„{Îï9¿ç<:úÀýH©ƒÔAbÝÒuøªí¤¶ž6Ý&ëZ¨ÿÓyTjwRä•’•HzGšž:5=Þì¤h6¡˜lÓf42(ÈèÖnÅ@ù‰r/ÙE¼³™NWs½cžËz„fffèLÊ;Ê;Ê»TÑTÑTQÆ3 gp§©Yþ®?ˆ—#ÕSŠÎÇÿK±=ÙäïÇÀF"ªK•DY«M‘¥ÈRðW— _ëí8[>[>[žõûë¼Üöj™ /¥×ÔVXÍNë<ª™M¼ÆM¶ðÙysåçâÔsŠ[«n\°uI¸Í'Q¡7bSjÉŽ]7†Êî~¼—]?ÿ^\‚õßíz·ëî;€>p¢MhÚlãÒ7#’Ö¯Ýnn]à<ÆLZËJé’Â;ηþkcìõMvªŸW\,úí¿·©q_EŒ¶ÑìLº¸÷7ô|èùÐóhLVmsÚæ´ÍÉ0Ë0Ë03Ûo¶ßl?»ßm#œ¯˜ðh˜úÉM–$k¬¤j§ô‰—ŸQÁ:¦Ÿ°Ü¯¿¢‹A7e4e4¡? ?ëí¸eiËÒ–¥¬ßÿ@ñüÔiÏy!(­ÝtiÔÖÄEÒ“ 'ü.À±¬Nؤ2;yâÍqŸ¾ý÷{Ï›-üÎËoêÁ™kXÜÓÝÓÝÓ} à~Ç~ºýtûé¬[º­îÎ’f<±%Ýy<Áë^i]1y©6XÉ¿óÝÀ£YªZ‰²d,Óì™N:SÇm9éзgÑ+Ï—7”Kt§·PÝÎ(5ÉÂO/ƒµæE Š-@Ot–JK¥¥²®¢ZT¥· Z¼ý†˜Òòàý—°Ž”ÙNNfKXܮ֮֮= ýYoÀD)QJ” <(xõ§Ðí¥—HÊðB\Úy:ú§^€ ‚ ˆ‡5j°þ”\Å3k7KðÎc“»Œ3»ÿÊkf2¯Û1’ݽËMFMFMFè|è[÷;Í/š_4¿`ÝÌýb¯%£ú¶lI÷©‘ZêòÕüY÷°6Œ5Œ5ŒMµMµMµ¥xS¼)ÞèR€o¥NOžÚų+ÊÞÛV™ñÂjÿÕ˜¤¬'ÌùË úÊo1×6]õË]<5$¸5¸5 ýÓÏ €ÃêÃêÃêYŠê“-EKÇòNtÊcáïgßlÙý#¬ÿ"ýEú‹ä¹Þs½çú&jµ‰ŠkxàþLJð!|ä&ËM–›Ìº¥ÛQëòÐ|‚Û5æíÿ\h&ût^ë¼ÖyýuÎ×9_ç;Èä‚A0šú'¯@¯@¯À.bÈ{ÎKÌžðÂj_}ßÎÏ80j‹éDmëØwà”CËõÞ°åëÊו¯Ñ™Ð?ýœ˜’JI¥¤² #™¹ÒŒ¿#¸ýQ£B鿥K† |' = = ='?'?'¿†?þløWðÀýTtItIt ë–nú!˽úËÜþ¨Ñdºj±’µ,×ÔÔÔâŸÇ?Þ<¡yBó¢€( ÐÉÐÍ0ša4ƒumd ¸2H«yÿwAß €+|ydÔÆzüÅÅÅèLèŸ~NÜéTÊ©”S)¬?+ùÞ‰ûhn¹é¿]«“€¾®‹·§ÛªP•&÷•ß}7nwsùÍŒÆzü>k|Öø¬Agr¯Ü®Ü®Ü.îcÜǸ555j'ÕNªüÞßþ–ó,çYÎ ]º(tQ~y~y~9ID‘¨0@oø™0CŸ¡ÏÐg.šœõÙ²!nÇß®Ø1jÎã‰6ãìXk›ù8óqæãÿŸ†d"™H.­,­,­4\l¸Øpñ\ù†s { ÏIœ“8'ÑÀÌÀÌÀ¬Ô´Ô´Ô”ˆ#âˆ8\Yðc!î×*žU<«xƺ¨r^a´üxf‡ÛÒ5D¹ß}ïïV‡9&†ì¶h †D÷óÒVÚVÚVšµ%kKÖR )†ÃM$lllW£[£[£Ëteº2]Ñùз°®lÖK47¨x îí‘fì:ÁÜ’õø…œ…œ…Йœk²k²k²‹›7!n‚–¨–¨–¨ìOä«ë«ë«[ñ¥âKÅÌ÷~fÜÉú‰õë'¬?ñLþÛ™7åöðÞß¹ç®mb­êá „ÿÇ”0 &Á¬´¨´¨´ ="="=ZñhÅ£z O²™d3ÉFs¸æpÍá…z…z…z„!EHáZn îßZ‰V¢Õh¼Ñx£ñ¬Û…iM–óõ…è~ÇXïæ@2!mV—VÖíây¥ËS–§,ïÙDuì8Øq0÷~îýÜûÖ¡Ö¡Ö¡Ülû?òäÿ¨j~Õüªù̡̡̡¸€—±®cvZZ¹ª€{}¤k¹Þ3Ïc=~ûëö×í¯£3Ù¡—ÑËèeÙÓ²§eOÓ¦hS´)²<&"!"!"rŒrŒr óð½~~Üq¶ãlÇYvña¢üñsŽ Ðå|ìxs•)‘À®žqWâ®Ä]éÙLÕ Õ Õ Ù>³}fûlð Ã6 ãæÂŠK—*.ÍÝ“»'wS‹©ÅÔÂÕœC DÕøªñUãÙm¶8o0{‡p—“1;ϪÃ`-Û{Ÿ1ž1žý¨Y£êSõ©úo Þ¼µ×µ×µ×åf#Ø[Ø[Ø[¸\³\³\“!ÆcàÁÑÀCXW-ÛKZ#U×"îõx¦ëóÖãwTwTwTGg~‹¡ÈPd(&2‰ îZ­ýêïn[o4; âíºÎ¦D}ç[ûM+Ü¿„©‡Ú°Ü¡Zh4IW_i÷?ËãÇ7ÍÍ͘GNüü¸“ƒ ƒ ƒ ëÏ3îOÁ´%׌$—#ÜådTØ2بԚøH÷yíÒôk&s¢¬ŒDâf¤ªYš_Ë2‹¬Ò¯wö¶öV+úÞ£ ¢Q‚(TKª%Õ3 Àί €™s˜s˜sü¶à·]„—Ÿê7º.ž‹p·û1ùʉÛÚÙÅ«ùÓó§çOïíyl^Ú¼´y©§ƒ§ƒ§ÃÓN8ÍM$üÜè¹Ñs£äìäìälúvúvúv\¡Ð 0ü¿Ö¤Ö¤Ö$v‚I·IÓt3ô²ŽL’Ûj’” CMD)§‹‡”´;hwðWÍ)=ŒF+[[¶¶l­G¦G¦G&7‘°Ó§NŠ *D¡‰ÐDpÕÀÏÑÅ»ê–ÊÏGÜÛcK¨“¢ÙÖãMMMîÏ=Ù|«ùVó-³Ûf·Ínsò;Ôx¡Þ¥»9ºÑ÷ .ñe$]îã^ÎǪÁ)MÆ·<êìb4Fsþ{¿àFÁ‚XXýª¸S%’Fa†Ý>²aýW½¬c³Îßÿlß®nòTyª<õWuTKBKBK‚žžÞÉÉ''ŸœÌM$|¿ö~íýÚxÏxÏxOªÕ‰ê„k B ÿ‘ó çAÎv[%9¶ûŒ¶"ôýv ¨0$iæ³}€¶|«|«<ïÌ/ÂaÁ°¨È­È­Èõ•ð•ð•à&þ²é˦/›òçÎÜÁè`t0p@oЧ=N{\1ê0·“¤÷ÞX]kWeÜÅ_oJ‘I‘I‘éŸÝ˜¹,sYæ2N~KºËqWh4ÈÊ3û3ãÞîGFké_¤¥ñɺ[99 /m/m/múúú¬E~mÜIy¡òBå…ì"À¢ gË·ìAèÛ92öJ_“´Ý÷~ž†°k­f…Î J›B›B›Â;=Ö6¿m~ÛüЈЈЈKê—Ô/©s _'_'_'GýõWÔ_íéíéí鸊úÀÐïiÞÓ¼§±Û ¬U·ÿh²Ño¼±ù8Ý5ìªT¤\¤\¤ÌûsͼÀ¼À¼P}®ú\õ¹@Å@Å@En"a«ãVÇ­Žg—e—e—µ›·›·›ãjî9ïsÞç¼uÍéØå²Þ\pïYV*úÖã/=Xz°ô`ÿé@f3‰™ä›ï›ï›ÿ?þjÔj’©êÕÆªì)¦ëx'ôe7Ò¤‹˜ëFÛúÞÑ9Ðýy©&«&«&7¿n~Ýü+/À I†$Crã©§6žbûÕ¾tf+ѯ`Íë[w,»›&2inÛÇ>GåGåGñ~×uˆuˆuˆEKGKGKÿöOØ?aÜDÂ\/¸^p 1 1 1juououÇu ÀCWÿ39‰1‰1I§P§P§ÝV`…}ÉÓþý~}Lz£7Ž]e¢í£í£íûîì3©L*“Zë_ë_ëêêêÌM$l¶ßl¿Ùþ ³ ³ ³¶9msÚæàú€ï?=~zütÖ¦FÌþã:À½7ú—n×ìâøÉOÈOÈOúCïQ©Ô@’ɇäÓýﻢ ñm†N¼ú²Éä›:[ ¨üÞý™Vý[õoÕ¿X— ?ã…¸SíƒÚµØ…|“ÓÇ|]ç{Ép[ÿ{7°ÜõM;¿PYÿx»úx%y%y%õÝ>¤ýAûƒöGBhBhBè¿ÿ:üëÀM$||éñ¥Ç—úYùYùYµìoÙß²W:@_‡Øj=ÕzªõT÷›€•Fv£ö‹è—áæJ"ÅPÌ„tôÙUÃCÀCÀC€("Šˆ"¾j…»Ä]ân}G}G}G¤K¤K¤‹œ¾œ¾œ~Ï"aÆ3 g¤Š¥Š¥ŠQÞQÞQÞáZ€î•//_^¾¼‹÷ÓG6ëÖ"î½Qã‚¢¼<“õøÞ o†7w]{F{F{†öJí•Ú+ÙýFs(³z¯¶±ãX¡³ùŒ¾ýþgŒ,ó!i5¶Òîþ·yijiji*V'èŸx'’¡’¡Ò}¼W&qþ¡øÆþýÒý¥WIÊß~·zÃÜk쪡}Sû¦öMþëLº]®’™’™’ùòðËÃ/s ï¿°ÿÂþ ×=®{\o2i2i2Áµз †ÿ¡1°1°1°ûMÀ¬4+]}*¿F¿ŒD×2Ò¯}ú+5α«€²²2ó%ó%óe¿h‹P"”mllŒU‹U‹USÙ¬²YesÏ"aí$í$í¤$Ç$Ç$Gr9€@ÐAÃÕÚõÚõÚõXWËå3T†"î±#Ýå–ù&Ö#7Q2Q2Qâï~£þMý›ú·–­–­–-»ß\qiþUºCˆÚ²t’ ŸD¿,cåɔƒÝÿ/¿Q~£üÖ(èox-î};úvôíî#½ø™ÇžˆEñkôÛXv9z[îŽæü5õ» |   ÷Ÿ^eD3¢Ñ™V™V™V?:~tä&Þ¾oû¾íûKKKëmêmêm°ð2ÀÀ‘Æv¿ èG5¨Õ¼M7p}`žÏÑoã1‡jÓñšéJãް;k{{{{{{F.#—‘Û¯[¤™h&šÉCÈCÈC÷%îKܧ¨¨سHXíŒÚµ3ñãÆlJoJoJ'²ˆ," W"@?Å$˜Så7•ßT~c]1h±®óÌûÊo–¾³¹hèÄZm#M#M#Í‚3 fPïSïSïóS£1ªUŒ*³­f[Ͷ²û •£}Ç࿆¾]<zUN©©_÷¿µë÷Õï«ß‡… úÞ €;EIFIFIvãéUo¿º|-1óú„ãø#úuL_,¯û³þhûÑö£-QKÔµýúÕÁÌ`fpÞ’¼%yK”••Âz ¯o^ß¼¾Ùf’Í$›I5·jnÕÜÂúÀ;Ãw ‘ƒÈAJ J J ÿãŽË/RFÅ}1ôeRݤHÒ‰ÍCtM»?Gf³ŠY…Þ`§%«%«%+¹4¹4¹T_X_X_¸g‘°B„B„BDôÊè•Ñ+bbb BƒÐ@…úˆgÏ"žuñîÕ  ÃÄþùNúÞnèìTÓäd}¶žm=ÛzvîÈÜ‘¹#;ætÌéèÃïz÷*ñ*ñ*aw¦…Šñ‡ ßôŸè÷Û±U-_Æìµ‚¼œÛßãí'ÛO¶ŸÄJý/ÀR&¥LJ™Ô}t'&4Ýs’J¾ÿÙ!›CúbèÛšuu Äš·†b'zýÀÛCÏCÏ}ËÖ}â>q¿èfÑÍ¢›ZšZšZšSª§TO©îY$¼ìಃËš1b>¤¢º¢º¢Ï÷øUÃw£Þ¦Þ¦Þ¶M¶M¶Mî~SØÙBÇW-·¹Ð1ÛÔ†÷7»K–ÚŽ4š¤¼\ÞD.©ûóJÌLÌLÌD'ôL«l«l«lú‰ôé'LŽ›79.Ë…ðáÃ7ÖÖÖ‹‰ÅÄbT€_ÕuDÁºتiMSÝŠÈö‡=ü¹ÜåùVnVfÒ<Ò<Ҽ̴̴̴6×6×6WÞï®4±4±41vg”û&fVÿŒ~¿)‡ó”ÌÖ±«’U®U®U.!KȲX¯€¿ñ~Ü©âhÅÑŠ£ v/ؽ`w÷¡Ý›1¢á Ï5SÿVÝ~”÷£_çÄ}{E 9 #ýÔýÔýÔѱß-—È%rË®–]-»j$l$l$<àüóö,ž-=[z¶´¾ƒ¾ƒ¾CéÌÒ™¥3‰`"˜F™z`è)'‰pЧÄSâ)œl»ÇèI¨Ç××8\6 å‰;}³Üv’.–ج6ÔÔT–W\ÏÉYT\«¸Vq “ÿcµk×>.Ë6Ë6ËÖâ¶Åm‹ÛÜÁsƒçÏ­ÙS³§fÓ„iÂ4A…ø„ aB˜È]–»,w™õÚ§lsò5[ø–û1užÅ+='ÙÊøã?ŒÿH{–ö,íYë´Öi­Óx§­ŠŠŠØþ•¯3źúˆ~¿ëfN41cW±ÓÓS,WÀßúJ܉ú„ú„úäùšçkž¯á$®ûðzÃÍEç+I<Ä ^ˆ{ÛůÊHÈ8íÜë#²“ã_:éü¥ó‹‡/Ž^ý±ª„ª„ª„,Î[œ·8¿2yeòÊäžEÂB¢B¢B¢jü©ñg¡@¡@¡!Nˆâ¨0À…~€ºu/ê^è¼Ôy©ó’“`=]å ÅkÛ,-ô¯´‰8ÿkfñs6µ:<7ù^b²^û_η­}Å}Å}Å© ÔjæúçèxÑñ¢ãEnfnfn¦Í%›K6—¸ üªýªýª+Ó*Ó*ÓŒFF#* Ðw%¥%¥%¥±^é¡kU ¾åê¯Fé¹­ f·–’5ÉšdÍÆ#GÄ,‰Y³DiÒ¥5=[™uCuCuC¿2¾2¾2Z®¶\m¹ú ši/±—Ø«/®/®/Îz„.T7õ…ˆ{Ùy/cê ÙÍo£F£F#^Ó|«oÀߊ”ˆ”ˆ”à<¨Û{nÞ<áG~Û®XÛÞzìJ’ÄÄŸú¦.99qãùÇŸÖêÌ¿ËùÑjŠjŠjŠÒ#èôtéÏQû¡öCí‡/§¾œúrjãÙg7žà‚Â… r¼s¼s¼™O˜O˜OPan †g"1‘˜˜>0}`úÀïÝVŸ¦8NÞ=äQ»–SÑN›†_˜3Ý‘Öõl »YÐQÙôYf©Õý0÷ºTu“ï=ƒ‹ .Vß«¾W}Ë ¨!ÔjHAIAIA‰Ãj‡Õ«¹‰„½½½Ë7•o*ßÄf3„Qa€¾¢ãjÇÕŽ«ì®î¶Fgo³DD¹=sF}aÐÅßmMmMm»º§³Œ(#Êš6m>ßßߢªªÚ³•YãŒÆ3 gÎ$œiVhVhV ªˆ*¢ª÷z)íHÚ‘´#쎇êVb~Ao÷£ß*§JÍ.zÆüˆùó#D#ÑHà/]ê»p§öìöìölõQê£ÔG}oD·öÜ4)!/µ?Å'-]M9º[L€› 7sñ)ÍM;¬çîrYuëdÉbåß{<ÇŸ~üyéÜÒ¹¥sÑ™¼ Á¦Á¦ÁÆåO—?]þÜaºÃt‡)7‘ð;ê;ê;jÆ”Œ)S×××QaÎ!†^Aû—ö/íß„‰ &þ¨H*„ÊùÈIh(Sx­“§¼Zqz¸â!ùœõýuÃuÃuË‹‹‰j¢š¨Æ<òt•ÐJh%Å1Å1Å1.….….…Ü̾Û·n#JÞ•¼+yG_@_@_€ ð²àöàöàvÖk9 ÖÐB³Qî÷Žô,WyóZv+du|u|uŽ>Ž>`0ô:†C€!;9wrîdÃi†Ó §Éò 777—êÄêÄêD¢Ž¨#ê0_}½˜^L/.S)S)Sñ¼áyÃó7½áxÍñšãµBR!©DMM ð޶cmÇÚŽ±»~ëäí‹L Öå|Œ~h*¯ÓE j}Éú’õ%îç‹ÒHi¤4¦MI›’6Åè¡ÑC£‡Ü¬ÏÎÎÎõÿÔÿSÿq”8JýÞ㉺u9ª‹7I»4ÚØ©ÏG¬û½cáŽøÉ†w»ˆð(Q:BL &°j?á§ø[-ã[Æ·Œ·Ê°Ê°Êöööà¯%^K¼–( . . Föu”i”i”iæææ§Žœ:rê7½q/ö^ì½Øøñ#âGPSS£Âïøˆ–†–†”¨”¨”(óSæ§ÌOý¤¸w²Ûd·É…V…V…V´Õ´Õ´Õ˜ þÆðgø3ü+WT®¨\áûÕ÷«ïWnúÇÖÄÖÄÖ$Ï,Ï,Ϭ#¥#¥#øµbebebeX¯VûÊ#ª™¶nkIÇîv?Ö“v›¸²[÷DDDzcîÚdÛdÛd3Ÿf>Í|j®k®k®ËÍúbbbU;¯v^í÷tÜÓqñ‹ãÇ/¦iÐ4hx¯<Ÿk»Óv§íNØ»°waï.‡\¹ÂMÿHÇHÇHÇDêFêFê¶k¶k¶k¢ÂÐ?!Ò Ö Ö –ýwößÙ‡H†H†HÚ.µ]j»T³P³P“í~åVÊ­”[ipÜà¸ÁqçHçHçȘ…1 c©©©¶(´(´( ¶Ð‰ùˆùˆù¨Ú¡Ú¡Ú!h|Ðø ñÜD–n–n–nÙ/²_d¿hÐþ ý* ð31f0f0f°»B#CMª´‹ñ² ]?›3Õ+ŠÈGw© 2ègÎf;£ÑÎÈqËqËqû¬÷Yï³7ësÀ“€'Oªªª˜«™«™ÿÿW¾’‡'OÞÅç×¹ŽÐ,D”ËÍX™˜a|µ¶zoõÞê½%ƒ``ÕþÐà.þ*œÎ Ï\—¹.s]¾]¾]þ‹©/¦¾˜ºïú¾ëû®Ïž4{ÒìIìb¹‰ç&ž›xnÓ»Mï6½ûGñÅ Õ Õ Õb^ǼŽyÝÐÔÐÔЄî‚NO:žt<‰™3%fÊÍê›Õ7«¹‰„Ï¿=ÿöüÛà‚à‚à‚Ö­7Zo ÂÐ €þm1‚Q7´nhÝа5akÂÖp9˜Z™Z™Zeˆdˆdˆ´6¶6¶6¢À½­<­<­<ÝUY´Ý渡-â^ÖÑ;I?XÃ]Ýè#é#é#íÌRPPäÇæÇæÇÚ=¶{l÷˜›õٻʻʻJÖYÖYÖ¹‹{äF˜2âr5ÒËŠIæúË´(ʱV¸>¶>¶>ëð‡þü*´ ´ ´ ‰·o%Þz÷0îa7‘ðÑæ£ÍG›} | | ÈT2•LE…€ÿ ø¯Ä âEƒxƒxƒxÔª¨UQ«ä¥ä¥ä¥z9<4xhð°ó甽”½”½(0@o   fûVàf‡¡& };ÇÄIæ&º ìjUõ[ÕoU¿ñæ,Ó^Ñ^Ñ^9¯t^é¼’û×C|@z¢z ñíó¨± jXë<1xbðD¬TÀðºÝ‹î•ú$õIê“WW_]}u•›HxßÔ}S÷Mu×u×u×mÚÖ´­i* }`€ÿ%–ˆ%b›¤š¤š¤âFÆŒ©Ò¢Ò¢ÒÒ³°A{†ö íI¢I¢I¢ä·ä·ä·DÑAt ÌÜ`¾g¾g¾7ö2ö2öbwõ5wT0}ÒŸ£ß [ËXýìê“à’à’àÒ·æ.O—§Ë—ª•ª•ª¹G¹G¹G}ïš\˜øÕHŒwÔ¢±ñ¾†&®æ¶ëÔè05‡+*¤Ê½ÔôP¥°ÏŠn*¥r/â¼W®¶*-ªXÏÜ×`ú­’)æ©ìªÍ¬`V0+°^@_‡€71êuŒº¬MY›²6ÉøÈøÈøp o%¶[ ÇŽ#GÔKÔKÔK Âз ø~­D+ÑJ–$K’%CCCµîjÝÕºÛ³HXÕZÕZÕ:îSܧ¸OMZMZMZD2‘L$£Ìß«mxÛð¶áÝ_q–ŽCLç÷»èw‚¥¦þiv5ñå9ÊsüeÆ}Æ}ÆýŠ-[*¶ølðÙೡû~ %Jæ”_~*ûD’õÞê`¨¡ý½¿AÊ]“g•óZ ì>îË uR‚ö¯÷¯÷ÇJ}`€¾‚™ÃÌaæäùæùæù*G*G*G (8°g‘ð:ƒuë ¬×Z¯µ^[MTÕ(0ð4À? E"HL9–r,å˜~´~´~tÏ"a…Q £FE¹D¹D¹4|løØð‘%d YT€ .4\èþ*«|o7Øø@ˆ~csÍné$²«ƒ•’•’•s,s,s,¿öC³L³L³ ë¹;’> ©IóB\éMÑ.þöØtþÔ(VH¿pJwAÅâä—Æ;ï ¿ã5Sû”ÊD%kùÁß~~û›Âaf¼Kxo˜ÅZóÎ÷öa€¾0@öžxO¼/j.j.jÖVÖVÖV>.|\øxÏ"á%MKš–4™M1›b6¥âAŃŠD;ÑN´£ÌÀ ô¢VÿVÿVÿôˆôˆô„0!¸yWe˜w˜w˜wÝáºÃu‡‰)Äb * ÀNÍ¡šC5‡º¿¦Ò-Çëâ¿Ð—fä:ÞÜÂM\×Eý»s7Ûk¶×l/};};};wBn\n\nk²%£®ŒûÅL/n3V»£òR^éÿß/©³T1ª3Ðíü7¬_Õùï¿ý*vŸù«ÆŽ9…ræã»ø c¬ÆXÁê}`àD»L»L»Lbxbxb¸Ëc—Ç.u¬t¬t¬Þ‹½{/ö8÷qîãÜGäGäGä7úoôßèk˜k˜k˜ÛëÚëÚëÆÄÄÄÄÄÔÅÕÅÕÅ¡’½®”(%JËŠËŠËŠG2µàê‚« zøFáYf ˜5@Ï[Ï[ϻĴĴĔp#Ü7”~>À?w#@¢]¢]"{löØì±–‚–‚–‚ÜDÂAFAFAFÕôjz5©ÀT`* ÂߪըըÕèþ:r¶Ó PËo—wn6kîëÑoÕe»Æïº?_›i6Ól¦ÑïÐïÐïô‡˜03`fï„6ȹmª÷kƒÒÜܘ;¶ßU–fd~-'î·_ef4Lù=š^VB2W8&ï-·˜µòÄhb41«ô]ìàÚÈÚÈÚHÔ§É$2‰Ì\Ù\Ù\Yý úô'l=¶õØÖc½`ccCñ¦âMÅ›){Sö¦ì¥?£?£?Ã$ôž*Å*Å*EË–;,w¬^¶zÙêe=›» Q¢&D©Q£>¦àSÁ§‚OÄ"b±€Þ†àë°î°î°ÎÛ”·)o“í@Û¶¹‰„ýÎùó;Wù¾ò}å{F#ƒ‘ ÷’÷’÷*S”)ʔ¬ÓVÿèÑn¦$¾úvÈ»2_À0ü¢YÒýÙù”ø”ø”0µ˜ZL­þ3û†› 7nb­èt(Iè×¥ Ç'èžïÙÜË7| 1Šéü*åùŠur‰¼v°k„­”ú ÖÊ·ÏkŸ×>ëô]ìàN«ìWÙ¯²·h´h´h¬ºXu±ê"*ÆOŠŠŠdÒeÒeÒxÀ}Ïûž÷=Óï¦ßM¿K´mDæ¨÷ÔÖ×Ö×ÖÛ­·[o·~“ã&ÇMŽÜÌüLù™ò3sæçÌÏ™Ï<É<É<‰ À…€çP+©•ÔÊÂí…Û ·;Ä;Ä;Äs {Ò=éžô²ò²ò²rÆÆV~è§hii]vºìtÙÙýU£yD±TaMÉÛÁFãy3ôeþã6´3ÁÇü…îCNÖÔ©;RwôÏyg­†ÊF¥pùQ¼‘fŒÚd0ÄýÝu?¯Cö…8q¿½{Xÿ¨ö}Eu^ €òßè¾d­ݾº}uû°"@ßå?Ô¨ÿP•p•p•pNbžùÅó‹ç¹¹¹•¹•¹•¹EDQ„JöÑähr4yëü­ó·Îàa³¿Îþ:û«—•—•—‘B¤)˜»ÞÖ8¼qxãp———’U;«vVq3ƒokÞÖ¼­I“þ&ý ccc* Ü@ ÐÐÿ ÿAÿ£d^ɼ’y®\¹>â&îüß­ó;£ÂÐ0 &ÁL¯H¯H¯àäzQ™)ß.?$ÃÂ2Jÿ9-ßu©¹ë¯ }›•ýLµÃ–kkáäÈÕ‡ªUZ§P§PׯÏZÛÅæ_UñГYìÌÉgÚú’¶©îùÿ{»W:׈㵸pIü†7Xë_t¹èrÑe,EÐ×Él—Ù.³½g1ÏÔÄ©‰SµWj¯Ô^Y\\L¼$^/QUÞ‘è”è”è´jíªµ«Ö~÷[`u&´Ž¨°&{ÓîÊž«/%$Ÿ´aA\¿¾cG÷cÖÑÓƒ6É»ÎÞ#Rù&^lÄB¹Õï„· ö¬ÓüóÿÍÿ7ÌæÏÔ\Ð\Ð\à½Ë{—÷®Cy‡òåq ?½ýôöÓÛ_Õ¿ªU§•ÐJh%¨0p0@ŸÔy/oç}½÷ør wÞgÜyÏqçýǨ0ô-e-e-eö»ìwÙïâüz±;®¡jkõÙÜÀ¸÷âÞ6'gs³ ÄÃæîººÚJ† Vœaœhœhœ(sssf™µ>¾nN2šsx3î~dê”Æ‘ù7ºHjþ?(9*ªÈ¹6_ÏÙiªÌkG[­”6Ë8œµþé~é~é~èLà5 jÔ,°V°V°VX?yýäõ“{óŒy4æÑ˜GÊÒÊÒÊÒy2y2y2Ìdf23þ™ê4ë4ë4/ë\Ö¹¬ÃùÜ]{»ÂtvrXË‘[ëèÒ+$e9 z{6&Z—ÞpêYÀº˜‹8?Â-϶<Ûò¬ ¡ ¡ ³üóQnSnSn^ ¼xå´üiùÓòÜDÂwmïÚÞµ;w6î,u3u3u3* ì àoüí|ûo盀¹‰„;ßFÜùfâη£ÂÀßÊÃÊÃÊÃôè Ðг«ÆîŽV‚ª}ô*Ó{:"91ŸÜlsL2eñ–ÛjÝJϰ|¡¿?øw£Z'MRÔæ*}íáÃÞ¿x~ñüBÙ@Ù@Ù€Ùük­Â¼>h?ê[ÑoçÍ÷~Q¾Øy I Br; çĆ×yíÞßαq~Ö{Ó¬õO›86q,:øUýúõ7Ï8žq<³íù¶çÛžsöÈ—9.sÍ}šû4¹ {^ x5àÕ€ÔM©›R7Ñ?Ó?Ó?£Â=Cs¤9Ò›<6ylò?Bßè‰ÃÆí ¿vDGtدŠ{9ÓŠNúl ‘ì˜3{êæîÏè ×A¯ƒ^Í›6D'ð‚˜¸˜¸˜¸Û£o¾=š›UâÜ_çþ:÷WðŒàÁ3Z§·NoŽ ôO€ú“)ÄbJÝáºÃu‡Ã¼Ã¼Ã¼¹ ŸL„HHHhõoõoõGÿPT)ªÕ¨ì¨ì¨ì_÷šššfùeùeùD€Ùák%£…}è,çÍД±¼Ä•4 l¨çPí¡ 'ä}äw³êkå`ùãQ[|Žh3èž%GÍËx9ú훾f'™þÓÅ#ÊuãtãtљПµLj™Ô2Éo¡ßB¿…Ç®»vì7aÏÃK/=¼”¸,qYâ2ÚÚÚT¸{óç5ÎÍÍÍí¾¶v…{®~Å<,-YÆËÑ/ë*xØ{ý;Nú§ ¶ ¶ ]Ákhwiwiw“Æ'Oÿ¨òQå£JnV )w)w)w߉¾}'’-É–dKT ?@ пɲ„lÃdž £\¢\¢\F)ŒRÕ³€J?Z?Z?:åXʱ”cAŠ EþC."‘‹ÒLÓLÓLö8ìqØócƒ^U{U{U{¿~7ün~-üZø•iÇ´cÚ¡ò=\äX„¼sÏÐr䵸´~UÍDÏ@Rg©bTçqÊK˲”À$W?­±ío ‡™5ò~èûŸ3:ž9ÉÄŒµþÉ3’g$Ï@g|«U¦U¦U&d^ȼyçÉçÉçÉÜ„=7_Þ|yóetVtVtVÇÅŽ‹QáNï*ÞUüXô }Á¦i¾µ_šº5³o…¾¬cÛ°«c%Ä]^»hþ²îÏ:ùEò‹äè^F/¡—ÐKÒ„Ò„Ò„^?{ýìõ3nV‰=é{Ò÷¤»EºEºE6–6–6–¢Âü0üW2‘L$7i5i5iÅ}Šû÷IÕZÕZÕºgQ–Ö]­»ZwCCCÉ’dI²$ÑJ´­(3ð+ò_ä¿È•]+»Vv-G$G$G$Å#Å#Å£óïï'e$e$e¤¥¥å?Ê”ÿ¨J´J´J”9–9–‰·¢ö ÖuÉýÉ—Ïê><ô®\¹¬$Ó™ZVêQ ïþå´RRxWR’Xg´­ósúVôûÿï-nI>bDa­αœc9ÇЙÝk·o·o·ÌÌ̽¾þúúëë¹ {.º|èò¡°aÃ6¶IµIµIõ·z–åD9Ñ}• lo_®L¨^ß±´¯G¿¬£×‘¿¼ÖŽë¾_‡}öu®¾¾‚9š9š9:+%+%+åSø§ðOáܬâNâNâN+V8¬¨Ë«Ë«ËC…ú:Àð¿tDù-ù-ùm’h’h’¨ö íÚ3z «´¨´¨´ÄŒ7²IªIªIŠˆ%b‰X”zCÓnÖOSÊä ÔXIÏ_éSç±™‡ S~Ñ&”ßhfÜCßoÇ,»È&ý&Öú—§–§–§¢3¾U‘ªHUŒß¿7~ïýµ÷×Þ_ËMØs²àdÁÉ‚€“'NRRRòkÝê%ê%ê%º¯FýPóúaüú²Ž™ù§26Ýé¾ÙÙÙ¸âú"&…IaRòwåïÊߥ­­=öÑØGcõl•X+±Vb­Äç#Ÿ|>R­R­R­‚ ô-€ ‡({){){S¢R¢R¢ <4xسHX^J^J^*jUÔª¨U â â âÄ âGÀ g g gÀºò®e6$õ_‘ˆÄI®ê<¹²å²¤†™™ž&‰}=úíÃÖy.ÕËZùffft&÷èsésés“$?H~ð¬þYý³zn"áƒóÎ;8Ïk¹×r¯åÍW›¯6_íëõ¡ R©‚«tVé¬Òa{Ïké‰ÍrúCôûíX^}APÜ û~¨Ý^»½v;®²>O“Ð$4‹?*~¤#£#£#3-tZè´Ðž­‹U«.V5]nºÜty9µœZN%È™ £Ì¼ 0ü0­­­"""¦V¦V¦Vܼ 5lMØš°5uCë†Ö %F#ˆ¨0|¯/_¾°®0ùE“Í·üÚˆÔu‘M–ºHçñ¨ÝQy)¯ÔùϱLÿ­:éß;òZLºf$«ÜÅ;€éÐÿ ÿÎè ŒÇŒÇŒÇRRRïÏ¿?ÿþ<7‘ðŽy;æí˜çààÐð¡áCǾU›ö7íoÚ³}ë­Ö‰7õ·è÷Û±rú…âElïþ¤®¥®¥ÒéŠtE\Y|¥†¨!jÊÏ–Ÿ-?kÌ0f3F/Œ^ݳUb†ö íÚºaºaºa%ÓK¦—L'>Ÿ‰Ï(3/@ ½¨ýAûƒöÙ/²_d¿°t³t³tã&4>h|µCµCµóóó* Ý‹sssg]OªÎ¤Š¿ùµ©i™ºòhÙ„w¢_¦|i0é/Ö#T V V FOüLÌ÷Ì÷Ì÷9 9 9 r r rÜD 6l(ø2äË/CjÏÔž©=ÛgíèïèïèÏî,ÂhGî¬oêÏÑï·cÁ†³k7°«ÕÇÏ?D˜×/T1«˜UL«%VK¬–ˆÈŠÈŠÈöl•tüÑñGÕÕÕóéùô|:1ŽGŒC…~>ÀðSu¤t¤t¤ä™å™å™ÙšØšØšpxø~õýêûµrEåŠÊŒF#€oUšVšVš²®ÑO|wéHüÚ Tõµr°üqþ €›„²ÅM·²¡·‹·‹· zàÛIì$vn/Ü^¸]ã¦ÆM›B!B!B!= {VZyhå!‹aÃ,†UÖUÖUÖýÚ“«ø·âߊÙ­¹þó•Kú²Žáh‰eW·xÍxÍxM\:ýMÝñºãuÇíÇÛ·¿eÀ–[pó×Gä&ÉM’›Ôù†i¦SŒ)† ô6Àð‹ÑFÓFÓF’ I…$ÇkŽ×¯qxÞð¼áy£L¥L¥L…^L/¦£Âýz…™C›C›ÃºVhV¨¯V8Þ×߳˛ã×߃—éRYkîóÆçÏ›æQÍ£šGùD>‘þà áD8^z°ô`éAƒ¡C †Î®›]7»®g1ϼ—ó^Î{ijjZ¶®l]Ù:"“È$2{ý,˜“`   °ÕùwK­f "(ׯì@ÜËnT=µ%}éHÖê?fü˜ñTªÕ—KÖx£ñFã WOWOWÏÝ«v¯Ú½Š›HøMö›ì7Ùi%i%i%ŒIŒIŒI¨0À…x}}}AÉ»’w%ïÜF¸pÁM$ìRèRèRXSSC+¡•ÐJPa€þÆ4Ì4Ì4Œu} \ÈÓ5CdûcGÝ“š¥ŠÓ»_™ÿVü[ñïh£h£h£ÆÁƒF„a„^à?Žt‚^9¡rBåósæçÌÏ-K^–¼,¹g1Ï”KS.M¹¤µ^k½Öú¢ EŠ6ÿÿÿüØC  cw M‰ÏÜ>o÷#ã¼ôI‡¥áSfLˆ`­¡ž©ž©ž).øy-y-y­ÏXŸ±>cL=2õÈTn"á'RO¤žH%Õ&Õ&ÕÒœiÎ4gT€€ `3„Âå›Ê7•oòRôRôRä&vXí°ÚauAIAIA 5„B A…ø[ú“ô'éOXWƒÄIº ˆlÔØÌÌñ5uâf}···¯Ë©Ë©Ë!Öë‰õè^ÞQ£]£]£msËæ–Í-Ñ»¢wEïrö(]Qº¢t%·-·-·éÉôdzöðÿÞ0Þ0ÞŒ¿7þÞø{¬?Ågùkß Üå|Ìj?-¾É‘ݬ5V5V5VáZv(~?Š_Ðü ùAóÏ :ÄÍ*qçÓOw>Å:Ä:Ä:PQQ¡ÂœC }£‘ÑÈh¬L«L«Ló«ö«ö«æ&r°¹dsÉæRnfnfnfÇ‹Ž/Pa~ÒV×V×VÇn`ÒË&“¤ßr?†Eyk¯–ý¡‚õ‚õ‚õj”j”j”˜NL'¦ú€wÔ'Ö'Ö':­qZã´f{Ôö¨íQÜ„=÷~Üûqoæ­Ì[™·~ ?†'ÇàiáiáiÁúÝ6ÿ3óÈd9"ñúñë~ïøäüÚÊùf¬U•¿*Uþ*:¾ãÏáÔ6j5œN §\¾*|U˜›Uâꃫ®>ˆX±(bQûŸí¶ÿ‰ °ƒøÓ„iÂ4©ÙS³§fOðÜà¹Ás¹‰,n[ܶ¸e›e›eÛ>®}\û8T¾WÙ†3 gJLJLJL = = =‹¤Š¤Š¤ÊN•*;Å`0P¥ŸÉ.Ï.Ï.õz/ÊN8f‡ø–›‘¶ªxŽ9Ûg3´Ìk™×2/÷mîÛÜ·ÖYÖYÖYܬÏþ—ü/ù_ªšZ5µj*s0s0s0z€w477{xxxxxìÏÜŸ¹?“›°çEÍ‹š5)†)†)†ôgôgôgÿùa»ˆ]Ä.á‘Â#…»xsmêÓ“"ï!ÊíÙX§zIqÛÇùRl(6t;ôLGsGsGsì‹Ø±/³úÎjnV‰³“ÎN:;)è|Ðù ó”dJ2%†ï•¼&yMòšð áÂ7)))… :(nyÜò¸åD‘Gä¡JÐ!þµ˜XL,®3¬3¬3 ß¾1|#7‘ƒÉq“ã&ÇÓO¤ŸH?Ñ*Û*Û*‹÷OT7ªÕ­Ô£Ô£Ô#lHذ!†é†é†é?ê~GÛ¶/l_$ Mš4´îcÝǺD3ÑL4£òܫԨԨÔ`­¹ö i'§̑¤(·gc‚càiÝ]„µ¿ûÿîÿ{ב)Õ”jZ R R bï`ï`ïÀÍUã=Ô{¨÷ÐòOåŸÊ?1Ö2Ö2Ö¢ÛxGËÍ–›-7ýýý›7?nÎMØó¯Ä¿ÿJ$|Høð!~^ü¼øy¬Ÿ³=`ö)þq¹_Ý]´pk…mÍlÍlÍÐÛð£ÐH4”ä—ä—ä÷dГAOq³JyräÉ‘'>û}öûì'  @…û§zz=½ž8:ptàèg¯ž½zöjÑùEçøA.Š\¹(bëiëiëYü øAñÔx `èO4 B£!¦!¦!&zEôŠè   =‹ô…õ…õ…“K“K“K[²[²[²Q`>ÜŒØEÛEÛ••“•“•c~Âü„ù Ù_Äs¤çHÏ‘¤ R óÒCUDQ¥{@÷€îÖ ü7Ãp¢Üï;~1ŸÆ®oÉcÉcÉc9ºÖ"h´ˆâçÅÏ‹Ÿ»œw9ïrž›ëÅMÁMÁM¡$©$©$‰.A— K ýxGkRkRkRHiHiHéŹç^œ+ðCEYKÅ‹†#¾å~,ß>Cü k…gÅÌŠ™CTDúzcccTšGšGšÇÅ7Šo¹Yv«îVÝ­êÚâÚâÚÒ(Ó(Ó(ƒ óŸºÕu«ëV“6’6’6.]²tÉÒ%¿È©7Ro¤²u³u³u1/ðk!€þ-‹È"²šÒ›Ò›ÒãÆŒ¨vFíŒÚ™žEššš‰û÷%î#!!Á½›}Q£e£e£¥w“w“w“,Kž4Ñ>Ñ>a6ÿ×îÁ$˜ââ⬕ æþTK±.'c¥RŠºñ!v=I¹L¹L¹üc§Žñ™ñ™ñ¹¢²¢²¢Ò÷„ï _®îÈÿ2ÿËü/óóÚòÚòÚ:Ú:Ú:Úpqðj5ŒßßßöàØƒcŽq²Õ.OÙ”º8•§ï¬ýóúèwÏüç·GÎËÇì3èÀ©µX«­ß¤ß¤ß„^…_f1Š•ŸšŸšŸª­­=®z\õ¸êžu"5"5"5V·­n[Ý®žV=­z Ì›Rf§ÌN™½Ås‹çÏžÍõÊ‘ &~¸óõ}®‹Þõ矖 ¹žUIi Ž6˜¶~=£Ã´F­}l1ï}ýÊof^ \xiWÉF™©ÜDÂ_¨_¨_¨ô2z½ ³ ½ 0G(ï(ï(ïRESESE gÎ0œÑ³ÈAN_N_N?Ò%Ò%Ò¥¾£¾£¾ƒ¸KÜ%î¢Â?m6m6mvPfPfP&ç3¨a©¶NaTlžÿ|ÄZrÆ “C?6Tcš”&“Ž”Nj´Ç·ÒÉAsÅ÷öXÎ’œ%9KˆZ¢–¨Å,³Ó`ß`ß`Ï®†eÚ_·Y"âe7ÒF3ÿÀ®zñKã—Æ/ý9óȼ̼̼\}£úFõ@“@“@n"a«-V[¬¶d§g§g§·´´àJàt)º]*eBÊ„” ›n:¸é ëÆzΦÓÞ›Úy9úýà·áý¢[¬GÎË0yÖß&Ûϱóê{«ï­¾‡ÎB"H©¸£¸£¸C÷¥îKÝ—3–ÍX6cYÏ‚ºEË-_´Üd«ÉV“­åoËß–¿%êˆ:¢eþùjjj.;4ûÒlÎgpÓËÕ“Xz|œ·²°è–ká–s»cÇ[‚Cˆí~þŠ: ë¶_192pöÎmRí¤ÚIµ±±±˜_è=€z¨mNÛœ¶9ffffûÍö›íç&xuuu® ¨ ¨ `R™T&î=%†%†%†œÏNÄ?^eÚ­ù*fï~UäVÑž2Íx¹ã×ÏÔîsrÌŸ™Ÿ™Ÿ™;ŠÅ3ÎN´C´C´Û{XËò˜@ÜûŸ±¨,ždèl¨VÜÅ_ÈÖÈÖÈfîdîdîüUsʤ3éLzmTmTmThhhhh(7+³Ù³5fk2Ô2Ô2ÔÚ¦¶Mm›Š«àó#ü?v[êôdi1Ie^M«n\°u‰ÍÝKWy¾é›ºPcU¡ð‰õ쎜÷ß,ò@ØHh7ë‘·¦¶¦¶¦¢1G5ÍDsyFyFy†IIIÍâÅ‹/^ܳHxúâé‹§/։׉׉/6,6,6$t ]ïyí¥?ÖL‚é8ÇqŽãÎçȤæñ µŽÒÈß%Ê~lÜËùl¤O[¿l{Ýz‹)Qœóƒ#Ž<8ÒjÓjÓjƒi€ 0ÀÓnÞnÞnž]–]–]fuÌê˜Õ1n‚‡@Å@Å@ÅêsÕçªÏ1/0/0/ Â\F #†…¦„¦„¦pRÿÔæ0q½|ú»’Åæ™¼µœÌ5eú}qÞ©ÉÑûª‹æÍ/šèbWá-ó-ó­ž²ž²ž2kÝt˵Ž(n¡k—l0ÏCôÛ9F_ô]«³…]§Õ?¬XÏ{oP»GÜ#î5 jÔ0(2,2,2LÎ]Î]νg+³áPá†CS¦.L]HyFyFy†ëàgjòoòoògÝ@—Ê[è8Ý€wâRóÌÞ+Å8-x?V=µ%}éHÖ#Ï\“¹&s :ú–ê;Õwªï|óyÌç1kŠÖ­)êY$<¶hlÑØ"UAUAUÁü»ùwóïvþeDT˜”JJ%¥òÒÅK/ý÷ÁOY#%¨åŸ©;lC'ºJÒ÷W…¾ìÆÜ$'‰ÍGÎÚë3s/'•¹"sEæ ôü(€zQ£ƒÑÁÈœ?8ð—M_6}ÙÄM$ì+á+á+Q‘[‘[‘˰`X0,PaŽfáqÇãŽÇ¤BR!©°û G‡û~Ð9Ê]z‘´ª¯rÍ—s¶›*}‘"ù¨Þúï 611'Úˆ6ï:ýò"ò"ò"vu³•2oR]Íœ\zƒ´¦?G¿©'C£ôüØU)’FI£ô™)#ˆ°¦)MSš¦ÄšÇšÇš«œP9¡ÒÃ7 k{j{j{&''“ÝÉîd÷ÎwÉãÊè ©§SO§žfÝ47>*9bÅÞ‰KS=OîÝøZuÈÏ%TÖ±/ÀÑmG÷ˆa=r» vì6 3¡¯« ª ª ²o²o²o?(~Pü 7ïy•#;FvL3‹™ÅdNbNbNB…9Q’S’S’#$"$"$Ò}…íÔä?¬¾Ékqo÷cÚiÛÛ-Vd/ôœø¤û³sKuKuÓà@ ðSÑDh"4‘¢AEƒŠ9 pà4€›HØ#Ó#Ó#³lmÙÚ²µô0z= þVËö–í-Ûî*ÜU¸Ë®†FÇuc•¶6íʾbº¯¯GtyŸcÿ4øï3öyàóÀç!Jˆ¢èÿl7ì*ÙU²‹]Ýìr,jT#J(¤±ý.úu ©—È®2þŽþŽþŽ}~úÉ™ “Èdij‰gÏjfjfjföleVÛ®¶]m{\c\c\cS\S\S‘Id™¸Ê¸ç8Þq¼ãxÖíò¸Ç6‰Yð~ŒÚ9öŸZýâí­wXü™Ì3™g2èLà?ÑÑÑnònònò{žîyºç)7‘ðë¨×Q¯£Ò$Ó$Ó$é ôz*ü­ÔW©¯R_u_ËÃÜœu¦¸}›uߊ~ÿ3šÇ¾Û±Òlî[͙ݟ¯þ]ý»úwÑÀ À¿}7}7}wI^I^Iž›©›©›)7‘°Ë—=.{Šoß.¾M ¦Ó‚ûgU›‹š‹š‹þÇ›}ó¼·hÛ&eú$%~ŠëZògš]2u5øGùw¶}ÒâÒâÒ¤1iLܧøéÒ?¤`W7ó£eÊŸ: )æ"|ýÒËŠIæ±â~v:_؆â¦v¦v¦„!Dñk?´··'·$·$·è¯Ñ_£¿¦g+³‚‚‚]ôôèéÑÓ‚‚‚ uBPÇð½d/Ë^–½ÌºQ^q䂨¸+àÞ©+¯‰K´²ùn‹Ý»ñ\"èÈJd%²’OžOžOžÔ)©SR§¸‰„‹>},š$™$™$I{M{M{Ý?«š¸:quâêÿq¿ïvù«O÷áЗ͘cíxf³€àÓ1dCv箤¤„«z0Ïaˆ1ÄbåšåšåšÞÂÞÂÞÂÜDÂöºöºöºo Þ¼¥êSõ©úü]=J¥ˆò?¢ß<ŸØ©¹üà1_”z’öúív¢jî`{¹›‡›‡LÁ¸î¾•´?iÒþþïÌÙ&ü×9ô!űæ~nÅ_V©ë²;wË–',O0–3–3–÷·ÞhUmUmUM—N—N—6¹crÇä7ësø¢ðEá‹êÔëÔëÔ‰…ÄBb!®>€î]1ºbtňu‹œrüʽíù€{q|}ÃŽE¬G>}ÐôAÓ¡3{OѺ¢uEë|ßø¾ñ}c·Ûn·Ýn‹Ç-[®µ\k¹ÖáºÃu‡ëNNNMw›î6á~ÁŸû'Ãa­ÃZ‡UUUž¥œ¥œ¥p ß¾|ûòíË1D CtDvDvDòwõÒsÓsÓs»¯IêVµó_ôûíØâÒ¸ÝsƒøÓi#ØÕAç†Î ¸âà{!è˜C™C™C«æWͯšïÿÈÿ‘ÿ#n"ëPëPëÐÜû¹÷sïwê8Ôqˆ?ªD»D»D»¤1Jc”Æ(vç^ÁH™e¼¢¿=Â7ºÐWOç4ÛjRø¤p¼•ª É·’o%ÿ7+§Ö†mÐË#¢Ê|H:}½Oj,Ò&ƒ>Èçɱ½ÏõËú/뿬gLbLb gþ_û”ö)íS²¼³¼³¼-d,d,d¸YŸƒƒƒk¶Ôl©ÙÂ4d2 Qa€oí©ÚSµ§Šusœ¦-BràÞ§oï5öuWÇ=Ñ Ü Ü ìFr#¹‘¤IÒ$i’À ~éw¦ß™~ç‘ú#õGê:::ÔÔÔ¨|/þÉpsûæöÍööö×v_Û}m773xeç•Wv†ß ¿~¯-º-º-š?ªTN-§–S»?÷ÒZCñüý~;2†E?“4¸‘p\`Ž»š8=vzìôWp0@ŸÄteº2]ktktktƒí‚í‚í¸‰H1¤RL–x–x–x[i[i[i+G ‘B¤8¼uxëð–Ý9VK¤V»÷·è÷Û1v”ßG¶Ï"e‘²H¸²Xå‰å‰å‰u™ï1´Q¾Ð82ë¶éà¾Õ´“ÅÛ͵B)Ú¿wŽ¾Ú¾Ú¾ÚL¦Ó]ѽŽ÷ï;Þç–ç–ç–Û<µyjó”›õÙ/Ý/Ý/½2¦2¦2†Q˨eÔ¢ÂПmX¶aÙ†e¬Û⌠iCÉhÀ½=®Ó¶.î?ÑïÆ±#wŒ¾9øÄ 9ìê“|6ùl2®Yà`~!FˆbueueueáááÜDÆŽÆŽÆŽiÕiÕiÕ­R­R­R¼|ꉳg'Îfw.eŸ¾®12ïÏÑï·cÈw-vµjHlHlHÄÅĪveíÊÚ•œ\;þBΆš)^yyfñf0ÚK’–¦¥„5êá䌒ë“ë“ëÑ\müER#©‘»v;ìæf}özâõÄëIùÊò•å+q76ô7ëG¬±¾‹‡d2HûHæ"îíQDUØZè`Î¥™¥™¥™?%~J\€‡=P{ ö@­Ø±Ø±Ø³ÖÛhi´4ZÚ×K_/}½ôTø©ðSanæî°èaÑâÞï¼ßy¿knononçås¿{'öN,»s)à>e‹w?~¿½X&:WÒSꕤÁtvµ"''ÇÕÝC À¿Œ c¸qtãèÆÑÑŽÑŽÑŽŠ¯_)¾êYä wWï®ÞÝä{É÷’ﵘ¶˜¶˜òÂ)Ö¹Ô¹Ô¹°;æŒýõ¯!ôýÏø¡ì#éÓa’ŠêEÖŠiÍך¯5Ÿy—y—‰÷‡uúúúÐí”Û)·Sœ\5ž/ìE5–×¹f虼øµóÞv¹`±™cÂÀ€ݽœ¹bbbAí°ÚaµÃ0ï½²ñWI«¤Uggg¸P\(.n"a×V×V×Ö’‡%KÒgÓgÓg£ÂÀ¯¶&lMØšÀºN/•Þ*©Ž¸·Ç… ']{™›37gnÞùûÎßwþÞ³Ho_Ðá¹'wþ\üÊy¸ò ‘;ÑÍF‹6ÔxøÖnuþ6(Êé¼a³~ÄcãHÑvÓå¯>òö”´ÛB›-Ák.NÎèác‡O^9yådù®ò]å»0›?c-c-cmú‘ô#éGÞ½5zkÄM$¼k×®]»v¹Îpá:£q^ã¼Æy¼pŽ~†~†~†ìŽ9AÎRhÃ$D¿ßŽ­eavë…ÿœ,&H°Vì²óeçËθv {€ú“¢€(hžÐ<¡yBüóøçñÏÕÔÔz9hþ©ù§æŸ © © ©Í1Í1Í1D=QOü¬;'~'~׎֎֎îâqµ[œkGÜËnìH(úÓ|»™3Š3Š3ÂåÒ½ÂâÂâÂbίeŠ’’#®-`îèÆ9YoM{±?Û¥ *ÌÊsGŸ08ùù¨©¾ÊGÎ3R?R?RŸ999³ü3ÑËéåôò2ƒ2ƒ2Ïמ¯=_s ;r<äx¨P»P»P›6Œ6Œ† øÄñ'ÇŸºÞsÕGÂp/ŽôëÒ;$Ù…7è̦M+šVÜ®¾]}»šó n§Ýõ©¦åŠÇW“™j1ö’äÞˆ‘([C/oÏ2[óÖtEÎÊ… )å9?B%{%{%ûެެŽ,ÌòÏÄ<È<È<˜MϦgÓåÒåÒåÒ¹‰„7 lØ,`÷Äî‰Ý“ºQu£êFýÌs! ‘…ÈBìŽÍ|лm+‡#îe7¦¹^ß²]õ‚ž=zŽëØA п1Á w;È_ç|óuŽÎk×:= ”å”å”åbÇÇŽߘԘԘDø>„Ooxjtjtj4»#¡ï.&Ìcôv?V4¦/cWÃññq\"ÿckÆ–iË´-ˆ-ˆ-èÙUó9Ú”¢bÝêk«s¡ 5.×ð\»cá23*'3Xvàë0#­ä‡!éýåffK¨Ëõ0,trtrtj>Ö|¬ù攇–ç`F0#¸rcåÆÊ¾e¾e¾eÜD¶r¶r¶ryyyqqq¨0ôE‚= bÝoøýò„mw÷ÞÈÐ’~/éÃzä"¿‰ü&ò[îIÿ÷þïýßsÅ™/}wyåØ&RÊö!¿*RªðöŠQ~}Ÿ±ÄŒ“c+0V`¬@Š[Š[ŠV¡_f1‡˜Sp¾à|Áyµ(µ(µ¨ g'œp¶g‘ðjµÕj«Õ,e-e-e«ìªìªìzïÀŸ¹?sæÞÅîŽ[^ ‡ú±/v,GÐÛýh¿AaØj v³Ù1±cbÇD\"À 0tâMñ¦x§Ú¦Ú¦ÚÆÆÆô0s(”-”-Œ\¹*rU½k½k½+q™¸L\ææØ¨ºT]ª.»XÎH>eÔŠp—ó1@É%P³‹ùu-t-t-ĵðùŒúŒú,v{ìöØí²<Ïå¶Ëm—Ûõzõzõz˜»¾‚ù”ù”ù´Ú»Ú»Ú;hAЂ Üô€¥‘¥‘¥Qö­ì[Ù·Úo¶ßl¿‰ ï322ìâN²œU§Ý7Q÷ÞHvú;uû+Ö#¿tóÒÍKýî7s$s$s䳯gÏ9 Û¼hê­=Æ£ñ’HìÒB2DWpr.† ?~ÄZÄœ g¹äyÉó’çzôè=˜©;Sw¦nÏ"áq âÄ6>l|¸üò?Êÿ ʉr¢œ›,]4ºh4»ŸX9Ð{°x6Â]ŽFŸX­k%ÕEë§Îg­¤þýú#pA+ÀÀ‘¶cmÇÚŽeŽÊ•9ÊŒlF6#s<„. ]º¤ö~íýÚûÌJf%³’ó#‰;:vt¥µíFõCt¿w¤þ^$j¾‹ÝL5Ä5Ä5àNÁïÆcˆ1Ä ž<-xjuÕêªÕÕ_÷*ÏVž­<;qMâšÄ5­å­å­å˜#>1ŠEŒª[7¶nlØ®°]a»¸éSeSeSåŒ9s2æ´VµVµV¡ÀÀkBCCY·¿=ýuuM àÞsOž™½y=ë‘k^×¼®y½ÿt`ƒ]ƒ]ƒ¨£¨£¨ãÿ¸Ó7é]ñÊõŒõÑ&’–}æ£ÓÂÆHŒøD»UºxA÷g÷wõßÕWSïRïRïb]â¥ÿi'Úˆ¶Šƒ+šf˜f˜f,Q\¢¸D±g‘°p p p všvšvZ±P±P±!KȲœÎ…Ü ¹rY¿³nÕóÙËèˆu¿w,Ps¹¹¹™Ý|µ|lùØ‚¿œÿz¨=©=©=)g_ξœ}VíVíVíÜ¿þø[õèêÑÕ£™{˜{˜{X"-•–JKe÷Èu¹LËèölL¹:B¯‹7źù¸ù¸ù Û¹×ñ¦ãMǛ…… z•y•y•ɆȆȆôFÜk“b“b“’jŸjŸjO^F^F^†ú÷#¯ˆWÄ«†= {öDIDIDIÈß–¿-»g½dpÆàŒÁ™¯¯/ÊvÊvÊv~­Ò¸Ò¸Ò8ÖïŠë-Ð@Ü{£Óª½."›Y<”J ¥ö‹ÞË-Í-Íí>0ÛódS¨ð¶ªuÞí[gôõ¨)뉽Õ&µéYSoŒeû˜èÍg7ŸÝ|¶ådËÉ–“XxYuAuAuÁgÊgÊgÊ:Ñu¢ëD{ Þ¼)xSeŒÊ•1y%y%y%Ìf ³¤‹ëe_é¾Ò}ì¾O{SÄ º=¾?o½‹»ó³ ³ ñ®nøÀðÃPçQçQçå_Ï¿žýKö—ì/ÙÜ„X>>>²²² 9†C.ãxÆñŒã]|æ9Ççq¹éä’÷æÍìæ¢mTÛ¨¶QèðÞS¯R¯R¯RXXøuÌ×1_Ç„i„i„iøýæ÷›ßo^w½îzÝõÙí³ÛgwðñàãÁÇãããså ÊT=¼zxõpÔØŠ#∸¦³Mg›ÎÆM‹›7Mu”ê(ÕQ=[™µ‡hÑ’´ iAÒòSòSòS¢h'ÚQfø9h{i{i{Y7¾gæOp7pïW¯®X;[õÈ«GUªæó?%–l*ÙT²©û`LWíYþ²Jâuìµ ù)j¢^¼)9èÑù Âó—±;÷%…K —’íÉöd{¬Q}æÿ>æÕÏ«Ÿççç·Õd«ÉV.|òiȧ!YÒYÒYÒŒ6F£íeùËò—嬟iIûxveB\nÆÊLoû­#ØÍ݈nD7B‡@'ÀЛ›t§h§h§Š.],ºè¤ç¤ç¤ÇM$¬¯¯Ïúï›d²µLO!Äå~Œ+õoÑÎZá„ä„ä„dô3Ÿh%Z‰Vò~ò~òþÄÔÄÔÄT-9-9-¹ž­Ìª*ª*ª*qâÅ=jRlRlR$¾_‰¯(3ô‰‰‰ÖïÆÕ—?msë+1ð·a0/!#HZC2Œ]ØÀ<Æ<Æ<ƯV=¯z^õ¼î£¯àzƒ ëÅûCìd¡óaÇJ¶1áÚ•kW®]Ù~¬ýXû1¬Q}QÓü¦ùMóÝϸŸq?³7`oÀÞ^Кf%±!.÷ãeÏCfµ±V8R;R;Rý ÀOE¿N¿N¿^º®t]é:wwwn"a3Iƒ<广*.­óÉ06yõíñôõ¸mSÁ(3«.¢÷hÅhÅh"È#òÐÃüŠ2™2™29åjÊÕ”«úÅúÅúÅ=[™åÉòdyr”i”i”iÃó†ç Ï B†A…àG1×1×1×éâMÀþº²¦¸oÀ¼?æ¬;í¹©]œ#ô^è½Ð{­[5¶.)\R¸„ $‰¾Þc­×Z¯µ^›5cÖŒY3Ø{ªŽMÚÆÇý-vò1Ñz¿V]MN˜œ09aÂLd&2±Rõuä"r¹È×Ê×ÚšÂÑ€IDATÊ×ê¨ÎQ£:ÜD¿¯V\[Ðü«ú6g¿ãøM´ÿ>w¡o_‰©l"6>`­ó­3Zg´Ð½Ð 0übŒcŒcŒcåÕåÕåÕÞvÞvÞvœÇ ¹~1Ç H¼óG l}ÐìœJëy5¯i^Ó¼ 䆵†µ†¥§§§§§›N4h:‘›¿²fffU·«nWÝ.b1‰˜„ @Ï”š–š–š²n|ï7wïÔfD¶?vü¹Aiуï {Î(œQ8““ž“ž“Î|Å|Å|ÕgÚËp Nÿuú¯Ó±;»Œã_è›&ôç»ývi'®í`WùDùDùD¬T|ø'ã­G[[[[Ÿ_x~áù…œ¯ ¹³ý6/ḯÇÀL˜I:Û·,ohßо €€ç0g0g0gT=­zZõ4``ÀÀ€ìℎڢ¹æÛÿØ1· æ¾ÁÖóJ^‘¼"yú ?kßÛ¾·}oö¬ìYÙ³,Z.´\ÈM$$$$_ÝTÝTÝÄ”eÊ2eQaàH&‘IdÎØ9cçŒ]¼•–~Q{ë'·Ü4±kæ’«~Ô£_߯x¿âýŠ ± ± 1Æ=Æ=Æ=Þl.mmmvg¿ÉbœX?Û9Ú*]mîVa„=ÀrÅç2|Ûþ¶ýmäß‘Gþ}5õjêÕT¶‹¯ŽiÞ1ðå×ß±XlÛÅJeooƒþÀÀÓ¨³¨³¨³Xccs½%Å_”òkÜ>²ÀÑ,õ¼,¥,¥,¥Ð“𭇇‡¼½y{óöÚN´hËÕ]Â~{üöøí©|\ù¸ò1#…‘ÂHA…€ C C CÖoå;[¦/1F|Ëýè+u cmk…¥K –|ðìÁ³Ïr ? xð, ùxòñäãtaº0]ø×vTÞȼ‘y#Ù­UñÚêv„¾¬£LÜͶE¥ìê֔ܔܔŒõª?È5Í5ÍíâÙ /þü[eÁ£_Û¥ü§eØ&n b=¯O>=úô= €€§UWW³†qšþ:€{ed–•’HJŠ‚r*¬gǼ˼˼‹Îv¨õÔzj}á¡ÂC…‡JJJ¸‰„=+<+<+ʲ˲˲ét:NG… SSDSDS»Ø‰rèÊí¹q{8޹.°C`ŽÄDíq]Ä9Ù»³wgïîœÊŸ”?)<xðüÔ¸SãNã&¾?øþàûƒã—Æ/_J}O}O}ÿsz‰©ÅÔbj­Ê[•·*õ¨þU;ç:/A/»‘3R2|ó‘+“•Y«w3âfÄͬWýõ~ëýÖûY{ \Öx¤¨àÞ;DÜ“ða=¯åIË“–'¡'0ð´¤5Ik’Ö°F•q)aÆx3®œœ"j¼Îá¹Õ µ9êªÚòŠ;É]Ò?ª}_Q= Ðu f^›P~£™1/ÇÀÞŶ¬g×Bm¡¶PÑ™À9úúúˆ’Õ%«KV»*¸*¸*p »^t½èz±dRɤ’Iôôô¨0@öÄø‰ñcÖíoMá­›––#ÊíÙ0î`Þº‹¬Uݸ1pc`÷3Òv±íbÛŰ3agÂÎ\þxùãåÜDÂ×_|}p¤¤¤»Y»Y»Yot‘Ã>‡}ûؾMst¸–Äs½Ý÷¼´Ä}ØÕð«éWÓ¯¦X¯øÛ5«kV׬Xg¿NÅÿܶ©¼'ýfµeÃí3;÷ºÌÜ5'tƶqþuÆ·Œ ]ýuÉp¡9/×\y´À»~š¶¼|õ­¸ðω]¼vŒvŒv П!žæöÈí‘Û#Ö }b—Y&oÀ 'ä}äw`hü¥Ú"O­®NûÇ8›7àtjxº¾ë‘—/-_Z¾ Ü`üÎøñ{¹Œ\Föððà&vðtðtð,\S¸¦p µ„ZB-A…úввŠ2v±S͇‹Ñ[-èr>R½¯Ý—Ï®ž±m±m±mß;G7;nvÜŒn‹n‹n»éxÓñ¦#7‘ðù€óçB‡ Üú´õiëSnú§íyÛó¶çì~VŒ³ù± w9-?J­¬c­äjŸÕ>«}c˜0ƪůfùÍò›åÇ:ûŒº˜¥’ ¼w÷|Ìñîל¹n3ˆq-iÖ¶¶Ýyóº{RuiÒü.]}§úNõt&@†xšn³n³ns"¶*Í å͸S€´ I38/.v±AQ–pä[ý$Ï,û÷rdËeIÿydôè²E¤[¼WmJjü”õ¼Ò.¤]H»€Î€‹‘ÍÈfdWªTªTªøÝ÷»ïwŸ›Hئڦڦ:oYÞ²¼eæææ¨0{¹òåÊ—+» –†Ì‡X—óQý¦¸ÁÒ¬•”X&±LbA'èÄx?m%m%meâÞĽ‰{j<Ôx¨ÁM$|l展ÇVú ñâ7¤exËð–ᜉQ’Q’QRóæ¯õ³!ÐýîÇA»Ç ™Q)¼yl>kU#¶FlØŠõŠ_uñ b«WóBg² €ÿÿ-Å’û,xï{@{ÔÚ`çre'³;B§þ™+7f @œÀŽo?“)sX2‹×®;›…Ÿ²V}f=¯”)R 3ú3ÀÀÓX·õ"åžòBDÊË5Ê™ÉfçûÅ–Nìüœoß ÜùÏéûÃè/åý7“ãsÏš°gø¹ðsáçЙÐÛ˜JL%¦RÍš!5C‚œ‚œ‚œ¸‰„-¨T jöïÙ¿gÿÞ¾©}Sû&T€Ÿ4i6i6i²ÛÜ÷¶=°~í%„»Ý™ïN¹m:Å®†999½7ƒtGº#Ý1õDê‰Ô¯–¿Zþj97‘ð¾³ûÎî;ëââÒt´éhÓQÖŸH½B½B½Âî;”îñGÜÃ1"Þd„h½´N|ø:q¬Wüª‹¿HÑò—ú,aÞ €K%\ýWêȬ[Öù9ß¾¸óŸí¶ÊK®>ÅûoŽ|c¢#úŽõ8}_ú¾ô}‰ÎèÏOcÝÄ7Y©¿YÉŽ7`çë µNÝo¿ÊRÓdƒÊt^ €;.z™Ïb­¿×i¯Ó^§Ñ™ð „pÝÙº³ugÃâÂâÂ⸉„M*L*L*Ò=Ó=Ó=[Ý[Ý[ÝQ`€¾ÎQ×Q×Q—]¤WV{ÞM1pc«ó•f‰%c·Ù*ÍZ·÷Šïß+þüÙd”3ÊåYÓ³¦gM—ù(óQ†«w oÛ¶mÛ¶mŽk×:®­?Q¢þ„—–—–—ëgJ“Ι‹—«‘û~ÇÊE¿Ï9?¾‹ÇAç\ʹ”s ëÿaëW~W­ŽáÍøRÞÁ¬Y᜺ß~Õž«›Ü…7óÚ—µßþÃ&YÖú>úùèç£èL€þ 0ð´.ì©o~AuoÀ…ñg ?pòµ¹Ç¨üÿû€#Ô+Œçµû€i Å^枬õw¬w¬w¬GgO'ä ù•••¨°¨°¨0…ù óæ÷,ÖwÖwÖwNÙ‘²#ee8e8e8 ÐÇÄqDÜA‡ƒX·Âç?´Íÿê1 i„¾ÿ?.¸>iÇø³-I™ÙÅcŸÇéŒÓ§Ó!Ù!Ù!É ÓËLg¦3ÓóŒóŒóŒ•5•5•5ÇxŒñãѳHx‚ýû ö¬ÿ>—êô÷æ3q¹;¨ËZáGnܹa¹â?¬s­ñ€±¤†7à ý'ë‡ròµ^/52×Nûÿß#–3}Ç/âµû€‹¸ÙoÑc­¿S©ÇDgôg€€§±nÐÛ5[0Ucy3njÊ®2}ÀÉ×6ÌÌô4IäåAÓ­Kv›±¡ýHû‘ö#Ñ™¼Œ>’>’>2ftÌè˜ÑÛ·7n'¬+ •~!…H!RšŒ›Œ›ŒãtãtãtUCTCTCz k×:®u<Ñ%Ñ%Ñ…¼‘¼‘¼‘ ‚‚2𲺆º†ºv±ßѧ «¦2ÎKß‘t@üÞtäEKØÕ*sLæ˜Ì1<=Ùoˆ7Ä›¢Œ¢Œ¢ í3Úg´Ïÿ)ü§ðŸ=‹„W®XH›¨È;¡Np™ÈúÍWMÄÎ6Y.¼àôÄqB²œÆP|š-2^g¿è–jábÅí÷6/™Ñö)|±Ï…ÖÔѧ%˜ìªM- P °^ñÖYÖZûdó²y¼—„»»o)ãäkóg8ïÙlÂË‚.ÛæQ ¾¡‹úŸ×:¯uÉËJ£K£K£I$‰Dªô©ô©ôAMàÇB <­‹;€÷™ÏViã͘îYrÔ¼Œ£ûk£ŠõÌx9¦å1we=B§!NCœ† 3yYÉÊ’•%+»ê.€~©ƒè :Èòdy²|Òž¤=I{´EµEµE{ «d«d«dÇÒbi±´¦=M{šöÑD42ðšx"žˆ'Ø…OWeWlŸ­Ç•Ö” ïŸÑ¯Ú@ñqKW±«½š½š½ZßücQB””E—E—Eååå-˜¾`ú‚éœÀö ïW{üâ8çÏØÑ;îÕœ1›·ä{ìøÃÅby-~Þô÷ÓwY6ñZâµÄkX©øIwïz ¿$‘7àŽëÑœ|mç_°àå¸xµÛó-ò¬G¨?Ožþ.=.=.3³yÊ­È­È­Pµ¢)ESЦ €ÿªá|Ãù†óI–I–I–/E/E/EªTÂô6ô6ô6E.E.E.ŠŠŠHà{zÜëq¯Ç½þý&º¢„õò™—Ô©úMŸ½eÚìôaûëÝäû"ýùèÏGV„*BjþËR—¥.SNàf½é*Ý÷?¶Â 9lk;mÝßê]üýÃSâ?§júûgÍgÌX2¨¡¹ÝzQ÷ß34ƒ”“¯ ® ® Æê¤”Çw¼›Î”¾´æYïL]•8œó9Ÿ»ñᢶCõ?~Ö'_ú²¹À¯RnÅMþÄMªc;ÆvŒÅ›75S.Z.Z.ZŸ¸…o™o™/ò¯04k+V¬TÞF¯g¤Ÿ|Ánn°y…ù‹;IidQžc¿¦>ëÃrÎʧãÿþYYÕ“º6Ÿê÷Ç9•3ëéhåäóÞä½É{ƒ™Ù<w îÜí0±N±N±ù¨®1±1±11Õ7Õ7Õ×3Ð3Ð3P•J˜D!QH”‚# FÈCå¡òP$ ð­½|õòÕËWÿ^_=³D÷×úð½Î7m‰¥¯œ½ßÖ˜óbÔ‚~þýL¯Ý¾vûÚm„0!LZÃè¿{ôîÑ»GÊ9°<é»ýØ ÇqÞ%æÊ—ÝÌY<ÇuùÌÿ× Íýóz95·‚êQÁYÞ åäòòò±.©‡¢¢"åQ–{ $ÆôæV÷ÊîeÜÓŸ2éñ­ézM}–×\ ãß6ÿý³8¯ŸšÑ¿¹ýÅéòí÷t>q}÷.î]Ü3³yÒ;¦wLïØ?îGÒqFÇ(ìá+C ÍZT§¨NQ”7Í ´b~¦ßÜ `®õË>ÿ›šá߯65m¾èŽƒ,©+–CÇ Dïë6óÿþñ/mŸÿ~Hs{íïÇÇàCÞµ6{•“¯ÝZ»µv+ffs#O’'É“”Ç+´!´!´ù|;R ©†T#Ã/Ã/ÃÏç’Ï%ŸKªTÂA‚6mÈ5Ë5Ë5“¥ÉÒdiHà[`–3Ë™å=?CÈݕ㧙ûL\0¢ùW¿bꆵ3ýF¼ìªôïçå^á^á^ÑÚÆýšö5íkÚÊiä Þjèùc+þƒ1S»ܽ2âÜ_MF¤}~‰û÷Wÿ5î—þ#š[Ì[õüØŒ3ÊÉ¿Ÿþ~úûéX‘ÔÃÒÒ’ò(—ø‘}ç6·xÔËa¤>ºÿ{¯â©{N!Ú ¦5|¼öß|h¤ùß?~ÉÞYZ³›Û•õñq¼Ö(Q_gåä¥ï¤ï¤ï03››â3ÅgŠ?±¾Öy­óZùÀ×…šµÂÃ…‡ +o‘‹Åš[œu!<Ö±ÒÊçî}sÿß⬰uºûKeeR¡ó‰fW7æf¸ºX®¶0×ýÄkIŽ GÌÌæ¦ÀªÀªÀJy¼ò}ò}ò}À÷$''—}?û~öý÷Cß}?T•Jøèè(‹’EÉ¢HÓ¥éÒt$ ðµäðrx9¼‰'^œxñßëÒáº}Ã5tÈÉ«öOØÜJß0û /gf]מ1È÷s*íè®Ñ]£»¶Î_é»Òwå'RjäöŸÿ¢¹•:Ÿ_5­£‡ùß+€O„m0ʾ¹ÕT9Ž3줜¼Õ«V °©Ï1žc<Ç|âöLÇ×úžÍ­f;ÔÏx°ÿ˜^ûþ}Íœ 5Ú¤ŸF6' `Nns»²,9uó+ódŸÉ>“ñ;`3õZïµÞk½O¼bûdñÉâ“Ⱦ.ÀЬInJnJn*oˆ;F=Ùi5¼¹ÀÿýãûF{´·özÿÀÎ"Ý2Ò²¿ù‚§avw½™£¬94dj»Ìmž¯ý­?Ÿnðâ½ræîñîñîñ˜“Íùùùˆò¨ÉÉÉ!€K>L>L>,oIÞ’¼%Á/‚_¿P¥~«õVë­Vz\z\zœ„,!KÈH@²YŠ,Åf±Íb›Å=?ÛƒjÃã'äÕnïkøì{Ö½5&{z½tñ_ðfÒä~a½ª~üœ£=±úÄê«k÷Öî­ÝÛšÇZ;N;N;N9b¤hè‚>Í­þ÷Gù8±ë…u»ä£ÿ÷®Æ«¬œÀÀc†šÍíh«#™FF7•“?`Àþ€=V!õ*I•¤J”Gù\·SuÍ­þûŸYl—®Ü>|ÓÖÐy”¾î}¦ÿj5…9ŽÛßäºø “î´j6s†‘Yó|ío¬öëó[”37o4o4oÄœlžfôšÑkF¯¿—Þ^½½z{‘ | (€ xÜð¸áqƒò&xãæŒ÷.Ã~l]ÚT‰û_ÿ½ù<&ßìvØ¢œ¶å^˽–{…ƒ„ƒ„ƒ*W,®XL¼"^¯0?,…•ÂJñ‰×þZZZ €æI^-¯–Wddd’dY¡J%üzÙëe¯—¥R)‚ÆÓ§O#a€/“!Îgˆ—]^vyÙåÏ/ƒ{&ö4é9ëÊáwÆÌ`'®Ý©_HHì[`ü^Ý{dƒíÌD«´Ù…ã.*êÿ°ÏÌÏ?¨ÑÕ£«GWGÞ¼y#û‘rJƒbÌïܲªßïøk©oããY|¬¬èíìIÓ£šgM%mÃË6©œÿr³åfËÍ03ÕƒLK¦%ÓjjERܾ1®nž¯ªÿ¯ÿÞ|oQMKt3•ÓÖ¡;Cw†kˆkˆkH§€SÀÁülÊüËüËü•ÇË¥K—>ȾÀЄ] »vMyË;yž`‚Ãòæ\¦¶ÄÇ—Äóû÷§~ñÀÀÀP¦]¦]¦M,$ 1c¿§âöÅí‹Û+KnÇÜŽ¹‘@K¡pQ¸(\Š×¯/^ÏÐgè3ôU©„Ý6ºmtÛ˜èèèÐЭ¡[C7$ ðe?þ®ñ»Æï=U ÙCãv/î"÷‘Ã5w÷œ°I»Ë±CSVêqü)ž£Œ÷6L<¬í¿-Øxb<1¾Ô½Ô½Ô³’³’³R••ùùœçsžÏù°øÃâ‹ë®Õ]«»†€>_üÉø“ñ'÷Øw`ßžÍÌ Å Å …`‹`‹` ‘F¤i¯¦(§7õâøýo4Ï‚G²™·}>qûþáûc{ö иðëÆÇ<´‡¦moïON'i<Àu›/hþ¯STÌšâuŠÓ‡M6}f¦:affþÄ “v~ЩGqûµ£¯Â~ÏTå{ÇÀœ9sl³l³l³2»evËìFì!ö{0‡¿£CF‡Œý}´¯h_ѾBH )!E>ð- €Ãî/»¿ìþRÞÔ®8˜ä<õ­êÂhò†Ç•vpupupU¥x ”QÊ(e…‡ Vh*4š˜Ï_¡Eh)§í×è×è‡÷|PGˆGÄ£òØòØòXÁ<Á<Á<Ë Ë ËŒ/[™Ÿ¶{Úîi»è˜è˜è˜š¨š¨š( ð9dá²pYxˆqˆqˆñ†‰&n˜ø=ëÞyŽóç9¾Ñx£ñF£zVõ¬êY‘ϧœçXÅÈ¢¾Ûš[µ“2Û'jöä©þã¯÷·þxœ½czÿܳèJ¿½åcFUTÒÛÍKoþ¥ï?^c3õ­*2“ì®.M•õ±õ±õ±’³’³’³ézézézÞ½¼{y÷R¥yò$äI^Z^Z^š||| føUjRjRj¢œm–A–A–òh’ˆ$"©2½2½2=¬wXï°ÞÖ§­O[Ÿþ²•ÙÖÝÖÝÖ=â÷ˆß#~¯"ªˆ*‚øßÿÀÿ¯²seçÊÎ^>^>^>Ç{ïq¼Ç”˜)1Sbþëæ».I—¤KÚ÷~ßû}ï]g¹Îr•q%ãJÆ$¬:å´{·éµ¥ghó)u2ªü¯Î™§»„wßvÿ›ûGx÷mdz|þ|ÆÍ–ò¾¤Ê/¸‘ó?Q ®»vîÚ¹˜™êÇì¢ÙE³‹Ê#þ"ÊlÐDõ­*yÁ?Þoê;ˆ|||AYeYeY¥ïeß˾—çϘ?cþ U*á7*nT$ÌH˜‘0Cî+÷•ûb†ÿW/~âŠÈ“3&g òo0´²=²=²=Mm[W½K¾êü Uî—=Fi1æÚÿô‰rýÏ ?ƒþljD¤.R©KÖà¬ÁYƒýø~|?¾*•pÀ€!Crtstst?Ž5æü¿cóÙ|ö'2—¾•¾•¾E>­””Òjn5·šI¤GÒí í í ¿le¾?òþÈû#EWDWDW>–[ƒ` Ä -Ñx³ñfãÍ”·àƒÆÍ¡Ú1X<Ùs`÷G5Ÿ1cÉ †²Á”ðy-±ôýûcE,­t^¢ròÇ;pìf¦úÉÛ·;owS…bý#ÎÔùÛPå~Ùã_LFޤ}¢\òbÈ‹!MHeFeFeF ‘u"ëDVø’ð%áK$é’tI:æÿÿr^_³¾fý'®‚Á6ƒm#øÖP@ #Ý"Ý"ÝÒÔÆtnçȧ›¨u?ÿ‘tÐw™­†r’ÉÉɪ—ÜJn%·Ê·Í·Í· † C…ªTÂoØoØoØi&i&i&’¡’¡’¡­ó*(·*·*·RÎ'}yúòôåX%àsÔ­[?6Þ7Þ7Þ÷Åî»_ìVe}f=c=c=+ñ/ñ/ñWÔ+êõHš›»Uw«îV)oÄgœðל3òÇV;{|×v×>ðñx†Uî¦1ðã?¾w¾·ž÷}lnÅeËã×Óõ•“§ô¡ô¡ôÁÌTWÙ!Ù!Ù!MU†¹ ³ Pë~Öã6ÑòÃg÷›Ò{àiå$Ÿ•>+}VªúxÕÖÖ²F°F°Fì°ÚaµÃJ•Jø`åÁʃ•ü~¿ ±[c·Æn­ó* ‡CÈŸ¸ 2d È€U¾5ÀÐ"ÅŒ?²©mhéѬu.OQîþûcnYÔ-§¦2¬=S{¦öÌ·;ÅrÅrÅò¢E‹ÒúÒúÒúªR9¸gºgºg&ÏNž<»AÐ h´†ùÏgð|†r’›’›’›XàË4x4x4x$U'U'U»v?ì~X•õ™v–v–v¶hmÑÚ¢µŠ-Š-Š-H~,Ê”?((oÄ]°é>5çÇ<†òi› îù•4·úêf•é2ÝwŸ¨@ŽdÉÀ=$ÔÜÕ§WŸ^}ª<úó3Îk¶'Fˆ†.胊÷ß_In•LÞÕÔõ.Ù!Ù!Ùñ-Æ®±]c»Ævüp~8?ü ÷ ÷ W•uiGÈŽ!,C–!˰®¦®¦®¦5ÌÿK7.ݸô«ô\b.w@‡o0´L>õ~êýÔûï\kë½Üf**Þ¦¼2ƾhljË>bMÄšˆ5ßs0ÅŠbEqÉ¥’K%—X³Y³Y³U©^$¿H~‘¯ˆWÄ+êWÖ¯¬_©V3?†ˆ!b,µ-µ-µÿ~ÖG<Žx`û ¾2I[I[IÛ´Þi½Óz¿Yûf훵ª¬Ï¤‰¤‰¤‰ù‘ù‘ù‘rg¹³Ü À÷”{7÷nî]åøãSþLõƒ_‰8´‡¦moou-€'ÔißÏXù8õõõ03Õ[MCMCMCSsÕ¡øÒ¥ ¯Qñ6õ˜ºÈ×eö‘¦Òc“Ø$6é»þd/‰—ćO Ÿ>éDð‰àÁª¬T›~ßôû¦ß)«)«)«klklklÕiæ×‘ëÈuŸ¸õ½¥¾¥¾¥>Vø>P@ V¾­|[ù¶¦6šc7³ödÔ½ÿxœ”;ßõ¤{¦³áýCʉÙÙÙ)òyм<´»‰ÝÄî2J¥ŒÂ›Ï›Ï›GrGrGòe•ƒã;ÇwŽïbŸÆ>}ZëWëWë×rç|¥S¥S¥“ò9¦¤¤`M€oM:S:S:3³gfÏÌž¾}}ûúªt‡@v ;«›«›«+£Éh2€oG®#בë4Yšþ&» ? §¯ûXãÎ,2 TN{ŠhŠhŠs²õ`LfLfLnêê¼87³®—\;‰¬^FŒÞóz=è)øÄ –ƒ n#+Û-Û-Û³P@‹Ý!ºCt‡¦6—³ê"¦8uCõûñ‘zþ¯-§©¬*OVž¬<ÙL‡™DREbEbE¢h”h”hÔ=—{.÷\¾¬rx¼÷ñÞÇ{£4¢4¢4ª+«+«+ 9!'äͶ‹‰‰)ŸQãŒÆ3°À÷'[![![‘]”]”]ô>à}ÀûU*áwSÞMy7%k{Öö¬íR²”,%#aøº¶ÜÞr{ËmåMù¬´€Ÿæø¡vúºÌm6ú››*{öúìõÙëÃ]É]É]٠٠٠‰ù©ÞÎhœÑ8£ÑÔ|H×}7hv2®Ù~±ñ±¥/gûhÝj*«Ú~µýjû5ÏQ–{Ê=åž Ú Ú Ú777ªTÂóÌ?0ÿ€ï3ßg¾Ïʈ2¢¬ÅÌöí‘Û#·G*Ÿ‘â¼â¼âP@ËWKÔµï¬ÞY½³jjC9?%¦Ó³1­¹úå­ q´ã7•OÊž”=){Zظ—åDyUtUtUtxnxnx®­Ž­Ž­Î—UÖõÖõÖõaƬêVÕ­ª‘F¤iÍè|‰F¢ñåååïGîzÂõ„ë ,Ð|ÈgËgËgç9ç9ç9‡L ™2I•JØÛÌÛÌÛ,ýdúÉô“[‰­Ä €*Bg…Î ¥¼)o{áŒ×x)ʧ¯ûø§áR¯a ?¿ìÙ²qËÆ-é7é7é7k3k3k31cÕ‰ÄJb%±ÒÛ ·AoCSs 7;h«áöÖy½(Ö /çíš±zØð¤¦òùpòÃÉ'[Ö¸+^+^+^§ø¥ø¥øÝÍ»›w7O•Jxf¿™ýfö{ô:éuR±¨XTÜìî%ÐÒÒ¢|ä×»\ïr½ ÖøžP€šm”m”m|\ð¸àqAS›È¹+¢:;=jEÕoyn‚ësNfðy»MeÂ÷à{ð=Ôi&ÔxÔxÔxD_‹¾}ÍþŽýû/¬îî¾»ûîn“ÀIàTѾ¢}E{‰p"œ~ÔyUß©¾Sý‰ãLì˜Ø1±#VhÎ]]] +ü­ð7ŠÅ‚b¡J%ìáåáåᕲ;ewÊîÆ%K— aø?SÙWÛWÛ7U-(º ãPܪþXù„~˨½êïg¼6hmÐÚ ÐS¡§BOUï¨ÞQ½s¸¥+ú­è·¢ßþ}Ü3ýMç´žëEú˜¿Éxáÿ•ÃÍšÊ$pyàòÀåj2 v;‰¶T[ª-u Ï@Ÿ>_¶JL¸4áÒ„K.‘.‘.‘« V¬ú±÷÷âoåoåoU>Îø‘ñ#ãGb€ï 0¨•ú­õ[ë·þûÆqÒqþ]‡Áê]ýʃs´\‡½÷ÞkcÐT¡‘¡‘¡‘_G«Þ³¢Î¤Î¤Î$®1®1®ñïïO•âãÍñæx—&—&—&ú„>¡ÿ}Î"raäÂÈ…ÊÇS/¬Ö qí@Ë¢P(Š]‹]‹]4ASeevõwõwõOœ˜81qb}j}j}*€·åü–ó[Î+oÐó½œÍfpQߪþø<ìê퉟xÏ+f¬˜¡J%¼8jqÔâ¨÷ƒß~?¸Â¾Â¾Âó¹%JÖMÖMÖý÷±Ïy¹íw=5ÿS‰z°Qo#S}ÃAošÊáÙæg›ŸmVó Kı9’IŽÄq…ã Ç##FFŒŒø²Ub„ãÇŽW®8\ɹ—s/ç!"DÄwz­ðÁ{ì¡|TrS¹©Ü×>|O(€@ Õ¸Ö¸Ö¸þûf1óhÿÑbE®‰ëuª~ktSÜkÚØ5Ü iê܃Ž :J&‡[ç ©/®/®/N\™¸2q¥k–k–k–*ÅÞaϰ/¶*¶*¶Rø*|¾ßâ˜í¦ÚMµ›ú÷ç}¶þÙúgëq½€š0 ƒÒòÒòÒrN4'š­ÊÊüìñ³ÇÏÇ%Å%Å%Õ-«[V· ÀßEŒˆ1Byƒ~öS¼‰úV•GÉ;ž»q力™¢WE¯Š^)tº ݤ¥IK“–Þ±¿cÇ^•JxŽÛ·9nÞW½¯z_-µ(µ(µÀ o)b»Åv‹íöïãëæzcÕ$õ»R>ؾÙePôïçnwÔî¨ÝÑÖópÌÃ1_¶2ÛÔÚÔÚÔ†³ÂYá¬*F£ŠA”¥D)bh=())•7ëÇv9¡ïÅ ¡‹q ÝϬ̼jô¸©¢%õBê…Ô ÿaxœ gÂ9+=+=+ýɲ'Ëž,’7$oHÞ—Õ<º§tOéžz~ìù±çÇòìóìóì[Ã[á´,ù1ù1ù1#tGèŽøn í¶üF×I÷ˆrmÁ¼–ruDì~Éú}éˆqCÄÿ~v¤ý¤ý¤ý˜Ÿ¯|]ùºòu~ü6øm0¾i|Óø¦*•ðõ¬ëY׳âããår ù¸£À‰':œè ü5eýdýdý0Rðý¡€ÖáqŠ8şŸŸò9›Â‘NôÔ'ÙR½¬á.–Í­ô­j›Tï|&hwOíÏ9—££#LÕI¹R®”›u!ëBÖ…wÛÞm{·M•Jø½å{Ë÷–ّّّ²ù²ù²ùM=¯ƒ¹ƒ¹ƒù?^Ǧa¯a¯ 䄜״©iSÓ&jjÔÔ¨©Ÿ<~òø _%|ïè½£÷ŽŠÚŠÚŠÚVp+¸\"„!B3€ºRPEg€ÎÊ[öÙ·]'?F­ûù v^¨œänÚnÚnÚW° ¢‚¨È£åÑòhÏIÏIÏIº9º9º9_Vó 99ää“YYY„á@8àºø±5,jXdzÂô„é‰ÏÇÀ©{L}*­à?36inWDüÀ7âYWžg:øÿ)}ûmí·µßÖTÝTÝT]ÌÕUͬšY53H$ ­4_i¾Ò\•JøÂé §/œŽfF3£™2™Ì@ùe e eŸXýŽ¥K=–Š0´:y^y^y^ÿá^§½y´»¦8uÖ‹¡?ªôͱŽ<åtð5ÇÅìAïÏ9fososoóúsõçêÏaÄ¿_Æ—ñsrrKKKU©„}Š|Š|Š2j3j3j¥¤¤êêêêêê”?2ú·èߢCþM©eÔ2j±¡±¡±¡ŽÙŽÙŽÙ_¸4sîpîpxCxCxCÊ<Ê<Ê<ˆÄbP'afafafMmýçÙåÞA¹ûïâ×ä™Ô¦2,Ð/Ð/Ðÿv#X´©hSÑ&÷÷÷œ©ŽS§:~YÍ£1NcœÆ¸ÆŒ§ÝM»›v—hC´!ÚàùQ>í¶ž©·¿aÇþu-„¤Û–N;2-ZoWÿèÏ9æK³.ͺ4«±Sc§ÆNño§&±&±&‘ÒHi¤4þ±ð…,T¥>Î:Î:Î {ö<ì¹ÄCâ!ñˆ.Œ.Œ.üÄ ô ëÖùÂZ)ÙnÙnÙnÎ{Î{ÎûÏß¾»ÓÒÒ|?—2Êîe!?öÎ3û¯[ôÊrVºŽÏ˜ÖÕÑ4°—ׇ©ÿu§:Mœ&Nc|ù+ù+ù«ü‚ü‚üÒ&Ò&Ò&U*á盞ozþ‰¯Ps­æZÍ5¤ ðùê·Ôo©ß’ ™ ™ éò‹Ë/.¿¨²>³°°”ì+ÙW²O‘«ÈUä"a€–nõþêýÕÊÛ÷3öO<0`Ÿ¬H°ÃØE¯òcåºéï8/-^$sÔJÌäz*xO×yò–z÷ÍVèÊuо¨Ê6tD·ˆnÝdGÆÁh67Š]Š]Š]E‹¤=§=§=We¬-WX®°\‘ô!éCÒ‡‡‡ܤà 5|høÐð!Ù$Ù$ÙäUW=^õPe}¦–SË©åEm‹ÚµU,T,T,DÂ-K¥_¥_¥_“¯Ò ßS::uïßåÂ>Ƽ¥Õ³K´ž('¦g¨g¨g(_#_#_ÓÆ·"¨"¨"èýö÷Ûßo_2}Éô%ÓU){®Wˆ+DÜž¸=q{d ²Y® ï#¡&¡&¡fÙ¸eã–û²±¾`ð*ñ»v®ž;<û^ü‰yã<ÇÝq›œrÊöé´ ´åöã§{9'Mïë7ëÞØ)çŸj_ì?aÞÉý[mF‘g6NrÀTeæ¼o÷¾ÝûvŠŠŠÍæ¦Ñ¨Ñ¨ÑH`&0˜*;Tv¨L•±Ÿ0>a|ÓŒiÆ4«ó¬ó¬óDÂðý¡ø‡êÕ«ÒvÐvÐvÜi–Ì9æsNìÍØ›±7¥‘ÒHi$F­eQÈ2…¬„_Â/á³X,‹¥Ê|x1õÅÔSã­ã­ã­ë5ë5ë5‘°êÖ%¬KX—=({Pö ¤ÐzHÆIÆIÆ¥I;“væMÅ›Š7ª¬Ï¡/B_„¾È¿˜1ÿ¢ü¦ü¦ü&V…¬HV$+z“õ&ëM–tŽtŽt2o»–»–»¶© ý¡f'6¢ú%êEœóÏõÞ9SGØTV™2?d~hÖ¿÷]¨¾P}!ô}èûÐ÷ë­´n*eÏ™ãgŽŸ9¹/r_ä>©¹Ô\jŽ«é[K¤'Òé{ö$ìIèÙ,éIõ¤zÒPv(;”-£Ê¨2*F­e‘v—v—vO O O92þd¼*óaãOÚøÙ‚lA¶¨™[3·f.VÝ]­»ZwµÒ–¦-M[Š4”¡h’ì²ì²ìrjyjyj¹GšGšGÚ*}ÉB²,,J/J/JǸ¨¡cÄ1âXyÛò¶åmyl›Ç6ßh¾Ñ|ã—ÍÇNŽ;ÅŽ‰;¦ö|íùÚóøóqÊ8eœ²¿ç™——‡dZ'é6é6é¶Ì£™G3ú¾õ}ëûV•ïæ“'Nʉʉʉ’9ËœeÎHøsÈWÉWÉWŽ>}:úßé¼½½$!’IòoÁfƒÍ› Mmâ¿Õ³äý&lͰùÌ#icÿj*ŸÝÝÝ–8îµµµt&Ign Ú´%H•²çȳ#ÏŽ<   oŒiŒiŒÁ•õíTö¨ìQÙÃËØËØËø÷î¿wÿ½û*}-5,5,52 3 3 1.j¸Gd-³–Yǔǔǔ_:wéÜ¥sªÌ–å“—O^>9piàÒÀ¥•Ö•Ö•ÖHøóýÑÿþôÿ{ž)ëSÖ§¬G2‡à¿ü¸?H6H6¨`VÁ¬‚Y‰ÀÄ•åÊre}…×õŽ3g>ηзз0–ËåWì«ØW±™·N/C^†¼ ùÇIº“t'éËf—]]]Pä³Èg‘Ϫªª)!%¤ÈYYSfÜɸ“qù€ìˆìˆìHÎüœù9ó,X¬Êw?'?'?§¬¶Ym³ÚJŸHŸHŸ aež?{þìù³rzOW?]ýtµd¬d¬d,R‚¯Ì†°!lö®Ø»b6î_-¾µsòï­¨ú½$Ú³`ÌõÓMtµ›ÊĦM;›vê4&5Lj˜Ä½Ã½Ã½³¯Û¾nûTz/á=×÷\ßscDZãØÕÇ×Ç×ÇãRûvª¢«¢«¢¹"®ˆ+ºÉ¾É¾ÉÖé‹ôEªW¼ƒM› 69üôðÓÃOý½ý½ý½óíòíòíyk£x¢x¢xòuÿ€ÀHËHËHˇãÃñá”9”9”á-Ÿ>µ[âúÒõ¥kS&­IZ“´)}„ iLhLhLPÞæŠ…b¡¸ºguÏêž["¶Dl±M°M°Mø²ÊÁÚÈÚÈÚH\!®WTŠ+Å•b"H ¿¨³¨³¨sS¹¥ÿ–þ[úoH þN¾Y¾Y¾9¯.¯.¯.„Âa¨R {åyåyå¥÷Jï•ÞKb*1•˜"áíí퇫®z¸J9±Ç+W4>n|ÜøYÁ×%}!}!}±dÉ’%K–4ùj?ï¿øcÄO¢v ºªkõÛ8œk:?d·Õš±Ú:Måp¶êlÕÙ*¢Ž¨#êÔ{VH†I†I†‰;‰;‰;ý¥ù—æ_šª”=ûsØŸÃhl›Æ®µ­µ­µÅuÐR¤lJÙ”²IùºfüÌø™ñsêÜÔ¹©s­Š¬Š¬ŠzÒ{Ò{Ò¿l•Ðgè3ôÅ[‹·oEò S…©ÂÔTf*3•5•[‚a‚a^… 9IõNõNõVÞà®ðªðªðRþøš¬š¬š¬èšèšèš§SŸN}:õË*K/K/K/ÁÁÁrF9£œA<$[ç(ˆIb’˜ÔTV©ñ©ñ©xÅ4I¡­ÐVhÞ(¼QxƒÚ‡Ú‡ÚG•JØ£«GW®Éòdy²¼qpãàÆÁ­3Õ~¿o˰eØ~¢btçÑGw¤ ÒÜß¾öÜ£6P¨ ß,|³ðMSÍ«GÏ#s*FÑöÌóS§ê7³ñýò9—FÊ×ÈiêÜOž2üöá·k{¯í½¶W•Jx‘ù"óEæþKý—ú/­˜Q1£bøÁ6ˆO¬:lè°¡Ãg}…T"•HÍ=“{&÷ŒÓ§9Nst¦èLÑ™òe«„öTí©ÚSŸZ>µ|j™Ó#§GN‚FÐZ«‹‘ÄHbäÉŠ“'+šÊ'¦*¦*¦ªuNUÀÍ‚´·´·´·òv6·”[Ê-Uå+7 jÔ0(1$1$1Äí¦ÛM·›ªŒ^Œ^Œ^ÅsŠçÏQ8*Žê=.‘#;G6ySèä.É]’»`öÀ¶”XJ,-Ó/Ó/Óç®ã®ã®Seev*s*s*‹;w(îP]ߺ¾u}Õ;¼Fy£¼QnÿÀþýå4¸w6îl\S™DFF¶¶¹Š yüù6ãmÆ[åì2«2«2«¯û\ׯ7^OÉKÉKÉ{}îõ¹×çT)ÈÈÈ „¡¼D^"/Q¿Ñ‰rrro*ħ‰OŸb€J< O³bKÅ–Š-ÂÙÂÙÂÙV+­VZ­ü²•ù‰çÏ'žQ%Q%Q%5[k¶Ö¨á;ÆI¬$V+‡‡‡åî¸7âÞˆ:E¢NÉßBp—à.Á]>g#þäÒ­—FæšVÎmn¥oB²÷ØYG6îY˜1TïsÎ%²dÿÈþý¯`1„’n”n”ndýÈú‘õ£¾½ûöîÛûËÊžß>üöá·/_¾ ,d² YàÛ±n;Üv¸ò•XMTÕ_ù¹JlJlJlÞœ{sîÍ9+++Uþ|ÄògËŸ-NvKvKvSœTœTœT«q'Ü ÷‹^½.z5•@„i„i„i뙫(€šŸs>ç|>QÄ&„ aò­Ÿ]“ð$¼ôŠôŠôŠ·‹ß.~»X•J8ølðÙà³y“ò&åM’P1Šù=æ÷˜ß›:ëíímÌdøjòˆ<"¯jkÕÖª­áÂ;„wx˜ò0åaÊ—­Ì6F6F6FáK׆/­2«2«2# ‰B¢°¥‡$í#í#íólÞ³yÏæ}âî--ëÔ-¨[€ ßä2õÎóÎó6®6®6®þœÍ÷U§çìĹñì—=e)‚ÆÖß³î­Ó`wžß)hù⩉ÓÖëýÜ?ðsŽùPûCíµ¯yUóªæFüzK¼%ÞfïÈÞ‘½Ã~žý<ûyÃV [5lÕ—Õ¾½|·|·|w‹£("Šˆºzêê©«§š:ë°Þa½Ãz·† ‹à“““}â½ ™¹Ì\fî:*i´@ZŸŸÿ®ö]í»ZU*aÿ:ÿ:ÿºìSÙ§²OÉ´eÚ²\”Æ c…±Â¦ÎôƒÛ·n˜ÕðM(¡¨1¨1¨1ˆòŒòŒò|²àÉ‚'_øŽÂVÁVÁVÁÂ[Â[Â[×+®W\'|§%#},},}ìüÀùó'n m®a®a®Q{§öNíL"ø&\ WÂÕßÏßÏßï¿n¾o¿¼nXE@˜5uêõ•OÅðþ0uDQ—¯Ÿ¯Ÿ¯ïìáìáì1Îxœñ8ã/«ywÜip§Çw|Ü1krÖä¬É„%aIX"f€Ï—ã•ã•ó‰W—¼ xðòGU•m•m•mð“à'ÁOV W W U©„Ïo=¿õüÖè!ÑC¢‡ÈºÉºÉºµÈ¡*#ʈ²nL¸1¡©3z ½…Þê=cQü`ÙVÙVÙVÊÖ%KJ–”,i>Ç)Ë“åÉòrrr‚®] º¢J%ì³ÚgµÏê » » ;igigiç–5jVXýauSg78npÜ`Ìmø>jëkëkëãtãtãt¬œ¬œ¬TYŸ¹Ï¸Ï¸ÏÊv”í(ÛA¬%Ök[J²_e¿Ê~u‰w‰w‰oêìj˜5Ì&æ |;õÖÿYÿç“'&OLTÙ‚ý§vï>V[¹Ë݇%š-:pdLúãEçRõœœß]›9‘ú¼üªËć¶g¤z½.eì‘ÎØÈ[4~è|­º½§¨ò¼oƒß¿ –÷“÷“÷Ãh6OE‚"A‘àÿÿZÍ´ši5_6Ö½‚zõ ºo|ßø¾qÚOi?¥ý¤(P(ð*a€&9;;+_M•‹*U.jF?êÖêÖêR©T*•ºùÊæ+›¯¨ò}á˜Ë1—c.â*q•¸JrTrTr´Å ˜œòÛÉ·“o'7uv|}¾>__]g, `€ì½Ö{­÷ZʛԊ4Eš"­Yÿ>Å3䌃ƒR.)—”«Jåàiîiîižj“j“jÓÖÖÖüÇ.>:>:>º©3Š±Ž±Ž±Æ €ï¯þ~ýýúû wî$ÜqñuñuñUe}fÚ0m˜6%š%š%šŠEŒ"¦9Ÿ»ì¦ì¦ìæËþ/û¿ìßÔU×V×V×bžÀ7ŸŽ2G™£ÇY³gûjöÕì«Ù³™™¼zòêÉ«CmCmCm1^-WY¯²^e½Þ:¿u~ë<÷ϹÎýS•YqÛà¶ÁmƒÄ[‰·oÉr…ï¤ð¿»°Œ¨Q9¢òï×˧8§8WRRBMM­JåðÒé¥ÓK§¤ÃI‡“7˜6˜6˜6ϳN\š¸4qiSg%’GÉ1ÛàÇjlר®±]23™™Ì|åûÊ÷•J•0u7u7uw¡¡¡¿b¢b¢bbs;_Y•¬JVõjõ«Õ¯š¼[Cõ°êaÕÃ07à;ñ%| ß„· oÞ^;íüµóß¿îÕ¼¤yIóÒÃʇ•+³Ê²Ê²Ê0,ꪲOeŸÊ>“&L^zi饥—T™9—K/—^.åÆrc¹²0Y˜, CkS`Z`Z`ª|uøô÷éïÓ¿Eþdx­ñZã5ááá”Ç5k¨²Jl[¿mý¶õ 6ƒÍ`×m¯Û^·½yžõý_îÿrÿ—¦Î‚5‚5‚5Bæ- `€&oaÞ¼…Ê[Ò…9…9…9jr’݈nD·ÒÞ¥½K{³±±©R98ßw¾ï|?~Düˆøu…u…u…ÍçD“(I”$JSG¹3rgäNÌyh>$ë%ë%ëÓÓÓ½¬¼¬¼TºqthïÐÞ¡½óuòuòuäåå›Ã9Ê7Ê7Ê7¾¾þúúëëMyÕ‚ªU 0àG)©/©/©|ø8ðñé§œ>0a성ƪ²ÿûÚß×þ¾öZõ†k ôIôIôI gÎ4œAÚ­YuTuTué2é2éòúMë7­ß¤Ê;½áô†Ó"h´št½t½t=õæÚѵ£kGåk¡lIÙ’²%êqŽR#©‘Ô(âfÄ͈›§jNÕœªQe•XÏYÏYÏ!±H,«º¬º¬ºýÉÑCˇ–-›:rú ú ú õSÀ?L°S°S°Ó'nþ<[1[1[mOû2q™¸\¾¤|Iùþ|þ|þ|‹#G,Ž|Yåà°Åa‹Ã–˜à˜à˜àZ£Z£Z£{r)£SF§4ùºçpz8=œŽ™Í“ôºôºôzfXfXf˜ß¿~ T©„ž< x–s6çlÎYÙ5Ù5Ùµu^òy€<àÍÛ7oß¼mêh+wWî®Ü9­GÝ‚ºu f 3†ÙÖâ­Å[‹U){Ÿ;|îð9á1á1á±F»F»F;$ êdBÄ„ˆ ŸóÓý¦ûM÷Sï³–QeT5ö~ìýØû—ï]¾wùž*«ÄÒ²¥eKË.\¸P9µrjåÔ{vˆGÄ#¢©£¥ÄSâ)ñ-}Qüòjyµ¼ú¯ :z0ô`«‹CLˆ qå–Ê-•[ăŃŃt{ÐíA·/«ì:Úu´ë9:rtäèêsÕçªÏ DÑð=O(õnêÝÔ»MaX¿°~aýp@ó'»'»'»—ó,çYγ€Ô€Ô€TU*a¿~ü:d¾Ì|™ùRzRzRzò{ž‹¢›¢›¢›wŒwŒwLSGXq¡âBÅŒ;´N 'N6œäÍáÍáÍÙ¯¿_¿¾*eÏîõ»×ï^ÏNe§²Së­ë­ë­‘0´DŹŹŹÊ3ÜÃØÃØÃ¸ÕícTÉ«äU‰k×$®¹•q+ãV†*«Ä܈¹s#Þ–¼-y[R6µljÙ¨„í÷Øï±ßÓÔ’‘‘µÜñB 𤤤+o=ç›ä›ä› ¢Ž¨#ꪗW/¯^ûÈü‘ù#ó/«ÜpÿÁ}ñiñiñéÊ»•w+ïQDõ­O"­0­0­°©£íííÃP@Ë"?-?-?¿4iþÒÐU¡«BW©R {-ñZâµ$Í'Í'ÍG2_2_2ÿ[¿b‹b‹b‹O…O…OESGUnQnQn±˜HL$&â@q 8ðØìc³ÍV¥ìÙ\´¹hs­ ­ ­M­q­q­1†æÏ³‡gÏÊó¹¸Cq‡âÈG‘®HW¤§F¤F¤FÜ+¹Wr¯¤×´^ÓzMû²Ubú¡é‡¦òèëÑ×£oQyQyQù÷9 G²#Ù‘ÜÔQ¯ ^¼¦%Ž `€€,%KÉRåMgùù9^{Ô¤ÚµkÆìÙ³÷iæÓ̧™_V9XT[T[TóùÎ|çò åÊ/·ˆ[Ä­oq̆††M‰ÀGà#ðÁÈ@Ë¥˜©˜©˜YWWG}N}N}®J%üêЫC¯%Û%Û%Û5T6T6T~“cvW¸+Üßux×á]‡¦Ž¤Ì¦Ì¦Ìã ðwR™T&•EåEåEåSœSœS¨R ¯ž±zÆêÁéÁéÁéUïªÞU½CÂÐÜÌÜ7sßÌ}Ÿ·ã;Žï8¾#’iÒ-âq+«}Vû¬öv~v~v~Z–Z–Z–_¶JŒ£££9Kœ%Î’üù;ówõD=Qÿ-ܹ½s{çöMIÀù€óç[ÖP ø®///>ñ^‰   È翪c×±ëØ>|øðáƒs?ç~ÎýT)Øîlw¶{é¢ÒE¥‹ˆÄbÀ×:ÎÌ{™÷2ï5õ¼¼J^%¯£ jò.Y‘¬H.1(1(1`Š™b¦X••Ùå€Ë— ›6'l®?_¾þ«m½) Š‚÷}Þ÷yß§©g/}Tú¨ôÆ )ò ò ò ">D|ˆ0;mvÚì´*•ð¹ ç.œûîô»ÓïN—'”'”' aøQÊû•÷+離+t,t,t|¹ïå¾—û~ÛöÛ¶ß¶}Ù*Ñצ¯M_ëëë’ôé'ÒO:„¡£Ê±¹v?ì~¸©gôyîóÜçyóO0ÀwŘʘʘª¼¹,³•ÙÊl‘Ï·Ðø¶ñmãÛÔ¥©KS—zöóìç©Ò«„ÉKÈKÈK Μ)8#‘ÇÈcþëñäôËé—Óä1°·±·±· BA(0v ¶ü ¿¹¹ÂYH’„¤{îu¸×áËVæÇ²Ç²Ç²¨³Qg£ÎÖh×h×hÿçUt±‰Ø¬¬Üd \|½øzñu À6•˜JLMKK{hóÐæ¡M¿›ýnö»ùeeÏä‹“/N¾èééY¸ºpuáj ßÂü ùAóƒþ>÷†÷Þwx_¢h pï®o¢D^"/‘{mòÚäµiVú¬ôYéªüùˆ¹Ì\f.Kî•Ü+¹—b½b½bý=ž×w_ß}}·©¯ïåäåäåÔœóD ð½Œ'Æã•7”ývúíôÛ‰x¾'I™¤LR–±:cuÆê·Ùo³ßf«R åååç&å&å&Éd2™Lö9Ç»:wuîꦾ&ó.ó.ó.6 )&Љâ*§*§*§ðËá—Ã/ÛÜ·¹osÿËVæ‡>xø ,:,:,ºÊ¨Ê¨ÊˆÈ&²‰ìÿçn7‰›¡ýBû…6ùg:EýUô† @%$‚D²³²³²³žN:ýéôá!ÃC†‡|YÍ£ã£ã£ããôÐé¡ÓÃ\—\—\"ƒÈ 23|™ªŸ«~®úYy¦Ù ìöäó=Uô¯è_Ñß¿ÿ6‹ú/꿨¿*•ð5ö5ö5ö‡|8 7È >ç¼½½›úš¯­^[½¶jžé¡øNJ_–¾,}©¼•œ™–™–™†|~,YYY—ìß²ËþÍßÒßÒßR•J؇ÿÿÙ²dµ‘µ‘µiêyónäÝÈ»Ñä ¨ýè~t?¢ˆ("Š0FÐ:Õœ©9Ss&zpôàèÁOjžÔ<©ù²•ÙªU«6ÂÎÂÎÂΆ††„;áN¸â)ßoˆ7ä_È¿iê«®/\_¸£ðÕH !É÷Í÷Í÷}aûÂö…íø—ã_Žùe5¦£¦£¦£]w»îvÝ3ßf¾Í|Kœ'θm/|– ¥AKƒ–*Ï«llläócU•T•T•„ì Ù²gM—5]ÖtQ¥>·àÜ‚s ¢ÎG:/M‘¦HSšzÞ·}nêë¸q?â~¤¹e…à;á,ã,ã,SÞD–ZH-¤ȧ¹‘·“·“·Ë­Î­Î­îÜ3¸§*•ðÛ ·Aoƒ2¦eL˘&É–dKþñ*´[]M}.5’I$âˆ8"ãP7¾n|Ýø¸§qOãž>›ölÚ³iª¬Ï\M®&W³l@Ù€²„1aLÿïi„„Rê(u”º¦>·`JÁ”‚)€o§X¿X¿XßãÇ7úKõ—ê/ý²šç×¹¿Îýuî=£{F÷ŒR§O=®W„+‘0([ÁXÁXÁøÇ»Ì¦÷Mï›NDòinjÏÕž«=G»F»F»fhh¨J%ü×µ¿®ýuM<_<_<_2U2U2õïÏõÎæÍ;›¦>×u®ë\×¹Í'ÀßÞ#âñHyãØëµ×k¯×ˆ§¥'É“äI÷ îÜ'''W¥rx]üºøuqê„Ô ©]]] b b b›|ïá|r>9Ÿ!BˆŒÀßÕ3êõŒ„ê„ê„j×õ®ë]׫²>3»1»1»GGG(\® WZ2-™–ÜÔÇçwÉï’ߣð}”-;[vÖç¼ÏyŸóó<çyÎóT¥ì¹5éÖ¤[“ÊÊÊåÉòdy2nÍj^Õ¼ªy¥-—ÂJa¥°*îXܱ¸#Ý—îK÷U¥rp“ºIݤB‰P"”4õ1¡ ¡ ¡ Äcâ1ñù4¥qRã¤ÆI)cRƤŒñXå±Êc•*ë3%–K‰ Ì Ì Ìmêcr“s“sQü•Ç+WlØ6°í2æ2æ2¦*eÏ¥ÄK‰—cGÅŽŠ%{!{!{„[ÊÊÊåY‘~?ý~ú}äÓ‚2¤6R©Â\a®0÷ÈŒ#3ŽÌPe•Ø:|ëð­ÃïêÜÕ¹«ÓÔÇ8R)Ž”{Ö(€¾9ÁÁÁåÍbÉÉÉä£V´-B«tKé–Ò-l1[ÌßùBÚ„´ iC&‡9Àç\–\–\N7H7H7ðã=Æ{Ì·XŸs^æ¼Ìy‰´~¬š‘5#kF’l°Ý`»ÁV•²çÔŒS3N͈èÑ7¢¯t¨t¨¯U[›nnº¹é¦ò ÆãˆqÈGHÏHÏHÏDŽ9þLÏ3=Ïôüì÷Øï±ßó£Î0À·”D$I–É–É–ÿ¸uä«°Wa¯ÂO«`AXå÷Ëï—ßç³ùl>ÛRÇRÇRGõšáýý0 Ä ð_I_I_I_eÍ›5Ö/Í/Í/íkÕÀîîîH ù¨³®³®³fÎeÎeÎÝ>xûàíƒU)uLך®5]+  hZã4þ„[ºúöõíëÛ+µÅd‹É“‘Ok +”Ê ãôâôâô®¼¸òâÊ‹¯U[YXYXY|ÿ3B ð U¦V¦V¦*o 'Ç%Ç%Ç!ŸV*†ˆ!b*ŸU>«|&~"~"~ò€ù€ù€ùe5ƒ«³«³«3BPì­ì­ìmN}N}N}àÑÀ£GU©³†g ÏŽTš§†À†À†@^-¯–W{`çvªRðìµkÔ®QìáìáìáõKê—Ô/AÂ- Ë”eÊ2UÙä‰É“'"ŸÖI¡¡ÐPh$$$Ü.º]t»H•Uâá݇wÞýžÇà ëÖ3¬§ò¦pcׯ®]‘O«“Oäù2#™‘̨zuõêêÕ¹½s{çöŽºu3ê¦ÿÿ7þolLlLlL>¿``sØ6Ѩ¤#Ñ‘èØ¨×¨×¨WÖ±¬cYÇTÛTÛT[®ׂkñrçË/wZŒ³g1îsVæãÌãÌãÌŠ^½*z!Z€–Bb+±•؆í Û¶ëø¶ãÛŽoS¥ìùÃÿÿ?ü©³¨³¨³jjkjkj‘ps¶³ÍÎ6;Û(£ÂDa¢0A>­Î:b±®nVݬºYYײ®e]cee}jöÔì©™ÉD“‰&µiÒ:ôùkBÈĉ!ßõ P|CÖÇ­[ÿû¦°K¸K¸K8’Q?Š Š Š õ:õ:õ:EÑEÑEщ'&Nüx£9÷îÜ;|‹÷›$¤„”"€Oˆ'â‰xiž4OšWåQåQå‘38gpÎàÈ…‘ #iii?y÷äÝ“w_we¶ûÃî;Ü Å“““‹¶ˆ¶ˆ¶¸Ð÷Bß }U©„W6¬lXÙÜ+¸Wp¯ª?ªþ¨ÂwŠfDy¼®É®É®ÉŒú‘P%T µ(¡(¡(!ryäòÈåo´Þh½Ñº°øÂâ ‹ # # #¿Åûÿ3E ð-· :Ê:Ê:†{†{†{¾»üîò»Ë Ž Ž ŽH¦Å8D"I–I–I–•g”g”gdèdèd舆‹†‹†ûFøFøFXO´žh=ñÎwdçoçoçïžåžåž…!€ÖI^&/“—ÕÙ×Ù×Ù666$ü’ðKÂ/ôz=Âm¡ÛB·…ßse¶èlÑÙ¢³ý%ûKö—˜‹™‹™‹1FjøÝç’ü’üRüÁøƒñ¯ß¼~óúMU !ãzãzãz?g?g?çòÓå§ËO#á¥*§*§*ç¶ÇmÛ«KV—¬.ù`þÁüƒ9’i1×fª“}&ûLD"éCÓ‡¦-Q>¢|DcrcrcòÇ›”"s€Ïñµj]§N3œf„–…–…–ÅlˆÙ³!ïXÞ±¼c5†5†5†2¦Œ)c~¼É?2€fMNÈ yNNŽË—+.W&´›ÐnB»/+·é Ò¤÷Hã‘Æ#ÌÑ™£3Gû‰ýÄ~Ä Íӌ…3 U¯uÇtÓyLç}îûsߟ]º8tak°5ØYg³Îf­Ó¯Ó¯Ó'Ök‰µ­3gÀ &RÒRÒRÒþ½9èä “ƒÂMÃMÃM%E’"Ih‰P¨‰º¤º¤º$&Á$˜ÄŽU;VíX¥J%|hÜ¡q‡Æ º º º6lØ8 4(€ÔVC}C}C=ß“ïÉ÷·|®ßX¿±~cŒŒT©„oô¿ÑÿFÿxj<5ž*((ˆ„¡õ@ ÍNÕèªÑU£ƒ\‚\‚\V.^¹xåbU*á o/¼½ð6:;:;:[¶@¶@¶ ƒºB -@ FP# DS¢)Ñtú£ÓT©„ËŽËŽËÂaŒ0†Ä_â/ñG P@‹T¯]¯]¯Í"±H,ÒÎk;¯í¼¦J%|°ÝÁvÛñ7ñ7ñ75$6$6$"ah‰P€šhœÖ8­qš`«`«`ë!ÿCþ‡üU©„·s¶s¶s˜L¦G]H]H]†æ0¨-i[i[iÛðÐðÐðГÏN>;ùL•Jxãœs6Î!¿#¿#¿«YS³¦f †æ0´"2s™¹Ì<&"&"&âÒ¼Kó.ÍS¥^~bù‰å'Ož a}ÂúH.H.H.¨SVá†ÿþgSç~yßå}—÷$‚DZÃÌA ÐÔª?Tˆ}†}†}f—ï.ß]¾ªTÂû“÷'ïOæ¹ò\y® Ož4.>.V4( ê7P¨-Y€,@{4öhìÑË.o¸¼A•JxÙ„e–Mp p p«\X¹°²Y¿Ž6~Iü’ø%MË‘¨#QG¢ …ƒ:8 `€VD^,/–'NIœ’8åÖ›[on½Q¥ž×k^¯y½|úùôóéW¶¤lIÙ’æv¾‰;w&îlêøòòòÔc|Q´jŠ$E’")Õ?Õ?Õÿ^ð½à{Á¿–üZòkÉ—UÂÓ}¦ûL÷ñ˜ï1ßc~qûâöÅí›Ã9&›&›&›6uÌ{ýöúíõ“Êå-}4QÀ?™f„YfQfQf‘Ý»+vW´æiÍÓš÷e•ðøöãÛoÿbÌ‹1/ÆäŸÏ?Ÿžh ˆðþ»©ûS÷§îoê8wÞÝywç]¹ž\O®×r‡0ürˆ"'79797Ù‰p"œˆÑ«G¯½úË*áá}†÷ÞÇžgϳçe{d{d{Dð}N%}Cú†ô&ß y릭›¶n’=‘=‘=i‰…¾PáÍ›…7_Îx9ãåŒßþ6ð·_V ÷Mí›Ú7õá‡CI¿Ÿ~?ý>1ŽGŒûvGž95sjæÔ¦Žgs¿Íý6÷“ÖHk¤5-kDPÀWSRPRPRà5Ök¬×ØY³f9ôTÅD‹‰“'$OHž 0Q˜(L¾îÑfwÌî˜Ý±©g_Ï[Ï[ϓΕΕÎm)ù£€o¨¢}EûŠöïâßÅ¿‹_øaᇅT©„¯I®I®I>˜0ÿ`.Ÿ/Ÿ/Ÿ¯úæs„9¦žqõÕV\“\“\kþi£€ïª*©*©*)Ä Ä Ä`µhµhµH•JøÜås—Ï]ŽrˆrˆræIó¤y_vTyWò®ä]iêY–É—É—Éß5¾k|ל³E ?XíÚµh›i›i›MΚœ59«J%üé/Ò_$ñ>ñ>ñ>É\É\ɸsÁ¨‚Q£šúÊ‹®/º¾èzC\C\C\óL04;õ~õ~õ~œIœIœI»Ów§ïNW¥Þç»ÏwŸ/·„[Â-iXß°¾aý¿?{!µZHmê«IŒ$F’úâúâúâæ– `h>Þ~YÈ2…ÌÊÊà U*á­Û¶nÛº1–1–1¶N»N»N[ù‹/.^Ükj¯©½¦*…9»çìž³»®²®²®²ù¤„Z$éaéaéáÈ.‘]"»œŽ?:^•JxŸ4œ4œ4¼Ú³Ú³Úóã³”pJ8%œ~+û­ì·Rù³fÒfÒfÒj‹j‹j‹šC&(€@MÈ2d²Œ¸îqÝãº_9xåà•ƒªTÂK —.)|ó>æ}LƬŒY³47knÖܬü‘ÓºNë:­kM\M\Í~o`À ¶ÝÝÝE‰¢DÑí€Û·T©„gutÖÑA'tRùÿ´tÒÒIK«ýªýªý~Ôù¢€VDQ­¨VT§¦¦Þ½z?´÷ŽÞ;zïèù•Œ»8î⸋UWª®T]ùþg‡Z7†°É:’u$ëÈã³Ï>>;øíසߪRÖ¬?X¿Ò°Ò°Òð{ž `€*&Š‰â¼ yò6<»úì곫£]G»Žvý¯5ðhéhéhé÷>>=¿±ïî(€ %°"¬«zzzÍÍM®)×”kú¬ÿ³þÏú|hð¡Á㯎¿:þjÏïh£ &<2M3M3M{~ýùõç×yf<3žYNjNjNê÷ 0ü`ÒýÒýÒý%¿•üVò[ôæèÍÑ›½“½“½“/_¾<¿b~ÅüŠïYëöÍê›Õ7kÓÏ›~Þôó½‹÷.Þ»º&tMèšäëÉד¯Wõ¨êQÕC^'¯“×5·$QÀ7—’›’›’K6  ”?(P¾Y¾Y¾Y>pïÀ½÷~Ïrw.k.k.ë¢ÆE‹oèoèoè‘ÜHn$·xLñ˜â1’Àj0€š@  &P¨ Àj0€š@  &P¨ Àj0€š@  &P¨ Àj0€š@  &P¨ Àj0€š@  &P¨ Àj0€š@  &P¨ Àj0€š@  &P¨ Àj0€š@  &P¨ Àj0€š@  &P¨ Àj0€š@  &P¨‰ïZç‹òEù"Ò8Ò8Ò8ÒDÒDÒDÒÒÒ’>IŸ¤O2  H†$C’!i>i>i>i!i!i!i)i)i)i%i%i%i-i-i-i#i#i#É„dB2!m#m#m#í"í"í"í#í#í#$$$!!!'''&&&''']&]&]&™‘ÌHf¤[¤[¤[$s’9ÉœdE²"Y‘¬IÖ$kÒ#Ò#Ò#’=ÉždOr"9‘œH/H/H/H/I/I/I¯I¯I¯I^$/’É—äKò%½'½'½'“‚IÁ$2‰L"“è$:‰Nb“Ø$6‰Oâ“ø$ID‘"H¤R )†CŠ'Å“âIɤdR2)”NJ'e“²IÙ¤|R>)ŸTD*"‘ÊHe¤2R©ŠTEª#Õ‘êH’„$!)H ’‚ü3ùgòÏääääÎäÎäÎänänänä_É¿’%÷!÷!÷!   k‘µÈZäaäaäaä‘ä‘ä‘äÑäÑäÑäqäqäqä‰ä‰ä‰ä)ä)ä)d}²>YŸl@6  ɆdC²ÙˆlD^H^H^H^J^J^J^I^I^I^K^K^KÞHÞHÞH6!›MÈ[É[É[É;É;É;É{É{É{ÉÉÉÉGÈGÈGÈÇÉÇÉÇɧɧɧÉçÈçÈçÈ—È—È—È×È×È×È7É7É7Éæds²9ÙŠlE¶"[“­ÉÖd[²-Ù–ü„ü„ü„ìHv$;’ÉÎdg²ÙìFö {=È^d/²Ù‡ìCö!û“ýÉþä r9èãPid™Ff‘Yd™Gæ‘yd!YH’ÃÉáäpr49šMþ@þ@þ@N"'‘“Èiä4r9“œIÎ$ç’sɹäBr!¹\J.%—’+É•äJr-¹–\Kn$7’É2²Œ,£üDù‰ò¥¥¥¥¥¥¥+¥+¥+¥'¥'¥'¥7¥7¥7¥¥¥eeeeeeE›¢MѦèPt(:]Š.E—¢GÑ£èQ&S&S&S¦Q¦Q¦QfRfRfRfSfSfSæRæRæRŒ)ÆcÊbÊbÊbÊrÊrÊrÊjÊjÊjÊzÊzÊzÊ&Ê&Ê&ÊŸ”?)R¶S¶S¶SvSvSvSöSöSöSL)¦SÊQÊQÊQÊ Ê Ê ÊÊÊÊÊÊÊÊÊÊuÊuÊuÊ-Ê-Ê-ŠÅ‚bA¹G¹G¹GyHyHyH±£ØQì(O)O)O)N'Šåååå%å%å%å5å5å5Å›âMñ¦øQü(~”÷”÷”÷”`J0%˜B¦)d B§Ð)l ›Â¦ð(< "¢ˆ("J%‚A‰¡ÄPb(ñ”xJ<%™’LI¦¤QÒ(i”,J%‹’GÉ£äQŠ(E”"J¥ŒRF©¤TR*)µ”ZJ-¥‘ÒHi¤È)rŠœÚ†Ú†Ú†ÚŽÚŽÚŽÚ‰Ú‰Ú‰Ú•Ú•Ú•Ú“Ú“Ú“ªAÕ jPûSûSûSQQQ‡P‡P‡Pµ©ÚTmªU‡ªCKKKÕ£êQõ¨“©“©“©Ó¨Ó¨Ó¨3©3©3©³©³©³©s©s©s©ÆTcª1u1u1u1u9u9u9u5u5u5uuuuuuõOêŸÔ?©Û©Û©Û©»©»©»©û¨û¨û¨‡¨‡¨‡¨G©G©G©'¨'¨'¨g¨g¨g¨ç©ç©ç©—©—©—©fT3ªõõõÕ‚jAµ ZQ­¨VTkª5ÕšúˆúˆúˆjOµ§ÚS¨NT'ª3Õ™êLu£ºQݨTªÕ‹êEõ¢úR}©¾Tª?ÕŸD ¢QIT•D¥QiT•EeQYT.•KåR…T!UH §†SéÑÔhj4õõõ5‘šHM¤¦RS©©ÔLj&5“šKÍ¥æR ¨Ôj µ„ZB­ VP+¨5Ôj µÚ@m J©Rª”JP *AkKkKkKëHëHëHëBëBëBëNëNëNëEëEëEëKëKëKHHHÓ¢iÑ´hÃhÃhÃh#i#i#ichchchãiãiãiiiiShShShú4}š>Í€f@3 Í¡Í¡Í¡ÑŒhF´…´…´…´¥´¥´¥´•´•´•´5´5´5´ ´ ´ ´Í´Í´Í´­´­´­´´´´=´=´=´´´´Ã´Ã´Ã´c´c´c´“´“´“´³´³´³´‹´‹´‹´«´«´«´ë´ë´ë´Û´Û´Û4Kš%Í’vŸvŸvŸöööfG³£ÙўҞҞҞўўÑ\h.4ÚKÚKÚKÚkÚkÚkš7Í›æMó£ùÑühïiïiïiÁ´`ZðÇE‹F§Ñit‹Æ¢±h<Æ£‰h"šˆA‹ EТiÑ´hÚÚÚZ-‰–DK£¥ÑÒhY´,Z-—–KË¥Ò i…´RZ)­”VI«¤UÒjh5´Z­Ö@“Ñd4ý'úOôŸèméméméééé]è]è]è=è=è=è½è½è½è}é}é}ééééƒéƒéƒéÃèÃèÃè#é#é#écècècèãéãéãééééSèSèSèút}º>Ý€n@7 Ï¡Ï¡Ï¡ÑèFô…ô…ô…ô¥ô¥ô¥ôôôô5ô5ô5ô ô ô ôÍôÍôÍô-ô-ô-ôôôô=ô=ô=ôôôtSº)Ý”þý/ú_ô“ô“ô“ô³ô³ô³ô ô ô ô+ô+ô+ôëôëôëô[ô[ô[t ºÝ‚~~~þþþþˆþˆþˆnO·§ÛÓèNt'ú ú ú ºÝîF÷ {Ð=è^t/ºÝ—îK÷¥ûÓýéþô z=èã7öÃBgÒ™t&KçÒ¹t!]HÒÃèaô0z=ŠE£ÇÑãè‰ôDz"=…žBO¡gÐ3èôz=‡^@/ ЋéÅôbz9½œ^N¯¦WÓ«éuô:z]B—Ð%t]AW0~füÌø™ÑžÑžÑžÑ™Ñ™Ñ™ÑÑÑñ+ãWƯ †CƒÑŸÑŸÑŸ¡ÉÐdh2†0†0†0´Ú m†C‡¡ÃËËËÐcè1ô“““ÓÓÓ333³³³sssÆ c†1ccccccccccccc#c#c#ÄaÂ0alclclcìdìdìdìeìeìedddaaacccœbœbœbœcœcœc\d\d\d\e\e\eÜ`Ü`Ü`ÜaÜaÜaX2,–ŒûŒûŒû † ÆaǰcØ1ž2ž2ž2ž1ž1ž1^0^0^0^2^2^2^3^3^3¼Þ o†/×áËxÏxÏxÏf3‚$‰AbÐ4Áb°,ÁcðB†!d„3ÂáŒhF4#šLjcÄ1‰ŒDF*#•‘ÊÈ`d029ŒF£€QÀ(`”0J%ŒrF9£œQͨp|ýÃQ_IDATfT3êõŒz†„!aH †‚¡`þÌü™ù3³=³=³=³3³3³3³³³³'³'³'Sƒ©ÁÔ`ögögögj25™šÌ!Ì!Ì!Lm¦6S›©ÃÔaê0u™ºL]¦S©ÇœÌœÌœÌœÊœÊœÊœÁœÁœÁœÅœÅœÅ4d2 ™ó™ó™ó™‹˜‹˜‹˜Ë˜Ë˜Ë˜+™+™+™k™k™k™™™™›™›™›™[™[™[™;™;™;™{˜{˜{˜˜˜˜‡™‡™‡™1ÿbþÅ<É<É<É<Ë<Ë<˼À¼À¼À¼Â¼Â¼Â¼Î¼Î¼Î¼Å¼Å¼Å´`Z0-˜÷˜÷˜÷˜™™™˜˜˜öL{¦=Ó‰éÄtb:3™ÎL7¦ÓéÁô`z0ß0ß0ß0}˜>L¦?ÓŸéÏ d2™¡ÌPf(“ʤ2©L“Ád09L“Ã0LSÌ3ÅÌHf$3’ËŒeÆ2ã™ñÌxf23™™ÌLg¦3Ó™YÌ,f3™ÇÌc1‹˜EÌRf)³”YɬdV2k™µÌZf³ÙÀ”1eLë'ÖO¬ŸXmYmYmYYYY]X]X]XÝYÝYÝY½X½X½X}Y}Y}YXXXZ,-–kkkkkkk4k4k4kkkkkkë7Öo¬ßXÓYÓYÓY3Y3Y3Y³Y³Y³YóXóXóXÆ,c–1k1k1k1k9k9k9kkkkkkkkkË„eÂ2amcmcmcíbíbíbíeíeíedddaaacccbbbeee]d]d]d]e]e]e]g]g]gÝfÝfÝfY²,Y–¬{¬{¬{¬‡¬‡¬‡,;–ËŽeϲgÙ³œXN,'Ö Ö Ö –ËåÆò`y°;Ÿ]Ì.f³ËØeì2v»Š]Å®c×±ëØìFv#[Ζ³åœŸ8?q~â´ã´ã´ãtâtâtâtátátáôàôàôàôâôâôâôåôåôå ä ä ähq´8ZœaœaœaœœœœÑœÑœÑœqœqœqœ œ œ œß8¿q~ãLãLãLãÌäÌäÌäÌæÌæÌæÌåÌåÌåsŒ9ÆœEœEœEœeœeœeœUœUœUœµœµœµœœœœÍœÍœÍœ­œ­œ­œœœœ=œ=œ=œœœSŽ)Ç”óç/Î_œ“œ“œ“œ3œ3œ3œ œ œ œËœËœË3ŽÇŒs“s“s“cÎ1ç˜s¬8V+ÎÎÎŽ-Ç–cËyÌyÌyÌqà8p8Ï9Ï9Ï9.Ž ÇãÎqç¼æ¼æ¼æxs¼9Þ?ŽÇóžóžóžÌ æsH‡Ä¡qhÚÇÃåp9\Ž#ä9aœ0N'ŠʼnâÄrb9±œN'“ÂIá¤pÒ9éœtN6'›“ÍÉãäqò8Eœ"N§”SÊ)åTr*9•œZN-§–ÓÀià4pdGÆ!8‡à¶å¶å¶åvàvàvàþÂý…û ·;·;·;÷Wî¯Ü_¹}¸}¸}¸ý¹ý¹ý¹š\M®&wwwW›«ÍÕæêpu¸:\]®.W—«ÇÕãêq'q'q'q§r§r§rõ¹ú\}®×€kÀ5är ¹F\#®w!w!w!w w w wwww5w5w5w=w=w=÷îÜ?¸rÿäþÉÝÎÝÎÝÎÝÅÝÅÝÅÝÇÝÇÝÇ=È=È=È=Â=Â=Â=Æ=Æ=Æ=Å=Å=Å=Ç=Ç=ǽȽȽȽʽʽʽνννͽͽ͵àZp-¸÷¸÷¸÷¸Ö\k®5÷÷÷מkϵç:r¹Ž\g®3×™ëÊuåºr_q_q_q=¹ž\Oî[î[î[®×ëÇ àp¸!Ün—Ì%sɬ㲸,.‹Ëãò¸<®+ä ¹áÜpn87ŠÅâÆqã¸qÜDn"7‘›ÂMá¦p3¸Ü n67››ÍÍçæsó¹EÜ"n·Œ[Æ-ãVr+¹•ÜZn-·–ÛÀmà6pe\WÆû‰÷ï'^[^[^[^G^G^GÞ/¼_x¿ðºóºóºó~åýÊû•ׇׇׇןןן§ÉÓäiò†ð†ð†ð´yÚ(>(>(>,>,>,>&>&>&>)>)>)>+>+>+¾ ¾ ¾ ¾,¾,¾,6›‰ÍÄ7Å7Å7ÅwÄwÄwÄwÅwÅwÅ÷Å÷Å÷Å6b±ØNl'¶Û‹íÅöb'±“ØIì,v;‹]Å®bWñ+ñ+ñ+±§ØSì)ö{‹½Å~b?±Ÿø½ø½ø½8X,“Ä$1ILSÅÔ›bŽ˜#æ”÷.ï]Þ[ à¿ä÷h5>ö¤(€Z<Àj¢ÕÀßó„¾…æÐ‡¢ø P£50¨ À(€@M F j0 `P(€Q€š@ŒÔ `À &P£50¨ À(€@M F j0 `P(€Q€š@ŒÔ `À &P£50¨ À(€@M F j0 `P(€Q€š@ŒÔ `À &P£50¨ À(€@M F j0 `P(€Q€šø¿öî×Çå¼Ý÷- À@@À0° „,! À@@À0° „,! À@@À0° „,! À@@À0° ®E%Ëõ 繟ûñ¹£R`Ý—ë¾\÷eF¼§æ@(XH×D¾¿§|¡ò…ÊJIo–¾Y"y=`€´# ÀéšÈw¶VÞ½òî•wG¥XÙZek•­%ƒ,¤k"ßÙêùyÏÏ{~u–¾êúUׯºf¬{jn„€`€tMäK¹¸Úqµãjÿ®øwÅ¿;ÛüøÇüøÇ‘¹ª0@Ú€`€t­ã¸ä†ë“Ôgõ?«ÿYýpA´ÊŒ*3ªÌ÷«%–”XRb‰ Ñ À0ÑiX§a†… ¢Sî™rÏ”{’¦ s.̹0gZŸ§ v`€ ïØ€cŽ (Ц@›mBÿΛ¿sþÎù;™pd‘ ƒÚj?¨}¸hÚåö.·w¹=­ª v`€ ïãâÿ¸x¸šôã²7·ÛÜns»p¿3ºltÙè²':ñЉ‡Òîl`€´# Àdxwõ¼«ç]=Ã¥ÐT\P1i­Ù©f§šÂýþ™sgÎ97íÎVH;° p+ú$7ÂýÔöõÛ×o_ßÿ³þŸõÿ¬YÇf›u,[«l­²µòLÌ31ÏÄ2–y°Ìƒ ×6\Ûpm¯~½úõ귦š k*DþÕ¸àÀ.È=+÷¬Ü³Bÿ¶[rfÉ™%gÆÇÄÇÄÇ$ý©Á­·Ü*\:½÷Ô½§î=•vUH;° dRQçUjgêîáðÒÃK/MüÀä쇲Ê~(2¯ñ\ŒûǸŒûG¸sèýXïÇz?z>?¶ø±Å-ÂýTÞyæø×¬¿fý5+òs/òûX2)8é¿·ò•¿¨üŹ¿º¤ïÇMëûØüŽæw4¿#Ü™¬½híEk/ w&µo¨}CíÂýì‡-?lùaËÈϽÈï H`ȤàD‰¡\¾PùBå ¥îkL|ñÔJS+M­”wp×»>ØõAö ³_˜ýÂУ'Æìä÷ðr×¾Ü0ÜùßñÚ¯ÝñZZÄT íÀ0IŽN«‘¯w¾Þùzg”|Û¢Ûݶ(ôÿ·¼¢å-¯˜9wæÜ™sùëÈ_GplÀ±[Ëo-¿µüØÜcsÍ]³SÍN5;%¿ÿ\Ks-͵4-’äk›_ÛüÚæpÇMú-¿áöøZ’?ó?³ý™íÏl©{æ0@Ú€`€Tsªù©æ§š7ëØ¬c³Žá²Ü“CŸúäДï3­pR9v䨑cǘcJŒ)‘’=ÇÕŽ«W;%{¾©ÌMen*“ºa²NÍ:5ëÔ wÄŸ/üùŸ/LÉ“ßϸcãŽ;–ºóDH;° jº6îÚ¸kãpAî–}·ì»e_|L|L|LÊ÷É<ªû¨î£ºÿ½×þÔýOÝÿÔýÉïþÍóožó¹_çM]6uÙÔ%ÜQš¼Þäõ&¯§|o¯–|µä«%Ãí­E5ZÔHݤ*¤XHÃW_9|e¸—ø}´8xà`zûè¤ïÐ=—+¶k1ö‰±OŒ ·çiG§vôïíy[Ô¶¨mÿŸ÷I'þžôpOSw?A" Àgád›“mN¶¹áñ¿áñpáíñÿøñSëˆi€§]:íÒi—¦n2œøÎÄw&¾O¿}úíÓÏöˆ‰ß1\rfÉ™%g†î3ºltÙè²Ç{ïu¼×¹œyý+ë_YÿÊpgþr×¾Üðܯ• v`à,tmܵqׯá’[Ë+Z^ÑòЏÚqµãj§ÖÓ:on·¹Ýæv©{•¾ÝùíÎow†;b'j/öy±pûL¼/ç~æC=>ôx¸£T±ú‹Õ_€Ò3XH‘á+‡¯¾2ùoÒ=pðÀÁS7¿¥uÞ½?ztê^«ßzÿÖû·ÞáŽXæÁ2–yðl÷ùàs>÷àsQéÀ†I&m˜t~ïiêî H`àÿcn·¹ÝævË~(û¡ì‡Bÿ>U$[‘lE²m©»¥î–ºiÞÒ:'~¨uêžóÑGGl^°yÊ÷vlÀ±Ç$þTzÀýöôÛÓoϹÜk íÀ0@Xßú~Ô÷£Â¥Çœër®Ë¹nÑ%‹.YtIÚ%·Œ€÷–æZškiÊ÷–ô[ŠÓƒò…Ê*_HHŸ`à ö•ÛWn_¹r1åbÊÅ„ loßòö-oß’Ög’?ú:Ôù£N¸#ÿ®øwÅ¿KùÞÚ¶nÛºmë¨tfu½ÕõV×;_÷4u÷$° ð$¾{õ†Çoxü†ÇÃ¥µÇ¶<¶å±-‘9Ÿ´À›Ûmn·¹]êžóƧ6>µñ©pG¬üEå/*‘’ý¸àÀ.È=+÷¬Ü³Â½“8ñ÷¤Å•O~ôê׫_¯~/µ ÀiG€þ.·w¹½Ëíá¢ÚÍn.ps¸ÚqµãjGæ|Ò:O;:íè´£©{ÎS+M­4µR¸#&†Õ”ìçÝßÞýíÝßÂí§õ{­ßký^Ú]ùQÝGuÕ=ÜÑKM(5¡Ô ½€`€ÿymók›_Û.§Uú¹ÒÏ•~N|¿i$[Zà¾Yúfé›%u_ÑS÷?uÿS÷‡;bÒ_M~?-j´¨Ñ¢F¸ýLzfÒ3“žI»{±{àî»&õïZ¼kñ®ÈßÓÔÝ@À0Àé9OÏyzÎÓÙe?”ýPèߘ GŽ.ýc‹[üØ"òi-­p•UfT™‘j¯+ë鬧³Æ4‹iÓ,Ü?.þqñ‹'Ä_Gþ:òבáîHž‰y&æ™xhÝ¡u‡Ö¥õõoòz“×›¼îµ<|õÃW?|õù ·0@(X2µïG}?êûQ›l^°yèß•rìȱ#ÇŽÏ‹}^ìóbç+ª¥uN´¦Âš k*œûÙ.¨¸ â‚ŠáŽ’x=ëý[ïßz'þÃW_9|e¸ý´mݶuÛÖ‘¹þ#_ùêÈWÃI‘lE²É–ø½Ñ‘¼§©»€ €` “ú£Îuþ¨S.¦\L¹˜p -ñ[`ÏïyF&'~·ñ¹„ÄB … Õº³Öµî w”;Ÿ¿óù;ŸOÉÞê¬W°^ÁpûIúÃi}ýw}°ëƒ]$õ>}ùÓ—?}9’÷4u÷$° d:‰ï×lÚ¿iÿ¦ýÃųî'»Ÿì~2=œmdp¢·î{ë¾·îû{çÙç¶>·õ¹-ùýÏí6·ÛÜnÉŸyÒÚ•w`Þy™pd‘ ‘¼ ±ŸÄ~ûI¸³ºÿëû¿¾ÿëÔº#‘œÁ# À@¦ÓùÎt~ \6kQ£E5N5?ÕüTóôÒ"€s®Ë¹.çºqÿ÷qÿHÉž¯Ò3¥ž)õL©ä÷œxUS²ÏǼ8æÅ1áösïå÷^~ïå‘¿ o|ôÆGo|î¬òwÎß9ç£#ŽŽ8:"2÷4u÷$° d:Ég³|½óõÎ÷¿o¨-¶ãÜÏöÜ÷Î-ûnÙw˾ÙoÏ~{öÛ‰ßÚ{¼×ñ^Ç{m‹Úµ-*1×ìT³SÍNÉï窑W¼jäÖò[Ëo-Ÿ’s®øgÅ?+þnoÓþëô_#8wÎÞ9{çìä_iâSG枦î~‚D€€L'*Ý8÷³=÷=$ÿŽÛs‘ø~â+f¬˜±"%g»¦Âš k*„Û[6ÚhslÀ±Çœ¯™Ópmõ ׆;ûzÞÕó®ž)y¥0@Ú€` Ó€C÷ðÂÔ¦¾05µ^W⻨ß­›òûÒ«_¯~½ú…Ûç XøÀÂó;s†¯¾røÊpg˜{VîY¹g8xààƒi}OSw?A" À@¦#‡ÛâK]²è’ Y+d­õï½¢[ºõ§[úùÐχ~>”ò3Œ‰‰)5¡Ô„RÂí9ñèÏoÚܾ~ûúíë“¿ïm|oã{Óúž¦î~‚D€îl3áÉ6'Ûœl“ø«¦u˜ÖaZ'jG|üÁq$âãhDZˆã'"8NF|œŠàˆ‹øˆàHˆø8é1ÿ‚Ž #>.Šà¸8âã’ˆK#8þñqYG–ˆF|\ÁqEÄÇ¿"8®ŒøÈñ‘-‚#*â#{GŽˆœ¹"8rG|ä‰à¸*â#oÄG¾Žü"8 F|ŠøˆŽà(ñQ$â£hG±ˆâ%">JF|”Šà¸:â㚎ÒeRsÀÜ|ËÒ[–Þâ™G`ðî_wÿºûW7È<€H;0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ ièpôáèÃÑËÊ/+¿¬ü‚¶ Ú.hûÙ§Ÿ}úÙ§Kî]rï’{wÌÞ1{ÇlW ò¾nøuï.½hô¢ÑóÏ_<ñç7}~Óç7-߸|ãò§çœžszŽ«dD0œµ„+®H¸bÝ?×ýsÝ?‡Ç »$vIì’¨TRmIµ%Õ– xsÀ›ÞüjíWk¿Z{là±ÇºòÉûcðƒÿ<ïžy÷Ì»§Ç¢‹z,*º¶èÚ¢kSk}¾kí]kïZ;áæ 7O¸y[ƒm ¶5pÍôF€ÿŸ§{œî±ô…¥/,}¡]¯v½ÚõŠ:OšÔlR³IÍÙgWœ]ñÄÈ#OŒts€ÌlÏò=Ë÷,½fôšÑkJüYâÏž¯õ¹÷¯½íýëÑ?Dÿí¾d¡3aéÅK/^z±+Ãù%Àì´ÐþAC¦™>dzT:Öë`¯ƒ½³âΊîpœþãôkcÖÆ¬¹uç­;oÝ™>Wæ¼kó®Í»vêö©Û§n?1ìİÃܺ €IŸ`øŸƒ¼ààÏ•~®ôs¥ÿæCÿòìÏñ¯ûêÞüF±‡uy¼qÙfÿ=öJÙÊoxûšê5·¾5m{Ý~ûþ\0¹AÅ%SÞQ}üŒ‡†l«||dÎÞ3Ê ë\©õˆÝJí,º/wõ¿wôŽS:Né8e×»þØõ‡» É7#¿ùÍÈê·U¿­úmo…¬Ñ¶Â=ùxbé½]¯n4¶Ißè ]ç<:ü몾l;æ“õÚ¬|.v÷Êï©Y÷ó_ÞÜXmèäWúòÅ»n-³¥å' Þ‹žr.IøƒR”ú Ô©ßOý~êww3H`Ò'€L-¡~Bý„úrOÈ=!÷Ù>Ðñ‚®w”™½ö½‰ŸÕzíôÜU¯7®zúôªU§ÖvSÍ©×éÿÆ;½^-W»Øò虹š¥üÜ^ÚûÒÞ—ö_||ññÅî2ýþôïOÿþtÛIm'µ”òÕ/¶^©s}xéK7]—sçs³o¨•º+óÑK«4ÊýEÑ·ï¯~c×w>^âxÊÏ-GÁs\qéŠKW\êþƒLú$IýÒ𗆿4¬<»òìʳSòàþ±ší¶•ª»éÝ©_Öy;usBÊ·»ÍYWõ€øn»®=‹÷(ÝéëN_wrÇ à·Ó¿þmÊä)“§LNù*7¡Vÿå—ž\µ|nl¾óµ>/ûeÌ­5J4¿±îC…KÉ9w{¤Û#Ý9RìH±#ÅÜöŒK&}€Èt¦_:ýÒé—¦äýàÝ7Ä\ô纅%Œ=_Q!ÜöØ#Ëò6ºãýçžïVñÞ”¼–×6¼¶áµ §ÇŸz¼9¤7uù«Ë_]Ú=Ôî¡v%¿š;ýs®;¾ÈþöÕ›&ܵ²_ìîô¶>oÛûÉ'õ.»ÿ‚–[“’õyCé ¥7”62"˜ôI SH¨—P/¡Þ3¹žÉõL®äÄw]v稒íûÏ‚›\•Þ¢B¸íñÅ_iôþ I¸viò¯®uÏÖ=[÷oX5¥qí Û^hRñ÷ä_ï o$¼‘`nd0é“ @`xìÄc'kÚ¾iû¦íÃ=jo;­yí¢¥þ*ùÅ ßÌèé7é6¾öWïÅNì×øÁ ¥Ç‡{í¹Îõp®‡ÿðÇ€?˜-@$­n²ºÉê&ÿŸwÄöåíÊ·ieNÜþôèôAu§ç{þªž9*…{íƒ*ª8¨¢y’þ À¤O0÷FÜqoÜüìÍÏÞül¸ÇëCæö8óÛéçV=Ô¸LðCÒí´—_y·r«p×!_•|UòU9øÛÁßþfæim}Ãõ ×7L>ýþp퇛ê\ì•ùhÌÒ‚²¶ú)¶Pá°ÿDiøÃo~£9“ž À¤O0Á:þtüÛÞôð¦pÔ'};àJÃB·_63¡FípפֆZjm8uÑ©‹N]dia×Å».Þuqòéww©9mêOÎ<+sü‚•—Å.yäPÛ<%ç…»&ÅÿQ¼ù“> À¤O0òÎÄw&¾31Ücô?{iëuµ3[úMº]yË»«j– w}ºì>²ûH³H]dzÏrß³ê¦ÆÅºÇµýµäÑp×ç›=ßìùf¹”ÞÀ¤O0±ö_kÿµö_á¿óÑ3¹ÊoÈÌé7éva“QWW ›É?îÿqÿû›Q@jé2¡Ë„.­9» Ì^\ÿ:+sB¡•·Änº«ß /™îZ\~pùÁåfTú!“> ÀdxGÿ:ú×Ñ¿Â=.ïs÷;¥—B·cV?ûy…–a“L÷]Ýwu7»€s1wûÜís·‡[g¾-ôA¡Z[“nZöb£'Љ~#×õ¡Wìž!÷ ¹gˆy•~À©å“Ÿtø¤Câ5ì3¸Ïà>ƒ÷^¸÷½º2 @†÷ôÚ§×>½6ô!ìÕë‹MÎýÈÉ1Ë߈Í&*œa»oÕ‚Æ î«yó°bB¯^“Mr4ÉqzÅé§W˜cÀÙ:xðàÁƒÃ¥ß =úªø­u8ÜvûꙇêM wõYpdÁs,=€Ï]\ϸžq=ÃÍv1øï€ÈÀ6Ø<`ó€p ·µù¤~Ý_…„ä·‡Ž/Õð¶p×p^£yæ52Ó€³õdÝ'ë>Y7tU¹%[ƒ½Ñ O¯\õnãšVàä·Ó*¾Ò¦rÝpëóñ¦Ç›oj¦_ð¹KúÞßä‰Á)'ÅþûWì>üyäÇOÅ”›)œÅ·¿5êÁjsÃ=r=9óäÌ“3Í7 %¶õÚÖk[¯pëÉïýçU¾¾’U7EÛ­«¦7®{Ãú: :ßt1#cFƘoç—|îç<œópÎaM‡5Ö4*ÅÄàä ÀdHß”ú¦Ô7¥Â=úrc£VÚ¿·íõþ}Û¯žzUßjýVë·Z›{狜vÄàs!ÁüRý—ê¿T}ä—wažsü#aÄÊi±Iç²mÓ¾Yµ"?†^áEß/ú~Ñ÷f NŸ*}ªô©ºzLºk@µJ½¬®ç²ÝóÏyï\ß2ì?ЩW9®²ypdˆÁgK ƒéwo¿{ûÝú˜ï“+^]SÙ‡‹¦ÂöûÆ–ª½)ô ÇöˆíÛà Bïx¼ãñŽá2̱¡Ë*6ú÷¹¯N?¶øoî:§’î9³­ÏßkµºøØÐ+üeÔ—Q_F™‡‘'Gžœ0Fܘ¸1qc†–5mÔ!Hú_ŸÿäOå.O|u‰Ù#BG_²êÆÕ‹=ýx®3¼Óz߈}#ö0¤=µè©EO…®}'?Xºt¿ÔZBpZgàŻޮ\½nÇq­V[¾Ð5m¯Ê•w`žiÙO^3 xåÜ#[Ô¨·§Ðö—>Z7¦È±Ë®mÔ.­×ç §ì¬ýeèhSµMÕ6UÍÃÈ€Ï/18€ cýøõã×}÷è¿Ú*y2Pïôʺ*[ã¨Ú7Tš’?ëùz¯Û„ëú/ªøEèÕžº{êî©»ÍF ©v_·ûºÝס+ÆÖÛ§}T÷Ñ €³®ÊÖ8êѽíÞ-u–ÖTyÍUi·2'ì_y¤q–°ÿê‹c_ûÂlŒ$8ýƒ“€È0n¸yàæ3¨þAõÎð}á_óCæ‘ Àk/šX¯ÖÃíš4ÿ¤hÓKŠ4ȵ q}¾îÛ˜Ëó–xºJ‡'®™›’•yn·×_¯z[Ò=òÃn•HÉ œô§ÿDH»•ùDß/g7:Ãn—+Y®d¹’æd$ ÀKæ‰Á0ÀSœúãÔÐGrCÛôì^ö_i÷=ñC>£Ë(³þÙ~äŽe³fÕÛ•üþ×:yíg‡^Ö³|ÌÉÐmzÀ {ŒjVmZè™Ìî7»ßì~f&б{Ç®û¯\°¸AõÈàܳrõÉ~GòkrÉ™ENçúkä)SjÏ ·ÿw<ýEùïÜW×{¿EÍ7ª@›¼¿æÖëvÅ)eÚ\5)ô•ž*|ªð©ÂffdÀW°c° @ðiÇO;~Ú1ô1Ü’­ï|^}ZZ28Ñb˜wÍóóoqeÕÅÓ}uZåwÉÛ¦KÉ—²_µ:êÿ¬¨ …VÞ»)tÿ3V -]%kçZ/(Ñ»û?Û^SraÊ×Þ¤ïN|çqZ¯ÛO]Ñ>îš‹B¯Ãžl{²íÉffF† Á‹Á0ÀÐ;†Þ1ô ïîÚÞ~æØzo¤ÅƒõĬ›x”쇲¿õôƧ>ÚVçÎp96ôÜŠWøÅ\2z>öñ²u=“VÏ´z¦Õ3f&º>TXSú㫞H‹)4çØ‘#6jÆ‚Š#_¬V.éÊ™ô¿?º~PìumþÞŠšòßyۢد ÿïÀ=Öü;_©Qi½nOÞ=ð‘Jß…¾®ïv~·ó»fæùšÿpFŒ,t-ÔµP×B¡Û­\üxÃfiñ`}EŸqmkÌto»wKÅ ìûðצ(„Fâs é!'ü¸rwãKBϤÔÏ¥~.õ³™ „®÷~~s…bÍ#€Ûom¹©Ø²³ýŽÞfëÌ*T÷ÜÏ'>櫱ï÷¹íþøknLÜsþÎyKçè´söìGëLëõyùñ±GjŒ½þó£çGÏ63Ï×ü€ƒ$ãÆàó€ç—1 Ã0 Ã0 Ã0 Ã0Œ”Ž:Yëd­“5ôÛÉ—–¿{ydRhò!1¼¶ù‰eG)'nóÎ̳.Ç2°™iFèÊðlÝNYK—LNü´†”ü윧‡o¬ô#ýÏe]MüÆß†k«¿Z`qâ~òLÌ]-û+‹.5¿Ú·‘Y±7 Ÿ:¿Î›gˆO‹û,î³ØÌ<_óèCú€+¼1ýðôÃÓw­Úµjת)Áífµ›ÕnÖÞ,{³ìÍ’)pœ³ø7¾Ú;/2ôÀ ›4˜¼0ç›§«½=î}gTùìUÿ,]êÎç›.*òHáè?ä|2Üyfô\¾ö5=¯*`¾)14[Ϫ1§"€w,›5«Þ®”üìOE¦7«;ö\ÖÕÄ£ß]ýƇ‹>›tÕÞ(—7aM…ñ—×\ɵzû¨™+ë½g¾Aú7oã¼ó6 À" 7®|2vgÚ=^ÿºèø/k]ÔòŠE¢_Hü¦ÉpgrÝ·1—ç-qß- ú«=WÍQvMÞ‰æoîS®Hdð‰‡¾ßè«}£ù€e×6jw¶ëêÉ6ËïmtzÀnC®Ê=+WŸìÿû6ú"Ù ¾žsêÐËz–9™x‘_¥wUý}ýæ¤'_=ùêÉW`H‘øn_­ˆžvß|ÕÈÜe_’x¬ YK罪Ùó«;.SuÖ”aïUé³µü´Wë>xªùŠB±UÃʼnD=—]yõ­y–›o@J¼zºÇ}1Ÿ§·wÿ|hFßz *纜EíI~]ÝR÷¿ßÖ­TeFÙçóKúS‰Ÿýpàà¢Kl;¿+óö+gÞ]ï9ó Ò¿O:|Òá“™"@ʵ|©åK-_ } v²øòª§Åƒõ›Ö+WèÃÄ£´ßÚrS±e …VÞ»)ù»¹ÝÇwÖY¼œ§L®ï³?z¦ó2»Ð•áé»:¼vÍâôöÀóoqeÕÅIÿAO¸u51—y°ÄÔ<ÿûîóÄÿ^>xìØ/¤ä[á#³Ý8製uÎðžæI—NºtÒ¥fæùšÿK/^zñÒ‹]™àÙ{áÞ ÷^ØgpŸÁ}§<ýk:¬é°¦‡sÎy8g$ÏV x¸èÃE.úXíàþE_5Ì›Ö 6Ï÷^Žõ‰GYy÷»ëk^s¶!8áÍ•ŸÄ =“Ò·–¾µô­f&º>ܽêÆ_ŠŽ‹LNü:)ùÙ;^kzq‘ê‰?uWÏþSdB¸uµö •¦äÏšø«×hVàøþè_7¨¢oÒí—UǼQ£zèõÿì™Ïžùì3ó|Í8H2VôMJ xí«×¾zí«ÐGl?6ãözUÓâÁzL³R¥òüï=¯]?(öº6Éÿþ³g?Z¿`â7)]µôÍF•BϤõ ÖƒZ23Ðõ!æ©RÍóô‰LNüvöG¾X­\¸ŸJ\ÓþÔ²ÉcJÕ8Ã?ú¼Ø› ª=ø{²_µ:ªñOE¦7«;6½¥ßÄí^¬[©bèõ_ÿèúG×?jfž¯ù/gt7ú&%ÌÝ7wßÜ}¡Û_ðV¿ê—§ÅƒõNÃnP|CâQŠŒ¾2Wþñóú·¯øÁöõ3OÔûïïç¹>&1!ô=ñàƒ¥‡ç˜gZö“á fܼýÏYYëÍ =“C8ÄÌJž*yªä¾û<þů¶Ä~šÖ¸Ô„¢ós—ùßGOWéðÄ5s?«?⫪Çg¬ZºJÖGò¶éRòÿ|}@³ŽufªnEí0­UÖâ%]ùÿ{ä«Oå,7õl·i½>?¾òžIWÿ+ôÊïí¾·ûÞîffdÀÁŒè›” @°õ‡­?lý!ôÑÛà/ºoŒ¹8-¬ÿQç³Û¯ÿ&éw@¦Ä¦.Sß©3¤øw…_Ì5 éÿo~GÝG =žðüƒ#^®úkè™Ì5wÔÜQf&Ðy_ç}Ïðtþ(÷Y³ëW§u^:gtçê¿ätŽNɯÏå ]Óöª\;–ÍšUoW¸µ~|Õ; DG¥’´^Ÿ¯}¤dŸ<õB{jש]§v™™‘!g\Á‹¾I ÀdÇæ›slNèc¸ê³Ëÿ”¯^Ú=^O©]ü ŸŠÑypçÁÍÉH€Ó¿Ì}“€È0^ÝùêÎWw†>¤[ñó¸)5¾ ÒÃýô°ÝÝtNÏúÓB¯v«Á­·l6‰â:ÅuŠ ûñË ­Vþ'v—5u·ýgviU¦KèÕ^;`퀵ÌÉH€Ó§Ì}“€È06NÚ8iã¤ÐvöÝöMñ=’@ênGï~öŠ C¯öŒ'g<9ãI³HêïøîïBWŒË¦æ¯ó5µ¶ ¯¬».\¾:ÑóDÏ=ÍÆH€ÓÑ7)€ #~iüÒø¥áá)½¤eÃuò@*l¯[Ó8ož ¹~ÌþXèu>Ðõ@×]ÍF ©e?,ûaÙgø è–÷nºúëjjm×ö›ø^­3Ä­ûûßßÿþþæaä Àç—èŽ @3¨ö Úƒj‡>ΛRdàÛ•¶É©™øz­¡W¸e‡–Zv0P'o;yÛÉÛÂå–¿Ö/ÉÚp‘ÕõÜ·mßnS´Xè^õþª÷W½oFžy¢oJÀd0»†í¶kX¸|ñWõZì{"Á¹lo*\ltžÐk»¼éò¦Ë›š@8/ä{!ß ùBW±ÿî[¡Â£V×sÙîzøÓ‹êdžý³olüØø±f`ä À‘!úž-€ ©Õ·­¾mõmèþ™‡v©RT*ø{ÛïŸúð¦Ú;Ïð õtÔé¨Ó 9r$ä0÷€pv¿µû­Ýo…‹1G,}¥Qy+íßÛvýúÎq%/ ½ªï¿òþ+ï¿bî/pÚ}Ï… @†´aˆ-¶„{üwüe?4zU08‹í§«†7®Z÷£Êó¿z=?™ðÉ„O&˜u@J<´÷¡½í ]I†>ÕsPÙ\ÖÛ³Ýn^úñä:aÿ¼;ºâ芣+̺óEN]¢oj€ÈÀnËv[¶Û²…> |÷W¯Ý'¤|;kÛ°ÕUÎð½¿9{æì™³gܦ¸Mq›Ì7 %vUÞUyWåp©fǸY£êmµê¦h›oÕUsÔ˜Qa|¾^¡WòÝéïNwºùv~ Àçno–½Yöf}S— @öK–_²ü’%ÜÃÁ&|T£Î5BòÛ}.˜Ü b¸k¸¤þ’úKê›iÀÙzþÐó‡ž?ºªÔïUå@ V­ÜÜø+pòÛñ?õ¦âíϧ¢NEŠ2ÓÎ/øÜÍÛ8oã¼¢oê€Èð};èÛAgø>à\oæ|;{žc9—®mÔ@H8öèªèƹnŽo+º_èÕký~ë÷[¿ovÏ‘¸#qGâÂ…œ7o~jJ¹MÖápÛK~|¤Î¡pWoyáå…—6ÇÒøÜ%dOÈž=êͨ7£Þ}S‹ @†w²ÑÉF'噓gNž9¡Û×iٮػ§'®z¡q%Q!év脞–-.0ì½oï}{ï3»€s±dÙ’eK–… ™%ÆÞT£›Õ8éöð/¢>îŠ=<ëáYÏ2¯Ò8µ$}°è{î`bãsŸÛø\¸‡æ¯¼óX󘇥…Äí'‹‡´­ü]¸k5wÊÜ)s§˜Q@jéS«O­>µÂ­9[~˜vCÝ̧۬ú¯hÛ°ñ#5ß*xW¸ku´ÒÑJG+™Qé‡Lú$(“ã'ÇOŽ÷è|ôÏü»üžÌ>ïýæ‹Õz…»>}?íûißOÍ" ujsªÍ©6×ý÷ºÿ^ömw|>kZ½™seŽß´²PìÊÿ£E¶¢SÃ]Ÿ+6®Ø¸Â\Jo`Ò'€zöƒg?xöƒ°ß=y°Oérñ™-0ÌmðúcU›…»&7÷¼¹çÍ=ãß7þ]óH {í=¶÷XT²~º{úSu§fž•ùä¸å#c³µkÙ|nѰëóÜás‡Ïnþ¤O0é“ @%,OXž°¼ý¬ö³ÚÏ ÷Hýéæ\óyü°¯vÅÎ v`÷g¿ÎV…»å—”_R~ÉÑG=`æimëË[_ÞúròxÕ˜÷¾©Ù=Ø+ól [5ø¨NµëÈß(Üuxïú÷®ïzs&=€IŸ`+neÜʸ•wW½»êÝUÃ=^oô@‹ ìØ7oAß%õ®²Û—·k”ÐuîCK^îµÇˆ)SàМCsÍ1[€Hú~Á÷ ¾_|—«ï o/ý®{fÒ‰ÚÕ“ío-zkÑ[‹Ì“ôO&}€¸øñ-â[t[ÒmI·%É?pŸ¿bDת[2zZø¶ËwÕZÕ$ªVTÁp¯´þ¸úãêû«ÿ_ýÿêo†çË– ·\¸åÂäWæ›'_¿.ú‘=¥çͺþŽŒ»2',\ùmlÂðÑO$”ý*ù×;1ÿÄüó›…Lú$9,9½äô’¡»‡îº;ù‡ï·-Œ]Søûf¿SÿšŒ’þâß _y¼è=ÅKýšü«ëÕ5ªkÔ©æ§šŸjnRéÁï'?ùûÉ2ûËì/³?ùlì}¯­ÐýôúU“×Î(ëóª¥ïí«Ù»àÔ|ûsìIþÕ-̱0ÇÂæCÆ"“> Àd: ·.ܺpkT <>øž'K%üºjNÎú¯§»ï¹pAƒUCÞîñcÌ/)y-㻌ï2¾‹»¤O'^<ñâ‰+ôX¡Ç ¥dM›þö«Wzò«åŸÆæKwòüöälµëÞpwí]….JþUDýAôÛvlÛ±m‡9 À¤O0™ÔžÎ{:ïé|Óe7]vÓe)‰ w~Ñô`‘§W zoQÍ®q-VìŽíѨ0tUÏÆeèûQ:Eº÷jûlÉ)9ç’3JÎ(9cs½Íõ6×sÇŒbÞÒyKç-J±¡ã{N)[è×AŸþ\ÿÅÈçÞ#–´n¸aVÅaªÜSþ_×ÜtUŠÎù¹5Ï­ynÍÉz'ë´>g`0é“ @æ¶éô¦Ó›f_1ûŠÙWD¥nÏÝU®dÙEß¼Õ¦Úé„'VŽŒÝ—ºQaåš÷bj^ÿÌ”Žo•¾òlÏmôìѳGÏŽÛ·'n› dDŸ>øôÁ§{Äôˆé“òÕïê¾Å:ån7¢CïkËuÞXî£ñuš¤ò§/d[تÁGÓª¼rwåz·,oøTôï)?·r#Ê(7bC‰ %6”pƒA&}€àŽ ;6ìØ°‘MF6Ù$ê4šP£rƒ½K¶ozõ×oçüÏúò½ÿ[÷åw*_6gÝëªVœÛçõ1Uï˜~Û«u+÷søÙ-îz¶c§²¥«ßT¯þœèBçrÜgr>“ó™œûÙÿËþ_ÜM H¶ÛRlK±VåZ•kUîï­ùú]Õ#G¥¶Çš÷(Zu`߇o¼¶ñø±ýo¬øî̇†~P¥Ò¼Ç߸¿êÐO7 ¿½Êñ÷ºèº&¯z²}Ù_»u¼ëª’WWšym™«vþÍ¥ù?Qÿ‰úÏœ§æ<5ç©„ ;vº›A"“> ÀpGvÙydçø¢ã‹Ž/•Ž é9¤çžûæï›¿o¾»d[¶$lIèú|×ç»>Ÿ>W檛«n®ºyaÕ…UV?þýø÷ݵ €IŸ`H‘u®{tÝ£O”}¢ìeÏWTh?¶ýØöc¿<ðå/ÄW‹¯_Í}2³Ãùç?œzÓéM§7m°¥Á–["¿2ç¹4Ï¥y.–sXÎa9wÜ´ã¦7¹/™G‘E6Ù˜½vöÚÙk'þ÷Ò[–Þ²ôW†óK€¿éP«C­µš39frLûÂí ·/œó‹œ_äüâÜsÂíUo¯z{Õ1YÆd“e{¾íù¶çsµRnUžUyVåy9ëËY_ÎZWý]õwûÊ|u–«³\¥çK=_êùÒœqsÆÍwzâ鉧'ºÚ@z#„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ 0@@À!„ ÿ¶3ô~Á o%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/images/support/000077500000000000000000000000001431412030200213505ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/assets/images/support/rxjs-404.png000066400000000000000000001730241431412030200233600ustar00rootroot00000000000000‰PNG  IHDRôxÔúgAMA± üa cHRMz&€„ú€èu0ê`:˜pœºQ<bKGDÿÿÿ ½§“€IDATxÚì½e|çÚöÝç}ïç½wqâ¸ÆW Ûõ¾·Vv»+´¥î.´¥-¥´…’%3$¸»»wŠ‚B!î.Çûaf%³&#×ÈZ®ÇvïIaÿë”ã¼À=TTTTTTTw—èŠŠŠŠŠŠ******* TTTTTTT¨¨¨¨¨¨¨(PQQQQQQQ ¢¢¢¢¢¢¢@EEEEEEE€ŠŠŠŠŠŠŠ******* TTTTTTT¨¨¨¨¨¨¨(PQQQQQQQ ¢¢¢¢¢¢¢@EEEEEEE€ŠŠŠŠŠŠŠ******* TTTTTTT¨¨¨¨¨¨¨(PQQQQQQQ ¢jU×¢¾´õù¨MÉAÅÊ (Ÿxe_ìFÉ‹ëPôïe(°ÍD~Ø4äGLWVèTäÿrЇ¬BÉ«P6v?*æ%¡jû5ÔÝ)E}qê+j€ºzЯ;*ªæRm=jNßAå¢s(ûd; ]Âÿ]€üûf!?lòzNB^gXù}&£ z ~7E,Eñ«QwÕ{®£¾ ‚B**_©>·•óÏ äÍM(üÃ<äGNG~ïɦŒ^—Bâ‘:¿šƒâ!+QÎEí¥\ TTT¨¨¬/ñסæäm”|¼Q3×}¢ï _KÝâ‘ßg2Šþ²åŽŸQ{1¨ª¥@@EEE€ŠÊŒñWホÂÇV 7ˆm9¦¯RÈ ‰Gñ¿—¡bnê2K€Z:/@EEE€ŠŠX5gî hèêÖaüJ3QÓQöÝÔ&g¡¾²†‚**Å^9Ê퇑×cb«5þ&ê9 e_íAmr6mPQQQ ¢jòê?qEO¬j;Æ/Uï)<œËjê(PQQQ ¢ª\žŒ‚°©m×üÅê—€²¯÷ öF!…*** TwiÉ¿¢!×äÎ~«œ°Í@ÅÔ“¨/«¦ @EEE€ê.RMJ>ÝÜ»Ìø= CñcËQ}8Bª¶¯ºÛ%(ygë]küM@ t*Ê~8ˆúrZ  ¢¢¢@ÕVÍ?­E­¤Æ/£¢G–£æX…*** TmÐüXJÍ^E÷ÍFåìÓ¨¨¨(Pµó/¤æ¯#b¸ô‹´%@EEE€ª•Oû—V£ø• ÔØ ´j/ÒcCTTT¨Zéª_ɰŸ¨¡m üfªw_§@EEE€ª™y5J†m§FnvK *ç&Q ¢¢¢@Õ:T1ñØ]½ço©‚9”;P ¢¢¢@Õ‚UTL9Þª¯ù5K¹_¤Â@Or(âPùÝ TTT¨Z¦ªÖ_¤æ/cî…AŠy•* àPÈ¡4ÿgò…>3˜×`·ƒ9Ü æÂáF7EïoAéµ|§ ðJŠHt9Å×òQ‘S†ª‚ŠÕ×ÖS  ¢¢@Ee^5ÓßoÊ]môÅ‚¹—r¨àPÀ¿âsƒ8Üáp+„Cj7׺q¸ÐÅÙî,Îô`q¤7‹C½YèÍaK_[ûrØÖ—ÃÖ¾V÷c±¼?‹•ýY,ïÏ`ùà¬þý ¬þÍt¬UѺßLÇúßLÇú_Mæ?ÎÀžçWàÀ›ë°ÿµ58øÆZœ»çœpž=„«Î!ã§+ÈÜ›Šü¤Lœ½ƒ²ô"Td•¢®šž2¦¢¢@E¥ ÚËù(üûâ»c0OxÍ—r( àPÀ¡\xÅß áp=„CJwg{°8ѓžÞ,vôe±¾?ƒUý,È`Á@SÃL g0%ŒÁÔP^ÓBYÌ e1KМ,æ d±`‹ù‚ `±x‹%ýy-i™D+úñZÙiÐ*‘V»Õ×-Ö…ÆcÓà©ØýŸEØ÷ôr$~±g¿Û‡ë‹Ïàæš È9|I™¨Ì.êAညŠÕ];ñ_\…¢ÿ¬h³f_(˜}E‡êÞô3ƒ9\íÆ!¥‡ã=YìíÃb{_+û3X<Á¬0“¸Âćó=9ŒABƒéa f„1˜=Á¼ æ š'˜ý|A 4j‘ÈøIÌy+ú75ÿ&Ð×SkÅêÃb]ëEÚÐ‡Åæ~ñØöË©88dN¾·Éãö ma2·\FáÙ;¨.¬ P@EE€ênPɇÛÚÜë¾,€Ceoú9A®tãpº'‡ƒ½YüԗŪþ,æ FÏ„3ˆ‹`ÀDð/úIá¼ÑO e0S¤Y‚æ ä5Wbþnã_0€—Øøõ¼ú—“¼ü%Æ¿F¢ù÷f±±7‹½lìÍ`“ðíæÞ ¶ôb°¹'ƒ-½Yìùí }r9Î~¶ 'À­•É(8™ªìR TT¨Ú’Êâ#7¸u›~a‡¡”_À!#˜ÃÙõf±¹ÿ’žÊ !œ#¢ÑìÝ/û©a ¦ /{·f(™¨¼ùÏÓ0ÿE„æ¿Ì€ù¯›¶‰ùo˜¿6÷âÍß­m=EêÁûSO{£,Æ™7ãŠýîl¾„Ò«y¨¨(PµÚ]ÿ™‰Èë1±U¾ò‹ù½ŠYÁÎõàËøkû±X0€7t6‚Al${$ÿ×ñBªHÓt˜ÿlA$æ/€%Œ½üW¼ü×J̽Šùo^ýjæÿ“ íbõ`°½;ÿí®~ñ8ø§98ùÌ ¤|½™kSPžVH€ŠŠUkY÷kMÿ¢Á½ü@»³ØÝ›Ÿ¬Ÿ7ÅÔ0.Áð¥/üÉá ¦Ãz ‚Ä 59Ð27(šÿkËþk4̃Šù‹k/[ÕÌ¿¯2ÚÙƒÁÎî v÷›ˆCš…“O,Ãůw#s] ÊÓ (PQQ jqë~‰™(¸ovëà^û·BXëÅb]sCL w‰`+”ô Øp¾‡ïîãKÍŠIó—öþIÌß=ôçmó—ûI_®ä/6þmJ¯~%ãiWwOí „#œ…SCWâšã0 Od ®Š®"RQQ j^óOÊBÁoç¶XÃÏMî_ëÆâ`o+¸0-Ì…‰á.8"]ˆä¿e"pá¼â‰Í’†ùë)ý7ü3fþrÓþË5¦ý­0ÿ-jý~½¯~±ùK`·H{º3ØÛ“ÅÈüü§¹8ÿád­IAm)=•LEE€Ê·»þ7 QøÏ%-î…_ íäq¸ÞÃÞÞ  à ŸàÍÞé‚3ÂW„ L„ l8ÿâçD’š¿ÞÒ¿¢ù‡6}ùÏ#˜ø—›ú÷ù³Šæ¿UÁüÒùê—{ù‹¿AÝ<µ¿w<Žür:’^^‡ôÙ‰¨Ì(æ³h*ï¨.§ EO­n¦ïîççñ|©Ý8ìëÍbþÞà.8"\° ÍÈHÎü½Yú—ëý«Mü[aþbÐ2ÿ óߨÐïߦÑïßa äObü{º1Ø+Ò¾n öugp°ÿDœ}n nÍ;Šô"Ô•×P ¢¢@e™ùg•¢hèš³[È!'˜ÃÇz²X8€#Â…8Áðí‚ù»DÒ2ÿxQXGé?\¹ôïQþ×UúgˆJÿj+V›ÿzóï©ßü ½úIŒ¿ƒ}!Ú/è`߉H~i²ÖœG%…** T&Í?³¤YÍ¿0ˆ_Õ+äp3„Å©,6ôcÁ„»ðC¤ D¦ï 1ÿF×ë?A«÷oÐüçkôýIÌŸdèψùKËþÛÌ»ÎWó'5þnMƒÁ:ÌàhØ\úhò¶_EUf =|DEE€J·ù?·¶YÊü%*…Þþåî,vöa03Ô‰ñÑ.Œr!VæÕï°àõ?Ù‚Á?£¥-ó7ô£§ìoÄüM—üUÌŸÆ«_jünéäïgá†ã0ŠOeÒª*Mó¿Sêsó/^ûî4¾Äž|¶þQN|msb|”"yã€ó—µÁ?­ÐÝæ/€E2þ›Ûü-}õw7oüUŒÿP¯ÃA ޳8Úo2Î?»wžAEjPG«T¨¨<Í?» Å/®÷i™¿2€CY@<®vc±»‹YŒ‰rbT´?D:1!Ò‰Xa…/NáõïŒhœô'}ý‹ËÿºJÿaúJÿrG~ôæüË÷QÛõ73ðgv¿_Îø÷h úíS1þî>oô“obúÁ"Ó—S ƒ#.$þrR¿Þ¢#é¨(PQ¹C~|Õów¿øKâq®‹}0áNŒ´9ñu´ ß Æ?AV½þåöþõ¼þ¥“ÿZ¯Mó }Ýo¹Šù+€LŸÚËk/ÛzéOöS3ÿ=¯þ}*~nã? cüeLÿ°’é‹tT¤“a ¸ôêd/<ƒš¼r T¨îRó?t¿ó~ÈOA ÿâ/ ŒGROËû3°G¸ðE´££œø!Ò…#]ºÌßi…ùëèûÏ0ðò_ࣗ¿¢ùËõÙ¬°ægvФԿGa°oŸL™ÿ€Œá{”øeÌþgÓÿYб¯@Ž08Äàü¿—"#îÊ/ÓCET¨î¦lÿÕ6Õk¦Ÿ+ ÷Uð/ÿý,èBl„#£åÄw‘N|éOó÷fé’ξ¿tðäå/·òGbþZ~Œšÿ&óßfrÐOwŸŸ ¿Hëµ/1~·ŽJÔ`ü :à©ûf uÄ”žÍ¢ @E€ª «®å?D^wïNõWð;ü?÷b1;Ô…qQN|íÄhÁøÅæÿƒ‰×¿‹pê¢Åq¿r9ÿji$ÿî•¿•zÍ_€†U?šÿ.>¿œùï•ù¥æ¯8Ôg¡éKu<À…ãþ.œ0 —^\‡âC7)PQ jcѾÉÙ(âÝt¿’@~ÈïH/ÓC]åÄ—ÑN|íÄøÈFó—¾þôòë_iíOOߦBÔ¯Öë_ù“žöUúS3ÕS¾^þF¦û÷ë5þ mã×mø2:áÏëTŸI¸øï¥ÈYtõÕu¨(Pµn•Ï:…üþ ^{ñ ßéÅbjÿâ%¼øÇEñæ?^bþråÿ ^~ý» ÁÀëß]úŸ=Pù̯â‰_‹KÿÄæßÛóWò7Yò÷…ñ+™½š»ÇãÂ?!gi2êk(PQ jm¯þ¤L=¶Ê«ÇyrãŸêÄ·‘N|íÄèhÞøÇ‰@þõï2üúw}ý‡Ë¿þ§kLýÏÒüS üÑ2•Á?µ¾¿üºŸNóï©ßüw›0µ>ÿó7kü$¦/ =xÈ]qõ•ôL1ªÞç¯=ŸÒ·#¯Ï$¯¬ó ýÉ=8Ìåwø¿JýßF91VbþÞ~ý3:^ÿÒÞÿ4“¯­Á¿ÅÎûêúëÓôªßfBóßnùk¿äåoäÕŒÐø­0ý“þ.œôóTb‡ _„üµQWA©(Pµ ÕWÖ 69¥£÷zÅøÝ‘½¹A.uc±´?oüßåĘ(H^ÿÞ€‰*Œ þÍU/ý˽þIöýÕÒþÔJÿr»þ-ÒüUJþ¤å~o”ø= ßO^‰ ºð·…ÈßxuåÕ¨(P5“êú¼ ÔHCéç»×{’׆ûŠ9¤…pXßÁø('¾™þ‘ù«€òëßÙb_ÿâн;ÿ‹xÇüש¬ümÖ¸ê×ìæOðê'-÷5}=fŸèçB¢?#«óÿ»[¯Ð* T>RMêrÊPs<åìQý{òºÅ{Åø‹„]þ¬`ûz1ˆpá ›_˘ÿ¡ô?ÖÐëßÙª_ÿJ‰FKÿŠþTúþu®ûm÷¢ùQÙíoã'6|£ë”D‰~ ®<µ%‡nÒ­* T¿ðK«Qw³5Ç3Pµ&eßìEуK‘ßcò‚㽺Ë_ÈálSC]øÔƯôŽj”ž×¿ÒêŸt÷ßÌêÉë?AiíOåõ/]ý#ü“–ÿLýë1ÿ&¿ûèö—Ýï7Xò×cü' ?©áŸÒ©Ó‚Nù±H}k3ÊNeõ  @E€J£oŸ[Žºô"Ô$f¢zß ÔJGåŠ ¨\|ÓN¢äËÝ(~m#Šþ¶yÁrƒX¯G÷–r¨àÂau?_D9ð‘Íáaür¯ÿo%òá?'â" ¾þ#\º^ÿÒÕ?#¥ÿ¹$ƒZæ¯#îW6ìG’ñ¿¹7ƒ-½ÉÖýHÍ_)àg¯8Ï_G¿_ÎøŠü´Ìÿ¡ñŸôçÍ]Öø ÿ´ØÈeþ7bù18Û ÒGïEå•| TîzÕÖ£örjŽe jÝ%TL<†²±ûPüþ?± E÷/AAÄ4ä±Èï1yÁ‚{éu¯öê¯ à½Lwâ›#%Ưâ×ÿ8‚Õ?éúŸÕ¯ÿ)V¼þE«$ƒÒÈ_£¥Ró—®ümµÀüwk˜¿ža?¹õ>=¯þ¢´>­×>É+_ÎðIŒTI~ Nû¹páws‘•p59ô耻Fu9e¨Þ}哎£tÄN¿²…šüPQö¾Ídȯ:€Ã¹,¦‡ºð‘͉O¢ù^ÿ7„æïÑÿ×Ñû—Fÿê1VÅü'©œû5bþbÐ2¹Þs˜?ÉÀŸÔvü÷(”ü÷7š¿VŒ¯ÞÉ~Õ×¾/¥W~C^ÉäÌ;IåOòcpÆ_[âþò#ËQ¸ù …* mRÕµ¨9r åìQ”¼»E÷/A~ßÉ-ÊàÕTÈ!;˜Ã†¾ ÆG:1ÌæÀ—‚ù»E Ú¯™ÞdSó×[úç”þ˜,ýKCH¦þÕÀˆù+åüoRéûëÉ÷7bþûdÌÿ ù7¹Î'cúÇ4Jý'ã'ÞÓ2}9³—5t‘ˆ@üÏû18ÈâÆ›Pv:“‚€V¯ªZTm»ŠÒáÛQôïeÈ›†¼@¶Õ˜¾;Ч"€Ã©,&†:1<ډϢùõ>·¾‘©ŒQþk`õOéõ¯šãõ¿Pçë™ÖÊŸÜàŸJØÏF•}Ò²?©ùïU1Í8_‰ùÓ0ÿã:ú†÷´LŸäEÖ JK@fÜaÚ ¢ÐU“œò ‡PôÀäœÚª _|ª·Xxõ¯ïëÂØ'>²9ðE”£¢š€î×Yù_.ú×èÑŸ‰„{ÿV¼þçNý/µ ôOzäg« ó7ÚóWšò?¬³×O2ÙoÖøILÿ¬uéOóQüÓU TZ…ñ½…â76¡ f¦`¤ñ­Òüó‚8”ð«}ña.|íÀ§Ñ|)˜¿ —ÿ£”ËÿV½þÝàžˆWxýo¿þWÆýÊ…ý4éûK¦þõý¨™ÿ^æ¯w½d—ß*ã7cøçÜò#”ðÏ«~Ÿ n¾±U7‹(PQh‘ÆúŠ_ÛÈ—ø[©á»U(”ý7õe0&ÒO¢åÀ—Qð•tÿÉ”ÿ­þkÁô™pÓB,Ƚ¸ 0Yáõïücåë¿¿úÚßr?jûþ[ ˜¿Zªù+½úõ¿Ó—3ôdƒR÷w>rr§'Ò!* -f’?³¥#vzí„®O?ßí¿ÐEB¨ŸE9ði”_ˆÌß,¼þÕÊÿJ¯§H|ßß…é¡ ¶öe‘ÔƒEz0ðF‡½Y¬À÷õÂLc0IR ¥×ÿüd;ÿr¯ÿ•:Ïü®S{ý÷Ò˜ú×Qú×kþr±¾zÍŸôÕ/5-ãWzíë5|·yŸ÷‚ÁÀŸÁÕG–£,é…* Í©ªõ—Pð«9­Þøó…^A‡½½=_ý#‰_ÿzËÿßj€Ñá?‡0Éÿ¤p憺ðS_ç{°Èæò…І[yAü…Âô'z²ØÐÅܼ¹O ã« áB@áܯÜë_œùï«×¿ÒÔ¿Õ¥éàß^„?¹L#/£¯~+Œß—†¯Î÷ž„Ü©'Q›_AA€Š€OSùŠ*Q6jw«7~w¹¿L8Þ3w€âíø,ÊÓüGz©ü/n”ÿÝÃöH&AAl„ ÓÃ\ØØAr¶hÄ’± ‚8Ü æÔƒÅÎ>,– `07”oLª3¼üú_Þߊ׿véÿ'˜ÿ¥t?ó7²ÛOlþŒ_Ú¿×cø,^¸úÏ¥(9”ÔÕS ¢àmÕ^/@áƒK}µëmr( ˆÇ© â"xßfLj(;¾ÊþžæïðZùÿ;ÂÝÿؾ‹táGᵿh ƒC½YdóE&« Â×$7ˆÃù,öõf±ª?ƒ…Bu`ŠÔ^ÿ Œ¼þûëXûÓ3ø§’ögfðÏÛæ/'IÍ_£Ç/ûâ™j²ÌÞ (Höcp¡{,2Bø³Ã%¾ûzñ QÈáV‹Ó=YlïËbM?ó2˜Æbf‹9J¯t•þ%“ÿš¥ÿždç}ÕNûª™ÿA…£>fÊþzÌ_®Ü¯VêW3"“ïê%„KýP07 u5¨(X2éŸQŒÂ·~ó/äÍÿlwñ¡¼‡O£íø,ڎϣ̈́Žòÿ7^ÿã Êÿã¢øWÿŒP;û0ÈæPíÏ¡¸lJ” Ê æp®;‡ý½XlìÃbqÓ˜7üõ¿BÏë_jþ}Dæ/¾òG˜ø×`þ=t˜7ÿAdæB§ùŸV{ùkíé›0ý?»òr›µûï/Y ‹pßz`à‚ƒëC× êF!…* ¦þÊ«QüʆVmüîD¿²@{2iÇ{1¼ñ&_è(ÿ›¾Ðøúÿ>ʉ¯lL c°«ƒ´þò ¯^üº*B ¢ÂC¦?‡” G»±ØÙ‹7ö™a,f…òU¥„ÿ´^ÿk}ôú×Ó÷W3’Ã>jæ/÷ê—›ð?#zõ«Mõ1þc–švt1!0ü\Šš†ÂU(PQ0¤z bÒ±Voþ¥|{}?Ãmv|`S6½åk^ÿ<Œ‰vâ‡H'6öcÚÍ·¥~à àçÏ¡°+‡ÒÎ*:rÈëÌኋSA,övçûõsòZ$À€Õæ¿™`êßÌË_ZúWêùKûþZý4Sý4zý§UÊýçü‡û’IM¿+/±áºÿÚˆ¡«ÊÀ÷'ýy‰¾²¿ž nCm.½)@E@_ºß©ÌVð“Ä›hn‡y\x7Æ$/#¯«àûHFÙ˜êBR%ñ( ´~¸Ï›Û•Cn¹9äwâPÒžEy;yX\ïÂ"ÙÅÁÞ´`±` ‹¥øþ?HòþÅ“ÿfÎüêÍù×ôctÇ_Ï ŸÒŸÚŸZ/ÿ¢DZ¦|¹k£¤ECÒÇãûÒøq¥?OquBî×wío Qqš†QQ VÑ“«Zõ˿֟Ãõl˜ oÇ8ð¡MÞüÅ0RGøÏ7:äÃ?F:1&Ê…"ØÞ‡AV0u°¨µ|yÈõó€ÜŽr;²ÈíÈ"¿‹¢{Y”þ‚En{7;±¸Ü•Åñ`[{ñæ¿xƒåý¬ìoîõ¿Uoß¿»Á¾?aБ„?¥T?µ %ãO6hüzL¿Áл0¸jRWºxÂ)‚ÀåÈéÈ›y õ54J˜Š€ªª·_Cþ€„V;é_À!±‹Ñ‘¼es`˜ÍÑ0ð'ÿú÷Íô¿¸÷ÿu´ñá ’z°(bˆ[Õ×:@nóïÔhþ¹Yävà?·=‹üv, Û±(jÇ"§‹›Y\éÂâd ‹]ÝY¬éË`Y«t¼þ7Yðú·¢ô/7ñÌÇæ¯ÔçךÞ'1þ&¦oáë"&¿înñHo j hf€6÷úw‡ÙìîÍàÓ('ÞŽqà£h†Gk€ï¦ÿÇGòßÇü.Üá¿Pài•Е ÜÊéÀËýÿÝ*׺°H d±¯;ƒ ½Eá?âÈ_éë¿wÓÞ?Ià‘¿D tàÇcâ_zÌ?‘`·_ÎüÏ[øê—š>©i_s«3tU úÀ”Ÿ¸M!€Š@“Œÿ-W?pj«½â·¥ Øìx߯gú'q ·¦ÿÇ æ¿h€«!Á/¿5¶YåûÿâònGyóÏîÀ"«#‹;Ydvàu[ø6£#‹ëY\íÊât‹ÝùVÁQæÿqï¿·÷^ÿrSÿ$~äJÿÞ4ÿ†|| Œ_ék™|ª†´à@µ2@RЀ€Ë‘Ó‘?ÿ …* b¿¹¹Õ•üK„½ô°߇‚ù"2ÿO-êÿCÐÿ—+ÿ‹äÿÙ%‚ù¶â\Åþ?K"ó¿Õ‘Å­N¼Ò;³¸Ù…Å®,®ú±¸ìÏâL ‹#!,¶÷`±¹_ú_ü3÷+÷ú—-ý+¼þu­ûY`þFJþ$å~ã×záë4z#"…i‹€d>@úõ¹5ü':@EÀ=µ—r[Õ…?·ùß á0€ ïÄðý~·ùBôú·›ZÿMðúw›ÿ¢.dó%ÿV¬$.ÿwÕWþW€Ž¼ù§uaq½+‹Ô®,®ù±¸æÏâŠ?),’‚éÆ`wFãßÚ³±  ùúï¡ÿõï¢Ò¿ó?©‘é¯eþçÍ_«Ô¯Õ××2ýë\ïd^$@@RP%¸þŸå¨É,¡@uw@ÅÌSÈëßjÌ¿<ÕnìáN¼ãÀG6>¶9ð±.0×ÿ'€ÑQN$„ºp3¤Mù“–ÿ @®ü/6ÿ[X¤wj W%p!€Á…çœdðs0ƒ½Ýysßî®ô ýÑzýë-ý+ þyÃüµVüH_ýJ¥~­W¾Ô¼o˜”,XZÕ€+¿š…Òi(ܽ¿ø’÷¶´ó/ àp©‹Øp'Þ³ñæ/_ôÿGk¬ÿ}ͧü%öd[~°™ò'Îxù_€›XÜàš¯+\Ìÿ|ƒäg dp6Ab0ƒŸ»1Ø/¼ìw æï>þ£eþН¥Á?•?’x_ʼne³¯~%ã·ÚðõBb‹@ÔÖå %˜CÞ”“(Ü…±¿(üçâVaB•ñ8ÕƒÅØ~ÒX´Èü%€Oeàs‚ +úÿc£œéÄòþ ŠÚ‚ù“–ÿ;ZSþw¿þÕ )Wb0ƒSÁ N28ÌàHƒý‚©ïJÿ;»óÒ›õ¯”ö§Yúйîçï]óïî+ ô©½ôõ˜wš† W”ªRél ¤½·…¢p—íþﺎüði->à§: gºsø"Ê7ñ-ùÀ`¶üÿm”±N\ëÆo(Ü5 íÿw0—üY\ `Ìÿœ ³ Î18ÄÀÉ`'‚x8Ì{4Á! h¾þ%—þÄå=¥Sæï§Í/ÅOÅüUÊý׺4éu‘é}G7¥”øß'¢ªÀu¤Êµ„_÷%™–À%¥J€ƒ›Ï¬AuZ… w‡Ê¹cÈ b[xºÍoD”¯ràÁü¥ð‰´½c£œ˜êj;¯¥õ¿Nú×ÿn k¤åÿ‹Âëÿ¼èõ¯Ç bp$˜Ááö¸ôwHô¦ý)õýOôýIÌ_é OƒñwU.÷7¼ª%&«$©á»ÿ>]ôפJWˆ›Üèh äf”ªâuAÏ£B.\ýÃ\š@à.éÿº³E›½<’»³ø<ÚW9ð¾Mæõo²ÿ?Òäþ¿´üÿ]¤»ú°mÃü•^ÿOÿ‹@møOZþoxý*¿þ38Ä  æÍÿ 0# üSšúobþûþ'{þMöü ×ü”^ýr}~i©ÿºÈøe%qšÄ¤Ó;4ꦠô né”ôßwK 7€ µ“g5@ îµÁKmñ×÷ê¯ç hý% (´áýÿ—Ö·ó·ãÕAv|`ã_ÿj`¤ÿ?ÒDÿŒÌëÿûH'Nôd[gØÒë_šþ×ÙØô¿Òë?ÕÏ<“€ðú?ÐßPÛùW=ö£Ñ÷'yùŸ"|ùËô‘»Þ§VòoR— ø)õöÓDÆ/~ßìèiØ·¼¤t ¤IäFGå9÷¯©¡ P P‚€”®|EE|^8¥×$äpÇ€ºz Úà`a ÿ½¬EOm€`þQ¼<8ï‹ÌŸ¤ÿÿ™Žþ¿¸ ·ü/?F8‘ÒFúÿŠÓÿƆÿäà†ÄåÿQùÿœhú?)üK fp2ˆ€ã"¿þuãËÿ»¾þ%—þô¬ü-ûŸ3úò×zõ+ ö¥ujúò¾)yí˾òÛ[$h¨4ȵ T U¥-p¥‹ú€ ôë}>ŸÃ(´Á  9(øÝÜg:Õñ8ÛÁçÑv¼<ÈŽ÷lM_ÿÆûÿÕÀV@VP+ËÿÕËÿ†@Rþ?ÐM~ïŸäõ/NüS-ý¨Ÿ÷%.ýû«¿ü•ÌÿrW— Í_n˜OÍøµL?ä´€@ Û:!@©àVƇÛP_M“)´!ÕœÊDÁ}³ZÔže@<’º³ø<Š/û‹Í_Zþ÷&ÝÿÉÀíà6þúúÿîÃ?Ùh¯.,ÿ aøO ¿þ ¯ü4hþç4Vý”ÌÿŠ ó'2~ _ëC€û¿Gú[›PW\E!€@YÜ|ù½&µ¨„¿Ä|ÙÿÕÞüßW€‡ët˜êÿK`B„™m¬˜þW+ÿwö,ÿ_U˜þ—¾þO“ÀùÝâÞ?Éëß_áõorâŸØü»*›¿Z¯?Í Æ»=ƒÛí4dT@@ZÅHïÀ ½½ éÿeÇ­{]¸Õ‘ÅÐÈþÃBÜé7 ·ÿÛ…ÛÿåÀíÿ׎Ìv 2ïmÔ·Ú±ŠpýßËPu½€B€6ppir‹Êö?Ùƒù¿ÃÿûÀØ 2è)ÿ‹+g{´!@wùßß ýÿÎê@RþOÔèÿK_ÿJ‘¿V¾þÕJÿjæŸLòCbþzJþéÕ_ÕìUL>SAjÿŽQÿšÒ;2Hÿo'nùqÈyd%*¶]CÕ‰LT'e¡&%Õ§î 6µ¥ñ'QðÐJܾ'·ÿˉÌvnãgpG8U¢R ¸öÏ%¨J¥@€€%æ_ÈáDOŸEÙñ†­ñå/²@‡® q à+‹à‡H'Nµ%ðvÿ¿«Îéÿ ™×ˆgÿÿ`ˆ|ð\ä¯U¯ÿ“2ÃÒ׿ž¾¿’ù_ê"îc ßoÖø3-) È€8Ÿàæÿµ#ë— bóUÔå– ×þê‹«P_\…Rçqäþi12ï‰Åv¼ñg RJ tÿwºôë9(ûù… ­øд“ÍŸíÈ!¥;‹Q‘¼i³ã]‰ùK`˜MkÐa È/À÷‘NlëË´ý­ò¿LúÑú_g~ Éú_Aÿ?H»ü¿·[Óò?ÉëÿLêŸîÞ¿§M¼þSôôý öûI_Õôï5!  ›ÜlïBz;JgžF}U-ñ°^}Y5PS‡ü'ÖâN—xdµóµy€ó~ RúMAñ¶«(´N•Þ׬SÈár7߇7š¿&D›ëÅC€ ɇtbî@W믔ÿÕ ƒ10[þ?¨Öû—9øsPãܯ‘KJƒ¤ÿzúþjæ/÷êO'ìñËÿ½^” ¨A@Z{Ò»r(IH4eÄO¯GÖ½®  Löcp¡Ïdm¹B!€=* äÂâ‡^‹±ãпàÐ=(FÝ0.Ò 6܉;Á\ë…ƒåÿ\åÿë:Ëÿª *ÿïë¦oøOõõ/£¯=Sÿzúþ†Í¿ƒ¶ñë}íß!”Ъܸçdým ªSrM›pÞ#»=‹ìvlÓ 8çÇ ¹÷$m¦@€‘Š9dqˆuâ•;Þ²5À{’ýÚ0R】@)LˆàOÜEëråÿÌ,nw$’ò¢»ü/wùÿPˆü៽Z«J¯ðÆëßèÐß5 Í_ÖøµÌ¾œXIþ9- h ¤ûq(ß`ù–|±Ùâ‘ÓŽ|50ÙÁ9É}&£hÓe (¨Åûò¥ÿ¹ý]xqoÚìx[æ6º7¬·¾‹tbùÊ[yü¯ŸÈüõôÿ•^ÿšý•ò¿`þ‰2ùÿnØÛ¼üPä½ýú¿ Rú—›ø¿ÞYÛüoÉ”ý¥ë{™„¥þãoß81oNž@@ îŸ{Σ«Q›Qb™ñæ…ÏDN{}ùÉÂÇó=õ$êkh` ²ª à°¡¯ /ÆÄáµÞüIàCøDRøL÷ `cФÿ/€ï"y8`#\­³  Tþ· ÿŸÖYÿÛ•Å5þ¿»ü$€ >PÜÿ?*íýËeÿ åÿå«Ìÿ´ŒùŸS+ý q^½ÖºßÎÊûýnó×zõ«•ú=Ê÷í='å­ÖöB¥à^V¾: 3#PÌ·Ôl ~»¹XÝ!AÉ¢SÎw¸£ô~ Ò×?üã±£7ƒ—câð²ÄüI@k`¸•úÿ߉ª±.êÍ¢$°Nÿ»€tú¿½öôºä^ÿâý¹òÿ)òÿ…׿4úW1öWrõÏLꟑ¬=/ÿÔÎê“þ$Sþj/þFãg›¬È)ÉÝ?ÏRPv;þŸ!ö¬úÜ€ðó.vY ¥ŸîFn׉¸¬(ðhp.„CѺ@€@ƒù×ÄãDoÙìxnPÞ²5}ýk€Æàð0èÖ÷‘NŒraÞ@¦õ@ éÿöÚ¯- -ÿ«½þÕ€dõOíêŸÖë_šú§õú—ÛùW[÷SMùS™ôOÿÿœ¸õÿÚqë¿M{ýª½}uãÏn'‘ð¿å(([A¤ eKÎ[j´åÜ äLÂU÷…®ž—.*€´ p!bŠèŠ €»rƒ8ÔpHéÆbx”Ï }г0ÜüV¡ÿ/€qQ.Ø#8Ý“k= tý¯£zú Üì,:ÿ+”ÿÝ×U^ÿå)ñ€½Ý•‡ÿÄ’Õ?iùÿ¸Þ‹¢ò¿žÄ?=¥ÿëJé~EáÞ!4ýœv,rÚ ê@ ö"É„b[@ah°lá9KM¶rÆ™¸b¢ pÖŸÁùÈé(ÚqB€»*9\áðm„ÏŠÃ6e°zàs£MÀ÷ ral? Xж G£ü¯W´ÖÿTÊÿÇ‚x#×zý‹@oùÿáäÿ)³¯Ék“Äü½…«hþ2f/ƒš’µª€R5 tÞYk[#ö"·ëÄÆ£A U€ Ð?Q p@I ‡¬ ñxz0?ô÷¦À—ZðC¤ ?Dº0.ʉøp'.vgQØZËÿdñ¿Äý÷õ??²òÿiÉëÿDgùO7; úÿûCì÷vùßÌë¿k£Éˆ_ÿZ~¼…+ûê7kú*’(ÈRs-zpr;qð¥XiHàŒ?ƒäði(Ú™J!€ÀÝE¾ÿò~.q¨ŒÇŽ^ ^±Ùñ²Äüß™¿áÀè¦à«JÀRø1Ò…#ø.Ê ‡ Ô¢[&úÿF@Oÿßÿ\8þ#ûúïî›ò¿ê🤠õú¿¨ãõߤôï¥(܆¿Ûø}`þr¥T«íÜé? •{nXb¬• “‘8¹ÿíò¹*@ŠÊ0 $ù1¸ø·E¨J+¤@ e¨tÔ¯ø©äp¼'‹÷l¼coèûË@ó®: ßKNL4:Ú‰%òÕ‘:ËÿÙŒ—ÿ/0Dý1&ÿwuo¬®ÿYVþWþKò3ù+J?7;y/ ×—¯~­j@Ãz¡ dt`PÂX³ Xôà ä¶ãl7x)U.꨸çA’º2¸òÄ ÔUR Ð̪©CÑóë,7‘²@WCXŒŠpàÁü[|a"`ŒðC”ßG¹p°‹ª€(wý¬üŸíÃþÿq¡÷¿Wxýï2Òÿ÷fùßOßë_ º^ÿ¿pz- ·9_dü‰ÛíT¬¾hêkPúénäuŽGî/ä¶g‘*¥Y=m€$¯½±u•5(4£jëQüâzË3þ³‚9LèÄ3ƒxãš3`”d Àª@)Lr¦‡ºp3„Ey¿"Ùââµ ½~hRþW¸þG²þwB¨èÆ`gýÑ €4yýæþû+¿þ5Ëÿ^ÿiܸç{¯Eá¶ó'€Œö 2þ¯Yá3Q±ü‚¡¯CÙ—{‘4¹ÁüÅ §  ÕpWˆNû3H½‡€¶AŠã±´Ÿ Ïâÿu°:Èì )X±(±‘.Œ‰raS_>¨°%€Ÿ>ÈÅÿj½þåà’ÎþÿÉ`GBìêá Zýÿý!ûÿæÊÿguœû½¬ãõ³#ƒ´ÿëµ(Ü–rsb¸ÝŽÁí_¸å7 e³Ï .¿õUµª_—ú‚ ÔU¢äõ-È란ÜÿvyüXî¡KèÒt0EgÀ §üdÆ£@ õ@¾Pú?ЋÅë6;^³5?YüÊâÀ%æéÂ.Lˆpálw•­¬ü¯òú'ò¿?_þ÷ÿµÊÿ'‚ìïÎ`G}ý7èîÿ/ÿŸµàõ¯¿p"£g‚×¢psïeZ$äJ £½gœñíÿÇü-GÅú˨9ŸƒÚÔBÔÝ.iPíµÔ¥£lü!üvrî±7ôýźމÑnè:+€Óþ ’‚8í¾N!€@ó¨øÕ–•þ¯uãðy”/Æ45x>na0^'Ø#\åœP9AÊZJ+ À; Zþ× 'ƒš¾þ‰ûÿ!Æúÿâ½åÿ³zNþŠàZ‚×ÿÙ‘6ÃkQ¸-Ú{¶@|#àÿ8pç ²ûMGÁ£«QôúV¿¾ ÅonEÑë×-9÷Ø‘óÿ¹Û“ý1Ä ØЈÖjœögpnðLT¦æS à[ÕV è±•–¼þsƒ8¸Bx.FþõO O£í9F2¾2°8NcÐ"xÙ#\åÂö> ŠùÉ- Nÿ»×ÿH^ÿ×D¯iúŸÛüÊÿÁžåÿÁ öwc°½§Œùë,ÿ¶¸üoêõ/þ»ªúãùû_vdœîµ(Ü– s23ü5Á¦7¤g„Ý’nu`p³Cc˜’¶”ª—,lœògpiÈ ÔTP à;Õ¦ä¢ð÷óLçüWpXÙ×…bâðŠÍzøÐ !@_úšöÿÅ0!Â…#\8Óƒ¿˜ßâ®ÿ±ú ƒu$€ôõÿ³ðú—-ÿkÀIùÿ°Êÿñ¿z^ÿ" éý§w`þ¸Ýš×¢p[:4@@;9Ü _Ct@z>F9MReªâ܆#UÿFHôgöÅ.ÔWÖR à#¸”‡Â?Í7e¥{°x7ÊŽd^ÿJð¶YÙøÔÇcM€#Â…ï#]˜Æ #˜o£´Êò¿ h—ÿYâá¿Á¼¡oïÁC€Þþ¿¼Uþ?CXþWþ»JxðçV{nu÷Z®\_œ´G¯(oµ$à "ªWovlü‹@® p¥‹'\T©@¢¿ Y3)PðjÞD~èTæQÄ!+8£#c—}ý·l0—`8"\ø1Ê…õýXäq(l!ÓÿÈŽÿdKÒÿH^ÿ Óÿþ,Rh€€@‚øþ¿»(¼þw½#ýÍõ?¹ýq@#û_ ¬*ÿ‹ÏýÞêÀ ý¿^‹Â5lúUä«Ü1PpmÓÚW$m€‹ZmÑï‹$Q€'0830%Ç2(Pð¾ª6^6Õ÷¯ ˆÇôN<=ÈŽmv¼jÞ!œæГ0Ö‚€C¢Ã½Yä5C+@.þWGù?»#‹¬B #¢ëi]XÜèÊ"Õ×UQ°{ý/)Ab oôn³?Âàp7^Bx“'€½2p Dÿþ“ ‚þ¿ŒöÿÝ-Õò¿·þËáµ(\bãïhB¼S¸£Q0Ò*@ Á€$ú¹páŨÎ*¥@À»ª˜‘ˆÜ`c¦QÀago¯ÆØñ¬ðúoÉð…à{B¿Søvb¸ »³¦ŽåQ‡|y]9ä”ÿÝ·ÜÝÑ¿©]X\êÂâ² ¤'‚Yœbq<˜Åán övg°·‹}=XìîÁbk/?õb±­ƒŸz1ø©'¯í=õäµ£'oúbíì¡/hÙ = Ùÿ÷'ïÿ_–¬ÿ•ÿÝjÇx- ×ëæ¯Ñ^22˜e´ Ð^½  5pQÇ:àþV„tÐ 'ý\¸1|; ÞUùøýÈ Ž×m2ån„°ø2Ò'Ûñ²­õ€Ñ@½éR—P˜êÂ;½R Qa § dÌëJ¨ ßÇ›3ÀÇ„ð¹@o °œ à+?Î ^W`ß €å„°Vz€Ò t¬€‰ €s¯É\þSíÿ‹Àâ(\"óW{õw‘HO5À›m¥9€s„@´ à§¾ Ðþ.œ±Í@ÉqºHÀ*ÕÔ¡ôýmºKÿ;{1xrÏ»Í?ÆsÐ ¼×ÆàǶ"ó· 6Ê@OЀÅç ª–ÿIà^~ÿýN{YÿíÂ{ì¸sO,îÜ‹ì{b‘óìÈù£ï¥ÝÐüņßU"_@€Î6€.è¤ Ml(Àq®¼ºž‹€NÜF^¿â×U‡k!,>Œrà±Á"óoAð©àÛSZ4n´U ݸ¤”ØÅ`ÿ_wîeøQ4nv;þxNNƒÉ~$e‰éçI¤ ,j¸³)Úk‡É€™A@³pJx1ÈZx†B öÿç%!7ˆ%žú/ ä0{€ ÿúeœ§ùÀÍŸ2 ã¢ôŠST€‰’5˜.³`‘X!«‰€_Übôf´0ÀÔ€\“€4÷ÿ=^ÿÈé`ÜT=ÍY˜ê—1ÿÃ÷—‘ŸH Ààϵ¡ О`@¦`x@cð¬Ê  &¸ô»9(¿˜K!€€qÕe£è%Ä¥ÿ²@Gz±xvøó€–’Éÿ¶?ùtfxkð²Ö`'ùÀ £`¤¬Þ¤ô¯bþ~‚Ù(H M€³® Ð^ÿ€¸Fà4ówáÆ˜=(˜þ[{ùä‡~²‚XŒŠtà?ƒyóQ^k%ð¥O@9ØÆ'0OaÐRèc̆4˜à- ÝÐ5h5tÐ(ýKÍ?€@jРMtñ"øó¿7¸P|à… ^ÿwJQôð2"ów§Ï­èçÂãÂàß ^€÷[ Œ¥ YlpÈGpÎßÚ@³ÝÞâþ¿H>P$mt²`° À±.¿´µE•º! ºª¹¥¨­©£q7@å’dâ×Q ‡äî Þ°Ù1T0ÿ–Ÿµ°S°ô„™€D€+€²€V@§¦ÐÐó—š¿ÜÅÉ€ÆÓÓ²U‚+”^€ö­Ž0ÈY™lÈÄWL;€sÇiᮀڋ¹È ›FüúÏ æÀ„ò—þži »ipŸnÉ0‰€¥pÔGbÒ› ÔVÿį)È}¶´Hmf8à¹ÿ™‡Êô"ÝF~t×% 2g~¾N!àn€úü ?¹Šxï¿0ˆÃÁ^,^ˆ±ó‘¿(耾æ`{+€¤V9¾€@õ³Ó´`ޏpgÎ)C&>úÕ%xí&!åT:…€6Uµ(±[WèOf0‡o"xFdþÍ j«à>)L”®¾ÿ/³)P €6Iœ‡ªÛ%ºMüÈOðüo]øè±ȺU@! Í@]=ÊN"¯[¼®k+ú¹ðB ¿öGÀZ° ÿµì®†£AÀÀÀ.È!|ËHƒÂ<¹!`FƒYa¼á»_ÿsZl Ð6Z&gè 98È Ó@ ®®Ã!¶8|ýÊ"äeShkP_\…òÉ'×s’®Òz0‡¢xzgùŸ€qø1ÒÉçD¸ðC'à»H'¾}îïÓ½f8Fò×âŸÏ7¢Ÿë×QN|é¸H¾~ŒX¡µÀF¸09ÌÅCA(ƒéÌ m<Ì‹VZú @‹ì¨~:·”îÒ€SàÔïæ¢:§L·¯š~OŠÃ[,& […šêZPh+æ_R…Yÿn•r˜3À…gcìx&†€ŒÀ÷"5â¿ýÞmø"4.ÊSRCÀ |#_ ¿–QQN|åÄ—Q|-|ß?D8aw">Ì…„PˆOÿ.nÐÖ†}µЬk€¤9þÍÐÎZðy üÈ sV"P]žq#/ý‘Ã[,†Øb1óûíÚÄ®ÿÍB]î¼ÿ²@»±x-ÚÇ…×?O-‚÷Þðù¾ûÅï±¾—+ @ R¹=£„_ïHáë0"šÿûÑ‘|á„#Â…‰BÛ`΋pXޟòþ,–Ò5@Ÿ@‹ "IìªÔâ€-êÿëŠn&Ð @Nýv.jKª · 0öÍe ð̯رê4(´æU¿³wPðû9º_þùA*ãá uâÉA¯ ž¹ß ¦ÿC¤"œ|?’—»o?Ae@@/ŒÓ€€1„ðU”_E90J$1¸C”FE90.’ÿuM c0c ƒX¬èÇau?Þì—Ñ ËàR2hqQÀr·ÄwüntUyù˽þ;š8ÔŽìÐít (Q¿odðsxäm»ªÛ¼ýtO¶7@Àkÿ3ÉwqF@«þÉWm»Š‚¨éÈÕiþ¹Aj8éÉàE› ™ÿ-šk ÐmžcD¦+¼–ÂО8ÙÏ\Bߟÿ÷ä@@ ßEò?θ(y0 _7|ëÀ×2 ‚Q|Å-‡GÛ1*Ò‰ñN8Â]˜Ê`ÞËû³XÛŪ~,V¶2hé·®u&<Ô¾¹ÉTä)]”;Ô‘óî5@ÂsÀéøË–tX Ž28ûÈ2Ým€âÂr¼ø‡Æ6À[>:ç® l½×ý¦žD^Iº_þî×U ‡Ãxd0oþ­¬It§ŽâÚÛëîuÈ@ƒˆf&4´œšÕµŠÀ· ’ÂÀ70 TWÜåÀgÑ|mÇgQŒ*ña fd°|‹ }9¬íËbuk;Ô¯>Ü®™Î«@€¢:{ñp{Qùßà à-ñ@G… PLöã+CMúÿ~M7IÊÿb86e—ótwue ØëE‹'l±ˆ¹‘@«ö«¨AÙ7{ ¿ûõÿx–¼þ[+¹à6ý‘·ãwSôŒÈü2²+€€\K@®-ðŒ“©Œ%„­ŠÀWŒRi ÈÁÀ§Ñü×}x4ÿÏ~áæÂì.¬îÇ`S_k}xØc@H[&à!œ—€‹& Ùæô@€º(¼øÕÌß4”ÿۉ̿=c7:ë_<§sP Ç5àH0ƒÔoô_ <±ÿ² ±ÅâI[~Zž -<ݯäõM†Íß½óŸÄa|˜ÿ‡gbššãà‚!~É›¹KbüR9e`À®Êm—ájÉ€à‚¤Õ÷¼Àî6A”ìéÀø'Ø0'æ `°®/ƒ}xãoâ ‡¼s: É&@'ë7 ½•³ Ù$êd½ùçvà}ª¯¥þ¿¸ÚÅ@8ØA ÿ8W·içÜ)ÂÓƒãš@À›Ÿ‚«ç3A %šNŠžXaÊüݯÿM}\xlpž×`þmÜú:ŠŸÞw„»÷˜pÆ#™Ï*‚€7 @ Œ@À—  îÊ€Ÿº+‘ćº°¬ë€‡€ÍÀ@¢ 0º `h k]€:™4~3æOZþWêÿ·Wîÿ›4¤GDp4t òw¥ê2í²’JŒwEb‹ƒëóõ¨®¬€5韅‚¿Ì7eþyAJùƒ?£Ã¸p¬Çëß(¼Ú à Áì~ŒpÁѱ˅󱻌 Ð[ 0z«f*_@ÀQeà›ŸÛìø*ʘ5À…5}™†@Eè¥zÀ~ÙÐM6ü¬Û02 X0 j b‘ü{íÍ@v»Æ âõ?Qà¦Ò`gïn˜á÷ó¡ —?Ó·Ï__WÕ³ŽÈ¯-‹OPh)ªIÌDÁæš6ÿ<ÑëÿÑAqxr_þ¦ Àç‚ÄÀ¿Nù×¾û '«\& @« VYU ƒ€¢áÁá6~›à‹(;ÆDÚÁ…9±¤Ó›z³ØDÛI ;!Ë€Ü*à‰ú™ßðhh§oÀ' Wf~>Jåÿv åý-HéÊ'>j@’LP¢I8,À©¿/Ô½ p5ù¶"¼ò—xܸ” ͽæ÷ÓUüÎó/ äÂbt¸ ŽÅ31m>‹¶ãó(;¾¿û ÎD‘8“ `¶`EfIK@Ï\À(-ª@´½a­ð³h;FFÙîÀüþ Öõa°±·`üJ`aÐ!i€îÁ,ol\‘ ¦ª€â@;¥6€„6@®Y°,ø¹½þUÊÿâ@¢à.äýéÀ+€b89ÒtvÎí"¼÷ÐTE˜ôÕ&T–Wƒ@3©ru òNµÄüó‚8ÔÄcKŠÃ“1qºà%A- ÄYŸ ú<ÚŽÑQv¸Â] ôÄçt­‚§Æ–€X VUÔ Àh5às¹ÿÛ|mÇבv$ tam¾à6|_ÉÀIYzS"տܝZŸVÔ¶|dü ½ÿödá?†Êÿrýÿ.ä7¤ýÿбp\mÀ ÂïïÔ±ûu™uEYâGmT€!ÑqHʉ©á.Ìm4ÿ©  }؈3pKà{ƒ«‚¾ 2 J ð‘ÍŽa¶8|áÀìþ.lìåÂî öv×’UÀÄ›¦ýt&võ€Tm€Û2UµYË[¾RùÒ¿ôô¯/>¯­*ÿ+E'tÀþ`iñGuýÚKŠ*ðã°ÕšU€Õ³Ž ¾®¼ùòï3Ùró/äÌèÄ?î‹ÃÓ-Þ1Úx“q„»0;ŒÁL᤭[S5@€äZ™Œ¥ ¾% tYPohÐ8–À ªR ™ øLAŸFóÕ€wcìáÀŒþ.lîéÂán ö‰VµÀ²M™A@Õ9%ðbà¶Z@%°UA€†ù7çç·žò¿7 ±×‡mÕýuXàÚ£ oþcŠòË)xÅü7_1|ÔGKÎvg14&OÄÄá)«@& Ð+ €mŒ‰tbr˜ ³2˜Ê`F¨'L S©H@`’ Äkm ® :-R½%`0Fø ¹/'޲(3`„ ¸Aàý;Þ‹±ãÛfôwbkOGcßM8xÐÀÀ ¥«€*m€³TÜ=g-¸¥ |[ÏZ Ùˆ`_—ýeÿZ’‘h¾þE µþ'-ÿÓèÿ»à̳«uMlNÆ[œ*<9(«g¦`yÈÏ©Lä…MõŠù ßÎéïÂ?ó¯1 %€DsÍî¿þ!Â…¡ æÆ/–¦Ê€ÀÐŒGKÀúáFp W]²…ôTÌF“TFªl |a`6à3aÃãÝ;Þ‹q4Vzð p0Ä;GNH €¤ @ Mª2ÛZ³j [ hÇðrrСeC€œù·dCÑ'IÊÿR)ÿ»Ÿzx jËôíîŸ9r]†Øbñöý (.h{U€æ‹÷½œ‡‚_ÎòŠù»‡ÿ.wcñ²­ñõßR€ä"à‡‚Þ³ñ?L¸ sCÌå_þ35 €´@º%ïÅà ³ ‚$éÞÈ øÊ ™ê Àÿžø:Âø.lìÉà°0ì§6pÐäÀ ‹Ú²Ã€]=‡¯Ì譈缚à%óÏnÆ/–ØüÝ›"§ýŒOÿ%€ý! ŽýqŽîóÀ©)Yxõ/5`è/Ø0ÿ+T—UŠ¢G–!×KæŸ/hu_þ=¸ÑüµàÙïÄ802ʉÉa æä_þ³D ¤`tSÀW™f‚ƒÌÞÐ#ì+à3x?†¯ }éÀ¤.¬îíR8¨ ¬» ³¨T8¯'  y ]å@ÐmCâõÀ– Æ/˜k41ˆ+z§ÿiìÿ‹àHÌ4I׸ųó4`ˆ-Ÿ ™MÀôU¿â*”¾¹Ék/ÿ¼ EBðχ‘v<Ãïþ€ç à5x‹>°Ùñ¾`þßF:1s`£ùÏÉ(¶,È m Xr-+b„Çø FØÌº`Cª`”cÿ9 ËÆoÇÉ-ç‘w> Ù/!ñ‰åDsGˆçÚçtV®X\khB@û–nó÷Åç±ûë* þ±âû>#sPµüï¯]þWêÿïapä¾(<ž¡ëç^S]‹Ißl"€ç~ãžõm+À·?`]=ʧœðªù»_ÿ;z3 æßš€ÿ{'~ˆpaî@ 2˜#h¶f©@€î–€ à¼äí[c-€­v€ÑA±ñù+&½°{çEÆÅ,e—¢Fr¶´:·9?]Á¹W×c_° ûDYšs—åæÄU€32—µàbWõã@²U€NÚUm`•!@4èkpÿ˜ÞøìM×û{U¨Ì\þýq“òÿ•Ì_© ÚÿÀ‰ Ý?×9öD0$:cß\JÀðÐß4äõœäU(âÌáûPžh%à†€w„ €#‚ÁÂ,æd1w ƒ¹^†€© àÍ–€ÓË1ÂV&6GfÀˆ¾ù}<æ~´Ç×AÞ­BT•W£®V{¹®²…‰¸ðÁì7û56«þæÚç”ÚTÒdrtÍ´S€™j€·AÀÆKzðG!ö÷†Bêß•.æ/>þs¡«~ð(ÿë™þp—ÿ÷™€]k“ÈÀ‹7ÿ1WÎݽ}ÿÛ%(zh©WÍß g»³x6:Vžö¼j¼mãá&†1X<€Åæ RK+^š `¼xK@©%ÐÒc„¥ðå`ãþ< KGnFÒ¶”ä•¡¶ºÖÔ‡Mùµ|\¹Gc¦ËÎ1 mSU€®M/*Untj|ÍÞì Ü ІùÁ@q5À›³bÀ°â3VîØÏ-‘ùßT0¥×¿ÔüÝpÁÏ)ÿ  µþgöoN&€!¶8Ìúq½*yÁœ× (ÔþNé°IÙ¿½¼ùߘÿ ÑÎjgþú"ÉàŸRï_îê_’ÂL€{døï˜äõ¯5ýï¾:ÿþfÃ_ëÉ£7ë€80#ÖSPSég;}òú/Žÿ|‡‡b$—œ,ÊxÑdÀ[6þßÿ4ÊyX¬îÇbYKpë†Å*0°`€Òl€h&€`@ÐHŒ0É1!) Ä› r)T‚ñ«':Ugä. Ž‹tb¼L5à[Upá»_MÄš/7áê‘Dûú­AU™%Èœ~)-Cb0« ~êp^e ´p­3?½®4( $Y*0ÐÄG†7 Ä2ÓãÏÊm™*Æ-•¿›Æ/7õ¯÷åÎ_ÞüeÏþê1¯ÿ}"ØÓÁõ‰G ;ݢ»ðÑc3‘áÃÞV…>ØûÏ âPÈao/žŽõ(ÿ·$x)ÆŽáQÌØhþb-CÀc0W20ۢ̀©™“*ªs„`$3àG…–€ÌÄ5#7"õXêjëÚäÙÐêÜ2îLÅá;5 'efN«Ò‚€®*óHUÉ € µAB…‘Ìø¹ü ó¿%1ÿ´Nòë~r浫¾¾¿Ré_|ôç´¿±Ã?ªÇTzÿûº183 ùÒ Ý'}½I7 ±ÅbïÆsd?0ö¥!?rºOÊÿð‡k Å4ÿ©ÀÓ^µ6ÀËî—kû²XÑŸÅòþæ!@H·f退é݈· `$8ˆtS@ofÀøA,ÖŽÚ„‰é­¶Ô¯{°¶å糑9=X,¿àç j¤ ΰ”@àv;IŒ0!ˆeöÕ›ÐøµúýrQ¿$?zÍŸèõïgàõHÖûßÂàä–˜úó7Û¾C¢õÀŒï¶QSåÌS> þ)äÌaX„÷š ûÉŠ,€ ¬¾!üoÛì˜9À…õ}ù¾ÿŠ~<(A€t.@ æð]fÀ4ƒW­l 85ÍÄ+A€´%°àõå¸~ü&êjêî ã—ñÉ-GѾ¸þÑO83 A¶ ¤c+@îR Òf€n Ô 0ºÏ¯8àç%ó×[úW{ýŸÖxýŸô3öú?¤±ú·¯ƒ½Á ’‡m6õçpý‚£†à›W¡8¿ ¤ýÿ·ù¤ü_ͽ ŽÃbb‰ÀH€xÅfÇ;ÑLÈ`]_«ú1XÙÁ Ü•€åj•Òj€â–€:ÌôaŒ°•ÁAz­Ê ˜òè\\ÚwUeUw­ñ7© TסêF!òV]@Êý‹fÔZÉ:Γ†I!@©p‹°@ 1~Õ¿ŒñKÍ?MGÏ¿Áü»0?õÒ¿ôè‘×ÿÏ*¯ÿÒ×7‡"»;ÕÔŸÇM‹Žj¼ü'çOÞ¤Ðá?ùüêÀ?^ÿV¯J@iàáÛ‰¡.lìË`µ`þb­P©‚€Þ2#¿œñKÌÿºIóW€³~úKÿf^ÿ‡I^ÿ! N>ºÄôŸÉM À[,6-†êŠjjþÍq‡ ¯…k/âæ[›qå÷sq¡[,Öõå×*€ÀjД·Ôªó,€ÝÕ€pÏË‚Z0ÑdhìA¡pØAñØÏ@]ík¹0^„•þÁV¤þq>.ú1¸Ô••=tE£à¾!ªn¸ÑÑóÔðM…UB]’˜¼GˆNãÿš®JNúº×üÔRþ4Íß@ܯbéߟ ô¯òú? ü»@:,(ž¸nŒèºÂP©ñË™¿Ú«_jþçuš?iÙ_®ïL£ï/wòwƒ³/¬Au~¹×þÜN½OÆÄ™j´ÆD@ïZ’Œ¼“¼’ýÿsCeNÿZ± @zè¹AvLàÂŽž ¶ôâ+›d@ÀèÍ 0#¼@Gf€¸`48ÈŠ[ñZ낞í.†Ã™µg¨ñ·õm‚¬2Tœºƒ‚gpûõM¸=StÂÀu‹Í^ËôµŒ_oÉß ó?Ehþ¦Jÿî׃‹£¶[ö£ ßlnð£0ǾõõàžêC7Q=Ãòò½<Öövá/:Êÿf¯J‡²ã‡0'¶õb°­—‚¬‚³›Z 7 HÜÐ9 h&Fx’Á[âJÀ܇æ íç4jþw[Î@qªo¢l×ud³iÿ³Wººd UZƒ% Ð-…ï[ËôIŸÔü“5Îû*š¿¾¿ŽhLý»_ÿ‡B'ãöß@ûÔ1[L@ÜÇkPVRIÀ=uÙe(øëBK (‡€øüu7@}àÁü?t`}/;z2Ø*€(µ¬ª¨¥M4’è­áÉ&b„Ùpë?\ÂôBjþw{qMjsËQ™’‹‚ygpçÕMH ›f Ìêák_k­OÜëW2~­Ë~V™ÿ ó?à".ýap晕(½˜ã“?·µµu`¿ØàQ%6 üÊâV ìÕï¼èÙµ¯ÿÅ#¥‹"ãð ³›ÏÄØñJŒ‹ûº°§ƒmÈAÀfs« ¶¼Dš h$=Ðh‚ Z5€ wá§/·¡²¨’š?•§êº²jÔT |ò&FÆã«‘Ús2®ÅËn\ë¬,½&ObøÒ Eã7Pò7eþj9ÿþ保Túÿ9r*Òç$¢®²Ægnó²ŠñõK ð”Œ@À›ÿ˜„[×s)4 þpÈR¨ ˆÇ¡ž މÅc6ßÀóÂ_?=(“ûóæ¿£'ƒŸzò VA€6xá E1¦n „ƒ€ƒÌAjüTdª«G}e-ê +Q¶;y?FÆÃ+Ú7©=&áª+_%è¢mð×:óÿÜU¿öIŒÿ"á«ÿ¼ÊŽ¿7ÍŸ¤ôÿsØ\þl'ª²J}þç6çvF>7Ï4 ý¥©­l»È«ßyÕúKÈïŸ`Yú_Y ‡•}\ø«þ¿Ù ÀcƒíæÄŽ võ`°]-ØDX ‚€‘¹­ £ ‚ó-HœiQpL g0x"N-H¤æOe¾YR…ÒmW‘;þnÝ¿ ׿!µo®ú³º ]Óðu˜¾‘^¿VÀÒž¿’ùŸô·¨ïßű¨©¸øÁ6”œ¹Ólfo]ËÅGÌhð3pîx€†¾[q% þ¼À(äp;˜CÜ@îdh >/˜ÿ[ѬéíÂþî ¶  H«æ†YC ‚‹½tKÀ²ô@‚jÀÔÁ‘²é5*¯Ý+(ßwì1d ]ƒ´?.ÀuÛL\ë6Q·ÙK _Ïk_O¯_éÕ/›îGbþ:†þšÄý ¥ÿŸ{Æãįgáú¸ý(Mnþî”Séxá7.sñ† :gŽ]§à1ðØJK <ÃÅn,ÞŽŠÓµþ'O>cÇ“ƒìxj³û¹p¤ƒ=P€m½3¯~ñ9_ñU?¹Ë~Zë~MŒßß…SQÓpöþŸ:lîÌIBÙ…œÿgsϺÓxÚfÇP‰7€-KNPªà/óMïÿgsˆ uZÿÓ;ølŒO â!`~_ކ0ØÕ½Ñüµ `»~ê%z«kûò5ÂeA9Xí…Ð ñ-EÌH«$-é 0sÐDœ_sŽš?UëÌ%ȯ@Eb&J6_AÁÜ3¸3f2>ù éO­Fêßá²m&R‚9¢>²Ìù^±’4zþ‰ÄæÏ4¼úÃpîçãâskpsÜ~dÍ?ƒâã¨Î)kU&W&ìo˜3Û ˜ëØ…ÚXåhV(ýx‡)( äp¥‹7"ãð¨I i<‡'ÙñC¨?‡0ØÝ±Ha@i@°¡%ÐK$Jìí½à å¢à +b„å·x5@€$AÐHpfFqH^u–š?UÛƒƒÊT§¡üô”켎¢õ—7-9Ü1ܶ ·>ÜŠ›Ï­Åµ¿.ĵ¿/Æ…ˆé8ëÇâ\ÈDœ dqÖßÕPæW3ýÓ²½~'ƒX^ÝâqîOópþ qééUHýxÒ8€;3‘»ò..<é%xdpÞ°cO¹ê@0J@VA€þ¹V‰Ö R Í XöÇiÈ<–NÍŸŠŠÊkÚ2ï¸,¨A€V€€V ¨%¯o"€œ ì@‡åæ?Ä‹!ÂëiOŽ28,€Ü2Zk‚Jë‚z!`“6ÊlH×U!`…Áó Zgg æOEEå½xúŠjÌøvžW=­qK™Þ i¬8O¹A> ³tpˆ-OÚbñÀ  ø<ÌýÁ A¼ó’ÂÀ>Ø'€U0°]a@p›[…¿Þ":2ÖŠn ¬V˜ X©qb˜x@°¿¾Ì€¯®¡æOEEåUæ–bìËKð|ŒÝŒVÜ0Ÿ^ÔVí¹¬†¿dsx=*ÎÒÀ!B;ᡘX,êåÂéG‚D$“m£ÁA†b„=@ýªàZAkú²Xk 3`¥äª œ–èL\ù§éÈ¿D÷ý©¨¨¼«Œk¹x!ÆÑVU¶.i]ÕËfùAëóÊQ@Z ØkáA!« `“s¤ÁA+Öw<µ •4î—ŠŠÊGÎòjØßYŽ—cì ð¢NPjŒ:¹™E–}žådჇ¦cˆ-[–žh{P›taS›@q ‡m½Sq^Þù#×/[Ø ˆ¶ ¥¦î^†¯^GÙ1ϱ£í@]NŠ_ÕJ9,îëÄÓ6kVá÷ÿçõpàR'ü]R£•€ÌìÒÛ0pK@kC@ Œ@€¸°÷Õ5ôõOEEåS%NÅk÷9›ÀK2ÀRPºè€ã¶Y–˜—UŒæ_ÿC¢ãÀZßö ¾²Åonneü €Ç-Úø×àX|‡~.$ù¹š€Q ­X9¨Y 0uPH_5Àh%`EÙ'nQó§¢¢ò©VpûñJŒ/Ûì ´ § °~®u!@‰¯xxØè×– ¼´ m ÜSöÝ&PÈa\˜ÿ‰1O»ÿ?ôs µ3ƒ“ à†¹áÀc&æÔ6öY r3â[Ûz5® Ša`“Î;ë„ø`Ùá~Ú[‡ÞÛ„êâJ TTT> úꉹxÅÖ^V™xž  ðŒ-GwYÓÒ,+©ÄW/,öð±áCfãNzAÛ€ÊY‰È n<œÄ¡. ïGÆáA ‰‰Å Q±XÓÍ”..œfNú+ƒÀ ¹j€IPªì³09°ÉQ¡žÚ‚r•€MlT€€õ}¯ ê½#°ª‹ëk/Pó§¢¢òíþV1>øóÄF@€ñV_H:bMÐéÃW1$:ÎÃÇ^ýŸxË3ZTÌ9Ý$0#˜Ã»‘qøwŒ5ÉŸ„Æ!¹‹ §ówë¤ µŠ€\5àˆ "HT«ì!4#¼Í¢¶€¸%°F¡%àñeÁ}ϯ@en***ŸjÇ¢xë—.¼j³ãAVTž‰±ãæ"Ý‚]ýªÊŒzaQ{jPoOi{Pµñ2òÙ( äÒÅ›Qqx8Æ|òßc1±`úؑډixýK!à„øóÆ/†Òà CAÊW÷)¬ î1#¬uU°‡' Zß[¹%°F¨¬V©¬ìÇ u%Ýû§¢¢ò½&~¸¯ÙìxU\%à%«b9t>²3 M¶]>{ Ïýš‘õ³Í‹N´=¨9p½&5@i ‡ý=¼e>è?îÝÿ'’;»pªkS0Z †€`c ‚{|xK€6 •€ FÖû1Øþà”Ü( @EEåÛJsi¾x`:^³Ù à  LøjjªkM¶Ù?^+ïgÑqX ‹Ã?Iþ Nwe C€ÞÌ€#^ ²2FXÚ0š H&ÿLÍŸŠŠÊçJÜy üÃëÈB€B6€&ØìØ´à˜é϶«É·ñòŸ8E˜#dT”Y· Ðü°÷ò»7@E`›Ñv rþ-€ê€x$ pâ1“ðHL,ÞŠˆC’?ƒ3~ ’ü×Ù×0ìÏ=@® ·@Ò øê¹ȹmî€óÓušžö㇫pè§ 8²ãb€™§< 6 cÃxÈD»z0f ýœñç•$¡`ˆ[@€Õ1Âr@\ Й¸ë¡…(»UD€ŠŠÊçZ0~Þˆ¶7+ZÏÆØ1cÌSŸmÉ'ÒðúÿNÔôµo^YŒå ±qÁñ¶eßìõÄcT¸÷š`ªÿ?4: z9pÞÁYO8-…?²–€Ú†€éI4´«y‚ (elhrK€Ã©¯vPó§¢¢ò¹êëê1þÙùxÃfÇ `¦ðŒÍŽÍsÌ 7Ç}¼OÚâðdLœ:¼º+§¦…mø[›Ì?_˜øÂ$<‹£â°/È…sþ<hA€VKà¤8¦šÕ/ê ²â–À–¨ÉÈØv™•Ïurû%|øNÄðŠVÀ31vœÜcüómߦsxî×.<× %_ûêåEX2qÖÏ=Ú6 .µEYèq8-„Çv<c> ³#¥k£ùŸ•€@’Ÿþj)HCƒŽ‰Ö€€}ç…­€- €}O,EŽXPQQQiiƈxS05x•`-AÐï]uIDATP®0rÈdÞÈ7üùöý»+ð”-Δ `Ø£31þíåH³µm@õ®ë)€Å®ucñ~dŠ1ÞÿÒ W_;Îû18'è¬B%@Ü[VŽš¸%@\ èn®% §@R ØØ‹Åñ7Qó§¢¢ò¹ŠrJ1îɹMà ÒYVÀó1vLýÒøçÛ¾gñtLž¤oÿ+à ÃVµ ¨˜›äÑÿç+,>Œ0C£c±ª»çý$«@ÀYaCàŒ\KÀŸáo(€€¡–€Ha@/ìS¯ä(\nêÍ`s7èô?U3hï²SxÓfoV@o+à9›g6ôùV_Lx%ž²5€¼óÀT 2 qŸ¬nýPŸ_â×{@i ‡äî,Þ6qèq[,ž²ÅâX ƒ?¦)ø1sŠ7¤žP¹.H4 (9(t(ˆÁAé1!P¹%`UpÐN…[ÛI…ŠÀÞÌCå TTT>×ôÏ6x€V%à5•€—~éÄñ]— }¾m_vC£íx:&Σ  m jޤ{œv§îíÅßxļ‡d?8/d™j@Ã\€t@P”ØÕ…S¹gŽÒ´Ç[™"h™–À–^ 6õdðó3Ë©ùSQQù\7S²ðõƒ3ð–Þ$hhÝ pCÀ7ÏÌC~–þNqAƼºC…3ÂRP‚€¶õ@ÙøæŸÄ¡20{LÀ¶XØû9p¾+ƒ”®ž ÖЬX$Ÿ\²ç… Íø"3@ǦÀùo÷P ¢¢ò¹¶Ì:‚·£í²ð¦Îy¥¡ÀY߯[7óž¶Ù`¨FÀ mj¯ä!/tj°¢0Ä‹=¸(À…®ê•¥j€Ùà #-£ÁA,XÜEÐГ ¸=j 2·\¢@EEåÛáòÊpï¬ÀÛ6;Þ¶Ù5«FZ/ÅØñÓbýçyÓ.gãçã‘ù»@«Ð6 (çŽ51+`_  W»0¸Ø•ñË @X<åg}Œ°îÌ€`ë ÀÊá}žƒŠÛŨ¨¨|ªã[Îãíh;ÞàmƒUµVÀçÿž›—²u¾-a÷ahŒÏÄÄ醀wHhýP{>y}§xž°Å╨8œòcpµ3ƒKA€lxaK@wpÎA=éFõ¤ºAàØ“´ÿOEEå{-úv+Þ±yÀÛ¶^бƒûH¿ _JÊÀs1<+I@«ð¼P_YƒÒá;dÍß xÜ‹/Úq¶+ƒ«]xB@Šh€bf€ °43 Ä\‚àn‹ç.~·•Ou+åFþ=ïÚìxWz•ò^²Ù±zò~]ŸoeÅ`†¯Ã³Âý7è©´z¨þ骢ù»/®ëãÂÐhþœ¯‘@¶)]\€.ÊTΛ…–€Õ™ÞŠÞmQ‚àΰI¸µê<***Ÿj÷ü£x'ÚŽ÷„ À;: àuÂVÀÇÿHÀµ³·u}¾Þ–Œgmv 胀wœŠáOÎAÜðµ­ê²ËPø×…ªPùýœxÜ‹Ç ž^Õ݉k]\éÊàrWOpƒ€» g8ðŒV‚ n 4Ô¨èMôVŒð¾_MGÙ TTT>SaV œ/.ÂûÂëÿ]xÓ¼mǯ.ÖõÙV]‚¯†ÎÃsÂù`9Ðj<‡·ïŸŠaÍ„a­°P:ì'Uó· v;‘Ö™o\6ÉFc„M@€ä iB€Æ†€ÔØ8ü÷ùÔü©¨¨|ªÓ».áýh;Þ·Ù›@€VàMÂVÀ+Ñv¬`÷¾ÕÕÕcÍôC æ/dU€™Ñ¯/Áį7·.¨\yù}&{ž°Åâ™èXœôwá¦W*âv€‘UÁ3ÌhUŽéœ 8lâ–)Æ'½Oóÿ©¨¨|+_R‰Ÿ®k0ÿ÷½kq+àóû§!ãJñç[úÕ¼öGÏ+€øö¥X;çgl]z²õ@íå\ š¡iþfàјX ãoˆÀ Wº2¸¤$-­5A%0rPHmMP ŒÒZÔ!܇CjüQ TTT>ÓÕÄt¼os4 茶ÃùùvSUe Øákñ¼p8èyUÐnŒ~u1VL=ˆM ·(~j ‘ù»`v'ÑÄÄâ‡~v\ì ­ƒkpƒ€\”qz`²¿ó¨ÖÐ_ 8äþ6˜—\Kà€ÖA!wö„NB ¢¢¢òÕ|Y]=Ö8öà ¼/¹V€^xûW.ì\Lþú>¼í<^d—RW¾zq!¸vcͬ#­Êã›^‡š€x¬ìëÂS6ý[ÿ‹é½¸Ö™¯\ë¬.I¶ä@@Wh_ãiáÓ~ê-DÕ€c ñÁ¤³Jw̆í‹™ŠÊ,zˆŠŠÊ7º}-ûà=ój0â_SQ’_NôÙVRPŽOžéq:X­  Õ x*&>\…CÛ.àç)-jŽe `ÐL]`&àÁA±XÓ͉ôŽ ®wbp]€ÔÎ|( tUT :OpU0I þäÁA'ÜR¨SØ8¢wK Xýªà>ŒÄþÓlÔ×ÖS ¢¢òÍêßÂãøÐæÀ"iUÞ!ƒÀÔÏ7®-œ°Óãt°è©L½Ù…H¿šÓò ø…õºÌß û À?OÀî@²:0¸ÑI€€N<¤ÊT®[—´¶ €4Fø´ $zû¼°Ü\@PcK@o‚ žà Ä§V¢¾Ž•Vÿî㛿O#¥JÉ­€þÀáüÏ7ˆ>×.ž¼‰÷þ<±ál°^ ¥JÀÓ1q`¿XKI·p!ñfË€úÒjT.9§ÛüÍT·Åâ©èXóoR¸BX 8oâ t.àtWë3Ü-£ ‚û­¸%ЃÁåñû©ùSQQùD–&bX”Ú ­¡@-øæñÙ¨«­Óül«­©Ã¸y zQ'(…Í·ï€{*+ª[.TíLEñÐ5>€GcbñzdNú¹)1\ïì s]È EÎéô³&3à¸‘Ì ÐØÓ›CÆÒ³¨¨¨¼?`ž[Š1ÿœ†aÑ ‹&‡€wuBÀ›ƒØ2ûg¢ÏµåÌ^¼$¹(†€çM´–N´þqeù”¢GW23ðð XŒhGr·;z€\5@i@ÐHpéÌ?ó™Fo  6– ¨{ûÄ#w÷5 TTT^×áUIøÈæÀG6G|`¢ ´ðñŸ'¢8¿Lósí±4|ø×É …£­€§mqØ0ïXË€üˆé¦ÀÈ ÀCƒb1®¿—:3¸ÝAH!@©% vPÈ,x%F˜°%pÐBØ?`"ªrË(PQQyUÕ5ˆ{j>>À Þh,™°S³ü_YV…^^Üx68¦)˜|&&6ŸoÛPÈá|7ïDÆáß:àþA±˜ÒÛÜêÀ ­£:¤vVž Pk ˜€³^¾%pÂÄ-½ ”ppð4ÔWQ ¢¢òªŽmHƧ÷1øØæh€q+à‹ZoÅØqí\†ægÚ f/^‰ö<¬T0Ò xíO’Ž\oÛPÈ!µ‹÷#ãðøçà ˜ßÉ[¤wä@ Ô†õ@€VK@ø“m èÍ ø™ =ÐÝ0“ xzè*ÔUÔP ¢¢òšêë×Ð…ø8ÚÁKR0Ò Pʘ1b*ËÕ‡îξŽÿ<±ÉÙ`%xAGÀ ?27¯d·}¸fþzßl t"¯‹›"P¸ÚÅx^€Y8e1(µ‰VظðÉ6ÔU×R ¢¢òšŽ¬Jˆ_²øD íÀ‡:ªï©½as ùPªêçYîí"Œ:ßó` (mhU¾}e J‹+Û6rHa1,Büï}°+ЉÂ{y0 J p¹ Á†@Wåa9ÐL43 ï¼°ƒÀµ¸C4ˆŠŠÊkª(©Ä÷ÿž‰O¢ CÀ0…YÒV€ì¯/CizòßÜo·âµè8h1ò@Ú x&ÆçÇk¼ò¹Ú¢ ?ˆCu@<¾·ãþAˆÌÿ±^‡ü](hÇ ½£ ˆ«•€‹:¯ *B€cŒð)?ë[Gu¬ *€Üp`ÆÂ$jþTTT^Ó¶)1\dþ ÃlfZœÚ¥~ÓdßÊ$¼fsÈž ¶¢ †€9ßÿÔö /ˆâ1"ÜŽÀbbñrTNø¹/€{ ÝD5@ ®(¤^R9/løA—öeAó w@P y»S)PQQyEUeUp<>ãª`´ðŽHÌ›ËUWÿ®ŸËÄGŽW<¬Õ Ð;°2áÐݵñêÀC1±x‚ð àë‘qHìâBÞ½¼ùßêÀƒ€R5@­pC©*«‚zZÉ’á³*—ϨåtU¾*¨'Tu…‰âƒHZeWò(PQQyE?M9ˆáQv|moŠó„­€w=ª$ª¼þ‹óËàzc¹âÑ ½­€4Z/þÚ…ÃÛRî¨ ˆGÂ'"~IŽhGJ'9÷2¸Õ^nvh„€›&ÚÒ-¥jÀÅ.¢–€uÁ$i„°$F8ÑÂÌ€£*ÁAG¤·T÷…0¨Ì(¦@EEe¹ 2‹`l6>‹²ã³èFPª¨ehU¸·”_ÿuµuXáÜíüºhUÔ‚ÄðуÓq#%ëýx‚‹oØq¹#ƒ\2Ú˃@zý³©¢à «\S8/¬V¸ 5 ¨·-`23ÀmþÒŠÀ1ÂÒ–À±_ÏBU6 ¢¢¢²^«¾û ŸF;ðYt#hUôBœØvAñsìàÚ³x3ºé½]@䆀QCç£(¿ìî€ò@ë{»ðl4Ÿñ¯ ƒc1º¿W;0È»—Áív<X7Ldˆc„/X#L'5n  ’‹Nzt9j +(PQQYªÔSéûׄó÷„…*A@LzwJ å'ÿÓ.dâƒß²ŠGƒ^'h¨U”R­öÚçj‹€²@Ûz»ð³*˪ÿúR¼­}6Øì<I+àÇ7–yý3Õ»kìQÃgosx5*ÿ!€`jÿ›Cv;ÖÄ0 ·}ÐPl8/ÜÕó†ÀÅ®’Ë‚V†ù»pº«öya]Õ€@G)PQQ™TNjÆþf¾Œr r˜h¨_ üöþéÈ¿]Ôð™UQ\‰Io-Ç»îÙ³Áz¶Þ0øÚ}NlœósëÔÖ£øÁe†ç>ް«À£1±x,&‡]¨º—Cv{–‡€v¬|5@¡)@Àm…–€ø¼°Þ;×;‹ª]äÏ +å…€³œQÓ~t5P P€€¬¥ç(PQQRUY–Ø„QQNŒ’#­%>Ø…3͵¬¨ o¯Àû¢õ@µcAV´´Ž ûÛ\OÎlåÜS¹ö"òû'j¸:U7މŋQ±8éÇ ò^9XEh¬°¸cp]ð¦Â´Ž Ò,ºÔU¥% 0 xŽ APö pUPm@ð„ŽuAZ ¢¢2ª¤ÍçñU” _ @Æ*“ßXÑhþ…å˜úîJ|ÅG@t0H|:˜¼ð†Æ@ ¾xd†O>O}3ØñÂzÝPÄa~?'žR€Gbbñ\t,Žû1¨ú‡Üö,r;°ÈîÀ"G€€l%PÛ® Ê´Ò f\]”Ë ¸Ô•Áe™$1ÂâóÂIré&2(PQQ™Qi^âþ6_E9ÔÕ¹l€‘¿Gúþe]VXŽiï¯Â‡Âùà£õ &©­L¹±í@mJò¦ê€Ý½ø«€ëA9XäÕ€l¹–€Êª ÞA=àÑP«h@À•ôÀsþ¾Ï Ȧ@EE¥wX¼Ø0n¾™¿[âY£CÒ­€ÝsŽ ïcƇ«1,Ú=H~6ø}•y€· B€¸ ðÖ¯ì_{¶í€{ÊÆîÓu#  ˆÃµ/DÇ)®ª@ˆÛíõ€™à 4Y².¨33@ r(PQQéÔ…ÝW0þ×ñø&ÊÙFI `¤hÍL}kjªj‘{³qOÌŰ(Éf€Ž³ÁV¶¤0ì&£ »¤m@}AŠX¢k +˜Ã‘q†*ºªíA€Wc„»z7FXv.À°@€ŠŠÊ‚ÒüÃs0:ÊÙÊà05øí_'#ãbn_Άý‰¹øX)$Hg@©ð–‰VÀÄ×øì³Ô§ÿÁkÝD^ÿ)ÄÄá‡P‡¾­Ä[™ …9¸BxK E´Z§ ´(PQQ™ÑÊ‘›0:ÒÙJ · 7 xlõ\<˜Šñ÷OWÌ =,Ö»:¶Þ$zc°;h›€z€4!0_øvi_žTÔ-•-¥–€©Ì“ÁADà§>hep\;€©×œÅø_Åct”³Abh: ¨¯ 6ÿ•ßnÃŽéGðíÿNÑÌÐÛ x_G6I@Ð;¿a‘q-§pO}Q%J^ÝH<p°'ƒ!€{KÀ ªÕ`eŒ°Rz 7b„“óÈc„s–Ó***måÞÈ÷À,óCÀת ¯ûÈlLk%¾ú§™ÐäV€—[rðãK‹QåóêÍò 6%ù÷Í"ʸÂâ¹hyx,&ÿ‰‰ÅªI€t8p.@«fñ-Ë1–ßð'ƒ€ìEg(PQQijÁÛ+0:Ò‰1  _êáõ?êW F rjÞ ø„àl0É@ ÙVÀî¥'Q_¶ î©Þv•¨p;˜Ã˜0»â àŸ„sÀuÿM$Ð÷²>ƒ€$ÃJ ±!`:FXc. ãǃ¨¯©£@EE¥¨½ ‡1&ÊÙ Ñ*𕉭€Ï£µoh òu+àÍÁNÜNÍñégh³þf(ŸtyÁñªs9AüiàÇTnl3âv€Ñjt4vK@ ®t5ž`Ô@ møvÔUÔP ¢¢’UÊ®Ëøî—œ¨A€ÜF€žV€H[›h˜¹à€øÖ ¢´êî€ú²j”¼²Aµ PÈáçž þãPª´óþ[FsKà¶ ]¼!„Iƒƒä@àRWy2 0 R ¦¦µõ•µ¨¨¨š¦ÁfaÆS 0VbþJð µH.*@€ZÒl€ã?¥øüó³ÙcÔÝ(Dá?«ºÂâ[œì€à†iŒ°\[ÀÈya1¤{¡% —D·äZbÐ3pJ8($®¤¾½ ueÕ¨¨¨šl­¹ c#Ä`¦0BG@:ð±F+€Œ´>ø=‡œ[w¸§æØ-äGMW¬Ü æðm˜ÆÈÀŽ@êM@“¶€Áá IpU1©2·®iœ&½%ÐÐð“¯$ j¸% ³%pñ‹P›_A€ŠŠÊCǟ¸HÆE91.ʉo‘V¾6Ø¡³ð‰*J°`üvŸNÿ·(pOå†KÈë1Iv0W˜küå¾ ØÂoäYÈR8/œ)4#œ¦£"*ÀÀ5¥Š€ h¨n H àÒKQ[@€ŠŠªQצá»h¦ÁüÇ úÖd+@o%`A%àƒ•’[卑¢í8w(µY>;[Ôo–ò ‡e«¥Žõ`ðР Mào÷MÀìž¶cQÐÎ"¤æ´3~K@kK@iHÐèºà•A)œ7#, 8Ûo ª3K(PQQÝàžü[HxxÆG:1>Òézª£‰ªž ÿl°]5 è#ͽCbÿä|äß)¦àžÒ÷¶5€²@WCX¼פ ð÷Á0­·yXZ ÄÁAí”c„ÅÃÞŠ¾&mèˆÖ›¨Tu«˜Õ=•%•X5|¾‹tá»H'Ɖ@/|c° çV€V@V+@- HµmÇŽEÇšís³ÅýÆ©/ªDñ3kšÌdsà8ñ`Œgàoƒ'`fo :²(ù,‡¡ÝA}UÐ1Â7ZQŒpYÒ TTw¹êjë°wâA|áÄw‘¼ÆË€·Z_8,ÎøDG>€™VÀ[6;†ýžCÚÅL I—óPðçùyåñØÑ‹Áß$m€žW_;îtbQÔEnGï@@ŽÆp Wo Vôf¸Ãƒ.jÌfl¾L€Šê.×™ çñ}”ßG6€UàýV€CW+ÀìÙà¥?îðiò_«÷ÔžËBÁ ™ PÈáLwÏD{¶4£Úq£ ‹7¸ÕÞ{ `Å-%0Z«‚ Õµ«‚¤àì‰@3þf¦¢¢j^Ý8ž†ø?OÅ‘.|ÙÄ`d€´`älð§:[Fë» ­¼mÇكךõó²EÿfªÚp ùaS‘Ä¡8žêÀ¿DU€MÀ7Jàåj€7o è…31ÂõÆ+ Þ½ÆSQÝ¥ÊKËÇôGçáÇH'~ˆt5@€¸ VøÖ‹[¤­Õ[„QÁ¤­€„áëPY^M@u˜dÉ9äõ˜ˆapEþ:¸‹áaq¸Ü…Ai{hæ–€¶ôä ·RZr3©/¬G}%¦¢ºû†þª°ð…¥˜éÄ‚äªãu¶FëL $«8ŒŠÏ‹¢‚u·¢âppmR³V¶üß\5u(ÿ‘_¬ ˆÇÑ ·Å6´‰‰ÅËQq8À¢¼='½;¨ íÈ ÀªÐ "pƒ@ã-)\ùûšHEujóWÛ0!ÒÙ ià{•Y€q:«d­‡oZÑú[ïØìp¾ºÅùeˆ6*jPöÙ”Åãf‡ÑaüShü'&/DÅ!)€EEÇxävb•!ÀÛsí’U"„«jµ´ €ô Prω¨É-§@EuéðÔŸa·±M@ ß™hŒÖq6ø+‚[V¶†éHt_ |'Ê-3µˆÏÉV󛬾°%¯l@m@˜ PŒng.9POz h¬ *]”ƒ€sÝ'¢ü\*ª»D§Wœs‡ØHb#]²ð½dÀ­Ò³Á–´tœ ~ÏfÇ„¡ó§ˆ€îýÒìRÔ=¶G{2xZ(ÿ±ÅâÏ÷MÀ‘ µp«ëó–€Zpq5@¦ wbØ:©_L. *AÀBPª$û18Ì¡pÕ TTwCÌïáë˜ø‡)ˆ‹p!.Â¥r¾h|©³ð™AhhÜ ˆv`ËŒƒ-æ3²õ…L\/@Á_àÇüïà xRHÜÔÝ…ÒNòÄ@R ðòª Ü¬ö,2Ûë€ Bƒ¤ë‚©ÂA!’¼-Ã@Æ»)PQµq¥'¦còŸ¦!.ÜÕnPnxÀw-¬ð™ÁV€žcA? ™‹¼ŒB ¦t.?ýaþ5(ÛbñÏA°°·ù]8H 3‡ÜNr;6Ï€`¶‰[Ò–€tUPPšañUA¥-5PÚ¸ñÜZš@EÕ–×ýnäaö#ság`pÁѤ ðƒÂV@C;@¡0ÆD%`”ÎJ€Öé`µ¡@€ Ep`ù;ZÔgcëýM¸;OýŽÅ£1|×ß;~ »pÈí"›Œ¦êMÔ; ¨ä®hA€t@ðò¯g£¾¶žUTîõ\Ìyxa .8d@© Ô °:*øk˜`Ùv@´JáÙ௘†›îP°J ßoÅÑqxhP,¾èÀ-Å]8ävU€NÐÁ÷éY4œ6J‚&‚ƒ/ ªl \˜€ªë¨¨Ú˜Ê ʱê•p…¹Ìß $U¾ RP€€1:‡¿2<¨]ø”`5PéVÀŠ ;[Üçbë^?ùé<žŒŽÃ#1±‡+A,J»rÈë*@€"ø~K€¸`ÌÄ“‘Æ_è6ù ÏP ¢jCª((ÇúÖÃî‚+Âg„1PÊPjX6ØúVÀÇ­€ïŸ’°÷ߦ (¿ _¾°Ùbñbt·°(óççÇC@ž¨U¼ ·Û™KÔ³*(TªÅû3¸=’RQµó/¬ÀúÖ‰àÍß r Õ ˜` ð­WG’\ T€…VÀÑlœr E~&¶úßœ‹ã÷5ÜHìÆ Â/yòü  ³4Cpá[¤™&‚ƒH!àú?S ¢j+/ÿ׃‰py€Ñ*€ZL°\+`¬Á@#­€’Y-PË·Æ=2eE¼¡‹§oáÍLÁ¿MÀîž.”øsÈà!ÀOÒ ð=hµî茖kx+FXk8ðjÌLÔTP ¢jÍ=ÿürl™¿œ¦ ÀE f[_Û\ø:š¬0ÂâVÀð_2سðx‹ý,l¿Qc?Y…cb±¼ ù Üàp-n.@ Ì&’@€¨AÀå¾SPº3•U+UYn6 Û6œiFZ,Ø 0z6xâ÷ûIšó¤·Ô¶¤UûÐù¨©ª¥àMÝu Ïü…} ·ƒ8I €p. ¹[fVÛ[Ä-%ðcóý! TT­ôå¿éà à°‚”@®àP¨(y£ðM”ßf1ûµåXôñ:ŒýM¼OZbøü×,NlJnÑŸƒmâ7l}=ðÙóó12ÜŽ´Åòe @h äjA€V„°7«í4æTZZzõ@€Ò[I€ŠªÕõü+°ñÞüÝ"ÒV€ÜZ ­üð»‰Ø2a76þ¸ã;Qe+À©RÐn WªD;0함«­£à ­šqÏFÇáj7¥ò‚ @”¶:5OK »!Ük<4È(¤æ¤žê´" TT­D•Å•ØôÁÄ‹Ì_O@d6´Zzn¸!Àõ¯HÚx»&ÂØûXÝ«z[r Ã1H;s»Åþµ²UiÞ||NwgQâ·ª] ª>n äˆ å´W RRH7xK@  EK’)PQµU•VaÓûë11œA¼ # Ö P»Hz0HµíÄÂ÷Ö àV!öÏ:ŠÑQ.ŵ@­VéÙ`q@68ö ¶¦Ž€/åµ ë{»Ä!?HJÕ€®&[Þ¨t‚b¸­·H78pÍ ]Î we‘ùú& TT-\%Y%ØðÆL g0Q¬jhA€´@~6Ø…Ý“Ž,JÄ7„Å0ÒT+ ± 0æïSQ”UÜ*>ûÚÔoäÛÉ™XúÛ)È æP µJ€t@°³j@/žV€€ÆJ€ùá4½é³7ÿ±ˆ¢¢jÁÊ»–‡Åÿž‡)á &‰¤Z ˆÐ_ ˆ3Q Ђ×ýÓpùà5Àž„#º‚¾Ò¹¨T hÜ pâäæÖSùls¿¡7>½J 1ÐR·r…¹€ ‚ƒä. Þµ¬Ì H8e{Ó(PQµ@\ÏÇâ‡æ"!œÁ”p“% L„±J@œÅ•€qÑ 6Û‰¼´|À®øƒÄ§ƒÕæŒV>¶cî'kQ^\I ¹”?ór{NjÚ"Ÿ È#l¡·´ À½.˜á…Ì7ˆÛ9£öP ¢jaºuì&æý!SÃL k jí­l= g(P Íùm)€Úš:lwì3|6ø+·” àÓh;n&ßnUŸwmî7v}f bf¨›¿»@Z 0ÔÁ‹Ð^98H÷ya/fÜú÷r€ž¦¢j1º²)s~;SØFP€x Ö ˆ#hHà‡A,¶;ö"ÿfoþUµØîØ'»0ZÇÙைo4B€‡ùGÆa÷¬#­îs®mµ¼»E¬j tj¾à ÍA=-0[ H훀²4ŠªÙUœ™sÓ#ØóOä€)*U€¦­uB€þ³Á¢*@„‹ßX‰[¢ÕºÚêZl·ïUÝ mâ`ÐHQÁ3ß^‰²Âr -A5‡n"¯ç$r m ´äáöÜ ­è©tbûí~ TTͨêÒ*ìõfFq˜Æ`šz!@k-P« Üm€YO.À•C×PSYÓð9R_[Îýosiæ¶FlŒú ƒ«Ço¶Êϸ6ù›½¾¢ůÔÕÕJ@çæ?/œe°%`epd<´u%U¨¨šAE7 °åµ5˜Æ4hªD Z¤à0p6øÇH'¦>0 IkΡº¢Úã³£¼°›ÇüÔ`þÒ­o·Äðy¤{fÿÜj?ÛÚn¤å‚³ú€ÔV;5/è=/¬·`(AÐC麋¨¨|½},kŸ\Œ¡Œ˜©Äëœpé¼8ãß³‘´* 55M>3Ê‹*°üƒ5¡¼8ÆD+`”ÎVÀ¬·W¢º²†@KS]vò£§ƒ³éZ-ö>È 0ÖdzÈýl'**_UAkëqyÃ,ø}f†2˜!H S @gÁ@ „»ÀÜ7³SËO£Váz^Y~–¼³ ßEˆV£Ì 6Ó û—)¸vâf«þ\k»jêPî8b4ÒóÌB@/V @€Þj@šÎ–@úàÙ¨:—M!€ŠÊýþ“ÜaÌŽÇÌP¦A3BÌcLµôÄ“@À¤?OŲח#eëEÙ¿[¹©yHx`VƒùŠ 61(…€‘ZšØê?ÏÚô„Úä,äsæ! P9=ÐÔ-/¬ 6lhµL&ê]LíÈ pÒq TT^Télye%f‡²˜%21è­L&ÌÐJtE¸àçÖÃsðÓ˜H?™®™šyᘅï#\šgƒÍ´ôÜ XúEÛˆ9oÛe°ò”|²ÃÄ«B@§f¸%`²@Úл&˜õô: HEå­~ÿÏ7±â¯³0gƒÙ¡ f jRUžðF+€ gà waòï§`ÕÛ«ptÎq”ç“­Ìßšö“=Âd!Àd+€øb`¤®ÿÌEI^€Ö ªÝבÈY¤‚]ZÀA!9hç ü·Œâª Ú–€‘Р´N,ʶ^¡@EeqÉ?‘=Œ11w ƒ9Ì %‡¯´Â]`Ã\Høýd¬zk%O=ŒÌ³™¨«%¿÷óœãˆµ1Dgƒåªßêl@Àw™Œ+Go´™Ï°6ÿ‡£.¯ÅϬ±Lo °¾?/ÜÁó–€Òya¹ÓÂ$ÉjWå@ oÔ^ TTV­ø¥æcÓ³K1o ‡yÌ4g ³e`f(ƒézZaò­)Ä 0ó/Ó±úíÕ82ýnŸ¾í±¿Oôh+«Â¶Ñ;å"º × Ð; @Ò øÊÆ`ÏÌŸÛÔç×]ñ‡¤jýEä²Þ‡QpP^ ÝPKÌÔÊ tËDŒpZÈ$Tž¸M!€ŠÊä”ÿ•ç°ò3°` ‹y‚æJ @« ¶(­H€ÿÖ…©¿šŒåÏ.ÅîïvãÜʳÈ:wU¥ÆZ}ååXõþÄ…ózn|éÄ8•€o4*‹>^ßæ>·îŠ?,uéE(üû"ë@ üuÜðuŒp²ƒB ‚JC‚FÒ À…BŽRQ~ÐVàÀç[±8b" `±`‹ùy‰€¨¦·àÂŒßNÁêç–aïø]8¿6·Oe 4»ÔôéïŒÓX0t1âÂÕ€ ­ƒAf*J[ÜóQ”UB µªrÅyk«„ÕÕ«‚ZÕ€^¬´Wn ˜I$É ¸Ù7Õ)9¨¨tfù_Y~kþ8‹°X4€ÅBT«* W˜Æß ˜5x"ÿ}¶ Ûˆ}ãvâÌâSÈ8žŽœ‹Ù(Ë)E½…G¾Îoº€©{¸gHÚ­µv€ÙÕ@qàû¿$ ítz›ü¼ºkþðÔ^ÎCáæYZÕ+2¼¤•è…[7:2(Yt¶Eüª9q “)ŒPµ ^ÉÃ¥•g‘<ãcàÀ§[°ë͵Xû¯yXó¹X{ÿ<¬øËLÌãšBÀ@ =+œ÷ÏÅÒ¿ÍÆúg–b÷ç[°ã£M81ùÎ.LÄÕ—q;ñr/å ðFªŠ+u ïéÕ‘iG0ñ·“•“# ´¢¬ ü*Ò«Ïøôó¡¾®¥• `±Ê¹£È æ| ¤‚ÍxP(»ƒòp Z5À dþy!j3š¿¤V¹ôú+È,¬a«ñI´ö'ç£Þä@%¥Ëõþu‘÷€º¸*ØLéVÄK! dAóVj’²×#¡áëZòñNÀÇ¥P*ª»âñ•_Žm£¶‚%ªÝ pHÏ´¾ÓQP:lÿß©¸sÙw-Á+GÓ0ááYø$Úá1NlŸ~Øg?öÝùÑq¹Áñ¾UÁ––Ø«‚V fþ~ê +›ÍpkNÝA^È䆯iNeß @Ee¡Ò§cÁc À„« "©x³`ÿËT¤Ÿõ]NÉÁ¥§0ê÷†G;0<Ú/~Ã!ïV¯V2ŠQø÷ž½s]Z@^á-­aµÁèÄ xÊÉf3ÜÚó¹È˜éñõÌëÈ¢"á…**³Ÿµµu8<ù0â£9â‹N•YÒV€Ú@ \+`t”ßÚ\HÙuÑ'î+J*±øËMø4ÊO£íø4ÚŽáÑÌxo•îäD Fªù®  Ä[ÍšÞðÔS €[=P—×<xuYe(|xe“¯g^G“i`•Qå^ÉÅš7Vš>l¶@²0n0ƒäŸ|cþ×O¥ÃñØ,|eÇgѼÜp~ßUŸ~æÜ½Qš¹e¾­XqP¨n He!Àà-[¢[ù#v7‹ÙÖT¢øÙõ _OU+.P ¢ÒS|am2æß?[öj ¸«JAßGê;<:Ò‰+’à‹jÈþy'0ú÷\ƒñ‹õÍŸ'¡$¯”€/sò‚¹–¤«‚ZÖª û²`f{FqK Sˆ¾­0Ñw*ª/çùÞlë’Ïv+æ0ä÷Ÿ‰êí×)PQ¨èf!v~½“Ã]ºÏiH!àƒAr­€Ý“zýÏwyQ}¾#"mÇç2°%~jkê(ø4Yëþ¥¾+V›#=P2 ˜e"3à– ä>·¡YŒ¶|òIU°Êï?Õ;(PQ©N³o»„C594Qát0I%ÀáåJÀ/›}=²ÿ*&=³#"ÅësH;“áóϘ»þ7mÅôDäõ˜Ô|@ÒP…€fº%ÐAkK@93 £]c%ÀB&£lí%Ÿÿ!¨\s‘ÿZªAÀÀ™¨ÞyƒB•D%Å84a/¦FqM΋!Àh%Àa¨ ~+`|ŒËëæ_W[‡Saìï'bd”_â!Àî3ß^…²Â Í¡â!«šÜ¨ ÚÁAÐÁ÷ÁAYB%@é² Òº`î>.ƒUJG^àDÍ ¦üЙ¨Þ“F!€ŠJPêΫXùøB$„Š/6…€x…*€¬*m(m|osaO¼wW}³¯åaé§ëðe”#Ej„{|‡ó{¯4Ëç ýM ÜSµãò$4/x»%Сœ&ØÈhÇ ðÇC>ýÃP{­ù\ =cÑE~…*ª’Œbìøt³ÊÙà¦UEˆ`,o(e|osawÀ«wןƒýÁYø2ÊÙFF5¶Üðý?§"7½€@³þ†~y}ó€Ùà V#솀ÛíA 3l&ªNú.Œµõ(~s Ù e¡°ï&…ª»RÉKNa៦cš`þ²`a+Àia+`wµ^Šû®*«Æš1Û0*ʉQQΫŒißücÍöYBC»_ÉYÈïŸÐ2 Àt5 åÅë½%ûÄjŸ¶Ê'$¯¨´g‘?`…ª»J9çï`Ãó+0=ŒÁô0¦ L•©øº0Af Ð »™ý^ Ù¹rä:⟘Q‘N|% |ýÿ·wžqqgÚ?®5d5«÷¹ÄŽc¯í'Nw²›8‰ãĉ7q²É&ïo“lÛk'±¿ng(’@B€ E¨XP „@’ QDGô)Ì mêõ~˜t8œòœ)Ì÷‡ëçµMKëáùs_÷}]ÅàÞí.€ ËáÄà[E¡†€N¤,n1Âaú?š¸LlË©ößC7@éW킵ˆ €4µ5Ø;€Kï ù¡ì^Ç€ÈY±JVÀNu@«pNs1 ÿ°i¹ïà¯qøßÍÛÆè>H[9Ÿ ê÷úœ¿µÙf„þ‘ÄЂ€ù¾¤†^½0+t†sèZ•Ké½ ù€Ø›ûÑÿl»¥â€ °ÐNiêÉj¶ æ`2¾¸‰ë8$®ã°{‡ÝPcHF3«à€>Å¡òxU@>Ÿõ÷B ÞÞ¼ o¹%9øÓæ­VûKÀJt*C  @'!¸ЭÀí¿…Ãl™‰ù÷gÅ»àI¿b,9 ¤©a‡ÛÐYÚŠ¼×ŽaÏ:{Ü?v1@€W þ€÷àãͪroûýsiê@Î{gñöæ(üuó6¼í–2Œµ¾q»ƒ ¤b,uCè!sò@Àd°Â|Û 0ücbÚù†÷Ý©Y ”0ÃÛ©@ˆ4‰å´wzpñ­|¤lÐ i‡$7!€j­µ¥Ö Ø…Ï%¢é’ºvظSXßÝ7ZìX¬€¿lÚŠê‚»Aÿ~AÿÒ‹ùÁ…ÍÐMdQŸ¦Z–SÁ Ç÷xa tÍà0’ø‹íF7ô[ö¨«fæý:ua ï  MBŸ¿g;Ëö褬åì¼™à Øõå=è¨öïQÏÝ>dý5ooŠ­ƒ+àõÍ[qà¿Mxì/«,v þï¹ÐÖ.9¡×%Ðë¾ð¦P¨÷ñ½°7þVÖôê iˆšÉ†¸RÀá$ …¼FôC¨;X‰ÃŸOÄÞµ¤¬åFŇá`·Ÿ¬€X?[Gÿ3 æ^³ß>{æTäTƒ{~×èÃÏ—7ðæ†­(?^ßèC åƒÕj¡ß²;t!@.3À×B¡€@ŸHphz tΈ‚á•Ü€ï m/—Y¬dü½ ÓÀüÇB @÷Æ$’Ï ~ƒVÜͬDÖWöbÿ ö­ÕŒ€‘)À™)€Ôi Ä&~¹ Ø…ü¿ŸeÐê·Ï\ûÍdüöÞÙ…wD)µ6mÃÞ_#D~@ ƒgTCÊÀäÓ‚`ÓG»x“€î0FM`C3fô.M–=2ÿ¡Î Z`$‘˜~°±¡9·§_ÊDê ö{´ö>ˆNd `÷zåI€øZ´mcb‰Åõ´ë€~ù¬ èq~çe|ð™˜1­wK ä&ol܆²#!ó=>r ý#0ÿ8+´@Í•@¨¤ CƒÂÜÖ€t -Y1Ék èhà·§åÁi&;˜^Σw €Üg›ÍÙ5(ü餯AÚ R×hpÀ-Ï@X÷X&ÛU,ÊA@ü³ñh(öÏŽÝjÇ­ìj$|o߸êàwd ௌ“€77mCʯ‡Ô÷úp(-†]lƒni\èC€šà 9!Ö%¦0 @@ïÚDØôû Yò› _/ N*¦Úp Œ_;[EA)(KN- _9‚ÌMqH[­}üùÚ/RûIP}¸A~@RùãLtWwûåsÕQÙ…Œ_qm_,„€¿y›¶ájýôOÀê |ºùšÉ1 ð%3€#¬”(€ý×2á4n¼nüö!ù %•`øô~ØÊ: HâS»÷ξ˜CŸŠCÆj 2Vk¾ZƒtÁãÏŸð÷¤ @*@ X»b”Î7lCÁ? `ê4ùüy2÷™‘ûV¶>‹÷6ޝ æ€/VÀ››¶a÷Ï2BîóOŠî„á[™“c àK ˆ™[@Ìõÿ&/`ÛöÃ;Ë¡[+ÿ{%eHüuÆÃr¬– €8ûªÝˆš„+Èûv®Ñà ûáç+Ý=H“€9+ i­t6€Ô>€¯VbEEf…Ïm~Ö!+ŠcKóì¼ïî ø‚Úà*LÔXï<ƒ['oLZ¢.l†~ÕÎÉr–€?b„ìӀYÑ0¿9 *§Ù‚þgÈ“Ê)€6\ý‚8 ïºA@òï§ ïŸGÎS»‘¹ZƒÌÕ®Çß#!¤‹XX­‰]€D/¦¬V€f‡ÌŸôyäo´àZêu$~'máðÁ¦(w_@Þs· @ þ¦b úÛ¬üÌÓ‡G͇ìoEÐN&P8T„€ÙAìPjtŸ vGÆb`Çõ€|¸†¸2èÄøÕ ð¤šÿR4¡m‡¤)¸¤lw §¬ —þó8Ž=²GÖhph•K¬àµ°ÎVÀ…Ú`Í£Š1b÷¿WNÔ­Ç—3°õáh|¸QX¼mLm°?­€žÞ»~N%$ÆÎ8à ™“ Ô Í 1HZ=KvbäT#ñÿïþϦŒÏVð" HL¦—ŽÃÑ5@@Rõ ÷ !õ& ¿GVs8²Ê¥Ãnñ!@ 2VkD™­€uꬵµÁž)@ò—“pׇÈ\‡ÝÆóHûñAl{(Z´0HXüžJ+@ Ž¿“²ŸqúP©µŠZ ß¸kòAÀ†ôÀ¹¡•¨•)Z=+wÁr¡Ýï´áØ«Ð-Ž Ks‚ Àðð^ØJîä¿ïGÐWÖŽoŸÅ‰'pt%‡£+ï?þ|ð@Ë@¸ Àj¤ÈœJYñª¦Q(øû¯ê·[íh*nBÚKé’bð¾ÌÀ+à£/Ä£·QK0¥¬€ONð9=0:èËr–@ï¦$X+{ýúasöÃðéäñ1ËÞI-Î%³š €4ö²a Å€æƒ•¸ð£ÃÈZ­Á'+9|â~ü…pXb  hˆœ*Yr1ÁrV€lßÀ!ý[ûÑP þ¶ßépbÄ4‚æ‹ÍHûaú˜¤@VàOD!@`HÙÛ¼ Û…³qBúsM4oÏÄþýÈÔ‚€DöBÄP‚€Q˜¡ö³`o3úõC7_Ý¢Xeðñ÷dðÃR8ýeJš¤gÇ÷LèÌ»‹›oœÁ‰ qÈZ¡Á±[Éá˜]¥ ²VÀיּ„@)³v?¶EïžÅpÿ°êÏ€¹ÇŒ›Gn"åë)²]‰@>ð ‚€è¯&bØ4L0%‚nõÀð©Ý“|™+/@i¦öɰ·úœ¦ô?±oü©/ƒùç§`o6L3 wšÐ]Ј;QQðT"r–i½Bƒãnñ!€u Àb¤«´RT$J¥ŠM²^ÉDÛ¥VuÿÞ;¾º>\I¼‚ýßÞ nýøêà­*§ïóö|±þþPªNׄüç˜>|¾zttÆN^P8Ô*À ‰B€ðT0Â%Ý¿¦ÂÞ⿇ԒS/¾<©Œ†/„íbAÀtxôOÕ£ö£ (þR N,Bîr9Ë9ä,× gÅXN>Q9`€@[ü‹€]8¤?ŸŒ{®Âªbòe²¢åb3 Þ=ƒÄç%c‚•jƒå @Ñ Ø$o¤þæ¬CV€)-‡¦_äNnðõJ H u× ÷É\ hÿ5Õo“§qƉ×.û٠Іk _‡‘£5S-¨§A‡ŽÃÕ¨y¯—¿‘м¥Q8µ”ÃÉe.€ûp\Ħ¬VÀAÆ…À*³X qK ξqÚZöC‹7SoàøÇ4’, ´>ðá*`\8Цmè¼=9¢¿éCékJ`«ý%N]˜ÇZ(„à åà Ý3ip´›üòa´]ï‚^,U‘TÂP߬ ¼U §~˜@`²~±ÁpõZv—ãÖïNââ³ÉÈ_Æ!o ‡ÓK]âÀÉeo à‚€ãËÅ­±IÀ•“€ /&{º$ ƒÖió“Ch9ׇ]9Ã6lEkqο_„½_IFìÆ±=ÑŒµÁ¬“±«ÖI€ ¢Ï3ýÚ¦ˆ,Çj =µ!@éÁ Vz ’%®îÙ48:̾ ­ ½S,F>4*Éø•ðWõL–Ÿòë´hßW;¯ŸÁµ£hËNä/áîk)‡<·Ä àÄrNxpÔÇI@†ÊIÀþµÊ0®6x-‡ÃßÚ‹º¬Û°)ŒÆvz«ºQ{ ‡~”„Gãý" J“€wV€æË‰0´&Íg•>°þÍ¡J&?0^ ( ¡K@ëžôILôŸÏðK#Ÿ£Íˆþ'öŠ/L²Ú#jmaèoÇÈQ깟ð‡m0W÷à^ê-Ôüå n¼|%OîÁÙ¥ –¸t†'ˆAÀIIÐÈB€Ü€% CÅRà…l€d‘ ôM@UJ9F Ò“,‡ÝŽ+í¸¶£G|)ÿš€)¬%[eìéli» …Ûùu“ê3JbmŠë†`|ñÈÔ‡€y ÕÂJÓ€ˆw HõmI†å|«ÏPˉ»ÐÎÓ¸~¼ÝðúÂ50ÿ©0 -ˆ$ytš =ׄæ¨RTþ"×¾–ŠKŸIDÑŠ>È¡`±r(xÃÙ%.œ–€á [Ô Ðx½à°_Å ý©Tí¿ŽÁñ´Ë!íîæÖàâ»8úýtì}*ñë8į×H¶Š5úÓ P‚ɨàMÛpôϹ° Z¦íi`u/ú'ói · ‚s|¨ôFH@ÀÆ=)ò œ#6˜~—7æ÷B¶SÁÏ“þg2`¯Óø'{ÓÍ.ôåÔ¡yëeTÿG6®}i?JŸØƒ’M;Q´Dƒs‹9—t©Ðýðó¥j­©Ó@o¬€ƒ¾X21ÁŸÙÛû¯cX78æßQ‹q­çp5ªÙ/g"ý¹D$?7®+ ^EaP ¬€¬!h¾´ ½wû&Ýg’>ìþÞ8rgòùëJ`vhv A oEwúÖÈgo6 ÿs©lW³ðk_ºÉ«Cž²rbô÷̦†ùf EÍèJ¾‰æ^@í/Oàæ—öãÚI(Û’5ÛQü çq8¿Ø¥"·Îñ%8«Â 8µŒÝ æe´2‚ÔZ™ÏìFåž«è4aX?„Þ[]¸“zß:ƒ¬Óöô.ìûôv$nÐŒËPJ ÜîƒÀ1XùblŒBù‘ŠIù9¤oÈøàÒÔVK Ä®dƒƒ"c1ð~‰O|–ÓÐy¬€È ²{æ_çÃÑd˜öà´ØaºÔC^úÏ5ÁXÜý©zÜûø:¢ËÐþÁE4üêîþô8n=×7%àÚú¸²f®¬ŒCÙÒ\Z¤AÉ% ]º¸Ã·Î/âÆA€2À%+`™z+à?œªµ<õ­Èÿå1äÿâaÒŸŒÇ‡ã²9I^4ÆKÄ+ÕGoàÀy9øÈK+ ëÏ'àœ¤ Nv ¾ ZaúyîÔƒ€>ž †BpÀèÿÕiŸ<õÁwŠ¡õÅ ðïٰ% –S€Å>­A õÍ\›ÏáÚ¼(”/ŽFù" ®.àpu‡+ó£påû*›Ï¡Ô­Ëó9\^àR‰Gn…€Ec!ÀoS +àô2v+@n@V+[é,)¢±CŒè>€·µÁñ RV€\6€P²v~3iRŽþ ]äqWþgöO/`²‚byÝáè¿tÐë3A§~Æof´}³£1ðæy8z§/8œhùc>®Í‹£«Œ}ü=  ÇB@ñ"—X­)ðÖ Èe¹ `g¬öÎ `­ fʱâkƒ½…9+à#…)Àû9\Ÿ¤£€‰¨ð,l‚~íΩ ¾X³Bo/@·%–sÞ-Ú®u¢K¢òrd ÀýkÓ?¾–3Í€}šî8–? (CÀe\@€Ç‚€s"à­pz©|@P®¢À©²³6®ö®6XÄRœ ª6XÆ P!¨­ Î~ãÔ¤ÿŒÑCè¼ï·¦ÞR < b x#Hˆ šƒAîªWj˱è—mW¶&zçÄÂôV1º¡i N«­o¢|qô˜)€ˆM. ¬>Ú 8Í´(epª €%&Xª6øCW€?¬€^\h¼´X! ùÅT NÏ=Ò‘ öÏ‹SäZY¯‚¸ 5 0ü8úøÝ¡÷K»¢<ü}íCɰ´`ºÚÝñå£;׿ü嬀KA¶¤OÀ ðìÒ HR* b¸ Pkh¼´>V°¸'bQWP?%>Wô@OL¯dO]ðÇ•@0§" ‚ºgÒa)RÙÈçL?:Î?³ôëäƒM¸½‘±0ý圆é×'à´;Ñ›|7×ïµ®Á (ðÑ 8=VÀ¡ °ÔÔ³LX®4ŒVscàÆm8SKô8OT°H§ÆÏ˜Úàó•@vxfçÑtC€vYãÊU ::Í0~1Íû}€™þEv Ýcû0r¬~ZîôŸkFå#‰Ìû¥ WL“©€ †I€ÜU€(³Vªm Ô0OÔ´Ž›¬S7 ˆW'— °Ñ?“€ƒ??2iOþ‚x£ †‡§>ø’¨”Èô@Ñ.ÆŸæÂv‡=yÏv½úõ ãw!&" ˆÂÉFïÜX~v#M¶]œF=ª¿|׿qª&bV€ªI€ÈB â$`©rJ °vð!à°—“€´5ÞMR¼˜Äû¸ j&;¾˜ˆÞ†¾)õÙ¡‡y¢“³ë [µcz@À|iðiàÌ‘SAÝc{U•ñXrê [¶}ìôcÎÄB€§¿èئAßãû1¸ý:œÓ,7À>`AóoOáªÄi èRàüñ rKçe¦Þ¦J..ì¬`¯ –‚©®)HU€á@®1Pl)0ÁË”ÀXÆ®Ž1&˜{$·OÜžrŸz”ƒQ(’^Ý’¸©RÓ€¶„{½áüŸ c`þŸB8ôl~úpÒ ×H¤Ü ÀV€„kСþ…£ÉkšvÓ€î„r”/‹U• ¶8n °È?V€l@ÈR kWÀ¸ R}±’×rH^DzV€¨‰ V„€MQ8¿­xJ~NèAÒ†òà;ÅÓä ’5F8H ‚bÁAahŸ<K^£ò7›ƒï•Œ·?Ô,@À …€ô.Þ‰þÿ{Žžé dºÜŽªgRT-ªµŠ|°ä‚øpbŒ ? €®Ò HñÃR ä`½Ê®€êº>ùM,f ÉÊf ~—7} `ü^@HÇ‹Õ ÏŽ†ñ'`o5Ê~cpÙ0ðz¡²03°V€$„qèžÁ¡wsnNL°é†Ðòß§ÇÅ+F/TÎ8ÏØ ù*­©)€R>€ÚÚàƒŒ]|Pª „ ¶6Xj ð\" ­S·kƒã`^ô ÀôýO&Q—@¯°^xm"†Òå½Aç :ô”@Q× {† ºfpÐ=›áâÖiN‹úõ¸ùéD¦«€K*­–€ ˜°J}aÐA5µÁJ) VsaÐz•W …AQ›9ÔŸk˜ÒŸzˆƒ íF˜¾š>½ À§à ‰o”³Fs¾ý lå=üFfp¯¤ L3 ]38tý ý÷³`«ÑNjСþÕl\[;.+ò* Ÿñ*€) HÂ Ž öÝ 8°Fƒ}c¬N• ª6x½øU+/®ï/ŸòÿþÓ# ÛÉ·ºax,‰ @̘=9ººÃ5艌ùí °·›D¿q8:Ì0~=sâkƒ…ÿìáÒV@OaŒ.€½Í4=@À h³jQñ™=£PÊäo+àŒ·V€Lm°¿­€ŒXI>Lüexÿ³ÿ8 Ûˆ€4APÕC µ jËÒ“€îp ú6$apO…èbãž ¦o’_| ¤ÎftÍàÐæR÷ƒñ0½{¶F¦Ën@ÓÎàêòX\y@]m°Ð (òÒ `­ “  Ð ´TÕ¯ò>`ÖªßØí+ V¥pä?aP7=–béñ ¥o<¥íЭÞ9½ @aàS„pD€§2ЮAßó™.h‚Ó4vƒØÑa†é›‡dÚƒµ¨7è sM:Ã8t}Ê6RŽ©&ã¥6ÔüÛa\]Ã4J , !+@ÌZ¬f iÈ„%+¤N”°çË{ÐW×7m¬/zxC­BøÔ]èVÄMÝA_!@ª^xVp-1K \ƒž™ÑпœÁb£k¦oV¶1ÆYa<çÐΡ÷©L¬˜Ö€è˨­göâÊBÞN€‚pžaÀŸVÀIF+à>hTÄûnìW1Hòa à‹÷h Ú®´a:½7ôè†"ä7@·rûô›,˜\…B}ü°péi@Ï z#ã`üÓ9Xoõ`,‚6R¥Å˜«€+ 3Ì<ØS{çÔ¶†Ñ‘xå'áòÊVÀ… ¨ vœâYBÈñ£pЗ˜àµÊµÁ¾X; ƒ„½‘Ãí¬êiŠEn¨BÀé»Ð­Ù1=!@jÀ‡€ªb?YGh\éÂ8ôÿ¡Ö›Ý§ÙÓ«¹`+ Â;+€÷Â9ô<}‰7áèú¾éPƒ­”àú§÷Ȧ/TW\èempžÌB «pL…¹Ê»Ú`o­¹…@1+€Ĭ€KÛ.LËÚlzlC¹7àd=ôkã D–}Z d« ð“»fpèyp'úÿ+ß$„Á÷/A;/†ýâ!"À{  6 ð€@÷#É0üõl áHSAƒµZ´~X‚[_NEéBé}µ“€B'§$Ë‚Æ)Æ+MV+OÒp€¡+€? ` Vš(uœú}.¦ëCm¨ÿÄwºE1Þ¤áJÀsoïÉß—³{Õžeñ0¾Qëõn ~xÚq"°~Ù}€œªIÀ½í:6%B÷»|Œ\¾7å¿±Ž´Ñ‘|•/d d~Ô¸È̃€?OÆÕ«€éI€rYÔ$€µ6X)%Pí$ N 6r8ø½T é‡H! ÛJ¡{0vzBkzà\™Á`e„ËŸ òÕÞGS`øA _H‡vnLPR¥ @j í:ÖîBß+9Ì©ìÎ)ýMÖª‚öd=j^ËAÙê8”¨ Z¬n@§¥®T@À'ÌK&H—€ý,)<; Qe>€RmpÜûžßƒþö~Lç·…X‚€É[-ìÏà ˆB€Ì‚ Çð¨wéNôÌ›f+€SgD܇€¶™.µ/ÙÎ/¦Ã}ö®©½0è´Ú1PÙƒ¶˜2\{*D‰b)­6˜O d¨ >¢2&˜o¤zk¬óÞ » Hzr'ÚK[1Ýßz\'‹¬ m-¾v€Rp?ºÂ¿ (Â#|\{"8ôÍb„€ðÀätˤ²N<Ð:“CË î=¼}¿<‰™Øä)v'¬}ƒ0^nGÓ»Å({« ¶6Xn °{K ªÒnÒãO0‰¯ŽÕ@·"nzC€/…B³ƒß%Ð#Ç6vÐΡo–fÂRûÂ%þÙÂØ­€{VÀp«y®-˶£ó›‡a>Z‡aN›SlýÃ0ÝêFëö+¨xùJ¶ÄãüªX-Õø%%Ð+ ËV@f¬µµÁr)»6jPµÿœ'À$‡€¬Zè–0A€·1´zb„…lß,Þ¯#€Fï‚A±+`†Ì@øÐ2‹CÓ,M³94ÎæÐ¼v'º^Í…9·¶.3œÃS¸Å À ØÍ.µ¡‰+Å­W²Púl2.>â ÛQ¸<ú>0Xyj­€*N}è ÈPYìo+ a=‡óoŸÝb§ÇŸ`Š@@vtK§9øœ¼zaÙå@K 'B! h¦ŸÎUv(A€¤à™¸À s\j^»Ý¿< Ó¡Û°6à0ŽÓä§·á#úòÐ[†š¿œEùw3QúÜ>\|b7.<¶ E·ã܆í(X+ yË5È[¼õ±Èß´yãpbU´$c´{iȦúÙ ð<þ»Öq8ÿf>lCVzü ¦œº Ýêí,Ó€9¡³ÐÁBK 'B²V@‡‚Ð>SÐ0‡Cý\õ‹bÐñÃ,è¢Ê0PÜ k›qjOÄì‡Cmý¨ëCÏ©ztåÔ¢=íêþqµ;º÷Šq÷ãKhŒ.Ec\š®¡öƒ ¨zý nüg../ç?ŸŒüÍÛ%c‚Õ\Vi°Öûà ðììZÏ¡à'a¤ÇŸ`ªæ”W÷Àðxt $Y¦|*èU–À Ï^@! Â;+ K ÔX¼)@ãœñP7Ç£(4>œˆ®_Ÿ‚vÏ \lƒµ¹Žú&'`°b¨ÝˆþŠ.´¥ÞÄ¿âÊ#CœtaPˆZbg¬¸žÃñd`°ÛLÿ^Lq¨ìá3É4 ³"Bƒ‚Ð%Ч#,]áôÎ °á í2Ð,c4Ìápw®8ÔÎåP7Wƒº¹OFû«Ùè‹*ƒ1«Ce°u™§¬e`²b¨ÅSu/ú šÐ¶÷&¢JPñÚq\úò~œ]#»0v!P# 㦫¼·ÒUZjº×¹Æý»ÖsHZÏ!çûéè6ÑãO0=äh2ÀøÍC¾.D~òæ× îð-@y$ÖÀb4+XB¨ëRÍ\5‘î¸u;2 5K¶£ékèøõIt¿{ú´*OÜÅàõ.Œ4êa7Yêãþ‘›ôЗ´A{¦÷öU 5ánÿ9•¯e£ôù(~8g–h˜kƒ…W92…ArV€ÚÚ`o¬ojƒ×¹¦9/¦c ‹€i&§v¦W² ÔÄKZÑ!Ôé9Œà › € o[¥&-*&õr0—÷UÉ¡*’Ce$‡;PÿÌ>4~ÿZ^ËEû_ Ðõá%t}|ú#5Ы…þ“Z˜Î·b¸F‹¡ê^ U÷bàfl:Wf¼Óî«ükß ª{]ºí’áB+z³jÑ—SžÃ·Ñu-\)Þ9Û¿ÎEÕkÙ¸öõ4\ùâ>¯‰óù40O**X¡5Pn)P®5P 2TL¬Ñ`ã$Àóø'­sý½ìï¥c°‡ÆþÓ #xót‹cæË[£ JWÊ]]aãO{#¸ ttK](M"¤¥&w àNäXñ *’Cå¼ûº5CE¤‘nòt#’íU;PýÙdT?¾•'¡òáݨùF:îþäêxõ?<Šº—Ž¢î‡GQ+¢;/¹Tû“c¨üzn<‘„ò'’Pþd2ÊŸJFÙ†¸¸€Ã…œhTðyÆÆ@>HÅçËÀI±lùj'j'k•'{ÖqH^«ÁÞudÿ[*=þ$8œÚV í’X‚9˜ËØ%„a!ôŠ-Î\ „sè› ®`^ œ%8ær¨Ù¨á$ 2r,¸ À¥›óîëÆ<×=ŠŒÂõÈ(\›7^WpéÊq¸2_ƒÒùJçs¸<ŸÃå.•,¸_̯ ©é `¹)ÀI‘Ú`¹¥@UµÁ«”»d—×ÊC@ÒZ)î¯Éý^†úèñ' Ö•¦VB»„²XºFí€P›„»ö˜ …Â8t‡qè›ÉM>+`–º¥@!(A@µÄÀ£S7ð! <2 å2pEDeó9”yÀ —x  ]þ²Nú`õ“ÀrWûÜ_sòÅt öÒãO@_Uz¦†-‰þÈ fŒp˜Êà pÿA@¨ZR fŒNæ‰Y<˜'nƒñ)À}(e€Ouðy¥Ú`)+€±+@)%0G±+@ÔžÊYRA{×rØïþ𼤱?IN¶+÷`|.üÖ%0+8à9ÍÚ²Ó€?B€”àåià½m*R…V@½V€Ü@B \•…+n`µ.L@mðŒ +À³ à€}k]=uy?<ˆNÚö' )Ÿ v˜a~5‡ÅáJ ÏË.žð 8 d¨°ä‚”®&Ì ™HY@RV@ñBNUmp¡—µÁy§¹,VÀJõV@&C@@@êšû_“ÿ£L téñ' 1_G0ðV´ 5ôøËMXOgMèãÐ7VKW€Tk Z+ aîÄXÂ)€+€rVÀ‰…@©Ú`1+À›ÚàÓ Wþ¨ >ì‡Úà4^«`Áˇ`¾G?É»åÀ´JèVP‡€ª¼IK@r]ã®ÂÆNúf°× ! mæÄYÕl”Ø (ôÑ 8¥Â ð¦6xÔ X­l¤‹X鼿_öæ*ö! ù¼pµ†Ï¦Ðãï¯zá`-†ËO„Ëži@oÀ¬NõU@»J+ AÅB ?¬!øË ¸,e,Rgxiœf´²RY¬¨±Ò_wå3°Q±ÉO{­F˜JÉ^¥Î ¡¼…fÁ®ðñàË4@ê³Û+ Ñ hTÑP˰X¥dDŽß……³À@Y>ZbA¹~µ4ÌV@Æê±_whC Êß)„mÀB?ÉßÚzº%”(Û*Èz%Lˆ) Ÿtñ¦:?XÝÞX¢ WÌ`ÜöÒ ‚X—Vy¯Ð0.%ÐG+@ê,™«5c`áàj êÓ*èá' R–œ:ÝCàK@& F¸G¢ÎWX(äy”{¼Ù)€Z+€µ6˜oÌ‘¿ ¨›ëÜ”Z àU€\B ¿­€<…l€“ WY~²2Ó 0~#ƒ @a eIœ\K Gɉúuí Œ©«€€[*kƒo«¨ Zåi,ösaˆÇ<%ËÀ ùbѲÿ&=ü¤i1 ²bèýJ¤¡ù ]s¼œDÞ葳ÂÔ'ûÝ‹pí ŒÂÀ zTÖó‚ÔZb…AÌVÀ<ï¬_b‚Y­€ó^Z¬]žÇ=)‡³Kï}¾\þÎAôWvÓãO@š–ÅB/…nI±äLð•@Ÿ´^NX2þÛÝö@§ÛVèf­ æ[3Ùc‚…V@}€­€ë>Ö«½ ¸ÀÚà3K].eˆAÀ™U1¨{¯-mù¦ï4`ĆáÔ*裚a¥ô@]¨u özTt ƒƒÄ` Í-EÐá^ ìþ¶I€šÖ@VPšT©œ°´ª”øÒ¸˜mpVd_@ª\è¬Ü¼ôÜ^tg×ÐÃO@"¹äÐaðbèVí xÀ—.à,öz"~%»Âx] ™RK}m3=‹ƒîØáœT+ìø{PæÅR 7“ÏC^°ä>ˆI.U0ÿAwÞ<‹Á&==þ$’ˆ-p³ ¦Ÿd‘-Àz%à r7@)8h[pØ~@[„k«¿m¦ëÿví °O¤ºøÐ0[¡+@b)ð¶ ¸)rKWÔvˆ,25ò  àAî¿V(ø{½9(~4í©7àtP–?‰$g ˜->Xþg÷S« ·Ó–à ˆ @@˜tp7õ¿ž‡Ý³@ØÁûÏF¨³UtÔ²)Y‘21Áb ¢6X ÔXE<É ±@@Õoraª¦8_I-ÐeÆÐÖRèÖ'%0 3<ÁA½*Z%! Bú'úV ¸7Sd‚ `4«¬ öe P!uÈ`¨î XÀÖPäþóâEŒ“¸ôt ºŽßÓF‰~$’7r8a¯îÁÀÎ@·,Ž,É#ì‡à !(€§ Ðóçí3Ù¬€&¾0'°V€RW€Ú|+@xp|8¸°È%QH`ê?žÂH§‰~ɲ:`+ï„é{Gi ÔÜ÷®K@.Ae |à[gÉð*€Õ ¸£TÅp ¦6X­à€K ]@À—gBpQä@@e_Ø }I+=ü$RdsÀv±Æï&›„bpÌr ’% ”À üÇžÿG_¬€Z•µÁã穳XkƒKÝ@P6?j\V,pqs÷ç;r“‚2?@€®5 }gèá' ‘‚|:h±c$­ Ư„nQ ²Z¼(W-Ìb ¨¡Ð:‹mÐ(sÅ'ÞZ£û"ç£È(ܘ5j ¥Þ@€„{WŸNFÛö«pXíôøH!Ã6Œ¤V¢ÿ[™Ð-$KÀ/³:-oöX @)Àc Zb <¹Ò à-°L.ò®J·$ é½ °t™éá' ‘B¬ÙwËÔ%ÀšàO¼½™¨´Ìf°|„±ö@©° V¸.g < ~= % \———Å î7'a® Ö>i²ÀÞ ¿súeÛ§ï4€f´‚.1[ +œS= 𤶻³Ú-f…Ž>Ôyă€:7ÔJäHíH†ñön*X¾ô ð! t‡+Ëbpû§YÐå7Òv?‰4¹w¬§`þñ1èƸD]ê[|% #Ü%s%àiìs@‡Î›yá@¼®–óÀq‘Áse @bPÁ»¨P1 …™‰À1[à—-põÁhÜþYôg›à°ÏO@"M²Áz®ƒ¿ÏŸÚ̓rÂ,õÂÁ<T¨mœ¡>8¨MjAPf"ÐÄ0¨LÄ"ƒkD @n7@©IðÆÜ(\g€Ö‰ÀÕEÔþG6ôçšá¶ÑÃO" MQYì°U÷ahk) ížÞésd …‚Ð% uOúÂdüƒ_¦²ÕÁ¼½µÓ_ àf$Û4 \fAðÊõ¯GÿÙ&ØÍzøI¤i"'àhíÇð[®˜á©zBÈà @&†y—ÐÀÌ€qaA"Âþ†ÙJaF÷øÏÛ†»?Í‚±° vã=ü$Ò4¶ôðžm„ù·§§¦=0߇B¡ÙA„€KÀ™¬ 5 .²@€·–€¯™×phþ}>L%môð“H$a̰½A¡ÿW‚þϦ¹KÀ—aVhŸéÛ4Àëà ?C€Ü4 jCÚ^/ÄPu/à=ü$IÎpš-°æ5Àô£ãЭ'K HWþòä¨Mlñá\PÉð&8Hé\Px%pûÉtï*‡åÕó’H$¯äè0a(æ ŒŸ?ýŠí“?iðv 3FØs%æ¿a%K@)3ÀP› ȇ€Ê5;Ñðò1NÞ¥~‰äOÙÊîaàgÐÿd ôË·O=`²&>8ˆ%/`Ì^€70Ó»a–à oòX!àÖâXÜyr/Ú_?‡Áë]ôè“H¤€.†1’y¦_DÿÓ{¡{0vjeøÚ%03ðËR0š¦Îðç™`£H«à]‘Ì5˞ǿjžU 4¨Ù²-?ˆî@%CVzøI$҄Àvà ×aúÉqÝ3ù,‚ä3´²™A„€™.0ïê…ÛýP(Ä#,µ2–@U$‡;kvâîWÒÐUŠá;}´ÔG" ‘BeyÐ^«Åðî0½š Ã#{¦É•€f§J—Àr% q&è¯Ð 9¨›;Þð€@̓±húJîýá ÌçZ‡“}‰Ò0p»Ãûnaà΢ÿé}¡?PˆVÒÿJ@ d …ºÜ–@§Ÿê…›=1ÂîfAO—€ÐhÚ pÃ@Ý‚h4%]¯”[ÇøI$Òä¼$h6`ä`5ÿV„þo„~q±\ Ì ­ôÀ^Þ‚`O˜ ÔÆË-ò»Úüd ðc„kçhP;7 ­Ï§£ûí"˜rêa×Ñ£O" ‘¦ tÀz¶ ÚR˜^9ýºxhçk&Ÿ%0G.=0:4ƒƒd  ƒ×# m^Æó›Ç.F¡qQ,î}ût[/Ã|â.l]fzôI$Ò´X ´Âv«–œ: þ£ÆçÓ [ m¨@À|ið)3 "°ç‚ÞB@g€ºšfqhž­Aã,-kâÑýË“0¦UbøZ'ìºazôI$Ò´–Ý G—¶›Ý°¹ƒßç£ÿ‰”àïÌ÷18hVp‚ƒ˜3üØ% ­ócÐóÝOÐwCç[`­ÓÁ9B!=$‰$5²ÁÑftÁáÛx½ÆÏí‡v&t 2Ä3ü’»"poM‰€D"y #68zaoÐÃzªƒÿ¸óOs`Ø´k’Äk‚#ìE¡ë4 sÍnh_;SôU —´ÁÖn„C? §ÍA>‰€D"@6œf œý#°×ôaäðm ¾WóOŽCÿX’«·`it‹cBèJ@ô.^‰.I˜©A×ÜtÎA×Êè^Êñ1tèlµ:8úGà²Q(‰€D"wÀ9bƒsÀ {“Öó-о‚¿ÂôßýÆ]ЯÚý²íÞÃ/ÁAA:T´fÇ {AzïDÏòxèžË@ÿ/Na`k†O4ÀÞh€sÀ ç° °S‰€D"M&Y°·`)hÂHZ†Þ¹ó/ra|>†Ï$Ãðȶ$ºA©ìHt²éAØ ˆÐ@»`;´Kã¡]½ºIÐ~z ß:óŸ‹0u#Çëa­èsÄN<‰€D"MÙ› °Ýî…哌컅Á7 1ð§³0¾xƯf ÿ¹TžL᩽0<”ýšxèW»4"ý´ ô¨ÏŒ†náèï„nñNè×'Âðp [RÐÿtú?—ó+9øC!ß¹ˆáÔjXN5Â^§ƒƒ‚vH$‰4~¿V»käm¶À©†Ó8G£–‚&XŠZ0œV…¡/»ôáe˜_Ɇù¥c0ÿø8L?ø†Ï¤@¿2úµ» óhµˆVí‚ne‚´V$@·<º¥ñ0<¾Æïƒé»Y®?¾”ƒ¿—`ðýË|ÿFÒoÃRØËÙfØ[ŒpöÀiÓl…sÐX”¥O"H$‰D" ‘H$‰D@"‘H$‰D"‘H$‰D"‘H$‰D"‘H$‰D"H$‰D" ‘H$‰D@"‘H$‰€D"‘H$‰D"‘H$‰D"‘H$‰D"‘H$‰D"H$‰D" ‘H$‰D@"‘H$‰€D"‘H$‰D"‘H$‰D"‘H$‰D"H$‰Dš:úÿ.¢tÝù¥%tEXtdate:create2019-10-24T22:30:39+00:00²¿¯Þ%tEXtdate:modify2019-10-24T22:30:39+00:00ÃâbIEND®B`‚rxjs-7.5.7/docs_app/src/assets/js/000077500000000000000000000000001431412030200170035ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/assets/js/devtools-welcome.js000066400000000000000000000005641431412030200226360ustar00rootroot00000000000000var welcomeText = ( ' ____ _ ____ \n' + '| _ \\ __ __ | / ___| \n' + '| |_) |\\ \\/ / | \\___ \\ \n' + '| _ < > < |_| |___) | \n' + '|_| \\_\\/_/\\_\\___/|____/ \n' + '\nTo start experimenting with RxJS: https://stackblitz.com/edit/rxjs\n' ); if (console.info) { console.info(welcomeText); } else { console.log(welcomeText); } rxjs-7.5.7/docs_app/src/assets/js/prettify.js000066400000000000000000000362161431412030200212170ustar00rootroot00000000000000!function(){/* Copyright (C) 2006 Google Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ window.PR_SHOULD_USE_CONTINUATION=!0; (function(){function T(a){function d(e){var b=e.charCodeAt(0);if(92!==b)return b;var a=e.charAt(1);return(b=w[a])?b:"0"<=a&&"7">=a?parseInt(e.substring(1),8):"u"===a||"x"===a?parseInt(e.substring(2),16):e.charCodeAt(1)}function f(e){if(32>e)return(16>e?"\\x0":"\\x")+e.toString(16);e=String.fromCharCode(e);return"\\"===e||"-"===e||"]"===e||"^"===e?"\\"+e:e}function b(e){var b=e.substring(1,e.length-1).match(/\\u[0-9A-Fa-f]{4}|\\x[0-9A-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\s\S]|-|[^-\\]/g);e= [];var a="^"===b[0],c=["["];a&&c.push("^");for(var a=a?1:0,g=b.length;ak||122k||90k||122h[0]&&(h[1]+1>h[0]&&c.push("-"),c.push(f(h[1])));c.push("]");return c.join("")}function v(e){for(var a=e.source.match(/(?:\[(?:[^\x5C\x5D]|\\[\s\S])*\]|\\u[A-Fa-f0-9]{4}|\\x[A-Fa-f0-9]{2}|\\[0-9]+|\\[^ux0-9]|\(\?[:!=]|[\(\)\^]|[^\x5B\x5C\(\)\^]+)/g),c=a.length,d=[],g=0,h=0;g/,null])):d.push(["com",/^#[^\r\n]*/,null,"#"]));a.cStyleComments&&(f.push(["com",/^\/\/[^\r\n]*/,null]),f.push(["com",/^\/\*[\s\S]*?(?:\*\/|$)/,null]));if(b=a.regexLiterals){var v=(b=1|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+ ("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+v+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+v+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&f.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&f.push(["kwd",new RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),null]);d.push(["pln",/^\s+/,null," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");f.push(["lit",/^@[a-z_$][a-z_$@0-9]*/i,null],["typ",/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],["pln",/^[a-z_$][a-z_$@0-9]*/i, null],["lit",/^(?:0x[a-f0-9]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+\-]?\d+)?)[a-z]*/i,null,"0123456789"],["pln",/^\\[\s\S]?/,null],["pun",new RegExp(b),null]);return G(d,f)}function L(a,d,f){function b(a){var c=a.nodeType;if(1==c&&!A.test(a.className))if("br"===a.nodeName)v(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((3==c||4==c)&&f){var d=a.nodeValue,q=d.match(n);q&&(c=d.substring(0,q.index),a.nodeValue=c,(d=d.substring(q.index+q[0].length))&& a.parentNode.insertBefore(l.createTextNode(d),a.nextSibling),v(a),c||a.parentNode.removeChild(a))}}function v(a){function b(a,c){var d=c?a.cloneNode(!1):a,k=a.parentNode;if(k){var k=b(k,1),e=a.nextSibling;k.appendChild(d);for(var f=e;f;f=e)e=f.nextSibling,k.appendChild(f)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;a=b(a.nextSibling,0);for(var d;(d=a.parentNode)&&1===d.nodeType;)a=d;c.push(a)}for(var A=/(?:^|\s)nocode(?:\s|$)/,n=/\r\n?|\n/,l=a.ownerDocument,m=l.createElement("li");a.firstChild;)m.appendChild(a.firstChild); for(var c=[m],p=0;p=+v[1],d=/\n/g,A=a.a,n=A.length,f=0,l=a.c,m=l.length,b=0,c=a.g,p=c.length,w=0;c[p]=n;var r,e;for(e=r=0;e=h&&(b+=2);f>=k&&(w+=2)}}finally{g&&(g.style.display=a)}}catch(x){E.console&&console.log(x&&x.stack||x)}}var E=window,C=["break,continue,do,else,for,if,return,while"], F=[[C,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,restrict,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],H=[F,"alignas,alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,noexcept,noreturn,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"], O=[F,"abstract,assert,boolean,byte,extends,finally,final,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],P=[F,"abstract,add,alias,as,ascending,async,await,base,bool,by,byte,checked,decimal,delegate,descending,dynamic,event,finally,fixed,foreach,from,get,global,group,implicit,in,interface,internal,into,is,join,let,lock,null,object,out,override,orderby,params,partial,readonly,ref,remove,sbyte,sealed,select,set,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,value,var,virtual,where,yield"], F=[F,"abstract,async,await,constructor,debugger,enum,eval,export,function,get,implements,instanceof,interface,let,null,set,undefined,var,with,yield,Infinity,NaN"],Q=[C,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],R=[C,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],C=[C,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"], S=/^(DIR|FILE|array|vector|(de|priority_)?queue|(forward_)?list|stack|(const_)?(reverse_)?iterator|(unordered_)?(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,W=/\S/,X=y({keywords:[H,P,O,F,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",Q,R,C],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),I={};t(X,["default-code"]);t(G([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),"default-markup htm html mxml xhtml xml xsl".split(" "));t(G([["pln",/^[\s]+/,null," \t\r\n"],["atv",/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null, "\"'"]],[["tag",/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],["pun",/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);t(G([],[["atv",/^[\s\S]+/]]),["uq.val"]);t(y({keywords:H, hashComments:!0,cStyleComments:!0,types:S}),"c cc cpp cxx cyc m".split(" "));t(y({keywords:"null,true,false"}),["json"]);t(y({keywords:P,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:S}),["cs"]);t(y({keywords:O,cStyleComments:!0}),["java"]);t(y({keywords:C,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);t(y({keywords:Q,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);t(y({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END", hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]);t(y({keywords:R,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);t(y({keywords:F,cStyleComments:!0,regexLiterals:!0}),["javascript","js","ts","typescript"]);t(y({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0, regexLiterals:!0}),["coffee"]);t(G([],[["str",/^[\s\S]+/]]),["regex"]);var Y=E.PR={createSimpleLexer:G,registerLangHandler:t,sourceDecorator:y,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:E.prettyPrintOne=function(a,d,f){f=f||!1;d=d||null;var b=document.createElement("div");b.innerHTML="
"+a+"
"; b=b.firstChild;f&&L(b,f,!0);M({j:d,m:f,h:b,l:1,a:null,i:null,c:null,g:null});return b.innerHTML},prettyPrint:E.prettyPrint=function(a,d){function f(){for(var b=E.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;p RxJS rxjs-7.5.7/docs_app/src/karma.conf.js000066400000000000000000000020341431412030200174410ustar00rootroot00000000000000// Karma configuration file, see link for more information // https://karma-runner.github.io/1.0/config/configuration-file.html module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-jasmine-html-reporter'), require('karma-coverage-istanbul-reporter'), require('@angular-devkit/build-angular/plugins/karma') ], client: { clearContext: false // leave Jasmine Spec Runner output visible in browser }, coverageIstanbulReporter: { dir: require('path').join(__dirname, './coverage/site'), reports: ['html', 'lcovonly', 'text-summary'], fixWebpackSourcePaths: true }, reporters: ['progress', 'kjhtml'], port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, browsers: ['Chrome'], browserNoActivityTimeout: 60000, singleRun: false, restartOnFileChange: true }); };rxjs-7.5.7/docs_app/src/main.ts000066400000000000000000000005201431412030200163560ustar00rootroot00000000000000import { enableProdMode } from '@angular/core'; import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; if (environment.production) { enableProdMode(); } platformBrowserDynamic().bootstrapModule(AppModule); rxjs-7.5.7/docs_app/src/noop-worker-basic.js000066400000000000000000000022331431412030200207640ustar00rootroot00000000000000/** * A simple, no-op service worker that takes immediate control. * Use this file if the active service worker has a bug and we * want to deactivate the worker on client browsers while we * investigate the problem. * * To activate this service worker file, rename it to `worker-basic.min.js` * and deploy to the hosting. When the original worker files cache * expires, this one will take its place. (Browsers ensure that the expiry * time is never longer than 24 hours, but the default expiry time on Firebase * is 60 mins). */ // Skip over the "waiting" lifecycle state, to ensure that our // new service worker is activated immediately, even if there's // another tab open controlled by our older service worker code. self.addEventListener('install', function(event) { event.waitUntil(self.skipWaiting()); }); // Get a list of all the current open windows/tabs under // our service worker's control, and force them to reload. // This can "unbreak" any open windows/tabs as soon as the new // service worker activates, rather than users having to manually reload. self.addEventListener('activate', function(event) { event.waitUntil(self.clients.claim()); }); rxjs-7.5.7/docs_app/src/polyfills.ts000066400000000000000000000027201431412030200174530ustar00rootroot00000000000000/** * This file includes polyfills needed by Angular and is loaded before the app. * You can add your own extra polyfills to this file. * * This file is divided into 2 sections: * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. * 2. Application imports. Files imported after ZoneJS that should be loaded before your main * file. * * The current setup is for so-called "evergreen" browsers; the last versions of browsers that * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. * * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html */ /*************************************************************************************************** * BROWSER POLYFILLS */ /** HACK: force import of environment.ts/environment.prod.ts to load env specific polyfills */ import './environments/environment'; /*************************************************************************************************** * Zone JS is required by Angular itself. */ import 'zone.js'; // Included with Angular CLI. /*************************************************************************************************** * APPLICATION IMPORTS */ /** * Date, currency, decimal and percent pipes. * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 */ // import 'intl'; // Run `npm install --save intl`. rxjs-7.5.7/docs_app/src/pwa-manifest.json000066400000000000000000000024351431412030200203570ustar00rootroot00000000000000{ "short_name": "RxJS", "name": "RxJS", "icons": [ { "src": "assets/images/favicons/apple-touch-icon-144x144.png", "sizes": "144x144", "type": "image/png" }, { "src": "assets/images/favicons/favicon-72x72.png", "sizes": "72x72", "type": "image/png" }, { "src": "assets/images/favicons/favicon-96x96.png", "sizes": "96x96", "type": "image/png" }, { "src": "assets/images/favicons/favicon-128x128.png", "sizes": "128x128", "type": "image/png" }, { "src": "assets/images/favicons/favicon-144x144.png", "sizes": "144x144", "type": "image/png" }, { "src": "assets/images/favicons/favicon-152x152.png", "sizes": "152x152", "type": "image/png" }, { "src": "assets/images/favicons/favicon-192x192.png", "sizes": "192x192", "type": "image/png" }, { "src": "assets/images/favicons/favicon-384x384.png", "sizes": "384x384", "type": "image/png" }, { "src": "assets/images/favicons/favicon-512x512.png", "sizes": "512x512", "type": "image/png" } ], "start_url": "/?utm_source=homescreen", "background_color": "#ffffff", "theme_color": "#d81b60", "display": "standalone" } rxjs-7.5.7/docs_app/src/styles.scss000066400000000000000000000002151431412030200173030ustar00rootroot00000000000000/* You can add global styles to this file, and also import other style files */ @import './styles/rxjs-theme'; @import './styles/main.scss'; rxjs-7.5.7/docs_app/src/styles/000077500000000000000000000000001431412030200164105ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/styles/0-base/000077500000000000000000000000001431412030200174575ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/styles/0-base/_base-dir.scss000066400000000000000000000001541431412030200222010ustar00rootroot00000000000000/* ============================== BASE STYLES ============================== */ @import 'typography';rxjs-7.5.7/docs_app/src/styles/0-base/_typography.scss000066400000000000000000000042551431412030200227270ustar00rootroot00000000000000body { font-family: $main-font; margin: 0; color: $darkgray; font-size: 14px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } h1 { display: inline-block; font-size: 24px; font-weight: 500; margin: 8px 0px; @media screen and (max-width: 600px) { margin-top: 0; } } h2 { font-size: 22px; font-weight: 500; margin: 32px 0px 24px; clear: both; } h3 { font-size: 20px; font-weight: 400; margin: 24px 0px; clear: both; } h4 { font-size: 18px; font-weight: 400; margin: 8px 0px; clear: both; } h5 { font-size: 16px; font-weight: 500; margin: 8px 0px; clear: both; } h6 { color: $mediumgray; font-size: 16px; font-weight: 500; margin: 8px 0px; clear: both; } h2, h3, h4, h5, h6 { @media screen and (max-width: 600px) { margin: 8px 0; } } .mat-tab-body-wrapper h2 { margin-top: 0; } p, ol, ul, ol, li, input, a { font-size: 14px; line-height: 24px; letter-spacing: 0.30px; font-weight: 400; & > em { letter-spacing: 0.30px; } } ol { li, p { margin: 4px 0; } } li p { margin: 0; } a { text-decoration: none; } .app-toolbar a { font-size: 16px; font-weight: 400; color: white; font-family: $main-font; text-transform: uppercase; padding: 21px 0; } strong { font-weight: 600; } table { border-collapse: collapse; border-radius: 2px; border-spacing: 0; margin: 0 0 32px 0; } table tbody th { max-width: 100px; padding: 13px 32px; text-align: left; } td { font-weight: 400; padding: 8px 30px; letter-spacing: 0.30px; p { margin: 0; } } th { font-size: 16px; font-weight: 500; padding: 13px 32px; text-align: left; } p > code, li > code, td > code, th > code { font-family: $code-font; font-size: 85%; color: $darkgray; letter-spacing: 0; line-height: 1; padding: 2px 0; background-color: $backgroundgray; border-radius: 4px; } code { font-family: $code-font; font-size: 90%; } .sidenav-content a { color: $pink; &:hover { color: $mediumgray; } } .informal { display: block; padding-left: 1.3em; border-left: 5px solid #dfdfdf; font-size: 1.1em; font-style: italic; margin: 22px 0; } rxjs-7.5.7/docs_app/src/styles/1-layouts/000077500000000000000000000000001431412030200202465ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/styles/1-layouts/_api-page.scss000066400000000000000000000027141431412030200227710ustar00rootroot00000000000000.api-section { position: relative; pre { white-space: pre-wrap; } table.api-table { min-width: 680px; thead th { color: white; font-size: 16px; background-color: $pink; border-radius: 4px 4px 0 0; text-transform: none; padding: 8px 24px; } tbody { pre { white-space: normal; margin: 4px; padding: 4px 16px; } td, th { padding: 0; } th { max-width: 150px; } } } } .api-body { max-width: 1200px; table { th { text-transform: none; font-size: 16px; font-weight: bold; } tr { border-bottom: 1px solid $lightgray; } td { vertical-align: middle; } hr { margin: 16px 0; } tr:last-child { border-bottom: none; } &.item-table { td { padding: 32px; } } &.list-table { td { padding: 16px 24px; } } } /* used to target the short description */ > p:nth-child(2) { border-left: 5px solid $pink; font-size: 1rem; line-height: 1.25; padding-left: .5rem; } }rxjs-7.5.7/docs_app/src/styles/1-layouts/_content-layout.scss000066400000000000000000000011571431412030200242730ustar00rootroot00000000000000aio-shell.page-docs { .sidenav-content { // padding: 6rem 3rem 3rem 3rem; // THIS CAUSES THE TOP NAV TOOLBAR TO JUMP BETWEEN DOCS AND OTHER PAGES margin: auto; } } .sidenav-content { min-height: 100vh; padding: 80px 3rem 1rem; } @media (max-width: 600px) { aio-menu { display: none; } .sidenav-content { min-height: 450px; padding: 80px 1rem 1rem; } } .sidenav-container { width: 100%; height: 100vh; } .sidenav-content button { min-width: 50px; } #guide-change-log h2::before { content: ""; display: block; height: 1px; margin: 24px 0px; background: $lightgray; } rxjs-7.5.7/docs_app/src/styles/1-layouts/_doc-viewer.scss000066400000000000000000000001561431412030200233500ustar00rootroot00000000000000.no-animations aio-doc-viewer > * { // Disable view transition animations. transition: none !important; } rxjs-7.5.7/docs_app/src/styles/1-layouts/_footer.scss000066400000000000000000000030351431412030200226010ustar00rootroot00000000000000footer { position: relative; line-height: 24px; flex: 1; padding: 48px; z-index: 0; background-color: $pink; color: $offwhite; font-weight: 300; aio-footer { position: relative; z-index: 0; } .footer-block { margin: 0 24px; vertical-align: top; } a { color: $offwhite; font-weight: 300; text-decoration: none; z-index: 20; position: relative; &:hover { text-decoration: underline; } &:visited { text-decoration: none; } } a.action { cursor: pointer; } h3 { font-size: 16px; text-transform: uppercase; font-weight: 400; margin: 0 0 16px; } p { text-align: center; margin: 10px 0px 5px; @media (max-width: 480px) { text-align: left; } } div.grid-fluid { display: -ms-flexbox; display: -webkit-flex; display: flex; justify-content: center; text-align: left; margin: 0 0 40px; ul { list-style-position: inside; padding: 0px; margin: 0px; li { list-style-type: none; padding: 0px; text-align: left; } } @media (max-width: 480px) { flex-direction: column; .footer-block { margin: 8px 24px; } } } @media (max-width: 700px) { h3 { font-size: 110%; } } @media (max-width: 600px) { h3 { font-size: 100%; } } } footer::after { content: ''; position: absolute; z-index: -1; top: 0; bottom: 0; left: 0; right: 0; background-size: 320px auto; } rxjs-7.5.7/docs_app/src/styles/1-layouts/_layout-global.scss000066400000000000000000000011751431412030200240610ustar00rootroot00000000000000html, body { height: 100%; } body { background-color: $offwhite; } .clearfix { content: ""; display: table; clear: both; } .clear { clear: both; } .l-clearfix:after, .clearfix:after { content: ""; display: table; clear: both; } .is-visible { display: block!important; } .l-flex-wrap { display: flex; flex-wrap: wrap; } .flex-center { display: flex; justify-content: center; } .center { text-align: center; } .visually-hidden { position: absolute !important; top: -9999px !important; left: -9999px !important; } .text-uppercase { text-transform: uppercase; }rxjs-7.5.7/docs_app/src/styles/1-layouts/_layouts-dir.scss000066400000000000000000000005241431412030200235570ustar00rootroot00000000000000/* ============================== LAYOUT STYLES ============================== */ @import 'api-page'; @import 'content-layout'; @import 'doc-viewer'; @import 'footer'; @import 'layout-global'; @import 'marketing-layout'; @import 'not-found'; @import 'sidenav'; @import 'table-of-contents'; @import 'top-menu'; @import 'print-layout';rxjs-7.5.7/docs_app/src/styles/1-layouts/_marketing-layout.scss000066400000000000000000000170521431412030200246030ustar00rootroot00000000000000.hero { display: flex; flex-direction: column; justify-content: center; align-items: center; width: 100%; box-sizing: border-box; padding: 48px 48px 32px 48px; overflow: hidden; .hero-title { display: inline-block; font-size: 28px; font-weight: 400; line-height: 48px; margin: 0 8px 0 0; text-transform: uppercase; &.is-standard-case { text-transform: none; } } } section#intro { display: flex; align-items: center; position: relative; width: 900px; height: 480px; margin: 0 auto; padding: 0; color: white; @media (max-width: 780px) { flex-direction: column; justify-content: center; width: 100%; max-width: 100vw; padding: 70px 0 32px; button { margin: 0; height: 60px; } } .homepage-container { width: 100%; max-width: 1040px; margin: 0 auto; margin-top: -7%; padding-top: 0; padding-bottom: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; .hero-cta + .hero-cta { margin-top: 15px; } @media (max-width: 780px) { display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 100%; padding: 0; } } .headline-container { margin: 32px 0; text-align: center; } .hero-headline { font-size: 40px; line-height: 64px; font-weight: 500; color: $pink; &:after { display: none; } @media (max-width: 780px) { text-align: center; } @media (max-width: 575px) { font-size: 32px; line-height: 50px; } } .hero-subheadline { font-size: 22px; line-height: 32px; color: $accentgrey; } .hero-logo { display: flex; width: 400px; @media (max-width: 780px) { justify-content: center; } img { width: 400px; height: 400px; margin-bottom: 8px; padding: 0; filter: drop-shadow(0 2px 2px rgba($black, 0.24)); @media (max-width: 780px) { width: 250px; height: 250px; } } } } .announcement-bar { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-around; align-items: center; max-width: 50vw; margin: 0 auto; padding: 16px; background-color: $white; border-radius: 4px; box-shadow: 0 2px 2px rgba($black, 0.24), 0 0 2px rgba($black, 0.12); box-sizing: border-box; transition: all 0.3s ease-in; @media (max-width: 992px) { flex-direction: column; text-align: center; padding: 32px 16px; } @media (max-width: 768px) { width: 100%; max-width: none; } & > * { margin: 8px; } img { filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.26)); } .button { display: flex; justify-content: center; align-items: center; height: 40px; min-width: 160px; font-size: 16px; color: $white; background-color: $pink; border-radius: 48px; box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); box-sizing: border-box; cursor: pointer; &:hover { color: rgba($white, 0.7); } } .material-icons { display: none; right: 0; position: static; transition: all 0.3s ease-in; font-size: 16px; } p { strong { font-weight: 700; } font-size: 16px; margin: 8px; text-align: center; } } // ANGULAR LINE .background-sky { background-color: $pink; background: $pink; color: $white; } .home-row .card { @include card(70%, auto); display: flex; flex-direction: row; align-items: center; justify-content: center; position: relative; width: 70%; min-width: 270px; text-align: center; height: auto; margin: auto; padding: 24px; box-shadow: 0 6px 6px rgba(10, 16, 20, 0.15), 0 0 52px rgba(10, 16, 20, 0.12); @media (max-width: 600px) { margin: 16px auto 0; h2 { margin: 0; } img { max-width: none; height: 70px; } } @media (max-width: 1300px) { img { height: 70px; max-width: none; } } img { margin: 16px; } .card-text-container { margin: 0 16px; p { text-align: left; color: $darkgray; margin: 0; padding: 8px 0; } } &:hover { h2 { color: $pink; } } ul { list-style-type: none; } } .text { color: $darkgray; } .button.hero-cta { display: flex; align-items: center; justify-content: center; width: 184px; height: 40px; padding: 0 24px; font-size: 18px; font-weight: 600; line-height: 40px; background-color: $white; border-radius: 48px; box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); box-sizing: border-box; cursor: pointer; &:hover { opacity: 0.9; } } aio-shell { &.page-home { section { padding: 0; } } &.page-home, &.page-resources, &.page-events, &.page-contribute { article { padding: 32px; @media (max-width: 800px) { padding: 24px; } } } &.page-features { article { padding: 0 3rem; } } &.page-home, &.page-resources, &.page-events, &.page-features { .content img { @media (max-width: 1300px) { max-width: none; } } .feature-section img { max-width: 70px; } @media (max-width: 600px) { mat-sidenav-container.sidenav-container { padding-top: 0; } } } .cta-bar .hero-cta { color: $pink; } } .cta-bar.announcement-bar { background: none; box-shadow: none; } .text-headline { font-size: 20px; font-weight: 500; color: $pink; margin-top: 10px; text-transform: uppercase; } aio-shell:not(.view-SideNav) { mat-sidenav-container.sidenav-container { max-width: none; } } div[layout='row'] { display: flex; justify-content: center; align-items: center; box-sizing: border-box; @media (max-width: 480px) { display: block; } } .layout-row { flex-direction: row; } .home-rows { overflow: hidden; @media (max-width: 600px) { margin: 0; } } .background-superhero-paper { background-size: 100%; background-blend-mode: multiply; } .home-row { max-width: 920px; margin: 32px auto; .promo-img-container, .text-container { max-width: 50%; @media (max-width: 480px) { max-width: 100%; text-align: center; &:nth-child(even) { flex-direction: column-reverse; } } } .text-block { padding-right: 15%; @media (max-width: 600px) { padding: 0; } } .promo-img-container { img { max-width: 90% !important; } p { margin: 0 20px; } img { max-width: 90%; @media (max-width: 599px) { max-width: 100%; float: initial !important; } } } } .marketing-banner { background-color: lighten($pink, 10); margin-top: 64px; padding: 32px; @media (max-width: 600px) { margin-top: 56px; padding: 18px; } .banner-headline { text-transform: uppercase; font-size: 24px; font-weight: 300; color: white; margin: 0; -webkit-margin-before: 0; -webkit-margin-after: 0; @media (max-width: 600px) { font-size: 18px; font-weight: 400; } &:after { display: none; } } } .page-features .marketing-banner { margin-bottom: 20px; } .blm-background { background-color: black; color: white; display: flex; min-height: calc(100vh - 64px); } .text-container.blm-container { text-align: center; line-height: inherit; max-width: inherit; } .blm-text { font-size: 2rem; line-height: inherit; } .blm-list-item { margin: 10px 0; } rxjs-7.5.7/docs_app/src/styles/1-layouts/_not-found.scss000066400000000000000000000006261431412030200232170ustar00rootroot00000000000000#file-not-found { padding: 3rem 3rem 3rem; } .nf-container { align-items: center; padding: 32px; } .nf-response { margin: 32px; height: 100%; flex-direction: column; h1 { font-size: 48px; color: $pink; text-transform: uppercase; margin: 8px 0; } } .nf-icon.material-icons { color: $pink; font-size: 100px; position: static; } rxjs-7.5.7/docs_app/src/styles/1-layouts/_print-layout.scss000066400000000000000000000040411431412030200237500ustar00rootroot00000000000000@media print { // General Adjustments * { box-shadow: none !important; } h1 { height: 40px !important; color: $darkgray !important; } h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } ul, ol, img, code-example, table, tr, .alert, .l-subsection, .feature { page-break-inside: avoid; } table tbody tr:last-child td { border-bottom: 1px solid $lightgray !important; } img { max-width: 100% !important; } p { widows: 4; } p > code, li > code, table code { color: $pink !important; } // No Print Class .no-print { display: none !important; } // Custom No Print for Sidenav Menu mat-sidenav.sidenav.mat-sidenav { display: none !important; } // Custom No Print Element Adjustments .mat-sidenav-content { margin: 0 !important; } mat-sidenav-container.sidenav-container { min-width: 100vw; } .sidenav-content { overflow: visible; } .filetree { max-width: 100%; } aio-code code { border: none !important; } code-example { pre.lang-bash code span { color: $mediumgray !important; } pre.lang-sh code span { color: $darkgray !important; } header { border: 0.5px solid $lightgray; color: $darkgray; } } .content code { border: 0.5px solid $lightgray; } .mat-tab-labels { div.mat-tab-label { &:not(.mat-tab-label-active) span { font-style: italic; } &.mat-tab-label-active span { font-weight: bold; } } } .api-header label { color: $darkgray !important; font-weight: bold !important; margin: 2px !important; padding: 0 !important; display: block !important; } .feature-section img { max-width: 70px !important; } }rxjs-7.5.7/docs_app/src/styles/1-layouts/_sidenav.scss000066400000000000000000000070571431412030200227440ustar00rootroot00000000000000// Disable sidenav animations for the initial render. .starting.mat-drawer-transition .mat-drawer-content { transition: none; } aio-nav-menu { display: block; margin: 0 auto; font-size: 13px; ul, a { padding: 0; margin: 0; } &:first-child { margin-top: 16px; } aio-nav-item div a { padding-left: 6px; } } mat-sidenav.mat-sidenav.sidenav { position: fixed; top: 64px; bottom: 0; left: 0; padding: 0; min-width: 260px; background-color: $offwhite; box-shadow: 6px 0 6px rgba(0,0,0,0.10); &.collapsed { top: 56px; } } mat-sidenav-container.sidenav-container { min-height: 100%; height: auto !important; max-width: 100%; margin: 0; transform: none; &.has-floating-toc { max-width: 82%; } } mat-sidenav-container div.mat-sidenav-content { height: auto; } .vertical-menu-item { box-sizing: border-box; color: $darkgray; cursor: pointer; display: block; max-width: 260px; overflow-wrap: break-word; padding-top: 4px; padding-bottom: 4px; text-decoration: none; text-align: left; width: 93%; word-wrap: break-word; &:hover { background-color: $lightgray; color: $pink; text-shadow: 0 0 5px #ffffff; } &:focus { outline: $accentgrey auto 2px; } //icons _within_ nav .mat-icon { position: absolute; top: 0; right: 0; margin: 4px; } } .vertical-menu-item.selected { color: $pink; } button.vertical-menu-item { border: none; background-color: transparent; margin-right: 0; padding-left: 6px; padding-top: 8px; padding-bottom: 10px; } .heading { color: $darkgray; cursor: pointer; position: relative; text-transform: uppercase; } .heading-children.expanded { visibility: visible; opacity: 1; max-height: 4000px; // Arbitrary max-height. Can increase if needed. Must have measurement to transition height. transition: visibility 500ms, opacity 500ms, max-height 500ms; -webkit-transition-timing-function: ease-in-out; transition-timing-function: ease-in-out; } .heading-children.collapsed { visibility: hidden; opacity: 0; max-height: 1px; // Must have measurement to transition height. transition: visibility 275ms, opacity 275ms, max-height 280ms; -webkit-transition-timing-function: ease-out; transition-timing-function: ease-out; } .no-animations { .heading-children.expanded, .heading-children.collapsed { transition: none! important; } } .level-1 { font-family: $main-font; font-size: 14px; font-weight: 400; margin-left: 14px; transition: background-color 0.2s; text-transform: uppercase; } .level-2 { color: $mediumgray; font-family: $main-font; font-size: 14px; font-weight: 400; margin-left: 12px; text-transform: none; } .level-3 { color: $mediumgray; font-family: $main-font; font-size: 14px; margin-left: 10px; } .level-1.expanded .mat-icon, .level-2.expanded .mat-icon { @include rotate(90deg); } .level-1:not(.expanded) .mat-icon, .level-2:not(.expanded) .mat-icon { @include rotate(0deg); } aio-nav-menu.top-menu { padding: 24px 0 0; aio-nav-item:last-child div { border-bottom: 1px solid rgba($mediumgray, 0.5); } aio-nav-item:first-child div { border-top: 1px solid rgba($mediumgray, 0.5); } } // Angular Version Selector mat-sidenav .doc-version { padding: 8px; border-top: 1px solid $lightgray; select { outline: none; width: 100%; background: rgba($lightgray, 0.5); height: 32px; border: 1px solid $lightgray; color: $darkgray; option { font-family: $main-font; font-size: 14px; } } } rxjs-7.5.7/docs_app/src/styles/1-layouts/_table-of-contents.scss000066400000000000000000000002741431412030200246310ustar00rootroot00000000000000nav#main-table-of-contents { width: 200px; height: 900px; position: fixed; right: 0; top: 50px; bottom: 100px; margin-left: 32px; background-color: $pink; }rxjs-7.5.7/docs_app/src/styles/1-layouts/_top-menu.scss000066400000000000000000000073601431412030200230540ustar00rootroot00000000000000// VARIABLES $hamburgerShownMargin: 0; $hamburgerHiddenMargin: 0 24px 0 -88px; // DOCS PAGE / STANDARD: TOPNAV TOOLBAR FIXED mat-toolbar.mat-toolbar { position: fixed; top: 0; right: 0; left: 0; z-index: 10; box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.3); mat-toolbar-row { padding: 0 16px 0 0; } mat-icon { color: $white; } } // HOME PAGE OVERRIDE: TOPNAV TOOLBAR aio-shell.page-home mat-toolbar.mat-toolbar { background-color: $pink; @media (min-width: 481px) { &:not(.transitioning) { background-color: $pink; transition: background-color 0.2s linear; } } } // MARKETING PAGES OVERRIDE: TOPNAV TOOLBAR AND HAMBURGER aio-shell.page-home mat-toolbar.mat-toolbar, aio-shell.page-features mat-toolbar.mat-toolbar, aio-shell.page-events mat-toolbar.mat-toolbar { box-shadow: none; // FIXED TOPNAV TOOLBAR FOR SMALL MOBILE @media (min-width: 481px) { position: absolute; } } // DOCS PAGES OVERRIDE: HAMBURGER aio-shell.folder-api mat-toolbar.mat-toolbar, aio-shell.folder-docs mat-toolbar.mat-toolbar, aio-shell.folder-guide mat-toolbar.mat-toolbar, aio-shell.folder-tutorial mat-toolbar.mat-toolbar { @media (min-width: 992px) { .hamburger.mat-button { // Hamburger shown on non-marketing pages on large screens. margin: $hamburgerShownMargin; } } } // HAMBURGER BUTTON .hamburger.mat-button { height: 100%; margin: $hamburgerShownMargin; padding: 0; &:not(.starting) { transition-duration: 0.4s; transition-property: color, margin; transition-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1); } @media (min-width: 992px) { // Hamburger hidden by default on large screens. // (Will be shown per doc.) margin: $hamburgerHiddenMargin; } &:hover { color: $offwhite; } & .mat-icon { color: white; position: inherit; } } // HOME NAV-LINK .nav-link.home img { position: relative; margin-top: -21px; margin-right: 20px; top: 12px; height: 40px; @media (max-width: 992px) { &:hover { transform: scale(1.1); } } } // TOP MENU aio-top-menu { display: flex; flex-direction: row; align-items: center; width: 80%; ul { display: flex; flex-direction: row; align-items: center; list-style-position: inside; padding: 0px; margin: 0px; li { padding-bottom: 2px; list-style-type: none; cursor: pointer; &:hover { opacity: 0.7; } &:focus { background-color: $accentgrey; outline: none; } } } a.nav-link { margin: 0; padding: 24px 16px; cursor: pointer; &:focus { background: rgba($white, 0.15); border-radius: 4px; outline: none; padding: 8px 16px; } } } // SEARCH BOX aio-search-box.search-container { display: flex; justify-content: flex-end; align-items: center; width: 100%; min-width: 150px; height: 100%; input { color: $darkgray; border: none; border-radius: 100px; background-color: $offwhite; padding: 5px 16px; margin-left: 8px; width: 180px; max-width: 240px; height: 50%; -webkit-appearance: none; &:focus { outline: none; } @include bp(big) { transition: width 0.4s ease-in-out; &:focus { width: 50%; } } @media (max-width: 480px) { width: 150px; } } } // EXTERNAL LINK ICONS .app-toolbar { .toolbar-external-icons-container { display: flex; flex-direction: row; height: 100%; a { display: flex; align-items: center; margin-left: 16px; @media screen and (max-width: 480px) { margin-left: 8px; } &:hover { opacity: 0.8; } img { height: 24px; } } } } rxjs-7.5.7/docs_app/src/styles/2-modules/000077500000000000000000000000001431412030200202175ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/styles/2-modules/_alert.scss000066400000000000000000000013571431412030200223700ustar00rootroot00000000000000.alert { padding: 16px; margin: 24px 0px; font-size: 14px; color: $darkgray; width: 100%; box-sizing: border-box; &.is-critical { border-left: 10px solid $pink; background-color: rgba($pink, 0.05); h1, h2, h3, h4, h5, h6 { color: $pink; } } &.is-important { border-left: 10px solid $orange; background-color: rgba($orange, 0.05); h1, h2, h3, h4, h5, h6 { color: $orange; } } &.is-helpful { border-left: 10px solid $pink; background-color: rgba($pink, 0.05); h1, h2, h3, h4, h5, h6 { color: $pink; } } > * { margin: 0; padding: 8px 16px; } }rxjs-7.5.7/docs_app/src/styles/2-modules/_api-list.scss000066400000000000000000000123371431412030200230030ustar00rootroot00000000000000/* API EDIT ICON */ #api { .api-filter .material-icons { right: 48px; } } /* API LIST STYLES */ aio-api-list { div.form-search i.material-icons { width: 20px; pointer-events: none; } .form-search input { width: 182px; } .api-list-container { display: flex; flex-direction: column; margin: 0 auto; h2 { margin-top: 16px; } } } .api-filter { display: flex; margin: 0 auto; @media (max-width: 600px) { flex-direction: column; margin: 16px auto; } .form-select-menu, .form-search { margin: 8px; } } /* LAYOUT */ .docs-content { position: relative; } .l-content-small { padding: 16px; max-width: 1100px; margin: 0; @media handheld and (max-width: $phone-breakpoint), screen and (max-device-width: $phone-breakpoint), screen and (max-width: $tablet-breakpoint) { padding: 24px 0 0; } } /* SEARCH BAR */ .form-search { position: relative; input { box-shadow: 0 2px 2px rgba($black, 0.24), 0 0 2px rgba($black, 0.12); box-sizing: border-box; border: 1px solid $white; color: $blue-600; font-size: 16px; height: 32px; line-height: 32px; outline: none; padding: 0 16px 0 32px; transition: all .2s; // PLACEHOLDER TEXT &::-webkit-input-placeholder { /* Chrome/Opera/Safari */ color: $blue-grey-100; font-size: 14px; } &::-moz-placeholder { /* Firefox 19+ */ color: $blue-grey-100; font-size: 14px; } &:-ms-input-placeholder { /* IE 10+ */ color: $blue-grey-100; font-size: 14px; } &:-moz-placeholder { /* Firefox 18- */ color: $blue-grey-100; font-size: 14px; } &:focus { border: 1px solid $blue-400; box-shadow: 0 2px 2px rgba($blue-400, 0.24), 0 0 2px rgba($blue-400, 0.12); } } .material-icons { color: $blue-grey-100; font-size: 20px; left: 8px; position: absolute; top: 6px; z-index: $layer-1; } } /* API SYMBOLS */ /* SYMBOL CLASS */ .symbol { border-radius: 2px; box-shadow: 0 1px 2px rgba($black, .24); color: $white; display: inline-block; font-size: 10px; font-weight: 600; line-height: 16px; text-align: center; width: 16px; // SYMBOL TYPES // Symbol mapping variables in *constants* @each $name, $symbol in $api-symbols { &.#{$name} { background: map-get($symbol, background); &:before { content: map-get($symbol, content); } } } } /* API HOMEE PAGE */ /* API FILTER MENU */ .api-filter { aio-select { width: 200px; .symbol { margin-right: 8px; } } .form-search { float: left; } } /* API CLASS LIST */ .docs-content .api-list { list-style: none; margin: 0 0 32px -8px; padding: 0; overflow: hidden; @media screen and (max-width: 600px) { margin: 0 0 0 -8px; } li { font-size: 14px; margin: 8px 0; line-height: 14px; padding: 0; float: left; width: 33%; overflow: hidden; min-width: 220px; text-overflow: ellipsis; white-space: nowrap; .symbol { margin-right: 8px; } a { color: $blue-grey-600; display: inline-block; line-height: 16px; padding: 0 16px 0; text-decoration: none; transition: all .3s; overflow: hidden; text-overflow: ellipsis; &:hover { background: $blue-grey-50; color: $blue-500; } } .stability { &.deprecated { text-decoration: line-through; } &.experimental { font-style: italic; } } } } .docs-content .h2-api-docs, .docs-content .h2-api-docs:first-of-type { font-size: 18px; line-height: 24px; margin-top: 0; } .code-links { a { code, .api-doc-code { color: #1E88E5 !important; } } } .openParens { margin-top: 15px; } .endParens { margin-bottom: 20px !important; } p { &.selector { margin: 0; } &.location-badge { margin: 0 0 16px 16px !important; } .api-doc-code { border-bottom: 0; :hover { border-bottom: none; } } } .row-margin { margin-bottom: 36px; h2 { line-height: 28px; } } .code-margin { margin-bottom: 8px; } .no-bg { background: none; padding: 0; } .no-bg-with-indent { padding-top: 0; padding-bottom: 0; padding-left: 16px; margin-top: 6px; margin-bottom: 0; background: none; } .code-background { padding: 0 5px 0; span.pln { color: #1E88E5 !important; } } .code-anchor { cursor: pointer; &:hover { text-decoration: underline; } } .api-doc-code { font-size: 14px; color: #1a2326; // the last .pln (white space) creates additional spacing between sections of the api doc. Remove it. &.no-pln { .pln:last-child { display: none; } } } @media screen and (max-width: 600px) { .docs-content { // Overrides display flex from angular material. // This was added because Safari doesn't play nice with layout="column". // Look of API doc in Chrome and Firefox remains the same, and is fixed for Safari. .layout-xs-column { display: block !important; } } .api-doc-code { font-size: 12px; } p.location-badge { position: relative; font-size: 11px; } } rxjs-7.5.7/docs_app/src/styles/2-modules/_api-pages.scss000066400000000000000000000030521431412030200231210ustar00rootroot00000000000000.page-actions { float: right; .material-icons { border-radius: 4px; padding: 4px; font-size: 20px; &:hover { background-color: $mist; } } } .api-header { display: flex; align-items: center; @media screen and (max-width: 600px) { flex-direction: column; align-items: flex-start; } > h1 { margin-right: 1rem; } } .api-body { .class-overview { position: relative; code-example { clear: left; } } .description img { border: 1px solid #dfdfdf; max-width: 100%; width: 100%; } .method-table { h3 { margin: 6px 0; font-weight: bold; } h4 { font-size: 14px; font-weight: bold; margin-top: 12px; } } .api-heading { padding: 5px 0; font-size: 16px; font-weight: bold; } .short-description { margin: 6px 0 0 10px; } .properties-table { font-size: 14px; thead th { &:nth-child(1) { width: 20%; } &:nth-child(2) { width: 20%; } } } .parameters-table { margin-top: 0; font-size: 14px; td:nth-child(1) { width: 20%; } } details.overloads { margin-left: -8px; summary { height: inherit; padding: 8px 12px; h4 { margin: 0; clear: left; } } } .api-section aio-code { background-color: rgba(241, 241, 241, 0.2); } .from-constructor, .read-only-property { font-style: italic; color: $pink; } } .deprecated-api-item { text-decoration: line-through; } rxjs-7.5.7/docs_app/src/styles/2-modules/_buttons.scss000066400000000000000000000041121431412030200227470ustar00rootroot00000000000000/* Button Styles */ .button, a.button.mat-button { display: inline-block; line-height: 32px; padding: 0px 16px; font-size: 14px; font-weight: 400; border-radius: 3px; text-decoration: none; text-transform: uppercase; overflow: hidden; border: none; // SIZES &.button-small { font-size: 12px; line-height: 24px; padding: 0px 8px; } &.button-large { font-size: 15px; line-height: 48px; padding: 0px 24px; } &.button-x-large { font-size: 16px; line-height: 56px; padding: 0px 24px; } // COLORS &.button-secondary { background: $mediumgray; color: rgba($white, .87); } &.button-plain { background: $white; color: rgba($darkgray, .87); } &.button-subtle { background: $mediumgray; color: darken($offwhite, 10%); } &.button-navy { background: $pink; color: rgba($white, .87); } &.button-banner { background: $darkgray; color: rgba($white, .87); } // &.button-shield, // &.button-shield.mat-button { // background-color: $pink; // background: $pink url('assets/images/logos/angular/angular_whiteTransparent.svg') 24px 13px no-repeat; // color: rgba($white, .87); // padding-left: 54px; // background-size: 22px 22px; // @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2) { // background: $pink url('assets/images/logos/angular/angular_whiteTransparent.svg') 24px 13px no-repeat; // background-size: 22px 22px; // } // } } .cta-bar { text-align: center; .button { margin: 0px 8px; box-shadow: 0 2px 5px 0 rgba(0,0,0,.26); transition: all .2s ease-in-out; &:hover { transform: scale(1.1); color: $offwhite; } } } a.filter-button { width: 140px; font-size: 14px; padding: 0px 16px; margin: 8px; line-height: 48px; border: 2px solid $pink; border-radius: 4px; &:hover { background-color: $pink; color: white; } } [mat-button], [mat-raised-button], [mat-button], [mat-raised-button] { text-transform: uppercase; } rxjs-7.5.7/docs_app/src/styles/2-modules/_callout.scss000066400000000000000000000013171431412030200227200ustar00rootroot00000000000000.callout { @extend .alert; padding: 0px; border-left: none !important; border-radius: 4px; header { color: $white; line-height: 24px; font-weight: 500; text-transform: uppercase; border-radius: 4px 4px 0 0; } p { padding: 16px; margin: 0px; font-size: 14px; } &.is-critical { border-color: $brightred; background: rgba($brightred, 0.05); header { background: $brightred; } } &.is-important { border-color: $orange; background: rgba($orange, 0.05); header { background: $amber-700; } } &.is-helpful { border-color: $pink; background: rgba($pink, 0.05); header { background: $pink; } } }rxjs-7.5.7/docs_app/src/styles/2-modules/_card.scss000066400000000000000000000022531431412030200221660ustar00rootroot00000000000000.card-container { display: flex; flex-direction: row; flex-wrap: wrap; margin: 24px 0; } .docs-card { @include card(194px, 30%); max-width: 340px; min-width: 262px; margin: 24px 8px; padding-bottom: 48px; position: relative; &:hover { text-decoration: none; section { color: $pink; } p { color: $darkgray; padding: 0 16px; } .card-footer { line-height: 32px; padding: 8px 16px; background-color: rgba($pink, 0.1); color: $pink; } } section { color: $darkgray; font-size: 20px; line-height: 24px; margin: 0; padding: 32px 0 24px; text-transform: none; text-align: center; } p { color: $darkgray; font-size: 13px; line-height: 24px; padding: 0 16px; margin: 0; text-align: center; } .card-footer { bottom: 0; border-top: 0.5px solid $lightgray; box-sizing: border-box; line-height: 48px; left: 0; position: absolute; right: 0; text-align: right; color: $mediumgray; a { color: $mediumgray; font-size: 13px; } } .card-footer.center { text-align: center; } } rxjs-7.5.7/docs_app/src/styles/2-modules/_code.scss000066400000000000000000000073701431412030200221740ustar00rootroot00000000000000code-example, code-tabs { clear: both; display: block; } code-example, code-tabs mat-tab-body { &:not(.no-box) { background-color: rgba($backgroundgray, 0.2); border: 0.5px solid $lightgray; border-radius: 5px; color: $darkgray; margin: 16px auto; } &.no-box { pre { margin: 0; } code { background-color: transparent; } } code { overflow: auto; } } // TERMINAL / SHELL TEXT STYLES code-example.code-shell, code-example[language=sh], code-example[language=bash] { background-color: $darkgray; } code-example header { background-color: $accentgrey; border-radius: 5px 5px 0 0; color: $offwhite; font-size: 16px; padding: 8px 16px; } code-example.avoid header, code-example.avoidFile header { border: 2px solid $anti-pattern; background: $anti-pattern; } code-example.avoid, code-example.avoidFile, code-tabs.avoid mat-tab-body, code-tabs.avoidFile mat-tab-body { border: 0.5px solid $anti-pattern; } code-tabs div .mat-tab-body-content { height: auto; } code-tabs .mat-tab-body-wrapper mat-tab-body .mat-tab-body { overflow-y: hidden; } code-tabs mat-tab-body-content .fadeIn { animation: opacity 2s ease-in; } aio-code pre { display: flex; min-height: 32px; margin: 16px 24px; white-space: pre-wrap; align-items: center; code span { line-height: 24px; } } .code-missing { color: $darkred; } .copy-button, .edit-button { position: absolute; top: -8px; right: -32px; color: $blue-grey-200; background-color: transparent; border: none; cursor: pointer; &:hover { color: $mediumgray; } } .edit-button { right: 0; } .lang-sh .copy-button, .lang-bash .copy-button { color: $mediumgray; &:hover { color: $lightgray; } } .code-tab-group .mat-tab-label { white-space: nowrap; } .code-tab-group .mat-tab-body-content { height: auto; transform: none; } [role="tabpanel"] { transition: none; } .sidenav-content code a { color: inherit; font-size: inherit; } /* PRETTY PRINTING STYLES for prettify.js. */ .prettyprint { position: relative; } /* Specify class=linenums on a pre to get line numbering */ ol.linenums { margin: 0; font-family: $main-font; color: #B3B6B7; li { margin: 0; font-family: $code-font; font-size: 90%; line-height: 24px; } } /* The following class|color styles are derived from https://github.com/google/code-prettify/blob/master/src/prettify.css*/ /* SPAN elements with the classes below are added by prettyprint. */ .pln { color: #000 } /* plain text */ @media screen { .str { color: #800 } /* string content */ .kwd { color: #00f } /* a keyword */ .com { color: #060 } /* a comment */ .typ { color: #de0000 } /* a type name */ .lit { color: #0074af } /* a literal value */ /* punctuation, lisp open bracket, lisp close bracket */ .pun, .opn, .clo { color: #660 } .tag { color: #008 } /* a markup tag name */ .atn { color: #606 } /* a markup attribute name */ .atv { color: #800 } /* a markup attribute value */ .dec, .var { color: #606 } /* a declaration; a variable name */ .fun { color: #de0000 } /* a function name */ } /* Use higher contrast and text-weight for printable form. */ @media print, projection { .str { color: #060 } .kwd { color: #006; font-weight: bold } .com { color: #600; font-style: italic } .typ { color: #404; font-weight: bold } .lit { color: #044 } .pun, .opn, .clo { color: #440 } .tag { color: #006; font-weight: bold } .atn { color: #404 } .atv { color: #060 } } /* SHELL / TERMINAL CODE BLOCKS */ code-example.code-shell, code-example[language=sh], code-example[language=bash] { & .pnk, .blk,.pln, .otl, .kwd, .typ, .tag, .str, .atv, .atn, .com, .lit, .pun, .dec { color: $codegreen; } } rxjs-7.5.7/docs_app/src/styles/2-modules/_contribute.scss000066400000000000000000000002471431412030200234340ustar00rootroot00000000000000.contribute-container { h2 { margin: 0; } .l-sub-section { width: 90%; margin-bottom: 20px; &:last-child { margin-bottom: 0; } } } rxjs-7.5.7/docs_app/src/styles/2-modules/_contributor.scss000066400000000000000000000066051431412030200236340ustar00rootroot00000000000000aio-contributor-list { @media handheld and (max-width: 480px), screen and (max-width: 480px), screen and (max-width: 900px) { .grid-fluid{ width: auto; } } @media handheld and (max-width: 480px), screen and (max-width: 480px), screen and (max-width: 900px) { .grid-fluid{ margin-left: 20px; margin-right: 20px; float: none; display: block; width: auto; } } } .group-buttons { margin: 32px auto; a { &.selected { background-color: $pink; color: white; } } } .contributor-group { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; } aio-contributor { background: $white; margin: 8px; position: relative; cursor: pointer; border-radius: 4px; box-shadow: 0 2px 2px rgba(10, 16, 20, 0.24), 0 0 2px rgba(10, 16, 20, 0.12); transition: all .3s; perspective: 800px; &:hover { transform: translate3d(0,-3px,0); box-shadow: 0 8px 8px rgba(10, 16, 20, 0.24), 0 0 8px rgba(10, 16, 20, 0.12); .contributor-image { transform: scale(1.05); } .contributor-info { opacity: 1; } } .contributor-info { background: rgba($darkgray, 0.5); height: 168px; width: 168px; display: flex; flex-direction: row; justify-content: center; align-items: center; text-align: center; opacity: 0; border-radius: 50%; [mat-button] { color: $white; font-size: 14px; font-weight: 500; margin: 8px; padding: 0; &:hover { color: $lightgray; } &.icon { min-width: 20px; width: 20px; .fa-2x { font-size: 20px; } } } } div.contributor-card { width: 250px; height: 270px; display: flex; flex-direction: column; align-items: center; justify-content: space-between; position: relative; overflow: hidden; border-radius: 4px; transform-style:preserve-3d; transition:transform ease 500ms; h3 { margin: 8px 0; } .card-front, .card-back { width: 100%; height: 100%; text-align: center; display: flex; flex-direction: column; box-sizing: border-box; } .card-front { justify-content: center; } .card-back { height: 100%; display: flex; flex-direction: column; justify-content: center; padding: 16px 24px; transform:rotateY(180deg); section { display: none; } p { margin: 8px 0; font-size: 12px; line-height: 14px; text-align: left; } } &.flipped { transform:rotateY(180deg); .card-front { display: none; } } } .contributor-image { display: flex; justify-content: center; border-radius: 50%; align-items: center; height: 168px; width: 168px; background-size: cover; background-position: center; margin: 8px auto; border: 2px solid $lightgray; transition: all .2s ease-in-out; } section { font-size: 14px; font-weight: 500; padding: 8px; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-transform: uppercase; } p { cursor: pointer; font-size: 14px; line-height: 18px; margin: 8px 16px; text-overflow: ellipsis; overflow: scroll; font-weight: 400; } } rxjs-7.5.7/docs_app/src/styles/2-modules/_deploy-theme.scss000066400000000000000000000014151431412030200236500ustar00rootroot00000000000000 aio-shell.mode-archive { .mat-toolbar.mat-primary, footer { background: linear-gradient(145deg,#263238,#78909C); } .vertical-menu-item { &.selected, &:hover { color: #263238; } } .toc-inner ul.toc-list li.active a { color: #263238; &:before { background-color: #263238; } } .toc-inner ul.toc-list li:hover a { color: #263238; } } aio-shell.mode-next { .mat-toolbar.mat-primary, footer { background: linear-gradient(145deg,#DD0031,#C3002F); } .vertical-menu-item { &.selected, &:hover { color: #DD0031; } } .toc-inner ul.toc-list li.active a { color: #DD0031; &:before { background-color: #DD0031; } } .toc-inner ul.toc-list li:hover a { color: #DD0031; } } rxjs-7.5.7/docs_app/src/styles/2-modules/_details.scss000066400000000000000000000020451431412030200227010ustar00rootroot00000000000000/* * General styling to make detail/summary tags look a bit more material * To get the best out of it you should structure your usage like this: * * ``` *
* Some title *
* Some content *
*
* */ summary { cursor: pointer; font-size: 16px; position: relative; padding: 16px 24px; color: $black; height: 16px; display: block; // Remove the built in details marker in FF &::-webkit-details-marker { display: none; // Remove the built in details marker in webkit } &::before { content: '\E5CE'; // See https://material.io/icons/#ic_expand_less font-family: 'Material Icons'; font-size: 24px; -webkit-font-smoothing: antialiased; @include rotate(0deg); // We will rotate 180 degrees when details is open float: right; } } details { box-shadow: 0 1px 4px 0 rgba($black, 0.37); .detail-contents { padding: 16px 24px; } &[open] > summary::before { @include rotate(180deg); // Rotate the icon } } rxjs-7.5.7/docs_app/src/styles/2-modules/_edit-page-cta.scss000066400000000000000000000002701431412030200236560ustar00rootroot00000000000000.edit-page-cta { font-weight: 400; font-size: 14px; color: $pink; text-align: right; margin-right: 32px; display: block; position: absolute; right: 0; }rxjs-7.5.7/docs_app/src/styles/2-modules/_features.scss000066400000000000000000000011001431412030200230610ustar00rootroot00000000000000// FEATURES MARKETING PAGE SPECIFIC STYLES .feature-section { margin: 0 0 32px; .feature-header, .text-headline { text-align: center; } .feature-header img { margin: 16px; } .feature-title { font-size: 16px; font-weight: 500; margin: 8px 0px; clear: both; } .feature-row { display: flex; flex-wrap: wrap; @media (max-width: 600px) { flex-direction: column; } .feature { max-width: 300px; margin: 0 16px; @media (max-width: 768px) { max-width: 100%; } } } }rxjs-7.5.7/docs_app/src/styles/2-modules/_filetree.scss000066400000000000000000000012751431412030200230570ustar00rootroot00000000000000.filetree { background: $offwhite; border: 4px solid $lightgray; border-radius: 4px; margin: 0 0 24px 0; padding: 16px 32px; .file { display: block; font-family: $main-font; letter-spacing: 0.3px; line-height: 32px; color: $darkgray; } .children { padding-left: 24px; position: relative; overflow: hidden; .file { position: relative; &:before { content: ''; left: -18px; bottom: 16px; width: 16px; height: 9999px; position: absolute; border-width: 0 0 1px 1px; border-style: solid; border-color: $lightgray; border-radius: 0 0 0 3px; } } } }rxjs-7.5.7/docs_app/src/styles/2-modules/_heading-anchors.scss000066400000000000000000000005071431412030200243070ustar00rootroot00000000000000.sidenav-content { h1, h2, h3, h4, h5, h6 { .header-link { color: $mediumgray; margin: 0 4px; text-decoration: none; user-select: none; visibility: hidden; display: inline-block; vertical-align: text-top; } &:hover .header-link { visibility: visible; } } } rxjs-7.5.7/docs_app/src/styles/2-modules/_hr.scss000066400000000000000000000003101431412030200216560ustar00rootroot00000000000000hr { border: none; background: $lightgray; height: 1px; } .hr-margin { display: block; height: 1px; border: 0; margin-top: 16px; margin-bottom: 16px; padding: 0; }rxjs-7.5.7/docs_app/src/styles/2-modules/_images.scss000066400000000000000000000013221431412030200225160ustar00rootroot00000000000000.content { img { &.right { clear: both; float: right; margin-left: 20px; margin-bottom: 20px; } &.left { clear: both; float: left; margin-right: 20px; margin-bottom: 20px; } @media (max-width: 1300px) { max-width: 100%; height: auto; } @media (max-width: 600px) { float: none !important; &.right { margin-left: 0; } &.left { margin-right: 0; } } } figure { border-radius: 4px; background: $white; padding: 20px; display: inline-block; box-shadow: 2px 2px 5px 0 rgba(0, 0, 0, .2); margin: 0 0 14px 0; img { border-radius: 4px; } } } rxjs-7.5.7/docs_app/src/styles/2-modules/_label.scss000066400000000000000000000030201431412030200223250ustar00rootroot00000000000000label.raised, .api-header label { border-radius: 4px; padding: 4px 16px; display: inline; font-size: 14px; color: white; margin-right: 8px; font-weight: 500; text-transform: uppercase; @media screen and (max-width: 600px) { display: block; margin: 8px 0; } &.page-label { display: flex; flex-direction: row; justify-content: center; align-items: center; background-color: $mist; color: $mediumgray; margin-bottom: 8px; width: 140px; .material-icons { margin-right: 8px; } } &.property-type-label { font-size: 12px; background-color: $darkgray; color: $white; text-transform: none; } } .api-header { margin-right: 10px; label { // The API badges should be a little smaller padding: 2px 10px; font-size: 12px; @media screen and (max-width: 600px) { margin: 4px 0; } &.api-status-label { background-color: $mediumgray; &.impure-pipe { background-color: $brightred; } &.operator { background-color: $brightred; } } &.api-type-label { background-color: $accentgrey; @each $name, $symbol in $api-symbols { &.#{$name} { background: map-get($symbol, background); } } } } } rxjs-7.5.7/docs_app/src/styles/2-modules/_modules-dir.scss000066400000000000000000000013471431412030200235040ustar00rootroot00000000000000/* ============================== MODULE STYLES ============================== */ @import 'alert'; @import 'api-pages'; @import 'api-list'; @import 'buttons'; @import 'callout'; @import 'card'; @import 'code'; @import 'contribute'; @import 'contributor'; @import 'details'; @import 'edit-page-cta'; @import 'features'; @import 'filetree'; @import 'heading-anchors'; @import 'hr'; @import 'images'; @import 'progress-bar'; @import 'table'; @import 'presskit'; @import 'resources'; @import 'scrollbar'; @import 'search-results'; @import 'subsection'; @import 'toc'; @import 'select-menu'; @import 'deploy-theme'; @import 'notification'; @import 'label'; rxjs-7.5.7/docs_app/src/styles/2-modules/_notification.scss000066400000000000000000000043641431412030200237500ustar00rootroot00000000000000$notificationHeight: 56px; // we need to override some of the toolbar styling .mat-toolbar mat-toolbar-row.notification-container { padding: 0; height: auto; overflow: hidden; } aio-notification { background: $darkgray; display: flex; position: relative; align-items: center; width: 100%; height: $notificationHeight; justify-content: center; @media (max-width: 430px) { justify-content: flex-start; padding-left: 10px; } .close-button { position: absolute; top: 0; right: 0; width: $notificationHeight; height: $notificationHeight; background: $darkgray; } .content { display: flex; max-width: calc(100% - #{$notificationHeight}); text-transform: none; padding: 0; .icon { margin-right: 10px; @media (max-width: 464px) { display: none; } } .message { overflow: hidden; text-overflow: ellipsis; } .action-button { margin-left: 10px; background: $pink; border-radius: 15px; text-transform: uppercase; padding: 6px 10px; font-size: 12px; @media (max-width: 780px) { display: none; } } } } // Here are all the hacks to make the content and sidebars the right height // when the notification is visible .aio-notification-show { .sidenav-content { padding-top: 80px + $notificationHeight; } mat-sidenav.mat-sidenav.sidenav { top: 56px + $notificationHeight; @media (max-width: 600px) { top: 56px + $notificationHeight; } } .toc-container { top: 76px + $notificationHeight; } .search-results { padding-top: 68px + $notificationHeight; } &.page-home, &.page-resources, &.page-events, &.page-features, &.page-presskit, &.page-contribute { section { padding-top: $notificationHeight; } } } // Animate the content when the notification bar is dismissed // this should be kept in sync with the animation durations in // - aio/src/app/layout/notification/notification.component.ts // - aio/src/app/app.component.ts : notificationDismissed() .aio-notification-animating { .sidenav-content { transition: padding-top 250ms ease; } mat-sidenav.mat-sidenav.sidenav, .toc-container { transition: top 250ms ease; } } rxjs-7.5.7/docs_app/src/styles/2-modules/_presskit.scss000066400000000000000000000025141431412030200231210ustar00rootroot00000000000000.presskit-container { padding: 0 32px 32px 32px; h2 { color: #37474F; } .l-space-left-3 { margin-left: 3 * 8px; } .cc-by-anchor { text-decoration: underline; color: grey !important; } .presskit-row { margin: 48px 0; width: 100%; .presskit-inner { display: flex; align-items: center; @media(max-width: 599px) { flex-direction: column; } h3 { font-weight: 500; margin-top: 0; margin-bottom: 0; color: #455A64; @media(max-width: 599px) { padding-bottom: 16px; } } .transparent-img-bg { margin-top: 10px; border-radius: 4px; width: 128px; height: 128px; background-color: #34474F; } ul { padding: 0; list-style-type: none; @media(max-width: 599px) { padding: 0 !important; margin: 0 !important; } li { margin: 0 0 8px 0; } } } .presskit-image-container { @media(max-width: 599px) { text-align: center; } img { width: 128px; height: 128px; margin-bottom: 8px * 2; } } } .presskit-row:first-child { margin-top: 0; @media(max-width: 599px) { margin-top: 48px; } } } rxjs-7.5.7/docs_app/src/styles/2-modules/_progress-bar.scss000066400000000000000000000001731431412030200236620ustar00rootroot00000000000000.progress-bar-container { height: 2px; overflow: hidden; position: fixed; top: 0; width: 100vw; z-index: 11; } rxjs-7.5.7/docs_app/src/styles/2-modules/_resources.scss000066400000000000000000000074471431412030200233010ustar00rootroot00000000000000.showcase { width: 80%; } .c-resource-nav { width: 20%; } .resources-container { position: relative; } .grid-fixed:after, .grid-fixed:before { content: '.'; clear: both; display: block; overflow: hidden; visibility: hidden; font-size: 0; line-height: 0; width: 0; height: 0; } @media handheld and (max-width: 480px), screen and (max-width: 480px), screen and (max-width: 900px) { .grid-fixed { width: auto; } } @media handheld and (max-width: 480px), screen and (max-width: 480px), screen and (max-width: 900px) { .grid-fixed .c3, .grid-fixed .c8 { margin-left: 20px; margin-right: 20px; float: none; display: block; width: auto; } } @media handheld and (max-width: 480px), screen and (max-width: 480px), screen and (max-width: 480px) { .grid-fixed .c3, .grid-fixed .c8 { margin-left: 0px; margin-right: 0px; float: none; display: block; width: auto; } } @media handheld and (max-width: 900px), screen and (max-width: 900px) { /* line 6, ../scss/_responsive.scss */ .grid-fixed{ margin: 0 auto; *zoom: 1; } .grid-fixed:after, .grid-fixed:before, { content: '.'; clear: both; display: block; overflow: hidden; visibility: hidden; font-size: 0; line-height: 0; width: 0; height: 0; } } @media handheld and (max-width: 480px), screen and (max-width: 480px) { /* line 6, ../scss/_responsive.scss */ .grid-fixed { margin: 0 auto; *zoom: 1; } .grid-fixed:after, .grid-fixed:before { content: '.'; clear: both; display: block; overflow: hidden; visibility: hidden; font-size: 0; line-height: 0; width: 0; height: 0; } } aio-resource-list { .shadow-1 { transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 1px 4px 0 rgba($black, 0.37); } .showcase { margin-bottom: 8px * 6; border-radius: 4px; } .c-resource { h4 { margin: 0; line-height: 24px; } p { margin: 0; } } .c-resource-nav { position: fixed; top: 142px; right: 32px; width: 8px * 20; z-index: 1; background-color: #fff; border-radius: 2px; a { color: #373E41; text-decoration: none; } .category { padding: 10px 0; .category-link { display: block; margin: 2px 0; padding: 3px 14px; font-size: 18px !important; &:hover { background: #edf0f2; color: #2B85E7; } } } .subcategory { .subcategory-link { display: block; margin: 2px 0; padding: 4px 14px; &:hover { background: #edf0f2; color: #2B85E7; } } } } .h-anchor-offset { display: block; position: relative; top: -20px; visibility: hidden; } .l-flex--column { display: flex; flex-direction: column; } .c-resource-header { margin-bottom: 16px; } .c-contribute { margin-bottom: 24px; } .c-resource-header h2 { margin: 0; } .subcategory-title { padding: 16px 23px; margin: 0; background-color: $mist; color: #373E41; } .h-capitalize { text-transform: capitalize; } .h-hide { display: none; } .resource-row-link { color: #1a2326; border: transparent solid 1px; margin: 0; padding: 16px 23px 16px 23px; position: relative; text-decoration: none; transition: all .3s; } .resource-row-link:hover { color: #1a2326; text-decoration: none; border-color: #2B85E7; border-radius: 4px; box-shadow: 0 8px 8px rgba(1, 67, 163, .24), 0 0 8px rgba(1, 67, 163, .12), 0 6px 18px rgba(43, 133, 231, .12); transform: translateY(-2px); } @media(max-width: 900px) { .c-resource-nav { display: none; } } } rxjs-7.5.7/docs_app/src/styles/2-modules/_scrollbar.scss000066400000000000000000000016141431412030200232400ustar00rootroot00000000000000body::-webkit-scrollbar, mat-sidenav.sidenav::-webkit-scrollbar, .mat-sidenav-content::-webkit-scrollbar { height: 6px; width: 6px; } body::-webkit-scrollbar-track, mat-sidenav.sidenav::-webkit-scrollbar-track, .mat-sidenav-content::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); } body::-webkit-scrollbar-thumb, mat-sidenav.sidenav::-webkit-scrollbar-thumb, .mat-sidenav-content::-webkit-scrollbar-thumb { background-color: $mediumgray; outline: 1px solid $darkgray; } .search-results::-webkit-scrollbar, .toc-container::-webkit-scrollbar { height: 4px; width: 4px; } .search-results::-webkit-scrollbar-track, .toc-container::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3); } .search-results::-webkit-scrollbar-thumb, .toc-container::-webkit-scrollbar-thumb { background-color: $mediumgray; outline: 1px solid slategrey; } rxjs-7.5.7/docs_app/src/styles/2-modules/_search-results.scss000066400000000000000000000035031431412030200242200ustar00rootroot00000000000000aio-search-results { z-index: 10; } .search-results { display: flex; flex-direction: row; justify-content: space-around; overflow: auto; padding: 68px 32px 0; color: $offwhite; width: auto; max-height: 95vh; position: fixed; top: 0; left: 0; right: 0; z-index: 5; background-color: $darkgray; box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.3); box-sizing: border-box; @media (max-width: 480px) { display: block; .search-area { display: block; margin: 16px 16px; } } } aio-search-results.embedded .search-results { padding: 0; color: inherit; width: auto; max-height: 100%; position: relative; background-color: inherit; box-shadow: none; box-sizing: border-box; .search-area a { color: lighten($darkgray, 10); &:hover { color: $accentgrey; } } } .search-area { display: flex; flex-direction: column; margin: 16px 16px; height: 100%; h3 { font-size: 16px; font-weight: 400; margin: 10px 0px 5px; text-transform: uppercase; } ul { margin: 0; padding: 0; li { display: inline-block; list-style: none; min-width: 270px; padding: .5em 1.5em; } } a { font-size: 14px; color: $lightgray; text-decoration: none; font-weight: normal; &:hover { color: $white; } &:visited { text-decoration: none; } span.symbol { margin-right: 8px; } } .priority-pages { padding: 0.5rem 0; a { font-weight: bold; } } @include bp(tiny) { display: block; } } rxjs-7.5.7/docs_app/src/styles/2-modules/_select-menu.scss000066400000000000000000000024641431412030200235020ustar00rootroot00000000000000/* SELECT MENU */ .form-select-menu { position: relative; } .form-select-button { background: $white; box-shadow: 0 2px 2px rgba($black, 0.24), 0 0 2px rgba($black, 0.12); box-sizing: border-box; border: 1px solid $white; color: $blue-grey-600; font-size: 12px; font-weight: 400; height: 32px; line-height: 32px; outline: none; padding: 0 16px; text-align: left; width: 100%; cursor: pointer; strong { font-weight: 600; margin-right: 8px; text-transform: uppercase; } &:focus { border: 1px solid $blue-400; box-shadow: 0 2px 2px rgba($blue-400, 0.24), 0 0 2px rgba($blue-400, 0.12); } } .form-select-dropdown { background: $white; box-shadow: 0 16px 16px rgba($black, 0.24), 0 0 16px rgba($black, 0.12); border-radius: 4px; list-style-type: none; margin: 0; padding: 0; position: absolute; top: 0; width: 100%; z-index: $layer-2; li { cursor: pointer; font-size: 14px; line-height: 32px; margin: 0; padding: 0 16px 0 40px; position: relative; transition: all .2s; &:hover { background: $blue-grey-50; color: $blue-500; } &.selected { background-color: $blue-grey-100; } .symbol { left: 16px; position: absolute; top: 8px; z-index: $layer-5; } } } rxjs-7.5.7/docs_app/src/styles/2-modules/_subsection.scss000066400000000000000000000005501431412030200234310ustar00rootroot00000000000000.l-sub-section { color: $darkgray; background-color: rgba($pink, 0.05); border-left: 8px solid $pink; padding: 16px; margin-bottom: 8px; display: table; clear: both; width: 100%; box-sizing: border-box; h3 { margin: 8px 0 0; } a:hover { color: $pink; text-decoration: underline; } }rxjs-7.5.7/docs_app/src/styles/2-modules/_table.scss000066400000000000000000000036601431412030200223470ustar00rootroot00000000000000table { margin: 24px 0px; box-shadow: 0 2px 2px rgba($black, 0.24), 0 0 2px rgba($black, 0.12); border-radius: 2px; background: $offwhite; &.is-full-width { width: 100%; } &.is-fixed-layout { table-layout: fixed; } thead > { vertical-align: middle; border-color: inherit; tr { vertical-align: inherit; border-color: inherit; } tr > th { background: rgba($lightgray, 0.2); border-bottom: 1px solid $lightgray; color: $darkgray; font-size: 12px; font-weight: 500; padding: 8px 24px; text-align: left; text-transform: uppercase; line-height: 28px; } } tbody > tr { th, td { border-bottom: 1px solid $lightgray; padding: 16px; text-align: left; line-height: 24px; vertical-align: top; @media (max-width: 480px) { &:before { // content: **ADD TABLE HEADER**; display: inline-block; } } } td { letter-spacing: 0.30px; tr td:first-child { @media (max-width: 480px) { background-color: $lightgray; } } } th { background: rgba($lightgray, 0.2); border-right: 1px solid $lightgray; font-weight: 600; max-width: 100px; } &:last-child td { border: none; @media (max-width: 480px) { border-bottom: 1px solid $lightgray; } } } } #cheatsheet { table tbody td { overflow: auto; } @media only screen and (max-width: 990px) { /* Force table to not be like tables anymore */ table, thead, tbody, tfoot, tr, th, td { display: block; position: relative; max-width: 100%; code { padding: 0; background-color: inherit; } } th { border-right: none; } th, td { &:not(:last-child) { border-bottom: none; padding-bottom: 0px; } } } } rxjs-7.5.7/docs_app/src/styles/2-modules/_toc.scss000066400000000000000000000065431431412030200220500ustar00rootroot00000000000000.toc-container { width: 18%; position: fixed; top: 76px; right: 0; bottom: 12px; overflow-y: auto; overflow-x: hidden; } aio-toc.embedded { @media (min-width: 801px) { display: none; } .toc-inner { padding: 12px 0 0 0; .toc-heading { margin: 0 0 8px; } } } .toc-inner { font-size: 13px; overflow-y: visible; padding: 4px 0 0 10px; .toc-heading, .toc-list .h1 { font-size: 115%; } .toc-heading { font-weight: 500; margin: 0 0 16px 8px; padding: 0; } .toc-heading.secondary { position: relative; top: -8px; &:hover { color: $accentgrey; } } button.toc-heading, button.toc-more-items { cursor: pointer; display: inline-block; background: 0; background-color: transparent; border: none; box-shadow: none; padding: 0; text-align: start; &.embedded:focus { outline: none; background: $lightgray; } } button.toc-heading { mat-icon.rotating-icon { height: 18px; width: 18px; position: relative; left: -4px; top: 5px; } &:hover:not(.embedded) { color: $accentgrey; } } button.toc-more-items { color: $mediumgray; top: 10px; position: relative; &:hover { color: $accentgrey; } } button.toc-more-items::after { content: 'expand_less'; } button.toc-more-items.collapsed::after { content: 'more_horiz'; } .mat-icon.collapsed { @include rotate(0deg); } .mat-icon:not(.collapsed) { @include rotate(90deg); // margin: 4px; } ul.toc-list { list-style-type: none; margin: 0; padding: 0 8px 0 0; @media (max-width: 800px) { width: auto; } li { box-sizing: border-box; font-size: 12px; line-height: 16px; padding: 3px 0 3px 12px; position: relative; transition: all 0.3s ease-in-out; &.h1:after { content: ''; display: block; height: 1px; width: 40%; margin: 7px 0 4px 0; background: #DBDBDB; clear: both; } &.h3 { padding-left: 24px; } a { font-size: inherit; color: lighten($darkgray, 10); display:table-cell; overflow: visible; font-size: 12px; display: table-cell; } &:hover a { color: $accentgrey; } &.active { a { color: $pink; font-weight: 500; &:before { content: ''; border-radius: 50%; left: -3px; top: 12px; background: $pink; position: absolute; width: 6px; height: 6px; } } } } &:not(.embedded) li { &:before { border-left: 1px solid $lightgray; bottom: 0; content: ''; left: 0; position: absolute; top: 0; } &:first-child:before { top: 13px; } &:last-child:before { bottom: calc(100% - 14px); } &:not(.active):hover a:before { content: ''; border-radius: 50%; left: -3px; top: 12px; background: $lightgray; position: absolute; width: 6px; height: 6px; } } } } aio-toc.embedded > div.collapsed li.secondary { display: none; } rxjs-7.5.7/docs_app/src/styles/_constants.scss000066400000000000000000000042161431412030200214630ustar00rootroot00000000000000// TYPOGRAPHY $main-font: "Roboto","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif; $code-font: "Droid Sans Mono", monospace; // Z-LAYER $layer-1: 1; $layer-2: 2; $layer-3: 3; $layer-4: 4; $layer-5: 5; // COLOR PALETTE $pink: #d81b60; $accentgrey: #62757f; $brightred: #DD0031; $darkred: #C3002F; $white: #FFFFFF; $offwhite: #FAFAFA; $backgroundgray: #F1F1F1; $lightgray: #DBDBDB; $mist: #ECEFF1; $mediumgray: #6e6e6e; $darkgray: #333; $black: #0A1014; $orange: #FF9800; $anti-pattern: $brightred; // API & CODE COLORS $amber-700: #FFA000; $blue-400: #42A5F5; $blue-500: #2196F3; $blue-600: #1E88E5; $blue-800: #1565C0; $blue-900: #0D47A1; $blue-grey-50: #ECEFF1; $blue-grey-100: #CFD8DC; $blue-grey-200: #B0BEC5; $blue-grey-300: #90A4AE; $blue-grey-400: #78909C; $blue-grey-500: #607D8B; $blue-grey-600: #546E7A; $blue-grey-700: #455A64; $blue-grey-800: #37474F; $blue-grey-900: #263238; $codegreen: #17ff0b; $green-500: #4CAF50; $green-800: #2E7D32; $light-green-600: #7CB342; $pink-600: #D81B60; $purple-600: #8E24AA; $teal-500: #009688; $lightgrey: #F5F6F7; // GRADIENTS $bluegradient: linear-gradient(145deg,#0D47A1,#42A5F5); $redgradient: linear-gradient(145deg,$darkred,$brightred); // API LABEL COLOR AND SYMBOLS MAP $api-symbols: ( all: ( content: ' ', background: $white ), decorator: ( content: '@', background: $blue-800 ), directive: ( content: 'D', background: $pink-600 ), pipe: ( content: 'P', background: $blue-grey-600 ), class: ( content: 'C', background: $blue-500 ), interface: ( content: 'I', background: $teal-500 ), function: ( content: 'F', background: $green-800 ), enum: ( content: 'E', background: $amber-700 ), const: ( content: 'K', background: $mediumgray ), let: ( content: 'K', background: $mediumgray ), var: ( content: 'K', background: $mediumgray ), type-alias: ( content: 'T', background: $light-green-600 ), module: ( content: 'Pk', background: $purple-600 ) ); // OTHER $small-breakpoint-width: 840px; $phone-breakpoint: 480px; $tablet-breakpoint: 800px;rxjs-7.5.7/docs_app/src/styles/_mixins.scss000066400000000000000000000033751431412030200207630ustar00rootroot00000000000000/************************************ Media queries To use these, put this snippet in the appropriate selector: @include bp(tiny) { background-color: purple; } Replace "tiny" with "medium" or "big" as necessary. *************************************/ @mixin bp($point) { $bp-xsmall: "(min-width: 320px)"; $bp-teeny: "(min-width: 480px)"; $bp-tiny: "(min-width: 600px)"; $bp-small: "(min-width: 650px)"; $bp-medium: "(min-width: 800px)"; $bp-big: "(min-width: 1000px)"; @if $point == big { @media #{$bp-big} { @content; } } @else if $point == medium { @media #{$bp-medium} { @content; } } @else if $point == small { @media #{$bp-small} { @content; } } @else if $point == tiny { @media #{$bp-tiny} { @content; } } @else if $point == teeny { @media #{$bp-teeny} { @content; } } @else if $point == xsmall { @media #{$bp-xsmall} { @content; } } } @mixin rotate($degrees) { -moz-transform: rotate($degrees); -webkit-transform: rotate($degrees); -o-transform: rotate($degrees); -ms-transform: rotate($degrees); transform: rotate($degrees); transition: transform 150ms; transition-timing-function: ease-in-out; } @mixin codeblock($bgcolor) { background-color: $bgcolor; border-radius: 5px; padding: 20px; margin: 0 auto; // was 24 border: 0.5px solid $lightgray; } // INFO CARD SKELETON @mixin card($height, $width) { height: $height; width: $width; background-color: $white; border-radius: 4px; box-shadow: 0 2px 2px rgba($black, 0.24), 0 0 2px rgba($black, 0.12); box-sizing: border-box; transition: box-shadow .5s; &:hover { box-shadow: 0 8px 8px rgba($black, 0.24), 0 0 8px rgba($black, 0.12); text-decoration: none; } }rxjs-7.5.7/docs_app/src/styles/_typography-theme.scss000066400000000000000000000025201431412030200227510ustar00rootroot00000000000000@use '@angular/material' as mat; @mixin docs-site-typography-theme($theme) { $primary: map-get($theme, primary); $accent: map-get($theme, accent); $warn: map-get($theme, warn); $background: map-get($theme, background); $foreground: map-get($theme, foreground); .docs-component-viewer-tabbed-content, .docs-guide-content { h1 { color: mat.get-color-from-palette($primary, 800); background: rgba(mat.get-color-from-palette($foreground, secondary-text), .03); } h3, h2, h4, h5, p, ol, li { color: mat.get-color-from-palette($foreground, secondary-text); } a { color: mat.get-color-from-palette($primary); } .nav-link:visited { text-decoration: none; } table { box-shadow: 0 2px 2px rgba(0,0,0,0.24), 0 0 2px rgba(0,0,0,0.12); } table > tbody > tr > th { border: 1px solid rgba(mat.get-color-from-palette($foreground, secondary-text), .03); } td { color: mat.get-color-from-palette($foreground, secondary-text); border: 1px solid rgba(mat.get-color-from-palette($foreground, secondary-text), .03); } th { color: mat.get-color-from-palette($foreground, secondary-text); background: rgba(mat.get-color-from-palette($foreground, secondary-text), .03); } } } rxjs-7.5.7/docs_app/src/styles/main.scss000066400000000000000000000004121431412030200202260ustar00rootroot00000000000000// import global themes @import './rxjs-theme'; // import global variables @import './constants'; // import global mixins @import './mixins'; // import directories @import './0-base/base-dir'; @import './1-layouts/layouts-dir'; @import './2-modules/modules-dir'; rxjs-7.5.7/docs_app/src/styles/rxjs-theme.scss000066400000000000000000000020771431412030200214010ustar00rootroot00000000000000@use '@angular/material' as mat; // Plus imports for other components in your app. // Include the base styles for Angular Material core. We include this here so that you only // have to load a single css file for Angular Material in your app. @include mat.core(); // Define the palettes for your theme using the Material Design palettes available in palette.scss // (imported above). For each palette, you can optionally specify a default, lighter, and darker // hue. $rxjs-primary: mat.define-palette(mat.$pink-palette, 700, 600, 800); $rxjs-accent: mat.define-palette(mat.$red-palette, 700, 600, 800); // The warn palette is optional (defaults to red). $rxjs-warn: mat.define-palette(mat.$red-palette); // Create the theme object (a Sass map containing all of the palettes). $rxjs-theme: mat.define-light-theme($rxjs-primary, $rxjs-accent, $rxjs-warn); // Include theme styles for core and each component used in your app. // Alternatively, you can import and @include the theme mixins for each component // that you are using. @include mat.all-component-themes($rxjs-theme); rxjs-7.5.7/docs_app/src/test.ts000066400000000000000000000015131431412030200164140ustar00rootroot00000000000000// This file is required by karma.conf.js and loads recursively all the .spec and framework files import 'zone.js/testing'; import { getTestBed } from '@angular/core/testing'; import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; declare const require: any; // Reflect.metadata polyfill is only needed in the JIT mode which we use only for unit tests import 'core-js/es/reflect'; // import 'core-js/es7/reflect'; // First, initialize the Angular testing environment. getTestBed().initTestEnvironment( BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { teardown: { destroyAfterEach: false } } ); // Then we find all the tests. const context = require.context('./', true, /\.spec\.ts$/); // And load the modules. context.keys().map(context); rxjs-7.5.7/docs_app/src/testing/000077500000000000000000000000001431412030200165425ustar00rootroot00000000000000rxjs-7.5.7/docs_app/src/testing/doc-viewer-utils.ts000066400000000000000000000071161431412030200223210ustar00rootroot00000000000000import { Component, NgModule, ViewChild, Injectable } from '@angular/core'; import { Title, Meta } from '@angular/platform-browser'; import { Observable } from 'rxjs'; import { DocumentContents } from 'app/documents/document.service'; import { DocViewerComponent } from 'app/layout/doc-viewer/doc-viewer.component'; import { Logger } from 'app/shared/logger.service'; import { TocService } from 'app/shared/toc.service'; import { MockLogger } from 'testing/logger.service'; import { ElementsLoader } from 'app/custom-elements/elements-loader'; //////////////////////////////////////////////////////////////////////////////////////////////////// /// `TestDocViewerComponent` (for exposing internal `DocViewerComponent` methods as public). /// /// Only used for type-casting; the actual implementation is irrelevant. /// //////////////////////////////////////////////////////////////////////////////////////////////////// export class TestDocViewerComponent extends DocViewerComponent { currViewContainer: HTMLElement; nextViewContainer: HTMLElement; prepareTitleAndToc(targetElem: HTMLElement, docId: string): () => void { return null as any; } render(doc: DocumentContents): Observable { return null as any; } swapViews(onInsertedCb?: () => void): Observable { return null as any; } } //////////////////////////////////////////////////////////////////////////////////////////////////// /// `TestModule` and `TestParentComponent`. /// //////////////////////////////////////////////////////////////////////////////////////////////////// // Test parent component. @Component({ selector: 'aio-test', template: 'Test Component', }) export class TestParentComponent { currentDoc?: DocumentContents|null; @ViewChild(DocViewerComponent) docViewer: DocViewerComponent; } // Mock services. @Injectable() export class MockTitle { setTitle = jasmine.createSpy('Title#reset'); } @Injectable() export class MockMeta { addTag = jasmine.createSpy('Meta#addTag'); removeTag = jasmine.createSpy('Meta#removeTag'); } @Injectable() export class MockTocService { genToc = jasmine.createSpy('TocService#genToc'); reset = jasmine.createSpy('TocService#reset'); } @Injectable() export class MockElementsLoader { loadContainedCustomElements = jasmine.createSpy('MockElementsLoader#loadContainedCustomElements'); } @NgModule({ declarations: [ DocViewerComponent, TestParentComponent, ], providers: [ { provide: Logger, useClass: MockLogger }, { provide: Title, useClass: MockTitle }, { provide: Meta, useClass: MockMeta }, { provide: TocService, useClass: MockTocService }, { provide: ElementsLoader, useClass: MockElementsLoader }, ], }) export class TestModule { } //////////////////////////////////////////////////////////////////////////////////////////////////// /// An observable with spies to test subscribing/unsubscribing. /// //////////////////////////////////////////////////////////////////////////////////////////////////// export class ObservableWithSubscriptionSpies extends Observable { unsubscribeSpies: jasmine.Spy[] = []; subscribeSpy = spyOn(this as any, 'subscribe').and.callFake((...args: any[]) => { const subscription = super.subscribe(...args); const unsubscribeSpy = spyOn(subscription, 'unsubscribe').and.callThrough(); this.unsubscribeSpies.push(unsubscribeSpy); return subscription; }); constructor(subscriber = () => undefined) { super(subscriber); } } rxjs-7.5.7/docs_app/src/testing/location.service.ts000066400000000000000000000017541431412030200223700ustar00rootroot00000000000000import { BehaviorSubject } from 'rxjs'; import { map } from 'rxjs/operators'; export class MockLocationService { urlSubject = new BehaviorSubject(this.initialUrl); currentUrl = this.urlSubject.asObservable().pipe(map(url => this.stripSlashes(url))); // strip off query and hash currentPath = this.currentUrl.pipe(map(url => url.match(/[^?#]*/)![0])); search = jasmine.createSpy('search').and.returnValue({}); setSearch = jasmine.createSpy('setSearch'); go = jasmine.createSpy('Location.go').and .callFake((url: string) => this.urlSubject.next(url)); goExternal = jasmine.createSpy('Location.goExternal'); replace = jasmine.createSpy('Location.replace'); handleAnchorClick = jasmine.createSpy('Location.handleAnchorClick') .and.returnValue(false); // prevent click from causing a browser navigation constructor(private initialUrl: string) {} private stripSlashes(url: string) { return url.replace(/^\/+/, '').replace(/\/+(\?|#|$)/, '$1'); } } rxjs-7.5.7/docs_app/src/testing/logger.service.ts000066400000000000000000000007031431412030200220300ustar00rootroot00000000000000import { Injectable } from '@angular/core'; @Injectable() export class MockLogger { output: { log: any[], error: any[], warn: any[] } = { log: [], error: [], warn: [] }; log(value: any, ...rest: any[]) { this.output.log.push([value, ...rest]); } error(value: any, ...rest: any[]) { this.output.error.push([value, ...rest]); } warn(value: any, ...rest: any[]) { this.output.warn.push([value, ...rest]); } } rxjs-7.5.7/docs_app/src/testing/search.service.ts000066400000000000000000000004611431412030200220170ustar00rootroot00000000000000import { Subject } from 'rxjs'; import { SearchResults } from 'app/search/interfaces'; export class MockSearchService { searchResults = new Subject(); initWorker = jasmine.createSpy('initWorker'); loadIndex = jasmine.createSpy('loadIndex'); search = jasmine.createSpy('search'); } rxjs-7.5.7/docs_app/src/tsconfig.app.json000066400000000000000000000004761431412030200203620ustar00rootroot00000000000000{ "extends": "../tsconfig.json", "compilerOptions": { "outDir": "../out-tsc/app", "baseUrl": "", "types": [], "importHelpers": true }, "angularCompilerOptions": { "preserveWhitespaces": false }, "files": [ "main.ts", "polyfills.ts" ], "include": [ "src/**/*.d.ts" ] } rxjs-7.5.7/docs_app/src/tsconfig.spec.json000066400000000000000000000004261431412030200205270ustar00rootroot00000000000000{ "extends": "../tsconfig.json", "compilerOptions": { "outDir": "../out-tsc/spec", "types": [ "jasmine", "node" ] }, "files": [ "test.ts", "polyfills.ts" ], "include": [ "testing/**/*.ts", "**/*.spec.ts", "**/*.d.ts" ] }rxjs-7.5.7/docs_app/src/tslint.json000066400000000000000000000003641431412030200173000ustar00rootroot00000000000000{ "extends": "../tslint.json", "rules": { "directive-selector": [ true, "attribute", "aio", "camelCase" ], "component-selector": [ true, "element", "aio", "kebab-case" ] } } rxjs-7.5.7/docs_app/src/typings.d.ts000066400000000000000000000001501431412030200173500ustar00rootroot00000000000000/* SystemJS module definition */ declare var module: NodeModule; interface NodeModule { id: string; } rxjs-7.5.7/docs_app/tests/000077500000000000000000000000001431412030200154405ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tests/e2e/000077500000000000000000000000001431412030200161135ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tests/e2e/protractor.conf.js000066400000000000000000000015421431412030200215760ustar00rootroot00000000000000// Protractor configuration file, see link for more information // https://github.com/angular/protractor/blob/master/lib/config.ts const { SpecReporter } = require('jasmine-spec-reporter'); exports.config = { allScriptsTimeout: 11000, specs: [ './*.e2e-spec.ts' ], capabilities: { browserName: 'chrome', // For Travis chromeOptions: { binary: process.env.CHROME_BIN, args: ['--no-sandbox'] } }, directConnect: true, baseUrl: 'http://localhost:4200/', framework: 'jasmine', jasmineNodeOpts: { showColors: true, defaultTimeoutInterval: 30000, print: function() {} }, beforeLaunch: function() { require('ts-node').register({ project: 'tests/e2e/tsconfig.e2e.json' }); }, onPrepare() { jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); } }; rxjs-7.5.7/docs_app/tests/e2e/tsconfig.e2e.json000066400000000000000000000003611431412030200212740ustar00rootroot00000000000000{ "extends": "../../tsconfig.json", "compilerOptions": { "outDir": "../../out-tsc/e2e", "baseUrl": "./", "module": "commonjs", "target": "es5", "types": [ "jasmine", "jasminewd2", "node" ] } } rxjs-7.5.7/docs_app/tests/e2e/visual-testing.e2e-spec.ts000066400000000000000000000020471431412030200230460ustar00rootroot00000000000000import { browser } from 'protractor'; const Eyes = require('eyes.selenium').Eyes; const eyes = new Eyes(); describe('RxJS Docs', function() { it('shows the landing page', () => { eyes.open(browser, 'Landing Page', 'RxJS Docs'); browser.get(''); eyes.checkWindow('Landing page!'); eyes.close(); }); it('shows the overview page', () => { eyes.open(browser, 'Overview Page', 'RxJS Docs'); browser.get('/guide/overview'); eyes.checkWindow('Overview page!'); eyes.close(); }); it('shows the API page', () => { eyes.open(browser, 'API Page', 'RxJS Docs'); browser.get('/api'); eyes.checkWindow('API page!'); eyes.close(); }); it('shows the migration page', () => { eyes.open(browser, 'Migration Page', 'RxJS Docs'); browser.get('/guide/v6/migration'); eyes.checkWindow('Migration page!'); eyes.close(); }); it('shows the team page', () => { eyes.open(browser, 'Team Page', 'RxJS Docs'); browser.get('/team'); eyes.checkWindow('Team page!'); eyes.close(); }); }); rxjs-7.5.7/docs_app/tools/000077500000000000000000000000001431412030200154365ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/README.md000066400000000000000000000024431431412030200167200ustar00rootroot00000000000000# AIO project tooling This document gives an overview of the tools that we use to generate the content for the RxJS website. The application that actually renders this content can be found in the `/docs_app/src` folder. The handwritten content can be found in the `/docs_app/content` folder. Each subfolder in this `/docs_app/tools/` folder contains a self-contained tool and its configuration. There is a `README.md` file in each folder that describes the tool in more detail. ## transforms All the content that is rendered by the RxJS docs application, and some of its configuration files, are generated from source files by [Dgeni](https://github.com/angular/dgeni). Dgeni is a general purpose documentation generation tool. Markdown files in `/docs_app/content`, code comments in the core Angular source files and example files are processed and transformed into files that are consumed by the RxJS docs application. Dgeni is configured by "packages", which contain services and processors. Some of these packages are installed as `node_modules` from the [dgeni-packages](https://github.com/angular/dgeni-packages) and some are specific to the RxJS project. The project specific packages are stored in the `/docs_app/tools/transforms` folder. See the [README.md](transforms/README.md) for more details. rxjs-7.5.7/docs_app/tools/decision-tree-generator/000077500000000000000000000000001431412030200221545ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/decision-tree-generator/README.md000066400000000000000000000033051431412030200234340ustar00rootroot00000000000000# Decision Tree Generator ## Purpose Manage a decision tree in YAML for choosing an operator and generate JSON to be consumed by the docs web app. ## Goals - Port the first version of the decision-tree-widget into Angular - Flatten the JSON structure and make it easy to work with in the docs web app - Consume URI paths and other relevant from the docs generation task vai Dgeni - Keep the decision tree work scalable and easy to work with by keeping the linked list structure in the YAML tree ## Prior Art Version 1 was in the old docs site and used YAML, snabbdom, RxJS, and hyperscript-helpers. The YAML for version 1 version was ported into the new version with minor tweaks. ## Tech - Node - TypeScript - TS-Node - Jest - YAML ## Dependencies Generating the JSON requires: - The decision tree YAML, located in `/src` - The generated `api-list.json`, which can be generated by running `npm run docs` at the root level of the `docs_app` ## Setup & Build ```shell npm i && npm run build ``` ## Development Any changes to the YAML tree or any of the TypeScript scripts will generate a new JSON tree ```shell npm run watch ``` ## Distribution After a `npm run build` the JSON is output to `docs_app/src/generated/app/decision-tree-data.json` to be consumed by the web application. There's also an npm script at the root level of the `docs_app` to generate the JSON tree: `docs-decision-tree`. ## Testing Run a watch task when writing tests ```shell npm run test:watch ``` Full test ```shell npm run test ``` Run coverage ```shell npm run test:coverage npm run test:watch:coverage ``` ## TODO - Consider moving this work into a Dgeni package so it can be generated in the same way the other doc information is generatedrxjs-7.5.7/docs_app/tools/decision-tree-generator/jest.config.js000066400000000000000000000003431431412030200247230ustar00rootroot00000000000000module.exports = { roots: ['/src'], transform: { '^.+\\.tsx?$': 'ts-jest', }, testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$', moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], }; rxjs-7.5.7/docs_app/tools/decision-tree-generator/main.ts000066400000000000000000000023031431412030200234460ustar00rootroot00000000000000import chalk from 'chalk'; import { readFileSync, writeFileSync } from 'fs'; import { resolve } from 'path'; import { parse } from 'yamljs'; import { ApiListNode, build, flattenApiList, TreeNodeRaw } from './src/lib'; const generatedBase = resolve(`${__dirname}/../../src/generated/docs`); const outFilename = `${generatedBase}/app/decision-tree-data.json`; const yamlContent = readFileSync(`${__dirname}/src/tree.yml`, 'utf8'); const decisionTreeJson: TreeNodeRaw[] = parse(yamlContent); let apiList: ApiListNode[]; try { apiList = JSON.parse( readFileSync(`${generatedBase}/api/api-list.json`, 'utf8') ); } catch (error) { console.log( chalk.red('Decision Tree Generator - error:'), 'Generating the decision tree requires the generated API list. Please run `npm run docs` and try again.' ); } try { const flattenedApiList = flattenApiList(apiList); const jsonContent = build(flattenedApiList, decisionTreeJson); writeFileSync(outFilename, JSON.stringify(jsonContent), 'utf8'); console.log( chalk.green('Decision Tree Generator - success:'), 'Finished generating decision tree' ); } catch (error) { console.log(chalk.red('Decision Tree Generator - error:'), error.message); } rxjs-7.5.7/docs_app/tools/decision-tree-generator/package-lock.json000066400000000000000000010214121431412030200253710ustar00rootroot00000000000000{ "name": "decision-tree-generator", "version": "2.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/core": { "version": "7.11.6", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz", "integrity": "sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.11.6", "@babel/helper-module-transforms": "^7.11.0", "@babel/helpers": "^7.10.4", "@babel/parser": "^7.11.5", "@babel/template": "^7.10.4", "@babel/traverse": "^7.11.5", "@babel/types": "^7.11.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.19", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/generator": { "version": "7.11.6", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz", "integrity": "sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==", "dev": true, "requires": { "@babel/types": "^7.11.5", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, "dependencies": { "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "@babel/helper-function-name": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.10.4", "@babel/template": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/helper-get-function-arity": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", "dev": true, "requires": { "@babel/types": "^7.10.4" } }, "@babel/helper-member-expression-to-functions": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz", "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==", "dev": true, "requires": { "@babel/types": "^7.11.0" } }, "@babel/helper-module-imports": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", "dev": true, "requires": { "@babel/types": "^7.10.4" } }, "@babel/helper-module-transforms": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz", "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.10.4", "@babel/helper-replace-supers": "^7.10.4", "@babel/helper-simple-access": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", "@babel/template": "^7.10.4", "@babel/types": "^7.11.0", "lodash": "^4.17.19" } }, "@babel/helper-optimise-call-expression": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", "dev": true, "requires": { "@babel/types": "^7.10.4" } }, "@babel/helper-plugin-utils": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", "dev": true }, "@babel/helper-replace-supers": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.10.4", "@babel/helper-optimise-call-expression": "^7.10.4", "@babel/traverse": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/helper-simple-access": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", "dev": true, "requires": { "@babel/template": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/helper-split-export-declaration": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", "dev": true, "requires": { "@babel/types": "^7.11.0" } }, "@babel/helper-validator-identifier": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/helpers": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", "dev": true, "requires": { "@babel/template": "^7.10.4", "@babel/traverse": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/highlight": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" } }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true } } }, "@babel/parser": { "version": "7.11.5", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==", "dev": true }, "@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-bigint": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-class-properties": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz", "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } }, "@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/template": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", "@babel/parser": "^7.10.4", "@babel/types": "^7.10.4" } }, "@babel/traverse": { "version": "7.11.5", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz", "integrity": "sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", "@babel/generator": "^7.11.5", "@babel/helper-function-name": "^7.10.4", "@babel/helper-split-export-declaration": "^7.11.0", "@babel/parser": "^7.11.5", "@babel/types": "^7.11.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.19" }, "dependencies": { "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "@babel/types": { "version": "7.11.5", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", "lodash": "^4.17.19", "to-fast-properties": "^2.0.0" } }, "@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, "@cnakazawa/watch": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", "dev": true, "requires": { "exec-sh": "^0.3.2", "minimist": "^1.2.0" } }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { "camelcase": "^5.3.1", "find-up": "^4.1.0", "get-package-type": "^0.1.0", "js-yaml": "^3.13.1", "resolve-from": "^5.0.0" } }, "@istanbuljs/schema": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", "dev": true }, "@jest/console": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.3.0.tgz", "integrity": "sha512-/5Pn6sJev0nPUcAdpJHMVIsA8sKizL2ZkcKPE5+dJrCccks7tcM7c9wbgHudBJbxXLoTbqsHkG1Dofoem4F09w==", "dev": true, "requires": { "@jest/types": "^26.3.0", "@types/node": "*", "chalk": "^4.0.0", "jest-message-util": "^26.3.0", "jest-util": "^26.3.0", "slash": "^3.0.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "@jest/core": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.4.2.tgz", "integrity": "sha512-sDva7YkeNprxJfepOctzS8cAk9TOekldh+5FhVuXS40+94SHbiicRO1VV2tSoRtgIo+POs/Cdyf8p76vPTd6dg==", "dev": true, "requires": { "@jest/console": "^26.3.0", "@jest/reporters": "^26.4.1", "@jest/test-result": "^26.3.0", "@jest/transform": "^26.3.0", "@jest/types": "^26.3.0", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.4", "jest-changed-files": "^26.3.0", "jest-config": "^26.4.2", "jest-haste-map": "^26.3.0", "jest-message-util": "^26.3.0", "jest-regex-util": "^26.0.0", "jest-resolve": "^26.4.0", "jest-resolve-dependencies": "^26.4.2", "jest-runner": "^26.4.2", "jest-runtime": "^26.4.2", "jest-snapshot": "^26.4.2", "jest-util": "^26.3.0", "jest-validate": "^26.4.2", "jest-watcher": "^26.3.0", "micromatch": "^4.0.2", "p-each-series": "^2.1.0", "rimraf": "^3.0.0", "slash": "^3.0.0", "strip-ansi": "^6.0.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "@jest/environment": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.3.0.tgz", "integrity": "sha512-EW+MFEo0DGHahf83RAaiqQx688qpXgl99wdb8Fy67ybyzHwR1a58LHcO376xQJHfmoXTu89M09dH3J509cx2AA==", "dev": true, "requires": { "@jest/fake-timers": "^26.3.0", "@jest/types": "^26.3.0", "@types/node": "*", "jest-mock": "^26.3.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "@jest/fake-timers": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.3.0.tgz", "integrity": "sha512-ZL9ytUiRwVP8ujfRepffokBvD2KbxbqMhrXSBhSdAhISCw3gOkuntisiSFv+A6HN0n0fF4cxzICEKZENLmW+1A==", "dev": true, "requires": { "@jest/types": "^26.3.0", "@sinonjs/fake-timers": "^6.0.1", "@types/node": "*", "jest-message-util": "^26.3.0", "jest-mock": "^26.3.0", "jest-util": "^26.3.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "@jest/globals": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.4.2.tgz", "integrity": "sha512-Ot5ouAlehhHLRhc+sDz2/9bmNv9p5ZWZ9LE1pXGGTCXBasmi5jnYjlgYcYt03FBwLmZXCZ7GrL29c33/XRQiow==", "dev": true, "requires": { "@jest/environment": "^26.3.0", "@jest/types": "^26.3.0", "expect": "^26.4.2" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "@jest/reporters": { "version": "26.4.1", "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.4.1.tgz", "integrity": "sha512-aROTkCLU8++yiRGVxLsuDmZsQEKO6LprlrxtAuzvtpbIFl3eIjgIf3EUxDKgomkS25R9ZzwGEdB5weCcBZlrpQ==", "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^26.3.0", "@jest/test-result": "^26.3.0", "@jest/transform": "^26.3.0", "@jest/types": "^26.3.0", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.2", "graceful-fs": "^4.2.4", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^4.0.3", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^4.0.0", "istanbul-reports": "^3.0.2", "jest-haste-map": "^26.3.0", "jest-resolve": "^26.4.0", "jest-util": "^26.3.0", "jest-worker": "^26.3.0", "node-notifier": "^8.0.0", "slash": "^3.0.0", "source-map": "^0.6.0", "string-length": "^4.0.1", "terminal-link": "^2.0.0", "v8-to-istanbul": "^5.0.1" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "@jest/source-map": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.3.0.tgz", "integrity": "sha512-hWX5IHmMDWe1kyrKl7IhFwqOuAreIwHhbe44+XH2ZRHjrKIh0LO5eLQ/vxHFeAfRwJapmxuqlGAEYLadDq6ZGQ==", "dev": true, "requires": { "callsites": "^3.0.0", "graceful-fs": "^4.2.4", "source-map": "^0.6.0" }, "dependencies": { "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "@jest/test-result": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.3.0.tgz", "integrity": "sha512-a8rbLqzW/q7HWheFVMtghXV79Xk+GWwOK1FrtimpI5n1la2SY0qHri3/b0/1F0Ve0/yJmV8pEhxDfVwiUBGtgg==", "dev": true, "requires": { "@jest/console": "^26.3.0", "@jest/types": "^26.3.0", "@types/istanbul-lib-coverage": "^2.0.0", "collect-v8-coverage": "^1.0.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "@jest/test-sequencer": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.4.2.tgz", "integrity": "sha512-83DRD8N3M0tOhz9h0bn6Kl6dSp+US6DazuVF8J9m21WAp5x7CqSMaNycMP0aemC/SH/pDQQddbsfHRTBXVUgog==", "dev": true, "requires": { "@jest/test-result": "^26.3.0", "graceful-fs": "^4.2.4", "jest-haste-map": "^26.3.0", "jest-runner": "^26.4.2", "jest-runtime": "^26.4.2" }, "dependencies": { "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "@jest/transform": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.3.0.tgz", "integrity": "sha512-Isj6NB68QorGoFWvcOjlUhpkT56PqNIsXKR7XfvoDlCANn/IANlh8DrKAA2l2JKC3yWSMH5wS0GwuQM20w3b2A==", "dev": true, "requires": { "@babel/core": "^7.1.0", "@jest/types": "^26.3.0", "babel-plugin-istanbul": "^6.0.0", "chalk": "^4.0.0", "convert-source-map": "^1.4.0", "fast-json-stable-stringify": "^2.0.0", "graceful-fs": "^4.2.4", "jest-haste-map": "^26.3.0", "jest-regex-util": "^26.0.0", "jest-util": "^26.3.0", "micromatch": "^4.0.2", "pirates": "^4.0.1", "slash": "^3.0.0", "source-map": "^0.6.1", "write-file-atomic": "^3.0.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "@jest/types": { "version": "25.5.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz", "integrity": "sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^1.1.1", "@types/yargs": "^15.0.0", "chalk": "^3.0.0" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", "dev": true }, "@sinonjs/commons": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz", "integrity": "sha512-892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/fake-timers": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" } }, "@szmarczak/http-timer": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", "dev": true, "requires": { "defer-to-connect": "^1.0.1" } }, "@types/babel__core": { "version": "7.1.9", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz", "integrity": "sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==", "dev": true, "requires": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", "@types/babel__generator": "*", "@types/babel__template": "*", "@types/babel__traverse": "*" } }, "@types/babel__generator": { "version": "7.6.1", "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", "dev": true, "requires": { "@babel/types": "^7.0.0" } }, "@types/babel__template": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", "dev": true, "requires": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" } }, "@types/babel__traverse": { "version": "7.0.13", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz", "integrity": "sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==", "dev": true, "requires": { "@babel/types": "^7.3.0" } }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, "@types/graceful-fs": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz", "integrity": "sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==", "dev": true, "requires": { "@types/node": "*" } }, "@types/istanbul-lib-coverage": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", "dev": true }, "@types/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "*" } }, "@types/istanbul-reports": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz", "integrity": "sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "*", "@types/istanbul-lib-report": "*" } }, "@types/jest": { "version": "26.0.13", "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.13.tgz", "integrity": "sha512-sCzjKow4z9LILc6DhBvn5AkIfmQzDZkgtVVKmGwVrs5tuid38ws281D4l+7x1kP487+FlKDh5kfMZ8WSPAdmdA==", "dev": true, "requires": { "jest-diff": "^25.2.1", "pretty-format": "^25.2.1" }, "dependencies": { "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "jest-diff": { "version": "25.5.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", "dev": true, "requires": { "chalk": "^3.0.0", "diff-sequences": "^25.2.6", "jest-get-type": "^25.2.6", "pretty-format": "^25.5.0" } }, "jest-get-type": { "version": "25.2.6", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", "dev": true }, "pretty-format": { "version": "25.5.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", "dev": true, "requires": { "@jest/types": "^25.5.0", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" } }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "@types/node": { "version": "14.6.3", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.6.3.tgz", "integrity": "sha512-pC/hkcREG6YfDfui1FBmj8e20jFU5Exjw4NYDm8kEdrW+mOh0T1Zve8DWKnS7ZIZvgncrctcNCXF4Q2I+loyww==", "dev": true }, "@types/normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, "@types/prettier": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.0.tgz", "integrity": "sha512-hiYA88aHiEIgDmeKlsyVsuQdcFn3Z2VuFd/Xm/HCnGnPD8UFU5BM128uzzRVVGEzKDKYUrRsRH9S2o+NUy/3IA==", "dev": true }, "@types/stack-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", "dev": true }, "@types/yargs": { "version": "15.0.5", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz", "integrity": "sha512-Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { "version": "15.0.0", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==", "dev": true }, "abab": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz", "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==", "dev": true }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "acorn": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", "dev": true }, "acorn-globals": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", "dev": true, "requires": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" } }, "acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true }, "ajv": { "version": "6.12.4", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "ansi-align": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", "dev": true, "requires": { "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, "ansi-escapes": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { "type-fest": "^0.11.0" }, "dependencies": { "type-fest": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", "dev": true } } }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { "safer-buffer": "~2.1.0" } }, "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", "dev": true }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", "dev": true }, "aws4": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==", "dev": true }, "babel-jest": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.3.0.tgz", "integrity": "sha512-sxPnQGEyHAOPF8NcUsD0g7hDCnvLL2XyblRBcgrzTWBB/mAIpWow3n1bEL+VghnnZfreLhFSBsFluRoK2tRK4g==", "dev": true, "requires": { "@jest/transform": "^26.3.0", "@jest/types": "^26.3.0", "@types/babel__core": "^7.1.7", "babel-plugin-istanbul": "^6.0.0", "babel-preset-jest": "^26.3.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "slash": "^3.0.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "babel-plugin-istanbul": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-instrument": "^4.0.0", "test-exclude": "^6.0.0" } }, "babel-plugin-jest-hoist": { "version": "26.2.0", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.2.0.tgz", "integrity": "sha512-B/hVMRv8Nh1sQ1a3EY8I0n4Y1Wty3NrR5ebOyVT302op+DOAau+xNEImGMsUWOC3++ZlMooCytKz+NgN8aKGbA==", "dev": true, "requires": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", "@types/babel__core": "^7.0.0", "@types/babel__traverse": "^7.0.6" } }, "babel-preset-current-node-syntax": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz", "integrity": "sha512-uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==", "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", "@babel/plugin-syntax-class-properties": "^7.8.3", "@babel/plugin-syntax-import-meta": "^7.8.3", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.8.3", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "babel-preset-jest": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.3.0.tgz", "integrity": "sha512-5WPdf7nyYi2/eRxCbVrE1kKCWxgWY4RsPEbdJWFm7QsesFGqjdkyLeu1zRkwM1cxK6EPIlNd6d2AxLk7J+t4pw==", "dev": true, "requires": { "babel-plugin-jest-hoist": "^26.2.0", "babel-preset-current-node-syntax": "^0.1.3" } }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { "tweetnacl": "^0.14.3" } }, "binary-extensions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true }, "boxen": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "dev": true, "requires": { "ansi-align": "^3.0.0", "camelcase": "^5.3.1", "chalk": "^3.0.0", "cli-boxes": "^2.2.0", "string-width": "^4.1.0", "term-size": "^2.1.0", "type-fest": "^0.8.1", "widest-line": "^3.1.0" }, "dependencies": { "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { "fill-range": "^7.0.1" } }, "browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, "bs-logger": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "requires": { "fast-json-stable-stringify": "2.x" } }, "bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "requires": { "node-int64": "^0.4.0" } }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", "get-value": "^2.0.6", "has-value": "^1.0.0", "isobject": "^3.0.1", "set-value": "^2.0.0", "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" } }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", "dev": true, "requires": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", "http-cache-semantics": "^4.0.0", "keyv": "^3.0.0", "lowercase-keys": "^2.0.0", "normalize-url": "^4.1.0", "responselike": "^1.0.2" }, "dependencies": { "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { "pump": "^3.0.0" } }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "dev": true } } }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "capture-exit": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", "dev": true, "requires": { "rsvp": "^4.8.4" } }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "dependencies": { "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true }, "chokidar": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", "dev": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.4.0" }, "dependencies": { "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { "fill-range": "^7.0.1" } }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" } } } }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } } } }, "cli-boxes": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true }, "cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^6.2.0" } }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", "dev": true, "requires": { "mimic-response": "^1.0.0" } }, "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", "dev": true }, "collect-v8-coverage": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", "dev": true }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { "delayed-stream": "~1.0.0" } }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "configstore": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, "requires": { "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", "make-dir": "^3.0.0", "unique-string": "^2.0.0", "write-file-atomic": "^3.0.0", "xdg-basedir": "^4.0.0" }, "dependencies": { "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", "typedarray-to-buffer": "^3.1.5" } } } }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" } }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, "crypto-random-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, "cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", "dev": true }, "cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", "dev": true, "requires": { "cssom": "~0.3.6" }, "dependencies": { "cssom": { "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", "dev": true } } }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { "assert-plus": "^1.0.0" } }, "data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", "dev": true, "requires": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^8.0.0" } }, "debug": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { "ms": "^2.1.1" }, "dependencies": { "ms": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", "dev": true } } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decimal.js": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz", "integrity": "sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==", "dev": true }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, "decompress-response": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", "dev": true, "requires": { "mimic-response": "^1.0.0" } }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", "dev": true }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, "diff-sequences": { "version": "25.2.6", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz", "integrity": "sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==", "dev": true }, "domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", "dev": true, "requires": { "webidl-conversions": "^5.0.0" }, "dependencies": { "webidl-conversions": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", "dev": true } } }, "dot-prop": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", "dev": true, "requires": { "is-obj": "^2.0.0" } }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "emittery": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz", "integrity": "sha512-d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ==", "dev": true }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, "requires": { "once": "^1.4.0" } }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "escape-goat": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "escodegen": { "version": "1.14.3", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", "dev": true, "requires": { "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" } }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "exec-sh": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", "dev": true }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" } }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "posix-character-classes": "^0.1.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "expect": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/expect/-/expect-26.4.2.tgz", "integrity": "sha512-IlJ3X52Z0lDHm7gjEp+m76uX46ldH5VpqmU0006vqDju/285twh7zaWMRhs67VpQhBwjjMchk+p5aA0VkERCAA==", "dev": true, "requires": { "@jest/types": "^26.3.0", "ansi-styles": "^4.0.0", "jest-get-type": "^26.3.0", "jest-matcher-utils": "^26.4.2", "jest-message-util": "^26.3.0", "jest-regex-util": "^26.0.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "^2.0.4" } } } }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", "expand-brackets": "^2.1.4", "extend-shallow": "^2.0.1", "fragment-cache": "^0.2.1", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fb-watchman": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", "dev": true, "requires": { "bser": "2.1.1" } }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", "dev": true }, "form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" } }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { "map-cache": "^0.2.2" } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, "gensync": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", "dev": true }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true }, "get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { "pump": "^3.0.0" } }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { "assert-plus": "^1.0.0" } }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, "global-dirs": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", "dev": true, "requires": { "ini": "^1.3.5" } }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", "dev": true, "requires": { "@sindresorhus/is": "^0.14.0", "@szmarczak/http-timer": "^1.1.2", "cacheable-request": "^6.0.0", "decompress-response": "^3.3.0", "duplexer3": "^0.1.4", "get-stream": "^4.1.0", "lowercase-keys": "^1.0.1", "mimic-response": "^1.0.1", "p-cancelable": "^1.0.0", "to-readable-stream": "^1.0.0", "url-parse-lax": "^3.0.0" } }, "graceful-fs": { "version": "4.1.14", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.14.tgz", "integrity": "sha512-ns/IGcSmmGNPP085JCheg0Nombh1QPvSCnlx+2V+byQWRQEIL4ZB5jXJMNIHOFVS1roi85HIi5Ka0h43iWXfcQ==", "dev": true }, "growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", "dev": true }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true }, "har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "dev": true, "requires": { "ajv": "^6.12.3", "har-schema": "^2.0.0" } }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" } }, "has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, "dependencies": { "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", "dev": true }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", "dev": true, "requires": { "whatwg-encoding": "^1.0.5" } }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "http-cache-semantics": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", "dev": true }, "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" } }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", "dev": true }, "import-local": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", "dev": true, "requires": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" } }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, "ip-regex": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { "binary-extensions": "^2.0.0" } }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { "ci-info": "^2.0.0" } }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "is-docker": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", "dev": true, "optional": true }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-generator-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", "dev": true, "requires": { "global-dirs": "^2.0.1", "is-path-inside": "^3.0.1" } }, "is-npm": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", "dev": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true }, "is-path-inside": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", "dev": true }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "^3.0.1" } }, "is-potential-custom-element-name": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=", "dev": true }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, "is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "requires": { "is-docker": "^2.0.0" } }, "is-yarn-global": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", "dev": true }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, "istanbul-lib-coverage": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", "dev": true }, "istanbul-lib-instrument": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", "dev": true, "requires": { "@babel/core": "^7.7.5", "@istanbuljs/schema": "^0.1.2", "istanbul-lib-coverage": "^3.0.0", "semver": "^6.3.0" }, "dependencies": { "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", "supports-color": "^7.1.0" }, "dependencies": { "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "istanbul-lib-source-maps": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", "dev": true, "requires": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", "source-map": "^0.6.1" }, "dependencies": { "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "istanbul-reports": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", "dev": true, "requires": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" } }, "jest": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest/-/jest-26.4.2.tgz", "integrity": "sha512-LLCjPrUh98Ik8CzW8LLVnSCfLaiY+wbK53U7VxnFSX7Q+kWC4noVeDvGWIFw0Amfq1lq2VfGm7YHWSLBV62MJw==", "dev": true, "requires": { "@jest/core": "^26.4.2", "import-local": "^3.0.2", "jest-cli": "^26.4.2" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "jest-cli": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.4.2.tgz", "integrity": "sha512-zb+lGd/SfrPvoRSC/0LWdaWCnscXc1mGYW//NP4/tmBvRPT3VntZ2jtKUONsRi59zc5JqmsSajA9ewJKFYp8Cw==", "dev": true, "requires": { "@jest/core": "^26.4.2", "@jest/test-result": "^26.3.0", "@jest/types": "^26.3.0", "chalk": "^4.0.0", "exit": "^0.1.2", "graceful-fs": "^4.2.4", "import-local": "^3.0.2", "is-ci": "^2.0.0", "jest-config": "^26.4.2", "jest-util": "^26.3.0", "jest-validate": "^26.4.2", "prompts": "^2.0.1", "yargs": "^15.3.1" } } } }, "jest-changed-files": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.3.0.tgz", "integrity": "sha512-1C4R4nijgPltX6fugKxM4oQ18zimS7LqQ+zTTY8lMCMFPrxqBFb7KJH0Z2fRQJvw2Slbaipsqq7s1mgX5Iot+g==", "dev": true, "requires": { "@jest/types": "^26.3.0", "execa": "^4.0.0", "throat": "^5.0.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "execa": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz", "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==", "dev": true, "requires": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.0", "onetime": "^5.1.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" } }, "get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { "pump": "^3.0.0" } }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { "path-key": "^3.0.0" } }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "jest-config": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.4.2.tgz", "integrity": "sha512-QBf7YGLuToiM8PmTnJEdRxyYy3mHWLh24LJZKVdXZ2PNdizSe1B/E8bVm+HYcjbEzGuVXDv/di+EzdO/6Gq80A==", "dev": true, "requires": { "@babel/core": "^7.1.0", "@jest/test-sequencer": "^26.4.2", "@jest/types": "^26.3.0", "babel-jest": "^26.3.0", "chalk": "^4.0.0", "deepmerge": "^4.2.2", "glob": "^7.1.1", "graceful-fs": "^4.2.4", "jest-environment-jsdom": "^26.3.0", "jest-environment-node": "^26.3.0", "jest-get-type": "^26.3.0", "jest-jasmine2": "^26.4.2", "jest-regex-util": "^26.0.0", "jest-resolve": "^26.4.0", "jest-util": "^26.3.0", "jest-validate": "^26.4.2", "micromatch": "^4.0.2", "pretty-format": "^26.4.2" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "jest-diff": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.4.2.tgz", "integrity": "sha512-6T1XQY8U28WH0Z5rGpQ+VqZSZz8EN8rZcBtfvXaOkbwxIEeRre6qnuZQlbY1AJ4MKDxQF8EkrCvK+hL/VkyYLQ==", "dev": true, "requires": { "chalk": "^4.0.0", "diff-sequences": "^26.3.0", "jest-get-type": "^26.3.0", "pretty-format": "^26.4.2" }, "dependencies": { "diff-sequences": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.3.0.tgz", "integrity": "sha512-5j5vdRcw3CNctePNYN0Wy2e/JbWT6cAYnXv5OuqPhDpyCGc0uLu2TK0zOCJWNB9kOIfYMSpIulRaDgIi4HJ6Ig==", "dev": true } } }, "jest-docblock": { "version": "26.0.0", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", "dev": true, "requires": { "detect-newline": "^3.0.0" } }, "jest-each": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.4.2.tgz", "integrity": "sha512-p15rt8r8cUcRY0Mvo1fpkOGYm7iI8S6ySxgIdfh3oOIv+gHwrHTy5VWCGOecWUhDsit4Nz8avJWdT07WLpbwDA==", "dev": true, "requires": { "@jest/types": "^26.3.0", "chalk": "^4.0.0", "jest-get-type": "^26.3.0", "jest-util": "^26.3.0", "pretty-format": "^26.4.2" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "jest-environment-jsdom": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.3.0.tgz", "integrity": "sha512-zra8He2btIMJkAzvLaiZ9QwEPGEetbxqmjEBQwhH3CA+Hhhu0jSiEJxnJMbX28TGUvPLxBt/zyaTLrOPF4yMJA==", "dev": true, "requires": { "@jest/environment": "^26.3.0", "@jest/fake-timers": "^26.3.0", "@jest/types": "^26.3.0", "@types/node": "*", "jest-mock": "^26.3.0", "jest-util": "^26.3.0", "jsdom": "^16.2.2" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "jest-environment-node": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.3.0.tgz", "integrity": "sha512-c9BvYoo+FGcMj5FunbBgtBnbR5qk3uky8PKyRVpSfe2/8+LrNQMiXX53z6q2kY+j15SkjQCOSL/6LHnCPLVHNw==", "dev": true, "requires": { "@jest/environment": "^26.3.0", "@jest/fake-timers": "^26.3.0", "@jest/types": "^26.3.0", "@types/node": "*", "jest-mock": "^26.3.0", "jest-util": "^26.3.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "jest-get-type": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", "dev": true }, "jest-haste-map": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.3.0.tgz", "integrity": "sha512-DHWBpTJgJhLLGwE5Z1ZaqLTYqeODQIZpby0zMBsCU9iRFHYyhklYqP4EiG73j5dkbaAdSZhgB938mL51Q5LeZA==", "dev": true, "requires": { "@jest/types": "^26.3.0", "@types/graceful-fs": "^4.1.2", "@types/node": "*", "anymatch": "^3.0.3", "fb-watchman": "^2.0.0", "fsevents": "^2.1.2", "graceful-fs": "^4.2.4", "jest-regex-util": "^26.0.0", "jest-serializer": "^26.3.0", "jest-util": "^26.3.0", "jest-worker": "^26.3.0", "micromatch": "^4.0.2", "sane": "^4.0.3", "walker": "^1.0.7" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "jest-jasmine2": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.4.2.tgz", "integrity": "sha512-z7H4EpCldHN1J8fNgsja58QftxBSL+JcwZmaXIvV9WKIM+x49F4GLHu/+BQh2kzRKHAgaN/E82od+8rTOBPyPA==", "dev": true, "requires": { "@babel/traverse": "^7.1.0", "@jest/environment": "^26.3.0", "@jest/source-map": "^26.3.0", "@jest/test-result": "^26.3.0", "@jest/types": "^26.3.0", "@types/node": "*", "chalk": "^4.0.0", "co": "^4.6.0", "expect": "^26.4.2", "is-generator-fn": "^2.0.0", "jest-each": "^26.4.2", "jest-matcher-utils": "^26.4.2", "jest-message-util": "^26.3.0", "jest-runtime": "^26.4.2", "jest-snapshot": "^26.4.2", "jest-util": "^26.3.0", "pretty-format": "^26.4.2", "throat": "^5.0.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "jest-leak-detector": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.4.2.tgz", "integrity": "sha512-akzGcxwxtE+9ZJZRW+M2o+nTNnmQZxrHJxX/HjgDaU5+PLmY1qnQPnMjgADPGCRPhB+Yawe1iij0REe+k/aHoA==", "dev": true, "requires": { "jest-get-type": "^26.3.0", "pretty-format": "^26.4.2" } }, "jest-matcher-utils": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.4.2.tgz", "integrity": "sha512-KcbNqWfWUG24R7tu9WcAOKKdiXiXCbMvQYT6iodZ9k1f7065k0keUOW6XpJMMvah+hTfqkhJhRXmA3r3zMAg0Q==", "dev": true, "requires": { "chalk": "^4.0.0", "jest-diff": "^26.4.2", "jest-get-type": "^26.3.0", "pretty-format": "^26.4.2" } }, "jest-message-util": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.3.0.tgz", "integrity": "sha512-xIavRYqr4/otGOiLxLZGj3ieMmjcNE73Ui+LdSW/Y790j5acqCsAdDiLIbzHCZMpN07JOENRWX5DcU+OQ+TjTA==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "@jest/types": "^26.3.0", "@types/stack-utils": "^1.0.1", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "micromatch": "^4.0.2", "slash": "^3.0.0", "stack-utils": "^2.0.2" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "jest-mock": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.3.0.tgz", "integrity": "sha512-PeaRrg8Dc6mnS35gOo/CbZovoDPKAeB1FICZiuagAgGvbWdNNyjQjkOaGUa/3N3JtpQ/Mh9P4A2D4Fv51NnP8Q==", "dev": true, "requires": { "@jest/types": "^26.3.0", "@types/node": "*" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "jest-pnp-resolver": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", "dev": true }, "jest-regex-util": { "version": "26.0.0", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", "dev": true }, "jest-resolve": { "version": "26.4.0", "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.4.0.tgz", "integrity": "sha512-bn/JoZTEXRSlEx3+SfgZcJAVuTMOksYq9xe9O6s4Ekg84aKBObEaVXKOEilULRqviSLAYJldnoWV9c07kwtiCg==", "dev": true, "requires": { "@jest/types": "^26.3.0", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "jest-pnp-resolver": "^1.2.2", "jest-util": "^26.3.0", "read-pkg-up": "^7.0.1", "resolve": "^1.17.0", "slash": "^3.0.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "jest-resolve-dependencies": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.4.2.tgz", "integrity": "sha512-ADHaOwqEcVc71uTfySzSowA/RdxUpCxhxa2FNLiin9vWLB1uLPad3we+JSSROq5+SrL9iYPdZZF8bdKM7XABTQ==", "dev": true, "requires": { "@jest/types": "^26.3.0", "jest-regex-util": "^26.0.0", "jest-snapshot": "^26.4.2" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "jest-runner": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.4.2.tgz", "integrity": "sha512-FgjDHeVknDjw1gRAYaoUoShe1K3XUuFMkIaXbdhEys+1O4bEJS8Avmn4lBwoMfL8O5oFTdWYKcf3tEJyyYyk8g==", "dev": true, "requires": { "@jest/console": "^26.3.0", "@jest/environment": "^26.3.0", "@jest/test-result": "^26.3.0", "@jest/types": "^26.3.0", "@types/node": "*", "chalk": "^4.0.0", "emittery": "^0.7.1", "exit": "^0.1.2", "graceful-fs": "^4.2.4", "jest-config": "^26.4.2", "jest-docblock": "^26.0.0", "jest-haste-map": "^26.3.0", "jest-leak-detector": "^26.4.2", "jest-message-util": "^26.3.0", "jest-resolve": "^26.4.0", "jest-runtime": "^26.4.2", "jest-util": "^26.3.0", "jest-worker": "^26.3.0", "source-map-support": "^0.5.6", "throat": "^5.0.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "jest-runtime": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.4.2.tgz", "integrity": "sha512-4Pe7Uk5a80FnbHwSOk7ojNCJvz3Ks2CNQWT5Z7MJo4tX0jb3V/LThKvD9tKPNVNyeMH98J/nzGlcwc00R2dSHQ==", "dev": true, "requires": { "@jest/console": "^26.3.0", "@jest/environment": "^26.3.0", "@jest/fake-timers": "^26.3.0", "@jest/globals": "^26.4.2", "@jest/source-map": "^26.3.0", "@jest/test-result": "^26.3.0", "@jest/transform": "^26.3.0", "@jest/types": "^26.3.0", "@types/yargs": "^15.0.0", "chalk": "^4.0.0", "collect-v8-coverage": "^1.0.0", "exit": "^0.1.2", "glob": "^7.1.3", "graceful-fs": "^4.2.4", "jest-config": "^26.4.2", "jest-haste-map": "^26.3.0", "jest-message-util": "^26.3.0", "jest-mock": "^26.3.0", "jest-regex-util": "^26.0.0", "jest-resolve": "^26.4.0", "jest-snapshot": "^26.4.2", "jest-util": "^26.3.0", "jest-validate": "^26.4.2", "slash": "^3.0.0", "strip-bom": "^4.0.0", "yargs": "^15.3.1" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "jest-serializer": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.3.0.tgz", "integrity": "sha512-IDRBQBLPlKa4flg77fqg0n/pH87tcRKwe8zxOVTWISxGpPHYkRZ1dXKyh04JOja7gppc60+soKVZ791mruVdow==", "dev": true, "requires": { "@types/node": "*", "graceful-fs": "^4.2.4" }, "dependencies": { "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "jest-snapshot": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.4.2.tgz", "integrity": "sha512-N6Uub8FccKlf5SBFnL2Ri/xofbaA68Cc3MGjP/NuwgnsvWh+9hLIR/DhrxbSiKXMY9vUW5dI6EW1eHaDHqe9sg==", "dev": true, "requires": { "@babel/types": "^7.0.0", "@jest/types": "^26.3.0", "@types/prettier": "^2.0.0", "chalk": "^4.0.0", "expect": "^26.4.2", "graceful-fs": "^4.2.4", "jest-diff": "^26.4.2", "jest-get-type": "^26.3.0", "jest-haste-map": "^26.3.0", "jest-matcher-utils": "^26.4.2", "jest-message-util": "^26.3.0", "jest-resolve": "^26.4.0", "natural-compare": "^1.4.0", "pretty-format": "^26.4.2", "semver": "^7.3.2" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true } } }, "jest-util": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.3.0.tgz", "integrity": "sha512-4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw==", "dev": true, "requires": { "@jest/types": "^26.3.0", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "is-ci": "^2.0.0", "micromatch": "^4.0.2" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true } } }, "jest-validate": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.4.2.tgz", "integrity": "sha512-blft+xDX7XXghfhY0mrsBCYhX365n8K5wNDC4XAcNKqqjEzsRUSXP44m6PL0QJEW2crxQFLLztVnJ4j7oPlQrQ==", "dev": true, "requires": { "@jest/types": "^26.3.0", "camelcase": "^6.0.0", "chalk": "^4.0.0", "jest-get-type": "^26.3.0", "leven": "^3.1.0", "pretty-format": "^26.4.2" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "camelcase": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz", "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==", "dev": true } } }, "jest-watcher": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.3.0.tgz", "integrity": "sha512-XnLdKmyCGJ3VoF6G/p5ohbJ04q/vv5aH9ENI+i6BL0uu9WWB6Z7Z2lhQQk0d2AVZcRGp1yW+/TsoToMhBFPRdQ==", "dev": true, "requires": { "@jest/test-result": "^26.3.0", "@jest/types": "^26.3.0", "@types/node": "*", "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", "jest-util": "^26.3.0", "string-length": "^4.0.1" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "jest-worker": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" }, "dependencies": { "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, "jsdom": { "version": "16.4.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", "dev": true, "requires": { "abab": "^2.0.3", "acorn": "^7.1.1", "acorn-globals": "^6.0.0", "cssom": "^0.4.4", "cssstyle": "^2.2.0", "data-urls": "^2.0.0", "decimal.js": "^10.2.0", "domexception": "^2.0.1", "escodegen": "^1.14.1", "html-encoding-sniffer": "^2.0.1", "is-potential-custom-element-name": "^1.0.0", "nwsapi": "^2.2.0", "parse5": "5.1.1", "request": "^2.88.2", "request-promise-native": "^1.0.8", "saxes": "^5.0.0", "symbol-tree": "^3.2.4", "tough-cookie": "^3.0.1", "w3c-hr-time": "^1.0.2", "w3c-xmlserializer": "^2.0.0", "webidl-conversions": "^6.1.0", "whatwg-encoding": "^1.0.5", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" } }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", "dev": true }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, "json5": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" } }, "keyv": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", "dev": true, "requires": { "json-buffer": "3.0.0" } }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true }, "latest-version": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", "dev": true, "requires": { "package-json": "^6.3.0" } }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" } }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" } }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", "dev": true }, "lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", "dev": true }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { "yallist": "^4.0.0" } }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { "semver": "^6.0.0" }, "dependencies": { "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "makeerror": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", "dev": true, "requires": { "tmpl": "1.0.x" } }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { "object-visit": "^1.0.0" } }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.0.5" } }, "mime-db": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { "version": "2.1.27", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { "mime-db": "1.44.0" } }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "mimic-response": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "^2.0.4" } } } }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "fragment-cache": "^0.2.1", "is-windows": "^1.0.2", "kind-of": "^6.0.2", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" } }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", "dev": true }, "node-modules-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", "dev": true }, "node-notifier": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", "dev": true, "requires": { "growly": "^1.3.0", "is-wsl": "^2.2.0", "semver": "^7.3.2", "shellwords": "^0.1.1", "uuid": "^8.3.0", "which": "^2.0.2" }, "dependencies": { "semver": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "nodemon": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.4.tgz", "integrity": "sha512-Ltced+hIfTmaS28Zjv1BM552oQ3dbwPqI4+zI0SLgq+wpJhSyqgYude/aZa/3i31VCQWMfXJVxvu86abcam3uQ==", "dev": true, "requires": { "chokidar": "^3.2.2", "debug": "^3.2.6", "ignore-by-default": "^1.0.1", "minimatch": "^3.0.4", "pstree.remy": "^1.1.7", "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.2", "update-notifier": "^4.0.0" }, "dependencies": { "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "dev": true, "requires": { "abbrev": "1" } }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "normalize-url": { "version": "4.5.1", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", "dev": true }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { "path-key": "^2.0.0" } }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { "isobject": "^3.0.0" } }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { "isobject": "^3.0.1" } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" } }, "onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", "word-wrap": "~1.2.3" } }, "p-cancelable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", "dev": true }, "p-each-series": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz", "integrity": "sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==", "dev": true }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" } }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "package-json": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", "dev": true, "requires": { "got": "^9.6.0", "registry-auth-token": "^4.0.0", "registry-url": "^5.0.0", "semver": "^6.2.0" }, "dependencies": { "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "parse-json": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-even-better-errors": "^2.3.0", "lines-and-columns": "^1.1.6" } }, "parse5": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", "dev": true }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pirates": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", "dev": true, "requires": { "node-modules-regexp": "^1.0.0" } }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { "find-up": "^4.0.0" } }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", "dev": true }, "pretty-format": { "version": "26.4.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz", "integrity": "sha512-zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA==", "dev": true, "requires": { "@jest/types": "^26.3.0", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } } } }, "prompts": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", "dev": true, "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.4" } }, "psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "dev": true }, "pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "pupa": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", "dev": true, "requires": { "escape-goat": "^2.0.0" } }, "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" } }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", "dev": true }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", "parse-json": "^5.0.0", "type-fest": "^0.6.0" }, "dependencies": { "type-fest": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true } } }, "read-pkg-up": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "requires": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" } }, "readdirp": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", "dev": true, "requires": { "picomatch": "^2.2.1" } }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" } }, "registry-auth-token": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz", "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==", "dev": true, "requires": { "rc": "^1.2.8" } }, "registry-url": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", "dev": true, "requires": { "rc": "^1.2.8" } }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~2.3.2", "har-validator": "~5.1.3", "http-signature": "~1.2.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "oauth-sign": "~0.9.0", "performance-now": "^2.1.0", "qs": "~6.5.2", "safe-buffer": "^5.1.2", "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" }, "dependencies": { "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" } }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", "dev": true } } }, "request-promise-core": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", "dev": true, "requires": { "lodash": "^4.17.19" } }, "request-promise-native": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", "dev": true, "requires": { "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" }, "dependencies": { "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { "psl": "^1.1.28", "punycode": "^2.1.1" } } } }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "resolve": { "version": "1.17.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", "dev": true, "requires": { "path-parse": "^1.0.6" } }, "resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "requires": { "resolve-from": "^5.0.0" } }, "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "responselike": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", "dev": true, "requires": { "lowercase-keys": "^1.0.0" } }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } }, "rsvp": { "version": "4.8.5", "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", "dev": true }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "safe-regex": { "version": "1.1.0", "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { "ret": "~0.1.10" } }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "sane": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", "dev": true, "requires": { "@cnakazawa/watch": "^1.0.3", "anymatch": "^2.0.0", "capture-exit": "^2.0.0", "exec-sh": "^0.3.2", "execa": "^1.0.0", "fb-watchman": "^2.0.0", "micromatch": "^3.1.4", "minimist": "^1.1.1", "walker": "~1.0.5" }, "dependencies": { "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" } }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", "extend-shallow": "^2.0.1", "fill-range": "^4.0.0", "isobject": "^3.0.1", "repeat-element": "^1.1.2", "snapdragon": "^0.8.1", "snapdragon-node": "^2.0.1", "split-string": "^3.0.2", "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "braces": "^2.3.1", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "extglob": "^2.0.4", "fragment-cache": "^0.2.1", "kind-of": "^6.0.2", "nanomatch": "^1.2.9", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" } }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" } } } }, "saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", "dev": true, "requires": { "xmlchars": "^2.2.0" } }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "semver-diff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "dev": true, "requires": { "semver": "^6.3.0" }, "dependencies": { "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "shellwords": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", "dev": true }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "map-cache": "^0.2.2", "source-map": "^0.5.6", "source-map-resolve": "^0.5.0", "use": "^3.1.0" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true } } }, "snapdragon-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", "urix": "^0.1.0" } }, "source-map-support": { "version": "0.5.9", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", "dashdash": "^1.12.0", "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" } }, "stack-utils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz", "integrity": "sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg==", "dev": true, "requires": { "escape-string-regexp": "^2.0.0" }, "dependencies": { "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true } } }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } } } }, "stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", "dev": true }, "string-length": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", "dev": true, "requires": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" } }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" }, "dependencies": { "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true } } }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } }, "strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true }, "strip-eof": { "version": "1.0.0", "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, "supports-hyperlinks": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", "dev": true, "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "dependencies": { "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, "term-size": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", "dev": true }, "terminal-link": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" } }, "test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "requires": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" } }, "throat": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", "dev": true }, "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "to-readable-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", "dev": true }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" } }, "touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "dev": true, "requires": { "nopt": "~1.0.10" } }, "tough-cookie": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", "dev": true, "requires": { "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" } }, "tr46": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", "dev": true, "requires": { "punycode": "^2.1.1" } }, "ts-jest": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.3.0.tgz", "integrity": "sha512-Jq2uKfx6bPd9+JDpZNMBJMdMQUC3sJ08acISj8NXlVgR2d5OqslEHOR2KHMgwymu8h50+lKIm0m0xj/ioYdW2Q==", "dev": true, "requires": { "@types/jest": "26.x", "bs-logger": "0.x", "buffer-from": "1.x", "fast-json-stable-stringify": "2.x", "jest-util": "26.x", "json5": "2.x", "lodash.memoize": "4.x", "make-error": "1.x", "mkdirp": "1.x", "semver": "7.x", "yargs-parser": "18.x" }, "dependencies": { "@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, "requires": { "@types/istanbul-lib-report": "*" } }, "@types/jest": { "version": "26.0.13", "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.13.tgz", "integrity": "sha512-sCzjKow4z9LILc6DhBvn5AkIfmQzDZkgtVVKmGwVrs5tuid38ws281D4l+7x1kP487+FlKDh5kfMZ8WSPAdmdA==", "dev": true, "requires": { "jest-diff": "^25.2.1", "pretty-format": "^25.2.1" } }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { "fill-range": "^7.0.1" } }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "graceful-fs": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { "ci-info": "^2.0.0" } }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "jest-diff": { "version": "25.5.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz", "integrity": "sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==", "dev": true, "requires": { "chalk": "^3.0.0", "diff-sequences": "^25.2.6", "jest-get-type": "^25.2.6", "pretty-format": "^25.5.0" } }, "jest-get-type": { "version": "25.2.6", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz", "integrity": "sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==", "dev": true }, "jest-util": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.3.0.tgz", "integrity": "sha512-4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw==", "dev": true, "requires": { "@jest/types": "^26.3.0", "@types/node": "*", "chalk": "^4.0.0", "graceful-fs": "^4.2.4", "is-ci": "^2.0.0", "micromatch": "^4.0.2" }, "dependencies": { "@jest/types": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz", "integrity": "sha512-BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" } }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } } } }, "json5": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.0.5" } }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, "pretty-format": { "version": "25.5.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz", "integrity": "sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==", "dev": true, "requires": { "@jest/types": "^25.5.0", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^16.12.0" } }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" } }, "yargs-parser": { "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } } } }, "ts-node": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", "dev": true, "requires": { "arrify": "^1.0.0", "buffer-from": "^1.1.0", "diff": "^3.1.0", "make-error": "^1.1.1", "minimist": "^1.2.0", "mkdirp": "^0.5.1", "source-map-support": "^0.5.6", "yn": "^2.0.0" } }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { "safe-buffer": "^5.0.1" } }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { "prelude-ls": "~1.1.2" } }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "requires": { "is-typedarray": "^1.0.0" } }, "typescript": { "version": "3.9.7", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", "dev": true }, "undefsafe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", "dev": true, "requires": { "debug": "^2.2.0" }, "dependencies": { "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } } } }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" } }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "requires": { "crypto-random-string": "^2.0.0" } }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", "isobject": "^2.0.0" }, "dependencies": { "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" } } } }, "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true } } }, "update-notifier": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.1.tgz", "integrity": "sha512-9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg==", "dev": true, "requires": { "boxen": "^4.2.0", "chalk": "^3.0.0", "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", "is-installed-globally": "^0.3.1", "is-npm": "^4.0.0", "is-yarn-global": "^0.3.0", "latest-version": "^5.0.0", "pupa": "^2.0.1", "semver-diff": "^3.1.1", "xdg-basedir": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { "ci-info": "^2.0.0" } }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "uri-js": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", "dev": true, "requires": { "punycode": "^2.1.0" } }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "url-parse-lax": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", "dev": true, "requires": { "prepend-http": "^2.0.0" } }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, "uuid": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz", "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==", "dev": true }, "v8-to-istanbul": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz", "integrity": "sha512-mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q==", "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^1.6.0", "source-map": "^0.7.3" }, "dependencies": { "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true } } }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "dev": true, "requires": { "browser-process-hrtime": "^1.0.0" } }, "w3c-xmlserializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", "dev": true, "requires": { "xml-name-validator": "^3.0.0" } }, "walker": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", "dev": true, "requires": { "makeerror": "1.0.x" } }, "webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", "dev": true }, "whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", "dev": true, "requires": { "iconv-lite": "0.4.24" } }, "whatwg-mimetype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", "dev": true }, "whatwg-url": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.2.1.tgz", "integrity": "sha512-ZmVCr6nfBeaMxEHALLEGy0LszYjpJqf6PVNQUQ1qd9Et+q7Jpygd4rGGDXgHjD8e99yLFseD69msHDM4YwPZ4A==", "dev": true, "requires": { "lodash.sortby": "^4.7.0", "tr46": "^2.0.2", "webidl-conversions": "^6.1.0" } }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "widest-line": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, "requires": { "string-width": "^4.0.0" }, "dependencies": { "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } } } }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", "typedarray-to-buffer": "^3.1.5" } }, "ws": { "version": "7.4.6", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", "dev": true }, "xdg-basedir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", "dev": true }, "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", "dev": true }, "y18n": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { "cliui": "^6.0.0", "decamelize": "^1.2.0", "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^18.1.2" } }, "yargs-parser": { "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "yn": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", "dev": true } } } rxjs-7.5.7/docs_app/tools/decision-tree-generator/package.json000066400000000000000000000014051431412030200244420ustar00rootroot00000000000000{ "name": "decision-tree-generator", "version": "2.0.1", "description": "Interactive widget for a decision tree to assist choosing an RxJS operator", "contributors": [ { "name": "Jason Awbrey", "email": "jason.s.awbrey@gmail.com", "url": "https://jason-awbrey.com" } ], "scripts": { "watch": "nodemon -e ts,yml --watch './**/*' --exec 'ts-node' main.ts", "build": "ts-node main.ts", "test": "jest", "test:watch": "jest --watch -o", "test:coverage": "jest --coverage", "test:watch:coverage": "jest --watch -o --coverage" }, "devDependencies": { "@types/jest": "^26.0.13", "jest": "^26.4.2", "nodemon": "^2.0.4", "ts-jest": "^26.3.0", "ts-node": "^7.0.1", "typescript": "^3.9.7" } } rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/000077500000000000000000000000001431412030200227435ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/000077500000000000000000000000001431412030200235115ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/addUniqueId.spec.ts000066400000000000000000000025011431412030200272040ustar00rootroot00000000000000import { addUniqueId } from './addUniqueId'; import { TreeNode } from './interfaces'; import { mockRawTreeNodes } from './fixtures'; describe('addUniqueId', () => { describe('when called with three raw nodes', () => { let tree: TreeNode[]; let baseProperties: jest.Expect; beforeEach(() => { tree = addUniqueId(mockRawTreeNodes); baseProperties = expect.objectContaining({ id: expect.any(String), label: expect.any(String), depth: expect.any(Number), }); }); describe('and one of the nodes is a child of another', () => { it('should not flatten the tree and return the same number of top level nodes', () => { expect(tree).toHaveLength(mockRawTreeNodes.length); }); it('should return an array of tree nodes that have unique ids', () => { tree.forEach(node => { expect(node).toEqual(baseProperties); if (!node.children) { expect(node).not.toHaveProperty('options'); } else { expect(node).toEqual(expect.objectContaining({ children: expect.any(Array), options: expect.any(Array), })); node.children.forEach(child => { expect(child).toEqual(baseProperties); }); } }); }); }); }); }); rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/addUniqueId.ts000066400000000000000000000020471431412030200262600ustar00rootroot00000000000000import { TreeNode, TreeNodeRaw } from './interfaces'; import { generateUniqueId } from './generateUniqueId'; /** * Recursively walks the tree and adds unique ids. * It also aggregates nested nodes new unique IDs in an options field. * Depth is added to better determine later if it's an inital question * * @export * @param {Tree} tree * @param {number} [depth=0] * @requires generateUniqueId * @returns {Tree} */ export function addUniqueId(tree: TreeNodeRaw[], depth = 0): TreeNode[] { return tree.map(node => { let treeNode: TreeNode; treeNode = { label: node.label, id: generateUniqueId(), depth // used later in extractInitialSequence to determine the initial options }; if (node.children) { const children = addUniqueId(node.children, depth + 1); treeNode = { ...treeNode, children, options: children.map(({ id }) => id) }; } if (node.method) { treeNode = { ...treeNode, method: node.method }; } return treeNode; }); } rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/build.spec.ts000066400000000000000000000006741431412030200261200ustar00rootroot00000000000000import { build } from './build'; import { mockFlatApiList, mockRawTreeNodes } from './fixtures'; import { treeNodeCount } from './helpers'; describe('build', () => { const tree = build(mockFlatApiList, mockRawTreeNodes); it('should return a flat map of all nodes and one additional initial node', () => { expect(tree).toHaveProperty('initial'); expect(Object.keys(tree).length).toBe(treeNodeCount(mockRawTreeNodes) + 1); }); }); rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/build.ts000066400000000000000000000014701431412030200251620ustar00rootroot00000000000000import { addUniqueId } from './addUniqueId'; import { extractInitialSequence } from './extractInitialSequence'; import { FlattenedApiList, DecisionTree, TreeNodeRaw } from './interfaces'; import { decisionTreeReducer } from './decisionTreeReducer'; /** * Main build script, outputs the decision tree. * * @export * @param {FlattenedApiList} apiList * @param {Tree} tree * @requires addUniqueId * @requires extractInitialSequence * @requires decisionTreeReducer * @returns {DecisionTree} */ export function build(apiList: FlattenedApiList, tree: TreeNodeRaw[]): DecisionTree { const nodesWithUniqueIds = addUniqueId(tree); const initialOption = extractInitialSequence(nodesWithUniqueIds); return { ...decisionTreeReducer(nodesWithUniqueIds, apiList), [initialOption.id]: { ...initialOption } }; } rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/decisionTreeReducer.spec.ts000066400000000000000000000051771431412030200307530ustar00rootroot00000000000000import { decisionTreeReducer } from './decisionTreeReducer'; import { mockFlatApiList, mockRawTreeNodes } from './fixtures'; import { addUniqueId } from './addUniqueId'; import { rawNodesWithMethodCount } from './helpers'; describe('decisionTreeReducer', () => { const tree = decisionTreeReducer(addUniqueId(mockRawTreeNodes), mockFlatApiList); describe('all nodes', () => { const baseProperties = expect.objectContaining({ id: expect.any(String), label: expect.any(String) }); it('should have base properties', () => { for (const key in tree) { if (tree.hasOwnProperty(key)) { expect(tree[key]).toEqual(baseProperties); } } }); describe('that have options', () => { it('should have an options property that is an array of strings', () => { for (const key in tree) { if ( tree.hasOwnProperty(key) && tree[key].options ) { tree[key].options.forEach(option => { expect(typeof option).toBe('string'); }); } } }); }); describe('when a node does not have options', () => { it('should not have an options property', () => { for (const key in tree) { if ( tree.hasOwnProperty(key) && !tree[key].options ) { expect(tree[key]).not.toHaveProperty('options'); } } }); it('should have a docType and a path', () => { for (const key in tree) { if ( tree.hasOwnProperty(key) && !tree[key].options ) { expect(tree[key]).toHaveProperty('docType'); expect(tree[key]).toHaveProperty('path'); } } }); describe('and the node does not exist in the API list', () => { const treeNodesMissingInApiList = [ ...mockRawTreeNodes, { label: 'foo' } ]; it('should call a console.log', () => { const spy = jest.spyOn(console, 'log'); decisionTreeReducer(addUniqueId(treeNodesMissingInApiList), mockFlatApiList); expect(spy).toHaveBeenCalled(); }); }); }); describe('when any raw node had a method', () => { const rawCount = rawNodesWithMethodCount(mockRawTreeNodes); it('should have a method property', () => { let count = 0; for (const key in tree) { if ( tree.hasOwnProperty(key) && tree[key].method ) { count++; } } expect(count).toBe(rawCount); }); }); }); }); rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/decisionTreeReducer.ts000066400000000000000000000033531431412030200300140ustar00rootroot00000000000000import chalk from 'chalk'; import { DecisionTree, FlattenedApiList, FlattenedApiNode, TreeNode } from './interfaces'; /** * Recursively walks the tree and pulls relevant information from the API list. * Helps build the view model. * * @export * @param {Tree} tree * @param {FlattenedApiList} apiList * @returns {DecisionTree} */ export function decisionTreeReducer( tree: TreeNode[], apiList: FlattenedApiList ): DecisionTree { return tree.reduce((acc, curr) => { let nested; let treeNode: TreeNode = { // there might not be options, grab what we know is available id: curr.id, label: curr.label }; if (curr.options) { // we are still deciding treeNode = { ...treeNode, options: curr.options }; } if (!curr.options) { // we found the function/operator we want to use const apiNode: FlattenedApiNode = apiList[treeNode.label]; if (!apiNode) { console.log( chalk.yellow('Decision Tree Generator - (reducer) - warning:'), `Label does not exist in API List: ${treeNode.label}` ); } treeNode = { ...treeNode, ...apiNode // helps to build uri, used in Angular template }; } if (curr.method) { // if we need to point at a method of a class, like Observable.create, helps to build uri treeNode = { ...treeNode, method: curr.method }; } if (curr.children) { // there are children of the current node, recursively walk the paths to continue building the decision tree data nested = decisionTreeReducer(curr.children, apiList); } return { ...acc, ...nested, [treeNode.id]: treeNode }; }, {}); } rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/extractInitialSequence.spec.ts000066400000000000000000000013641431412030200314730ustar00rootroot00000000000000import { extractInitialSequence } from './extractInitialSequence'; import { addUniqueId } from './addUniqueId'; import { mockRawTreeNodes } from './fixtures'; const tree = addUniqueId(mockRawTreeNodes); const initialSequence = extractInitialSequence(tree); describe('extractInitialSequence', () => { describe('when given a tree that has passed through addUniqueId', () => { it('will return an object that has an id of initial', () => { expect(initialSequence).toMatchObject({ id: 'initial', options: expect.any(Array) }); }); it('it will return a number of options equal to the length of the original tree', () => { expect(initialSequence.options).toHaveLength(mockRawTreeNodes.length); }); }); }); rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/extractInitialSequence.ts000066400000000000000000000005661431412030200305450ustar00rootroot00000000000000import { TreeNode } from './interfaces'; /** * Strip out initial sequence and add to tree * * @export * @param {Tree} tree * @returns {{id: string, options: string[]}} */ export function extractInitialSequence(tree: TreeNode[]): {id: string, options: string[]} { return { id: 'initial', options: tree.filter(node => !node.depth).map(node => node.id) }; } rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/fixtures.ts000066400000000000000000000040171431412030200257340ustar00rootroot00000000000000import { TreeNodeRaw, FlattenedApiList, ApiListNode } from './interfaces'; export const mockRawTreeNodes: TreeNodeRaw[] = [ { label: 'map' }, { label: 'just a label', children: [ { label: 'yet another label', children: [ { label: 'concat' } ] } ] }, { label: 'Observable', method: 'fakeMethod' } ]; export const mockFlatApiList = { map: { docType: 'function', path: 'fakePath' }, mapTo: { docType: 'function', path: 'fakePath' }, concat: { docType: 'function', path: 'fakePath' }, Observable: { docType: 'class', path: 'fakePath' } } as FlattenedApiList; // TODO consider using the real API list export const mockRawApiListWithDeprecatedRefs: ApiListNode[] = [ { name: 'foo', title: 'foo', items: [ { name: 'empty', title: 'EMPTY', path: 'api/index/function/empty', docType: 'function', stability: 'deprecated', securityRisk: false }, { name: 'empty', title: 'EMPTY', path: 'api/index/const/EMPTY', docType: 'const', stability: '', securityRisk: false }, { name: 'concat', title: 'concat', path: 'api/index/function/concat', docType: 'function', stability: '', securityRisk: false } ] }, { name: 'bar', title: 'bar', items: [ { name: 'never', title: 'NEVER', path: 'api/index/function/never', docType: 'function', stability: 'deprecated', securityRisk: false }, { name: 'never', title: 'NEVER', path: 'api/index/const/NEVER', docType: 'const', stability: '', securityRisk: false }, { name: 'map', title: 'map', path: 'api/index/function/map', docType: 'function', stability: '', securityRisk: false } ] } ]; rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/flattenApiList.spec.ts000066400000000000000000000010711431412030200277340ustar00rootroot00000000000000import { flattenApiList } from './flattenApiList'; import { mockRawApiListWithDeprecatedRefs } from './fixtures'; import { validApiRefCount } from './helpers'; describe('flattenApiList', () => { describe('when a API reference is deprecated', () => { const flattenedApiList = flattenApiList(mockRawApiListWithDeprecatedRefs); const validRefCount = validApiRefCount(mockRawApiListWithDeprecatedRefs); it('should return a flat list with only stable refs', () => { expect(Object.keys(flattenedApiList)).toHaveLength(validRefCount); }); }); }); rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/flattenApiList.ts000066400000000000000000000016711431412030200270110ustar00rootroot00000000000000import { ApiListNode, FlattenedApiList } from './interfaces'; import { isStable } from './helpers'; /** * Flattens API List from the docs generation into a map with relevant properties. * Makes navigation easier. * * @export * @param {ApiListNode[]} [apiList=[]] * @requires isStable * @returns {FlattenedApiList} * @todo create better type lenses - inference is not working well here */ export function flattenApiList(apiList: ApiListNode[]): FlattenedApiList { return apiList.reduce((acc, curr): FlattenedApiList => { return { ...acc, ...curr.items.reduce((acc, curr): FlattenedApiList => { if (isStable(curr.stability)) { return { ...acc, [curr.title]: { path: curr.path, docType: curr.docType, } }; } return { ...acc, }; }, {} as FlattenedApiList), }; }, {} as FlattenedApiList); } rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/generateUniqueId.spec.ts000066400000000000000000000004721431412030200302530ustar00rootroot00000000000000import { generateUniqueId } from './generateUniqueId'; describe('generateUniqueId', () => { describe('when called', () => { it('will generate a unique string', () => { const x = generateUniqueId(); expect(x).not.toBe(generateUniqueId()); expect(typeof x).toBe('string'); }); }); }); rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/generateUniqueId.ts000066400000000000000000000003761431412030200273250ustar00rootroot00000000000000import { randomBytes } from 'crypto'; /** * Generates a unique ID for the decision tree nodes * * @export * @requires crypto:randomByes * @returns {string} */ export function generateUniqueId(): string { return randomBytes(2).toString('hex'); } rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/helpers.spec.ts000066400000000000000000000006071431412030200264570ustar00rootroot00000000000000import { isStable } from './helpers'; describe('isStable', () => { describe('when passed anything but the string "deprecated"', () => { it('will return true', () => { expect(isStable('')).toBeTruthy(); }); }); describe('when passed the string "deprecated"', () => { it('will return false', () => { expect(isStable('deprecated')).toBeFalsy(); }); }); }); rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/helpers.ts000066400000000000000000000031041431412030200255210ustar00rootroot00000000000000export type Omit = Pick>; /** * The model for an API list item has a stability property. * If the API reference is deprecated it will not be stable. * We don't want to point people to deprecated API references. * * @export * @param {string} stability * @returns {boolean} */ export function isStable(stability: string): boolean { return stability !== 'deprecated'; } /** * Recursively count the number of tree nodes * * @export * @param {*} tree * @returns */ export function treeNodeCount(tree) { return tree.reduce((acc: number, curr) => { let childSum: number; if (curr.children) { childSum = treeNodeCount(curr.children); return ++acc + childSum; } return ++acc; }, 0); } /** * Recursively count the number of nodes with a method * * @export * @param {*} tree * @returns */ export function rawNodesWithMethodCount(tree) { return tree.filter(node => { let childHadMethod: boolean; if (node.method) { return node; } if (node.children) { childHadMethod = rawNodesWithMethodCount(node.children); } return childHadMethod; }).length; } /** * Recursively count valid API references * Deprecated API refs are invalid * * @export * @param {*} apiList * @returns */ export function validApiRefCount(apiList): number { return apiList.reduce((acc, curr) => { const itemCount = curr.items.reduce((a, node) => { if (node.stability === 'deprecated') { return a; } return ++a; }, 0); return acc + itemCount; }, 0); } rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/index.ts000066400000000000000000000003551431412030200251730ustar00rootroot00000000000000export * from './addUniqueId'; export * from './build'; export * from './extractInitialSequence'; export * from './flattenApiList'; export * from './generateUniqueId'; export * from './interfaces'; export * from './decisionTreeReducer'; rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/lib/interfaces.ts000066400000000000000000000046251431412030200262130ustar00rootroot00000000000000import { Omit } from './helpers'; export type DocType = | 'all' | 'class' | 'const' | 'enum' | 'function' | 'interface' | 'type-alias'; export type ApiUnion = | 'audit' | 'auditTime' | 'bindCallback' | 'bindNodeCallback' | 'buffer' | 'bufferCount' | 'bufferTime' | 'bufferToggle' | 'bufferWhen' | 'catchError' | 'combineLatest' | 'concat' | 'concat' | 'concatMap' | 'concatMapTo' | 'count' | 'debounce' | 'debounceTime' | 'defer' | 'delay' | 'delayWhen' | 'distinct' | 'distinctUntilChanged' | 'distinctUntilKeyChanged' | 'elementAt' | 'EMPTY' | 'exhaustMap' | 'expand' | 'filter' | 'finalize' | 'first' | 'forkJoin' | 'from' | 'fromEvent' | 'fromEventPattern' | 'generate' | 'groupBy' | 'ignoreElements' | 'interval' | 'last' | 'map' | 'mapTo' | 'materialize' | 'merge' | 'mergeMap' | 'mergeMapTo' | 'mergeScan' | 'multicast' | 'NEVER' | 'Observable' | 'observeOn' | 'of' | 'pairwise' | 'partition' | 'pipe' | 'pluck' | 'publish' | 'publishBehavior' | 'publishLast' | 'publishReplay' | 'race' | 'range' | 'reduce' | 'repeat' | 'repeatWhen' | 'retry' | 'retryWhen' | 'scan' | 'share' | 'single' | 'skip' | 'skipLast' | 'skipUntil' | 'skipWhile' | 'startWith' | 'subscribeOn' | 'switchMap' | 'switchMapTo' | 'take' | 'takeLast' | 'takeUntil' | 'takeWhile' | 'tap' | 'throttle' | 'throttleTime' | 'throwError' | 'timeInterval' | 'timeout' | 'timeoutWith' | 'timer' | 'toArray' | 'window' | 'windowCount' | 'windowTime' | 'windowToggle' | 'windowWhen' | 'withLatestFrom' | 'zip'; export interface ApiListItem { docType: DocType; name: string; path: string; securityRisk: boolean; stability: string; title: ApiUnion; } export interface ApiListNode { items: ApiListItem[]; name: string; title: string; } export interface FlattenedApiNode { docType: DocType; path: string; } export type FlattenedApiList = { [K in ApiUnion]: FlattenedApiNode; }; export interface TreeNodeRaw { label: string; children?: TreeNodeRaw[]; method?: string; } export interface TreeNode { id: string; label?: string; children?: TreeNode[]; depth?: number; docType?: DocType; method?: string; options?: string[]; path?: string; } export interface DecisionTree { [key: string]: Omit; } rxjs-7.5.7/docs_app/tools/decision-tree-generator/src/tree.yml000066400000000000000000000363461431412030200244410ustar00rootroot00000000000000- label: 'I have one existing Observable, and' children: - label: I want to change each emitted value children: - label: to be a constant value children: - label: mapTo - label: to be a value calculated through a formula children: - label: map - label: I want to pick a property off each emitted value children: - label: pluck - label: I want to spy the values being emitted without affecting them children: - label: tap - label: I want to allow some values to pass children: - label: based on custom logic children: - label: filter - label: if they are at the start of the Observable children: - label: and only the first value children: - label: first - label: based on a given amount children: - label: take - label: based on custom logic children: - label: takeWhile - label: if they are exactly the n-th emission children: - label: elementAt - label: if they are at the end of the Observable children: - label: and only the last value children: - label: last - label: based on a given amount children: - label: takeLast - label: until another Observable emits a value children: - label: takeUntil - label: I want to ignore values children: - label: altogether children: - label: ignoreElements - label: from the start of the Observable children: - label: based on a given amount children: - label: skip - label: based on custom logic children: - label: skipWhile - label: from the end of the Observable children: - label: skipLast - label: until another Observable emits a value children: - label: skipUntil - label: that match some previous value children: - label: according to value equality children: - label: emitted just before the current value children: - label: distinctUntilChanged - label: emitted some time in the past children: - label: distinct - label: according to a key or object property children: - label: emitted just before the current value children: - label: distinctUntilKeyChanged - label: that occur too frequently children: - label: by emitting the first value in each time window children: - label: where time windows are determined by another Observable's emissions children: - label: throttle - label: where time windows are determined by a time duration children: - label: throttleTime - label: by emitting the last value in each time window children: - label: where time windows are determined by another Observable's emissions children: - label: audit - label: where time windows are determined by a time duration children: - label: auditTime - label: by emitting the last value as soon as enough silence has occurred children: - label: where the silence duration threshold is determined by another Observable children: - label: debounce - label: where the silence duration threshold is determined by a time duration children: - label: debounceTime - label: I want to compute a formula using all values emitted children: - label: and only output the final computed value children: - label: reduce - label: and output the computed values when the source emits a value children: - label: scan - label: and output the computed values as a nested Observable when the source emits a value children: - label: mergeScan - label: and output the computed values as a nested Observable when the source emits a value while unsubscribing from the previous nested Observable children: - label: switchScan - label: I want to wrap its messages with metadata children: - label: that describes each notification (next, error, or complete) children: - label: materialize - label: that includes the time past since the last emitted value children: - label: timeInterval - label: after a period of inactivity children: - label: I want to throw an error children: - label: timeout - label: I want to switch to another Observable children: - label: timeoutWith - label: I want to ensure there is only one value children: - label: single - label: I want to know how many values it emits children: - label: count - label: I want to prepend one value children: - label: startWith - label: I want to delay the emissions children: - label: based on a given amount of time children: - label: delay - label: based on the emissions of another Observable children: - label: delayWhen - label: I want to group the values children: - label: until the Observable completes children: - label: and convert to an array children: - label: toArray - label: and convert to a Promise children: - label: Observable method: toPromise - label: consecutively in pairs, as arrays children: - label: pairwise - label: 'based on a criterion, and output two Observables: those that match the criterion and those that do not' children: - label: partition - label: in batches of a particular size children: - label: and emit the group as an array children: - label: bufferCount - label: and emit the group as a nested Observable children: - label: windowCount - label: based on time children: - label: and emit the group as an array children: - label: bufferTime - label: and emit the group as a nested Observable children: - label: windowTime - label: until another Observable emits children: - label: and emit the group as an array children: - label: buffer - label: and emit the group as a nested Observable children: - label: window - label: based on the emissions of an Observable created on-demand children: - label: and emit the group as an array children: - label: bufferWhen - label: and emit the group as a nested Observable children: - label: windowWhen - label: based on another Observable for opening a group, and an Observable for closing a group children: - label: and emit the group as an array children: - label: bufferToggle - label: and emit the group as a nested Observable children: - label: windowToggle - label: based on a key calculated from the emitted values children: - label: groupBy - label: I want to start a new Observable for each value children: - label: and emit the values from all nested Observables in parallel children: - label: where the nested Observable is the same for every value children: - label: mergeMapTo - label: where the nested Observable is calculated for each value children: - label: mergeMap - label: and emit the values from each nested Observable in order children: - label: where the nested Observable is the same for every value children: - label: concatMapTo - label: where the nested Observable is calculated for each value children: - label: concatMap - label: and cancel the previous nested Observable when a new value arrives children: - label: where the nested Observable is the same for every value children: - label: switchMapTo - label: where the nested Observable is calculated for each value children: - label: switchMap - label: and ignore incoming values while the current nested Observable has not yet completed children: - label: exhaustMap - label: and recursively start a new Observable for each new value children: - label: expand - label: I want to perform custom operations children: - label: pipe - label: I want to share a subscription between multiple subscribers children: - label: using a conventional Subject children: - label: and start it as soon as the first subscriber arrives children: - label: share - label: and start it manually or imperatively children: - label: publish - label: using a BehaviorSubject children: - label: publishBehavior - label: using a ReplaySubject children: - label: publishReplay - label: using an AsyncSubject children: - label: publishLast - label: using a specific subject implementation children: - label: multicast - label: when an error occurs children: - label: I want to start a new Observable children: - label: catchError - label: I want to re-subscribe children: - label: immediately children: - label: retry - label: when another Observable emits children: - label: retryWhen - label: when it completes children: - label: I want to re-subscribe children: - label: immediately children: - label: repeat - label: when another Observable emits children: - label: repeatWhen - label: I want to start a new Observable children: - label: concat - label: when it completes, errors or unsubscribes, I want to execute a function children: - label: finalize - label: I want to change the scheduler children: - label: that routes calls to subscribe children: - label: subscribeOn - label: that routes values to observers children: - label: observeOn - label: I want to combine this Observable with others, and children: - label: I want to receive values only from the Observable that emits a value first children: - label: race - label: I want to output the values from either of them children: - label: merge - label: I want to output a value computed from values of the source Observables children: - label: using the latest value of each source whenever any source emits children: - label: combineLatest - label: using the latest value of each source only when the primary Observable emits children: - label: withLatestFrom - label: using each source value only once children: - label: zip - label: 'I have some Observables to combine together as one Observable, and' children: - label: I want to receive values only from the Observable that emits a value first children: - label: race - label: I want to be notified when all of them have completed children: - label: forkJoin - label: I want to output the values from either of them children: - label: merge - label: I want to output a value computed from values of the source Observables children: - label: using the latest value of each source whenever any source emits children: - label: combineLatest - label: using each source value only once children: - label: zip - label: I want to subscribe to each in order children: - label: concat - label: 'I have no Observables yet, and' children: - label: I want to create a new Observable children: - label: using custom logic children: - label: Observable method: create - label: using a state machine similar to a for loop children: - label: generate - label: that throws an error children: - label: throwError - label: that just completes, without emitting values children: - label: EMPTY - label: that never emits anything children: - label: NEVER - label: from an existing source of events children: - label: coming from the DOM or Node.js or similar children: - label: fromEvent - label: that uses an API to add and remove event handlers children: - label: fromEventPattern - label: from a Promise or an event source children: - label: from - label: that iterates children: - label: over the values in an array children: - label: from - label: over values in a numeric range children: - label: range - label: over prefined values given as arguments children: - label: of - label: that emits values on a timer children: - label: regularly children: - label: interval - label: with an optional initial delay children: - label: timer - label: which is built on demand when subscribed children: - label: defer - label: I want to convert a callback to an Observable children: - label: supporting a conventional callback API children: - label: bindCallback - label: supporting Node.js callback style API children: - label: bindNodeCallback rxjs-7.5.7/docs_app/tools/decision-tree-generator/tsconfig.json000066400000000000000000000001241431412030200246600ustar00rootroot00000000000000{ "compilerOptions": { "module": "commonjs", "esModuleInterop": true } }rxjs-7.5.7/docs_app/tools/firebase-test-utils/000077500000000000000000000000001431412030200213315ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/firebase-test-utils/FirebaseGlob.spec.ts000066400000000000000000000136731431412030200251700ustar00rootroot00000000000000import { FirebaseGlob } from './FirebaseGlob'; describe('FirebaseGlob', () => { describe('test', () => { it('should match * parts', () => { testGlob('asdf/*.jpg', ['asdf/.jpg', 'asdf/asdf.jpg', 'asdf/asdf_asdf.jpg'], ['asdf/asdf/asdf.jpg', 'xxxasdf/asdf.jpgxxx']); }); it('should match ** parts', () => { testGlob('asdf/**.jpg', // treated like two consecutive single `*`s ['asdf/.jpg', 'asdf/asdf.jpg', 'asdf/asdf_asdf.jpg'], ['asdf/a/.jpg', 'asdf/a/b.jpg', '/asdf/asdf.jpg', 'asdff/asdf.jpg', 'xxxasdf/asdf.jpg', 'asdf/asdf.jpgxxx']); }); it('should match **/ and /**/', () => { testGlob('**/*.js', ['asdf.js', 'asdf/asdf.js', 'asdf/asdf/asdfasdf_asdf.js', '/asdf/asdf.js', '/asdf/aasdf-asdf.2.1.4.js'], ['asdf/asdf.jpg', '/asdf/asdf.jpg']); testGlob('aaa/**/bbb', ['aaa/xxx/bbb', 'aaa/xxx/yyy/bbb', 'aaa/bbb'], ['/aaa/xxx/bbb', 'aaa/x/bbb/', 'aaa/bbb/ccc']); }); it('should match choice groups', () => { testGlob('aaa/*.@(bbb|ccc)', ['aaa/aaa.bbb', 'aaa/aaa_aaa.ccc'], ['/aaa/aaa.bbb', 'aaaf/aaa.bbb', 'aaa/aaa.ddd']); testGlob('aaa/*(bbb|ccc)', ['aaa/', 'aaa/bbb', 'aaa/ccc', 'aaa/bbbbbb', 'aaa/bbbccc', 'aaa/cccbbb', 'aaa/bbbcccbbb'], ['aaa/aaa', 'aaa/bbbb']); testGlob('aaa/+(bbb|ccc)', ['aaa/bbb', 'aaa/ccc', 'aaa/bbbbbb', 'aaa/bbbccc', 'aaa/cccbbb', 'aaa/bbbcccbbb'], ['aaa/', 'aaa/aaa', 'aaa/bbbb']); testGlob('aaa/?(bbb|ccc)', ['aaa/', 'aaa/bbb', 'aaa/ccc'], ['aaa/aaa', 'aaa/bbbb', 'aaa/bbbbbb', 'aaa/bbbccc', 'aaa/cccbbb', 'aaa/bbbcccbbb']); }); it('should error on non-supported choice groups', () => { expect(() => new FirebaseGlob('/!(a|b)/c')) .toThrowError('Error in FirebaseGlob: "/!(a|b)/c" - "not" expansions are not supported: "!(a|b)"'); expect(() => new FirebaseGlob('/(a|b)/c')) .toThrowError('Error in FirebaseGlob: "/(a|b)/c" - unknown expansion type: "/" in "/(a|b)"'); expect(() => new FirebaseGlob('/&(a|b)/c')) .toThrowError('Error in FirebaseGlob: "/&(a|b)/c" - unknown expansion type: "&" in "&(a|b)"'); }); // Globs that contain params tested via the match tests below }); describe('match', () => { it('should match patterns with no parameters', () => { testMatch('/abc/def/*', { }, { '/abc/def/': {}, '/abc/def/ghi': {}, '/': undefined, '/abc': undefined, '/abc/def/ghi/jk;': undefined, }); }); it('should capture a simple named param', () => { testMatch('/:abc', { named: ['abc'] }, { '/a': {abc: 'a'}, '/abc': {abc: 'abc'}, '/': undefined, '/a/': undefined, '/a/b/': undefined, '/a/a/b': undefined, '/a/a/b/': undefined, }); testMatch('/a/:b', { named: ['b'] }, { '/a/b': {b: 'b'}, '/a/bcd': {b: 'bcd'}, '/a/': undefined, '/a/b/': undefined, '/a': undefined, '/a//': undefined, '/a/a/b': undefined, '/a/a/b/': undefined, }); }); it('should capture a named param followed by non-word chars', () => { testMatch('/a/:x-', { named: ['x'] }, { '/a/b-': {x: 'b'}, '/a/bcd-': {x: 'bcd'}, '/a/--': {x: '-'}, '/a': undefined, '/a/-': undefined, '/a/-/': undefined, '/a/': undefined, '/a/b/-': undefined, '/a/b-c': undefined, }); }); it('should capture multiple named params', () => { testMatch('/a/:b/:c', { named: ['b', 'c'] }, { '/a/b/c': {b: 'b', c: 'c'}, '/a/bcd/efg': {b: 'bcd', c: 'efg'}, '/a/b/c-': {b: 'b', c: 'c-'}, '/a/': undefined, '/a/b/': undefined, '/a/b/c/': undefined, }); testMatch('/:a/b/:c', { named: ['a', 'c'] }, { '/a/b/c': {a: 'a', c: 'c'}, '/abc/b/efg': {a: 'abc', c: 'efg'}, '/a/b/c-': {a: 'a', c: 'c-'}, '/a/': undefined, '/a/b/': undefined, '/a/b/c/': undefined, }); }); it('should capture a simple rest param', () => { testMatch('/:abc*', { rest: ['abc'] }, { '/a': {abc: 'a'}, '/a/b': {abc: 'a/b'}, '/a/bcd': {abc: 'a/bcd'}, '/a/': {abc: 'a/'}, '/a/b/': {abc: 'a/b/'}, '/a//': {abc: 'a//'}, '/a/b/c': {abc: 'a/b/c'}, '/a/b/c/': {abc: 'a/b/c/'}, }); testMatch('/a/:b*', { rest: ['b'] }, { '/a/b': {b: 'b'}, '/a/bcd': {b: 'bcd'}, '/a/': {b: ''}, '/a/b/': {b: 'b/'}, '/a': {b: undefined}, '/a//': {b: '/'}, '/a/a/b': {b: 'a/b'}, '/a/a/b/': {b: 'a/b/'}, }); }); it('should capture a rest param mixed with a named param', () => { testMatch('/:abc/:rest*', { named: ['abc'], rest: ['rest'] }, { '/a': {abc: 'a', rest: undefined}, '/a/b': {abc: 'a', rest: 'b'}, '/a/bcd': {abc: 'a', rest: 'bcd'}, '/a/': {abc: 'a', rest: ''}, '/a/b/': {abc: 'a', rest: 'b/'}, '/a//': {abc: 'a', rest: '/'}, '/a/b/c': {abc: 'a', rest: 'b/c'}, '/a/b/c/': {abc: 'a', rest: 'b/c/'}, }); }); }); }); function testGlob(pattern: string, matches: string[], nonMatches: string[]) { const glob = new FirebaseGlob(pattern); matches.forEach(url => expect(glob.test(url)).toBe(true, url)); nonMatches.forEach(url => expect(glob.test(url)).toBe(false, url)); } function testMatch(pattern: string, captures: { named?: string[], rest?: string[] }, matches: { [url: string]: object|undefined }) { const glob = new FirebaseGlob(pattern); expect(Object.keys(glob.namedParams)).toEqual(captures.named || []); expect(Object.keys(glob.restParams)).toEqual(captures.rest || []); Object.keys(matches).forEach(url => expect(glob.match(url)).toEqual(matches[url])); } rxjs-7.5.7/docs_app/tools/firebase-test-utils/FirebaseGlob.ts000066400000000000000000000053051431412030200242300ustar00rootroot00000000000000import * as XRegExp from 'xregexp'; const dot = /\./g; const star = /\*/g; const doubleStar = /(^|\/)\*\*($|\/)/g; // e.g. a/**/b or **/b or a/** but not a**b const modifiedPatterns = /(.)\(([^)]+)\)/g; // e.g. `@(a|b) const restParam = /\/:([A-Za-z]+)\*/g; // e.g. `:rest*` const namedParam = /\/:([A-Za-z]+)/g; // e.g. `:api` const possiblyEmptyInitialSegments = /^\.ðŸ·\//g; // e.g. `**/a` can also match `a` const possiblyEmptySegments = /\/\.ðŸ·\//g; // e.g. `a/**/b` can also match `a/b` const willBeStar = /ðŸ·/g; // e.g. `a**b` not matched by previous rule export class FirebaseGlob { pattern: string; regex: XRegExp; namedParams: { [key: string]: boolean } = {}; restParams: { [key: string]: boolean } = {}; constructor(glob: string) { try { const pattern = glob .replace(dot, '\\.') .replace(modifiedPatterns, replaceModifiedPattern) .replace(restParam, (_, param) => { // capture the rest of the string this.restParams[param] = true; return `(?:/(?<${param}>.ðŸ·))?`; }) .replace(namedParam, (_, param) => { // capture the named parameter this.namedParams[param] = true; return `/(?<${param}>[^/]+)`; }) .replace(doubleStar, '$1.ðŸ·$2') // use the pig to avoid replacing ** in next rule .replace(star, '[^/]*') // match a single segment .replace(possiblyEmptyInitialSegments, '(?:.*)')// deal with **/ special cases .replace(possiblyEmptySegments, '(?:/|/.*/)') // deal with /**/ special cases .replace(willBeStar, '*'); // other ** matches this.pattern = `^${pattern}$`; this.regex = XRegExp(this.pattern); } catch (e) { throw new Error(`Error in FirebaseGlob: "${glob}" - ${e.message}`); } } test(url: string) { return XRegExp.test(url, this.regex); } match(url: string) { const match = XRegExp.exec(url, this.regex); if (match) { const result = {}; const names = (this.regex as any).xregexp.captureNames || []; names.forEach(name => result[name] = match[name]); return result; } } } function replaceModifiedPattern(_, modifier, pattern) { switch (modifier) { case '!': throw new Error(`"not" expansions are not supported: "${_}"`); case '?': case '+': return `(${pattern})${modifier}`; case '*': return `(${pattern})ðŸ·`; // it will become a star case '@': return `(${pattern})`; default: throw new Error(`unknown expansion type: "${modifier}" in "${_}"`); } } rxjs-7.5.7/docs_app/tools/firebase-test-utils/FirebaseRedirect.spec.ts000066400000000000000000000023401431412030200260330ustar00rootroot00000000000000import { FirebaseRedirect } from './FirebaseRedirect'; describe('FirebaseRedirect', () => { describe('replace', () => { it('should return undefined if the redirect does not match the url', () => { const redirect = new FirebaseRedirect('/a/b/c', '/x/y/z'); expect(redirect.replace('/1/2/3')).toBe(undefined); }); it('should return the destination if there is a match', () => { const redirect = new FirebaseRedirect('/a/b/c', '/x/y/z'); expect(redirect.replace('/a/b/c')).toBe('/x/y/z'); }); it('should inject name params into the destination', () => { const redirect = new FirebaseRedirect('/api/:package/:api-*', '<:package><:api>'); expect(redirect.replace('/api/common/NgClass-directive')).toEqual(''); }); it('should inject rest params into the destination', () => { const redirect = new FirebaseRedirect('/a/:rest*', '/x/:rest*/y'); expect(redirect.replace('/a/b/c')).toEqual('/x/b/c/y'); }); it('should inject both named and rest parameters into the destination', () => { const redirect = new FirebaseRedirect('/:a/:rest*', '/x/:a/y/:rest*/z'); expect(redirect.replace('/a/b/c')).toEqual('/x/a/y/b/c/z'); }); }); }); rxjs-7.5.7/docs_app/tools/firebase-test-utils/FirebaseRedirect.ts000066400000000000000000000012131431412030200251000ustar00rootroot00000000000000import * as XRegExp from 'xregexp'; import { FirebaseGlob } from './FirebaseGlob'; export class FirebaseRedirect { glob = new FirebaseGlob(this.source); constructor(public source: string, public destination: string) {} replace(url: string) { const match = this.glob.match(url); if (match) { const paramReplacers = Object.keys(this.glob.namedParams).map(name => [ XRegExp(`:${name}`, 'g'), match[name] ]); const restReplacers = Object.keys(this.glob.restParams).map(name => [ XRegExp(`:${name}\\*`, 'g'), match[name] ]); return XRegExp.replaceEach(this.destination, [...paramReplacers, ...restReplacers]); } } } rxjs-7.5.7/docs_app/tools/firebase-test-utils/FirebaseRedirector.spec.ts000066400000000000000000000030401431412030200263720ustar00rootroot00000000000000import { FirebaseRedirector } from './FirebaseRedirector'; describe('FirebaseRedirector', () => { it('should replace with the first matching redirect', () => { const redirector = new FirebaseRedirector([ { source: '/a/b/c', destination: '/X/Y/Z' }, { source: '/a/:foo/c', destination: '/X/:foo/Z' }, { source: '/**/:foo/c', destination: '/A/:foo/zzz' }, ]); expect(redirector.redirect('/a/b/c')).toEqual('/X/Y/Z'); expect(redirector.redirect('/a/moo/c')).toEqual('/X/moo/Z'); expect(redirector.redirect('/x/y/a/b/c')).toEqual('/A/b/zzz'); expect(redirector.redirect('/x/y/c')).toEqual('/A/y/zzz'); }); it('should return the original url if no redirect matches', () => { const redirector = new FirebaseRedirector([ { source: 'x', destination: 'X' }, { source: 'y', destination: 'Y' }, { source: 'z', destination: 'Z' }, ]); expect(redirector.redirect('a')).toEqual('a'); }); it('should recursively redirect', () => { const redirector = new FirebaseRedirector([ { source: 'a', destination: 'b' }, { source: 'b', destination: 'c' }, { source: 'c', destination: 'd' }, ]); expect(redirector.redirect('a')).toEqual('d'); }); it('should throw if stuck in an infinite loop', () => { const redirector = new FirebaseRedirector([ { source: 'a', destination: 'b' }, { source: 'b', destination: 'c' }, { source: 'c', destination: 'a' }, ]); expect(() => redirector.redirect('a')).toThrowError('infinite redirect loop'); }); }); rxjs-7.5.7/docs_app/tools/firebase-test-utils/FirebaseRedirector.ts000066400000000000000000000015761431412030200254550ustar00rootroot00000000000000import { FirebaseRedirect } from './FirebaseRedirect'; export interface FirebaseRedirectConfig { source: string; destination: string; } export class FirebaseRedirector { private redirects: FirebaseRedirect[]; constructor(redirects: FirebaseRedirectConfig[]) { this.redirects = redirects.map(redirect => new FirebaseRedirect(redirect.source, redirect.destination)); } redirect(url: string) { let ttl = 50; while (ttl > 0) { const newUrl = this.doRedirect(url); if (newUrl === url) { return url; } else { url = newUrl; ttl--; } } throw new Error('infinite redirect loop'); } private doRedirect(url: string) { for (let i = 0; i < this.redirects.length; i++) { const newUrl = this.redirects[i].replace(url); if (newUrl !== undefined) { return newUrl; } } return url; } } rxjs-7.5.7/docs_app/tools/marbles/000077500000000000000000000000001431412030200170635ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/marbles/diagrams/000077500000000000000000000000001431412030200206525ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/marbles/diagrams/audit.txt000066400000000000000000000001521431412030200225170ustar00rootroot00000000000000-a-xy-----b--x--cxyz-| ----i ----i ----i > audit() -----y--------x-----z| rxjs-7.5.7/docs_app/tools/marbles/diagrams/bufferWhen.txt000066400000000000000000000003401431412030200235030ustar00rootroot00000000000000[styles] event_radius = 33 operator_height = 60 completion_height = 80 ---a---b---c---d---e---f---g---h---| -------------s > bufferWhen() -------------x------------y--------(z|) x := [a, b, c] y := [d, e, f] z := [g, h] rxjs-7.5.7/docs_app/tools/marbles/diagrams/concatAll.txt000066400000000000000000000001761431412030200233170ustar00rootroot00000000000000x = ----a------b------| y = ---c-d---| z = ---e--f-| -x---y----z------| > concatAll -----a------b---------c-d------e--f-|rxjs-7.5.7/docs_app/tools/marbles/diagrams/debounce.txt000066400000000000000000000001441431412030200231760ustar00rootroot00000000000000-a----bc----d-ef----| ---x ---x ---x > debounce() ----a-----c-------f-| rxjs-7.5.7/docs_app/tools/marbles/diagrams/delay.txt000066400000000000000000000001101431412030200225010ustar00rootroot00000000000000[styles] event_radius = 15 ---a--b--c---| > delay(20) -----a--b--c-| rxjs-7.5.7/docs_app/tools/marbles/diagrams/throttle.txt000066400000000000000000000001551431412030200232610ustar00rootroot00000000000000-a-xy-----b--x--cxyz-| ----i ----i ----i > throttle() -a--------b-----c----| rxjs-7.5.7/docs_app/tools/marbles/scripts/000077500000000000000000000000001431412030200205525ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/marbles/scripts/index.ts000066400000000000000000000032571431412030200222400ustar00rootroot00000000000000import { renderMarbleDiagram } from '@swirly/renderer-node'; import { readdir, readFileSync, writeFileSync } from 'fs'; import { join } from 'path'; import { parseMarbleDiagramSpecification } from '@swirly/parser'; import { DiagramStyles } from '@swirly/types'; import * as SVGO from 'svgo'; const styles: DiagramStyles = { frame_width: 20, completion_height: 20, higher_order_angle: 30, arrow_fill_color: 'black', background_color: 'rgba(255, 255, 255, 0.0)', operator_fill_color: 'rgba(255, 255, 255, 0.0)' }; const optimizeXml = async (unoptXml: string): Promise => { const svgo = new SVGO({ plugins: [{ removeViewBox: false }] }); const { data } = await svgo.optimize(unoptXml); return data; }; const renderMarble = (path: string, fileName: string): Promise => { const file = readFileSync(join(path, fileName)); const diagramSpec = parseMarbleDiagramSpecification(file.toString()); const { xml: unoptXml } = renderMarbleDiagram(diagramSpec, { styles }); const optimizedSVGPromise = optimizeXml(unoptXml); return optimizedSVGPromise.then((svgXML) => { const svgFileName = fileName.split('.')[0] + '.svg'; const svgPath = join(process.cwd(), 'src', 'assets', 'images', 'marble-diagrams', svgFileName); writeFileSync(svgPath, svgXML, { encoding: 'utf-8', flag: 'w' }); return true; }); }; const diagramsPath = join(process.cwd(), 'tools', 'marbles', 'diagrams'); readdir(diagramsPath, (err, files) => { Promise.all(files.map(fileName => renderMarble(diagramsPath, fileName))) .then(_ => console.log('All SVGs created')) .catch(e => console.error('generating SVGs failed', e)); });rxjs-7.5.7/docs_app/tools/marbles/tsconfig.marbles.json000066400000000000000000000001501431412030200232120ustar00rootroot00000000000000{ "extends": "../../tsconfig.json", "compilerOptions": { "module": "commonjs" } } rxjs-7.5.7/docs_app/tools/stackblitz/000077500000000000000000000000001431412030200176105ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/stackblitz/rxjs.version.js000066400000000000000000000004431431412030200226210ustar00rootroot00000000000000// Exposes the current RxJS version number from the library's package.json // for usage in TypeScript files. // (Since said package.json is outside of this TypeScript project, it's not // available for a direct TypeScript import). module.exports = require('../../../package.json').version; rxjs-7.5.7/docs_app/tools/transforms/000077500000000000000000000000001431412030200176345ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/.eslintignore000066400000000000000000000000211431412030200223300ustar00rootroot00000000000000**/*.template.js rxjs-7.5.7/docs_app/tools/transforms/.eslintrc.js000066400000000000000000000006211431412030200220720ustar00rootroot00000000000000module.exports = { 'env': { 'es6': true, 'jasmine': true, 'node': true }, 'extends': [ 'eslint:recommended', 'plugin:jasmine/recommended' ], 'plugins': [ 'jasmine' ], 'rules': { 'indent': ['error', 2], 'linebreak-style': ['error', 'unix'], 'quotes': ['error', 'single'], 'semi': ['error', 'always'], 'jasmine/new-line-before-expect': 0 } }; rxjs-7.5.7/docs_app/tools/transforms/README.md000066400000000000000000000042331431412030200211150ustar00rootroot00000000000000# Overview All the content that is rendered by the AIO application, and some of its configuration files, are generated from source files by [Dgeni](https://github.com/angular/dgeni). Dgeni is a general purpose documentation generation tool. Markdown files in `/aio/content`, code comments in the core Angular source files and example files are processed and transformed into files that are consumed by the AIO application. Dgeni is configured by "packages", which contain services and processors. Some of these packages are installed as `node_modules` from the [dgeni-packages](https://github.com/angular/dgeni-packages) and some are specific to the AIO project. The project specific packages are stored in this folder (`aio/tools/transforms`). If you are an author and want to know how to generate the documentation, the steps are outlined in the top level [README.md](../../README.md#guide-to-authoring). ## Root packages To run Dgeni, you must specify a root package, which acts as the entry point to the documentation generation. This root package, in turn requires a number of other packages, some are defined locally in the `tools/transforms` folder, such as `tools/transforms/cheatsheet-package` and `tools/transforms/content-package`, etc. And some are brought in from the `dgeni-packages` node modules, such as `jsdoc` and `nunjucks`. * The primary root package is defined in `tools/transforms/angular.io-package/index.js`. This package is used to run a full generation of all the documentation. * There are also root packages defined in `tools/transforms/authors-package/*-package.js`. These packages are used by the documentation authors when writing docs, since it allows them to run partial doc generation, which is not complete but is faster for quickly seeing changes to the document that you are working on. ## Other packages * angular-base-package * angular-api-package * angular-content-package * content-package * examples-package * links-package * post-process-package * remark-package * target-package ## Templates All the templates for the angular.io dgeni transformations are stored in the `tools/transforms/templates` folder. See the [README](./templates/README.md). rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/000077500000000000000000000000001431412030200234255ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/index.js000066400000000000000000000200451431412030200250730ustar00rootroot00000000000000/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ const Package = require('dgeni').Package; const basePackage = require('../angular-base-package'); const typeScriptPackage = require('dgeni-packages/typescript'); const { API_SOURCE_PATH, API_TEMPLATES_PATH, MARBLE_IMAGES_PATH, MARBLE_IMAGES_WEB_PATH, requireFolder } = require('../config'); module.exports = new Package('angular-api', [basePackage, typeScriptPackage]) // Register the processors .processor(require('./processors/migrateLegacyJSDocTags')) .processor(require('./processors/splitDescription')) .processor(require('./processors/convertPrivateClassesToInterfaces')) .processor(require('./processors/generateApiListDoc')) .processor(require('./processors/generateDeprecationsListDoc')) .processor(require('./processors/addNotYetDocumentedProperty')) .processor(require('./processors/mergeDecoratorDocs')) .processor(require('./processors/extractDecoratedClasses')) .processor(require('./processors/matchUpDirectiveDecorators')) .processor(require('./processors/addMetadataAliases')) .processor(require('./processors/computeApiBreadCrumbs')) .processor(require('./processors/filterContainedDocs')) .processor(require('./processors/processClassLikeMembers')) .processor(require('./processors/markBarredODocsAsPrivate')) .processor(require('./processors/filterPrivateDocs')) .processor(require('./processors/computeSearchTitle')) .processor(require('./processors/simplifyMemberAnchors')) .processor(require('./processors/computeStability')) .processor(require('./processors/markAliases').markAliases) .factory(require('./post-processors/embedMarbleDiagrams')) /** * These are the API doc types that will be rendered to actual files. * This is a super set of the exported docs, since we convert some classes to * more Angular specific API types, such as decorators and directives. */ .factory(function API_DOC_TYPES_TO_RENDER(EXPORT_DOC_TYPES) { return EXPORT_DOC_TYPES.concat(['decorator', 'directive', 'pipe', 'module', 'deprecation']); }) /** * These are the doc types that are API docs, including ones that will be merged into container docs, * such as members and overloads. */ .factory(function API_DOC_TYPES(API_DOC_TYPES_TO_RENDER) { return API_DOC_TYPES_TO_RENDER.concat(['member', 'function-overload']); }) // Where do we get the source files? .config(function(readTypeScriptModules, readFilesProcessor, collectExamples, tsParser) { // Tell TypeScript how to load modules that start with `@angular` tsParser.options.paths = { '@angular/*': [API_SOURCE_PATH + '/*'] }; tsParser.options.baseUrl = '.'; // API files are typescript readTypeScriptModules.basePath = API_SOURCE_PATH; readTypeScriptModules.ignoreExportsMatching = [/^[_ɵ]|^VERSION$/]; readTypeScriptModules.hidePrivateMembers = true; // NOTE: This list should be in sync with tools/public_api_guard/BUILD.bazel readTypeScriptModules.sourceFiles = [ 'index.ts', 'operators/index.ts', 'ajax/index.ts', 'fetch/index.ts', 'webSocket/index.ts', 'testing/index.ts' ]; // API Examples readFilesProcessor.sourceFiles = [ { basePath: API_SOURCE_PATH, include: API_SOURCE_PATH + '/examples/**/*', fileReader: 'exampleFileReader' } ]; collectExamples.exampleFolders.push('examples'); }) // Configure jsdoc-style tag parsing .config(function(parseTagsProcessor, getInjectables) { // Load up all the tag definitions in the tag-defs folder parseTagsProcessor.tagDefinitions = parseTagsProcessor.tagDefinitions.concat(getInjectables(requireFolder(__dirname, './tag-defs'))); }) // Additional jsdoc config (for RxJS source) .config(function(parseTagsProcessor) { parseTagsProcessor.tagDefinitions.push({ name: 'example', aliases: ['examples'], multi: true, docProperty: 'examples' }); parseTagsProcessor.tagDefinitions.push({ name: 'owner' }); parseTagsProcessor.tagDefinitions.push({ name: 'static' }); parseTagsProcessor.tagDefinitions.push({ name: 'nocollapse' }); // Replace the Catharsis type parsing, as it doesn't understand TypeScript type annotations (i.e. `foo(x: SomeType)`), with a simpler dummy transform const typeTags = parseTagsProcessor.tagDefinitions.filter(tagDef => ['param', 'returns', 'type', 'private', 'property', 'protected', 'public'].indexOf(tagDef.name) !== -1); typeTags.forEach(typeTag => typeTag.transforms[0] = function dummyTypeTransform(doc, tag, value) { var TYPE_EXPRESSION_START = /^\s*\{[^@]/; var start, position, count, length; var match = TYPE_EXPRESSION_START.exec(value); if (match) { length = value.length; // the start is the beginning of the `{` start = match[0].length - 2; // advance to the first character in the type expression position = match[0].length - 1; count = 1; while (position < length) { switch (value[position]) { case '\\': // backslash is an escape character, so skip the next character position++; break; case '{': count++; break; case '}': count--; break; default: // do nothing } if (count === 0) { break; } position++; } tag.typeExpression = value.slice(start + 1, position).trim().replace('\\}', '}').replace('\\{', '{'); tag.description = (value.substring(0, start) + value.substring(position + 1)).trim(); return tag.description; } else { return value; } }); }) .config(function(computeStability, splitDescription, EXPORT_DOC_TYPES, API_DOC_TYPES) { computeStability.docTypes = EXPORT_DOC_TYPES; // Only split the description on the API docs splitDescription.docTypes = API_DOC_TYPES; }) .config(function(computePathsProcessor, EXPORT_DOC_TYPES, generateApiListDoc, generateDeprecationListDoc) { const API_SEGMENT = 'api'; generateApiListDoc.outputFolder = API_SEGMENT; generateDeprecationListDoc.outputFolder = API_SEGMENT; computePathsProcessor.pathTemplates.push({ docTypes: ['module'], getPath: function computeModulePath(doc) { doc.moduleFolder = `${API_SEGMENT}/${doc.id.replace(/\/index$/, '')}`; return doc.moduleFolder; }, outputPathTemplate: '${moduleFolder}.json' }); computePathsProcessor.pathTemplates.push({ docTypes: EXPORT_DOC_TYPES.concat(['decorator', 'directive', 'pipe']), pathTemplate: '${moduleDoc.moduleFolder}/${name}', outputPathTemplate: '${moduleDoc.moduleFolder}/${name}.json', }); computePathsProcessor.pathTemplates.push({ docTypes: ['const', 'function', 'interface', 'class', 'type-alias'], getPath: (doc) => { return `${API_SEGMENT}/${doc.id.replace(/^index\//, `index/${doc.docType}/`)}`; }, outputPathTemplate: '${path}.json', }); }) .config(function(templateFinder) { // Where to find the templates for the API doc rendering templateFinder.templateFolders.unshift(API_TEMPLATES_PATH); }) .config(function(embedMarbleDiagramsPostProcessor) { embedMarbleDiagramsPostProcessor.marbleImagesPath = MARBLE_IMAGES_PATH; embedMarbleDiagramsPostProcessor.marbleImagesOutputWebPath = `/${MARBLE_IMAGES_WEB_PATH}`; }) .config(function(convertToJsonProcessor, postProcessHtml, API_DOC_TYPES_TO_RENDER, API_DOC_TYPES, autoLinkCode, embedMarbleDiagramsPostProcessor) { convertToJsonProcessor.docTypes = convertToJsonProcessor.docTypes.concat(API_DOC_TYPES_TO_RENDER); postProcessHtml.docTypes = convertToJsonProcessor.docTypes.concat(API_DOC_TYPES_TO_RENDER); postProcessHtml.plugins.push(embedMarbleDiagramsPostProcessor.process); autoLinkCode.docTypes = API_DOC_TYPES; autoLinkCode.codeElements = ['code', 'code-example', 'code-pane']; }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/mocks/000077500000000000000000000000001431412030200245415ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/mocks/aliasedExports.ts000066400000000000000000000003161431412030200301000ustar00rootroot00000000000000export * from './operator'; export { operator as aliasedOperator } from './operator'; export { operator } from './operator'; export { anotherOperator as operatorWithoutDuplicate } from './anotherOperator'; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/mocks/anotherOperator.ts000066400000000000000000000000511431412030200302610ustar00rootroot00000000000000export const anotherOperator = () => {}; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/mocks/importedSrc.ts000066400000000000000000000003421431412030200274030ustar00rootroot00000000000000/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ export const x = 100; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/mocks/operator.ts000066400000000000000000000000421431412030200267400ustar00rootroot00000000000000export const operator = () => {}; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/mocks/testSrc.ts000066400000000000000000000013271431412030200265430ustar00rootroot00000000000000/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * @module * @description * This is the module description */ export * from './importedSrc'; /** * This is some random other comment */ /** * This is MyClass */ export class MyClass { message: String; /** * Create a new MyClass * @param {String} name The name to say hello to */ constructor(name) { this.message = 'hello ' + name; } /** * Return a greeting message */ greet() { return this.message; } } /** * An exported function */ export const myFn = (val: number) => val * 2; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/post-processors/000077500000000000000000000000001431412030200266125ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/post-processors/embedMarbleDiagrams.js000066400000000000000000000021561431412030200330230ustar00rootroot00000000000000const fs = require('fs'); const path = require('path'); const visit = require('unist-util-visit'); const is = require('hast-util-is-element'); /** * Find pre-rendered marble diagrams and override their `src` attributes in docs. */ module.exports = function embedMarbleDiagramsPostProcessor() { const service = { marbleImagesPath: null, marbleImagesOutputWebPath: null, process: () => { return (tree) => { visit(tree, node => { if (is(node, 'img')) { const props = node.properties; const src = props.src; const expectedImgPath = `${service.marbleImagesPath}/${src}`; if (fs.existsSync(expectedImgPath)) { const operator = path.basename(src, path.extname(src)); const filename = path.basename(expectedImgPath); props.src = `${service.marbleImagesOutputWebPath}/${filename}`; props.width = '100%'; if (!props.alt) { props.alt = `${operator} marble diagram`; } } } }); }; }, }; return service; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/000077500000000000000000000000001431412030200256275ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/addMetadataAliases.js000066400000000000000000000030061431412030200316570ustar00rootroot00000000000000const CssSelectorParser = require('css-selector-parser').CssSelectorParser; const cssParser = new CssSelectorParser(); /** * @dgProcessor addMetadataAliases * * Directives and components can also be referenced by their selectors, * and Pipes can be referenced by their name. * So let's add each selector as an alias to this doc. */ module.exports = function addMetadataAliasesProcessor() { return { $runAfter: ['extractDecoratedClassesProcessor'], $runBefore: ['computing-ids'], $process: function(docs) { docs.forEach(doc => { switch(doc.docType) { case 'directive': case 'component': doc.aliases = doc.aliases.concat(extractSelectors(doc[doc.docType + 'Options'].selector)); break; case 'pipe': if (doc.pipeOptions.name) { doc.aliases = doc.aliases.concat(stripQuotes(doc.pipeOptions.name)); } break; } }); } }; }; function extractSelectors(selectors) { const selectorAST = cssParser.parse(stripQuotes(selectors)); const rules = selectorAST.selectors ? selectorAST.selectors.map(ruleSet => ruleSet.rule) : [selectorAST.rule]; const aliases = {}; rules.forEach(rule => { if (rule.tagName) { aliases[rule.tagName] = true; } if (rule.attrs) { rule.attrs.forEach(attr => aliases[attr.name] = true); } }); return Object.keys(aliases); } function stripQuotes(value) { return (typeof(value) === 'string') ? value.trim().replace(/^(['"])(.*)\1$/, '$2') : value; } rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/addMetadataAliases.spec.js000066400000000000000000000057571431412030200326270ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const processorFactory = require('./addMetadataAliases'); const Dgeni = require('dgeni'); describe('addSelectorsAsAliases processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('addMetadataAliasesProcessor'); expect(processor.$process).toBeDefined(); }); it('should run after the correct processor', () => { const processor = processorFactory(); expect(processor.$runAfter).toEqual(['extractDecoratedClassesProcessor']); }); it('should run before the correct processor', () => { const processor = processorFactory(); expect(processor.$runBefore).toEqual(['computing-ids']); }); it('should add new aliases for directives, components and pipes', () => { const processor = processorFactory(); const docs = [ { docType: 'class', name: 'MyClass', aliases: ['MyClass'] }, { docType: 'interface', name: 'MyInterface', aliases: ['MyInterface'] }, { docType: 'enum', name: 'MyEnum', aliases: ['MyEnum'] }, { docType: 'function', name: 'myFunction', aliases: ['myFunction'] }, { docType: 'pipe', name: 'MyPipe', aliases: ['MyPipe'], pipeOptions: { name: '\'myPipe\'' } }, { docType: 'directive', name: 'MyDirective', aliases: ['MyDirective'], directiveOptions: { selector: '\'my-directive,[myDirective],[my-directive]\'' } }, { docType: 'directive', name: 'NgModel', aliases: ['NgModel'], directiveOptions: { selector: '\'[ngModel]:not([formControlName]):not([formControl])\'' } }, { docType: 'component', name: 'MyComponent', aliases: ['MyComponent'], componentOptions: { selector: '\'my-component\'' } }, { docType: 'decorator', name: 'MyDecorator', aliases: ['MyDecorator'] }, { docType: 'module', name: 'myModule', aliases: ['myModule'], id: 'some/myModule' }, { docType: 'var', name: 'myVar', aliases: ['myVar'] }, { docType: 'let', name: 'myLet', aliases: ['myLet'] }, { docType: 'const', name: 'myConst', aliases: ['myConst'] }, { docType: 'type-alias', name: 'myType', aliases: ['myType'] }, ]; processor.$process(docs); expect(docs[0].aliases).toEqual([docs[0].name]); expect(docs[1].aliases).toEqual([docs[1].name]); expect(docs[2].aliases).toEqual([docs[2].name]); expect(docs[3].aliases).toEqual([docs[3].name]); expect(docs[4].aliases).toEqual([docs[4].name, 'myPipe']); expect(docs[5].aliases).toEqual([docs[5].name, 'my-directive', 'myDirective']); expect(docs[6].aliases).toEqual([docs[6].name, 'ngModel']); expect(docs[7].aliases).toEqual([docs[7].name, 'my-component']); expect(docs[8].aliases).toEqual([docs[8].name]); expect(docs[9].aliases).toEqual([docs[9].name]); expect(docs[10].aliases).toEqual([docs[10].name]); expect(docs[11].aliases).toEqual([docs[11].name]); expect(docs[12].aliases).toEqual([docs[12].name]); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/addNotYetDocumentedProperty.js000066400000000000000000000010701431412030200336330ustar00rootroot00000000000000module.exports = function addNotYetDocumentedProperty(log, createDocMessage) { return { docTypes: [], $runAfter: ['tags-extracted'], $runBefore: ['processing-docs', 'splitDescription'], $process(docs) { docs.forEach(doc => { if ( this.docTypes.indexOf(doc.docType) !== -1 && !doc.noDescription && (!doc.description || doc.description.trim().length === 0) ) { doc.notYetDocumented = true; log.debug(createDocMessage('Not yet documented', doc)); } }); } }; }; addNotYetDocumentedProperty.spec.js000066400000000000000000000040161431412030200345100ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processorsconst testPackage = require('../../helpers/test-package'); const Dgeni = require('dgeni'); describe('addNotYetDocumentedProperty', function() { let processor; beforeEach(function() { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); processor = injector.get('addNotYetDocumentedProperty'); processor.docTypes = ['test']; processor.properties = ['description', 'name']; }); it('should run at the right time', () => { expect(processor.$runAfter).toEqual(['tags-extracted']); expect(processor.$runBefore).toEqual(['processing-docs', 'splitDescription']); }); it('should mark docs with no `description` property as "not yet documented"', () => { const docs = [ {id: 'a', docType: 'test', description: 'some content' }, {id: 'b', docType: 'test', description: '' }, {id: 'c', docType: 'test' }, ]; processor.$process(docs); expect(docs[0].notYetDocumented).toBeFalsy(); expect(docs[1].notYetDocumented).toBeTruthy(); expect(docs[2].notYetDocumented).toBeTruthy(); }); it('should ignore docs that do not match the specified doc types', () => { const docs = [ {id: 'a', docType: 'other', description: '' }, {id: 'b', docType: 'other', shortDescription: '' }, {id: 'c', docType: 'other' }, ]; processor.$process(docs); expect(docs[0].notYetDocumented).toBeFalsy(); expect(docs[1].notYetDocumented).toBeFalsy(); expect(docs[2].notYetDocumented).toBeFalsy(); }); it('should not mark documents explicitly tagged as `@noDescription`', function() { const docs = [ {id: 'a', docType: 'other', description: '', noDescription: true }, {id: 'b', docType: 'other', shortDescription: '', noDescription: true }, {id: 'c', docType: 'other', noDescription: true }, ]; processor.$process(docs); expect(docs[0].notYetDocumented).toBeFalsy(); expect(docs[1].notYetDocumented).toBeFalsy(); expect(docs[2].notYetDocumented).toBeFalsy(); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/computeApiBreadCrumbs.js000066400000000000000000000011011431412030200323760ustar00rootroot00000000000000module.exports = function computeApiBreadCrumbs(EXPORT_DOC_TYPES) { return { $runAfter: ['paths-computed'], $runBefore: ['rendering-docs'], $process(docs) { // Compute the breadcrumb for each doc by processing its containers docs.forEach(doc => { if (EXPORT_DOC_TYPES.indexOf(doc.docType) !== -1) { doc.breadCrumbs = [ { text: 'API', path: '/api' }, { text: 'rxjs/' + doc.moduleDoc.id, path: doc.moduleDoc.path }, { text: doc.name, path: doc.path } ]; } }); } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/computeApiBreadCrumbs.spec.js000066400000000000000000000031751431412030200333440ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const processorFactory = require('./computeApiBreadCrumbs'); const Dgeni = require('dgeni'); describe('angular-api-package: computeApiBreadCrumbs processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('computeApiBreadCrumbs'); expect(processor.$process).toBeDefined(); expect(processor.$runAfter).toEqual(['paths-computed']); expect(processor.$runBefore).toEqual(['rendering-docs']); }); it('should attach a breadCrumbs property to each of the EXPORT_DOC_TYPES docs', () => { const EXPORT_DOC_TYPES = ['class', 'interface']; const processor = processorFactory(EXPORT_DOC_TYPES); const docs = [ { docType: 'class', name: 'ClassA', path: 'module-1/class-a', moduleDoc: { id: 'moduleOne', path: 'module-1' } }, { docType: 'interface', name: 'InterfaceB', path: 'module-2/interface-b', moduleDoc: { id: 'moduleTwo', path: 'module-2' } }, { docType: 'guide', name: 'Guide One', path: 'guide/guide-1' }, ]; processor.$process(docs); expect(docs[0].breadCrumbs).toEqual([ { text: 'API', path: '/api' }, { text: 'rxjs/moduleOne', path: 'module-1' }, { text: 'ClassA', path: 'module-1/class-a' }, ]); expect(docs[1].breadCrumbs).toEqual([ { text: 'API', path: '/api' }, { text: 'rxjs/moduleTwo', path: 'module-2' }, { text: 'InterfaceB', path: 'module-2/interface-b' }, ]); expect(docs[2].breadCrumbs).toBeUndefined(); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/computeSearchTitle.js000066400000000000000000000006661431412030200320010ustar00rootroot00000000000000module.exports = function computeSearchTitleProcessor() { return { $runAfter: ['ids-computed'], $runBefore: ['generateKeywordsProcessor'], $process(docs) { docs.forEach(doc => { switch(doc.docType) { case 'function': doc.searchTitle = `${doc.name}()`; break; case 'module': doc.searchTitle = `${doc.id} package`; break; } }); } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/computeSearchTitle.spec.js000066400000000000000000000043121431412030200327220ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const processorFactory = require('./computeSearchTitle'); const Dgeni = require('dgeni'); describe('computeSearchTitle processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('computeSearchTitleProcessor'); expect(processor.$process).toBeDefined(); }); it('should run after the correct processor', () => { const processor = processorFactory(); expect(processor.$runAfter).toEqual(['ids-computed']); }); it('should run before the correct processor', () => { const processor = processorFactory(); expect(processor.$runBefore).toEqual(['generateKeywordsProcessor']); }); it('should compute a search title for API docs', () => { const processor = processorFactory(); const docs = [ { docType: 'class', name: 'MyClass' }, { docType: 'interface', name: 'MyInterface' }, { docType: 'enum', name: 'MyEnum' }, { docType: 'function', name: 'myFunction' }, { docType: 'pipe', name: 'MyPipe', pipeOptions: { name: 'myPipe' } }, { docType: 'directive', name: 'MyDirective', directiveOptions: {} }, { docType: 'decorator', name: 'MyDecorator' }, { docType: 'module', name: 'myModule', id: 'some/myModule' }, { docType: 'var', name: 'myVar' }, { docType: 'let', name: 'myLet' }, { docType: 'const', name: 'myConst' }, { docType: 'type-alias', name: 'myType' }, ]; processor.$process(docs); expect(docs[0].searchTitle).toBeUndefined(); expect(docs[1].searchTitle).toBeUndefined(); expect(docs[2].searchTitle).toBeUndefined(); expect(docs[3].searchTitle).toEqual('myFunction()'); expect(docs[4].searchTitle).toBeUndefined(); expect(docs[5].searchTitle).toBeUndefined(); expect(docs[6].searchTitle).toBeUndefined(); expect(docs[7].searchTitle).toEqual('some/myModule package'); expect(docs[8].searchTitle).toBeUndefined(); expect(docs[9].searchTitle).toBeUndefined(); expect(docs[10].searchTitle).toBeUndefined(); expect(docs[11].searchTitle).toBeUndefined(); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/computeStability.js000066400000000000000000000010311431412030200315210ustar00rootroot00000000000000module.exports = function computeStability(log, createDocMessage) { return { docTypes: [], $runAfter: ['tags-extracted'], $runBefore: ['rendering-docs'], $process(docs) { docs.forEach(doc => { if (this.docTypes.indexOf(doc.docType) !== -1 && doc.experimental === undefined && doc.deprecated === undefined && doc.stable === undefined) { log.debug(createDocMessage('Adding stable property', doc)); doc.stable = true; } }); } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/computeStability.spec.js000066400000000000000000000047351431412030200324700ustar00rootroot00000000000000const log = require('dgeni/lib/mocks/log')(false); const createDocMessage = require('dgeni-packages/base/services/createDocMessage')(); const computeStability = require('./computeStability')(log, createDocMessage); const testPackage = require('../../helpers/test-package'); const Dgeni = require('dgeni'); describe('computeStability processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('computeStability'); expect(processor.$process).toBeDefined(); }); it('should run before the correct processor', () => { expect(computeStability.$runBefore).toEqual(['rendering-docs']); }); it('should run after the correct processor', () => { expect(computeStability.$runAfter).toEqual(['tags-extracted']); }); it('should compute stability based on the existence of experimental and deprecated tags', () => { computeStability.docTypes = ['test']; const docs = [ { docType: 'test' }, { docType: 'test', experimental: undefined }, { docType: 'test', experimental: true }, { docType: 'test', experimental: '' }, { docType: 'test', deprecated: undefined }, { docType: 'test', deprecated: true }, { docType: 'test', deprecated: '' }, { docType: 'test', experimental: true, deprecated: true }, ]; computeStability.$process(docs); expect(docs.map(doc => doc.stable)).toEqual([ true, true, undefined, undefined, true, undefined, undefined, undefined ]); }); it('should ignore docs that are not in the docTypes list', () => { computeStability.docTypes = ['test1', 'test2']; const docs = [ { docType: 'test1' }, { docType: 'test2' }, { docType: 'test3' }, { docType: 'test4' }, ]; computeStability.$process(docs); expect(docs.map(doc => doc.stable)).toEqual([ true, true, undefined, undefined ]); }); it('should not ignore docs where `stable` has already been defined', () => { computeStability.docTypes = ['test']; const docs = [ { docType: 'test' }, { docType: 'test', stable: true }, { docType: 'test', stable: '' }, { docType: 'test', stable: undefined }, ]; computeStability.$process(docs); expect(docs.map(doc => doc.stable)).toEqual([ true, true, '', true ]); }); }); convertPrivateClassesToInterfaces.js000066400000000000000000000004651431412030200347530ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processorsmodule.exports = function convertPrivateClassesToInterfacesProcessor( convertPrivateClassesToInterfaces) { return { $runAfter: ['processing-docs'], $runBefore: ['docs-processed'], $process: function(docs) { convertPrivateClassesToInterfaces(docs, false); return docs; } }; };rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/extractDecoratedClasses.js000066400000000000000000000014461431412030200327750ustar00rootroot00000000000000var _ = require('lodash'); module.exports = function extractDecoratedClassesProcessor(EXPORT_DOC_TYPES) { // Add the "directive" docType into those that can be exported from a module EXPORT_DOC_TYPES.push('directive', 'pipe'); return { $runAfter: ['processing-docs'], $runBefore: ['docs-processed'], decoratorTypes: ['Directive', 'Component', 'Pipe'], $process: function(docs) { var decoratorTypes = this.decoratorTypes; _.forEach(docs, function(doc) { _.forEach(doc.decorators, function(decorator) { if (decoratorTypes.indexOf(decorator.name) !== -1) { doc.docType = decorator.name.toLowerCase(); doc[doc.docType + 'Options'] = decorator.argumentInfo[0]; } }); }); return docs; } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/extractDecoratedClasses.spec.js000066400000000000000000000027011431412030200337210ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('extractDecoratedClasses processor', function() { var dgeni, injector, processor; beforeEach(function() { dgeni = new Dgeni([testPackage('angular-api-package')]); injector = dgeni.configureInjector(); processor = injector.get('extractDecoratedClassesProcessor'); }); it('should extract specified decorator arguments', function() { var doc1 = { id: '@angular/common/ngFor', name: 'ngFor', docType: 'class', decorators: [{ name: 'Directive', arguments: ['{selector: \'[ng-for][ng-for-of]\', properties: [\'ngForOf\']}'], argumentInfo: [{selector: '[ng-for][ng-for-of]', properties: ['ngForOf']}] }] }; var doc2 = { id: '@angular/core/DecimalPipe', name: 'DecimalPipe', docType: 'class', decorators: [{name: 'Pipe', arguments: ['{name: \'number\'}'], argumentInfo: [{name: 'number'}]}] }; processor.$process([doc1, doc2]); expect(doc1).toEqual(jasmine.objectContaining({ id: '@angular/common/ngFor', name: 'ngFor', docType: 'directive', directiveOptions: {selector: '[ng-for][ng-for-of]', properties: ['ngForOf']} })); expect(doc2).toEqual(jasmine.objectContaining({ id: '@angular/core/DecimalPipe', name: 'DecimalPipe', docType: 'pipe', pipeOptions: {name: 'number'} })); }); });rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/extractPipeParams.js000066400000000000000000000013611431412030200316220ustar00rootroot00000000000000module.exports = function extractPipeParams(createDocMessage) { return { $runAfter: ['extractDecoratedClassesProcessor'], $runBefore: ['docs-processed'], $process(docs) { docs.forEach(doc => { if (doc.docType === 'pipe') { const transformFn = doc.members && doc.members.find(member => member.name === 'transform'); if (!transformFn) { throw new Error(createDocMessage('Missing `transform` method - pipes must implement PipeTransform interface', doc)); } doc.pipeName = doc.pipeOptions.name.replace(/^["']|["']$/g, ''); doc.valueParam = transformFn.parameterDocs[0]; doc.pipeParams = transformFn.parameterDocs.slice(1); } }); } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/extractPipeParams.spec.js000066400000000000000000000047451431412030200325640ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const Dgeni = require('dgeni'); describe('extractPipeParams processor', () => { let processor; beforeEach(() => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); processor = injector.get('extractPipeParams'); }); it('should be available on the injector', () => { expect(processor.$process).toBeDefined(); }); it('should run before the correct processor', () => { expect(processor.$runBefore).toEqual(['docs-processed']); }); it('should run after the correct processor', () => { expect(processor.$runAfter).toEqual(['extractDecoratedClassesProcessor']); }); it('should throw an error if the pipe document does not contain a `transform` method', () => { expect(() => processor.$process([{ docType: 'pipe' }])).toThrowError('Missing `transform` method - pipes must implement PipeTransform interface - doc (pipe) '); expect(() => processor.$process([{ docType: 'pipe', members: [] }])).toThrowError('Missing `transform` method - pipes must implement PipeTransform interface - doc (pipe) '); expect(() => processor.$process([{ docType: 'pipe', members: [ { name: 'notTransform' }] }])).toThrowError('Missing `transform` method - pipes must implement PipeTransform interface - doc (pipe) '); }); it('should extract the pipe name', () => { const docs = [ { docType: 'pipe', pipeOptions: { name: 'testPipe' }, members: [ { name: 'transform', parameterDocs: [] }] } ]; processor.$process(docs); expect(docs[0].pipeName).toEqual('testPipe'); }); it('should extract the value parameter', () => { const valueParam = {}; const pipeParam1 = {}; const pipeParam2 = {}; const docs = [ { docType: 'pipe', pipeOptions: { name: 'testPipe' }, members: [ { name: 'transform', parameterDocs: [valueParam, pipeParam1, pipeParam2] } ] } ]; processor.$process(docs); expect(docs[0].valueParam).toBe(valueParam); }); it('should extract the pipe parameters', () => { const valueParam = {}; const pipeParam1 = {}; const pipeParam2 = {}; const docs = [ { docType: 'pipe', pipeOptions: { name: 'testPipe' }, members: [ { name: 'transform', parameterDocs: [valueParam, pipeParam1, pipeParam2] } ] } ]; processor.$process(docs); expect(docs[0].pipeParams.length).toEqual(2); expect(docs[0].pipeParams[0]).toBe(pipeParam1); expect(docs[0].pipeParams[1]).toBe(pipeParam2); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/filterContainedDocs.js000066400000000000000000000010451431412030200321100ustar00rootroot00000000000000/** * Remove docs that are contained in (owned by) another doc * so that they don't get rendered as files in themselves. */ module.exports = function filterContainedDocs() { return { docTypes: ['member', 'function-overload', 'get-accessor-info', 'set-accessor-info', 'parameter'], $runAfter: ['extra-docs-added'], $runBefore: ['computing-paths'], $process: function(docs) { var docTypes = this.docTypes; return docs.filter(function(doc) { return docTypes.indexOf(doc.docType) === -1; }); } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/filterPrivateDocs.js000066400000000000000000000004021431412030200316120ustar00rootroot00000000000000module.exports = function filterPrivateDocs() { return { $runAfter: ['extra-docs-added'], $runBefore: ['computing-paths'], $process: function(docs) { return docs.filter(function(doc) { return doc.privateExport !== true; }); } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/filterPrivateDocs.spec.js000066400000000000000000000024241431412030200325510ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const processorFactory = require('./filterPrivateDocs'); const Dgeni = require('dgeni'); describe('filterPrivateDocs processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('filterPrivateDocs'); expect(processor.$process).toBeDefined(); }); it('should run before the correct processor', () => { const processor = processorFactory(); expect(processor.$runBefore).toEqual(['computing-paths']); }); it('should run after the correct processor', () => { const processor = processorFactory(); expect(processor.$runAfter).toEqual(['extra-docs-added']); }); it('should remove docs that are marked as private exports', () => { const processor = processorFactory(); const docs = [ { name: 'public1'}, { name: 'ɵPrivate1', privateExport: true }, { name: 'public2'}, { name: 'ɵPrivate2', privateExport: true }, { id: 'other'} ]; const filteredDocs = processor.$process(docs); expect(filteredDocs).toEqual([ { name: 'public1'}, { name: 'public2'}, { id: 'other'} ]); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/generateApiListDoc.js000066400000000000000000000032741431412030200317010ustar00rootroot00000000000000module.exports = function generateApiListDoc() { return { $runAfter: ['extra-docs-added'], $runBefore: ['rendering-docs'], outputFolder: null, $validate: {outputFolder: {presence: true}}, $process: function(docs) { docs.push({ docType: 'api-list-data', template: 'json-doc.template.json', path: this.outputFolder + '/api-list.json', outputPath: this.outputFolder + '/api-list.json', data: docs .filter(doc => doc.docType === 'module') .map(getModuleInfo) }); } }; }; function getModuleInfo(moduleDoc) { const moduleName = moduleDoc.id.replace(/\/index$/, ''); return { name: moduleName.toLowerCase(), title: moduleName, items: moduleDoc.exports // Ignore internals and private exports (indicated by the ɵ prefix) .filter(doc => !doc.internal && !doc.privateExport) // Ignore all renamed exports that are just duplicates of other docs .filter(doc => !doc.duplicateOf) .map(getExportInfo) .sort((a, b) => a.name === b.name ? 0 : a.name > b.name ? 1 : -1) }; } function getExportInfo(exportDoc) { return { name: exportDoc.name.toLowerCase(), title: exportDoc.name, path: exportDoc.path, docType: getDocType(exportDoc), stability: getStability(exportDoc), securityRisk: !!exportDoc.security }; } function getDocType(doc) { // We map `let` and `var` types to `const` if (['let', 'var'].indexOf(doc.docType) !== -1) { return 'const'; } return doc.docType; } const stabilityProperties = ['stable', 'experimental', 'deprecated']; function getStability(doc) { return stabilityProperties.find(prop => doc.hasOwnProperty(prop)) || ''; } rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/generateApiListDoc.spec.js000066400000000000000000000211621431412030200326260ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const processorFactory = require('./generateApiListDoc'); const Dgeni = require('dgeni'); describe('generateApiListDoc processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('generateApiListDoc'); expect(processor.$process).toBeDefined(); }); it('should run after the correct processor', () => { const processor = processorFactory(); expect(processor.$runAfter).toEqual(['extra-docs-added']); }); it('should run before the correct processor', () => { const processor = processorFactory(); expect(processor.$runBefore).toEqual(['rendering-docs']); }); it('should create a new api list doc', () => { const processor = processorFactory(); const docs = []; processor.outputFolder = 'test/path'; processor.$process(docs); expect(docs[0]).toEqual({ docType: 'api-list-data', template: 'json-doc.template.json', path: 'test/path/api-list.json', outputPath: 'test/path/api-list.json', data: [] }); }); it('should add an info object to the doc for each module doc', () => { const processor = processorFactory(); const docs = [ { docType: 'module', id: '@angular/common/index', exports: [] }, { docType: 'module', id: '@angular/core/index', exports: [] }, { docType: 'module', id: '@angular/http/index', exports: [] }, ]; processor.$process(docs); expect(docs[3].data).toEqual([ { name: '@angular/common', title: '@angular/common', items: [] }, { name: '@angular/core', title: '@angular/core', items: [] }, { name: '@angular/http', title: '@angular/http', items: [] }, ]); }); it('should add info about each export on each module', () => { const processor = processorFactory(); const docs = [ { docType: 'module', id: '@angular/common/index', exports: [ { docType: 'directive', name: 'AaaAaa', path: 'aaa' }, { docType: 'pipe', name: 'BbbBbb', path: 'bbb' }, { docType: 'decorator', name: 'CccCcc', path: 'ccc' }, { docType: 'class', name: 'DddDdd', path: 'ddd' } ] }, { docType: 'module', id: '@angular/core/index', exports: [ { docType: 'interface', name: 'EeeEee', path: 'eee' }, { docType: 'function', name: 'FffFff', path: 'fff' }, { docType: 'enum', name: 'GggGgg', path: 'ggg' }, { docType: 'type-alias', name: 'HhhHhh', path: 'hhh' }, { docType: 'const', name: 'IiiIii', path: 'iii' }, ] }, ]; processor.$process(docs); expect(docs[2].data[0].items).toEqual([ { docType: 'directive', title: 'AaaAaa', name: 'aaaaaa', path: 'aaa', stability: '', securityRisk: false }, { docType: 'pipe', title: 'BbbBbb', name: 'bbbbbb', path: 'bbb', stability: '', securityRisk: false }, { docType: 'decorator', title: 'CccCcc', name: 'cccccc', path: 'ccc', stability: '', securityRisk: false }, { docType: 'class', title: 'DddDdd', name: 'dddddd', path: 'ddd', stability: '', securityRisk: false } ]); expect(docs[2].data[1].items).toEqual([ { docType: 'interface', title: 'EeeEee', name: 'eeeeee', path: 'eee', stability: '', securityRisk: false }, { docType: 'function', title: 'FffFff', name: 'ffffff', path: 'fff', stability: '', securityRisk: false }, { docType: 'enum', title: 'GggGgg', name: 'gggggg', path: 'ggg', stability: '', securityRisk: false }, { docType: 'type-alias', title: 'HhhHhh', name: 'hhhhhh', path: 'hhh', stability: '', securityRisk: false }, { docType: 'const', title: 'IiiIii', name: 'iiiiii', path: 'iii', stability: '', securityRisk: false }, ]); }); it('should ignore internal and private exports', () => { const processor = processorFactory(); const docs = [ { docType: 'module', id: '@angular/common/index', exports: [ { docType: 'directive', name: 'AaaAaa', path: 'aaa', internal: true }, { docType: 'class', name: 'XxxXxx', path: 'xxx', privateExport: true }, { docType: 'pipe', name: 'BbbBbb', path: 'bbb' } ]} ]; processor.$process(docs); expect(docs[1].data[0].items).toEqual([ { docType: 'pipe', title: 'BbbBbb', name: 'bbbbbb', path: 'bbb', stability: '', securityRisk: false }, ]); }); it('should convert `let` and `var` docTypes to `const`', () => { const processor = processorFactory(); const docs = [ { docType: 'module', id: '@angular/common/index', exports: [ { docType: 'var', name: 'AaaAaa', path: 'aaa' }, { docType: 'let', name: 'BbbBbb', path: 'bbb' }, ]} ]; processor.$process(docs); expect(docs[1].data[0].items).toEqual([ { docType: 'const', title: 'AaaAaa', name: 'aaaaaa', path: 'aaa', stability: '', securityRisk: false }, { docType: 'const', title: 'BbbBbb', name: 'bbbbbb', path: 'bbb', stability: '', securityRisk: false }, ]); }); it('should convert security to a boolean securityRisk', () => { const processor = processorFactory(); const docs = [ { docType: 'module', id: '@angular/common/index', exports: [ { docType: 'class', name: 'AaaAaa', path: 'aaa', security: 'This is a security risk' }, { docType: 'class', name: 'BbbBbb', path: 'bbb', security: '' }, ]} ]; processor.$process(docs); expect(docs[1].data[0].items).toEqual([ { docType: 'class', title: 'AaaAaa', name: 'aaaaaa', path: 'aaa', stability: '', securityRisk: true }, { docType: 'class', title: 'BbbBbb', name: 'bbbbbb', path: 'bbb', stability: '', securityRisk: false }, ]); }); it('should convert stability tags to the stable string property', () => { const processor = processorFactory(); const docs = [ { docType: 'module', id: '@angular/common/index', exports: [ { docType: 'class', name: 'AaaAaa', path: 'aaa', stable: undefined }, { docType: 'class', name: 'BbbBbb', path: 'bbb', experimental: 'Some message' }, { docType: 'class', name: 'CccCcc', path: 'ccc', deprecated: null }, { docType: 'class', name: 'DddDdd', path: 'ddd' }, ]} ]; processor.$process(docs); expect(docs[1].data[0].items).toEqual([ { docType: 'class', title: 'AaaAaa', name: 'aaaaaa', path: 'aaa', stability: 'stable', securityRisk: false }, { docType: 'class', title: 'BbbBbb', name: 'bbbbbb', path: 'bbb', stability: 'experimental', securityRisk: false }, { docType: 'class', title: 'CccCcc', name: 'cccccc', path: 'ccc', stability: 'deprecated', securityRisk: false }, { docType: 'class', title: 'DddDdd', name: 'dddddd', path: 'ddd', stability: '', securityRisk: false }, ]); }); it('should sort items in each group alphabetically', () => { const processor = processorFactory(); const docs = [ { docType: 'module', id: '@angular/common/index', exports: [ { docType: 'class', name: 'DddDdd', path: 'uuu' }, { docType: 'class', name: 'BbbBbb', path: 'vvv' }, { docType: 'class', name: 'AaaAaa', path: 'xxx' }, { docType: 'class', name: 'CccCcc', path: 'yyy' }, ]} ]; processor.$process(docs); expect(docs[1].data[0].items).toEqual([ { docType: 'class', title: 'AaaAaa', name: 'aaaaaa', path: 'xxx', stability: '', securityRisk: false }, { docType: 'class', title: 'BbbBbb', name: 'bbbbbb', path: 'vvv', stability: '', securityRisk: false }, { docType: 'class', title: 'CccCcc', name: 'cccccc', path: 'yyy', stability: '', securityRisk: false }, { docType: 'class', title: 'DddDdd', name: 'dddddd', path: 'uuu', stability: '', securityRisk: false }, ]); }); it('should remove duplicate exports', () => { const origDoc = { docType: 'class', name: 'DddDdd', path: 'uuu' }; const duplicatedDoc = { docType: 'class', name: 'BbbBbb', path: 'vvv', duplicateOf: origDoc }; origDoc.renamedDuplicates = [duplicatedDoc]; const processor = processorFactory(); const docs = [ { docType: 'module', id: '@angular/common/index', exports: [ origDoc, duplicatedDoc, { docType: 'class', name: 'AaaAaa', path: 'xxx' }, { docType: 'class', name: 'CccCcc', path: 'yyy' }, ]} ]; processor.$process(docs); expect(docs[1].data[0].items).toEqual([ { docType: 'class', title: 'AaaAaa', name: 'aaaaaa', path: 'xxx', stability: '', securityRisk: false }, { docType: 'class', title: 'CccCcc', name: 'cccccc', path: 'yyy', stability: '', securityRisk: false }, { docType: 'class', title: 'DddDdd', name: 'dddddd', path: 'uuu', stability: '', securityRisk: false }, ]); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/generateDeprecationsListDoc.js000066400000000000000000000012601431412030200336010ustar00rootroot00000000000000module.exports = function generateDeprecationListDoc() { return { $runAfter: ['extra-docs-added'], $runBefore: ['rendering-docs'], outputFolder: null, $process: function(docs) { docs.push({ docType: 'deprecation', template: 'json-doc.template.json', path: this.outputFolder + '/deprecations', outputPath: this.outputFolder + '/deprecations.json', data: docs .filter(doc => doc.deprecated) .map(doc => { return { name: doc.name, type: doc.docType, path: doc.path, text: doc.deprecated }; }) }); } }; };rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/markAliases.spec.ts000066400000000000000000000061171431412030200313710ustar00rootroot00000000000000import { Dgeni, Document, DocCollection } from 'dgeni'; import { Injector } from 'dgeni/lib/Injector'; import { ReadTypeScriptModules } from 'dgeni-packages/typescript/processors/readTypeScriptModules'; import * as path from 'path'; import 'jasmine'; import * as testPackage from '../../helpers/test-package'; import { markAliases } from './markAliases'; describe('markAliases processor', () => { let dgeni: Dgeni; let injector: Injector; let readTypescript: ReadTypeScriptModules; beforeEach(() => { dgeni = new Dgeni([testPackage('angular-api-package')]); injector = dgeni.configureInjector(); readTypescript = injector.get('readTypeScriptModules'); readTypescript.basePath = path.resolve(__dirname, '../mocks'); readTypescript.sourceFiles = [ 'aliasedExports.ts' ]; }); it('should be available on the injector', () => { const processor = injector.get('markAliases'); expect(processor.$process).toBeDefined(); }); it('should mark aliased exports and remove the aliased doc', () => { const exportedDocs: DocCollection = []; const moduleDoc = { docType: 'module', exports: exportedDocs, }; exportedDocs.push( { docType: 'class', id: 'class-1', moduleDoc: moduleDoc, name: 'aliased-name', aliasSymbol: { escapedName: 'aliased-name', resolvedSymbol: { escapedName: 'original-name' } } }, { docType: 'class', id: 'class-2', moduleDoc: moduleDoc, name: 'original-name', aliasSymbol: { escapedName: 'original-name', resolvedSymbol: { escapedName: 'original-name' } } }, { docType: 'guide', id: 'guide-1', moduleDoc: moduleDoc, name: 'guide', aliasSymbol: { escapedName: 'guide', resolvedSymbol: { escapedName: 'guide' } } }, ); const docs = [ moduleDoc, ...exportedDocs, ]; const processor = markAliases(console); processor.$process(docs); const originalDoc = docs.find((doc: Document) => doc.name === 'original-name'); const duplicateNames = originalDoc.renamedDuplicates.map((doc: Document) => doc.name); expect(duplicateNames).toEqual(['aliased-name']); expect(originalDoc).toBe(originalDoc.renamedDuplicates[0].duplicateOf); }); it('should mark aliased exports and remove the aliased doc from a mock file', () => { const processor = markAliases(console); let docs: DocCollection = []; readTypescript.$process(docs); processor.$process(docs); const originalDoc = docs.find((doc: Document) => doc.name === 'operator'); const duplicateNames = originalDoc.renamedDuplicates.map((doc: Document) => doc.name); expect(duplicateNames).toEqual(['aliasedOperator']); expect(originalDoc).toBe(originalDoc.renamedDuplicates[0].duplicateOf); }); it('should leave non duplicate exports unmarked', () => { const processor = markAliases(console); let docs: DocCollection = []; readTypescript.$process(docs); processor.$process(docs); const nonDuplicateOperator = docs.find((doc: Document) => doc.name === 'operatorWithoutDuplicate'); expect(nonDuplicateOperator.renamedDuplicates).toBeUndefined(); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/markAliases.ts000066400000000000000000000023141431412030200304330ustar00rootroot00000000000000import { DocCollection, Document, Processor } from 'dgeni'; export function markAliases(log: any): MarkAliases { return new MarkAliases(log); } const getOriginalName = (doc: Document): string => doc.aliasSymbol.resolvedSymbol.escapedName; class MarkAliases implements Processor { $runAfter = ['readTypeScriptModules']; $runBefore = ['generateApiListDoc', 'createSitemap']; constructor( private log: any, ) { } $process(docs: DocCollection): void { docs .filter((doc: Document) => doc.moduleDoc) .forEach((doc: Document) => { const duplicateDocs = this.findDuplicateDocs(doc); if (duplicateDocs.length > 0) { duplicateDocs.forEach((duplicateDoc: Document) => duplicateDoc.duplicateOf = doc); doc.renamedDuplicates = duplicateDocs; this.log.debug(`${doc.name} has the following aliases:`, duplicateDocs.map((doc: Document) => doc.name).join(', ')); } }); } private findDuplicateDocs(doc: Document): DocCollection { return doc.moduleDoc.exports .filter((exportedDoc: Document) => exportedDoc !== doc && exportedDoc.aliasSymbol && getOriginalName(exportedDoc) === doc.name ); } } rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/markBarredODocsAsPrivate.js000066400000000000000000000005141431412030200330060ustar00rootroot00000000000000module.exports = function markBarredODocsAsPrivate() { return { $runAfter: ['readTypeScriptModules'], $runBefore: ['adding-extra-docs'], $process: function(docs) { docs.forEach(doc => { if (doc.name && doc.name.indexOf('ɵ') === 0) { doc.privateExport = true; } }); } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/markBarredODocsAsPrivate.spec.js000066400000000000000000000016761431412030200337510ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const processorFactory = require('./markBarredODocsAsPrivate'); const Dgeni = require('dgeni'); describe('markBarredODocsAsPrivate processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('markBarredODocsAsPrivate'); expect(processor.$process).toBeDefined(); expect(processor.$runAfter).toContain('readTypeScriptModules'); expect(processor.$runBefore).toContain('adding-extra-docs'); }); it('should mark docs starting with barred-o ɵ as private', () => { const processor = processorFactory(); const docs = [ { name: 'ɵPrivate' }, { name: 'public' } ]; processor.$process(docs); expect(docs[0].privateExport).toBeTruthy(); expect(docs[1].privateExport).toBeFalsy(); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/matchUpDirectiveDecorators.js000066400000000000000000000056251431412030200334630ustar00rootroot00000000000000/** * @dgProcessor * @description * Directives in Angular are specified by various decorators. In particular the `@Directive()` * decorator on the class and various other property decorators, such as `@Input`. * * This processor will extract this decorator information and attach it as properties to the * directive document. * * Notably, the `input` and `output` binding information can be specified * either via property decorators (`@Input()`/`@Output()`) or by properties on the metadata * passed to the `@Directive` decorator. This processor will collect up info from both and * merge them. */ module.exports = function matchUpDirectiveDecorators() { return { $runAfter: ['ids-computed', 'paths-computed'], $runBefore: ['rendering-docs'], $process: function(docs) { docs.forEach(function(doc) { if (doc.docType === 'directive') { doc.selector = stripQuotes(doc.directiveOptions.selector); doc.exportAs = stripQuotes(doc.directiveOptions.exportAs); doc.inputs = getBindingInfo(doc.directiveOptions.inputs, doc.members, 'Input'); doc.outputs = getBindingInfo(doc.directiveOptions.outputs, doc.members, 'Output'); } }); } }; }; function getBindingInfo(directiveBindings, members, bindingType) { const bindings = {}; // Parse the bindings from the directive decorator if (directiveBindings) { directiveBindings.forEach(function(binding) { const bindingInfo = parseBinding(binding); bindings[bindingInfo.propertyName] = bindingInfo; }); } if (members) { members.forEach(function(member) { if (member.decorators) { // Search for members with binding decorators member.decorators.forEach(function(decorator) { if (decorator.name === bindingType) { bindings[member.name] = createBindingInfo(member.name, decorator.arguments[0] || member.name); } }); } // Now ensure that any bindings have the associated member attached // Note that this binding could have come from the directive decorator if (bindings[member.name]) { bindings[member.name].memberDoc = member; } }); } // Convert the map back to an array return Object.keys(bindings).map(function(key) { return bindings[key]; }); } function stripQuotes(value) { return (typeof(value) === 'string') ? value.trim().replace(/^(['"])(.*)\1$/, '$2') : value; } function parseBinding(option) { // Directive decorator bindings are of the form: "propName : bindingName" (bindingName is optional) const optionPair = option.split(':'); const propertyName = optionPair[0].trim(); const bindingName = (optionPair[1] || '').trim() || propertyName; return createBindingInfo(propertyName, bindingName); } function createBindingInfo(propertyName, bindingName) { return { propertyName: stripQuotes(propertyName), bindingName: stripQuotes(bindingName) }; }matchUpDirectiveDecorators.spec.js000066400000000000000000000122721431412030200343310ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processorsconst testPackage = require('../../helpers/test-package'); const processorFactory = require('./matchUpDirectiveDecorators'); const Dgeni = require('dgeni'); describe('matchUpDirectiveDecorators processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('matchUpDirectiveDecorators'); expect(processor.$process).toBeDefined(); expect(processor.$runAfter).toContain('ids-computed'); expect(processor.$runAfter).toContain('paths-computed'); expect(processor.$runBefore).toContain('rendering-docs'); }); it('should extract selector and exportAs from the directive decorator on directive docs', () => { const docs = [{ docType: 'directive', directiveOptions: { selector: 'a,b,c', exportAs: 'someExport' } }]; processorFactory().$process(docs); expect(docs[0].selector).toEqual('a,b,c'); expect(docs[0].exportAs).toEqual('someExport'); }); it('should ignore properties from the directive decorator on non-directive docs', () => { const docs = [{ docType: 'class', directiveOptions: { selector: 'a,b,c', exportAs: 'someExport' } }]; processorFactory().$process(docs); expect(docs[0].selector).toBeUndefined(); expect(docs[0].exportAs).toBeUndefined(); }); it('should strip whitespace and quotes off directive properties', () => { const docs = [ { docType: 'directive', directiveOptions: { selector: '"a,b,c"', exportAs: '\'someExport\'' } }, { docType: 'directive', directiveOptions: { selector: ' a,b,c ', exportAs: ' someExport ' } }, { docType: 'directive', directiveOptions: { selector: ' "a,b,c" ', exportAs: ' \'someExport\' ' } } ]; processorFactory().$process(docs); expect(docs[0].selector).toEqual('a,b,c'); expect(docs[0].exportAs).toEqual('someExport'); expect(docs[1].selector).toEqual('a,b,c'); expect(docs[1].exportAs).toEqual('someExport'); expect(docs[2].selector).toEqual('a,b,c'); expect(docs[2].exportAs).toEqual('someExport'); }); it('should extract inputs and outputs from the directive decorator', () => { const docs = [{ docType: 'directive', directiveOptions: { inputs: ['in1:in2', 'in3', ' in4:in5 ', ' in6 '], outputs: ['out1:out1', ' out2:out3 ', ' out4 '] }, members: [ { name: 'in1' }, { name: 'in3' }, { name: 'in4' }, { name: 'in6' }, { name: 'out1' }, { name: 'out2' }, { name: 'out4' } ] }]; processorFactory().$process(docs); expect(docs[0].inputs).toEqual([ { propertyName: 'in1', bindingName: 'in2', memberDoc: docs[0].members[0] }, { propertyName: 'in3', bindingName: 'in3', memberDoc: docs[0].members[1] }, { propertyName: 'in4', bindingName: 'in5', memberDoc: docs[0].members[2] }, { propertyName: 'in6', bindingName: 'in6', memberDoc: docs[0].members[3] } ]); expect(docs[0].outputs).toEqual([ { propertyName: 'out1', bindingName: 'out1', memberDoc: docs[0].members[4] }, { propertyName: 'out2', bindingName: 'out3', memberDoc: docs[0].members[5] }, { propertyName: 'out4', bindingName: 'out4', memberDoc: docs[0].members[6] } ]); }); it('should extract inputs and outputs from decorated properties', () => { const docs = [{ docType: 'directive', directiveOptions: {}, members: [ { name: 'a1', decorators: [{ name: 'Input', arguments: ['a2'] }] }, { name: 'b1', decorators: [{ name: 'Output', arguments: ['b2'] }] }, { name: 'c1', decorators: [{ name: 'Input', arguments: [] }] }, { name: 'd1', decorators: [{ name: 'Output', arguments: [] }] }, ] }]; processorFactory().$process(docs); expect(docs[0].inputs).toEqual([ { propertyName: 'a1', bindingName: 'a2', memberDoc: docs[0].members[0] }, { propertyName: 'c1', bindingName: 'c1', memberDoc: docs[0].members[2] } ]); expect(docs[0].outputs).toEqual([ { propertyName: 'b1', bindingName: 'b2', memberDoc: docs[0].members[1] }, { propertyName: 'd1', bindingName: 'd1', memberDoc: docs[0].members[3] } ]); }); it('should merge directive inputs/outputs with decorator property inputs/outputs', () => { const docs = [{ docType: 'directive', directiveOptions: { inputs: ['a1:a2'], outputs: ['b1:b2'] }, members: [ { name: 'a1' }, { name: 'a3', decorators: [{ name: 'Input', arguments: ['a4'] }] }, { name: 'b1' }, { name: 'b3', decorators: [{ name: 'Output', arguments: ['b4'] }] }, ] }]; processorFactory().$process(docs); expect(docs[0].inputs).toEqual([ { propertyName: 'a1', bindingName: 'a2', memberDoc: docs[0].members[0] }, { propertyName: 'a3', bindingName: 'a4', memberDoc: docs[0].members[1] } ]); expect(docs[0].outputs).toEqual([ { propertyName: 'b1', bindingName: 'b2', memberDoc: docs[0].members[2] }, { propertyName: 'b3', bindingName: 'b4', memberDoc: docs[0].members[3] } ]); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/mergeDecoratorDocs.js000066400000000000000000000122431431412030200317420ustar00rootroot00000000000000/** * Decorators in the Angular code base are made up from three code items: * * 1) An interface that represents the call signature of the decorator. E.g. * * ``` * export interface ComponentDecorator { * (obj: Component): TypeDecorator; * new (obj: Component): Component; * } * ``` * * 2) An interface that represents the members of the object that should be passed * into the decorator. E.g. * * ``` * export interface Component extends Directive { * changeDetection?: ChangeDetectionStrategy; * viewProviders?: Provider[]; * templateUrl?: string; * ... * } * ``` * * 3) A constant that is created by a call to a generic function, whose type parameter is * the call signature interface of the decorator. E.g. * * ``` * export const Component: ComponentDecorator = * makeDecorator('Component', { ... }, Directive) * ``` * * This processor searches for these constants (3) by looking for a call to * `make...Decorator(...)`. (There are variations to the call for property and param * decorators). From this call we identify the `decoratorType` (e.g. `ComponentDecorator`). * * Calls to `make...Decorator` will return an object of type X. This type is the document * referred to in (2). This is the primary doc that we care about for documenting the decorator. * It holds all of the members of the metadata that is passed to the decorator call. * * Finally we want to capture the documentation attached to the call signature interface of the * associated decorator (1). We copy across the properties that we care about from this call * signature (e.g. description, whatItDoes and howToUse). */ module.exports = function mergeDecoratorDocs(log) { return { $runAfter: ['processing-docs'], $runBefore: ['docs-processed'], makeDecoratorCalls: [ {type: '', description: 'toplevel', functionName: 'makeDecorator'}, {type: 'Prop', description: 'property', functionName: 'makePropDecorator'}, {type: 'Param', description: 'parameter', functionName: 'makeParamDecorator'}, ], $process: function(docs) { var makeDecoratorCalls = this.makeDecoratorCalls; var docsToMerge = Object.create(null); docs.forEach(function(doc) { const initializer = getInitializer(doc); if (initializer) { makeDecoratorCalls.forEach(function(call) { // find all the decorators, signified by a call to `make...Decorator(metadata)` if (initializer.expression && initializer.expression.text === call.functionName) { log.debug('mergeDecoratorDocs: found decorator', doc.docType, doc.name); doc.docType = 'decorator'; doc.decoratorLocation = call.description; // Get the type of the decorator metadata from the first "type" argument of the call. // For example the `X` of `createDecorator(...)`. doc.decoratorType = initializer.arguments[0].text; // clear the symbol type named since it is not needed doc.symbolTypeName = undefined; // keep track of the names of the metadata interface that will need to be merged into this decorator doc docsToMerge[doc.name + 'Decorator'] = doc; } }); } }); // merge the metadata docs into the decorator docs docs = docs.filter(function(doc) { if (docsToMerge[doc.name]) { // We have found an `XxxDecorator` document that will hold the call signature of the decorator var decoratorDoc = docsToMerge[doc.name]; var callMember = doc.members.filter(function(member) { return member.isCallMember; })[0]; log.debug( 'mergeDecoratorDocs: merging', doc.name, 'into', decoratorDoc.name, callMember.description.substring(0, 50)); // Merge the documentation found in this call signature into the original decorator decoratorDoc.description = callMember.description; decoratorDoc.howToUse = callMember.howToUse; decoratorDoc.whatItDoes = callMember.whatItDoes; // remove doc from its module doc's exports doc.moduleDoc.exports = doc.moduleDoc.exports.filter(function(exportDoc) { return exportDoc !== doc; }); // remove from the overall list of docs to be rendered return false; } return true; }); } }; }; function getInitializer(doc) { var initializer = doc.symbol && doc.symbol.valueDeclaration && doc.symbol.valueDeclaration.initializer; // There appear to be two forms of initializer: // export var Injectable: InjectableFactory = // makeDecorator(InjectableMetadata); // and // export var RouteConfig: (configs: RouteDefinition[]) => ClassDecorator = // makeDecorator(RouteConfigAnnotation); // In the first case, the type assertion `` causes the AST to contain an // extra level of expression // to hold the new type of the expression. if (initializer && initializer.expression && initializer.expression.expression) { initializer = initializer.expression; } return initializer; } rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/mergeDecoratorDocs.spec.js000066400000000000000000000056151431412030200327000ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('mergeDecoratorDocs processor', () => { let processor, moduleDoc, decoratorDoc, metadataDoc, otherDoc; beforeEach(() => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); processor = injector.get('mergeDecoratorDocs'); moduleDoc = {}; decoratorDoc = { name: 'Component', docType: 'const', description: 'A description of the metadata for the Component decorator', symbol: { valueDeclaration: { initializer: { expression: { text: 'makeDecorator' }, arguments: [{ text: 'X' }] } } }, members: [ { name: 'templateUrl', description: 'A description of the templateUrl property' } ], moduleDoc }; metadataDoc = { name: 'ComponentDecorator', docType: 'interface', description: 'A description of the interface for the call signature for the Component decorator', members: [ { isCallMember: true, description: 'The actual description of the call signature', whatItDoes: 'Does something cool...', howToUse: 'Use it like this...' }, { description: 'Some other member' } ], moduleDoc }; otherDoc = { name: 'Y', docType: 'const', symbol: { valueDeclaration: { initializer: { expression: { text: 'otherCall' }, arguments: [{ text: 'param1' }] } } }, moduleDoc }; moduleDoc.exports = [decoratorDoc, metadataDoc, otherDoc]; }); it('should change the docType of only the docs that are initialized by a call to makeDecorator', () => { processor.$process([decoratorDoc, metadataDoc, otherDoc]); expect(decoratorDoc.docType).toEqual('decorator'); expect(otherDoc.docType).toEqual('const'); }); it('should extract the "type" of the decorator meta data', () => { processor.$process([decoratorDoc, metadataDoc, otherDoc]); expect(decoratorDoc.decoratorType).toEqual('X'); }); it('should copy across properties from the call signature doc', () => { processor.$process([decoratorDoc, metadataDoc, otherDoc]); expect(decoratorDoc.description).toEqual('The actual description of the call signature'); expect(decoratorDoc.whatItDoes).toEqual('Does something cool...'); expect(decoratorDoc.howToUse).toEqual('Use it like this...'); }); it('should remove the metadataDoc from the module exports', () => { processor.$process([decoratorDoc, metadataDoc, otherDoc]); expect(moduleDoc.exports).not.toContain(metadataDoc); }); it('should cope with decorators that have type params', () => { decoratorDoc.symbol.valueDeclaration.initializer.expression.type = {}; processor.$process([decoratorDoc, metadataDoc, otherDoc]); expect(decoratorDoc.docType).toEqual('decorator'); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/migrateLegacyJSDocTags.js000066400000000000000000000023721431412030200324500ustar00rootroot00000000000000module.exports = function migrateLegacyJSDocTags(log, createDocMessage) { return { $runAfter: ['tags-extracted'], $runBefore: ['processing-docs'], $process(docs) { let migrated = false; docs.forEach(doc => { if (doc.howToUse) { if (doc.usageNotes) { throw new Error(createDocMessage('`@usageNotes` and the deprecated `@howToUse` are not allowed on the same doc', doc)); } log.debug(createDocMessage('Using deprecated `@howToUse` tag as though it was `@usageNotes` tag', doc)); doc.usageNotes = doc.howToUse; doc.howToUse = null; migrated = true; } if (doc.whatItDoes) { log.debug(createDocMessage('Merging the content of `@whatItDoes` tag into the description.', doc)); if (doc.description) { doc.description = `${doc.whatItDoes}\n\n${doc.description}`; } else { doc.description = doc.whatItDoes; } doc.whatItDoes = null; migrated = true; } }); if (migrated) { log.warn('Some deprecated tags were migrated.'); log.warn('This automatic handling will be removed in a future version of the doc generation.\n'); } } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/migrateLegacyJSDocTags.spec.js000066400000000000000000000045261431412030200334040ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const processorFactory = require('./migrateLegacyJSDocTags'); const log = require('dgeni/lib/mocks/log')(false); const createDocMessage = require('dgeni-packages/base/services/createDocMessage')(); const Dgeni = require('dgeni'); describe('migrateLegacyJSDocTags processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('migrateLegacyJSDocTags'); expect(processor.$process).toBeDefined(); }); it('should run before the correct processor', () => { const processor = processorFactory(log, createDocMessage); expect(processor.$runBefore).toEqual(['processing-docs']); }); it('should run after the correct processor', () => { const processor = processorFactory(log, createDocMessage); expect(processor.$runAfter).toEqual(['tags-extracted']); }); it('should migrate `howToUse` property to `usageNotes` property', () => { const processor = processorFactory(log, createDocMessage); const docs = [ { howToUse: 'this is how to use it' } ]; processor.$process(docs); expect(docs[0].howToUse).toBe(null); expect(docs[0].usageNotes).toEqual('this is how to use it'); }); it('should migrate `whatItDoes` property to the `description`', () => { const processor = processorFactory(log, createDocMessage); const docs = [ { whatItDoes: 'what it does' }, { whatItDoes: 'what it does', description: 'the description' }, { description: 'the description' } ]; processor.$process(docs); expect(docs[0].whatItDoes).toBe(null); expect(docs[0].description).toEqual('what it does'); expect(docs[1].whatItDoes).toBe(null); expect(docs[1].description).toEqual('what it does\n\nthe description'); expect(docs[2].whatItDoes).toBeUndefined(); expect(docs[2].description).toEqual('the description'); }); it('should ignore docs that have neither `howToUse` nor `whatItDoes` properties', () => { const processor = processorFactory(log, createDocMessage); const docs = [ { }, { description: 'the description' } ]; processor.$process(docs); expect(docs).toEqual([ { }, { description: 'the description' } ]); }); });rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/processClassLikeMembers.js000066400000000000000000000040251431412030200327520ustar00rootroot00000000000000/** * A class like API doc contains members, but these can be either properties or method. * Separate the members into two new collections: `doc.properties` and `doc.methods`. */ module.exports = function processClassLikeMembers() { return { $runAfter: ['filterContainedDocs'], $runBefore: ['rendering-docs'], $process(docs) { docs.forEach(doc => { if (doc.members) { doc.properties = []; doc.methods = []; doc.members.forEach(member => { if (isMethod(member)) { doc.methods.push(member); computeMemberDescription(member); } else { doc.properties.push(member); if (!member.description) { // Is this property defined as a constructor parameter e.g. `constructor(public property: string) { ... }`? const constructorDoc = member.containerDoc.constructorDoc; if (constructorDoc) { const matchingParameterDoc = constructorDoc.parameterDocs.filter(doc => doc.declaration === member.declaration)[0]; member.constructorParamDoc = matchingParameterDoc; } } } }); } if (doc.statics) { doc.staticProperties = []; doc.staticMethods = []; doc.statics.forEach(member => { if (isMethod(member)) { doc.staticMethods.push(member); computeMemberDescription(member); } else { doc.staticProperties.push(member); } }); } }); } }; }; function isMethod(doc) { return doc.hasOwnProperty('parameters') && !doc.isGetAccessor && !doc.isSetAccessor; } function computeMemberDescription(member) { if (!member.description && member.overloads) { // Perhaps the description is on one of the overloads - take the first non-empty one member.description = member.overloads.map(overload => overload.description).filter(description => !!description)[0]; } }rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/processClassLikeMembers.spec.js000066400000000000000000000057101431412030200337050ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const processorFactory = require('./processClassLikeMembers'); const Dgeni = require('dgeni'); const property1 = { description: 'property 1' }; const property2 = { description: 'property 2' }; const getter1 = { parameters: [], isGetAccessor: true, description: 'getter 1' }; const setter1 = { parameters: [], isSetAccessor: true, description: 'setter 1' }; const method1 = { parameters: [] }; const method2 = { parameters: [] }; const method3 = { parameters: [] }; describe('angular-api-package: processClassLikeMembers processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('processClassLikeMembers'); expect(processor.$process).toBeDefined(); expect(processor.$runAfter).toEqual(['filterContainedDocs']); expect(processor.$runBefore).toEqual(['rendering-docs']); }); it('should copy instance members into properties and methods', () => { const processor = processorFactory(); const docs = [ { members: [ property1, method1, getter1] }, { members: [ method2, property2, method3, setter1] }, { } ]; processor.$process(docs); expect(docs[0].properties).toEqual([property1, getter1]); expect(docs[0].methods).toEqual([method1]); expect(docs[1].properties).toEqual([property2, setter1]); expect(docs[1].methods).toEqual([method2, method3]); expect(docs[2].properties).toBeUndefined(); expect(docs[2].methods).toBeUndefined(); }); it('should copy static members into properties and methods', () => { const processor = processorFactory(); const docs = [ { statics: [ property1, method1, getter1] }, { statics: [ method2, property2, method3, setter1] }, { } ]; processor.$process(docs); expect(docs[0].staticProperties).toEqual([property1, getter1]); expect(docs[0].staticMethods).toEqual([method1]); expect(docs[1].staticProperties).toEqual([property2, setter1]); expect(docs[1].staticMethods).toEqual([method2, method3]); expect(docs[2].staticProperties).toBeUndefined(); expect(docs[2].staticMethods).toBeUndefined(); }); it('should wire up properties that are declared as parameters on the constructor to its associated parameter doc', () => { const processor = processorFactory(); const propertyDeclaration = {}; const parameterDoc1 = { declaration: {} }; const parameterDoc2 = { declaration: propertyDeclaration }; const parameterDoc3 = { declaration: {} }; const property = { declaration: propertyDeclaration, containerDoc: { constructorDoc: { parameterDocs: [ parameterDoc1, parameterDoc2, parameterDoc3 ] } } }; const docs = [{ members: [ property] }]; processor.$process(docs); expect(property.constructorParamDoc).toEqual(parameterDoc2); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/simplifyMemberAnchors.js000066400000000000000000000017511431412030200324730ustar00rootroot00000000000000/** * Members that have overloads get long unwieldy anchors because they must be distinguished * by their parameter lists. * But the primary overload doesn't not need this distinction, so can just be the name of the member. */ module.exports = function simplifyMemberAnchors() { return { $runAfter: ['paths-computed'], $runBefore: ['rendering-docs'], $process: function(docs) { return docs.forEach(doc => { if (doc.members) { doc.members.forEach(member => { member.anchor = computeAnchor(member); member.path = doc.path + '#' + member.anchor; }); } if (doc.statics) { doc.statics.forEach(member => { member.anchor = computeAnchor(member); member.path = doc.path + '#' + member.anchor; }); } }); } }; }; function computeAnchor(member) { // if the member is a "call" type then it has no name return encodeURI(member.name.trim() || 'call'); } rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/simplifyMemberAnchors.spec.js000066400000000000000000000052271431412030200334260ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const processorFactory = require('./simplifyMemberAnchors'); const Dgeni = require('dgeni'); describe('simplifyMemberAnchors processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('simplifyMemberAnchors'); expect(processor.$process).toBeDefined(); expect(processor.$runAfter).toEqual(['paths-computed']); expect(processor.$runBefore).toEqual(['rendering-docs']); }); describe('$process', () => { describe('docs without members', () => { it('should ignore the docs', () => { const processor = processorFactory(); const docs = [ { id: 'some-doc' }, { id: 'some-other' } ]; processor.$process(docs); expect(docs).toEqual([ { id: 'some-doc' }, { id: 'some-other' } ]); }); }); describe('docs with members', () => { it('should compute an anchor for each instance member', () => { const processor = processorFactory(); const docs = [ { id: 'some-doc', members: [ { name: 'foo' }, { name: 'new' }, { name: '' } ] } ]; processor.$process(docs); expect(docs[0].members.map(member => member.anchor)).toEqual(['foo', 'new', 'call']); }); it('should compute a path for each instance member', () => { const processor = processorFactory(); const docs = [ { id: 'some-doc', path: 'a/b/c', members: [ { name: 'foo' }, { name: 'new' }, { name: '' } ] } ]; processor.$process(docs); expect(docs[0].members.map(member => member.path)).toEqual(['a/b/c#foo', 'a/b/c#new', 'a/b/c#call']); }); }); describe('docs with static members', () => { it('should compute an anchor for each static member', () => { const processor = processorFactory(); const docs = [ { id: 'some-doc', statics: [ { name: 'foo' }, { name: 'new' }, { name: '' } ] } ]; processor.$process(docs); expect(docs[0].statics.map(member => member.anchor)).toEqual(['foo', 'new', 'call']); }); it('should compute a path for each static member', () => { const processor = processorFactory(); const docs = [ { id: 'some-doc', path: 'a/b/c', statics: [ { name: 'foo' }, { name: 'new' }, { name: '' } ] } ]; processor.$process(docs); expect(docs[0].statics.map(member => member.path)).toEqual(['a/b/c#foo', 'a/b/c#new', 'a/b/c#call']); }); }); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/splitDescription.js000066400000000000000000000016321431412030200315260ustar00rootroot00000000000000/** * Split the description (of selected docs) into: * * `shortDescription`: the first paragraph * * `description`: the rest of the paragraphs */ module.exports = function splitDescription() { return { $runAfter: ['tags-extracted', 'migrateLegacyJSDocTags'], $runBefore: ['processing-docs'], docTypes: [], $process(docs) { docs.forEach(doc => { if (this.docTypes.indexOf(doc.docType) !== -1 && doc.description !== undefined) { const description = doc.description.trim(); const endOfParagraph = description.search(/\n\s*\n/); if (endOfParagraph === -1) { doc.shortDescription = description; doc.description = ''; } else { doc.shortDescription = description.substr(0, endOfParagraph).trim(); doc.description = description.substr(endOfParagraph).trim(); } } }); } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/processors/splitDescription.spec.js000066400000000000000000000057221431412030200324630ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const processorFactory = require('./splitDescription'); const Dgeni = require('dgeni'); describe('splitDescription processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-api-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('splitDescription'); expect(processor.$process).toBeDefined(); }); it('should run before the correct processor', () => { const processor = processorFactory(); expect(processor.$runBefore).toEqual(['processing-docs']); }); it('should run after the correct processor', () => { const processor = processorFactory(); expect(processor.$runAfter).toEqual(['tags-extracted', 'migrateLegacyJSDocTags']); }); it('should split the `description` property into the first paragraph and other paragraphs', () => { const processor = processorFactory(); processor.docTypes = ['test']; const docs = [ { docType: 'test' }, { docType: 'test', description: '' }, { docType: 'test', description: 'abc' }, { docType: 'test', description: 'abc\n' }, { docType: 'test', description: 'abc\n\n' }, { docType: 'test', description: 'abc\ncde' }, { docType: 'test', description: 'abc\ncde\n' }, { docType: 'test', description: 'abc\n\ncde' }, { docType: 'test', description: 'abc\n \ncde' }, { docType: 'test', description: 'abc\n\n\ncde' }, { docType: 'test', description: 'abc\n\ncde\nfgh' }, { docType: 'test', description: 'abc\n\ncde\n\nfgh' }, ]; processor.$process(docs); expect(docs).toEqual([ { docType: 'test' }, { docType: 'test', shortDescription: '', description: '' }, { docType: 'test', shortDescription: 'abc', description: '' }, { docType: 'test', shortDescription: 'abc', description: '' }, { docType: 'test', shortDescription: 'abc', description: '' }, { docType: 'test', shortDescription: 'abc\ncde', description: '' }, { docType: 'test', shortDescription: 'abc\ncde', description: '' }, { docType: 'test', shortDescription: 'abc', description: 'cde' }, { docType: 'test', shortDescription: 'abc', description: 'cde' }, { docType: 'test', shortDescription: 'abc', description: 'cde' }, { docType: 'test', shortDescription: 'abc', description: 'cde\nfgh' }, { docType: 'test', shortDescription: 'abc', description: 'cde\n\nfgh' }, ]); }); it('should ignore docs that do not match the specified doc types', () => { const processor = processorFactory(); processor.docTypes = ['test']; const docs = [ { docType: 'test', description: 'abc\n\ncde' }, { docType: 'other', description: 'abc\n\ncde' } ]; processor.$process(docs); expect(docs).toEqual([ { docType: 'test', shortDescription: 'abc', description: 'cde' }, { docType: 'other', description: 'abc\n\ncde' } ]); }); });rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/000077500000000000000000000000001431412030200251175ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/Annotation.js000066400000000000000000000002201431412030200275610ustar00rootroot00000000000000// A ts2dart compiler annotation that can be ignored in API docs. module.exports = function() { return {name: 'Annotation', ignore: true}; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/deprecated.js000066400000000000000000000001001431412030200275440ustar00rootroot00000000000000module.exports = function() { return {name: 'deprecated'}; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/docsNotRequired.js000066400000000000000000000001051431412030200305630ustar00rootroot00000000000000module.exports = function() { return {name: 'docsNotRequired'}; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/experimental.js000066400000000000000000000001021431412030200301430ustar00rootroot00000000000000module.exports = function() { return {name: 'experimental'}; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/howToUse.js000066400000000000000000000004641431412030200272360ustar00rootroot00000000000000module.exports = function(log, createDocMessage) { return { name: 'howToUse', deprecated: true, transforms(doc, tag, value) { log.warn(createDocMessage('Deprecated `@howToUse` tag found', doc)); log.warn('PLEASE FIX by renaming to `@usageNotes.'); return value; } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/internal.js000066400000000000000000000007101431412030200272670ustar00rootroot00000000000000/** * Use this tag to ensure that dgeni does not include this code item * in the rendered docs. * * The `@internal` tag indicates to the compiler not to include the * item in the public typings file. * Use the `@nodoc` alias if you only want to hide the item from the * docs but not from the typings file. */ module.exports = function() { return { name: 'internal', aliases: ['nodoc'], transforms: function() { return true; } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/ngModule.js000066400000000000000000000000761431412030200272320ustar00rootroot00000000000000module.exports = function() { return {name: 'ngModule'}; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/no-description.js000066400000000000000000000001531431412030200304110ustar00rootroot00000000000000module.exports = function() { return {name: 'noDescription', transforms: function() { return true; }}; };rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/security.js000066400000000000000000000000761431412030200273270ustar00rootroot00000000000000module.exports = function() { return {name: 'security'}; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/stable.js000066400000000000000000000004631431412030200267320ustar00rootroot00000000000000module.exports = function(log, createDocMessage) { return { name: 'stable', deprecated: true, transforms(doc, tag, value) { log.warn(createDocMessage('Deprecated `@stable` tag found', doc)); log.warn('PLEASE REMOVE - its value is now computed.'); return value; } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/suppress.js000066400000000000000000000000751431412030200273430ustar00rootroot00000000000000module.exports = function() { return {name: 'suppress'}; };rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/syntax.js000066400000000000000000000000731431412030200270030ustar00rootroot00000000000000module.exports = function() { return {name: 'syntax'}; };rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/throws.js000066400000000000000000000003241431412030200270020ustar00rootroot00000000000000module.exports = function(extractTypeTransform, wholeTagTransform) { return { name: 'throws', aliases: ['exception'], multi: true, transforms: [ extractTypeTransform, wholeTagTransform ] }; };rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/ts2dart_const.js000066400000000000000000000002231431412030200302430ustar00rootroot00000000000000// A ts2dart compiler annotation that can be ignored in API docs. module.exports = function() { return {name: 'ts2dart_const', ignore: true}; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/usageNotes.js000066400000000000000000000001101431412030200275620ustar00rootroot00000000000000module.exports = function() { return { name: 'usageNotes' }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-api-package/tag-defs/whatItDoes.js000066400000000000000000000005571431412030200275370ustar00rootroot00000000000000module.exports = function(log, createDocMessage) { return { name: 'whatItDoes', deprecated: true, transforms(doc, tag, value) { log.warn(createDocMessage('Deprecated `@whatItDoes` tag found', doc)); log.warn('PLEASE FIX by adding the content of this tag as the first paragraph of the `@description` tag.'); return value; } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/000077500000000000000000000000001431412030200235665ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/ignore.words000066400000000000000000000104371431412030200261360ustar00rootroot00000000000000a able about above abst accordance according accordingly across act actually added adj adopted affected affecting affects after afterwards again against ah all almost alone along already also although always am among amongst an and announce another any anybody anyhow anymore anyone anything anyway anyways anywhere apparently approximately are aren arent arise around as aside ask asking at auth available away awfully b back be became because become becomes becoming been before beforehand begin beginning beginnings begins behind being believe below beside besides between beyond biol both brief briefly but by c ca came can cannot can't cant cause causes certain certainly co com come comes contain containing contains could couldnt d date did didn't didnt different do does doesn't doesnt doing done don't dont down downwards due during e each ed edu effect eg eight eighty either else elsewhere end ending enough especially et et-al etc even ever every everybody everyone everything everywhere ex except f far few ff fifth first five fix followed following follows for former formerly forth found four from further furthermore g gave get gets getting give given gives giving go goes gone got gotten h had happens hardly has hasn't hasnt have haven't havent having he hed hence her here hereafter hereby herein heres hereupon hers herself hes hi hid him himself his hither home how howbeit however hundred i id ie if i'll ill im immediate immediately importance important in inc indeed index information instead into invention inward is isn't isnt it itd it'll itll its itself i've ive j just k keep keeps kept keys kg km know known knows l largely last lately later latter latterly least less lest let lets like liked likely line little 'll 'll look looking looks ltd m made mainly make makes many may maybe me mean means meantime meanwhile merely mg might million miss ml more moreover most mostly mr mrs much mug must my myself n na name namely nay nd near nearly necessarily necessary need needs neither never nevertheless new next nine ninety no nobody non none nonetheless noone nor normally nos not noted nothing now nowhere o obtain obtained obviously of off often oh ok okay old omitted on once one ones only onto or ord other others otherwise ought our ours ourselves out outside over overall owing own p page pages part particular particularly past per perhaps placed please plus poorly possible possibly potentially pp predominantly present previously primarily probably promptly proud provides put q que quickly quite qv r ran rather rd re readily really recent recently ref refs regarding regardless regards related relatively research respectively resulted resulting results right run s said same saw say saying says sec section see seeing seem seemed seeming seems seen self selves sent seven several shall she shed she'll shell shes should shouldn't shouldnt show showed shown showns shows significant significantly similar similarly since six slightly so some somebody somehow someone somethan something sometime sometimes somewhat somewhere soon sorry specifically specified specify specifying state states still stop strongly sub substantially successfully such sufficiently suggest sup sure t take taken taking tell tends th than thank thanks thanx that that'll thatll thats that've thatve the their theirs them themselves then thence there thereafter thereby thered therefore therein there'll therell thereof therere theres thereto thereupon there've thereve these they theyd they'll theyll theyre they've theyve think this those thou though thoughh thousand throug through throughout thru thus til tip to together too took toward towards tried tries truly try trying ts twice two u un under unfortunately unless unlike unlikely until unto up upon ups us use used useful usefully usefulness uses using usually v value various 've 've very via viz vol vols vs w want wants was wasn't wasnt way we wed welcome we'll well went were weren't werent we've weve what whatever what'll whatll whats when whence whenever where whereafter whereas whereby wherein wheres whereupon wherever whether which while whim whither who whod whoever whole who'll wholl whom whomever whos whose why widely will willing wish with within without won't wont words would wouldn't wouldnt www x y yes yet you youd you'll youll your youre yours yourself yourselves you've youve z zero rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/index.js000066400000000000000000000135541431412030200252430ustar00rootroot00000000000000/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ const path = require('path'); const Package = require('dgeni').Package; const jsdocPackage = require('dgeni-packages/jsdoc'); const nunjucksPackage = require('dgeni-packages/nunjucks'); const linksPackage = require('../links-package'); const examplesPackage = require('../examples-package'); const targetPackage = require('../target-package'); const remarkPackage = require('../remark-package'); const postProcessPackage = require('dgeni-packages/post-process-html'); const { PROJECT_ROOT, CONTENTS_PATH, OUTPUT_PATH, DOCS_OUTPUT_PATH, TEMPLATES_PATH, AIO_PATH, requireFolder } = require('../config'); module.exports = new Package('angular-base', [ jsdocPackage, nunjucksPackage, linksPackage, examplesPackage, targetPackage, remarkPackage, postProcessPackage, ]) // Register the processors .processor(require('./processors/generateKeywords')) .processor(require('./processors/createSitemap')) .processor(require('./processors/checkUnbalancedBackTicks')) .processor(require('./processors/convertToJson')) .processor(require('./processors/fixInternalDocumentLinks')) .processor(require('./processors/copyContentAssets')) .processor(require('./processors/renderLinkInfo')) .processor(require('./processors/checkOperator')) // overrides base packageInfo and returns the one for the 'angular/angular' repo. .factory('packageInfo', function () { return require(path.resolve(PROJECT_ROOT, 'package.json')); }) .factory(require('./readers/json')) .factory(require('./services/copyFolder')) .factory(require('./services/filterPipes')) .factory(require('./services/filterAmbiguousDirectiveAliases')) .factory(require('./services/filterFromInImports')) .factory(require('./services/filterNeverAsGeneric')) .factory(require('./services/getImageDimensions')) .factory(require('./post-processors/add-image-dimensions')) .factory(require('./post-processors/auto-link-code')) .config(function (checkAnchorLinksProcessor) { // This is disabled here to prevent false negatives for the `docs-watch` task. // It is re-enabled in the main `angular.io-package` checkAnchorLinksProcessor.$enabled = false; }) // Where do we get the source files? .config(function (readFilesProcessor, collectExamples, generateKeywordsProcessor, jsonFileReader) { readFilesProcessor.fileReaders.push(jsonFileReader); readFilesProcessor.basePath = PROJECT_ROOT; readFilesProcessor.sourceFiles = []; collectExamples.exampleFolders = []; generateKeywordsProcessor.ignoreWordsFile = path.resolve(__dirname, 'ignore.words'); generateKeywordsProcessor.docTypesToIgnore = ['example-region']; generateKeywordsProcessor.propertiesToIgnore = ['renderedContent']; }) // Where do we write the output files? .config(function (writeFilesProcessor) { writeFilesProcessor.outputFolder = DOCS_OUTPUT_PATH; }) // Target environments .config(function (targetEnvironments) { const ALLOWED_LANGUAGES = ['ts', 'js', 'dart']; const TARGET_LANGUAGE = 'ts'; ALLOWED_LANGUAGES.forEach((target) => targetEnvironments.addAllowed(target)); targetEnvironments.activate(TARGET_LANGUAGE); }) // Configure nunjucks rendering of docs via templates .config(function (renderDocsProcessor, templateFinder, templateEngine, getInjectables) { // Where to find the templates for the doc rendering templateFinder.templateFolders = [TEMPLATES_PATH]; // Standard patterns for matching docs to templates templateFinder.templatePatterns = [ '${ doc.template }', '${ doc.id }.${ doc.docType }.template.html', '${ doc.id }.template.html', '${ doc.docType }.template.html', '${ doc.id }.${ doc.docType }.template.js', '${ doc.id }.template.js', '${ doc.docType }.template.js', '${ doc.id }.${ doc.docType }.template.json', '${ doc.id }.template.json', '${ doc.docType }.template.json', 'common.template.html', ]; // Nunjucks and Angular conflict in their template bindings so change Nunjucks templateEngine.config.tags = { variableStart: '{$', variableEnd: '$}' }; templateEngine.filters = templateEngine.filters.concat(getInjectables(requireFolder(__dirname, './rendering'))); // helpers are made available to the nunjucks templates renderDocsProcessor.helpers.relativePath = function (from, to) { return path.relative(from, to); }; }) .config(function (copyContentAssetsProcessor) { copyContentAssetsProcessor.assetMappings.push({ from: path.resolve(CONTENTS_PATH, 'images'), to: path.resolve(OUTPUT_PATH, 'images') }); }) // We are not going to be relaxed about ambiguous links .config(function (getLinkInfo) { getLinkInfo.useFirstAmbiguousLink = false; }) .config(function (computePathsProcessor, generateKeywordsProcessor) { generateKeywordsProcessor.outputFolder = 'app'; // Replace any path templates inherited from other packages // (we want full and transparent control) computePathsProcessor.pathTemplates = [{ docTypes: ['example-region'], getOutputPath: function () {} }]; }) .config(function (postProcessHtml, addImageDimensions, autoLinkCode, filterPipes, filterAmbiguousDirectiveAliases, filterFromInImports, filterNeverAsGeneric) { addImageDimensions.basePath = path.resolve(AIO_PATH, 'src'); autoLinkCode.customFilters = [filterPipes, filterAmbiguousDirectiveAliases]; autoLinkCode.wordFilters = [filterFromInImports, filterNeverAsGeneric]; postProcessHtml.plugins = [ require('./post-processors/autolink-headings'), addImageDimensions, require('./post-processors/h1-checker'), autoLinkCode, ]; }) .config(function (convertToJsonProcessor) { convertToJsonProcessor.docTypes = []; }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/post-processors/000077500000000000000000000000001431412030200267535ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/post-processors/add-image-dimensions.js000066400000000000000000000027041431412030200332720ustar00rootroot00000000000000const visit = require('unist-util-visit'); const is = require('hast-util-is-element'); const source = require('unist-util-source'); /** * Add the width and height of the image to the `img` tag if they are * not already provided. This helps prevent jank when the page is * rendered before the image has downloaded. * * If there is no `src` attribute on an image, or it is not possible * to load the image file indicated by the `src` then a warning is emitted. */ module.exports = function addImageDimensions(getImageDimensions) { return function addImageDimensionsImpl() { return (ast, file) => { visit(ast, node => { if (is(node, 'img')) { const props = node.properties; const src = props.src; if (!src) { file.message('Missing src in image tag `' + source(node, file) + '`'); } else { try { const dimensions = getImageDimensions(addImageDimensionsImpl.basePath, src); if (props.width === undefined && props.height === undefined) { props.width = '' + dimensions.width; props.height = '' + dimensions.height; } } catch(e) { if (e.code === 'ENOENT') { file.message('Unable to load src in image tag `' + source(node, file) + '`'); } else { file.fail(e.message); } } } } }); }; }; }; add-image-dimensions.spec.js000066400000000000000000000065471431412030200341550ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/post-processorsvar createTestPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('addImageDimensions post-processor', () => { let processor, getImageDimensionsSpy, addImageDimensions, log; beforeEach(() => { const testPackage = createTestPackage('angular-base-package') .factory('getImageDimensions', mockGetImageDimensions); const dgeni = new Dgeni([testPackage]); const injector = dgeni.configureInjector(); log = injector.get('log'); addImageDimensions = injector.get('addImageDimensions'); addImageDimensions.basePath = 'base/path'; getImageDimensionsSpy = injector.get('getImageDimensions'); processor = injector.get('postProcessHtml'); processor.docTypes = ['a']; processor.plugins = [addImageDimensions]; }); it('should add the image dimensions into tags', () => { const docs = [{ docType: 'a', renderedContent: `

xxx

yyy

zzz

` }]; processor.$process(docs); expect(getImageDimensionsSpy).toHaveBeenCalledWith('base/path', 'a/b.jpg'); expect(getImageDimensionsSpy).toHaveBeenCalledWith('base/path', 'c/d.png'); expect(docs).toEqual([jasmine.objectContaining({ docType: 'a', renderedContent: `

xxx

yyy

zzz

` })]); }); it('should log a warning for images with no src attribute', () => { const docs = [{ docType: 'a', renderedContent: '' }]; processor.$process(docs); expect(getImageDimensionsSpy).not.toHaveBeenCalled(); expect(docs).toEqual([jasmine.objectContaining({ docType: 'a', renderedContent: '' })]); expect(log.warn).toHaveBeenCalledWith('Missing src in image tag `` - doc (a) '); }); it('should fail for images whose source cannot be loaded', () => { getImageDimensionsSpy.and.callFake(() => { const error = new Error('no such file or directory'); error.code = 'ENOENT'; throw error; }); const docs = [{ docType: 'a', renderedContent: '' }]; expect(() => processor.$process(docs)).toThrowError('Unable to load src in image tag `` - doc (a) '); expect(getImageDimensionsSpy).toHaveBeenCalledWith('base/path', 'missing'); }); it('should ignore images with width or height attributes', () => { const docs = [{ docType: 'a', renderedContent: ` ` }]; processor.$process(docs); expect(docs).toEqual([jasmine.objectContaining({ docType: 'a', renderedContent: ` ` })]); }); function mockGetImageDimensions() { const imageInfo = { 'a/b.jpg': { width: 10, height: 20 }, 'c/d.png': { width: 30, height: 40 }, }; // eslint-disable-next-line jasmine/no-unsafe-spy return jasmine.createSpy('getImageDimensions') .and.callFake((base, url) => imageInfo[url]); } }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/post-processors/auto-link-code.js000066400000000000000000000132041431412030200321240ustar00rootroot00000000000000const visit = require('unist-util-visit-parents'); const is = require('hast-util-is-element'); const textContent = require('hast-util-to-string'); /** * Automatically add in a link to the relevant document for code blocks. * E.g. `MyClass` becomes `MyClass` * * @property docTypes an array of strings. * Only docs that have one of these docTypes will be linked to. * Usually set to the API exported docTypes, e.g. "class", "function", "directive", etc. * * @property customFilters array of functions `(docs, words, wordIndex) => docs` that will filter * out docs where a word should not link to a doc. * - `docs` is the array of docs that match the link `word` * - `words` is the collection of words parsed from the code text * - `wordIndex` is the index of the current `word` for which we are finding a link * * @property codeElements an array of strings. * Only text contained in these elements will be linked to. * Usually set to "code" but also "code-example" for angular.io. */ module.exports = function autoLinkCode(getDocFromAlias) { autoLinkCodeImpl.docTypes = []; autoLinkCodeImpl.customFilters = []; autoLinkCodeImpl.wordFilters = []; autoLinkCodeImpl.codeElements = ['code']; autoLinkCodeImpl.ignoredLanguages = ['bash', 'sh', 'shell', 'json', 'markdown']; autoLinkCodeImpl.failOnMissingDocPath = false; return autoLinkCodeImpl; function autoLinkCodeImpl() { return (ast, file) => { visit(ast, 'element', (node, ancestors) => { if (!isValidCodeElement(node, ancestors)) { return; } visit(node, 'text', (node, ancestors) => { const isInLink = isInsideLink(ancestors); if (isInLink) { return; } const parent = ancestors[ancestors.length - 1]; const index = parent.children.indexOf(node); // Can we convert the whole text node into a doc link? const docs = getFilteredDocsFromAlias([node.value], 0); if (foundValidDoc(docs, node.value, file)) { parent.children.splice(index, 1, createLinkNode(docs[0], node.value)); } else { // Parse the text for words that we can convert to links const nodes = getNodes(node, file); // Replace the text node with the links and leftover text nodes Array.prototype.splice.apply(parent.children, [index, 1].concat(nodes)); // Do not visit this node's children or the newly added nodes return [visit.SKIP, index + nodes.length]; } }); }); }; } function isValidCodeElement(node, ancestors) { // Only interested in code elements that: // * do not have `no-auto-link` class // * do not have an ignored language // * are not inside links const isCodeElement = autoLinkCodeImpl.codeElements.some(elementType => is(node, elementType)); const hasNoAutoLink = node.properties.className && node.properties.className.includes('no-auto-link'); const isLanguageSupported = !autoLinkCodeImpl.ignoredLanguages.includes(node.properties.language); const isInLink = isInsideLink(ancestors); return isCodeElement && !hasNoAutoLink && isLanguageSupported && !isInLink; } function isInsideLink(ancestors) { return ancestors.some(ancestor => is(ancestor, 'a')); } function getFilteredDocsFromAlias(words, index) { // Remove docs that fail the custom filter tests. return autoLinkCodeImpl.customFilters.reduce( (docs, filter) => filter(docs, words, index), getDocFromAlias(words[index])); } function shouldSkipFindingValidDoc(words, index) { return autoLinkCodeImpl.wordFilters.reduce((skip, filter) => skip || filter(words, index), false); } function getNodes(node, file) { return textContent(node) .split(/([A-Za-z0-9_.-]+)/) .filter(word => word.length) .map((word, index, words) => { const filteredDocs = getFilteredDocsFromAlias(words, index); const skipFindingValidDoc = shouldSkipFindingValidDoc(words, index); return !skipFindingValidDoc && foundValidDoc(filteredDocs, word, file) ? // Create a link wrapping the text node. createLinkNode(filteredDocs[0], word) : // this is just text so push a new text node {type: 'text', value: word}; }); } /** * Validates the docs to be used to generate the links. The validation ensures * that the docs are not `internal` and that the `docType` is supported. The `path` * can be empty when the `API` is not public. * * @param {Array} docs An array of objects containing the doc details * * @param {string} keyword The keyword the doc applies to */ function foundValidDoc(docs, keyword, file) { if (docs.length !== 1) { return false; } var doc = docs[0]; const isInvalidDoc = doc.docType === 'member' && !keyword.includes('.'); if (isInvalidDoc) { return false; } if (!doc.path) { var message = ` autoLinkCode: Doc path is empty for "${doc.id}" - link will not be generated for "${keyword}". Please make sure if the doc should be public. If not, it should probably not be referenced in the docs.`; if (autoLinkCodeImpl.failOnMissingDocPath) { file.fail(message); } else { file.message(message); } return false; } return !doc.internal && autoLinkCodeImpl.docTypes.includes(doc.docType); } function createLinkNode(doc, text) { return { type: 'element', tagName: 'a', properties: {href: doc.path, class: 'code-anchor'}, children: [{type: 'text', value: text}] }; } }; rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/post-processors/auto-link-code.spec.js000066400000000000000000000144611431412030200330630ustar00rootroot00000000000000var createTestPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('autoLinkCode post-processor', () => { let processor, autoLinkCode, aliasMap, filterPipes; beforeEach(() => { const testPackage = createTestPackage('angular-base-package'); const dgeni = new Dgeni([testPackage]); const injector = dgeni.configureInjector(); autoLinkCode = injector.get('autoLinkCode'); autoLinkCode.docTypes = ['class', 'pipe', 'function', 'const', 'member']; aliasMap = injector.get('aliasMap'); processor = injector.get('postProcessHtml'); processor.docTypes = ['test-doc']; processor.plugins = [autoLinkCode]; filterPipes = injector.get('filterPipes'); }); it('should insert an anchor into every code item that matches the id of an API doc', () => { aliasMap.addDoc({ docType: 'class', id: 'MyClass', aliases: ['MyClass'], path: 'a/b/myclass' }); const doc = { docType: 'test-doc', renderedContent: 'MyClass' }; processor.$process([doc]); expect(doc.renderedContent).toEqual('MyClass'); }); it('should insert an anchor into every code item that matches an alias of an API doc', () => { aliasMap.addDoc({ docType: 'class', id: 'MyClass', aliases: ['MyClass', 'foo.MyClass'], path: 'a/b/myclass' }); const doc = { docType: 'test-doc', renderedContent: 'foo.MyClass' }; processor.$process([doc]); expect(doc.renderedContent).toEqual('foo.MyClass'); }); it('should match code items within a block of code that contain a dot in their identifier', () => { aliasMap.addDoc({ docType: 'member', id: 'MyEnum.Value', aliases: ['Value', 'MyEnum.Value'], path: 'a/b/myenum' }); const doc = { docType: 'test-doc', renderedContent: 'someFn(): MyEnum.Value' }; processor.$process([doc]); expect(doc.renderedContent).toEqual('someFn(): MyEnum.Value'); }); it('should ignore code items that do not match a link to an API doc', () => { aliasMap.addDoc({ docType: 'guide', id: 'MyClass', aliases: ['MyClass'], path: 'a/b/myclass' }); const doc = { docType: 'test-doc', renderedContent: 'MyClass' }; processor.$process([doc]); expect(doc.renderedContent).toEqual('MyClass'); }); it('should ignore code items that are already inside a link', () => { aliasMap.addDoc({ docType: 'class', id: 'MyClass', aliases: ['MyClass'], path: 'a/b/myclass' }); const doc = { docType: 'test-doc', renderedContent: '
MyClass
' }; processor.$process([doc]); expect(doc.renderedContent).toEqual('
MyClass
'); }); it('should ignore code items match an API doc but are not in the list of acceptable docTypes', () => { aliasMap.addDoc({ docType: 'directive', id: 'MyClass', aliases: ['MyClass'], path: 'a/b/myclass' }); const doc = { docType: 'test-doc', renderedContent: 'MyClass' }; processor.$process([doc]); expect(doc.renderedContent).toEqual('MyClass'); }); it('should ignore code items that match an API doc but are attached to other text via a dash', () => { aliasMap.addDoc({ docType: 'class', id: 'MyClass', aliases: ['MyClass'], path: 'a/b/myclass' }); const doc = { docType: 'test-doc', renderedContent: 'xyz-MyClass' }; processor.$process([doc]); expect(doc.renderedContent).toEqual('xyz-MyClass'); }); it('should ignore code items that are filtered out by custom filters', () => { autoLinkCode.customFilters = [filterPipes]; aliasMap.addDoc({ docType: 'pipe', id: 'MyClass', aliases: ['MyClass', 'myClass'], path: 'a/b/myclass', pipeOptions: { name: '\'myClass\'' } }); const doc = { docType: 'test-doc', renderedContent: '{ xyz | myClass } { xyz|myClass } MyClass myClass OtherClass|MyClass' }; processor.$process([doc]); expect(doc.renderedContent).toEqual('' + '{ xyz | myClass } ' + '{ xyz|myClass } ' + 'MyClass ' + 'myClass OtherClass|MyClass' + ''); }); it('should insert anchors for individual text nodes within a code block', () => { aliasMap.addDoc({ docType: 'class', id: 'MyClass', aliases: ['MyClass'], path: 'a/b/myclass' }); const doc = { docType: 'test-doc', renderedContent: 'MyClassMyClass' }; processor.$process([doc]); expect(doc.renderedContent).toEqual('MyClassMyClass'); }); it('should insert anchors for words that match within text nodes in a code block', () => { aliasMap.addDoc({ docType: 'class', id: 'MyClass', aliases: ['MyClass'], path: 'a/b/myclass' }); aliasMap.addDoc({ docType: 'function', id: 'myFunc', aliases: ['myFunc'], path: 'ng/myfunc' }); aliasMap.addDoc({ docType: 'const', id: 'MY_CONST', aliases: ['MY_CONST'], path: 'ng/my_const' }); const doc = { docType: 'test-doc', renderedContent: 'myFunc() {\n return new MyClass(MY_CONST);\n}' }; processor.$process([doc]); expect(doc.renderedContent).toEqual('myFunc() {\n return new MyClass(MY_CONST);\n}'); }); it('should work with custom elements', () => { autoLinkCode.codeElements = ['code-example']; aliasMap.addDoc({ docType: 'class', id: 'MyClass', aliases: ['MyClass'], path: 'a/b/myclass' }); const doc = { docType: 'test-doc', renderedContent: 'MyClass' }; processor.$process([doc]); expect(doc.renderedContent).toEqual('MyClass'); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/post-processors/autolink-headings.js000066400000000000000000000026431431412030200327240ustar00rootroot00000000000000const has = require('hast-util-has-property'); const is = require('hast-util-is-element'); const slug = require('rehype-slug'); const visit = require('unist-util-visit'); /** * Get remark to add IDs to headings and inject anchors into them. * This is a stripped-down equivalent of [rehype-autolink-headings](https://github.com/wooorm/rehype-autolink-headings) * that supports ignoring headings with the `no-anchor` class. */ const HEADINGS = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']; const NO_ANCHOR_CLASS = 'no-anchor'; const clone = obj => JSON.parse(JSON.stringify(obj)); const hasClass = (node, cls) => { const className = node.properties.className; return className && className.includes(cls); }; const link = options => tree => visit(tree, node => { if (is(node, HEADINGS) && has(node, 'id') && !hasClass(node, NO_ANCHOR_CLASS)) { node.children.push({ type: 'element', tagName: 'a', properties: Object.assign(clone(options.properties), {href: `#${node.properties.id}`}), children: clone(options.content) }); } }); module.exports = [ slug, [link, { properties: { title: 'Link to this heading', className: ['header-link'], 'aria-hidden': 'true' }, content: [ { type: 'element', tagName: 'i', properties: {className: ['material-icons']}, children: [{ type: 'text', value: 'link' }] } ] }] ]; rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/post-processors/autolink-headings.spec.js000066400000000000000000000042521431412030200336530ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); const plugin = require('./autolink-headings'); describe('autolink-headings postprocessor', () => { let processor; beforeEach(() => { const dgeni = new Dgeni([testPackage('angular-base-package')]); const injector = dgeni.configureInjector(); processor = injector.get('postProcessHtml'); processor.docTypes = ['a']; processor.plugins = [plugin]; }); it('should add anchors to headings', () => { const originalContent = `

Heading 1

Heading with bold

Heading with encoded chars &

`; const processedContent = `

Heading 1link

Heading with boldlink

Heading with encoded chars &link

`; const docs = [{docType: 'a', renderedContent: originalContent}]; processor.$process(docs); expect(docs[0].renderedContent).toBe(processedContent); }); it('should ignore headings with the `no-anchor` class', () => { const originalContent = `

Heading 1

Heading with bold

Heading with encoded chars &

`; const processedContent = `

Heading 1

Heading with bold

Heading with encoded chars &

`; const docs = [{docType: 'a', renderedContent: originalContent}]; processor.$process(docs); expect(docs[0].renderedContent).toBe(processedContent); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/post-processors/h1-checker.js000066400000000000000000000017521431412030200312300ustar00rootroot00000000000000const visit = require('unist-util-visit'); const is = require('hast-util-is-element'); const toString = require('hast-util-to-string'); const filter = require('unist-util-filter'); module.exports = function h1CheckerPostProcessor() { return (ast, file) => { file.headings = { h1: [], h2: [], h3: [], h4: [], h5: [], h6: [], hgroup: [] }; visit(ast, node => { if (is(node, ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hgroup'])) { file.headings[node.tagName].push(getText(node)); } }); file.title = file.headings.h1[0]; if (file.headings.h1.length > 1) { file.fail(`More than one h1 found in ${file}`); } }; }; function getText(h1) { // Remove the aria-hidden anchor from the h1 node const cleaned = filter(h1, node => !( is(node, 'a') && node.properties && (node.properties.ariaHidden === 'true' || node.properties['aria-hidden'] === 'true') )); return cleaned ? toString(cleaned) : ''; } rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/post-processors/h1-checker.spec.js000066400000000000000000000046001431412030200321540ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); const plugin = require('./h1-checker'); describe('h1Checker postprocessor', () => { let processor, createDocMessage; beforeEach(() => { const dgeni = new Dgeni([testPackage('angular-base-package')]); const injector = dgeni.configureInjector(); createDocMessage = injector.get('createDocMessage'); processor = injector.get('postProcessHtml'); processor.docTypes = ['a']; processor.plugins = [plugin]; }); it('should complain if there is more than one h1 in a document', () => { const doc = { docType: 'a', renderedContent: `

Heading 1

Heading 2

Heading 1a

` }; expect(() => processor.$process([doc])).toThrowError(createDocMessage('More than one h1 found in ' + doc.renderedContent, doc)); }); it('should not complain if there is exactly one h1 in a document', () => { const doc = { docType: 'a', renderedContent: `

Heading 1

Heading 2

` }; expect(() => processor.$process([doc])).not.toThrow(); }); it('should not complain if there are no h1s in a document', () => { const doc = { docType: 'a', renderedContent: `

Heading 2

` }; expect(() => processor.$process([doc])).not.toThrow(); }); it('should attach the h1 text to the vFile', () => { const doc = { docType: 'a', renderedContent: '

Heading 1

' }; processor.$process([doc]); expect(doc.vFile.title).toEqual('Heading 1'); }); it('should clean aria-hidden anchors from h1 text added to the vFile', () => { const doc = { docType: 'a', renderedContent: '

' + '' + 'link' + 'What is Angular?' + '

' }; processor.$process([doc]); expect(doc.vFile.title).toEqual('What is Angular?'); }); it('should not break if the h1 is empty (except for an aria-hidden anchor)', () => { const doc = { docType: 'a', renderedContent: `

` }; expect(() => processor.$process([doc])).not.toThrow(); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/000077500000000000000000000000001431412030200257705ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/checkOperator.js000066400000000000000000000004731431412030200311230ustar00rootroot00000000000000module.exports = function checkOperator() { return { $runAfter: ['generateApiListDoc'], $runBefore: ['renderDocsProcessor'], $process(docs) { docs.forEach((doc) => { doc.isOperator = !!(doc.originalModule && doc.originalModule.startsWith('internal/operators')); }); }, }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/checkUnbalancedBackTicks.js000066400000000000000000000020011431412030200331300ustar00rootroot00000000000000var _ = require('lodash'); /** * @dgProcessor checkUnbalancedBackTicks * @description * Searches the rendered content for an odd number of (```) backticks, * which would indicate an unbalanced pair and potentially a typo in the * source content. */ module.exports = function checkUnbalancedBackTicks(log, createDocMessage) { var BACKTICK_REGEX = /^ *```/gm; return { // $runAfter: ['checkAnchorLinksProcessor'], $runAfter: ['inlineTagProcessor'], $runBefore: ['writeFilesProcessor'], $process: function(docs) { _.forEach(docs, function(doc) { if (doc.renderedContent) { var matches = doc.renderedContent.match(BACKTICK_REGEX); if (matches && matches.length % 2 !== 0) { doc.unbalancedBackTicks = true; log.warn(createDocMessage( 'checkUnbalancedBackTicks processor: unbalanced backticks found in rendered content', doc)); log.warn(doc.renderedContent); } } }); } }; };checkUnbalancedBackTicks.spec.js000066400000000000000000000016311431412030200340120ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processorsvar testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('checkUnbalancedBackTicks', function() { var dgeni, injector, processor, log; beforeEach(function() { dgeni = new Dgeni([testPackage('angular-base-package')]); injector = dgeni.configureInjector(); processor = injector.get('checkUnbalancedBackTicks'); log = injector.get('log'); }); it('should warn if there are an odd number of back ticks in the rendered content', function() { var docs = [{ renderedContent: '```\n' + 'code block\n' + '```\n' + '```\n' + 'code block with missing closing back ticks\n' }]; processor.$process(docs); expect(log.warn).toHaveBeenCalledWith( 'checkUnbalancedBackTicks processor: unbalanced backticks found in rendered content - doc'); expect(docs[0].unbalancedBackTicks).toBe(true); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/convertToJson.js000066400000000000000000000020341431412030200311420ustar00rootroot00000000000000module.exports = function convertToJsonProcessor(log, createDocMessage) { return { $runAfter: ['checkUnbalancedBackTicks'], $runBefore: ['writeFilesProcessor'], docTypes: [], $process: function(docs) { const docTypes = this.docTypes; docs.forEach((doc) => { if (docTypes.indexOf(doc.docType) !== -1) { let contents = doc.renderedContent || ''; let title = doc.title; // We do allow an empty `title` but if it is `undefined` we resort to `vFile.title` and then `name` if (title === undefined) { title = (doc.vFile && doc.vFile.title); } if (title === undefined) { title = doc.name; } // If there is still no title then log a warning if (title === undefined) { title = ''; log.warn(createDocMessage('Title property expected', doc)); } doc.renderedContent = JSON.stringify({ id: doc.path, title, contents }, null, 2); } }); } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/convertToJson.spec.js000066400000000000000000000053471431412030200321050ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('convertToJson processor', () => { var dgeni, injector, processor, log; beforeAll(function() { dgeni = new Dgeni([testPackage('angular-base-package')]); injector = dgeni.configureInjector(); processor = injector.get('convertToJsonProcessor'); log = injector.get('log'); processor.docTypes = ['test-doc']; }); it('should be part of the dgeni package', () => { expect(processor).toBeDefined(); }); it('should convert the renderedContent to JSON', () => { const docs = [{ docType: 'test-doc', title: 'The Title', name: 'The Name', path: 'test/doc', renderedContent: 'Some Content' }]; processor.$process(docs); expect(JSON.parse(docs[0].renderedContent).id).toEqual('test/doc'); expect(JSON.parse(docs[0].renderedContent).title).toEqual('The Title'); expect(JSON.parse(docs[0].renderedContent).contents).toEqual('Some Content'); }); it('should get the title from name if no title is specified', () => { const docs = [{ docType: 'test-doc', name: 'The Name' }]; processor.$process(docs); expect(JSON.parse(docs[0].renderedContent).title).toEqual('The Name'); }); it('should accept an empty title', () => { const docs = [{ docType: 'test-doc', title: '' }]; processor.$process(docs); expect(JSON.parse(docs[0].renderedContent).title).toEqual(''); expect(log.warn).not.toHaveBeenCalled(); }); it('should accept an empty name if title is not provided', () => { const docs = [{ docType: 'test-doc', name: '' }]; processor.$process(docs); expect(JSON.parse(docs[0].renderedContent).title).toEqual(''); expect(log.warn).not.toHaveBeenCalled(); }); it('should get the title from the title extracted from the h1 in the rendered content if no title property is specified', () => { const docs = [{ docType: 'test-doc', vFile: { title: 'Some title' }, renderedContent: '

Some title

Article 1

' }]; processor.$process(docs); expect(JSON.parse(docs[0].renderedContent).contents).toEqual('

Some title

Article 1

'); expect(JSON.parse(docs[0].renderedContent).title).toEqual('Some title'); }); it('should set missing titles to empty', () => { const docs = [{ docType: 'test-doc' }]; processor.$process(docs); expect(JSON.parse(docs[0].renderedContent).title).toBe(''); }); it('should log a warning', () => { const docs = [{ docType: 'test-doc' }]; processor.$process(docs); expect(log.warn).toHaveBeenCalledWith('Title property expected - doc (test-doc) '); }); });rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/copyContentAssets.js000066400000000000000000000004041431412030200320140ustar00rootroot00000000000000 module.exports = function copyContentAssetsProcessor(copyFolder) { return { $runBefore: ['postProcessHtml'], assetMappings: [], $process() { this.assetMappings.forEach(map => { copyFolder(map.from, map.to); }); } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/copyContentAssets.spec.js000066400000000000000000000016731431412030200327560ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const Dgeni = require('dgeni'); const factory = require('./copyContentAssets'); describe('extractDecoratedClasses processor', function() { let dgeni, injector, processor; beforeEach(function() { dgeni = new Dgeni([testPackage('angular-content-package')]); injector = dgeni.configureInjector(); processor = injector.get('copyContentAssetsProcessor'); }); it('should exist', () => { expect(processor).toBeDefined(); }); it('should call copyFolder with each mapping', () => { const mockCopyFolder = jasmine.createSpy(); processor = factory(mockCopyFolder); processor.assetMappings.push({ from: 'a/b/c', to: 'x/y/z' }); processor.assetMappings.push({ from: '1/2/3', to: '4/5/6' }); processor.$process(); expect(mockCopyFolder).toHaveBeenCalledWith('a/b/c', 'x/y/z'); expect(mockCopyFolder).toHaveBeenCalledWith('1/2/3', '4/5/6'); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/createSitemap.js000066400000000000000000000021121431412030200311100ustar00rootroot00000000000000module.exports = function createSitemap() { return { blacklistedDocTypes: [ 'navigation-json', 'contributors-json', 'resources-json', ], blacklistedPaths: [ 'test', 'file-not-found', 'overview-dump' ], $runAfter: ['paths-computed'], $runBefore: ['rendering-docs'], $process(docs) { docs.push({ id: 'sitemap.xml', path: 'sitemap.xml', outputPath: '../sitemap.xml', template: 'sitemap.template.xml', urls: docs // Filter out docs that are not outputted .filter(doc => doc.outputPath) // Filter out unwanted docs .filter(doc => this.blacklistedDocTypes.indexOf(doc.docType) === -1) .filter(doc => this.blacklistedPaths.indexOf(doc.path) === -1) // Filter out duplicate renamed exports .filter(doc => !doc.duplicateOf) // Capture the path of each doc .map(doc => doc.path) // Convert the homepage: `index` to `/` .map(path => path === 'index' ? '' : path) }); } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/createSitemap.spec.js000066400000000000000000000050711431412030200320500ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('createSitemap processor', () => { var injector, processor; beforeEach(() => { const dgeni = new Dgeni([testPackage('angular-base-package')]); injector = dgeni.configureInjector(); processor = injector.get('createSitemap'); }); it('should be available from the injector', () => { expect(processor).toBeDefined(); }); it('should run after "paths-computed"', () => { expect(processor.$runAfter).toEqual(['paths-computed']); }); it('should run before "rendering-docs"', () => { expect(processor.$runBefore).toEqual(['rendering-docs']); }); describe('$process', () => { describe('should add a sitemap doc', () => { it('with the correct id, path, outputPath and template properties', () => { const docs = []; processor.$process(docs); expect(docs.pop()).toEqual(jasmine.objectContaining({ id: 'sitemap.xml', path: 'sitemap.xml', outputPath: '../sitemap.xml', template: 'sitemap.template.xml' })); }); it('with an array of urls for each doc that has an outputPath', () => { const docs = [ { path: 'abc', outputPath: 'abc' }, { path: 'cde' }, { path: 'fgh', outputPath: 'fgh' }, ]; processor.$process(docs); expect(docs.pop().urls).toEqual(['abc', 'fgh']); }); it('ignoring blacklisted doc types', () => { const docs = [ { path: 'abc', outputPath: 'abc', docType: 'good' }, { path: 'cde', outputPath: 'cde', docType: 'bad' }, { path: 'fgh', outputPath: 'fgh', docType: 'good' }, ]; processor.blacklistedDocTypes = ['bad']; processor.$process(docs); expect(docs.pop().urls).toEqual(['abc', 'fgh']); }); it('ignoring blacklisted paths', () => { const docs = [ { path: 'abc', outputPath: 'abc' }, { path: 'cde', outputPath: 'cde' }, { path: 'fgh', outputPath: 'fgh' }, ]; processor.blacklistedPaths = ['cde']; processor.$process(docs); expect(docs.pop().urls).toEqual(['abc', 'fgh']); }); it('mapping the home page\'s path to `/`', () => { const docs = [ { path: 'abc', outputPath: 'abc' }, { path: 'index', outputPath: 'index.json' }, { path: 'fgh', outputPath: 'fgh' }, ]; processor.$process(docs); expect(docs.pop().urls).toEqual(['abc', '', 'fgh']); }); }); }); });rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/fixInternalDocumentLinks.js000066400000000000000000000013661431412030200333170ustar00rootroot00000000000000/** * @dgProcessor fixInternalDocumentLinks * @description * Add in the document path to links that start with a hash. * This is important when the web app has a base href in place, * since links like: `` would get mapped to * the URL `base/#some-id` even if the current location is `base/some/doc`. */ module.exports = function fixInternalDocumentLinks() { var INTERNAL_LINK = /(]*href=")(#[^"]*)/g; return { $runAfter: ['inlineTagProcessor'], $runBefore: ['convertToJsonProcessor'], $process: function(docs) { docs.forEach(doc => { doc.renderedContent = doc.renderedContent.replace(INTERNAL_LINK, (_, pre, hash) => { return pre + doc.path + hash; }); }); } }; };fixInternalDocumentLinks.spec.js000066400000000000000000000035501431412030200341660ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processorsconst testPackage = require('../../helpers/test-package'); const processorFactory = require('./fixInternalDocumentLinks'); const Dgeni = require('dgeni'); describe('fixInternalDocumentLinks processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-base-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('fixInternalDocumentLinks'); expect(processor.$process).toBeDefined(); }); it('should run before the correct processor', () => { const processor = processorFactory(); expect(processor.$runBefore).toEqual(['convertToJsonProcessor']); }); it('should run after the correct processor', () => { const processor = processorFactory(); expect(processor.$runAfter).toEqual(['inlineTagProcessor']); }); it('should prefix internal hash links with the current doc path', () => { const processor = processorFactory(); const docs = [ { path: 'some/doc', renderedContent: ` Google Some Id Link to heading Link to heading Link to heading ` }, ]; processor.$process(docs); expect(docs).toEqual([ { path: 'some/doc', renderedContent: ` Google Some Id Link to heading Link to heading Link to heading ` }, ]); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/generateKeywords.js000066400000000000000000000123471431412030200316570ustar00rootroot00000000000000'use strict'; var fs = require('fs'); var path = require('canonical-path'); /** * @dgProcessor generateKeywordsProcessor * @description * This processor extracts all the keywords from each document and creates * a new document that will be rendered as a JavaScript file containing all * this data. */ module.exports = function generateKeywordsProcessor(log, readFilesProcessor) { return { ignoreWordsFile: undefined, propertiesToIgnore: [], docTypesToIgnore: [], outputFolder: '', $validate: { ignoreWordsFile: {}, docTypesToIgnore: {}, propertiesToIgnore: {}, outputFolder: {presence: true} }, $runAfter: ['postProcessHtml'], $runBefore: ['writing-files'], $process: function(docs) { // Keywords to ignore var wordsToIgnore = []; var propertiesToIgnore; var docTypesToIgnore; // Keywords start with "ng:" or one of $, _ or a letter var KEYWORD_REGEX = /^((ng:|[$_a-z])[\w\-_]+)/; // Load up the keywords to ignore, if specified in the config if (this.ignoreWordsFile) { var ignoreWordsPath = path.resolve(readFilesProcessor.basePath, this.ignoreWordsFile); wordsToIgnore = fs.readFileSync(ignoreWordsPath, 'utf8').toString().split(/[,\s\n\r]+/gm); log.debug('Loaded ignore words from "' + ignoreWordsPath + '"'); log.silly(wordsToIgnore); } propertiesToIgnore = convertToMap(this.propertiesToIgnore); log.debug('Properties to ignore', propertiesToIgnore); docTypesToIgnore = convertToMap(this.docTypesToIgnore); log.debug('Doc types to ignore', docTypesToIgnore); var ignoreWordsMap = convertToMap(wordsToIgnore); // If the heading contains a name starting with ng, e.g. "ngController", then add the // name without the ng to the text, e.g. "controller". function preprocessText(text) { return text.replace(/(^|\s)([nN]g([A-Z]\w*))/g, '$1$2 $3'); } function extractWords(text, words, keywordMap) { var tokens = preprocessText(text).toLowerCase().split(/[.\s,`'"#]+/mg); tokens.forEach(function(token) { var match = token.match(KEYWORD_REGEX); if (match) { var key = match[1]; if (!keywordMap[key]) { keywordMap[key] = true; words.push(key); } } }); } const filteredDocs = docs // We are not interested in some docTypes .filter(function(doc) { return !docTypesToIgnore[doc.docType]; }) // Ignore internals and private exports (indicated by the ɵ prefix) .filter(function(doc) { return !doc.internal && !doc.privateExport; }); filteredDocs.forEach(function(doc) { var words = []; var keywordMap = Object.assign({}, ignoreWordsMap); var members = []; var membersMap = Object.assign({}, ignoreWordsMap); const headingWords = []; const headingWordMap = Object.assign({}, ignoreWordsMap); // Search each top level property of the document for search terms Object.keys(doc).forEach(function(key) { const value = doc[key]; if (isString(value) && !propertiesToIgnore[key]) { extractWords(value, words, keywordMap); } // Special case properties that contain content relating to "members" // of a doc that represents, say, a class or interface if (key === 'members' || key === 'statics') { value.forEach(function(member) { extractWords(member.name, members, membersMap); }); } }); // Extract all the keywords from the headings if (doc.vFile && doc.vFile.headings) { Object.keys(doc.vFile.headings).forEach(function(headingTag) { doc.vFile.headings[headingTag].forEach(function(headingText) { extractWords(headingText, headingWords, headingWordMap); }); }); } // Extract the title to use in searches doc.searchTitle = doc.searchTitle || doc.title || doc.vFile && doc.vFile.title || doc.name || ''; // Attach all this search data to the document doc.searchTerms = { titleWords: preprocessText(doc.searchTitle), headingWords: headingWords.sort().join(' '), keywords: words.sort().join(' '), members: members.sort().join(' ') }; }); // Now process all the search data and collect it up to be used in creating a new document var searchData = filteredDocs.map(function(page) { // Copy the properties from the searchTerms object onto the search data object return Object.assign({ path: page.path, title: page.searchTitle, type: page.docType }, page.searchTerms); }); docs.push({ docType: 'json-doc', id: 'search-data-json', path: this.outputFolder + '/search-data.json', outputPath: this.outputFolder + '/search-data.json', data: searchData, renderedContent: JSON.stringify(searchData) }); } }; }; function isString(value) { return typeof value == 'string'; } function convertToMap(collection) { const obj = {}; collection.forEach(key => { obj[key] = true; }); return obj; }rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/generateKeywords.spec.js000066400000000000000000000145051431412030200326060ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const mockLogger = require('dgeni/lib/mocks/log')(false); const processorFactory = require('./generateKeywords'); const Dgeni = require('dgeni'); const mockReadFilesProcessor = { basePath: 'base/path' }; describe('generateKeywords processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-base-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('generateKeywordsProcessor'); expect(processor.$process).toBeDefined(); }); it('should run after the correct processor', () => { const processor = processorFactory(mockLogger, mockReadFilesProcessor); expect(processor.$runAfter).toEqual(['postProcessHtml']); }); it('should run before the correct processor', () => { const processor = processorFactory(mockLogger, mockReadFilesProcessor); expect(processor.$runBefore).toEqual(['writing-files']); }); it('should ignore internal and private exports', () => { const processor = processorFactory(mockLogger, mockReadFilesProcessor); const docs = [ { docType: 'class', name: 'PublicExport' }, { docType: 'class', name: 'PrivateExport', privateExport: true }, { docType: 'class', name: 'InternalExport', internal: true } ]; processor.$process(docs); expect(docs[docs.length - 1].data).toEqual([ jasmine.objectContaining({ title: 'PublicExport', type: 'class'}) ]); }); it('should compute `doc.searchTitle` from the doc properties if not already provided', () => { const processor = processorFactory(mockLogger, mockReadFilesProcessor); const docs = [ { docType: 'class', name: 'A', searchTitle: 'searchTitle A', title: 'title A', vFile: { headings: { h1: ['vFile A'] } } }, { docType: 'class', name: 'B', title: 'title B', vFile: { headings: { h1: ['vFile B'] } } }, { docType: 'class', name: 'C', vFile: { title: 'vFile C', headings: { h1: ['vFile C'] } } }, { docType: 'class', name: 'D' }, ]; processor.$process(docs); expect(docs[docs.length - 1].data).toEqual([ jasmine.objectContaining({ title: 'searchTitle A' }), jasmine.objectContaining({ title: 'title B' }), jasmine.objectContaining({ title: 'vFile C' }), jasmine.objectContaining({ title: 'D' }), ]); }); it('should use `doc.searchTitle` as the title in the search index', () => { const processor = processorFactory(mockLogger, mockReadFilesProcessor); const docs = [ { docType: 'class', name: 'PublicExport', searchTitle: 'class PublicExport' }, ]; processor.$process(docs); const keywordsDoc = docs[docs.length - 1]; expect(keywordsDoc.data).toEqual([ jasmine.objectContaining({ title: 'class PublicExport', type: 'class'}) ]); }); it('should add title words to the search terms', () => { const processor = processorFactory(mockLogger, mockReadFilesProcessor); const docs = [ { docType: 'class', name: 'PublicExport', searchTitle: 'class PublicExport', vFile: { headings: { h2: ['heading A', 'heading B'] } } }, ]; processor.$process(docs); const keywordsDoc = docs[docs.length - 1]; expect(keywordsDoc.data[0].titleWords).toEqual('class PublicExport'); }); it('should add heading words to the search terms', () => { const processor = processorFactory(mockLogger, mockReadFilesProcessor); const docs = [ { docType: 'class', name: 'PublicExport', searchTitle: 'class PublicExport', vFile: { headings: { h2: ['Important heading', 'Secondary heading'] } } }, ]; processor.$process(docs); const keywordsDoc = docs[docs.length - 1]; expect(keywordsDoc.data[0].headingWords).toEqual('heading important secondary'); }); it('should add member doc properties to the search terms', () => { const processor = processorFactory(mockLogger, mockReadFilesProcessor); const docs = [ { docType: 'class', name: 'PublicExport', searchTitle: 'class PublicExport', vFile: { headings: { h2: ['heading A'] } }, content: 'Some content with ngClass in it.', members: [ { name: 'instanceMethodA' }, { name: 'instancePropertyA' }, { name: 'instanceMethodB' }, { name: 'instancePropertyB' }, ], statics: [ { name: 'staticMethodA' }, { name: 'staticPropertyA' }, { name: 'staticMethodB' }, { name: 'staticPropertyB' }, ], }, ]; processor.$process(docs); const keywordsDoc = docs[docs.length - 1]; expect(keywordsDoc.data[0].members).toEqual( 'instancemethoda instancemethodb instancepropertya instancepropertyb staticmethoda staticmethodb staticpropertya staticpropertyb' ); }); it('should process terms prefixed with "ng" to include the term stripped of "ng"', () => { const processor = processorFactory(mockLogger, mockReadFilesProcessor); const docs = [ { docType: 'class', name: 'PublicExport', searchTitle: 'ngController', vFile: { headings: { h2: ['ngModel'] } }, content: 'Some content with ngClass in it.' }, ]; processor.$process(docs); const keywordsDoc = docs[docs.length - 1]; expect(keywordsDoc.data[0].titleWords).toEqual('ngController Controller'); expect(keywordsDoc.data[0].headingWords).toEqual('model ngmodel'); expect(keywordsDoc.data[0].keywords).toContain('class'); expect(keywordsDoc.data[0].keywords).toContain('ngclass'); }); it('should generate renderedContent property', () => { const processor = processorFactory(mockLogger, mockReadFilesProcessor); const docs = [ { docType: 'class', name: 'SomeClass', description: 'The is the documentation for the SomeClass API.', vFile: { headings: { h1: ['SomeClass'], h2: ['Some heading'] } } }, ]; processor.$process(docs); const keywordsDoc = docs[docs.length - 1]; expect(JSON.parse(keywordsDoc.renderedContent)).toEqual( [{ 'title':'SomeClass', 'type':'class', 'titleWords':'SomeClass', 'headingWords':'heading some someclass', 'keywords':'api class documentation for is someclass the', 'members':'' }] ); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/renderLinkInfo.js000066400000000000000000000035041431412030200312410ustar00rootroot00000000000000/** * @dgProcessor renderLinkInfo * @description For each doc that has one of the specified docTypes, * add HTML comments that describe the links to and from the doc. */ module.exports = function renderLinkInfo(extractLinks) { return { docTypes: [], $runBefore: ['convertToJsonProcessor'], $runAfter: ['fixInternalDocumentLinks'], $process(docs) { const toLinks = {}; const fromLinks = {}; const docsToCheck = docs.filter(doc => this.docTypes.indexOf(doc.docType) !== -1); // Extract and store all links found in each doc in hashes docsToCheck.forEach(doc => { const linksFromDoc = extractLinks(doc.renderedContent).hrefs; // Update the hashes fromLinks[doc.path] = linksFromDoc; linksFromDoc.forEach(linkPath => { linkPath = linkPath.match(/^[^#?]+/)[0]; // remove the query and hash from the link (toLinks[linkPath] = toLinks[linkPath] || []).push(doc.path); }); }); // Add HTML comments to the end of the rendered content that list the links found above docsToCheck.forEach(doc => { const linksFromDoc = getLinks(fromLinks, doc.path); const linksToDoc = getLinks(toLinks, doc.path); doc.renderedContent += `\n\n` + ``; }); } }; }; function getLinks(hash, docPath) { const links = (hash[docPath] || []).filter(link => link !== docPath); const internal = {}; const external = {}; links.forEach(link => { if (/^[^:/#?]+:/.test(link)) { external[link] = true; } else { internal[link] = true; } }); return Object.keys(internal).sort() .concat(Object.keys(external).sort()); } rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/processors/renderLinkInfo.spec.js000066400000000000000000000202701431412030200321710ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const processorFactory = require('./renderLinkInfo'); const extractLinks = require('dgeni-packages/base/services/extractLinks')(); const Dgeni = require('dgeni'); describe('renderLinkInfo processor', () => { it('should be available on the injector', () => { const dgeni = new Dgeni([testPackage('angular-base-package')]); const injector = dgeni.configureInjector(); const processor = injector.get('renderLinkInfo'); expect(processor.$process).toBeDefined(); }); it('should run before the correct processor', () => { const processor = processorFactory(extractLinks); expect(processor.$runBefore).toEqual(['convertToJsonProcessor']); }); it('should run after the correct processor', () => { const processor = processorFactory(extractLinks); expect(processor.$runAfter).toEqual(['fixInternalDocumentLinks']); }); it('should add HTML comments for links out of docs', () => { const processor = processorFactory(extractLinks); processor.docTypes = ['test']; const docs = [ { path: 'test-1', docType: 'test', renderedContent: '' }, { path: 'test-2', docType: 'test', renderedContent: '' }, ]; processor.$process(docs); expect(docs).toEqual([ { path: 'test-1', docType: 'test', renderedContent: '\n' + '\n' + '' }, { path: 'test-2', docType: 'test', renderedContent: '\n' + '\n' + '' }, ]); }); it('should order links alphabetically', () => { const processor = processorFactory(extractLinks); processor.docTypes = ['test']; const docs = [ { path: 'test-1', docType: 'test', renderedContent: '' }, ]; processor.$process(docs); expect(docs).toEqual([ { path: 'test-1', docType: 'test', renderedContent: '\n' + '\n' + '' }, ]); }); it('should list repeated links only once', () => { const processor = processorFactory(extractLinks); processor.docTypes = ['test']; const docs = [ { path: 'test-1', docType: 'test', renderedContent: '' }, ]; processor.$process(docs); expect(docs).toEqual([ { path: 'test-1', docType: 'test', renderedContent: '\n' + '\n' + '' }, ]); }); it('should list internal links before external', () => { const processor = processorFactory(extractLinks); processor.docTypes = ['test']; const docs = [ { path: 'test-1', docType: 'test', renderedContent: '' }, ]; processor.$process(docs); expect(docs).toEqual([ { path: 'test-1', docType: 'test', renderedContent: '\n' + '\n' + '' }, ]); }); it('should ignore docs that do not have the specified docType', () => { const processor = processorFactory(extractLinks); processor.docTypes = ['test']; const docs = [ { path: 'test-1', docType: 'test', renderedContent: '' }, { path: 'test-2', docType: 'test2', renderedContent: '' }, ]; processor.$process(docs); expect(docs).toEqual([ { path: 'test-1', docType: 'test', renderedContent: '\n' + '\n' + '' }, { path: 'test-2', docType: 'test2', renderedContent: '' }, ]); }); it('should add HTML comments for links into docs', () => { const processor = processorFactory(extractLinks); processor.docTypes = ['test']; const docs = [ { path: 'test-1', docType: 'test', renderedContent: '' }, { path: 'test-2', docType: 'test', renderedContent: '' }, { path: 'test-3', docType: 'test', renderedContent: '' }, ]; processor.$process(docs); expect(docs).toEqual([ { path: 'test-1', docType: 'test', renderedContent: '\n' + '\n' + '' }, { path: 'test-2', docType: 'test', renderedContent: '\n' + '\n' + '' }, { path: 'test-3', docType: 'test', renderedContent: '\n' + '\n' + '' }, ]); }); it('should not include links to themselves', () => { const processor = processorFactory(extractLinks); processor.docTypes = ['test']; const docs = [ { path: 'test-1', docType: 'test', renderedContent: '' }, { path: 'test-2', docType: 'test', renderedContent: '' }, ]; processor.$process(docs); expect(docs).toEqual([ { path: 'test-1', docType: 'test', renderedContent: '\n' + '\n' + '' }, { path: 'test-2', docType: 'test', renderedContent: '\n' + '\n' + '' }, ]); }); it('should match links that contain fragments or queries', () => { const processor = processorFactory(extractLinks); processor.docTypes = ['test']; const docs = [ { path: 'test-1', docType: 'test', renderedContent: '' }, { path: 'test-2', docType: 'test', renderedContent: '' }, { path: 'test-3', docType: 'test', renderedContent: '' }, ]; processor.$process(docs); expect(docs).toEqual([ { path: 'test-1', docType: 'test', renderedContent: '\n' + '\n' + '' }, { path: 'test-2', docType: 'test', renderedContent: '\n' + '\n' + '' }, { path: 'test-3', docType: 'test', renderedContent: '\n' + '\n' + '' }, ]); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/readers/000077500000000000000000000000001431412030200252135ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/readers/json.js000066400000000000000000000007671431412030200265340ustar00rootroot00000000000000/** * Read in JSON files */ module.exports = function jsonFileReader() { return { name: 'jsonFileReader', getDocs: function(fileInfo) { // We return a single element array because content files only contain one document return [{ docType: fileInfo.baseName + '-json', data: JSON.parse(fileInfo.content), template: 'json-doc.template.json', id: fileInfo.baseName, aliases: [fileInfo.baseName, fileInfo.relativePath] }]; } }; };rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/rendering/000077500000000000000000000000001431412030200255435ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/rendering/filterByPropertyValue.js000066400000000000000000000003531431412030200324240ustar00rootroot00000000000000module.exports = function filterBy() { return { name: 'filterByPropertyValue', process: function(list, property, value) { if (!list) return list; return list.filter(item => item[property] === value); } }; };rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/rendering/filterByPropertyValue.spec.js000066400000000000000000000010401431412030200333470ustar00rootroot00000000000000const factory = require('./filterByPropertyValue'); describe('filterByPropertyValue filter', () => { let filter; beforeEach(function() { filter = factory(); }); it('should be called "filterByPropertyValue"', function() { expect(filter.name).toEqual('filterByPropertyValue'); }); it('should filter out items that do not match the given property value', function() { expect(filter.process([{ a: 1 }, { a: 2 }, { b: 1 }, { a: 1, b: 2 }, { a: null }, { a: undefined }], 'a', 1)) .toEqual([{ a: 1 }, { a: 1, b: 2 }]); }); });rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/rendering/indentForMarkdown.js000066400000000000000000000035321431412030200315370ustar00rootroot00000000000000module.exports = function() { // var MIXIN_PATTERN = /\S*\+\S*\(.*/; return { name: 'indentForMarkdown', process: function(str, width) { if (str == null || str.length === 0) { return ''; } width = width || 4; var lines = str.split('\n'); var newLines = []; var sp = spaces(width); var spMixin = spaces(width - 2); var isAfterMarkdownTag = true; lines.forEach(function(line) { // indent lines that match mixin pattern by 2 less than specified width if (line.indexOf('{@example') >= 0) { if (isAfterMarkdownTag) { // happens if example follows example if (newLines.length > 0) { newLines.pop(); } else { // weird case - first expression in str is an @example // in this case the :marked appear above the str passed in, // so we need to put 'something' into the markdown tag. newLines.push(sp + '.'); // '.' is a dummy char } } newLines.push(spMixin + line); // after a mixin line we need to reenter markdown. newLines.push(spMixin + ':marked'); isAfterMarkdownTag = true; } else { if ((!isAfterMarkdownTag) || (line.trim().length > 0)) { newLines.push(sp + line); isAfterMarkdownTag = false; } } }); if (isAfterMarkdownTag) { if (newLines.length > 0) { // if last line is a markdown tag remove it. newLines.pop(); } } // force character to be a newLine. if (newLines.length > 0) newLines.push(''); var res = newLines.join('\n'); return res; } }; function spaces(n) { var str = ''; for (var i = 0; i < n; i++) { str += ' '; } return str; } }; rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/rendering/toId.js000066400000000000000000000002311431412030200267740ustar00rootroot00000000000000module.exports = function toId() { return { name: 'toId', process: function(str) { return str.replace(/[^(a-z)(A-Z)(0-9)._-]/g, '-'); } }; };rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/rendering/toId.spec.js000066400000000000000000000007621431412030200277360ustar00rootroot00000000000000var factory = require('./toId'); describe('toId filter', function() { var filter; beforeEach(function() { filter = factory(); }); it('should be called "toId"', function() { expect(filter.name).toEqual('toId'); }); it('should convert a string to make it appropriate for use as an HTML id', function() { expect(filter.process('This is a big string with €bad#characters¢\nAnd even NewLines')) .toEqual('This-is-a-big-string-with--bad-characters--And-even-NewLines'); }); });rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/rendering/trimBlankLines.js000066400000000000000000000005611431412030200310210ustar00rootroot00000000000000module.exports = function() { return { name: 'trimBlankLines', process: function(str) { var lines = str.split(/\r?\n/); while (lines.length && (lines[0].trim() === '')) { lines.shift(); } while (lines.length && (lines[lines.length - 1].trim() === '')) { lines.pop(); } return lines.join('\n'); } }; };rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/rendering/trimBlankLines.spec.js000066400000000000000000000007321431412030200317520ustar00rootroot00000000000000var factory = require('./trimBlankLines'); describe('trimBlankLines filter', function() { var filter; beforeEach(function() { filter = factory(); }); it('should be called "trimBlankLines"', function() { expect(filter.name).toEqual('trimBlankLines'); }); it('should remove empty lines from the start and end of the string', function() { expect(filter.process('\n \n\nsome text\n \nmore text\n \n')) .toEqual('some text\n \nmore text'); }); });rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/rendering/truncateCode.js000066400000000000000000000026511431412030200305250ustar00rootroot00000000000000module.exports = function() { return { name: 'truncateCode', process: function(str, lines) { if (lines === undefined) return str; const parts = str && str.split && str.split(/\r?\n/); if (parts && parts.length > lines) { return balance(parts[0] + '...', ['{', '(', '['], ['}', ')', ']']); } else { return str; } } }; }; /** * Try to balance the brackets by adding closers on to the end of a string * for every bracket that is left open. * The chars at each index in the openers and closers should match (i.e openers = ['{', '('], closers = ['}', ')']) * * @param {string} str The string to balance * @param {string[]} openers an array of chars that open a bracket * @param {string[]} closers an array of chars that close a brack * @returns the balanced string */ function balance(str, openers, closers) { const stack = []; // Add each open bracket to the stack, removing them when there is a matching closer str.split('').forEach(function(char) { const closerIndex = closers.indexOf(char); if (closerIndex !== -1 && stack[stack.length-1] === closerIndex) { stack.pop(); } else { const openerIndex = openers.indexOf(char); if (openerIndex !== -1) { stack.push(openerIndex); } } }); // Now the stack should contain all the unclosed brackets while(stack.length) { str += closers[stack.pop()]; } return str; }rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/rendering/truncateCode.spec.js000066400000000000000000000030371431412030200314550ustar00rootroot00000000000000var factory = require('./truncateCode'); describe('truncateCode filter', function() { var filter; beforeEach(function() { filter = factory(); }); it('should be called "truncateCode"', function() { expect(filter.name).toEqual('truncateCode'); }); it('should return the whole string given lines is undefined', function() { expect(filter.process('some text\n \nmore text\n \n')) .toEqual('some text\n \nmore text\n \n'); }); it('should return the whole string if less than the given number of lines', function() { expect(filter.process('this is a pretty long string that only exists on one line', 1)) .toEqual('this is a pretty long string that only exists on one line'); expect(filter.process('this is a pretty long string\nthat exists on two lines', 2)) .toEqual('this is a pretty long string\nthat exists on two lines'); }); it('should return the specified number of lines and an ellipsis if there are more lines', function() { expect(filter.process('some text\n \nmore text\n \n', 1)).toEqual('some text...'); }); it('should add closing brackets for all the unclosed opening brackets after truncating', function() { expect(filter.process('()[]{}\nsecond line', 1)).toEqual('()[]{}...'); expect(filter.process('([]{}\nsecond line', 1)).toEqual('([]{}...)'); expect(filter.process('()[{}\nsecond line', 1)).toEqual('()[{}...]'); expect(filter.process('()[]{\nsecond line', 1)).toEqual('()[]{...}'); expect(filter.process('([{\nsecond line', 1)).toEqual('([{...}])'); }); });rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/services/000077500000000000000000000000001431412030200254115ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/services/copyFolder.js000066400000000000000000000002001431412030200300450ustar00rootroot00000000000000const {copySync} = require('fs-extra'); module.exports = function copyFolder() { return (from, to) => copySync(from, to); }; filterAmbiguousDirectiveAliases.js000066400000000000000000000020221431412030200341660ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/services /** * This service is used by the autoLinkCode post-processor to filter out ambiguous directive * docs where the matching word is a directive selector. * E.g. `ngModel`, which is a selector for a number of directives, where we are only really * interested in the `NgModel` class. */ module.exports = function filterAmbiguousDirectiveAliases() { return (docs, words, index) => { const word = words[index]; // we are only interested if there are multiple matching docs if (docs.length > 1) { if (docs.every(doc => // We are only interested if they are all either directives or components (doc.docType === 'directive' || doc.docType === 'component') && // and the matching word is in the selector for all of them doc[doc.docType + 'Options'].selector.indexOf(word) != -1 )) { // find the directive whose class name matches the word (case-insensitive) return docs.filter(doc => doc.name.toLowerCase() === word.toLowerCase()); } } return docs; }; }; filterAmbiguousDirectiveAliases.spec.js000066400000000000000000000050721431412030200351270ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/servicesconst filterAmbiguousDirectiveAliases = require('./filterAmbiguousDirectiveAliases')(); const words = ['Http', 'ngModel', 'NgModel', 'NgControlStatus']; describe('filterAmbiguousDirectiveAliases(docs, words, index)', () => { it('should not try to filter the docs, if the docs are not all directives or components', () => { const docs = [ { docType: 'class', name: 'Http' }, { docType: 'directive', name: 'NgModel', directiveOptions: { selector: '[ngModel]' } }, { docType: 'component', name: 'NgModel', componentOptions: { selector: '[ngModel]' } } ]; // take a copy to prove `docs` was not modified const filteredDocs = docs.slice(0); expect(filterAmbiguousDirectiveAliases(docs, words, 1)).toEqual(filteredDocs); expect(filterAmbiguousDirectiveAliases(docs, words, 2)).toEqual(filteredDocs); }); describe('(where all the docs are components or directives', () => { describe('and do not all contain the matching word in their selector)', () => { it('should not try to filter the docs', () => { const docs = [ { docType: 'directive', name: 'NgModel', ['directiveOptions']: { selector: '[ngModel]' } }, { docType: 'component', name: 'NgControlStatus', ['componentOptions']: { selector: '[ngControlStatus]' } } ]; // take a copy to prove `docs` was not modified const filteredDocs = docs.slice(0); expect(filterAmbiguousDirectiveAliases(docs, words, 1)).toEqual(filteredDocs); expect(filterAmbiguousDirectiveAliases(docs, words, 2)).toEqual(filteredDocs); // Also test that the check is case-sensitive docs[1].componentOptions.selector = '[ngModel]'; filteredDocs[1].componentOptions.selector = '[ngModel]'; expect(filterAmbiguousDirectiveAliases(docs, words, 2)).toEqual(filteredDocs); }); }); describe('and do all contain the matching word in there selector)', () => { it('should filter out docs whose class name is not (case-insensitively) equal to the matching word', () => { const docs = [ { docType: 'directive', name: 'NgModel', ['directiveOptions']: { selector: '[ngModel],[ngControlStatus]' } }, { docType: 'component', name: 'NgControlStatus', ['componentOptions']: { selector: '[ngModel],[ngControlStatus]' } } ]; const filteredDocs = [ { docType: 'directive', name: 'NgModel', ['directiveOptions']: { selector: '[ngModel],[ngControlStatus]' } } ]; expect(filterAmbiguousDirectiveAliases(docs, words, 1)).toEqual(filteredDocs); }); }); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/services/filterFromInImports.spec.js000066400000000000000000000015161431412030200326610ustar00rootroot00000000000000const filterFromInImports = require('./filterFromInImports')(); const words = ['import', ' { ', 'from', ' } ', 'from', ' \'', 'rxjs', '\';']; const words2 = [' } ', 'from', '(', 'of']; describe('filterFromInImports(words, index)', () => { it('should not filter the word, if the word is not "from"', () => { expect(filterFromInImports(words, 0)).toEqual(false); }); it('should not filter the word, if the word "from" is not positioned between } and \' signs', () => { expect(filterFromInImports(words, 2)).toEqual(false); }); it('should filter "from" when "from" is positioned between } and \' signs', () => { expect(filterFromInImports(words, 4)).toEqual(true); }); it('should not filter "from" when "from" is after } but not before \'', () => { expect(filterFromInImports(words2, 1)).toEqual(false); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/services/filterFromInImports.ts000066400000000000000000000012451431412030200317410ustar00rootroot00000000000000/** * This filter is filtering word 'from' in ES6 import statements. * For example, next line: * * ``` * import { interval, from } from 'rxjs'; * ``` * * will filter the second occurrence of the word 'from' leaving * it without the link, but the first occurrence will remain * unfiltered, thus it will get the link to * /api/index/function/from */ module.exports = function filterFromInImports(): (words: string[], index: number) => boolean { return (words: string[], index: number) => { const previousWord = words[index - 1]; const nextWord = words[index + 1]; return words[index] === 'from' && /}/.test(previousWord) && /'/.test(nextWord); }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/services/filterNeverAsGeneric.spec.js000066400000000000000000000012301431412030200327420ustar00rootroot00000000000000const filterNeverAsGeneric = require('./filterNeverAsGeneric')(); const words = ['const', ' ', 'never', ': ', 'Observable', '<', 'never', '>;']; describe('filterNeverAsGeneric(words, index)', () => { it('should not filter the word, if the word is not "never"', () => { expect(filterNeverAsGeneric(words, 0)).toEqual(false); }); it('should not filter the word, if the word "never" is not positioned between < and > signs', () => { expect(filterNeverAsGeneric(words, 2)).toEqual(false); }); it('should filter "never" when "never" is positioned between < and > signs', () => { expect(filterNeverAsGeneric(words, 6)).toEqual(true); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/services/filterNeverAsGeneric.ts000066400000000000000000000013511431412030200320270ustar00rootroot00000000000000/** * This filter is filtering word 'never' when 'never' appears as * generic type. For example, next line: * * ``` * const NEVER: Observable; * ``` * * will filter 'never' in generic declaration of Observable type. * * This filter is not perfect at all and does not include many * cases, such as multiple generic parameter (e.g. ), * but it should be enough to cover the most use cases. */ module.exports = function filterNeverAsGeneric(): (words: string[], index: number) => boolean { return (words: string[], index: number) => { const previousWord = words[index - 1]; const nextWord = words[index + 1]; return words[index] === 'never' && //.test(nextWord); }; }; rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/services/filterPipes.js000066400000000000000000000006361431412030200302420ustar00rootroot00000000000000 /** * This service is used by the autoLinkCode post-processors to filter out pipe docs * where the matching word is the pipe name and is not preceded by a pipe */ module.exports = function filterPipes() { return (docs, words, index) => docs.filter(doc => doc.docType !== 'pipe' || doc.pipeOptions.name !== '\'' + words[index] + '\'' || index > 0 && words[index - 1].trim() === '|'); }; rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/services/filterPipes.spec.js000066400000000000000000000032171431412030200311710ustar00rootroot00000000000000const filterPipes = require('./filterPipes')(); describe('filterPipes', () => { it('should ignore docs that are not pipes', () => { const docs = [{ docType: 'class', name: 'B', pipeOptions: { name: '\'b\'' } }]; const words = ['A', 'b', 'B', 'C']; const filteredDocs = [{ docType: 'class', name: 'B', pipeOptions: { name: '\'b\'' } }]; expect(filterPipes(docs, words, 1)).toEqual(filteredDocs); expect(filterPipes(docs, words, 2)).toEqual(filteredDocs); }); it('should ignore docs that are pipes but do not match the pipe name', () => { const docs = [{ docType: 'pipe', name: 'B', pipeOptions: { name: '\'b\'' } }]; const words = ['A', 'B', 'C']; const filteredDocs = [{ docType: 'pipe', name: 'B', pipeOptions: { name: '\'b\'' } }]; expect(filterPipes(docs, words, 1)).toEqual(filteredDocs); }); it('should ignore docs that are pipes, match the pipe name and are preceded by a pipe character', () => { const docs = [{ docType: 'pipe', name: 'B', pipeOptions: { name: '\'b\'' } }]; const words = ['A', '|', 'b', 'C']; const filteredDocs = [{ docType: 'pipe', name: 'B', pipeOptions: { name: '\'b\'' } }]; expect(filterPipes(docs, words, 2)).toEqual(filteredDocs); }); it('should filter out docs that are pipes, match the pipe name but are not preceded by a pipe character', () => { const docs = [ { docType: 'pipe', name: 'B', pipeOptions: { name: '\'b\'' } }, { docType: 'class', name: 'B' } ]; const words = ['A', 'b', 'C']; const index = 1; const filteredDocs = [{ docType: 'class', name: 'B' }]; expect(filterPipes(docs, words, index)).toEqual(filteredDocs); }); }); rxjs-7.5.7/docs_app/tools/transforms/angular-base-package/services/getImageDimensions.js000066400000000000000000000003101431412030200315140ustar00rootroot00000000000000const { resolve } = require('canonical-path'); const sizeOf = require('image-size'); module.exports = function getImageDimensions() { return (basePath, path) => sizeOf(resolve(basePath, path)); }; rxjs-7.5.7/docs_app/tools/transforms/angular-content-package/000077500000000000000000000000001431412030200243265ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-content-package/index.js000066400000000000000000000052331431412030200257760ustar00rootroot00000000000000/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ const Package = require('dgeni').Package; const basePackage = require('../angular-base-package'); const contentPackage = require('../content-package'); const { CONTENTS_PATH } = require('../config'); module.exports = new Package('angular-content', [basePackage, contentPackage]) // Where do we get the source files? .config(function(readFilesProcessor) { readFilesProcessor.sourceFiles = readFilesProcessor.sourceFiles.concat([ { basePath: CONTENTS_PATH, include: CONTENTS_PATH + '/{deprecations,guide,tutorial}/**/*.md', fileReader: 'contentFileReader' }, { basePath: CONTENTS_PATH + '/marketing', include: CONTENTS_PATH + '/marketing/**/*.{html,md}', fileReader: 'contentFileReader' }, { basePath: CONTENTS_PATH, include: CONTENTS_PATH + '/*.md', exclude: [CONTENTS_PATH + '/index.md'], fileReader: 'contentFileReader' }, { basePath: CONTENTS_PATH, include: CONTENTS_PATH + '/navigation.json', fileReader: 'jsonFileReader' }, { basePath: CONTENTS_PATH, include: CONTENTS_PATH + '/marketing/contributors.json', fileReader: 'jsonFileReader' }, { basePath: CONTENTS_PATH, include: CONTENTS_PATH + '/marketing/announcements.json', fileReader: 'jsonFileReader' }, ]); }) // Configure jsdoc-style tag parsing .config(function(inlineTagProcessor) { inlineTagProcessor.inlineTagDefinitions.push(require('./inline-tag-defs/anchor')); }) .config(function(computePathsProcessor) { // Replace any path templates inherited from other packages // (we want full and transparent control) computePathsProcessor.pathTemplates = computePathsProcessor.pathTemplates.concat([ { docTypes: ['content'], getPath: (doc) => `${doc.id.replace(/\/index$/, '')}`, outputPathTemplate: '${path}.json' }, {docTypes: ['navigation-json'], pathTemplate: '${id}', outputPathTemplate: '../${id}.json'}, {docTypes: ['contributors-json'], pathTemplate: '${id}', outputPathTemplate: '../${id}.json'}, {docTypes: ['announcements-json'], pathTemplate: '${id}', outputPathTemplate: '../${id}.json'} ]); }) // We want the content files to be converted .config(function(convertToJsonProcessor, postProcessHtml) { convertToJsonProcessor.docTypes.push('content'); postProcessHtml.docTypes.push('content'); }); rxjs-7.5.7/docs_app/tools/transforms/angular-content-package/inline-tag-defs/000077500000000000000000000000001431412030200272745ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular-content-package/inline-tag-defs/anchor.js000066400000000000000000000003461431412030200311070ustar00rootroot00000000000000module.exports = { name: 'a', description: 'A shorthand for creating heading anchors. Usage: `{@a some-id}`', handler: function(doc, tagName, tagDescription) { return ''; } }; rxjs-7.5.7/docs_app/tools/transforms/angular.io-package/000077500000000000000000000000001431412030200232645ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular.io-package/index.js000066400000000000000000000054301431412030200247330ustar00rootroot00000000000000/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ const Package = require('dgeni').Package; const gitPackage = require('dgeni-packages/git'); const apiPackage = require('../angular-api-package'); const contentPackage = require('../angular-content-package'); const { extname, resolve } = require('canonical-path'); const { existsSync } = require('fs'); const { SRC_PATH } = require('../config'); module.exports = new Package('angular.io', [gitPackage, apiPackage, contentPackage]) // This processor relies upon the versionInfo. See below... .processor(require('./processors/processNavigationMap')) .processor(require('./processors/createOverviewDump')) .processor(require('./processors/cleanGeneratedFiles')) // We don't include this in the angular-base package because the `versionInfo` stuff // accesses the file system and git, which is slow. .config(function(renderDocsProcessor, versionInfo) { // Add the version data to the renderer, for use in things like github links renderDocsProcessor.extraData.versionInfo = versionInfo; }) .config(function(checkAnchorLinksProcessor, linkInlineTagDef, renderExamples) { // Fail the processing if there is an invalid link linkInlineTagDef.failOnBadLink = false; checkAnchorLinksProcessor.$enabled = false; // since we encode the HTML to JSON we need to ensure that this processor runs before that encoding happens. checkAnchorLinksProcessor.$runBefore = ['convertToJsonProcessor']; checkAnchorLinksProcessor.$runAfter = ['fixInternalDocumentLinks']; // We only want to check docs that are going to be output as JSON docs. checkAnchorLinksProcessor.checkDoc = (doc) => doc.path && doc.outputPath && extname(doc.outputPath) === '.json'; // Since we have a `base[href="/"]` arrangement all links are relative to that and not relative to the source document's path checkAnchorLinksProcessor.base = '/'; // Ignore links to local assets // (This is not optimal in terms of performance without making changes to dgeni-packages there is no other way. // That being said do this only add 500ms onto the ~30sec doc-gen run - so not a huge issue) checkAnchorLinksProcessor.ignoredLinks.push({ test(url) { return (existsSync(resolve(SRC_PATH, url))); } }); checkAnchorLinksProcessor.pathVariants = ['', '/', '.html', '/index.html', '#top-of-page']; checkAnchorLinksProcessor.errorOnUnmatchedLinks = false; // Make sure we fail if the examples are not right renderExamples.ignoreBrokenExamples = false; }) .config(function(renderLinkInfo, postProcessHtml) { renderLinkInfo.docTypes = postProcessHtml.docTypes; }); rxjs-7.5.7/docs_app/tools/transforms/angular.io-package/processors/000077500000000000000000000000001431412030200254665ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/angular.io-package/processors/cleanGeneratedFiles.js000066400000000000000000000004001431412030200317020ustar00rootroot00000000000000const rimraf = require('rimraf'); module.exports = function cleanGeneratedFiles() { return { $runAfter: ['writing-files'], $runBefore: ['writeFilesProcessor'], $process: function() { rimraf.sync('src/generated/{*.json}'); } }; }; rxjs-7.5.7/docs_app/tools/transforms/angular.io-package/processors/createOverviewDump.js000066400000000000000000000010671431412030200316500ustar00rootroot00000000000000var _ = require('lodash'); module.exports = function createOverviewDump() { return { $runAfter: ['processing-docs'], $runBefore: ['docs-processed'], $process: function(docs) { var overviewDoc = { id: 'overview-dump', aliases: ['overview-dump'], path: 'overview-dump', outputPath: 'overview-dump.html', modules: [] }; _.forEach(docs, function(doc) { if (doc.docType === 'module') { overviewDoc.modules.push(doc); } }); docs.push(overviewDoc); } }; };rxjs-7.5.7/docs_app/tools/transforms/angular.io-package/processors/processNavigationMap.js000066400000000000000000000032721431412030200321640ustar00rootroot00000000000000module.exports = function processNavigationMap(versionInfo, log) { return { $runAfter: ['paths-computed'], $runBefore: ['rendering-docs'], $process: function(docs) { const navigationDoc = docs.find(doc => doc.docType === 'navigation-json'); if (!navigationDoc) { throw new Error( 'Missing navigation map document (docType="navigation-json").' + 'Did you forget to add it to the readFileProcessor?'); } // Verify that all the navigation paths are to valid docs const pathMap = {}; docs.forEach(doc => pathMap[doc.path] = true); const errors = walk(navigationDoc.data, pathMap, []); if (errors.length) { log.error(`Navigation doc: ${navigationDoc.fileInfo.relativePath} contains invalid urls`); // eslint-disable-next-line no-console console.log(errors); // TODO(petebd): fail if there are errors: throw new Error('processNavigationMap failed'); } // Add in the version data in a "secret" field to be extracted in the docs app navigationDoc.data['__versionInfo'] = versionInfo.currentVersion; } }; }; function walk(node, map, path) { let errors = []; for(const key in node) { const child = node[key]; if (child !== null) { // null is allowed if (key === 'url') { const url = child.replace(/#.*$/, ''); // strip hash if (isRelative(url) && !map[url]) { errors.push({ path: path.join('.'), url }); } } else if (typeof child !== 'string') { errors = errors.concat(walk(child, map, path.concat([key]))); } } } return errors; } function isRelative(url) { return !/^(https?:)?\/\//.test(url); } rxjs-7.5.7/docs_app/tools/transforms/authors-package/000077500000000000000000000000001431412030200227125ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/authors-package/api-package.js000066400000000000000000000036251431412030200254200ustar00rootroot00000000000000/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ const Package = require('dgeni').Package; const apiPackage = require('../angular-api-package'); const { API_SOURCE_PATH } = require('../config'); const packageMap = { animations: ['animations/index.ts', 'animations/browser/index.ts', 'animations/browser/testing/index.ts'], common: ['common/index.ts', 'common/testing/index.ts', 'common/http/index.ts', 'common/http/testing/index.ts'], core: ['core/index.ts', 'core/testing/index.ts'], elements: ['elements/index.ts'], forms: ['forms/index.ts'], http: ['http/index.ts', 'http/testing/index.ts'], 'platform-browser': ['platform-browser/index.ts', 'platform-browser/animations/index.ts', 'platform-browser/testing/index.ts'], 'platform-browser-dynamic': ['platform-browser-dynamic/index.ts', 'platform-browser-dynamic/testing/index.ts'], 'platform-server': ['platform-server/index.ts', 'platform-server/testing/index.ts'], 'platform-webworker': ['platform-webworker/index.ts'], 'platform-webworker-dynamic': ['platform-webworker-dynamic/index.ts'], router: ['router/index.ts', 'router/testing/index.ts', 'router/upgrade/index.ts'], 'service-worker': ['service-worker/index.ts'], upgrade: ['upgrade/index.ts', 'upgrade/static/index.ts'] }; function createPackage(packageName) { return new Package('author-api', [apiPackage]) .config(function(readTypeScriptModules) { readTypeScriptModules.sourceFiles = packageMap[packageName]; }) .config(function(readFilesProcessor) { readFilesProcessor.sourceFiles = [ { basePath: API_SOURCE_PATH, include: `${API_SOURCE_PATH}/examples/${packageName}/**/*`, fileReader: 'exampleFileReader' } ]; }); } module.exports = { createPackage }; rxjs-7.5.7/docs_app/tools/transforms/authors-package/guide-package.js000066400000000000000000000026561431412030200257470ustar00rootroot00000000000000/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /* eslint no-console: "off" */ const Package = require('dgeni').Package; const contentPackage = require('../angular-content-package'); const { readFileSync } = require('fs'); const { resolve } = require('canonical-path'); const { CONTENTS_PATH } = require('../config'); function createPackage(guideName) { const guideFilePath = `${CONTENTS_PATH}/guide/${guideName}.md`; const guideFile = readFileSync(guideFilePath, 'utf8'); const examples = []; guideFile.replace(/]*path="([^"]+)"/g, (_, path) => examples.push('examples/' + path)); if (examples.length) { console.log('The following example files are referenced in this guide:'); console.log(examples.map(example => ' - ' + example).join('\n')); } return new Package('author-guide', [contentPackage]) .config(function(readFilesProcessor) { readFilesProcessor.sourceFiles = [ { basePath: CONTENTS_PATH, include: guideFilePath, fileReader: 'contentFileReader' }, { basePath: CONTENTS_PATH, include: examples.map(example => resolve(CONTENTS_PATH, example)), fileReader: 'exampleFileReader' } ]; }); } module.exports = { createPackage };rxjs-7.5.7/docs_app/tools/transforms/authors-package/index.js000066400000000000000000000042611431412030200243620ustar00rootroot00000000000000/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /* eslint no-console: "off" */ function createPackage(changedFile) { const marketingMatch = /^docs_app\/content\/marketing\/(.*)/.exec(changedFile); if (marketingMatch) { console.log('Building marketing docs'); return require('./marketing-package').createPackage(); } const tutorialMatch = /^docs_app\/content\/tutorial\/([^.]+)\.md/.exec(changedFile); const tutorialExampleMatch = /^docs_app\/content\/examples\/(toh-[^/]+)\//.exec(changedFile); if (tutorialMatch || tutorialExampleMatch) { const tutorialName = tutorialMatch && tutorialMatch[1] || tutorialExampleMatch[1]; console.log('Building tutorial docs'); return require('./tutorial-package').createPackage(tutorialName); } const guideMatch = /^docs_app\/content\/guide\/([^.]+)\.md/.exec(changedFile); const exampleMatch = /^docs_app\/content\/examples\/(?:cb-)?([^/]+)\//.exec(changedFile); if (guideMatch || exampleMatch) { const guideName = guideMatch && guideMatch[1] || exampleMatch[1]; console.log(`Building guide doc: ${guideName}.md`); return require('./guide-package').createPackage(guideName); } const apiExamplesMatch = /^packages\/examples\/([^/]+)\//.exec(changedFile); const apiMatch = /^packages\/([^/]+)\//.exec(changedFile); if (apiExamplesMatch || apiMatch) { const packageName = apiExamplesMatch && apiExamplesMatch[1] || apiMatch[1]; console.log('Building API docs for', packageName); return require('./api-package').createPackage(packageName); } } module.exports = { generateDocs: function(changedFile, options = {}) { const {Dgeni} = require('dgeni'); const package = createPackage(changedFile); if (options.silent) { package.config(function(log) { log.level = 'error'; }); } var dgeni = new Dgeni([package]); const start = Date.now(); return dgeni.generate() .then( () => console.log('Generated docs in ' + (Date.now() - start)/1000 + ' secs'), err => console.log('Error generating docs', err)); } }; rxjs-7.5.7/docs_app/tools/transforms/authors-package/index.spec.js000066400000000000000000000073311431412030200253140ustar00rootroot00000000000000/* eslint jasmine/prefer-toHaveBeenCalledWith:0 */ const fs = require('fs'); const {resolve} = require('canonical-path'); const {generateDocs} = require('./index.js'); const { DOCS_OUTPUT_PATH } = require('../config'); describe('authors-package (integration tests)', () => { let originalJasmineTimeout; let files; beforeAll(() => { originalJasmineTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL; jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000; }); afterAll(() => jasmine.DEFAULT_TIMEOUT_INTERVAL = originalJasmineTimeout); beforeEach(() => { files = []; spyOn(fs, 'writeFile').and.callFake((file, content, callback) => { files.push(file); callback(); }); }); it('should generate marketing docs if the "fileChanged" is a marketing doc', (done) => { generateDocs('aio/content/marketing/about.html', { silent: true }).then(() => { expect(fs.writeFile).toHaveBeenCalled(); expect(files).toContain(resolve(DOCS_OUTPUT_PATH, 'about.json')); expect(files).toContain(resolve(DOCS_OUTPUT_PATH, '../navigation.json')); expect(files).toContain(resolve(DOCS_OUTPUT_PATH, '../contributors.json')); expect(files).toContain(resolve(DOCS_OUTPUT_PATH, '../resources.json')); done(); }).catch(done.fail); }); it('should generate tutorial docs if the "fileChanged" is a tutorial doc', (done) => { generateDocs('aio/content/tutorial/toh-pt5.md', { silent: true }).then(() => { expect(fs.writeFile).toHaveBeenCalled(); expect(files).toContain(resolve(DOCS_OUTPUT_PATH, 'tutorial/toh-pt5.json')); done(); }).catch(done.fail); }); it('should generate tutorial docs if the "fileChanged" is the tutorial index', (done) => { generateDocs('aio/content/tutorial/index.md', { silent: true }).then(() => { expect(fs.writeFile).toHaveBeenCalled(); expect(files).toContain(resolve(DOCS_OUTPUT_PATH, 'tutorial.json')); done(); }).catch(done.fail); }); it('should generate tutorial docs if the "fileChanged" is a tutorial example', (done) => { generateDocs('aio/content/examples/toh-pt3/app/app.component.1.html', { silent: true }).then(() => { expect(fs.writeFile).toHaveBeenCalled(); expect(files).toContain(resolve(DOCS_OUTPUT_PATH, 'tutorial/toh-pt3.json')); done(); }).catch(done.fail); }); it('should generate guide doc if the "fileChanged" is a guide doc', (done) => { generateDocs('aio/content/guide/architecture.md', { silent: true }).then(() => { expect(fs.writeFile).toHaveBeenCalled(); expect(files).toContain(resolve(DOCS_OUTPUT_PATH, 'guide/architecture.json')); done(); }).catch(done.fail); }); it('should generate guide doc if the "fileChanged" is a guide example', (done) => { generateDocs('aio/content/examples/architecture/src/app/app.module.ts', { silent: true }).then(() => { expect(fs.writeFile).toHaveBeenCalled(); expect(files).toContain(resolve(DOCS_OUTPUT_PATH, 'guide/architecture.json')); done(); }).catch(done.fail); }); it('should generate API doc if the "fileChanged" is an API doc', (done) => { generateDocs('packages/forms/src/form_builder.ts', { silent: true }).then(() => { expect(fs.writeFile).toHaveBeenCalled(); expect(files).toContain(resolve(DOCS_OUTPUT_PATH, 'api/forms/FormBuilder.json')); done(); }).catch(done.fail); }, 16000); it('should generate API doc if the "fileChanged" is an API example', (done) => { generateDocs('packages/examples/forms/ts/formBuilder/form_builder_example.ts', { silent: true }).then(() => { expect(fs.writeFile).toHaveBeenCalled(); expect(files).toContain(resolve(DOCS_OUTPUT_PATH, 'api/forms/FormBuilder.json')); done(); }).catch(done.fail); }, 16000); }); rxjs-7.5.7/docs_app/tools/transforms/authors-package/marketing-package.js000066400000000000000000000023441431412030200266250ustar00rootroot00000000000000/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ const Package = require('dgeni').Package; const contentPackage = require('../angular-content-package'); const { CONTENTS_PATH } = require('../config'); function createPackage() { return new Package('author-marketing', [contentPackage]) .config(function(readFilesProcessor) { readFilesProcessor.sourceFiles = [ { basePath: CONTENTS_PATH + '/marketing', include: CONTENTS_PATH + '/marketing/**/*.{html,md}', fileReader: 'contentFileReader' }, { basePath: CONTENTS_PATH, include: CONTENTS_PATH + '/*.md', exclude: [CONTENTS_PATH + '/index.md'], fileReader: 'contentFileReader' }, { basePath: CONTENTS_PATH, include: CONTENTS_PATH + '/marketing/*.json', fileReader: 'jsonFileReader' }, { basePath: CONTENTS_PATH, include: CONTENTS_PATH + '/navigation.json', fileReader: 'jsonFileReader' }, ]; }); } module.exports = { createPackage };rxjs-7.5.7/docs_app/tools/transforms/authors-package/tutorial-package.js000066400000000000000000000027151431412030200265110ustar00rootroot00000000000000/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ const Package = require('dgeni').Package; const contentPackage = require('../angular-content-package'); const { readFileSync } = require('fs'); const { resolve } = require('canonical-path'); const { CONTENTS_PATH } = require('../config'); /* eslint no-console: "off" */ function createPackage(tutorialName) { const tutorialFilePath = `${CONTENTS_PATH}/tutorial/${tutorialName}.md`; const tutorialFile = readFileSync(tutorialFilePath, 'utf8'); const examples = []; tutorialFile.replace(/]*path="([^"]+)"/g, (_, path) => examples.push('examples/' + path)); if (examples.length) { console.log('The following example files are referenced in this tutorial:'); console.log(examples.map(example => ' - ' + example).join('\n')); } return new Package('author-tutorial', [contentPackage]) .config(function(readFilesProcessor) { readFilesProcessor.sourceFiles = [ { basePath: CONTENTS_PATH, include: tutorialFilePath, fileReader: 'contentFileReader' }, { basePath: CONTENTS_PATH, include: examples.map(example => resolve(CONTENTS_PATH, example)), fileReader: 'exampleFileReader' } ]; }); } module.exports = { createPackage };rxjs-7.5.7/docs_app/tools/transforms/authors-package/watchr.js000066400000000000000000000040461431412030200245440ustar00rootroot00000000000000/* eslint no-console: "off" */ const watchr = require('watchr'); const {relative} = require('canonical-path'); const {generateDocs} = require('./index.js'); const { PROJECT_ROOT, CONTENTS_PATH, API_SOURCE_PATH } = require('../config'); function listener(changeType, fullPath) { try { const relativePath = relative(PROJECT_ROOT, fullPath); console.log('The file', relativePath, `was ${changeType}d at`, new Date().toUTCString()); generateDocs(relativePath); } catch(err) { console.log('Error generating docs', err); } } function next(error) { if (error) { console.log(error); } } let p = Promise.resolve(); if (process.argv.indexOf('--watch-only') === -1) { console.log('================================================================'); console.log('Running initial doc generation'); console.log('----------------------------------------------------------------'); console.log('Skip the full doc-gen by running: `yarn docs-watch --watch-only`'); console.log('================================================================'); const {Dgeni} = require('dgeni'); const dgeni = new Dgeni([require('../angular.io-package')]); // Turn off all the potential failures for this doc-gen one-off run. // This enables authors to run `docs-watch` while the docs are still in an unstable state. const injector = dgeni.configureInjector(); injector.get('linkInlineTagDef').failOnBadLink = false; injector.get('checkAnchorLinksProcessor').$enabled = false; injector.get('renderExamples').ignoreBrokenExamples = true; p = dgeni.generate(); } p.then(() => { console.log('==================================================================='); console.log('Started watching files in:'); console.log(' - ', CONTENTS_PATH); console.log(' - ', API_SOURCE_PATH); console.log('Doc gen will run when you change a file in either of these folders.'); console.log('==================================================================='); watchr.open(CONTENTS_PATH, listener, next); watchr.open(API_SOURCE_PATH, listener, next); }); rxjs-7.5.7/docs_app/tools/transforms/config.js000066400000000000000000000022351431412030200214410ustar00rootroot00000000000000const { resolve } = require('path'); const { readdirSync } = require('fs'); const PROJECT_ROOT = resolve(__dirname, '../../..'); const AIO_PATH = resolve(PROJECT_ROOT, 'docs_app'); const TEMPLATES_PATH = resolve(AIO_PATH, 'tools/transforms/templates'); const API_TEMPLATES_PATH = resolve(TEMPLATES_PATH, 'api'); const CONTENTS_PATH = resolve(AIO_PATH, 'content'); const SRC_PATH = resolve(AIO_PATH, 'src'); const OUTPUT_PATH = resolve(SRC_PATH, 'generated'); const DOCS_OUTPUT_PATH = resolve(OUTPUT_PATH, 'docs'); const API_SOURCE_PATH = resolve(PROJECT_ROOT, 'src'); const MARBLE_IMAGES_PATH = resolve(SRC_PATH, 'assets/images/marble-diagrams'); const MARBLE_IMAGES_WEB_PATH = 'assets/images/marble-diagrams'; function requireFolder(dirname, folderPath) { const absolutePath = resolve(dirname, folderPath); return readdirSync(absolutePath) .filter(p => !/[._]spec\.js$/.test(p)) // ignore spec files .map(p => require(resolve(absolutePath, p))); } module.exports = { PROJECT_ROOT, AIO_PATH, TEMPLATES_PATH, API_TEMPLATES_PATH, CONTENTS_PATH, SRC_PATH, OUTPUT_PATH, DOCS_OUTPUT_PATH, API_SOURCE_PATH, MARBLE_IMAGES_PATH, MARBLE_IMAGES_WEB_PATH, requireFolder }; rxjs-7.5.7/docs_app/tools/transforms/content-package/000077500000000000000000000000001431412030200226775ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/content-package/index.js000066400000000000000000000024361431412030200243510ustar00rootroot00000000000000var Package = require('dgeni').Package; var jsdocPackage = require('dgeni-packages/jsdoc'); var linksPackage = require('../links-package'); var { requireFolder } = require('../config'); // Define the dgeni package for generating the docs module.exports = new Package('content', [jsdocPackage, linksPackage]) // Register the services and file readers .factory(require('./readers/content')) // Configure file reading .config(function(readFilesProcessor, contentFileReader) { readFilesProcessor.fileReaders.push(contentFileReader); }) .config(function(parseTagsProcessor, getInjectables) { parseTagsProcessor.tagDefinitions = parseTagsProcessor.tagDefinitions.concat( getInjectables(requireFolder(__dirname, './tag-defs'))); }) // Configure ids and paths .config(function(computeIdsProcessor) { computeIdsProcessor.idTemplates.push({ docTypes: ['content'], getId: function(doc) { return doc.fileInfo .relativePath // path should be relative to `modules` folder .replace(/.*\/?modules\//, '') // path should not include `/docs/` .replace(/\/docs\//, '/') // path should not have a suffix .replace(/\.\w*$/, ''); }, getAliases: function(doc) { return [doc.id]; } }); }); rxjs-7.5.7/docs_app/tools/transforms/content-package/readers/000077500000000000000000000000001431412030200243245ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/content-package/readers/content.js000066400000000000000000000011101431412030200263250ustar00rootroot00000000000000/** * @dgService * @description * This file reader will pull the contents from a text file (by default .md) * * The doc will initially have the form: * ``` * { * content: 'the content of the file', * startingLine: 1 * } * ``` */ module.exports = function contentFileReader() { return { name: 'contentFileReader', defaultPattern: /\.md$/, getDocs: function(fileInfo) { // We return a single element array because content files only contain one document return [{docType: 'content', content: fileInfo.content, startingLine: 1}]; } }; }; rxjs-7.5.7/docs_app/tools/transforms/content-package/readers/content.spec.js000066400000000000000000000026311431412030200272670ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); var path = require('canonical-path'); describe('contentFileReader', function() { var dgeni, injector, fileReader; beforeEach(function() { dgeni = new Dgeni([testPackage('content-package', true)]); injector = dgeni.configureInjector(); fileReader = injector.get('contentFileReader'); }); var createFileInfo = function(file, content, basePath) { return { fileReader: fileReader.name, filePath: file, baseName: path.basename(file, path.extname(file)), extension: path.extname(file).replace(/^\./, ''), basePath: basePath, relativePath: path.relative(basePath, file), content: content }; }; describe('defaultPattern', function() { it('should match .md files', function() { expect(fileReader.defaultPattern.test('abc.md')).toBeTruthy(); expect(fileReader.defaultPattern.test('abc.js')).toBeFalsy(); }); }); describe('getDocs', function() { it('should return an object containing info about the file and its contents', function() { var fileInfo = createFileInfo( 'project/path/modules/someModule/foo/docs/subfolder/bar.ngdoc', 'A load of content', 'project/path'); expect(fileReader.getDocs(fileInfo)).toEqual([ {docType: 'content', content: 'A load of content', startingLine: 1} ]); }); }); }); rxjs-7.5.7/docs_app/tools/transforms/content-package/tag-defs/000077500000000000000000000000001431412030200243715ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/content-package/tag-defs/intro.js000066400000000000000000000000731431412030200260620ustar00rootroot00000000000000module.exports = function() { return {name: 'intro'}; }; rxjs-7.5.7/docs_app/tools/transforms/content-package/tag-defs/title.js000066400000000000000000000000731431412030200260500ustar00rootroot00000000000000module.exports = function() { return {name: 'title'}; }; rxjs-7.5.7/docs_app/tools/transforms/examples-package/000077500000000000000000000000001431412030200230435ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/examples-package/file-readers/000077500000000000000000000000001431412030200254055ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/examples-package/file-readers/example-reader.js000066400000000000000000000007531431412030200306430ustar00rootroot00000000000000/** * The point of this reader is to tag all the files that are going to be used as examples in the * documentation. * Later on we can extract the regions, via "shredding"; and we can also construct runnable examples * for passing to Stackblitz and the like. */ module.exports = function exampleFileReader() { return { name: 'exampleFileReader', getDocs: function(fileInfo) { return [{docType: 'example-file', content: fileInfo.content, startingLine: 1}]; } }; }; rxjs-7.5.7/docs_app/tools/transforms/examples-package/index.js000066400000000000000000000021001431412030200245010ustar00rootroot00000000000000var Package = require('dgeni').Package; var jsdocPackage = require('dgeni-packages/jsdoc'); module.exports = new Package('examples', [jsdocPackage]) .factory(require('./inline-tag-defs/example')) .factory(require('./services/parseArgString')) .factory(require('./services/example-map')) .factory(require('./file-readers/example-reader')) .factory(require('./services/region-parser')) .factory(require('./services/getExampleRegion')) .processor(require('./processors/collect-examples')) .processor(require('./processors/render-examples')) .config(function(readFilesProcessor, exampleFileReader) { readFilesProcessor.fileReaders.push(exampleFileReader); }) .config(function(inlineTagProcessor, exampleInlineTagDef) { inlineTagProcessor.inlineTagDefinitions.push(exampleInlineTagDef); }) .config(function(computePathsProcessor) { computePathsProcessor.pathTemplates.push( {docTypes: ['example-region'], getPath: function() {}, getOutputPath: function() {}}); }); rxjs-7.5.7/docs_app/tools/transforms/examples-package/inline-tag-defs/000077500000000000000000000000001431412030200260115ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/examples-package/inline-tag-defs/example.js000066400000000000000000000031721431412030200300050ustar00rootroot00000000000000var entities = require('entities'); /** * @dgService exampleInlineTagDef * @description * Process inline example tags (of the form {@example relativePath region -title='some title' * -stylePattern='{some style pattern}' }), * replacing them with code from a shredded file * Examples: * {@example core/application_spec.ts hello-app -title='Sample component' } * {@example core/application_spec.ts -region=hello-app -title='Sample component' } * @kind function */ module.exports = function exampleInlineTagDef(parseArgString, createDocMessage, getExampleRegion) { return { name: 'example', description: 'Process inline example tags (of the form {@example some/uri Some Title}), replacing them with HTML anchors', handler: function(doc, tagName, tagDescription) { var tagArgs = parseArgString(entities.decodeHTML(tagDescription)); var unnamedArgs = tagArgs._; var relativePath = unnamedArgs[0]; var regionName = tagArgs.region || (unnamedArgs.length > 1 ? unnamedArgs[1] : ''); if (regionName === '\'\'') regionName = ''; var title = tagArgs.title || (unnamedArgs.length > 2 ? unnamedArgs.slice(2).join(' ') : null); var linenums = tagArgs.linenums; // var stylePattern = tagArgs.stylePattern; // TODO: not yet implemented here const sourceCode = getExampleRegion(doc, relativePath, regionName); const attributes = []; if (title) attributes.push(` title="${title}"`); if (linenums !== undefined) attributes.push(` linenums="${linenums}"`); return '\n' + sourceCode + '\n'; } }; }; rxjs-7.5.7/docs_app/tools/transforms/examples-package/inline-tag-defs/example.spec.js000066400000000000000000000055671431412030200307500ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('example inline-tag-def', function() { let injector, tag, collectExamples, exampleMap; beforeEach(() => { const dgeni = new Dgeni([testPackage('examples-package', true)]); injector = dgeni.configureInjector(); tag = injector.get('exampleInlineTagDef'); collectExamples = injector.get('collectExamples'); exampleMap = injector.get('exampleMap'); }); it('should be available as a service', () => { expect(tag).toBeDefined(); expect(tag.name).toEqual('example'); }); describe('handler', () => { let handler; beforeEach(() => { handler = tag.handler; collectExamples.exampleFolders = ['examples']; exampleMap['examples'] = { 'test/url': { regions: { '': { renderedContent: 'whole file' }, 'region-1': { renderedContent: 'region 1 contents' } } } }; }); it('should throw an error if there is no matching example', () => { expect(function() { handler({}, 'example', 'missing/uri'); }).toThrowError(); expect(function() { handler({}, 'example', 'test/url missing-region'); }).toThrowError(); }); it('should contain the whole contents from the example file if no region is specified', () => { expect(handler({}, 'example', 'test/url')).toEqual('\nwhole file\n'); }); it('should contain the region contents from the example file if a region is specified', () => { expect(handler({}, 'example', 'test/url region-1')).toEqual('\nregion 1 contents\n'); }); it('should add a title if specified', () => { expect(handler({}, 'example', 'test/url region-1 \'Some Title\'')).toEqual('\nregion 1 contents\n'); expect(handler({}, 'example', 'test/url region-1 Some Title')).toEqual('\nregion 1 contents\n'); }); it('should contain the whole contents from the example file if an empty ("") region is specified', () => { expect(handler({}, 'example', 'test/url \'\'')).toEqual('\nwhole file\n'); expect(handler({}, 'example', 'test/url \'\' Some Title')).toEqual('\nwhole file\n'); }); it('should add in linenum attribute if specified', () => { expect(handler({}, 'example', 'test/url --linenums=\'false\'')).toEqual('\nwhole file\n'); expect(handler({}, 'example', 'test/url --linenums=\'true\'')).toEqual('\nwhole file\n'); expect(handler({}, 'example', 'test/url --linenums=\'15\'')).toEqual('\nwhole file\n'); }); }); }); rxjs-7.5.7/docs_app/tools/transforms/examples-package/processors/000077500000000000000000000000001431412030200252455ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/examples-package/processors/collect-examples.js000066400000000000000000000070251431412030200310500ustar00rootroot00000000000000const {extname} = require('canonical-path'); const {mapObject} = require('../../helpers/utils'); module.exports = function collectExamples(exampleMap, regionParser, log, createDocMessage) { return { $runAfter: ['files-read'], $runBefore: ['parsing-tags'], $validate: {exampleFolders: {presence: true}}, exampleFolders: [], ignoredExamples: {}, /** * Call this method to indicate to the processor that some files, that actually exist, * have been filtered out from being processed. * @param paths an array of relative paths to the examples that have been ignored. * @param gitIgnorePath the path to the gitignore file that caused this example to be ignored. */ registerIgnoredExamples(paths, gitIgnorePath) { paths.forEach(path => { this.ignoredExamples[path] = gitIgnorePath; }); }, /** * Call this method to find out if an example was ignored. * @param path a relative path to the example file to test for being ignored. * @returns the path to the .gitignore file. */ isExampleIgnored(path) { return this.ignoredExamples[path]; }, $process(docs) { const exampleFolders = this.exampleFolders; exampleFolders.forEach(folder => exampleMap[folder] = exampleMap[folder] || {}); const regionDocs = []; docs = docs.filter((doc) => { if (doc.docType === 'example-file') { try { // find the first matching folder exampleFolders.some((folder) => { if (doc.fileInfo.relativePath.indexOf(folder) === 0) { const relativePath = doc.fileInfo.relativePath.substr(folder.length).replace(/^\//, ''); exampleMap[folder][relativePath] = doc; // We treat files that end in `.annotated` specially // They are used to annotate files that cannot contain comments, such as JSON // So you provide two files: `xyz.json` and `xyz.json.annotated`, which is a copy // of the original but contains inline doc region comments let fileType = doc.fileInfo.extension; if (fileType === 'annotated') { fileType = extname(doc.fileInfo.baseName).substr(1) + '.' + fileType; } const parsedRegions = regionParser(doc.content, fileType); log.debug( 'found example file', folder, relativePath, Object.keys(parsedRegions.regions)); doc.renderedContent = parsedRegions.contents; // Map each region into a doc that can be put through the rendering pipeline doc.regions = mapObject(parsedRegions.regions, (regionName, regionContents) => { const regionDoc = createRegionDoc(folder, relativePath, regionName, regionContents); regionDocs.push(regionDoc); return regionDoc; }); return true; } }); return false; } catch (e) { throw new Error(createDocMessage(e.message, doc, e)); } } else { return true; } }); return docs.concat(regionDocs); } }; }; function createRegionDoc(folder, relativePath, regionName, regionContents) { const path = folder + '/' + relativePath; const id = path + '#' + regionName; return { docType: 'example-region', path: path, name: regionName, id: id, aliases: [id], contents: regionContents }; } rxjs-7.5.7/docs_app/tools/transforms/examples-package/processors/collect-examples.spec.js000066400000000000000000000171701431412030200320030ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); var path = require('path'); describe('collectExampleRegions processor', () => { var injector, processor, exampleMap, regionParser; beforeEach(function() { regionParser = jasmine.createSpy('regionParser').and.callFake(function(contents, extension) { return { contents: 'PARSED:' + contents, regions: {dummy: extension} }; }); const dgeni = new Dgeni([testPackage('examples-package', true).factory('regionParser', function() { return regionParser; })]); injector = dgeni.configureInjector(); exampleMap = injector.get('exampleMap'); processor = injector.get('collectExamples'); processor.exampleFolders = ['examples-1', 'examples-2']; }); describe('$process', () => { it('should initialise the `exampleMap` even if there are no examples to collect', () => { processor.$process([]); expect(exampleMap['examples-1']).toEqual(jasmine.any(Object)); expect(exampleMap['examples-2']).toEqual(jasmine.any(Object)); }); it('should identify example files that are in the exampleFolders', () => { const docs = [ createDoc('A', 'examples-1/x/app.js'), createDoc('B', 'examples-1/y/index.html'), createDoc('C', 'examples-2/s/app.js'), createDoc('D', 'examples-2/t/style.css'), createDoc('E', 'other/b/c.js') ]; processor.$process(docs); expect(exampleMap['examples-1']['x/app.js']).toBeDefined(); expect(exampleMap['examples-1']['y/index.html']).toBeDefined(); expect(exampleMap['examples-2']['s/app.js']).toBeDefined(); expect(exampleMap['examples-2']['t/style.css']).toBeDefined(); expect(exampleMap['other']).toBeUndefined(); }); it('should remove example files from the docs collection', () => { const docs = [ createDoc('Example A', 'examples-1/x/app.js'), createDoc('Example B', 'examples-1/y/index.html'), createDoc('Other doc 1', 'examples-2/t/style.css', 'content'), createDoc('Example C', 'examples-2/s/app.js'), createDoc('Other doc 2', 'other/b/c.js', 'content') ]; const processedDocs = processor.$process(docs); expect(processedDocs.filter(doc => doc.docType === 'example-file')).toEqual([]); }); it('should not remove docs from the docs collection that are not example files', () => { const docs = [ createDoc('Example A', 'examples-1/x/app.js'), createDoc('Example B', 'examples-1/y/index.html'), createDoc('Other doc 1', 'examples-2/t/style.css', 'content'), createDoc('Example C', 'examples-2/s/app.js'), createDoc('Other doc 2', 'other/b/c.js', 'content') ]; const processedDocs = processor.$process(docs); expect(processedDocs.filter(doc => doc.docType !== 'example-file')) .toEqual(jasmine.objectContaining([ createDoc('Other doc 1', 'examples-2/t/style.css', 'content'), createDoc('Other doc 2', 'other/b/c.js', 'content') ])); }); it('should call `regionParser` from with the content and file extension of each example doc', () => { const docs = [ createDoc('Example A', 'examples-1/x/app.js'), createDoc('Example B', 'examples-1/y/index.html'), createDoc('Other doc 1', 'examples-2/t/style.css', 'content'), createDoc('Example C', 'examples-2/s/app.js'), createDoc('Other doc 2', 'other/b/c.js', 'content') ]; processor.$process(docs); expect(regionParser).toHaveBeenCalledTimes(3); expect(regionParser).toHaveBeenCalledWith('Example A', 'js'); expect(regionParser).toHaveBeenCalledWith('Example B', 'html'); expect(regionParser).toHaveBeenCalledWith('Example C', 'js'); }); it('should attach parsed content as renderedContent to the example file docs', () => { const docs = [ createDoc('A', 'examples-1/x/app.js'), createDoc('B', 'examples-1/y/index.html'), createDoc('C', 'examples-2/s/app.js'), createDoc('D', 'examples-2/t/style.css'), ]; processor.$process(docs); expect(exampleMap['examples-1']['x/app.js'].renderedContent).toEqual('PARSED:A'); expect(exampleMap['examples-1']['y/index.html'].renderedContent).toEqual('PARSED:B'); expect(exampleMap['examples-2']['s/app.js'].renderedContent).toEqual('PARSED:C'); expect(exampleMap['examples-2']['t/style.css'].renderedContent).toEqual('PARSED:D'); }); it('should create region docs for each region in the example file docs', () => { const docs = [ createDoc('/* #docregion X */\nA', 'examples-1/x/app.js'), createDoc('\nB', 'examples-1/y/index.html'), createDoc('/* #docregion Z */\nC', 'examples-2/t/style.css'), ]; const newDocs = processor.$process(docs); expect(newDocs.length).toEqual(3); expect(newDocs).toEqual([ jasmine.objectContaining({ docType: 'example-region', name: 'dummy', id: 'examples-1/x/app.js#dummy', contents: 'js' }), jasmine.objectContaining({ docType: 'example-region', name: 'dummy', id: 'examples-1/y/index.html#dummy', contents: 'html' }), jasmine.objectContaining({ docType: 'example-region', name: 'dummy', id: 'examples-2/t/style.css#dummy', contents: 'css' }) ]); }); it('should attach region docs to the example file docs', () => { const docs = [ createDoc('/* #docregion X */\nA', 'examples-1/x/app.js'), createDoc('\nB', 'examples-1/y/index.html'), createDoc('/* #docregion Z */\nC', 'examples-2/t/style.css'), ]; processor.$process(docs); expect(exampleMap['examples-1']['x/app.js'].regions).toEqual({ dummy: { docType: 'example-region', path: 'examples-1/x/app.js', name: 'dummy', id: 'examples-1/x/app.js#dummy', aliases: ['examples-1/x/app.js#dummy'], contents: 'js' } }); expect(exampleMap['examples-1']['y/index.html'].regions).toEqual({ dummy: { docType: 'example-region', path: 'examples-1/y/index.html', name: 'dummy', id: 'examples-1/y/index.html#dummy', aliases: ['examples-1/y/index.html#dummy'], contents: 'html' } }); expect(exampleMap['examples-2']['t/style.css'].regions).toEqual({ dummy: { docType: 'example-region', path: 'examples-2/t/style.css', name: 'dummy', id: 'examples-2/t/style.css#dummy', aliases: ['examples-2/t/style.css#dummy'], contents: 'css' } }); }); }); describe('filtered examples', () => { it('should indicate if an example was filtered', () => { processor.registerIgnoredExamples(['c/d/e', 'e/f/g'], 'path/to/gitignore'); processor.registerIgnoredExamples(['x/y/z'], 'path/to/other/gitignore'); expect(processor.isExampleIgnored('a/b/c')).toBeFalsy(); expect(processor.isExampleIgnored('c/d/e')).toEqual('path/to/gitignore'); expect(processor.isExampleIgnored('e/f/g')).toEqual('path/to/gitignore'); expect(processor.isExampleIgnored('x/y/z')).toEqual('path/to/other/gitignore'); }); }); }); function createDoc(content, relativePath, docType) { return { fileInfo: {relativePath: relativePath, extension: path.extname(relativePath).substr(1)}, content: content, docType: docType || 'example-file', startingLine: 1 }; } rxjs-7.5.7/docs_app/tools/transforms/examples-package/processors/render-examples.js000066400000000000000000000055141431412030200307030ustar00rootroot00000000000000const { parseAttributes, renderAttributes } = require('../../helpers/utils'); /** * Search the renderedContent looking for code examples that have a path (and optionally a region) attribute. * When they are found replace their content with the appropriate doc-region parsed previously from an example file. */ module.exports = function renderExamples(getExampleRegion, log, createDocMessage) { return { $runAfter: ['docs-rendered'], $runBefore: ['writing-files'], ignoreBrokenExamples: false, $process: function(docs) { docs.forEach(doc => { if (doc.renderedContent) { // We match either `code-example` or `code-pane` elements that have a path attribute doc.renderedContent = doc.renderedContent.replace( /<(code-example|code-pane)([^>]*)>[^<]*<\/([^>]+)>/g, (original, openingTag, attributes, closingTag) => { const attrMap = parseAttributes(attributes); if (attrMap.path) { try { if (closingTag !== openingTag) { // The markdown renderer will wrap what it thinks is a paragraph in `

` and `

` tags. // If you do not leave a blank line between a paragraph of text and a `` then // the markdown renderer may add a paragraph marker "in-between" the opening and closing // tags of the code-example. For example: // // ``` // Some paragraph // // // // ``` // // will be rendered as: // // ``` //

Some paragraph // //

//
// ``` throw new Error( 'Badly formed example: ' + original + ' - closing tag does not match opening tag.\n' + ' - Perhaps you forgot to put a blank line before the example?'); } // We found a path attribute so look up the example and rebuild the HTML const exampleContent = getExampleRegion(doc, attrMap.path, attrMap.region); return `<${openingTag}${renderAttributes(attrMap)}>\n${exampleContent}\n`; } catch(e) { log.warn(createDocMessage(e.message, doc)); if (!this.ignoreBrokenExamples) { throw e; } } } // No path attribute so just ignore this one return original; }); } }); } }; }; rxjs-7.5.7/docs_app/tools/transforms/examples-package/processors/render-examples.spec.js000066400000000000000000000134301431412030200316300ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('renderExamples processor', () => { var injector, processor, exampleMap, collectExamples, log; beforeEach(function() { const dgeni = new Dgeni([testPackage('examples-package', true)]); injector = dgeni.configureInjector(); exampleMap = injector.get('exampleMap'); processor = injector.get('renderExamples'); collectExamples = injector.get('collectExamples'); exampleMap = injector.get('exampleMap'); log = injector.get('log'); collectExamples.exampleFolders = ['examples']; exampleMap['examples'] = { 'test/url': { regions: { '': { renderedContent: 'whole file' }, 'region-1': { renderedContent: 'region 1 contents' } } } }; }); it('should run before the correct processor', () => { expect(processor.$runBefore).toEqual(['writing-files']); }); it('should run after the correct processor', () => { expect(processor.$runAfter).toEqual(['docs-rendered']); }); ['code-example', 'code-pane'].forEach(CODE_TAG => describe(CODE_TAG, () => { it(`should ignore a <${CODE_TAG}> tags with no path attribute`, () => { const docs = [ { renderedContent: `Some text\n<${CODE_TAG}>Some code\n<${CODE_TAG} class="anti-pattern" title="Bad Code">do not do this` } ]; processor.$process(docs); expect(docs[0].renderedContent).toEqual(`Some text\n<${CODE_TAG}>Some code\n<${CODE_TAG} class="anti-pattern" title="Bad Code">do not do this`); }); it(`should replace the content of the <${CODE_TAG}> tag with the whole contents from an example file if a path is provided`, () => { const docs = [ { renderedContent: `<${CODE_TAG} path="test/url">Some code`} ]; processor.$process(docs); expect(docs[0].renderedContent).toEqual(`<${CODE_TAG} path="test/url">\nwhole file\n`); }); it(`should replace all instances of <${CODE_TAG}> tags`, () => { const docs = [ { renderedContent: `<${CODE_TAG} path="test/url">Some code<${CODE_TAG} path="test/url" region="region-1">Other code`} ]; processor.$process(docs); expect(docs[0].renderedContent).toEqual(`<${CODE_TAG} path="test/url">\nwhole file\n<${CODE_TAG} path="test/url" region="region-1">\nregion 1 contents\n`); }); it('should contain the region contents from the example file if a region is specified', () => { const docs = [ { renderedContent: `<${CODE_TAG} path="test/url" region="region-1">Some code` } ]; processor.$process(docs); expect(docs[0].renderedContent).toEqual(`<${CODE_TAG} path="test/url" region="region-1">\nregion 1 contents\n`); }); it(`should replace the content of the <${CODE_TAG}> tag with the whole contents from an example file if the region is empty`, () => { const docs = [ { renderedContent: `<${CODE_TAG} path="test/url" region="">Some code` } ]; processor.$process(docs); expect(docs[0].renderedContent).toEqual(`<${CODE_TAG} path="test/url" region="">\nwhole file\n`); }); it('should pass along all attributes including path and region', () => { const openTag = `<${CODE_TAG} class="special" path="test/url" linenums="15" region="region-1" id="some-id">`; const docs = [ { renderedContent: `${openTag}Some code` } ]; processor.$process(docs); expect(docs[0].renderedContent).toEqual(`${openTag}\nregion 1 contents\n`); }); it('should cope with spaces and double quotes inside attribute values', () => { const docs = [ { renderedContent: `<${CODE_TAG} title='a "quoted" value' path="test/url">`} ]; processor.$process(docs); expect(docs[0].renderedContent).toEqual(`<${CODE_TAG} title="a "quoted" value" path="test/url">\nwhole file\n`); }); it('should throw an exception if the code-example tag is not closed correctly', () => { const docs = [ { renderedContent: `<${CODE_TAG} path="test/url">

`} ]; expect(() => processor.$process(docs)).toThrowError( 'Badly formed example: <' + CODE_TAG + ' path="test/url">

- closing tag does not match opening tag.\n' + ' - Perhaps you forgot to put a blank line before the example?'); }); it('should not throw if `ignoreBrokenExamples` is set to true', () => { processor.ignoreBrokenExamples = true; const docs = [ { renderedContent: `<${CODE_TAG} path="test/url">

`}, { renderedContent: `<${CODE_TAG} path="test/url" region="missing">`}, { renderedContent: `<${CODE_TAG} path="missing/url">`} ]; expect(() => processor.$process(docs)).not.toThrow(); expect(log.warn).toHaveBeenCalledWith( 'Badly formed example: <' + CODE_TAG + ' path="test/url">

- closing tag does not match opening tag.\n' + ' - Perhaps you forgot to put a blank line before the example? - doc'); expect(log.warn).toHaveBeenCalledWith( 'Missing example region... relativePath: "test/url", region: "missing". - doc\n' + 'Regions available are: "", "region-1" - doc'); expect(log.warn).toHaveBeenCalledWith( 'Missing example file... relativePath: "missing/url". - doc\n' + 'Example files can be found in the following relative paths: "examples" - doc'); }); }) ); }); rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/000077500000000000000000000000001431412030200246665ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/example-map.js000066400000000000000000000000711431412030200274300ustar00rootroot00000000000000module.exports = function exampleMap() { return {}; }; rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/getExampleRegion.js000066400000000000000000000035631431412030200304720ustar00rootroot00000000000000module.exports = function getExampleRegion(exampleMap, createDocMessage, collectExamples) { return function getExampleRegionImpl(doc, relativePath, regionName) { const EXAMPLES_FOLDERS = collectExamples.exampleFolders; // Find the example in the folders var exampleFile; // Try an "annotated" version first EXAMPLES_FOLDERS.some(EXAMPLES_FOLDER => { return exampleFile = exampleMap[EXAMPLES_FOLDER][relativePath + '.annotated']; }); // If no annotated version is available then try the actual file if (!exampleFile) { EXAMPLES_FOLDERS.some(EXAMPLES_FOLDER => { return exampleFile = exampleMap[EXAMPLES_FOLDER][relativePath]; }); } // If still no file then we error if (!exampleFile) { const gitIgnoreFile = collectExamples.isExampleIgnored(relativePath); if( gitIgnoreFile) { const message = createDocMessage('Ignored example file... relativePath: "' + relativePath + '"', doc) + '\n' + 'This example file exists but has been ignored by a rule, in "' + gitIgnoreFile + '".'; throw new Error(message); } else { const message = createDocMessage('Missing example file... relativePath: "' + relativePath + '".', doc) + '\n' + 'Example files can be found in the following relative paths: ' + EXAMPLES_FOLDERS.map(function(folder) { return '"' + folder + '"'; }).join(', '); throw new Error(message); } } var sourceCodeDoc = exampleFile.regions[regionName || '']; if (!sourceCodeDoc) { const message = createDocMessage('Missing example region... relativePath: "' + relativePath + '", region: "' + regionName + '".', doc) + '\n' + 'Regions available are: ' + Object.keys(exampleFile.regions).map(function(region) { return '"' + region + '"'; }).join(', '); throw new Error(message); } return sourceCodeDoc.renderedContent; }; }; rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/getExampleRegion.spec.js000066400000000000000000000040101431412030200314070ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('getExampleRegion', () => { var dgeni, injector, getExampleRegion, collectExamples, exampleMap; beforeEach(function() { dgeni = new Dgeni([testPackage('examples-package', true)]); injector = dgeni.configureInjector(); getExampleRegion = injector.get('getExampleRegion'); collectExamples = injector.get('collectExamples'); exampleMap = injector.get('exampleMap'); collectExamples.exampleFolders = ['examples']; collectExamples.registerIgnoredExamples(['filtered/path'], 'some/gitignore'); exampleMap['examples'] = { 'test/url': { regions: { '': { renderedContent: 'whole file' }, 'region-1': { renderedContent: 'region 1 contents' } } } }; }); it('should contain the whole contents from the example file if no region is specified', () => { expect(getExampleRegion({}, 'test/url')).toEqual('whole file'); }); it('should contain the region contents from the example file if a region is specified', () => { expect(getExampleRegion({}, 'test/url', 'region-1')).toEqual('region 1 contents'); }); it('should throw an error if an example doesn\'t exist', () => { expect(() => { getExampleRegion({}, 'missing/file', 'region-1'); }).toThrowError('Missing example file... relativePath: "missing/file". - doc\nExample files can be found in the following relative paths: "examples"'); expect(() => { getExampleRegion({}, 'test/url', 'missing-region'); }).toThrowError('Missing example region... relativePath: "test/url", region: "missing-region". - doc\nRegions available are: "", "region-1"'); }); it('should throw an error if an example has been filtered out', () => { expect(() => { getExampleRegion({}, 'filtered/path', 'any-region'); }).toThrowError('Ignored example file... relativePath: "filtered/path" - doc\n' + 'This example file exists but has been ignored by a rule, in "some/gitignore".'); }); }); rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/parseArgString.js000066400000000000000000000033571431412030200301670ustar00rootroot00000000000000/** * @dgService parseArgString * @description * processes an arg string in 'almost' the same fashion that the command processor does * and returns an args object in yargs format. * @kind function * @param {String} str The arg string to process * @return {Object} The args parsed into a yargs format. */ module.exports = function parseArgString() { return function parseArgStringImpl(str) { // regex from npm string-argv //[^\s'"] Match if not a space ' or " //+|['] or Match ' //([^']*) Match anything that is not ' //['] Close match if ' //+|["] or Match " //([^"]*) Match anything that is not " //["] Close match if " var rx = /[^\s'"]+|[']([^']*?)[']|["]([^"]*?)["]/gi; var value = str; var unnamedArgs = []; var args = {_: unnamedArgs}; var match, key; do { // Each call to exec returns the next regex match as an array match = rx.exec(value); if (match !== null) { // Index 1 in the array is the captured group if it exists // Index 0 is the matched text, which we use if no captured group exists var arg = match[2] ? match[2] : (match[1] ? match[1] : match[0]); if (key) { args[key] = arg; key = null; } else { if (arg.substr(arg.length - 1) === '=') { key = arg.substr(0, arg.length - 1); // remove leading '-' (or '--') if it exists. if (key.substr(0, 1) == '-') { key = key.substr(1); } if (key.substr(0, 1) == '-') { key = key.substr(1); } } else { unnamedArgs.push(arg); key = null; } } } } while (match !== null); return args; }; }; rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-matchers/000077500000000000000000000000001431412030200277555ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-matchers/block-c.js000066400000000000000000000005531431412030200316300ustar00rootroot00000000000000// These kind of comments are used CSS and other languages that do not support inline comments module.exports = { regionStartMatcher: /^\s*\/\*\s*#docregion\s*(.*)\s*\*\/\s*$/, regionEndMatcher: /^\s*\/\*\s*#enddocregion\s*(.*)\s*\*\/\s*$/, plasterMatcher: /^\s*\/\*\s*#docplaster\s*(.*)\s*\*\/\s*$/, createPlasterComment: plaster => `/* ${plaster} */` };rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-matchers/block-c.spec.js000066400000000000000000000033411431412030200325570ustar00rootroot00000000000000const matcher = require('./block-c'); describe('block-c region-matcher', () => { it('should match start annotations', () => { let matches; matches = matcher.regionStartMatcher.exec('/* #docregion A b c */'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c '); matches = matcher.regionStartMatcher.exec('/*#docregion A b c*/'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionStartMatcher.exec('/* #docregion */'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should match end annotations', () => { let matches; matches = matcher.regionEndMatcher.exec('/* #enddocregion A b c */'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c '); matches = matcher.regionEndMatcher.exec('/*#enddocregion A b c*/'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionEndMatcher.exec('/* #enddocregion */'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should match plaster annotations', () => { let matches; matches = matcher.plasterMatcher.exec('/* #docplaster A b c */'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c '); matches = matcher.plasterMatcher.exec('/*#docplaster A b c*/'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.plasterMatcher.exec('/* #docplaster */'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should create a plaster comment', () => { expect(matcher.createPlasterComment('... elided ...')).toEqual('/* ... elided ... */'); }); });rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-matchers/html.js000066400000000000000000000005001431412030200312520ustar00rootroot00000000000000// These kind of comments are used in HTML module.exports = { regionStartMatcher: /^\s*)?\s*$/, regionEndMatcher: /^\s*\s*$/, plasterMatcher: /^\s*\s*$/, createPlasterComment: plaster => `` }; rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-matchers/html.spec.js000066400000000000000000000037751431412030200322240ustar00rootroot00000000000000const matcher = require('./html'); describe('html region-matcher', () => { it('should match start annotations', () => { let matches; matches = matcher.regionStartMatcher.exec(''); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionStartMatcher.exec(''); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionStartMatcher.exec(''); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should match end annotations', () => { let matches; matches = matcher.regionEndMatcher.exec(''); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionEndMatcher.exec(''); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionEndMatcher.exec(''); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should handle annotations that do not close the comment on the same line', () => { let matches; matches = matcher.regionStartMatcher.exec(''); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.plasterMatcher.exec(''); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.plasterMatcher.exec(''); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should create a plaster comment', () => { expect(matcher.createPlasterComment('... elided ...')).toEqual(''); }); });rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-matchers/inline-c-only.js000066400000000000000000000005261431412030200327730ustar00rootroot00000000000000// These kind of comments are used in languages that do not support block comments, such as Jade module.exports = { regionStartMatcher: /^\s*\/\/\s*#docregion\s*(.*)\s*$/, regionEndMatcher: /^\s*\/\/\s*#enddocregion\s*(.*)\s*$/, plasterMatcher: /^\s*\/\/\s*#docplaster\s*(.*)\s*$/, createPlasterComment: plaster => `// ${plaster}` }; rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-matchers/inline-c-only.spec.js000066400000000000000000000033171431412030200337250ustar00rootroot00000000000000const matcher = require('./inline-c-only'); describe('inline-c-only region-matcher', () => { it('should match start annotations', () => { let matches; matches = matcher.regionStartMatcher.exec('// #docregion A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionStartMatcher.exec('//#docregion A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionStartMatcher.exec('// #docregion'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should match end annotations', () => { let matches; matches = matcher.regionEndMatcher.exec('// #enddocregion A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionEndMatcher.exec('//#enddocregion A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionEndMatcher.exec('// #enddocregion'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should match plaster annotations', () => { let matches; matches = matcher.plasterMatcher.exec('// #docplaster A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.plasterMatcher.exec('//#docplaster A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.plasterMatcher.exec('// #docplaster'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should create a plaster comment', () => { expect(matcher.createPlasterComment('... elided ...')).toEqual('// ... elided ...'); }); });rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-matchers/inline-c.js000066400000000000000000000005031431412030200320070ustar00rootroot00000000000000// This comment type is used in C like languages such as JS, TS, Dart, etc module.exports = { regionStartMatcher: /^\s*\/\/\s*#docregion\s*(.*)\s*$/, regionEndMatcher: /^\s*\/\/\s*#enddocregion\s*(.*)\s*$/, plasterMatcher: /^\s*\/\/\s*#docplaster\s*(.*)\s*$/, createPlasterComment: plaster => `/* ${plaster} */` }; rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-matchers/inline-c.spec.js000066400000000000000000000033101431412030200327370ustar00rootroot00000000000000const matcher = require('./inline-c'); describe('inline-c region-matcher', () => { it('should match start annotations', () => { let matches; matches = matcher.regionStartMatcher.exec('// #docregion A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionStartMatcher.exec('//#docregion A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionStartMatcher.exec('// #docregion'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should match end annotations', () => { let matches; matches = matcher.regionEndMatcher.exec('// #enddocregion A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionEndMatcher.exec('//#enddocregion A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionEndMatcher.exec('// #enddocregion'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should match plaster annotations', () => { let matches; matches = matcher.plasterMatcher.exec('// #docplaster A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.plasterMatcher.exec('//#docplaster A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.plasterMatcher.exec('// #docplaster'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should create a plaster comment', () => { expect(matcher.createPlasterComment('... elided ...')).toEqual('/* ... elided ... */'); }); });rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-matchers/inline-hash.js000066400000000000000000000005041431412030200325110ustar00rootroot00000000000000// These type of comments are used in hash comment based languages such as bash and Yaml module.exports = { regionStartMatcher: /^\s*#\s*#docregion\s*(.*)\s*$/, regionEndMatcher: /^\s*#\s*#enddocregion\s*(.*)\s*$/, plasterMatcher: /^\s*#\s*#docplaster\s*(.*)\s*$/, createPlasterComment: plaster => `# ${plaster}` }; rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-matchers/inline-hash.spec.js000066400000000000000000000032771431412030200334540ustar00rootroot00000000000000const matcher = require('./inline-hash'); describe('inline-hash region-matcher', () => { it('should match start annotations', () => { let matches; matches = matcher.regionStartMatcher.exec('# #docregion A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionStartMatcher.exec('##docregion A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionStartMatcher.exec('# #docregion'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should match end annotations', () => { let matches; matches = matcher.regionEndMatcher.exec('# #enddocregion A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionEndMatcher.exec('##enddocregion A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.regionEndMatcher.exec('# #enddocregion'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should match plaster annotations', () => { let matches; matches = matcher.plasterMatcher.exec('# #docplaster A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.plasterMatcher.exec('##docplaster A b c'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual('A b c'); matches = matcher.plasterMatcher.exec('# #docplaster'); expect(matches).not.toBeNull(); expect(matches[1]).toEqual(''); }); it('should create a plaster comment', () => { expect(matcher.createPlasterComment('... elided ...')).toEqual('# ... elided ...'); }); });rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-parser.js000066400000000000000000000107401431412030200300030ustar00rootroot00000000000000const blockC = require('./region-matchers/block-c'); const html = require('./region-matchers/html'); const inlineC = require('./region-matchers/inline-c'); const inlineCOnly = require('./region-matchers/inline-c-only'); const inlineHash = require('./region-matchers/inline-hash'); const DEFAULT_PLASTER = '. . .'; const {mapObject} = require('../../helpers/utils'); module.exports = function regionParser() { return regionParserImpl; }; regionParserImpl.regionMatchers = { ts: inlineC, js: inlineC, es6: inlineC, dart: inlineC, html: html, css: blockC, yaml: inlineHash, jade: inlineCOnly, json: inlineC, 'json.annotated': inlineC }; /** * @param contents string * @param fileType string * @returns {contents: string, regions: {[regionName: string]: string}} */ function regionParserImpl(contents, fileType) { const regionMatcher = regionParserImpl.regionMatchers[fileType]; const openRegions = []; const regionMap = {}; if (regionMatcher) { let plaster = regionMatcher.createPlasterComment(DEFAULT_PLASTER); const lines = contents.split(/\r?\n/).filter((line, index) => { const startRegion = line.match(regionMatcher.regionStartMatcher); const endRegion = line.match(regionMatcher.regionEndMatcher); const updatePlaster = line.match(regionMatcher.plasterMatcher); // start region processing if (startRegion) { // open up the specified region const regionNames = getRegionNames(startRegion[1]); if (regionNames.length === 0) { regionNames.push(''); } regionNames.forEach(regionName => { const region = regionMap[regionName]; if (region) { if (region.open) { throw new RegionParserError( `Tried to open a region, named "${regionName}", that is already open`, index); } region.open = true; if (plaster) { region.lines.push(plaster); } } else { regionMap[regionName] = {lines: [], open: true}; } openRegions.push(regionName); }); // end region processing } else if (endRegion) { if (openRegions.length === 0) { throw new RegionParserError('Tried to close a region when none are open', index); } // close down the specified region (or most recent if no name is given) const regionNames = getRegionNames(endRegion[1]); if (regionNames.length === 0) { regionNames.push(openRegions[openRegions.length - 1]); } regionNames.forEach(regionName => { const region = regionMap[regionName]; if (!region || !region.open) { throw new RegionParserError( `Tried to close a region, named "${regionName}", that is not open`, index); } region.open = false; removeLast(openRegions, regionName); }); // doc plaster processing } else if (updatePlaster) { const plasterString = updatePlaster[1].trim(); plaster = plasterString ? regionMatcher.createPlasterComment(plasterString) : ''; // simple line of content processing } else { openRegions.forEach(regionName => regionMap[regionName].lines.push(line)); // do not filter out this line from the content return true; } // this line contained an annotation so let's filter it out return false; }); if (!regionMap['']) { regionMap[''] = {lines}; } return { contents: lines.join('\n'), regions: mapObject(regionMap, (regionName, region) => leftAlign(region.lines).join('\n')) }; } else { return {contents, regions: {}}; } } function getRegionNames(input) { return (input.trim() === '') ? [] : input.split(',').map(name => name.trim()); } function removeLast(array, item) { const index = array.lastIndexOf(item); array.splice(index, 1); } function leftAlign(lines) { let indent = Number.MAX_VALUE; lines.forEach(line => { const lineIndent = line.search(/\S/); if (lineIndent !== -1) { indent = Math.min(lineIndent, indent); } }); return lines.map(line => line.substr(indent)); } function RegionParserError(message, index) { const lineNum = index + 1; this.message = `regionParser: ${message} (at line ${lineNum}).`; this.lineNum = lineNum; this.stack = (new Error()).stack; } RegionParserError.prototype = Object.create(Error.prototype); RegionParserError.prototype.constructor = RegionParserError; rxjs-7.5.7/docs_app/tools/transforms/examples-package/services/region-parser.spec.js000066400000000000000000000177161431412030200307460ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); const testRegionMatcher = { regionStartMatcher: /^\s*\/\*\s*#docregion\s+(.*)\s*\*\/\s*$/, regionEndMatcher: /^\s*\/\*\s*#enddocregion\s+(.*)\s*\*\/\s*$/, plasterMatcher: /^\s*\/\*\s*#docplaster\s+(.*)\s*\*\/\s*$/, createPlasterComment: plaster => `/* ${plaster} */` }; describe('regionParser service', () => { var dgeni, injector, regionParser; beforeEach(function() { dgeni = new Dgeni([testPackage('examples-package', true)]); injector = dgeni.configureInjector(); regionParser = injector.get('regionParser'); regionParser.regionMatchers = {'test-type': testRegionMatcher}; }); it('should return just the contents if there is no region-matcher for the file type', () => { const output = regionParser('some contents', 'unknown'); expect(output).toEqual({contents: 'some contents', regions: {}}); }); it('should return just the contents if there is a region-matcher but no regions', () => { const output = regionParser('some contents', 'test-type'); expect(output).toEqual({contents: 'some contents', regions: { '': 'some contents' }}); }); it('should remove start region annotations from the contents', () => { const output = regionParser( t('/* #docregion */', 'abc', '/* #docregion X */', 'def', '/* #docregion Y */', 'ghi'), 'test-type'); expect(output.contents).toEqual(t('abc', 'def', 'ghi')); }); it('should remove end region annotations from the contents', () => { const output = regionParser( t('/* #docregion */', 'abc', '/* #docregion X */', 'def', '/* #enddocregion X */', '/* #docregion Y */', 'ghi', '/* #enddocregion Y */', '/* #enddocregion */'), 'test-type'); expect(output.contents).toEqual(t('abc', 'def', 'ghi')); }); it('should left align the text of the region', () => { const output = regionParser( t( '/* #docregion X */', ' all', ' indented', ' by', ' two', ' spaces', '/* #enddocregion X */', '/* #docregion Y */', ' first', ' line', ' indented', ' more', ' than', ' later', ' lines', '/* #enddocregion Y */', '/* #docregion Z */', ' ignore', ' ', ' empty', '', ' lines', '/* #enddocregion Z */' ), 'test-type'); expect(output.regions['X']).toEqual(t('all', ' indented', ' by', 'two', 'spaces')); expect(output.regions['Y']).toEqual(t(' first', 'line', 'indented', ' more', 'than', 'later', 'lines')); expect(output.regions['Z']).toEqual(t('ignore', '', 'empty', '', 'lines')); }); it('should remove doc plaster annotations from the contents', () => { const output = regionParser(t('/* #docplaster ... elided ... */', 'abc', 'def', 'ghi'), 'test-type'); expect(output.contents).toEqual(t('abc', 'def', 'ghi')); }); it('should capture the rest of the contents for a region with no end region annotation', () => { const output = regionParser( t('/* #docregion */', 'abc', '/* #docregion X */', 'def', '/* #docregion Y */', 'ghi'), 'test-type'); expect(output.regions['']).toEqual(t('abc', 'def', 'ghi')); expect(output.regions['X']).toEqual(t('def', 'ghi')); expect(output.regions['Y']).toEqual(t('ghi')); }); it('should capture the contents for a region up to the end region annotation', () => { const output = regionParser( t('/* #docregion */', 'abc', '/* #enddocregion */', '/* #docregion X */', 'def', '/* #enddocregion X */', '/* #docregion Y */', 'ghi', '/* #enddocregion Y */'), 'test-type'); expect(output.regions['']).toEqual(t('abc')); expect(output.regions['X']).toEqual(t('def')); expect(output.regions['Y']).toEqual(t('ghi')); }); it('should open a region with a null name if there is no region name', () => { const output = regionParser(t('/* #docregion */', 'abc', '/* #enddocregion */'), 'test-type'); expect(output.regions['']).toEqual('abc'); }); it('should close the most recently opened region if there is no region name', () => { const output = regionParser( t('/* #docregion X*/', 'abc', '/* #docregion Y */', 'def', '/* #enddocregion */', 'ghi', '/* #enddocregion */'), 'test-type'); expect(output.regions['X']).toEqual(t('abc', 'def', 'ghi')); expect(output.regions['Y']).toEqual(t('def')); }); it('should handle overlapping regions', () => { const output = regionParser( t('/* #docregion X*/', 'abc', '/* #docregion Y */', 'def', '/* #enddocregion X */', 'ghi', '/* #enddocregion Y */'), 'test-type'); expect(output.regions['X']).toEqual(t('abc', 'def')); expect(output.regions['Y']).toEqual(t('def', 'ghi')); }); it('should error if we attempt to open an already open region', () => { expect(() => regionParser(t('/* #docregion */', 'abc', '/* #docregion */', 'def'), 'test-type')) .toThrowError( 'regionParser: Tried to open a region, named "", that is already open (at line 3).'); expect( () => regionParser(t('/* #docregion X */', 'abc', '/* #docregion X */', 'def'), 'test-type')) .toThrowError( 'regionParser: Tried to open a region, named "X", that is already open (at line 3).'); }); it('should error if we attempt to close an already closed region', () => { expect(() => regionParser(t('abc', '/* #enddocregion */', 'def'), 'test-type')) .toThrowError('regionParser: Tried to close a region when none are open (at line 2).'); expect( () => regionParser(t('/* #docregion */', 'abc', '/* #enddocregion X */', 'def'), 'test-type')) .toThrowError( 'regionParser: Tried to close a region, named "X", that is not open (at line 3).'); }); it('should handle whitespace in region names on single annotation', () => { const output = regionParser(t('/* #docregion A B*/', 'abc', '/* #docregion A C */', 'def'), 'test-type'); expect(output.regions['A B']).toEqual(t('abc', 'def')); expect(output.regions['A C']).toEqual(t('def')); }); it('should join multiple regions with the default plaster string (". . .")', () => { const output = regionParser( t('/* #docregion */', 'abc', '/* #enddocregion */', 'def', '/* #docregion */', 'ghi', '/* #enddocregion */'), 'test-type'); expect(output.regions['']).toEqual(t('abc', '/* . . . */', 'ghi')); }); it('should join multiple regions with the current plaster string', () => { const output = regionParser( t('/* #docregion */', 'abc', '/* #enddocregion */', 'def', '/* #docregion */', 'ghi', '/* #enddocregion */', '/* #docplaster ... elided ... */', '/* #docregion A */', 'jkl', '/* #enddocregion A */', 'mno', '/* #docregion A */', 'pqr', '/* #enddocregion A */'), 'test-type'); expect(output.regions['']).toEqual(t('abc', '/* . . . */', 'ghi')); expect(output.regions['A']).toEqual(t('jkl', '/* ... elided ... */', 'pqr')); }); it('should remove the plaster altogether if the current plaster string is ""', () => { const output = regionParser( t('/* #docregion */', 'abc', '/* #enddocregion */', 'def', '/* #docregion */', 'ghi', '/* #enddocregion */', '/* #docplaster */', '/* #docregion A */', 'jkl', '/* #enddocregion A */', 'mno', '/* #docregion A */', 'pqr', '/* #enddocregion A */'), 'test-type'); expect(output.regions['']).toEqual(t('abc', '/* . . . */', 'ghi')); expect(output.regions['A']).toEqual(t('jkl', 'pqr')); }); it('should parse multiple region names separated by commas', () => { const output = regionParser( t('/* #docregion , A, B */', 'abc', '/* #enddocregion B */', '/* #docregion C */', 'xyz', '/* #enddocregion A, C */', '123', '/* #enddocregion */'), 'test-type'); expect(output.regions['']).toEqual(t('abc', 'xyz', '123')); expect(output.regions['A']).toEqual(t('abc', 'xyz')); expect(output.regions['B']).toEqual(t('abc')); expect(output.regions['C']).toEqual(t('xyz')); }); }); function t() { return Array.prototype.join.call(arguments, '\n'); } rxjs-7.5.7/docs_app/tools/transforms/helpers/000077500000000000000000000000001431412030200212765ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/helpers/test-package.js000066400000000000000000000016411431412030200242060ustar00rootroot00000000000000/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ const path = require('canonical-path'); const Package = require('dgeni').Package; module.exports = function testPackage(packageName, mockTemplateEngine) { const pkg = new Package('mock_' + packageName, [require('../' + packageName)]); // provide a mock log service pkg.factory('log', function() { return require('dgeni/lib/mocks/log')(false); }); // overrides base packageInfo and returns the one for the 'angular/angular' repo. const PROJECT_ROOT = path.resolve(__dirname, '../../../..'); pkg.factory('packageInfo', function() { return require(path.resolve(PROJECT_ROOT, 'package.json')); }); if (mockTemplateEngine) { pkg.factory('templateEngine', function() { return {}; }); } return pkg; }; rxjs-7.5.7/docs_app/tools/transforms/helpers/utils.js000066400000000000000000000044311431412030200227760ustar00rootroot00000000000000module.exports = { /** * Transform the values of an object via a mapper function * @param {Object} obj * @param {Function} mapper */ mapObject(obj, mapper) { const mappedObj = {}; Object.keys(obj).forEach(key => { mappedObj[key] = mapper(key, obj[key]); }); return mappedObj; }, /** * Parses the attributes from a string taken from an HTML element start tag * E.g. ` a="one" b="two" ` * @param {string} str */ parseAttributes(str) { const attrMap = {}; let index = 0; skipSpace(); while(index < str.length) { takeAttribute(); skipSpace(); } function takeAttribute() { const key = takeKey(); skipSpace(); if (tryEquals()) { skipSpace(); const quote = tryQuote(); attrMap[key] = takeValue(quote); // skip the closing quote or whitespace index++; } else { attrMap[key] = true; } } function skipSpace() { while(index < str.length && /\s/.test(str[index])) { index++; } } function tryEquals() { if (str[index] === '=') { index++; return true; } } function takeKey() { let startIndex = index; while(index < str.length && /[^\s=]/.test(str[index])) { index++; } return str.substring(startIndex, index); } function tryQuote() { const quote = str[index]; if (['"', '\''].indexOf(quote) !== -1) { index++; return quote; } } function takeValue(quote) { let startIndex = index; if (quote) { while(index < str.length && str[index] !== quote) { index++; } if (index >= str.length) { throw new Error(`Unterminated quoted attribute value in \`${str}\`. Starting at ${startIndex}. Expected a ${quote} but got "end of string".`); } } else { while(index < str.length && /\S/.test(str[index])) { index++; } } return str.substring(startIndex, index); } return attrMap; }, renderAttributes(attrMap) { return Object.keys(attrMap).map(key => attrMap[key] === false ? '' : attrMap[key] === true ? ` ${key}` : ` ${key}="${attrMap[key].replace(/"/g, '"')}"`).join(''); } }; rxjs-7.5.7/docs_app/tools/transforms/helpers/utils.spec.js000066400000000000000000000065621431412030200237360ustar00rootroot00000000000000const { mapObject, parseAttributes, renderAttributes } = require('./utils'); describe('utils', () => { describe('mapObject', () => { it('creates a new object', () => { const testObj = { a: 1 }; const mappedObj = mapObject(testObj, (key, value) => value); expect(mappedObj).toEqual(testObj); expect(mappedObj).not.toBe(testObj); }); it('maps the values via the mapper function', () => { const testObj = { a: 1, b: 2 }; const mappedObj = mapObject(testObj, (key, value) => value * 2); expect(mappedObj).toEqual({ a: 2, b: 4 }); }); }); describe('parseAttributes', () => { it('should parse empty string', () => { const attrs = parseAttributes(''); expect(attrs).toEqual({ }); }); it('should parse blank string', () => { const attrs = parseAttributes(' '); expect(attrs).toEqual({ }); }); it('should parse double quoted attributes', () => { const attrs = parseAttributes('a="one" b="two"'); expect(attrs).toEqual({ a: 'one', b: 'two' }); }); it('should parse empty quoted attributes', () => { const attrs = parseAttributes('a="" b="two"'); expect(attrs).toEqual({ a: '', b: 'two' }); }); it('should parse single quoted attributes', () => { const attrs = parseAttributes('a=\'one\' b=\'two\''); expect(attrs).toEqual({ a: 'one', b: 'two' }); }); it('should ignore whitespace', () => { const attrs = parseAttributes(' a = "one" b = "two" '); expect(attrs).toEqual({ a: 'one', b: 'two' }); }); it('should parse attributes with quotes within quotes', () => { const attrs = parseAttributes('a=\'o"n"e\' b="t\'w\'o"'); expect(attrs).toEqual({ a: 'o"n"e', b: 't\'w\'o' }); }); it('should parse attributes with spaces in their values', () => { const attrs = parseAttributes('a="one and two" b="three and four"'); expect(attrs).toEqual({ a: 'one and two', b: 'three and four' }); }); it('should parse empty attributes', () => { const attrs = parseAttributes('a b="two"'); expect(attrs).toEqual({ a: true, b: 'two' }); }); it('should parse unquoted attributes', () => { const attrs = parseAttributes('a=one b=two'); expect(attrs).toEqual({ a: 'one', b: 'two' }); }); it('should complain if a quoted attribute is not closed', () => { expect(() => parseAttributes('a="" b="two')).toThrowError( 'Unterminated quoted attribute value in `a="" b="two`. Starting at 8. Expected a " but got "end of string".' ); }); }); describe('renderAttributes', () => { it('should convert key-value map to a strong that can be used in HTML', () => { expect(renderAttributes({ foo: 'bar', moo: 'car' })).toEqual(' foo="bar" moo="car"'); }); it('should handle boolean values', () => { expect(renderAttributes({ foo: 'bar', loo: true, moo: false })) .toEqual(' foo="bar" loo'); }); it('should escape double quotes inside the value', () => { expect(renderAttributes({ foo: 'bar "car"' })).toEqual(' foo="bar "car""'); }); it('should not escape single quotes inside the value', () => { expect(renderAttributes({ foo: 'bar \'car\'' })).toEqual(' foo="bar \'car\'"'); }); it('should handle an empty object', () => { expect(renderAttributes({ })).toEqual(''); }); }); }); rxjs-7.5.7/docs_app/tools/transforms/links-package/000077500000000000000000000000001431412030200223455ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/links-package/index.js000066400000000000000000000020261431412030200240120ustar00rootroot00000000000000var Package = require('dgeni').Package; var jsdocPackage = require('dgeni-packages/jsdoc'); module.exports = new Package('links', [jsdocPackage]) .factory(require('./inline-tag-defs/link')) .factory(require('./services/getAliases')) .factory(require('./services/getDocFromAlias')) .factory(require('./services/getLinkInfo')) .factory(require('./services/disambiguators/disambiguateByDeprecated')) .factory(require('./services/disambiguators/disambiguateByNonMember')) .factory(require('./services/disambiguators/disambiguateByModule')) .factory(require('./services/disambiguators/disambiguateByNonOperator')) .config(function (inlineTagProcessor, linkInlineTagDef) { inlineTagProcessor.inlineTagDefinitions.push(linkInlineTagDef); }) .config(function (getDocFromAlias, disambiguateByDeprecated, disambiguateByNonMember, disambiguateByModule, disambiguateByNonOperator) { getDocFromAlias.disambiguators = [disambiguateByDeprecated, disambiguateByNonMember, disambiguateByModule, disambiguateByNonOperator]; }); rxjs-7.5.7/docs_app/tools/transforms/links-package/inline-tag-defs/000077500000000000000000000000001431412030200253135ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/links-package/inline-tag-defs/link.js000066400000000000000000000025221431412030200266070ustar00rootroot00000000000000var INLINE_LINK = /(\S+)(?:\s+([\s\S]+))?/; /** * @dgService linkInlineTagDef * @description * Process inline link tags (of the form {@link some/uri Some Title}), replacing them with HTML anchors * @kind function * @param {Object} url The url to match * @param {Function} docs error message * @return {String} The html link information * * @property {boolean} failOnBadLink Whether to throw an error (aborting the processing) if a link is invalid. */ module.exports = function linkInlineTagDef(getLinkInfo, createDocMessage, log) { return { name: 'link', aliases: ['linkDocs'], failOnBadLink: false, description: 'Process inline link tags (of the form {@link some/uri Some Title}), replacing them with HTML anchors', handler(doc, tagName, tagDescription) { // Parse out the uri and title return tagDescription.replace(INLINE_LINK, (match, uri, title) => { var linkInfo = getLinkInfo(uri, title, doc); if (!linkInfo.valid) { const message = createDocMessage(`Error in {@${tagName} ${tagDescription}} - ${linkInfo.error}`, doc); if (this.failOnBadLink) { throw new Error(message); } else { log.warn(message); } } return '' + linkInfo.title + ''; }); } }; };rxjs-7.5.7/docs_app/tools/transforms/links-package/inline-tag-defs/link.spec.js000066400000000000000000000044631431412030200275460ustar00rootroot00000000000000var testPackageFactory = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('link inline-tag-def', function() { let injector, tag, getLinkInfo, log; beforeEach(() => { getLinkInfo = jasmine.createSpy('getLinkInfo'); const testPackage = testPackageFactory('links-package', true) .factory('getLinkInfo', function() { return getLinkInfo; }); getLinkInfo.disambiguators = []; const dgeni = new Dgeni([testPackage]); injector = dgeni.configureInjector(); tag = injector.get('linkInlineTagDef'); log = injector.get('log'); }); it('should be available as a service', () => { expect(tag).toBeDefined(); expect(tag.name).toEqual('link'); expect(tag.aliases).toEqual(['linkDocs']); }); it('should call getLinkInfo', () => { const doc = {}; const tagName = 'link'; const tagDescription = 'doc-id link text'; getLinkInfo.and.returnValue({ url: 'url/to/doc', title: 'link text' }); tag.handler(doc, tagName, tagDescription); expect(getLinkInfo).toHaveBeenCalledWith('doc-id', 'link text', doc); }); it('should return an HTML anchor tag', () => { const doc = {}; const tagName = 'link'; const tagDescription = 'doc-id link text'; getLinkInfo.and.returnValue({ url: 'url/to/doc', title: 'link text' }); const result = tag.handler(doc, tagName, tagDescription); expect(result).toEqual('link text'); }); it('should log a warning if not failOnBadLink and the link is "bad"', () => { const doc = {}; const tagName = 'link'; const tagDescription = 'doc-id link text'; getLinkInfo.and.returnValue({ valid: false, error: 'Error message', errorType: 'error' }); expect(() => tag.handler(doc, tagName, tagDescription)).not.toThrow(); expect(log.warn).toHaveBeenCalledWith('Error in {@link doc-id link text} - Error message - doc'); }); it('should throw an error if failOnBadLink and the link is "bad"', () => { const doc = {}; const tagName = 'link'; const tagDescription = 'doc-id link text'; getLinkInfo.and.returnValue({ valid: false, error: 'Error message', errorType: 'error' }); tag.failOnBadLink = true; expect(() => tag.handler(doc, tagName, tagDescription)).toThrowError('Error in {@link doc-id link text} - Error message - doc'); }); }); rxjs-7.5.7/docs_app/tools/transforms/links-package/services/000077500000000000000000000000001431412030200241705ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/links-package/services/disambiguators/000077500000000000000000000000001431412030200272055ustar00rootroot00000000000000disambiguateByDeprecated.js000066400000000000000000000003621431412030200343770ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/links-package/services/disambiguatorsmodule.exports = function disambiguateByDeprecated() { return (alias, originatingDoc, docs) => { const filteredDocs = docs.filter((doc) => doc.deprecated === undefined); return filteredDocs.length > 0 ? filteredDocs : docs; }; }; disambiguateByDeprecated.spec.js000066400000000000000000000012661431412030200353340ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/links-package/services/disambiguatorsconst disambiguateByDeprecated = require('./disambiguateByDeprecated')(); const doc1 = { id: 'doc1' }; const doc2 = { id: 'doc2', deprecated: true }; const doc3 = { id: 'doc3', deprecated: '' }; const doc4 = { id: 'doc4' }; const doc5 = { id: 'doc5', deprecated: 'Some text' }; describe('disambiguateByDeprecated', () => { it('should filter out docs whose `deprecated` property is defined', () => { expect(disambiguateByDeprecated('alias', {}, [doc1, doc2, doc3, doc4, doc5])).toEqual([doc1, doc4]); }); it('should not filter docs if all of them are `deprecated`', () => { expect(disambiguateByDeprecated('alias', {}, [doc2, doc3, doc5])).toEqual([doc2, doc3, doc5]); }); }); rxjs-7.5.7/docs_app/tools/transforms/links-package/services/disambiguators/disambiguateByModule.js000066400000000000000000000006031431412030200336410ustar00rootroot00000000000000module.exports = function disambiguateByModule() { return (alias, originatingDoc, docs) => { const originatingModule = originatingDoc && originatingDoc.moduleDoc; if (originatingModule) { const filteredDocs = docs.filter(doc => doc.moduleDoc === originatingModule); if (filteredDocs.length > 0) { return filteredDocs; } } return docs; }; }; disambiguateByModule.spec.js000066400000000000000000000020261431412030200345140ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/links-package/services/disambiguatorsconst disambiguateByModule = require('./disambiguateByModule')(); const moduleA = { name: 'a' }; const moduleB = { name: 'b' }; const docs = [ { id: 'doc1', moduleDoc: moduleA }, { id: 'doc2', moduleDoc: moduleA }, { id: 'doc3', moduleDoc: moduleB }, ]; describe('disambiguateByModule', () => { it('should return all docs if the originating doc has no moduleDoc', () => { expect(disambiguateByModule('alias', { }, docs)).toEqual(docs); }); it('should return all docs if no docs match the originating doc moduleDoc', () => { expect(disambiguateByModule('alias', { moduleDoc: { name: 'c' } }, docs)).toEqual(docs); }); it('should return only docs that match the moduleDoc of the originating doc', () => { expect(disambiguateByModule('alias', { moduleDoc: moduleA }, docs)).toEqual([ { id: 'doc1', moduleDoc: moduleA }, { id: 'doc2', moduleDoc: moduleA }, ]); expect(disambiguateByModule('alias', { moduleDoc: moduleB }, docs)).toEqual([ { id: 'doc3', moduleDoc: moduleB }, ]); }); });disambiguateByNonMember.js000066400000000000000000000011461431412030200342220ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/links-package/services/disambiguators/** * This link disambiguator will remove all the members from the list of ambiguous links * if there is at least one link to a doc that is not a member. * * The heuristic is that exports are more important than members when linking, and that * in general members will be linked to via a more explicit code links such as * `MyClass.member` rather than simply `member`. */ module.exports = function disambiguateByNonMember() { return (alias, originatingDoc, docs) => { const filteredDocs = docs.filter(doc => doc.docType !== 'member'); return filteredDocs.length > 0 ? filteredDocs : docs; }; }; disambiguateByNonMember.spec.js000066400000000000000000000017711431412030200351570ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/links-package/services/disambiguatorsconst disambiguateByNonMember = require('./disambiguateByNonMember')(); const doc1 = { id: 'doc1', docType: 'function', containerDoc: {} }; const doc2 = { id: 'doc2', docType: 'member', containerDoc: {} }; const doc3 = { id: 'doc3', docType: 'member', containerDoc: {} }; const doc4 = { id: 'doc4', docType: 'class', containerDoc: {} }; const doc5 = { id: 'doc5', docType: 'member', containerDoc: {} }; describe('disambiguateByNonMember', () => { it('should filter out docs that are not members', () => { const docs = [doc1, doc2, doc3, doc4, doc5]; expect(disambiguateByNonMember('alias', {}, docs)).toEqual([doc1, doc4]); }); it('should return all docs if there are no members', () => { const docs = [doc1, doc4]; expect(disambiguateByNonMember('alias', {}, docs)).toEqual([doc1, doc4]); }); it('should return all docs if there are only members', () => { const docs = [doc2, doc3, doc5]; expect(disambiguateByNonMember('alias', {}, docs)).toEqual([doc2, doc3, doc5]); }); }); disambiguateByNonOperator.js000066400000000000000000000007701431412030200346100ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/links-package/services/disambiguators/** * This link disambiguator will remove all the members from the list of ambiguous links * if there is at least one link to a doc that does not belong to 'operators' module. * TODO Remove this disambiguator once 'rxjs/operators' export is removed */ module.exports = function disambiguateByNonOperator() { return (alias, originatingDoc, docs) => { const filteredDocs = docs.filter((doc) => doc.moduleDoc?.id !== 'operators'); return filteredDocs.length > 0 ? filteredDocs : docs; }; }; disambiguateByNonOperator.spec.js000066400000000000000000000017121431412030200355360ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/links-package/services/disambiguatorsconst disambiguateByNonOperator = require('./disambiguateByNonOperator')(); const indexModule = { id: 'index' }; const operatorsModule = { id: 'operators' }; const doc1 = { id: 'doc1', moduleDoc: indexModule }; const doc2 = { id: 'doc2', moduleDoc: operatorsModule }; const doc3 = { id: 'doc3', moduleDoc: operatorsModule }; const doc4 = { id: 'doc4', moduleDoc: indexModule }; describe('disambiguateByNonOperator', () => { it('should filter out docs that are not operators', () => { const docs = [doc1, doc2]; expect(disambiguateByNonOperator('alias', {}, docs)).toEqual([doc1]); }); it('should return all docs if there are no operators', () => { const docs = [doc1, doc4]; expect(disambiguateByNonOperator('alias', {}, docs)).toEqual([doc1, doc4]); }); it('should return all docs if there are only operators', () => { const docs = [doc2, doc3]; expect(disambiguateByNonOperator('alias', {}, docs)).toEqual([doc2, doc3]); }); }); rxjs-7.5.7/docs_app/tools/transforms/links-package/services/getAliases.js000066400000000000000000000034761431412030200266210ustar00rootroot00000000000000 function parseCodeName(codeName) { var parts = []; var currentPart; codeName.split('.').forEach(function(part) { var subParts = part.split(':'); var name = subParts.pop(); var modifier = subParts.pop(); if (!modifier && currentPart) { currentPart.name += '.' + name; } else { currentPart = {name: name, modifier: modifier}; parts.push(currentPart); } }); return parts; } /** * @dgService getAliases * @description * Get a list of all the aliases that can be made from the doc * @param {Object} doc A doc from which to extract aliases * @return {Array} A collection of aliases */ module.exports = function getAliases() { return function(doc) { var codeNameParts = parseCodeName(doc.id); var methodName; var aliases = []; // Add the last part to the list of aliases var part = codeNameParts.pop(); // If the name contains a # then it is a member and that should be included in the aliases if (part.name.indexOf('#') !== -1) { methodName = part.name.split('#')[1]; } // Add the part name and modifier, if provided aliases.push(part.name); if (part.modifier) { aliases.push(part.modifier + ':' + part.name); } // Continue popping off the parts of the codeName and work forward collecting up each alias aliases = codeNameParts.reduceRight(function(aliases, part) { // Add this part to each of the aliases we have so far aliases.forEach(function(name) { // Add the part name and modifier, if provided aliases.push(part.name + '.' + name); if (part.modifier) { aliases.push(part.modifier + ':' + part.name + '.' + name); } }); return aliases; }, aliases); if (methodName) { aliases.push(methodName); } return aliases; }; };rxjs-7.5.7/docs_app/tools/transforms/links-package/services/getAliases.spec.js000066400000000000000000000006601431412030200275420ustar00rootroot00000000000000var getAliasesFactory = require('./getAliases'); describe('getAliases', function() { it('should extract all the parts from a code name', function() { var getAliases = getAliasesFactory(); expect(getAliases({id: 'module:ng.service:$http#get'})).toEqual([ '$http#get', 'service:$http#get', 'ng.$http#get', 'module:ng.$http#get', 'ng.service:$http#get', 'module:ng.service:$http#get', 'get' ]); }); }); rxjs-7.5.7/docs_app/tools/transforms/links-package/services/getDocFromAlias.js000066400000000000000000000017211431412030200275320ustar00rootroot00000000000000/** * @dgService getDocFromAlias * @description Get an array of docs that match this alias, relative to the originating doc. * * @property {Array<(alias: string, originatingDoc: Doc, ambiguousDocs: Doc[]) => Doc[]>} disambiguators * a collection of functions that attempt to resolve ambiguous links. Each disambiguator returns * a new collection of docs with unwanted ambiguous docs removed (see links-package/service/disambiguators * for examples). */ module.exports = function getDocFromAlias(aliasMap) { getDocFromAlias.disambiguators = []; return getDocFromAlias; function getDocFromAlias(alias, originatingDoc) { return getDocFromAlias.disambiguators.reduce( // Run the disambiguators while there is more than 1 doc found (docs, disambiguator) => docs.length > 1 ? disambiguator(alias, originatingDoc, docs) : docs, // Start with the docs that match the alias aliasMap.getDocs(alias) ); } }; rxjs-7.5.7/docs_app/tools/transforms/links-package/services/getDocFromAlias.spec.js000066400000000000000000000035261431412030200304700ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); var getDocFromAlias, aliasMap; describe('getDocFromAlias', () => { beforeEach(() => { var dgeni = new Dgeni([testPackage('links-package', true)]); var injector = dgeni.configureInjector(); aliasMap = injector.get('aliasMap'); getDocFromAlias = injector.get('getDocFromAlias'); }); it('should return an array of docs that match the alias', () => { var doc1 = {aliases: ['a', 'b', 'c']}; var doc2 = {aliases: ['a', 'b']}; var doc3 = {aliases: ['a']}; aliasMap.addDoc(doc1); aliasMap.addDoc(doc2); aliasMap.addDoc(doc3); expect(getDocFromAlias('a')).toEqual([doc1, doc2, doc3]); expect(getDocFromAlias('b')).toEqual([doc1, doc2]); expect(getDocFromAlias('c')).toEqual([doc1]); }); it('should filter ambiguous docs by calling each disambiguator', () => { getDocFromAlias.disambiguators = [ (alias, originatingDoc, docs) => docs.filter(doc => doc.name.indexOf('X') !== -1), // only if X appears in name (alias, originatingDoc, docs) => docs.filter(doc => doc.name.indexOf('Y') !== -1) // only if Y appears in name ]; var doc1 = {name: 'X', aliases: ['a', 'b', 'c']}; var doc2 = {name: 'Y', aliases: ['a', 'b']}; var doc3 = {name: 'XY', aliases: ['a', 'c']}; aliasMap.addDoc(doc1); aliasMap.addDoc(doc2); aliasMap.addDoc(doc3); // doc1 and doc2 get removed as they don't both have X and Y in name expect(getDocFromAlias('a')).toEqual([doc3]); // doc2 gets removed as it has no X; then we have only one doc left so second disambiguator never runs expect(getDocFromAlias('b')).toEqual([doc1]); // doc1 gets removed as it has no Y; then we have only one doc left (which would anyway pass 2nd disambiguator) expect(getDocFromAlias('c')).toEqual([doc3]); }); });rxjs-7.5.7/docs_app/tools/transforms/links-package/services/getLinkInfo.js000066400000000000000000000051101431412030200267340ustar00rootroot00000000000000var path = require('canonical-path'); /** * @dgService getLinkInfo * @description * Get link information to a document that matches the given url * @kind function * @param {String} url The url to match * @param {String} title An optional title to return in the link information * @return {Object} The link information * * @property {boolean} relativeLinks Whether we expect the links to be relative to the originating doc */ module.exports = function getLinkInfo(getDocFromAlias, encodeCodeBlock, log) { return getLinkInfoImpl; function getLinkInfoImpl(url, title, currentDoc) { var linkInfo = {url: url, type: 'url', valid: true, title: title || url}; if (!url) { throw new Error('Invalid url'); } var docs = getDocFromAlias(url, currentDoc); if (!getLinkInfoImpl.useFirstAmbiguousLink && docs.length > 1) { linkInfo.valid = false; linkInfo.errorType = 'ambiguous'; linkInfo.error = 'Ambiguous link: "' + url + '".\n' + docs.reduce(function(msg, doc) { return msg + '\n "' + doc.id + '" (' + doc.docType + ') : (' + doc.path + ' / ' + doc.fileInfo.relativePath + ')'; }, 'Matching docs: '); } else if (docs.length >= 1) { linkInfo.url = docs[0].path; linkInfo.title = title || docs[0].title || docs[0].name && encodeCodeBlock(docs[0].name, true); linkInfo.type = 'doc'; if (getLinkInfoImpl.relativeLinks && currentDoc && currentDoc.path) { var currentFolder = path.dirname(currentDoc.path); var docFolder = path.dirname(linkInfo.url); var relativeFolder = path.relative(path.join('/', currentFolder), path.join('/', docFolder)); linkInfo.url = path.join(relativeFolder, path.basename(linkInfo.url)); log.debug(currentDoc.path, docs[0].path, linkInfo.url); } } else if (url.indexOf('#') > 0) { var pathAndHash = url.split('#'); linkInfo = getLinkInfoImpl(pathAndHash[0], title, currentDoc); linkInfo.url = linkInfo.url + '#' + pathAndHash[1]; return linkInfo; } else if (url.indexOf('/') === -1 && url.indexOf('#') !== 0) { linkInfo.valid = false; linkInfo.errorType = 'missing'; linkInfo.error = 'Invalid link (does not match any doc): "' + url + '"'; } else { linkInfo.title = title || ((url.indexOf('#') === 0) ? url.substring(1) : path.basename(url, '.html')); } if (linkInfo.title === undefined) { linkInfo.valid = false; linkInfo.errorType = 'no-title'; linkInfo.error = 'The link is missing a title'; } return linkInfo; } }; rxjs-7.5.7/docs_app/tools/transforms/links-package/services/getLinkInfo.spec.js000066400000000000000000000054061431412030200276750ustar00rootroot00000000000000const testPackage = require('../../helpers/test-package'); const Dgeni = require('dgeni'); let getLinkInfo, aliasMap; describe('getLinkInfo', () => { beforeEach(function() { var dgeni = new Dgeni([testPackage('links-package', true)]); var injector = dgeni.configureInjector(); aliasMap = injector.get('aliasMap'); getLinkInfo = injector.get('getLinkInfo'); }); it('should use the title if specified', () => { aliasMap.addDoc({ docType: 'guide', title: 'Browser Support', name: 'browser-support', id: 'guide/browser-support', aliases: ['guide/browser-support', 'browser-support'], path: 'guide/browser-support' }); const currentDoc = { }; const linkInfo = getLinkInfo('browser-support', '"Browser Support Guide"', currentDoc); expect(linkInfo.title).toBe('"Browser Support Guide"'); }); it('should set the link to invalid if the title is `undefined`', () => { aliasMap.addDoc({ docType: 'guide', id: 'guide/browser-support', aliases: ['guide/browser-support', 'browser-support'], path: 'guide/browser-support' }); const currentDoc = { }; const linkInfo = getLinkInfo('browser-support', undefined, currentDoc); expect(linkInfo.valid).toBe(false); expect(linkInfo.errorType).toEqual('no-title'); expect(linkInfo.error).toEqual('The link is missing a title'); }); it('should use the target document title if available and no title is specified', () => { aliasMap.addDoc({ docType: 'guide', title: 'Browser Support', id: 'guide/browser-support', aliases: ['guide/browser-support', 'browser-support'], path: 'guide/browser-support' }); const currentDoc = { }; const linkInfo = getLinkInfo('browser-support', undefined, currentDoc); expect(linkInfo.valid).toBe(true); expect(linkInfo.title).toEqual('Browser Support'); }); it('should prefer the target doc title over name if available and no title is specified', () => { aliasMap.addDoc({ docType: 'guide', title: 'Browser Support', name: 'browser-support', id: 'guide/browser-support', aliases: ['guide/browser-support', 'browser-support'], path: 'guide/browser-support' }); const currentDoc = { }; const linkInfo = getLinkInfo('browser-support', undefined, currentDoc); expect(linkInfo.valid).toBe(true); expect(linkInfo.title).toEqual('Browser Support'); }); it('should use the target document name as a code block if available and no title is specified', () => { aliasMap.addDoc({ docType: 'api', name: 'CurrencyPipe', id: 'common/CurrencyPipe', aliases: ['common/CurrencyPipe', 'CurrencyPipe'], path: 'api/common/CurrencyPipe' }); const currentDoc = { }; const linkInfo = getLinkInfo('CurrencyPipe', undefined, currentDoc); expect(linkInfo.valid).toBe(true); expect(linkInfo.title).toEqual('CurrencyPipe'); }); });rxjs-7.5.7/docs_app/tools/transforms/remark-package/000077500000000000000000000000001431412030200225065ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/remark-package/index.js000066400000000000000000000005001431412030200241460ustar00rootroot00000000000000var Package = require('dgeni').Package; /** * @dgPackage remark * @description Overrides the renderMarkdown service with an implementation based on remark */ module.exports = new Package('remark', ['nunjucks']) .factory(require('./services/markedNunjucksFilter')) .factory(require('./services/renderMarkdown')); rxjs-7.5.7/docs_app/tools/transforms/remark-package/services/000077500000000000000000000000001431412030200243315ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/remark-package/services/handlers/000077500000000000000000000000001431412030200261315ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/remark-package/services/handlers/code.js000066400000000000000000000005601431412030200274020ustar00rootroot00000000000000/** * Render markdown code blocks as `` tags */ module.exports = function code(h, node) { var value = node.value ? ('\n' + node.value + '\n') : ''; var lang = node.lang && node.lang.match(/^[^ \t]+(?=[ \t]|$)/); var props = {}; if (lang) { props.language = lang; } return h(node, 'code-example', props, [{ type: 'text', value }]); }; rxjs-7.5.7/docs_app/tools/transforms/remark-package/services/markedNunjucksFilter.js000066400000000000000000000005301431412030200310170ustar00rootroot00000000000000/** * Convert the value, as markdown, into HTML * @param headingMappings A map of headings to convert (e.g. from h3 to h4). */ module.exports = function markedNunjucksFilter(renderMarkdown) { return { name: 'marked', process: function(str, headingMappings) { return str && renderMarkdown(str, headingMappings); } }; }; rxjs-7.5.7/docs_app/tools/transforms/remark-package/services/plugins/000077500000000000000000000000001431412030200260125ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/remark-package/services/plugins/mapHeadings.js000066400000000000000000000014611431412030200305720ustar00rootroot00000000000000const visit = require('unist-util-visit'); function headingToLevel(heading) { const match = /^h(\d+)/.exec(heading); return match ? match[1] : '0'; } function parseMappings(mappings) { const mapping = {}; Object.keys(mappings).forEach(key => mapping[headingToLevel(key)] = headingToLevel(mappings[key])); return mapping; } module.exports = function mapHeadings(mappings) { const headings = parseMappings(mappings || {}); return () => ast => { const nodesToFix = []; Object.keys(headings).forEach(heading => { visit(ast, 'heading', node => { if (node.depth === Number(heading)) { nodesToFix.push(node); } }); }); // Update the depth of the matched nodes nodesToFix.forEach(node => node.depth = headings[node.depth]); return ast; }; }; rxjs-7.5.7/docs_app/tools/transforms/remark-package/services/renderMarkdown.js000066400000000000000000000155141431412030200276570ustar00rootroot00000000000000const remark = require('remark'); const html = require('remark-html'); const code = require('./handlers/code'); const mapHeadings = require('./plugins/mapHeadings'); /** * @dgService renderMarkdown * @description * Render the markdown in the given string as HTML. * @param headingMap A map of headings to convert. * E.g. `{h3: 'h4'} will map heading 3 level into heading 4. */ module.exports = function renderMarkdown() { return function renderMarkdownImpl(content, headingMap) { const renderer = remark() .use(inlineTagDefs) .use(noIndentedCodeBlocks) .use(plainHTMLBlocks) // USEFUL DEBUGGING CODE // .use(() => tree => { // console.log(require('util').inspect(tree, { colors: true, depth: 4 })); // }) .use(mapHeadings(headingMap)) .use(html, { handlers: { code }, sanitize: false }); return renderer.processSync(content).toString(); }; /** * Teach remark not to render indented codeblocks */ function noIndentedCodeBlocks() { const blockMethods = this.Parser.prototype.blockMethods; blockMethods.splice(blockMethods.indexOf('indentedCode'), 1); } /** * Teach remark about inline tags, so that it neither wraps block level * tags in paragraphs nor processes the text within the tag. */ function inlineTagDefs() { const Parser = this.Parser; const inlineTokenizers = Parser.prototype.inlineTokenizers; const inlineMethods = Parser.prototype.inlineMethods; const blockTokenizers = Parser.prototype.blockTokenizers; const blockMethods = Parser.prototype.blockMethods; blockTokenizers.inlineTag = tokenizeInlineTag; blockMethods.splice(blockMethods.indexOf('paragraph'), 0, 'inlineTag'); inlineTokenizers.inlineTag = tokenizeInlineTag; inlineMethods.splice(blockMethods.indexOf('text'), 0, 'inlineTag'); tokenizeInlineTag.notInLink = true; tokenizeInlineTag.locator = inlineTagLocator; function tokenizeInlineTag(eat, value, silent) { const match = /^\{@[^\s}]+[^}]*\}/.exec(value); if (match) { if (silent) { return true; } return eat(match[0])({ 'type': 'inlineTag', 'value': match[0] }); } } function inlineTagLocator(value, fromIndex) { return value.indexOf('{@', fromIndex); } } /** * Teach remark that some HTML blocks never include markdown */ function plainHTMLBlocks() { const plainBlocks = ['code-example', 'code-tabs']; // Create matchers for each block const anyBlockMatcher = new RegExp('^' + createOpenMatcher(`(${plainBlocks.join('|')})`)); const Parser = this.Parser; const blockTokenizers = Parser.prototype.blockTokenizers; const blockMethods = Parser.prototype.blockMethods; blockTokenizers.plainHTMLBlocks = tokenizePlainHTMLBlocks; blockMethods.splice(blockMethods.indexOf('html'), 0, 'plainHTMLBlocks'); function tokenizePlainHTMLBlocks(eat, value, silent) { const openMatch = anyBlockMatcher.exec(value); if (openMatch) { const blockName = openMatch[1]; try { const fullMatch = matchRecursiveRegExp(value, createOpenMatcher(blockName), createCloseMatcher(blockName))[0]; if (silent || !fullMatch) { // either we are not eating (silent) or the match failed return !!fullMatch; } return eat(fullMatch[0])({ type: 'html', value: fullMatch[0] }); } catch(e) { this.file.fail('Unmatched plain HTML block tag ' + e.message); } } } } }; /** * matchRecursiveRegExp * * (c) 2007 Steven Levithan * MIT License * * Accepts a string to search, a left and right format delimiter * as regex patterns, and optional regex flags. Returns an array * of matches, allowing nested instances of left/right delimiters. * Use the "g" flag to return all matches, otherwise only the * first is returned. Be careful to ensure that the left and * right format delimiters produce mutually exclusive matches. * Backreferences are not supported within the right delimiter * due to how it is internally combined with the left delimiter. * When matching strings whose format delimiters are unbalanced * to the left or right, the output is intentionally as a * conventional regex library with recursion support would * produce, e.g. "<" and ">" both produce ["x"] when using * "<" and ">" as the delimiters (both strings contain a single, * balanced instance of ""). * * examples: * matchRecursiveRegExp("test", "\\(", "\\)") * returns: [] * matchRecursiveRegExp(">>t<>", "<", ">", "g") * returns: ["t<>", ""] * matchRecursiveRegExp("
test
", "]*>", "", "gi") * returns: ["test"] */ function matchRecursiveRegExp(str, left, right, flags) { 'use strict'; const matchPos = rgxFindMatchPos(str, left, right, flags); const results = []; for (var i = 0; i < matchPos.length; ++i) { results.push([ str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end), str.slice(matchPos[i].match.start, matchPos[i].match.end), str.slice(matchPos[i].left.start, matchPos[i].left.end), str.slice(matchPos[i].right.start, matchPos[i].right.end) ]); } return results; } function rgxFindMatchPos(str, left, right, flags) { 'use strict'; flags = flags || ''; const global = flags.indexOf('g') > -1; const bothMatcher = new RegExp(left + '|' + right, 'g' + flags.replace(/g/g, '')); const leftMatcher = new RegExp(left, flags.replace(/g/g, '')); const pos = []; let index, match, start, end; let count = 0; while ((match = bothMatcher.exec(str))) { if (leftMatcher.test(match[0])) { if (!(count++)) { index = bothMatcher.lastIndex; start = index - match[0].length; } } else if (count) { if (!--count) { end = match.index + match[0].length; var obj = { left: {start: start, end: index}, match: {start: index, end: match.index}, right: {start: match.index, end: end}, wholeMatch: {start: start, end: end} }; pos.push(obj); if (!global) { return pos; } } } } if (count) { throw new Error(str.slice(start, index)); } return pos; } function createOpenMatcher(elementNameMatcher) { const attributeName = '[a-zA-Z_:][a-zA-Z0-9:._-]*'; const unquoted = '[^"\'=<>`\\u0000-\\u0020]+'; const singleQuoted = '\'[^\']*\''; const doubleQuoted = '"[^"]*"'; const attributeValue = '(?:' + unquoted + '|' + singleQuoted + '|' + doubleQuoted + ')'; const attribute = '(?:\\s+' + attributeName + '(?:\\s*=\\s*' + attributeValue + ')?)'; return `<${elementNameMatcher}${attribute}*\\s*>`; } function createCloseMatcher(elementNameMatcher) { return ``; } rxjs-7.5.7/docs_app/tools/transforms/remark-package/services/renderMarkdown.spec.js000066400000000000000000000074211431412030200306060ustar00rootroot00000000000000const renderMarkdownFactory = require('./renderMarkdown'); describe('remark: renderMarkdown service', () => { let renderMarkdown; beforeEach(() => { renderMarkdown = renderMarkdownFactory(); }); it('should convert markdown to HTML', () => { const content = '# heading 1\n' + '\n' + 'A paragraph with **bold** and _italic_.\n' + '\n' + '* List item 1\n' + '* List item 2'; const output = renderMarkdown(content); expect(output).toEqual( '

heading 1

\n' + '

A paragraph with bold and italic.

\n' + '
    \n' + '
  • List item 1
  • \n' + '
  • List item 2
  • \n' + '
\n'); }); it('should not process markdown inside inline tags', () => { const content = '* list item {@link some_url_path}'; const output = renderMarkdown(content); expect(output).toEqual('
    \n
  • list item {@link some_url_path}
  • \n
\n'); }); it('should not put block level inline tags inside paragraphs', () => { const content = 'A paragraph.\n' + '\n' + '{@example blah **blah** blah }\n' + '\n' + 'Another paragraph {@link _containing_ } an inline tag'; const output = renderMarkdown(content); expect(output).toEqual( '

A paragraph.

\n' + '{@example blah **blah** blah }\n' + '

Another paragraph {@link _containing_ } an inline tag

\n'); }); it('should not format the contents of tags marked as unformatted ', () => { const content = '\n\n **abc**\n\n def\n\n\n\n\n **abc**\n\n def\n'; const output = renderMarkdown(content); expect(output).toEqual('\n\n **abc**\n\n def\n\n\n\n **abc**\n\n def\n\n'); }); it('should handle recursive tags marked as unformatted', () => { const content = '\n\n \n\n **abc**\n\n def\n\n\n\n\n\nhij\n\n\n\nklm'; const output = renderMarkdown(content); expect(output).toEqual('\n\n \n\n **abc**\n\n def\n\n\n\n\n

hij

\n\n\nklm\n'); }); it('should raise an error if a tag marked as unformatted is not closed', () => { const content = '\n\n **abc**\n\n def\n\n\n\n\n **abc**\n\n def\n'; expect(() => renderMarkdown(content)).toThrowError('Unmatched plain HTML block tag '); }); it('should not remove spaces after anchor tags', () => { var input = 'A aa aaa aaaa aaaaa aaaaaa aaaaaaa aaaaaaaa aaaaaaaaa aaaaaaaaaa aaaaaaaaaaa\n' + '[foo](path/to/foo) bbb.'; var output = '

' + 'A aa aaa aaaa aaaaa aaaaaa aaaaaaa aaaaaaaa aaaaaaaaa aaaaaaaaaa aaaaaaaaaaa\n' + 'foo bbb.' + '

\n'; expect(renderMarkdown(input)).toEqual(output); }); it('should not format indented text as code', () => { const content = 'some text\n\n indented text\n\nother text'; const output = renderMarkdown(content); expect(output).toEqual('

some text

\n

indented text

\n

other text

\n'); }); it('should format triple backtick code blocks as `code-example` tags', () => { const content = '```ts\n' + ' class MyClass {\n' + ' method1() { ... }\n' + ' }\n' + '```'; const output = renderMarkdown(content); expect(output).toEqual( '\n' + ' class MyClass {\n' + ' method1() { ... }\n' + ' }\n' + '\n' ); }); }); rxjs-7.5.7/docs_app/tools/transforms/target-package/000077500000000000000000000000001431412030200225135ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/target-package/index.js000066400000000000000000000005431431412030200241620ustar00rootroot00000000000000var Package = require('dgeni').Package; module.exports = new Package('target', [require('dgeni-packages/jsdoc')]) .factory(require('./services/targetEnvironments')) .factory(require('./inline-tag-defs/target')) .config(function(inlineTagProcessor, targetInlineTagDef) { inlineTagProcessor.inlineTagDefinitions.push(targetInlineTagDef); }); rxjs-7.5.7/docs_app/tools/transforms/target-package/inline-tag-defs/000077500000000000000000000000001431412030200254615ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/target-package/inline-tag-defs/target.js000066400000000000000000000022651431412030200273120ustar00rootroot00000000000000/** * @dgService * @description * Process inline `target` block tags * (of the form `{@target environment1 environment2}...{@endtarget}`), * filtering out the blocks that do not match the active `targetEnvironments`. */ module.exports = function targetInlineTagDef(targetEnvironments, log, createDocMessage) { return { name: 'target', end: 'endtarget', handler: function(doc, tagName, tagDescription) { var targets = tagDescription && tagDescription.tag.split(' '); var hasTargets = targets && targets.length; try { // Return the contents of this block if any of the following is true: // * it has no targets // * there are no targets stored in the targetEnvironments service // * the block's targets overlap with the active targets in the targetEnvironments service if (!hasTargets || !targetEnvironments.hasActive() || targetEnvironments.someActive(targets)) { return tagDescription.content; } } catch (x) { log.error(createDocMessage('Error processing target inline tag def - ' + x.message, doc)); } // Otherwise return an empty string return ''; } }; };rxjs-7.5.7/docs_app/tools/transforms/target-package/inline-tag-defs/target.spec.js000066400000000000000000000024571431412030200302460ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('target inline-tag-def', function() { var dgeni, injector, targetInlineTagDef; beforeEach(function() { dgeni = new Dgeni([testPackage('target-package', true)]); injector = dgeni.configureInjector(); targetInlineTagDef = injector.get('targetInlineTagDef'); }); it('should filter out content that does not match the targetEnvironments', function() { var doc = {}; var targetEnvironments = injector.get('targetEnvironments'); targetEnvironments.addAllowed('js', true); targetEnvironments.addAllowed('es6', true); targetEnvironments.addAllowed('ts', false); var result = targetInlineTagDef.handler(doc, 'target', {tag: 'es6 ts', content: 'abc'}); expect(result).toEqual('abc'); result = targetInlineTagDef.handler(doc, 'target', {tag: 'ts', content: 'xyz'}); expect(result).toEqual(''); }); it('should not filter anything if there are no doc nor global target environments', function() { var doc = {}; var result = targetInlineTagDef.handler(doc, 'target', {tag: 'es6 ts', content: 'abc'}); expect(result).toEqual('abc'); result = targetInlineTagDef.handler(doc, 'target', {tag: 'ts', content: 'xyz'}); expect(result).toEqual('xyz'); }); });rxjs-7.5.7/docs_app/tools/transforms/target-package/services/000077500000000000000000000000001431412030200243365ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/target-package/services/targetEnvironments.js000066400000000000000000000024621431412030200305760ustar00rootroot00000000000000module.exports = function targetEnvironments() { var _targets = Object.create(null); var _activeCount = 0; var checkAllowed = function(target) { if (!(target in _targets)) { throw new Error( 'Error accessing target "' + target + '". It is not in the list of allowed targets: ' + Object.keys(_targets)); } }; var updateActiveCount = function() { _activeCount = 0; for (let target in _targets) { if (_targets[target]) _activeCount++; } }; return { addAllowed: function(target, isActive) { _targets[target] = !!isActive; updateActiveCount(); }, removeAllowed: function(target) { delete _targets[target]; updateActiveCount(); }, activate: function(target) { checkAllowed(target); _targets[target] = true; updateActiveCount(); }, deactivate: function(target) { checkAllowed(target); _targets[target] = false; updateActiveCount(); }, isActive: function(target) { checkAllowed(target); return _targets[target]; }, hasActive: function() { return _activeCount > 0; }, someActive: function(targets) { for (var i = 0, ii = targets.length; i < ii; i++) { if (this.isActive(targets[i])) return true; } return false; } }; }; rxjs-7.5.7/docs_app/tools/transforms/target-package/services/targetEnvironments.spec.js000066400000000000000000000062621431412030200315310ustar00rootroot00000000000000var testPackage = require('../../helpers/test-package'); var Dgeni = require('dgeni'); describe('target inline-tag-def', function() { var dgeni, injector, te; beforeEach(function() { dgeni = new Dgeni([testPackage('target-package', true)]); injector = dgeni.configureInjector(); te = injector.get('targetEnvironments'); }); describe('addAllowed', function() { it('should store the target and whether it is active', function() { te.addAllowed('a', true); te.addAllowed('b', false); te.addAllowed('c'); expect(te.isActive('a')).toBe(true); expect(te.isActive('b')).toBe(false); expect(te.isActive('c')).toBe(false); }); }); describe('removeAllowed', function() { it('should disallow the target', function() { te.addAllowed('a'); te.addAllowed('b'); te.removeAllowed('b'); expect(te.isActive('a')).toBe(false); expect(function() { te.isActive('b'); }).toThrowError('Error accessing target "b". It is not in the list of allowed targets: a'); }); }); describe('activate', function() { it('should active an already allowed target', function() { te.addAllowed('a', true); te.addAllowed('b', false); te.addAllowed('c'); te.activate('a'); te.activate('b'); te.activate('c'); expect(te.isActive('a')).toBe(true); expect(te.isActive('b')).toBe(true); expect(te.isActive('c')).toBe(true); }); }); describe('deactivate', function() { it('should deactivate an already allowed target', function() { te.addAllowed('a', true); te.addAllowed('b', false); te.addAllowed('c'); te.deactivate('a'); te.deactivate('b'); te.deactivate('c'); expect(te.isActive('a')).toBe(false); expect(te.isActive('b')).toBe(false); expect(te.isActive('c')).toBe(false); }); }); describe('isActive', function() { it('should return true if the item is allowed and active', function() { te.addAllowed('a', true); te.addAllowed('b', false); expect(te.isActive('a')).toBe(true); expect(te.isActive('b')).toBe(false); }); }); describe('hasActive', function() { it('should return true if there are any active targets', function() { te.addAllowed('a', true); te.addAllowed('b', false); expect(te.hasActive()).toBe(true); te.deactivate('a'); expect(te.hasActive()).toBe(false); te.activate('b'); expect(te.hasActive()).toBe(true); }); }); describe('someActive', function() { it('should return true if the array of targets passed are all allowed and at least on is active', function() { te.addAllowed('a', true); te.addAllowed('b', false); te.addAllowed('c'); expect(te.someActive(['a'])).toBe(true); expect(te.someActive(['b'])).toBe(false); expect(te.someActive(['a', 'b'])).toBe(true); expect(te.someActive(['b', 'c'])).toBe(false); expect(te.someActive([])).toBe(false); expect(function() { te.someActive('d'); }) .toThrowError( 'Error accessing target "d". It is not in the list of allowed targets: a,b,c'); }); }); }); rxjs-7.5.7/docs_app/tools/transforms/templates/000077500000000000000000000000001431412030200216325ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/templates/README.md000066400000000000000000000025301431412030200231110ustar00rootroot00000000000000This folder contains the dgeni templates that are used to generate the API docs Generally there is a template for each docType. Templates can extend and/or include other templates. Templates can also import macros from other template files. # Template inheritance When extending a template, parent must declare blocks that can be overridden by the child. The template extension hierarchy looks like this (with declared blocks in parentheses): - layout/base.template.html (base) - module.template.html - layout/api-base.template.html (jumpNav, jumpNavLinks, whatItDoes, infoBar, securityConsiderations, deprecationNotes, howToUse, details) - class.template.html - directive.template.html - enum.template.html - var.template.html - const.template.html - let.template.html - decorator.template.html - function.template.html - interface.template.html - type-alias.template.html - pipe.template.html # Doc Properties It is useful to know what properties are available on each doc type when working with the templates. The `typescript` Dgeni package is now written in TypeScript and there is a class for each of the types of API document. See https://github.com/angular/dgeni-packages/tree/master/typescript/src/api-doc-types. This is a good place to go to see what properties you can use in the templates.rxjs-7.5.7/docs_app/tools/transforms/templates/api/000077500000000000000000000000001431412030200224035ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/templates/api/base.template.html000066400000000000000000000036631431412030200260250ustar00rootroot00000000000000{% import "lib/githubLinks.html" as github -%} {% set comma = joiner(',') %} {% set slash = joiner('/') %}
mode_edit code
{% for crumb in doc.breadCrumbs %}{% if not loop.last %} {$ slash() $} {% if crumb.path %}{$ crumb.text $}{% else %}{$ crumb.text $}{% endif %}{% endif %}{% endfor %}

{$ doc.name $}

{% if doc.deprecated !== undefined %}{% endif %} {% if doc.experimental !== undefined %}{% endif %} {% if doc.stable !== undefined %}{% endif %} {% if doc.pipeOptions.pure === 'false' %}{% endif %} {% if doc.isOperator %}{% endif %}
{% block body %}{% endblock %}
rxjs-7.5.7/docs_app/tools/transforms/templates/api/class.template.html000066400000000000000000000020641431412030200262120ustar00rootroot00000000000000{% import "lib/memberHelpers.html" as memberHelpers -%} {% import "lib/descendants.html" as descendants -%} {% import "lib/paramList.html" as params -%} {% extends 'export-base.template.html' -%} {% block overview %} {% include "includes/class-overview.html" %} {% endblock %} {% block details %} {% block additional %}{% endblock %} {% include "includes/description.html" %} {$ memberHelpers.renderProperties(doc.staticProperties, 'static-properties', 'static-property', 'Static Properties') $} {$ memberHelpers.renderMethodDetails(doc.staticMethods, 'static-methods', 'static-method', 'Static Methods') $} {% if doc.constructorDoc %}

Constructor

{$ memberHelpers.renderMethodDetail(doc.constructorDoc, 'constructor') $}{% endif %} {$ memberHelpers.renderProperties(doc.properties, 'instance-properties', 'instance-property', 'Properties') $} {$ memberHelpers.renderMethodDetails(doc.methods, 'instance-methods', 'instance-method', 'Methods') $} {% block annotations %}{% include "includes/annotations.html" %}{% endblock %} {% endblock %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/const.template.html000066400000000000000000000000421431412030200262250ustar00rootroot00000000000000{% extends 'var.template.html' -%}rxjs-7.5.7/docs_app/tools/transforms/templates/api/decorator.template.html000066400000000000000000000006261431412030200270710ustar00rootroot00000000000000{% import "lib/memberHelpers.html" as memberHelper -%} {% import "lib/paramList.html" as params -%} {% extends 'export-base.template.html' %} {% block overview %}{% include "includes/decorator-overview.html" %}{% endblock %} {% block details %} {% include "includes/description.html" %} {$ memberHelper.renderProperties(doc.members, 'metadata-members', 'metadata-member', 'Options') $} {% endblock %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/deprecation.template.html000066400000000000000000000007231431412030200274020ustar00rootroot00000000000000{% block overview %}

Deprecations

The API listed below will be removed in the next major release!

{% for deprecation in doc.data %} {% endfor %}
{$ deprecation.name $} {$ deprecation.text $}
{% endblock %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/directive.template.html000066400000000000000000000010511431412030200270560ustar00rootroot00000000000000{% import "lib/directiveHelpers.html" as directiveHelper -%} {% import "lib/paramList.html" as params -%} {% extends 'class.template.html' -%} {% block overview %}{% include "includes/directive-overview.html" %}{% endblock %} {% block additional -%} {% include "includes/selectors.html" %} {$ directiveHelper.renderBindings(doc.inputs, 'inputs', 'input', 'Inputs') $} {$ directiveHelper.renderBindings(doc.outputs, 'outputs', 'output', 'Outputs') $} {% include "includes/export-as.html" %} {% endblock %} {% block annotations %}{% endblock %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/enum.template.html000066400000000000000000000000441431412030200260450ustar00rootroot00000000000000{% extends 'class.template.html' -%}rxjs-7.5.7/docs_app/tools/transforms/templates/api/export-base.template.html000066400000000000000000000006641431412030200273420ustar00rootroot00000000000000{% extends 'base.template.html' -%} {% block body %} {% include "includes/renamed-exports.html" %}

{$ doc.shortDescription | marked $}

{% include "includes/security-notes.html" %} {% include "includes/deprecation.html" %} {% block overview %}{% endblock %} {% block details %}{% endblock %} {% include "includes/usageNotes.html" %} {% include "includes/see-also.html" %} {% endblock %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/function.template.html000066400000000000000000000016171431412030200267350ustar00rootroot00000000000000{% import "lib/memberHelpers.html" as memberHelpers -%} {% import "lib/paramList.html" as params -%} {% extends 'export-base.template.html' -%} {% block overview %} {% if doc.overloads.length > 0 and doc.overloads < 3 -%} {% for overload in doc.overloads -%} {$ memberHelpers.renderOverloadInfo(overload, 'function-overload', doc) $} {% if not loop.last %}
{% endif %} {% endfor -%} {% else %} {$ memberHelpers.renderOverloadInfo(doc, 'function-overload', doc) $} {% endif %} {% endblock %} {% block details %} {% include "includes/description.html" %} {% if doc.overloads.length >= 3 %}

Overloads

{% for overload in doc.overloads %} {% endfor %}
{$ memberHelpers.renderOverloadInfo(overload, 'function-overload', doc) $}
{% endif %} {% endblock %}rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/000077500000000000000000000000001431412030200242115ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/annotations.html000066400000000000000000000006121431412030200274330ustar00rootroot00000000000000{%- if doc.decorators.length %}

Annotations

{%- for decorator in doc.decorators %} @{$ decorator.name $}({$ decorator.arguments $}) {% if not decorator.notYetDocumented %}{$ decorator.description | marked $}{% endif %} {% endfor %}
{% endif %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/class-overview.html000066400000000000000000000006441431412030200300540ustar00rootroot00000000000000{% import "lib/memberHelpers.html" as memberHelper -%}
{% if doc.isAbstract %}abstract {% endif%}{$ doc.docType $} {$ doc.name $}{$ doc.typeParams | escape $}{$ memberHelper.renderHeritage(doc) $} {{$ memberHelper.renderMembers(doc) $} } {$ descendants.renderDescendants(doc, 'class', 'Subclasses') $}
rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/decorator-overview.html000066400000000000000000000004441431412030200307270ustar00rootroot00000000000000{% import "lib/memberHelpers.html" as memberHelper -%} {% if doc.members.length %}
@{$ doc.name $}{$ doc.typeParams | escape $}({ {$ memberHelper.renderMembers(doc) $} })
{% endif %}rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/deprecation.html000066400000000000000000000002101431412030200273650ustar00rootroot00000000000000{% if doc.deprecated %}

Deprecation Notes

{$ doc.deprecated | marked $}
{% endif %}rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/description.html000066400000000000000000000002261431412030200274220ustar00rootroot00000000000000{% if doc.description %}

Description

{$ doc.description | trimBlankLines | marked $}
{% endif %}rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/directive-overview.html000066400000000000000000000012021431412030200307140ustar00rootroot00000000000000{% import "lib/memberHelpers.html" as memberHelper -%}
{% for decorator in doc.decorators %} @{$ decorator.name $}({$ decorator.arguments $}){% endfor %} class {$ doc.name $}{$ doc.typeParams | escape $}{$ memberHelper.renderHeritage(doc) $} { {%- if doc.statics.length %}{% for member in doc.statics %}{% if not member.internal %} {$ memberHelper.renderMemberSyntax(member, 1) $}{% endif %}{% endfor %}{% endif -%} {$ memberHelper.renderMembers(doc) $} }
rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/export-as.html000066400000000000000000000002261431412030200270210ustar00rootroot00000000000000{%- if doc.exportAs %}

Exported as

{$ doc.exportAs $}
{% endif %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/info-bar.html000066400000000000000000000012461431412030200265770ustar00rootroot00000000000000{% import "lib/githubLinks.html" as github -%}
{% if doc.ngModule %} {% endif %}
npm Package @angular/{$ doc.moduleDoc.id.split('/')[0] $}
Module import { {$ doc.name $} } from '@angular/{$ doc.moduleDoc.id $}';
Source {$ github.githubViewLink(doc, versionInfo) $}
NgModule {@link {$ doc.ngModule $}}
rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/interface-overview.html000066400000000000000000000006761431412030200307140ustar00rootroot00000000000000{% import "lib/memberHelpers.html" as memberHelper -%}
interface {$ doc.name $}{$ doc.typeParams | escape $}{$ memberHelper.renderHeritage(doc) $} {{$ memberHelper.renderMembers(doc) $} } {$ descendants.renderDescendants(doc, 'interface', 'Child Interfaces') $} {$ descendants.renderDescendants(doc, 'class', 'Class Implementations') $}
rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/metadata.html000066400000000000000000000011761431412030200266640ustar00rootroot00000000000000{% if doc.members.length %}

Metadata Properties

{% for metadata in doc.members %}{% if not metadata.internal %}
{$ metadata.name $}{$ params.paramList(metadata.parameters) | trim $}{$ params.returnType(metadata.type) $} {%- if not metadata.notYetDocumented %}{$ metadata.description | marked $}{% endif -%}
{% if not loop.last %}
{% endif %} {% endif %}{% endfor %}
{% endif %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/pipe-overview.html000066400000000000000000000016631431412030200277060ustar00rootroot00000000000000{% import "lib/memberHelpers.html" as memberHelpers -%} {% import "lib/paramList.html" as params -%}
{{ {$ doc.valueParam.name $}_expression | {$ doc.pipeName $} {%- for param in doc.pipeParams %} {%- if param.isOptional or param.defaultValue !== undefined %} [{% endif %} : {$ param.name $} {%- endfor %} {%- for param in doc.pipeParams %} {%- if param.isOptional or param.defaultValue !== undefined %} ]{% endif %} {%- endfor %} }} {% if doc.valueParam.type %}

Input Value

{$ params.renderParameters([doc.valueParam], 'pipe-parameters', 'pipe-parameter', true) $} {% endif %} {% if doc.pipeParams.length %}

Parameters

{$ params.renderParameters(doc.pipeParams, 'pipe-parameters', 'pipe-parameter', true) $} {% endif %}
rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/renamed-exports.html000066400000000000000000000003311431412030200302110ustar00rootroot00000000000000{% if doc.renamedDuplicates %}
Aliased as {% for d in doc.renamedDuplicates %} {$ d.name $}{% if not loop.last %}, {% endif %} {% endfor %}
{% endif %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/security-notes.html000066400000000000000000000001701431412030200300720ustar00rootroot00000000000000{% if doc.security %}

Security Risk

{$ doc.security | marked $}
{% endif %}rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/see-also.html000066400000000000000000000002651431412030200266120ustar00rootroot00000000000000{%- if doc.see.length %}

See Also

    {% for see in doc.see %}
  • {$ see | marked $}
  • {% endfor %}
{% endif %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/selectors.html000066400000000000000000000004041431412030200271000ustar00rootroot00000000000000{%- if doc.selector %}

Selectors

{%- for selector in doc.selector.split(',') %} {$ selector $}{% endfor %}
{% endif %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/includes/usageNotes.html000066400000000000000000000002041431412030200272100ustar00rootroot00000000000000{% if doc.usageNotes %}

Usage Notes

{$ doc.usageNotes | marked $}
{% endif %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/interface.template.html000066400000000000000000000010761431412030200270470ustar00rootroot00000000000000{% import "lib/paramList.html" as params -%} {% import "lib/memberHelpers.html" as memberHelper -%} {% import "lib/descendants.html" as descendants -%} {% extends 'export-base.template.html' -%} {% block overview %}{% include "includes/interface-overview.html" %}{% endblock %} {% block details %} {% include "includes/description.html" %} {$ memberHelper.renderProperties(doc.properties, 'instance-properties', 'instance-property', 'Properties') $} {$ memberHelper.renderMethodDetails(doc.methods, 'instance-methods', 'instance-method', 'Methods') $} {% endblock %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/let.template.html000066400000000000000000000000421431412030200256630ustar00rootroot00000000000000{% extends 'var.template.html' -%}rxjs-7.5.7/docs_app/tools/transforms/templates/api/lib/000077500000000000000000000000001431412030200231515ustar00rootroot00000000000000rxjs-7.5.7/docs_app/tools/transforms/templates/api/lib/descendants.html000066400000000000000000000013501431412030200263310ustar00rootroot00000000000000{% macro renderDescendantList(descendants, docType, recursed) %} {% if descendants.length %}
    {% for descendant in descendants %}
  • {$ descendant.name $} {$ renderDescendantList(descendant.descendants | filterByPropertyValue('docType', docType), docType, recursed) $}
  • {% endfor %}
{% endif %} {% endmacro -%} {%- macro renderDescendants(doc, docType, title='', recursed=true) %} {% set descendants = doc.descendants | filterByPropertyValue('docType', docType) %} {% if descendants.length %}
{% if title %}

{$ title $}

{% endif %} {$ renderDescendantList(descendants, docType, recursed) $}
{% endif %} {% endmacro %}rxjs-7.5.7/docs_app/tools/transforms/templates/api/lib/directiveHelpers.html000066400000000000000000000007771431412030200273530ustar00rootroot00000000000000{% macro renderBindings(bindings, cssContainerClass, cssItemClass, title) -%} {% if bindings.length %}

{$ title $}

{% for binding in bindings %}
{$ binding.bindingName $} bound to {$ binding.memberDoc.containerDoc.name $}.{$ binding.propertyName $} {#{$ binding.memberDoc.description | trimBlankLines | marked $}#}
{% endfor %}
{% endif %} {%- endmacro %}rxjs-7.5.7/docs_app/tools/transforms/templates/api/lib/githubLinks.html000066400000000000000000000015151431412030200263240ustar00rootroot00000000000000{% macro githubViewHref(doc, versionInfo) -%} https://github.com/{$ versionInfo.gitRepoInfo.owner $}/{$ versionInfo.gitRepoInfo.repo $}/tree/{$ versionInfo.currentVersion.isSnapshot and versionInfo.currentVersion.SHA or versionInfo.currentVersion.raw $}/src/{$ doc.fileInfo.realProjectRelativePath $}#L{$ doc.startingLine + 1 $}-L{$ doc.endingLine + 1 $} {%- endmacro %} {% macro githubEditHref(doc, versionInfo) -%} https://github.com/{$ versionInfo.gitRepoInfo.owner $}/{$ versionInfo.gitRepoInfo.repo $}/edit/master/src/{$ doc.fileInfo.realProjectRelativePath $}?message=docs( {%- if doc.moduleDoc %}{$ doc.moduleDoc.id.split('/')[0] $} {%- elseif doc.docType === 'module' %}{$ doc.id.split('/')[0] $} {%- else %}...{%- endif -%} )%3A%20describe%20your%20change...#L{$ doc.startingLine + 1 $}-L{$ doc.endingLine + 1 $} {%- endmacro %}rxjs-7.5.7/docs_app/tools/transforms/templates/api/lib/memberHelpers.html000066400000000000000000000165401431412030200266370ustar00rootroot00000000000000{% import "lib/paramList.html" as params -%} {%- macro renderHeritage(exportDoc) -%} {%- if exportDoc.extendsClauses.length %} extends {% for clause in exportDoc.extendsClauses -%} {$ clause.text | escape $}{% if not loop.last %}, {% endif -%} {% endfor %}{% endif %} {%- if exportDoc.implementsClauses.length %} implements {% for clause in exportDoc.implementsClauses -%} {$ clause.text | escape $}{% if not loop.last %}, {% endif -%} {% endfor %}{% endif %} {%- endmacro -%} {%- macro renderMembers(doc) -%} {%- for member in doc.staticProperties %}{% if not member.internal %} {$ renderMemberSyntax(member, 1) $}{% endif %}{% endfor -%} {% for member in doc.staticMethods %}{% if not member.internal %} {$ renderMemberSyntax(member, 1) $}{% endif %}{% endfor -%} {% if doc.constructorDoc and not doc.constructorDoc.internal %} {$ renderMemberSyntax(doc.constructorDoc, 1) $}{% endif -%} {% for member in doc.properties %}{% if not member.internal %} {$ renderMemberSyntax(member, 1) $}{% endif %}{% endfor -%} {% for member in doc.methods %}{% if not member.internal %} {$ renderMemberSyntax(member, 1) $}{% endif %}{% endfor -%} {%- for ancestor in doc.extendsClauses %}{% if ancestor.doc %} // inherited from {$ ancestor.doc.id $}{$ renderMembers(ancestor.doc) $}{% endif %}{% endfor -%} {%- endmacro -%} {%- macro renderMemberSyntax(member, truncateLines) -%} {%- if member.accessibility !== 'public' %}{$ member.accessibility $} {% endif -%} {%- if member.isAbstract %}abstract {% endif -%} {%- if member.isStatic %}static {% endif -%} {%- if (member.isGetAccessor or member.isReadonly) and not member.isSetAccessor %}get {% endif -%} {%- if member.isSetAccessor and not member.isGetAccessor %}set {% endif -%} {$ member.name $}{$ member.typeParameters | escape $}{% if not member.isGetAccessor %}{$ params.paramList(member.parameters, truncateLines) | trim $}{% endif %} {%- if member.isOptional %}?{% endif -%} {$ params.returnType(member.type) | trim | truncateCode(truncateLines) $} {%- endmacro -%} {%- macro renderOverloadInfo(overload, cssClass, method) -%} {$ renderMemberSyntax(overload) $} {% if overload.shortDescription and (overload.shortDescription != method.shortDescription) %}
{$ overload.shortDescription | marked $}
{% endif %}

Parameters

{$ params.renderParameters(overload.parameterDocs, cssClass + '-parameters', cssClass + '-parameter', true) $} {% if overload.type or overload.returns.type %}

Returns

{% marked %}`{$ (overload.type or overload.returns.type) $}`{% if overload.returns %}: {$ overload.returns.description $}{% endif %}{% endmarked %} {% endif %} {% if overload.throws.length %}

Throws

{% for error in overload.throws %} {% marked %}`{$ (error.typeList or 'Error') $}` {$ error.description $}{% endmarked %} {% endfor %} {% endif %} {% if overload.description and (overload.description != method.description) -%}
{$ overload.description | marked $}
{%- endif %} {%- endmacro -%} {%- macro renderMethodDetail(method, cssClass) -%} {% if method.name !== 'constructor' %}{% endif %} {% if method.shortDescription %}{% endif %} {% if method.overloads.length == 0 %} {% elseif method.overloads.length < 3 -%} {% for overload in method.overloads -%} {% endfor -%} {% else -%} {% endif %} {% if method.description %}{% endif %}

{% if method.isCallMember %}call signature {% elseif method.isNewMember %}construct signature {% else %}{$ method.name $}() {% endif %}

{$ method.shortDescription | marked $}
{$ renderOverloadInfo(method, cssClass + '-overload', method) $}
{$ renderOverloadInfo(overload, cssClass + '-overload', method) $}

{$ method.overloads.length $} overloads...

{% for overload in method.overloads %} {$ renderOverloadInfo(overload, cssClass + '-overload', method) $} {% if not loop.last %}
{% endif %} {% endfor %}
{$ method.description | marked $}
{% endmacro -%} {%- macro renderMethodDetails(methods, containerClass, itemClass, headingText) -%} {% set nonInternalMethods = methods | filterByPropertyValue('internal', undefined) %} {% if nonInternalMethods.length %}

{$ headingText $}

{% for member in nonInternalMethods %} {$ renderMethodDetail(member, itemClass) $} {% endfor %}
{% endif %} {%- endmacro -%} {%- macro renderProperties(properties, containerClass, propertyClass, headingText) -%} {% set nonInternalProperties = properties | filterByPropertyValue('internal', undefined) %} {% if nonInternalProperties.length -%}

{$ headingText $}

{% for property in nonInternalProperties %} {% endfor %}
PropertyTypeDescription
{$ property.name $} {%- if (property.isGetAccessor or property.isReadonly) and not property.isSetAccessor %}Read-only.{% endif %} {% if property.shortDescription %}{$ property.shortDescription | marked $}{% endif %} {$ (property.description or property.constructorParamDoc.description) | marked $} {% if property.constructorParamDoc %} Declared in constructor.{% endif %}
{%- endif -%} {%- endmacro -%} rxjs-7.5.7/docs_app/tools/transforms/templates/api/lib/paramList.html000066400000000000000000000027301431412030200257750ustar00rootroot00000000000000{% macro paramList(params, truncateLines) -%} {%- if params -%} ({%- for param in params -%} {$ param | escape | truncateCode(truncateLines) $}{% if not loop.last %}, {% endif %} {%- endfor %}) {%- endif %} {%- endmacro -%} {% macro returnType(returnType) -%} {%- if returnType %}: {$ returnType | escape $}{% endif -%} {%- endmacro -%} {%- macro renderParameters(parameters, containerClass, parameterClass, showType) -%} {%- if parameters.length -%} {% for parameter in parameters %} {% if showType %}{% endif %} {% endfor %}
{$ parameter.name $} {$ parameter.type | escape $} {% marked %} {% if parameter.isOptional or parameter.defaultValue !== undefined %}Optional. Default is `{$ parameter.defaultValue === undefined and 'undefined' or parameter.defaultValue $}`.{% endif %} {% if parameter.description | trim %}{$ parameter.description $} {% elseif not showType and parameter.type %}

Type: {$ parameter.type | escape $}.

{% endif %} {% endmarked %}
{%- else -%}

There are no parameters.

{%- endif -%} {%- endmacro -%} rxjs-7.5.7/docs_app/tools/transforms/templates/api/module.template.html000066400000000000000000000006101431412030200263650ustar00rootroot00000000000000{% extends 'base.template.html' -%} {% block body -%} {% include "includes/deprecation.html" %} {% include "includes/description.html" %}
    {% for export in doc.exports -%} {% if not export.duplicateOf %}
  • {$ export.name $}
  • {% endif %} {%- endfor %}
{%- endblock %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/pipe.template.html000066400000000000000000000003111431412030200260330ustar00rootroot00000000000000{% extends 'export-base.template.html' -%} {% block overview %} {% include "includes/pipe-overview.html" %} {% endblock %} {% block details %} {% include "includes/description.html" %} {% endblock %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/type-alias.template.html000066400000000000000000000006441431412030200271570ustar00rootroot00000000000000{% extends 'export-base.template.html' %} {% block overview %}
type {$ doc.name $}{$ doc.typeParameters | escape $}{% if doc.typeDefinition %} = {$ doc.typeDefinition | escape $}{% endif %};
{% endblock %} {% block details %} {% include "includes/description.html" %} {% endblock %} rxjs-7.5.7/docs_app/tools/transforms/templates/api/value-module.template.html000066400000000000000000000000471431412030200275030ustar00rootroot00000000000000{% extends 'interface.template.html' %}rxjs-7.5.7/docs_app/tools/transforms/templates/api/var.template.html000066400000000000000000000004671431412030200257020ustar00rootroot00000000000000{% extends 'export-base.template.html' %} {% block overview %} const {$ doc.name $}: {$ (doc.type | escape) or 'any' $}; {% endblock %} {% block details %} {% include "includes/description.html" %} {% endblock %} rxjs-7.5.7/docs_app/tools/transforms/templates/content.template.html000066400000000000000000000002011431412030200257750ustar00rootroot00000000000000{% if doc.title %}{$ ('# ' + doc.title.trim()) | marked $}{% endif %}
{$ doc.description | marked $}
rxjs-7.5.7/docs_app/tools/transforms/templates/data-module.template.js000066400000000000000000000002211431412030200261710ustar00rootroot00000000000000/* tslint:disable quotemark */ /* TODO: rework this so that it has single quotes */ export const {$ doc.serviceName $} = {$ doc.value | json $}; rxjs-7.5.7/docs_app/tools/transforms/templates/example-region.template.html000066400000000000000000000000341431412030200272430ustar00rootroot00000000000000{$ doc.contents | escape $} rxjs-7.5.7/docs_app/tools/transforms/templates/json-doc.template.json000066400000000000000000000000251431412030200260500ustar00rootroot00000000000000{$ doc.data | json $}rxjs-7.5.7/docs_app/tools/transforms/templates/overview-dump.template.html000066400000000000000000000060571431412030200271530ustar00rootroot00000000000000{% import "api/lib/githubLinks.html" as github -%} {% import "api/lib/memberHelpers.html" as members -%} {% macro goToCode(doc) %}code{% endmacro %} {% macro label(test, class, text) %}{% if test %}{% endif %}{% endmacro %} {% macro renderLabels(doc) -%} {$ label(doc.notYetDocumented, 'no-doc', 'UNDOCUMENTED') $} {%- for tag in doc.tags.tags %}{$ label(tag.tagDef.deprecated, 'deprecated', '@' + tag.tagDef.name + ' deprecated') $}{% endfor %} {% endmacro %} {% macro renderMember(member) -%}
{$ goToCode(member) $}

{$ members.renderMemberSyntax(member, 1) $}

{$ renderLabels(member) $}
{% endmacro -%}

Documentation Status Report

{% for module in doc.modules %}

{$ module.id $}{%- if module.public %} (public){% endif %}

{% for export in module.exports %}
{$ goToCode(export) $}

{$ export.docType $} {$ export.name $}

{$ renderLabels(export) $}
{%- for member in export.staticProperties %}{% if not member.internal %} {$ renderMember(member) $}{% endif %}{% endfor -%} {% for member in export.staticMethods %}{% if not member.internal %} {$ renderMember(member) $}{% endif %}{% endfor -%} {% if export.constructorDoc and not export.constructorexport.internal %} {$ renderMember(export.constructorDoc) $}{% endif -%} {% for member in export.properties %}{% if not member.internal %} {$ renderMember(member) $}{% endif %}{% endfor -%} {% for member in export.methods %}{% if not member.internal %} {$ renderMember(member) $}{% endif %}{% endfor -%}
{% endfor %}
{% endfor %} rxjs-7.5.7/docs_app/tools/transforms/templates/sitemap.template.xml000066400000000000000000000003211431412030200256240ustar00rootroot00000000000000 {%- for url in doc.urls %} https://rxjs.dev/{$ url $} {% endfor %} rxjs-7.5.7/docs_app/tools/transforms/test.js000066400000000000000000000012031431412030200211450ustar00rootroot00000000000000/* * Use this script to run the tests for the doc generation * We cannot use the Jasmine CLI directly because it doesn't seem to * understand the glob and only runs one spec file. * * Equally we cannot use a jasmine.json config file because it doesn't * allow us to set the projectBaseDir, which means that you have to run * jasmine CLI from this directory. * * Using a file like this gives us full control and keeps the package.json * file clean and simple. */ const Jasmine = require('jasmine'); const jasmine = new Jasmine({ projectBaseDir: __dirname }); jasmine.loadConfig({ spec_files: ['**/*.spec.js'] }); jasmine.execute(); rxjs-7.5.7/docs_app/tools/tslint.json000066400000000000000000000035561431412030200176570ustar00rootroot00000000000000{ "rulesDirectory": [ "../node_modules/codelyzer" ], "rules": { "class-name": true, "comment-format": [ true, "check-space" ], "curly": true, "eofline": true, "forin": true, "indent": [ true, "spaces" ], "label-position": true, "max-line-length": [ true, 140 ], "member-access": false, "no-arg": true, "no-bitwise": true, "no-console": [ true, "debug", "info", "time", "timeEnd", "trace" ], "no-construct": true, "no-debugger": true, "no-duplicate-variable": true, "no-empty": false, "no-eval": true, "no-inferrable-types": true, "no-string-literal": false, "no-switch-case-fall-through": true, "no-trailing-whitespace": true, "no-unused-expression": true, "no-use-before-declare": true, "no-var-keyword": true, "object-literal-sort-keys": false, "one-line": [ true, "check-open-brace", "check-catch", "check-else", "check-whitespace" ], "quotemark": [ true, "single" ], "radix": true, "semicolon": [ true ], "triple-equals": [ true, "allow-null-check" ], "typedef-whitespace": [ true, { "call-signature": "nospace", "index-signature": "nospace", "parameter": "nospace", "property-declaration": "nospace", "variable-declaration": "nospace" } ], "variable-name": false, "whitespace": [ true, "check-branch", "check-decl", "check-operator", "check-separator", "check-type" ], "import-destructuring-spacing": true } } rxjs-7.5.7/docs_app/tsconfig.docs.json000066400000000000000000000002531431412030200177340ustar00rootroot00000000000000{ "extends": "./tsconfig.json", "compilerOptions": { "module": "commonjs", "noUnusedParameters": false, "noUnusedLocals": false, "target": "es6" } } rxjs-7.5.7/docs_app/tsconfig.json000066400000000000000000000013161431412030200170060ustar00rootroot00000000000000{ "compileOnSave": false, "compilerOptions": { "importHelpers": true, "strict": true, "noImplicitAny": false, "strictPropertyInitialization": false, "skipLibCheck": true, "outDir": "./dist/out-tsc", "baseUrl": "src", "sourceMap": true, "declaration": false, "moduleResolution": "node", "experimentalDecorators": true, "noUnusedLocals": true, "target": "es2015", "typeRoots": [ "node_modules/@types" ], "lib": [ "es2016", "dom" ], "module": "esnext" }, "angularCompilerOptions": { "strictTemplates": true, }, "exclude": [ "content", "tools", "aio-builds-setup", "node_modules", "scripts" ] }rxjs-7.5.7/docs_app/tslint.json000066400000000000000000000053521431412030200165130ustar00rootroot00000000000000{ "rulesDirectory": [ "node_modules/codelyzer", "node_modules/vrsource-tslint-rules/rules" ], "rules": { "callable-types": true, "class-name": true, "comment-format": [ true, "check-space" ], "curly": true, "eofline": true, "forin": true, "deprecation": { "severity": "warning" }, "import-blacklist": true, "import-spacing": true, "indent": [ true, "spaces" ], "interface-over-type-literal": true, "label-position": true, "max-line-length": [ true, 140 ], "member-access": false, "member-ordering": [ true, "static-before-instance", "variables-before-functions" ], "no-arg": true, "no-bitwise": true, "no-console": [ true, "debug", "info", "time", "timeEnd", "trace" ], "no-construct": true, "no-debugger": true, "no-duplicate-variable": true, "no-empty": false, "no-empty-interface": true, "no-eval": true, "no-inferrable-types": [true, "ignore-params"], "no-jasmine-focus": true, "no-shadowed-variable": true, "no-string-literal": false, "no-string-throw": true, "no-switch-case-fall-through": true, "no-trailing-whitespace": true, "no-unused-expression": true, "no-var-keyword": true, "object-literal-sort-keys": false, "one-line": [ true, "check-open-brace", "check-catch", "check-else", "check-whitespace" ], "prefer-const": true, "quotemark": [ true, "single" ], "radix": true, "semicolon": [ "always" ], "triple-equals": [ true, "allow-null-check" ], "typedef-whitespace": [ true, { "call-signature": "nospace", "index-signature": "nospace", "parameter": "nospace", "property-declaration": "nospace", "variable-declaration": "nospace" } ], "typeof-compare": true, "unified-signatures": true, "variable-name": false, "whitespace": [ true, "check-branch", "check-decl", "check-operator", "check-separator", "check-type" ], "directive-selector": [true, "attribute", "aio", "camelCase"], "component-selector": [true, "element", "aio", "kebab-case"], "no-inputs-metadata-property": true, "no-outputs-metadata-property": true, "no-host-metadata-property": true, "no-input-rename": true, "no-output-rename": true, "use-lifecycle-interface": true, "use-pipe-transform-interface": true, "component-class-suffix": true, "directive-class-suffix": true, "no-access-missing-member": true, "templates-use-public": true, "invoke-injectable": true } } rxjs-7.5.7/integration/000077500000000000000000000000001431412030200150315ustar00rootroot00000000000000rxjs-7.5.7/integration/import/000077500000000000000000000000001431412030200163435ustar00rootroot00000000000000rxjs-7.5.7/integration/import/fixtures/000077500000000000000000000000001431412030200202145ustar00rootroot00000000000000rxjs-7.5.7/integration/import/fixtures/commonjs/000077500000000000000000000000001431412030200220415ustar00rootroot00000000000000rxjs-7.5.7/integration/import/fixtures/commonjs/index.js000066400000000000000000000012351431412030200235070ustar00rootroot00000000000000const assert = require('assert').strict; const rx = require('rxjs'); const operators = require('rxjs/operators'); const rxSnapshot = require('./rx.json'); const operatorsSnapshot = require('./operators.json'); const coldObservable = require('rxjs/internal/testing/ColdObservable'); assert.ok(rx, 'main export should exists'); assert.ok(operators, 'operator export should exists'); assert.ok(coldObservable, 'internal can be imported'); assert.deepStrictEqual(Object.keys(rx).sort(), rxSnapshot.sort(), 'main export should include exports'); assert.deepStrictEqual(Object.keys(operators).sort(), operatorsSnapshot.sort(), 'operator export should include exports'); rxjs-7.5.7/integration/import/fixtures/commonjs/package.json000066400000000000000000000002011431412030200243200ustar00rootroot00000000000000{ "name": "rxjs-import-test", "version": "0.0.1", "main": "./index.js", "scripts": { "test": "node ./index.js" } } rxjs-7.5.7/integration/import/runner.ts000066400000000000000000000050621431412030200202270ustar00rootroot00000000000000/** * Import site integration test runner. * * package.json allows to specify properties for modules across * commonjs, esm and few other fields used by bundler (i.e `module`) * As it expands, there are possibility either properties are not set correctly, * or other properties makes different behavior to another loader. For example, * specifying native esm for node.js can possibly cause breaking changes to commonjs: * https://medium.com/javascript-in-plain-english/is-promise-post-mortem-cab807f18dcc * * This test runner creates local package to code to be tested, then try to validate * each import site we supports to ensure those breaking changes will not occur when * new version's being published. */ import * as path from 'path'; import { exec, rm } from 'shelljs'; import { promisify } from 'util'; import * as fs from 'fs'; import * as rx_export_src from '../../src/index'; import * as operators_export_src from '../../src/operators/index'; const writeFileAsync = promisify(fs.writeFile); const projectRoot = process.cwd(); const { version } = require(path.join(projectRoot, 'package.json')); const execPromise = (cmd: string, cwd = projectRoot) => new Promise((resolve, reject) => exec(cmd, { cwd }, (code, stdout, stderr) => { if (code !== 0) { reject({ std: stderr, code }); } else { resolve({ std: stdout, code }); } })); enum IMPORT_TYPE { COMMONJS = 'commonjs' } const prepareFixture = async (pkgPath: string, fixturePath: string) => { rm('-rf', path.join(fixturePath, 'node_modules')); rm('-rf', path.join(fixturePath, 'rx.json')); rm('-rf', path.join(fixturePath, 'operators.json')); // create snapShot from existing src's export site writeFileAsync(path.join(fixturePath, 'rx.json'), JSON.stringify(Object.keys(rx_export_src))); writeFileAsync(path.join(fixturePath, 'operators.json'), JSON.stringify(Object.keys(operators_export_src))); await execPromise(`npm install ${pkgPath} --no-save`, fixturePath); }; const main = async () => { // create local pkgs await execPromise('npm run build:package'); await execPromise('npm pack'); const pkgPath = path.join(projectRoot, `rxjs-${version}.tgz`); // install local pkg to each fixture path, run test scripts for (const key in IMPORT_TYPE) { const value = (IMPORT_TYPE as any)[key]; const fixturePath = path.join(__dirname, 'fixtures', value); await prepareFixture(pkgPath, fixturePath); await execPromise('npm test', fixturePath); } }; main().catch((err) => { console.log('test failed'); console.log(err); throw err; });rxjs-7.5.7/integration/side-effects/000077500000000000000000000000001431412030200173725ustar00rootroot00000000000000rxjs-7.5.7/integration/side-effects/README.md000066400000000000000000000010321431412030200206450ustar00rootroot00000000000000This test checks if the side effects for loading RxJs packages have changed using . Running `npm test:side-effects` will check all ES modules listed in `side-effects.json`. Running `npm test:side-effects:update` will update any changed side effects. To add a new ES module to this test, add a new entry in `side-effects.json`. Usually the ESM and FESM should have the same output, but retained objects that were renamed during the flattening step will leave behind a different name. rxjs-7.5.7/integration/side-effects/side-effects.json000066400000000000000000000026501431412030200226310ustar00rootroot00000000000000{ "tests": [ { "esModules": "../../dist/esm5/index.js", "expectedOutput": "./snapshots/esm5/index.js" }, { "esModules": "../../dist/esm/index.js", "expectedOutput": "./snapshots/esm/index.js" }, { "esModules": "../../dist/esm5/ajax/index.js", "expectedOutput": "./snapshots/esm5/ajax.js" }, { "esModules": "../../dist/esm/ajax/index.js", "expectedOutput": "./snapshots/esm/ajax.js" }, { "esModules": "../../dist/esm5/fetch/index.js", "expectedOutput": "./snapshots/esm5/fetch.js" }, { "esModules": "../../dist/esm/fetch/index.js", "expectedOutput": "./snapshots/esm/fetch.js" }, { "esModules": "../../dist/esm5/operators/index.js", "expectedOutput": "./snapshots/esm5/operators.js" }, { "esModules": "../../dist/esm/operators/index.js", "expectedOutput": "./snapshots/esm/operators.js" }, { "esModules": "../../dist/esm5/testing/index.js", "expectedOutput": "./snapshots/esm5/testing.js" }, { "esModules": "../../dist/esm/testing/index.js", "expectedOutput": "./snapshots/esm/testing.js" }, { "esModules": "../../dist/esm5/webSocket/index.js", "expectedOutput": "./snapshots/esm5/websocket.js" }, { "esModules": "../../dist/esm/webSocket/index.js", "expectedOutput": "./snapshots/esm/websocket.js" } ] } rxjs-7.5.7/integration/side-effects/snapshots/000077500000000000000000000000001431412030200214145ustar00rootroot00000000000000rxjs-7.5.7/integration/side-effects/snapshots/esm/000077500000000000000000000000001431412030200222005ustar00rootroot00000000000000rxjs-7.5.7/integration/side-effects/snapshots/esm/ajax.js000066400000000000000000000000471431412030200234620ustar00rootroot00000000000000const _bind = Function.prototype.bind; rxjs-7.5.7/integration/side-effects/snapshots/esm/fetch.js000066400000000000000000000000701431412030200236240ustar00rootroot00000000000000import "tslib"; const _bind = Function.prototype.bind; rxjs-7.5.7/integration/side-effects/snapshots/esm/index.js000066400000000000000000000004201431412030200236410ustar00rootroot00000000000000import "tslib"; const _bind = Function.prototype.bind; var NotificationKind; (function(NotificationKind) { NotificationKind["NEXT"] = "N"; NotificationKind["ERROR"] = "E"; NotificationKind["COMPLETE"] = "C"; })(NotificationKind || (NotificationKind = {})); rxjs-7.5.7/integration/side-effects/snapshots/esm/operators.js000066400000000000000000000004201431412030200245500ustar00rootroot00000000000000import "tslib"; const _bind = Function.prototype.bind; var NotificationKind; (function(NotificationKind) { NotificationKind["NEXT"] = "N"; NotificationKind["ERROR"] = "E"; NotificationKind["COMPLETE"] = "C"; })(NotificationKind || (NotificationKind = {})); rxjs-7.5.7/integration/side-effects/snapshots/esm/testing.js000066400000000000000000000004201431412030200242070ustar00rootroot00000000000000import "tslib"; const _bind = Function.prototype.bind; var NotificationKind; (function(NotificationKind) { NotificationKind["NEXT"] = "N"; NotificationKind["ERROR"] = "E"; NotificationKind["COMPLETE"] = "C"; })(NotificationKind || (NotificationKind = {})); rxjs-7.5.7/integration/side-effects/snapshots/esm/websocket.js000066400000000000000000000000471431412030200245250ustar00rootroot00000000000000const _bind = Function.prototype.bind; rxjs-7.5.7/integration/side-effects/snapshots/esm2015/000077500000000000000000000000001431412030200225105ustar00rootroot00000000000000rxjs-7.5.7/integration/side-effects/snapshots/esm2015/ajax.js000066400000000000000000000000011431412030200237600ustar00rootroot00000000000000 rxjs-7.5.7/integration/side-effects/snapshots/esm2015/fetch.js000066400000000000000000000000011431412030200241260ustar00rootroot00000000000000 rxjs-7.5.7/integration/side-effects/snapshots/esm2015/index.js000066400000000000000000000003271431412030200241570ustar00rootroot00000000000000var NotificationKind; (function(NotificationKind) { NotificationKind["NEXT"] = "N"; NotificationKind["ERROR"] = "E"; NotificationKind["COMPLETE"] = "C"; })(NotificationKind || (NotificationKind = {})); rxjs-7.5.7/integration/side-effects/snapshots/esm2015/operators.js000066400000000000000000000003271431412030200250660ustar00rootroot00000000000000var NotificationKind; (function(NotificationKind) { NotificationKind["NEXT"] = "N"; NotificationKind["ERROR"] = "E"; NotificationKind["COMPLETE"] = "C"; })(NotificationKind || (NotificationKind = {})); rxjs-7.5.7/integration/side-effects/snapshots/esm2015/testing.js000066400000000000000000000003271431412030200245250ustar00rootroot00000000000000var NotificationKind; (function(NotificationKind) { NotificationKind["NEXT"] = "N"; NotificationKind["ERROR"] = "E"; NotificationKind["COMPLETE"] = "C"; })(NotificationKind || (NotificationKind = {})); rxjs-7.5.7/integration/side-effects/snapshots/esm2015/websocket.js000066400000000000000000000000011431412030200250230ustar00rootroot00000000000000 rxjs-7.5.7/integration/side-effects/snapshots/esm5/000077500000000000000000000000001431412030200222655ustar00rootroot00000000000000rxjs-7.5.7/integration/side-effects/snapshots/esm5/ajax.js000066400000000000000000000000661431412030200235500ustar00rootroot00000000000000import "tslib"; var _bind = Function.prototype.bind; rxjs-7.5.7/integration/side-effects/snapshots/esm5/fetch.js000066400000000000000000000000661431412030200237160ustar00rootroot00000000000000import "tslib"; var _bind = Function.prototype.bind; rxjs-7.5.7/integration/side-effects/snapshots/esm5/index.js000066400000000000000000000004161431412030200237330ustar00rootroot00000000000000import "tslib"; var _bind = Function.prototype.bind; var NotificationKind; (function(NotificationKind) { NotificationKind["NEXT"] = "N"; NotificationKind["ERROR"] = "E"; NotificationKind["COMPLETE"] = "C"; })(NotificationKind || (NotificationKind = {})); rxjs-7.5.7/integration/side-effects/snapshots/esm5/operators.js000066400000000000000000000004161431412030200246420ustar00rootroot00000000000000import "tslib"; var _bind = Function.prototype.bind; var NotificationKind; (function(NotificationKind) { NotificationKind["NEXT"] = "N"; NotificationKind["ERROR"] = "E"; NotificationKind["COMPLETE"] = "C"; })(NotificationKind || (NotificationKind = {})); rxjs-7.5.7/integration/side-effects/snapshots/esm5/testing.js000066400000000000000000000004161431412030200243010ustar00rootroot00000000000000import "tslib"; var _bind = Function.prototype.bind; var NotificationKind; (function(NotificationKind) { NotificationKind["NEXT"] = "N"; NotificationKind["ERROR"] = "E"; NotificationKind["COMPLETE"] = "C"; })(NotificationKind || (NotificationKind = {})); rxjs-7.5.7/integration/side-effects/snapshots/esm5/websocket.js000066400000000000000000000000661431412030200246130ustar00rootroot00000000000000import "tslib"; var _bind = Function.prototype.bind; rxjs-7.5.7/integration/systemjs/000077500000000000000000000000001431412030200167125ustar00rootroot00000000000000rxjs-7.5.7/integration/systemjs/systemjs-compatibility-spec.js000066400000000000000000000017431431412030200247350ustar00rootroot00000000000000var System = require('systemjs'); var path = require('path'); System.config({ map: { 'rxjs': path.join(__dirname, '..', '..', 'dist', 'cjs', '/') }, packages: { 'rxjs': {main: 'index.js', defaultExtension: 'js' }, 'rxjs/ajax': {main: 'index.js', defaultExtension: 'js' }, 'rxjs/fetch': {main: 'index.js', defaultExtension: 'js' }, 'rxjs/operators': {main: 'index.js', defaultExtension: 'js' }, 'rxjs/testing': {main: 'index.js', defaultExtension: 'js' }, 'rxjs/webSocket': {main: 'index.js', defaultExtension: 'js' } } }); Promise.all([ System.import('rxjs'), System.import('rxjs/ajax'), System.import('rxjs/fetch'), System.import('rxjs/operators'), System.import('rxjs/testing'), System.import('rxjs/webSocket'), ]).then( function () { console.log('Successfully tested all entry-points with SystemJS!'); }, function (error) { console.error('\n\nFailed to load an entry-points via SystemJS: \n\n', error.message); process.exit(-1); } ); rxjs-7.5.7/integration/systemjs/tsconfig.json000066400000000000000000000003661431412030200214260ustar00rootroot00000000000000{ "compilerOptions": { "module": "commonjs", "moduleResolution": "classic", "target": "es2015", "outDir": "../../dist/integration/", "rootDir": "." }, "exclude": [ "node_modules" ] }rxjs-7.5.7/package-lock.json000066400000000000000000032410521431412030200157310ustar00rootroot00000000000000{ "name": "rxjs", "version": "7.5.6", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "rxjs", "version": "7.5.6", "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" }, "devDependencies": { "@angular-devkit/build-optimizer": "0.4.6", "@angular-devkit/schematics": "^11.0.7", "@swc/core": "^1.2.128", "@swc/helpers": "^0.3.2", "@types/chai": "^4.2.11", "@types/lodash": "4.14.102", "@types/mocha": "^7.0.2", "@types/node": "^14.14.6", "@types/shelljs": "^0.8.8", "@types/sinon": "4.1.3", "@types/sinon-chai": "2.7.29", "@types/source-map": "^0.5.2", "@typescript-eslint/eslint-plugin": "^4.29.1", "@typescript-eslint/parser": "^4.29.1", "babel-polyfill": "6.26.0", "chai": "^4.2.0", "check-side-effects": "0.0.23", "color": "3.0.0", "colors": "1.1.2", "cross-env": "5.1.3", "cz-conventional-changelog": "1.2.0", "dependency-cruiser": "^9.12.0", "escape-string-regexp": "1.0.5", "eslint": "^7.8.1", "eslint-plugin-jasmine": "^2.10.1", "form-data": "^3.0.0", "fs-extra": "^8.1.0", "glob": "7.1.2", "google-closure-compiler-js": "20170218.0.0", "husky": "^4.2.5", "klaw-sync": "3.0.2", "lint-staged": "^10.2.11", "lodash": "^4.17.15", "minimist": "^1.2.5", "mocha": "^8.1.3", "nodemon": "^1.9.2", "npm-run-all": "4.1.2", "opn-cli": "3.1.0", "platform": "1.3.5", "prettier": "^2.5.1", "promise": "8.0.1", "rollup": "0.66.6", "rollup-plugin-alias": "1.4.0", "rollup-plugin-inject": "2.0.0", "rollup-plugin-node-resolve": "2.0.0", "shelljs": "^0.8.4", "shx": "^0.3.2", "sinon": "4.3.0", "sinon-chai": "2.14.0", "source-map-support": "0.5.3", "systemjs": "^0.21.0", "ts-api-guardian": "^0.5.0", "ts-node": "^9.1.1", "tslint": "^5.20.1", "tslint-config-prettier": "^1.18.0", "tslint-etc": "1.13.10", "tslint-no-toplevel-property-access": "0.0.2", "tslint-no-unused-expression-chai": "0.0.3", "typescript": "~4.2.0", "validate-commit-msg": "2.14.0", "web-streams-polyfill": "^3.0.2", "webpack": "^4.31.0" } }, "node_modules/@angular-devkit/build-optimizer": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.4.6.tgz", "integrity": "sha512-q6pUXxb8gZMguuh00ATWHItLw38YT2RE353LptCh38uQQ16bGx/8YxJVJZ0IsLK7mEhd2PtkyRzoyM3ttrYhag==", "dev": true, "dependencies": { "loader-utils": "^1.1.0", "source-map": "^0.5.6", "typescript": "~2.7.2", "webpack-sources": "^1.1.0" }, "bin": { "build-optimizer": "src/build-optimizer/cli.js", "purify": "src/purify/cli.js" }, "engines": { "node": ">= 8.9.0", "npm": ">= 5.5.1" } }, "node_modules/@angular-devkit/build-optimizer/node_modules/typescript": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { "node": ">=4.2.0" } }, "node_modules/@angular-devkit/core": { "version": "11.0.7", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.0.7.tgz", "integrity": "sha512-1GKnIT++YSUHpzzRx9QC0+8yOw4wy+ZpiJVDlroPSeK4FGrTCJqJKenkfRjVFRFOSrzTiJds+IU6kI4+bFbw9g==", "dev": true, "dependencies": { "ajv": "6.12.6", "fast-json-stable-stringify": "2.1.0", "magic-string": "0.25.7", "rxjs": "6.6.3", "source-map": "0.7.3" }, "engines": { "node": ">= 10.13.0", "npm": ">= 6.11.0", "yarn": ">= 1.13.0" } }, "node_modules/@angular-devkit/core/node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/@angular-devkit/core/node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "node_modules/@angular-devkit/core/node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "node_modules/@angular-devkit/core/node_modules/magic-string": { "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", "dev": true, "dependencies": { "sourcemap-codec": "^1.4.4" } }, "node_modules/@angular-devkit/core/node_modules/source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/@angular-devkit/schematics": { "version": "11.0.7", "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.0.7.tgz", "integrity": "sha512-mKkXWmSTlZYjQO4i7xUX+bG1E9h9Ke3GgGQQouA+kth06IPO+VcywLQNsui4qcyLDUjyo8CaX+44aoSXoX3Tgg==", "dev": true, "dependencies": { "@angular-devkit/core": "11.0.7", "ora": "5.1.0", "rxjs": "6.6.3" }, "engines": { "node": ">= 10.13.0", "npm": ">= 6.11.0", "yarn": ">= 1.13.0" } }, "node_modules/@babel/code-frame": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "dependencies": { "@babel/highlight": "^7.8.3" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==", "dev": true }, "node_modules/@babel/highlight": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "node_modules/@eslint/eslintrc": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz", "integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.1.1", "espree": "^7.3.0", "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", "lodash": "^4.17.19", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/@eslint/eslintrc/node_modules/ajv": { "version": "6.12.4", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/@eslint/eslintrc/node_modules/debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/@eslint/eslintrc/node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "node_modules/@eslint/eslintrc/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/@napi-rs/triples": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.1.0.tgz", "integrity": "sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w==", "dev": true }, "node_modules/@node-rs/helper": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@node-rs/helper/-/helper-1.3.0.tgz", "integrity": "sha512-KPS0EBA1bXtf96IL7wr5bFHxhL2KCZ6kI/hkyLG7nzEq2cDq8pJhOhcJDOLXIPh5J2LEJ5eXyjDTWDFg5eRypw==", "dev": true, "dependencies": { "@napi-rs/triples": "^1.1.0" } }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" }, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" }, "engines": { "node": ">= 8" } }, "node_modules/@phenomnomnominal/tsquery": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz", "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==", "dev": true, "dependencies": { "esquery": "^1.0.1" }, "peerDependencies": { "typescript": "^3 || ^4" } }, "node_modules/@sinonjs/commons": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.6.0.tgz", "integrity": "sha512-w4/WHG7C4WWFyE5geCieFJF6MZkbW4VAriol5KlmQXpAQdxvV0p26sqNZOW6Qyw6Y0l9K4g+cHvvczR2sEEpqg==", "dev": true, "dependencies": { "type-detect": "4.0.8" } }, "node_modules/@sinonjs/formatio": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", "dev": true, "dependencies": { "samsam": "1.3.0" } }, "node_modules/@sinonjs/samsam": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz", "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==", "dev": true, "dependencies": { "@sinonjs/commons": "^1.3.0", "array-from": "^2.1.1", "lodash": "^4.17.15" } }, "node_modules/@sinonjs/text-encoding": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, "node_modules/@swc/core": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.128.tgz", "integrity": "sha512-bcs62TYhk7NmGHeP0bBf7cphODVxy+Rh0E5hiak6FcNVr7TUtcsaH8GIQTYdWlpv1rX+FaXCFdIhD4yIyJrqDQ==", "dev": true, "dependencies": { "@node-rs/helper": "^1.0.0" }, "engines": { "node": ">=10" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/swc" }, "optionalDependencies": { "@swc/core-android-arm-eabi": "1.2.128", "@swc/core-android-arm64": "1.2.128", "@swc/core-darwin-arm64": "1.2.128", "@swc/core-darwin-x64": "1.2.128", "@swc/core-freebsd-x64": "1.2.128", "@swc/core-linux-arm-gnueabihf": "1.2.128", "@swc/core-linux-arm64-gnu": "1.2.128", "@swc/core-linux-arm64-musl": "1.2.128", "@swc/core-linux-x64-gnu": "1.2.128", "@swc/core-linux-x64-musl": "1.2.128", "@swc/core-win32-arm64-msvc": "1.2.128", "@swc/core-win32-ia32-msvc": "1.2.128", "@swc/core-win32-x64-msvc": "1.2.128" } }, "node_modules/@swc/core-android-arm-eabi": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.128.tgz", "integrity": "sha512-gERpCKxWWd4UegQu9X5SmbuIRnYxLlyfwpXyIu/ACDvxP7Hip0NWFSy6L1l5ofpMHXFt7zGekiNGzJImaOGV/A==", "cpu": [ "arm" ], "dev": true, "optional": true, "os": [ "android" ], "engines": { "node": ">=10" } }, "node_modules/@swc/core-android-arm64": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.128.tgz", "integrity": "sha512-tEsbB52tOwn/Hko4zvLVh3YbuZq0aIvKn7rQT2jTS/NlTefLf1CQJqmgABFn3ZOimgPkNANRvYAZKDvrJm9d4A==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "android" ], "engines": { "node": ">=10" } }, "node_modules/@swc/core-darwin-arm64": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.128.tgz", "integrity": "sha512-EoF/ps3afvNIW3TSYwEMeFh6Q1IjN1ZRAZ4oVa2HllQ7CsUI1C2dMMNMZRipm5ESQiUbIVcZ/WQ6pOcnyn033A==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "darwin" ], "engines": { "node": ">=10" } }, "node_modules/@swc/core-darwin-x64": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.128.tgz", "integrity": "sha512-wdIYDQ35qmPICvgtnRghj5t8M29ZOL0Bnb8lMr1L+iEDI09j8GQAJkyrjNzAxHzSneuAPmv2TUcXc1yFFqhaiA==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "darwin" ], "engines": { "node": ">=10" } }, "node_modules/@swc/core-freebsd-x64": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.128.tgz", "integrity": "sha512-YyVCyOupZOsNwnWPI6hMHf4qCClUbeEIKwugOePcbiSgSfZXrCYU1DljWHyKDdnyaiRGUmmPF6UlpdfxyOgPSg==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "freebsd" ], "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-arm-gnueabihf": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.128.tgz", "integrity": "sha512-W8KT3Li+NWxZaRcSwvQUycDa8tN6tQDPonLTqTPPqWbVpWj6U9hc0pojylJIb3QjUZSIXxbXVlVDmezJgmHZ4w==", "cpu": [ "arm" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-arm64-gnu": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.128.tgz", "integrity": "sha512-7bmECX5hs/1xx6m+VBgzVSRhyjP+R/30KVJfTO9pYO9AATCAbOWElyKhIkMKH8N9g/sNmS1g1vy1yfE0y+xoKg==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-arm64-musl": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.128.tgz", "integrity": "sha512-i0SIv1BwpEaIo56BQyOBiik+N/2n4ZqND2NxT/Xs7xvhyBSNZUwVSAW+6xNlcY5sJ4GVFTHRungf5QWKtgCOXg==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-x64-gnu": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.128.tgz", "integrity": "sha512-7Toh4KQUqc/KZiyuyzrUmoiE9Zh+jixXZqg6TntVOf9EKE2ZrOP1USjPT/QaaSfcOdEt64Neu53ypIx4ZRIXVQ==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=10" } }, "node_modules/@swc/core-linux-x64-musl": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.128.tgz", "integrity": "sha512-v5CT82NsGpN7UX6FtMpFKlU5pAwfm4BQxICOF5tM5JU4sedvNoSTlrZbXoKPL+zxSdhNOTX+aI8SAygM6dcW9Q==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "linux" ], "engines": { "node": ">=10" } }, "node_modules/@swc/core-win32-arm64-msvc": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.128.tgz", "integrity": "sha512-wzWcOKbfrBrm7ZTX9G51aTblDpil4sM3fN8thFR5EctxinvnpYaaW8ZUQ6d1dfbc5xDTTUNJWi6d6PRSzt85cA==", "cpu": [ "arm64" ], "dev": true, "optional": true, "os": [ "win32" ], "engines": { "node": ">=10" } }, "node_modules/@swc/core-win32-ia32-msvc": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.128.tgz", "integrity": "sha512-fz7YfX8RTHm6PmqL8L64xK6R6y0/rn8JgmLd7lwmTRta07eJyqvzESZQSUg/CIJd90mS0wLmTmkEhj8FoXOBNg==", "cpu": [ "ia32" ], "dev": true, "optional": true, "os": [ "win32" ], "engines": { "node": ">=10" } }, "node_modules/@swc/core-win32-x64-msvc": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.128.tgz", "integrity": "sha512-7Pm4+kN8cXSgwil7/wrlFVpn1h6CTvfVVBcZvfHV8jllQlUnN2GZ1FnOfoeBLfrXyaegHWkbPaKJDEYh69jNcQ==", "cpu": [ "x64" ], "dev": true, "optional": true, "os": [ "win32" ], "engines": { "node": ">=10" } }, "node_modules/@swc/helpers": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.2.tgz", "integrity": "sha512-qEru2uaH1vKZNCZR4rFCUZaflsBP7IWiGcIoQe22qi5tm+HEG/yPdhSba+ZCNTWk2xyYpx/nEFkncDY3orEx3w==", "dev": true }, "node_modules/@types/chai": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.11.tgz", "integrity": "sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw==", "dev": true }, "node_modules/@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, "node_modules/@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, "node_modules/@types/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", "dev": true, "dependencies": { "@types/minimatch": "*", "@types/node": "*" } }, "node_modules/@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "node_modules/@types/lodash": { "version": "4.14.102", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.102.tgz", "integrity": "sha512-k/SxycYmVc6sYo6kzm8cABHcbMs9MXn6jYsja1hLvZ/x9e31VHRRn+1UzWdpv6doVchphvKaOsZ0VTqbF7zvNg==", "dev": true }, "node_modules/@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, "node_modules/@types/mocha": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz", "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==", "dev": true }, "node_modules/@types/node": { "version": "14.14.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.6.tgz", "integrity": "sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw==", "dev": true }, "node_modules/@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, "node_modules/@types/resolve": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/shelljs": { "version": "0.8.8", "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.8.tgz", "integrity": "sha512-lD3LWdg6j8r0VRBFahJVaxoW0SIcswxKaFUrmKl33RJVeeoNYQAz4uqCJ5Z6v4oIBOsC5GozX+I5SorIKiTcQA==", "dev": true, "dependencies": { "@types/glob": "*", "@types/node": "*" } }, "node_modules/@types/sinon": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-4.1.3.tgz", "integrity": "sha512-Xxn32Q3mAJHOMU20bxcT6HiPksUJEkZA+nyZS4NhLo8kKb8hLhkBgp5OeW/BI3+9QmdrvDRk3caYNqtYb+TEbA==", "dev": true }, "node_modules/@types/sinon-chai": { "version": "2.7.29", "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-2.7.29.tgz", "integrity": "sha512-EkI/ZvJT4hglWo7Ipf9SX+J+R9htNOMjW8xiOhce7+0csqvgoF5IXqY5Ae1GqRgNtWCuaywR5HjVa1snkTqpOw==", "dev": true, "dependencies": { "@types/chai": "*", "@types/sinon": "*" } }, "node_modules/@types/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@types/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LrnsgZIfJaysFkv9rRJp4/uAyqw87oVed3s1hhF83nwbo9c7MG9g5DqR0seHP+lkX4ldmMrVolPjQSe2ZfD0yA==", "deprecated": "This is a stub types definition for source-map (https://github.com/mozilla/source-map). source-map provides its own type definitions, so you don't need @types/source-map installed!", "dev": true, "dependencies": { "source-map": "*" } }, "node_modules/@types/yargs": { "version": "17.0.0", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.0.tgz", "integrity": "sha512-RS7u2X7vdXjVQs160PWY1pjLBw6GJj04utojn0KU8p2rRZR37FSzzK6XOT+KLzT/DVbDYRyezroc0LHIvM5Z2A==", "dev": true, "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { "version": "20.2.0", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", "dev": true }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.1.tgz", "integrity": "sha512-AHqIU+SqZZgBEiWOrtN94ldR3ZUABV5dUG94j8Nms9rQnHFc8fvDOue/58K4CFz6r8OtDDc35Pw9NQPWo0Ayrw==", "dev": true, "dependencies": { "@typescript-eslint/experimental-utils": "4.29.1", "@typescript-eslint/scope-manager": "4.29.1", "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", "regexpp": "^3.1.0", "semver": "^7.3.5", "tsutils": "^3.21.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { "@typescript-eslint/parser": "^4.0.0", "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/@typescript-eslint/experimental-utils": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.1.tgz", "integrity": "sha512-kl6QG6qpzZthfd2bzPNSJB2YcZpNOrP6r9jueXupcZHnL74WiuSjaft7WSu17J9+ae9zTlk0KJMXPUj0daBxMw==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.7", "@typescript-eslint/scope-manager": "4.29.1", "@typescript-eslint/types": "4.29.1", "@typescript-eslint/typescript-estree": "4.29.1", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { "eslint": "*" } }, "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" }, "engines": { "node": ">=8.0.0" } }, "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "dependencies": { "eslint-visitor-keys": "^2.0.0" }, "engines": { "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, "funding": { "url": "https://github.com/sponsors/mysticatea" }, "peerDependencies": { "eslint": ">=5" } }, "node_modules/@typescript-eslint/experimental-utils/node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/@typescript-eslint/experimental-utils/node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { "estraverse": "^5.2.0" }, "engines": { "node": ">=4.0" } }, "node_modules/@typescript-eslint/experimental-utils/node_modules/esrecurse/node_modules/estraverse": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/@typescript-eslint/parser": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.29.1.tgz", "integrity": "sha512-3fL5iN20hzX3Q4OkG7QEPFjZV2qsVGiDhEwwh+EkmE/w7oteiOvUNzmpu5eSwGJX/anCryONltJ3WDmAzAoCMg==", "dev": true, "dependencies": { "@typescript-eslint/scope-manager": "4.29.1", "@typescript-eslint/types": "4.29.1", "@typescript-eslint/typescript-estree": "4.29.1", "debug": "^4.3.1" }, "engines": { "node": "^10.12.0 || >=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { "eslint": "^5.0.0 || ^6.0.0 || ^7.0.0" }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, "node_modules/@typescript-eslint/parser/node_modules/debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/@typescript-eslint/parser/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/@typescript-eslint/scope-manager": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.29.1.tgz", "integrity": "sha512-Hzv/uZOa9zrD/W5mftZa54Jd5Fed3tL6b4HeaOpwVSabJK8CJ+2MkDasnX/XK4rqP5ZTWngK1ZDeCi6EnxPQ7A==", "dev": true, "dependencies": { "@typescript-eslint/types": "4.29.1", "@typescript-eslint/visitor-keys": "4.29.1" }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@typescript-eslint/types": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.29.1.tgz", "integrity": "sha512-Jj2yu78IRfw4nlaLtKjVaGaxh/6FhofmQ/j8v3NXmAiKafbIqtAPnKYrf0sbGjKdj0hS316J8WhnGnErbJ4RCA==", "dev": true, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@typescript-eslint/typescript-estree": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.1.tgz", "integrity": "sha512-lIkkrR9E4lwZkzPiRDNq0xdC3f2iVCUjw/7WPJ4S2Sl6C3nRWkeE1YXCQ0+KsiaQRbpY16jNaokdWnm9aUIsfw==", "dev": true, "dependencies": { "@typescript-eslint/types": "4.29.1", "@typescript-eslint/visitor-keys": "4.29.1", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", "semver": "^7.3.5", "tsutils": "^3.21.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependenciesMeta": { "typescript": { "optional": true } } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/@typescript-eslint/visitor-keys": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.1.tgz", "integrity": "sha512-zLqtjMoXvgdZY/PG6gqA73V8BjqPs4af1v2kiiETBObp+uC6gRYnJLmJHxC0QyUrrHDLJPIWNYxoBV3wbcRlag==", "dev": true, "dependencies": { "@typescript-eslint/types": "4.29.1", "eslint-visitor-keys": "^2.0.0" }, "engines": { "node": "^8.10.0 || ^10.13.0 || >=11.10.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/@webassemblyjs/ast": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", "dev": true, "dependencies": { "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", "@webassemblyjs/wast-parser": "1.8.5" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", "dev": true }, "node_modules/@webassemblyjs/helper-code-frame": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", "dev": true, "dependencies": { "@webassemblyjs/wast-printer": "1.8.5" } }, "node_modules/@webassemblyjs/helper-fsm": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", "dev": true }, "node_modules/@webassemblyjs/helper-module-context": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.8.5", "mamacro": "^0.0.3" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-buffer": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", "@webassemblyjs/wasm-gen": "1.8.5" } }, "node_modules/@webassemblyjs/ieee754": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-buffer": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", "@webassemblyjs/helper-wasm-section": "1.8.5", "@webassemblyjs/wasm-gen": "1.8.5", "@webassemblyjs/wasm-opt": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", "@webassemblyjs/wast-printer": "1.8.5" } }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", "@webassemblyjs/ieee754": "1.8.5", "@webassemblyjs/leb128": "1.8.5", "@webassemblyjs/utf8": "1.8.5" } }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-buffer": "1.8.5", "@webassemblyjs/wasm-gen": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5" } }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-api-error": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", "@webassemblyjs/ieee754": "1.8.5", "@webassemblyjs/leb128": "1.8.5", "@webassemblyjs/utf8": "1.8.5" } }, "node_modules/@webassemblyjs/wast-parser": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/floating-point-hex-parser": "1.8.5", "@webassemblyjs/helper-api-error": "1.8.5", "@webassemblyjs/helper-code-frame": "1.8.5", "@webassemblyjs/helper-fsm": "1.8.5", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/wast-parser": "1.8.5", "@xtuc/long": "4.2.2" } }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "node_modules/acorn": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/acorn-jsx": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-jsx-walk": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/acorn-jsx-walk/-/acorn-jsx-walk-2.0.0.tgz", "integrity": "sha512-uuo6iJj4D4ygkdzd6jPtcxs8vZgDX9YFIkqczGImoypX2fQ4dVImmu3UzA4ynixCIMTrEOWW+95M2HuBaCEOVA==", "dev": true }, "node_modules/acorn-loose": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.1.0.tgz", "integrity": "sha512-+X1zk54qiOWwIRywGBhfz8sLHFJ/adQRuVqn25m4HuD7/+GTXM1c0b3LH0bWerQ0H97lTk2GyuScGbSiQK9M1g==", "dev": true, "dependencies": { "acorn": "^8.2.0" }, "engines": { "node": ">=0.4.0" } }, "node_modules/acorn-loose/node_modules/acorn": { "version": "8.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/acorn-walk": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.0.tgz", "integrity": "sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg==", "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/aggregate-error": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "dev": true, "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/aggregate-error/node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/ajv": { "version": "6.9.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", "dev": true, "dependencies": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "node_modules/ajv-errors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", "dev": true, "peerDependencies": { "ajv": ">=5.0.0" } }, "node_modules/ajv-keywords": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", "dev": true, "peerDependencies": { "ajv": "^6.9.1" } }, "node_modules/amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true, "engines": { "node": ">=0.4.2" } }, "node_modules/ansi-align": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "dependencies": { "string-width": "^2.0.0" } }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { "color-convert": "^1.9.0" }, "engines": { "node": ">=4" } }, "node_modules/anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "optional": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" }, "engines": { "node": ">= 8" } }, "node_modules/aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/array-from": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", "dev": true }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/array.prototype.map": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz", "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==", "dev": true, "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1", "es-array-method-boxes-properly": "^1.0.0", "is-string": "^1.0.4" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.map/node_modules/es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "dependencies": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.0", "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.map/node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.map/node_modules/has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.map/node_modules/is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.map/node_modules/is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "dependencies": { "has-symbols": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array.prototype.map/node_modules/object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "dev": true }, "node_modules/asn1.js": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, "node_modules/assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "dev": true, "dependencies": { "object-assign": "^4.1.1", "util": "0.10.3" } }, "node_modules/assert/node_modules/inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", "dev": true }, "node_modules/assert/node_modules/util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "dependencies": { "inherits": "2.0.1" } }, "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true, "engines": { "node": "*" } }, "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true, "bin": { "atob": "bin/atob.js" }, "engines": { "node": ">= 4.5.0" } }, "node_modules/babel-polyfill": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "dependencies": { "babel-runtime": "^6.26.0", "core-js": "^2.5.0", "regenerator-runtime": "^0.10.5" } }, "node_modules/babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "dependencies": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" } }, "node_modules/babel-runtime/node_modules/regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true }, "node_modules/balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "node_modules/base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/base/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/base/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/base/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/base/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, "optional": true, "engines": { "node": ">=8" } }, "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, "optional": true, "dependencies": { "file-uri-to-path": "1.0.0" } }, "node_modules/bluebird": { "version": "3.5.5", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", "dev": true }, "node_modules/bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, "node_modules/boxen": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "dependencies": { "ansi-align": "^2.0.0", "camelcase": "^4.0.0", "chalk": "^2.0.1", "cli-boxes": "^1.0.0", "string-width": "^2.0.0", "term-size": "^1.2.0", "widest-line": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/boxen/node_modules/camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", "extend-shallow": "^2.0.1", "fill-range": "^4.0.0", "isobject": "^3.0.1", "repeat-element": "^1.1.2", "snapdragon": "^0.8.1", "snapdragon-node": "^2.0.1", "split-string": "^3.0.2", "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, "node_modules/browser-resolve": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", "dev": true, "dependencies": { "resolve": "1.1.7" } }, "node_modules/browser-resolve/node_modules/resolve": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", "dev": true }, "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.3", "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, "node_modules/browserify-cipher": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", "evp_bytestokey": "^1.0.0" } }, "node_modules/browserify-des": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, "node_modules/browserify-rsa": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "dependencies": { "bn.js": "^4.1.0", "randombytes": "^2.0.1" } }, "node_modules/browserify-sign": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "dependencies": { "bn.js": "^4.1.1", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "create-hmac": "^1.1.2", "elliptic": "^6.0.0", "inherits": "^2.0.1", "parse-asn1": "^5.0.0" } }, "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "dependencies": { "pako": "~1.0.5" } }, "node_modules/buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "deprecated": "This version of 'buffer' is out-of-date. You must update to v4.9.2 or newer", "dev": true, "dependencies": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", "isarray": "^1.0.0" } }, "node_modules/buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", "dev": true }, "node_modules/builtin-modules": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, "node_modules/cacache": { "version": "12.0.3", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", "dev": true, "dependencies": { "bluebird": "^3.5.5", "chownr": "^1.1.1", "figgy-pudding": "^3.5.1", "glob": "^7.1.4", "graceful-fs": "^4.1.15", "infer-owner": "^1.0.3", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", "promise-inflight": "^1.0.1", "rimraf": "^2.6.3", "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" } }, "node_modules/cacache/node_modules/glob": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" } }, "node_modules/cacache/node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "dependencies": { "yallist": "^3.0.2" } }, "node_modules/cacache/node_modules/mkdirp": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "dev": true, "dependencies": { "minimist": "^1.2.5" }, "bin": { "mkdirp": "bin/cmd.js" } }, "node_modules/cacache/node_modules/mkdirp/node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "node_modules/cacache/node_modules/yallist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", "dev": true }, "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", "get-value": "^2.0.6", "has-value": "^1.0.0", "isobject": "^3.0.1", "set-value": "^2.0.0", "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/camelcase-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "dependencies": { "camelcase": "^2.0.0", "map-obj": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/camelcase-keys/node_modules/camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/capture-stack-trace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/chai": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "dependencies": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", "pathval": "^1.1.0", "type-detect": "^4.0.5" }, "engines": { "node": ">=4" } }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" }, "engines": { "node": ">=4" } }, "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "node_modules/check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true, "engines": { "node": "*" } }, "node_modules/check-side-effects": { "version": "0.0.23", "resolved": "https://registry.npmjs.org/check-side-effects/-/check-side-effects-0.0.23.tgz", "integrity": "sha512-ieLYOsDdM0BUbSpPrpsJbB9/0ovuNKgp/p7Wos068klHBABMb/KNKNrAdvl5r36tAA8Jbto6/t8K9Fepa6z1KA==", "dev": true, "dependencies": { "@angular-devkit/build-optimizer": "0.14.0-beta.5", "diff": "^4.0.1", "minimist": "^1.2.5", "rollup": "~1.11.3", "rollup-plugin-node-resolve": "~4.2.3", "rollup-plugin-terser": "^7.0.1" }, "bin": { "check-side-effects": "bin/check-side-effects" } }, "node_modules/check-side-effects/node_modules/@angular-devkit/build-optimizer": { "version": "0.14.0-beta.5", "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.14.0-beta.5.tgz", "integrity": "sha512-sQ86BGrd65QD9fV+wgDWNFKS2kxsZFj/lSn3pjgguV43XjGvnNlXnsVAgZOruygyXjB/afEOkNpO/4sKFNxiMw==", "dev": true, "dependencies": { "loader-utils": "1.2.3", "source-map": "0.5.6", "typescript": "3.2.4", "webpack-sources": "1.3.0" }, "bin": { "build-optimizer": "src/build-optimizer/cli.js" }, "engines": { "node": ">= 8.9.0", "npm": ">= 5.5.1" } }, "node_modules/check-side-effects/node_modules/@types/node": { "version": "11.15.21", "resolved": "https://registry.npmjs.org/@types/node/-/node-11.15.21.tgz", "integrity": "sha512-pYC/tp6UctD/laukjIoO48Owmf4OacwEKaDErnlarkatott0j3B5wp9q2M0zn/XgZUpebuFeKMX4UFf578/+Vw==", "dev": true }, "node_modules/check-side-effects/node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { "node": ">=0.3.1" } }, "node_modules/check-side-effects/node_modules/rollup": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.11.3.tgz", "integrity": "sha512-81MR7alHcFKxgWzGfG7jSdv+JQxSOIOD/Fa3iNUmpzbd7p+V19e1l9uffqT8/7YAHgGOzmoPGN3Fx3L2ptOf5g==", "dev": true, "dependencies": { "@types/estree": "0.0.39", "@types/node": "^11.13.9", "acorn": "^6.1.1" }, "bin": { "rollup": "bin/rollup" } }, "node_modules/check-side-effects/node_modules/rollup-plugin-node-resolve": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-4.2.4.tgz", "integrity": "sha512-t/64I6l7fZ9BxqD3XlX4ZeO6+5RLKyfpwE2CiPNUKa+GocPlQhf/C208ou8y3AwtNsc6bjSk/8/6y/YAyxCIvw==", "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-node-resolve.", "dev": true, "dependencies": { "@types/resolve": "0.0.8", "builtin-modules": "^3.1.0", "is-module": "^1.0.0", "resolve": "^1.10.0" } }, "node_modules/check-side-effects/node_modules/source-map": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/check-side-effects/node_modules/typescript": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { "node": ">=4.2.0" } }, "node_modules/check-side-effects/node_modules/webpack-sources": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" } }, "node_modules/check-side-effects/node_modules/webpack-sources/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/chokidar": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, "optional": true, "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.5.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { "fsevents": "~2.3.1" } }, "node_modules/chokidar/node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "optional": true, "dependencies": { "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, "node_modules/chokidar/node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "optional": true, "dependencies": { "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/chokidar/node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "optional": true, "engines": { "node": ">=0.12.0" } }, "node_modules/chokidar/node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "optional": true, "dependencies": { "is-number": "^7.0.0" }, "engines": { "node": ">=8.0" } }, "node_modules/chownr": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==", "dev": true }, "node_modules/chrome-trace-event": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "node": ">=6.0" } }, "node_modules/chrome-trace-event/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "node_modules/cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, "node_modules/class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/class-utils/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/cli-boxes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "dependencies": { "restore-cursor": "^3.1.0" }, "engines": { "node": ">=8" } }, "node_modules/cli-spinners": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", "dev": true, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-truncate": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-truncate/node_modules/ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/cli-truncate/node_modules/ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "dependencies": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/cli-truncate/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/cli-truncate/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/cli-truncate/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/cli-truncate/node_modules/slice-ansi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/cli-truncate/node_modules/string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=8" } }, "node_modules/cli-truncate/node_modules/strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { "ansi-regex": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" } }, "node_modules/cliui/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", "dev": true, "engines": { "node": ">=0.8" } }, "node_modules/clone-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/clone-stats": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", "dev": true }, "node_modules/cloneable-readable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "dev": true, "dependencies": { "inherits": "^2.0.1", "process-nextick-args": "^2.0.0", "readable-stream": "^2.3.5" } }, "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/color": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", "dev": true, "dependencies": { "color-convert": "^1.9.1", "color-string": "^1.5.2" } }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { "color-name": "1.1.3" } }, "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "node_modules/color-string": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", "dev": true, "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, "node_modules/colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true, "engines": { "node": ">=0.1.90" } }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "dependencies": { "delayed-stream": "~1.0.0" }, "engines": { "node": ">= 0.8" } }, "node_modules/commander": { "version": "2.20.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "dev": true }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "node_modules/compare-versions": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", "dev": true }, "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "node_modules/concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "engines": [ "node >= 0.8" ], "dependencies": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" } }, "node_modules/configstore": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.5.tgz", "integrity": "sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==", "dev": true, "dependencies": { "dot-prop": "^4.2.1", "graceful-fs": "^4.1.2", "make-dir": "^1.0.0", "unique-string": "^1.0.0", "write-file-atomic": "^2.0.0", "xdg-basedir": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/configstore/node_modules/make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "dependencies": { "pify": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/console-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "dependencies": { "date-now": "^0.1.4" } }, "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, "node_modules/conventional-commit-types": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.1.1.tgz", "integrity": "sha512-0Ts+fEdmjqYDOQ1yZ+LNgdSPO335XZw9qC10M7CxtLP3nIMGmeMhmkM8Taffa4+MXN13bRPlp0CtH+QfOzKTzw==", "dev": true }, "node_modules/copy-concurrently": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "dependencies": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", "iferr": "^0.1.5", "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.0" } }, "node_modules/copy-concurrently/node_modules/mkdirp": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "dev": true, "dependencies": { "minimist": "^1.2.5" }, "bin": { "mkdirp": "bin/cmd.js" } }, "node_modules/copy-concurrently/node_modules/mkdirp/node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/core-js": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", "dev": true, "hasInstallScript": true }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "node_modules/cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.7.2" }, "engines": { "node": ">=8" } }, "node_modules/cosmiconfig/node_modules/parse-json": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1", "lines-and-columns": "^1.1.6" }, "engines": { "node": ">=8" } }, "node_modules/cosmiconfig/node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/create-ecdh": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.0.0" } }, "node_modules/create-error-class": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "dependencies": { "capture-stack-trace": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", "md5.js": "^1.3.4", "ripemd160": "^2.0.1", "sha.js": "^2.4.0" } }, "node_modules/create-hmac": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", "inherits": "^2.0.1", "ripemd160": "^2.0.0", "safe-buffer": "^5.0.1", "sha.js": "^2.4.8" } }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, "node_modules/cross-env": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.1.3.tgz", "integrity": "sha512-UOokgwvDzCT0mqRSLEkJzUhYXB1vK3E5UgDrD41QiXsm9UetcW2rCGHYz/O3p873lMJ1VZbFCF9Izkwh7nYR5A==", "dev": true, "dependencies": { "cross-spawn": "^5.1.0", "is-windows": "^1.0.0" }, "bin": { "cross-env": "dist/bin/cross-env.js", "cross-env-shell": "dist/bin/cross-env-shell.js" }, "engines": { "node": ">=4.0" } }, "node_modules/cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "dependencies": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, "node_modules/crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", "create-ecdh": "^4.0.0", "create-hash": "^1.1.0", "create-hmac": "^1.1.0", "diffie-hellman": "^5.0.0", "inherits": "^2.0.1", "pbkdf2": "^3.0.3", "public-encrypt": "^4.0.0", "randombytes": "^2.0.0", "randomfill": "^1.0.3" }, "engines": { "node": "*" } }, "node_modules/crypto-random-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "dependencies": { "array-find-index": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/cyclist": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", "dev": true }, "node_modules/cz-conventional-changelog": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-1.2.0.tgz", "integrity": "sha1-K8oElkyJGbI/P9aonvXmAIsxs/g=", "dev": true, "dependencies": { "conventional-commit-types": "^2.0.0", "lodash.map": "^4.5.1", "longest": "^1.0.1", "pad-right": "^0.2.2", "right-pad": "^1.0.1", "word-wrap": "^1.0.3" } }, "node_modules/cz-conventional-changelog/node_modules/longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", "dev": true }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "dependencies": { "ms": "2.0.0" } }, "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true, "engines": { "node": ">=0.10" } }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, "node_modules/deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "dependencies": { "type-detect": "^4.0.0" }, "engines": { "node": ">=0.12" } }, "node_modules/deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true, "engines": { "node": ">=4.0.0" } }, "node_modules/deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "node_modules/defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "dependencies": { "clone": "^1.0.2" } }, "node_modules/defaults/node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true, "engines": { "node": ">=0.8" } }, "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "dependencies": { "object-keys": "^1.0.12" }, "engines": { "node": ">= 0.4" } }, "node_modules/define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/define-property/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/define-property/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/define-property/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/dependency-cruiser": { "version": "9.26.1", "resolved": "https://registry.npmjs.org/dependency-cruiser/-/dependency-cruiser-9.26.1.tgz", "integrity": "sha512-VS1QmbKwx+U+oCkWp4qj59lCJkhqt/AtyXSamh/l2NQ4Nj0VWmv/Cmu63VF6Kyu1B665cAwNFDW6uO4mDB9lsA==", "dev": true, "dependencies": { "acorn": "8.2.2", "acorn-jsx": "5.3.1", "acorn-jsx-walk": "2.0.0", "acorn-loose": "8.1.0", "acorn-walk": "8.1.0", "ajv": "8.2.0", "chalk": "4.1.1", "commander": "7.2.0", "enhanced-resolve": "5.1.0", "figures": "3.2.0", "get-stream": "6.0.1", "glob": "7.1.6", "handlebars": "4.7.7", "indent-string": "4.0.0", "inquirer": "7.3.3", "json5": "2.2.0", "lodash": "4.17.21", "safe-regex": "2.1.1", "semver": "7.3.5", "semver-try-require": "4.0.1", "teamcity-service-messages": "0.1.11", "tsconfig-paths-webpack-plugin": "3.5.1", "wrap-ansi": "7.0.0" }, "bin": { "depcruise": "bin/dependency-cruise.js", "depcruise-fmt": "bin/depcruise-fmt.js", "depcruise-wrap-stream-in-html": "bin/wrap-stream-in-html.js", "dependency-cruise": "bin/dependency-cruise.js", "dependency-cruiser": "bin/dependency-cruise.js" }, "engines": { "node": "^10||^12||>=13" } }, "node_modules/dependency-cruiser/node_modules/acorn": { "version": "8.2.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/dependency-cruiser/node_modules/ajv": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.2.0.tgz", "integrity": "sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/dependency-cruiser/node_modules/ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/dependency-cruiser/node_modules/ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "dependencies": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/dependency-cruiser/node_modules/chalk": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/dependency-cruiser/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/dependency-cruiser/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/dependency-cruiser/node_modules/commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true, "engines": { "node": ">= 10" } }, "node_modules/dependency-cruiser/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/dependency-cruiser/node_modules/enhanced-resolve": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.1.0.tgz", "integrity": "sha512-EM3ZMRrprkvO44dVdDRGI9pNPY1Vkw15lT/cQk1IwlbcI7Tpc3la8y1FQCuilWQ8qvlq+n19abwPBjVLnld21A==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.0.0" }, "engines": { "node": ">=10.13.0" } }, "node_modules/dependency-cruiser/node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "node_modules/dependency-cruiser/node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dependency-cruiser/node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/dependency-cruiser/node_modules/glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/dependency-cruiser/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/dependency-cruiser/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/dependency-cruiser/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/dependency-cruiser/node_modules/json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "dependencies": { "minimist": "^1.2.5" }, "bin": { "json5": "lib/cli.js" }, "engines": { "node": ">=6" } }, "node_modules/dependency-cruiser/node_modules/safe-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", "dev": true, "dependencies": { "regexp-tree": "~0.1.1" } }, "node_modules/dependency-cruiser/node_modules/string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=8" } }, "node_modules/dependency-cruiser/node_modules/strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { "ansi-regex": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/dependency-cruiser/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/dependency-cruiser/node_modules/tapable": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/dependency-cruiser/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/des.js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, "node_modules/diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true, "engines": { "node": ">=0.3.1" } }, "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" } }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "dependencies": { "path-type": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/dir-glob/node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "dependencies": { "esutils": "^2.0.2" }, "engines": { "node": ">=6.0.0" } }, "node_modules/domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", "dev": true, "engines": { "node": ">=0.4", "npm": ">=1.2" } }, "node_modules/dot-prop": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "dev": true, "dependencies": { "is-obj": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/duplexer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, "node_modules/duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, "node_modules/duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, "dependencies": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", "readable-stream": "^2.0.0", "stream-shift": "^1.0.0" } }, "node_modules/elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", "hash.js": "^1.0.0", "hmac-drbg": "^1.0.1", "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" } }, "node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "node_modules/emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "dependencies": { "once": "^1.4.0" } }, "node_modules/enhanced-resolve": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "memory-fs": "^0.4.0", "tapable": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/enquirer": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.5.tgz", "integrity": "sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==", "dev": true, "dependencies": { "ansi-colors": "^3.2.1" }, "engines": { "node": ">=8.6" } }, "node_modules/enquirer/node_modules/ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "dependencies": { "prr": "~1.0.1" }, "bin": { "errno": "cli.js" } }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/error-ex/node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "node_modules/es-abstract": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz", "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==", "dev": true, "dependencies": { "es-to-primitive": "^1.2.0", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.0", "is-callable": "^1.1.4", "is-regex": "^1.0.4", "object-inspect": "^1.6.0", "object-keys": "^1.1.1", "string.prototype.trimleft": "^2.0.0", "string.prototype.trimright": "^2.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-array-method-boxes-properly": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", "dev": true }, "node_modules/es-get-iterator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", "dev": true, "dependencies": { "es-abstract": "^1.17.4", "has-symbols": "^1.0.1", "is-arguments": "^1.0.4", "is-map": "^2.0.1", "is-set": "^2.0.1", "is-string": "^1.0.5", "isarray": "^2.0.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-get-iterator/node_modules/es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "dependencies": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.0", "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-get-iterator/node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-get-iterator/node_modules/has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-get-iterator/node_modules/is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-get-iterator/node_modules/is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "dependencies": { "has-symbols": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-get-iterator/node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, "node_modules/es-get-iterator/node_modules/object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/es-to-primitive": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/es6-object-assign": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", "dev": true }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true, "engines": { "node": ">=0.8.0" } }, "node_modules/eslint": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.8.1.tgz", "integrity": "sha512-/2rX2pfhyUG0y+A123d0ccXtMm7DV7sH1m3lk9nk2DZ2LReq39FXHueR9xZwshE5MdfSf0xunSaMWRqyIA6M1w==", "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "@eslint/eslintrc": "^0.1.3", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "enquirer": "^2.3.5", "eslint-scope": "^5.1.0", "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^1.3.0", "espree": "^7.3.0", "esquery": "^1.2.0", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash": "^4.17.19", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", "regexpp": "^3.1.0", "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { "node": "^10.12.0 || >=12.0.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-plugin-jasmine": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-2.10.1.tgz", "integrity": "sha1-VzO3CedR9LxA4x4cFpib0s377Jc=", "dev": true, "engines": { "node": ">=4", "npm": ">=2" } }, "node_modules/eslint-scope": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", "dev": true, "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" }, "engines": { "node": ">=8.0.0" } }, "node_modules/eslint-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "dependencies": { "eslint-visitor-keys": "^1.1.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/mysticatea" } }, "node_modules/eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.4", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/eslint/node_modules/ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "dependencies": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/eslint/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/eslint/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/eslint/node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/eslint/node_modules/debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/eslint/node_modules/esquery": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "dependencies": { "estraverse": "^5.1.0" }, "engines": { "node": ">=0.10" } }, "node_modules/eslint/node_modules/estraverse": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/eslint/node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/eslint/node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { "ansi-regex": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/eslint/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/espree": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", "dev": true, "dependencies": { "acorn": "^7.4.0", "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.3.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" } }, "node_modules/espree/node_modules/acorn": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" }, "engines": { "node": ">=4" } }, "node_modules/esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "dependencies": { "estraverse": "^5.1.0" }, "engines": { "node": ">=0.10" } }, "node_modules/esquery/node_modules/estraverse": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/esrecurse": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "dependencies": { "estraverse": "^4.1.0" }, "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz", "integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4=", "dev": true }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/event-stream": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", "dev": true, "dependencies": { "duplexer": "~0.1.1", "from": "~0", "map-stream": "~0.1.0", "pause-stream": "0.0.11", "split": "0.3", "stream-combiner": "~0.0.4", "through": "~2.3.1" } }, "node_modules/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", "dev": true, "engines": { "node": ">=0.8.x" } }, "node_modules/evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" } }, "node_modules/execa": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.2.tgz", "integrity": "sha512-QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q==", "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.0", "onetime": "^5.1.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, "node_modules/execa/node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/execa/node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/execa/node_modules/onetime": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" } }, "node_modules/execa/node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/execa/node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/execa/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "posix-character-classes": "^0.1.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/expand-brackets/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/expand-brackets/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extend-shallow/node_modules/is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "dependencies": { "is-plain-object": "^2.0.4" }, "engines": { "node": ">=0.10.0" } }, "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" }, "engines": { "node": ">=4" } }, "node_modules/extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", "expand-brackets": "^2.1.4", "extend-shallow": "^2.0.1", "fragment-cache": "^0.2.1", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extglob/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extglob/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extglob/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extglob/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/extglob/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, "node_modules/fast-glob": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" }, "engines": { "node": ">=8" } }, "node_modules/fast-glob/node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, "node_modules/fast-glob/node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/fast-glob/node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { "node": ">=0.12.0" } }, "node_modules/fast-glob/node_modules/micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "dependencies": { "braces": "^3.0.1", "picomatch": "^2.2.3" }, "engines": { "node": ">=8.6" } }, "node_modules/fast-glob/node_modules/picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true, "engines": { "node": ">=8.6" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/fast-glob/node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { "is-number": "^7.0.0" }, "engines": { "node": ">=8.0" } }, "node_modules/fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "node_modules/fastq": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", "dev": true, "dependencies": { "reusify": "^1.0.4" } }, "node_modules/figgy-pudding": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, "node_modules/file-entry-cache": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "dependencies": { "flat-cache": "^2.0.1" }, "engines": { "node": ">=4" } }, "node_modules/file-type": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, "optional": true }, "node_modules/fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, "dependencies": { "commondir": "^1.0.1", "make-dir": "^2.0.0", "pkg-dir": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/find-parent-dir": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz", "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", "dev": true }, "node_modules/find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "dependencies": { "locate-path": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/find-versions": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", "dev": true, "dependencies": { "semver-regex": "^2.0.0" }, "engines": { "node": ">=6" } }, "node_modules/find-versions/node_modules/semver-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/findup": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz", "integrity": "sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=", "dev": true, "dependencies": { "colors": "~0.6.0-1", "commander": "~2.1.0" }, "bin": { "findup": "bin/findup.js" }, "engines": { "node": ">=0.6" } }, "node_modules/findup/node_modules/colors": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", "dev": true, "engines": { "node": ">=0.1.90" } }, "node_modules/findup/node_modules/commander": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=", "dev": true, "engines": { "node": ">= 0.6.x" } }, "node_modules/flat": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", "deprecated": "Fixed a prototype pollution security issue in 4.1.0, please upgrade to ^4.1.1 or ^5.0.1.", "dev": true, "dependencies": { "is-buffer": "~2.0.3" }, "bin": { "flat": "cli.js" } }, "node_modules/flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "dependencies": { "flatted": "^2.0.0", "rimraf": "2.6.3", "write": "1.0.3" }, "engines": { "node": ">=4" } }, "node_modules/flat/node_modules/is-buffer": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/flatted": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, "node_modules/flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "dev": true, "dependencies": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" } }, "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/form-data": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", "dev": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { "node": ">= 6" } }, "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "dependencies": { "map-cache": "^0.2.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", "dev": true }, "node_modules/from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "dependencies": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" } }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" }, "engines": { "node": ">=6 <7 || >=8" } }, "node_modules/fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", "imurmurhash": "^0.1.4", "readable-stream": "1 || 2" } }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "node_modules/fsevents": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true, "engines": { "node": "*" } }, "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", "dev": true }, "node_modules/get-stdin": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", "dev": true, "engines": { "node": ">=0.12.0" } }, "node_modules/get-stream": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", "dev": true, "dependencies": { "pump": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" } }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { "is-glob": "^4.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "dependencies": { "ini": "^1.3.4" }, "engines": { "node": ">=4" } }, "node_modules/globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "dependencies": { "type-fest": "^0.8.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globals/node_modules/type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/globby": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.1.1", "ignore": "^5.1.4", "merge2": "^1.3.0", "slash": "^3.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globby/node_modules/ignore": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/globby/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/google-closure-compiler-js": { "version": "20170218.0.0", "resolved": "https://registry.npmjs.org/google-closure-compiler-js/-/google-closure-compiler-js-20170218.0.0.tgz", "integrity": "sha1-MWNwGcFfsU49SR7GY+5ASh0z2hQ=", "dev": true, "dependencies": { "minimist": "^1.2.0", "vinyl": "^2.0.1", "webpack-core": "^0.6.8" }, "bin": { "google-closure-compiler-js": "cmd.js" } }, "node_modules/got": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "dependencies": { "create-error-class": "^3.0.0", "duplexer3": "^0.1.4", "get-stream": "^3.0.0", "is-redirect": "^1.0.0", "is-retry-allowed": "^1.0.0", "is-stream": "^1.0.0", "lowercase-keys": "^1.0.0", "safe-buffer": "^5.0.1", "timed-out": "^4.0.0", "unzip-response": "^2.0.1", "url-parse-lax": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/got/node_modules/get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/got/node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/graceful-fs": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "node_modules/growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true, "engines": { "node": ">=4.x" } }, "node_modules/handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.0", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, "bin": { "handlebars": "bin/handlebars" }, "engines": { "node": ">=0.4.7" }, "optionalDependencies": { "uglify-js": "^3.1.4" } }, "node_modules/handlebars/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "dependencies": { "function-bind": "^1.1.1" }, "engines": { "node": ">= 0.4.0" } }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/has-values/node_modules/kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/hash-base": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" }, "engines": { "node": ">=4" } }, "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" } }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true, "bin": { "he": "bin/he" } }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, "node_modules/hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, "node_modules/human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true, "engines": { "node": ">=8.12.0" } }, "node_modules/husky": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz", "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==", "dev": true, "hasInstallScript": true, "dependencies": { "chalk": "^4.0.0", "ci-info": "^2.0.0", "compare-versions": "^3.6.0", "cosmiconfig": "^6.0.0", "find-versions": "^3.2.0", "opencollective-postinstall": "^2.0.2", "pkg-dir": "^4.2.0", "please-upgrade-node": "^3.2.0", "slash": "^3.0.0", "which-pm-runs": "^1.0.0" }, "bin": { "husky-run": "bin/run.js", "husky-upgrade": "lib/upgrader/bin.js" }, "engines": { "node": ">=10" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/husky" } }, "node_modules/husky/node_modules/ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "dependencies": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/husky/node_modules/chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/husky/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/husky/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/husky/node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/husky/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/husky/node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { "p-locate": "^4.1.0" }, "engines": { "node": ">=8" } }, "node_modules/husky/node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { "p-limit": "^2.2.0" }, "engines": { "node": ">=8" } }, "node_modules/husky/node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/husky/node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "dependencies": { "find-up": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/husky/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/husky/node_modules/supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, "engines": { "node": ">=0.10.0" } }, "node_modules/ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, "node_modules/iferr": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "dev": true }, "node_modules/ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, "node_modules/import-fresh": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" } }, "node_modules/import-fresh/node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true, "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "node_modules/ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, "node_modules/inquirer": { "version": "7.3.3", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "engines": { "node": ">=8.0.0" } }, "node_modules/inquirer/node_modules/ansi-escapes": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "dependencies": { "type-fest": "^0.11.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/inquirer/node_modules/ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/inquirer/node_modules/ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "dependencies": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/inquirer/node_modules/chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/inquirer/node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "dependencies": { "restore-cursor": "^3.1.0" }, "engines": { "node": ">=8" } }, "node_modules/inquirer/node_modules/cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true, "engines": { "node": ">= 10" } }, "node_modules/inquirer/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/inquirer/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/inquirer/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/inquirer/node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/inquirer/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/inquirer/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/inquirer/node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/inquirer/node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "node_modules/inquirer/node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/inquirer/node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { "node": ">=8" } }, "node_modules/inquirer/node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true, "engines": { "node": ">=0.12.0" } }, "node_modules/inquirer/node_modules/rxjs": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/inquirer/node_modules/rxjs/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/inquirer/node_modules/string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=8" } }, "node_modules/inquirer/node_modules/strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { "ansi-regex": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/inquirer/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "dependencies": { "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-accessor-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-arguments": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "optional": true, "dependencies": { "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "node_modules/is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/is-ci": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "dependencies": { "ci-info": "^1.5.0" }, "bin": { "is-ci": "bin.js" } }, "node_modules/is-ci/node_modules/ci-info": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", "dev": true }, "node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "dependencies": { "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-data-descriptor/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-descriptor/node_modules/kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-finite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "dependencies": { "number-is-nan": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-installed-globally": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "dependencies": { "global-dirs": "^0.1.0", "is-path-inside": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", "dev": true }, "node_modules/is-npm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "dependencies": { "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-path-inside": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "dependencies": { "path-is-inside": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "dependencies": { "isobject": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-redirect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "dependencies": { "has": "^1.0.1" }, "engines": { "node": ">= 0.4" } }, "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-set": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/is-string": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "dependencies": { "has-symbols": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, "node_modules/is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/iterate-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==", "dev": true }, "node_modules/iterate-value": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", "dev": true, "dependencies": { "es-get-iterator": "^1.0.2", "iterate-iterator": "^1.0.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/jest-worker": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" }, "engines": { "node": ">= 10.13.0" } }, "node_modules/jest-worker/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/jest-worker/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "node_modules/js-yaml": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "node_modules/json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "dependencies": { "minimist": "^1.2.0" }, "bin": { "json5": "lib/cli.js" } }, "node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/just-extend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz", "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==", "dev": true }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/klaw-sync": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-3.0.2.tgz", "integrity": "sha512-32bw9y2nKrnpX2LsJnDTBO2TSdOKPbXfQAWl7Lupcc3D0iKkzI/sQDEw1GjkOuTqZEhe+bVxKSlhSRLxyeytcw==", "dev": true, "dependencies": { "graceful-fs": "^4.1.11" } }, "node_modules/latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "dependencies": { "package-json": "^4.0.0" }, "engines": { "node": ">=4" } }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, "node_modules/lint-staged": { "version": "10.2.11", "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.2.11.tgz", "integrity": "sha512-LRRrSogzbixYaZItE2APaS4l2eJMjjf5MbclRZpLJtcQJShcvUzKXsNeZgsLIZ0H0+fg2tL4B59fU9wHIHtFIA==", "dev": true, "dependencies": { "chalk": "^4.0.0", "cli-truncate": "2.1.0", "commander": "^5.1.0", "cosmiconfig": "^6.0.0", "debug": "^4.1.1", "dedent": "^0.7.0", "enquirer": "^2.3.5", "execa": "^4.0.1", "listr2": "^2.1.0", "log-symbols": "^4.0.0", "micromatch": "^4.0.2", "normalize-path": "^3.0.0", "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" }, "bin": { "lint-staged": "bin/lint-staged.js" }, "funding": { "url": "https://opencollective.com/lint-staged" } }, "node_modules/lint-staged/node_modules/ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "dependencies": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/lint-staged/node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, "node_modules/lint-staged/node_modules/chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/lint-staged/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/lint-staged/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/lint-staged/node_modules/commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/lint-staged/node_modules/debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/lint-staged/node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/lint-staged/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/lint-staged/node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { "node": ">=0.12.0" } }, "node_modules/lint-staged/node_modules/micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, "dependencies": { "braces": "^3.0.1", "picomatch": "^2.0.5" }, "engines": { "node": ">=8" } }, "node_modules/lint-staged/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/lint-staged/node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/lint-staged/node_modules/supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/lint-staged/node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { "is-number": "^7.0.0" }, "engines": { "node": ">=8.0" } }, "node_modules/listr2": { "version": "2.1.9", "resolved": "https://registry.npmjs.org/listr2/-/listr2-2.1.9.tgz", "integrity": "sha512-29IJuXMIDV6GYAW3SGfRl56EInP2Hr7gk4GNUPjUFkSq6jpKHqr5OpH3z8r6yj0XvHBIkhFSE14ytFoBLBfCLA==", "dev": true, "dependencies": { "chalk": "^4.0.0", "cli-truncate": "^2.1.0", "figures": "^3.2.0", "indent-string": "^4.0.0", "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.5.5", "through": "^2.3.8" }, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "enquirer": ">= 2.3.0 < 3" } }, "node_modules/listr2/node_modules/ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "dependencies": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/listr2/node_modules/chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/listr2/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/listr2/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/listr2/node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "dependencies": { "escape-string-regexp": "^1.0.5" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/listr2/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/listr2/node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/listr2/node_modules/rxjs": { "version": "6.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/listr2/node_modules/rxjs/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/listr2/node_modules/supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", "pify": "^3.0.0", "strip-bom": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", "dev": true, "engines": { "node": ">=4.3.0 <5.0.0 || >=5.10" } }, "node_modules/loader-utils": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "dev": true, "dependencies": { "big.js": "^5.2.2", "emojis-list": "^2.0.0", "json5": "^1.0.1" }, "engines": { "node": ">=4.0.0" } }, "node_modules/locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "node_modules/lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, "node_modules/lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", "dev": true }, "node_modules/log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", "dev": true, "dependencies": { "chalk": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "dependencies": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/log-symbols/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/log-symbols/node_modules/supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/log-update": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", "slice-ansi": "^4.0.0", "wrap-ansi": "^6.2.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/ansi-escapes": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "dependencies": { "type-fest": "^0.11.0" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/log-update/node_modules/ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/log-update/node_modules/ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "dependencies": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/log-update/node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "dependencies": { "restore-cursor": "^3.1.0" }, "engines": { "node": ">=8" } }, "node_modules/log-update/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/log-update/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/log-update/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/log-update/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/log-update/node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/log-update/node_modules/onetime": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" } }, "node_modules/log-update/node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { "node": ">=8" } }, "node_modules/log-update/node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/log-update/node_modules/string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=8" } }, "node_modules/log-update/node_modules/strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { "ansi-regex": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/log-update/node_modules/wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=8" } }, "node_modules/lolex": { "version": "2.7.5", "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz", "integrity": "sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==", "dev": true }, "node_modules/loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "dependencies": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "dependencies": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" } }, "node_modules/magic-string": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.16.0.tgz", "integrity": "sha1-lw67DacZMwEoX7GqZQ85vdgetFo=", "dev": true, "dependencies": { "vlq": "^0.2.1" } }, "node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "dependencies": { "pify": "^4.0.1", "semver": "^5.6.0" }, "engines": { "node": ">=6" } }, "node_modules/make-dir/node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/make-dir/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "node_modules/mamacro": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", "dev": true }, "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/map-stream": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", "dev": true }, "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "dependencies": { "object-visit": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, "node_modules/memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" } }, "node_modules/memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", "dev": true, "engines": { "node": ">= 0.10.0" } }, "node_modules/meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "dependencies": { "camelcase-keys": "^2.0.0", "decamelize": "^1.1.2", "loud-rejection": "^1.0.0", "map-obj": "^1.0.1", "minimist": "^1.1.3", "normalize-package-data": "^2.3.4", "object-assign": "^4.0.1", "read-pkg-up": "^1.0.1", "redent": "^1.0.0", "trim-newlines": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "braces": "^2.3.1", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "extglob": "^2.0.4", "fragment-cache": "^0.2.1", "kind-of": "^6.0.2", "nanomatch": "^1.2.9", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "dependencies": { "bn.js": "^4.0.0", "brorand": "^1.0.1" }, "bin": { "miller-rabin": "bin/miller-rabin" } }, "node_modules/mime-db": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.27", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "dependencies": { "mime-db": "1.44.0" }, "engines": { "node": ">= 0.6" } }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", "dev": true }, "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "node_modules/mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "dev": true, "dependencies": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", "end-of-stream": "^1.1.0", "flush-write-stream": "^1.0.0", "from2": "^2.1.0", "parallel-transform": "^1.1.0", "pump": "^3.0.0", "pumpify": "^1.3.3", "stream-each": "^1.1.0", "through2": "^2.0.0" }, "engines": { "node": ">=4.0.0" } }, "node_modules/mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/mixin-deep/node_modules/is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "dependencies": { "is-plain-object": "^2.0.4" }, "engines": { "node": ">=0.10.0" } }, "node_modules/mocha": { "version": "8.1.3", "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz", "integrity": "sha512-ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==", "dev": true, "dependencies": { "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.4.2", "debug": "4.1.1", "diff": "4.0.2", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.1.6", "growl": "1.10.5", "he": "1.2.0", "js-yaml": "3.14.0", "log-symbols": "4.0.0", "minimatch": "3.0.4", "ms": "2.1.2", "object.assign": "4.1.0", "promise.allsettled": "1.0.2", "serialize-javascript": "4.0.0", "strip-json-comments": "3.0.1", "supports-color": "7.1.0", "which": "2.0.2", "wide-align": "1.1.3", "workerpool": "6.0.0", "yargs": "13.3.2", "yargs-parser": "13.1.2", "yargs-unparser": "1.6.1" }, "bin": { "_mocha": "bin/_mocha", "mocha": "bin/mocha" }, "engines": { "node": ">= 10.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mochajs" } }, "node_modules/mocha/node_modules/anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" }, "engines": { "node": ">= 8" } }, "node_modules/mocha/node_modules/binary-extensions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/chokidar": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", "dev": true, "dependencies": { "anymatch": "~3.1.1", "braces": "~3.0.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.4.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { "fsevents": "~2.1.2" } }, "node_modules/mocha/node_modules/debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/mocha/node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { "node": ">=0.3.1" } }, "node_modules/mocha/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mocha/node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mocha/node_modules/fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "deprecated": "\"Please update to latest v2.3 or v2.2\"", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/mocha/node_modules/glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/mocha/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { "node": ">=0.12.0" } }, "node_modules/mocha/node_modules/js-yaml": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "node_modules/mocha/node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { "p-locate": "^5.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mocha/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/mocha/node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/mocha/node_modules/p-limit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", "dev": true, "dependencies": { "p-try": "^2.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mocha/node_modules/p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { "p-limit": "^3.0.2" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/mocha/node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/readdirp": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", "dev": true, "dependencies": { "picomatch": "^2.2.1" }, "engines": { "node": ">=8.10.0" } }, "node_modules/mocha/node_modules/serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/mocha/node_modules/strip-json-comments": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/mocha/node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { "is-number": "^7.0.0" }, "engines": { "node": ">=8.0" } }, "node_modules/mocha/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "dependencies": { "aproba": "^1.1.1", "copy-concurrently": "^1.0.0", "fs-write-stream-atomic": "^1.0.8", "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.3" } }, "node_modules/move-concurrently/node_modules/mkdirp": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "dev": true, "dependencies": { "minimist": "^1.2.5" }, "bin": { "mkdirp": "bin/cmd.js" } }, "node_modules/move-concurrently/node_modules/mkdirp/node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "node_modules/nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", "dev": true, "optional": true }, "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "fragment-cache": "^0.2.1", "is-windows": "^1.0.2", "kind-of": "^6.0.2", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "node_modules/neo-async": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true }, "node_modules/nise": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.2.tgz", "integrity": "sha512-/6RhOUlicRCbE9s+94qCUsyE+pKlVJ5AhIv+jEE7ESKwnbXqulKZ1FYU+XAtHHWE9TinYvAxDUJAb912PwPoWA==", "dev": true, "dependencies": { "@sinonjs/formatio": "^3.2.1", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "lolex": "^4.1.0", "path-to-regexp": "^1.7.0" } }, "node_modules/nise/node_modules/@sinonjs/formatio": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.1.tgz", "integrity": "sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ==", "dev": true, "dependencies": { "@sinonjs/commons": "^1", "@sinonjs/samsam": "^3.1.0" } }, "node_modules/nise/node_modules/lolex": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz", "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==", "dev": true }, "node_modules/node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "dev": true, "dependencies": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", "buffer": "^4.3.0", "console-browserify": "^1.1.0", "constants-browserify": "^1.0.0", "crypto-browserify": "^3.11.0", "domain-browser": "^1.1.1", "events": "^3.0.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", "path-browserify": "0.0.1", "process": "^0.11.10", "punycode": "^1.2.4", "querystring-es3": "^0.2.0", "readable-stream": "^2.3.3", "stream-browserify": "^2.0.1", "stream-http": "^2.7.2", "string_decoder": "^1.0.0", "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", "url": "^0.11.0", "util": "^0.11.0", "vm-browserify": "^1.0.1" } }, "node_modules/node-libs-browser/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, "node_modules/nodemon": { "version": "1.19.4", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.19.4.tgz", "integrity": "sha512-VGPaqQBNk193lrJFotBU8nvWZPqEZY2eIzymy2jjY0fJ9qIsxA0sxQ8ATPl0gZC645gijYEc1jtZvpS8QWzJGQ==", "dev": true, "hasInstallScript": true, "dependencies": { "chokidar": "^2.1.8", "debug": "^3.2.6", "ignore-by-default": "^1.0.1", "minimatch": "^3.0.4", "pstree.remy": "^1.1.7", "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.2", "update-notifier": "^2.5.0" }, "bin": { "nodemon": "bin/nodemon.js" }, "engines": { "node": ">=4" } }, "node_modules/nodemon/node_modules/anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "dependencies": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" } }, "node_modules/nodemon/node_modules/anymatch/node_modules/normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "dependencies": { "remove-trailing-separator": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/nodemon/node_modules/binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/nodemon/node_modules/chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", "dev": true, "dependencies": { "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", "is-glob": "^4.0.0", "normalize-path": "^3.0.0", "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" }, "optionalDependencies": { "fsevents": "^1.2.7" } }, "node_modules/nodemon/node_modules/debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { "ms": "^2.1.1" } }, "node_modules/nodemon/node_modules/fsevents": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], "dependencies": { "bindings": "^1.5.0", "nan": "^2.12.1" }, "engines": { "node": ">= 4.0" } }, "node_modules/nodemon/node_modules/glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "dependencies": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" } }, "node_modules/nodemon/node_modules/glob-parent/node_modules/is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "dependencies": { "is-extglob": "^2.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/nodemon/node_modules/is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "dependencies": { "binary-extensions": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/nodemon/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "node_modules/nodemon/node_modules/readdirp": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "dependencies": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" }, "engines": { "node": ">=0.10" } }, "node_modules/nodemon/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "dev": true, "dependencies": { "abbrev": "1" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { "node": "*" } }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "dependencies": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } }, "node_modules/normalize-package-data/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/npm-run-all": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.2.tgz", "integrity": "sha512-Z2aRlajMK4SQ8u19ZA75NZZu7wupfCNQWdYosIi8S6FgBdGf/8Y6Hgyjdc8zU2cYmIRVCx1nM80tJPkdEd+UYg==", "dev": true, "dependencies": { "ansi-styles": "^3.2.0", "chalk": "^2.1.0", "cross-spawn": "^5.1.0", "memorystream": "^0.3.1", "minimatch": "^3.0.4", "ps-tree": "^1.1.0", "read-pkg": "^3.0.0", "shell-quote": "^1.6.1", "string.prototype.padend": "^3.0.0" }, "bin": { "npm-run-all": "bin/npm-run-all/index.js", "run-p": "bin/run-p/index.js", "run-s": "bin/run-s/index.js" }, "engines": { "node": ">= 4" } }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "dependencies": { "path-key": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" }, "engines": { "node": ">=0.10.0" } }, "node_modules/object-copy/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/object-copy/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", "dev": true }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true, "engines": { "node": ">= 0.4" } }, "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "dependencies": { "isobject": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/object.assign": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "dependencies": { "define-properties": "^1.1.2", "function-bind": "^1.1.1", "has-symbols": "^1.0.0", "object-keys": "^1.0.11" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "dependencies": { "isobject": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/opencollective-postinstall": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", "dev": true, "bin": { "opencollective-postinstall": "index.js" } }, "node_modules/opn": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", "dev": true, "dependencies": { "object-assign": "^4.0.1", "pinkie-promise": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/opn-cli": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/opn-cli/-/opn-cli-3.1.0.tgz", "integrity": "sha1-+BmubK4LQRvQFJuFYP5siK2tIPg=", "dev": true, "dependencies": { "file-type": "^3.6.0", "get-stdin": "^5.0.1", "meow": "^3.7.0", "opn": "^4.0.0", "temp-write": "^2.1.0" }, "bin": { "opn": "cli.js" }, "engines": { "node": ">=4" } }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.3" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/ora": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz", "integrity": "sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==", "dev": true, "dependencies": { "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.4.0", "is-interactive": "^1.0.0", "log-symbols": "^4.0.0", "mute-stream": "0.0.8", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ora/node_modules/ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/ora/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/ora/node_modules/chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/ora/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/ora/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/ora/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/ora/node_modules/strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { "ansi-regex": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/ora/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/p-limit": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", "dev": true, "dependencies": { "p-try": "^2.0.0" }, "engines": { "node": ">=6" } }, "node_modules/p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "dependencies": { "p-limit": "^2.0.0" }, "engines": { "node": ">=6" } }, "node_modules/p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "dependencies": { "aggregate-error": "^3.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/package-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "dependencies": { "got": "^6.7.1", "registry-auth-token": "^3.0.1", "registry-url": "^3.0.3", "semver": "^5.1.0" }, "engines": { "node": ">=4" } }, "node_modules/package-json/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/pad-right": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", "integrity": "sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q=", "dev": true, "dependencies": { "repeat-string": "^1.5.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/pako": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", "dev": true }, "node_modules/parallel-transform": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "dev": true, "dependencies": { "cyclist": "~0.2.2", "inherits": "^2.0.3", "readable-stream": "^2.1.5" } }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "dependencies": { "callsites": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/parent-module/node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/parse-asn1": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", "dev": true, "dependencies": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" } }, "node_modules/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "dependencies": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" }, "engines": { "node": ">=4" } }, "node_modules/pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/path-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, "node_modules/path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", "dev": true }, "node_modules/path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "node_modules/path-to-regexp": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", "dev": true, "dependencies": { "isarray": "0.0.1" } }, "node_modules/path-to-regexp/node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true }, "node_modules/path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "dependencies": { "pify": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/pathval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true, "engines": { "node": "*" } }, "node_modules/pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "dependencies": { "through": "~2.3" } }, "node_modules/pbkdf2": { "version": "3.0.17", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "dev": true, "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", "ripemd160": "^2.0.1", "safe-buffer": "^5.0.1", "sha.js": "^2.4.8" }, "engines": { "node": ">=0.12" } }, "node_modules/picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true, "engines": { "node": ">=8.6" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "dependencies": { "pinkie": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "dependencies": { "find-up": "^3.0.0" }, "engines": { "node": ">=6" } }, "node_modules/platform": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==", "dev": true }, "node_modules/please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", "dev": true, "dependencies": { "semver-compare": "^1.0.0" } }, "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/prettier": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", "dev": true, "bin": { "prettier": "bin-prettier.js" }, "engines": { "node": ">=10.13.0" } }, "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true, "engines": { "node": ">= 0.6.0" } }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "node_modules/progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/promise": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.1.tgz", "integrity": "sha1-5F1osAoXZHttpxG/he1u1HII9FA=", "dev": true, "dependencies": { "asap": "~2.0.3" } }, "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, "node_modules/promise.allsettled": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", "dev": true, "dependencies": { "array.prototype.map": "^1.0.1", "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", "iterate-value": "^1.0.0" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/promise.allsettled/node_modules/es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "dependencies": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.0", "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/promise.allsettled/node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/promise.allsettled/node_modules/has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/promise.allsettled/node_modules/is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/promise.allsettled/node_modules/is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "dependencies": { "has-symbols": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/promise.allsettled/node_modules/object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, "node_modules/ps-tree": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", "dev": true, "dependencies": { "event-stream": "=3.3.4" }, "bin": { "ps-tree": "bin/ps-tree.js" }, "engines": { "node": ">= 0.10" } }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true }, "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "dependencies": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" } }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "node_modules/pumpify": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "dependencies": { "duplexify": "^3.6.0", "inherits": "^2.0.3", "pump": "^2.0.0" } }, "node_modules/pumpify/node_modules/pump": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", "dev": true, "engines": { "node": ">=0.4.x" } }, "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true, "engines": { "node": ">=0.4.x" } }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "dependencies": { "safe-buffer": "^5.1.0" } }, "node_modules/randomfill": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "dependencies": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" } }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "bin": { "rc": "cli.js" } }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "dependencies": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", "path-type": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/read-pkg-up": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "dependencies": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/read-pkg-up/node_modules/find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "dependencies": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/read-pkg-up/node_modules/load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", "pify": "^2.0.0", "pinkie-promise": "^2.0.0", "strip-bom": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/read-pkg-up/node_modules/parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "dependencies": { "error-ex": "^1.2.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/read-pkg-up/node_modules/path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "dependencies": { "pinkie-promise": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/read-pkg-up/node_modules/path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", "pinkie-promise": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/read-pkg-up/node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/read-pkg-up/node_modules/read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "dependencies": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", "path-type": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/read-pkg-up/node_modules/strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "dependencies": { "is-utf8": "^0.2.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "node_modules/readdirp": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "optional": true, "dependencies": { "picomatch": "^2.2.1" }, "engines": { "node": ">=8.10.0" } }, "node_modules/rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "dependencies": { "resolve": "^1.1.6" }, "engines": { "node": ">= 0.10" } }, "node_modules/redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "dependencies": { "indent-string": "^2.1.0", "strip-indent": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/redent/node_modules/indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "dependencies": { "repeating": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", "dev": true }, "node_modules/regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/regexp-tree": { "version": "0.1.21", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.21.tgz", "integrity": "sha512-kUUXjX4AnqnR8KRTCrayAo9PzYMRKmVoGgaz2tBuz0MF3g1ZbGebmtW0yFHfFK9CmBjQKeYIgoL22pFLBJY7sw==", "dev": true, "bin": { "regexp-tree": "bin/regexp-tree" } }, "node_modules/regexpp": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/mysticatea" } }, "node_modules/registry-auth-token": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", "dev": true, "dependencies": { "rc": "^1.1.6", "safe-buffer": "^5.0.1" } }, "node_modules/registry-url": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "dependencies": { "rc": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "node_modules/repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true, "engines": { "node": ">=0.10" } }, "node_modules/repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "dependencies": { "is-finite": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "node_modules/resolve": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", "dev": true, "dependencies": { "path-parse": "^1.0.6" } }, "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { "node": ">=8" } }, "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, "engines": { "node": ">=0.12" } }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/right-pad": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", "integrity": "sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA=", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" } }, "node_modules/rimraf/node_modules/glob": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" } }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, "node_modules/rollup": { "version": "0.66.6", "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.66.6.tgz", "integrity": "sha512-J7/SWanrcb83vfIHqa8+aVVGzy457GcjA6GVZEnD0x2u4OnOd0Q1pCrEoNe8yLwM6z6LZP02zBT2uW0yh5TqOw==", "dev": true, "dependencies": { "@types/estree": "0.0.39", "@types/node": "*" }, "bin": { "rollup": "bin/rollup" } }, "node_modules/rollup-plugin-alias": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/rollup-plugin-alias/-/rollup-plugin-alias-1.4.0.tgz", "integrity": "sha512-lB094zdi19FS+1bVarVp9kBN0Zk41PdTGoCk0z8xesKO7RGjOo18cp1hUzEqrOQ4bM9+KLD9nbnu/XUxQm9pbg==", "deprecated": "This module has moved and is now available at @rollup/plugin-alias. Please update your dependencies. This version is no longer maintained.", "dev": true, "dependencies": { "slash": "^1.0.0" } }, "node_modules/rollup-plugin-inject": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-2.0.0.tgz", "integrity": "sha1-iTTZilsNstBe/O4qwGoXCkxwsEQ=", "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", "dev": true, "dependencies": { "acorn": "^4.0.3", "estree-walker": "^0.2.0", "magic-string": "^0.16.0", "rollup-pluginutils": "^1.2.0" } }, "node_modules/rollup-plugin-inject/node_modules/acorn": { "version": "4.0.13", "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/rollup-plugin-node-resolve": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-2.0.0.tgz", "integrity": "sha1-B+CulKwAKj6jbo8zyhIdn4NrEwk=", "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-node-resolve.", "dev": true, "dependencies": { "browser-resolve": "^1.11.0", "builtin-modules": "^1.1.0", "resolve": "^1.1.6" } }, "node_modules/rollup-plugin-node-resolve/node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/rollup-plugin-terser": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", "serialize-javascript": "^4.0.0", "terser": "^5.0.0" }, "peerDependencies": { "rollup": "^2.0.0" } }, "node_modules/rollup-plugin-terser/node_modules/@babel/code-frame": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "dependencies": { "@babel/highlight": "^7.10.4" } }, "node_modules/rollup-plugin-terser/node_modules/@babel/helper-validator-identifier": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "node_modules/rollup-plugin-terser/node_modules/@babel/highlight": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "node_modules/rollup-pluginutils": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz", "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=", "dev": true, "dependencies": { "estree-walker": "^0.2.1", "minimatch": "^3.0.2" } }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ], "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "dependencies": { "aproba": "^1.1.1" } }, "node_modules/rxjs": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", "dev": true, "dependencies": { "tslib": "^1.9.0" }, "engines": { "npm": ">=2.0.0" } }, "node_modules/rxjs/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "node_modules/safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "dependencies": { "ret": "~0.1.10" } }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "node_modules/samsam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", "deprecated": "This package has been deprecated in favour of @sinonjs/samsam", "dev": true }, "node_modules/schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "dependencies": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", "ajv-keywords": "^3.1.0" }, "engines": { "node": ">= 4" } }, "node_modules/semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/semver-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, "node_modules/semver-diff": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "dependencies": { "semver": "^5.0.3" }, "engines": { "node": ">=0.10.0" } }, "node_modules/semver-diff/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/semver-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz", "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/semver-try-require": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/semver-try-require/-/semver-try-require-4.0.1.tgz", "integrity": "sha512-XAsSrle6ADYwLqet5/OU6v2srIw9wNsAYJ8GNiWsFu6etwWaxTCzC3ILVSC1rFtunk8N4NkAsUmXu0zpZ0f2EA==", "dev": true, "dependencies": { "semver": "7.3.4" }, "engines": { "node": "^10||^12||>=13" } }, "node_modules/semver-try-require/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/semver-try-require/node_modules/semver": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/semver-try-require/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/semver/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "node_modules/set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/set-value/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", "dev": true }, "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" }, "bin": { "sha.js": "bin.js" } }, "node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "dependencies": { "shebang-regex": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/shell-quote": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", "dev": true }, "node_modules/shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, "dependencies": { "glob": "^7.0.0", "interpret": "^1.0.0", "rechoir": "^0.6.2" }, "bin": { "shjs": "bin/shjs" }, "engines": { "node": ">=4" } }, "node_modules/shx": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.2.tgz", "integrity": "sha512-aS0mWtW3T2sHAenrSrip2XGv39O9dXIFUqxAEWHEOS1ePtGIBavdPJY1kE2IHl14V/4iCbUiNDPGdyYTtmhSoA==", "dev": true, "dependencies": { "es6-object-assign": "^1.0.3", "minimist": "^1.2.0", "shelljs": "^0.8.1" }, "bin": { "shx": "lib/cli.js" }, "engines": { "node": ">=4" } }, "node_modules/signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "node_modules/simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "dev": true, "dependencies": { "is-arrayish": "^0.3.1" } }, "node_modules/sinon": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.3.0.tgz", "integrity": "sha512-pmf05hFgEZUS52AGJcsVjOjqAyJW2yo14cOwVYvzCyw7+inv06YXkLyW75WG6X6p951lzkoKh51L2sNbR9CDvw==", "dev": true, "dependencies": { "@sinonjs/formatio": "^2.0.0", "diff": "^3.1.0", "lodash.get": "^4.4.2", "lolex": "^2.2.0", "nise": "^1.2.0", "supports-color": "^5.1.0", "type-detect": "^4.0.5" } }, "node_modules/sinon-chai": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-2.14.0.tgz", "integrity": "sha512-9stIF1utB0ywNHNT7RgiXbdmen8QDCRsrTjw+G9TgKt1Yexjiv8TOWZ6WHsTPz57Yky3DIswZvEqX8fpuHNDtQ==", "dev": true, "peerDependencies": { "chai": ">=1.9.2 <5", "sinon": "^1.4.0 || ^2.1.0 || ^3.0.0 || ^4.0.0" } }, "node_modules/slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "dependencies": { "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" }, "engines": { "node": ">=6" } }, "node_modules/slice-ansi/node_modules/astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "map-cache": "^0.2.2", "source-map": "^0.5.6", "source-map-resolve": "^0.5.0", "use": "^3.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", "snapdragon-util": "^3.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-node/node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "dependencies": { "is-descriptor": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-node/node_modules/is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "dependencies": { "kind-of": "^6.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-node/node_modules/is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "dependencies": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "dependencies": { "kind-of": "^3.2.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon-util/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/snapdragon/node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "dependencies": { "is-extendable": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-resolve": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, "dependencies": { "atob": "^2.1.1", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", "urix": "^0.1.0" } }, "node_modules/source-map-support": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", "dev": true, "dependencies": { "source-map": "^0.6.0" } }, "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "deprecated": "See https://github.com/lydell/source-map-url#deprecated", "dev": true }, "node_modules/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, "node_modules/spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-exceptions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", "dev": true }, "node_modules/spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, "node_modules/split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", "dev": true, "dependencies": { "through": "2" }, "engines": { "node": "*" } }, "node_modules/split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "dependencies": { "extend-shallow": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "node_modules/ssri": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", "dev": true, "dependencies": { "figgy-pudding": "^3.5.1" } }, "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/static-extend/node_modules/define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "dependencies": { "is-descriptor": "^0.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "dev": true, "dependencies": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" } }, "node_modules/stream-combiner": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", "dev": true, "dependencies": { "duplexer": "~0.1.1" } }, "node_modules/stream-each": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" } }, "node_modules/stream-http": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", "readable-stream": "^2.3.6", "to-arraybuffer": "^1.0.0", "xtend": "^4.0.0" } }, "node_modules/stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", "dev": true }, "node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/string-argv": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true, "engines": { "node": ">=0.6.19" } }, "node_modules/string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" }, "engines": { "node": ">=4" } }, "node_modules/string-width/node_modules/strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "dependencies": { "ansi-regex": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/string.prototype.padend": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", "dev": true, "dependencies": { "define-properties": "^1.1.2", "es-abstract": "^1.4.3", "function-bind": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/string.prototype.trimend": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", "dev": true, "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimend/node_modules/es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "dependencies": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.0", "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimend/node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimend/node_modules/has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimend/node_modules/is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimend/node_modules/is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "dependencies": { "has-symbols": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimend/node_modules/object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimleft": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz", "integrity": "sha1-aLaqjhYsaoDnbjqKDC50cYbicf8=", "dev": true, "dependencies": { "define-properties": "^1.1.2", "function-bind": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/string.prototype.trimright": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz", "integrity": "sha1-q0pW2AKgH75yk+EehPJNyBZGYd0=", "dev": true, "dependencies": { "define-properties": "^1.1.2", "function-bind": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/string.prototype.trimstart": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", "dev": true, "dependencies": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart/node_modules/es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "dependencies": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.0", "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart/node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart/node_modules/has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart/node_modules/is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart/node_modules/is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "dependencies": { "has-symbols": "^1.0.1" }, "engines": { "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart/node_modules/object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", "is-regexp": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "dependencies": { "ansi-regex": "^4.1.0" }, "engines": { "node": ">=6" } }, "node_modules/strip-ansi/node_modules/ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "dependencies": { "get-stdin": "^4.0.1" }, "bin": { "strip-indent": "cli.js" }, "engines": { "node": ">=0.10.0" } }, "node_modules/strip-indent/node_modules/get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { "has-flag": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/systemjs": { "version": "0.21.6", "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.21.6.tgz", "integrity": "sha512-R+5S9eV9vcQgWOoS4D87joZ4xkFJHb19ZsyKY07D1+VBDE9bwYcU+KXE0r5XlDA8mFoJGyuWDbfrNoh90JsA8g==", "dev": true }, "node_modules/table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "dependencies": { "ajv": "^6.10.2", "lodash": "^4.17.14", "slice-ansi": "^2.1.0", "string-width": "^3.0.0" }, "engines": { "node": ">=6.0.0" } }, "node_modules/table/node_modules/ajv": { "version": "6.12.4", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, "node_modules/table/node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "node_modules/table/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/teamcity-service-messages": { "version": "0.1.11", "resolved": "https://registry.npmjs.org/teamcity-service-messages/-/teamcity-service-messages-0.1.11.tgz", "integrity": "sha512-C1olucTOnOMocG1gcDquHugZC4RHrVNvjPX/ZEZfjbo9DYALqUEBGHpmgigX/KA37E2dSopA9JB6Tfj07QV4YA==", "dev": true }, "node_modules/temp-write": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-2.1.0.tgz", "integrity": "sha1-WYkJGODvCdVIqqNC9L00CdhATpY=", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "mkdirp": "^0.5.0", "os-tmpdir": "^1.0.0", "pify": "^2.2.0", "pinkie-promise": "^2.0.0", "uuid": "^2.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/temp-write/node_modules/mkdirp": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "dev": true, "dependencies": { "minimist": "^1.2.5" }, "bin": { "mkdirp": "bin/cmd.js" } }, "node_modules/temp-write/node_modules/mkdirp/node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "node_modules/temp-write/node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/term-size": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "dependencies": { "execa": "^0.7.0" }, "engines": { "node": ">=4" } }, "node_modules/term-size/node_modules/execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "dependencies": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/term-size/node_modules/get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/term-size/node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/term-size/node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "dependencies": { "path-key": "^2.0.0" }, "engines": { "node": ">=4" } }, "node_modules/term-size/node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/terser": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.0.tgz", "integrity": "sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg==", "dev": true, "dependencies": { "commander": "^2.20.0", "source-map": "~0.6.1", "source-map-support": "~0.5.12" }, "bin": { "terser": "bin/terser" }, "engines": { "node": ">=6.0.0" } }, "node_modules/terser-webpack-plugin": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", "dev": true, "dependencies": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", "serialize-javascript": "^4.0.0", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", "worker-farm": "^1.7.0" }, "engines": { "node": ">= 6.9.0" }, "peerDependencies": { "webpack": "^4.0.0" } }, "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, "dependencies": { "randombytes": "^2.1.0" } }, "node_modules/terser-webpack-plugin/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/terser-webpack-plugin/node_modules/source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "node_modules/terser-webpack-plugin/node_modules/terser": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", "dev": true, "dependencies": { "commander": "^2.20.0", "source-map": "~0.6.1", "source-map-support": "~0.5.12" }, "bin": { "terser": "bin/terser" }, "engines": { "node": ">=6.0.0" } }, "node_modules/terser/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/terser/node_modules/source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "dependencies": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "node_modules/timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/timers-browserify": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", "dev": true, "dependencies": { "setimmediate": "^1.0.4" }, "engines": { "node": ">=0.6.0" } }, "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "dependencies": { "os-tmpdir": "~1.0.2" }, "engines": { "node": ">=0.6.0" } }, "node_modules/to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, "node_modules/to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "dependencies": { "kind-of": "^3.0.2" }, "engines": { "node": ">=0.10.0" } }, "node_modules/to-object-path/node_modules/kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "dependencies": { "is-buffer": "^1.1.5" }, "engines": { "node": ">=0.10.0" } }, "node_modules/to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "dev": true, "dependencies": { "nopt": "~1.0.10" }, "bin": { "nodetouch": "bin/nodetouch.js" } }, "node_modules/trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/ts-api-guardian": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/ts-api-guardian/-/ts-api-guardian-0.5.0.tgz", "integrity": "sha512-BjVlb23FUqWU+wmdHkLdaHcllU+v/Cca26sY40bCkM15BCF2yc17daOm+UXyvxQ9NndPM/40m+X+GLyDkrE9tA==", "deprecated": "No longer actively maintained. Package never hit 1.x stable.", "dev": true, "dependencies": { "chalk": "^2.3.1", "diff": "^3.5.0", "minimist": "^1.2.0" }, "bin": { "ts-api-guardian": "bin/ts-api-guardian" }, "peerDependencies": { "typescript": "~3.7.4" } }, "node_modules/ts-node": { "version": "9.1.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", "dev": true, "dependencies": { "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", "yn": "3.1.1" }, "bin": { "ts-node": "dist/bin.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js", "ts-script": "dist/bin-script-deprecated.js" }, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "typescript": ">=2.7" } }, "node_modules/ts-node/node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { "node": ">=0.3.1" } }, "node_modules/ts-node/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/ts-node/node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "node_modules/tsconfig-paths": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz", "integrity": "sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==", "dev": true, "dependencies": { "json5": "^2.2.0", "minimist": "^1.2.0", "strip-bom": "^3.0.0" } }, "node_modules/tsconfig-paths-webpack-plugin": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.5.1.tgz", "integrity": "sha512-n5CMlUUj+N5pjBhBACLq4jdr9cPTitySCjIosoQm0zwK99gmrcTGAfY9CwxRFT9+9OleNWXPRUcxsKP4AYExxQ==", "dev": true, "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.7.0", "tsconfig-paths": "^3.9.0" } }, "node_modules/tsconfig-paths-webpack-plugin/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/tsconfig-paths-webpack-plugin/node_modules/chalk": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/tsconfig-paths-webpack-plugin/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/tsconfig-paths-webpack-plugin/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/tsconfig-paths-webpack-plugin/node_modules/enhanced-resolve": { "version": "5.8.2", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" }, "engines": { "node": ">=10.13.0" } }, "node_modules/tsconfig-paths-webpack-plugin/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/tsconfig-paths-webpack-plugin/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/tsconfig-paths-webpack-plugin/node_modules/tapable": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/tsconfig-paths/node_modules/json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "dependencies": { "minimist": "^1.2.5" }, "bin": { "json5": "lib/cli.js" }, "engines": { "node": ">=6" } }, "node_modules/tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "node_modules/tslint": { "version": "5.20.1", "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", "chalk": "^2.3.0", "commander": "^2.12.1", "diff": "^4.0.1", "glob": "^7.1.1", "js-yaml": "^3.13.1", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "resolve": "^1.3.2", "semver": "^5.3.0", "tslib": "^1.8.0", "tsutils": "^2.29.0" }, "bin": { "tslint": "bin/tslint" }, "engines": { "node": ">=4.8.0" }, "peerDependencies": { "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" } }, "node_modules/tslint-config-prettier": { "version": "1.18.0", "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", "dev": true, "bin": { "tslint-config-prettier-check": "bin/check.js" }, "engines": { "node": ">=4.0.0" } }, "node_modules/tslint-etc": { "version": "1.13.10", "resolved": "https://registry.npmjs.org/tslint-etc/-/tslint-etc-1.13.10.tgz", "integrity": "sha512-6Rt6zaE9jw4iBkrnpVTlnbnjax/4LyTRrXkm/+nLuuJ6HQzZ/+TmHDAtA6C/VOkSqeOHRXCIen3B38hmIMlxow==", "dev": true, "dependencies": { "@phenomnomnominal/tsquery": "^4.0.0", "tslib": "^2.0.0", "tsutils": "^3.0.0", "tsutils-etc": "^1.0.0" }, "peerDependencies": { "tslint": "^5.0.0 || ^6.0.0", "typescript": "^2.3.0 || ^3.0.0 || ^4.0.0" } }, "node_modules/tslint-no-toplevel-property-access": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/tslint-no-toplevel-property-access/-/tslint-no-toplevel-property-access-0.0.2.tgz", "integrity": "sha512-Oc+UUurlGLBkgeUSGxMoTpRUpaXsjqzQCEAYrYQyuU8330fi5FKlye5n53y87EJ24AlfdoxMPV7DJfFOADapfg==", "dev": true, "peerDependencies": { "tslint": ">=5", "typescript": ">=3" } }, "node_modules/tslint-no-unused-expression-chai": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tslint-no-unused-expression-chai/-/tslint-no-unused-expression-chai-0.0.3.tgz", "integrity": "sha512-jKqhimj5gKl96ngeKxSVG1nOE7wmKRiHXD3kKpi+GG+5CmXJevD0ogsThZ8uSQCBIELFLVqXpZ43PpLniWu7jw==", "dev": true, "dependencies": { "tsutils": "^2.3.0" }, "engines": { "node": ">=4" }, "peerDependencies": { "tslint": ">=5.1.0" } }, "node_modules/tslint-no-unused-expression-chai/node_modules/tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "dependencies": { "tslib": "^1.8.1" }, "peerDependencies": { "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" } }, "node_modules/tslint-no-unused-expression-chai/node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/tslint/node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/tslint/node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { "node": ">=0.3.1" } }, "node_modules/tslint/node_modules/mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "dependencies": { "minimist": "^1.2.5" }, "bin": { "mkdirp": "bin/cmd.js" } }, "node_modules/tslint/node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true, "bin": { "semver": "bin/semver" } }, "node_modules/tslint/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/tslint/node_modules/tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "dependencies": { "tslib": "^1.8.1" }, "peerDependencies": { "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" } }, "node_modules/tsutils": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "dependencies": { "tslib": "^1.8.1" }, "engines": { "node": ">= 6" }, "peerDependencies": { "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, "node_modules/tsutils-etc": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/tsutils-etc/-/tsutils-etc-1.3.4.tgz", "integrity": "sha512-GOQJeZgE0rFiok0CsOrvNgLrIG5LiVEYtSiPHZz0KFFlSR8q3qXMkGZ3hOvFpBvB++B7PVEMhjQQmAF3tSFLKA==", "dev": true, "dependencies": { "@types/yargs": "^17.0.0", "yargs": "^17.0.0" }, "bin": { "ts-flags": "bin/ts-flags", "ts-kind": "bin/ts-kind" }, "peerDependencies": { "tsutils": "^3.0.0" } }, "node_modules/tsutils-etc/node_modules/ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/tsutils-etc/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/tsutils-etc/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "node_modules/tsutils-etc/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/tsutils-etc/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/tsutils-etc/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/tsutils-etc/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/tsutils-etc/node_modules/string-width": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=8" } }, "node_modules/tsutils-etc/node_modules/strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "dependencies": { "ansi-regex": "^5.0.0" }, "engines": { "node": ">=8" } }, "node_modules/tsutils-etc/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/tsutils-etc/node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/tsutils-etc/node_modules/yargs": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", "dev": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" }, "engines": { "node": ">=12" } }, "node_modules/tsutils-etc/node_modules/yargs-parser": { "version": "20.2.7", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/tsutils/node_modules/tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "node_modules/tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "dependencies": { "prelude-ls": "^1.2.1" }, "engines": { "node": ">= 0.8.0" } }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "engines": { "node": ">=4" } }, "node_modules/type-fest": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", "dev": true, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, "node_modules/typescript": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { "node": ">=4.2.0" } }, "node_modules/uglify-js": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", "dev": true, "optional": true, "dependencies": { "commander": "~2.20.0", "source-map": "~0.6.1" }, "bin": { "uglifyjs": "bin/uglifyjs" }, "engines": { "node": ">=0.8.0" } }, "node_modules/uglify-js/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/undefsafe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", "dev": true, "dependencies": { "debug": "^2.2.0" } }, "node_modules/union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "dependencies": { "unique-slug": "^2.0.0" } }, "node_modules/unique-slug": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4" } }, "node_modules/unique-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "dependencies": { "crypto-random-string": "^1.0.0" }, "engines": { "node": ">=4" } }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, "engines": { "node": ">= 4.0.0" } }, "node_modules/unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/unset-value/node_modules/has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", "isobject": "^2.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "dependencies": { "isarray": "1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/unset-value/node_modules/has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true, "engines": { "node": ">=4", "yarn": "*" } }, "node_modules/update-notifier": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "dependencies": { "boxen": "^1.2.1", "chalk": "^2.0.1", "configstore": "^3.0.0", "import-lazy": "^2.1.0", "is-ci": "^1.0.10", "is-installed-globally": "^0.1.0", "is-npm": "^1.0.0", "latest-version": "^3.0.0", "semver-diff": "^2.0.0", "xdg-basedir": "^3.0.0" }, "engines": { "node": ">=4" } }, "node_modules/uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "dependencies": { "punycode": "^2.1.0" } }, "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, "node_modules/url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, "dependencies": { "punycode": "1.3.2", "querystring": "0.2.0" } }, "node_modules/url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "dependencies": { "prepend-http": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/url/node_modules/punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "dev": true, "dependencies": { "inherits": "2.0.3" } }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "node_modules/util/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "node_modules/uuid": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "dev": true }, "node_modules/v8-compile-cache": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", "dev": true }, "node_modules/validate-commit-msg": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/validate-commit-msg/-/validate-commit-msg-2.14.0.tgz", "integrity": "sha1-5Tg2kQEsuycNzAvCpO/+vhSJDqw=", "deprecated": "Check out CommitLint which provides the same functionality with a more user-focused experience.", "dev": true, "dependencies": { "conventional-commit-types": "^2.0.0", "find-parent-dir": "^0.3.0", "findup": "0.1.5", "semver-regex": "1.0.0" }, "bin": { "validate-commit-msg": "lib/cli.js" } }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "node_modules/vinyl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "dev": true, "dependencies": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", "clone-stats": "^1.0.0", "cloneable-readable": "^1.0.0", "remove-trailing-separator": "^1.0.1", "replace-ext": "^1.0.0" }, "engines": { "node": ">= 0.10" } }, "node_modules/vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", "dev": true }, "node_modules/vm-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", "dev": true }, "node_modules/watchpack": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "neo-async": "^2.5.0" }, "optionalDependencies": { "chokidar": "^3.4.1", "watchpack-chokidar2": "^2.0.1" } }, "node_modules/watchpack-chokidar2": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", "dev": true, "optional": true, "dependencies": { "chokidar": "^2.1.8" } }, "node_modules/watchpack-chokidar2/node_modules/anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "optional": true, "dependencies": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" } }, "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "optional": true, "dependencies": { "remove-trailing-separator": "^1.0.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, "optional": true, "engines": { "node": ">=0.10.0" } }, "node_modules/watchpack-chokidar2/node_modules/chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", "dev": true, "optional": true, "dependencies": { "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", "is-glob": "^4.0.0", "normalize-path": "^3.0.0", "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" }, "optionalDependencies": { "fsevents": "^1.2.7" } }, "node_modules/watchpack-chokidar2/node_modules/fsevents": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], "dependencies": { "bindings": "^1.5.0", "nan": "^2.12.1" }, "engines": { "node": ">= 4.0" } }, "node_modules/watchpack-chokidar2/node_modules/glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "optional": true, "dependencies": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" } }, "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "optional": true, "dependencies": { "is-extglob": "^2.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "optional": true, "dependencies": { "binary-extensions": "^1.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/watchpack-chokidar2/node_modules/readdirp": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "optional": true, "dependencies": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" }, "engines": { "node": ">=0.10" } }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "dependencies": { "defaults": "^1.0.3" } }, "node_modules/web-streams-polyfill": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.0.2.tgz", "integrity": "sha512-JTNkNbAKoSo8NKiqu2UUaqRFCDWWZaCOsXuJEsToWopikTA0YHKKUf91GNkS/SnD8JixOkJjVsiacNlrFnRECA==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/webpack": { "version": "4.39.3", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.3.tgz", "integrity": "sha512-BXSI9M211JyCVc3JxHWDpze85CvjC842EvpRsVTc/d15YJGlox7GIDd38kJgWrb3ZluyvIjgenbLDMBQPDcxYQ==", "dev": true, "dependencies": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/wasm-edit": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", "acorn": "^6.2.1", "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^4.1.0", "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", "loader-runner": "^2.4.0", "loader-utils": "^1.2.3", "memory-fs": "^0.4.1", "micromatch": "^3.1.10", "mkdirp": "^0.5.1", "neo-async": "^2.6.1", "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", "tapable": "^1.1.3", "terser-webpack-plugin": "^1.4.1", "watchpack": "^1.6.0", "webpack-sources": "^1.4.1" }, "bin": { "webpack": "bin/webpack.js" }, "engines": { "node": ">=6.11.5" } }, "node_modules/webpack-core": { "version": "0.6.9", "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", "dev": true, "dependencies": { "source-list-map": "~0.1.7", "source-map": "~0.4.1" }, "engines": { "node": ">=0.6" } }, "node_modules/webpack-core/node_modules/source-list-map": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", "dev": true }, "node_modules/webpack-core/node_modules/source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "dependencies": { "amdefine": ">=0.0.4" }, "engines": { "node": ">=0.8.0" } }, "node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" } }, "node_modules/webpack-sources/node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/webpack/node_modules/ajv": { "version": "6.10.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "dependencies": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "node_modules/webpack/node_modules/eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "dependencies": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" }, "engines": { "node": ">=4.0.0" } }, "node_modules/webpack/node_modules/mkdirp": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "dev": true, "dependencies": { "minimist": "^1.2.5" }, "bin": { "mkdirp": "bin/cmd.js" } }, "node_modules/webpack/node_modules/mkdirp/node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "dependencies": { "isexe": "^2.0.0" }, "bin": { "which": "bin/which" } }, "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "node_modules/which-pm-runs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", "dev": true }, "node_modules/wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "dependencies": { "string-width": "^1.0.2 || 2" } }, "node_modules/widest-line": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", "dev": true, "dependencies": { "string-width": "^2.1.1" }, "engines": { "node": ">=4" } }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, "node_modules/worker-farm": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "dev": true, "dependencies": { "errno": "~0.1.7" } }, "node_modules/workerpool": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz", "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==", "dev": true }, "node_modules/wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" }, "engines": { "node": ">=6" } }, "node_modules/wrap-ansi/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "node_modules/write": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "dependencies": { "mkdirp": "^0.5.1" }, "engines": { "node": ">=4" } }, "node_modules/write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, "dependencies": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", "signal-exit": "^3.0.2" } }, "node_modules/write/node_modules/mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "dependencies": { "minimist": "^1.2.5" }, "bin": { "mkdirp": "bin/cmd.js" } }, "node_modules/xdg-basedir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", "dev": true, "engines": { "node": ">=4" } }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, "engines": { "node": ">=0.4" } }, "node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "node_modules/yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "node_modules/yaml": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^13.1.2" } }, "node_modules/yargs-parser": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "node_modules/yargs-unparser": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.1.tgz", "integrity": "sha512-qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==", "dev": true, "dependencies": { "camelcase": "^5.3.1", "decamelize": "^1.2.0", "flat": "^4.1.0", "is-plain-obj": "^1.1.0", "yargs": "^14.2.3" }, "engines": { "node": ">=6" } }, "node_modules/yargs-unparser/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/yargs-unparser/node_modules/yargs": { "version": "14.2.3", "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", "dev": true, "dependencies": { "cliui": "^5.0.0", "decamelize": "^1.2.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^15.0.1" } }, "node_modules/yargs-unparser/node_modules/yargs-parser": { "version": "15.0.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", "dev": true, "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "node_modules/yargs/node_modules/string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "dependencies": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" }, "engines": { "node": ">=6" } }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true, "engines": { "node": ">=6" } } }, "dependencies": { "@angular-devkit/build-optimizer": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.4.6.tgz", "integrity": "sha512-q6pUXxb8gZMguuh00ATWHItLw38YT2RE353LptCh38uQQ16bGx/8YxJVJZ0IsLK7mEhd2PtkyRzoyM3ttrYhag==", "dev": true, "requires": { "loader-utils": "^1.1.0", "source-map": "^0.5.6", "typescript": "~2.7.2", "webpack-sources": "^1.1.0" }, "dependencies": { "typescript": { "version": "2.7.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", "dev": true } } }, "@angular-devkit/core": { "version": "11.0.7", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.0.7.tgz", "integrity": "sha512-1GKnIT++YSUHpzzRx9QC0+8yOw4wy+ZpiJVDlroPSeK4FGrTCJqJKenkfRjVFRFOSrzTiJds+IU6kI4+bFbw9g==", "dev": true, "requires": { "ajv": "6.12.6", "fast-json-stable-stringify": "2.1.0", "magic-string": "0.25.7", "rxjs": "6.6.3", "source-map": "0.7.3" }, "dependencies": { "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, "magic-string": { "version": "0.25.7", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", "dev": true, "requires": { "sourcemap-codec": "^1.4.4" } }, "source-map": { "version": "0.7.3", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true } } }, "@angular-devkit/schematics": { "version": "11.0.7", "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.0.7.tgz", "integrity": "sha512-mKkXWmSTlZYjQO4i7xUX+bG1E9h9Ke3GgGQQouA+kth06IPO+VcywLQNsui4qcyLDUjyo8CaX+44aoSXoX3Tgg==", "dev": true, "requires": { "@angular-devkit/core": "11.0.7", "ora": "5.1.0", "rxjs": "6.6.3" } }, "@babel/code-frame": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { "@babel/highlight": "^7.8.3" } }, "@babel/helper-validator-identifier": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz", "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==", "dev": true }, "@babel/highlight": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@eslint/eslintrc": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz", "integrity": "sha512-4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.1.1", "espree": "^7.3.0", "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", "lodash": "^4.17.19", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, "dependencies": { "ajv": { "version": "6.12.4", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "@napi-rs/triples": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@napi-rs/triples/-/triples-1.1.0.tgz", "integrity": "sha512-XQr74QaLeMiqhStEhLn1im9EOMnkypp7MZOwQhGzqp2Weu5eQJbpPxWxixxlYRKWPOmJjsk6qYfYH9kq43yc2w==", "dev": true }, "@node-rs/helper": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@node-rs/helper/-/helper-1.3.0.tgz", "integrity": "sha512-KPS0EBA1bXtf96IL7wr5bFHxhL2KCZ6kI/hkyLG7nzEq2cDq8pJhOhcJDOLXIPh5J2LEJ5eXyjDTWDFg5eRypw==", "dev": true, "requires": { "@napi-rs/triples": "^1.1.0" } }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, "@nodelib/fs.walk": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" } }, "@phenomnomnominal/tsquery": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/@phenomnomnominal/tsquery/-/tsquery-4.1.1.tgz", "integrity": "sha512-jjMmK1tnZbm1Jq5a7fBliM4gQwjxMU7TFoRNwIyzwlO+eHPRCFv/Nv+H/Gi1jc3WR7QURG8D5d0Tn12YGrUqBQ==", "dev": true, "requires": { "esquery": "^1.0.1" } }, "@sinonjs/commons": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.6.0.tgz", "integrity": "sha512-w4/WHG7C4WWFyE5geCieFJF6MZkbW4VAriol5KlmQXpAQdxvV0p26sqNZOW6Qyw6Y0l9K4g+cHvvczR2sEEpqg==", "dev": true, "requires": { "type-detect": "4.0.8" } }, "@sinonjs/formatio": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz", "integrity": "sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg==", "dev": true, "requires": { "samsam": "1.3.0" } }, "@sinonjs/samsam": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz", "integrity": "sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==", "dev": true, "requires": { "@sinonjs/commons": "^1.3.0", "array-from": "^2.1.1", "lodash": "^4.17.15" } }, "@sinonjs/text-encoding": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", "dev": true }, "@swc/core": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.2.128.tgz", "integrity": "sha512-bcs62TYhk7NmGHeP0bBf7cphODVxy+Rh0E5hiak6FcNVr7TUtcsaH8GIQTYdWlpv1rX+FaXCFdIhD4yIyJrqDQ==", "dev": true, "requires": { "@node-rs/helper": "^1.0.0", "@swc/core-android-arm-eabi": "1.2.128", "@swc/core-android-arm64": "1.2.128", "@swc/core-darwin-arm64": "1.2.128", "@swc/core-darwin-x64": "1.2.128", "@swc/core-freebsd-x64": "1.2.128", "@swc/core-linux-arm-gnueabihf": "1.2.128", "@swc/core-linux-arm64-gnu": "1.2.128", "@swc/core-linux-arm64-musl": "1.2.128", "@swc/core-linux-x64-gnu": "1.2.128", "@swc/core-linux-x64-musl": "1.2.128", "@swc/core-win32-arm64-msvc": "1.2.128", "@swc/core-win32-ia32-msvc": "1.2.128", "@swc/core-win32-x64-msvc": "1.2.128" } }, "@swc/core-android-arm-eabi": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-android-arm-eabi/-/core-android-arm-eabi-1.2.128.tgz", "integrity": "sha512-gERpCKxWWd4UegQu9X5SmbuIRnYxLlyfwpXyIu/ACDvxP7Hip0NWFSy6L1l5ofpMHXFt7zGekiNGzJImaOGV/A==", "dev": true, "optional": true }, "@swc/core-android-arm64": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-android-arm64/-/core-android-arm64-1.2.128.tgz", "integrity": "sha512-tEsbB52tOwn/Hko4zvLVh3YbuZq0aIvKn7rQT2jTS/NlTefLf1CQJqmgABFn3ZOimgPkNANRvYAZKDvrJm9d4A==", "dev": true, "optional": true }, "@swc/core-darwin-arm64": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.2.128.tgz", "integrity": "sha512-EoF/ps3afvNIW3TSYwEMeFh6Q1IjN1ZRAZ4oVa2HllQ7CsUI1C2dMMNMZRipm5ESQiUbIVcZ/WQ6pOcnyn033A==", "dev": true, "optional": true }, "@swc/core-darwin-x64": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.2.128.tgz", "integrity": "sha512-wdIYDQ35qmPICvgtnRghj5t8M29ZOL0Bnb8lMr1L+iEDI09j8GQAJkyrjNzAxHzSneuAPmv2TUcXc1yFFqhaiA==", "dev": true, "optional": true }, "@swc/core-freebsd-x64": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-freebsd-x64/-/core-freebsd-x64-1.2.128.tgz", "integrity": "sha512-YyVCyOupZOsNwnWPI6hMHf4qCClUbeEIKwugOePcbiSgSfZXrCYU1DljWHyKDdnyaiRGUmmPF6UlpdfxyOgPSg==", "dev": true, "optional": true }, "@swc/core-linux-arm-gnueabihf": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.2.128.tgz", "integrity": "sha512-W8KT3Li+NWxZaRcSwvQUycDa8tN6tQDPonLTqTPPqWbVpWj6U9hc0pojylJIb3QjUZSIXxbXVlVDmezJgmHZ4w==", "dev": true, "optional": true }, "@swc/core-linux-arm64-gnu": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.2.128.tgz", "integrity": "sha512-7bmECX5hs/1xx6m+VBgzVSRhyjP+R/30KVJfTO9pYO9AATCAbOWElyKhIkMKH8N9g/sNmS1g1vy1yfE0y+xoKg==", "dev": true, "optional": true }, "@swc/core-linux-arm64-musl": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.2.128.tgz", "integrity": "sha512-i0SIv1BwpEaIo56BQyOBiik+N/2n4ZqND2NxT/Xs7xvhyBSNZUwVSAW+6xNlcY5sJ4GVFTHRungf5QWKtgCOXg==", "dev": true, "optional": true }, "@swc/core-linux-x64-gnu": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.2.128.tgz", "integrity": "sha512-7Toh4KQUqc/KZiyuyzrUmoiE9Zh+jixXZqg6TntVOf9EKE2ZrOP1USjPT/QaaSfcOdEt64Neu53ypIx4ZRIXVQ==", "dev": true, "optional": true }, "@swc/core-linux-x64-musl": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.2.128.tgz", "integrity": "sha512-v5CT82NsGpN7UX6FtMpFKlU5pAwfm4BQxICOF5tM5JU4sedvNoSTlrZbXoKPL+zxSdhNOTX+aI8SAygM6dcW9Q==", "dev": true, "optional": true }, "@swc/core-win32-arm64-msvc": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.2.128.tgz", "integrity": "sha512-wzWcOKbfrBrm7ZTX9G51aTblDpil4sM3fN8thFR5EctxinvnpYaaW8ZUQ6d1dfbc5xDTTUNJWi6d6PRSzt85cA==", "dev": true, "optional": true }, "@swc/core-win32-ia32-msvc": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.2.128.tgz", "integrity": "sha512-fz7YfX8RTHm6PmqL8L64xK6R6y0/rn8JgmLd7lwmTRta07eJyqvzESZQSUg/CIJd90mS0wLmTmkEhj8FoXOBNg==", "dev": true, "optional": true }, "@swc/core-win32-x64-msvc": { "version": "1.2.128", "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.2.128.tgz", "integrity": "sha512-7Pm4+kN8cXSgwil7/wrlFVpn1h6CTvfVVBcZvfHV8jllQlUnN2GZ1FnOfoeBLfrXyaegHWkbPaKJDEYh69jNcQ==", "dev": true, "optional": true }, "@swc/helpers": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.2.tgz", "integrity": "sha512-qEru2uaH1vKZNCZR4rFCUZaflsBP7IWiGcIoQe22qi5tm+HEG/yPdhSba+ZCNTWk2xyYpx/nEFkncDY3orEx3w==", "dev": true }, "@types/chai": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.2.11.tgz", "integrity": "sha512-t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw==", "dev": true }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, "@types/estree": { "version": "0.0.39", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", "dev": true }, "@types/glob": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", "dev": true, "requires": { "@types/minimatch": "*", "@types/node": "*" } }, "@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, "@types/lodash": { "version": "4.14.102", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.102.tgz", "integrity": "sha512-k/SxycYmVc6sYo6kzm8cABHcbMs9MXn6jYsja1hLvZ/x9e31VHRRn+1UzWdpv6doVchphvKaOsZ0VTqbF7zvNg==", "dev": true }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, "@types/mocha": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz", "integrity": "sha512-ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==", "dev": true }, "@types/node": { "version": "14.14.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.6.tgz", "integrity": "sha512-6QlRuqsQ/Ox/aJEQWBEJG7A9+u7oSYl3mem/K8IzxXG/kAGbV1YPD9Bg9Zw3vyxC/YP+zONKwy8hGkSt1jxFMw==", "dev": true }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, "@types/resolve": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz", "integrity": "sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==", "dev": true, "requires": { "@types/node": "*" } }, "@types/shelljs": { "version": "0.8.8", "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.8.tgz", "integrity": "sha512-lD3LWdg6j8r0VRBFahJVaxoW0SIcswxKaFUrmKl33RJVeeoNYQAz4uqCJ5Z6v4oIBOsC5GozX+I5SorIKiTcQA==", "dev": true, "requires": { "@types/glob": "*", "@types/node": "*" } }, "@types/sinon": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-4.1.3.tgz", "integrity": "sha512-Xxn32Q3mAJHOMU20bxcT6HiPksUJEkZA+nyZS4NhLo8kKb8hLhkBgp5OeW/BI3+9QmdrvDRk3caYNqtYb+TEbA==", "dev": true }, "@types/sinon-chai": { "version": "2.7.29", "resolved": "https://registry.npmjs.org/@types/sinon-chai/-/sinon-chai-2.7.29.tgz", "integrity": "sha512-EkI/ZvJT4hglWo7Ipf9SX+J+R9htNOMjW8xiOhce7+0csqvgoF5IXqY5Ae1GqRgNtWCuaywR5HjVa1snkTqpOw==", "dev": true, "requires": { "@types/chai": "*", "@types/sinon": "*" } }, "@types/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@types/source-map/-/source-map-0.5.7.tgz", "integrity": "sha512-LrnsgZIfJaysFkv9rRJp4/uAyqw87oVed3s1hhF83nwbo9c7MG9g5DqR0seHP+lkX4ldmMrVolPjQSe2ZfD0yA==", "dev": true, "requires": { "source-map": "*" } }, "@types/yargs": { "version": "17.0.0", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.0.tgz", "integrity": "sha512-RS7u2X7vdXjVQs160PWY1pjLBw6GJj04utojn0KU8p2rRZR37FSzzK6XOT+KLzT/DVbDYRyezroc0LHIvM5Z2A==", "dev": true, "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { "version": "20.2.0", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", "dev": true }, "@typescript-eslint/eslint-plugin": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.29.1.tgz", "integrity": "sha512-AHqIU+SqZZgBEiWOrtN94ldR3ZUABV5dUG94j8Nms9rQnHFc8fvDOue/58K4CFz6r8OtDDc35Pw9NQPWo0Ayrw==", "dev": true, "requires": { "@typescript-eslint/experimental-utils": "4.29.1", "@typescript-eslint/scope-manager": "4.29.1", "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", "regexpp": "^3.1.0", "semver": "^7.3.5", "tsutils": "^3.21.0" }, "dependencies": { "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "@typescript-eslint/experimental-utils": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.29.1.tgz", "integrity": "sha512-kl6QG6qpzZthfd2bzPNSJB2YcZpNOrP6r9jueXupcZHnL74WiuSjaft7WSu17J9+ae9zTlk0KJMXPUj0daBxMw==", "dev": true, "requires": { "@types/json-schema": "^7.0.7", "@typescript-eslint/scope-manager": "4.29.1", "@typescript-eslint/types": "4.29.1", "@typescript-eslint/typescript-estree": "4.29.1", "eslint-scope": "^5.1.1", "eslint-utils": "^3.0.0" }, "dependencies": { "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, "requires": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" } }, "eslint-utils": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, "requires": { "eslint-visitor-keys": "^2.0.0" } }, "eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true }, "esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { "estraverse": "^5.2.0" }, "dependencies": { "estraverse": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } } } }, "@typescript-eslint/parser": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.29.1.tgz", "integrity": "sha512-3fL5iN20hzX3Q4OkG7QEPFjZV2qsVGiDhEwwh+EkmE/w7oteiOvUNzmpu5eSwGJX/anCryONltJ3WDmAzAoCMg==", "dev": true, "requires": { "@typescript-eslint/scope-manager": "4.29.1", "@typescript-eslint/types": "4.29.1", "@typescript-eslint/typescript-estree": "4.29.1", "debug": "^4.3.1" }, "dependencies": { "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "@typescript-eslint/scope-manager": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.29.1.tgz", "integrity": "sha512-Hzv/uZOa9zrD/W5mftZa54Jd5Fed3tL6b4HeaOpwVSabJK8CJ+2MkDasnX/XK4rqP5ZTWngK1ZDeCi6EnxPQ7A==", "dev": true, "requires": { "@typescript-eslint/types": "4.29.1", "@typescript-eslint/visitor-keys": "4.29.1" } }, "@typescript-eslint/types": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.29.1.tgz", "integrity": "sha512-Jj2yu78IRfw4nlaLtKjVaGaxh/6FhofmQ/j8v3NXmAiKafbIqtAPnKYrf0sbGjKdj0hS316J8WhnGnErbJ4RCA==", "dev": true }, "@typescript-eslint/typescript-estree": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.29.1.tgz", "integrity": "sha512-lIkkrR9E4lwZkzPiRDNq0xdC3f2iVCUjw/7WPJ4S2Sl6C3nRWkeE1YXCQ0+KsiaQRbpY16jNaokdWnm9aUIsfw==", "dev": true, "requires": { "@typescript-eslint/types": "4.29.1", "@typescript-eslint/visitor-keys": "4.29.1", "debug": "^4.3.1", "globby": "^11.0.3", "is-glob": "^4.0.1", "semver": "^7.3.5", "tsutils": "^3.21.0" }, "dependencies": { "debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, "@typescript-eslint/visitor-keys": { "version": "4.29.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.29.1.tgz", "integrity": "sha512-zLqtjMoXvgdZY/PG6gqA73V8BjqPs4af1v2kiiETBObp+uC6gRYnJLmJHxC0QyUrrHDLJPIWNYxoBV3wbcRlag==", "dev": true, "requires": { "@typescript-eslint/types": "4.29.1", "eslint-visitor-keys": "^2.0.0" }, "dependencies": { "eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", "dev": true } } }, "@webassemblyjs/ast": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", "dev": true, "requires": { "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", "@webassemblyjs/wast-parser": "1.8.5" } }, "@webassemblyjs/floating-point-hex-parser": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", "dev": true }, "@webassemblyjs/helper-api-error": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", "dev": true }, "@webassemblyjs/helper-buffer": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", "dev": true }, "@webassemblyjs/helper-code-frame": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", "dev": true, "requires": { "@webassemblyjs/wast-printer": "1.8.5" } }, "@webassemblyjs/helper-fsm": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", "dev": true }, "@webassemblyjs/helper-module-context": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "mamacro": "^0.0.3" } }, "@webassemblyjs/helper-wasm-bytecode": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", "dev": true }, "@webassemblyjs/helper-wasm-section": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-buffer": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", "@webassemblyjs/wasm-gen": "1.8.5" } }, "@webassemblyjs/ieee754": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", "dev": true }, "@webassemblyjs/wasm-edit": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-buffer": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", "@webassemblyjs/helper-wasm-section": "1.8.5", "@webassemblyjs/wasm-gen": "1.8.5", "@webassemblyjs/wasm-opt": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", "@webassemblyjs/wast-printer": "1.8.5" } }, "@webassemblyjs/wasm-gen": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", "@webassemblyjs/ieee754": "1.8.5", "@webassemblyjs/leb128": "1.8.5", "@webassemblyjs/utf8": "1.8.5" } }, "@webassemblyjs/wasm-opt": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-buffer": "1.8.5", "@webassemblyjs/wasm-gen": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5" } }, "@webassemblyjs/wasm-parser": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-api-error": "1.8.5", "@webassemblyjs/helper-wasm-bytecode": "1.8.5", "@webassemblyjs/ieee754": "1.8.5", "@webassemblyjs/leb128": "1.8.5", "@webassemblyjs/utf8": "1.8.5" } }, "@webassemblyjs/wast-parser": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/floating-point-hex-parser": "1.8.5", "@webassemblyjs/helper-api-error": "1.8.5", "@webassemblyjs/helper-code-frame": "1.8.5", "@webassemblyjs/helper-fsm": "1.8.5", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/wast-printer": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/wast-parser": "1.8.5", "@xtuc/long": "4.2.2" } }, "@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, "@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "acorn": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true }, "acorn-jsx": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", "dev": true, "requires": {} }, "acorn-jsx-walk": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/acorn-jsx-walk/-/acorn-jsx-walk-2.0.0.tgz", "integrity": "sha512-uuo6iJj4D4ygkdzd6jPtcxs8vZgDX9YFIkqczGImoypX2fQ4dVImmu3UzA4ynixCIMTrEOWW+95M2HuBaCEOVA==", "dev": true }, "acorn-loose": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/acorn-loose/-/acorn-loose-8.1.0.tgz", "integrity": "sha512-+X1zk54qiOWwIRywGBhfz8sLHFJ/adQRuVqn25m4HuD7/+GTXM1c0b3LH0bWerQ0H97lTk2GyuScGbSiQK9M1g==", "dev": true, "requires": { "acorn": "^8.2.0" }, "dependencies": { "acorn": { "version": "8.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", "dev": true } } }, "acorn-walk": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.0.tgz", "integrity": "sha512-mjmzmv12YIG/G8JQdQuz2MUDShEJ6teYpT5bmWA4q7iwoGen8xtt3twF3OvzIUl+Q06aWIjvnwQUKvQ6TtMRjg==", "dev": true }, "aggregate-error": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "dev": true, "requires": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" }, "dependencies": { "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true } } }, "ajv": { "version": "6.9.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz", "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "ajv-errors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", "dev": true, "requires": {} }, "ajv-keywords": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", "dev": true, "requires": {} }, "amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", "dev": true }, "ansi-align": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { "string-width": "^2.0.0" } }, "ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, "ansi-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" } }, "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "optional": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, "arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", "dev": true }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", "dev": true }, "array-from": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", "dev": true }, "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", "dev": true }, "array.prototype.map": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz", "integrity": "sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==", "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1", "es-array-method-boxes-properly": "^1.0.0", "is-string": "^1.0.4" }, "dependencies": { "es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.0", "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, "is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true }, "is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "requires": { "has-symbols": "^1.0.1" } }, "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true } } }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", "dev": true }, "asn1.js": { "version": "4.10.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, "assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", "dev": true, "requires": { "object-assign": "^4.1.1", "util": "0.10.3" }, "dependencies": { "inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", "dev": true }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", "dev": true, "requires": { "inherits": "2.0.1" } } } }, "assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", "dev": true }, "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, "astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true }, "babel-polyfill": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "dev": true, "requires": { "babel-runtime": "^6.26.0", "core-js": "^2.5.0", "regenerator-runtime": "^0.10.5" } }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" }, "dependencies": { "regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", "dev": true } } }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", "define-property": "^1.0.0", "isobject": "^3.0.1", "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "base64-js": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", "dev": true }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, "optional": true }, "bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, "optional": true, "requires": { "file-uri-to-path": "1.0.0" } }, "bluebird": { "version": "3.5.5", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", "dev": true }, "bn.js": { "version": "4.12.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, "boxen": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { "ansi-align": "^2.0.0", "camelcase": "^4.0.0", "chalk": "^2.0.1", "cli-boxes": "^1.0.0", "string-width": "^2.0.0", "term-size": "^1.2.0", "widest-line": "^2.0.0" }, "dependencies": { "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", "dev": true } } }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", "extend-shallow": "^2.0.1", "fill-range": "^4.0.0", "isobject": "^3.0.1", "repeat-element": "^1.1.2", "snapdragon": "^0.8.1", "snapdragon-node": "^2.0.1", "split-string": "^3.0.2", "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, "browser-resolve": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", "dev": true, "requires": { "resolve": "1.1.7" }, "dependencies": { "resolve": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", "dev": true } } }, "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.3", "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, "browserify-cipher": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "requires": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", "evp_bytestokey": "^1.0.0" } }, "browserify-des": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, "requires": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, "browserify-rsa": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { "bn.js": "^4.1.0", "randombytes": "^2.0.1" } }, "browserify-sign": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { "bn.js": "^4.1.1", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "create-hmac": "^1.1.2", "elliptic": "^6.0.0", "inherits": "^2.0.1", "parse-asn1": "^5.0.0" } }, "browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "requires": { "pako": "~1.0.5" } }, "buffer": { "version": "4.9.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "dev": true, "requires": { "base64-js": "^1.0.2", "ieee754": "^1.1.4", "isarray": "^1.0.0" } }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", "dev": true }, "builtin-modules": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", "dev": true }, "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, "cacache": { "version": "12.0.3", "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", "dev": true, "requires": { "bluebird": "^3.5.5", "chownr": "^1.1.1", "figgy-pudding": "^3.5.1", "glob": "^7.1.4", "graceful-fs": "^4.1.15", "infer-owner": "^1.0.3", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "move-concurrently": "^1.0.1", "promise-inflight": "^1.0.1", "rimraf": "^2.6.3", "ssri": "^6.0.1", "unique-filename": "^1.1.1", "y18n": "^4.0.0" }, "dependencies": { "glob": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "requires": { "yallist": "^3.0.2" } }, "mkdirp": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "dev": true, "requires": { "minimist": "^1.2.5" }, "dependencies": { "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } }, "yallist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", "dev": true } } }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", "get-value": "^2.0.6", "has-value": "^1.0.0", "isobject": "^3.0.1", "set-value": "^2.0.0", "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" } }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "camelcase-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { "camelcase": "^2.0.0", "map-obj": "^1.0.0" }, "dependencies": { "camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", "dev": true } } }, "capture-stack-trace": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", "integrity": "sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==", "dev": true }, "chai": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { "assertion-error": "^1.1.0", "check-error": "^1.0.2", "deep-eql": "^3.0.1", "get-func-name": "^2.0.0", "pathval": "^1.1.0", "type-detect": "^4.0.5" } }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "check-error": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", "dev": true }, "check-side-effects": { "version": "0.0.23", "resolved": "https://registry.npmjs.org/check-side-effects/-/check-side-effects-0.0.23.tgz", "integrity": "sha512-ieLYOsDdM0BUbSpPrpsJbB9/0ovuNKgp/p7Wos068klHBABMb/KNKNrAdvl5r36tAA8Jbto6/t8K9Fepa6z1KA==", "dev": true, "requires": { "@angular-devkit/build-optimizer": "0.14.0-beta.5", "diff": "^4.0.1", "minimist": "^1.2.5", "rollup": "~1.11.3", "rollup-plugin-node-resolve": "~4.2.3", "rollup-plugin-terser": "^7.0.1" }, "dependencies": { "@angular-devkit/build-optimizer": { "version": "0.14.0-beta.5", "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.14.0-beta.5.tgz", "integrity": "sha512-sQ86BGrd65QD9fV+wgDWNFKS2kxsZFj/lSn3pjgguV43XjGvnNlXnsVAgZOruygyXjB/afEOkNpO/4sKFNxiMw==", "dev": true, "requires": { "loader-utils": "1.2.3", "source-map": "0.5.6", "typescript": "3.2.4", "webpack-sources": "1.3.0" } }, "@types/node": { "version": "11.15.21", "resolved": "https://registry.npmjs.org/@types/node/-/node-11.15.21.tgz", "integrity": "sha512-pYC/tp6UctD/laukjIoO48Owmf4OacwEKaDErnlarkatott0j3B5wp9q2M0zn/XgZUpebuFeKMX4UFf578/+Vw==", "dev": true }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "rollup": { "version": "1.11.3", "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.11.3.tgz", "integrity": "sha512-81MR7alHcFKxgWzGfG7jSdv+JQxSOIOD/Fa3iNUmpzbd7p+V19e1l9uffqT8/7YAHgGOzmoPGN3Fx3L2ptOf5g==", "dev": true, "requires": { "@types/estree": "0.0.39", "@types/node": "^11.13.9", "acorn": "^6.1.1" } }, "rollup-plugin-node-resolve": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-4.2.4.tgz", "integrity": "sha512-t/64I6l7fZ9BxqD3XlX4ZeO6+5RLKyfpwE2CiPNUKa+GocPlQhf/C208ou8y3AwtNsc6bjSk/8/6y/YAyxCIvw==", "dev": true, "requires": { "@types/resolve": "0.0.8", "builtin-modules": "^3.1.0", "is-module": "^1.0.0", "resolve": "^1.10.0" } }, "source-map": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", "dev": true }, "typescript": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz", "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==", "dev": true }, "webpack-sources": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, "requires": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } } } }, "chokidar": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, "optional": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", "fsevents": "~2.3.1", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.5.0" }, "dependencies": { "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "optional": true, "requires": { "fill-range": "^7.0.1" } }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "optional": true, "requires": { "to-regex-range": "^5.0.1" } }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "optional": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "optional": true, "requires": { "is-number": "^7.0.0" } } } }, "chownr": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz", "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==", "dev": true }, "chrome-trace-event": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "dev": true, "requires": { "tslib": "^1.9.0" }, "dependencies": { "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, "class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } } } }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, "cli-boxes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz", "integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=", "dev": true }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { "restore-cursor": "^3.1.0" } }, "cli-spinners": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", "dev": true }, "cli-truncate": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, "requires": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" }, "dependencies": { "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "slice-ansi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } } } }, "cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" }, "dependencies": { "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } } } }, "clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", "dev": true }, "clone-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", "dev": true }, "clone-stats": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", "dev": true }, "cloneable-readable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", "dev": true, "requires": { "inherits": "^2.0.1", "process-nextick-args": "^2.0.0", "readable-stream": "^2.3.5" } }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" } }, "color": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", "dev": true, "requires": { "color-convert": "^1.9.1", "color-string": "^1.5.2" } }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "color-string": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", "dev": true, "requires": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, "colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { "delayed-stream": "~1.0.0" } }, "commander": { "version": "2.20.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", "dev": true }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, "compare-versions": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", "dev": true }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "concat-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { "buffer-from": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^2.2.2", "typedarray": "^0.0.6" } }, "configstore": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.5.tgz", "integrity": "sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==", "dev": true, "requires": { "dot-prop": "^4.2.1", "graceful-fs": "^4.1.2", "make-dir": "^1.0.0", "unique-string": "^1.0.0", "write-file-atomic": "^2.0.0", "xdg-basedir": "^3.0.0" }, "dependencies": { "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { "pify": "^3.0.0" } } } }, "console-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { "date-now": "^0.1.4" } }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, "conventional-commit-types": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.1.1.tgz", "integrity": "sha512-0Ts+fEdmjqYDOQ1yZ+LNgdSPO335XZw9qC10M7CxtLP3nIMGmeMhmkM8Taffa4+MXN13bRPlp0CtH+QfOzKTzw==", "dev": true }, "copy-concurrently": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { "aproba": "^1.1.1", "fs-write-stream-atomic": "^1.0.8", "iferr": "^0.1.5", "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.0" }, "dependencies": { "mkdirp": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "dev": true, "requires": { "minimist": "^1.2.5" }, "dependencies": { "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } } } }, "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", "dev": true }, "core-js": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", "dev": true }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, "cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.7.2" }, "dependencies": { "parse-json": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1", "lines-and-columns": "^1.1.6" } }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true } } }, "create-ecdh": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "requires": { "bn.js": "^4.1.0", "elliptic": "^6.0.0" } }, "create-error-class": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz", "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { "capture-stack-trace": "^1.0.0" } }, "create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", "md5.js": "^1.3.4", "ripemd160": "^2.0.1", "sha.js": "^2.4.0" } }, "create-hmac": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", "inherits": "^2.0.1", "ripemd160": "^2.0.0", "safe-buffer": "^5.0.1", "sha.js": "^2.4.8" } }, "create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "dev": true }, "cross-env": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.1.3.tgz", "integrity": "sha512-UOokgwvDzCT0mqRSLEkJzUhYXB1vK3E5UgDrD41QiXsm9UetcW2rCGHYz/O3p873lMJ1VZbFCF9Izkwh7nYR5A==", "dev": true, "requires": { "cross-spawn": "^5.1.0", "is-windows": "^1.0.0" } }, "cross-spawn": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { "lru-cache": "^4.0.1", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, "crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", "create-ecdh": "^4.0.0", "create-hash": "^1.1.0", "create-hmac": "^1.1.0", "diffie-hellman": "^5.0.0", "inherits": "^2.0.1", "pbkdf2": "^3.0.3", "public-encrypt": "^4.0.0", "randombytes": "^2.0.0", "randomfill": "^1.0.3" } }, "crypto-random-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", "dev": true }, "currently-unhandled": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { "array-find-index": "^1.0.1" } }, "cyclist": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", "dev": true }, "cz-conventional-changelog": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-1.2.0.tgz", "integrity": "sha1-K8oElkyJGbI/P9aonvXmAIsxs/g=", "dev": true, "requires": { "conventional-commit-types": "^2.0.0", "lodash.map": "^4.5.1", "longest": "^1.0.1", "pad-right": "^0.2.2", "right-pad": "^1.0.1", "word-wrap": "^1.0.3" }, "dependencies": { "longest": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true } } }, "date-now": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", "dev": true }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { "ms": "2.0.0" } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", "dev": true }, "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", "dev": true }, "deep-eql": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { "type-detect": "^4.0.0" } }, "deep-extend": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "defaults": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", "dev": true, "requires": { "clone": "^1.0.2" }, "dependencies": { "clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", "dev": true } } }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { "object-keys": "^1.0.12" } }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, "dependency-cruiser": { "version": "9.26.1", "resolved": "https://registry.npmjs.org/dependency-cruiser/-/dependency-cruiser-9.26.1.tgz", "integrity": "sha512-VS1QmbKwx+U+oCkWp4qj59lCJkhqt/AtyXSamh/l2NQ4Nj0VWmv/Cmu63VF6Kyu1B665cAwNFDW6uO4mDB9lsA==", "dev": true, "requires": { "acorn": "8.2.2", "acorn-jsx": "5.3.1", "acorn-jsx-walk": "2.0.0", "acorn-loose": "8.1.0", "acorn-walk": "8.1.0", "ajv": "8.2.0", "chalk": "4.1.1", "commander": "7.2.0", "enhanced-resolve": "5.1.0", "figures": "3.2.0", "get-stream": "6.0.1", "glob": "7.1.6", "handlebars": "4.7.7", "indent-string": "4.0.0", "inquirer": "7.3.3", "json5": "2.2.0", "lodash": "4.17.21", "safe-regex": "2.1.1", "semver": "7.3.5", "semver-try-require": "4.0.1", "teamcity-service-messages": "0.1.11", "tsconfig-paths-webpack-plugin": "3.5.1", "wrap-ansi": "7.0.0" }, "dependencies": { "acorn": { "version": "8.2.2", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.2.2.tgz", "integrity": "sha512-VrMS8kxT0e7J1EX0p6rI/E0FbfOVcvBpbIqHThFv+f8YrZIlMfVotYcXKVPmTvPW8sW5miJzfUFrrvthUZg8VQ==", "dev": true }, "ajv": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.2.0.tgz", "integrity": "sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "commander": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", "dev": true }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enhanced-resolve": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.1.0.tgz", "integrity": "sha512-EM3ZMRrprkvO44dVdDRGI9pNPY1Vkw15lT/cQk1IwlbcI7Tpc3la8y1FQCuilWQ8qvlq+n19abwPBjVLnld21A==", "dev": true, "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.0.0" } }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "safe-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", "dev": true, "requires": { "regexp-tree": "~0.1.1" } }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "tapable": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", "dev": true }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } } } }, "des.js": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "requires": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" } }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { "path-type": "^4.0.0" }, "dependencies": { "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true } } }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" } }, "domain-browser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", "dev": true }, "dot-prop": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "dev": true, "requires": { "is-obj": "^1.0.0" } }, "duplexer": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", "dev": true }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "dev": true, "requires": { "end-of-stream": "^1.0.0", "inherits": "^2.0.1", "readable-stream": "^2.0.0", "stream-shift": "^1.0.0" } }, "elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, "requires": { "bn.js": "^4.11.9", "brorand": "^1.1.0", "hash.js": "^1.0.0", "hmac-drbg": "^1.0.1", "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" } }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { "once": "^1.4.0" } }, "enhanced-resolve": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { "graceful-fs": "^4.1.2", "memory-fs": "^0.4.0", "tapable": "^1.0.0" } }, "enquirer": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.5.tgz", "integrity": "sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==", "dev": true, "requires": { "ansi-colors": "^3.2.1" }, "dependencies": { "ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true } } }, "errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { "prr": "~1.0.1" } }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" }, "dependencies": { "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true } } }, "es-abstract": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz", "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==", "dev": true, "requires": { "es-to-primitive": "^1.2.0", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.0", "is-callable": "^1.1.4", "is-regex": "^1.0.4", "object-inspect": "^1.6.0", "object-keys": "^1.1.1", "string.prototype.trimleft": "^2.0.0", "string.prototype.trimright": "^2.0.0" } }, "es-array-method-boxes-properly": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", "dev": true }, "es-get-iterator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz", "integrity": "sha512-UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==", "dev": true, "requires": { "es-abstract": "^1.17.4", "has-symbols": "^1.0.1", "is-arguments": "^1.0.4", "is-map": "^2.0.1", "is-set": "^2.0.1", "is-string": "^1.0.5", "isarray": "^2.0.5" }, "dependencies": { "es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.0", "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, "is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true }, "is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "requires": { "has-symbols": "^1.0.1" } }, "isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true } } }, "es-to-primitive": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, "es6-object-assign": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", "dev": true }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "eslint": { "version": "7.8.1", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.8.1.tgz", "integrity": "sha512-/2rX2pfhyUG0y+A123d0ccXtMm7DV7sH1m3lk9nk2DZ2LReq39FXHueR9xZwshE5MdfSf0xunSaMWRqyIA6M1w==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "@eslint/eslintrc": "^0.1.3", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "enquirer": "^2.3.5", "eslint-scope": "^5.1.0", "eslint-utils": "^2.1.0", "eslint-visitor-keys": "^1.3.0", "espree": "^7.3.0", "esquery": "^1.2.0", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash": "^4.17.19", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", "regexpp": "^3.1.0", "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { "ajv": { "version": "6.12.4", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "esquery": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { "estraverse": "^5.1.0" } }, "estraverse": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "eslint-plugin-jasmine": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jasmine/-/eslint-plugin-jasmine-2.10.1.tgz", "integrity": "sha1-VzO3CedR9LxA4x4cFpib0s377Jc=", "dev": true }, "eslint-scope": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", "dev": true, "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" } }, "eslint-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true }, "espree": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz", "integrity": "sha512-dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==", "dev": true, "requires": { "acorn": "^7.4.0", "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.3.0" }, "dependencies": { "acorn": { "version": "7.4.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", "dev": true } } }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", "dev": true } } }, "esrecurse": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { "estraverse": "^4.1.0" } }, "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "estree-walker": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.2.1.tgz", "integrity": "sha1-va/oCVOD2EFNXcLs9MkXO225QS4=", "dev": true }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, "event-stream": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", "dev": true, "requires": { "duplexer": "~0.1.1", "from": "~0", "map-stream": "~0.1.0", "pause-stream": "0.0.11", "split": "0.3", "stream-combiner": "~0.0.4", "through": "~2.3.1" } }, "events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==", "dev": true }, "evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" } }, "execa": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.2.tgz", "integrity": "sha512-QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q==", "dev": true, "requires": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.0", "onetime": "^5.1.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" }, "dependencies": { "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "onetime": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "posix-character-classes": "^0.1.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "^2.0.4" } } } }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" } }, "extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", "expand-brackets": "^2.1.4", "extend-shallow": "^2.0.1", "fragment-cache": "^0.2.1", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "fast-deep-equal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, "fast-glob": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", "micromatch": "^4.0.4" }, "dependencies": { "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { "fill-range": "^7.0.1" } }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.2.3" } }, "picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" } } } }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fastq": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz", "integrity": "sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==", "dev": true, "requires": { "reusify": "^1.0.4" } }, "figgy-pudding": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, "file-entry-cache": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { "flat-cache": "^2.0.1" } }, "file-type": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", "dev": true }, "file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, "optional": true }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", "repeat-string": "^1.6.1", "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "find-cache-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "dev": true, "requires": { "commondir": "^1.0.1", "make-dir": "^2.0.0", "pkg-dir": "^3.0.0" } }, "find-parent-dir": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/find-parent-dir/-/find-parent-dir-0.3.0.tgz", "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", "dev": true }, "find-up": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { "locate-path": "^3.0.0" } }, "find-versions": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", "dev": true, "requires": { "semver-regex": "^2.0.0" }, "dependencies": { "semver-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", "dev": true } } }, "findup": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz", "integrity": "sha1-itkpozk7rGJ5V6fl3kYjsGsOLOs=", "dev": true, "requires": { "colors": "~0.6.0-1", "commander": "~2.1.0" }, "dependencies": { "colors": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", "integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w=", "dev": true }, "commander": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz", "integrity": "sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=", "dev": true } } }, "flat": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz", "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", "dev": true, "requires": { "is-buffer": "~2.0.3" }, "dependencies": { "is-buffer": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", "dev": true } } }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { "flatted": "^2.0.0", "rimraf": "2.6.3", "write": "1.0.3" } }, "flatted": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", "dev": true }, "flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "dev": true, "requires": { "inherits": "^2.0.3", "readable-stream": "^2.3.6" } }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "form-data": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", "integrity": "sha512-CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==", "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "mime-types": "^2.1.12" } }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { "map-cache": "^0.2.2" } }, "from": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", "dev": true }, "from2": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" } }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { "graceful-fs": "^4.1.2", "iferr": "^0.1.5", "imurmurhash": "^0.1.4", "readable-stream": "1 || 2" } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "fsevents": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", "dev": true, "optional": true }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, "get-func-name": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, "get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", "dev": true }, "get-stdin": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=", "dev": true }, "get-stream": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", "dev": true, "requires": { "pump": "^3.0.0" } }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", "dev": true }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, "global-dirs": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { "ini": "^1.3.4" } }, "globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "requires": { "type-fest": "^0.8.1" }, "dependencies": { "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } } }, "globby": { "version": "11.0.4", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.1.1", "ignore": "^5.1.4", "merge2": "^1.3.0", "slash": "^3.0.0" }, "dependencies": { "ignore": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true } } }, "google-closure-compiler-js": { "version": "20170218.0.0", "resolved": "https://registry.npmjs.org/google-closure-compiler-js/-/google-closure-compiler-js-20170218.0.0.tgz", "integrity": "sha1-MWNwGcFfsU49SR7GY+5ASh0z2hQ=", "dev": true, "requires": { "minimist": "^1.2.0", "vinyl": "^2.0.1", "webpack-core": "^0.6.8" } }, "got": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { "create-error-class": "^3.0.0", "duplexer3": "^0.1.4", "get-stream": "^3.0.0", "is-redirect": "^1.0.0", "is-retry-allowed": "^1.0.0", "is-stream": "^1.0.0", "lowercase-keys": "^1.0.0", "safe-buffer": "^5.0.1", "timed-out": "^4.0.0", "unzip-response": "^2.0.1", "url-parse-lax": "^1.0.0" }, "dependencies": { "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true } } }, "graceful-fs": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", "dev": true }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "handlebars": { "version": "4.7.7", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", "dev": true, "requires": { "minimist": "^1.2.5", "neo-async": "^2.6.0", "source-map": "^0.6.1", "uglify-js": "^3.1.4", "wordwrap": "^1.0.0" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { "function-bind": "^1.1.1" } }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "has-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "dev": true }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" } }, "has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "hash-base": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, "hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, "requires": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" } }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, "human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", "dev": true }, "husky": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/husky/-/husky-4.2.5.tgz", "integrity": "sha512-SYZ95AjKcX7goYVZtVZF2i6XiZcHknw50iXvY7b0MiGoj5RwdgRQNEHdb+gPDPCXKlzwrybjFjkL6FOj8uRhZQ==", "dev": true, "requires": { "chalk": "^4.0.0", "ci-info": "^2.0.0", "compare-versions": "^3.6.0", "cosmiconfig": "^6.0.0", "find-versions": "^3.2.0", "opencollective-postinstall": "^2.0.2", "pkg-dir": "^4.2.0", "please-upgrade-node": "^3.2.0", "slash": "^3.0.0", "which-pm-runs": "^1.0.0" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { "p-locate": "^4.1.0" } }, "p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { "p-limit": "^2.2.0" } }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { "find-up": "^4.0.0" } }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true }, "iferr": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "dev": true }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=", "dev": true }, "import-fresh": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "dependencies": { "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true } } }, "import-lazy": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", "dev": true }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, "infer-owner": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, "inquirer": { "version": "7.3.3", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.19", "mute-stream": "0.0.8", "run-async": "^2.4.0", "rxjs": "^6.6.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { "ansi-escapes": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { "type-fest": "^0.11.0" } }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { "restore-cursor": "^3.1.0" } }, "cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", "dev": true }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true }, "rxjs": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", "dev": true, "requires": { "tslib": "^1.9.0" }, "dependencies": { "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", "dev": true }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "is-arguments": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", "dev": true }, "is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "optional": true, "requires": { "binary-extensions": "^2.0.0" } }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-callable": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", "dev": true }, "is-ci": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", "dev": true, "requires": { "ci-info": "^1.5.0" }, "dependencies": { "ci-info": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", "dev": true } } }, "is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "dev": true }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", "dev": true } } }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-finite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-installed-globally": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { "global-dirs": "^0.1.0", "is-path-inside": "^1.0.0" } }, "is-interactive": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true }, "is-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz", "integrity": "sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==", "dev": true }, "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", "dev": true }, "is-npm": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz", "integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=", "dev": true }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", "dev": true }, "is-path-inside": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { "path-is-inside": "^1.0.1" } }, "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true }, "is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "^3.0.1" } }, "is-redirect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz", "integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=", "dev": true }, "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { "has": "^1.0.1" } }, "is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", "dev": true }, "is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==", "dev": true }, "is-set": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz", "integrity": "sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==", "dev": true }, "is-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true }, "is-string": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", "dev": true }, "is-symbol": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "requires": { "has-symbols": "^1.0.0" } }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true }, "is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", "dev": true }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "iterate-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz", "integrity": "sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==", "dev": true }, "iterate-value": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz", "integrity": "sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==", "dev": true, "requires": { "es-get-iterator": "^1.0.2", "iterate-iterator": "^1.0.1" } }, "jest-worker": { "version": "26.3.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz", "integrity": "sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==", "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^7.0.0" }, "dependencies": { "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json5": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "dev": true, "requires": { "minimist": "^1.2.0" } }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { "graceful-fs": "^4.1.6" } }, "just-extend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz", "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==", "dev": true }, "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, "klaw-sync": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-3.0.2.tgz", "integrity": "sha512-32bw9y2nKrnpX2LsJnDTBO2TSdOKPbXfQAWl7Lupcc3D0iKkzI/sQDEw1GjkOuTqZEhe+bVxKSlhSRLxyeytcw==", "dev": true, "requires": { "graceful-fs": "^4.1.11" } }, "latest-version": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { "package-json": "^4.0.0" } }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, "lint-staged": { "version": "10.2.11", "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.2.11.tgz", "integrity": "sha512-LRRrSogzbixYaZItE2APaS4l2eJMjjf5MbclRZpLJtcQJShcvUzKXsNeZgsLIZ0H0+fg2tL4B59fU9wHIHtFIA==", "dev": true, "requires": { "chalk": "^4.0.0", "cli-truncate": "2.1.0", "commander": "^5.1.0", "cosmiconfig": "^6.0.0", "debug": "^4.1.1", "dedent": "^0.7.0", "enquirer": "^2.3.5", "execa": "^4.0.1", "listr2": "^2.1.0", "log-symbols": "^4.0.0", "micromatch": "^4.0.2", "normalize-path": "^3.0.0", "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", "stringify-object": "^3.3.0" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { "fill-range": "^7.0.1" } }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "commander": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.0.5" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" } } } }, "listr2": { "version": "2.1.9", "resolved": "https://registry.npmjs.org/listr2/-/listr2-2.1.9.tgz", "integrity": "sha512-29IJuXMIDV6GYAW3SGfRl56EInP2Hr7gk4GNUPjUFkSq6jpKHqr5OpH3z8r6yj0XvHBIkhFSE14ytFoBLBfCLA==", "dev": true, "requires": { "chalk": "^4.0.0", "cli-truncate": "^2.1.0", "figures": "^3.2.0", "indent-string": "^4.0.0", "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.5.5", "through": "^2.3.8" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, "rxjs": { "version": "6.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" }, "dependencies": { "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^4.0.0", "pify": "^3.0.0", "strip-bom": "^3.0.0" } }, "loader-runner": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", "dev": true }, "loader-utils": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^2.0.0", "json5": "^1.0.1" } }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" } }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "lodash.get": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, "lodash.map": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", "dev": true }, "log-symbols": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", "dev": true, "requires": { "chalk": "^4.0.0" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "log-update": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, "requires": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", "slice-ansi": "^4.0.0", "wrap-ansi": "^6.2.0" }, "dependencies": { "ansi-escapes": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { "type-fest": "^0.11.0" } }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { "restore-cursor": "^3.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "onetime": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } }, "wrap-ansi": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } } } }, "lolex": { "version": "2.7.5", "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz", "integrity": "sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==", "dev": true }, "loud-rejection": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" } }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true }, "lru-cache": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" } }, "magic-string": { "version": "0.16.0", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.16.0.tgz", "integrity": "sha1-lw67DacZMwEoX7GqZQ85vdgetFo=", "dev": true, "requires": { "vlq": "^0.2.1" } }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "requires": { "pify": "^4.0.1", "semver": "^5.6.0" }, "dependencies": { "pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "mamacro": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", "dev": true }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, "map-stream": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", "dev": true }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { "object-visit": "^1.0.0" } }, "md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, "memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { "errno": "^0.1.3", "readable-stream": "^2.0.1" } }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", "dev": true }, "meow": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { "camelcase-keys": "^2.0.0", "decamelize": "^1.1.2", "loud-rejection": "^1.0.0", "map-obj": "^1.0.1", "minimist": "^1.1.3", "normalize-package-data": "^2.3.4", "object-assign": "^4.0.1", "read-pkg-up": "^1.0.1", "redent": "^1.0.0", "trim-newlines": "^1.0.0" } }, "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, "merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "braces": "^2.3.1", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "extglob": "^2.0.4", "fragment-cache": "^0.2.1", "kind-of": "^6.0.2", "nanomatch": "^1.2.9", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.2" } }, "miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { "bn.js": "^4.0.0", "brorand": "^1.0.1" } }, "mime-db": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", "dev": true }, "mime-types": { "version": "2.1.27", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", "dev": true, "requires": { "mime-db": "1.44.0" } }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", "dev": true }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "mississippi": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "dev": true, "requires": { "concat-stream": "^1.5.0", "duplexify": "^3.4.2", "end-of-stream": "^1.1.0", "flush-write-stream": "^1.0.0", "from2": "^2.1.0", "parallel-transform": "^1.1.0", "pump": "^3.0.0", "pumpify": "^1.3.3", "stream-each": "^1.1.0", "through2": "^2.0.0" } }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { "is-plain-object": "^2.0.4" } } } }, "mocha": { "version": "8.1.3", "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz", "integrity": "sha512-ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==", "dev": true, "requires": { "ansi-colors": "4.1.1", "browser-stdout": "1.3.1", "chokidar": "3.4.2", "debug": "4.1.1", "diff": "4.0.2", "escape-string-regexp": "4.0.0", "find-up": "5.0.0", "glob": "7.1.6", "growl": "1.10.5", "he": "1.2.0", "js-yaml": "3.14.0", "log-symbols": "4.0.0", "minimatch": "3.0.4", "ms": "2.1.2", "object.assign": "4.1.0", "promise.allsettled": "1.0.2", "serialize-javascript": "4.0.0", "strip-json-comments": "3.0.1", "supports-color": "7.1.0", "which": "2.0.2", "wide-align": "1.1.3", "workerpool": "6.0.0", "yargs": "13.3.2", "yargs-parser": "13.1.2", "yargs-unparser": "1.6.1" }, "dependencies": { "anymatch": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" } }, "binary-extensions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { "fill-range": "^7.0.1" } }, "chokidar": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz", "integrity": "sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==", "dev": true, "requires": { "anymatch": "~3.1.1", "braces": "~3.0.2", "fsevents": "~2.1.2", "glob-parent": "~5.1.0", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.4.0" } }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "fsevents": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", "dev": true, "optional": true }, "glob": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { "binary-extensions": "^2.0.0" } }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "js-yaml": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { "p-locate": "^5.0.0" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "p-limit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { "p-limit": "^3.0.2" } }, "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "readdirp": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", "dev": true, "requires": { "picomatch": "^2.2.1" } }, "serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, "requires": { "randombytes": "^2.1.0" } }, "strip-json-comments": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", "integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==", "dev": true }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" } }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "move-concurrently": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { "aproba": "^1.1.1", "copy-concurrently": "^1.0.0", "fs-write-stream-atomic": "^1.0.8", "mkdirp": "^0.5.1", "rimraf": "^2.5.4", "run-queue": "^1.0.3" }, "dependencies": { "mkdirp": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "dev": true, "requires": { "minimist": "^1.2.5" }, "dependencies": { "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } } } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "nan": { "version": "2.14.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", "dev": true, "optional": true }, "nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "fragment-cache": "^0.2.1", "is-windows": "^1.0.2", "kind-of": "^6.0.2", "object.pick": "^1.3.0", "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" } }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "neo-async": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz", "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true }, "nise": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/nise/-/nise-1.5.2.tgz", "integrity": "sha512-/6RhOUlicRCbE9s+94qCUsyE+pKlVJ5AhIv+jEE7ESKwnbXqulKZ1FYU+XAtHHWE9TinYvAxDUJAb912PwPoWA==", "dev": true, "requires": { "@sinonjs/formatio": "^3.2.1", "@sinonjs/text-encoding": "^0.7.1", "just-extend": "^4.0.2", "lolex": "^4.1.0", "path-to-regexp": "^1.7.0" }, "dependencies": { "@sinonjs/formatio": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.1.tgz", "integrity": "sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ==", "dev": true, "requires": { "@sinonjs/commons": "^1", "@sinonjs/samsam": "^3.1.0" } }, "lolex": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.2.0.tgz", "integrity": "sha512-gKO5uExCXvSm6zbF562EvM+rd1kQDnB9AZBbiQVzf1ZmdDpxUSvpnAaVOP83N/31mRK8Ml8/VE8DMvsAZQ+7wg==", "dev": true } } }, "node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "dev": true, "requires": { "assert": "^1.1.1", "browserify-zlib": "^0.2.0", "buffer": "^4.3.0", "console-browserify": "^1.1.0", "constants-browserify": "^1.0.0", "crypto-browserify": "^3.11.0", "domain-browser": "^1.1.1", "events": "^3.0.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", "path-browserify": "0.0.1", "process": "^0.11.10", "punycode": "^1.2.4", "querystring-es3": "^0.2.0", "readable-stream": "^2.3.3", "stream-browserify": "^2.0.1", "stream-http": "^2.7.2", "string_decoder": "^1.0.0", "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", "url": "^0.11.0", "util": "^0.11.0", "vm-browserify": "^1.0.1" }, "dependencies": { "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true } } }, "nodemon": { "version": "1.19.4", "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.19.4.tgz", "integrity": "sha512-VGPaqQBNk193lrJFotBU8nvWZPqEZY2eIzymy2jjY0fJ9qIsxA0sxQ8ATPl0gZC645gijYEc1jtZvpS8QWzJGQ==", "dev": true, "requires": { "chokidar": "^2.1.8", "debug": "^3.2.6", "ignore-by-default": "^1.0.1", "minimatch": "^3.0.4", "pstree.remy": "^1.1.7", "semver": "^5.7.1", "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.2", "update-notifier": "^2.5.0" }, "dependencies": { "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" }, "dependencies": { "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" } } } }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, "chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", "is-glob": "^4.0.0", "normalize-path": "^3.0.0", "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" } }, "debug": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "requires": { "ms": "^2.1.1" } }, "fsevents": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, "optional": true, "requires": { "bindings": "^1.5.0", "nan": "^2.12.1" } }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { "is-extglob": "^2.1.0" } } } }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { "binary-extensions": "^1.0.0" } }, "ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "readdirp": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "requires": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" } }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "nopt": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", "dev": true, "requires": { "abbrev": "1" } }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" }, "dependencies": { "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, "npm-run-all": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.2.tgz", "integrity": "sha512-Z2aRlajMK4SQ8u19ZA75NZZu7wupfCNQWdYosIi8S6FgBdGf/8Y6Hgyjdc8zU2cYmIRVCx1nM80tJPkdEd+UYg==", "dev": true, "requires": { "ansi-styles": "^3.2.0", "chalk": "^2.1.0", "cross-spawn": "^5.1.0", "memorystream": "^0.3.1", "minimatch": "^3.0.4", "ps-tree": "^1.1.0", "read-pkg": "^3.0.0", "shell-quote": "^1.6.1", "string.prototype.padend": "^3.0.0" } }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { "path-key": "^3.0.0" } }, "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, "object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "object-inspect": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", "dev": true }, "object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { "isobject": "^3.0.0" } }, "object.assign": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { "define-properties": "^1.1.2", "function-bind": "^1.1.1", "has-symbols": "^1.0.0", "object-keys": "^1.0.11" } }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { "isobject": "^3.0.1" } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" } }, "onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "opencollective-postinstall": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", "dev": true }, "opn": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", "dev": true, "requires": { "object-assign": "^4.0.1", "pinkie-promise": "^2.0.0" } }, "opn-cli": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/opn-cli/-/opn-cli-3.1.0.tgz", "integrity": "sha1-+BmubK4LQRvQFJuFYP5siK2tIPg=", "dev": true, "requires": { "file-type": "^3.6.0", "get-stdin": "^5.0.1", "meow": "^3.7.0", "opn": "^4.0.0", "temp-write": "^2.1.0" } }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.3" } }, "ora": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz", "integrity": "sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==", "dev": true, "requires": { "chalk": "^4.1.0", "cli-cursor": "^3.1.0", "cli-spinners": "^2.4.0", "is-interactive": "^1.0.0", "log-symbols": "^4.0.0", "mute-stream": "0.0.8", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" }, "dependencies": { "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, "p-limit": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", "dev": true, "requires": { "p-try": "^2.0.0" } }, "p-locate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { "p-limit": "^2.0.0" } }, "p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "requires": { "aggregate-error": "^3.0.0" } }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, "package-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { "got": "^6.7.1", "registry-auth-token": "^3.0.1", "registry-url": "^3.0.3", "semver": "^5.1.0" }, "dependencies": { "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "pad-right": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz", "integrity": "sha1-b7ySQEXSRPKiokRQMGDTv8YAl3Q=", "dev": true, "requires": { "repeat-string": "^1.5.2" } }, "pako": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", "dev": true }, "parallel-transform": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "dev": true, "requires": { "cyclist": "~0.2.2", "inherits": "^2.0.3", "readable-stream": "^2.1.5" } }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { "callsites": "^3.0.0" }, "dependencies": { "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true } } }, "parse-asn1": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", "dev": true, "requires": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", "pbkdf2": "^3.0.3", "safe-buffer": "^5.1.1" } }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1" } }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", "dev": true }, "path-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", "dev": true }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, "path-to-regexp": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", "dev": true, "requires": { "isarray": "0.0.1" }, "dependencies": { "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", "dev": true } } }, "path-type": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { "pify": "^3.0.0" } }, "pathval": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", "dev": true }, "pause-stream": { "version": "0.0.11", "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "requires": { "through": "~2.3" } }, "pbkdf2": { "version": "3.0.17", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "dev": true, "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", "ripemd160": "^2.0.1", "safe-buffer": "^5.0.1", "sha.js": "^2.4.8" } }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "dev": true }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { "pinkie": "^2.0.0" } }, "pkg-dir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "dev": true, "requires": { "find-up": "^3.0.0" } }, "platform": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz", "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q==", "dev": true }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", "dev": true, "requires": { "semver-compare": "^1.0.0" } }, "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", "dev": true }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", "dev": true }, "prettier": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz", "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==", "dev": true }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", "dev": true }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "promise": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.1.tgz", "integrity": "sha1-5F1osAoXZHttpxG/he1u1HII9FA=", "dev": true, "requires": { "asap": "~2.0.3" } }, "promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, "promise.allsettled": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz", "integrity": "sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==", "dev": true, "requires": { "array.prototype.map": "^1.0.1", "define-properties": "^1.1.3", "es-abstract": "^1.17.0-next.1", "function-bind": "^1.1.1", "iterate-value": "^1.0.0" }, "dependencies": { "es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.0", "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, "is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true }, "is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "requires": { "has-symbols": "^1.0.1" } }, "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true } } }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, "ps-tree": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz", "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==", "dev": true, "requires": { "event-stream": "=3.3.4" } }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, "pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", "dev": true }, "public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "parse-asn1": "^5.0.0", "randombytes": "^2.0.1", "safe-buffer": "^5.1.2" } }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "pumpify": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { "duplexify": "^3.6.0", "inherits": "^2.0.3", "pump": "^2.0.0" }, "dependencies": { "pump": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } } } }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "dev": true }, "querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", "dev": true }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { "safe-buffer": "^5.1.0" } }, "randomfill": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" } }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { "deep-extend": "^0.6.0", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" }, "dependencies": { "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true } } }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { "load-json-file": "^4.0.0", "normalize-package-data": "^2.3.2", "path-type": "^3.0.0" } }, "read-pkg-up": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" } }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", "pify": "^2.0.0", "pinkie-promise": "^2.0.0", "strip-bom": "^2.0.0" } }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { "error-ex": "^1.2.0" } }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { "pinkie-promise": "^2.0.0" } }, "path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", "pinkie-promise": "^2.0.0" } }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", "path-type": "^1.0.0" } }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { "is-utf8": "^0.2.0" } } } }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "readdirp": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "optional": true, "requires": { "picomatch": "^2.2.1" } }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { "resolve": "^1.1.6" } }, "redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { "indent-string": "^2.1.0", "strip-indent": "^1.0.1" }, "dependencies": { "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { "repeating": "^2.0.0" } } } }, "regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", "dev": true }, "regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" } }, "regexp-tree": { "version": "0.1.21", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.21.tgz", "integrity": "sha512-kUUXjX4AnqnR8KRTCrayAo9PzYMRKmVoGgaz2tBuz0MF3g1ZbGebmtW0yFHfFK9CmBjQKeYIgoL22pFLBJY7sw==", "dev": true }, "regexpp": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, "registry-auth-token": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", "dev": true, "requires": { "rc": "^1.1.6", "safe-buffer": "^5.0.1" } }, "registry-url": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz", "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { "rc": "^1.0.1" } }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { "is-finite": "^1.0.0" } }, "replace-ext": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", "dev": true }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", "dev": true }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, "resolve": { "version": "1.12.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", "dev": true, "requires": { "path-parse": "^1.0.6" } }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", "dev": true }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, "right-pad": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz", "integrity": "sha1-jKCMLLtbVedNr6lr9/0aJ9VoyNA=", "dev": true }, "rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { "glob": "^7.1.3" }, "dependencies": { "glob": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } } } }, "ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "requires": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, "rollup": { "version": "0.66.6", "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.66.6.tgz", "integrity": "sha512-J7/SWanrcb83vfIHqa8+aVVGzy457GcjA6GVZEnD0x2u4OnOd0Q1pCrEoNe8yLwM6z6LZP02zBT2uW0yh5TqOw==", "dev": true, "requires": { "@types/estree": "0.0.39", "@types/node": "*" } }, "rollup-plugin-alias": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/rollup-plugin-alias/-/rollup-plugin-alias-1.4.0.tgz", "integrity": "sha512-lB094zdi19FS+1bVarVp9kBN0Zk41PdTGoCk0z8xesKO7RGjOo18cp1hUzEqrOQ4bM9+KLD9nbnu/XUxQm9pbg==", "dev": true, "requires": { "slash": "^1.0.0" } }, "rollup-plugin-inject": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-2.0.0.tgz", "integrity": "sha1-iTTZilsNstBe/O4qwGoXCkxwsEQ=", "dev": true, "requires": { "acorn": "^4.0.3", "estree-walker": "^0.2.0", "magic-string": "^0.16.0", "rollup-pluginutils": "^1.2.0" }, "dependencies": { "acorn": { "version": "4.0.13", "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", "dev": true } } }, "rollup-plugin-node-resolve": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-2.0.0.tgz", "integrity": "sha1-B+CulKwAKj6jbo8zyhIdn4NrEwk=", "dev": true, "requires": { "browser-resolve": "^1.11.0", "builtin-modules": "^1.1.0", "resolve": "^1.1.6" }, "dependencies": { "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true } } }, "rollup-plugin-terser": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", "dev": true, "requires": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", "serialize-javascript": "^4.0.0", "terser": "^5.0.0" }, "dependencies": { "@babel/code-frame": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", "dev": true }, "@babel/highlight": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } } } }, "rollup-pluginutils": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz", "integrity": "sha1-HhVud4+UtyVb+hs9AXi+j1xVJAg=", "dev": true, "requires": { "estree-walker": "^0.2.1", "minimatch": "^3.0.2" } }, "run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "requires": { "queue-microtask": "^1.2.2" } }, "run-queue": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { "aproba": "^1.1.1" } }, "rxjs": { "version": "6.6.3", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", "dev": true, "requires": { "tslib": "^1.9.0" }, "dependencies": { "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { "ret": "~0.1.10" } }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "samsam": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz", "integrity": "sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg==", "dev": true }, "schema-utils": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "dev": true, "requires": { "ajv": "^6.1.0", "ajv-errors": "^1.0.0", "ajv-keywords": "^3.1.0" } }, "semver": { "version": "7.3.5", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", "dev": true, "requires": { "lru-cache": "^6.0.0" }, "dependencies": { "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { "yallist": "^4.0.0" } }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } }, "semver-compare": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", "dev": true }, "semver-diff": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { "semver": "^5.0.3" }, "dependencies": { "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, "semver-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-1.0.0.tgz", "integrity": "sha1-kqSWkGX5xwxpR1PVUkj8aPj2Usk=", "dev": true }, "semver-try-require": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/semver-try-require/-/semver-try-require-4.0.1.tgz", "integrity": "sha512-XAsSrle6ADYwLqet5/OU6v2srIw9wNsAYJ8GNiWsFu6etwWaxTCzC3ILVSC1rFtunk8N4NkAsUmXu0zpZ0f2EA==", "dev": true, "requires": { "semver": "7.3.4" }, "dependencies": { "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { "yallist": "^4.0.0" } }, "semver": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", "dev": true, "requires": { "lru-cache": "^6.0.0" } }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true } } }, "serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, "requires": { "randombytes": "^2.1.0" } }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", "dev": true }, "sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, "shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { "shebang-regex": "^1.0.0" } }, "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, "shell-quote": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", "dev": true }, "shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", "dev": true, "requires": { "glob": "^7.0.0", "interpret": "^1.0.0", "rechoir": "^0.6.2" } }, "shx": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.2.tgz", "integrity": "sha512-aS0mWtW3T2sHAenrSrip2XGv39O9dXIFUqxAEWHEOS1ePtGIBavdPJY1kE2IHl14V/4iCbUiNDPGdyYTtmhSoA==", "dev": true, "requires": { "es6-object-assign": "^1.0.3", "minimist": "^1.2.0", "shelljs": "^0.8.1" } }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "dev": true, "requires": { "is-arrayish": "^0.3.1" } }, "sinon": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/sinon/-/sinon-4.3.0.tgz", "integrity": "sha512-pmf05hFgEZUS52AGJcsVjOjqAyJW2yo14cOwVYvzCyw7+inv06YXkLyW75WG6X6p951lzkoKh51L2sNbR9CDvw==", "dev": true, "requires": { "@sinonjs/formatio": "^2.0.0", "diff": "^3.1.0", "lodash.get": "^4.4.2", "lolex": "^2.2.0", "nise": "^1.2.0", "supports-color": "^5.1.0", "type-detect": "^4.0.5" } }, "sinon-chai": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/sinon-chai/-/sinon-chai-2.14.0.tgz", "integrity": "sha512-9stIF1utB0ywNHNT7RgiXbdmen8QDCRsrTjw+G9TgKt1Yexjiv8TOWZ6WHsTPz57Yky3DIswZvEqX8fpuHNDtQ==", "dev": true, "requires": {} }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", "dev": true }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true } } }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", "map-cache": "^0.2.2", "source-map": "^0.5.6", "source-map-resolve": "^0.5.0", "use": "^3.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } }, "extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { "is-extendable": "^0.1.0" } } } }, "snapdragon-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-data-descriptor": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { "kind-of": "^6.0.0" } }, "is-descriptor": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } } } }, "snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { "kind-of": "^3.2.0" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-resolve": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { "atob": "^2.1.1", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", "urix": "^0.1.0" } }, "source-map-support": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.3.tgz", "integrity": "sha512-eKkTgWYeBOQqFGXRfKabMFdnWepo51vWqEdoeikaEPFiJC7MCU5j2h4+6Q8npkZTeLGbSyecZvRxiSoWl3rh+w==", "dev": true, "requires": { "source-map": "^0.6.0" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, "sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, "spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", "dev": true }, "spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, "split": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", "dev": true, "requires": { "through": "2" } }, "split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { "extend-shallow": "^3.0.0" } }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "ssri": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", "dev": true, "requires": { "figgy-pudding": "^3.5.1" } }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" }, "dependencies": { "define-property": { "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { "is-descriptor": "^0.1.0" } } } }, "stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "dev": true, "requires": { "inherits": "~2.0.1", "readable-stream": "^2.0.2" } }, "stream-combiner": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", "dev": true, "requires": { "duplexer": "~0.1.1" } }, "stream-each": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "dev": true, "requires": { "end-of-stream": "^1.1.0", "stream-shift": "^1.0.0" } }, "stream-http": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "requires": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.1", "readable-stream": "^2.3.6", "to-arraybuffer": "^1.0.0", "xtend": "^4.0.0" } }, "stream-shift": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", "dev": true }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { "safe-buffer": "~5.1.0" } }, "string-argv": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true }, "string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" }, "dependencies": { "strip-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { "ansi-regex": "^3.0.0" } } } }, "string.prototype.padend": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz", "integrity": "sha1-86rvfBcZ8XDF6rHDK/eA2W4h8vA=", "dev": true, "requires": { "define-properties": "^1.1.2", "es-abstract": "^1.4.3", "function-bind": "^1.0.2" } }, "string.prototype.trimend": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz", "integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==", "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" }, "dependencies": { "es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.0", "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, "is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true }, "is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "requires": { "has-symbols": "^1.0.1" } }, "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true } } }, "string.prototype.trimleft": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz", "integrity": "sha1-aLaqjhYsaoDnbjqKDC50cYbicf8=", "dev": true, "requires": { "define-properties": "^1.1.2", "function-bind": "^1.0.2" } }, "string.prototype.trimright": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz", "integrity": "sha1-q0pW2AKgH75yk+EehPJNyBZGYd0=", "dev": true, "requires": { "define-properties": "^1.1.2", "function-bind": "^1.0.2" } }, "string.prototype.trimstart": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", "integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==", "dev": true, "requires": { "define-properties": "^1.1.3", "es-abstract": "^1.17.5" }, "dependencies": { "es-abstract": { "version": "1.17.6", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz", "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==", "dev": true, "requires": { "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.0", "is-regex": "^1.1.0", "object-inspect": "^1.7.0", "object-keys": "^1.1.1", "object.assign": "^4.1.0", "string.prototype.trimend": "^1.0.1", "string.prototype.trimstart": "^1.0.1" } }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" } }, "has-symbols": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, "is-callable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==", "dev": true }, "is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", "dev": true, "requires": { "has-symbols": "^1.0.1" } }, "object-inspect": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", "dev": true } } }, "stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, "requires": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", "is-regexp": "^1.0.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true } } }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", "dev": true }, "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, "strip-indent": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { "get-stdin": "^4.0.1" }, "dependencies": { "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", "dev": true } } }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, "systemjs": { "version": "0.21.6", "resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.21.6.tgz", "integrity": "sha512-R+5S9eV9vcQgWOoS4D87joZ4xkFJHb19ZsyKY07D1+VBDE9bwYcU+KXE0r5XlDA8mFoJGyuWDbfrNoh90JsA8g==", "dev": true }, "table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { "ajv": "^6.10.2", "lodash": "^4.17.14", "slice-ansi": "^2.1.0", "string-width": "^3.0.0" }, "dependencies": { "ajv": { "version": "6.12.4", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } } } }, "tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true }, "teamcity-service-messages": { "version": "0.1.11", "resolved": "https://registry.npmjs.org/teamcity-service-messages/-/teamcity-service-messages-0.1.11.tgz", "integrity": "sha512-C1olucTOnOMocG1gcDquHugZC4RHrVNvjPX/ZEZfjbo9DYALqUEBGHpmgigX/KA37E2dSopA9JB6Tfj07QV4YA==", "dev": true }, "temp-write": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/temp-write/-/temp-write-2.1.0.tgz", "integrity": "sha1-WYkJGODvCdVIqqNC9L00CdhATpY=", "dev": true, "requires": { "graceful-fs": "^4.1.2", "mkdirp": "^0.5.0", "os-tmpdir": "^1.0.0", "pify": "^2.2.0", "pinkie-promise": "^2.0.0", "uuid": "^2.0.1" }, "dependencies": { "mkdirp": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "dev": true, "requires": { "minimist": "^1.2.5" }, "dependencies": { "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", "dev": true } } }, "term-size": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { "execa": "^0.7.0" }, "dependencies": { "execa": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", "dev": true, "requires": { "cross-spawn": "^5.0.1", "get-stream": "^3.0.0", "is-stream": "^1.1.0", "npm-run-path": "^2.0.0", "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" } }, "get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { "path-key": "^2.0.0" } }, "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true } } }, "terser": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.0.tgz", "integrity": "sha512-XTT3D3AwxC54KywJijmY2mxZ8nJiEjBHVYzq8l9OaYuRFWeQNBwvipuzzYEP4e+/AVcd1hqG/CqgsdIRyT45Fg==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.6.1", "source-map-support": "~0.5.12" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } } } }, "terser-webpack-plugin": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", "dev": true, "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", "serialize-javascript": "^4.0.0", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", "worker-farm": "^1.7.0" }, "dependencies": { "serialize-javascript": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, "requires": { "randombytes": "^2.1.0" } }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, "terser": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", "dev": true, "requires": { "commander": "^2.20.0", "source-map": "~0.6.1", "source-map-support": "~0.5.12" } } } }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", "dev": true }, "timers-browserify": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", "dev": true, "requires": { "setimmediate": "^1.0.4" } }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, "to-arraybuffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } } } }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" } }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" } }, "touch": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", "dev": true, "requires": { "nopt": "~1.0.10" } }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", "dev": true }, "ts-api-guardian": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/ts-api-guardian/-/ts-api-guardian-0.5.0.tgz", "integrity": "sha512-BjVlb23FUqWU+wmdHkLdaHcllU+v/Cca26sY40bCkM15BCF2yc17daOm+UXyvxQ9NndPM/40m+X+GLyDkrE9tA==", "dev": true, "requires": { "chalk": "^2.3.1", "diff": "^3.5.0", "minimist": "^1.2.0" } }, "ts-node": { "version": "9.1.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", "dev": true, "requires": { "arg": "^4.1.0", "create-require": "^1.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "source-map-support": "^0.5.17", "yn": "3.1.1" }, "dependencies": { "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } } } }, "tsconfig-paths": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz", "integrity": "sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==", "dev": true, "requires": { "json5": "^2.2.0", "minimist": "^1.2.0", "strip-bom": "^3.0.0" }, "dependencies": { "json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, "requires": { "minimist": "^1.2.5" } } } }, "tsconfig-paths-webpack-plugin": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.5.1.tgz", "integrity": "sha512-n5CMlUUj+N5pjBhBACLq4jdr9cPTitySCjIosoQm0zwK99gmrcTGAfY9CwxRFT9+9OleNWXPRUcxsKP4AYExxQ==", "dev": true, "requires": { "chalk": "^4.1.0", "enhanced-resolve": "^5.7.0", "tsconfig-paths": "^3.9.0" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "enhanced-resolve": { "version": "5.8.2", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", "dev": true, "requires": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "tapable": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", "dev": true } } }, "tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "tslint": { "version": "5.20.1", "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", "chalk": "^2.3.0", "commander": "^2.12.1", "diff": "^4.0.1", "glob": "^7.1.1", "js-yaml": "^3.13.1", "minimatch": "^3.0.4", "mkdirp": "^0.5.1", "resolve": "^1.3.2", "semver": "^5.3.0", "tslib": "^1.8.0", "tsutils": "^2.29.0" }, "dependencies": { "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, "diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, "tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { "tslib": "^1.8.1" } } } }, "tslint-config-prettier": { "version": "1.18.0", "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz", "integrity": "sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==", "dev": true }, "tslint-etc": { "version": "1.13.10", "resolved": "https://registry.npmjs.org/tslint-etc/-/tslint-etc-1.13.10.tgz", "integrity": "sha512-6Rt6zaE9jw4iBkrnpVTlnbnjax/4LyTRrXkm/+nLuuJ6HQzZ/+TmHDAtA6C/VOkSqeOHRXCIen3B38hmIMlxow==", "dev": true, "requires": { "@phenomnomnominal/tsquery": "^4.0.0", "tslib": "^2.0.0", "tsutils": "^3.0.0", "tsutils-etc": "^1.0.0" } }, "tslint-no-toplevel-property-access": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/tslint-no-toplevel-property-access/-/tslint-no-toplevel-property-access-0.0.2.tgz", "integrity": "sha512-Oc+UUurlGLBkgeUSGxMoTpRUpaXsjqzQCEAYrYQyuU8330fi5FKlye5n53y87EJ24AlfdoxMPV7DJfFOADapfg==", "dev": true, "requires": {} }, "tslint-no-unused-expression-chai": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tslint-no-unused-expression-chai/-/tslint-no-unused-expression-chai-0.0.3.tgz", "integrity": "sha512-jKqhimj5gKl96ngeKxSVG1nOE7wmKRiHXD3kKpi+GG+5CmXJevD0ogsThZ8uSQCBIELFLVqXpZ43PpLniWu7jw==", "dev": true, "requires": { "tsutils": "^2.3.0" }, "dependencies": { "tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { "tslib": "^1.8.1" }, "dependencies": { "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } } } }, "tsutils": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, "requires": { "tslib": "^1.8.1" }, "dependencies": { "tslib": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, "tsutils-etc": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/tsutils-etc/-/tsutils-etc-1.3.4.tgz", "integrity": "sha512-GOQJeZgE0rFiok0CsOrvNgLrIG5LiVEYtSiPHZz0KFFlSR8q3qXMkGZ3hOvFpBvB++B7PVEMhjQQmAF3tSFLKA==", "dev": true, "requires": { "@types/yargs": "^17.0.0", "yargs": "^17.0.0" }, "dependencies": { "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "requires": { "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "wrap-ansi": "^7.0.0" } }, "color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" } }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } }, "wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true }, "yargs": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz", "integrity": "sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==", "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.0", "y18n": "^5.0.5", "yargs-parser": "^20.2.2" } }, "yargs-parser": { "version": "20.2.7", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", "dev": true } } }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { "prelude-ls": "^1.2.1" } }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true }, "type-fest": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", "dev": true }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, "typescript": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.4.tgz", "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", "dev": true }, "uglify-js": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", "dev": true, "optional": true, "requires": { "commander": "~2.20.0", "source-map": "~0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "optional": true } } }, "undefsafe": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz", "integrity": "sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==", "dev": true, "requires": { "debug": "^2.2.0" } }, "union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" } }, "unique-filename": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "dev": true, "requires": { "imurmurhash": "^0.1.4" } }, "unique-string": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { "crypto-random-string": "^1.0.0" } }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" }, "dependencies": { "has-value": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", "isobject": "^2.0.0" }, "dependencies": { "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" } } } }, "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true } } }, "unzip-response": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=", "dev": true }, "upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", "dev": true }, "update-notifier": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz", "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { "boxen": "^1.2.1", "chalk": "^2.0.1", "configstore": "^3.0.0", "import-lazy": "^2.1.0", "is-ci": "^1.0.10", "is-installed-globally": "^0.1.0", "is-npm": "^1.0.0", "latest-version": "^3.0.0", "semver-diff": "^2.0.0", "xdg-basedir": "^3.0.0" } }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { "punycode": "^2.1.0" } }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" }, "dependencies": { "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true } } }, "url-parse-lax": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { "prepend-http": "^1.0.1" } }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true }, "util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", "dev": true, "requires": { "inherits": "2.0.3" }, "dependencies": { "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true } } }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "uuid": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", "dev": true }, "v8-compile-cache": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", "dev": true }, "validate-commit-msg": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/validate-commit-msg/-/validate-commit-msg-2.14.0.tgz", "integrity": "sha1-5Tg2kQEsuycNzAvCpO/+vhSJDqw=", "dev": true, "requires": { "conventional-commit-types": "^2.0.0", "find-parent-dir": "^0.3.0", "findup": "0.1.5", "semver-regex": "1.0.0" } }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "vinyl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", "dev": true, "requires": { "clone": "^2.1.1", "clone-buffer": "^1.0.0", "clone-stats": "^1.0.0", "cloneable-readable": "^1.0.0", "remove-trailing-separator": "^1.0.1", "replace-ext": "^1.0.0" } }, "vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", "dev": true }, "vm-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", "dev": true }, "watchpack": { "version": "1.7.5", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", "dev": true, "requires": { "chokidar": "^3.4.1", "graceful-fs": "^4.1.2", "neo-async": "^2.5.0", "watchpack-chokidar2": "^2.0.1" } }, "watchpack-chokidar2": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", "dev": true, "optional": true, "requires": { "chokidar": "^2.1.8" }, "dependencies": { "anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "optional": true, "requires": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" }, "dependencies": { "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "optional": true, "requires": { "remove-trailing-separator": "^1.0.1" } } } }, "binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, "optional": true }, "chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "dev": true, "optional": true, "requires": { "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", "is-glob": "^4.0.0", "normalize-path": "^3.0.0", "path-is-absolute": "^1.0.0", "readdirp": "^2.2.1", "upath": "^1.1.1" } }, "fsevents": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", "dev": true, "optional": true, "requires": { "bindings": "^1.5.0", "nan": "^2.12.1" } }, "glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "optional": true, "requires": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "optional": true, "requires": { "is-extglob": "^2.1.0" } } } }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "optional": true, "requires": { "binary-extensions": "^1.0.0" } }, "readdirp": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, "optional": true, "requires": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" } } } }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", "dev": true, "requires": { "defaults": "^1.0.3" } }, "web-streams-polyfill": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.0.2.tgz", "integrity": "sha512-JTNkNbAKoSo8NKiqu2UUaqRFCDWWZaCOsXuJEsToWopikTA0YHKKUf91GNkS/SnD8JixOkJjVsiacNlrFnRECA==", "dev": true }, "webpack": { "version": "4.39.3", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.3.tgz", "integrity": "sha512-BXSI9M211JyCVc3JxHWDpze85CvjC842EvpRsVTc/d15YJGlox7GIDd38kJgWrb3ZluyvIjgenbLDMBQPDcxYQ==", "dev": true, "requires": { "@webassemblyjs/ast": "1.8.5", "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/wasm-edit": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", "acorn": "^6.2.1", "ajv": "^6.10.2", "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^4.1.0", "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", "loader-runner": "^2.4.0", "loader-utils": "^1.2.3", "memory-fs": "^0.4.1", "micromatch": "^3.1.10", "mkdirp": "^0.5.1", "neo-async": "^2.6.1", "node-libs-browser": "^2.2.1", "schema-utils": "^1.0.0", "tapable": "^1.1.3", "terser-webpack-plugin": "^1.4.1", "watchpack": "^1.6.0", "webpack-sources": "^1.4.1" }, "dependencies": { "ajv": { "version": "6.10.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { "fast-deep-equal": "^2.0.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "eslint-scope": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" } }, "mkdirp": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "dev": true, "requires": { "minimist": "^1.2.5" }, "dependencies": { "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true } } } } }, "webpack-core": { "version": "0.6.9", "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", "dev": true, "requires": { "source-list-map": "~0.1.7", "source-map": "~0.4.1" }, "dependencies": { "source-list-map": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", "dev": true }, "source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { "amdefine": ">=0.0.4" } } } }, "webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, "requires": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" } }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "which-pm-runs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz", "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=", "dev": true }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { "string-width": "^1.0.2 || 2" } }, "widest-line": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", "dev": true, "requires": { "string-width": "^2.1.1" } }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", "dev": true }, "worker-farm": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "dev": true, "requires": { "errno": "~0.1.7" } }, "workerpool": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz", "integrity": "sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==", "dev": true }, "wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, "requires": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" }, "dependencies": { "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } } } }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { "mkdirp": "^0.5.1" }, "dependencies": { "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { "minimist": "^1.2.5" } } } }, "write-file-atomic": { "version": "2.4.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", "dev": true, "requires": { "graceful-fs": "^4.1.11", "imurmurhash": "^0.1.4", "signal-exit": "^3.0.2" } }, "xdg-basedir": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", "dev": true }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true }, "y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, "yaml": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", "dev": true }, "yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { "cliui": "^5.0.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^13.1.2" }, "dependencies": { "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } } } }, "yargs-parser": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, "yargs-unparser": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.1.tgz", "integrity": "sha512-qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==", "dev": true, "requires": { "camelcase": "^5.3.1", "decamelize": "^1.2.0", "flat": "^4.1.0", "is-plain-obj": "^1.1.0", "yargs": "^14.2.3" }, "dependencies": { "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "yargs": { "version": "14.2.3", "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", "dev": true, "requires": { "cliui": "^5.0.0", "decamelize": "^1.2.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", "string-width": "^3.0.0", "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^15.0.1" } }, "yargs-parser": { "version": "15.0.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } } } }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true } } } rxjs-7.5.7/package.json000066400000000000000000000207451431412030200150040ustar00rootroot00000000000000{ "name": "rxjs", "version": "7.5.7", "description": "Reactive Extensions for modern JavaScript", "main": "./dist/cjs/index.js", "module": "./dist/esm5/index.js", "es2015": "./dist/esm/index.js", "types": "index.d.ts", "typesVersions": { ">=4.2": { "*": [ "dist/types/*" ] } }, "sideEffects": false, "exports": { ".": { "types": "./dist/types/index.d.ts", "node": "./dist/cjs/index.js", "require": "./dist/cjs/index.js", "es2015": "./dist/esm/index.js", "default": "./dist/esm5/index.js" }, "./ajax": { "types": "./dist/types/ajax/index.d.ts", "node": "./dist/cjs/ajax/index.js", "require": "./dist/cjs/ajax/index.js", "es2015": "./dist/esm/ajax/index.js", "default": "./dist/esm5/ajax/index.js" }, "./fetch": { "types": "./dist/types/fetch/index.d.ts", "node": "./dist/cjs/fetch/index.js", "require": "./dist/cjs/fetch/index.js", "es2015": "./dist/esm/fetch/index.js", "default": "./dist/esm5/fetch/index.js" }, "./operators": { "types": "./dist/types/operators/index.d.ts", "node": "./dist/cjs/operators/index.js", "require": "./dist/cjs/operators/index.js", "es2015": "./dist/esm/operators/index.js", "default": "./dist/esm5/operators/index.js" }, "./testing": { "types": "./dist/types/testing/index.d.ts", "node": "./dist/cjs/testing/index.js", "require": "./dist/cjs/testing/index.js", "es2015": "./dist/esm/testing/index.js", "default": "./dist/esm5/testing/index.js" }, "./webSocket": { "types": "./dist/types/webSocket/index.d.ts", "node": "./dist/cjs/webSocket/index.js", "require": "./dist/cjs/webSocket/index.js", "es2015": "./dist/esm/webSocket/index.js", "default": "./dist/esm5/webSocket/index.js" }, "./internal/*": { "types": "./dist/types/internal/*.d.ts", "node": "./dist/cjs/internal/*.js", "require": "./dist/cjs/internal/*.js", "es2015": "./dist/esm/internal/*.js", "default": "./dist/esm5/internal/*.js" }, "./package.json": "./package.json" }, "config": { "commitizen": { "path": "cz-conventional-changelog" } }, "lint-staged": { "*.js": "eslint --cache --fix", "(src|spec)/**/*.ts": [ "tslint --fix", "prettier --write" ], "*.{js,css,md}": "prettier --write" }, "scripts": { "changelog": "npx conventional-changelog-cli -p angular -i CHANGELOG.md -s", "build:spec:browser": "echo \"Browser test is not working currently\" && exit -1 && webpack --config spec/support/webpack.mocha.config.js", "lint_spec": "tslint -c spec/tslint.json -p spec/tsconfig.json \"spec/**/*.ts\"", "lint_src": "tslint -c tslint.json -p src/tsconfig.base.json \"src/**/*.ts\"", "lint": "npm-run-all --parallel lint_*", "dtslint": "tsc -b ./src/tsconfig.types.json && tslint -c spec-dtslint/tslint.json -p spec-dtslint/tsconfig.json \"spec-dtslint/**/*.ts\"", "prepublishOnly": "npm run build:package && npm run lint && npm run test && npm run test:circular && npm run dtslint && npm run test:side-effects && npm run api_guardian", "publish_docs": "./publish_docs.sh", "test": "cross-env TS_NODE_PROJECT=tsconfig.mocha.json mocha --config spec/support/.mocharc.js \"spec/**/*-spec.ts\"", "test:esm": "node spec/module-test-spec.mjs", "test:browser": "echo \"Browser test is not working currently\" && exit -1 && npm-run-all build:spec:browser && opn spec/support/mocha-browser-runner.html", "test:circular": "dependency-cruiser --validate .dependency-cruiser.json -x \"^node_modules\" dist/esm5", "test:systemjs": "node integration/systemjs/systemjs-compatibility-spec.js", "test:side-effects": "check-side-effects --test integration/side-effects/side-effects.json", "test:side-effects:update": "npm run test:side-effects -- --update", "test:import": "ts-node ./integration/import/runner.ts", "compile": "tsc -b ./src/tsconfig.cjs.json ./src/tsconfig.cjs.spec.json ./src/tsconfig.esm.json ./src/tsconfig.esm5.json ./src/tsconfig.esm5.rollup.json ./src/tsconfig.types.json ./src/tsconfig.types.spec.json ./spec/tsconfig.json", "build:clean": "shx rm -rf ./dist", "build:global": "node ./tools/make-umd-bundle.js && node ./tools/make-closure-core.js", "build:package": "npm-run-all build:clean compile build:global && node ./tools/prepare-package.js && node ./tools/generate-alias.js", "api_guardian:update": "tsc -b ./src/tsconfig.types.json && ts-api-guardian --outDir api_guard dist/types/index.d.ts dist/types/ajax/index.d.ts dist/types/fetch/index.d.ts dist/types/operators/index.d.ts dist/types/testing/index.d.ts dist/types/webSocket/index.d.ts", "api_guardian": "ts-api-guardian --verifyDir api_guard dist/types/index.d.ts dist/types/ajax/index.d.ts dist/types/fetch/index.d.ts dist/types/operators/index.d.ts dist/types/testing/index.d.ts dist/types/webSocket/index.d.ts", "watch": "nodemon -w \"src/\" -w \"spec/\" -e ts -x npm test", "watch:dtslint": "nodemon -w \"src/\" -w \"spec-dtslint/\" -e ts -x npm run dtslint" }, "repository": { "type": "git", "url": "https://github.com/reactivex/rxjs.git" }, "keywords": [ "Rx", "RxJS", "ReactiveX", "ReactiveExtensions", "Streams", "Observables", "Observable", "Stream", "ES6", "ES2015" ], "author": "Ben Lesh ", "contributors": [ { "name": "Ben Lesh", "email": "ben@benlesh.com" }, { "name": "Paul Taylor", "email": "paul.e.taylor@me.com" }, { "name": "Jeff Cross", "email": "crossj@google.com" }, { "name": "Matthew Podwysocki", "email": "matthewp@microsoft.com" }, { "name": "OJ Kwon", "email": "kwon.ohjoong@gmail.com" }, { "name": "Andre Staltz", "email": "andre@staltz.com" } ], "license": "Apache-2.0", "bugs": { "url": "https://github.com/ReactiveX/RxJS/issues" }, "homepage": "https://rxjs.dev", "dependencies": { "tslib": "^2.1.0" }, "devDependencies": { "@angular-devkit/build-optimizer": "0.4.6", "@angular-devkit/schematics": "^11.0.7", "@swc/core": "^1.2.128", "@swc/helpers": "^0.3.2", "@types/chai": "^4.2.11", "@types/lodash": "4.14.102", "@types/mocha": "^7.0.2", "@types/node": "^14.14.6", "@types/shelljs": "^0.8.8", "@types/sinon": "4.1.3", "@types/sinon-chai": "2.7.29", "@types/source-map": "^0.5.2", "@typescript-eslint/eslint-plugin": "^4.29.1", "@typescript-eslint/parser": "^4.29.1", "babel-polyfill": "6.26.0", "chai": "^4.2.0", "check-side-effects": "0.0.23", "color": "3.0.0", "colors": "1.1.2", "cross-env": "5.1.3", "cz-conventional-changelog": "1.2.0", "dependency-cruiser": "^9.12.0", "escape-string-regexp": "1.0.5", "eslint": "^7.8.1", "eslint-plugin-jasmine": "^2.10.1", "form-data": "^3.0.0", "fs-extra": "^8.1.0", "glob": "7.1.2", "google-closure-compiler-js": "20170218.0.0", "husky": "^4.2.5", "klaw-sync": "3.0.2", "lint-staged": "^10.2.11", "lodash": "^4.17.15", "minimist": "^1.2.5", "mocha": "^8.1.3", "nodemon": "^1.9.2", "npm-run-all": "4.1.2", "opn-cli": "3.1.0", "platform": "1.3.5", "prettier": "^2.5.1", "promise": "8.0.1", "rollup": "0.66.6", "rollup-plugin-alias": "1.4.0", "rollup-plugin-inject": "2.0.0", "rollup-plugin-node-resolve": "2.0.0", "shelljs": "^0.8.4", "shx": "^0.3.2", "sinon": "4.3.0", "sinon-chai": "2.14.0", "source-map-support": "0.5.3", "systemjs": "^0.21.0", "ts-api-guardian": "^0.5.0", "ts-node": "^9.1.1", "tslint": "^5.20.1", "tslint-config-prettier": "^1.18.0", "tslint-etc": "1.13.10", "tslint-no-toplevel-property-access": "0.0.2", "tslint-no-unused-expression-chai": "0.0.3", "typescript": "~4.2.0", "validate-commit-msg": "2.14.0", "web-streams-polyfill": "^3.0.2", "webpack": "^4.31.0" }, "files": [ "dist/bundles", "dist/cjs/**/!(*.tsbuildinfo)", "dist/esm/**/!(*.tsbuildinfo)", "dist/esm5/**/!(*.tsbuildinfo)", "dist/types/**/!(*.tsbuildinfo)", "ajax", "fetch", "operators", "testing", "webSocket", "src", "CHANGELOG.md", "CODE_OF_CONDUCT.md", "LICENSE.txt", "package.json", "README.md", "tsconfig.json" ], "husky": { "hooks": { "pre-commit": "lint-staged", "commit-msg": "validate-commit-msg" } } } rxjs-7.5.7/resources/000077500000000000000000000000001431412030200145205ustar00rootroot00000000000000rxjs-7.5.7/resources/CI-CD/000077500000000000000000000000001431412030200152775ustar00rootroot00000000000000rxjs-7.5.7/resources/CI-CD/README.md000066400000000000000000000002171431412030200165560ustar00rootroot00000000000000This folder contains all resources, docs licenses or other information related to the corporate identity and corporate design of this project. rxjs-7.5.7/resources/CI-CD/logo/000077500000000000000000000000001431412030200162375ustar00rootroot00000000000000rxjs-7.5.7/resources/CI-CD/logo/svg/000077500000000000000000000000001431412030200170365ustar00rootroot00000000000000rxjs-7.5.7/resources/CI-CD/logo/svg/RxJs_Logo_Basic.svg000066400000000000000000000067131431412030200225350ustar00rootroot00000000000000rxjs-7.5.7/resources/CI-CD/logo/svg/RxJs_Logo_Basic_Outline.svg000066400000000000000000000177001431412030200242320ustar00rootroot00000000000000rxjs-7.5.7/resources/CI-CD/logo/svg/RxJs_Logo_Black.svg000066400000000000000000000062051431412030200225240ustar00rootroot00000000000000rxjs-7.5.7/resources/CI-CD/logo/svg/RxJs_Logo_Black_Outline.svg000066400000000000000000000120251431412030200242200ustar00rootroot00000000000000rxjs-7.5.7/spec-dtslint/000077500000000000000000000000001431412030200151175ustar00rootroot00000000000000rxjs-7.5.7/spec-dtslint/AsyncSubject-spec.ts000066400000000000000000000025451431412030200210220ustar00rootroot00000000000000import { AsyncSubject } from 'rxjs'; describe('AsyncSubject', () => { it('should handle no generic appropriately', () => { const s1 = new AsyncSubject(); // $ExpectType AsyncSubject s1.next(); // $ExpectError s1.next('test'); // $ExpectType void s1.subscribe(value => { const x = value; // $ExpectType unknown }); }); it('should handle a generic of string appropriately', () => { const s1 = new AsyncSubject(); // $ExpectType AsyncSubject s1.next(); // $ExpectError s1.next('test'); // $ExpectType void s1.next(32); // $ExpectError s1.subscribe(value => { const x = value; // $ExpectType string }); }); it('should handle a generic of void appropriately', () => { const s1 = new AsyncSubject(); // $ExpectType AsyncSubject s1.next(); // $ExpectType void s1.next(undefined); // $ExpectType void s1.next('test'); // $ExpectError s1.subscribe(value => { const x = value; // $ExpectType void }); }); describe('asObservable', () => { it('should return an observable of the same generic type', () => { const s1 = new AsyncSubject(); const o1 = s1.asObservable(); // $ExpectType Observable const s2 = new AsyncSubject(); const o2 = s2.asObservable(); // $ExpectType Observable }); }); });rxjs-7.5.7/spec-dtslint/BehaviorSubject-spec.ts000066400000000000000000000025331431412030200215010ustar00rootroot00000000000000import { BehaviorSubject } from 'rxjs'; describe('BehaviorSubject', () => { it('should handle no generic appropriately', () => { const s1 = new BehaviorSubject(); // $ExpectError }); it('should handle an argument of string appropriately', () => { const init = 'some string'; const s1 = new BehaviorSubject(init); // $ExpectType BehaviorSubject s1.next(); // $ExpectError s1.next('test'); // $ExpectType void s1.next(32); // $ExpectError s1.subscribe(value => { const x = value; // $ExpectType string }); const v = s1.getValue(); // $ExpectType string }); it('should handle a generic of void appropriately', () => { const s1 = new BehaviorSubject(undefined); // $ExpectType BehaviorSubject s1.next(); // $ExpectType void s1.next('test'); // $ExpectError s1.next(32); // $ExpectError s1.subscribe(value => { const x = value; // $ExpectType void }); const v = s1.getValue(); // $ExpectType void }); describe('asObservable', () => { it('should return an observable of the same generic type', () => { const s1 = new BehaviorSubject('test'); const o1 = s1.asObservable(); // $ExpectType Observable const s2 = new BehaviorSubject(undefined); const o2 = s2.asObservable(); // $ExpectType Observable }); }); });rxjs-7.5.7/spec-dtslint/Notification-spec.ts000066400000000000000000000032411431412030200210450ustar00rootroot00000000000000import { Notification } from 'rxjs'; describe('Notification', () => { // Basic method tests const nextNotification = Notification.createNext('a'); // $ExpectType Notification & NextNotification nextNotification.do((value: number) => {}); // $ExpectError const r = nextNotification.do((value: string) => {}); // $ExpectType void const r1 = nextNotification.observe({ next: value => { } }); // $ExpectType void const r2 = nextNotification.observe({ next: (value: number) => { } }); // $ExpectError const r3 = nextNotification.toObservable(); // $ExpectType Observable const k1 = nextNotification.kind; // $ExpectType "N" const completeNotification = Notification.createComplete(); // $ExpectType Notification & CompleteNotification const r4 = completeNotification.do((value: string) => {}); // $ExpectType void const r5 = completeNotification.observe({ next: value => { } }); // $ExpectType void const r6 = completeNotification.observe({ next: (value: number) => { } }); // $ExpectType void const r7 = completeNotification.toObservable(); // $ExpectType Observable const k2 = completeNotification.kind; // $ExpectType "C" const errorNotification = Notification.createError(); // $ExpectType Notification & ErrorNotification const r8 = errorNotification.do((value: string) => {}); // $ExpectType void const r9 = errorNotification.observe({ next: value => { } }); // $ExpectType void const r10 = errorNotification.observe({ next: (value: number) => { } }); // $ExpectType void const r11 = errorNotification.toObservable(); // $ExpectType Observable const k3 = errorNotification.kind; // $ExpectType "E" });rxjs-7.5.7/spec-dtslint/Observable-spec.ts000066400000000000000000000142311431412030200205040ustar00rootroot00000000000000import { Observable, of, OperatorFunction } from 'rxjs'; import { mapTo } from 'rxjs/operators'; function a(input: I, output: O): OperatorFunction; function a(output: O): OperatorFunction; /** * Used to keep the tests uncluttered. * * Returns an `OperatorFunction` with the specified literal type parameters. * That is, `a('0', '1')` returns `OperatorFunction<'0', '1'>`. * That means that the `a` function can be used to create consecutive * arguments that are either compatible or incompatible. * * ```javascript * a('0', '1'), a('1', '2') // OK * a('0', '1'), a('#', '2') // Error '1' is not compatible with '#' * ``` * * If passed only one argument, that argument is used for the output * type parameter and the input type parameters is inferred. * * ```javascript * of('foo').pipe( * a('1') // OperatorFunction<'foo', '1'> * ); * ``` * * @param {string} input The `OperatorFunction` input type parameter * @param {string} output The `OperatorFunction` output type parameter */ function a(inputOrOutput: I | O, output?: O): OperatorFunction { return mapTo(output === undefined ? inputOrOutput as O : output); } describe('pipe', () => { it('should infer for no arguments', () => { const o = of('foo').pipe(); // $ExpectType Observable }); it('should infer for 1 argument', () => { const o = of('foo').pipe(a('1')); // $ExpectType Observable<"1"> }); it('should infer for 2 arguments', () => { const o = of('foo').pipe(a('1'), a('2')); // $ExpectType Observable<"2"> }); it('should infer for 3 arguments', () => { const o = of('foo').pipe(a('1'), a('2'), a('3')); // $ExpectType Observable<"3"> }); it('should infer for 4 arguments', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4')); // $ExpectType Observable<"4"> }); it('should infer for 5 arguments', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('5')); // $ExpectType Observable<"5"> }); it('should infer for 6 arguments', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('5'), a('6')); // $ExpectType Observable<"6"> }); it('should infer for 7 arguments', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('5'), a('6'), a('7')); // $ExpectType Observable<"7"> }); it('should infer for 8 arguments', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('5'), a('6'), a('7'), a('8')); // $ExpectType Observable<"8"> }); it('should infer for 9 arguments', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('5'), a('6'), a('7'), a('8'), a('9')); // $ExpectType Observable<"9"> }); it('should infer unknown for more than 9 arguments', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('5'), a('6'), a('7'), a('8'), a('9'), a('10')); // $ExpectType Observable }); it('should require a type assertion for more than 9 arguments', () => { const o: Observable<'10'> = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('5'), a('6'), a('7'), a('8'), a('9'), a('10')); // $ExpectError }); it('should enforce types for the 1st argument', () => { const o = of('foo').pipe(a('#', '1')); // $ExpectError }); it('should enforce types for the 2nd argument', () => { const o = of('foo').pipe(a('1'), a('#', '2')); // $ExpectError }); it('should enforce types for the 3rd argument', () => { const o = of('foo').pipe(a('1'), a('2'), a('#', '3')); // $ExpectError }); it('should enforce types for the 4th argument', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('#', '4')); // $ExpectError }); it('should enforce types for the 5th argument', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('#', '5')); // $ExpectError }); it('should enforce types for the 6th argument', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('5'), a('#', '6')); // $ExpectError }); it('should enforce types for the 7th argument', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('5'), a('6'), a('#', '7')); // $ExpectError }); it('should enforce types for the 8th argument', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('5'), a('6'), a('7'), a('#', '8')); // $ExpectError }); it('should enforce types for the 9th argument', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('5'), a('6'), a('7'), a('8'), a('#', '9')); // $ExpectError }); it('should not enforce types beyond the 9th argument', () => { const o = of('foo').pipe(a('1'), a('2'), a('3'), a('4'), a('5'), a('6'), a('7'), a('8'), a('9'), a('#', '10')); // $ExpectType Observable }); it('should support operators that return generics', () => { const customOperator = () => (a: Observable) => a; const o = of('foo').pipe(customOperator()); // $ExpectType Observable }); it('should have proper return type for toPromise', () => { const o = of('foo').toPromise(); // $ExpectType Promise }); }); describe('subscribe', () => { it('should deprecate the multi-argument usage', () => { const next = (value: number) => {}; const error = (error: any) => {}; const complete = () => {}; const o = of(42); o.subscribe(); // $ExpectNoDeprecation o.subscribe({ next }); // $ExpectNoDeprecation o.subscribe({ next, error }); // $ExpectNoDeprecation o.subscribe({ next, complete }); // $ExpectNoDeprecation o.subscribe({ next, error, complete }); // $ExpectNoDeprecation o.subscribe({ error }); // $ExpectNoDeprecation o.subscribe({ error, complete }); // $ExpectNoDeprecation o.subscribe({ complete }); // $ExpectNoDeprecation o.subscribe(next); // $ExpectNoDeprecation o.subscribe(null, error); // $ExpectDeprecation o.subscribe(undefined, error); // $ExpectDeprecation o.subscribe(null, error, complete); // $ExpectDeprecation o.subscribe(undefined, error, complete); // $ExpectDeprecation o.subscribe(null, null, complete); // $ExpectDeprecation o.subscribe(undefined, undefined, complete); // $ExpectDeprecation }); });rxjs-7.5.7/spec-dtslint/ReplaySubject-spec.ts000066400000000000000000000025571431412030200212040ustar00rootroot00000000000000import { ReplaySubject } from 'rxjs'; describe('ReplaySubject', () => { it('should handle no generic appropriately', () => { const s1 = new ReplaySubject(); // $ExpectType ReplaySubject s1.next(); // $ExpectError s1.next('test'); // $ExpectType void s1.subscribe(value => { const x = value; // $ExpectType unknown }); }); it('should handle a generic of string appropriately', () => { const s1 = new ReplaySubject(); // $ExpectType ReplaySubject s1.next(); // $ExpectError s1.next('test'); // $ExpectType void s1.next(32); // $ExpectError s1.subscribe(value => { const x = value; // $ExpectType string }); }); it('should handle a generic of void appropriately', () => { const s1 = new ReplaySubject(); // $ExpectType ReplaySubject s1.next(); // $ExpectType void s1.next(undefined); // $ExpectType void s1.next('test'); // $ExpectError s1.subscribe(value => { const x = value; // $ExpectType void }); }); describe('asObservable', () => { it('should return an observable of the same generic type', () => { const s1 = new ReplaySubject(); const o1 = s1.asObservable(); // $ExpectType Observable const s2 = new ReplaySubject(); const o2 = s2.asObservable(); // $ExpectType Observable }); }); });rxjs-7.5.7/spec-dtslint/Subject-spec.ts000066400000000000000000000026731431412030200200260ustar00rootroot00000000000000import { Subject } from 'rxjs'; describe('Subject', () => { it('should handle no generic appropriately', () => { const s1 = new Subject(); // $ExpectType Subject s1.next(); // $ExpectError s1.next('test'); // $ExpectType void s1.subscribe(value => { const x = value; // $ExpectType unknown }); }); it('should handle a generic of string appropriately', () => { const s1 = new Subject(); // $ExpectType Subject s1.next(); // $ExpectError s1.next('test'); // $ExpectType void s1.next(32); // $ExpectError s1.subscribe(value => { const x = value; // $ExpectType string }); }); it('should handle a generic of void appropriately', () => { const s1 = new Subject(); // $ExpectType Subject s1.next(); // $ExpectType void s1.next(undefined); // $ExpectType void s1.next('test'); // $ExpectError s1.subscribe(value => { const x = value; // $ExpectType void }); }); it('should not accept an argument in the ctor', () => { const s1 = new Subject(subscriber => { }); // $ExpectError }); describe('asObservable', () => { it('should return an observable of the same generic type', () => { const s1 = new Subject(); const o1 = s1.asObservable(); // $ExpectType Observable const s2 = new Subject(); const o2 = s2.asObservable(); // $ExpectType Observable }); }); });rxjs-7.5.7/spec-dtslint/errors-spec.ts000066400000000000000000000025531431412030200177400ustar00rootroot00000000000000import { AjaxError } from 'rxjs/ajax'; import { ArgumentOutOfRangeError, EmptyError, NotFoundError, ObjectUnsubscribedError, SequenceError, TimeoutError, UnsubscriptionError } from 'rxjs'; it('should deprecate error construction', () => { let error: Error; error = new AjaxError('message', null!, null!); // $ExpectDeprecation error = new ArgumentOutOfRangeError(); // $ExpectDeprecation error = new EmptyError(); // $ExpectDeprecation error = new NotFoundError('message'); // $ExpectDeprecation error = new ObjectUnsubscribedError(); // $ExpectDeprecation error = new SequenceError('message'); // $ExpectDeprecation error = new TimeoutError(); // $ExpectDeprecation error = new UnsubscriptionError([]); // $ExpectDeprecation }); it('should not deprecate instanceof use', () => { const error = new Error('message'); let b: boolean; b = error instanceof AjaxError; // $ExpectNoDeprecation b = error instanceof ArgumentOutOfRangeError; // $ExpectNoDeprecation b = error instanceof EmptyError; // $ExpectNoDeprecation b = error instanceof NotFoundError; // $ExpectNoDeprecation b = error instanceof ObjectUnsubscribedError; // $ExpectNoDeprecation b = error instanceof SequenceError; // $ExpectNoDeprecation b = error instanceof TimeoutError; // $ExpectNoDeprecation b = error instanceof UnsubscriptionError; // $ExpectNoDeprecation });rxjs-7.5.7/spec-dtslint/firstValueFrom-spec.ts000066400000000000000000000011431431412030200213660ustar00rootroot00000000000000import { firstValueFrom } from 'rxjs'; import { a$ } from 'helpers'; describe('firstValueFrom', () => { it('should infer the element type', () => { const r = firstValueFrom(a$); // $ExpectType Promise }) it('should infer the element type from a default value', () => { const r = firstValueFrom(a$, { defaultValue: null }); // $ExpectType Promise }); it('should require an argument', () => { const r = firstValueFrom(); // $ExpectError }); it('should require an observable argument', () => { const r = firstValueFrom(Promise.resolve(42)); // $ExpectError }); }); rxjs-7.5.7/spec-dtslint/helpers.ts000066400000000000000000000015341431412030200171340ustar00rootroot00000000000000import { of } from 'rxjs'; export class A { a = 0; } export class B { b = 0; } export class C { c = 0; } export class D { d = 0; } export class E { e = 0; } export class F { f = 0; } export class G { g = 0; } export class H { h = 0; } export class I { i = 0; } export class J { j = 0; } export const a = new A(); export const b = new B(); export const c = new C(); export const d = new D(); export const e = new E(); export const f = new F(); export const g = new G(); export const h = new H(); export const i = new I(); export const j = new J(); export const a$ = of(new A()); export const b$ = of(new B()); export const c$ = of(new C()); export const d$ = of(new D()); export const e$ = of(new E()); export const f$ = of(new F()); export const g$ = of(new G()); export const h$ = of(new H()); export const i$ = of(new I()); export const j$ = of(new J()); rxjs-7.5.7/spec-dtslint/index.d.ts000066400000000000000000000000001431412030200170060ustar00rootroot00000000000000rxjs-7.5.7/spec-dtslint/lastValueFrom-spec.ts000066400000000000000000000011361431412030200212040ustar00rootroot00000000000000import { lastValueFrom } from 'rxjs'; import { a$ } from 'helpers'; describe('lastValueFrom', () => { it('should infer the element type', () => { const r = lastValueFrom(a$); // $ExpectType Promise }); it('should infer the element type from a default value', () => { const r = lastValueFrom(a$, { defaultValue: null }); // $ExpectType Promise }); it('should require an argument', () => { const r = lastValueFrom(); // $ExpectError }); it('should require an observable argument', () => { const r = lastValueFrom(Promise.resolve(42)); // $ExpectError }); }); rxjs-7.5.7/spec-dtslint/observables/000077500000000000000000000000001431412030200174265ustar00rootroot00000000000000rxjs-7.5.7/spec-dtslint/observables/bindCallback-spec.ts000066400000000000000000000176771431412030200233010ustar00rootroot00000000000000import { bindCallback } from 'rxjs'; import { a, b, c, d, e, f, g, A, B, C, D, E, F, G } from '../helpers'; describe('callbackFunc', () => { const f0 = (cb: () => void) => { cb(); }; const f1 = (cb: (res1: A) => void) => { cb(a); }; const f2 = (cb: (res1: A, res2: B) => void) => { cb(a, b); }; const f3 = (cb: (res1: A, res2: B, res3: C) => void) => { cb(a, b, c); }; const f4 = (cb: (res1: A, res2: B, res3: C, res4: D) => void) => { cb(a, b, c, d); }; it('should enforce function parameter', () => { const o = bindCallback() // $ExpectError }); it('should accept cb 0 param', () => { const o = bindCallback(f0) // $ExpectType () => Observable }); it('should accept cb 1 param', () => { const o = bindCallback(f1) // $ExpectType () => Observable }); it('should accept cb 2 params', () => { const o = bindCallback(f2) // $ExpectType () => Observable<[res1: A, res2: B]> }); it('should accept cb 3 params', () => { const o = bindCallback(f3) // $ExpectType () => Observable<[res1: A, res2: B, res3: C]> }); it('should accept cb 4 params', () => { const o = bindCallback(f4) // $ExpectType () => Observable<[res1: A, res2: B, res3: C, res4: D]> }); }); describe('callbackFunc and 1 args', () => { const fa1cb0 = (e: E, cb: () => void) => { cb(); }; const fa1cb1 = (e: E, cb: (res1: A) => void) => { cb(a); }; const fa1cb2 = (e: E, cb: (res1: A, res2: B) => void) => { cb(a, b); }; const fa1cb3 = (e: E, cb: (res1: A, res2: B, res3: C) => void) => { cb(a, b, c); }; const fa1cb4 = (e: E, cb: (res1: A, res2: B, res3: C, res4: D) => void) => { cb(a, b, c, d); }; it('should accept cb 0 param', () => { const o = bindCallback(fa1cb0) // $ExpectType (e: E) => Observable }); it('should accept cb 1 param', () => { const o = bindCallback(fa1cb1) // $ExpectType (e: E) => Observable }); it('should accept cb 2 param', () => { const o = bindCallback(fa1cb2) // $ExpectType (e: E) => Observable<[res1: A, res2: B]> }); it('should accept cb 3 param', () => { const o = bindCallback(fa1cb3) // $ExpectType (e: E) => Observable<[res1: A, res2: B, res3: C]> }); it('should accept cb 4 param', () => { const o = bindCallback(fa1cb4) // $ExpectType (e: E) => Observable<[res1: A, res2: B, res3: C, res4: D]> }); }); describe('callbackFunc and 2 args' , () => { const fa2cb0 = (e: E , f: F, cb: () => void) => { cb(); }; const fa2cb1 = (e: E , f: F, cb: (res1: A) => void) => { cb(a); }; const fa2cb2 = (e: E , f: F, cb: (res1: A, res2: B) => void) => { cb(a, b); }; const fa2cb3 = (e: E , f: F, cb: (res1: A, res2: B, res3: C) => void) => { cb(a, b, c); }; const fa2cb4 = (e: E , f: F, cb: (res1: A, res2: B, res3: C, res4: D) => void) => { cb(a, b, c, d); }; it('should accept cb 0 param', () => { const o = bindCallback(fa2cb0) // $ExpectType (e: E, f: F) => Observable }); it('should accept cb 1 param', () => { const o = bindCallback(fa2cb1) // $ExpectType (e: E, f: F) => Observable }); it('should accept cb 2 param', () => { const o = bindCallback(fa2cb2) // $ExpectType (e: E, f: F) => Observable<[res1: A, res2: B]> }); it('should accept cb 3 param', () => { const o = bindCallback(fa2cb3) // $ExpectType (e: E, f: F) => Observable<[res1: A, res2: B, res3: C]> }); it('should accept cb 4 param', () => { const o = bindCallback(fa2cb4) // $ExpectType (e: E, f: F) => Observable<[res1: A, res2: B, res3: C, res4: D]> }); }); describe('callbackFunc and 3 args' , () => { const fa3cb0 = (e: E , f: F, g: G, cb: () => void) => { cb(); }; const fa3cb1 = (e: E , f: F, g: G, cb: (res1: A) => void) => { cb(a); }; const fa3cb2 = (e: E , f: F, g: G, cb: (res1: A, res2: B) => void) => { cb(a, b); }; const fa3cb3 = (e: E , f: F, g: G, cb: (res1: A, res2: B, res3: C) => void) => { cb(a, b, c); }; const fa3cb4 = (e: E , f: F, g: G, cb: (res1: A, res2: B, res3: C, res4: D) => void) => { cb(a, b, c, d); }; it('should accept cb 0 param', () => { const o = bindCallback(fa3cb0) // $ExpectType (e: E, f: F, g: G) => Observable }); it('should accept cb 1 param', () => { const o = bindCallback(fa3cb1) // $ExpectType (e: E, f: F, g: G) => Observable }); it('should accept cb 2 params', () => { const o = bindCallback(fa3cb2) // $ExpectType (e: E, f: F, g: G) => Observable<[res1: A, res2: B]> }); it('should accept cb 3 params', () => { const o = bindCallback(fa3cb3) // $ExpectType (e: E, f: F, g: G) => Observable<[res1: A, res2: B, res3: C]> }); it('should accept cb 4 params', () => { const o = bindCallback(fa3cb4) // $ExpectType (e: E, f: F, g: G) => Observable<[res1: A, res2: B, res3: C, res4: D]> }); }); describe('callbackFunc and 4 args' , () => { const fa4cb0 = (e: E , f: F, g: G, a: A, cb: () => void) => { cb(); }; const fa4cb1 = (e: E , f: F, g: G, a: A, cb: (res1: A) => void) => { cb(a); }; const fa4cb2 = (e: E , f: F, g: G, a: A, cb: (res1: A, res2: B) => void) => { cb(a, b); }; const fa4cb3 = (e: E , f: F, g: G, a: A, cb: (res1: A, res2: B, res3: C) => void) => { cb(a, b, c); }; const fa4cb4 = (e: E , f: F, g: G, a: A, cb: (res1: A, res2: B, res3: C, res4: D) => void) => { cb(a, b, c, d); }; it('should accept cb 0 param', () => { const o = bindCallback(fa4cb0) // $ExpectType (e: E, f: F, g: G, a: A) => Observable }); it('should accept cb 0 param', () => { const o = bindCallback(fa4cb1) // $ExpectType (e: E, f: F, g: G, a: A) => Observable }); it('should accept cb 2 params', () => { const o = bindCallback(fa4cb2) // $ExpectType (e: E, f: F, g: G, a: A) => Observable<[res1: A, res2: B]> }); it('should accept cb 3 params', () => { const o = bindCallback(fa4cb3) // $ExpectType (e: E, f: F, g: G, a: A) => Observable<[res1: A, res2: B, res3: C]> }); it('should accept cb 4 params', () => { const o = bindCallback(fa4cb4) // $ExpectType (e: E, f: F, g: G, a: A) => Observable<[res1: A, res2: B, res3: C, res4: D]> }); }); describe('callbackFunc and 5 args' , () => { const fa5cb0 = (e: E , f: F, g: G, a: A, b: B, cb: () => void) => { cb(); }; const fa5cb1 = (e: E , f: F, g: G, a: A, b: B, cb: (res1: A) => void) => { cb(a); }; const fa5cb2 = (e: E , f: F, g: G, a: A, b: B, cb: (res1: A, res2: B) => void) => { cb(a, b); }; const fa5cb3 = (e: E , f: F, g: G, a: A, b: B, cb: (res1: A, res2: B, res3: C) => void) => { cb(a, b, c); }; const fa5cb4 = (e: E , f: F, g: G, a: A, b: B, cb: (res1: A, res2: B, res3: C, res4: D) => void) => { cb(a, b, c, d); }; it('should accept cb 0 param', () => { const o = bindCallback(fa5cb0) // $ExpectType (e: E, f: F, g: G, a: A, b: B) => Observable }); it('should accept cb 0 param', () => { const o = bindCallback(fa5cb1) // $ExpectType (e: E, f: F, g: G, a: A, b: B) => Observable }); it('should accept cb 2 params', () => { const o = bindCallback(fa5cb2) // $ExpectType (e: E, f: F, g: G, a: A, b: B) => Observable<[res1: A, res2: B]> }); it('should accept cb 3 params', () => { const o = bindCallback(fa5cb3) // $ExpectType (e: E, f: F, g: G, a: A, b: B) => Observable<[res1: A, res2: B, res3: C]> }); it('should accept cb 4 params', () => { const o = bindCallback(fa5cb4) // $ExpectType (e: E, f: F, g: G, a: A, b: B) => Observable<[res1: A, res2: B, res3: C, res4: D]> }); }); describe('callbackFunc overkill' , () => { it('should accept 10 args and 5 params', () => { const fa10cb5 = (_1: 1 , _2: 2, _3: 3, _4: 4, _5: 5, _6: 6, _7: 7, _8: 8, _9: 9, _10: 10, cb: (_11: 11, _12: 12, _13: 13, _14: 14, _15: 15) => void) => { cb(11, 12, 13, 14, 15); }; const o = bindCallback(fa10cb5) // $ExpectType (_1: 1, _2: 2, _3: 3, _4: 4, _5: 5, _6: 6, _7: 7, _8: 8, _9: 9, _10: 10) => Observable<[_11: 11, _12: 12, _13: 13, _14: 14, _15: 15]> }); }); rxjs-7.5.7/spec-dtslint/observables/combineLatest-spec.ts000066400000000000000000000134611431412030200235240ustar00rootroot00000000000000import { combineLatest } from 'rxjs'; import { a$, b$, c$, d$, e$, f$, g$, A, B, C, D, E, F } from '../helpers'; it('should accept 1 param', () => { const o = combineLatest(a$); // $ExpectType Observable<[A]> }); it('should accept 2 params', () => { const o = combineLatest(a$, b$); // $ExpectType Observable<[A, B]> }); it('should accept 3 params', () => { const o = combineLatest(a$, b$, c$); // $ExpectType Observable<[A, B, C]> }); it('should accept 4 params', () => { const o = combineLatest(a$, b$, c$, d$); // $ExpectType Observable<[A, B, C, D]> }); it('should accept 5 params', () => { const o = combineLatest(a$, b$, c$, d$, e$); // $ExpectType Observable<[A, B, C, D, E]> }); it('should accept 6 params', () => { const o = combineLatest(a$, b$, c$, d$, e$, f$); // $ExpectType Observable<[A, B, C, D, E, F]> }); it('should result in Observable for 7 or more params', () => { const o = combineLatest(a$, b$, c$, d$, e$, f$, g$); // $ExpectType Observable<[A, B, C, D, E, F, G]> }); it('should accept union types', () => { const u1: typeof a$ | typeof b$ = Math.random() > 0.5 ? a$ : b$; const u2: typeof c$ | typeof d$ = Math.random() > 0.5 ? c$ : d$; const o = combineLatest(u1, u2); // $ExpectType Observable<[A | B, C | D]> }); it('should accept 1 param and a result selector', () => { const o = combineLatest(a$, (...values) => new A()); // $ExpectType Observable }); it('should accept 2 params and a result selector', () => { const o = combineLatest(a$, b$, (...values) => new A()); // $ExpectType Observable }); it('should accept 3 params and a result selector', () => { const o = combineLatest(a$, b$, c$, (...values) => new A()); // $ExpectType Observable }); it('should accept 4 params and a result selector', () => { const o = combineLatest(a$, b$, c$, d$, (...values) => new A()); // $ExpectType Observable }); it('should accept 5 params and a result selector', () => { const o = combineLatest(a$, b$, c$, d$, e$, (...values) => new A()); // $ExpectType Observable }); it('should accept 6 params and a result selector', () => { const o = combineLatest(a$, b$, c$, d$, e$, f$, (...values) => new A()); // $ExpectType Observable }); it('should accept 7 or more params and a result selector', () => { const o = combineLatest(a$, b$, c$, d$, e$, f$, g$, g$, g$, (...values) => new A()); // $ExpectType Observable }); it('should accept 1 param', () => { const o = combineLatest([a$]); // $ExpectType Observable<[A]> }); it('should accept 2 params', () => { const o = combineLatest([a$, b$]); // $ExpectType Observable<[A, B]> }); it('should accept 3 params', () => { const o = combineLatest([a$, b$, c$]); // $ExpectType Observable<[A, B, C]> }); it('should accept 4 params', () => { const o = combineLatest([a$, b$, c$, d$]); // $ExpectType Observable<[A, B, C, D]> }); it('should accept 5 params', () => { const o = combineLatest([a$, b$, c$, d$, e$]); // $ExpectType Observable<[A, B, C, D, E]> }); it('should accept 6 params', () => { const o = combineLatest([a$, b$, c$, d$, e$, f$]); // $ExpectType Observable<[A, B, C, D, E, F]> }); it('should have basic support for 7 or more params', () => { const o = combineLatest([a$, b$, c$, d$, e$, f$, g$]); // $ExpectType Observable<[A, B, C, D, E, F, G]> }); it('should have full support for 7 or more params with readonly tuples', () => { const o = combineLatest([a$, b$, c$, d$, e$, f$, g$] as const); // $ExpectType Observable<[A, B, C, D, E, F, G]> }); it('should handle an array of Observables', () => { const o = combineLatest([a$, a$, a$, a$, a$, a$, a$, a$, a$, a$, a$]); // $ExpectType Observable<[A, A, A, A, A, A, A, A, A, A, A]> }); it('should accept 1 param and a result selector', () => { const o = combineLatest([a$], (a: A) => new A()); // $ExpectType Observable }); it('should accept 2 params and a result selector', () => { const o = combineLatest([a$, b$], (a: A, b: B) => new A()); // $ExpectType Observable }); it('should accept 3 params and a result selector', () => { const o = combineLatest([a$, b$, c$], (a: A, b: B, c: C) => new A()); // $ExpectType Observable }); it('should accept 4 params and a result selector', () => { const o = combineLatest([a$, b$, c$, d$], (a: A, b: B, c: C, d: D) => new A()); // $ExpectType Observable }); it('should accept 5 params and a result selector', () => { const o = combineLatest([a$, b$, c$, d$, e$], (a: A, b: B, c: C, d: D, e: E) => new A()); // $ExpectType Observable }); it('should accept 6 params and a result selector', () => { const o = combineLatest([a$, b$, c$, d$, e$, f$], (a: A, b: B, c: C, d: D, e: E, f: F) => new A()); // $ExpectType Observable }); it('should accept 7 or more params and a result selector', () => { const o = combineLatest([a$, b$, c$, d$, e$, f$, g$, g$, g$], (a: any, b: any, c: any, d: any, e: any, f: any, g1: any, g2: any, g3: any) => new A()); // $ExpectType Observable }); describe('combineLatest({})', () => { it('should properly type empty objects', () => { const res = combineLatest({}); // $ExpectType Observable }); it('should work for the simple case', () => { const res = combineLatest({ foo: a$, bar: b$, baz: c$ }); // $ExpectType Observable<{ foo: A; bar: B; baz: C; }> }); it('should not rely upon the excess-properties behavior to identify empty objects', () => { const obj = { foo: a$, bar: b$, baz: c$ }; const res = combineLatest(obj); // $ExpectType Observable<{ foo: A; bar: B; baz: C; }> }); it('should reject non-ObservableInput values', () => { const obj = { answer: 42 }; const res = combineLatest(obj); // $ExpectError }); }); it('should take in any and return Observable because we do not know if it is an array or object', () => { const arg: any = null; const res = combineLatest(arg); // $ExpectType Observable });rxjs-7.5.7/spec-dtslint/observables/concat-spec.ts000066400000000000000000000052711431412030200222020ustar00rootroot00000000000000import { of, concat, asyncScheduler } from 'rxjs'; it('should accept 1 param', () => { const o = concat(of(1)); // $ExpectType Observable }); it('should accept 2 params', () => { const o = concat(of(1), of(2)); // $ExpectType Observable }); it('should accept 3 params', () => { const o = concat(of(1), of(2), of(3)); // $ExpectType Observable }); it('should accept 4 params', () => { const o = concat(of(1), of(2), of(3), of(4)); // $ExpectType Observable }); it('should accept 5 params', () => { const o = concat(of(1), of(2), of(3), of(4), of(5)); // $ExpectType Observable }); it('should accept 6 params', () => { const o = concat(of(1), of(2), of(3), of(4), of(5), of(6)); // $ExpectType Observable }); it('should accept more than 6 params', () => { const o = concat(of(1), of(2), of(3), of(4), of(5), of(6), of(7), of(8), of(9)); // $ExpectType Observable }); it('should return Observable for more than 6 different types of params', () => { const o = concat(of(1), of('a'), of(2), of(true), of(3), of([1, 2, 3]), of(4)); // $ExpectType Observable }); it('should accept scheduler after params', () => { const o = concat(of(4), of(5), of(6), asyncScheduler); // $ExpectType Observable }); it('should accept promises', () => { const o = concat(Promise.resolve(4)); // $ExpectType Observable }); it('should accept arrays', () => { const o = concat([4, 5]); // $ExpectType Observable }); it('should accept iterables', () => { const o = concat([1], 'foo'); // $ExpectType Observable }); it('should infer correctly with multiple types', () => { const o = concat(of('foo'), Promise.resolve([1]), of(6)); // $ExpectType Observable }); it('should enforce types', () => { const o = concat(5); // $ExpectError const p = concat(of(5), 6); // $ExpectError const q = concat(of(5), 6, asyncScheduler); // $ExpectError const r = concat(of(5), asyncScheduler, asyncScheduler); // $ExpectError const s = concat(asyncScheduler, asyncScheduler); // $ExpectError const t = concat(asyncScheduler, of(1)); // $ExpectError const u = concat(of(1), asyncScheduler, of(1)); // $ExpectError }); it('should support union types', () => { const u = Math.random() > 0.5 ? of(123) : of('abc'); const o = concat(u, u, u); // $ExpectType Observable }); it('should support different union types', () => { const u1 = Math.random() > 0.5 ? of(123) : of('abc'); const u2 = Math.random() > 0.5 ? of(true) : of([1, 2, 3]); const o = concat(u1, u2); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/observables/defer-spec.ts000066400000000000000000000030731431412030200220160ustar00rootroot00000000000000import { of, defer } from 'rxjs'; it('should enforce function parameter', () => { const a = defer(); // $ExpectError }); it('should infer correctly with function return observable', () => { const a = defer(() => of(1, 2, 3)); // $ExpectType Observable }); it('should infer correctly with function return promise', () => { const a = defer(() => Promise.resolve(5)); // $ExpectType Observable }); it('should support union type returns', () => { const a = defer(() => Math.random() > 0.5 ? of(123) : of('abc')); // $ExpectType Observable }); it('should infer correctly with function return any', () => { const a = defer(() => 3 as any); // $ExpectType Observable }); it('should error with void functions', () => { const a = defer(() => {}); // $ExpectError }); it('should error if an ObservableInput is not returned', () => { const a = defer(() => 42); // $ExpectError }); it('should error if function returns undefined', () => { const a = defer(() => undefined); // $ExpectError }); it('should infer if function returns never', () => { const a = defer(() => { throw new Error(); }); // $ExpectType Observable }); it('should infer correctly with function that sometimes error', () => { // $ExpectType Observable defer(() => { if (Math.random() > 0.5) { throw new Error(); } return of(1, 2, 3); }); }); it('should error with functions that sometimes do not return an ObservableInput', () => { const a = defer(() => { if (Math.random() < 0.5) { return of(42); } }); // $ExpectError }); rxjs-7.5.7/spec-dtslint/observables/dom/000077500000000000000000000000001431412030200202055ustar00rootroot00000000000000rxjs-7.5.7/spec-dtslint/observables/dom/ajax-spec.ts000066400000000000000000000013471431412030200224350ustar00rootroot00000000000000import { ajax } from 'rxjs/ajax'; it('should enforce function parameter', () => { const o = ajax(); // $ExpectError }); it('should accept string param', () => { const o = ajax('/a'); // $ExpectType Observable> }); it('should accept AjaxRequest params', () => { const ajaxRequest = { method: 'GET', url: '/a', body: {a: 'a', b: 'b'}, }; const o = ajax(ajaxRequest); // $ExpectType Observable> }); describe('.getJson', () => { it('should accept string param', () => { const o = ajax.getJSON('/a'); // $ExpectType Observable }); it('should return generic type', () => { const o = ajax.getJSON('/a'); // $ExpectType Observable }); }); rxjs-7.5.7/spec-dtslint/observables/dom/animationFrames-spec.ts000066400000000000000000000010211431412030200246140ustar00rootroot00000000000000import { animationFrames } from 'rxjs'; it('should just be an observable of numbers', () => { const o$ = animationFrames(); // $ExpectType Observable<{ timestamp: number; elapsed: number; }> }); it('should allow the passing of a timestampProvider', () => { const o$ = animationFrames(performance); // $ExpectType Observable<{ timestamp: number; elapsed: number; }> }); it('should not allow the passing of an invalid timestamp provider', () => { const o$ = animationFrames({ now() { return 'wee' } }); // $ExpectError });rxjs-7.5.7/spec-dtslint/observables/dom/fetch-spec.ts000066400000000000000000000013221431412030200225740ustar00rootroot00000000000000import { fromFetch } from 'rxjs/fetch'; import { a$ } from '../../helpers'; it('should emit the fetch Response by default', () => { const a = fromFetch("a"); // $ExpectType Observable }); it('should support a selector that returns a Response promise', () => { const a = fromFetch("a", { selector: response => response.text() }); // $ExpectType Observable }); it('should support a selector that returns an arbitrary type', () => { const a = fromFetch("a", { selector: response => a$ }); // $ExpectType Observable }); it('should error for selectors that don\'t return an ObservableInput', () => { const a = fromFetch("a", { selector: response => 42 }); // $ExpectError }); rxjs-7.5.7/spec-dtslint/observables/empty-spec.ts000066400000000000000000000007311431412030200220650ustar00rootroot00000000000000import { empty, animationFrameScheduler, EMPTY } from 'rxjs'; it('should infer correctly with no parameter', () => { const a = empty(); // $ExpectType Observable }); it('should support scheduler parameter', () => { const a = empty(animationFrameScheduler); // $ExpectType Observable }); it('should always infer empty observable', () => { // Empty Observable that replace empty static function const a = EMPTY; // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/observables/forkJoin-spec.ts000066400000000000000000000114221431412030200225070ustar00rootroot00000000000000import { a$, b$, c$ } from 'helpers'; import { of, forkJoin } from 'rxjs'; describe('deprecated rest args', () => { it('should infer correctly with 1 parameter', () => { const a = of(1, 2, 3); const res = forkJoin(a); // $ExpectType Observable<[number]> }); it('should infer correctly with 2 parameters', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const res = forkJoin(a, b); // $ExpectType Observable<[number, string]> }); it('should infer correctly with 3 parameters', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const res = forkJoin(a, b, c); // $ExpectType Observable<[number, string, number]> }); it('should infer correctly with 4 parameters', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const d = of(1, 2, 3); const res = forkJoin(a, b, c, d); // $ExpectType Observable<[number, string, number, number]> }); it('should infer correctly with 5 parameters', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const d = of(1, 2, 3); const e = of(1, 2, 3); const res = forkJoin(a, b, c, d, e); // $ExpectType Observable<[number, string, number, number, number]> }); it('should infer correctly with 6 parameters', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const d = of(1, 2, 3); const e = of(1, 2, 3); const f = of(1, 2, 3); const res = forkJoin(a, b, c, d, e, f); // $ExpectType Observable<[number, string, number, number, number, number]> }); }); it('should infer of type any for more than 6 parameters', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const d = of(1, 2, 3); const e = of(1, 2, 3); const f = of(1, 2, 3); const g = of(1, 2, 3); const res = forkJoin(a, b, c, d, e, f, g); // $ExpectType Observable<[number, string, number, number, number, number, number]> }); describe('forkJoin({})', () => { it('should properly type empty objects', () => { const res = forkJoin({}); // $ExpectType Observable }); it('should work for the simple case', () => { const res = forkJoin({ foo: of(1), bar: of('two'), baz: of(false) }); // $ExpectType Observable<{ foo: number; bar: string; baz: boolean; }> }); it('should not rely upon the excess-properties behavior to identify empty objects', () => { const obj = { foo: of(1), bar: of('two'), baz: of(false) }; const res = forkJoin(obj); // $ExpectType Observable<{ foo: number; bar: string; baz: boolean; }> }); it('should reject non-ObservableInput values', () => { const obj = { answer: 42 }; const res = forkJoin(obj); // $ExpectError }); }); describe('forkJoin([])', () => { it('should properly type empty arrays', () => { const res = forkJoin([]); // $ExpectType Observable const resConst = forkJoin([] as const); // $ExpectType Observable }); it('should properly type readonly arrays', () => { const res = forkJoin([a$, b$, c$] as const); // $ExpectType Observable<[A, B, C]> }); it('should infer correctly for array of 1 observable', () => { const res = forkJoin([of(1, 2, 3)]); // $ExpectType Observable<[number]> }); it('should infer correctly for array of 2 observables', () => { const res = forkJoin([of(1, 2, 3), of('a', 'b', 'c')]); // $ExpectType Observable<[number, string]> }); it('should infer correctly for array of 3 observables', () => { const res = forkJoin([of(1, 2, 3), of('a', 'b', 'c'), of(true, true, false)]); // $ExpectType Observable<[number, string, boolean]> }); it('should infer correctly for array of 4 observables', () => { const res = forkJoin([of(1, 2, 3), of('a', 'b', 'c'), of(1, 2, 3), of(1, 2, 3)]); // $ExpectType Observable<[number, string, number, number]> }); it('should infer correctly for array of 5 observables', () => { const res = forkJoin([of(1, 2, 3), of('a', 'b', 'c'), of(1, 2, 3), of(1, 2, 3), of(1, 2, 3)]); // $ExpectType Observable<[number, string, number, number, number]> }); it('should infer correctly for array of 6 observables', () => { const res = forkJoin([of(1, 2, 3), of('a', 'b', 'c'), of(1, 2, 3), of(1, 2, 3), of(1, 2, 3), of(1, 2, 3)]); // $ExpectType Observable<[number, string, number, number, number, number]> }); it('should force user cast for array of 6+ observables', () => { const res = forkJoin([of(1, 2, 3), of('a', 'b', 'c'), of(1, 2, 3), of(1, 2, 3), of(1, 2, 3), of(1, 2, 3), of(1, 2, 3)]); // $ExpectType Observable<[number, string, number, number, number, number, number]> }); it('should return unknown for argument of any', () => { const arg: any = null; const res = forkJoin(arg); // $ExpectType Observable }) }); rxjs-7.5.7/spec-dtslint/observables/from-spec.ts000066400000000000000000000042601431412030200216730ustar00rootroot00000000000000import { from, of, animationFrameScheduler, ReadableStreamLike } from 'rxjs'; it('should accept an array', () => { const o = from([1, 2, 3, 4]); // $ExpectType Observable }); it('should accept a Promise', () => { const o = from(Promise.resolve('test')); // $ExpectType Observable }); it('should accept an Iterable', () => { const iterable = (function*() { yield 42; }()); const o = from(iterable); // $ExpectType Observable }); it('should accept an Observable', () => { const o = from(of('test')); // $ExpectType Observable }); it('should accept union types', () => { const o = from(Math.random() > 0.5 ? of(123) : of('test')); // $ExpectType Observable }); it('should accept Observable>', () => { const o = from(of(of(123))); // $ExpectType Observable> }); it('should accept Observable', () => { const o = from(of([1, 2, 3])); // $ExpectType Observable }); it('should accept an array of Observables', () => { const o = from([of(1), of(2), of(3)]); // $ExpectType Observable> }); // TODO(benlesh): enable this test, once the issue is resolved upstream (https://github.com/Microsoft/dtslint/issues/191) // NOTE: It appears to be working, it's just that dtslint sometimes says it wants // Observable | Observable | string[]> // and if you switch it to that, it wants // Observable | IterableIterator | string[]> // and vica versa. // it('should accept an array of Inputs', () => { // const iterable = (function*() { // yield 42; // }()); // const o = from([of(1), ['test'], iterable]); // $__TODO__ExpectType Observable | Observable | string[]> // }); it('should support scheduler', () => { const a = from([1, 2, 3], animationFrameScheduler); // $ExpectType Observable }); it('should accept a ReadableStream', () => { const stream: ReadableStreamLike = new ReadableStream({ pull(controller) { controller.enqueue('x'); controller.close(); }, }); const o = from(stream); // $ExpectType Observable });rxjs-7.5.7/spec-dtslint/observables/fromEvent-spec.ts000066400000000000000000000106201431412030200226720ustar00rootroot00000000000000import { fromEvent } from 'rxjs'; import { HasEventTargetAddRemove, NodeStyleEventEmitter, NodeCompatibleEventEmitter, JQueryStyleEventEmitter } from '../../src/internal/observable/fromEvent'; import { B } from '../helpers'; declare const eventTargetSource: EventTarget; it('should support an event target source', () => { const source: HasEventTargetAddRemove = eventTargetSource; const a = fromEvent(eventTargetSource, "click"); // $ExpectType Observable }); it('should support an event target source result selector', () => { const a = fromEvent(eventTargetSource, "click", () => "clunk"); // $ExpectType Observable }); it('should support an event target source with options', () => { const a = fromEvent(eventTargetSource, "click", { once: true }); // $ExpectType Observable }); it('should support an event target source with options and result selector', () => { const a = fromEvent(eventTargetSource, "click", { once: true }, () => "clunk"); // $ExpectType Observable }); declare const documentSource: HTMLDocument; it('should support a document source', () => { const source: HasEventTargetAddRemove = documentSource; const a = fromEvent(documentSource, "click"); // $ExpectType Observable }); it('should support a document source result selector', () => { const a = fromEvent(documentSource, "click", () => "clunk"); // $ExpectType Observable }); it('should support a document source with options', () => { const a = fromEvent(documentSource, "click", { once: true }); // $ExpectType Observable }); it('should support a document source with options and result selector', () => { const a = fromEvent(documentSource, "click", { once: true }, () => "clunk"); // $ExpectType Observable }); // Pick the parts that will match NodeStyleEventEmitter. If this isn't done, it // will match JQueryStyleEventEmitter - because of the `on` and `off` methods - // despite the latter being declared last in the EventTargetLike union. declare const nodeStyleSource: Pick; it('should support a node-style source', () => { const source: NodeStyleEventEmitter = nodeStyleSource; const a = fromEvent(nodeStyleSource, "exit"); // $ExpectType Observable const b = fromEvent(nodeStyleSource, "exit"); // $ExpectType Observable }); it('should deprecate explicit type parameters for a node-style source', () => { const source: NodeStyleEventEmitter = nodeStyleSource; const a = fromEvent(nodeStyleSource, "exit"); // $ExpectNoDeprecation const b = fromEvent(nodeStyleSource, "exit"); // $ExpectDeprecation }); it('should support a node-style source result selector', () => { const a = fromEvent(nodeStyleSource, "exit", () => "bye"); // $ExpectType Observable }); const nodeCompatibleSource = { addListener(eventName: "something", handler: () => void) {}, removeListener(eventName: "something", handler: () => void) {} }; it('should support a node-compatible source', () => { const source: NodeCompatibleEventEmitter = nodeCompatibleSource; const a = fromEvent(nodeCompatibleSource, "something"); // $ExpectType Observable const b = fromEvent(nodeCompatibleSource, "something"); // $ExpectType Observable }); it('should deprecate explicit type parameters for a node-compatible source', () => { const source: NodeCompatibleEventEmitter = nodeCompatibleSource; const a = fromEvent(nodeCompatibleSource, "something"); // $ExpectNoDeprecation const b = fromEvent(nodeCompatibleSource, "something"); // $ExpectDeprecation }); it('should support a node-compatible source result selector', () => { const a = fromEvent(nodeCompatibleSource, "something", () => "something else"); // $ExpectType Observable }); const jQueryStyleSource = { on(eventName: "something", handler: (this: any, b: B) => any) {}, off(eventName: "something", handler: (this: any, b: B) => any) {} }; it('should support a jQuery-style source', () => { const source: JQueryStyleEventEmitter = jQueryStyleSource; const a = fromEvent(jQueryStyleSource, "something"); // $ExpectType Observable const b = fromEvent(jQueryStyleSource, "something"); // $ExpectType Observable }); it('should support a jQuery-style source result selector', () => { const a = fromEvent(jQueryStyleSource, "something", () => "something else"); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/observables/iif-spec.ts000066400000000000000000000023741431412030200215030ustar00rootroot00000000000000import { a$, b$ } from 'helpers'; import { iif, EMPTY } from 'rxjs'; const randomBoolean = () => Math.random() > 0.5; it('should error for insufficient parameters', () => { const r0 = iif(randomBoolean); // $ExpectError const r1 = iif(randomBoolean, a$); // $ExpectError const r2 = iif(randomBoolean, undefined, b$); // $ExpectError }); it('should error for incorrect parameters', () => { const r0 = iif(() => 132, a$, b$); // $ExpectError const r1 = iif(randomBoolean, {}, b$); // $ExpectError const r2 = iif(randomBoolean, a$, {}); // $ExpectError }); it('should infer correctly', () => { const r0 = iif(() => false, a$, b$); // $ExpectType Observable const r1 = iif(() => true, a$, b$); // $ExpectType Observable const r2 = iif(randomBoolean, a$, b$); // $ExpectType Observable const r3 = iif(() => false, a$, EMPTY); // $ExpectType Observable const r4 = iif(() => true, EMPTY, b$); // $ExpectType Observable const r5 = iif(randomBoolean, EMPTY, EMPTY); // $ExpectType Observable }); it('should support inference from a predicate that returns any', () => { function alwaysTrueButReturnsAny(): any { return true; } const o$ = iif(alwaysTrueButReturnsAny, a$, b$) // $ExpectType Observable });rxjs-7.5.7/spec-dtslint/observables/interval-spec.ts000066400000000000000000000006571431412030200225620ustar00rootroot00000000000000import { interval, animationFrameScheduler } from 'rxjs'; it('should infer correctly with number param', () => { const a = interval(1); // $ExpectType Observable }); it('should infer correctly with no param', () => { const a = interval(); // $ExpectType Observable }); it('should support scheduler', () => { const a = interval(1, animationFrameScheduler); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/observables/never-spec.ts000066400000000000000000000003241431412030200220440ustar00rootroot00000000000000import { never } from 'rxjs'; it('should not support any parameter', () => { const a = never(1); // $ExpectError }); it('should infer never', () => { const a = never(); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/observables/of-spec.ts000066400000000000000000000130371431412030200213360ustar00rootroot00000000000000import { of, animationFrameScheduler, queueScheduler } from 'rxjs'; import { A, a, b, c, d, e, f, g, h, i, j } from '../helpers'; it('should infer never with 0 params', () => { const res = of(); // $ExpectType Observable }); it('forced generic should not cause an issue', () => { const x: any = null; const res = of(); // $ExpectType Observable const res2 = of(x); // $ExpectType Observable }); it('should infer correctly with 1 param', () => { const res = of(a); // $ExpectType Observable }); it('should infer correctly with mixed type of 2 params', () => { const res = of(a, b); // $ExpectType Observable }); it('should infer correctly with mixed type of 3 params', () => { const res = of(a, b, c); // $ExpectType Observable }); it('should infer correctly with mixed type of 4 params', () => { const res = of(a, b, c, d); // $ExpectType Observable }); it('should infer correctly with mixed type of 5 params', () => { const res = of(a, b, c, d, e); // $ExpectType Observable }); it('should infer correctly with mixed type of 6 params', () => { const res = of(a, b, c, d, e, f); // $ExpectType Observable }); it('should infer correctly with mixed type of 7 params', () => { const res = of(a, b, c, d, e, f, g); // $ExpectType Observable }); it('should infer correctly with mixed type of 8 params', () => { const res = of(a, b, c, d, e, f, g, h); // $ExpectType Observable }); it('should infer correctly with mixed type of 9 params', () => { const res = of(a, b, c, d, e, f, g, h, i); // $ExpectType Observable }); it('should infer correctly with mono type of more than 9 params', () => { const res = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // $ExpectType Observable }); it('should support mixed type of 9 params', () => { const res = of(a, b, c, d, e, f, g, h, i, j); // $ExpectType Observable }); it('should support mixed type of 13 params', () => { const res = of(a, b, c, d, e, f, g, h, i, j, '', true, 123, 10n); // $ExpectType Observable }); it('should support a rest of params', () => { const arr = [a, b, c, d, e, f, g, h, i, j]; const res = of(...arr); // $ExpectType Observable const arr2 = ['test', 123, a]; const res2 = of(...arr2); // $ExpectType Observable const res3 = of(b, ...arr2, c, true); // $ExpectType Observable }); it('should support scheduler', () => { const res = of(a, animationFrameScheduler); // $ExpectType Observable }); it('should infer correctly with array', () => { const res = of([a, b, c]); // $ExpectType Observable<(A | B | C)[]> }); // SchedulerLike inclusions (remove in v8) it('should infer never with 0 params', () => { const res = of(queueScheduler); // $ExpectType Observable }); it('should infer correctly with 1 param', () => { const res = of(a, queueScheduler); // $ExpectType Observable }); it('should infer correctly with mixed type of 2 params', () => { const res = of(a, b, queueScheduler); // $ExpectType Observable }); it('should infer correctly with mixed type of 3 params', () => { const res = of(a, b, c, queueScheduler); // $ExpectType Observable }); it('should infer correctly with mixed type of 4 params', () => { const res = of(a, b, c, d, queueScheduler); // $ExpectType Observable }); it('should infer correctly with mixed type of 5 params', () => { const res = of(a, b, c, d, e, queueScheduler); // $ExpectType Observable }); it('should infer correctly with mixed type of 6 params', () => { const res = of(a, b, c, d, e, f, queueScheduler); // $ExpectType Observable }); it('should infer correctly with mixed type of 7 params', () => { const res = of(a, b, c, d, e, f, g, queueScheduler); // $ExpectType Observable }); it('should infer correctly with mixed type of 8 params', () => { const res = of(a, b, c, d, e, f, g, h, queueScheduler); // $ExpectType Observable }); it('should infer correctly with mixed type of 9 params', () => { const res = of(a, b, c, d, e, f, g, h, i, queueScheduler); // $ExpectType Observable }); it('should deprecate correctly', () => { of(queueScheduler); // $ExpectDeprecation of(a, queueScheduler); // $ExpectDeprecation of(a, b, queueScheduler); // $ExpectDeprecation of(a, b, c, queueScheduler); // $ExpectDeprecation of(a, b, c, d, queueScheduler); // $ExpectDeprecation of(a, b, c, d, e, queueScheduler); // $ExpectDeprecation of(a, b, c, d, e, f, queueScheduler); // $ExpectDeprecation of(a, b, c, d, e, f, g, queueScheduler); // $ExpectDeprecation of(a, b, c, d, e, f, g, h, queueScheduler); // $ExpectDeprecation of(a, b, c, d, e, f, g, h, i, queueScheduler); // $ExpectDeprecation of(); // $ExpectDeprecation of(); // $ExpectNoDeprecation of(a); // $ExpectNoDeprecation of(a, b); // $ExpectNoDeprecation of(a, b, c); // $ExpectNoDeprecation of(a, b, c, d); // $ExpectNoDeprecation }); it('should handle null and undefined properly', () => { const a = of(undefined); // $ExpectType Observable const b = of(null); // $ExpectType Observable const c = [of(1), of(2), of(undefined), of(3)] as const; });rxjs-7.5.7/spec-dtslint/observables/onErrorResumeNext-spec.ts000066400000000000000000000033321431412030200243750ustar00rootroot00000000000000/** @prettier */ import { onErrorResumeNext } from 'rxjs'; import { a$, b$, c$, d$, e$, f$, g$, h$, i$, j$ } from '../helpers'; it('should infer correctly', () => { const o1 = onErrorResumeNext(); // $ExpectType Observable const o2 = onErrorResumeNext(a$); // $ExpectType Observable const o3 = onErrorResumeNext(a$, b$); // $ExpectType Observable const o4 = onErrorResumeNext(a$, b$, c$); // $ExpectType Observable const o5 = onErrorResumeNext(a$, b$, c$, d$); // $ExpectType Observable const o6 = onErrorResumeNext(a$, b$, c$, d$, e$); // $ExpectType Observable const o7 = onErrorResumeNext(a$, b$, c$, d$, e$, f$); // $ExpectType Observable const o8 = onErrorResumeNext(a$, b$, c$, d$, e$, f$, g$); // $ExpectType Observable const o9 = onErrorResumeNext(a$, b$, c$, d$, e$, f$, g$, h$); // $ExpectType Observable const o10 = onErrorResumeNext(a$, b$, c$, d$, e$, f$, g$, h$, i$); // $ExpectType Observable const o11 = onErrorResumeNext(a$, b$, c$, d$, e$, f$, g$, h$, i$, j$); // $ExpectType Observable }); it('should handle non-observable inputs appropriately', () => { const o1 = onErrorResumeNext({ lol: 'test' }); // $ExpectError const o2 = onErrorResumeNext(a$, { haha: 'no' }); // $ExpectError }); it('should handle observable inputs okay', () => { const o1 = onErrorResumeNext([1, 2, 3, 'test'], Promise.resolve(true)); // $ExpectType Observable const o2 = onErrorResumeNext( // $ExpecType Observable (function* () { return 'test'; })() ); }); rxjs-7.5.7/spec-dtslint/observables/partition-spec.ts000066400000000000000000000046141431412030200227440ustar00rootroot00000000000000import { of, from, partition } from 'rxjs'; it('should infer correctly', () => { const o = partition(of('a', 'b', 'c'), (value, index) => true); // $ExpectType [Observable, Observable] const p = partition(of('a', 'b', 'c'), () => true); // $ExpectType [Observable, Observable] }); it('should support a user-defined type guard', () => { const o = partition(of(1, 2, 3), (value: number): value is 1 => value === 1); // $ExpectType [Observable<1>, Observable] }); it('should support exclusion based on the user-defined type guard', () => { const o = partition(from([1, 2] as const), (value: number): value is 1 => value === 1); // $ExpectType [Observable<1>, Observable<2>] }); it('should enforce predicate', () => { const o = partition(of('a', 'b', 'c')); // $ExpectError }); it('should enforce predicate types', () => { const o = partition(of('a', 'b', 'c'), 'nope'); // $ExpectError const p = partition(of('a', 'b', 'c'), (value: number) => true); // $ExpectError const q = partition(of('a', 'b', 'c'), (value, index: string) => true); // $ExpectError }); it('should support this with type guard', () => { const thisArg = { limit: 2 }; const a = partition(of(1, 2, 3), function (val): val is 1 { // $ExpectType [Observable<1>, Observable] const limit = this.limit; // $ExpectType number return val < limit; }, thisArg); }); it('should support this with exclusion based on the user-defined type guard', () => { const thisArg = { limit: 2 }; const a = partition(from([1, 2] as const), function (val): val is 1 { // $ExpectType [Observable<1>, Observable<2>] const limit = this.limit; // $ExpectType number return val < limit; }, thisArg); }); it('should support this with predicate', () => { const thisArg = { limit: 2 }; const a = partition(of(1, 2, 3), function (val) { // $ExpectType [Observable, Observable] const limit = this.limit; // $ExpectType number return val < limit; }, thisArg); }); it('should deprecate thisArg usage', () => { const a = partition(of(1, 2, 3), Boolean); // $ExpectNoDeprecation const b = partition(of(1, 2, 3), Boolean, {}); // $ExpectDeprecation const c = partition(of(1, 2, 3), (value) => Boolean(value)); // $ExpectNoDeprecation const d = partition(of(1, 2, 3), (value) => Boolean(value), {}); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/observables/race-spec.ts000066400000000000000000000032641431412030200216450ustar00rootroot00000000000000import { race, NEVER, EMPTY } from 'rxjs'; import { a$, b, b$, c, c$, d$, e$, f$ } from '../helpers'; describe('race(a, b, c)', () => { it('should support N arguments of different types', () => { const o1 = race(a$); // $ExpectType Observable const o2 = race(a$, b$); // $ExpectType Observable const o3 = race(a$, b$, c$); // $ExpectType Observable const o4 = race(a$, b$, c$, d$); // $ExpectType Observable const o5 = race(a$, b$, c$, d$, e$); // $ExpectType Observable const o6 = race(a$, b$, c$, d$, e$, f$); // $ExpectType Observable }); }); describe('race([a, b, c])', () => { it('should support N arguments of different types', () => { const o1 = race([a$]); // $ExpectType Observable const o2 = race([a$, b$]); // $ExpectType Observable const o3 = race([a$, b$, c$]); // $ExpectType Observable const o4 = race([a$, b$, c$, d$]); // $ExpectType Observable const o5 = race([a$, b$, c$, d$, e$]); // $ExpectType Observable const o6 = race([a$, b$, c$, d$, e$, f$]); // $ExpectType Observable }); }); it('should race observable inputs', () => { const o = race(a$, Promise.resolve(b), [c]); // $ExpectType Observable }); it('should race an array observable inputs', () => { const o = race([a$, Promise.resolve(b), [c]]); // $ExpectType Observable }); it('should handle observables that do not emit', () => { const o1 = race([NEVER, a$, EMPTY, [], b$]); // $ExpectType Observable const o2 = race(NEVER, a$, EMPTY, [], b$); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/observables/range-spec.ts000066400000000000000000000007731431412030200220310ustar00rootroot00000000000000import { range, animationFrameScheduler } from 'rxjs'; it('should infer correctly with number parameters', () => { const a = range(1, 2); // $ExpectType Observable }); it('should accept only number parameters', () => { const a = range('a', 1); // $ExpectError }); it('should allow 1 parameter', () => { const a = range(1); // $ExpectType Observable }); it('should support scheduler', () => { const a = range(1, 2, animationFrameScheduler); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/observables/throwError-spec.ts000066400000000000000000000020651431412030200231060ustar00rootroot00000000000000import { throwError, animationFrameScheduler } from 'rxjs'; it('should accept any type and return never observable', () => { const a = throwError(1); // $ExpectType Observable const b = throwError('a'); // $ExpectType Observable const c = throwError({ a: 1 }); // $ExpectType Observable const d = throwError(() => ({ a: 2 })); // $ExpectType Observable }); it('should support an error value and a scheduler', () => { const a = throwError(1, animationFrameScheduler); // $ExpectType Observable }); it('should accept any type and return never observable with support of factory', () => { const a = throwError(() => (1)); // $ExpectType Observable const b = throwError(() => ('a')); // $ExpectType Observable const c = throwError(() => ({ a: 1 })); // $ExpectType Observable const d = throwError(() => ({ a: 2 })); // $ExpectType Observable }); it('should support a factory and a scheduler', () => { const a = throwError(() => 1, animationFrameScheduler); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/observables/timer-spec.ts000066400000000000000000000014571431412030200220550ustar00rootroot00000000000000import { timer, animationFrameScheduler } from 'rxjs'; it('should infer correctly with 1 parameter of number type', () => { const a = timer(1); // $ExpectType Observable<0> }); it('should infer correctly with 1 parameter of date type', () => { const a = timer((new Date())); // $ExpectType Observable<0> }); it('should not support string parameter', () => { const a = timer('a'); // $ExpectError }); it('should infer correctly with 2 parameters', () => { const a = timer(1, 2); // $ExpectType Observable }); it('should support scheduler as second parameter', () => { const a = timer(1, animationFrameScheduler); // $ExpectType Observable<0> }); it('should support scheduler as third parameter', () => { const a = timer(1, 2, animationFrameScheduler); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/observables/using-spec.ts000066400000000000000000000005431431412030200220550ustar00rootroot00000000000000import { using } from 'rxjs'; import { a$, b$ } from '../helpers'; it('should infer with a simple factory', () => { const o = using(() => {}, () => a$); // $ExpectType Observable }); it('should infer with a factory that returns a union', () => { const o = using(() => {}, () => Math.random() < 0.5 ? a$ : b$); // $ExpectType Observable });rxjs-7.5.7/spec-dtslint/observables/zip-spec.ts000066400000000000000000000040351431412030200215320ustar00rootroot00000000000000import { of, zip } from 'rxjs'; it('should support observables', () => { const a = of(1); // $ExpectType Observable const b = of('foo'); // $ExpectType Observable const c = of(true); // $ExpectType Observable const o1 = zip(a, b, c); // $ExpectType Observable<[number, string, boolean]> }); it('should support mixed observables and promises', () => { const a = Promise.resolve(1); // $ExpectType Promise const b = of('foo'); // $ExpectType Observable const c = of(true); // $ExpectType Observable const d = of(['bar']); // $ExpectType Observable const o1 = zip(a, b, c, d); // $ExpectType Observable<[number, string, boolean, string[]]> }); it('should support arrays of promises', () => { const a = [Promise.resolve(1)]; // $ExpectType Promise[] const o1 = zip(a); // $ExpectType Observable const o2 = zip(...a); // $ExpectType Observable }); it('should support arrays of observables', () => { const a = [of(1)]; // $ExpectType Observable[] const o1 = zip(a); // $ExpectType Observable const o2 = zip(...a); // $ExpectType Observable }); it('should return Array when given a single promise', () => { const a = Promise.resolve(1); // $ExpectType Promise const o1 = zip(a); // $ExpectType Observable<[number]> }); it('should return Array when given a single observable', () => { const a = of(1); // $ExpectType Observable const o1 = zip(a); // $ExpectType Observable<[number]> }); it('should support union types', () => { const u = Math.random() > 0.5 ? of(123) : of('abc'); const o = zip(u, u, u); // $ExpectType Observable<[string | number, string | number, string | number]> }); it('should support different union types', () => { const u = Math.random() > 0.5 ? of(123) : of('abc'); const u2 = Math.random() > 0.5 ? of(true) : of([1, 2, 3]); const o = zip(u, u2); // $ExpectType Observable<[string | number, boolean | number[]]> }); rxjs-7.5.7/spec-dtslint/operators/000077500000000000000000000000001431412030200171355ustar00rootroot00000000000000rxjs-7.5.7/spec-dtslint/operators/audit-spec.ts000066400000000000000000000011631431412030200215440ustar00rootroot00000000000000import { of, NEVER } from 'rxjs'; import { audit } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(audit(() => of('foo'))); // $ExpectType Observable const p = of(1, 2, 3).pipe(audit(() => NEVER)); // $ExpectType Observable }); it('should infer correctly with a Promise', () => { const o = of(1, 2, 3).pipe(audit(() => new Promise(() => {}))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(audit()); // $ExpectError const p = of(1, 2, 3).pipe(audit((p: string) => of('foo'))); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/auditTime-spec.ts000066400000000000000000000011411431412030200223570ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { auditTime } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('a', 'b', 'c').pipe(auditTime(47)); // $ExpectType Observable }); it('should support a scheduler', () => { const o = of('a', 'b', 'c').pipe(auditTime(47, asyncScheduler)); // $ExpectType Observable }); it('should enforce types', () => { const o = of('a', 'b', 'c').pipe(auditTime()); // $ExpectError const p = of('a', 'b', 'c').pipe(auditTime('47')); // $ExpectError const q = of('a', 'b', 'c').pipe(auditTime(47, 'foo')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/buffer-spec.ts000066400000000000000000000005341431412030200217100ustar00rootroot00000000000000import { of } from 'rxjs'; import { buffer } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(buffer(of('foo'))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(buffer()); // $ExpectError const p = of(1, 2, 3).pipe(buffer(6)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/bufferCount-spec.ts000066400000000000000000000011621431412030200227170ustar00rootroot00000000000000import { of } from 'rxjs'; import { bufferCount } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(bufferCount(1)); // $ExpectType Observable const p = of(1, 2, 3).pipe(bufferCount(1, 7)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(bufferCount()); // $ExpectError }); it('should enforce type of bufferSize', () => { const o = of(1, 2, 3).pipe(bufferCount('7')); // $ExpectError }); it('should enforce type of startBufferEvery', () => { const o = of(1, 2, 3).pipe(bufferCount(1, '7')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/bufferTime-spec.ts000066400000000000000000000033651431412030200225340ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { bufferTime } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(bufferTime(1)); // $ExpectType Observable const p = of(1, 2, 3).pipe(bufferTime(1, asyncScheduler)); // $ExpectType Observable }); it('should support a bufferCreationInterval', () => { const o = of(1, 2, 3).pipe(bufferTime(1, 6)); // $ExpectType Observable const p = of(1, 2, 3).pipe(bufferTime(1, 6, asyncScheduler)); // $ExpectType Observable const q = of(1, 2, 3).pipe(bufferTime(1, undefined)); // $ExpectType Observable const r = of(1, 2, 3).pipe(bufferTime(1, null)); // $ExpectType Observable }); it('should support a maxBufferSize', () => { const o = of(1, 2, 3).pipe(bufferTime(1, 6, 3)); // $ExpectType Observable const p = of(1, 2, 3).pipe(bufferTime(1, 6, 3, asyncScheduler)); // $ExpectType Observable const q = of(1, 2, 3).pipe(bufferTime(1, undefined, 3)); // $ExpectType Observable const r = of(1, 2, 3).pipe(bufferTime(1, null, 3)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(bufferTime()); // $ExpectError }); it('should enforce type of bufferTimeSpan', () => { const o = of(1, 2, 3).pipe(bufferTime('3')); // $ExpectError }); it('should enforce type of scheduler', () => { const o = of(1, 2, 3).pipe(bufferTime(3, '3')); // $ExpectError }); it('should enforce type of bufferCreationInterval', () => { const o = of(1, 2, 3).pipe(bufferTime(3, '3', asyncScheduler)); // $ExpectError }); it('should enforce type of maxBufferSize', () => { const o = of(1, 2, 3).pipe(bufferTime(3, 3, '3', asyncScheduler)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/bufferToggle-spec.ts000066400000000000000000000031741431412030200230550ustar00rootroot00000000000000import { of, NEVER } from 'rxjs'; import { bufferToggle } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(bufferToggle(of('a', 'b', 'c'), value => of(new Date()))); // $ExpectType Observable }); it('should support Promises', () => { const promise = Promise.resolve('a'); const o = of(1, 2, 3).pipe(bufferToggle(promise, value => of(new Date()))); // $ExpectType Observable const p = of(1, 2, 3).pipe(bufferToggle(of('a', 'b', 'c'), value => promise)); // $ExpectType Observable const q = of(1, 2, 3).pipe(bufferToggle(promise, value => promise)); // $ExpectType Observable }); it('should support NEVER', () => { const o = of(1, 2, 3).pipe(bufferToggle(NEVER, value => of(new Date()))); // $ExpectType Observable const p = of(1, 2, 3).pipe(bufferToggle(of('a', 'b', 'c'), value => NEVER)); // $ExpectType Observable const q = of(1, 2, 3).pipe(bufferToggle(NEVER, value => NEVER)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(bufferToggle()); // $ExpectError }); it('should enforce type of openings', () => { const o = of(1, 2, 3).pipe(bufferToggle('a', () => of('a', 'b', 'c'))); // $ExpectType Observable const o2 = of(1, 2, 3).pipe(bufferToggle('a', (x: number) => of('a', 'b', 'c'))); // $ExpectError }); it('should enforce type of closingSelector', () => { const o = of(1, 2, 3).pipe(bufferToggle(of('a', 'b', 'c'), 'a')); // $ExpectError const p = of(1, 2, 3).pipe(bufferToggle(of('a', 'b', 'c'), (value: number) => of('a', 'b', 'c'))); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/bufferWhen-spec.ts000066400000000000000000000007041431412030200225310ustar00rootroot00000000000000import { of } from 'rxjs'; import { bufferWhen } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(bufferWhen(() => of('a', 'b', 'c'))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(bufferWhen()); // $ExpectError }); it('should enforce type of closingSelector', () => { const o = of(1, 2, 3).pipe(bufferWhen(of('a', 'b', 'c'))); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/catchError-spec.ts000066400000000000000000000027611431412030200225370ustar00rootroot00000000000000import { of, Observable, EMPTY } from 'rxjs'; import { catchError } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(catchError((() => of(4, 5, 6)))); // $ExpectType Observable }); it('should handle empty (never) appropriately', () => { const o = of(1, 2, 3).pipe(catchError(() => EMPTY)); // $ExpectType Observable }); it('should handle a throw', () => { const f: () => never = () => { throw new Error('test'); }; const o = of(1, 2, 3).pipe(catchError(f)); // $ExpectType Observable }); it('should infer correctly when not returning', () => { const o = of(1, 2, 3).pipe(catchError((() => { throw new Error('your hands in the air'); }))); // $ExpectType Observable }); it('should infer correctly when returning another type', () => { const o = of(1, 2, 3).pipe(catchError((() => of('a', 'b', 'c')))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(catchError()); // $ExpectError }); it('should enforce that selector returns an Observable', () => { const o = of(1, 2, 3).pipe(catchError((err) => {})); // $ExpectError }); it('should enforce type of caught', () => { const o = of(1, 2, 3).pipe(catchError((err, caught: Observable) => of('a', 'b', 'c'))); // $ExpectError }); it('should handle union types', () => { const o = of(1, 2, 3).pipe(catchError(err => err.message === 'wee' ? of('fun') : of(123))); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/combineLatest-spec.ts000066400000000000000000000103701431412030200232270ustar00rootroot00000000000000import { of } from 'rxjs'; import { combineLatest } from 'rxjs/operators'; describe('combineLatest', () => { describe('without project parameter', () => { it('should infer correctly with 1 param', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const res = a.pipe(combineLatest(b)); // $ExpectType Observable<[number, string]> }); it('should infer correctly with 2 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const res = a.pipe(combineLatest(b, c)); // $ExpectType Observable<[number, string, string]> }); it('should infer correctly with 3 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const res = a.pipe(combineLatest(b, c, d)); // $ExpectType Observable<[number, string, string, string]> }); it('should infer correctly with 4 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const e = of('j', 'k', 'l'); const res = a.pipe(combineLatest(b, c, d, e)); // $ExpectType Observable<[number, string, string, string, string]> }); it('should infer correctly with 5 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const e = of('j', 'k', 'l'); const f = of('m', 'n', 'o'); const res = a.pipe(combineLatest(b, c, d, e, f)); // $ExpectType Observable<[number, string, string, string, string, string]> }); it('should infer correctly with 6 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const e = of('j', 'k', 'l'); const f = of('m', 'n', 'o'); const g = of('p', 'q', 'r'); const res = a.pipe(combineLatest(b, c, d, e, f, g)); // $ExpectType Observable<[number, string, string, string, string, string, string]> }); }); describe('with project parameter', () => { it('should infer correctly with project param', () => { const a = of(1, 2, 3); const res = a.pipe(combineLatest(v1 => 'b')); // $ExpectType Observable }); it('should infer correctly with 1 param', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const res = a.pipe(combineLatest(b, (a, b) => b)); // $ExpectType Observable }); it('should infer correctly with 2 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const res = a.pipe(combineLatest(b, c, (a, b, c) => b + c)); // $ExpectType Observable }); it('should infer correctly with 3 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const ref = a.pipe(combineLatest(b, c, d, (a, b, c, d) => b + c)); // $ExpectType Observable }); it('should infer correctly with 4 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const e = of('j', 'k', 'l'); const res = a.pipe(combineLatest(b, c, d, e, (a, b, c, d, e) => b + c)); // $ExpectType Observable }); it('should infer correctly with 5 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const e = of('j', 'k', 'l'); const f = of('m', 'n', 'o'); const res = a.pipe(combineLatest(b, c, d, e, f, (a, b, c, d, e, f) => b + c)); // $ExpectType Observable }); // TODO: Fix this when the both combineLatest operator and combineLatest creator function has been fix // see: https://github.com/ReactiveX/rxjs/pull/4371#issuecomment-441124096 // it('should infer correctly with array param', () => { // const a = of(1, 2, 3); // const b = [of('a', 'b', 'c')]; // const res = a.pipe(combineLatest(b, (a, b) => b)); // $ExpectType Observable> // }); }); }); rxjs-7.5.7/spec-dtslint/operators/combineLatestAll-spec.ts000066400000000000000000000024361431412030200236640ustar00rootroot00000000000000import { of } from 'rxjs'; import { combineLatestAll } from 'rxjs/operators'; it('should infer correctly', () => { const o = of([1, 2, 3]).pipe(combineLatestAll()); // $ExpectType Observable }); it('should infer correctly with the projector', () => { const o = of([1, 2, 3]).pipe(combineLatestAll((values: number) => ['x', 'y', 'z'])); // $ExpectType Observable }); it('should be accept projectors for observables with different types', () => { // An `any` signature is required for the projector to deal with situations // like this in which the source emits observables of different types. The // types of the values passed to the projector depend on the order in which // the source emits its observables and that can't be expressed in the type // system. const o = of(of(['a', 'b', 'c']), of([1, 2, 3])).pipe(combineLatestAll((a: string, b: number) => a + b)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(combineLatestAll()); // $ExpectError }); it('should enforce type of the projector', () => { const o = of([1, 2, 3]).pipe(combineLatestAll((values: string) => ['x', 'y', 'z'])); // $ExpectError const p = of([1, 2, 3]).pipe(combineLatestAll(values => ['x', 'y', 'z'])); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/combineLatestWith-spec.ts000066400000000000000000000041721431412030200240660ustar00rootroot00000000000000import { of } from 'rxjs'; import { combineLatestWith } from 'rxjs/operators'; describe('combineLatestWith', () => { describe('without project parameter', () => { it('should infer correctly with 1 param', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const res = a.pipe(combineLatestWith(b)); // $ExpectType Observable<[number, string]> }); it('should infer correctly with 2 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const res = a.pipe(combineLatestWith(b, c)); // $ExpectType Observable<[number, string, string]> }); it('should infer correctly with 3 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const res = a.pipe(combineLatestWith(b, c, d)); // $ExpectType Observable<[number, string, string, string]> }); it('should infer correctly with 4 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const e = of('j', 'k', 'l'); const res = a.pipe(combineLatestWith(b, c, d, e)); // $ExpectType Observable<[number, string, string, string, string]> }); it('should infer correctly with 5 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const e = of('j', 'k', 'l'); const f = of('m', 'n', 'o'); const res = a.pipe(combineLatestWith(b, c, d, e, f)); // $ExpectType Observable<[number, string, string, string, string, string]> }); it('should accept N params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const e = of('j', 'k', 'l'); const f = of('m', 'n', 'o'); const g = of('p', 'q', 'r'); const res = a.pipe(combineLatestWith(b, c, d, e, f, g)); // $ExpectType Observable<[number, string, string, string, string, string, string]> }); }); }); rxjs-7.5.7/spec-dtslint/operators/concat-spec.ts000066400000000000000000000044211431412030200217050ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { concat } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(concat()); // $ExpectType Observable }); it('should support a scheduler', () => { const o = of(1, 2, 3).pipe(concat(asyncScheduler)); // $ExpectType Observable }); it('should support one argument', () => { const o = of(1, 2, 3).pipe(concat(of(1))); // $ExpectType Observable }); it('should support two arguments', () => { const o = of(1, 2, 3).pipe(concat(of(1), of(2))); // $ExpectType Observable }); it('should support three arguments', () => { const o = of(1, 2, 3).pipe(concat(of(1), of(2), of(3))); // $ExpectType Observable }); it('should support four arguments', () => { const o = of(1, 2, 3).pipe(concat(of(1), of(2), of(3), of(4))); // $ExpectType Observable }); it('should support five arguments', () => { const o = of(1, 2, 3).pipe(concat(of(1), of(2), of(3), of(4), of(5))); // $ExpectType Observable }); it('should support six arguments', () => { const o = of(1, 2, 3).pipe(concat(of(1), of(2), of(3), of(4), of(5), of(6))); // $ExpectType Observable }); it('should support six or more arguments', () => { const o = of(1, 2, 3).pipe(concat(of(1), of(2), of(3), of(4), of(5), of(6), of(7), of(8), of(9))); // $ExpectType Observable }); it('should support a scheduler as last parameter', () => { const o = of(1, 2, 3).pipe(concat(of(4), of(5), of(6), asyncScheduler)); // $ExpectType Observable }); it('should support promises', () => { const o = of(1, 2, 3).pipe(concat(Promise.resolve(4))); // $ExpectType Observable }); it('should support arrays', () => { const o = of(1, 2, 3).pipe(concat([4, 5])); // $ExpectType Observable }); it('should support iterables', () => { const o = of(1, 2, 3).pipe(concat('foo')); // $ExpectType Observable }); it('should infer correctly with multiple types', () => { const o = of(1, 2, 3).pipe(concat(of('foo'), Promise.resolve([1]), of(6))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(concat(5)); // $ExpectError const p = of(1, 2, 3).pipe(concat(of(5), 6)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/concatAll-spec.ts000066400000000000000000000004451431412030200223400ustar00rootroot00000000000000import { of } from 'rxjs'; import { concatAll } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(of(1, 2, 3)).pipe(concatAll()); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(concatAll()); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/concatMap-spec.ts000066400000000000000000000036351431412030200223510ustar00rootroot00000000000000import { of } from 'rxjs'; import { concatMap } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(concatMap(p => of(Boolean(p)))); // $ExpectType Observable }); it('should support a projector that takes an index', () => { const o = of(1, 2, 3).pipe(concatMap((p, index) => of(Boolean(p)))); // $ExpectType Observable }); it('should infer correctly by using the resultSelector first parameter', () => { const o = of(1, 2, 3).pipe(concatMap(p => of(Boolean(p)), a => a)); // $ExpectType Observable }); it('should infer correctly by using the resultSelector second parameter', () => { const o = of(1, 2, 3).pipe(concatMap(p => of(Boolean(p)), (a, b) => b)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner index', () => { const o = of(1, 2, 3).pipe(concatMap(p => of(Boolean(p)), (a, b, innerIndex) => a)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner and outer index', () => { const o = of(1, 2, 3).pipe(concatMap(p => of(Boolean(p)), (a, b, innerIndex, outerIndex) => a)); // $ExpectType Observable }); it('should support an undefined resultSelector', () => { const o = of(1, 2, 3).pipe(concatMap(p => of(Boolean(p)), undefined)); // $ExpectType Observable }); it('should support union-type projections', () => { const o = of(Math.random()).pipe(concatMap(n => n > 0.5 ? of('life') : of(42))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(concatMap()); // $ExpectError }); it('should enforce the return type', () => { const o = of(1, 2, 3).pipe(concatMap(p => p)); // $ExpectError }); it('should produce `Observable` when mapping to an `ObservableInput`', () => { const o = of(1, 2, 3).pipe(concatMap(n => Promise.reject())); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/concatMapTo-spec.ts000066400000000000000000000052471431412030200226550ustar00rootroot00000000000000import { of } from 'rxjs'; import { concatMapTo } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(concatMapTo(of('foo'))); // $ExpectType Observable }); it('should infer correctly with multiple types', () => { const o = of(1, 2, 3).pipe(concatMapTo(of('foo', 4))); // $ExpectType Observable }); it('should infer correctly with an array', () => { const o = of(1, 2, 3).pipe(concatMapTo([4, 5, 6])); // $ExpectType Observable }); it('should infer correctly with a Promise', () => { const o = of(1, 2, 3).pipe(concatMapTo(new Promise(() => {}))); // $ExpectType Observable }); it('should infer correctly by using the resultSelector first parameter', () => { const o = of(1, 2, 3).pipe(concatMapTo(of('foo'), a => a)); // $ExpectType Observable }); it('should infer correctly by using the resultSelector second parameter', () => { const o = of(1, 2, 3).pipe(concatMapTo(of('foo'), (a, b) => b)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner index', () => { const o = of(1, 2, 3).pipe(concatMapTo(of('foo'), (a, b, innerIndex) => a)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner and outer index', () => { const o = of(1, 2, 3).pipe(concatMapTo(of('foo'), (a, b, innerIndex, outerIndex) => a)); // $ExpectType Observable }); it('should support an undefined resultSelector', () => { const o = of(1, 2, 3).pipe(concatMapTo(of('foo'), undefined)); // $ExpectType Observable }); it('should support union types', () => { const s = Math.random() > 0.5 ? of(123) : of('abc'); const r = of(1, 2, 3).pipe(concatMapTo(s)); // $ExpectType Observable }); it('should support union-type projections with empty streams', () => { const o = of(1, 2, 3).pipe(concatMapTo(Math.random() < 0.5 ? of(123) : of())); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(concatMapTo()); // $ExpectError }); it('should enforce types of the observable parameter', () => { const fn = () => {} const o = of(1, 2, 3).pipe(concatMapTo(fn)); // $ExpectError }); it('should enforce the return type', () => { const o = of(1, 2, 3).pipe(concatMapTo(p => p)); // $ExpectError const p = of(1, 2, 3).pipe(concatMapTo(4)); // $ExpectError }); it('should produce `Observable` when mapping to an `ObservableInput`', () => { const o = of(1, 2, 3).pipe(concatMapTo(Promise.reject())); // $ExpectType Observable }); it('should be deprecated', () => { const o = of(1, 2, 3).pipe(concatMapTo(of(true))); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/operators/concatWith-spec.ts000066400000000000000000000044411431412030200225430ustar00rootroot00000000000000import { of } from 'rxjs'; import { concatWith } from 'rxjs/operators'; import { a$, b$, c$, d$, e$ } from 'helpers'; it('should support rest params', () => { const arr = [b$, c$]; const o = a$.pipe(concatWith(...arr)); // $ExpectType Observable const o2 = a$.pipe(concatWith(d$, ...arr, e$)); // $ExpectType Observable }); it('should infer correctly', () => { const o = of(1, 2, 3).pipe(concatWith()); // $ExpectType Observable }); it('should support one argument', () => { const o = of(1, 2, 3).pipe(concatWith(of(1))); // $ExpectType Observable }); it('should support two arguments', () => { const o = of(1, 2, 3).pipe(concatWith(of(1), of(2))); // $ExpectType Observable }); it('should support three arguments', () => { const o = of(1, 2, 3).pipe(concatWith(of(1), of(2), of(3))); // $ExpectType Observable }); it('should support four arguments', () => { const o = of(1, 2, 3).pipe(concatWith(of(1), of(2), of(3), of(4))); // $ExpectType Observable }); it('should support five arguments', () => { const o = of(1, 2, 3).pipe(concatWith(of(1), of(2), of(3), of(4), of(5))); // $ExpectType Observable }); it('should support six arguments', () => { const o = of(1, 2, 3).pipe(concatWith(of(1), of(2), of(3), of(4), of(5), of(6))); // $ExpectType Observable }); it('should support six or more arguments', () => { const o = of(1, 2, 3).pipe(concatWith(of(1), of(2), of(3), of(4), of(5), of(6), of(7), of(8), of(9))); // $ExpectType Observable }); it('should support promises', () => { const o = of(1, 2, 3).pipe(concatWith(Promise.resolve(4))); // $ExpectType Observable }); it('should support arrays', () => { const o = of(1, 2, 3).pipe(concatWith([4, 5])); // $ExpectType Observable }); it('should support iterables', () => { const o = of(1, 2, 3).pipe(concatWith('foo')); // $ExpectType Observable }); it('should infer correctly with multiple types', () => { const o = of(1, 2, 3).pipe(concatWith(of('foo'), Promise.resolve([1]), of(6))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(concatWith(5)); // $ExpectError const p = of(1, 2, 3).pipe(concatWith(of(5), 6)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/connect-spec.ts000066400000000000000000000004021431412030200220620ustar00rootroot00000000000000import { of } from 'rxjs'; import { connect } from 'rxjs/operators'; import { a$, b$ } from '../helpers'; it('should infer from a union', () => { const o = of(null).pipe(connect(() => Math.random() > 0.5 ? a$ : b$)); // $ExpectType Observable });rxjs-7.5.7/spec-dtslint/operators/count-spec.ts000066400000000000000000000021041431412030200215620ustar00rootroot00000000000000import { of, Observable } from 'rxjs'; import { count } from 'rxjs/operators'; it('should always infer number', () => { const o = of(1, 2, 3).pipe(count(x => x > 1)); // $ExpectType Observable const j = of('a', 'b', 'c').pipe(count(x => x === 'a')); // $ExpectType Observable }); it('should accept empty parameter', () => { const o = of(1, 2, 3).pipe(count()); // $ExpectType Observable }); it('should infer source observable type in parameter', () => { const o = of(1, 2, 3).pipe(count((x, i, source: Observable) => x === 3)); // $ExpectError }); it('should enforce value type of source type', () => { const o = of(1, 2, 3).pipe(count((x, i, source) => x === '3')); // $ExpectError }); it('should enforce index type of number', () => { const o = of(1, 2, 3).pipe(count((x, i, source) => i === '3')); // $ExpectError }); it('should expect function parameter', () => { const o = of(1, 2, 3).pipe(count(9)); // $ExpectError }); it('should enforce source type', () => { const o = of(1, 2, 3).pipe(count(x => x === '')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/debounce-spec.ts000066400000000000000000000010371431412030200222220ustar00rootroot00000000000000import { of, timer } from 'rxjs'; import { debounce } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(debounce(() => timer(47))); // $ExpectType Observable }); it('should infer correctly with a Promise', () => { const o = of(1, 2, 3).pipe(debounce(() => new Promise(() => {}))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(debounce()); // $ExpectError const p = of(1, 2, 3).pipe(debounce(() => {})); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/debounceTime-spec.ts000066400000000000000000000011261431412030200230400ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { debounceTime } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(debounceTime(47)); // $ExpectType Observable }); it('should support a scheduler', () => { const o = of(1, 2, 3).pipe(debounceTime(47, asyncScheduler)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(debounceTime()); // $ExpectError const p = of(1, 2, 3).pipe(debounceTime('foo')); // $ExpectError const q = of(1, 2, 3).pipe(debounceTime(47, 'foo')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/defaultIfEmpty-spec.ts000066400000000000000000000022331431412030200233570ustar00rootroot00000000000000import { EMPTY, of } from 'rxjs'; import { defaultIfEmpty, map } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(defaultIfEmpty()); // $ExpectError const o2 = of(undefined).pipe(defaultIfEmpty(undefined)); // $ExpectType Observable }); it('should infer correctly with a defaultValue', () => { const o = of(1, 2, 3).pipe(defaultIfEmpty(47)); // $ExpectType Observable }); it('should infer correctly with a different type of defaultValue', () => { const o = of(1, 2, 3).pipe(defaultIfEmpty('carbonara')); // $ExpectType Observable const o2 = of(1, 2, 3).pipe(defaultIfEmpty('carbonara')); // $ExpectType Observable }); it('should infer correctly with a subtype passed through parameters', () => { const o = of(true, false).pipe(map(p => p), defaultIfEmpty(true)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(defaultIfEmpty(4, 5)); // $ExpectError }); it('should handle Observable appropriately', () => { const o = EMPTY.pipe(defaultIfEmpty('blah')); // $ExpectType Observable }) rxjs-7.5.7/spec-dtslint/operators/delay-spec.ts000066400000000000000000000012761431412030200215410ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { delay } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(delay(100)); // $ExpectType Observable }); it('should support date parameter', () => { const o = of(1, 2, 3).pipe(delay(new Date(2018, 09, 18))); // $ExpectType Observable }); it('should support a scheduler', () => { const o = of(1, 2, 3).pipe(delay(100, asyncScheduler)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(delay()); // $ExpectError const p = of(1, 2, 3).pipe(delay('foo')); // $ExpectError const q = of(1, 2, 3).pipe(delay(47, 'foo')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/delayWhen-spec.ts000066400000000000000000000023701431412030200223570ustar00rootroot00000000000000import { of, NEVER } from 'rxjs'; import { delayWhen } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(delayWhen(() => of('a', 'b', 'c'))); // $ExpectType Observable const p = of(1, 2, 3).pipe(delayWhen((value: number, index: number) => of('a', 'b', 'c'))); // $ExpectType Observable }); it('should support an empty notifier', () => { const o = of(1, 2, 3).pipe(delayWhen(() => NEVER)); // $ExpectType Observable }); it('should support a subscriptiondelayWhen parameter', () => { const o = of(1, 2, 3).pipe(delayWhen(() => of('a', 'b', 'c'), of(new Date()))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(delayWhen()); // $ExpectError }); it('should enforce types of delayWhenDurationSelector', () => { const o = of(1, 2, 3).pipe(delayWhen(of('a', 'b', 'c'))); // $ExpectError const p = of(1, 2, 3).pipe(delayWhen((value: string, index) => of('a', 'b', 'c'))); // $ExpectError const q = of(1, 2, 3).pipe(delayWhen((value, index: string) => of('a', 'b', 'c'))); // $ExpectError }); it('should enforce types of subscriptiondelayWhen', () => { const o = of(1, 2, 3).pipe(delayWhen(() => of('a', 'b', 'c'), 'a')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/dematerialize-spec.ts000066400000000000000000000032521431412030200232560ustar00rootroot00000000000000import { of, Notification } from 'rxjs'; import { dematerialize } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(Notification.createNext('foo')).pipe(dematerialize()); // $ExpectType Observable }); it('should enforce types', () => { const o = of(Notification.createNext('foo')).pipe(dematerialize(() => {})); // $ExpectError }); it('should enforce types from POJOS', () => { const source = of({ kind: 'N' as const, value: 'test' }, { kind: 'N' as const, value: 123 }, { kind: 'N' as const, value: [true, false] }); const o = source.pipe(dematerialize()); // $ExpectType Observable // NOTE: The `const` is required, because TS doesn't yet have a way to know for certain the // `kind` properties of these objects won't be mutated at runtime. const source2 = of({ kind: 'N' as const, value: 1 }, { kind: 'C' as const }); const o2 = source2.pipe(dematerialize()); // $ExpectType Observable const source3 = of({ kind: 'C' as const }); const o3 = source3.pipe(dematerialize()); // $ExpectType Observable const source4 = of({ kind: 'E' as const, error: new Error('bad') }); const o4 = source4.pipe(dematerialize()); // $ExpectType Observable const source5 = of({ kind: 'E' as const }); const o5 = source5.pipe(dematerialize()); // $ExpectError // Next notifications should have a value. const source6 = of({ kind: 'N' as const }); const o6 = source6.pipe(dematerialize()); // $ExpectError }); it('should enforce Notification source', () => { const o = of('foo').pipe(dematerialize()); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/distinct-spec.ts000066400000000000000000000014201431412030200222530ustar00rootroot00000000000000import { of } from 'rxjs'; import { distinct } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(distinct()); // $ExpectType Observable }); it('should accept a keySelector', () => { interface Person { name: string; } const o = of({ name: 'Tim' } as Person).pipe(distinct(person => person.name)); // $ExpectType Observable }); it('should accept flushes', () => { const o = of(1, 2, 3).pipe(distinct(n => n, of('t', 'i', 'm'))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(distinct('F00D')); // $ExpectError }); it('should enforce types of keySelector', () => { const o = of<{ id: string; }>({id: 'F00D'}).pipe(distinct(item => item.foo)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/distinctUntilChanged-spec.ts000066400000000000000000000027231431412030200245500ustar00rootroot00000000000000import { of } from 'rxjs'; import { distinctUntilChanged } from 'rxjs/operators'; interface Person { name: string; } const sample: Person = { name: 'Tim' }; it('should infer correctly', () => { const o = of(sample).pipe(distinctUntilChanged()); // $ExpectType Observable }); it('should accept a compare', () => { const o = of(sample).pipe(distinctUntilChanged((p1, p2) => p1.name === p2.name)); // $ExpectType Observable }); it('should accept a keySelector', () => { const o = of(sample).pipe(distinctUntilChanged((name1, name2) => name1 === name2, p => p.name)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(sample).pipe(distinctUntilChanged('F00D')); // $ExpectError }); it('should enforce types of compare', () => { const o = of(sample).pipe(distinctUntilChanged((p1, p2) => p1.foo === p2.name)); // $ExpectError const p = of(sample).pipe(distinctUntilChanged((p1, p2) => p1.name === p2.foo)); // $ExpectError }); it('should enforce types of keySelector', () => { const o = of(sample).pipe(distinctUntilChanged((name1 , name2) => name1 === name2, p => p.foo)); // $ExpectError }); it('should enforce types of compare in combination with keySelector', () => { const o = of(sample).pipe(distinctUntilChanged((name1: number, name2) => name1 === name2, p => p.name)); // $ExpectError const p = of(sample).pipe(distinctUntilChanged((name1, name2: number) => name1 === name2, p => p.name)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/distinctUntilKeyChanged-spec.ts000066400000000000000000000020771431412030200252230ustar00rootroot00000000000000import { of } from 'rxjs'; import { distinctUntilKeyChanged } from 'rxjs/operators'; const sample = {name: 'foobar', num: 42}; it('should infer correctly', () => { const o = of(sample).pipe(distinctUntilKeyChanged('name')); // $ExpectType Observable<{ name: string; num: number; }> }); it('should infer correctly with compare', () => { const o = of(sample).pipe(distinctUntilKeyChanged('name', () => true)); // $ExpectType Observable<{ name: string; num: number; }> }); it('should enforce key set', () => { const o = of(sample).pipe(distinctUntilKeyChanged('something')); // $ExpectError }); it('should enforce key set with compare', () => { const o = of(sample).pipe(distinctUntilKeyChanged('something', () => true)); // $ExpectError }); it("should enforce compare's type", () => { const o = of(sample).pipe(distinctUntilKeyChanged('name', (a: number, b: number) => true)); // $ExpectError }); it("should enforce key set and compare's type", () => { const o = of(sample).pipe(distinctUntilKeyChanged('something', (a: number, b: number) => true)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/elementAt-spec.ts000066400000000000000000000014631431412030200223570ustar00rootroot00000000000000import { of } from 'rxjs'; import { elementAt } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('foo').pipe(elementAt(47)); // $ExpectType Observable }); it('should support a default value', () => { const o = of('foo').pipe(elementAt(47, 'bar')); // $ExpectType Observable }); it('should enforce types', () => { const o = of('foo').pipe(elementAt()); // $ExpectError }); it('should enforce passing the index', () => { const o = of('foo').pipe(elementAt('foo')); // $ExpectError }); it('should enforce of default', () => { const o = of('foo').pipe(elementAt(5, 5)); // $ExpectType Observable }); it('should allow undefined default', () => { const o = of('foo').pipe(elementAt(100, undefined)); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/endWith-spec.ts000066400000000000000000000024361431412030200220440ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { endWith } from 'rxjs/operators'; import { A, B, a, b, c, d, e, f, g, h } from '../helpers'; it('should support a scheduler', () => { const r = of(a).pipe(endWith(asyncScheduler)); // $ExpectType Observable }); it('should infer type for N values', () => { const r0 = of(a).pipe(endWith()); // $ExpectType Observable const r1 = of(a).pipe(endWith(b)); // $ExpectType Observable const r2 = of(a).pipe(endWith(b, c)); // $ExpectType Observable const r3 = of(a).pipe(endWith(b, c, d)); // $ExpectType Observable const r4 = of(a).pipe(endWith(b, c, d, e)); // $ExpectType Observable const r5 = of(a).pipe(endWith(b, c, d, e, f)); // $ExpectType Observable const r6 = of(a).pipe(endWith(b, c, d, e, f, g)); // $ExpectType Observable const r7 = of(a).pipe(endWith(b, c, d, e, f, g, h)); // $ExpectType Observable }); it('should infer correctly with a single specified type', () => { const r0 = of(a).pipe(endWith(a)); // $ExpectType Observable const r1 = of(a).pipe(endWith(b)); // $ExpectType Observable const r2 = of(a).pipe(endWith(a)); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/every-spec.ts000066400000000000000000000051331431412030200215710ustar00rootroot00000000000000import { of, Observable } from 'rxjs'; import { every } from 'rxjs/operators'; it('should infer correctly', () => { const a = of(1, 2, 3).pipe(every(val => val < 3)); // $ExpectType Observable }); it('should support index and its type', () => { const a = of(1, 2, 3).pipe(every((val, index: number) => val < 3)); // $ExpectType Observable }); it('should support index and its type', () => { const a = of(1, 2, 3).pipe(every((val, index: number) => index < 3)); // $ExpectType Observable }); it('should infer source observable type in parameter', () => { const a = of(1, 2, 3).pipe(every((val, index, source: Observable) => val < 3)); // $ExpectType Observable }); it('should support optional thisArg parameter', () => { const a = of(1, 2, 3).pipe(every((val, index, source: Observable) => val < 3, 'any object')); // $ExpectType Observable }); it('should not accept empty parameter', () => { const a = of(1, 2, 3).pipe(every()); // $ExpectError }); it('should support source type', () => { const a = of(1, 2, 3).pipe(every((val) => val === '2')); // $ExpectError }); it('should enforce index type of number', () => { const a = of(1, 2, 3).pipe(every((val, i) => i === '3')); // $ExpectError }); it('should expect function parameter', () => { const a = of(1, 2, 3).pipe(every(9)); // $ExpectError }); it('should handle the Boolean constructor', () => { const a = of(0 as const, '' as const, false as const, null, undefined, -0 as const, 0n as const).pipe(every(Boolean)); // $ExpectType Observable const b = of(0 as const, '' as const, 'hi there' as const, false as const, null, undefined, -0 as const, 0n as const).pipe(every(Boolean)); // $ExpectType Observable const c = of('test' as const, true as const, 1 as const, [], {}).pipe(every(Boolean)); // $ExpectType Observable const d = of(NaN, NaN, NaN).pipe(every(Boolean)); // $ExpectType Observable const e = of(0, 1, 0).pipe(every(Boolean)); // $ExpectType Observable }) it('should support this', () => { const thisArg = { limit: 5 }; const a = of(1, 2, 3).pipe(every(function (val) { const limit = this.limit; // $ExpectType number return val < limit; }, thisArg)); }); it('should deprecate thisArg usage', () => { const a = of(1, 2, 3).pipe(every(Boolean)); // $ExpectNoDeprecation const b = of(1, 2, 3).pipe(every(Boolean, {})); // $ExpectDeprecation const c = of(1, 2, 3).pipe(every((value) => Boolean(value))); // $ExpectNoDeprecation const d = of(1, 2, 3).pipe(every((value) => Boolean(value), {})); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/operators/exhaustAll-spec.ts000066400000000000000000000015061431412030200225510ustar00rootroot00000000000000import { of } from 'rxjs'; import { exhaustAll } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(of(1, 2, 3)).pipe(exhaustAll()); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(exhaustAll()); // $ExpectError }); // TODO(benlesh): The following test fails for TypeScript 3.1, but passes in TypeScript 3.2 // I'm unsure what we need to do to get this so it ignores the TS 3.1 failure, as that's a bug // in TypeScript, and this is properly typed now. // it('should support union types', () => { // const a = Math.random() > 0.5 ? of(123) : of('abc'); // const b = Math.random() > 0.5 ? of(123) : of('abc'); // const source = of(a, b); // const o = source.pipe(exhaustAll()); // $ExpectType Observable // }); rxjs-7.5.7/spec-dtslint/operators/exhaustMap-spec.ts000066400000000000000000000041571431412030200225630ustar00rootroot00000000000000import { of } from 'rxjs'; import { exhaustMap } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(exhaustMap(p => of(Boolean(p)))); // $ExpectType Observable }); it('should support a projector that takes an index', () => { const o = of(1, 2, 3).pipe(exhaustMap((p, index) => of(Boolean(p)))); // $ExpectType Observable }); it('should infer correctly by using the resultSelector first parameter', () => { const o = of(1, 2, 3).pipe(exhaustMap(p => of(Boolean(p)), a => a)); // $ExpectType Observable }); it('should infer correctly by using the resultSelector second parameter', () => { const o = of(1, 2, 3).pipe(exhaustMap(p => of(Boolean(p)), (a, b) => b)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner index', () => { const o = of(1, 2, 3).pipe(exhaustMap(p => of(Boolean(p)), (a, b, innerIndex) => a)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner and outer index', () => { const o = of(1, 2, 3).pipe(exhaustMap(p => of(Boolean(p)), (a, b, innerIndex, outerIndex) => a)); // $ExpectType Observable }); it('should support an undefined resultSelector', () => { const o = of(1, 2, 3).pipe(exhaustMap(p => of(Boolean(p)), undefined)); // $ExpectType Observable }); it('should report projections to union types', () => { const o = of(Math.random()).pipe(exhaustMap(n => n > 0.5 ? of('life') : of(42))); // $ExpectType Observable }); it('should support union-type projections with empty streams', () => { const o = of(1, 2, 3).pipe(exhaustMap(n => Math.random() < 0.5 ? of(123) : of())); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(exhaustMap()); // $ExpectError }); it('should enforce the return type', () => { const o = of(1, 2, 3).pipe(exhaustMap(p => p)); // $ExpectError }); it('should produce `Observable` when mapping to an `ObservableInput`', () => { const o = of(1, 2, 3).pipe(exhaustMap(n => Promise.reject())); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/expand-spec.ts000066400000000000000000000041621431412030200217170ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { expand } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(expand(value => of(value))); // $ExpectType Observable const p = of(1, 2, 3).pipe(expand(value => [value])); // $ExpectType Observable const q = of(1, 2, 3).pipe(expand(value => Promise.resolve(value))); // $ExpectType Observable }); it('should infer correctly with a different type as the source', () => { const o = of(1, 2, 3).pipe(expand(value => of('foo'))); // $ExpectType Observable const p = of(1, 2, 3).pipe(expand(value => ['foo'])); // $ExpectType Observable const q = of(1, 2, 3).pipe(expand(value => Promise.resolve('foo'))); // $ExpectType Observable }); it('should support a project function with index', () => { const o = of(1, 2, 3).pipe(expand((value, index) => of(index))); // $ExpectType Observable }); it('should support concurrent parameter', () => { const o = of(1, 2, 3).pipe(expand(value => of(1), 47)); // $ExpectType Observable }); it('should support a scheduler', () => { const o = of(1, 2, 3).pipe(expand(value => of(1), 47, asyncScheduler)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(expand()); // $ExpectError }); it('should enforce project types', () => { const o = of(1, 2, 3).pipe(expand((value: string, index) => of(1))); // $ExpectError const p = of(1, 2, 3).pipe(expand((value, index: string) => of(1))); // $ExpectError }); it('should enforce project return type', () => { const o = of(1, 2, 3).pipe(expand(value => 1)); // $ExpectError }); it('should enforce concurrent type', () => { const o = of(1, 2, 3).pipe(expand(value => of(1), 'foo')); // $ExpectError }); it('should enforce scheduler type', () => { const o = of(1, 2, 3).pipe(expand(value => of(1), 47, 'foo')); // $ExpectError }); it('should support union types', () => { const o = of(1).pipe(expand(x => typeof x === 'string' ? of(123) : of('test'))); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/filter-spec.ts000066400000000000000000000106141431412030200217240ustar00rootroot00000000000000import { Observable, of } from 'rxjs'; import { filter, map } from 'rxjs/operators'; it('should support a predicate', () => { const o = of(1, 2, 3).pipe(filter(value => value < 3)); // $ExpectType Observable }); it('should support a predicate with an index', () => { const o = of(1, 2, 3).pipe(filter((value, index) => index < 3)); // $ExpectType Observable }); it('should support a predicate and an argument', () => { const o = of(1, 2, 3).pipe(filter(value => value < 3, 'bonjour')); // $ExpectType Observable }); it('should support a user-defined type guard', () => { const o = of(1, 2, 3).pipe(filter((value: number): value is 1 => value < 3)); // $ExpectType Observable<1> }); it('should support a user-defined type guard with an index', () => { const o = of(1, 2, 3).pipe(filter((value: number, index): value is 1 => index < 3)); // $ExpectType Observable<1> }); it('should support a user-defined type guard and an argument', () => { const o = of(1, 2, 3).pipe(filter((value: number): value is 1 => value < 3, 'hola')); // $ExpectType Observable<1> }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(filter()); // $ExpectError }); it('should enforce predicate types', () => { const o = of(1, 2, 3).pipe(filter(value => value < '3')); // $ExpectError const p = of(1, 2, 3).pipe(filter((value, index) => index < '3')); // $ExpectError }); it('should enforce user-defined type guard types', () => { const o = of(1, 2, 3).pipe(filter((value: string): value is '1' => value < '3')); // $ExpectError const p = of(1, 2, 3).pipe(filter((value: number, index): value is 1 => index < '3')); // $ExpectError }); it('should support Boolean as a predicate', () => { const o = of(1, 2, 3).pipe(filter(Boolean)); // $ExpectType Observable const p = of(1, null, undefined).pipe(filter(Boolean)); // $ExpectType Observable const q = of(null, undefined).pipe(filter(Boolean)); // $ExpectType Observable const r = of(true).pipe(filter(Boolean)); // $ExpectType Observable const s = of(false as const).pipe(filter(Boolean)); // $ExpectType Observable const t = of(0 as const, -0 as const, 1 as const).pipe(filter(Boolean)); // $ExpectType Observable<1> const u = of(0 as const, -0 as const).pipe(filter(Boolean)); // $ExpectType Observable const v = of('' as const, "foo" as const, "bar" as const).pipe(filter(Boolean)); // $ExpectType Observable<"foo" | "bar"> const w = of('' as const).pipe(filter(Boolean)); // $ExpectType Observable // Intentionally weird looking test... `false` is `boolean`, which is `true | false`. const x = of(false, false, false, false).pipe(filter(Boolean)); // $ExpectType Observable }); // I've not been able to effect a failing dtslint test for this situation and a // conventional test won't fail because the TypeScript configuration isn't // sufficiently strict: // https://github.com/ReactiveX/rxjs/issues/4959#issuecomment-520629091 it('should support inference from a return type with Boolean as a predicate', () => { interface I { a: string | null; } const i$: Observable = of(); const s$: Observable = i$.pipe(map(i => i.a), filter(Boolean)); // $ExpectType Observable }); it('should support inference from a generic return type of the predicate', () => { function isDefined() { return (value: T|undefined|null): value is T => { return value !== undefined && value !== null; }; } const o$ = of(1, null, {foo: 'bar'}, true, undefined, 'Nick Cage').pipe(filter(isDefined())); // $ExpectType Observable }); it('should support inference from a predicate that returns any', () => { function isTruthy(value: number): any { return !!value; } const o$ = of(1).pipe(filter(isTruthy)); // $ExpectType Observable }); it('should support this', () => { const thisArg = { limit: 5 }; const a = of(1, 2, 3).pipe(filter(function (val) { const limit = this.limit; // $ExpectType number return val < limit; }, thisArg)); }); it('should deprecate thisArg usage', () => { const a = of(1, 2, 3).pipe(filter(Boolean)); // $ExpectNoDeprecation const b = of(1, 2, 3).pipe(filter(Boolean, {})); // $ExpectDeprecation const c = of(1, 2, 3).pipe(filter((value) => Boolean(value))); // $ExpectNoDeprecation const d = of(1, 2, 3).pipe(filter((value) => Boolean(value), {})); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/operators/finalize-spec.ts000066400000000000000000000005551431412030200222430ustar00rootroot00000000000000import { of } from 'rxjs'; import { finalize } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(finalize(() => {})); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(finalize()); // $ExpectError const p = of(1, 2, 3).pipe(finalize((value => {}))); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/find-spec.ts000066400000000000000000000046111431412030200213570ustar00rootroot00000000000000import { of } from 'rxjs'; import { find } from 'rxjs/operators'; it('should support a user-defined type guard', () => { const o = of('foo').pipe(find((s): s is 'foo' => true)); // $ExpectType Observable<"foo" | undefined> }); it('should support a user-defined type guard that takes an index', () => { const o = of('foo').pipe(find((s, index): s is 'foo' => true)); // $ExpectType Observable<"foo" | undefined> }); it('should support a user-defined type guard that takes an index and the source', () => { const o = of('foo').pipe(find((s, index, source): s is 'foo' => true)); // $ExpectType Observable<"foo" | undefined> }); it('should support a predicate', () => { const o = of('foo').pipe(find(s => true)); // $ExpectType Observable }); it('should support a predicate that takes an index', () => { const o = of('foo').pipe(find((s, index) => true)); // $ExpectType Observable }); it('should support a predicate that takes an index and the source', () => { const o = of('foo').pipe(find((s, index, source) => true)); // $ExpectType Observable }); it('should support Boolean properly', () => { const o1 = of('' as const).pipe(find(Boolean)); // $ExpectType Observable const o2 = of('' as const, 'hi' as const).pipe(find(Boolean)); // $ExpectType Observable<"hi"> const o3 = of('' as const, 0 as const, 'test' as const, 'what' as const).pipe(find(Boolean)); // $ExpectType Observable<"test" | "what"> const o5 = of(false as const, null, undefined, '' as const, 0 as const, 0 as const).pipe(find(Boolean)); // $ExpectType Observable // Intentionally weird looking: Because `Observable` is `Observable` and `true` is the truthy bit. const o4 = of(false, false, false, false).pipe(find(Boolean)); // $ExpectType Observable }); it('should support this', () => { const thisArg = { wanted: 5 }; const a = of(1, 2, 3).pipe(find(function (val) { const wanted = this.wanted; // $ExpectType number return val < wanted; }, thisArg)); }); it('should deprecate thisArg usage', () => { const a = of(1, 2, 3).pipe(find(Boolean)); // $ExpectNoDeprecation const b = of(1, 2, 3).pipe(find(Boolean, {})); // $ExpectDeprecation const c = of(1, 2, 3).pipe(find((value) => Boolean(value))); // $ExpectNoDeprecation const d = of(1, 2, 3).pipe(find((value) => Boolean(value), {})); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/operators/findIndex-spec.ts000066400000000000000000000047761431412030200223630ustar00rootroot00000000000000import { of, Observable } from 'rxjs'; import { findIndex } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('foo', 'bar', 'baz').pipe(findIndex(p => p === 'foo')); // $ExpectType Observable }); it('should support a predicate that takes an index ', () => { const o = of('foo', 'bar', 'baz').pipe(findIndex((p, index) => index === 3)); // $ExpectType Observable }); it('should support a predicate that takes a source ', () => { const o = of('foo', 'bar', 'baz').pipe(findIndex((p, index, source) => p === 'foo')); // $ExpectType Observable }); it('should support an argument ', () => { const o = of('foo', 'bar', 'baz').pipe(findIndex(p => p === 'foo', 123)); // $ExpectType Observable }); it('should enforce types', () => { const o = of('foo', 'bar', 'baz').pipe(findIndex()); // $ExpectError }); it('should enforce predicate types', () => { const o = of('foo', 'bar', 'baz').pipe(findIndex((p: number) => p === 3)); // $ExpectError const p = of('foo', 'bar', 'baz').pipe(findIndex((p, index: string) => p === 3)); // $ExpectError const q = of('foo', 'bar', 'baz').pipe(findIndex((p, index, source: Observable) => p === 3)); // $ExpectError }); it('should enforce predicate return type', () => { const o = of('foo', 'bar', 'baz').pipe(findIndex(p => p)); // $ExpectError }); it('should support Boolean constructor', () => { const a = of(0 as const, -0 as const, null, undefined, false as const, '' as const).pipe(findIndex(Boolean)); // $ExpectType Observable<-1> const b = of(0 as const, -0 as const, null, 'hi there' as const, undefined, false as const, '' as const).pipe(findIndex(Boolean)); // $ExpectType Observable }); it('should support inference from a predicate that returns any', () => { function isTruthy(value: number): any { return !!value; } const a = of(1).pipe(findIndex(isTruthy)); // $ExpectType Observable }); it('should support this', () => { const thisArg = { wanted: 5 }; const a = of(1, 2, 3).pipe(findIndex(function (val) { const wanted = this.wanted; // $ExpectType number return val < wanted; }, thisArg)); }); it('should deprecate thisArg usage', () => { const a = of(1, 2, 3).pipe(findIndex(Boolean)); // $ExpectNoDeprecation const b = of(1, 2, 3).pipe(findIndex(Boolean, {})); // $ExpectDeprecation const c = of(1, 2, 3).pipe(findIndex((value) => Boolean(value))); // $ExpectNoDeprecation const d = of(1, 2, 3).pipe(findIndex((value) => Boolean(value), {})); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/operators/first-spec.ts000066400000000000000000000060621431412030200215700ustar00rootroot00000000000000import { of } from 'rxjs'; import { first } from 'rxjs/operators'; const isFooBar = (value: string): value is 'foo' | 'bar' => /^(foo|bar)$/.test(value); it('should support an undefined predicate with no default', () => { const o = of('foo').pipe(first(undefined)); // $ExpectType Observable }); it('should support an undefined predicate with a T default', () => { const o = of('foo').pipe(first(undefined, 'bar')); // $ExpectType Observable }); it('should support an undefined predicate with a non-T default', () => { const o = of('foo').pipe(first(undefined, false)); // $ExpectType Observable }); it('should default D to T with an undefined predicate', () => { const o = of('foo').pipe(first(undefined)); // $Observable }); it('should support a null predicate with no default', () => { const o = of('foo').pipe(first(null)); // $ExpectType Observable }); it('should support a null predicate with a T default', () => { const o = of('foo').pipe(first(null, 'bar')); // $ExpectType Observable }); it('should support a null predicate with a non-T default', () => { const o = of('foo').pipe(first(null, false)); // $ExpectType Observable }); it('should default D to T with a null predicate', () => { const o = of('foo').pipe(first(null)); // $Observable }); it('should support a user-defined type guard with no default', () => { const o = of('foo').pipe(first(isFooBar)); // $ExpectType Observable<"foo" | "bar"> }); it('should support a user-defined type guard with an S default', () => { const o = of('foo').pipe(first(isFooBar, 'bar')); // $ExpectType Observable<"foo" | "bar"> }); it('should widen a user-defined type guard with a non-S default', () => { const o = of('foo').pipe(first(isFooBar, false)); // $ExpectType Observable }); it('should support a predicate with no default', () => { const o = of('foo').pipe(first(x => !!x)); // $ExpectType Observable }); it('should support a predicate with a T default', () => { const o = of('foo').pipe(first(x => !!x, 'bar')); // $ExpectType Observable }); it('should support a predicate with a non-T default', () => { const o = of('foo').pipe(first(x => !!x, false)); // $ExpectType Observable }); it('should work properly with the Boolean constructor', () => { const o1 = of('' as const).pipe(first(Boolean)); // $ExpectType Observable const o2 = of('', 'hi').pipe(first(Boolean)); // $ExpectType Observable const o3 = of('' as const, 'hi' as const).pipe(first(Boolean)); // $ExpectType Observable<"hi"> const o4 = of(0 as const, 'hi' as const).pipe(first(Boolean)); // $ExpectType Observable<"hi"> const o5 = of(0 as const, 'hi' as const, 'what' as const).pipe(first(Boolean)); // $ExpectType Observable<"hi" | "what"> }); it('should support inference from a predicate that returns any', () => { function isTruthy(value: number): any { return !!value; } const o$ = of(1).pipe(first(isTruthy)); // $ExpectType Observable });rxjs-7.5.7/spec-dtslint/operators/groupBy-spec.ts000066400000000000000000000076071431412030200220760ustar00rootroot00000000000000import { of, Subject, GroupedObservable } from 'rxjs'; import { groupBy, mergeMap } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(groupBy(value => value.toString())); // $ExpectType Observable> }); it('should support an element selector', () => { const o = of(1, 2, 3).pipe(groupBy(value => value.toString(), value => Boolean(value))); // $ExpectType Observable> }); it('should support a duration selector', () => { const o = of(1, 2, 3).pipe(groupBy(value => value.toString(), undefined, (value: GroupedObservable) => of(true, false))); // $ExpectType Observable> }); it('should infer type of duration selector based on element selector', () => { /* tslint:disable-next-line:max-line-length */ const o = of(1, 2, 3).pipe(groupBy(value => value.toString(), value => Boolean(value), (value: GroupedObservable) => value)); // $ExpectType Observable> }); it('should support a subject selector', () => { const o = of(1, 2, 3).pipe(groupBy(value => value.toString(), undefined, undefined, () => new Subject())); // $ExpectType Observable> }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(groupBy()); // $ExpectError }); it('should enforce type of key selector', () => { const o = of(1, 2, 3).pipe(groupBy('nope')); // $ExpectError }); it('should enforce types of element selector', () => { const o = of(1, 2, 3).pipe(groupBy(value => value, 'foo')); // $ExpectError const p = of(1, 2, 3).pipe(groupBy(value => value, (value: string) => value)); // $ExpectError }); it('should enforce types of duration selector', () => { const o = of(1, 2, 3).pipe(groupBy(value => value.toString(), undefined, value => 'foo')); // $ExpectError const p = of(1, 2, 3).pipe(groupBy(value => value.toString(), undefined, (value: GroupedObservable) => value)); // $ExpectError const q = of(1, 2, 3).pipe(groupBy(value => value.toString(), undefined, (value: GroupedObservable) => value)); // $ExpectError const r = of(1, 2, 3).pipe(groupBy(value => value.toString(), value => Boolean(value), (value: GroupedObservable) => value)); // $ExpectError const s = of(1, 2, 3).pipe(groupBy(value => value.toString(), value => Boolean(value), (value: GroupedObservable) => value)); // $ExpectError }); it('should enforce types of subject selector', () => { const o = of(1, 2, 3).pipe(groupBy(value => value.toString(), undefined, undefined, () => 'nope')); // $ExpectError const p = of(1, 2, 3).pipe(groupBy(value => value.toString(), undefined, undefined, (value) => new Subject())); // $ExpectError }); it('should support a user-defined type guard', () => { function isNumber(value: string | number): value is number { return typeof value === 'number'; } const o = of('a', 1, 'b', 2).pipe( groupBy(isNumber), mergeMap((group) => { if (group.key) { const inferred = group; // $ExpectType GroupedObservable return inferred; } else { const inferred = group; // $ExpectType GroupedObservable return inferred; } }) ); const inferred = o; // $ExpectType Observable }); it('should support an inline user-defined type guard', () => { const o = of('a', 1, 'b', 2).pipe( groupBy((value): value is number => typeof value === 'number'), mergeMap((group) => { if (group.key) { const inferred = group; // $ExpectType GroupedObservable return inferred; } else { const inferred = group; // $ExpectType GroupedObservable return inferred; } }) ); const inferred = o; // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/ignoreElements-spec.ts000066400000000000000000000004651431412030200234220ustar00rootroot00000000000000import { of } from 'rxjs'; import { ignoreElements } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(ignoreElements()); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(ignoreElements('nope')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/isEmpty-spec.ts000066400000000000000000000004421431412030200220670ustar00rootroot00000000000000import { of } from 'rxjs'; import { isEmpty } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(isEmpty()); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(isEmpty('nope')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/last-spec.ts000066400000000000000000000072221431412030200214030ustar00rootroot00000000000000import { of } from 'rxjs'; import { last } from 'rxjs/operators'; const isFooBar = (value: string): value is 'foo' | 'bar' => /^(foo|bar)$/.test(value); it('should support an undefined predicate with no default', () => { const o = of('foo').pipe(last(undefined)); // $ExpectType Observable }); it('should support an undefined predicate with a T default', () => { const o = of('foo').pipe(last(undefined, 'bar')); // $ExpectType Observable }); it('should support an undefined predicate with a non-T default', () => { const o = of('foo').pipe(last(undefined, false)); // $ExpectType Observable }); it('should default D to T with an undefined predicate', () => { const o = of('foo').pipe(last(undefined)); // $Observable }); it('should support a null predicate with no default', () => { const o = of('foo').pipe(last(null)); // $ExpectType Observable }); it('should support a null predicate with a T default', () => { const o = of('foo').pipe(last(null, 'bar')); // $ExpectType Observable }); it('should support a null predicate with a non-T default', () => { const o = of('foo').pipe(last(null, false)); // $ExpectType Observable }); it('should default D to T with a null predicate', () => { const o = of('foo').pipe(last(null)); // $Observable }); it('should support a user-defined type guard with no default', () => { const o = of('foo').pipe(last(isFooBar)); // $ExpectType Observable<"foo" | "bar"> }); it('should support a user-defined type guard with an S default', () => { const o = of('foo').pipe(last(isFooBar, 'bar')); // $ExpectType Observable<"foo" | "bar"> }); it('should widen a user-defined type guard with a non-S default', () => { const o = of('foo').pipe(last(isFooBar, false)); // $ExpectType Observable }); it('should support a predicate with no default', () => { const o = of('foo').pipe(last(x => !!x)); // $ExpectType Observable }); it('should support a predicate with a T default', () => { const o = of('foo').pipe(last(x => !!x, 'bar')); // $ExpectType Observable }); it('should support a predicate with a non-T default', () => { const o = of('foo').pipe(last(x => !!x, false)); // $ExpectType Observable }); it('should default D to T with a predicate', () => { const o = of('foo').pipe(last(x => !!x)); // $ExpectType Observable }); it('should handle predicates that always return false properly', () => { const a = of('foo', 'bar').pipe(last(() => false as const)); // $ExpectType Observable const b = of('foo', 'bar').pipe(last(() => false as const, 1337 as const)); // $ExpectType Observable }); it('should handle Boolean constructor properly', () => { const a = of(0 as const, -0 as const, null, undefined, false as const, '' as const, 0n as const).pipe(last(Boolean)); // $ExpectType Observable const b = of(0 as const, -0 as const, null, undefined, false as const, '' as const, 0n as const).pipe(last(Boolean, 'test' as const)); // $ExpectType Observable<"test"> const c = of(0 as const, -0 as const, null, 'hi' as const, undefined, false as const, '' as const, 0n as const).pipe(last(Boolean)); // $ExpectType Observable<"hi"> const d = of(0 as const, -0 as const, null, 'hi' as const, undefined, false as const, '' as const, 0n as const).pipe(last(Boolean, 'test' as const)); // $ExpectType Observable<"test" | "hi"> }); it('should support inference from a predicate that returns any', () => { function isTruthy(value: number): any { return !!value; } const o$ = of(1).pipe(last(isTruthy)); // $ExpectType Observable });rxjs-7.5.7/spec-dtslint/operators/map-spec.ts000066400000000000000000000026221431412030200212140ustar00rootroot00000000000000import { of } from 'rxjs'; import { map } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(map(value => value)); // $ExpectType Observable }); it('should infer correctly when returning a different type', () => { const o = of(1, 2, 3).pipe(map(String)); // $ExpectType Observable }); it('should support an index parameter', () => { const o = of('a', 'b', 'c').pipe(map((value, index) => index)); // $ExpectType Observable }); it('should support an extra parameter', () => { const o = of(1, 2, 3).pipe(map(value => value, 'something')); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(map()); // $ExpectError }); it('should enforce the projector types', () => { const o = of(1, 2, 3).pipe(map((value: string) => value)); // $ExpectError const p = of(1, 2, 3).pipe(map((value, index: string) => value)); // $ExpectError }); it('should support this', () => { const thisArg = { limit: 2 }; const o = of(1, 2, 3).pipe(map(function (val) { const limit = this.limit; // $ExpectType number return val < limit ? val : limit; }, thisArg)); }); it('should deprecate thisArg usage', () => { const a = of(1, 2, 3).pipe(map((value) => value)); // $ExpectNoDeprecation const b = of(1, 2, 3).pipe(map((value) => value, {})); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/operators/mapTo-spec.ts000066400000000000000000000010321431412030200215110ustar00rootroot00000000000000import { of } from 'rxjs'; import { mapTo } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(mapTo(47)); // $ExpectType Observable }); it('should infer correctly when returning a different type', () => { const o = of(1, 2, 3).pipe(mapTo('carrot')); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(mapTo()); // $ExpectError }); it('should be deprecated', () => { const o = of(1, 2, 3).pipe(mapTo(true)); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/operators/materialize-spec.ts000066400000000000000000000005321431412030200227430ustar00rootroot00000000000000import { of } from 'rxjs'; import { materialize } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('foo').pipe(materialize()); // $ExpectType Observable & ObservableNotification> }); it('should enforce types', () => { const o = of('foo').pipe(materialize(() => {})); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/max-spec.ts000066400000000000000000000013001431412030200212140ustar00rootroot00000000000000import { of } from 'rxjs'; import { max } from 'rxjs/operators'; it('should infer correctly', () => { const a = of(1, 2, 3).pipe(max()); // $ExpectType Observable const b = of('abc', 'bcd', 'def').pipe(max()); // $ExpectType Observable }); it(' should except empty comparer', () => { const a = of(1, 2, 3).pipe(max()); // $ExpectType Observable }); it('should enforce comparer types', () => { const a = of(1, 2, 3).pipe(max((a: number, b: number) => a - b)); // $ExpectType Observable const b = of(1, 2, 3).pipe(max((a: number, b: string) => 0)); // $ExpectError const c = of(1, 2, 3).pipe(max((a: string, b: number) => 0)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/merge-spec.ts000066400000000000000000000071161431412030200215410ustar00rootroot00000000000000import { asyncScheduler } from 'rxjs'; import { merge } from 'rxjs/operators'; import { a$, b$, c$, d$, e$, f$} from '../helpers'; it('should accept no parameter', () => { const res = a$.pipe(merge()); // $ExpectType Observable }); it('should infer correctly with scheduler param', () => { const res = a$.pipe(merge(asyncScheduler)); // $ExpectType Observable }); it('should infer correctly with concurrent param', () => { const res = a$.pipe(merge(3)); // $ExpectType Observable }); it('should infer correctly with concurrent and scheduler param', () => { const res = a$.pipe(merge(3, asyncScheduler)); // $ExpectType Observable }); it('should infer correctly with 1 Observable param', () => { const res = a$.pipe(merge(b$)); // $ExpectType Observable }); it('should infer correctly with 2 Observable param', () => { const res = a$.pipe(merge(b$, c$)); // $ExpectType Observable }); it('should infer correctly with 3 Observable param', () => { const res = a$.pipe(merge(b$, c$, d$)); // $ExpectType Observable }); it('should infer correctly with 4 Observable param', () => { const res = a$.pipe(merge(b$, c$, d$, e$)); // $ExpectType Observable }); it('should infer correctly with 5 Observable param', () => { const res = a$.pipe(merge(b$, c$, d$, e$, f$)); // $ExpectType Observable }); it('should infer correctly with 1 Observable and concurrent param', () => { const res = a$.pipe(merge(b$, 1)); // $ExpectType Observable }); it('should infer correctly with 2 Observable and concurrent param', () => { const res = a$.pipe(merge(b$, c$, 1)); // $ExpectType Observable }); it('should infer correctly with 3 Observable and concurrent param', () => { const res = a$.pipe(merge(b$, c$, d$, 1)); // $ExpectType Observable }); it('should infer correctly with 4 Observable and concurrent param', () => { const res = a$.pipe(merge(b$, c$, d$, e$, 1)); // $ExpectType Observable }); it('should infer correctly with 5 Observable and concurrent param', () => { const res = a$.pipe(merge(b$, c$, d$, e$, f$, 1)); // $ExpectType Observable }); it('should infer correctly with 1 Observable, concurrent, and scheduler param', () => { const res = a$.pipe(merge(b$, 1, asyncScheduler)); // $ExpectType Observable }); it('should infer correctly with 2 Observable, concurrent, and scheduler param', () => { const res = a$.pipe(merge(b$, c$, 1, asyncScheduler)); // $ExpectType Observable }); it('should infer correctly with 3 Observable, concurrent, and scheduler param', () => { const res = a$.pipe(merge(b$, c$, d$, 1, asyncScheduler)); // $ExpectType Observable }); it('should infer correctly with 4 Observable, concurrent, and scheduler param', () => { const res = a$.pipe(merge(b$, c$, d$, e$, 1, asyncScheduler)); // $ExpectType Observable }); it('should infer correctly with 5 Observable, concurrent, and scheduler param', () => { const res = a$.pipe(merge(b$, c$, d$, e$, f$, 1, asyncScheduler)); // $ExpectType Observable }); // TODO: Fix this when the both merge operator and merge creator function has been fix // see: https://github.com/ReactiveX/rxjs/pull/4371#issuecomment-441124096 // Comment is about combineLater, but, it's the same problem to fix // it('should infer correctly with array param', () => { // const res = of(1, 2, 3); // const b = [of('a', 'b', 'c')]; // const res = a.pipe(merge(b)); // $ExpectType Observable> // }); rxjs-7.5.7/spec-dtslint/operators/mergeAll-spec.ts000066400000000000000000000007421431412030200221700ustar00rootroot00000000000000import { of } from 'rxjs'; import { mergeAll } from 'rxjs/operators'; import { a$, b$ } from '../helpers'; it('should infer correctly with sources of same type', () => { const o = of(a$, a$).pipe(mergeAll()); // $ExpectType Observable }); it('should infer correctly with sources of different types', () => { const o = of(a$, b$).pipe(mergeAll()); // $ExpectType Observable }); it('should enforce types', () => { const o = a$.pipe(mergeAll()); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/mergeMap-spec.ts000066400000000000000000000061741431412030200222020ustar00rootroot00000000000000import { of } from 'rxjs'; import { mergeMap } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(mergeMap(p => of(Boolean(p)))); // $ExpectType Observable }); it('should support a projector that takes an index', () => { const o = of(1, 2, 3).pipe(mergeMap((p, index) => of(Boolean(p)))); // $ExpectType Observable }); it('should infer correctly by using the resultSelector first parameter', () => { const o = of(1, 2, 3).pipe(mergeMap(p => of(Boolean(p)), a => a)); // $ExpectType Observable }); it('should infer correctly by using the resultSelector second parameter', () => { const o = of(1, 2, 3).pipe(mergeMap(p => of(Boolean(p)), (a, b) => b)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner index', () => { const o = of(1, 2, 3).pipe(mergeMap(p => of(Boolean(p)), (a, b, innerIndex) => a)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner and outer index', () => { const o = of(1, 2, 3).pipe(mergeMap(p => of(Boolean(p)), (a, b, innerIndex, outerIndex) => a)); // $ExpectType Observable }); it('should support an undefined resultSelector', () => { const o = of(1, 2, 3).pipe(mergeMap(p => of(Boolean(p)), undefined)); // $ExpectType Observable }); it('should support a concurrent parameter', () => { const o = of(1, 2, 3).pipe(mergeMap(p => of(Boolean(p)), 4)); // $ExpectType Observable }); it('should support a resultSelector and concurrent parameter', () => { const o = of(1, 2, 3).pipe(mergeMap(p => of(Boolean(p)), (a, b) => b, 4)); // $ExpectType Observable }); it('should support a undefined resultSelector and concurrent parameter', () => { const o = of(1, 2, 3).pipe(mergeMap(p => of(Boolean(p)), undefined, 4)); // $ExpectType Observable }); it('should support union-type projections', () => { const o = of(Math.random()).pipe(mergeMap(n => n > 0.5 ? of('life') : of(42))); // $ExpectType Observable }); it('should support union-type projections with empty streams', () => { const o = of(1, 2, 3).pipe(mergeMap(n => Math.random() < 0.5 ? of(123) : of())); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(mergeMap()); // $ExpectError }); it('should enforce the return type', () => { const o = of(1, 2, 3).pipe(mergeMap(p => p)); // $ExpectError }); it('should enforce types of the concurrent parameter', () => { const o = of(1, 2, 3).pipe(mergeMap(p => of(Boolean(p)), '4')); // $ExpectError }); it('should enforce types of the concurrent parameter with a resultSelector', () => { const o = of(1, 2, 3).pipe(mergeMap(p => of(Boolean(p)), (a => a), '4')); // $ExpectError }); it('should enforce types of the concurrent parameter with an undefined resultSelector', () => { const o = of(1, 2, 3).pipe(mergeMap(p => of(Boolean(p)), undefined, '4')); // $ExpectError }); it('should produce `Observable` when mapping to an `ObservableInput`', () => { const o = of(1, 2, 3).pipe(mergeMap(n => Promise.reject())); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/mergeMapTo-spec.ts000066400000000000000000000061621431412030200225020ustar00rootroot00000000000000import { of } from 'rxjs'; import { mergeMapTo } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(mergeMapTo(of('foo'))); // $ExpectType Observable }); it('should infer correctly multiple types', () => { const o = of(1, 2, 3).pipe(mergeMapTo(of('foo', 4))); // $ExpectType Observable }); it('should infer correctly with an array', () => { const o = of(1, 2, 3).pipe(mergeMapTo([4, 5, 6])); // $ExpectType Observable }); it('should infer correctly with a Promise', () => { const o = of(1, 2, 3).pipe(mergeMapTo(new Promise(() => {}))); // $ExpectType Observable }); it('should support a concurrent parameter', () => { const o = of(1, 2, 3).pipe(mergeMapTo(of('foo'), 4)); // $ExpectType Observable }); it('should infer correctly by using the resultSelector first parameter', () => { const o = of(1, 2, 3).pipe(mergeMapTo(of('foo'), a => a)); // $ExpectType Observable }); it('should infer correctly by using the resultSelector second parameter', () => { const o = of(1, 2, 3).pipe(mergeMapTo(of('foo'), (a, b) => b)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner index', () => { const o = of(1, 2, 3).pipe(mergeMapTo(of('foo'), (a, b, innerIndex) => a)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner and outer index', () => { const o = of(1, 2, 3).pipe(mergeMapTo(of('foo'), (a, b, innerIndex, outerIndex) => a)); // $ExpectType Observable }); it('should support a resultSelector and concurrent parameter', () => { const o = of(1, 2, 3).pipe(mergeMapTo(of('foo'), (a, b) => b, 4)); // $ExpectType Observable }); it('should support union-type projections with empty streams', () => { const o = of(1, 2, 3).pipe(mergeMapTo(Math.random() < 0.5 ? of(123) : of())); // $ExpectType Observable }); it('should support union types', () => { const s = Math.random() > 0.5 ? of(123) : of('abc'); const r = of(1, 2, 3).pipe(mergeMapTo(s)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(mergeMapTo()); // $ExpectError }); it('should enforce types of the observable parameter', () => { const fn = () => {} const o = of(1, 2, 3).pipe(mergeMapTo(fn)); // $ExpectError }); it('should enforce the return type', () => { const o = of(1, 2, 3).pipe(mergeMapTo(p => p)); // $ExpectError const p = of(1, 2, 3).pipe(mergeMapTo(4)); // $ExpectError }); it('should enforce types of the concurrent parameter', () => { const o = of(1, 2, 3).pipe(mergeMapTo(of('foo'), '4')); // $ExpectError }); it('should enforce types of the concurrent parameter with a resultSelector', () => { const o = of(1, 2, 3).pipe(mergeMapTo(of('foo'), (a => a), '4')); // $ExpectError }); it('should produce `Observable` when mapping to an `ObservableInput`', () => { const o = of(1, 2, 3).pipe(mergeMapTo(Promise.reject())); // $ExpectType Observable }); it('should be deprecated', () => { const o = of(1, 2, 3).pipe(mergeMapTo(of(true))); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/operators/mergeScan-spec.ts000066400000000000000000000034431431412030200223450ustar00rootroot00000000000000import { of } from 'rxjs'; import { mergeScan } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(mergeScan((acc, value) => of(acc + value), 0)); // $ExpectType Observable }); it('should infer correctly by using the seed', () => { const o = of(1, 2, 3).pipe(mergeScan((acc, value) => of(acc + value), '')); // $ExpectType Observable }); it('should support the accumulator returning an iterable', () => { const o = of(1, 2, 3).pipe(mergeScan((acc, value) => acc + value, '')); // $ExpectType Observable }); it('should support the accumulator returning a promise', () => { const o = of(1, 2, 3).pipe(mergeScan(acc => Promise.resolve(acc), '')); // $ExpectType Observable }); it('should support a currency', () => { const o = of(1, 2, 3).pipe(mergeScan((acc, value) => of(acc + value), '', 47)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(mergeScan()); // $ExpectError }); it('should enforce accumulate types', () => { const o = of(1, 2, 3).pipe(mergeScan((acc: string, value) => of(acc + value), 0)); // $ExpectError const p = of(1, 2, 3).pipe(mergeScan((acc, value: string) => of(acc + value), 0)); // $ExpectError }); it('should enforce accumulate return type', () => { const o = of(1, 2, 3).pipe(mergeScan((acc, value) => of(''), 0)); // $ExpectError }); it('should enforce concurrent type', () => { const o = of(1, 2, 3).pipe(mergeScan((acc, value) => of(acc + value), 0, '')); // $ExpectError }); // TODO(benlesh): It still seems we don't have a great way to do this in TS 3.2 // it('should support union types', () => { // const o = of(1, 2, 3).pipe(mergeScan(() => Math.random() > 0.5 ? of(123) : of('test'), 0)); // $ExpectType Observable // }); rxjs-7.5.7/spec-dtslint/operators/mergeWith-spec.ts000066400000000000000000000015411431412030200223710ustar00rootroot00000000000000import { mergeWith } from 'rxjs/operators'; import { a$, b$, c$, d$, e$, f$, g$, h$} from '../helpers'; it('should accept N args', () => { const r0 = a$.pipe(mergeWith()); // $ExpectType Observable const r1 = a$.pipe(mergeWith(b$)); // $ExpectType Observable const r2 = a$.pipe(mergeWith(b$, c$)); // $ExpectType Observable const r3 = a$.pipe(mergeWith(b$, c$, d$)); // $ExpectType Observable const r4 = a$.pipe(mergeWith(b$, c$, d$, e$)); // $ExpectType Observable const r5 = a$.pipe(mergeWith(b$, c$, d$, e$, f$)); // $ExpectType Observable const r6 = a$.pipe(mergeWith(b$, c$, d$, e$, f$, g$)); // $ExpectType Observable const r7 = a$.pipe(mergeWith(b$, c$, d$, e$, f$, g$, h$)); // $ExpectType Observable });rxjs-7.5.7/spec-dtslint/operators/min-spec.ts000066400000000000000000000012771431412030200212270ustar00rootroot00000000000000import { of } from 'rxjs'; import { min } from 'rxjs/operators'; it('should infer correctly', () => { const a = of(1, 2, 3).pipe(min()); // $ExpectType Observable const b = of('abc', 'bcd', 'def').pipe(min()); // $ExpectType Observable }); it('should except empty comparer', () => { const a = of(1, 2, 3).pipe(min()); // $ExpectType Observable }); it('should enforce comparer types', () => { const a = of(1, 2, 3).pipe(min((a: number, b: number) => a - b)); // $ExpectType Observable const b = of(1, 2, 3).pipe(min((a: number, b: string) => 0)); // $ExpectError const c = of(1, 2, 3).pipe(min((a: string, b: number) => 0)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/multicast-spec.ts000066400000000000000000000041671431412030200224520ustar00rootroot00000000000000import { of, Subject, Observable } from 'rxjs'; import { multicast } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(multicast(new Subject())); // $ExpectType Observable const p = of(1, 2, 3).pipe(multicast(() => new Subject())); // $ExpectType Observable }); it('should be possible to use a this with in a SubjectFactory', () => { const o = of(1, 2, 3).pipe(multicast(function(this: Observable) { return new Subject(); })); // $ExpectType Observable }); it('should be possible to use a selector', () => { const o = of(1, 2, 3).pipe(multicast(new Subject(), p => p)); // $ExpectType Observable const p = of(1, 2, 3).pipe(multicast(new Subject(), p => of('foo'))); // $ExpectType Observable const q = of(1, 2, 3).pipe(multicast(() => new Subject(), p => p)); // $ExpectType Observable const r = of(1, 2, 3).pipe(multicast(() => new Subject(), p => of('foo'))); // $ExpectType Observable }); it('should support union types', () => { const o = of(1, 2, 3).pipe(multicast(new Subject(), p => Math.random() > 0.5 ? of(123) : of('foo'))); // $ExpectType Observable const p = of(1, 2, 3).pipe(multicast(() => new Subject(), p => Math.random() > 0.5 ? of(123) : of('foo'))); // $ExpectType Observable }); it('should enforce types', () => { const p = of(1, 2, 3).pipe(multicast()); // $ExpectError }); it('should enforce Subject type', () => { const o = of(1, 2, 3).pipe(multicast('foo')); // $ExpectError const p = of(1, 2, 3).pipe(multicast(new Subject())); // $ExpectError }); it('should enforce SubjectFactory type', () => { const p = of(1, 2, 3).pipe(multicast('foo')); // $ExpectError const q = of(1, 2, 3).pipe(multicast(() => new Subject())); // $ExpectError }); it('should enforce the selector type', () => { const o = of(1, 2, 3).pipe(multicast(() => new Subject(), 5)); // $ExpectError const p = of(1, 2, 3).pipe(multicast(() => new Subject(), (p: string) => 5)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/observeOn-spec.ts000066400000000000000000000014261431412030200224020ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { observeOn } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('apple', 'banana', 'peach').pipe(observeOn(asyncScheduler)); // $ExpectType Observable }); it('should support a delay', () => { const o = of('apple', 'banana', 'peach').pipe(observeOn(asyncScheduler, 47)); // $ExpectType Observable }); it('should enforce types', () => { const p = of('apple', 'banana', 'peach').pipe(observeOn()); // $ExpectError }); it('should enforce scheduler type', () => { const p = of('apple', 'banana', 'peach').pipe(observeOn('fruit')); // $ExpectError }); it('should enforce delay type', () => { const p = of('apple', 'banana', 'peach').pipe(observeOn(asyncScheduler, '47')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/onErrorResumeNext-spec.ts000066400000000000000000000043241431412030200241060ustar00rootroot00000000000000import { of } from 'rxjs'; import { onErrorResumeNext } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('apple', 'banana', 'peach').pipe(onErrorResumeNext()); // $ExpectType Observable }); it('should accept one input', () => { const o = of('apple', 'banana', 'peach').pipe(onErrorResumeNext(of(1))); // $ExpectType Observable const p = of('apple', 'banana', 'peach').pipe(onErrorResumeNext(of('5'))); // $ExpectType Observable }); it('should accept promises', () => { const o = of('apple', 'banana', 'peach').pipe(onErrorResumeNext(Promise.resolve(5))); // $ExpectType Observable }); it('should accept iterables', () => { const o = of('apple', 'banana', 'peach').pipe(onErrorResumeNext('foo')); // $ExpectType Observable }); it('should accept arrays', () => { const o = of('apple', 'banana', 'peach').pipe(onErrorResumeNext([5])); // $ExpectType Observable }); it('should accept two inputs', () => { const o = of('apple', 'banana', 'peach').pipe(onErrorResumeNext(of(1), of(2))); // $ExpectType Observable }); it('should accept three inputs', () => { const o = of('apple', 'banana', 'peach').pipe(onErrorResumeNext(of(1), of(2), of('3'))); // $ExpectType Observable }); it('should accept four inputs', () => { const o = of('apple', 'banana', 'peach').pipe(onErrorResumeNext(of(1), of(2), of('3'), of('4'))); // $ExpectType Observable }); it('should accept five inputs', () => { const o = of('apple', 'banana', 'peach').pipe(onErrorResumeNext(of(1), of(2), of('3'), of('4'), of(5))); // $ExpectType Observable }); it('should accept six inputs', () => { const o = of('apple', 'banana', 'peach').pipe(onErrorResumeNext(of(1), of(2), of('3'), of('4'), of(5), of('6'))); // $ExpectType Observable }); it('should accept seven and more inputs', () => { const o = of('apple', 'banana', 'peach').pipe(onErrorResumeNext(of(1), of(2), of('3'), of('4'), of(5), of('6'), of(7))); // $ExpectType Observable }); it('should enforce types', () => { const o = of('apple', 'banana', 'peach').pipe(onErrorResumeNext(5)); // $ExpectError });rxjs-7.5.7/spec-dtslint/operators/pairs-spec.ts000066400000000000000000000025771431412030200215660ustar00rootroot00000000000000/** @prettier */ import { pairs, asyncScheduler } from 'rxjs'; describe('pairs', () => { it('should work unscheduled', () => { const o1 = pairs({ foo: 1, bar: 2 }); // $ExpectType Observable<["foo" | "bar", number]> const o2 = pairs([1, 2, 3, 4]); // $ExpectType Observable<[string, number]> const o3 = pairs(123); // $ExpectType Observable<[never, never]> const o4 = pairs('blah'); // $ExpectType Observable<[string, string]> const o5 = pairs({}); // $ExpectType Observable<[never, never]> const o6 = pairs(true); // $ExpectType Observable<[never, never]> const o7 = pairs(null); // $ExpectError const o8 = pairs(undefined); // $ExpectError }); it('should work scheduled', () => { const o1 = pairs({ foo: 1, bar: 2 }, asyncScheduler); // $ExpectType Observable<["foo" | "bar", number]> const o2 = pairs([1, 2, 3, 4], asyncScheduler); // $ExpectType Observable<[string, number]> const o3 = pairs(123, asyncScheduler); // $ExpectType Observable<[never, never]> const o4 = pairs('blah', asyncScheduler); // $ExpectType Observable<[string, string]> const o5 = pairs({}, asyncScheduler); // $ExpectType Observable<[never, never]> const o6 = pairs(true, asyncScheduler); // $ExpectType Observable<[never, never]> const o7 = pairs(null, asyncScheduler); // $ExpectError const o8 = pairs(undefined, asyncScheduler); // $ExpectError }); }); rxjs-7.5.7/spec-dtslint/operators/pairwise-spec.ts000066400000000000000000000010121431412030200222520ustar00rootroot00000000000000import { of } from 'rxjs'; import { pairwise } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('apple', 'banana', 'peach').pipe(pairwise()); // $ExpectType Observable<[string, string]> }); it('should infer correctly with multiple types', () => { const o = of('apple', 4, 'peach', 7).pipe(pairwise()); // $ExpectType Observable<[string | number, string | number]> }); it('should enforce types', () => { const o = of('apple', 'banana', 'peach').pipe(pairwise('lemon')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/pluck-spec.ts000066400000000000000000000050521431412030200215550ustar00rootroot00000000000000import { of, Observable } from 'rxjs'; import { pluck } from 'rxjs/operators'; it('should infer correctly', () => { const a = of({ name: 'abc' }).pipe(pluck('name')); // $ExpectType Observable }); it('should support nested object of 2 layer depth', () => { const a = of({ a: { name: 'abc' } }).pipe(pluck('a', 'name')); // $ExpectType Observable }); it('should support nested object of 3 layer depth', () => { const a = of({ a: { b: { name: 'abc' } } }).pipe(pluck('a', 'b', 'name')); // $ExpectType Observable }); it('should support nested object of 4 layer depth', () => { const a = of({ a: { b: { c: { name: 'abc' } } } }).pipe(pluck('a', 'b', 'c', 'name')); // $ExpectType Observable }); it('should support nested object of 5 layer depth', () => { const a = of({ a: { b: { c: { d: { name: 'abc' } } } } }).pipe(pluck('a', 'b', 'c', 'd', 'name')); // $ExpectType Observable }); it('should support nested object of 6 layer depth', () => { const a = of({ a: { b: { c: { d: { e: { name: 'abc' } } } } } }).pipe(pluck('a', 'b', 'c', 'd', 'e', 'name')); // $ExpectType Observable }); it('should support nested object of more than 6 layer depth', () => { const a = of({ a: { b: { c: { d: { e: { f: { name: 'abc' } } } } } } }).pipe(pluck('a', 'b', 'c', 'd', 'e', 'f', 'name')); // $ExpectType Observable }); it('should accept existing keys only', () => { const a = of({ name: 'abc' }).pipe(pluck('xyz')); // $ExpectType Observable }); it('should not accept empty parameter', () => { const a = of({ name: 'abc' }).pipe(pluck()); // $ExpectType Observable }); it('should not accept a number when plucking an object', () => { const a = of({ name: 'abc' }).pipe(pluck(1)); // $ExpectError }); it('should not infer type from the variable if key doesn\'t exist', () => { const a: Observable = of({ name: 'abc' }).pipe(pluck('xyz')); // $ExpectError }); it('should accept a spread of arguments', () => { const obj = { foo: { bar: { baz: 123 } } }; const path = ['foo', 'bar', 'baz']; const a = of(obj).pipe(pluck(...path)); // $ExpectType Observable const path2 = ['bar', 'baz']; const b = of(obj).pipe(pluck('foo', ...path2)); // $ExpectType Observable }); it('should support arrays', () => { const a = of(['abc']).pipe(pluck(0)) // $ExpectType Observable }) it('should support picking by symbols', () => { const sym = Symbol('sym') const a = of({ [sym]: 'abc' }).pipe(pluck(sym)) // $ExpectType Observable }) rxjs-7.5.7/spec-dtslint/operators/publish-spec.ts000066400000000000000000000015771431412030200221150ustar00rootroot00000000000000import { of, Observable } from 'rxjs'; import { publish } from 'rxjs/operators'; it('should support empty parameter', () => { const a = of(1, 2, 3).pipe(publish()); // $ExpectType Observable }); it('should infer when type is specified', () => { const a = of(1, 2, 3).pipe(publish()); // $ExpectType Observable }); it('should infer correctly with parameter', () => { const a = of(1, 2, 3).pipe(publish(x => x)); // $ExpectType Observable const b = of('a', 'b', 'c').pipe(publish(x => x)); // $ExpectType Observable }); it('should enforce type on selector', () => { const a = of(1, 2, 3).pipe(publish((x: Observable) => x)); // $ExpectError }); it('should support union types in selector', () => { const a = of(1, 2, 3).pipe(publish(() => Math.random() > 0.5 ? of(123) : of('test'))); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/publishBehavior-spec.ts000066400000000000000000000006771431412030200235750ustar00rootroot00000000000000import { of } from 'rxjs'; import { publishBehavior } from 'rxjs/operators'; it('should enforce parameter', () => { const a = of(1, 2, 3).pipe(publishBehavior()); // $ExpectError }); it('should infer correctly with parameter', () => { const a = of(1, 2, 3).pipe(publishBehavior(4)); // $ExpectType Observable }); it('should enforce type on parameter', () => { const a = of(1, 2, 3).pipe(publishBehavior('a')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/publishLast-spec.ts000066400000000000000000000005271431412030200227330ustar00rootroot00000000000000import { of } from 'rxjs'; import { publishLast } from 'rxjs/operators'; it('should accept empty parameter', () => { const a = of(1, 2, 3).pipe(publishLast()); // $ExpectType Observable }); it('should infer when type is specified', () => { const a = of(1, 2, 3).pipe(publishLast()); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/publishReplay-spec.ts000066400000000000000000000041411431412030200232600ustar00rootroot00000000000000import { of, asyncScheduler, Observable } from 'rxjs'; import { publishReplay } from 'rxjs/operators'; it('should accept empty parameter', () => { const a = of(1, 2, 3).pipe(publishReplay()); // $ExpectType Observable }); it('should accept bufferSize parameter only', () => { const a = of(1, 2, 3).pipe(publishReplay(1)); // $ExpectType Observable }); it('should accept windowTime and bufferSize', () => { const a = of(1, 2, 3).pipe(publishReplay(1, 1)); // $ExpectType Observable }); it('should accept windowTime, bufferSize, scheduler', () => { const a = of(1, 2, 3).pipe(publishReplay(1, 1, asyncScheduler)); // $ExpectType Observable }); it('should accept windowTime, bufferSize, selector of OperatorFunction', () => { const a = of(1, 2, 3).pipe(publishReplay(1, 1, (x) => of('a'))); // $ExpectType Observable }); it('should accept windowTime, bufferSize, selector returning union type', () => { const a = of(1, 2, 3).pipe(publishReplay(1, 1, () => Math.random() > 0.5 ? of(123) : of('test'))); // $ExpectType Observable }); it('should accept windowTime, bufferSize, selector of MonoTypeOperatorFunction', () => { const a = of(1, 2, 3).pipe(publishReplay(1, 1, (x) => x)); // $ExpectType Observable }); it('should accept windowTime, bufferSize, selector returning union type, and a scheduler', () => { const a = of(1, 2, 3).pipe(publishReplay(1, 1, () => Math.random() > 0.5 ? of(123) : of('test'), asyncScheduler)); // $ExpectType Observable }); it('should accept windowTime, bufferSize, selector of OperatorFunction, and scheduler', () => { const a = of(1, 2, 3).pipe(publishReplay(1, 1, (x) => of('a'), asyncScheduler)); // $ExpectType Observable }); it('should accept windowTime, bufferSize, selector of MonoTypeOperatorFunction, and scheduler', () => { const a = of(1, 2, 3).pipe(publishReplay(1, 1, (x) => x, asyncScheduler)); // $ExpectType Observable }); it('should enforce type on selector', () => { const a = of(1, 2, 3).pipe(publishReplay(1, 1, (x: Observable) => x)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/race-spec.ts000066400000000000000000000015641431412030200213550ustar00rootroot00000000000000import { of } from 'rxjs'; import { race } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('a', 'b', 'c').pipe(race()); // $ExpectType Observable }); it('should allow observables', () => { const o = of('a', 'b', 'c').pipe(race(of('x', 'y', 'z'))); // $ExpectType Observable const p = of('a', 'b', 'c').pipe(race(of('x', 'y', 'z'), of('t', 'i', 'm'))); // $ExpectType Observable }); it('should allow an array of observables', () => { const o = of('a', 'b', 'c').pipe(race([of('x', 'y', 'z')])); // $ExpectType Observable const p = of('a', 'b', 'c').pipe(race([of('x', 'y', 'z'), of('t', 'i', 'm')])); // $ExpectType Observable }); it('should be possible to use nested arrays', () => { const o = of('a', 'b', 'c').pipe(race([of('x', 'y', 'z')])); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/raceWith-spec.ts000066400000000000000000000014151431412030200222040ustar00rootroot00000000000000import { raceWith } from 'rxjs/operators'; import { a$, b, b$, c, c$, d$, e$, f$ } from '../helpers'; describe('raceWith', () => { it('should support N arguments of different types', () => { const o1 = a$.pipe(raceWith(b$)); // $ExpectType Observable const o2 = a$.pipe(raceWith(b$, c$)); // $ExpectType Observable const o3 = a$.pipe(raceWith(b$, c$, d$)); // $ExpectType Observable const o4 = a$.pipe(raceWith(b$, c$, d$, e$)); // $ExpectType Observable const o5 = a$.pipe(raceWith(b$, c$, d$, e$, f$)); // $ExpectType Observable }); }); it('should race observable inputs', () => { const o = a$.pipe(raceWith(Promise.resolve(b), [c])); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/reduce-spec.ts000066400000000000000000000046701431412030200217130ustar00rootroot00000000000000import { of } from 'rxjs'; import { reduce } from 'rxjs/operators'; it('should enforce parameter', () => { const a = of(1, 2, 3).pipe(reduce()); // $ExpectError }); it('should infer correctly ', () => { const a = of(1, 2, 3).pipe(reduce((x, y, z) => x + 1)); // $ExpectType Observable }); it('should infer correctly for accumulator of type array', () => { const a = of(1, 2, 3).pipe(reduce((x: number[], y: number, i: number) => x, [])); // $ExpectType Observable }); it('should accept seed parameter of the same type', () => { const a = of(1, 2, 3).pipe(reduce((x, y, z) => x + 1, 5)); // $ExpectType Observable const b = of(1, 2, 3).pipe(reduce((x, y, z) => x + 1, [])); // $ExpectError }); it('should accept seed parameter of the seed array type', () => { const a = of(1, 2, 3).pipe(reduce((x, y, z) => { x.push(y); return x; }, [4])); // $ExpectType Observable // Array must be typed... const b = of(1, 2, 3).pipe(reduce((x, y, z) => { x.push(y); return x; }, [])); // $ExpectError }); it('should accept seed parameter of a different type', () => { const a = of(1, 2, 3).pipe(reduce((x, y, z) => x + '1', '5')); // $ExpectType Observable const bv: { [key: string]: string } = {}; const b = of(1, 2, 3).pipe(reduce((x, y, z) => ({ ...x, [y]: y.toString() }), bv)); // $ExpectType Observable<{ [key: string]: string; }> }); it('should act appropriately with no seed', () => { // Starting in TS 3.5, the return type is inferred from the accumulator's type if it's provided without a seed. const a = of(1, 2, 3).pipe(reduce((a: any, v) => '' + v)); // $ExpectType Observable const b = of(1, 2, 3).pipe(reduce((a, v) => v)); // $ExpectType Observable const c = of(1, 2, 3).pipe(reduce(() => {})); // $ExpectType Observable }); it('should act appropriately with a seed', () => { const a = of(1, 2, 3).pipe(reduce((a, v) => a + v, '')); // $ExpectType Observable const b = of(1, 2, 3).pipe(reduce((a, v) => a + v, 0)); // $ExpectType Observable const c = of(1, 2, 3).pipe(reduce((a, v) => a + 1, [])); // $ExpectError }); it('should infer types properly from arguments', () => { function toArrayReducer(arr: number[], item: number, index: number): number[] { if (index === 0) { return [item]; } arr.push(item); return arr; } const a = reduce(toArrayReducer, [] as number[]); // $ExpectType OperatorFunction }); rxjs-7.5.7/spec-dtslint/operators/refCount-spec.ts000066400000000000000000000004531431412030200222240ustar00rootroot00000000000000import { of } from 'rxjs'; import { refCount } from 'rxjs/operators'; it('should infer correctly', () => { const a = of(1, 2, 3).pipe(refCount()); // $ExpectType Observable }); it('should not accept any parameters', () => { const a = of(1, 2, 3).pipe(refCount(1)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/repeat-spec.ts000066400000000000000000000006551431412030200217230ustar00rootroot00000000000000import { of } from 'rxjs'; import { repeat } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('a', 'b', 'c').pipe(repeat()); // $ExpectType Observable }); it('should accept a count parameter', () => { const o = of('a', 'b', 'c').pipe(repeat(47)); // $ExpectType Observable }); it('should enforce types', () => { const o = of('a', 'b', 'c').pipe(repeat('aa')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/repeatWhen-spec.ts000066400000000000000000000013641431412030200225430ustar00rootroot00000000000000import { of } from 'rxjs'; import { repeatWhen } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(repeatWhen(errors => errors)); // $ExpectType Observable }); it('should infer correctly when the error observable has a different type', () => { const o = of(1, 2, 3).pipe(repeatWhen(repeatWhen(errors => of('a', 'b', 'c')))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(repeatWhen()); // $ExpectError }); it('should enforce types of the notifier', () => { const o = of(1, 2, 3).pipe(repeatWhen(() => 8)); // $ExpectError }); it('should be deprecated', () => { const o = of(1, 2, 3).pipe(repeatWhen(() => of(true))); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/operators/retry-spec.ts000066400000000000000000000006271431412030200216070ustar00rootroot00000000000000import { of } from 'rxjs'; import { retry } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(retry()); // $ExpectType Observable }); it('should accept a count parameter', () => { const o = of(1, 2, 3).pipe(retry(47)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(retry('aa')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/retryWhen-spec.ts000066400000000000000000000013551431412030200224300ustar00rootroot00000000000000import { of } from 'rxjs'; import { retryWhen } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(retryWhen(errors => errors)); // $ExpectType Observable }); it('should infer correctly when the error observable has a different type', () => { const o = of(1, 2, 3).pipe(retryWhen(retryWhen(errors => of('a', 'b', 'c')))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(retryWhen()); // $ExpectError }); it('should enforce types of the notifier', () => { const o = of(1, 2, 3).pipe(retryWhen(() => 8)); // $ExpectError }); it('should be deprecated', () => { const o = of(1, 2, 3).pipe(retryWhen(() => of(true))); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/operators/sample-spec.ts000066400000000000000000000006121431412030200217150ustar00rootroot00000000000000import { of } from 'rxjs'; import { sample } from 'rxjs/operators'; it('should enforce parameter', () => { const a = of(1, 2, 3).pipe(sample()); // $ExpectError }); it('should accept observable as notifier parameter', () => { const a = of(1, 2, 3).pipe(sample(of(4))); // $ExpectType Observable const b = of(1, 2, 3).pipe(sample(of('a'))); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/sampleTime-spec.ts000066400000000000000000000007331431412030200225400ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { sampleTime } from 'rxjs/operators'; it('should enforce period parameter', () => { const a = of(1, 2, 3).pipe(sampleTime()); // $ExpectError }); it('should infer correctly', () => { const a = of(1, 2, 3).pipe(sampleTime(1000)); // $ExpectType Observable }); it('should accept scheduler parameter', () => { const a = of(1, 2, 3).pipe(sampleTime(1000, asyncScheduler)); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/scan-spec.ts000066400000000000000000000046261431412030200213710ustar00rootroot00000000000000import { of } from 'rxjs'; import { scan } from 'rxjs/operators'; it('should enforce parameter', () => { const a = of(1, 2, 3).pipe(scan()); // $ExpectError }); it('should infer correctly ', () => { const a = of(1, 2, 3).pipe(scan((x, y, z) => x + 1)); // $ExpectType Observable }); it('should infer correctly for accumulator of type array', () => { const a = of(1, 2, 3).pipe(scan((x: number[], y: number, i: number) => x, [])); // $ExpectType Observable }); it('should accept seed parameter of the same type', () => { const a = of(1, 2, 3).pipe(scan((x, y, z) => x + 1, 5)); // $ExpectType Observable const b = of(1, 2, 3).pipe(scan((x, y, z) => x + 1, [])); // $ExpectError }); it('should accept seed parameter of the seed array type', () => { const a = of(1, 2, 3).pipe(scan((x, y, z) => { x.push(y); return x; }, [4])); // $ExpectType Observable // Array must be typed... const b = of(1, 2, 3).pipe(scan((x, y, z) => { x.push(y); return x; }, [])); // $ExpectError }); it('should accept seed parameter of a different type', () => { const a = of(1, 2, 3).pipe(scan((x, y, z) => x + '1', '5')); // $ExpectType Observable const bv: { [key: string]: string } = {}; const b = of(1, 2, 3).pipe(scan((x, y, z) => ({ ...x, [y]: y.toString() }), bv)); // $ExpectType Observable<{ [key: string]: string; }> }); it('should act appropriately with no seed', () => { // Starting in TS 3.5, the return type is inferred from the accumulator's type if it's provided without a seed. const a = of(1, 2, 3).pipe(scan((a: any, v) => '' + v)); // $ExpectType Observable const b = of(1, 2, 3).pipe(scan((a, v) => v)); // $ExpectType Observable const c = of(1, 2, 3).pipe(scan(() => {})); // $ExpectType Observable }); it('should act appropriately with a seed', () => { const a = of(1, 2, 3).pipe(scan((a, v) => a + v, '')); // $ExpectType Observable const b = of(1, 2, 3).pipe(scan((a, v) => a + v, 0)); // $ExpectType Observable const c = of(1, 2, 3).pipe(scan((a, v) => a + 1, [])); // $ExpectError }); it('should infer types properly from arguments', () => { function toArrayReducer(arr: number[], item: number, index: number): number[] { if (index === 0) { return [item]; } arr.push(item); return arr; } const a = scan(toArrayReducer, [] as number[]); // $ExpectType OperatorFunction }); rxjs-7.5.7/spec-dtslint/operators/sequenceEqual-spec.ts000066400000000000000000000012531431412030200232360ustar00rootroot00000000000000import { of } from 'rxjs'; import { sequenceEqual } from 'rxjs/operators'; it('should enforce compareTo Observable', () => { const a = of(1, 2, 3).pipe(sequenceEqual()); // $ExpectError }); it('should infer correctly give compareTo Observable', () => { const a = of(1, 2, 3).pipe(sequenceEqual(of(1))); // $ExpectType Observable }); it('should enforce compareTo to be the same type of Observable', () => { const a = of(1, 2, 3).pipe(sequenceEqual(of('a'))); // $ExpectError }); it('should infer correctly given comparator parameter', () => { const a = of(1, 2, 3).pipe(sequenceEqual(of(1), (val1, val2) => val1 === val2)); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/share-spec.ts000066400000000000000000000004621431412030200215410ustar00rootroot00000000000000import { of } from 'rxjs'; import { share } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('foo', 'bar', 'baz').pipe(share()); // $ExpectType Observable }); it('should enforce types', () => { const o = of('foo', 'bar', 'baz').pipe(share('abc')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/shareReplay-spec.ts000066400000000000000000000025131431412030200227150ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { shareReplay } from 'rxjs/operators'; it('should accept an individual bufferSize parameter', () => { const o = of(1, 2, 3).pipe(shareReplay(1)); // $ExpectType Observable }); it('should accept individual bufferSize and windowTime parameters', () => { const o = of(1, 2, 3).pipe(shareReplay(1, 2)); // $ExpectType Observable }); it('should accept individual bufferSize, windowTime and scheduler parameters', () => { const o3 = of(1, 2, 3).pipe(shareReplay(1, 2, asyncScheduler)); // $ExpectType Observable }); it('should accept a bufferSize config parameter', () => { const o = of(1, 2, 3).pipe(shareReplay({ bufferSize: 1, refCount: true })); // $ExpectType Observable }); it('should accept bufferSize and windowTime config parameters', () => { const o = of(1, 2, 3).pipe(shareReplay({ bufferSize: 1, windowTime: 2, refCount: true })); // $ExpectType Observable }); it('should accept bufferSize, windowTime and scheduler config parameters', () => { const o = of(1, 2, 3).pipe(shareReplay({ bufferSize: 1, windowTime: 2, scheduler: asyncScheduler, refCount: true })); // $ExpectType Observable }); it('should require a refCount config parameter', () => { const o = of(1, 2, 3).pipe(shareReplay({ bufferSize: 1 })); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/single-spec.ts000066400000000000000000000035701431412030200217230ustar00rootroot00000000000000import { of, Observable } from 'rxjs'; import { single } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('foo').pipe(single()); // $ExpectType Observable }); it('should support a value', () => { const o = of('foo').pipe(single(value => value === 'foo')); // $ExpectType Observable }); it('should support an index', () => { const o = of('foo').pipe(single((value, index) => index === 2)); // $Observable }); it('should support a source', () => { const o = of('foo').pipe(single((value, index, source) => value === 'foo')); // $Observable }); it('should enforce value type', () => { const o = of('foo').pipe(single(((value: number) => value === 2))); // $ExpectError }); it('should enforce return type', () => { const o = of('foo').pipe(single(value => value)); // $ExpectError }); it('should enforce index type', () => { const o = of('foo').pipe(single(((value, index: string) => index === '2'))); // $ExpectError }); it('should enforce source type', () => { const o = of('foo').pipe(single(((value, index, source: Observable) => value === 'foo'))); // $ExpectError }); it('should handle Boolean constructor properly', () => { const a = of(null, undefined, 0 as const, -0 as const, 0n as const, '' as const).pipe(single(Boolean)); // $ExpectType Observable const b = of(null, undefined, 0 as const, 'test' as const, -0 as const, 0n as const, '' as const).pipe(single(Boolean)); // $ExpectType Observable<"test"> }); it('should handle predicates that always return false properly', () => { const a = of(1, 2, 3, 4).pipe(single(() => false as const)); // $ExpectType Observable }); it('should support inference from a predicate that returns any', () => { function isTruthy(value: number): any { return !!value; } const o$ = of(1).pipe(single(isTruthy)); // $ExpectType Observable });rxjs-7.5.7/spec-dtslint/operators/skip-spec.ts000066400000000000000000000005601431412030200214040ustar00rootroot00000000000000import { of } from 'rxjs'; import { skip } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('foo', 'bar', 'baz').pipe(skip(7)); // $ExpectType Observable }); it('should enforce types', () => { const o = of('foo', 'bar', 'baz').pipe(skip()); // $ExpectError const p = of('foo', 'bar', 'baz').pipe(skip('7')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/skipLast-spec.ts000066400000000000000000000006001431412030200222230ustar00rootroot00000000000000import { of } from 'rxjs'; import { skipLast } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('foo', 'bar', 'baz').pipe(skipLast(7)); // $ExpectType Observable }); it('should enforce types', () => { const o = of('foo', 'bar', 'baz').pipe(skipLast()); // $ExpectError const p = of('foo', 'bar', 'baz').pipe(skipLast('7')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/skipUntil-spec.ts000066400000000000000000000006231431412030200224200ustar00rootroot00000000000000import { of } from 'rxjs'; import { skipUntil } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('foo', 'bar', 'baz').pipe(skipUntil(of(4, 'RxJS', 7))); // $ExpectType Observable }); it('should enforce types', () => { const o = of('foo', 'bar', 'baz').pipe(skipUntil()); // $ExpectError const p = of('foo', 'bar', 'baz').pipe(skipUntil('7')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/skipWhile-spec.ts000066400000000000000000000034231431412030200223760ustar00rootroot00000000000000import { of } from 'rxjs'; import { skipWhile } from 'rxjs/operators'; it('should support a predicate', () => { const o = of('foo', 'bar', 'baz').pipe(skipWhile(value => value === 'bar')); // $ExpectType Observable }); it('should support a predicate with an index', () => { const o = of('foo', 'bar', 'baz').pipe(skipWhile((value, index) => index < 3)); // $ExpectType Observable }); it('should enforce types', () => { const o = of('foo', 'bar', 'baz').pipe(skipWhile()); // $ExpectError }); it('should enforce predicate types', () => { const o = of('foo', 'bar', 'baz').pipe(skipWhile(value => value < 3)); // $ExpectError const p = of('foo', 'bar', 'baz').pipe(skipWhile((value, index) => index < '3')); // $ExpectError }); it('should enforce predicate return type', () => { const o = of('foo', 'bar', 'baz').pipe(skipWhile(value => value)); // $ExpectError }); it('should handle Boolean constructor properly', () => { // this one is a bit odd, but probably okay. const a = of(null, undefined, 0 as const, -0 as const, '' as const, 0n as const, false as const).pipe(skipWhile(Boolean)); // $ExpectType Observable const b = of(null, 0 as const, -0 as const, '' as const, 0n as const, false as const).pipe(skipWhile(Boolean)); // $ExpectType Observable const c = of(1, 2, 3, '' as const, 0n as const, false as const, 4).pipe(skipWhile(Boolean)) // $ExpectType Observable const d = of(true as const, 123 as const, 'HI' as const, {}, []).pipe(skipWhile(Boolean)); // $ExpectType Observable }); it('should handle predicates that always return true properly', () => { const a = of(1, 2, 3, 4).pipe(skipWhile(() => true as const)); // $ExpectType Observable });rxjs-7.5.7/spec-dtslint/operators/startWith-spec.ts000066400000000000000000000037051431412030200224330ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { startWith } from 'rxjs/operators'; import { A, B, a, b, c, d, e, f, g, h } from '../helpers'; it('should infer correctly with N values', () => { const r0 = of(a).pipe(startWith()); // $ExpectType Observable const r1 = of(a).pipe(startWith(b)); // $ExpectType Observable const r2 = of(a).pipe(startWith(b, c)); // $ExpectType Observable const r3 = of(a).pipe(startWith(b, c, d)); // $ExpectType Observable const r4 = of(a).pipe(startWith(b, c, d, e)); // $ExpectType Observable const r5 = of(a).pipe(startWith(b, c, d, e, f)); // $ExpectType Observable const r6 = of(a).pipe(startWith(b, c, d, e, f, g)); // $ExpectType Observable const r7 = of(a).pipe(startWith(b, c, d, e, f, g, h)); // $ExpectType Observable }); it('should infer correctly with a scheduler', () => { const r = of(a).pipe(startWith(asyncScheduler)); // $ExpectType Observable const r1 = of(a).pipe(startWith(b, asyncScheduler)); // $ExpectType Observable const r2 = of(a).pipe(startWith(b, c, asyncScheduler)); // $ExpectType Observable const r3 = of(a).pipe(startWith(b, c, d, asyncScheduler)); // $ExpectType Observable const r4 = of(a).pipe(startWith(b, c, d, e, asyncScheduler)); // $ExpectType Observable const r5 = of(a).pipe(startWith(b, c, d, e, f, asyncScheduler)); // $ExpectType Observable const r6 = of(a).pipe(startWith(b, c, d, e, f, g, asyncScheduler)); // $ExpectType Observable }); it('should infer correctly with a single specified type', () => { const r0 = of(a).pipe(startWith(a)); // $ExpectType Observable const r1 = of(a).pipe(startWith(b)); // $ExpectType Observable const r2 = of(a).pipe(startWith(a)); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/subscribeOn-spec.ts000066400000000000000000000013421431412030200227130ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { subscribeOn } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('a', 'b', 'c').pipe(subscribeOn(asyncScheduler)); // $ExpectType Observable }); it('should support a delay ', () => { const o = of('a', 'b', 'c').pipe(subscribeOn(asyncScheduler, 7)); // $ExpectType Observable }); it('should enforce types', () => { const o = of('a', 'b', 'c').pipe(subscribeOn()); // $ExpectError }); it('should enforce scheduler type', () => { const o = of('a', 'b', 'c').pipe(subscribeOn('nope')); // $ExpectError }); it('should enforce delay type', () => { const o = of('a', 'b', 'c').pipe(subscribeOn(asyncScheduler, 'nope')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/switchAll-spec.ts000066400000000000000000000004451431412030200223720ustar00rootroot00000000000000import { of } from 'rxjs'; import { switchAll } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(of(1, 2, 3)).pipe(switchAll()); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(switchAll()); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/switchMap-spec.ts000066400000000000000000000041001431412030200223670ustar00rootroot00000000000000import { of } from 'rxjs'; import { switchMap } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(switchMap(p => of(Boolean(p)))); // $ExpectType Observable }); it('should support a projector that takes an index', () => { const o = of(1, 2, 3).pipe(switchMap(p => of(Boolean(p)))); // $ExpectType Observable }); it('should infer correctly by using the resultSelector first parameter', () => { const o = of(1, 2, 3).pipe(switchMap(p => of(Boolean(p)), a => a)); // $ExpectType Observable }); it('should infer correctly by using the resultSelector second parameter', () => { const o = of(1, 2, 3).pipe(switchMap(p => of(Boolean(p)), (a, b) => b)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner index', () => { const o = of(1, 2, 3).pipe(switchMap(p => of(Boolean(p)), (a, b, i) => a)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner and outer index', () => { const o = of(1, 2, 3).pipe(switchMap(p => of(Boolean(p)), (a, b, i, ii) => a)); // $ExpectType Observable }); it('should support an undefined resultSelector', () => { const o = of(1, 2, 3).pipe(switchMap(p => of(Boolean(p)), undefined)); // $ExpectType Observable }); it('should support union-type projections with empty streams', () => { const o = of(1, 2, 3).pipe(switchMap(n => Math.random() < 0.5 ? of(123) : of())); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(switchMap()); // $ExpectError }); it('should enforce the return type', () => { const o = of(1, 2, 3).pipe(switchMap(p => p)); // $ExpectError }); it('should support projecting to union types', () => { const o = of(Math.random()).pipe(switchMap(n => n > 0.5 ? of(123) : of('test'))); // $ExpectType Observable }); it('should produce `Observable` when mapping to an `ObservableInput`', () => { const o = of(1, 2, 3).pipe(switchMap(n => Promise.reject())); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/switchMapTo-spec.ts000066400000000000000000000047511431412030200227060ustar00rootroot00000000000000import { of } from 'rxjs'; import { switchMapTo } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(switchMapTo(of('foo'))); // $ExpectType Observable }); it('should infer correctly with multiple types', () => { const o = of(1, 2, 3).pipe(switchMapTo(of('foo', 4))); // $ExpectType Observable }); it('should infer correctly with an array', () => { const o = of(1, 2, 3).pipe(switchMapTo([4, 5, 6])); // $ExpectType Observable }); it('should infer correctly with a Promise', () => { const o = of(1, 2, 3).pipe(switchMapTo(new Promise(() => {}))); // $ExpectType Observable }); it('should infer correctly by using the resultSelector first parameter', () => { const o = of(1, 2, 3).pipe(switchMapTo(of('foo'), a => a)); // $ExpectType Observable }); it('should infer correctly by using the resultSelector second parameter', () => { const o = of(1, 2, 3).pipe(switchMapTo(of('foo'), (a, b) => b)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner index', () => { const o = of(1, 2, 3).pipe(switchMapTo(of('foo'), (a, b, innerIndex) => a)); // $ExpectType Observable }); it('should support a resultSelector that takes an inner and outer index', () => { const o = of(1, 2, 3).pipe(switchMapTo(of('foo'), (a, b, innerIndex, outerIndex) => a)); // $ExpectType Observable }); it('should support an undefined resultSelector', () => { const o = of(1, 2, 3).pipe(switchMapTo(of('foo'), undefined)); // $ExpectType Observable }); it('should support union-type projections with empty streams', () => { const o = of(1, 2, 3).pipe(switchMapTo(Math.random() < 0.5 ? of(123) : of())); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(switchMapTo()); // $ExpectError }); it('should enforce types of the observable parameter', () => { const fn = () => {} const o = of(1, 2, 3).pipe(switchMapTo(fn)); // $ExpectError }); it('should enforce the return type', () => { const o = of(1, 2, 3).pipe(switchMapTo(p => p)); // $ExpectError const p = of(1, 2, 3).pipe(switchMapTo(4)); // $ExpectError }); it('should produce `Observable` when mapping to an `ObservableInput`', () => { const o = of(1, 2, 3).pipe(switchMapTo(Promise.reject())); // $ExpectType Observable }); it('should be deprecated', () => { const o = of(1, 2, 3).pipe(switchMapTo(of(true))); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/operators/switchScan-spec.ts000066400000000000000000000030151431412030200225420ustar00rootroot00000000000000import { of } from 'rxjs'; import { switchScan } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(switchScan((acc: boolean, v: number) => of(Boolean(v)), false)); // $ExpectType Observable }); it('should infer correctly when using a single type', () => { const o = of(1, 2, 3).pipe(switchScan((acc, v) => of(acc + v), 0)); // $ExpectType Observable }); it('should infer correctly when using seed of a different type', () => { const o = of(1, 2, 3).pipe(switchScan((acc, v) => of(acc + v), '0')); // $ExpectType Observable }); it('should support a projector that takes an index', () => { const o = of(1, 2, 3).pipe(switchScan((acc, v, index) => of(Boolean(v)), false)); // $ExpectType Observable }); it('should support projecting to union types', () => { const o = of(Math.random()).pipe(switchScan(n => n > 0.5 ? of(123) : of('test'), 0)); // $ExpectType Observable }); it('should use the inferred accumulator return type over the seed type', () => { const o = of(1, 2, 3).pipe(switchScan(p => of(1), [])); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(switchScan()); // $ExpectError }); it('should enforce the return type to be Observable', () => { const o = of(1, 2, 3).pipe(switchScan(p => p)); // $ExpectError }); it('should enforce seed and accumulator to have the same type', () => { const o = of(1, 2, 3).pipe(switchScan((acc, p) => of([...acc, p]))); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/take-spec.ts000066400000000000000000000004261431412030200213630ustar00rootroot00000000000000import { of } from 'rxjs'; import { take } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(take(7)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(take('7')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/takeLast-spec.ts000066400000000000000000000004421431412030200222050ustar00rootroot00000000000000import { of } from 'rxjs'; import { takeLast } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(takeLast(7)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(takeLast('7')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/takeUntil-spec.ts000066400000000000000000000004761431412030200224040ustar00rootroot00000000000000import { of } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(takeUntil(of(1, 2, 3))); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(takeUntil(value => value < 3)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/takeWhile-spec.ts000066400000000000000000000045611431412030200223600ustar00rootroot00000000000000import { of } from 'rxjs'; import { takeWhile } from 'rxjs/operators'; it('should support a user-defined type guard', () => { const o = of('foo').pipe(takeWhile((s): s is 'foo' => true)); // $ExpectType Observable<"foo"> }); it('should support a user-defined type guard with inclusive option', () => { const o = of('foo').pipe(takeWhile((s): s is 'foo' => true, false)); // $ExpectType Observable<"foo"> }); it('should support a predicate', () => { const o = of('foo').pipe(takeWhile(s => true)); // $ExpectType Observable }); it('should support a predicate with inclusive option', () => { const o = of('foo').pipe(takeWhile(s => true, true)); // $ExpectType Observable }); it('should properly support Boolean constructor', () => { const a = of(false as const, 0 as const, -0 as const, 0n as const, '' as const, null, undefined).pipe(takeWhile(Boolean)); // $ExpectType Observable const b = of(false as const, 0 as const, -0 as const, 0n as const, '' as const, null, undefined).pipe(takeWhile(Boolean, true)); // $ExpectType Observable const c = of(false as const, 0 as const, 'hi' as const, -0 as const, 0n as const, '' as const, null, undefined).pipe(takeWhile(Boolean)); // $ExpectType Observable<"hi"> const d = of(false as const, 0 as const, 'hi' as const, -0 as const, 0n as const, '' as const, null, undefined).pipe(takeWhile(Boolean, false)); // $ExpectType Observable<"hi"> const e = of(false as const, 0 as const, 'hi' as const, -0 as const, 0n as const, '' as const, null, undefined).pipe(takeWhile(Boolean, true)); // $ExpectType Observable const f = of(1, ['hi'], false as const, 0 as const, -0 as const, 0n as const, '' as const, null, undefined).pipe(takeWhile(Boolean, true)); // $ExpectType Observable }); it('should properly handle predicates that always return false', () => { const a = of(1, 2, 3).pipe(takeWhile(() => false as const)); // $ExpectType Observable const b = of(1, 2, 3).pipe(takeWhile(() => false as const, true)); // $ExpectType Observable }); it('should support inference from a predicate that returns any', () => { function isTruthy(value: number): any { return !!value; } const o$ = of(1).pipe(takeWhile(isTruthy)); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/tap-spec.ts000066400000000000000000000032251431412030200212230ustar00rootroot00000000000000import { of } from 'rxjs'; import { tap } from 'rxjs/operators'; it('should infer correctly', () => { const a = of(1, 2, 3).pipe(tap()); // $ExpectType Observable }); it('should accept partial observer', () => { const a = of(1, 2, 3).pipe(tap({ next: (x: number) => { } })); // $ExpectType Observable const b = of(1, 2, 3).pipe(tap({ error: (x: any) => { } })); // $ExpectType Observable const c = of(1, 2, 3).pipe(tap({ complete: () => { } })); // $ExpectType Observable }); it('should enforce type for next observer function', () => { const a = of(1, 2, 3).pipe(tap({ next: (x: string) => { } })); // $ExpectError }); it('should deprecate the multi-argument usage', () => { const next = (value: number) => {}; const error = (error: any) => {}; const complete = () => {}; const o = of(42); o.pipe(tap()); // $ExpectNoDeprecation o.pipe(tap({ next })); // $ExpectNoDeprecation o.pipe(tap({ next, error })); // $ExpectNoDeprecation o.pipe(tap({ next, complete })); // $ExpectNoDeprecation o.pipe(tap({ next, error, complete })); // $ExpectNoDeprecation o.pipe(tap({ error })); // $ExpectNoDeprecation o.pipe(tap({ error, complete })); // $ExpectNoDeprecation o.pipe(tap({ complete })); // $ExpectNoDeprecation o.pipe(tap(next)); // $ExpectNoDeprecation o.pipe(tap(null, error)); // $ExpectDeprecation o.pipe(tap(undefined, error)); // $ExpectDeprecation o.pipe(tap(null, error, complete)); // $ExpectDeprecation o.pipe(tap(undefined, error, complete)); // $ExpectDeprecation o.pipe(tap(null, null, complete)); // $ExpectDeprecation o.pipe(tap(undefined, undefined, complete)); // $ExpectDeprecation });rxjs-7.5.7/spec-dtslint/operators/throttle-spec.ts000066400000000000000000000017771431412030200223160ustar00rootroot00000000000000import { of, timer } from 'rxjs'; import { throttle } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(throttle(() => timer(47))); // $ExpectType Observable }); it('should infer correctly with a Promise', () => { const o = of(1, 2, 3).pipe(throttle(() => new Promise(() => {}))); // $ExpectType Observable }); it('should support a config', () => { const o = of(1, 2, 3).pipe(throttle(() => timer(47), { leading: true, trailing: true })); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(throttle()); // $ExpectError const p = of(1, 2, 3).pipe(throttle(() => {})); // $ExpectError }); it('should enforce config types', () => { const o = of(1, 2, 3).pipe(throttle(() => timer(47), { x: 1 })); // $ExpectError const p = of(1, 2, 3).pipe(throttle(() => timer(47), { leading: 1, trailing: 1 })); // $ExpectError const q = of(1, 2, 3).pipe(throttle(() => timer(47), null)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/throttleTime-spec.ts000066400000000000000000000022031431412030200231160ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { throttleTime } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(throttleTime(47)); // $ExpectType Observable }); it('should support a scheduler', () => { const o = of(1, 2, 3).pipe(throttleTime(47, asyncScheduler)); // $ExpectType Observable }); it('should support a config', () => { const o = of(1, 2, 3).pipe(throttleTime(47, asyncScheduler, { leading: true, trailing: true })); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(throttleTime()); // $ExpectError const p = of(1, 2, 3).pipe(throttleTime('foo')); // $ExpectError }); it('should enforce scheduler types', () => { const o = of(1, 2, 3).pipe(throttleTime(47, null)); // $ExpectError }); it('should enforce config types', () => { const o = of(1, 2, 3).pipe(throttleTime(47, asyncScheduler, { x: 1 })); // $ExpectError const p = of(1, 2, 3).pipe(throttleTime(47, asyncScheduler, { leading: 1, trailing: 1 })); // $ExpectError const q = of(1, 2, 3).pipe(throttleTime(47, asyncScheduler, null)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/throwIfEmpty-spec.ts000066400000000000000000000010431431412030200230740ustar00rootroot00000000000000import { of } from 'rxjs'; import { throwIfEmpty } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('a', 'b', 'c').pipe(throwIfEmpty()); // $ExpectType Observable }); it('should support an errorFactory', () => { const o = of('a', 'b', 'c').pipe(throwIfEmpty(() => 47)); // $ExpectType Observable }); it('should enforce errorFactory type', () => { const o = of('a', 'b', 'c').pipe(throwIfEmpty('nope')); // $ExpectError const p = of('a', 'b', 'c').pipe(throwIfEmpty(x => 47)); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/timeInterval-spec.ts000066400000000000000000000010031431412030200230720ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { timeInterval } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('a', 'b', 'c').pipe(timeInterval()); // $ExpectType Observable> }); it('should support a scheduler', () => { const o = of('a', 'b', 'c').pipe(timeInterval(asyncScheduler)); // $ExpectType Observable> }); it('should enforce scheduler type', () => { const o = of('a', 'b', 'c').pipe(timeInterval('nope')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/timeout-spec.ts000066400000000000000000000035721431412030200221320ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { timeout } from 'rxjs/operators'; import { A, a$, b$, c$ } from '../helpers'; it('should infer correctly', () => { const o = of('a', 'b', 'c').pipe(timeout(10)); // $ExpectType Observable }); it('should support a date', () => { const o = of('a', 'b', 'c').pipe(timeout(new Date())); // $ExpectType Observable }); it('should support a scheduler', () => { const o = of('a', 'b', 'c').pipe(timeout(10, asyncScheduler)); // $ExpectType Observable const p = of('a', 'b', 'c').pipe(timeout(new Date(), asyncScheduler)); // $ExpectType Observable }); it('should enforce types', () => { const o = of('a', 'b', 'c').pipe(timeout()); // $ExpectError }); it('should enforce types of due', () => { const o = of('a', 'b', 'c').pipe(timeout('foo')); // $ExpectError }); it('should enforce types of scheduler', () => { const o = of('a', 'b', 'c').pipe(timeout(5, 'foo')); // $ExpectError }); it('Check info argument to factory', () => { const o = of('a').pipe( // $ExpectType Observable timeout({ meta: new A(), with: (info) => { const i = info; // $ExpectType TimeoutInfo const m = info.meta; // $ExpectType A const s = info.seen; // $ExpectType number const l = info.lastValue; // $ExpectType string | null // These should be readonly info.meta = new A(); // $ExpectError info.seen = 12; // $ExpectError info.lastValue = 'blah'; // $ExpectError return of(123); } }) ); }); it('Check config arguments', () => { const o = of('a').pipe( // $ExpectType Observable timeout({ first: 1000 }) ); }); it('should support a union', () => { const o = a$.pipe( // $ExpectType Observable timeout({ with: () => Math.random() > 0.5 ? b$ : c$ }) ); });rxjs-7.5.7/spec-dtslint/operators/timeoutWith-spec.ts000066400000000000000000000043421431412030200227620ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { timeoutWith } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('a', 'b', 'c').pipe(timeoutWith(10, of(1, 2, 3))); // $ExpectType Observable const p = of('a', 'b', 'c').pipe(timeoutWith(10, [1, 2, 3])); // $ExpectType Observable const q = of('a', 'b', 'c').pipe(timeoutWith(10, Promise.resolve(5))); // $ExpectType Observable const r = of('a', 'b', 'c').pipe(timeoutWith(10, new Set([1, 2, 3]))); // $ExpectType Observable const s = of('a', 'b', 'c').pipe(timeoutWith(10, 'foo')); // $ExpectType Observable }); it('should infer correctly while having the same types', () => { const o = of('a', 'b', 'c').pipe(timeoutWith(10, of('x', 'y', 'z'))); // $ExpectType Observable }); it('should support a date', () => { const o = of('a', 'b', 'c').pipe(timeoutWith(new Date(), of(1, 2, 3))); // $ExpectType Observable const p = of('a', 'b', 'c').pipe(timeoutWith(new Date(), [1, 2, 3])); // $ExpectType Observable const q = of('a', 'b', 'c').pipe(timeoutWith(new Date(), Promise.resolve(5))); // $ExpectType Observable const r = of('a', 'b', 'c').pipe(timeoutWith(new Date(), new Set([1, 2, 3]))); // $ExpectType Observable const s = of('a', 'b', 'c').pipe(timeoutWith(new Date(), 'foo')); // $ExpectType Observable }); it('should support a scheduler', () => { const o = of('a', 'b', 'c').pipe(timeoutWith(10, of(1, 2, 3), asyncScheduler)); // $ExpectType Observable const p = of('a', 'b', 'c').pipe(timeoutWith(new Date(), of(1, 2, 3), asyncScheduler)); // $ExpectType Observable }); it('should enforce types', () => { const o = of('a', 'b', 'c').pipe(timeoutWith()); // $ExpectError }); it('should enforce types of due', () => { const o = of('a', 'b', 'c').pipe(timeoutWith('foo')); // $ExpectError }); it('should enforce types of withObservable', () => { const o = of('a', 'b', 'c').pipe(timeoutWith(10, 10)); // $ExpectError }); it('should enforce types of scheduler', () => { const o = of('a', 'b', 'c').pipe(timeoutWith(5, of(1, 2, 3), 'foo')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/timestamp-spec.ts000066400000000000000000000007611431412030200224440ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { timestamp } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('a', 'b', 'c').pipe(timestamp()); // $ExpectType Observable> }); it('should support a scheduler', () => { const o = of('a', 'b', 'c').pipe(timestamp(asyncScheduler)); // $ExpectType Observable> }); it('should enforce scheduler type', () => { const o = of('a', 'b', 'c').pipe(timestamp('nope')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/toArray-spec.ts000066400000000000000000000004311431412030200220540ustar00rootroot00000000000000import { of } from 'rxjs'; import { toArray } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(1, 2, 3).pipe(toArray()); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1).pipe(toArray('')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/window-spec.ts000066400000000000000000000004151431412030200217440ustar00rootroot00000000000000import { of } from 'rxjs'; import { window } from 'rxjs/operators'; it('should infer correctly', () => { of(1).pipe(window(of('1'))); // $ExpectType Observable> }); it('should enforce types', () => { of(1).pipe(window('')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/windowCount-spec.ts000066400000000000000000000010221431412030200227500ustar00rootroot00000000000000import { of } from 'rxjs'; import { windowCount } from 'rxjs/operators'; it('should infer correctly', () => { of('test').pipe(windowCount(1)); // $ExpectType Observable> of('test').pipe(windowCount(1, 2)); // $ExpectType Observable> }); it('should enforce windowSize type', () => { of(1).pipe(windowCount()); // $ExpectError of(1).pipe(windowCount('1')); // $ExpectError }); it('should enforce startEveryWindow type', () => { of(1).pipe(windowCount(1, '2')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/windowTime-spec.ts000066400000000000000000000027771431412030200226000ustar00rootroot00000000000000import { of, asyncScheduler } from 'rxjs'; import { windowTime } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('a', 'b', 'c').pipe(windowTime(10)); // $ExpectType Observable> const p = of('a', 'b', 'c').pipe(windowTime(10, asyncScheduler)); // $ExpectType Observable> }); it('should support a windowCreationInterval', () => { const o = of('a', 'b', 'c').pipe(windowTime(10, 30)); // $ExpectType Observable> const p = of('a', 'b', 'c').pipe(windowTime(10, 30, asyncScheduler)); // $ExpectType Observable> }); it('should support a maxWindowSize', () => { const o = of('a', 'b', 'c').pipe(windowTime(10, 30, 80)); // $ExpectType Observable> const p = of('a', 'b', 'c').pipe(windowTime(10, 30, 80, asyncScheduler)); // $ExpectType Observable> }); it('should enforce types', () => { const o = of('a', 'b', 'c').pipe(windowTime()); // $ExpectError }); it('should enforce windowTimeSpan type', () => { const o = of('a', 'b', 'c').pipe(windowTime('nope')); // $ExpectError }); it('should enforce windowCreationInterval type', () => { const o = of('a', 'b', 'c').pipe(windowTime(10, 'nope')); // $ExpectError }); it('should enforce maxWindowSize type', () => { const o = of('a', 'b', 'c').pipe(windowTime(10, 30, 'nope')); // $ExpectError }); it('should enforce scheduler type', () => { const o = of('a', 'b', 'c').pipe(windowTime(10, 30, 50, 'nope')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/windowToggle-spec.ts000066400000000000000000000013261431412030200231100ustar00rootroot00000000000000import { of } from 'rxjs'; import { windowToggle } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('a', 'b', 'c').pipe(windowToggle(of(1, 2, 3), () => of({}))); // $ExpectType Observable> }); it('should enforce types', () => { const o = of('a', 'b', 'c').pipe(windowToggle()); // $ExpectError }); it('should enforce openings type', () => { const o = of('a', 'b', 'c').pipe(windowToggle('nope')); // $ExpectError }); it('should enforce closingSelector type', () => { const o = of('a', 'b', 'c').pipe(windowToggle(of(1, 2, 3), 'nope')); // $ExpectError const p = of('a', 'b', 'c').pipe(windowToggle(of(1, 2, 3), (closingSelector: string) => of(1))); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/windowWhen-spec.ts000066400000000000000000000007141431412030200225700ustar00rootroot00000000000000import { of } from 'rxjs'; import { windowWhen } from 'rxjs/operators'; it('should infer correctly', () => { const o = of('a', 'b', 'c').pipe(windowWhen(() => of(1, 2, 3))); // $ExpectType Observable> }); it('should enforce types', () => { const o = of('a', 'b', 'c').pipe(windowWhen()); // $ExpectError }); it('should enforce closingSelector type', () => { const o = of('a', 'b', 'c').pipe(windowWhen('nope')); // $ExpectError }); rxjs-7.5.7/spec-dtslint/operators/withLatestFrom-spec.ts000066400000000000000000000140471431412030200234170ustar00rootroot00000000000000import { of } from 'rxjs'; import { withLatestFrom } from 'rxjs/operators'; describe('withLatestFrom', () => { describe('without project parameter', () => { it('should infer correctly with 1 param', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const res = a.pipe(withLatestFrom(b)); // $ExpectType Observable<[number, string]> }); it('should infer correctly with 2 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const res = a.pipe(withLatestFrom(b, c)); // $ExpectType Observable<[number, string, number]> }); it('should infer correctly with 3 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const d = of('g', 'h', 'i'); const res = a.pipe(withLatestFrom(b, c, d)); // $ExpectType Observable<[number, string, number, string]> }); it('should infer correctly with 4 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const d = of('g', 'h', 'i'); const e = of(4, 5, 6); const res = a.pipe(withLatestFrom(b, c, d, e)); // $ExpectType Observable<[number, string, number, string, number]> }); it('should infer correctly with 5 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const d = of('g', 'h', 'i'); const e = of(4, 5, 6); const f = of('m', 'n', 'o'); const res = a.pipe(withLatestFrom(b, c, d, e, f)); // $ExpectType Observable<[number, string, number, string, number, string]> }); it('should infer correctly with 6 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const d = of('g', 'h', 'i'); const e = of(4, 5, 6); const f = of('m', 'n', 'o'); const g = of(7, 8, 9); const res = a.pipe(withLatestFrom(b, c, d, e, f, g)); // $ExpectType Observable<[number, string, number, string, number, string, number]> }); it('should allow the spreading of input params', () => { const a = of(1, 2, 3); const b = [a, a, a]; const res = a.pipe(withLatestFrom(...b)); // $ExpectType Observable<[number, ...number[]]> }); it('should error with non Observable input', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = 1; const d = of('g', 'h', 'i'); const res = a.pipe(withLatestFrom(b, c, d)); // $ExpectError }); it('should error with non Observable input at last position', () => { const a = of(1, 2, 3); const b = 1; const res = a.pipe(withLatestFrom(b)); // $ExpectError }); }); describe('with project parameter', () => { it('should infer correctly with project param', () => { const a = of(1, 2, 3); const res = a.pipe(withLatestFrom(v1 => 'b')); // $ExpectType Observable }); it('should infer correctly with 1 param', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const res = a.pipe(withLatestFrom(b, (a, b) => b)); // $ExpectType Observable }); it('should infer correctly with 2 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const res = a.pipe(withLatestFrom(b, c, (a, b, c) => c)); // $ExpectType Observable }); it('should infer correctly with 3 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const d = of('g', 'h', 'i'); const ref = a.pipe(withLatestFrom(b, c, d, (a, b, c, d) => b + c)); // $ExpectType Observable }); it('should infer correctly with 4 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const d = of('g', 'h', 'i'); const e = of(4, 5, 6); const res = a.pipe(withLatestFrom(b, c, d, e, (a, b, c, d, e) => b + c)); // $ExpectType Observable }); it('should infer correctly with 5 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const d = of('g', 'h', 'i'); const e = of(4, 5, 6); const f = of('m', 'n', 'o'); const res = a.pipe(withLatestFrom(b, c, d, e, f, (a, b, c, d, e, f) => c + e)); // $ExpectType Observable }); it('should infer correctly with 6 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of(1, 2, 3); const d = of('g', 'h', 'i'); const e = of(4, 5, 6); const f = of('m', 'n', 'o'); const g = of(7, 8, 9); const res = a.pipe(withLatestFrom(b, c, d, e, f, g, (a, b, c, d, e, f, g) => b + f)); // $ExpectType Observable }); it('should error with non Observable input', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = 1; const d = of('g', 'h', 'i'); const res = a.pipe(withLatestFrom(b, c, d, (a, b, c, d) => a + d)); // $ExpectError }); it('should error with non Observable input at last position', () => { const a = of(1, 2, 3); const b = 1; const res = a.pipe(withLatestFrom(b, (a, b) => a + b)); // $ExpectError }); it('should error with incorrect number of projected params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const res = a.pipe(withLatestFrom(b, (a, b, c) => a)); // $ExpectError }); /* * The following test does not typecheck because the project function is missing a third parameter. * If such an issue occurs in a consumer code base the fix is to specify the missing parameters. * * It looks like this is a TS bug. */ // it('should infer correct parameters with fewer arguments to project function', () => { // const a = of(1, 2, 3); // const b = of('a', 'b', 'c'); // const c = of(1, 2, 3); // const res = a.pipe(withLatestFrom(b, c, (a, b) => b)); // $ExpectType Observable // }); }); }); rxjs-7.5.7/spec-dtslint/operators/zip-spec.ts000066400000000000000000000020521431412030200212360ustar00rootroot00000000000000import { of } from 'rxjs'; import { zip } from 'rxjs/operators'; it('should support observables', () => { const o = of(1); // $ExpectType Observable const a = o.pipe(zip(of(2))); // $ExpectType Observable<[number, number]> }); it('should support rest parameter observables', () => { const o = of(1); // $ExpectType Observable const z = [of(2)]; // $ExpectType Observable[] const a = o.pipe(zip(...z)); // $ExpectType Observable<[arg: number, ...rest: number[]]> }); it('should support projected rest parameter observables', () => { const o = of(1); // $ExpectType Observable const z = [of(2)]; // $ExpectType Observable[] const a = o.pipe(zip(...z, (...r) => r.map(v => v.toString()))); // $ExpectType Observable }); it('should support projected arrays of observables', () => { const o = of(1); // $ExpectType Observable const z = [of(2)]; // $ExpectType Observable[] const a = o.pipe(zip(z, (...r: any[]) => r.map(v => v.toString()))); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/zipAll-spec.ts000066400000000000000000000032061431412030200216710ustar00rootroot00000000000000import { of } from 'rxjs'; import { zipAll } from 'rxjs/operators'; it('should infer correctly', () => { const o = of(of(1, 2, 3)).pipe(zipAll()); // $ExpectType Observable }); it('should support projecting values', () => { const o = of(of(1, 2, 3)).pipe(zipAll(value => String(value))); // $ExpectType Observable }); it('should be accept projectors for observables with different types', () => { // An `any` signature is required for the projector to deal with situations // like this in which the source emits observables of different types. The // types of the values passed to the projector depend on the order in which // the source emits its observables and that can't be expressed in the type // system. const o = of(of(['a', 'b', 'c']), of([1, 2, 3])).pipe(zipAll((a: string, b: number) => a + b)); // $ExpectType Observable }); it('should enforce types', () => { const o = of(1, 2, 3).pipe(zipAll()); // $ExpectError }); it('should enforce projector types', () => { const o = of(of(1, 2, 3)).pipe(zipAll('foo')); // $ExpectError const p = of(of(1, 2, 3)).pipe(zipAll([4, 5, 6])); // $ExpectError const q = of(of(1, 2, 3)).pipe(zipAll(Promise.resolve(4))); // $ExpectError const r = of(of(1, 2, 3)).pipe(zipAll(of(4, 5, 6))); // $ExpectError const myIterator: Iterator = { next(value) { return {done: false, value}; }, }; const s = of(of(1, 2, 3)).pipe(zipAll(myIterator)); // $ExpectError }); it('should still zip Observable, because strings are iterables (GOTCHA)', () => { const o = of('test').pipe(zipAll()); // $ExpectType Observable }); rxjs-7.5.7/spec-dtslint/operators/zipWith-spec.ts000066400000000000000000000040521431412030200220740ustar00rootroot00000000000000import { of } from 'rxjs'; import { zipWith } from 'rxjs/operators'; describe('zipWith', () => { describe('without project parameter', () => { it('should infer correctly with 1 param', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const res = a.pipe(zipWith(b)); // $ExpectType Observable<[number, string]> }); it('should infer correctly with 2 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const res = a.pipe(zipWith(b, c)); // $ExpectType Observable<[number, string, string]> }); it('should infer correctly with 3 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const res = a.pipe(zipWith(b, c, d)); // $ExpectType Observable<[number, string, string, string]> }); it('should infer correctly with 4 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const e = of('j', 'k', 'l'); const res = a.pipe(zipWith(b, c, d, e)); // $ExpectType Observable<[number, string, string, string, string]> }); it('should infer correctly with 5 params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const e = of('j', 'k', 'l'); const f = of('m', 'n', 'o'); const res = a.pipe(zipWith(b, c, d, e, f)); // $ExpectType Observable<[number, string, string, string, string, string]> }); it('should accept N params', () => { const a = of(1, 2, 3); const b = of('a', 'b', 'c'); const c = of('d', 'e', 'f'); const d = of('g', 'h', 'i'); const e = of('j', 'k', 'l'); const f = of('m', 'n', 'o'); const g = of('p', 'q', 'r'); const res = a.pipe(zipWith(b, c, d, e, f, g)); // $ExpectType Observable<[number, string, string, string, string, string, string]> }); }); }); rxjs-7.5.7/spec-dtslint/tsconfig.json000066400000000000000000000007541431412030200176340ustar00rootroot00000000000000{ "compilerOptions": { "baseUrl": ".", "lib": ["esnext", "dom"], "module": "commonjs", "noEmit": true, "paths": { "rxjs": ["../dist/types"], "rxjs/ajax": ["../dist/types/ajax"], "rxjs/fetch": ["../dist/types/fetch"], "rxjs/operators": ["../dist/types/operators"], "rxjs/testing": ["../dist/types/testing"], "rxjs/webSocket": ["../dist/types/webSocket"] }, "skipLibCheck": true, "strict": true, "target": "esnext" } }rxjs-7.5.7/spec-dtslint/tslint.json000066400000000000000000000002501431412030200173240ustar00rootroot00000000000000{ "rulesDirectory": ["../node_modules/tslint-etc/dist/rules"], "rules": { "expect-deprecation": true, "expect-type": true, "no-dtslint-typo": true } }rxjs-7.5.7/spec-dtslint/types-spec.ts000066400000000000000000000047611431412030200175730ustar00rootroot00000000000000import { Observable, ObservedValueOf, ObservedValueUnionFromArray, ObservedValueTupleFromArray, Cons, Head, Tail } from 'rxjs'; import { A, B, C } from './helpers'; describe('ObservedValueOf', () => { it('should infer from an observable', () => { let explicit: ObservedValueOf>; let inferred = explicit!; // $ExpectType A }); it('should infer from an array', () => { let explicit: ObservedValueOf; let inferred = explicit!; // $ExpectType A }); it('should infer from a promise', () => { let explicit: ObservedValueOf>; let inferred = explicit!; // $ExpectType A }); }); describe('ObservedUnionFromArray', () => { it('should infer from an array of observables', () => { let explicit: ObservedValueUnionFromArray<[Observable, Observable]>; let inferred = explicit!; // $ExpectType A | B }); it('should infer from an array of arrays', () => { let explicit: ObservedValueUnionFromArray<[A[], B[]]>; let inferred = explicit!; // $ExpectType A | B }); it('should infer from an array of promises', () => { let explicit: ObservedValueUnionFromArray<[Promise, Promise]>; let inferred = explicit!; // $ExpectType A | B }); }); describe('ObservedTupleFromArray', () => { it('should infer from an array of observables', () => { let explicit: ObservedValueTupleFromArray<[Observable, Observable]>; let inferred = explicit!; // $ExpectType [A, B] }); it('should infer from an array of arrays', () => { let explicit: ObservedValueTupleFromArray<[A[], B[]]>; let inferred = explicit!; // $ExpectType [A, B] }); it('should infer from an array of promises', () => { let explicit: ObservedValueTupleFromArray<[Promise, Promise]>; let inferred = explicit!; // $ExpectType [A, B] }); }); describe('Cons', () => { it('should construct a tuple with the specified type at the head', () => { let explicit: Cons; let inferred = explicit!; // $ExpectType [A, B, C] }); it('should support rest tuples', () => { let explicit: Cons; let inferred = explicit!; // $ExpectType [arg: A, ...rest: B[]] }); }); describe('Head', () => { it('should return the head of a tuple', () => { let explicit: Head<[A, B, C]>; let inferred = explicit!; // $ExpectType A }); }); describe('Tail', () => { it('should return the tail of a tuple', () => { let explicit: Tail<[A, B, C]>; let inferred = explicit!; // $ExpectType [B, C] }); });rxjs-7.5.7/spec-dtslint/util/000077500000000000000000000000001431412030200160745ustar00rootroot00000000000000rxjs-7.5.7/spec-dtslint/util/pipe-spec.ts000066400000000000000000000121631431412030200203340ustar00rootroot00000000000000import { pipe, UnaryFunction, of, Observable } from 'rxjs'; /** * Used to keep the tests uncluttered. * * Returns a `UnaryFunction` with the * specified literal type parameters. * That is, `a('0', '1')` returns `UnaryFunction<'0', '1'>`. * That means that the `a` function can be used to create consecutive * arguments that are either compatible or incompatible. * * ```js * a('0', '1'), a('1', '2') // OK * a('0', '1'), a('#', '2') // Error '1' is not compatible with '#' * ``` * * @param {string} input The `UnaryFunction` input type parameter * @param {string} output The `UnaryFunction` output type parameter */ function a(input: I, output: O): UnaryFunction { return i => output; } it('should infer unknown for no arguments', () => { const o = pipe(); // $ExpectType (x: T) => T }); it('should infer for 1 argument', () => { const o = pipe(a('0', '1')); // $ExpectType UnaryFunction<"0", "1"> }); it('should infer for 2 arguments', () => { const o = pipe(a('0', '1'), a('1', '2')); // $ExpectType UnaryFunction<"0", "2"> }); it('should infer for 3 arguments', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3')); // $ExpectType UnaryFunction<"0", "3"> }); it('should infer for 4 arguments', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4')); // $ExpectType UnaryFunction<"0", "4"> }); it('should infer for 5 arguments', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5')); // $ExpectType UnaryFunction<"0", "5"> }); it('should infer for 6 arguments', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('5', '6')); // $ExpectType UnaryFunction<"0", "6"> }); it('should infer for 7 arguments', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('5', '6'), a('6', '7')); // $ExpectType UnaryFunction<"0", "7"> }); it('should infer for 8 arguments', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('5', '6'), a('6', '7'), a('7', '8')); // $ExpectType UnaryFunction<"0", "8"> }); it('should infer for 9 arguments', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('5', '6'), a('6', '7'), a('7', '8'), a('8', '9')); // $ExpectType UnaryFunction<"0", "9"> }); it('should infer unknown for more than 9 arguments', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('5', '6'), a('6', '7'), a('7', '8'), a('8', '9'), a('9', '10')); // $ExpectType UnaryFunction<"0", unknown> }); it('should require a type assertion for more than 9 arguments', () => { const o: UnaryFunction<'0', '10'> = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('5', '6'), a('6', '7'), a('7', '8'), a('8', '9'), a('9', '10')); // $ExpectError }); it('should enforce types for the 2nd argument', () => { const o = pipe(a('0', '1'), a('#', '2')); // $ExpectError }); it('should enforce types for the 3rd argument', () => { const o = pipe(a('0', '1'), a('1', '2'), a('#', '3')); // $ExpectError }); it('should enforce types for the 4th argument', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('#', '4')); // $ExpectError }); it('should enforce types for the 5th argument', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('#', '5')); // $ExpectError }); it('should enforce types for the 6th argument', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('#', '6')); // $ExpectError }); it('should enforce types for the 7th argument', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('5', '6'), a('#', '7')); // $ExpectError }); it('should enforce types for the 8th argument', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('5', '6'), a('6', '7'), a('#', '8')); // $ExpectError }); it('should enforce types for the 9th argument', () => { const o = pipe(a('0', '1'), a('1', '2'), a('2', '3'), a('3', '4'), a('4', '5'), a('5', '6'), a('6', '7'), a('7', '8'), a('#', '9')); // $ExpectError }); it('should return a non-narrowed Observable type', () => { const customOperator = (p: T) => (a: Observable) => a; const staticPipe = pipe(customOperator('infer')); const o = of('foo').pipe(staticPipe); // $ExpectType Observable }); it('should return an explicit Observable type', () => { const customOperator = () => (a: Observable) => a; const staticPipe = pipe(customOperator()); const o = of('foo').pipe(staticPipe); // $ExpectType Observable }); it('should return Observable when T cannot be inferred', () => { const customOperator = () => (a: Observable) => a; // type can't be possibly be inferred here const staticPipe = pipe(customOperator()); const o = of('foo').pipe(staticPipe); // $ExpectType Observable }); it('should return a non-narrowed type', () => { const func = pipe((value: string) => value, (value: string) => value + value); const value = func('foo'); // $ExpectType string }); rxjs-7.5.7/spec/000077500000000000000000000000001431412030200134405ustar00rootroot00000000000000rxjs-7.5.7/spec/Notification-spec.ts000066400000000000000000000207131431412030200173710ustar00rootroot00000000000000import { expect } from 'chai'; import { Notification, Subscriber } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from './helpers/observableMatcher'; /** @test {Notification} */ describe('Notification', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should exist', () => { expect(Notification).exist; expect(Notification).to.be.a('function'); }); it('should not allow convert to observable if given kind is unknown', () => { const n = new Notification('x' as any); expect(() => n.toObservable()).to.throw(); }); describe('createNext', () => { it('should return a Notification', () => { const n = Notification.createNext('test'); expect(n instanceof Notification).to.be.true; expect(n.value).to.equal('test'); expect(n.kind).to.equal('N'); expect(n.error).to.be.a('undefined'); expect(n.hasValue).to.be.true; }); }); describe('createError', () => { it('should return a Notification', () => { const n = Notification.createError('test'); expect(n instanceof Notification).to.be.true; expect(n.value).to.be.a('undefined'); expect(n.kind).to.equal('E'); expect(n.error).to.equal('test'); expect(n.hasValue).to.be.false; }); }); describe('createComplete', () => { it('should return a Notification', () => { const n = Notification.createComplete(); expect(n instanceof Notification).to.be.true; expect(n.value).to.be.a('undefined'); expect(n.kind).to.equal('C'); expect(n.error).to.be.a('undefined'); expect(n.hasValue).to.be.false; }); }); describe('toObservable', () => { it('should create observable from a next Notification', () => { rxTestScheduler.run(({ expectObservable }) => { const value = 'a'; const next = Notification.createNext(value); expectObservable(next.toObservable()).toBe('(a|)'); }); }); it('should create observable from a complete Notification', () => { rxTestScheduler.run(({ expectObservable }) => { const complete = Notification.createComplete(); expectObservable(complete.toObservable()).toBe('|'); }); }); it('should create observable from a error Notification', () => { rxTestScheduler.run(({ expectObservable }) => { const error = Notification.createError('error'); expectObservable(error.toObservable()).toBe('#'); }); }); }); describe('static reference', () => { it('should create new next Notification with value', () => { const value = 'a'; const first = Notification.createNext(value); const second = Notification.createNext(value); expect(first).not.to.equal(second); }); it('should create new error Notification', () => { const first = Notification.createError(); const second = Notification.createError(); expect(first).not.to.equal(second); }); it('should return static complete Notification reference', () => { const first = Notification.createComplete(); const second = Notification.createComplete(); expect(first).to.equal(second); }); }); describe('do', () => { it('should invoke on next', () => { const n = Notification.createNext('a'); let invoked = false; n.do( () => { invoked = true; }, () => { throw 'should not be called'; }, () => { throw 'should not be called'; } ); expect(invoked).to.be.true; }); it('should invoke on error', () => { const n = Notification.createError(); let invoked = false; n.do( () => { throw 'should not be called'; }, () => { invoked = true; }, () => { throw 'should not be called'; } ); expect(invoked).to.be.true; }); it('should invoke on complete', () => { const n = Notification.createComplete(); let invoked = false; n.do( () => { throw 'should not be called'; }, () => { throw 'should not be called'; }, () => { invoked = true; } ); expect(invoked).to.be.true; }); }); describe('accept', () => { it('should accept observer for next Notification', () => { const value = 'a'; let observed = false; const n = Notification.createNext(value); const observer = Subscriber.create( (x?: string) => { expect(x).to.equal(value); observed = true; }, () => { throw 'should not be called'; }, () => { throw 'should not be called'; } ); n.accept(observer); expect(observed).to.be.true; }); it('should accept observer for error Notification', () => { let observed = false; const n = Notification.createError(); const observer = Subscriber.create( () => { throw 'should not be called'; }, () => { observed = true; }, () => { throw 'should not be called'; } ); n.accept(observer); expect(observed).to.be.true; }); it('should accept observer for complete Notification', () => { let observed = false; const n = Notification.createComplete(); const observer = Subscriber.create( () => { throw 'should not be called'; }, () => { throw 'should not be called'; }, () => { observed = true; } ); n.accept(observer); expect(observed).to.be.true; }); it('should accept function for next Notification', () => { const value = 'a'; let observed = false; const n = Notification.createNext(value); n.accept( (x: string) => { expect(x).to.equal(value); observed = true; }, () => { throw 'should not be called'; }, () => { throw 'should not be called'; } ); expect(observed).to.be.true; }); it('should accept function for error Notification', () => { let observed = false; const error = 'error'; const n = Notification.createError(error); n.accept( () => { throw 'should not be called'; }, (err: any) => { expect(err).to.equal(error); observed = true; }, () => { throw 'should not be called'; } ); expect(observed).to.be.true; }); it('should accept function for complete Notification', () => { let observed = false; const n = Notification.createComplete(); n.accept( () => { throw 'should not be called'; }, () => { throw 'should not be called'; }, () => { observed = true; } ); expect(observed).to.be.true; }); }); describe('observe', () => { it('should observe for next Notification', () => { const value = 'a'; let observed = false; const n = Notification.createNext(value); const observer = Subscriber.create( (x?: string) => { expect(x).to.equal(value); observed = true; }, () => { throw 'should not be called'; }, () => { throw 'should not be called'; } ); n.observe(observer); expect(observed).to.be.true; }); it('should observe for error Notification', () => { let observed = false; const n = Notification.createError(); const observer = Subscriber.create( () => { throw 'should not be called'; }, () => { observed = true; }, () => { throw 'should not be called'; } ); n.observe(observer); expect(observed).to.be.true; }); it('should observe for complete Notification', () => { let observed = false; const n = Notification.createComplete(); const observer = Subscriber.create( () => { throw 'should not be called'; }, () => { throw 'should not be called'; }, () => { observed = true; } ); n.observe(observer); expect(observed).to.be.true; }); }); }); rxjs-7.5.7/spec/Observable-spec.ts000066400000000000000000001172561431412030200170400ustar00rootroot00000000000000import { expect } from 'chai'; import * as sinon from 'sinon'; import { Observer, TeardownLogic } from '../src/internal/types'; import { Observable, config, Subscription, noop, Subscriber, Operator, NEVER, Subject, of, throwError, empty } from 'rxjs'; import { map, multicast, refCount, filter, count, tap, combineLatest, concat, merge, race, zip, catchError, concatMap, switchMap, publish, publishLast, publishBehavior, share, finalize} from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from './helpers/observableMatcher'; function expectFullObserver(val: any) { expect(val).to.be.a('object'); expect(val.next).to.be.a('function'); expect(val.error).to.be.a('function'); expect(val.complete).to.be.a('function'); expect(val.closed).to.be.a('boolean'); } /** @test {Observable} */ describe('Observable', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should be constructed with a subscriber function', (done) => { const source = new Observable(function (observer) { expectFullObserver(observer); observer.next(1); observer.complete(); }); source.subscribe( { next: function (x) { expect(x).to.equal(1); }, complete: done } ); }); it('should send errors thrown in the constructor down the error path', (done) => { new Observable(() => { throw new Error('this should be handled'); }).subscribe({ error(err) { expect(err).to.exist.and.be.instanceof(Error).and.have.property('message', 'this should be handled'); done(); }, }); }); it('should allow empty ctor, which is effectively a never-observable', () => { rxTestScheduler.run(({ expectObservable }) => { const result = new Observable(); expectObservable(result).toBe('-'); }); }); describe('forEach', () => { it('should iterate and return a Promise', (done) => { const expected = [1, 2, 3]; const result = of(1, 2, 3) .forEach(function (x) { expect(x).to.equal(expected.shift()); }, Promise) .then(() => { done(); }); expect(result.then).to.be.a('function'); }); it('should reject promise when in error', (done) => { throwError(() => ('bad')) .forEach(() => { done(new Error('should not be called')); }, Promise) .then( () => { done(new Error('should not complete')); }, (err) => { expect(err).to.equal('bad'); done(); } ); }); it('should allow Promise to be globally configured', async () => { try { let wasCalled = false; config.Promise = function MyPromise(callback: any) { wasCalled = true; return new Promise(callback); } as any; await of(42).forEach((x) => { expect(x).to.equal(42); }) expect(wasCalled).to.be.true; } finally { config.Promise = undefined; } }); it('should reject promise if nextHandler throws', (done) => { const results: number[] = []; of(1, 2, 3) .forEach((x) => { if (x === 3) { throw new Error('NO THREES!'); } results.push(x); }, Promise) .then( () => { done(new Error('should not be called')); }, (err) => { expect(err).to.be.an('error', 'NO THREES!'); expect(results).to.deep.equal([1, 2]); } ) .then(() => { done(); }); }); it('should handle a synchronous throw from the next handler', () => { const expected = new Error('I told, you Bobby Boucher, threes are the debil!'); const syncObservable = new Observable((observer) => { observer.next(1); observer.next(2); observer.next(3); observer.next(4); }); const results: Array = []; return syncObservable .forEach((x) => { results.push(x); if (x === 3) { throw expected; } }) .then( () => { throw new Error('should not be called'); }, (err) => { results.push(err); // The error should unsubscribe from the source, meaning we // should not see the number 4. expect(results).to.deep.equal([1, 2, 3, expected]); } ); }); it('should handle an asynchronous throw from the next handler and tear down', () => { const expected = new Error('I told, you Bobby Boucher, twos are the debil!'); const asyncObservable = new Observable((observer) => { let i = 1; const id = setInterval(() => observer.next(i++), 1); return () => { clearInterval(id); }; }); const results: Array = []; return asyncObservable .forEach((x) => { results.push(x); if (x === 2) { throw expected; } }) .then( () => { throw new Error('should not be called'); }, (err) => { results.push(err); expect(results).to.deep.equal([1, 2, expected]); } ); }); }); describe('subscribe', () => { it('should work with handlers with hacked bind methods', () => { const source = of('Hi'); const results: any[] = []; const next = function (value: string) { results.push(value); } next.bind = () => { /* lol */}; const complete = function () { results.push('done'); } complete.bind = () => { /* lol */}; source.subscribe({ next, complete }); expect(results).to.deep.equal(['Hi', 'done']); }); it('should work with handlers with hacked bind methods, in the error case', () => { const source = throwError(() => 'an error'); const results: any[] = []; const error = function (value: string) { results.push(value); } source.subscribe({ error }); expect(results).to.deep.equal(['an error']); }); it('should be synchronous', () => { let subscribed = false; let nexted: string; let completed: boolean; const source = new Observable((observer) => { subscribed = true; observer.next('wee'); expect(nexted).to.equal('wee'); observer.complete(); expect(completed).to.be.true; }); expect(subscribed).to.be.false; let mutatedByNext = false; let mutatedByComplete = false; source.subscribe( { next: (x) => { nexted = x; mutatedByNext = true; }, complete: () => { completed = true; mutatedByComplete = true; } } ); expect(mutatedByNext).to.be.true; expect(mutatedByComplete).to.be.true; }); it('should work when subscribe is called with no arguments', () => { const source = new Observable((subscriber) => { subscriber.next('foo'); subscriber.complete(); }); source.subscribe(); }); it('should not be unsubscribed when other empty subscription completes', () => { let unsubscribeCalled = false; const source = new Observable(() => { return () => { unsubscribeCalled = true; }; }); source.subscribe(); expect(unsubscribeCalled).to.be.false; empty().subscribe(); expect(unsubscribeCalled).to.be.false; }); it('should not be unsubscribed when other subscription with same observer completes', () => { let unsubscribeCalled = false; const source = new Observable(() => { return () => { unsubscribeCalled = true; }; }); let observer = { next: function () { /*noop*/ }, }; source.subscribe(observer); expect(unsubscribeCalled).to.be.false; empty().subscribe(observer); expect(unsubscribeCalled).to.be.false; }); it('should run unsubscription logic when an error is sent asynchronously and subscribe is called with no arguments', (done) => { const sandbox = sinon.createSandbox(); const fakeTimer = sandbox.useFakeTimers(); let unsubscribeCalled = false; const source = new Observable((observer) => { const id = setInterval(() => { observer.error(0); }, 1); return () => { clearInterval(id); unsubscribeCalled = true; }; }); source.subscribe({ error() { /* noop: expected error */ }, }); setTimeout(() => { let err; let errHappened = false; try { expect(unsubscribeCalled).to.be.true; } catch (e) { err = e; errHappened = true; } finally { if (!errHappened) { done(); } else { done(err); } } }, 100); fakeTimer.tick(110); sandbox.restore(); }); it('should return a Subscription that calls the unsubscribe function returned by the subscriber', () => { let unsubscribeCalled = false; const source = new Observable(() => { return () => { unsubscribeCalled = true; }; }); const sub = source.subscribe(() => { //noop }); expect(sub instanceof Subscription).to.be.true; expect(unsubscribeCalled).to.be.false; expect(sub.unsubscribe).to.be.a('function'); sub.unsubscribe(); expect(unsubscribeCalled).to.be.true; }); it('should ignore next messages after unsubscription', (done) => { let times = 0; const subscription = new Observable((observer) => { let i = 0; const id = setInterval(() => { observer.next(i++); }); return () => { clearInterval(id); expect(times).to.equal(2); done(); }; }) .pipe(tap(() => (times += 1))) .subscribe(function () { if (times === 2) { subscription.unsubscribe(); } }); }); it('should ignore error messages after unsubscription', (done) => { let times = 0; let errorCalled = false; const subscription = new Observable((observer) => { let i = 0; const id = setInterval(() => { observer.next(i++); if (i === 3) { observer.error(new Error()); } }); return () => { clearInterval(id); expect(times).to.equal(2); expect(errorCalled).to.be.false; done(); }; }) .pipe(tap(() => (times += 1))) .subscribe( { next: function () { if (times === 2) { subscription.unsubscribe(); } }, error: function () { errorCalled = true; } } ); }); it('should ignore complete messages after unsubscription', (done) => { let times = 0; let completeCalled = false; const subscription = new Observable((observer) => { let i = 0; const id = setInterval(() => { observer.next(i++); if (i === 3) { observer.complete(); } }); return () => { clearInterval(id); expect(times).to.equal(2); expect(completeCalled).to.be.false; done(); }; }) .pipe(tap(() => (times += 1))) .subscribe( { next: function () { if (times === 2) { subscription.unsubscribe(); } }, complete: function () { completeCalled = true; } } ); }); describe('when called with an anonymous observer', () => { it( 'should accept an anonymous observer with just a next function and call the next function in the context' + ' of the anonymous observer', (done) => { //intentionally not using lambda to avoid typescript's this context capture const o = { myValue: 'foo', next(x: any) { expect(this.myValue).to.equal('foo'); expect(x).to.equal(1); done(); }, }; of(1).subscribe(o); } ); it( 'should accept an anonymous observer with just an error function and call the error function in the context' + ' of the anonymous observer', (done) => { //intentionally not using lambda to avoid typescript's this context capture const o = { myValue: 'foo', error(err: any) { expect(this.myValue).to.equal('foo'); expect(err).to.equal('bad'); done(); }, }; throwError(() => ('bad')).subscribe(o); } ); it( 'should accept an anonymous observer with just a complete function and call the complete function in the' + ' context of the anonymous observer', (done) => { //intentionally not using lambda to avoid typescript's this context capture const o = { myValue: 'foo', complete: function complete() { expect(this.myValue).to.equal('foo'); done(); }, }; empty().subscribe(o); } ); it('should accept an anonymous observer with no functions at all', () => { expect(() => { empty().subscribe({}); }).not.to.throw(); }); it('should ignore next messages after unsubscription', (done) => { let times = 0; const subscription = new Observable((observer) => { let i = 0; const id = setInterval(() => { observer.next(i++); }); return () => { clearInterval(id); expect(times).to.equal(2); done(); }; }) .pipe(tap(() => (times += 1))) .subscribe({ next() { if (times === 2) { subscription.unsubscribe(); } }, }); }); it('should ignore error messages after unsubscription', (done) => { let times = 0; let errorCalled = false; const subscription = new Observable((observer) => { let i = 0; const id = setInterval(() => { observer.next(i++); if (i === 3) { observer.error(new Error()); } }); return () => { clearInterval(id); expect(times).to.equal(2); expect(errorCalled).to.be.false; done(); }; }) .pipe(tap(() => (times += 1))) .subscribe({ next() { if (times === 2) { subscription.unsubscribe(); } }, error() { errorCalled = true; }, }); }); it('should ignore complete messages after unsubscription', (done) => { let times = 0; let completeCalled = false; const subscription = new Observable((observer) => { let i = 0; const id = setInterval(() => { observer.next(i++); if (i === 3) { observer.complete(); } }); return () => { clearInterval(id); expect(times).to.equal(2); expect(completeCalled).to.be.false; done(); }; }) .pipe(tap(() => (times += 1))) .subscribe({ next() { if (times === 2) { subscription.unsubscribe(); } }, complete() { completeCalled = true; }, }); }); }); it('should finalize even with a synchronous thrown error', () => { let called = false; const badObservable = new Observable((subscriber) => { subscriber.add(() => { called = true; }); throw new Error('bad'); }); badObservable.subscribe({ error: () => { /* do nothing */ } }); expect(called).to.be.true; }); it('should handle empty string sync errors', () => { const badObservable = new Observable(() => { throw ''; }); let caught = false; badObservable.subscribe({ error: (err) => { caught = true; expect(err).to.equal(''); } }); expect(caught).to.be.true; }); describe('if config.useDeprecatedSynchronousErrorHandling === true', () => { beforeEach(() => { config.useDeprecatedSynchronousErrorHandling = true; }); it('should throw synchronously', () => { expect(() => throwError(() => new Error('thrown error')).subscribe()).to.throw(Error, 'thrown error'); }); it('should rethrow if next handler throws', () => { const observable = new Observable((observer) => { observer.next(1); }); const sink = Subscriber.create(() => { throw 'error!'; }); expect(() => { observable.subscribe(sink); }).to.throw('error!'); }); // From issue: https://github.com/ReactiveX/rxjs/issues/5979 it('should still rethrow synchronous errors from next handlers on synchronous observables', () => { expect(() => { of('test').pipe( // Any operators here map(x => x + '!!!'), map(x => x + x), map(x => x + x), map(x => x + x), ).subscribe({ next: () => { throw new Error( 'hi there!' ) } }) }).to.throw('hi there!'); }); it('should rethrow synchronous errors from flattened observables', () => { expect(() => { of(1) .pipe(concatMap(() => throwError(() => new Error('Ahoy! An error!')))) .subscribe(console.log); }).to.throw('Ahoy! An error!'); expect(() => { of(1) .pipe(switchMap(() => throwError(() => new Error('Avast! Thar be a new error!')))) .subscribe(console.log); }).to.throw('Avast! Thar be a new error!'); }); it('should finalize even with a synchronous error', () => { let called = false; const badObservable = new Observable((subscriber) => { subscriber.add(() => { called = true; }); subscriber.error(new Error('bad')); }); try { badObservable.subscribe(); } catch (err) { // do nothing } expect(called).to.be.true; }); it('should finalize even with a synchronous thrown error', () => { let called = false; const badObservable = new Observable((subscriber) => { subscriber.add(() => { called = true; }); throw new Error('bad'); }); try { badObservable.subscribe(); } catch (err) { // do nothing } expect(called).to.be.true; }); it('should handle empty string sync errors', () => { const badObservable = new Observable(() => { throw ''; }); let caught = false; try { badObservable.subscribe(); } catch (err) { caught = true; expect(err).to.equal(''); } expect(caught).to.be.true; }); it('should execute finalizer even with a sync error', () => { let called = false; const badObservable = new Observable((subscriber) => { subscriber.error(new Error('bad')); }).pipe( finalize(() => { called = true; }) ); try { badObservable.subscribe(); } catch (err) { // do nothing } expect(called).to.be.true; }); it('should execute finalize even with a sync thrown error', () => { let called = false; const badObservable = new Observable(() => { throw new Error('bad'); }).pipe( finalize(() => { called = true; }) ); try { badObservable.subscribe(); } catch (err) { // do nothing } expect(called).to.be.true; }); it('should execute finalizer in order even with a sync error', () => { const results: any[] = []; const badObservable = new Observable((subscriber) => { subscriber.error(new Error('bad')); }).pipe( finalize(() => { results.push(1); }), finalize(() => { results.push(2) }) ); try { badObservable.subscribe(); } catch (err) { // do nothing } expect(results).to.deep.equal([1, 2]); }); it('should execute finalizer in order even with a sync thrown error', () => { const results: any[] = []; const badObservable = new Observable(() => { throw new Error('bad'); }).pipe( finalize(() => { results.push(1); }), finalize(() => { results.push(2) }) ); try { badObservable.subscribe(); } catch (err) { // do nothing } expect(results).to.deep.equal([1, 2]); }); // https://github.com/ReactiveX/rxjs/issues/6271 it('should not have a run-time error if no errors are thrown and there are operators', () => { expect(() => { of(1, 2, 3).pipe( map(x => x + x), map(x => Math.log(x)) ) .subscribe(); }).not.to.throw(); }); it('should call finalize if sync unsubscribed', () => { let called = false; const observable = new Observable(() => () => (called = true)); const subscription = observable.subscribe(); subscription.unsubscribe(); expect(called).to.be.true; }); it('should call registered finalizer if sync unsubscribed', () => { let called = false; const observable = new Observable((subscriber) => subscriber.add(() => called = true)); const subscription = observable.subscribe(); subscription.unsubscribe(); expect(called).to.be.true; }); afterEach(() => { config.useDeprecatedSynchronousErrorHandling = false; }); }); }); describe('pipe', () => { it('should exist', () => { const source = of('test'); expect(source.pipe).to.be.a('function'); }); it('should pipe multiple operations', (done) => { of('test') .pipe( map((x) => x + x), map((x) => x + '!!!') ) .subscribe( { next: (x) => { expect(x).to.equal('testtest!!!'); }, complete: done } ); }); it('should return the same observable if there are no arguments', () => { const source = of('test'); const result = source.pipe(); expect(result).to.equal(source); }); }); it('should not swallow internal errors', (done) => { config.onStoppedNotification = (notification) => { expect(notification.kind).to.equal('E'); expect(notification).to.have.property('error', 'bad'); config.onStoppedNotification = null; done(); }; new Observable(subscriber => { subscriber.error('test'); throw 'bad'; }).subscribe({ error: err => { expect(err).to.equal('test'); } }); }); // Discussion here: https://github.com/ReactiveX/rxjs/issues/5370 it.skip('should handle sync errors within a test scheduler', () => { const observable = of(4).pipe( map(n => { if (n === 4) { throw 'four!'; } return n; }), catchError((err, source) => source), ); rxTestScheduler.run(helpers => { const { expectObservable } = helpers; expectObservable(observable).toBe('-'); }); }); it('should emit an error for unhandled synchronous exceptions from something like a stack overflow', () => { const source = new Observable(() => { const boom = (): unknown => boom(); boom(); }); let thrownError: any = undefined; source.subscribe({ error: err => thrownError = err }); expect(thrownError).to.be.an.instanceOf(RangeError); expect(thrownError.message).to.equal('Maximum call stack size exceeded'); }); }); /** @test {Observable} */ describe('Observable.create', () => { it('should create an Observable', () => { const result = Observable.create(() => { //noop }); expect(result instanceof Observable).to.be.true; }); it('should provide an observer to the function', () => { let called = false; const result = Observable.create((observer: Observer) => { called = true; expectFullObserver(observer); observer.complete(); }); expect(called).to.be.false; result.subscribe(() => { //noop }); expect(called).to.be.true; }); it('should send errors thrown in the passed function down the error path', (done) => { Observable.create(() => { throw new Error('this should be handled'); }).subscribe({ error(err: Error) { expect(err).to.exist.and.be.instanceof(Error).and.have.property('message', 'this should be handled'); done(); }, }); }); }); /** @test {Observable} */ describe('Observable.lift', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); class MyCustomObservable extends Observable { static from(source: any) { const observable = new MyCustomObservable(); observable.source = >source; return observable; } lift(operator: Operator): Observable { const observable = new MyCustomObservable(); (observable).source = this; (observable).operator = operator; return observable; } } it('should return Observable which calls FinalizationLogic of operator on unsubscription', (done) => { const myOperator: Operator = { call: (subscriber: Subscriber, source: any) => { const subscription = source.subscribe((x: any) => subscriber.next(x)); return () => { subscription.unsubscribe(); done(); }; }, }; (NEVER as any).lift(myOperator) .subscribe() .unsubscribe(); }); it('should be overridable in a custom Observable type that composes', (done) => { const result = new MyCustomObservable((observer) => { observer.next(1); observer.next(2); observer.next(3); observer.complete(); }).pipe( map((x) => { return 10 * x; }) ); expect(result instanceof MyCustomObservable).to.be.true; const expected = [10, 20, 30]; result.subscribe( { next: function (x) { expect(x).to.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); } } ); }); it('should compose through multicast and refCount', (done) => { const result = new MyCustomObservable((observer) => { observer.next(1); observer.next(2); observer.next(3); observer.complete(); }).pipe( multicast(() => new Subject()), refCount(), map((x) => 10 * x) ); expect(result instanceof MyCustomObservable).to.be.true; const expected = [10, 20, 30]; result.subscribe( { next: function (x) { expect(x).to.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); } } ); }); it('should compose through publish and refCount', (done) => { const result = new MyCustomObservable((observer) => { observer.next(1); observer.next(2); observer.next(3); observer.complete(); }).pipe( publish(), refCount(), map((x) => 10 * x) ); expect(result instanceof MyCustomObservable).to.be.true; const expected = [10, 20, 30]; result.subscribe( { next: function (x) { expect(x).to.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); } } ); }); it('should compose through publishLast and refCount', (done) => { const result = new MyCustomObservable((observer) => { observer.next(1); observer.next(2); observer.next(3); observer.complete(); }).pipe( publishLast(), refCount(), map((x) => 10 * x) ); expect(result instanceof MyCustomObservable).to.be.true; const expected = [30]; result.subscribe( { next: function (x) { expect(x).to.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); } } ); }); it('should compose through publishBehavior and refCount', (done) => { const result = new MyCustomObservable((observer) => { observer.next(1); observer.next(2); observer.next(3); observer.complete(); }).pipe( publishBehavior(0), refCount(), map((x) => 10 * x) ); expect(result instanceof MyCustomObservable).to.be.true; const expected = [0, 10, 20, 30]; result.subscribe( { next: function (x) { expect(x).to.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); } } ); }); it('should composes Subjects in the simple case', () => { const subject = new Subject(); const result = subject.pipe( map((x) => 10 * x) ) as any as Subject; // Yes, this is correct. (but you're advised not to do this) expect(result instanceof Subject).to.be.true; const emitted: any[] = []; result.subscribe(value => emitted.push(value)); result.next(10); result.next(20); result.next(30); expect(emitted).to.deep.equal([100, 200, 300]); }); /** * Seriously, never do this. It's probably bad that we've allowed this. Fortunately, it's not * a common practice, so maybe we can remove it? */ it('should demonstrate the horrors of sharing and lifting the Subject through', () => { const subject = new Subject(); const shared = subject.pipe( share() ); const result1 = shared.pipe( map(x => x * 10) ) as any as Subject; // Yes, this is correct. const result2 = shared.pipe( map(x => x - 10) ) as any as Subject; // Yes, this is correct. expect(result1 instanceof Subject).to.be.true; const emitted1: any[] = []; result1.subscribe(value => emitted1.push(value)); const emitted2: any[] = []; result2.subscribe(value => emitted2.push(value)); // THIS IS HORRIBLE DON'T DO THIS. result1.next(10); result2.next(20); // Yuck result1.next(30); expect(emitted1).to.deep.equal([100, 200, 300]); expect(emitted2).to.deep.equal([0, 10, 20]); }); /** * This section outlines one of the reasons that we need to get rid of operators that return * Connectable observable. Likewise it also reveals a slight design flaw in `lift`. It * probably should have never tried to compose through the Subject's observer methods. * If you're a user and you're reading this... NEVER try to use this feature, it's likely * to go away at some point. * * The problem is that you can have the Subject parts, or you can have the ConnectableObservable parts, * but you can't have both. * * NOTE: We can remove this in version 8 or 9, because we're getting rid of operators that * return `ConnectableObservable`. :tada: */ describe.skip('The lift through Connectable gaff', () => { it('should compose through multicast and refCount, even if it is a Subject', () => { const subject = new Subject(); const result = subject.pipe( multicast(() => new Subject()), refCount(), map((x) => 10 * x) ) as any as Subject; // Yes, this is correct. expect(result instanceof Subject).to.be.true; const emitted: any[] = []; result.subscribe(value => emitted.push(value)); result.next(10); result.next(20); result.next(30); expect(emitted).to.deep.equal([100, 200, 300]); }); it('should compose through publish and refCount, even if it is a Subject', () => { const subject = new Subject(); const result = subject.pipe( publish(), refCount(), map((x) => 10 * x) ) as any as Subject; // Yes, this is correct. expect(result instanceof Subject).to.be.true; const emitted: any[] = []; result.subscribe(value => emitted.push(value)); result.next(10); result.next(20); result.next(30); expect(emitted).to.deep.equal([100, 200, 300]); }); it('should compose through publishLast and refCount, even if it is a Subject', () => { const subject = new Subject(); const result = subject.pipe( publishLast(), refCount(), map((x) => 10 * x) ) as any as Subject; // Yes, this is correct. expect(result instanceof Subject).to.be.true; const emitted: any[] = []; result.subscribe(value => emitted.push(value)); result.next(10); result.next(20); result.next(30); expect(emitted).to.deep.equal([100, 200, 300]); }); it('should compose through publishBehavior and refCount, even if it is a Subject', () => { const subject = new Subject(); const result = subject.pipe( publishBehavior(0), refCount(), map((x) => 10 * x) ) as any as Subject; // Yes, this is correct. expect(result instanceof Subject).to.be.true; const emitted: any[] = []; result.subscribe(value => emitted.push(value)); result.next(10); result.next(20); result.next(30); expect(emitted).to.deep.equal([0, 100, 200, 300]); }); }); it('should compose through multicast with selector function', (done) => { const result = new MyCustomObservable((observer) => { observer.next(1); observer.next(2); observer.next(3); observer.complete(); }).pipe( multicast( () => new Subject(), (shared) => shared.pipe(map((x) => 10 * x)) ) ); expect(result instanceof MyCustomObservable).to.be.true; const expected = [10, 20, 30]; result.subscribe( { next: function (x) { expect(x).to.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); } } ); }); it('should compose through combineLatest', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const e1 = cold(' -a--b-----c-d-e-|'); const e2 = cold(' --1--2-3-4---| '); const expected = '--A-BC-D-EF-G-H-|'; const result = MyCustomObservable.from(e1).pipe(combineLatest(e2, (a, b) => String(a) + String(b))); expect(result instanceof MyCustomObservable).to.be.true; expectObservable(result).toBe(expected, { A: 'a1', B: 'b1', C: 'b2', D: 'b3', E: 'b4', F: 'c4', G: 'd4', H: 'e4', }); }); }); it('should compose through concat', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const e1 = cold(' --a--b-|'); const e2 = cold(' --x---y--|'); const expected = '--a--b---x---y--|'; const result = MyCustomObservable.from(e1).pipe(concat(e2, rxTestScheduler)); expect(result instanceof MyCustomObservable).to.be.true; expectObservable(result).toBe(expected); }); }); it('should compose through merge', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const e1 = cold(' -a--b-| '); const e2 = cold(' --x--y-|'); const expected = '-ax-by-|'; const result = MyCustomObservable.from(e1).pipe(merge(e2, rxTestScheduler)); expect(result instanceof MyCustomObservable).to.be.true; expectObservable(result).toBe(expected); }); }); it('should compose through race', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----|'); const e1subs = ' ^-------------------!'; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^--!'; const expected = '---a-----b-----c----|'; const result = MyCustomObservable.from(e1).pipe( race(e2) ); expect(result instanceof MyCustomObservable).to.be.true; expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should compose through zip', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const e1 = cold(' -a--b-----c-d-e-|'); const e2 = cold(' --1--2-3-4---| '); const expected = '--A--B----C-D| '; const result = MyCustomObservable.from(e1).pipe(zip(e2, (a, b) => String(a) + String(b))); expect(result instanceof MyCustomObservable).to.be.true; expectObservable(result).toBe(expected, { A: 'a1', B: 'b2', C: 'c3', D: 'd4', }); }); }); it('should allow injecting behaviors into all subscribers in an operator ' + 'chain when overridden', (done) => { // The custom Subscriber const log: Array = []; class LogSubscriber extends Subscriber { next(value?: T): void { log.push('next ' + value); if (!this.isStopped) { this._next(value!); } } } // The custom Operator class LogOperator implements Operator { constructor(private childOperator: Operator) {} call(subscriber: Subscriber, source: any): TeardownLogic { return this.childOperator.call(new LogSubscriber(subscriber), source); } } // The custom Observable class LogObservable extends Observable { lift(operator: Operator): Observable { const observable = new LogObservable(); observable.source = this; observable.operator = new LogOperator(operator); return observable; } } // Use the LogObservable const result = new LogObservable((observer) => { observer.next(1); observer.next(2); observer.next(3); observer.complete(); }).pipe( map((x) => 10 * x), filter((x) => x > 15), count() ); expect(result instanceof LogObservable).to.be.true; const expected = [2]; result.subscribe( { next: function (x) { expect(x).to.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { expect(log).to.deep.equal([ 'next 10', // map 'next 20', // map 'next 20', // filter 'next 30', // map 'next 30', // filter 'next 2', // count ]); done(); } } ); }); }); rxjs-7.5.7/spec/Scheduler-spec.ts000066400000000000000000000032701431412030200166600ustar00rootroot00000000000000import { expect } from 'chai'; import { queueScheduler as queue } from 'rxjs'; import { QueueScheduler } from 'rxjs/internal/scheduler/QueueScheduler'; /** @test {Scheduler} */ describe('Scheduler.queue', () => { it('should schedule things recursively', () => { let call1 = false; let call2 = false; (queue as QueueScheduler)._active = false; queue.schedule(() => { call1 = true; queue.schedule(() => { call2 = true; }); }); expect(call1).to.be.true; expect(call2).to.be.true; }); it('should schedule things recursively via this.schedule', () => { let call1 = false; let call2 = false; (queue as QueueScheduler)._active = false; queue.schedule(function (state) { call1 = state!.call1; call2 = state!.call2; if (!call2) { this.schedule({ call1: true, call2: true }); } }, 0, { call1: true, call2: false }); expect(call1).to.be.true; expect(call2).to.be.true; }); it('should schedule things in the future too', (done) => { let called = false; queue.schedule(() => { called = true; }, 60); setTimeout(() => { expect(called).to.be.false; }, 20); setTimeout(() => { expect(called).to.be.true; done(); }, 100); }); it('should be reusable after an error is thrown during execution', (done) => { const results: number[] = []; expect(() => { queue.schedule(() => { results.push(1); }); queue.schedule(() => { throw new Error('bad'); }); }).to.throw(Error, 'bad'); setTimeout(() => { queue.schedule(() => { results.push(2); done(); }); }, 0); }); }); rxjs-7.5.7/spec/Subject-spec.ts000066400000000000000000000534541431412030200163520ustar00rootroot00000000000000import { expect } from 'chai'; import { Subject, ObjectUnsubscribedError, Observable, AsyncSubject, Observer, of, config, throwError, concat } from 'rxjs'; import { AnonymousSubject } from 'rxjs/internal/Subject'; import { catchError, delay, map, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from './helpers/observableMatcher'; /** @test {Subject} */ describe('Subject', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should allow next with undefined or any when created with no type', (done) => { const subject = new Subject(); subject.subscribe( { next: (x) => { expect(x).to.be.a('undefined'); }, complete: done } ); const data: any = undefined; subject.next(undefined); subject.next(data); subject.complete(); }); it('should allow empty next when created with void type', (done) => { const subject = new Subject(); subject.subscribe( { next: (x) => { expect(x).to.be.a('undefined'); }, complete: done } ); subject.next(); subject.complete(); }); it('should pump values right on through itself', (done) => { const subject = new Subject(); const expected = ['foo', 'bar']; subject.subscribe( { next: (x: string) => { expect(x).to.equal(expected.shift()); }, complete: done } ); subject.next('foo'); subject.next('bar'); subject.complete(); }); it('should pump values to multiple subscribers', (done) => { const subject = new Subject(); const expected = ['foo', 'bar']; let i = 0; let j = 0; subject.subscribe(function (x) { expect(x).to.equal(expected[i++]); }); subject.subscribe( { next: function (x) { expect(x).to.equal(expected[j++]); }, complete: done } ); expect(subject.observers.length).to.equal(2); subject.next('foo'); subject.next('bar'); subject.complete(); }); it('should handle subscribers that arrive and leave at different times, ' + 'subject does not complete', () => { const subject = new Subject(); const results1: (number | string)[] = []; const results2: (number | string)[] = []; const results3: (number | string)[] = []; subject.next(1); subject.next(2); subject.next(3); subject.next(4); const subscription1 = subject.subscribe( { next: function (x) { results1.push(x); }, error: function (e) { results1.push('E'); }, complete: () => { results1.push('C'); } } ); subject.next(5); const subscription2 = subject.subscribe( { next: function (x) { results2.push(x); }, error: function (e) { results2.push('E'); }, complete: () => { results2.push('C'); } } ); subject.next(6); subject.next(7); subscription1.unsubscribe(); subject.next(8); subscription2.unsubscribe(); subject.next(9); subject.next(10); const subscription3 = subject.subscribe( { next: function (x) { results3.push(x); }, error: function (e) { results3.push('E'); }, complete: () => { results3.push('C'); } } ); subject.next(11); subscription3.unsubscribe(); expect(results1).to.deep.equal([5, 6, 7]); expect(results2).to.deep.equal([6, 7, 8]); expect(results3).to.deep.equal([11]); }); it('should handle subscribers that arrive and leave at different times, ' + 'subject completes', () => { const subject = new Subject(); const results1: (number | string)[] = []; const results2: (number | string)[] = []; const results3: (number | string)[] = []; subject.next(1); subject.next(2); subject.next(3); subject.next(4); const subscription1 = subject.subscribe( { next: function (x) { results1.push(x); }, error: function (e) { results1.push('E'); }, complete: () => { results1.push('C'); } } ); subject.next(5); const subscription2 = subject.subscribe( { next: function (x) { results2.push(x); }, error: function (e) { results2.push('E'); }, complete: () => { results2.push('C'); } } ); subject.next(6); subject.next(7); subscription1.unsubscribe(); subject.complete(); subscription2.unsubscribe(); const subscription3 = subject.subscribe( { next: function (x) { results3.push(x); }, error: function (e) { results3.push('E'); }, complete: () => { results3.push('C'); } } ); subscription3.unsubscribe(); expect(results1).to.deep.equal([5, 6, 7]); expect(results2).to.deep.equal([6, 7, 'C']); expect(results3).to.deep.equal(['C']); }); it('should handle subscribers that arrive and leave at different times, ' + 'subject terminates with an error', () => { const subject = new Subject(); const results1: (number | string)[] = []; const results2: (number | string)[] = []; const results3: (number | string)[] = []; subject.next(1); subject.next(2); subject.next(3); subject.next(4); const subscription1 = subject.subscribe( { next: function (x) { results1.push(x); }, error: function (e) { results1.push('E'); }, complete: () => { results1.push('C'); } } ); subject.next(5); const subscription2 = subject.subscribe( { next: function (x) { results2.push(x); }, error: function (e) { results2.push('E'); }, complete: () => { results2.push('C'); } } ); subject.next(6); subject.next(7); subscription1.unsubscribe(); subject.error(new Error('err')); subscription2.unsubscribe(); const subscription3 = subject.subscribe( { next: function (x) { results3.push(x); }, error: function (e) { results3.push('E'); }, complete: () => { results3.push('C'); } } ); subscription3.unsubscribe(); expect(results1).to.deep.equal([5, 6, 7]); expect(results2).to.deep.equal([6, 7, 'E']); expect(results3).to.deep.equal(['E']); }); it('should handle subscribers that arrive and leave at different times, ' + 'subject completes before nexting any value', () => { const subject = new Subject(); const results1: (number | string)[] = []; const results2: (number | string)[] = []; const results3: (number | string)[] = []; const subscription1 = subject.subscribe( { next: function (x) { results1.push(x); }, error: function (e) { results1.push('E'); }, complete: () => { results1.push('C'); } } ); const subscription2 = subject.subscribe( { next: function (x) { results2.push(x); }, error: function (e) { results2.push('E'); }, complete: () => { results2.push('C'); } } ); subscription1.unsubscribe(); subject.complete(); subscription2.unsubscribe(); const subscription3 = subject.subscribe( { next: function (x) { results3.push(x); }, error: function (e) { results3.push('E'); }, complete: () => { results3.push('C'); } } ); subscription3.unsubscribe(); expect(results1).to.deep.equal([]); expect(results2).to.deep.equal(['C']); expect(results3).to.deep.equal(['C']); }); it('should disallow new subscriber once subject has been disposed', () => { const subject = new Subject(); const results1: (number | string)[] = []; const results2: (number | string)[] = []; const results3: (number | string)[] = []; const subscription1 = subject.subscribe( { next: function (x) { results1.push(x); }, error: function (e) { results1.push('E'); }, complete: () => { results1.push('C'); } } ); subject.next(1); subject.next(2); const subscription2 = subject.subscribe( { next: function (x) { results2.push(x); }, error: function (e) { results2.push('E'); }, complete: () => { results2.push('C'); } } ); subject.next(3); subject.next(4); subject.next(5); subscription1.unsubscribe(); subscription2.unsubscribe(); subject.unsubscribe(); expect(() => { subject.subscribe( { next: function (x) { results3.push(x); }, error: function (err) { expect(false).to.equal('should not throw error: ' + err.toString()); } } ); }).to.throw(ObjectUnsubscribedError); expect(results1).to.deep.equal([1, 2, 3, 4, 5]); expect(results2).to.deep.equal([3, 4, 5]); expect(results3).to.deep.equal([]); }); it('should not allow values to be nexted after it is unsubscribed', (done) => { const subject = new Subject(); const expected = ['foo']; subject.subscribe(function (x) { expect(x).to.equal(expected.shift()); }); subject.next('foo'); subject.unsubscribe(); expect(() => subject.next('bar')).to.throw(ObjectUnsubscribedError); done(); }); it('should clean out unsubscribed subscribers', (done) => { const subject = new Subject(); const sub1 = subject.subscribe(function (x) { //noop }); const sub2 = subject.subscribe(function (x) { //noop }); expect(subject.observers.length).to.equal(2); sub1.unsubscribe(); expect(subject.observers.length).to.equal(1); sub2.unsubscribe(); expect(subject.observers.length).to.equal(0); done(); }); it('should expose observed status', () => { const subject = new Subject(); expect(subject.observed).to.equal(false); const sub1 = subject.subscribe(function (x) { //noop }); expect(subject.observed).to.equal(true); const sub2 = subject.subscribe(function (x) { //noop }); expect(subject.observed).to.equal(true); sub1.unsubscribe(); expect(subject.observed).to.equal(true); sub2.unsubscribe(); expect(subject.observed).to.equal(false); subject.unsubscribe(); expect(subject.observed).to.equal(false); }); it('should have a static create function that works', () => { expect(Subject.create).to.be.a('function'); const source = of(1, 2, 3, 4, 5); const nexts: number[] = []; const output: number[] = []; let error: any; let complete = false; let outputComplete = false; const destination = { closed: false, next: function (x: number) { nexts.push(x); }, error: function (err: any) { error = err; this.closed = true; }, complete: function () { complete = true; this.closed = true; }, }; const sub: Subject = Subject.create(destination, source); sub.subscribe({ next: function (x: number) { output.push(x); }, complete: () => { outputComplete = true; } }); sub.next('a'); sub.next('b'); sub.next('c'); sub.complete(); expect(nexts).to.deep.equal(['a', 'b', 'c']); expect(complete).to.be.true; expect(error).to.be.a('undefined'); expect(output).to.deep.equal([1, 2, 3, 4, 5]); expect(outputComplete).to.be.true; }); it('should have a static create function that works also to raise errors', () => { expect(Subject.create).to.be.a('function'); const source = of(1, 2, 3, 4, 5); const nexts: number[] = []; const output: number[] = []; let error: any; let complete = false; let outputComplete = false; const destination = { closed: false, next: function (x: number) { nexts.push(x); }, error: function (err: any) { error = err; this.closed = true; }, complete: function () { complete = true; this.closed = true; }, }; const sub: Subject = Subject.create(destination, source); sub.subscribe({ next: function (x: number) { output.push(x); }, complete: () => { outputComplete = true; } }); sub.next('a'); sub.next('b'); sub.next('c'); sub.error('boom'); expect(nexts).to.deep.equal(['a', 'b', 'c']); expect(complete).to.be.false; expect(error).to.equal('boom'); expect(output).to.deep.equal([1, 2, 3, 4, 5]); expect(outputComplete).to.be.true; }); it('should be an Observer which can be given to Observable.subscribe', (done) => { const source = of(1, 2, 3, 4, 5); const subject = new Subject(); const expected = [1, 2, 3, 4, 5]; subject.subscribe( { next: function (x) { expect(x).to.equal(expected.shift()); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); } } ); source.subscribe(subject); }); it('should be usable as an Observer of a finite delayed Observable', (done) => { const source = of(1, 2, 3).pipe(delay(50)); const subject = new Subject(); const expected = [1, 2, 3]; subject.subscribe( { next: function (x) { expect(x).to.equal(expected.shift()); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); } } ); source.subscribe(subject); }); it('should throw ObjectUnsubscribedError when emit after unsubscribed', () => { const subject = new Subject(); subject.unsubscribe(); expect(() => { subject.next('a'); }).to.throw(ObjectUnsubscribedError); expect(() => { subject.error('a'); }).to.throw(ObjectUnsubscribedError); expect(() => { subject.complete(); }).to.throw(ObjectUnsubscribedError); }); it('should not next after completed', () => { const subject = new Subject(); const results: string[] = []; subject.subscribe( { next: (x) => results.push(x), complete: () => results.push('C') } ); subject.next('a'); subject.complete(); subject.next('b'); expect(results).to.deep.equal(['a', 'C']); }); it('should not next after error', () => { const error = new Error('wut?'); const subject = new Subject(); const results: string[] = []; subject.subscribe( { next: (x) => results.push(x), error: (err) => results.push(err) } ); subject.next('a'); subject.error(error); subject.next('b'); expect(results).to.deep.equal(['a', error]); }); describe('asObservable', () => { it('should hide subject', () => { const subject = new Subject(); const observable = subject.asObservable(); expect(subject).not.to.equal(observable); expect(observable instanceof Observable).to.be.true; expect(observable instanceof Subject).to.be.false; }); it('should handle subject never emits', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const observable = hot('-').asObservable(); expectObservable(observable).toBe('-'); }); }); it('should handle subject completes without emits', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const observable = hot('--^--|').asObservable(); const expected = ' ---|'; expectObservable(observable).toBe(expected); }); }); it('should handle subject throws', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const observable = hot('--^--#').asObservable(); const expected = ' ---#'; expectObservable(observable).toBe(expected); }); }); it('should handle subject emits', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const observable = hot('--^--x--|').asObservable(); const expected = ' ---x--|'; expectObservable(observable).toBe(expected); }); }); it('should work with inherited subject', () => { const results: (number | string)[] = []; const subject = new AsyncSubject(); subject.next(42); subject.complete(); const observable = subject.asObservable(); observable.subscribe( { next: (x) => results.push(x), complete: () => results.push('done') } ); expect(results).to.deep.equal([42, 'done']); }); }); describe('error thrown scenario', () => { afterEach(() => { config.onUnhandledError = null; }); it('should not synchronously error when nexted into', (done) => { config.onUnhandledError = (err) => { expect(err.message).to.equal('Boom!'); done(); }; const source = new Subject(); source.subscribe(); source.subscribe(() => { throw new Error('Boom!'); }); source.subscribe(); try { source.next(42); } catch (err) { // This should not happen! expect(true).to.be.false; } expect(true).to.be.true; }); }); }); describe('AnonymousSubject', () => { it('should be exposed', () => { expect(AnonymousSubject).to.be.a('function'); }); it('should not be eager', () => { let subscribed = false; const subject = Subject.create( null, new Observable((observer: Observer) => { subscribed = true; const subscription = of('x').subscribe(observer); return () => { subscription.unsubscribe(); }; }) ); const observable = subject.asObservable(); expect(subscribed).to.be.false; observable.subscribe(); expect(subscribed).to.be.true; }); }); describe('useDeprecatedSynchronousErrorHandling', () => { beforeEach(() => { config.useDeprecatedSynchronousErrorHandling = true; }); afterEach(() => { config.useDeprecatedSynchronousErrorHandling = false; }); it('should throw an error when nexting with a flattened, erroring inner observable', () => { const subject = new Subject(); subject.pipe(mergeMap(() => throwError(() => new Error('bad')))).subscribe(); expect(() => { subject.next('wee'); }).to.throw(Error, 'bad'); }); it('should throw an error when nexting with a flattened, erroring inner observable with more than one operator', () => { const subject = new Subject(); subject.pipe(mergeMap(() => throwError(() => new Error('bad'))), map(x => x)).subscribe(); expect(() => { subject.next('wee'); }).to.throw(Error, 'bad'); }); it('should throw an error when notifying an error with catchError returning an erroring inner observable', () => { const subject = new Subject(); subject.pipe(catchError(() => throwError(() => new Error('bad')))).subscribe(); expect(() => { subject.error('wee'); }).to.throw(Error, 'bad'); }); it('should throw an error when nexting with an operator that errors synchronously', () => { const subject = new Subject(); subject.pipe(mergeMap(() => { throw new Error('lol'); })).subscribe(); expect(() => { subject.next('wee'); }).to.throw(Error, 'lol'); }); it('should throw an error when notifying an error with a catchError that errors synchronously', () => { const subject = new Subject(); subject.pipe(catchError(() => { throw new Error('lol'); })).subscribe(); expect(() => { subject.error('wee'); }).to.throw(Error, 'lol'); }); it('should throw an error when nexting with an erroring next handler', () => { const subject = new Subject(); subject.subscribe(() => { throw new Error('lol'); }); expect(() => { subject.next('wee'); }).to.throw(Error, 'lol'); }); it('should throw an error when notifying with an erroring error handler', () => { const subject = new Subject(); subject.subscribe({ error: () => { throw new Error('lol'); } }); expect(() => { subject.error('wee'); }).to.throw(Error, 'lol'); }); it('should throw an error when notifying with an erroring complete handler', () => { const subject = new Subject(); subject.subscribe({ complete: () => { throw new Error('lol'); } }); expect(() => { subject.complete(); }).to.throw(Error, 'lol'); }); it('should throw an error when notifying an complete, and concatenated with another observable that synchronously errors', () => { const subject = new Subject(); concat(subject, throwError(new Error('lol'))).subscribe(); expect(() => { subject.complete(); }).to.throw(Error, 'lol'); }); it('should not throw on second error passed', () => { const subject = new Subject(); subject.subscribe(); expect(() => { subject.error(new Error('one')); }).to.throw(Error, 'one'); expect(() => { subject.error(new Error('two')); }).not.to.throw(Error, 'two'); }); it('should not throw on second error passed, even after having been operated on', () => { const subject = new Subject(); subject.pipe(mergeMap(x => [x])).subscribe(); expect(() => { subject.error(new Error('one')); }).to.throw(Error, 'one'); expect(() => { subject.error('two'); }).not.to.throw(); }); it('deep rethrowing 1', () => { const subject1 = new Subject(); const subject2 = new Subject(); subject2.subscribe(); subject1.subscribe({ next: () => subject2.error(new Error('hahaha')) }); expect(() => { subject1.next('test'); }).to.throw(Error, 'hahaha'); }); it('deep rethrowing 2', () => { const subject1 = new Subject(); subject1.subscribe({ next: () => { throwError(new Error('hahaha')).subscribe(); } }); expect(() => { subject1.next('test'); }).to.throw(Error, 'hahaha'); }); });rxjs-7.5.7/spec/Subscriber-spec.ts000066400000000000000000000170411431412030200170460ustar00rootroot00000000000000import { expect } from 'chai'; import { SafeSubscriber } from 'rxjs/internal/Subscriber'; import { Subscriber, Observable, config, of, Observer } from 'rxjs'; import { asInteropSubscriber } from './helpers/interop-helper'; import { getRegisteredFinalizers } from './helpers/subscription'; /** @test {Subscriber} */ describe('SafeSubscriber', () => { it('should ignore next messages after unsubscription', () => { let times = 0; const sub = new SafeSubscriber({ next() { times += 1; } }); sub.next(); sub.next(); sub.unsubscribe(); sub.next(); expect(times).to.equal(2); }); it('should ignore error messages after unsubscription', () => { let times = 0; let errorCalled = false; const sub = new SafeSubscriber({ next() { times += 1; }, error() { errorCalled = true; } }); sub.next(); sub.next(); sub.unsubscribe(); sub.next(); sub.error(); expect(times).to.equal(2); expect(errorCalled).to.be.false; }); it('should ignore complete messages after unsubscription', () => { let times = 0; let completeCalled = false; const sub = new SafeSubscriber({ next() { times += 1; }, complete() { completeCalled = true; } }); sub.next(); sub.next(); sub.unsubscribe(); sub.next(); sub.complete(); expect(times).to.equal(2); expect(completeCalled).to.be.false; }); it('should not be closed when other subscriber with same observer instance completes', () => { const observer = { next: function () { /*noop*/ } }; const sub1 = new SafeSubscriber(observer); const sub2 = new SafeSubscriber(observer); sub2.complete(); expect(sub1.closed).to.be.false; expect(sub2.closed).to.be.true; }); it('should call complete observer without any arguments', () => { let argument: Array | null = null; const observer = { complete: (...args: Array) => { argument = args; } }; const sub1 = new SafeSubscriber(observer); sub1.complete(); expect(argument).to.have.lengthOf(0); }); it('should chain interop unsubscriptions', () => { let observableUnsubscribed = false; let subscriberUnsubscribed = false; let subscriptionUnsubscribed = false; const subscriber = new SafeSubscriber(); subscriber.add(() => subscriberUnsubscribed = true); const source = new Observable(() => () => observableUnsubscribed = true); const subscription = source.subscribe(asInteropSubscriber(subscriber)); subscription.add(() => subscriptionUnsubscribed = true); subscriber.unsubscribe(); expect(observableUnsubscribed).to.be.true; expect(subscriberUnsubscribed).to.be.true; expect(subscriptionUnsubscribed).to.be.true; }); it('should have idempotent unsubscription', () => { let count = 0; const subscriber = new SafeSubscriber(); subscriber.add(() => ++count); expect(count).to.equal(0); subscriber.unsubscribe(); expect(count).to.equal(1); subscriber.unsubscribe(); expect(count).to.equal(1); }); it('should close, unsubscribe, and unregister all finalizers after complete', () => { let isUnsubscribed = false; const subscriber = new SafeSubscriber(); subscriber.add(() => isUnsubscribed = true); subscriber.complete(); expect(isUnsubscribed).to.be.true; expect(subscriber.closed).to.be.true; expect(getRegisteredFinalizers(subscriber).length).to.equal(0); }); it('should close, unsubscribe, and unregister all finalizers after error', () => { let isTornDown = false; const subscriber = new SafeSubscriber({ error: () => { // Mischief managed! // Adding this handler here to prevent the call to error from // throwing, since it will have an error handler now. } }); subscriber.add(() => isTornDown = true); subscriber.error(new Error('test')); expect(isTornDown).to.be.true; expect(subscriber.closed).to.be.true; expect(getRegisteredFinalizers(subscriber).length).to.equal(0); }); }); describe('Subscriber', () => { it('should finalize and unregister all finalizers after complete', () => { let isTornDown = false; const subscriber = new Subscriber(); subscriber.add(() => { isTornDown = true }); subscriber.complete(); expect(isTornDown).to.be.true; expect(getRegisteredFinalizers(subscriber).length).to.equal(0); }); it('should NOT break this context on next methods from unfortunate consumers', () => { // This is a contrived class to illustrate that we can pass another // object that is "observer shaped" and not have it lose its context // as it would have in v5 - v6. class CustomConsumer { valuesProcessed: string[] = []; // In here, we access instance state and alter it. next(value: string) { if (value === 'reset') { this.valuesProcessed = []; } else { this.valuesProcessed.push(value); } } }; const consumer = new CustomConsumer(); of('old', 'old', 'reset', 'new', 'new').subscribe(consumer); expect(consumer.valuesProcessed).not.to.equal(['new', 'new']); }); describe('deprecated next context mode', () => { beforeEach(() => { config.useDeprecatedNextContext = true; }); afterEach(() => { config.useDeprecatedNextContext = false; }); it('should allow changing the context of `this` in a POJO subscriber', () => { const results: any[] = []; const source = new Observable(subscriber => { for (let i = 0; i < 10 && !subscriber.closed; i++) { subscriber.next(i); } subscriber.complete(); return () => { results.push('finalizer'); }; }); source.subscribe({ next: function (this: any, value) { expect(this.unsubscribe).to.be.a('function'); results.push(value); if (value === 3) { this.unsubscribe(); } }, complete() { throw new Error('should not be called'); } }); expect(results).to.deep.equal([0, 1, 2, 3, 'finalizer']); }); it('should NOT break this context on next methods from unfortunate consumers', () => { // This is a contrived class to illustrate that we can pass another // object that is "observer shaped" class CustomConsumer { valuesProcessed: string[] = []; // In here, we access instance state and alter it. next(value: string) { if (value === 'reset') { this.valuesProcessed = []; } else { this.valuesProcessed.push(value); } } }; const consumer = new CustomConsumer(); of('old', 'old', 'reset', 'new', 'new').subscribe(consumer); expect(consumer.valuesProcessed).not.to.equal(['new', 'new']); }); }); const FinalizationRegistry = (global as any).FinalizationRegistry; if (FinalizationRegistry && global.gc) { it('should not leak the destination', (done) => { let observer: Observer | undefined = { next() { /* noop */ }, error() { /* noop */ }, complete() { /* noop */ } }; const registry = new FinalizationRegistry((value: any) => { expect(value).to.equal('observer'); done(); }); registry.register(observer, 'observer'); const subscription = of(42).subscribe(observer); observer = undefined; global.gc?.(); }); } else { console.warn(`No support for FinalizationRegistry in Node ${process.version}`); } });rxjs-7.5.7/spec/Subscription-spec.ts000066400000000000000000000142521431412030200174300ustar00rootroot00000000000000import { expect } from 'chai'; import { Observable, UnsubscriptionError, Subscription, merge } from 'rxjs'; /** @test {Subscription} */ describe('Subscription', () => { describe('add()', () => { it('should unsubscribe child subscriptions', () => { const main = new Subscription(); let isCalled = false; const child = new Subscription(() => { isCalled = true; }); main.add(child); main.unsubscribe(); expect(isCalled).to.equal(true); }); it('should unsubscribe child subscriptions if it has already been unsubscribed', () => { const main = new Subscription(); main.unsubscribe(); let isCalled = false; const child = new Subscription(() => { isCalled = true; }); main.add(child); expect(isCalled).to.equal(true); }); it('should unsubscribe a finalizer function that was passed', () => { let isCalled = false; const main = new Subscription(); main.add(() => { isCalled = true; }); main.unsubscribe(); expect(isCalled).to.be.true; }); it('should unsubscribe a finalizer function that was passed immediately if it has been unsubscribed', () => { let isCalled = false; const main = new Subscription(); main.unsubscribe(); main.add(() => { isCalled = true; }); expect(isCalled).to.be.true; }); it('should unsubscribe an Unsubscribable when unsubscribed', () => { let isCalled = false; const main = new Subscription(); main.add({ unsubscribe() { isCalled = true; } }); main.unsubscribe(); expect(isCalled).to.be.true; }); it('should unsubscribe an Unsubscribable if it is already unsubscribed', () => { let isCalled = false; const main = new Subscription(); main.unsubscribe(); main.add({ unsubscribe() { isCalled = true; } }); expect(isCalled).to.be.true; }); }); describe('remove()', () => { it('should remove added Subscriptions', () => { let isCalled = false; const main = new Subscription(); const child = new Subscription(() => { isCalled = true; }); main.add(child); main.remove(child); main.unsubscribe(); expect(isCalled).to.be.false; }); it('should remove added functions', () => { let isCalled = false; const main = new Subscription(); const finalizer = () => { isCalled = true; }; main.add(finalizer); main.remove(finalizer); main.unsubscribe(); expect(isCalled).to.be.false; }); it('should remove added unsubscribables', () => { let isCalled = false; const main = new Subscription(); const unsubscribable = { unsubscribe() { isCalled = true; } } main.add(unsubscribable); main.remove(unsubscribable); main.unsubscribe(); expect(isCalled).to.be.false; }); }); describe('unsubscribe()', () => { it('should unsubscribe from all subscriptions, when some of them throw', (done) => { const finalizers: number[] = []; const source1 = new Observable(() => { return () => { finalizers.push(1); }; }); const source2 = new Observable(() => { return () => { finalizers.push(2); throw new Error('oops, I am a bad unsubscribe!'); }; }); const source3 = new Observable(() => { return () => { finalizers.push(3); }; }); const subscription = merge(source1, source2, source3).subscribe(); setTimeout(() => { expect(() => { subscription.unsubscribe(); }).to.throw(UnsubscriptionError); expect(finalizers).to.deep.equal([1, 2, 3]); done(); }); }); it('should unsubscribe from all subscriptions, when adding a bad custom subscription to a subscription', (done) => { const finalizers: number[] = []; const sub = new Subscription(); const source1 = new Observable(() => { return () => { finalizers.push(1); }; }); const source2 = new Observable(() => { return () => { finalizers.push(2); sub.add(({ unsubscribe: () => { expect(sub.closed).to.be.true; throw new Error('Who is your daddy, and what does he do?'); } })); }; }); const source3 = new Observable(() => { return () => { finalizers.push(3); }; }); sub.add(merge(source1, source2, source3).subscribe()); setTimeout(() => { expect(() => { sub.unsubscribe(); }).to.throw(UnsubscriptionError); expect(finalizers).to.deep.equal([1, 2, 3]); done(); }); }); it('should have idempotent unsubscription', () => { let count = 0; const subscription = new Subscription(() => ++count); expect(count).to.equal(0); subscription.unsubscribe(); expect(count).to.equal(1); subscription.unsubscribe(); expect(count).to.equal(1); }); it('should unsubscribe from all parents', () => { // https://github.com/ReactiveX/rxjs/issues/6351 const a = new Subscription(() => { /* noop */}); const b = new Subscription(() => { /* noop */}); const c = new Subscription(() => { /* noop */}); const d = new Subscription(() => { /* noop */}); a.add(d); b.add(d); c.add(d); // When d is added to the subscriptions, it's added as a finalizer. The // length is 1 because the finalizers passed to the ctors are stored in a // separate property. expect((a as any)._finalizers).to.have.length(1); expect((b as any)._finalizers).to.have.length(1); expect((c as any)._finalizers).to.have.length(1); d.unsubscribe(); // When d is unsubscribed, it should remove itself from each of its // parents. expect((a as any)._finalizers).to.have.length(0); expect((b as any)._finalizers).to.have.length(0); expect((c as any)._finalizers).to.have.length(0); }); }); }); rxjs-7.5.7/spec/ajax/000077500000000000000000000000001431412030200143635ustar00rootroot00000000000000rxjs-7.5.7/spec/ajax/index-spec.ts000066400000000000000000000007711431412030200167770ustar00rootroot00000000000000import * as index from 'rxjs/ajax'; import { expect } from 'chai'; describe('index', () => { it('should export static ajax observable creator functions', () => { expect(index.ajax).to.exist; }); it('should export Ajax data classes', () => { expect(index.AjaxError).to.exist; expect(index.AjaxTimeoutError).to.exist; // Interfaces can be checked by creating a variable of that type let ajaxRequest: index.AjaxRequest; let ajaxResponse: index.AjaxResponse; }); }); rxjs-7.5.7/spec/config-spec.ts000066400000000000000000000161171431412030200162130ustar00rootroot00000000000000/** @prettier */ import { config } from '../src/internal/config'; import { expect } from 'chai'; import { Observable } from 'rxjs'; import { timeoutProvider } from 'rxjs/internal/scheduler/timeoutProvider'; describe('config', () => { it('should have a Promise property that defaults to nothing', () => { expect(config).to.have.property('Promise'); expect(config.Promise).to.be.undefined; }); describe('onUnhandledError', () => { afterEach(() => { config.onUnhandledError = null; }); it('should default to null', () => { expect(config.onUnhandledError).to.be.null; }); it('should call asynchronously if an error is emitted and not handled by the consumer observer', (done) => { let called = false; const results: any[] = []; config.onUnhandledError = (err) => { called = true; expect(err).to.equal('bad'); done(); }; const source = new Observable((subscriber) => { subscriber.next(1); subscriber.error('bad'); }); source.subscribe({ next: (value) => results.push(value), }); expect(called).to.be.false; expect(results).to.deep.equal([1]); }); it('should call asynchronously if an error is emitted and not handled by the consumer next callback', (done) => { let called = false; const results: any[] = []; config.onUnhandledError = (err) => { called = true; expect(err).to.equal('bad'); done(); }; const source = new Observable((subscriber) => { subscriber.next(1); subscriber.error('bad'); }); source.subscribe((value) => results.push(value)); expect(called).to.be.false; expect(results).to.deep.equal([1]); }); it('should call asynchronously if an error is emitted and not handled by the consumer in the empty case', (done) => { let called = false; config.onUnhandledError = (err) => { called = true; expect(err).to.equal('bad'); done(); }; const source = new Observable((subscriber) => { subscriber.error('bad'); }); source.subscribe(); expect(called).to.be.false; }); /** * This test is added so people know this behavior is _intentional_. It's part of the contract of observables * and, while I'm not sure I like it, it might start surfacing untold numbers of errors, and break * node applications if we suddenly changed this to start throwing errors on other jobs for instances * where users accidentally called `subscriber.error` twice. Likewise, would we report an error * for two calls of `complete`? This is really something a build-time tool like a linter should * capture. Not a run time error reporting event. */ it('should not be called if two errors are sent to the subscriber', (done) => { let called = false; config.onUnhandledError = () => { called = true; }; const source = new Observable((subscriber) => { subscriber.error('handled'); subscriber.error('swallowed'); }); let syncSentError: any; source.subscribe({ error: (err) => { syncSentError = err; }, }); expect(syncSentError).to.equal('handled'); // When called, onUnhandledError is called on a timeout, so delay the // the assertion of the expectation until after the point at which // onUnhandledError would have been called. timeoutProvider.setTimeout(() => { expect(called).to.be.false; done(); }); }); }); describe('onStoppedNotification', () => { afterEach(() => { config.onStoppedNotification = null; }); it('should default to null', () => { expect(config.onStoppedNotification).to.be.null; }); it('should be called asynchronously if a subscription setup errors after the subscription is closed by an error', (done) => { let called = false; config.onStoppedNotification = (notification) => { called = true; expect(notification.kind).to.equal('E'); expect(notification).to.have.property('error', 'bad'); done(); }; const source = new Observable((subscriber) => { subscriber.error('handled'); throw 'bad'; }); let syncSentError: any; source.subscribe({ error: (err) => { syncSentError = err; }, }); expect(syncSentError).to.equal('handled'); expect(called).to.be.false; }); it('should be called asynchronously if a subscription setup errors after the subscription is closed by a completion', (done) => { let called = false; let completed = false; config.onStoppedNotification = (notification) => { called = true; expect(notification.kind).to.equal('E'); expect(notification).to.have.property('error', 'bad'); done(); }; const source = new Observable((subscriber) => { subscriber.complete(); throw 'bad'; }); source.subscribe({ error: () => { throw 'should not be called'; }, complete: () => { completed = true; }, }); expect(completed).to.be.true; expect(called).to.be.false; }); it('should be called if a next is sent to the stopped subscriber', (done) => { let called = false; config.onStoppedNotification = (notification) => { called = true; expect(notification.kind).to.equal('N'); expect(notification).to.have.property('value', 2); done(); }; const source = new Observable((subscriber) => { subscriber.next(1); subscriber.complete(); subscriber.next(2); }); let syncSentValue: any; source.subscribe({ next: (value) => { syncSentValue = value; }, }); expect(syncSentValue).to.equal(1); expect(called).to.be.false; }); it('should be called if two errors are sent to the subscriber', (done) => { let called = false; config.onStoppedNotification = (notification) => { called = true; expect(notification.kind).to.equal('E'); expect(notification).to.have.property('error', 'swallowed'); done(); }; const source = new Observable((subscriber) => { subscriber.error('handled'); subscriber.error('swallowed'); }); let syncSentError: any; source.subscribe({ error: (err) => { syncSentError = err; }, }); expect(syncSentError).to.equal('handled'); expect(called).to.be.false; }); it('should be called if two completes are sent to the subscriber', (done) => { let called = false; config.onStoppedNotification = (notification) => { called = true; expect(notification.kind).to.equal('C'); done(); }; const source = new Observable((subscriber) => { subscriber.complete(); subscriber.complete(); }); source.subscribe(); expect(called).to.be.false; }); }); }); rxjs-7.5.7/spec/deprecation-equivalents/000077500000000000000000000000001431412030200202735ustar00rootroot00000000000000rxjs-7.5.7/spec/deprecation-equivalents/multicasting-deprecations-spec.ts000066400000000000000000000135001431412030200267530ustar00rootroot00000000000000/** @prettier */ import { Observable, ConnectableObservable, connectable, of, AsyncSubject, BehaviorSubject, ReplaySubject, Subject, merge } from 'rxjs'; import { connect, share, multicast, publish, publishReplay, publishBehavior, publishLast, refCount, repeat, retry } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; describe('multicasting equivalent tests', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); testEquivalents( 'multicast(() => new Subject()), refCount() and share()', (source) => source.pipe( multicast(() => new Subject()), refCount() ), (source) => source.pipe(share()) ); testEquivalents( 'multicast(new Subject()), refCount() and share({ resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })', (source) => source.pipe(multicast(new Subject()), refCount()), (source) => source.pipe(share({ resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })) ); testEquivalents( 'publish(), refCount() and share({ resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })', (source) => source.pipe(publish(), refCount()), (source) => source.pipe(share({ resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })) ); testEquivalents( 'publishLast(), refCount() and share({ connector: () => new AsyncSubject(), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })', (source) => source.pipe(publishLast(), refCount()), (source) => source.pipe(share({ connector: () => new AsyncSubject(), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })) ); testEquivalents( 'publishBehavior("X"), refCount() and share({ connector: () => new BehaviorSubject("X"), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })', (source) => source.pipe(publishBehavior('X'), refCount()), (source) => source.pipe( share({ connector: () => new BehaviorSubject('X'), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }) ) ); testEquivalents( 'publishReplay(3, 10), refCount() and share({ connector: () => new ReplaySubject(3, 10), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })', (source) => source.pipe(publishReplay(3, 10), refCount()), (source) => source.pipe( share({ connector: () => new ReplaySubject(3, 10), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }) ) ); const fn = (source: Observable) => merge(source, source); testEquivalents( 'publish(fn) and connect({ setup: fn })', (source) => source.pipe(publish(fn)), (source) => source.pipe(connect(fn)) ); testEquivalents( 'publishReplay(3, 10, fn) and `subject = new ReplaySubject(3, 10), connect({ connector: () => subject , setup: fn })`', (source) => source.pipe(publishReplay(3, 10, fn)), (source) => { const subject = new ReplaySubject(3, 10); return source.pipe(connect(fn, { connector: () => subject })); } ); /** * Used to test a variety of scenarios with multicast operators that should be equivalent. * @param name The name to add to the test output * @param oldExpression The old expression we're saying matches the updated expression * @param updatedExpression The updated expression we're telling people to use instead. */ function testEquivalents( name: string, oldExpression: (source: Observable) => Observable, updatedExpression: (source: Observable) => Observable ) { it(`should be equivalent for ${name} for async sources`, () => { rxTest.run(({ cold, expectObservable }) => { const source = cold('----a---b---c----d---e----|'); const old = oldExpression(source); const updated = updatedExpression(source); expectObservable(updated).toEqual(old); }); }); it(`should be equivalent for ${name} for async sources that repeat`, () => { rxTest.run(({ cold, expectObservable }) => { const source = cold('----a---b---c----d---e----|'); const old = oldExpression(source).pipe(repeat(3)); const updated = updatedExpression(source).pipe(repeat(3)); expectObservable(updated).toEqual(old); }); }); it(`should be equivalent for ${name} for async sources that retry`, () => { rxTest.run(({ cold, expectObservable }) => { const source = cold('----a---b---c----d---e----#'); const old = oldExpression(source).pipe(retry(3)); const updated = updatedExpression(source).pipe(retry(3)); expectObservable(updated).toEqual(old); }); }); it(`should be equivalent for ${name} for async sources`, () => { rxTest.run(({ expectObservable }) => { const source = of('a', 'b', 'c'); const old = oldExpression(source); const updated = updatedExpression(source); expectObservable(updated).toEqual(old); }); }); it(`should be equivalent for ${name} for async sources that repeat`, () => { rxTest.run(({ expectObservable }) => { const source = of('a', 'b', 'c'); const old = oldExpression(source).pipe(repeat(3)); const updated = updatedExpression(source).pipe(repeat(3)); expectObservable(updated).toEqual(old); }); }); it(`should be equivalent for ${name} for async sources that retry`, () => { rxTest.run(({ expectObservable }) => { const source = of('a', 'b', 'c'); const old = oldExpression(source).pipe(retry(3)); const updated = updatedExpression(source).pipe(retry(3)); expectObservable(updated).toEqual(old); }); }); } }); rxjs-7.5.7/spec/exports-spec.ts.disabled000066400000000000000000000055741431412030200202250ustar00rootroot00000000000000import { expect } from 'chai'; import { bindCallback, bindNodeCallback, combineLatest, concat, defer, empty, forkJoin, from, fromEvent, fromEventPattern, iif, interval, merge, of, onErrorResumeNext, pairs, race, range, throwError, timer, using, zip } from 'rxjs'; import * as Rx from 'rxjs/Rx'; describe('exports', () => { it('should have rxjs/observable/bindCallback', () => { expect(bindCallback).to.equal(Rx.Observable.bindCallback); }); it('should have rxjs/observable/bindNodeCallback', () => { expect(bindNodeCallback).to.equal(Rx.Observable.bindNodeCallback); }); it('should have rxjs/observable/combineLatest', () => { expect(combineLatest).to.equal(Rx.Observable.combineLatest); }); it('should have rxjs/observable/concat', () => { expect(concat).to.equal(Rx.Observable.concat); }); it('should have rxjs/observable/defer', () => { expect(defer).to.equal(Rx.Observable.defer); }); it('should have rxjs/observable/empty', () => { expect(empty).to.equal(Rx.Observable.empty); }); it('should have rxjs/observable/forkJoin', () => { expect(forkJoin).to.equal(Rx.Observable.forkJoin); }); it('should have rxjs/observable/from', () => { expect(from).to.equal(Rx.Observable.from); }); it('should have rxjs/observable/fromEvent', () => { expect(fromEvent).to.equal(Rx.Observable.fromEvent); }); it('should have rxjs/observable/fromEventPattern', () => { expect(fromEventPattern).to.equal(Rx.Observable.fromEventPattern); }); it('should have rxjs/observable/fromPromise', () => { expect(from).to.equal(Rx.Observable.fromPromise); }); it('should have rxjs/observable/iif', () => { expect(iif).to.equal(Rx.Observable.if); }); it('should have rxjs/observable/interval', () => { expect(interval).to.equal(Rx.Observable.interval); }); it('should have rxjs/observable/merge', () => { expect(merge).to.equal(Rx.Observable.merge); }); it('should have rxjs/observable/of', () => { expect(of).to.equal(Rx.Observable.of); }); it('should have rxjs/observable/onErrorResumeNext', () => { expect(onErrorResumeNext).to.equal(Rx.Observable.onErrorResumeNext); }); it('should have rxjs/observable/pairs', () => { expect(pairs).to.equal(Rx.Observable.pairs); }); it('should have rxjs/observable/race', () => { expect(race).to.equal(Rx.Observable.race); }); it('should have rxjs/observable/range', () => { expect(range).to.equal(Rx.Observable.range); }); it('should have rxjs/observable/throwError', () => { expect(throwError).to.equal(Rx.Observable.throw); }); it('should have rxjs/observable/timer', () => { expect(timer).to.equal(Rx.Observable.timer); }); it('should have rxjs/observable/using', () => { expect(using).to.equal(Rx.Observable.using); }); it('should have rxjs/observable/zip', () => { expect(zip).to.equal(Rx.Observable.zip); }); }); rxjs-7.5.7/spec/firstValueFrom-spec.ts000066400000000000000000000046231431412030200177150ustar00rootroot00000000000000import { interval, firstValueFrom, EMPTY, EmptyError, throwError, of, Observable } from 'rxjs'; import { expect } from 'chai'; import { finalize } from 'rxjs/operators'; describe('firstValueFrom', () => { it('should emit the first value as a promise', async () => { let finalized = false; const source = interval(10).pipe(finalize(() => (finalized = true))); const result = await firstValueFrom(source); expect(result).to.equal(0); expect(finalized).to.be.true; }); it('should support a default value', async () => { const source = EMPTY; const result = await firstValueFrom(source, { defaultValue: 0 }); expect(result).to.equal(0); }); it('should support an undefined config', async () => { const source = EMPTY; let error: any = null; try { await firstValueFrom(source, undefined as any); } catch (err) { error = err; } expect(error).to.be.an.instanceOf(EmptyError); }); it('should error for empty observables', async () => { const source = EMPTY; let error: any = null; try { await firstValueFrom(source); } catch (err) { error = err; } expect(error).to.be.an.instanceOf(EmptyError); }); it('should error for errored observables', async () => { const source = throwError(() => new Error('blorp!')); let error: any = null; try { await firstValueFrom(source); } catch (err) { error = err; } expect(error).to.be.an.instanceOf(Error); expect(error.message).to.equal('blorp!'); }); it('should work with a synchronous observable', async () => { let finalized = false; const source = of('apples', 'bananas').pipe(finalize(() => (finalized = true))); const result = await firstValueFrom(source); expect(result).to.equal('apples'); expect(finalized).to.be.true; }); it('should stop listening to a synchronous observable when resolved', async () => { const sideEffects: number[] = []; const synchronousObservable = new Observable(subscriber => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); const result = await firstValueFrom(synchronousObservable); expect(sideEffects).to.deep.equal([0]); }); }); rxjs-7.5.7/spec/helpers/000077500000000000000000000000001431412030200151025ustar00rootroot00000000000000rxjs-7.5.7/spec/helpers/interop-helper-spec.ts000066400000000000000000000012711431412030200213400ustar00rootroot00000000000000import { expect } from 'chai'; import { Observable, of, Subscriber } from 'rxjs'; import { observable as symbolObservable } from 'rxjs/internal/symbol/observable'; import { asInteropObservable, asInteropSubscriber } from './interop-helper'; describe('interop helper', () => { it('should simulate interop observables', () => { const observable: any = asInteropObservable(of(42)); expect(observable).to.not.be.instanceOf(Observable); expect(observable[symbolObservable]).to.be.a('function'); }); it('should simulate interop subscribers', () => { const subscriber: any = asInteropSubscriber(new Subscriber()); expect(subscriber).to.not.be.instanceOf(Subscriber); }); });rxjs-7.5.7/spec/helpers/interop-helper.ts000066400000000000000000000055001431412030200204070ustar00rootroot00000000000000import { Observable, Operator, Subject, Subscriber, Subscription } from 'rxjs'; /** * Returns an observable that will be deemed by this package's implementation * to be an observable that requires interop. The returned observable will fail * the `instanceof Observable` test and will deem any `Subscriber` passed to * its `subscribe` method to be untrusted. */ export function asInteropObservable(observable: Observable): Observable { return new Proxy(observable, { get(target: Observable, key: string | number | symbol) { if (key === 'lift') { const { lift } = target as any; return interopLift(lift); } if (key === 'subscribe') { const { subscribe } = target; return interopSubscribe(subscribe); } return Reflect.get(target, key); }, getPrototypeOf(target: Observable) { const { lift, subscribe, ...rest } = Object.getPrototypeOf(target); return { ...rest, lift: interopLift(lift), subscribe: interopSubscribe(subscribe) }; } }); } /** * Returns a subject that will be deemed by this package's implementation to * be untrusted. The returned subject will not include the symbol that * identifies trusted subjects. */ export function asInteropSubject(subject: Subject): Subject { return asInteropSubscriber(subject as any) as any; } /** * Returns a subscriber that will be deemed by this package's implementation to * be untrusted. The returned subscriber will fail the `instanceof Subscriber` * test and will not include the symbol that identifies trusted subscribers. */ export function asInteropSubscriber(subscriber: Subscriber): Subscriber { return new Proxy(subscriber, { get(target: Subscriber, key: string | number | symbol) { return Reflect.get(target, key); }, getPrototypeOf(target: Subscriber) { const { ...rest } = Object.getPrototypeOf(target); return rest; } }); } function interopLift(lift: (operator: Operator) => Observable) { return function (this: Observable, operator: Operator): Observable { const observable = lift.call(this, operator); const { call } = observable.operator!; observable.operator!.call = function (this: Operator, subscriber: Subscriber, source: any) { return call.call(this, asInteropSubscriber(subscriber), source); }; observable.source = asInteropObservable(observable.source!); return asInteropObservable(observable); }; } function interopSubscribe(subscribe: (...args: any[]) => Subscription) { return function (this: Observable, ...args: any[]): Subscription { const [arg] = args; if (arg instanceof Subscriber) { return subscribe.call(this, asInteropSubscriber(arg)); } return subscribe.apply(this, args); }; } rxjs-7.5.7/spec/helpers/marble-testing.ts000066400000000000000000000043071431412030200203730ustar00rootroot00000000000000import { Observable } from 'rxjs'; import { SubscriptionLog } from '../../src/internal/testing/SubscriptionLog'; import { ColdObservable } from '../../src/internal/testing/ColdObservable'; import { HotObservable } from '../../src/internal/testing/HotObservable'; import { observableToBeFn, subscriptionLogsToBeFn } from '../../src/internal/testing/TestScheduler'; declare const global: any; export function hot(marbles: string, values?: void, error?: any): HotObservable; export function hot(marbles: string, values?: { [index: string]: V; }, error?: any): HotObservable; export function hot(marbles: string, values?: { [index: string]: V; } | void, error?: any): HotObservable { if (!global.rxTestScheduler) { throw 'tried to use hot() in async test'; } return global.rxTestScheduler.createHotObservable.apply(global.rxTestScheduler, arguments); } export function cold(marbles: string, values?: void, error?: any): ColdObservable; export function cold(marbles: string, values?: { [index: string]: V; }, error?: any): ColdObservable; export function cold(marbles: string, values?: any, error?: any): ColdObservable { if (!global.rxTestScheduler) { throw 'tried to use cold() in async test'; } return global.rxTestScheduler.createColdObservable.apply(global.rxTestScheduler, arguments); } export function expectObservable(observable: Observable, unsubscriptionMarbles: string | null = null): ({ toBe: observableToBeFn }) { if (!global.rxTestScheduler) { throw 'tried to use expectObservable() in async test'; } return global.rxTestScheduler.expectObservable.apply(global.rxTestScheduler, arguments); } export function expectSubscriptions(actualSubscriptionLogs: SubscriptionLog[]): ({ toBe: subscriptionLogsToBeFn }) { if (!global.rxTestScheduler) { throw 'tried to use expectSubscriptions() in async test'; } return global.rxTestScheduler.expectSubscriptions.apply(global.rxTestScheduler, arguments); } export function time(marbles: string): number { if (!global.rxTestScheduler) { throw 'tried to use time() in async test'; } return global.rxTestScheduler.createTime.apply(global.rxTestScheduler, arguments); } rxjs-7.5.7/spec/helpers/observableMatcher.ts000066400000000000000000000025031431412030200211020ustar00rootroot00000000000000import * as _ from 'lodash'; import * as chai from 'chai'; function stringify(x: any): string { return JSON.stringify(x, function (key: string, value: any) { if (Array.isArray(value)) { return '[' + value .map(function (i) { return '\n\t' + stringify(i); }) + '\n]'; } return value; }) .replace(/\\"/g, '"') .replace(/\\t/g, '\t') .replace(/\\n/g, '\n'); } function deleteErrorNotificationStack(marble: any) { const { notification } = marble; if (notification) { const { kind, error } = notification; if (kind === 'E' && error instanceof Error) { notification.error = { name: error.name, message: error.message }; } } return marble; } export function observableMatcher(actual: any, expected: any) { if (Array.isArray(actual) && Array.isArray(expected)) { actual = actual.map(deleteErrorNotificationStack); expected = expected.map(deleteErrorNotificationStack); const passed = _.isEqual(actual, expected); if (passed) { return; } let message = '\nExpected \n'; actual.forEach((x: any) => message += `\t${stringify(x)}\n`); message += '\t\nto deep equal \n'; expected.forEach((x: any) => message += `\t${stringify(x)}\n`); chai.assert(passed, message); } else { chai.assert.deepEqual(actual, expected); } } rxjs-7.5.7/spec/helpers/setup.ts000066400000000000000000000035411431412030200166150ustar00rootroot00000000000000/** * Setup globals for the mocha unit tests such as injecting polyfills **/ import * as chai from 'chai'; import * as sinonChai from 'sinon-chai'; if (typeof Symbol !== 'function') { let id = 0; const symbolFn: any = (description: string) => `Symbol_${id++} ${description} (RxJS Testing Polyfill)`; Symbol = symbolFn; } if (!(Symbol as any).observable) { (Symbol as any).observable = Symbol('Symbol.observable polyfill from RxJS Testing'); } /** Polyfill requestAnimationFrame for testing animationFrame scheduler in Node */ // http://paulirish.com/2011/requestanimationframe-for-smart-animating/ // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating // requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel // MIT license (function(this: any, window: any) { window = window || this; let lastTime = 0; const vendors = ['ms', 'moz', 'webkit', 'o']; for (let x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']; } if (!window.requestAnimationFrame) { window.requestAnimationFrame = (callback: Function, element: any) => { const currTime = new Date().getTime(); const timeToCall = Math.max(0, 16 - (currTime - lastTime)); const id = window.setTimeout(() => { callback(currTime + timeToCall); }, timeToCall); lastTime = currTime + timeToCall; return id; }; } if (!window.cancelAnimationFrame) { window.cancelAnimationFrame = (id: number) => { clearTimeout(id); }; } }(global)); //setup sinon-chai chai.use(sinonChai); rxjs-7.5.7/spec/helpers/subscription.ts000066400000000000000000000004511431412030200201760ustar00rootroot00000000000000/** @prettier */ import { TeardownLogic } from 'rxjs'; export function getRegisteredFinalizers(subscription: any): Exclude[] { if ('_finalizers' in subscription) { return subscription._finalizers ?? []; } else { throw new TypeError('Invalid Subscription'); } } rxjs-7.5.7/spec/helpers/test-helper.ts000066400000000000000000000027721431412030200177160ustar00rootroot00000000000000import { of, asyncScheduler, Observable, scheduled, ObservableInput } from 'rxjs'; import { observable } from 'rxjs/internal/symbol/observable'; import { iterator } from 'rxjs/internal/symbol/iterator'; if (process && process.on) { /** * With async/await functions in Node, mocha seems to allow * tests to pass, even they shouldn't there's something about how * it handles the rejected promise where it does not notice * that the test failed. */ process.on('unhandledRejection', err => { console.error(err); process.exit(1); }); } export function lowerCaseO(...args: Array): Observable { const o: any = { subscribe(observer: any) { args.forEach(v => observer.next(v)); observer.complete(); return { unsubscribe() { /* do nothing */ } }; } }; o[observable] = function (this: any) { return this; }; return o; } export const createObservableInputs = (value: T) => of( of(value), scheduled([value], asyncScheduler), [value], Promise.resolve(value), { [iterator]: () => { const iteratorResults = [ { value, done: false }, { done: true } ]; return { next: () => { return iteratorResults.shift(); } }; } } as any as Iterable, { [observable]: () => of(value) } as any ) as Observable>; /** * Used to signify no subscriptions took place to `expectSubscriptions` assertions. */ export const NO_SUBS: string[] = [];rxjs-7.5.7/spec/helpers/testScheduler-ui.ts000066400000000000000000000135261431412030200207120ustar00rootroot00000000000000import * as _ from 'lodash'; import * as chai from 'chai'; import { TestScheduler } from 'rxjs/testing'; //tslint:disable:no-var-requires no-require-imports const commonInterface = require('mocha/lib/interfaces/common'); const escapeRe = require('escape-string-regexp'); //tslint:enable:no-var-requires no-require-imports declare const module: any, global: any, Suite: any, Test: any; if (global && !(typeof window !== 'undefined')) { global.mocha = require('mocha'); // tslint:disable-line:no-require-imports no-var-requires global.Suite = global.mocha.Suite; global.Test = global.mocha.Test; } /** * mocha creates own global context per each test suite, simple patching to global won't deliver its context into test cases. * this custom interface is just mimic of existing one amending test scheduler behavior previously test-helper does via global patching. * * @deprecated This ui is no longer actively used. Will be removed after migrating remaining tests uses this. */ module.exports = function (suite: any) { const suites = [suite]; suite.on('pre-require', function (context: any, file: any, mocha: any) { const common = (commonInterface)(suites, context); context.before = common.before; context.after = common.after; context.beforeEach = common.beforeEach; context.afterEach = common.afterEach; context.run = mocha.options.delay && common.runWithSuite(suite); //setting up per-context test scheduler context.rxTestScheduler = null; /** * Describe a "suite" with the given `title` * and callback `fn` containing nested suites * and/or tests. */ context.describe = context.context = function (title: any, fn: any) { const suite = (Suite).create(suites[0], title); suite.file = file; suites.unshift(suite); fn.call(suite); suites.shift(); return suite; }; /** * Pending describe. */ context.xdescribe = context.xcontext = context.describe.skip = function (title: any, fn: any) { const suite = (Suite).create(suites[0], title); suite.pending = true; suites.unshift(suite); fn.call(suite); suites.shift(); }; /** * Exclusive suite. */ context.describe.only = function (title: any, fn: any) { const suite = context.describe(title, fn); mocha.grep(suite.fullTitle()); return suite; }; function stringify(x: any): string { return JSON.stringify(x, function (key: string, value: any) { if (Array.isArray(value)) { return '[' + value .map(function (i) { return '\n\t' + stringify(i); }) + '\n]'; } return value; }) .replace(/\\"/g, '"') .replace(/\\t/g, '\t') .replace(/\\n/g, '\n'); } function deleteErrorNotificationStack(marble: any) { const { notification } = marble; if (notification) { const { kind, error } = notification; if (kind === 'E' && error instanceof Error) { notification.error = { name: error.name, message: error.message }; } } return marble; } /** * custom assertion formatter for expectObservable test */ function observableMatcher(actual: any, expected: any) { if (Array.isArray(actual) && Array.isArray(expected)) { actual = actual.map(deleteErrorNotificationStack); expected = expected.map(deleteErrorNotificationStack); const passed = _.isEqual(actual, expected); if (passed) { return; } let message = '\nExpected \n'; actual.forEach((x: any) => message += `\t${stringify(x)}\n`); message += '\t\nto deep equal \n'; expected.forEach((x: any) => message += `\t${stringify(x)}\n`); chai.assert(passed, message); } else { chai.assert.deepEqual(actual, expected); } } /** * Describe a specification or test-case * with the given `title` and callback `fn` * acting as a thunk. */ const it = context.it = context.specify = function (title: any, fn: any) { context.rxTestScheduler = null; let modified = fn; if (fn && fn.length === 0) { modified = function () { context.rxTestScheduler = new TestScheduler(observableMatcher); try { fn(); context.rxTestScheduler.flush(); } finally { context.rxTestScheduler = null; } }; } const suite = suites[0]; if (suite.pending) { modified = null; } const test = new (Test)(title, modified); test.file = file; suite.addTest(test); return test; }; /** * Exclusive test-case. */ context.it.only = function (title: any, fn: any) { const test = it(title, fn); const reString = '^' + (escapeRe)(test.fullTitle()) + '$'; mocha.grep(new RegExp(reString)); return test; }; /** * Pending test case. */ context.xit = context.xspecify = context.it.skip = function (title: string) { context.it(title); }; /** * Number of attempts to retry. */ context.it.retries = function (n: number) { context.retries(n); }; }); }; //register into global instance if browser test page injects mocha globally if (global.Mocha) { (window).Mocha.interfaces['testschedulerui'] = module.exports; } else { (mocha).interfaces['testschedulerui'] = module.exports; } //overrides JSON.toStringify to serialize error object Object.defineProperty(Error.prototype, 'toJSON', { value: function (this: any) { const alt: Record = {}; Object.getOwnPropertyNames(this).forEach(function (this: any, key: string) { if (key !== 'stack') { alt[key] = this[key]; } }, this); return alt; }, configurable: true }); rxjs-7.5.7/spec/index-spec.ts000066400000000000000000000151441431412030200160540ustar00rootroot00000000000000/** @prettier */ import * as index from '../src/index'; import { expect } from 'chai'; describe('index', () => { it('should export Observable', () => { expect(index.Observable).to.exist; expect(index.ConnectableObservable).to.exist; // Interfaces can be checked by creating a variable of that type let operator: index.Operator; }); it('should export the Subject types', () => { expect(index.Subject).to.exist; expect(index.BehaviorSubject).to.exist; expect(index.ReplaySubject).to.exist; expect(index.AsyncSubject).to.exist; }); it('should export the schedulers', () => { expect(index.asapScheduler).to.exist; expect(index.asyncScheduler).to.exist; expect(index.queueScheduler).to.exist; expect(index.animationFrameScheduler).to.exist; expect(index.VirtualTimeScheduler).to.exist; expect(index.VirtualAction).to.exist; }); it('should export Subscription', () => { expect(index.Subscription).to.exist; expect(index.Subscriber).to.exist; }); it('should export Notification', () => { expect(index.Notification).to.exist; }); it('should export the appropriate utilities', () => { expect(index.pipe).to.exist; expect(index.noop).to.exist; expect(index.identity).to.exist; }); it('should export error types', () => { expect(index.ArgumentOutOfRangeError).to.exist; expect(index.EmptyError).to.exist; expect(index.ObjectUnsubscribedError).to.exist; expect(index.UnsubscriptionError).to.exist; expect(index.TimeoutError).to.exist; }); it('should export constants', () => { expect(index.EMPTY).to.exist; expect(index.NEVER).to.exist; }); it('should export static observable creator functions', () => { expect(index.bindCallback).to.exist; expect(index.bindNodeCallback).to.exist; expect(index.combineLatest).to.exist; expect(index.concat).to.exist; expect(index.defer).to.exist; expect(index.empty).to.exist; expect(index.forkJoin).to.exist; expect(index.from).to.exist; expect(index.fromEvent).to.exist; expect(index.fromEventPattern).to.exist; expect(index.generate).to.exist; expect(index.iif).to.exist; expect(index.interval).to.exist; expect(index.merge).to.exist; expect(index.of).to.exist; expect(index.onErrorResumeNext).to.exist; expect(index.pairs).to.exist; expect(index.race).to.exist; expect(index.range).to.exist; expect(index.throwError).to.exist; expect(index.timer).to.exist; expect(index.using).to.exist; expect(index.zip).to.exist; }); it('should export all of the operators', () => { expect(index.audit).to.exist; expect(index.auditTime).to.exist; expect(index.buffer).to.exist; expect(index.bufferCount).to.exist; expect(index.bufferTime).to.exist; expect(index.bufferToggle).to.exist; expect(index.bufferWhen).to.exist; expect(index.catchError).to.exist; expect(index.combineAll).to.exist; expect(index.combineLatestAll).to.exist; expect(index.combineLatestWith).to.exist; expect(index.concatAll).to.exist; expect(index.concatMap).to.exist; expect(index.concatMapTo).to.exist; expect(index.concatWith).to.exist; expect(index.connect).to.exist; expect(index.count).to.exist; expect(index.debounce).to.exist; expect(index.debounceTime).to.exist; expect(index.defaultIfEmpty).to.exist; expect(index.delay).to.exist; expect(index.delayWhen).to.exist; expect(index.dematerialize).to.exist; expect(index.distinct).to.exist; expect(index.distinctUntilChanged).to.exist; expect(index.distinctUntilKeyChanged).to.exist; expect(index.elementAt).to.exist; expect(index.endWith).to.exist; expect(index.every).to.exist; expect(index.exhaust).to.exist; expect(index.exhaustAll).to.exist; expect(index.exhaustMap).to.exist; expect(index.expand).to.exist; expect(index.filter).to.exist; expect(index.finalize).to.exist; expect(index.find).to.exist; expect(index.findIndex).to.exist; expect(index.first).to.exist; expect(index.groupBy).to.exist; expect(index.ignoreElements).to.exist; expect(index.isEmpty).to.exist; expect(index.last).to.exist; expect(index.map).to.exist; expect(index.mapTo).to.exist; expect(index.materialize).to.exist; expect(index.max).to.exist; expect(index.mergeAll).to.exist; expect(index.flatMap).to.exist; expect(index.mergeMap).to.exist; expect(index.mergeMapTo).to.exist; expect(index.mergeScan).to.exist; expect(index.mergeWith).to.exist; expect(index.min).to.exist; expect(index.multicast).to.exist; expect(index.observeOn).to.exist; expect(index.pairwise).to.exist; expect(index.pluck).to.exist; expect(index.publish).to.exist; expect(index.publishBehavior).to.exist; expect(index.publishLast).to.exist; expect(index.publishReplay).to.exist; expect(index.raceWith).to.exist; expect(index.reduce).to.exist; expect(index.repeat).to.exist; expect(index.repeatWhen).to.exist; expect(index.retry).to.exist; expect(index.retryWhen).to.exist; expect(index.refCount).to.exist; expect(index.sample).to.exist; expect(index.sampleTime).to.exist; expect(index.scan).to.exist; expect(index.sequenceEqual).to.exist; expect(index.share).to.exist; expect(index.shareReplay).to.exist; expect(index.single).to.exist; expect(index.skip).to.exist; expect(index.skipLast).to.exist; expect(index.skipUntil).to.exist; expect(index.skipWhile).to.exist; expect(index.startWith).to.exist; expect(index.subscribeOn).to.exist; expect(index.switchAll).to.exist; expect(index.switchMap).to.exist; expect(index.switchMapTo).to.exist; expect(index.switchScan).to.exist; expect(index.take).to.exist; expect(index.takeLast).to.exist; expect(index.takeUntil).to.exist; expect(index.takeWhile).to.exist; expect(index.tap).to.exist; expect(index.throttle).to.exist; expect(index.throttleTime).to.exist; expect(index.throwIfEmpty).to.exist; expect(index.timeInterval).to.exist; expect(index.timeout).to.exist; expect(index.timeoutWith).to.exist; expect(index.timestamp).to.exist; expect(index.toArray).to.exist; expect(index.window).to.exist; expect(index.windowCount).to.exist; expect(index.windowTime).to.exist; expect(index.windowToggle).to.exist; expect(index.windowWhen).to.exist; expect(index.withLatestFrom).to.exist; expect(index.zipAll).to.exist; expect(index.zipWith).to.exist; }); it('should expose configuration', () => { expect(index.config).to.exist; }); }); rxjs-7.5.7/spec/lastValueFrom-spec.ts000066400000000000000000000035171431412030200175320ustar00rootroot00000000000000import { interval, lastValueFrom, EMPTY, EmptyError, throwError, of } from 'rxjs'; import { expect } from 'chai'; import { finalize, take } from 'rxjs/operators'; describe('lastValueFrom', () => { it('should emit the last value as a promise', async () => { let finalized = false; const source = interval(2).pipe( take(10), finalize(() => (finalized = true)) ); const result = await lastValueFrom(source); expect(result).to.equal(9); expect(finalized).to.be.true; }); it('should support a default value', async () => { const source = EMPTY; const result = await lastValueFrom(source, { defaultValue: 0 }); expect(result).to.equal(0); }); it('should support an undefined config', async () => { const source = EMPTY; let error: any = null; try { await lastValueFrom(source, undefined as any); } catch (err) { error = err; } expect(error).to.be.an.instanceOf(EmptyError); }); it('should error for empty observables', async () => { const source = EMPTY; let error: any = null; try { await lastValueFrom(source); } catch (err) { error = err; } expect(error).to.be.an.instanceOf(EmptyError); }); it('should error for errored observables', async () => { const source = throwError(() => new Error('blorp!')); let error: any = null; try { await lastValueFrom(source); } catch (err) { error = err; } expect(error).to.be.an.instanceOf(Error); expect(error.message).to.equal('blorp!'); }); it('should work with a synchronous observable', async () => { let finalized = false; const source = of('apples', 'bananas').pipe(finalize(() => (finalized = true))); const result = await lastValueFrom(source); expect(result).to.equal('bananas'); expect(finalized).to.be.true; }); }); rxjs-7.5.7/spec/module-test-spec.mjs000066400000000000000000000007211431412030200173450ustar00rootroot00000000000000/* Test file to ensure rxjs can be loaded from esm https://github.com/ReactiveX/rxjs/pull/6192 If this fails node will error when running this with an error like node:internal/process/esm_loader:74 internalBinding('errors').triggerUncaughtException( */ import {Observable} from 'rxjs'; import * as o from 'rxjs/operators'; import * as a from 'rxjs/ajax'; import * as f from 'rxjs/fetch'; import * as t from 'rxjs/testing'; import * as w from 'rxjs/webSocket'; rxjs-7.5.7/spec/observables/000077500000000000000000000000001431412030200157475ustar00rootroot00000000000000rxjs-7.5.7/spec/observables/bindCallback-spec.ts000066400000000000000000000221701431412030200216020ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import * as sinon from 'sinon'; import { bindCallback } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {bindCallback} */ describe('bindCallback', () => { describe('when not scheduled', () => { it('should emit undefined from a callback without arguments', () => { function callback(cb: Function) { cb(); } const boundCallback = bindCallback(callback); const results: Array = []; boundCallback().subscribe({ next: (x: any) => { results.push(typeof x); }, complete: () => { results.push('done'); }, }); expect(results).to.deep.equal(['undefined', 'done']); }); it('should support a resultSelector', () => { function callback(datum: number, cb: Function) { cb(datum); } const boundCallback = bindCallback(callback, (datum: any) => datum + 1); const results: Array = []; boundCallback(42).subscribe({ next(value) { results.push(value); }, complete() { results.push('done'); }, }); expect(results).to.deep.equal([43, 'done']); }); it('should support a resultSelector if its void', () => { function callback(datum: number, cb: Function) { cb(datum); } const boundCallback = bindCallback(callback, void 0); const results: Array = []; boundCallback(42).subscribe({ next(value: any) { results.push(value); }, complete() { results.push('done'); }, }); expect(results).to.deep.equal([42, 'done']); }); it('should emit one value from a callback', () => { function callback(datum: number, cb: (result: number) => void) { cb(datum); } const boundCallback = bindCallback(callback); const results: Array = []; boundCallback(42).subscribe({ next: (x) => { results.push(x); }, complete: () => { results.push('done'); }, }); expect(results).to.deep.equal([42, 'done']); }); it('should set callback function context to context of returned function', () => { function callback(this: any, cb: (arg: number) => void) { cb(this.datum); } const boundCallback = bindCallback(callback); const results: Array = []; boundCallback.apply({ datum: 5 }).subscribe({ next: (x: number) => results.push(x), complete: () => results.push('done') }); expect(results).to.deep.equal([5, 'done']); }); it('should not emit, throw or complete if immediately unsubscribed', (done) => { const nextSpy = sinon.spy(); const throwSpy = sinon.spy(); const completeSpy = sinon.spy(); let timeout: ReturnType; function callback(datum: number, cb: Function) { // Need to cb async in order for the unsub to trigger timeout = setTimeout(() => { cb(datum); }, 0); } const subscription = bindCallback(callback)(42).subscribe({ next: nextSpy, error: throwSpy, complete: completeSpy }); subscription.unsubscribe(); setTimeout(() => { expect(nextSpy).not.have.been.called; expect(throwSpy).not.have.been.called; expect(completeSpy).not.have.been.called; clearTimeout(timeout); done(); }); }); it('should create a separate internal subject for each call', () => { function callback(datum: number, cb: (result: number) => void) { cb(datum); } const boundCallback = bindCallback(callback); const results: Array = []; boundCallback(42).subscribe({ next: (x) => { results.push(x); }, complete: () => { results.push('done'); }, }); boundCallback(54).subscribe({ next: (x) => { results.push(x); }, complete: () => { results.push('done'); }, }); expect(results).to.deep.equal([42, 'done', 54, 'done']); }); }); describe('when scheduled', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should emit undefined from a callback without arguments', () => { function callback(cb: Function) { cb(); } const boundCallback = bindCallback(callback, rxTestScheduler); const results: Array = []; boundCallback().subscribe({ next: (x) => { results.push(typeof x); }, complete: () => { results.push('done'); }, }); rxTestScheduler.flush(); expect(results).to.deep.equal(['undefined', 'done']); }); it('should emit one value from a callback', () => { function callback(datum: number, cb: (result: number) => void) { cb(datum); } const boundCallback = bindCallback(callback, rxTestScheduler); const results: Array = []; boundCallback(42).subscribe({ next: (x) => { results.push(x); }, complete: () => { results.push('done'); }, }); rxTestScheduler.flush(); expect(results).to.deep.equal([42, 'done']); }); it('should set callback function context to context of returned function', () => { function callback(this: { datum: number }, cb: (num: number) => void) { cb(this.datum); } const boundCallback = bindCallback(callback, rxTestScheduler); const results: Array = []; boundCallback.apply({ datum: 5 }).subscribe({ next: (x: number) => results.push(x), complete: () => results.push('done') }); rxTestScheduler.flush(); expect(results).to.deep.equal([5, 'done']); }); it('should error if callback throws', () => { const expected = new Error('haha no callback for you'); function callback(datum: number, cb: Function): never { throw expected; } const boundCallback = bindCallback(callback, rxTestScheduler); boundCallback(42).subscribe({ next: (x) => { throw new Error('should not next'); }, error: (err: any) => { expect(err).to.equal(expected); }, complete: () => { throw new Error('should not complete'); }, }); rxTestScheduler.flush(); }); it('should pass multiple inner arguments as an array', () => { function callback(datum: number, cb: (a: number, b: number, c: number, d: number) => void) { cb(datum, 1, 2, 3); } const boundCallback = bindCallback(callback, rxTestScheduler); const results: Array = []; boundCallback(42).subscribe({ next: (x) => { results.push(x); }, complete: () => { results.push('done'); }, }); rxTestScheduler.flush(); expect(results).to.deep.equal([[42, 1, 2, 3], 'done']); }); it('should cache value for next subscription and not call callbackFunc again', () => { let calls = 0; function callback(datum: number, cb: (x: number) => void) { calls++; cb(datum); } const boundCallback = bindCallback(callback, rxTestScheduler); const results1: Array = []; const results2: Array = []; const source = boundCallback(42); source.subscribe({ next: (x) => { results1.push(x); }, complete: () => { results1.push('done'); }, }); source.subscribe({ next: (x) => { results2.push(x); }, complete: () => { results2.push('done'); }, }); rxTestScheduler.flush(); expect(calls).to.equal(1); expect(results1).to.deep.equal([42, 'done']); expect(results2).to.deep.equal([42, 'done']); }); it('should not even call the callbackFn if scheduled and immediately unsubscribed', () => { let calls = 0; function callback(datum: number, cb: Function) { calls++; cb(datum); } const boundCallback = bindCallback(callback, rxTestScheduler); const results1: Array = []; const source = boundCallback(42); const subscription = source.subscribe({ next: (x: any) => { results1.push(x); }, complete: () => { results1.push('done'); }, }); subscription.unsubscribe(); rxTestScheduler.flush(); expect(calls).to.equal(0); }); }); it('should emit post-callback errors', () => { function badFunction(callback: (answer: number) => void): void { callback(42); throw 'kaboom'; } let receivedError: any; bindCallback(badFunction)().subscribe({ error: (err) => (receivedError = err), }); expect(receivedError).to.equal('kaboom'); }); }); rxjs-7.5.7/spec/observables/bindNodeCallback-spec.ts000066400000000000000000000252661431412030200224210ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import * as sinon from 'sinon'; import { bindNodeCallback } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {bindNodeCallback} */ describe('bindNodeCallback', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); describe('when not scheduled', () => { it('should emit undefined when callback is called without success arguments', () => { function callback(cb: Function) { cb(null); } const boundCallback = bindNodeCallback(callback); const results: Array = []; boundCallback().subscribe({ next: (x: any) => { results.push(typeof x); }, complete: () => { results.push('done'); }, }); expect(results).to.deep.equal(['undefined', 'done']); }); it('should a resultSelector', () => { function callback(cb: (err: any, n: number) => any) { cb(null, 42); } const boundCallback = bindNodeCallback(callback, (x: number) => x + 1); const results: Array = []; boundCallback().subscribe({ next: (x) => { results.push(x); }, complete: () => { results.push('done'); }, }); expect(results).to.deep.equal([43, 'done']); }); it('should emit one value from a callback', () => { function callback(datum: number, cb: (err: any, n: number) => void) { cb(null, datum); } const boundCallback = bindNodeCallback(callback); const results: Array = []; boundCallback(42).subscribe({ next: (x) => { results.push(x); }, complete: () => { results.push('done'); }, }); expect(results).to.deep.equal([42, 'done']); }); it('should set context of callback to context of boundCallback', () => { function callback(this: { datum: number }, cb: (err: any, n: number) => void) { cb(null, this.datum); } const boundCallback = bindNodeCallback(callback); const results: Array = []; boundCallback.call({ datum: 42 }).subscribe({ next: (x: number) => results.push(x), complete: () => results.push('done') }); expect(results).to.deep.equal([42, 'done']); }); it('should raise error from callback', () => { const error = new Error(); function callback(cb: Function) { cb(error); } const boundCallback = bindNodeCallback(callback); const results: Array = []; boundCallback().subscribe({ next: () => { throw new Error('should not next'); }, error: (err: any) => { results.push(err); }, complete: () => { throw new Error('should not complete'); }, }); expect(results).to.deep.equal([error]); }); it('should not emit, throw or complete if immediately unsubscribed', (done) => { const nextSpy = sinon.spy(); const throwSpy = sinon.spy(); const completeSpy = sinon.spy(); let timeout: ReturnType; function callback(datum: number, cb: (err: any, n: number) => void) { // Need to cb async in order for the unsub to trigger timeout = setTimeout(() => { cb(null, datum); }, 0); } const subscription = bindNodeCallback(callback)(42).subscribe({ next: nextSpy, error: throwSpy, complete: completeSpy }); subscription.unsubscribe(); setTimeout(() => { expect(nextSpy).not.have.been.called; expect(throwSpy).not.have.been.called; expect(completeSpy).not.have.been.called; clearTimeout(timeout); done(); }); }); it('should create a separate internal subject for each call', () => { function callback(datum: number, cb: (err: any, n: number) => void) { cb(null, datum); } const boundCallback = bindNodeCallback(callback); const results: Array = []; boundCallback(42).subscribe({ next: (x) => { results.push(x); }, complete: () => { results.push('done'); }, }); boundCallback(54).subscribe({ next: (x) => { results.push(x); }, complete: () => { results.push('done'); }, }); expect(results).to.deep.equal([42, 'done', 54, 'done']); }); }); describe('when scheduled', () => { it('should emit undefined when callback is called without success arguments', () => { function callback(cb: Function) { cb(null); } const boundCallback = bindNodeCallback(callback, rxTestScheduler); const results: Array = []; boundCallback().subscribe({ next: (x: any) => { results.push(typeof x); }, complete: () => { results.push('done'); }, }); rxTestScheduler.flush(); expect(results).to.deep.equal(['undefined', 'done']); }); it('should emit one value from a callback', () => { function callback(datum: number, cb: (err: any, n: number) => void) { cb(null, datum); } const boundCallback = bindNodeCallback(callback, rxTestScheduler); const results: Array = []; boundCallback(42).subscribe({ next: (x) => { results.push(x); }, complete: () => { results.push('done'); }, }); rxTestScheduler.flush(); expect(results).to.deep.equal([42, 'done']); }); it('should set context of callback to context of boundCallback', () => { function callback(this: { datum: number }, cb: (err: any, n: number) => void) { cb(null, this.datum); } const boundCallback = bindNodeCallback(callback, rxTestScheduler); const results: Array = []; boundCallback.call({ datum: 42 }).subscribe({ next: (x: number) => results.push(x), complete: () => results.push('done') }); rxTestScheduler.flush(); expect(results).to.deep.equal([42, 'done']); }); it('should error if callback throws', () => { const expected = new Error('haha no callback for you'); function callback(datum: number, cb: (err: any, n: number) => void) { throw expected; } const boundCallback = bindNodeCallback(callback, rxTestScheduler); boundCallback(42).subscribe({ next: (x) => { throw new Error('should not next'); }, error: (err: any) => { expect(err).to.equal(expected); }, complete: () => { throw new Error('should not complete'); }, }); rxTestScheduler.flush(); }); it('should raise error from callback', () => { const error = new Error(); function callback(cb: Function) { cb(error); } const boundCallback = bindNodeCallback(callback, rxTestScheduler); const results: Array = []; boundCallback().subscribe({ next: () => { throw new Error('should not next'); }, error: (err: any) => { results.push(err); }, complete: () => { throw new Error('should not complete'); }, }); rxTestScheduler.flush(); expect(results).to.deep.equal([error]); }); }); it('should pass multiple inner arguments as an array', () => { function callback(datum: number, cb: (err: any, a: number, b: number, c: number, d: number) => void) { cb(null, datum, 1, 2, 3); } const boundCallback = bindNodeCallback(callback, rxTestScheduler); const results: Array = []; boundCallback(42).subscribe({ next: (x) => { results.push(x); }, complete: () => { results.push('done'); }, }); rxTestScheduler.flush(); expect(results).to.deep.equal([[42, 1, 2, 3], 'done']); }); it('should cache value for next subscription and not call callbackFunc again', () => { let calls = 0; function callback(datum: number, cb: (err: any, n: number) => void) { calls++; cb(null, datum); } const boundCallback = bindNodeCallback(callback, rxTestScheduler); const results1: Array = []; const results2: Array = []; const source = boundCallback(42); source.subscribe({ next: (x) => { results1.push(x); }, complete: () => { results1.push('done'); }, }); source.subscribe({ next: (x) => { results2.push(x); }, complete: () => { results2.push('done'); }, }); rxTestScheduler.flush(); expect(calls).to.equal(1); expect(results1).to.deep.equal([42, 'done']); expect(results2).to.deep.equal([42, 'done']); }); it('should emit post callback errors', () => { function badFunction(callback: (error: Error, answer: number) => void): void { callback(null as any, 42); throw 'kaboom'; } let receivedError: any; bindNodeCallback(badFunction)().subscribe({ error: (err) => (receivedError = err), }); expect(receivedError).to.equal('kaboom'); }); it('should not call the function if subscribed twice in a row before it resolves', () => { let executeCallback: any; let calls = 0; function myFunc(callback: (error: any, result: any) => void) { calls++; if (calls > 1) { throw new Error('too many calls to myFunc'); } executeCallback = callback; } const source$ = bindNodeCallback(myFunc)(); let result1: any; let result2: any; source$.subscribe((value) => (result1 = value)); source$.subscribe((value) => (result2 = value)); expect(calls).to.equal(1); executeCallback(null, 'test'); expect(result1).to.equal('test'); expect(result2).to.equal('test'); expect(calls).to.equal(1); }); it('should not even call the callbackFn if scheduled and immediately unsubscribed', () => { let calls = 0; function callback(datum: number, cb: Function) { calls++; cb(null, datum); } const boundCallback = bindNodeCallback(callback, rxTestScheduler); const results1: Array = []; const source = boundCallback(42); const subscription = source.subscribe({ next: (x: any) => { results1.push(x); }, complete: () => { results1.push('done'); }, }); subscription.unsubscribe(); rxTestScheduler.flush(); expect(calls).to.equal(0); }); }); rxjs-7.5.7/spec/observables/combineLatest-spec.ts000066400000000000000000000531011431412030200220400ustar00rootroot00000000000000import { expect } from 'chai'; import { queueScheduler as rxQueueScheduler, combineLatest, of } from 'rxjs'; import { map, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; const queueScheduler = rxQueueScheduler; /** @test {combineLatest} */ describe('static combineLatest', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should return EMPTY if passed an empty array as the only argument', () => { const results: string[] = []; combineLatest([]).subscribe({ next: () => { throw new Error('should not emit') }, complete: () => { results.push('done'); } }); expect(results).to.deep.equal(['done']); }); it('should return EMPTY if passed an empty POJO as the only argument', () => { const results: string[] = []; combineLatest({}).subscribe({ next: () => { throw new Error('should not emit') }, complete: () => { results.push('done'); } }); expect(results).to.deep.equal(['done']); }); it('should return EMPTY if passed an empty array and scheduler as the only argument', () => { const results: string[] = []; combineLatest([], rxTestScheduler).subscribe({ next: () => { throw new Error('should not emit') }, complete: () => { results.push('done'); } }); expect(results).to.deep.equal([]); rxTestScheduler.flush(); expect(results).to.deep.equal(['done']); }); it('should combineLatest the provided observables', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const firstSource = hot(' ----a----b----c----|'); const secondSource = hot('--d--e--f--g--|'); const expected = ' ----uv--wx-y--z----|'; const combined = combineLatest(firstSource, secondSource, (a, b) => '' + a + b); expectObservable(combined).toBe(expected, { u: 'ad', v: 'ae', w: 'af', x: 'bf', y: 'bg', z: 'cg' }); }); }); it('should combine an immediately-scheduled source with an immediately-scheduled second', (done) => { const a = of(1, 2, 3, queueScheduler); const b = of(4, 5, 6, 7, 8, queueScheduler); const r = [ [1, 4], [2, 4], [2, 5], [3, 5], [3, 6], [3, 7], [3, 8], ]; const actual: [number, number][] = []; //type definition need to be updated combineLatest(a, b, queueScheduler).subscribe( { next: (vals) => { actual.push(vals); }, error: () => { done(new Error('should not be called')); }, complete: () => { expect(actual).to.deep.equal(r); done(); } } ); }); it('should accept array of observables', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const firstSource = hot(' ----a----b----c----|'); const secondSource = hot('--d--e--f--g--|'); const expected = ' ----uv--wx-y--z----|'; const combined = combineLatest([firstSource, secondSource], (a: string, b: string) => '' + a + b); expectObservable(combined).toBe(expected, { u: 'ad', v: 'ae', w: 'af', x: 'bf', y: 'bg', z: 'cg' }); }); }); it('should accept a dictionary of observables', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const firstSource = hot('----a----b----c----|'); const secondSource = hot('--d--e--f--g--|'); const expected = ' ----uv--wx-y--z----|'; const combined = combineLatest({a: firstSource, b: secondSource}).pipe( map(({a, b}) => '' + a + b) ); expectObservable(combined).toBe(expected, {u: 'ad', v: 'ae', w: 'af', x: 'bf', y: 'bg', z: 'cg'}); }); }); it('should work with two nevers', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' -'); const e2subs = ' ^'; const expected = '-'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with never and empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' |'); const e2subs = ' (^!)'; const expected = '-'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with empty and never', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const e2 = cold(' -'); const e2subs = ' ^'; const expected = '-'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with empty and empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const e2 = cold(' |'); const e2subs = ' (^!)'; const expected = '|'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot-empty and hot-single', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, c: 3, r: 1 + 3, //a + c }; const e1 = hot('-a-^-|', values); const e1subs = ' ^-!'; const e2 = hot('-b-^-c-|', values); const e2subs = ' ^---!'; const expected = ' ----|'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot-single and hot-empty', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, c: 3, }; const e1 = hot('-a-^-|', values); const e1subs = ' ^-!'; const e2 = hot('-b-^-c-|', values); const e2subs = ' ^---!'; const expected = ' ----|'; const result = combineLatest(e2, e1, (x, y) => x + y); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot-single and never', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, }; const e1 = hot('-a-^-|', values); const e1subs = ' ^-!'; const e2 = hot('------', values); //never const e2subs = ' ^ '; const expected = ' -'; //never const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with never and hot-single', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, }; const e1 = hot('--------', values); //never const e1subs = ' ^----'; const e2 = hot('-a-^-b-|', values); const e2subs = ' ^---!'; const expected = ' -----'; //never const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot and hot', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--|', { a: 'a', b: 'b', c: 'c' }); const e1subs = ' ^--------!'; const e2 = hot('---e-^---f--g--|', { e: 'e', f: 'f', g: 'g' }); const e2subs = ' ^---------!'; const expected = ' ----x-yz--|'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, { x: 'bf', y: 'cf', z: 'cg' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with empty and error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----------|'); //empty const e1subs = ' ^-----!'; const e2 = hot(' ------#', undefined, 'shazbot!'); //error const e2subs = ' ^-----!'; const expected = '------#'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, null, 'shazbot!'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with error and empty', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--^---#', undefined, 'too bad, honk'); //error const e1subs = ' ^---!'; const e2 = hot('--^--------|'); //empty const e2subs = ' ^---!'; const expected = '----#'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, null, 'too bad, honk'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot and throw', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^--b--c--|', { a: 1, b: 2, c: 3 }); const e1subs = ' ^-!'; const e2 = hot('---^-#', undefined, 'bazinga'); const e2subs = ' ^-!'; const expected = ' --#'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, null, 'bazinga'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and hot', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^-#', undefined, 'bazinga'); const e1subs = ' ^-!'; const e2 = hot('-a-^--b--c--|', { a: 1, b: 2, c: 3 }); const e2subs = ' ^-!'; const expected = ' --#'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, null, 'bazinga'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and throw', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^----#', undefined, 'jenga'); const e1subs = ' ^-!'; const e2 = hot('---^-#', undefined, 'bazinga'); const e2subs = ' ^-!'; const expected = ' --#'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, null, 'bazinga'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with error and throw', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^--b--#', { a: 1, b: 2 }, 'wokka wokka'); const e1subs = ' ^-!'; const e2 = hot('---^-#', undefined, 'flurp'); const e2subs = ' ^-!'; const expected = ' --#'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, null, 'flurp'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^-#', undefined, 'flurp'); const e1subs = ' ^-!'; const e2 = hot('-a-^--b--#', { a: 1, b: 2 }, 'wokka wokka'); const e2subs = ' ^-!'; const expected = ' --#'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, null, 'flurp'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with never and throw', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^-----------'); const e1subs = ' ^-----!'; const e2 = hot('---^-----#', undefined, 'wokka wokka'); const e2subs = ' ^-----!'; const expected = ' ------#'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, null, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and never', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^----#', undefined, 'wokka wokka'); const e1subs = ' ^----!'; const e2 = hot('---^-----------'); const e2subs = ' ^----!'; const expected = ' -----#'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, null, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with some and throw', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^----a---b--|', { a: 1, b: 2 }); const e1subs = ' ^--!'; const e2 = hot('---^--#', undefined, 'wokka wokka'); const e2subs = ' ^--!'; const expected = ' ---#'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, { a: 1, b: 2 }, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and some', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--#', undefined, 'wokka wokka'); const e1subs = ' ^--!'; const e2 = hot('---^----a---b--|', { a: 1, b: 2 }); const e2subs = ' ^--!'; const expected = ' ---#'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, { a: 1, b: 2 }, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle throw after complete left', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' --a--^--b---|', { a: 1, b: 2 }); const leftSubs = ' ^------!'; const right = hot('-----^--------#', undefined, 'bad things'); const rightSubs = ' ^--------!'; const expected = ' ---------#'; const result = combineLatest(left, right, (x, y) => x + y); expectObservable(result).toBe(expected, null, 'bad things'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle throw after complete right', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' -----^--------#', undefined, 'bad things'); const leftSubs = ' ^--------!'; const right = hot('--a--^--b---|', { a: 1, b: 2 }); const rightSubs = ' ^------!'; const expected = ' ---------#'; const result = combineLatest(left, right, (x, y) => x + y); expectObservable(result).toBe(expected, null, 'bad things'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle interleaved with tail', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a--^--b---c---|', { a: 'a', b: 'b', c: 'c' }); const e1subs = ' ^----------!'; const e2 = hot('--d-^----e---f--|', { d: 'd', e: 'e', f: 'f' }); const e2subs = ' ^-----------!'; const expected = ' -----x-y-z--|'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, { x: 'be', y: 'ce', z: 'cf' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle two consecutive hot observables', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--|', { a: 'a', b: 'b', c: 'c' }); const e1subs = ' ^--------!'; const e2 = hot('-----^----------d--e--f--|', { d: 'd', e: 'e', f: 'f' }); const e2subs = ' ^-------------------!'; const expected = ' -----------x--y--z--|'; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result).toBe(expected, { x: 'cd', y: 'ce', z: 'cf' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle two consecutive hot observables with error left', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' --a--^--b--c--#', { a: 'a', b: 'b', c: 'c' }, 'jenga'); const leftSubs = ' ^--------!'; const right = hot('-----^----------d--e--f--|', { d: 'd', e: 'e', f: 'f' }); const rightSubs = ' ^--------!'; const expected = ' ---------#'; const result = combineLatest(left, right, (x, y) => x + y); expectObservable(result).toBe(expected, null, 'jenga'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle two consecutive hot observables with error right', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' --a--^--b--c--|', { a: 'a', b: 'b', c: 'c' }); const leftSubs = ' ^--------!'; const right = hot('-----^----------d--e--f--#', { d: 'd', e: 'e', f: 'f' }, 'dun dun dun'); const rightSubs = ' ^-------------------!'; const expected = ' -----------x--y--z--#'; const result = combineLatest(left, right, (x, y) => x + y); expectObservable(result).toBe(expected, { x: 'cd', y: 'ce', z: 'cf' }, 'dun dun dun'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle selector throwing', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--|', { a: 1, b: 2 }); const e1subs = ' ^--!'; const e2 = hot('--c--^--d--|', { c: 3, d: 4 }); const e2subs = ' ^--!'; const expected = ' ---#'; const result = combineLatest(e1, e2, (x, y) => { throw 'ha ha ' + x + ', ' + y; }); expectObservable(result).toBe(expected, null, 'ha ha 2, 4'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should allow unsubscribing early and explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot('---e-^---f--g---h-|'); const e2subs = ' ^--------! '; const expected = ' ----x-yz-- '; const unsub = ' ---------! '; const values = { x: 'bf', y: 'cf', z: 'cg' }; const result = combineLatest(e1, e2, (x, y) => x + y); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot('---e-^---f--g---h-|'); const e2subs = ' ^--------! '; const expected = ' ----x-yz-- '; const unsub = ' ---------! '; const values = { x: 'bf', y: 'cf', z: 'cg' }; const result = combineLatest(e1.pipe(mergeMap((x) => of(x))), e2.pipe(mergeMap((x) => of(x))), (x, y) => x + y).pipe( mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); }); rxjs-7.5.7/spec/observables/concat-spec.ts000066400000000000000000000377241431412030200205330ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { lowerCaseO } from '../helpers/test-helper'; import { asyncScheduler, queueScheduler, concat, of, defer, Observable } from 'rxjs'; import { mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {concat} */ describe('static concat', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should emit elements from multiple sources', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -a-b-c-|'); const e1subs = ' ^------!'; const e2 = cold(' -0-1-|'); const e2subs = ' -------^----!'; const e3 = cold(' -w-x-y-z-|'); const e3subs = ' ------------^--------!'; const expected = '-a-b-c--0-1--w-x-y-z-|'; expectObservable(concat(e1, e2, e3)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should concat the same cold observable multiple times', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const inner = cold('--i-j-k-l-|'); const innersubs = [ ' ^---------! ', ' ----------^---------! ', ' --------------------^---------! ', ' ------------------------------^---------!', ]; const expected = ' --i-j-k-l---i-j-k-l---i-j-k-l---i-j-k-l-|'; const result = concat(inner, inner, inner, inner); expectObservable(result).toBe(expected); expectSubscriptions(inner.subscriptions).toBe(innersubs); }); }); it('should concat the same cold observable multiple times, but the result is unsubscribed early', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const innersubs: string[] = []; const inner = cold('--i-j-k-l-| '); const unsub = ' ---------------!'; innersubs[0] = ' ^---------! '; innersubs[1] = ' ----------^----!'; const expected = ' --i-j-k-l---i-j-'; const result = concat(inner, inner, inner, inner); expectObservable(result, unsub).toBe(expected); expectSubscriptions(inner.subscriptions).toBe(innersubs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const innersubs: string[] = []; const inner = cold('--i-j-k-l-|'); innersubs[0] = ' ^---------!'; innersubs[1] = ' ----------^----!'; const expected = ' --i-j-k-l---i-j-'; const unsub = ' ---------------!'; const innerWrapped = inner.pipe(mergeMap((x) => of(x))); const result = concat(innerWrapped, innerWrapped, innerWrapped, innerWrapped).pipe(mergeMap((x) => of(x))); expectObservable(result, unsub).toBe(expected); expectSubscriptions(inner.subscriptions).toBe(innersubs); }); }); it('should complete without emit if both sources are empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' ----|'); const e2subs = ' --^---!'; const expected = '------|'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if first source does not completes', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' --|'); const e2subs = ' -'; const expected = '-'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if second source does not completes', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' ---'); const e2subs = ' --^'; const expected = '---'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if both sources do not complete', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' -'); const e2subs = ' -'; const expected = '-'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error when first source is empty, second source raises error', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' ----#'); const e2subs = ' --^---!'; const expected = '------#'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error when first source raises error, second source is empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---#'); const e1subs = ' ^--!'; const e2 = cold(' ----|'); const e2subs = ' -'; const expected = '---#'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise first error when both source raise error', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---#'); const e1subs = ' ^--!'; const e2 = cold(' ------#'); const e2subs = ' -'; const expected = '---#'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should concat if first source emits once, second source is empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--|'); const e1subs = ' ^----!'; const e2 = cold(' --------|'); const e2subs = ' -----^-------!'; const expected = '--a----------|'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should concat if first source is empty, second source emits once', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' --a--|'); const e2subs = ' --^----!'; const expected = '----a--|'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit element from first source, and should not complete if second ' + 'source does not completes', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--|'); const e1subs = ' ^----!'; const e2 = cold(' -'); const e2subs = ' -----^'; const expected = '--a---'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if first source does not complete', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' --a--|'); const e2subs = ' -'; const expected = '-'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit elements from each source when source emit once', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a|'); const e1subs = ' ^---!'; const e2 = cold(' -----b--|'); const e2subs = ' ----^-------!'; const expected = '---a-----b--|'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should unsubscribe to inner source if outer is unsubscribed early', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-a--a| '); const e1subs = ' ^--------! '; const e2 = cold(' -----b-b--b-|'); const e2subs = ' ---------^-------! '; const unsub = ' -----------------! '; const expected = '---a-a--a-----b-b- '; expectObservable(concat(e1, e2), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error from first source and does not emit from second source', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --#'); const e1subs = ' ^-!'; const e2 = cold(' ----a--|'); const e2subs = ' -'; const expected = '--#'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit element from first source then raise error from second source', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--|'); const e1subs = ' ^----!'; const e2 = cold(' -------#'); const e2subs = ' -----^------!'; const expected = '--a---------#'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit all elements from both hot observable sources if first source ' + 'completes before second source starts emit', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b-|'); const e1subs = ' ^------!'; const e2 = hot(' --------x--y--|'); const e2subs = ' -------^------!'; const expected = '--a--b--x--y--|'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit elements from second source regardless of completion time ' + 'when second source is cold observable', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c---|'); const e1subs = ' ^-----------!'; const e2 = cold(' -x-y-z-|'); const e2subs = ' ------------^------!'; const expected = '--a--b--c----x-y-z-|'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not emit collapsing element from second source', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^----------!'; const e2 = hot(' --------x--y--z--|'); const e2subs = ' -----------^-----!'; const expected = '--a--b--c--y--z--|'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should return empty if concatenating an empty source', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('|'); const e1subs = ['(^!)', '(^!)']; const expected = '|'; const result = concat(e1, e1); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should error immediately if given a just-throw source', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e1subs = ' (^!)'; const expected = '#'; const result = concat(e1, e1); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit elements from second source regardless of completion time ' + 'when second source is cold observable', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c---|'); const e1subs = ' ^-----------!'; const e2 = cold(' -x-y-z-|'); const e2subs = ' ------------^------!'; const expected = '--a--b--c----x-y-z-|'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not emit collapsing element from second source', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^----------!'; const e2 = hot(' --------x--y--z--|'); const e2subs = ' -----------^-----!'; const expected = '--a--b--c--y--z--|'; expectObservable(concat(e1, e2)).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should concat an immediately-scheduled source with an immediately-scheduled second', (done) => { const a = of(1, 2, 3, queueScheduler); const b = of(4, 5, 6, 7, 8, queueScheduler); const r = [1, 2, 3, 4, 5, 6, 7, 8]; concat(a, b, queueScheduler).subscribe({ next: (vals) => { expect(vals).to.equal(r.shift()); }, complete: done, }); }); it("should use the scheduler even when one Observable is concat'd", (done) => { let e1Subscribed = false; const e1 = defer(() => { e1Subscribed = true; return of('a'); }); concat(e1, asyncScheduler).subscribe({ error: done, complete: () => { expect(e1Subscribed).to.be.true; done(); }, }); expect(e1Subscribed).to.be.false; }); it('should return passed observable if no scheduler was passed', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const source = cold('--a---b----c---|'); const expected = ' --a---b----c---|'; const result = concat(source); expectObservable(result).toBe(expected); }); }); it('should return RxJS Observable when single lowerCaseO was passed', () => { rxTestScheduler.run(({ expectObservable }) => { const source = lowerCaseO('a', 'b', 'c'); const result = concat(source); expect(result).to.be.an.instanceof(Observable); expectObservable(result).toBe('(abc|)'); }); }); }); rxjs-7.5.7/spec/observables/connectable-spec.ts000066400000000000000000000044571431412030200215360ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { connectable, of, ReplaySubject } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; describe('connectable', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should mirror a simple source Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2---3-4--5-|'); const sourceSubs = ' ^--------------!'; const expected = ' --1-2---3-4--5-|'; const obs = connectable(source); expectObservable(obs).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); obs.connect(); }); }); it('should do nothing if connect is not called, despite subscriptions', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2---3-4--5-|'); const sourceSubs: string[] = []; const expected = ' -'; const obs = connectable(source); expectObservable(obs).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should support resetOnDisconnect = true', () => { const values: number[] = []; const source = of(1, 2, 3); const obs = connectable(source, { connector: () => new ReplaySubject(1), resetOnDisconnect: true, }); obs.subscribe((value) => values.push(value)); const connection = obs.connect(); expect(values).to.deep.equal([1, 2, 3]); connection.unsubscribe(); obs.subscribe((value) => values.push(value)); obs.connect(); expect(values).to.deep.equal([1, 2, 3, 1, 2, 3]); }); it('should support resetOnDisconnect = false', () => { const values: number[] = []; const source = of(1, 2, 3); const obs = connectable(source, { connector: () => new ReplaySubject(1), resetOnDisconnect: false, }); obs.subscribe((value) => values.push(value)); const connection = obs.connect(); expect(values).to.deep.equal([1, 2, 3]); connection.unsubscribe(); obs.subscribe((value) => values.push(value)); obs.connect(); expect(values).to.deep.equal([1, 2, 3, 3]); }); }); rxjs-7.5.7/spec/observables/defer-spec.ts000066400000000000000000000110211431412030200203270ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { defer, of } from 'rxjs'; import { mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {defer} */ describe('defer', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should defer the creation of a simple Observable', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const expected = '-a--b--c--|'; const e1 = defer(() => cold('-a--b--c--|')); expectObservable(e1).toBe(expected); }); }); it('should create an observable from the provided observable factory', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--|'); const sourceSubs = '^----------!'; const expected = ' --a--b--c--|'; const e1 = defer(() => source); expectObservable(e1).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should create an observable from completed', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('|'); const sourceSubs = '(^!)'; const expected = ' |'; const e1 = defer(() => source); expectObservable(e1).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should accept factory returns promise resolves', (done) => { const expected = 42; const e1 = defer(() => { return new Promise((resolve: any) => { resolve(expected); }); }); e1.subscribe({ next: (x: number) => { expect(x).to.equal(expected); done(); }, error: (x: any) => { done(new Error('should not be called')); }, }); }); it('should accept factory returns promise rejects', (done) => { const expected = 42; const e1 = defer(() => { return new Promise((resolve: any, reject: any) => { reject(expected); }); }); e1.subscribe({ next: (x: number) => { done(new Error('should not be called')); }, error: (x: any) => { expect(x).to.equal(expected); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); it('should create an observable from error', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('#'); const sourceSubs = '(^!)'; const expected = ' #'; const e1 = defer(() => source); expectObservable(e1).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should create an observable when factory does not throw', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = defer(() => { if (1 !== Infinity) { throw 'error'; } return of(); }); const expected = '#'; expectObservable(e1).toBe(expected); }); }); it('should error when factory throws', (done) => { const e1 = defer(() => { if (1 + 2 === 3) { throw 'error'; } return of(); }); e1.subscribe({ error: () => done(), }); }); it('should allow unsubscribing early and explicitly', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--|'); const sourceSubs = '^-----! '; const expected = ' --a--b- '; const unsub = ' ------! '; const e1 = defer(() => source); expectObservable(e1, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--|'); const sourceSubs = '^-----! '; const expected = ' --a--b- '; const unsub = ' ------! '; const e1 = defer(() => source.pipe( mergeMap((x: string) => of(x)), mergeMap((x: string) => of(x)) ) ); expectObservable(e1, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); }); rxjs-7.5.7/spec/observables/dom/000077500000000000000000000000001431412030200165265ustar00rootroot00000000000000rxjs-7.5.7/spec/observables/dom/ajax-spec.ts000066400000000000000000001361111431412030200207540ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import * as sinon from 'sinon'; import { ajax, AjaxConfig, AjaxResponse, AjaxError, AjaxTimeoutError } from 'rxjs/ajax'; import { TestScheduler } from 'rxjs/testing'; import { noop } from 'rxjs'; import * as nodeFormData from 'form-data'; const root: any = (typeof globalThis !== 'undefined' && globalThis) || (typeof self !== 'undefined' && self) || global; if (typeof root.FormData === 'undefined') { root.FormData = nodeFormData as any; } /** @test {ajax} */ describe('ajax', () => { let rXHR: XMLHttpRequest; let sandbox: sinon.SinonSandbox; beforeEach(() => { sandbox = sinon.createSandbox(); rXHR = root.XMLHttpRequest; root.XMLHttpRequest = MockXMLHttpRequest; }); afterEach(() => { sandbox.restore(); MockXMLHttpRequest.clearRequest(); root.XMLHttpRequest = rXHR; root.XDomainRequest = null; root.ActiveXObject = null; }); it('should create default XMLHttpRequest for non CORS', () => { const obj: AjaxConfig = { url: '/', method: '', }; ajax(obj).subscribe(); expect(MockXMLHttpRequest.mostRecent.withCredentials).to.be.false; }); it('should raise an error if not able to create XMLHttpRequest', () => { root.XMLHttpRequest = null; root.ActiveXObject = null; const obj: AjaxConfig = { url: '/', method: '', }; ajax(obj).subscribe({ error: (err) => expect(err).to.exist }); }); it('should create XMLHttpRequest for CORS', () => { const obj: AjaxConfig = { url: '/', method: '', crossDomain: true, withCredentials: true, }; ajax(obj).subscribe(); expect(MockXMLHttpRequest.mostRecent.withCredentials).to.be.true; }); it('should raise an error if not able to create CORS request', () => { root.XMLHttpRequest = null; root.XDomainRequest = null; const obj: AjaxConfig = { url: '/', method: '', crossDomain: true, withCredentials: true, }; ajax(obj).subscribe({ error: (err) => expect(err).to.exist, }); }); it('should set headers', () => { const obj: AjaxConfig = { url: '/talk-to-me-goose', headers: { 'Content-Type': 'kenny/loggins', 'Fly-Into-The': 'Dangah Zone!', 'Take-A-Ride-Into-The': 'Danger ZoooOoone!', }, method: '', }; ajax(obj).subscribe(); const request = MockXMLHttpRequest.mostRecent; expect(request.url).to.equal('/talk-to-me-goose'); expect(request.requestHeaders).to.deep.equal({ 'content-type': 'kenny/loggins', 'fly-into-the': 'Dangah Zone!', 'take-a-ride-into-the': 'Danger ZoooOoone!', 'x-requested-with': 'XMLHttpRequest', }); // Did not mutate the headers passed expect(obj.headers).to.deep.equal({ 'Content-Type': 'kenny/loggins', 'Fly-Into-The': 'Dangah Zone!', 'Take-A-Ride-Into-The': 'Danger ZoooOoone!', }); }); describe('ajax XSRF cookie in custom header', () => { beforeEach(() => { (global as any).document = { cookie: 'foo=bar', } as Document; }); afterEach(() => { delete (global as any).document; }); it('should send the cookie with a custom header to the same domain', () => { const obj: AjaxConfig = { url: '/some/path', xsrfCookieName: 'foo', xsrfHeaderName: 'Custom-Header-Name', }; ajax(obj).subscribe(); const request = MockXMLHttpRequest.mostRecent; expect(request.url).to.equal('/some/path'); expect(request.requestHeaders).to.deep.equal({ 'Custom-Header-Name': 'bar', 'x-requested-with': 'XMLHttpRequest', }); }); it('should send the cookie cross-domain with a custom header when withCredentials is set', () => { const obj: AjaxConfig = { url: 'https://some.subresource.net/some/page', xsrfCookieName: 'foo', xsrfHeaderName: 'Custom-Header-Name', crossDomain: true, withCredentials: true, }; ajax(obj).subscribe(); const request = MockXMLHttpRequest.mostRecent; expect(request.url).to.equal('https://some.subresource.net/some/page'); expect(request.requestHeaders).to.deep.equal({ 'Custom-Header-Name': 'bar', }); }); it('should not send the cookie cross-domain with a custom header when withCredentials is not set', () => { const obj: AjaxConfig = { url: 'https://some.subresource.net/some/page', xsrfCookieName: 'foo', xsrfHeaderName: 'Custom-Header-Name', crossDomain: true, }; ajax(obj).subscribe(); const request = MockXMLHttpRequest.mostRecent; expect(request.url).to.equal('https://some.subresource.net/some/page'); expect(request.requestHeaders).to.deep.equal({}); }); it('should not send the cookie if there is no xsrfHeaderName option', () => { const obj: AjaxConfig = { url: '/some/page', xsrfCookieName: 'foo', }; ajax(obj).subscribe(); const request = MockXMLHttpRequest.mostRecent; expect(request.url).to.equal('/some/page'); expect(request.requestHeaders).to.deep.equal({ 'x-requested-with': 'XMLHttpRequest', }); }); }); it('should set the X-Requested-With if crossDomain is false', () => { ajax({ url: '/test/monkey', method: 'GET', crossDomain: false, }).subscribe(); const request = MockXMLHttpRequest.mostRecent; expect(request.requestHeaders).to.deep.equal({ 'x-requested-with': 'XMLHttpRequest', }); }); it('should NOT set the X-Requested-With if crossDomain is true', () => { ajax({ url: '/test/monkey', method: 'GET', crossDomain: true, }).subscribe(); const request = MockXMLHttpRequest.mostRecent; expect(request.requestHeaders).to.not.have.key('x-requested-with'); }); it('should not alter user-provided X-Requested-With header, even if crossDomain is true', () => { ajax({ url: '/test/monkey', method: 'GET', crossDomain: true, headers: { 'x-requested-with': 'Custom-XMLHttpRequest', }, }).subscribe(); const request = MockXMLHttpRequest.mostRecent; expect(request.requestHeaders['x-requested-with']).to.equal('Custom-XMLHttpRequest'); }); it('should not set default Content-Type header when no body is sent', () => { const obj: AjaxConfig = { url: '/talk-to-me-goose', method: 'GET', }; ajax(obj).subscribe(); const request = MockXMLHttpRequest.mostRecent; expect(request.url).to.equal('/talk-to-me-goose'); expect(request.requestHeaders).to.not.have.keys('Content-Type'); }); it('should error if createXHR throws', () => { let error; ajax({ url: '/flibbertyJibbet', responseType: 'text', createXHR: () => { throw new Error('wokka wokka'); }, }).subscribe({ next: () => { throw new Error('should not next'); }, error: (err: any) => { error = err; }, complete: () => { throw new Error('should not complete'); }, }); expect(error).to.be.an('error', 'wokka wokka'); }); it('should error if send request throws', (done) => { const expected = new Error('xhr send failure'); ajax({ url: '/flibbertyJibbet', responseType: 'text', method: '', createXHR: () => { const ret = new MockXMLHttpRequest(); ret.send = () => { throw expected; }; return ret as any; }, }).subscribe({ next: () => { done(new Error('should not be called')); }, error: (e: Error) => { expect(e).to.be.equal(expected); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); it('should succeed on 200', () => { const expected = { foo: 'bar' }; let result: AjaxResponse; let complete = false; ajax({ url: '/flibbertyJibbet', method: '', }).subscribe({ next: (x: any) => { result = x; }, complete: () => { complete = true; }, }); expect(MockXMLHttpRequest.mostRecent.url).to.equal('/flibbertyJibbet'); MockXMLHttpRequest.mostRecent.respondWith({ status: 200, responseText: JSON.stringify(expected), }); expect(result!.xhr).exist; expect(result!.response).to.deep.equal({ foo: 'bar' }); expect(complete).to.be.true; }); it('should fail if fails to parse response in older IE', () => { let error: any; const obj: AjaxConfig = { url: '/flibbertyJibbet', method: '', }; // No `response` property on the object (for older IE). MockXMLHttpRequest.noResponseProp = true; ajax(obj).subscribe({ next: () => { throw new Error('should not next'); }, error: (err: any) => { error = err; }, complete: () => { throw new Error('should not complete'); }, }); MockXMLHttpRequest.mostRecent.respondWith({ status: 207, responseText: 'Wee! I am text, but should be valid JSON!', }); expect(error instanceof SyntaxError).to.be.true; expect(error.message).to.equal('Unexpected token W in JSON at position 0'); }); it('should fail on 404', () => { let error: any; const obj: AjaxConfig = { url: '/flibbertyJibbet', responseType: 'text', method: '', }; ajax(obj).subscribe({ next: () => { throw new Error('should not next'); }, error: (err: any) => { error = err; }, complete: () => { throw new Error('should not complete'); }, }); expect(MockXMLHttpRequest.mostRecent.url).to.equal('/flibbertyJibbet'); MockXMLHttpRequest.mostRecent.respondWith({ status: 404, responseText: 'Wee! I am text!', }); expect(error instanceof AjaxError).to.be.true; expect(error.name).to.equal('AjaxError'); expect(error.message).to.equal('ajax error 404'); expect(error.status).to.equal(404); }); it('should succeed on 300', () => { let result: AjaxResponse; let complete = false; const obj: AjaxConfig = { url: '/flibbertyJibbet', responseType: 'text', method: '', }; ajax(obj).subscribe({ next: (x: any) => { result = x; }, complete: () => { complete = true; }, }); expect(MockXMLHttpRequest.mostRecent.url).to.equal('/flibbertyJibbet'); MockXMLHttpRequest.mostRecent.respondWith({ status: 300, responseText: 'Wee! I am text!', }); expect(result!.xhr).exist; expect(result!.response).to.deep.equal('Wee! I am text!'); expect(complete).to.be.true; }); it('should not fail if fails to parse error response', () => { let error: any; const obj: AjaxConfig = { url: '/flibbertyJibbet', responseType: 'json', method: '', }; ajax(obj).subscribe({ next: () => { throw new Error('should not next'); }, error: (err: any) => { error = err; }, complete: () => { throw new Error('should not complete'); }, }); MockXMLHttpRequest.mostRecent.respondWith({ status: 404, responseText: 'Unparsable as json', }); expect(error instanceof AjaxError).to.be.true; // The default behavior of XHR if you get something back that you can't // parse as JSON, but you have a requestType of "json" is to // have `response` set to `null`. expect(error.response).to.be.null; }); it('should succeed no settings', () => { const expected = JSON.stringify({ foo: 'bar' }); ajax('/flibbertyJibbet').subscribe({ next: (x: any) => { expect(x.status).to.equal(200); expect(x.xhr.method).to.equal('GET'); expect(x.xhr.responseText).to.equal(expected); }, error: () => { throw 'should not have been called'; }, }); expect(MockXMLHttpRequest.mostRecent.url).to.equal('/flibbertyJibbet'); MockXMLHttpRequest.mostRecent.respondWith({ status: 200, responseText: expected, }); }); it('should fail no settings', () => { const expected = JSON.stringify({ foo: 'bar' }); ajax('/flibbertyJibbet').subscribe({ next: () => { throw 'should not have been called'; }, error: (x: any) => { expect(x.status).to.equal(500); expect(x.xhr.method).to.equal('GET'); expect(x.xhr.responseText).to.equal(expected); }, complete: () => { throw 'should not have been called'; }, }); expect(MockXMLHttpRequest.mostRecent.url).to.equal('/flibbertyJibbet'); MockXMLHttpRequest.mostRecent.respondWith({ status: 500, responseText: expected, }); }); it('should create an asynchronous request', () => { const obj: AjaxConfig = { url: '/flibbertyJibbet', responseType: 'text', timeout: 10, }; ajax(obj).subscribe({ next: (x: any) => { expect(x.status).to.equal(200); expect(x.xhr.method).to.equal('GET'); expect(x.xhr.async).to.equal(true); expect(x.xhr.timeout).to.equal(10); expect(x.xhr.responseType).to.equal('text'); }, error: () => { throw 'should not have been called'; }, }); const request = MockXMLHttpRequest.mostRecent; expect(request.url).to.equal('/flibbertyJibbet'); request.respondWith({ status: 200, responseText: 'Wee! I am text!', }); }); it('should error on timeout of asynchronous request', () => { const rxTestScheduler = new TestScheduler(noop); const obj: AjaxConfig = { url: '/flibbertyJibbet', responseType: 'text', timeout: 10, }; ajax(obj).subscribe({ next: () => { throw 'should not have been called'; }, error: (e) => { expect(e.status).to.equal(0); expect(e.xhr.method).to.equal('GET'); expect(e.xhr.async).to.equal(true); expect(e.xhr.timeout).to.equal(10); expect(e.xhr.responseType).to.equal('text'); }, }); const request = MockXMLHttpRequest.mostRecent; expect(request.url).to.equal('/flibbertyJibbet'); rxTestScheduler.schedule(() => { request.respondWith({ status: 200, responseText: 'Wee! I am text!', }); }, 1000); rxTestScheduler.flush(); }); it('should create a synchronous request', () => { const obj: AjaxConfig = { url: '/flibbertyJibbet', responseType: 'text', timeout: 10, async: false, }; ajax(obj).subscribe(); const mockXHR = MockXMLHttpRequest.mostRecent; expect(mockXHR.url).to.equal('/flibbertyJibbet'); // Open was called with async `false`. expect(mockXHR.async).to.be.false; mockXHR.respondWith({ status: 200, responseText: 'Wee! I am text!', }); }); describe('ajax request body', () => { it('can take string body', () => { const obj = { url: '/flibbertyJibbet', method: 'POST', body: 'foobar', }; ajax(obj).subscribe(); expect(MockXMLHttpRequest.mostRecent.url).to.equal('/flibbertyJibbet'); expect(MockXMLHttpRequest.mostRecent.data).to.equal('foobar'); }); it('can take FormData body', () => { const body = new root.FormData(); const obj = { url: '/flibbertyJibbet', method: 'POST', body: body, }; ajax(obj).subscribe(); expect(MockXMLHttpRequest.mostRecent.url).to.equal('/flibbertyJibbet'); expect(MockXMLHttpRequest.mostRecent.data).to.equal(body); expect(MockXMLHttpRequest.mostRecent.requestHeaders).to.deep.equal({ 'x-requested-with': 'XMLHttpRequest', }); }); it('should send the URLSearchParams straight through to the body', () => { const body = new URLSearchParams({ '🌟': '🚀', }); const obj = { url: '/flibbertyJibbet', method: 'POST', body: body, }; ajax(obj).subscribe(); expect(MockXMLHttpRequest.mostRecent.url).to.equal('/flibbertyJibbet'); expect(MockXMLHttpRequest.mostRecent.data).to.equal(body); }); it('should send by JSON', () => { const body = { '🌟': '🚀', }; const obj = { url: '/flibbertyJibbet', method: 'POST', body: body, }; ajax(obj).subscribe(); expect(MockXMLHttpRequest.mostRecent.url).to.equal('/flibbertyJibbet'); expect(MockXMLHttpRequest.mostRecent.data).to.equal('{"🌟":"🚀"}'); }); it('should send json body not mattered on case-sensitivity of HTTP headers', () => { const body = { hello: 'world', }; const requestObj = { url: '/flibbertyJibbet', method: '', body: body, headers: { 'cOnTeNt-TyPe': 'application/json;charset=UTF-8', }, }; ajax(requestObj).subscribe(); expect(MockXMLHttpRequest.mostRecent.url).to.equal('/flibbertyJibbet'); expect(MockXMLHttpRequest.mostRecent.data).to.equal('{"hello":"world"}'); }); it('should error if send request throws', (done) => { const expected = new Error('xhr send failure'); const obj: AjaxConfig = { url: '/flibbertyJibbet', responseType: 'text', method: '', body: 'foobar', createXHR: () => { const ret = new MockXMLHttpRequest(); ret.send = () => { throw expected; }; return ret as any; }, }; ajax(obj).subscribe({ next: () => { done(new Error('should not be called')); }, error: (e: Error) => { expect(e).to.be.equal(expected); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); }); describe('ajax.get', () => { it('should succeed on 200', () => { const expected = { foo: 'bar' }; let result; let complete = false; ajax.get('/flibbertyJibbet').subscribe({ next: (x) => { result = x.response; }, complete: () => { complete = true; }, }); const request = MockXMLHttpRequest.mostRecent; expect(request.url).to.equal('/flibbertyJibbet'); request.respondWith({ status: 200, responseText: JSON.stringify(expected), }); expect(result).to.deep.equal(expected); expect(complete).to.be.true; }); it('should succeed on 204 No Content', () => { let result; let complete = false; ajax.get('/flibbertyJibbet').subscribe({ next: (x) => { result = x.response; }, complete: () => { complete = true; }, }); const request = MockXMLHttpRequest.mostRecent; expect(request.url).to.equal('/flibbertyJibbet'); request.respondWith({ status: 204, responseText: '', }); // Response will get set to null by the browser XHR // This is sort of arbitrarily determined by our test harness // but we want to be as accurate as possible. expect(result).to.be.null; expect(complete).to.be.true; }); it('should able to select json response via getJSON', () => { const expected = { foo: 'bar' }; let result; let complete = false; ajax.getJSON('/flibbertyJibbet').subscribe({ next: (x) => { result = x; }, complete: () => { complete = true; }, }); const request = MockXMLHttpRequest.mostRecent; expect(request.url).to.equal('/flibbertyJibbet'); request.respondWith({ status: 200, responseText: JSON.stringify(expected), }); expect(result).to.deep.equal(expected); expect(complete).to.be.true; }); }); describe('ajax.post', () => { it('should succeed on 200', () => { const expected = { foo: 'bar', hi: 'there you' }; let result: AjaxResponse; let complete = false; ajax.post('/flibbertyJibbet', expected).subscribe({ next: (x) => { result = x; }, complete: () => { complete = true; }, }); const request = MockXMLHttpRequest.mostRecent; expect(request.method).to.equal('POST'); expect(request.url).to.equal('/flibbertyJibbet'); expect(request.requestHeaders).to.deep.equal({ 'content-type': 'application/json;charset=utf-8', 'x-requested-with': 'XMLHttpRequest', }); request.respondWith({ status: 200, responseText: JSON.stringify(expected), }); expect(request.data).to.equal(JSON.stringify(expected)); expect(result!.response).to.deep.equal(expected); expect(complete).to.be.true; }); it('should succeed on 204 No Content', () => { let result: AjaxResponse; let complete = false; ajax.post('/flibbertyJibbet', undefined).subscribe({ next: (x) => { result = x; }, complete: () => { complete = true; }, }); const request = MockXMLHttpRequest.mostRecent; expect(request.method).to.equal('POST'); expect(request.url).to.equal('/flibbertyJibbet'); expect(request.requestHeaders).to.deep.equal({ 'x-requested-with': 'XMLHttpRequest', }); request.respondWith({ status: 204, responseText: '', }); // Since the default setting for `responseType` is "json", // and our `responseText` is an empty string (which isn't parsable as JSON), // response should be `null` here. expect(result!.response).to.be.null; expect(complete).to.be.true; }); it('should allow partial progressSubscriber ', function () { const spy = sinon.spy(); const progressSubscriber: any = { next: spy, }; ajax({ url: '/flibbertyJibbet', progressSubscriber, }).subscribe(); const request = MockXMLHttpRequest.mostRecent; request.respondWith( { status: 200, responseText: JSON.stringify({}), }, { uploadProgressTimes: 3 } ); expect(spy).to.be.called.callCount(4); }); it('should emit progress event when progressSubscriber is specified', function () { const spy = sinon.spy(); const progressSubscriber = { next: spy, error: () => { // noop }, complete: () => { // noop }, }; ajax({ url: '/flibbertyJibbet', progressSubscriber, }).subscribe(); const request = MockXMLHttpRequest.mostRecent; request.respondWith( { status: 200, responseText: JSON.stringify({}), }, { uploadProgressTimes: 3 } ); expect(spy).to.be.called.callCount(4); }); }); describe('ajax.patch', () => { it('should create an AjaxObservable with correct options', () => { const expected = { foo: 'bar', hi: 'there you' }; let result: AjaxResponse; let complete = false; ajax.patch('/flibbertyJibbet', expected).subscribe({ next: (x) => { result = x; }, complete: () => { complete = true; }, }); const request = MockXMLHttpRequest.mostRecent; expect(request.method).to.equal('PATCH'); expect(request.url).to.equal('/flibbertyJibbet'); expect(request.requestHeaders).to.deep.equal({ 'content-type': 'application/json;charset=utf-8', 'x-requested-with': 'XMLHttpRequest', }); request.respondWith({ status: 200, responseText: JSON.stringify(expected), }); expect(request.data).to.equal(JSON.stringify(expected)); expect(result!.response).to.deep.equal(expected); expect(complete).to.be.true; }); }); describe('ajax error classes', () => { describe('AjaxError', () => { it('should extend Error class', () => { const error = new AjaxError('Test error', new XMLHttpRequest(), { url: '/', method: 'GET', responseType: 'json', headers: {}, withCredentials: false, async: true, timeout: 0, crossDomain: false, }); expect(error).to.be.an.instanceOf(Error); }); }); describe('AjaxTimeoutError', () => { it('should extend Error class', () => { const error = new AjaxTimeoutError(new XMLHttpRequest(), { url: '/', method: 'GET', responseType: 'json', headers: {}, withCredentials: false, async: true, timeout: 0, crossDomain: false, }); expect(error).to.be.an.instanceOf(Error); }); it('should extend AjaxError class', () => { const error = new AjaxTimeoutError(new XMLHttpRequest(), { url: '/', method: 'GET', responseType: 'json', headers: {}, withCredentials: false, async: true, timeout: 0, crossDomain: false, }); expect(error).to.be.an.instanceOf(AjaxError); }); }); }); it('should error if aborted early', () => { let thrown: any = null; ajax({ method: 'GET', url: '/flibbertyJibbett', }).subscribe({ next: () => { throw new Error('should not be called'); }, error: (err) => { thrown = err; }, }); const mockXHR = MockXMLHttpRequest.mostRecent; expect(thrown).to.be.null; mockXHR.triggerEvent('abort', { type: 'abort' }); expect(thrown).to.be.an.instanceOf(AjaxError); expect(thrown.message).to.equal('aborted'); }); describe('with includeDownloadProgress', () => { it('should emit download progress', () => { const results: any[] = []; ajax({ method: 'GET', url: '/flibbertyJibbett', includeDownloadProgress: true, }).subscribe({ next: (value) => results.push(value), complete: () => results.push('done'), }); const mockXHR = MockXMLHttpRequest.mostRecent; mockXHR.respondWith( { status: 200, total: 5, loaded: 5, responseText: JSON.stringify({ boo: 'I am a ghost' }), }, { uploadProgressTimes: 5, downloadProgressTimes: 5 } ); const request = { async: true, body: undefined, crossDomain: false, headers: { 'x-requested-with': 'XMLHttpRequest', }, includeDownloadProgress: true, method: 'GET', responseType: 'json', timeout: 0, url: '/flibbertyJibbett', withCredentials: false, }; expect(results).to.deep.equal([ { type: 'download_loadstart', responseHeaders: {}, responseType: 'json', response: undefined, loaded: 0, total: 5, request, status: 0, xhr: mockXHR, originalEvent: { type: 'loadstart', loaded: 0, total: 5 }, }, { type: 'download_progress', responseHeaders: {}, responseType: 'json', response: undefined, loaded: 1, total: 5, request, status: 0, xhr: mockXHR, originalEvent: { type: 'progress', loaded: 1, total: 5 }, }, { type: 'download_progress', responseHeaders: {}, responseType: 'json', response: undefined, loaded: 2, total: 5, request, status: 0, xhr: mockXHR, originalEvent: { type: 'progress', loaded: 2, total: 5 }, }, { type: 'download_progress', responseHeaders: {}, responseType: 'json', response: undefined, loaded: 3, total: 5, request, status: 0, xhr: mockXHR, originalEvent: { type: 'progress', loaded: 3, total: 5 }, }, { type: 'download_progress', responseHeaders: {}, responseType: 'json', response: undefined, loaded: 4, total: 5, request, status: 0, xhr: mockXHR, originalEvent: { type: 'progress', loaded: 4, total: 5 }, }, { type: 'download_progress', responseHeaders: {}, responseType: 'json', response: undefined, loaded: 5, total: 5, request, status: 0, xhr: mockXHR, originalEvent: { type: 'progress', loaded: 5, total: 5 }, }, { type: 'download_load', loaded: 5, total: 5, request, originalEvent: { type: 'load', loaded: 5, total: 5 }, xhr: mockXHR, response: { boo: 'I am a ghost' }, responseHeaders: {}, responseType: 'json', status: 200, }, 'done', // from completion. ]); }); it('should emit upload and download progress', () => { const results: any[] = []; ajax({ method: 'GET', url: '/flibbertyJibbett', includeUploadProgress: true, includeDownloadProgress: true, }).subscribe({ next: (value) => results.push(value), complete: () => results.push('done'), }); const mockXHR = MockXMLHttpRequest.mostRecent; mockXHR.respondWith( { status: 200, total: 5, loaded: 5, responseText: JSON.stringify({ boo: 'I am a ghost' }), }, { uploadProgressTimes: 5, downloadProgressTimes: 5 } ); const request = { async: true, body: undefined, crossDomain: false, headers: { 'x-requested-with': 'XMLHttpRequest', }, includeUploadProgress: true, includeDownloadProgress: true, method: 'GET', responseType: 'json', timeout: 0, url: '/flibbertyJibbett', withCredentials: false, }; expect(results).to.deep.equal([ { type: 'upload_loadstart', loaded: 0, total: 5, request, status: 0, response: undefined, responseHeaders: {}, responseType: 'json', xhr: mockXHR, originalEvent: { type: 'loadstart', loaded: 0, total: 5 }, }, { type: 'upload_progress', loaded: 1, total: 5, request, status: 0, response: undefined, responseHeaders: {}, responseType: 'json', xhr: mockXHR, originalEvent: { type: 'progress', loaded: 1, total: 5 }, }, { type: 'upload_progress', loaded: 2, total: 5, request, status: 0, response: undefined, responseHeaders: {}, responseType: 'json', xhr: mockXHR, originalEvent: { type: 'progress', loaded: 2, total: 5 }, }, { type: 'upload_progress', loaded: 3, total: 5, request, status: 0, response: undefined, responseHeaders: {}, responseType: 'json', xhr: mockXHR, originalEvent: { type: 'progress', loaded: 3, total: 5 }, }, { type: 'upload_progress', loaded: 4, total: 5, request, status: 0, response: undefined, responseHeaders: {}, responseType: 'json', xhr: mockXHR, originalEvent: { type: 'progress', loaded: 4, total: 5 }, }, { type: 'upload_progress', loaded: 5, total: 5, request, status: 0, response: undefined, responseHeaders: {}, responseType: 'json', xhr: mockXHR, originalEvent: { type: 'progress', loaded: 5, total: 5 }, }, { type: 'upload_load', loaded: 5, total: 5, request, status: 0, response: undefined, responseHeaders: {}, responseType: 'json', xhr: mockXHR, originalEvent: { type: 'load', loaded: 5, total: 5 }, }, { type: 'download_loadstart', responseHeaders: {}, responseType: 'json', response: undefined, loaded: 0, total: 5, request, status: 0, xhr: mockXHR, originalEvent: { type: 'loadstart', loaded: 0, total: 5 }, }, { type: 'download_progress', responseHeaders: {}, responseType: 'json', response: undefined, loaded: 1, total: 5, request, status: 0, xhr: mockXHR, originalEvent: { type: 'progress', loaded: 1, total: 5 }, }, { type: 'download_progress', responseHeaders: {}, responseType: 'json', response: undefined, loaded: 2, total: 5, request, status: 0, xhr: mockXHR, originalEvent: { type: 'progress', loaded: 2, total: 5 }, }, { type: 'download_progress', responseHeaders: {}, responseType: 'json', response: undefined, loaded: 3, total: 5, request, status: 0, xhr: mockXHR, originalEvent: { type: 'progress', loaded: 3, total: 5 }, }, { type: 'download_progress', responseHeaders: {}, responseType: 'json', response: undefined, loaded: 4, total: 5, request, status: 0, xhr: mockXHR, originalEvent: { type: 'progress', loaded: 4, total: 5 }, }, { type: 'download_progress', responseHeaders: {}, responseType: 'json', response: undefined, loaded: 5, total: 5, request, status: 0, xhr: mockXHR, originalEvent: { type: 'progress', loaded: 5, total: 5 }, }, { type: 'download_load', loaded: 5, total: 5, request, originalEvent: { type: 'load', loaded: 5, total: 5 }, xhr: mockXHR, response: { boo: 'I am a ghost' }, responseHeaders: {}, responseType: 'json', status: 200, }, 'done', // from completion. ]); }); }); it('should return an object that allows access to response headers', () => { const sentResponseHeaders = { 'content-type': 'application/json', 'x-custom-header': 'test', 'x-headers-are-fun': ' {"weird": "things"}', }; ajax({ method: 'GET', url: '/whatever', }).subscribe((response) => { expect(response.responseHeaders).to.deep.equal(sentResponseHeaders); }); const mockXHR = MockXMLHttpRequest.mostRecent; mockXHR.respondWith({ status: 200, headers: sentResponseHeaders, responseText: JSON.stringify({ iam: 'tired', and: 'should go to bed', but: 'I am doing open source for no good reason' }), }); expect(mockXHR.getAllResponseHeaders()).to.equal(`content-type: application/json x-custom-header: test x-headers-are-fun: {"weird": "things"}`); }); describe('with queryParams', () => { it('should allow passing of search queryParams as a dictionary', () => { ajax({ method: 'GET', url: '/whatever', queryParams: { foo: 'bar', whatever: '123' }, }).subscribe(); const mockXHR = MockXMLHttpRequest.mostRecent; mockXHR.respondWith({ status: 200, responseText: JSON.stringify({ whatever: 'I want' }), }); expect(mockXHR.url).to.equal('/whatever?foo=bar&whatever=123'); }); it('should allow passing of search queryParams as an entries array', () => { ajax({ method: 'GET', url: '/whatever', queryParams: [ ['foo', 'bar'], ['whatever', '123'], ], }).subscribe(); const mockXHR = MockXMLHttpRequest.mostRecent; mockXHR.respondWith({ status: 200, responseText: JSON.stringify({ whatever: 'I want' }), }); expect(mockXHR.url).to.equal('/whatever?foo=bar&whatever=123'); }); it('should allow passing of search queryParams as a string', () => { ajax({ method: 'GET', url: '/whatever', queryParams: '?foo=bar&whatever=123', }).subscribe(); const mockXHR = MockXMLHttpRequest.mostRecent; mockXHR.respondWith({ status: 200, responseText: JSON.stringify({ whatever: 'I want' }), }); expect(mockXHR.url).to.equal('/whatever?foo=bar&whatever=123'); }); it('should allow passing of search queryParams as a URLSearchParams object', () => { const queryParams = new URLSearchParams(); queryParams.set('foo', 'bar'); queryParams.set('whatever', '123'); ajax({ method: 'GET', url: '/whatever', queryParams, }).subscribe(); const mockXHR = MockXMLHttpRequest.mostRecent; mockXHR.respondWith({ status: 200, responseText: JSON.stringify({ whatever: 'I want' }), }); expect(mockXHR.url).to.equal('/whatever?foo=bar&whatever=123'); }); it('should not screw things up if there is an existing search string in the url passed', () => { ajax({ method: 'GET', url: '/whatever?jays_face=is+a+param&lol=haha', queryParams: { foo: 'bar', whatever: '123' }, }).subscribe(); const mockXHR = MockXMLHttpRequest.mostRecent; mockXHR.respondWith({ status: 200, responseText: JSON.stringify({ whatever: 'I want' }), }); expect(mockXHR.url).to.equal('/whatever?jays_face=is+a+param&lol=haha&foo=bar&whatever=123'); }); it('should overwrite existing args from existing search strings in the url passed', () => { ajax({ method: 'GET', url: '/whatever?terminator=2&uncle_bob=huh', queryParams: { uncle_bob: '...okayyyyyyy', movie_quote: 'yes' }, }).subscribe(); const mockXHR = MockXMLHttpRequest.mostRecent; mockXHR.respondWith({ status: 200, responseText: JSON.stringify({ whatever: 'I want' }), }); expect(mockXHR.url).to.equal('/whatever?terminator=2&uncle_bob=...okayyyyyyy&movie_quote=yes'); }); it('should properly encode values', () => { ajax({ method: 'GET', url: '/whatever', queryParams: { 'this is a weird param name': '?#* value here rofl !!!' }, }).subscribe(); const mockXHR = MockXMLHttpRequest.mostRecent; mockXHR.respondWith({ status: 200, responseText: JSON.stringify({ whatever: 'I want' }), }); expect(mockXHR.url).to.equal('/whatever?this+is+a+weird+param+name=%3F%23*+value+here+rofl+%21%21%21'); }); it('should handle dictionaries that have numbers, booleans, and arrays of numbers, strings or booleans', () => { ajax({ method: 'GET', url: '/whatever', queryParams: { a: 123, b: true, c: ['one', 'two', 'three'], d: [1, 3, 3, 7], e: [true, false, true] }, }).subscribe(); const mockXHR = MockXMLHttpRequest.mostRecent; mockXHR.respondWith({ status: 200, responseText: JSON.stringify({ whatever: 'I want' }), }); expect(mockXHR.url).to.equal('/whatever?a=123&b=true&c=one%2Ctwo%2Cthree&d=1%2C3%2C3%2C7&e=true%2Cfalse%2Ctrue'); }); it('should handle entries that have numbers, booleans, and arrays of numbers, strings or booleans', () => { ajax({ method: 'GET', url: '/whatever', queryParams: [ ['a', 123], ['b', true], ['c', ['one', 'two', 'three']], ['d', [1, 3, 3, 7]], ['e', [true, false, true]], ], }).subscribe(); const mockXHR = MockXMLHttpRequest.mostRecent; mockXHR.respondWith({ status: 200, responseText: JSON.stringify({ whatever: 'I want' }), }); expect(mockXHR.url).to.equal('/whatever?a=123&b=true&c=one%2Ctwo%2Cthree&d=1%2C3%2C3%2C7&e=true%2Cfalse%2Ctrue'); }); }); }); // Some of the older versions of node we test on don't have EventTarget. class MockXHREventTarget { private registry = new Map void>>(); addEventListener(type: string, handler: (e: ProgressEvent) => void) { let handlers = this.registry.get(type); if (!handlers) { this.registry.set(type, (handlers = new Set())); } handlers.add(handler); } removeEventListener(type: string, handler: (e: ProgressEvent) => void) { this.registry.get(type)?.delete(handler); } dispatchEvent(event: ProgressEvent) { const { type } = event; const handlers = this.registry.get(type); if (handlers) { for (const handler of handlers) { handler(event); } } } } class MockXMLHttpRequest extends MockXHREventTarget { static readonly DONE = 4; /** * Set to `true` to test IE code paths. */ static noResponseProp = false; private static requests: Array = []; private static recentRequest: MockXMLHttpRequest; static get mostRecent(): MockXMLHttpRequest { return MockXMLHttpRequest.recentRequest; } static get allRequests(): Array { return MockXMLHttpRequest.requests; } static clearRequest(): void { MockXMLHttpRequest.noResponseProp = false; MockXMLHttpRequest.requests.length = 0; MockXMLHttpRequest.recentRequest = null!; } protected responseType: string = ''; private readyState: number = 0; /** * Used to test if `open` was called with `async` true or false. */ public async: boolean = true; protected status: any; // @ts-ignore: Property has no initializer and is not definitely assigned protected responseText: string | undefined; protected response: any = undefined; url: any; method: any; data: any; requestHeaders: any = {}; withCredentials: boolean = false; // @ts-ignore: Property has no initializer and is not definitely assigned onreadystatechange: (e: ProgressEvent) => any; // @ts-ignore: Property has no initializer and is not definitely assigned onerror: (e: ErrorEvent) => any; // @ts-ignore: Property has no initializer and is not definitely assigned onprogress: (e: ProgressEvent) => any; // @ts-ignore: Property has no initializer and is not definitely assigned ontimeout: (e: ProgressEvent) => any; upload: XMLHttpRequestUpload = new MockXHREventTarget() as any; constructor() { super(); MockXMLHttpRequest.recentRequest = this; MockXMLHttpRequest.requests.push(this); if (MockXMLHttpRequest.noResponseProp) { delete this['response']; } } // @ts-ignore: Property has no initializer and is not definitely assigned timeout: number; send(data: any): void { this.data = data; if (this.timeout && this.timeout > 0) { setTimeout(() => { if (this.readyState != 4) { this.readyState = 4; this.status = 0; this.triggerEvent('readystatechange'); this.triggerEvent('timeout'); } }, this.timeout); } } abort() { // noop } open(method: any, url: any, async: any): void { this.method = method; this.url = url; this.async = async; this.readyState = 1; this.triggerEvent('readystatechange'); const originalProgressHandler = this.upload.onprogress; Object.defineProperty(this.upload, 'progress', { get() { return originalProgressHandler; }, }); } setRequestHeader(key: any, value: any): void { this.requestHeaders[key] = value; } private _responseHeaders: any; getAllResponseHeaders() { return this._responseHeaders ? Object.entries(this._responseHeaders) .map((entryParts) => entryParts.join(': ')) .join('\n') : ''; } respondWith( response: { status?: number; headers?: any; responseText?: string | undefined; total?: number; loaded?: number; }, config?: { uploadProgressTimes?: number; downloadProgressTimes?: number } ): void { const { uploadProgressTimes = 0, downloadProgressTimes = 0 } = config ?? {}; // Fake our upload progress first, if requested by the test. if (uploadProgressTimes) { this.triggerUploadEvent('loadstart', { type: 'loadstart', total: uploadProgressTimes, loaded: 0 }); for (let i = 1; i <= uploadProgressTimes; i++) { this.triggerUploadEvent('progress', { type: 'progress', total: uploadProgressTimes, loaded: i }); } this.triggerUploadEvent('load', { type: 'load', total: uploadProgressTimes, loaded: uploadProgressTimes }); } // Fake our download progress if (downloadProgressTimes) { this.triggerEvent('loadstart', { type: 'loadstart', total: downloadProgressTimes, loaded: 0 }); for (let i = 1; i <= downloadProgressTimes; i++) { this.triggerEvent('progress', { type: 'progress', total: downloadProgressTimes, loaded: i }); } } // Store our headers locally. This is used in `getAllResponseHeaders` mock impl. this._responseHeaders = response.headers; // Set the readyState to DONE (4) this.readyState = 4; // Default to OK this.status = response.status || 200; this.responseText = response.responseText; switch (this.responseType) { case 'json': try { this.response = JSON.parse(response.responseText!); } catch (err) { // Ignore this is for testing if we get an invalid server // response somehow, where responseType is "json" but the responseText // is not JSON. In truth, we need to invert these tests to just use // response, because `responseText` is a legacy path. this.response = null; } break; case 'arraybuffer': case 'document': case 'blob': throw new Error('Test harness does not support the responseType: ' + this.responseType); case 'text': case '': default: this.response = response.responseText; break; } // We're testing old IE, forget all of that response property stuff. if (MockXMLHttpRequest.noResponseProp) { delete this['response']; } this.triggerEvent('load', { type: 'load', total: response.total ?? 0, loaded: response.loaded ?? 0 }); this.triggerEvent('readystatechange', { type: 'readystatechange' }); } triggerEvent(this: any, name: any, eventObj?: any): void { // TODO: create a better default event const e: any = eventObj || { type: name }; this.dispatchEvent({ type: name, ...eventObj }); if (this['on' + name]) { this['on' + name](e); } } triggerUploadEvent(this: any, name: any, eventObj?: any): void { // TODO: create a better default event const e: any = eventObj || {}; this.upload.dispatchEvent({ type: name, ...eventObj }); if (this.upload['on' + name]) { this.upload['on' + name](e); } } } rxjs-7.5.7/spec/observables/dom/animationFrames-spec.ts000066400000000000000000000101601431412030200231410ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import * as sinon from 'sinon'; import { animationFrames } from 'rxjs'; import { mergeMapTo, take, takeUntil } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../../helpers/observableMatcher'; import { animationFrameProvider } from 'rxjs/internal/scheduler/animationFrameProvider'; describe('animationFrames', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should animate', function () { testScheduler.run(({ animate, cold, expectObservable, time }) => { animate(' ---x---x---x'); const mapped = cold('-m '); const tm = time(' -| '); const ta = time(' ---| '); const tb = time(' -------| '); const tc = time(' -----------|'); const expected = ' ---a---b---c'; const subs = ' ^----------!'; const result = mapped.pipe(mergeMapTo(animationFrames())); expectObservable(result, subs).toBe(expected, { a: { elapsed: ta - tm, timestamp: ta }, b: { elapsed: tb - tm, timestamp: tb }, c: { elapsed: tc - tm, timestamp: tc }, }); }); }); it('should use any passed timestampProvider', () => { let i = 0; const timestampProvider = { now: sinon.stub().callsFake(() => { return [50, 100, 200, 300][i++]; }), }; testScheduler.run(({ animate, cold, expectObservable }) => { animate(' ---x---x---x'); const mapped = cold('-m '); const expected = ' ---a---b---c'; const subs = ' ^----------!'; const result = mapped.pipe(mergeMapTo(animationFrames(timestampProvider))); expectObservable(result, subs).toBe(expected, { a: { elapsed: 50, timestamp: 100 }, b: { elapsed: 150, timestamp: 200 }, c: { elapsed: 250, timestamp: 300 }, }); }); }); it('should compose with take', () => { testScheduler.run(({ animate, cold, expectObservable, time }) => { const requestSpy = sinon.spy(animationFrameProvider.delegate!, 'requestAnimationFrame'); const cancelSpy = sinon.spy(animationFrameProvider.delegate!, 'cancelAnimationFrame'); animate(' ---x---x---x'); const mapped = cold('-m '); const tm = time(' -| '); const ta = time(' ---| '); const tb = time(' -------| '); const expected = ' ---a---b '; const result = mapped.pipe(mergeMapTo(animationFrames().pipe(take(2)))); expectObservable(result).toBe(expected, { a: { elapsed: ta - tm, timestamp: ta }, b: { elapsed: tb - tm, timestamp: tb }, }); testScheduler.flush(); // Requests are made at times tm and ta expect(requestSpy.callCount).to.equal(2); // No request cancellation is effected, as unsubscription occurs before rescheduling expect(cancelSpy.callCount).to.equal(0); }); }); it('should compose with takeUntil', () => { testScheduler.run(({ animate, cold, expectObservable, hot, time }) => { const requestSpy = sinon.spy(animationFrameProvider.delegate!, 'requestAnimationFrame'); const cancelSpy = sinon.spy(animationFrameProvider.delegate!, 'cancelAnimationFrame'); animate(' ---x---x---x'); const mapped = cold('-m '); const tm = time(' -| '); const ta = time(' ---| '); const tb = time(' -------| '); const signal = hot(' ^--------s--'); const expected = ' ---a---b '; const result = mapped.pipe(mergeMapTo(animationFrames().pipe(takeUntil(signal)))); expectObservable(result).toBe(expected, { a: { elapsed: ta - tm, timestamp: ta }, b: { elapsed: tb - tm, timestamp: tb }, }); testScheduler.flush(); // Requests are made at times tm and ta and tb expect(requestSpy.callCount).to.equal(3); // Unsubscription effects request cancellation when signalled expect(cancelSpy.callCount).to.equal(1); }); }); }); rxjs-7.5.7/spec/observables/dom/fetch-spec.ts000066400000000000000000000231211431412030200211160ustar00rootroot00000000000000import { fromFetch } from 'rxjs/fetch'; import { expect } from 'chai'; const root: any = (typeof globalThis !== 'undefined' && globalThis) || (typeof self !== 'undefined' && self) || global; const OK_RESPONSE = { ok: true, } as Response; function mockFetchImpl(input: string | Request, init?: RequestInit): Promise { (mockFetchImpl as MockFetch).calls.push({ input, init }); return new Promise((resolve, reject) => { if (init) { if (init.signal) { if (init.signal.aborted) { reject(new MockDOMException()); return; } init.signal.addEventListener('abort', () => { reject(new MockDOMException()); }); } } Promise.resolve(null).then(() => { resolve((mockFetchImpl as any).respondWith); }); }); } (mockFetchImpl as MockFetch).reset = function (this: any) { this.calls = [] as any[]; this.respondWith = OK_RESPONSE; }; (mockFetchImpl as MockFetch).reset(); const mockFetch: MockFetch = mockFetchImpl as MockFetch; class MockDOMException {} class MockAbortController { readonly signal = new MockAbortSignal(); abort() { this.signal._signal(); } constructor() { MockAbortController.created++; } static created = 0; static reset() { MockAbortController.created = 0; } } class MockAbortSignal { private _listeners: Function[] = []; aborted = false; addEventListener(name: 'abort', handler: Function) { this._listeners.push(handler); } removeEventListener(name: 'abort', handler: Function) { const index = this._listeners.indexOf(handler); if (index >= 0) { this._listeners.splice(index, 1); } } _signal() { this.aborted = true; while (this._listeners.length > 0) { this._listeners.shift()!(); } } } interface MockFetch { (input: string | Request, init?: RequestInit): Promise; calls: { input: string | Request, init: RequestInit | undefined }[]; reset(): void; respondWith: Response; } describe('fromFetch', () => { let _fetch: typeof fetch; let _AbortController: AbortController; beforeEach(() => { mockFetch.reset(); if (root.fetch) { _fetch = root.fetch; } root.fetch = mockFetch; MockAbortController.reset(); if (root.AbortController) { _AbortController = root.AbortController; } root.AbortController = MockAbortController; }); afterEach(() => { root.fetch = _fetch; root.AbortController = _AbortController; }); it('should exist', () => { expect(fromFetch).to.be.a('function'); }); it('should fetch', (done) => { const fetch$ = fromFetch('/foo'); expect(mockFetch.calls.length).to.equal(0); expect(MockAbortController.created).to.equal(0); fetch$.subscribe({ next: response => { expect(response).to.equal(OK_RESPONSE); }, error: done, complete: () => { // Wait until the complete and the subsequent unsubscribe are finished // before testing these expectations: setTimeout(() => { expect(MockAbortController.created).to.equal(1); expect(mockFetch.calls.length).to.equal(1); expect(mockFetch.calls[0].input).to.equal('/foo'); expect(mockFetch.calls[0].init!.signal).not.to.be.undefined; expect(mockFetch.calls[0].init!.signal!.aborted).to.be.false; done(); }, 0); } }); }); it('should handle Response that is not `ok`', (done) => { mockFetch.respondWith = { ok: false, status: 400, body: 'Bad stuff here' } as any as Response; const fetch$ = fromFetch('/foo'); expect(mockFetch.calls.length).to.equal(0); expect(MockAbortController.created).to.equal(0); fetch$.subscribe({ next: response => { expect(response).to.equal(mockFetch.respondWith); }, complete: done, error: done }); expect(MockAbortController.created).to.equal(1); expect(mockFetch.calls.length).to.equal(1); expect(mockFetch.calls[0].input).to.equal('/foo'); expect(mockFetch.calls[0].init!.signal).not.to.be.undefined; expect(mockFetch.calls[0].init!.signal!.aborted).to.be.false; }); it('should abort when unsubscribed', () => { const fetch$ = fromFetch('/foo'); expect(mockFetch.calls.length).to.equal(0); expect(MockAbortController.created).to.equal(0); const subscription = fetch$.subscribe(); expect(MockAbortController.created).to.equal(1); expect(mockFetch.calls.length).to.equal(1); expect(mockFetch.calls[0].input).to.equal('/foo'); expect(mockFetch.calls[0].init!.signal).not.to.be.undefined; expect(mockFetch.calls[0].init!.signal!.aborted).to.be.false; subscription.unsubscribe(); expect(mockFetch.calls[0].init!.signal!.aborted).to.be.true; }); it('should not immediately abort repeat subscribers', () => { const fetch$ = fromFetch('/foo'); expect(mockFetch.calls.length).to.equal(0); expect(MockAbortController.created).to.equal(0); let subscription = fetch$.subscribe(); expect(MockAbortController.created).to.equal(1); expect(mockFetch.calls[0].init!.signal!.aborted).to.be.false; subscription.unsubscribe(); expect(mockFetch.calls[0].init!.signal!.aborted).to.be.true; subscription = fetch$.subscribe(); expect(MockAbortController.created).to.equal(2); expect(mockFetch.calls[1].init!.signal!.aborted).to.be.false; subscription.unsubscribe(); expect(mockFetch.calls[1].init!.signal!.aborted).to.be.true; }); it('should allow passing of init object', (done) => { const fetch$ = fromFetch('/foo', {method: 'HEAD'}); fetch$.subscribe({ error: done, complete: done, }); expect(mockFetch.calls[0].init!.method).to.equal('HEAD'); }); it('should add a signal to internal init object without mutating the passed init object', (done) => { const myInit = {method: 'DELETE'}; const fetch$ = fromFetch('/bar', myInit); fetch$.subscribe({ error: done, complete: done, }); expect(mockFetch.calls[0].init!.method).to.equal(myInit.method); expect(mockFetch.calls[0].init).not.to.equal(myInit); expect(mockFetch.calls[0].init!.signal).not.to.be.undefined; }); it('should treat passed signals as a cancellation token which triggers an error', (done) => { const controller = new MockAbortController(); const signal = controller.signal as any; const fetch$ = fromFetch('/foo', { signal }); const subscription = fetch$.subscribe({ error: err => { expect(err).to.be.instanceof(MockDOMException); done(); } }); controller.abort(); expect(mockFetch.calls[0].init!.signal!.aborted).to.be.true; // The subscription will not be closed until the error fires when the promise resolves. expect(subscription.closed).to.be.false; }); it('should treat passed already aborted signals as a cancellation token which triggers an error', (done) => { const controller = new MockAbortController(); controller.abort(); const signal = controller.signal as any; const fetch$ = fromFetch('/foo', { signal }); const subscription = fetch$.subscribe({ error: err => { expect(err).to.be.instanceof(MockDOMException); done(); } }); expect(mockFetch.calls[0].init!.signal!.aborted).to.be.true; // The subscription will not be closed until the error fires when the promise resolves. expect(subscription.closed).to.be.false; }); it('should not leak listeners added to the passed in signal', (done) => { const controller = new MockAbortController(); const signal = controller.signal as any; const fetch$ = fromFetch('/foo', { signal }); const subscription = fetch$.subscribe(); subscription.add(() => { try { expect(signal._listeners).to.be.empty; done(); } catch (error) { done(error); } }); }); it('should support a selector', (done) => { mockFetch.respondWith = { ...OK_RESPONSE, text: () => Promise.resolve('bar') }; const fetch$ = fromFetch('/foo', { selector: response => response.text() }); expect(mockFetch.calls.length).to.equal(0); expect(MockAbortController.created).to.equal(0); fetch$.subscribe({ next: text => { expect(text).to.equal('bar'); }, error: done, complete: () => { // Wait until the complete and the subsequent unsubscribe are finished // before testing these expectations: setTimeout(() => { expect(MockAbortController.created).to.equal(1); expect(mockFetch.calls.length).to.equal(1); expect(mockFetch.calls[0].input).to.equal('/foo'); expect(mockFetch.calls[0].init!.signal).not.to.be.undefined; expect(mockFetch.calls[0].init!.signal!.aborted).to.be.false; done(); }, 0); } }); }); it('should abort when unsubscribed and a selector is specified', () => { mockFetch.respondWith = { ...OK_RESPONSE, text: () => Promise.resolve('bar') }; const fetch$ = fromFetch('/foo', { selector: response => response.text() }); expect(mockFetch.calls.length).to.equal(0); expect(MockAbortController.created).to.equal(0); const subscription = fetch$.subscribe(); expect(MockAbortController.created).to.equal(1); expect(mockFetch.calls.length).to.equal(1); expect(mockFetch.calls[0].input).to.equal('/foo'); expect(mockFetch.calls[0].init!.signal).not.to.be.undefined; expect(mockFetch.calls[0].init!.signal!.aborted).to.be.false; subscription.unsubscribe(); expect(mockFetch.calls[0].init!.signal!.aborted).to.be.true; }); }); rxjs-7.5.7/spec/observables/dom/webSocket-spec.ts000066400000000000000000000560151431412030200217630ustar00rootroot00000000000000import { expect } from 'chai'; import * as sinon from 'sinon'; import { webSocket } from 'rxjs/webSocket'; import { map, retry, take, repeat, takeWhile } from 'rxjs/operators'; const root: any = (typeof globalThis !== 'undefined' && globalThis) || (typeof self !== 'undefined' && self) || global; enum WebSocketState { CONNECTING = 0, OPEN = 1, CLOSING = 2, CLOSED = 3 } /** @test {webSocket} */ describe('webSocket', () => { let __ws: any; function setupMockWebSocket() { __ws = root.WebSocket; root.WebSocket = MockWebSocket; } function teardownMockWebSocket() { root.WebSocket = __ws; MockWebSocket.clearSockets(); } describe('basic behavior', () => { beforeEach(() => { setupMockWebSocket(); }); afterEach(() => { teardownMockWebSocket(); }); it('should send and receive messages', () => { let messageReceived = false; const subject = webSocket('ws://mysocket'); subject.next('ping'); subject.subscribe(x => { expect(x).to.equal('pong'); messageReceived = true; }); const socket = MockWebSocket.lastSocket; expect(socket.url).to.equal('ws://mysocket'); socket.open(); expect(socket.lastMessageSent).to.equal(JSON.stringify('ping')); socket.triggerMessage(JSON.stringify('pong')); expect(messageReceived).to.be.true; subject.unsubscribe(); }); it('should allow use of operators and subscribe', () => { const subject = webSocket('ws://mysocket'); const results: any[] = []; subject.pipe( map(x => x + '!'), ) .subscribe(x => results.push(x)); MockWebSocket.lastSocket.triggerMessage(JSON.stringify('ngconf 2018 bug')); expect(results).to.deep.equal(['ngconf 2018 bug!']); }); it('receive multiple messages', () => { const expected = ['what', 'do', 'you', 'do', 'with', 'a', 'drunken', 'sailor?']; const results: string[] = []; const subject = webSocket('ws://mysocket'); subject.subscribe(x => { results.push(x); }); const socket = MockWebSocket.lastSocket; socket.open(); expected.forEach(x => { socket.triggerMessage(JSON.stringify(x)); }); expect(results).to.deep.equal(expected); subject.unsubscribe(); }); it('should queue messages prior to subscription', () => { const expected = ['make', 'him', 'walk', 'the', 'plank']; const subject = webSocket('ws://mysocket'); expected.forEach(x => { subject.next(x); }); let socket = MockWebSocket.lastSocket; expect(socket).not.exist; subject.subscribe(); socket = MockWebSocket.lastSocket; expect(socket.sent.length).to.equal(0); socket.open(); expect(socket.sent.length).to.equal(expected.length); subject.unsubscribe(); }); it('should send messages immediately if already open', () => { const subject = webSocket('ws://mysocket'); subject.subscribe(); const socket = MockWebSocket.lastSocket; socket.open(); subject.next('avast!'); expect(socket.lastMessageSent).to.equal(JSON.stringify('avast!')); subject.next('ye swab!'); expect(socket.lastMessageSent).to.equal(JSON.stringify('ye swab!')); subject.unsubscribe(); }); it('should close the socket when completed', () => { const subject = webSocket('ws://mysocket'); subject.subscribe(); const socket = MockWebSocket.lastSocket; socket.open(); expect(socket.readyState).to.equal(WebSocketState.OPEN); sinon.spy(socket, 'close'); expect(socket.close).not.have.been.called; subject.complete(); expect(socket.close).have.been.called; expect(socket.readyState).to.equal(WebSocketState.CLOSING); socket.triggerClose({ wasClean: true }); expect(socket.readyState).to.equal(WebSocketState.CLOSED); subject.unsubscribe(); (socket.close).restore(); }); it('should close the socket when unsubscribed before socket open', () => { const subject = webSocket('ws://mysocket'); subject.subscribe(); subject.unsubscribe(); const socket = MockWebSocket.lastSocket; sinon.spy(socket, 'close'); socket.open(); expect(socket.close).have.been.called; expect(socket.readyState).to.equal(WebSocketState.CLOSING); (socket.close).restore(); }); it('should close the socket when subscription is cancelled before socket open', () => { const subject = webSocket('ws://mysocket'); const subscription = subject.subscribe(); subscription.unsubscribe(); const socket = MockWebSocket.lastSocket; sinon.spy(socket, 'close'); socket.open(); expect(socket.close).have.been.called; expect(socket.readyState).to.equal(WebSocketState.CLOSING); (socket.close).restore(); }); it('should close the socket when unsubscribed while connecting', () => { const subject = webSocket('ws://mysocket'); subject.subscribe(); const socket = MockWebSocket.lastSocket; sinon.spy(socket, 'close'); subject.unsubscribe(); expect(socket.close).have.been.called; expect(socket.readyState).to.equal(WebSocketState.CLOSING); (socket.close).restore(); }); it('should close the socket when subscription is cancelled while connecting', () => { const subject = webSocket('ws://mysocket'); const subscription = subject.subscribe(); const socket = MockWebSocket.lastSocket; sinon.spy(socket, 'close'); subscription.unsubscribe(); expect(socket.close).have.been.called; expect(socket.readyState).to.equal(WebSocketState.CLOSING); (socket.close).restore(); }); it('should close a socket that opens before the previous socket has closed', () => { const subject = webSocket('ws://mysocket'); const subscription = subject.subscribe(); const socket = MockWebSocket.lastSocket; sinon.spy(socket, 'close'); subscription.unsubscribe(); expect(socket.close).have.been.called; expect(socket.readyState).to.equal(WebSocketState.CLOSING); const subscription2 = subject.subscribe(); const socket2 = MockWebSocket.lastSocket; sinon.spy(socket2, 'close'); // Close socket after socket2 has opened socket2.open(); expect(socket2.readyState).to.equal(WebSocketState.OPEN); socket.triggerClose({wasClean: true}); expect(socket.readyState).to.equal(WebSocketState.CLOSED); expect(socket2.close).have.not.been.called; subscription2.unsubscribe(); expect(socket2.close).have.been.called; expect(socket2.readyState).to.equal(WebSocketState.CLOSING); (socket.close).restore(); }); it('should close the socket with a code and a reason when errored', () => { const subject = webSocket('ws://mysocket'); subject.subscribe(); const socket = MockWebSocket.lastSocket; socket.open(); sinon.spy(socket, 'close'); expect(socket.close).not.have.been.called; subject.error({ code: 1337, reason: 'Too bad, so sad :('}); expect(socket.close).have.been.calledWith(1337, 'Too bad, so sad :('); subject.unsubscribe(); (socket.close).restore(); }); it('should allow resubscription after closure via complete', () => { const subject = webSocket('ws://mysocket'); subject.subscribe(); const socket1 = MockWebSocket.lastSocket; socket1.open(); subject.complete(); subject.next('a mariner yer not. yarrr.'); subject.subscribe(); const socket2 = MockWebSocket.lastSocket; socket2.open(); expect(socket2).not.to.equal(socket1); expect(socket2.lastMessageSent).to.equal(JSON.stringify('a mariner yer not. yarrr.')); subject.unsubscribe(); }); it('should allow resubscription after closure via error', () => { const subject = webSocket('ws://mysocket'); subject.subscribe(); const socket1 = MockWebSocket.lastSocket; socket1.open(); subject.error({ code: 1337 }); subject.next('yo-ho! yo-ho!'); subject.subscribe(); const socket2 = MockWebSocket.lastSocket; socket2.open(); expect(socket2).not.to.equal(socket1); expect(socket2.lastMessageSent).to.equal(JSON.stringify('yo-ho! yo-ho!')); subject.unsubscribe(); }); it('should have a default resultSelector that parses message data as JSON', () => { let result; const expected = { mork: 'shazbot!' }; const subject = webSocket('ws://mysocket'); subject.subscribe((x: any) => { result = x; }); const socket = MockWebSocket.lastSocket; socket.open(); socket.triggerMessage(JSON.stringify(expected)); expect(result).to.deep.equal(expected); subject.unsubscribe(); }); }); describe('with a config object', () => { beforeEach(() => { setupMockWebSocket(); }); afterEach(() => { teardownMockWebSocket(); }); it('should send and receive messages', () => { let messageReceived = false; const subject = webSocket({ url: 'ws://mysocket' }); subject.next('ping'); subject.subscribe(x => { expect(x).to.equal('pong'); messageReceived = true; }); const socket = MockWebSocket.lastSocket; expect(socket.url).to.equal('ws://mysocket'); socket.open(); expect(socket.lastMessageSent).to.equal(JSON.stringify('ping')); socket.triggerMessage(JSON.stringify('pong')); expect(messageReceived).to.be.true; subject.unsubscribe(); }); it('should take a protocol and set it properly on the web socket', () => { const subject = webSocket({ url: 'ws://mysocket', protocol: 'someprotocol' }); subject.subscribe(); const socket = MockWebSocket.lastSocket; expect(socket.protocol).to.equal('someprotocol'); subject.unsubscribe(); }); it('should take a binaryType and set it properly on the web socket', () => { const subject = webSocket({ url: 'ws://mysocket', binaryType: 'blob' }); subject.subscribe(); const socket = MockWebSocket.lastSocket; expect(socket.binaryType).to.equal('blob'); subject.unsubscribe(); }); it('should take a deserializer', () => { const results = [] as string[]; const subject = webSocket({ url: 'ws://mysocket', deserializer: (e: any) => { return e.data + '!'; } }); subject.subscribe((x: any) => { results.push(x); }); const socket = MockWebSocket.lastSocket; socket.open(); ['ahoy', 'yarr', 'shove off'].forEach((x: any) => { socket.triggerMessage(x); }); expect(results).to.deep.equal(['ahoy!', 'yarr!', 'shove off!']); subject.unsubscribe(); }); it('if the deserializer fails it should go down the error path', () => { const subject = webSocket({ url: 'ws://mysocket', deserializer: (e: any) => { throw new Error('I am a bad error'); } }); subject.subscribe({ next: (x: any) => { expect(x).to.equal('this should not happen'); }, error: (err: any) => { expect(err).to.be.an('error', 'I am a bad error'); } }); const socket = MockWebSocket.lastSocket; socket.open(); socket.triggerMessage('weee!'); subject.unsubscribe(); }); it('should accept a closingObserver', () => { let calls = 0; const subject = webSocket({ url: 'ws://mysocket', closingObserver: { next(x: any) { calls++; expect(x).to.be.an('undefined'); } } }); subject.subscribe(); let socket = MockWebSocket.lastSocket; socket.open(); expect(calls).to.equal(0); subject.complete(); expect(calls).to.equal(1); subject.subscribe(); socket = MockWebSocket.lastSocket; socket.open(); subject.error({ code: 1337 }); expect(calls).to.equal(2); subject.unsubscribe(); }); it('should accept a closeObserver', () => { const expected = [{ wasClean: true }, { wasClean: false }]; const closes = [] as any[]; const subject = webSocket({ url: 'ws://mysocket', closeObserver: { next(e: any) { closes.push(e); } } }); subject.subscribe(); let socket = MockWebSocket.lastSocket; socket.open(); expect(closes.length).to.equal(0); socket.triggerClose(expected[0]); expect(closes.length).to.equal(1); subject.subscribe({ error: function (err) { expect(err).to.equal(expected[1]); } }); socket = MockWebSocket.lastSocket; socket.open(); socket.triggerClose(expected[1]); expect(closes.length).to.equal(2); expect(closes[0]).to.equal(expected[0]); expect(closes[1]).to.equal(expected[1]); subject.unsubscribe(); }); it('should handle constructor errors', () => { const subject = webSocket({ url: 'bad_url', WebSocketCtor: (url: string, protocol?: string | string[]): WebSocket => { throw new Error(`connection refused`); } }); subject.subscribe({ next: (x: any) => { expect(x).to.equal('this should not happen'); }, error: (err: any) => { expect(err).to.be.an('error', 'connection refused'); } }); subject.unsubscribe(); }); }); describe('multiplex', () => { beforeEach(() => { setupMockWebSocket(); }); afterEach(() => { teardownMockWebSocket(); }); it('should be retryable', () => { const results = [] as string[]; const subject = webSocket<{ name: string, value: string }>('ws://websocket'); const source = subject.multiplex( () => ({ sub: 'foo' }), () => ({ unsub: 'foo' }), value => value.name === 'foo' ); source.pipe( retry(1), map(x => x.value), take(2), ).subscribe(x => { results.push(x); }); const socket = MockWebSocket.lastSocket; socket.open(); expect(socket.lastMessageSent).to.deep.equal(JSON.stringify({ sub: 'foo' })); socket.triggerClose({ wasClean: false }); // Bad connection const socket2 = MockWebSocket.lastSocket; expect(socket2).not.to.equal(socket); socket2.open(); expect(socket2.lastMessageSent).to.deep.equal(JSON.stringify({ sub: 'foo' })); socket2.triggerMessage(JSON.stringify({ name: 'foo', value: 'test' })); socket2.triggerMessage(JSON.stringify({ name: 'foo', value: 'this' })); expect(results).to.deep.equal(['test', 'this']); }); it('should be repeatable', () => { const results = [] as string[]; const subject = webSocket<{ name: string, value: string }>('ws://websocket'); const source = subject.multiplex( () => ({ sub: 'foo' }), () => ({ unsub: 'foo' }), value => value.name === 'foo' ); source .pipe( repeat(2), map(x => x.value) ) .subscribe(x => { results.push(x); }); const socket = MockWebSocket.lastSocket; socket.open(); expect(socket.lastMessageSent).to.deep.equal(JSON.stringify({ sub: 'foo' }), 'first multiplexed sub'); socket.triggerMessage(JSON.stringify({ name: 'foo', value: 'test' })); socket.triggerMessage(JSON.stringify({ name: 'foo', value: 'this' })); socket.triggerClose({ wasClean: true }); const socket2 = MockWebSocket.lastSocket; expect(socket2).not.to.equal(socket, 'a new socket was not created'); socket2.open(); expect(socket2.lastMessageSent).to.deep.equal(JSON.stringify({ sub: 'foo' }), 'second multiplexed sub'); socket2.triggerMessage(JSON.stringify({ name: 'foo', value: 'test' })); socket2.triggerMessage(JSON.stringify({ name: 'foo', value: 'this' })); socket2.triggerClose({ wasClean: true }); expect(results).to.deep.equal(['test', 'this', 'test', 'this'], 'results were not equal'); }); it('should multiplex over the webSocket', () => { const results = [] as Array<{ value: number, name: string }>; const subject = webSocket<{ value: number, name: string }>('ws://websocket'); const source = subject.multiplex( () => ({ sub: 'foo'}), () => ({ unsub: 'foo' }), value => value.name === 'foo' ); const sub = source.subscribe(function (x: any) { results.push(x.value); }); const socket = MockWebSocket.lastSocket; socket.open(); expect(socket.lastMessageSent).to.deep.equal(JSON.stringify({ sub: 'foo' })); [1, 2, 3, 4, 5].map((x: number) => { return { name: x % 3 === 0 ? 'bar' : 'foo', value: x }; }).forEach((x: any) => { socket.triggerMessage(JSON.stringify(x)); }); expect(results).to.deep.equal([1, 2, 4, 5]); sinon.spy(socket, 'close'); sub.unsubscribe(); expect(socket.lastMessageSent).to.deep.equal(JSON.stringify({ unsub: 'foo' })); expect(socket.close).have.been.called; (socket.close).restore(); }); it('should keep the same socket for multiple multiplex subscriptions', () => { const socketSubject = webSocket({url: 'ws://mysocket'}); const results = [] as string[]; const socketMessages = [ {id: 'A'}, {id: 'B'}, {id: 'A'}, {id: 'B'}, {id: 'B'}, ]; const sub1 = socketSubject.multiplex( () => 'no-op', () => results.push('A unsub'), (req: any) => req.id === 'A' ).pipe( takeWhile((req: any) => !req.complete) ) .subscribe( { next: () => results.push('A next'), error: (e) => results.push('A error ' + e), complete: () => results.push('A complete') } ); socketSubject.multiplex( () => 'no-op', () => results.push('B unsub'), (req: any) => req.id === 'B') .subscribe( { next: () => results.push('B next'), error: (e) => results.push('B error ' + e), complete: () => results.push('B complete') } ); // Setup socket and send messages let socket = MockWebSocket.lastSocket; socket.open(); socketMessages.forEach((msg, i) => { if (i === 1) { sub1.unsubscribe(); expect((socketSubject as any)._socket).to.equal(socket); } socket.triggerMessage(JSON.stringify(msg)); }); socket.triggerClose({ wasClean: true }); expect(results).to.deep.equal([ 'A next', 'A unsub', 'B next', 'B next', 'B next', 'B complete', 'B unsub', ]); }); it('should not close the socket until all subscriptions complete', () => { const socketSubject = webSocket<{ id: string, complete: boolean }>({url: 'ws://mysocket'}); const results = [] as string[]; const socketMessages = [ {id: 'A'}, {id: 'B'}, {id: 'A', complete: true}, {id: 'B'}, {id: 'B', complete: true}, ]; socketSubject.multiplex( () => 'no-op', () => results.push('A unsub'), req => req.id === 'A' ).pipe( takeWhile(req => !req.complete) ).subscribe( { next: () => results.push('A next'), error: (e) => results.push('A error ' + e), complete: () => results.push('A complete') } ); socketSubject.multiplex( () => 'no-op', () => results.push('B unsub'), req => req.id === 'B' ).pipe( takeWhile(req => !req.complete) ).subscribe( { next: () => results.push('B next'), error: (e) => results.push('B error ' + e), complete: () => results.push('B complete') } ); // Setup socket and send messages let socket = MockWebSocket.lastSocket; socket.open(); socketMessages.forEach((msg) => { socket.triggerMessage(JSON.stringify(msg)); }); expect(results).to.deep.equal([ 'A next', 'B next', 'A complete', 'A unsub', 'B next', 'B complete', 'B unsub', ]); }); }); describe('node constructor', () => { it('should send and receive messages', () => { let messageReceived = false; const subject = webSocket({ url: 'ws://mysocket', WebSocketCtor: MockWebSocket }); subject.next('ping'); subject.subscribe(x => { expect(x).to.equal('pong'); messageReceived = true; }); const socket = MockWebSocket.lastSocket; expect(socket.url).to.equal('ws://mysocket'); socket.open(); expect(socket.lastMessageSent).to.equal(JSON.stringify('ping')); socket.triggerMessage(JSON.stringify('pong')); expect(messageReceived).to.be.true; subject.unsubscribe(); }); it('should handle constructor errors if no WebSocketCtor', () => { expect(() => { const subject = webSocket({ url: 'ws://mysocket' }); }).to.throw('no WebSocket constructor can be found'); }); }); }); class MockWebSocket { static sockets: Array = []; static get lastSocket(): MockWebSocket { const socket = MockWebSocket.sockets; const length = socket.length; return length > 0 ? socket[length - 1] : undefined!; } static clearSockets(): void { MockWebSocket.sockets.length = 0; } sent: string[] = []; handlers: any = {}; readyState: WebSocketState = WebSocketState.CONNECTING; closeCode: any; closeReason: any; binaryType?: string; constructor(public url: string, public protocol: string) { MockWebSocket.sockets.push(this); } send(data: string): void { this.sent.push(data); } get lastMessageSent(): string { const sent = this.sent; const length = sent.length; return length > 0 ? sent[length - 1] : undefined!; } triggerClose(e: Partial): void { this.readyState = WebSocketState.CLOSED; this.trigger('close', e); } triggerMessage(data: any): void { const messageEvent = { data: data, origin: 'mockorigin', ports: undefined as any, source: root, }; this.trigger('message', messageEvent); } open(): void { this.readyState = WebSocketState.OPEN; this.trigger('open', {}); } close(code: any, reason: any): void { if (this.readyState < WebSocketState.CLOSING) { this.readyState = WebSocketState.CLOSING; this.closeCode = code; this.closeReason = reason; } } trigger(this: any, name: string, e: any) { if (this['on' + name]) { this['on' + name](e); } const lookup = this.handlers[name]; if (lookup) { for (let i = 0; i < lookup.length; i++) { lookup[i](e); } } } } rxjs-7.5.7/spec/observables/empty-spec.ts000066400000000000000000000025571431412030200204160ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { empty, EMPTY } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {empty} */ describe('empty', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should return EMPTY', () => { expect(empty()).to.equal(EMPTY); }); it('should create a cold observable with only complete', () => { rxTestScheduler.run(({ expectObservable }) => { const expected = '|'; const e1 = empty(); expectObservable(e1).toBe(expected); }); }); it('should return the same instance EMPTY', () => { const s1 = empty(); const s2 = empty(); expect(s1).to.equal(s2); }); it('should be synchronous by default', () => { const source = empty(); let hit = false; source.subscribe({ complete() { hit = true; }, }); expect(hit).to.be.true; }); it('should equal EMPTY', () => { expect(empty()).to.equal(EMPTY); }); it('should take a scheduler', () => { const source = empty(rxTestScheduler); let hit = false; source.subscribe({ complete() { hit = true; }, }); expect(hit).to.be.false; rxTestScheduler.flush(); expect(hit).to.be.true; }); }); rxjs-7.5.7/spec/observables/forkJoin-spec.ts000066400000000000000000000457331431412030200210440ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { finalize, forkJoin, map, of, timer } from 'rxjs'; import { lowerCaseO } from '../helpers/test-helper'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {forkJoin} */ describe('forkJoin', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should join the last values of the provided observables into an array', () => { rxTestScheduler.run(({ hot, cold, expectObservable }) => { const s1 = hot(' -a--b-----c-d-e-|'); const s2 = hot(' --------f--g-h-i--j-|'); const s3 = cold(' --1--2-3-4---|'); const e1 = forkJoin([s1, s2, s3]); const expected = '--------------------(x|)'; expectObservable(e1).toBe(expected, { x: ['e', 'j', '4'] }); }); }); it('should support a resultSelector with an Array of ObservableInputs', () => { const results: Array = []; forkJoin([of(1, 2, 3), of(4, 5, 6), of(7, 8, 9)], (a: number, b: number, c: number) => a + b + c).subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { results.push('done'); }, }); expect(results).to.deep.equal([18, 'done']); }); it('should support a resultSelector with a spread of ObservableInputs', () => { const results: Array = []; forkJoin(of(1, 2, 3), of(4, 5, 6), of(7, 8, 9), (a: number, b: number, c: number) => a + b + c).subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { results.push('done'); }, }); expect(results).to.deep.equal([18, 'done']); }); it('should accept single observable', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin(hot('--a--b--c--d--|')); const expected = ' --------------(x|)'; expectObservable(e1).toBe(expected, { x: ['d'] }); }); }); describe('forkJoin([input1, input2, input3])', () => { it('should join the last values of the provided observables into an array', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot(' --a--b--c--d--|'); const s2 = hot(' (b|)'); const s3 = hot(' --1--2--3--|'); const e1 = forkJoin([s1, s2, s3]); const expected = '--------------(x|)'; expectObservable(e1).toBe(expected, { x: ['d', 'b', '3'] }); }); }); it('should allow emit null or undefined', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e2 = forkJoin([ hot(' --a--b--c--d--|', { d: null }), hot(' (b|)'), hot(' --1--2--3--|'), hot(' -----r--t--u--|', { u: undefined }), ]); const expected2 = '--------------(x|)'; expectObservable(e2).toBe(expected2, { x: [null, 'b', '3', undefined] }); }); }); it('should accept array of observable contains single', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot(' --a--b--c--d--|'); const e1 = forkJoin([s1]); const expected = '--------------(x|)'; expectObservable(e1).toBe(expected, { x: ['d'] }); }); }); it('should accept lowercase-o observables', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot(' --a--b--c--d--|'); const s2 = hot(' (b|)'); const s3 = lowerCaseO('1', '2', '3'); const e1 = forkJoin([s1, s2, s3]); const expected = '--------------(x|)'; expectObservable(e1).toBe(expected, { x: ['d', 'b', '3'] }); }); }); it('should accept empty lowercase-o observables', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot(' --a--b--c--d--|'); const s2 = hot(' (b|)'); const s3 = lowerCaseO(); const e1 = forkJoin([s1, s2, s3]); const expected = '|'; expectObservable(e1).toBe(expected); }); }); it('should accept promise', (done) => { rxTestScheduler.run(() => { const e1 = forkJoin([of(1), Promise.resolve(2)]); e1.subscribe({ next: (x) => expect(x).to.deep.equal([1, 2]), complete: done, }); }); }); it('should accept array of observables', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot(' --a--b--c--d--|'); const s2 = hot(' (b|)'); const s3 = hot(' --1--2--3--|'); const e1 = forkJoin([s1, s2, s3]); const expected = '--------------(x|)'; expectObservable(e1).toBe(expected, { x: ['d', 'b', '3'] }); }); }); it('should not emit if any of source observable is empty', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot(' --a--b--c--d--|'); const s2 = hot(' (b|)'); const s3 = hot(' ------------------|'); const e1 = forkJoin([s1, s2, s3]); const expected = '------------------|'; expectObservable(e1).toBe(expected); }); }); it('should complete early if any of source is empty and completes before than others', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot(' --a--b--c--d--|'); const s2 = hot(' (b|)'); const s3 = hot(' ---------|'); const e1 = forkJoin([s1, s2, s3]); const expected = '---------|'; expectObservable(e1).toBe(expected); }); }); it('should complete when all sources are empty', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot(' --------------|'); const s2 = hot(' ---------|'); const e1 = forkJoin([s1, s2]); const expected = '---------|'; expectObservable(e1).toBe(expected); }); }); it('should not complete when only source never completes', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin([hot('--------------')]); const expected = ' --------------'; expectObservable(e1).toBe(expected); }); }); it('should not complete when one of the sources never completes', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot('--------------'); const s2 = hot('-a---b--c--|'); const e1 = forkJoin([s1, s2]); const expected = '-'; expectObservable(e1).toBe(expected); }); }); it('should complete when one of the sources never completes but other completes without values', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot(' --------------'); const s2 = hot(' ------|'); const e1 = forkJoin([s1, s2]); const expected = '------|'; expectObservable(e1).toBe(expected); }); }); it('should complete if source is not provided', () => { rxTestScheduler.run(({ expectObservable }) => { const e1 = forkJoin(); const expected = '|'; expectObservable(e1).toBe(expected); }); }); it('should complete if sources list is empty', () => { rxTestScheduler.run(({ expectObservable }) => { const e1 = forkJoin([]); const expected = '|'; expectObservable(e1).toBe(expected); }); }); it('should raise error when any of source raises error with empty observable', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot(' ------#'); const s2 = hot(' ---------|'); const e1 = forkJoin([s1, s2]); const expected = '------#'; expectObservable(e1).toBe(expected); }); }); it('should raise error when any of source raises error with source that never completes', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot(' ------#'); const s2 = hot(' ----------'); const e1 = forkJoin([s1, s2]); const expected = '------#'; expectObservable(e1).toBe(expected); }); }); it('should raise error when source raises error', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const s1 = hot(' ------#'); const s2 = hot(' ---a-----|'); const e1 = forkJoin([s1, s2]); const expected = '------#'; expectObservable(e1).toBe(expected); }); }); it('should allow unsubscribing early and explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot('---e-^---f--g---h-|'); const e2subs = ' ^--------! '; const expected = ' ---------- '; const unsub = ' ---------! '; const result = forkJoin([e1, e2]); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should unsubscribe other Observables, when one of them errors', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot('---e-^---f--g-#'); const e2subs = ' ^--------! '; const expected = ' ---------# '; const result = forkJoin([e1, e2]); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); }); it('should finalize in the proper order', () => { const results: any[] = []; const source = forkJoin( [1, 2, 3, 4].map((n) => timer(100, rxTestScheduler).pipe( map(() => n), finalize(() => results.push(`finalized ${n}`)) ) ) ); source.subscribe((value) => results.push(value)); rxTestScheduler.flush(); expect(results).to.deep.equal(['finalized 1', 'finalized 2', 'finalized 3', 'finalized 4', [1, 2, 3, 4]]); }); describe('forkJoin({ foo, bar, baz })', () => { it('should join the last values of the provided observables into an array', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ foo: hot(' --a--b--c--d--|'), bar: hot(' (b|)'), baz: hot(' --1--2--3--|'), }); const expected = '--------------(x|)'; expectObservable(e1).toBe(expected, { x: { foo: 'd', bar: 'b', baz: '3' } }); }); }); it('should allow emit null or undefined', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e2 = forkJoin({ foo: hot(' --a--b--c--d--|', { d: null }), bar: hot(' (b|)'), baz: hot(' --1--2--3--|'), qux: hot(' -----r--t--u--|', { u: undefined }), }); const expected2 = '--------------(x|)'; expectObservable(e2).toBe(expected2, { x: { foo: null, bar: 'b', baz: '3', qux: undefined } }); }); }); it('should accept array of observable contains single', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ foo: hot(' --a--b--c--d--|'), }); const expected = '--------------(x|)'; expectObservable(e1).toBe(expected, { x: { foo: 'd' } }); }); }); it('should accept lowercase-o observables', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ foo: hot(' --a--b--c--d--|'), bar: hot(' (b|)'), baz: lowerCaseO('1', '2', '3'), }); const expected = '--------------(x|)'; expectObservable(e1).toBe(expected, { x: { foo: 'd', bar: 'b', baz: '3' } }); }); }); it('should accept empty lowercase-o observables', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ foo: hot(' --a--b--c--d--|'), bar: hot(' (b|)'), baz: lowerCaseO(), }); const expected = '|'; expectObservable(e1).toBe(expected); }); }); it('should accept promise', (done) => { const e1 = forkJoin({ foo: of(1), bar: Promise.resolve(2), }); e1.subscribe({ next: (x) => expect(x).to.deep.equal({ foo: 1, bar: 2 }), complete: done, }); }); it('should accept an object of observables', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ foo: hot(' --a--b--c--d--|'), bar: hot(' (b|)'), baz: hot(' --1--2--3--|'), }); const expected = '--------------(x|)'; expectObservable(e1).toBe(expected, { x: { foo: 'd', bar: 'b', baz: '3' } }); }); }); it('should not emit if any of source observable is empty', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ foo: hot(' --a--b--c--d--|'), bar: hot(' (b|)'), baz: hot(' ------------------|'), }); const expected = '------------------|'; expectObservable(e1).toBe(expected); }); }); // TODO: This seems odd. Filed an issue for discussion here: https://github.com/ReactiveX/rxjs/issues/5561 it('should complete early if any of source is empty and completes before than others', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ foo: hot(' --a--b--c--d--|'), bar: hot(' (b|)'), baz: hot(' ---------|'), }); const expected = '---------|'; expectObservable(e1).toBe(expected); }); }); it('should complete when all sources are empty', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ foo: hot(' --------------|'), bar: hot(' ---------|'), }); const expected = '---------|'; expectObservable(e1).toBe(expected); }); }); it('should not complete when only source never completes', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ foo: hot(' --------------'), }); const expected = '--------------'; expectObservable(e1).toBe(expected); }); }); it('should not complete when one of the sources never completes', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ foo: hot(' --------------'), bar: hot(' -a---b--c--|'), }); const expected = '--------------'; expectObservable(e1).toBe(expected); }); }); it('should complete when one of the sources never completes but other completes without values', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ foo: hot(' --------------'), bar: hot(' ------|'), }); const expected = '------|'; expectObservable(e1).toBe(expected); }); }); // TODO(benlesh): this is the wrong behavior, it should probably throw right away. it('should have same v5/v6 throwing behavior full argument of null', (done) => { rxTestScheduler.run(() => { // It doesn't throw when you pass null expect(() => forkJoin(null as any)).not.to.throw(); // It doesn't even throw if you subscribe to forkJoin(null). expect(() => forkJoin(null as any).subscribe({ // It sends the error to the subscription. error: () => done(), }) ).not.to.throw(); }); }); it('should complete if sources object is empty', () => { rxTestScheduler.run(({ expectObservable }) => { const e1 = forkJoin({}); const expected = '|'; expectObservable(e1).toBe(expected); }); }); it('should raise error when any of source raises error with empty observable', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ lol: hot(' ------#'), wut: hot(' ---------|'), }); const expected = '------#'; expectObservable(e1).toBe(expected); }); }); it('should raise error when any of source raises error with source that never completes', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ lol: hot(' ------#'), wut: hot(' ----------'), }); const expected = '------#'; expectObservable(e1).toBe(expected); }); }); it('should raise error when source raises error', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const e1 = forkJoin({ lol: hot(' ------#'), foo: hot(' ---a-----|'), }); const expected = '------#'; expectObservable(e1).toBe(expected); }); }); it('should allow unsubscribing early and explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot('---e-^---f--g---h-|'); const e2subs = ' ^--------! '; const expected = ' ---------- '; const unsub = ' ---------! '; const result = forkJoin({ e1, e2, }); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should unsubscribe other Observables, when one of them errors', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot(' ---e-^---f--g-#'); const e2subs = ' ^--------! '; const expected = ' ---------# '; const result = forkJoin({ e1, e2, }); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should accept promise as the first arg', (done) => { const e1 = forkJoin(Promise.resolve(1)); const values: number[][] = []; e1.subscribe({ next: (x) => values.push(x), complete: () => { expect(values).to.deep.equal([[1]]); done(); }, }); }); }); }); rxjs-7.5.7/spec/observables/from-promise-spec.ts000066400000000000000000000112711431412030200216700ustar00rootroot00000000000000import { expect } from 'chai'; import * as sinon from 'sinon'; import { asapScheduler, from } from 'rxjs'; declare const process: any; /** @test {fromPromise} */ describe('from (fromPromise)', () => { it('should emit one value from a resolved promise', (done) => { const promise = Promise.resolve(42); from(promise) .subscribe( { next: (x) => { expect(x).to.equal(42); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); } }); }); it('should raise error from a rejected promise', (done) => { const promise = Promise.reject('bad'); from(promise) .subscribe({ next: (x) => { done(new Error('should not be called')); }, error: (e) => { expect(e).to.equal('bad'); done(); }, complete: () => { done(new Error('should not be called')); } }); }); it('should share the underlying promise with multiple subscribers', (done) => { const promise = Promise.resolve(42); const observable = from(promise); observable .subscribe( { next: (x) => { expect(x).to.equal(42); }, error: (x) => { done(new Error('should not be called')); } }); setTimeout(() => { observable .subscribe( { next: (x) => { expect(x).to.equal(42); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); } }); }); }); it('should accept already-resolved Promise', (done) => { const promise = Promise.resolve(42); promise.then((x) => { expect(x).to.equal(42); from(promise) .subscribe( { next: (y) => { expect(y).to.equal(42); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); } }); }, () => { done(new Error('should not be called')); }); }); it('should accept PromiseLike object for interoperability', (done) => { class CustomPromise implements PromiseLike { constructor(private promise: PromiseLike) { } then( onFulfilled?: ((value: T) => TResult1 | PromiseLike) | undefined | null, onRejected?: ((reason: any) => TResult2 | PromiseLike) | undefined | null): PromiseLike { return new CustomPromise(this.promise.then(onFulfilled, onRejected)); } } const promise = new CustomPromise(Promise.resolve(42)); from(promise) .subscribe( { next: (x) => { expect(x).to.equal(42); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); } }); }); it('should emit a value from a resolved promise on a separate scheduler', (done) => { const promise = Promise.resolve(42); from(promise, asapScheduler) .subscribe( { next: (x) => { expect(x).to.equal(42); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); } }); }); it('should raise error from a rejected promise on a separate scheduler', (done) => { const promise = Promise.reject('bad'); from(promise, asapScheduler) .subscribe( { next: (x) => { done(new Error('should not be called')); }, error: (e) => { expect(e).to.equal('bad'); done(); }, complete: () => { done(new Error('should not be called')); } }); }); it('should share the underlying promise with multiple subscribers on a separate scheduler', (done) => { const promise = Promise.resolve(42); const observable = from(promise, asapScheduler); observable .subscribe( { next: (x) => { expect(x).to.equal(42); }, error: (x) => { done(new Error('should not be called')); } }); setTimeout(() => { observable .subscribe( { next: (x) => { expect(x).to.equal(42); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); } }); }); }); it('should not emit, throw or complete if immediately unsubscribed', (done) => { const nextSpy = sinon.spy(); const throwSpy = sinon.spy(); const completeSpy = sinon.spy(); const promise = Promise.resolve(42); const subscription = from(promise) .subscribe({ next: nextSpy, error: throwSpy, complete: completeSpy }); subscription.unsubscribe(); setTimeout(() => { expect(nextSpy).not.have.been.called; expect(throwSpy).not.have.been.called; expect(completeSpy).not.have.been.called; done(); }); }); }); rxjs-7.5.7/spec/observables/from-spec.ts000066400000000000000000000256071431412030200202240ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { TestScheduler } from 'rxjs/testing'; import { asyncScheduler, of, from, Observer, observable, Subject, noop, Subscription } from 'rxjs'; import { first, concatMap, delay, take, tap } from 'rxjs/operators'; import { ReadableStream } from 'web-streams-polyfill'; import { observableMatcher } from '../helpers/observableMatcher'; function getArguments(...args: T[]) { return arguments; } /** @test {from} */ describe('from', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should create an observable from an array', () => { rxTestScheduler.run(({ expectObservable, time }) => { const delayTime = time('--|'); // --| // --| const expected = 'x-y-(z|)'; const e1 = from([10, 20, 30]).pipe( // for the purpose of making a nice diagram, spread out the synchronous emissions concatMap((x, i) => of(x).pipe(delay(i === 0 ? 0 : delayTime))) ); expectObservable(e1).toBe(expected, { x: 10, y: 20, z: 30 }); }); }); it('should throw for non observable object', () => { const r = () => { // tslint:disable-next-line:no-any needed for the test from({} as any).subscribe(); }; expect(r).to.throw(); }); it('should finalize an AsyncGenerator', (done) => { const results: any[] = []; const sideEffects: any[] = []; async function* gen() { try { let i = 0; while (true) { sideEffects.push(i); yield await i++; } } finally { results.push('finalized generator'); } } const source = from(gen()).pipe(take(3)); source.subscribe({ next: (value) => results.push(value), complete: () => { results.push('done'); setTimeout(() => { expect(sideEffects).to.deep.equal([0, 1, 2]); expect(results).to.deep.equal([0, 1, 2, 'done', 'finalized generator']); done(); }); }, }); }); it('should finalize an AsyncGenerator on error', (done) => { const results: any[] = []; const sideEffects: any[] = []; async function* gen() { try { let i = 0; while (true) { sideEffects.push(i); yield await i++; } } finally { results.push('finalized generator'); } } const source = from(gen()).pipe( tap({ next: (value) => { if (value === 2) { throw new Error('weee'); } }, }) ); source.subscribe({ next: (value) => results.push(value), error: () => { results.push('in error'); setTimeout(() => { expect(sideEffects).to.deep.equal([0, 1, 2]); expect(results).to.deep.equal([0, 1, 'in error', 'finalized generator']); done(); }); }, }); }); it('should finalize an AsyncGenerator on unsubscribe', (done) => { const results: any[] = []; const sideEffects: any[] = []; let subscription: Subscription; async function* gen() { try { let i = 0; while (true) { sideEffects.push(i); yield await i++; if (i === 2) { subscription.unsubscribe(); } } } finally { results.push('finalized generator'); expect(sideEffects).to.deep.equal([0, 1, 2]); expect(results).to.deep.equal([0, 1, 'finalized generator']); done(); } } const source = from(gen()); subscription = source.subscribe((value) => results.push(value)); }); it('should finalize a generator', () => { const results: any[] = []; function* gen() { try { let i = 0; while (true) { yield i++; } } finally { results.push('finalized generator'); } } const source = from(gen()).pipe(take(3)); source.subscribe({ next: (value) => results.push(value), complete: () => results.push('done'), }); expect(results).to.deep.equal([0, 1, 2, 'done', 'finalized generator']); }); const fakervable = (...values: T[]) => ({ [observable]: () => ({ subscribe: (observer: Observer) => { for (const value of values) { observer.next(value); } observer.complete(); }, }), }); const fakeArrayObservable = (...values: T[]) => { let arr: any = ['bad array!']; arr[observable] = () => { return { subscribe: (observer: Observer) => { for (const value of values) { observer.next(value); } observer.complete(); }, }; }; return arr; }; const fakerator = (...values: T[]) => ({ [Symbol.iterator as symbol]: () => { const clone = [...values]; return { next: () => ({ done: clone.length <= 0, value: clone.shift(), }), }; }, }); // tslint:disable-next-line:no-any it's silly to define all of these types. const sources: Array<{ name: string; createValue: () => any }> = [ { name: 'observable', createValue: () => of('x') }, { name: 'observable-like', createValue: () => fakervable('x') }, { name: 'observable-like-array', createValue: () => fakeArrayObservable('x') }, { name: 'array', createValue: () => ['x'] }, { name: 'promise', createValue: () => Promise.resolve('x') }, { name: 'iterator', createValue: () => fakerator('x') }, { name: 'array-like', createValue: () => ({ [0]: 'x', length: 1 }) }, // ReadableStreams are not lazy, so we have to have this createValue() thunk // so that each tests gets a new one. { name: 'readable-stream-like', createValue: () => new ReadableStream({ pull(controller) { controller.enqueue('x'); controller.close(); }, }), }, { name: 'string', createValue: () => 'x' }, { name: 'arguments', createValue: () => getArguments('x') }, ]; if (Symbol && Symbol.asyncIterator) { const fakeAsyncIterator = (...values: any[]) => { return { [Symbol.asyncIterator]() { let i = 0; return { next() { const index = i++; if (index < values.length) { return Promise.resolve({ done: false, value: values[index] }); } else { return Promise.resolve({ done: true }); } }, [Symbol.asyncIterator]() { return this; }, }; }, }; }; sources.push({ name: 'async-iterator', createValue: () => fakeAsyncIterator('x'), }); } for (const source of sources) { it(`should accept ${source.name}`, (done) => { let nextInvoked = false; from(source.createValue()).subscribe({ next: (x) => { nextInvoked = true; expect(x).to.equal('x'); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { expect(nextInvoked).to.equal(true); done(); }, }); }); it(`should accept ${source.name} and scheduler`, (done) => { let nextInvoked = false; from(source.createValue(), asyncScheduler).subscribe({ next: (x) => { nextInvoked = true; expect(x).to.equal('x'); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { expect(nextInvoked).to.equal(true); done(); }, }); expect(nextInvoked).to.equal(false); }); it(`should accept a function that implements [Symbol.observable]`, (done) => { const subject = new Subject(); const handler: any = (arg: any) => subject.next(arg); handler[observable] = () => subject; let nextInvoked = false; from(handler as any) .pipe(first()) .subscribe({ next: (x) => { nextInvoked = true; expect(x).to.equal('x'); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { expect(nextInvoked).to.equal(true); done(); }, }); handler('x'); }); it('should accept a thennable that happens to have a subscribe method', (done) => { // There was an issue with our old `isPromise` check that caused this to fail const input = Promise.resolve('test'); (input as any).subscribe = noop; from(input).subscribe({ next: (x) => { expect(x).to.equal('test'); done(); }, }); }); } it('should appropriately handle errors from an iterator', () => { const erroringIterator = (function* () { for (let i = 0; i < 5; i++) { if (i === 3) { throw new Error('bad'); } yield i; } })(); const results: any[] = []; from(erroringIterator).subscribe({ next: (x) => results.push(x), error: (err) => results.push(err.message), }); expect(results).to.deep.equal([0, 1, 2, 'bad']); }); it('should execute the finally block of a generator', () => { let finallyExecuted = false; const generator = (function* () { try { yield 'hi'; } finally { finallyExecuted = true; } })(); from(generator).subscribe(); expect(finallyExecuted).to.be.true; }); it('should support ReadableStream-like objects', (done) => { const input = [0, 1, 2]; const output: number[] = []; const readableStream = new ReadableStream({ pull(controller) { if (input.length > 0) { controller.enqueue(input.shift()); if (input.length === 0) { controller.close(); } } }, }); from(readableStream).subscribe({ next: (value) => { output.push(value); expect(readableStream.locked).to.equal(true); }, complete: () => { expect(output).to.deep.equal([0, 1, 2]); expect(readableStream.locked).to.equal(false); done(); }, }); }); it('should lock and release ReadableStream-like objects', (done) => { const input = [0, 1, 2]; const output: number[] = []; const readableStream = new ReadableStream({ pull(controller) { if (input.length > 0) { controller.enqueue(input.shift()); if (input.length === 0) { controller.close(); } } }, }); from(readableStream).subscribe({ next: (value) => { output.push(value); expect(readableStream.locked).to.equal(true); }, complete: () => { expect(output).to.deep.equal([0, 1, 2]); expect(readableStream.locked).to.equal(false); done(); }, }); }); }); rxjs-7.5.7/spec/observables/fromEvent-spec.ts000066400000000000000000000275721431412030200212310ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { fromEvent, NEVER, timer } from 'rxjs'; import { mapTo, take, concat } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {fromEvent} */ describe('fromEvent', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should create an observable of click on the element', () => { rxTestScheduler.run(({ expectObservable, time }) => { const delay1 = time('-----| '); const delay2 = time(' --| '); const expected = ' -----x-x---'; const target = { addEventListener: (eventType: any, listener: any) => { timer(delay1, delay2).pipe(mapTo('ev'), take(2), concat(NEVER)).subscribe(listener); }, removeEventListener: (): void => void 0, dispatchEvent: (): void => void 0, }; const e1 = fromEvent(target as any, 'click'); expectObservable(e1).toBe(expected, { x: 'ev' }); }); }); it('should setup an event observable on objects with "on" and "off" ', () => { let onEventName; let onHandler; let offEventName; let offHandler; const obj = { on: (a: string, b: Function) => { onEventName = a; onHandler = b; }, off: (a: string, b: Function) => { offEventName = a; offHandler = b; }, }; const subscription = fromEvent(obj, 'click').subscribe(() => { //noop }); subscription.unsubscribe(); expect(onEventName).to.equal('click'); expect(typeof onHandler).to.equal('function'); expect(offEventName).to.equal(onEventName); expect(offHandler).to.equal(onHandler); }); it('should setup an event observable on objects with "addEventListener" and "removeEventListener" ', () => { let onEventName; let onHandler; let offEventName; let offHandler; const obj = { addEventListener: (a: string, b: EventListenerOrEventListenerObject, useCapture?: boolean) => { onEventName = a; onHandler = b; }, removeEventListener: (a: string, b: EventListenerOrEventListenerObject, useCapture?: boolean) => { offEventName = a; offHandler = b; }, }; const subscription = fromEvent(obj, 'click').subscribe(() => { //noop }); subscription.unsubscribe(); expect(onEventName).to.equal('click'); expect(typeof onHandler).to.equal('function'); expect(offEventName).to.equal(onEventName); expect(offHandler).to.equal(onHandler); }); it('should setup an event observable on objects with "addListener" and "removeListener" returning event emitter', () => { let onEventName; let onHandler; let offEventName; let offHandler; const obj = { addListener(a: string | symbol, b: (...args: any[]) => void) { onEventName = a; onHandler = b; return this; }, removeListener(a: string | symbol, b: (...args: any[]) => void) { offEventName = a; offHandler = b; return this; }, }; const subscription = fromEvent(obj, 'click').subscribe(() => { //noop }); subscription.unsubscribe(); expect(onEventName).to.equal('click'); expect(typeof onHandler).to.equal('function'); expect(offEventName).to.equal(onEventName); expect(offHandler).to.equal(onHandler); }); it('should setup an event observable on objects with "addListener" and "removeListener" returning nothing', () => { let onEventName; let onHandler; let offEventName; let offHandler; const obj = { addListener(a: string, b: (...args: any[]) => any, context?: any): { context: any } { onEventName = a; onHandler = b; return { context: '' }; }, removeListener(a: string, b: (...args: any[]) => void) { offEventName = a; offHandler = b; }, }; const subscription = fromEvent(obj, 'click').subscribe(() => { //noop }); subscription.unsubscribe(); expect(onEventName).to.equal('click'); expect(typeof onHandler).to.equal('function'); expect(offEventName).to.equal(onEventName); expect(offHandler).to.equal(onHandler); }); it('should setup an event observable on objects with "addListener" and "removeListener" and "length" ', () => { let onEventName; let onHandler; let offEventName; let offHandler; const obj = { addListener: (a: string, b: Function) => { onEventName = a; onHandler = b; }, removeListener: (a: string, b: Function) => { offEventName = a; offHandler = b; }, length: 1, }; const subscription = fromEvent(obj, 'click').subscribe(() => { //noop }); subscription.unsubscribe(); expect(onEventName).to.equal('click'); expect(typeof onHandler).to.equal('function'); expect(offEventName).to.equal(onEventName); expect(offHandler).to.equal(onHandler); }); it('should throw if passed an invalid event target', () => { const obj = { addListener: () => { //noop }, }; expect(() => { fromEvent(obj as any, 'click'); }).to.throw(/Invalid event target/); }); it('should pass through options to addEventListener and removeEventListener', () => { let onOptions; let offOptions; const expectedOptions = { capture: true, passive: true }; const obj = { addEventListener: (a: string, b: EventListenerOrEventListenerObject, c?: any) => { onOptions = c; }, removeEventListener: (a: string, b: EventListenerOrEventListenerObject, c?: any) => { offOptions = c; }, }; const subscription = fromEvent(obj, 'click', expectedOptions).subscribe(() => { //noop }); subscription.unsubscribe(); expect(onOptions).to.equal(expectedOptions); expect(offOptions).to.equal(expectedOptions); }); it('should pass through events that occur', (done) => { let send: any; const obj = { on: (name: string, handler: Function) => { send = handler; }, off: () => { //noop }, }; fromEvent(obj, 'click') .pipe(take(1)) .subscribe({ next: (e: any) => { expect(e).to.equal('test'); }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); send('test'); }); it('should pass through events that occur and use the selector if provided', (done) => { let send: any; const obj = { on: (name: string, handler: Function) => { send = handler; }, off: () => { //noop }, }; function selector(x: string) { return x + '!'; } fromEvent(obj, 'click', selector) .pipe(take(1)) .subscribe({ next: (e: any) => { expect(e).to.equal('test!'); }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); send('test'); }); it('should not fail if no event arguments are passed and the selector does not return', (done) => { let send: any; const obj = { on: (name: string, handler: Function) => { send = handler; }, off: () => { //noop }, }; function selector() { //noop } fromEvent(obj, 'click', selector) .pipe(take(1)) .subscribe({ next: (e: any) => { expect(e).not.exist; }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); send(); }); it('should return a value from the selector if no event arguments are passed', (done) => { let send: any; const obj = { on: (name: string, handler: Function) => { send = handler; }, off: () => { //noop }, }; function selector() { return 'no arguments'; } fromEvent(obj, 'click', selector) .pipe(take(1)) .subscribe({ next: (e: any) => { expect(e).to.equal('no arguments'); }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); send(); }); it('should pass multiple arguments to selector from event emitter', (done) => { let send: any; const obj = { on: (name: string, handler: Function) => { send = handler; }, off: () => { //noop }, }; function selector(x: number, y: number, z: number) { return [].slice.call(arguments); } fromEvent(obj, 'click', selector) .pipe(take(1)) .subscribe({ next: (e: any) => { expect(e).to.deep.equal([1, 2, 3]); }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); send(1, 2, 3); }); it('should emit multiple arguments from event as an array', (done) => { let send: any; const obj = { on: (name: string, handler: Function) => { send = handler; }, off: () => { //noop }, }; fromEvent(obj, 'click') .pipe(take(1)) .subscribe({ next: (e: any) => { expect(e).to.deep.equal([1, 2, 3]); }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); send(1, 2, 3); }); it('should not throw an exception calling toString on obj with a null prototype', (done) => { // NOTE: Can not test with Object.create(null) or `class Foo extends null` // due to TypeScript bug. https://github.com/Microsoft/TypeScript/issues/1108 class NullProtoEventTarget { on() { /*noop*/ } off() { /*noop*/ } } NullProtoEventTarget.prototype.toString = null!; const obj: NullProtoEventTarget = new NullProtoEventTarget(); expect(() => { fromEvent(obj, 'foo').subscribe(); done(); }).to.not.throw(TypeError); }); it('should handle adding events to an arraylike of targets', () => { const nodeList = { [0]: { addEventListener(...args: any[]) { this._addEventListenerArgs = args; }, removeEventListener(...args: any[]) { this._removeEventListenerArgs = args; }, _addEventListenerArgs: null as any, _removeEventListenerArgs: null as any, }, [1]: { addEventListener(...args: any[]) { this._addEventListenerArgs = args; }, removeEventListener(...args: any[]) { this._removeEventListenerArgs = args; }, _addEventListenerArgs: null as any, _removeEventListenerArgs: null as any, }, length: 2, }; const options = {}; const subscription = fromEvent(nodeList, 'click', options).subscribe(); expect(nodeList[0]._addEventListenerArgs[0]).to.equal('click'); expect(nodeList[0]._addEventListenerArgs[1]).to.be.a('function'); expect(nodeList[0]._addEventListenerArgs[2]).to.equal(options); expect(nodeList[1]._addEventListenerArgs[0]).to.equal('click'); expect(nodeList[1]._addEventListenerArgs[1]).to.be.a('function'); expect(nodeList[1]._addEventListenerArgs[2]).to.equal(options); expect(nodeList[0]._removeEventListenerArgs).to.be.null; expect(nodeList[1]._removeEventListenerArgs).to.be.null; subscription.unsubscribe(); expect(nodeList[0]._removeEventListenerArgs).to.deep.equal(nodeList[0]._addEventListenerArgs); expect(nodeList[1]._removeEventListenerArgs).to.deep.equal(nodeList[1]._addEventListenerArgs); }); }); rxjs-7.5.7/spec/observables/fromEventPattern-spec.ts000066400000000000000000000100761431412030200225560ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import * as sinon from 'sinon'; import { fromEventPattern, noop, NEVER, timer } from 'rxjs'; import { mapTo, take, concat } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {fromEventPattern} */ describe('fromEventPattern', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should create an observable from the handler API', () => { rxTestScheduler.run(({ time, expectObservable }) => { const time1 = time('-----| '); const time2 = time(' --| '); const expected = ' -----x-x---'; function addHandler(h: any) { timer(time1, time2, rxTestScheduler).pipe(mapTo('ev'), take(2), concat(NEVER)).subscribe(h); } const e1 = fromEventPattern(addHandler); expectObservable(e1).toBe(expected, { x: 'ev' }); }); }); it('should call addHandler on subscription', () => { const addHandler = sinon.spy(); fromEventPattern(addHandler, noop).subscribe(noop); const call = addHandler.getCall(0); expect(addHandler).calledOnce; expect(call.args[0]).to.be.a('function'); }); it('should call removeHandler on unsubscription', () => { const removeHandler = sinon.spy(); fromEventPattern(noop, removeHandler).subscribe(noop).unsubscribe(); const call = removeHandler.getCall(0); expect(removeHandler).calledOnce; expect(call.args[0]).to.be.a('function'); }); it('should work without optional removeHandler', () => { const addHandler: (h: Function) => any = sinon.spy(); fromEventPattern(addHandler).subscribe(noop); expect(addHandler).calledOnce; }); it('should deliver return value of addHandler to removeHandler as signal', () => { const expected = { signal: true }; const addHandler = () => expected; const removeHandler = sinon.spy(); fromEventPattern(addHandler, removeHandler).subscribe(noop).unsubscribe(); const call = removeHandler.getCall(0); expect(call).calledWith(sinon.match.any, expected); }); it('should send errors in addHandler down the error path', (done) => { fromEventPattern((h: any) => { throw 'bad'; }, noop).subscribe({ next: () => done(new Error('should not be called')), error: (err: any) => { expect(err).to.equal('bad'); done(); }, complete: () => done(new Error('should not be called')), }); }); it('should accept a selector that maps outgoing values', (done) => { let target: any; const trigger = function (...args: any[]) { if (target) { target.apply(null, arguments); } }; const addHandler = (handler: any) => { target = handler; }; const removeHandler = (handler: any) => { target = null; }; const selector = (a: any, b: any) => { return a + b + '!'; }; fromEventPattern(addHandler, removeHandler, selector) .pipe(take(1)) .subscribe({ next: (x: any) => { expect(x).to.equal('testme!'); }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); trigger('test', 'me'); }); it('should send errors in the selector down the error path', (done) => { let target: any; const trigger = (value: any) => { if (target) { target(value); } }; const addHandler = (handler: any) => { target = handler; }; const removeHandler = (handler: any) => { target = null; }; const selector = (x: any) => { throw 'bad'; }; fromEventPattern(addHandler, removeHandler, selector).subscribe({ next: (x: any) => { done(new Error('should not be called')); }, error: (err: any) => { expect(err).to.equal('bad'); done(); }, complete: () => { done(new Error('should not be called')); }, }); trigger('test'); }); }); rxjs-7.5.7/spec/observables/generate-spec.ts000066400000000000000000000126301431412030200210430ustar00rootroot00000000000000/** @prettier */ import { TestScheduler } from 'rxjs/testing'; import { expect } from 'chai'; import { generate } from 'rxjs'; import { take } from 'rxjs/operators'; import { SafeSubscriber } from 'rxjs/internal/Subscriber'; import { observableMatcher } from '../helpers/observableMatcher'; function err(): any { throw 'error'; } describe('generate', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should complete if condition does not meet', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate( 1, (x) => false, (x) => x + 1 ); const expected = '|'; expectObservable(source).toBe(expected); }); }); it('should produce first value immediately', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate( 1, (x) => x == 1, (x) => x + 1 ); const expected = '(1|)'; expectObservable(source).toBe(expected, { '1': 1 }); }); }); it('should produce all values synchronously', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate( 1, (x) => x < 3, (x) => x + 1 ); const expected = '(12|)'; expectObservable(source).toBe(expected, { '1': 1, '2': 2 }); }); }); it('should use result selector', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate( 1, (x) => x < 3, (x) => x + 1, (x) => (x + 1).toString() ); const expected = '(23|)'; expectObservable(source).toBe(expected); }); }); it('should allow omit condition', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate({ initialState: 1, iterate: (x) => x + 1, resultSelector: (x: number) => x.toString(), }).pipe(take(5)); const expected = '(12345|)'; expectObservable(source).toBe(expected); }); }); it('should stop producing when unsubscribed', () => { const source = generate( 1, (x) => x < 4, (x) => x + 1 ); let count = 0; const subscriber = new SafeSubscriber((x) => { count++; if (x == 2) { subscriber.unsubscribe(); } }); source.subscribe(subscriber); expect(count).to.be.equal(2); }); it('should accept a scheduler', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate({ initialState: 1, condition: (x) => x < 4, iterate: (x) => x + 1, resultSelector: (x: number) => x, scheduler: rxTestScheduler, }); const expected = '(123|)'; let count = 0; source.subscribe((x) => count++); expect(count).to.be.equal(0); rxTestScheduler.flush(); expect(count).to.be.equal(3); expectObservable(source).toBe(expected, { '1': 1, '2': 2, '3': 3 }); }); }); it('should allow minimal possible options', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate({ initialState: 1, iterate: (x) => x * 2, }).pipe(take(3)); const expected = '(124|)'; expectObservable(source).toBe(expected, { '1': 1, '2': 2, '4': 4 }); }); }); it('should emit error if result selector throws', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate({ initialState: 1, iterate: (x) => x * 2, resultSelector: err, }); const expected = '(#)'; expectObservable(source).toBe(expected); }); }); it('should emit error if result selector throws on scheduler', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate({ initialState: 1, iterate: (x) => x * 2, resultSelector: err, scheduler: rxTestScheduler, }); const expected = '(#)'; expectObservable(source).toBe(expected); }); }); it('should emit error after first value if iterate function throws', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate({ initialState: 1, iterate: err, }); const expected = '(1#)'; expectObservable(source).toBe(expected, { '1': 1 }); }); }); it('should emit error after first value if iterate function throws on scheduler', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate({ initialState: 1, iterate: err, scheduler: rxTestScheduler, }); const expected = '(1#)'; expectObservable(source).toBe(expected, { '1': 1 }); }); }); it('should emit error if condition function throws', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate({ initialState: 1, iterate: (x) => x + 1, condition: err, }); const expected = '(#)'; expectObservable(source).toBe(expected); }); }); it('should emit error if condition function throws on scheduler', () => { rxTestScheduler.run(({ expectObservable }) => { const source = generate({ initialState: 1, iterate: (x) => x + 1, condition: err, scheduler: rxTestScheduler, }); const expected = '(#)'; expectObservable(source).toBe(expected); }); }); }); rxjs-7.5.7/spec/observables/if-spec.ts000066400000000000000000000065551431412030200176600ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { iif, of } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; describe('iif', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should subscribe to thenSource when the conditional returns true', () => { rxTestScheduler.run(({ expectObservable }) => { const e1 = iif(() => true, of('a'), of()); const expected = '(a|)'; expectObservable(e1).toBe(expected); }); }); it('should subscribe to elseSource when the conditional returns false', () => { rxTestScheduler.run(({ expectObservable }) => { const e1 = iif(() => false, of('a'), of('b')); const expected = '(b|)'; expectObservable(e1).toBe(expected); }); }); it('should complete without an elseSource when the conditional returns false', () => { rxTestScheduler.run(({ expectObservable }) => { const e1 = iif(() => false, of('a'), of()); const expected = '|'; expectObservable(e1).toBe(expected); }); }); it('should raise error when conditional throws', () => { rxTestScheduler.run(({ expectObservable }) => { const e1 = iif( (): boolean => { throw 'error'; }, of('a'), of() ); const expected = '#'; expectObservable(e1).toBe(expected); }); }); it('should accept resolved promise as thenSource', (done) => { const expected = 42; const e1 = iif( () => true, new Promise((resolve: any) => { resolve(expected); }), of() ); e1.subscribe({ next: (x) => { expect(x).to.equal(expected); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should accept resolved promise as elseSource', (done) => { const expected = 42; const e1 = iif( () => false, of('a'), new Promise((resolve: any) => { resolve(expected); }) ); e1.subscribe({ next: (x) => { expect(x).to.equal(expected); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should accept rejected promise as elseSource', (done) => { const expected = 42; const e1 = iif( () => false, of('a'), new Promise((resolve: any, reject: any) => { reject(expected); }) ); e1.subscribe({ next: (x) => { done(new Error('should not be called')); }, error: (x) => { expect(x).to.equal(expected); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); it('should accept rejected promise as thenSource', (done) => { const expected = 42; const e1 = iif( () => true, new Promise((resolve: any, reject: any) => { reject(expected); }), of() ); e1.subscribe({ next: (x) => { done(new Error('should not be called')); }, error: (x) => { expect(x).to.equal(expected); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); }); rxjs-7.5.7/spec/observables/interval-spec.ts000066400000000000000000000117011431412030200210730ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { NEVER, interval, asapScheduler, animationFrameScheduler, queueScheduler } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { take, concat } from 'rxjs/operators'; import * as sinon from 'sinon'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {interval} */ describe('interval', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should set up an interval', () => { rxTestScheduler.run(({ expectObservable, time }) => { const period = time('----------| '); // ----------| // ----------| // ----------| // ----------| // ----------| // ----------| const unsubs = ' ---------------------------------------------------------------------------!'; const expected = ' ----------0---------1---------2---------3---------4---------5---------6-----'; expectObservable(interval(period), unsubs).toBe(expected, [0, 1, 2, 3, 4, 5, 6]); }); }); it('should emit when relative interval set to zero', () => { rxTestScheduler.run(({ expectObservable, time }) => { const period = time('| '); const expected = ' (0123456|)'; const e1 = interval(period).pipe(take(7)); expectObservable(e1).toBe(expected, [0, 1, 2, 3, 4, 5, 6]); }); }); it('should consider negative interval as zero', () => { rxTestScheduler.run(({ expectObservable }) => { const expected = '(0123456|)'; const e1 = interval(-1).pipe(take(7)); expectObservable(e1).toBe(expected, [0, 1, 2, 3, 4, 5, 6]); }); }); it('should emit values until unsubscribed', (done) => { const values: number[] = []; const expected = [0, 1, 2, 3, 4, 5, 6]; const e1 = interval(5); const subscription = e1.subscribe({ next: (x: number) => { values.push(x); if (x === 6) { subscription.unsubscribe(); expect(values).to.deep.equal(expected); done(); } }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(new Error('should not be called')); }, }); }); it('should create an observable emitting periodically with the AsapScheduler', (done) => { const sandbox = sinon.createSandbox(); const fakeTimer = sandbox.useFakeTimers(); const period = 10; const events = [0, 1, 2, 3, 4, 5]; const source = interval(period, asapScheduler).pipe(take(6)); source.subscribe({ next(x) { expect(x).to.equal(events.shift()); }, error(e) { sandbox.restore(); done(e); }, complete() { expect(asapScheduler.actions.length).to.equal(0); expect(asapScheduler._scheduled).to.equal(undefined); sandbox.restore(); done(); }, }); let i = -1, n = events.length; while (++i < n) { fakeTimer.tick(period); } }); it('should create an observable emitting periodically with the QueueScheduler', (done) => { const sandbox = sinon.createSandbox(); const fakeTimer = sandbox.useFakeTimers(); const period = 10; const events = [0, 1, 2, 3, 4, 5]; const source = interval(period, queueScheduler).pipe(take(6)); source.subscribe({ next(x) { expect(x).to.equal(events.shift()); }, error(e) { sandbox.restore(); done(e); }, complete() { expect(queueScheduler.actions.length).to.equal(0); expect(queueScheduler._scheduled).to.equal(undefined); sandbox.restore(); done(); }, }); let i = -1, n = events.length; while (++i < n) { fakeTimer.tick(period); } }); it('should create an observable emitting periodically with the AnimationFrameScheduler', (done) => { const sandbox = sinon.createSandbox(); const fakeTimer = sandbox.useFakeTimers(); const period = 10; const events = [0, 1, 2, 3, 4, 5]; const source = interval(period, animationFrameScheduler).pipe(take(6)); source.subscribe({ next(x) { expect(x).to.equal(events.shift()); }, error(e) { sandbox.restore(); done(e); }, complete() { expect(animationFrameScheduler.actions.length).to.equal(0); expect(animationFrameScheduler._scheduled).to.equal(undefined); sandbox.restore(); done(); }, }); let i = -1, n = events.length; while (++i < n) { fakeTimer.tick(period); } }); }); rxjs-7.5.7/spec/observables/merge-spec.ts000066400000000000000000000263241431412030200203550ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { lowerCaseO } from '../helpers/test-helper'; import { TestScheduler } from 'rxjs/testing'; import { merge, of, Observable, defer, asyncScheduler } from 'rxjs'; import { delay } from 'rxjs/operators'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {merge} */ describe('static merge(...observables)', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should merge cold and cold', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----| '); const e1subs = ' ^-------------------! '; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^----------------------!'; const expected = '---a--x--b--y--c--z----|'; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should return itself when try to merge single observable', () => { const e1 = of('a'); const result = merge(e1); expect(e1).to.equal(result); }); it('should merge hot and hot', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---^-b-----c----| '); const e1subs = ' ^------------! '; const e2 = hot(' -----x-^----y-----z----|'); const e2subs = ' ^---------------!'; const expected = ' --b--y--c--z----|'; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge hot and cold', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a-^---b-----c----| '); const e1subs = ' ^--------------! '; const e2 = cold(' --x-----y-----z----|'); const e2subs = ' ^------------------!'; const expected = ' --x-b---y-c---z----|'; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge parallel emissions', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a----b----c----|'); const e1subs = ' ^-----------------!'; const e2 = hot(' ---x----y----z----|'); const e2subs = ' ^-----------------!'; const expected = '---(ax)-(by)-(cz)-|'; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge empty and empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('| '); const e1subs = ' (^!)'; const e2 = cold('| '); const e2subs = ' (^!)'; const expected = '| '; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge three empties', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('| '); const e1subs = ' (^!)'; const e2 = cold('| '); const e2subs = ' (^!)'; const e3 = cold('| '); const e3subs = ' (^!)'; const expected = '| '; const result = merge(e1, e2, e3); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should merge never and empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('- '); const e1subs = ' ^ '; const e2 = cold('| '); const e2subs = ' (^!)'; const expected = '- '; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge never and never', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' -'); const e2subs = ' ^'; const expected = '-'; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge empty and throw', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const e2 = cold(' # '); const e2subs = ' (^!)'; const expected = '#'; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge hot and throw', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' (^!) '; const e2 = cold(' # '); const e2subs = ' (^!) '; const expected = '# '; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge never and throw', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' - '); const e1subs = ' (^!)'; const e2 = cold(' # '); const e2subs = ' (^!)'; const expected = '# '; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge empty and eventual error', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!) '; const e2 = hot(' -------#'); const e2subs = ' ^------!'; const expected = '-------#'; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge hot and error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^------! '; const e2 = hot(' -------# '); const e2subs = ' ^------! '; const expected = '--a--b-# '; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge never and error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --------'); const e1subs = ' ^------!'; const e2 = hot(' -------#'); const e2subs = ' ^------!'; const expected = '-------#'; const result = merge(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge single lowerCaseO into RxJS Observable', () => { rxTestScheduler.run(({ expectObservable }) => { const e1 = lowerCaseO('a', 'b', 'c'); const result = merge(e1); expect(result).to.be.instanceof(Observable); expectObservable(result).toBe('(abc|)'); }); }); it('should merge two lowerCaseO into RxJS Observable', () => { rxTestScheduler.run(({ expectObservable }) => { const e1 = lowerCaseO('a', 'b', 'c'); const e2 = lowerCaseO('d', 'e', 'f'); const result = merge(e1, e2); expect(result).to.be.instanceof(Observable); expectObservable(result).toBe('(abcdef|)'); }); }); }); describe('merge(...observables, Scheduler)', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should merge single lowerCaseO into RxJS Observable', () => { rxTestScheduler.run(({ expectObservable }) => { const e1 = lowerCaseO('a', 'b', 'c'); const result = merge(e1, rxTestScheduler); expect(result).to.be.instanceof(Observable); expectObservable(result).toBe('(abc|)'); }); }); }); describe('merge(...observables, Scheduler, number)', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should handle concurrency limits', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const e1 = cold(' ---a---b---c---| '); const e2 = cold(' -d---e---f--| '); const e3 = cold(' ---x---y---z---|'); const expected = '-d-a-e-b-f-c---x---y---z---|'; expectObservable(merge(e1, e2, e3, 2)).toBe(expected); }); }); it('should handle scheduler', () => { rxTestScheduler.run(({ expectObservable, time }) => { const delayTime = time('--|'); const e1 = of('a'); const e2 = of('b').pipe(delay(delayTime)); const expected = 'a-(b|)'; expectObservable(merge(e1, e2, rxTestScheduler)).toBe(expected); }); }); it('should handle scheduler with concurrency limits', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const e1 = cold(' ---a---b---c---| '); const e2 = cold(' -d---e---f--| '); const e3 = cold(' ---x---y---z---|'); const expected = '-d-a-e-b-f-c---x---y---z---|'; expectObservable(merge(e1, e2, e3, 2, rxTestScheduler)).toBe(expected); }); }); it('should use the scheduler even when one Observable is merged', (done) => { let e1Subscribed = false; const e1 = defer(() => { e1Subscribed = true; return of('a'); }); merge(e1, asyncScheduler).subscribe({ error: done, complete: () => { expect(e1Subscribed).to.be.true; done(); }, }); expect(e1Subscribed).to.be.false; }); it('should deem a single array argument to be an ObservableInput', () => { rxTestScheduler.run(({ expectObservable }) => { const array = ['foo', 'bar']; const expected = '(fb|)'; expectObservable(merge(array)).toBe(expected, { f: 'foo', b: 'bar' }); }); }); }); rxjs-7.5.7/spec/observables/never-spec.ts000066400000000000000000000012701431412030200203660ustar00rootroot00000000000000/** @prettier */ import { NEVER } from 'rxjs'; import { expect } from 'chai'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {NEVER} */ describe('NEVER', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should create a cold observable that never emits', () => { rxTestScheduler.run(({ expectObservable }) => { const expected = '-'; const e1 = NEVER; expectObservable(e1).toBe(expected); }); }); it('should return the same instance every time', () => { expect(NEVER).to.equal(NEVER); }); }); rxjs-7.5.7/spec/observables/of-spec.ts000066400000000000000000000042501431412030200176540ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { of } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { concatMap, delay, concatAll } from 'rxjs/operators'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {of} */ describe('of', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should create a cold observable that emits 1, 2, 3', () => { rxTestScheduler.run(({ expectObservable, time }) => { const delayValue = time('--|'); const e1 = of(1, 2, 3).pipe( // for the purpose of making a nice diagram, spread out the synchronous emissions concatMap((x, i) => of(x).pipe(delay(i === 0 ? 0 : delayValue))) ); const expected = 'x-y-(z|)'; expectObservable(e1).toBe(expected, { x: 1, y: 2, z: 3 }); }); }); it('should create an observable from the provided values', (done) => { const x = { foo: 'bar' }; const expected = [1, 'a', x]; let i = 0; of(1, 'a', x).subscribe({ next: (y: any) => { expect(y).to.equal(expected[i++]); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should emit one value', (done) => { let calls = 0; of(42).subscribe({ next: (x: number) => { expect(++calls).to.equal(1); expect(x).to.equal(42); }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should handle an Observable as the only value', () => { rxTestScheduler.run(({ expectObservable }) => { const source = of(of('a', 'b', 'c')); const result = source.pipe(concatAll()); expectObservable(result).toBe('(abc|)'); }); }); it('should handle many Observable as the given values', () => { rxTestScheduler.run(({ expectObservable }) => { const source = of(of('a', 'b', 'c'), of('d', 'e', 'f')); const result = source.pipe(concatAll()); expectObservable(result).toBe('(abcdef|)'); }); }); }); rxjs-7.5.7/spec/observables/onErrorResumeNext-spec.ts000066400000000000000000000071611431412030200227220ustar00rootroot00000000000000/** @prettier */ import { onErrorResumeNext, of } from 'rxjs'; import { finalize } from 'rxjs/operators'; import { expect } from 'chai'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; describe('onErrorResumeNext', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should continue with observables', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const s1 = hot(' --a--b--# '); const s2 = cold(' --c--d--# '); const s3 = cold(' --e--# '); const s4 = cold(' --f--g--|'); const subs1 = ' ^-------! '; const subs2 = ' --------^-------! '; const subs3 = ' ----------------^----! '; const subs4 = ' ---------------------^-------!'; const expected = '--a--b----c--d----e----f--g--|'; expectObservable(onErrorResumeNext(s1, s2, s3, s4)).toBe(expected); expectSubscriptions(s1.subscriptions).toBe(subs1); expectSubscriptions(s2.subscriptions).toBe(subs2); expectSubscriptions(s3.subscriptions).toBe(subs3); expectSubscriptions(s4.subscriptions).toBe(subs4); }); }); it('should continue array of observables', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const s1 = hot(' --a--b--# '); const s2 = cold(' --c--d--# '); const s3 = cold(' --e--# '); const s4 = cold(' --f--g--|'); const subs1 = ' ^-------! '; const subs2 = ' --------^-------! '; const subs3 = ' ----------------^----! '; const subs4 = ' ---------------------^-------!'; const expected = '--a--b----c--d----e----f--g--|'; expectObservable(onErrorResumeNext([s1, s2, s3, s4])).toBe(expected); expectSubscriptions(s1.subscriptions).toBe(subs1); expectSubscriptions(s2.subscriptions).toBe(subs2); expectSubscriptions(s3.subscriptions).toBe(subs3); expectSubscriptions(s4.subscriptions).toBe(subs4); }); }); it('should complete single observable throws', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('# '); const subs = ' (^!)'; const expected = ' | '; expectObservable(onErrorResumeNext(source)).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should skip invalid sources and move on', () => { const results: any[] = []; onErrorResumeNext(of(1), [2, 3, 4], { notValid: 'LOL' } as any, of(5, 6)).subscribe({ next: (value) => results.push(value), complete: () => results.push('complete'), }); expect(results).to.deep.equal([1, 2, 3, 4, 5, 6, 'complete']); }); it('should call finalize after each sync observable', () => { let results: any[] = []; onErrorResumeNext( of(1).pipe(finalize(() => results.push('finalize 1'))), of(2).pipe(finalize(() => results.push('finalize 2'))), of(3).pipe(finalize(() => results.push('finalize 3'))), of(4).pipe(finalize(() => results.push('finalize 4'))) ).subscribe({ next: (value) => results.push(value), complete: () => results.push('complete'), }); expect(results).to.deep.equal([1, 'finalize 1', 2, 'finalize 2', 3, 'finalize 3', 4, 'finalize 4', 'complete']); }); }); rxjs-7.5.7/spec/observables/pairs-spec.ts000066400000000000000000000024741431412030200203740ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { TestScheduler } from 'rxjs/testing'; import { pairs } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; describe('pairs', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should create an observable emits key-value pair', () => { rxTestScheduler.run(({ expectObservable }) => { const e1 = pairs({ a: 1, b: 2 }); const expected = '(ab|)'; const values = { a: ['a', 1], b: ['b', 2], }; expectObservable(e1).toBe(expected, values); }); }); it('should create an observable without scheduler', (done) => { let expected = [ ['a', 1], ['b', 2], ['c', 3], ]; pairs({ a: 1, b: 2, c: 3 }).subscribe({ next: (x) => { expect(x).to.deep.equal(expected.shift()); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { expect(expected).to.be.empty; done(); }, }); }); it('should work with empty object', () => { rxTestScheduler.run(({ expectObservable }) => { const e1 = pairs({}); const expected = '|'; expectObservable(e1).toBe(expected); }); }); }); rxjs-7.5.7/spec/observables/partition-spec.ts000066400000000000000000000254161431412030200212700ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { Observable, partition, of } from 'rxjs'; import { mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {partition} */ describe('partition', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); function expectObservableArray(result: Observable[], expected: string[]) { for (let idx = 0; idx < result.length; idx++) { rxTestScheduler.expectObservable(result[idx]).toBe(expected[idx]); } } it('should partition an observable of integers into even and odd', () => { rxTestScheduler.run(({ hot, expectSubscriptions }) => { const e1 = hot(' --1-2---3------4--5---6--|'); const e1subs = ' ^------------------------!'; // prettier-ignore const expected = [ ' --1-----3---------5------|', ' ----2----------4------6--|', ]; const result = partition(e1, (x: any) => x % 2 === 1); expectObservableArray(result, expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should partition an observable into two using a predicate', () => { rxTestScheduler.run(({ hot, expectSubscriptions }) => { const e1 = hot(' --a-b---a------d--a---c--|'); const e1subs = ' ^------------------------!'; // prettier-ignore const expected = [ ' --a-----a---------a------|', ' ----b----------d------c--|', ]; function predicate(x: string) { return x === 'a'; } expectObservableArray(partition(e1, predicate), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should partition an observable into two using a predicate that takes an index', () => { rxTestScheduler.run(({ hot, expectSubscriptions }) => { const e1 = hot(' --a-b---a------d--a---c--|'); const e1subs = ' ^------------------------!'; // prettier-ignore const expected = [ ' --a-----a---------a------|', ' ----b----------d------c--|', ]; function predicate(value: string, index: number) { return index % 2 === 0; } expectObservableArray(partition(e1, predicate), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should partition an observable into two using a predicate and thisArg', () => { rxTestScheduler.run(({ hot, expectSubscriptions }) => { const e1 = hot(' --a-b---a------d--a---c--|'); const e1subs = ' ^------------------------!'; // prettier-ignore const expected = [ ' --a-----a---------a------|', ' ----b----------d------c--|', ]; function predicate(this: any, x: string) { return x === this.value; } expectObservableArray(partition(e1, predicate, { value: 'a' }), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should pass errors to both returned observables', () => { rxTestScheduler.run(({ hot, expectSubscriptions }) => { const e1 = hot(' --a-b---#'); const e1subs = ' ^-------!'; // prettier-ignore const expected = [ ' --a-----#', ' ----b---#', ]; function predicate(x: string) { return x === 'a'; } expectObservableArray(partition(e1, predicate), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should pass errors to both returned observables if source throws', () => { rxTestScheduler.run(({ cold, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; // prettier-ignore const expected = [ ' # ', ' # ', ]; function predicate(x: string) { return x === 'a'; } expectObservableArray(partition(e1, predicate), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should pass errors to both returned observables if predicate throws', () => { rxTestScheduler.run(({ hot, expectSubscriptions }) => { const e1 = hot(' --a-b--a--|'); const e1subs = ' ^------! '; // prettier-ignore const expected = [ ' --a----# ', ' ----b--# ', ]; let index = 0; const error = 'error'; function predicate(x: string) { const match = x === 'a'; if (match && index++ > 1) { throw error; } return match; } expectObservableArray(partition(e1, predicate), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should partition empty observable if source does not emits', () => { rxTestScheduler.run(({ hot, expectSubscriptions }) => { const e1 = hot(' ----|'); const e1subs = ' ^---!'; // prettier-ignore const expected = [ ' ----|', ' ----|', ]; function predicate(x: string) { return x === 'x'; } expectObservableArray(partition(e1, predicate), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should partition empty observable if source is empty', () => { rxTestScheduler.run(({ cold, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; // prettier-ignore const expected = [ ' | ', ' | ', ]; function predicate(x: string) { return x === 'x'; } expectObservableArray(partition(e1, predicate), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should partition if source emits single elements', () => { rxTestScheduler.run(({ hot, expectSubscriptions }) => { const e1 = hot(' --a--|'); const e1subs = ' ^----!'; // prettier-ignore const expected = [ ' --a--|', ' -----|', ]; function predicate(x: string) { return x === 'a'; } expectObservableArray(partition(e1, predicate), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should partition if predicate matches all of source elements', () => { rxTestScheduler.run(({ hot, expectSubscriptions }) => { const e1 = hot(' --a--a--a--a--a--a--a--|'); const e1subs = ' ^----------------------!'; // prettier-ignore const expected = [ ' --a--a--a--a--a--a--a--|', ' -----------------------|', ]; function predicate(x: string) { return x === 'a'; } expectObservableArray(partition(e1, predicate), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should partition if predicate does not match all of source elements', () => { rxTestScheduler.run(({ hot, expectSubscriptions }) => { const e1 = hot(' --b--b--b--b--b--b--b--|'); const e1subs = ' ^----------------------!'; // prettier-ignore const expected = [ ' -----------------------|', ' --b--b--b--b--b--b--b--|', ]; function predicate(x: string) { return x === 'a'; } expectObservableArray(partition(e1, predicate), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should partition to infinite observable if source does not completes', () => { rxTestScheduler.run(({ hot, expectSubscriptions }) => { const e1 = hot(' --a-b---a------d----'); const e1subs = ' ^-------------------'; // prettier-ignore const expected = [ ' --a-----a-----------', ' ----b----------d----', ]; function predicate(x: string) { return x === 'a'; } expectObservableArray(partition(e1, predicate), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should partition to infinite observable if source never completes', () => { rxTestScheduler.run(({ cold, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; // prettier-ignore const expected = [ ' -', ' -', ]; function predicate(x: string) { return x === 'a'; } expectObservableArray(partition(e1, predicate), expected); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should partition into two observable with early unsubscription', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a-b---a------d-|'); const unsub = ' -------! '; const e1subs = ' ^------! '; // prettier-ignore const expected = [ ' --a----- ', ' ----b--- ', ]; function predicate(x: string) { return x === 'a'; } const result = partition(e1, predicate); for (let idx = 0; idx < result.length; idx++) { expectObservable(result[idx], unsub).toBe(expected[idx]); } expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a-b---a------d-|'); const e1subs = ' ^------! '; // prettier-ignore const expected = [ ' --a----- ', ' ----b--- ', ]; const unsub = ' -------! '; const e1Pipe = e1.pipe(mergeMap((x: string) => of(x))); const result = partition(e1Pipe, (x: string) => x === 'a'); expectObservable(result[0], unsub).toBe(expected[0]); expectObservable(result[1], unsub).toBe(expected[1]); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should accept thisArg', () => { const thisArg = {}; partition( of(1), function (this: any, value: number) { expect(this).to.deep.equal(thisArg); return true; }, thisArg ).forEach((observable: Observable) => observable.subscribe()); }); }); rxjs-7.5.7/spec/observables/race-spec.ts000066400000000000000000000212341431412030200201630ustar00rootroot00000000000000/** @prettier */ import { race, of } from 'rxjs'; import { mergeMap } from 'rxjs/operators'; import { expect } from 'chai'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {race} */ describe('race', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should race a single observable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----|'); const e1subs = ' ^-------------------!'; const expected = '---a-----b-----c----|'; const result = race(e1); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should race cold and cold', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----| '); const e1subs = ' ^-------------------! '; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b-----c----| '; const result = race(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race with array of observable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----| '); const e1subs = ' ^-------------------! '; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b-----c----| '; const result = race([e1, e2]); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race hot and hot', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a-----b-----c----| '); const e1subs = ' ^-------------------! '; const e2 = hot(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b-----c----| '; const result = race(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race hot and cold', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----| '); const e1subs = ' ^-------------------! '; const e2 = hot(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b-----c----| '; const result = race(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race 2nd and 1st', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ------x-----y-----z----|'); const e1subs = ' ^--! '; const e2 = cold(' ---a-----b-----c----| '); const e2subs = ' ^-------------------! '; const expected = '---a-----b-----c----| '; const result = race(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race emit and complete', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -----| '); const e1subs = ' ^----! '; const e2 = hot(' ------x-----y-----z----|'); const e2subs = ' ^----! '; const expected = '-----| '; const result = race(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should allow unsubscribing early and explicitly', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----| '); const e1subs = ' ^-----------! '; const e2 = hot(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b--- '; const unsub = ' ------------! '; const result = race(e1, e2); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot(' ---e-^---f--g---h-|'); const e2subs = ' ^--! '; const expected = ' ---b--c--- '; const unsub = ' ---------! '; const result = race(e1.pipe(mergeMap((x: string) => of(x))), e2.pipe(mergeMap((x: string) => of(x)))).pipe( mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should never emit when given non emitting sources', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---|'); const e2 = cold(' ---|'); const e1subs = ' ^--!'; const expected = '---|'; const source = race(e1, e2); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should throw when error occurs mid stream', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----# '); const e1subs = ' ^--------! '; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----# '; const result = race(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should throw when error occurs before a winner is found', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---# '); const e1subs = ' ^--! '; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---# '; const result = race(e1, e2); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('handle empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; const source = race(e1); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('handle never', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; const source = race(e1); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('handle throw', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; const source = race(e1); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support a single ObservableInput argument', (done) => { const source = race(Promise.resolve(42)); source.subscribe({ next: (value) => { expect(value).to.equal(42); }, error: done, complete: done, }); }); }); rxjs-7.5.7/spec/observables/range-spec.ts000066400000000000000000000100061431412030200203400ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import * as sinon from 'sinon'; import { asapScheduler as asap, range, of } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { concatMap, delay } from 'rxjs/operators'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {range} */ describe('range', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should create an observable with numbers 1 to 10', () => { rxTestScheduler.run(({ expectObservable, time }) => { const delayAmount = time('--|'); // --| // --| // --| // --| // --| // --| // --| // --| const expected = ' a-b-c-d-e-f-g-h-i-(j|)'; const e1 = range(1, 10) // for the purpose of making a nice diagram, spread out the synchronous emissions .pipe(concatMap((x, i) => of(x).pipe(delay(i === 0 ? 0 : delayAmount)))); const values = { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10, }; expectObservable(e1).toBe(expected, values); }); }); it('should work for two subscribers', () => { rxTestScheduler.run(({ expectObservable, time }) => { const delayAmount = time('--|'); // --| // --| // --| const expected = ' a-b-c-d-(e|)'; const e1 = range(1, 5).pipe(concatMap((x, i) => of(x).pipe(delay(i === 0 ? 0 : delayAmount)))); const values = { a: 1, b: 2, c: 3, d: 4, e: 5, }; expectObservable(e1).toBe(expected, values); expectObservable(e1).toBe(expected, values); }); }); it('should synchronously create a range of values by default', () => { const results = [] as any[]; range(12, 4).subscribe(function (x) { results.push(x); }); expect(results).to.deep.equal([12, 13, 14, 15]); }); it('should accept a scheduler', (done) => { const expected = [12, 13, 14, 15]; sinon.spy(asap, 'schedule'); const source = range(12, 4, asap); source.subscribe({ next: function (x) { expect(asap.schedule).have.been.called; const exp = expected.shift(); expect(x).to.equal(exp); }, error: function (x) { done(new Error('should not be called')); }, complete: () => { (asap.schedule).restore(); done(); }, }); }); it('should accept only one argument where count is argument and start is zero', () => { rxTestScheduler.run(({ expectObservable, time }) => { const delayAmount = time('--|'); // --| // --| // --| const expected = ' a-b-c-d-(e|)'; const e1 = range(5).pipe(concatMap((x, i) => of(x).pipe(delay(i === 0 ? 0 : delayAmount)))); const values = { a: 0, b: 1, c: 2, d: 3, e: 4, }; expectObservable(e1).toBe(expected, values); expectObservable(e1).toBe(expected, values); }); }); it('should return empty for range(0)', () => { const results: any[] = []; range(0).subscribe({ next: (value) => results.push(value), complete: () => results.push('done'), }); expect(results).to.deep.equal(['done']); }); it('should return empty for range with a negative count', () => { const results: any[] = []; range(5, -5).subscribe({ next: (value) => results.push(value), complete: () => results.push('done'), }); expect(results).to.deep.equal(['done']); }); }); rxjs-7.5.7/spec/observables/throwError-spec.ts000066400000000000000000000034161431412030200214300ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { TestScheduler } from 'rxjs/testing'; import { throwError } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {throwError} */ describe('throwError', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); it('should create a cold observable that just emits an error', () => { rxTest.run(({ expectObservable }) => { const expected = '#'; const e1 = throwError(() => 'error'); expectObservable(e1).toBe(expected); }); }); it('should emit one value', (done) => { let calls = 0; throwError(() => 'bad').subscribe({ next: () => { done(new Error('should not be called')); }, error: (err) => { expect(++calls).to.equal(1); expect(err).to.equal('bad'); done(); }, }); }); it('should accept scheduler', () => { rxTest.run(({ expectObservable }) => { const e = throwError('error', rxTest); expectObservable(e).toBe('#'); }); }); it('should accept a factory function', () => { let calls = 0; let errors: any[] = []; const source = throwError(() => ({ call: ++calls, message: 'LOL', })); source.subscribe({ next: () => { throw new Error('this should not happen'); }, error: (err) => { errors.push(err); }, }); source.subscribe({ next: () => { throw new Error('this should not happen'); }, error: (err) => { errors.push(err); }, }); expect(errors).to.deep.equal([ { call: 1, message: 'LOL', }, { call: 2, message: 'LOL', }, ]); }); }); rxjs-7.5.7/spec/observables/timer-spec.ts000066400000000000000000000130441431412030200203710ustar00rootroot00000000000000import { timer, NEVER, merge } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { mergeMap, take, concat } from 'rxjs/operators'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {timer} */ describe('timer', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); it('should create an observable emitting periodically', () => { rxTest.run(({ expectObservable }) => { const e1 = timer(6, 2, rxTest).pipe( take(4), // make it actually finite, so it can be rendered concat(NEVER) // but pretend it's infinite by not completing ); const expected = '------a-b-c-d-'; const values = { a: 0, b: 1, c: 2, d: 3, }; expectObservable(e1).toBe(expected, values); }); }); it('should schedule a value of 0 then complete', () => { rxTest.run(({ expectObservable }) => { const dueTime = 5; // -----| const expected = ' -----(x|)'; const source = timer(dueTime, undefined, rxTest); expectObservable(source).toBe(expected, { x: 0 }); }); }); it('should emit a single value immediately', () => { rxTest.run(({ expectObservable }) => { const dueTime = 0; const expected = '(x|)'; const source = timer(dueTime, rxTest); expectObservable(source).toBe(expected, { x: 0 }); }); }); it('should start after delay and periodically emit values', () => { rxTest.run(({ expectObservable }) => { const dueTime = 4; // ----| const period = 2; // -|-|-|-| const expected = ' ----a-b-c-d-(e|)'; const source = timer(dueTime, period, rxTest).pipe(take(5)); const values = { a: 0, b: 1, c: 2, d: 3, e: 4 }; expectObservable(source).toBe(expected, values); }); }); it('should start immediately and periodically emit values', () => { rxTest.run(({ expectObservable }) => { const dueTime = 0; //| const period = 3; // --|--|--|--| const expected = ' a--b--c--d--(e|)'; const source = timer(dueTime, period, rxTest).pipe(take(5)); const values = { a: 0, b: 1, c: 2, d: 3, e: 4 }; expectObservable(source).toBe(expected, values); }); }); it('should stop emitting values when subscription is done', () => { rxTest.run(({ expectObservable }) => { const dueTime = 0; //| const period = 3; // --|--|--|--| const expected = ' a--b--c--d--e'; const unsub = ' ^------------!'; const source = timer(dueTime, period, rxTest); const values = { a: 0, b: 1, c: 2, d: 3, e: 4 }; expectObservable(source, unsub).toBe(expected, values); }); }); it('should schedule a value at a specified Date', () => { rxTest.run(({ expectObservable }) => { const offset = 4; // ----| const expected = ' ----(a|)'; const dueTime = new Date(rxTest.now() + offset); const source = timer(dueTime, undefined, rxTest); expectObservable(source).toBe(expected, { a: 0 }); }); }); it('should start after delay and periodically emit values', () => { rxTest.run(({ expectObservable }) => { const offset = 4; // ----| const period = 2; // -|-|-|-| const expected = ' ----a-b-c-d-(e|)'; const dueTime = new Date(rxTest.now() + offset); const source = timer(dueTime, period, rxTest).pipe(take(5)); const values = { a: 0, b: 1, c: 2, d: 3, e: 4 }; expectObservable(source).toBe(expected, values); }); }); it('should still target the same date if a date is provided even for the ' + 'second subscription', () => { rxTest.run(({ cold, time, expectObservable }) => { const offset = time('----| '); const t1 = cold(' a| '); const t2 = cold(' --a| '); const expected = ' ----(aa|)'; const dueTime = new Date(rxTest.now() + offset); const source = timer(dueTime, undefined, rxTest); const testSource = merge(t1, t2).pipe(mergeMap(() => source)); expectObservable(testSource).toBe(expected, { a: 0 }); }); }); it('should accept Infinity as the first argument', () => { rxTest.run(({ expectObservable }) => { const source = timer(Infinity, undefined, rxTest); const expected = '------'; expectObservable(source).toBe(expected); }); }); it('should accept Infinity as the second argument', () => { rxTest.run(({ expectObservable }) => { rxTest.maxFrames = 20; const source = timer(4, Infinity, rxTest); const expected = '----a-'; expectObservable(source).toBe(expected, { a: 0 }); }); }); it('should accept negative numbers as the second argument, which should cause immediate completion', () => { rxTest.run(({ expectObservable }) => { const source = timer(4, -4, rxTest); const expected = '----(a|)'; expectObservable(source).toBe(expected, { a: 0 }); }); }); it('should accept 0 as the second argument', () => { rxTest.run(({ expectObservable }) => { const source = timer(4, 0, rxTest).pipe(take(5)); const expected = '----(abcde|)'; expectObservable(source).toBe(expected, { a: 0, b: 1, c: 2, d: 3, e: 4 }); }); }); it('should emit after a delay of 0 for Date objects in the past', () => { rxTest.run(({ expectObservable }) => { const expected = '(a|)'; const threeSecondsInThePast = new Date(rxTest.now() - 3000); const source = timer(threeSecondsInThePast, undefined, rxTest); expectObservable(source).toBe(expected, { a: 0 }); }); }); }); rxjs-7.5.7/spec/observables/using-spec.ts000066400000000000000000000050061431412030200203750ustar00rootroot00000000000000import { expect } from 'chai'; import { using, range, Subscription } from 'rxjs'; import { take } from 'rxjs/operators'; describe('using', () => { it('should dispose of the resource when the subscription is disposed', (done) => { let disposed = false; const source = using( () => new Subscription(() => disposed = true), (resource) => range(0, 3) ) .pipe(take(2)); source.subscribe(); if (disposed) { done(); } else { done(new Error('disposed should be true but was false')); } }); it('should accept factory returns promise resolves', (done) => { const expected = 42; let disposed = false; const e1 = using( () => new Subscription(() => disposed = true), (resource) => new Promise((resolve: any) => { resolve(expected); })); e1.subscribe({ next: x => { expect(x).to.equal(expected); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); } }); }); it('should accept factory returns promise rejects', (done) => { const expected = 42; let disposed = false; const e1 = using( () => new Subscription(() => disposed = true), (resource) => new Promise((resolve: any, reject: any) => { reject(expected); })); e1.subscribe({ next: x => { done(new Error('should not be called')); }, error: (x) => { expect(x).to.equal(expected); done(); }, complete: () => { done(new Error('should not be called')); } }); }); it('should raise error when resource factory throws', (done) => { const expectedError = 'expected'; const error = 'error'; const source = using( () => { throw expectedError; }, (resource) => { throw error; } ); source.subscribe({ next: (x) => { done(new Error('should not be called')); }, error: (x) => { expect(x).to.equal(expectedError); done(); }, complete: () => { done(new Error('should not be called')); } }); }); it('should raise error when observable factory throws', (done) => { const error = 'error'; let disposed = false; const source = using( () => new Subscription(() => disposed = true), (resource) => { throw error; } ); source.subscribe({ next: (x) => { done(new Error('should not be called')); }, error: (x) => { expect(x).to.equal(error); done(); }, complete: () => { done(new Error('should not be called')); } }); }); }); rxjs-7.5.7/spec/observables/zip-spec.ts000066400000000000000000000553511431412030200200620ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { queueScheduler as rxQueueScheduler, zip, from, of } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; const queueScheduler = rxQueueScheduler; /** @test {zip} */ describe('zip', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should combine a source with a second', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1---2---3--- '); const asubs = ' ^ '; const b = hot(' --4--5--6--7--8--'); const bsubs = ' ^ '; const expected = '---x---y---z '; expectObservable(zip(a, b)).toBe(expected, { x: ['1', '4'], y: ['2', '5'], z: ['3', '6'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should zip the provided observables', (done) => { const expected = ['a1', 'b2', 'c3']; let i = 0; zip(from(['a', 'b', 'c']), from([1, 2, 3]), (a: string, b: number) => a + b).subscribe({ next: (x: string) => { expect(x).to.equal(expected[i++]); }, complete: done, }); }); it('should end once one observable completes and its buffer is empty', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b--c--| '); const e1subs = ' ^-----------! '; const e2 = hot(' ------d----e----f--------| '); const e2subs = ' ^-----------------! '; const e3 = hot(' --------h----i----j---------'); // doesn't complete const e3subs = ' ^-----------------! '; const expected = '--------x----y----(z|) '; // e1 complete and buffer empty const values = { x: ['a', 'd', 'h'], y: ['b', 'e', 'i'], z: ['c', 'f', 'j'], }; expectObservable(zip(e1, e2, e3)).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should end once one observable nexts and zips value from completed other observable whose buffer is empty', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b--c--| '); const e1subs = ' ^-----------! '; const e2 = hot(' ------d----e----f| '); const e2subs = ' ^----------------! '; const e3 = hot(' --------h----i----j-------'); // doesn't complete const e3subs = ' ^-----------------! '; const expected = '--------x----y----(z|) '; // e2 buffer empty and signaled complete const values = { x: ['a', 'd', 'h'], y: ['b', 'e', 'i'], z: ['c', 'f', 'j'], }; expectObservable(zip(e1, e2, e3)).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); describe('with iterables', () => { it('should zip them with values', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const myIterator = (function* () { for (let i = 0; i < 4; i++) { yield i; } })(); const e1 = hot(' ---a---b---c---d---|'); const e1subs = ' ^--------------! '; const expected = '---w---x---y---(z|) '; const values = { w: ['a', 0], x: ['b', 1], y: ['c', 2], z: ['d', 3], }; expectObservable(zip(e1, myIterator)).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with empty observable and empty iterable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold('| '); const asubs = '(^!)'; const b: number[] = []; const expected = '|'; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with empty observable and non-empty iterable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' | '); const asubs = ' (^!)'; const b = [1]; const expected = '| '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should complete instantly if given an empty iterable', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^----a--|'); const asubs = ' (^!) '; const b: number[] = []; const expected = '| '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with never observable and non-empty iterable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' ^'; const b = [1]; const expected = '-'; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with non-empty observable and non-empty iterable', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^----1--|'); const asubs = ' ^----! '; const b = [2]; const expected = '-----(x|)'; expectObservable(zip(a, b)).toBe(expected, { x: ['1', 2] }); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with observable which raises error and non-empty iterable', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^----#'); const asubs = ' ^----!'; const b = [1]; const expected = '-----#'; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with non-empty many observable and non-empty many iterable', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^--1--2--3--|'); const asubs = ' ^--------! '; const b = [4, 5, 6]; const expected = '---x--y--(z|)'; expectObservable(zip(a, b)).toBe(expected, { x: ['1', 4], y: ['2', 5], z: ['3', 6] }); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with non-empty observable and non-empty iterable selector that throws', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^--1--2--3--|'); const asubs = ' ^-----! '; const b = [4, 5, 6]; const expected = '---x--# '; const selector = (x: string, y: number) => { if (y === 5) { throw new Error('too bad'); } else { return x + y; } }; expectObservable(zip(a, b, selector)).toBe(expected, { x: '14' }, new Error('too bad')); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); }); it('should combine two observables and selector', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1---2---3--- '); const asubs = ' ^ '; const b = hot(' --4--5--6--7--8--'); const bsubs = ' ^ '; const expected = '---x---y---z '; expectObservable(zip(a, b, (e1: string, e2: string) => e1 + e2)).toBe(expected, { x: '14', y: '25', z: '36' }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with n-ary symmetric', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1----4----|'); const asubs = ' ^---------! '; const b = hot('---1-^--2--5----| '); const bsubs = ' ^---------! '; const c = hot('---1-^---3---6-| '); const expected = ' ----x---y-| '; expectObservable(zip(a, b, c)).toBe(expected, { x: ['1', '2', '3'], y: ['4', '5', '6'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with n-ary symmetric selector', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1----4----|'); const asubs = ' ^---------! '; const b = hot('---1-^--2--5----| '); const bsubs = ' ^---------! '; const c = hot('---1-^---3---6-| '); const expected = ' ----x---y-| '; const observable = zip(a, b, c, (r0: string, r1: string, r2: string) => [r0, r1, r2]); expectObservable(observable).toBe(expected, { x: ['1', '2', '3'], y: ['4', '5', '6'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with n-ary symmetric array selector', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1----4----|'); const asubs = ' ^---------! '; const b = hot('---1-^--2--5----| '); const bsubs = ' ^---------! '; const c = hot('---1-^---3---6-| '); const expected = ' ----x---y-| '; const observable = zip(a, b, c, (r0: string, r1: string, r2: string) => [r0, r1, r2]); expectObservable(observable).toBe(expected, { x: ['1', '2', '3'], y: ['4', '5', '6'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with some data asymmetric 1', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1-3-5-7-9-x-y-z-w-u-|'); const asubs = ' ^-----------------! '; const b = hot('---1-^--2--4--6--8--0--| '); const bsubs = ' ^-----------------! '; const expected = ' ---a--b--c--d--e--| '; expectObservable(zip(a, b, (r1: string, r2: string) => r1 + r2)).toBe(expected, { a: '12', b: '34', c: '56', d: '78', e: '90' }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with some data asymmetric 2', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^--2--4--6--8--0--| '); const asubs = ' ^-----------------! '; const b = hot('---1-^-1-3-5-7-9-x-y-z-w-u-|'); const bsubs = ' ^-----------------! '; const expected = ' ---a--b--c--d--e--| '; expectObservable(zip(a, b, (r1: string, r2: string) => r1 + r2)).toBe(expected, { a: '21', b: '43', c: '65', d: '87', e: '09' }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with some data symmetric', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1-3-5-7-9------| '); const asubs = ' ^----------------! '; const b = hot('---1-^--2--4--6--8--0--|'); const bsubs = ' ^----------------! '; const expected = ' ---a--b--c--d--e-| '; expectObservable(zip(a, b, (r1: string, r2: string) => r1 + r2)).toBe(expected, { a: '12', b: '34', c: '56', d: '78', e: '90' }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with selector throws', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-2---4----| '); const asubs = ' ^-------! '; const b = hot('---1-^--3----5----|'); const bsubs = ' ^-------! '; const expected = ' ---x----# '; const selector = (x: string, y: string) => { if (y === '5') { throw new Error('too bad'); } else { return x + y; } }; const observable = zip(a, b, selector); expectObservable(observable).toBe(expected, { x: '23' }, new Error('too bad')); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with right completes first', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-2-----|'); const asubs = ' ^-----! '; const b = hot('---1-^--3--| '); const bsubs = ' ^-----! '; const expected = ' ---x--| '; expectObservable(zip(a, b)).toBe(expected, { x: ['2', '3'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with two nevers', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' ^'; const b = cold(' -'); const bsubs = ' ^'; const expected = '-'; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with never and empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' - '); const asubs = ' (^!)'; const b = cold(' | '); const bsubs = ' (^!)'; const expected = '| '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with empty and never', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' | '); const asubs = ' (^!)'; const b = cold(' - '); const bsubs = ' (^!)'; const expected = '| '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with empty and empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' | '); const asubs = ' (^!)'; const b = cold(' | '); const bsubs = ' (^!)'; const expected = '| '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with empty and non-empty', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' | '); const asubs = ' (^!) '; const b = hot(' ---1--|'); const bsubs = ' (^!) '; const expected = '| '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with non-empty and empty', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = hot(' ---1--|'); const asubs = ' (^!) '; const b = cold(' | '); const bsubs = ' (^!) '; const expected = '| '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with never and non-empty', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' - '); const asubs = ' ^ '; const b = hot(' ---1--|'); const bsubs = ' ^-----!'; const expected = '- '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with non-empty and never', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = hot(' ---1--|'); const asubs = ' ^-----!'; const b = cold(' - '); const bsubs = ' ^ '; const expected = '- '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with empty and error', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' | '); const asubs = ' (^!) '; const b = hot(' ------#', undefined, 'too bad'); const bsubs = ' (^!) '; const expected = '| '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error and empty', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = hot(' ------#', undefined, 'too bad'); const asubs = ' (^!) '; const b = cold(' | '); const bsubs = ' (^!) '; const expected = '| '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ----------|'); const asubs = ' ^-----! '; const b = hot(' ------# '); const bsubs = ' ^-----! '; const expected = '------# '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with never and error', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' - '); const asubs = ' ^-----!'; const b = hot(' ------#'); const bsubs = ' ^-----!'; const expected = '------#'; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error and never', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = hot(' ------#'); const asubs = ' ^-----!'; const b = cold(' - '); const bsubs = ' ^-----!'; const expected = '------#'; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error and error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ------# ', undefined, 'too bad'); const asubs = ' ^-----! '; const b = hot(' ----------#', undefined, 'too bad 2'); const bsubs = ' ^-----! '; const expected = '------# '; expectObservable(zip(a, b)).toBe(expected, null, 'too bad'); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with two sources that eventually raise errors', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' --w-----#----', { w: 1 }, 'too bad'); const asubs = ' ^-------! '; const b = hot(' -----z-----#-', { z: 2 }, 'too bad 2'); const bsubs = ' ^-------! '; const expected = '-----x--# '; expectObservable(zip(a, b)).toBe(expected, { x: [1, 2] }, 'too bad'); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with two sources that eventually raise errors (swapped)', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' -----z-----#-', { z: 2 }, 'too bad 2'); const asubs = ' ^-------! '; const b = hot(' --w-----#----', { w: 1 }, 'too bad'); const bsubs = ' ^-------! '; const expected = '-----x--# '; expectObservable(zip(a, b)).toBe(expected, { x: [2, 1] }, 'too bad'); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error and some', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' # '); const asubs = ' (^!) '; const b = hot(' --1--2--3--'); const bsubs = ' (^!) '; const expected = '# '; expectObservable(zip(a, b)).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should combine an immediately-scheduled source with an immediately-scheduled second', (done) => { const a = of(1, 2, 3, queueScheduler); const b = of(4, 5, 6, 7, 8, queueScheduler); const r = [ [1, 4], [2, 5], [3, 6], ]; let i = 0; zip(a, b).subscribe({ next: (vals: Array) => { expect(vals).to.deep.equal(r[i++]); }, complete: done, }); }); it('should be able to zip all iterables', () => { const results: any[] = []; zip('abc', '123', 'xyz').subscribe({ next: (value) => results.push(value), complete: () => results.push('complete'), }); expect(results).to.deep.equal([['a', '1', 'x'], ['b', '2', 'y'], ['c', '3', 'z'], 'complete']); }); it('should return EMPTY if passed an empty array as the only argument', () => { const results: string[] = []; zip([]).subscribe({ next: () => { throw new Error('should not emit'); }, complete: () => { results.push('done'); }, }); expect(results).to.deep.equal(['done']); }); }); rxjs-7.5.7/spec/operators/000077500000000000000000000000001431412030200154565ustar00rootroot00000000000000rxjs-7.5.7/spec/operators/audit-spec.ts000066400000000000000000000416361431412030200200760ustar00rootroot00000000000000import { expect } from 'chai'; import { TestScheduler } from 'rxjs/testing'; import { of, interval, EMPTY, Observable } from 'rxjs'; import { audit, take, mergeMap } from 'rxjs/operators'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {audit} */ describe('audit operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should emit the last value in each time window', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-xy-----b--x--cxyz-|'); const e1subs = ' ^--------------------!'; const e2 = cold(' ----i '); // ----i // ----i const e2subs = [ ' -^---! ', ' ----------^---! ', ' ----------------^---! ', ]; const expected = '-----y--------x-----z|'; const result = e1.pipe(audit(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should delay the source if values are not emitted often enough', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--------b-----c----|'); const e1subs = ' ^--------------------!'; const e2 = cold(' ----x '); const e2subs = [ ' -^---! ', ' ----------^---! ', ' ----------------^---! ', ]; const expected = '-----a--------b-----c|'; const result = e1.pipe(audit(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should audit with duration Observable using next to close the duration', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-xy-----b--x--cxxx-|'); const e1subs = ' ^--------------------!'; const e2 = cold(' ----x-y-z '); const e2subs = [ ' -^---! ', ' ----------^---! ', ' ----------------^---! ', ]; const expected = ' -----y--------x-----x|'; const result = e1.pipe(audit(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should interrupt source and duration when result is unsubscribed early', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-x-y-z-xyz-x-y-z----b--x-x-|'); const unsub = ' --------------! '; const e1subs = ' ^-------------! '; const e2 = cold(' -----x------------| '); const e2subs = [ ' -^----! ', ' -------^----! ', ' -------------^! ', ]; const expected = '------y-----z-- '; const result = e1.pipe(audit(() => e2)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-x-y-z-xyz-x-y-z----b--x-x-|'); const e1subs = ' ^-------------! '; const e2 = cold(' -----x------------| '); const e2subs = [ ' -^----! ', ' -------^----! ', ' -------------^! ', ]; const expected = '------y-----z-- '; const unsub = ' --------------! '; const result = e1.pipe( mergeMap((x: string) => of(x)), audit(() => e2), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle a busy producer emitting a regular repeating sequence', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdefabcdefabcdefa| '); const e1subs = ' ^------------------------! '; const e2 = cold(' -----x '); const e2subs = [ ' ^----! ', ' ------^----! ', ' ------------^----! ', ' ------------------^----! ', ' ------------------------^----!', ]; const expected = '-----f-----f-----f-----f-----(a|)'; const result = e1.pipe(audit(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should mirror source if durations are immediate', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdefabcdefabcdefa|'); const e1subs = ' ^------------------------!'; const e2 = cold(' x'); const expected = 'abcdefabcdefabcdefabcdefa|'; const result = e1.pipe(audit(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit no values if durations are EMPTY', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdefabcdefabcdefa|'); const e1subs = ' ^------------------------!'; const e2 = EMPTY; const expected = '-------------------------|'; const result = e1.pipe(audit(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit no values and never complete if duration is a never', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----abcdefabcdefabcdefabcdefa|'); const e1subs = ' ^----------------------------!'; const e2 = cold(' -'); const e2subs = ' ----^-------------------------'; const expected = '------------------------------'; const result = e1.pipe(audit(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should unsubscribe duration Observable when source raise error', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----abcdefabcdefabcdefabcdefa#'); const e1subs = ' ^----------------------------!'; const e2 = cold(' -'); const e2subs = ' ----^------------------------!'; const expected = '-----------------------------#'; const result = e1.pipe(audit(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should mirror source if durations are synchronous observables', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdefabcdefabcdefa|'); const e1subs = ' ^------------------------!'; const e2 = of('one single value'); const expected = 'abcdefabcdefabcdefabcdefa|'; const result = e1.pipe(audit(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error as soon as just-throw duration is used', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----abcdefabcdefabcdefabcdefa|'); const e1subs = ' ^---! '; const e2 = cold(' #'); const e2subs = ' ----(^!) '; const expected = '----(-#) '; const result = e1.pipe(audit(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should audit using durations of varying lengths', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdabcdefghabca| '); const e1subs = ' ^---------------------! '; const e2 = [ cold(' -----x '), cold(' ---x '), cold(' -------x '), cold(' --x '), cold(' ----x '), ]; const e2subs = [ ' ^----! ', ' ------^--! ', ' ----------^------! ', ' ------------------^-! ', ' ---------------------^---! ', ]; const expected = '-----f---d-------h--c----(a|)'; let i = 0; const result = e1.pipe(audit(() => e2[i++])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); for (let j = 0; j < e2.length; j++) { expectSubscriptions(e2[j].subscriptions).toBe(e2subs[j]); } }); }); it('should propagate error from duration Observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdabcdefghabca|'); const e1subs = ' ^----------------! '; const e2 = [ cold(' -----x '), cold(' ---x '), cold(' -------# '), ]; const e2subs = [ ' ^----! ', ' ------^--! ', ' ----------^------! ', ]; const expected = '-----f---d-------# '; let i = 0; const result = e1.pipe(audit(() => e2[i++])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); for (let j = 0; j < e2.length; j++) { expectSubscriptions(e2[j].subscriptions).toBe(e2subs[j]); } }); }); it('should propagate error thrown from durationSelector function', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdabcdefghabca| '); const e1subs = ' ^---------! '; const e2 = [ cold(' -----x '), cold(' ---x '), cold(' -------x '), ]; // prettier-ignore const e2subs = [ ' ^----! ', ' ------^--! ', ]; const expected = '-----f---d# '; let i = 0; const result = e1.pipe( audit(() => { if (i === 2) { throw 'error'; } return e2[i++]; }) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); for (let j = 0; j < e2subs.length; j++) { expectSubscriptions(e2[j].subscriptions).toBe(e2subs[j]); } }); }); it('should complete when source does not emit', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----|'); const subs = ' ^----!'; const expected = '-----|'; function durationSelector() { return cold('-----|'); } expectObservable(e1.pipe(audit(durationSelector))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should raise error when source does not emit and raises error', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----#'); const subs = ' ^----!'; const expected = '-----#'; function durationSelector() { return cold(' -----|'); } expectObservable(e1.pipe(audit(durationSelector))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle an empty source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const subs = ' (^!)'; const expected = '|'; function durationSelector() { return cold(' -----|'); } expectObservable(e1.pipe(audit(durationSelector))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle a never source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const subs = ' ^'; const expected = '-'; function durationSelector() { return cold(' -----|'); } expectObservable(e1.pipe(audit(durationSelector))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle a throw source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const subs = ' (^!)'; const expected = '#'; function durationSelector() { return cold(' -----|'); } expectObservable(e1.pipe(audit(durationSelector))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should audit by promise resolves', (done) => { const e1 = interval(10).pipe(take(5)); const expected = [0, 1, 2, 3, 4]; e1.pipe(audit(() => Promise.resolve(42))).subscribe({ next: (x: number) => { expect(x).to.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { expect(expected.length).to.equal(0); done(); }, }); }); it('should raise error when promise rejects', (done) => { const e1 = interval(10).pipe(take(10)); const expected = [0, 1, 2]; const error = new Error('error'); e1.pipe( audit((x: number) => { if (x === 3) { return new Promise((resolve: any, reject: any) => { reject(error); }); } else { return new Promise((resolve: any) => { resolve(42); }); } }) ).subscribe({ next: (x: number) => { expect(x).to.equal(expected.shift()); }, error: (err: any) => { expect(err).to.be.an('error', 'error'); expect(expected.length).to.equal(0); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( audit(() => of(0)), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); it('should emit last value after duration completes if source completes first', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--------xy| '); const e1subs = ' ^-----------! '; const e2 = cold(' ----x '); // prettier-ignore const e2subs = [ ' -^---! ', ' ----------^---!', ]; const expected = '-----a--------(y|)'; const result = e1.pipe(audit(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); }); rxjs-7.5.7/spec/operators/auditTime-spec.ts000066400000000000000000000155561431412030200207170ustar00rootroot00000000000000import { expect } from 'chai'; import { of } from 'rxjs'; import { auditTime, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {auditTime} */ describe('auditTime', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should emit the last value in each time window', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-x-y----b---x-cx---|'); const e1subs = ' ^--------------------!'; const t = time(' -----| '); // -----| // -----| const expected = '------y--------x-----(x|)'; const result = e1.pipe(auditTime(t)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should auditTime events by 5 time units', (done) => { const expected = 3; of(1, 2, 3) .pipe(auditTime(5)) .subscribe((x: number) => { expect(x).to.equal(expected); done(); }); }); it('should auditTime events multiple times', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -012-----01234---|'); const e1subs = ' ^----------------!'; const t = time(' -----| '); // -----| const expected = '------2-------4--|'; expectObservable(e1.pipe(auditTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should delay the source if values are not emitted often enough', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--------b-----c----|'); const e1subs = ' ^--------------------!'; const t = time(' -----| '); // -----| // -----| const expected = '------a--------b-----(c|)'; expectObservable(e1.pipe(auditTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a busy producer emitting a regular repeating sequence', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdefabcdefabcdefa|'); const e1subs = ' ^------------------------!'; const t = time(' -----| '); // -----| // -----| // -----| // -----| const expected = '-----f-----f-----f-----f-----(a|)'; expectObservable(e1.pipe(auditTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete when source does not emit', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----|'); const e1subs = ' ^----!'; const t = time(' --| '); const expected = '-----|'; expectObservable(e1.pipe(auditTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when source does not emit and raises error', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----#'); const e1subs = ' ^----!'; const t = time(' --| '); const expected = '-----#'; expectObservable(e1.pipe(auditTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an empty source', () => { testScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const t = time(' ---|'); const expected = '| '; expectObservable(e1.pipe(auditTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a never source', () => { testScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const e1 = cold(' - '); const e1subs = ' ^ '; const t = time(' --|'); const expected = '- '; expectObservable(e1.pipe(auditTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a throw source', () => { testScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const t = time(' ---|'); const expected = '# '; expectObservable(e1.pipe(auditTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete when source does not complete', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--(bc)-------d----------------'); const e1subs = ' ^------------------------------!'; const t = time(' -----| '); // -----| const expected = '------c-------------d-----------'; const unsub = ' -------------------------------!'; expectObservable(e1.pipe(auditTime(t)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--(bc)-------d----------------'); const e1subs = ' ^------------------------------!'; const t = time(' -----| '); // -----| const expected = '------c-------------d-----------'; const unsub = ' -------------------------------!'; const result = e1.pipe( mergeMap((x: string) => of(x)), auditTime(t), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should auditTime values until source raises error', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--(bc)-------d---------------#'); const e1subs = ' ^------------------------------!'; const t = time(' -----| '); // -----| const expected = '------c-------------d----------#'; expectObservable(e1.pipe(auditTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/buffer-spec.ts000066400000000000000000000312171431412030200202330ustar00rootroot00000000000000import { buffer, mergeMap, take, window, toArray } from 'rxjs/operators'; import { EMPTY, NEVER, throwError, of, Subject } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; import { expect } from 'chai'; /** @test {buffer} */ describe('Observable.prototype.buffer', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should emit buffers that close and reopen', () => { testScheduler.run(({ hot, expectObservable }) => { const a = hot(' -a-b-c-d-e-f-g-h-i-|'); const b = hot(' -----B-----B-----B-|'); const expected = '-----x-----y-----z-(F|)'; const expectedValues = { x: ['a', 'b', 'c'], y: ['d', 'e', 'f'], z: ['g', 'h', 'i'], F: [], }; expectObservable(a.pipe(buffer(b))).toBe(expected, expectedValues); }); }); it('should emit a final buffer if the closingNotifier is already complete', () => { testScheduler.run(({ hot, expectObservable }) => { const a = hot(' -a-b-c-d-e-f-g-h-i-|'); const b = hot(' -----B-----B--|'); const expected = '-----x-----y-------(F|)'; const expectedValues = { x: ['a', 'b', 'c'], y: ['d', 'e', 'f'], F: ['g', 'h', 'i'], }; expectObservable(a.pipe(buffer(b))).toBe(expected, expectedValues); }); }); it('should emit all buffered values if the source completes before the closingNotifier does', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('---^---a---b---c---d---e--f----|'); const sourceSubs = ' ^---------------------------!'; const closer = hot('---^-------------B----------------'); const closerSubs = ' ^---------------------------!'; const expected = ' --------------x-------------(F|)'; const result = source.pipe(buffer(closer)); const expectedValues = { x: ['a', 'b', 'c'], F: ['d', 'e', 'f'], }; expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(closer.subscriptions).toBe(closerSubs); }); }); it('should work with empty and empty selector', () => { testScheduler.run(({ expectObservable }) => { const a = EMPTY; const b = EMPTY; const expected = '(F|)'; expectObservable(a.pipe(buffer(b))).toBe(expected, { F: [] }); }); }); it('should work with empty and non-empty selector', () => { testScheduler.run(({ hot, expectObservable }) => { const a = EMPTY; const b = hot('-----a-----'); const expected = '(F|)'; expectObservable(a.pipe(buffer(b))).toBe(expected, { F: [] }); }); }); it('should work with non-empty and empty selector', () => { testScheduler.run(({ hot, expectObservable }) => { const a = hot('--1--2--^--3--4--5---6----7--8--9---0---|'); const b = EMPTY; const expected = ' --------------------------------(F|)'; expectObservable(a.pipe(buffer(b))).toBe(expected, { F: ['3', '4', '5', '6', '7', '8', '9', '0'], }); }); }); it('should work with never and never selector', () => { testScheduler.run(({ expectObservable }) => { const a = NEVER; const b = NEVER; const expected = '-'; expectObservable(a.pipe(buffer(b))).toBe(expected); }); }); it('should work with never and empty selector', () => { testScheduler.run(({ expectObservable }) => { const a = NEVER; const b = EMPTY; const expected = '-'; expectObservable(a.pipe(buffer(b))).toBe(expected); }); }); it('should work with empty and never selector', () => { testScheduler.run(({ expectObservable }) => { const a = EMPTY; const b = NEVER; const expected = '(F|)'; expectObservable(a.pipe(buffer(b))).toBe(expected, { F: [] }); }); }); it('should work with non-empty and throw selector', () => { testScheduler.run(({ hot, expectObservable }) => { const a = hot('---^--a--'); const b = throwError(() => new Error('too bad')); const expected = '#'; expectObservable(a.pipe(buffer(b))).toBe(expected, null, new Error('too bad')); }); }); it('should work with throw and non-empty selector', () => { testScheduler.run(({ hot, expectObservable }) => { const a = throwError(() => new Error('too bad')); const b = hot('---^--a--'); const expected = '#'; expectObservable(a.pipe(buffer(b))).toBe(expected, null, new Error('too bad')); }); }); it('should work with error', () => { testScheduler.run(({ hot, expectObservable }) => { const a = hot('---^-------#', undefined, new Error('too bad')); const b = hot('---^--------'); const expected = '--------#'; expectObservable(a.pipe(buffer(b))).toBe(expected, null, new Error('too bad')); }); }); it('should work with error and non-empty selector', () => { testScheduler.run(({ hot, expectObservable }) => { const a = hot('---^-------#', undefined, new Error('too bad')); const b = hot('---^---a----'); const expected = '----a---#'; expectObservable(a.pipe(buffer(b))).toBe(expected, { a: [] }, new Error('too bad')); }); }); it('should work with selector', () => { // Buffer Boundaries Simple (RxJS 4) testScheduler.run(({ hot, expectObservable }) => { const a = hot('--1--2--^--3--4--5---6----7--8--9---0---|'); const b = hot('--------^--a-------b---cd---------e---f---|'); const expected = ' ---a-------b---cd---------e---f-(F|)'; const expectedValues = { a: ['3'], b: ['4', '5'], c: ['6'], d: [] as string[], e: ['7', '8', '9'], f: ['0'], F: [], }; expectObservable(a.pipe(buffer(b))).toBe(expected, expectedValues); }); }); it('should work with selector completed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('--1--2--^--3--4--5---6----7--8--9---0---|'); const subs = ' ^-------------------------------!'; const b = hot('--------^--a-------b---cd| '); const expected = ' ---a-------b---cd---------------(F|)'; const expectedValues = { a: ['3'], b: ['4', '5'], c: ['6'], d: [] as string[], F: ['7', '8', '9', '0'], }; expectObservable(a.pipe(buffer(b))).toBe(expected, expectedValues); expectSubscriptions(a.subscriptions).toBe(subs); }); }); it('should allow unsubscribing the result Observable early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('--1--2--^--3--4--5---6----7--8--9---0---|'); const unsub = ' --------------! '; const subs = ' ^-------------! '; const b = hot('--------^--a-------b---cd| '); const expected = ' ---a-------b--- '; const expectedValues = { a: ['3'], b: ['4', '5'], }; expectObservable(a.pipe(buffer(b)), unsub).toBe(expected, expectedValues); expectSubscriptions(a.subscriptions).toBe(subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('--1--2--^--3--4--5---6----7--8--9---0---|'); const subs = ' ^-------------! '; const b = hot('--------^--a-------b---cd| '); const expected = ' ---a-------b--- '; const unsub = ' --------------! '; const expectedValues = { a: ['3'], b: ['4', '5'], }; const result = a.pipe( mergeMap((x: any) => of(x)), buffer(b), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected, expectedValues); expectSubscriptions(a.subscriptions).toBe(subs); }); }); it('should work with non-empty and selector error', () => { // Buffer Boundaries onErrorSource (RxJS 4) testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('--1--2--^--3-----#', { '3': 3 }, new Error('too bad')); const subs = ' ^--------!'; const b = hot('--------^--a--b---'); const expected = ' ---a--b--#'; const expectedValues = { a: [3], b: [] as string[], }; expectObservable(a.pipe(buffer(b))).toBe(expected, expectedValues, new Error('too bad')); expectSubscriptions(a.subscriptions).toBe(subs); }); }); it('should work with non-empty and empty selector error', () => { testScheduler.run(({ hot, expectObservable }) => { const a = hot('--1--2--^--3--4--5---6----7--8--9---0---|'); const b = hot('--------^----------------#', undefined, new Error('too bad')); const expected = ' -----------------#'; expectObservable(a.pipe(buffer(b))).toBe(expected, null, new Error('too bad')); }); }); it('should work with non-empty and selector error', () => { // Buffer Boundaries onErrorBoundaries (RxJS 4) testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const obj = { a: true, b: true, c: true }; const a = hot('--1--2--^--3--4--5---6----7--8--9---0---|'); const subs = ' ^----------------!'; const b = hot('--------^--a-------b---c-#', obj, new Error('too bad')); const expected = ' ---a-------b---c-#'; const expectedValues = { a: ['3'], b: ['4', '5'], c: ['6'], }; expectObservable(a.pipe(buffer(b))).toBe(expected, expectedValues, new Error('too bad')); expectSubscriptions(a.subscriptions).toBe(subs); }); }); it('should unsubscribe notifier when source unsubscribed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('--1--2--^--3--4--5---6----7--8--9---0---|'); const unsub = ' --------------! '; const subs = ' ^-------------! '; const b = hot('--------^--a-------b---cd| '); const bsubs = ' ^-------------! '; const expected = ' ---a-------b--- '; const expectedValues = { a: ['3'], b: ['4', '5'], }; expectObservable(a.pipe(buffer(b)), unsub).toBe(expected, expectedValues); expectSubscriptions(a.subscriptions).toBe(subs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should unsubscribe notifier when source unsubscribed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' -a-b-c-d-e-f-g-h-i-|'); const b = hot(' -----1-----2-----3-|'); const bsubs = ' ^----!'; const expected = '-----(x|)'; const expectedValues = { x: ['a', 'b', 'c'], }; expectObservable(a.pipe(buffer(b), take(1))).toBe(expected, expectedValues); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should emit properly with an observable using itself as a notifier', () => { const results: any[] = []; const subject = new Subject(); subject.pipe(buffer(subject)).subscribe({ next: (value) => results.push(value), complete: () => results.push('complete'), }); subject.next(1); expect(results).to.deep.equal([[1]]); subject.next(2); expect(results).to.deep.equal([[1], [2]]); subject.complete(); expect(results).to.deep.equal([[1], [2], [], 'complete']); }); describe('equivalence with the window operator', () => { const cases = [ { source: ' -a-b-c-d-e-f-g-h-i-|', notifier: ' -----B-----B-----B-|', }, { source: ' -a-b-c-d-e-f-g-h-i-|', notifier: ' -----B-----B--| ', }, { source: ' -a-b-c-d-e---------|', notifier: ' -----B-----B-----B-|', }, { source: ' -a-b-c-d-e-f-g-h-i-|', notifier: ' -------------------|', }, ]; cases.forEach(({ source, notifier }, index) => { it(`should be equivalent for case ${index}`, () => { testScheduler.run(({ hot, expectObservable }) => { const a = hot(source); const b = hot(notifier); expectObservable(a.pipe(buffer(b))).toEqual( a.pipe( window(b), mergeMap((w) => w.pipe(toArray())) ) ); }); }); }); }); }); rxjs-7.5.7/spec/operators/bufferCount-spec.ts000066400000000000000000000141321431412030200212410ustar00rootroot00000000000000import { expect } from 'chai'; import { Subject, of, Observable } from 'rxjs'; import { bufferCount, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {bufferCount} */ describe('bufferCount operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should emit buffers at intervals', () => { testScheduler.run(({ hot, expectObservable }) => { const values = { v: ['a', 'b', 'c'], w: ['c', 'd', 'e'], x: ['e', 'f', 'g'], y: ['g', 'h', 'i'], z: ['i'], }; const e1 = hot(' --a--b--c--d--e--f--g--h--i--|'); const expected = '--------v-----w-----x-----y--(z|)'; expectObservable(e1.pipe(bufferCount(3, 2))).toBe(expected, values); }); }); it('should emit buffers at buffersize of intervals if not specified', () => { testScheduler.run(({ hot, expectObservable }) => { const values = { x: ['a', 'b'], y: ['c', 'd'], z: ['e', 'f'], }; const e1 = hot(' --a--b--c--d--e--f--|'); const expected = '-----x-----y-----z--|'; expectObservable(e1.pipe(bufferCount(2))).toBe(expected, values); }); }); it('should buffer properly (issue #2062)', () => { const item$ = new Subject(); const results: any[] = []; item$.pipe(bufferCount(3, 1)).subscribe((value) => { results.push(value); if (value.join() === '1,2,3') { item$.next(4); } }); item$.next(1); item$.next(2); item$.next(3); expect(results).to.deep.equal([ [1, 2, 3], [2, 3, 4], ]); }); it('should emit partial buffers if source completes before reaching specified buffer count', () => { testScheduler.run(({ hot, expectObservable }) => { const e1 = hot(' --a--b--c--d--|'); const expected = '--------------(x|)'; expectObservable(e1.pipe(bufferCount(5))).toBe(expected, { x: ['a', 'b', 'c', 'd'] }); }); }); it('should emit full buffer then last partial buffer if source completes', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a^-b--c--d--e--|'); const e1subs = ' ^-------------!'; const expected = ' --------y-----(z|)'; expectObservable(e1.pipe(bufferCount(3))).toBe(expected, { y: ['b', 'c', 'd'], z: ['e'] }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit buffers at intervals, but stop when result is unsubscribed early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { v: ['a', 'b', 'c'], w: ['c', 'd', 'e'], }; const e1 = hot(' --a--b--c--d--e--f--g--h--i--|'); const unsub = ' ------------------! '; const subs = ' ^-----------------! '; const expected = '--------v-----w---- '; expectObservable(e1.pipe(bufferCount(3, 2)), unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { v: ['a', 'b', 'c'], w: ['c', 'd', 'e'], }; const e1 = hot(' --a--b--c--d--e--f--g--h--i--|'); const subs = ' ^-----------------! '; const expected = '--------v-----w---- '; const unsub = ' ------------------! '; const result = e1.pipe( mergeMap((x: any) => of(x)), bufferCount(3, 2), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should raise error if source raise error before reaching specified buffer count', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--#'); const e1subs = ' ^-------------!'; const expected = '--------------#'; expectObservable(e1.pipe(bufferCount(5))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit buffers with specified skip count when skip count is less than window count', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { v: ['a', 'b', 'c'], w: ['b', 'c', 'd'], x: ['c', 'd', 'e'], y: ['d', 'e'], z: ['e'], }; const e1 = hot(' --a--b--c--d--e--|'); const e1subs = ' ^----------------!'; const expected = '--------v--w--x--(yz|)'; expectObservable(e1.pipe(bufferCount(3, 1))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit buffers with specified skip count when skip count is more than window count', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--b--c--d--e--|'); const e1subs = ' ^----------------!'; const expected = '-----y--------z--|'; const values = { y: ['a', 'b'], z: ['d', 'e'], }; expectObservable(e1.pipe(bufferCount(2, 3))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(bufferCount(1), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/bufferTime-spec.ts000066400000000000000000000405711431412030200210550ustar00rootroot00000000000000import { of, throwError, interval, scheduled, asapScheduler, Subject } from 'rxjs'; import { bufferTime, mergeMap, take, tap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; import { expect } from 'chai'; /** @test {bufferTime} */ describe('bufferTime operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should emit buffers at intervals', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---b---c---d---e---f---g-----| '); const subs = ' ^--------------------------------! '; const t = time(' ----------| '); const expected = '----------w---------x---------y--(z|)'; const values = { w: ['a', 'b'], x: ['c', 'd', 'e'], y: ['f', 'g'], z: [] as string[], }; const result = e1.pipe(bufferTime(t, null, Infinity, testScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should emit buffers at intervals test 2', () => { testScheduler.run(({ hot, time, expectObservable }) => { const e1 = hot(' ---------a---------b---------c---------d---------e---------g--------| '); const t = time(' --------------------------------| '); const expected = '--------------------------------x-------------------------------y---(z|)'; const values = { x: ['a', 'b', 'c'], y: ['d', 'e', 'g'], z: [] as string[], }; const result = e1.pipe(bufferTime(t, null, Infinity, testScheduler)); expectObservable(result).toBe(expected, values); }); }); it('should emit buffers at intervals or when the buffer is full', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---b---c---d---e---f---g-----| '); const subs = ' ^--------------------------------! '; const t = time(' ----------| '); // ----------| // ----------| // ----------| const expected = '-------w-------x-------y---------(z|)'; const values = { w: ['a', 'b'], x: ['c', 'd'], y: ['e', 'f'], z: ['g'], }; const result = e1.pipe(bufferTime(t, null, 2, testScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle situations with a creation interval of zero', (done) => { // This is an odd scenario, and I can't imagine who is weird enough to want this, but here // it is. Someone scheduling buffers to open and close on microtasks, with values emitted on microtasks // NOTE: Trying this with a completely synchronous scheduler (like queueScheduler, which is // async relative to what it is scheduling, but synchronous relative to its container) will // cause your thread to lock up. Don't be weird. This test is just to prove behavior. const source = scheduled([0, 1, 2, 3, 4], asapScheduler); const results: any[] = []; source.pipe(bufferTime(0, 0, asapScheduler)).subscribe({ next: (value) => results.push(value), complete: () => { expect(results).to.deep.equal([ // It opens one on 0 and closes it on 0 [], // It opens one on 0, emits on 0, and closes on 0 (x 5) [0], [1], [2], [3], [4], // It opens one on 0, and then completes on 0, leaving us with an empty array. [], ]); done(); }, }); }); it('should emit buffers at intervals or when the buffer is full test 2', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---b---c---d---e---f---g-----| '); const subs = ' ^--------------------------------! '; const t = time(' ----------| '); // ---------|---------|---------| const expected = '----------w--------x---------y---(z|)'; const values = { w: ['a', 'b'], x: ['c', 'd', 'e'], y: ['f', 'g'], z: [] as string[], }; const result = e1.pipe(bufferTime(t, null, 3, testScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should emit buffers that have been created at intervals and close after the specified delay', () => { testScheduler.run(({ hot, time, expectObservable }) => { const e1 = hot(' ---a---b---c----d----e----f----g----h----i----(k|)'); // --------------------*--------------------*---- start interval // ---------------------| timespans // ---------------------| // -----| const t = time(' ---------------------| '); const interval = time('--------------------| '); const expected = ' ---------------------x-------------------y----(z|)'; const values = { x: ['a', 'b', 'c', 'd', 'e'], y: ['e', 'f', 'g', 'h', 'i'], z: ['i', 'k'], }; const result = e1.pipe(bufferTime(t, interval, Infinity, testScheduler)); expectObservable(result).toBe(expected, values); }); }); it('should emit buffers that have been created at intervals and close after the specified delay or when the buffer is full', () => { testScheduler.run(({ hot, time, expectObservable }) => { const e1 = hot(' ---a---b---c----d----e----f----g----h----i----(k|)'); // --------------------*--------------------*---- start interval // ---------------------| timespans // ---------------------| // -----| const t = time(' ---------------------| '); const interval = time(' --------------------| '); const expected = '----------------x-------------------y---------(z|)'; const values = { x: ['a', 'b', 'c', 'd'], y: ['e', 'f', 'g', 'h'], z: ['i', 'k'], }; const result = e1.pipe(bufferTime(t, interval, 4, testScheduler)); expectObservable(result).toBe(expected, values); }); }); it('should emit buffers with timeSpan 10 and creationInterval 7', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot('--1--^2--3---4---5--6--7---8----9------------| '); // -------*------*------*------*------*----- creation interval // ----------| timespans // ----------| // ----------| // ----------| // ----------| // ----------| const e1subs = ' ^---------------------------------------! '; const t = time(' ----------|'); const interval = time(' -------|'); const expected = ' ----------a------b------c------d------e-(f|)'; const values = { a: ['2', '3', '4'], b: ['4', '5', '6'], c: ['6', '7', '8'], d: ['8', '9'], e: [] as string[], f: [] as string[], }; const result = e1.pipe(bufferTime(t, interval, Infinity, testScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit buffers but handle source ending with an error', () => { testScheduler.run(({ hot, time, expectObservable }) => { const e1 = hot('--1--^2--3---4---5--6--7---8----9------------#'); // -------*------*------*------*------*----- creation interval // ----------| timespans // ----------| // ----------| // ----------| // ----------| // ----------| const t = time(' ----------|'); const interval = time(' -------|'); const expected = ' ----------a------b------c------d------e-#'; const values = { a: ['2', '3', '4'], b: ['4', '5', '6'], c: ['6', '7', '8'], d: ['8', '9'], e: [] as string[], }; const result = e1.pipe(bufferTime(t, interval, Infinity, testScheduler)); expectObservable(result).toBe(expected, values); }); }); it('should emit buffers and allow result to unsubscribed early', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot('--1--^2--3---4---5--6--7---8----9------------|'); const unsub = ' -----------------! '; const subs = ' ^----------------! '; // -------*------*------*------*------*----- creation interval // ----------| timespans // ----------| // ----------| const t = time(' ----------| '); const interval = time(' -------| '); const expected = ' ----------a------ '; const values = { a: ['2', '3', '4'], }; const result = e1.pipe(bufferTime(t, interval, Infinity, testScheduler)); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot('--1--^2--3---4---5--6--7---8----9------------|'); const subs = ' ^---------------! '; // -------*------*------*------*------*----- creation interval // ----------| timespans // ----------| // ----------| const t = time(' ----------|'); const interval = time(' -------|'); const expected = ' ----------a------ '; const unsub = ' ----------------! '; const values = { a: ['2', '3', '4'], }; const result = e1.pipe( mergeMap((x: any) => of(x)), bufferTime(t, interval, Infinity, testScheduler), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle empty', () => { testScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const expected = '(b|)'; const values = { b: [] as string[] }; const t = time('----------|'); const result = e1.pipe(bufferTime(t, null, Infinity, testScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle never', () => { testScheduler.run(({ cold, time, expectObservable }) => { const e1 = cold('-'); const unsub = ' --------------------------------------------!'; const t = time(' ----------| '); const expected = '----------a---------a---------a---------a----'; const result = e1.pipe(bufferTime(t, null, Infinity, testScheduler)); expectObservable(result, unsub).toBe(expected, { a: [] }); }); }); it('should handle throw', () => { testScheduler.run(({ time, expectObservable }) => { const e1 = throwError(() => new Error('haha')); const expected = '#'; const t = time('----------|'); const result = e1.pipe(bufferTime(t, null, Infinity, testScheduler)); expectObservable(result).toBe(expected, undefined, new Error('haha')); }); }); it('should handle errors', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---b---c---#'); const e1subs = ' ^--------------!'; const t = time(' ----------|'); const expected = '----------w----#'; const values = { w: ['a', 'b'], }; const result = e1.pipe(bufferTime(t, null, Infinity, testScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit buffers that have been created at intervals and close after the specified delay with errors', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---b---c----d----e----f----g----h----i--#'); // --------------------|-------------------|-------------------| interval // ---------------------| // ---------------------| // ---------------------| timespan const e1subs = ' ^-------------------------------------------!'; const t = time(' ---------------------| '); const interval = time(' --------------------| '); const expected = ' ---------------------x-------------------y--#'; const values = { x: ['a', 'b', 'c', 'd', 'e'], y: ['e', 'f', 'g', 'h', 'i'], }; const result = e1.pipe(bufferTime(t, interval, Infinity, testScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not throw when subscription synchronously unsubscribed after emit', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---b---c---d---e---f---g-----|'); const subs = ' ^-------------------! '; const t = time(' ----------| '); const expected = '----------w---------(x|) '; const values = { w: ['a', 'b'], x: ['c', 'd', 'e'], }; const result = e1.pipe(bufferTime(t, null, Infinity, testScheduler), take(2)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should not have errors when take follows and maxBufferSize is provided', () => { testScheduler.run(({ expectObservable }) => { const tick = 1; const buffTime = 5; const expected = '-----a----b----c----d----(e|)'; const values = { a: [0, 1, 2, 3], b: [4, 5, 6, 7, 8], c: [9, 10, 11, 12, 13], d: [14, 15, 16, 17, 18], e: [19, 20, 21, 22, 23], }; const source = interval(tick, testScheduler).pipe(bufferTime(buffTime, null, 10, testScheduler), take(5)); expectObservable(source).toBe(expected, values); }); }); it('should not mutate the buffer on reentrant next', () => { testScheduler.run(({ expectObservable, time }) => { const subject = new Subject(); const t1 = time(' -|'); const t2 = time(' --|'); const expected = '--(a|)'; const result = subject.pipe( bufferTime(t2), tap(() => subject.next(2)), take(1) ); testScheduler.schedule(() => subject.next(1), t1); expectObservable(result).toBe(expected, { a: [1] }); }); }); }); rxjs-7.5.7/spec/operators/bufferToggle-spec.ts000066400000000000000000000470011431412030200213730ustar00rootroot00000000000000import { expect } from 'chai'; import { of, concat, timer, EMPTY } from 'rxjs'; import { bufferToggle, mergeMap, mapTo } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {bufferToggle} */ describe('bufferToggle operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should emit buffers using hot openings and hot closings', () => { testScheduler.run(({ hot, expectObservable }) => { const e1 = hot(' ---a---b---c---d---e---f---g---|'); const e2 = hot(' --o------------------o---------|'); const e3 = hot(' ---------c---------------c-----|'); const expected = '---------x---------------y-----|'; const values = { x: ['a', 'b'], y: ['f'], }; const result = e1.pipe(bufferToggle(e2, (x: any) => e3)); expectObservable(result).toBe(expected, values); }); }); it('should emit buffers that are opened by an observable from the first argument and closed by an observable returned by the function in the second argument', () => { testScheduler.run(({ hot, cold, expectObservable }) => { const e1 = hot(' -----a----b----c----d----e----f----g----h----i----|'); const e2 = cold(' -------------x-------------y--------------z-------|'); const e3 = cold(' ---------------(j|)'); // ---------------(j|) // ---------------(j|) const expected = '----------------------------q-------------r-------(s|)'; const values = { q: ['c', 'd', 'e'], r: ['f', 'g', 'h'], s: ['i'], }; const innerVals = ['x', 'y', 'z']; expectObservable( e1.pipe( bufferToggle(e2, (x: string) => { expect(x).to.equal(innerVals.shift()); return e3; }) ) ).toBe(expected, values); }); }); it('should emit buffers using varying cold closings', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const e2 = cold(' --x-----------y--------z---| '); const subs = ' ^----------------------------------! '; const closings = [ cold(' ---------------s--| '), cold(' ----(s|) '), cold(' ---------------(s|)'), ]; const closeSubs = [ ' --^--------------! ', ' --------------^---! ', ' -----------------------^-----------! ', ]; const expected = ' -----------------ij----------------(k|) '; const values = { i: ['b', 'c', 'd', 'e'], j: ['e'], k: ['g', 'h'], }; let i = 0; const result = e1.pipe(bufferToggle(e2, () => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); expectSubscriptions(closings[2].subscriptions).toBe(closeSubs[2]); }); }); it('should emit buffers using varying hot closings', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const e2 = cold(' --x-----------y--------z---| '); const subs = ' ^----------------------------------! '; const closings = [ { obs: hot(' -1--^----------------s-| '), sub: ' --^--------------! ', }, { obs: hot(' -----3----4-------(s|) '), sub: ' --------------^---! ', }, { obs: hot(' -------3----4-------5----------------s|'), sub: ' -----------------------^-----------! ', }, ]; const expected = ' -----------------ij----------------(k|)'; const values = { i: ['b', 'c', 'd', 'e'], j: ['e'], k: ['g', 'h'], }; let i = 0; const result = e1.pipe(bufferToggle(e2, () => closings[i++].obs)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); for (let j = 0; j < closings.length; j++) { expectSubscriptions(closings[j].obs.subscriptions).toBe(closings[j].sub); } }); }); it('should emit buffers using varying empty delayed closings', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const e2 = cold(' --x-----------y--------z---| '); const subs = ' ^----------------------------------! '; const closings = [ cold(' ---------------| '), cold(' ----| '), cold(' ---------------| '), ]; const expected = ' -----------------------------------(ijk|)'; const values = { i: ['b', 'c', 'd', 'e', 'f', 'g', 'h'], j: ['e', 'f', 'g', 'h'], k: ['g', 'h'], }; let i = 0; const result = e1.pipe(bufferToggle(e2, () => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should emit buffers using varying cold closings, outer unsubscribed early', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const subs = ' ^---------! '; const e2 = cold(' --x-----------y--------z---| '); const closings = [ cold(' ---------------s--| '), cold(' ----(s|) '), cold(' ---------------(s|)'), ]; const csub0 = ' --^-------! '; const expected = ' ----------- '; const unsub = ' ----------! '; const values = { i: ['b', 'c', 'd', 'e'], }; let i = 0; const result = e1.pipe(bufferToggle(e2, () => closings[i++])); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(csub0); expectSubscriptions(closings[1].subscriptions).toBe([]); expectSubscriptions(closings[2].subscriptions).toBe([]); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const subs = ' ^-----------------! '; const e2 = cold(' --x-----------y--------z---| '); const closings = [ cold(' ---------------s--| '), cold(' ----(s|) '), cold(' ---------------(s|)'), ]; const expected = ' -----------------i- '; const unsub = ' ------------------! '; const values = { i: ['b', 'c', 'd', 'e'], }; let i = 0; const result = e1.pipe( mergeMap((x: any) => of(x)), bufferToggle(e2, () => closings[i++]), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should propagate error thrown from closingSelector', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const e2 = cold(' --x-----------y--------z---| '); const subs = ' ^-------------! '; const closings = [ cold(' ---------------s--| '), cold(' ----(s|) '), cold(' ---------------(s|)'), ]; const closeSubs0 = ' --^-----------! '; const expected = ' --------------# '; let i = 0; const result = e1.pipe( bufferToggle(e2, () => { if (i === 1) { throw 'error'; } return closings[i++]; }) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs0); expectSubscriptions(closings[1].subscriptions).toBe([]); expectSubscriptions(closings[2].subscriptions).toBe([]); }); }); it('should propagate error emitted from a closing', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const e2 = cold(' --x-----------y--------z---| '); const subs = ' ^-------------! '; const closings = [ cold(' ---------------s--| '), cold(' # '), ]; const closeSubs = [ ' --^-----------! ', ' --------------(^!) ', ]; const expected = ' --------------# '; let i = 0; const result = e1.pipe(bufferToggle(e2, () => closings[i++])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); }); }); it('should propagate error emitted late from a closing', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const e2 = cold(' --x-----------y--------z---| '); const subs = ' ^------------------! '; const closings = [ cold(' ---------------s--| '), cold(' -----# '), ]; const closeSubs = [ ' --^--------------! ', ' --------------^----! ', ]; const expected = ' -----------------i-# '; const values = { i: ['b', 'c', 'd', 'e'], }; let i = 0; const result = e1.pipe(bufferToggle(e2, () => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); }); }); it('should handle errors', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e--# '); const e2 = cold(' --x-----------y--------z---|'); const subs = ' ^------------------! '; // prettier-ignore const closings = [ cold(' ---------------s--| '), cold(' -------s| '), ]; // prettier-ignore const closeSubs = [ ' --^--------------! ', ' --------------^----! ', ]; const expected = ' -----------------i-# '; const values = { i: ['b', 'c', 'd', 'e'], }; let i = 0; const result = e1.pipe(bufferToggle(e2, () => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); }); }); it('should handle empty source', () => { testScheduler.run(({ cold, expectObservable }) => { const e1 = cold(' |'); const e2 = cold(' --o-----|'); const e3 = cold(' -----c--|'); const expected = '|'; const values = { x: [] as string[] }; const result = e1.pipe(bufferToggle(e2, () => e3)); expectObservable(result).toBe(expected, values); }); }); it('should handle throw', () => { testScheduler.run(({ cold, expectObservable }) => { const e1 = cold(' #'); const e2 = cold(' --o-----|'); const e3 = cold(' -----c--|'); const expected = '#'; const values = { x: [] as string[] }; const result = e1.pipe(bufferToggle(e2, () => e3)); expectObservable(result).toBe(expected, values); }); }); it('should handle never', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e2 = cold(' --o-----o------o-----o---o-----|'); const e3 = cold(' --c-|'); // --c-| // --c-| // --c-| // --c-| const unsub = ' --------------------------------------------!'; const subs = ' ^-------------------------------------------!'; const expected = '----x-----x------x-----x---x-----------------'; const values = { x: [] as string[] }; const result = e1.pipe(bufferToggle(e2, () => e3)); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle a never opening Observable', () => { testScheduler.run(({ hot, cold, expectObservable }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const e2 = cold(' -'); const e3 = cold(' --c-|'); const expected = ' -----------------------------------|'; const result = e1.pipe(bufferToggle(e2, () => e3)); expectObservable(result).toBe(expected); }); }); it('should handle a never closing Observable', () => { testScheduler.run(({ hot, cold, expectObservable }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const e2 = cold(' ---o---------------o-----------| '); const e3 = cold(' -'); const expected = ' -----------------------------------(xy|)'; const values = { x: ['b', 'c', 'd', 'e', 'f', 'g', 'h'], y: ['f', 'g', 'h'], }; const result = e1.pipe(bufferToggle(e2, () => e3)); expectObservable(result).toBe(expected, values); }); }); it('should handle opening Observable that just throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const e1subs = ' (^!)'; const e2 = cold(' #'); const e2subs = ' (^!)'; const e3 = cold(' --c-|'); const expected = ' #'; const result = e1.pipe(bufferToggle(e2, () => e3)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should accept openings resolved promise', (done) => { const e1 = concat(timer(10).pipe(mapTo(1)), timer(100).pipe(mapTo(2)), timer(150).pipe(mapTo(3)), timer(200).pipe(mapTo(4))); const expected = [[1]]; e1.pipe( bufferToggle( new Promise((resolve: any) => { resolve(42); }), () => { return timer(50); } ) ).subscribe({ next: (x) => { expect(x).to.deep.equal(expected.shift()); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { expect(expected.length).to.be.equal(0); done(); }, }); }); it('should accept openings rejected promise', (done) => { const e1 = concat(of(1), timer(10).pipe(mapTo(2)), timer(10).pipe(mapTo(3)), timer(100).pipe(mapTo(4))); const expected = 42; e1.pipe( bufferToggle( new Promise((resolve: any, reject: any) => { reject(expected); }), () => { return timer(50); } ) ).subscribe({ next: (x) => { done(new Error('should not be called')); }, error: (x) => { expect(x).to.equal(expected); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); it('should accept closing selector that returns a resolved promise', (done) => { const e1 = concat(of(1), timer(10).pipe(mapTo(2)), timer(10).pipe(mapTo(3)), timer(100).pipe(mapTo(4))); const expected = [[1]]; e1.pipe( bufferToggle( of(10), () => new Promise((resolve: any) => { resolve(42); }) ) ).subscribe({ next: (x) => { expect(x).to.deep.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { expect(expected.length).to.be.equal(0); done(); }, }); }); it('should accept closing selector that returns a rejected promise', (done) => { const e1 = concat(of(1), timer(10).pipe(mapTo(2)), timer(10).pipe(mapTo(3)), timer(100).pipe(mapTo(4))); const expected = 42; e1.pipe( bufferToggle( of(10), () => new Promise((resolve: any, reject: any) => { reject(expected); }) ) ).subscribe({ next: (x) => { done(new Error('should not be called')); }, error: (x) => { expect(x).to.equal(expected); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); it('should handle empty closing observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const subs = ' ^----------------------------------! '; const e2 = cold(' --x-----------y--------z---| '); const expected = ' -----------------------------------(ijk|)'; const values = { i: ['b', 'c', 'd', 'e', 'f', 'g', 'h'], j: ['e', 'f', 'g', 'h'], k: ['g', 'h'], }; const result = e1.pipe(bufferToggle(e2, () => EMPTY)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); }); rxjs-7.5.7/spec/operators/bufferWhen-spec.ts000066400000000000000000000401211431412030200210470ustar00rootroot00000000000000import { expect } from 'chai'; import { of } from 'rxjs'; import { bufferWhen, mergeMap, takeWhile } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {bufferWhen} */ describe('bufferWhen operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should emit buffers that close and reopen', () => { testScheduler.run(({ hot, cold, expectObservable }) => { const e1 = hot('--a--^---b---c---d---e---f---g---------| '); const e2 = cold(' --------------(s|) '); // --------------(s|) const expected = ' --------------x-------------y-----(z|)'; const values = { x: ['b', 'c', 'd'], y: ['e', 'f', 'g'], z: [] as string[], }; expectObservable(e1.pipe(bufferWhen(() => e2))).toBe(expected, values); }); }); it('should emit buffers using varying cold closings', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const subs = ' ^----------------------------------! '; const closings = [ cold(' ---------------s--| '), cold(' ----------(s|) '), cold(' -------------(s|)'), ]; const expected = ' ---------------x---------y---------(z|) '; const values = { x: ['b', 'c', 'd'], y: ['e', 'f', 'g'], z: ['h'], }; let i = 0; const result = e1.pipe(bufferWhen(() => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should emit buffers using varying hot closings', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const subs = ' ^----------------------------------! '; const closings = [ { obs: hot(' -1--^--------------s---| '), sub: ' ^--------------! ', }, { obs: hot(' --1-^----3--------4----------s-| '), sub: ' ---------------^---------! ', }, { obs: hot(' 1-2-^------3----4-------5--6-----------s--|'), sub: ' -------------------------^---------! ', }, ]; const expected = ' ---------------x---------y---------(z|)'; const values = { x: ['b', 'c', 'd'], y: ['e', 'f', 'g'], z: ['h'], }; let i = 0; const result = e1.pipe(bufferWhen(() => closings[i++].obs)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); for (let j = 0; j < closings.length; j++) { expectSubscriptions(closings[j].obs.subscriptions).toBe(closings[j].sub); } }); }); it('should not emit buffers using varying empty delayed closings', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const subs = ' ^----------------------------------! '; const closings = [ cold(' ---------------| '), cold(' ----------| '), cold(' -------------|'), ]; const closeSubs = [ ' ^--------------! ', ' ', ' ', ]; const expected = ' -----------------------------------(x|)'; const values = { x: ['b', 'c', 'd', 'e', 'f', 'g', 'h'], }; let i = 0; const result = e1.pipe(bufferWhen(() => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); expectSubscriptions(closings[2].subscriptions).toBe(closeSubs[2]); }); }); it('should emit buffers using varying cold closings, outer unsubscribed early', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const unsub = ' ------------------! '; const subs = ' ^-----------------! '; const closings = [ cold(' ---------------(s|) '), cold(' ----------(s|) '), cold(' -------------(s|)'), ]; const closeSubs = [ ' ^--------------! ', ' ---------------^--! ', ]; const expected = ' ---------------x--- '; const values = { x: ['b', 'c', 'd'], }; let i = 0; const result = e1.pipe(bufferWhen(() => closings[i++])); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); expectSubscriptions(closings[2].subscriptions).toBe([]); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const subs = ' ^-----------------! '; const closings = [ cold(' ---------------(s|) '), cold(' ----------(s|) '), cold(' -------------(s|)'), ]; const closeSubs = [ ' ^--------------! ', ' ---------------^--! ', ]; const expected = ' ---------------x--- '; const unsub = ' ------------------! '; const values = { x: ['b', 'c', 'd'], }; let i = 0; const result = e1.pipe( mergeMap((x: any) => of(x)), bufferWhen(() => closings[i++]), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); expectSubscriptions(closings[2].subscriptions).toBe([]); }); }); it('should propagate error thrown from closingSelector', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const subs = ' ^--------------! '; const closings = [ cold(' ---------------s--| '), cold(' ----------(s|) '), cold(' -------------(s|)'), ]; const closeSubs0 = ' ^--------------! '; const expected = ' ---------------(x#) '; const values = { x: ['b', 'c', 'd'] }; let i = 0; const result = e1.pipe( bufferWhen(() => { if (i === 1) { throw 'error'; } return closings[i++]; }) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs0); }); }); it('should propagate error emitted from a closing', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const subs = ' ^--------------! '; const closings = [ cold(' ---------------s--| '), cold(' # '), ]; const closeSubs = [ ' ^--------------! ', ' ---------------(^!) ', ]; const expected = ' ---------------(x#) '; const values = { x: ['b', 'c', 'd'], }; let i = 0; const result = e1.pipe(bufferWhen(() => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); }); }); it('should propagate error emitted late from a closing', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const subs = ' ^--------------------! '; const closings = [ cold(' ---------------s--| '), cold(' ------# '), ]; const closeSubs = [ ' ^--------------! ', ' ---------------^-----! ', ]; const expected = ' ---------------x-----# '; const values = { x: ['b', 'c', 'd'] }; let i = 0; const result = e1.pipe(bufferWhen(() => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); }); }); it('should handle errors', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---#'); const e2 = cold(' ---------------(s|) '); // ---------------(s|) // prettier-ignore const e2subs = [ ' ^--------------! ', ' ---------------^--------!', ]; const expected = ' ---------------x--------#'; const values = { x: ['b', 'c', 'd'], }; const result = e1.pipe(bufferWhen(() => e2)); expectObservable(result).toBe(expected, values); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e2 = cold(' --------(s|)'); const e1subs = ' (^!)'; const expected = '(x|)'; const values = { x: [] as string[], }; const result = e1.pipe(bufferWhen(() => e2)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e2 = cold(' --------(s|)'); const e1subs = ' (^!)'; const expected = '#'; const values = { x: [] as string[], }; const result = e1.pipe(bufferWhen(() => e2)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle never', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const unsub = ' --------------------------------------------!'; const e1subs = ' ^-------------------------------------------!'; const e2 = cold(' --------(s|) '); const e2subs = [ ' ^-------! ', ' --------^-------! ', ' ----------------^-------! ', ' ------------------------^-------! ', ' --------------------------------^-------! ', ' ----------------------------------------^---!', ]; const expected = '--------x-------x-------x-------x-------x----'; const values = { x: [] as string[], }; const source = e1.pipe(bufferWhen(() => e2)); expectObservable(source, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle an inner never', () => { testScheduler.run(({ hot, cold, expectObservable }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const e2 = cold('-'); const expected = ' -----------------------------------(x|)'; const values = { x: ['b', 'c', 'd', 'e', 'f', 'g', 'h'], }; expectObservable(e1.pipe(bufferWhen(() => e2))).toBe(expected, values); }); }); // bufferWhen is not supposed to handle a factory that returns always sync // closing Observables, because doing such would constantly recreate a new // buffer in a synchronous infinite loop until the stack overflows. This also // happens with buffer in RxJS 4. it('should NOT handle synchronous inner', (done) => { const source = of(1, 2, 3, 4, 5, 6, 7, 8, 9); const closing = of(1); const TOO_MANY_INVOCATIONS = 30; source .pipe( bufferWhen(() => closing), takeWhile((val: any, index: number) => index < TOO_MANY_INVOCATIONS) ) .subscribe({ next: (val: any) => { expect(Array.isArray(val)).to.be.true; expect(val.length).to.equal(0); }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should handle inner throw', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const e1subs = ' (^!)'; const e2 = cold(' #'); const e2subs = ' (^!)'; const expected = ' #'; const values = { x: ['b', 'c', 'd', 'e', 'f', 'g', 'h'], }; const result = e1.pipe(bufferWhen(() => e2)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle disposing of source', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const subs = ' ^-------------------!'; const unsub = ' --------------------!'; const e2 = cold(' ---------------(s|)'); // ---------------(s|) const expected = ' ---------------x-----'; const values = { x: ['b', 'c', 'd'], y: ['e', 'f', 'g', 'h'], z: [] as string[], }; const source = e1.pipe(bufferWhen(() => e2)); expectObservable(source, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); }); rxjs-7.5.7/spec/operators/catchError-spec.ts000066400000000000000000000370641431412030200210640ustar00rootroot00000000000000import { expect } from 'chai'; import { concat, defer, Observable, of, throwError, EMPTY, from } from 'rxjs'; import { catchError, map, mergeMap, takeWhile, delay, take } from 'rxjs/operators'; import * as sinon from 'sinon'; import { createObservableInputs } from '../helpers/test-helper'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; import { asInteropObservable } from '../helpers/interop-helper'; /** @test {catch} */ describe('catchError operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should catch error and replace with a cold Observable', () => { testScheduler.run(({ hot, cold, expectObservable }) => { const e1 = hot(' --a--b--# '); const e2 = cold(' -1-2-3-|'); const expected = '--a--b---1-2-3-|'; const result = e1.pipe(catchError((err: any) => e2)); expectObservable(result).toBe(expected); }); }); it('should catch error and replace it with Observable.of()', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--------|'); const subs = ' ^-------!'; const expected = '--a--b--(XYZ|)'; const result = e1.pipe( map((n: string) => { if (n === 'c') { throw 'bad'; } return n; }), catchError((err: any) => { return of('X', 'Y', 'Z'); }) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should catch error and replace it with a cold Observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--# '); const e1subs = ' ^-------! '; const e2 = cold(' 1-2-3-4-5-|'); const e2subs = ' --------^---------!'; const expected = '--a--b--1-2-3-4-5-|'; const result = e1.pipe(catchError((err: any) => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --1-2-3-4-5-6---#'); const e1subs = ' ^------! '; const expected = '--1-2-3- '; const unsub = ' -------! '; const result = e1.pipe( catchError(() => { return of('X', 'Y', 'Z'); }) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --1-2-3-4-5-6---#'); const e1subs = ' ^------! '; const expected = '--1-2-3- '; const unsub = ' -------! '; const result = e1.pipe( mergeMap((x: any) => of(x)), catchError(() => { return of('X', 'Y', 'Z'); }), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should unsubscribe from a caught hot caught observable when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -1-2-3-# '); const e1subs = ' ^------! '; const e2 = hot(' ---3-4-5-6-7-8-9-|'); const e2subs = ' -------^----! '; const expected = '-1-2-3-5-6-7- '; const unsub = ' ------------! '; const result = e1.pipe(catchError(() => e2)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should unsubscribe from a caught cold caught observable when unsubscribed explicitly', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' -1-2-3-# '); const e1subs = ' ^------! '; const e2 = cold(' 5-6-7-8-9-|'); const e2subs = ' -------^----! '; const expected = '-1-2-3-5-6-7- '; const unsub = ' ------------! '; const result = e1.pipe(catchError(() => e2)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should unsubscribe from a caught cold caught interop observable when unsubscribed explicitly', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' -1-2-3-# '); const e1subs = ' ^------! '; const e2 = cold(' 5-6-7-8-9-|'); const e2subs = ' -------^----! '; const expected = '-1-2-3-5-6-7- '; const unsub = ' ------------! '; // This test is the same as the previous test, but the observable is // manipulated to make it look like an interop observable - an observable // from a foreign library. Interop subscribers are treated differently: // they are wrapped in a safe subscriber. This test ensures that // unsubscriptions are chained all the way to the interop subscriber. const result = e1.pipe(catchError(() => asInteropObservable(e2))); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = concat( defer(() => { sideEffects.push(1); return of(1); }), defer(() => { sideEffects.push(2); return of(2); }), defer(() => { sideEffects.push(3); return of(3); }) ); throwError(() => new Error('Some error')) .pipe( catchError(() => synchronousObservable), takeWhile((x) => x != 2) // unsubscribe at the second side-effect ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([1, 2]); }); it('should catch error and replace it with a hot Observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--# '); const e1subs = ' ^-------! '; const e2 = hot(' 1-2-3-4-5-6-7-8-9-|'); const e2subs = ' --------^---------!'; const expected = '--a--b--5-6-7-8-9-|'; const result = e1.pipe(catchError((err: any) => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should catch and allow the cold observable to be repeated with the third (caught) argument', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('--a--b--c--------| '); const subs = [ ' ^-------! ', ' --------^-------! ', ' ----------------^-------! ', ]; const expected = '--a--b----a--b----a--b--#'; let retries = 0; const result = e1.pipe( map((n: any) => { if (n === 'c') { throw 'bad'; } return n; }), catchError((err: any, caught: any) => { if (retries++ === 2) { throw 'done'; } return caught; }) ); expectObservable(result).toBe(expected, undefined, 'done'); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should catch and allow the hot observable to proceed with the third (caught) argument', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c----d---|'); // prettier-ignore const subs = [ ' ^-------! ', ' --------^--------! ', ]; const expected = '--a--b-------d---|'; let retries = 0; const result = e1.pipe( map((n: any) => { if (n === 'c') { throw 'bad'; } return n; }), catchError((err: any, caught: any) => { if (retries++ === 2) { throw 'done'; } return caught; }) ); expectObservable(result).toBe(expected, undefined, 'done'); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should catch and replace a Observable.throw() as the source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const subs = ' (^!)'; const expected = '(abc|)'; const result = e1.pipe(catchError((err: any) => of('a', 'b', 'c'))); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should mirror the source if it does not raise errors', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--b--c--|'); const subs = ' ^----------!'; const expected = '--a--b--c--|'; const result = e1.pipe(catchError((err: any) => of('x', 'y', 'z'))); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should complete if you return Observable.empty()', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--#'); const e1subs = ' ^-------!'; const e2 = cold(' |'); const e2subs = ' --------(^!)'; const expected = '--a--b--|'; const result = e1.pipe(catchError(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error if you return Observable.throw()', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--#'); const e1subs = ' ^-------!'; const e2 = cold(' #'); const e2subs = ' --------(^!)'; const expected = '--a--b--#'; const result = e1.pipe(catchError(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should never terminate if you return NEVER', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--#'); const e1subs = ' ^-------!'; const e2 = cold(' -'); const e2subs = ' --------^'; const expected = '--a--b---'; const result = e1.pipe(catchError(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should pass the error as the first argument', (done) => { throwError(() => 'bad') .pipe( catchError((err: any) => { expect(err).to.equal('bad'); return EMPTY; }) ) .subscribe({ next: () => { //noop }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should accept selector returns any ObservableInput', (done) => { const input$ = createObservableInputs(42); input$.pipe(mergeMap((input) => throwError(() => 'bad').pipe(catchError((err) => input)))).subscribe({ next: (x) => { expect(x).to.be.equal(42); }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should catch errors throw from within the constructor', () => { // See https://github.com/ReactiveX/rxjs/issues/3740 testScheduler.run(({ expectObservable }) => { const source = concat( new Observable((o) => { o.next('a'); throw 'kaboom'; }).pipe(catchError((_) => of('b'))), of('c') ); const expected = '(abc|)'; expectObservable(source).toBe(expected); }); }); context('fromPromise', () => { type SetTimeout = (callback: (...args: any[]) => void, ms: number, ...args: any[]) => NodeJS.Timer; let trueSetTimeout: SetTimeout; let sandbox: sinon.SinonSandbox; let timers: sinon.SinonFakeTimers; beforeEach(() => { trueSetTimeout = global.setTimeout; sandbox = sinon.createSandbox(); timers = sandbox.useFakeTimers(); }); afterEach(() => { sandbox.restore(); }); it('should chain a throw from a promise using Observable.throw', (done) => { const subscribeSpy = sinon.spy(); const errorSpy = sinon.spy(); const thrownError = new Error('BROKEN THROW'); const testError = new Error('BROKEN PROMISE'); from(Promise.reject(testError)) .pipe(catchError((err) => throwError(() => thrownError))) .subscribe({ next: subscribeSpy, error: errorSpy }); trueSetTimeout(() => { try { timers.tick(1); } catch (e) { return done(new Error('This should not have thrown an error')); } expect(subscribeSpy).not.to.be.called; expect(errorSpy).to.have.been.called; expect(errorSpy).to.have.been.calledWith(thrownError); done(); }, 0); }); }); // TODO(v8): see https://github.com/ReactiveX/rxjs/issues/5115 // The re-implementation in version 8 should fix the problem in the // referenced issue. Closed subscribers should remain closed. it('Properly handle async handled result if source is synchronous', (done) => { const source = new Observable((observer) => { observer.error(new Error('kaboom!')); observer.complete(); }); const sourceWithDelay = new Observable((observer) => { observer.next('delayed'); observer.complete(); }).pipe(delay(0)); const values: string[] = []; source.pipe(catchError((err) => sourceWithDelay)).subscribe({ next: (value) => values.push(value), error: (err) => done(err), complete: () => { expect(values).to.deep.equal(['delayed']); done(); }, }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( catchError(() => EMPTY), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/combineLatest-legacy-spec.ts000066400000000000000000000477751431412030200230350ustar00rootroot00000000000000import { of } from 'rxjs'; import { combineLatest, mergeMap, distinct, count } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {combineLatest} */ describe('combineLatest', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should combine events from two cold observables', () => { testScheduler.run(({ cold, expectObservable }) => { const e1 = cold(' -a--b-----c-d-e-|'); const e2 = cold(' --1--2-3-4---| '); const expected = '--A-BC-D-EF-G-H-|'; const result = e1.pipe(combineLatest(e2, (a, b) => String(a) + String(b))); expectObservable(result).toBe(expected, { A: 'a1', B: 'b1', C: 'b2', D: 'b3', E: 'b4', F: 'c4', G: 'd4', H: 'e4', }); }); }); it('should work with two nevers', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' -'); const e2subs = ' ^'; const expected = '-'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with never and empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' |'); const e2subs = ' (^!)'; const expected = '-'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with empty and never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const e2 = cold(' -'); const e2subs = ' ^'; const expected = '-'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with empty and empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const e2 = cold(' |'); const e2subs = ' (^!)'; const expected = '|'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot-empty and hot-single', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, c: 3, r: 1 + 3, //a + c }; const e1 = hot('-a-^-|', values); const e1subs = ' ^-!'; const e2 = hot('-b-^-c-|', values); const e2subs = ' ^---!'; const expected = ' ----|'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot-single and hot-empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, c: 3, }; const e1 = hot('-a-^-|', values); const e1subs = ' ^-!'; const e2 = hot('-b-^-c-|', values); const e2subs = ' ^---!'; const expected = ' ----|'; const result = e2.pipe(combineLatest(e1, (x, y) => x + y)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot-single and never', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, }; const e1 = hot('-a-^-|', values); const e1subs = ' ^-!'; const e2 = hot('------', values); //never const e2subs = ' ^--'; const expected = ' ---'; //never const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with never and hot-single', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, }; const e1 = hot('--------', values); //never const e1subs = ' ^ '; const e2 = hot('-a-^-b-|', values); const e2subs = ' ^---!'; const expected = ' -----'; //never const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot and hot', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--|', { a: 'a', b: 'b', c: 'c' }); const e1subs = ' ^--------!'; const e2 = hot('---e-^---f--g--|', { e: 'e', f: 'f', g: 'g' }); const e2subs = ' ^---------!'; const expected = ' ----x-yz--|'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, { x: 'bf', y: 'cf', z: 'cg' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should accept array of observables', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--|'); const e1subs = ' ^--------!'; const e2 = hot('---e-^---f--g--|'); const e2subs = ' ^---------!'; const e3 = hot('---h-^----i--j-|'); const e3subs = ' ^---------!'; const expected = ' -----wxyz-|'; const result = e1.pipe(combineLatest([e2, e3], (x: string, y: string, z: string) => x + y + z)); expectObservable(result).toBe(expected, { w: 'bfi', x: 'cfi', y: 'cgi', z: 'cgj' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should work with empty and error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----------|'); //empty const e1subs = ' ^-----!'; const e2 = hot(' ------#', undefined, 'shazbot!'); //error const e2subs = ' ^-----!'; const expected = '------#'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, null, 'shazbot!'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with error and empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--^---#', undefined, 'too bad, honk'); //error const e1subs = ' ^---!'; const e2 = hot('--^--------|'); //empty const e2subs = ' ^---!'; const expected = '----#'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, null, 'too bad, honk'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^--b--c--|', { a: 1, b: 2, c: 3 }); const e1subs = ' ^-!'; const e2 = hot('---^-#', undefined, 'bazinga'); const e2subs = ' ^-!'; const expected = ' --#'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, null, 'bazinga'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and hot', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^-#', undefined, 'bazinga'); const e1subs = ' ^-!'; const e2 = hot('-a-^--b--c--|', { a: 1, b: 2, c: 3 }); const e2subs = ' ^-!'; const expected = ' --#'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, null, 'bazinga'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^----#', undefined, 'jenga'); const e1subs = ' ^-!'; const e2 = hot('---^-#', undefined, 'bazinga'); const e2subs = ' ^-!'; const expected = ' --#'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, null, 'bazinga'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with error and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^--b--#', { a: 1, b: 2 }, 'wokka wokka'); const e1subs = ' ^-!'; const e2 = hot('---^-#', undefined, 'flurp'); const e2subs = ' ^-!'; const expected = ' --#'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, null, 'flurp'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^-#', undefined, 'flurp'); const e1subs = ' ^-!'; const e2 = hot('-a-^--b--#', { a: 1, b: 2 }, 'wokka wokka'); const e2subs = ' ^-!'; const expected = ' --#'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, null, 'flurp'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with never and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^-----------'); const e1subs = ' ^-----!'; const e2 = hot('---^-----#', undefined, 'wokka wokka'); const e2subs = ' ^-----!'; const expected = ' ------#'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, null, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and never', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^----#', undefined, 'wokka wokka'); const e1subs = ' ^----!'; const e2 = hot('---^-----------'); const e2subs = ' ^----!'; const expected = ' -----#'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, null, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with some and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---^----a---b--|', { a: 1, b: 2 }); const e1subs = ' ^--!'; const e2 = hot(' ---^--#', undefined, 'wokka wokka'); const e2subs = ' ^--!'; const expected = ' ---#'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, { a: 1, b: 2 }, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and some', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--#', undefined, 'wokka wokka'); const e1subs = ' ^--!'; const e2 = hot('---^----a---b--|', { a: 1, b: 2 }); const e2subs = ' ^--!'; const expected = ' ---#'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, { a: 1, b: 2 }, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle throw after complete left', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' --a--^--b---|', { a: 1, b: 2 }); const leftSubs = ' ^------!'; const right = hot('-----^--------#', undefined, 'bad things'); const rightSubs = ' ^--------!'; const expected = ' ---------#'; const result = left.pipe(combineLatest(right, (x, y) => x + y)); expectObservable(result).toBe(expected, null, 'bad things'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle throw after complete right', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' -----^--------#', undefined, 'bad things'); const leftSubs = ' ^--------!'; const right = hot(' --a--^--b---|', { a: 1, b: 2 }); const rightSubs = ' ^------!'; const expected = ' ---------#'; const result = left.pipe(combineLatest(right, (x, y) => x + y)); expectObservable(result).toBe(expected, null, 'bad things'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle interleaved with tail', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a--^--b---c---|', { a: 'a', b: 'b', c: 'c' }); const e1subs = ' ^----------!'; const e2 = hot('--d-^----e---f--|', { d: 'd', e: 'e', f: 'f' }); const e2subs = ' ^-----------!'; const expected = ' -----x-y-z--|'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, { x: 'be', y: 'ce', z: 'cf' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle two consecutive hot observables', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--|', { a: 'a', b: 'b', c: 'c' }); const e1subs = ' ^--------!'; const e2 = hot('-----^----------d--e--f--|', { d: 'd', e: 'e', f: 'f' }); const e2subs = ' ^-------------------!'; const expected = ' -----------x--y--z--|'; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result).toBe(expected, { x: 'cd', y: 'ce', z: 'cf' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle two consecutive hot observables with error left', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' --a--^--b--c--#', { a: 'a', b: 'b', c: 'c' }, 'jenga'); const leftSubs = ' ^--------!'; const right = hot('-----^----------d--e--f--|', { d: 'd', e: 'e', f: 'f' }); const rightSubs = ' ^--------!'; const expected = ' ---------#'; const result = left.pipe(combineLatest(right, (x, y) => x + y)); expectObservable(result).toBe(expected, null, 'jenga'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle two consecutive hot observables with error right', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' --a--^--b--c--|', { a: 'a', b: 'b', c: 'c' }); const leftSubs = ' ^--------!'; const right = hot('-----^----------d--e--f--#', { d: 'd', e: 'e', f: 'f' }, 'dun dun dun'); const rightSubs = ' ^-------------------!'; const expected = ' -----------x--y--z--#'; const result = left.pipe(combineLatest(right, (x, y) => x + y)); expectObservable(result).toBe(expected, { x: 'cd', y: 'ce', z: 'cf' }, 'dun dun dun'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle selector throwing', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--|', { a: 1, b: 2 }); const e1subs = ' ^--!'; const e2 = hot('--c--^--d--|', { c: 3, d: 4 }); const e2subs = ' ^--!'; const expected = ' ---#'; const result = e1.pipe( combineLatest(e2, (x, y) => { throw 'ha ha ' + x + ', ' + y; }) ); expectObservable(result).toBe(expected, null, 'ha ha 2, 4'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot('---e-^---f--g---h-|'); const e2subs = ' ^--------! '; const expected = ' ----x-yz-- '; const unsub = ' ---------! '; const values = { x: 'bf', y: 'cf', z: 'cg' }; const result = e1.pipe(combineLatest(e2, (x, y) => x + y)); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot('---e-^---f--g---h-|'); const e2subs = ' ^--------! '; const expected = ' ----x-yz-- '; const unsub = ' ---------! '; const values = { x: 'bf', y: 'cf', z: 'cg' }; const result = e1.pipe( mergeMap((x) => of(x)), combineLatest(e2, (x, y) => x + y), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit unique array instances with the default projection', () => { testScheduler.run(({ hot, expectObservable }) => { const e1 = hot(' -a--b--|'); const e2 = hot(' --1--2-|'); const expected = '-------(c|)'; const result = e1.pipe(combineLatest(e2), distinct(), count()); expectObservable(result).toBe(expected, { c: 3 }); }); }); }); rxjs-7.5.7/spec/operators/combineLatest-spec.ts000066400000000000000000000021761431412030200215550ustar00rootroot00000000000000import { combineLatest } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {combineLatest} */ describe('combineLatest', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should accept array of observables', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--|'); const e1subs = ' ^--------!'; const e2 = hot('---e-^---f--g--|'); const e2subs = ' ^---------!'; const e3 = hot('---h-^----i--j-|'); const e3subs = ' ^---------!'; const expected = ' -----wxyz-|'; const result = e1.pipe(combineLatest([e2, e3], (x: string, y: string, z: string) => x + y + z)); expectObservable(result).toBe(expected, { w: 'bfi', x: 'cfi', y: 'cgi', z: 'cgj' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); }); rxjs-7.5.7/spec/operators/combineLatestAll-spec.ts000066400000000000000000000501331431412030200222020ustar00rootroot00000000000000import { expect } from 'chai'; import { queueScheduler, of } from 'rxjs'; import { combineLatestAll, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {combineLatestAll} */ describe('combineLatestAll operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should combine events from two observables', () => { testScheduler.run(({ hot, cold, expectObservable }) => { const x = cold(' -a-----b---|'); const y = cold(' --1-2-| '); const outer = hot('-x----y--------| ', { x: x, y: y }); const expected = ' -----------------A-B--C---|'; const result = outer.pipe(combineLatestAll((a, b) => String(a) + String(b))); expectObservable(result).toBe(expected, { A: 'a1', B: 'a2', C: 'b2' }); }); }); it('should work with two nevers', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' -'); const e2subs = ' ^'; const expected = '-'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with never and empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' |'); const e2subs = ' (^!)'; const expected = '-'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with empty and never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const e2 = cold(' -'); const e2subs = ' ^'; const expected = '-'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with empty and empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const e2 = cold(' |'); const e2subs = ' (^!)'; const expected = '|'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot-empty and hot-single', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^-|'); const e1subs = ' ^-!'; const e2 = hot('-b-^-c-|'); const e2subs = ' ^---!'; const expected = ' ----|'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot-single and hot-empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^-|'); const e1subs = ' ^-!'; const e2 = hot('-b-^-c-|'); const e2subs = ' ^---!'; const expected = ' ----|'; const result = of(e2, e1).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot-single and never', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^-|'); const e1subs = ' ^-!'; const e2 = hot('------'); //never const e2subs = ' ^--'; const expected = ' ---'; //never const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with never and hot-single', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--------'); //never const e1subs = ' ^----'; const e2 = hot('-a-^-b-|'); const e2subs = ' ^---!'; const expected = ' -----'; //never const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot and hot', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--|'); const e1subs = ' ^--------!'; const e2 = hot('---e-^---f--g--|'); const e2subs = ' ^---------!'; const expected = ' ----x-yz--|'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, { x: 'bf', y: 'cf', z: 'cg' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot('---e-^---f--g---h-|'); const e2subs = ' ^--------! '; const expected = ' ----x-yz-- '; const unsub = ' ---------! '; const values = { x: 'bf', y: 'cf', z: 'cg' }; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot(' ---e-^---f--g---h-|'); const e2subs = ' ^--------! '; const expected = ' ----x-yz-- '; const unsub = ' ---------! '; const values = { x: 'bf', y: 'cf', z: 'cg' }; const result = of(e1, e2).pipe( mergeMap((x) => of(x)), combineLatestAll((x, y) => x + y), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should combine 3 observables', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--|'); const e1subs = ' ^--------!'; const e2 = hot('---e-^---f--g--|'); const e2subs = ' ^---------!'; const e3 = hot('---h-^----i--j-|'); const e3subs = ' ^---------!'; const expected = ' -----wxyz-|'; const result = of(e1, e2, e3).pipe(combineLatestAll((x, y, z) => x + y + z)); expectObservable(result).toBe(expected, { w: 'bfi', x: 'cfi', y: 'cgi', z: 'cgj' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should work with empty and error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----------|'); //empty const e1subs = ' ^-----!'; const e2 = hot(' ------#', undefined, 'shazbot!'); //error const e2subs = ' ^-----!'; const expected = '------#'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'shazbot!'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with error and empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--^---#', undefined, 'too bad, honk'); //error const e1subs = ' ^---!'; const e2 = hot('--^--------|'); //empty const e2subs = ' ^---!'; const expected = '----#'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'too bad, honk'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^--b--c--|'); const e1subs = ' ^-!'; const e2 = hot('---^-#', undefined, 'bazinga'); const e2subs = ' ^-!'; const expected = ' --#'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'bazinga'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and hot', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^-#', undefined, 'bazinga'); const e1subs = ' ^-!'; const e2 = hot('-a-^--b--c--|'); const e2subs = ' ^-!'; const expected = ' --#'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'bazinga'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^----#', undefined, 'jenga'); const e1subs = ' ^-!'; const e2 = hot('---^-#', undefined, 'bazinga'); const e2subs = ' ^-!'; const expected = ' --#'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'bazinga'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with error and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^--b--#', undefined, 'wokka wokka'); const e1subs = ' ^-!'; const e2 = hot('---^-#', undefined, 'flurp'); const e2subs = ' ^-!'; const expected = ' --#'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'flurp'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^-#', undefined, 'flurp'); const e1subs = ' ^-!'; const e2 = hot('-a-^--b--#', undefined, 'wokka wokka'); const e2subs = ' ^-!'; const expected = ' --#'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'flurp'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with never and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^-----------'); const e1subs = ' ^-----!'; const e2 = hot('---^-----#', undefined, 'wokka wokka'); const e2subs = ' ^-----!'; const expected = ' ------#'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and never', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---^----#', undefined, 'wokka wokka'); const e1subs = ' ^----!'; const e2 = hot(' ---^-----------'); const e2subs = ' ^----!'; const expected = ' -----#'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with some and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^----a---b--|'); const e1subs = ' ^--!'; const e2 = hot('---^--#', undefined, 'wokka wokka'); const e2subs = ' ^--!'; const expected = ' ---#'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, { a: 1, b: 2 }, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and some', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--#', undefined, 'wokka wokka'); const e1subs = ' ^--!'; const e2 = hot('---^----a---b--|'); const e2subs = ' ^--!'; const expected = ' ---#'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle throw after complete left', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' --a--^--b---|'); const leftSubs = ' ^------!'; const right = hot('-----^--------#', undefined, 'bad things'); const rightSubs = ' ^--------!'; const expected = ' ---------#'; const result = of(left, right).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'bad things'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle throw after complete right', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' -----^--------#', undefined, 'bad things'); const leftSubs = ' ^--------!'; const right = hot('--a--^--b---|'); const rightSubs = ' ^------!'; const expected = ' ---------#'; const result = of(left, right).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'bad things'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle interleaved with tail', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a--^--b---c---|'); const e1subs = ' ^----------!'; const e2 = hot('--d-^----e---f--|'); const e2subs = ' ^-----------!'; const expected = ' -----x-y-z--|'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, { x: 'be', y: 'ce', z: 'cf' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle two consecutive hot observables', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--|'); const e1subs = ' ^--------!'; const e2 = hot('-----^----------d--e--f--|'); const e2subs = ' ^-------------------!'; const expected = ' -----------x--y--z--|'; const result = of(e1, e2).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, { x: 'cd', y: 'ce', z: 'cf' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle two consecutive hot observables with error left', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' --a--^--b--c--#', undefined, 'jenga'); const leftSubs = ' ^--------!'; const right = hot('-----^----------d--e--f--|'); const rightSubs = ' ^--------!'; const expected = ' ---------#'; const result = of(left, right).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, null, 'jenga'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle two consecutive hot observables with error right', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' --a--^--b--c--|'); const leftSubs = ' ^--------!'; const right = hot('-----^----------d--e--f--#', undefined, 'dun dun dun'); const rightSubs = ' ^-------------------!'; const expected = ' -----------x--y--z--#'; const result = of(left, right).pipe(combineLatestAll((x, y) => x + y)); expectObservable(result).toBe(expected, { x: 'cd', y: 'ce', z: 'cf' }, 'dun dun dun'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle selector throwing', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--|'); const e1subs = ' ^--!'; const e2 = hot('--c--^--d--|'); const e2subs = ' ^--!'; const expected = ' ---#'; const result = of(e1, e2).pipe( combineLatestAll((x, y) => { throw 'ha ha ' + x + ', ' + y; }) ); expectObservable(result).toBe(expected, null, 'ha ha b, d'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should combine two observables', (done) => { const a = of(1, 2, 3); const b = of(4, 5, 6, 7, 8); const expected = [ [3, 4], [3, 5], [3, 6], [3, 7], [3, 8], ]; of(a, b) .pipe(combineLatestAll()) .subscribe({ next: (vals) => { expect(vals).to.deep.equal(expected.shift()); }, complete: () => { expect(expected.length).to.equal(0); done(); }, }); }); it('should combine two immediately-scheduled observables', (done) => { const a = of(1, 2, 3, queueScheduler); const b = of(4, 5, 6, 7, 8, queueScheduler); const r = [ [1, 4], [2, 4], [2, 5], [3, 5], [3, 6], [3, 7], [3, 8], ]; of(a, b, queueScheduler) .pipe(combineLatestAll()) .subscribe({ next: (vals) => { expect(vals).to.deep.equal(r.shift()); }, complete: () => { expect(r.length).to.equal(0); done(); }, }); }); }); rxjs-7.5.7/spec/operators/combineLatestWith-spec.ts000066400000000000000000000470621431412030200224140ustar00rootroot00000000000000import { of } from 'rxjs'; import { combineLatestWith, mergeMap, distinct, count, map } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {combineLatestWith} */ describe('combineLatestWith', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should combine events from two cold observables', () => { testScheduler.run(({ cold, expectObservable }) => { const e1 = cold(' -a--b-----c-d-e-|'); const e2 = cold(' --1--2-3-4---| '); const expected = '--A-BC-D-EF-G-H-|'; const result = e1.pipe( combineLatestWith(e2), map(([a, b]) => a + b) ); expectObservable(result).toBe(expected, { A: 'a1', B: 'b1', C: 'b2', D: 'b3', E: 'b4', F: 'c4', G: 'd4', H: 'e4', }); }); }); it('should work with two nevers', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' -'); const e2subs = ' ^'; const expected = '-'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with never and empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' |'); const e2subs = ' (^!)'; const expected = '-'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with empty and never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const e2 = cold(' -'); const e2subs = ' ^'; const expected = '-'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with empty and empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const e2 = cold(' |'); const e2subs = ' (^!)'; const expected = '|'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot-empty and hot-single', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, c: 3, r: 1 + 3, //a + c }; const e1 = hot('-a-^-|', values); const e1subs = ' ^-!'; const e2 = hot('-b-^-c-|', values); const e2subs = ' ^---!'; const expected = ' ----|'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot-single and hot-empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, c: 3, }; const e1 = hot('-a-^-|', values); const e1subs = ' ^-!'; const e2 = hot('-b-^-c-|', values); const e2subs = ' ^---!'; const expected = ' ----|'; const result = e2.pipe( combineLatestWith(e1), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot-single and never', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, }; const e1 = hot('-a-^-|', values); const e1subs = ' ^-!'; const e2 = hot('------', values); //never const e2subs = ' ^--'; const expected = ' ---'; //never const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with never and hot-single', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, }; const e1 = hot('--------', values); //never const e1subs = ' ^ '; const e2 = hot('-a-^-b-|', values); const e2subs = ' ^---!'; const expected = ' -----'; //never const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot and hot', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--|', { a: 'a', b: 'b', c: 'c' }); const e1subs = ' ^--------!'; const e2 = hot('---e-^---f--g--|', { e: 'e', f: 'f', g: 'g' }); const e2subs = ' ^---------!'; const expected = ' ----x-yz--|'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, { x: 'bf', y: 'cf', z: 'cg' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with empty and error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----------|'); //empty const e1subs = ' ^-----!'; const e2 = hot(' ------#', undefined, 'shazbot!'); //error const e2subs = ' ^-----!'; const expected = '------#'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, null, 'shazbot!'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with error and empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--^---#', undefined, 'too bad, honk'); //error const e1subs = ' ^---!'; const e2 = hot('--^--------|'); //empty const e2subs = ' ^---!'; const expected = '----#'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, null, 'too bad, honk'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with hot and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^--b--c--|', { a: 1, b: 2, c: 3 }); const e1subs = ' ^-!'; const e2 = hot('---^-#', undefined, 'bazinga'); const e2subs = ' ^-!'; const expected = ' --#'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, null, 'bazinga'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and hot', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^-#', undefined, 'bazinga'); const e1subs = ' ^-!'; const e2 = hot('-a-^--b--c--|', { a: 1, b: 2, c: 3 }); const e2subs = ' ^-!'; const expected = ' --#'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, null, 'bazinga'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^----#', undefined, 'jenga'); const e1subs = ' ^-!'; const e2 = hot('---^-#', undefined, 'bazinga'); const e2subs = ' ^-!'; const expected = ' --#'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, null, 'bazinga'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with error and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^--b--#', { a: 1, b: 2 }, 'wokka wokka'); const e1subs = ' ^-!'; const e2 = hot('---^-#', undefined, 'flurp'); const e2subs = ' ^-!'; const expected = ' --#'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, null, 'flurp'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^-#', undefined, 'flurp'); const e1subs = ' ^-!'; const e2 = hot('-a-^--b--#', { a: 1, b: 2 }, 'wokka wokka'); const e2subs = ' ^-!'; const expected = ' --#'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, null, 'flurp'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with never and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^-----------'); const e1subs = ' ^-----!'; const e2 = hot('---^-----#', undefined, 'wokka wokka'); const e2subs = ' ^-----!'; const expected = ' ------#'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, null, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and never', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^----#', undefined, 'wokka wokka'); const e1subs = ' ^----!'; const e2 = hot('---^-----------'); const e2subs = ' ^----!'; const expected = ' -----#'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, null, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with some and throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---^----a---b--|', { a: 1, b: 2 }); const e1subs = ' ^--!'; const e2 = hot(' ---^--#', undefined, 'wokka wokka'); const e2subs = ' ^--!'; const expected = ' ---#'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, { a: 1, b: 2 }, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with throw and some', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--#', undefined, 'wokka wokka'); const e1subs = ' ^--!'; const e2 = hot('---^----a---b--|', { a: 1, b: 2 }); const e2subs = ' ^--!'; const expected = ' ---#'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, { a: 1, b: 2 }, 'wokka wokka'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle throw after complete left', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' --a--^--b---|', { a: 1, b: 2 }); const leftSubs = ' ^------!'; const right = hot('-----^--------#', undefined, 'bad things'); const rightSubs = ' ^--------!'; const expected = ' ---------#'; const result = left.pipe( combineLatestWith(right), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, null, 'bad things'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle throw after complete right', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' -----^--------#', undefined, 'bad things'); const leftSubs = ' ^--------!'; const right = hot(' --a--^--b---|', { a: 1, b: 2 }); const rightSubs = ' ^------!'; const expected = ' ---------#'; const result = left.pipe( combineLatestWith(right), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, null, 'bad things'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle interleaved with tail', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a--^--b---c---|', { a: 'a', b: 'b', c: 'c' }); const e1subs = ' ^----------!'; const e2 = hot('--d-^----e---f--|', { d: 'd', e: 'e', f: 'f' }); const e2subs = ' ^-----------!'; const expected = ' -----x-y-z--|'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, { x: 'be', y: 'ce', z: 'cf' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle two consecutive hot observables', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--|', { a: 'a', b: 'b', c: 'c' }); const e1subs = ' ^--------!'; const e2 = hot('-----^----------d--e--f--|', { d: 'd', e: 'e', f: 'f' }); const e2subs = ' ^-------------------!'; const expected = ' -----------x--y--z--|'; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, { x: 'cd', y: 'ce', z: 'cf' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle two consecutive hot observables with error left', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' --a--^--b--c--#', { a: 'a', b: 'b', c: 'c' }, 'jenga'); const leftSubs = ' ^--------!'; const right = hot('-----^----------d--e--f--|', { d: 'd', e: 'e', f: 'f' }); const rightSubs = ' ^--------!'; const expected = ' ---------#'; const result = left.pipe( combineLatestWith(right), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, null, 'jenga'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should handle two consecutive hot observables with error right', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const left = hot(' --a--^--b--c--|', { a: 'a', b: 'b', c: 'c' }); const leftSubs = ' ^--------!'; const right = hot('-----^----------d--e--f--#', { d: 'd', e: 'e', f: 'f' }, 'dun dun dun'); const rightSubs = ' ^-------------------!'; const expected = ' -----------x--y--z--#'; const result = left.pipe( combineLatestWith(right), map(([x, y]) => x + y) ); expectObservable(result).toBe(expected, { x: 'cd', y: 'ce', z: 'cf' }, 'dun dun dun'); expectSubscriptions(left.subscriptions).toBe(leftSubs); expectSubscriptions(right.subscriptions).toBe(rightSubs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot('---e-^---f--g---h-|'); const e2subs = ' ^--------! '; const expected = ' ----x-yz-- '; const unsub = ' ---------! '; const values = { x: 'bf', y: 'cf', z: 'cg' }; const result = e1.pipe( combineLatestWith(e2), map(([x, y]) => x + y) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot('---e-^---f--g---h-|'); const e2subs = ' ^--------! '; const expected = ' ----x-yz-- '; const unsub = ' ---------! '; const values = { x: 'bf', y: 'cf', z: 'cg' }; const result = e1.pipe( mergeMap((x) => of(x)), combineLatestWith(e2), map(([x, y]) => x + y), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit unique array instances with the default projection', () => { testScheduler.run(({ hot, expectObservable }) => { const e1 = hot(' -a--b--|'); const e2 = hot(' --1--2-|'); const expected = '-------(c|)'; const result = e1.pipe(combineLatestWith(e2), distinct(), count()); expectObservable(result).toBe(expected, { c: 3 }); }); }); }); rxjs-7.5.7/spec/operators/concat-legacy-spec.ts000066400000000000000000000317651431412030200215030ustar00rootroot00000000000000import { expect } from 'chai'; import { of, Observable } from 'rxjs'; import { concat, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {concat} */ describe('concat operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should concatenate two cold observables', () => { testScheduler.run(({ cold, expectObservable }) => { const e1 = cold(' --a--b-|'); const e2 = cold(' --x---y--|'); const expected = ' --a--b---x---y--|'; expectObservable(e1.pipe(concat(e2, testScheduler))).toBe(expected); }); }); it('should work properly with scalar observables', (done) => { const results: string[] = []; const s1 = new Observable((observer) => { setTimeout(() => { observer.next(1); observer.complete(); }); }).pipe(concat(of(2))); s1.subscribe({ next: (x) => { results.push('Next: ' + x); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { results.push('Completed'); expect(results).to.deep.equal(['Next: 1', 'Next: 2', 'Completed']); done(); }, }); }); it('should complete without emit if both sources are empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' ----|'); const e2subs = ' --^---!'; const expected = ' ------|'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if first source does not complete', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' --|'); const e2subs: string[] = []; const expected = ' -'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if second source does not complete', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' ---'); const e2subs = ' --^'; const expected = ' ---'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if both sources do not complete', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' -'); const e2subs: string[] = []; const expected = ' -'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error when first source is empty, second source raises error', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' ----#'); const e2subs = ' --^---!'; const expected = ' ------#'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error when first source raises error, second source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---#'); const e1subs = ' ^--!'; const e2 = cold(' ----|'); const e2subs: string[] = []; const expected = ' ---#'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise first error when both source raise error', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---#'); const e1subs = ' ^--!'; const e2 = cold(' ------#'); const e2subs: string[] = []; const expected = ' ---#'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should concat if first source emits once, second source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--|'); const e1subs = ' ^----!'; const e2 = cold(' --------|'); const e2subs = ' -----^-------!'; const expected = ' --a----------|'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should concat if first source is empty, second source emits once', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' --a--|'); const e2subs = ' --^----!'; const expected = ' ----a--|'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit element from first source, and should not complete if second source does not complete', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--|'); const e1subs = ' ^----!'; const e2 = cold(' -'); const e2subs = ' -----^'; const expected = ' --a---'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if first source does not complete', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' --a--|'); const e2subs: string[] = []; const expected = ' -'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit elements from each source when source emit once', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a|'); const e1subs = ' ^---!'; const e2 = cold(' -----b--|'); const e2subs = ' ----^-------!'; const expected = ' ---a-----b--|'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should unsubscribe to inner source if outer is unsubscribed early', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-a--a| '); const e1subs = ' ^--------! '; const e2 = cold(' -----b-b--b-|'); const e2subs = ' ---------^-------! '; const unsub = ' -----------------! '; const expected = ' ---a-a--a-----b-b '; expectObservable(e1.pipe(concat(e2)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-a--a| '); const e1subs = ' ^--------! '; const e2 = cold(' -----b-b--b-|'); const e2subs = ' ---------^-------! '; const expected = ' ---a-a--a-----b-b- '; const unsub = ' -----------------! '; const result = e1.pipe( mergeMap((x) => of(x)), concat(e2), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error from first source and does not emit from second source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --#'); const e1subs = ' ^-!'; const e2 = cold(' ----a--|'); const e2subs: string[] = []; const expected = ' --#'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit element from first source then raise error from second source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--|'); const e1subs = ' ^----!'; const e2 = cold(' -------#'); const e2subs = ' -----^------!'; const expected = ' --a---------#'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit all elements from both hot observable sources if first source completes before second source starts emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b-|'); const e1subs = ' ^------!'; const e2 = hot(' --------x--y--|'); const e2subs = ' -------^------!'; const expected = '--a--b--x--y--|'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit elements from second source regardless of completion time when second source is cold observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c---|'); const e1subs = ' ^-----------!'; const e2 = cold(' -x-y-z-|'); const e2subs = ' ------------^------!'; const expected = '--a--b--c----x-y-z-|'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not emit collapsing element from second source', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^----------!'; const e2 = hot(' --------x--y--z--|'); const e2subs = ' -----------^-----!'; const expected = '--a--b--c--y--z--|'; expectObservable(e1.pipe(concat(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should accept scheduler with multiple observables', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a|'); const e1subs = ' ^---!'; const e2 = cold(' ---b--|'); const e2subs = ' ----^-----!'; const e3 = cold(' ---c--|'); const e3subs = ' ----------^-----!'; const expected = ' ---a---b-----c--|'; expectObservable(e1.pipe(concat(e2, e3, testScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should accept scheduler without observable parameters', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-|'); const e1subs = ' ^----!'; const expected = ' ---a-|'; expectObservable(e1.pipe(concat(testScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit self without parameters', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-|'); const e1subs = ' ^----!'; const expected = ' ---a-|'; expectObservable(e1.pipe(concat())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/concatAll-spec.ts000066400000000000000000000445101431412030200206620ustar00rootroot00000000000000import { expect } from 'chai'; import { from, throwError, of, Observable, defer } from 'rxjs'; import { concatAll, take, mergeMap, finalize, delay } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {concatAll} */ describe('concatAll operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should concat an observable of observables', () => { testScheduler.run(({ cold, hot, expectObservable }) => { const x = cold(' ----a------b------| '); const y = cold(' ---c-d---| '); const z = cold(' ---e--f-|'); const outer = hot('-x---y----z------|', { x: x, y: y, z: z }); const expected = ' -----a------b---------c-d------e--f-|'; const result = outer.pipe(concatAll()); expectObservable(result).toBe(expected); }); }); it('should concat sources from promise', function (done) { this.timeout(2000); const sources = from([ new Promise((res) => { res(0); }), new Promise((res) => { res(1); }), new Promise((res) => { res(2); }), new Promise((res) => { res(3); }), ]).pipe(take(10)); const res: number[] = []; sources.pipe(concatAll()).subscribe({ next: (x) => { res.push(x); }, error: (err) => { done(new Error('should not be called')); }, complete: () => { expect(res).to.deep.equal([0, 1, 2, 3]); done(); }, }); }); it('should finalize before moving to the next observable', () => { const results: any[] = []; const create = (n: number) => defer(() => { results.push(`init ${n}`); return of(`next ${n}`).pipe( delay(100, testScheduler), finalize(() => { results.push(`finalized ${n}`); }) ); }); of(create(1), create(2), create(3)) .pipe(concatAll()) .subscribe({ next: (value) => results.push(value), }); testScheduler.flush(); expect(results).to.deep.equal([ 'init 1', 'next 1', 'finalized 1', 'init 2', 'next 2', 'finalized 2', 'init 3', 'next 3', 'finalized 3', ]); }); it('should concat and raise error from promise', function (done) { this.timeout(2000); const sources = from([ new Promise((res) => { res(0); }), new Promise((res, rej) => { rej(1); }), new Promise((res) => { res(2); }), new Promise((res) => { res(3); }), ]).pipe(take(10)); const res: number[] = []; sources.pipe(concatAll()).subscribe({ next: (x) => { res.push(x); }, error: (err) => { expect(res.length).to.equal(1); expect(err).to.equal(1); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); it('should concat all observables in an observable', () => { testScheduler.run(({ expectObservable }) => { const e1 = from([of('a'), of('b'), of('c')]).pipe(take(10)); const expected = '(abc|)'; expectObservable(e1.pipe(concatAll())).toBe(expected); }); }); it('should throw if any child observable throws', () => { testScheduler.run(({ expectObservable }) => { const e1 = from([of('a'), throwError(() => 'error'), of('c')]).pipe(take(10)); const expected = '(a#)'; expectObservable(e1.pipe(concatAll())).toBe(expected); }); }); it('should concat merging a hot observable of non-overlapped observables', () => { testScheduler.run(({ cold, hot, expectObservable }) => { const values = { x: cold(' a-b---------|'), y: cold(' c-d-e-f-|'), z: cold(' g-h-i-j-k-|'), }; const e1 = hot(' --x---------y--------z--------|', values); const expected = '--a-b---------c-d-e-f-g-h-i-j-k-|'; expectObservable(e1.pipe(concatAll())).toBe(expected); }); }); it('should raise error if inner observable raises error', () => { testScheduler.run(({ cold, hot, expectObservable }) => { const values = { x: cold(' a-b---------|'), y: cold(' c-d-e-f-#'), z: cold(' g-h-i-j-k-|'), }; const e1 = hot(' --x---------y--------z--------|', values); const expected = '--a-b---------c-d-e-f-#'; expectObservable(e1.pipe(concatAll())).toBe(expected); }); }); it('should raise error if outer observable raises error', () => { testScheduler.run(({ cold, hot, expectObservable }) => { const values = { y: cold(' a-b---------|'), z: cold(' c-d-e-f-|'), }; const e1 = hot(' --y---------z---# ', values); const expected = '--a-b---------c-#'; expectObservable(e1.pipe(concatAll())).toBe(expected); }); }); it('should complete without emit if both sources are empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' ----|'); const e2subs = ' --^---!'; const expected = ' ------|'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if first source does not completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' --|'); const e2subs: string[] = []; const expected = ' -'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if second source does not completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' ---'); const e2subs = ' --^'; const expected = ' ---'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if both sources do not complete', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' -'); const e2subs: string[] = []; const expected = ' -'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error when first source is empty, second source raises error', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' ----#'); const e2subs = ' --^---!'; const expected = ' ------#'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error when first source raises error, second source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---#'); const e1subs = ' ^--!'; const e2 = cold(' ----|'); const e2subs: string[] = []; const expected = ' ---#'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise first error when both source raise error', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---#'); const e1subs = ' ^--!'; const e2 = cold(' ------#'); const e2subs: string[] = []; const expected = ' ---#'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should concat if first source emits once, second source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--|'); const e1subs = ' ^----!'; const e2 = cold(' --------|'); const e2subs = ' -----^-------!'; const expected = ' --a----------|'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should concat if first source is empty, second source emits once', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' --a--|'); const e2subs = ' --^----!'; const expected = ' ----a--|'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit element from first source, and should not complete if second source does not completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--|'); const e1subs = ' ^----!'; const e2 = cold(' -'); const e2subs = ' -----^'; const expected = ' --a---'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if first source does not complete', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const e2 = cold(' --a--|'); const e2subs: string[] = []; const expected = ' -'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit elements from each source when source emit once', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a|'); const e1subs = ' ^---!'; const e2 = cold(' -----b--|'); const e2subs = ' ----^-------!'; const expected = ' ---a-----b--|'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should unsubscribe to inner source if outer is unsubscribed early', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-a--a| '); const e1subs = ' ^--------! '; const e2 = cold(' -----b-b--b-|'); const e2subs = ' ---------^-------! '; const unsub = ' -----------------! '; const expected = ' ---a-a--a-----b-b '; const result = of(e1, e2).pipe(concatAll()); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-a--a| '); const e1subs = ' ^--------! '; const e2 = cold(' -----b-b--b-|'); const e2subs = ' ---------^-------! '; const expected = ' ---a-a--a-----b-b- '; const unsub = ' -----------------! '; const result = of(e1, e2).pipe( mergeMap((x) => of(x)), concatAll(), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error from first source and does not emit from second source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --#'); const e1subs = ' ^-!'; const e2 = cold(' ----a--|'); const e2subs: string[] = []; const expected = ' --#'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit element from first source then raise error from second source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--|'); const e1subs = ' ^----!'; const e2 = cold(' -------#'); const e2subs = ' -----^------!'; const expected = ' --a---------#'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit all elements from both hot observable sources if first source completes before second source starts emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b-|'); const e1subs = ' ^------!'; const e2 = hot(' --------x--y--|'); const e2subs = ' -------^------!'; const expected = '--a--b--x--y--|'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit elements from second source regardless of completion time when second source is cold observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c---|'); const e1subs = ' ^-----------!'; const e2 = cold(' -x-y-z-|'); const e2subs = ' ------------^------!'; const expected = '--a--b--c----x-y-z-|'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not emit collapsing element from second source', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^----------!'; const e2 = hot(' --------x--y--z--|'); const e2subs = ' -----------^-----!'; const expected = '--a--b--c--y--z--|'; const result = of(e1, e2).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should be able to work on a different scheduler', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a|'); const e1subs = ' ^---!'; const e2 = cold(' ---b--|'); const e2subs = ' ----^-----!'; const e3 = cold(' ---c--|'); const e3subs = ' ----------^-----!'; const expected = ' ---a---b-----c--|'; const result = of(e1, e2, e3, testScheduler).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should concatAll a nested observable with a single inner observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-|'); const e1subs = ' ^----!'; const expected = ' ---a-|'; const result = of(e1).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatAll a nested observable with a single inner observable, and a scheduler', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-|'); const e1subs = ' ^----!'; const expected = ' ---a-|'; const result = of(e1, testScheduler).pipe(concatAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); of(synchronousObservable) .pipe(concatAll(), take(3)) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/concatMap-spec.ts000066400000000000000000001107651431412030200206750ustar00rootroot00000000000000import { expect } from 'chai'; import { of, from, Observable, defer } from 'rxjs'; import { concatMap, mergeMap, map, take, finalize, delay } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {concatMap} */ describe('Observable.prototype.concatMap', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should map-and-flatten each item to an Observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --1-----3--5-------|'); const e1subs = ' ^------------------!'; const e2 = cold(' x-x-x| ', { x: 10 }); const expected = ' --x-x-x-y-y-yz-z-z-|'; const values = { x: 10, y: 30, z: 50 }; const result = e1.pipe(concatMap((x) => e2.pipe(map((i) => i * parseInt(x))))); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support the deprecated resultSelector', () => { const results: Array = []; of(1, 2, 3) .pipe( concatMap( (x) => of(x, x + 1, x + 2), (a, b, i, ii) => [a, b, i, ii] ) ) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([ [1, 1, 0, 0], [1, 2, 0, 1], [1, 3, 0, 2], [2, 2, 1, 0], [2, 3, 1, 1], [2, 4, 1, 2], [3, 3, 2, 0], [3, 4, 2, 1], [3, 5, 2, 2], ]); }, }); }); it('should support a void resultSelector (still deprecated)', () => { const results: number[] = []; of(1, 2, 3) .pipe(concatMap((x) => of(x, x + 1, x + 2), void 0)) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([1, 2, 3, 2, 3, 4, 3, 4, 5]); }, }); }); it('should concatenate many regular interval inners', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' --a-a-a-(a|) '); const asubs = ' ^-------! '; const b = cold(' ----b--b--(b|) '); const bsubs = ' --------^---------! '; const c = cold(' -c-c-(c|) '); const csubs = ' -------------------------^----! '; const d = cold(' ------(d|)'); const dsubs = ' ------------------------------^-----! '; const e1 = hot(' a---b--------------------c-d----| '); const e1subs = ' ^-------------------------------! '; const expected = '--a-a-a-a---b--b--b-------c-c-c-----(d|)'; const observableLookup = { a: a, b: b, c: c, d: d }; const source = e1.pipe(concatMap((value) => observableLookup[value as keyof typeof observableLookup])); expectObservable(source).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many outer values to many inner values', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d---| '); const e1subs = ' ^----------------! '; const inner = cold(' --i-j-k-l-| ', values); const innersubs = [ ' -^---------! ', ' -----------^---------! ', ' ---------------------^---------! ', ' -------------------------------^---------!', ]; const expected = ' ---i-j-k-l---i-j-k-l---i-j-k-l---i-j-k-l-|'; const result = e1.pipe(concatMap((value) => inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an empty source', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const inner = cold('-1-2-3|'); const innersubs: string[] = []; const expected = ' |'; const result = e1.pipe(concatMap(() => inner)); expectObservable(result).toBe(expected); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a never source', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const inner = cold('-1-2-3|'); const innersubs: string[] = []; const expected = ' -'; const result = e1.pipe( concatMap(() => { return inner; }) ); expectObservable(result).toBe(expected); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should error immediately if given a just-throw source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e1subs = ' (^!)'; const inner = cold('-1-2-3|'); const innersubs: string[] = []; const expected = ' #'; const result = e1.pipe( concatMap(() => { return inner; }) ); expectObservable(result).toBe(expected); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return a silenced version of the source if the mapped inner is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-b--c-| '); const e1subs = ' ^--------! '; const inner = cold(' |'); // prettier-ignore const innersubs = [ ' --(^!) ', ' ----(^!) ', ' -------(^!)', ]; const expected = ' ---------| '; const result = e1.pipe( concatMap(() => { return inner; }) ); expectObservable(result).toBe(expected); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return a never if the mapped inner is never', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-b--c-|'); const e1subs = ' ^--------!'; const inner = cold(' -'); const innersubs = '--^-------'; const expected = ' ----------'; const result = e1.pipe( concatMap(() => { return inner; }) ); expectObservable(result).toBe(expected); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate errors if the mapped inner is a just-throw Observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-b--c-|'); const e1subs = ' ^-! '; const inner = cold(' #'); const innersubs = '--(^!) '; const expected = ' --# '; const result = e1.pipe( concatMap(() => { return inner; }) ); expectObservable(result).toBe(expected); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many outer to many inner, complete late', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d----------------------------------|'); const e1subs = ' ^-----------------------------------------------!'; const inner = cold(' --i-j-k-l-| ', values); const innersubs = [ ' -^---------! ', ' -----------^---------! ', ' ---------------------^---------! ', ' -------------------------------^---------! ', ]; const expected = ' ---i-j-k-l---i-j-k-l---i-j-k-l---i-j-k-l--------|'; const result = e1.pipe(concatMap((value) => inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many outer to many inner, outer never completes', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d-----------------------------------'); const e1subs = ' ^------------------------------------------------'; const inner = cold(' --i-j-k-l-| ', values); const innersubs = [ ' -^---------! ', ' -----------^---------! ', ' ---------------------^---------! ', ' -------------------------------^---------! ', ]; const expected = ' ---i-j-k-l---i-j-k-l---i-j-k-l---i-j-k-l---------'; const result = e1.pipe(concatMap((value) => inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many outer to many inner, inner never completes', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d---|'); const e1subs = ' ^----------------!'; const inner = cold(' --i-j-k-l- ', values); const innersubs = ' -^----------------'; const expected = ' ---i-j-k-l--------'; const result = e1.pipe(concatMap((value) => inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many outer to many inner, and inner throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d---|'); const e1subs = ' ^----------! '; const inner = cold(' --i-j-k-l-# ', values); const innersubs = ' -^---------! '; const expected = ' ---i-j-k-l-# '; const result = e1.pipe(concatMap(() => inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many outer to many inner, and outer throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d---#'); const e1subs = ' ^----------------!'; const inner = cold(' --i-j-k-l-| ', values); // prettier-ignore const innersubs = [ ' -^---------! ', ' -----------^-----!', ]; const expected = ' ---i-j-k-l---i-j-#'; const result = e1.pipe(concatMap((value) => inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many outer to many inner, both inner and outer throw', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d---#'); const e1subs = ' ^----------! '; const inner = cold(' --i-j-k-l-# ', values); const innersubs = ' -^---------! '; const expected = ' ---i-j-k-l-# '; const result = e1.pipe(concatMap((value) => inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(inner.subscriptions).toBe(innersubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many complex, where all inners are finite', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5----6-| '); const csubs = ' --^----------------! '; const d = cold(' ----2--3| '); const dsubs = ' -------------------^-------! '; const e = cold(' -1------2--3-4-5---| '); const esubs = ' ---------------------------^------------------! '; const f = cold(' --| '); const fsubs = ' ----------------------------------------------^-! '; const g = cold(' ---1-2|'); const gsubs = ' ------------------------------------------------^-----!'; const e1 = hot(' -a-b--^-c-----d------e----------------f-----g| '); const e1subs = ' ^--------------------------------------! '; const expected = ' ---2--3--4--5----6-----2--3-1------2--3-4-5--------1-2|'; const observableLookup = { a: a, b: b, c: c, d: d, e: e, f: f, g: g }; const result = e1.pipe(concatMap((value) => observableLookup[value as keyof typeof observableLookup])); expectObservable(result).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many complex, all inners finite except one', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5----6-| '); const csubs = ' --^----------------! '; const d = cold(' ----2--3- '); const dsubs = ' -------------------^-----------------------------------'; const e = cold(' -1------2--3-4-5---| '); const esubs: string[] = []; const f = cold(' --| '); const fsubs: string[] = []; const g = cold(' ---1-2|'); const gsubs: string[] = []; const e1 = hot(' -a-b--^-c-----d------e----------------f-----g| '); const e1subs = ' ^--------------------------------------! '; const expected = ' ---2--3--4--5----6-----2--3----------------------------'; const observableLookup = { a: a, b: b, c: c, d: d, e: e, f: f, g: g }; const result = e1.pipe(concatMap((value) => observableLookup[value as keyof typeof observableLookup])); expectObservable(result).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many complex, inners finite, outer does not complete', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5----6-| '); const csubs = ' --^----------------! '; const d = cold(' ----2--3| '); const dsubs = ' -------------------^-------! '; const e = cold(' -1------2--3-4-5---| '); const esubs = ' ---------------------------^------------------! '; const f = cold(' --| '); const fsubs = ' ----------------------------------------------^-! '; const g = cold(' ---1-2|'); const gsubs = ' ------------------------------------------------^-----!'; const e1 = hot(' -a-b--^-c-----d------e----------------f-----g--- '); const e1subs = ' ^ '; const expected = ' ---2--3--4--5----6-----2--3-1------2--3-4-5--------1-2-'; const observableLookup = { a: a, b: b, c: c, d: d, e: e, f: f, g: g }; const result = e1.pipe(concatMap((value) => observableLookup[value as keyof typeof observableLookup])); expectObservable(result).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many complex, all inners finite, and outer throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5----6-| '); const csubs = ' --^----------------! '; const d = cold(' ----2--3| '); const dsubs = ' -------------------^-------! '; const e = cold(' -1------2--3-4-5---| '); const esubs = ' ---------------------------^-----------! '; const f = cold(' --| '); const fsubs: string[] = []; const g = cold(' ---1-2|'); const gsubs: string[] = []; const e1 = hot(' -a-b--^-c-----d------e----------------f-----g# '); const e1subs = ' ^--------------------------------------! '; const expected = ' ---2--3--4--5----6-----2--3-1------2--3# '; const observableLookup = { a: a, b: b, c: c, d: d, e: e, f: f, g: g }; const result = e1.pipe(concatMap((value) => observableLookup[value as keyof typeof observableLookup])); expectObservable(result).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many complex, all inners complete except one throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5----6-# '); const csubs = ' --^----------------! '; const d = cold(' ----2--3| '); const dsubs: string[] = []; const e = cold(' -1------2--3-4-5---| '); const esubs: string[] = []; const f = cold(' --| '); const fsubs: string[] = []; const g = cold(' ---1-2|'); const gsubs: string[] = []; const e1 = hot(' -a-b--^-c-----d------e----------------f-----g| '); const e1subs = ' ^------------------! '; const expected = ' ---2--3--4--5----6-# '; const observableLookup = { a: a, b: b, c: c, d: d, e: e, f: f, g: g }; const result = e1.pipe(concatMap((value) => observableLookup[value as keyof typeof observableLookup])); expectObservable(result).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many complex, all inners finite, outer is unsubscribed early', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5----6-| '); const csubs = ' --^----------------! '; const d = cold(' ----2--3| '); const dsubs = ' -------------------^-------! '; const e = cold(' -1------2--3-4-5---| '); const esubs = ' ---------------------------^--! '; const f = cold(' --| '); const fsubs: string[] = []; const g = cold(' ---1-2|'); const gsubs: string[] = []; const e1 = hot(' -a-b--^-c-----d------e----------------f-----g| '); const e1subs = ' ^-----------------------------! '; const unsub = ' ^-----------------------------! '; const expected = ' ---2--3--4--5----6-----2--3-1-- '; const observableLookup: Record> = { a: a, b: b, c: c, d: d, e: e, f: f, g: g, }; const result = e1.pipe(concatMap((value) => observableLookup[value])); expectObservable(result, unsub).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5----6-| '); const csubs = ' --^----------------! '; const d = cold(' ----2--3| '); const dsubs = ' -------------------^-------! '; const e = cold(' -1------2--3-4-5---| '); const esubs = ' ---------------------------^--! '; const f = cold(' --| '); const fsubs: string[] = []; const g = cold(' ---1-2|'); const gsubs: string[] = []; const e1 = hot(' -a-b--^-c-----d------e----------------f-----g| '); const e1subs = ' ^-----------------------------! '; const unsub = ' ^-----------------------------! '; const expected = ' ---2--3--4--5----6-----2--3-1-- '; const observableLookup: Record> = { a: a, b: b, c: c, d: d, e: e, f: f, g: g, }; const result = e1.pipe( mergeMap((x) => of(x)), concatMap((value) => observableLookup[value]), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many complex, all inners finite, project throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5----6-| '); const csubs = ' --^----------------! '; const d = cold(' ----2--3| '); const dsubs = ' -------------------^-------! '; const e = cold(' -1------2--3-4-5---| '); const esubs: string[] = []; const f = cold(' --| '); const fsubs: string[] = []; const g = cold(' ---1-2|'); const gsubs: string[] = []; const e1 = hot(' -a-b--^-c-----d------e----------------f-----g| '); const e1subs = ' ^--------------------------! '; const expected = ' ---2--3--4--5----6-----2--3# '; const observableLookup: Record> = { a: a, b: b, c: c, d: d, e: e, f: f, g: g, }; const result = e1.pipe( concatMap((value) => { if (value === 'e') { throw 'error'; } return observableLookup[value]; }) ); expectObservable(result).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should finalize before moving to the next observable', () => { const results: any[] = []; const create = (n: number) => defer(() => { results.push(`init ${n}`); return of(`next ${n}`).pipe( delay(100, testScheduler), finalize(() => { results.push(`finalized ${n}`); }) ); }); of(1, 2, 3) .pipe(concatMap((n) => create(n))) .subscribe({ next: (value) => results.push(value), }); testScheduler.flush(); expect(results).to.deep.equal([ 'init 1', 'next 1', 'finalized 1', 'init 2', 'next 2', 'finalized 2', 'init 3', 'next 3', 'finalized 3', ]); }); function arrayRepeat(value: string, times: number) { let results = []; for (let i = 0; i < times; i++) { results.push(value); } return results; } it('should concatMap many outer to an array for each value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' 2-----4--------3--------2-------|'); const e1subs = ' ^-------------------------------!'; const expected = '(22)--(4444)---(333)----(22)----|'; const result = e1.pipe(concatMap((value) => arrayRepeat(value, +value))); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many outer to inner arrays, outer unsubscribed early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' 2-----4--------3--------2-------|'); const e1subs = ' ^------------! '; const unsub = ' ^------------! '; const expected = '(22)--(4444)-- '; const result = e1.pipe(concatMap((value) => arrayRepeat(value, +value))); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should concatMap many outer to inner arrays, project throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' 2-----4--------3--------2-------|'); const e1subs = ' ^--------------! '; const expected = '(22)--(4444)---# '; let invoked = 0; const result = e1.pipe( concatMap((value) => { invoked++; if (invoked === 3) { throw 'error'; } return arrayRepeat(value, +value); }) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map values to constant resolved promises and concatenate', (done) => { const source = from([4, 3, 2, 1]); const project = (value: number) => from(Promise.resolve(42)); const results: number[] = []; source.pipe(concatMap(project)).subscribe({ next: (x) => { results.push(x); }, error: (err) => { done(new Error('Subscriber error handler not supposed to be called.')); }, complete: () => { expect(results).to.deep.equal([42, 42, 42, 42]); done(); }, }); }); it('should map values to constant rejected promises and concatenate', (done) => { const source = from([4, 3, 2, 1]); const project = (value: any) => from(Promise.reject(42)); source.pipe(concatMap(project)).subscribe({ next: (x) => { done(new Error('Subscriber next handler not supposed to be called.')); }, error: (err) => { expect(err).to.deep.equal(42); done(); }, complete: () => { done(new Error('Subscriber complete handler not supposed to be called.')); }, }); }); it('should map values to resolved promises and concatenate', (done) => { const source = from([4, 3, 2, 1]); const project = (value: number, index: number) => from(Promise.resolve(value + index)); const results: number[] = []; source.pipe(concatMap(project)).subscribe({ next: (x) => { results.push(x); }, error: (err) => { done(new Error('Subscriber error handler not supposed to be called.')); }, complete: () => { expect(results).to.deep.equal([4, 4, 4, 4]); done(); }, }); }); it('should map values to rejected promises and concatenate', (done) => { const source = from([4, 3, 2, 1]); const project = (value: number, index: number) => from(Promise.reject('' + value + '-' + index)); source.pipe(concatMap(project)).subscribe({ next: (x) => { done(new Error('Subscriber next handler not supposed to be called.')); }, error: (err) => { expect(err).to.deep.equal('4-0'); done(); }, complete: () => { done(new Error('Subscriber complete handler not supposed to be called.')); }, }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( concatMap((value) => of(value)), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/concatMapTo-spec.ts000066400000000000000000000365151431412030200212000ustar00rootroot00000000000000import { expect } from 'chai'; import { of, from, Observable } from 'rxjs'; import { concatMapTo, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {concatMapTo} */ describe('concatMapTo', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should map-and-flatten each item to an Observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --1-----3--5-------|'); const e1subs = ' ^------------------!'; const e2 = cold(' x-x-x| ', { x: 10 }); const expected = '--x-x-x-x-x-xx-x-x-|'; const values = { x: 10 }; const result = e1.pipe(concatMapTo(e2)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support the deprecated resultSelector', () => { const results: Array = []; of(1, 2, 3) .pipe(concatMapTo(of(4, 5, 6), (a, b, i, ii) => [a, b, i, ii])) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([ [1, 4, 0, 0], [1, 5, 0, 1], [1, 6, 0, 2], [2, 4, 1, 0], [2, 5, 1, 1], [2, 6, 1, 2], [3, 4, 2, 0], [3, 5, 2, 1], [3, 6, 2, 2], ]); }, }); }); it('should support a void resultSelector (still deprecated)', () => { const results: number[] = []; of(1, 2, 3) .pipe(concatMapTo(of(4, 5, 6), void 0)) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([4, 5, 6, 4, 5, 6, 4, 5, 6]); }, }); }); it('should concatMapTo many outer values to many inner values', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d---| '); const e1subs = ' ^----------------! '; const inner = cold('--i-j-k-l-| ', values); const innerSubs = [ ' -^---------! ', ' -----------^---------! ', ' ---------------------^---------! ', ' -------------------------------^---------!', ]; const expected = ' ---i-j-k-l---i-j-k-l---i-j-k-l---i-j-k-l-|'; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should handle an empty source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const inner = cold('-1-2-3|'); const innerSubs: string[] = []; const expected = '|'; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should handle a never source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const inner = cold('-1-2-3|'); const innerSubs: string[] = []; const expected = '-'; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should error immediately if given a just-throw source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e1subs = ' (^!)'; const inner = cold('-1-2-3|'); const innerSubs: string[] = []; const expected = '#'; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should return a silenced version of the source if the mapped inner is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-b--c-|'); const e1subs = ' ^--------!'; const inner = cold('|'); // prettier-ignore const innerSubs = [ ' --(^!) ', ' ----(^!) ', ' -------(^!)', ]; const expected = ' ---------|'; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should return a never if the mapped inner is never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-b--c-|'); const e1subs = ' ^--------!'; const inner = cold('-'); const innerSubs = ' --^ '; const expected = ' ----------'; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should propagate errors if the mapped inner is a just-throw Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-b--c-|'); const e1subs = ' ^-! '; const inner = cold('#'); const innerSubs = ' --(^!) '; const expected = ' --#'; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should concatMapTo many outer to many inner, complete late', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d----------------------------------|'); const e1subs = ' ^-----------------------------------------------!'; const inner = cold('--i-j-k-l-| ', values); const innerSubs = [ ' -^---------! ', ' -----------^---------! ', ' ---------------------^---------! ', ' -------------------------------^---------! ', ]; const expected = ' ---i-j-k-l---i-j-k-l---i-j-k-l---i-j-k-l--------|'; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should concatMapTo many outer to many inner, outer never completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d-----------------------------------'); const e1subs = ' ^------------------------------------------------'; const inner = cold('--i-j-k-l-| ', values); const innerSubs = [ ' -^---------! ', ' -----------^---------! ', ' ---------------------^---------! ', ' -------------------------------^---------! ', ]; const expected = ' ---i-j-k-l---i-j-k-l---i-j-k-l---i-j-k-l---------'; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d---| '); const e1subs = ' ^----------------! '; const inner = cold('--i-j-k-l-| ', values); // prettier-ignore const innerSubs = [ ' -^---------! ', ' -----------^------!', ]; const expected = ' ---i-j-k-l---i-j-k-'; const unsub = ' ------------------!'; const result = e1.pipe( mergeMap((x) => of(x)), concatMapTo(inner), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should concatMapTo many outer to many inner, inner never completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d---|'); const e1subs = ' ^----------------!'; const inner = cold('--i-j-k-l- ', values); const innerSubs = ' -^ '; const expected = ' ---i-j-k-l--------'; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should concatMapTo many outer to many inner, and inner throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d---|'); const e1subs = ' ^----------! '; const inner = cold('--i-j-k-l-# ', values); const innerSubs = ' -^---------! '; const expected = ' ---i-j-k-l-# '; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should concatMapTo many outer to many inner, and outer throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d---#'); const e1subs = ' ^----------------!'; const inner = cold('--i-j-k-l-| ', values); // prettier-ignore const innerSubs = [ ' -^---------! ', ' -----------^-----!', ]; const expected = ' ---i-j-k-l---i-j-#'; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should concatMapTo many outer to many inner, both inner and outer throw', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { i: 'foo', j: 'bar', k: 'baz', l: 'qux' }; const e1 = hot(' -a---b---c---d---#'); const e1subs = ' ^----------! '; const inner = cold('--i-j-k-l-# ', values); const innerSubs = ' -^---------! '; const expected = ' ---i-j-k-l-# '; const result = e1.pipe(concatMapTo(inner)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should concatMapTo many outer to an array', () => { testScheduler.run(({ hot, expectObservable }) => { const e1 = hot(' 2-----4--------3--------2-------|'); const expected = '(0123)(0123)---(0123)---(0123)--|'; const result = e1.pipe(concatMapTo(['0', '1', '2', '3'])); expectObservable(result).toBe(expected); }); }); it('should concatMapTo many outer to inner arrays, and outer throws', () => { testScheduler.run(({ hot, expectObservable }) => { const e1 = hot(' 2-----4--------3--------2-------#'); const expected = '(0123)(0123)---(0123)---(0123)--#'; const result = e1.pipe(concatMapTo(['0', '1', '2', '3'])); expectObservable(result).toBe(expected); }); }); it('should concatMapTo many outer to inner arrays, outer unsubscribed early', () => { testScheduler.run(({ hot, expectObservable }) => { const e1 = hot(' 2-----4--------3--------2-------|'); const unsub = ' -------------!'; const expected = '(0123)(0123)--'; const result = e1.pipe(concatMapTo(['0', '1', '2', '3'])); expectObservable(result, unsub).toBe(expected); }); }); it('should map values to constant resolved promises and concatenate', (done) => { const source = from([4, 3, 2, 1]); const results: number[] = []; source.pipe(concatMapTo(from(Promise.resolve(42)))).subscribe({ next: (x) => { results.push(x); }, error: (err) => { done(new Error('Subscriber error handler not supposed to be called.')); }, complete: () => { expect(results).to.deep.equal([42, 42, 42, 42]); done(); }, }); }); it('should map values to constant rejected promises and concatenate', (done) => { const source = from([4, 3, 2, 1]); source.pipe(concatMapTo(from(Promise.reject(42)))).subscribe({ next: (x) => { done(new Error('Subscriber next handler not supposed to be called.')); }, error: (err) => { expect(err).to.equal(42); done(); }, complete: () => { done(new Error('Subscriber complete handler not supposed to be called.')); }, }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(concatMapTo(of(0)), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/concatWith-spec.ts000066400000000000000000000307361431412030200210720ustar00rootroot00000000000000import { expect } from 'chai'; import { of, Observable } from 'rxjs'; import { concatWith, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { NO_SUBS } from '../helpers/test-helper'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {concat} */ describe('concat operator', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); it('should concatenate two cold observables', () => { rxTest.run(({ cold, expectObservable }) => { const e1 = cold(' --a--b-|'); const e2 = cold(' --x---y--|'); const expected = '--a--b---x---y--|'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); }); }); it('should work properly with scalar observables', (done) => { const results: string[] = []; const s1 = new Observable((observer) => { setTimeout(() => { observer.next(1); observer.complete(); }); }).pipe(concatWith(of(2))); s1.subscribe({ next: (x) => { results.push('Next: ' + x); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { results.push('Completed'); expect(results).to.deep.equal(['Next: 1', 'Next: 2', 'Completed']); done(); }, }); }); it('should complete without emit if both sources are empty', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' ----|'); const e2subs = ' --^---!'; const expected = '------|'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if first source does not completes', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---'); const e1subs = ' ^--'; const e2 = cold(' --|'); const e2subs = NO_SUBS; const expected = '---'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if second source does not completes', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' ---'); const e2subs = ' --^--'; const expected = '-----'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if both sources do not complete', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---'); const e1subs = ' ^--'; const e2 = cold(' ---'); const e2subs = NO_SUBS; const expected = '---'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error when first source is empty, second source raises error', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' ----#'); const e2subs = ' --^---!'; const expected = '------#'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error when first source raises error, second source is empty', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---#'); const e1subs = ' ^--!'; const e2 = cold(' ----|'); const expected = '---#'; const e2subs = NO_SUBS; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise first error when both source raise error', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---#'); const e1subs = ' ^--!'; const e2 = cold(' ------#'); const expected = '---#'; const e2subs = NO_SUBS; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should concat if first source emits once, second source is empty', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--|'); const e1subs = ' ^----!'; const e2 = cold(' --------|'); const e2subs = ' -----^-------!'; const expected = '--a----------|'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should concat if first source is empty, second source emits once', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --|'); const e1subs = ' ^-!'; const e2 = cold(' --a--|'); const e2subs = ' --^----!'; const expected = '----a--|'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit element from first source, and should not complete if second source does not completes', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--|'); const e1subs = ' ^----!'; const e2 = cold(' ---'); const e2subs = ' -----^--'; const expected = '--a-----'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete if first source does not complete', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---'); const e1subs = ' ^--'; const e2 = cold(' --a--|'); const e2subs = NO_SUBS; const expected = '---'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit elements from each source when source emit once', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a|'); const e1subs = ' ^---!'; const e2 = cold(' -----b--|'); const e2subs = ' ----^-------!'; const expected = '---a-----b--|'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should unsubscribe to inner source if outer is unsubscribed early', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-a--a| '); const e1subs = ' ^--------! '; const e2 = cold(' -----b-b--b-|'); const e2subs = ' ---------^-------!'; const unsub = ' -----------------! '; const expected = ' ---a-a--a-----b-b '; expectObservable(e1.pipe(concatWith(e2)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-a--a| '); const e1subs = ' ^--------! '; const e2 = cold(' -----b-b--b-|'); const e2subs = ' ---------^--------! '; const expected = '---a-a--a-----b-b- '; const unsub = ' ------------------! '; const result = e1.pipe( mergeMap((x) => of(x)), concatWith(e2), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error from first source and does not emit from second source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --#'); const e1subs = ' ^-!'; const e2 = cold(' ----a--|'); const e2subs = NO_SUBS; const expected = '--#'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit element from first source then raise error from second source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--|'); const e1subs = ' ^----!'; const e2 = cold(' -------#'); const e2subs = ' -----^------!'; const expected = '--a---------#'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit all elements from both hot observable sources if first source completes before second source starts emit', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b-|'); const e1subs = ' ^------!'; const e2 = hot(' --------x--y--|'); const e2subs = ' -------^------!'; const expected = '--a--b--x--y--|'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit elements from second source regardless of completion time when second source is cold observable', () => { rxTest.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c---|'); const e1subs = ' ^-----------!'; const e2 = cold(' -x-y-z-|'); const e2subs = ' ------------^------!'; const expected = '--a--b--c----x-y-z-|'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not emit collapsing element from second source', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^----------!'; const e2 = hot(' --------x--y--z--|'); const e2subs = ' -----------^-----!'; const expected = '--a--b--c--y--z--|'; expectObservable(e1.pipe(concatWith(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit self without parameters', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-|'); const e1subs = ' ^----!'; const expected = '---a-|'; expectObservable(e1.pipe(concatWith())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(concatWith(of(0)), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/connect-spec.ts000066400000000000000000000025711431412030200204140ustar00rootroot00000000000000import { BehaviorSubject, merge } from 'rxjs'; import { connect, delay } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; describe('connect', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); it('should connect a source through a selector function', () => { rxTest.run(({ cold, time, expectObservable }) => { const source = cold('---a----b-----c---|'); const d = time(' ---|'); const expected = ' ---a--a-b--b--c--c|'; const result = source.pipe(connect((shared) => merge(shared.pipe(delay(d)), shared))); expectObservable(result).toBe(expected); }); }); it('should connect a source through a selector function and use the provided connector', () => { rxTest.run(({ cold, time, expectObservable }) => { const source = cold('--------a---------b---------c-----|'); const d = time(' ---|'); const expected = ' S--S----a--a------b--b------c--c--|'; const result = source.pipe( connect( (shared) => { return merge(shared.pipe(delay(d)), shared); }, { connector: () => new BehaviorSubject('S'), } ) ); expectObservable(result).toBe(expected); }); }); }); rxjs-7.5.7/spec/operators/count-spec.ts000066400000000000000000000251541431412030200201150ustar00rootroot00000000000000import { expect } from 'chai'; import { of, range } from 'rxjs'; import { count, skip, take, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {count} */ describe('count', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should count the values of an observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--|'); const subs = ' ^----------!'; const expected = ' -----------(x|)'; expectObservable(source.pipe(count())).toBe(expected, { x: 3 }); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should be never when source is never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(count())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be zero when source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const expected = '(w|)'; expectObservable(e1.pipe(count())).toBe(expected, { w: 0 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it("should be never when source doesn't complete", () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--x--^--y--'); const e1subs = ' ^ '; const expected = ' ------'; expectObservable(e1.pipe(count())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it("should be zero when source doesn't have values", () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^---|'); const e1subs = ' ^---!'; const expected = ' ----(w|)'; expectObservable(e1.pipe(count())).toBe(expected, { w: 0 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should count the unique value of an observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^--y--|'); const e1subs = ' ^-----!'; const expected = ' ------(w|)'; expectObservable(e1.pipe(count())).toBe(expected, { w: 1 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should count the values of an ongoing hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a-^-b--c--d--|'); const subs = ' ^----------!'; const expected = ' -----------(x|)'; expectObservable(source.pipe(count())).toBe(expected, { x: 3 }); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should count a range() source observable', (done) => { range(1, 10) .pipe(count()) .subscribe({ next: (value: number) => { expect(value).to.equal(10); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should count a range().skip(1) source observable', (done) => { range(1, 10) .pipe(skip(1), count()) .subscribe({ next: (value: number) => { expect(value).to.equal(9); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should count a range().take(1) source observable', (done) => { range(1, 10) .pipe(take(1), count()) .subscribe({ next: (value: number) => { expect(value).to.equal(1); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should work with error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^--y--z--#', { x: 1, y: 2, z: 3 }, 'too bad'); const e1subs = ' ^--------!'; const expected = ' ---------#'; expectObservable(e1.pipe(count())).toBe(expected, null, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e1subs = ' (^!)'; const expected = '#'; expectObservable(e1.pipe(count())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an always-true predicate on an empty hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^---|'); const e1subs = ' ^---!'; const expected = ' ----(w|)'; const predicate = () => { return true; }; expectObservable(e1.pipe(count(predicate))).toBe(expected, { w: 0 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an always-false predicate on an empty hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^---|'); const e1subs = ' ^---!'; const expected = ' ----(w|)'; const predicate = () => { return false; }; expectObservable(e1.pipe(count(predicate))).toBe(expected, { w: 0 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an always-true predicate on a simple hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^-a-|'); const e1subs = ' ^---!'; const expected = ' ----(w|)'; const predicate = () => { return true; }; expectObservable(e1.pipe(count(predicate))).toBe(expected, { w: 1 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an always-false predicate on a simple hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^-a-|'); const e1subs = ' ^---!'; const expected = ' ----(w|)'; const predicate = () => { return false; }; expectObservable(e1.pipe(count(predicate))).toBe(expected, { w: 0 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1-^-2--3--4-|'); const e1subs = ' ^-----! '; const expected = ' ------- '; const unsub = ' ------! '; const result = e1.pipe(count((value: string) => parseInt(value) < 10)); expectObservable(result, unsub).toBe(expected, { w: 3 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1-^-2--3--4-|'); const e1subs = ' ^-----! '; const expected = ' ------- '; const unsub = ' ------! '; const result = e1.pipe( mergeMap((x: string) => of(x)), count((value: string) => parseInt(value) < 10), mergeMap((x: number) => of(x)) ); expectObservable(result, unsub).toBe(expected, { w: 3 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a match-all predicate on observable with many values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1-^-2--3--4-|'); const e1subs = ' ^---------!'; const expected = ' ----------(w|)'; const predicate = (value: string) => parseInt(value) < 10; expectObservable(e1.pipe(count(predicate))).toBe(expected, { w: 3 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a match-none predicate on observable with many values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1-^-2--3--4-|'); const e1subs = ' ^---------!'; const expected = ' ----------(w|)'; const predicate = (value: string) => parseInt(value) > 10; expectObservable(e1.pipe(count(predicate))).toBe(expected, { w: 0 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an always-true predicate on observable that throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1-^---#'); const e1subs = ' ^---!'; const expected = ' ----#'; const predicate = () => true; expectObservable(e1.pipe(count(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an always-false predicate on observable that throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1-^---#'); const e1subs = ' ^---!'; const expected = ' ----#'; const predicate = () => false; expectObservable(e1.pipe(count(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an always-true predicate on a hot never-observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^----'); const e1subs = ' ^ '; const expected = ' -----'; const predicate = () => true; expectObservable(e1.pipe(count(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a predicate that throws, on observable with many values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1-^-2--3--|'); const e1subs = ' ^----! '; const expected = ' -----# '; const predicate = (value: string) => { if (value === '3') { throw 'error'; } return true; }; expectObservable(e1.pipe(count(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/debounce-spec.ts000066400000000000000000000516731431412030200205560ustar00rootroot00000000000000import { expect } from 'chai'; import { NEVER, timer, of, EMPTY, concat, Subject, Observable } from 'rxjs'; import { debounce, mergeMap, mapTo, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {debounce} */ describe('debounce', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); function getTimerSelector(x: number) { return () => timer(x, testScheduler); } it('should debounce values by a specified cold Observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a----bc----d-ef----|'); const e1subs = ' ^-------------------!'; const e2 = cold(' ---x '); // ---x // ---x const e2subs = [ ' -^--! ', ' ------^! ', ' -------^--! ', ' ------------^-! ', ' --------------^! ', ' ---------------^--! ', ]; const expected = '----a-----c-------f-|'; const result = e1.pipe(debounce(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should delay all element by selector observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d---------|'); const e1subs = ' ^--------------------!'; const expected = '----a--b--c--d-------|'; expectObservable(e1.pipe(debounce(getTimerSelector(2)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should debounce by selector observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--bc--d----|'); const e1subs = ' ^-------------!'; const expected = '----a---c--d--|'; expectObservable(e1.pipe(debounce(getTimerSelector(2)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support a scalar selector observable', () => { // If the selector returns a scalar observable, the debounce operator // should emit the value immediately. testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--bc--d----|'); const e1subs = ' ^-------------!'; const expected = '--a--bc--d----|'; expectObservable(e1.pipe(debounce(() => of(0)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete when source does not emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----|'); const e1subs = ' ^----!'; const expected = '-----|'; expectObservable(e1.pipe(debounce(getTimerSelector(2)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete when source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const expected = '|'; expectObservable(e1.pipe(debounce(getTimerSelector(2)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when source does not emit and raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----#'); const e1subs = ' ^----!'; const expected = '-----#'; expectObservable(e1.pipe(debounce(getTimerSelector(2)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when source throws', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e1subs = ' (^!)'; const expected = '#'; expectObservable(e1.pipe(debounce(getTimerSelector(2)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--bc--d----|'); const e1subs = ' ^------! '; const expected = '----a--- '; const unsub = ' -------! '; const result = e1.pipe(debounce(getTimerSelector(2))); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--bc--d----|'); const e1subs = ' ^------! '; const expected = '----a--- '; const unsub = ' -------! '; const result = e1.pipe( mergeMap((x: any) => of(x)), debounce(getTimerSelector(2)), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should debounce and does not complete when source does not completes', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--bc--d---'); const e1subs = ' ^ '; const expected = '----a---c--d-'; expectObservable(e1.pipe(debounce(getTimerSelector(2)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete when source does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(debounce(getTimerSelector(2)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not completes when source never completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(debounce(getTimerSelector(2)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should delay all element until source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d---------#'); const e1subs = ' ^--------------------!'; const expected = '----a--b--c--d-------#'; expectObservable(e1.pipe(debounce(getTimerSelector(2)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should debounce all elements while source emits by selector observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---b---c---d---e|'); const e1subs = ' ^-------------------!'; const expected = '--------------------(e|)'; expectObservable(e1.pipe(debounce(getTimerSelector(4)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should debounce all element while source emits by selector observable until raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d-#'); const e1subs = ' ^------------!'; const expected = '-------------#'; expectObservable(e1.pipe(debounce(getTimerSelector(5)))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should delay element by same selector observable emits multiple', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a--b--c----d-----e-------|'); const e1subs = ' ^----------------------------!'; const expected = ' ------a--b--c----d-----e-----|'; const selector = cold('--x-y-'); const selectorSubs = [ ' ----^-! ', ' -------^-! ', ' ----------^-! ', ' ---------------^-! ', ' ---------------------^-! ', ]; expectObservable(e1.pipe(debounce(() => selector))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(selector.subscriptions).toBe(selectorSubs); }); }); it('should debounce by selector observable emits multiple', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a--b--c----d-----e-------|'); const e1subs = ' ^----------------------------!'; const expected = '------a-----c----------e-----|'; const selector = [ cold(' --x-y- '), cold(' ----x-y- '), cold(' --x-y- '), cold(' ------x-y- '), cold(' --x-y- '), ]; const selectorSubs = [ ' ----^-! ', ' -------^--! ', ' ----------^-! ', ' ---------------^-----! ', ' ---------------------^-! ', ]; expectObservable(e1.pipe(debounce(() => selector.shift()!))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); for (let i = 0; i < selectorSubs.length; i++) { expectSubscriptions(selector[i].subscriptions).toBe(selectorSubs[i]); } }); }); it('should debounce by selector observable until source completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a--b--c----d----e| '); const e1subs = ' ^--------------------! '; const expected = '------a-----c--------(e|) '; const selector = [ cold(' --x-y- '), cold(' ----x-y- '), cold(' --x-y- '), cold(' ------x-y- '), cold(' --x-y-'), ]; const selectorSubs = [ ' ----^-! ', ' -------^--! ', ' ----------^-! ', ' ---------------^----! ', ' --------------------^! ', ]; expectObservable(e1.pipe(debounce(() => selector.shift()!))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); for (let i = 0; i < selectorSubs.length; i++) { expectSubscriptions(selector[i].subscriptions).toBe(selectorSubs[i]); } }); }); it('should raise error when selector observable raises error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --------a--------b--------c---------|'); const e1subs = ' ^----------------------------! '; const expected = '---------a---------b---------# '; const selector = [ cold(' -x-y- '), cold(' --x-y- '), cold(' ---# '), ]; const selectorSubs = [ ' --------^! ', ' -----------------^-! ', ' --------------------------^--! ', ]; expectObservable(e1.pipe(debounce(() => selector.shift()!))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); for (let i = 0; i < selectorSubs.length; i++) { expectSubscriptions(selector[i].subscriptions).toBe(selectorSubs[i]); } }); }); it('should raise error when source raises error with selector observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --------a--------b--------c---------d# '); const e1subs = ' ^------------------------------------! '; const expected = '---------a---------b---------c-------# '; const selector = [ cold(' -x-y- '), cold(' --x-y- '), cold(' ---x-y- '), cold(' ----x-y-'), ]; const selectorSubs = [ ' --------^! ', ' -----------------^-! ', ' --------------------------^--! ', ' ------------------------------------^! ', ]; expectObservable(e1.pipe(debounce(() => selector.shift()!))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); for (let i = 0; i < selectorSubs.length; i++) { expectSubscriptions(selector[i].subscriptions).toBe(selectorSubs[i]); } }); }); it('should raise error when selector function throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --------a--------b--------c---------|'); const e1subs = ' ^-------------------------! '; const expected = '---------a---------b------# '; // prettier-ignore const selector = [ cold(' -x-y- '), cold(' --x-y- '), ]; // prettier-ignore const selectorSubs = [ ' --------^! ', ' -----------------^-! ', ]; function selectorFunction(x: string) { if (x !== 'c') { return selector.shift(); } else { throw 'error'; } } expectObservable(e1.pipe(debounce(selectorFunction as any))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); for (let i = 0; i < selectorSubs.length; i++) { expectSubscriptions(selector[i].subscriptions).toBe(selectorSubs[i]); } }); }); it('should ignore all values except last, when given an empty selector Observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --------a-x-yz---bxy---z--c--x--y--z| '); const e1subs = ' ^-----------------------------------! '; const expected = '------------------------------------(z|)'; function selectorFunction(x: string) { return EMPTY; } expectObservable(e1.pipe(debounce(selectorFunction))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should ignore all values except last, when given a never selector Observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --------a-x-yz---bxy---z--c--x--y--z| '); const e1subs = ' ^-----------------------------------! '; const expected = '------------------------------------(z|)'; function selectorFunction() { return NEVER; } expectObservable(e1.pipe(debounce(selectorFunction))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not delay by selector observable completes when it does not emits', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --------a--------b--------c---------| '); const e1subs = ' ^-----------------------------------! '; const expected = '------------------------------------(c|)'; const selector = [ cold(' -| '), cold(' --| '), cold(' ---| '), ]; const selectorSubs = [ ' --------^! ', ' -----------------^-! ', ' --------------------------^--! ', ]; expectObservable(e1.pipe(debounce(() => selector.shift()!))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); for (let i = 0; i < selectorSubs.length; i++) { expectSubscriptions(selector[i].subscriptions).toBe(selectorSubs[i]); } }); }); it('should not debounce by selector observable completes when it does not emits', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a--b-c---------de-------------| '); const e1subs = ' ^---------------------------------! '; const expected = '----------------------------------(e|)'; const selector = [ cold(' -| '), cold(' --| '), cold(' ---| '), cold(' ----| '), cold(' -----| '), ]; const selectorSubs = [ ' ----^! ', ' -------^-! ', ' ---------^--! ', ' -------------------^! ', ' --------------------^----! ', ]; expectObservable(e1.pipe(debounce(() => selector.shift()!))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); for (let i = 0; i < selectorSubs.length; i++) { expectSubscriptions(selector[i].subscriptions).toBe(selectorSubs[i]); } }); }); it('should delay by promise resolves', (done) => { const e1 = concat(of(1), timer(10).pipe(mapTo(2)), timer(10).pipe(mapTo(3)), timer(100).pipe(mapTo(4))); const expected = [1, 2, 3, 4]; e1.pipe( debounce(() => { return new Promise((resolve: any) => { resolve(42); }); }) ).subscribe({ next: (x: number) => { expect(x).to.equal(expected.shift()); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { expect(expected.length).to.equal(0); done(); }, }); }); it('should raises error when promise rejects', (done) => { const e1 = concat(of(1), timer(10).pipe(mapTo(2)), timer(10).pipe(mapTo(3)), timer(100).pipe(mapTo(4))); const expected = [1, 2]; const error = new Error('error'); e1.pipe( debounce((x: number) => { if (x === 3) { return new Promise((resolve: any, reject: any) => { reject(error); }); } else { return new Promise((resolve: any) => { resolve(42); }); } }) ).subscribe({ next: (x: number) => { expect(x).to.equal(expected.shift()); }, error: (err: any) => { expect(err).to.be.an('error', 'error'); expect(expected.length).to.equal(0); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); it('should debounce correctly when synchronously reentered', () => { const results: number[] = []; const source = new Subject(); source.pipe(debounce(() => of(null))).subscribe((value) => { results.push(value); if (value === 1) { source.next(2); } }); source.next(1); expect(results).to.deep.equal([1, 2]); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( debounce(() => of(0)), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/debounceTime-spec.ts000066400000000000000000000210051431412030200213570ustar00rootroot00000000000000import { expect } from 'chai'; import { NEVER, of, Subject } from 'rxjs'; import { AnimationFrameAction } from 'rxjs/internal/scheduler/AnimationFrameAction'; import { AnimationFrameScheduler } from 'rxjs/internal/scheduler/AnimationFrameScheduler'; import { debounceTime, mergeMap, startWith } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { VirtualTimeScheduler } from '../../src/internal/scheduler/VirtualTimeScheduler'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {debounceTime} */ describe('debounceTime', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should debounce values by 2 time units', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--bc--d---|'); const e1subs = ' ^-----------!'; const expected = '---a---c--d-|'; const t = time(' --|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should delay all elements by the specified time', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--------b------c----|'); const e1subs = ' ^---------------------!'; const expected = '------a--------b------(c|)'; const t = time(' -----|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should debounce and delay element by the specified time', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--(bc)-----------d-------|'); const e1subs = ' ^--------------------------!'; const expected = '---------c--------------d--|'; const t = time(' -----|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete when source does not emit', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----|'); const e1subs = ' ^----!'; const expected = '-----|'; const t = time(' -|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete when source is empty', () => { testScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const expected = '|'; const t = time(' -|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when source does not emit and raises error', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----#'); const e1subs = ' ^----!'; const expected = '-----#'; const t = time(' -|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when source throws', () => { testScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e1subs = ' (^!)'; const expected = '#'; const t = time(' -|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--bc--d----|'); const e1subs = ' ^------! '; const expected = '----a--- '; const unsub = ' -------! '; const t = time(' --|'); const result = e1.pipe(debounceTime(t)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--bc--d----|'); const e1subs = ' ^------! '; const expected = '----a--- '; const unsub = ' -------! '; const t = time(' --|'); const result = e1.pipe( mergeMap((x: any) => of(x)), debounceTime(t), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should debounce and does not complete when source does not completes', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--(bc)-----------d-------'); const e1subs = ' ^--------------------------'; const expected = '---------c--------------d--'; const t = time(' -----|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not completes when source does not completes', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e1subs = ' ^'; const expected = '-'; const t = time(' -|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not completes when source never completes', () => { testScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; const t = time(' -|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should delay all elements until source raises error', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--------b------c----#'); const e1subs = ' ^---------------------!'; const expected = '------a--------b------#'; const t = time(' -----|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should debounce all elements while source emits within given time', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--g--h-|'); const e1subs = ' ^------------------------!'; const expected = '-------------------------(h|)'; const t = time(' ----|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should debounce all element while source emits within given time until raises error', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--g--h-#'); const e1subs = ' ^------------------------!'; const expected = '-------------------------#'; const t = time(' ----|'); expectObservable(e1.pipe(debounceTime(t))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should debounce correctly when synchronously reentered', () => { const results: number[] = []; const source = new Subject(); const scheduler = new VirtualTimeScheduler(); source.pipe(debounceTime(0, scheduler)).subscribe((value) => { results.push(value); if (value === 1) { source.next(2); } }); source.next(1); scheduler.flush(); expect(results).to.deep.equal([1, 2]); }); it('should unsubscribe from the scheduled debounce action when downstream unsubscribes', () => { const scheduler = new AnimationFrameScheduler(AnimationFrameAction); expect(scheduler._scheduled).to.not.exist; expect(scheduler.actions).to.be.empty; const subscription = NEVER.pipe(startWith(1), debounceTime(0, scheduler)).subscribe(); expect(scheduler._scheduled).to.exist; expect(scheduler.actions.length).to.equal(1); subscription.unsubscribe(); expect(scheduler._scheduled).to.not.exist; expect(scheduler.actions).to.be.empty; }); }); rxjs-7.5.7/spec/operators/defaultIfEmpty-spec.ts000066400000000000000000000077561431412030200217170ustar00rootroot00000000000000import { expect } from 'chai'; import { observableMatcher } from '../helpers/observableMatcher'; import { of, Observable } from 'rxjs'; import { defaultIfEmpty, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; /** @test {defaultIfEmpty} */ describe('defaultIfEmpty', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should return the Observable if not empty with a default value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --------|'); const e1subs = ' ^-------!'; const expected = '--------(x|)'; expectObservable(e1.pipe(defaultIfEmpty(42))).toBe(expected, { x: 42 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return the argument if Observable is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const expected = '(x|)'; expectObservable(e1.pipe(defaultIfEmpty('x'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return the Observable if not empty with a default value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const e1subs = ' ^-------!'; const expected = '--a--b--|'; expectObservable(e1.pipe(defaultIfEmpty('x'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow undefined as a default value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --------|'); const e1subs = ' ^-------!'; const expected = '--------(U|)'; expectObservable(e1.pipe(defaultIfEmpty(undefined))).toBe(expected, { U: undefined }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const e1subs = ' ^---! '; const expected = '--a-- '; const unsub = ' ----! '; const result = e1.pipe(defaultIfEmpty('x')); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const e1subs = ' ^---! '; const expected = '--a-- '; const unsub = ' ----! '; const result = e1.pipe( mergeMap((x) => of(x)), defaultIfEmpty('x'), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should error if the Observable errors', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e1subs = ' (^!)'; const expected = '#'; expectObservable(e1.pipe(defaultIfEmpty('x'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(defaultIfEmpty(0), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/delay-spec.ts000066400000000000000000000226561431412030200200670ustar00rootroot00000000000000import { of, concat } from 'rxjs'; import { delay, repeatWhen, skip, take, tap, mergeMap, ignoreElements } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import * as sinon from 'sinon'; import { expect } from 'chai'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {delay} */ describe('delay', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should delay by specified timeframe', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b--|'); const e1subs = ' ^--------!'; const t = time(' --| '); // --| const expected = '-----a--b|'; const result = e1.pipe(delay(t)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not delay at all if the delay number is negative', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b--|'); const e1subs = ' ^--------!'; const t = -1; const expected = '---a--b--|'; const result = e1.pipe(delay(t)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should delay by absolute time period', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--a---a----a----a------------b---b---b---b--|'); const e1subs = ' ^----------------------------------------------!'; const t = time(' --------------------| '); const expected = '--------------------(aaaaa)-----b---b---b---b--|'; const absoluteDelay = new Date(testScheduler.now() + t); const result = e1.pipe(delay(absoluteDelay)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not delay at all if the absolute time is in the past', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--a---a----a----a------------b---b---b---b--|'); const e1subs = ' ^----------------------------------------------!'; const t = -10000; const expected = '--a--a---a----a----a------------b---b---b---b--|'; const absoluteDelay = new Date(testScheduler.now() + t); const result = e1.pipe(delay(absoluteDelay)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should delay by absolute time period after source ends', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--a-----a---a-----a---| '); const e1subs = ' ^----------------------! '; const t = time(' ------------------------------| '); const expected = ' ------------------------------(aaaa|)'; const absoluteDelay = new Date(testScheduler.now() + t); const result = e1.pipe(delay(absoluteDelay)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when source raises error', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---b---#'); const e1subs = ' ^----------!'; const t = time(' ---| '); // ---| const expected = '------a---b#'; const result = e1.pipe(delay(t)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when source raises error before absolute delay fires', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--a---a-----# '); const e1subs = ' ^--------------! '; const t = time(' --------------------|'); const expected = '---------------# '; const absoluteDelay = new Date(testScheduler.now() + t); const result = e1.pipe(delay(absoluteDelay)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when source raises error after absolute delay fires', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot('---^---a--a---a---a--------b---b---b--#'); const e1subs = ' ^----------------------------------!'; const t = time(' -----------------| '); const expected = ' -----------------(aaaa)-b---b---b--#'; const absoluteDelay = new Date(testScheduler.now() + t); const result = e1.pipe(delay(absoluteDelay)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should delay when source does not emit', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----|'); const e1subs = ' ^---!'; const t = time(' ---| '); const expected = '----|'; const result = e1.pipe(delay(t)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not delay when source is empty', () => { testScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const t = time(' ---|'); const expected = '| '; const result = e1.pipe(delay(t)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should delay complete when a value is scheduled', () => { testScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const e1 = cold(' -a-| '); const e1subs = ' ^--! '; const t = time(' ---| '); const expected = '----(a|)'; const result = e1.pipe(delay(t)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete when source does not complete', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---b---------'); const e1subs = ' ^---------------!'; const t = time(' ---| '); // ---| const expected = '------a---b------'; const unsub = ' ----------------!'; const result = e1.pipe(delay(t)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---b----'); const e1subs = ' ^-------! '; const t = time(' ---| '); // ---| const expected = '------a-- '; const unsub = ' --------! '; const result = e1.pipe( mergeMap((x: any) => of(x)), delay(t), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete when source never completes', () => { testScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const e1 = cold(' - '); const e1subs = ' ^ '; const t = time(' ---|'); const expected = '- '; const result = e1.pipe(delay(t)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should unsubscribe scheduled actions after execution', () => { testScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { let subscribeSpy: any = null; const counts: number[] = []; const e1 = cold(' a| '); const t = time(' -| '); const expected = '--a-(a|)'; const result = e1.pipe( repeatWhen((notifications) => { const delayed = notifications.pipe(delay(t)); subscribeSpy = sinon.spy((delayed as any)['source'], 'subscribe'); return delayed; }), skip(1), take(2), tap({ next() { const [[subscriber]] = subscribeSpy.args; counts.push(subscriber._finalizers.length); }, complete() { expect(counts).to.deep.equal([1, 1]); }, }) ); expectObservable(result).toBe(expected); }); }); it('should be possible to delay complete by composition', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b---| '); const e1subs = ' ^---------! '; const t = time(' --| '); // --| // --| const expected = '-----a--b---|'; const result = concat(e1.pipe(delay(t)), of(undefined).pipe(delay(t), ignoreElements())); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/delayWhen-spec.ts000066400000000000000000000276461431412030200207150ustar00rootroot00000000000000import { of, EMPTY } from 'rxjs'; import { delayWhen, tap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; import { expect } from 'chai'; /** @test {delayWhen} */ describe('delayWhen', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should delay by duration selector', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---b---c--| '); const expected = '-----a------c----(b|)'; const subs = ' ^-------------! '; const selector = [ cold(' --x--| '), cold(' ----------(x|)'), cold(' -x--| '), ]; const selectorSubs = [ ' ---^-! ', ' -------^---------! ', ' -----------^! ', ]; let idx = 0; function durationSelector(x: any) { return selector[idx++]; } const result = e1.pipe(delayWhen(durationSelector)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(selector[0].subscriptions).toBe(selectorSubs[0]); expectSubscriptions(selector[1].subscriptions).toBe(selectorSubs[1]); expectSubscriptions(selector[2].subscriptions).toBe(selectorSubs[2]); }); }); it('should delay by selector', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--| '); const expected = ' ---a--b-| '; const subs = ' ^-------! '; const selector = cold('-x--| '); // -x--| // prettier-ignore const selectorSubs = [ ' --^! ', ' -----^! ', ]; const result = e1.pipe(delayWhen((x: any) => selector)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(selector.subscriptions).toBe(selectorSubs); }); }); it('should raise error if source raises error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--# '); const expected = ' ---a-# '; const subs = ' ^----! '; const selector = cold(' -x--|'); const selectorSubs = '--^! '; const result = e1.pipe(delayWhen((x: any) => selector)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(selector.subscriptions).toBe(selectorSubs); }); }); it('should raise error if selector raises error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const expected = ' ---# '; const subs = ' ^--! '; const selector = cold(' -# '); const selectorSubs = '--^! '; const result = e1.pipe(delayWhen((x: any) => selector)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(selector.subscriptions).toBe(selectorSubs); }); }); it('should delay by selector and completes after value emits', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--| '); const expected = ' ---------a--(b|)'; const subs = ' ^-------! '; const selector = cold('-------x--| '); // -------x--| // prettier-ignore const selectorSubs = [ ' --^------! ', ' -----^------! ' ]; const result = e1.pipe(delayWhen((x: any) => selector)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(selector.subscriptions).toBe(selectorSubs); }); }); it('should delay, but not emit if the selector never emits a notification', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--| '); const expected = ' -----------|'; const subs = ' ^-------! '; const selector = cold('------| '); // ------| // prettier-ignore const selectorSubs = [ ' --^-----! ', ' -----^-----!' ]; const result = e1.pipe(delayWhen((x: any) => selector)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(selector.subscriptions).toBe(selectorSubs); }); }); it('should not emit for async source and sync empty selector', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' a--|'); const expected = '---|'; const subs = ' ^--!'; const result = e1.pipe(delayWhen((x: any) => EMPTY)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should not emit if selector never emits', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const expected = ' - '; const subs = ' ^-------!'; const selector = cold('- '); // - // prettier-ignore const selectorSubs = [ ' --^ ', ' -----^ ', ]; const result = e1.pipe(delayWhen((x: any) => selector)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(selector.subscriptions).toBe(selectorSubs); }); }); it('should delay by first value from selector', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--| '); const expected = ' ------a--(b|) '; const subs = ' ^-------! '; const selector = cold('----x--y--| '); // ----x--y--| // prettier-ignore const selectorSubs = [ ' --^---! ', ' -----^---! ', ]; const result = e1.pipe(delayWhen((x: any) => selector)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(selector.subscriptions).toBe(selectorSubs); }); }); it('should delay by selector that does not completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--| '); const expected = ' ------a--(b|) '; const subs = ' ^-------! '; const selector = cold('----x-----y--- '); // ----x-----y--- // prettier-ignore const selectorSubs = [ ' --^---! ', ' -----^---! ' ]; const result = e1.pipe(delayWhen((x: any) => selector)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(selector.subscriptions).toBe(selectorSubs); }); }); it('should raise error if selector throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const e1subs = ' ^-! '; const expected = '--# '; const err = new Error('error'); const result = e1.pipe( delayWhen(((x: any) => { throw err; })) ); expectObservable(result).toBe(expected, null, err); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should start subscription when subscription delay emits', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----a---b---| '); const expected = ' -------a---b-| '; const subs = ' ---^---------! '; const selector = cold(' --x--| '); // --x--| // prettier-ignore const selectorSubs = [ ' -----^-! ', ' ---------^-! ' ]; const subDelay = cold('---x--| '); const subDelaySub = ' ^--! '; const result = e1.pipe(delayWhen((x: any) => selector, subDelay)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(selector.subscriptions).toBe(selectorSubs); expectSubscriptions(subDelay.subscriptions).toBe(subDelaySub); }); }); it('should start subscription when subscription delay completes without emit value', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----a---b---| '); const expected = ' -------a---b-| '; const subs = ' ---^---------! '; const selector = cold(' --x--| '); // --x--| // prettier-ignore const selectorSubs = [ ' -----^-! ', ' ---------^-! ' ]; const subDelay = cold('---| '); const subDelaySub = ' ^--! '; const result = e1.pipe(delayWhen((x: any) => selector, subDelay)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(selector.subscriptions).toBe(selectorSubs); expectSubscriptions(subDelay.subscriptions).toBe(subDelaySub); }); }); it('should raise error when subscription delay raises error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----a---b---|'); const expected = ' ---# '; const selector = cold(' --x--| '); const subDelay = cold('---# '); const subDelaySub = ' ^--! '; const result = e1.pipe(delayWhen((x: any) => selector, subDelay)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe([]); expectSubscriptions(selector.subscriptions).toBe([]); expectSubscriptions(subDelay.subscriptions).toBe(subDelaySub); }); }); it('should complete when duration selector returns synchronous observable', () => { let next: boolean = false; let complete: boolean = false; of(1) .pipe(delayWhen(() => of(2))) .subscribe({ next: () => (next = true), complete: () => (complete = true) }); expect(next).to.be.true; expect(complete).to.be.true; }); it('should call predicate with indices starting at 0', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^----------!'; const expected = ' --a--b--c--|'; const selector = cold(' (x|)'); // (x|) // (x|) let indices: number[] = []; const predicate = (value: string, index: number) => { indices.push(index); return selector; }; const result = e1.pipe(delayWhen(predicate)); expectObservable( result.pipe( tap({ complete: () => { expect(indices).to.deep.equal([0, 1, 2]); }, }) ) ).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/dematerialize-spec.ts000066400000000000000000000175731431412030200216120ustar00rootroot00000000000000import { expect } from 'chai'; import { of, Notification, ObservableNotification, Observable } from 'rxjs'; import { dematerialize, map, mergeMap, materialize, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {dematerialize} */ describe('dematerialize', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should dematerialize an Observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: '{x}', b: '{y}', c: '{z}', d: '|', }; const e1 = hot(' --a--b--c--d-|', values); const e1subs = ' ^----------! '; const expected = '--x--y--z--| '; const result = e1.pipe( map((x: string) => { if (x === '|') { return Notification.createComplete(); } else { return Notification.createNext(x.replace('{', '').replace('}', '')); } }), dematerialize() ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should dematerialize a happy stream', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: Notification.createNext('w'), b: Notification.createNext('x'), c: Notification.createNext('y'), d: Notification.createComplete(), }; const e1 = hot(' --a--b--c--d--|', values); const e1subs = ' ^----------! '; const expected = '--w--x--y--| '; expectObservable(e1.pipe(dematerialize())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should dematerialize a sad stream', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: Notification.createNext('w'), b: Notification.createNext('x'), c: Notification.createNext('y'), d: Notification.createError('error'), }; const e1 = hot(' --a--b--c--d--|', values); const e1subs = ' ^----------! '; const expected = '--w--x--y--# '; expectObservable(e1.pipe(dematerialize())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should dematerialize stream does not completes', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot>('------'); const e1subs = ' ^'; const expected = ' -'; expectObservable(e1.pipe(dematerialize())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should dematerialize stream never completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold>('-'); const e1subs = ' ^'; const expected = ' -'; expectObservable(e1.pipe(dematerialize())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should dematerialize stream does not emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot>('----|'); const e1subs = ' ^---!'; const expected = ' ----|'; expectObservable(e1.pipe(dematerialize())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should dematerialize empty stream', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold>('| '); const e1subs = ' (^!)'; const expected = ' | '; expectObservable(e1.pipe(dematerialize())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should dematerialize stream throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const error = 'error'; const e1 = hot(' (x|)', { x: Notification.createError(error) }); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(dematerialize())).toBe(expected, null, error); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: Notification.createNext('w'), b: Notification.createNext('x'), }; const e1 = hot(' --a--b--c--d--|', values); const e1subs = ' ^------! '; const expected = '--w--x-- '; const unsub = ' -------! '; const result = e1.pipe(dematerialize()); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: Notification.createNext('w'), b: Notification.createNext('x'), }; const e1 = hot(' --a--b--c--d--|', values); const e1subs = ' ^------! '; const expected = '--w--x-- '; const unsub = ' -------! '; const result = e1.pipe( mergeMap((x: any) => of(x)), dematerialize(), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should dematerialize and completes when stream completes with complete notification', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----(a|)', { a: Notification.createComplete() }); const e1subs = ' ^---! '; const expected = '----| '; expectObservable(e1.pipe(dematerialize())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should dematerialize and completes when stream emits complete notification', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a--|', { a: Notification.createComplete() }); const e1subs = ' ^---! '; const expected = '----| '; expectObservable(e1.pipe(dematerialize())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with materialize', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a--b---c---d---e----f--|'); const e1subs = ' ^--------------------------!'; const expected = '----a--b---c---d---e----f--|'; const result = e1.pipe(materialize(), dematerialize()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(materialize(), dematerialize(), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/distinct-spec.ts000066400000000000000000000237221431412030200206050ustar00rootroot00000000000000import { expect } from 'chai'; import { distinct, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {distinct} */ describe('distinct', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should distinguish between values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--a--a--b--b--a--|'); const e1subs = ' ^-------------------!'; const expected = '--a--------b--------|'; expectObservable(e1.pipe(distinct())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should distinguish between values and does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--a--a--b--b--a-'); const e1subs = ' ^------------------'; const expected = '--a--------b-------'; expectObservable(e1.pipe(distinct())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete if source never completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(distinct())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete if source does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(distinct())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete if source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const expected = '|'; expectObservable(e1.pipe(distinct())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete if source does not emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ------|'); const e1subs = ' ^-----!'; const expected = '------|'; expectObservable(e1.pipe(distinct())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit if source emits single element only', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--|'); const e1subs = ' ^----!'; const expected = '--a--|'; expectObservable(e1.pipe(distinct())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit if source is scalar', () => { testScheduler.run(({ expectObservable }) => { const e1 = of('a'); const expected = '(a|)'; expectObservable(e1.pipe(distinct())).toBe(expected); }); }); it('should raises error if source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--a--#'); const e1subs = ' ^-------!'; const expected = '--a-----#'; expectObservable(e1.pipe(distinct())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raises error if source throws', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(distinct())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not omit if source elements are all different', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--|'); const e1subs = ' ^-------------------!'; const expected = '--a--b--c--d--e--f--|'; expectObservable(e1.pipe(distinct())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--b--d--a--f--|'); const e1subs = ' ^---------! '; const expected = '--a--b----- '; const unsub = ' ----------! '; const result = e1.pipe(distinct()); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--b--d--a--f--|'); const e1subs = ' ^---------! '; const expected = '--a--b----- '; const unsub = ' ----------! '; const result = e1.pipe( mergeMap((x: any) => of(x)), distinct(), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit once if source elements are all same', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--a--a--a--a--a--|'); const e1subs = ' ^-------------------!'; const expected = '--a-----------------|'; expectObservable(e1.pipe(distinct())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should distinguish values by key', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 }; const e1 = hot(' --a--b--c--d--e--f--|', values); const e1subs = ' ^-------------------!'; const expected = '--a--b--c-----------|'; const selector = (value: number) => value % 3; expectObservable(e1.pipe(distinct(selector))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raises error when selector throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--|'); const e1subs = ' ^----------! '; const expected = '--a--b--c--# '; const selector = (value: string) => { if (value === 'd') { throw new Error('d is for dumb'); } return value; }; expectObservable(e1.pipe(distinct(selector))).toBe(expected, undefined, new Error('d is for dumb')); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support a flushing stream', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--a--b--a--b--|'); const e1subs = ' ^-------------------!'; const e2 = hot(' -----------x--------|'); const e2subs = ' ^-------------------!'; const expected = '--a--b--------a--b--|'; expectObservable(e1.pipe(distinct(undefined, e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error if flush raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--a--b--a--b--|'); const e1subs = ' ^------------! '; const e2 = hot(' -----------x-# '); const e2subs = ' ^------------! '; const expected = '--a--b-------# '; expectObservable(e1.pipe(distinct(undefined, e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should unsubscribe from the flushing stream when the main stream is unsubbed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--a--b--a--b--|'); const e1subs = ' ^----------! '; const e2 = hot(' -----------x--------|'); const e2subs = ' ^----------! '; const unsub = ' -----------! '; const expected = '--a--b------ '; expectObservable(e1.pipe(distinct(undefined, e2)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should allow opting in to default comparator with flush', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--a--b--a--b--|'); const e1subs = ' ^-------------------!'; const e2 = hot(' -----------x--------|'); const e2subs = ' ^-------------------!'; const expected = '--a--b--------a--b--|'; expectObservable(e1.pipe(distinct(undefined, e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(distinct(), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/distinctUntilChanged-spec.ts000066400000000000000000000274371431412030200231020ustar00rootroot00000000000000import { expect } from 'chai'; import { distinctUntilChanged, mergeMap, take } from 'rxjs/operators'; import { of, Observable, Subject } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {distinctUntilChanged} */ describe('distinctUntilChanged', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should distinguish between values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -1--2-2----1-3-|'); const e1subs = ' ^--------------!'; const expected = '-1--2------1-3-|'; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should distinguish between values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--a--a--b--b--a--|'); const e1subs = ' ^-------------------!'; const expected = '--a--------b-----a--|'; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should distinguish between values and does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--a--a--b--b--a-'); const e1subs = ' ^------------------'; const expected = '--a--------b-----a-'; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete if source never completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete if source does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete if source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete if source does not emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ------|'); const e1subs = ' ^-----!'; const expected = '------|'; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit if source emits single element only', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--|'); const e1subs = ' ^----!'; const expected = '--a--|'; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit if source is scalar', () => { testScheduler.run(({ expectObservable }) => { const e1 = of('a'); const expected = '(a|)'; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); }); }); it('should raise error if source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--a--#'); const e1subs = ' ^-------!'; const expected = '--a-----#'; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source throws', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not omit if source elements are all different', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--|'); const e1subs = ' ^-------------------!'; const expected = '--a--b--c--d--e--f--|'; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--b--d--a--f--|'); const e1subs = ' ^---------! '; const expected = '--a--b----- '; const unsub = ' ----------! '; const result = e1.pipe(distinctUntilChanged()); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--b--d--a--f--|'); const e1subs = ' ^---------! '; const expected = '--a--b----- '; const unsub = ' ----------! '; const result = e1.pipe( mergeMap((x: any) => of(x)), distinctUntilChanged(), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit once if source elements are all same', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--a--a--a--a--a--|'); const e1subs = ' ^-------------------!'; const expected = '--a-----------------|'; expectObservable(e1.pipe(distinctUntilChanged())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit once if comparator returns true always regardless of source emits', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--|'); const e1subs = ' ^-------------------!'; const expected = '--a-----------------|'; const comparator = () => true; expectObservable(e1.pipe(distinctUntilChanged(comparator))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit all if comparator returns false always regardless of source emits', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--a--a--a--a--a--|'); const e1subs = ' ^-------------------!'; const expected = '--a--a--a--a--a--a--|'; const comparator = () => false; expectObservable(e1.pipe(distinctUntilChanged(comparator))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should distinguish values by comparator', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--|', { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 }); const e1subs = ' ^-------------------!'; const expected = '--a-----c-----e-----|'; const comparator = (x: number, y: number) => y % 2 === 0; expectObservable(e1.pipe(distinctUntilChanged(comparator))).toBe(expected, { a: 1, c: 3, e: 5 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when comparator throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--|'); const e1subs = ' ^----------! '; const expected = '--a--b--c--# '; const comparator = (x: string, y: string) => { if (y === 'd') { throw 'error'; } return x === y; }; expectObservable(e1.pipe(distinctUntilChanged(comparator))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should use the keySelector to pick comparator values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--|', { a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 }); const e1subs = ' ^-------------------!'; const expected = '--a--b-----d-----f--|'; const comparator = (x: number, y: number) => y % 2 === 1; const keySelector = (x: number) => x % 2; expectObservable(e1.pipe(distinctUntilChanged(comparator, keySelector))).toBe(expected, { a: 1, b: 2, d: 4, f: 6 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should use the keySelector even for the first emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|', { a: 2, b: 4 }); const e1subs = ' ^-------!'; const expected = '--a-----|'; const keySelector = (x: number) => x % 2; expectObservable(e1.pipe(distinctUntilChanged(null!, keySelector))).toBe(expected, { a: 2 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when keySelector throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--|'); const e1subs = ' ^----------! '; const expected = '--a--b--c--# '; const keySelector = (x: string) => { if (x === 'd') { throw 'error'; } return x; }; expectObservable(e1.pipe(distinctUntilChanged(null as any, keySelector))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(distinctUntilChanged(), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); // This test is to cover a corner case where someone might write // synchronous, reentrant code. At the time this test was authored, // the operator was written in such a way that it would allow // the duplicate non-distinct values to be emitted repeatedly. it('should work properly with reentrant streams', () => { const subject = new Subject(); const results: any[] = []; let count = 0; subject.pipe(distinctUntilChanged()).subscribe((n) => { results.push(n); // Protect against an infinite loop in this test. // That shouldn't happen. if (++count > 2) { throw new Error('this should have only been hit once'); } // If we reenter with the same value, it should not // emit again. subject.next(1); }); // Start with 1. subject.next(1); // It should only have emitted one value. expect(results).to.deep.equal([1]); }); }); rxjs-7.5.7/spec/operators/distinctUntilKeyChanged-spec.ts000066400000000000000000000271641431412030200235500ustar00rootroot00000000000000import { expect } from 'chai'; import { distinctUntilKeyChanged, mergeMap, map, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {distinctUntilKeyChanged} */ describe('distinctUntilKeyChanged', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should distinguish between values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { k: 1 }, b: { k: 2 }, c: { k: 3 } }; const e1 = hot(' -a--b-b----a-c-|', values); const e1Subs = ' ^--------------!'; const expected = '-a--b------a-c-|'; const result = e1.pipe(distinctUntilKeyChanged('k')); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1Subs); }); }); it('should distinguish between values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 }, b: { val: 2 } }; const e1 = hot(' --a--a--a--b--b--a--|', values); const e1subs = ' ^-------------------!'; const expected = '--a--------b-----a--|'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should distinguish between values and does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 }, b: { val: 2 } }; const e1 = hot(' --a--a--a--b--b--a-', values); const e1subs = ' ^ '; const expected = '--a--------b-----a-'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should distinguish between values with key', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 }, b: { valOther: 1 }, c: { valOther: 3 }, d: { val: 1 }, e: { val: 5 } }; const e1 = hot('--a--b--c--d--e--|', values); const e1subs = ' ^----------------!'; const expected = ' --a--b-----d--e--|'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not compare if source does not have element with key', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { valOther: 1 }, b: { valOther: 1 }, c: { valOther: 3 }, d: { valOther: 1 }, e: { valOther: 5 } }; const e1 = hot('--a--b--c--d--e--|', values); const e1subs = ' ^----------------!'; const expected = ' --a--------------|'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete if source never completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('-'); const e1subs = ' ^'; const expected = ' -'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete if source does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-'); const e1subs = ' ^'; const expected = ' -'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete if source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('|'); const e1subs = ' (^!)'; const expected = ' |'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete if source does not emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('------|'); const e1subs = ' ^-----!'; const expected = ' ------|'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit if source emits single element only', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 } }; const e1 = hot(' --a--|', values); const e1subs = ' ^----!'; const expected = '--a--|'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit if source is scalar', () => { testScheduler.run(({ expectObservable }) => { const values = { a: { val: 1 } }; const e1 = of(values.a); const expected = '(a|)'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected, values); }); }); it('should raise error if source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 } }; const e1 = hot(' --a--a--#', values); const e1subs = ' ^-------!'; const expected = '--a-----#'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source throws', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('# '); const e1subs = ' (^!)'; const expected = ' # '; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not omit if source elements are all different', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 }, b: { val: 2 }, c: { val: 3 }, d: { val: 4 }, e: { val: 5 } }; const e1 = hot(' --a--b--c--d--e--|', values); const e1subs = ' ^----------------!'; const expected = '--a--b--c--d--e--|'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 }, b: { val: 2 }, c: { val: 3 }, d: { val: 4 }, e: { val: 5 } }; const e1 = hot(' --a--b--b--d--a--e--|', values); const e1subs = ' ^---------! '; const expected = '--a--b----- '; const unsub = ' ----------! '; const result = e1.pipe(distinctUntilKeyChanged('val')); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 }, b: { val: 2 }, c: { val: 3 }, d: { val: 4 }, e: { val: 5 } }; const e1 = hot(' --a--b--b--d--a--e--|', values); const e1subs = ' ^---------! '; const expected = '--a--b----- '; const unsub = ' ----------! '; const result = e1.pipe( mergeMap((x: any) => of(x)), distinctUntilKeyChanged('val'), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit once if source elements are all same', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 } }; const e1 = hot(' --a--a--a--a--a--a--|', values); const e1subs = ' ^-------------------!'; const expected = '--a-----------------|'; expectObservable(e1.pipe(distinctUntilKeyChanged('val'))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit once if comparer returns true always regardless of source emits', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 }, b: { val: 2 }, c: { val: 3 }, d: { val: 4 }, e: { val: 5 } }; const e1 = hot(' --a--b--c--d--e--|', values); const e1subs = ' ^----------------!'; const expected = '--a--------------|'; expectObservable(e1.pipe(distinctUntilKeyChanged('val', () => true))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit all if comparer returns false always regardless of source emits', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 } }; const e1 = hot(' --a--a--a--a--a--a--|', values); const e1subs = ' ^-------------------!'; const expected = '--a--a--a--a--a--a--|'; expectObservable(e1.pipe(distinctUntilKeyChanged('val', () => false))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should distinguish values by selector', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 }, b: { val: 2 }, c: { val: 3 }, d: { val: 4 }, e: { val: 5 } }; const e1 = hot(' --a--b--c--d--e--|', values); const e1subs = ' ^----------------!'; const expected = '--a-----c-----e--|'; const selector = (x: number, y: number) => y % 2 === 0; expectObservable(e1.pipe(distinctUntilKeyChanged('val', selector))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when comparer throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: { val: 1 }, b: { val: 2 }, c: { val: 3 }, d: { val: 4 }, e: { val: 5 } }; const e1 = hot(' --a--b--c--d--e--|', values); const e1subs = ' ^----------! '; const expected = '--a--b--c--# '; const selector = (x: number, y: number) => { if (y === 4) { throw 'error'; } return x === y; }; expectObservable(e1.pipe(distinctUntilKeyChanged('val', selector))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( map((value) => ({ value })), distinctUntilKeyChanged('value'), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/elementAt-spec.ts000066400000000000000000000143231431412030200206770ustar00rootroot00000000000000import { expect } from 'chai'; import { elementAt, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { ArgumentOutOfRangeError, of, range, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {elementAt} */ describe('elementAt', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should return next to last element by zero-based index', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c-d---|'); const e1subs = ' ^-------! '; const expected = '--------(c|) '; expectObservable(e1.pipe(elementAt(2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return first element by zero-based index', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-!'; const expected = '--(a|)'; expectObservable(e1.pipe(elementAt(0))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow undefined as a default value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----a--a---a-| '); const e1subs = ' ^-------------! '; const expected = '--------------(U|)'; expectObservable(e1.pipe(elementAt(100, undefined))).toBe(expected, { U: undefined }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return non-first element by zero-based index', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--|'); const e1subs = ' ^----------! '; const expected = '-----------(d|) '; expectObservable(e1.pipe(elementAt(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return last element by zero-based index', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-------! '; const expected = '--------(c|)'; expectObservable(e1.pipe(elementAt(2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if e1 is Empty Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(elementAt(0))).toBe(expected, undefined, new ArgumentOutOfRangeError()); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source throws', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(elementAt(0))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete if source never completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const expected = '-'; const e1subs = ' ^'; expectObservable(e1.pipe(elementAt(0))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-----! '; const expected = '------- '; const unsub = ' ------! '; const result = e1.pipe(elementAt(2)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result Observable is unsubscribed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-----! '; const expected = '------- '; const unsub = ' ------! '; const result = e1.pipe( mergeMap((x: any) => of(x)), elementAt(2), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should throw if index is smaller than zero', () => { expect(() => { range(0, 10).pipe(elementAt(-1)); }).to.throw(ArgumentOutOfRangeError); }); it('should raise error if index is out of range but does not have default value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--|'); const e1subs = ' ^----!'; const expected = '-----#'; expectObservable(e1.pipe(elementAt(3))).toBe(expected, null, new ArgumentOutOfRangeError()); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return default value if index is out of range', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--| '); const e1subs = ' ^----! '; const expected = '-----(x|)'; const defaultValue = '42'; expectObservable(e1.pipe(elementAt(3, defaultValue))).toBe(expected, { x: defaultValue }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits, it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(elementAt(2)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/endWith-spec.ts000066400000000000000000000174631431412030200203730ustar00rootroot00000000000000import { expect } from 'chai'; import { of, Observable } from 'rxjs'; import { endWith, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {endWith} */ describe('endWith', () => { const defaultEndValue = 'x'; let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should append to a cold Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a--b--c--| '); const e1subs = ' ^-----------! '; const expected = '---a--b--c--(s|)'; expectObservable(e1.pipe(endWith('s'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should append numbers to a cold Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, c: 3, s: 4 }; const e1 = cold(' ---a--b--c--| ', values); const e1subs = ' ^-----------! '; const expected = '---a--b--c--(s|)'; expectObservable(e1.pipe(endWith(values.s))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should end an observable with given value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--| '); const e1subs = ' ^----! '; const expected = '--a--(x|)'; expectObservable(e1.pipe(endWith(defaultEndValue))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not end with given value if source does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a-'); const e1subs = ' ^ '; const expected = '----a-'; expectObservable(e1.pipe(endWith(defaultEndValue))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not end with given value if source never emits and does not completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(endWith(defaultEndValue))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should end with given value if source does not emit but does complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---| '); const e1subs = ' ^--! '; const expected = '---(x|)'; expectObservable(e1.pipe(endWith(defaultEndValue))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit given value and complete immediately if source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '(x|)'; expectObservable(e1.pipe(endWith(defaultEndValue))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should end with given value and source both if source emits single value', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' (a|) '); const e1subs = ' (^!) '; const expected = '(ax|)'; expectObservable(e1.pipe(endWith(defaultEndValue))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should end with given values when given more than one value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----a--| '); const e1subs = ' ^-------! '; const expected = '-----a--(yz|)'; expectObservable(e1.pipe(endWith('y', 'z'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error and not end with given value if source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --#'); const e1subs = ' ^-!'; const expected = '--#'; expectObservable(e1.pipe(endWith(defaultEndValue))).toBe(expected, defaultEndValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error immediately and not end with given value if source throws error immediately', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(endWith(defaultEndValue))).toBe(expected, defaultEndValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b----c--d--|'); const e1subs = ' ^--------! '; const expected = '---a--b--- '; const unsub = ' ---------! '; const result = e1.pipe(endWith('s')); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b----c--d--|'); const e1subs = ' ^--------! '; const expected = '---a--b--- '; const unsub = ' ---------! '; const result = e1.pipe( mergeMap((x: string) => of(x)), endWith('s'), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should end with empty if given value is not specified', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-|'); const e1subs = ' ^--!'; const expected = '-a-|'; expectObservable(e1.pipe(endWith())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should accept scheduler as last argument with single value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--| '); const e1subs = ' ^----! '; const expected = '--a--(x|)'; expectObservable(e1.pipe(endWith(defaultEndValue, testScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should accept scheduler as last argument with multiple value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----a--| '); const e1subs = ' ^-------! '; const expected = '-----a--(yz|)'; expectObservable(e1.pipe(endWith('y', 'z', testScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(endWith(0), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/every-spec.ts000066400000000000000000000263571431412030200201250ustar00rootroot00000000000000import { expect } from 'chai'; import { every, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable, Observer } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {every} */ describe('every', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); function truePredicate(x: number | string) { return true; } function predicate(x: number | string) { return +x % 5 === 0; } it('should return false if only one of elements does not match with predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 5, b: 10, c: 15, d: 18, e: 20 }; const e1 = hot(' --a--b--c--d--e--|', values); const e1subs = ' ^----------! '; const expected = '-----------(x|) '; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: false }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should accept thisArg with scalar observables', () => { const thisArg = {}; of(1) .pipe( every(function (this: any, value: number, index: number) { expect(this).to.deep.equal(thisArg); return true; }, thisArg) ) .subscribe(); }); it('should increment index on each call to the predicate', () => { const indices: number[] = []; of(1, 2, 3, 4) .pipe( every((_, i) => { indices.push(i); return true; }) ) .subscribe(); expect(indices).to.deep.equal([0, 1, 2, 3]); }); it('should accept thisArg with array observable', () => { const thisArg = {}; of(1, 2, 3, 4) .pipe( every(function (this: any, value: number, index: number) { expect(this).to.deep.equal(thisArg); return true; }, thisArg) ) .subscribe(); }); it('should accept thisArg with ordinary observable', () => { const thisArg = {}; const source = new Observable((observer: Observer) => { observer.next(1); observer.complete(); }); source .pipe( every(function (this: any, value: number, index: number) { expect(this).to.deep.equal(thisArg); return true; }, thisArg) ) .subscribe(); }); it('should emit true if source is empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----| '); const e1subs = ' ^----! '; const expected = '-----(x|)'; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: true }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit false if single source element does not match with predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--|'); const e1subs = ' ^-! '; const expected = '--(x|)'; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: false }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit false if none of elements match with predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--|'); const e1subs = ' ^-! '; const expected = '--(x|) '; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: false }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return false if only some of elements matches with predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 5, b: 10, c: 15 }; const e1 = hot(' --a--b--c--d--e--|', values); const e1subs = ' ^----------! '; const expected = '-----------(x|) '; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: false }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 5, b: 10, c: 15 }; const e1 = hot(' --a--b--c--d--e--|', values); const e1subs = ' ^------! '; const expected = '-------- '; const unsub = ' -------! '; const result = e1.pipe(every(predicate)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result observable is unsubscribed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 5, b: 10, c: 15 }; const e1 = hot(' --a--b--c--d--e--|', values); const e1subs = ' ^------! '; const expected = '-------- '; const unsub = ' -------! '; const result = e1.pipe( mergeMap((x: any) => of(x)), every(predicate), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate error if predicate eventually throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--|'); const e1subs = ' ^-------!'; const expected = '--------#'; function faultyPredicate(x: string) { if (x === 'c') { throw 'error'; } else { return true; } } expectObservable(e1.pipe(every(faultyPredicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit true if single source element matches with predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 5 }; const e1 = hot(' --a--| ', values); const e1subs = ' ^----! '; const expected = '-----(x|)'; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: true }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit true if scalar source matches with predicate', () => { testScheduler.run(({ expectObservable }) => { const e1 = of(5); const expected = '(x|)'; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: true }); }); }); it('should emit false if scalar source does not match with predicate', () => { testScheduler.run(({ expectObservable }) => { const e1 = of(3); const expected = '(x|)'; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: false }); }); }); it('should propagate error if predicate throws on scalar source', () => { testScheduler.run(({ expectObservable }) => { const e1 = of(3); const expected = '#'; function faultyPredicate(x: number): boolean { throw 'error'; } expectObservable(e1.pipe(every(faultyPredicate))).toBe(expected); }); }); it('should emit true if scalar array source matches with predicate', () => { testScheduler.run(({ expectObservable }) => { const e1 = of(5, 10, 15, 20); const expected = '(x|)'; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: true }); }); }); it('should emit false if scalar array source does not match with predicate', () => { testScheduler.run(({ expectObservable }) => { const e1 = of(5, 9, 15, 20); const expected = '(x|)'; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: false }); }); }); it('should propagate error if predicate eventually throws on scalar array source', () => { testScheduler.run(({ expectObservable }) => { const e1 = of(5, 10, 15, 20); const expected = '#'; function faultyPredicate(x: number) { if (x === 15) { throw 'error'; } return true; } expectObservable(e1.pipe(every(faultyPredicate))).toBe(expected); }); }); it('should emit true if all source elements match with predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 5, b: 10, c: 15, d: 20, e: 25 }; const e1 = hot(' --a--b--c--d--e--| ', values); const e1subs = ' ^----------------! '; const expected = '-----------------(x|)'; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: true }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --#'); const e1subs = ' ^-!'; const expected = '--#'; expectObservable(e1.pipe(every(truePredicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete if source never emits', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(every(truePredicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit true if source element matches with predicate after subscription', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 5, b: 10, c: 15, d: 20, e: 25 }; const e1 = hot('--z--^--a--b--c--d--e--| ', values); const e1subs = ' ^-----------------! '; const expected = ' ------------------(x|)'; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: true }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit false if source element does not match with predicate after subscription', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 5, b: 10, c: 15, d: 20 }; const e1 = hot('--z--^--b--c--z--d--|', values); const e1subs = ' ^--------! '; const expected = ' ---------(x|) '; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: false }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source raises error after subscription', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--z--^--#'); const e1subs = ' ^--!'; const expected = ' ---#'; expectObservable(e1.pipe(every(truePredicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit true if source does not emit after subscription', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--z--^-----| '); const e1subs = ' ^-----! '; const expected = ' ------(x|)'; expectObservable(e1.pipe(every(predicate))).toBe(expected, { x: true }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/exhaustAll-spec.ts000066400000000000000000000263621431412030200211010ustar00rootroot00000000000000import { expect } from 'chai'; import { exhaustAll, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {exhaust} */ describe('exhaust', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should handle a hot observable of hot observables', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const x = hot(' -----a---b---c--| '); const xsubs = ' ------^---------! '; const y = hot(' -------d--e---f---| '); const ysubs: string[] = []; const z = hot(' --------------g--h---i---| '); const zsubs = ' --------------------^----! '; const e1 = hot(' ------x-------y-----z-------------|', { x: x, y: y, z: z }); const e1subs = ' ^---------------------------------!'; const expected = '---------b---c-------i------------|'; expectObservable(e1.pipe(exhaustAll())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); }); }); it('should switch to first immediately-scheduled inner Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' (ab|)'); const e1subs = ' (^!) '; const e2 = cold(' (cd|)'); const e2subs: string[] = []; const expected = '(ab|)'; expectObservable(of(e1, e2).pipe(exhaustAll())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(exhaustAll())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; expectObservable(e1.pipe(exhaustAll())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(exhaustAll())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a hot observable of observables', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------^------------! '; const y = cold(' ---d--e---f---| '); const ysubs: string[] = []; const z = cold(' ---g--h---i---|'); const zsubs = ' --------------------^-------------!'; const e1 = hot(' ------x-------y-----z-------------|', { x: x, y: y, z: z }); const e1subs = ' ^---------------------------------!'; const expected = '--------a---b---c------g--h---i---|'; expectObservable(e1.pipe(exhaustAll())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); }); }); it('should handle a hot observable of observables, outer is unsubscribed early', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------^---------! '; const y = cold(' ---d--e---f---|'); const ysubs: string[] = []; const e1 = hot(' ------x-------y------| ', { x: x, y: y }); const unsub = ' ----------------! '; const expected = '--------a---b---- '; expectObservable(e1.pipe(exhaustAll()), unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------^---------! '; const y = cold(' ---d--e---f---|'); const ysubs: string[] = []; const e1 = hot(' ------x-------y------| ', { x: x, y: y }); const unsub = ' ----------------! '; const expected = '--------a---b---- '; const result = e1.pipe( mergeMap((x) => of(x)), exhaustAll(), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); }); }); it('should handle a hot observable of observables, inner never completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b--| '); const xsubs = ' ---^--------! '; const y = cold(' -d---e- '); const ysubs: string[] = []; const z = cold(' ---f--g---h--'); const zsubs = ' --------------^------------'; const e1 = hot(' ---x---y------z----------| ', { x: x, y: y, z: z }); const expected = '-----a---b-------f--g---h--'; expectObservable(e1.pipe(exhaustAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); }); }); it('should handle a synchronous switch and stay on the first inner observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------^------------! '; const y = cold(' ---d--e---f---| '); const ysubs: string[] = []; const e1 = hot(' ------(xy)------------|', { x: x, y: y }); const expected = '--------a---b---c-----|'; expectObservable(e1.pipe(exhaustAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); }); }); it('should handle a hot observable of observables, one inner throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a---# '); const xsubs = ' ------^-----! '; const y = cold(' ---d--e---f---|'); const ysubs: string[] = []; const e1 = hot(' ------x-------y------| ', { x: x, y: y }); const expected = '--------a---# '; expectObservable(e1.pipe(exhaustAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); }); }); it('should handle a hot observable of observables, outer throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------^------------! '; const y = cold(' ---d--e---f---|'); const ysubs: string[] = []; const e1 = hot(' ------x-------y-------# ', { x: x, y: y }); const expected = '--------a---b---c-----# '; expectObservable(e1.pipe(exhaustAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); }); }); it('should handle an empty hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ------|'); const e1subs = ' ^-----!'; const expected = '------|'; expectObservable(e1.pipe(exhaustAll())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a never hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(exhaustAll())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete not before the outer completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------^------------! '; const e1 = hot(' ------x---------------|', { x: x }); const expected = '--------a---b---c-----|'; expectObservable(e1.pipe(exhaustAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); }); }); it('should handle an observable of promises', (done) => { const expected = [1]; of(Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)) .pipe(exhaustAll()) .subscribe({ next: (x) => { expect(x).to.equal(expected.shift()); }, complete: () => { expect(expected.length).to.equal(0); done(); }, }); }); it('should handle an observable of promises, where one rejects', (done) => { of(Promise.reject(2), Promise.resolve(1)) .pipe(exhaustAll()) .subscribe({ next: (x) => { done(new Error('should not be called')); }, error: (err) => { expect(err).to.equal(2); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); of(synchronousObservable) .pipe(exhaustAll(), take(3)) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); it('should handle synchronously completing inner observables', (done) => { let i = 1; of(of(1), of(2)) .pipe(exhaustAll()) .subscribe({ next: (v) => expect(v).to.equal(i++), complete: () => { expect(i).to.equal(3); done(); }, }); }); }); rxjs-7.5.7/spec/operators/exhaustMap-spec.ts000066400000000000000000000504771431412030200211120ustar00rootroot00000000000000import { TestScheduler } from 'rxjs/testing'; import { concat, defer, Observable, of, BehaviorSubject } from 'rxjs'; import { exhaustMap, mergeMap, takeWhile, map, take } from 'rxjs/operators'; import { expect } from 'chai'; import { asInteropObservable } from '../helpers/interop-helper'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {exhaustMap} */ describe('exhaustMap', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should map-and-flatten each item to an Observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { x: 10, y: 30, z: 50 }; const e1 = hot(' --1-----3--5-------|'); const e1subs = ' ^------------------!'; const e2 = cold(' x-x-x| ', values); // x-x-x| // x-x-x| const expected = ' --x-x-x-y-y-y------|'; const result = e1.pipe(exhaustMap((x) => e2.pipe(map((i) => i * +x)))); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support the deprecated resultSelector', () => { const results: Array = []; of(1, 2, 3) .pipe( exhaustMap( (x) => of(x, x + 1, x + 2), (a, b, i, ii) => [a, b, i, ii] ) ) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([ [1, 1, 0, 0], [1, 2, 0, 1], [1, 3, 0, 2], [2, 2, 1, 0], [2, 3, 1, 1], [2, 4, 1, 2], [3, 3, 2, 0], [3, 4, 2, 1], [3, 5, 2, 2], ]); }, }); }); it('should support a void resultSelector (still deprecated)', () => { const results: number[] = []; of(1, 2, 3) .pipe(exhaustMap((x) => of(x, x + 1, x + 2), void 0)) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([1, 2, 3, 2, 3, 4, 3, 4, 5]); }, }); }); it('should handle outer throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--|'); const xsubs: string[] = []; const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; const result = e1.pipe(exhaustMap(() => x)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle outer empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--|'); const xsubs: string[] = []; const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; const result = e1.pipe(exhaustMap(() => x)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle outer never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--|'); const xsubs: string[] = []; const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; const result = e1.pipe(exhaustMap(() => x)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if project throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---x---------y-----------------z-------------|'); const e1subs = ' ^--!'; const expected = '---#'; const result = e1.pipe( exhaustMap(() => { throw 'error'; }) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch with a selector function', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--| '); const xsubs = ' ---^----------! '; const y = cold(' --d--e--f--| '); const ysubs: string[] = []; const z = cold(' --g--h--i--| '); const zsubs = ' -------------------------------^----------! '; const e1 = hot(' ---x---------y-----------------z-------------|'); const e1subs = ' ^--------------------------------------------!'; const expected = '-----a--b--c---------------------g--h--i-----|'; const observableLookup: Record> = { x: x, y: y, z: z }; const result = e1.pipe(exhaustMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner cold observables, outer is unsubscribed early', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--| '); const xsubs = ' ---^----------! '; const y = cold(' --d--e--f--| '); const ysubs: string[] = []; const z = cold(' --g--h--i--| '); const zsubs = ' -------------------------------^--! '; const e1 = hot(' ---x---------y-----------------z-------------|'); const unsub = ' ----------------------------------! '; const e1subs = ' ^---------------------------------! '; const expected = '-----a--b--c---------------------g- '; const observableLookup: Record> = { x: x, y: y, z: z }; const result = e1.pipe(exhaustMap((value) => observableLookup[value])); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--| '); const xsubs = ' ---^----------! '; const y = cold(' --d--e--f--| '); const ysubs: string[] = []; const z = cold(' --g--h--i--| '); const zsubs = ' -------------------------------^--! '; const e1 = hot(' ---x---------y-----------------z-------------|'); const e1subs = ' ^---------------------------------! '; const expected = '-----a--b--c---------------------g- '; const unsub = ' ----------------------------------! '; const observableLookup: Record> = { x: x, y: y, z: z }; const result = e1.pipe( mergeMap((x) => of(x)), exhaustMap((value) => observableLookup[value]), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains with interop inners when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--| '); const xsubs = ' ---^----------! '; const y = cold(' --d--e--f--| '); const ysubs: string[] = []; const z = cold(' --g--h--i--| '); const zsubs = ' -------------------------------^--! '; const e1 = hot(' ---x---------y-----------------z-------------|'); const e1subs = ' ^---------------------------------! '; const expected = '-----a--b--c---------------------g- '; const unsub = ' ----------------------------------! '; const observableLookup: Record> = { x: x, y: y, z: z }; // This test is the same as the previous test, but the observable is // manipulated to make it look like an interop observable - an observable // from a foreign library. Interop subscribers are treated differently: // they are wrapped in a safe subscriber. This test ensures that // unsubscriptions are chained all the way to the interop subscriber. const result = e1.pipe( mergeMap((x) => of(x)), exhaustMap((value) => asInteropObservable(observableLookup[value])), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = concat( defer(() => { sideEffects.push(1); return of(1); }), defer(() => { sideEffects.push(2); return of(2); }), defer(() => { sideEffects.push(3); return of(3); }) ); of(null) .pipe( exhaustMap(() => synchronousObservable), takeWhile((x) => x != 2) // unsubscribe at the second side-effect ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([1, 2]); }); it('should switch inner cold observables, inner never completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--| '); const xsubs = ' ---^----------! '; const y = cold(' --d--e--f--| '); const ysubs: string[] = []; const z = cold(' --g--h--i-----'); const zsubs = ' -------------------------------^-------------'; const e1 = hot(' ---x---------y-----------------z---------| '); const e1subs = ' ^----------------------------------------! '; const expected = '-----a--b--c---------------------g--h--i-----'; const observableLookup: Record> = { x: x, y: y, z: z }; const result = e1.pipe(exhaustMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a synchronous switch and stay on the first inner observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------^----------------! '; const y = cold(' ---f---g---h---i--| '); const ysubs: string[] = []; const e1 = hot(' ---------(xy)----------------|'); const e1subs = ' ^----------------------------!'; const expected = '-----------a--b--c--d--e-----|'; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(exhaustMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner cold observables, one inner throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--# '); const xsubs = ' ---------^-------------! '; const y = cold(' ---f---g---h---i--'); const ysubs: string[] = []; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^----------------------! '; const expected = '-----------a--b--c--d--# '; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(exhaustMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner hot observables', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const x = hot(' -----a--b--c--d--e--| '); const xsubs = ' ---------^----------! '; const y = hot(' --p-o-o-p-------f---g---h---i--| '); const ysubs: string[] = []; const z = hot(' ---z-o-o-m-------------j---k---l---m--|'); const zsubs = ' --------------------^-----------------!'; const e1 = hot(' ---------x----y-----z--------| '); const e1subs = ' ^----------------------------! '; const expected = '-----------c--d--e-----j---k---l---m--|'; const observableLookup: Record> = { x: x, y: y, z: z }; const result = e1.pipe(exhaustMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner empty and empty', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const y = cold(' | '); const xsubs = ' ---------(^!) '; const ysubs = ' -------------------(^!) '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^----------------------------!'; const expected = '-----------------------------|'; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(exhaustMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner empty and never', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const xsubs = ' ---------(^!) '; const y = cold(' - '); const ysubs = ' -------------------^ '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^----------------------------!'; const expected = '------------------------------'; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(exhaustMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should never switch inner never', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' - '); const xsubs = ' ---------^ '; const y = cold(' # '); const ysubs: string[] = []; const e1 = hot(' ---------x---------y----------|'); const e1subs = ' ^-----------------------------!'; const expected = '-------------------------------'; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(exhaustMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner empty and throw', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const xsubs = ' ---------(^!) '; const y = cold(' # '); const ysubs = ' -------------------(^!) '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^------------------! '; const expected = '-------------------# '; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(exhaustMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle outer error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--|'); const xsubs = ' ---------^---------! '; const e1 = hot(' ---------x---------# '); const e1subs = ' ^------------------! '; const expected = '-----------a--b--c-# '; const observableLookup: Record> = { x: x }; const result = e1.pipe(exhaustMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( exhaustMap((value) => of(value)), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); it('should ignore subsequent synchronous reentrances during subscribing the inner sub', () => { const e = new BehaviorSubject(1); const results: Array = []; e.pipe( take(3), exhaustMap( (value) => new Observable((subscriber) => { e.next(value + 1); subscriber.next(value); }) ) ).subscribe((value) => results.push(value)); expect(results).to.deep.equal([1]); }); }); rxjs-7.5.7/spec/operators/expand-spec.ts000066400000000000000000000364031431412030200202430ustar00rootroot00000000000000import { expect } from 'chai'; import { expand, mergeMap, map, take, toArray } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { EMPTY, Observable, of, Observer, asapScheduler, asyncScheduler, InteropObservable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {expand} */ describe('expand', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should recursively map-and-flatten each item to an Observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --x----| ', { x: 1 }); const e1subs = ' ^------! '; const e2 = cold(' --c| ', { c: 2 }); // --c| // --c| const expected = '--a-b-c-d|'; const values = { a: 1, b: 2, c: 4, d: 8 }; const result = e1.pipe(expand((x) => (x === 8 ? EMPTY : e2.pipe(map((c) => c * x))))); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with scheduler', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --x----| ', { x: 1 }); const e1subs = ' ^------! '; const e2 = cold(' --c| ', { c: 2 }); // --c| // --c| const expected = '--a-b-c-d|'; const values = { a: 1, b: 2, c: 4, d: 8 }; const result = e1.pipe(expand((x) => (x === 8 ? EMPTY : e2.pipe(map((c) => c * x))), Infinity, testScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map and recursively flatten', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 1 + 1, // a + a, c: 2 + 2, // b + b, d: 4 + 4, // c + c, e: 8 + 8, // d + d }; const e1 = hot(' (a|) ', values); const e1subs = ' (^!) '; const e2shape = ' ---(z|) '; const expected = 'a--b--c--d--(e|)'; /* expectation explanation: (conjunction junction?) ... since `cold('---(z|)')` emits `x + x` and completes on frame 30 but the next "expanded" return value is synchronously subscribed to in that same frame, it stacks like so: a ---(b|) ---(c|) ---(d|) ---(e|) (...which flattens into:) a--b--c--d--(e|) */ const result = e1.pipe( expand((x, index): Observable => { if (x === 16) { return EMPTY; } else { return cold(e2shape, { z: x + x }); } }) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map and recursively flatten, and handle event raised error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 1 + 1, // a + a, c: 2 + 2, // b + b, d: 4 + 4, // c + c, e: 8 + 8, // d + d }; const e1 = hot(' (a|) ', values); const e1subs = ' (^!) '; const e2shape = ' ---(z|) '; const expected = 'a--b--c--(d#)'; const result = e1.pipe( expand((x) => { if (x === 8) { return cold('#'); } return cold(e2shape, { z: x + x }); }) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map and recursively flatten, and propagate error thrown from projection', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 1 + 1, // a + a, c: 2 + 2, // b + b, d: 4 + 4, // c + c, e: 8 + 8, // d + d }; const e1 = hot(' (a|) ', values); const e1subs = ' (^!) '; const e2shape = ' ---(z|) '; const expected = 'a--b--c--(d#)'; const result = e1.pipe( expand((x) => { if (x === 8) { throw 'error'; } return cold(e2shape, { z: x + x }); }) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 1 + 1, // a + a, c: 2 + 2, // b + b, d: 4 + 4, // c + c, e: 8 + 8, // d + d }; const e1 = hot(' (a|) ', values); const unsub = ' -------!'; const e1subs = ' (^!) '; const e2shape = ' ---(z|) '; const expected = 'a--b--c-'; const result = e1.pipe( expand((x): Observable => { if (x === 16) { return EMPTY; } return cold(e2shape, { z: x + x }); }) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 1 + 1, // a + a, c: 2 + 2, // b + b, d: 4 + 4, // c + c, e: 8 + 8, // d + d }; const e1 = hot(' (a|) ', values); const e1subs = ' (^!) '; const e2shape = ' ---(z|) '; const expected = 'a--b--c-'; const unsub = ' -------!'; const result = e1.pipe( mergeMap((x) => of(x)), expand((x): Observable => { if (x === 16) { return EMPTY; } return cold(e2shape, { z: x + x }); }), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow concurrent expansions', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 1 + 1, // a + a, c: 2 + 2, // b + b, d: 4 + 4, // c + c, e: 8 + 8, // d + d }; const e1 = hot(' a-a| ', values); const e1subs = ' ^--! '; const e2shape = ' ---(z|) '; const expected = 'a-ab-bc-cd-de-(e|)'; const result = e1.pipe( expand((x): Observable => { if (x === 16) { return EMPTY; } return cold(e2shape, { z: x + x }); }) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow configuring the concurrency limit parameter to 1', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 1 + 1, // a + a, c: 2 + 2, // b + b, d: 4 + 4, // c + c, e: 8 + 8, // d + d u: 10, v: 20, // u + u x: 40, // v + v y: 80, // x + x z: 160, // y + y }; const e1 = hot(' a-u| ', values); const e1subs = ' ^--! '; const e2shape = ' ---(z|) '; // ---(z|) // ---(z|) // ---(z|) // ---(z|) // ---(z|) // ---(z|) // ---(z|) // Notice how for each column, there is at most 1 `-` character. const expected = 'a--u--b--v--c--x--d--y--(ez|)'; const concurrencyLimit = 1; const result = e1.pipe( expand((x): Observable => { if (x === 16 || x === 160) { return EMPTY; } return cold(e2shape, { z: x + x }); }, concurrencyLimit) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow configuring the concurrency limit parameter to 2', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 1 + 1, // a + a, c: 2 + 2, // b + b, u: 10, v: 20, // u + u x: 40, // v + v }; const e1 = hot(' a---au| ', values); const e1subs = ' ^-----! '; const e2shape = ' ------(z|) '; // ------(z|) // ------(z|) // ------(z|) // ------(z|) // ------(z|) // ------(z|) // Notice how for each column, there is at most 2 `-` characters. const expected = 'a---a-u---b-b---v-(cc)(x|)'; const concurrencyLimit = 2; const result = e1.pipe( expand((x): Observable => { if (x === 4 || x === 40) { return EMPTY; } return cold(e2shape, { z: x + x }); }, concurrencyLimit) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should ignore concurrency limit if it is not passed', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 1 + 1, // a + a, c: 2 + 2, // b + b, d: 4 + 4, // c + c, e: 8 + 8, // d + d u: 10, v: 20, // u + u x: 40, // v + v y: 80, // x + x z: 160, // y + y }; const e1 = hot(' a-u| ', values); const e1subs = ' ^--! '; const e2shape = ' ---(z|) '; const expected = 'a-ub-vc-xd-ye-(z|)'; const concurrencyLimit = 100; const result = e1.pipe( expand((x): Observable => { if (x === 16 || x === 160) { return EMPTY; } return cold(e2shape, { z: x + x }); }, concurrencyLimit) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map and recursively flatten with scalars', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 1 + 1, // a + a, c: 2 + 2, // b + b, d: 4 + 4, // c + c, e: 8 + 8, // d + d }; const e1 = hot(' (a|) ', values); const e1subs = ' (^!) '; const expected = '(abcde|)'; const result = e1.pipe( expand((x) => { if (x === 16) { return EMPTY; } return of(x + x); // scalar }) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should recursively flatten promises', (done) => { const expected = [1, 2, 4, 8, 16]; of(1) .pipe( expand((x): any => { if (x === 16) { return EMPTY; } return Promise.resolve(x + x); }) ) .subscribe({ next: (x) => { expect(x).to.equal(expected.shift()); }, complete: () => { expect(expected.length).to.equal(0); done(); }, }); }); it('should recursively flatten Arrays', (done) => { const expected = [1, 2, 4, 8, 16]; of(1) .pipe( expand((x): any => { if (x === 16) { return EMPTY; } return [x + x]; }) ) .subscribe({ next: (x) => { expect(x).to.equal(expected.shift()); }, complete: () => { expect(expected.length).to.equal(0); done(); }, }); }); it('should recursively flatten lowercase-o observables', (done) => { const expected = [1, 2, 4, 8, 16]; const project = (x: number): InteropObservable => { if (x === 16) { return EMPTY as any; } return { subscribe(observer: Observer) { observer.next(x + x); observer.complete(); }, [Symbol.observable]() { return this; }, } as any; }; of(1) .pipe(expand(project)) .subscribe({ next: (x) => { expect(x).to.equal(expected.shift()); }, complete: () => { expect(expected.length).to.equal(0); done(); }, }); }); it('should work when passing undefined for the optional arguments', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 1 + 1, // a + a, c: 2 + 2, // b + b, d: 4 + 4, // c + c, e: 8 + 8, // d + d }; const e1 = hot(' (a|) ', values); const e1subs = ' (^!) '; const e2shape = ' ---(z|) '; const expected = 'a--b--c--d--(e|)'; const project = (x: any, index: number): Observable => { if (x === 16) { return EMPTY; } return cold(e2shape, { z: x + x }); }; const result = e1.pipe(expand(project, undefined, undefined)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with the AsapScheduler', (done) => { const expected = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; of(0) .pipe( expand((x) => of(x + 1), Infinity, asapScheduler), take(10), toArray() ) .subscribe({ next: (actual) => expect(actual).to.deep.equal(expected), error: done, complete: done }); }); it('should work with the AsyncScheduler', (done) => { const expected = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; of(0) .pipe( expand((x) => of(x + 1), Infinity, asyncScheduler), take(10), toArray() ) .subscribe({ next: (actual) => expect(actual).to.deep.equal(expected), error: done, complete: done }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( expand(() => EMPTY), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/filter-spec.ts000066400000000000000000000355101431412030200202470ustar00rootroot00000000000000import { expect } from 'chai'; import { filter, tap, map, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable, from } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {filter} */ describe('filter', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); function oddFilter(x: number | string) { return +x % 2 === 1; } function isPrime(i: number | string) { if (+i <= 1) { return false; } const max = Math.floor(Math.sqrt(+i)); for (let j = 2; j <= max; ++j) { if (+i % j === 0) { return false; } } return true; } it('should filter out even values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --0--1--2--3--4--|'); const e1subs = ' ^----------------!'; const expected = '-----1-----3-----|'; expectObservable(e1.pipe(filter(oddFilter))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should filter in only prime numbers', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^------------------!'; const expected = ' --3---5----7-------|'; expectObservable(e1.pipe(filter(isPrime))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should filter with an always-true predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^------------------!'; const expected = ' --3-4-5-6--7-8--9--|'; const predicate = () => { return true; }; expectObservable(e1.pipe(filter(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should filter with an always-false predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^------------------!'; const expected = ' -------------------|'; const predicate = () => { return false; }; expectObservable(e1.pipe(filter(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should filter in only prime numbers, source unsubscribes early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^-----------! '; const expected = ' --3---5----7- '; const unsub = ' ------------! '; expectObservable(e1.pipe(filter(isPrime)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should filter in only prime numbers, source throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--#'); const e1subs = ' ^------------------!'; const expected = ' --3---5----7-------#'; expectObservable(e1.pipe(filter(isPrime))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should filter in only prime numbers, but predicate throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^-------! '; const expected = ' --3---5-# '; let invoked = 0; function predicate(x: any) { invoked++; if (invoked === 4) { throw 'error'; } return isPrime(x); } expectObservable(e1.pipe(filter(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should filter in only prime numbers, predicate with index', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^------------------!'; const expected = ' --3--------7-------|'; function predicate(x: any, i: number) { return isPrime(+x + i * 10); } expectObservable(e1.pipe(filter(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should invoke predicate once for each checked value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^------------------!'; const expected = ' --3---5----7-------|'; let invoked = 0; const predicate = (x: any) => { invoked++; return isPrime(x); }; const result = e1.pipe( filter(predicate), tap({ complete: () => { expect(invoked).to.equal(7); }, }) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should filter in only prime numbers, predicate with index, source unsubscribes early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^-----------! '; const expected = ' --3--------7- '; const unsub = ' ------------! '; function predicate(x: any, i: number) { return isPrime(+x + i * 10); } expectObservable(e1.pipe(filter(predicate)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should filter in only prime numbers, predicate with index, source throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--#'); const e1subs = ' ^------------------!'; const expected = ' --3--------7-------#'; function predicate(x: any, i: number) { return isPrime(+x + i * 10); } expectObservable(e1.pipe(filter(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should filter in only prime numbers, predicate with index and throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^-------! '; const expected = ' --3-----# '; let invoked = 0; function predicate(x: any, i: number) { invoked++; if (invoked === 4) { throw 'error'; } return isPrime(+x + i * 10); } expectObservable(e1.pipe(filter(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should compose with another filter to allow multiples of six', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^------------------!'; const expected = ' --------6----------|'; const result = e1.pipe( filter((x: string) => +x % 2 === 0), filter((x: string) => +x % 3 === 0) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be able to accept and use a thisArg', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^------------------!'; const expected = ' --------6----------|'; class Filterer { filter1 = (x: string) => +x % 2 === 0; filter2 = (x: string) => +x % 3 === 0; } const filterer = new Filterer(); const result = e1.pipe( filter(function (this: any, x) { return this.filter1(x); }, filterer), filter(function (this: any, x) { return this.filter2(x); }, filterer), filter(function (this: any, x) { return this.filter1(x); }, filterer) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be able to use filter and map composed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^------------------!'; const expected = ' ----a---b----c-----|'; const values = { a: 16, b: 36, c: 64 }; const result = e1.pipe( filter((x: string) => +x % 2 === 0), map((x: string) => +x * +x) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate errors from the source', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --0--1--2--3--4--#'); const e1subs = ' ^----------------!'; const expected = '-----1-----3-----#'; expectObservable(e1.pipe(filter(oddFilter))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; expectObservable(e1.pipe(filter(oddFilter))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(filter(oddFilter))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(filter(oddFilter))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should send errors down the error path', (done) => { of(42) .pipe( filter((x: number, index: number): boolean => { throw 'bad'; }) ) .subscribe({ next: (x: number) => { done(new Error('should not be called')); }, error: (err: any) => { expect(err).to.equal('bad'); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1--2--^-3-4-5-6--7-8--9--|'); const e1subs = ' ^-----------! '; const expected = ' --3---5----7- '; const unsub = ' ------------! '; const result = e1.pipe( mergeMap((x: any) => of(x)), filter(isPrime), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support type guards without breaking previous behavior', () => { // tslint:disable no-unused-variable // type guards with interfaces and classes { interface Bar { bar?: string; } interface Baz { baz?: number; } class Foo implements Bar, Baz { constructor(public bar: string = 'name', public baz: number = 42) {} } const isBar = (x: any): x is Bar => x && (x).bar !== undefined; const isBaz = (x: any): x is Baz => x && (x).baz !== undefined; const foo: Foo = new Foo(); of(foo) .pipe(filter((foo) => foo.baz === 42)) .subscribe((x) => x.baz); // x is still Foo of(foo) .pipe(filter(isBar)) .subscribe((x) => x.bar); // x is Bar! const foobar: Bar = new Foo(); // type is interface, not the class of(foobar) .pipe(filter((foobar) => foobar.bar === 'name')) .subscribe((x) => x.bar); // <-- x is still Bar of(foobar) .pipe(filter(isBar)) .subscribe((x) => x.bar); // <--- x is Bar! const barish = { bar: 'quack', baz: 42 }; // type can quack like a Bar of(barish) .pipe(filter((x) => x.bar === 'quack')) .subscribe((x) => x.bar); // x is still { bar: string; baz: number; } of(barish) .pipe(filter(isBar)) .subscribe((bar) => bar.bar); // x is Bar! } // type guards with primitive types { const xs: Observable = from([1, 'aaa', 3, 'bb']); // This type guard will narrow a `string | number` to a string in the examples below const isString = (x: string | number): x is string => typeof x === 'string'; xs.pipe(filter(isString)).subscribe((s) => s.length); // s is string // In contrast, this type of regular boolean predicate still maintains the original type xs.pipe(filter((x) => typeof x === 'number')).subscribe((x) => x); // x is still string | number xs.pipe(filter((x, i) => typeof x === 'number' && x > i)).subscribe((x) => x); // x is still string | number } // tslint:disable enable }); it('should support Boolean as a predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { t: 1, f: 0 }; const e1 = hot('-t--f--^-t-f-t-f--t-f--f--|', values); const e1subs = ' ^------------------!'; const expected = ' --t---t----t-------|'; expectObservable(e1.pipe(filter(Boolean))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( filter(() => true), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/finalize-spec.ts000066400000000000000000000240371431412030200205650ustar00rootroot00000000000000import { expect } from 'chai'; import { finalize, map, share, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; import { of, timer, interval, NEVER, Observable, noop } from 'rxjs'; import { asInteropObservable } from '../helpers/interop-helper'; /** @test {finalize} */ describe('finalize', () => { it('should call finalize after complete', (done) => { let completed = false; of(1, 2, 3) .pipe( finalize(() => { expect(completed).to.be.true; done(); }) ) .subscribe({ complete: () => { completed = true; }, }); }); it('should call finalize after error', (done) => { let thrown = false; of(1, 2, 3) .pipe( map(function (x) { if (x === 3) { throw x; } return x; }), finalize(() => { expect(thrown).to.be.true; done(); }) ) .subscribe({ error: () => { thrown = true; }, }); }); it('should call finalize upon disposal', (done) => { let disposed = false; const subscription = timer(100) .pipe( finalize(() => { expect(disposed).to.be.true; done(); }) ) .subscribe(); disposed = true; subscription.unsubscribe(); }); it('should call finalize when synchronously subscribing to and unsubscribing from a shared Observable', (done) => { interval(50).pipe(finalize(done), share()).subscribe().unsubscribe(); }); it('should call two finalize instances in succession on a shared Observable', (done) => { let invoked = 0; function checkFinally() { invoked += 1; if (invoked === 2) { done(); } } of(1, 2, 3).pipe(finalize(checkFinally), finalize(checkFinally), share()).subscribe(); }); it('should handle empty', () => { const testScheduler = new TestScheduler(observableMatcher); testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { let executed = false; const e1 = hot(' | '); const e1subs = ' (^!)'; const expected = '| '; const result = e1.pipe(finalize(() => (executed = true))); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); // manually flush so `finalize()` has chance to execute before the test is over. testScheduler.flush(); expect(executed).to.be.true; }); }); it('should handle never', () => { const testScheduler = new TestScheduler(observableMatcher); testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { let executed = false; const e1 = hot(' -'); const e1subs = ' ^'; const expected = '-'; const result = e1.pipe(finalize(() => (executed = true))); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); // manually flush so `finalize()` has chance to execute before the test is over. testScheduler.flush(); expect(executed).to.be.false; }); }); it('should handle throw', () => { const testScheduler = new TestScheduler(observableMatcher); testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { let executed = false; const e1 = hot(' # '); const e1subs = ' (^!)'; const expected = '# '; const result = e1.pipe(finalize(() => (executed = true))); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); // manually flush so `finalize()` has chance to execute before the test is over. testScheduler.flush(); expect(executed).to.be.true; }); }); it('should handle basic hot observable', () => { const testScheduler = new TestScheduler(observableMatcher); testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { let executed = false; const e1 = hot(' --a--b--c--|'); const e1subs = ' ^----------!'; const expected = '--a--b--c--|'; const result = e1.pipe(finalize(() => (executed = true))); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); // manually flush so `finalize()` has chance to execute before the test is over. testScheduler.flush(); expect(executed).to.be.true; }); }); it('should handle basic cold observable', () => { const testScheduler = new TestScheduler(observableMatcher); testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { let executed = false; const e1 = cold(' --a--b--c--|'); const e1subs = ' ^----------!'; const expected = '--a--b--c--|'; const result = e1.pipe(finalize(() => (executed = true))); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); // manually flush so `finalize()` has chance to execute before the test is over. testScheduler.flush(); expect(executed).to.be.true; }); }); it('should handle basic error', () => { const testScheduler = new TestScheduler(observableMatcher); testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { let executed = false; const e1 = hot(' --a--b--c--#'); const e1subs = ' ^----------!'; const expected = '--a--b--c--#'; const result = e1.pipe(finalize(() => (executed = true))); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); // manually flush so `finalize()` has chance to execute before the test is over. testScheduler.flush(); expect(executed).to.be.true; }); }); it('should handle unsubscription', () => { const testScheduler = new TestScheduler(observableMatcher); testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { let executed = false; const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-----! '; const expected = '--a--b-'; const unsub = ' ------!'; const result = e1.pipe(finalize(() => (executed = true))); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); // manually flush so `finalize()` has chance to execute before the test is over. testScheduler.flush(); expect(executed).to.be.true; }); }); it('should handle interop source observables', () => { // https://github.com/ReactiveX/rxjs/issues/5237 let finalized = false; const subscription = asInteropObservable(NEVER) .pipe(finalize(() => (finalized = true))) .subscribe(); subscription.unsubscribe(); expect(finalized).to.be.true; }); it('should finalize sources before sinks', () => { const finalized: string[] = []; of(42) .pipe( finalize(() => finalized.push('source')), finalize(() => finalized.push('sink')) ) .subscribe(); expect(finalized).to.deep.equal(['source', 'sink']); }); it('should finalize after the finalization', () => { const order: string[] = []; const source = new Observable(() => { return () => order.push('finalizer'); }); const subscription = source.pipe(finalize(() => order.push('finalize'))).subscribe(); subscription.unsubscribe(); expect(order).to.deep.equal(['finalizer', 'finalize']); }); it('should finalize after the finalizer with synchronous completion', () => { const order: string[] = []; const source = new Observable((subscriber) => { subscriber.complete(); return () => order.push('finalizer'); }); source.pipe(finalize(() => order.push('finalize'))).subscribe(); expect(order).to.deep.equal(['finalizer', 'finalize']); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( finalize(() => { /* noop */ }), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); it('should execute finalize even with a sync thrown error', () => { let called = false; const badObservable = new Observable(() => { throw new Error('bad'); }).pipe( finalize(() => { called = true; }) ); badObservable.subscribe({ error: noop, }); expect(called).to.be.true; }); it('should execute finalize in order even with a sync error', () => { const results: any[] = []; const badObservable = new Observable((subscriber) => { subscriber.error(new Error('bad')); }).pipe( finalize(() => { results.push(1); }), finalize(() => { results.push(2); }) ); badObservable.subscribe({ error: noop, }); expect(results).to.deep.equal([1, 2]); }); it('should execute finalize in order even with a sync thrown error', () => { const results: any[] = []; const badObservable = new Observable(() => { throw new Error('bad'); }).pipe( finalize(() => { results.push(1); }), finalize(() => { results.push(2); }) ); badObservable.subscribe({ error: noop, }); expect(results).to.deep.equal([1, 2]); }); it('should finalize in the proper order', () => { const results: any[] = []; of(1) .pipe( finalize(() => results.push(1)), finalize(() => results.push(2)), finalize(() => results.push(3)), finalize(() => results.push(4)) ) .subscribe(); expect(results).to.deep.equal([1, 2, 3, 4]); }); }); rxjs-7.5.7/spec/operators/find-spec.ts000066400000000000000000000221761431412030200177060ustar00rootroot00000000000000import { expect } from 'chai'; import { find, mergeMap, delay } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; import { of, Observable, from } from 'rxjs'; /** @test {find} */ describe('find', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); function truePredicate(x: any) { return true; } it('should return matching element from source emits single element', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 3, b: 9, c: 15, d: 20 }; const e1 = hot(' ---a--b--c--d---|', values); const e1subs = ' ^--------! '; const expected = '---------(c|) '; const predicate = function (x: number) { return x % 5 === 0; }; expectObservable(e1.pipe(find(predicate))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not emit if source does not emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(find(truePredicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return undefined if source is empty to match predicate', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '(x|)'; const result = e1.pipe(find(truePredicate)); expectObservable(result).toBe(expected, { x: undefined }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return matching element from source emits single element', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--|'); const e1subs = ' ^-! '; const expected = '--(a|)'; const predicate = function (value: string) { return value === 'a'; }; expectObservable(e1.pipe(find(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return matching element from source emits multiple elements', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b---c-|'); const e1subs = ' ^----! '; const expected = '-----(b|) '; const predicate = function (value: string) { return value === 'b'; }; expectObservable(e1.pipe(find(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with a custom thisArg', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b---c-|'); const e1subs = ' ^----! '; const expected = '-----(b|) '; const finder = { target: 'b', }; const predicate = function (this: typeof finder, value: string) { return value === this.target; }; expectObservable(e1.pipe(find(predicate, finder))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return undefined if element does not match with predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--| '); const e1subs = ' ^----------! '; const expected = '-----------(x|)'; const predicate = function (value: string) { return value === 'z'; }; expectObservable(e1.pipe(find(predicate))).toBe(expected, { x: undefined }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-----! '; const expected = '------- '; const unsub = ' ------! '; const result = e1.pipe(find((value: string) => value === 'z')); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-----! '; const expected = '------- '; const unsub = ' ------! '; const result = e1.pipe( mergeMap((x) => of(x)), find((value) => value === 'z'), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should unsubscribe when the predicate is matched', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b---c-|'); const e1subs = ' ^----! '; const t = time(' --| '); // --| const expected = '-------(b|) '; const result = e1.pipe( find((value: string) => value === 'b'), delay(t) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise if source raise error while element does not match with predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--#'); const e1subs = ' ^-------!'; const expected = '--------#'; const predicate = function (value: string) { return value === 'z'; }; expectObservable(e1.pipe(find(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if predicate throws error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-! '; const expected = '--# '; const predicate = function (value: string) { throw 'error'; }; expectObservable(e1.pipe(find(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support type guards without breaking previous behavior', () => { // tslint:disable no-unused-variable // type guards with interfaces and classes { interface Bar { bar?: string; } interface Baz { baz?: number; } class Foo implements Bar, Baz { constructor(public bar: string = 'name', public baz: number = 42) {} } const isBar = (x: any): x is Bar => x && (x).bar !== undefined; const isBaz = (x: any): x is Baz => x && (x).baz !== undefined; const foo: Foo = new Foo(); of(foo) .pipe(find((foo) => foo.baz === 42)) .subscribe((x) => x!.baz); // x is still Foo of(foo) .pipe(find(isBar)) .subscribe((x) => x!.bar); // x is Bar! const foobar: Bar = new Foo(); // type is interface, not the class of(foobar) .pipe(find((foobar) => foobar.bar === 'name')) .subscribe((x) => x!.bar); // <-- x is still Bar of(foobar) .pipe(find(isBar)) .subscribe((x) => x!.bar); // <--- x is Bar! const barish = { bar: 'quack', baz: 42 }; // type can quack like a Bar of(barish) .pipe(find((x) => x.bar === 'quack')) .subscribe((x) => x!.bar); // x is still { bar: string; baz: number; } of(barish) .pipe(find(isBar)) .subscribe((bar) => bar!.bar); // x is Bar! } // type guards with primitive types { const xs: Observable = from([1, 'aaa', 3, 'bb']); // This type guard will narrow a `string | number` to a string in the examples below const isString = (x: string | number): x is string => typeof x === 'string'; xs.pipe(find(isString)).subscribe((s) => s!.length); // s is string // In contrast, this type of regular boolean predicate still maintains the original type xs.pipe(find((x) => typeof x === 'number')).subscribe((x) => x); // x is still string | number xs.pipe(find((x, i) => typeof x === 'number' && x > i)).subscribe((x) => x); // x is still string | number } // tslint:disable enable }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits, it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(find((value) => value === 2)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/findIndex-spec.ts000066400000000000000000000163551431412030200207000ustar00rootroot00000000000000import { expect } from 'chai'; import { findIndex, mergeMap, delay } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; import { of, Observable } from 'rxjs'; /** @test {findIndex} */ describe('findIndex', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); function truePredicate(x: any) { return true; } it('should return matching element from source emits single element', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 3, b: 9, c: 15, d: 20 }; const e1 = hot(' ---a--b--c--d---|', values); const e1subs = ' ^--------! '; const expected = '---------(x|) '; const predicate = function (x: number) { return x % 5 === 0; }; expectObservable(e1.pipe(findIndex(predicate))).toBe(expected, { x: 2 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not emit if source does not emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(findIndex(truePredicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return negative index if source is empty to match predicate', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '(x|)'; const result = e1.pipe(findIndex(truePredicate)); expectObservable(result).toBe(expected, { x: -1 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return index of element from source emits single element', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--|', { a: 1 }); const e1subs = ' ^-! '; const expected = '--(x|)'; const predicate = function (value: number) { return value === 1; }; expectObservable(e1.pipe(findIndex(predicate))).toBe(expected, { x: 0 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return index of matching element from source emits multiple elements', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b---c-|', { b: 7 }); const e1subs = ' ^----! '; const expected = '-----(x|) '; const predicate = function (value: number) { return value === 7; }; expectObservable(e1.pipe(findIndex(predicate))).toBe(expected, { x: 1 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with a custom thisArg', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const sourceValues = { b: 7 }; const e1 = hot(' --a--b---c-|', sourceValues); const e1subs = ' ^----! '; const expected = '-----(x|) '; const predicate = function (this: typeof sourceValues, value: number) { return value === this.b; }; const result = e1.pipe(findIndex(predicate, sourceValues)); expectObservable(result).toBe(expected, { x: 1 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return negative index if element does not match with predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--| '); const e1subs = ' ^----------! '; const expected = '-----------(x|)'; const predicate = function (value: string) { return value === 'z'; }; expectObservable(e1.pipe(findIndex(predicate))).toBe(expected, { x: -1 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-----! '; const expected = '------- '; const unsub = ' ------! '; const result = e1.pipe(findIndex((value: string) => value === 'z')); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-----! '; const expected = '------- '; const unsub = ' ------! '; const result = e1.pipe( mergeMap((x: string) => of(x)), findIndex((value: string) => value === 'z'), mergeMap((x: number) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should unsubscribe when the predicate is matched', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b---c-|'); const e1subs = ' ^----! '; const t = time(' --| '); // --| const expected = '-------(x|) '; const result = e1.pipe( findIndex((value: string) => value === 'b'), delay(t) ); expectObservable(result).toBe(expected, { x: 1 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise if source raise error while element does not match with predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--#'); const e1subs = ' ^-------!'; const expected = '--------#'; const predicate = function (value: string) { return value === 'z'; }; expectObservable(e1.pipe(findIndex(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if predicate throws error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-! '; const expected = '--# '; const predicate = function (value: string) { throw 'error'; }; expectObservable(e1.pipe(findIndex(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits, it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(findIndex((value) => value === 2)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/first-spec.ts000066400000000000000000000270511431412030200201120ustar00rootroot00000000000000import { expect } from 'chai'; import { observableMatcher } from '../helpers/observableMatcher'; import { first, mergeMap, delay } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, from, Observable, Subject, EmptyError } from 'rxjs'; /** @test {first} */ describe('first', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should take the first value of an observable with many values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----a--b--c---d---|'); const e1subs = ' ^----! '; const expected = '-----(a|) '; expectObservable(e1.pipe(first())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take the first value of an observable with one value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---(a|)'); const e1subs = ' ^--! '; const expected = '---(a|)'; expectObservable(e1.pipe(first())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow undefined as a default value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----a--a---a-| '); const e1subs = ' ^-------------! '; const expected = '--------------(U|)'; expectObservable(e1.pipe(first((value) => value === 'b', undefined))).toBe(expected, { U: undefined }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should error on empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^----|'); const e1subs = ' ^----!'; const expected = ' -----#'; expectObservable(e1.pipe(first())).toBe(expected, null, new EmptyError()); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return the default value if source observable was empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-----^----| '); const e1subs = ' ^----! '; const expected = ' -----(a|)'; expectObservable(e1.pipe(first(null, 'a'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should only emit one value in recursive cases', () => { const subject = new Subject(); const results: number[] = []; subject.pipe(first()).subscribe((x) => { results.push(x); subject.next(x + 1); }); subject.next(0); expect(results).to.deep.equal([0]); }); it('should propagate error from the source observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^---#'); const e1subs = ' ^---!'; const expected = ' ----#'; expectObservable(e1.pipe(first())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should go on forever on never', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--^-------'); const e1subs = ' ^-------'; const expected = '--------'; expectObservable(e1.pipe(first())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^-----b----c---d--|'); const e1subs = ' ^--! '; const expected = ' ---- '; const unsub = ' ---! '; expectObservable(e1.pipe(first()), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^-----b----c---d--|'); const e1subs = ' ^--! '; const expected = ' ---- '; const unsub = ' ---! '; const result = e1.pipe( mergeMap((x) => of(x)), first(), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should unsubscribe when the first value is received', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b---c-|'); const e1subs = ' ^-! '; const t = time(' --| '); const expected = '----(a|) '; const result = e1.pipe(first(), delay(t)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return first value that matches a predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^--b--c--a--c--|'); const e1subs = ' ^-----! '; const expected = ' ------(c|) '; expectObservable(e1.pipe(first((value) => value === 'c'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return first value that matches a predicate for odd numbers', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, c: 3, d: 4, e: 5 }; const e1 = hot('--a-^--b--c--d--e--|', values); const e1subs = ' ^-----! '; const expected = ' ------(c|) '; expectObservable(e1.pipe(first((x) => x % 2 === 1))).toBe(expected, { c: 3 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should error when no value matches the predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^--b--c--a--c--|'); const e1subs = ' ^--------------!'; const expected = ' ---------------#'; expectObservable(e1.pipe(first((x) => x === 's'))).toBe(expected, null, new EmptyError()); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return the default value when no value matches the predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^--b--c--a--c--| '); const e1subs = ' ^--------------! '; const expected = ' ---------------(d|)'; expectObservable(e1.pipe(first((x) => x === 's', 'd'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate error when no value matches the predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^--b--c--a--#'); const e1subs = ' ^-----------!'; const expected = ' ------------#'; expectObservable(e1.pipe(first((x) => x === 's'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return first value that matches the index in the predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^--b--c--a--c--|'); const e1subs = ' ^--------! '; const expected = ' ---------(a|) '; expectObservable(e1.pipe(first((_, i) => i === 2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate error from predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2, c: 3, d: 4, e: 5 }; const e1 = hot('--a-^--b--c--d--e--|', values); const e1subs = ' ^--------! '; const expected = ' ---------# '; const predicate = function (value: number) { if (value < 4) { return false; } else { throw 'error'; } }; expectObservable(e1.pipe(first(predicate))).toBe(expected, null, 'error'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support type guards without breaking previous behavior', () => { // tslint:disable no-unused-variable // type guards with interfaces and classes { interface Bar { bar?: string; } interface Baz { baz?: number; } class Foo implements Bar, Baz { constructor(public bar: string = 'name', public baz: number = 42) {} } const isBar = (x: any): x is Bar => x && (x as Bar).bar !== undefined; const isBaz = (x: any): x is Baz => x && (x as Baz).baz !== undefined; const foo: Foo = new Foo(); of(foo) .pipe(first()) .subscribe((x) => x.baz); // x is Foo of(foo) .pipe(first((foo) => foo.bar === 'name')) .subscribe((x) => x.baz); // x is still Foo of(foo) .pipe(first(isBar)) .subscribe((x) => x.bar); // x is Bar! const foobar: Bar = new Foo(); // type is the interface, not the class of(foobar) .pipe(first()) .subscribe((x) => x.bar); // x is Bar of(foobar) .pipe(first((foobar) => foobar.bar === 'name')) .subscribe((x) => x.bar); // x is still Bar of(foobar) .pipe(first(isBaz)) .subscribe((x) => x.baz); // x is Baz! const barish = { bar: 'quack', baz: 42 }; // type can quack like a Bar of(barish) .pipe(first()) .subscribe((x) => x.baz); // x is still { bar: string; baz: number; } of(barish) .pipe(first((x) => x.bar === 'quack')) .subscribe((x) => x.bar); // x is still { bar: string; baz: number; } of(barish) .pipe(first(isBar)) .subscribe((x) => x.bar); // x is Bar! } // type guards with primitive types { const xs: Observable = from([1, 'aaa', 3, 'bb']); // This type guard will narrow a `string | number` to a string in the examples below const isString = (x: string | number): x is string => typeof x === 'string'; // missing predicate preserves the type xs.pipe(first()).subscribe((x) => x); // x is still string | number // null predicate preserves the type xs.pipe(first(null)).subscribe((x) => x); // x is still string | number // undefined predicate preserves the type xs.pipe(first(undefined)).subscribe((x) => x); // x is still string | number // After the type guard `first` predicates, the type is narrowed to string xs.pipe(first(isString)).subscribe((s) => s.length); // s is string // boolean predicates preserve the type xs.pipe(first((x) => typeof x === 'string')).subscribe((x) => x); // x is still string | number } // tslint:disable enable }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits, it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(first((value) => value === 2)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/groupBy-spec.ts000066400000000000000000001472351431412030200204210ustar00rootroot00000000000000import { expect } from 'chai'; import { groupBy, delay, tap, map, take, mergeMap, materialize, skip, ignoreElements } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { ReplaySubject, of, Observable, Operator, Observer, Subject } from 'rxjs'; import { createNotification } from 'rxjs/internal/NotificationFactories'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {groupBy} */ describe('groupBy operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should group numbers by odd/even', () => { testScheduler.run(({ cold, hot, expectObservable }) => { const e1 = hot(' --1---2---3---4---5---|'); const expected = '--x---y---------------|'; const x = cold(' 1-------3-------5---|'); const y = cold(' 2-------4-------|'); const expectedValues = { x: x, y: y }; const source = e1.pipe(groupBy((val: string) => parseInt(val) % 2)); expectObservable(source).toBe(expected, expectedValues); }); }); function reverseString(str: string) { return str.split('').reverse().join(''); } function mapObject(obj: Record, fn: Function) { const out: Record = {}; for (const p in obj) { if (obj.hasOwnProperty(p)) { out[p] = fn(obj[p]); } } return out; } it('should group values', (done) => { const expectedGroups = [ { key: 1, values: [1, 3] }, { key: 0, values: [2] }, ]; of(1, 2, 3) .pipe(groupBy((x) => x % 2)) .subscribe({ next: (g: any) => { const expectedGroup = expectedGroups.shift()!; expect(g.key).to.equal(expectedGroup.key); g.subscribe((x: any) => { expect(x).to.deep.equal(expectedGroup.values.shift()); }); }, complete: done, }); }); it('should group values with an element selector', (done) => { const expectedGroups = [ { key: 1, values: ['1!', '3!'] }, { key: 0, values: ['2!'] }, ]; of(1, 2, 3) .pipe( groupBy( (x) => x % 2, (x) => x + '!' ) ) .subscribe({ next: (g: any) => { const expectedGroup = expectedGroups.shift()!; expect(g.key).to.equal(expectedGroup.key); g.subscribe((x: any) => { expect(x).to.deep.equal(expectedGroup.values.shift()); }); }, complete: done, }); }); it('should group values with a duration selector', () => { const expectedGroups = [ { key: 1, values: [1, 3] }, { key: 0, values: [2, 4] }, { key: 1, values: [5] }, { key: 0, values: [6] }, ]; const resultingGroups: { key: number; values: number[] }[] = []; of(1, 2, 3, 4, 5, 6) .pipe( groupBy((x) => x % 2, { duration: (g) => g.pipe(skip(1)), }) ) .subscribe((g: any) => { let group = { key: g.key, values: [] as number[] }; g.subscribe((x: any) => { group.values.push(x); }); resultingGroups.push(group); }); expect(resultingGroups).to.deep.equal(expectedGroups); }); it('should group values with a subject selector', (done) => { const expectedGroups = [ { key: 1, values: [3] }, { key: 0, values: [2] }, ]; of(1, 2, 3) .pipe( groupBy((x) => x % 2, { connector: () => new ReplaySubject(1), }), // Ensure each inner group reaches the destination after the first event // has been next'd to the group delay(5) ) .subscribe({ next: (g: any) => { const expectedGroup = expectedGroups.shift()!; expect(g.key).to.equal(expectedGroup.key); g.subscribe((x: any) => { expect(x).to.deep.equal(expectedGroup.values.shift()); }); }, complete: done, }); }); it('should handle an empty Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; const source = e1.pipe(groupBy((val: string) => val.toLowerCase().trim())); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a never Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; const source = e1.pipe(groupBy((val: string) => val.toLowerCase().trim())); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a just-throw Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; const source = e1.pipe(groupBy((val: string) => val.toLowerCase().trim())); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an Observable with a single value', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo' }; const e1 = hot(' ^--a--|', values); const e1subs = ' ^-----!'; const expected = '---g--|'; const g = cold(' a--|', values); const expectedValues = { g: g }; const source = e1.pipe(groupBy((val: string) => val.toLowerCase().trim())); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should group values with a keySelector', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const e1subs = ' ^-------------------------!'; const expected = ' --w---x---y-z-------------|'; const w = cold(' a-b---d---------i-----l-|', values); const x = cold(' c-------g-h---------|', values); const y = cold(' e---------j-k---|', values); const z = cold(' f-------------|', values); const expectedValues = { w: w, x: x, y: y, z: z }; const source = e1.pipe(groupBy((val: string) => val.toLowerCase().trim())); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit GroupObservables', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', }; const e1 = hot('-1--2--^-a-b----|', values); const e1subs = ' ^--------!'; const expected = ' --g------|'; const expectedValues = { g: 'foo' }; const source = e1.pipe( groupBy((val: string) => val.toLowerCase().trim()), tap((group: any) => { expect(group.key).to.equal('foo'); expect(group instanceof Observable).to.be.true; }), map((group: any) => { return group.key; }) ); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should group values with a keySelector, assert GroupSubject key', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const e1subs = ' ^-------------------------!'; const expected = ' --w---x---y-z-------------|'; const expectedValues = { w: 'foo', x: 'bar', y: 'baz', z: 'qux' }; const source = e1.pipe( groupBy((val: string) => val.toLowerCase().trim()), map((g: any) => g.key) ); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should group values with a keySelector, but outer throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-#', values); const e1subs = ' ^-------------------------!'; const expected = ' --w---x---y-z-------------#'; const expectedValues = { w: 'foo', x: 'bar', y: 'baz', z: 'qux' }; const source = e1.pipe( groupBy((val: string) => val.toLowerCase().trim()), map((g: any) => g.key) ); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should group values with a keySelector, inners propagate error from outer', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-#', values); const e1subs = ' ^-------------------------!'; const expected = ' --w---x---y-z-------------#'; const w = cold(' a-b---d---------i-----l-#', values); const x = cold(' c-------g-h---------#', values); const y = cold(' e---------j-k---#', values); const z = cold(' f-------------#', values); const expectedValues = { w: w, x: x, y: y, z: z }; const source = e1.pipe(groupBy((val: string) => val.toLowerCase().trim())); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow outer to be unsubscribed early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const unsub = ' -----------! '; const e1subs = ' ^----------! '; const expected = ' --w---x---y- '; const expectedValues = { w: 'foo', x: 'bar', y: 'baz' }; const source = e1.pipe( groupBy((val: string) => val.toLowerCase().trim()), map((group: any) => group.key) ); expectObservable(source, unsub).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should unsubscribe from the source when the outer and inner subscriptions are disposed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const e1subs = ' ^-! '; const expected = ' --(a|) '; const source = e1.pipe( groupBy((val) => val.toLowerCase().trim()), take(1), mergeMap((group) => group.pipe(take(1))) ); expectObservable(source).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const e1subs = ' ^----------! '; const expected = ' --w---x---y- '; const unsub = ' -----------! '; const expectedValues = { w: 'foo', x: 'bar', y: 'baz' }; const source = e1.pipe( mergeMap((x: string) => of(x)), groupBy((x: string) => x.toLowerCase().trim()), mergeMap((group: any) => of(group.key)) ); expectObservable(source, unsub).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should group values with a keySelector which eventually throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const e1subs = ' ^-------------------!'; const expected = ' --w---x---y-z-------#'; const w = cold(' a-b---d---------i-#', values); const x = cold(' c-------g-h---#', values); const y = cold(' e---------#', values); const z = cold(' f-------#', values); const expectedValues = { w: w, x: x, y: y, z: z }; let invoked = 0; const source = e1.pipe( groupBy((val: string) => { invoked++; if (invoked === 10) { throw 'error'; } return val.toLowerCase().trim(); }) ); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should group values with a keySelector and elementSelector, but elementSelector throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const reversedValues = mapObject(values, reverseString); const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const e1subs = ' ^-------------------!'; const expected = ' --w---x---y-z-------#'; const w = cold(' a-b---d---------i-#', reversedValues); const x = cold(' c-------g-h---#', reversedValues); const y = cold(' e---------#', reversedValues); const z = cold(' f-------#', reversedValues); const expectedValues = { w: w, x: x, y: y, z: z }; let invoked = 0; const source = e1.pipe( groupBy( (val: string) => val.toLowerCase().trim(), (val: string) => { invoked++; if (invoked === 10) { throw 'error'; } return reverseString(val); } ) ); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow the outer to be unsubscribed early but inners continue', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const unsub = ' ---------! '; const expected = ' --w---x--- '; const w = cold(' a-b---d---------i-----l-| ', values); const x = cold(' c-------g-h---------| ', values); const expectedValues = { w: w, x: x }; const source = e1.pipe(groupBy((val: string) => val.toLowerCase().trim())); expectObservable(source, unsub).toBe(expected, expectedValues); }); }); it('should allow an inner to be unsubscribed early but other inners continue', () => { testScheduler.run(({ hot, expectObservable }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const expected = ' --w---x---y-z-------------|'; const w = ' --a-b---d- '; const unsubw = ' ---------! '; const x = ' ------c-------g-h---------|'; const y = ' ----------e---------j-k---|'; const z = ' ------------f-------------|'; const expectedGroups = { w: TestScheduler.parseMarbles(w, values, undefined, undefined, true), x: TestScheduler.parseMarbles(x, values, undefined, undefined, true), y: TestScheduler.parseMarbles(y, values, undefined, undefined, true), z: TestScheduler.parseMarbles(z, values, undefined, undefined, true), }; const fooUnsubscriptionFrame = TestScheduler.parseMarblesAsSubscriptions(unsubw, true).unsubscribedFrame; const source = e1.pipe( groupBy((val) => val.toLowerCase().trim()), map((group) => { const arr: any[] = []; const subscription = group.pipe(phonyMarbelize(testScheduler)).subscribe((value) => { arr.push(value); }); if (group.key === 'foo') { testScheduler.schedule(() => { subscription.unsubscribe(); }, fooUnsubscriptionFrame - testScheduler.frame); } return arr; }) ); expectObservable(source).toBe(expected, expectedGroups); }); }); it('should allow inners to be unsubscribed early at different times', () => { testScheduler.run(({ hot, expectObservable }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const expected = ' --w---x---y-z-------------|'; const w = ' --a-b---d- '; const unsubw = ' ---------! '; const x = ' ------c------ '; const unsubx = ' ------------! '; const y = ' ----------e------ '; const unsuby = ' ----------------! '; const z = ' ------------f------- '; const unsubz = ' -------------------! '; const expectedGroups = { w: TestScheduler.parseMarbles(w, values, undefined, undefined, true), x: TestScheduler.parseMarbles(x, values, undefined, undefined, true), y: TestScheduler.parseMarbles(y, values, undefined, undefined, true), z: TestScheduler.parseMarbles(z, values, undefined, undefined, true), }; const unsubscriptionFrames: Record = { foo: TestScheduler.parseMarblesAsSubscriptions(unsubw, true).unsubscribedFrame, bar: TestScheduler.parseMarblesAsSubscriptions(unsubx, true).unsubscribedFrame, baz: TestScheduler.parseMarblesAsSubscriptions(unsuby, true).unsubscribedFrame, qux: TestScheduler.parseMarblesAsSubscriptions(unsubz, true).unsubscribedFrame, }; const source = e1.pipe( groupBy((val: string) => val.toLowerCase().trim()), map((group: any) => { const arr: any[] = []; const subscription = group.pipe(phonyMarbelize(testScheduler)).subscribe((value: any) => { arr.push(value); }); testScheduler.schedule(() => { subscription.unsubscribe(); }, unsubscriptionFrames[group.key] - testScheduler.frame); return arr; }) ); expectObservable(source).toBe(expected, expectedGroups); }); }); it('should allow subscribing late to an inner Observable, outer completes', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const values = { a: ' foo', b: ' FoO ', d: 'foO ', i: 'FOO ', l: ' fOo ', }; const e1 = hot(' --a-b---d---------i-----l-| ', values); const subs = ' ^-------------------------! '; const subDuration = time('--------------------------| '); const expected = ' ----------------------------|'; e1.pipe(groupBy((val: string) => val.toLowerCase().trim())).subscribe((group: any) => { testScheduler.schedule(() => { expectObservable(group).toBe(expected); }, subDuration); }); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should allow subscribing late to an inner Observable, outer throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const values = { a: ' foo', b: ' FoO ', d: 'foO ', i: 'FOO ', l: ' fOo ', }; const e1 = hot(' --a-b---d---------i-----l-#', values); const subs = ' ^-------------------------! '; const subsDuration = time('--------------------------| '); const expected = ' ----------------------------#'; e1.pipe(groupBy((val: string) => val.toLowerCase().trim())).subscribe({ next: (group: any) => { testScheduler.schedule(() => { expectObservable(group).toBe(expected); }, subsDuration); }, error: () => { //noop }, }); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should allow subscribing late to inner, unsubscribe outer early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const values = { a: ' foo', b: ' FoO ', d: 'foO ', i: 'FOO ', l: ' fOo ', }; const e1 = hot(' --a-b---d---------i-----l-#', values); const unsub = ' ------------! '; const e1subs = ' ^-----------! '; const subsDuration = time('------------| '); const expectedOuter = ' --w---------- '; const expectedInner = ' ------------- '; const outerValues = { w: 'foo' }; const source = e1.pipe( groupBy((val: string) => val.toLowerCase().trim()), tap((group: any) => { testScheduler.schedule(() => { expectObservable(group).toBe(expectedInner); }, subsDuration); }), map((group: any) => { return group.key; }) ); expectObservable(source, unsub).toBe(expectedOuter, outerValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow using a keySelector, elementSelector, and durationSelector', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const reversedValues = mapObject(values, reverseString); const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const e1subs = ' ^-------------------------!'; const expected = ' --v---w---x-y-----z-------|'; const v = cold(' a-b---(d|) ', reversedValues); const w = cold(' c-------g-(h|) ', reversedValues); const x = cold(' e---------j-(k|)', reversedValues); const y = cold(' f-------------|', reversedValues); const z = cold(' i-----l-|', reversedValues); const expectedValues = { v: v, w: w, x: x, y: y, z: z }; const source = e1.pipe( groupBy( (val: string) => val.toLowerCase().trim(), (val: string) => reverseString(val), (group: any) => group.pipe(skip(2)) ) ); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow using a keySelector, elementSelector, and durationSelector that throws', () => { testScheduler.run(({ cold, hot, expectObservable }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const reversedValues = mapObject(values, reverseString); const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const expected = ' --v---w---x-y-----z-------|'; const v = cold(' a-b---(d#) ', reversedValues); const w = cold(' c-------g-(h#) ', reversedValues); const x = cold(' e---------j-(k#) ', reversedValues); const y = cold(' f-------------|', reversedValues); const z = cold(' i-----l-|', reversedValues); const expectedValues = { v: v, w: w, x: x, y: y, z: z }; const source = e1.pipe( groupBy( (val: string) => val.toLowerCase().trim(), (val: string) => reverseString(val), (group: any) => group.pipe( skip(2), map(() => { throw 'error'; }) ) ) ); expectObservable(source).toBe(expected, expectedValues); }); }); it('should allow using a keySelector and a durationSelector, outer throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-#', values); const e1subs = ' ^-------------------------!'; const expected = ' --v---w---x-y-----z-------#'; const v = cold(' a-b---(d|) ', values); const w = cold(' c-------g-(h|) ', values); const x = cold(' e---------j-(k|) ', values); const y = cold(' f-------------#', values); const z = cold(' i-----l-#', values); const expectedValues = { v: v, w: w, x: x, y: y, z: z }; const source = e1.pipe( groupBy((val) => val.toLowerCase().trim(), { duration: (group) => group.pipe(skip(2)), }) ); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow using a durationSelector, and outer unsubscribed early', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const unsub = ' -----------! '; const expected = ' --v---w---x- '; const v = cold(' a-b---(d|) ', values); const w = cold(' c-------g-(h|) ', values); const x = cold(' e---------j-(k|) ', values); const expectedValues = { v: v, w: w, x: x }; const source = e1.pipe( groupBy((val) => val.toLowerCase().trim(), { duration: (group) => group.pipe(skip(2)), }) ); expectObservable(source, unsub).toBe(expected, expectedValues); }); }); it('should allow using a durationSelector, outer and all inners unsubscribed early', () => { testScheduler.run(({ hot, expectObservable }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const unsub = ' -----------!'; const expected = ' --v---w---x-'; const v = ' --a-b---(d|)'; const w = ' ------c-----'; const x = ' ----------e-'; const expectedGroups = { v: TestScheduler.parseMarbles(v, values, undefined, undefined, true), w: TestScheduler.parseMarbles(w, values, undefined, undefined, true), x: TestScheduler.parseMarbles(x, values, undefined, undefined, true), }; const unsubscriptionFrame = TestScheduler.parseMarblesAsSubscriptions(unsub, true).unsubscribedFrame; const source = e1.pipe( groupBy((val) => val.toLowerCase().trim(), { duration: (group) => group.pipe(skip(2)), }), map((group) => { const arr: any[] = []; const subscription = group.pipe(phonyMarbelize(testScheduler)).subscribe((value) => { arr.push(value); }); testScheduler.schedule(() => { subscription.unsubscribe(); }, unsubscriptionFrame - testScheduler.frame); return arr; }) ); expectObservable(source, unsub).toBe(expected, expectedGroups); }); }); it('should dispose a durationSelector after closing the group', () => { testScheduler.run(({ cold, hot, expectSubscriptions }) => { const obs = hot(' -0-1--------2-| '); const sub = ' ^--------------!'; // prettier-ignore const unsubs = [ ' -^--!', ' ---^--!', ' ------------^-!', ]; const dur = ' ---s'; const durations = [cold(dur), cold(dur), cold(dur)]; const unsubscribedFrame = TestScheduler.parseMarblesAsSubscriptions(sub, true).unsubscribedFrame; obs .pipe( groupBy((val) => val, { duration: (group) => durations[Number(group.key)], }) ) .subscribe(); testScheduler.schedule(() => { durations.forEach((d, i) => { expectSubscriptions(d.subscriptions).toBe(unsubs[i]); }); }, unsubscribedFrame); }); }); it('should allow using a durationSelector, but keySelector throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const e1subs = ' ^-------------------! '; const expected = ' --v---w---x-y-----z-# '; const v = cold(' a-b---(d|) ', values); const w = cold(' c-------g-(h|) ', values); const x = cold(' e---------# ', values); const y = cold(' f-------# ', values); const z = cold(' i-# ', values); const expectedValues = { v: v, w: w, x: x, y: y, z: z }; let invoked = 0; const source = e1.pipe( groupBy( (val: any) => { invoked++; if (invoked === 10) { throw 'error'; } return val.toLowerCase().trim(); }, (val: string) => val, (group: any) => group.pipe(skip(2)) ) ); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow using a durationSelector, but elementSelector throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const e1subs = ' ^-------------------! '; const expected = ' --v---w---x-y-----z-# '; const v = cold(' a-b---(d|) ', values); const w = cold(' c-------g-(h|) ', values); const x = cold(' e---------# ', values); const y = cold(' f-------# ', values); const z = cold(' i-# ', values); const expectedValues = { v: v, w: w, x: x, y: y, z: z }; let invoked = 0; const source = e1.pipe( groupBy( (val: string) => val.toLowerCase().trim(), (val: string) => { invoked++; if (invoked === 10) { throw 'error'; } return val; }, (group: any) => group.pipe(skip(2)) ) ); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow using a durationSelector which eventually throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const e1subs = ' ^-----------! '; const expected = ' --v---w---x-(y#) '; const v = cold(' a-b---(d|) ', values); const w = cold(' c-----# ', values); const x = cold(' e-# ', values); const y = cold(' # ', values); const expectedValues = { v: v, w: w, x: x, y: y }; let invoked = 0; const source = e1.pipe( groupBy( (val: string) => val.toLowerCase().trim(), (val: string) => val, (group: any) => { invoked++; if (invoked === 4) { throw 'error'; } return group.pipe(skip(2)); } ) ); expectObservable(source).toBe(expected, expectedValues); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow an inner to be unsubscribed early but other inners continue, with durationSelector', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const reversedValues = mapObject(values, reverseString); const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const e1subs = ' ^-------------------------!'; const expected = ' --v---w---x-y-----z-------|'; const v = ' --a-b--- '; const unsubv = ' -------! '; const w = ' ------c-------g-(h|) '; const x = ' ----------e---------j-(k|)'; const y = ' ------------f-------------|'; const z = ' ------------------i-----l-|'; const expectedGroups = { v: TestScheduler.parseMarbles(v, reversedValues, undefined, undefined, true), w: TestScheduler.parseMarbles(w, reversedValues, undefined, undefined, true), x: TestScheduler.parseMarbles(x, reversedValues, undefined, undefined, true), y: TestScheduler.parseMarbles(y, reversedValues, undefined, undefined, true), z: TestScheduler.parseMarbles(z, reversedValues, undefined, undefined, true), }; const fooUnsubscriptionFrame = TestScheduler.parseMarblesAsSubscriptions(unsubv, true).unsubscribedFrame; const source = e1.pipe( groupBy( (val: string) => val.toLowerCase().trim(), (val: string) => reverseString(val), (group: any) => group.pipe(skip(2)) ), map((group: any, index: number) => { const arr: any[] = []; const subscription = group.pipe(phonyMarbelize(testScheduler)).subscribe((value: any) => { arr.push(value); }); if (group.key === 'foo' && index === 0) { testScheduler.schedule(() => { subscription.unsubscribe(); }, fooUnsubscriptionFrame - testScheduler.frame); } return arr; }) ); expectObservable(source).toBe(expected, expectedGroups); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow inners to be unsubscribed early at different times, with durationSelector', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-|', values); const e1subs = ' ^-------------------------!'; const expected = ' --v---w---x-y-----z-------|'; const v = ' --a-b--- '; const unsubv = ' -------! '; const w = ' ------c--- '; const unsubw = ' ---------! '; const x = ' ----------e---------j- '; const unsubx = ' ---------------------! '; const y = ' ------------f---- '; const unsuby = ' ----------------! '; const z = ' ------------------i---- '; const unsubz = ' ----------------------! '; const expectedGroups = { v: TestScheduler.parseMarbles(v, values, undefined, undefined, true), w: TestScheduler.parseMarbles(w, values, undefined, undefined, true), x: TestScheduler.parseMarbles(x, values, undefined, undefined, true), y: TestScheduler.parseMarbles(y, values, undefined, undefined, true), z: TestScheduler.parseMarbles(z, values, undefined, undefined, true), }; const unsubscriptionFrames: Record = { foo: TestScheduler.parseMarblesAsSubscriptions(unsubv, true).unsubscribedFrame, bar: TestScheduler.parseMarblesAsSubscriptions(unsubw, true).unsubscribedFrame, baz: TestScheduler.parseMarblesAsSubscriptions(unsubx, true).unsubscribedFrame, qux: TestScheduler.parseMarblesAsSubscriptions(unsuby, true).unsubscribedFrame, foo2: TestScheduler.parseMarblesAsSubscriptions(unsubz, true).unsubscribedFrame, }; const hasUnsubscribed: Record = {}; const source = e1.pipe( groupBy( (val: string) => val.toLowerCase().trim(), (val: string) => val, (group: any) => group.pipe(skip(2)) ), map((group: any) => { const arr: any[] = []; const subscription = group.pipe(phonyMarbelize(testScheduler)).subscribe((value: any) => { arr.push(value); }); const unsubscriptionFrame = hasUnsubscribed[group.key] ? unsubscriptionFrames[group.key + '2'] : unsubscriptionFrames[group.key]; testScheduler.schedule(() => { subscription.unsubscribe(); hasUnsubscribed[group.key] = true; }, unsubscriptionFrame - testScheduler.frame); return arr; }) ); expectObservable(source).toBe(expected, expectedGroups); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return inners that when subscribed late exhibit hot behavior', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', c: 'baR ', d: 'foO ', e: ' Baz ', f: ' qux ', g: ' bar', h: ' BAR ', i: 'FOO ', j: 'baz ', k: ' bAZ ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b-c-d-e-f-g-h-i-j-k-l-| ', values); const e1subs = ' ^-------------------------! '; const expected = ' --v---w---x-y-------------| '; const subv = ' ---^ '; // foo const v = ' ----b---d---------i-----l-| '; // foo const subw = ' ---------^ '; // bar const w = ' --------------g-h---------| '; // bar const subx = ' -------------------^ '; // baz const x = ' --------------------j-k---| '; // baz const suby = ' ------------------------------^'; // qux const y = ' ------------------------------|'; // qux const expectedGroups = { v: TestScheduler.parseMarbles(v, values, undefined, undefined, true), w: TestScheduler.parseMarbles(w, values, undefined, undefined, true), x: TestScheduler.parseMarbles(x, values, undefined, undefined, true), y: TestScheduler.parseMarbles(y, values, undefined, undefined, true), }; const subscriptionFrames: Record = { foo: TestScheduler.parseMarblesAsSubscriptions(subv, true).subscribedFrame, bar: TestScheduler.parseMarblesAsSubscriptions(subw, true).subscribedFrame, baz: TestScheduler.parseMarblesAsSubscriptions(subx, true).subscribedFrame, qux: TestScheduler.parseMarblesAsSubscriptions(suby, true).subscribedFrame, }; const result = e1.pipe( groupBy( (val: string) => val.toLowerCase().trim(), (val: string) => val ), map((group: any) => { const innerNotifications: any[] = []; const subscriptionFrame = subscriptionFrames[group.key]; testScheduler.schedule(() => { group.pipe(phonyMarbelize(testScheduler)).subscribe((value: any) => { innerNotifications.push(value); }); }, subscriptionFrame - testScheduler.frame); return innerNotifications; }) ); expectObservable(result).toBe(expected, expectedGroups); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return inner group that when subscribed late emits complete()', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', d: 'foO ', i: 'FOO ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b---d---------i-----l-| ', values); const e1subs = ' ^-------------------------! '; const expected = ' --g-----------------------| '; const innerSub = ' --------------------------------^'; const g = ' --------------------------------|'; const expectedGroups = { g: TestScheduler.parseMarbles(g, values, undefined, undefined, true), }; const innerSubscriptionFrame = TestScheduler.parseMarblesAsSubscriptions(innerSub, true).subscribedFrame; const source = e1.pipe( groupBy( (val: string) => val.toLowerCase().trim(), (val: string) => val, (group: any) => group.pipe(skip(7)) ), map((group: any) => { const arr: any[] = []; testScheduler.schedule(() => { group.pipe(phonyMarbelize(testScheduler)).subscribe((value: any) => { arr.push(value); }); }, innerSubscriptionFrame - testScheduler.frame); return arr; }) ); expectObservable(source).toBe(expected, expectedGroups); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it.skip('should return inner group that when subscribed late emits error()', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: ' foo', b: ' FoO ', d: 'foO ', i: 'FOO ', l: ' fOo ', }; const e1 = hot('-1--2--^-a-b---d---------i-----l-# ', values); const e1subs = ' ^-------------------------! '; const expected = ' --g-----------------------# '; const innerSub = ' --------------------------------^'; const g = ' --------------------------------#'; const expectedGroups = { g: TestScheduler.parseMarbles(g, values, undefined, undefined, true), }; const innerSubscriptionFrame = TestScheduler.parseMarblesAsSubscriptions(innerSub, true).subscribedFrame; const source = e1.pipe( groupBy( (val: string) => val.toLowerCase().trim(), (val: string) => val, (group: any) => group.pipe(skip(7)) ), map((group: any) => { const arr: any[] = []; testScheduler.schedule(() => { group.pipe(phonyMarbelize(testScheduler)).subscribe((value: any) => { arr.push(value); }); }, innerSubscriptionFrame - testScheduler.frame); return arr; }) ); expectObservable(source).toBe(expected, expectedGroups); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not error for late subscribed inners if outer is unsubscribed before inners are subscribed', () => { testScheduler.run(({ hot, expectObservable }) => { const source = hot('-----^----a----b-----a------b----a----b---#'); // Unsubscribe before the error happens. const unsub = ' -------------------! '; // Used to hold two subjects we're going to use to subscribe to our groups const subjects: Record> = { a: new Subject(), b: new Subject(), }; const result = source.pipe( groupBy((char) => char), tap({ // The real test is here, schedule each group to be subscribed to // long after the source errors and long after the unsubscription happens. next: (group) => { testScheduler.schedule(() => group.subscribe(subjects[group.key]), 1000); }, }), // We don't are about what the outer is emitting ignoreElements() ); // Just to get the test going. expectObservable(result, unsub).toBe('-'); // Our two groups should error immediately upon subscription. expectObservable(subjects.a).toBe('-'); expectObservable(subjects.b).toBe('-'); }); }); it('should not break lift() composability', (done) => { class MyCustomObservable extends Observable { lift(operator: Operator): Observable { const observable = new MyCustomObservable(); (observable).source = this; (observable).operator = operator; return observable; } } const result = new MyCustomObservable((observer: Observer) => { observer.next(1); observer.next(2); observer.next(3); observer.complete(); }).pipe( groupBy( (x: number) => x % 2, (x: number) => x + '!' ) ); expect(result instanceof MyCustomObservable).to.be.true; const expectedGroups = [ { key: 1, values: ['1!', '3!'] }, { key: 0, values: ['2!'] }, ]; result.subscribe({ next: (g: any) => { const expectedGroup = expectedGroups.shift()!; expect(g.key).to.equal(expectedGroup.key); g.subscribe((x: any) => { expect(x).to.deep.equal(expectedGroup.values.shift()); }); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( groupBy((value) => value), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); /** * TODO: A helper operator to deal with legacy tests above that could probably be written a different way */ function phonyMarbelize(testScheduler: TestScheduler) { return (source: Observable) => source.pipe( materialize(), map((notification) => { // Because we're hacking some weird inner-observable marbles here, we need // to make sure this is all the same shape as it would be from the TestScheduler // assertions return { frame: testScheduler.frame, notification: createNotification(notification.kind, notification.value, notification.error), }; }) ); } rxjs-7.5.7/spec/operators/ignoreElements-spec.ts000066400000000000000000000063041431412030200217410ustar00rootroot00000000000000import { ignoreElements, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {ignoreElements} */ describe('ignoreElements', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should ignore all the elements of the source', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--|'); const e1subs = ' ^-------------!'; const expected = '--------------|'; expectObservable(e1.pipe(ignoreElements())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--|'); const e1subs = ' ^------! '; const expected = '-------- '; const unsub = ' -------! '; const result = e1.pipe(ignoreElements()); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly with higher order', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--|'); const e1subs = ' ^------! '; const expected = '-------- '; const unsub = ' -------! '; const result = e1.pipe( mergeMap((x) => of(x)), ignoreElements(), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate errors from the source', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--#'); const e1subs = ' ^----!'; const expected = '-----#'; expectObservable(e1.pipe(ignoreElements())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; expectObservable(e1.pipe(ignoreElements())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(ignoreElements())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(ignoreElements())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/index-spec.ts000066400000000000000000000074641431412030200201000ustar00rootroot00000000000000import * as index from 'rxjs/operators'; import { expect } from 'chai'; describe('operators/index', () => { it('should export operators', () => { expect(index.audit).to.exist; expect(index.auditTime).to.exist; expect(index.buffer).to.exist; expect(index.bufferCount).to.exist; expect(index.bufferTime).to.exist; expect(index.bufferToggle).to.exist; expect(index.bufferWhen).to.exist; expect(index.catchError).to.exist; expect(index.combineAll).to.exist; expect(index.combineLatestAll).to.exist; expect(index.concatAll).to.exist; expect(index.concatMap).to.exist; expect(index.concatMapTo).to.exist; expect(index.count).to.exist; expect(index.debounce).to.exist; expect(index.debounceTime).to.exist; expect(index.defaultIfEmpty).to.exist; expect(index.delay).to.exist; expect(index.delayWhen).to.exist; expect(index.dematerialize).to.exist; expect(index.distinct).to.exist; expect(index.distinctUntilChanged).to.exist; expect(index.distinctUntilKeyChanged).to.exist; expect(index.elementAt).to.exist; expect(index.every).to.exist; expect(index.exhaust).to.exist; expect(index.exhaustAll).to.exist; expect(index.exhaustMap).to.exist; expect(index.expand).to.exist; expect(index.filter).to.exist; expect(index.finalize).to.exist; expect(index.find).to.exist; expect(index.findIndex).to.exist; expect(index.first).to.exist; expect(index.groupBy).to.exist; expect(index.ignoreElements).to.exist; expect(index.isEmpty).to.exist; expect(index.last).to.exist; expect(index.map).to.exist; expect(index.mapTo).to.exist; expect(index.materialize).to.exist; expect(index.max).to.exist; expect(index.mergeAll).to.exist; expect(index.mergeMap).to.exist; expect(index.flatMap).to.exist; expect(index.mergeMap).to.exist; expect(index.mergeMapTo).to.exist; expect(index.mergeScan).to.exist; expect(index.min).to.exist; expect(index.multicast).to.exist; expect(index.observeOn).to.exist; expect(index.pairwise).to.exist; expect(index.partition).to.exist; expect(index.pluck).to.exist; expect(index.publish).to.exist; expect(index.publishBehavior).to.exist; expect(index.publishLast).to.exist; expect(index.publishReplay).to.exist; expect(index.reduce).to.exist; expect(index.repeat).to.exist; expect(index.repeatWhen).to.exist; expect(index.retry).to.exist; expect(index.retryWhen).to.exist; expect(index.refCount).to.exist; expect(index.sample).to.exist; expect(index.sampleTime).to.exist; expect(index.scan).to.exist; expect(index.sequenceEqual).to.exist; expect(index.share).to.exist; expect(index.shareReplay).to.exist; expect(index.single).to.exist; expect(index.skip).to.exist; expect(index.skipLast).to.exist; expect(index.skipUntil).to.exist; expect(index.skipWhile).to.exist; expect(index.startWith).to.exist; expect(index.switchAll).to.exist; expect(index.switchScan).to.exist; expect(index.switchMap).to.exist; expect(index.switchMapTo).to.exist; expect(index.take).to.exist; expect(index.takeLast).to.exist; expect(index.takeUntil).to.exist; expect(index.takeWhile).to.exist; expect(index.tap).to.exist; expect(index.throttle).to.exist; expect(index.throttleTime).to.exist; expect(index.timeInterval).to.exist; expect(index.timeout).to.exist; expect(index.timeoutWith).to.exist; expect(index.timestamp).to.exist; expect(index.toArray).to.exist; expect(index.window).to.exist; expect(index.windowCount).to.exist; expect(index.windowTime).to.exist; expect(index.windowToggle).to.exist; expect(index.windowWhen).to.exist; expect(index.withLatestFrom).to.exist; expect(index.zipAll).to.exist; }); }); rxjs-7.5.7/spec/operators/isEmpty-spec.ts000066400000000000000000000063371431412030200204210ustar00rootroot00000000000000import { isEmpty, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {isEmpty} */ describe('isEmpty', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should return true if source is empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----| '); const e1subs = ' ^----! '; const expected = '-----(T|)'; expectObservable(e1.pipe(isEmpty())).toBe(expected, { T: true }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return false if source emits element', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--|'); const e1subs = ' ^--! '; const expected = ' ---(F|)'; expectObservable(e1.pipe(isEmpty())).toBe(expected, { F: false }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --#'); const e1subs = ' ^-!'; const expected = '--#'; expectObservable(e1.pipe(isEmpty())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete if source never emits', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(isEmpty())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return true if source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '(T|)'; expectObservable(e1.pipe(isEmpty())).toBe(expected, { T: true }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -----------a--b--|'); const e1subs = ' ^-----! '; const expected = '------- '; const unsub = ' ------! '; expectObservable(e1.pipe(isEmpty()), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -----------a--b--|'); const e1subs = ' ^-----! '; const expected = '------- '; const unsub = ' ------! '; const result = e1.pipe( mergeMap((x) => of(x)), isEmpty(), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/last-spec.ts000066400000000000000000000173341431412030200177310ustar00rootroot00000000000000import { TestScheduler } from 'rxjs/testing'; import { last, mergeMap } from 'rxjs/operators'; import { EmptyError, of, from, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {last} */ describe('last', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should take the last value of an observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a----b--c--| '); const e1subs = ' ^------------! '; const expected = '-------------(c|)'; expectObservable(e1.pipe(last())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should error on nothing sent but completed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^----|'); const e1subs = ' ^----!'; const expected = ' -----#'; expectObservable(e1.pipe(last())).toBe(expected, null, new EmptyError()); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should error on empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(last())).toBe(expected, null, new EmptyError()); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should go on forever on never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(last())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow undefined as a default value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----a--a---a-| '); const e1subs = ' ^-------------! '; const expected = '--------------(U|)'; expectObservable(e1.pipe(last((value) => value === 'b', undefined))).toBe(expected, { U: undefined }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return last element matches with predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--a--b--| '); const e1subs = ' ^-------------! '; const expected = '--------------(b|)'; expectObservable(e1.pipe(last((value) => value === 'b'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--|'); const e1subs = ' ^------! '; const expected = '-------- '; const unsub = ' -------! '; expectObservable(e1.pipe(last()), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--|'); const e1subs = ' ^------! '; const expected = '-------- '; const unsub = ' -------! '; const result = e1.pipe( mergeMap((x) => of(x)), last(), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return a default value if no element found', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '(a|)'; expectObservable(e1.pipe(last(null, 'a'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not return default value if an element is found', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a---^---b---c---d---| '); const e1subs = ' ^---------------! '; const expected = ' ----------------(d|)'; expectObservable(e1.pipe(last(null, 'x'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when predicate throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^---b---c---d---e--|'); const e1subs = ' ^-------! '; const expected = ' --------# '; const predicate = function (x: string) { if (x === 'c') { throw 'error'; } else { return false; } }; expectObservable(e1.pipe(last(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support type guards without breaking previous behavior', () => { // tslint:disable no-unused-variable // type guards with interfaces and classes { interface Bar { bar?: string; } interface Baz { baz?: number; } class Foo implements Bar, Baz { constructor(public bar: string = 'name', public baz: number = 42) {} } const isBar = (x: any): x is Bar => x && (x as Bar).bar !== undefined; const isBaz = (x: any): x is Baz => x && (x as Baz).baz !== undefined; const foo: Foo = new Foo(); of(foo) .pipe(last()) .subscribe((x) => x.baz); // x is Foo of(foo) .pipe(last((foo) => foo.bar === 'name')) .subscribe((x) => x.baz); // x is still Foo of(foo) .pipe(last(isBar)) .subscribe((x) => x.bar); // x is Bar! const foobar: Bar = new Foo(); // type is the interface, not the class of(foobar) .pipe(last()) .subscribe((x) => x.bar); // x is Bar of(foobar) .pipe(last((foobar) => foobar.bar === 'name')) .subscribe((x) => x.bar); // x is still Bar of(foobar) .pipe(last(isBaz)) .subscribe((x) => x.baz); // x is Baz! const barish = { bar: 'quack', baz: 42 }; // type can quack like a Bar of(barish) .pipe(last()) .subscribe((x) => x.baz); // x is still { bar: string; baz: number; } of(barish) .pipe(last((x) => x.bar === 'quack')) .subscribe((x) => x.bar); // x is still { bar: string; baz: number; } of(barish) .pipe(last(isBar)) .subscribe((x) => x.bar); // x is Bar! } // type guards with primitive types { const xs: Observable = from([1, 'aaa', 3, 'bb']); // This type guard will narrow a `string | number` to a string in the examples below const isString = (x: string | number): x is string => typeof x === 'string'; // missing predicate preserves the type xs.pipe(last()).subscribe((x) => x); // x is still string | number // null predicate preserves the type xs.pipe(last(null)).subscribe((x) => x); // x is still string | number // undefined predicate preserves the type xs.pipe(last(undefined)).subscribe((x) => x); // x is still string | number // After the type guard `last` predicates, the type is narrowed to string xs.pipe(last(isString)).subscribe((s) => s.length); // s is string // boolean predicates preserve the type xs.pipe(last((x) => typeof x === 'string')).subscribe((x) => x); // x is still string | number } // tslint:disable enable }); }); rxjs-7.5.7/spec/operators/map-spec.ts000066400000000000000000000241711431412030200175400ustar00rootroot00000000000000import { expect } from 'chai'; import { map, tap, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable, identity } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; // function shortcuts const addDrama = (x: number | string) => x + '!'; /** @test {map} */ describe('map', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should map multiple values', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1--2--3--|'); const e1subs = ' ^----------!'; const expected = '--x--y--z--|'; const result = e1.pipe(map((x) => 10 * +x)); expectObservable(result).toBe(expected, { x: 10, y: 20, z: 30 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map one value', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const values = { x: 42 }; const e1 = cold(' --x--|', values); const e1subs = ' ^----!'; const expected = '--y--|'; const result = e1.pipe(map(addDrama)); expectObservable(result).toBe(expected, { y: '42!' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map multiple values', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1--2--3--|'); const e1subs = ' ^----------!'; const expected = '--x--y--z--|'; const result = e1.pipe(map(addDrama)); expectObservable(result).toBe(expected, { x: '1!', y: '2!', z: '3!' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate errors from map function', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const values = { x: 42 }; const e1 = cold(' --x--|', values); const e1subs = ' ^-! '; const expected = '--# '; const result = e1.pipe( map((x: any) => { throw 'too bad'; }) ); expectObservable(result).toBe(expected, null, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate errors from observable that emits only errors', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; const result = e1.pipe(map(identity)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate errors from observable that emit values', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 2 }; const e1 = cold(' --a--b--#', values, 'too bad'); const e1subs = ' ^-------!'; const expected = '--x--y--#'; const result = e1.pipe(map(addDrama)); expectObservable(result).toBe(expected, { x: '1!', y: '2!' }, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not map an empty observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; let invoked = 0; const result = e1.pipe( map((x: any) => { invoked++; return x; }), tap({ complete() { expect(invoked).to.equal(0); }, }) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1--2--3--|'); const e1subs = ' ^-----! '; const expected = '--x--y- '; const unsub = ' ------! '; const result = e1.pipe(map(addDrama)); expectObservable(result, unsub).toBe(expected, { x: '1!', y: '2!' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map with index', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-5-^-4--3---2----1--|'); const e1subs = ' ^----------------!'; const expected = ' --a--b---c----d--|'; const values = { a: 5, b: 14, c: 23, d: 32 }; let invoked = 0; const result = e1.pipe( map((x: string, index: number) => { invoked++; return parseInt(x) + 1 + index * 10; }), tap({ complete() { expect(invoked).to.equal(4); }, }) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map with index until completed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-5-^-4--3---2----1--|'); const e1subs = ' ^----------------!'; const expected = ' --a--b---c----d--|'; const values = { a: 5, b: 14, c: 23, d: 32 }; let invoked = 0; const result = e1.pipe( map((x: string, index: number) => { invoked++; return parseInt(x) + 1 + index * 10; }), tap({ complete() { expect(invoked).to.equal(4); }, }) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map with index until an error occurs', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-5-^-4--3---2----1--#', undefined, 'too bad'); const e1subs = ' ^----------------!'; const expected = ' --a--b---c----d--#'; const values = { a: 5, b: 14, c: 23, d: 32 }; let invoked = 0; const result = e1.pipe( map((x: string, index: number) => { invoked++; return parseInt(x) + 1 + index * 10; }), tap({ error() { expect(invoked).to.equal(4); }, }) ); expectObservable(result).toBe(expected, values, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map using a custom thisArg', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-5-^-4--3---2----1--|'); const e1subs = ' ^----------------!'; const expected = ' --a--b---c----d--|'; const values = { a: 46, b: 55, c: 64, d: 73 }; const foo = { value: 42, }; const result = e1.pipe( map(function (this: typeof foo, x: string, index: number) { expect(this).to.equal(foo); return parseInt(x) + foo.value + index * 10; }, foo) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map twice', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-0----1-^-2---3--4-5--6--7-8-|'); const e1subs = ' ^--------------------!'; const expected = ' --a---b--c-d--e--f-g-|'; const values = { a: 2, b: 3, c: 4, d: 5, e: 6, f: 7, g: 8 }; let invoked1 = 0; let invoked2 = 0; const result = e1.pipe( map((x: string) => { invoked1++; return parseInt(x) * 2; }), map((x: number) => { invoked2++; return x / 2; }), tap({ complete() { expect(invoked1).to.equal(7); expect(invoked2).to.equal(7); }, }) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should do multiple maps using a custom thisArg', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --1--2--3--4--|'); const e1subs = ' ^-------------!'; const expected = '--a--b--c--d--|'; const values = { a: 11, b: 14, c: 17, d: 20 }; class Filterer { selector1 = (x: string) => parseInt(x) + 2; selector2 = (x: string) => parseInt(x) * 3; } const filterer = new Filterer(); const result = e1.pipe( map(function (this: any, x) { return this.selector1(x); }, filterer), map(function (this: any, x) { return this.selector2(x); }, filterer), map(function (this: any, x) { return this.selector1(x); }, filterer) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1--2--3--|'); const e1subs = ' ^-----! '; const expected = '--x--y- '; const unsub = ' ------! '; const result = e1.pipe( mergeMap((x: string) => of(x)), map(addDrama), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected, { x: '1!', y: '2!' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(map(identity), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/mapTo-spec.ts000066400000000000000000000106321431412030200200400ustar00rootroot00000000000000import { expect } from 'chai'; import { mapTo, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {mapTo} */ describe('mapTo', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should map multiple values', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1--2--3--|'); const e1subs = ' ^----------!'; const expected = '--a--a--a--|'; expectObservable(e1.pipe(mapTo('a'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map one value', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --7--|'); const e1subs = ' ^----!'; const expected = '--y--|'; expectObservable(e1.pipe(mapTo('y'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1--2--3--|'); const e1subs = ' ^-----! '; const expected = '--x--x- '; const unsub = ' ------! '; expectObservable(e1.pipe(mapTo('x')), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate errors from observable that emits only errors', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --#', undefined, 'too bad'); const e1subs = ' ^-!'; const expected = '--#'; expectObservable(e1.pipe(mapTo(1))).toBe(expected, null, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate errors from observable that emit values, then errors', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1--2--#', undefined, 'too bad'); const e1subs = ' ^-------!'; const expected = '--x--x--#'; expectObservable(e1.pipe(mapTo('x'))).toBe(expected, undefined, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not map an empty observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; expectObservable(e1.pipe(mapTo(-1))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map twice', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-0----1-^-2---3--4-5--6--7-8-|'); const e1subs = ' ^--------------------!'; const expected = ' --h---h--h-h--h--h-h-|'; // prettier-ignore const result = e1.pipe( mapTo(-1), mapTo('h') ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1--2--3--|'); const e1subs = ' ^-----! '; const expected = '--x--x- '; const unsub = ' ------! '; const result = e1.pipe( mergeMap((x: string) => of(x)), mapTo('x'), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(mapTo(0), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/materialize-spec.ts000066400000000000000000000134121431412030200212650ustar00rootroot00000000000000import { expect } from 'chai'; import { materialize, map, mergeMap, take } from 'rxjs/operators'; import { Notification, of, Observable } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {materialize} */ describe('materialize', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should materialize an Observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --x--y--z--| '); const e1subs = ' ^----------! '; const expected = '--a--b--c--(d|)'; const values = { a: '{x}', b: '{y}', c: '{z}', d: '|' }; const result = e1.pipe( materialize(), map((x: Notification) => { if (x.kind === 'C') { return '|'; } else { return '{' + x.value + '}'; } }) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should materialize a happy stream', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--| '); const e1subs = ' ^----------! '; const expected = '--w--x--y--(z|)'; const expectedValue = { w: Notification.createNext('a'), x: Notification.createNext('b'), y: Notification.createNext('c'), z: Notification.createComplete(), }; expectObservable(e1.pipe(materialize())).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should materialize a sad stream', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--# '); const e1subs = ' ^----------! '; const expected = '--w--x--y--(z|)'; const expectedValue = { w: Notification.createNext('a'), x: Notification.createNext('b'), y: Notification.createNext('c'), z: Notification.createError('error'), }; expectObservable(e1.pipe(materialize())).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-----! '; const expected = '--w--x- '; const unsub = ' ------! '; const expectedValue = { w: Notification.createNext('a'), x: Notification.createNext('b'), }; expectObservable(e1.pipe(materialize()), unsub).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^-----! '; const expected = '--w--x- '; const unsub = ' ------! '; const expectedValue = { w: Notification.createNext('a'), x: Notification.createNext('b'), }; const result = e1.pipe( mergeMap((x: string) => of(x)), materialize(), mergeMap((x: Notification) => of(x)) ); expectObservable(result, unsub).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should materialize stream that does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(materialize())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should materialize stream that does not emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----| '); const e1subs = ' ^---! '; const expected = '----(x|)'; expectObservable(e1.pipe(materialize())).toBe(expected, { x: Notification.createComplete() }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should materialize empty stream', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '(x|)'; expectObservable(e1.pipe(materialize())).toBe(expected, { x: Notification.createComplete() }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should materialize stream that throws', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '(x|)'; expectObservable(e1.pipe(materialize())).toBe(expected, { x: Notification.createError('error') }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(materialize(), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/max-spec.ts000066400000000000000000000226021431412030200175450ustar00rootroot00000000000000import { expect } from 'chai'; import { max, mergeMap, skip, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, range } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {max} */ describe('max', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should find the max of values of an observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--| ', { a: 42, b: -1, c: 3 }); const e1subs = ' ^----------! '; const expected = '-----------(x|)'; expectObservable(e1.pipe(max())).toBe(expected, { x: 42 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be never when source is never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(max())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be zero when source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; expectObservable(e1.pipe(max())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it("should be never when source doesn't complete", () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--x--^--y--'); const e1subs = ' ^-----'; const expected = ' ------'; expectObservable(e1.pipe(max())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it("should complete when source doesn't have values", () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^---|'); const e1subs = ' ^---!'; const expected = ' ----|'; expectObservable(e1.pipe(max())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should max the unique value of an observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^--y--| ', { y: 42 }); const e1subs = ' ^-----! '; const expected = ' ------(w|)'; expectObservable(e1.pipe(max())).toBe(expected, { w: 42 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should max the values of an ongoing hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--| ', { a: 42, b: -1, c: 0, d: 6 }); const e1subs = ' ^----------! '; const expected = ' -----------(x|)'; expectObservable(e1.pipe(max())).toBe(expected, { x: 6 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|', { a: 42, b: -1, c: 0 }); const e1subs = ' ^-----! '; const expected = '------- '; const unsub = ' ------! '; expectObservable(e1.pipe(max()), unsub).toBe(expected, { x: 42 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|', { a: 42, b: -1, c: 0 }); const e1subs = ' ^-----! '; const expected = '------- '; const unsub = ' ------! '; const result = e1.pipe( mergeMap((x: number) => of(x)), max(), mergeMap((x: number) => of(x)) ); expectObservable(result, unsub).toBe(expected, { x: 42 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should max a range() source observable', (done) => { range(1, 10000) .pipe(max()) .subscribe({ next: (value: number) => { expect(value).to.equal(10000); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should max a range().pipe(skip(1)) source observable', (done) => { range(1, 10) .pipe(skip(1), max()) .subscribe({ next: (value: number) => { expect(value).to.equal(10); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should max a range().pipe(take(1)) source observable', (done) => { range(1, 10) .pipe(take(1), max()) .subscribe({ next: (value: number) => { expect(value).to.equal(1); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should work with error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^--y--z--#', { x: 1, y: 2, z: 3 }, 'too bad'); const e1subs = ' ^--------!'; const expected = ' ---------#'; expectObservable(e1.pipe(max())).toBe(expected, null, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(max())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a constant predicate on an empty hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^---|'); const e1subs = ' ^---!'; const expected = ' ----|'; const predicate = function () { return 42; }; expectObservable(e1.pipe(max(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a constant predicate on an never hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^----'); const e1subs = ' ^----'; const expected = ' -----'; const predicate = function () { return 42; }; expectObservable(e1.pipe(max(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a constant predicate on a simple hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^-a-| ', { a: 1 }); const e1subs = ' ^---! '; const expected = ' ----(w|)'; const predicate = function () { return 42; }; expectObservable(e1.pipe(max(predicate))).toBe(expected, { w: 1 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a reverse predicate on observable with many values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^-b--c--d-| ', { a: 42, b: -1, c: 0, d: 666 }); const e1subs = ' ^---------! '; const expected = ' ----------(w|)'; const predicate = function (x: T, y: T) { return x > y ? -1 : 1; }; expectObservable(e1.pipe(max(predicate))).toBe(expected, { w: -1 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a predicate for string on observable with many values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^-b--c--d-| '); const e1subs = ' ^---------! '; const expected = ' ----------(w|)'; const predicate = function (x: T, y: T) { return x > y ? -1 : 1; }; expectObservable(e1.pipe(max(predicate))).toBe(expected, { w: 'b' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a constant predicate on observable that throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1-^---#'); const e1subs = ' ^---!'; const expected = ' ----#'; const predicate = () => { return 42; }; expectObservable(e1.pipe(max(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a predicate that throws, on observable with many values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1-^-2--3--|'); const e1subs = ' ^----! '; const expected = ' -----# '; const predicate = function (x: string, y: string) { if (y === '3') { throw 'error'; } return x > y ? -1 : 1; }; expectObservable(e1.pipe(max(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/merge-legacy-spec.ts000066400000000000000000000012161431412030200213170ustar00rootroot00000000000000import { merge } from 'rxjs/operators'; import { queueScheduler, of } from 'rxjs'; import { expect } from 'chai'; describe('merge (legacy)', () => { it('should merge an immediately-scheduled source with an immediately-scheduled second', (done) => { const a = of(1, 2, 3, queueScheduler); const b = of(4, 5, 6, 7, 8, queueScheduler); const r = [1, 2, 4, 3, 5, 6, 7, 8]; a.pipe(merge(b, queueScheduler)).subscribe({ next: (val) => { expect(val).to.equal(r.shift()); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); }); rxjs-7.5.7/spec/operators/mergeAll-spec.ts000066400000000000000000000515441431412030200205170ustar00rootroot00000000000000import { expect } from 'chai'; import { mergeAll, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { throwError, from, of, queueScheduler, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {mergeAll} */ describe('mergeAll', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should merge a hot observable of cold observables', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b--c---d--| '); const xsubs = ' --^---------------! '; const y = cold(' ----e---f--g---|'); const ysubs = ' ---------^--------------!'; const e1 = hot(' --x------y-------| ', { x: x, y: y }); const e1subs = ' ^----------------! '; const expected = '----a---b--c-e-d-f--g---|'; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge all observables in an observable', () => { testScheduler.run(({ expectObservable }) => { // prettier-ignore const e1 = from([ of('a'), of('b'), of('c') ]); const expected = '(abc|)'; expectObservable(e1.pipe(mergeAll())).toBe(expected); }); }); it('should throw if any child observable throws', () => { testScheduler.run(({ expectObservable }) => { // prettier-ignore const e1 = from([ of('a'), throwError(() => ('error')), of('c') ]); const expected = '(a#)'; expectObservable(e1.pipe(mergeAll())).toBe(expected); }); }); it('should handle merging a hot observable of observables', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' a---b---c---| '); const xsubs = ' --^-----------! '; const y = cold(' d---e---f---|'); const ysubs = ' -----^-----------!'; const e1 = hot(' --x--y--| ', { x: x, y: y }); const e1subs = ' ^-------! '; const expected = '--a--db--ec--f---|'; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge one cold Observable at a time with parameter concurrency=1', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' a---b---c---| '); const xsubs = ' --^-----------! '; const y = cold(' d---e---f---|'); const ysubs = ' --------------^-----------!'; const e1 = hot(' --x--y--| ', { x: x, y: y }); const e1subs = ' ^-------! '; const expected = '--a---b---c---d---e---f---|'; expectObservable(e1.pipe(mergeAll(1))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge two cold Observables at a time with parameter concurrency=2', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' a---b---c---| '); const xsubs = ' --^-----------! '; const y = cold(' d---e---f---| '); const ysubs = ' -----^-----------! '; const z = cold(' --g---h-|'); const zsubs = ' --------------^-------!'; const e1 = hot(' --x--y--z--| ', { x: x, y: y, z: z }); const e1subs = ' ^----------! '; const expected = '--a--db--ec--f--g---h-|'; expectObservable(e1.pipe(mergeAll(2))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge one hot Observable at a time with parameter concurrency=1', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const x = hot(' ---a---b---c---| '); const xsubs = ' --^------------! '; const y = hot(' -------------d---e---f---|'); const ysubs = ' ---------------^---------!'; const e1 = hot(' --x--y--| ', { x: x, y: y }); const e1subs = ' ^-------! '; const expected = '---a---b---c-----e---f---|'; expectObservable(e1.pipe(mergeAll(1))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge two hot Observables at a time with parameter concurrency=2', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const x = hot(' i--a---b---c---| '); const xsubs = ' --^------------! '; const y = hot(' -i-i--d---e---f---| '); const ysubs = ' -----^------------! '; const z = hot(' --i--i--i--i-----g---h-|'); const zsubs = ' ---------------^-------!'; const e1 = hot(' --x--y--z--| ', { x: x, y: y, z: z }); const e1subs = ' ^----------! '; const expected = '---a--db--ec--f--g---h-|'; expectObservable(e1.pipe(mergeAll(2))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle merging a hot observable of observables, outer unsubscribed early', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' a---b---c---| '); const xsubs = ' --^---------! '; const y = cold(' d---e---f---|'); const ysubs = ' -----^------! '; const e1 = hot(' --x--y--| ', { x: x, y: y }); const e1subs = ' ^-------! '; const expected = '--a--db--ec-- '; const unsub = ' ------------! '; expectObservable(e1.pipe(mergeAll()), unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' a---b---c---| '); const xsubs = ' --^---------! '; const y = cold(' d---e---f---|'); const ysubs = ' -----^------! '; const e1 = hot(' --x--y--| ', { x: x, y: y }); const e1subs = ' ^-------! '; const expected = '--a--db--ec-- '; const unsub = ' ------------! '; const result = e1.pipe( mergeMap((x) => of(x)), mergeAll(), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge parallel emissions', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----a----b----c---|'); const xsubs = ' --^-----------------!'; const y = cold(' -d----e----f---|'); const ysubs = ' -----^--------------!'; const e1 = hot(' --x--y--| ', { x: x, y: y }); const e1subs = ' ^-------! '; const expected = '------(ad)-(be)-(cf)|'; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge empty and empty', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const xsubs = ' --(^!) '; const y = cold(' | '); const ysubs = ' -----(^!)'; const e1 = hot(' --x--y--|', { x: x, y: y }); const e1subs = ' ^-------!'; const expected = '--------|'; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge three empties', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const xsubs = ' --(^!) '; const y = cold(' | '); const ysubs = ' -----(^!) '; const z = cold(' | '); const zsubs = ' -------(^!) '; const e1 = hot(' --x--y-z---|', { x: x, y: y, z: z }); const e1subs = ' ^----------!'; const expected = '-----------|'; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge never and empty', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' - '); const xsubs = ' --^ '; const y = cold(' | '); const ysubs = ' -----(^!)'; const e1 = hot(' --x--y--|', { x: x, y: y }); const e1subs = ' ^-------!'; const expected = '---------'; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge never and never', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' - '); const xsubs = ' --^ '; const y = cold(' - '); const ysubs = ' -----^ '; const e1 = hot(' --x--y--|', { x: x, y: y }); const e1subs = ' ^-------!'; const expected = '---------'; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge empty and throw', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const xsubs = ' --(^!) '; const y = cold(' # '); const ysubs = ' -----(^!)'; const e1 = hot(' --x--y--|', { x: x, y: y }); const e1subs = ' ^----! '; const expected = '-----# '; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge never and throw', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' - '); const xsubs = ' --^--! '; const y = cold(' # '); const ysubs = ' -----(^!)'; const e1 = hot(' --x--y--|', { x: x, y: y }); const e1subs = ' ^----! '; const expected = '-----# '; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge empty and eventual error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const xsubs = ' --(^!) '; const y = cold(' ------#'); const ysubs = ' -----^-----!'; const e1 = hot(' --x--y--| ', { x: x, y: y }); const e1subs = ' ^-------! '; const expected = '-----------#'; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge never and eventual error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' - '); const xsubs = ' --^--------!'; const y = cold(' ------#'); const ysubs = ' -----^-----!'; const e1 = hot(' --x--y--| ', { x: x, y: y }); const e1subs = ' ^-------! '; const expected = '-----------#'; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take an empty source and return empty too', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take a never source and return never too', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take a throw source and return throw too', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle merging a hot observable of non-overlapped observables', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' a-b---------| '); const xsubs = ' --^-----------! '; const y = cold(' c-d-e-f-| '); const ysubs = ' ------------^-------! '; const z = cold(' g-h-i-j-k-|'); const zsubs = ' ---------------------^---------!'; const e1 = hot(' --x---------y--------z--------| ', { x: x, y: y, z: z }); const e1subs = ' ^-----------------------------! '; const expected = '--a-b-------c-d-e-f--g-h-i-j-k-|'; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if inner observable raises error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' a-b---------| '); const xsubs = ' --^-----------! '; const y = cold(' c-d-e-f-# '); const ysubs = ' ------------^-------! '; const z = cold(' g-h-i-j-k-|'); const zsubs: string[] = []; const e1 = hot(' --x---------y--------z--------| ', { x: x, y: y, z: z }); const e1subs = ' ^-------------------! '; const expected = '--a-b-------c-d-e-f-# '; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if outer observable raises error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' a-b---------| '); const xsubs = ' --^-----------! '; const y = cold(' c-d-e-f-|'); const ysubs = ' ------------^---! '; const e1 = hot(' --x---------y---# ', { x: x, y: y }); const e1subs = ' ^---------------! '; const expected = '--a-b-------c-d-# '; expectObservable(e1.pipe(mergeAll())).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should merge all promises in an observable', (done) => { const e1 = from([ new Promise((res) => { res('a'); }), new Promise((res) => { res('b'); }), new Promise((res) => { res('c'); }), new Promise((res) => { res('d'); }), ]); const expected = ['a', 'b', 'c', 'd']; const res: string[] = []; e1.pipe(mergeAll()).subscribe({ next: (x) => { res.push(x); }, error: () => { done(new Error('should not be called')); }, complete: () => { expect(res).to.deep.equal(expected); done(); }, }); }); it('should raise error when promise rejects', (done) => { const error = 'error'; const e1 = from([ new Promise((res) => { res('a'); }), new Promise((res: any, rej) => { rej(error); }), new Promise((res) => { res('c'); }), new Promise((res) => { res('d'); }), ]); const res: string[] = []; e1.pipe(mergeAll()).subscribe({ next: (x) => { res.push(x); }, error: (err) => { expect(res.length).to.equal(1); expect(err).to.equal('error'); done(); }, complete: () => { done(new Error('should not be called')); }, }); }); it('should finalize generators when merged if the subscription ends', () => { const iterable = { finalized: false, next() { return { value: 'duck', done: false }; }, return() { this.finalized = true; }, [Symbol.iterator]() { return this; }, }; const results: string[] = []; const iterableObservable = from(iterable as any); of(iterableObservable) .pipe(mergeAll(), take(3)) .subscribe({ next: (x) => results.push(x), complete: () => results.push('GOOSE!') }); expect(results).to.deep.equal(['duck', 'duck', 'duck', 'GOOSE!']); expect(iterable.finalized).to.be.true; }); it('should merge two observables', (done) => { const a = of(1, 2, 3); const b = of(4, 5, 6, 7, 8); const r = [1, 2, 3, 4, 5, 6, 7, 8]; of(a, b) .pipe(mergeAll()) .subscribe({ next: (val) => { expect(val).to.equal(r.shift()); }, complete: done, }); }); it('should merge two immediately-scheduled observables', (done) => { const a = of(1, 2, 3, queueScheduler); const b = of(4, 5, 6, 7, 8, queueScheduler); const r = [1, 2, 4, 3, 5, 6, 7, 8]; of(a, b, queueScheduler) .pipe(mergeAll()) .subscribe({ next: (val) => { expect(val).to.equal(r.shift()); }, complete: done, }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); of(synchronousObservable) .pipe(mergeAll(), take(3)) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/mergeMap-spec.ts000066400000000000000000001276301431412030200205240ustar00rootroot00000000000000import { expect } from 'chai'; import { mergeMap, map, delay, take } from 'rxjs/operators'; import { asapScheduler, defer, Observable, from, of, timer } from 'rxjs'; import { asInteropObservable } from '../helpers/interop-helper'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {mergeMap} */ describe('mergeMap', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should map-and-flatten each item to an Observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const values = { x: 10, y: 30, z: 50 }; const x = cold(' x-x-x| ', values); // y-y-y| // z-z-z| const xsubs = [ ' --^----! ', ' --------^----! ', ' -----------^----! ', ]; const e1 = hot(' --1-----3--5--------|'); const e1subs = ' ^-------------------!'; const expected = '--x-x-x-y-yzyz-z----|'; const result = e1.pipe(mergeMap((value) => x.pipe(map((i) => i * +value)))); expectObservable(result).toBe(expected, values); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support the deprecated resultSelector', () => { const results: Array = []; of(1, 2, 3) .pipe( mergeMap( (x) => of(x, x + 1, x + 2), (a, b, i, ii) => [a, b, i, ii] ) ) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([ [1, 1, 0, 0], [1, 2, 0, 1], [1, 3, 0, 2], [2, 2, 1, 0], [2, 3, 1, 1], [2, 4, 1, 2], [3, 3, 2, 0], [3, 4, 2, 1], [3, 5, 2, 2], ]); }, }); }); it('should support a void resultSelector (still deprecated)', () => { const results: number[] = []; of(1, 2, 3) .pipe(mergeMap((x) => of(x, x + 1, x + 2), void 0)) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([1, 2, 3, 2, 3, 4, 3, 4, 5]); }, }); }); it('should support a void resultSelector (still deprecated) and concurrency limit', () => { const results: number[] = []; of(1, 2, 3) .pipe(mergeMap((x) => of(x, x + 1, x + 2), void 0, 1)) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([1, 2, 3, 2, 3, 4, 3, 4, 5]); }, }); }); it('should mergeMap many regular interval inners', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' ----a---a---a---(a|) '); const asubs = ' ^---------------! '; const b = cold(' ----b---b---(b|) '); const bsubs = ' ----^-----------! '; const c = cold(' ----c---c---c---c---(c|)'); const csubs = ' ----------------^-------------------! '; const d = cold(' ----(d|) '); const dsubs = ' ------------------------^---! '; const e1 = hot(' a---b-----------c-------d-------| '); const e1subs = ' ^-------------------------------! '; const expected = '----a---(ab)(ab)(ab)c---c---(cd)c---(c|)'; const observableLookup: Record> = { a: a, b: b, c: c, d: d }; const source = e1.pipe(mergeMap((value) => observableLookup[value])); expectObservable(source).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map values to constant resolved promises and merge', (done) => { const source = from([4, 3, 2, 1]); const project = () => from(Promise.resolve(42)); const results: number[] = []; source.pipe(mergeMap(project)).subscribe({ next: (x) => { results.push(x); }, error: (err) => { done(new Error('Subscriber error handler not supposed to be called.')); }, complete: () => { expect(results).to.deep.equal([42, 42, 42, 42]); done(); }, }); }); it('should map values to constant rejected promises and merge', (done) => { const source = from([4, 3, 2, 1]); const project = () => from(Promise.reject(42)); source.pipe(mergeMap(project)).subscribe({ next: (x) => { done(new Error('Subscriber next handler not supposed to be called.')); }, error: (err) => { expect(err).to.equal(42); done(); }, complete: () => { done(new Error('Subscriber complete handler not supposed to be called.')); }, }); }); it('should map values to resolved promises and merge', (done) => { const source = from([4, 3, 2, 1]); const project = (value: number, index: number) => from(Promise.resolve(value + index)); const results: number[] = []; source.pipe(mergeMap(project)).subscribe({ next: (x) => { results.push(x); }, error: (err) => { done(new Error('Subscriber error handler not supposed to be called.')); }, complete: () => { expect(results).to.deep.equal([4, 4, 4, 4]); done(); }, }); }); it('should map values to rejected promises and merge', (done) => { const source = from([4, 3, 2, 1]); const project = (value: number, index: number) => from(Promise.reject('' + value + '-' + index)); source.pipe(mergeMap(project)).subscribe({ next: (x) => { done(new Error('Subscriber next handler not supposed to be called.')); }, error: (err) => { expect(err).to.equal('4-0'); done(); }, complete: () => { done(new Error('Subscriber complete handler not supposed to be called.')); }, }); }); it('should mergeMap many outer values to many inner values', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l---| // ----i---j---k---l---| const xsubs = [ ' -^-------------------! ', ' ---------^-------------------! ', ' -----------------^-------------------! ', ' -------------------------^-------------------!', ]; const e1 = hot(' -a-------b-------c-------d-------| '); const e1subs = ' ^--------------------------------! '; const expected = '-----i---j---(ki)(lj)(ki)(lj)(ki)(lj)k---l---|'; const result = e1.pipe(mergeMap(() => x)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many outer to many inner, complete late', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l---| // ----i---j---k---l---| const xsubs = [ ' -^-------------------! ', ' ---------^-------------------! ', ' -----------------^-------------------! ', ' -------------------------^-------------------! ', ]; const e1 = hot(' -a-------b-------c-------d-----------------------|'); const e1subs = ' ^------------------------------------------------!'; const expected = '-----i---j---(ki)(lj)(ki)(lj)(ki)(lj)k---l-------|'; const result = e1.pipe(mergeMap(() => x)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many outer to many inner, outer never completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l---| // ----i---j---k---l---| // ----i---j---k---l---| // ----i-- const xsubs = [ ' -^-------------------! ', ' ---------^-------------------! ', ' -----------------^-------------------! ', ' -------------------------^-------------------! ', ' ---------------------------------^-------------------! ', ' -------------------------------------------------^-----!', ]; const e1 = hot(' -a-------b-------c-------d-------e---------------f------'); const e1subs = ' ^------------------------------------------------------!'; const expected = '-----i---j---(ki)(lj)(ki)(lj)(ki)(lj)(ki)(lj)k---l---i--'; const unsub = ' -------------------------------------------------------!'; const source = e1.pipe(mergeMap(() => x)); expectObservable(source, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l---| // ----i---j---k---l---| // ----i---j---k---l---| // ----i-- const xsubs = [ ' -^-------------------! ', ' ---------^-------------------! ', ' -----------------^-------------------! ', ' -------------------------^-------------------! ', ' ---------------------------------^-------------------! ', ' -------------------------------------------------^-----!', ]; const e1 = hot(' -a-------b-------c-------d-------e---------------f------'); const e1subs = ' ^------------------------------------------------------!'; const expected = '-----i---j---(ki)(lj)(ki)(lj)(ki)(lj)(ki)(lj)k---l---i--'; const unsub = ' -------------------------------------------------------!'; const source = e1.pipe( map((x) => x), mergeMap(() => x), map((x) => x) ); expectObservable(source, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains with interop inners when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------^-----------! '; const y = cold(' ---f---g---h---i--|'); const ysubs = ' -------------------^-! '; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^--------------------! '; const expected = '-----------a--b--c--d- '; const unsub = ' ---------------------! '; const observableLookup: Record> = { x: x, y: y }; // This test manipulates the observable to make it look like an interop // observable - an observable from a foreign library. Interop subscribers // are treated differently: they are wrapped in a safe subscriber. This // test ensures that unsubscriptions are chained all the way to the // interop subscriber. const result = e1.pipe( mergeMap((x) => of(x)), mergeMap((value) => asInteropObservable(observableLookup[value])), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many outer to many inner, inner never completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l-------------------------'); // ----i---j---k---l----------------- // ----i---j---k---l--------- // ----i---j---k---l- const xsubs = [ ' -^-----------------------------------------', ' ---------^---------------------------------', ' -----------------^-------------------------', ' -------------------------^-----------------', ]; const e1 = hot(' -a-------b-------c-------d-------| '); const e1subs = ' ^--------------------------------! '; const expected = '-----i---j---(ki)(lj)(ki)(lj)(ki)(lj)k---l-'; const result = e1.pipe(mergeMap(() => x)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many outer to many inner, and inner throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l-------# '); // ----i---j---k---l // ----i---j // - const xsubs = [ ' -^-----------------------! ', ' ---------^---------------! ', ' -----------------^-------! ', ' -------------------------(^!)', ]; const e1 = hot(' -a-------b-------c-------d '); const e1subs = ' ^------------------------! '; const expected = '-----i---j---(ki)(lj)(ki)# '; const result = e1.pipe(mergeMap(() => x)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many outer to many inner, and outer throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l // ----i---j const xsubs = [ ' -^-------------------! ', ' ---------^-------------------! ', ' -----------------^---------------!', ' -------------------------^-------!', ]; const e1 = hot(' -a-------b-------c-------d-------#'); const e1subs = ' ^--------------------------------!'; const expected = '-----i---j---(ki)(lj)(ki)(lj)(ki)#'; const result = e1.pipe(mergeMap(() => x)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many outer to many inner, both inner and outer throw', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---# '); // ----i---j---k // ----i const xsubs = [ ' -^-------------------! ', ' ---------^-----------! ', ' -----------------^---! ', ]; const e1 = hot(' -a-------b-------c-------d-------#'); const e1subs = ' ^--------------------! '; const expected = '-----i---j---(ki)(lj)# '; const result = e1.pipe(mergeMap(() => x)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap to many cold Observable, with parameter concurrency=1', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l---| const xsubs = [ ' -^-------------------! ', ' ---------------------^-------------------! ', ' -----------------------------------------^-------------------!', ]; const e1 = hot(' -a-------b-------c---| '); const e1subs = ' ^--------------------! '; const expected = '-----i---j---k---l-------i---j---k---l-------i---j---k---l---|'; const project = () => x; const result = e1.pipe(mergeMap(project, 1)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap to many cold Observable, with parameter concurrency=2', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l---| const xsubs = [ ' -^-------------------! ', ' ---------^-------------------! ', ' ---------------------^-------------------!', ]; const e1 = hot(' -a-------b-------c---| '); const e1subs = ' ^--------------------! '; const expected = '-----i---j---(ki)(lj)k---(li)j---k---l---|'; const project = () => x; const result = e1.pipe(mergeMap(project, 2)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap to many hot Observable, with parameter concurrency=1', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' x----i---j---k---l---| '); const asubs = ' -^-------------------! '; const b = hot(' -x-x-xxxx-x-x-xxxxx-x----i---j---k---l---| '); const bsubs = ' ---------------------^-------------------! '; const c = hot(' x-xxxx---x-x-x-x-x-xx--x--x-x--x--xxxx-x-----i---j---k---l---|'); const csubs = ' -----------------------------------------^-------------------!'; const e1 = hot(' -a-------b-------c---| '); const e1subs = ' ^--------------------! '; const expected = '-----i---j---k---l-------i---j---k---l-------i---j---k---l---|'; const inners: Record> = { a: a, b: b, c: c }; const project = (x: string) => inners[x]; const result = e1.pipe(mergeMap(project, 1)); expectObservable(result).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap to many hot Observable, with parameter concurrency=2', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const x = hot(' x----i---j---k---l---| '); const xsubs = ' -^-------------------! '; const y = hot(' -x-x-xxxx----i---j---k---l---| '); const ysubs = ' ---------^-------------------! '; const z = hot(' x-xxxx---x-x-x-x-x-xx----i---j---k---l---|'); const zsubs = ' ---------------------^-------------------!'; const e1 = hot(' -a-------b-------c---| '); const e1subs = ' ^--------------------! '; const expected = '-----i---j---(ki)(lj)k---(li)j---k---l---|'; const inners: Record> = { a: x, b: y, c: z }; const project = (x: string) => inners[x]; const result = e1.pipe(mergeMap(project, 2)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many complex, where all inners are finite', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5------------------6-| '); const csubs = ' --^------------------------------! '; const d = cold(' -----------2--3| '); const dsubs = ' --------^--------------! '; const e = cold(' -1--------2--3-----4--5--------|'); const esubs = ' ---------------^------------------------------!'; const f = cold(' --| '); const fsubs = ' --------------------------------^-! '; const g = cold(' ---1-2| '); const gsubs = ' --------------------------------------^-----! '; const e1 = hot('-a-b--^-c-----d------e----------------f-----g| '); const e1subs = ' ^--------------------------------------! '; const expected = ' ---2--3--4--5---1--2--3--2--3--6--4--5---1-2--|'; const observableLookup: Record> = { a: a, b: b, c: c, d: d, e: e, f: f, g: g }; const result = e1.pipe(mergeMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many complex, all inners finite except one', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5------------------6-| '); const csubs = ' --^------------------------------! '; const d = cold(' -----------2--3- '); const dsubs = ' --------^--------------- '; const e = cold(' -1--------2--3-----4--5--------|'); const esubs = ' ---------------^------------------------------!'; const f = cold(' --| '); const fsubs = ' --------------------------------^-! '; const g = cold(' ---1-2| '); const gsubs = ' --------------------------------------^-----! '; const e1 = hot('-a-b--^-c-----d------e----------------f-----g| '); const e1subs = ' ^--------------------------------------! '; const expected = ' ---2--3--4--5---1--2--3--2--3--6--4--5---1-2---'; const observableLookup: Record> = { a: a, b: b, c: c, d: d, e: e, f: f, g: g }; const result = e1.pipe(mergeMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many complex, inners finite, outer does not complete', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5------------------6-| '); const csubs = ' --^------------------------------! '; const d = cold(' -----------2--3| '); const dsubs = ' --------^--------------! '; const e = cold(' -1--------2--3-----4--5--------|'); const esubs = ' ---------------^------------------------------!'; const f = cold(' --| '); const fsubs = ' --------------------------------^-! '; const g = cold(' ---1-2| '); const gsubs = ' --------------------------------------^-----! '; const e1 = hot('-a-b--^-c-----d------e----------------f-----g--------'); const e1subs = ' ^----------------------------------------------'; const expected = ' ---2--3--4--5---1--2--3--2--3--6--4--5---1-2---'; const observableLookup: Record> = { a: a, b: b, c: c, d: d, e: e, f: f, g: g }; const result = e1.pipe(mergeMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many complex, all inners finite, and outer throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5------------------6-| '); const csubs = ' --^------------------------------! '; const d = cold(' -----------2--3| '); const dsubs = ' --------^--------------! '; const e = cold(' -1--------2--3-----4--5--------|'); const esubs = ' ---------------^-----------------------! '; const f = cold(' --| '); const fsubs = ' --------------------------------^-! '; const g = cold(' ---1-2| '); const gsubs = ' --------------------------------------^! '; const e1 = hot('-a-b--^-c-----d------e----------------f-----g# '); const e1subs = ' ^--------------------------------------! '; const expected = ' ---2--3--4--5---1--2--3--2--3--6--4--5-# '; const observableLookup: Record> = { a: a, b: b, c: c, d: d, e: e, f: f, g: g }; const result = e1.pipe(mergeMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many complex, all inners complete except one throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5------------------6-# '); const csubs = ' --^------------------------------! '; const d = cold(' -----------2--3| '); const dsubs = ' --------^--------------! '; const e = cold(' -1--------2--3-----4--5--------|'); const esubs = ' ---------------^-----------------! '; const f = cold(' --| '); const fsubs = ' --------------------------------^! '; const g = cold(' ---1-2| '); const gsubs: string[] = []; const e1 = hot('-a-b--^-c-----d------e----------------f-----g| '); const e1subs = ' ^--------------------------------! '; const expected = ' ---2--3--4--5---1--2--3--2--3--6-# '; const observableLookup: Record> = { a: a, b: b, c: c, d: d, e: e, f: f, g: g }; const result = e1.pipe(mergeMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many complex, all inners finite, outer is unsubscribed', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5------------------6-| '); const csubs = ' --^---------------------------! '; const d = cold(' -----------2--3| '); const dsubs = ' --------^--------------! '; const e = cold(' -1--------2--3-----4--5--------|'); const esubs = ' ---------------^--------------! '; const f = cold(' --| '); const fsubs: string[] = []; const g = cold(' ---1-2| '); const gsubs: string[] = []; const e1 = hot('-a-b--^-c-----d------e----------------f-----g|'); const e1subs = ' ^-----------------------------! '; const expected = ' ---2--3--4--5---1--2--3--2--3-- '; const unsub = ' ------------------------------! '; const observableLookup: Record> = { a: a, b: b, c: c, d: d, e: e, f: f, g: g }; const source = e1.pipe(mergeMap((value) => observableLookup[value])); expectObservable(source, unsub).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many complex, all inners finite, project throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' -# '); const asubs: string[] = []; const b = cold(' -# '); const bsubs: string[] = []; const c = cold(' -2--3--4--5------------------6-| '); const csubs = ' --^------------! '; const d = cold(' -----------2--3| '); const dsubs = ' --------^------! '; const e = cold(' -1--------2--3-----4--5--------|'); const esubs: string[] = []; const f = cold(' --| '); const fsubs: string[] = []; const g = cold(' ---1-2| '); const gsubs: string[] = []; const e1 = hot('-a-b--^-c-----d------e----------------f-----g| '); const e1subs = ' ^--------------! '; const expected = ' ---2--3--4--5--# '; const observableLookup: Record> = { a: a, b: b, c: c, d: d, e: e, f: f, g: g }; const source = e1.pipe( mergeMap((value) => { if (value === 'e') { throw 'error'; } return observableLookup[value]; }) ); expectObservable(source).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); expectSubscriptions(c.subscriptions).toBe(csubs); expectSubscriptions(d.subscriptions).toBe(dsubs); expectSubscriptions(e.subscriptions).toBe(esubs); expectSubscriptions(f.subscriptions).toBe(fsubs); expectSubscriptions(g.subscriptions).toBe(gsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); function arrayRepeat(value: T, times: number): T[] { const results: T[] = []; for (let i = 0; i < times; i++) { results.push(value); } return results; } it('should mergeMap many outer to an array for each value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' 2-----4--------3--------2-------|'); const e1subs = ' ^-------------------------------!'; const expected = '(22)--(4444)---(333)----(22)----|'; const source = e1.pipe(mergeMap((value) => arrayRepeat(value, +value))); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many outer to inner arrays, and outer throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' 2-----4--------3--------2-------#'); const e1subs = ' ^-------------------------------!'; const expected = '(22)--(4444)---(333)----(22)----#'; const source = e1.pipe(mergeMap((value) => arrayRepeat(value, +value))); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many outer to inner arrays, outer gets unsubscribed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' 2-----4--------3--------2-------|'); const e1subs = ' ^------------! '; const expected = '(22)--(4444)-- '; const unsub = ' -------------! '; const source = e1.pipe(mergeMap((value) => arrayRepeat(value, +value))); expectObservable(source, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMap many outer to inner arrays, project throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' 2-----4--------3--------2-------|'); const e1subs = ' ^--------------! '; const expected = '(22)--(4444)---# '; const source = e1.pipe( mergeMap((value) => { if (value === '3') { throw 'error'; } return arrayRepeat(value, +value); }) ); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map and flatten', () => { const source = of(1, 2, 3, 4).pipe(mergeMap((x) => of(x + '!'))); const expected = ['1!', '2!', '3!', '4!']; let completed = false; source.subscribe({ next: (x) => { expect(x).to.equal(expected.shift()); }, complete: () => { expect(expected.length).to.equal(0); completed = true; }, }); expect(completed).to.be.true; }); it('should map and flatten an Array', () => { const source = of(1, 2, 3, 4).pipe(mergeMap((x): any => [x + '!'])); const expected = ['1!', '2!', '3!', '4!']; let completed = false; source.subscribe({ next: (x) => { expect(x).to.equal(expected.shift()); }, complete: () => { expect(expected.length).to.equal(0); completed = true; }, }); expect(completed).to.be.true; }); it('should support nested merges', (done) => { // Added as a failing test when investigating: // https://github.com/ReactiveX/rxjs/issues/4071 const results: (number | string)[] = []; of(1) .pipe(mergeMap(() => defer(() => of(2, asapScheduler)).pipe(mergeMap(() => defer(() => of(3, asapScheduler)))))) .subscribe({ next(value: any) { results.push(value); }, complete() { results.push('done'); }, }); setTimeout(() => { expect(results).to.deep.equal([3, 'done']); done(); }, 0); }); it('should support nested merges with promises', (done) => { // Added as a failing test when investigating: // https://github.com/ReactiveX/rxjs/issues/4071 const results: (number | string)[] = []; of(1) .pipe(mergeMap(() => from(Promise.resolve(2)).pipe(mergeMap(() => Promise.resolve(3))))) .subscribe({ next(value) { results.push(value); }, complete() { results.push('done'); }, }); setTimeout(() => { expect(results).to.deep.equal([3, 'done']); done(); }, 0); }); it('should support wrapped sources', (done) => { // Added as a failing test when investigating: // https://github.com/ReactiveX/rxjs/issues/4095 const results: (number | string)[] = []; const wrapped = new Observable((subscriber) => { const subscription = timer(0, asapScheduler).subscribe(subscriber); return () => subscription.unsubscribe(); }); wrapped.pipe(mergeMap(() => timer(0, asapScheduler))).subscribe({ next(value) { results.push(value); }, complete() { results.push('done'); }, }); setTimeout(() => { expect(results).to.deep.equal([0, 'done']); done(); }, 0); }); // NOTE: From https://github.com/ReactiveX/rxjs/issues/5436 it('should properly handle errors from iterables that are processed after some async', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const noXError = new Error('we do not allow x'); const e1 = cold(' -----a------------b-----|', { a: ['o', 'o', 'o'], b: ['o', 'x', 'o'] }); const e1subs = ' ^-----------------! '; const expected = '-----(ooo)--------(o#) '; const iterable = function* (data: string[]) { for (const d of data) { if (d === 'x') { throw noXError; } yield d; } }; const result = e1.pipe(mergeMap((x) => of(x).pipe(delay(0), mergeMap(iterable)))); expectObservable(result).toBe(expected, undefined, noXError); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( mergeMap((value) => of(value)), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/mergeMapTo-spec.ts000066400000000000000000000465061431412030200210310ustar00rootroot00000000000000import { expect } from 'chai'; import { TestScheduler } from 'rxjs/testing'; import { mergeMapTo, map, take } from 'rxjs/operators'; import { from, of, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {mergeMapTo} */ describe('mergeMapTo', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should map-and-flatten each item to an Observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' x-x-x| '); // x-x-x| // x-x-x| // prettier-ignore const xsubs = [ ' --^----! ', ' --------^----! ', ' -----------^----! ', ]; const e1 = hot(' --1-----3--5-------|'); const e1subs = ' ^------------------!'; const expected = '--x-x-x-x-xxxx-x---|'; const result = e1.pipe(mergeMapTo(x)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support the deprecated resultSelector', () => { const results: Array = []; of(1, 2, 3) .pipe(mergeMapTo(of(4, 5, 6), (a, b, i, ii) => [a, b, i, ii])) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([ [1, 4, 0, 0], [1, 5, 0, 1], [1, 6, 0, 2], [2, 4, 1, 0], [2, 5, 1, 1], [2, 6, 1, 2], [3, 4, 2, 0], [3, 5, 2, 1], [3, 6, 2, 2], ]); }, }); }); it('should support a void resultSelector (still deprecated)', () => { const results: number[] = []; of(1, 2, 3) .pipe(mergeMapTo(of(4, 5, 6), void 0)) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([4, 5, 6, 4, 5, 6, 4, 5, 6]); }, }); }); it('should mergeMapTo many regular interval inners', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----1---2---3---(4|) '); // ----1---2---3---(4|) // ----1---2---3---(4|) // ----1---2---3---(4|) const xsubs = [ ' ^---------------! ', ' ----^---------------! ', ' ----------------^---------------! ', ' ------------------------^---------------! ', ]; const e1 = hot(' a---b-----------c-------d-------| '); const e1subs = ' ^-------------------------------! '; const expected = '----1---(21)(32)(43)(41)2---(31)(42)3---(4|)'; const result = e1.pipe(mergeMapTo(x)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map values to constant resolved promises and merge', (done) => { const source = from([4, 3, 2, 1]); const results: number[] = []; source.pipe(mergeMapTo(from(Promise.resolve(42)))).subscribe({ next: (x) => { results.push(x); }, error: () => { done(new Error('Subscriber error handler not supposed to be called.')); }, complete: () => { expect(results).to.deep.equal([42, 42, 42, 42]); done(); }, }); }); it('should map values to constant rejected promises and merge', (done) => { const source = from([4, 3, 2, 1]); source.pipe(mergeMapTo(from(Promise.reject(42)))).subscribe({ next: () => { done(new Error('Subscriber next handler not supposed to be called.')); }, error: (err) => { expect(err).to.equal(42); done(); }, complete: () => { done(new Error('Subscriber complete handler not supposed to be called.')); }, }); }); it('should mergeMapTo many outer values to many inner values', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l---| // ----i---j---k---l---| const xsubs = [ ' -^-------------------! ', ' ---------^-------------------! ', ' -----------------^-------------------! ', ' -------------------------^-------------------!', ]; const e1 = hot(' -a-------b-------c-------d-------| '); const e1subs = ' ^--------------------------------! '; const expected = '-----i---j---(ki)(lj)(ki)(lj)(ki)(lj)k---l---|'; expectObservable(e1.pipe(mergeMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMapTo many outer to many inner, complete late', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l---| // ----i---j---k---l---| const xsubs = [ ' -^-------------------! ', ' ---------^-------------------! ', ' -----------------^-------------------! ', ' -------------------------^-------------------! ', ]; const e1 = hot(' -a-------b-------c-------d-----------------------|'); const e1subs = ' ^------------------------------------------------!'; const expected = '-----i---j---(ki)(lj)(ki)(lj)(ki)(lj)k---l-------|'; expectObservable(e1.pipe(mergeMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMapTo many outer to many inner, outer never completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l---| // ----i---j---k---l---| // ----i---j---k---l---| // ----i-- const xsubs = [ ' -^-------------------! ', ' ---------^-------------------! ', ' -----------------^-------------------! ', ' -------------------------^-------------------! ', ' ---------------------------------^-------------------! ', ' -------------------------------------------------^-----!', ]; const e1 = hot(' -a-------b-------c-------d-------e---------------f------'); const e1subs = ' ^------------------------------------------------------!'; const expected = '-----i---j---(ki)(lj)(ki)(lj)(ki)(lj)(ki)(lj)k---l---i-'; const unsub = ' -------------------------------------------------------!'; const result = e1.pipe(mergeMapTo(x)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l---| // ----i---j---k---l---| // ----i---j---k---l---| // ----i-- const xsubs = [ ' -^-------------------! ', ' ---------^-------------------! ', ' -----------------^-------------------! ', ' -------------------------^-------------------! ', ' ---------------------------------^-------------------! ', ' -------------------------------------------------^-----!', ]; const e1 = hot(' -a-------b-------c-------d-------e---------------f------'); const e1subs = ' ^------------------------------------------------------!'; const expected = '-----i---j---(ki)(lj)(ki)(lj)(ki)(lj)(ki)(lj)k---l---i-'; const unsub = ' -------------------------------------------------------!'; const result = e1.pipe( map((x) => x), mergeMapTo(x), map((x) => x) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMapTo many outer to many inner, inner never completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l- '); // ----i---j---k---l- // ----i---j---k---l- // ----i---j---k---l- const xsubs = [ ' -^-----------------------------------------', ' ---------^---------------------------------', ' -----------------^-------------------------', ' -------------------------^-----------------', ]; const e1 = hot(' -a-------b-------c-------d-------| '); const e1subs = ' ^--------------------------------! '; const expected = '-----i---j---(ki)(lj)(ki)(lj)(ki)(lj)k---l-'; expectObservable(e1.pipe(mergeMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMapTo many outer to many inner, and inner throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l-------# '); // ----i---j---k---l-------# // ----i---j---k---l const xsubs = [ ' -^-----------------------! ', ' ---------^---------------! ', ' -----------------^-------! ', ' -------------------------(^!) ', ]; const e1 = hot(' -a-------b-------c-------d-------|'); const e1subs = ' ^------------------------! '; const expected = '-----i---j---(ki)(lj)(ki)# '; expectObservable(e1.pipe(mergeMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMapTo many outer to many inner, and outer throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l // ----i---j const xsubs = [ ' -^-------------------! ', ' ---------^-------------------! ', ' -----------------^---------------!', ' -------------------------^-------!', ]; const e1 = hot(' -a-------b-------c-------d-------#'); const e1subs = ' ^--------------------------------!'; const expected = '-----i---j---(ki)(lj)(ki)(lj)(ki)#'; expectObservable(e1.pipe(mergeMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMapTo many outer to many inner, both inner and outer throw', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---# '); // ----i---j---k // ----i const xsubs = [ ' -^-------------------! ', ' ---------^-----------! ', ' -----------------^---! ', ]; const e1 = hot(' -a-------b-------c-------d-------#'); const e1subs = ' ^--------------------! '; const expected = '-----i---j---(ki)(lj)# '; expectObservable(e1.pipe(mergeMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMapTo many cold Observable, with parameter concurrency=1, without resultSelector', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l---| const xsubs = [ ' -^-------------------! ', ' ---------------------^-------------------! ', ' -----------------------------------------^-------------------!', ]; const e1 = hot(' -a-------b-------c---| '); const e1subs = ' ^--------------------! '; const expected = '-----i---j---k---l-------i---j---k---l-------i---j---k---l---|'; const result = e1.pipe(mergeMapTo(x, 1)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMapTo to many cold Observable, with parameter concurrency=2, without resultSelector', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' ----i---j---k---l---| '); // ----i---j---k---l---| // ----i---j---k---l---| const xsubs = [ ' -^-------------------! ', ' ---------^-------------------! ', ' ---------------------^-------------------!', ]; const e1 = hot(' -a-------b-------c---| '); const e1subs = ' ^--------------------! '; const expected = '-----i---j---(ki)(lj)k---(li)j---k---l---|'; const result = e1.pipe(mergeMapTo(x, 2)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMapTo many outer to arrays', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' 2-----4--------3--------2-------|'); const e1subs = ' ^-------------------------------!'; const expected = '(0123)(0123)---(0123)---(0123)--|'; const result = e1.pipe(mergeMapTo(['0', '1', '2', '3'])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMapTo many outer to inner arrays, and outer throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' 2-----4--------3--------2-------#'); const e1subs = ' ^-------------------------------!'; const expected = '(0123)(0123)---(0123)---(0123)--#'; const result = e1.pipe(mergeMapTo(['0', '1', '2', '3'])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeMapTo many outer to inner arrays, outer gets unsubscribed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' 2-----4--------3--------2-------|'); const e1subs = ' ^------------! '; const expected = '(0123)(0123)-- '; const unsub = ' -------------! '; const result = e1.pipe(mergeMapTo(['0', '1', '2', '3'])); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should map and flatten', () => { const source = of(1, 2, 3, 4).pipe(mergeMapTo(of('!'))); const expected = ['!', '!', '!', '!']; let completed = false; source.subscribe({ next: (x) => { expect(x).to.equal(expected.shift()); }, complete: () => { expect(expected.length).to.equal(0); completed = true; }, }); expect(completed).to.be.true; }); it('should map and flatten an Array', () => { const source = of(1, 2, 3, 4).pipe(mergeMapTo(['!'])); const expected = ['!', '!', '!', '!']; let completed = false; source.subscribe({ next: (x) => { expect(x).to.equal(expected.shift()); }, complete: () => { expect(expected.length).to.equal(0); completed = true; }, }); expect(completed).to.be.true; }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(mergeMapTo(of(0)), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/mergeScan-spec.ts000066400000000000000000000425731431412030200206750ustar00rootroot00000000000000import { TestScheduler } from 'rxjs/testing'; import { of, defer, EMPTY, NEVER, concat, throwError, Observable } from 'rxjs'; import { mergeScan, delay, mergeMap, takeWhile, startWith, take } from 'rxjs/operators'; import { expect } from 'chai'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {mergeScan} */ describe('mergeScan', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should mergeScan things', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^--------------------!'; const expected = ' ---u--v--w--x--y--z--|'; const values = { u: ['b'], v: ['b', 'c'], w: ['b', 'c', 'd'], x: ['b', 'c', 'd', 'e'], y: ['b', 'c', 'd', 'e', 'f'], z: ['b', 'c', 'd', 'e', 'f', 'g'], }; const result = e1.pipe(mergeScan((acc, x) => of(acc.concat(x)), [] as string[])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle errors', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--#'); const e1subs = ' ^-----------!'; const expected = ' ---u--v--w--#'; const values = { u: ['b'], v: ['b', 'c'], w: ['b', 'c', 'd'], }; const result = e1.pipe(mergeScan((acc, x) => of(acc.concat(x)), [] as string[])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeScan values and be able to asynchronously project them', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^--------------------!'; const t = time(' --| '); // t = 2 // --| // --| // --| // --| // --| const expected = ' -----u--v--w--x--y--z|'; const values = { u: ['b'], v: ['b', 'c'], w: ['b', 'c', 'd'], x: ['b', 'c', 'd', 'e'], y: ['b', 'c', 'd', 'e', 'f'], z: ['b', 'c', 'd', 'e', 'f', 'g'], }; const result = e1.pipe(mergeScan((acc, x) => of(acc.concat(x)).pipe(delay(t)), [] as string[])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not stop ongoing async projections when source completes', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--| '); const e1subs = ' ^--------------------! '; const t = time(' -----|'); // acc = []; x = 'b'; acc.concat(x) = ['b']; t = 5 // -----| acc = []; x = 'c'; acc.concat(x) = ['c'] // -----| acc = ['b']; x = 'd'; acc.concat(x) = ['b', 'd'] // -----| acc = ['c']; x = 'e'; acc.concat(x) = ['c', 'e'] // -----| acc = ['b', 'd']; x = 'f'; acc.concat(x) = ['b', 'd', 'f'] // -----| acc = ['c', 'e']; x = 'g'; acc.concat(x) = ['c', 'e', 'g'] const expected = ' --------u--v--w--x--y--(z|)'; const values = { u: ['b'], v: ['c'], w: ['b', 'd'], x: ['c', 'e'], y: ['b', 'd', 'f'], z: ['c', 'e', 'g'], }; const result = e1.pipe(mergeScan((acc, x) => of(acc.concat(x)).pipe(delay(t)), [] as string[])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should interrupt ongoing async projections when result is unsubscribed early', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^---------------! '; const t = time(' -----|'); // acc = []; x = 'b'; acc.concat(x) = ['b']; t = 5 // -----| acc = []; x = 'c'; acc.concat(x) = ['c'] // -----| acc = ['b']; x = 'd'; acc.concat(x) = ['b', 'd'] const expected = ' --------u--v--w-- '; const unsub = ' ----------------! '; const values = { u: ['b'], v: ['c'], w: ['b', 'd'], }; const result = e1.pipe(mergeScan((acc, x) => of(acc.concat(x)).pipe(delay(t)), [] as string[])); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^---------------! '; const t = time(' -----|'); // acc = []; x = 'b'; acc.concat(x) = ['b']; t = 5 // -----| acc = []; x = 'c'; acc.concat(x) = ['c'] // -----| acc = ['b']; x = 'd'; acc.concat(x) = ['b', 'd'] const expected = ' --------u--v--w-- '; const unsub = ' ----------------! '; const values = { u: ['b'], v: ['c'], w: ['b', 'd'], }; const result = e1.pipe( mergeMap((x) => of(x)), mergeScan((acc, x) => of(acc.concat(x)).pipe(delay(t)), [] as string[]), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = concat( defer(() => { sideEffects.push(1); return of(1); }), defer(() => { sideEffects.push(2); return of(2); }), defer(() => { sideEffects.push(3); return of(3); }) ); of(null) .pipe( mergeScan(() => synchronousObservable, 0), takeWhile((x) => x != 2) // unsubscribe at the second side-effect ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([1, 2]); }); it('should handle errors in the projection function', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^--------!'; const expected = ' ---u--v--#'; const values = { u: ['b'], v: ['b', 'c'], }; const result = e1.pipe( mergeScan((acc, x) => { if (x === 'd') { throw new Error('bad!'); } return of(acc.concat(x)); }, [] as string[]) ); expectObservable(result).toBe(expected, values, new Error('bad!')); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate errors from the projected Observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^--!'; const expected = ' ---#'; const result = e1.pipe(mergeScan(() => throwError(() => new Error('bad!')), [])); expectObservable(result).toBe(expected, undefined, new Error('bad!')); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an empty projected Observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^--------------------!'; const expected = ' ---------------------|'; const result = e1.pipe(mergeScan(() => EMPTY, [])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a never projected Observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^--------------------!'; const expected = ' ----------------------'; const result = e1.pipe(mergeScan(() => NEVER, [])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('handle empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; const result = e1.pipe(mergeScan((acc, x) => of(acc.concat(x)), [] as string[])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('handle never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; const result = e1.pipe(mergeScan((acc, x) => of(acc.concat(x)), [] as string[])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('handle throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; const result = e1.pipe(mergeScan((acc, x) => of(acc.concat(x)), [] as string[])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeScan unsubscription', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^-------------! '; const expected = ' ---u--v--w--x-- '; const unsub = ' --------------! '; const values = { u: ['b'], v: ['b', 'c'], w: ['b', 'c', 'd'], x: ['b', 'c', 'd', 'e'], }; const result = e1.pipe(mergeScan((acc, x) => of(acc.concat(x)), [] as string[])); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mergeScan projects cold Observable with single concurrency', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const inner = [ cold(' --d--e--f--| '), cold(' --g--h--i--| '), cold(' --j--k--l--|'), ]; const xsubs = ' --^----------! '; const ysubs = ' -------------^----------! '; const zsubs = ' ------------------------^----------!'; const e1 = hot(' --0--1--2--| '); const e1subs = ' ^----------! '; const expected = '--x-d--e--f--f-g--h--i--i-j--k--l--|'; const result = e1.pipe(mergeScan((acc, x) => inner[+x].pipe(startWith(acc)), 'x', 1)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner[0].subscriptions).toBe(xsubs); expectSubscriptions(inner[1].subscriptions).toBe(ysubs); expectSubscriptions(inner[2].subscriptions).toBe(zsubs); }); }); it('should not emit accumulator if inner completes without value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^--------------------!'; const expected = ' ---------------------|'; const result = e1.pipe(mergeScan(() => EMPTY, ['1'])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not emit accumulator if inner completes without value after source completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const x = cold(' -----| '); // -----| // prettier-ignore const xsubs = [ ' ---^----! ', ' ------^----!', ]; const e1 = hot('--a--^--b--c--| '); const e1subs = ' ^--------! '; const expected = ' -----------|'; const result = e1.pipe(mergeScan(() => x, '1')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(x.subscriptions).toBe(xsubs); }); }); it('should mergeScan projects hot Observable with single concurrency', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const inner = [ hot(' --d--e--f--| '), hot(' ----g----h----i----| '), hot(' ------j------k-------l------|'), ]; const xsubs = ' ---^-------! '; const ysubs = ' -----------^-------! '; const zsubs = ' -------------------^--------!'; const e1 = hot(' ---0---1---2---| '); const e1subs = ' ^--------------! '; const expected = '---x-e--f--f--i----i-l------|'; const result = e1.pipe(mergeScan((acc, x) => inner[+x].pipe(startWith(acc)), 'x', 1)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner[0].subscriptions).toBe(xsubs); expectSubscriptions(inner[1].subscriptions).toBe(ysubs); expectSubscriptions(inner[2].subscriptions).toBe(zsubs); }); }); it('should mergeScan projects cold Observable with dual concurrency', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const inner = [ cold(' ---d---e---f---| '), cold(' ---g---h---i---| '), cold(' ---j---k---l---|'), ]; const xsubs = ' ----^--------------! '; const ysubs = ' ---------^--------------! '; const zsubs = ' -------------------^--------------!'; const e1 = hot(' ----0----1----2----| '); const e1subs = ' ^------------------! '; const expected = '----x--d-d-eg--fh--hi-j---k---l---|'; const result = e1.pipe(mergeScan((acc, x) => inner[+x].pipe(startWith(acc)), 'x', 2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner[0].subscriptions).toBe(xsubs); expectSubscriptions(inner[1].subscriptions).toBe(ysubs); expectSubscriptions(inner[2].subscriptions).toBe(zsubs); }); }); it('should mergeScan projects hot Observable with dual concurrency', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const inner = [ hot(' --d--e--f-----| '), hot(' ----g----h------i----| '), hot(' ------j--------k-----l------|'), ]; const xsubs = ' ---^----------! '; const ysubs = ' -------^-------------! '; const zsubs = ' --------------^-------------!'; const e1 = hot(' ---0---1---2---| '); const e1subs = ' ^--------------! '; const expected = '---x-e-efh----hki----l------|'; const result = e1.pipe(mergeScan((acc, x) => inner[+x].pipe(startWith(acc)), 'x', 2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(inner[0].subscriptions).toBe(xsubs); expectSubscriptions(inner[1].subscriptions).toBe(ysubs); expectSubscriptions(inner[2].subscriptions).toBe(zsubs); }); }); it('should pass current index to accumulator', () => { const recorded: number[] = []; const e1 = of('a', 'b', 'c', 'd'); e1.pipe( mergeScan((acc, x, index) => { recorded.push(index); return of(index); }, 0) ).subscribe(); expect(recorded).to.deep.equal([0, 1, 2, 3]); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( mergeScan((acc, value) => of(value), 0), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/mergeWith-spec.ts000066400000000000000000000265241431412030200207220ustar00rootroot00000000000000import { expect } from 'chai'; import { mergeWith, map, mergeAll, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { queueScheduler, of, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {merge} */ describe('merge operator', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should handle merging two hot observables', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a-----b-----c----|'); const e1subs = ' ^------------------!'; const e2 = hot('-----d-----e-----f---|'); const e2subs = ' ^--------------------!'; const expected = '--a--d--b--e--c--f---|'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge a source with a second', (done) => { const a = of(1, 2, 3); const b = of(4, 5, 6, 7, 8); const r = [1, 2, 3, 4, 5, 6, 7, 8]; a.pipe(mergeWith(b)).subscribe({ next: (val) => { expect(val).to.equal(r.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should merge cold and cold', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----|'); const e1subs = ' ^-------------------!'; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^----------------------!'; const expected = '---a--x--b--y--c--z----|'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge hot and hot', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---a---^-b-----c----|'); const e1subs = ' ^------------!'; const e2 = hot('-----x-^----y-----z----|'); const e2subs = ' ^---------------!'; const expected = ' --b--y--c--z----|'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge hot and cold', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot('---a-^---b-----c----|'); const e1subs = ' ^--------------!'; const e2 = cold(' --x-----y-----z----|'); const e2subs = ' ^------------------!'; const expected = ' --x-b---y-c---z----|'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge parallel emissions', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a----b----c----|'); const e1subs = ' ^-----------------!'; const e2 = hot(' ---x----y----z----|'); const e2subs = ' ^-----------------!'; const expected = '---(ax)-(by)-(cz)-|'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should allow unsubscribing explicitly and early', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a-----b-----c----| '); const e1subs = ' ^---------! '; const e2 = hot(' -----d-----e-----f---|'); const e2subs = ' ^---------! '; const expected = '--a--d--b-- '; const unsub = ' ----------! '; const result = e1.pipe(mergeWith(e2)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a-----b-----c----| '); const e1subs = ' ^---------! '; const e2 = hot(' -----d-----e-----f---|'); const e2subs = ' ^---------! '; const expected = '--a--d--b-- '; const unsub = ' ----------! '; const result = e1.pipe( map((x) => x), mergeWith(e2), map((x) => x) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge empty and empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('| '); const e1subs = ' (^!)'; const e2 = cold('| '); const e2subs = ' (^!)'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe('|'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge three empties', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('|'); const e1subs = ' (^!)'; const e2 = cold('|'); const e2subs = ' (^!)'; const e3 = cold('|'); const e3subs = ' (^!)'; const result = e1.pipe(mergeWith(e2, e3)); expectObservable(result).toBe('|'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should merge never and empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('-'); const e1subs = ' ^'; const e2 = cold('|'); const e2subs = ' (^!)'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe('-'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge never and never', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('-'); const e1subs = ' ^'; const e2 = cold('-'); const e2subs = ' ^'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe('-'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge empty and throw', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('|'); const e1subs = ' (^!)'; const e2 = cold('#'); const e2subs = ' (^!)'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe('#'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge hot and throw', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = '(^!)'; const e2 = cold('#'); const e2subs = '(^!)'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe('#'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge never and throw', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('-'); const e1subs = ' (^!)'; const e2 = cold('#'); const e2subs = ' (^!)'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe('#'); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge empty and eventual error', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!) '; const e2 = hot(' -------#'); const e2subs = ' ^------!'; const expected = '-------#'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge hot and error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^------! '; const e2 = hot(' -------# '); const e2subs = ' ^------! '; const expected = '--a--b-# '; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge never and error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --------'); const e1subs = ' ^------!'; const e2 = hot(' -------#'); const e2subs = ' ^------!'; const expected = '-------#'; const result = e1.pipe(mergeWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); }); describe('mergeAll operator', () => { it('should merge two observables', (done) => { const a = of(1, 2, 3); const b = of(4, 5, 6, 7, 8); const r = [1, 2, 3, 4, 5, 6, 7, 8]; of(a, b) .pipe(mergeAll()) .subscribe({ next: (val) => { expect(val).to.equal(r.shift()); }, complete: done, }); }); it('should merge two immediately-scheduled observables', (done) => { const a = of(1, 2, 3, queueScheduler); const b = of(4, 5, 6, 7, 8, queueScheduler); const r = [1, 2, 4, 3, 5, 6, 7, 8]; of(a, b, queueScheduler) .pipe(mergeAll()) .subscribe({ next: (val) => { expect(val).to.equal(r.shift()); }, complete: done, }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(mergeWith(of(0)), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/min-spec.ts000066400000000000000000000227361431412030200175530ustar00rootroot00000000000000import { expect } from 'chai'; import { min, skip, take, mergeMap } from 'rxjs/operators'; import { range, of } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {min} */ describe('min', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should min the values of an observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--|', { a: 42, b: -1, c: 3 }); const subs = ' ^----------!'; const expected = ' -----------(x|)'; expectObservable((source).pipe(min())).toBe(expected, { x: -1 }); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should be never when source is never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable((e1).pipe(min())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be zero when source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const expected = '|'; expectObservable((e1).pipe(min())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it("should be never when source doesn't complete", () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--x--^--y--'); const e1subs = ' ^ '; const expected = ' ------'; expectObservable((e1).pipe(min())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it("should be completes when source doesn't have values", () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^---|'); const e1subs = ' ^---!'; const expected = ' ----|'; expectObservable((e1).pipe(min())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should min the unique value of an observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^--y--|', { y: 42 }); const e1subs = ' ^-----!'; const expected = ' ------(w|)'; expectObservable((e1).pipe(min())).toBe(expected, { w: 42 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should min the values of an ongoing hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--|', { a: 42, b: -1, c: 0, d: 666 }); const subs = ' ^----------!'; const expected = ' -----------(x|)'; expectObservable((e1).pipe(min())).toBe(expected, { x: -1 }); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should min a range() source observable', (done) => { range(1, 10000) .pipe(min()) .subscribe({ next: (value) => { expect(value).to.equal(1); }, error: () => { done(new Error('should not be called')); }, complete: done, }); }); it('should min a range().skip(1) source observable', (done) => { range(1, 10) .pipe(skip(1), min()) .subscribe({ next: (value) => { expect(value).to.equal(2); }, error: () => { done(new Error('should not be called')); }, complete: done, }); }); it('should min a range().take(1) source observable', (done) => { range(1, 10) .pipe(take(1), min()) .subscribe({ next: (value) => { expect(value).to.equal(1); }, error: () => { done(new Error('should not be called')); }, complete: done, }); }); it('should work with error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^--y--z--#', { x: 1, y: 2, z: 3 }, 'too bad'); const e1subs = ' ^--------!'; const expected = ' ---------#'; expectObservable((e1).pipe(min())).toBe(expected, null, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e1subs = ' (^!)'; const expected = '#'; expectObservable((e1).pipe(min())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a constant predicate on an empty hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^---|'); const e1subs = ' ^---!'; const expected = ' ----|'; const predicate = function (x: T, y: T) { return 42; }; expectObservable((e1).pipe(min(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a constant predicate on an never hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^----'); const e1subs = ' ^----'; const expected = ' -----'; const predicate = function (x: T, y: T) { return 42; }; expectObservable((e1).pipe(min(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a constant predicate on a simple hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^-a-|', { a: 1 }); const e1subs = ' ^---!'; const expected = ' ----(w|)'; const predicate = () => { return 42; }; expectObservable((e1).pipe(min(predicate))).toBe(expected, { w: 1 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^-a-b-c-d-e-f-g-|'); const unsub = ' -------! '; const e1subs = ' ^------! '; const expected = ' -------- '; const predicate = () => { return 42; }; expectObservable((e1).pipe(min(predicate)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^-a-b-c-d-e-f-g-|'); const e1subs = ' ^------! '; const expected = ' -------- '; const unsub = ' -------! '; const predicate = function () { return 42; }; const result = (e1).pipe( mergeMap((x: string) => of(x)), min(predicate), mergeMap((x: number) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a reverse predicate on observable with many values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^-b--c--d-|', { a: 42, b: -1, c: 0, d: 666 }); const e1subs = ' ^---------!'; const expected = ' ----------(w|)'; const predicate = function (x: T, y: T) { return x > y ? -1 : 1; }; expectObservable((e1).pipe(min(predicate))).toBe(expected, { w: 666 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a predicate for string on observable with many values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-a-^-b--c--d-|'); const e1subs = ' ^---------!'; const expected = ' ----------(w|)'; const predicate = function (x: T, y: T) { return x > y ? -1 : 1; }; expectObservable((e1).pipe(min(predicate))).toBe(expected, { w: 'd' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a constant predicate on observable that throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1-^---#'); const e1subs = ' ^---!'; const expected = ' ----#'; const predicate = () => { return 42; }; expectObservable((e1).pipe(min(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a predicate that throws, on observable with many values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1-^-2--3--|'); const e1subs = ' ^----! '; const expected = ' -----# '; const predicate = function (x: string, y: string) { if (y === '3') { throw 'error'; } return x > y ? -1 : 1; }; expectObservable((e1).pipe(min(predicate))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/multicast-spec.ts000066400000000000000000000740711431412030200207740ustar00rootroot00000000000000import { expect } from 'chai'; import { multicast, tap, mergeMapTo, takeLast, mergeMap, refCount, retry, repeat, switchMap, map, take } from 'rxjs/operators'; import { Subject, ReplaySubject, of, ConnectableObservable, zip, concat, Subscription, Observable, from } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {multicast} */ describe('multicast', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should mirror a simple source Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1-2---3-4--5-|'); const e1subs = ' ^--------------!'; const expected = '--1-2---3-4--5-|'; const result = e1.pipe(multicast(() => new Subject())) as ConnectableObservable; expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); result.connect(); }); }); it('should accept Subjects', (done) => { const expected = [1, 2, 3, 4]; const connectable = of(1, 2, 3, 4).pipe(multicast(new Subject())) as ConnectableObservable; connectable.subscribe({ next: (x) => { expect(x).to.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); }, }); connectable.connect(); }); it('should multicast a ConnectableObservable', (done) => { const expected = [1, 2, 3, 4]; const source = new Subject(); const connectable = source.pipe(multicast(new Subject())) as ConnectableObservable; const replayed = connectable.pipe(multicast(new ReplaySubject())) as ConnectableObservable; connectable.connect(); replayed.connect(); source.next(1); source.next(2); source.next(3); source.next(4); source.complete(); replayed .pipe( tap({ next(x) { expect(x).to.equal(expected.shift()); }, complete() { expect(expected.length).to.equal(0); }, }) ) .subscribe({ error: done, complete: done }); }); it('should accept Subject factory functions', (done) => { const expected = [1, 2, 3, 4]; const connectable = of(1, 2, 3, 4).pipe(multicast(() => new Subject())) as ConnectableObservable; connectable.subscribe({ next: (x) => { expect(x).to.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { done(); }, }); connectable.connect(); }); it('should accept a multicast selector and connect to a hot source for each subscriber', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new Subject(); const selector = (x: Observable) => zip(x, x).pipe(map(([a, b]) => (parseInt(a) + parseInt(b)).toString())); const e1 = hot(' -1-2-3----4-|'); // prettier-ignore const e1subs = [ ' ^-----------!', ' ----^-------!', ' --------^---!', ]; const multicasted = e1.pipe(multicast(subjectFactory, selector)); const subscriber1 = hot('a| ').pipe(mergeMapTo(multicasted)); const expected1 = ' -2-4-6----8-|'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(multicasted)); const expected2 = ' -----6----8-|'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(multicasted)); const expected3 = ' ----------8-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should accept a multicast selector and connect to a cold source for each subscriber', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new Subject(); const selector = (x: Observable) => zip(x, x).pipe(map(([a, b]) => (parseInt(a) + parseInt(b)).toString())); const e1 = cold(' -1-2-3----4-| '); // -1-2-3----4-| // -1-2-3----4-| const e1subs = [ ' ^-----------! ', ' ----^-----------! ', ' --------^-----------!', ]; const multicasted = e1.pipe(multicast(subjectFactory, selector)); const subscriber1 = hot('a| ').pipe(mergeMapTo(multicasted)); const expected1 = ' -2-4-6----8-| '; const subscriber2 = hot('----b| ').pipe(mergeMapTo(multicasted)); const expected2 = ' -----2-4-6----8-| '; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(multicasted)); const expected3 = ' ---------2-4-6----8-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it("should accept a multicast selector and respect the subject's messaging semantics", () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new ReplaySubject(1); const selector = (x: Observable) => concat(x, x.pipe(takeLast(1))); const e1 = cold(' -1-2-3----4-| '); // (4|) // -1-2-3----4-| // (4|) // -1-2-3----4-| // (4|) const e1subs = [ ' ^-----------! ', ' ----^-----------! ', ' --------^-----------! ', ]; const multicasted = e1.pipe(multicast(subjectFactory, selector)); const subscriber1 = hot('a| ').pipe(mergeMapTo(multicasted)); const expected1 = ' -1-2-3----4-(4|) '; const subscriber2 = hot('----b| ').pipe(mergeMapTo(multicasted)); const expected2 = ' -----1-2-3----4-(4|) '; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(multicasted)); const expected3 = ' ---------1-2-3----4-(4|)'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should do nothing if connect is not called, despite subscriptions', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1-2---3-4--5-|'); const e1subs: string[] = []; const expected = '----------------'; const multicasted = e1.pipe(multicast(() => new Subject())); expectObservable(multicasted).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should multicast the same values to multiple observers', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = cold(' -1-2-3----4-|'); const e1subs = ' ^-----------!'; const multicasted = e1.pipe(multicast(() => new Subject())) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(multicasted)); const expected1 = ' -1-2-3----4-|'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(multicasted)); const expected2 = ' -----3----4-|'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(multicasted)); const expected3 = ' ----------4-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(e1.subscriptions).toBe(e1subs); multicasted.connect(); }); }); it('should multicast an error from the source to multiple observers', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = cold(' -1-2-3----4-#'); const e1subs = ' ^-----------!'; const multicasted = e1.pipe(multicast(() => new Subject())) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(multicasted)); const expected1 = ' -1-2-3----4-#'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(multicasted)); const expected2 = ' -----3----4-#'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(multicasted)); const expected3 = ' ----------4-#'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(e1.subscriptions).toBe(e1subs); multicasted.connect(); }); }); it('should multicast the same values to multiple observers, but is unsubscribed explicitly and early', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = cold(' -1-2-3----4-|'); const e1subs = ' ^--------! '; const multicasted = e1.pipe(multicast(() => new Subject())) as ConnectableObservable; const unsub = ' ---------u '; const subscriber1 = hot('a| ').pipe(mergeMapTo(multicasted)); const expected1 = ' -1-2-3---- '; const subscriber2 = hot('----b| ').pipe(mergeMapTo(multicasted)); const expected2 = ' -----3---- '; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(multicasted)); const expected3 = ' ---------- '; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(e1.subscriptions).toBe(e1subs); // Set up unsubscription action let connection: Subscription; expectObservable( hot(unsub).pipe( tap(() => { connection.unsubscribe(); }) ) ).toBe(unsub); connection = multicasted.connect(); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const project = (x: string) => of(x); const subjectFactory = () => new Subject(); const e1 = cold(' -1-2-3----4-|'); const e1subs = ' ^--------! '; const multicasted = e1.pipe(mergeMap(project), multicast(subjectFactory)) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(multicasted)); const expected1 = ' -1-2-3---- '; const subscriber2 = hot('----b| ').pipe(mergeMapTo(multicasted)); const expected2 = ' -----3---- '; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(multicasted)); const expected3 = ' ---------- '; const unsub = ' ---------u '; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(e1.subscriptions).toBe(e1subs); // Set up unsubscription action let connection: Subscription; expectObservable( hot(unsub).pipe( tap(() => { connection.unsubscribe(); }) ) ).toBe(unsub); connection = multicasted.connect(); }); }); it('should multicast an empty source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const multicasted = e1.pipe(multicast(() => new Subject())) as ConnectableObservable; const expected = '| '; expectObservable(multicasted).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); multicasted.connect(); }); }); it('should multicast a never source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const multicasted = e1.pipe(multicast(() => new Subject())) as ConnectableObservable; const expected = '-'; expectObservable(multicasted).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); multicasted.connect(); }); }); it('should multicast a throw source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const multicasted = e1.pipe(multicast(() => new Subject())) as ConnectableObservable; const expected = '# '; expectObservable(multicasted).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); multicasted.connect(); }); }); describe('with refCount() and subject factory', () => { it('should connect when first subscriber subscribes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new Subject(); const e1 = cold(' -1-2-3----4-|'); const e1subs = ' ---^-----------!'; const multicasted = e1.pipe(multicast(subjectFactory), refCount()); const subscriber1 = hot('---a| ').pipe(mergeMapTo(multicasted)); const expected1 = ' ----1-2-3----4-|'; const subscriber2 = hot('-------b| ').pipe(mergeMapTo(multicasted)); const expected2 = ' --------3----4-|'; const subscriber3 = hot('-----------c| ').pipe(mergeMapTo(multicasted)); const expected3 = ' -------------4-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should disconnect when last subscriber unsubscribes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new Subject(); const e1 = cold(' -1-2-3----4-|'); const e1subs = ' ---^--------! '; const multicasted = e1.pipe(multicast(subjectFactory), refCount()); const subscriber1 = hot('---a| ').pipe(mergeMapTo(multicasted)); const expected1 = ' ----1-2-3-- '; const unsub1 = ' ----------! '; const subscriber2 = hot('-------b| ').pipe(mergeMapTo(multicasted)); const expected2 = ' --------3---- '; const unsub2 = ' ------------! '; expectObservable(subscriber1, unsub1).toBe(expected1); expectObservable(subscriber2, unsub2).toBe(expected2); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be retryable when cold source is synchronous', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new Subject(); const e1 = cold(' (123#) '); const multicasted = e1.pipe(multicast(subjectFactory), refCount()); const subscribe1 = 's '; const expected1 = ' (123123123123#) '; const subscribe2 = '-s '; const expected2 = ' -(123123123123#)'; const e1subs = [ ' (^!) ', ' (^!) ', ' (^!) ', ' (^!) ', ' -(^!) ', ' -(^!) ', ' -(^!) ', ' -(^!) ', ]; expectObservable( hot(subscribe1).pipe( tap(() => { expectObservable(multicasted.pipe(retry(3))).toBe(expected1); }) ) ).toBe(subscribe1); expectObservable( hot(subscribe2).pipe( tap(() => { expectObservable(multicasted.pipe(retry(3))).toBe(expected2); }) ) ).toBe(subscribe2); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be retryable with ReplaySubject and cold source is synchronous', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new ReplaySubject(1); const e1 = cold(' (123#) '); const multicasted = e1.pipe(multicast(subjectFactory), refCount()); const subscribe1 = 's '; const expected1 = ' (123123123123#) '; const subscribe2 = '-s '; const expected2 = ' -(123123123123#)'; const e1subs = [ ' (^!) ', ' (^!) ', ' (^!) ', ' (^!) ', ' -(^!) ', ' -(^!) ', ' -(^!) ', ' -(^!) ', ]; expectObservable( hot(subscribe1).pipe( tap(() => { expectObservable(multicasted.pipe(retry(3))).toBe(expected1); }) ) ).toBe(subscribe1); expectObservable( hot(subscribe2).pipe( tap(() => { expectObservable(multicasted.pipe(retry(3))).toBe(expected2); }) ) ).toBe(subscribe2); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be repeatable when cold source is synchronous', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new Subject(); const e1 = cold(' (123|) '); const multicasted = e1.pipe(multicast(subjectFactory), refCount()); const subscribe1 = 's '; const expected1 = ' (123123123123123|) '; const subscribe2 = '-s '; const expected2 = ' -(123123123123123|)'; const e1subs = [ ' (^!) ', ' (^!) ', ' (^!) ', ' (^!) ', ' (^!) ', ' -(^!) ', ' -(^!) ', ' -(^!) ', ' -(^!) ', ' -(^!) ', ]; expectObservable( hot(subscribe1).pipe( tap(() => { expectObservable(multicasted.pipe(repeat(5))).toBe(expected1); }) ) ).toBe(subscribe1); expectObservable( hot(subscribe2).pipe( tap(() => { expectObservable(multicasted.pipe(repeat(5))).toBe(expected2); }) ) ).toBe(subscribe2); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be repeatable with ReplaySubject and cold source is synchronous', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new ReplaySubject(1); const e1 = cold(' (123|) '); const multicasted = e1.pipe(multicast(subjectFactory), refCount()); const subscribe1 = 's '; const expected1 = ' (123123123123123|) '; const subscribe2 = '-s '; const expected2 = ' -(123123123123123|)'; const e1subs = [ ' (^!) ', ' (^!) ', ' (^!) ', ' (^!) ', ' (^!) ', ' -(^!) ', ' -(^!) ', ' -(^!) ', ' -(^!) ', ' -(^!) ', ]; expectObservable( hot(subscribe1).pipe( tap(() => { expectObservable(multicasted.pipe(repeat(5))).toBe(expected1); }) ) ).toBe(subscribe1); expectObservable( hot(subscribe2).pipe( tap(() => { expectObservable(multicasted.pipe(repeat(5))).toBe(expected2); }) ) ).toBe(subscribe2); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be retryable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new Subject(); const e1 = cold(' -1-2-3----4-# '); // -1-2-3----4-# // -1-2-3----4-# const e1subs = [ ' ^-----------! ', ' ------------^-----------! ', ' ------------------------^-----------!', ]; const multicasted = e1.pipe(multicast(subjectFactory), refCount()); const subscribe1 = 's------------------------------------'; const expected1 = ' -1-2-3----4--1-2-3----4--1-2-3----4-#'; const subscribe2 = '----s--------------------------------'; const expected2 = ' -----3----4--1-2-3----4--1-2-3----4-#'; expectObservable( hot(subscribe1).pipe( tap(() => { expectObservable(multicasted.pipe(retry(2))).toBe(expected1); }) ) ).toBe(subscribe1); expectObservable( hot(subscribe2).pipe( tap(() => { expectObservable(multicasted.pipe(retry(2))).toBe(expected2); }) ) ).toBe(subscribe2); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be retryable using a ReplaySubject', () => { testScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new ReplaySubject(1); const e1 = cold(' -1-2-3----4-# '); const e1subs = [ ' ^-----------! ', ' ------------^-----------! ', ' ------------------------^-----------!', ]; const multicasted = e1.pipe(multicast(subjectFactory), refCount()); const expected1 = ' -1-2-3----4--1-2-3----4--1-2-3----4-#'; const subscribe2 = time('----| '); const expected2 = ' ----23----4--1-2-3----4--1-2-3----4-#'; expectObservable(multicasted.pipe(retry(2))).toBe(expected1); testScheduler.schedule(() => expectObservable(multicasted.pipe(retry(2))).toBe(expected2), subscribe2); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be repeatable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new Subject(); const e1 = cold(' -1-2-3----4-| '); const e1subs = [ ' ^-----------! ', ' ------------^-----------! ', ' ------------------------^-----------!', ]; const multicasted = e1.pipe(multicast(subjectFactory), refCount()); const subscribe1 = 's------------------------------------'; const expected1 = ' -1-2-3----4--1-2-3----4--1-2-3----4-|'; const subscribe2 = '----s--------------------------------'; const expected2 = ' -----3----4--1-2-3----4--1-2-3----4-|'; expectObservable( hot(subscribe1).pipe( tap(() => { expectObservable(multicasted.pipe(repeat(3))).toBe(expected1); }) ) ).toBe(subscribe1); expectObservable( hot(subscribe2).pipe( tap(() => { expectObservable(multicasted.pipe(repeat(3))).toBe(expected2); }) ) ).toBe(subscribe2); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be repeatable using a ReplaySubject', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const subjectFactory = () => new ReplaySubject(1); const e1 = cold(' -1-2-3----4-| '); const e1subs = [ ' ^-----------! ', ' ------------^-----------! ', ' ------------------------^-----------!', ]; const multicasted = e1.pipe(multicast(subjectFactory), refCount()); const subscribe1 = 's------------------------------------'; const expected1 = ' -1-2-3----4--1-2-3----4--1-2-3----4-|'; const subscribe2 = '----s--------------------------------'; const expected2 = ' ----23----4--1-2-3----4--1-2-3----4-|'; expectObservable( hot(subscribe1).pipe( tap(() => { expectObservable(multicasted.pipe(repeat(3))).toBe(expected1); }) ) ).toBe(subscribe1); expectObservable( hot(subscribe2).pipe( tap(() => { expectObservable(multicasted.pipe(repeat(3))).toBe(expected2); }) ) ).toBe(subscribe2); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); it('should multicast one observable to multiple observers', (done) => { const results1: number[] = []; const results2: number[] = []; let subscriptions = 0; const source = new Observable((observer) => { subscriptions++; observer.next(1); observer.next(2); observer.next(3); observer.next(4); observer.complete(); }); const connectable = source.pipe( multicast(() => { return new Subject(); }) ) as ConnectableObservable; connectable.subscribe((x) => { results1.push(x); }); connectable.subscribe((x) => { results2.push(x); }); expect(results1).to.deep.equal([]); expect(results2).to.deep.equal([]); connectable.connect(); expect(results1).to.deep.equal([1, 2, 3, 4]); expect(results2).to.deep.equal([1, 2, 3, 4]); expect(subscriptions).to.equal(1); done(); }); it('should remove all subscribers from the subject when disconnected', () => { const subject = new Subject(); const expected = [1, 2, 3, 4]; let i = 0; const source = from([1, 2, 3, 4]).pipe(multicast(subject)) as ConnectableObservable; source.subscribe((x) => { expect(x).to.equal(expected[i++]); }); source.connect(); expect(subject.observers.length).to.equal(0); }); describe('when given a subject factory', () => { it('should allow you to reconnect by subscribing again', (done) => { const expected = [1, 2, 3, 4]; let i = 0; const source = of(1, 2, 3, 4).pipe(multicast(() => new Subject())) as ConnectableObservable; source.subscribe({ next: (x) => { expect(x).to.equal(expected[i++]); }, complete: () => { i = 0; source.subscribe({ next: (x) => { expect(x).to.equal(expected[i++]); }, complete: done, }); source.connect(); }, }); source.connect(); }); it('should not throw ObjectUnsubscribedError when used in a switchMap', (done) => { const source = of(1, 2, 3).pipe( multicast(() => new Subject()), refCount() ); const expected = ['a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3']; of('a', 'b', 'c') .pipe(switchMap((letter) => source.pipe(map((n) => String(letter + n))))) .subscribe({ next: (x) => { expect(x).to.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { expect(expected.length).to.equal(0); done(); }, }); }); }); describe('when given a subject', () => { it('should not throw ObjectUnsubscribedError when used in a switchMap', (done) => { const source = of(1, 2, 3).pipe(multicast(new Subject()), refCount()); const expected = ['a1', 'a2', 'a3']; of('a', 'b', 'c') .pipe(switchMap((letter) => source.pipe(map((n) => String(letter + n))))) .subscribe({ next: (x) => { expect(x).to.equal(expected.shift()); }, error: () => { done(new Error('should not be called')); }, complete: () => { expect(expected.length).to.equal(0); done(); }, }); }); }); }); rxjs-7.5.7/spec/operators/observeOn-spec.ts000066400000000000000000000101531431412030200207200ustar00rootroot00000000000000import { observeOn, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { expect } from 'chai'; import { of, Observable, queueScheduler } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {observeOn} */ describe('observeOn', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should observe on specified scheduler', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const e1subs = ' ^-------!'; const expected = '--a--b--|'; expectObservable(e1.pipe(observeOn(testScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should observe after specified delay', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a----b-| '); const e1subs = ' ^--------! '; const delay = time(' ---| '); // ---| // ---| const expected = ' -----a----b-|'; expectObservable(e1.pipe(observeOn(testScheduler, delay))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should observe when source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--#'); const e1subs = ' ^----!'; const expected = '--a--#'; expectObservable(e1.pipe(observeOn(testScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should observe when source is empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----|'); const e1subs = ' ^----!'; const expected = '-----|'; expectObservable(e1.pipe(observeOn(testScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should observe when source does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----'); const e1subs = ' ^----'; const expected = '-----'; expectObservable(e1.pipe(observeOn(testScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const e1subs = ' ^---! '; const expected = '--a-- '; const unsub = ' ----! '; const result = e1.pipe(observeOn(testScheduler)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when the result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const e1subs = ' ^---! '; const expected = '--a-- '; const unsub = ' ----! '; const result = e1.pipe( mergeMap((x) => of(x)), observeOn(testScheduler), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(observeOn(queueScheduler), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/onErrorResumeNext-spec.ts000066400000000000000000000267641431412030200224430ustar00rootroot00000000000000import { expect } from 'chai'; import { TestScheduler } from 'rxjs/testing'; import { onErrorResumeNext, take, finalize, tap } from 'rxjs/operators'; import { concat, throwError, of, Observable } from 'rxjs'; import { asInteropObservable } from '../helpers/interop-helper'; import { observableMatcher } from '../helpers/observableMatcher'; describe('onErrorResumeNext', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should continue observable sequence with next observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--# '); const e1subs = ' ^-------! '; const e2 = cold(' --c--d--|'); const e2subs = ' --------^-------!'; const expected = '--a--b----c--d--|'; expectObservable(e1.pipe(onErrorResumeNext(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should continue with hot observables', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--# '); const e1subs = ' ^-------! '; const e2 = hot(' -----x----c--d--|'); const e2subs = ' --------^-------!'; const expected = '--a--b----c--d--|'; expectObservable(e1.pipe(onErrorResumeNext(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should continue with array of multiple observables that throw errors', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--# '); const e1subs = ' ^-------! '; const e2 = [ cold(' --c--d--# '), cold(' --e--# '), cold(' --f--g--|'), ]; const e2subs = [ ' --------^-------!', ' ----------------^----!', ' ---------------------^-------!', ]; const expected = '--a--b----c--d----e----f--g--|'; expectObservable(e1.pipe(onErrorResumeNext(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2[0].subscriptions).toBe(e2subs[0]); expectSubscriptions(e2[1].subscriptions).toBe(e2subs[1]); expectSubscriptions(e2[2].subscriptions).toBe(e2subs[2]); }); }); it('should continue with multiple observables that throw errors', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--# '); const e1subs = ' ^-------! '; const e2 = cold(' --c--d--# '); const e2subs = ' --------^-------! '; const e3 = cold(' --e--# '); const e3subs = ' ----------------^----! '; const e4 = cold(' --f--g--|'); const e4subs = ' ---------------------^-------!'; const expected = '--a--b----c--d----e----f--g--|'; expectObservable(e1.pipe(onErrorResumeNext(e2, e3, e4))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); expectSubscriptions(e4.subscriptions).toBe(e4subs); }); }); it("should continue with multiple observables that don't throw error", () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--| '); const e1subs = ' ^-------! '; const e2 = cold(' --c--d--| '); const e2subs = ' --------^-------! '; const e3 = cold(' --e--| '); const e3subs = ' ----------------^----! '; const e4 = cold(' --f--g--|'); const e4subs = ' ---------------------^-------!'; const expected = '--a--b----c--d----e----f--g--|'; expectObservable(e1.pipe(onErrorResumeNext(e2, e3, e4))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); expectSubscriptions(e4.subscriptions).toBe(e4subs); }); }); it('should continue after empty observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' | '); const e1subs = ' (^!) '; const e2 = cold(' --c--d--| '); const e2subs = ' ^-------! '; const e3 = cold(' --e--# '); const e3subs = ' --------^----! '; const e4 = cold(' --f--g--|'); const e4subs = ' -------------^-------!'; const expected = '--c--d----e----f--g--|'; expectObservable(e1.pipe(onErrorResumeNext(e2, e3, e4))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); expectSubscriptions(e4.subscriptions).toBe(e4subs); }); }); it('should not complete with observable that does not complete', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--| '); const e1subs = ' ^-------! '; const e2 = cold(' --'); const e2subs = ' --------^-'; const expected = '--a--b----'; expectObservable(e1.pipe(onErrorResumeNext(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not continue when source observable does not complete', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--'); const e1subs = ' ^----'; const e2 = cold('-b--c-'); const e2subs: string[] = []; const expected = '--a--'; expectObservable(e1.pipe(onErrorResumeNext(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should complete observable when next observable throws', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--# '); const e1subs = ' ^-------! '; const e2 = cold(' --c--d--#'); const e2subs = ' --------^-------!'; const expected = '--a--b----c--d--|'; expectObservable(e1.pipe(onErrorResumeNext(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); throwError(() => new Error('Some error')) .pipe(onErrorResumeNext(synchronousObservable), take(3)) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); it('should unsubscribe from an interop observable upon explicit unsubscription', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--# '); const e1subs = ' ^-------! '; const e2 = cold(' --c--d--'); const e2subs = ' --------^---! '; const unsub = ' ------------! '; const expected = '--a--b----c-- '; // This test manipulates the observable to make it look like an interop // observable - an observable from a foreign library. Interop subscribers // are treated differently: they are wrapped in a safe subscriber. This // test ensures that unsubscriptions are chained all the way to the // interop subscriber. expectObservable(e1.pipe(onErrorResumeNext(asInteropObservable(e2))), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work with promise', (done) => { const expected = [1, 2]; const source = concat( of(1), throwError(() => 'meh') ); source.pipe(onErrorResumeNext(Promise.resolve(2))).subscribe({ next: (x) => { expect(expected.shift()).to.equal(x); }, error: () => { done(new Error('should not be called')); }, complete: () => { expect(expected).to.be.empty; done(); }, }); }); it('should skip invalid sources and move on', () => { const results: any[] = []; of(1) .pipe(onErrorResumeNext([2, 3, 4], { notValid: 'LOL' } as any, of(5, 6))) .subscribe({ next: (value) => results.push(value), complete: () => results.push('complete'), }); expect(results).to.deep.equal([1, 2, 3, 4, 5, 6, 'complete']); }); it('should call finalize after each sync observable', () => { const results: any[] = []; of(1) .pipe( finalize(() => results.push('finalize 1')), onErrorResumeNext( of(2).pipe(finalize(() => results.push('finalize 2'))), of(3).pipe(finalize(() => results.push('finalize 3'))), of(4).pipe(finalize(() => results.push('finalize 4'))) ) ) .subscribe({ next: (value) => results.push(value), complete: () => results.push('complete'), }); expect(results).to.deep.equal([1, 'finalize 1', 2, 'finalize 2', 3, 'finalize 3', 4, 'finalize 4', 'complete']); }); it('should not subscribe to the next source until after the previous is finalized.', () => { const results: any[] = []; of(1) .pipe( tap({ subscribe: () => results.push('subscribe 1'), finalize: () => results.push('finalize 1'), }), onErrorResumeNext( of(2).pipe( tap({ subscribe: () => results.push('subscribe 2'), finalize: () => results.push('finalize 2'), }) ), of(3).pipe( tap({ subscribe: () => results.push('subscribe 3'), finalize: () => results.push('finalize 3'), }) ), of(4).pipe( tap({ subscribe: () => results.push('subscribe 4'), finalize: () => results.push('finalize 4'), }) ) ) ) .subscribe({ next: (value) => results.push(value), complete: () => results.push('complete'), }); expect(results).to.deep.equal([ 'subscribe 1', 1, 'finalize 1', 'subscribe 2', 2, 'finalize 2', 'subscribe 3', 3, 'finalize 3', 'subscribe 4', 4, 'finalize 4', 'complete', ]); }); }); rxjs-7.5.7/spec/operators/pairwise-spec.ts000066400000000000000000000106201431412030200206000ustar00rootroot00000000000000import { TestScheduler } from 'rxjs/testing'; import { pairwise, take } from 'rxjs/operators'; import { Subject, Observable } from 'rxjs'; import { expect } from 'chai'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {pairwise} */ describe('pairwise operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should group consecutive emissions as arrays of two', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b-c----d--e---|'); const e1subs = ' ^------------------!'; const expected = '-----u-v----w--x---|'; const values = { u: ['a', 'b'], v: ['b', 'c'], w: ['c', 'd'], x: ['d', 'e'], }; expectObservable(e1.pipe(pairwise())).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should pairwise things', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^--------------------!'; const expected = ' ------v--w--x--y--z--|'; const values = { v: ['b', 'c'], w: ['c', 'd'], x: ['d', 'e'], y: ['e', 'f'], z: ['f', 'g'], }; expectObservable(e1.pipe(pairwise())).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not emit on single-element streams', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b----|'); const e1subs = ' ^-------!'; const expected = ' --------|'; expectObservable(e1.pipe(pairwise())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle mid-stream throw', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--#'); const e1subs = ' ^--------------!'; const expected = ' ------v--w--x--#'; const values = { v: ['b', 'c'], w: ['c', 'd'], x: ['d', 'e'], }; expectObservable(e1.pipe(pairwise())).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; expectObservable(e1.pipe(pairwise())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(pairwise())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(pairwise())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be recursively re-enterable', () => { const results = new Array<[string, string]>(); const subject = new Subject(); subject.pipe(pairwise(), take(3)).subscribe((pair) => { results.push(pair); subject.next('c'); }); subject.next('a'); subject.next('b'); expect(results).to.deep.equal([ ['a', 'b'], ['b', 'c'], ['c', 'c'], ]); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(pairwise(), take(2)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/pluck-spec.ts000066400000000000000000000212401431412030200200730ustar00rootroot00000000000000import { expect } from 'chai'; import { TestScheduler } from 'rxjs/internal/testing/TestScheduler'; import { pluck, map, mergeMap, take } from 'rxjs/operators'; import { of, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {pluck} */ describe('pluck', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should dematerialize an Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const inputs = { a: '{v:1}', b: '{v:2}', c: '{v:3}', }; const e1 = cold(' --a--b--c--|', inputs); const e1subs = ' ^----------!'; const expected = '--x--y--z--|'; const result = e1.pipe( map((x) => ({ v: x.charAt(3) })), pluck('v') ); expectObservable(result).toBe(expected, { x: '1', y: '2', z: '3' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work for one array', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const inputs = { x: ['abc'] }; const e1 = cold(' --x--|', inputs); const e1subs = ' ^----!'; const expected = '--y--|'; const result = e1.pipe(pluck(0)); expectObservable(result).toBe(expected, { y: 'abc' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work for one object', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const inputs = { x: { prop: 42 } }; const e1 = cold(' --x--|', inputs); const e1subs = ' ^----!'; const expected = '--y--|'; const result = e1.pipe(pluck('prop')); expectObservable(result).toBe(expected, { y: 42 }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work for multiple objects', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const inputs = { a: { prop: '1' }, b: { prop: '2' }, c: { prop: '3' }, d: { prop: '4' }, e: { prop: '5' }, }; const e1 = cold(' --a-b--c-d---e-|', inputs); const e1subs = ' ^--------------!'; const expected = '--1-2--3-4---5-|'; const result = e1.pipe(pluck('prop')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with deep nested properties', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const inputs = { a: { a: { b: { c: '1' } } }, b: { a: { b: { c: '2' } } }, c: { a: { b: { c: '3' } } }, d: { a: { b: { c: '4' } } }, e: { a: { b: { c: '5' } } }, }; const e1 = cold(' --a-b--c-d---e-|', inputs); const e1subs = ' ^--------------!'; const expected = '--1-2--3-4---5-|'; const result = e1.pipe(pluck('a', 'b', 'c')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with edge cases of deep nested properties', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const inputs = { a: { i: { j: { k: 1 } } }, b: { i: { j: 2 } }, c: { i: { k: { k: 3 } } }, d: {}, e: { i: { j: { k: 5 } } }, }; const e1 = cold(' --a-b--c-d---e-|', inputs); const e1subs = ' ^--------------!'; const expected = '--v-w--x-y---z-|'; const values: { [key: string]: number | undefined } = { v: 1, w: undefined, x: undefined, y: undefined, z: 5 }; const result = e1.pipe(pluck('i', 'j', 'k')); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should throw an error if not property is passed', () => { expect(() => { of({ prop: 1 }, { prop: 2 }).pipe(pluck()); }).to.throw(Error, 'list of properties cannot be empty.'); }); it('should propagate errors from observable that emits only errors', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; const result = e1.pipe(pluck('whatever')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate errors from observable that emit values', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const inputs = { a: { prop: '1' }, b: { prop: '2' } }; const e1 = cold(' --a--b--#', inputs, 'too bad'); const e1subs = ' ^-------!'; const expected = '--1--2--#'; const result = e1.pipe(pluck('prop')); expectObservable(result).toBe(expected, undefined, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not pluck an empty observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; const result = e1.pipe(pluck('whatever')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--b--c--|', { a: { prop: '1' }, b: { prop: '2' } }); const e1subs = ' ^-----! '; const expected = '--1--2- '; const unsub = ' ------! '; const result = e1.pipe(pluck('prop')); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should pluck twice', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const inputs = { a: { a: { b: { c: '1' } } }, b: { a: { b: { c: '2' } } }, c: { a: { b: { c: '3' } } }, d: { a: { b: { c: '4' } } }, e: { a: { b: { c: '5' } } }, }; const e1 = cold(' --a-b--c-d---e-|', inputs); const e1subs = ' ^--------------!'; const expected = '--1-2--3-4---5-|'; const result = e1.pipe(pluck('a', 'b'), pluck('c')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const inputs = { a: { prop: '1' }, b: { prop: '2' } }; const e1 = cold(' --a--b--c--|', inputs); const e1subs = ' ^-----! '; const expected = '--1--2- '; const unsub = ' ------! '; const result = e1.pipe( mergeMap((x) => of(x)), pluck('prop'), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support symbols', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const sym = Symbol('sym'); const inputs = { x: { [sym]: 'abc' } }; const e1 = cold(' --x--|', inputs); const e1subs = ' ^----!'; const expected = '--y--|'; const result = e1.pipe(pluck(sym)); expectObservable(result).toBe(expected, { y: 'abc' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break on null values', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const inputs = { x: null }; const e1 = cold(' --x--|', inputs); const e1subs = ' ^----!'; const expected = '--y--|'; const result = e1.pipe(pluck('prop')); expectObservable(result).toBe(expected, { y: undefined }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(pluck('whatever'), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/publish-spec.ts000066400000000000000000000366611431412030200204400ustar00rootroot00000000000000import { expect } from 'chai'; import { publish, zip, mergeMapTo, mergeMap, tap, refCount, retry, repeat } from 'rxjs/operators'; import { ConnectableObservable, of, Subscription, Observable, pipe } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {publish} */ describe('publish operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should mirror a simple source Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2---3-4--5-|'); const sourceSubs = ' ^--------------!'; const published = source.pipe(publish()) as ConnectableObservable; const expected = ' --1-2---3-4--5-|'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should return a ConnectableObservable-ish', () => { const source = of(1).pipe(publish()) as ConnectableObservable; expect(typeof (source)._subscribe === 'function').to.be.true; expect(typeof (source).getSubject === 'function').to.be.true; expect(typeof source.connect === 'function').to.be.true; expect(typeof source.refCount === 'function').to.be.true; }); it('should do nothing if connect is not called, despite subscriptions', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2---3-4--5-|'); const sourceSubs: string[] = []; const published = source.pipe(publish()); const expected = ' - '; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should multicast the same values to multiple observers', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^-----------!'; const published = source.pipe(publish()) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-3----4-|'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' -----3----4-|'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' ----------4-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should accept selectors', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot(' -1-2-3----4-|'); const sourceSubs = [ ' ^-----------!', ' ----^-------!', ' --------^---!', ]; const published = source.pipe(publish((x) => x.pipe(zip(x, (a, b) => (parseInt(a) + parseInt(b)).toString())))); const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -2-4-6----8-|'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' -----6----8-|'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' ----------8-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should multicast an error from the source to multiple observers', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-#'); const sourceSubs = ' ^-----------!'; const published = source.pipe(publish()) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-3----4-#'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' -----3----4-#'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' ----------4-#'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast the same values to multiple observers, but is unsubscribed explicitly and early', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^--------! '; const published = source.pipe(publish()) as ConnectableObservable; const unsub = ' ---------u '; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-3---- '; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' -----3---- '; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' ---------- '; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); // Set up unsubscription action let connection: Subscription; expectObservable( hot(unsub).pipe( tap(() => { connection.unsubscribe(); }) ) ).toBe(unsub); connection = published.connect(); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^--------! '; const published = source.pipe( mergeMap((x) => of(x)), publish() ) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-3---- '; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' -----3---- '; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' ---------- '; const unsub = ' ---------u '; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); // Set up unsubscription action let connection: Subscription; expectObservable( hot(unsub).pipe( tap(() => { connection.unsubscribe(); }) ) ).toBe(unsub); connection = published.connect(); }); }); describe('with refCount()', () => { it('should connect when first subscriber subscribes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ---^-----------!'; const replayed = source.pipe(publish(), refCount()); const subscriber1 = hot('---a| ').pipe(mergeMapTo(replayed)); const expected1 = ' ----1-2-3----4-|'; const subscriber2 = hot('-------b| ').pipe(mergeMapTo(replayed)); const expected2 = ' --------3----4-|'; const subscriber3 = hot('-----------c| ').pipe(mergeMapTo(replayed)); const expected3 = ' -------------4-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should disconnect when last subscriber unsubscribes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ---^--------! '; const replayed = source.pipe(publish(), refCount()); const subscriber1 = hot('---a| ').pipe(mergeMapTo(replayed)); const unsub1 = ' ----------! '; const expected1 = ' ----1-2-3-- '; const subscriber2 = hot('-------b| ').pipe(mergeMapTo(replayed)); const unsub2 = ' ------------! '; const expected2 = ' --------3---- '; expectObservable(subscriber1, unsub1).toBe(expected1); expectObservable(subscriber2, unsub2).toBe(expected2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should NOT be retryable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-#'); const sourceSubs = ' ^-----------!'; const published = source.pipe(publish(), refCount(), retry(3)); const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-3----4-#'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' -----3----4-#'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' ----------4-#'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should NOT be repeatable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^-----------!'; const published = source.pipe(publish(), refCount(), repeat(3)); const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-3----4-|'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' -----3----4-|'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' ----------4-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); }); it('should emit completed when subscribed after completed', (done) => { const results1: number[] = []; const results2: number[] = []; let subscriptions = 0; const source = new Observable((observer) => { subscriptions++; observer.next(1); observer.next(2); observer.next(3); observer.next(4); observer.complete(); }); const connectable = source.pipe(publish()) as ConnectableObservable; connectable.subscribe((x) => { results1.push(x); }); expect(results1).to.deep.equal([]); expect(results2).to.deep.equal([]); connectable.connect(); expect(results1).to.deep.equal([1, 2, 3, 4]); expect(results2).to.deep.equal([]); expect(subscriptions).to.equal(1); connectable.subscribe({ next: (x) => { results2.push(x); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { expect(results2).to.deep.equal([]); done(); }, }); }); it('should multicast an empty source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('| '); const sourceSubs = ' (^!)'; const published = source.pipe(publish()) as ConnectableObservable; const expected = ' | '; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast a never source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-'); const sourceSubs = ' ^'; const published = source.pipe(publish()) as ConnectableObservable; const expected = ' -'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast a throw source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('# '); const sourceSubs = ' (^!)'; const published = source.pipe(publish()) as ConnectableObservable; const expected = ' # '; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast one observable to multiple observers', (done) => { const results1: number[] = []; const results2: number[] = []; let subscriptions = 0; const source = new Observable((observer) => { subscriptions++; observer.next(1); observer.next(2); observer.next(3); observer.next(4); observer.complete(); }); const connectable = source.pipe(publish()) as ConnectableObservable; connectable.subscribe((x) => { results1.push(x); }); connectable.subscribe((x) => { results2.push(x); }); expect(results1).to.deep.equal([]); expect(results2).to.deep.equal([]); connectable.connect(); expect(results1).to.deep.equal([1, 2, 3, 4]); expect(results2).to.deep.equal([1, 2, 3, 4]); expect(subscriptions).to.equal(1); done(); }); it('should be referentially-transparent', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source1 = cold('-1-2-3-4-5-|'); const source1Subs = ' ^----------!'; const expected1 = ' -1-2-3-4-5-|'; const source2 = cold('-6-7-8-9-0-|'); const source2Subs = ' ^----------!'; const expected2 = ' -6-7-8-9-0-|'; // Calls to the _operator_ must be referentially-transparent. const partialPipeLine = pipe(publish()); // The non-referentially-transparent publishing occurs within the _operator function_ // returned by the _operator_ and that happens when the complete pipeline is composed. const published1 = source1.pipe(partialPipeLine) as ConnectableObservable; const published2 = source2.pipe(partialPipeLine) as ConnectableObservable; expectObservable(published1).toBe(expected1); expectSubscriptions(source1.subscriptions).toBe(source1Subs); expectObservable(published2).toBe(expected2); expectSubscriptions(source2.subscriptions).toBe(source2Subs); published1.connect(); published2.connect(); }); }); }); rxjs-7.5.7/spec/operators/publishBehavior-spec.ts000066400000000000000000000362151431412030200221130ustar00rootroot00000000000000import { expect } from 'chai'; import { publishBehavior, mergeMapTo, tap, mergeMap, refCount, retry, repeat } from 'rxjs/operators'; import { ConnectableObservable, of, Subscription, Observable, pipe } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {publishBehavior} */ describe('publishBehavior operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should mirror a simple source Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2---3-4--5-|'); const sourceSubs = ' ^--------------!'; const published = source.pipe(publishBehavior('0')) as ConnectableObservable; const expected = ' 0-1-2---3-4--5-|'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should return a ConnectableObservable-ish', () => { const source = of(1).pipe(publishBehavior(1)) as ConnectableObservable; expect(typeof (source)._subscribe === 'function').to.be.true; expect(typeof (source).getSubject === 'function').to.be.true; expect(typeof source.connect === 'function').to.be.true; expect(typeof source.refCount === 'function').to.be.true; }); it('should only emit default value if connect is not called, despite subscriptions', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2---3-4--5-|'); const sourceSubs: string[] = []; const published = source.pipe(publishBehavior('0')); const expected = ' 0 '; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should multicast the same values to multiple observers', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-| '); const sourceSubs = ' ^-----------! '; const published = source.pipe(publishBehavior('0')) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' 01-2-3----4-|'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----23----4-|'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' --------3-4-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast an error from the source to multiple observers', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-#'); const sourceSubs = ' ^-----------!'; const published = source.pipe(publishBehavior('0')) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' 01-2-3----4-#'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----23----4-#'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' --------3-4-#'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast the same values to multiple observers, but is unsubscribed explicitly and early', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^--------! '; const published = source.pipe(publishBehavior('0')) as ConnectableObservable; const unsub = ' ---------u '; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' 01-2-3---- '; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----23---- '; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' --------3- '; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); // Set up unsubscription action let connection: Subscription; expectObservable( hot(unsub).pipe( tap(() => { connection.unsubscribe(); }) ) ).toBe(unsub); connection = published.connect(); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^--------! '; const published = source.pipe( mergeMap((x) => of(x)), publishBehavior('0') ) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' 01-2-3---- '; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----23---- '; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' --------3- '; const unsub = ' ---------u '; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); // Set up unsubscription action let connection: Subscription; expectObservable( hot(unsub).pipe( tap(() => { connection.unsubscribe(); }) ) ).toBe(unsub); connection = published.connect(); }); }); describe('with refCount()', () => { it('should connect when first subscriber subscribes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ---^-----------!'; const replayed = source.pipe(publishBehavior('0'), refCount()); const subscriber1 = hot('---a| ').pipe(mergeMapTo(replayed)); const expected1 = ' ---01-2-3----4-|'; const subscriber2 = hot('-------b| ').pipe(mergeMapTo(replayed)); const expected2 = ' -------23----4-|'; const subscriber3 = hot('-----------c| ').pipe(mergeMapTo(replayed)); const expected3 = ' -----------3-4-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should disconnect when last subscriber unsubscribes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ---^--------! '; const replayed = source.pipe(publishBehavior('0'), refCount()); const subscriber1 = hot('---a| ').pipe(mergeMapTo(replayed)); const unsub1 = ' ----------! '; const expected1 = ' ---01-2-3-- '; const subscriber2 = hot('-------b| ').pipe(mergeMapTo(replayed)); const unsub2 = ' ------------! '; const expected2 = ' -------23---- '; expectObservable(subscriber1, unsub1).toBe(expected1); expectObservable(subscriber2, unsub2).toBe(expected2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should NOT be retryable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-#'); const sourceSubs = ' ^-----------!'; const published = source.pipe(publishBehavior('0'), refCount(), retry(3)); const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' 01-2-3----4-#'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----23----4-#'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' --------3-4-#'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should NOT be repeatable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^-----------!'; const published = source.pipe(publishBehavior('0'), refCount(), repeat(3)); const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' 01-2-3----4-|'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----23----4-|'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' --------3-4-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); }); it('should emit completed when subscribed after completed', (done) => { const results1: number[] = []; const results2: number[] = []; let subscriptions = 0; const source = new Observable((observer) => { subscriptions++; observer.next(1); observer.next(2); observer.next(3); observer.next(4); observer.complete(); }); const connectable = source.pipe(publishBehavior(0)) as ConnectableObservable; connectable.subscribe(function (x) { results1.push(x); }); expect(results1).to.deep.equal([0]); expect(results2).to.deep.equal([]); connectable.connect(); expect(results1).to.deep.equal([0, 1, 2, 3, 4]); expect(results2).to.deep.equal([]); expect(subscriptions).to.equal(1); connectable.subscribe({ next: function (x) { results2.push(x); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { expect(results2).to.deep.equal([]); done(); }, }); }); it('should multicast an empty source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('| '); const sourceSubs = ' (^!)'; const published = source.pipe(publishBehavior('0')) as ConnectableObservable; const expected = ' (0|)'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast a never source', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold('-'); const sourceSubs = ' ^'; const published = source.pipe(publishBehavior('0')) as ConnectableObservable; const expected = ' 0'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast a throw source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('# '); const sourceSubs = ' (^!)'; const published = source.pipe(publishBehavior('0')) as ConnectableObservable; const expected = ' (0#)'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast one observable to multiple observers', (done) => { const results1: number[] = []; const results2: number[] = []; let subscriptions = 0; const source = new Observable((observer) => { subscriptions++; observer.next(1); observer.next(2); observer.next(3); observer.next(4); }); const connectable = source.pipe(publishBehavior(0)) as ConnectableObservable; connectable.subscribe((x) => { results1.push(x); }); expect(results1).to.deep.equal([0]); connectable.connect(); expect(results2).to.deep.equal([]); connectable.subscribe((x) => { results2.push(x); }); expect(results1).to.deep.equal([0, 1, 2, 3, 4]); expect(results2).to.deep.equal([4]); expect(subscriptions).to.equal(1); done(); }); it('should follow the RxJS 4 behavior and emit nothing to observer after completed', (done) => { const results: number[] = []; const source = new Observable((observer) => { observer.next(1); observer.next(2); observer.next(3); observer.next(4); observer.complete(); }); const connectable = source.pipe(publishBehavior(0)) as ConnectableObservable; connectable.connect(); connectable.subscribe((x) => { results.push(x); }); expect(results).to.deep.equal([]); done(); }); it('should be referentially-transparent', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source1 = cold('-1-2-3-4-5-|'); const source1Subs = ' ^----------!'; const expected1 = ' x1-2-3-4-5-|'; const source2 = cold('-6-7-8-9-0-|'); const source2Subs = ' ^----------!'; const expected2 = ' x6-7-8-9-0-|'; // Calls to the _operator_ must be referentially-transparent. const partialPipeLine = pipe(publishBehavior('x')); // The non-referentially-transparent publishing occurs within the _operator function_ // returned by the _operator_ and that happens when the complete pipeline is composed. const published1 = source1.pipe(partialPipeLine) as ConnectableObservable; const published2 = source2.pipe(partialPipeLine) as ConnectableObservable; expectObservable(published1).toBe(expected1); expectSubscriptions(source1.subscriptions).toBe(source1Subs); expectObservable(published2).toBe(expected2); expectSubscriptions(source2.subscriptions).toBe(source2Subs); published1.connect(); published2.connect(); }); }); }); rxjs-7.5.7/spec/operators/publishLast-spec.ts000066400000000000000000000311251431412030200212520ustar00rootroot00000000000000import { expect } from 'chai'; import { publishLast, mergeMapTo, tap, mergeMap, refCount, retry } from 'rxjs/operators'; import { ConnectableObservable, of, Subscription, Observable, pipe } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {publishLast} */ describe('publishLast operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should emit last notification of a simple source Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2---3-4--5-| '); const sourceSubs = ' ^--------------! '; const published = source.pipe(publishLast()) as ConnectableObservable; const expected = ' ---------------(5|)'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should return a ConnectableObservable-ish', () => { const source = of(1).pipe(publishLast()) as ConnectableObservable; expect(typeof (source)._subscribe === 'function').to.be.true; expect(typeof (source).getSubject === 'function').to.be.true; expect(typeof source.connect === 'function').to.be.true; expect(typeof source.refCount === 'function').to.be.true; }); it('should do nothing if connect is not called, despite subscriptions', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2---3-4--5-|'); const sourceSubs: string[] = []; const published = source.pipe(publishLast()); const expected = ' - '; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should multicast the same values to multiple observers', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-| '); const sourceSubs = ' ^-----------! '; const published = source.pipe(publishLast()) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' ------------(4|)'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ------------(4|)'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' ------------(4|)'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast an error from the source to multiple observers', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-#'); const sourceSubs = ' ^-----------!'; const published = source.pipe(publishLast()) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' ------------#'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ------------#'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' ------------#'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should not cast any values to multiple observers, when source is unsubscribed explicitly and early', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^--------! '; const published = source.pipe(publishLast()) as ConnectableObservable; const unsub = ' ---------u '; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' ---------- '; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ---------- '; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' ---------- '; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); // Set up unsubscription action let connection: Subscription; expectObservable( hot(unsub).pipe( tap(() => { connection.unsubscribe(); }) ) ).toBe(unsub); connection = published.connect(); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^--------! '; const published = source.pipe( mergeMap((x) => of(x)), publishLast() ) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' ---------- '; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ---------- '; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' ---------- '; const unsub = ' ---------u '; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); // Set up unsubscription action let connection: Subscription; expectObservable( hot(unsub).pipe( tap(() => { connection.unsubscribe(); }) ) ).toBe(unsub); connection = published.connect(); }); }); describe('with refCount()', () => { it('should connect when first subscriber subscribes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ---^-----------!'; const replayed = source.pipe(publishLast(), refCount()); const subscriber1 = hot('---a| ').pipe(mergeMapTo(replayed)); const expected1 = ' ---------------(4|)'; const subscriber2 = hot('-------b| ').pipe(mergeMapTo(replayed)); const expected2 = ' ---------------(4|)'; const subscriber3 = hot('-----------c| ').pipe(mergeMapTo(replayed)); const expected3 = ' ---------------(4|)'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should disconnect when last subscriber unsubscribes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ---^--------! '; const replayed = source.pipe(publishLast(), refCount()); const subscriber1 = hot('---a| ').pipe(mergeMapTo(replayed)); const unsub1 = ' ----------! '; const expected1 = ' ----------- '; const subscriber2 = hot('-------b| ').pipe(mergeMapTo(replayed)); const unsub2 = ' ------------! '; const expected2 = ' ------------- '; expectObservable(subscriber1, unsub1).toBe(expected1); expectObservable(subscriber2, unsub2).toBe(expected2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should NOT be retryable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-#'); const sourceSubs = ' ^-----------!'; const published = source.pipe(publishLast(), refCount(), retry(3)); const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' ------------#'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ------------#'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' ------------#'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); }); it('should multicast an empty source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('| '); const sourceSubs = ' (^!)'; const published = source.pipe(publishLast()) as ConnectableObservable; const expected = ' | '; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast a never source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-'); const sourceSubs = ' ^'; const published = source.pipe(publishLast()) as ConnectableObservable; const expected = ' -'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast a throw source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('# '); const sourceSubs = ' (^!)'; const published = source.pipe(publishLast()) as ConnectableObservable; const expected = ' # '; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast one observable to multiple observers', (done) => { const results1: number[] = []; const results2: number[] = []; let subscriptions = 0; const source = new Observable((observer) => { subscriptions++; observer.next(1); observer.next(2); observer.next(3); observer.next(4); observer.complete(); }); const connectable = source.pipe(publishLast()) as ConnectableObservable; connectable.subscribe((x) => { results1.push(x); }); connectable.subscribe((x) => { results2.push(x); }); expect(results1).to.deep.equal([]); expect(results2).to.deep.equal([]); connectable.connect(); expect(results1).to.deep.equal([4]); expect(results2).to.deep.equal([4]); expect(subscriptions).to.equal(1); done(); }); it('should be referentially-transparent', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source1 = cold('-1-2-3-4-5-| '); const source1Subs = ' ^----------! '; const expected1 = ' -----------(5|)'; const source2 = cold('-6-7-8-9-0-| '); const source2Subs = ' ^----------! '; const expected2 = ' -----------(0|)'; // Calls to the _operator_ must be referentially-transparent. const partialPipeLine = pipe(publishLast()); // The non-referentially-transparent publishing occurs within the _operator function_ // returned by the _operator_ and that happens when the complete pipeline is composed. const published1 = source1.pipe(partialPipeLine) as ConnectableObservable; const published2 = source2.pipe(partialPipeLine) as ConnectableObservable; expectObservable(published1).toBe(expected1); expectSubscriptions(source1.subscriptions).toBe(source1Subs); expectObservable(published2).toBe(expected2); expectSubscriptions(source2.subscriptions).toBe(source2Subs); published1.connect(); published2.connect(); }); }); }); rxjs-7.5.7/spec/operators/publishReplay-spec.ts000066400000000000000000000522331431412030200216060ustar00rootroot00000000000000import { expect } from 'chai'; import { throwError, ConnectableObservable, EMPTY, NEVER, of, Observable, Subscription, pipe } from 'rxjs'; import { publishReplay, mergeMapTo, tap, mergeMap, refCount, retry, repeat, map } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {publishReplay} */ describe('publishReplay operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should mirror a simple source Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2---3-4--5-|'); const sourceSubs = ' ^--------------!'; const published = source.pipe(publishReplay(1)) as ConnectableObservable; const expected = ' --1-2---3-4--5-|'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should return a ConnectableObservable-ish', () => { const source = of(1).pipe(publishReplay()) as ConnectableObservable; expect(typeof (source)._subscribe === 'function').to.be.true; expect(typeof (source).getSubject === 'function').to.be.true; expect(typeof source.connect === 'function').to.be.true; expect(typeof source.refCount === 'function').to.be.true; }); it('should do nothing if connect is not called, despite subscriptions', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2---3-4--5-|'); const sourceSubs: string[] = []; const published = source.pipe(publishReplay(1)); const expected = ' -'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should multicast the same values to multiple observers, bufferSize=1', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^-----------!'; const published = source.pipe(publishReplay(1)) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-3----4-|'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----23----4-|'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' --------3-4-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast the same values to multiple observers, bufferSize=2', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-----3------4-|'); const sourceSubs = ' ^-----------------!'; const published = source.pipe(publishReplay(2)) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-----3------4-|'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----(12)-3------4-|'; const subscriber3 = hot('-----------c| ').pipe(mergeMapTo(published)); const expected3 = ' -----------(23)-4-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast an error from the source to multiple observers', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-#'); const sourceSubs = ' ^-----------!'; const published = source.pipe(publishReplay(1)) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-3----4-#'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----23----4-#'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' --------3-4-#'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast the same values to multiple observers, but is unsubscribed explicitly and early', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^--------! '; const published = source.pipe(publishReplay(1)) as ConnectableObservable; const unsub = ' ---------u '; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-3---- '; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----23---- '; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' --------3- '; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); // Set up unsubscription action let connection: Subscription; expectObservable( hot(unsub).pipe( tap(() => { connection.unsubscribe(); }) ) ).toBe(unsub); connection = published.connect(); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^--------! '; const published = source.pipe( mergeMap((x) => of(x)), publishReplay(1) ) as ConnectableObservable; const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-3---- '; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----23---- '; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' --------3- '; const unsub = ' ---------u '; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); // Set up unsubscription action let connection: Subscription; expectObservable( hot(unsub).pipe( tap(() => { connection.unsubscribe(); }) ) ).toBe(unsub); connection = published.connect(); }); }); describe('with refCount()', () => { it('should connect when first subscriber subscribes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ---^-----------!'; const replayed = source.pipe(publishReplay(1), refCount()); const subscriber1 = hot('---a| ').pipe(mergeMapTo(replayed)); const expected1 = ' ----1-2-3----4-|'; const subscriber2 = hot('-------b| ').pipe(mergeMapTo(replayed)); const expected2 = ' -------23----4-|'; const subscriber3 = hot('-----------c| ').pipe(mergeMapTo(replayed)); const expected3 = ' -----------3-4-|'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should disconnect when last subscriber unsubscribes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ---^--------! '; const replayed = source.pipe(publishReplay(1), refCount()); const subscriber1 = hot('---a| ').pipe(mergeMapTo(replayed)); const unsub1 = ' ----------! '; const expected1 = ' ----1-2-3-- '; const subscriber2 = hot('-------b| ').pipe(mergeMapTo(replayed)); const unsub2 = ' ------------! '; const expected2 = ' -------23---- '; expectObservable(subscriber1, unsub1).toBe(expected1); expectObservable(subscriber2, unsub2).toBe(expected2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should NOT be retryable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-# '); const sourceSubs = ' ^-----------! '; const published = source.pipe(publishReplay(1), refCount(), retry(3)); const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-3----4-(444#)'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----23----4-(444#)'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' --------3-4-(444#)'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should NOT be repeatable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-| '); const sourceSubs = ' ^-----------! '; const published = source.pipe(publishReplay(1), refCount(), repeat(3)); const subscriber1 = hot('a| ').pipe(mergeMapTo(published)); const expected1 = ' -1-2-3----4-(44|)'; const subscriber2 = hot('----b| ').pipe(mergeMapTo(published)); const expected2 = ' ----23----4-(44|)'; const subscriber3 = hot('--------c| ').pipe(mergeMapTo(published)); const expected3 = ' --------3-4-(44|)'; expectObservable(subscriber1).toBe(expected1); expectObservable(subscriber2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); }); it('should multicast one observable to multiple observers', (done) => { const results1: number[] = []; const results2: number[] = []; let subscriptions = 0; const source = new Observable((observer) => { subscriptions++; observer.next(1); observer.next(2); observer.next(3); observer.next(4); observer.complete(); }); const connectable = source.pipe(publishReplay()) as ConnectableObservable; connectable.subscribe((x) => { results1.push(x); }); connectable.subscribe((x) => { results2.push(x); }); expect(results1).to.deep.equal([]); expect(results2).to.deep.equal([]); connectable.connect(); expect(results1).to.deep.equal([1, 2, 3, 4]); expect(results2).to.deep.equal([1, 2, 3, 4]); expect(subscriptions).to.equal(1); done(); }); it('should replay as many events as specified by the bufferSize', (done) => { const results1: number[] = []; const results2: number[] = []; let subscriptions = 0; const source = new Observable((observer) => { subscriptions++; observer.next(1); observer.next(2); observer.next(3); observer.next(4); observer.complete(); }); const connectable = source.pipe(publishReplay(2)) as ConnectableObservable; connectable.subscribe((x) => { results1.push(x); }); expect(results1).to.deep.equal([]); expect(results2).to.deep.equal([]); connectable.connect(); connectable.subscribe((x) => { results2.push(x); }); expect(results1).to.deep.equal([1, 2, 3, 4]); expect(results2).to.deep.equal([3, 4]); expect(subscriptions).to.equal(1); done(); }); it('should emit replayed values and resubscribe to the source when reconnected without source completion', () => { const results1: number[] = []; const results2: number[] = []; let subscriptions = 0; const source = new Observable((observer) => { subscriptions++; observer.next(1); observer.next(2); observer.next(3); observer.next(4); // observer.complete(); }); const connectable = source.pipe(publishReplay(2)) as ConnectableObservable; const subscription1 = connectable.subscribe((x) => { results1.push(x); }); expect(results1).to.deep.equal([]); expect(results2).to.deep.equal([]); connectable.connect().unsubscribe(); subscription1.unsubscribe(); expect(results1).to.deep.equal([1, 2, 3, 4]); expect(results2).to.deep.equal([]); expect(subscriptions).to.equal(1); const subscription2 = connectable.subscribe((x) => { results2.push(x); }); connectable.connect().unsubscribe(); subscription2.unsubscribe(); expect(results1).to.deep.equal([1, 2, 3, 4]); expect(results2).to.deep.equal([3, 4, 1, 2, 3, 4]); expect(subscriptions).to.equal(2); }); it('should emit replayed values plus completed when subscribed after completed', (done) => { const results1: number[] = []; const results2: number[] = []; let subscriptions = 0; const source = new Observable((observer) => { subscriptions++; observer.next(1); observer.next(2); observer.next(3); observer.next(4); observer.complete(); }); const connectable = source.pipe(publishReplay(2)) as ConnectableObservable; connectable.subscribe((x) => { results1.push(x); }); expect(results1).to.deep.equal([]); expect(results2).to.deep.equal([]); connectable.connect(); expect(results1).to.deep.equal([1, 2, 3, 4]); expect(results2).to.deep.equal([]); expect(subscriptions).to.equal(1); connectable.subscribe({ next: (x) => { results2.push(x); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { expect(results2).to.deep.equal([3, 4]); done(); }, }); }); it('should multicast an empty source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('| '); const sourceSubs = ' (^!)'; const published = source.pipe(publishReplay(1)) as ConnectableObservable; const expected = ' |'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast a never source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-'); const sourceSubs = ' ^'; const published = source.pipe(publishReplay(1)) as ConnectableObservable; const expected = ' -'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should multicast a throw source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('# '); const sourceSubs = ' (^!)'; const published = source.pipe(publishReplay(1)) as ConnectableObservable; const expected = ' # '; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); published.connect(); }); }); it('should mirror a simple source Observable with selector', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const values = { a: 2, b: 4, c: 6, d: 8 }; const selector = (observable: Observable) => observable.pipe(map((v) => 2 * +v)); const source = cold('--1-2---3-4---|'); const sourceSubs = ' ^-------------!'; const published = source.pipe(publishReplay(1, Infinity, selector)); const expected = ' --a-b---c-d---|'; expectObservable(published).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should EMIT an error when the selector throws an exception', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const error = "It's broken"; const selector = () => { throw error; }; const source = cold('--1-2---3-4---|'); const published = source.pipe(publishReplay(1, Infinity, selector)); const expected = ' # '; expectObservable(published).toBe(expected, undefined, "It's broken"); }); }); it('should emit an error when the selector returns an Observable that emits an error', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const error = "It's broken"; const innerObservable = cold('--5-6----#', undefined, error); const selector = (observable: Observable) => observable.pipe(mergeMapTo(innerObservable)); const source = cold('--1--2---3---|'); const sourceSubs = ' ^----------! '; const published = source.pipe(publishReplay(1, Infinity, selector)); const expected = ' ----5-65-6-# '; expectObservable(published).toBe(expected, undefined, error); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should terminate immediately when the selector returns an empty Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const selector = () => EMPTY; const source = cold('--1--2---3---|'); const sourceSubs = ' (^!) '; const published = source.pipe(publishReplay(1, Infinity, selector)); const expected = ' | '; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not emit and should not complete/error when the selector returns never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const selector = () => NEVER; const source = cold('-'); const sourceSubs = ' ^'; const published = source.pipe(publishReplay(1, Infinity, selector)); const expected = ' -'; expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should emit error when the selector returns Observable.throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const error = "It's broken"; const selector = () => throwError(() => error); const source = cold('--1--2---3---|'); const sourceSubs = ' (^!) '; const published = source.pipe(publishReplay(1, Infinity, selector)); const expected = ' # '; expectObservable(published).toBe(expected, undefined, error); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should be referentially-transparent', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source1 = cold('-1-2-3-4-5-|'); const source1Subs = ' ^----------!'; const expected1 = ' -1-2-3-4-5-|'; const source2 = cold('-6-7-8-9-0-|'); const source2Subs = ' ^----------!'; const expected2 = ' -6-7-8-9-0-|'; // Calls to the _operator_ must be referentially-transparent. const partialPipeLine = pipe(publishReplay(1)); // The non-referentially-transparent publishing occurs within the _operator function_ // returned by the _operator_ and that happens when the complete pipeline is composed. const published1 = source1.pipe(partialPipeLine) as ConnectableObservable; const published2 = source2.pipe(partialPipeLine) as ConnectableObservable; expectObservable(published1).toBe(expected1); expectSubscriptions(source1.subscriptions).toBe(source1Subs); expectObservable(published2).toBe(expected2); expectSubscriptions(source2.subscriptions).toBe(source2Subs); published1.connect(); published2.connect(); }); }); }); rxjs-7.5.7/spec/operators/race-legacy-spec.ts000066400000000000000000000230721431412030200211360ustar00rootroot00000000000000import { expect } from 'chai'; import * as sinon from 'sinon'; import { EMPTY, NEVER, of, timer, defer, Observable, throwError } from 'rxjs'; import { race, mergeMap, map, finalize, startWith } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {race} */ describe('race operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should race cold and cold', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----| '); const e1subs = ' ^-------------------! '; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b-----c----| '; const result = e1.pipe(race(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race cold and cold and accept an Array of Observable argument', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----| '); const e1subs = ' ^-------------------! '; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b-----c----| '; const result = e1.pipe(race([e2])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race hot and hot', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a-----b-----c----| '); const e1subs = ' ^-------------------! '; const e2 = hot(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b-----c----| '; const result = e1.pipe(race(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race hot and cold', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----| '); const e1subs = ' ^-------------------! '; const e2 = hot(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b-----c----| '; const result = e1.pipe(race(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race 2nd and 1st', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ------x-----y-----z----|'); const e1subs = ' ^--! '; const e2 = cold(' ---a-----b-----c----| '); const e2subs = ' ^-------------------! '; const expected = '---a-----b-----c----| '; const result = e1.pipe(race(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race emit and complete', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = cold(' -----| '); const e1subs = ' ^----! '; const e2 = hot(' ------x-----y-----z----|'); const e2subs = ' ^----! '; const expected = '-----| '; const result = e1.pipe(race(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = cold('---a-----b-----c----| '); const e1subs = ' ^-----------! '; const e2 = hot(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b--- '; const unsub = ' ------------! '; const result = e1.pipe(race(e2)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot(' ---e-^---f--g---h-|'); const e2subs = ' ^--! '; const expected = ' ---b--c--- '; const unsub = ' ---------! '; const result = e1.pipe( mergeMap((x: string) => of(x)), race(e2), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should never emit when given non emitting sources', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---|'); const e2 = cold(' ---|'); const e1subs = ' ^--!'; const expected = '---|'; const source = e1.pipe(race(e2)); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should throw when error occurs mid stream', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----# '); const e1subs = ' ^--------! '; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----# '; const result = e1.pipe(race(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should throw when error occurs before a winner is found', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---# '); const e1subs = ' ^--! '; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---# '; const result = e1.pipe(race(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should allow observable emits immediately', (done) => { const e1 = of(true); const e2 = timer(200).pipe(map((_) => false)); e1.pipe(race(e2)).subscribe({ next: (x) => { expect(x).to.be.true; }, error: done, complete: done, }); }); it('should ignore latter observables if a former one emits immediately', () => { const onNext = sinon.spy(); const onSubscribe = sinon.spy() as any; const e1 = of('a'); // Wins the race const e2 = defer(onSubscribe); // Should be ignored e1.pipe(race(e2)).subscribe(onNext); expect(onNext.calledWithExactly('a')).to.be.true; expect(onSubscribe.called).to.be.false; }); it('should ignore latter observables if a former one completes immediately', () => { const onComplete = sinon.spy(); const onSubscribe = sinon.spy() as any; const e1 = EMPTY; // Wins the race const e2 = defer(onSubscribe); // Should be ignored e1.pipe(race(e2)).subscribe({ complete: onComplete }); expect(onComplete.calledWithExactly()).to.be.true; expect(onSubscribe.called).to.be.false; }); it('should ignore latter observables if a former one errors immediately', () => { const onError = sinon.spy(); const onSubscribe = sinon.spy() as any; const e1 = throwError(() => 'kaboom'); // Wins the race const e2 = defer(onSubscribe); // Should be ignored e1.pipe(race(e2)).subscribe({ error: onError }); expect(onError.calledWithExactly('kaboom')).to.be.true; expect(onSubscribe.called).to.be.false; }); it('should unsubscribe former observables if a latter one emits immediately', () => { const onNext = sinon.spy(); const onUnsubscribe = sinon.spy(); const e1 = NEVER.pipe(finalize(onUnsubscribe)); // Should be unsubscribed const e2 = of('b'); // Wins the race e1.pipe(race(e2)).subscribe(onNext); expect(onNext.calledWithExactly('b')).to.be.true; expect(onUnsubscribe.calledOnce).to.be.true; }); it('should unsubscribe from immediately emitting observable on unsubscription', () => { const onNext = sinon.spy(); const onUnsubscribe = sinon.spy(); const e1 = >NEVER.pipe(startWith('a'), finalize(onUnsubscribe)); // Wins the race const e2 = NEVER; // Loses the race const subscription = e1.pipe(race(e2)).subscribe(onNext); expect(onNext.calledWithExactly('a')).to.be.true; expect(onUnsubscribe.called).to.be.false; subscription.unsubscribe(); expect(onUnsubscribe.calledOnce).to.be.true; }); }); rxjs-7.5.7/spec/operators/raceWith-spec.ts000066400000000000000000000232231431412030200205260ustar00rootroot00000000000000import { expect } from 'chai'; import * as sinon from 'sinon'; import { EMPTY, NEVER, of, timer, defer, Observable, throwError } from 'rxjs'; import { raceWith, mergeMap, map, finalize, startWith, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {raceWith} */ describe('raceWith operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should race cold and cold', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----| '); const e1subs = ' ^-------------------! '; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b-----c----| '; const result = e1.pipe(raceWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race hot and hot', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a-----b-----c----| '); const e1subs = ' ^-------------------! '; const e2 = hot(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b-----c----| '; const result = e1.pipe(raceWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race hot and cold', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----| '); const e1subs = ' ^-------------------! '; const e2 = hot(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b-----c----| '; const result = e1.pipe(raceWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race 2nd and 1st', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ------x-----y-----z----|'); const e1subs = ' ^--! '; const e2 = cold(' ---a-----b-----c----| '); const e2subs = ' ^-------------------! '; const expected = '---a-----b-----c----| '; const result = e1.pipe(raceWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should race emit and complete', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -----| '); const e1subs = ' ^----! '; const e2 = hot(' ------x-----y-----z----|'); const e2subs = ' ^----! '; const expected = '-----| '; const result = e1.pipe(raceWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----b-----c----| '); const e1subs = ' ^-----------! '; const e2 = hot(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----b--- '; const unsub = ' ------------! '; const result = e1.pipe(raceWith(e2)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--^--b--c---d-| '); const e1subs = ' ^--------! '; const e2 = hot(' ---e-^---f--g---h-|'); const e2subs = ' ^--! '; const expected = ' ---b--c--- '; const unsub = ' ---------! '; const result = e1.pipe( mergeMap((x: string) => of(x)), raceWith(e2), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should never emit when given non emitting sources', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---|'); const e2 = cold(' ---|'); const e1subs = ' ^--!'; const expected = '---|'; const source = e1.pipe(raceWith(e2)); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should throw when error occurs mid stream', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a-----# '); const e1subs = ' ^--------! '; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---a-----# '; const result = e1.pipe(raceWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should throw when error occurs before a winner is found', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---# '); const e1subs = ' ^--! '; const e2 = cold(' ------x-----y-----z----|'); const e2subs = ' ^--! '; const expected = '---# '; const result = e1.pipe(raceWith(e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should allow observable emits immediately', (done) => { const e1 = of(true); const e2 = timer(200).pipe(map((_) => false)); e1.pipe(raceWith(e2)).subscribe({ next: (x) => { expect(x).to.be.true; }, error: done, complete: done, }); }); it('should ignore latter observables if a former one emits immediately', () => { const onNext = sinon.spy(); const onSubscribe = sinon.spy() as any; const e1 = of('a'); // Wins the race const e2 = defer(onSubscribe); // Should be ignored e1.pipe(raceWith(e2)).subscribe(onNext); expect(onNext.calledWithExactly('a')).to.be.true; expect(onSubscribe.called).to.be.false; }); it('should ignore latter observables if a former one completes immediately', () => { const onComplete = sinon.spy(); const onSubscribe = sinon.spy() as any; const e1 = EMPTY; // Wins the race const e2 = defer(onSubscribe); // Should be ignored e1.pipe(raceWith(e2)).subscribe({ complete: onComplete }); expect(onComplete.calledWithExactly()).to.be.true; expect(onSubscribe.called).to.be.false; }); it('should ignore latter observables if a former one errors immediately', () => { const onError = sinon.spy(); const onSubscribe = sinon.spy() as any; const e1 = throwError(() => 'kaboom'); // Wins the race const e2 = defer(onSubscribe); // Should be ignored e1.pipe(raceWith(e2)).subscribe({ error: onError }); expect(onError.calledWithExactly('kaboom')).to.be.true; expect(onSubscribe.called).to.be.false; }); it('should unsubscribe former observables if a latter one emits immediately', () => { const onNext = sinon.spy(); const onUnsubscribe = sinon.spy(); const e1 = NEVER.pipe(finalize(onUnsubscribe)); // Should be unsubscribed const e2 = of('b'); // Wins the race e1.pipe(raceWith(e2)).subscribe(onNext); expect(onNext.calledWithExactly('b')).to.be.true; expect(onUnsubscribe.calledOnce).to.be.true; }); it('should unsubscribe from immediately emitting observable on unsubscription', () => { const onNext = sinon.spy(); const onUnsubscribe = sinon.spy(); const e1 = >NEVER.pipe(startWith('a'), finalize(onUnsubscribe)); // Wins the race const e2 = NEVER; // Loses the race const subscription = e1.pipe(raceWith(e2)).subscribe(onNext); expect(onNext.calledWithExactly('a')).to.be.true; expect(onUnsubscribe.called).to.be.false; subscription.unsubscribe(); expect(onUnsubscribe.calledOnce).to.be.true; }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(raceWith(of(0)), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/reduce-spec.ts000066400000000000000000000223051431412030200202270ustar00rootroot00000000000000import { expect } from 'chai'; import { TestScheduler } from 'rxjs/testing'; import { reduce, mergeMap } from 'rxjs/operators'; import { range, of } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {reduce} */ describe('reduce', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should reduce', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values = { a: 1, b: 3, c: 5, x: 9 }; const e1 = hot(' --a--b--c--| ', values); const e1subs = ' ^----------! '; const expected = '-----------(x|)'; const result = e1.pipe(reduce((o, x) => o + x, 0)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should reduce with seed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--| '); const e1subs = ' ^-------! '; const expected = '--------(x|)'; const result = e1.pipe(reduce((o, x) => o + ' ' + x, 'n')); expectObservable(result).toBe(expected, { x: 'n a b' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should reduce with a seed of undefined', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--| '); const e1subs = ' ^--------------------! '; const expected = ' ---------------------(x|)'; const result = e1.pipe(reduce((o: string | undefined, x) => o + ' ' + x, undefined)); expectObservable(result).toBe(expected, { x: 'undefined b c d e f g' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should reduce without a seed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--| '); const e1subs = ' ^--------------------! '; const expected = ' ---------------------(x|)'; const result = e1.pipe(reduce((o, x) => o + ' ' + x)); expectObservable(result).toBe(expected, { x: 'b c d e f g' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should reduce with index without seed', () => { const idx = [1, 2, 3, 4, 5]; range(0, 6) .pipe( reduce((acc, value, index) => { expect(idx.shift()).to.equal(index); return value; }) ) .subscribe({ complete() { expect(idx).to.be.empty; }, }); }); it('should reduce with index with seed', () => { const idx = [0, 1, 2, 3, 4, 5]; range(0, 6) .pipe( reduce((acc, value, index) => { expect(idx.shift()).to.equal(index); return value; }, -1) ) .subscribe({ complete() { expect(idx).to.be.empty; }, }); }); it('should reduce with seed if source is empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^-------| '); const e1subs = ' ^-------! '; const expected = ' --------(x|)'; const result = e1.pipe(reduce((o, x) => o + x, '42')); expectObservable(result).toBe(expected, { x: '42' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if reduce function throws without seed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const e1subs = ' ^----! '; const expected = '-----# '; const result = e1.pipe( reduce(() => { throw 'error'; }) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const e1subs = ' ^-----! '; const expected = '------- '; const unsub = ' ------! '; const result = e1.pipe(reduce((o, x) => o + x)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const e1subs = ' ^-----! '; const expected = '------- '; const unsub = ' ------! '; const result = e1.pipe( mergeMap((x) => of(x)), reduce((o, x) => o + x), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source emits and raises error with seed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--#'); const e1subs = ' ^-------!'; const expected = '--------#'; const result = e1.pipe(reduce((o, x) => o + x, '42')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source raises error with seed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----#'); const e1subs = ' ^---!'; const expected = '----#'; const result = e1.pipe(reduce((o, x) => o + x, '42')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if reduce function throws with seed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const e1subs = ' ^-! '; const expected = '--# '; const result = e1.pipe( reduce(() => { throw 'error'; }, 'n') ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete with seed if source emits but does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--'); const e1subs = ' ^----'; const expected = '-----'; const result = e1.pipe(reduce((o, x) => o + x, 'n')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete with seed if source never completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; const result = e1.pipe(reduce((o, x) => o + x, 'n')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete without seed if source emits but does not completes', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--'); const e1subs = ' ^-------'; const expected = '--------'; const result = e1.pipe(reduce((o, x) => o + x)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete without seed if source never completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; const result = e1.pipe(reduce((o, x) => o + x)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should reduce if source does not emit without seed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^-------|'); const e1subs = ' ^-------!'; const expected = ' --------|'; const result = e1.pipe(reduce((o, x) => o + x)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source emits and raises error without seed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--#'); const e1subs = ' ^-------!'; const expected = '--------#'; const result = e1.pipe(reduce((o, x) => o + x)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source raises error without seed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----#'); const e1subs = ' ^---!'; const expected = '----#'; const result = e1.pipe(reduce((o, x) => o + x)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/refCount-spec.ts000066400000000000000000000065051431412030200205510ustar00rootroot00000000000000import { expect } from 'chai'; import { TestScheduler } from 'rxjs/testing'; import { refCount, publish, publishReplay, first } from 'rxjs/operators'; import { NEVER, noop, Observable, Subject } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {refCount} */ describe('refCount', () => { it('should turn a multicasted Observable an automatically (dis)connecting hot one', () => { const testScheduler = new TestScheduler(observableMatcher); testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1-2---3-4--5-|'); const e1Subs = ' ^--------------!'; const expected = '--1-2---3-4--5-|'; const result = e1.pipe(publish(), refCount()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1Subs); }); }); it('should count references', () => { const connectable = NEVER.pipe(publish()); const refCounted = connectable.pipe(refCount()); const sub1 = refCounted.subscribe({ next: noop, }); const sub2 = refCounted.subscribe({ next: noop, }); const sub3 = refCounted.subscribe({ next: noop, }); expect((connectable as any)._refCount).to.equal(3); sub1.unsubscribe(); sub2.unsubscribe(); sub3.unsubscribe(); }); it('should unsub from the source when all other subscriptions are unsubbed', (done) => { let unsubscribeCalled = false; const connectable = new Observable((observer) => { observer.next(true); return () => { unsubscribeCalled = true; }; }).pipe(publish()); const refCounted = connectable.pipe(refCount()); const sub1 = refCounted.subscribe(() => { //noop }); const sub2 = refCounted.subscribe(() => { //noop }); const sub3 = refCounted.subscribe(() => { expect((connectable as any)._refCount).to.equal(1); }); sub1.unsubscribe(); sub2.unsubscribe(); sub3.unsubscribe(); expect((connectable as any)._refCount).to.equal(0); expect(unsubscribeCalled).to.be.true; done(); }); it('should not unsubscribe when a subscriber synchronously unsubscribes if other subscribers are present', () => { let unsubscribeCalled = false; const connectable = new Observable((observer) => { observer.next(true); return () => { unsubscribeCalled = true; }; }).pipe(publishReplay(1)); const refCounted = connectable.pipe(refCount()); refCounted.subscribe(); refCounted.subscribe().unsubscribe(); expect((connectable as any)._refCount).to.equal(1); expect(unsubscribeCalled).to.be.false; }); it('should not unsubscribe when a subscriber synchronously unsubscribes if other subscribers are present and the source is a Subject', () => { const arr: string[] = []; const subject = new Subject(); const connectable = subject.pipe(publishReplay(1)); const refCounted = connectable.pipe(refCount()); refCounted.subscribe((val) => { arr.push(val); }); subject.next('the number one'); refCounted.pipe(first()).subscribe().unsubscribe(); subject.next('the number two'); expect((connectable as any)._refCount).to.equal(1); expect(arr[0]).to.equal('the number one'); expect(arr[1]).to.equal('the number two'); }); }); rxjs-7.5.7/spec/operators/repeat-spec.ts000066400000000000000000000363031431412030200202430ustar00rootroot00000000000000import { expect } from 'chai'; import { repeat, mergeMap, map, multicast, refCount, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Subject, Observable, timer } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {repeat} */ describe('repeat operator', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); it('should resubscribe count number of times', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--b--| '); const subs = [ ' ^-------! ', // ' --------^-------! ', ' ----------------^-------!', ]; const expected = '--a--b----a--b----a--b--|'; expectObservable(e1.pipe(repeat(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should resubscribe multiple times', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--b--| '); const subs = [ ' ^-------! ', ' --------^-------! ', ' ----------------^-------! ', ' ------------------------^-------!', ]; const expected = '--a--b----a--b----a--b----a--b--|'; expectObservable(e1.pipe(repeat(2), repeat(2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should complete without emit when count is zero', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('--a--b--|'); const subs: string[] = []; const expected = '|'; expectObservable(e1.pipe(repeat(0))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should emit source once when count is one', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--b--|'); const subs = ' ^-------!'; const expected = '--a--b--|'; expectObservable(e1.pipe(repeat(1))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should repeat until gets unsubscribed', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--b--| '); const subs = [ ' ^-------! ', // ' --------^------!', ]; const unsub = ' ---------------!'; const expected = '--a--b----a--b-'; expectObservable(e1.pipe(repeat(10)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should be able to repeat indefinitely until unsubscribed', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--b--| '); const subs = [ ' ^-------! ', ' --------^-------! ', ' ----------------^-------! ', ' ------------------------^-------! ', ' --------------------------------^-------! ', ' ----------------------------------------^---!', ]; const unsub = ' --------------------------------------------!'; const expected = '--a--b----a--b----a--b----a--b----a--b----a--'; expectObservable(e1.pipe(repeat()), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--b--| '); const subs = [ ' ^-------! ', ' --------^-------! ', ' ----------------^-------! ', ' ------------------------^-------! ', ' --------------------------------^-------! ', ' ----------------------------------------^---!', ]; const unsub = ' --------------------------------------------!'; const expected = '--a--b----a--b----a--b----a--b----a--b----a--'; const result = e1.pipe( mergeMap((x: string) => of(x)), repeat(), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should consider negative count as no repeat, and return EMPTY', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('--a--b--| '); const expected = '|'; expectObservable(e1.pipe(repeat(-1))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe([]); }); }); it('should always finalization before starting the next cycle', async () => { const results: any[] = []; const source = new Observable((subscriber) => { Promise.resolve().then(() => { subscriber.next(1); Promise.resolve().then(() => { subscriber.next(2); Promise.resolve().then(() => { subscriber.complete(); }); }); }); return () => { results.push('finalizer'); }; }); await source.pipe(repeat(3)).forEach((value) => results.push(value)); expect(results).to.deep.equal([1, 2, 'finalizer', 1, 2, 'finalizer', 1, 2, 'finalizer']); }); it('should always finalize before starting the next cycle, even when synchronous', () => { const results: any[] = []; const source = new Observable((subscriber) => { subscriber.next(1); subscriber.next(2); subscriber.complete(); return () => { results.push('finalizer'); }; }); const subscription = source.pipe(repeat(3)).subscribe({ next: (value) => results.push(value), complete: () => results.push('complete'), }); expect(subscription.closed).to.be.true; expect(results).to.deep.equal([1, 2, 'finalizer', 1, 2, 'finalizer', 1, 2, 'complete', 'finalizer']); }); it('should not complete when source never completes', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('-'); const e1subs = '^'; const expected = '-'; expectObservable(e1.pipe(repeat(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete when source does not completes', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('-'); const unsub = '------------------------------!'; const subs = ' ^-----------------------------!'; const expected = '-'; expectObservable(e1.pipe(repeat(3)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should complete immediately when source does not complete without emit but count is zero', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('-'); const subs: string[] = []; const expected = '|'; expectObservable(e1.pipe(repeat(0))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should complete immediately when source does not complete but count is zero', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('--a--b--'); const subs: string[] = []; const expected = '|'; expectObservable(e1.pipe(repeat(0))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should emit source once and does not complete when source emits but does not complete', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--b--'); const subs = [' ^-------']; const expected = '--a--b--'; expectObservable(e1.pipe(repeat(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should complete when source is empty', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('|'); const e1subs = ['(^!)', '(^!)', '(^!)']; const expected = '|'; expectObservable(e1.pipe(repeat(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete when source does not emit', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('----| '); const subs = [ ' ^---! ', // ' ----^---! ', ' --------^---!', ]; const expected = '------------|'; expectObservable(e1.pipe(repeat(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should complete immediately when source does not emit but count is zero', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('----|'); const subs: string[] = []; const expected = '|'; expectObservable(e1.pipe(repeat(0))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should raise error when source raises error', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--b--#'); const subs = ' ^-------!'; const expected = '--a--b--#'; expectObservable(e1.pipe(repeat(2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should raises error if source throws', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('#'); const e1subs = '(^!)'; const expected = '#'; expectObservable(e1.pipe(repeat(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raises error if source throws when repeating infinitely', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('#'); const e1subs = '(^!)'; const expected = '#'; expectObservable(e1.pipe(repeat())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error after first emit succeed', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { let repeated = false; const e1 = cold('--a--|').pipe( map((x: string) => { if (repeated) { throw 'error'; } else { repeated = true; return x; } }) ); const expected = '--a----#'; expectObservable(e1.pipe(repeat(2))).toBe(expected); }); }); it('should repeat a synchronous source (multicasted and refCounted) multiple times', (done) => { const expected = [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]; of(1, 2, 3) .pipe( multicast(() => new Subject()), refCount(), repeat(5) ) .subscribe({ next: (x: number) => { expect(x).to.equal(expected.shift()); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { expect(expected.length).to.equal(0); done(); }, }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(repeat(), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); it('should allow count configuration', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--b--| '); const subs = [ ' ^-------! ', // ' --------^-------! ', ' ----------------^-------!', ]; const expected = '--a--b----a--b----a--b--|'; expectObservable(e1.pipe(repeat({ count: 3 }))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should allow delay time configuration', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a--b--| '); const delay = 3; // ---| ---| const subs = [ ' ^-------! ', // ' -----------^-------! ', ' ----------------------^-------!', ]; const expected = '--a--b-------a--b-------a--b--|'; expectObservable(e1.pipe(repeat({ count: 3, delay }))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should allow delay function configuration', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const expectedCounts = [1, 2, 3]; const e1 = cold(' --a--b--| '); const delay = 3; // ---| ---| const subs = [ ' ^-------! ', // ' -----------^-------! ', ' ----------------------^-------!', ]; const expected = '--a--b-------a--b-------a--b--|'; expectObservable( e1.pipe( repeat({ count: 3, delay: (count) => { expect(count).to.equal(expectedCounts.shift()); return timer(delay); }, }) ) ).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle delay function throwing', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const expectedCounts = [1, 2, 3]; const e1 = cold(' --a--b--| '); const delay = 3; // ---| ---| const subs = [ ' ^-------! ', // ' -----------^-------! ', ]; const expected = '--a--b-------a--b--#'; expectObservable( e1.pipe( repeat({ count: 3, delay: (count) => { if (count === 2) { throw 'bad'; } return timer(delay); }, }) ) ).toBe(expected, undefined, 'bad'); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); }); rxjs-7.5.7/spec/operators/repeatWhen-spec.ts000066400000000000000000000451171431412030200210700ustar00rootroot00000000000000import { expect } from 'chai'; import { repeatWhen, map, mergeMap, takeUntil, takeWhile, take } from 'rxjs/operators'; import { of, EMPTY, Observable, Subscriber } from 'rxjs'; import { SafeSubscriber } from 'rxjs/internal/Subscriber'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {repeatWhen} */ describe('repeatWhen operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should handle a source with eventual complete using a hot notifier', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold('-1--2--|'); // -1--2--| // -1--2--| const subs = [ ' ^------! ', ' -------------^------! ', ' --------------------------^------!', ]; const notifier = hot('-------------r------------r-| '); const expected = ' -1--2---------1--2---------1--2--|'; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should handle a source with eventual complete using a hot notifier that raises error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1--2--|'); const subs = [ ' ^------! ', ' -----------^------! ', ' -------------------^------! ', ]; const notifier = hot('-----------r-------r---------#'); const expected = ' -1--2-------1--2----1--2-----#'; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should repeat when notified via returned notifier on complete', (done) => { let retried = false; const expected = [1, 2, 1, 2]; let i = 0; try { of(1, 2) .pipe( map((n: number) => { return n; }), repeatWhen((notifications: any) => notifications.pipe( map((x: any) => { if (retried) { throw new Error('done'); } retried = true; return x; }) ) ) ) .subscribe({ next: (x: any) => { expect(x).to.equal(expected[i++]); }, error: (err: any) => { expect(err).to.be.an('error', 'done'); done(); }, }); } catch (err) { done(err); } }); it('should not repeat when applying an empty notifier', (done) => { const expected = [1, 2]; const nexted: number[] = []; of(1, 2) .pipe( map((n: number) => { return n; }), repeatWhen((notifications: any) => EMPTY) ) .subscribe({ next: (n: number) => { expect(n).to.equal(expected.shift()); nexted.push(n); }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { expect(nexted).to.deep.equal([1, 2]); done(); }, }); }); it('should not error when applying an empty synchronous notifier', () => { const errors: any[] = []; // The current Subscriber.prototype.error implementation does nothing for // stopped subscribers. This test was written to fail and expose a problem // with synchronous notifiers. However, by the time the error occurs the // subscriber is stopped, so the test logs errors by both patching the // prototype and by using an error callback (for when/if the do-nothing-if- // stopped behaviour is fixed). const originalSubscribe = Observable.prototype.subscribe; Observable.prototype.subscribe = function (...args: any[]): any { let [subscriber] = args; if (!(subscriber instanceof Subscriber)) { subscriber = new SafeSubscriber(...args); } subscriber.error = function (err: any): void { errors.push(err); Subscriber.prototype.error.call(this, err); }; return originalSubscribe.call(this, subscriber); }; of(1, 2) .pipe(repeatWhen((notifications: any) => EMPTY)) .subscribe({ error: (err) => errors.push(err) }); Observable.prototype.subscribe = originalSubscribe; expect(errors).to.deep.equal([]); }); it('should not error when applying a non-empty synchronous notifier', () => { const errors: any[] = []; // The current Subscriber.prototype.error implementation does nothing for // stopped subscribers. This test was written to fail and expose a problem // with synchronous notifiers. However, by the time the error occurs the // subscriber is stopped, so the test logs errors by both patching the // prototype and by using an error callback (for when/if the do-nothing-if- // stopped behaviour is fixed). const originalSubscribe = Observable.prototype.subscribe; Observable.prototype.subscribe = function (...args: any[]): any { let [subscriber] = args; if (!(subscriber instanceof Subscriber)) { subscriber = new SafeSubscriber(...args); } subscriber.error = function (err: any): void { errors.push(err); Subscriber.prototype.error.call(this, err); }; return originalSubscribe.call(this, subscriber); }; of(1, 2) .pipe(repeatWhen((notifications: any) => of(1))) .subscribe({ error: (err) => errors.push(err) }); Observable.prototype.subscribe = originalSubscribe; expect(errors).to.deep.equal([]); }); it('should apply an empty notifier on an empty source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' | '); const subs = ' (^!)'; const notifier = cold('| '); const expected = ' | '; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should apply a never notifier on an empty source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' | '); const subs = ' (^!)'; const notifier = cold('- '); const expected = ' - '; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should apply an empty notifier on a never source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' - '); const unsub = ' -----------------------------------------!'; const subs = ' ^----------------------------------------!'; const notifier = cold('| '); const expected = ' - '; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should apply a never notifier on a never source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' - '); const unsub = ' -----------------------------------------!'; const subs = ' ^----------------------------------------!'; const notifier = cold('- '); const expected = ' - '; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should return an empty observable given a just-throw source and empty notifier', () => { testScheduler.run(({ cold, expectObservable }) => { const source = cold(' #'); const notifier = cold('|'); const expected = ' #'; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result).toBe(expected); }); }); it('should return a error observable given a just-throw source and never notifier', () => { testScheduler.run(({ cold, expectObservable }) => { const source = cold(' #'); const notifier = cold('-'); const expected = ' #'; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result).toBe(expected); }); }); it('should return a never-ending result if the notifier is never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' --a--b--c--| '); const subs = ' ^----------! '; const notifier = cold(' - '); const expected = ' --a--b--c---------------------------------'; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should propagate error thrown from notifierSelector function', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--a--b--c--|'); const subs = ' ^----------!'; const expected = ' --a--b--c--#'; const result = source.pipe( repeatWhen((() => { throw 'bad!'; })) ); expectObservable(result).toBe(expected, undefined, 'bad!'); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should complete if the notifier only completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' --a--b--c--|'); const subs = ' ^----------!'; const notifier = cold(' |'); const expected = ' --a--b--c--|'; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should mirror a basic cold source with complete, given a never notifier', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' --a--b--c--|'); const subs = ' ^----------!'; const notifier = cold(' |'); const expected = ' --a--b--c--|'; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should mirror a basic cold source with no termination, given a never notifier', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' --a--b--c---'); const subs = ' ^-----------'; const notifier = cold(' |'); const expected = ' --a--b--c---'; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should mirror a basic hot source with complete, given a never notifier', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = hot('-a-^--b--c--|'); const subs = ' ^--------!'; const notifier = cold(' |'); const expected = ' ---b--c--|'; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); // https://github.com/ReactiveX/rxjs/issues/6523 it.skip('should handle a host source that completes via operator like take, and a hot notifier', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot(' -1--2--3----4--5---|'); // prettier-ignore const ssubs = [ ' ^------! ', ' -------------^----! ' ]; const notifier = hot('--------------r--------r---r--r--r---|'); const nsubs = ' -------^-----------!'; const expected = ' -1--2----------5---|'; const result = source.pipe( takeWhile((value) => value !== '3'), repeatWhen(() => notifier) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(ssubs); expectSubscriptions(notifier.subscriptions).toBe(nsubs); }); }); it('should tear down resources when result is unsubscribed early', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1--2--|'); const unsub = ' --------------------! '; const subs = [ ' ^------! ', ' ---------^------! ', ' -----------------^--! ', ]; const notifier = hot('---------r-------r---------#'); const nsubs = ' -------^------------! '; const expected = ' -1--2-----1--2----1-- '; const result = source.pipe(repeatWhen((notifications: any) => notifier)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); expectSubscriptions(notifier.subscriptions).toBe(nsubs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1--2--|'); const subs = [ ' ^------! ', ' ---------^------! ', ' -----------------^--! ', ]; const notifier = hot('---------r-------r-------r-#'); const nsubs = ' -------^------------! '; const expected = ' -1--2-----1--2----1-- '; const unsub = ' --------------------! '; const result = source.pipe( mergeMap((x: string) => of(x)), repeatWhen((notifications: any) => notifier), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); expectSubscriptions(notifier.subscriptions).toBe(nsubs); }); }); it('should handle a source with eventual error using a dynamic notifier selector which eventually throws', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-1--2--|'); const subs = [ ' ^------! ', ' -------^------! ', ' --------------^------!', ]; const expected = ' -1--2---1--2---1--2--#'; let invoked = 0; const result = source.pipe( repeatWhen((notifications: any) => notifications.pipe( map((err: any) => { if (++invoked === 3) { throw 'error'; } else { return 'x'; } }) ) ) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should handle a source with eventual error using a dynamic notifier selector which eventually completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-1--2--|'); const subs = [ ' ^------! ', ' -------^------! ', ' --------------^------!', ]; const expected = ' -1--2---1--2---1--2--|'; let invoked = 0; const result = source.pipe( repeatWhen((notifications: any) => notifications.pipe( map(() => 'x'), takeUntil( notifications.pipe( mergeMap(() => { if (++invoked < 3) { return EMPTY; } else { return of('stop!'); } }) ) ) ) ) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should always finalize before starting the next cycle, even when synchronous', () => { const results: any[] = []; const source = new Observable((subscriber) => { subscriber.next(1); subscriber.next(2); subscriber.complete(); return () => { results.push('finalizer'); }; }); const subscription = source.pipe(repeatWhen((completions$) => completions$.pipe(takeWhile((_, i) => i < 3)))).subscribe({ next: (value) => results.push(value), complete: () => results.push('complete'), }); expect(subscription.closed).to.be.true; expect(results).to.deep.equal([1, 2, 'finalizer', 1, 2, 'finalizer', 1, 2, 'finalizer', 1, 2, 'complete', 'finalizer']); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( repeatWhen(() => of(0)), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/retry-spec.ts000066400000000000000000000534321431412030200201320ustar00rootroot00000000000000import { expect } from 'chai'; import { retry, map, take, mergeMap, concat, multicast, refCount } from 'rxjs/operators'; import { Observable, Observer, defer, range, of, throwError, Subject, timer, EMPTY } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {retry} */ describe('retry', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); it('should handle a basic source that emits next then errors, count=3', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2-3-#'); const subs = [ ' ^-------! ', ' --------^-------! ', ' ----------------^-------!', ]; const expected = ' --1-2-3---1-2-3---1-2-3-#'; const result = source.pipe(retry(2)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should retry a number of times, without error, then complete', (done) => { let errors = 0; const retries = 2; new Observable((observer: Observer) => { observer.next(42); observer.complete(); }) .pipe( map((x: any) => { if (++errors < retries) { throw 'bad'; } errors = 0; return x; }), retry(retries) ) .subscribe({ next(x: number) { expect(x).to.equal(42); }, error() { expect('this was called').to.be.true; }, complete: done, }); }); it('should retry a number of times, then call error handler', (done) => { let errors = 0; const retries = 2; new Observable((observer: Observer) => { observer.next(42); observer.complete(); }) .pipe( map(() => { errors += 1; throw 'bad'; }), retry(retries - 1) ) .subscribe({ next() { done("shouldn't next"); }, error() { expect(errors).to.equal(2); done(); }, complete() { done("shouldn't complete"); }, }); }); it('should retry a number of times, then call error handler (with resetOnSuccess)', (done) => { let errors = 0; const retries = 2; new Observable((observer: Observer) => { observer.next(42); observer.complete(); }) .pipe( map(() => { errors += 1; throw 'bad'; }), retry({ count: retries - 1, resetOnSuccess: true }) ) .subscribe({ next() { done("shouldn't next"); }, error() { expect(errors).to.equal(2); done(); }, complete() { done("shouldn't complete"); }, }); }); it('should retry a number of times, then call next handler without error, then retry and complete', (done) => { let index = 0; let errors = 0; const retries = 2; defer(() => range(0, 4 - index)) .pipe( mergeMap(() => { index++; if (index === 1 || index === 3) { errors++; return throwError(() => 'bad'); } else { return of(42); } }), retry({ count: retries - 1, resetOnSuccess: true }) ) .subscribe({ next(x: number) { expect(x).to.equal(42); }, error() { done("shouldn't error"); }, complete() { expect(errors).to.equal(retries); done(); }, }); }); it('should always finalize before starting the next cycle, even when synchronous', () => { const results: any[] = []; const source = new Observable((subscriber) => { subscriber.next(1); subscriber.next(2); subscriber.error('bad'); return () => { results.push('finalizer'); }; }); const subscription = source.pipe(retry(3)).subscribe({ next: (value) => results.push(value), error: (err) => results.push(err), }); expect(subscription.closed).to.be.true; expect(results).to.deep.equal([1, 2, 'finalizer', 1, 2, 'finalizer', 1, 2, 'finalizer', 1, 2, 'bad', 'finalizer']); }); it('should retry a number of times, then call next handler without error, then retry and error', (done) => { let index = 0; let errors = 0; const retries = 2; defer(() => range(0, 4 - index)) .pipe( mergeMap(() => { index++; if (index === 1 || index === 3) { errors++; return throwError(() => 'bad'); } else { return of(42); } }), retry({ count: retries - 1, resetOnSuccess: false }) ) .subscribe({ next(x: number) { expect(x).to.equal(42); }, error() { expect(errors).to.equal(retries); done(); }, complete() { done("shouldn't complete"); }, }); }); it('should retry until successful completion', (done) => { let errors = 0; const retries = 10; new Observable((observer: Observer) => { observer.next(42); observer.complete(); }) .pipe( map((x: any) => { if (++errors < retries) { throw 'bad'; } errors = 0; return x; }), retry(), take(retries) ) .subscribe({ next(x: number) { expect(x).to.equal(42); }, error() { expect('this was called').to.be.true; }, complete: done, }); }); it('should handle an empty source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('| '); const subs = ' (^!)'; const expected = ' | '; const result = source.pipe(retry()); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should handle a never source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-'); const subs = ' ^'; const expected = ' -'; const result = source.pipe(retry()); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should return a never observable given an async just-throw source and no count', () => { rxTest.run(({ cold, expectObservable }) => { const source = cold('-# '); // important that it's not a sync error const unsub = ' -------------------------------------!'; const expected = ' --------------------------------------'; const result = source.pipe(retry()); expectObservable(result, unsub).toBe(expected); }); }); it('should handle a basic source that emits next then completes', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--1--2--^--3--4--5---|'); const subs = ' ^------------!'; const expected = ' ---3--4--5---|'; const result = source.pipe(retry()); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should handle a basic source that emits next but does not complete', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--1--2--^--3--4--5---'); const subs = ' ^------------'; const expected = ' ---3--4--5---'; const result = source.pipe(retry()); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should handle a basic source that emits next then errors, no count', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2-3-# '); // --1-2-3-# // --1-2-3-# // --1-2-3-# // --1-2-3-# const unsub = ' -------------------------------------!'; const subs = [ ' ^-------! ', ' --------^-------! ', ' ----------------^-------! ', ' ------------------------^-------! ', ' --------------------------------^----!', ]; const expected = ' --1-2-3---1-2-3---1-2-3---1-2-3---1-2-'; const result = source.pipe(retry()); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should handle a source which eventually throws, count=3, and result is unsubscribed early', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2-3-# '); // --1-2-3-# const unsub = ' -------------!'; // prettier-ignore const subs = [ ' ^-------! ', ' --------^----!', ]; const expected = ' --1-2-3---1-2-'; const result = source.pipe(retry(3)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2-3-# '); // --1-2-3-# // prettier-ignore const subs = [ ' ^-------! ', ' --------^----!', ]; const expected = ' --1-2-3---1-2-'; const unsub = ' -------------!'; const result = source.pipe( mergeMap((x: string) => of(x)), retry(100), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should retry a synchronous source (multicasted and refCounted) multiple times', (done) => { const expected = [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]; of(1, 2, 3) .pipe( concat(throwError(() => 'bad!')), multicast(() => new Subject()), refCount(), retry(4) ) .subscribe({ next(x: number) { expect(x).to.equal(expected.shift()); }, error(err: any) { expect(err).to.equal('bad!'); expect(expected.length).to.equal(0); done(); }, complete() { done(new Error('should not be called')); }, }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(retry(1), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); it('should not alter the source when the number of retries is smaller than 1', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2-3-# '); const subs = [' ^-------! ']; const expected = ' --1-2-3-# '; const unsub = ' ---------!'; const result = source.pipe(retry(0)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); describe('with delay config', () => { describe('of a number', () => { it('should delay the retry by a specified amount of time', () => { rxTest.run(({ cold, time, expectSubscriptions, expectObservable }) => { const source = cold('---a---b---#'); const t = time(' ----|'); const subs = [ // ' ^----------!', ' ---------------^----------!', ' ------------------------------^----------!', ' ---------------------------------------------^----!', ]; const unsub = ' ^-------------------------------------------------!'; const expected = ' ---a---b----------a---b----------a---b----------a--'; const result = source.pipe( retry({ delay: t, }) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should act like a normal retry if delay is set to 0', () => { rxTest.run(({ cold, expectSubscriptions, expectObservable }) => { const source = cold('---a---b---#'); const subs = [ // ' ^----------!', ' -----------^----------!', ' ----------------------^----------!', ' ---------------------------------^----!', ]; const unsub = ' ^-------------------------------------!'; const expected = ' ---a---b------a---b------a---b------a--'; const result = source.pipe( retry({ delay: 0, }) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should act like a normal retry if delay is less than 0', () => { rxTest.run(({ cold, expectSubscriptions, expectObservable }) => { const source = cold('---a---b---#'); const subs = [ // ' ^----------!', ' -----------^----------!', ' ----------------------^----------!', ' ---------------------------------^----!', ]; const unsub = ' ^-------------------------------------!'; const expected = ' ---a---b------a---b------a---b------a--'; const result = source.pipe( retry({ delay: -100, }) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should honor count as the max retries', () => { rxTest.run(({ cold, time, expectSubscriptions, expectObservable }) => { const source = cold('---a---b---#'); const t = time(' ----|'); const subs = [ // ' ^----------!', ' ---------------^----------!', ' ------------------------------^----------!', ]; const expected = ' ---a---b----------a---b----------a---b---#'; const result = source.pipe( retry({ count: 2, delay: t, }) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); }); describe('of a function', () => { it('should delay the retry with a function that returns a notifier', () => { rxTest.run(({ cold, expectSubscriptions, expectObservable }) => { const source = cold('---a---b---#'); const subs = [ // ' ^----------!', ' ------------^----------!', ' -------------------------^----------!', ' ---------------------------------------^----!', ]; const unsub = ' ^-------------------------------------------!'; const expected = ' ---a---b-------a---b--------a---b---------a--'; const result = source.pipe( retry({ delay: (_err, retryCount) => { // retryCount will be 1, 2, 3, etc. return timer(retryCount); }, }) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should delay the retry with a function that returns a hot observable', () => { rxTest.run(({ cold, hot, expectSubscriptions, expectObservable }) => { const source = cold(' ---a---b---#'); const notifier = hot('--------------x----------------x----------------x------'); const subs = [ // ' ^----------!', ' --------------^----------!', ' -------------------------------^----------!', ]; const notifierSubs = [ // ' -----------^--!', ' -------------------------^-----!', ' ------------------------------------------^-!', ]; const unsub = ' ^-------------------------------------------!'; const expected = ' ---a---b---------a---b------------a---b------'; const result = source.pipe( retry({ delay: () => notifier, }) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); expectSubscriptions(notifier.subscriptions).toBe(notifierSubs); }); }); it('should complete if the notifier completes', () => { rxTest.run(({ cold, expectSubscriptions, expectObservable }) => { const source = cold('---a---b---#'); const subs = [ // ' ^----------!', ' ------------^----------!', ' -------------------------^----------!', ' ------------------------------------!', ]; const expected = ' ---a---b-------a---b--------a---b---|'; const result = source.pipe( retry({ delay: (_err, retryCount) => { return retryCount <= 2 ? timer(retryCount) : EMPTY; }, }) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error if the notifier errors', () => { rxTest.run(({ cold, expectSubscriptions, expectObservable }) => { const source = cold('---a---b---#'); const subs = [ // ' ^----------!', ' ------------^----------!', ' -------------------------^----------!', ' ------------------------------------!', ]; const expected = ' ---a---b-------a---b--------a---b---#'; const result = source.pipe( retry({ delay: (_err, retryCount) => { return retryCount <= 2 ? timer(retryCount) : throwError(() => new Error('blah')); }, }) ); expectObservable(result).toBe(expected, undefined, new Error('blah')); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error if the delay function throws', () => { rxTest.run(({ cold, expectSubscriptions, expectObservable }) => { const source = cold('---a---b---#'); const subs = [ // ' ^----------!', ' ------------^----------!', ' -------------------------^----------!', ' ------------------------------------!', ]; const expected = ' ---a---b-------a---b--------a---b---#'; const result = source.pipe( retry({ delay: (_err, retryCount) => { if (retryCount <= 2) { return timer(retryCount); } else { throw new Error('blah'); } }, }) ); expectObservable(result).toBe(expected, undefined, new Error('blah')); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should be usable for exponential backoff', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('---a---#'); const subs = [ // ' ^------!', ' ---------^------!', ' --------------------^------!', ' -----------------------------------^------!', ]; const expected = ' ---a--------a----------a--------------a---#'; const result = source.pipe( retry({ count: 3, delay: (_err, retryCount) => timer(2 ** retryCount), }) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); }); }); }); rxjs-7.5.7/spec/operators/retryWhen-spec.ts000066400000000000000000000404171431412030200207530ustar00rootroot00000000000000import { expect } from 'chai'; import { retryWhen, map, mergeMap, takeUntil, take } from 'rxjs/operators'; import { of, EMPTY, Observable, throwError } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {retryWhen} */ describe('retryWhen', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); it('should handle a source with eventual error using a hot notifier', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1--2--# '); // -1--2--# // -1--2--# const subs = [ ' ^------! ', ' -------------^------! ', ' --------------------------^-!', ]; const notifier = hot('-------------r------------r-|'); const expected = ' -1--2---------1--2---------1|'; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should handle a source with eventual error using a hot notifier that raises error', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1--2--# '); // -1--2--# // -1--2--# const subs = [ ' ^------! ', ' -----------^------! ', ' -------------------^------! ', ]; const notifier = hot('-----------r-------r---------#'); const expected = ' -1--2-------1--2----1--2-----#'; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should retry when notified via returned notifier on thrown error', (done) => { let retried = false; const expected = [1, 2, 1, 2]; let i = 0; of(1, 2, 3) .pipe( map((n: number) => { if (n === 3) { throw 'bad'; } return n; }), retryWhen((errors: any) => errors.pipe( map((x: any) => { expect(x).to.equal('bad'); if (retried) { throw new Error('done'); } retried = true; return x; }) ) ) ) .subscribe({ next(x: any) { expect(x).to.equal(expected[i++]); }, error(err: any) { expect(err).to.be.an('error', 'done'); done(); }, }); }); it('should retry when notified and complete on returned completion', (done) => { const expected = [1, 2, 1, 2]; of(1, 2, 3) .pipe( map((n: number) => { if (n === 3) { throw 'bad'; } return n; }), retryWhen(() => EMPTY) ) .subscribe({ next(n: number) { expect(n).to.equal(expected.shift()); }, error() { done(new Error('should not be called')); }, complete() { done(); }, }); }); it('should apply an empty notifier on an empty source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' | '); const subs = ' (^!)'; const notifier = cold('| '); const expected = ' | '; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should apply a never notifier on an empty source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' | '); const subs = ' (^!)'; const notifier = cold('- '); const expected = ' | '; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should apply an empty notifier on a never source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' ------------------------------------------'); const unsub = ' -----------------------------------------!'; const subs = ' ^----------------------------------------!'; const notifier = cold('| '); const expected = ' ------------------------------------------'; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should apply a never notifier on a never source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' -----------------------------------------'); const unsub = ' -----------------------------------------!'; const subs = ' ^----------------------------------------!'; const notifier = cold('------------------------------------------'); const expected = ' -----------------------------------------'; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should return an empty observable given a just-throw source and empty notifier', () => { rxTest.run(({ cold, expectObservable }) => { const source = cold(' #'); const notifier = cold('|'); const expected = ' |'; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result).toBe(expected); }); }); it('should return a never observable given a just-throw source and never notifier', () => { rxTest.run(({ cold, expectObservable }) => { const source = cold(' #'); const notifier = cold('-'); const expected = ' -'; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result).toBe(expected); }); }); it('should hide errors using a never notifier on a source with eventual error', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' --a--b--c--# '); const subs = ' ^----------! '; const notifier = cold(' -------------------------------'); const expected = ' --a--b--c---------------------------------'; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should propagate error thrown from notifierSelector function', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--a--b--c--#'); const subs = ' ^----------!'; const expected = ' --a--b--c--#'; const result = source.pipe( retryWhen(() => { throw 'bad!'; }) ); expectObservable(result).toBe(expected, undefined, 'bad!'); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should replace error with complete using an empty notifier on a source with eventual error', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' --a--b--c--#'); const subs = ' ^----------!'; const notifier = cold(' |'); const expected = ' --a--b--c--|'; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should mirror a basic cold source with complete, given an empty notifier', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' --a--b--c--|'); const subs = ' ^----------!'; const notifier = cold(' |'); const expected = ' --a--b--c--|'; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should mirror a basic cold source with no termination, given an empty notifier', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' --a--b--c---'); const subs = ' ^-----------'; const notifier = cold(' |'); const expected = ' --a--b--c---'; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should mirror a basic hot source with complete, given an empty notifier', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = hot('-a-^--b--c--|'); const subs = ' ^--------!'; const notifier = cold(' |'); const expected = ' ---b--c--|'; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should handle a hot source that raises error but eventually completes', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot(' -1--2--3----4--5---| '); const ssubs = [ ' ^------! ', ' --------------^----! ', ]; const notifier = hot('--------------r--------r---r--r--r---|'); const nsubs = ' -------^-----------! '; const expected = ' -1--2----------5---| '; const result = source.pipe( map((x: string) => { if (x === '3') { throw 'error'; } return x; }), retryWhen(() => notifier) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(ssubs); expectSubscriptions(notifier.subscriptions).toBe(nsubs); }); }); it('should tear down resources when result is unsubscribed early', () => { rxTest.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = cold(' -1--2--# '); // -1--2--# // -1--2--# const unsub = ' --------------------! '; const subs = [ ' ^------! ', ' ---------^------! ', ' -----------------^--! ', ]; const notifier = hot('---------r-------r---------#'); const nsubs = ' -------^------------! '; const expected = ' -1--2-----1--2----1-- '; const result = source.pipe(retryWhen(() => notifier)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); expectSubscriptions(notifier.subscriptions).toBe(nsubs); }); }); it('should not break unsubscription chains when unsubscribed explicitly', () => { rxTest.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = cold(' -1--2--# '); // -1--2--# // -1--2--# const subs = [ ' ^------! ', ' ---------^------! ', ' -----------------^--! ', ]; const notifier = hot('---------r-------r-------r-#'); const nsubs = ' -------^------------! '; const expected = ' -1--2-----1--2----1-- '; const unsub = ' --------------------! '; const result = source.pipe( mergeMap((x: string) => of(x)), retryWhen(() => notifier), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); expectSubscriptions(notifier.subscriptions).toBe(nsubs); }); }); it('should handle a source with eventual error using a dynamic notifier selector which eventually throws', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-1--2--# '); // -1--2--# // -1--2--# const subs = [ ' ^------! ', ' -------^------! ', ' --------------^------!', ]; const expected = ' -1--2---1--2---1--2--#'; let invoked = 0; const result = source.pipe( retryWhen((errors: any) => errors.pipe( map(() => { if (++invoked === 3) { throw 'error'; } else { return 'x'; } }) ) ) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should handle a source with eventual error using a dynamic notifier selector which eventually completes', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-1--2--# '); // -1--2--# // -1--2--# const subs = [ ' ^------! ', ' -------^------! ', ' --------------^------!', ]; const expected = ' -1--2---1--2---1--2--|'; let invoked = 0; const result = source.pipe( retryWhen((errors: any) => errors.pipe( map(() => 'x'), takeUntil( errors.pipe( mergeMap(() => { if (++invoked < 3) { return EMPTY; } else { return of('stop!'); } }) ) ) ) ) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should always finalize before starting the next cycle, even when synchronous', () => { const results: any[] = []; const source = new Observable((subscriber) => { subscriber.next(1); subscriber.next(2); subscriber.error('bad'); return () => { results.push('finalizer'); }; }); const subscription = source .pipe(retryWhen((errors$) => errors$.pipe(mergeMap((err, i) => (i < 3 ? of(true) : throwError(() => err)))))) .subscribe({ next: (value) => results.push(value), error: (err) => results.push(err), }); expect(subscription.closed).to.be.true; expect(results).to.deep.equal([1, 2, 'finalizer', 1, 2, 'finalizer', 1, 2, 'finalizer', 1, 2, 'bad', 'finalizer']); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( retryWhen(() => of(0)), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/sample-spec.ts000066400000000000000000000251021431412030200202370ustar00rootroot00000000000000import { expect } from 'chai'; import { sample, mergeMap } from 'rxjs/operators'; import { Subject, of } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {sample} */ describe('sample', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); it('should get samples when the notifier emits', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a----b---c----------d-----| '); const e1subs = ' ^----------------------------! '; const e2 = hot(' -----x----------x---x------x---| '); const e2subs = ' ^----------------------------! '; const expected = '-----a----------c----------d-| '; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should sample nothing if source has not nexted at all', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('----a-^------------|'); const e1subs = ' ^------------!'; const e2 = hot(' -----x-------|'); const e2subs = ' ^------------!'; const expected = ' -------------|'; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should behave properly when notified by the same observable as the source (issue #2075)', () => { const item$ = new Subject(); const results: number[] = []; item$.pipe(sample(item$)).subscribe((value) => results.push(value)); item$.next(1); item$.next(2); item$.next(3); expect(results).to.deep.equal([1, 2, 3]); }); it('should sample nothing if source has nexted after all notifications, but notifier does not complete', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a-^------b-----|'); const e1subs = ' ^------------!'; const e2 = hot(' -----x--------'); const e2subs = ' ^------------!'; const expected = ' -------------|'; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not sample when the notifier completes', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a-^------b----------|'); const e1subs = ' ^-----------------!'; const e2 = hot(' -----x-----| '); const e2subs = ' ^----------! '; const expected = ' ------------------|'; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete when the notifier completes, nor should it emit', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a----b----c----d----e----f----'); const e1subs = ' ^---------------------------------'; const e2 = hot(' ------x-| '); const e2subs = ' ^-------! '; const expected = '------a---------------------------'; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should complete only when the source completes, if notifier completes early', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a----b----c----d----e----f---|'); const e1subs = ' ^--------------------------------!'; const e2 = hot(' ------x-| '); const e2subs = ' ^-------! '; const expected = '------a--------------------------|'; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should allow unsubscribing explicitly and early', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a-^--b----c----d----e----f----| '); const unsub = ' --------------! '; const e1subs = ' ^-------------! '; const e2 = hot(' -----x----------x----------x----------|'); const e2subs = ' ^-------------! '; const expected = ' -----b--------- '; expectObservable(e1.pipe(sample(e2)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a-^--b----c----d----e----f----| '); const e1subs = ' ^-------------! '; const e2 = hot(' -----x----------x----------x----------|'); const e2subs = ' ^-------------! '; const expected = ' -----b--------- '; const unsub = ' --------------! '; const result = e1.pipe( mergeMap((x: string) => of(x)), sample(e2), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should only sample when a new value arrives, even if it is the same value', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a----b----c----c----e----f----| '); const e1subs = ' ^---------------------------------! '; const e2 = hot(' ------x-x------xx-x---x----x--------|'); const e2subs = ' ^---------------------------------! '; const expected = '------a--------c------c----e------| '; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error if source raises error', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a-^--b----c----d----# '); const e1subs = ' ^-----------------! '; const e2 = hot(' -----x----------x----------x----------|'); const e2subs = ' ^-----------------! '; const expected = ' -----b----------d-# '; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should completes if source does not emits', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' | '); const e2 = hot(' ------x-------|'); const expected = '| '; const e1subs = ' (^!) '; const e2subs = ' (^!) '; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error if source throws immediately', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' # '); const e2 = hot(' ------x-------|'); const expected = '# '; const e1subs = ' (^!) '; const e2subs = ' (^!) '; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error if notification raises error', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a-----|'); const e2 = hot(' ----# '); const expected = '----# '; const e1subs = ' ^---! '; const e2subs = ' ^---! '; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not completes if source does not complete', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---------------'); const e1subs = ' ^--------------'; const e2 = hot(' ------x-------|'); const e2subs = ' ^-------------!'; const expected = '---------------'; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should sample only until source completes', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a----b----c----d-| '); const e1subs = ' ^--------------------! '; const e2 = hot(' -----------x----------x------------|'); const e2subs = ' ^--------------------! '; const expected = '-----------b---------| '; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should complete sampling if sample observable completes', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a----b----c----d-|'); const e1subs = ' ^--------------------!'; const e2 = hot(' | '); const e2subs = ' (^!) '; const expected = '---------------------|'; expectObservable(e1.pipe(sample(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); }); rxjs-7.5.7/spec/operators/sampleTime-spec.ts000066400000000000000000000140001431412030200210510ustar00rootroot00000000000000import { sampleTime, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {sampleTime} */ describe('sampleTime', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); it('should get samples on a delay', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot(' a---b-c---------d--e---f-g-h--|'); const e1subs = ' ^-----------------------------!'; const expected = ' -------c-------------e------h-|'; // period -------!------!------!------!-- const period = time('-------| '); expectObservable(e1.pipe(sampleTime(period, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should sample nothing if new value has not arrived', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot(' ----a-^--b----c--------------f----|'); const e1subs = ' ^---------------------------!'; const expected = ' -----------c----------------|'; // period -----------!----------!--------- const period = time(' -----------| '); expectObservable(e1.pipe(sampleTime(period, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should sample if new value has arrived, even if it is the same value', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot('----a-^--b----c----------c---f----|'); const e1subs = ' ^---------------------------!'; const expected = ' -----------c----------c-----|'; // period -----------!----------!--------- const period = time(' -----------| '); expectObservable(e1.pipe(sampleTime(period, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should sample nothing if source has not nexted by time of sample', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot('----a-^-------------b-------------|'); const e1subs = ' ^---------------------------!'; const expected = ' ----------------------b-----|'; // period -----------!----------!--------- const period = time(' -----------| '); expectObservable(e1.pipe(sampleTime(period, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source raises error', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot('----a-^--b----c----d----#'); const e1subs = ' ^-----------------!'; const expected = ' -----------c------#'; // period -----------!----------!--------- const period = time(' -----------| '); expectObservable(e1.pipe(sampleTime(period, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot('----a-^--b----c----d----e----f----|'); const unsub = ' ----------------! '; const e1subs = ' ^---------------! '; const expected = ' -----------c----- '; // period -----------!----------!--------- const period = time(' -----------| '); expectObservable(e1.pipe(sampleTime(period, rxTest)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot('----a-^--b----c----d----e----f----|'); const e1subs = ' ^---------------! '; // period -----------!----------!--------- const period = time(' -----------| '); const expected = ' -----------c----- '; const unsub = ' ----------------! '; const result = e1.pipe( mergeMap((x: string) => of(x)), sampleTime(period, rxTest), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should completes if source does not emits', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions, time }) => { const e1 = cold(' | '); const e1subs = ' (^!) '; const expected = ' | '; const period = time('-----|'); expectObservable(e1.pipe(sampleTime(period, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source throws immediately', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions, time }) => { const e1 = cold(' # '); const e1subs = ' (^!) '; const expected = ' # '; const period = time('-----|'); expectObservable(e1.pipe(sampleTime(period, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete if source does not complete', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions, time }) => { const e1 = cold(' --------'); const e1subs = ' ^------!'; const expected = ' --------'; const period = time('-----| '); const e1unsbs = ' -------!'; expectObservable(e1.pipe(sampleTime(period, rxTest)), e1unsbs).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/scan-spec.ts000066400000000000000000000215051431412030200177050ustar00rootroot00000000000000import { expect } from 'chai'; import { scan, mergeMap, finalize, take } from 'rxjs/operators'; import { of, Observable } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {scan} */ describe('scan', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should scan', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { // prettier-ignore const values = { a: 1, b: 3, c: 5, x: 1, y: 4, z: 9, }; const e1 = hot(' --a--b--c--|', values); const e1subs = ' ^----------!'; const expected = '--x--y--z--|'; const scanFunction = function (o: number, x: number) { return o + x; }; expectObservable(e1.pipe(scan(scanFunction, 0))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should scan things', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^--------------------!'; const expected = ' ---u--v--w--x--y--z--|'; const values = { u: ['b'], v: ['b', 'c'], w: ['b', 'c', 'd'], x: ['b', 'c', 'd', 'e'], y: ['b', 'c', 'd', 'e', 'f'], z: ['b', 'c', 'd', 'e', 'f', 'g'], }; const source = e1.pipe(scan((acc, x) => acc.concat(x), [] as string[])); expectObservable(source).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should provide the proper index if seed is skipped', () => { const expected = [1, 2]; of(3, 3, 3) .pipe( scan((_: any, __, i) => { expect(i).to.equal(expected.shift()); return null; }) ) .subscribe(); }); it('should scan with a seed of undefined', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^--------------------!'; const expected = ' ---u--v--w--x--y--z--|'; const values = { u: 'undefined b', v: 'undefined b c', w: 'undefined b c d', x: 'undefined b c d e', y: 'undefined b c d e f', z: 'undefined b c d e f g', }; const source = e1.pipe(scan((acc: any, x: string) => acc + ' ' + x, undefined)); expectObservable(source).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should scan without seed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--|'); const e1subs = ' ^-----------!'; const expected = ' ---x--y--z--|'; const values = { x: 'b', y: 'bc', z: 'bcd', }; const source = e1.pipe(scan((acc: any, x: string) => acc + x)); expectObservable(source).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle errors', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--#'); const e1subs = ' ^-----------!'; const expected = ' ---u--v--w--#'; const values = { u: ['b'], v: ['b', 'c'], w: ['b', 'c', 'd'], }; const source = e1.pipe(scan((acc, x) => acc.concat(x), [] as string[])); expectObservable(source).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle errors in the projection function', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^--------! '; const expected = ' ---u--v--# '; const values = { u: ['b'], v: ['b', 'c'], w: ['b', 'c', 'd'], x: ['b', 'c', 'd', 'e'], y: ['b', 'c', 'd', 'e', 'f'], z: ['b', 'c', 'd', 'e', 'f', 'g'], }; const source = e1.pipe( scan((acc, x) => { if (x === 'd') { throw 'bad!'; } return acc.concat(x); }, [] as string[]) ); expectObservable(source).toBe(expected, values, 'bad!'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('handle empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; const source = e1.pipe(scan((acc, x) => acc.concat(x), [] as string[])); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('handle never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; const source = e1.pipe(scan((acc, x) => acc.concat(x), [] as string[])); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('handle throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; const source = e1.pipe(scan((acc, x) => acc.concat(x), [] as string[])); expectObservable(source).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const unsub = ' --------------! '; const e1subs = ' ^-------------! '; const expected = ' ---u--v--w--x-- '; const values = { u: ['b'], v: ['b', 'c'], w: ['b', 'c', 'd'], x: ['b', 'c', 'd', 'e'], y: ['b', 'c', 'd', 'e', 'f'], z: ['b', 'c', 'd', 'e', 'f', 'g'], }; const source = e1.pipe(scan((acc, x) => acc.concat(x), [] as string[])); expectObservable(source, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b--c--d--e--f--g--|'); const e1subs = ' ^-------------! '; const expected = ' ---u--v--w--x-- '; const unsub = ' --------------! '; const values = { u: ['b'], v: ['b', 'c'], w: ['b', 'c', 'd'], x: ['b', 'c', 'd', 'e'], y: ['b', 'c', 'd', 'e', 'f'], z: ['b', 'c', 'd', 'e', 'f', 'g'], }; const source = e1.pipe( mergeMap((x: string) => of(x)), scan((acc, x) => acc.concat(x), [] as string[]), mergeMap((x: string[]) => of(x)) ); expectObservable(source, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should pass current index to accumulator', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { // prettier-ignore const values = { a: 1, b: 3, c: 5, x: 1, y: 4, z: 9, }; let idx = [0, 1, 2]; const e1 = hot(' --a--b--c--|', values); const e1subs = ' ^----------!'; const expected = '--x--y--z--|'; const scanFunction = (o: number, value: number, index: number) => { expect(index).to.equal(idx.shift()); return o + value; }; const scanObs = e1.pipe( scan(scanFunction, 0), finalize(() => { expect(idx).to.be.empty; }) ); expectObservable(scanObs).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( scan((_acc, value: number) => value, 0), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/sequenceEqual-spec.ts000066400000000000000000000334621431412030200215660ustar00rootroot00000000000000import { sequenceEqual } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; const booleans = { T: true, F: false }; /** @test {sequenceEqual} */ describe('sequenceEqual', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should return true for two equal sequences', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const s1 = hot('--a--^--b--c--d--e--f--g--| '); const s1subs = ' ^--------------------! '; const s2 = hot('-----^-----b--c--d-e-f------g-| '); const s2subs = ' ^------------------------! '; const expected = ' -------------------------(T|)'; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); expectSubscriptions(s1.subscriptions).toBe(s1subs); expectSubscriptions(s2.subscriptions).toBe(s2subs); }); }); it('should return false for two sync observables that are unequal in length', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const s1 = cold(' (abcdefg|)'); const s2 = cold(' (abc|) '); const expected = '(F|) '; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); }); }); it('should return true for two sync observables that match', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const s1 = cold(' (abcdefg|)'); const s2 = cold(' (abcdefg|)'); const expected = '(T|) '; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); }); }); it('should return true for two observables that match when the last one emits and completes in the same frame', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const s1 = hot('--a--^--b--c--d--e--f--g--| '); const s1subs = ' ^--------------------! '; const s2 = hot('-----^--b--c--d--e--f--g------| '); const s2subs = ' ^------------------------! '; const expected = ' -------------------------(T|)'; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); expectSubscriptions(s1.subscriptions).toBe(s1subs); expectSubscriptions(s2.subscriptions).toBe(s2subs); }); }); it('should return true for two observables that match when the last one emits and completes in the same frame', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const s1 = hot('--a--^--b--c--d--e--f--g--| '); const s1subs = ' ^--------------------! '; const s2 = hot('-----^--b--c--d--e--f---------(g|)'); const s2subs = ' ^------------------------! '; const expected = ' -------------------------(T|)'; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); expectSubscriptions(s1.subscriptions).toBe(s1subs); expectSubscriptions(s2.subscriptions).toBe(s2subs); }); }); it('should error with an errored source', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const s1 = hot('--a--^--b---c---# '); const s2 = hot('--a--^--b---c-----|'); const expected = ' -----------# '; const sub = ' ^----------! '; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); expectSubscriptions(s1.subscriptions).toBe(sub); expectSubscriptions(s2.subscriptions).toBe(sub); }); }); it('should error with an errored compareTo', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const s1 = hot('--a--^--b---c-----|'); const s2 = hot('--a--^--b---c---# '); const expected = ' -----------# '; const sub = ' ^----------! '; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); expectSubscriptions(s1.subscriptions).toBe(sub); expectSubscriptions(s2.subscriptions).toBe(sub); }); }); it('should error if the source is a throw', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const s1 = cold(' # '); const s2 = cold(' ---a--b--c--|'); const expected = '# '; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected); }); }); it('should never return if source is a never', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const s1 = cold(' ------------'); const s2 = cold(' --a--b--c--|'); const expected = '------------'; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected); }); }); it('should never return if compareTo is a never', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const s1 = cold(' --a--b--c--|'); const s2 = cold(' ------------'); const expected = '------------'; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected); }); }); it('should return false if source is empty and compareTo is not', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const s1 = cold(' | '); const s1subs = ' (^!) '; const s2 = cold(' ------a------'); const s2subs = ' ^-----! '; const expected = '------(F|) '; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); expectSubscriptions(s1.subscriptions).toBe(s1subs); expectSubscriptions(s2.subscriptions).toBe(s2subs); }); }); it('should return false if compareTo is empty and source is not', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const s1 = cold(' ------a------'); const s2 = cold(' | '); const expected = '------(F|) '; const s1subs = ' ^-----! '; const s2subs = ' (^!) '; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); expectSubscriptions(s1.subscriptions).toBe(s1subs); expectSubscriptions(s2.subscriptions).toBe(s2subs); }); }); it('should return never if compareTo is empty and source is never', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const s1 = cold(' -'); const s2 = cold(' |'); const expected = '-'; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected); }); }); it('should return never if source is empty and compareTo is never', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const s1 = cold(' |'); const s2 = cold(' -'); const expected = '-'; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected); }); }); it('should error if the comparator function errors', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values: { [key: string]: any } = { a: null, b: { value: 'bees knees' }, c: { value: 'carpy dumb' }, d: { value: 'derp' }, x: { value: 'bees knees', foo: 'lol' }, y: { value: 'carpy dumb', scooby: 'doo' }, z: { value: 'derp', weCouldBe: 'dancin, yeah' }, }; const s1 = hot('--a--^--b-----c------d--| ', values); const s1subs = ' ^------------! '; const s2 = hot('-----^--------x---y---z-------|', values); const s2subs = ' ^------------! '; const expected = ' -------------# '; let i = 0; const source = s1.pipe( sequenceEqual(s2, (a: any, b: any) => { if (++i === 2) { throw new Error('shazbot'); } return a.value === b.value; }) ); expectObservable(source).toBe(expected, booleans, new Error('shazbot')); expectSubscriptions(s1.subscriptions).toBe(s1subs); expectSubscriptions(s2.subscriptions).toBe(s2subs); }); }); it('should use the provided comparator function', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const values: { [key: string]: any } = { a: null, b: { value: 'bees knees' }, c: { value: 'carpy dumb' }, d: { value: 'derp' }, x: { value: 'bees knees', foo: 'lol' }, y: { value: 'carpy dumb', scooby: 'doo' }, z: { value: 'derp', weCouldBe: 'dancin, yeah' }, }; const s1 = hot('--a--^--b-----c------d--| ', values); const s1subs = ' ^------------------! '; const s2 = hot('-----^--------x---y---z-------| ', values); const s2subs = ' ^------------------------! '; const expected = ' -------------------------(T|)'; const source = s1.pipe(sequenceEqual(s2, (a: any, b: any) => a.value === b.value)); expectObservable(source).toBe(expected, booleans); expectSubscriptions(s1.subscriptions).toBe(s1subs); expectSubscriptions(s2.subscriptions).toBe(s2subs); }); }); it('should return false for two unequal sequences, compareTo finishing last', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const s1 = hot('--a--^--b--c--d--e--f--g--| '); const s1subs = ' ^--------------------! '; const s2 = hot('-----^-----b--c--d-e-f------z-|'); const s2subs = ' ^----------------------! '; const expected = ' -----------------------(F|)'; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); expectSubscriptions(s1.subscriptions).toBe(s1subs); expectSubscriptions(s2.subscriptions).toBe(s2subs); }); }); it('should return false for two unequal sequences, early wrong value from source', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const s1 = hot('--a--^--b--c---x-----------|'); const s1subs = ' ^---------! '; const s2 = hot('-----^--b--c--d--e--f--| '); const s2subs = ' ^---------! '; const expected = ' ----------(F|) '; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); expectSubscriptions(s1.subscriptions).toBe(s1subs); expectSubscriptions(s2.subscriptions).toBe(s2subs); }); }); it('should return false when the source emits an extra value after the compareTo completes', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const s1 = hot('--a--^--b--c--d--e--f--g--h--|'); const s1subs = ' ^-----------! '; const s2 = hot('-----^--b--c--d-| '); const s2subs = ' ^----------! '; const expected = ' ------------(F|) '; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); expectSubscriptions(s1.subscriptions).toBe(s1subs); expectSubscriptions(s2.subscriptions).toBe(s2subs); }); }); it('should return false when the compareTo emits an extra value after the source completes', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const s1 = hot('--a--^--b--c--d-| '); const s1subs = ' ^----------! '; const s2 = hot('-----^--b--c--d--e--f--g--h--|'); const s2subs = ' ^-----------! '; const expected = ' ------------(F|) '; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); expectSubscriptions(s1.subscriptions).toBe(s1subs); expectSubscriptions(s2.subscriptions).toBe(s2subs); }); }); it('should return true for two empty observables', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const s1 = cold(' | '); const s2 = cold(' | '); const expected = '(T|)'; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); }); }); it('should return false for an empty observable and an observable that emits', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const s1 = cold(' | '); const s2 = cold(' ---a--|'); const expected = '---(F|)'; const source = s1.pipe(sequenceEqual(s2)); expectObservable(source).toBe(expected, booleans); }); }); it('should return compare hot and cold observables', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const s1 = hot('---a--^---b---c---d---e---f---g---h---i---j---| '); const s2 = cold(' ----b---c-| '); const s2subs = ' ^---------! '; const expected1 = ' ------------(F|) '; const s3 = cold(' -f---g---h---i---j---| '); const test2subs = ' -------------------^ '; const expected2 = ' ----------------------------------------(T|)'; const s3subs = ' -------------------^--------------------! '; const test1 = s1.pipe(sequenceEqual(s2)); const test2 = s1.pipe(sequenceEqual(s3)); expectObservable(test1).toBe(expected1, booleans); expectObservable(test2, test2subs).toBe(expected2, booleans); expectSubscriptions(s2.subscriptions).toBe(s2subs); expectSubscriptions(s3.subscriptions).toBe(s3subs); }); }); }); rxjs-7.5.7/spec/operators/share-spec.ts000066400000000000000000001122431431412030200200630ustar00rootroot00000000000000import { expect } from 'chai'; import { asapScheduler, concat, config, defer, EMPTY, NEVER, Observable, of, scheduled, Subject, throwError, pipe } from 'rxjs'; import { map, mergeMap, mergeMapTo, onErrorResumeNext, repeat, retry, share, startWith, take, takeUntil, takeWhile, tap, toArray, withLatestFrom, } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; import { SinonSpy, spy } from 'sinon'; const syncNotify = of(1); const asapNotify = scheduled(syncNotify, asapScheduler); const syncError = throwError(() => new Error()); function spyOnUnhandledError(fn: (spy: SinonSpy) => void): void { const prevOnUnhandledError = config.onUnhandledError; try { const onUnhandledError = spy(); config.onUnhandledError = onUnhandledError; fn(onUnhandledError); } finally { config.onUnhandledError = prevOnUnhandledError; } } /** @test {share} */ describe('share', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); for (const { title, options } of [ { title: 'share()', options: {} }, { title: 'share() using sync reset notifiers equivalent to default config', options: { resetOnError: () => syncNotify, resetOnComplete: () => syncNotify, resetOnRefCountZero: () => syncNotify, }, }, { title: 'share() using sync reset notifiers equivalent to default config and notifying again after reset is notified', options: { resetOnError: () => concat(syncNotify, syncNotify), resetOnComplete: () => concat(syncNotify, syncNotify), resetOnRefCountZero: () => concat(syncNotify, syncNotify), }, }, { title: 'share() using sync reset notifiers equivalent to default config and never completing after reset is notified', options: { resetOnError: () => concat(syncNotify, NEVER), resetOnComplete: () => concat(syncNotify, NEVER), resetOnRefCountZero: () => concat(syncNotify, NEVER), }, }, { title: 'share() using sync reset notifiers equivalent to default config and throwing an error after reset is notified', options: { resetOnError: () => concat(syncNotify, syncError), resetOnComplete: () => concat(syncNotify, syncError), resetOnRefCountZero: () => concat(syncNotify, syncError), }, }, ]) { describe(title, () => { it('should mirror a simple source Observable', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2---3-4--5-|'); const sourceSubs = ' ^--------------!'; const expected = ' --1-2---3-4--5-|'; const shared = source.pipe(share(options)); expectObservable(shared).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should share a single subscription', () => { let subscriptionCount = 0; const obs = new Observable(() => { subscriptionCount++; }); const source = obs.pipe(share(options)); expect(subscriptionCount).to.equal(0); source.subscribe(); source.subscribe(); expect(subscriptionCount).to.equal(1); }); it('should not change the output of the observable when error', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---a--^--b--c--d--e--#'); const e1subs = ' ^--------------!'; const expected = ' ---b--c--d--e--#'; expectObservable(e1.pipe(share(options))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not change the output of the observable when successful with cold observable', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a--b--c--d--e--|'); const e1subs = ' ^-----------------!'; const expected = '---a--b--c--d--e--|'; expectObservable(e1.pipe(share(options))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not change the output of the observable when error with cold observable', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a--b--c--d--e--#'); const e1subs = ' ^-----------------!'; const expected = '---a--b--c--d--e--#'; expectObservable(e1.pipe(share(options))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should retry just fine', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a--b--c--d--e--# '); // prettier-ignore const e1subs = [ ' ^-----------------! ', ' ------------------^-----------------!' ]; const expected = '---a--b--c--d--e-----a--b--c--d--e--#'; expectObservable(e1.pipe(share(options), retry(1))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should share the same values to multiple observers', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^-----------!'; const subscriber1 = hot('a| '); const expected1 = ' -1-2-3----4-|'; const subscriber2 = hot('----b| '); const expected2 = ' -----3----4-|'; const subscriber3 = hot('--------c| '); const expected3 = ' ----------4-|'; const shared = source.pipe(share(options)); expectObservable(subscriber1.pipe(mergeMapTo(shared))).toBe(expected1); expectObservable(subscriber2.pipe(mergeMapTo(shared))).toBe(expected2); expectObservable(subscriber3.pipe(mergeMapTo(shared))).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should share an error from the source to multiple observers', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-#'); const sourceSubs = ' ^-----------!'; const subscriber1 = hot('a| '); const expected1 = ' -1-2-3----4-#'; const subscriber2 = hot('----b| '); const expected2 = ' -----3----4-#'; const subscriber3 = hot('--------c| '); const expected3 = ' ----------4-#'; const shared = source.pipe(share(options)); expectObservable(subscriber1.pipe(mergeMapTo(shared))).toBe(expected1); expectObservable(subscriber2.pipe(mergeMapTo(shared))).toBe(expected2); expectObservable(subscriber3.pipe(mergeMapTo(shared))).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should share the same values to multiple observers, but is unsubscribed explicitly and early', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^--------! '; const unsub = ' ---------! '; const subscriber1 = hot('a| '); const expected1 = ' -1-2-3---- '; const subscriber2 = hot('----b| '); const expected2 = ' -----3---- '; const subscriber3 = hot('--------c| '); const expected3 = ' ---------- '; const shared = source.pipe(share(options)); expectObservable(subscriber1.pipe(mergeMapTo(shared)), unsub).toBe(expected1); expectObservable(subscriber2.pipe(mergeMapTo(shared)), unsub).toBe(expected2); expectObservable(subscriber3.pipe(mergeMapTo(shared)), unsub).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should share an empty source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('| '); const sourceSubs = ' (^!)'; const expected = ' | '; const shared = source.pipe(share(options)); expectObservable(shared).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should share a never source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-'); const sourceSubs = ' ^'; const expected = ' -'; const shared = source.pipe(share(options)); expectObservable(shared).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should share a throw source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('# '); const sourceSubs = ' (^!)'; const expected = ' # '; const shared = source.pipe(share(options)); expectObservable(shared).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should connect when first subscriber subscribes', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ---^-----------!'; const subscriber1 = hot('---a| '); const expected1 = ' ----1-2-3----4-|'; const subscriber2 = hot('-------b| '); const expected2 = ' --------3----4-|'; const subscriber3 = hot('-----------c| '); const expected3 = ' -------------4-|'; const shared = source.pipe(share(options)); expectObservable(subscriber1.pipe(mergeMapTo(shared))).toBe(expected1); expectObservable(subscriber2.pipe(mergeMapTo(shared))).toBe(expected2); expectObservable(subscriber3.pipe(mergeMapTo(shared))).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should disconnect when last subscriber unsubscribes', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ---^--------! '; const subscriber1 = hot('---a| '); const unsub1 = ' ----------! '; const expected1 = ' ----1-2-3-- '; const subscriber2 = hot('-------b| '); const unsub2 = ' ------------! '; const expected2 = ' --------3---- '; const shared = source.pipe(share(options)); expectObservable(subscriber1.pipe(mergeMapTo(shared)), unsub1).toBe(expected1); expectObservable(subscriber2.pipe(mergeMapTo(shared)), unsub2).toBe(expected2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not break unsubscription chain when last subscriber unsubscribes', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ---^--------! '; const subscriber1 = hot('---a| '); const unsub1 = ' ----------! '; const expected1 = ' ----1-2-3-- '; const subscriber2 = hot('-------b| '); const unsub2 = ' ------------! '; const expected2 = ' --------3---- '; const shared = source.pipe( mergeMap((x: string) => of(x)), share(options), mergeMap((x: string) => of(x)) ); expectObservable(subscriber1.pipe(mergeMapTo(shared)), unsub1).toBe(expected1); expectObservable(subscriber2.pipe(mergeMapTo(shared)), unsub2).toBe(expected2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should be retryable when cold source is synchronous', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold('(123#) '); const subscribe1 = ' s '; const expected1 = ' (123123#) '; const subscribe2 = ' -s '; const expected2 = ' -(123123#)'; const sourceSubs = [ ' (^!) ', ' (^!) ', ' -(^!) ', ' -(^!) ', ]; const shared = source.pipe(share(options)); expectObservable( hot(subscribe1).pipe( tap(() => { expectObservable(shared.pipe(retry(1))).toBe(expected1); }) ) ).toBe(subscribe1); expectObservable( hot(subscribe2).pipe( tap(() => { expectObservable(shared.pipe(retry(1))).toBe(expected2); }) ) ).toBe(subscribe2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should be repeatable when cold source is synchronous', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold('(123|) '); const subscribe1 = ' s '; const expected1 = ' (123123|) '; const subscribe2 = ' -s '; const expected2 = ' -(123123|)'; const sourceSubs = [ ' (^!) ', ' (^!) ', ' -(^!) ', ' -(^!) ', ]; const shared = source.pipe(share(options)); expectObservable( hot(subscribe1).pipe( tap(() => { expectObservable(shared.pipe(repeat(2))).toBe(expected1); }) ) ).toBe(subscribe1); expectObservable( hot(subscribe2).pipe( tap(() => { expectObservable(shared.pipe(repeat(2))).toBe(expected2); }) ) ).toBe(subscribe2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should be retryable', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold('-1-2-3----4-# '); const sourceSubs = [ ' ^-----------! ', ' ------------^-----------! ', ' ------------------------^-----------!', ]; const subscribe1 = ' s------------------------------------'; const expected1 = ' -1-2-3----4--1-2-3----4--1-2-3----4-#'; const subscribe2 = ' ----s--------------------------------'; const expected2 = ' -----3----4--1-2-3----4--1-2-3----4-#'; const shared = source.pipe(share(options)); expectObservable( hot(subscribe1).pipe( tap(() => { expectObservable(shared.pipe(retry(2))).toBe(expected1); }) ) ).toBe(subscribe1); expectObservable( hot(subscribe2).pipe( tap(() => { expectObservable(shared.pipe(retry(2))).toBe(expected2); }) ) ).toBe(subscribe2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should be repeatable', () => { rxTest.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold('-1-2-3----4-| '); const sourceSubs = [ ' ^-----------! ', ' ------------^-----------! ', ' ------------------------^-----------!', ]; const subscribe1 = ' s------------------------------------'; const expected1 = ' -1-2-3----4--1-2-3----4--1-2-3----4-|'; const subscribe2 = ' ----s--------------------------------'; const expected2 = ' -----3----4--1-2-3----4--1-2-3----4-|'; const shared = source.pipe(share(options)); expectObservable( hot(subscribe1).pipe( tap(() => { expectObservable(shared.pipe(repeat(3))).toBe(expected1); }) ) ).toBe(subscribe1); expectObservable( hot(subscribe2).pipe( tap(() => { expectObservable(shared.pipe(repeat(3))).toBe(expected2); }) ) ).toBe(subscribe2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not change the output of the observable when never', () => { rxTest.run(({ expectObservable }) => { const e1 = NEVER; const expected = '-'; expectObservable(e1.pipe(share(options))).toBe(expected); }); }); it('should not change the output of the observable when empty', () => { rxTest.run(({ expectObservable }) => { const e1 = EMPTY; const expected = '|'; expectObservable(e1.pipe(share(options))).toBe(expected); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(share(options), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); it('should not fail on reentrant subscription', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { // https://github.com/ReactiveX/rxjs/issues/6144 const source = cold('(123|)'); const subs = ' (^!) '; const expected = ' (136|)'; const deferred = defer(() => shared).pipe(startWith(0)); const shared: Observable = source.pipe( withLatestFrom(deferred), map(([a, b]) => String(Number(a) + Number(b))), share(options) ); expectObservable(shared).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); }); } for (const { title, resetOnError, resetOnComplete, resetOnRefCountZero } of [ { title: 'share(config)', resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }, { title: 'share(config) using EMPTY as sync reset notifier equivalents', resetOnError: () => EMPTY, resetOnComplete: () => EMPTY, resetOnRefCountZero: () => EMPTY, }, { title: 'share(config) using NEVER as sync reset notifier equivalents', resetOnError: () => NEVER, resetOnComplete: () => NEVER, resetOnRefCountZero: () => NEVER, }, ]) { describe(title, () => { it('should not reset on error if configured to do so', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('---a---b---c---d---e---f----#'); const expected = ' ---a---b---c---d---e---f----#'; const sourceSubs = [ ' ^----------! ', ' -----------^-----------! ', ' -----------------------^----!', ]; const result = source.pipe( // takes a, b, c... then repeat causes it to take d, e, f take(3), share({ resetOnError }), repeat() ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not reset on complete if configured to do so', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('---a---b---c---# '); const expected = ' ---a---b---c------a---b---c------a---b---|'; const sourceSubs = [ ' ^--------------! ', ' ---------------^--------------! ', ' ------------------------------^----------!', ]; // Used to trigger the source to complete at a given moment. const triggerComplete = new Subject(); // just used to count how many values have made it through the share. let count = 0; const result = source.pipe( takeUntil(triggerComplete), share({ resetOnComplete }), // Retry on any error. retry(), tap(() => { if (++count === 9) { // If we see the ninth value, complete the source this time. triggerComplete.next(); } }) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not reset on refCount 0 if configured to do so', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot(' ---v---v---v---E--v---v---v---C---v----v------v---'); const expected = ' ---v---v---v------v---v---v-------v----v---- '; const subscription = '^-------------------------------------------! '; const sourceSubs = [ ' ^--------------!', ' ---------------^--------------!', // Note this last subscription never ends, because refCount hitting zero isn't going to reset. ' ------------------------------^-------------- ', ]; const result = source.pipe( tap((value) => { if (value === 'E') { throw new Error('E'); } }), takeWhile((value) => value !== 'C'), share({ resetOnRefCountZero }), retry(), repeat() ); expectObservable(result, subscription).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should be referentially-transparent', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source1 = cold('-1-2-3-4-5-|'); const source1Subs = ' ^----------!'; const expected1 = ' -1-2-3-4-5-|'; const source2 = cold('-6-7-8-9-0-|'); const source2Subs = ' ^----------!'; const expected2 = ' -6-7-8-9-0-|'; // Calls to the _operator_ must be referentially-transparent. const partialPipeLine = pipe(share({ resetOnRefCountZero })); // The non-referentially-transparent sharing occurs within the _operator function_ // returned by the _operator_ and that happens when the complete pipeline is composed. const shared1 = source1.pipe(partialPipeLine); const shared2 = source2.pipe(partialPipeLine); expectObservable(shared1).toBe(expected1); expectSubscriptions(source1.subscriptions).toBe(source1Subs); expectObservable(shared2).toBe(expected2); expectSubscriptions(source2.subscriptions).toBe(source2Subs); }); }); }); } describe('share(config)', () => { it('should use the connector function provided', () => { const connector = spy(() => new Subject()); rxTest.run(({ hot, expectObservable }) => { const source = hot(' ---v---v---v---E--v---v---v---C---v----v--------v----v---'); const subs1 = ' ^-------------------------------------------! '; const expResult1 = ' ---v---v---v------v---v---v-------v----v----- '; const subs2 = ' ----------------------------------------------^---------!'; const expResult2 = ' ------------------------------------------------v----v---'; const result = source.pipe( tap((value) => { if (value === 'E') { throw new Error('E'); } }), takeWhile((value) => value !== 'C'), share({ connector, }), retry(), repeat() ); expectObservable(result, subs1).toBe(expResult1); expectObservable(result, subs2).toBe(expResult2); }); expect(connector).to.have.callCount(4); }); }); describe('share(config) with async/deferred reset notifiers', () => { it('should reset on refCount 0 when synchronously resubscribing to a firehose and using a sync reset notifier', () => { let subscriptionCount = 0; const source = new Observable((subscriber) => { subscriptionCount++; for (let i = 0; i < 3 && !subscriber.closed; i++) { subscriber.next(i); } if (!subscriber.closed) { subscriber.complete(); } }); let result; source .pipe(share({ resetOnRefCountZero: () => syncNotify }), take(2), repeat(2), toArray()) .subscribe((numbers) => void (result = numbers)); expect(subscriptionCount).to.equal(2); expect(result).to.deep.equal([0, 1, 0, 1]); }); it('should reset on refCount 0 when synchronously resubscribing and using a sync reset notifier', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot(' ---1---2---3---(4 )---5---|'); const sourceSubs = [ ' ^------! ', // break the line, please ' -------^-------(! ) ', ]; const expected = ' ---1---2---3---(4|) '; const subscription = '^--------------(- ) '; const sharedSource = source.pipe(share({ resetOnRefCountZero: () => syncNotify }), take(2)); const result = concat(sharedSource, sharedSource); expectObservable(result, subscription).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not reset on refCount 0 when synchronously resubscribing and using a deferred reset notifier', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' ---1---2---3---4---5---|'); const sourceSubs = ' ^----------------------!'; const expected = ' ---1---2---3---4---5---|'; const subscription = '^-----------------------'; const sharedSource = source.pipe(share({ resetOnRefCountZero: () => asapNotify }), take(3)); const result = concat(sharedSource, sharedSource); expectObservable(result, subscription).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should reset on refCount 0 only after reset notifier emitted', () => { rxTest.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot(' ---1---2---3---4---5---|'); const sourceSubs = [ ' ^----------------! ', // break the line, please ' ------------------^----!', ]; const expected = ' ---1---2---3---4---5---|'; const subscription = ' ^-----------------------'; const firstPause = cold(' -| '); const reset = cold(' --r '); const secondPause = cold(' ---| '); // reset: ' --r ' const sharedSource = source.pipe(share({ resetOnRefCountZero: () => reset }), take(2)); const result = concat(sharedSource, firstPause, sharedSource, secondPause, sharedSource); expectObservable(result, subscription).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should reset on error only after reset notifier emitted', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' ---1---2---# '); // source: ' ---1---2---# ' const sourceSubs = [ ' ^----------! ', // break the line, please ' --------------^----------! ', ]; const expected = ' ---1---2---------1---2----# '; const subscription = ' ^-------------------------- '; const firstPause = cold(' -------| '); const reset = cold(' --r '); const secondPause = cold(' -----| '); // reset: ' --r' const sharedSource = source.pipe(share({ resetOnError: () => reset, resetOnRefCountZero: false }), take(2)); const result = concat(sharedSource, firstPause, sharedSource, secondPause, sharedSource); expectObservable(result, subscription).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should reset on complete only after reset notifier emitted', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' ---1---2---| '); // source: ' ---1---2---| ' const sourceSubs = [ ' ^----------! ', // break the line, please ' --------------^----------! ', ]; const expected = ' ---1---2---------1---2----| '; const subscription = ' ^-------------------------- '; const firstPause = cold(' -------| '); const reset = cold(' --r '); const secondPause = cold(' -----| '); // reset: ' --r' const sharedSource = source.pipe(share({ resetOnComplete: () => reset, resetOnRefCountZero: false }), take(2)); const result = concat(sharedSource, firstPause, sharedSource, secondPause, sharedSource); expectObservable(result, subscription).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not reset on refCount 0 if reset notifier errors before emitting any value', () => { spyOnUnhandledError((onUnhandledError) => { const error = new Error(); rxTest.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot(' ---1---2---3---4---(5 )---|'); const sourceSubs = ' ^------------------(- )---!'; const expected = ' ---1---2-------4---(5|) '; const subscription = ' ^------------------(- ) '; const firstPause = cold(' ------| '); const reset = cold(' --# ', undefined, error); // reset: ' (- )-# ' const sharedSource = source.pipe(share({ resetOnRefCountZero: () => reset }), take(2)); const result = concat(sharedSource, firstPause, sharedSource); expectObservable(result, subscription).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); expect(onUnhandledError).to.have.been.calledTwice; expect(onUnhandledError.getCall(0)).to.have.been.calledWithExactly(error); expect(onUnhandledError.getCall(1)).to.have.been.calledWithExactly(error); }); }); it('should not reset on error if reset notifier errors before emitting any value', () => { spyOnUnhandledError((onUnhandledError) => { const error = new Error(); rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' ---1---2---# '); const sourceSubs = ' ^----------! '; const expected = ' ---1---2------#'; const subscription = ' ^--------------'; const firstPause = cold(' -------|'); const reset = cold(' --# ', undefined, error); const sharedSource = source.pipe(share({ resetOnError: () => reset, resetOnRefCountZero: false }), take(2)); const result = concat(sharedSource, firstPause, sharedSource); expectObservable(result, subscription).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); expect(onUnhandledError).to.have.been.calledOnce; expect(onUnhandledError.getCall(0)).to.have.been.calledWithExactly(error); }); }); it('should not reset on complete if reset notifier errors before emitting any value', () => { spyOnUnhandledError((onUnhandledError) => { const error = new Error(); rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' ---1---2---| '); const sourceSubs = ' ^----------! '; const expected = ' ---1---2------|'; const subscription = ' ^--------------'; const firstPause = cold(' -------|'); const reset = cold(' --# ', undefined, error); const sharedSource = source.pipe(share({ resetOnComplete: () => reset, resetOnRefCountZero: false }), take(2)); const result = concat(sharedSource, firstPause, sharedSource); expectObservable(result, subscription).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); expect(onUnhandledError).to.have.been.calledOnce; expect(onUnhandledError.getCall(0)).to.have.been.calledWithExactly(error); }); }); it('should not call "resetOnRefCountZero" on error', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const resetOnRefCountZero = spy(() => EMPTY); const source = cold(' ---1---(2#) '); // source: ' ---1---(2#) ' const sourceSubs = [ ' ^------(! ) ', // break the line, please ' -------(- )---^------(! ) ', ]; const expected = ' ---1---(2 )------1---(2#) '; const subscription = ' ^------(- )----------(- ) '; const firstPause = cold(' (- )---| '); const reset = cold(' (- )-r '); // reset: ' (- )-r' const sharedSource = source.pipe(share({ resetOnError: () => reset, resetOnRefCountZero })); const result = concat(sharedSource.pipe(onErrorResumeNext(firstPause)), sharedSource); expectObservable(result, subscription).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expect(resetOnRefCountZero).to.not.have.been.called; }); }); it('should not call "resetOnRefCountZero" on complete', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const resetOnRefCountZero = spy(() => EMPTY); const source = cold(' ---1---(2|) '); // source: ' ---1---(2|) ' const sourceSubs = [ ' ^------(! ) ', // break the line, please ' -------(- )---^------(! ) ', ]; const expected = ' ---1---(2 )------1---(2|) '; const subscription = ' ^------(- )----------(- ) '; const firstPause = cold(' (- )---| '); const reset = cold(' (- )-r '); // reset: ' (- )-r' const sharedSource = source.pipe(share({ resetOnComplete: () => reset, resetOnRefCountZero })); const result = concat(sharedSource, firstPause, sharedSource); expectObservable(result, subscription).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expect(resetOnRefCountZero).to.not.have.been.called; }); }); }); }); rxjs-7.5.7/spec/operators/shareReplay-spec.ts000066400000000000000000000413511431412030200212410ustar00rootroot00000000000000import { expect } from 'chai'; import * as sinon from 'sinon'; import { shareReplay, mergeMapTo, retry, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { Observable, Operator, Observer, of, from, defer, pipe, combineLatest, firstValueFrom, BehaviorSubject } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {shareReplay} */ describe('shareReplay', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should mirror a simple source Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--1-2---3-4--5-|'); const sourceSubs = ' ^--------------!'; const expected = ' --1-2---3-4--5-|'; const published = source.pipe(shareReplay()); expectObservable(published).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should do nothing if result is not subscribed', () => { let subscribed = false; const source = new Observable(() => { subscribed = true; }); source.pipe(shareReplay()); expect(subscribed).to.be.false; }); it('should multicast the same values to multiple observers, bufferSize=1', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-|'); const sourceSubs = ' ^-----------!'; const subscriber1 = hot('a| '); const expected1 = ' -1-2-3----4-|'; const subscriber2 = hot('----b| '); const expected2 = ' ----23----4-|'; const subscriber3 = hot('--------c| '); const expected3 = ' --------3-4-|'; const shared = source.pipe(shareReplay(1)); expectObservable(subscriber1.pipe(mergeMapTo(shared))).toBe(expected1); expectObservable(subscriber2.pipe(mergeMapTo(shared))).toBe(expected2); expectObservable(subscriber3.pipe(mergeMapTo(shared))).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should multicast the same values to multiple observers, bufferSize=2', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-----3------4-|'); const sourceSubs = ' ^-----------------!'; const subscriber1 = hot('a| '); const expected1 = ' -1-2-----3------4-|'; const subscriber2 = hot('----b| '); const expected2 = ' ----(12)-3------4-|'; const subscriber3 = hot('-----------c| '); const expected3 = ' -----------(23)-4-|'; const shared = source.pipe(shareReplay(2)); expectObservable(subscriber1.pipe(mergeMapTo(shared))).toBe(expected1); expectObservable(subscriber2.pipe(mergeMapTo(shared))).toBe(expected2); expectObservable(subscriber3.pipe(mergeMapTo(shared))).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should multicast an error from the source to multiple observers', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-3----4-#'); const sourceSubs = ' ^-----------!'; const subscriber1 = hot('a| '); const expected1 = ' -1-2-3----4-#'; const subscriber2 = hot('----b| '); const expected2 = ' ----23----4-#'; const subscriber3 = hot('--------c| '); const expected3 = ' --------3-4-#'; const shared = source.pipe(shareReplay(1)); expectObservable(subscriber1.pipe(mergeMapTo(shared))).toBe(expected1); expectObservable(subscriber2.pipe(mergeMapTo(shared))).toBe(expected2); expectObservable(subscriber3.pipe(mergeMapTo(shared))).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should multicast an empty source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('| '); const sourceSubs = ' (^!)'; const expected = ' | '; const shared = source.pipe(shareReplay(1)); expectObservable(shared).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should multicast a never source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-'); const sourceSubs = ' ^'; const expected = ' -'; const shared = source.pipe(shareReplay(1)); expectObservable(shared).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should multicast a throw source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('# '); const sourceSubs = ' (^!)'; const expected = ' # '; const shared = source.pipe(shareReplay(1)); expectObservable(shared).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should replay results to subsequent subscriptions if source completes, bufferSize=2', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-----3-| '); const sourceSubs = ' ^----------! '; const subscriber1 = hot('a| '); const expected1 = ' -1-2-----3-| '; const subscriber2 = hot('----b| '); const expected2 = ' ----(12)-3-| '; const subscriber3 = hot('---------------(c|) '); const expected3 = ' ---------------(23|)'; const shared = source.pipe(shareReplay(2)); expectObservable(subscriber1.pipe(mergeMapTo(shared))).toBe(expected1); expectObservable(subscriber2.pipe(mergeMapTo(shared))).toBe(expected2); expectObservable(subscriber3.pipe(mergeMapTo(shared))).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should completely restart for subsequent subscriptions if source errors, bufferSize=2', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = cold(' -1-2-----3-# '); const sourceSubs1 = ' ^----------! '; const subscriber1 = hot('a| '); const expected1 = ' -1-2-----3-# '; const subscriber2 = hot('----b| '); const expected2 = ' ----(12)-3-# '; const subscriber3 = hot('---------------(c|) '); const expected3 = ' ----------------1-2-----3-#'; const sourceSubs2 = ' ---------------^----------!'; const shared = source.pipe(shareReplay(2)); expectObservable(subscriber1.pipe(mergeMapTo(shared))).toBe(expected1); expectObservable(subscriber2.pipe(mergeMapTo(shared))).toBe(expected2); expectObservable(subscriber3.pipe(mergeMapTo(shared))).toBe(expected3); expectSubscriptions(source.subscriptions).toBe([sourceSubs1, sourceSubs2]); }); }); it('should be retryable, bufferSize=2', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const subs = []; const source = cold(' -1-2-----3-# '); subs.push(' ^----------! '); subs.push(' -----------^----------! '); subs.push(' ----------------------^----------!'); const subscriber1 = hot('a| '); const expected1 = ' -1-2-----3--1-2-----3-# '; const subscriber2 = hot('----b| '); const expected2 = ' ----(12)-3--1-2-----3-# '; const subscriber3 = hot('---------------(c|) '); const expected3 = ' ---------------(12)-3--1-2-----3-#'; const shared = source.pipe(shareReplay(2), retry(1)); expectObservable(subscriber1.pipe(mergeMapTo(shared))).toBe(expected1); expectObservable(subscriber2.pipe(mergeMapTo(shared))).toBe(expected2); expectObservable(subscriber3.pipe(mergeMapTo(shared))).toBe(expected3); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('when no windowTime is given ReplaySubject should be in _infiniteTimeWindow mode', () => { const spy = sinon.spy(testScheduler, 'now'); of(1).pipe(shareReplay(1, undefined, testScheduler)).subscribe(); spy.restore(); expect(spy, 'ReplaySubject should not call scheduler.now() when no windowTime is given').to.be.not.called; }); it('should not restart due to unsubscriptions if refCount is false', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('a-b-c-d-e-f-g-h-i-j'); const sourceSubs = ' ^------------------'; const sub1 = ' ^------! '; const expected1 = ' a-b-c-d- '; const sub2 = ' -----------^-------'; const expected2 = ' -----------fg-h-i-j'; const shared = source.pipe(shareReplay({ bufferSize: 1, refCount: false })); expectObservable(shared, sub1).toBe(expected1); expectObservable(shared, sub2).toBe(expected2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should restart due to unsubscriptions if refCount is true', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const sourceSubs = []; const source = cold('a-b-c-d-e-f-g-h-i-j '); sourceSubs.push(' ^------!----------------------'); sourceSubs.push(' -----------^------------------'); const sub1 = ' ^------! '; const expected1 = ' a-b-c-d- '; const sub2 = ' -----------^------------------'; const expected2 = ' -----------a-b-c-d-e-f-g-h-i-j'; const shared = source.pipe(shareReplay({ bufferSize: 1, refCount: true })); expectObservable(shared, sub1).toBe(expected1); expectObservable(shared, sub2).toBe(expected2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not restart due to unsubscriptions if refCount is true when the source has completed', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('a-(b|) '); const sourceSubs = ' ^-! '; const sub1 = ' ^------! '; const expected1 = ' a-(b|) '; const sub2 = ' -----------^! '; const expected2 = ' -----------(b|)'; const shared = source.pipe(shareReplay({ bufferSize: 1, refCount: true })); expectObservable(shared, sub1).toBe(expected1); expectObservable(shared, sub2).toBe(expected2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not restart a synchronous source due to unsubscriptions if refCount is true when the source has completed', () => { // The test above this one doesn't actually test completely synchronous // behaviour because of this problem: // https://github.com/ReactiveX/rxjs/issues/5523 let subscriptions = 0; const source = defer(() => { ++subscriptions; return of(42); }).pipe(shareReplay({ bufferSize: 1, refCount: true })); source.subscribe(); source.subscribe(); expect(subscriptions).to.equal(1); }); it('should only subscribe once each with multiple synchronous subscriptions and unsubscriptions ', async () => { // This may seem very specific, but it's a regression test for https://github.com/ReactiveX/rxjs/issues/6760 let subscriptions = 0; const source = defer(() => { ++subscriptions; // Needs to be an observable that doesn't complete return new BehaviorSubject(1); }).pipe(shareReplay({ bufferSize: 1, refCount: true })); await firstValueFrom(combineLatest([source, source])); expect(subscriptions).to.equal(1); }); it('should default to refCount being false', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('a-b-c-d-e-f-g-h-i-j'); const sourceSubs = ' ^------------------'; const sub1 = ' ^------! '; const expected1 = ' a-b-c-d- '; const sub2 = ' -----------^-------'; const expected2 = ' -----------fg-h-i-j'; const shared = source.pipe(shareReplay(1)); expectObservable(shared, sub1).toBe(expected1); expectObservable(shared, sub2).toBe(expected2); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not break lift() composability', (done) => { class MyCustomObservable extends Observable { lift(operator: Operator): Observable { const observable = new MyCustomObservable(); (observable).source = this; (observable).operator = operator; return observable; } } const result = new MyCustomObservable((observer: Observer) => { observer.next(1); observer.next(2); observer.next(3); observer.complete(); }).pipe(shareReplay()); expect(result instanceof MyCustomObservable).to.be.true; const expected = [1, 2, 3]; result.subscribe({ next(n: any) { expect(expected.length).to.be.greaterThan(0); expect(n).to.equal(expected.shift()); }, error() { done(new Error('should not be called')); }, complete() { done(); }, }); }); it('should not skip values on a sync source', () => { testScheduler.run(({ cold, expectObservable }) => { const a = from(['a', 'b', 'c', 'd']); // We would like for the previous line to read like this: // // const a = cold('(abcd|)'); // // However, that would synchronously emit multiple values at frame 0, // but it's not synchronous upon-subscription. // TODO: revisit once https://github.com/ReactiveX/rxjs/issues/5523 is fixed const x = cold(' x-------x'); const expected = '(abcd)--d'; const shared = a.pipe(shareReplay(1)); const result = x.pipe(mergeMapTo(shared)); expectObservable(result).toBe(expected); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(shareReplay({ refCount: true }), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); const FinalizationRegistry = (global as any).FinalizationRegistry; if (FinalizationRegistry && global.gc) { it('should not leak the subscriber for sync sources', (done) => { let callback: (() => void) | undefined = () => { /* noop */ }; const registry = new FinalizationRegistry((value: any) => { expect(value).to.equal('callback'); done(); }); registry.register(callback, 'callback'); const shared = of(42).pipe(shareReplay(1)); shared.subscribe(callback); callback = undefined; global.gc?.(); }); } else { console.warn(`No support for FinalizationRegistry in Node ${process.version}`); } it('should be referentially-transparent', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source1 = cold('-1-2-3-4-5-|'); const source1Subs = ' ^----------!'; const expected1 = ' -1-2-3-4-5-|'; const source2 = cold('-6-7-8-9-0-|'); const source2Subs = ' ^----------!'; const expected2 = ' -6-7-8-9-0-|'; // Calls to the _operator_ must be referentially-transparent. const partialPipeLine = pipe(shareReplay({ refCount: false })); // The non-referentially-transparent sharing occurs within the _operator function_ // returned by the _operator_ and that happens when the complete pipeline is composed. const shared1 = source1.pipe(partialPipeLine); const shared2 = source2.pipe(partialPipeLine); expectObservable(shared1).toBe(expected1); expectSubscriptions(source1.subscriptions).toBe(source1Subs); expectObservable(shared2).toBe(expected2); expectSubscriptions(source2.subscriptions).toBe(source2Subs); }); }); }); rxjs-7.5.7/spec/operators/single-spec.ts000066400000000000000000000320721431412030200202430ustar00rootroot00000000000000import { expect } from 'chai'; import { single, mergeMap, tap } from 'rxjs/operators'; import { of, EmptyError, SequenceError, NotFoundError, Observable } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {single} */ describe('single operator', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); it('should raise error from empty predicate if observable emits multiple time', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^----! '; const expected = '-----# '; expectObservable(e1.pipe(single())).toBe(expected, null, new SequenceError('Too many matching values')); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error from empty predicate if observable does not emit', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--|'); const e1subs = ' ^--!'; const expected = ' ---#'; expectObservable(e1.pipe(single())).toBe(expected, null, new EmptyError()); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return only element from empty predicate if observable emits only once', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--|'); const e1subs = ' ^----!'; const expected = '-----(a|)'; expectObservable(e1.pipe(single())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const unsub = ' ----! '; const e1subs = ' ^---! '; const expected = '------------'; expectObservable(e1.pipe(single()), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^--! '; const expected = '---- '; const unsub = ' ---! '; const result = e1.pipe( mergeMap((x) => of(x)), single(), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error from empty predicate if observable emits error', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b^--#'); const e1subs = ' ^--!'; const expected = ' ---#'; expectObservable(e1.pipe(single())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error from predicate if observable emits error', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--b^--#'); const e1subs = ' ^--!'; const expected = ' ---#'; expectObservable(e1.pipe(single((v) => v === 'c'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if predicate throws error', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--|'); const e1subs = ' ^----------! '; const expected = '-----------# '; expectObservable( e1.pipe( single((v) => { if (v !== 'd') { return false; } throw 'error'; }) ) ).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should return element from predicate if observable have single matching element', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^----------!'; const expected = '-----------(b|)'; expectObservable(e1.pipe(single((v) => v === 'b'))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error from predicate if observable have multiple matching element', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--a--b--b--|'); const e1subs = ' ^----------! '; const expected = '-----------# '; expectObservable(e1.pipe(single((v) => v === 'b'))).toBe(expected, null, new SequenceError('Too many matching values')); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error from predicate if observable does not emit', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--|'); const e1subs = ' ^--!'; const expected = ' ---#'; expectObservable(e1.pipe(single((v) => v === 'a'))).toBe(expected, null, new EmptyError()); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error from predicate if observable does not contain matching element', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^----------!'; const expected = '-----------#'; expectObservable(e1.pipe(single((v) => v === 'x'))).toBe(expected, undefined, new NotFoundError('No matching values')); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should call predicate with indices starting at 0', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--|'); const e1subs = ' ^----------!'; const expected = '-----------(b|)'; let indices: number[] = []; const predicate = function (value: string, index: number) { indices.push(index); return value === 'b'; }; expectObservable( e1.pipe( single(predicate), tap({ complete: () => { expect(indices).to.deep.equal([0, 1, 2]); }, }) ) ).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should error for synchronous empty observables when no arguments are provided', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('|'); const expected = ' #'; const subs = [' (^!)']; const result = source.pipe(single()); expectObservable(result).toBe(expected, undefined, new EmptyError()); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error for async empty observables when no arguments are provided', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-------|'); const expected = ' -------#'; const subs = [' ^------!']; const result = source.pipe(single()); expectObservable(result).toBe(expected, undefined, new EmptyError()); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error for hot observables that do not emit while active when no arguments are provided', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--^----|'); const expected = ' -----#'; const subs = [' ^----!']; const result = source.pipe(single()); expectObservable(result).toBe(expected, undefined, new EmptyError()); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error for synchronous empty observables when predicate never passes', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('|'); const expected = ' #'; const subs = [' (^!)']; const result = source.pipe(single(() => false)); expectObservable(result).toBe(expected, undefined, new EmptyError()); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error for async empty observables when predicate never passes', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-------|'); const expected = ' -------#'; const subs = [' ^------!']; const result = source.pipe(single(() => false)); expectObservable(result).toBe(expected, undefined, new EmptyError()); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error for hot observables that do not emit while active when predicate never passes', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--^----|'); const expected = ' -----#'; const subs = [' ^----!']; const result = source.pipe(single(() => false)); expectObservable(result).toBe(expected, undefined, new EmptyError()); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error for synchronous observables that emit when predicate never passes', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('(a|)'); const expected = ' #'; const subs = [' (^!)']; const result = source.pipe(single(() => false)); expectObservable(result).toBe(expected, undefined, new NotFoundError('No matching values')); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error for async observables that emit when predicate never passes', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--a--b-|'); const expected = ' -------#'; const subs = [' ^------!']; const result = source.pipe(single(() => false)); expectObservable(result).toBe(expected, undefined, new NotFoundError('No matching values')); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error for hot observables that emit while active when predicate never passes', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--^--c--d--|'); const expected = ' ---------#'; const subs = [' ^--------!']; const result = source.pipe(single(() => false)); expectObservable(result).toBe(expected, undefined, new NotFoundError('No matching values')); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error for synchronous observables when the predicate passes more than once', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('(axbxc|)'); const expected = ' #'; const subs = [' (^!)']; const result = source.pipe(single((v) => v === 'x')); expectObservable(result).toBe(expected, undefined, new SequenceError('Too many matching values')); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error for async observables that emit when the predicate passes more than once', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--a-x-b-x-c-|'); const expected = ' --------#'; const subs = [' ^-------!']; const result = source.pipe(single((v) => v === 'x')); expectObservable(result).toBe(expected, undefined, new SequenceError('Too many matching values')); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should error for hot observables that emit while active when the predicate passes more than once', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--^--c--x--d--x--|'); const expected = ' ------------#'; const subs = [' ^-----------!']; const result = source.pipe(single((v) => v === 'x')); expectObservable(result).toBe(expected, undefined, new SequenceError('Too many matching values')); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits, it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(single()).subscribe({ next: () => { /* noop */ }, error: () => { /* noop */ }, }); expect(sideEffects).to.deep.equal([0, 1]); }); }); rxjs-7.5.7/spec/operators/skip-spec.ts000066400000000000000000000175141431412030200177340ustar00rootroot00000000000000import { expect } from 'chai'; import { skip, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; import { of, Observable } from 'rxjs'; /** @test {skip} */ describe('skip', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should skip values before a total', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--e--|'); const subs = ' ^----------------!'; const expected = ' -----------d--e--|'; expectObservable(source.pipe(skip(3))).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should skip all values without error if total is more than actual number of values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--e--|'); const subs = ' ^----------------!'; const expected = ' -----------------|'; expectObservable(source.pipe(skip(6))).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should skip all values without error if total is same as actual number of values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--e--|'); const subs = ' ^----------------!'; const expected = ' -----------------|'; expectObservable(source.pipe(skip(5))).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should not skip if count is zero', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--e--|'); const subs = ' ^----------------!'; const expected = ' --a--b--c--d--e--|'; expectObservable(source.pipe(skip(0))).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should not skip if count is negative value', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('--a--b--c--d--e--|'); const subs = ' ^----------------!'; const expected = ' --a--b--c--d--e--|'; expectObservable(source.pipe(skip(-42))).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--e--|'); const unsub = ' ----------! '; const subs = ' ^---------! '; const expected = ' --------c-- '; expectObservable(source.pipe(skip(2)), unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--e--|'); const subs = ' ^---------! '; const expected = ' --------c-- '; const unsub = ' ----------! '; const result = source.pipe( mergeMap((x: string) => of(x)), skip(2), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should raise error if skip count is more than actual number of emits and source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--#'); const subs = ' ^-------------!'; const expected = ' --------------#'; expectObservable(source.pipe(skip(6))).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should raise error if skip count is same as emits of source and source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--#'); const subs = ' ^-------------!'; const expected = ' --------------#'; expectObservable(source.pipe(skip(4))).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should skip values before a total and raises error if source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--#'); const subs = ' ^-------------!'; const expected = ' -----------d--#'; expectObservable(source.pipe(skip(3))).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should complete regardless of skip count if source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const expected = '|'; expectObservable(e1.pipe(skip(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete if source never completes without emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(skip(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should skip values before total and never completes if source emits and does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c-'); const e1subs = ' ^ '; const expected = '-----b--c-'; expectObservable(e1.pipe(skip(1))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should skip all values and never completes if total is more than numbers of value and source does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c-'); const e1subs = ' ^ '; const expected = '----------'; expectObservable(e1.pipe(skip(6))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should skip all values and never completes if total is same asnumbers of value and source does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c-'); const e1subs = ' ^ '; const expected = '----------'; expectObservable(e1.pipe(skip(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source throws', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e1subs = ' (^!)'; const expected = '#'; expectObservable(e1.pipe(skip(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(skip(1), take(2)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/skipLast-spec.ts000066400000000000000000000174411431412030200205570ustar00rootroot00000000000000import { expect } from 'chai'; import { skipLast, mergeMap, take } from 'rxjs/operators'; import { of, Observable } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {skipLast} */ describe('skipLast operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should skip two values of an observable with many values', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--|'); const e1subs = ' ^-------------------!'; const expected = '-------------a---b--|'; expectObservable(e1.pipe(skipLast(2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should skip last three values', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--|'); const e1subs = ' ^-------------------!'; const expected = '-----------------a--|'; expectObservable(e1.pipe(skipLast(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should skip all elements when trying to skip larger then source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--|'); const e1subs = ' ^-------------------!'; const expected = '--------------------|'; expectObservable(e1.pipe(skipLast(5))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should skip all elements when trying to skip exact', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--|'); const e1subs = ' ^-------------------!'; const expected = '--------------------|'; expectObservable(e1.pipe(skipLast(4))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not skip any values', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--|'); const e1subs = ' ^-------------------!'; const expected = '--a-----b----c---d--|'; expectObservable(e1.pipe(skipLast(0))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not skip any values if provided with negative value', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--|'); const e1subs = ' ^-------------------!'; const expected = '--a-----b----c---d--|'; expectObservable(e1.pipe(skipLast(-42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const expected = '|'; expectObservable(e1.pipe(skipLast(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should go on forever on never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(skipLast(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should skip one value from an observable with one value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---(a|)'); const e1subs = ' ^--! '; const expected = '---| '; expectObservable(e1.pipe(skipLast(1))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should skip one value from an observable with many values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b----c---d--|'); const e1subs = ' ^--------------!'; const expected = ' --------b---c--|'; expectObservable(e1.pipe(skipLast(1))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with empty and early emission', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^----|'); const e1subs = ' ^----!'; const expected = ' -----|'; expectObservable(e1.pipe(skipLast(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate error from the source observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^---#', undefined, 'too bad'); const e1subs = ' ^---!'; const expected = ' ----#'; expectObservable(e1.pipe(skipLast(42))).toBe(expected, null, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate error from an observable with values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--a--b--#'); const e1subs = ' ^--------!'; const expected = ' ---------#'; expectObservable(e1.pipe(skipLast(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--a--b-----c--d--e--|'); const unsub = ' ---------! '; const e1subs = ' ^--------! '; const expected = ' ---------- '; expectObservable(e1.pipe(skipLast(42)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e1subs = ' (^!)'; const expected = '#'; expectObservable(e1.pipe(skipLast(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--a--b-----c--d--e--|'); const unsub = ' ---------! '; const e1subs = ' ^--------! '; const expected = ' ---------- '; const result = e1.pipe( mergeMap((x: string) => of(x)), skipLast(42), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(skipLast(1), take(3)).subscribe(() => { /* noop */ }); // This expectation might seem a little strange, but the implementation of // skipLast works by eating the number of elements that are to be skipped, // so it will consume the number skipped in addition to the number taken. expect(sideEffects).to.deep.equal([0, 1, 2, 3]); }); }); rxjs-7.5.7/spec/operators/skipUntil-spec.ts000066400000000000000000000337571431412030200207570ustar00rootroot00000000000000import { expect } from 'chai'; import { concat, defer, of, Subject, Observable } from 'rxjs'; import { skipUntil, mergeMap, take } from 'rxjs/operators'; import { asInteropObservable } from '../helpers/interop-helper'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {skipUntil} */ describe('skipUntil', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should skip values until another observable notifies', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e----|'); const e1subs = ' ^------------------!'; const skip = hot(' ---------x------| '); const skipSubs = ' ^--------! '; const expected = ' -----------d--e----|'; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should emit elements after notifier emits', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--|'); const e1subs = ' ^----------------!'; const skip = hot(' ---------x----| '); const skipSubs = ' ^--------! '; const expected = ' -----------d--e--|'; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should emit elements after a synchronous notifier emits', () => { const values: string[] = []; of('a', 'b') .pipe(skipUntil(of('x'))) .subscribe({ next(value) { values.push(value); }, error(err) { throw err; }, complete() { expect(values).to.deep.equal(['a', 'b']); }, }); }); it('should raise an error if notifier throws and source is hot', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--|'); const e1subs = ' ^------------! '; const skip = hot('-------------# '); const skipSubs = '^------------! '; const expected = '-------------# '; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should skip all elements when notifier does not emit and completes early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--|'); const e1subs = ' ^----------------!'; const skip = hot('------------| '); const skipSubs = '^-----------! '; const expected = '-----------------|'; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e----|'); const unsub = ' ---------! '; const e1subs = ' ^--------! '; const skip = hot(' -------------x--| '); const skipSubs = ' ^--------! '; const expected = ' ---------- '; expectObservable(e1.pipe(skipUntil(skip)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e----|'); const e1subs = ' ^--------! '; const skip = hot(' -------------x--| '); const skipSubs = ' ^--------! '; const expected = ' ---------- '; const unsub = ' ---------! '; const result = e1.pipe( mergeMap((x) => of(x)), skipUntil(skip), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should not break unsubscription chains with interop inners when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e----|'); const e1subs = ' ^--------! '; const skip = hot(' -------------x--| '); const skipSubs = ' ^--------! '; const expected = ' ---------- '; const unsub = ' ---------! '; // This test is the same as the previous test, but the observable is // manipulated to make it look like an interop observable - an observable // from a foreign library. Interop subscribers are treated differently: // they are wrapped in a safe subscriber. This test ensures that // unsubscriptions are chained all the way to the interop subscriber. const result = e1.pipe( mergeMap((x) => of(x)), skipUntil(asInteropObservable(skip)), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should skip all elements when notifier is empty', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--|'); const e1subs = ' ^----------------!'; const skip = cold('| '); const skipSubs = ' (^!) '; const expected = ' -----------------|'; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should keep subscription to source, to wait for its eventual completion', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ------------------------------|'); const e1subs = ' ^-----------------------------!'; const skip = hot('-------| '); const skipSubs = '^------! '; const expected = '------------------------------|'; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should not complete if hot source observable does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' - '); const e1subs = ' ^ '; const skip = hot('-------------x--|'); const skipSubs = '^------------! '; const expected = '- '; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should not complete if cold source observable never completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = cold(' - '); const e1subs = ' ^ '; const skip = hot('-------------x--|'); const skipSubs = '^------------! '; const expected = '- '; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should raise error if cold source is never and notifier errors', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = cold(' - '); const e1subs = ' ^------------!'; const skip = hot('-------------#'); const skipSubs = '^------------!'; const expected = '-------------#'; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should skip all elements and complete if notifier is cold never', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--|'); const e1subs = ' ^----------------!'; const skip = cold('- '); const skipSubs = ' ^----------------!'; const expected = ' -----------------|'; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should skip all elements and complete if notifier is a hot never', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--|'); const e1subs = ' ^----------------!'; const skip = hot('- '); const skipSubs = '^----------------!'; const expected = '-----------------|'; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should skip all elements and complete, even if notifier would not complete until later', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ^-a--b--c--d--e--| '); const e1subs = ' ^----------------! '; const skip = hot('^-----------------------|'); const skipSubs = '^----------------! '; const expected = '-----------------| '; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should not complete if source does not complete if notifier completes without emission', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' - '); const e1subs = ' ^ '; const skip = hot('--------------|'); const skipSubs = '^-------------!'; const expected = '- '; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should not complete if source and notifier are both hot never', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e1subs = ' ^'; const skip = hot('-'); const skipSubs = '^'; const expected = '-'; expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(skip.subscriptions).toBe(skipSubs); }); }); it('should skip all elements if notifier is unsubscribed explicitly before the notifier emits', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--|'); const e1subs = [ ' ^----------------!', ' ^----------------!', // for the explicit subscribe some lines below ]; const skip = new Subject(); const expected = '-----------------|'; e1.subscribe((x: string) => { if (x === 'd' && !skip.closed) { skip.next('x'); } skip.unsubscribe(); }); expectObservable(e1.pipe(skipUntil(skip))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should unsubscribe the notifier after its first nexted value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot(' -^-o---o---o---o---o---o---|'); const notifier = hot('-^--------n--n--n--n--n--n-|'); const nSubs = ' ^--------! '; const expected = ' -^---------o---o---o---o---|'; const result = source.pipe(skipUntil(notifier)); expectObservable(result).toBe(expected); expectSubscriptions(notifier.subscriptions).toBe(nSubs); }); }); it('should stop listening to a synchronous notifier after its first nexted value', () => { const sideEffects: number[] = []; const synchronousNotifier = concat( defer(() => { sideEffects.push(1); return of(1); }), defer(() => { sideEffects.push(2); return of(2); }), defer(() => { sideEffects.push(3); return of(3); }) ); of(null) .pipe(skipUntil(synchronousNotifier)) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([1]); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(skipUntil(of(0)), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/skipWhile-spec.ts000066400000000000000000000225261431412030200207240ustar00rootroot00000000000000import { expect } from 'chai'; import { skipWhile, mergeMap, tap, take } from 'rxjs/operators'; import { of, Observable } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {skipWhile} */ describe('skipWhile', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should skip all elements until predicate is false', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('-1-^2--3--4--5--6--|'); const sourceSubs = ' ^---------------!'; const expected = ' -------4--5--6--|'; const predicate = function (v: string) { return +v < 4; }; const result = source.pipe(skipWhile(predicate)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should skip all elements with a true predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('-1-^2--3--4--5--6--|'); const sourceSubs = ' ^---------------!'; const expected = ' ----------------|'; const result = source.pipe(skipWhile(() => true)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should skip all elements with a truthy predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('-1-^2--3--4--5--6--|'); const sourceSubs = ' ^---------------!'; const expected = ' ----------------|'; const result = source.pipe( skipWhile((): any => { return {}; }) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not skip any element with a false predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('-1-^2--3--4--5--6--|'); const sourceSubs = ' ^---------------!'; const expected = ' -2--3--4--5--6--|'; const result = source.pipe(skipWhile(() => false)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not skip any elements with a falsy predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('-1-^2--3--4--5--6--|'); const sourceSubs = ' ^---------------!'; const expected = ' -2--3--4--5--6--|'; const result = source.pipe(skipWhile(() => undefined as any)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should skip elements on hot source', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--1--2-^-3--4--5--6--7--8--'); const sourceSubs = ' ^-------------------'; const expected = ' --------5--6--7--8--'; const predicate = function (v: string) { return +v < 5; }; const result = source.pipe(skipWhile(predicate)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it("should be possible to skip using the element's index", () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b-^-c--d--e--f--g--h--|'); const sourceSubs = ' ^-------------------!'; const expected = ' --------e--f--g--h--|'; const predicate = function (_v: string, index: number) { return index < 2; }; const result = source.pipe(skipWhile(predicate)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should skip using index with source unsubscribes early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b-^-c--d--e--f--g--h--|'); const sourceSubs = ' ^----------! '; const unsub = ' -----------! '; const expected = ' -----d--e--- '; const predicate = function (_v: string, index: number) { return index < 1; }; const result = source.pipe(skipWhile(predicate)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b-^-c--d--e--f--g--h--|'); const sourceSubs = ' ^----------! '; const expected = ' -----d--e--- '; const unsub = ' -----------! '; const predicate = function (_v: string, index: number) { return index < 1; }; const result = source.pipe( mergeMap(function (x) { return of(x); }), skipWhile(predicate), mergeMap(function (x) { return of(x); }) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should skip using value with source throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b-^-c--d--e--f--g--h--#'); const sourceSubs = ' ^-------------------!'; const expected = ' -----d--e--f--g--h--#'; const predicate = function (v: string) { return v !== 'd'; }; const result = source.pipe(skipWhile(predicate)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should invoke predicate while its false and never again', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b-^-c--d--e--f--g--h--|'); const sourceSubs = ' ^-------------------!'; const expected = ' --------e--f--g--h--|'; let invoked = 0; const predicate = function (v: string) { invoked++; return v !== 'e'; }; const result = source.pipe( skipWhile(predicate), tap({ complete() { expect(invoked).to.equal(3); }, }) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should handle predicate that throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const source = hot('--a--b-^-c--d--e--f--g--h--|'); const sourceSubs = ' ^-------! '; const expected = ' --------# '; const predicate = function (v: string) { if (v === 'e') { throw new Error("nom d'une pipe !"); } return v !== 'f'; }; const result = source.pipe(skipWhile(predicate)); expectObservable(result).toBe(expected, undefined, new Error("nom d'une pipe !")); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should handle Observable.empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('| '); const subs = ' (^!)'; const expected = ' | '; const result = source.pipe(skipWhile(() => true)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should handle Observable.never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-'); const subs = ' ^'; const expected = ' -'; const result = source.pipe(skipWhile(() => true)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should handle Observable.throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('# '); const subs = ' (^!)'; const expected = ' # '; const result = source.pipe(skipWhile(() => true)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( skipWhile((value) => value < 2), take(1) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/startWith-spec.ts000066400000000000000000000176311431412030200207570ustar00rootroot00000000000000import { expect } from 'chai'; import { startWith, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {startWith} */ describe('startWith', () => { const defaultStartValue = 'x'; let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should prepend to a cold Observable', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' ---a--b--c--|'); const e1subs = ' ^-----------!'; const expected = 's--a--b--c--|'; const result = e1.pipe(startWith('s')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should start an observable with given value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--|'); const e1subs = ' ^----!'; const expected = 'x-a--|'; const result = e1.pipe(startWith(defaultStartValue)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should start with given value and does not completes if source does not completes', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a-'); const e1subs = ' ^-----'; const expected = 'x---a-'; const result = e1.pipe(startWith(defaultStartValue)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should start with given value and does not completes if source never emits', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' - '); const e1subs = ' ^ '; const expected = 'x-'; const result = e1.pipe(startWith(defaultStartValue)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should start with given value and completes if source does not emits', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---|'); const e1subs = ' ^--!'; const expected = 'x--|'; const result = e1.pipe(startWith(defaultStartValue)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should start with given value and complete immediately if source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '(x|)'; const result = e1.pipe(startWith(defaultStartValue)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should start with given value and source both if source emits single value', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' (a|)'); const e1subs = ' (^!)'; const expected = '(xa|)'; const result = e1.pipe(startWith(defaultStartValue)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should start with given values when given value is more than one', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----a--|'); const e1subs = ' ^-------!'; const expected = '(yz)-a--|'; const result = e1.pipe(startWith('y', 'z')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should start with given value and raises error if source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --#'); const e1subs = ' ^-!'; const expected = 'x-#'; const result = e1.pipe(startWith(defaultStartValue)); expectObservable(result).toBe(expected, defaultStartValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should start with given value and raises error immediately if source throws error', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '(x#)'; const result = e1.pipe(startWith(defaultStartValue)); expectObservable(result).toBe(expected, defaultStartValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b----c--d--|'); const unsub = ' ---------! '; const e1subs = ' ^--------! '; const expected = 's--a--b--- '; const values = { s: 's', a: 'a', b: 'b' }; const result = e1.pipe(startWith('s', testScheduler)); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b----c--d--|'); const e1subs = ' ^--------! '; const expected = 's--a--b--- '; const unsub = ' ---------! '; const values = { s: 's', a: 'a', b: 'b' }; const result = e1.pipe( mergeMap((x: string) => of(x)), startWith('s', testScheduler), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should start with empty if given value is not specified', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-|'); const e1subs = ' ^--!'; const expected = '-a-|'; const result = e1.pipe(startWith(testScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should accept scheduler as last argument with single value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--|'); const e1subs = ' ^----!'; const expected = 'x-a--|'; const result = e1.pipe(startWith(defaultStartValue, testScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should accept scheduler as last argument with multiple value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----a--|'); const e1subs = ' ^-------!'; const expected = '(yz)-a--|'; const result = e1.pipe(startWith('y', 'z', testScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(startWith(-1), take(4)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/subscribeOn-spec.ts000066400000000000000000000111171431412030200212350ustar00rootroot00000000000000import { expect } from 'chai'; import { subscribeOn, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable, queueScheduler } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {subscribeOn} */ describe('subscribeOn', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should subscribe on specified scheduler', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const expected = '--a--b--|'; const sub = ' ^-------!'; const result = e1.pipe(subscribeOn(testScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(sub); }); }); it('should start subscribe after specified delay', () => { testScheduler.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const expected = ' -----b--|'; const delay = time('---| '); const sub = ' ---^----!'; const result = e1.pipe(subscribeOn(testScheduler, delay)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(sub); }); }); it('should unsubscribe when source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--#'); const expected = '--a--#'; const sub = ' ^----!'; const result = e1.pipe(subscribeOn(testScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(sub); }); }); it('should subscribe when source is empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----|'); const expected = '----|'; const sub = ' ^---!'; const result = e1.pipe(subscribeOn(testScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(sub); }); }); it('should subscribe when source does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----'); const expected = '----'; const sub = ' ^---'; const result = e1.pipe(subscribeOn(testScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(sub); }); }); it('should allow unsubscribing early and explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const sub = ' ^---! '; const expected = '--a-- '; const unsub = ' ----! '; const result = e1.pipe(subscribeOn(testScheduler)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(sub); }); }); it('should not break unsubscription chains when the result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const sub = ' ^---! '; const expected = '--a-- '; const unsub = ' ----! '; const result = e1.pipe( mergeMap((x: string) => of(x)), subscribeOn(testScheduler), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(sub); }); }); it('should properly support a delayTime of Infinity', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--|'); const expected = '---------'; const result = e1.pipe(subscribeOn(testScheduler, Infinity)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe([]); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(subscribeOn(queueScheduler), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/switchAll-spec.ts000066400000000000000000000307331431412030200207160ustar00rootroot00000000000000import { expect } from 'chai'; import { Observable, of, NEVER, queueScheduler, Subject, scheduled } from 'rxjs'; import { map, switchAll, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {switch} */ describe('switchAll', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should switch a hot observable of cold observables', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b--c---d--| '); const xsubs = ' --^------! '; const y = cold(' ----e---f--g---|'); const ysubs = ' ---------^--------------!'; const e1 = hot(' --x------y-------| ', { x: x, y: y }); const e1subs = ' ^----------------! '; const expected = '----a---b----e---f--g---|'; const result = e1.pipe(switchAll()); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch to each immediately-scheduled inner Observable', (done) => { const a = scheduled([1, 2, 3], queueScheduler); const b = scheduled([4, 5, 6], queueScheduler); const r = [1, 4, 5, 6]; let i = 0; scheduled([a, b], queueScheduler) .pipe(switchAll()) .subscribe({ next(x) { expect(x).to.equal(r[i++]); }, complete: done, }); }); it('should unsub inner observables', () => { const unsubbed: string[] = []; of('a', 'b') .pipe( map( (x) => new Observable((subscriber) => { subscriber.complete(); return () => { unsubbed.push(x); }; }) ), switchAll() ) .subscribe(); expect(unsubbed).to.deep.equal(['a', 'b']); }); it('should switch to each inner Observable', (done) => { const a = of(1, 2, 3); const b = of(4, 5, 6); const r = [1, 2, 3, 4, 5, 6]; let i = 0; of(a, b) .pipe(switchAll()) .subscribe({ next(x) { expect(x).to.equal(r[i++]); }, complete: done, }); }); it('should handle a hot observable of observables', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------^-------! '; const y = cold(' ---d--e---f---|'); const ysubs = ' --------------^-------------!'; const e1 = hot(' ------x-------y------| ', { x: x, y: y }); const e1subs = ' ^--------------------! '; const expected = '--------a---b----d--e---f---|'; const result = e1.pipe(switchAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); }); }); it('should handle a hot observable of observables, outer is unsubscribed early', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------^-------! '; const y = cold(' ---d--e---f---|'); const ysubs = ' --------------^-! '; const e1 = hot(' ------x-------y------| ', { x: x, y: y }); const unsub = ' ----------------! '; const expected = '--------a---b--- '; const result = e1.pipe(switchAll()); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------^-------! '; const y = cold(' ---d--e---f---|'); const ysubs = ' --------------^-! '; const e1 = hot(' ------x-------y------| ', { x: x, y: y }); const expected = '--------a---b---- '; const unsub = ' ----------------! '; const result = e1.pipe( mergeMap((x) => of(x)), switchAll(), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); }); }); it('should handle a hot observable of observables, inner never completes', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------^-------! '; const y = cold(' ---d--e---f-----'); const ysubs = ' --------------^ '; const e1 = hot(' ------x-------y------| ', { x: x, y: y }); const expected = '--------a---b----d--e---f-----'; const result = e1.pipe(switchAll()); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); }); }); it('should handle a synchronous switch to the second inner observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------(^!) '; const y = cold(' ---d--e---f---| '); const ysubs = ' ------^-------------! '; const e1 = hot(' ------(xy)------------|', { x: x, y: y }); const expected = '---------d--e---f-----|'; const result = e1.pipe(switchAll()); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); }); }); it('should handle a hot observable of observables, one inner throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a---# '); const xsubs = ' ------^-----! '; const y = cold(' ---d--e---f---|'); const ysubs = ' '; const e1 = hot(' ------x-------y------| ', { x: x, y: y }); const expected = '--------a---# '; const result = e1.pipe(switchAll()); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); }); }); it('should handle a hot observable of observables, outer throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------^-------! '; const y = cold(' ---d--e---f---|'); const ysubs = ' --------------^-------! '; const e1 = hot(' ------x-------y-------# ', { x: x, y: y }); const expected = '--------a---b----d--e-# '; const result = e1.pipe(switchAll()); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); }); }); it('should handle an empty hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ------|'); const e1subs = ' ^-----!'; const expected = '------|'; const result = e1.pipe(switchAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a never hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e1subs = ' ^'; const expected = '-'; const result = e1.pipe(switchAll()); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete not before the outer completes', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a---b---c--| '); const xsubs = ' ------^------------! '; const e1 = hot(' ------x---------------|', { x: x }); const e1subs = ' ^---------------------!'; const expected = '--------a---b---c-----|'; const result = e1.pipe(switchAll()); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an observable of promises', (done) => { const expected = [3]; of(Promise.resolve(1), Promise.resolve(2), Promise.resolve(3)) .pipe(switchAll()) .subscribe({ next(x) { expect(x).to.equal(expected.shift()); }, complete() { expect(expected.length).to.equal(0); done(); }, }); }); it('should handle an observable of promises, where last rejects', (done) => { of(Promise.resolve(1), Promise.resolve(2), Promise.reject(3)) .pipe(switchAll()) .subscribe({ next() { done(new Error('should not be called')); }, error(err) { expect(err).to.equal(3); done(); }, complete() { done(new Error('should not be called')); }, }); }); it('should handle an observable with Arrays in it', () => { const expected = [1, 2, 3, 4]; let completed = false; of(NEVER, NEVER, [1, 2, 3, 4]) .pipe(switchAll()) .subscribe({ next(x) { expect(x).to.equal(expected.shift()); }, complete() { completed = true; expect(expected.length).to.equal(0); }, }); expect(completed).to.be.true; }); it('should not leak when child completes before each switch (prevent memory leaks #2355)', () => { let iStream: Subject; const oStreamControl = new Subject(); const oStream = oStreamControl.pipe(map(() => (iStream = new Subject()))); const switcher = oStream.pipe(switchAll()); const result: number[] = []; let sub = switcher.subscribe((x) => result.push(x)); [0, 1, 2, 3, 4].forEach((n) => { oStreamControl.next(n); // creates inner iStream.complete(); }); // Expect one child of switchAll(): The oStream expect((sub as any)._finalizers?.[0]._finalizers?.length).to.equal(1); sub.unsubscribe(); }); it('should not leak if we switch before child completes (prevent memory leaks #2355)', () => { const oStreamControl = new Subject(); const oStream = oStreamControl.pipe(map(() => new Subject())); const switcher = oStream.pipe(switchAll()); const result: number[] = []; let sub = switcher.subscribe((x) => result.push(x)); [0, 1, 2, 3, 4].forEach((n) => { oStreamControl.next(n); // creates inner }); // Expect one child of switchAll(): The oStream expect((sub as any)._finalizers?.[0]._finalizers?.length).to.equal(1); // Expect two children of subscribe(): The destination and the first inner // See #4106 - inner subscriptions are now added to destinations expect((sub as any)._finalizers?.length).to.equal(2); sub.unsubscribe(); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); of(synchronousObservable) .pipe(switchAll(), take(3)) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/switchMap-spec.ts000066400000000000000000000502051431412030200207170ustar00rootroot00000000000000import { expect } from 'chai'; import { switchMap, mergeMap, map, takeWhile, take } from 'rxjs/operators'; import { concat, defer, of, Observable, BehaviorSubject } from 'rxjs'; import { asInteropObservable } from '../helpers/interop-helper'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {switchMap} */ describe('switchMap', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should map-and-flatten each item to an Observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --1-----3--5-------|'); const e1subs = ' ^------------------!'; const e2 = cold(' x-x-x| ', { x: 10 }); // x-x-x| // x-x-x| const expected = ' --x-x-x-y-yz-z-z---|'; const values = { x: 10, y: 30, z: 50 }; const result = e1.pipe(switchMap((x) => e2.pipe(map((i) => i * +x)))); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support the deprecated resultSelector', () => { const results: Array = []; of(1, 2, 3) .pipe( switchMap( (x) => of(x, x + 1, x + 2), (a, b, i, ii) => [a, b, i, ii] ) ) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([ [1, 1, 0, 0], [1, 2, 0, 1], [1, 3, 0, 2], [2, 2, 1, 0], [2, 3, 1, 1], [2, 4, 1, 2], [3, 3, 2, 0], [3, 4, 2, 1], [3, 5, 2, 2], ]); }, }); }); it('should support a void resultSelector (still deprecated)', () => { const results: number[] = []; of(1, 2, 3) .pipe(switchMap((x) => of(x, x + 1, x + 2), void 0)) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([1, 2, 3, 2, 3, 4, 3, 4, 5]); }, }); }); it('should unsub inner observables', () => { const unsubbed: string[] = []; of('a', 'b') .pipe( switchMap( (x) => new Observable((subscriber) => { subscriber.complete(); return () => { unsubbed.push(x); }; }) ) ) .subscribe(); expect(unsubbed).to.deep.equal(['a', 'b']); }); it('should switch inner cold observables', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------^---------! '; const y = cold(' ---f---g---h---i--|'); const ysubs = ' -------------------^-----------------!'; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^----------------------------! '; const expected = '-----------a--b--c----f---g---h---i--|'; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(switchMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when projection throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -------x-----y---|'); const e1subs = ' ^------! '; const expected = '-------# '; function project(): any[] { throw 'error'; } expectObservable(e1.pipe(switchMap(project))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner cold observables, outer is unsubscribed early', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------^---------! '; const y = cold(' ---f---g---h---i--|'); const ysubs = ' -------------------^-! '; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^--------------------! '; const unsub = ' ---------------------! '; const expected = '-----------a--b--c---- '; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(switchMap((value) => observableLookup[value])); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------^---------! '; const y = cold(' ---f---g---h---i--|'); const ysubs = ' -------------------^-! '; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^--------------------! '; const expected = '-----------a--b--c---- '; const unsub = ' ---------------------! '; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe( mergeMap((x) => of(x)), switchMap((value) => observableLookup[value]), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains with interop inners when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------^---------! '; const y = cold(' ---f---g---h---i--|'); const ysubs = ' -------------------^-! '; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^--------------------! '; const expected = '-----------a--b--c---- '; const unsub = ' ---------------------! '; const observableLookup: Record> = { x: x, y: y }; // This test is the same as the previous test, but the observable is // manipulated to make it look like an interop observable - an observable // from a foreign library. Interop subscribers are treated differently: // they are wrapped in a safe subscriber. This test ensures that // unsubscriptions are chained all the way to the interop subscriber. const result = e1.pipe( mergeMap((x) => of(x)), switchMap((value) => asInteropObservable(observableLookup[value])), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = concat( defer(() => { sideEffects.push(1); return of(1); }), defer(() => { sideEffects.push(2); return of(2); }), defer(() => { sideEffects.push(3); return of(3); }) ); of(null) .pipe( switchMap(() => synchronousObservable), takeWhile((x) => x != 2) // unsubscribe at the second side-effect ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([1, 2]); }); it('should switch inner cold observables, inner never completes', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------^---------! '; const y = cold(' ---f---g---h---i--'); const ysubs = ' -------------------^ '; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^----------------------------! '; const expected = '-----------a--b--c----f---g---h---i--'; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(switchMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a synchronous switch to the second inner observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------(^!) '; const y = cold(' ---f---g---h---i--| '); const ysubs = ' ---------^-----------------! '; const e1 = hot(' ---------(xy)----------------|'); const e1subs = ' ^----------------------------!'; const expected = '------------f---g---h---i----|'; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(switchMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner cold observables, one inner throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--#--d--e--| '); const xsubs = ' ---------^-------! '; const y = cold(' ---f---g---h---i--'); const ysubs = ' '; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^----------------! '; const expected = '-----------a--b--# '; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(switchMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner hot observables', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const x = hot(' -----a--b--c--d--e--| '); const xsubs = ' ---------^---------! '; const y = hot(' --p-o-o-p-------------f---g---h---i--|'); const ysubs = ' -------------------^-----------------!'; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^----------------------------! '; const expected = '-----------c--d--e----f---g---h---i--|'; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(switchMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner empty and empty', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const y = cold(' | '); const xsubs = ' ---------(^!) '; const ysubs = ' -------------------(^!) '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^----------------------------!'; const expected = '-----------------------------|'; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(switchMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner empty and never', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const y = cold(' - '); const xsubs = ' ---------(^!) '; const ysubs = ' -------------------^ '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^----------------------------!'; const expected = '------------------------------'; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(switchMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner never and empty', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' - '); const y = cold(' | '); const xsubs = ' ---------^---------! '; const ysubs = ' -------------------(^!) '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^----------------------------!'; const expected = '-----------------------------|'; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(switchMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner never and throw', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' - '); const y = cold(' # ', undefined, 'sad'); const xsubs = ' ---------^---------! '; const ysubs = ' -------------------(^!) '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^------------------! '; const expected = '-------------------# '; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(switchMap((value) => observableLookup[value])); expectObservable(result).toBe(expected, undefined, 'sad'); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner empty and throw', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const y = cold(' # ', undefined, 'sad'); const xsubs = ' ---------(^!) '; const ysubs = ' -------------------(^!) '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^------------------! '; const expected = '-------------------# '; const observableLookup: Record> = { x: x, y: y }; const result = e1.pipe(switchMap((value) => observableLookup[value])); expectObservable(result).toBe(expected, undefined, 'sad'); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle outer empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; const result = e1.pipe(switchMap((value) => of(value))); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle outer never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; const result = e1.pipe(switchMap((value) => of(value))); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle outer throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; const result = e1.pipe(switchMap((value) => of(value))); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle outer error', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--|'); const xsubs = ' ---------^---------! '; const e1 = hot(' ---------x---------# '); const e1subs = ' ^------------------! '; const expected = '-----------a--b--c-# '; const observableLookup: Record> = { x: x }; const result = e1.pipe(switchMap((value) => observableLookup[value])); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( switchMap((value) => of(value)), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); it('should unsubscribe previous inner sub when getting synchronously reentrance during subscribing the inner sub', () => { const e = new BehaviorSubject(1); const results: Array = []; e.pipe( take(3), switchMap( (value) => new Observable((subscriber) => { e.next(value + 1); subscriber.next(value); }) ) ).subscribe((value) => results.push(value)); expect(results).to.deep.equal([3]); }); }); rxjs-7.5.7/spec/operators/switchMapTo-spec.ts000066400000000000000000000312171431412030200212240ustar00rootroot00000000000000import { expect } from 'chai'; import { Observable, of } from 'rxjs'; import { switchMapTo, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {switchMapTo} */ describe('switchMapTo', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should map-and-flatten each item to an Observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --1-----3--5-------|'); const e1subs = ' ^------------------!'; const e2 = cold(' x-x-x| ', { x: 10 }); // x-x-x| // x-x-x| const expected = '--x-x-x-x-xx-x-x---|'; const values = { x: 10 }; const result = e1.pipe(switchMapTo(e2)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support the deprecated resultSelector', () => { const results: Array = []; of(1, 2, 3) .pipe(switchMapTo(of(4, 5, 6), (a, b, i, ii) => [a, b, i, ii])) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([ [1, 4, 0, 0], [1, 5, 0, 1], [1, 6, 0, 2], [2, 4, 1, 0], [2, 5, 1, 1], [2, 6, 1, 2], [3, 4, 2, 0], [3, 5, 2, 1], [3, 6, 2, 2], ]); }, }); }); it('should support a void resultSelector (still deprecated)', () => { const results: number[] = []; of(1, 2, 3) .pipe(switchMapTo(of(4, 5, 6), void 0)) .subscribe({ next(value) { results.push(value); }, error(err) { throw err; }, complete() { expect(results).to.deep.equal([4, 5, 6, 4, 5, 6, 4, 5, 6]); }, }); }); it('should switch a synchronous many outer to a synchronous many inner', (done) => { const a = of(1, 2, 3); const expected = ['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']; a.pipe(switchMapTo(of('a', 'b', 'c'))).subscribe({ next(x) { expect(x).to.equal(expected.shift()); }, complete: done, }); }); it('should unsub inner observables', () => { let unsubbed = 0; of('a', 'b') .pipe( switchMapTo( new Observable((subscriber) => { subscriber.complete(); return () => { unsubbed++; }; }) ) ) .subscribe(); expect(unsubbed).to.equal(2); }); it('should switch to an inner cold observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = [ ' ---------^---------! ', // --a--b--c--d--e--| ' -------------------^----------------!', ]; const e1 = hot(' ---------x---------x---------| '); const e1subs = ' ^----------------------------! '; const expected = '-----------a--b--c---a--b--c--d--e--|'; expectObservable(e1.pipe(switchMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch to an inner cold observable, outer eventually throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--|'); const xsubs = ' ---------^---------! '; const e1 = hot(' ---------x---------# '); const e1subs = ' ^------------------! '; const expected = '-----------a--b--c-# '; expectObservable(e1.pipe(switchMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch to an inner cold observable, outer is unsubscribed early', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = [ ' ---------^---------! ', // --a--b--c--d--e--| ' -------------------^--! ', ]; const e1 = hot(' ---------x---------x---------|'); const unsub = ' ----------------------! '; const e1subs = ' ^---------------------! '; const expected = '-----------a--b--c---a- '; expectObservable(e1.pipe(switchMapTo(x)), unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold('--a--b--c--d--e--| '); const xsubs = [ ' ---------^---------! ', // --a--b--c--d--e--| ' -------------------^--! ', ]; const e1 = hot(' ---------x---------x---------|'); const e1subs = ' ^---------------------! '; const expected = '-----------a--b--c---a- '; const unsub = ' ----------------------! '; const result = e1.pipe( mergeMap((x) => of(x)), switchMapTo(x), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch to an inner cold observable, inner never completes', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e- '); const xsubs = [ ' ---------^---------! ', // --a--b--c--d--e- ' -------------------^ ', ]; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^----------------------------! '; const expected = '-----------a--b--c---a--b--c--d--e-'; expectObservable(e1.pipe(switchMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a synchronous switch to the inner observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); // prettier-ignore const xsubs = [ ' ---------(^!) ', ' ---------^----------------! ' ]; const e1 = hot(' ---------(xx)----------------|'); const e1subs = ' ^----------------------------!'; const expected = '-----------a--b--c--d--e-----|'; expectObservable(e1.pipe(switchMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch to an inner cold observable, inner raises an error', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--# '); const xsubs = ' ---------^-------! '; const e1 = hot(' ---------x---------x---------|'); const e1subs = ' ^----------------! '; const expected = '-----------a--b--# '; expectObservable(e1.pipe(switchMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch an inner hot observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const x = hot(' --p-o-o-p---a--b--c--d-| '); // prettier-ignore const xsubs = [ ' ---------^---------! ', ' -------------------^---! ' ]; const e1 = hot(' ---------x---------x---------|'); const e1subs = ' ^----------------------------!'; const expected = '------------a--b--c--d-------|'; expectObservable(e1.pipe(switchMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch to an inner empty', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const xsubs = [ ' ---------(^!) ', // | ' -------------------(^!) ', ]; const e1 = hot(' ---------x---------x---------|'); const e1subs = ' ^----------------------------!'; const expected = '-----------------------------|'; expectObservable(e1.pipe(switchMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch to an inner never', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' - '); const xsubs = [ ' ---------^---------! ', // - ' -------------------^ ', ]; const e1 = hot(' ---------x---------x---------|'); const e1subs = ' ^----------------------------!'; const expected = '------------------------------'; expectObservable(e1.pipe(switchMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch to an inner that just raises an error', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' # '); const xsubs = ' ---------(^!) '; const e1 = hot(' ---------x---------x---------|'); const e1subs = ' ^--------! '; const expected = '---------# '; expectObservable(e1.pipe(switchMapTo(x))).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an empty outer', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; expectObservable(e1.pipe(switchMapTo(of('foo')))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a never outer', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(switchMapTo(of('foo')))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle an outer that just raises and error', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(switchMapTo(of('foo')))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(switchMapTo(of(0)), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/switchScan-spec.ts000066400000000000000000000426041431412030200210720ustar00rootroot00000000000000import { expect } from 'chai'; import { concat, defer, Observable, of } from 'rxjs'; import { switchScan, map, mergeMap, takeWhile } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {switchScan} */ describe('switchScan', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should map-and-flatten each item to an Observable while passing the accumulated value', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = hot(' --1-----3--5-------|'); const e1subs = ' ^------------------!'; const e2 = cold(' x-x-x| ', { x: 10 }); // x-x-x| // x-x-x| const expected = '--x-x-x-y-yz-z-z---|'; const values = { x: 10, y: 40, z: 90 }; const result = e1.pipe(switchScan((acc, x) => e2.pipe(map((i) => i * Number(x) + acc)), 0)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should provide the proper accumulated values', () => { const accs: number[] = []; of(1, 3, 5) .pipe( switchScan((acc, x) => { accs.push(acc); return of(acc + x); }, 100) ) .subscribe(); expect(accs).to.deep.equal([100, 101, 104]); }); it('should unsub inner observables', () => { const unsubbed: string[] = []; of('a', 'b') .pipe( switchScan( (_acc, x) => new Observable((subscriber) => { subscriber.complete(); return () => { unsubbed.push(x); }; }), null ) ) .subscribe(); expect(unsubbed).to.deep.equal(['a', 'b']); }); it('should switch inner cold observables', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------^---------! '; const y = cold(' ---f---g---h---i--|'); const ysubs = ' -------------------^-----------------!'; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^----------------------------! '; const expected = '-----------a--b--c----f---g---h---i--|'; const observableLookup: Record> = { x, y }; const result = e1.pipe(switchScan((_acc, value) => observableLookup[value], null)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when projection throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -------x-----y---|'); const e1subs = ' ^------! '; const expected = '-------# '; function project(): any[] { throw 'error'; } expectObservable(e1.pipe(switchScan(project, null))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner cold observables, outer is unsubscribed early', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------^---------! '; const y = cold(' ---f---g---h---i--|'); const ysubs = ' -------------------^-! '; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^--------------------! '; const unsub = ' ---------------------! '; const expected = '-----------a--b--c---- '; const observableLookup: Record> = { x, y }; const result = e1.pipe(switchScan((_acc, value) => observableLookup[value], null)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------^---------! '; const y = cold(' ---f---g---h---i--|'); const ysubs = ' -------------------^-! '; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^--------------------! '; const expected = '-----------a--b--c---- '; const unsub = ' ---------------------! '; const observableLookup: Record> = { x, y }; const result = e1.pipe( mergeMap((x) => of(x)), switchScan((_acc, value) => observableLookup[value], null), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = concat( defer(() => { sideEffects.push(1); return of(1); }), defer(() => { sideEffects.push(2); return of(2); }), defer(() => { sideEffects.push(3); return of(3); }) ); of(null) .pipe( switchScan(() => synchronousObservable, null), takeWhile((x) => x != 2) // unsubscribe at the second side-effect ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([1, 2]); }); it('should switch inner cold observables, inner never completes', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------^---------! '; const y = cold(' ---f---g---h---i--'); const ysubs = ' -------------------^ '; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^----------------------------! '; const expected = '-----------a--b--c----f---g---h---i--'; const observableLookup: Record> = { x, y }; const result = e1.pipe(switchScan((_acc, value) => observableLookup[value], null)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle a synchronous switch to the second inner observable', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--| '); const xsubs = ' ---------(^!) '; const y = cold(' ---f---g---h---i--| '); const ysubs = ' ---------^-----------------! '; const e1 = hot(' ---------(xy)----------------|'); const e1subs = ' ^----------------------------!'; const expected = '------------f---g---h---i----|'; const observableLookup: Record> = { x, y }; const result = e1.pipe(switchScan((_acc, value) => observableLookup[value], null)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner cold observables, one inner throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--#--d--e--| '); const xsubs = ' ---------^-------! '; const y = cold(' ---f---g---h---i--'); const ysubs = ' '; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^----------------! '; const expected = '-----------a--b--# '; const observableLookup: Record> = { x, y }; const result = e1.pipe(switchScan((_acc, value) => observableLookup[value], null)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner hot observables', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const x = hot(' -----a--b--c--d--e--| '); const xsubs = ' ---------^---------! '; const y = hot(' --p-o-o-p-------------f---g---h---i--|'); const ysubs = ' -------------------^-----------------!'; const e1 = hot(' ---------x---------y---------| '); const e1subs = ' ^----------------------------! '; const expected = '-----------c--d--e----f---g---h---i--|'; const observableLookup: Record> = { x, y }; const result = e1.pipe(switchScan((_acc, value) => observableLookup[value], null)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner empty and empty', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const y = cold(' | '); const xsubs = ' ---------(^!) '; const ysubs = ' -------------------(^!) '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^----------------------------!'; const expected = '-----------------------------|'; const observableLookup: Record> = { x, y }; const result = e1.pipe(switchScan((_acc, value) => observableLookup[value], null)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner empty and never', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const y = cold(' -----------'); const xsubs = ' ---------(^!) '; const ysubs = ' -------------------^ '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^----------------------------!'; const expected = '------------------------------'; const observableLookup: Record> = { x, y }; const result = e1.pipe(switchScan((_acc, value) => observableLookup[value], null)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner never and empty', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' ----------- '); const y = cold(' | '); const xsubs = ' ---------^---------! '; const ysubs = ' -------------------(^!) '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^----------------------------!'; const expected = '-----------------------------|'; const observableLookup: Record> = { x, y }; const result = e1.pipe(switchScan((_acc, value) => observableLookup[value], null)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner never and throw', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' ----------- '); const y = cold(' # ', undefined, 'sad'); const xsubs = ' ---------^---------! '; const ysubs = ' -------------------(^!) '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^------------------! '; const expected = '-------------------# '; const observableLookup: Record> = { x, y }; const result = e1.pipe(switchScan((_acc, value) => observableLookup[value], null)); expectObservable(result).toBe(expected, undefined, 'sad'); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should switch inner empty and throw', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' | '); const y = cold(' # ', undefined, 'sad'); const xsubs = ' ---------(^!) '; const ysubs = ' -------------------(^!) '; const e1 = hot(' ---------x---------y---------|'); const e1subs = ' ^------------------! '; const expected = '-------------------# '; const observableLookup: Record> = { x, y }; const result = e1.pipe(switchScan((_acc, value) => observableLookup[value], null)); expectObservable(result).toBe(expected, undefined, 'sad'); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle outer empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; const result = e1.pipe(switchScan((_acc, value) => of(value), '')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle outer never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; const result = e1.pipe(switchScan((_acc, value) => of(value), '')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle outer throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; const result = e1.pipe(switchScan((_acc, value) => of(value), '')); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle outer error', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' --a--b--c--d--e--|'); const xsubs = ' ---------^---------! '; const e1 = hot(' ---------x---------# '); const e1subs = ' ^------------------! '; const expected = '-----------a--b--c-# '; const observableLookup: Record> = { x: x }; const result = e1.pipe(switchScan((_acc, value) => observableLookup[value], null)); expectObservable(result).toBe(expected); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should create a new seed for each subscriber', () => { const seeds: string[] = []; const observer = (value: string) => seeds.push(value); const source = of('a', 'b').pipe(switchScan((acc, x) => of(acc + x), '')); source.subscribe(observer); source.subscribe(observer); expect(seeds).to.deep.equal(['a', 'ab', 'a', 'ab']); }); it('should pass index to the accumulator function', () => { const indices: number[] = []; of('a', 'b', 'c', 'd') .pipe( switchScan((_acc, _x, index) => { indices.push(index); return of(); }, '') ) .subscribe(); expect(indices).to.deep.equal([0, 1, 2, 3]); }); }); rxjs-7.5.7/spec/operators/take-spec.ts000066400000000000000000000176771431412030200177240ustar00rootroot00000000000000import { expect } from 'chai'; import { merge, Observable, of, Subject } from 'rxjs'; import { mergeMap, take, tap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {take} */ describe('take', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should take two values of an observable with many values', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--|'); const e1subs = ' ^-------!------------'; const expected = '--a-----(b|) '; expectObservable(e1.pipe(take(2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const expected = '|'; expectObservable(e1.pipe(take(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should go on forever on never', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(take(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be empty on take(0)', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b----c---d--|'); const e1subs: string[] = []; // Don't subscribe at all const expected = ' |'; expectObservable(e1.pipe(take(0))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be empty if provided with negative value', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--|'); const expected = '|'; const e1subs: string[] = []; // Don't subscribe at all expectObservable(e1.pipe(take(-42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take one value of an observable with one value', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---(a|)'); const e1subs = ' ^--!---'; const expected = '---(a|)'; expectObservable(e1.pipe(take(1))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take one values of an observable with many values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b----c---d--|'); const e1subs = ' ^--!------------'; const expected = ' ---(b|) '; expectObservable(e1.pipe(take(1))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should error on empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^----|'); const e1subs = ' ^----!'; const expected = ' -----|'; expectObservable(e1.pipe(take(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate error from the source observable', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^---#', undefined, 'too bad'); const e1subs = ' ^---!'; const expected = ' ----#'; expectObservable(e1.pipe(take(42))).toBe(expected, null, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate error from an observable with values', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--a--b--#'); const e1subs = ' ^--------!'; const expected = ' ---a--b--#'; expectObservable(e1.pipe(take(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--a--b-----c--d--e--|'); const unsub = ' ---------!------------'; const e1subs = ' ^--------!------------'; const expected = ' ---a--b--- '; expectObservable(e1.pipe(take(42)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with throw', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e1subs = ' (^!)'; const expected = '#'; expectObservable(e1.pipe(take(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--a--b-----c--d--e--|'); const unsub = ' ---------! '; const e1subs = ' ^--------! '; const expected = ' ---a--b--- '; const result = e1.pipe( mergeMap((x: string) => of(x)), take(42), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should unsubscribe from the source when it reaches the limit', () => { const source = new Observable((observer) => { expect(observer.closed).to.be.false; observer.next(42); expect(observer.closed).to.be.true; }).pipe(take(1)); source.subscribe(); }); it('should complete when the source is reentrant', () => { let completed = false; const source = new Subject(); source.pipe(take(5)).subscribe({ next() { source.next(); }, complete() { completed = true; }, }); source.next(); expect(completed).to.be.true; }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); it('should complete even if the parameter is a string', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--|'); const e1subs = ' ^-------!------------'; const expected = '--a-----(b|) '; expectObservable(e1.pipe(take('2' as any))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); // This is related to a PR with discussion here: https://github.com/ReactiveX/rxjs/pull/6396 // We can't fix this until version 8. it.skip('should unsubscribe from the source when it reaches the limit before a recursive synchronous upstream error is notified', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const subject = new Subject(); const e1 = cold(' (a|)'); const e1subs = ' (^!)'; const expected = '(a|)'; const result = merge(e1, subject).pipe( take(1), tap(() => subject.error('error')) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/takeLast-spec.ts000066400000000000000000000161571431412030200205400ustar00rootroot00000000000000import { takeLast, mergeMap } from 'rxjs/operators'; import { of } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {takeLast} */ describe('takeLast operator', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); it('should take two values of an observable with many values', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold('--a-----b----c---d--| '); const e1subs = ' ^-------------------! '; const expected = '--------------------(cd|)'; expectObservable(e1.pipe(takeLast(2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take last three values', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--| '); const e1subs = ' ^-------------------! '; const expected = '--------------------(bcd|)'; expectObservable(e1.pipe(takeLast(3))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take all element when try to take larger then source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--| '); const e1subs = ' ^-------------------! '; const expected = '--------------------(abcd|)'; expectObservable(e1.pipe(takeLast(5))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take all element when try to take exact', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--| '); const e1subs = ' ^-------------------! '; const expected = '--------------------(abcd|)'; expectObservable(e1.pipe(takeLast(4))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not take any values', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--|'); const expected = '|'; const e1subs: string[] = []; expectObservable(e1.pipe(takeLast(0))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not take any values if provided with negative value', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --a-----b----c---d--|'); const expected = '|'; const e1subs: string[] = []; expectObservable(e1.pipe(takeLast(-42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with empty', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const e1subs = ' (^!)'; const expected = '|'; expectObservable(e1.pipe(takeLast(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should go on forever on never', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(takeLast(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be empty on takeLast(0)', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b----c---d--|'); const expected = ' |'; const e1subs: string[] = []; // Don't subscribe at all expectObservable(e1.pipe(takeLast(0))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take one value from an observable with one value', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---(a|)'); const e1subs = ' ^--! '; const expected = '---(a|)'; expectObservable(e1.pipe(takeLast(1))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take one value from an observable with many values', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^--b----c---d--| '); const e1subs = ' ^--------------! '; const expected = ' ---------------(d|)'; expectObservable(e1.pipe(takeLast(1))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should error on empty', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^----|'); const e1subs = ' ^----!'; const expected = ' -----|'; expectObservable(e1.pipe(takeLast(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate error from the source observable', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^---#', undefined, 'too bad'); const e1subs = ' ^---!'; const expected = ' ----#'; expectObservable(e1.pipe(takeLast(42))).toBe(expected, null, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should propagate error from an observable with values', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--a--b--#'); const e1subs = ' ^--------!'; const expected = ' ---------#'; expectObservable(e1.pipe(takeLast(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--a--b-----c--d--e--|'); const unsub = ' ---------! '; const e1subs = ' ^--------! '; const expected = ' ----------------------'; expectObservable(e1.pipe(takeLast(42)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with throw', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const e1subs = ' (^!)'; const expected = '#'; expectObservable(e1.pipe(takeLast(42))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('---^--a--b-----c--d--e--|'); const unsub = ' ---------! '; const e1subs = ' ^--------! '; const expected = ' ----------------------'; const result = e1.pipe( mergeMap((x: string) => of(x)), takeLast(42), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/takeUntil-spec.ts000066400000000000000000000231541431412030200207230ustar00rootroot00000000000000import { takeUntil, mergeMap } from 'rxjs/operators'; import { of, EMPTY } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {takeUntil} */ describe('takeUntil operator', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should take values until notifier emits', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--g--|'); const e1subs = ' ^------------! '; const e2 = hot(' -------------z--| '); const e2subs = ' ^------------! '; const expected = '--a--b--c--d-| '; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should take values and raises error when notifier raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--g--|'); const e1subs = ' ^------------! '; const e2 = hot(' -------------# '); const e2subs = ' ^------------! '; const expected = '--a--b--c--d-# '; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should take all values when notifier is empty', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--g--|'); const e1subs = ' ^----------------------!'; const e2 = hot(' -------------| '); const e2subs = ' ^------------! '; const expected = '--a--b--c--d--e--f--g--|'; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should take all values when notifier does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--g--|'); const e1subs = ' ^----------------------!'; const e2 = hot(' - '); const e2subs = ' ^----------------------!'; const expected = '--a--b--c--d--e--f--g--|'; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should complete without subscribing to the source when notifier synchronously emits', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a--|'); const e2 = of(1, 2, 3); const expected = '(|) '; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe([]); }); }); it('should subscribe to the source when notifier synchronously completes without emitting', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a--|'); const e1subs = ' ^------!'; const e2 = EMPTY; const expected = '----a--|'; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--g--|'); const e1subs = ' ^------! '; const e2 = hot(' -------------z--| '); const e2subs = ' ^------! '; const unsub = ' -------! '; const expected = '--a--b-- '; expectObservable(e1.pipe(takeUntil(e2)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should complete when notifier emits if source observable does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' - '); const e1subs = ' ^-! '; const e2 = hot(' --a--b--|'); const e2subs = ' ^-! '; const expected = '--| '; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error when notifier raises error if source observable does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' - '); const e1subs = ' ^-!'; const e2 = hot(' --#'); const e2subs = ' ^-!'; const expected = '--#'; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete when notifier is empty if source observable does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' - '); const e1subs = ' ^ '; const e2 = hot(' --|'); const e2subs = ' ^-!'; const expected = '---'; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not complete when source and notifier do not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -'); const e1subs = ' ^'; const e2 = hot(' -'); const e2subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should complete when notifier emits before source observable emits', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----a--|'); const e1subs = ' ^-! '; const e2 = hot(' --x '); const e2subs = ' ^-! '; const expected = '--| '; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error if source raises error before notifier emits', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--# '); const e1subs = ' ^-------------! '; const e2 = hot(' ----------------a--|'); const e2subs = ' ^-------------! '; const expected = '--a--b--c--d--# '; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error immediately if source throws', () => { testScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const e2 = hot(' --x '); const e2subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should dispose source observable if notifier emits before source emits', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a---|'); const e1subs = ' ^-! '; const e2 = hot(' --x-| '); const e2subs = ' ^-! '; const expected = '--| '; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should dispose notifier if source observable completes', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--| '); const e1subs = ' ^----! '; const e2 = hot(' -------x--|'); const e2subs = ' ^----! '; const expected = '--a--| '; expectObservable(e1.pipe(takeUntil(e2))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b--c--d--e--f--g--|'); const e1subs = ' ^------! '; const e2 = hot(' -------------z--| '); const e2subs = ' ^------! '; const unsub = ' -------! '; const expected = '--a--b-- '; const result = e1.pipe( mergeMap((x: string) => of(x)), takeUntil(e2), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); }); rxjs-7.5.7/spec/operators/takeWhile-spec.ts000066400000000000000000000275111431412030200207010ustar00rootroot00000000000000import { expect } from 'chai'; import { takeWhile, tap, mergeMap } from 'rxjs/operators'; import { of, Observable, from } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {takeWhile} */ describe('takeWhile', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should take all elements until predicate is false', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-1-^2--3--4--5--6--|'); const e1subs = ' ^------! '; const expected = ' -2--3--| '; const result = e1.pipe(takeWhile((v) => +v < 4)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take all elements with predicate returns true', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--|'); const e1subs = ' ^-------------!'; const expected = ' --b--c--d--e--|'; const result = e1.pipe(takeWhile(() => true)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take all elements with truthy predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--|'); const e1subs = ' ^-------------!'; const expected = ' --b--c--d--e--|'; const result = e1.pipe( takeWhile((() => { return {}; })) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should skip all elements with predicate returns false', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--|'); const e1subs = ' ^-! '; const expected = ' --| '; const result = e1.pipe(takeWhile(() => false)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should skip all elements with falsy predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--|'); const e1subs = ' ^-! '; const expected = ' --| '; const result = e1.pipe(takeWhile(() => null as any)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take all elements until predicate return false', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--|'); const e1subs = ' ^-------! '; const expected = ' --b--c--| '; function predicate(value: string) { return value !== 'd'; } const result = e1.pipe(takeWhile(predicate)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take all elements up to and including the element that made the predicate return false', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--|'); const e1subs = ' ^-------! '; const expected = ' --b--c--(d|) '; function predicate(value: string) { return value !== 'd'; } const inclusive = true; const result = e1.pipe(takeWhile(predicate, inclusive)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take elements with predicate when source does not complete', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--'); const e1subs = ' ^-------------'; const expected = ' --b--c--d--e--'; const result = e1.pipe(takeWhile(() => true)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not complete when source never completes', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; const result = e1.pipe(takeWhile(() => true)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete when source does not emit', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^------------|'); const e1subs = ' ^------------!'; const expected = ' -------------|'; const result = e1.pipe(takeWhile(() => true)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete when source is empty', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; const result = e1.pipe(takeWhile(() => true)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should pass element index to predicate', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--|'); const e1subs = ' ^-------! '; const expected = ' --b--c--| '; function predicate(value: string, index: number) { return index < 2; } const result = e1.pipe(takeWhile(predicate)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when source raises error', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--#'); const e1subs = ' ^-------------!'; const expected = ' --b--c--d--e--#'; const result = e1.pipe(takeWhile(() => true)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error when source throws', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; const result = e1.pipe(takeWhile(() => true)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should invoke predicate until return false', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--|'); const e1subs = ' ^-------! '; const expected = ' --b--c--| '; let invoked = 0; function predicate(value: string) { invoked++; return value !== 'd'; } const result = e1.pipe( takeWhile(predicate), tap({ complete: () => { expect(invoked).to.equal(3); }, }) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if predicate throws', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--|'); const e1subs = ' ^-! '; const expected = ' --# '; function predicate(value: string) { throw 'error'; } const result = e1.pipe(takeWhile(predicate)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take elements until unsubscribed', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--|'); const unsub = ' -----! '; const e1subs = ' ^----! '; const expected = ' --b--- '; function predicate(value: string) { return value !== 'd'; } const result = e1.pipe(takeWhile(predicate)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a-^-b--c--d--e--|'); const unsub = ' -----! '; const e1subs = ' ^----! '; const expected = ' --b--- '; function predicate(value: string) { return value !== 'd'; } const result = e1.pipe( mergeMap((x: string) => of(x)), takeWhile(predicate), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should support type guards without breaking previous behavior', () => { // type guards with interfaces and classes { interface Bar { bar?: string; } interface Baz { baz?: number; } class Foo implements Bar, Baz { constructor(public bar: string = 'name', public baz: number = 42) {} } const isBar = (x: any): x is Bar => x && (x).bar !== undefined; const foo: Foo = new Foo(); of(foo) .pipe(takeWhile((foo) => foo.baz === 42)) .subscribe((x) => x.baz); // x is still Foo of(foo) .pipe(takeWhile(isBar)) .subscribe((x) => x.bar); // x is Bar! const foobar: Bar = new Foo(); // type is interface, not the class of(foobar) .pipe(takeWhile((foobar) => foobar.bar === 'name')) .subscribe((x) => x.bar); // <-- x is still Bar of(foobar) .pipe(takeWhile(isBar)) .subscribe((x) => x.bar); // <--- x is Bar! const barish = { bar: 'quack', baz: 42 }; // type can quack like a Bar of(barish) .pipe(takeWhile((x) => x.bar === 'quack')) .subscribe((x) => x.bar); // x is still { bar: string; baz: number; } of(barish) .pipe(takeWhile(isBar)) .subscribe((bar) => bar.bar); // x is Bar! } // type guards with primitive types { const xs: Observable = from([1, 'aaa', 3, 'bb']); // This type guard will narrow a `string | number` to a string in the examples below const isString = (x: string | number): x is string => typeof x === 'string'; xs.pipe(takeWhile(isString)).subscribe((s) => s.length); // s is string // In contrast, this type of regular boolean predicate still maintains the original type xs.pipe(takeWhile((x) => typeof x === 'number')).subscribe((x) => x); // x is still string | number xs.pipe(takeWhile((x, i) => typeof x === 'number' && x > i)).subscribe((x) => x); // x is still string | number } }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(takeWhile((value) => value < 2)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/tap-spec.ts000066400000000000000000000242121431412030200175430ustar00rootroot00000000000000import { expect } from 'chai'; import { tap, mergeMap, take } from 'rxjs/operators'; import { Subject, of, throwError, Observer, EMPTY, Observable, noop } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {tap} */ describe('tap', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should mirror multiple values and complete', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1--2--3--|'); const e1subs = ' ^----------!'; const expected = '--1--2--3--|'; const result = e1.pipe( tap(() => { //noop }) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should next with a callback', () => { let value = null; of(42) .pipe( tap(function (x) { value = x; }) ) .subscribe(); expect(value).to.equal(42); }); it('should error with a callback', () => { let err = null; throwError(() => 'bad') .pipe( tap({ error: function (x) { err = x; }, }) ) .subscribe({ error(ex) { expect(ex).to.equal('bad'); }, }); expect(err).to.equal('bad'); }); it('should handle everything with an observer', (done) => { const expected = [1, 2, 3]; const results: number[] = []; of(1, 2, 3) .pipe( tap(>{ next: (x: number) => { results.push(x); }, error: () => { done(new Error('should not be called')); }, complete: () => { expect(results).to.deep.equal(expected); done(); }, }) ) .subscribe(); }); it('should handle everything with a Subject', (done) => { const expected = [1, 2, 3]; const results: number[] = []; const subject = new Subject(); subject.subscribe({ next: (x: any) => { results.push(x); }, error: () => { done(new Error('should not be called')); }, complete: () => { expect(results).to.deep.equal(expected); done(); }, }); of(1, 2, 3).pipe(tap(subject)).subscribe(); }); it('should handle an error with a callback', () => { let errored = false; throwError(() => 'bad') .pipe( tap({ error: (err: any) => { expect(err).to.equal('bad'); }, }) ) .subscribe({ error(err: any) { errored = true; expect(err).to.equal('bad'); }, }); expect(errored).to.be.true; }); it('should handle an error with observer', () => { let errored = false; throwError(() => 'bad') .pipe( tap({ error: function (err: string) { expect(err).to.equal('bad'); }, }) ) .subscribe({ error(err) { errored = true; expect(err).to.equal('bad'); }, }); expect(errored).to.be.true; }); it('should handle complete with observer', () => { let completed = false; EMPTY.pipe( tap({ complete: () => { completed = true; }, }) ).subscribe(); expect(completed).to.be.true; }); it('should handle next with observer', () => { let value = null; of('hi') .pipe( tap({ next: (x: string) => { value = x; }, }) ) .subscribe(); expect(value).to.equal('hi'); }); it('should raise error if next handler raises error', () => { of('hi') .pipe( tap({ next: () => { throw new Error('bad'); }, }) ) .subscribe({ error(err: any) { expect(err.message).to.equal('bad'); }, }); }); it('should raise error if error handler raises error', () => { throwError(() => 'ops') .pipe( tap({ error: () => { throw new Error('bad'); }, }) ) .subscribe({ error(err: any) { expect(err.message).to.equal('bad'); }, }); }); it('should raise error if complete handler raises error', () => { EMPTY.pipe( tap({ complete: () => { throw new Error('bad'); }, }) ).subscribe({ error(err: any) { expect(err.message).to.equal('bad'); }, }); }); it('should allow unsubscribing explicitly and early', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --1--2--3--#'); const unsub = ' -------! '; const e1subs = ' ^------! '; const expected = '--1--2-- '; const result = e1.pipe( tap(() => { //noop }) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --1--2--3--#'); const e1subs = ' ^------! '; const expected = '--1--2-- '; const unsub = ' -------! '; const result = e1.pipe( mergeMap((x: any) => of(x)), tap(() => { //noop }), mergeMap((x: any) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mirror multiple values and complete', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1--2--3--|'); const e1subs = ' ^----------!'; const expected = '--1--2--3--|'; const result = e1.pipe( tap(() => { //noop }) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mirror multiple values and terminate with error', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' --1--2--3--#'); const e1subs = ' ^----------!'; const expected = '--1--2--3--#'; const result = e1.pipe( tap(() => { //noop }) ); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( tap(() => { /* noop */ }), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); describe('lifecycle handlers', () => { it('should support an unsubscribe event that fires before finalize', () => { const results: any[] = []; const subject = new Subject(); const subscription = subject .pipe( tap({ subscribe: () => results.push('subscribe'), next: (value) => results.push(`next ${value}`), error: (err) => results.push(`error: ${err.message}`), complete: () => results.push('complete'), unsubscribe: () => results.push('unsubscribe'), finalize: () => results.push('finalize'), }) ) .subscribe(); subject.next(1); subject.next(2); expect(results).to.deep.equal(['subscribe', 'next 1', 'next 2']); subscription.unsubscribe(); expect(results).to.deep.equal(['subscribe', 'next 1', 'next 2', 'unsubscribe', 'finalize']); }); it('should not call unsubscribe if source completes', () => { const results: any[] = []; const subject = new Subject(); const subscription = subject .pipe( tap({ subscribe: () => results.push('subscribe'), next: (value) => results.push(`next ${value}`), error: (err) => results.push(`error: ${err.message}`), complete: () => results.push('complete'), unsubscribe: () => results.push('unsubscribe'), finalize: () => results.push('finalize'), }) ) .subscribe(); subject.next(1); subject.next(2); expect(results).to.deep.equal(['subscribe', 'next 1', 'next 2']); subject.complete(); // should have no effect subscription.unsubscribe(); expect(results).to.deep.equal(['subscribe', 'next 1', 'next 2', 'complete', 'finalize']); }); it('should not call unsubscribe if source errors', () => { const results: any[] = []; const subject = new Subject(); const subscription = subject .pipe( tap({ subscribe: () => results.push('subscribe'), next: (value) => results.push(`next ${value}`), error: (err) => results.push(`error: ${err.message}`), complete: () => results.push('complete'), unsubscribe: () => results.push('unsubscribe'), finalize: () => results.push('finalize'), }) ) .subscribe({ error: noop, }); subject.next(1); subject.next(2); expect(results).to.deep.equal(['subscribe', 'next 1', 'next 2']); subject.error(new Error('bad')); // should have no effect subscription.unsubscribe(); expect(results).to.deep.equal(['subscribe', 'next 1', 'next 2', 'error: bad', 'finalize']); }); }); }); rxjs-7.5.7/spec/operators/throttle-spec.ts000066400000000000000000000542171431412030200206340ustar00rootroot00000000000000import { expect } from 'chai'; import { TestScheduler } from 'rxjs/internal/testing/TestScheduler'; import { observableMatcher } from '../helpers/observableMatcher'; import { throttle, mergeMap, take } from 'rxjs/operators'; import { of, Observable } from 'rxjs'; /** @test {throttle} */ describe('throttle', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should immediately emit the first value in each time window', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-xy-----b--x--cxyz-|'); const e1subs = ' ^--------------------!'; const e2 = cold(' ----i '); // ----i // ----i const e2subs = [ ' -^---! ', ' ----------^---! ', ' ----------------^---! ', ]; const expected = '-a--------b-----c----|'; const result = e1.pipe(throttle(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle sync source with sync notifier and trailing appropriately', () => { const results: any[] = []; const source = of(1).pipe(throttle(() => of(1), { leading: false, trailing: true })); source.subscribe({ next: (value) => results.push(value), complete: () => results.push('done'), }); expect(results).to.deep.equal([1, 'done']); }); it('should simply mirror the source if values are not emitted often enough', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ^a--------b-----c----|'); const e1subs = ' ^--------------------!'; const e2 = cold(' ----| '); const e2subs = [ ' -^---! ', ' ----------^---! ', ' ----------------^---! ', ]; const expected = '-a--------b-----c----|'; const result = e1.pipe(throttle(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should throttle with duration Observable using next to close the duration', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ^a-xy-----b--x--cxxx-|'); const e1subs = ' ^--------------------!'; const e2 = cold(' ----x-y-z '); const e2subs = [ ' -^---! ', ' ----------^---! ', ' ----------------^---! ', ]; const expected = '-a--------b-----c----|'; const result = e1.pipe(throttle(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should interrupt source and duration when result is unsubscribed early', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-x-y-z-xyz-x-y-z----b--x-x-|'); const unsub = ' --------------! '; const e1subs = ' ^-------------! '; const e2 = cold(' ---------------------| '); const e2subs = ' -^------------! '; const expected = '-a------------- '; const result = e1.pipe(throttle(() => e2)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-x-y-z-xyz-x-y-z----b--x-x-|'); const e1subs = ' ^-------------! '; const e2 = cold(' ------------------| '); const e2subs = ' -^------------! '; const expected = '-a------------- '; const unsub = ' --------------! '; const result = e1.pipe( mergeMap((x: string) => of(x)), throttle(() => e2), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle a busy producer emitting a regular repeating sequence', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdefabcdefabcdefa|'); const e1subs = ' ^------------------------!'; const e2 = cold(' -----| '); const e2subs = [ ' ^----! ', ' ------^----! ', ' ------------^----! ', ' ------------------^----! ', ' ------------------------^!', ]; const expected = 'a-----a-----a-----a-----a|'; const result = e1.pipe(throttle(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should mirror source if durations are immediate', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdefabcdefabcdefa|'); const e1subs = ' ^------------------------!'; const e2 = cold(' x '); const expected = 'abcdefabcdefabcdefabcdefa|'; const result = e1.pipe(throttle(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should mirror source if durations are empty', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdefabcdefabcdefa|'); const e1subs = ' ^------------------------!'; const e2 = cold(' | '); const expected = 'abcdefabcdefabcdefabcdefa|'; const result = e1.pipe(throttle(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should take only the first value emitted if duration is a never', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----abcdefabcdefabcdefabcdefa|'); const e1subs = ' ^----------------------------!'; const e2 = cold(' - '); const e2subs = ' ----^------------------------!'; const expected = '----a------------------------|'; const result = e1.pipe(throttle(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should unsubscribe duration Observable when source raise error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----abcdefabcdefabcdefabcdefa#'); const e1subs = ' ^----------------------------!'; const e2 = cold(' - '); const e2subs = ' ----^------------------------!'; const expected = '----a------------------------#'; const result = e1.pipe(throttle(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should raise error as soon as just-throw duration is used', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ----abcdefabcdefabcdefabcdefa|'); const e1subs = ' ^---!-------------------------'; const e2 = cold(' # '); const e2subs = ' ----(^!) '; const expected = '----(a#) '; const result = e1.pipe(throttle(() => e2)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should throttle using durations of varying lengths', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdabcdefghabca| '); const e1subs = ' ^---------------------! '; const e2 = [ cold(' -----| '), cold(' ---| '), cold(' -------| '), cold(' --| '), cold(' ----|'), ]; const e2subs = [ ' ^----! ', ' ------^--! ', ' ----------^------! ', ' ------------------^-! ', ' ---------------------^! ', ]; const expected = 'a-----a---a-------a--a| '; let i = 0; const result = e1.pipe(throttle(() => e2[i++])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); for (let j = 0; j < e2.length; j++) { expectSubscriptions(e2[j].subscriptions).toBe(e2subs[j]); } }); }); it('should propagate error from duration Observable', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdabcdefghabca| '); const e1subs = ' ^----------------! '; const e2 = [ cold(' -----| '), cold(' ---| '), cold(' -------# '), ]; const e2subs = [ ' ^----! ', ' ------^--! ', ' ----------^------! ', ]; const expected = 'a-----a---a------# '; let i = 0; const result = e1.pipe(throttle(() => e2[i++])); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); for (let j = 0; j < e2.length; j++) { expectSubscriptions(e2[j].subscriptions).toBe(e2subs[j]); } }); }); it('should propagate error thrown from durationSelector function', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const s1 = hot(' --^--x--x--x--x--x--x--e--x--x--x--|'); const s1Subs = ' ^--------------------! '; const n1 = cold('----| '); const n1Subs = [ ' ---^---! ', ' ---------^---! ', ' ---------------^---! ', ]; const exp = ' ---x-----x-----x-----(e#) '; let i = 0; const result = s1.pipe( throttle(() => { if (i++ === 3) { throw new Error('lol'); } return n1; }) ); expectObservable(result).toBe(exp, undefined, new Error('lol')); expectSubscriptions(s1.subscriptions).toBe(s1Subs); expectSubscriptions(n1.subscriptions).toBe(n1Subs); }); }); it('should complete when source does not emit', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----|'); const subs = ' ^----!'; const expected = '-----|'; function durationSelector() { return cold('-----|'); } expectObservable(e1.pipe(throttle(durationSelector))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should raise error when source does not emit and raises error', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----#'); const subs = ' ^----!'; const expected = '-----#'; function durationSelector() { return cold('-----|'); } expectObservable(e1.pipe(throttle(durationSelector))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle an empty source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const subs = ' (^!) '; const expected = '| '; function durationSelector() { return cold('-----|'); } expectObservable(e1.pipe(throttle(durationSelector))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle a never source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' - '); const subs = ' ^ '; const expected = '- '; function durationSelector() { return cold('-----|'); } expectObservable(e1.pipe(throttle(durationSelector))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle a throw source', () => { testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const subs = ' (^!) '; const expected = '# '; function durationSelector() { return cold('-----|'); } expectObservable(e1.pipe(throttle(durationSelector))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); describe('throttle(fn, { leading: true, trailing: true })', () => { it('should immediately emit the first value in each time window', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-xy-----b--x--cxxx------|'); const e1subs = ' ^-------------------------!'; const e2 = cold(' ----x '); const e2subs = [ ' -^---! ', ' -----^---! ', ' ----------^---! ', ' --------------^---! ', ' ------------------^---! ', ' ----------------------^---!', ]; const expected = '-a---y----b---x---x---x---|'; const result = e1.pipe(throttle(() => e2, { leading: true, trailing: true })); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work for individual values', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const s1 = hot('-^-x------------------| '); const s1Subs = ' ^--------------------! '; const n1 = cold(' ------------------------|'); const n1Subs = ['--^------------------! ']; const exp = ' --x------------------| '; const result = s1.pipe(throttle(() => n1, { leading: true, trailing: true })); expectObservable(result).toBe(exp); expectSubscriptions(s1.subscriptions).toBe(s1Subs); expectSubscriptions(n1.subscriptions).toBe(n1Subs); }); }); it('should emit trailing value after throttle duration when source completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--------xy| '); const e1subs = ' ^-----------! '; const e2 = cold(' ----x '); const e2subs = [ // because prettier ' -^---! ', ' ----------^---! ', ]; const expected = '-a--------x---(y|)'; const result = e1.pipe(throttle(() => e2, { leading: true, trailing: true })); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); }); describe('throttle(fn, { leading: false, trailing: true })', () => { it('should immediately emit the first value in each time window', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-xy-----b--x--cxxx------|'); const e1subs = ' ^-------------------------!'; const e2 = cold(' ----x '); const e2subs = [ ' -^---! ', ' -----^---! ', ' ----------^---! ', ' --------------^---! ', ' ------------------^---! ', ' ----------------------^---!', ]; const expected = '-----y--------x---x---x---|'; const result = e1.pipe(throttle(() => e2, { leading: false, trailing: true })); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should work for individual values', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const s1 = hot('-^-x------------------| '); const s1Subs = ' ^--------------------! '; const n1 = cold(' ------------------------x '); const n1Subs = ['--^-----------------------! ']; const exp = ' --------------------------(x|)'; const result = s1.pipe(throttle(() => n1, { leading: false, trailing: true })); expectObservable(result).toBe(exp); expectSubscriptions(s1.subscriptions).toBe(s1Subs); expectSubscriptions(n1.subscriptions).toBe(n1Subs); }); }); it('should wait for trailing throttle before completing, even if source completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const source = hot(' -^--x--------y---------| '); const sourceSubs = ' ^---------------------! '; const duration = cold(' ------------------------x '); const durationSubs = ' ---^-----------------------! '; const exp = ' ---------------------------(y|)'; const result = source.pipe(throttle(() => duration, { leading: false, trailing: true })); expectObservable(result).toBe(exp); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(duration.subscriptions).toBe(durationSubs); }); }); it('should emit trailing value after throttle duration when source completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--------x| '); const e1subs = ' ^----------! '; const e2 = cold(' ----x '); const e2subs = [ // because prettier ' -^---! ', ' -----^---! ', ' ----------^---!', ]; const expected = '-----a--------(x|)'; const result = e1.pipe(throttle(() => e2, { leading: false, trailing: true })); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit the last trailing value after throttle duration when source completes', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--------xy| '); const e1subs = ' ^-----------! '; const e2 = cold(' ----x '); const e2subs = [ // because prettier ' -^---! ', ' -----^---! ', ' ----------^---!', ]; const expected = '-----a--------(y|)'; const result = e1.pipe(throttle(() => e2, { leading: false, trailing: true })); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should complete when source completes if no value is available', () => { testScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-----|'); const e1subs = ' ^------!'; const e2 = cold(' ----x '); const e2subs = [ // because prettier ' -^---! ', ' -----^-!', ]; const expected = '-----a-|'; const result = e1.pipe(throttle(() => e2, { leading: false, trailing: true })); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable .pipe( throttle(() => of(0)), take(3) ) .subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/throttleTime-spec.ts000066400000000000000000000222121431412030200214410ustar00rootroot00000000000000import { expect } from 'chai'; import { throttleTime, take, map, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, concat, timer } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {throttleTime} */ describe('throttleTime operator', () => { let rxTest: TestScheduler; beforeEach(() => { rxTest = new TestScheduler(observableMatcher); }); describe('default behavior { leading: true, trailing: false }', () => { it('should immediately emit the first value in each time window', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-x-y----b---x-cx---|'); // ----| ----| ----| const expected = '-a--------b-----c----|'; const subs = ' ^--------------------!'; const result = e1.pipe(throttleTime(5, rxTest)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should throttle events by 5 time units', (done) => { of(1, 2, 3) .pipe(throttleTime(5)) .subscribe({ next: (x: number) => { expect(x).to.equal(1); }, complete: done, }); }); it('should throttle events multiple times', () => { const expected = ['1-0', '2-0']; concat( timer(0, 1, rxTest).pipe( take(3), map((x: number) => '1-' + x) ), timer(8, 1, rxTest).pipe( take(5), map((x: number) => '2-' + x) ) ) .pipe(throttleTime(5, rxTest)) .subscribe((x: string) => { expect(x).to.equal(expected.shift()); }); rxTest.flush(); }); it('should simply mirror the source if values are not emitted often enough', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--------b-----c----|'); const subs = ' ^--------------------!'; const expected = '-a--------b-----c----|'; expectObservable(e1.pipe(throttleTime(5, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle a busy producer emitting a regular repeating sequence', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' abcdefabcdefabcdefabcdefa|'); const subs = ' ^------------------------!'; const expected = 'a-----a-----a-----a-----a|'; expectObservable(e1.pipe(throttleTime(5, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should complete when source does not emit', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----|'); const subs = ' ^----!'; const expected = '-----|'; expectObservable(e1.pipe(throttleTime(5, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should raise error when source does not emit and raises error', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -----#'); const subs = ' ^----!'; const expected = '-----#'; expectObservable(e1.pipe(throttleTime(10, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle an empty source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' |'); const subs = ' (^!)'; const expected = '|'; expectObservable(e1.pipe(throttleTime(30, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle a never source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(throttleTime(30, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should handle a throw source', () => { rxTest.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' #'); const subs = ' (^!)'; const expected = '#'; expectObservable(e1.pipe(throttleTime(30, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should throttle and does not complete when source does not completes', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--(bc)-------d----------------'); const unsub = ' -------------------------------!'; const subs = ' ^------------------------------!'; const expected = '-a-------------d----------------'; expectObservable(e1.pipe(throttleTime(5, rxTest)), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--(bc)-------d----------------'); const subs = ' ^------------------------------!'; const expected = '-a-------------d----------------'; const unsub = ' -------------------------------!'; const result = e1.pipe( mergeMap((x: string) => of(x)), throttleTime(5, rxTest), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); it('should throttle values until source raises error', () => { rxTest.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--(bc)-------d---------------#'); const subs = ' ^------------------------------!'; const expected = '-a-------------d---------------#'; expectObservable(e1.pipe(throttleTime(5, rxTest))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); }); }); }); describe('throttleTime(fn, { leading: true, trailing: true })', () => { it('should immediately emit the first and last values in each time window', () => { rxTest.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-xy-----b--x--cxxx--|'); const e1subs = ' ^---------------------!'; const t = time(' ----| '); // ----|----|---|---| const expected = '-a---y----b---x---x---(x|)'; const result = e1.pipe(throttleTime(t, rxTest, { leading: true, trailing: true })); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit the value if only a single one is given', () => { rxTest.run(({ hot, time, expectObservable }) => { const e1 = hot(' -a--------------------|'); const t = time(' ----| '); const expected = '-a--------------------|'; const result = e1.pipe(throttleTime(t, rxTest, { leading: true, trailing: true })); expectObservable(result).toBe(expected); }); }); }); describe('throttleTime(fn, { leading: false, trailing: true })', () => { it('should immediately emit the last value in each time window', () => { rxTest.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-xy-----b--x--cxxx--|'); const e1subs = ' ^---------------------!'; const t = time(' ----| '); // ----|---|----|---|---| const expected = '-----y--------x---x---(x|)'; const result = e1.pipe(throttleTime(t, rxTest, { leading: false, trailing: true })); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit the last throttled value when complete', () => { rxTest.run(({ hot, time, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a-xy-----b--x--cxx-|'); const e1subs = ' ^-------------------!'; const t = time(' ----| '); // ----|---|----|---|---| const expected = '-----y--------x---x-|'; const result = e1.pipe(throttleTime(t, rxTest, { leading: false, trailing: true })); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit the value if only a single one is given', () => { rxTest.run(({ hot, time, expectObservable }) => { const e1 = hot(' -a--------------------|'); const t = time(' ----| '); const expected = '-----a----------------|'; const result = e1.pipe(throttleTime(t, rxTest, { leading: false, trailing: true })); expectObservable(result).toBe(expected); }); }); }); }); rxjs-7.5.7/spec/operators/throwIfEmpty-spec.ts000066400000000000000000000152241431412030200214230ustar00rootroot00000000000000import { expect } from 'chai'; import { EMPTY, of, EmptyError, defer, throwError, Observable } from 'rxjs'; import { throwIfEmpty, mergeMap, retry, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {throwIfEmpty} */ describe('throwIfEmpty', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); describe('with errorFactory', () => { it('should error when empty', () => { rxTestScheduler.run(({ cold, expectObservable }) => { const source = cold('----|'); const expected = ' ----#'; const result = source.pipe(throwIfEmpty(() => new Error('test'))); expectObservable(result).toBe(expected, undefined, new Error('test')); }); }); it('should throw if empty', () => { const error = new Error('So empty inside'); let thrown: any; EMPTY.pipe(throwIfEmpty(() => error)).subscribe({ error(err) { thrown = err; }, }); expect(thrown).to.equal(error); }); it('should NOT throw if NOT empty', () => { const error = new Error('So empty inside'); let thrown: any; of('test') .pipe(throwIfEmpty(() => error)) .subscribe({ error(err) { thrown = err; }, }); expect(thrown).to.be.undefined; }); it('should pass values through', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('----a---b---c---|'); const sub1 = ' ^---------------!'; const expected = ' ----a---b---c---|'; const result = source.pipe(throwIfEmpty(() => new Error('test'))); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe([sub1]); }); }); it('should never when never', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-'); const sub1 = ' ^'; const expected = ' -'; const result = source.pipe(throwIfEmpty(() => new Error('test'))); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe([sub1]); }); }); it('should error when empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('----|'); const sub1 = ' ^---!'; const expected = ' ----#'; const result = source.pipe(throwIfEmpty(() => new Error('test'))); expectObservable(result).toBe(expected, undefined, new Error('test')); expectSubscriptions(source.subscriptions).toBe([sub1]); }); }); it('should throw if empty after retry', () => { const error = new Error('So empty inside'); let thrown: any; let sourceIsEmpty = false; const source = defer(() => { if (sourceIsEmpty) { return EMPTY; } sourceIsEmpty = true; return of(1, 2); }); source .pipe( throwIfEmpty(() => error), mergeMap((value) => { if (value > 1) { return throwError(() => new Error()); } return of(value); }), retry(1) ) .subscribe({ error(err) { thrown = err; }, }); expect(thrown).to.equal(error); }); }); describe('without errorFactory', () => { it('should throw EmptyError if empty', () => { let thrown: any; EMPTY.pipe(throwIfEmpty()).subscribe({ error(err) { thrown = err; }, }); expect(thrown).to.be.instanceof(EmptyError); }); it('should NOT throw if NOT empty', () => { let thrown: any; of('test') .pipe(throwIfEmpty()) .subscribe({ error(err) { thrown = err; }, }); expect(thrown).to.be.undefined; }); it('should pass values through', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('----a---b---c---|'); const sub1 = ' ^---------------!'; const expected = ' ----a---b---c---|'; const result = source.pipe(throwIfEmpty()); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe([sub1]); }); }); it('should never when never', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-'); const sub1 = ' ^'; const expected = ' -'; const result = source.pipe(throwIfEmpty()); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe([sub1]); }); }); it('should error when empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('----|'); const sub1 = ' ^---!'; const expected = ' ----#'; const result = source.pipe(throwIfEmpty()); expectObservable(result).toBe(expected, undefined, new EmptyError()); expectSubscriptions(source.subscriptions).toBe([sub1]); }); }); it('should throw if empty after retry', () => { let thrown: any; let sourceIsEmpty = false; const source = defer(() => { if (sourceIsEmpty) { return EMPTY; } sourceIsEmpty = true; return of(1, 2); }); source .pipe( throwIfEmpty(), mergeMap((value) => { if (value > 1) { return throwError(() => new Error()); } return of(value); }), retry(1) ) .subscribe({ error(err) { thrown = err; }, }); expect(thrown).to.be.instanceof(EmptyError); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(throwIfEmpty(), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/timeInterval-spec.ts000066400000000000000000000153161431412030200214270ustar00rootroot00000000000000import { expect } from 'chai'; import { timeInterval, map, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable } from 'rxjs'; import { TimeInterval } from 'rxjs/internal/operators/timeInterval'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {timeInterval} */ describe('timeInterval', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should record the time interval between source elements', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^b-c-----d--e--|'); const e1subs = ' ^--------------!'; const expected = ' -w-x-----y--z--|'; const expectedValue = { w: 1, x: 2, y: 6, z: 3 }; const result = e1.pipe( timeInterval(rxTestScheduler), map((x) => x.interval) ); expectObservable(result).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should record interval if source emit elements', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^b--c----d---e--|'); const e1subs = ' ^---------------!'; const expected = ' -w--x----y---z--|'; const expectedValue = { w: new TimeInterval('b', 1), x: new TimeInterval('c', 3), y: new TimeInterval('d', 5), z: new TimeInterval('e', 4), }; expectObservable(e1.pipe(timeInterval(rxTestScheduler))).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should completes without record interval if source does not emits', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---------|'); const e1subs = ' ^--------!'; const expected = '---------|'; expectObservable(e1.pipe(timeInterval(rxTestScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete immediately if source is empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; expectObservable(e1.pipe(timeInterval(rxTestScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should record interval then does not completes if source emits but not completes', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--b--'); const e1subs = ' ^------'; const expected = '-y--z--'; const expectedValue = { y: new TimeInterval('a', 1), z: new TimeInterval('b', 3), }; expectObservable(e1.pipe(timeInterval(rxTestScheduler))).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--b-----c---d---|'); const unsub = ' -------! '; const e1subs = ' ^------! '; const expected = '-y--z--- '; const expectedValue = { y: new TimeInterval('a', 1), z: new TimeInterval('b', 3), }; const result = e1.pipe(timeInterval(rxTestScheduler)); expectObservable(result, unsub).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--b-----c---d---|'); const e1subs = ' ^------! '; const expected = '-y--z--- '; const unsub = ' -------! '; const expectedValue = { y: new TimeInterval('a', 1), z: new TimeInterval('b', 3), }; const result = e1.pipe( mergeMap((x: string) => of(x)), timeInterval(rxTestScheduler), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not completes if source never completes', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(timeInterval(rxTestScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('raise error if source raises error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---#'); const e1subs = ' ^--!'; const expected = '---#'; expectObservable(e1.pipe(timeInterval(rxTestScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should record interval then raise error if source raises error after emit', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--b--#'); const e1subs = ' ^------!'; const expected = '-y--z--#'; const expectedValue = { y: new TimeInterval('a', 1), z: new TimeInterval('b', 3), }; expectObservable(e1.pipe(timeInterval(rxTestScheduler))).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source immediately throws', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(timeInterval(rxTestScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(timeInterval(), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/timeout-spec.ts000066400000000000000000000666631431412030200204650ustar00rootroot00000000000000import { expect } from 'chai'; import { timeout, mergeMap, take, concatWith } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { TimeoutError, of, Observable, NEVER } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {timeout} */ describe('timeout operator', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); const defaultTimeoutError = new TimeoutError(); it('should timeout after a specified timeout period', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions, time }) => { const e1 = cold(' -------a--b--|'); const t = time(' -----| '); const e1subs = ' ^----! '; const expected = '-----# '; const result = e1.pipe(timeout(t, rxTestScheduler)); expectObservable(result).toBe(expected, null, defaultTimeoutError); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit and TimeoutError on timeout with appropriate due as number', () => { rxTestScheduler.run(({ cold, time }) => { const e1 = cold('-------a--b--|'); const t = time(' -----|'); const result = e1.pipe(timeout(t, rxTestScheduler)); let error: any; result.subscribe({ next: () => { throw new Error('this should not next'); }, error: (err) => { error = err; }, complete: () => { throw new Error('this should not complete'); }, }); rxTestScheduler.flush(); expect(error).to.be.an.instanceof(TimeoutError); expect(error).to.have.property('name', 'TimeoutError'); expect(error!.info).to.deep.equal({ seen: 0, meta: null, lastValue: null, }); }); }); it('should emit and TimeoutError on timeout with appropriate due as Date', () => { rxTestScheduler.run(({ cold, time }) => { const e1 = cold('-------a--b--|'); const t = time(' ----|'); // 4ms from "now", considering "now" with the rxTestScheduler is currently frame 0. const dueDate = new Date(t); const result = e1.pipe(timeout(dueDate, rxTestScheduler)); let error: any; result.subscribe({ next: () => { throw new Error('this should not next'); }, error: (err) => { error = err; }, complete: () => { throw new Error('this should not complete'); }, }); rxTestScheduler.flush(); expect(error).to.be.an.instanceof(TimeoutError); expect(error).to.have.property('name', 'TimeoutError'); expect(error!.info).to.deep.equal({ seen: 0, meta: null, lastValue: null, }); }); }); it('should not timeout if source completes within absolute timeout period', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot(' --a--b--c--d--e--|'); const t = time(' --------------------|'); const e1subs = ' ^----------------!'; const expected = '--a--b--c--d--e--|'; // Start frame is zero. const timeoutValue = new Date(t); expectObservable(e1.pipe(timeout(timeoutValue, rxTestScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not timeout if source emits within timeout period', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot(' --a--b--c--d--e--|'); const t = time(' -----| '); const e1subs = ' ^----------------!'; const expected = '--a--b--c--d--e--|'; expectObservable(e1.pipe(timeout(t, rxTestScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot(' --a--b--c---d--e--|'); const t = time(' -----| '); const unsub = ' ----------! '; const e1subs = ' ^---------! '; const expected = '--a--b--c-- '; const result = e1.pipe(timeout(t, rxTestScheduler)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot(' --a--b--c---d--e--|'); const t = time(' -----| '); const e1subs = ' ^---------! '; const expected = '--a--b--c-- '; const unsub = ' ----------! '; const result = e1.pipe( mergeMap((x) => of(x)), timeout(t, rxTestScheduler), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should timeout after a specified timeout period between emit with default error while source emits', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot(' ---a---b---c------d---e---|'); const t = time(' -----|'); const e1subs = ' ^---------------! '; const expected = '---a---b---c----# '; const result = e1.pipe(timeout(t, rxTestScheduler)); expectObservable(result).toBe(expected, undefined, defaultTimeoutError); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should timeout at a specified Date', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions, time }) => { const e1 = cold(' -'); const t = time(' ----------|'); const e1subs = ' ^---------!'; const expected = '----------#'; // Start time is zero const result = e1.pipe(timeout(new Date(t), rxTestScheduler)); expectObservable(result).toBe(expected, null, defaultTimeoutError); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with synchronous observable', () => { expect(() => { of(1).pipe(timeout(10)).subscribe(); }).to.not.throw(); }); describe('config', () => { it('should timeout after a specified timeout period', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions, time }) => { const e1 = cold(' -------a--b--|'); const t = time(' -----| '); const e1subs = ' ^----! '; const expected = '-----# '; const result = e1.pipe( timeout({ each: t, }) ); expectObservable(result).toBe(expected, null, defaultTimeoutError); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should emit and TimeoutError on timeout with appropriate due as number', () => { rxTestScheduler.run(({ cold, time }) => { const e1 = cold('-------a--b--|'); const t = time(' -----|'); const result = e1.pipe(timeout({ each: t })); let error: any; result.subscribe({ next: () => { throw new Error('this should not next'); }, error: (err) => { error = err; }, complete: () => { throw new Error('this should not complete'); }, }); rxTestScheduler.flush(); expect(error).to.be.an.instanceof(TimeoutError); expect(error).to.have.property('name', 'TimeoutError'); expect(error!.info).to.deep.equal({ seen: 0, meta: null, lastValue: null, }); }); }); it('should emit and TimeoutError on timeout with appropriate due as Date', () => { rxTestScheduler.run(({ cold, time }) => { const e1 = cold('-------a--b--|'); const t = time(' ----|'); // 4ms from "now", considering "now" with the rxTestScheduler is currently frame 0. const dueDate = new Date(t); const result = e1.pipe(timeout({ first: dueDate })); let error: any; result.subscribe({ next: () => { throw new Error('this should not next'); }, error: (err) => { error = err; }, complete: () => { throw new Error('this should not complete'); }, }); rxTestScheduler.flush(); expect(error).to.be.an.instanceof(TimeoutError); expect(error).to.have.property('name', 'TimeoutError'); expect(error!.info).to.deep.equal({ seen: 0, meta: null, lastValue: null, }); }); }); it('should not timeout if source completes within absolute timeout period', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot(' --a--b--c--d--e--|'); const t = time(' --------------------|'); const e1subs = ' ^----------------!'; const expected = '--a--b--c--d--e--|'; expectObservable(e1.pipe(timeout({ first: new Date(t) }))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not timeout if source emits within timeout period', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot(' --a--b--c--d--e--|'); const t = time(' -----| '); const e1subs = ' ^----------------!'; const expected = '--a--b--c--d--e--|'; expectObservable(e1.pipe(timeout({ each: t }))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot(' --a--b--c---d--e--|'); const t = time(' -----| '); const unsub = ' ----------! '; const e1subs = ' ^---------! '; const expected = '--a--b--c-- '; const result = e1.pipe(timeout({ each: t })); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot(' --a--b--c---d--e--|'); const t = time(' -----| '); const e1subs = ' ^---------! '; const expected = '--a--b--c-- '; const unsub = ' ----------! '; const result = e1.pipe( mergeMap((x) => of(x)), timeout({ each: t }), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should timeout after a specified timeout period between emit with default error while source emits', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions, time }) => { const e1 = hot(' ---a---b---c------d---e---|'); const t = time(' -----|'); const e1subs = ' ^---------------! '; const expected = '---a---b---c----# '; const result = e1.pipe(timeout({ each: t })); expectObservable(result).toBe(expected, undefined, defaultTimeoutError); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should timeout at a specified Date', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions, time }) => { const e1 = cold(' -'); const t = time(' ----------|'); const e1subs = ' ^---------!'; const expected = '----------#'; // Start time is zero const result = e1.pipe(timeout({ first: new Date(t) })); expectObservable(result).toBe(expected, null, defaultTimeoutError); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should timeout at a specified time for first value only', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions, time }) => { const e1 = cold(' -'); const t = time(' ----------|'); const e1subs = ' ^---------!'; const expected = '----------#'; // Start time is zero const result = e1.pipe(timeout({ first: t })); expectObservable(result).toBe(expected, undefined, defaultTimeoutError); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not timeout for long delays if only first is specified', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions, time }) => { const e1 = cold(' ---a-----------------------b---|'); const t = time(' ----------|'); const e1subs = ' ^------------------------------!'; const expected = '---a-----------------------b---|'; // Start time is zero const result = e1.pipe(timeout({ first: t })); expectObservable(result).toBe(expected, undefined, defaultTimeoutError); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not timeout for long delays if only first is specified as Date', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions, time }) => { const e1 = cold(' ---a-----------------------b---|'); const t = time(' ----------|'); const e1subs = ' ^------------------------------!'; const expected = '---a-----------------------b---|'; // Start time is zero const result = e1.pipe(timeout({ first: new Date(t) })); expectObservable(result).toBe(expected, undefined, defaultTimeoutError); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should timeout for long delays if first is specified as Date AND each is specified', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions, time }) => { const e1 = cold(' ---a-----------------------b---|'); const first = time('-------------|'); const each = time(' ------|'); const e1subs = ' ^--------!'; const expected = ' ---a-----#'; // Start time is zero const result = e1.pipe(timeout({ first: new Date(first), each })); expectObservable(result).toBe(expected, undefined, defaultTimeoutError); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); describe('using with', () => { it('should timeout after a specified period then subscribe to the passed observable', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = cold(' -------a--b--|'); const sourceSubs = ' ^----! '; const t = time(' -----|'); const inner = cold(' x-y-z-| '); const innerSubs = ' -----^-----! '; const expected = ' -----x-y-z-| '; const result = source.pipe( timeout({ each: t, with: () => inner, }) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should timeout at a specified date then subscribe to the passed observable', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = cold(' -'); const sourceSubs = ' ^---------! '; const t = time(' ----------|'); const inner = cold(' --x--y--z--|'); const innerSubs = ' ----------^----------!'; const expected = ' ------------x--y--z--|'; // The current frame is zero. const result = source.pipe( timeout({ first: new Date(t), with: () => inner, }) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should timeout after a specified period between emit then subscribe to the passed observable when source emits', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' ---a---b------c---|'); const t = time(' ----| '); const sourceSubs = ' ^----------! '; const inner = cold(' -x-y-| '); const innerSubs = ' -----------^----! '; const expected = ' ---a---b----x-y-| '; const result = source.pipe( timeout({ each: t, with: () => inner, }) ); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should allow unsubscribing explicitly and early', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' ---a---b-----c----|'); const t = time(' ----| '); const sourceSubs = ' ^----------! '; const inner = cold(' -x---y| '); const innerSubs = ' -----------^--! '; const expected = ' ---a---b----x-- '; const unsub = ' --------------! '; const result = source.pipe(timeout({ each: t, with: () => inner })); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' ---a---b-----c----|'); const t = time(' ----| '); const sourceSubs = ' ^----------! '; const inner = cold(' -x---y| '); const innerSubs = ' -----------^--! '; const expected = ' ---a---b----x-- '; const unsub = ' --------------! '; const result = source.pipe( mergeMap((x) => of(x)), timeout({ each: t, with: () => inner }), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should not subscribe to withObservable after explicit unsubscription', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = cold('---a------b------'); const t = time(' -----| '); const sourceSubs = ' ^----! '; const inner = cold(' i---j---| '); const expected = ' ---a-- '; const unsub = ' -----! '; const result = source.pipe( mergeMap((x) => of(x)), timeout({ each: t, with: () => inner }), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe([]); }); }); it('should timeout after a specified period then subscribe to the passed observable when source is empty', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' -------------| '); const t = time(' ----------| '); const sourceSubs = ' ^---------! '; const inner = cold(' ----x----|'); const innerSubs = ' ----------^--------!'; const expected = ' --------------x----|'; const result = source.pipe(timeout({ each: t, with: () => inner })); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should timeout after a specified period between emit then never completes if other source does not complete', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' --a--b--------c--d--|'); const t = time(' ----| '); const sourceSubs = ' ^--------! '; const inner = cold(' ------------'); const innerSubs = ' ---------^-----------'; const expected = ' --a--b---------------'; const result = source.pipe(timeout({ each: t, with: () => inner })); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should timeout after a specified period then subscribe to the passed observable when source raises error after timeout', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' -------------# '); const t = time(' ----------| '); const sourceSubs = ' ^---------! '; const inner = cold(' ----x----|'); const innerSubs = ' ----------^--------!'; const expected = ' --------------x----|'; const result = source.pipe(timeout({ each: t, with: () => inner })); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should timeout after a specified period between emit then never completes if other source emits but not complete', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' -------------| '); const t = time(' -----------| '); const sourceSubs = ' ^----------! '; const inner = cold(' ----x----'); const innerSubs = ' -----------^--------'; const expected = ' ---------------x----'; const result = source.pipe(timeout({ each: t, with: () => inner })); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe(innerSubs); }); }); it('should not timeout if source completes within timeout period', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' -----| '); const t = time(' ----------| '); const sourceSubs = ' ^----! '; const inner = cold(' ----x----'); const expected = ' -----| '; const result = source.pipe(timeout({ each: t, with: () => inner })); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe([]); }); }); it('should not timeout if source raises error within timeout period', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot('-----# '); const t = time(' ----------| '); const sourceSubs = '^----! '; const inner = cold(' ----x----|'); const expected = ' -----# '; const result = source.pipe(timeout({ each: t, with: () => inner })); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe([]); }); }); it('should not timeout if source emits within timeout period', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' --a--b--c--d--e--|'); const t = time(' -----| '); const sourceSubs = ' ^----------------!'; const inner = cold(' ----x----| '); const expected = ' --a--b--c--d--e--|'; const result = source.pipe(timeout({ each: t, with: () => inner })); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe([]); }); }); it('should not timeout if source completes within specified Date', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--e--| '); const t = time(' --------------------|'); const sourceSubs = '^----------------! '; const inner = cold('--x--| '); const expected = ' --a--b--c--d--e--| '; // Start frame is zero. const result = source.pipe(timeout({ first: new Date(t), with: () => inner })); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe([]); }); }); it('should not timeout if source raises error within specified Date', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot('---a---# '); const t = time(' ----------| '); const sourceSubs = '^------! '; const inner = cold(' --x--|'); const expected = ' ---a---# '; // Start frame is zero. const result = source.pipe(timeout({ first: new Date(t), with: () => inner })); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(inner.subscriptions).toBe([]); }); }); it('should not timeout if source emits synchronously when subscribed', () => { rxTestScheduler.run(({ expectObservable, time }) => { const source = of('a').pipe(concatWith(NEVER)); const t = time(' ---|'); const expected = 'a---'; expectObservable(source.pipe(timeout({ first: new Date(t) }))).toBe(expected); }); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(timeout(0), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/timeoutWith-spec.ts000066400000000000000000000305061431412030200213040ustar00rootroot00000000000000import { expect } from 'chai'; import { timeoutWith, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable, EMPTY } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {timeoutWith} */ describe('timeoutWith operator', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should timeout after a specified period then subscribe to the passed observable', () => { rxTestScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const source = cold(' -------a--b--|'); const sourceSubs = ' ^----! '; const t = time(' -----|'); const switchTo = cold(' x-y-z-| '); const switchToSubs = ' -----^-----! '; const expected = ' -----x-y-z-| '; const result = source.pipe(timeoutWith(t, switchTo, rxTestScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe(switchToSubs); }); }); it('should timeout at a specified date then subscribe to the passed observable', () => { rxTestScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const source = cold(' -'); const sourceSubs = ' ^---------! '; const t = time(' ----------|'); const switchTo = cold(' --x--y--z--|'); const switchToSubs = ' ----------^----------!'; const expected = ' ------------x--y--z--|'; // The the current frame is zero. const result = source.pipe(timeoutWith(new Date(t), switchTo, rxTestScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe(switchToSubs); }); }); it('should timeout after a specified period between emit then subscribe to the passed observable when source emits', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' ---a---b------c---|'); const t = time(' ----| '); const sourceSubs = ' ^----------! '; const switchTo = cold(' -x-y-| '); const switchToSubs = '-----------^----! '; const expected = ' ---a---b----x-y-| '; const result = source.pipe(timeoutWith(t, switchTo, rxTestScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe(switchToSubs); }); }); it('should allow unsubscribing explicitly and early', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' ---a---b-----c----|'); const t = time(' ----| '); const sourceSubs = ' ^----------! '; const switchTo = cold(' -x---y| '); const switchToSubs = '-----------^--! '; const expected = ' ---a---b----x-- '; const unsub = ' --------------! '; const result = source.pipe(timeoutWith(t, switchTo, rxTestScheduler)); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe(switchToSubs); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' ---a---b-----c----|'); const t = time(' ----| '); const sourceSubs = ' ^----------! '; const switchTo = cold(' -x---y| '); const switchToSubs = '-----------^--! '; const expected = ' ---a---b----x-- '; const unsub = ' --------------! '; const result = source.pipe( mergeMap((x) => of(x)), timeoutWith(t, switchTo, rxTestScheduler), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe(switchToSubs); }); }); it('should not subscribe to withObservable after explicit unsubscription', () => { rxTestScheduler.run(({ cold, time, expectObservable, expectSubscriptions }) => { const source = cold('---a------b------'); const t = time(' -----| '); const sourceSubs = ' ^----! '; const switchTo = cold(' i---j---| '); const expected = ' ---a-- '; const unsub = ' -----! '; const result = source.pipe( mergeMap((x: string) => of(x)), timeoutWith(t, switchTo, rxTestScheduler), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe([]); }); }); it('should timeout after a specified period then subscribe to the passed observable when source is empty', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' -------------| '); const t = time(' ----------| '); const sourceSubs = ' ^---------! '; const switchTo = cold(' ----x----|'); const switchToSubs = '----------^--------!'; const expected = ' --------------x----|'; const result = source.pipe(timeoutWith(t, switchTo, rxTestScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe(switchToSubs); }); }); it('should timeout after a specified period between emit then never completes if other source does not complete', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' --a--b--------c--d--|'); const t = time(' ----| '); const sourceSubs = ' ^--------! '; const switchTo = cold(' ------------'); const switchToSubs = '---------^-----------'; const expected = ' --a--b---------------'; const result = source.pipe(timeoutWith(t, switchTo, rxTestScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe(switchToSubs); }); }); it('should timeout after a specified period then subscribe to the passed observable when source raises error after timeout', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' -------------# '); const t = time(' ----------| '); const sourceSubs = ' ^---------! '; const switchTo = cold(' ----x----|'); const switchToSubs = '----------^--------!'; const expected = ' --------------x----|'; const result = source.pipe(timeoutWith(t, switchTo, rxTestScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe(switchToSubs); }); }); it('should timeout after a specified period between emit then never completes if other source emits but not complete', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' -------------| '); const t = time(' -----------| '); const sourceSubs = ' ^----------! '; const switchTo = cold(' ----x----'); const switchToSubs = '-----------^--------'; const expected = ' ---------------x----'; const result = source.pipe(timeoutWith(t, switchTo, rxTestScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe(switchToSubs); }); }); it('should not timeout if source completes within timeout period', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' -----| '); const t = time(' ----------| '); const sourceSubs = ' ^----! '; const switchTo = cold(' ----x----'); const expected = ' -----| '; const result = source.pipe(timeoutWith(t, switchTo, rxTestScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe([]); }); }); it('should not timeout if source raises error within timeout period', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot('-----# '); const t = time(' ----------| '); const sourceSubs = '^----! '; const switchTo = cold(' ----x----|'); const expected = ' -----# '; const result = source.pipe(timeoutWith(t, switchTo, rxTestScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe([]); }); }); it('should not timeout if source emits within timeout period', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot(' --a--b--c--d--e--|'); const t = time(' -----| '); const sourceSubs = ' ^----------------!'; const switchTo = cold('----x----| '); const expected = ' --a--b--c--d--e--|'; const result = source.pipe(timeoutWith(t, switchTo, rxTestScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe([]); }); }); it('should not timeout if source completes within specified Date', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--e--| '); const t = time(' --------------------|'); const sourceSubs = '^----------------! '; const switchTo = cold('--x--| '); const expected = ' --a--b--c--d--e--| '; // Start frame is zero. const result = source.pipe(timeoutWith(new Date(t), switchTo, rxTestScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe([]); }); }); it('should not timeout if source raises error within specified Date', () => { rxTestScheduler.run(({ hot, cold, time, expectObservable, expectSubscriptions }) => { const source = hot('---a---# '); const t = time(' ----------| '); const sourceSubs = '^------! '; const switchTo = cold(' --x--|'); const expected = ' ---a---# '; // Start frame is zero. const result = source.pipe(timeoutWith(new Date(t), switchTo, rxTestScheduler)); expectObservable(result).toBe(expected); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(switchTo.subscriptions).toBe([]); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(timeoutWith(0, EMPTY), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/timestamp-spec.ts000066400000000000000000000151601431412030200207640ustar00rootroot00000000000000import { expect } from 'chai'; import { timestamp, map, mergeMap, take } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {timestamp} */ describe('timestamp', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should record the time stamp per each source elements', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -b-c-----d--e--|'); const e1subs = ' ^--------------!'; const expected = '-w-x-----y--z--|'; const expectedValue = { w: 1, x: 3, y: 9, z: 12 }; const result = e1.pipe( timestamp(rxTestScheduler), map((x) => x.timestamp) ); expectObservable(result).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should record stamp if source emit elements', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--a--^b--c----d---e--|'); const e1subs = ' ^---------------!'; const expected = ' -w--x----y---z--|'; const expectedValue = { w: { value: 'b', timestamp: 1 }, x: { value: 'c', timestamp: 4 }, y: { value: 'd', timestamp: 9 }, z: { value: 'e', timestamp: 13 }, }; expectObservable(e1.pipe(timestamp(rxTestScheduler))).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should completes without record stamp if source does not emits', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---------|'); const e1subs = ' ^--------!'; const expected = '---------|'; expectObservable(e1.pipe(timestamp(rxTestScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete immediately if source is empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '| '; expectObservable(e1.pipe(timestamp(rxTestScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should record stamp then does not completes if source emits but not completes', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--b--'); const e1subs = ' ^------'; const expected = '-y--z--'; const expectedValue = { y: { value: 'a', timestamp: 1 }, z: { value: 'b', timestamp: 4 }, }; expectObservable(e1.pipe(timestamp(rxTestScheduler))).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow unsubscribing explicitly and early', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--b-----c---d---|'); const unsub = ' -------! '; const e1subs = ' ^------! '; const expected = '-y--z--- '; const expectedValue = { y: { value: 'a', timestamp: 1 }, z: { value: 'b', timestamp: 4 }, }; const result = e1.pipe(timestamp(rxTestScheduler)); expectObservable(result, unsub).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--b-----c---d---|'); const e1subs = ' ^------! '; const expected = '-y--z--- '; const unsub = ' -------! '; const expectedValue = { y: { value: 'a', timestamp: 1 }, z: { value: 'b', timestamp: 4 }, }; const result = e1.pipe( mergeMap((x) => of(x)), timestamp(rxTestScheduler), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not completes if source never completes', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(timestamp(rxTestScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('raise error if source raises error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---#'); const e1subs = ' ^--!'; const expected = '---#'; expectObservable(e1.pipe(timestamp(rxTestScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should record stamp then raise error if source raises error after emit', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' -a--b--#'); const e1subs = ' ^------!'; const expected = '-y--z--#'; const expectedValue = { y: { value: 'a', timestamp: 1 }, z: { value: 'b', timestamp: 4 }, }; expectObservable(e1.pipe(timestamp(rxTestScheduler))).toBe(expected, expectedValue); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if source immediately throws', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(timestamp(rxTestScheduler))).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(timestamp(), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/toArray-spec.ts000066400000000000000000000120201431412030200203720ustar00rootroot00000000000000import { toArray, mergeMap } from 'rxjs/operators'; import { of } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {toArray} */ describe('toArray', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should reduce the values of an observable into an array', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b--| '); const e1subs = ' ^--------! '; const expected = '---------(w|)'; expectObservable(e1.pipe(toArray())).toBe(expected, { w: ['a', 'b'] }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be never when source is never', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' -'); const e1subs = ' ^'; const expected = '-'; expectObservable(e1.pipe(toArray())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should be empty when source is empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' | '); const e1subs = ' (^!)'; const expected = '(w|)'; expectObservable(e1.pipe(toArray())).toBe(expected, { w: [] }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it("should be never when source doesn't complete", () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('--x--^--y--'); const e1subs = ' ^-----'; const expected = ' ------'; expectObservable(e1.pipe(toArray())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should reduce observable without values into an array of length zero', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^---| '); const e1subs = ' ^---! '; const expected = ' ----(w|)'; expectObservable(e1.pipe(toArray())).toBe(expected, { w: [] }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should reduce the a single value of an observable into an array', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^--y--| '); const e1subs = ' ^-----! '; const expected = ' ------(w|)'; expectObservable(e1.pipe(toArray())).toBe(expected, { w: ['y'] }); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should allow multiple subscriptions', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^--y--| '); const e1subs = ' ^-----! '; const expected = ' ------(w|)'; const result = e1.pipe(toArray()); expectObservable(result).toBe(expected, { w: ['y'] }); expectObservable(result).toBe(expected, { w: ['y'] }); expectSubscriptions(e1.subscriptions).toBe([e1subs, e1subs]); }); }); it('should allow unsubscribing explicitly and early', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b----c-----d----e---|'); const e1subs = ' ^-------! '; const expected = '--------- '; const unsub = ' --------! '; expectObservable(e1.pipe(toArray()), unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' --a--b----c-----d----e---|'); const e1subs = ' ^-------! '; const expected = '--------- '; const unsub = ' --------! '; const result = e1.pipe( mergeMap((x: string) => of(x)), toArray(), mergeMap((x: Array) => of(x)) ); expectObservable(result, unsub).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot('-x-^--y--z--#', { x: 1, y: 2, z: 3 }, 'too bad'); const e1subs = ' ^--------!'; const expected = ' ---------#'; expectObservable(e1.pipe(toArray())).toBe(expected, null, 'too bad'); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with throw', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e1 = cold(' # '); const e1subs = ' (^!)'; const expected = '# '; expectObservable(e1.pipe(toArray())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); }); rxjs-7.5.7/spec/operators/toPromise-spec.ts000066400000000000000000000024041431412030200207370ustar00rootroot00000000000000import { expect } from 'chai'; import { of, EMPTY, throwError, config } from 'rxjs'; /** @test {toPromise} */ describe('Observable.toPromise', () => { it('should convert an Observable to a promise of its last value', (done) => { of(1, 2, 3) .toPromise(Promise) .then((x) => { expect(x).to.equal(3); done(); }); }); it('should convert an empty Observable to a promise of undefined', (done) => { EMPTY.toPromise(Promise).then((x) => { expect(x).to.be.undefined; done(); }); }); it('should handle errors properly', (done) => { throwError(() => 'bad') .toPromise(Promise) .then( () => { done(new Error('should not be called')); }, (err: any) => { expect(err).to.equal('bad'); done(); } ); }); it('should allow for global config via config.Promise', async () => { try { let wasCalled = false; config.Promise = function MyPromise(callback: Function) { wasCalled = true; return new Promise(callback as any); } as any; const x = await of(42).toPromise(); expect(wasCalled).to.be.true; expect(x).to.equal(42); } finally { config.Promise = undefined; } }); }); rxjs-7.5.7/spec/operators/window-spec.ts000066400000000000000000000275511431412030200202770ustar00rootroot00000000000000import { window, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { EMPTY, of, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {window} */ describe('window', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should emit windows that close and reopen', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot(' ---a---b---c---d---e---f---g---h---i---| '); const sourceSubs = ' ^--------------------------------------! '; const closings = hot('-------------w------------w----------------|'); const closingSubs = ' ^--------------------------------------! '; const expected = ' x------------y------------z------------| '; const x = cold(' ---a---b---c-| '); const y = cold(' --d---e---f--| '); const z = cold(' -g---h---i---| '); const expectedValues = { x: x, y: y, z: z }; const result = source.pipe(window(closings)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should return a single empty window if source is empty and closings are basic', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' | '); const sourceSubs = ' (^!) '; const closings = cold('--x--x--|'); const closingSubs = ' (^!) '; const expected = ' (w|) '; const w = cold(' | '); const expectedValues = { w: w }; const result = source.pipe(window(closings)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should return a single empty window if source is empty and closing is empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' | '); const sourceSubs = ' (^!)'; const closings = cold('| '); const closingSubs = ' (^!)'; const expected = ' (w|)'; const w = cold(' | '); const expectedValues = { w: w }; const result = source.pipe(window(closings)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should return a single empty window if source is sync empty and closing is sync empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' (|) '); const sourceSubs = ' (^!)'; const expected = ' (w|)'; const w = cold(' | '); const expectedValues = { w: w }; const result = source.pipe(window(EMPTY)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(sourceSubs); // expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should split a Just source into a single window identical to source, using a Never closing', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' (a|)'); const sourceSubs = ' (^!)'; const closings = cold('- '); const closingSubs = ' (^!)'; const expected = ' (w|)'; const w = cold(' (a|)'); const expectedValues = { w: w }; const result = source.pipe(window(closings)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should return a single Never window if source is Never', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' ------'); const sourceSubs = ' ^-----'; const closings = cold('------'); const closingSubs = ' ^-----'; const expected = ' w-----'; const w = cold(' ------'); const expectedValues = { w: w }; const result = source.pipe(window(closings)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should be able to split a never Observable into timely empty windows', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot(' ^--------'); const sourceSubs = ' ^--------'; const closings = cold('--x--x--|'); const closingSubs = ' ^-------!'; const expected = ' a-b--c---'; const a = cold(' --| '); const b = cold(' ---| '); const c = cold(' ----'); const expectedValues = { a: a, b: b, c: c }; const result = source.pipe(window(closings)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should emit an error-only window if outer is a simple throw-Observable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' # '); const sourceSubs = ' (^!) '; const closings = cold('--x--x--|'); const closingSubs = ' (^!) '; const expected = ' (w#) '; const w = cold(' # '); const expectedValues = { w: w }; const result = source.pipe(window(closings)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(sourceSubs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should handle basic case with window closings', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('-1-2-^3-4-5-6-7-8-9-| '); const subs = ' ^--------------! '; const closings = hot('---^---x---x---x---x---x---|'); const closingSubs = ' ^--------------! '; const expected = ' a---b---c---d--| '; const a = cold(' -3-4| '); const b = cold(' -5-6| '); const c = cold(' -7-8| '); const d = cold(' -9-| '); const expectedValues = { a: a, b: b, c: c, d: d }; const result = source.pipe(window(closings)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(subs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should handle basic case with window closings, but outer throws', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('-1-2-^3-4-5-6-7-8-9-# '); const subs = ' ^--------------! '; const closings = hot('---^---x---x---x---x---x---|'); const closingSubs = ' ^--------------! '; const expected = ' a---b---c---d--# '; const a = cold(' -3-4| '); const b = cold(' -5-6| '); const c = cold(' -7-8| '); const d = cold(' -9-# '); const expectedValues = { a: a, b: b, c: c, d: d }; const result = source.pipe(window(closings)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(subs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should stop emitting windows when outer is unsubscribed early', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('-1-2-^3-4-5-6-7-8-9-| '); const subs = ' ^-------! '; const closings = hot('---^---x---x---x---x---x---|'); const closingSubs = ' ^-------! '; const expected = ' a---b---- '; const a = cold(' -3-4| '); const b = cold(' -5-6 '); const unsub = ' --------! '; const expectedValues = { a: a, b: b }; const result = source.pipe(window(closings)); expectObservable(result, unsub).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(subs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('-1-2-^3-4-5-6-7-8-9-| '); const subs = ' ^-------! '; const closings = hot('---^---x---x---x---x---x---|'); const closingSubs = ' ^-------! '; const expected = ' a---b---- '; const a = cold(' -3-4| '); const b = cold(' -5-6- '); const unsub = ' --------! '; const expectedValues = { a: a, b: b }; const result = source.pipe( mergeMap((x: string) => of(x)), window(closings), mergeMap((x: Observable) => of(x)) ); expectObservable(result, unsub).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(subs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should make outer emit error when closing throws', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('-1-2-^3-4-5-6-7-8-9-#'); const subs = ' ^---! '; const closings = hot('---^---# '); const closingSubs = ' ^---! '; const expected = ' a---# '; const a = cold(' -3-4# '); const expectedValues = { a: a }; const result = source.pipe(window(closings)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(subs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); it('should complete the resulting Observable when window closings completes', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('-1-2-^3-4-5-6-7-8-9-|'); const subs = ' ^--------------!'; const closings = hot('---^---x---x---| '); const closingSubs = ' ^-----------! '; const expected = ' a---b---c------|'; const a = cold(' -3-4| '); const b = cold(' -5-6| '); const c = cold(' -7-8-9-|'); const expectedValues = { a: a, b: b, c: c }; const result = source.pipe(window(closings)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(subs); expectSubscriptions(closings.subscriptions).toBe(closingSubs); }); }); }); rxjs-7.5.7/spec/operators/windowCount-spec.ts000066400000000000000000000165211431412030200213030ustar00rootroot00000000000000import { expect } from 'chai'; import { windowCount, mergeMap, mergeAll, take } from 'rxjs/operators'; import { of, Observable } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {windowCount} */ describe('windowCount', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should emit windows with count 3, no skip specified', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('---a---b---c---d---e---f---g---h---i---|'); const sourceSubs = '^--------------------------------------!'; const expected = ' x----------y-----------z-----------w---|'; const x = cold(' ---a---b---(c|) '); const y = cold(' ----d---e---(f|) '); const z = cold(' ----g---h---(i|) '); const w = cold(' ----|'); const expectedValues = { x: x, y: y, z: z, w: w }; const result = source.pipe(windowCount(3)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(sourceSubs); }); }); it('should emit windows with count 2 and skip 1', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('^-a--b--c--d--|'); const subs = ' ^-------------!'; const expected = ' u-v--x--y--z--|'; const u = cold(' --a--(b|) '); const v = cold(' ---b--(c|) '); const x = cold(' ---c--(d|)'); const y = cold(' ---d--|'); const z = cold(' ---|'); const values = { u: u, v: v, x: x, y: y, z: z }; const result = source.pipe(windowCount(2, 1)); expectObservable(result).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should emit windows with count 2, and skip unspecified', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--e--f--|'); const subs = ' ^-------------------!'; const expected = ' x----y-----z-----w--|'; const x = cold(' --a--(b|) '); const y = cold(' ---c--(d|) '); const z = cold(' ---e--(f|)'); const w = cold(' ---|'); const values = { x: x, y: y, z: z, w: w }; const result = source.pipe(windowCount(2)); expectObservable(result).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should return empty if source is empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('|'); const subs = ' (^!)'; const expected = ' (w|)'; const w = cold(' |'); const values = { w: w }; const result = source.pipe(windowCount(2, 1)); expectObservable(result).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should return Never if source if Never', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold('-'); const subs = ' ^'; const expected = ' w'; const w = cold(' -'); const expectedValues = { w: w }; const result = source.pipe(windowCount(2, 1)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should propagate error from a just-throw source', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const source = cold(' #'); const subs = ' (^!)'; const expected = ' (w#)'; const w = cold(' #'); const expectedValues = { w: w }; const result = source.pipe(windowCount(2, 1)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should raise error if source raises error', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('--a--b--c--d--e--f--#'); const subs = ' ^-------------------!'; const expected = ' u-v--w--x--y--z--q--#'; const u = cold(' --a--b--(c|) '); const v = cold(' ---b--c--(d|) '); const w = cold(' ---c--d--(e|) '); const x = cold(' ---d--e--(f|)'); const y = cold(' ---e--f--#'); const z = cold(' ---f--#'); const q = cold(' ---#'); const values = { u: u, v: v, w: w, x: x, y: y, z: z, q: q }; const result = source.pipe(windowCount(3, 1)); expectObservable(result).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should dispose of inner windows once outer is unsubscribed early', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('^-a--b--c--d--|'); const subs = ' ^--------! '; const expected = ' w-x--y--z- '; const w = cold(' --a--(b|) '); const x = cold(' ---b--(c|) '); const y = cold(' ---c- '); const z = cold(' -- '); const unsub = ' ---------! '; const values = { w: w, x: x, y: y, z: z }; const result = source.pipe(windowCount(2, 1)); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('^-a--b--c--d--|'); const subs = ' ^--------! '; const expected = ' w-x--y--z- '; const w = cold(' --a--(b|) '); const x = cold(' ---b--(c|) '); const y = cold(' ---c- '); const z = cold(' -- '); const unsub = ' ---------! '; const values = { w: w, x: x, y: y, z: z }; const result = source.pipe( mergeMap((x: string) => of(x)), windowCount(2, 1), mergeMap((x: Observable) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should stop listening to a synchronous observable when unsubscribed', () => { const sideEffects: number[] = []; const synchronousObservable = new Observable((subscriber) => { // This will check to see if the subscriber was closed on each loop // when the unsubscribe hits (from the `take`), it should be closed for (let i = 0; !subscriber.closed && i < 10; i++) { sideEffects.push(i); subscriber.next(i); } }); synchronousObservable.pipe(windowCount(3), mergeAll(), take(3)).subscribe(() => { /* noop */ }); expect(sideEffects).to.deep.equal([0, 1, 2]); }); }); rxjs-7.5.7/spec/operators/windowTime-spec.ts000066400000000000000000000332421431412030200211100ustar00rootroot00000000000000import { windowTime, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { of, Observable } from 'rxjs'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {windowTime} */ describe('windowTime', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should emit windows given windowTimeSpan and windowCreationInterval', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const source = hot('--1--2--^-a--b--c--d--e---f--g--h-|'); const subs = ' ^-------------------------!'; // 10 frames 0---------1---------2-----| // 5 -----| // 5 -----| // 5 -----| const expected = ' x---------y---------z-----|'; const x = cold(' --a--(b|) '); const y = cold(' -d--e| '); const z = cold(' -g--h| '); const values = { x, y, z }; const result = source.pipe(windowTime(5, 10, rxTestScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); // NOTE: This test and behavior were broken in 5.x and 6.x, to where // Not passing a creationInterval would not cause new windows to open // when old ones closed. it('should close windows after max count is reached', () => { rxTestScheduler.run(({ hot, time, cold, expectObservable, expectSubscriptions }) => { const source = hot('--1--2--^--a--b--c--d--e--f--g-----|'); const subs = ' ^--------------------------!'; const timeSpan = time(' ----------| '); // ----------| // ----------| // --------- const expected = ' w-----x-----y-----z--------|'; const w = cold(' ---a--(b|) '); const x = cold(' ---c--(d|) '); const y = cold(' ---e--(f|) '); const z = cold(' ---g-----|'); const values = { w, x, y, z }; const result = source.pipe(windowTime(timeSpan, null, 2, rxTestScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should close window after max count is reached with windowCreationInterval', () => { rxTestScheduler.run(({ hot, cold, expectSubscriptions, expectObservable }) => { const source = hot('--1--2--^-a--b--c--de-f---g--h--i-|'); const subs = ' ^-------------------------!'; // 10 frames 0---------1---------2-----| // 5 -----| // 5 -----| // 5 -----| const expected = ' x---------y---------z-----|'; const x = cold(' --a--(b|) '); const y = cold(' -de-(f|) '); const z = cold(' -h--i| '); const values = { x, y, z }; const result = source.pipe(windowTime(5, 10, 3, rxTestScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should emit windows given windowTimeSpan', () => { rxTestScheduler.run(({ hot, cold, time, expectSubscriptions, expectObservable }) => { const source = hot('--1--2--^--a--b--c--d--e--f--g--h--|'); const subs = ' ^--------------------------!'; const timeSpan = time(' ----------| '); // 10 frames 0---------1---------2------| // ----------| // ----------| const expected = ' x---------y---------z------|'; const x = cold(' ---a--b--c| '); const y = cold(' --d--e--f-| '); const z = cold(' -g--h--|'); const values = { x, y, z }; const result = source.pipe(windowTime(timeSpan, rxTestScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should emit windows given windowTimeSpan and windowCreationInterval', () => { rxTestScheduler.run(({ hot, time, cold, expectSubscriptions, expectObservable }) => { const source = hot('--1--2--^--a--b--c--d--e--f--g--h--|'); const subs = ' ^--------------------------!'; // 10 frames 0---------1---------2------| const interval = time(' ----------| '); // 10 ----------| // 10 ----------| const timeSpan = time(' -----| '); // 5 ----| // 5 ----| const expected = ' x---------y---------z------|'; const x = cold(' ---a-| '); const y = cold(' --d--(e|) '); const z = cold(' -g--h| '); const values = { x, y, z }; const result = source.pipe(windowTime(timeSpan, interval, rxTestScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should return a single empty window if source is empty', () => { rxTestScheduler.run(({ cold, time, expectSubscriptions, expectObservable }) => { const source = cold('|'); const subs = ' (^!)'; const expected = ' (w|)'; const w = cold(' |'); const expectedValues = { w }; const timeSpan = time('-----|'); const interval = time('----------|'); const result = source.pipe(windowTime(timeSpan, interval, rxTestScheduler)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should split a Just source into a single window identical to source', () => { rxTestScheduler.run(({ cold, time, expectSubscriptions, expectObservable }) => { const source = cold('(a|)'); const subs = ' (^!)'; const expected = ' (w|)'; const w = cold(' (a|)'); const expectedValues = { w }; const timeSpan = time('-----|'); const interval = time('----------|'); const result = source.pipe(windowTime(timeSpan, interval, rxTestScheduler)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should be able to split a never Observable into timely empty windows', () => { rxTestScheduler.run(({ hot, cold, time, expectSubscriptions, expectObservable }) => { const source = hot(' ^----------'); const subs = ' ^---------!'; const timeSpan = time('---|'); const interval = time('---|'); // ---| // ---| // ---| const expected = ' a--b--c--d-'; const a = cold(' ---| '); const b = cold(' ---| '); const c = cold(' ---| '); const d = cold(' --'); const unsub = ' ----------!'; const expectedValues = { a, b, c, d }; const result = source.pipe(windowTime(timeSpan, interval, rxTestScheduler)); expectObservable(result, unsub).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should emit an error-only window if outer is a simple throw-Observable', () => { rxTestScheduler.run(({ cold, time, expectSubscriptions, expectObservable }) => { const source = cold('# '); const subs = ' (^!)'; const expected = ' (w#)'; const w = cold(' # '); const expectedValues = { w }; const timeSpan = time('-----|'); const interval = time('----------|'); const result = source.pipe(windowTime(timeSpan, interval, rxTestScheduler)); expectObservable(result).toBe(expected, expectedValues); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should handle source Observable which eventually emits an error', () => { rxTestScheduler.run(({ hot, cold, time, expectSubscriptions, expectObservable }) => { const source = hot('--1--2--^--a--b--c--d--e--f--g--h--#'); const subs = ' ^--------------------------!'; const timeSpan = time(' -----| '); const interval = time(' ----------| '); // 10 frames 0---------1---------2------| // 5 ----| // 5 ----| // 5 ----| const expected = ' x---------y---------z------#'; const x = cold(' ---a-| '); const y = cold(' --d--(e|) '); const z = cold(' -g--h| '); const values = { x, y, z }; const result = source.pipe(windowTime(timeSpan, interval, rxTestScheduler)); expectObservable(result).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should emit windows given windowTimeSpan and windowCreationInterval, but outer is unsubscribed early', () => { rxTestScheduler.run(({ hot, cold, time, expectSubscriptions, expectObservable }) => { const source = hot('--1--2--^--a--b--c--d--e--f--g--h--|'); const subs = ' ^----------! '; const timeSpan = time(' -----| '); const interval = time(' ----------| '); // 10 frames 0---------1---------2------| // 5 ----| // 5 ----| // 5 ----| const expected = ' x---------y- '; const x = cold(' ---a-| '); const y = cold(' -- '); const unsub = ' -----------! '; const values = { x, y }; const result = source.pipe(windowTime(timeSpan, interval, rxTestScheduler)); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, cold, time, expectSubscriptions, expectObservable }) => { const source = hot('--1--2--^--a--b--c--d--e--f--g--h--|'); const sourcesubs = ' ^-------------! '; const timeSpan = time(' -----| '); const interval = time(' ----------| '); // 10 frames 0---------1---------2------| // 5 ----| // 5 ----| // 5 ----| const expected = ' x---------y---- '; const x = cold(' ---a-| '); const y = cold(' --d-- '); const unsub = ' --------------! '; const values = { x, y }; const result = source.pipe( mergeMap((x: string) => of(x)), windowTime(timeSpan, interval, rxTestScheduler), mergeMap((x: Observable) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(source.subscriptions).toBe(sourcesubs); }); }); it('should not error if maxWindowSize is hit while nexting to other windows.', () => { rxTestScheduler.run(({ cold, time, expectObservable }) => { const source = cold(' ----a---b---c---d---e---f---g---h---i---j---'); const windowTimeSpan = time(' ------------| '); const windowCreationInterval = time('--------| '); const maxWindowSize = 4; const a = cold(' ----a---b---| '); // ------------| const b = cold(' b---c---d---(e|)'); const c = cold(' ----e---f---(g|)'); const d = cold(' ----g---h---(i|) '); const e = cold(' ----i---j---'); const f = cold(' ----'); const expected = ' a-------b-------c-------d-------e-------f---'; const killSub = ' ------------------------------------------! '; const values = { a, b, c, d, e, f }; const result = source.pipe(windowTime(windowTimeSpan, windowCreationInterval, maxWindowSize, rxTestScheduler)); expectObservable(result, killSub).toBe(expected, values); }); }); }); rxjs-7.5.7/spec/operators/windowToggle-spec.ts000066400000000000000000000551531431412030200214400ustar00rootroot00000000000000import { expect } from 'chai'; import { Observable, NEVER, of, ObjectUnsubscribedError, EMPTY } from 'rxjs'; import { windowToggle, tap, mergeMap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {windowToggle} */ describe('windowToggle', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should emit windows governed by openings and closings', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' ----w--------w--------w--|'); const e2subs = ' ^------------------------!'; const e3 = cold(' -----x '); // -----x // -----x const e3subs = [ ' ----^----! ', ' -------------^----! ', ' ----------------------^--!', ]; const e1 = hot(' --1--2--^-a--b--c--d--e--f--g--h-|'); const e1subs = ' ^------------------------!'; const expected = ' ----x--------y--------z--|'; const x = cold(' -b--c| '); const y = cold(' -e--f| '); const z = cold(' -h-|'); const values = { x, y, z }; const result = e1.pipe(windowToggle(e2, () => e3)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should emit windows that are opened by an observable from the first argument and closed by an observable returned by the function in the second argument', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' --------x-------x-------x--|'); const e2subs = ' ^--------------------------!'; const e3 = cold(' ----------(x|) '); // ----------(x|) // ----------(x|) const e3subs = [ ' --------^---------! ', ' ----------------^---------! ', ' ------------------------^--!', ]; const e1 = hot('--1--2--^--a--b--c--d--e--f--g--h--|'); const e1subs = ' ^--------------------------!'; const expected = ' --------x-------y-------z--|'; const x = cold(' -c--d--e--(f|) '); const y = cold(' --f--g--h-| '); const z = cold(' ---|'); const values = { x, y, z }; const source = e1.pipe( windowToggle(e2, (value: string) => { expect(value).to.equal('x'); return e3; }) ); expectObservable(source).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should emit windows using varying cold closings', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' --x-----------y--------z---| '); const e2subs = ' ^--------------------------! '; const close = [ cold(' ---------------s--| '), cold(' ----(s|) '), cold(' ---------------(s|)'), ]; const closeSubs = [ ' --^--------------! ', ' --------------^---! ', ' -----------------------^-----------! ', ]; const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const e1subs = ' ^----------------------------------! '; const expected = ' --x-----------y--------z-----------| '; const x = cold(' --b---c---d---e| '); const y = cold(' --e-| '); const z = cold(' -g---h------| '); const values = { x, y, z }; let i = 0; const result = e1.pipe(windowToggle(e2, () => close[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(close[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(close[1].subscriptions).toBe(closeSubs[1]); expectSubscriptions(close[2].subscriptions).toBe(closeSubs[2]); }); }); it('should emit windows using varying hot closings', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' --x-----------y--------z---| '); const e2subs = ' ^--------------------------! '; const closings = [ hot(' -1--^----------------s-| '), hot(' -----3----4-------(s|) '), hot(' -------3----4-------5----------------s|'), ]; const closingSubs = [ ' --^--------------! ', ' --------------^---! ', ' -----------------------^-----------! ', ]; const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const e1subs = ' ^----------------------------------! '; const expected = ' --x-----------y--------z-----------| '; const x = cold(' --b---c---d---e| '); const y = cold(' --e-| '); const z = cold(' -g---h------| '); const values = { x, y, z }; let i = 0; const result = e1.pipe(windowToggle(e2, () => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(closings[0].subscriptions).toBe(closingSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closingSubs[1]); expectSubscriptions(closings[2].subscriptions).toBe(closingSubs[2]); }); }); it('should emit windows using varying empty delayed closings', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' --x-----------y--------z---| '); const e2subs = ' ^--------------------------! '; const close = [ cold(' ---------------| '), cold(' ----| '), cold(' ---------------|'), ]; const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const e1subs = ' ^----------------------------------! '; const expected = ' --x-----------y--------z-----------| '; const x = cold(' --b---c---d---e---f---g---h------| '); const y = cold(' --e---f---g---h------| '); const z = cold(' -g---h------| '); const values = { x, y, z }; let i = 0; const result = e1.pipe(windowToggle(e2, () => close[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit windows using varying cold closings, outer unsubscribed early', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' --x-----------y--------z---| '); const e2subs = ' ^----------------! '; const close = [ cold(' -------------s---| '), cold(' -----(s|) '), cold(' ---------------(s|)'), ]; const closeSubs = [ ' --^------------! ', ' --------------^--! ', ]; const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const e1subs = ' ^----------------! '; const expected = ' --x-----------y--- '; const x = cold(' --b---c---d--| '); const y = cold(' --e- '); const unsub = ' -----------------! '; const values = { x, y }; let i = 0; const result = e1.pipe(windowToggle(e2, () => close[i++])); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(close[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(close[1].subscriptions).toBe(closeSubs[1]); expectSubscriptions(close[2].subscriptions).toBe([]); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' --x-----------y--------z---| '); const e2subs = ' ^--------------! '; const close = [ cold(' ---------------s--| '), cold(' ----(s|) '), cold(' ---------------(s|)'), ]; const closeSubs = [ ' --^------------! ', ' --------------^! ', ]; const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const e1subs = ' ^--------------! '; const expected = ' --x-----------y- '; const x = cold(' --b---c---d--- '); const y = cold(' -- '); const unsub = ' ---------------! '; const values = { x, y }; let i = 0; const result = e1.pipe( mergeMap((x) => of(x)), windowToggle(e2, () => close[i++]), mergeMap((x) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(close[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(close[1].subscriptions).toBe(closeSubs[1]); }); }); it('should dispose window Subjects if the outer is unsubscribed early', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions, time }) => { const open = cold(' o-------------------------|'); const e1 = hot(' --a--b--c--d--e--f--g--h--|'); const e1subs = ' ^--------! '; const expected = ' x--------- '; const x = cold(' --a--b--c- '); const unsub = ' ---------! '; const late = time(' ---------------| '); const values = { x }; let window: Observable; const result = e1.pipe( windowToggle(open, () => NEVER), tap((w) => { window = w; }) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); rxTestScheduler.schedule(() => { expect(() => { window.subscribe(); }).to.throw(ObjectUnsubscribedError); }, late); }); }); it('should propagate error thrown from closingSelector', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' --x-----------y--------z---| '); const e2subs = ' ^-------------! '; const close = [ cold(' ---------------s--| '), cold(' ----(s|) '), cold(' ---------------(s|)'), ]; const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const e1subs = ' ^-------------! '; const expected = ' --x-----------#---- '; const x = cold(' --b---c---d-# '); const values = { x: x }; let i = 0; const result = e1.pipe( windowToggle(e2, () => { if (i === 1) { throw 'error'; } return close[i++]; }) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should propagate error emitted from a closing', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' --x-----------y--------z---| '); const e2subs = ' ^-------------! '; // prettier-ignore const close = [ cold(' ---------------s--| '), cold(' # ') ]; const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const e1subs = ' ^-------------! '; const expected = ' --x-----------(y#) '; const x = cold(' --b---c---d-# '); const y = cold(' # '); const values = { x, y }; let i = 0; const result = e1.pipe(windowToggle(e2, () => close[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should propagate error emitted late from a closing', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' --x-----------y--------z---| '); const e2subs = ' ^------------------! '; // prettier-ignore const close = [ cold(' ---------------s--| '), cold(' -----# ') ]; const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const e1subs = ' ^------------------! '; const expected = ' --x-----------y----# '; const x = cold(' --b---c---d---e| '); const y = cold(' --e--# '); const values = { x, y }; let i = 0; const result = e1.pipe(windowToggle(e2, () => close[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle errors', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' --x-----------y--------z---| '); const e2subs = ' ^------------------! '; // prettier-ignore const close = [ cold(' ---------------s--| '), cold(' -------s| ') ]; const e1 = hot('--a--^---b---c---d---e--# '); const e1subs = ' ^------------------! '; const expected = ' --x-----------y----# '; const x = cold(' --b---c---d---e| '); const y = cold(' --e--# '); const values = { x, y }; let i = 0; const result = e1.pipe(windowToggle(e2, () => close[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle empty source', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e2 = cold('--o-----|'); const e2subs = ' (^!)'; const e3 = cold(' -----c--|'); const e1 = cold(' |'); const e1subs = ' (^!)'; const expected = ' |'; const result = e1.pipe(windowToggle(e2, () => e3)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle throw', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' --o-----|'); const e2subs = ' (^!)'; const e3 = cold(' -----c--|'); const e1 = cold(' #'); const e1subs = ' (^!)'; const expected = '#'; const result = e1.pipe(windowToggle(e2, () => e3)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle never', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e2 = cold(' --o-----o------o-----o---o-----| '); const e2subs = ' ^------------------------------! '; const e3 = cold(' --c-| '); const e1 = hot(' - '); const e1subs = ' ^-------------------------------------------!'; const expected = '--u-----v------x-----y---z-------------------'; const u = cold(' --| '); const v = cold(' --| '); const x = cold(' --| '); const y = cold(' --| '); const z = cold(' --| '); const unsub = ' --------------------------------------------!'; const values = { u: u, v: v, x, y, z }; const result = e1.pipe(windowToggle(e2, () => e3)); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle a never opening Observable', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e2 = cold(' - '); const e2subs = ' ^----------------------------------!'; const e3 = cold(' --c-| '); const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const e1subs = ' ^----------------------------------!'; const expected = ' -----------------------------------|'; const result = e1.pipe(windowToggle(e2, () => e3)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle a never closing Observable', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e2 = cold(' ---o---------------o-----------| '); const e2subs = ' ^------------------------------! '; const e3 = cold(' - '); // - const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const e1subs = ' ^----------------------------------!'; const expected = ' ---x---------------y---------------|'; const x = cold(' -b---c---d---e---f---g---h------|'); const y = cold(' -f---g---h------|'); const values = { x, y }; const result = e1.pipe(windowToggle(e2, () => e3)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle opening Observable that just throws', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e2 = cold(' # '); const e2subs = ' (^!) '; const e3 = cold(' --c-| '); const subs = ' (^!) '; const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const e1subs = ' (^!) '; const expected = ' # '; const result = e1.pipe(windowToggle(e2, () => e3)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle empty closing observable', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e2 = cold(' ---o---------------o-----------| '); const e2subs = ' ^------------------------------! '; const e3 = EMPTY; const e1 = hot('--a--^---b---c---d---e---f---g---h------|'); const e1subs = ' ^----------------------------------!'; const expected = ' ---x---------------y---------------|'; const x = cold(' -b---c---d---e---f---g---h------|'); const y = cold(' -f---g---h------|'); const values = { x, y }; const result = e1.pipe(windowToggle(e2, () => e3)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); }); rxjs-7.5.7/spec/operators/windowWhen-spec.ts000066400000000000000000000430521431412030200211130ustar00rootroot00000000000000import { windowWhen, mergeMap } from 'rxjs/operators'; import { Observable, of } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {windowWhen} */ describe('windowWhen', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should emit windows that close and reopen', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' -----------| '); // -----------| // -----------| const e2subs = [ ' ^----------! ', ' -----------^----------! ', ' ----------------------^----!', ]; const e1 = hot(' --a--^--b--c--d--e--f--g--h--i--|'); const e1subs = ' ^--------------------------!'; const expected = ' a----------b----------c----|'; const a = cold(' ---b--c--d-| '); const b = cold(' -e--f--g--h| '); const c = cold(' --i--|'); const values = { a: a, b: b, c: c }; const source = e1.pipe(windowWhen(() => e2)); expectObservable(source).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should emit windows using varying cold closings', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const closings = [ cold(' -----------------s--| '), cold(' -----(s|) '), cold(' ---------------(s|)'), ]; const closeSubs = [ ' ^----------------! ', ' -----------------^----! ', ' ----------------------^------------! ', ]; const e1 = hot(' --a--^---b---c---d---e---f---g---h------| '); const e1subs = ' ^----------------------------------! '; const expected = ' x----------------y----z------------| '; const x = cold(' ----b---c---d---e| '); const y = cold(' ---f-| '); const z = cold(' --g---h------| '); const values = { x: x, y: y, z: z }; let i = 0; const result = e1.pipe(windowWhen(() => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); expectSubscriptions(closings[2].subscriptions).toBe(closeSubs[2]); }); }); it('should emit windows using varying hot closings', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const closings = [ hot(' -1--^----------------s-| '), hot(' -----3----4-----------(s|) '), hot(' -------3----4-------5----------------s|'), ]; const closeSubs = [ ' ^----------------! ', ' -----------------^----! ', ' ----------------------^------------! ', ]; const e1 = hot(' --a--^---b---c---d---e---f---g---h------| '); const subs = ' ^----------------------------------! '; const expected = ' x----------------y----z------------| '; const x = cold(' ----b---c---d---e| '); const y = cold(' ---f-| '); const z = cold(' --g---h------| '); const values = { x: x, y: y, z: z }; let i = 0; const result = e1.pipe(windowWhen(() => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); expectSubscriptions(closings[2].subscriptions).toBe(closeSubs[2]); }); }); it('should emit windows using varying empty delayed closings', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const closings = [ cold(' -----------------| '), cold(' -----| '), cold(' ---------------|'), ]; const closeSubs = [ ' ^----------------! ', ' -----------------^----! ', ' ----------------------^------------! ', ]; const e1 = hot('--a--^---b---c---d---e---f---g---h------| '); const e1subs = ' ^----------------------------------! '; const expected = ' x----------------y----z------------| '; const x = cold(' ----b---c---d---e| '); const y = cold(' ---f-| '); const z = cold(' --g---h------| '); const values = { x: x, y: y, z: z }; let i = 0; const result = e1.pipe(windowWhen(() => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); expectSubscriptions(closings[2].subscriptions).toBe(closeSubs[2]); }); }); it('should emit windows using varying cold closings, outer unsubscribed early', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const closings = [ cold(' -----------------s--| '), cold(' ---------(s|) '), ]; const closeSubs = [ ' ^----------------! ', ' -----------------^---! ', ]; const e1 = hot(' --a--^---b---c---d---e---f---g---h------|'); const e1subs = ' ^--------------------! '; const expected = ' x----------------y---- '; const unsub = ' ---------------------! '; const x = cold(' ----b---c---d---e| '); const y = cold(' ---f- '); const values = { x: x, y: y }; let i = 0; const result = e1.pipe(windowWhen(() => closings[i++])); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const closings = [ cold(' -----------------s--| '), cold(' ---------(s|) '), ]; const closeSubs = [ ' ^----------------! ', ' -----------------^---! ', ]; const e1 = hot(' --a--^---b---c---d---e---f---g---h------|'); const e1subs = ' ^--------------------! '; const expected = ' x----------------y---- '; const unsub = ' ---------------------! '; const x = cold(' ----b---c---d---e| '); const y = cold(' ---f- '); const values = { x: x, y: y }; let i = 0; const result = e1.pipe( mergeMap((x: string) => of(x)), windowWhen(() => closings[i++]), mergeMap((x: Observable) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); }); }); it('should propagate error thrown from closingSelector', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const closings = [ cold(' -----------------s--| '), cold(' -----(s|) '), cold(' ---------------(s|)'), ]; const closeSubs = [' ^----------------! ']; const e1 = hot(' --a--^---b---c---d---e---f---g---h------| '); const e1subs = ' ^----------------! '; const expected = ' x----------------(y#) '; const x = cold(' ----b---c---d---e| '); const y = cold(' # '); const values = { x: x, y: y }; let i = 0; const result = e1.pipe( windowWhen(() => { if (i === 1) { throw 'error'; } return closings[i++]; }) ); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); }); }); it('should propagate error emitted from a closing', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const closings = [ cold(' -----------------s--| '), cold(' # '), ]; const closeSubs = [ ' ^----------------! ', ' -----------------(^!) ', ]; const e1 = hot(' --a--^---b---c---d---e---f---g---h------|'); const e1subs = ' ^----------------! '; const expected = ' x----------------(y#) '; const x = cold(' ----b---c---d---e| '); const y = cold(' # '); const values = { x: x, y: y }; let i = 0; const result = e1.pipe(windowWhen(() => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); }); }); it('should propagate error emitted late from a closing', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const closings = [ cold(' -----------------s--| '), cold(' -----# '), ]; const closeSubs = [ ' ^----------------! ', ' -----------------^----! ', ]; const e1 = hot(' --a--^---b---c---d---e---f---g---h------|'); const e1subs = ' ^---------------------! '; const expected = ' x----------------y----# '; const x = cold(' ----b---c---d---e| '); const y = cold(' ---f-# '); const values = { x: x, y: y }; let i = 0; const result = e1.pipe(windowWhen(() => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); }); }); it('should propagate errors emitted from the source', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { // prettier-ignore const closings = [ cold(' -----------------s--| '), cold(' -------(s|)'), ]; // prettier-ignore const closeSubs = [ ' ^----------------! ', ' -----------------^----! ', ]; const e1 = hot(' --a--^---b---c---d---e---f-# '); const e1subs = ' ^---------------------! '; const expected = ' x----------------y----# '; const x = cold(' ----b---c---d---e| '); const y = cold(' ---f-# '); const values = { x: x, y: y }; let i = 0; const result = e1.pipe(windowWhen(() => closings[i++])); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(closings[0].subscriptions).toBe(closeSubs[0]); expectSubscriptions(closings[1].subscriptions).toBe(closeSubs[1]); }); }); it('should handle empty source', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' -----c--|'); const e2subs = ' (^!) '; const e1 = cold(' | '); const e1subs = ' (^!) '; const expected = '(w|) '; const win = cold('| '); const values = { w: win }; const result = e1.pipe(windowWhen(() => e2)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle a never source', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' -----c--| '); // -----c--| // -----c--| // ----- const e2subs = [ ' ^----! ', ' -----^----! ', ' ----------^----! ', ' ---------------^-!', ]; const e1 = cold(' - '); const e1subs = ' ^----------------!'; const expected = 'a----b----c----d--'; const unsub = ' -----------------!'; const win = cold('-----|'); // -----| // -----| const d = cold(' ---'); const values = { a: win, b: win, c: win, d: d }; const result = e1.pipe(windowWhen(() => e2)); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle throw', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' -----c--|'); const e2subs = ' (^!) '; const e1 = cold(' # '); const e1subs = ' (^!) '; const expected = '(w#) '; const win = cold('# '); const values = { w: win }; const result = e1.pipe(windowWhen(() => e2)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle a never closing Observable', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e2 = cold(' - '); const e2subs = ' ^----------------------------------!'; const e1 = hot(' --a--^---b---c---d---e---f---g---h------|'); const e1subs = ' ^----------------------------------!'; const expected = ' x----------------------------------|'; const x = cold(' ----b---c---d---e---f---g---h------|'); const values = { x: x }; const result = e1.pipe(windowWhen(() => e2)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should handle a throw closing Observable', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e2 = cold(' # '); const e2subs = ' (^!) '; const e1 = hot(' --a--^---b---c---d---e---f---g---h------|'); const e1subs = ' (^!) '; const expected = ' (x#) '; const x = cold(' # '); const values = { x: x }; const result = e1.pipe(windowWhen(() => e2)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); }); rxjs-7.5.7/spec/operators/withLatestFrom-spec.ts000066400000000000000000000275031431412030200217410ustar00rootroot00000000000000import { expect } from 'chai'; import { lowerCaseO } from '../helpers/test-helper'; import { withLatestFrom, mergeMap, delay } from 'rxjs/operators'; import { of } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {withLatestFrom} */ describe('withLatestFrom', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should combine events from cold observables', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const e2 = cold(' --1--2-3-4---| '); const e2subs = ' ^------------! '; const e1 = cold(' -a--b-----c-d-e-|'); const e1subs = ' ^---------------!'; const expected = '----B-----C-D-E-|'; const result = e1.pipe(withLatestFrom(e2, (a: string, b: string) => String(a) + String(b))); expectObservable(result).toBe(expected, { B: 'b1', C: 'c4', D: 'd4', E: 'e4' }); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); }); }); it('should merge the value with the latest values from the other observables into arrays', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e2 = hot(' --e--^-f---g---h------|'); const e2subs = ' ^-------------! '; const e3 = hot(' --i--^-j---k---l------|'); const e3subs = ' ^-------------! '; const e1 = hot(' --a--^---b---c---d-| '); const e1subs = ' ^-------------! '; const expected = ' ----x---y---z-| '; const values = { x: ['b', 'f', 'j'], y: ['c', 'g', 'k'], z: ['d', 'h', 'l'], }; const result = e1.pipe(withLatestFrom(e2, e3)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should merge the value with the latest values from the other observables into arrays and a project argument', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e2 = hot(' --e--^-f---g---h------|'); const e2subs = ' ^-------------! '; const e3 = hot(' --i--^-j---k---l------|'); const e3subs = ' ^-------------! '; const e1 = hot(' --a--^---b---c---d-| '); const e1subs = ' ^-------------! '; const expected = ' ----x---y---z-| '; const values = { x: 'bfj', y: 'cgk', z: 'dhl', }; const project = (a: string, b: string, c: string) => a + b + c; const result = e1.pipe(withLatestFrom(e2, e3, project)); expectObservable(result).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should allow unsubscribing early and explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e2 = hot(' --e--^-f---g---h------|'); const e2subs = ' ^----------! '; const e3 = hot(' --i--^-j---k---l------|'); const e3subs = ' ^----------! '; const e1 = hot(' --a--^---b---c---d-| '); const e1subs = ' ^----------! '; const expected = ' ----x---y--- '; const unsub = ' -----------! '; const values = { x: 'bfj', y: 'cgk', z: 'dhl', }; const project = (a: string, b: string, c: string) => a + b + c; const result = e1.pipe(withLatestFrom(e2, e3, project)); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should not break unsubscription chains when result is unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e2 = hot(' --e--^-f---g---h------|'); const e2subs = ' ^----------! '; const e3 = hot(' --i--^-j---k---l------|'); const e3subs = ' ^----------! '; const e1 = hot(' --a--^---b---c---d-| '); const e1subs = ' ^----------! '; const expected = ' ----x---y--- '; const unsub = ' -----------! '; const values = { x: 'bfj', y: 'cgk', z: 'dhl', }; const project = (a: string, b: string, c: string) => a + b + c; const result = e1.pipe( mergeMap((x: string) => of(x)), withLatestFrom(e2, e3, project), mergeMap((x: string) => of(x)) ); expectObservable(result, unsub).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should handle empty', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const e2 = hot(' --e--^-f---g---h----|'); const e2subs = ' (^!) '; const e3 = hot(' --i--^-j---k---l----|'); const e3subs = ' (^!) '; const e1 = cold(' | '); const e1subs = ' (^!) '; const expected = ' | '; // empty const result = e1.pipe(withLatestFrom(e2, e3)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should handle never', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e2 = hot(' --e--^-f---g---h----| '); const e2subs = ' ^--------------! '; const e3 = hot(' --i--^-j---k---l----| '); const e3subs = ' ^--------------! '; const e1 = cold(' - '); const e1subs = ' ^----------------'; const expected = ' --------------------'; // never const result = e1.pipe(withLatestFrom(e2, e3)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should handle throw', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e2 = hot(' --e--^-f---g---h----|'); const e2subs = ' (^!) '; const e3 = hot(' --i--^-j---k---l----|'); const e3subs = ' (^!) '; const e1 = cold(' # '); const e1subs = ' (^!) '; const expected = ' # '; // throw const result = e1.pipe(withLatestFrom(e2, e3)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should handle error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e2 = hot(' --e--^-f---g---h----|'); const e2subs = ' ^-------! '; const e3 = hot(' --i--^-j---k---l----|'); const e3subs = ' ^-------! '; const e1 = hot(' --a--^---b---# ', undefined, new Error('boo-hoo')); const e1subs = ' ^-------! '; const expected = ' ----x---# '; // throw const values = { x: ['b', 'f', 'j'], }; const result = e1.pipe(withLatestFrom(e2, e3)); expectObservable(result).toBe(expected, values, new Error('boo-hoo')); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should handle error with project argument', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e2 = hot(' --e--^-f---g---h----|'); const e2subs = ' ^-------! '; const e3 = hot(' --i--^-j---k---l----|'); const e3subs = ' ^-------! '; const e1 = hot(' --a--^---b---# ', undefined, new Error('boo-hoo')); const e1subs = ' ^-------! '; const expected = ' ----x---# '; // throw const values = { x: 'bfj', }; const project = (a: string, b: string, c: string) => a + b + c; const result = e1.pipe(withLatestFrom(e2, e3, project)); expectObservable(result).toBe(expected, values, new Error('boo-hoo')); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should handle merging with empty', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e2 = cold(' | '); const e2subs = ' (^!) '; const e3 = hot(' --i--^-j---k---l------|'); const e3subs = ' ^-------------! '; const e1 = hot(' --a--^---b---c---d-| '); const e1subs = ' ^-------------! '; const expected = ' --------------| '; const result = e1.pipe(withLatestFrom(e2, e3)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should handle merging with never', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const e2 = cold(' - '); const e2subs = ' ^-------------! '; const e3 = hot(' --i--^-j---k---l------|'); const e3subs = ' ^-------------! '; const e1 = hot(' --a--^---b---c---d-| '); const e1subs = ' ^-------------! '; const expected = ' --------------| '; const result = e1.pipe(withLatestFrom(e2, e3)); expectObservable(result).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should handle promises', (done) => { of(1) .pipe(delay(1), withLatestFrom(Promise.resolve(2), Promise.resolve(3))) .subscribe({ next(x: any) { expect(x).to.deep.equal([1, 2, 3]); }, complete: done, }); }); it('should handle arrays', () => { of(1) .pipe(delay(1), withLatestFrom([2, 3, 4], [4, 5, 6])) .subscribe((x: any) => { expect(x).to.deep.equal([1, 4, 6]); }); }); it('should handle lowercase-o observables', () => { of(1) .pipe(delay(1), withLatestFrom(lowerCaseO(2, 3, 4), lowerCaseO(4, 5, 6))) .subscribe((x: any) => { expect(x).to.deep.equal([1, 4, 6]); }); }); it('should work with synchronous observables', () => { const result: Array> = []; of(1, 2, 3) .pipe(withLatestFrom(of(4, 5))) .subscribe((x) => { result.push(x); }); expect(result.length).to.equal(3); expect(result[0]).to.deep.equal([1, 5]); expect(result[1]).to.deep.equal([2, 5]); expect(result[2]).to.deep.equal([3, 5]); }); }); rxjs-7.5.7/spec/operators/zip-legacy-spec.ts000066400000000000000000000132461431412030200210300ustar00rootroot00000000000000import { expect } from 'chai'; import { zip } from 'rxjs/operators'; import { from } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** * zip legacy still supports a mapping function, but it's deprecated */ describe('zip legacy', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should zip the provided observables', (done) => { const expected = ['a1', 'b2', 'c3']; let i = 0; from(['a', 'b', 'c']) .pipe(zip(from([1, 2, 3]), (a, b): string => a + b)) .subscribe({ next(x) { expect(x).to.equal(expected[i++]); }, complete: done, }); }); it('should work with selector throws', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-2---4----| '); const asubs = ' ^-------! '; const b = hot('---1-^--3----5----|'); const bsubs = ' ^-------! '; const expected = ' ---x----# '; const selector = (x: string, y: string) => { if (y === '5') { throw new Error('too bad'); } else { return x + y; } }; const observable = a.pipe(zip(b, selector)); expectObservable(observable).toBe(expected, { x: '23' }, new Error('too bad')); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with some data asymmetric 1', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1-3-5-7-9-x-y-z-w-u-|'); const asubs = ' ^-----------------! '; const b = hot('---1-^--2--4--6--8--0--| '); const bsubs = ' ^-----------------! '; const expected = ' ---a--b--c--d--e--| '; expectObservable( a.pipe( zip(b, (r1, r2) => { return r1 + r2; }) ) ).toBe(expected, { a: '12', b: '34', c: '56', d: '78', e: '90' }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with some data asymmetric 2', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^--2--4--6--8--0--| '); const asubs = ' ^-----------------! '; const b = hot('---1-^-1-3-5-7-9-x-y-z-w-u-|'); const bsubs = ' ^-----------------! '; const expected = ' ---a--b--c--d--e--| '; expectObservable( a.pipe( zip(b, (r1, r2) => { return r1 + r2; }) ) ).toBe(expected, { a: '21', b: '43', c: '65', d: '87', e: '09' }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with some data symmetric', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1-3-5-7-9------| '); const asubs = ' ^----------------! '; const b = hot('---1-^--2--4--6--8--0--|'); const bsubs = ' ^----------------! '; const expected = ' ---a--b--c--d--e-| '; expectObservable( a.pipe( zip(b, (r1, r2) => { return r1 + r2; }) ) ).toBe(expected, { a: '12', b: '34', c: '56', d: '78', e: '90' }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with n-ary symmetric selector', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1----4----|'); const asubs = ' ^---------! '; const b = hot('---1-^--2--5----| '); const bsubs = ' ^---------! '; const c = hot('---1-^---3---6-| '); const expected = ' ----x---y-| '; const observable = a.pipe( zip(b, c, (r0, r1, r2) => { return [r0, r1, r2]; }) ); expectObservable(observable).toBe(expected, { x: ['1', '2', '3'], y: ['4', '5', '6'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with n-ary symmetric array selector', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1----4----|'); const asubs = ' ^---------! '; const b = hot('---1-^--2--5----| '); const bsubs = ' ^---------! '; const c = hot('---1-^---3---6-| '); const expected = ' ----x---y-| '; const observable = a.pipe( zip(b, c, (r0, r1, r2) => { return [r0, r1, r2]; }) ); expectObservable(observable).toBe(expected, { x: ['1', '2', '3'], y: ['4', '5', '6'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should combine two observables and selector', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1---2---3---'); const asubs = ' ^'; const b = hot(' --4--5--6--7--8--'); const bsubs = ' ^'; const expected = '---x---y---z'; expectObservable( a.pipe( zip(b, (e1, e2) => { return e1 + e2; }) ) ).toBe(expected, { x: '14', y: '25', z: '36' }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); }); rxjs-7.5.7/spec/operators/zip-spec.ts000066400000000000000000000017321431412030200175630ustar00rootroot00000000000000import { zip } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {zip} */ describe('zip', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should work with non-empty observable and non-empty iterable selector that throws', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^--1--2--3--|'); const asubs = ' ^-----!'; const expected = '---x--#'; const b = [4, 5, 6]; const selector = function (x: string, y: number) { if (y === 5) { throw new Error('too bad'); } else { return x + y; } }; expectObservable(a.pipe(zip(b, selector))).toBe(expected, { x: '14' }, new Error('too bad')); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); }); rxjs-7.5.7/spec/operators/zipAll-spec.ts000066400000000000000000000725531431412030200202250ustar00rootroot00000000000000import { expect } from 'chai'; import { zipAll, mergeMap } from 'rxjs/operators'; import { queueScheduler, of, zip, scheduled } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {zipAll} */ describe('zipAll operator', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should combine paired events from two observables', () => { rxTestScheduler.run(({ hot, cold, expectObservable }) => { const x = cold(' -a-----b-|'); const y = cold(' --1-2-----'); const outer = hot('-x----y--------| ', { x: x, y: y }); const expected = ' -----------------A----B-|'; const result = outer.pipe(zipAll((a, b) => a + b)); expectObservable(result).toBe(expected, { A: 'a1', B: 'b2' }); }); }); it('should combine two observables', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1---2---3---'); const asubs = ' ^'; const b = hot(' --4--5--6--7--8--'); const bsubs = ' ^'; const expected = '---x---y---z'; const values = { x: ['1', '4'], y: ['2', '5'], z: ['3', '6'] }; expectObservable(of(a, b).pipe(zipAll())).toBe(expected, values); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should take all observables from the source and zip them', (done) => { const expected = ['a1', 'b2', 'c3']; let i = 0; of(of('a', 'b', 'c'), of(1, 2, 3)) .pipe(zipAll((a: string, b: number) => a + b)) .subscribe({ next(x) { expect(x).to.equal(expected[i++]); }, complete: done, }); }); it('should end once one observable completes and its buffer is empty', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b--c--| '); const e1subs = ' ^-----------! '; const e2 = hot(' ------d----e----f--------| '); const e2subs = ' ^-----------------! '; const e3 = hot(' --------h----i----j---------'); // doesn't complete const e3subs = ' ^-----------------! '; const expected = '--------x----y----(z|) '; // e1 complete and buffer empty const values = { x: ['a', 'd', 'h'], y: ['b', 'e', 'i'], z: ['c', 'f', 'j'], }; expectObservable(of(e1, e2, e3).pipe(zipAll())).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should end once one observable nexts and zips value from completed other observable whose buffer is empty', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b--c--| '); const e1subs = ' ^-----------! '; const e2 = hot(' ------d----e----f| '); const e2subs = ' ^----------------! '; const e3 = hot(' --------h----i----j-------'); // doesn't complete const e3subs = ' ^-----------------! '; const expected = '--------x----y----(z|) '; // e2 buffer empty and signaled complete const values = { x: ['a', 'd', 'h'], y: ['b', 'e', 'i'], z: ['c', 'f', 'j'], }; expectObservable(of(e1, e2, e3).pipe(zipAll())).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); describe('with iterables', () => { it('should zip them with values', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const myIterator = (function* () { for (let i = 0; i < 4; i++) { yield i; } })(); const e1 = hot(' ---a---b---c---d---|'); const e1subs = ' ^--------------!'; const expected = '---w---x---y---(z|)'; const values = { w: ['a', 0], x: ['b', 1], y: ['c', 2], z: ['d', 3], }; expectObservable(of(e1, myIterator).pipe(zipAll())).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete instantly with never observable and empty iterable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' (^!)'; const b: string[] = []; const expected = '|'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with empty observable and empty iterable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' |'); const asubs = ' (^!)'; const b: string[] = []; const expected = '|'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with empty observable and non-empty iterable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' |'); const asubs = ' (^!)'; const b = [1]; const expected = '|'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with non-empty observable and empty iterable', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^----a--|'); const asubs = ' (^!)'; const b: string[] = []; const expected = '|'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with never observable and non-empty iterable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' ^'; const b = [1]; const expected = '-'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with non-empty observable and non-empty iterable', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^----1--|'); const asubs = ' ^----! '; const b = [2]; const expected = '-----(x|)'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected, { x: ['1', 2] }); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with observable which raises error and non-empty iterable', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^----#'); const asubs = ' ^----!'; const b = [1]; const expected = '-----#'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with non-empty many observable and non-empty many iterable', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^--1--2--3--|'); const asubs = ' ^--------! '; const b = [4, 5, 6]; const expected = '---x--y--(z|)'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected, { x: ['1', 4], y: ['2', 5], z: ['3', 6] }); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with non-empty observable and non-empty iterable selector that throws', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^--1--2--3--|'); const asubs = ' ^-----!'; const b = [4, 5, 6]; const expected = '---x--#'; const selector = function (x: string, y: number) { if (y === 5) { throw new Error('too bad'); } else { return x + y; } }; expectObservable(of(a, b).pipe(zipAll(selector))).toBe(expected, { x: '14' }, new Error('too bad')); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); }); it('should combine two observables and selector', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1---2---3---'); const asubs = ' ^'; const b = hot(' --4--5--6--7--8--'); const bsubs = ' ^'; const expected = '---x---y---z'; expectObservable(of(a, b).pipe(zipAll((e1, e2) => e1 + e2))).toBe(expected, { x: '14', y: '25', z: '36' }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with n-ary symmetric', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1-^-1----4----|'); const asubs = ' ^---------! '; const b = hot(' ---1-^--2--5----| '); const bsubs = ' ^---------! '; const c = hot(' ---1-^---3---6-| '); const expected = ' ----x---y-| '; expectObservable(of(a, b, c).pipe(zipAll())).toBe(expected, { x: ['1', '2', '3'], y: ['4', '5', '6'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with n-ary symmetric selector', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1----4----|'); const asubs = ' ^---------! '; const b = hot('---1-^--2--5----| '); const bsubs = ' ^---------! '; const c = hot('---1-^---3---6-| '); const expected = ' ----x---y-| '; const observable = of(a, b, c).pipe(zipAll((r0, r1, r2) => [r0, r1, r2])); expectObservable(observable).toBe(expected, { x: ['1', '2', '3'], y: ['4', '5', '6'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with n-ary symmetric array selector', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1-^-1----4----|'); const asubs = ' ^---------! '; const b = hot(' ---1-^--2--5----| '); const bsubs = ' ^---------! '; const c = hot(' ---1-^---3---6-| '); const expected = ' ----x---y-| '; const observable = of(a, b, c).pipe(zipAll((r0, r1, r2) => [r0, r1, r2])); expectObservable(observable).toBe(expected, { x: ['1', '2', '3'], y: ['4', '5', '6'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with some data asymmetric 1', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1-3-5-7-9-x-y-z-w-u-|'); const asubs = ' ^-----------------! '; const b = hot('---1-^--2--4--6--8--0--| '); const bsubs = ' ^-----------------! '; const expected = ' ---a--b--c--d--e--| '; expectObservable(of(a, b).pipe(zipAll((r1, r2) => r1 + r2))).toBe(expected, { a: '12', b: '34', c: '56', d: '78', e: '90' }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with some data asymmetric 2', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^--2--4--6--8--0--| '); const asubs = ' ^-----------------! '; const b = hot('---1-^-1-3-5-7-9-x-y-z-w-u-|'); const bsubs = ' ^-----------------! '; const expected = ' ---a--b--c--d--e--| '; expectObservable(of(a, b).pipe(zipAll((r1, r2) => r1 + r2))).toBe(expected, { a: '21', b: '43', c: '65', d: '87', e: '09' }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with some data symmetric', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1-3-5-7-9------| '); const asubs = ' ^----------------! '; const b = hot('---1-^--2--4--6--8--0--|'); const bsubs = ' ^----------------! '; const expected = ' ---a--b--c--d--e-| '; expectObservable(of(a, b).pipe(zipAll((r1, r2) => r1 + r2))).toBe(expected, { a: '12', b: '34', c: '56', d: '78', e: '90' }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with selector throws', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-2---4----| '); const asubs = ' ^-------! '; const b = hot('---1-^--3----5----|'); const bsubs = ' ^-------! '; const expected = ' ---x----# '; const selector = function (x: string, y: string) { if (y === '5') { throw new Error('too bad'); } else { return x + y; } }; const observable = of(a, b).pipe(zipAll(selector)); expectObservable(observable).toBe(expected, { x: '23' }, new Error('too bad')); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); // TODO: This does not seem to belong in this battery of tests. it('should work with right completes first', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-2-----|'); const asubs = ' ^-----!'; const b = hot('---1-^--3--|'); const bsubs = ' ^-----!'; const expected = ' ---x--|'; expectObservable(zip(a, b)).toBe(expected, { x: ['2', '3'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should zip until one child terminates', (done) => { const expected = ['a1', 'b2']; let i = 0; of(of('a', 'b', 'c'), of(1, 2)) .pipe(zipAll((a: string, b: number) => a + b)) .subscribe({ next: (x) => { expect(x).to.equal(expected[i++]); }, complete: done, }); }); it('should handle a hot observable of observables', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' a---b---c---| '); const xsubs = ' --------^-----------!'; const y = cold(' d---e---f---| '); const ysubs = ' --------^-----------!'; const e1 = hot(' --x--y--| ', { x: x, y: y }); const e1subs = ' ^-------! '; const expected = '--------u---v---w---|'; const values = { u: ['a', 'd'], v: ['b', 'e'], w: ['c', 'f'], }; expectObservable(e1.pipe(zipAll())).toBe(expected, values); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should handle merging a hot observable of non-overlapped observables', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' a-b---------|'); const xsubs = ' ---------------------------^-----------!'; const y = cold(' c-d-e-f-|'); const ysubs = ' ---------------------------^-------!'; const z = cold(' g-h-i-j-k-|'); const zsubs = ' ---------------------------^---------!'; const e1 = hot(' --x------y--------z--------| ', { x: x, y: y, z: z }); const e1subs = ' ^--------------------------! '; const expected = '---------------------------u-v---------|'; const values = { u: ['a', 'c', 'g'], v: ['b', 'd', 'h'], }; expectObservable(e1.pipe(zipAll())).toBe(expected, values); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if inner observable raises error', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const x = cold(' a-b---------|'); const xsubs = ' ------------------------------^-------!'; const y = cold(' c-d-e-f-#'); const ysubs = ' ------------------------------^-------!'; const z = cold(' g-h-i-j-k-|'); const zsubs = ' ------------------------------^-------!'; const e1 = hot(' --x---------y--------z--------| ', { x: x, y: y, z: z }); const e1subs = ' ^-----------------------------! '; const expected = '------------------------------u-v-----#'; const expectedValues = { u: ['a', 'c', 'g'], v: ['b', 'd', 'h'], }; expectObservable(e1.pipe(zipAll())).toBe(expected, expectedValues); expectSubscriptions(x.subscriptions).toBe(xsubs); expectSubscriptions(y.subscriptions).toBe(ysubs); expectSubscriptions(z.subscriptions).toBe(zsubs); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should raise error if outer observable raises error', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const y = cold(' a-b---------|'); const z = cold(' c-d-e-f-|'); const e1 = hot(' --y---------z---#', { y: y, z: z }); const e1subs = ' ^---------------!'; const expected = '----------------#'; expectObservable(e1.pipe(zipAll())).toBe(expected); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should work with two nevers', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' ^'; const b = cold(' -'); const bsubs = ' ^'; const expected = '-'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with never and empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' (^!)'; const b = cold(' |'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with empty and never', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' |'); const asubs = ' (^!)'; const b = cold(' -'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with empty and empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' |'); const asubs = ' (^!)'; const b = cold(' |'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with empty and non-empty', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' |'); const asubs = ' (^!)'; const b = hot(' ---1--|'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with non-empty and empty', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = hot(' ---1--|'); const asubs = ' (^!)'; const b = cold(' |'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with never and non-empty', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' ^'; const b = hot(' ---1--|'); const bsubs = ' ^-----!'; const expected = '-'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with non-empty and never', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = hot(' ---1--|'); const asubs = ' ^-----!'; const b = cold(' -'); const bsubs = ' ^'; const expected = '-'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should combine a source with a second', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1---2---3---'); const asubs = ' ^'; const b = hot(' --4--5--6--7--8--'); const bsubs = ' ^'; const expected = '---x---y---z'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected, { x: ['1', '4'], y: ['2', '5'], z: ['3', '6'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with empty and error', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' |'); const asubs = ' (^!)'; const b = hot(' ------#', undefined, 'too bad'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error and empty', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = hot(' ------#', undefined, 'too bad'); const asubs = ' (^!)'; const b = cold(' |'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ----------|'); const asubs = ' ^-----! '; const b = hot(' ------# '); const bsubs = ' ^-----! '; const expected = '------# '; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with never and error', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' ^-----!'; const b = hot(' ------#'); const bsubs = ' ^-----!'; const expected = '------#'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error and never', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = hot(' ------#'); const asubs = ' ^-----!'; const b = cold(' -'); const bsubs = ' ^-----!'; const expected = '------#'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error and error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ------#', undefined, 'too bad'); const asubs = ' ^-----!'; const b = hot(' ----------#', undefined, 'too bad 2'); const bsubs = ' ^-----!'; const expected = '------#'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected, null, 'too bad'); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with two sources that eventually raise errors', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' --w-----#----', { w: 1 }, 'too bad'); const asubs = ' ^-------!'; const b = hot(' -----z-----#-', { z: 2 }, 'too bad 2'); const bsubs = ' ^-------!'; const expected = '-----x--#'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected, { x: [1, 2] }, 'too bad'); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with two sources that eventually raise errors (swapped)', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' -----z-----#-', { z: 2 }, 'too bad 2'); const asubs = ' ^-------!'; const b = hot(' --w-----#', { w: 1 }, 'too bad'); const bsubs = ' ^-------!'; const expected = '-----x--#'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected, { x: [2, 1] }, 'too bad'); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error and some', () => { rxTestScheduler.run(({ hot, cold, expectObservable, expectSubscriptions }) => { const a = cold(' #'); const asubs = ' (^!)'; const b = hot(' --1--2--3--'); const bsubs = ' (^!)'; const expected = '#'; expectObservable(of(a, b).pipe(zipAll())).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should combine two immediately-scheduled observables', (done) => { rxTestScheduler.run(() => { const a = scheduled([1, 2, 3], queueScheduler); const b = scheduled([4, 5, 6, 7, 8], queueScheduler); const r = [ [1, 4], [2, 5], [3, 6], ]; let i = 0; const result = scheduled([a, b], queueScheduler).pipe(zipAll()); result.subscribe({ next(vals) { expect(vals).to.deep.equal(r[i++]); }, complete: done, }); }); }); it('should combine a source with an immediately-scheduled source', (done) => { const a = scheduled([1, 2, 3], queueScheduler); const b = of(4, 5, 6, 7, 8); const r = [ [1, 4], [2, 5], [3, 6], ]; let i = 0; const result = scheduled([a, b], queueScheduler).pipe(zipAll()); result.subscribe({ next(vals) { expect(vals).to.deep.equal(r[i++]); }, complete: done, }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1---2---3---|'); const unsub = ' ---------!'; const asubs = ' ^--------!'; const b = hot(' --4--5--6--7--8--|'); const bsubs = ' ^--------!'; const expected = '---x---y--'; const values = { x: ['1', '4'], y: ['2', '5'] }; const r = of(a, b).pipe( mergeMap((x) => of(x)), zipAll(), mergeMap((x) => of(x)) ); expectObservable(r, unsub).toBe(expected, values); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should complete when empty source', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const source = hot('|'); const expected = ' |'; expectObservable(source.pipe(zipAll())).toBe(expected); }); }); }); rxjs-7.5.7/spec/operators/zipWith-spec.ts000066400000000000000000000430701431412030200204200ustar00rootroot00000000000000import { expect } from 'chai'; import { zipWith, mergeMap } from 'rxjs/operators'; import { queueScheduler, of, scheduled } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {zipWith} */ describe('zipWith', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should combine a source with a second', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1---2---3-----'); const asubs = ' ^'; const b = hot(' --4--5--6--7--8--'); const bsubs = ' ^'; const expected = '---x---y---z-----'; expectObservable(a.pipe(zipWith(b))).toBe(expected, { x: ['1', '4'], y: ['2', '5'], z: ['3', '6'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should end once one observable completes and its buffer is empty', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b--c--| '); const e1subs = ' ^-----------! '; const e2 = hot(' ------d----e----f--------| '); const e2subs = ' ^-----------------! '; const e3 = hot(' --------h----i----j---------'); // doesn't complete const e3subs = ' ^-----------------! '; const expected = '--------x----y----(z|) '; // e1 complete and buffer empty const values = { x: ['a', 'd', 'h'], y: ['b', 'e', 'i'], z: ['c', 'f', 'j'], }; expectObservable(e1.pipe(zipWith(e2, e3))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); it('should end once one observable nexts and zips value from completed other observable whose buffer is empty', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const e1 = hot(' ---a--b--c--| '); const e1subs = ' ^-----------! '; const e2 = hot(' ------d----e----f| '); const e2subs = ' ^----------------! '; const e3 = hot(' --------h----i----j-------'); // doesn't complete const e3subs = ' ^-----------------! '; const expected = '--------x----y----(z|) '; // e2 buffer empty and signaled complete const values = { x: ['a', 'd', 'h'], y: ['b', 'e', 'i'], z: ['c', 'f', 'j'], }; expectObservable(e1.pipe(zipWith(e2, e3))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); expectSubscriptions(e2.subscriptions).toBe(e2subs); expectSubscriptions(e3.subscriptions).toBe(e3subs); }); }); describe('with iterables', () => { it('should zip them with values', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const myIterator = (function* () { for (let i = 0; i < 4; i++) { yield i; } })(); const e1 = hot(' ---a---b---c---d---|'); const e1subs = ' ^--------------!'; const expected = '---w---x---y---(z|)'; const values = { w: ['a', 0], x: ['b', 1], y: ['c', 2], z: ['d', 3], }; expectObservable(e1.pipe(zipWith(myIterator))).toBe(expected, values); expectSubscriptions(e1.subscriptions).toBe(e1subs); }); }); it('should complete instantly for an empty iterable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' (^!)'; const expected = '|'; const b: string[] = []; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with empty observable and empty iterable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' |'); const asubs = ' (^!)'; const expected = '|'; const b: string[] = []; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with empty observable and non-empty iterable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' |'); const asubs = ' (^!)'; const expected = '|'; const b = [1]; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should complete instantly with non-empty observable and empty iterable', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---^----a--|'); const asubs = ' (^!)'; const b: string[] = []; const expected = ' |'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with never observable and non-empty iterable', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' ^'; const expected = '-'; const b = [1]; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with non-empty observable and non-empty iterable', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^----1--|'); const asubs = ' ^----! '; const expected = '-----(x|)'; const b = [2]; expectObservable(a.pipe(zipWith(b))).toBe(expected, { x: ['1', 2] }); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with observable which raises error and non-empty iterable', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^----#'); const asubs = ' ^----!'; const expected = '-----#'; const b = [1]; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); it('should work with non-empty many observable and non-empty many iterable', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---^--1--2--3--|'); const asubs = ' ^--------! '; const expected = '---x--y--(z|)'; const b = [4, 5, 6]; expectObservable(a.pipe(zipWith(b))).toBe(expected, { x: ['1', 4], y: ['2', 5], z: ['3', 6] }); expectSubscriptions(a.subscriptions).toBe(asubs); }); }); }); it('should work with n-ary symmetric', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-1----4----|'); const asubs = ' ^---------! '; const b = hot('---1-^--2--5----| '); const bsubs = ' ^---------! '; const c = hot('---1-^---3---6-| '); const expected = ' ----x---y-| '; expectObservable(a.pipe(zipWith(b, c))).toBe(expected, { x: ['1', '2', '3'], y: ['4', '5', '6'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with right completes first', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot('---1-^-2-----|'); const asubs = ' ^-----!'; const b = hot('---1-^--3--|'); const bsubs = ' ^-----!'; const expected = ' ---x--|'; expectObservable(a.pipe(zipWith(b))).toBe(expected, { x: ['2', '3'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with two nevers', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' ^'; const b = cold(' -'); const bsubs = ' ^'; const expected = '-'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with never and empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' (^!)'; const b = cold(' |'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with empty and never', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' |'); const asubs = ' (^!)'; const b = cold(' -'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with empty and empty', () => { rxTestScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const a = cold(' |'); const asubs = ' (^!)'; const b = cold(' |'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with empty and non-empty', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' |'); const asubs = ' (^!)'; const b = hot(' ---1--|'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with non-empty and empty', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1--|'); const asubs = ' (^!)'; const b = cold(' |'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with never and non-empty', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' -'); const asubs = ' ^'; const b = hot(' ---1--|'); const bsubs = ' ^-----!'; const expected = '-'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with non-empty and never', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1--|'); const asubs = ' ^-----!'; const b = cold(' -'); const bsubs = ' ^'; const expected = '-'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with empty and error', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' |'); const asubs = ' (^!)'; const b = hot(' ------#', undefined, 'too bad'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error and empty', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = hot(' ------#', undefined, 'too bad'); const asubs = ' (^!)'; const b = cold(' |'); const bsubs = ' (^!)'; const expected = '|'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ----------|'); const asubs = ' ^-----! '; const b = hot(' ------# '); const bsubs = ' ^-----! '; const expected = '------# '; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with never and error', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' -------'); const asubs = ' ^-----!'; const b = hot(' ------#'); const bsubs = ' ^-----!'; const expected = '------#'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error and never', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = hot(' ------#'); const asubs = ' ^-----!'; const b = cold(' -------'); const bsubs = ' ^-----!'; const expected = '------#'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error and error', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ------#', undefined, 'too bad'); const asubs = ' ^-----!'; const b = hot(' ----------#', undefined, 'too bad 2'); const bsubs = ' ^-----!'; const expected = '------#'; expectObservable(a.pipe(zipWith(b))).toBe(expected, null, 'too bad'); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with two sources that eventually raise errors', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' --w-----#----', { w: 1 }, 'too bad'); const asubs = ' ^-------!'; const b = hot(' -----z-----#-', { z: 2 }, 'too bad 2'); const bsubs = ' ^-------!'; const expected = '-----x--#'; expectObservable(a.pipe(zipWith(b))).toBe(expected, { x: [1, 2] }, 'too bad'); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with two sources that eventually raise errors (swapped)', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' -----z-----#-', { z: 2 }, 'too bad 2'); const asubs = ' ^-------!'; const b = hot(' --w-----#----', { w: 1 }, 'too bad'); const bsubs = ' ^-------!'; const expected = '-----x--#'; expectObservable(a.pipe(zipWith(b))).toBe(expected, { x: [2, 1] }, 'too bad'); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should work with error and some', () => { rxTestScheduler.run(({ cold, hot, expectObservable, expectSubscriptions }) => { const a = cold(' #'); const asubs = ' (^!)'; const b = hot(' --1--2--3--'); const bsubs = ' (^!)'; const expected = '#'; expectObservable(a.pipe(zipWith(b))).toBe(expected); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); it('should combine an immediately-scheduled source with an immediately-scheduled second', (done) => { const a = scheduled([1, 2, 3], queueScheduler); const b = scheduled([4, 5, 6, 7, 8], queueScheduler); const r = [ [1, 4], [2, 5], [3, 6], ]; let i = 0; a.pipe(zipWith(b)).subscribe({ next(vals) { expect(vals).to.deep.equal(r[i++]); }, complete: done, }); }); it('should not break unsubscription chain when unsubscribed explicitly', () => { rxTestScheduler.run(({ hot, expectObservable, expectSubscriptions }) => { const a = hot(' ---1---2---3---|'); const unsub = ' ---------!'; const asubs = ' ^--------!'; const b = hot(' --4--5--6--7--8--|'); const bsubs = ' ^--------!'; const expected = '---x---y--'; const r = a.pipe( mergeMap((x) => of(x)), zipWith(b), mergeMap((x) => of(x)) ); expectObservable(r, unsub).toBe(expected, { x: ['1', '4'], y: ['2', '5'] }); expectSubscriptions(a.subscriptions).toBe(asubs); expectSubscriptions(b.subscriptions).toBe(bsubs); }); }); }); rxjs-7.5.7/spec/scheduled/000077500000000000000000000000001431412030200154005ustar00rootroot00000000000000rxjs-7.5.7/spec/scheduled/scheduled-spec.ts000066400000000000000000000037311431412030200206440ustar00rootroot00000000000000import { scheduled, of } from 'rxjs'; import { TestScheduler } from 'rxjs/testing'; import { lowerCaseO } from '../helpers/test-helper'; import { observableMatcher } from '../helpers/observableMatcher'; import { expect } from 'chai'; describe('scheduled', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should schedule a sync observable', () => { const input = of('a', 'b', 'c'); testScheduler.run(({ expectObservable }) => { expectObservable(scheduled(input, testScheduler)).toBe('(abc|)'); }); }); it('should schedule an array', () => { const input = ['a', 'b', 'c']; testScheduler.run(({ expectObservable }) => { expectObservable(scheduled(input, testScheduler)).toBe('(abc|)'); }); }); it('should schedule an iterable', () => { const input = 'abc'; // strings are iterables testScheduler.run(({ expectObservable }) => { expectObservable(scheduled(input, testScheduler)).toBe('(abc|)'); }); }); it('should schedule an observable-like', () => { const input = lowerCaseO('a', 'b', 'c'); // strings are iterables testScheduler.run(({ expectObservable }) => { expectObservable(scheduled(input, testScheduler)).toBe('(abc|)'); }); }); it('should schedule a promise', (done) => { const results: any[] = []; const input = Promise.resolve('x'); // strings are iterables scheduled(input, testScheduler).subscribe({ next(value) { results.push(value); }, complete() { results.push('done'); }, }); expect(results).to.deep.equal([]); // Promises force async, so we can't schedule synchronously, no matter what. testScheduler.flush(); expect(results).to.deep.equal([]); Promise.resolve().then(() => { // NOW it should work, as the other promise should have resolved. testScheduler.flush(); expect(results).to.deep.equal(['x', 'done']); done(); }); }); }); rxjs-7.5.7/spec/schedulers/000077500000000000000000000000001431412030200156015ustar00rootroot00000000000000rxjs-7.5.7/spec/schedulers/AnimationFrameScheduler-spec.ts000066400000000000000000000174551431412030200236460ustar00rootroot00000000000000import { expect } from 'chai'; import * as sinon from 'sinon'; import { animationFrameScheduler, Subscription, merge } from 'rxjs'; import { delay } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; import { animationFrameProvider } from 'rxjs/internal/scheduler/animationFrameProvider'; import { intervalProvider } from 'rxjs/internal/scheduler/intervalProvider'; const animationFrame = animationFrameScheduler; /** @test {Scheduler} */ describe('Scheduler.animationFrame', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should exist', () => { expect(animationFrame).exist; }); it('should act like the async scheduler if delay > 0', () => { testScheduler.run(({ animate, cold, expectObservable, time }) => { animate(' ----------x--'); const a = cold(' a '); const ta = time(' ----| '); const b = cold(' b '); const tb = time(' --------| '); const expected = '----a---b----'; const result = merge( a.pipe(delay(ta, animationFrame)), b.pipe(delay(tb, animationFrame)) ); expectObservable(result).toBe(expected); }); }); it('should cancel animationFrame actions when delay > 0', () => { testScheduler.run(({ animate, cold, expectObservable, flush, time }) => { const requestSpy = sinon.spy(animationFrameProvider, 'requestAnimationFrame'); const setSpy = sinon.spy(intervalProvider, 'setInterval'); const clearSpy = sinon.spy(intervalProvider, 'clearInterval'); animate(' ----------x--'); const a = cold(' a '); const ta = time(' ----| '); const subs = ' ^-! '; const expected = '-------------'; const result = merge( a.pipe(delay(ta, animationFrame)) ); expectObservable(result, subs).toBe(expected); flush(); expect(requestSpy).to.have.not.been.called; expect(setSpy).to.have.been.calledOnce; expect(clearSpy).to.have.been.calledOnce; requestSpy.restore(); setSpy.restore(); clearSpy.restore(); }); }); it('should schedule an action to happen later', (done) => { let actionHappened = false; animationFrame.schedule(() => { actionHappened = true; done(); }); if (actionHappened) { done(new Error('Scheduled action happened synchronously')); } }); it('should execute recursively scheduled actions in separate asynchronous contexts', (done) => { let syncExec1 = true; let syncExec2 = true; animationFrame.schedule(function (index) { if (index === 0) { this.schedule(1); animationFrame.schedule(() => { syncExec1 = false; }); } else if (index === 1) { this.schedule(2); animationFrame.schedule(() => { syncExec2 = false; }); } else if (index === 2) { this.schedule(3); } else if (index === 3) { if (!syncExec1 && !syncExec2) { done(); } else { done(new Error('Execution happened synchronously.')); } } }, 0, 0); }); it('should cancel the animation frame if all scheduled actions unsubscribe before it executes', (done) => { let animationFrameExec1 = false; let animationFrameExec2 = false; const action1 = animationFrame.schedule(() => { animationFrameExec1 = true; }); const action2 = animationFrame.schedule(() => { animationFrameExec2 = true; }); expect(animationFrame._scheduled).to.exist; expect(animationFrame.actions.length).to.equal(2); action1.unsubscribe(); action2.unsubscribe(); expect(animationFrame.actions.length).to.equal(0); expect(animationFrame._scheduled).to.equal(undefined); animationFrame.schedule(() => { expect(animationFrameExec1).to.equal(false); expect(animationFrameExec2).to.equal(false); done(); }); }); it('should execute the rest of the scheduled actions if the first action is canceled', (done) => { let actionHappened = false; let secondSubscription: Subscription | null = null; const firstSubscription = animationFrame.schedule(() => { actionHappened = true; if (secondSubscription) { secondSubscription.unsubscribe(); } done(new Error('The first action should not have executed.')); }); secondSubscription = animationFrame.schedule(() => { if (!actionHappened) { done(); } }); if (actionHappened) { done(new Error('Scheduled action happened synchronously')); } else { firstSubscription.unsubscribe(); } }); it('should not execute rescheduled actions when flushing', (done) => { let flushCount = 0; let scheduledIndices: number[] = []; let originalFlush = animationFrame.flush; animationFrame.flush = (...args) => { ++flushCount; originalFlush.apply(animationFrame, args); if (flushCount === 2) { animationFrame.flush = originalFlush; try { expect(scheduledIndices).to.deep.equal([0, 1]); done(); } catch (error) { done(error); } } }; animationFrame.schedule(function (index) { if (flushCount < 2) { this.schedule(index! + 1); scheduledIndices.push(index! + 1); } }, 0, 0); scheduledIndices.push(0); }); it('should execute actions scheduled when flushing in a subsequent flush', (done) => { const sandbox = sinon.createSandbox(); const stubFlush = (sandbox.stub(animationFrameScheduler, 'flush')).callThrough(); let a: Subscription; let b: Subscription; let c: Subscription; a = animationFrameScheduler.schedule(() => { expect(stubFlush).to.have.callCount(1); c = animationFrameScheduler.schedule(() => { expect(stubFlush).to.have.callCount(2); sandbox.restore(); done(); }); }); b = animationFrameScheduler.schedule(() => { expect(stubFlush).to.have.callCount(1); }); }); it('should execute actions scheduled when flushing in a subsequent flush when some actions are unsubscribed', (done) => { const sandbox = sinon.createSandbox(); const stubFlush = (sandbox.stub(animationFrameScheduler, 'flush')).callThrough(); let a: Subscription; let b: Subscription; let c: Subscription; a = animationFrameScheduler.schedule(() => { expect(stubFlush).to.have.callCount(1); c = animationFrameScheduler.schedule(() => { expect(stubFlush).to.have.callCount(2); sandbox.restore(); done(); }); b.unsubscribe(); }); b = animationFrameScheduler.schedule(() => { done(new Error('Unexpected execution of b')); }); }); it('should properly cancel an unnecessary flush', (done) => { const sandbox = sinon.createSandbox(); const cancelAnimationFrameStub = sandbox.stub(animationFrameProvider, 'cancelAnimationFrame').callThrough(); let a: Subscription; let b: Subscription; let c: Subscription; a = animationFrameScheduler.schedule(() => { expect(animationFrameScheduler.actions).to.have.length(1); c = animationFrameScheduler.schedule(() => { done(new Error('Unexpected execution of c')); }); expect(animationFrameScheduler.actions).to.have.length(2); // What we're testing here is that the unsubscription of action c effects // the cancellation of the animation frame in a scenario in which the // actions queue is not empty - it contains action b. c.unsubscribe(); expect(animationFrameScheduler.actions).to.have.length(1); expect(cancelAnimationFrameStub).to.have.callCount(1); }); b = animationFrameScheduler.schedule(() => { sandbox.restore(); done(); }); }); }); rxjs-7.5.7/spec/schedulers/AsapScheduler-spec.ts000066400000000000000000000226421431412030200216320ustar00rootroot00000000000000import { expect } from 'chai'; import * as sinon from 'sinon'; import { asapScheduler, Subscription, SchedulerAction, merge } from 'rxjs'; import { delay } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; import { immediateProvider } from 'rxjs/internal/scheduler/immediateProvider'; import { intervalProvider } from 'rxjs/internal/scheduler/intervalProvider'; const asap = asapScheduler; /** @test {Scheduler} */ describe('Scheduler.asap', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should exist', () => { expect(asap).exist; }); it('should act like the async scheduler if delay > 0', () => { testScheduler.run(({ cold, expectObservable, time }) => { const a = cold(' a '); const ta = time(' ----| '); const b = cold(' b '); const tb = time(' --------| '); const expected = '----a---b----'; const result = merge( a.pipe(delay(ta, asap)), b.pipe(delay(tb, asap)) ); expectObservable(result).toBe(expected); }); }); it('should cancel asap actions when delay > 0', () => { testScheduler.run(({ cold, expectObservable, flush, time }) => { const sandbox = sinon.createSandbox(); const setImmediateSpy = sandbox.spy(immediateProvider, 'setImmediate'); const setSpy = sandbox.spy(intervalProvider, 'setInterval'); const clearSpy = sandbox.spy(intervalProvider, 'clearInterval'); const a = cold(' a '); const ta = time(' ----| '); const subs = ' ^-! '; const expected = '-------------'; const result = merge( a.pipe(delay(ta, asap)) ); expectObservable(result, subs).toBe(expected); flush(); expect(setImmediateSpy).to.have.not.been.called; expect(setSpy).to.have.been.calledOnce; expect(clearSpy).to.have.been.calledOnce; sandbox.restore(); }); }); it('should reuse the interval for recursively scheduled actions with the same delay', () => { const sandbox = sinon.createSandbox(); const fakeTimer = sandbox.useFakeTimers(); // callThrough is missing from the declarations installed by the typings tool in stable const stubSetInterval = ( sandbox.stub(global, 'setInterval')).callThrough(); const period = 50; const state = { index: 0, period }; type State = typeof state; function dispatch(this: SchedulerAction, state: State): void { state.index += 1; if (state.index < 3) { this.schedule(state, state.period); } } asap.schedule(dispatch as any, period, state); expect(state).to.have.property('index', 0); expect(stubSetInterval).to.have.property('callCount', 1); fakeTimer.tick(period); expect(state).to.have.property('index', 1); expect(stubSetInterval).to.have.property('callCount', 1); fakeTimer.tick(period); expect(state).to.have.property('index', 2); expect(stubSetInterval).to.have.property('callCount', 1); sandbox.restore(); }); it('should not reuse the interval for recursively scheduled actions with a different delay', () => { const sandbox = sinon.createSandbox(); const fakeTimer = sandbox.useFakeTimers(); // callThrough is missing from the declarations installed by the typings tool in stable const stubSetInterval = ( sandbox.stub(global, 'setInterval')).callThrough(); const period = 50; const state = { index: 0, period }; type State = typeof state; function dispatch(this: SchedulerAction, state: State): void { state.index += 1; state.period -= 1; if (state.index < 3) { this.schedule(state, state.period); } } asap.schedule(dispatch as any, period, state); expect(state).to.have.property('index', 0); expect(stubSetInterval).to.have.property('callCount', 1); fakeTimer.tick(period); expect(state).to.have.property('index', 1); expect(stubSetInterval).to.have.property('callCount', 2); fakeTimer.tick(period); expect(state).to.have.property('index', 2); expect(stubSetInterval).to.have.property('callCount', 3); sandbox.restore(); }); it('should schedule an action to happen later', (done) => { let actionHappened = false; asap.schedule(() => { actionHappened = true; done(); }); if (actionHappened) { done(new Error('Scheduled action happened synchronously')); } }); it('should execute recursively scheduled actions in separate asynchronous contexts', (done) => { let syncExec1 = true; let syncExec2 = true; asap.schedule(function (index) { if (index === 0) { this.schedule(1); asap.schedule(() => { syncExec1 = false; }); } else if (index === 1) { this.schedule(2); asap.schedule(() => { syncExec2 = false; }); } else if (index === 2) { this.schedule(3); } else if (index === 3) { if (!syncExec1 && !syncExec2) { done(); } else { done(new Error('Execution happened synchronously.')); } } }, 0, 0); }); it('should cancel the setImmediate if all scheduled actions unsubscribe before it executes', (done) => { let asapExec1 = false; let asapExec2 = false; const action1 = asap.schedule(() => { asapExec1 = true; }); const action2 = asap.schedule(() => { asapExec2 = true; }); expect(asap._scheduled).to.exist; expect(asap.actions.length).to.equal(2); action1.unsubscribe(); action2.unsubscribe(); expect(asap.actions.length).to.equal(0); expect(asap._scheduled).to.equal(undefined); asap.schedule(() => { expect(asapExec1).to.equal(false); expect(asapExec2).to.equal(false); done(); }); }); it('should execute the rest of the scheduled actions if the first action is canceled', (done) => { let actionHappened = false; let secondSubscription: Subscription | null = null; const firstSubscription = asap.schedule(() => { actionHappened = true; if (secondSubscription) { secondSubscription.unsubscribe(); } done(new Error('The first action should not have executed.')); }); secondSubscription = asap.schedule(() => { if (!actionHappened) { done(); } }); if (actionHappened) { done(new Error('Scheduled action happened synchronously')); } else { firstSubscription.unsubscribe(); } }); it('should not execute rescheduled actions when flushing', (done) => { let flushCount = 0; let scheduledIndices: number[] = []; let originalFlush = asap.flush; asap.flush = (...args) => { ++flushCount; originalFlush.apply(asap, args); if (flushCount === 2) { asap.flush = originalFlush; try { expect(scheduledIndices).to.deep.equal([0, 1]); done(); } catch (error) { done(error); } } }; asap.schedule(function (index) { if (flushCount < 2) { this.schedule(index! + 1); scheduledIndices.push(index! + 1); } }, 0, 0); scheduledIndices.push(0); }); it('should execute actions scheduled when flushing in a subsequent flush', (done) => { const sandbox = sinon.createSandbox(); const stubFlush = (sandbox.stub(asapScheduler, 'flush')).callThrough(); let a: Subscription; let b: Subscription; let c: Subscription; a = asapScheduler.schedule(() => { expect(stubFlush).to.have.callCount(1); c = asapScheduler.schedule(() => { expect(stubFlush).to.have.callCount(2); sandbox.restore(); done(); }); }); b = asapScheduler.schedule(() => { expect(stubFlush).to.have.callCount(1); }); }); it('should execute actions scheduled when flushing in a subsequent flush when some actions are unsubscribed', (done) => { const sandbox = sinon.createSandbox(); const stubFlush = (sandbox.stub(asapScheduler, 'flush')).callThrough(); let a: Subscription; let b: Subscription; let c: Subscription; a = asapScheduler.schedule(() => { expect(stubFlush).to.have.callCount(1); c = asapScheduler.schedule(() => { expect(stubFlush).to.have.callCount(2); sandbox.restore(); done(); }); b.unsubscribe(); }); b = asapScheduler.schedule(() => { done(new Error('Unexpected execution of b')); }); }); it('should properly cancel an unnecessary flush', (done) => { const sandbox = sinon.createSandbox(); const clearImmediateStub = sandbox.stub(immediateProvider, 'clearImmediate').callThrough(); let a: Subscription; let b: Subscription; let c: Subscription; a = asapScheduler.schedule(() => { expect(asapScheduler.actions).to.have.length(1); c = asapScheduler.schedule(() => { done(new Error('Unexpected execution of c')); }); expect(asapScheduler.actions).to.have.length(2); // What we're testing here is that the unsubscription of action c effects // the cancellation of the microtask in a scenario in which the actions // queue is not empty - it contains action b. c.unsubscribe(); expect(asapScheduler.actions).to.have.length(1); expect(clearImmediateStub).to.have.callCount(1); }); b = asapScheduler.schedule(() => { sandbox.restore(); done(); }); }); }); rxjs-7.5.7/spec/schedulers/QueueScheduler-spec.ts000066400000000000000000000045671431412030200220400ustar00rootroot00000000000000import { expect } from 'chai'; import * as sinon from 'sinon'; import { queueScheduler, Subscription, merge } from 'rxjs'; import { delay } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; const queue = queueScheduler; /** @test {Scheduler} */ describe('Scheduler.queue', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should act like the async scheduler if delay > 0', () => { testScheduler.run(({ cold, expectObservable, time }) => { const a = cold(' a '); const ta = time(' ----| '); const b = cold(' b '); const tb = time(' --------| '); const expected = '----a---b----'; const result = merge( a.pipe(delay(ta, queue)), b.pipe(delay(tb, queue)) ); expectObservable(result).toBe(expected); }); }); it('should switch from synchronous to asynchronous at will', () => { const sandbox = sinon.createSandbox(); const fakeTimer = sandbox.useFakeTimers(); let asyncExec = false; let state: Array = []; queue.schedule(function (index) { state.push(index!); if (index === 0) { this.schedule(1, 100); } else if (index === 1) { asyncExec = true; this.schedule(2, 0); } }, 0, 0); expect(asyncExec).to.be.false; expect(state).to.be.deep.equal([0]); fakeTimer.tick(100); expect(asyncExec).to.be.true; expect(state).to.be.deep.equal([0, 1, 2]); sandbox.restore(); }); it('should unsubscribe the rest of the scheduled actions if an action throws an error', () => { const actions: Subscription[] = []; let action2Exec = false; let action3Exec = false; let errorValue: any = undefined; try { queue.schedule(() => { actions.push( queue.schedule(() => { throw new Error('oops'); }), queue.schedule(() => { action2Exec = true; }), queue.schedule(() => { action3Exec = true; }) ); }); } catch (e) { errorValue = e; } expect(actions.every((action) => action.closed)).to.be.true; expect(action2Exec).to.be.false; expect(action3Exec).to.be.false; expect(errorValue).exist; expect(errorValue.message).to.equal('oops'); }); }); rxjs-7.5.7/spec/schedulers/TestScheduler-spec.ts000066400000000000000000000723621431412030200216710ustar00rootroot00000000000000import { expect } from 'chai'; import { hot, cold, expectObservable, expectSubscriptions, time } from '../helpers/marble-testing'; import { TestScheduler } from 'rxjs/testing'; import { Observable, NEVER, EMPTY, Subject, of, merge, animationFrameScheduler, asapScheduler, asyncScheduler, interval } from 'rxjs'; import { delay, debounceTime, concatMap, mergeMap, mapTo, take } from 'rxjs/operators'; import { nextNotification, COMPLETE_NOTIFICATION, errorNotification } from 'rxjs/internal/NotificationFactories'; import { animationFrameProvider } from 'rxjs/internal/scheduler/animationFrameProvider'; import { immediateProvider } from 'rxjs/internal/scheduler/immediateProvider'; import { intervalProvider } from 'rxjs/internal/scheduler/intervalProvider'; import { timeoutProvider } from 'rxjs/internal/scheduler/timeoutProvider'; declare const rxTestScheduler: TestScheduler; /** @test {TestScheduler} */ describe('TestScheduler', () => { it('should exist', () => { expect(TestScheduler).exist; expect(TestScheduler).to.be.a('function'); }); it('should have frameTimeFactor set initially', () => { expect(TestScheduler.frameTimeFactor).to.equal(10); }); describe('parseMarbles()', () => { it('should parse a marble string into a series of notifications and types', () => { const result = TestScheduler.parseMarbles('-------a---b---|', { a: 'A', b: 'B' }); expect(result).deep.equal([ { frame: 70, notification: nextNotification('A') }, { frame: 110, notification: nextNotification('B') }, { frame: 150, notification: COMPLETE_NOTIFICATION } ]); }); it('should parse a marble string, allowing spaces too', () => { const result = TestScheduler.parseMarbles('--a--b--| ', { a: 'A', b: 'B' }); expect(result).deep.equal([ { frame: 20, notification: nextNotification('A') }, { frame: 50, notification: nextNotification('B') }, { frame: 80, notification: COMPLETE_NOTIFICATION } ]); }); it('should parse a marble string with a subscription point', () => { const result = TestScheduler.parseMarbles('---^---a---b---|', { a: 'A', b: 'B' }); expect(result).deep.equal([ { frame: 40, notification: nextNotification('A') }, { frame: 80, notification: nextNotification('B') }, { frame: 120, notification: COMPLETE_NOTIFICATION } ]); }); it('should parse a marble string with an error', () => { const result = TestScheduler.parseMarbles('-------a---b---#', { a: 'A', b: 'B' }, 'omg error!'); expect(result).deep.equal([ { frame: 70, notification: nextNotification('A') }, { frame: 110, notification: nextNotification('B') }, { frame: 150, notification: errorNotification('omg error!') } ]); }); it('should default in the letter for the value if no value hash was passed', () => { const result = TestScheduler.parseMarbles('--a--b--c--'); expect(result).deep.equal([ { frame: 20, notification: nextNotification('a') }, { frame: 50, notification: nextNotification('b') }, { frame: 80, notification: nextNotification('c') }, ]); }); it('should handle grouped values', () => { const result = TestScheduler.parseMarbles('---(abc)---'); expect(result).deep.equal([ { frame: 30, notification: nextNotification('a') }, { frame: 30, notification: nextNotification('b') }, { frame: 30, notification: nextNotification('c') } ]); }); it('should ignore whitespace when runMode=true', () => { const runMode = true; const result = TestScheduler.parseMarbles(' -a - b - c | ', { a: 'A', b: 'B', c: 'C' }, undefined, undefined, runMode); expect(result).deep.equal([ { frame: 10, notification: nextNotification('A') }, { frame: 30, notification: nextNotification('B') }, { frame: 50, notification: nextNotification('C') }, { frame: 60, notification: COMPLETE_NOTIFICATION } ]); }); it('should support time progression syntax when runMode=true', () => { const runMode = true; const result = TestScheduler.parseMarbles('10.2ms a 1.2s b 1m c|', { a: 'A', b: 'B', c: 'C' }, undefined, undefined, runMode); expect(result).deep.equal([ { frame: 10.2, notification: nextNotification('A') }, { frame: 10.2 + 10 + (1.2 * 1000), notification: nextNotification('B') }, { frame: 10.2 + 10 + (1.2 * 1000) + 10 + (1000 * 60), notification: nextNotification('C') }, { frame: 10.2 + 10 + (1.2 * 1000) + 10 + (1000 * 60) + 10, notification: COMPLETE_NOTIFICATION } ]); }); it('should support emoji characters', () => { const result = TestScheduler.parseMarbles('--🙈--🙉--🙊--|'); expect(result).deep.equal([ { frame: 20, notification: nextNotification('🙈') }, { frame: 50, notification: nextNotification('🙉') }, { frame: 80, notification: nextNotification('🙊') }, { frame: 110, notification: COMPLETE_NOTIFICATION } ]); }); }); describe('parseMarblesAsSubscriptions()', () => { it('should parse a subscription marble string into a subscriptionLog', () => { const result = TestScheduler.parseMarblesAsSubscriptions('---^---!-'); expect(result.subscribedFrame).to.equal(30); expect(result.unsubscribedFrame).to.equal(70); }); it('should parse a subscription marble string with an unsubscription', () => { const result = TestScheduler.parseMarblesAsSubscriptions('---^-'); expect(result.subscribedFrame).to.equal(30); expect(result.unsubscribedFrame).to.equal(Infinity); }); it('should parse a subscription marble string with a synchronous unsubscription', () => { const result = TestScheduler.parseMarblesAsSubscriptions('---(^!)-'); expect(result.subscribedFrame).to.equal(30); expect(result.unsubscribedFrame).to.equal(30); }); it('should ignore whitespace when runMode=true', () => { const runMode = true; const result = TestScheduler.parseMarblesAsSubscriptions(' - - - - ^ - - ! -- - ', runMode); expect(result.subscribedFrame).to.equal(40); expect(result.unsubscribedFrame).to.equal(70); }); it('should support time progression syntax when runMode=true', () => { const runMode = true; const result = TestScheduler.parseMarblesAsSubscriptions('10.2ms ^ 1.2s - 1m !', runMode); expect(result.subscribedFrame).to.equal(10.2); expect(result.unsubscribedFrame).to.equal(10.2 + 10 + (1.2 * 1000) + 10 + (1000 * 60)); }); it('should throw if found more than one subscription point', () => { expect(() => TestScheduler.parseMarblesAsSubscriptions('---^-^-!-')).to.throw(); }); it('should throw if found more than one unsubscription point', () => { expect(() => TestScheduler.parseMarblesAsSubscriptions('---^---!-!')).to.throw(); }); }); describe('createTime()', () => { it('should parse a simple time marble string to a number', () => { const scheduler = new TestScheduler(null!); const time = scheduler.createTime('-----|'); expect(time).to.equal(50); }); it('should progress time with whitespace', () => { const scheduler = new TestScheduler(null!); const time = scheduler.createTime(' |'); // -----| expect(time).to.equal(50); }); it('should progress time with mix of whitespace and dashes', () => { const scheduler = new TestScheduler(null!); const time = scheduler.createTime(' --|'); expect(time).to.equal(40); }); it('should throw if not given good marble input', () => { const scheduler = new TestScheduler(null!); expect(() => { scheduler.createTime('-a-b-#'); }).to.throw(); }); }); describe('createColdObservable()', () => { it('should create a cold observable', () => { const expected = ['A', 'B']; const scheduler = new TestScheduler(null!); const source = scheduler.createColdObservable('--a---b--|', { a: 'A', b: 'B' }); expect(source).to.be.an.instanceOf(Observable); source.subscribe(x => { expect(x).to.equal(expected.shift()); }); scheduler.flush(); expect(expected.length).to.equal(0); }); }); describe('createHotObservable()', () => { it('should create a hot observable', () => { const expected = ['A', 'B']; const scheduler = new TestScheduler(null!); const source = scheduler.createHotObservable('--a---b--|', { a: 'A', b: 'B' }); expect(source).to.be.an.instanceof(Subject); source.subscribe(x => { expect(x).to.equal(expected.shift()); }); scheduler.flush(); expect(expected.length).to.equal(0); }); }); describe('jasmine helpers', () => { describe('rxTestScheduler', () => { it('should exist', () => { expect(rxTestScheduler).to.be.an.instanceof(TestScheduler); }); }); describe('cold()', () => { it('should exist', () => { expect(cold).to.exist; expect(cold).to.be.a('function'); }); it('should create a cold observable', () => { const expected = [1, 2]; const source = cold('-a-b-|', { a: 1, b: 2 }); source.subscribe({ next: (x: number) => { expect(x).to.equal(expected.shift()); }, complete: () => { expect(expected.length).to.equal(0); } }); expectObservable(source).toBe('-a-b-|', { a: 1, b: 2 }); }); }); describe('hot()', () => { it('should exist', () => { expect(hot).to.exist; expect(hot).to.be.a('function'); }); it('should create a hot observable', () => { const source = hot('---^-a-b-|', { a: 1, b: 2 }); expect(source).to.be.an.instanceOf(Subject); expectObservable(source).toBe('--a-b-|', { a: 1, b: 2 }); }); }); describe('time()', () => { it('should exist', () => { expect(time).to.exist; expect(time).to.be.a('function'); }); it('should parse a simple time marble string to a number', () => { expect(time('-----|')).to.equal(50); }); }); describe('expectObservable()', () => { it('should exist', () => { expect(expectObservable).to.exist; expect(expectObservable).to.be.a('function'); }); it('should return an object with a toBe function', () => { expect(expectObservable(of(1)).toBe).to.be.a('function'); }); it('should append to flushTests array', () => { expectObservable(EMPTY); expect((rxTestScheduler).flushTests.length).to.equal(1); }); it('should handle empty', () => { expectObservable(EMPTY).toBe('|', {}); }); it('should handle never', () => { expectObservable(NEVER).toBe('-', {}); expectObservable(NEVER).toBe('---', {}); }); it('should accept an unsubscription marble diagram', () => { const source = hot('---^-a-b-|'); const unsubscribe = '---!'; const expected = '--a'; expectObservable(source, unsubscribe).toBe(expected); }); it('should accept a subscription marble diagram', () => { const source = hot('-a-b-c|'); const subscribe = '---^'; const expected = '---b-c|'; expectObservable(source, subscribe).toBe(expected); }); }); describe('expectSubscriptions()', () => { it('should exist', () => { expect(expectSubscriptions).to.exist; expect(expectSubscriptions).to.be.a('function'); }); it('should return an object with a toBe function', () => { expect(expectSubscriptions([]).toBe).to.be.a('function'); }); it('should append to flushTests array', () => { expectSubscriptions([]); expect((rxTestScheduler).flushTests.length).to.equal(1); }); it('should assert subscriptions of a cold observable', () => { const source = cold('---a---b-|'); const subs = '^--------!'; expectSubscriptions(source.subscriptions).toBe(subs); source.subscribe(); }); it('should support empty subscription marbles', () => { const source = cold('---a---b-|'); const subs = '----------'; expectSubscriptions(source.subscriptions).toBe(subs); }); it('should support empty subscription marbles within arrays', () => { const source = cold('---a---b-|'); const subs = ['----------']; expectSubscriptions(source.subscriptions).toBe(subs); }); }); describe('end-to-end helper tests', () => { it('should be awesome', () => { const values = { a: 1, b: 2 }; const myObservable = cold('---a---b--|', values); const subs = '^---------!'; expectObservable(myObservable).toBe('---a---b--|', values); expectSubscriptions(myObservable.subscriptions).toBe(subs); }); it('should support testing metastreams', () => { const x = cold('-a-b|'); const y = cold('-c-d|'); const myObservable = hot('---x---y----|', { x: x, y: y }); const expected = '---x---y----|'; const expectedx = cold('-a-b|'); const expectedy = cold('-c-d|'); expectObservable(myObservable).toBe(expected, { x: expectedx, y: expectedy }); }); }); }); describe('TestScheduler.run()', () => { const assertDeepEquals = (actual: any, expected: any) => { expect(actual).deep.equal(expected); }; describe('marble diagrams', () => { it('should ignore whitespace', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ cold, expectObservable, expectSubscriptions }) => { const input = cold(' -a - b - c | '); const output = input.pipe( concatMap(d => of(d).pipe( delay(10) )) ); const expected = ' -- 9ms a 9ms b 9ms (c|) '; expectObservable(output).toBe(expected); expectSubscriptions(input.subscriptions).toBe(' ^- - - - - !'); }); }); it('should support time progression syntax', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ cold, hot, flush, expectObservable, expectSubscriptions }) => { const output = cold('10.2ms a 1.2s b 1m c|'); const expected = ' 10.2ms a 1.2s b 1m c|'; expectObservable(output).toBe(expected); }); }); }); it('should provide the correct helpers', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ cold, hot, flush, expectObservable, expectSubscriptions }) => { expect(cold).to.be.a('function'); expect(hot).to.be.a('function'); expect(flush).to.be.a('function'); expect(expectObservable).to.be.a('function'); expect(expectSubscriptions).to.be.a('function'); const obs1 = cold('-a-c-e|'); const obs2 = hot(' ^-b-d-f|'); const output = merge(obs1, obs2); const expected = ' -abcdef|'; expectObservable(output).toBe(expected); expectObservable(output).toEqual(cold(expected)); // There are two subscriptions to each of these, because we merged // them together, then we subscribed to the merged result once // to check `toBe` and another time to check `toEqual`. expectSubscriptions(obs1.subscriptions).toBe(['^-----!', '^-----!']); expectSubscriptions(obs2.subscriptions).toBe(['^------!', '^------!']); }); }); it('should have each frame represent a single virtual millisecond', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ cold, expectObservable }) => { const output = cold('-a-b-c--------|').pipe( debounceTime(5) ); const expected = ' ------ 4ms c---|'; expectObservable(output).toBe(expected); }); }); it('should have no maximum frame count', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ cold, expectObservable }) => { const output = cold('-a|').pipe( delay(1000 * 10) ); const expected = ' - 10s (a|)'; expectObservable(output).toBe(expected); }); }); it('should make operators that use AsyncScheduler automatically use TestScheduler for actual scheduling', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ cold, expectObservable }) => { const output = cold('-a-b-c--------|').pipe( debounceTime(5) ); const expected = ' ----------c---|'; expectObservable(output).toBe(expected); }); }); it('should flush automatically', () => { const testScheduler = new TestScheduler((actual, expected) => { expect(actual).deep.equal(expected); }); testScheduler.run(({ cold, expectObservable }) => { const output = cold('-a-b-c|').pipe( concatMap(d => of(d).pipe( delay(10) )) ); const expected = ' -- 9ms a 9ms b 9ms (c|)'; expectObservable(output).toBe(expected); expect(testScheduler['flushTests'].length).to.equal(1); expect(testScheduler['actions'].length).to.equal(1); }); expect(testScheduler['flushTests'].length).to.equal(0); expect(testScheduler['actions'].length).to.equal(0); }); it('should support explicit flushing', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ cold, expectObservable, flush }) => { const output = cold('-a-b-c|').pipe( concatMap(d => of(d).pipe( delay(10) )) ); const expected = ' -- 9ms a 9ms b 9ms (c|)'; expectObservable(output).toBe(expected); expect(testScheduler['flushTests'].length).to.equal(1); expect(testScheduler['actions'].length).to.equal(1); flush(); expect(testScheduler['flushTests'].length).to.equal(0); expect(testScheduler['actions'].length).to.equal(0); }); expect(testScheduler['flushTests'].length).to.equal(0); expect(testScheduler['actions'].length).to.equal(0); }); it('should pass-through return values, e.g. Promises', (done) => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(() => { return Promise.resolve('foo'); }).then(value => { expect(value).to.equal('foo'); done(); }); }); it('should restore changes upon thrown errors', () => { const testScheduler = new TestScheduler(assertDeepEquals); const frameTimeFactor = TestScheduler['frameTimeFactor']; const maxFrames = testScheduler.maxFrames; const runMode = testScheduler['runMode']; try { testScheduler.run(() => { throw new Error('kaboom!'); }); } catch { /* empty */ } expect(TestScheduler['frameTimeFactor']).to.equal(frameTimeFactor); expect(testScheduler.maxFrames).to.equal(maxFrames); expect(testScheduler['runMode']).to.equal(runMode); }); it('should flush expectations correctly', () => { expect(() => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ cold, expectObservable, flush }) => { expectObservable(cold('-x')).toBe('-x'); expectObservable(cold('-y')).toBe('-y'); const expectation = expectObservable(cold('-z')); flush(); expectation.toBe('-q'); }); }).to.throw(); }); describe('animate', () => { it('should throw if animate() is not called when needed', () => { const testScheduler = new TestScheduler(assertDeepEquals); expect(() => testScheduler.run(() => { animationFrameProvider.schedule(() => { /* pointless lint rule */ }); })).to.throw(); }); it('should throw if animate() is called more than once', () => { const testScheduler = new TestScheduler(assertDeepEquals); expect(() => testScheduler.run(({ animate }) => { animate('--x'); animate('--x'); })).to.throw(); }); it('should throw if animate() completes', () => { const testScheduler = new TestScheduler(assertDeepEquals); expect(() => testScheduler.run(({ animate }) => { animate('--|'); })).to.throw(); }); it('should throw if animate() errors', () => { const testScheduler = new TestScheduler(assertDeepEquals); expect(() => testScheduler.run(({ animate }) => { animate('--#'); })).to.throw(); }); it('should schedule async requests within animate()', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ animate }) => { animate('--x'); const values: string[] = []; const { schedule } = animationFrameProvider; testScheduler.schedule(() => { schedule(t => values.push(`a@${t}`)); expect(values).to.deep.equal([]); }, 0); testScheduler.schedule(() => { schedule(t => values.push(`b@${t}`)); expect(values).to.deep.equal([]); }, 1); testScheduler.schedule(() => { expect(values).to.deep.equal(['a@2', 'b@2']); }, 2); }); }); it('should schedule sync requests within animate()', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ animate }) => { animate('--x'); const values: string[] = []; const { schedule } = animationFrameProvider; testScheduler.schedule(() => { schedule(t => values.push(`a@${t}`)); schedule(t => values.push(`b@${t}`)); expect(values).to.deep.equal([]); }, 1); testScheduler.schedule(() => { expect(values).to.deep.equal(['a@2', 'b@2']); }, 2); }); }); it('should support request cancellation within animate()', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ animate }) => { animate('--x'); const values: string[] = []; const { schedule } = animationFrameProvider; testScheduler.schedule(() => { const subscription = schedule(t => values.push(`a@${t}`)); schedule(t => values.push(`b@${t}`)); subscription.unsubscribe(); expect(values).to.deep.equal([]); }, 1); testScheduler.schedule(() => { expect(values).to.deep.equal(['b@2']); }, 2); }); }); }); describe('immediate and interval', () => { it('should schedule immediates', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(() => { const values: string[] = []; const { setImmediate } = immediateProvider; setImmediate(() => { values.push(`a@${testScheduler.now()}`); }); expect(values).to.deep.equal([]); testScheduler.schedule(() => { expect(values).to.deep.equal(['a@0']); }, 10); }); }); it('should support clearing immediates', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(() => { const values: string[] = []; const { setImmediate, clearImmediate } = immediateProvider; const handle = setImmediate(() => { values.push(`a@${testScheduler.now()}`); }); expect(values).to.deep.equal([]); clearImmediate(handle); testScheduler.schedule(() => { expect(values).to.deep.equal([]); }, 10); }); }); it('should schedule intervals', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(() => { const values: string[] = []; const { setInterval, clearInterval } = intervalProvider; const handle = setInterval(() => { values.push(`a@${testScheduler.now()}`); clearInterval(handle); }, 1); expect(values).to.deep.equal([]); testScheduler.schedule(() => { expect(values).to.deep.equal(['a@1']); }, 10); }); }); it('should reschedule intervals until cleared', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(() => { const values: string[] = []; const { setInterval, clearInterval } = intervalProvider; const handle = setInterval(() => { if (testScheduler.now() <= 3) { values.push(`a@${testScheduler.now()}`); } else { clearInterval(handle); } }, 1); expect(values).to.deep.equal([]); testScheduler.schedule(() => { expect(values).to.deep.equal(['a@1', 'a@2', 'a@3']); }, 10); }); }); it('should schedule timeouts', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(() => { const values: string[] = []; const { setTimeout } = timeoutProvider; setTimeout(() => { values.push(`a@${testScheduler.now()}`); }, 1); expect(values).to.deep.equal([]); testScheduler.schedule(() => { expect(values).to.deep.equal(['a@1']); }, 10); }); }); it('should schedule immediates before intervals and timeouts', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(() => { const values: string[] = []; const { setImmediate } = immediateProvider; const { setInterval, clearInterval } = intervalProvider; const { setTimeout } = timeoutProvider; const handle = setInterval(() => { values.push(`a@${testScheduler.now()}`); clearInterval(handle); }, 0); setTimeout(() => { values.push(`b@${testScheduler.now()}`); }, 0); setImmediate(() => { values.push(`c@${testScheduler.now()}`); }); expect(values).to.deep.equal([]); testScheduler.schedule(() => { expect(values).to.deep.equal(['c@0', 'a@0', 'b@0']); }, 10); }); }); }); describe('schedulers', () => { it('should support animationFrame, async and asap schedulers', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ animate, cold, expectObservable, time }) => { animate(' ---------x'); const mapped = cold('--m-------'); const tb = time(' -----| '); const expected = ' --(dc)-b-a'; const result = mapped.pipe(mergeMap(() => merge( of('a').pipe(delay(0, animationFrameScheduler)), of('b').pipe(delay(tb, asyncScheduler)), of('c').pipe(delay(0, asyncScheduler)), of('d').pipe(delay(0, asapScheduler)) ))); expectObservable(result).toBe(expected); }); }); it('should emit asap notifications before async notifications', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ cold, expectObservable }) => { const mapped = cold('--ab------'); const expected = ' ---(ba)---'; const result = mapped.pipe(mergeMap((value) => value === 'a' ? of(value).pipe(delay(1, asyncScheduler)) : of(value).pipe(delay(0, asapScheduler)) )); expectObservable(result).toBe(expected); }); }); it('should support intervals with zero duration', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ cold, expectObservable }) => { const mapped = cold('--m-------'); const expected = ' --(bbbaaa)'; const result = mapped.pipe(mergeMap(() => merge( interval(0, asyncScheduler).pipe(mapTo('a'), take(3)), interval(0, asapScheduler).pipe(mapTo('b'), take(3)) ))); expectObservable(result).toBe(expected); }); }); }); describe('time', () => { it('should parse a simple time marble string to a number', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ time }) => { const t = time('--|'); expect(t).to.equal(2); }); }); it('should ignore whitespace', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ time }) => { const t = time(' --|'); expect(t).to.equal(2); }); }); it('should throw if not given good marble input', () => { const testScheduler = new TestScheduler(assertDeepEquals); testScheduler.run(({ time }) => { expect(() => { time('-a-b-#'); }).to.throw(); }); }); }); }); }); rxjs-7.5.7/spec/schedulers/VirtualTimeScheduler-spec.ts000066400000000000000000000077721431412030200232220ustar00rootroot00000000000000import { expect } from 'chai'; import { SchedulerAction, VirtualAction, VirtualTimeScheduler } from 'rxjs'; /** @test {VirtualTimeScheduler} */ describe('VirtualTimeScheduler', () => { it('should exist', () => { expect(VirtualTimeScheduler).exist; expect(VirtualTimeScheduler).to.be.a('function'); }); it('should schedule things in order when flushed if each this is scheduled synchronously', () => { const v = new VirtualTimeScheduler(); const invoked: number[] = []; const invoke: any = (state: number) => { invoked.push(state); }; v.schedule(invoke, 0, 1); v.schedule(invoke, 0, 2); v.schedule(invoke, 0, 3); v.schedule(invoke, 0, 4); v.schedule(invoke, 0, 5); v.flush(); expect(invoked).to.deep.equal([1, 2, 3, 4, 5]); }); it('should schedule things in order when flushed if each this is scheduled at random', () => { const v = new VirtualTimeScheduler(); const invoked: number[] = []; const invoke: any = (state: number) => { invoked.push(state); }; v.schedule(invoke, 0, 1); v.schedule(invoke, 100, 2); v.schedule(invoke, 0, 3); v.schedule(invoke, 500, 4); v.schedule(invoke, 0, 5); v.schedule(invoke, 100, 6); v.flush(); expect(invoked).to.deep.equal([1, 3, 5, 2, 6, 4]); }); it('should schedule things in order when there are negative delays', () => { const v = new VirtualTimeScheduler(); const invoked: number[] = []; const invoke: any = (state: number) => { invoked.push(state); }; v.schedule(invoke, 0, 1); v.schedule(invoke, 100, 2); v.schedule(invoke, 0, 3); v.schedule(invoke, -2, 4); v.schedule(invoke, 0, 5); v.schedule(invoke, -10, 6); v.flush(); expect(invoked).to.deep.equal([6, 4, 1, 3, 5, 2]); }); it('should support recursive scheduling', () => { const v = new VirtualTimeScheduler(); let count = 0; const expected = [100, 200, 300]; v.schedule(function (this: SchedulerAction, state?: string) { if (++count === 3) { return; } const virtualAction = this as VirtualAction; expect(virtualAction.delay).to.equal(expected.shift()); this.schedule(state, virtualAction.delay); }, 100, 'test'); v.flush(); expect(count).to.equal(3); }); it('should not execute virtual actions that have been rescheduled before flush', () => { const v = new VirtualTimeScheduler(); const messages: string[] = []; const action: VirtualAction = > v.schedule( state => messages.push(state!), 10, 'first message' ); action.schedule('second message', 10); v.flush(); expect(messages).to.deep.equal(['second message']); }); it('should execute only those virtual actions that fall into the maxFrames timespan', function () { const MAX_FRAMES = 50; const v = new VirtualTimeScheduler(VirtualAction, MAX_FRAMES); const messages: string[] = ['first message', 'second message', 'third message']; const actualMessages: string[] = []; messages.forEach((message, index) => { v.schedule( state => actualMessages.push(state!), index * MAX_FRAMES, message ); }); v.flush(); expect(actualMessages).to.deep.equal(['first message', 'second message']); expect(v.actions.map(a => a.state)).to.deep.equal(['third message']); }); it('should pick up actions execution where it left off after reaching previous maxFrames limit', function () { const MAX_FRAMES = 50; const v = new VirtualTimeScheduler(VirtualAction, MAX_FRAMES); const messages: string[] = ['first message', 'second message', 'third message']; const actualMessages: string[] = []; messages.forEach((message, index) => { v.schedule( state => actualMessages.push(state!), index * MAX_FRAMES, message ); }); v.flush(); v.maxFrames = 2 * MAX_FRAMES; v.flush(); expect(actualMessages).to.deep.equal(messages); }); }); rxjs-7.5.7/spec/schedulers/animationFrameProvider-spec.ts000066400000000000000000000016511431412030200235510ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { animationFrameProvider } from 'rxjs/internal/scheduler/animationFrameProvider'; describe('animationFrameProvider', () => { const originalRequest = global.requestAnimationFrame; const originalCancel = global.cancelAnimationFrame; afterEach(() => { global.requestAnimationFrame = originalRequest; global.cancelAnimationFrame = originalCancel; }); it('should be monkey patchable', () => { let requestCalled = false; let cancelCalled = false; global.requestAnimationFrame = () => { requestCalled = true; return 0; }; global.cancelAnimationFrame = () => { cancelCalled = true; }; const handle = animationFrameProvider.requestAnimationFrame(() => { /* noop */ }); animationFrameProvider.cancelAnimationFrame(handle); expect(requestCalled).to.be.true; expect(cancelCalled).to.be.true; }); }); rxjs-7.5.7/spec/schedulers/dateTimestampProvider-spec.ts000066400000000000000000000010151431412030200234120ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { dateTimestampProvider } from 'rxjs/internal/scheduler/dateTimestampProvider'; describe('dateTimestampProvider', () => { const originalDate = global.Date; afterEach(() => { global.Date = originalDate; }); it('should be monkey patchable', () => { let nowCalled = false; global.Date = { now() { nowCalled = true; return 0; }, } as any; dateTimestampProvider.now(); expect(nowCalled).to.be.true; }); }); rxjs-7.5.7/spec/schedulers/intervalProvider-spec.ts000066400000000000000000000015651431412030200224470ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { intervalProvider } from 'rxjs/internal/scheduler/intervalProvider'; describe('intervalProvider', () => { const originalSet = global.setInterval; const originalClear = global.clearInterval; afterEach(() => { global.setInterval = originalSet; global.clearInterval = originalClear; }); it('should be monkey patchable', () => { let setCalled = false; let clearCalled = false; global.setInterval = (() => { setCalled = true; return 0 as any; }) as any; // TypeScript complains about a __promisify__ property global.clearInterval = () => { clearCalled = true; }; const handle = intervalProvider.setInterval(() => { /* noop */ }); intervalProvider.clearInterval(handle); expect(setCalled).to.be.true; expect(clearCalled).to.be.true; }); }); rxjs-7.5.7/spec/schedulers/timeoutProvider-spec.ts000066400000000000000000000014611431412030200223040ustar00rootroot00000000000000/** @prettier */ import { expect } from 'chai'; import { timeoutProvider } from 'rxjs/internal/scheduler/timeoutProvider'; describe('timeoutProvider', () => { const originalSet = global.setTimeout; const originalClear = global.clearTimeout; afterEach(() => { global.setTimeout = originalSet; global.clearTimeout = originalClear; }); it('should be monkey patchable', () => { let setCalled = false; let clearCalled = false; global.setTimeout = (() => { setCalled = true; return 0 as any; }) as any; global.clearTimeout = () => { clearCalled = true; }; const handle = timeoutProvider.setTimeout(() => { /* noop */ }); timeoutProvider.clearTimeout(handle); expect(setCalled).to.be.true; expect(clearCalled).to.be.true; }); }); rxjs-7.5.7/spec/subjects/000077500000000000000000000000001431412030200152625ustar00rootroot00000000000000rxjs-7.5.7/spec/subjects/AsyncSubject-spec.ts000066400000000000000000000156711431412030200211710ustar00rootroot00000000000000import { expect } from 'chai'; import { AsyncSubject, Observer } from 'rxjs'; class TestObserver implements Observer { results: (number | string)[] = []; next(value: number): void { this.results.push(value); } error(err: any): void { this.results.push(err); } complete(): void { this.results.push('done'); } } /** @test {AsyncSubject} */ describe('AsyncSubject', () => { it('should emit the last value when complete', () => { const subject = new AsyncSubject(); const observer = new TestObserver(); subject.subscribe(observer); subject.next(1); expect(observer.results).to.deep.equal([]); subject.next(2); expect(observer.results).to.deep.equal([]); subject.complete(); expect(observer.results).to.deep.equal([2, 'done']); }); it('should emit the last value when subscribing after complete', () => { const subject = new AsyncSubject(); const observer = new TestObserver(); subject.next(1); subject.next(2); subject.complete(); subject.subscribe(observer); expect(observer.results).to.deep.equal([2, 'done']); }); it('should keep emitting the last value to subsequent subscriptions', () => { const subject = new AsyncSubject(); const observer = new TestObserver(); const subscription = subject.subscribe(observer); subject.next(1); expect(observer.results).to.deep.equal([]); subject.next(2); expect(observer.results).to.deep.equal([]); subject.complete(); expect(observer.results).to.deep.equal([2, 'done']); subscription.unsubscribe(); observer.results = []; subject.subscribe(observer); expect(observer.results).to.deep.equal([2, 'done']); }); it('should not emit values after complete', () => { const subject = new AsyncSubject(); const observer = new TestObserver(); subject.subscribe(observer); subject.next(1); expect(observer.results).to.deep.equal([]); subject.next(2); expect(observer.results).to.deep.equal([]); subject.complete(); subject.next(3); expect(observer.results).to.deep.equal([2, 'done']); }); it('should not allow change value after complete', () => { const subject = new AsyncSubject(); const observer = new TestObserver(); const otherObserver = new TestObserver(); subject.subscribe(observer); subject.next(1); expect(observer.results).to.deep.equal([]); subject.complete(); expect(observer.results).to.deep.equal([1, 'done']); subject.next(2); subject.subscribe(otherObserver); expect(otherObserver.results).to.deep.equal([1, 'done']); }); it('should not emit values if unsubscribed before complete', () => { const subject = new AsyncSubject(); const observer = new TestObserver(); const subscription = subject.subscribe(observer); subject.next(1); expect(observer.results).to.deep.equal([]); subject.next(2); expect(observer.results).to.deep.equal([]); subscription.unsubscribe(); subject.next(3); expect(observer.results).to.deep.equal([]); subject.complete(); expect(observer.results).to.deep.equal([]); }); it('should just complete if no value has been nexted into it', () => { const subject = new AsyncSubject(); const observer = new TestObserver(); subject.subscribe(observer); expect(observer.results).to.deep.equal([]); subject.complete(); expect(observer.results).to.deep.equal(['done']); }); it('should keep emitting complete to subsequent subscriptions', () => { const subject = new AsyncSubject(); const observer = new TestObserver(); const subscription = subject.subscribe(observer); expect(observer.results).to.deep.equal([]); subject.complete(); expect(observer.results).to.deep.equal(['done']); subscription.unsubscribe(); observer.results = []; subject.error(new Error('')); subject.subscribe(observer); expect(observer.results).to.deep.equal(['done']); }); it('should only error if an error is passed into it', () => { const expected = new Error('bad'); const subject = new AsyncSubject(); const observer = new TestObserver(); subject.subscribe(observer); subject.next(1); expect(observer.results).to.deep.equal([]); subject.error(expected); expect(observer.results).to.deep.equal([expected]); }); it('should keep emitting error to subsequent subscriptions', () => { const expected = new Error('bad'); const subject = new AsyncSubject(); const observer = new TestObserver(); const subscription = subject.subscribe(observer); subject.next(1); expect(observer.results).to.deep.equal([]); subject.error(expected); expect(observer.results).to.deep.equal([expected]); subscription.unsubscribe(); observer.results = []; subject.subscribe(observer); expect(observer.results).to.deep.equal([expected]); }); it('should not allow send complete after error', () => { const expected = new Error('bad'); const subject = new AsyncSubject(); const observer = new TestObserver(); const subscription = subject.subscribe(observer); subject.next(1); expect(observer.results).to.deep.equal([]); subject.error(expected); expect(observer.results).to.deep.equal([expected]); subscription.unsubscribe(); observer.results = []; subject.complete(); subject.subscribe(observer); expect(observer.results).to.deep.equal([expected]); }); it('should not be reentrant via complete', () => { const subject = new AsyncSubject(); let calls = 0; subject.subscribe({ next: (value) => { calls++; if (calls < 2) { // if this is more than 1, we're reentrant, and that's bad. subject.complete(); } }, }); subject.next(1); subject.complete(); expect(calls).to.equal(1); }); it('should not be reentrant via next', () => { const subject = new AsyncSubject(); let calls = 0; subject.subscribe({ next: (value) => { calls++; if (calls < 2) { // if this is more than 1, we're reentrant, and that's bad. subject.next(value + 1); } }, }); subject.next(1); subject.complete(); expect(calls).to.equal(1); }); it('should allow reentrant subscriptions', () => { const subject = new AsyncSubject(); let results: any[] = []; subject.subscribe({ next: (value) => { subject.subscribe({ next: (value) => results.push('inner: ' + (value + value)), complete: () => results.push('inner: done'), }); results.push('outer: ' + value); }, complete: () => results.push('outer: done'), }); subject.next(1); expect(results).to.deep.equal([]); subject.complete(); expect(results).to.deep.equal(['inner: 2', 'inner: done', 'outer: 1', 'outer: done']); }); }); rxjs-7.5.7/spec/subjects/BehaviorSubject-spec.ts000066400000000000000000000172071431412030200216500ustar00rootroot00000000000000import { expect } from 'chai'; import { BehaviorSubject, Subject, ObjectUnsubscribedError, of } from 'rxjs'; import { tap, mergeMapTo } from 'rxjs/operators'; import { asInteropSubject } from '../helpers/interop-helper'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {BehaviorSubject} */ describe('BehaviorSubject', () => { let testScheduler: TestScheduler; beforeEach(() => { testScheduler = new TestScheduler(observableMatcher); }); it('should extend Subject', () => { const subject = new BehaviorSubject(null); expect(subject).to.be.instanceof(Subject); }); it('should throw if it has received an error and getValue() is called', () => { const subject = new BehaviorSubject(null); subject.error(new Error('derp')); expect(() => { subject.getValue(); }).to.throw(Error, 'derp'); }); it('should throw an ObjectUnsubscribedError if getValue() is called and the BehaviorSubject has been unsubscribed', () => { const subject = new BehaviorSubject('hi there'); subject.unsubscribe(); expect(() => { subject.getValue(); }).to.throw(ObjectUnsubscribedError); }); it('should have a getValue() method to retrieve the current value', () => { const subject = new BehaviorSubject('staltz'); expect(subject.getValue()).to.equal('staltz'); subject.next('oj'); expect(subject.getValue()).to.equal('oj'); }); it('should not allow you to set `value` directly', () => { const subject = new BehaviorSubject('flibberty'); try { // XXX: escape from readonly restriction for testing. (subject as any).value = 'jibbets'; } catch (e) { //noop } expect(subject.getValue()).to.equal('flibberty'); expect(subject.value).to.equal('flibberty'); }); it('should still allow you to retrieve the value from the value property', () => { const subject = new BehaviorSubject('fuzzy'); expect(subject.value).to.equal('fuzzy'); subject.next('bunny'); expect(subject.value).to.equal('bunny'); }); it('should start with an initialization value', (done) => { const subject = new BehaviorSubject('foo'); const expected = ['foo', 'bar']; let i = 0; subject.subscribe({ next: (x: string) => { expect(x).to.equal(expected[i++]); }, complete: done, }); subject.next('bar'); subject.complete(); }); it('should pump values to multiple subscribers', (done) => { const subject = new BehaviorSubject('init'); const expected = ['init', 'foo', 'bar']; let i = 0; let j = 0; subject.subscribe((x: string) => { expect(x).to.equal(expected[i++]); }); subject.subscribe({ next: (x: string) => { expect(x).to.equal(expected[j++]); }, complete: done, }); expect(subject.observers.length).to.equal(2); subject.next('foo'); subject.next('bar'); subject.complete(); }); it('should not pass values nexted after a complete', () => { const subject = new BehaviorSubject('init'); const results: string[] = []; subject.subscribe((x: string) => { results.push(x); }); expect(results).to.deep.equal(['init']); subject.next('foo'); expect(results).to.deep.equal(['init', 'foo']); subject.complete(); expect(results).to.deep.equal(['init', 'foo']); subject.next('bar'); expect(results).to.deep.equal(['init', 'foo']); }); it('should clean out unsubscribed subscribers', (done) => { const subject = new BehaviorSubject('init'); const sub1 = subject.subscribe((x: string) => { expect(x).to.equal('init'); }); const sub2 = subject.subscribe((x: string) => { expect(x).to.equal('init'); }); expect(subject.observers.length).to.equal(2); sub1.unsubscribe(); expect(subject.observers.length).to.equal(1); sub2.unsubscribe(); expect(subject.observers.length).to.equal(0); done(); }); it('should replay the previous value when subscribed', () => { testScheduler.run(({ hot, expectObservable }) => { const behaviorSubject = new BehaviorSubject('0'); function feedNextIntoSubject(x: string) { behaviorSubject.next(x); } function feedErrorIntoSubject(err: any) { behaviorSubject.error(err); } function feedCompleteIntoSubject() { behaviorSubject.complete(); } const sourceTemplate = ' -1-2-3----4------5-6---7--8----9--|'; const subscriber1 = hot('------(a|) ').pipe(mergeMapTo(behaviorSubject)); const unsub1 = ' ---------------------! '; const expected1 = ' ------3---4------5-6-- '; const subscriber2 = hot('------------(b|) ').pipe(mergeMapTo(behaviorSubject)); const unsub2 = ' -------------------------! '; const expected2 = ' ------------4----5-6---7-- '; const subscriber3 = hot('---------------------------(c|) ').pipe(mergeMapTo(behaviorSubject)); const expected3 = ' ---------------------------8---9--|'; expectObservable( hot(sourceTemplate).pipe(tap({ next: feedNextIntoSubject, error: feedErrorIntoSubject, complete: feedCompleteIntoSubject })) ).toBe(sourceTemplate); expectObservable(subscriber1, unsub1).toBe(expected1); expectObservable(subscriber2, unsub2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); }); }); it('should emit complete when subscribed after completed', () => { testScheduler.run(({ hot, expectObservable }) => { const behaviorSubject = new BehaviorSubject('0'); function feedNextIntoSubject(x: string) { behaviorSubject.next(x); } function feedErrorIntoSubject(err: any) { behaviorSubject.error(err); } function feedCompleteIntoSubject() { behaviorSubject.complete(); } const sourceTemplate = ' -1-2-3--4--| '; const subscriber1 = hot('---------------(a|)').pipe(mergeMapTo(behaviorSubject)); const expected1 = ' ---------------| '; expectObservable( hot(sourceTemplate).pipe(tap({ next: feedNextIntoSubject, error: feedErrorIntoSubject, complete: feedCompleteIntoSubject })) ).toBe(sourceTemplate); expectObservable(subscriber1).toBe(expected1); }); }); it('should be an Observer which can be given to Observable.subscribe', (done) => { const source = of(1, 2, 3, 4, 5); const subject = new BehaviorSubject(0); const expected = [0, 1, 2, 3, 4, 5]; subject.subscribe({ next: (x: number) => { expect(x).to.equal(expected.shift()); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { expect(subject.value).to.equal(5); done(); }, }); source.subscribe(subject); }); it('should be an Observer which can be given to an interop source', (done) => { // This test reproduces a bug reported in this issue: // https://github.com/ReactiveX/rxjs/issues/5105 // However, it cannot easily be fixed. See this comment: // https://github.com/ReactiveX/rxjs/issues/5105#issuecomment-578405446 const source = of(1, 2, 3, 4, 5); const subject = new BehaviorSubject(0); const expected = [0, 1, 2, 3, 4, 5]; subject.subscribe({ next: (x: number) => { expect(x).to.equal(expected.shift()); }, error: (x) => { done(new Error('should not be called')); }, complete: () => { expect(subject.value).to.equal(5); done(); }, }); source.subscribe(asInteropSubject(subject)); }); }); rxjs-7.5.7/spec/subjects/ReplaySubject-spec.ts000066400000000000000000000275651431412030200213550ustar00rootroot00000000000000import { expect } from 'chai'; import { ReplaySubject, Subject, of } from 'rxjs'; import { mergeMapTo, tap } from 'rxjs/operators'; import { TestScheduler } from 'rxjs/testing'; import { observableMatcher } from '../helpers/observableMatcher'; /** @test {ReplaySubject} */ describe('ReplaySubject', () => { let rxTestScheduler: TestScheduler; beforeEach(() => { rxTestScheduler = new TestScheduler(observableMatcher); }); it('should extend Subject', () => { const subject = new ReplaySubject(); expect(subject).to.be.instanceof(Subject); }); it('should add the observer before running subscription code', () => { const subject = new ReplaySubject(); subject.next(1); const results: number[] = []; subject.subscribe((value) => { results.push(value); if (value < 3) { subject.next(value + 1); } }); expect(results).to.deep.equal([1, 2, 3]); }); it('should replay values upon subscription', (done) => { const subject = new ReplaySubject(); const expects = [1, 2, 3]; let i = 0; subject.next(1); subject.next(2); subject.next(3); subject.subscribe({ next: (x: number) => { expect(x).to.equal(expects[i++]); if (i === 3) { subject.complete(); } }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); it('should replay values and complete', (done) => { const subject = new ReplaySubject(); const expects = [1, 2, 3]; let i = 0; subject.next(1); subject.next(2); subject.next(3); subject.complete(); subject.subscribe({ next: (x: number) => { expect(x).to.equal(expects[i++]); }, complete: done, }); }); it('should replay values and error', (done) => { const subject = new ReplaySubject(); const expects = [1, 2, 3]; let i = 0; subject.next(1); subject.next(2); subject.next(3); subject.error('fooey'); subject.subscribe({ next: (x: number) => { expect(x).to.equal(expects[i++]); }, error: (err: any) => { expect(err).to.equal('fooey'); done(); }, }); }); it('should only replay values within its buffer size', (done) => { const subject = new ReplaySubject(2); const expects = [2, 3]; let i = 0; subject.next(1); subject.next(2); subject.next(3); subject.subscribe({ next: (x: number) => { expect(x).to.equal(expects[i++]); if (i === 2) { subject.complete(); } }, error: (err: any) => { done(new Error('should not be called')); }, complete: () => { done(); }, }); }); describe('with bufferSize=2', () => { it('should replay 2 previous values when subscribed', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const replaySubject = new ReplaySubject(2); function feedNextIntoSubject(x: string) { replaySubject.next(x); } function feedErrorIntoSubject(err: string) { replaySubject.error(err); } function feedCompleteIntoSubject() { replaySubject.complete(); } const sourceTemplate = ' -1-2-3----4------5-6---7--8----9--|'; const subscriber1 = hot('------(a|) ').pipe(mergeMapTo(replaySubject)); const unsub1 = ' ---------------------! '; const expected1 = ' ------(23)4------5-6-- '; const subscriber2 = hot('------------(b|) ').pipe(mergeMapTo(replaySubject)); const unsub2 = ' -------------------------! '; const expected2 = ' ------------(34)-5-6---7-- '; const subscriber3 = hot('---------------------------(c|) ').pipe(mergeMapTo(replaySubject)); const expected3 = ' ---------------------------(78)9--|'; expectObservable( hot(sourceTemplate).pipe(tap({ next: feedNextIntoSubject, error: feedErrorIntoSubject, complete: feedCompleteIntoSubject })) ).toBe(sourceTemplate); expectObservable(subscriber1, unsub1).toBe(expected1); expectObservable(subscriber2, unsub2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); }); }); it('should replay 2 last values for when subscribed after completed', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const replaySubject = new ReplaySubject(2); function feedNextIntoSubject(x: string) { replaySubject.next(x); } function feedErrorIntoSubject(err: string) { replaySubject.error(err); } function feedCompleteIntoSubject() { replaySubject.complete(); } const sourceTemplate = ' -1-2-3--4--|'; const subscriber1 = hot('---------------(a|) ').pipe(mergeMapTo(replaySubject)); const expected1 = ' ---------------(34|)'; expectObservable( hot(sourceTemplate).pipe(tap({ next: feedNextIntoSubject, error: feedErrorIntoSubject, complete: feedCompleteIntoSubject })) ).toBe(sourceTemplate); expectObservable(subscriber1).toBe(expected1); }); }); it('should handle subscribers that arrive and leave at different times, ' + 'subject does not complete', () => { const subject = new ReplaySubject(2); const results1: (number | string)[] = []; const results2: (number | string)[] = []; const results3: (number | string)[] = []; subject.next(1); subject.next(2); subject.next(3); subject.next(4); const subscription1 = subject.subscribe({ next: (x: number) => { results1.push(x); }, error: (err: any) => { results1.push('E'); }, complete: () => { results1.push('C'); }, }); subject.next(5); const subscription2 = subject.subscribe({ next: (x: number) => { results2.push(x); }, error: (err: any) => { results2.push('E'); }, complete: () => { results2.push('C'); }, }); subject.next(6); subject.next(7); subscription1.unsubscribe(); subject.next(8); subscription2.unsubscribe(); subject.next(9); subject.next(10); const subscription3 = subject.subscribe({ next: (x: number) => { results3.push(x); }, error: (err: any) => { results3.push('E'); }, complete: () => { results3.push('C'); }, }); subject.next(11); subscription3.unsubscribe(); expect(results1).to.deep.equal([3, 4, 5, 6, 7]); expect(results2).to.deep.equal([4, 5, 6, 7, 8]); expect(results3).to.deep.equal([9, 10, 11]); subject.complete(); }); }); describe('with windowTime=4', () => { it('should replay previous values since 4 time units ago when subscribed', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const replaySubject = new ReplaySubject(Infinity, 4, rxTestScheduler); function feedNextIntoSubject(x: string) { replaySubject.next(x); } function feedErrorIntoSubject(err: any) { replaySubject.error(err); } function feedCompleteIntoSubject() { replaySubject.complete(); } const sourceTemplate = ' -1-2-3----4------5-6----7-8----9--|'; const subscriber1 = hot('------(a|) ').pipe(mergeMapTo(replaySubject)); const unsub1 = ' ---------------------! '; const expected1 = ' ------(23)4------5-6-- '; const subscriber2 = hot('------------(b|) ').pipe(mergeMapTo(replaySubject)); const unsub2 = ' -------------------------! '; const expected2 = ' ------------4----5-6----7- '; const subscriber3 = hot('---------------------------(c|) ').pipe(mergeMapTo(replaySubject)); const expected3 = ' ---------------------------(78)9--|'; expectObservable( hot(sourceTemplate).pipe(tap({ next: feedNextIntoSubject, error: feedErrorIntoSubject, complete: feedCompleteIntoSubject })) ).toBe(sourceTemplate); expectObservable(subscriber1, unsub1).toBe(expected1); expectObservable(subscriber2, unsub2).toBe(expected2); expectObservable(subscriber3).toBe(expected3); }); }); it('should replay last values since 4 time units ago when subscribed', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const replaySubject = new ReplaySubject(Infinity, 4, rxTestScheduler); function feedNextIntoSubject(x: string) { replaySubject.next(x); } function feedErrorIntoSubject(err: any) { replaySubject.error(err); } function feedCompleteIntoSubject() { replaySubject.complete(); } const sourceTemplate = ' -1-2-3----4|'; const subscriber1 = hot('-------------(a|)').pipe(mergeMapTo(replaySubject)); const expected1 = ' -------------(4|)'; expectObservable( hot(sourceTemplate).pipe(tap({ next: feedNextIntoSubject, error: feedErrorIntoSubject, complete: feedCompleteIntoSubject })) ).toBe(sourceTemplate); expectObservable(subscriber1).toBe(expected1); }); }); it('should only replay bufferSize items when 4 time units ago more were emitted', () => { rxTestScheduler.run(({ hot, expectObservable }) => { const replaySubject = new ReplaySubject(2, 4, rxTestScheduler); function feedNextIntoSubject(x: string) { replaySubject.next(x); } function feedErrorIntoSubject(err: any) { replaySubject.error(err); } function feedCompleteIntoSubject() { replaySubject.complete(); } const sourceTemplate = ' 1234-------|'; const subscriber1 = hot('----(a|)').pipe(mergeMapTo(replaySubject)); const expected1 = ' ----(34)---|'; expectObservable( hot(sourceTemplate).pipe(tap({ next: feedNextIntoSubject, error: feedErrorIntoSubject, complete: feedCompleteIntoSubject })) ).toBe(sourceTemplate); expectObservable(subscriber1).toBe(expected1); }); }); }); it('should be an Observer which can be given to Observable.subscribe', () => { const source = of(1, 2, 3, 4, 5); const subject = new ReplaySubject(3); let results: (number | string)[] = []; subject.subscribe({ next: (x) => results.push(x), complete: () => results.push('done') }); source.subscribe(subject); expect(results).to.deep.equal([1, 2, 3, 4, 5, 'done']); results = []; subject.subscribe({ next: (x) => results.push(x), complete: () => results.push('done') }); expect(results).to.deep.equal([3, 4, 5, 'done']); }); it('should not buffer nexted values after complete', () => { const results: (number | string)[] = []; const subject = new ReplaySubject(); subject.next(1); subject.next(2); subject.complete(); subject.next(3); subject.subscribe({ next: (value) => results.push(value), complete: () => results.push('C'), }); expect(results).to.deep.equal([1, 2, 'C']); }); it('should not buffer nexted values after error', () => { const results: (number | string)[] = []; const subject = new ReplaySubject(); subject.next(1); subject.next(2); subject.error(new Error('Boom!')); subject.next(3); subject.subscribe({ next: (value) => results.push(value), error: () => results.push('E'), }); expect(results).to.deep.equal([1, 2, 'E']); }); }); rxjs-7.5.7/spec/support/000077500000000000000000000000001431412030200151545ustar00rootroot00000000000000rxjs-7.5.7/spec/support/.mocharc.js000066400000000000000000000005611431412030200172060ustar00rootroot00000000000000module.exports = { require: ['ts-node/register', 'spec/support/mocha-path-mappings.js', 'spec/helpers/setup.ts'], ui: ['spec/helpers/testScheduler-ui.ts'], reporter: 'dot', extensions: ['ts', 'js'], timeout: 5000, recursive: true, 'enable-source-maps': true, 'expose-gc': true, // Uncomment this to find all skipped tests. // forbidPending: true }; rxjs-7.5.7/spec/support/mocha-browser-runner.html000066400000000000000000000033511431412030200221230ustar00rootroot00000000000000
rxjs-7.5.7/spec/support/mocha-path-mappings.js000066400000000000000000000036251431412030200213550ustar00rootroot00000000000000const { join } = require('path'); const root = join(__dirname, '../..'); // We need to intercept the require calls made within the tests to replace // paths like 'rxjs/operators' with the relative path to the source files // within the 'dist' directory. To do this, we're going to patch the // '_resolveFilename' function within Node's built-in 'module'. const mod = require('module'); const originalResolveFilename = mod._resolveFilename; // We've already specified 'paths' within the 'tsconfig.json' file - so that // TypeScript is able to find the source files when it's compiling the tests. // Now, we just need to change those paths to refer to the 'src' directory // that's within the 'dist' directory. const tsconfig = require(join(root, 'tsconfig.json')); const paths = tsconfig.compilerOptions.paths; const keys = Object.keys(paths); mod._resolveFilename = function (path, ...rest) { for (const key of keys) { if (key.endsWith('*')) { // If the key ends with a wildcard, we need to take the part of the // original path matched by the wildcard and use it to replace the // wildcard in the mapped path. TypeScript uses this configuration to // support deep paths. (Whilst RxJS does not support deep imports, there // are places in the tests in which deep imports of internals are made.) const regExp = new RegExp(key.replace(/\//g, '\\/').replace(/\*$/, '(.*)')); const match = path.match(regExp); if (match) { const [, more] = match; return originalResolveFilename.call(this, join(root, paths[key][0].replace(/\*$/, more)), ...rest); } } else if (path === key) { // If the original path matches the key, we use the mapped path instead. return originalResolveFilename.call(this, join(root, paths[key][0]), ...rest); } } // Otherwise, we use the original path. return originalResolveFilename.call(this, path, ...rest); }; rxjs-7.5.7/spec/support/mocha.sauce.gruntfile.js000066400000000000000000000011641431412030200217000ustar00rootroot00000000000000module.exports = function (grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('../../package.json'), run: { sauce: { args: ['./mocha.sauce.runner.js'], options: { wait: true, cwd: './' } } }, connect: { server: { options: { base: '../../', port: 9876 } } } }); var parentcwd = process.cwd(); process.chdir('../../'); grunt.loadNpmTasks('grunt-contrib-connect'); grunt.loadNpmTasks('grunt-run'); process.chdir(parentcwd); grunt.registerTask('default', ['connect', 'run:sauce']); };rxjs-7.5.7/spec/support/mocha.sauce.runner.js000066400000000000000000000064461431412030200212220ustar00rootroot00000000000000var _ = require('lodash'); var mochaSauce = require('mocha-in-sauce'); var customLaunchers = { sl_chrome: { base: 'SauceLabs', browserName: 'chrome', version: '46' }, sl_chrome_beta: { base: 'SauceLabs', browserName: 'chrome', version: 'beta' }, /* sl_chrome_dev: { base: 'SauceLabs', browserName: 'chrome', version: 'dev' },*/ sl_firefox: { base: 'SauceLabs', browserName: 'firefox', version: '44' }, /*sl_firefox_beta: { base: 'SauceLabs', browserName: 'firefox', version: 'beta' }, sl_firefox_dev: { base: 'SauceLabs', browserName: 'firefox', version: 'dev' },*/ sl_safari7: { base: 'SauceLabs', browserName: 'safari', platform: 'OS X 10.9', version: '7' }, sl_safari8: { base: 'SauceLabs', browserName: 'safari', platform: 'OS X 10.10', version: '8' }, sl_safari9: { base: 'SauceLabs', browserName: 'safari', platform: 'OS X 10.11', version: '9.0' }, sl_ios8: { base: 'SauceLabs', browserName: 'iphone', platform: 'OS X 10.11', version: '8.4' }, sl_ios9: { base: 'SauceLabs', browserName: 'iphone', platform: 'OS X 10.11', version: '9.1' }, sl_ie9: { base: 'SauceLabs', browserName: 'internet explorer', platform: 'Windows 2008', version: '9' }, sl_ie10: { base: 'SauceLabs', browserName: 'internet explorer', platform: 'Windows 2012', version: '10' }, sl_ie11: { base: 'SauceLabs', browserName: 'internet explorer', platform: 'Windows 8.1', version: '11' }, sl_edge: { base: 'SauceLabs', browserName: 'MicrosoftEdge', platform: 'Windows 10', version: '14.14393' }, sl_edge_13: { base: 'SauceLabs', browserName: 'MicrosoftEdge', platform: 'Windows 10', version: '13.10586' }, sl_android_4_1: { base: 'SauceLabs', browserName: 'android', platform: 'Linux', version: '4.1' }, sl_android_4_2: { base: 'SauceLabs', browserName: 'android', platform: 'Linux', version: '4.2' }, sl_android_4_3: { base: 'SauceLabs', browserName: 'android', platform: 'Linux', version: '4.3' }, sl_android_4_4: { base: 'SauceLabs', browserName: 'android', platform: 'Linux', version: '4.4' }, sl_android5: { base: 'SauceLabs', browserName: 'android', platform: 'Linux', version: '5.1' } }; var sauce = new mochaSauce({ name: 'RxJS 5 browser test', build: process.env.TRAVIS_BUILD_NUMBER, username: process.env.SAUCE_USERNAME, accessKey: process.env.SAUCE_ACCESS_KEY, host: 'localhost', port: 4445, runSauceConnect: true, // run sauceConnect automatically url: 'http://localhost:9876/spec/support/mocha-browser-runner.html' }); sauce.record(true, true); sauce.concurrency(1); _.each(customLaunchers, function (browser) { sauce.browser(browser); }); sauce.on('start', function (browser) { console.log(' started %s %s %s ...', browser.browserName, browser.version, browser.platform || ''); }); sauce.on('end', function (browser, res) { console.log(' completed %s %s %s ... : %d failures', browser.browserName, browser.version, browser.platform || '', res.failures); }); sauce.start(function (err, res) { console.log('-------------- done --------------'); });rxjs-7.5.7/spec/support/webpack.mocha.config.js000066400000000000000000000015341431412030200214630ustar00rootroot00000000000000var _ = require('lodash'); var path = require('path'); var glob = require('glob'); var webpack = require('webpack'); var globPattern = 'spec-js/**/!(mocha.sauce.gruntfile|mocha.sauce.runner|webpack.mocha.config|painter|diagram-test-runner|polyfills|testScheduler-ui).js'; var files = _.map(glob.sync(globPattern), function (x) { return path.resolve('./', x); }); module.exports = { devtool: '#inline-source-map', stats: { colors: true, assets: false, chunks: false }, entry: { 'browser.polyfills': './spec-js/helpers/polyfills.js', 'browser.testscheduler': './spec-js/helpers/testScheduler-ui.js', 'browser.spec': files }, output: { path: 'tmp/browser', filename: '[name].js', }, plugins: [ new webpack.optimize.CommonsChunkPlugin('browser.common.js'), new webpack.IgnorePlugin(/^mocha$/) ] }; rxjs-7.5.7/spec/testing/000077500000000000000000000000001431412030200151155ustar00rootroot00000000000000rxjs-7.5.7/spec/testing/index-spec.ts000066400000000000000000000003011431412030200175160ustar00rootroot00000000000000import * as index from 'rxjs/testing'; import { expect } from 'chai'; describe('index', () => { it('should export TestScheduler', () => { expect(index.TestScheduler).to.exist; }); }); rxjs-7.5.7/spec/tsconfig.json000066400000000000000000000004231431412030200161460ustar00rootroot00000000000000{ "extends": "../tsconfig.json", "compilerOptions": { "noEmit": false, "outDir": "../dist/spec", "target": "es5", "downlevelIteration": true, "module": "commonjs" }, "references": [ { "path": "../src/tsconfig.types.spec.json" } ] }rxjs-7.5.7/spec/tslint.json000066400000000000000000000014741431412030200156560ustar00rootroot00000000000000{ "extends": ["../tslint.json", "tslint-no-unused-expression-chai"], "rules": { "arrow-return-shorthand": [false], "ban-types": [false], "comment-format": [false], "no-angle-bracket-type-assertion": [false], "no-console": [false], "no-implicit-dependencies": [true, "dev", ["rxjs", "chai"]], "no-object-literal-type-assertion": [false], "no-shadowed-variable": [false], "no-string-literal": [false], "no-string-throw": [false], "no-submodule-imports": [false], "no-unnecessary-initializer": [false], "no-unused-declaration": [false], "object-literal-shorthand": [false], "one-variable-per-declaration": [false], "only-arrow-functions": [false], "prefer-const": [false], "prefer-for-of": [false], "radix": [false], "triple-equals": [false] } }rxjs-7.5.7/spec/util/000077500000000000000000000000001431412030200144155ustar00rootroot00000000000000rxjs-7.5.7/spec/util/ArgumentOutOfRangeError-spec.ts000066400000000000000000000007771431412030200224560ustar00rootroot00000000000000import { expect } from 'chai'; import { ArgumentOutOfRangeError } from 'rxjs'; /** @test {ArgumentOutOfRangeError} */ describe('ArgumentOutOfRangeError', () => { const error = new ArgumentOutOfRangeError(); it('Should have a name', () => { expect(error.name).to.be.equal('ArgumentOutOfRangeError'); }); it('Should have a message', () => { expect(error.message).to.be.equal('argument out of range'); }); it('Should have a stack', () => { expect(error.stack).to.be.a('string'); }); }); rxjs-7.5.7/spec/util/EmptyError-spec.ts000066400000000000000000000007001431412030200200220ustar00rootroot00000000000000import { expect } from 'chai'; import { EmptyError } from 'rxjs'; /** @test {EmptyError} */ describe('EmptyError', () => { const error = new EmptyError(); it('Should have a name', () => { expect(error.name).to.be.equal('EmptyError'); }); it('Should have a message', () => { expect(error.message).to.be.equal('no elements in sequence'); }); it('Should have a stack', () => { expect(error.stack).to.be.a('string'); }); }); rxjs-7.5.7/spec/util/Immediate-spec.ts000066400000000000000000000025511431412030200176160ustar00rootroot00000000000000import { expect } from 'chai'; // TODO: import was changed due to the fact that at startup the test referred to rxjs from node_modules import { Immediate, TestTools } from '../../src/internal/util/Immediate'; describe('Immediate', () => { it('should schedule on the next microtask', (done) => { const results: number[] = []; results.push(1); setTimeout(() => results.push(5)); Immediate.setImmediate(() => results.push(3)); results.push(2); Promise.resolve().then(() => results.push(4)); setTimeout(() => { expect(results).to.deep.equal([1, 2, 3, 4, 5]); done(); }); }); it('should cancel the task with clearImmediate', (done) => { const results: number[] = []; results.push(1); setTimeout(() => results.push(5)); const handle = Immediate.setImmediate(() => results.push(3)); Immediate.clearImmediate(handle); results.push(2); Promise.resolve().then(() => results.push(4)); setTimeout(() => { expect(results).to.deep.equal([1, 2, 4, 5]); done(); }); }); it('should clear the task after execution', (done) => { const results: number[] = []; Immediate.setImmediate(() => results.push(1)); Immediate.setImmediate(() => results.push(2)); setTimeout(() => { const number = TestTools.pending(); expect(number).to.equal(0); done(); }); }); }); rxjs-7.5.7/spec/util/ObjectUnsubscribedError-spec.ts000066400000000000000000000007751431412030200225170ustar00rootroot00000000000000import { expect } from 'chai'; import { ObjectUnsubscribedError } from 'rxjs'; /** @test {ObjectUnsubscribedError} */ describe('ObjectUnsubscribedError', () => { const error = new ObjectUnsubscribedError(); it('Should have a name', () => { expect(error.name).to.be.equal('ObjectUnsubscribedError'); }); it('Should have a message', () => { expect(error.message).to.be.equal('object unsubscribed'); }); it('Should have a stack', () => { expect(error.stack).to.be.a('string'); }); }); rxjs-7.5.7/spec/util/TimeoutError-spec.ts000066400000000000000000000007071431412030200203610ustar00rootroot00000000000000import { expect } from 'chai'; import { TimeoutError } from 'rxjs'; /** @test {TimeoutError} */ describe('TimeoutError', () => { const error = new TimeoutError(); it('Should have a name', () => { expect(error.name).to.be.equal('TimeoutError'); }); it('Should have a message', () => { expect(error.message).to.be.equal('Timeout has occurred'); }); it('Should have a stack', () => { expect(error.stack).to.be.a('string'); }); }); rxjs-7.5.7/spec/util/UnsubscriptionError-spec.ts000066400000000000000000000020311431412030200217520ustar00rootroot00000000000000import { expect } from 'chai'; import { UnsubscriptionError, Observable, timer, merge } from 'rxjs'; /** @test {UnsubscriptionError} */ describe('UnsubscriptionError', () => { it('should create a message that is a clear indication of its internal errors', () => { const err1 = new Error('Swiss cheese tastes amazing but smells like socks'); const err2 = new Error('User too big to fit in tiny European elevator'); const source1 = new Observable(() => () => { throw err1; }); const source2 = timer(1000); const source3 = new Observable(() => () => { throw err2; }); const source = merge(source1, source2, source3); const subscription = source.subscribe(); try { subscription.unsubscribe(); } catch (err) { if (err instanceof UnsubscriptionError) { expect(err.errors).to.deep.equal([err1, err2]); expect(err.name).to.equal('UnsubscriptionError'); expect(err.stack).to.be.a('string'); } else { throw new TypeError('Invalid error type'); } } }); }); rxjs-7.5.7/spec/util/createErrorClass-spec.ts000066400000000000000000000017071431412030200211650ustar00rootroot00000000000000/** @prettier */ import { createErrorClass } from 'rxjs/internal/util/createErrorClass'; import { expect } from 'chai'; describe('createErrorClass', () => { it('should create a class that subclasses error and has the right properties', () => { const MySpecialError: any = createErrorClass( (_super) => function MySpecialError(this: any, arg1: number, arg2: string) { _super(this); this.message = 'Super special error!'; this.arg1 = arg1; this.arg2 = arg2; } ); expect(MySpecialError).to.be.a('function'); const err = new MySpecialError(123, 'Test'); expect(err).to.be.an.instanceOf(Error); expect(err).to.be.an.instanceOf(MySpecialError); expect(err.constructor).to.equal(MySpecialError); expect(err.stack).to.be.a('string'); expect(err.message).to.equal('Super special error!'); expect(err.arg1).to.equal(123); expect(err.arg2).to.equal('Test'); }); }); rxjs-7.5.7/spec/util/isObservable-spec.ts000066400000000000000000000015311431412030200203350ustar00rootroot00000000000000import { Observable, isObservable } from 'rxjs'; import { expect } from 'chai'; describe('isObservable', () => { it('should return true for RxJS Observable', () => { const o = new Observable(); expect(isObservable(o)).to.be.true; }); it('should return true for an observable that comes from another RxJS 5+ library', () => { const o: any = { lift() { /* noop */ }, subscribe() { /* noop */ }, }; expect(isObservable(o)).to.be.true; }); it('should NOT return true for any old subscribable', () => { const o: any = { subscribe() { /* noop */ }, }; expect(isObservable(o)).to.be.false; }); it('should return false for null', () => { expect(isObservable(null)).to.be.false; }); it('should return false for a number', () => { expect(isObservable(1)).to.be.false; }); }); rxjs-7.5.7/spec/util/isPromise-spec.ts000066400000000000000000000017151431412030200176730ustar00rootroot00000000000000import { of } from 'rxjs'; import { expect } from 'chai'; import { isPromise } from 'rxjs/internal/util/isPromise'; describe('isPromise', () => { it('should return true for new Promise', () => { const o = new Promise(() => null); expect(isPromise(o)).to.be.true; }); it('should return true for a Promise that comes from an Observable', () => { const o: any = of(null).toPromise(); expect(isPromise(o)).to.be.true; }); it('should NOT return true for any Observable', () => { const o: any = of(null); expect(isPromise(o)).to.be.false; }); it('should return false for null', () => { expect(isPromise(null)).to.be.false; }); it('should return false for undefined', () => { expect(isPromise(undefined)).to.be.false; }); it('should return false for a number', () => { expect(isPromise(1)).to.be.false; }); it('should return false for a string', () => { expect(isPromise('1')).to.be.false; }); }); rxjs-7.5.7/spec/util/pipe-spec.ts000066400000000000000000000014261431412030200166550ustar00rootroot00000000000000import { expect } from 'chai'; import { pipe } from 'rxjs'; describe('pipe', () => { it('should exist', () => { expect(pipe).to.be.a('function'); }); it('should pipe two functions together', () => { const a = (x: number) => x + x; const b = (x: number) => x - 1; const c = pipe(a, b); expect(c).to.be.a('function'); expect(c(1)).to.equal(1); expect(c(10)).to.equal(19); }); it('should return the same function if only one is passed', () => { const a = (x: T) => x; const c = pipe(a); expect(c).to.equal(a); }); it('should return the identity if not passed any functions', () => { const c = pipe(); expect(c('whatever')).to.equal('whatever'); const someObj = {}; expect(c(someObj)).to.equal(someObj); }); }); rxjs-7.5.7/spec/websocket/000077500000000000000000000000001431412030200154265ustar00rootroot00000000000000rxjs-7.5.7/spec/websocket/index-spec.ts000066400000000000000000000003341431412030200200350ustar00rootroot00000000000000import * as index from 'rxjs/webSocket'; import { expect } from 'chai'; describe('index', () => { it('should export static websocket subject creator functions', () => { expect(index.webSocket).to.exist; }); }); rxjs-7.5.7/src/000077500000000000000000000000001431412030200132755ustar00rootroot00000000000000rxjs-7.5.7/src/Rx.global.js000066400000000000000000000002111431412030200154550ustar00rootroot00000000000000(function (root, factory) { root.Rx = factory(); })(window || global || this, function () { return require('../dist/package/Rx'); });rxjs-7.5.7/src/ajax/000077500000000000000000000000001431412030200142205ustar00rootroot00000000000000rxjs-7.5.7/src/ajax/index.ts000066400000000000000000000004041431412030200156750ustar00rootroot00000000000000export { ajax } from '../internal/ajax/ajax'; export { AjaxError, AjaxTimeoutError } from '../internal/ajax/errors'; export { AjaxResponse } from '../internal/ajax/AjaxResponse'; export { AjaxRequest, AjaxConfig, AjaxDirection } from '../internal/ajax/types'; rxjs-7.5.7/src/fetch/000077500000000000000000000000001431412030200143665ustar00rootroot00000000000000rxjs-7.5.7/src/fetch/index.ts000066400000000000000000000000761431412030200160500ustar00rootroot00000000000000export { fromFetch } from '../internal/observable/dom/fetch'; rxjs-7.5.7/src/index.ts000066400000000000000000000256041431412030200147630ustar00rootroot00000000000000////////////////////////////////////////////////////////// // Here we need to reference our other deep imports // so VS code will figure out where they are // see conversation here: // https://github.com/microsoft/TypeScript/issues/43034 ////////////////////////////////////////////////////////// // tslint:disable: no-reference // It's tempting to add references to all of the deep-import locations, but // adding references to those that require DOM types breaks Node projects. /// /// // tslint:enable: no-reference /* Observable */ export { Observable } from './internal/Observable'; export { ConnectableObservable } from './internal/observable/ConnectableObservable'; export { GroupedObservable } from './internal/operators/groupBy'; export { Operator } from './internal/Operator'; export { observable } from './internal/symbol/observable'; export { animationFrames } from './internal/observable/dom/animationFrames'; /* Subjects */ export { Subject } from './internal/Subject'; export { BehaviorSubject } from './internal/BehaviorSubject'; export { ReplaySubject } from './internal/ReplaySubject'; export { AsyncSubject } from './internal/AsyncSubject'; /* Schedulers */ export { asap, asapScheduler } from './internal/scheduler/asap'; export { async, asyncScheduler } from './internal/scheduler/async'; export { queue, queueScheduler } from './internal/scheduler/queue'; export { animationFrame, animationFrameScheduler } from './internal/scheduler/animationFrame'; export { VirtualTimeScheduler, VirtualAction } from './internal/scheduler/VirtualTimeScheduler'; export { Scheduler } from './internal/Scheduler'; /* Subscription */ export { Subscription } from './internal/Subscription'; export { Subscriber } from './internal/Subscriber'; /* Notification */ export { Notification, NotificationKind } from './internal/Notification'; /* Utils */ export { pipe } from './internal/util/pipe'; export { noop } from './internal/util/noop'; export { identity } from './internal/util/identity'; export { isObservable } from './internal/util/isObservable'; /* Promise Conversion */ export { lastValueFrom } from './internal/lastValueFrom'; export { firstValueFrom } from './internal/firstValueFrom'; /* Error types */ export { ArgumentOutOfRangeError } from './internal/util/ArgumentOutOfRangeError'; export { EmptyError } from './internal/util/EmptyError'; export { NotFoundError } from './internal/util/NotFoundError'; export { ObjectUnsubscribedError } from './internal/util/ObjectUnsubscribedError'; export { SequenceError } from './internal/util/SequenceError'; export { TimeoutError } from './internal/operators/timeout'; export { UnsubscriptionError } from './internal/util/UnsubscriptionError'; /* Static observable creation exports */ export { bindCallback } from './internal/observable/bindCallback'; export { bindNodeCallback } from './internal/observable/bindNodeCallback'; export { combineLatest } from './internal/observable/combineLatest'; export { concat } from './internal/observable/concat'; export { connectable } from './internal/observable/connectable'; export { defer } from './internal/observable/defer'; export { empty } from './internal/observable/empty'; export { forkJoin } from './internal/observable/forkJoin'; export { from } from './internal/observable/from'; export { fromEvent } from './internal/observable/fromEvent'; export { fromEventPattern } from './internal/observable/fromEventPattern'; export { generate } from './internal/observable/generate'; export { iif } from './internal/observable/iif'; export { interval } from './internal/observable/interval'; export { merge } from './internal/observable/merge'; export { never } from './internal/observable/never'; export { of } from './internal/observable/of'; export { onErrorResumeNext } from './internal/observable/onErrorResumeNext'; export { pairs } from './internal/observable/pairs'; export { partition } from './internal/observable/partition'; export { race } from './internal/observable/race'; export { range } from './internal/observable/range'; export { throwError } from './internal/observable/throwError'; export { timer } from './internal/observable/timer'; export { using } from './internal/observable/using'; export { zip } from './internal/observable/zip'; export { scheduled } from './internal/scheduled/scheduled'; /* Constants */ export { EMPTY } from './internal/observable/empty'; export { NEVER } from './internal/observable/never'; /* Types */ export * from './internal/types'; /* Config */ export { config, GlobalConfig } from './internal/config'; /* Operators */ export { audit } from './internal/operators/audit'; export { auditTime } from './internal/operators/auditTime'; export { buffer } from './internal/operators/buffer'; export { bufferCount } from './internal/operators/bufferCount'; export { bufferTime } from './internal/operators/bufferTime'; export { bufferToggle } from './internal/operators/bufferToggle'; export { bufferWhen } from './internal/operators/bufferWhen'; export { catchError } from './internal/operators/catchError'; export { combineAll } from './internal/operators/combineAll'; export { combineLatestAll } from './internal/operators/combineLatestAll'; export { combineLatestWith } from './internal/operators/combineLatestWith'; export { concatAll } from './internal/operators/concatAll'; export { concatMap } from './internal/operators/concatMap'; export { concatMapTo } from './internal/operators/concatMapTo'; export { concatWith } from './internal/operators/concatWith'; export { connect, ConnectConfig } from './internal/operators/connect'; export { count } from './internal/operators/count'; export { debounce } from './internal/operators/debounce'; export { debounceTime } from './internal/operators/debounceTime'; export { defaultIfEmpty } from './internal/operators/defaultIfEmpty'; export { delay } from './internal/operators/delay'; export { delayWhen } from './internal/operators/delayWhen'; export { dematerialize } from './internal/operators/dematerialize'; export { distinct } from './internal/operators/distinct'; export { distinctUntilChanged } from './internal/operators/distinctUntilChanged'; export { distinctUntilKeyChanged } from './internal/operators/distinctUntilKeyChanged'; export { elementAt } from './internal/operators/elementAt'; export { endWith } from './internal/operators/endWith'; export { every } from './internal/operators/every'; export { exhaust } from './internal/operators/exhaust'; export { exhaustAll } from './internal/operators/exhaustAll'; export { exhaustMap } from './internal/operators/exhaustMap'; export { expand } from './internal/operators/expand'; export { filter } from './internal/operators/filter'; export { finalize } from './internal/operators/finalize'; export { find } from './internal/operators/find'; export { findIndex } from './internal/operators/findIndex'; export { first } from './internal/operators/first'; export { groupBy, BasicGroupByOptions, GroupByOptionsWithElement } from './internal/operators/groupBy'; export { ignoreElements } from './internal/operators/ignoreElements'; export { isEmpty } from './internal/operators/isEmpty'; export { last } from './internal/operators/last'; export { map } from './internal/operators/map'; export { mapTo } from './internal/operators/mapTo'; export { materialize } from './internal/operators/materialize'; export { max } from './internal/operators/max'; export { mergeAll } from './internal/operators/mergeAll'; export { flatMap } from './internal/operators/flatMap'; export { mergeMap } from './internal/operators/mergeMap'; export { mergeMapTo } from './internal/operators/mergeMapTo'; export { mergeScan } from './internal/operators/mergeScan'; export { mergeWith } from './internal/operators/mergeWith'; export { min } from './internal/operators/min'; export { multicast } from './internal/operators/multicast'; export { observeOn } from './internal/operators/observeOn'; export { pairwise } from './internal/operators/pairwise'; export { pluck } from './internal/operators/pluck'; export { publish } from './internal/operators/publish'; export { publishBehavior } from './internal/operators/publishBehavior'; export { publishLast } from './internal/operators/publishLast'; export { publishReplay } from './internal/operators/publishReplay'; export { raceWith } from './internal/operators/raceWith'; export { reduce } from './internal/operators/reduce'; export { repeat } from './internal/operators/repeat'; export { repeatWhen } from './internal/operators/repeatWhen'; export { retry, RetryConfig } from './internal/operators/retry'; export { retryWhen } from './internal/operators/retryWhen'; export { refCount } from './internal/operators/refCount'; export { sample } from './internal/operators/sample'; export { sampleTime } from './internal/operators/sampleTime'; export { scan } from './internal/operators/scan'; export { sequenceEqual } from './internal/operators/sequenceEqual'; export { share, ShareConfig } from './internal/operators/share'; export { shareReplay, ShareReplayConfig } from './internal/operators/shareReplay'; export { single } from './internal/operators/single'; export { skip } from './internal/operators/skip'; export { skipLast } from './internal/operators/skipLast'; export { skipUntil } from './internal/operators/skipUntil'; export { skipWhile } from './internal/operators/skipWhile'; export { startWith } from './internal/operators/startWith'; export { subscribeOn } from './internal/operators/subscribeOn'; export { switchAll } from './internal/operators/switchAll'; export { switchMap } from './internal/operators/switchMap'; export { switchMapTo } from './internal/operators/switchMapTo'; export { switchScan } from './internal/operators/switchScan'; export { take } from './internal/operators/take'; export { takeLast } from './internal/operators/takeLast'; export { takeUntil } from './internal/operators/takeUntil'; export { takeWhile } from './internal/operators/takeWhile'; export { tap } from './internal/operators/tap'; export { throttle, ThrottleConfig } from './internal/operators/throttle'; export { throttleTime } from './internal/operators/throttleTime'; export { throwIfEmpty } from './internal/operators/throwIfEmpty'; export { timeInterval } from './internal/operators/timeInterval'; export { timeout, TimeoutConfig, TimeoutInfo } from './internal/operators/timeout'; export { timeoutWith } from './internal/operators/timeoutWith'; export { timestamp } from './internal/operators/timestamp'; export { toArray } from './internal/operators/toArray'; export { window } from './internal/operators/window'; export { windowCount } from './internal/operators/windowCount'; export { windowTime } from './internal/operators/windowTime'; export { windowToggle } from './internal/operators/windowToggle'; export { windowWhen } from './internal/operators/windowWhen'; export { withLatestFrom } from './internal/operators/withLatestFrom'; export { zipAll } from './internal/operators/zipAll'; export { zipWith } from './internal/operators/zipWith'; rxjs-7.5.7/src/internal/000077500000000000000000000000001431412030200151115ustar00rootroot00000000000000rxjs-7.5.7/src/internal/AnyCatcher.ts000066400000000000000000000011451431412030200175030ustar00rootroot00000000000000/* * Note that we cannot apply the `internal` tag here because the declaration * needs to survive the `stripInternal` option. Otherwise, `AnyCatcher` will * be `any` in the `.d.ts` files. */ declare const anyCatcherSymbol: unique symbol; /** * This is just a type that we're using to identify `any` being passed to * function overloads. This is used because of situations like {@link forkJoin}, * where it could return an `Observable` or an `Observable<{ [key: K]: T }>`, * so `forkJoin(any)` would mean we need to return `Observable`. */ export type AnyCatcher = typeof anyCatcherSymbol; rxjs-7.5.7/src/internal/AsyncSubject.ts000066400000000000000000000020701431412030200200550ustar00rootroot00000000000000import { Subject } from './Subject'; import { Subscriber } from './Subscriber'; /** * A variant of Subject that only emits a value when it completes. It will emit * its latest value to all its observers on completion. * * @class AsyncSubject */ export class AsyncSubject extends Subject { private _value: T | null = null; private _hasValue = false; private _isComplete = false; /** @internal */ protected _checkFinalizedStatuses(subscriber: Subscriber) { const { hasError, _hasValue, _value, thrownError, isStopped, _isComplete } = this; if (hasError) { subscriber.error(thrownError); } else if (isStopped || _isComplete) { _hasValue && subscriber.next(_value!); subscriber.complete(); } } next(value: T): void { if (!this.isStopped) { this._value = value; this._hasValue = true; } } complete(): void { const { _hasValue, _value, _isComplete } = this; if (!_isComplete) { this._isComplete = true; _hasValue && super.next(_value!); super.complete(); } } } rxjs-7.5.7/src/internal/BehaviorSubject.ts000066400000000000000000000016201431412030200205370ustar00rootroot00000000000000import { Subject } from './Subject'; import { Subscriber } from './Subscriber'; import { Subscription } from './Subscription'; /** * A variant of Subject that requires an initial value and emits its current * value whenever it is subscribed to. * * @class BehaviorSubject */ export class BehaviorSubject extends Subject { constructor(private _value: T) { super(); } get value(): T { return this.getValue(); } /** @internal */ protected _subscribe(subscriber: Subscriber): Subscription { const subscription = super._subscribe(subscriber); !subscription.closed && subscriber.next(this._value); return subscription; } getValue(): T { const { hasError, thrownError, _value } = this; if (hasError) { throw thrownError; } this._throwIfClosed(); return _value; } next(value: T): void { super.next((this._value = value)); } } rxjs-7.5.7/src/internal/Notification.ts000066400000000000000000000254611431412030200201170ustar00rootroot00000000000000import { PartialObserver, ObservableNotification, CompleteNotification, NextNotification, ErrorNotification } from './types'; import { Observable } from './Observable'; import { EMPTY } from './observable/empty'; import { of } from './observable/of'; import { throwError } from './observable/throwError'; import { isFunction } from './util/isFunction'; // TODO: When this enum is removed, replace it with a type alias. See #4556. /** * @deprecated Use a string literal instead. `NotificationKind` will be replaced with a type alias in v8. * It will not be replaced with a const enum as those are not compatible with isolated modules. */ export enum NotificationKind { NEXT = 'N', ERROR = 'E', COMPLETE = 'C', } /** * Represents a push-based event or value that an {@link Observable} can emit. * This class is particularly useful for operators that manage notifications, * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and * others. Besides wrapping the actual delivered value, it also annotates it * with metadata of, for instance, what type of push message it is (`next`, * `error`, or `complete`). * * @see {@link materialize} * @see {@link dematerialize} * @see {@link observeOn} * @deprecated It is NOT recommended to create instances of `Notification` directly. * Rather, try to create POJOs matching the signature outlined in {@link ObservableNotification}. * For example: `{ kind: 'N', value: 1 }`, `{ kind: 'E', error: new Error('bad') }`, or `{ kind: 'C' }`. * Will be removed in v8. */ export class Notification { /** * A value signifying that the notification will "next" if observed. In truth, * This is really synonymous with just checking `kind === "N"`. * @deprecated Will be removed in v8. Instead, just check to see if the value of `kind` is `"N"`. */ readonly hasValue: boolean; /** * Creates a "Next" notification object. * @param kind Always `'N'` * @param value The value to notify with if observed. * @deprecated Internal implementation detail. Use {@link Notification#createNext createNext} instead. */ constructor(kind: 'N', value?: T); /** * Creates an "Error" notification object. * @param kind Always `'E'` * @param value Always `undefined` * @param error The error to notify with if observed. * @deprecated Internal implementation detail. Use {@link Notification#createError createError} instead. */ constructor(kind: 'E', value: undefined, error: any); /** * Creates a "completion" notification object. * @param kind Always `'C'` * @deprecated Internal implementation detail. Use {@link Notification#createComplete createComplete} instead. */ constructor(kind: 'C'); constructor(public readonly kind: 'N' | 'E' | 'C', public readonly value?: T, public readonly error?: any) { this.hasValue = kind === 'N'; } /** * Executes the appropriate handler on a passed `observer` given the `kind` of notification. * If the handler is missing it will do nothing. Even if the notification is an error, if * there is no error handler on the observer, an error will not be thrown, it will noop. * @param observer The observer to notify. */ observe(observer: PartialObserver): void { return observeNotification(this as ObservableNotification, observer); } /** * Executes a notification on the appropriate handler from a list provided. * If a handler is missing for the kind of notification, nothing is called * and no error is thrown, it will be a noop. * @param next A next handler * @param error An error handler * @param complete A complete handler * @deprecated Replaced with {@link Notification#observe observe}. Will be removed in v8. */ do(next: (value: T) => void, error: (err: any) => void, complete: () => void): void; /** * Executes a notification on the appropriate handler from a list provided. * If a handler is missing for the kind of notification, nothing is called * and no error is thrown, it will be a noop. * @param next A next handler * @param error An error handler * @deprecated Replaced with {@link Notification#observe observe}. Will be removed in v8. */ do(next: (value: T) => void, error: (err: any) => void): void; /** * Executes the next handler if the Notification is of `kind` `"N"`. Otherwise * this will not error, and it will be a noop. * @param next The next handler * @deprecated Replaced with {@link Notification#observe observe}. Will be removed in v8. */ do(next: (value: T) => void): void; do(nextHandler: (value: T) => void, errorHandler?: (err: any) => void, completeHandler?: () => void): void { const { kind, value, error } = this; return kind === 'N' ? nextHandler?.(value!) : kind === 'E' ? errorHandler?.(error) : completeHandler?.(); } /** * Executes a notification on the appropriate handler from a list provided. * If a handler is missing for the kind of notification, nothing is called * and no error is thrown, it will be a noop. * @param next A next handler * @param error An error handler * @param complete A complete handler * @deprecated Replaced with {@link Notification#observe observe}. Will be removed in v8. */ accept(next: (value: T) => void, error: (err: any) => void, complete: () => void): void; /** * Executes a notification on the appropriate handler from a list provided. * If a handler is missing for the kind of notification, nothing is called * and no error is thrown, it will be a noop. * @param next A next handler * @param error An error handler * @deprecated Replaced with {@link Notification#observe observe}. Will be removed in v8. */ accept(next: (value: T) => void, error: (err: any) => void): void; /** * Executes the next handler if the Notification is of `kind` `"N"`. Otherwise * this will not error, and it will be a noop. * @param next The next handler * @deprecated Replaced with {@link Notification#observe observe}. Will be removed in v8. */ accept(next: (value: T) => void): void; /** * Executes the appropriate handler on a passed `observer` given the `kind` of notification. * If the handler is missing it will do nothing. Even if the notification is an error, if * there is no error handler on the observer, an error will not be thrown, it will noop. * @param observer The observer to notify. * @deprecated Replaced with {@link Notification#observe observe}. Will be removed in v8. */ accept(observer: PartialObserver): void; accept(nextOrObserver: PartialObserver | ((value: T) => void), error?: (err: any) => void, complete?: () => void) { return isFunction((nextOrObserver as any)?.next) ? this.observe(nextOrObserver as PartialObserver) : this.do(nextOrObserver as (value: T) => void, error as any, complete as any); } /** * Returns a simple Observable that just delivers the notification represented * by this Notification instance. * * @deprecated Will be removed in v8. To convert a `Notification` to an {@link Observable}, * use {@link of} and {@link dematerialize}: `of(notification).pipe(dematerialize())`. */ toObservable(): Observable { const { kind, value, error } = this; // Select the observable to return by `kind` const result = kind === 'N' ? // Next kind. Return an observable of that value. of(value!) : // kind === 'E' ? // Error kind. Return an observable that emits the error. throwError(() => error) : // kind === 'C' ? // Completion kind. Kind is "C", return an observable that just completes. EMPTY : // Unknown kind, return falsy, so we error below. 0; if (!result) { // TODO: consider removing this check. The only way to cause this would be to // use the Notification constructor directly in a way that is not type-safe. // and direct use of the Notification constructor is deprecated. throw new TypeError(`Unexpected notification kind ${kind}`); } return result; } private static completeNotification = new Notification('C') as Notification & CompleteNotification; /** * A shortcut to create a Notification instance of the type `next` from a * given value. * @param {T} value The `next` value. * @return {Notification} The "next" Notification representing the * argument. * @nocollapse * @deprecated It is NOT recommended to create instances of `Notification` directly. * Rather, try to create POJOs matching the signature outlined in {@link ObservableNotification}. * For example: `{ kind: 'N', value: 1 }`, `{ kind: 'E', error: new Error('bad') }`, or `{ kind: 'C' }`. * Will be removed in v8. */ static createNext(value: T) { return new Notification('N', value) as Notification & NextNotification; } /** * A shortcut to create a Notification instance of the type `error` from a * given error. * @param {any} [err] The `error` error. * @return {Notification} The "error" Notification representing the * argument. * @nocollapse * @deprecated It is NOT recommended to create instances of `Notification` directly. * Rather, try to create POJOs matching the signature outlined in {@link ObservableNotification}. * For example: `{ kind: 'N', value: 1 }`, `{ kind: 'E', error: new Error('bad') }`, or `{ kind: 'C' }`. * Will be removed in v8. */ static createError(err?: any) { return new Notification('E', undefined, err) as Notification & ErrorNotification; } /** * A shortcut to create a Notification instance of the type `complete`. * @return {Notification} The valueless "complete" Notification. * @nocollapse * @deprecated It is NOT recommended to create instances of `Notification` directly. * Rather, try to create POJOs matching the signature outlined in {@link ObservableNotification}. * For example: `{ kind: 'N', value: 1 }`, `{ kind: 'E', error: new Error('bad') }`, or `{ kind: 'C' }`. * Will be removed in v8. */ static createComplete(): Notification & CompleteNotification { return Notification.completeNotification; } } /** * Executes the appropriate handler on a passed `observer` given the `kind` of notification. * If the handler is missing it will do nothing. Even if the notification is an error, if * there is no error handler on the observer, an error will not be thrown, it will noop. * @param notification The notification object to observe. * @param observer The observer to notify. */ export function observeNotification(notification: ObservableNotification, observer: PartialObserver) { const { kind, value, error } = notification as any; if (typeof kind !== 'string') { throw new TypeError('Invalid notification, missing "kind"'); } kind === 'N' ? observer.next?.(value!) : kind === 'E' ? observer.error?.(error) : observer.complete?.(); } rxjs-7.5.7/src/internal/NotificationFactories.ts000066400000000000000000000022361431412030200217520ustar00rootroot00000000000000import { CompleteNotification, NextNotification, ErrorNotification } from './types'; /** * A completion object optimized for memory use and created to be the * same "shape" as other notifications in v8. * @internal */ export const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)(); /** * Internal use only. Creates an optimized error notification that is the same "shape" * as other notifications. * @internal */ export function errorNotification(error: any): ErrorNotification { return createNotification('E', undefined, error) as any; } /** * Internal use only. Creates an optimized next notification that is the same "shape" * as other notifications. * @internal */ export function nextNotification(value: T) { return createNotification('N', value, undefined) as NextNotification; } /** * Ensures that all notifications created internally have the same "shape" in v8. * * TODO: This is only exported to support a crazy legacy test in `groupBy`. * @internal */ export function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) { return { kind, value, error, }; } rxjs-7.5.7/src/internal/Observable.ts000066400000000000000000000473331431412030200175570ustar00rootroot00000000000000import { Operator } from './Operator'; import { SafeSubscriber, Subscriber } from './Subscriber'; import { isSubscription, Subscription } from './Subscription'; import { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types'; import { observable as Symbol_observable } from './symbol/observable'; import { pipeFromArray } from './util/pipe'; import { config } from './config'; import { isFunction } from './util/isFunction'; import { errorContext } from './util/errorContext'; /** * A representation of any set of values over any amount of time. This is the most basic building block * of RxJS. * * @class Observable */ export class Observable implements Subscribable { /** * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ source: Observable | undefined; /** * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ operator: Operator | undefined; /** * @constructor * @param {Function} subscribe the function that is called when the Observable is * initially subscribed to. This function is given a Subscriber, to which new values * can be `next`ed, or an `error` method can be called to raise an error, or * `complete` can be called to notify of a successful completion. */ constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) { if (subscribe) { this._subscribe = subscribe; } } // HACK: Since TypeScript inherits static properties too, we have to // fight against TypeScript here so Subject can have a different static create signature /** * Creates a new Observable by calling the Observable constructor * @owner Observable * @method create * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor * @return {Observable} a new observable * @nocollapse * @deprecated Use `new Observable()` instead. Will be removed in v8. */ static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => { return new Observable(subscribe); }; /** * Creates a new Observable, with this Observable instance as the source, and the passed * operator defined as the new observable's operator. * @method lift * @param operator the operator defining the operation to take on the observable * @return a new observable with the Operator applied * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. * If you have implemented an operator using `lift`, it is recommended that you create an * operator by simply returning `new Observable()` directly. See "Creating new operators from * scratch" section here: https://rxjs.dev/guide/operators */ lift(operator?: Operator): Observable { const observable = new Observable(); observable.source = this; observable.operator = operator; return observable; } subscribe(observer?: Partial>): Subscription; subscribe(next: (value: T) => void): Subscription; /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */ subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription; /** * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit. * * Use it when you have all these Observables, but still nothing is happening. * * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It * might be for example a function that you passed to Observable's constructor, but most of the time it is * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often * the thought. * * Apart from starting the execution of an Observable, this method allows you to listen for values * that an Observable emits, as well as for when it completes or errors. You can achieve this in two * of the following ways. * * The first way is creating an object that implements {@link Observer} interface. It should have methods * defined by that interface, but note that it should be just a regular JavaScript object, which you can create * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also * that your object does not have to implement all methods. If you find yourself creating a method that doesn't * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens, * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead, * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide * an `error` method to avoid missing thrown errors. * * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods. * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer, * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`, * since `subscribe` recognizes these functions by where they were placed in function call. When it comes * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously. * * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events * and you also handled emissions internally by using operators (e.g. using `tap`). * * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object. * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable. * * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously. * It is an Observable itself that decides when these functions will be called. For example {@link of} * by default emits all its values synchronously. Always check documentation for how given Observable * will behave when subscribed and if its default behavior can be modified with a `scheduler`. * * #### Examples * * Subscribe with an {@link guide/observer Observer} * * ```ts * import { of } from 'rxjs'; * * const sumObserver = { * sum: 0, * next(value) { * console.log('Adding: ' + value); * this.sum = this.sum + value; * }, * error() { * // We actually could just remove this method, * // since we do not really care about errors right now. * }, * complete() { * console.log('Sum equals: ' + this.sum); * } * }; * * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes. * .subscribe(sumObserver); * * // Logs: * // 'Adding: 1' * // 'Adding: 2' * // 'Adding: 3' * // 'Sum equals: 6' * ``` * * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated}) * * ```ts * import { of } from 'rxjs' * * let sum = 0; * * of(1, 2, 3).subscribe( * value => { * console.log('Adding: ' + value); * sum = sum + value; * }, * undefined, * () => console.log('Sum equals: ' + sum) * ); * * // Logs: * // 'Adding: 1' * // 'Adding: 2' * // 'Adding: 3' * // 'Sum equals: 6' * ``` * * Cancel a subscription * * ```ts * import { interval } from 'rxjs'; * * const subscription = interval(1000).subscribe({ * next(num) { * console.log(num) * }, * complete() { * // Will not be called, even when cancelling subscription. * console.log('completed!'); * } * }); * * setTimeout(() => { * subscription.unsubscribe(); * console.log('unsubscribed!'); * }, 2500); * * // Logs: * // 0 after 1s * // 1 after 2s * // 'unsubscribed!' after 2.5s * ``` * * @param {Observer|Function} observerOrNext (optional) Either an observer with methods to be called, * or the first of three possible handlers, which is the handler for each value emitted from the subscribed * Observable. * @param {Function} error (optional) A handler for a terminal event resulting from an error. If no error handler is provided, * the error will be thrown asynchronously as unhandled. * @param {Function} complete (optional) A handler for a terminal event resulting from successful completion. * @return {Subscription} a subscription reference to the registered handlers * @method subscribe */ subscribe( observerOrNext?: Partial> | ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null ): Subscription { const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete); errorContext(() => { const { operator, source } = this; subscriber.add( operator ? // We're dealing with a subscription in the // operator chain to one of our lifted operators. operator.call(subscriber, source) : source ? // If `source` has a value, but `operator` does not, something that // had intimate knowledge of our API, like our `Subject`, must have // set it. We're going to just call `_subscribe` directly. this._subscribe(subscriber) : // In all other cases, we're likely wrapping a user-provided initializer // function, so we need to catch errors and handle them appropriately. this._trySubscribe(subscriber) ); }); return subscriber; } /** @internal */ protected _trySubscribe(sink: Subscriber): TeardownLogic { try { return this._subscribe(sink); } catch (err) { // We don't need to return anything in this case, // because it's just going to try to `add()` to a subscription // above. sink.error(err); } } /** * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with * APIs that expect promises, like `async/await`. You cannot unsubscribe from this. * * **WARNING**: Only use this with observables you *know* will complete. If the source * observable does not complete, you will end up with a promise that is hung up, and * potentially all of the state of an async function hanging out in memory. To avoid * this situation, look into adding something like {@link timeout}, {@link take}, * {@link takeWhile}, or {@link takeUntil} amongst others. * * #### Example * * ```ts * import { interval, take } from 'rxjs'; * * const source$ = interval(1000).pipe(take(4)); * * async function getTotal() { * let total = 0; * * await source$.forEach(value => { * total += value; * console.log('observable -> ' + value); * }); * * return total; * } * * getTotal().then( * total => console.log('Total: ' + total) * ); * * // Expected: * // 'observable -> 0' * // 'observable -> 1' * // 'observable -> 2' * // 'observable -> 3' * // 'Total: 6' * ``` * * @param next a handler for each value emitted by the observable * @return a promise that either resolves on observable completion or * rejects with the handled error */ forEach(next: (value: T) => void): Promise; /** * @param next a handler for each value emitted by the observable * @param promiseCtor a constructor function used to instantiate the Promise * @return a promise that either resolves on observable completion or * rejects with the handled error * @deprecated Passing a Promise constructor will no longer be available * in upcoming versions of RxJS. This is because it adds weight to the library, for very * little benefit. If you need this functionality, it is recommended that you either * polyfill Promise, or you create an adapter to convert the returned native promise * to whatever promise implementation you wanted. Will be removed in v8. */ forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise; forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise { promiseCtor = getPromiseCtor(promiseCtor); return new promiseCtor((resolve, reject) => { const subscriber = new SafeSubscriber({ next: (value) => { try { next(value); } catch (err) { reject(err); subscriber.unsubscribe(); } }, error: reject, complete: resolve, }); this.subscribe(subscriber); }) as Promise; } /** @internal */ protected _subscribe(subscriber: Subscriber): TeardownLogic { return this.source?.subscribe(subscriber); } /** * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable * @method Symbol.observable * @return {Observable} this instance of the observable */ [Symbol_observable]() { return this; } /* tslint:disable:max-line-length */ pipe(): Observable; pipe(op1: OperatorFunction): Observable; pipe(op1: OperatorFunction, op2: OperatorFunction): Observable; pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable; pipe( op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction ): Observable; pipe( op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction ): Observable; pipe( op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction ): Observable; pipe( op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction ): Observable; pipe( op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction ): Observable; pipe( op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction ): Observable; pipe( op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction, op4: OperatorFunction, op5: OperatorFunction, op6: OperatorFunction, op7: OperatorFunction, op8: OperatorFunction, op9: OperatorFunction, ...operations: OperatorFunction[] ): Observable; /* tslint:enable:max-line-length */ /** * Used to stitch together functional operators into a chain. * @method pipe * @return {Observable} the Observable result of all of the operators having * been called in the order they were passed in. * * ## Example * * ```ts * import { interval, filter, map, scan } from 'rxjs'; * * interval(1000) * .pipe( * filter(x => x % 2 === 0), * map(x => x + x), * scan((acc, x) => acc + x) * ) * .subscribe(x => console.log(x)); * ``` */ pipe(...operations: OperatorFunction[]): Observable { return pipeFromArray(operations)(this); } /* tslint:disable:max-line-length */ /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */ toPromise(): Promise; /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */ toPromise(PromiseCtor: typeof Promise): Promise; /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */ toPromise(PromiseCtor: PromiseConstructorLike): Promise; /* tslint:enable:max-line-length */ /** * Subscribe to this Observable and get a Promise resolving on * `complete` with the last emission (if any). * * **WARNING**: Only use this with observables you *know* will complete. If the source * observable does not complete, you will end up with a promise that is hung up, and * potentially all of the state of an async function hanging out in memory. To avoid * this situation, look into adding something like {@link timeout}, {@link take}, * {@link takeWhile}, or {@link takeUntil} amongst others. * * @method toPromise * @param [promiseCtor] a constructor function used to instantiate * the Promise * @return A Promise that resolves with the last value emit, or * rejects on an error. If there were no emissions, Promise * resolves with undefined. * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */ toPromise(promiseCtor?: PromiseConstructorLike): Promise { promiseCtor = getPromiseCtor(promiseCtor); return new promiseCtor((resolve, reject) => { let value: T | undefined; this.subscribe( (x: T) => (value = x), (err: any) => reject(err), () => resolve(value) ); }) as Promise; } } /** * Decides between a passed promise constructor from consuming code, * A default configured promise constructor, and the native promise * constructor and returns it. If nothing can be found, it will throw * an error. * @param promiseCtor The optional promise constructor to passed by consuming code */ function getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) { return promiseCtor ?? config.Promise ?? Promise; } function isObserver(value: any): value is Observer { return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete); } function isSubscriber(value: any): value is Subscriber { return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value)); } rxjs-7.5.7/src/internal/Operator.ts000066400000000000000000000004421431412030200172540ustar00rootroot00000000000000import { Subscriber } from './Subscriber'; import { TeardownLogic } from './types'; /*** * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ export interface Operator { call(subscriber: Subscriber, source: any): TeardownLogic; } rxjs-7.5.7/src/internal/ReplaySubject.ts000066400000000000000000000113021431412030200202320ustar00rootroot00000000000000import { Subject } from './Subject'; import { TimestampProvider } from './types'; import { Subscriber } from './Subscriber'; import { Subscription } from './Subscription'; import { dateTimestampProvider } from './scheduler/dateTimestampProvider'; /** * A variant of {@link Subject} that "replays" old values to new subscribers by emitting them when they first subscribe. * * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`, * `ReplaySubject` "observes" values by having them passed to its `next` method. When it observes a value, it will store that * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor. * * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will * error if it has observed an error. * * There are two main configuration items to be concerned with: * * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite. * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer. * * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`. * * ### Differences with BehaviorSubject * * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions: * * 1. `BehaviorSubject` comes "primed" with a single value upon construction. * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not. * * @see {@link Subject} * @see {@link BehaviorSubject} * @see {@link shareReplay} */ export class ReplaySubject extends Subject { private _buffer: (T | number)[] = []; private _infiniteTimeWindow = true; /** * @param bufferSize The size of the buffer to replay on subscription * @param windowTime The amount of time the buffered items will say buffered * @param timestampProvider An object with a `now()` method that provides the current timestamp. This is used to * calculate the amount of time something has been buffered. */ constructor( private _bufferSize = Infinity, private _windowTime = Infinity, private _timestampProvider: TimestampProvider = dateTimestampProvider ) { super(); this._infiniteTimeWindow = _windowTime === Infinity; this._bufferSize = Math.max(1, _bufferSize); this._windowTime = Math.max(1, _windowTime); } next(value: T): void { const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this; if (!isStopped) { _buffer.push(value); !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime); } this._trimBuffer(); super.next(value); } /** @internal */ protected _subscribe(subscriber: Subscriber): Subscription { this._throwIfClosed(); this._trimBuffer(); const subscription = this._innerSubscribe(subscriber); const { _infiniteTimeWindow, _buffer } = this; // We use a copy here, so reentrant code does not mutate our array while we're // emitting it to a new subscriber. const copy = _buffer.slice(); for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) { subscriber.next(copy[i] as T); } this._checkFinalizedStatuses(subscriber); return subscription; } private _trimBuffer() { const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this; // If we don't have an infinite buffer size, and we're over the length, // use splice to truncate the old buffer values off. Note that we have to // double the size for instances where we're not using an infinite time window // because we're storing the values and the timestamps in the same array. const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize; _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize); // Now, if we're not in an infinite time window, remove all values where the time is // older than what is allowed. if (!_infiniteTimeWindow) { const now = _timestampProvider.now(); let last = 0; // Search the array for the first timestamp that isn't expired and // truncate the buffer up to that point. for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) { last = i; } last && _buffer.splice(0, last + 1); } } } rxjs-7.5.7/src/internal/Scheduler.ts000066400000000000000000000047261431412030200174100ustar00rootroot00000000000000import { Action } from './scheduler/Action'; import { Subscription } from './Subscription'; import { SchedulerLike, SchedulerAction } from './types'; import { dateTimestampProvider } from './scheduler/dateTimestampProvider'; /** * An execution context and a data structure to order tasks and schedule their * execution. Provides a notion of (potentially virtual) time, through the * `now()` getter method. * * Each unit of work in a Scheduler is called an `Action`. * * ```ts * class Scheduler { * now(): number; * schedule(work, delay?, state?): Subscription; * } * ``` * * @class Scheduler * @deprecated Scheduler is an internal implementation detail of RxJS, and * should not be used directly. Rather, create your own class and implement * {@link SchedulerLike}. Will be made internal in v8. */ export class Scheduler implements SchedulerLike { public static now: () => number = dateTimestampProvider.now; constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) { this.now = now; } /** * A getter method that returns a number representing the current time * (at the time this function was called) according to the scheduler's own * internal clock. * @return {number} A number that represents the current time. May or may not * have a relation to wall-clock time. May or may not refer to a time unit * (e.g. milliseconds). */ public now: () => number; /** * Schedules a function, `work`, for execution. May happen at some point in * the future, according to the `delay` parameter, if specified. May be passed * some context object, `state`, which will be passed to the `work` function. * * The given arguments will be processed an stored as an Action object in a * queue of actions. * * @param {function(state: ?T): ?Subscription} work A function representing a * task, or some unit of work to be executed by the Scheduler. * @param {number} [delay] Time to wait before executing the work, where the * time unit is implicit and defined by the Scheduler itself. * @param {T} [state] Some contextual data that the `work` function uses when * called by the Scheduler. * @return {Subscription} A subscription in order to be able to unsubscribe * the scheduled work. */ public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription { return new this.schedulerActionCtor(this, work).schedule(state, delay); } } rxjs-7.5.7/src/internal/Subject.ts000066400000000000000000000126711431412030200170670ustar00rootroot00000000000000import { Operator } from './Operator'; import { Observable } from './Observable'; import { Subscriber } from './Subscriber'; import { Subscription, EMPTY_SUBSCRIPTION } from './Subscription'; import { Observer, SubscriptionLike, TeardownLogic } from './types'; import { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError'; import { arrRemove } from './util/arrRemove'; import { errorContext } from './util/errorContext'; /** * A Subject is a special type of Observable that allows values to be * multicasted to many Observers. Subjects are like EventEmitters. * * Every Subject is an Observable and an Observer. You can subscribe to a * Subject, and you can call next to feed values as well as error and complete. */ export class Subject extends Observable implements SubscriptionLike { closed = false; private currentObservers: Observer[] | null = null; /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ observers: Observer[] = []; /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ isStopped = false; /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ hasError = false; /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ thrownError: any = null; /** * Creates a "subject" by basically gluing an observer to an observable. * * @nocollapse * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion. */ static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => { return new AnonymousSubject(destination, source); }; constructor() { // NOTE: This must be here to obscure Observable's constructor. super(); } /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ lift(operator: Operator): Observable { const subject = new AnonymousSubject(this, this); subject.operator = operator as any; return subject as any; } /** @internal */ protected _throwIfClosed() { if (this.closed) { throw new ObjectUnsubscribedError(); } } next(value: T) { errorContext(() => { this._throwIfClosed(); if (!this.isStopped) { if (!this.currentObservers) { this.currentObservers = Array.from(this.observers); } for (const observer of this.currentObservers) { observer.next(value); } } }); } error(err: any) { errorContext(() => { this._throwIfClosed(); if (!this.isStopped) { this.hasError = this.isStopped = true; this.thrownError = err; const { observers } = this; while (observers.length) { observers.shift()!.error(err); } } }); } complete() { errorContext(() => { this._throwIfClosed(); if (!this.isStopped) { this.isStopped = true; const { observers } = this; while (observers.length) { observers.shift()!.complete(); } } }); } unsubscribe() { this.isStopped = this.closed = true; this.observers = this.currentObservers = null!; } get observed() { return this.observers?.length > 0; } /** @internal */ protected _trySubscribe(subscriber: Subscriber): TeardownLogic { this._throwIfClosed(); return super._trySubscribe(subscriber); } /** @internal */ protected _subscribe(subscriber: Subscriber): Subscription { this._throwIfClosed(); this._checkFinalizedStatuses(subscriber); return this._innerSubscribe(subscriber); } /** @internal */ protected _innerSubscribe(subscriber: Subscriber) { const { hasError, isStopped, observers } = this; if (hasError || isStopped) { return EMPTY_SUBSCRIPTION; } this.currentObservers = null; observers.push(subscriber); return new Subscription(() => { this.currentObservers = null; arrRemove(observers, subscriber); }); } /** @internal */ protected _checkFinalizedStatuses(subscriber: Subscriber) { const { hasError, thrownError, isStopped } = this; if (hasError) { subscriber.error(thrownError); } else if (isStopped) { subscriber.complete(); } } /** * Creates a new Observable with this Subject as the source. You can do this * to create custom Observer-side logic of the Subject and conceal it from * code that uses the Observable. * @return {Observable} Observable that the Subject casts to */ asObservable(): Observable { const observable: any = new Observable(); observable.source = this; return observable; } } /** * @class AnonymousSubject */ export class AnonymousSubject extends Subject { constructor( /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ public destination?: Observer, source?: Observable ) { super(); this.source = source; } next(value: T) { this.destination?.next?.(value); } error(err: any) { this.destination?.error?.(err); } complete() { this.destination?.complete?.(); } /** @internal */ protected _subscribe(subscriber: Subscriber): Subscription { return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION; } } rxjs-7.5.7/src/internal/Subscriber.ts000066400000000000000000000215121431412030200175650ustar00rootroot00000000000000import { isFunction } from './util/isFunction'; import { Observer, ObservableNotification } from './types'; import { isSubscription, Subscription } from './Subscription'; import { config } from './config'; import { reportUnhandledError } from './util/reportUnhandledError'; import { noop } from './util/noop'; import { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories'; import { timeoutProvider } from './scheduler/timeoutProvider'; import { captureError } from './util/errorContext'; /** * Implements the {@link Observer} interface and extends the * {@link Subscription} class. While the {@link Observer} is the public API for * consuming the values of an {@link Observable}, all Observers get converted to * a Subscriber, in order to provide Subscription-like capabilities such as * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for * implementing operators, but it is rarely used as a public API. * * @class Subscriber */ export class Subscriber extends Subscription implements Observer { /** * A static factory for a Subscriber, given a (potentially partial) definition * of an Observer. * @param next The `next` callback of an Observer. * @param error The `error` callback of an * Observer. * @param complete The `complete` callback of an * Observer. * @return A Subscriber wrapping the (partially defined) * Observer represented by the given arguments. * @nocollapse * @deprecated Do not use. Will be removed in v8. There is no replacement for this * method, and there is no reason to be creating instances of `Subscriber` directly. * If you have a specific use case, please file an issue. */ static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber { return new SafeSubscriber(next, error, complete); } /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ protected isStopped: boolean = false; /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R) /** * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons. */ constructor(destination?: Subscriber | Observer) { super(); if (destination) { this.destination = destination; // Automatically chain subscriptions together here. // if destination is a Subscription, then it is a Subscriber. if (isSubscription(destination)) { destination.add(this); } } else { this.destination = EMPTY_OBSERVER; } } /** * The {@link Observer} callback to receive notifications of type `next` from * the Observable, with a value. The Observable may call this method 0 or more * times. * @param {T} [value] The `next` value. * @return {void} */ next(value?: T): void { if (this.isStopped) { handleStoppedNotification(nextNotification(value), this); } else { this._next(value!); } } /** * The {@link Observer} callback to receive notifications of type `error` from * the Observable, with an attached `Error`. Notifies the Observer that * the Observable has experienced an error condition. * @param {any} [err] The `error` exception. * @return {void} */ error(err?: any): void { if (this.isStopped) { handleStoppedNotification(errorNotification(err), this); } else { this.isStopped = true; this._error(err); } } /** * The {@link Observer} callback to receive a valueless notification of type * `complete` from the Observable. Notifies the Observer that the Observable * has finished sending push-based notifications. * @return {void} */ complete(): void { if (this.isStopped) { handleStoppedNotification(COMPLETE_NOTIFICATION, this); } else { this.isStopped = true; this._complete(); } } unsubscribe(): void { if (!this.closed) { this.isStopped = true; super.unsubscribe(); this.destination = null!; } } protected _next(value: T): void { this.destination.next(value); } protected _error(err: any): void { try { this.destination.error(err); } finally { this.unsubscribe(); } } protected _complete(): void { try { this.destination.complete(); } finally { this.unsubscribe(); } } } /** * This bind is captured here because we want to be able to have * compatibility with monoid libraries that tend to use a method named * `bind`. In particular, a library called Monio requires this. */ const _bind = Function.prototype.bind; function bind any>(fn: Fn, thisArg: any): Fn { return _bind.call(fn, thisArg); } /** * Internal optimization only, DO NOT EXPOSE. * @internal */ class ConsumerObserver implements Observer { constructor(private partialObserver: Partial>) {} next(value: T): void { const { partialObserver } = this; if (partialObserver.next) { try { partialObserver.next(value); } catch (error) { handleUnhandledError(error); } } } error(err: any): void { const { partialObserver } = this; if (partialObserver.error) { try { partialObserver.error(err); } catch (error) { handleUnhandledError(error); } } else { handleUnhandledError(err); } } complete(): void { const { partialObserver } = this; if (partialObserver.complete) { try { partialObserver.complete(); } catch (error) { handleUnhandledError(error); } } } } export class SafeSubscriber extends Subscriber { constructor( observerOrNext?: Partial> | ((value: T) => void) | null, error?: ((e?: any) => void) | null, complete?: (() => void) | null ) { super(); let partialObserver: Partial>; if (isFunction(observerOrNext) || !observerOrNext) { // The first argument is a function, not an observer. The next // two arguments *could* be observers, or they could be empty. partialObserver = { next: (observerOrNext ?? undefined) as (((value: T) => void) | undefined), error: error ?? undefined, complete: complete ?? undefined, }; } else { // The first argument is a partial observer. let context: any; if (this && config.useDeprecatedNextContext) { // This is a deprecated path that made `this.unsubscribe()` available in // next handler functions passed to subscribe. This only exists behind a flag // now, as it is *very* slow. context = Object.create(observerOrNext); context.unsubscribe = () => this.unsubscribe(); partialObserver = { next: observerOrNext.next && bind(observerOrNext.next, context), error: observerOrNext.error && bind(observerOrNext.error, context), complete: observerOrNext.complete && bind(observerOrNext.complete, context), }; } else { // The "normal" path. Just use the partial observer directly. partialObserver = observerOrNext; } } // Wrap the partial observer to ensure it's a full observer, and // make sure proper error handling is accounted for. this.destination = new ConsumerObserver(partialObserver); } } function handleUnhandledError(error: any) { if (config.useDeprecatedSynchronousErrorHandling) { captureError(error); } else { // Ideal path, we report this as an unhandled error, // which is thrown on a new call stack. reportUnhandledError(error); } } /** * An error handler used when no error handler was supplied * to the SafeSubscriber -- meaning no error handler was supplied * do the `subscribe` call on our observable. * @param err The error to handle */ function defaultErrorHandler(err: any) { throw err; } /** * A handler for notifications that cannot be sent to a stopped subscriber. * @param notification The notification being sent * @param subscriber The stopped subscriber */ function handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) { const { onStoppedNotification } = config; onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber)); } /** * The observer used as a stub for subscriptions where the user did not * pass any arguments to `subscribe`. Comes with the default error handling * behavior. */ export const EMPTY_OBSERVER: Readonly> & { closed: true } = { closed: true, next: noop, error: defaultErrorHandler, complete: noop, }; rxjs-7.5.7/src/internal/Subscription.ts000066400000000000000000000166651431412030200201630ustar00rootroot00000000000000import { isFunction } from './util/isFunction'; import { UnsubscriptionError } from './util/UnsubscriptionError'; import { SubscriptionLike, TeardownLogic, Unsubscribable } from './types'; import { arrRemove } from './util/arrRemove'; /** * Represents a disposable resource, such as the execution of an Observable. A * Subscription has one important method, `unsubscribe`, that takes no argument * and just disposes the resource held by the subscription. * * Additionally, subscriptions may be grouped together through the `add()` * method, which will attach a child Subscription to the current Subscription. * When a Subscription is unsubscribed, all its children (and its grandchildren) * will be unsubscribed as well. * * @class Subscription */ export class Subscription implements SubscriptionLike { /** @nocollapse */ public static EMPTY = (() => { const empty = new Subscription(); empty.closed = true; return empty; })(); /** * A flag to indicate whether this Subscription has already been unsubscribed. */ public closed = false; private _parentage: Subscription[] | Subscription | null = null; /** * The list of registered finalizers to execute upon unsubscription. Adding and removing from this * list occurs in the {@link #add} and {@link #remove} methods. */ private _finalizers: Exclude[] | null = null; /** * @param initialTeardown A function executed first as part of the finalization * process that is kicked off when {@link #unsubscribe} is called. */ constructor(private initialTeardown?: () => void) {} /** * Disposes the resources held by the subscription. May, for instance, cancel * an ongoing Observable execution or cancel any other type of work that * started when the Subscription was created. * @return {void} */ unsubscribe(): void { let errors: any[] | undefined; if (!this.closed) { this.closed = true; // Remove this from it's parents. const { _parentage } = this; if (_parentage) { this._parentage = null; if (Array.isArray(_parentage)) { for (const parent of _parentage) { parent.remove(this); } } else { _parentage.remove(this); } } const { initialTeardown: initialFinalizer } = this; if (isFunction(initialFinalizer)) { try { initialFinalizer(); } catch (e) { errors = e instanceof UnsubscriptionError ? e.errors : [e]; } } const { _finalizers } = this; if (_finalizers) { this._finalizers = null; for (const finalizer of _finalizers) { try { execFinalizer(finalizer); } catch (err) { errors = errors ?? []; if (err instanceof UnsubscriptionError) { errors = [...errors, ...err.errors]; } else { errors.push(err); } } } } if (errors) { throw new UnsubscriptionError(errors); } } } /** * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called * when this subscription is unsubscribed. If this subscription is already {@link #closed}, * because it has already been unsubscribed, then whatever finalizer is passed to it * will automatically be executed (unless the finalizer itself is also a closed subscription). * * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed * subscription to a any subscription will result in no operation. (A noop). * * Adding a subscription to itself, or adding `null` or `undefined` will not perform any * operation at all. (A noop). * * `Subscription` instances that are added to this instance will automatically remove themselves * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove * will need to be removed manually with {@link #remove} * * @param teardown The finalization logic to add to this subscription. */ add(teardown: TeardownLogic): void { // Only add the finalizer if it's not undefined // and don't add a subscription to itself. if (teardown && teardown !== this) { if (this.closed) { // If this subscription is already closed, // execute whatever finalizer is handed to it automatically. execFinalizer(teardown); } else { if (teardown instanceof Subscription) { // We don't add closed subscriptions, and we don't add the same subscription // twice. Subscription unsubscribe is idempotent. if (teardown.closed || teardown._hasParent(this)) { return; } teardown._addParent(this); } (this._finalizers = this._finalizers ?? []).push(teardown); } } } /** * Checks to see if a this subscription already has a particular parent. * This will signal that this subscription has already been added to the parent in question. * @param parent the parent to check for */ private _hasParent(parent: Subscription) { const { _parentage } = this; return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent)); } /** * Adds a parent to this subscription so it can be removed from the parent if it * unsubscribes on it's own. * * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED. * @param parent The parent subscription to add */ private _addParent(parent: Subscription) { const { _parentage } = this; this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent; } /** * Called on a child when it is removed via {@link #remove}. * @param parent The parent to remove */ private _removeParent(parent: Subscription) { const { _parentage } = this; if (_parentage === parent) { this._parentage = null; } else if (Array.isArray(_parentage)) { arrRemove(_parentage, parent); } } /** * Removes a finalizer from this subscription that was previously added with the {@link #add} method. * * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves * from every other `Subscription` they have been added to. This means that using the `remove` method * is not a common thing and should be used thoughtfully. * * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance * more than once, you will need to call `remove` the same number of times to remove all instances. * * All finalizer instances are removed to free up memory upon unsubscription. * * @param teardown The finalizer to remove from this subscription */ remove(teardown: Exclude): void { const { _finalizers } = this; _finalizers && arrRemove(_finalizers, teardown); if (teardown instanceof Subscription) { teardown._removeParent(this); } } } export const EMPTY_SUBSCRIPTION = Subscription.EMPTY; export function isSubscription(value: any): value is Subscription { return ( value instanceof Subscription || (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)) ); } function execFinalizer(finalizer: Unsubscribable | (() => void)) { if (isFunction(finalizer)) { finalizer(); } else { finalizer.unsubscribe(); } } rxjs-7.5.7/src/internal/ajax/000077500000000000000000000000001431412030200160345ustar00rootroot00000000000000rxjs-7.5.7/src/internal/ajax/AjaxResponse.ts000066400000000000000000000113121431412030200210040ustar00rootroot00000000000000import { AjaxRequest, AjaxResponseType } from './types'; import { getXHRResponse } from './getXHRResponse'; /** * A normalized response from an AJAX request. To get the data from the response, * you will want to read the `response` property. * * - DO NOT create instances of this class directly. * - DO NOT subclass this class. * * It is advised not to hold this object in memory, as it has a reference to * the original XHR used to make the request, as well as properties containing * request and response data. * * @see {@link ajax} * @see {@link AjaxConfig} */ export class AjaxResponse { /** The HTTP status code */ readonly status: number; /** * The response data, if any. Note that this will automatically be converted to the proper type */ readonly response: T; /** * The responseType set on the request. (For example: `""`, `"arraybuffer"`, `"blob"`, `"document"`, `"json"`, or `"text"`) * @deprecated There isn't much reason to examine this. It's the same responseType set (or defaulted) on the ajax config. * If you really need to examine this value, you can check it on the `request` or the `xhr`. Will be removed in v8. */ readonly responseType: XMLHttpRequestResponseType; /** * The total number of bytes loaded so far. To be used with {@link total} while * calculating progress. (You will want to set {@link includeDownloadProgress} or * {@link includeDownloadProgress}) */ readonly loaded: number; /** * The total number of bytes to be loaded. To be used with {@link loaded} while * calculating progress. (You will want to set {@link includeDownloadProgress} or * {@link includeDownloadProgress}) */ readonly total: number; /** * A dictionary of the response headers. */ readonly responseHeaders: Record; /** * A normalized response from an AJAX request. To get the data from the response, * you will want to read the `response` property. * * - DO NOT create instances of this class directly. * - DO NOT subclass this class. * * @param originalEvent The original event object from the XHR `onload` event. * @param xhr The `XMLHttpRequest` object used to make the request. This is useful for examining status code, etc. * @param request The request settings used to make the HTTP request. * @param type The type of the event emitted by the {@link ajax} Observable */ constructor( /** * The original event object from the raw XHR event. */ public readonly originalEvent: ProgressEvent, /** * The XMLHttpRequest object used to make the request. * NOTE: It is advised not to hold this in memory, as it will retain references to all of it's event handlers * and many other things related to the request. */ public readonly xhr: XMLHttpRequest, /** * The request parameters used to make the HTTP request. */ public readonly request: AjaxRequest, /** * The event type. This can be used to discern between different events * if you're using progress events with {@link includeDownloadProgress} or * {@link includeUploadProgress} settings in {@link AjaxConfig}. * * The event type consists of two parts: the {@link AjaxDirection} and the * the event type. Merged with `_`, they form the `type` string. The * direction can be an `upload` or a `download` direction, while an event can * be `loadstart`, `progress` or `load`. * * `download_load` is the type of event when download has finished and the * response is available. */ public readonly type: AjaxResponseType = 'download_load' ) { const { status, responseType } = xhr; this.status = status ?? 0; this.responseType = responseType ?? ''; // Parse the response headers in advance for the user. There's really // not a great way to get all of them. So we need to parse the header string // we get back. It comes in a simple enough format: // // header-name: value here // content-type: application/json // other-header-here: some, other, values, or, whatever const allHeaders = xhr.getAllResponseHeaders(); this.responseHeaders = allHeaders ? // Split the header text into lines allHeaders.split('\n').reduce((headers: Record, line) => { // Split the lines on the first ": " as // "key: value". Note that the value could // technically have a ": " in it. const index = line.indexOf(': '); headers[line.slice(0, index)] = line.slice(index + 2); return headers; }, {}) : {}; this.response = getXHRResponse(xhr); const { loaded, total } = originalEvent; this.loaded = loaded; this.total = total; } } rxjs-7.5.7/src/internal/ajax/ajax.ts000066400000000000000000000527011431412030200173340ustar00rootroot00000000000000import { map } from '../operators/map'; import { Observable } from '../Observable'; import { AjaxConfig, AjaxRequest, AjaxDirection, ProgressEventType } from './types'; import { AjaxResponse } from './AjaxResponse'; import { AjaxTimeoutError, AjaxError } from './errors'; export interface AjaxCreationMethod { /** * Creates an observable that will perform an AJAX request using the * [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) in * global scope by default. * * This is the most configurable option, and the basis for all other AJAX calls in the library. * * ## Example * * ```ts * import { ajax } from 'rxjs/ajax'; * import { map, catchError, of } from 'rxjs'; * * const obs$ = ajax({ * method: 'GET', * url: 'https://api.github.com/users?per_page=5', * responseType: 'json' * }).pipe( * map(userResponse => console.log('users: ', userResponse)), * catchError(error => { * console.log('error: ', error); * return of(error); * }) * ); * ``` */ (config: AjaxConfig): Observable>; /** * Perform an HTTP GET using the * [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) in * global scope. Defaults to a `responseType` of `"json"`. * * ## Example * * ```ts * import { ajax } from 'rxjs/ajax'; * import { map, catchError, of } from 'rxjs'; * * const obs$ = ajax('https://api.github.com/users?per_page=5').pipe( * map(userResponse => console.log('users: ', userResponse)), * catchError(error => { * console.log('error: ', error); * return of(error); * }) * ); * ``` */ (url: string): Observable>; /** * Performs an HTTP GET using the * [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) in * global scope by default, and a `responseType` of `"json"`. * * @param url The URL to get the resource from * @param headers Optional headers. Case-Insensitive. */ get(url: string, headers?: Record): Observable>; /** * Performs an HTTP POST using the * [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) in * global scope by default, and a `responseType` of `"json"`. * * Before sending the value passed to the `body` argument, it is automatically serialized * based on the specified `responseType`. By default, a JavaScript object will be serialized * to JSON. A `responseType` of `application/x-www-form-urlencoded` will flatten any provided * dictionary object to a url-encoded string. * * @param url The URL to get the resource from * @param body The content to send. The body is automatically serialized. * @param headers Optional headers. Case-Insensitive. */ post(url: string, body?: any, headers?: Record): Observable>; /** * Performs an HTTP PUT using the * [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) in * global scope by default, and a `responseType` of `"json"`. * * Before sending the value passed to the `body` argument, it is automatically serialized * based on the specified `responseType`. By default, a JavaScript object will be serialized * to JSON. A `responseType` of `application/x-www-form-urlencoded` will flatten any provided * dictionary object to a url-encoded string. * * @param url The URL to get the resource from * @param body The content to send. The body is automatically serialized. * @param headers Optional headers. Case-Insensitive. */ put(url: string, body?: any, headers?: Record): Observable>; /** * Performs an HTTP PATCH using the * [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) in * global scope by default, and a `responseType` of `"json"`. * * Before sending the value passed to the `body` argument, it is automatically serialized * based on the specified `responseType`. By default, a JavaScript object will be serialized * to JSON. A `responseType` of `application/x-www-form-urlencoded` will flatten any provided * dictionary object to a url-encoded string. * * @param url The URL to get the resource from * @param body The content to send. The body is automatically serialized. * @param headers Optional headers. Case-Insensitive. */ patch(url: string, body?: any, headers?: Record): Observable>; /** * Performs an HTTP DELETE using the * [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) in * global scope by default, and a `responseType` of `"json"`. * * @param url The URL to get the resource from * @param headers Optional headers. Case-Insensitive. */ delete(url: string, headers?: Record): Observable>; /** * Performs an HTTP GET using the * [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest) in * global scope by default, and returns the hydrated JavaScript object from the * response. * * @param url The URL to get the resource from * @param headers Optional headers. Case-Insensitive. */ getJSON(url: string, headers?: Record): Observable; } function ajaxGet(url: string, headers?: Record): Observable> { return ajax({ method: 'GET', url, headers }); } function ajaxPost(url: string, body?: any, headers?: Record): Observable> { return ajax({ method: 'POST', url, body, headers }); } function ajaxDelete(url: string, headers?: Record): Observable> { return ajax({ method: 'DELETE', url, headers }); } function ajaxPut(url: string, body?: any, headers?: Record): Observable> { return ajax({ method: 'PUT', url, body, headers }); } function ajaxPatch(url: string, body?: any, headers?: Record): Observable> { return ajax({ method: 'PATCH', url, body, headers }); } const mapResponse = map((x: AjaxResponse) => x.response); function ajaxGetJSON(url: string, headers?: Record): Observable { return mapResponse( ajax({ method: 'GET', url, headers, }) ); } /** * There is an ajax operator on the Rx object. * * It creates an observable for an Ajax request with either a request object with * url, headers, etc or a string for a URL. * * ## Examples * * Using `ajax()` to fetch the response object that is being returned from API * * ```ts * import { ajax } from 'rxjs/ajax'; * import { map, catchError, of } from 'rxjs'; * * const obs$ = ajax('https://api.github.com/users?per_page=5').pipe( * map(userResponse => console.log('users: ', userResponse)), * catchError(error => { * console.log('error: ', error); * return of(error); * }) * ); * * obs$.subscribe({ * next: value => console.log(value), * error: err => console.log(err) * }); * ``` * * Using `ajax.getJSON()` to fetch data from API * * ```ts * import { ajax } from 'rxjs/ajax'; * import { map, catchError, of } from 'rxjs'; * * const obs$ = ajax.getJSON('https://api.github.com/users?per_page=5').pipe( * map(userResponse => console.log('users: ', userResponse)), * catchError(error => { * console.log('error: ', error); * return of(error); * }) * ); * * obs$.subscribe({ * next: value => console.log(value), * error: err => console.log(err) * }); * ``` * * Using `ajax()` with object as argument and method POST with a two seconds delay * * ```ts * import { ajax } from 'rxjs/ajax'; * import { map, catchError, of } from 'rxjs'; * * const users = ajax({ * url: 'https://httpbin.org/delay/2', * method: 'POST', * headers: { * 'Content-Type': 'application/json', * 'rxjs-custom-header': 'Rxjs' * }, * body: { * rxjs: 'Hello World!' * } * }).pipe( * map(response => console.log('response: ', response)), * catchError(error => { * console.log('error: ', error); * return of(error); * }) * ); * * users.subscribe({ * next: value => console.log(value), * error: err => console.log(err) * }); * ``` * * Using `ajax()` to fetch. An error object that is being returned from the request * * ```ts * import { ajax } from 'rxjs/ajax'; * import { map, catchError, of } from 'rxjs'; * * const obs$ = ajax('https://api.github.com/404').pipe( * map(userResponse => console.log('users: ', userResponse)), * catchError(error => { * console.log('error: ', error); * return of(error); * }) * ); * * obs$.subscribe({ * next: value => console.log(value), * error: err => console.log(err) * }); * ``` */ export const ajax: AjaxCreationMethod = (() => { const create = (urlOrConfig: string | AjaxConfig) => { const config: AjaxConfig = typeof urlOrConfig === 'string' ? { url: urlOrConfig, } : urlOrConfig; return fromAjax(config); }; create.get = ajaxGet; create.post = ajaxPost; create.delete = ajaxDelete; create.put = ajaxPut; create.patch = ajaxPatch; create.getJSON = ajaxGetJSON; return create; })(); const UPLOAD = 'upload'; const DOWNLOAD = 'download'; const LOADSTART = 'loadstart'; const PROGRESS = 'progress'; const LOAD = 'load'; export function fromAjax(init: AjaxConfig): Observable> { return new Observable((destination) => { const config = { // Defaults async: true, crossDomain: false, withCredentials: false, method: 'GET', timeout: 0, responseType: 'json' as XMLHttpRequestResponseType, ...init, }; const { queryParams, body: configuredBody, headers: configuredHeaders } = config; let url = config.url; if (!url) { throw new TypeError('url is required'); } if (queryParams) { let searchParams: URLSearchParams; if (url.includes('?')) { // If the user has passed a URL with a querystring already in it, // we need to combine them. So we're going to split it. There // should only be one `?` in a valid URL. const parts = url.split('?'); if (2 < parts.length) { throw new TypeError('invalid url'); } // Add the passed queryParams to the params already in the url provided. searchParams = new URLSearchParams(parts[1]); // queryParams is converted to any because the runtime is *much* more permissive than // the types are. new URLSearchParams(queryParams as any).forEach((value, key) => searchParams.set(key, value)); // We have to do string concatenation here, because `new URL(url)` does // not like relative URLs like `/this` without a base url, which we can't // specify, nor can we assume `location` will exist, because of node. url = parts[0] + '?' + searchParams; } else { // There is no preexisting querystring, so we can just use URLSearchParams // to convert the passed queryParams into the proper format and encodings. // queryParams is converted to any because the runtime is *much* more permissive than // the types are. searchParams = new URLSearchParams(queryParams as any); url = url + '?' + searchParams; } } // Normalize the headers. We're going to make them all lowercase, since // Headers are case insensitive by design. This makes it easier to verify // that we aren't setting or sending duplicates. const headers: Record = {}; if (configuredHeaders) { for (const key in configuredHeaders) { if (configuredHeaders.hasOwnProperty(key)) { headers[key.toLowerCase()] = configuredHeaders[key]; } } } const crossDomain = config.crossDomain; // Set the x-requested-with header. This is a non-standard header that has // come to be a de facto standard for HTTP requests sent by libraries and frameworks // using XHR. However, we DO NOT want to set this if it is a CORS request. This is // because sometimes this header can cause issues with CORS. To be clear, // None of this is necessary, it's only being set because it's "the thing libraries do" // Starting back as far as JQuery, and continuing with other libraries such as Angular 1, // Axios, et al. if (!crossDomain && !('x-requested-with' in headers)) { headers['x-requested-with'] = 'XMLHttpRequest'; } // Allow users to provide their XSRF cookie name and the name of a custom header to use to // send the cookie. const { withCredentials, xsrfCookieName, xsrfHeaderName } = config; if ((withCredentials || !crossDomain) && xsrfCookieName && xsrfHeaderName) { const xsrfCookie = document?.cookie.match(new RegExp(`(^|;\\s*)(${xsrfCookieName})=([^;]*)`))?.pop() ?? ''; if (xsrfCookie) { headers[xsrfHeaderName] = xsrfCookie; } } // Examine the body and determine whether or not to serialize it // and set the content-type in `headers`, if we're able. const body = extractContentTypeAndMaybeSerializeBody(configuredBody, headers); // The final request settings. const _request: Readonly = { ...config, // Set values we ensured above url, headers, body, }; let xhr: XMLHttpRequest; // Create our XHR so we can get started. xhr = init.createXHR ? init.createXHR() : new XMLHttpRequest(); { /////////////////////////////////////////////////// // set up the events before open XHR // https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest // You need to add the event listeners before calling open() on the request. // Otherwise the progress events will not fire. /////////////////////////////////////////////////// const { progressSubscriber, includeDownloadProgress = false, includeUploadProgress = false } = init; /** * Wires up an event handler that will emit an error when fired. Used * for timeout and abort events. * @param type The type of event we're treating as an error * @param errorFactory A function that creates the type of error to emit. */ const addErrorEvent = (type: string, errorFactory: () => any) => { xhr.addEventListener(type, () => { const error = errorFactory(); progressSubscriber?.error?.(error); destination.error(error); }); }; // If the request times out, handle errors appropriately. addErrorEvent('timeout', () => new AjaxTimeoutError(xhr, _request)); // If the request aborts (due to a network disconnection or the like), handle // it as an error. addErrorEvent('abort', () => new AjaxError('aborted', xhr, _request)); /** * Creates a response object to emit to the consumer. * @param direction the direction related to the event. Prefixes the event `type` in the * `AjaxResponse` object with "upload_" for events related to uploading and "download_" * for events related to downloading. * @param event the actual event object. */ const createResponse = (direction: AjaxDirection, event: ProgressEvent) => new AjaxResponse(event, xhr, _request, `${direction}_${event.type as ProgressEventType}` as const); /** * Wires up an event handler that emits a Response object to the consumer, used for * all events that emit responses, loadstart, progress, and load. * Note that download load handling is a bit different below, because it has * more logic it needs to run. * @param target The target, either the XHR itself or the Upload object. * @param type The type of event to wire up * @param direction The "direction", used to prefix the response object that is * emitted to the consumer. (e.g. "upload_" or "download_") */ const addProgressEvent = (target: any, type: string, direction: AjaxDirection) => { target.addEventListener(type, (event: ProgressEvent) => { destination.next(createResponse(direction, event)); }); }; if (includeUploadProgress) { [LOADSTART, PROGRESS, LOAD].forEach((type) => addProgressEvent(xhr.upload, type, UPLOAD)); } if (progressSubscriber) { [LOADSTART, PROGRESS].forEach((type) => xhr.upload.addEventListener(type, (e: any) => progressSubscriber?.next?.(e))); } if (includeDownloadProgress) { [LOADSTART, PROGRESS].forEach((type) => addProgressEvent(xhr, type, DOWNLOAD)); } const emitError = (status?: number) => { const msg = 'ajax error' + (status ? ' ' + status : ''); destination.error(new AjaxError(msg, xhr, _request)); }; xhr.addEventListener('error', (e) => { progressSubscriber?.error?.(e); emitError(); }); xhr.addEventListener(LOAD, (event) => { const { status } = xhr; // 4xx and 5xx should error (https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) if (status < 400) { progressSubscriber?.complete?.(); let response: AjaxResponse; try { // This can throw in IE, because we end up needing to do a JSON.parse // of the response in some cases to produce object we'd expect from // modern browsers. response = createResponse(DOWNLOAD, event); } catch (err) { destination.error(err); return; } destination.next(response); destination.complete(); } else { progressSubscriber?.error?.(event); emitError(status); } }); } const { user, method, async } = _request; // open XHR if (user) { xhr.open(method, url, async, user, _request.password); } else { xhr.open(method, url, async); } // timeout, responseType and withCredentials can be set once the XHR is open if (async) { xhr.timeout = _request.timeout; xhr.responseType = _request.responseType; } if ('withCredentials' in xhr) { xhr.withCredentials = _request.withCredentials; } // set headers for (const key in headers) { if (headers.hasOwnProperty(key)) { xhr.setRequestHeader(key, headers[key]); } } // finally send the request if (body) { xhr.send(body); } else { xhr.send(); } return () => { if (xhr && xhr.readyState !== 4 /*XHR done*/) { xhr.abort(); } }; }); } /** * Examines the body to determine if we need to serialize it for them or not. * If the body is a type that XHR handles natively, we just allow it through, * otherwise, if the body is something that *we* can serialize for the user, * we will serialize it, and attempt to set the `content-type` header, if it's * not already set. * @param body The body passed in by the user * @param headers The normalized headers */ function extractContentTypeAndMaybeSerializeBody(body: any, headers: Record) { if ( !body || typeof body === 'string' || isFormData(body) || isURLSearchParams(body) || isArrayBuffer(body) || isFile(body) || isBlob(body) || isReadableStream(body) ) { // The XHR instance itself can handle serializing these, and set the content-type for us // so we don't need to do that. https://xhr.spec.whatwg.org/#the-send()-method return body; } if (isArrayBufferView(body)) { // This is a typed array (e.g. Float32Array or Uint8Array), or a DataView. // XHR can handle this one too: https://fetch.spec.whatwg.org/#concept-bodyinit-extract return body.buffer; } if (typeof body === 'object') { // If we have made it here, this is an object, probably a POJO, and we'll try // to serialize it for them. If this doesn't work, it will throw, obviously, which // is okay. The workaround for users would be to manually set the body to their own // serialized string (accounting for circular references or whatever), then set // the content-type manually as well. headers['content-type'] = headers['content-type'] ?? 'application/json;charset=utf-8'; return JSON.stringify(body); } // If we've gotten past everything above, this is something we don't quite know how to // handle. Throw an error. This will be caught and emitted from the observable. throw new TypeError('Unknown body type'); } const _toString = Object.prototype.toString; function toStringCheck(obj: any, name: string): boolean { return _toString.call(obj) === `[object ${name}]`; } function isArrayBuffer(body: any): body is ArrayBuffer { return toStringCheck(body, 'ArrayBuffer'); } function isFile(body: any): body is File { return toStringCheck(body, 'File'); } function isBlob(body: any): body is Blob { return toStringCheck(body, 'Blob'); } function isArrayBufferView(body: any): body is ArrayBufferView { return typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView(body); } function isFormData(body: any): body is FormData { return typeof FormData !== 'undefined' && body instanceof FormData; } function isURLSearchParams(body: any): body is URLSearchParams { return typeof URLSearchParams !== 'undefined' && body instanceof URLSearchParams; } function isReadableStream(body: any): body is ReadableStream { return typeof ReadableStream !== 'undefined' && body instanceof ReadableStream; } rxjs-7.5.7/src/internal/ajax/errors.ts000066400000000000000000000057761431412030200177370ustar00rootroot00000000000000import { AjaxRequest } from './types'; import { getXHRResponse } from './getXHRResponse'; import { createErrorClass } from '../util/createErrorClass'; /** * A normalized AJAX error. * * @see {@link ajax} * * @class AjaxError */ export interface AjaxError extends Error { /** * The XHR instance associated with the error. */ xhr: XMLHttpRequest; /** * The AjaxRequest associated with the error. */ request: AjaxRequest; /** * The HTTP status code, if the request has completed. If not, * it is set to `0`. */ status: number; /** * The responseType (e.g. 'json', 'arraybuffer', or 'xml'). */ responseType: XMLHttpRequestResponseType; /** * The response data. */ response: any; } export interface AjaxErrorCtor { /** * @deprecated Internal implementation detail. Do not construct error instances. * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269 */ new (message: string, xhr: XMLHttpRequest, request: AjaxRequest): AjaxError; } /** * Thrown when an error occurs during an AJAX request. * This is only exported because it is useful for checking to see if an error * is an `instanceof AjaxError`. DO NOT create new instances of `AjaxError` with * the constructor. * * @class AjaxError * @see {@link ajax} */ export const AjaxError: AjaxErrorCtor = createErrorClass( (_super) => function AjaxErrorImpl(this: any, message: string, xhr: XMLHttpRequest, request: AjaxRequest) { this.message = message; this.name = 'AjaxError'; this.xhr = xhr; this.request = request; this.status = xhr.status; this.responseType = xhr.responseType; let response: any; try { // This can throw in IE, because we have to do a JSON.parse of // the response in some cases to get the expected response property. response = getXHRResponse(xhr); } catch (err) { response = xhr.responseText; } this.response = response; } ); export interface AjaxTimeoutError extends AjaxError {} export interface AjaxTimeoutErrorCtor { /** * @deprecated Internal implementation detail. Do not construct error instances. * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269 */ new (xhr: XMLHttpRequest, request: AjaxRequest): AjaxTimeoutError; } /** * Thrown when an AJAX request times out. Not to be confused with {@link TimeoutError}. * * This is exported only because it is useful for checking to see if errors are an * `instanceof AjaxTimeoutError`. DO NOT use the constructor to create an instance of * this type. * * @class AjaxTimeoutError * @see {@link ajax} */ export const AjaxTimeoutError: AjaxTimeoutErrorCtor = (() => { function AjaxTimeoutErrorImpl(this: any, xhr: XMLHttpRequest, request: AjaxRequest) { AjaxError.call(this, 'ajax timeout', xhr, request); this.name = 'AjaxTimeoutError'; return this; } AjaxTimeoutErrorImpl.prototype = Object.create(AjaxError.prototype); return AjaxTimeoutErrorImpl; })() as any; rxjs-7.5.7/src/internal/ajax/getXHRResponse.ts000066400000000000000000000021031431412030200212600ustar00rootroot00000000000000/** * Gets what should be in the `response` property of the XHR. However, * since we still support the final versions of IE, we need to do a little * checking here to make sure that we get the right thing back. Consequently, * we need to do a JSON.parse() in here, which *could* throw if the response * isn't valid JSON. * * This is used both in creating an AjaxResponse, and in creating certain errors * that we throw, so we can give the user whatever was in the response property. * * @param xhr The XHR to examine the response of */ export function getXHRResponse(xhr: XMLHttpRequest) { switch (xhr.responseType) { case 'json': { if ('response' in xhr) { return xhr.response; } else { // IE const ieXHR: any = xhr; return JSON.parse(ieXHR.responseText); } } case 'document': return xhr.responseXML; case 'text': default: { if ('response' in xhr) { return xhr.response; } else { // IE const ieXHR: any = xhr; return ieXHR.responseText; } } } } rxjs-7.5.7/src/internal/ajax/types.ts000066400000000000000000000210701431412030200175500ustar00rootroot00000000000000import { PartialObserver } from '../types'; /** * Valid Ajax direction types. Prefixes the event `type` in the * {@link AjaxResponse} object with "upload_" for events related * to uploading and "download_" for events related to downloading. */ export type AjaxDirection = 'upload' | 'download'; export type ProgressEventType = 'loadstart' | 'progress' | 'load'; export type AjaxResponseType = `${AjaxDirection}_${ProgressEventType}`; /** * The object containing values RxJS used to make the HTTP request. * * This is provided in {@link AjaxError} instances as the `request` * object. */ export interface AjaxRequest { /** * The URL requested. */ url: string; /** * The body to send over the HTTP request. */ body?: any; /** * The HTTP method used to make the HTTP request. */ method: string; /** * Whether or not the request was made asynchronously. */ async: boolean; /** * The headers sent over the HTTP request. */ headers: Readonly>; /** * The timeout value used for the HTTP request. * Note: this is only honored if the request is asynchronous (`async` is `true`). */ timeout: number; /** * The user credentials user name sent with the HTTP request. */ user?: string; /** * The user credentials password sent with the HTTP request. */ password?: string; /** * Whether or not the request was a CORS request. */ crossDomain: boolean; /** * Whether or not a CORS request was sent with credentials. * If `false`, will also ignore cookies in the CORS response. */ withCredentials: boolean; /** * The [`responseType`](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType) set before sending the request. */ responseType: XMLHttpRequestResponseType; } /** * Configuration for the {@link ajax} creation function. */ export interface AjaxConfig { /** The address of the resource to request via HTTP. */ url: string; /** * The body of the HTTP request to send. * * This is serialized, by default, based off of the value of the `"content-type"` header. * For example, if the `"content-type"` is `"application/json"`, the body will be serialized * as JSON. If the `"content-type"` is `"application/x-www-form-urlencoded"`, whatever object passed * to the body will be serialized as URL, using key-value pairs based off of the keys and values of the object. * In all other cases, the body will be passed directly. */ body?: any; /** * Whether or not to send the request asynchronously. Defaults to `true`. * If set to `false`, this will block the thread until the AJAX request responds. */ async?: boolean; /** * The HTTP Method to use for the request. Defaults to "GET". */ method?: string; /** * The HTTP headers to apply. * * Note that, by default, RxJS will add the following headers under certain conditions: * * 1. If the `"content-type"` header is **NOT** set, and the `body` is [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData), * a `"content-type"` of `"application/x-www-form-urlencoded; charset=UTF-8"` will be set automatically. * 2. If the `"x-requested-with"` header is **NOT** set, and the `crossDomain` configuration property is **NOT** explicitly set to `true`, * (meaning it is not a CORS request), a `"x-requested-with"` header with a value of `"XMLHttpRequest"` will be set automatically. * This header is generally meaningless, and is set by libraries and frameworks using `XMLHttpRequest` to make HTTP requests. */ headers?: Readonly>; /** * The time to wait before causing the underlying XMLHttpRequest to timeout. This is only honored if the * `async` configuration setting is unset or set to `true`. Defaults to `0`, which is idiomatic for "never timeout". */ timeout?: number; /** The user credentials user name to send with the HTTP request */ user?: string; /** The user credentials password to send with the HTTP request*/ password?: string; /** * Whether or not to send the HTTP request as a CORS request. * Defaults to `false`. * * @deprecated Will be removed in version 8. Cross domain requests and what creates a cross * domain request, are dictated by the browser, and a boolean that forces it to be cross domain * does not make sense. If you need to force cross domain, make sure you're making a secure request, * then add a custom header to the request or use `withCredentials`. For more information on what * triggers a cross domain request, see the [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials). * In particular, the section on [Simple Requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Simple_requests) is useful * for understanding when CORS will not be used. */ crossDomain?: boolean; /** * To send user credentials in a CORS request, set to `true`. To exclude user credentials from * a CORS request, _OR_ when cookies are to be ignored by the CORS response, set to `false`. * * Defaults to `false`. */ withCredentials?: boolean; /** * The name of your site's XSRF cookie. */ xsrfCookieName?: string; /** * The name of a custom header that you can use to send your XSRF cookie. */ xsrfHeaderName?: string; /** * Can be set to change the response type. * Valid values are `"arraybuffer"`, `"blob"`, `"document"`, `"json"`, and `"text"`. * Note that the type of `"document"` (such as an XML document) is ignored if the global context is * not `Window`. * * Defaults to `"json"`. */ responseType?: XMLHttpRequestResponseType; /** * An optional factory used to create the XMLHttpRequest object used to make the AJAX request. * This is useful in environments that lack `XMLHttpRequest`, or in situations where you * wish to override the default `XMLHttpRequest` for some reason. * * If not provided, the `XMLHttpRequest` in global scope will be used. * * NOTE: This AJAX implementation relies on the built-in serialization and setting * of Content-Type headers that is provided by standards-compliant XMLHttpRequest implementations, * be sure any implementation you use meets that standard. */ createXHR?: () => XMLHttpRequest; /** * An observer for watching the upload progress of an HTTP request. Will * emit progress events, and completes on the final upload load event, will error for * any XHR error or timeout. * * This will **not** error for errored status codes. Rather, it will always _complete_ when * the HTTP response comes back. * * @deprecated If you're looking for progress events, use {@link includeDownloadProgress} and * {@link includeUploadProgress} instead. Will be removed in v8. */ progressSubscriber?: PartialObserver; /** * If `true`, will emit all download progress and load complete events as {@link AjaxResponse} * from the observable. The final download event will also be emitted as a {@link AjaxResponse}. * * If both this and {@link includeUploadProgress} are `false`, then only the {@link AjaxResponse} will * be emitted from the resulting observable. */ includeDownloadProgress?: boolean; /** * If `true`, will emit all upload progress and load complete events as {@link AjaxResponse} * from the observable. The final download event will also be emitted as a {@link AjaxResponse}. * * If both this and {@link includeDownloadProgress} are `false`, then only the {@link AjaxResponse} will * be emitted from the resulting observable. */ includeUploadProgress?: boolean; /** * Query string parameters to add to the URL in the request. * This will require a polyfill for `URL` and `URLSearchParams` in Internet Explorer! * * Accepts either a query string, a `URLSearchParams` object, a dictionary of key/value pairs, or an * array of key/value entry tuples. (Essentially, it takes anything that `new URLSearchParams` would normally take). * * If, for some reason you have a query string in the `url` argument, this will append to the query string in the url, * but it will also overwrite the value of any keys that are an exact match. In other words, a url of `/test?a=1&b=2`, * with queryParams of `{ b: 5, c: 6 }` will result in a url of roughly `/test?a=1&b=5&c=6`. */ queryParams?: | string | URLSearchParams | Record | [string, string | number | boolean | string[] | number[] | boolean[]][]; } rxjs-7.5.7/src/internal/config.ts000066400000000000000000000077361431412030200167430ustar00rootroot00000000000000import { Subscriber } from './Subscriber'; import { ObservableNotification } from './types'; /** * The {@link GlobalConfig} object for RxJS. It is used to configure things * like how to react on unhandled errors. */ export const config: GlobalConfig = { onUnhandledError: null, onStoppedNotification: null, Promise: undefined, useDeprecatedSynchronousErrorHandling: false, useDeprecatedNextContext: false, }; /** * The global configuration object for RxJS, used to configure things * like how to react on unhandled errors. Accessible via {@link config} * object. */ export interface GlobalConfig { /** * A registration point for unhandled errors from RxJS. These are errors that * cannot were not handled by consuming code in the usual subscription path. For * example, if you have this configured, and you subscribe to an observable without * providing an error handler, errors from that subscription will end up here. This * will _always_ be called asynchronously on another job in the runtime. This is because * we do not want errors thrown in this user-configured handler to interfere with the * behavior of the library. */ onUnhandledError: ((err: any) => void) | null; /** * A registration point for notifications that cannot be sent to subscribers because they * have completed, errored or have been explicitly unsubscribed. By default, next, complete * and error notifications sent to stopped subscribers are noops. However, sometimes callers * might want a different behavior. For example, with sources that attempt to report errors * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead. * This will _always_ be called asynchronously on another job in the runtime. This is because * we do not want errors thrown in this user-configured handler to interfere with the * behavior of the library. */ onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null; /** * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach} * methods. * * @deprecated As of version 8, RxJS will no longer support this sort of injection of a * Promise constructor. If you need a Promise implementation other than native promises, * please polyfill/patch Promise as you see appropriate. Will be removed in v8. */ Promise?: PromiseConstructorLike; /** * If true, turns on synchronous error rethrowing, which is a deprecated behavior * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe * call in a try/catch block. It also enables producer interference, a nasty bug * where a multicast can be broken for all observers by a downstream consumer with * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME * FOR MIGRATION REASONS. * * @deprecated As of version 8, RxJS will no longer support synchronous throwing * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad * behaviors described above. Will be removed in v8. */ useDeprecatedSynchronousErrorHandling: boolean; /** * If true, enables an as-of-yet undocumented feature from v5: The ability to access * `unsubscribe()` via `this` context in `next` functions created in observers passed * to `subscribe`. * * This is being removed because the performance was severely problematic, and it could also cause * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have * their `this` context overwritten. * * @deprecated As of version 8, RxJS will no longer support altering the * context of next functions provided as part of an observer to Subscribe. Instead, * you will have access to a subscription or a signal or token that will allow you to do things like * unsubscribe and test closed status. Will be removed in v8. */ useDeprecatedNextContext: boolean; } rxjs-7.5.7/src/internal/firstValueFrom.ts000066400000000000000000000050611431412030200204330ustar00rootroot00000000000000import { Observable } from './Observable'; import { EmptyError } from './util/EmptyError'; import { SafeSubscriber } from './Subscriber'; export interface FirstValueFromConfig { defaultValue: T; } export function firstValueFrom(source: Observable, config: FirstValueFromConfig): Promise; export function firstValueFrom(source: Observable): Promise; /** * Converts an observable to a promise by subscribing to the observable, * and returning a promise that will resolve as soon as the first value * arrives from the observable. The subscription will then be closed. * * If the observable stream completes before any values were emitted, the * returned promise will reject with {@link EmptyError} or will resolve * with the default value if a default was specified. * * If the observable stream emits an error, the returned promise will reject * with that error. * * **WARNING**: Only use this with observables you *know* will emit at least one value, * *OR* complete. If the source observable does not emit one value or complete, you will * end up with a promise that is hung up, and potentially all of the state of an * async function hanging out in memory. To avoid this situation, look into adding * something like {@link timeout}, {@link take}, {@link takeWhile}, or {@link takeUntil} * amongst others. * * ## Example * * Wait for the first value from a stream and emit it from a promise in * an async function * * ```ts * import { interval, firstValueFrom } from 'rxjs'; * * async function execute() { * const source$ = interval(2000); * const firstNumber = await firstValueFrom(source$); * console.log(`The first number is ${ firstNumber }`); * } * * execute(); * * // Expected output: * // 'The first number is 0' * ``` * * @see {@link lastValueFrom} * * @param source the observable to convert to a promise * @param config a configuration object to define the `defaultValue` to use if the source completes without emitting a value */ export function firstValueFrom(source: Observable, config?: FirstValueFromConfig): Promise { const hasConfig = typeof config === 'object'; return new Promise((resolve, reject) => { const subscriber = new SafeSubscriber({ next: (value) => { resolve(value); subscriber.unsubscribe(); }, error: reject, complete: () => { if (hasConfig) { resolve(config!.defaultValue); } else { reject(new EmptyError()); } }, }); source.subscribe(subscriber); }); } rxjs-7.5.7/src/internal/lastValueFrom.ts000066400000000000000000000047501431412030200202530ustar00rootroot00000000000000import { Observable } from './Observable'; import { EmptyError } from './util/EmptyError'; export interface LastValueFromConfig { defaultValue: T; } export function lastValueFrom(source: Observable, config: LastValueFromConfig): Promise; export function lastValueFrom(source: Observable): Promise; /** * Converts an observable to a promise by subscribing to the observable, * waiting for it to complete, and resolving the returned promise with the * last value from the observed stream. * * If the observable stream completes before any values were emitted, the * returned promise will reject with {@link EmptyError} or will resolve * with the default value if a default was specified. * * If the observable stream emits an error, the returned promise will reject * with that error. * * **WARNING**: Only use this with observables you *know* will complete. If the source * observable does not complete, you will end up with a promise that is hung up, and * potentially all of the state of an async function hanging out in memory. To avoid * this situation, look into adding something like {@link timeout}, {@link take}, * {@link takeWhile}, or {@link takeUntil} amongst others. * * ## Example * * Wait for the last value from a stream and emit it from a promise in * an async function * * ```ts * import { interval, take, lastValueFrom } from 'rxjs'; * * async function execute() { * const source$ = interval(2000).pipe(take(10)); * const finalNumber = await lastValueFrom(source$); * console.log(`The final number is ${ finalNumber }`); * } * * execute(); * * // Expected output: * // 'The final number is 9' * ``` * * @see {@link firstValueFrom} * * @param source the observable to convert to a promise * @param config a configuration object to define the `defaultValue` to use if the source completes without emitting a value */ export function lastValueFrom(source: Observable, config?: LastValueFromConfig): Promise { const hasConfig = typeof config === 'object'; return new Promise((resolve, reject) => { let _hasValue = false; let _value: T; source.subscribe({ next: (value) => { _value = value; _hasValue = true; }, error: reject, complete: () => { if (_hasValue) { resolve(_value); } else if (hasConfig) { resolve(config!.defaultValue); } else { reject(new EmptyError()); } }, }); }); } rxjs-7.5.7/src/internal/observable/000077500000000000000000000000001431412030200172355ustar00rootroot00000000000000rxjs-7.5.7/src/internal/observable/ConnectableObservable.ts000066400000000000000000000070041431412030200240300ustar00rootroot00000000000000import { Subject } from '../Subject'; import { Observable } from '../Observable'; import { Subscriber } from '../Subscriber'; import { Subscription } from '../Subscription'; import { refCount as higherOrderRefCount } from '../operators/refCount'; import { createOperatorSubscriber } from '../operators/OperatorSubscriber'; import { hasLift } from '../util/lift'; /** * @class ConnectableObservable * @deprecated Will be removed in v8. Use {@link connectable} to create a connectable observable. * If you are using the `refCount` method of `ConnectableObservable`, use the {@link share} operator * instead. * Details: https://rxjs.dev/deprecations/multicasting */ export class ConnectableObservable extends Observable { protected _subject: Subject | null = null; protected _refCount: number = 0; protected _connection: Subscription | null = null; /** * @param source The source observable * @param subjectFactory The factory that creates the subject used internally. * @deprecated Will be removed in v8. Use {@link connectable} to create a connectable observable. * `new ConnectableObservable(source, factory)` is equivalent to * `connectable(source, { connector: factory })`. * When the `refCount()` method is needed, the {@link share} operator should be used instead: * `new ConnectableObservable(source, factory).refCount()` is equivalent to * `source.pipe(share({ connector: factory }))`. * Details: https://rxjs.dev/deprecations/multicasting */ constructor(public source: Observable, protected subjectFactory: () => Subject) { super(); // If we have lift, monkey patch that here. This is done so custom observable // types will compose through multicast. Otherwise the resulting observable would // simply be an instance of `ConnectableObservable`. if (hasLift(source)) { this.lift = source.lift; } } /** @internal */ protected _subscribe(subscriber: Subscriber) { return this.getSubject().subscribe(subscriber); } protected getSubject(): Subject { const subject = this._subject; if (!subject || subject.isStopped) { this._subject = this.subjectFactory(); } return this._subject!; } protected _teardown() { this._refCount = 0; const { _connection } = this; this._subject = this._connection = null; _connection?.unsubscribe(); } /** * @deprecated {@link ConnectableObservable} will be removed in v8. Use {@link connectable} instead. * Details: https://rxjs.dev/deprecations/multicasting */ connect(): Subscription { let connection = this._connection; if (!connection) { connection = this._connection = new Subscription(); const subject = this.getSubject(); connection.add( this.source.subscribe( createOperatorSubscriber( subject as any, undefined, () => { this._teardown(); subject.complete(); }, (err) => { this._teardown(); subject.error(err); }, () => this._teardown() ) ) ); if (connection.closed) { this._connection = null; connection = Subscription.EMPTY; } } return connection; } /** * @deprecated {@link ConnectableObservable} will be removed in v8. Use the {@link share} operator instead. * Details: https://rxjs.dev/deprecations/multicasting */ refCount(): Observable { return higherOrderRefCount()(this) as Observable; } } rxjs-7.5.7/src/internal/observable/bindCallback.ts000066400000000000000000000151371431412030200221450ustar00rootroot00000000000000/* @prettier */ import { SchedulerLike } from '../types'; import { Observable } from '../Observable'; import { bindCallbackInternals } from './bindCallbackInternals'; export function bindCallback( callbackFunc: (...args: any[]) => void, resultSelector: (...args: any[]) => any, scheduler?: SchedulerLike ): (...args: any[]) => Observable; // args is the arguments array and we push the callback on the rest tuple since the rest parameter must be last (only item) in a parameter list export function bindCallback( callbackFunc: (...args: [...A, (...res: R) => void]) => void, schedulerLike?: SchedulerLike ): (...arg: A) => Observable; /** * Converts a callback API to a function that returns an Observable. * * Give it a function `f` of type `f(x, callback)` and * it will return a function `g` that when called as `g(x)` will output an * Observable. * * `bindCallback` is not an operator because its input and output are not * Observables. The input is a function `func` with some parameters. The * last parameter must be a callback function that `func` calls when it is * done. * * The output of `bindCallback` is a function that takes the same parameters * as `func`, except the last one (the callback). When the output function * is called with arguments it will return an Observable. If function `func` * calls its callback with one argument, the Observable will emit that value. * If on the other hand the callback is called with multiple values the resulting * Observable will emit an array with said values as arguments. * * It is **very important** to remember that input function `func` is not called * when the output function is, but rather when the Observable returned by the output * function is subscribed. This means if `func` makes an AJAX request, that request * will be made every time someone subscribes to the resulting Observable, but not before. * * The last optional parameter - `scheduler` - can be used to control when the call * to `func` happens after someone subscribes to Observable, as well as when results * passed to callback will be emitted. By default, the subscription to an Observable calls `func` * synchronously, but using {@link asyncScheduler} as the last parameter will defer the call to `func`, * just like wrapping the call in `setTimeout` with a timeout of `0` would. If you were to use the async Scheduler * and call `subscribe` on the output Observable, all function calls that are currently executing * will end before `func` is invoked. * * By default, results passed to the callback are emitted immediately after `func` invokes the callback. * In particular, if the callback is called synchronously, then the subscription of the resulting Observable * will call the `next` function synchronously as well. If you want to defer that call, * you may use {@link asyncScheduler} just as before. This means that by using `Scheduler.async` you can * ensure that `func` always calls its callback asynchronously, thus avoiding terrifying Zalgo. * * Note that the Observable created by the output function will always emit a single value * and then complete immediately. If `func` calls the callback multiple times, values from subsequent * calls will not appear in the stream. If you need to listen for multiple calls, * you probably want to use {@link fromEvent} or {@link fromEventPattern} instead. * * If `func` depends on some context (`this` property) and is not already bound, the context of `func` * will be the context that the output function has at call time. In particular, if `func` * is called as a method of some object and if `func` is not already bound, in order to preserve the context * it is recommended that the context of the output function is set to that object as well. * * If the input function calls its callback in the "node style" (i.e. first argument to callback is * optional error parameter signaling whether the call failed or not), {@link bindNodeCallback} * provides convenient error handling and probably is a better choice. * `bindCallback` will treat such functions the same as any other and error parameters * (whether passed or not) will always be interpreted as regular callback argument. * * ## Examples * * ### Convert jQuery's getJSON to an Observable API * ```ts * import { bindCallback } from 'rxjs'; * import * as jQuery from 'jquery'; * * // Suppose we have jQuery.getJSON('/my/url', callback) * const getJSONAsObservable = bindCallback(jQuery.getJSON); * const result = getJSONAsObservable('/my/url'); * result.subscribe(x => console.log(x), e => console.error(e)); * ``` * * ### Receive an array of arguments passed to a callback * ```ts * import { bindCallback } from 'rxjs'; * * const someFunction = (cb) => { * cb(5, 'some string', {someProperty: 'someValue'}) * }; * * const boundSomeFunction = bindCallback(someFunction); * boundSomeFunction(12, 10).subscribe(values => { * console.log(values); // [22, 2] * }); * ``` * * ### Compare behaviour with and without async Scheduler * ```ts * import { bindCallback, asyncScheduler } from 'rxjs'; * * function iCallMyCallbackSynchronously(cb) { * cb(); * } * * const boundSyncFn = bindCallback(iCallMyCallbackSynchronously); * const boundAsyncFn = bindCallback(iCallMyCallbackSynchronously, null, asyncScheduler); * * boundSyncFn().subscribe(() => console.log('I was sync!')); * boundAsyncFn().subscribe(() => console.log('I was async!')); * console.log('This happened...'); * * // Logs: * // I was sync! * // This happened... * // I was async! * ``` * * ### Use bindCallback on an object method * ```ts * import { bindCallback } from 'rxjs'; * * const boundMethod = bindCallback(someObject.methodWithCallback); * boundMethod * .call(someObject) // make sure methodWithCallback has access to someObject * .subscribe(subscriber); * ``` * * @see {@link bindNodeCallback} * @see {@link from} * * @param {function} func A function with a callback as the last parameter. * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the * callbacks. * @return {function(...params: *): Observable} A function which returns the * Observable that delivers the same values the callback would deliver. */ export function bindCallback( callbackFunc: (...args: [...any[], (...res: any) => void]) => void, resultSelector?: ((...args: any[]) => any) | SchedulerLike, scheduler?: SchedulerLike ): (...args: any[]) => Observable { return bindCallbackInternals(false, callbackFunc, resultSelector, scheduler); } rxjs-7.5.7/src/internal/observable/bindCallbackInternals.ts000066400000000000000000000115161431412030200240220ustar00rootroot00000000000000import { SchedulerLike } from '../types'; import { isScheduler } from '../util/isScheduler'; import { Observable } from '../Observable'; import { subscribeOn } from '../operators/subscribeOn'; import { mapOneOrManyArgs } from '../util/mapOneOrManyArgs'; import { observeOn } from '../operators/observeOn'; import { AsyncSubject } from '../AsyncSubject'; export function bindCallbackInternals( isNodeStyle: boolean, callbackFunc: any, resultSelector?: any, scheduler?: SchedulerLike ): (...args: any[]) => Observable { if (resultSelector) { if (isScheduler(resultSelector)) { scheduler = resultSelector; } else { // The user provided a result selector. return function (this: any, ...args: any[]) { return (bindCallbackInternals(isNodeStyle, callbackFunc, scheduler) as any) .apply(this, args) .pipe(mapOneOrManyArgs(resultSelector as any)); }; } } // If a scheduler was passed, use our `subscribeOn` and `observeOn` operators // to compose that behavior for the user. if (scheduler) { return function (this: any, ...args: any[]) { return (bindCallbackInternals(isNodeStyle, callbackFunc) as any) .apply(this, args) .pipe(subscribeOn(scheduler!), observeOn(scheduler!)); }; } return function (this: any, ...args: any[]): Observable { // We're using AsyncSubject, because it emits when it completes, // and it will play the value to all late-arriving subscribers. const subject = new AsyncSubject(); // If this is true, then we haven't called our function yet. let uninitialized = true; return new Observable((subscriber) => { // Add our subscriber to the subject. const subs = subject.subscribe(subscriber); if (uninitialized) { uninitialized = false; // We're going to execute the bound function // This bit is to signal that we are hitting the callback asynchronously. // Because we don't have any anti-"Zalgo" guarantees with whatever // function we are handed, we use this bit to figure out whether or not // we are getting hit in a callback synchronously during our call. let isAsync = false; // This is used to signal that the callback completed synchronously. let isComplete = false; // Call our function that has a callback. If at any time during this // call, an error is thrown, it will be caught by the Observable // subscription process and sent to the consumer. callbackFunc.apply( // Pass the appropriate `this` context. this, [ // Pass the arguments. ...args, // And our callback handler. (...results: any[]) => { if (isNodeStyle) { // If this is a node callback, shift the first value off of the // results and check it, as it is the error argument. By shifting, // we leave only the argument(s) we want to pass to the consumer. const err = results.shift(); if (err != null) { subject.error(err); // If we've errored, we can stop processing this function // as there's nothing else to do. Just return to escape. return; } } // If we have one argument, notify the consumer // of it as a single value, otherwise, if there's more than one, pass // them as an array. Note that if there are no arguments, `undefined` // will be emitted. subject.next(1 < results.length ? results : results[0]); // Flip this flag, so we know we can complete it in the synchronous // case below. isComplete = true; // If we're not asynchronous, we need to defer the `complete` call // until after the call to the function is over. This is because an // error could be thrown in the function after it calls our callback, // and if that is the case, if we complete here, we are unable to notify // the consumer than an error occurred. if (isAsync) { subject.complete(); } }, ] ); // If we flipped `isComplete` during the call, we resolved synchronously, // notify complete, because we skipped it in the callback to wait // to make sure there were no errors during the call. if (isComplete) { subject.complete(); } // We're no longer synchronous. If the callback is called at this point // we can notify complete on the spot. isAsync = true; } // Return the subscription from adding our subscriber to the subject. return subs; }); }; } rxjs-7.5.7/src/internal/observable/bindNodeCallback.ts000066400000000000000000000135441431412030200227530ustar00rootroot00000000000000/* @prettier */ import { Observable } from '../Observable'; import { SchedulerLike } from '../types'; import { bindCallbackInternals } from './bindCallbackInternals'; export function bindNodeCallback( callbackFunc: (...args: any[]) => void, resultSelector: (...args: any[]) => any, scheduler?: SchedulerLike ): (...args: any[]) => Observable; // args is the arguments array and we push the callback on the rest tuple since the rest parameter must be last (only item) in a parameter list export function bindNodeCallback( callbackFunc: (...args: [...A, (err: any, ...res: R) => void]) => void, schedulerLike?: SchedulerLike ): (...arg: A) => Observable; /** * Converts a Node.js-style callback API to a function that returns an * Observable. * * It's just like {@link bindCallback}, but the * callback is expected to be of type `callback(error, result)`. * * `bindNodeCallback` is not an operator because its input and output are not * Observables. The input is a function `func` with some parameters, but the * last parameter must be a callback function that `func` calls when it is * done. The callback function is expected to follow Node.js conventions, * where the first argument to the callback is an error object, signaling * whether call was successful. If that object is passed to callback, it means * something went wrong. * * The output of `bindNodeCallback` is a function that takes the same * parameters as `func`, except the last one (the callback). When the output * function is called with arguments, it will return an Observable. * If `func` calls its callback with error parameter present, Observable will * error with that value as well. If error parameter is not passed, Observable will emit * second parameter. If there are more parameters (third and so on), * Observable will emit an array with all arguments, except first error argument. * * Note that `func` will not be called at the same time output function is, * but rather whenever resulting Observable is subscribed. By default call to * `func` will happen synchronously after subscription, but that can be changed * with proper `scheduler` provided as optional third parameter. {@link SchedulerLike} * can also control when values from callback will be emitted by Observable. * To find out more, check out documentation for {@link bindCallback}, where * {@link SchedulerLike} works exactly the same. * * As in {@link bindCallback}, context (`this` property) of input function will be set to context * of returned function, when it is called. * * After Observable emits value, it will complete immediately. This means * even if `func` calls callback again, values from second and consecutive * calls will never appear on the stream. If you need to handle functions * that call callbacks multiple times, check out {@link fromEvent} or * {@link fromEventPattern} instead. * * Note that `bindNodeCallback` can be used in non-Node.js environments as well. * "Node.js-style" callbacks are just a convention, so if you write for * browsers or any other environment and API you use implements that callback style, * `bindNodeCallback` can be safely used on that API functions as well. * * Remember that Error object passed to callback does not have to be an instance * of JavaScript built-in `Error` object. In fact, it does not even have to an object. * Error parameter of callback function is interpreted as "present", when value * of that parameter is truthy. It could be, for example, non-zero number, non-empty * string or boolean `true`. In all of these cases resulting Observable would error * with that value. This means usually regular style callbacks will fail very often when * `bindNodeCallback` is used. If your Observable errors much more often then you * would expect, check if callback really is called in Node.js-style and, if not, * switch to {@link bindCallback} instead. * * Note that even if error parameter is technically present in callback, but its value * is falsy, it still won't appear in array emitted by Observable. * * ## Examples * ### Read a file from the filesystem and get the data as an Observable * ```ts * import * as fs from 'fs'; * const readFileAsObservable = bindNodeCallback(fs.readFile); * const result = readFileAsObservable('./roadNames.txt', 'utf8'); * result.subscribe(x => console.log(x), e => console.error(e)); * ``` * * ### Use on function calling callback with multiple arguments * ```ts * someFunction((err, a, b) => { * console.log(err); // null * console.log(a); // 5 * console.log(b); // "some string" * }); * const boundSomeFunction = bindNodeCallback(someFunction); * boundSomeFunction() * .subscribe(value => { * console.log(value); // [5, "some string"] * }); * ``` * * ### Use on function calling callback in regular style * ```ts * someFunction(a => { * console.log(a); // 5 * }); * const boundSomeFunction = bindNodeCallback(someFunction); * boundSomeFunction() * .subscribe( * value => {} // never gets called * err => console.log(err) // 5 * ); * ``` * * @see {@link bindCallback} * @see {@link from} * * @param {function} func Function with a Node.js-style callback as the last parameter. * @param {SchedulerLike} [scheduler] The scheduler on which to schedule the * callbacks. * @return {function(...params: *): Observable} A function which returns the * Observable that delivers the same values the Node.js callback would * deliver. */ export function bindNodeCallback( callbackFunc: (...args: [...any[], (err: any, ...res: any) => void]) => void, resultSelector?: ((...args: any[]) => any) | SchedulerLike, scheduler?: SchedulerLike ): (...args: any[]) => Observable { return bindCallbackInternals(true, callbackFunc, resultSelector, scheduler); } rxjs-7.5.7/src/internal/observable/combineLatest.ts000066400000000000000000000321421431412030200224000ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ObservableInput, SchedulerLike, ObservedValueOf, ObservableInputTuple } from '../types'; import { argsArgArrayOrObject } from '../util/argsArgArrayOrObject'; import { Subscriber } from '../Subscriber'; import { from } from './from'; import { identity } from '../util/identity'; import { Subscription } from '../Subscription'; import { mapOneOrManyArgs } from '../util/mapOneOrManyArgs'; import { popResultSelector, popScheduler } from '../util/args'; import { createObject } from '../util/createObject'; import { createOperatorSubscriber } from '../operators/OperatorSubscriber'; import { AnyCatcher } from '../AnyCatcher'; import { executeSchedule } from '../util/executeSchedule'; // combineLatest(any) // We put this first because we need to catch cases where the user has supplied // _exactly `any`_ as the argument. Since `any` literally matches _anything_, // we don't want it to randomly hit one of the other type signatures below, // as we have no idea at build-time what type we should be returning when given an any. /** * You have passed `any` here, we can't figure out if it is * an array or an object, so you're getting `unknown`. Use better types. * @param arg Something typed as `any` */ export function combineLatest(arg: T): Observable; // combineLatest([a, b, c]) export function combineLatest(sources: []): Observable; export function combineLatest(sources: readonly [...ObservableInputTuple]): Observable; /** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `combineLatestAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */ export function combineLatest( sources: readonly [...ObservableInputTuple], resultSelector: (...values: A) => R, scheduler: SchedulerLike ): Observable; export function combineLatest( sources: readonly [...ObservableInputTuple], resultSelector: (...values: A) => R ): Observable; /** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `combineLatestAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */ export function combineLatest( sources: readonly [...ObservableInputTuple], scheduler: SchedulerLike ): Observable; // combineLatest(a, b, c) /** @deprecated Pass an array of sources instead. The rest-parameters signature will be removed in v8. Details: https://rxjs.dev/deprecations/array-argument */ export function combineLatest(...sources: [...ObservableInputTuple]): Observable; /** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `combineLatestAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */ export function combineLatest( ...sourcesAndResultSelectorAndScheduler: [...ObservableInputTuple, (...values: A) => R, SchedulerLike] ): Observable; /** @deprecated Pass an array of sources instead. The rest-parameters signature will be removed in v8. Details: https://rxjs.dev/deprecations/array-argument */ export function combineLatest( ...sourcesAndResultSelector: [...ObservableInputTuple, (...values: A) => R] ): Observable; /** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `combineLatestAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */ export function combineLatest( ...sourcesAndScheduler: [...ObservableInputTuple, SchedulerLike] ): Observable; // combineLatest({a, b, c}) export function combineLatest(sourcesObject: { [K in any]: never }): Observable; export function combineLatest>>( sourcesObject: T ): Observable<{ [K in keyof T]: ObservedValueOf }>; /** * Combines multiple Observables to create an Observable whose values are * calculated from the latest values of each of its input Observables. * * Whenever any input Observable emits a value, it * computes a formula using the latest values from all the inputs, then emits * the output of that formula. * * ![](combineLatest.png) * * `combineLatest` combines the values from all the Observables passed in the * observables array. This is done by subscribing to each Observable in order and, * whenever any Observable emits, collecting an array of the most recent * values from each Observable. So if you pass `n` Observables to this operator, * the returned Observable will always emit an array of `n` values, in an order * corresponding to the order of the passed Observables (the value from the first Observable * will be at index 0 of the array and so on). * * Static version of `combineLatest` accepts an array of Observables. Note that an array of * Observables is a good choice, if you don't know beforehand how many Observables * you will combine. Passing an empty array will result in an Observable that * completes immediately. * * To ensure the output array always has the same length, `combineLatest` will * actually wait for all input Observables to emit at least once, * before it starts emitting results. This means if some Observable emits * values before other Observables started emitting, all these values but the last * will be lost. On the other hand, if some Observable does not emit a value but * completes, resulting Observable will complete at the same moment without * emitting anything, since it will now be impossible to include a value from the * completed Observable in the resulting array. Also, if some input Observable does * not emit any value and never completes, `combineLatest` will also never emit * and never complete, since, again, it will wait for all streams to emit some * value. * * If at least one Observable was passed to `combineLatest` and all passed Observables * emitted something, the resulting Observable will complete when all combined * streams complete. So even if some Observable completes, the result of * `combineLatest` will still emit values when other Observables do. In case * of a completed Observable, its value from now on will always be the last * emitted value. On the other hand, if any Observable errors, `combineLatest` * will error immediately as well, and all other Observables will be unsubscribed. * * ## Examples * * Combine two timer Observables * * ```ts * import { timer, combineLatest } from 'rxjs'; * * const firstTimer = timer(0, 1000); // emit 0, 1, 2... after every second, starting from now * const secondTimer = timer(500, 1000); // emit 0, 1, 2... after every second, starting 0,5s from now * const combinedTimers = combineLatest([firstTimer, secondTimer]); * combinedTimers.subscribe(value => console.log(value)); * // Logs * // [0, 0] after 0.5s * // [1, 0] after 1s * // [1, 1] after 1.5s * // [2, 1] after 2s * ``` * * Combine a dictionary of Observables * * ```ts * import { of, delay, startWith, combineLatest } from 'rxjs'; * * const observables = { * a: of(1).pipe(delay(1000), startWith(0)), * b: of(5).pipe(delay(5000), startWith(0)), * c: of(10).pipe(delay(10000), startWith(0)) * }; * const combined = combineLatest(observables); * combined.subscribe(value => console.log(value)); * // Logs * // { a: 0, b: 0, c: 0 } immediately * // { a: 1, b: 0, c: 0 } after 1s * // { a: 1, b: 5, c: 0 } after 5s * // { a: 1, b: 5, c: 10 } after 10s * ``` * * Combine an array of Observables * * ```ts * import { of, delay, startWith, combineLatest } from 'rxjs'; * * const observables = [1, 5, 10].map( * n => of(n).pipe( * delay(n * 1000), // emit 0 and then emit n after n seconds * startWith(0) * ) * ); * const combined = combineLatest(observables); * combined.subscribe(value => console.log(value)); * // Logs * // [0, 0, 0] immediately * // [1, 0, 0] after 1s * // [1, 5, 0] after 5s * // [1, 5, 10] after 10s * ``` * * Use map operator to dynamically calculate the Body-Mass Index * * ```ts * import { of, combineLatest, map } from 'rxjs'; * * const weight = of(70, 72, 76, 79, 75); * const height = of(1.76, 1.77, 1.78); * const bmi = combineLatest([weight, height]).pipe( * map(([w, h]) => w / (h * h)), * ); * bmi.subscribe(x => console.log('BMI is ' + x)); * * // With output to console: * // BMI is 24.212293388429753 * // BMI is 23.93948099205209 * // BMI is 23.671253629592222 * ``` * * @see {@link combineLatestAll} * @see {@link merge} * @see {@link withLatestFrom} * * @param {ObservableInput} [observables] An array of input Observables to combine with each other. * An array of Observables must be given as the first argument. * @param {function} [project] An optional function to project the values from * the combined latest values into a new value on the output Observable. * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to * each input Observable. * @return {Observable} An Observable of projected values from the most recent * values from each input Observable, or an array of the most recent values from * each input Observable. */ export function combineLatest, R>(...args: any[]): Observable | Observable[]> { const scheduler = popScheduler(args); const resultSelector = popResultSelector(args); const { args: observables, keys } = argsArgArrayOrObject(args); if (observables.length === 0) { // If no observables are passed, or someone has passed an empty array // of observables, or even an empty object POJO, we need to just // complete (EMPTY), but we have to honor the scheduler provided if any. return from([], scheduler as any); } const result = new Observable[]>( combineLatestInit( observables as ObservableInput>[], scheduler, keys ? // A handler for scrubbing the array of args into a dictionary. (values) => createObject(keys, values) : // A passthrough to just return the array identity ) ); return resultSelector ? (result.pipe(mapOneOrManyArgs(resultSelector)) as Observable) : result; } export function combineLatestInit( observables: ObservableInput[], scheduler?: SchedulerLike, valueTransform: (values: any[]) => any = identity ) { return (subscriber: Subscriber) => { // The outer subscription. We're capturing this in a function // because we may have to schedule it. maybeSchedule( scheduler, () => { const { length } = observables; // A store for the values each observable has emitted so far. We match observable to value on index. const values = new Array(length); // The number of currently active subscriptions, as they complete, we decrement this number to see if // we are all done combining values, so we can complete the result. let active = length; // The number of inner sources that still haven't emitted the first value // We need to track this because all sources need to emit one value in order // to start emitting values. let remainingFirstValues = length; // The loop to kick off subscription. We're keying everything on index `i` to relate the observables passed // in to the slot in the output array or the key in the array of keys in the output dictionary. for (let i = 0; i < length; i++) { maybeSchedule( scheduler, () => { const source = from(observables[i], scheduler as any); let hasFirstValue = false; source.subscribe( createOperatorSubscriber( subscriber, (value) => { // When we get a value, record it in our set of values. values[i] = value; if (!hasFirstValue) { // If this is our first value, record that. hasFirstValue = true; remainingFirstValues--; } if (!remainingFirstValues) { // We're not waiting for any more // first values, so we can emit! subscriber.next(valueTransform(values.slice())); } }, () => { if (!--active) { // We only complete the result if we have no more active // inner observables. subscriber.complete(); } } ) ); }, subscriber ); } }, subscriber ); }; } /** * A small utility to handle the couple of locations where we want to schedule if a scheduler was provided, * but we don't if there was no scheduler. */ function maybeSchedule(scheduler: SchedulerLike | undefined, execute: () => void, subscription: Subscription) { if (scheduler) { executeSchedule(subscription, scheduler, execute); } else { execute(); } } rxjs-7.5.7/src/internal/observable/concat.ts000066400000000000000000000106611431412030200210600ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ObservableInputTuple, SchedulerLike } from '../types'; import { concatAll } from '../operators/concatAll'; import { popScheduler } from '../util/args'; import { from } from './from'; export function concat(...inputs: [...ObservableInputTuple]): Observable; export function concat( ...inputsAndScheduler: [...ObservableInputTuple, SchedulerLike] ): Observable; /** * Creates an output Observable which sequentially emits all values from the first given * Observable and then moves on to the next. * * Concatenates multiple Observables together by * sequentially emitting their values, one Observable after the other. * * ![](concat.png) * * `concat` joins multiple Observables together, by subscribing to them one at a time and * merging their results into the output Observable. You can pass either an array of * Observables, or put them directly as arguments. Passing an empty array will result * in Observable that completes immediately. * * `concat` will subscribe to first input Observable and emit all its values, without * changing or affecting them in any way. When that Observable completes, it will * subscribe to then next Observable passed and, again, emit its values. This will be * repeated, until the operator runs out of Observables. When last input Observable completes, * `concat` will complete as well. At any given moment only one Observable passed to operator * emits values. If you would like to emit values from passed Observables concurrently, check out * {@link merge} instead, especially with optional `concurrent` parameter. As a matter of fact, * `concat` is an equivalent of `merge` operator with `concurrent` parameter set to `1`. * * Note that if some input Observable never completes, `concat` will also never complete * and Observables following the one that did not complete will never be subscribed. On the other * hand, if some Observable simply completes immediately after it is subscribed, it will be * invisible for `concat`, which will just move on to the next Observable. * * If any Observable in chain errors, instead of passing control to the next Observable, * `concat` will error immediately as well. Observables that would be subscribed after * the one that emitted error, never will. * * If you pass to `concat` the same Observable many times, its stream of values * will be "replayed" on every subscription, which means you can repeat given Observable * as many times as you like. If passing the same Observable to `concat` 1000 times becomes tedious, * you can always use {@link repeat}. * * ## Examples * * Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10 * * ```ts * import { interval, take, range, concat } from 'rxjs'; * * const timer = interval(1000).pipe(take(4)); * const sequence = range(1, 10); * const result = concat(timer, sequence); * result.subscribe(x => console.log(x)); * * // results in: * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10 * ``` * * Concatenate 3 Observables * * ```ts * import { interval, take, concat } from 'rxjs'; * * const timer1 = interval(1000).pipe(take(10)); * const timer2 = interval(2000).pipe(take(6)); * const timer3 = interval(500).pipe(take(10)); * * const result = concat(timer1, timer2, timer3); * result.subscribe(x => console.log(x)); * * // results in the following: * // (Prints to console sequentially) * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9 * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5 * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9 * ``` * * Concatenate the same Observable to repeat it * * ```ts * import { interval, take, concat } from 'rxjs'; * * const timer = interval(1000).pipe(take(2)); * * concat(timer, timer) // concatenating the same Observable! * .subscribe({ * next: value => console.log(value), * complete: () => console.log('...and it is done!') * }); * * // Logs: * // 0 after 1s * // 1 after 2s * // 0 after 3s * // 1 after 4s * // '...and it is done!' also after 4s * ``` * * @see {@link concatAll} * @see {@link concatMap} * @see {@link concatMapTo} * @see {@link startWith} * @see {@link endWith} * * @param args Input Observables to concatenate. */ export function concat(...args: any[]): Observable { return concatAll()(from(args, popScheduler(args))); } rxjs-7.5.7/src/internal/observable/connectable.ts000066400000000000000000000044441431412030200220700ustar00rootroot00000000000000import { Connectable, ObservableInput, SubjectLike } from '../types'; import { Subject } from '../Subject'; import { Subscription } from '../Subscription'; import { Observable } from '../Observable'; import { defer } from './defer'; export interface ConnectableConfig { /** * A factory function used to create the Subject through which the source * is multicast. By default this creates a {@link Subject}. */ connector: () => SubjectLike; /** * If true, the resulting observable will reset internal state upon disconnection * and return to a "cold" state. This allows the resulting observable to be * reconnected. * If false, upon disconnection, the connecting subject will remain the * connecting subject, meaning the resulting observable will not go "cold" again, * and subsequent repeats or resubscriptions will resubscribe to that same subject. */ resetOnDisconnect?: boolean; } /** * The default configuration for `connectable`. */ const DEFAULT_CONFIG: ConnectableConfig = { connector: () => new Subject(), resetOnDisconnect: true, }; /** * Creates an observable that multicasts once `connect()` is called on it. * * @param source The observable source to make connectable. * @param config The configuration object for `connectable`. * @returns A "connectable" observable, that has a `connect()` method, that you must call to * connect the source to all consumers through the subject provided as the connector. */ export function connectable(source: ObservableInput, config: ConnectableConfig = DEFAULT_CONFIG): Connectable { // The subscription representing the connection. let connection: Subscription | null = null; const { connector, resetOnDisconnect = true } = config; let subject = connector(); const result: any = new Observable((subscriber) => { return subject.subscribe(subscriber); }); // Define the `connect` function. This is what users must call // in order to "connect" the source to the subject that is // multicasting it. result.connect = () => { if (!connection || connection.closed) { connection = defer(() => source).subscribe(subject); if (resetOnDisconnect) { connection.add(() => (subject = connector())); } } return connection; }; return result; } rxjs-7.5.7/src/internal/observable/defer.ts000066400000000000000000000044101431412030200206710ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ObservedValueOf, ObservableInput } from '../types'; import { innerFrom } from './innerFrom'; /** * Creates an Observable that, on subscribe, calls an Observable factory to * make an Observable for each new Observer. * * Creates the Observable lazily, that is, only when it * is subscribed. * * * ![](defer.png) * * `defer` allows you to create an Observable only when the Observer * subscribes. It waits until an Observer subscribes to it, calls the given * factory function to get an Observable -- where a factory function typically * generates a new Observable -- and subscribes the Observer to this Observable. * In case the factory function returns a falsy value, then EMPTY is used as * Observable instead. Last but not least, an exception during the factory * function call is transferred to the Observer by calling `error`. * * ## Example * * Subscribe to either an Observable of clicks or an Observable of interval, at random * * ```ts * import { defer, fromEvent, interval } from 'rxjs'; * * const clicksOrInterval = defer(() => { * return Math.random() > 0.5 * ? fromEvent(document, 'click') * : interval(1000); * }); * clicksOrInterval.subscribe(x => console.log(x)); * * // Results in the following behavior: * // If the result of Math.random() is greater than 0.5 it will listen * // for clicks anywhere on the "document"; when document is clicked it * // will log a MouseEvent object to the console. If the result is less * // than 0.5 it will emit ascending numbers, one every second(1000ms). * ``` * * @see {@link Observable} * * @param {function(): ObservableInput} observableFactory The Observable * factory function to invoke for each Observer that subscribes to the output * Observable. May also return a Promise, which will be converted on the fly * to an Observable. * @return {Observable} An Observable whose Observers' subscriptions trigger * an invocation of the given Observable factory function. */ export function defer>(observableFactory: () => R): Observable> { return new Observable>((subscriber) => { innerFrom(observableFactory()).subscribe(subscriber); }); } rxjs-7.5.7/src/internal/observable/dom/000077500000000000000000000000001431412030200200145ustar00rootroot00000000000000rxjs-7.5.7/src/internal/observable/dom/WebSocketSubject.ts000066400000000000000000000304311431412030200235730ustar00rootroot00000000000000import { Subject, AnonymousSubject } from '../../Subject'; import { Subscriber } from '../../Subscriber'; import { Observable } from '../../Observable'; import { Subscription } from '../../Subscription'; import { Operator } from '../../Operator'; import { ReplaySubject } from '../../ReplaySubject'; import { Observer, NextObserver } from '../../types'; /** * WebSocketSubjectConfig is a plain Object that allows us to make our * webSocket configurable. * * Provides flexibility to {@link webSocket} * * It defines a set of properties to provide custom behavior in specific * moments of the socket's lifecycle. When the connection opens we can * use `openObserver`, when the connection is closed `closeObserver`, if we * are interested in listening for data coming from server: `deserializer`, * which allows us to customize the deserialization strategy of data before passing it * to the socket client. By default, `deserializer` is going to apply `JSON.parse` to each message coming * from the Server. * * ## Examples * * **deserializer**, the default for this property is `JSON.parse` but since there are just two options * for incoming data, either be text or binary data. We can apply a custom deserialization strategy * or just simply skip the default behaviour. * * ```ts * import { webSocket } from 'rxjs/webSocket'; * * const wsSubject = webSocket({ * url: 'ws://localhost:8081', * //Apply any transformation of your choice. * deserializer: ({ data }) => data * }); * * wsSubject.subscribe(console.log); * * // Let's suppose we have this on the Server: ws.send('This is a msg from the server') * //output * // * // This is a msg from the server * ``` * * **serializer** allows us to apply custom serialization strategy but for the outgoing messages. * * ```ts * import { webSocket } from 'rxjs/webSocket'; * * const wsSubject = webSocket({ * url: 'ws://localhost:8081', * // Apply any transformation of your choice. * serializer: msg => JSON.stringify({ channel: 'webDevelopment', msg: msg }) * }); * * wsSubject.subscribe(() => subject.next('msg to the server')); * * // Let's suppose we have this on the Server: * // ws.on('message', msg => console.log); * // ws.send('This is a msg from the server'); * // output at server side: * // * // {"channel":"webDevelopment","msg":"msg to the server"} * ``` * * **closeObserver** allows us to set a custom error when an error raises up. * * ```ts * import { webSocket } from 'rxjs/webSocket'; * * const wsSubject = webSocket({ * url: 'ws://localhost:8081', * closeObserver: { * next() { * const customError = { code: 6666, reason: 'Custom evil reason' } * console.log(`code: ${ customError.code }, reason: ${ customError.reason }`); * } * } * }); * * // output * // code: 6666, reason: Custom evil reason * ``` * * **openObserver**, Let's say we need to make some kind of init task before sending/receiving msgs to the * webSocket or sending notification that the connection was successful, this is when * openObserver is useful for. * * ```ts * import { webSocket } from 'rxjs/webSocket'; * * const wsSubject = webSocket({ * url: 'ws://localhost:8081', * openObserver: { * next: () => { * console.log('Connection ok'); * } * } * }); * * // output * // Connection ok * ``` */ export interface WebSocketSubjectConfig { /** The url of the socket server to connect to */ url: string; /** The protocol to use to connect */ protocol?: string | Array; /** @deprecated Will be removed in v8. Use {@link deserializer} instead. */ resultSelector?: (e: MessageEvent) => T; /** * A serializer used to create messages from passed values before the * messages are sent to the server. Defaults to JSON.stringify. */ serializer?: (value: T) => WebSocketMessage; /** * A deserializer used for messages arriving on the socket from the * server. Defaults to JSON.parse. */ deserializer?: (e: MessageEvent) => T; /** * An Observer that watches when open events occur on the underlying web socket. */ openObserver?: NextObserver; /** * An Observer that watches when close events occur on the underlying web socket */ closeObserver?: NextObserver; /** * An Observer that watches when a close is about to occur due to * unsubscription. */ closingObserver?: NextObserver; /** * A WebSocket constructor to use. This is useful for situations like using a * WebSocket impl in Node (WebSocket is a DOM API), or for mocking a WebSocket * for testing purposes */ WebSocketCtor?: { new (url: string, protocols?: string | string[]): WebSocket }; /** Sets the `binaryType` property of the underlying WebSocket. */ binaryType?: 'blob' | 'arraybuffer'; } const DEFAULT_WEBSOCKET_CONFIG: WebSocketSubjectConfig = { url: '', deserializer: (e: MessageEvent) => JSON.parse(e.data), serializer: (value: any) => JSON.stringify(value), }; const WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }'; export type WebSocketMessage = string | ArrayBuffer | Blob | ArrayBufferView; export class WebSocketSubject extends AnonymousSubject { // @ts-ignore: Property has no initializer and is not definitely assigned private _config: WebSocketSubjectConfig; /** @internal */ // @ts-ignore: Property has no initializer and is not definitely assigned _output: Subject; private _socket: WebSocket | null = null; constructor(urlConfigOrSource: string | WebSocketSubjectConfig | Observable, destination?: Observer) { super(); if (urlConfigOrSource instanceof Observable) { this.destination = destination; this.source = urlConfigOrSource as Observable; } else { const config = (this._config = { ...DEFAULT_WEBSOCKET_CONFIG }); this._output = new Subject(); if (typeof urlConfigOrSource === 'string') { config.url = urlConfigOrSource; } else { for (const key in urlConfigOrSource) { if (urlConfigOrSource.hasOwnProperty(key)) { (config as any)[key] = (urlConfigOrSource as any)[key]; } } } if (!config.WebSocketCtor && WebSocket) { config.WebSocketCtor = WebSocket; } else if (!config.WebSocketCtor) { throw new Error('no WebSocket constructor can be found'); } this.destination = new ReplaySubject(); } } /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ lift(operator: Operator): WebSocketSubject { const sock = new WebSocketSubject(this._config as WebSocketSubjectConfig, this.destination as any); sock.operator = operator; sock.source = this; return sock; } private _resetState() { this._socket = null; if (!this.source) { this.destination = new ReplaySubject(); } this._output = new Subject(); } /** * Creates an {@link Observable}, that when subscribed to, sends a message, * defined by the `subMsg` function, to the server over the socket to begin a * subscription to data over that socket. Once data arrives, the * `messageFilter` argument will be used to select the appropriate data for * the resulting Observable. When finalization occurs, either due to * unsubscription, completion, or error, a message defined by the `unsubMsg` * argument will be sent to the server over the WebSocketSubject. * * @param subMsg A function to generate the subscription message to be sent to * the server. This will still be processed by the serializer in the * WebSocketSubject's config. (Which defaults to JSON serialization) * @param unsubMsg A function to generate the unsubscription message to be * sent to the server at finalization. This will still be processed by the * serializer in the WebSocketSubject's config. * @param messageFilter A predicate for selecting the appropriate messages * from the server for the output stream. */ multiplex(subMsg: () => any, unsubMsg: () => any, messageFilter: (value: T) => boolean) { const self = this; return new Observable((observer: Observer) => { try { self.next(subMsg()); } catch (err) { observer.error(err); } const subscription = self.subscribe({ next: (x) => { try { if (messageFilter(x)) { observer.next(x); } } catch (err) { observer.error(err); } }, error: (err) => observer.error(err), complete: () => observer.complete(), }); return () => { try { self.next(unsubMsg()); } catch (err) { observer.error(err); } subscription.unsubscribe(); }; }); } private _connectSocket() { const { WebSocketCtor, protocol, url, binaryType } = this._config; const observer = this._output; let socket: WebSocket | null = null; try { socket = protocol ? new WebSocketCtor!(url, protocol) : new WebSocketCtor!(url); this._socket = socket; if (binaryType) { this._socket.binaryType = binaryType; } } catch (e) { observer.error(e); return; } const subscription = new Subscription(() => { this._socket = null; if (socket && socket.readyState === 1) { socket.close(); } }); socket.onopen = (evt: Event) => { const { _socket } = this; if (!_socket) { socket!.close(); this._resetState(); return; } const { openObserver } = this._config; if (openObserver) { openObserver.next(evt); } const queue = this.destination; this.destination = Subscriber.create( (x) => { if (socket!.readyState === 1) { try { const { serializer } = this._config; socket!.send(serializer!(x!)); } catch (e) { this.destination!.error(e); } } }, (err) => { const { closingObserver } = this._config; if (closingObserver) { closingObserver.next(undefined); } if (err && err.code) { socket!.close(err.code, err.reason); } else { observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT)); } this._resetState(); }, () => { const { closingObserver } = this._config; if (closingObserver) { closingObserver.next(undefined); } socket!.close(); this._resetState(); } ) as Subscriber; if (queue && queue instanceof ReplaySubject) { subscription.add((queue as ReplaySubject).subscribe(this.destination)); } }; socket.onerror = (e: Event) => { this._resetState(); observer.error(e); }; socket.onclose = (e: CloseEvent) => { if (socket === this._socket) { this._resetState(); } const { closeObserver } = this._config; if (closeObserver) { closeObserver.next(e); } if (e.wasClean) { observer.complete(); } else { observer.error(e); } }; socket.onmessage = (e: MessageEvent) => { try { const { deserializer } = this._config; observer.next(deserializer!(e)); } catch (err) { observer.error(err); } }; } /** @internal */ protected _subscribe(subscriber: Subscriber): Subscription { const { source } = this; if (source) { return source.subscribe(subscriber); } if (!this._socket) { this._connectSocket(); } this._output.subscribe(subscriber); subscriber.add(() => { const { _socket } = this; if (this._output.observers.length === 0) { if (_socket && (_socket.readyState === 1 || _socket.readyState === 0)) { _socket.close(); } this._resetState(); } }); return subscriber; } unsubscribe() { const { _socket } = this; if (_socket && (_socket.readyState === 1 || _socket.readyState === 0)) { _socket.close(); } this._resetState(); super.unsubscribe(); } } rxjs-7.5.7/src/internal/observable/dom/animationFrames.ts000066400000000000000000000117411431412030200235050ustar00rootroot00000000000000import { Observable } from '../../Observable'; import { TimestampProvider } from '../../types'; import { performanceTimestampProvider } from '../../scheduler/performanceTimestampProvider'; import { animationFrameProvider } from '../../scheduler/animationFrameProvider'; /** * An observable of animation frames * * Emits the amount of time elapsed since subscription and the timestamp on each animation frame. * Defaults to milliseconds provided to the requestAnimationFrame's callback. Does not end on its own. * * Every subscription will start a separate animation loop. Since animation frames are always scheduled * by the browser to occur directly before a repaint, scheduling more than one animation frame synchronously * should not be much different or have more overhead than looping over an array of events during * a single animation frame. However, if for some reason the developer would like to ensure the * execution of animation-related handlers are all executed during the same task by the engine, * the `share` operator can be used. * * This is useful for setting up animations with RxJS. * * ## Examples * * Tweening a div to move it on the screen * * ```ts * import { animationFrames, map, takeWhile, endWith } from 'rxjs'; * * function tween(start: number, end: number, duration: number) { * const diff = end - start; * return animationFrames().pipe( * // Figure out what percentage of time has passed * map(({ elapsed }) => elapsed / duration), * // Take the vector while less than 100% * takeWhile(v => v < 1), * // Finish with 100% * endWith(1), * // Calculate the distance traveled between start and end * map(v => v * diff + start) * ); * } * * // Setup a div for us to move around * const div = document.createElement('div'); * document.body.appendChild(div); * div.style.position = 'absolute'; * div.style.width = '40px'; * div.style.height = '40px'; * div.style.backgroundColor = 'lime'; * div.style.transform = 'translate3d(10px, 0, 0)'; * * tween(10, 200, 4000).subscribe(x => { * div.style.transform = `translate3d(${ x }px, 0, 0)`; * }); * ``` * * Providing a custom timestamp provider * * ```ts * import { animationFrames, TimestampProvider } from 'rxjs'; * * // A custom timestamp provider * let now = 0; * const customTSProvider: TimestampProvider = { * now() { return now++; } * }; * * const source$ = animationFrames(customTSProvider); * * // Log increasing numbers 0...1...2... on every animation frame. * source$.subscribe(({ elapsed }) => console.log(elapsed)); * ``` * * @param timestampProvider An object with a `now` method that provides a numeric timestamp */ export function animationFrames(timestampProvider?: TimestampProvider) { return timestampProvider ? animationFramesFactory(timestampProvider) : DEFAULT_ANIMATION_FRAMES; } /** * Does the work of creating the observable for `animationFrames`. * @param timestampProvider The timestamp provider to use to create the observable */ function animationFramesFactory(timestampProvider?: TimestampProvider) { return new Observable<{ timestamp: number; elapsed: number }>((subscriber) => { // If no timestamp provider is specified, use performance.now() - as it // will return timestamps 'compatible' with those passed to the run // callback and won't be affected by NTP adjustments, etc. const provider = timestampProvider || performanceTimestampProvider; // Capture the start time upon subscription, as the run callback can remain // queued for a considerable period of time and the elapsed time should // represent the time elapsed since subscription - not the time since the // first rendered animation frame. const start = provider.now(); let id = 0; const run = () => { if (!subscriber.closed) { id = animationFrameProvider.requestAnimationFrame((timestamp: DOMHighResTimeStamp | number) => { id = 0; // Use the provider's timestamp to calculate the elapsed time. Note that // this means - if the caller hasn't passed a provider - that // performance.now() will be used instead of the timestamp that was // passed to the run callback. The reason for this is that the timestamp // passed to the callback can be earlier than the start time, as it // represents the time at which the browser decided it would render any // queued frames - and that time can be earlier the captured start time. const now = provider.now(); subscriber.next({ timestamp: timestampProvider ? now : timestamp, elapsed: now - start, }); run(); }); } }; run(); return () => { if (id) { animationFrameProvider.cancelAnimationFrame(id); } }; }); } /** * In the common case, where the timestamp provided by the rAF API is used, * we use this shared observable to reduce overhead. */ const DEFAULT_ANIMATION_FRAMES = animationFramesFactory(); rxjs-7.5.7/src/internal/observable/dom/fetch.ts000066400000000000000000000154611431412030200214640ustar00rootroot00000000000000import { createOperatorSubscriber } from '../../operators/OperatorSubscriber'; import { Observable } from '../../Observable'; import { innerFrom } from '../../observable/innerFrom'; import { ObservableInput } from '../../types'; export function fromFetch( input: string | Request, init: RequestInit & { selector: (response: Response) => ObservableInput; } ): Observable; export function fromFetch(input: string | Request, init?: RequestInit): Observable; /** * Uses [the Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) to * make an HTTP request. * * **WARNING** Parts of the fetch API are still experimental. `AbortController` is * required for this implementation to work and use cancellation appropriately. * * Will automatically set up an internal [AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController) * in order to finalize the internal `fetch` when the subscription tears down. * * If a `signal` is provided via the `init` argument, it will behave like it usually does with * `fetch`. If the provided `signal` aborts, the error that `fetch` normally rejects with * in that scenario will be emitted as an error from the observable. * * ## Examples * * Basic use * * ```ts * import { fromFetch } from 'rxjs/fetch'; * import { switchMap, of, catchError } from 'rxjs'; * * const data$ = fromFetch('https://api.github.com/users?per_page=5').pipe( * switchMap(response => { * if (response.ok) { * // OK return data * return response.json(); * } else { * // Server is returning a status requiring the client to try something else. * return of({ error: true, message: `Error ${ response.status }` }); * } * }), * catchError(err => { * // Network or other error, handle appropriately * console.error(err); * return of({ error: true, message: err.message }) * }) * ); * * data$.subscribe({ * next: result => console.log(result), * complete: () => console.log('done') * }); * ``` * * ### Use with Chunked Transfer Encoding * * With HTTP responses that use [chunked transfer encoding](https://tools.ietf.org/html/rfc7230#section-3.3.1), * the promise returned by `fetch` will resolve as soon as the response's headers are * received. * * That means the `fromFetch` observable will emit a `Response` - and will * then complete - before the body is received. When one of the methods on the * `Response` - like `text()` or `json()` - is called, the returned promise will not * resolve until the entire body has been received. Unsubscribing from any observable * that uses the promise as an observable input will not abort the request. * * To facilitate aborting the retrieval of responses that use chunked transfer encoding, * a `selector` can be specified via the `init` parameter: * * ```ts * import { of } from 'rxjs'; * import { fromFetch } from 'rxjs/fetch'; * * const data$ = fromFetch('https://api.github.com/users?per_page=5', { * selector: response => response.json() * }); * * data$.subscribe({ * next: result => console.log(result), * complete: () => console.log('done') * }); * ``` * * @param input The resource you would like to fetch. Can be a url or a request object. * @param initWithSelector A configuration object for the fetch. * [See MDN for more details](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters) * @returns An Observable, that when subscribed to, performs an HTTP request using the native `fetch` * function. The {@link Subscription} is tied to an `AbortController` for the fetch. */ export function fromFetch( input: string | Request, initWithSelector: RequestInit & { selector?: (response: Response) => ObservableInput; } = {} ): Observable { const { selector, ...init } = initWithSelector; return new Observable((subscriber) => { // Our controller for aborting this fetch. // Any externally provided AbortSignal will have to call // abort on this controller when signaled, because the // signal from this controller is what is being passed to `fetch`. const controller = new AbortController(); const { signal } = controller; // This flag exists to make sure we don't `abort()` the fetch upon tearing down // this observable after emitting a Response. Aborting in such circumstances // would also abort subsequent methods - like `json()` - that could be called // on the Response. Consider: `fromFetch().pipe(take(1), mergeMap(res => res.json()))` let abortable = true; // If the user provided an init configuration object, // let's process it and chain our abort signals, if necessary. // If a signal is provided, just have it finalized. It's a cancellation token, basically. const { signal: outerSignal } = init; if (outerSignal) { if (outerSignal.aborted) { controller.abort(); } else { // We got an AbortSignal from the arguments passed into `fromFetch`. // We need to wire up our AbortController to abort when this signal aborts. const outerSignalHandler = () => { if (!signal.aborted) { controller.abort(); } }; outerSignal.addEventListener('abort', outerSignalHandler); subscriber.add(() => outerSignal.removeEventListener('abort', outerSignalHandler)); } } // The initialization object passed to `fetch` as the second // argument. This ferries in important information, including our // AbortSignal. Create a new init, so we don't accidentally mutate the // passed init, or reassign it. This is because the init passed in // is shared between each subscription to the result. const perSubscriberInit: RequestInit = { ...init, signal }; const handleError = (err: any) => { abortable = false; subscriber.error(err); }; fetch(input, perSubscriberInit) .then((response) => { if (selector) { // If we have a selector function, use it to project our response. // Note that any error that comes from our selector will be // sent to the promise `catch` below and handled. innerFrom(selector(response)).subscribe( createOperatorSubscriber( subscriber, // Values are passed through to the subscriber undefined, // The projected response is complete. () => { abortable = false; subscriber.complete(); }, handleError ) ); } else { abortable = false; subscriber.next(response); subscriber.complete(); } }) .catch(handleError); return () => { if (abortable) { controller.abort(); } }; }); } rxjs-7.5.7/src/internal/observable/dom/webSocket.ts000066400000000000000000000237211431412030200223170ustar00rootroot00000000000000import { WebSocketSubject, WebSocketSubjectConfig } from './WebSocketSubject'; /** * Wrapper around the w3c-compatible WebSocket object provided by the browser. * * {@link Subject} that communicates with a server via WebSocket * * `webSocket` is a factory function that produces a `WebSocketSubject`, * which can be used to make WebSocket connection with an arbitrary endpoint. * `webSocket` accepts as an argument either a string with url of WebSocket endpoint, or an * {@link WebSocketSubjectConfig} object for providing additional configuration, as * well as Observers for tracking lifecycle of WebSocket connection. * * When `WebSocketSubject` is subscribed, it attempts to make a socket connection, * unless there is one made already. This means that many subscribers will always listen * on the same socket, thus saving resources. If however, two instances are made of `WebSocketSubject`, * even if these two were provided with the same url, they will attempt to make separate * connections. When consumer of a `WebSocketSubject` unsubscribes, socket connection is closed, * only if there are no more subscribers still listening. If after some time a consumer starts * subscribing again, connection is reestablished. * * Once connection is made, whenever a new message comes from the server, `WebSocketSubject` will emit that * message as a value in the stream. By default, a message from the socket is parsed via `JSON.parse`. If you * want to customize how deserialization is handled (if at all), you can provide custom `resultSelector` * function in {@link WebSocketSubject}. When connection closes, stream will complete, provided it happened without * any errors. If at any point (starting, maintaining or closing a connection) there is an error, * stream will also error with whatever WebSocket API has thrown. * * By virtue of being a {@link Subject}, `WebSocketSubject` allows for receiving and sending messages from the server. In order * to communicate with a connected endpoint, use `next`, `error` and `complete` methods. `next` sends a value to the server, so bear in mind * that this value will not be serialized beforehand. Because of This, `JSON.stringify` will have to be called on a value by hand, * before calling `next` with a result. Note also that if at the moment of nexting value * there is no socket connection (for example no one is subscribing), those values will be buffered, and sent when connection * is finally established. `complete` method closes socket connection. `error` does the same, * as well as notifying the server that something went wrong via status code and string with details of what happened. * Since status code is required in WebSocket API, `WebSocketSubject` does not allow, like regular `Subject`, * arbitrary values being passed to the `error` method. It needs to be called with an object that has `code` * property with status code number and optional `reason` property with string describing details * of an error. * * Calling `next` does not affect subscribers of `WebSocketSubject` - they have no * information that something was sent to the server (unless of course the server * responds somehow to a message). On the other hand, since calling `complete` triggers * an attempt to close socket connection. If that connection is closed without any errors, stream will * complete, thus notifying all subscribers. And since calling `error` closes * socket connection as well, just with a different status code for the server, if closing itself proceeds * without errors, subscribed Observable will not error, as one might expect, but complete as usual. In both cases * (calling `complete` or `error`), if process of closing socket connection results in some errors, *then* stream * will error. * * **Multiplexing** * * `WebSocketSubject` has an additional operator, not found in other Subjects. It is called `multiplex` and it is * used to simulate opening several socket connections, while in reality maintaining only one. * For example, an application has both chat panel and real-time notifications about sport news. Since these are two distinct functions, * it would make sense to have two separate connections for each. Perhaps there could even be two separate services with WebSocket * endpoints, running on separate machines with only GUI combining them together. Having a socket connection * for each functionality could become too resource expensive. It is a common pattern to have single * WebSocket endpoint that acts as a gateway for the other services (in this case chat and sport news services). * Even though there is a single connection in a client app, having the ability to manipulate streams as if it * were two separate sockets is desirable. This eliminates manually registering and unregistering in a gateway for * given service and filter out messages of interest. This is exactly what `multiplex` method is for. * * Method accepts three parameters. First two are functions returning subscription and unsubscription messages * respectively. These are messages that will be sent to the server, whenever consumer of resulting Observable * subscribes and unsubscribes. Server can use them to verify that some kind of messages should start or stop * being forwarded to the client. In case of the above example application, after getting subscription message with proper identifier, * gateway server can decide that it should connect to real sport news service and start forwarding messages from it. * Note that both messages will be sent as returned by the functions, they are by default serialized using JSON.stringify, just * as messages pushed via `next`. Also bear in mind that these messages will be sent on *every* subscription and * unsubscription. This is potentially dangerous, because one consumer of an Observable may unsubscribe and the server * might stop sending messages, since it got unsubscription message. This needs to be handled * on the server or using {@link publish} on a Observable returned from 'multiplex'. * * Last argument to `multiplex` is a `messageFilter` function which should return a boolean. It is used to filter out messages * sent by the server to only those that belong to simulated WebSocket stream. For example, server might mark these * messages with some kind of string identifier on a message object and `messageFilter` would return `true` * if there is such identifier on an object emitted by the socket. Messages which returns `false` in `messageFilter` are simply skipped, * and are not passed down the stream. * * Return value of `multiplex` is an Observable with messages incoming from emulated socket connection. Note that this * is not a `WebSocketSubject`, so calling `next` or `multiplex` again will fail. For pushing values to the * server, use root `WebSocketSubject`. * * ## Examples * * Listening for messages from the server * * ```ts * import { webSocket } from 'rxjs/webSocket'; * * const subject = webSocket('ws://localhost:8081'); * * subject.subscribe({ * next: msg => console.log('message received: ' + msg), // Called whenever there is a message from the server. * error: err => console.log(err), // Called if at any point WebSocket API signals some kind of error. * complete: () => console.log('complete') // Called when connection is closed (for whatever reason). * }); * ``` * * Pushing messages to the server * * ```ts * import { webSocket } from 'rxjs/webSocket'; * * const subject = webSocket('ws://localhost:8081'); * * subject.subscribe(); * // Note that at least one consumer has to subscribe to the created subject - otherwise "nexted" values will be just buffered and not sent, * // since no connection was established! * * subject.next({ message: 'some message' }); * // This will send a message to the server once a connection is made. Remember value is serialized with JSON.stringify by default! * * subject.complete(); // Closes the connection. * * subject.error({ code: 4000, reason: 'I think our app just broke!' }); * // Also closes the connection, but let's the server know that this closing is caused by some error. * ``` * * Multiplexing WebSocket * * ```ts * import { webSocket } from 'rxjs/webSocket'; * * const subject = webSocket('ws://localhost:8081'); * * const observableA = subject.multiplex( * () => ({ subscribe: 'A' }), // When server gets this message, it will start sending messages for 'A'... * () => ({ unsubscribe: 'A' }), // ...and when gets this one, it will stop. * message => message.type === 'A' // If the function returns `true` message is passed down the stream. Skipped if the function returns false. * ); * * const observableB = subject.multiplex( // And the same goes for 'B'. * () => ({ subscribe: 'B' }), * () => ({ unsubscribe: 'B' }), * message => message.type === 'B' * ); * * const subA = observableA.subscribe(messageForA => console.log(messageForA)); * // At this moment WebSocket connection is established. Server gets '{"subscribe": "A"}' message and starts sending messages for 'A', * // which we log here. * * const subB = observableB.subscribe(messageForB => console.log(messageForB)); * // Since we already have a connection, we just send '{"subscribe": "B"}' message to the server. It starts sending messages for 'B', * // which we log here. * * subB.unsubscribe(); * // Message '{"unsubscribe": "B"}' is sent to the server, which stops sending 'B' messages. * * subA.unsubscribe(); * // Message '{"unsubscribe": "A"}' makes the server stop sending messages for 'A'. Since there is no more subscribers to root Subject, * // socket connection closes. * ``` * * @param {string|WebSocketSubjectConfig} urlConfigOrSource The WebSocket endpoint as an url or an object with * configuration and additional Observers. * @return {WebSocketSubject} Subject which allows to both send and receive messages via WebSocket connection. */ export function webSocket(urlConfigOrSource: string | WebSocketSubjectConfig): WebSocketSubject { return new WebSocketSubject(urlConfigOrSource); } rxjs-7.5.7/src/internal/observable/empty.ts000066400000000000000000000042631431412030200207500ustar00rootroot00000000000000import { Observable } from '../Observable'; import { SchedulerLike } from '../types'; /** * A simple Observable that emits no items to the Observer and immediately * emits a complete notification. * * Just emits 'complete', and nothing else. * * ![](empty.png) * * A simple Observable that only emits the complete notification. It can be used * for composing with other Observables, such as in a {@link mergeMap}. * * ## Examples * * Log complete notification * * ```ts * import { EMPTY } from 'rxjs'; * * EMPTY.subscribe({ * next: () => console.log('Next'), * complete: () => console.log('Complete!') * }); * * // Outputs * // Complete! * ``` * * Emit the number 7, then complete * * ```ts * import { EMPTY, startWith } from 'rxjs'; * * const result = EMPTY.pipe(startWith(7)); * result.subscribe(x => console.log(x)); * * // Outputs * // 7 * ``` * * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'` * * ```ts * import { interval, mergeMap, of, EMPTY } from 'rxjs'; * * const interval$ = interval(1000); * const result = interval$.pipe( * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY), * ); * result.subscribe(x => console.log(x)); * * // Results in the following to the console: * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...) * // x will occur every 1000ms * // if x % 2 is equal to 1, print a, b, c (each on its own) * // if x % 2 is not equal to 1, nothing will be output * ``` * * @see {@link Observable} * @see {@link NEVER} * @see {@link of} * @see {@link throwError} */ export const EMPTY = new Observable((subscriber) => subscriber.complete()); /** * @param scheduler A {@link SchedulerLike} to use for scheduling * the emission of the complete notification. * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8. */ export function empty(scheduler?: SchedulerLike) { return scheduler ? emptyScheduled(scheduler) : EMPTY; } function emptyScheduled(scheduler: SchedulerLike) { return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete())); } rxjs-7.5.7/src/internal/observable/forkJoin.ts000066400000000000000000000200261431412030200213660ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ObservedValueOf, ObservableInputTuple, ObservableInput } from '../types'; import { argsArgArrayOrObject } from '../util/argsArgArrayOrObject'; import { innerFrom } from './innerFrom'; import { popResultSelector } from '../util/args'; import { createOperatorSubscriber } from '../operators/OperatorSubscriber'; import { mapOneOrManyArgs } from '../util/mapOneOrManyArgs'; import { createObject } from '../util/createObject'; import { AnyCatcher } from '../AnyCatcher'; // forkJoin(any) // We put this first because we need to catch cases where the user has supplied // _exactly `any`_ as the argument. Since `any` literally matches _anything_, // we don't want it to randomly hit one of the other type signatures below, // as we have no idea at build-time what type we should be returning when given an any. /** * You have passed `any` here, we can't figure out if it is * an array or an object, so you're getting `unknown`. Use better types. * @param arg Something typed as `any` */ export function forkJoin(arg: T): Observable; // forkJoin(null | undefined) export function forkJoin(scheduler: null | undefined): Observable; // forkJoin([a, b, c]) export function forkJoin(sources: readonly []): Observable; export function forkJoin(sources: readonly [...ObservableInputTuple]): Observable; export function forkJoin( sources: readonly [...ObservableInputTuple], resultSelector: (...values: A) => R ): Observable; // forkJoin(a, b, c) /** @deprecated Pass an array of sources instead. The rest-parameters signature will be removed in v8. Details: https://rxjs.dev/deprecations/array-argument */ export function forkJoin(...sources: [...ObservableInputTuple]): Observable; /** @deprecated Pass an array of sources instead. The rest-parameters signature will be removed in v8. Details: https://rxjs.dev/deprecations/array-argument */ export function forkJoin( ...sourcesAndResultSelector: [...ObservableInputTuple, (...values: A) => R] ): Observable; // forkJoin({a, b, c}) export function forkJoin(sourcesObject: { [K in any]: never }): Observable; export function forkJoin>>( sourcesObject: T ): Observable<{ [K in keyof T]: ObservedValueOf }>; /** * Accepts an `Array` of {@link ObservableInput} or a dictionary `Object` of {@link ObservableInput} and returns * an {@link Observable} that emits either an array of values in the exact same order as the passed array, * or a dictionary of values in the same shape as the passed dictionary. * * Wait for Observables to complete and then combine last values they emitted; * complete immediately if an empty array is passed. * * ![](forkJoin.png) * * `forkJoin` is an operator that takes any number of input observables which can be passed either as an array * or a dictionary of input observables. If no input observables are provided (e.g. an empty array is passed), * then the resulting stream will complete immediately. * * `forkJoin` will wait for all passed observables to emit and complete and then it will emit an array or an object with last * values from corresponding observables. * * If you pass an array of `n` observables to the operator, then the resulting * array will have `n` values, where the first value is the last one emitted by the first observable, * second value is the last one emitted by the second observable and so on. * * If you pass a dictionary of observables to the operator, then the resulting * objects will have the same keys as the dictionary passed, with their last values they have emitted * located at the corresponding key. * * That means `forkJoin` will not emit more than once and it will complete after that. If you need to emit combined * values not only at the end of the lifecycle of passed observables, but also throughout it, try out {@link combineLatest} * or {@link zip} instead. * * In order for the resulting array to have the same length as the number of input observables, whenever any of * the given observables completes without emitting any value, `forkJoin` will complete at that moment as well * and it will not emit anything either, even if it already has some last values from other observables. * Conversely, if there is an observable that never completes, `forkJoin` will never complete either, * unless at any point some other observable completes without emitting a value, which brings us back to * the previous case. Overall, in order for `forkJoin` to emit a value, all given observables * have to emit something at least once and complete. * * If any given observable errors at some point, `forkJoin` will error as well and immediately unsubscribe * from the other observables. * * Optionally `forkJoin` accepts a `resultSelector` function, that will be called with values which normally * would land in the emitted array. Whatever is returned by the `resultSelector`, will appear in the output * observable instead. This means that the default `resultSelector` can be thought of as a function that takes * all its arguments and puts them into an array. Note that the `resultSelector` will be called only * when `forkJoin` is supposed to emit a result. * * ## Examples * * Use `forkJoin` with a dictionary of observable inputs * * ```ts * import { forkJoin, of, timer } from 'rxjs'; * * const observable = forkJoin({ * foo: of(1, 2, 3, 4), * bar: Promise.resolve(8), * baz: timer(4000) * }); * observable.subscribe({ * next: value => console.log(value), * complete: () => console.log('This is how it ends!'), * }); * * // Logs: * // { foo: 4, bar: 8, baz: 0 } after 4 seconds * // 'This is how it ends!' immediately after * ``` * * Use `forkJoin` with an array of observable inputs * * ```ts * import { forkJoin, of, timer } from 'rxjs'; * * const observable = forkJoin([ * of(1, 2, 3, 4), * Promise.resolve(8), * timer(4000) * ]); * observable.subscribe({ * next: value => console.log(value), * complete: () => console.log('This is how it ends!'), * }); * * // Logs: * // [4, 8, 0] after 4 seconds * // 'This is how it ends!' immediately after * ``` * * @see {@link combineLatest} * @see {@link zip} * * @param {...ObservableInput} args Any number of Observables provided either as an array or as an arguments * passed directly to the operator. * @param {function} [project] Function that takes values emitted by input Observables and returns value * that will appear in resulting Observable instead of default array. * @return {Observable} Observable emitting either an array of last values emitted by passed Observables * or value from project function. */ export function forkJoin(...args: any[]): Observable { const resultSelector = popResultSelector(args); const { args: sources, keys } = argsArgArrayOrObject(args); const result = new Observable((subscriber) => { const { length } = sources; if (!length) { subscriber.complete(); return; } const values = new Array(length); let remainingCompletions = length; let remainingEmissions = length; for (let sourceIndex = 0; sourceIndex < length; sourceIndex++) { let hasValue = false; innerFrom(sources[sourceIndex]).subscribe( createOperatorSubscriber( subscriber, (value) => { if (!hasValue) { hasValue = true; remainingEmissions--; } values[sourceIndex] = value; }, () => remainingCompletions--, undefined, () => { if (!remainingCompletions || !hasValue) { if (!remainingEmissions) { subscriber.next(keys ? createObject(keys, values) : values); } subscriber.complete(); } } ) ); } }); return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result; } rxjs-7.5.7/src/internal/observable/from.ts000066400000000000000000000057021431412030200205540ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ObservableInput, SchedulerLike, ObservedValueOf } from '../types'; import { scheduled } from '../scheduled/scheduled'; import { innerFrom } from './innerFrom'; export function from>(input: O): Observable>; /** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */ export function from>(input: O, scheduler: SchedulerLike | undefined): Observable>; /** * Creates an Observable from an Array, an array-like object, a Promise, an iterable object, or an Observable-like object. * * Converts almost anything to an Observable. * * ![](from.png) * * `from` converts various other objects and data types into Observables. It also converts a Promise, an array-like, or an * iterable * object into an Observable that emits the items in that promise, array, or iterable. A String, in this context, is treated * as an array of characters. Observable-like objects (contains a function named with the ES2015 Symbol for Observable) can also be * converted through this operator. * * ## Examples * * Converts an array to an Observable * * ```ts * import { from } from 'rxjs'; * * const array = [10, 20, 30]; * const result = from(array); * * result.subscribe(x => console.log(x)); * * // Logs: * // 10 * // 20 * // 30 * ``` * * Convert an infinite iterable (from a generator) to an Observable * * ```ts * import { from, take } from 'rxjs'; * * function* generateDoubles(seed) { * let i = seed; * while (true) { * yield i; * i = 2 * i; // double it * } * } * * const iterator = generateDoubles(3); * const result = from(iterator).pipe(take(10)); * * result.subscribe(x => console.log(x)); * * // Logs: * // 3 * // 6 * // 12 * // 24 * // 48 * // 96 * // 192 * // 384 * // 768 * // 1536 * ``` * * With `asyncScheduler` * * ```ts * import { from, asyncScheduler } from 'rxjs'; * * console.log('start'); * * const array = [10, 20, 30]; * const result = from(array, asyncScheduler); * * result.subscribe(x => console.log(x)); * * console.log('end'); * * // Logs: * // 'start' * // 'end' * // 10 * // 20 * // 30 * ``` * * @see {@link fromEvent} * @see {@link fromEventPattern} * * @param {ObservableInput} A subscription object, a Promise, an Observable-like, * an Array, an iterable, or an array-like object to be converted. * @param {SchedulerLike} An optional {@link SchedulerLike} on which to schedule the emission of values. * @return {Observable} */ export function from(input: ObservableInput, scheduler?: SchedulerLike): Observable { return scheduler ? scheduled(input, scheduler) : innerFrom(input); } rxjs-7.5.7/src/internal/observable/fromEvent.ts000066400000000000000000000341551431412030200215620ustar00rootroot00000000000000import { innerFrom } from '../observable/innerFrom'; import { Observable } from '../Observable'; import { mergeMap } from '../operators/mergeMap'; import { isArrayLike } from '../util/isArrayLike'; import { isFunction } from '../util/isFunction'; import { mapOneOrManyArgs } from '../util/mapOneOrManyArgs'; // These constants are used to create handler registry functions using array mapping below. const nodeEventEmitterMethods = ['addListener', 'removeListener'] as const; const eventTargetMethods = ['addEventListener', 'removeEventListener'] as const; const jqueryMethods = ['on', 'off'] as const; export interface NodeStyleEventEmitter { addListener(eventName: string | symbol, handler: NodeEventHandler): this; removeListener(eventName: string | symbol, handler: NodeEventHandler): this; } export type NodeEventHandler = (...args: any[]) => void; // For APIs that implement `addListener` and `removeListener` methods that may // not use the same arguments or return EventEmitter values // such as React Native export interface NodeCompatibleEventEmitter { addListener(eventName: string, handler: NodeEventHandler): void | {}; removeListener(eventName: string, handler: NodeEventHandler): void | {}; } // Use handler types like those in @types/jquery. See: // https://github.com/DefinitelyTyped/DefinitelyTyped/blob/847731ba1d7fa6db6b911c0e43aa0afe596e7723/types/jquery/misc.d.ts#L6395 export interface JQueryStyleEventEmitter { on(eventName: string, handler: (this: TContext, t: T, ...args: any[]) => any): void; off(eventName: string, handler: (this: TContext, t: T, ...args: any[]) => any): void; } export interface EventListenerObject { handleEvent(evt: E): void; } export interface HasEventTargetAddRemove { addEventListener( type: string, listener: ((evt: E) => void) | EventListenerObject | null, options?: boolean | AddEventListenerOptions ): void; removeEventListener( type: string, listener: ((evt: E) => void) | EventListenerObject | null, options?: EventListenerOptions | boolean ): void; } export interface EventListenerOptions { capture?: boolean; passive?: boolean; once?: boolean; } export interface AddEventListenerOptions extends EventListenerOptions { once?: boolean; passive?: boolean; } export function fromEvent(target: HasEventTargetAddRemove | ArrayLike>, eventName: string): Observable; export function fromEvent( target: HasEventTargetAddRemove | ArrayLike>, eventName: string, resultSelector: (event: T) => R ): Observable; export function fromEvent( target: HasEventTargetAddRemove | ArrayLike>, eventName: string, options: EventListenerOptions ): Observable; export function fromEvent( target: HasEventTargetAddRemove | ArrayLike>, eventName: string, options: EventListenerOptions, resultSelector: (event: T) => R ): Observable; export function fromEvent(target: NodeStyleEventEmitter | ArrayLike, eventName: string): Observable; /** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */ export function fromEvent(target: NodeStyleEventEmitter | ArrayLike, eventName: string): Observable; export function fromEvent( target: NodeStyleEventEmitter | ArrayLike, eventName: string, resultSelector: (...args: any[]) => R ): Observable; export function fromEvent( target: NodeCompatibleEventEmitter | ArrayLike, eventName: string ): Observable; /** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */ export function fromEvent(target: NodeCompatibleEventEmitter | ArrayLike, eventName: string): Observable; export function fromEvent( target: NodeCompatibleEventEmitter | ArrayLike, eventName: string, resultSelector: (...args: any[]) => R ): Observable; export function fromEvent( target: JQueryStyleEventEmitter | ArrayLike>, eventName: string ): Observable; export function fromEvent( target: JQueryStyleEventEmitter | ArrayLike>, eventName: string, resultSelector: (value: T, ...args: any[]) => R ): Observable; /** * Creates an Observable that emits events of a specific type coming from the * given event target. * * Creates an Observable from DOM events, or Node.js * EventEmitter events or others. * * ![](fromEvent.png) * * `fromEvent` accepts as a first argument event target, which is an object with methods * for registering event handler functions. As a second argument it takes string that indicates * type of event we want to listen for. `fromEvent` supports selected types of event targets, * which are described in detail below. If your event target does not match any of the ones listed, * you should use {@link fromEventPattern}, which can be used on arbitrary APIs. * When it comes to APIs supported by `fromEvent`, their methods for adding and removing event * handler functions have different names, but they all accept a string describing event type * and function itself, which will be called whenever said event happens. * * Every time resulting Observable is subscribed, event handler function will be registered * to event target on given event type. When that event fires, value * passed as a first argument to registered function will be emitted by output Observable. * When Observable is unsubscribed, function will be unregistered from event target. * * Note that if event target calls registered function with more than one argument, second * and following arguments will not appear in resulting stream. In order to get access to them, * you can pass to `fromEvent` optional project function, which will be called with all arguments * passed to event handler. Output Observable will then emit value returned by project function, * instead of the usual value. * * Remember that event targets listed below are checked via duck typing. It means that * no matter what kind of object you have and no matter what environment you work in, * you can safely use `fromEvent` on that object if it exposes described methods (provided * of course they behave as was described above). So for example if Node.js library exposes * event target which has the same method names as DOM EventTarget, `fromEvent` is still * a good choice. * * If the API you use is more callback then event handler oriented (subscribed * callback function fires only once and thus there is no need to manually * unregister it), you should use {@link bindCallback} or {@link bindNodeCallback} * instead. * * `fromEvent` supports following types of event targets: * * **DOM EventTarget** * * This is an object with `addEventListener` and `removeEventListener` methods. * * In the browser, `addEventListener` accepts - apart from event type string and event * handler function arguments - optional third parameter, which is either an object or boolean, * both used for additional configuration how and when passed function will be called. When * `fromEvent` is used with event target of that type, you can provide this values * as third parameter as well. * * **Node.js EventEmitter** * * An object with `addListener` and `removeListener` methods. * * **JQuery-style event target** * * An object with `on` and `off` methods * * **DOM NodeList** * * List of DOM Nodes, returned for example by `document.querySelectorAll` or `Node.childNodes`. * * Although this collection is not event target in itself, `fromEvent` will iterate over all Nodes * it contains and install event handler function in every of them. When returned Observable * is unsubscribed, function will be removed from all Nodes. * * **DOM HtmlCollection** * * Just as in case of NodeList it is a collection of DOM nodes. Here as well event handler function is * installed and removed in each of elements. * * * ## Examples * * Emit clicks happening on the DOM document * * ```ts * import { fromEvent } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * clicks.subscribe(x => console.log(x)); * * // Results in: * // MouseEvent object logged to console every time a click * // occurs on the document. * ``` * * Use `addEventListener` with capture option * * ```ts * import { fromEvent } from 'rxjs'; * * const clicksInDocument = fromEvent(document, 'click', true); // note optional configuration parameter * // which will be passed to addEventListener * const clicksInDiv = fromEvent(someDivInDocument, 'click'); * * clicksInDocument.subscribe(() => console.log('document')); * clicksInDiv.subscribe(() => console.log('div')); * * // By default events bubble UP in DOM tree, so normally * // when we would click on div in document * // "div" would be logged first and then "document". * // Since we specified optional `capture` option, document * // will catch event when it goes DOWN DOM tree, so console * // will log "document" and then "div". * ``` * * @see {@link bindCallback} * @see {@link bindNodeCallback} * @see {@link fromEventPattern} * * @param {FromEventTarget} target The DOM EventTarget, Node.js * EventEmitter, JQuery-like event target, NodeList or HTMLCollection to attach the event handler to. * @param {string} eventName The event name of interest, being emitted by the * `target`. * @param {EventListenerOptions} [options] Options to pass through to addEventListener * @return {Observable} */ export function fromEvent( target: any, eventName: string, options?: EventListenerOptions | ((...args: any[]) => T), resultSelector?: (...args: any[]) => T ): Observable { if (isFunction(options)) { resultSelector = options; options = undefined; } if (resultSelector) { return fromEvent(target, eventName, options as EventListenerOptions).pipe(mapOneOrManyArgs(resultSelector)); } // Figure out our add and remove methods. In order to do this, // we are going to analyze the target in a preferred order, if // the target matches a given signature, we take the two "add" and "remove" // method names and apply them to a map to create opposite versions of the // same function. This is because they all operate in duplicate pairs, // `addListener(name, handler)`, `removeListener(name, handler)`, for example. // The call only differs by method name, as to whether or not you're adding or removing. const [add, remove] = // If it is an EventTarget, we need to use a slightly different method than the other two patterns. isEventTarget(target) ? eventTargetMethods.map((methodName) => (handler: any) => target[methodName](eventName, handler, options as EventListenerOptions)) : // In all other cases, the call pattern is identical with the exception of the method names. isNodeStyleEventEmitter(target) ? nodeEventEmitterMethods.map(toCommonHandlerRegistry(target, eventName)) : isJQueryStyleEventEmitter(target) ? jqueryMethods.map(toCommonHandlerRegistry(target, eventName)) : []; // If add is falsy, it's because we didn't match a pattern above. // Check to see if it is an ArrayLike, because if it is, we want to // try to apply fromEvent to all of it's items. We do this check last, // because there are may be some types that are both ArrayLike *and* implement // event registry points, and we'd rather delegate to that when possible. if (!add) { if (isArrayLike(target)) { return mergeMap((subTarget: any) => fromEvent(subTarget, eventName, options as EventListenerOptions))( innerFrom(target) ) as Observable; } } // If add is falsy and we made it here, it's because we didn't // match any valid target objects above. if (!add) { throw new TypeError('Invalid event target'); } return new Observable((subscriber) => { // The handler we are going to register. Forwards the event object, by itself, or // an array of arguments to the event handler, if there is more than one argument, // to the consumer. const handler = (...args: any[]) => subscriber.next(1 < args.length ? args : args[0]); // Do the work of adding the handler to the target. add(handler); // When we finalize, we want to remove the handler and free up memory. return () => remove!(handler); }); } /** * Used to create `add` and `remove` functions to register and unregister event handlers * from a target in the most common handler pattern, where there are only two arguments. * (e.g. `on(name, fn)`, `off(name, fn)`, `addListener(name, fn)`, or `removeListener(name, fn)`) * @param target The target we're calling methods on * @param eventName The event name for the event we're creating register or unregister functions for */ function toCommonHandlerRegistry(target: any, eventName: string) { return (methodName: string) => (handler: any) => target[methodName](eventName, handler); } /** * Checks to see if the target implements the required node-style EventEmitter methods * for adding and removing event handlers. * @param target the object to check */ function isNodeStyleEventEmitter(target: any): target is NodeStyleEventEmitter { return isFunction(target.addListener) && isFunction(target.removeListener); } /** * Checks to see if the target implements the required jQuery-style EventEmitter methods * for adding and removing event handlers. * @param target the object to check */ function isJQueryStyleEventEmitter(target: any): target is JQueryStyleEventEmitter { return isFunction(target.on) && isFunction(target.off); } /** * Checks to see if the target implements the required EventTarget methods * for adding and removing event handlers. * @param target the object to check */ function isEventTarget(target: any): target is HasEventTargetAddRemove { return isFunction(target.addEventListener) && isFunction(target.removeEventListener); } rxjs-7.5.7/src/internal/observable/fromEventPattern.ts000066400000000000000000000153031431412030200231120ustar00rootroot00000000000000import { Observable } from '../Observable'; import { isFunction } from '../util/isFunction'; import { NodeEventHandler } from './fromEvent'; import { mapOneOrManyArgs } from '../util/mapOneOrManyArgs'; /* tslint:disable:max-line-length */ export function fromEventPattern( addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void ): Observable; export function fromEventPattern( addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void, resultSelector?: (...args: any[]) => T ): Observable; /* tslint:enable:max-line-length */ /** * Creates an Observable from an arbitrary API for registering event handlers. * * When that method for adding event handler was something {@link fromEvent} * was not prepared for. * * ![](fromEventPattern.png) * * `fromEventPattern` allows you to convert into an Observable any API that supports registering handler functions * for events. It is similar to {@link fromEvent}, but far * more flexible. In fact, all use cases of {@link fromEvent} could be easily handled by * `fromEventPattern` (although in slightly more verbose way). * * This operator accepts as a first argument an `addHandler` function, which will be injected with * handler parameter. That handler is actually an event handler function that you now can pass * to API expecting it. `addHandler` will be called whenever Observable * returned by the operator is subscribed, so registering handler in API will not * necessarily happen when `fromEventPattern` is called. * * After registration, every time an event that we listen to happens, * Observable returned by `fromEventPattern` will emit value that event handler * function was called with. Note that if event handler was called with more * than one argument, second and following arguments will not appear in the Observable. * * If API you are using allows to unregister event handlers as well, you can pass to `fromEventPattern` * another function - `removeHandler` - as a second parameter. It will be injected * with the same handler function as before, which now you can use to unregister * it from the API. `removeHandler` will be called when consumer of resulting Observable * unsubscribes from it. * * In some APIs unregistering is actually handled differently. Method registering an event handler * returns some kind of token, which is later used to identify which function should * be unregistered or it itself has method that unregisters event handler. * If that is the case with your API, make sure token returned * by registering method is returned by `addHandler`. Then it will be passed * as a second argument to `removeHandler`, where you will be able to use it. * * If you need access to all event handler parameters (not only the first one), * or you need to transform them in any way, you can call `fromEventPattern` with optional * third parameter - project function which will accept all arguments passed to * event handler when it is called. Whatever is returned from project function will appear on * resulting stream instead of usual event handlers first argument. This means * that default project can be thought of as function that takes its first parameter * and ignores the rest. * * ## Examples * * Emits clicks happening on the DOM document * * ```ts * import { fromEventPattern } from 'rxjs'; * * function addClickHandler(handler) { * document.addEventListener('click', handler); * } * * function removeClickHandler(handler) { * document.removeEventListener('click', handler); * } * * const clicks = fromEventPattern( * addClickHandler, * removeClickHandler * ); * clicks.subscribe(x => console.log(x)); * * // Whenever you click anywhere in the browser, DOM MouseEvent * // object will be logged. * ``` * * Use with API that returns cancellation token * * ```ts * import { fromEventPattern } from 'rxjs'; * * const token = someAPI.registerEventHandler(function() {}); * someAPI.unregisterEventHandler(token); // this APIs cancellation method accepts * // not handler itself, but special token. * * const someAPIObservable = fromEventPattern( * function(handler) { return someAPI.registerEventHandler(handler); }, // Note that we return the token here... * function(handler, token) { someAPI.unregisterEventHandler(token); } // ...to then use it here. * ); * ``` * * Use with project function * * ```ts * import { fromEventPattern } from 'rxjs'; * * someAPI.registerEventHandler((eventType, eventMessage) => { * console.log(eventType, eventMessage); // Logs 'EVENT_TYPE' 'EVENT_MESSAGE' to console. * }); * * const someAPIObservable = fromEventPattern( * handler => someAPI.registerEventHandler(handler), * handler => someAPI.unregisterEventHandler(handler) * (eventType, eventMessage) => eventType + ' --- ' + eventMessage // without that function only 'EVENT_TYPE' * ); // would be emitted by the Observable * * someAPIObservable.subscribe(value => console.log(value)); * * // Logs: * // 'EVENT_TYPE --- EVENT_MESSAGE' * ``` * * @see {@link fromEvent} * @see {@link bindCallback} * @see {@link bindNodeCallback} * * @param {function(handler: Function): any} addHandler A function that takes * a `handler` function as argument and attaches it somehow to the actual * source of events. * @param {function(handler: Function, token?: any): void} [removeHandler] A function that * takes a `handler` function as an argument and removes it from the event source. If `addHandler` * returns some kind of token, `removeHandler` function will have it as a second parameter. * @param {function(...args: any): T} [project] A function to * transform results. It takes the arguments from the event handler and * should return a single value. * @return {Observable} Observable which, when an event happens, emits first parameter * passed to registered event handler. Alternatively it emits whatever project function returns * at that moment. */ export function fromEventPattern( addHandler: (handler: NodeEventHandler) => any, removeHandler?: (handler: NodeEventHandler, signal?: any) => void, resultSelector?: (...args: any[]) => T ): Observable { if (resultSelector) { return fromEventPattern(addHandler, removeHandler).pipe(mapOneOrManyArgs(resultSelector)); } return new Observable((subscriber) => { const handler = (...e: T[]) => subscriber.next(e.length === 1 ? e[0] : e); const retValue = addHandler(handler); return isFunction(removeHandler) ? () => removeHandler(handler, retValue) : undefined; }); } rxjs-7.5.7/src/internal/observable/fromSubscribable.ts000066400000000000000000000010571431412030200230740ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Subscriber } from '../Subscriber'; import { Subscribable } from '../types'; /** * Used to convert a subscribable to an observable. * * Currently, this is only used within internals. * * TODO: Discuss ObservableInput supporting "Subscribable". * https://github.com/ReactiveX/rxjs/issues/5909 * * @param subscribable A subscribable */ export function fromSubscribable(subscribable: Subscribable) { return new Observable((subscriber: Subscriber) => subscribable.subscribe(subscriber)); } rxjs-7.5.7/src/internal/observable/generate.ts000066400000000000000000000302671431412030200214070ustar00rootroot00000000000000import { Observable } from '../Observable'; import { identity } from '../util/identity'; import { ObservableInput, SchedulerLike } from '../types'; import { isScheduler } from '../util/isScheduler'; import { defer } from './defer'; import { scheduleIterable } from '../scheduled/scheduleIterable'; type ConditionFunc = (state: S) => boolean; type IterateFunc = (state: S) => S; type ResultFunc = (state: S) => T; export interface GenerateBaseOptions { /** * Initial state. */ initialState: S; /** * Condition function that accepts state and returns boolean. * When it returns false, the generator stops. * If not specified, a generator never stops. */ condition?: ConditionFunc; /** * Iterate function that accepts state and returns new state. */ iterate: IterateFunc; /** * SchedulerLike to use for generation process. * By default, a generator starts immediately. */ scheduler?: SchedulerLike; } export interface GenerateOptions extends GenerateBaseOptions { /** * Result selection function that accepts state and returns a value to emit. */ resultSelector: ResultFunc; } /** * Generates an observable sequence by running a state-driven loop * producing the sequence's elements, using the specified scheduler * to send out observer messages. * * ![](generate.png) * * ## Examples * * Produces sequence of numbers * * ```ts * import { generate } from 'rxjs'; * * const result = generate(0, x => x < 3, x => x + 1, x => x); * * result.subscribe(x => console.log(x)); * * // Logs: * // 0 * // 1 * // 2 * ``` * * Use `asapScheduler` * * ```ts * import { generate, asapScheduler } from 'rxjs'; * * const result = generate(1, x => x < 5, x => x * 2, x => x + 1, asapScheduler); * * result.subscribe(x => console.log(x)); * * // Logs: * // 2 * // 3 * // 5 * ``` * * @see {@link from} * @see {@link Observable} * * @param {S} initialState Initial state. * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false). * @param {function (state: S): S} iterate Iteration step function. * @param {function (state: S): T} resultSelector Selector function for results produced in the sequence. (deprecated) * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} on which to run the generator loop. If not provided, defaults to emit immediately. * @returns {Observable} The generated sequence. * @deprecated Instead of passing separate arguments, use the options argument. Signatures taking separate arguments will be removed in v8. */ export function generate( initialState: S, condition: ConditionFunc, iterate: IterateFunc, resultSelector: ResultFunc, scheduler?: SchedulerLike ): Observable; /** * Generates an Observable by running a state-driven loop * that emits an element on each iteration. * * Use it instead of nexting values in a for loop. * * ![](generate.png) * * `generate` allows you to create a stream of values generated with a loop very similar to * a traditional for loop. The first argument of `generate` is a beginning value. The second argument * is a function that accepts this value and tests if some condition still holds. If it does, * then the loop continues, if not, it stops. The third value is a function which takes the * previously defined value and modifies it in some way on each iteration. Note how these three parameters * are direct equivalents of three expressions in a traditional for loop: the first expression * initializes some state (for example, a numeric index), the second tests if the loop can perform the next * iteration (for example, if the index is lower than 10) and the third states how the defined value * will be modified on every step (for example, the index will be incremented by one). * * Return value of a `generate` operator is an Observable that on each loop iteration * emits a value. First of all, the condition function is ran. If it returns true, then the Observable * emits the currently stored value (initial value at the first iteration) and finally updates * that value with iterate function. If at some point the condition returns false, then the Observable * completes at that moment. * * Optionally you can pass a fourth parameter to `generate` - a result selector function which allows you * to immediately map the value that would normally be emitted by an Observable. * * If you find three anonymous functions in `generate` call hard to read, you can provide * a single object to the operator instead where the object has the properties: `initialState`, * `condition`, `iterate` and `resultSelector`, which should have respective values that you * would normally pass to `generate`. `resultSelector` is still optional, but that form * of calling `generate` allows you to omit `condition` as well. If you omit it, that means * condition always holds, or in other words the resulting Observable will never complete. * * Both forms of `generate` can optionally accept a scheduler. In case of a multi-parameter call, * scheduler simply comes as a last argument (no matter if there is a `resultSelector` * function or not). In case of a single-parameter call, you can provide it as a * `scheduler` property on the object passed to the operator. In both cases, a scheduler decides when * the next iteration of the loop will happen and therefore when the next value will be emitted * by the Observable. For example, to ensure that each value is pushed to the Observer * on a separate task in the event loop, you could use the `async` scheduler. Note that * by default (when no scheduler is passed) values are simply emitted synchronously. * * * ## Examples * * Use with condition and iterate functions * * ```ts * import { generate } from 'rxjs'; * * const result = generate(0, x => x < 3, x => x + 1); * * result.subscribe({ * next: value => console.log(value), * complete: () => console.log('Complete!') * }); * * // Logs: * // 0 * // 1 * // 2 * // 'Complete!' * ``` * * Use with condition, iterate and resultSelector functions * * ```ts * import { generate } from 'rxjs'; * * const result = generate(0, x => x < 3, x => x + 1, x => x * 1000); * * result.subscribe({ * next: value => console.log(value), * complete: () => console.log('Complete!') * }); * * // Logs: * // 0 * // 1000 * // 2000 * // 'Complete!' * ``` * * Use with options object * * ```ts * import { generate } from 'rxjs'; * * const result = generate({ * initialState: 0, * condition(value) { return value < 3; }, * iterate(value) { return value + 1; }, * resultSelector(value) { return value * 1000; } * }); * * result.subscribe({ * next: value => console.log(value), * complete: () => console.log('Complete!') * }); * * // Logs: * // 0 * // 1000 * // 2000 * // 'Complete!' * ``` * * Use options object without condition function * * ```ts * import { generate } from 'rxjs'; * * const result = generate({ * initialState: 0, * iterate(value) { return value + 1; }, * resultSelector(value) { return value * 1000; } * }); * * result.subscribe({ * next: value => console.log(value), * complete: () => console.log('Complete!') // This will never run * }); * * // Logs: * // 0 * // 1000 * // 2000 * // 3000 * // ...and never stops. * ``` * * @see {@link from} * * @param {S} initialState Initial state. * @param {function (state: S): boolean} condition Condition to terminate generation (upon returning false). * @param {function (state: S): S} iterate Iteration step function. * @param {function (state: S): T} [resultSelector] Selector function for results produced in the sequence. * @param {Scheduler} [scheduler] A {@link Scheduler} on which to run the generator loop. If not provided, defaults to emitting immediately. * @return {Observable} The generated sequence. * @deprecated Instead of passing separate arguments, use the options argument. Signatures taking separate arguments will be removed in v8. */ export function generate( initialState: S, condition: ConditionFunc, iterate: IterateFunc, scheduler?: SchedulerLike ): Observable; /** * Generates an observable sequence by running a state-driven loop * producing the sequence's elements, using the specified scheduler * to send out observer messages. * The overload accepts options object that might contain initial state, iterate, * condition and scheduler. * * ![](generate.png) * * ## Examples * * Use options object with condition function * * ```ts * import { generate } from 'rxjs'; * * const result = generate({ * initialState: 0, * condition: x => x < 3, * iterate: x => x + 1 * }); * * result.subscribe({ * next: value => console.log(value), * complete: () => console.log('Complete!') * }); * * // Logs: * // 0 * // 1 * // 2 * // 'Complete!' * ``` * * @see {@link from} * @see {@link Observable} * * @param {GenerateBaseOptions} options Object that must contain initialState, iterate and might contain condition and scheduler. * @returns {Observable} The generated sequence. */ export function generate(options: GenerateBaseOptions): Observable; /** * Generates an observable sequence by running a state-driven loop * producing the sequence's elements, using the specified scheduler * to send out observer messages. * The overload accepts options object that might contain initial state, iterate, * condition, result selector and scheduler. * * ![](generate.png) * * ## Examples * * Use options object with condition and iterate function * * ```ts * import { generate } from 'rxjs'; * * const result = generate({ * initialState: 0, * condition: x => x < 3, * iterate: x => x + 1, * resultSelector: x => x * }); * * result.subscribe({ * next: value => console.log(value), * complete: () => console.log('Complete!') * }); * * // Logs: * // 0 * // 1 * // 2 * // 'Complete!' * ``` * * @see {@link from} * @see {@link Observable} * * @param {GenerateOptions} options Object that must contain initialState, iterate, resultSelector and might contain condition and scheduler. * @returns {Observable} The generated sequence. */ export function generate(options: GenerateOptions): Observable; export function generate( initialStateOrOptions: S | GenerateOptions, condition?: ConditionFunc, iterate?: IterateFunc, resultSelectorOrScheduler?: ResultFunc | SchedulerLike, scheduler?: SchedulerLike ): Observable { let resultSelector: ResultFunc; let initialState: S; // TODO: Remove this as we move away from deprecated signatures // and move towards a configuration object argument. if (arguments.length === 1) { // If we only have one argument, we can assume it is a configuration object. // Note that folks not using TypeScript may trip over this. ({ initialState, condition, iterate, resultSelector = identity as ResultFunc, scheduler, } = initialStateOrOptions as GenerateOptions); } else { // Deprecated arguments path. Figure out what the user // passed and set it here. initialState = initialStateOrOptions as S; if (!resultSelectorOrScheduler || isScheduler(resultSelectorOrScheduler)) { resultSelector = identity as ResultFunc; scheduler = resultSelectorOrScheduler as SchedulerLike; } else { resultSelector = resultSelectorOrScheduler as ResultFunc; } } // The actual generator used to "generate" values. function* gen() { for (let state = initialState; !condition || condition(state); state = iterate!(state)) { yield resultSelector(state); } } // We use `defer` because we want to defer the creation of the iterator from the iterable. return defer( (scheduler ? // If a scheduler was provided, use `scheduleIterable` to ensure that iteration/generation // happens on the scheduler. () => scheduleIterable(gen(), scheduler!) : // Otherwise, if there's no scheduler, we can just use the generator function directly in // `defer` and executing it will return the generator (which is iterable). gen) as () => ObservableInput ); } rxjs-7.5.7/src/internal/observable/iif.ts000066400000000000000000000047551431412030200203670ustar00rootroot00000000000000import { Observable } from '../Observable'; import { defer } from './defer'; import { ObservableInput } from '../types'; /** * Checks a boolean at subscription time, and chooses between one of two observable sources * * `iif` expects a function that returns a boolean (the `condition` function), and two sources, * the `trueResult` and the `falseResult`, and returns an Observable. * * At the moment of subscription, the `condition` function is called. If the result is `true`, the * subscription will be to the source passed as the `trueResult`, otherwise, the subscription will be * to the source passed as the `falseResult`. * * If you need to check more than two options to choose between more than one observable, have a look at the {@link defer} creation method. * * ## Examples * * Change at runtime which Observable will be subscribed * * ```ts * import { iif, of } from 'rxjs'; * * let subscribeToFirst; * const firstOrSecond = iif( * () => subscribeToFirst, * of('first'), * of('second') * ); * * subscribeToFirst = true; * firstOrSecond.subscribe(value => console.log(value)); * * // Logs: * // 'first' * * subscribeToFirst = false; * firstOrSecond.subscribe(value => console.log(value)); * * // Logs: * // 'second' * ``` * * Control access to an Observable * * ```ts * import { iif, of, EMPTY } from 'rxjs'; * * let accessGranted; * const observableIfYouHaveAccess = iif( * () => accessGranted, * of('It seems you have an access...'), * EMPTY * ); * * accessGranted = true; * observableIfYouHaveAccess.subscribe({ * next: value => console.log(value), * complete: () => console.log('The end') * }); * * // Logs: * // 'It seems you have an access...' * // 'The end' * * accessGranted = false; * observableIfYouHaveAccess.subscribe({ * next: value => console.log(value), * complete: () => console.log('The end') * }); * * // Logs: * // 'The end' * ``` * * @see {@link defer} * * @param condition Condition which Observable should be chosen. * @param trueResult An Observable that will be subscribed if condition is true. * @param falseResult An Observable that will be subscribed if condition is false. * @return An observable that proxies to `trueResult` or `falseResult`, depending on the result of the `condition` function. */ export function iif(condition: () => boolean, trueResult: ObservableInput, falseResult: ObservableInput): Observable { return defer(() => (condition() ? trueResult : falseResult)); } rxjs-7.5.7/src/internal/observable/innerFrom.ts000066400000000000000000000112541431412030200215470ustar00rootroot00000000000000import { isArrayLike } from '../util/isArrayLike'; import { isPromise } from '../util/isPromise'; import { Observable } from '../Observable'; import { ObservableInput, ObservedValueOf, ReadableStreamLike } from '../types'; import { isInteropObservable } from '../util/isInteropObservable'; import { isAsyncIterable } from '../util/isAsyncIterable'; import { createInvalidObservableTypeError } from '../util/throwUnobservableError'; import { isIterable } from '../util/isIterable'; import { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike'; import { Subscriber } from '../Subscriber'; import { isFunction } from '../util/isFunction'; import { reportUnhandledError } from '../util/reportUnhandledError'; import { observable as Symbol_observable } from '../symbol/observable'; export function innerFrom>(input: O): Observable>; export function innerFrom(input: ObservableInput): Observable { if (input instanceof Observable) { return input; } if (input != null) { if (isInteropObservable(input)) { return fromInteropObservable(input); } if (isArrayLike(input)) { return fromArrayLike(input); } if (isPromise(input)) { return fromPromise(input); } if (isAsyncIterable(input)) { return fromAsyncIterable(input); } if (isIterable(input)) { return fromIterable(input); } if (isReadableStreamLike(input)) { return fromReadableStreamLike(input); } } throw createInvalidObservableTypeError(input); } /** * Creates an RxJS Observable from an object that implements `Symbol.observable`. * @param obj An object that properly implements `Symbol.observable`. */ export function fromInteropObservable(obj: any) { return new Observable((subscriber: Subscriber) => { const obs = obj[Symbol_observable](); if (isFunction(obs.subscribe)) { return obs.subscribe(subscriber); } // Should be caught by observable subscribe function error handling. throw new TypeError('Provided object does not correctly implement Symbol.observable'); }); } /** * Synchronously emits the values of an array like and completes. * This is exported because there are creation functions and operators that need to * make direct use of the same logic, and there's no reason to make them run through * `from` conditionals because we *know* they're dealing with an array. * @param array The array to emit values from */ export function fromArrayLike(array: ArrayLike) { return new Observable((subscriber: Subscriber) => { // Loop over the array and emit each value. Note two things here: // 1. We're making sure that the subscriber is not closed on each loop. // This is so we don't continue looping over a very large array after // something like a `take`, `takeWhile`, or other synchronous unsubscription // has already unsubscribed. // 2. In this form, reentrant code can alter that array we're looping over. // This is a known issue, but considered an edge case. The alternative would // be to copy the array before executing the loop, but this has // performance implications. for (let i = 0; i < array.length && !subscriber.closed; i++) { subscriber.next(array[i]); } subscriber.complete(); }); } export function fromPromise(promise: PromiseLike) { return new Observable((subscriber: Subscriber) => { promise .then( (value) => { if (!subscriber.closed) { subscriber.next(value); subscriber.complete(); } }, (err: any) => subscriber.error(err) ) .then(null, reportUnhandledError); }); } export function fromIterable(iterable: Iterable) { return new Observable((subscriber: Subscriber) => { for (const value of iterable) { subscriber.next(value); if (subscriber.closed) { return; } } subscriber.complete(); }); } export function fromAsyncIterable(asyncIterable: AsyncIterable) { return new Observable((subscriber: Subscriber) => { process(asyncIterable, subscriber).catch((err) => subscriber.error(err)); }); } export function fromReadableStreamLike(readableStream: ReadableStreamLike) { return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream)); } async function process(asyncIterable: AsyncIterable, subscriber: Subscriber) { for await (const value of asyncIterable) { subscriber.next(value); // A side-effect may have closed our subscriber, // check before the next iteration. if (subscriber.closed) { return; } } subscriber.complete(); } rxjs-7.5.7/src/internal/observable/interval.ts000066400000000000000000000035331431412030200214350ustar00rootroot00000000000000import { Observable } from '../Observable'; import { asyncScheduler } from '../scheduler/async'; import { SchedulerLike } from '../types'; import { timer } from './timer'; /** * Creates an Observable that emits sequential numbers every specified * interval of time, on a specified {@link SchedulerLike}. * * Emits incremental numbers periodically in time. * * ![](interval.png) * * `interval` returns an Observable that emits an infinite sequence of * ascending integers, with a constant interval of time of your choosing * between those emissions. The first emission is not sent immediately, but * only after the first period has passed. By default, this operator uses the * `async` {@link SchedulerLike} to provide a notion of time, but you may pass any * {@link SchedulerLike} to it. * * ## Example * * Emits ascending numbers, one every second (1000ms) up to the number 3 * * ```ts * import { interval, take } from 'rxjs'; * * const numbers = interval(1000); * * const takeFourNumbers = numbers.pipe(take(4)); * * takeFourNumbers.subscribe(x => console.log('Next: ', x)); * * // Logs: * // Next: 0 * // Next: 1 * // Next: 2 * // Next: 3 * ``` * * @see {@link timer} * @see {@link delay} * * @param {number} [period=0] The interval size in milliseconds (by default) * or the time unit determined by the scheduler's clock. * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for scheduling * the emission of values, and providing a notion of "time". * @return {Observable} An Observable that emits a sequential number each time * interval. */ export function interval(period = 0, scheduler: SchedulerLike = asyncScheduler): Observable { if (period < 0) { // We cannot schedule an interval in the past. period = 0; } return timer(period, period, scheduler); } rxjs-7.5.7/src/internal/observable/merge.ts000066400000000000000000000105111431412030200207020ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ObservableInput, ObservableInputTuple, SchedulerLike } from '../types'; import { mergeAll } from '../operators/mergeAll'; import { innerFrom } from './innerFrom'; import { EMPTY } from './empty'; import { popNumber, popScheduler } from '../util/args'; import { from } from './from'; export function merge(...sources: [...ObservableInputTuple]): Observable; export function merge(...sourcesAndConcurrency: [...ObservableInputTuple, number?]): Observable; /** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `mergeAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */ export function merge( ...sourcesAndScheduler: [...ObservableInputTuple, SchedulerLike?] ): Observable; /** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `mergeAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */ export function merge( ...sourcesAndConcurrencyAndScheduler: [...ObservableInputTuple, number?, SchedulerLike?] ): Observable; /** * Creates an output Observable which concurrently emits all values from every * given input Observable. * * Flattens multiple Observables together by blending * their values into one Observable. * * ![](merge.png) * * `merge` subscribes to each given input Observable (as arguments), and simply * forwards (without doing any transformation) all the values from all the input * Observables to the output Observable. The output Observable only completes * once all input Observables have completed. Any error delivered by an input * Observable will be immediately emitted on the output Observable. * * ## Examples * * Merge together two Observables: 1s interval and clicks * * ```ts * import { merge, fromEvent, interval } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const timer = interval(1000); * const clicksOrTimer = merge(clicks, timer); * clicksOrTimer.subscribe(x => console.log(x)); * * // Results in the following: * // timer will emit ascending values, one every second(1000ms) to console * // clicks logs MouseEvents to console every time the "document" is clicked * // Since the two streams are merged you see these happening * // as they occur. * ``` * * Merge together 3 Observables, but run only 2 concurrently * * ```ts * import { interval, take, merge } from 'rxjs'; * * const timer1 = interval(1000).pipe(take(10)); * const timer2 = interval(2000).pipe(take(6)); * const timer3 = interval(500).pipe(take(10)); * * const concurrent = 2; // the argument * const merged = merge(timer1, timer2, timer3, concurrent); * merged.subscribe(x => console.log(x)); * * // Results in the following: * // - First timer1 and timer2 will run concurrently * // - timer1 will emit a value every 1000ms for 10 iterations * // - timer2 will emit a value every 2000ms for 6 iterations * // - after timer1 hits its max iteration, timer2 will * // continue, and timer3 will start to run concurrently with timer2 * // - when timer2 hits its max iteration it terminates, and * // timer3 will continue to emit a value every 500ms until it is complete * ``` * * @see {@link mergeAll} * @see {@link mergeMap} * @see {@link mergeMapTo} * @see {@link mergeScan} * * @param {...ObservableInput} observables Input Observables to merge together. * @param {number} [concurrent=Infinity] Maximum number of input * Observables being subscribed to concurrently. * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for managing * concurrency of input Observables. * @return {Observable} an Observable that emits items that are the result of * every input Observable. */ export function merge(...args: (ObservableInput | number | SchedulerLike)[]): Observable { const scheduler = popScheduler(args); const concurrent = popNumber(args, Infinity); const sources = args as ObservableInput[]; return !sources.length ? // No source provided EMPTY : sources.length === 1 ? // One source? Just return it. innerFrom(sources[0]) : // Merge all sources mergeAll(concurrent)(from(sources, scheduler)); } rxjs-7.5.7/src/internal/observable/never.ts000066400000000000000000000022471431412030200207310ustar00rootroot00000000000000import { Observable } from '../Observable'; import { noop } from '../util/noop'; /** * An Observable that emits no items to the Observer and never completes. * * ![](never.png) * * A simple Observable that emits neither values nor errors nor the completion * notification. It can be used for testing purposes or for composing with other * Observables. Please note that by never emitting a complete notification, this * Observable keeps the subscription from being disposed automatically. * Subscriptions need to be manually disposed. * * ## Example * * Emit the number 7, then never emit anything else (not even complete) * * ```ts * import { NEVER, startWith } from 'rxjs'; * * const info = () => console.log('Will not be called'); * * const result = NEVER.pipe(startWith(7)); * result.subscribe({ * next: x => console.log(x), * error: info, * complete: info * }); * ``` * * @see {@link Observable} * @see {@link EMPTY} * @see {@link of} * @see {@link throwError} */ export const NEVER = new Observable(noop); /** * @deprecated Replaced with the {@link NEVER} constant. Will be removed in v8. */ export function never() { return NEVER; } rxjs-7.5.7/src/internal/observable/of.ts000066400000000000000000000053661431412030200202230ustar00rootroot00000000000000import { SchedulerLike, ValueFromArray } from '../types'; import { Observable } from '../Observable'; import { popScheduler } from '../util/args'; import { from } from './from'; // Devs are more likely to pass null or undefined than they are a scheduler // without accompanying values. To make things easier for (naughty) devs who // use the `strictNullChecks: false` TypeScript compiler option, these // overloads with explicit null and undefined values are included. export function of(value: null): Observable; export function of(value: undefined): Observable; /** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */ export function of(scheduler: SchedulerLike): Observable; /** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */ export function of(...valuesAndScheduler: [...A, SchedulerLike]): Observable>; export function of(): Observable; /** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */ export function of(): Observable; export function of(value: T): Observable; export function of(...values: A): Observable>; /** * Converts the arguments to an observable sequence. * * Each argument becomes a `next` notification. * * ![](of.png) * * Unlike {@link from}, it does not do any flattening and emits each argument in whole * as a separate `next` notification. * * ## Examples * * Emit the values `10, 20, 30` * * ```ts * import { of } from 'rxjs'; * * of(10, 20, 30) * .subscribe({ * next: value => console.log('next:', value), * error: err => console.log('error:', err), * complete: () => console.log('the end'), * }); * * // Outputs * // next: 10 * // next: 20 * // next: 30 * // the end * ``` * * Emit the array `[1, 2, 3]` * * ```ts * import { of } from 'rxjs'; * * of([1, 2, 3]) * .subscribe({ * next: value => console.log('next:', value), * error: err => console.log('error:', err), * complete: () => console.log('the end'), * }); * * // Outputs * // next: [1, 2, 3] * // the end * ``` * * @see {@link from} * @see {@link range} * * @param {...T} values A comma separated list of arguments you want to be emitted * @return {Observable} An Observable that emits the arguments * described above and then completes. */ export function of(...args: Array): Observable { const scheduler = popScheduler(args); return from(args as T[], scheduler); } rxjs-7.5.7/src/internal/observable/onErrorResumeNext.ts000066400000000000000000000054121431412030200232550ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ObservableInputTuple } from '../types'; import { EMPTY } from './empty'; import { onErrorResumeNext as onErrorResumeNextWith } from '../operators/onErrorResumeNext'; import { argsOrArgArray } from '../util/argsOrArgArray'; /* tslint:disable:max-line-length */ export function onErrorResumeNext(sources: [...ObservableInputTuple]): Observable; export function onErrorResumeNext(...sources: [...ObservableInputTuple]): Observable; /* tslint:enable:max-line-length */ /** * When any of the provided Observable emits a complete or an error notification, it immediately subscribes to the next one * that was passed. * * Execute series of Observables no matter what, even if it means swallowing errors. * * ![](onErrorResumeNext.png) * * `onErrorResumeNext` will subscribe to each observable source it is provided, in order. * If the source it's subscribed to emits an error or completes, it will move to the next source * without error. * * If `onErrorResumeNext` is provided no arguments, or a single, empty array, it will return {@link EMPTY}. * * `onErrorResumeNext` is basically {@link concat}, only it will continue, even if one of its * sources emits an error. * * Note that there is no way to handle any errors thrown by sources via the result of * `onErrorResumeNext`. If you want to handle errors thrown in any given source, you can * always use the {@link catchError} operator on them before passing them into `onErrorResumeNext`. * * ## Example * * Subscribe to the next Observable after map fails * * ```ts * import { onErrorResumeNext, of, map } from 'rxjs'; * * onErrorResumeNext( * of(1, 2, 3, 0).pipe( * map(x => { * if (x === 0) { * throw Error(); * } * return 10 / x; * }) * ), * of(1, 2, 3) * ) * .subscribe({ * next: value => console.log(value), * error: err => console.log(err), // Will never be called. * complete: () => console.log('done') * }); * * // Logs: * // 10 * // 5 * // 3.3333333333333335 * // 1 * // 2 * // 3 * // 'done' * ``` * * @see {@link concat} * @see {@link catchError} * * @param {...ObservableInput} sources Observables (or anything that *is* observable) passed either directly or as an array. * @return {Observable} An Observable that concatenates all sources, one after the other, * ignoring all errors, such that any error causes it to move on to the next source. */ export function onErrorResumeNext( ...sources: [[...ObservableInputTuple]] | [...ObservableInputTuple] ): Observable { return onErrorResumeNextWith(argsOrArgArray(sources))(EMPTY); } rxjs-7.5.7/src/internal/observable/pairs.ts000066400000000000000000000054101431412030200207230ustar00rootroot00000000000000import { Observable } from '../Observable'; import { SchedulerLike } from '../types'; import { from } from './from'; /** * @deprecated Use `from(Object.entries(obj))` instead. Will be removed in v8. */ export function pairs(arr: readonly T[], scheduler?: SchedulerLike): Observable<[string, T]>; /** * @deprecated Use `from(Object.entries(obj))` instead. Will be removed in v8. */ export function pairs>(obj: O, scheduler?: SchedulerLike): Observable<[keyof O, O[keyof O]]>; /** * @deprecated Use `from(Object.entries(obj))` instead. Will be removed in v8. */ export function pairs(iterable: Iterable, scheduler?: SchedulerLike): Observable<[string, T]>; /** * @deprecated Use `from(Object.entries(obj))` instead. Will be removed in v8. */ export function pairs( n: number | bigint | boolean | ((...args: any[]) => any) | symbol, scheduler?: SchedulerLike ): Observable<[never, never]>; /** * Convert an object into an Observable of `[key, value]` pairs. * * Turn entries of an object into a stream. * * ![](pairs.png) * * `pairs` takes an arbitrary object and returns an Observable that emits arrays. Each * emitted array has exactly two elements - the first is a key from the object * and the second is a value corresponding to that key. Keys are extracted from * an object via `Object.keys` function, which means that they will be only * enumerable keys that are present on an object directly - not ones inherited * via prototype chain. * * By default, these arrays are emitted synchronously. To change that you can * pass a {@link SchedulerLike} as a second argument to `pairs`. * * ## Example * * Converts an object to an Observable * * ```ts * import { pairs } from 'rxjs'; * * const obj = { * foo: 42, * bar: 56, * baz: 78 * }; * * pairs(obj).subscribe({ * next: value => console.log(value), * complete: () => console.log('Complete!') * }); * * // Logs: * // ['foo', 42] * // ['bar', 56] * // ['baz', 78] * // 'Complete!' * ``` * * ### Object.entries required * * In IE, you will need to polyfill `Object.entries` in order to use this. * [MDN has a polyfill here](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries) * * @param {Object} obj The object to inspect and turn into an * Observable sequence. * @param {Scheduler} [scheduler] An optional IScheduler to schedule * when resulting Observable will emit values. * @returns {(Observable>)} An observable sequence of * [key, value] pairs from the object. * @deprecated Use `from(Object.entries(obj))` instead. Will be removed in v8. */ export function pairs(obj: any, scheduler?: SchedulerLike) { return from(Object.entries(obj), scheduler as any); } rxjs-7.5.7/src/internal/observable/partition.ts000066400000000000000000000067151431412030200216270ustar00rootroot00000000000000import { not } from '../util/not'; import { filter } from '../operators/filter'; import { ObservableInput } from '../types'; import { Observable } from '../Observable'; import { innerFrom } from './innerFrom'; /** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */ export function partition( source: ObservableInput, predicate: (this: A, value: T, index: number) => value is U, thisArg: A ): [Observable, Observable>]; export function partition( source: ObservableInput, predicate: (value: T, index: number) => value is U ): [Observable, Observable>]; /** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */ export function partition( source: ObservableInput, predicate: (this: A, value: T, index: number) => boolean, thisArg: A ): [Observable, Observable]; export function partition(source: ObservableInput, predicate: (value: T, index: number) => boolean): [Observable, Observable]; /** * Splits the source Observable into two, one with values that satisfy a * predicate, and another with values that don't satisfy the predicate. * * It's like {@link filter}, but returns two Observables: * one like the output of {@link filter}, and the other with values that did not * pass the condition. * * ![](partition.png) * * `partition` outputs an array with two Observables that partition the values * from the source Observable through the given `predicate` function. The first * Observable in that array emits source values for which the predicate argument * returns true. The second Observable emits source values for which the * predicate returns false. The first behaves like {@link filter} and the second * behaves like {@link filter} with the predicate negated. * * ## Example * * Partition a set of numbers into odds and evens observables * * ```ts * import { of, partition } from 'rxjs'; * * const observableValues = of(1, 2, 3, 4, 5, 6); * const [evens$, odds$] = partition(observableValues, value => value % 2 === 0); * * odds$.subscribe(x => console.log('odds', x)); * evens$.subscribe(x => console.log('evens', x)); * * // Logs: * // odds 1 * // odds 3 * // odds 5 * // evens 2 * // evens 4 * // evens 6 * ``` * * @see {@link filter} * * @param {function(value: T, index: number): boolean} predicate A function that * evaluates each value emitted by the source Observable. If it returns `true`, * the value is emitted on the first Observable in the returned array, if * `false` the value is emitted on the second Observable in the array. The * `index` parameter is the number `i` for the i-th source emission that has * happened since the subscription, starting from the number `0`. * @param {any} [thisArg] An optional argument to determine the value of `this` * in the `predicate` function. * @return {[Observable, Observable]} An array with two Observables: one * with values that passed the predicate, and another with values that did not * pass the predicate. */ export function partition( source: ObservableInput, predicate: (this: any, value: T, index: number) => boolean, thisArg?: any ): [Observable, Observable] { return [filter(predicate, thisArg)(innerFrom(source)), filter(not(predicate, thisArg))(innerFrom(source))] as [ Observable, Observable ]; } rxjs-7.5.7/src/internal/observable/race.ts000066400000000000000000000073141431412030200205240ustar00rootroot00000000000000import { Observable } from '../Observable'; import { innerFrom } from './innerFrom'; import { Subscription } from '../Subscription'; import { ObservableInput, ObservableInputTuple } from '../types'; import { argsOrArgArray } from '../util/argsOrArgArray'; import { createOperatorSubscriber } from '../operators/OperatorSubscriber'; import { Subscriber } from '../Subscriber'; export function race(inputs: [...ObservableInputTuple]): Observable; export function race(...inputs: [...ObservableInputTuple]): Observable; /** * Returns an observable that mirrors the first source observable to emit an item. * * ![](race.png) * * `race` returns an observable, that when subscribed to, subscribes to all source observables immediately. * As soon as one of the source observables emits a value, the result unsubscribes from the other sources. * The resulting observable will forward all notifications, including error and completion, from the "winning" * source observable. * * If one of the used source observable throws an errors before a first notification * the race operator will also throw an error, no matter if another source observable * could potentially win the race. * * `race` can be useful for selecting the response from the fastest network connection for * HTTP or WebSockets. `race` can also be useful for switching observable context based on user * input. * * ## Example * * Subscribes to the observable that was the first to start emitting. * * ```ts * import { interval, map, race } from 'rxjs'; * * const obs1 = interval(7000).pipe(map(() => 'slow one')); * const obs2 = interval(3000).pipe(map(() => 'fast one')); * const obs3 = interval(5000).pipe(map(() => 'medium one')); * * race(obs1, obs2, obs3) * .subscribe(winner => console.log(winner)); * * // Outputs * // a series of 'fast one' * ``` * * @param {...Observables} ...observables sources used to race for which Observable emits first. * @return {Observable} an Observable that mirrors the output of the first Observable to emit an item. */ export function race(...sources: (ObservableInput | ObservableInput[])[]): Observable { sources = argsOrArgArray(sources); // If only one source was passed, just return it. Otherwise return the race. return sources.length === 1 ? innerFrom(sources[0] as ObservableInput) : new Observable(raceInit(sources as ObservableInput[])); } /** * An observable initializer function for both the static version and the * operator version of race. * @param sources The sources to race */ export function raceInit(sources: ObservableInput[]) { return (subscriber: Subscriber) => { let subscriptions: Subscription[] = []; // Subscribe to all of the sources. Note that we are checking `subscriptions` here // Is is an array of all actively "racing" subscriptions, and it is `null` after the // race has been won. So, if we have racer that synchronously "wins", this loop will // stop before it subscribes to any more. for (let i = 0; subscriptions && !subscriber.closed && i < sources.length; i++) { subscriptions.push( innerFrom(sources[i] as ObservableInput).subscribe( createOperatorSubscriber(subscriber, (value) => { if (subscriptions) { // We're still racing, but we won! So unsubscribe // all other subscriptions that we have, except this one. for (let s = 0; s < subscriptions.length; s++) { s !== i && subscriptions[s].unsubscribe(); } subscriptions = null!; } subscriber.next(value); }) ) ); } }; } rxjs-7.5.7/src/internal/observable/range.ts000066400000000000000000000052721431412030200207070ustar00rootroot00000000000000import { SchedulerLike } from '../types'; import { Observable } from '../Observable'; import { EMPTY } from './empty'; export function range(start: number, count?: number): Observable; /** * @deprecated The `scheduler` parameter will be removed in v8. Use `range(start, count).pipe(observeOn(scheduler))` instead. Details: Details: https://rxjs.dev/deprecations/scheduler-argument */ export function range(start: number, count: number | undefined, scheduler: SchedulerLike): Observable; /** * Creates an Observable that emits a sequence of numbers within a specified * range. * * Emits a sequence of numbers in a range. * * ![](range.png) * * `range` operator emits a range of sequential integers, in order, where you * select the `start` of the range and its `length`. By default, uses no * {@link SchedulerLike} and just delivers the notifications synchronously, but may use * an optional {@link SchedulerLike} to regulate those deliveries. * * ## Example * * Produce a range of numbers * * ```ts * import { range } from 'rxjs'; * * const numbers = range(1, 3); * * numbers.subscribe({ * next: value => console.log(value), * complete: () => console.log('Complete!') * }); * * // Logs: * // 1 * // 2 * // 3 * // 'Complete!' * ``` * * @see {@link timer} * @see {@link interval} * * @param {number} [start=0] The value of the first integer in the sequence. * @param {number} count The number of sequential integers to generate. * @param {SchedulerLike} [scheduler] A {@link SchedulerLike} to use for scheduling * the emissions of the notifications. * @return {Observable} An Observable of numbers that emits a finite range of * sequential integers. */ export function range(start: number, count?: number, scheduler?: SchedulerLike): Observable { if (count == null) { // If one argument was passed, it's the count, not the start. count = start; start = 0; } if (count <= 0) { // No count? We're going nowhere. Return EMPTY. return EMPTY; } // Where the range should stop. const end = count + start; return new Observable( scheduler ? // The deprecated scheduled path. (subscriber) => { let n = start; return scheduler.schedule(function () { if (n < end) { subscriber.next(n++); this.schedule(); } else { subscriber.complete(); } }); } : // Standard synchronous range. (subscriber) => { let n = start; while (n < end && !subscriber.closed) { subscriber.next(n++); } subscriber.complete(); } ); } rxjs-7.5.7/src/internal/observable/throwError.ts000066400000000000000000000105631431412030200217670ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Subscriber } from '../Subscriber'; import { SchedulerLike } from '../types'; import { isFunction } from '../util/isFunction'; /** * Creates an observable that will create an error instance and push it to the consumer as an error * immediately upon subscription. * * Just errors and does nothing else * * ![](throw.png) * * This creation function is useful for creating an observable that will create an error and error every * time it is subscribed to. Generally, inside of most operators when you might want to return an errored * observable, this is unnecessary. In most cases, such as in the inner return of {@link concatMap}, * {@link mergeMap}, {@link defer}, and many others, you can simply throw the error, and RxJS will pick * that up and notify the consumer of the error. * * ## Example * * Create a simple observable that will create a new error with a timestamp and log it * and the message every time you subscribe to it * * ```ts * import { throwError } from 'rxjs'; * * let errorCount = 0; * * const errorWithTimestamp$ = throwError(() => { * const error: any = new Error(`This is error number ${ ++errorCount }`); * error.timestamp = Date.now(); * return error; * }); * * errorWithTimestamp$.subscribe({ * error: err => console.log(err.timestamp, err.message) * }); * * errorWithTimestamp$.subscribe({ * error: err => console.log(err.timestamp, err.message) * }); * * // Logs the timestamp and a new error message for each subscription * ``` * * ### Unnecessary usage * * Using `throwError` inside of an operator or creation function * with a callback, is usually not necessary * * ```ts * import { of, concatMap, timer, throwError } from 'rxjs'; * * const delays$ = of(1000, 2000, Infinity, 3000); * * delays$.pipe( * concatMap(ms => { * if (ms < 10000) { * return timer(ms); * } else { * // This is probably overkill. * return throwError(() => new Error(`Invalid time ${ ms }`)); * } * }) * ) * .subscribe({ * next: console.log, * error: console.error * }); * ``` * * You can just throw the error instead * * ```ts * import { of, concatMap, timer } from 'rxjs'; * * const delays$ = of(1000, 2000, Infinity, 3000); * * delays$.pipe( * concatMap(ms => { * if (ms < 10000) { * return timer(ms); * } else { * // Cleaner and easier to read for most folks. * throw new Error(`Invalid time ${ ms }`); * } * }) * ) * .subscribe({ * next: console.log, * error: console.error * }); * ``` * * @param errorFactory A factory function that will create the error instance that is pushed. */ export function throwError(errorFactory: () => any): Observable; /** * Returns an observable that will error with the specified error immediately upon subscription. * * @param error The error instance to emit * @deprecated Support for passing an error value will be removed in v8. Instead, pass a factory function to `throwError(() => new Error('test'))`. This is * because it will create the error at the moment it should be created and capture a more appropriate stack trace. If * for some reason you need to create the error ahead of time, you can still do that: `const err = new Error('test'); throwError(() => err);`. */ export function throwError(error: any): Observable; /** * Notifies the consumer of an error using a given scheduler by scheduling it at delay `0` upon subscription. * * @param errorOrErrorFactory An error instance or error factory * @param scheduler A scheduler to use to schedule the error notification * @deprecated The `scheduler` parameter will be removed in v8. * Use `throwError` in combination with {@link observeOn}: `throwError(() => new Error('test')).pipe(observeOn(scheduler));`. * Details: https://rxjs.dev/deprecations/scheduler-argument */ export function throwError(errorOrErrorFactory: any, scheduler: SchedulerLike): Observable; export function throwError(errorOrErrorFactory: any, scheduler?: SchedulerLike): Observable { const errorFactory = isFunction(errorOrErrorFactory) ? errorOrErrorFactory : () => errorOrErrorFactory; const init = (subscriber: Subscriber) => subscriber.error(errorFactory()); return new Observable(scheduler ? (subscriber) => scheduler.schedule(init as any, 0, subscriber) : init); } rxjs-7.5.7/src/internal/observable/timer.ts000066400000000000000000000156231431412030200207340ustar00rootroot00000000000000import { Observable } from '../Observable'; import { SchedulerLike } from '../types'; import { async as asyncScheduler } from '../scheduler/async'; import { isScheduler } from '../util/isScheduler'; import { isValidDate } from '../util/isDate'; /** * Creates an observable that will wait for a specified time period, or exact date, before * emitting the number 0. * * Used to emit a notification after a delay. * * This observable is useful for creating delays in code, or racing against other values * for ad-hoc timeouts. * * The `delay` is specified by default in milliseconds, however providing a custom scheduler could * create a different behavior. * * ## Examples * * Wait 3 seconds and start another observable * * You might want to use `timer` to delay subscription to an * observable by a set amount of time. Here we use a timer with * {@link concatMapTo} or {@link concatMap} in order to wait * a few seconds and start a subscription to a source. * * ```ts * import { of, timer, concatMap } from 'rxjs'; * * // This could be any observable * const source = of(1, 2, 3); * * timer(3000) * .pipe(concatMap(() => source)) * .subscribe(console.log); * ``` * * Take all values until the start of the next minute * * Using a `Date` as the trigger for the first emission, you can * do things like wait until midnight to fire an event, or in this case, * wait until a new minute starts (chosen so the example wouldn't take * too long to run) in order to stop watching a stream. Leveraging * {@link takeUntil}. * * ```ts * import { interval, takeUntil, timer } from 'rxjs'; * * // Build a Date object that marks the * // next minute. * const currentDate = new Date(); * const startOfNextMinute = new Date( * currentDate.getFullYear(), * currentDate.getMonth(), * currentDate.getDate(), * currentDate.getHours(), * currentDate.getMinutes() + 1 * ); * * // This could be any observable stream * const source = interval(1000); * * const result = source.pipe( * takeUntil(timer(startOfNextMinute)) * ); * * result.subscribe(console.log); * ``` * * ### Known Limitations * * - The {@link asyncScheduler} uses `setTimeout` which has limitations for how far in the future it can be scheduled. * * - If a `scheduler` is provided that returns a timestamp other than an epoch from `now()`, and * a `Date` object is passed to the `dueTime` argument, the calculation for when the first emission * should occur will be incorrect. In this case, it would be best to do your own calculations * ahead of time, and pass a `number` in as the `dueTime`. * * @param due If a `number`, the amount of time in milliseconds to wait before emitting. * If a `Date`, the exact time at which to emit. * @param scheduler The scheduler to use to schedule the delay. Defaults to {@link asyncScheduler}. */ export function timer(due: number | Date, scheduler?: SchedulerLike): Observable<0>; /** * Creates an observable that starts an interval after a specified delay, emitting incrementing numbers -- starting at `0` -- * on each interval after words. * * The `delay` and `intervalDuration` are specified by default in milliseconds, however providing a custom scheduler could * create a different behavior. * * ## Example * * ### Start an interval that starts right away * * Since {@link interval} waits for the passed delay before starting, * sometimes that's not ideal. You may want to start an interval immediately. * `timer` works well for this. Here we have both side-by-side so you can * see them in comparison. * * Note that this observable will never complete. * * ```ts * import { timer, interval } from 'rxjs'; * * timer(0, 1000).subscribe(n => console.log('timer', n)); * interval(1000).subscribe(n => console.log('interval', n)); * ``` * * ### Known Limitations * * - The {@link asyncScheduler} uses `setTimeout` which has limitations for how far in the future it can be scheduled. * * - If a `scheduler` is provided that returns a timestamp other than an epoch from `now()`, and * a `Date` object is passed to the `dueTime` argument, the calculation for when the first emission * should occur will be incorrect. In this case, it would be best to do your own calculations * ahead of time, and pass a `number` in as the `startDue`. * @param startDue If a `number`, is the time to wait before starting the interval. * If a `Date`, is the exact time at which to start the interval. * @param intervalDuration The delay between each value emitted in the interval. Passing a * negative number here will result in immediate completion after the first value is emitted, as though * no `intervalDuration` was passed at all. * @param scheduler The scheduler to use to schedule the delay. Defaults to {@link asyncScheduler}. */ export function timer(startDue: number | Date, intervalDuration: number, scheduler?: SchedulerLike): Observable; /** * @deprecated The signature allowing `undefined` to be passed for `intervalDuration` will be removed in v8. Use the `timer(dueTime, scheduler?)` signature instead. */ export function timer(dueTime: number | Date, unused: undefined, scheduler?: SchedulerLike): Observable<0>; export function timer( dueTime: number | Date = 0, intervalOrScheduler?: number | SchedulerLike, scheduler: SchedulerLike = asyncScheduler ): Observable { // Since negative intervalDuration is treated as though no // interval was specified at all, we start with a negative number. let intervalDuration = -1; if (intervalOrScheduler != null) { // If we have a second argument, and it's a scheduler, // override the scheduler we had defaulted. Otherwise, // it must be an interval. if (isScheduler(intervalOrScheduler)) { scheduler = intervalOrScheduler; } else { // Note that this *could* be negative, in which case // it's like not passing an intervalDuration at all. intervalDuration = intervalOrScheduler; } } return new Observable((subscriber) => { // If a valid date is passed, calculate how long to wait before // executing the first value... otherwise, if it's a number just schedule // that many milliseconds (or scheduler-specified unit size) in the future. let due = isValidDate(dueTime) ? +dueTime - scheduler!.now() : dueTime; if (due < 0) { // Ensure we don't schedule in the future. due = 0; } // The incrementing value we emit. let n = 0; // Start the timer. return scheduler.schedule(function () { if (!subscriber.closed) { // Emit the next value and increment. subscriber.next(n++); if (0 <= intervalDuration) { // If we have a interval after the initial timer, // reschedule with the period. this.schedule(undefined, intervalDuration); } else { // We didn't have an interval. So just complete. subscriber.complete(); } } }, due); }); } rxjs-7.5.7/src/internal/observable/using.ts000066400000000000000000000056271431412030200207440ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Unsubscribable, ObservableInput, ObservedValueOf } from '../types'; import { innerFrom } from './innerFrom'; import { EMPTY } from './empty'; /** * Creates an Observable that uses a resource which will be disposed at the same time as the Observable. * * Use it when you catch yourself cleaning up after an Observable. * * `using` is a factory operator, which accepts two functions. First function returns a disposable resource. * It can be an arbitrary object that implements `unsubscribe` method. Second function will be injected with * that object and should return an Observable. That Observable can use resource object during its execution. * Both functions passed to `using` will be called every time someone subscribes - neither an Observable nor * resource object will be shared in any way between subscriptions. * * When Observable returned by `using` is subscribed, Observable returned from the second function will be subscribed * as well. All its notifications (nexted values, completion and error events) will be emitted unchanged by the output * Observable. If however someone unsubscribes from the Observable or source Observable completes or errors by itself, * the `unsubscribe` method on resource object will be called. This can be used to do any necessary clean up, which * otherwise would have to be handled by hand. Note that complete or error notifications are not emitted when someone * cancels subscription to an Observable via `unsubscribe`, so `using` can be used as a hook, allowing you to make * sure that all resources which need to exist during an Observable execution will be disposed at appropriate time. * * @see {@link defer} * * @param {function(): ISubscription} resourceFactory A function which creates any resource object * that implements `unsubscribe` method. * @param {function(resource: ISubscription): Observable} observableFactory A function which * creates an Observable, that can use injected resource object. * @return {Observable} An Observable that behaves the same as Observable returned by `observableFactory`, but * which - when completed, errored or unsubscribed - will also call `unsubscribe` on created resource object. */ export function using>( resourceFactory: () => Unsubscribable | void, observableFactory: (resource: Unsubscribable | void) => T | void ): Observable> { return new Observable>((subscriber) => { const resource = resourceFactory(); const result = observableFactory(resource); const source = result ? innerFrom(result) : EMPTY; source.subscribe(subscriber); return () => { // NOTE: Optional chaining did not work here. // Related TS Issue: https://github.com/microsoft/TypeScript/issues/40818 if (resource) { resource.unsubscribe(); } }; }); } rxjs-7.5.7/src/internal/observable/zip.ts000066400000000000000000000112641431412030200204130ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ObservableInputTuple } from '../types'; import { innerFrom } from './innerFrom'; import { argsOrArgArray } from '../util/argsOrArgArray'; import { EMPTY } from './empty'; import { createOperatorSubscriber } from '../operators/OperatorSubscriber'; import { popResultSelector } from '../util/args'; export function zip(sources: [...ObservableInputTuple]): Observable; export function zip( sources: [...ObservableInputTuple], resultSelector: (...values: A) => R ): Observable; export function zip(...sources: [...ObservableInputTuple]): Observable; export function zip( ...sourcesAndResultSelector: [...ObservableInputTuple, (...values: A) => R] ): Observable; /** * Combines multiple Observables to create an Observable whose values are calculated from the values, in order, of each * of its input Observables. * * If the last parameter is a function, this function is used to compute the created value from the input values. * Otherwise, an array of the input values is returned. * * ## Example * * Combine age and name from different sources * * ```ts * import { of, zip, map } from 'rxjs'; * * const age$ = of(27, 25, 29); * const name$ = of('Foo', 'Bar', 'Beer'); * const isDev$ = of(true, true, false); * * zip(age$, name$, isDev$).pipe( * map(([age, name, isDev]) => ({ age, name, isDev })) * ) * .subscribe(x => console.log(x)); * * // Outputs * // { age: 27, name: 'Foo', isDev: true } * // { age: 25, name: 'Bar', isDev: true } * // { age: 29, name: 'Beer', isDev: false } * ``` * * @param sources * @return {Observable} */ export function zip(...args: unknown[]): Observable { const resultSelector = popResultSelector(args); const sources = argsOrArgArray(args) as Observable[]; return sources.length ? new Observable((subscriber) => { // A collection of buffers of values from each source. // Keyed by the same index with which the sources were passed in. let buffers: unknown[][] = sources.map(() => []); // An array of flags of whether or not the sources have completed. // This is used to check to see if we should complete the result. // Keyed by the same index with which the sources were passed in. let completed = sources.map(() => false); // When everything is done, release the arrays above. subscriber.add(() => { buffers = completed = null!; }); // Loop over our sources and subscribe to each one. The index `i` is // especially important here, because we use it in closures below to // access the related buffers and completion properties for (let sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) { innerFrom(sources[sourceIndex]).subscribe( createOperatorSubscriber( subscriber, (value) => { buffers[sourceIndex].push(value); // if every buffer has at least one value in it, then we // can shift out the oldest value from each buffer and emit // them as an array. if (buffers.every((buffer) => buffer.length)) { const result: any = buffers.map((buffer) => buffer.shift()!); // Emit the array. If theres' a result selector, use that. subscriber.next(resultSelector ? resultSelector(...result) : result); // If any one of the sources is both complete and has an empty buffer // then we complete the result. This is because we cannot possibly have // any more values to zip together. if (buffers.some((buffer, i) => !buffer.length && completed[i])) { subscriber.complete(); } } }, () => { // This source completed. Mark it as complete so we can check it later // if we have to. completed[sourceIndex] = true; // But, if this complete source has nothing in its buffer, then we // can complete the result, because we can't possibly have any more // values from this to zip together with the other values. !buffers[sourceIndex].length && subscriber.complete(); } ) ); } // When everything is done, release the arrays above. return () => { buffers = completed = null!; }; }) : EMPTY; } rxjs-7.5.7/src/internal/operators/000077500000000000000000000000001431412030200171275ustar00rootroot00000000000000rxjs-7.5.7/src/internal/operators/OperatorSubscriber.ts000066400000000000000000000116461431412030200233260ustar00rootroot00000000000000import { Subscriber } from '../Subscriber'; /** * Creates an instance of an `OperatorSubscriber`. * @param destination The downstream subscriber. * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any * error that occurs in this function is caught and sent to the `error` method of this subscriber. * @param onError Handles errors from the subscription, any errors that occur in this handler are caught * and send to the `destination` error handler. * @param onComplete Handles completion notification from the subscription. Any errors that occur in * this handler are sent to the `destination` error handler. * @param onFinalize Additional teardown logic here. This will only be called on teardown if the * subscriber itself is not already closed. This is called after all other teardown logic is executed. */ export function createOperatorSubscriber( destination: Subscriber, onNext?: (value: T) => void, onComplete?: () => void, onError?: (err: any) => void, onFinalize?: () => void ): Subscriber { return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); } /** * A generic helper for allowing operators to be created with a Subscriber and * use closures to capture necessary state from the operator function itself. */ export class OperatorSubscriber extends Subscriber { /** * Creates an instance of an `OperatorSubscriber`. * @param destination The downstream subscriber. * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any * error that occurs in this function is caught and sent to the `error` method of this subscriber. * @param onError Handles errors from the subscription, any errors that occur in this handler are caught * and send to the `destination` error handler. * @param onComplete Handles completion notification from the subscription. Any errors that occur in * this handler are sent to the `destination` error handler. * @param onFinalize Additional finalization logic here. This will only be called on finalization if the * subscriber itself is not already closed. This is called after all other finalization logic is executed. * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe. * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription * to the resulting observable does not actually disconnect from the source if there are active subscriptions * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!) */ constructor( destination: Subscriber, onNext?: (value: T) => void, onComplete?: () => void, onError?: (err: any) => void, private onFinalize?: () => void, private shouldUnsubscribe?: () => boolean ) { // It's important - for performance reasons - that all of this class's // members are initialized and that they are always initialized in the same // order. This will ensure that all OperatorSubscriber instances have the // same hidden class in V8. This, in turn, will help keep the number of // hidden classes involved in property accesses within the base class as // low as possible. If the number of hidden classes involved exceeds four, // the property accesses will become megamorphic and performance penalties // will be incurred - i.e. inline caches won't be used. // // The reasons for ensuring all instances have the same hidden class are // further discussed in this blog post from Benedikt Meurer: // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/ super(destination); this._next = onNext ? function (this: OperatorSubscriber, value: T) { try { onNext(value); } catch (err) { destination.error(err); } } : super._next; this._error = onError ? function (this: OperatorSubscriber, err: any) { try { onError(err); } catch (err) { // Send any errors that occur down stream. destination.error(err); } finally { // Ensure finalization. this.unsubscribe(); } } : super._error; this._complete = onComplete ? function (this: OperatorSubscriber) { try { onComplete(); } catch (err) { // Send any errors that occur down stream. destination.error(err); } finally { // Ensure finalization. this.unsubscribe(); } } : super._complete; } unsubscribe() { if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { const { closed } = this; super.unsubscribe(); // Execute additional teardown if we have any and we didn't already do so. !closed && this.onFinalize?.(); } } } rxjs-7.5.7/src/internal/operators/audit.ts000066400000000000000000000064411431412030200206120ustar00rootroot00000000000000import { Subscriber } from '../Subscriber'; import { MonoTypeOperatorFunction, ObservableInput } from '../types'; import { operate } from '../util/lift'; import { innerFrom } from '../observable/innerFrom'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Ignores source values for a duration determined by another Observable, then * emits the most recent value from the source Observable, then repeats this * process. * * It's like {@link auditTime}, but the silencing * duration is determined by a second Observable. * * ![](audit.svg) * * `audit` is similar to `throttle`, but emits the last value from the silenced * time window, instead of the first value. `audit` emits the most recent value * from the source Observable on the output Observable as soon as its internal * timer becomes disabled, and ignores source values while the timer is enabled. * Initially, the timer is disabled. As soon as the first source value arrives, * the timer is enabled by calling the `durationSelector` function with the * source value, which returns the "duration" Observable. When the duration * Observable emits a value, the timer is disabled, then the most * recent source value is emitted on the output Observable, and this process * repeats for the next source value. * * ## Example * * Emit clicks at a rate of at most one click per second * * ```ts * import { fromEvent, audit, interval } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(audit(ev => interval(1000))); * result.subscribe(x => console.log(x)); * ``` * * @see {@link auditTime} * @see {@link debounce} * @see {@link delayWhen} * @see {@link sample} * @see {@link throttle} * * @param durationSelector A function * that receives a value from the source Observable, for computing the silencing * duration, returned as an Observable or a Promise. * @return A function that returns an Observable that performs rate-limiting of * emissions from the source Observable. */ export function audit(durationSelector: (value: T) => ObservableInput): MonoTypeOperatorFunction { return operate((source, subscriber) => { let hasValue = false; let lastValue: T | null = null; let durationSubscriber: Subscriber | null = null; let isComplete = false; const endDuration = () => { durationSubscriber?.unsubscribe(); durationSubscriber = null; if (hasValue) { hasValue = false; const value = lastValue!; lastValue = null; subscriber.next(value); } isComplete && subscriber.complete(); }; const cleanupDuration = () => { durationSubscriber = null; isComplete && subscriber.complete(); }; source.subscribe( createOperatorSubscriber( subscriber, (value) => { hasValue = true; lastValue = value; if (!durationSubscriber) { innerFrom(durationSelector(value)).subscribe( (durationSubscriber = createOperatorSubscriber(subscriber, endDuration, cleanupDuration)) ); } }, () => { isComplete = true; (!hasValue || !durationSubscriber || durationSubscriber.closed) && subscriber.complete(); } ) ); }); } rxjs-7.5.7/src/internal/operators/auditTime.ts000066400000000000000000000045211431412030200214260ustar00rootroot00000000000000import { asyncScheduler } from '../scheduler/async'; import { audit } from './audit'; import { timer } from '../observable/timer'; import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; /** * Ignores source values for `duration` milliseconds, then emits the most recent * value from the source Observable, then repeats this process. * * When it sees a source value, it ignores that plus * the next ones for `duration` milliseconds, and then it emits the most recent * value from the source. * * ![](auditTime.png) * * `auditTime` is similar to `throttleTime`, but emits the last value from the * silenced time window, instead of the first value. `auditTime` emits the most * recent value from the source Observable on the output Observable as soon as * its internal timer becomes disabled, and ignores source values while the * timer is enabled. Initially, the timer is disabled. As soon as the first * source value arrives, the timer is enabled. After `duration` milliseconds (or * the time unit determined internally by the optional `scheduler`) has passed, * the timer is disabled, then the most recent source value is emitted on the * output Observable, and this process repeats for the next source value. * Optionally takes a {@link SchedulerLike} for managing timers. * * ## Example * * Emit clicks at a rate of at most one click per second * * ```ts * import { fromEvent, auditTime } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(auditTime(1000)); * result.subscribe(x => console.log(x)); * ``` * * @see {@link audit} * @see {@link debounceTime} * @see {@link delay} * @see {@link sampleTime} * @see {@link throttleTime} * * @param {number} duration Time to wait before emitting the most recent source * value, measured in milliseconds or the time unit determined internally * by the optional `scheduler`. * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for * managing the timers that handle the rate-limiting behavior. * @return A function that returns an Observable that performs rate-limiting of * emissions from the source Observable. */ export function auditTime(duration: number, scheduler: SchedulerLike = asyncScheduler): MonoTypeOperatorFunction { return audit(() => timer(duration, scheduler)); } rxjs-7.5.7/src/internal/operators/buffer.ts000066400000000000000000000044761431412030200207630ustar00rootroot00000000000000import { Observable } from '../Observable'; import { OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { noop } from '../util/noop'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Buffers the source Observable values until `closingNotifier` emits. * * Collects values from the past as an array, and emits * that array only when another Observable emits. * * ![](buffer.png) * * Buffers the incoming Observable values until the given `closingNotifier` * Observable emits a value, at which point it emits the buffer on the output * Observable and starts a new buffer internally, awaiting the next time * `closingNotifier` emits. * * ## Example * * On every click, emit array of most recent interval events * * ```ts * import { fromEvent, interval, buffer } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const intervalEvents = interval(1000); * const buffered = intervalEvents.pipe(buffer(clicks)); * buffered.subscribe(x => console.log(x)); * ``` * * @see {@link bufferCount} * @see {@link bufferTime} * @see {@link bufferToggle} * @see {@link bufferWhen} * @see {@link window} * * @param {Observable} closingNotifier An Observable that signals the * buffer to be emitted on the output Observable. * @return A function that returns an Observable of buffers, which are arrays * of values. */ export function buffer(closingNotifier: Observable): OperatorFunction { return operate((source, subscriber) => { // The current buffered values. let currentBuffer: T[] = []; // Subscribe to our source. source.subscribe( createOperatorSubscriber( subscriber, (value) => currentBuffer.push(value), () => { subscriber.next(currentBuffer); subscriber.complete(); } ) ); // Subscribe to the closing notifier. closingNotifier.subscribe( createOperatorSubscriber( subscriber, () => { // Start a new buffer and emit the previous one. const b = currentBuffer; currentBuffer = []; subscriber.next(b); }, noop ) ); return () => { // Ensure buffered values are released on finalization. currentBuffer = null!; }; }); } rxjs-7.5.7/src/internal/operators/bufferCount.ts000066400000000000000000000077061431412030200217730ustar00rootroot00000000000000import { OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { arrRemove } from '../util/arrRemove'; /** * Buffers the source Observable values until the size hits the maximum * `bufferSize` given. * * Collects values from the past as an array, and emits * that array only when its size reaches `bufferSize`. * * ![](bufferCount.png) * * Buffers a number of values from the source Observable by `bufferSize` then * emits the buffer and clears it, and starts a new buffer each * `startBufferEvery` values. If `startBufferEvery` is not provided or is * `null`, then new buffers are started immediately at the start of the source * and when each buffer closes and is emitted. * * ## Examples * * Emit the last two click events as an array * * ```ts * import { fromEvent, bufferCount } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const buffered = clicks.pipe(bufferCount(2)); * buffered.subscribe(x => console.log(x)); * ``` * * On every click, emit the last two click events as an array * * ```ts * import { fromEvent, bufferCount } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const buffered = clicks.pipe(bufferCount(2, 1)); * buffered.subscribe(x => console.log(x)); * ``` * * @see {@link buffer} * @see {@link bufferTime} * @see {@link bufferToggle} * @see {@link bufferWhen} * @see {@link pairwise} * @see {@link windowCount} * * @param {number} bufferSize The maximum size of the buffer emitted. * @param {number} [startBufferEvery] Interval at which to start a new buffer. * For example if `startBufferEvery` is `2`, then a new buffer will be started * on every other value from the source. A new buffer is started at the * beginning of the source by default. * @return A function that returns an Observable of arrays of buffered values. */ export function bufferCount(bufferSize: number, startBufferEvery: number | null = null): OperatorFunction { // If no `startBufferEvery` value was supplied, then we're // opening and closing on the bufferSize itself. startBufferEvery = startBufferEvery ?? bufferSize; return operate((source, subscriber) => { let buffers: T[][] = []; let count = 0; source.subscribe( createOperatorSubscriber( subscriber, (value) => { let toEmit: T[][] | null = null; // Check to see if we need to start a buffer. // This will start one at the first value, and then // a new one every N after that. if (count++ % startBufferEvery! === 0) { buffers.push([]); } // Push our value into our active buffers. for (const buffer of buffers) { buffer.push(value); // Check to see if we're over the bufferSize // if we are, record it so we can emit it later. // If we emitted it now and removed it, it would // mutate the `buffers` array while we're looping // over it. if (bufferSize <= buffer.length) { toEmit = toEmit ?? []; toEmit.push(buffer); } } if (toEmit) { // We have found some buffers that are over the // `bufferSize`. Emit them, and remove them from our // buffers list. for (const buffer of toEmit) { arrRemove(buffers, buffer); subscriber.next(buffer); } } }, () => { // When the source completes, emit all of our // active buffers. for (const buffer of buffers) { subscriber.next(buffer); } subscriber.complete(); }, // Pass all errors through to consumer. undefined, () => { // Clean up our memory when we finalize buffers = null!; } ) ); }); } rxjs-7.5.7/src/internal/operators/bufferTime.ts000066400000000000000000000144341431412030200215750ustar00rootroot00000000000000import { Subscription } from '../Subscription'; import { OperatorFunction, SchedulerLike } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { arrRemove } from '../util/arrRemove'; import { asyncScheduler } from '../scheduler/async'; import { popScheduler } from '../util/args'; import { executeSchedule } from '../util/executeSchedule'; /* tslint:disable:max-line-length */ export function bufferTime(bufferTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction; export function bufferTime( bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, scheduler?: SchedulerLike ): OperatorFunction; export function bufferTime( bufferTimeSpan: number, bufferCreationInterval: number | null | undefined, maxBufferSize: number, scheduler?: SchedulerLike ): OperatorFunction; /* tslint:enable:max-line-length */ /** * Buffers the source Observable values for a specific time period. * * Collects values from the past as an array, and emits * those arrays periodically in time. * * ![](bufferTime.png) * * Buffers values from the source for a specific time duration `bufferTimeSpan`. * Unless the optional argument `bufferCreationInterval` is given, it emits and * resets the buffer every `bufferTimeSpan` milliseconds. If * `bufferCreationInterval` is given, this operator opens the buffer every * `bufferCreationInterval` milliseconds and closes (emits and resets) the * buffer every `bufferTimeSpan` milliseconds. When the optional argument * `maxBufferSize` is specified, the buffer will be closed either after * `bufferTimeSpan` milliseconds or when it contains `maxBufferSize` elements. * * ## Examples * * Every second, emit an array of the recent click events * * ```ts * import { fromEvent, bufferTime } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const buffered = clicks.pipe(bufferTime(1000)); * buffered.subscribe(x => console.log(x)); * ``` * * Every 5 seconds, emit the click events from the next 2 seconds * * ```ts * import { fromEvent, bufferTime } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const buffered = clicks.pipe(bufferTime(2000, 5000)); * buffered.subscribe(x => console.log(x)); * ``` * * @see {@link buffer} * @see {@link bufferCount} * @see {@link bufferToggle} * @see {@link bufferWhen} * @see {@link windowTime} * * @param {number} bufferTimeSpan The amount of time to fill each buffer array. * @param {number} [bufferCreationInterval] The interval at which to start new * buffers. * @param {number} [maxBufferSize] The maximum buffer size. * @param {SchedulerLike} [scheduler=async] The scheduler on which to schedule the * intervals that determine buffer boundaries. * @return A function that returns an Observable of arrays of buffered values. */ export function bufferTime(bufferTimeSpan: number, ...otherArgs: any[]): OperatorFunction { const scheduler = popScheduler(otherArgs) ?? asyncScheduler; const bufferCreationInterval = (otherArgs[0] as number) ?? null; const maxBufferSize = (otherArgs[1] as number) || Infinity; return operate((source, subscriber) => { // The active buffers, their related subscriptions, and removal functions. let bufferRecords: { buffer: T[]; subs: Subscription }[] | null = []; // If true, it means that every time we emit a buffer, we want to start a new buffer // this is only really used for when *just* the buffer time span is passed. let restartOnEmit = false; /** * Does the work of emitting the buffer from the record, ensuring that the * record is removed before the emission so reentrant code (from some custom scheduling, perhaps) * does not alter the buffer. Also checks to see if a new buffer needs to be started * after the emit. */ const emit = (record: { buffer: T[]; subs: Subscription }) => { const { buffer, subs } = record; subs.unsubscribe(); arrRemove(bufferRecords, record); subscriber.next(buffer); restartOnEmit && startBuffer(); }; /** * Called every time we start a new buffer. This does * the work of scheduling a job at the requested bufferTimeSpan * that will emit the buffer (if it's not unsubscribed before then). */ const startBuffer = () => { if (bufferRecords) { const subs = new Subscription(); subscriber.add(subs); const buffer: T[] = []; const record = { buffer, subs, }; bufferRecords.push(record); executeSchedule(subs, scheduler, () => emit(record), bufferTimeSpan); } }; if (bufferCreationInterval !== null && bufferCreationInterval >= 0) { // The user passed both a bufferTimeSpan (required), and a creation interval // That means we need to start new buffers on the interval, and those buffers need // to wait the required time span before emitting. executeSchedule(subscriber, scheduler, startBuffer, bufferCreationInterval, true); } else { restartOnEmit = true; } startBuffer(); const bufferTimeSubscriber = createOperatorSubscriber( subscriber, (value: T) => { // Copy the records, so if we need to remove one we // don't mutate the array. It's hard, but not impossible to // set up a buffer time that could mutate the array and // cause issues here. const recordsCopy = bufferRecords!.slice(); for (const record of recordsCopy) { // Loop over all buffers and const { buffer } = record; buffer.push(value); // If the buffer is over the max size, we need to emit it. maxBufferSize <= buffer.length && emit(record); } }, () => { // The source completed, emit all of the active // buffers we have before we complete. while (bufferRecords?.length) { subscriber.next(bufferRecords.shift()!.buffer); } bufferTimeSubscriber?.unsubscribe(); subscriber.complete(); subscriber.unsubscribe(); }, // Pass all errors through to consumer. undefined, // Clean up () => (bufferRecords = null) ); source.subscribe(bufferTimeSubscriber); }); } rxjs-7.5.7/src/internal/operators/bufferToggle.ts000066400000000000000000000067161431412030200221240ustar00rootroot00000000000000import { Subscription } from '../Subscription'; import { OperatorFunction, ObservableInput } from '../types'; import { operate } from '../util/lift'; import { innerFrom } from '../observable/innerFrom'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { noop } from '../util/noop'; import { arrRemove } from '../util/arrRemove'; /** * Buffers the source Observable values starting from an emission from * `openings` and ending when the output of `closingSelector` emits. * * Collects values from the past as an array. Starts * collecting only when `opening` emits, and calls the `closingSelector` * function to get an Observable that tells when to close the buffer. * * ![](bufferToggle.png) * * Buffers values from the source by opening the buffer via signals from an * Observable provided to `openings`, and closing and sending the buffers when * a Subscribable or Promise returned by the `closingSelector` function emits. * * ## Example * * Every other second, emit the click events from the next 500ms * * ```ts * import { fromEvent, interval, bufferToggle, EMPTY } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const openings = interval(1000); * const buffered = clicks.pipe(bufferToggle(openings, i => * i % 2 ? interval(500) : EMPTY * )); * buffered.subscribe(x => console.log(x)); * ``` * * @see {@link buffer} * @see {@link bufferCount} * @see {@link bufferTime} * @see {@link bufferWhen} * @see {@link windowToggle} * * @param openings A Subscribable or Promise of notifications to start new * buffers. * @param closingSelector A function that takes * the value emitted by the `openings` observable and returns a Subscribable or Promise, * which, when it emits, signals that the associated buffer should be emitted * and cleared. * @return A function that returns an Observable of arrays of buffered values. */ export function bufferToggle( openings: ObservableInput, closingSelector: (value: O) => ObservableInput ): OperatorFunction { return operate((source, subscriber) => { const buffers: T[][] = []; // Subscribe to the openings notifier first innerFrom(openings).subscribe( createOperatorSubscriber( subscriber, (openValue) => { const buffer: T[] = []; buffers.push(buffer); // We use this composite subscription, so that // when the closing notifier emits, we can tear it down. const closingSubscription = new Subscription(); const emitBuffer = () => { arrRemove(buffers, buffer); subscriber.next(buffer); closingSubscription.unsubscribe(); }; // The line below will add the subscription to the parent subscriber *and* the closing subscription. closingSubscription.add(innerFrom(closingSelector(openValue)).subscribe(createOperatorSubscriber(subscriber, emitBuffer, noop))); }, noop ) ); source.subscribe( createOperatorSubscriber( subscriber, (value) => { // Value from our source. Add it to all pending buffers. for (const buffer of buffers) { buffer.push(value); } }, () => { // Source complete. Emit all pending buffers. while (buffers.length > 0) { subscriber.next(buffers.shift()!); } subscriber.complete(); } ) ); }); } rxjs-7.5.7/src/internal/operators/bufferWhen.ts000066400000000000000000000066221431412030200216000ustar00rootroot00000000000000import { Subscriber } from '../Subscriber'; import { ObservableInput, OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { noop } from '../util/noop'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { innerFrom } from '../observable/innerFrom'; /** * Buffers the source Observable values, using a factory function of closing * Observables to determine when to close, emit, and reset the buffer. * * Collects values from the past as an array. When it * starts collecting values, it calls a function that returns an Observable that * tells when to close the buffer and restart collecting. * * ![](bufferWhen.svg) * * Opens a buffer immediately, then closes the buffer when the observable * returned by calling `closingSelector` function emits a value. When it closes * the buffer, it immediately opens a new buffer and repeats the process. * * ## Example * * Emit an array of the last clicks every [1-5] random seconds * * ```ts * import { fromEvent, bufferWhen, interval } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const buffered = clicks.pipe( * bufferWhen(() => interval(1000 + Math.random() * 4000)) * ); * buffered.subscribe(x => console.log(x)); * ``` * * @see {@link buffer} * @see {@link bufferCount} * @see {@link bufferTime} * @see {@link bufferToggle} * @see {@link windowWhen} * * @param {function(): Observable} closingSelector A function that takes no * arguments and returns an Observable that signals buffer closure. * @return A function that returns an Observable of arrays of buffered values. */ export function bufferWhen(closingSelector: () => ObservableInput): OperatorFunction { return operate((source, subscriber) => { // The buffer we keep and emit. let buffer: T[] | null = null; // A reference to the subscriber used to subscribe to // the closing notifier. We need to hold this so we can // end the subscription after the first notification. let closingSubscriber: Subscriber | null = null; // Ends the previous closing notifier subscription, so it // terminates after the first emission, then emits // the current buffer if there is one, starts a new buffer, and starts a // new closing notifier. const openBuffer = () => { // Make sure to finalize the closing subscription, we only cared // about one notification. closingSubscriber?.unsubscribe(); // emit the buffer if we have one, and start a new buffer. const b = buffer; buffer = []; b && subscriber.next(b); // Get a new closing notifier and subscribe to it. innerFrom(closingSelector()).subscribe((closingSubscriber = createOperatorSubscriber(subscriber, openBuffer, noop))); }; // Start the first buffer. openBuffer(); // Subscribe to our source. source.subscribe( createOperatorSubscriber( subscriber, // Add every new value to the current buffer. (value) => buffer?.push(value), // When we complete, emit the buffer if we have one, // then complete the result. () => { buffer && subscriber.next(buffer); subscriber.complete(); }, // Pass all errors through to consumer. undefined, // Release memory on finalization () => (buffer = closingSubscriber = null!) ) ); }); } rxjs-7.5.7/src/internal/operators/catchError.ts000066400000000000000000000107501431412030200215760ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; import { Subscription } from '../Subscription'; import { innerFrom } from '../observable/innerFrom'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { operate } from '../util/lift'; /* tslint:disable:max-line-length */ export function catchError>( selector: (err: any, caught: Observable) => O ): OperatorFunction>; /* tslint:enable:max-line-length */ /** * Catches errors on the observable to be handled by returning a new observable or throwing an error. * * * It only listens to the error channel and ignores notifications. * Handles errors from the source observable, and maps them to a new observable. * The error may also be rethrown, or a new error can be thrown to emit an error from the result. * * * ![](catch.png) * * This operator handles errors, but forwards along all other events to the resulting observable. * If the source observable terminates with an error, it will map that error to a new observable, * subscribe to it, and forward all of its events to the resulting observable. * * ## Examples * * Continue with a different Observable when there's an error * * ```ts * import { of, map, catchError } from 'rxjs'; * * of(1, 2, 3, 4, 5) * .pipe( * map(n => { * if (n === 4) { * throw 'four!'; * } * return n; * }), * catchError(err => of('I', 'II', 'III', 'IV', 'V')) * ) * .subscribe(x => console.log(x)); * // 1, 2, 3, I, II, III, IV, V * ``` * * Retry the caught source Observable again in case of error, similar to `retry()` operator * * ```ts * import { of, map, catchError, take } from 'rxjs'; * * of(1, 2, 3, 4, 5) * .pipe( * map(n => { * if (n === 4) { * throw 'four!'; * } * return n; * }), * catchError((err, caught) => caught), * take(30) * ) * .subscribe(x => console.log(x)); * // 1, 2, 3, 1, 2, 3, ... * ``` * * Throw a new error when the source Observable throws an error * * ```ts * import { of, map, catchError } from 'rxjs'; * * of(1, 2, 3, 4, 5) * .pipe( * map(n => { * if (n === 4) { * throw 'four!'; * } * return n; * }), * catchError(err => { * throw 'error in source. Details: ' + err; * }) * ) * .subscribe({ * next: x => console.log(x), * error: err => console.log(err) * }); * // 1, 2, 3, error in source. Details: four! * ``` * * @see {@link onErrorResumeNext} * @see {@link repeat} * @see {@link repeatWhen} * @see {@link retry } * @see {@link retryWhen} * * @param {function} selector a function that takes as arguments `err`, which is the error, and `caught`, which * is the source observable, in case you'd like to "retry" that observable by returning it again. Whatever observable * is returned by the `selector` will be used to continue the observable chain. * @return A function that returns an Observable that originates from either * the source or the Observable returned by the `selector` function. */ export function catchError>( selector: (err: any, caught: Observable) => O ): OperatorFunction> { return operate((source, subscriber) => { let innerSub: Subscription | null = null; let syncUnsub = false; let handledResult: Observable>; innerSub = source.subscribe( createOperatorSubscriber(subscriber, undefined, undefined, (err) => { handledResult = innerFrom(selector(err, catchError(selector)(source))); if (innerSub) { innerSub.unsubscribe(); innerSub = null; handledResult.subscribe(subscriber); } else { // We don't have an innerSub yet, that means the error was synchronous // because the subscribe call hasn't returned yet. syncUnsub = true; } }) ); if (syncUnsub) { // We have a synchronous error, we need to make sure to // finalize right away. This ensures that callbacks in the `finalize` operator are called // at the right time, and that finalization occurs at the expected // time between the source error and the subscription to the // next observable. innerSub.unsubscribe(); innerSub = null; handledResult!.subscribe(subscriber); } }); } rxjs-7.5.7/src/internal/operators/combineAll.ts000066400000000000000000000002671431412030200215510ustar00rootroot00000000000000import { combineLatestAll } from './combineLatestAll'; /** * @deprecated Renamed to {@link combineLatestAll}. Will be removed in v8. */ export const combineAll = combineLatestAll; rxjs-7.5.7/src/internal/operators/combineLatest.ts000066400000000000000000000035261431412030200222760ustar00rootroot00000000000000import { combineLatestInit } from '../observable/combineLatest'; import { ObservableInput, ObservableInputTuple, OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { argsOrArgArray } from '../util/argsOrArgArray'; import { mapOneOrManyArgs } from '../util/mapOneOrManyArgs'; import { pipe } from '../util/pipe'; import { popResultSelector } from '../util/args'; /** @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */ export function combineLatest( sources: [...ObservableInputTuple], project: (...values: [T, ...A]) => R ): OperatorFunction; /** @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */ export function combineLatest(sources: [...ObservableInputTuple]): OperatorFunction; /** @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */ export function combineLatest( ...sourcesAndProject: [...ObservableInputTuple, (...values: [T, ...A]) => R] ): OperatorFunction; /** @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */ export function combineLatest(...sources: [...ObservableInputTuple]): OperatorFunction; /** * @deprecated Replaced with {@link combineLatestWith}. Will be removed in v8. */ export function combineLatest(...args: (ObservableInput | ((...values: any[]) => R))[]): OperatorFunction { const resultSelector = popResultSelector(args); return resultSelector ? pipe(combineLatest(...(args as Array>)), mapOneOrManyArgs(resultSelector)) : operate((source, subscriber) => { combineLatestInit([source, ...argsOrArgArray(args)])(subscriber); }); } rxjs-7.5.7/src/internal/operators/combineLatestAll.ts000066400000000000000000000046361431412030200227320ustar00rootroot00000000000000import { combineLatest } from '../observable/combineLatest'; import { OperatorFunction, ObservableInput } from '../types'; import { joinAllInternals } from './joinAllInternals'; export function combineLatestAll(): OperatorFunction, T[]>; export function combineLatestAll(): OperatorFunction; export function combineLatestAll(project: (...values: T[]) => R): OperatorFunction, R>; export function combineLatestAll(project: (...values: Array) => R): OperatorFunction; /** * Flattens an Observable-of-Observables by applying {@link combineLatest} when the Observable-of-Observables completes. * * `combineLatestAll` takes an Observable of Observables, and collects all Observables from it. Once the outer Observable completes, * it subscribes to all collected Observables and combines their values using the {@link combineLatest} strategy, such that: * * * Every time an inner Observable emits, the output Observable emits * * When the returned observable emits, it emits all of the latest values by: * * If a `project` function is provided, it is called with each recent value from each inner Observable in whatever order they * arrived, and the result of the `project` function is what is emitted by the output Observable. * * If there is no `project` function, an array of all the most recent values is emitted by the output Observable. * * ## Example * * Map two click events to a finite interval Observable, then apply `combineLatestAll` * * ```ts * import { fromEvent, map, interval, take, combineLatestAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const higherOrder = clicks.pipe( * map(() => interval(Math.random() * 2000).pipe(take(3))), * take(2) * ); * const result = higherOrder.pipe(combineLatestAll()); * * result.subscribe(x => console.log(x)); * ``` * * @see {@link combineLatest} * @see {@link combineLatestWith} * @see {@link mergeAll} * * @param project optional function to map the most recent values from each inner Observable into a new result. * Takes each of the most recent values from each collected inner Observable as arguments, in order. * @return A function that returns an Observable that flattens Observables * emitted by the source Observable. */ export function combineLatestAll(project?: (...values: Array) => R) { return joinAllInternals(combineLatest, project); } rxjs-7.5.7/src/internal/operators/combineLatestWith.ts000066400000000000000000000034771431412030200231370ustar00rootroot00000000000000import { ObservableInputTuple, OperatorFunction, Cons } from '../types'; import { combineLatest } from './combineLatest'; /** * Create an observable that combines the latest values from all passed observables and the source * into arrays and emits them. * * Returns an observable, that when subscribed to, will subscribe to the source observable and all * sources provided as arguments. Once all sources emit at least one value, all of the latest values * will be emitted as an array. After that, every time any source emits a value, all of the latest values * will be emitted as an array. * * This is a useful operator for eagerly calculating values based off of changed inputs. * * ## Example * * Simple concatenation of values from two inputs * * ```ts * import { fromEvent, combineLatestWith, map } from 'rxjs'; * * // Setup: Add two inputs to the page * const input1 = document.createElement('input'); * document.body.appendChild(input1); * const input2 = document.createElement('input'); * document.body.appendChild(input2); * * // Get streams of changes * const input1Changes$ = fromEvent(input1, 'change'); * const input2Changes$ = fromEvent(input2, 'change'); * * // Combine the changes by adding them together * input1Changes$.pipe( * combineLatestWith(input2Changes$), * map(([e1, e2]) => (e1.target).value + ' - ' + (e2.target).value) * ) * .subscribe(x => console.log(x)); * ``` * * @param otherSources the other sources to subscribe to. * @return A function that returns an Observable that emits the latest * emissions from both source and provided Observables. */ export function combineLatestWith( ...otherSources: [...ObservableInputTuple] ): OperatorFunction> { return combineLatest(...otherSources); } rxjs-7.5.7/src/internal/operators/concat.ts000066400000000000000000000017771431412030200207620ustar00rootroot00000000000000import { ObservableInputTuple, OperatorFunction, SchedulerLike } from '../types'; import { operate } from '../util/lift'; import { concatAll } from './concatAll'; import { popScheduler } from '../util/args'; import { from } from '../observable/from'; /** @deprecated Replaced with {@link concatWith}. Will be removed in v8. */ export function concat(...sources: [...ObservableInputTuple]): OperatorFunction; /** @deprecated Replaced with {@link concatWith}. Will be removed in v8. */ export function concat( ...sourcesAndScheduler: [...ObservableInputTuple, SchedulerLike] ): OperatorFunction; /** * @deprecated Replaced with {@link concatWith}. Will be removed in v8. */ export function concat(...args: any[]): OperatorFunction { const scheduler = popScheduler(args); return operate((source, subscriber) => { concatAll()(from([source, ...args], scheduler)).subscribe(subscriber); }); } rxjs-7.5.7/src/internal/operators/concatAll.ts000066400000000000000000000041671431412030200214070ustar00rootroot00000000000000import { mergeAll } from './mergeAll'; import { OperatorFunction, ObservableInput, ObservedValueOf } from '../types'; /** * Converts a higher-order Observable into a first-order Observable by * concatenating the inner Observables in order. * * Flattens an Observable-of-Observables by putting one * inner Observable after the other. * * ![](concatAll.svg) * * Joins every Observable emitted by the source (a higher-order Observable), in * a serial fashion. It subscribes to each inner Observable only after the * previous inner Observable has completed, and merges all of their values into * the returned observable. * * __Warning:__ If the source Observable emits Observables quickly and * endlessly, and the inner Observables it emits generally complete slower than * the source emits, you can run into memory issues as the incoming Observables * collect in an unbounded buffer. * * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set * to `1`. * * ## Example * * For each click event, tick every second from 0 to 3, with no concurrency * * ```ts * import { fromEvent, map, interval, take, concatAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const higherOrder = clicks.pipe( * map(() => interval(1000).pipe(take(4))) * ); * const firstOrder = higherOrder.pipe(concatAll()); * firstOrder.subscribe(x => console.log(x)); * * // Results in the following: * // (results are not concurrent) * // For every click on the "document" it will emit values 0 to 3 spaced * // on a 1000ms interval * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 * ``` * * @see {@link combineLatestAll} * @see {@link concat} * @see {@link concatMap} * @see {@link concatMapTo} * @see {@link exhaustAll} * @see {@link mergeAll} * @see {@link switchAll} * @see {@link switchMap} * @see {@link zipAll} * * @return A function that returns an Observable emitting values from all the * inner Observables concatenated. */ export function concatAll>(): OperatorFunction> { return mergeAll(1); } rxjs-7.5.7/src/internal/operators/concatMap.ts000066400000000000000000000071561431412030200214150ustar00rootroot00000000000000import { mergeMap } from './mergeMap'; import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; import { isFunction } from '../util/isFunction'; /* tslint:disable:max-line-length */ export function concatMap>( project: (value: T, index: number) => O ): OperatorFunction>; /** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */ export function concatMap>( project: (value: T, index: number) => O, resultSelector: undefined ): OperatorFunction>; /** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */ export function concatMap>( project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R ): OperatorFunction; /* tslint:enable:max-line-length */ /** * Projects each source value to an Observable which is merged in the output * Observable, in a serialized fashion waiting for each one to complete before * merging the next. * * Maps each value to an Observable, then flattens all of * these inner Observables using {@link concatAll}. * * ![](concatMap.png) * * Returns an Observable that emits items based on applying a function that you * supply to each item emitted by the source Observable, where that function * returns an (so-called "inner") Observable. Each new inner Observable is * concatenated with the previous inner Observable. * * __Warning:__ if source values arrive endlessly and faster than their * corresponding inner Observables can complete, it will result in memory issues * as inner Observables amass in an unbounded buffer waiting for their turn to * be subscribed to. * * Note: `concatMap` is equivalent to `mergeMap` with concurrency parameter set * to `1`. * * ## Example * * For each click event, tick every second from 0 to 3, with no concurrency * * ```ts * import { fromEvent, concatMap, interval, take } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe( * concatMap(ev => interval(1000).pipe(take(4))) * ); * result.subscribe(x => console.log(x)); * * // Results in the following: * // (results are not concurrent) * // For every click on the "document" it will emit values 0 to 3 spaced * // on a 1000ms interval * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 * ``` * * @see {@link concat} * @see {@link concatAll} * @see {@link concatMapTo} * @see {@link exhaustMap} * @see {@link mergeMap} * @see {@link switchMap} * * @param {function(value: T, ?index: number): ObservableInput} project A function * that, when applied to an item emitted by the source Observable, returns an * Observable. * @return A function that returns an Observable that emits the result of * applying the projection function (and the optional deprecated * `resultSelector`) to each item emitted by the source Observable and taking * values from each projected inner Observable sequentially. */ export function concatMap>( project: (value: T, index: number) => O, resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R ): OperatorFunction | R> { return isFunction(resultSelector) ? mergeMap(project, resultSelector, 1) : mergeMap(project, 1); } rxjs-7.5.7/src/internal/operators/concatMapTo.ts000066400000000000000000000070171431412030200217140ustar00rootroot00000000000000import { concatMap } from './concatMap'; import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; import { isFunction } from '../util/isFunction'; /** @deprecated Will be removed in v9. Use {@link concatMap} instead: `concatMap(() => result)` */ export function concatMapTo>(observable: O): OperatorFunction>; /** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */ export function concatMapTo>( observable: O, resultSelector: undefined ): OperatorFunction>; /** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */ export function concatMapTo>( observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R ): OperatorFunction; /** * Projects each source value to the same Observable which is merged multiple * times in a serialized fashion on the output Observable. * * It's like {@link concatMap}, but maps each value * always to the same inner Observable. * * ![](concatMapTo.png) * * Maps each source value to the given Observable `innerObservable` regardless * of the source value, and then flattens those resulting Observables into one * single Observable, which is the output Observable. Each new `innerObservable` * instance emitted on the output Observable is concatenated with the previous * `innerObservable` instance. * * __Warning:__ if source values arrive endlessly and faster than their * corresponding inner Observables can complete, it will result in memory issues * as inner Observables amass in an unbounded buffer waiting for their turn to * be subscribed to. * * Note: `concatMapTo` is equivalent to `mergeMapTo` with concurrency parameter * set to `1`. * * ## Example * * For each click event, tick every second from 0 to 3, with no concurrency * * ```ts * import { fromEvent, concatMapTo, interval, take } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe( * concatMapTo(interval(1000).pipe(take(4))) * ); * result.subscribe(x => console.log(x)); * * // Results in the following: * // (results are not concurrent) * // For every click on the "document" it will emit values 0 to 3 spaced * // on a 1000ms interval * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 * ``` * * @see {@link concat} * @see {@link concatAll} * @see {@link concatMap} * @see {@link mergeMapTo} * @see {@link switchMapTo} * * @param {ObservableInput} innerObservable An Observable to replace each value from * the source Observable. * @return A function that returns an Observable of values merged together by * joining the passed Observable with itself, one after the other, for each * value emitted from the source. * @deprecated Will be removed in v9. Use {@link concatMap} instead: `concatMap(() => result)` */ export function concatMapTo>( innerObservable: O, resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R ): OperatorFunction | R> { return isFunction(resultSelector) ? concatMap(() => innerObservable, resultSelector) : concatMap(() => innerObservable); } rxjs-7.5.7/src/internal/operators/concatWith.ts000066400000000000000000000026301431412030200216030ustar00rootroot00000000000000import { ObservableInputTuple, OperatorFunction } from '../types'; import { concat } from './concat'; /** * Emits all of the values from the source observable, then, once it completes, subscribes * to each observable source provided, one at a time, emitting all of their values, and not subscribing * to the next one until it completes. * * `concat(a$, b$, c$)` is the same as `a$.pipe(concatWith(b$, c$))`. * * ## Example * * Listen for one mouse click, then listen for all mouse moves. * * ```ts * import { fromEvent, map, take, concatWith } from 'rxjs'; * * const clicks$ = fromEvent(document, 'click'); * const moves$ = fromEvent(document, 'mousemove'); * * clicks$.pipe( * map(() => 'click'), * take(1), * concatWith( * moves$.pipe( * map(() => 'move') * ) * ) * ) * .subscribe(x => console.log(x)); * * // 'click' * // 'move' * // 'move' * // 'move' * // ... * ``` * * @param otherSources Other observable sources to subscribe to, in sequence, after the original source is complete. * @return A function that returns an Observable that concatenates * subscriptions to the source and provided Observables subscribing to the next * only once the current subscription completes. */ export function concatWith( ...otherSources: [...ObservableInputTuple] ): OperatorFunction { return concat(...otherSources); } rxjs-7.5.7/src/internal/operators/connect.ts000066400000000000000000000076561431412030200211460ustar00rootroot00000000000000import { OperatorFunction, ObservableInput, ObservedValueOf, SubjectLike } from '../types'; import { Observable } from '../Observable'; import { Subject } from '../Subject'; import { innerFrom } from '../observable/innerFrom'; import { operate } from '../util/lift'; import { fromSubscribable } from '../observable/fromSubscribable'; /** * An object used to configure {@link connect} operator. */ export interface ConnectConfig { /** * A factory function used to create the Subject through which the source * is multicast. By default, this creates a {@link Subject}. */ connector: () => SubjectLike; } /** * The default configuration for `connect`. */ const DEFAULT_CONFIG: ConnectConfig = { connector: () => new Subject(), }; /** * Creates an observable by multicasting the source within a function that * allows the developer to define the usage of the multicast prior to connection. * * This is particularly useful if the observable source you wish to multicast could * be synchronous or asynchronous. This sets it apart from {@link share}, which, in the * case of totally synchronous sources will fail to share a single subscription with * multiple consumers, as by the time the subscription to the result of {@link share} * has returned, if the source is synchronous its internal reference count will jump from * 0 to 1 back to 0 and reset. * * To use `connect`, you provide a `selector` function that will give you * a multicast observable that is not yet connected. You then use that multicast observable * to create a resulting observable that, when subscribed, will set up your multicast. This is * generally, but not always, accomplished with {@link merge}. * * Note that using a {@link takeUntil} inside of `connect`'s `selector` _might_ mean you were looking * to use the {@link takeWhile} operator instead. * * When you subscribe to the result of `connect`, the `selector` function will be called. After * the `selector` function returns, the observable it returns will be subscribed to, _then_ the * multicast will be connected to the source. * * ## Example * * Sharing a totally synchronous observable * * ```ts * import { of, tap, connect, merge, map, filter } from 'rxjs'; * * const source$ = of(1, 2, 3, 4, 5).pipe( * tap({ * subscribe: () => console.log('subscription started'), * next: n => console.log(`source emitted ${ n }`) * }) * ); * * source$.pipe( * // Notice in here we're merging 3 subscriptions to `shared$`. * connect(shared$ => merge( * shared$.pipe(map(n => `all ${ n }`)), * shared$.pipe(filter(n => n % 2 === 0), map(n => `even ${ n }`)), * shared$.pipe(filter(n => n % 2 === 1), map(n => `odd ${ n }`)) * )) * ) * .subscribe(console.log); * * // Expected output: (notice only one subscription) * 'subscription started' * 'source emitted 1' * 'all 1' * 'odd 1' * 'source emitted 2' * 'all 2' * 'even 2' * 'source emitted 3' * 'all 3' * 'odd 3' * 'source emitted 4' * 'all 4' * 'even 4' * 'source emitted 5' * 'all 5' * 'odd 5' * ``` * * @param selector A function used to set up the multicast. Gives you a multicast observable * that is not yet connected. With that, you're expected to create and return * and Observable, that when subscribed to, will utilize the multicast observable. * After this function is executed -- and its return value subscribed to -- the * operator will subscribe to the source, and the connection will be made. * @param config The configuration object for `connect`. */ export function connect>( selector: (shared: Observable) => O, config: ConnectConfig = DEFAULT_CONFIG ): OperatorFunction> { const { connector } = config; return operate((source, subscriber) => { const subject = connector(); innerFrom(selector(fromSubscribable(subject))).subscribe(subscriber); subscriber.add(source.subscribe(subject)); }); } rxjs-7.5.7/src/internal/operators/count.ts000066400000000000000000000043731431412030200206360ustar00rootroot00000000000000import { OperatorFunction } from '../types'; import { reduce } from './reduce'; /** * Counts the number of emissions on the source and emits that number when the * source completes. * * Tells how many values were emitted, when the source * completes. * * ![](count.png) * * `count` transforms an Observable that emits values into an Observable that * emits a single value that represents the number of values emitted by the * source Observable. If the source Observable terminates with an error, `count` * will pass this error notification along without emitting a value first. If * the source Observable does not terminate at all, `count` will neither emit * a value nor terminate. This operator takes an optional `predicate` function * as argument, in which case the output emission will represent the number of * source values that matched `true` with the `predicate`. * * ## Examples * * Counts how many seconds have passed before the first click happened * * ```ts * import { interval, fromEvent, takeUntil, count } from 'rxjs'; * * const seconds = interval(1000); * const clicks = fromEvent(document, 'click'); * const secondsBeforeClick = seconds.pipe(takeUntil(clicks)); * const result = secondsBeforeClick.pipe(count()); * result.subscribe(x => console.log(x)); * ``` * * Counts how many odd numbers are there between 1 and 7 * * ```ts * import { range, count } from 'rxjs'; * * const numbers = range(1, 7); * const result = numbers.pipe(count(i => i % 2 === 1)); * result.subscribe(x => console.log(x)); * // Results in: * // 4 * ``` * * @see {@link max} * @see {@link min} * @see {@link reduce} * * @param predicate A function that is used to analyze the value and the index and * determine whether or not to increment the count. Return `true` to increment the count, * and return `false` to keep the count the same. * If the predicate is not provided, every value will be counted. * @return A function that returns an Observable that emits one number that * represents the count of emissions. */ export function count(predicate?: (value: T, index: number) => boolean): OperatorFunction { return reduce((total, value, i) => (!predicate || predicate(value, i) ? total + 1 : total), 0); } rxjs-7.5.7/src/internal/operators/debounce.ts000066400000000000000000000114611431412030200212660ustar00rootroot00000000000000import { Subscriber } from '../Subscriber'; import { MonoTypeOperatorFunction, ObservableInput } from '../types'; import { operate } from '../util/lift'; import { noop } from '../util/noop'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { innerFrom } from '../observable/innerFrom'; /** * Emits a notification from the source Observable only after a particular time span * determined by another Observable has passed without another source emission. * * It's like {@link debounceTime}, but the time span of * emission silence is determined by a second Observable. * * ![](debounce.svg) * * `debounce` delays notifications emitted by the source Observable, but drops previous * pending delayed emissions if a new notification arrives on the source Observable. * This operator keeps track of the most recent notification from the source * Observable, and spawns a duration Observable by calling the * `durationSelector` function. The notification is emitted only when the duration * Observable emits a next notification, and if no other notification was emitted on * the source Observable since the duration Observable was spawned. If a new * notification appears before the duration Observable emits, the previous notification will * not be emitted and a new duration is scheduled from `durationSelector` is scheduled. * If the completing event happens during the scheduled duration the last cached notification * is emitted before the completion event is forwarded to the output observable. * If the error event happens during the scheduled duration or after it only the error event is * forwarded to the output observable. The cache notification is not emitted in this case. * * Like {@link debounceTime}, this is a rate-limiting operator, and also a * delay-like operator since output emissions do not necessarily occur at the * same time as they did on the source Observable. * * ## Example * * Emit the most recent click after a burst of clicks * * ```ts * import { fromEvent, scan, debounce, interval } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe( * scan(i => ++i, 1), * debounce(i => interval(200 * i)) * ); * result.subscribe(x => console.log(x)); * ``` * * @see {@link audit} * @see {@link auditTime} * @see {@link debounceTime} * @see {@link delay} * @see {@link sample} * @see {@link sampleTime} * @see {@link throttle} * @see {@link throttleTime} * * @param durationSelector A function * that receives a value from the source Observable, for computing the timeout * duration for each source value, returned as an Observable or a Promise. * @return A function that returns an Observable that delays the emissions of * the source Observable by the specified duration Observable returned by * `durationSelector`, and may drop some values if they occur too frequently. */ export function debounce(durationSelector: (value: T) => ObservableInput): MonoTypeOperatorFunction { return operate((source, subscriber) => { let hasValue = false; let lastValue: T | null = null; // The subscriber/subscription for the current debounce, if there is one. let durationSubscriber: Subscriber | null = null; const emit = () => { // Unsubscribe any current debounce subscription we have, // we only cared about the first notification from it, and we // want to clean that subscription up as soon as possible. durationSubscriber?.unsubscribe(); durationSubscriber = null; if (hasValue) { // We have a value! Free up memory first, then emit the value. hasValue = false; const value = lastValue!; lastValue = null; subscriber.next(value); } }; source.subscribe( createOperatorSubscriber( subscriber, (value: T) => { // Cancel any pending debounce duration. We don't // need to null it out here yet tho, because we're just going // to create another one in a few lines. durationSubscriber?.unsubscribe(); hasValue = true; lastValue = value; // Capture our duration subscriber, so we can unsubscribe it when we're notified // and we're going to emit the value. durationSubscriber = createOperatorSubscriber(subscriber, emit, noop); // Subscribe to the duration. innerFrom(durationSelector(value)).subscribe(durationSubscriber); }, () => { // Source completed. // Emit any pending debounced values then complete emit(); subscriber.complete(); }, // Pass all errors through to consumer undefined, () => { // Finalization. lastValue = durationSubscriber = null; } ) ); }); } rxjs-7.5.7/src/internal/operators/debounceTime.ts000066400000000000000000000111371431412030200221050ustar00rootroot00000000000000import { asyncScheduler } from '../scheduler/async'; import { Subscription } from '../Subscription'; import { MonoTypeOperatorFunction, SchedulerAction, SchedulerLike } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Emits a notification from the source Observable only after a particular time span * has passed without another source emission. * * It's like {@link delay}, but passes only the most * recent notification from each burst of emissions. * * ![](debounceTime.png) * * `debounceTime` delays notifications emitted by the source Observable, but drops * previous pending delayed emissions if a new notification arrives on the source * Observable. This operator keeps track of the most recent notification from the * source Observable, and emits that only when `dueTime` has passed * without any other notification appearing on the source Observable. If a new value * appears before `dueTime` silence occurs, the previous notification will be dropped * and will not be emitted and a new `dueTime` is scheduled. * If the completing event happens during `dueTime` the last cached notification * is emitted before the completion event is forwarded to the output observable. * If the error event happens during `dueTime` or after it only the error event is * forwarded to the output observable. The cache notification is not emitted in this case. * * This is a rate-limiting operator, because it is impossible for more than one * notification to be emitted in any time window of duration `dueTime`, but it is also * a delay-like operator since output emissions do not occur at the same time as * they did on the source Observable. Optionally takes a {@link SchedulerLike} for * managing timers. * * ## Example * * Emit the most recent click after a burst of clicks * * ```ts * import { fromEvent, debounceTime } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(debounceTime(1000)); * result.subscribe(x => console.log(x)); * ``` * * @see {@link audit} * @see {@link auditTime} * @see {@link debounce} * @see {@link sample} * @see {@link sampleTime} * @see {@link throttle} * @see {@link throttleTime} * * @param {number} dueTime The timeout duration in milliseconds (or the time * unit determined internally by the optional `scheduler`) for the window of * time required to wait for emission silence before emitting the most recent * source value. * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for * managing the timers that handle the timeout for each value. * @return A function that returns an Observable that delays the emissions of * the source Observable by the specified `dueTime`, and may drop some values * if they occur too frequently. */ export function debounceTime(dueTime: number, scheduler: SchedulerLike = asyncScheduler): MonoTypeOperatorFunction { return operate((source, subscriber) => { let activeTask: Subscription | null = null; let lastValue: T | null = null; let lastTime: number | null = null; const emit = () => { if (activeTask) { // We have a value! Free up memory first, then emit the value. activeTask.unsubscribe(); activeTask = null; const value = lastValue!; lastValue = null; subscriber.next(value); } }; function emitWhenIdle(this: SchedulerAction) { // This is called `dueTime` after the first value // but we might have received new values during this window! const targetTime = lastTime! + dueTime; const now = scheduler.now(); if (now < targetTime) { // On that case, re-schedule to the new target activeTask = this.schedule(undefined, targetTime - now); subscriber.add(activeTask); return; } emit(); } source.subscribe( createOperatorSubscriber( subscriber, (value: T) => { lastValue = value; lastTime = scheduler.now(); // Only set up a task if it's not already up if (!activeTask) { activeTask = scheduler.schedule(emitWhenIdle, dueTime); subscriber.add(activeTask); } }, () => { // Source completed. // Emit any pending debounced values then complete emit(); subscriber.complete(); }, // Pass all errors through to consumer. undefined, () => { // Finalization. lastValue = activeTask = null; } ) ); }); } rxjs-7.5.7/src/internal/operators/defaultIfEmpty.ts000066400000000000000000000035121431412030200224220ustar00rootroot00000000000000import { OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Emits a given value if the source Observable completes without emitting any * `next` value, otherwise mirrors the source Observable. * * If the source Observable turns out to be empty, then * this operator will emit a default value. * * ![](defaultIfEmpty.png) * * `defaultIfEmpty` emits the values emitted by the source Observable or a * specified default value if the source Observable is empty (completes without * having emitted any `next` value). * * ## Example * * If no clicks happen in 5 seconds, then emit 'no clicks' * * ```ts * import { fromEvent, takeUntil, interval, defaultIfEmpty } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const clicksBeforeFive = clicks.pipe(takeUntil(interval(5000))); * const result = clicksBeforeFive.pipe(defaultIfEmpty('no clicks')); * result.subscribe(x => console.log(x)); * ``` * * @see {@link empty} * @see {@link last} * * @param defaultValue The default value used if the source * Observable is empty. * @return A function that returns an Observable that emits either the * specified `defaultValue` if the source Observable emits no items, or the * values emitted by the source Observable. */ export function defaultIfEmpty(defaultValue: R): OperatorFunction { return operate((source, subscriber) => { let hasValue = false; source.subscribe( createOperatorSubscriber( subscriber, (value) => { hasValue = true; subscriber.next(value); }, () => { if (!hasValue) { subscriber.next(defaultValue!); } subscriber.complete(); } ) ); }); } rxjs-7.5.7/src/internal/operators/delay.ts000066400000000000000000000044351431412030200206030ustar00rootroot00000000000000import { asyncScheduler } from '../scheduler/async'; import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; import { delayWhen } from './delayWhen'; import { timer } from '../observable/timer'; /** * Delays the emission of items from the source Observable by a given timeout or * until a given Date. * * Time shifts each item by some specified amount of * milliseconds. * * ![](delay.svg) * * If the delay argument is a Number, this operator time shifts the source * Observable by that amount of time expressed in milliseconds. The relative * time intervals between the values are preserved. * * If the delay argument is a Date, this operator time shifts the start of the * Observable execution until the given date occurs. * * ## Examples * * Delay each click by one second * * ```ts * import { fromEvent, delay } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const delayedClicks = clicks.pipe(delay(1000)); // each click emitted after 1 second * delayedClicks.subscribe(x => console.log(x)); * ``` * * Delay all clicks until a future date happens * * ```ts * import { fromEvent, delay } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const date = new Date('March 15, 2050 12:00:00'); // in the future * const delayedClicks = clicks.pipe(delay(date)); // click emitted only after that date * delayedClicks.subscribe(x => console.log(x)); * ``` * * @see {@link delayWhen} * @see {@link throttle} * @see {@link throttleTime} * @see {@link debounce} * @see {@link debounceTime} * @see {@link sample} * @see {@link sampleTime} * @see {@link audit} * @see {@link auditTime} * * @param {number|Date} due The delay duration in milliseconds (a `number`) or * a `Date` until which the emission of the source items is delayed. * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for * managing the timers that handle the time-shift for each item. * @return A function that returns an Observable that delays the emissions of * the source Observable by the specified timeout or Date. */ export function delay(due: number | Date, scheduler: SchedulerLike = asyncScheduler): MonoTypeOperatorFunction { const duration = timer(due, scheduler); return delayWhen(() => duration); } rxjs-7.5.7/src/internal/operators/delayWhen.ts000066400000000000000000000105741431412030200214260ustar00rootroot00000000000000import { Observable } from '../Observable'; import { MonoTypeOperatorFunction } from '../types'; import { concat } from '../observable/concat'; import { take } from './take'; import { ignoreElements } from './ignoreElements'; import { mapTo } from './mapTo'; import { mergeMap } from './mergeMap'; /** @deprecated The `subscriptionDelay` parameter will be removed in v8. */ export function delayWhen( delayDurationSelector: (value: T, index: number) => Observable, subscriptionDelay: Observable ): MonoTypeOperatorFunction; export function delayWhen(delayDurationSelector: (value: T, index: number) => Observable): MonoTypeOperatorFunction; /** * Delays the emission of items from the source Observable by a given time span * determined by the emissions of another Observable. * * It's like {@link delay}, but the time span of the * delay duration is determined by a second Observable. * * ![](delayWhen.png) * * `delayWhen` operator shifts each emitted value from the source Observable by * a time span determined by another Observable. When the source emits a value, * the `delayDurationSelector` function is called with the value emitted from * the source Observable as the first argument to the `delayDurationSelector`. * The `delayDurationSelector` function should return an Observable, called * the "duration" Observable. * * The source value is emitted on the output Observable only when the "duration" * Observable emits ({@link guide/glossary-and-semantics#next next}s) any value. * Upon that, the "duration" Observable gets unsubscribed. * * Before RxJS V7, the {@link guide/glossary-and-semantics#complete completion} * of the "duration" Observable would have been triggering the emission of the * source value to the output Observable, but with RxJS V7, this is not the case * anymore. * * Only next notifications (from the "duration" Observable) trigger values from * the source Observable to be passed to the output Observable. If the "duration" * Observable only emits the complete notification (without next), the value * emitted by the source Observable will never get to the output Observable - it * will be swallowed. If the "duration" Observable errors, the error will be * propagated to the output Observable. * * Optionally, `delayWhen` takes a second argument, `subscriptionDelay`, which * is an Observable. When `subscriptionDelay` emits its first value or * completes, the source Observable is subscribed to and starts behaving like * described in the previous paragraph. If `subscriptionDelay` is not provided, * `delayWhen` will subscribe to the source Observable as soon as the output * Observable is subscribed. * * ## Example * * Delay each click by a random amount of time, between 0 and 5 seconds * * ```ts * import { fromEvent, delayWhen, interval } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const delayedClicks = clicks.pipe( * delayWhen(() => interval(Math.random() * 5000)) * ); * delayedClicks.subscribe(x => console.log(x)); * ``` * * @see {@link delay} * @see {@link throttle} * @see {@link throttleTime} * @see {@link debounce} * @see {@link debounceTime} * @see {@link sample} * @see {@link sampleTime} * @see {@link audit} * @see {@link auditTime} * * @param {function(value: T, index: number): Observable} delayDurationSelector A function that * returns an Observable for each value emitted by the source Observable, which * is then used to delay the emission of that item on the output Observable * until the Observable returned from this function emits a value. * @param {Observable} subscriptionDelay An Observable that triggers the * subscription to the source Observable once it emits any value. * @return A function that returns an Observable that delays the emissions of * the source Observable by an amount of time specified by the Observable * returned by `delayDurationSelector`. */ export function delayWhen( delayDurationSelector: (value: T, index: number) => Observable, subscriptionDelay?: Observable ): MonoTypeOperatorFunction { if (subscriptionDelay) { // DEPRECATED PATH return (source: Observable) => concat(subscriptionDelay.pipe(take(1), ignoreElements()), source.pipe(delayWhen(delayDurationSelector))); } return mergeMap((value, index) => delayDurationSelector(value, index).pipe(take(1), mapTo(value))); } rxjs-7.5.7/src/internal/operators/dematerialize.ts000066400000000000000000000043121431412030200223160ustar00rootroot00000000000000import { observeNotification } from '../Notification'; import { OperatorFunction, ObservableNotification, ValueFromNotification } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Converts an Observable of {@link ObservableNotification} objects into the emissions * that they represent. * * Unwraps {@link ObservableNotification} objects as actual `next`, * `error` and `complete` emissions. The opposite of {@link materialize}. * * ![](dematerialize.png) * * `dematerialize` is assumed to operate an Observable that only emits * {@link ObservableNotification} objects as `next` emissions, and does not emit any * `error`. Such Observable is the output of a `materialize` operation. Those * notifications are then unwrapped using the metadata they contain, and emitted * as `next`, `error`, and `complete` on the output Observable. * * Use this operator in conjunction with {@link materialize}. * * ## Example * * Convert an Observable of Notifications to an actual Observable * * ```ts * import { NextNotification, ErrorNotification, of, dematerialize } from 'rxjs'; * * const notifA: NextNotification = { kind: 'N', value: 'A' }; * const notifB: NextNotification = { kind: 'N', value: 'B' }; * const notifE: ErrorNotification = { kind: 'E', error: new TypeError('x.toUpperCase is not a function') }; * * const materialized = of(notifA, notifB, notifE); * * const upperCase = materialized.pipe(dematerialize()); * upperCase.subscribe({ * next: x => console.log(x), * error: e => console.error(e) * }); * * // Results in: * // A * // B * // TypeError: x.toUpperCase is not a function * ``` * * @see {@link materialize} * * @return A function that returns an Observable that emits items and * notifications embedded in Notification objects emitted by the source * Observable. */ export function dematerialize>(): OperatorFunction> { return operate((source, subscriber) => { source.subscribe(createOperatorSubscriber(subscriber, (notification) => observeNotification(notification, subscriber))); }); } rxjs-7.5.7/src/internal/operators/distinct.ts000066400000000000000000000056051431412030200213260ustar00rootroot00000000000000import { Observable } from '../Observable'; import { MonoTypeOperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { noop } from '../util/noop'; /** * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from previous items. * * If a `keySelector` function is provided, then it will project each value from the source observable into a new value that it will * check for equality with previously projected values. If the `keySelector` function is not provided, it will use each value from the * source observable directly with an equality check against previous values. * * In JavaScript runtimes that support `Set`, this operator will use a `Set` to improve performance of the distinct value checking. * * In other runtimes, this operator will use a minimal implementation of `Set` that relies on an `Array` and `indexOf` under the * hood, so performance will degrade as more values are checked for distinction. Even in newer browsers, a long-running `distinct` * use might result in memory leaks. To help alleviate this in some scenarios, an optional `flushes` parameter is also provided so * that the internal `Set` can be "flushed", basically clearing it of values. * * ## Examples * * A simple example with numbers * * ```ts * import { of, distinct } from 'rxjs'; * * of(1, 1, 2, 2, 2, 1, 2, 3, 4, 3, 2, 1) * .pipe(distinct()) * .subscribe(x => console.log(x)); * * // Outputs * // 1 * // 2 * // 3 * // 4 * ``` * * An example using the `keySelector` function * * ```ts * import { of, distinct } from 'rxjs'; * * of( * { age: 4, name: 'Foo'}, * { age: 7, name: 'Bar'}, * { age: 5, name: 'Foo'} * ) * .pipe(distinct(({ name }) => name)) * .subscribe(x => console.log(x)); * * // Outputs * // { age: 4, name: 'Foo' } * // { age: 7, name: 'Bar' } * ``` * @see {@link distinctUntilChanged} * @see {@link distinctUntilKeyChanged} * * @param {function} [keySelector] Optional function to select which value you want to check as distinct. * @param {Observable} [flushes] Optional Observable for flushing the internal HashSet of the operator. * @return A function that returns an Observable that emits items from the * source Observable with distinct values. */ export function distinct(keySelector?: (value: T) => K, flushes?: Observable): MonoTypeOperatorFunction { return operate((source, subscriber) => { const distinctKeys = new Set(); source.subscribe( createOperatorSubscriber(subscriber, (value) => { const key = keySelector ? keySelector(value) : value; if (!distinctKeys.has(key)) { distinctKeys.add(key); subscriber.next(value); } }) ); flushes?.subscribe(createOperatorSubscriber(subscriber, () => distinctKeys.clear(), noop)); }); } rxjs-7.5.7/src/internal/operators/distinctUntilChanged.ts000066400000000000000000000154001431412030200236060ustar00rootroot00000000000000import { MonoTypeOperatorFunction } from '../types'; import { identity } from '../util/identity'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; export function distinctUntilChanged(comparator?: (previous: T, current: T) => boolean): MonoTypeOperatorFunction; export function distinctUntilChanged( comparator: (previous: K, current: K) => boolean, keySelector: (value: T) => K ): MonoTypeOperatorFunction; /** * Returns a result {@link Observable} that emits all values pushed by the source observable if they * are distinct in comparison to the last value the result observable emitted. * * When provided without parameters or with the first parameter (`{@link distinctUntilChanged#comparator comparator}`), * it behaves like this: * * 1. It will always emit the first value from the source. * 2. For all subsequent values pushed by the source, they will be compared to the previously emitted values * using the provided `comparator` or an `===` equality check. * 3. If the value pushed by the source is determined to be unequal by this check, that value is emitted and * becomes the new "previously emitted value" internally. * * When the second parameter (`{@link distinctUntilChanged#keySelector keySelector}`) is provided, the behavior * changes: * * 1. It will always emit the first value from the source. * 2. The `keySelector` will be run against all values, including the first value. * 3. For all values after the first, the selected key will be compared against the key selected from * the previously emitted value using the `comparator`. * 4. If the keys are determined to be unequal by this check, the value (not the key), is emitted * and the selected key from that value is saved for future comparisons against other keys. * * ## Examples * * A very basic example with no `{@link distinctUntilChanged#comparator comparator}`. Note that `1` is emitted more than once, * because it's distinct in comparison to the _previously emitted_ value, * not in comparison to _all other emitted values_. * * ```ts * import { of, distinctUntilChanged } from 'rxjs'; * * of(1, 1, 1, 2, 2, 2, 1, 1, 3, 3) * .pipe(distinctUntilChanged()) * .subscribe(console.log); * // Logs: 1, 2, 1, 3 * ``` * * With a `{@link distinctUntilChanged#comparator comparator}`, you can do custom comparisons. Let's say * you only want to emit a value when all of its components have * changed: * * ```ts * import { of, distinctUntilChanged } from 'rxjs'; * * const totallyDifferentBuilds$ = of( * { engineVersion: '1.1.0', transmissionVersion: '1.2.0' }, * { engineVersion: '1.1.0', transmissionVersion: '1.4.0' }, * { engineVersion: '1.3.0', transmissionVersion: '1.4.0' }, * { engineVersion: '1.3.0', transmissionVersion: '1.5.0' }, * { engineVersion: '2.0.0', transmissionVersion: '1.5.0' } * ).pipe( * distinctUntilChanged((prev, curr) => { * return ( * prev.engineVersion === curr.engineVersion || * prev.transmissionVersion === curr.transmissionVersion * ); * }) * ); * * totallyDifferentBuilds$.subscribe(console.log); * * // Logs: * // { engineVersion: '1.1.0', transmissionVersion: '1.2.0' } * // { engineVersion: '1.3.0', transmissionVersion: '1.4.0' } * // { engineVersion: '2.0.0', transmissionVersion: '1.5.0' } * ``` * * You can also provide a custom `{@link distinctUntilChanged#comparator comparator}` to check that emitted * changes are only in one direction. Let's say you only want to get * the next record temperature: * * ```ts * import { of, distinctUntilChanged } from 'rxjs'; * * const temps$ = of(30, 31, 20, 34, 33, 29, 35, 20); * * const recordHighs$ = temps$.pipe( * distinctUntilChanged((prevHigh, temp) => { * // If the current temp is less than * // or the same as the previous record, * // the record hasn't changed. * return temp <= prevHigh; * }) * ); * * recordHighs$.subscribe(console.log); * // Logs: 30, 31, 34, 35 * ``` * * Selecting update events only when the `updatedBy` field shows * the account changed hands. * * ```ts * import { of, distinctUntilChanged } from 'rxjs'; * * // A stream of updates to a given account * const accountUpdates$ = of( * { updatedBy: 'blesh', data: [] }, * { updatedBy: 'blesh', data: [] }, * { updatedBy: 'ncjamieson', data: [] }, * { updatedBy: 'ncjamieson', data: [] }, * { updatedBy: 'blesh', data: [] } * ); * * // We only want the events where it changed hands * const changedHands$ = accountUpdates$.pipe( * distinctUntilChanged(undefined, update => update.updatedBy) * ); * * changedHands$.subscribe(console.log); * // Logs: * // { updatedBy: 'blesh', data: Array[0] } * // { updatedBy: 'ncjamieson', data: Array[0] } * // { updatedBy: 'blesh', data: Array[0] } * ``` * * @see {@link distinct} * @see {@link distinctUntilKeyChanged} * * @param comparator A function used to compare the previous and current keys for * equality. Defaults to a `===` check. * @param keySelector Used to select a key value to be passed to the `comparator`. * * @return A function that returns an Observable that emits items from the * source Observable with distinct values. */ export function distinctUntilChanged( comparator?: (previous: K, current: K) => boolean, keySelector: (value: T) => K = identity as (value: T) => K ): MonoTypeOperatorFunction { // We've been allowing `null` do be passed as the `compare`, so we can't do // a default value for the parameter, because that will only work // for `undefined`. comparator = comparator ?? defaultCompare; return operate((source, subscriber) => { // The previous key, used to compare against keys selected // from new arrivals to determine "distinctiveness". let previousKey: K; // Whether or not this is the first value we've gotten. let first = true; source.subscribe( createOperatorSubscriber(subscriber, (value) => { // We always call the key selector. const currentKey = keySelector(value); // If it's the first value, we always emit it. // Otherwise, we compare this key to the previous key, and // if the comparer returns false, we emit. if (first || !comparator!(previousKey, currentKey)) { // Update our state *before* we emit the value // as emission can be the source of re-entrant code // in functional libraries like this. We only really // need to do this if it's the first value, or if the // key we're tracking in previous needs to change. first = false; previousKey = currentKey; // Emit the value! subscriber.next(value); } }) ); }); } function defaultCompare(a: any, b: any) { return a === b; } rxjs-7.5.7/src/internal/operators/distinctUntilKeyChanged.ts000066400000000000000000000047421431412030200242660ustar00rootroot00000000000000import { distinctUntilChanged } from './distinctUntilChanged'; import { MonoTypeOperatorFunction } from '../types'; /* tslint:disable:max-line-length */ export function distinctUntilKeyChanged(key: keyof T): MonoTypeOperatorFunction; export function distinctUntilKeyChanged(key: K, compare: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction; /* tslint:enable:max-line-length */ /** * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item, * using a property accessed by using the key provided to check if the two items are distinct. * * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted. * * If a comparator function is not provided, an equality check is used by default. * * ## Examples * * An example comparing the name of persons * * ```ts * import { of, distinctUntilKeyChanged } from 'rxjs'; * * of( * { age: 4, name: 'Foo' }, * { age: 7, name: 'Bar' }, * { age: 5, name: 'Foo' }, * { age: 6, name: 'Foo' } * ).pipe( * distinctUntilKeyChanged('name') * ) * .subscribe(x => console.log(x)); * * // displays: * // { age: 4, name: 'Foo' } * // { age: 7, name: 'Bar' } * // { age: 5, name: 'Foo' } * ``` * * An example comparing the first letters of the name * * ```ts * import { of, distinctUntilKeyChanged } from 'rxjs'; * * of( * { age: 4, name: 'Foo1' }, * { age: 7, name: 'Bar' }, * { age: 5, name: 'Foo2' }, * { age: 6, name: 'Foo3' } * ).pipe( * distinctUntilKeyChanged('name', (x, y) => x.substring(0, 3) === y.substring(0, 3)) * ) * .subscribe(x => console.log(x)); * * // displays: * // { age: 4, name: 'Foo1' } * // { age: 7, name: 'Bar' } * // { age: 5, name: 'Foo2' } * ``` * * @see {@link distinct} * @see {@link distinctUntilChanged} * * @param {string} key String key for object property lookup on each item. * @param {function} [compare] Optional comparison function called to test if an item is distinct from the previous item in the source. * @return A function that returns an Observable that emits items from the * source Observable with distinct values based on the key specified. */ export function distinctUntilKeyChanged(key: K, compare?: (x: T[K], y: T[K]) => boolean): MonoTypeOperatorFunction { return distinctUntilChanged((x: T, y: T) => compare ? compare(x[key], y[key]) : x[key] === y[key]); } rxjs-7.5.7/src/internal/operators/elementAt.ts000066400000000000000000000046431431412030200214240ustar00rootroot00000000000000import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError'; import { Observable } from '../Observable'; import { OperatorFunction } from '../types'; import { filter } from './filter'; import { throwIfEmpty } from './throwIfEmpty'; import { defaultIfEmpty } from './defaultIfEmpty'; import { take } from './take'; /** * Emits the single value at the specified `index` in a sequence of emissions * from the source Observable. * * Emits only the i-th value, then completes. * * ![](elementAt.png) * * `elementAt` returns an Observable that emits the item at the specified * `index` in the source Observable, or a default value if that `index` is out * of range and the `default` argument is provided. If the `default` argument is * not given and the `index` is out of range, the output Observable will emit an * `ArgumentOutOfRangeError` error. * * ## Example * * Emit only the third click event * * ```ts * import { fromEvent, elementAt } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(elementAt(2)); * result.subscribe(x => console.log(x)); * * // Results in: * // click 1 = nothing * // click 2 = nothing * // click 3 = MouseEvent object logged to console * ``` * * @see {@link first} * @see {@link last} * @see {@link skip} * @see {@link single} * @see {@link take} * * @throws {ArgumentOutOfRangeError} When using `elementAt(i)`, it delivers an * ArgumentOutOfRangeError to the Observer's `error` callback if `i < 0` or the * Observable has completed before emitting the i-th `next` notification. * * @param {number} index Is the number `i` for the i-th source emission that has * happened since the subscription, starting from the number `0`. * @param {T} [defaultValue] The default value returned for missing indices. * @return A function that returns an Observable that emits a single item, if * it is found. Otherwise, it will emit the default value if given. If not, it * emits an error. */ export function elementAt(index: number, defaultValue?: D): OperatorFunction { if (index < 0) { throw new ArgumentOutOfRangeError(); } const hasDefaultValue = arguments.length >= 2; return (source: Observable) => source.pipe( filter((v, i) => i === index), take(1), hasDefaultValue ? defaultIfEmpty(defaultValue!) : throwIfEmpty(() => new ArgumentOutOfRangeError()) ); } rxjs-7.5.7/src/internal/operators/endWith.ts000066400000000000000000000050101431412030200210750ustar00rootroot00000000000000/** prettier */ import { Observable } from '../Observable'; import { concat } from '../observable/concat'; import { of } from '../observable/of'; import { MonoTypeOperatorFunction, SchedulerLike, OperatorFunction, ValueFromArray } from '../types'; /** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `concatAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */ export function endWith(scheduler: SchedulerLike): MonoTypeOperatorFunction; /** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `concatAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */ export function endWith( ...valuesAndScheduler: [...A, SchedulerLike] ): OperatorFunction>; export function endWith(...values: A): OperatorFunction>; /** * Returns an observable that will emit all values from the source, then synchronously emit * the provided value(s) immediately after the source completes. * * NOTE: Passing a last argument of a Scheduler is _deprecated_, and may result in incorrect * types in TypeScript. * * This is useful for knowing when an observable ends. Particularly when paired with an * operator like {@link takeUntil} * * ![](endWith.png) * * ## Example * * Emit values to know when an interval starts and stops. The interval will * stop when a user clicks anywhere on the document. * * ```ts * import { interval, map, fromEvent, startWith, takeUntil, endWith } from 'rxjs'; * * const ticker$ = interval(5000).pipe( * map(() => 'tick') * ); * * const documentClicks$ = fromEvent(document, 'click'); * * ticker$.pipe( * startWith('interval started'), * takeUntil(documentClicks$), * endWith('interval ended by click') * ) * .subscribe(x => console.log(x)); * * // Result (assuming a user clicks after 15 seconds) * // 'interval started' * // 'tick' * // 'tick' * // 'tick' * // 'interval ended by click' * ``` * * @see {@link startWith} * @see {@link concat} * @see {@link takeUntil} * * @param values Items you want the modified Observable to emit last. * @return A function that returns an Observable that emits all values from the * source, then synchronously emits the provided value(s) immediately after the * source completes. */ export function endWith(...values: Array): MonoTypeOperatorFunction { return (source: Observable) => concat(source, of(...values)) as Observable; } rxjs-7.5.7/src/internal/operators/every.ts000066400000000000000000000046471431412030200206440ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Falsy, OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; export function every(predicate: BooleanConstructor): OperatorFunction extends never ? false : boolean>; /** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */ export function every( predicate: BooleanConstructor, thisArg: any ): OperatorFunction extends never ? false : boolean>; /** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */ export function every( predicate: (this: A, value: T, index: number, source: Observable) => boolean, thisArg: A ): OperatorFunction; export function every(predicate: (value: T, index: number, source: Observable) => boolean): OperatorFunction; /** * Returns an Observable that emits whether or not every item of the source satisfies the condition specified. * * If all values pass predicate before the source completes, emits true before completion, * otherwise emit false, then complete. * * ![](every.png) * * ## Example * * A simple example emitting true if all elements are less than 5, false otherwise * * ```ts * import { of, every } from 'rxjs'; * * of(1, 2, 3, 4, 5, 6) * .pipe(every(x => x < 5)) * .subscribe(x => console.log(x)); // -> false * ``` * * @param {function} predicate A function for determining if an item meets a specified condition. * @param {any} [thisArg] Optional object to use for `this` in the callback. * @return A function that returns an Observable of booleans that determines if * all items of the source Observable meet the condition specified. */ export function every( predicate: (value: T, index: number, source: Observable) => boolean, thisArg?: any ): OperatorFunction { return operate((source, subscriber) => { let index = 0; source.subscribe( createOperatorSubscriber( subscriber, (value) => { if (!predicate.call(thisArg, value, index++, source)) { subscriber.next(false); subscriber.complete(); } }, () => { subscriber.next(true); subscriber.complete(); } ) ); }); } rxjs-7.5.7/src/internal/operators/exhaust.ts000066400000000000000000000002341431412030200211570ustar00rootroot00000000000000import { exhaustAll } from './exhaustAll'; /** * @deprecated Renamed to {@link exhaustAll}. Will be removed in v8. */ export const exhaust = exhaustAll; rxjs-7.5.7/src/internal/operators/exhaustAll.ts000066400000000000000000000036771431412030200216260ustar00rootroot00000000000000import { OperatorFunction, ObservableInput, ObservedValueOf } from '../types'; import { exhaustMap } from './exhaustMap'; import { identity } from '../util/identity'; /** * Converts a higher-order Observable into a first-order Observable by dropping * inner Observables while the previous inner Observable has not yet completed. * * Flattens an Observable-of-Observables by dropping the * next inner Observables while the current inner is still executing. * * ![](exhaust.png) * * `exhaustAll` subscribes to an Observable that emits Observables, also known as a * higher-order Observable. Each time it observes one of these emitted inner * Observables, the output Observable begins emitting the items emitted by that * inner Observable. So far, it behaves like {@link mergeAll}. However, * `exhaustAll` ignores every new inner Observable if the previous Observable has * not yet completed. Once that one completes, it will accept and flatten the * next inner Observable and repeat this process. * * ## Example * * Run a finite timer for each click, only if there is no currently active timer * * ```ts * import { fromEvent, map, interval, take, exhaustAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const higherOrder = clicks.pipe( * map(() => interval(1000).pipe(take(5))) * ); * const result = higherOrder.pipe(exhaustAll()); * result.subscribe(x => console.log(x)); * ``` * * @see {@link combineLatestAll} * @see {@link concatAll} * @see {@link switchAll} * @see {@link switchMap} * @see {@link mergeAll} * @see {@link exhaustMap} * @see {@link zipAll} * * @return A function that returns an Observable that takes a source of * Observables and propagates the first Observable exclusively until it * completes before subscribing to the next. */ export function exhaustAll>(): OperatorFunction> { return exhaustMap(identity); } rxjs-7.5.7/src/internal/operators/exhaustMap.ts000066400000000000000000000101441431412030200216160ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Subscriber } from '../Subscriber'; import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; import { map } from './map'; import { innerFrom } from '../observable/innerFrom'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /* tslint:disable:max-line-length */ export function exhaustMap>( project: (value: T, index: number) => O ): OperatorFunction>; /** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */ export function exhaustMap>( project: (value: T, index: number) => O, resultSelector: undefined ): OperatorFunction>; /** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */ export function exhaustMap( project: (value: T, index: number) => ObservableInput, resultSelector: (outerValue: T, innerValue: I, outerIndex: number, innerIndex: number) => R ): OperatorFunction; /* tslint:enable:max-line-length */ /** * Projects each source value to an Observable which is merged in the output * Observable only if the previous projected Observable has completed. * * Maps each value to an Observable, then flattens all of * these inner Observables using {@link exhaust}. * * ![](exhaustMap.png) * * Returns an Observable that emits items based on applying a function that you * supply to each item emitted by the source Observable, where that function * returns an (so-called "inner") Observable. When it projects a source value to * an Observable, the output Observable begins emitting the items emitted by * that projected Observable. However, `exhaustMap` ignores every new projected * Observable if the previous projected Observable has not yet completed. Once * that one completes, it will accept and flatten the next projected Observable * and repeat this process. * * ## Example * * Run a finite timer for each click, only if there is no currently active timer * * ```ts * import { fromEvent, exhaustMap, interval, take } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe( * exhaustMap(() => interval(1000).pipe(take(5))) * ); * result.subscribe(x => console.log(x)); * ``` * * @see {@link concatMap} * @see {@link exhaust} * @see {@link mergeMap} * @see {@link switchMap} * * @param {function(value: T, ?index: number): ObservableInput} project A function * that, when applied to an item emitted by the source Observable, returns an * Observable. * @return A function that returns an Observable containing projected * Observables of each item of the source, ignoring projected Observables that * start before their preceding Observable has completed. */ export function exhaustMap>( project: (value: T, index: number) => O, resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R ): OperatorFunction | R> { if (resultSelector) { // DEPRECATED PATH return (source: Observable) => source.pipe(exhaustMap((a, i) => innerFrom(project(a, i)).pipe(map((b: any, ii: any) => resultSelector(a, b, i, ii))))); } return operate((source, subscriber) => { let index = 0; let innerSub: Subscriber | null = null; let isComplete = false; source.subscribe( createOperatorSubscriber( subscriber, (outerValue) => { if (!innerSub) { innerSub = createOperatorSubscriber(subscriber, undefined, () => { innerSub = null; isComplete && subscriber.complete(); }); innerFrom(project(outerValue, index++)).subscribe(innerSub); } }, () => { isComplete = true; !innerSub && subscriber.complete(); } ) ); }); } rxjs-7.5.7/src/internal/operators/expand.ts000066400000000000000000000071301431412030200207570ustar00rootroot00000000000000import { OperatorFunction, ObservableInput, ObservedValueOf, SchedulerLike } from '../types'; import { operate } from '../util/lift'; import { mergeInternals } from './mergeInternals'; /* tslint:disable:max-line-length */ export function expand>( project: (value: T, index: number) => O, concurrent?: number, scheduler?: SchedulerLike ): OperatorFunction>; /** * @deprecated The `scheduler` parameter will be removed in v8. If you need to schedule the inner subscription, * use `subscribeOn` within the projection function: `expand((value) => fn(value).pipe(subscribeOn(scheduler)))`. * Details: Details: https://rxjs.dev/deprecations/scheduler-argument */ export function expand>( project: (value: T, index: number) => O, concurrent: number | undefined, scheduler: SchedulerLike ): OperatorFunction>; /* tslint:enable:max-line-length */ /** * Recursively projects each source value to an Observable which is merged in * the output Observable. * * It's similar to {@link mergeMap}, but applies the * projection function to every source value as well as every output value. * It's recursive. * * ![](expand.png) * * Returns an Observable that emits items based on applying a function that you * supply to each item emitted by the source Observable, where that function * returns an Observable, and then merging those resulting Observables and * emitting the results of this merger. *Expand* will re-emit on the output * Observable every source value. Then, each output value is given to the * `project` function which returns an inner Observable to be merged on the * output Observable. Those output values resulting from the projection are also * given to the `project` function to produce new output values. This is how * *expand* behaves recursively. * * ## Example * * Start emitting the powers of two on every click, at most 10 of them * * ```ts * import { fromEvent, map, expand, of, delay, take } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const powersOfTwo = clicks.pipe( * map(() => 1), * expand(x => of(2 * x).pipe(delay(1000))), * take(10) * ); * powersOfTwo.subscribe(x => console.log(x)); * ``` * * @see {@link mergeMap} * @see {@link mergeScan} * * @param {function(value: T, index: number) => Observable} project A function * that, when applied to an item emitted by the source or the output Observable, * returns an Observable. * @param {number} [concurrent=Infinity] Maximum number of input * Observables being subscribed to concurrently. * @param {SchedulerLike} [scheduler=null] The {@link SchedulerLike} to use for subscribing to * each projected inner Observable. * @return A function that returns an Observable that emits the source values * and also result of applying the projection function to each value emitted on * the output Observable and merging the results of the Observables obtained * from this transformation. */ export function expand>( project: (value: T, index: number) => O, concurrent = Infinity, scheduler?: SchedulerLike ): OperatorFunction> { concurrent = (concurrent || 0) < 1 ? Infinity : concurrent; return operate((source, subscriber) => mergeInternals( // General merge params source, subscriber, project, concurrent, // onBeforeNext undefined, // Expand-specific true, // Use expand path scheduler // Inner subscription scheduler ) ); } rxjs-7.5.7/src/internal/operators/filter.ts000066400000000000000000000067151431412030200207750ustar00rootroot00000000000000import { OperatorFunction, MonoTypeOperatorFunction, TruthyTypesOf } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */ export function filter(predicate: (this: A, value: T, index: number) => value is S, thisArg: A): OperatorFunction; export function filter(predicate: (value: T, index: number) => value is S): OperatorFunction; export function filter(predicate: BooleanConstructor): OperatorFunction>; /** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */ export function filter(predicate: (this: A, value: T, index: number) => boolean, thisArg: A): MonoTypeOperatorFunction; export function filter(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction; /** * Filter items emitted by the source Observable by only emitting those that * satisfy a specified predicate. * * Like * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter), * it only emits a value from the source if it passes a criterion function. * * ![](filter.png) * * Similar to the well-known `Array.prototype.filter` method, this operator * takes values from the source Observable, passes them through a `predicate` * function and only emits those values that yielded `true`. * * ## Example * * Emit only click events whose target was a DIV element * * ```ts * import { fromEvent, filter } from 'rxjs'; * * const div = document.createElement('div'); * div.style.cssText = 'width: 200px; height: 200px; background: #09c;'; * document.body.appendChild(div); * * const clicks = fromEvent(document, 'click'); * const clicksOnDivs = clicks.pipe(filter(ev => (ev.target).tagName === 'DIV')); * clicksOnDivs.subscribe(x => console.log(x)); * ``` * * @see {@link distinct} * @see {@link distinctUntilChanged} * @see {@link distinctUntilKeyChanged} * @see {@link ignoreElements} * @see {@link partition} * @see {@link skip} * * @param predicate A function that * evaluates each value emitted by the source Observable. If it returns `true`, * the value is emitted, if `false` the value is not passed to the output * Observable. The `index` parameter is the number `i` for the i-th source * emission that has happened since the subscription, starting from the number * `0`. * @param thisArg An optional argument to determine the value of `this` * in the `predicate` function. * @return A function that returns an Observable that emits items from the * source Observable that satisfy the specified `predicate`. */ export function filter(predicate: (value: T, index: number) => boolean, thisArg?: any): MonoTypeOperatorFunction { return operate((source, subscriber) => { // An index passed to our predicate function on each call. let index = 0; // Subscribe to the source, all errors and completions are // forwarded to the consumer. source.subscribe( // Call the predicate with the appropriate `this` context, // if the predicate returns `true`, then send the value // to the consumer. createOperatorSubscriber(subscriber, (value) => predicate.call(thisArg, value, index++) && subscriber.next(value)) ); }); } rxjs-7.5.7/src/internal/operators/finalize.ts000066400000000000000000000042511431412030200213020ustar00rootroot00000000000000import { MonoTypeOperatorFunction } from '../types'; import { operate } from '../util/lift'; /** * Returns an Observable that mirrors the source Observable, but will call a specified function when * the source terminates on complete or error. * The specified function will also be called when the subscriber explicitly unsubscribes. * * ## Examples * * Execute callback function when the observable completes * * ```ts * import { interval, take, finalize } from 'rxjs'; * * // emit value in sequence every 1 second * const source = interval(1000); * const example = source.pipe( * take(5), //take only the first 5 values * finalize(() => console.log('Sequence complete')) // Execute when the observable completes * ); * const subscribe = example.subscribe(val => console.log(val)); * * // results: * // 0 * // 1 * // 2 * // 3 * // 4 * // 'Sequence complete' * ``` * * Execute callback function when the subscriber explicitly unsubscribes * * ```ts * import { interval, finalize, tap, noop, timer } from 'rxjs'; * * const source = interval(100).pipe( * finalize(() => console.log('[finalize] Called')), * tap({ * next: () => console.log('[next] Called'), * error: () => console.log('[error] Not called'), * complete: () => console.log('[tap complete] Not called') * }) * ); * * const sub = source.subscribe({ * next: x => console.log(x), * error: noop, * complete: () => console.log('[complete] Not called') * }); * * timer(150).subscribe(() => sub.unsubscribe()); * * // results: * // '[next] Called' * // 0 * // '[finalize] Called' * ``` * * @param {function} callback Function to be called when source terminates. * @return A function that returns an Observable that mirrors the source, but * will call the specified function on termination. */ export function finalize(callback: () => void): MonoTypeOperatorFunction { return operate((source, subscriber) => { // TODO: This try/finally was only added for `useDeprecatedSynchronousErrorHandling`. // REMOVE THIS WHEN THAT HOT GARBAGE IS REMOVED IN V8. try { source.subscribe(subscriber); } finally { subscriber.add(callback); } }); } rxjs-7.5.7/src/internal/operators/find.ts000066400000000000000000000070651431412030200204270ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Subscriber } from '../Subscriber'; import { OperatorFunction, TruthyTypesOf } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; export function find(predicate: BooleanConstructor): OperatorFunction>; /** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */ export function find( predicate: (this: A, value: T, index: number, source: Observable) => value is S, thisArg: A ): OperatorFunction; export function find( predicate: (value: T, index: number, source: Observable) => value is S ): OperatorFunction; /** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */ export function find( predicate: (this: A, value: T, index: number, source: Observable) => boolean, thisArg: A ): OperatorFunction; export function find(predicate: (value: T, index: number, source: Observable) => boolean): OperatorFunction; /** * Emits only the first value emitted by the source Observable that meets some * condition. * * Finds the first value that passes some test and emits * that. * * ![](find.png) * * `find` searches for the first item in the source Observable that matches the * specified condition embodied by the `predicate`, and returns the first * occurrence in the source. Unlike {@link first}, the `predicate` is required * in `find`, and does not emit an error if a valid value is not found * (emits `undefined` instead). * * ## Example * * Find and emit the first click that happens on a DIV element * * ```ts * import { fromEvent, find } from 'rxjs'; * * const div = document.createElement('div'); * div.style.cssText = 'width: 200px; height: 200px; background: #09c;'; * document.body.appendChild(div); * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(find(ev => (ev.target).tagName === 'DIV')); * result.subscribe(x => console.log(x)); * ``` * * @see {@link filter} * @see {@link first} * @see {@link findIndex} * @see {@link take} * * @param {function(value: T, index: number, source: Observable): boolean} predicate * A function called with each item to test for condition matching. * @param {any} [thisArg] An optional argument to determine the value of `this` * in the `predicate` function. * @return A function that returns an Observable that emits the first item that * matches the condition. */ export function find( predicate: (value: T, index: number, source: Observable) => boolean, thisArg?: any ): OperatorFunction { return operate(createFind(predicate, thisArg, 'value')); } export function createFind( predicate: (value: T, index: number, source: Observable) => boolean, thisArg: any, emit: 'value' | 'index' ) { const findIndex = emit === 'index'; return (source: Observable, subscriber: Subscriber) => { let index = 0; source.subscribe( createOperatorSubscriber( subscriber, (value) => { const i = index++; if (predicate.call(thisArg, value, i, source)) { subscriber.next(findIndex ? i : value); subscriber.complete(); } }, () => { subscriber.next(findIndex ? -1 : undefined); subscriber.complete(); } ) ); }; } rxjs-7.5.7/src/internal/operators/findIndex.ts000066400000000000000000000052521431412030200214130ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Falsy, OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createFind } from './find'; export function findIndex(predicate: BooleanConstructor): OperatorFunction; /** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */ export function findIndex(predicate: BooleanConstructor, thisArg: any): OperatorFunction; /** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */ export function findIndex( predicate: (this: A, value: T, index: number, source: Observable) => boolean, thisArg: A ): OperatorFunction; export function findIndex(predicate: (value: T, index: number, source: Observable) => boolean): OperatorFunction; /** * Emits only the index of the first value emitted by the source Observable that * meets some condition. * * It's like {@link find}, but emits the index of the * found value, not the value itself. * * ![](findIndex.png) * * `findIndex` searches for the first item in the source Observable that matches * the specified condition embodied by the `predicate`, and returns the * (zero-based) index of the first occurrence in the source. Unlike * {@link first}, the `predicate` is required in `findIndex`, and does not emit * an error if a valid value is not found. * * ## Example * * Emit the index of first click that happens on a DIV element * * ```ts * import { fromEvent, findIndex } from 'rxjs'; * * const div = document.createElement('div'); * div.style.cssText = 'width: 200px; height: 200px; background: #09c;'; * document.body.appendChild(div); * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(findIndex(ev => (ev.target).tagName === 'DIV')); * result.subscribe(x => console.log(x)); * ``` * * @see {@link filter} * @see {@link find} * @see {@link first} * @see {@link take} * * @param {function(value: T, index: number, source: Observable): boolean} predicate * A function called with each item to test for condition matching. * @param {any} [thisArg] An optional argument to determine the value of `this` * in the `predicate` function. * @return A function that returns an Observable that emits the index of the * first item that matches the condition. */ export function findIndex( predicate: (value: T, index: number, source: Observable) => boolean, thisArg?: any ): OperatorFunction { return operate(createFind(predicate, thisArg, 'index')); } rxjs-7.5.7/src/internal/operators/first.ts000066400000000000000000000070441431412030200206330ustar00rootroot00000000000000import { Observable } from '../Observable'; import { EmptyError } from '../util/EmptyError'; import { OperatorFunction, TruthyTypesOf } from '../types'; import { filter } from './filter'; import { take } from './take'; import { defaultIfEmpty } from './defaultIfEmpty'; import { throwIfEmpty } from './throwIfEmpty'; import { identity } from '../util/identity'; export function first(predicate?: null, defaultValue?: D): OperatorFunction; export function first(predicate: BooleanConstructor): OperatorFunction>; export function first(predicate: BooleanConstructor, defaultValue: D): OperatorFunction | D>; export function first( predicate: (value: T, index: number, source: Observable) => value is S, defaultValue?: S ): OperatorFunction; export function first( predicate: (value: T, index: number, source: Observable) => value is S, defaultValue: D ): OperatorFunction; export function first( predicate: (value: T, index: number, source: Observable) => boolean, defaultValue?: D ): OperatorFunction; /** * Emits only the first value (or the first value that meets some condition) * emitted by the source Observable. * * Emits only the first value. Or emits only the first * value that passes some test. * * ![](first.png) * * If called with no arguments, `first` emits the first value of the source * Observable, then completes. If called with a `predicate` function, `first` * emits the first value of the source that matches the specified condition. Throws an error if * `defaultValue` was not provided and a matching element is not found. * * ## Examples * * Emit only the first click that happens on the DOM * * ```ts * import { fromEvent, first } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(first()); * result.subscribe(x => console.log(x)); * ``` * * Emits the first click that happens on a DIV * * ```ts * import { fromEvent, first } from 'rxjs'; * * const div = document.createElement('div'); * div.style.cssText = 'width: 200px; height: 200px; background: #09c;'; * document.body.appendChild(div); * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(first(ev => (ev.target).tagName === 'DIV')); * result.subscribe(x => console.log(x)); * ``` * * @see {@link filter} * @see {@link find} * @see {@link take} * * @throws {EmptyError} Delivers an EmptyError to the Observer's `error` * callback if the Observable completes before any `next` notification was sent. * This is how `first()` is different from {@link take}(1) which completes instead. * * @param {function(value: T, index: number, source: Observable): boolean} [predicate] * An optional function called with each item to test for condition matching. * @param {D} [defaultValue] The default value emitted in case no valid value * was found on the source. * @return A function that returns an Observable that emits the first item that * matches the condition. */ export function first( predicate?: ((value: T, index: number, source: Observable) => boolean) | null, defaultValue?: D ): OperatorFunction { const hasDefaultValue = arguments.length >= 2; return (source: Observable) => source.pipe( predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue!) : throwIfEmpty(() => new EmptyError()) ); } rxjs-7.5.7/src/internal/operators/flatMap.ts000066400000000000000000000002241431412030200210610ustar00rootroot00000000000000import { mergeMap } from './mergeMap'; /** * @deprecated Renamed to {@link mergeMap}. Will be removed in v8. */ export const flatMap = mergeMap; rxjs-7.5.7/src/internal/operators/groupBy.ts000066400000000000000000000260111431412030200211260ustar00rootroot00000000000000import { Observable } from '../Observable'; import { innerFrom } from '../observable/innerFrom'; import { Subject } from '../Subject'; import { ObservableInput, Observer, OperatorFunction, SubjectLike } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber, OperatorSubscriber } from './OperatorSubscriber'; export interface BasicGroupByOptions { element?: undefined; duration?: (grouped: GroupedObservable) => ObservableInput; connector?: () => SubjectLike; } export interface GroupByOptionsWithElement { element: (value: T) => E; duration?: (grouped: GroupedObservable) => ObservableInput; connector?: () => SubjectLike; } export function groupBy(key: (value: T) => K, options: BasicGroupByOptions): OperatorFunction>; export function groupBy( key: (value: T) => K, options: GroupByOptionsWithElement ): OperatorFunction>; export function groupBy( key: (value: T) => value is K ): OperatorFunction | GroupedObservable>>; export function groupBy(key: (value: T) => K): OperatorFunction>; /** * @deprecated use the options parameter instead. */ export function groupBy( key: (value: T) => K, element: void, duration: (grouped: GroupedObservable) => Observable ): OperatorFunction>; /** * @deprecated use the options parameter instead. */ export function groupBy( key: (value: T) => K, element?: (value: T) => R, duration?: (grouped: GroupedObservable) => Observable ): OperatorFunction>; /** * Groups the items emitted by an Observable according to a specified criterion, * and emits these grouped items as `GroupedObservables`, one * {@link GroupedObservable} per group. * * ![](groupBy.png) * * When the Observable emits an item, a key is computed for this item with the key function. * * If a {@link GroupedObservable} for this key exists, this {@link GroupedObservable} emits. Otherwise, a new * {@link GroupedObservable} for this key is created and emits. * * A {@link GroupedObservable} represents values belonging to the same group represented by a common key. The common * key is available as the `key` field of a {@link GroupedObservable} instance. * * The elements emitted by {@link GroupedObservable}s are by default the items emitted by the Observable, or elements * returned by the element function. * * ## Examples * * Group objects by `id` and return as array * * ```ts * import { of, groupBy, mergeMap, reduce } from 'rxjs'; * * of( * { id: 1, name: 'JavaScript' }, * { id: 2, name: 'Parcel' }, * { id: 2, name: 'webpack' }, * { id: 1, name: 'TypeScript' }, * { id: 3, name: 'TSLint' } * ).pipe( * groupBy(p => p.id), * mergeMap(group$ => group$.pipe(reduce((acc, cur) => [...acc, cur], []))) * ) * .subscribe(p => console.log(p)); * * // displays: * // [{ id: 1, name: 'JavaScript' }, { id: 1, name: 'TypeScript'}] * // [{ id: 2, name: 'Parcel' }, { id: 2, name: 'webpack'}] * // [{ id: 3, name: 'TSLint' }] * ``` * * Pivot data on the `id` field * * ```ts * import { of, groupBy, mergeMap, reduce, map } from 'rxjs'; * * of( * { id: 1, name: 'JavaScript' }, * { id: 2, name: 'Parcel' }, * { id: 2, name: 'webpack' }, * { id: 1, name: 'TypeScript' }, * { id: 3, name: 'TSLint' } * ).pipe( * groupBy(p => p.id, { element: p => p.name }), * mergeMap(group$ => group$.pipe(reduce((acc, cur) => [...acc, cur], [`${ group$.key }`]))), * map(arr => ({ id: parseInt(arr[0], 10), values: arr.slice(1) })) * ) * .subscribe(p => console.log(p)); * * // displays: * // { id: 1, values: [ 'JavaScript', 'TypeScript' ] } * // { id: 2, values: [ 'Parcel', 'webpack' ] } * // { id: 3, values: [ 'TSLint' ] } * ``` * * @param key A function that extracts the key * for each item. * @param element A function that extracts the * return element for each item. * @param duration * A function that returns an Observable to determine how long each group should * exist. * @param connector Factory function to create an * intermediate Subject through which grouped elements are emitted. * @return A function that returns an Observable that emits GroupedObservables, * each of which corresponds to a unique key value and each of which emits * those items from the source Observable that share that key value. * * @deprecated Use the options parameter instead. */ export function groupBy( key: (value: T) => K, element?: (value: T) => R, duration?: (grouped: GroupedObservable) => Observable, connector?: () => Subject ): OperatorFunction>; // Impl export function groupBy( keySelector: (value: T) => K, elementOrOptions?: ((value: any) => any) | void | BasicGroupByOptions | GroupByOptionsWithElement, duration?: (grouped: GroupedObservable) => ObservableInput, connector?: () => SubjectLike ): OperatorFunction> { return operate((source, subscriber) => { let element: ((value: any) => any) | void; if (!elementOrOptions || typeof elementOrOptions === 'function') { element = elementOrOptions as ((value: any) => any); } else { ({ duration, element, connector } = elementOrOptions); } // A lookup for the groups that we have so far. const groups = new Map>(); // Used for notifying all groups and the subscriber in the same way. const notify = (cb: (group: Observer) => void) => { groups.forEach(cb); cb(subscriber); }; // Used to handle errors from the source, AND errors that occur during the // next call from the source. const handleError = (err: any) => notify((consumer) => consumer.error(err)); // The number of actively subscribed groups let activeGroups = 0; // Whether or not teardown was attempted on this subscription. let teardownAttempted = false; // Capturing a reference to this, because we need a handle to it // in `createGroupedObservable` below. This is what we use to // subscribe to our source observable. This sometimes needs to be unsubscribed // out-of-band with our `subscriber` which is the downstream subscriber, or destination, // in cases where a user unsubscribes from the main resulting subscription, but // still has groups from this subscription subscribed and would expect values from it // Consider: `source.pipe(groupBy(fn), take(2))`. const groupBySourceSubscriber = new OperatorSubscriber( subscriber, (value: T) => { // Because we have to notify all groups of any errors that occur in here, // we have to add our own try/catch to ensure that those errors are propagated. // OperatorSubscriber will only send the error to the main subscriber. try { const key = keySelector(value); let group = groups.get(key); if (!group) { // Create our group subject groups.set(key, (group = connector ? connector() : new Subject())); // Emit the grouped observable. Note that we can't do a simple `asObservable()` here, // because the grouped observable has special semantics around reference counting // to ensure we don't sever our connection to the source prematurely. const grouped = createGroupedObservable(key, group); subscriber.next(grouped); if (duration) { const durationSubscriber = createOperatorSubscriber( // Providing the group here ensures that it is disposed of -- via `unsubscribe` -- // when the duration subscription is torn down. That is important, because then // if someone holds a handle to the grouped observable and tries to subscribe to it // after the connection to the source has been severed, they will get an // `ObjectUnsubscribedError` and know they can't possibly get any notifications. group as any, () => { // Our duration notified! We can complete the group. // The group will be removed from the map in the finalization phase. group!.complete(); durationSubscriber?.unsubscribe(); }, // Completions are also sent to the group, but just the group. undefined, // Errors on the duration subscriber are sent to the group // but only the group. They are not sent to the main subscription. undefined, // Finalization: Remove this group from our map. () => groups.delete(key) ); // Start our duration notifier. groupBySourceSubscriber.add(innerFrom(duration(grouped)).subscribe(durationSubscriber)); } } // Send the value to our group. group.next(element ? element(value) : value); } catch (err) { handleError(err); } }, // Source completes. () => notify((consumer) => consumer.complete()), // Error from the source. handleError, // Free up memory. // When the source subscription is _finally_ torn down, release the subjects and keys // in our groups Map, they may be quite large and we don't want to keep them around if we // don't have to. () => groups.clear(), () => { teardownAttempted = true; // We only kill our subscription to the source if we have // no active groups. As stated above, consider this scenario: // source$.pipe(groupBy(fn), take(2)). return activeGroups === 0; } ); // Subscribe to the source source.subscribe(groupBySourceSubscriber); /** * Creates the actual grouped observable returned. * @param key The key of the group * @param groupSubject The subject that fuels the group */ function createGroupedObservable(key: K, groupSubject: SubjectLike) { const result: any = new Observable((groupSubscriber) => { activeGroups++; const innerSub = groupSubject.subscribe(groupSubscriber); return () => { innerSub.unsubscribe(); // We can kill the subscription to our source if we now have no more // active groups subscribed, and a finalization was already attempted on // the source. --activeGroups === 0 && teardownAttempted && groupBySourceSubscriber.unsubscribe(); }; }); result.key = key; return result; } }); } /** * An observable of values that is the emitted by the result of a {@link groupBy} operator, * contains a `key` property for the grouping. */ export interface GroupedObservable extends Observable { /** * The key value for the grouped notifications. */ readonly key: K; } rxjs-7.5.7/src/internal/operators/ignoreElements.ts000066400000000000000000000030341431412030200224570ustar00rootroot00000000000000import { OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { noop } from '../util/noop'; /** * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`. * * ![](ignoreElements.png) * * The `ignoreElements` operator suppresses all items emitted by the source Observable, * but allows its termination notification (either `error` or `complete`) to pass through unchanged. * * If you do not care about the items being emitted by an Observable, but you do want to be notified * when it completes or when it terminates with an error, you can apply the `ignoreElements` operator * to the Observable, which will ensure that it will never call its observers’ `next` handlers. * * ## Example * * Ignore all `next` emissions from the source * * ```ts * import { of, ignoreElements } from 'rxjs'; * * of('you', 'talking', 'to', 'me') * .pipe(ignoreElements()) * .subscribe({ * next: word => console.log(word), * error: err => console.log('error:', err), * complete: () => console.log('the end'), * }); * * // result: * // 'the end' * ``` * * @return A function that returns an empty Observable that only calls * `complete` or `error`, based on which one is called by the source * Observable. */ export function ignoreElements(): OperatorFunction { return operate((source, subscriber) => { source.subscribe(createOperatorSubscriber(subscriber, noop)); }); } rxjs-7.5.7/src/internal/operators/isEmpty.ts000066400000000000000000000041671431412030200211410ustar00rootroot00000000000000import { OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Emits `false` if the input Observable emits any values, or emits `true` if the * input Observable completes without emitting any values. * * Tells whether any values are emitted by an Observable. * * ![](isEmpty.png) * * `isEmpty` transforms an Observable that emits values into an Observable that * emits a single boolean value representing whether or not any values were * emitted by the source Observable. As soon as the source Observable emits a * value, `isEmpty` will emit a `false` and complete. If the source Observable * completes having not emitted anything, `isEmpty` will emit a `true` and * complete. * * A similar effect could be achieved with {@link count}, but `isEmpty` can emit * a `false` value sooner. * * ## Examples * * Emit `false` for a non-empty Observable * * ```ts * import { Subject, isEmpty } from 'rxjs'; * * const source = new Subject(); * const result = source.pipe(isEmpty()); * * source.subscribe(x => console.log(x)); * result.subscribe(x => console.log(x)); * * source.next('a'); * source.next('b'); * source.next('c'); * source.complete(); * * // Outputs * // 'a' * // false * // 'b' * // 'c' * ``` * * Emit `true` for an empty Observable * * ```ts * import { EMPTY, isEmpty } from 'rxjs'; * * const result = EMPTY.pipe(isEmpty()); * result.subscribe(x => console.log(x)); * * // Outputs * // true * ``` * * @see {@link count} * @see {@link EMPTY} * * @return A function that returns an Observable that emits boolean value * indicating whether the source Observable was empty or not. */ export function isEmpty(): OperatorFunction { return operate((source, subscriber) => { source.subscribe( createOperatorSubscriber( subscriber, () => { subscriber.next(false); subscriber.complete(); }, () => { subscriber.next(true); subscriber.complete(); } ) ); }); } rxjs-7.5.7/src/internal/operators/joinAllInternals.ts000066400000000000000000000025201431412030200227460ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ObservableInput, OperatorFunction } from '../types'; import { identity } from '../util/identity'; import { mapOneOrManyArgs } from '../util/mapOneOrManyArgs'; import { pipe } from '../util/pipe'; import { mergeMap } from './mergeMap'; import { toArray } from './toArray'; /** * Collects all of the inner sources from source observable. Then, once the * source completes, joins the values using the given static. * * This is used for {@link combineLatestAll} and {@link zipAll} which both have the * same behavior of collecting all inner observables, then operating on them. * * @param joinFn The type of static join to apply to the sources collected * @param project The projection function to apply to the values, if any */ export function joinAllInternals(joinFn: (sources: ObservableInput[]) => Observable, project?: (...args: any[]) => R) { return pipe( // Collect all inner sources into an array, and emit them when the // source completes. toArray() as OperatorFunction, ObservableInput[]>, // Run the join function on the collected array of inner sources. mergeMap((sources) => joinFn(sources)), // If a projection function was supplied, apply it to each result. project ? mapOneOrManyArgs(project) : (identity as any) ); } rxjs-7.5.7/src/internal/operators/last.ts000066400000000000000000000067321431412030200204520ustar00rootroot00000000000000import { Observable } from '../Observable'; import { EmptyError } from '../util/EmptyError'; import { OperatorFunction, TruthyTypesOf } from '../types'; import { filter } from './filter'; import { takeLast } from './takeLast'; import { throwIfEmpty } from './throwIfEmpty'; import { defaultIfEmpty } from './defaultIfEmpty'; import { identity } from '../util/identity'; export function last(predicate: BooleanConstructor): OperatorFunction>; export function last(predicate: BooleanConstructor, defaultValue: D): OperatorFunction | D>; export function last(predicate?: null, defaultValue?: D): OperatorFunction; export function last( predicate: (value: T, index: number, source: Observable) => value is S, defaultValue?: S ): OperatorFunction; export function last( predicate: (value: T, index: number, source: Observable) => boolean, defaultValue?: D ): OperatorFunction; /** * Returns an Observable that emits only the last item emitted by the source Observable. * It optionally takes a predicate function as a parameter, in which case, rather than emitting * the last item from the source Observable, the resulting Observable will emit the last item * from the source Observable that satisfies the predicate. * * ![](last.png) * * It will throw an error if the source completes without notification or one that matches the predicate. It * returns the last value or if a predicate is provided last value that matches the predicate. It returns the * given default value if no notification is emitted or matches the predicate. * * ## Examples * * Last alphabet from the sequence * * ```ts * import { from, last } from 'rxjs'; * * const source = from(['x', 'y', 'z']); * const result = source.pipe(last()); * * result.subscribe(value => console.log(`Last alphabet: ${ value }`)); * * // Outputs * // Last alphabet: z * ``` * * Default value when the value in the predicate is not matched * * ```ts * import { from, last } from 'rxjs'; * * const source = from(['x', 'y', 'z']); * const result = source.pipe(last(char => char === 'a', 'not found')); * * result.subscribe(value => console.log(`'a' is ${ value }.`)); * * // Outputs * // 'a' is not found. * ``` * * @see {@link skip} * @see {@link skipUntil} * @see {@link skipLast} * @see {@link skipWhile} * * @throws {EmptyError} Delivers an EmptyError to the Observer's `error` * callback if the Observable completes before any `next` notification was sent. * @param {function} [predicate] - The condition any source emitted item has to satisfy. * @param {any} [defaultValue] - An optional default value to provide if last * predicate isn't met or no values were emitted. * @return A function that returns an Observable that emits only the last item * satisfying the given condition from the source, or a NoSuchElementException * if no such items are emitted. * @throws - Throws if no items that match the predicate are emitted by the source Observable. */ export function last( predicate?: ((value: T, index: number, source: Observable) => boolean) | null, defaultValue?: D ): OperatorFunction { const hasDefaultValue = arguments.length >= 2; return (source: Observable) => source.pipe( predicate ? filter((v, i) => predicate(v, i, source)) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue!) : throwIfEmpty(() => new EmptyError()) ); } rxjs-7.5.7/src/internal/operators/map.ts000066400000000000000000000050351431412030200202570ustar00rootroot00000000000000import { OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; export function map(project: (value: T, index: number) => R): OperatorFunction; /** @deprecated Use a closure instead of a `thisArg`. Signatures accepting a `thisArg` will be removed in v8. */ export function map(project: (this: A, value: T, index: number) => R, thisArg: A): OperatorFunction; /** * Applies a given `project` function to each value emitted by the source * Observable, and emits the resulting values as an Observable. * * Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map), * it passes each source value through a transformation function to get * corresponding output values. * * ![](map.png) * * Similar to the well known `Array.prototype.map` function, this operator * applies a projection to each value and emits that projection in the output * Observable. * * ## Example * * Map every click to the `clientX` position of that click * * ```ts * import { fromEvent, map } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const positions = clicks.pipe(map(ev => ev.clientX)); * * positions.subscribe(x => console.log(x)); * ``` * * @see {@link mapTo} * @see {@link pluck} * * @param {function(value: T, index: number): R} project The function to apply * to each `value` emitted by the source Observable. The `index` parameter is * the number `i` for the i-th emission that has happened since the * subscription, starting from the number `0`. * @param {any} [thisArg] An optional argument to define what `this` is in the * `project` function. * @return A function that returns an Observable that emits the values from the * source Observable transformed by the given `project` function. */ export function map(project: (value: T, index: number) => R, thisArg?: any): OperatorFunction { return operate((source, subscriber) => { // The index of the value from the source. Used with projection. let index = 0; // Subscribe to the source, all errors and completions are sent along // to the consumer. source.subscribe( createOperatorSubscriber(subscriber, (value: T) => { // Call the projection function with the appropriate this context, // and send the resulting value to the consumer. subscriber.next(project.call(thisArg, value, index++)); }) ); }); } rxjs-7.5.7/src/internal/operators/mapTo.ts000066400000000000000000000032101431412030200205530ustar00rootroot00000000000000import { OperatorFunction } from '../types'; import { map } from './map'; /** @deprecated To be removed in v9. Use {@link map} instead: `map(() => value)`. */ export function mapTo(value: R): OperatorFunction; /** * @deprecated Do not specify explicit type parameters. Signatures with type parameters * that cannot be inferred will be removed in v8. `mapTo` itself will be removed in v9, * use {@link map} instead: `map(() => value)`. * */ export function mapTo(value: R): OperatorFunction; /** * Emits the given constant value on the output Observable every time the source * Observable emits a value. * * Like {@link map}, but it maps every source value to * the same output value every time. * * ![](mapTo.png) * * Takes a constant `value` as argument, and emits that whenever the source * Observable emits a value. In other words, ignores the actual source value, * and simply uses the emission moment to know when to emit the given `value`. * * ## Example * * Map every click to the string `'Hi'` * * ```ts * import { fromEvent, mapTo } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const greetings = clicks.pipe(mapTo('Hi')); * * greetings.subscribe(x => console.log(x)); * ``` * * @see {@link map} * * @param value The value to map each source value to. * @return A function that returns an Observable that emits the given `value` * every time the source Observable emits. * @deprecated To be removed in v9. Use {@link map} instead: `map(() => value)`. */ export function mapTo(value: R): OperatorFunction { return map(() => value); } rxjs-7.5.7/src/internal/operators/materialize.ts000066400000000000000000000052401431412030200220060ustar00rootroot00000000000000import { Notification } from '../Notification'; import { OperatorFunction, ObservableNotification } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Represents all of the notifications from the source Observable as `next` * emissions marked with their original types within {@link Notification} * objects. * * Wraps `next`, `error` and `complete` emissions in * {@link Notification} objects, emitted as `next` on the output Observable. * * * ![](materialize.png) * * `materialize` returns an Observable that emits a `next` notification for each * `next`, `error`, or `complete` emission of the source Observable. When the * source Observable emits `complete`, the output Observable will emit `next` as * a Notification of type "complete", and then it will emit `complete` as well. * When the source Observable emits `error`, the output will emit `next` as a * Notification of type "error", and then `complete`. * * This operator is useful for producing metadata of the source Observable, to * be consumed as `next` emissions. Use it in conjunction with * {@link dematerialize}. * * ## Example * * Convert a faulty Observable to an Observable of Notifications * * ```ts * import { of, materialize, map } from 'rxjs'; * * const letters = of('a', 'b', 13, 'd'); * const upperCase = letters.pipe(map((x: any) => x.toUpperCase())); * const materialized = upperCase.pipe(materialize()); * * materialized.subscribe(x => console.log(x)); * * // Results in the following: * // - Notification { kind: 'N', value: 'A', error: undefined, hasValue: true } * // - Notification { kind: 'N', value: 'B', error: undefined, hasValue: true } * // - Notification { kind: 'E', value: undefined, error: TypeError { message: x.toUpperCase is not a function }, hasValue: false } * ``` * * @see {@link Notification} * @see {@link dematerialize} * * @return A function that returns an Observable that emits * {@link Notification} objects that wrap the original emissions from the * source Observable with metadata. */ export function materialize(): OperatorFunction & ObservableNotification> { return operate((source, subscriber) => { source.subscribe( createOperatorSubscriber( subscriber, (value) => { subscriber.next(Notification.createNext(value)); }, () => { subscriber.next(Notification.createComplete()); subscriber.complete(); }, (err) => { subscriber.next(Notification.createError(err)); subscriber.complete(); } ) ); }); } rxjs-7.5.7/src/internal/operators/max.ts000066400000000000000000000025771431412030200202770ustar00rootroot00000000000000import { reduce } from './reduce'; import { MonoTypeOperatorFunction } from '../types'; import { isFunction } from '../util/isFunction'; /** * The Max operator operates on an Observable that emits numbers (or items that can be compared with a provided function), * and when source Observable completes it emits a single item: the item with the largest value. * * ![](max.png) * * ## Examples * * Get the maximal value of a series of numbers * * ```ts * import { of, max } from 'rxjs'; * * of(5, 4, 7, 2, 8) * .pipe(max()) * .subscribe(x => console.log(x)); * * // Outputs * // 8 * ``` * * Use a comparer function to get the maximal item * * ```ts * import { of, max } from 'rxjs'; * * of( * { age: 7, name: 'Foo' }, * { age: 5, name: 'Bar' }, * { age: 9, name: 'Beer' } * ).pipe( * max((a, b) => a.age < b.age ? -1 : 1) * ) * .subscribe(x => console.log(x.name)); * * // Outputs * // 'Beer' * ``` * * @see {@link min} * * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the * value of two items. * @return A function that returns an Observable that emits item with the * largest value. */ export function max(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction { return reduce(isFunction(comparer) ? (x, y) => (comparer(x, y) > 0 ? x : y) : (x, y) => (x > y ? x : y)); } rxjs-7.5.7/src/internal/operators/merge.ts000066400000000000000000000031501431412030200205750ustar00rootroot00000000000000import { ObservableInput, ObservableInputTuple, OperatorFunction, SchedulerLike } from '../types'; import { operate } from '../util/lift'; import { argsOrArgArray } from '../util/argsOrArgArray'; import { mergeAll } from './mergeAll'; import { popNumber, popScheduler } from '../util/args'; import { from } from '../observable/from'; /** @deprecated Replaced with {@link mergeWith}. Will be removed in v8. */ export function merge(...sources: [...ObservableInputTuple]): OperatorFunction; /** @deprecated Replaced with {@link mergeWith}. Will be removed in v8. */ export function merge( ...sourcesAndConcurrency: [...ObservableInputTuple, number] ): OperatorFunction; /** @deprecated Replaced with {@link mergeWith}. Will be removed in v8. */ export function merge( ...sourcesAndScheduler: [...ObservableInputTuple, SchedulerLike] ): OperatorFunction; /** @deprecated Replaced with {@link mergeWith}. Will be removed in v8. */ export function merge( ...sourcesAndConcurrencyAndScheduler: [...ObservableInputTuple, number, SchedulerLike] ): OperatorFunction; export function merge(...args: unknown[]): OperatorFunction { const scheduler = popScheduler(args); const concurrent = popNumber(args, Infinity); args = argsOrArgArray(args); return operate((source, subscriber) => { mergeAll(concurrent)(from([source, ...(args as ObservableInput[])], scheduler)).subscribe(subscriber); }); } rxjs-7.5.7/src/internal/operators/mergeAll.ts000066400000000000000000000045621431412030200212360ustar00rootroot00000000000000import { mergeMap } from './mergeMap'; import { identity } from '../util/identity'; import { OperatorFunction, ObservableInput, ObservedValueOf } from '../types'; /** * Converts a higher-order Observable into a first-order Observable which * concurrently delivers all values that are emitted on the inner Observables. * * Flattens an Observable-of-Observables. * * ![](mergeAll.png) * * `mergeAll` subscribes to an Observable that emits Observables, also known as * a higher-order Observable. Each time it observes one of these emitted inner * Observables, it subscribes to that and delivers all the values from the * inner Observable on the output Observable. The output Observable only * completes once all inner Observables have completed. Any error delivered by * a inner Observable will be immediately emitted on the output Observable. * * ## Examples * * Spawn a new interval Observable for each click event, and blend their outputs as one Observable * * ```ts * import { fromEvent, map, interval, mergeAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const higherOrder = clicks.pipe(map(() => interval(1000))); * const firstOrder = higherOrder.pipe(mergeAll()); * * firstOrder.subscribe(x => console.log(x)); * ``` * * Count from 0 to 9 every second for each click, but only allow 2 concurrent timers * * ```ts * import { fromEvent, map, interval, take, mergeAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const higherOrder = clicks.pipe( * map(() => interval(1000).pipe(take(10))) * ); * const firstOrder = higherOrder.pipe(mergeAll(2)); * * firstOrder.subscribe(x => console.log(x)); * ``` * * @see {@link combineLatestAll} * @see {@link concatAll} * @see {@link exhaustAll} * @see {@link merge} * @see {@link mergeMap} * @see {@link mergeMapTo} * @see {@link mergeScan} * @see {@link switchAll} * @see {@link switchMap} * @see {@link zipAll} * * @param {number} [concurrent=Infinity] Maximum number of inner * Observables being subscribed to concurrently. * @return A function that returns an Observable that emits values coming from * all the inner Observables emitted by the source Observable. */ export function mergeAll>(concurrent: number = Infinity): OperatorFunction> { return mergeMap(identity, concurrent); } rxjs-7.5.7/src/internal/operators/mergeInternals.ts000066400000000000000000000136731431412030200224700ustar00rootroot00000000000000import { Observable } from '../Observable'; import { innerFrom } from '../observable/innerFrom'; import { Subscriber } from '../Subscriber'; import { ObservableInput, SchedulerLike } from '../types'; import { executeSchedule } from '../util/executeSchedule'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * A process embodying the general "merge" strategy. This is used in * `mergeMap` and `mergeScan` because the logic is otherwise nearly identical. * @param source The original source observable * @param subscriber The consumer subscriber * @param project The projection function to get our inner sources * @param concurrent The number of concurrent inner subscriptions * @param onBeforeNext Additional logic to apply before nexting to our consumer * @param expand If `true` this will perform an "expand" strategy, which differs only * in that it recurses, and the inner subscription must be schedule-able. * @param innerSubScheduler A scheduler to use to schedule inner subscriptions, * this is to support the expand strategy, mostly, and should be deprecated */ export function mergeInternals( source: Observable, subscriber: Subscriber, project: (value: T, index: number) => ObservableInput, concurrent: number, onBeforeNext?: (innerValue: R) => void, expand?: boolean, innerSubScheduler?: SchedulerLike, additionalFinalizer?: () => void ) { // Buffered values, in the event of going over our concurrency limit const buffer: T[] = []; // The number of active inner subscriptions. let active = 0; // An index to pass to our accumulator function let index = 0; // Whether or not the outer source has completed. let isComplete = false; /** * Checks to see if we can complete our result or not. */ const checkComplete = () => { // If the outer has completed, and nothing is left in the buffer, // and we don't have any active inner subscriptions, then we can // Emit the state and complete. if (isComplete && !buffer.length && !active) { subscriber.complete(); } }; // If we're under our concurrency limit, just start the inner subscription, otherwise buffer and wait. const outerNext = (value: T) => (active < concurrent ? doInnerSub(value) : buffer.push(value)); const doInnerSub = (value: T) => { // If we're expanding, we need to emit the outer values and the inner values // as the inners will "become outers" in a way as they are recursively fed // back to the projection mechanism. expand && subscriber.next(value as any); // Increment the number of active subscriptions so we can track it // against our concurrency limit later. active++; // A flag used to show that the inner observable completed. // This is checked during finalization to see if we should // move to the next item in the buffer, if there is on. let innerComplete = false; // Start our inner subscription. innerFrom(project(value, index++)).subscribe( createOperatorSubscriber( subscriber, (innerValue) => { // `mergeScan` has additional handling here. For example // taking the inner value and updating state. onBeforeNext?.(innerValue); if (expand) { // If we're expanding, then just recurse back to our outer // handler. It will emit the value first thing. outerNext(innerValue as any); } else { // Otherwise, emit the inner value. subscriber.next(innerValue); } }, () => { // Flag that we have completed, so we know to check the buffer // during finalization. innerComplete = true; }, // Errors are passed to the destination. undefined, () => { // During finalization, if the inner completed (it wasn't errored or // cancelled), then we want to try the next item in the buffer if // there is one. if (innerComplete) { // We have to wrap this in a try/catch because it happens during // finalization, possibly asynchronously, and we want to pass // any errors that happen (like in a projection function) to // the outer Subscriber. try { // INNER SOURCE COMPLETE // Decrement the active count to ensure that the next time // we try to call `doInnerSub`, the number is accurate. active--; // If we have more values in the buffer, try to process those // Note that this call will increment `active` ahead of the // next conditional, if there were any more inner subscriptions // to start. while (buffer.length && active < concurrent) { const bufferedValue = buffer.shift()!; // Particularly for `expand`, we need to check to see if a scheduler was provided // for when we want to start our inner subscription. Otherwise, we just start // are next inner subscription. if (innerSubScheduler) { executeSchedule(subscriber, innerSubScheduler, () => doInnerSub(bufferedValue)); } else { doInnerSub(bufferedValue); } } // Check to see if we can complete, and complete if so. checkComplete(); } catch (err) { subscriber.error(err); } } } ) ); }; // Subscribe to our source observable. source.subscribe( createOperatorSubscriber(subscriber, outerNext, () => { // Outer completed, make a note of it, and check to see if we can complete everything. isComplete = true; checkComplete(); }) ); // Additional finalization (for when the destination is torn down). // Other finalization is added implicitly via subscription above. return () => { additionalFinalizer?.(); }; } rxjs-7.5.7/src/internal/operators/mergeMap.ts000066400000000000000000000073651431412030200212470ustar00rootroot00000000000000import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; import { map } from './map'; import { innerFrom } from '../observable/innerFrom'; import { operate } from '../util/lift'; import { mergeInternals } from './mergeInternals'; import { isFunction } from '../util/isFunction'; /* tslint:disable:max-line-length */ export function mergeMap>( project: (value: T, index: number) => O, concurrent?: number ): OperatorFunction>; /** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */ export function mergeMap>( project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number ): OperatorFunction>; /** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */ export function mergeMap>( project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number ): OperatorFunction; /* tslint:enable:max-line-length */ /** * Projects each source value to an Observable which is merged in the output * Observable. * * Maps each value to an Observable, then flattens all of * these inner Observables using {@link mergeAll}. * * ![](mergeMap.png) * * Returns an Observable that emits items based on applying a function that you * supply to each item emitted by the source Observable, where that function * returns an Observable, and then merging those resulting Observables and * emitting the results of this merger. * * ## Example * * Map and flatten each letter to an Observable ticking every 1 second * * ```ts * import { of, mergeMap, interval, map } from 'rxjs'; * * const letters = of('a', 'b', 'c'); * const result = letters.pipe( * mergeMap(x => interval(1000).pipe(map(i => x + i))) * ); * * result.subscribe(x => console.log(x)); * * // Results in the following: * // a0 * // b0 * // c0 * // a1 * // b1 * // c1 * // continues to list a, b, c every second with respective ascending integers * ``` * * @see {@link concatMap} * @see {@link exhaustMap} * @see {@link merge} * @see {@link mergeAll} * @see {@link mergeMapTo} * @see {@link mergeScan} * @see {@link switchMap} * * @param {function(value: T, ?index: number): ObservableInput} project A function * that, when applied to an item emitted by the source Observable, returns an * Observable. * @param {number} [concurrent=Infinity] Maximum number of input * Observables being subscribed to concurrently. * @return A function that returns an Observable that emits the result of * applying the projection function (and the optional deprecated * `resultSelector`) to each item emitted by the source Observable and merging * the results of the Observables obtained from this transformation. */ export function mergeMap>( project: (value: T, index: number) => O, resultSelector?: ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R) | number, concurrent: number = Infinity ): OperatorFunction | R> { if (isFunction(resultSelector)) { // DEPRECATED PATH return mergeMap((a, i) => map((b: any, ii: number) => resultSelector(a, b, i, ii))(innerFrom(project(a, i))), concurrent); } else if (typeof resultSelector === 'number') { concurrent = resultSelector; } return operate((source, subscriber) => mergeInternals(source, subscriber, project, concurrent)); } rxjs-7.5.7/src/internal/operators/mergeMapTo.ts000066400000000000000000000054001431412030200215360ustar00rootroot00000000000000import { OperatorFunction, ObservedValueOf, ObservableInput } from '../types'; import { mergeMap } from './mergeMap'; import { isFunction } from '../util/isFunction'; /** @deprecated Will be removed in v9. Use {@link mergeMap} instead: `mergeMap(() => result)` */ export function mergeMapTo>( innerObservable: O, concurrent?: number ): OperatorFunction>; /** * @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. * Details: https://rxjs.dev/deprecations/resultSelector */ export function mergeMapTo>( innerObservable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R, concurrent?: number ): OperatorFunction; /* tslint:enable:max-line-length */ /** * Projects each source value to the same Observable which is merged multiple * times in the output Observable. * * It's like {@link mergeMap}, but maps each value always * to the same inner Observable. * * ![](mergeMapTo.png) * * Maps each source value to the given Observable `innerObservable` regardless * of the source value, and then merges those resulting Observables into one * single Observable, which is the output Observable. * * ## Example * * For each click event, start an interval Observable ticking every 1 second * * ```ts * import { fromEvent, mergeMapTo, interval } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(mergeMapTo(interval(1000))); * * result.subscribe(x => console.log(x)); * ``` * * @see {@link concatMapTo} * @see {@link merge} * @see {@link mergeAll} * @see {@link mergeMap} * @see {@link mergeScan} * @see {@link switchMapTo} * * @param {ObservableInput} innerObservable An Observable to replace each value from * the source Observable. * @param {number} [concurrent=Infinity] Maximum number of input * Observables being subscribed to concurrently. * @return A function that returns an Observable that emits items from the * given `innerObservable`. * @deprecated Will be removed in v9. Use {@link mergeMap} instead: `mergeMap(() => result)` */ export function mergeMapTo>( innerObservable: O, resultSelector?: ((outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R) | number, concurrent: number = Infinity ): OperatorFunction | R> { if (isFunction(resultSelector)) { return mergeMap(() => innerObservable, resultSelector, concurrent); } if (typeof resultSelector === 'number') { concurrent = resultSelector; } return mergeMap(() => innerObservable, concurrent); } rxjs-7.5.7/src/internal/operators/mergeScan.ts000066400000000000000000000063401431412030200214060ustar00rootroot00000000000000import { ObservableInput, OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { mergeInternals } from './mergeInternals'; /** * Applies an accumulator function over the source Observable where the * accumulator function itself returns an Observable, then each intermediate * Observable returned is merged into the output Observable. * * It's like {@link scan}, but the Observables returned * by the accumulator are merged into the outer Observable. * * The first parameter of the `mergeScan` is an `accumulator` function which is * being called every time the source Observable emits a value. `mergeScan` will * subscribe to the value returned by the `accumulator` function and will emit * values to the subscriber emitted by inner Observable. * * The `accumulator` function is being called with three parameters passed to it: * `acc`, `value` and `index`. The `acc` parameter is used as the state parameter * whose value is initially set to the `seed` parameter (the second parameter * passed to the `mergeScan` operator). * * `mergeScan` internally keeps the value of the `acc` parameter: as long as the * source Observable emits without inner Observable emitting, the `acc` will be * set to `seed`. The next time the inner Observable emits a value, `mergeScan` * will internally remember it and it will be passed to the `accumulator` * function as `acc` parameter the next time source emits. * * The `value` parameter of the `accumulator` function is the value emitted by the * source Observable, while the `index` is a number which represent the order of the * current emission by the source Observable. It starts with 0. * * The last parameter to the `mergeScan` is the `concurrent` value which defaults * to Infinity. It represents the maximum number of inner Observable subscriptions * at a time. * * ## Example * * Count the number of click events * * ```ts * import { fromEvent, map, mergeScan, of } from 'rxjs'; * * const click$ = fromEvent(document, 'click'); * const one$ = click$.pipe(map(() => 1)); * const seed = 0; * const count$ = one$.pipe( * mergeScan((acc, one) => of(acc + one), seed) * ); * * count$.subscribe(x => console.log(x)); * * // Results: * // 1 * // 2 * // 3 * // 4 * // ...and so on for each click * ``` * * @see {@link scan} * @see {@link switchScan} * * @param {function(acc: R, value: T): Observable} accumulator * The accumulator function called on each source value. * @param seed The initial accumulation value. * @param {number} [concurrent=Infinity] Maximum number of * input Observables being subscribed to concurrently. * @return A function that returns an Observable of the accumulated values. */ export function mergeScan( accumulator: (acc: R, value: T, index: number) => ObservableInput, seed: R, concurrent = Infinity ): OperatorFunction { return operate((source, subscriber) => { // The accumulated state. let state = seed; return mergeInternals( source, subscriber, (value, index) => accumulator(state, value, index), concurrent, (value) => { state = value; }, false, undefined, () => (state = null!) ); }); } rxjs-7.5.7/src/internal/operators/mergeWith.ts000066400000000000000000000030351431412030200214330ustar00rootroot00000000000000import { ObservableInputTuple, OperatorFunction } from '../types'; import { merge } from './merge'; /** * Merge the values from all observables to a single observable result. * * Creates an observable, that when subscribed to, subscribes to the source * observable, and all other sources provided as arguments. All values from * every source are emitted from the resulting subscription. * * When all sources complete, the resulting observable will complete. * * When any source errors, the resulting observable will error. * * ## Example * * Joining all outputs from multiple user input event streams * * ```ts * import { fromEvent, map, mergeWith } from 'rxjs'; * * const clicks$ = fromEvent(document, 'click').pipe(map(() => 'click')); * const mousemoves$ = fromEvent(document, 'mousemove').pipe(map(() => 'mousemove')); * const dblclicks$ = fromEvent(document, 'dblclick').pipe(map(() => 'dblclick')); * * mousemoves$ * .pipe(mergeWith(clicks$, dblclicks$)) * .subscribe(x => console.log(x)); * * // result (assuming user interactions) * // 'mousemove' * // 'mousemove' * // 'mousemove' * // 'click' * // 'click' * // 'dblclick' * ``` * * @see {@link merge} * * @param otherSources the sources to combine the current source with. * @return A function that returns an Observable that merges the values from * all given Observables. */ export function mergeWith( ...otherSources: [...ObservableInputTuple] ): OperatorFunction { return merge(...otherSources); } rxjs-7.5.7/src/internal/operators/min.ts000066400000000000000000000026001431412030200202600ustar00rootroot00000000000000import { reduce } from './reduce'; import { MonoTypeOperatorFunction } from '../types'; import { isFunction } from '../util/isFunction'; /** * The Min operator operates on an Observable that emits numbers (or items that can be compared with a provided function), * and when source Observable completes it emits a single item: the item with the smallest value. * * ![](min.png) * * ## Examples * * Get the minimal value of a series of numbers * * ```ts * import { of, min } from 'rxjs'; * * of(5, 4, 7, 2, 8) * .pipe(min()) * .subscribe(x => console.log(x)); * * // Outputs * // 2 * ``` * * Use a comparer function to get the minimal item * * ```ts * import { of, min } from 'rxjs'; * * of( * { age: 7, name: 'Foo' }, * { age: 5, name: 'Bar' }, * { age: 9, name: 'Beer' } * ).pipe( * min((a, b) => a.age < b.age ? -1 : 1) * ) * .subscribe(x => console.log(x.name)); * * // Outputs * // 'Bar' * ``` * * @see {@link max} * * @param {Function} [comparer] - Optional comparer function that it will use instead of its default to compare the * value of two items. * @return A function that returns an Observable that emits item with the * smallest value. */ export function min(comparer?: (x: T, y: T) => number): MonoTypeOperatorFunction { return reduce(isFunction(comparer) ? (x, y) => (comparer(x, y) < 0 ? x : y) : (x, y) => (x < y ? x : y)); } rxjs-7.5.7/src/internal/operators/multicast.ts000066400000000000000000000116311431412030200215060ustar00rootroot00000000000000import { Subject } from '../Subject'; import { Observable } from '../Observable'; import { ConnectableObservable } from '../observable/ConnectableObservable'; import { OperatorFunction, UnaryFunction, ObservedValueOf, ObservableInput } from '../types'; import { isFunction } from '../util/isFunction'; import { connect } from './connect'; /** * An operator that creates a {@link ConnectableObservable}, that when connected, * with the `connect` method, will use the provided subject to multicast the values * from the source to all consumers. * * @param subject The subject to multicast through. * @return A function that returns a {@link ConnectableObservable} * @deprecated Will be removed in v8. To create a connectable observable, use {@link connectable}. * If you're using {@link refCount} after `multicast`, use the {@link share} operator instead. * `multicast(subject), refCount()` is equivalent to * `share({ connector: () => subject, resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })`. * Details: https://rxjs.dev/deprecations/multicasting */ export function multicast(subject: Subject): UnaryFunction, ConnectableObservable>; /** * Because this is deprecated in favor of the {@link connect} operator, and was otherwise poorly documented, * rather than duplicate the effort of documenting the same behavior, please see documentation for the * {@link connect} operator. * * @param subject The subject used to multicast. * @param selector A setup function to setup the multicast * @return A function that returns an observable that mirrors the observable returned by the selector. * @deprecated Will be removed in v8. Use the {@link connect} operator instead. * `multicast(subject, selector)` is equivalent to * `connect(selector, { connector: () => subject })`. * Details: https://rxjs.dev/deprecations/multicasting */ export function multicast>( subject: Subject, selector: (shared: Observable) => O ): OperatorFunction>; /** * An operator that creates a {@link ConnectableObservable}, that when connected, * with the `connect` method, will use the provided subject to multicast the values * from the source to all consumers. * * @param subjectFactory A factory that will be called to create the subject. Passing a function here * will cause the underlying subject to be "reset" on error, completion, or refCounted unsubscription of * the source. * @return A function that returns a {@link ConnectableObservable} * @deprecated Will be removed in v8. To create a connectable observable, use {@link connectable}. * If you're using {@link refCount} after `multicast`, use the {@link share} operator instead. * `multicast(() => new BehaviorSubject('test')), refCount()` is equivalent to * `share({ connector: () => new BehaviorSubject('test') })`. * Details: https://rxjs.dev/deprecations/multicasting */ export function multicast(subjectFactory: () => Subject): UnaryFunction, ConnectableObservable>; /** * Because this is deprecated in favor of the {@link connect} operator, and was otherwise poorly documented, * rather than duplicate the effort of documenting the same behavior, please see documentation for the * {@link connect} operator. * * @param subjectFactory A factory that creates the subject used to multicast. * @param selector A function to setup the multicast and select the output. * @return A function that returns an observable that mirrors the observable returned by the selector. * @deprecated Will be removed in v8. Use the {@link connect} operator instead. * `multicast(subjectFactory, selector)` is equivalent to * `connect(selector, { connector: subjectFactory })`. * Details: https://rxjs.dev/deprecations/multicasting */ export function multicast>( subjectFactory: () => Subject, selector: (shared: Observable) => O ): OperatorFunction>; /** * @deprecated Will be removed in v8. Use the {@link connectable} observable, the {@link connect} operator or the * {@link share} operator instead. See the overloads below for equivalent replacement examples of this operator's * behaviors. * Details: https://rxjs.dev/deprecations/multicasting */ export function multicast( subjectOrSubjectFactory: Subject | (() => Subject), selector?: (source: Observable) => Observable ): OperatorFunction { const subjectFactory = isFunction(subjectOrSubjectFactory) ? subjectOrSubjectFactory : () => subjectOrSubjectFactory; if (isFunction(selector)) { // If a selector function is provided, then we're a "normal" operator that isn't // going to return a ConnectableObservable. We can use `connect` to do what we // need to do. return connect(selector, { connector: subjectFactory, }); } return (source: Observable) => new ConnectableObservable(source, subjectFactory); } rxjs-7.5.7/src/internal/operators/observeOn.ts000066400000000000000000000074331431412030200214500ustar00rootroot00000000000000/** @prettier */ import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; import { executeSchedule } from '../util/executeSchedule'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Re-emits all notifications from source Observable with specified scheduler. * * Ensure a specific scheduler is used, from outside of an Observable. * * `observeOn` is an operator that accepts a scheduler as a first parameter, which will be used to reschedule * notifications emitted by the source Observable. It might be useful, if you do not have control over * internal scheduler of a given Observable, but want to control when its values are emitted nevertheless. * * Returned Observable emits the same notifications (nexted values, complete and error events) as the source Observable, * but rescheduled with provided scheduler. Note that this doesn't mean that source Observables internal * scheduler will be replaced in any way. Original scheduler still will be used, but when the source Observable emits * notification, it will be immediately scheduled again - this time with scheduler passed to `observeOn`. * An anti-pattern would be calling `observeOn` on Observable that emits lots of values synchronously, to split * that emissions into asynchronous chunks. For this to happen, scheduler would have to be passed into the source * Observable directly (usually into the operator that creates it). `observeOn` simply delays notifications a * little bit more, to ensure that they are emitted at expected moments. * * As a matter of fact, `observeOn` accepts second parameter, which specifies in milliseconds with what delay notifications * will be emitted. The main difference between {@link delay} operator and `observeOn` is that `observeOn` * will delay all notifications - including error notifications - while `delay` will pass through error * from source Observable immediately when it is emitted. In general it is highly recommended to use `delay` operator * for any kind of delaying of values in the stream, while using `observeOn` to specify which scheduler should be used * for notification emissions in general. * * ## Example * * Ensure values in subscribe are called just before browser repaint * * ```ts * import { interval, observeOn, animationFrameScheduler } from 'rxjs'; * * const someDiv = document.createElement('div'); * someDiv.style.cssText = 'width: 200px;background: #09c'; * document.body.appendChild(someDiv); * const intervals = interval(10); // Intervals are scheduled * // with async scheduler by default... * intervals.pipe( * observeOn(animationFrameScheduler) // ...but we will observe on animationFrame * ) // scheduler to ensure smooth animation. * .subscribe(val => { * someDiv.style.height = val + 'px'; * }); * ``` * * @see {@link delay} * * @param scheduler Scheduler that will be used to reschedule notifications from source Observable. * @param delay Number of milliseconds that states with what delay every notification should be rescheduled. * @return A function that returns an Observable that emits the same * notifications as the source Observable, but with provided scheduler. */ export function observeOn(scheduler: SchedulerLike, delay = 0): MonoTypeOperatorFunction { return operate((source, subscriber) => { source.subscribe( createOperatorSubscriber( subscriber, (value) => executeSchedule(subscriber, scheduler, () => subscriber.next(value), delay), () => executeSchedule(subscriber, scheduler, () => subscriber.complete(), delay), (err) => executeSchedule(subscriber, scheduler, () => subscriber.error(err), delay) ) ); }); } rxjs-7.5.7/src/internal/operators/onErrorResumeNext.ts000066400000000000000000000120151431412030200231440ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ObservableInputTuple, OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { innerFrom } from '../observable/innerFrom'; import { argsOrArgArray } from '../util/argsOrArgArray'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { noop } from '../util/noop'; export function onErrorResumeNext( sources: [...ObservableInputTuple] ): OperatorFunction; export function onErrorResumeNext( ...sources: [...ObservableInputTuple] ): OperatorFunction; /** * When any of the provided Observable emits an complete or error notification, it immediately subscribes to the next one * that was passed. * * Execute series of Observables, subscribes to next one on error or complete. * * ![](onErrorResumeNext.png) * * `onErrorResumeNext` is an operator that accepts a series of Observables, provided either directly as * arguments or as an array. If no single Observable is provided, returned Observable will simply behave the same * as the source. * * `onErrorResumeNext` returns an Observable that starts by subscribing and re-emitting values from the source Observable. * When its stream of values ends - no matter if Observable completed or emitted an error - `onErrorResumeNext` * will subscribe to the first Observable that was passed as an argument to the method. It will start re-emitting * its values as well and - again - when that stream ends, `onErrorResumeNext` will proceed to subscribing yet another * Observable in provided series, no matter if previous Observable completed or ended with an error. This will * be happening until there is no more Observables left in the series, at which point returned Observable will * complete - even if the last subscribed stream ended with an error. * * `onErrorResumeNext` can be therefore thought of as version of {@link concat} operator, which is more permissive * when it comes to the errors emitted by its input Observables. While `concat` subscribes to the next Observable * in series only if previous one successfully completed, `onErrorResumeNext` subscribes even if it ended with * an error. * * Note that you do not get any access to errors emitted by the Observables. In particular do not * expect these errors to appear in error callback passed to {@link Observable#subscribe}. If you want to take * specific actions based on what error was emitted by an Observable, you should try out {@link catchError} instead. * * * ## Example * * Subscribe to the next Observable after map fails * * ```ts * import { of, onErrorResumeNext, map } from 'rxjs'; * * of(1, 2, 3, 0) * .pipe( * map(x => { * if (x === 0) { * throw Error(); * } * * return 10 / x; * }), * onErrorResumeNext(of(1, 2, 3)) * ) * .subscribe({ * next: val => console.log(val), * error: err => console.log(err), // Will never be called. * complete: () => console.log('that\'s it!') * }); * * // Logs: * // 10 * // 5 * // 3.3333333333333335 * // 1 * // 2 * // 3 * // 'that's it!' * ``` * * @see {@link concat} * @see {@link catchError} * * @param {...ObservableInput} sources Observables passed either directly or as an array. * @return A function that returns an Observable that emits values from source * Observable, but - if it errors - subscribes to the next passed Observable * and so on, until it completes or runs out of Observables. */ export function onErrorResumeNext( ...sources: [[...ObservableInputTuple]] | [...ObservableInputTuple] ): OperatorFunction { // For some reason, TS 4.1 RC gets the inference wrong here and infers the // result to be `A[number][]` - completely dropping the ObservableInput part // of the type. This makes no sense whatsoever. As a workaround, the type is // asserted explicitly. const nextSources = argsOrArgArray(sources) as unknown as ObservableInputTuple; return operate((source, subscriber) => { const remaining = [source, ...nextSources]; const subscribeNext = () => { if (!subscriber.closed) { if (remaining.length > 0) { let nextSource: Observable; try { nextSource = innerFrom(remaining.shift()!); } catch (err) { subscribeNext(); return; } // Here we have to use one of our Subscribers, or it does not wire up // The `closed` property of upstream Subscribers synchronously, that // would result in situation were we could not stop a synchronous firehose // with something like `take(3)`. const innerSub = createOperatorSubscriber(subscriber, undefined, noop, noop); nextSource.subscribe(innerSub); innerSub.add(subscribeNext); } else { subscriber.complete(); } } }; subscribeNext(); }); } rxjs-7.5.7/src/internal/operators/pairwise.ts000066400000000000000000000036031431412030200213240ustar00rootroot00000000000000import { OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Groups pairs of consecutive emissions together and emits them as an array of * two values. * * Puts the current value and previous value together as * an array, and emits that. * * ![](pairwise.png) * * The Nth emission from the source Observable will cause the output Observable * to emit an array [(N-1)th, Nth] of the previous and the current value, as a * pair. For this reason, `pairwise` emits on the second and subsequent * emissions from the source Observable, but not on the first emission, because * there is no previous value in that case. * * ## Example * * On every click (starting from the second), emit the relative distance to the previous click * * ```ts * import { fromEvent, pairwise, map } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const pairs = clicks.pipe(pairwise()); * const distance = pairs.pipe( * map(([first, second]) => { * const x0 = first.clientX; * const y0 = first.clientY; * const x1 = second.clientX; * const y1 = second.clientY; * return Math.sqrt(Math.pow(x0 - x1, 2) + Math.pow(y0 - y1, 2)); * }) * ); * * distance.subscribe(x => console.log(x)); * ``` * * @see {@link buffer} * @see {@link bufferCount} * * @return A function that returns an Observable of pairs (as arrays) of * consecutive values from the source Observable. */ export function pairwise(): OperatorFunction { return operate((source, subscriber) => { let prev: T; let hasPrev = false; source.subscribe( createOperatorSubscriber(subscriber, (value) => { const p = prev; prev = value; hasPrev && subscriber.next([p, value]); hasPrev = true; }) ); }); } rxjs-7.5.7/src/internal/operators/partition.ts000066400000000000000000000054071431412030200215160ustar00rootroot00000000000000import { not } from '../util/not'; import { filter } from './filter'; import { Observable } from '../Observable'; import { UnaryFunction } from '../types'; /** * Splits the source Observable into two, one with values that satisfy a * predicate, and another with values that don't satisfy the predicate. * * It's like {@link filter}, but returns two Observables: * one like the output of {@link filter}, and the other with values that did not * pass the condition. * * ![](partition.png) * * `partition` outputs an array with two Observables that partition the values * from the source Observable through the given `predicate` function. The first * Observable in that array emits source values for which the predicate argument * returns true. The second Observable emits source values for which the * predicate returns false. The first behaves like {@link filter} and the second * behaves like {@link filter} with the predicate negated. * * ## Example * * Partition click events into those on DIV elements and those elsewhere * * ```ts * import { fromEvent } from 'rxjs'; * import { partition } from 'rxjs/operators'; * * const div = document.createElement('div'); * div.style.cssText = 'width: 200px; height: 200px; background: #09c;'; * document.body.appendChild(div); * * const clicks = fromEvent(document, 'click'); * const [clicksOnDivs, clicksElsewhere] = clicks.pipe(partition(ev => (ev.target).tagName === 'DIV')); * * clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x)); * clicksElsewhere.subscribe(x => console.log('Other clicked: ', x)); * ``` * * @see {@link filter} * * @param {function(value: T, index: number): boolean} predicate A function that * evaluates each value emitted by the source Observable. If it returns `true`, * the value is emitted on the first Observable in the returned array, if * `false` the value is emitted on the second Observable in the array. The * `index` parameter is the number `i` for the i-th source emission that has * happened since the subscription, starting from the number `0`. * @param {any} [thisArg] An optional argument to determine the value of `this` * in the `predicate` function. * @return A function that returns an array with two Observables: one with * values that passed the predicate, and another with values that did not pass * the predicate. * @deprecated Replaced with the `partition` static creation function. Will be removed in v8. */ export function partition( predicate: (value: T, index: number) => boolean, thisArg?: any ): UnaryFunction, [Observable, Observable]> { return (source: Observable) => [filter(predicate, thisArg)(source), filter(not(predicate, thisArg))(source)] as [Observable, Observable]; } rxjs-7.5.7/src/internal/operators/pluck.ts000066400000000000000000000104331431412030200206160ustar00rootroot00000000000000import { map } from './map'; import { OperatorFunction } from '../types'; /* tslint:disable:max-line-length */ /** @deprecated Use {@link map} and optional chaining: `pluck('foo', 'bar')` is `map(x => x?.foo?.bar)`. Will be removed in v8. */ export function pluck(k1: K1): OperatorFunction; /** @deprecated Use {@link map} and optional chaining: `pluck('foo', 'bar')` is `map(x => x?.foo?.bar)`. Will be removed in v8. */ export function pluck(k1: K1, k2: K2): OperatorFunction; /** @deprecated Use {@link map} and optional chaining: `pluck('foo', 'bar')` is `map(x => x?.foo?.bar)`. Will be removed in v8. */ export function pluck( k1: K1, k2: K2, k3: K3 ): OperatorFunction; /** @deprecated Use {@link map} and optional chaining: `pluck('foo', 'bar')` is `map(x => x?.foo?.bar)`. Will be removed in v8. */ export function pluck( k1: K1, k2: K2, k3: K3, k4: K4 ): OperatorFunction; /** @deprecated Use {@link map} and optional chaining: `pluck('foo', 'bar')` is `map(x => x?.foo?.bar)`. Will be removed in v8. */ export function pluck< T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4] >(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5): OperatorFunction; /** @deprecated Use {@link map} and optional chaining: `pluck('foo', 'bar')` is `map(x => x?.foo?.bar)`. Will be removed in v8. */ export function pluck< T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4], K6 extends keyof T[K1][K2][K3][K4][K5] >(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6): OperatorFunction; /** @deprecated Use {@link map} and optional chaining: `pluck('foo', 'bar')` is `map(x => x?.foo?.bar)`. Will be removed in v8. */ export function pluck< T, K1 extends keyof T, K2 extends keyof T[K1], K3 extends keyof T[K1][K2], K4 extends keyof T[K1][K2][K3], K5 extends keyof T[K1][K2][K3][K4], K6 extends keyof T[K1][K2][K3][K4][K5] >(k1: K1, k2: K2, k3: K3, k4: K4, k5: K5, k6: K6, ...rest: string[]): OperatorFunction; /** @deprecated Use {@link map} and optional chaining: `pluck('foo', 'bar')` is `map(x => x?.foo?.bar)`. Will be removed in v8. */ export function pluck(...properties: string[]): OperatorFunction; /* tslint:enable:max-line-length */ /** * Maps each source value to its specified nested property. * * Like {@link map}, but meant only for picking one of * the nested properties of every emitted value. * * ![](pluck.png) * * Given a list of strings or numbers describing a path to a property, retrieves * the value of a specified nested property from all values in the source * Observable. If a property can't be resolved, it will return `undefined` for * that value. * * ## Example * * Map every click to the tagName of the clicked target element * * ```ts * import { fromEvent, pluck } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const tagNames = clicks.pipe(pluck('target', 'tagName')); * * tagNames.subscribe(x => console.log(x)); * ``` * * @see {@link map} * * @param properties The nested properties to pluck from each source * value. * @return A function that returns an Observable of property values from the * source values. * @deprecated Use {@link map} and optional chaining: `pluck('foo', 'bar')` is `map(x => x?.foo?.bar)`. Will be removed in v8. */ export function pluck(...properties: Array): OperatorFunction { const length = properties.length; if (length === 0) { throw new Error('list of properties cannot be empty.'); } return map((x) => { let currentProp: any = x; for (let i = 0; i < length; i++) { const p = currentProp?.[properties[i]]; if (typeof p !== 'undefined') { currentProp = p; } else { return undefined; } } return currentProp; }); } rxjs-7.5.7/src/internal/operators/publish.ts000066400000000000000000000100011431412030200211350ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Subject } from '../Subject'; import { multicast } from './multicast'; import { ConnectableObservable } from '../observable/ConnectableObservable'; import { MonoTypeOperatorFunction, OperatorFunction, UnaryFunction, ObservableInput, ObservedValueOf } from '../types'; import { connect } from './connect'; /** * Returns a connectable observable that, when connected, will multicast * all values through a single underlying {@link Subject} instance. * * @deprecated Will be removed in v8. To create a connectable observable, use {@link connectable}. * `source.pipe(publish())` is equivalent to * `connectable(source, { connector: () => new Subject(), resetOnDisconnect: false })`. * If you're using {@link refCount} after `publish`, use {@link share} operator instead. * `source.pipe(publish(), refCount())` is equivalent to * `source.pipe(share({ resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }))`. * Details: https://rxjs.dev/deprecations/multicasting */ export function publish(): UnaryFunction, ConnectableObservable>; /** * Returns an observable, that when subscribed to, creates an underlying {@link Subject}, * provides an observable view of it to a `selector` function, takes the observable result of * that selector function and subscribes to it, sending its values to the consumer, _then_ connects * the subject to the original source. * * @param selector A function used to setup multicasting prior to automatic connection. * * @deprecated Will be removed in v8. Use the {@link connect} operator instead. * `publish(selector)` is equivalent to `connect(selector)`. * Details: https://rxjs.dev/deprecations/multicasting */ export function publish>(selector: (shared: Observable) => O): OperatorFunction>; /** * Returns a ConnectableObservable, which is a variety of Observable that waits until its connect method is called * before it begins emitting items to those Observers that have subscribed to it. * * Makes a cold Observable hot * * ![](publish.png) * * ## Examples * * Make `source$` hot by applying `publish` operator, then merge each inner observable into a single one * and subscribe * * ```ts * import { zip, interval, of, map, publish, merge, tap } from 'rxjs'; * * const source$ = zip(interval(2000), of(1, 2, 3, 4, 5, 6, 7, 8, 9)) * .pipe(map(([, number]) => number)); * * source$ * .pipe( * publish(multicasted$ => * merge( * multicasted$.pipe(tap(x => console.log('Stream 1:', x))), * multicasted$.pipe(tap(x => console.log('Stream 2:', x))), * multicasted$.pipe(tap(x => console.log('Stream 3:', x))) * ) * ) * ) * .subscribe(); * * // Results every two seconds * // Stream 1: 1 * // Stream 2: 1 * // Stream 3: 1 * // ... * // Stream 1: 9 * // Stream 2: 9 * // Stream 3: 9 * ``` * * @see {@link publishLast} * @see {@link publishReplay} * @see {@link publishBehavior} * * @param {Function} [selector] - Optional selector function which can use the multicasted source sequence as many times * as needed, without causing multiple subscriptions to the source sequence. * Subscribers to the given source will receive all notifications of the source from the time of the subscription on. * @return A function that returns a ConnectableObservable that upon connection * causes the source Observable to emit items to its Observers. * @deprecated Will be removed in v8. Use the {@link connectable} observable, the {@link connect} operator or the * {@link share} operator instead. See the overloads below for equivalent replacement examples of this operator's * behaviors. * Details: https://rxjs.dev/deprecations/multicasting */ export function publish(selector?: OperatorFunction): MonoTypeOperatorFunction | OperatorFunction { return selector ? (source) => connect(selector)(source) : (source) => multicast(new Subject())(source); } rxjs-7.5.7/src/internal/operators/publishBehavior.ts000066400000000000000000000027161431412030200226330ustar00rootroot00000000000000import { Observable } from '../Observable'; import { BehaviorSubject } from '../BehaviorSubject'; import { ConnectableObservable } from '../observable/ConnectableObservable'; import { UnaryFunction } from '../types'; /** * Creates a {@link ConnectableObservable} that utilizes a {@link BehaviorSubject}. * * @param initialValue The initial value passed to the {@link BehaviorSubject}. * @return A function that returns a {@link ConnectableObservable} * @deprecated Will be removed in v8. To create a connectable observable that uses a * {@link BehaviorSubject} under the hood, use {@link connectable}. * `source.pipe(publishBehavior(initValue))` is equivalent to * `connectable(source, { connector: () => new BehaviorSubject(initValue), resetOnDisconnect: false })`. * If you're using {@link refCount} after `publishBehavior`, use the {@link share} operator instead. * `source.pipe(publishBehavior(initValue), refCount())` is equivalent to * `source.pipe(share({ connector: () => new BehaviorSubject(initValue), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }))`. * Details: https://rxjs.dev/deprecations/multicasting */ export function publishBehavior(initialValue: T): UnaryFunction, ConnectableObservable> { // Note that this has *never* supported the selector function. return (source) => { const subject = new BehaviorSubject(initialValue); return new ConnectableObservable(source, () => subject); }; } rxjs-7.5.7/src/internal/operators/publishLast.ts000066400000000000000000000056121431412030200217750ustar00rootroot00000000000000import { Observable } from '../Observable'; import { AsyncSubject } from '../AsyncSubject'; import { ConnectableObservable } from '../observable/ConnectableObservable'; import { UnaryFunction } from '../types'; /** * Returns a connectable observable sequence that shares a single subscription to the * underlying sequence containing only the last notification. * * ![](publishLast.png) * * Similar to {@link publish}, but it waits until the source observable completes and stores * the last emitted value. * Similarly to {@link publishReplay} and {@link publishBehavior}, this keeps storing the last * value even if it has no more subscribers. If subsequent subscriptions happen, they will * immediately get that last stored value and complete. * * ## Example * * ```ts * import { ConnectableObservable, interval, publishLast, tap, take } from 'rxjs'; * * const connectable = >interval(1000) * .pipe( * tap(x => console.log('side effect', x)), * take(3), * publishLast() * ); * * connectable.subscribe({ * next: x => console.log('Sub. A', x), * error: err => console.log('Sub. A Error', err), * complete: () => console.log('Sub. A Complete') * }); * * connectable.subscribe({ * next: x => console.log('Sub. B', x), * error: err => console.log('Sub. B Error', err), * complete: () => console.log('Sub. B Complete') * }); * * connectable.connect(); * * // Results: * // 'side effect 0' - after one second * // 'side effect 1' - after two seconds * // 'side effect 2' - after three seconds * // 'Sub. A 2' - immediately after 'side effect 2' * // 'Sub. B 2' * // 'Sub. A Complete' * // 'Sub. B Complete' * ``` * * @see {@link ConnectableObservable} * @see {@link publish} * @see {@link publishReplay} * @see {@link publishBehavior} * * @return A function that returns an Observable that emits elements of a * sequence produced by multicasting the source sequence. * @deprecated Will be removed in v8. To create a connectable observable with an * {@link AsyncSubject} under the hood, use {@link connectable}. * `source.pipe(publishLast())` is equivalent to * `connectable(source, { connector: () => new AsyncSubject(), resetOnDisconnect: false })`. * If you're using {@link refCount} after `publishLast`, use the {@link share} operator instead. * `source.pipe(publishLast(), refCount())` is equivalent to * `source.pipe(share({ connector: () => new AsyncSubject(), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false }))`. * Details: https://rxjs.dev/deprecations/multicasting */ export function publishLast(): UnaryFunction, ConnectableObservable> { // Note that this has *never* supported a selector function like `publish` and `publishReplay`. return (source) => { const subject = new AsyncSubject(); return new ConnectableObservable(source, () => subject); }; } rxjs-7.5.7/src/internal/operators/publishReplay.ts000066400000000000000000000123161431412030200223250ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ReplaySubject } from '../ReplaySubject'; import { multicast } from './multicast'; import { MonoTypeOperatorFunction, OperatorFunction, TimestampProvider, ObservableInput, ObservedValueOf } from '../types'; import { isFunction } from '../util/isFunction'; /** * Creates a {@link ConnectableObservable} that uses a {@link ReplaySubject} * internally. * * @param bufferSize The buffer size for the underlying {@link ReplaySubject}. * @param windowTime The window time for the underlying {@link ReplaySubject}. * @param timestampProvider The timestamp provider for the underlying {@link ReplaySubject}. * @deprecated Will be removed in v8. To create a connectable observable that uses a * {@link ReplaySubject} under the hood, use {@link connectable}. * `source.pipe(publishReplay(size, time, scheduler))` is equivalent to * `connectable(source, { connector: () => new ReplaySubject(size, time, scheduler), resetOnDisconnect: false })`. * If you're using {@link refCount} after `publishReplay`, use the {@link share} operator instead. * `publishReplay(size, time, scheduler), refCount()` is equivalent to * `share({ connector: () => new ReplaySubject(size, time, scheduler), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })`. * Details: https://rxjs.dev/deprecations/multicasting */ export function publishReplay( bufferSize?: number, windowTime?: number, timestampProvider?: TimestampProvider ): MonoTypeOperatorFunction; /** * Creates an observable, that when subscribed to, will create a {@link ReplaySubject}, * and pass an observable from it (using [asObservable](api/index/class/Subject#asObservable)) to * the `selector` function, which then returns an observable that is subscribed to before * "connecting" the source to the internal `ReplaySubject`. * * Since this is deprecated, for additional details see the documentation for {@link connect}. * * @param bufferSize The buffer size for the underlying {@link ReplaySubject}. * @param windowTime The window time for the underlying {@link ReplaySubject}. * @param selector A function used to setup the multicast. * @param timestampProvider The timestamp provider for the underlying {@link ReplaySubject}. * @deprecated Will be removed in v8. Use the {@link connect} operator instead. * `source.pipe(publishReplay(size, window, selector, scheduler))` is equivalent to * `source.pipe(connect(selector, { connector: () => new ReplaySubject(size, window, scheduler) }))`. * Details: https://rxjs.dev/deprecations/multicasting */ export function publishReplay>( bufferSize: number | undefined, windowTime: number | undefined, selector: (shared: Observable) => O, timestampProvider?: TimestampProvider ): OperatorFunction>; /** * Creates a {@link ConnectableObservable} that uses a {@link ReplaySubject} * internally. * * @param bufferSize The buffer size for the underlying {@link ReplaySubject}. * @param windowTime The window time for the underlying {@link ReplaySubject}. * @param selector Passing `undefined` here determines that this operator will return a {@link ConnectableObservable}. * @param timestampProvider The timestamp provider for the underlying {@link ReplaySubject}. * @deprecated Will be removed in v8. To create a connectable observable that uses a * {@link ReplaySubject} under the hood, use {@link connectable}. * `source.pipe(publishReplay(size, time, scheduler))` is equivalent to * `connectable(source, { connector: () => new ReplaySubject(size, time, scheduler), resetOnDisconnect: false })`. * If you're using {@link refCount} after `publishReplay`, use the {@link share} operator instead. * `publishReplay(size, time, scheduler), refCount()` is equivalent to * `share({ connector: () => new ReplaySubject(size, time, scheduler), resetOnError: false, resetOnComplete: false, resetOnRefCountZero: false })`. * Details: https://rxjs.dev/deprecations/multicasting */ export function publishReplay>( bufferSize: number | undefined, windowTime: number | undefined, selector: undefined, timestampProvider: TimestampProvider ): OperatorFunction>; /** * @deprecated Will be removed in v8. Use the {@link connectable} observable, the {@link connect} operator or the * {@link share} operator instead. See the overloads below for equivalent replacement examples of this operator's * behaviors. * Details: https://rxjs.dev/deprecations/multicasting */ export function publishReplay( bufferSize?: number, windowTime?: number, selectorOrScheduler?: TimestampProvider | OperatorFunction, timestampProvider?: TimestampProvider ) { if (selectorOrScheduler && !isFunction(selectorOrScheduler)) { timestampProvider = selectorOrScheduler; } const selector = isFunction(selectorOrScheduler) ? selectorOrScheduler : undefined; // Note, we're passing `selector!` here, because at runtime, `undefined` is an acceptable argument // but it makes our TypeScript signature for `multicast` unhappy (as it should, because it's gross). return (source: Observable) => multicast(new ReplaySubject(bufferSize, windowTime, timestampProvider), selector!)(source); } rxjs-7.5.7/src/internal/operators/race.ts000066400000000000000000000021771431412030200204200ustar00rootroot00000000000000import { ObservableInputTuple, OperatorFunction } from '../types'; import { argsOrArgArray } from '../util/argsOrArgArray'; import { raceWith } from './raceWith'; /** @deprecated Replaced with {@link raceWith}. Will be removed in v8. */ export function race(otherSources: [...ObservableInputTuple]): OperatorFunction; /** @deprecated Replaced with {@link raceWith}. Will be removed in v8. */ export function race(...otherSources: [...ObservableInputTuple]): OperatorFunction; /** * Returns an Observable that mirrors the first source Observable to emit a next, * error or complete notification from the combination of this Observable and supplied Observables. * @param args Sources used to race for which Observable emits first. * @return A function that returns an Observable that mirrors the output of the * first Observable to emit an item. * @deprecated Replaced with {@link raceWith}. Will be removed in v8. */ export function race(...args: any[]): OperatorFunction { return raceWith(...argsOrArgArray(args)); } rxjs-7.5.7/src/internal/operators/raceWith.ts000066400000000000000000000025051431412030200212470ustar00rootroot00000000000000import { OperatorFunction, ObservableInputTuple } from '../types'; import { raceInit } from '../observable/race'; import { operate } from '../util/lift'; import { identity } from '../util/identity'; /** * Creates an Observable that mirrors the first source Observable to emit a next, * error or complete notification from the combination of the Observable to which * the operator is applied and supplied Observables. * * ## Example * * ```ts * import { interval, map, raceWith } from 'rxjs'; * * const obs1 = interval(7000).pipe(map(() => 'slow one')); * const obs2 = interval(3000).pipe(map(() => 'fast one')); * const obs3 = interval(5000).pipe(map(() => 'medium one')); * * obs1 * .pipe(raceWith(obs2, obs3)) * .subscribe(winner => console.log(winner)); * * // Outputs * // a series of 'fast one' * ``` * * @param otherSources Sources used to race for which Observable emits first. * @return A function that returns an Observable that mirrors the output of the * first Observable to emit an item. */ export function raceWith( ...otherSources: [...ObservableInputTuple] ): OperatorFunction { return !otherSources.length ? identity : operate((source, subscriber) => { raceInit([source, ...otherSources])(subscriber); }); } rxjs-7.5.7/src/internal/operators/reduce.ts000066400000000000000000000054251431412030200207540ustar00rootroot00000000000000import { scanInternals } from './scanInternals'; import { OperatorFunction } from '../types'; import { operate } from '../util/lift'; export function reduce(accumulator: (acc: A | V, value: V, index: number) => A): OperatorFunction; export function reduce(accumulator: (acc: A, value: V, index: number) => A, seed: A): OperatorFunction; export function reduce(accumulator: (acc: A | S, value: V, index: number) => A, seed: S): OperatorFunction; /** * Applies an accumulator function over the source Observable, and returns the * accumulated result when the source completes, given an optional seed value. * * Combines together all values emitted on the source, * using an accumulator function that knows how to join a new source value into * the accumulation from the past. * * ![](reduce.png) * * Like * [Array.prototype.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce), * `reduce` applies an `accumulator` function against an accumulation and each * value of the source Observable (from the past) to reduce it to a single * value, emitted on the output Observable. Note that `reduce` will only emit * one value, only when the source Observable completes. It is equivalent to * applying operator {@link scan} followed by operator {@link last}. * * Returns an Observable that applies a specified `accumulator` function to each * item emitted by the source Observable. If a `seed` value is specified, then * that value will be used as the initial value for the accumulator. If no seed * value is specified, the first item of the source is used as the seed. * * ## Example * * Count the number of click events that happened in 5 seconds * * ```ts * import { fromEvent, takeUntil, interval, map, reduce } from 'rxjs'; * * const clicksInFiveSeconds = fromEvent(document, 'click') * .pipe(takeUntil(interval(5000))); * * const ones = clicksInFiveSeconds.pipe(map(() => 1)); * const seed = 0; * const count = ones.pipe(reduce((acc, one) => acc + one, seed)); * * count.subscribe(x => console.log(x)); * ``` * * @see {@link count} * @see {@link expand} * @see {@link mergeScan} * @see {@link scan} * * @param {function(acc: A, value: V, index: number): A} accumulator The accumulator function * called on each source value. * @param {A} [seed] The initial accumulation value. * @return A function that returns an Observable that emits a single value that * is the result of accumulating the values emitted by the source Observable. */ export function reduce(accumulator: (acc: V | A, value: V, index: number) => A, seed?: any): OperatorFunction { return operate(scanInternals(accumulator, seed, arguments.length >= 2, false, true)); } rxjs-7.5.7/src/internal/operators/refCount.ts000066400000000000000000000110561431412030200212670ustar00rootroot00000000000000import { ConnectableObservable } from '../observable/ConnectableObservable'; import { Subscription } from '../Subscription'; import { MonoTypeOperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Make a {@link ConnectableObservable} behave like a ordinary observable and automates the way * you can connect to it. * * Internally it counts the subscriptions to the observable and subscribes (only once) to the source if * the number of subscriptions is larger than 0. If the number of subscriptions is smaller than 1, it * unsubscribes from the source. This way you can make sure that everything before the *published* * refCount has only a single subscription independently of the number of subscribers to the target * observable. * * Note that using the {@link share} operator is exactly the same as using the `multicast(() => new Subject())` operator * (making the observable hot) and the *refCount* operator in a sequence. * * ![](refCount.png) * * ## Example * * In the following example there are two intervals turned into connectable observables * by using the *publish* operator. The first one uses the *refCount* operator, the * second one does not use it. You will notice that a connectable observable does nothing * until you call its connect function. * * ```ts * import { interval, tap, publish, refCount } from 'rxjs'; * * // Turn the interval observable into a ConnectableObservable (hot) * const refCountInterval = interval(400).pipe( * tap(num => console.log(`refCount ${ num }`)), * publish(), * refCount() * ); * * const publishedInterval = interval(400).pipe( * tap(num => console.log(`publish ${ num }`)), * publish() * ); * * refCountInterval.subscribe(); * refCountInterval.subscribe(); * // 'refCount 0' -----> 'refCount 1' -----> etc * // All subscriptions will receive the same value and the tap (and * // every other operator) before the `publish` operator will be executed * // only once per event independently of the number of subscriptions. * * publishedInterval.subscribe(); * // Nothing happens until you call .connect() on the observable. * ``` * * @return A function that returns an Observable that automates the connection * to ConnectableObservable. * @see {@link ConnectableObservable} * @see {@link share} * @see {@link publish} * @deprecated Replaced with the {@link share} operator. How `share` is used * will depend on the connectable observable you created just prior to the * `refCount` operator. * Details: https://rxjs.dev/deprecations/multicasting */ export function refCount(): MonoTypeOperatorFunction { return operate((source, subscriber) => { let connection: Subscription | null = null; (source as any)._refCount++; const refCounter = createOperatorSubscriber(subscriber, undefined, undefined, undefined, () => { if (!source || (source as any)._refCount <= 0 || 0 < --(source as any)._refCount) { connection = null; return; } /// // Compare the local RefCountSubscriber's connection Subscription to the // connection Subscription on the shared ConnectableObservable. In cases // where the ConnectableObservable source synchronously emits values, and // the RefCountSubscriber's downstream Observers synchronously unsubscribe, // execution continues to here before the RefCountOperator has a chance to // supply the RefCountSubscriber with the shared connection Subscription. // For example: // ``` // range(0, 10).pipe( // publish(), // refCount(), // take(5), // ) // .subscribe(); // ``` // In order to account for this case, RefCountSubscriber should only dispose // the ConnectableObservable's shared connection Subscription if the // connection Subscription exists, *and* either: // a. RefCountSubscriber doesn't have a reference to the shared connection // Subscription yet, or, // b. RefCountSubscriber's connection Subscription reference is identical // to the shared connection Subscription /// const sharedConnection = (source as any)._connection; const conn = connection; connection = null; if (sharedConnection && (!conn || sharedConnection === conn)) { sharedConnection.unsubscribe(); } subscriber.unsubscribe(); }); source.subscribe(refCounter); if (!refCounter.closed) { connection = (source as ConnectableObservable).connect(); } }); } rxjs-7.5.7/src/internal/operators/repeat.ts000066400000000000000000000123511431412030200207610ustar00rootroot00000000000000import { Subscription } from '../Subscription'; import { EMPTY } from '../observable/empty'; import { operate } from '../util/lift'; import { MonoTypeOperatorFunction, ObservableInput } from '../types'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { innerFrom } from '../observable/innerFrom'; import { timer } from '../observable/timer'; export interface RepeatConfig { /** * The number of times to repeat the source. Defaults to `Infinity`. */ count?: number; /** * If a `number`, will delay the repeat of the source by that number of milliseconds. * If a function, it will provide the number of times the source has been subscribed to, * and the return value should be a valid observable input that will notify when the source * should be repeated. If the notifier observable is empty, the result will complete. */ delay?: number | ((count: number) => ObservableInput); } /** * Returns an Observable that will resubscribe to the source stream when the source stream completes. * * Repeats all values emitted on the source. It's like {@link retry}, but for non error cases. * * ![](repeat.png) * * Repeat will output values from a source until the source completes, then it will resubscribe to the * source a specified number of times, with a specified delay. Repeat can be particularly useful in * combination with closing operators like {@link take}, {@link takeUntil}, {@link first}, or {@link takeWhile}, * as it can be used to restart a source again from scratch. * * Repeat is very similar to {@link retry}, where {@link retry} will resubscribe to the source in the error case, but * `repeat` will resubscribe if the source completes. * * Note that `repeat` will _not_ catch errors. Use {@link retry} for that. * * - `repeat(0)` returns an empty observable * - `repeat()` will repeat forever * - `repeat({ delay: 200 })` will repeat forever, with a delay of 200ms between repetitions. * - `repeat({ count: 2, delay: 400 })` will repeat twice, with a delay of 400ms between repetitions. * - `repeat({ delay: (count) => timer(count * 1000) })` will repeat forever, but will have a delay that grows by one second for each repetition. * * ## Example * * Repeat a message stream * * ```ts * import { of, repeat } from 'rxjs'; * * const source = of('Repeat message'); * const result = source.pipe(repeat(3)); * * result.subscribe(x => console.log(x)); * * // Results * // 'Repeat message' * // 'Repeat message' * // 'Repeat message' * ``` * * Repeat 3 values, 2 times * * ```ts * import { interval, take, repeat } from 'rxjs'; * * const source = interval(1000); * const result = source.pipe(take(3), repeat(2)); * * result.subscribe(x => console.log(x)); * * // Results every second * // 0 * // 1 * // 2 * // 0 * // 1 * // 2 * ``` * * Defining two complex repeats with delays on the same source. * Note that the second repeat cannot be called until the first * repeat as exhausted it's count. * * ```ts * import { defer, of, repeat } from 'rxjs'; * * const source = defer(() => { * return of(`Hello, it is ${new Date()}`) * }); * * source.pipe( * // Repeat 3 times with a delay of 1 second between repetitions * repeat({ * count: 3, * delay: 1000, * }), * * // *Then* repeat forever, but with an exponential step-back * // maxing out at 1 minute. * repeat({ * delay: (count) => timer(Math.min(60000, 2 ^ count * 1000)) * }) * ) * ``` * * @see {@link repeatWhen} * @see {@link retry} * * @param count The number of times the source Observable items are repeated, a count of 0 will yield * an empty Observable. */ export function repeat(countOrConfig?: number | RepeatConfig): MonoTypeOperatorFunction { let count = Infinity; let delay: RepeatConfig['delay']; if (countOrConfig != null) { if (typeof countOrConfig === 'object') { ({ count = Infinity, delay } = countOrConfig); } else { count = countOrConfig; } } return count <= 0 ? () => EMPTY : operate((source, subscriber) => { let soFar = 0; let sourceSub: Subscription | null; const resubscribe = () => { sourceSub?.unsubscribe(); sourceSub = null; if (delay != null) { const notifier = typeof delay === 'number' ? timer(delay) : innerFrom(delay(soFar)); const notifierSubscriber = createOperatorSubscriber(subscriber, () => { notifierSubscriber.unsubscribe(); subscribeToSource(); }); notifier.subscribe(notifierSubscriber); } else { subscribeToSource(); } }; const subscribeToSource = () => { let syncUnsub = false; sourceSub = source.subscribe( createOperatorSubscriber(subscriber, undefined, () => { if (++soFar < count) { if (sourceSub) { resubscribe(); } else { syncUnsub = true; } } else { subscriber.complete(); } }) ); if (syncUnsub) { resubscribe(); } }; subscribeToSource(); }); } rxjs-7.5.7/src/internal/operators/repeatWhen.ts000066400000000000000000000111771431412030200216100ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Subject } from '../Subject'; import { Subscription } from '../Subscription'; import { MonoTypeOperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Returns an Observable that mirrors the source Observable with the exception of a `complete`. If the source * Observable calls `complete`, this method will emit to the Observable returned from `notifier`. If that Observable * calls `complete` or `error`, then this method will call `complete` or `error` on the child subscription. Otherwise * this method will resubscribe to the source Observable. * * ![](repeatWhen.png) * * ## Example * * Repeat a message stream on click * * ```ts * import { of, fromEvent, repeatWhen } from 'rxjs'; * * const source = of('Repeat message'); * const documentClick$ = fromEvent(document, 'click'); * * const result = source.pipe(repeatWhen(() => documentClick$)); * * result.subscribe(data => console.log(data)) * ``` * * @see {@link repeat} * @see {@link retry} * @see {@link retryWhen} * * @param {function(notifications: Observable): Observable} notifier - Receives an Observable of notifications with * which a user can `complete` or `error`, aborting the repetition. * @return A function that returns an Observable that mirrors the source * Observable with the exception of a `complete`. * @deprecated Will be removed in v9 or v10. Use {@link repeat}'s `delay` option instead. */ export function repeatWhen(notifier: (notifications: Observable) => Observable): MonoTypeOperatorFunction { return operate((source, subscriber) => { let innerSub: Subscription | null; let syncResub = false; let completions$: Subject; let isNotifierComplete = false; let isMainComplete = false; /** * Checks to see if we can complete the result, completes it, and returns `true` if it was completed. */ const checkComplete = () => isMainComplete && isNotifierComplete && (subscriber.complete(), true); /** * Gets the subject to send errors through. If it doesn't exist, * we know we need to setup the notifier. */ const getCompletionSubject = () => { if (!completions$) { completions$ = new Subject(); // If the call to `notifier` throws, it will be caught by the OperatorSubscriber // In the main subscription -- in `subscribeForRepeatWhen`. notifier(completions$).subscribe( createOperatorSubscriber( subscriber, () => { if (innerSub) { subscribeForRepeatWhen(); } else { // If we don't have an innerSub yet, that's because the inner subscription // call hasn't even returned yet. We've arrived here synchronously. // So we flag that we want to resub, such that we can ensure finalization // happens before we resubscribe. syncResub = true; } }, () => { isNotifierComplete = true; checkComplete(); } ) ); } return completions$; }; const subscribeForRepeatWhen = () => { isMainComplete = false; innerSub = source.subscribe( createOperatorSubscriber(subscriber, undefined, () => { isMainComplete = true; // Check to see if we are complete, and complete if so. // If we are not complete. Get the subject. This calls the `notifier` function. // If that function fails, it will throw and `.next()` will not be reached on this // line. The thrown error is caught by the _complete handler in this // `OperatorSubscriber` and handled appropriately. !checkComplete() && getCompletionSubject().next(); }) ); if (syncResub) { // Ensure that the inner subscription is torn down before // moving on to the next subscription in the synchronous case. // If we don't do this here, all inner subscriptions will not be // torn down until the entire observable is done. innerSub.unsubscribe(); // It is important to null this out. Not only to free up memory, but // to make sure code above knows we are in a subscribing state to // handle synchronous resubscription. innerSub = null; // We may need to do this multiple times, so reset the flags. syncResub = false; // Resubscribe subscribeForRepeatWhen(); } }; // Start the subscription subscribeForRepeatWhen(); }); } rxjs-7.5.7/src/internal/operators/retry.ts000066400000000000000000000146071431412030200206540ustar00rootroot00000000000000import { MonoTypeOperatorFunction, ObservableInput } from '../types'; import { operate } from '../util/lift'; import { Subscription } from '../Subscription'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { identity } from '../util/identity'; import { timer } from '../observable/timer'; import { innerFrom } from '../observable/innerFrom'; /** * The {@link retry} operator configuration object. `retry` either accepts a `number` * or an object described by this interface. */ export interface RetryConfig { /** * The maximum number of times to retry. If `count` is omitted, `retry` will try to * resubscribe on errors infinite number of times. */ count?: number; /** * The number of milliseconds to delay before retrying, OR a function to * return a notifier for delaying. If a function is given, that function should * return a notifier that, when it emits will retry the source. If the notifier * completes _without_ emitting, the resulting observable will complete without error, * if the notifier errors, the error will be pushed to the result. */ delay?: number | ((error: any, retryCount: number) => ObservableInput); /** * Whether or not to reset the retry counter when the retried subscription * emits its first value. */ resetOnSuccess?: boolean; } export function retry(count?: number): MonoTypeOperatorFunction; export function retry(config: RetryConfig): MonoTypeOperatorFunction; /** * Returns an Observable that mirrors the source Observable with the exception of an `error`. * * If the source Observable calls `error`, this method will resubscribe to the source Observable for a maximum of * `count` resubscriptions rather than propagating the `error` call. * * ![](retry.png) * * The number of retries is determined by the `count` parameter. It can be set either by passing a number to * `retry` function or by setting `count` property when `retry` is configured using {@link RetryConfig}. If * `count` is omitted, `retry` will try to resubscribe on errors infinite number of times. * * Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those * emitted during failed subscriptions. For example, if an Observable fails at first but emits `[1, 2]` then * succeeds the second time and emits: `[1, 2, 3, 4, 5, complete]` then the complete stream of emissions and * notifications would be: `[1, 2, 1, 2, 3, 4, 5, complete]`. * * ## Example * * ```ts * import { interval, mergeMap, throwError, of, retry } from 'rxjs'; * * const source = interval(1000); * const result = source.pipe( * mergeMap(val => val > 5 ? throwError(() => 'Error!') : of(val)), * retry(2) // retry 2 times on error * ); * * result.subscribe({ * next: value => console.log(value), * error: err => console.log(`${ err }: Retried 2 times then quit!`) * }); * * // Output: * // 0..1..2..3..4..5.. * // 0..1..2..3..4..5.. * // 0..1..2..3..4..5.. * // 'Error!: Retried 2 times then quit!' * ``` * * @see {@link retryWhen} * * @param configOrCount - Either number of retry attempts before failing or a {@link RetryConfig} object. * @return A function that returns an Observable that will resubscribe to the * source stream when the source stream errors, at most `count` times. */ export function retry(configOrCount: number | RetryConfig = Infinity): MonoTypeOperatorFunction { let config: RetryConfig; if (configOrCount && typeof configOrCount === 'object') { config = configOrCount; } else { config = { count: configOrCount as number, }; } const { count = Infinity, delay, resetOnSuccess: resetOnSuccess = false } = config; return count <= 0 ? identity : operate((source, subscriber) => { let soFar = 0; let innerSub: Subscription | null; const subscribeForRetry = () => { let syncUnsub = false; innerSub = source.subscribe( createOperatorSubscriber( subscriber, (value) => { // If we're resetting on success if (resetOnSuccess) { soFar = 0; } subscriber.next(value); }, // Completions are passed through to consumer. undefined, (err) => { if (soFar++ < count) { // We are still under our retry count const resub = () => { if (innerSub) { innerSub.unsubscribe(); innerSub = null; subscribeForRetry(); } else { syncUnsub = true; } }; if (delay != null) { // The user specified a retry delay. // They gave us a number, use a timer, otherwise, it's a function, // and we're going to call it to get a notifier. const notifier = typeof delay === 'number' ? timer(delay) : innerFrom(delay(err, soFar)); const notifierSubscriber = createOperatorSubscriber( subscriber, () => { // After we get the first notification, we // unsubscribe from the notifier, because we don't want anymore // and we resubscribe to the source. notifierSubscriber.unsubscribe(); resub(); }, () => { // The notifier completed without emitting. // The author is telling us they want to complete. subscriber.complete(); } ); notifier.subscribe(notifierSubscriber); } else { // There was no notifier given. Just resub immediately. resub(); } } else { // We're past our maximum number of retries. // Just send along the error. subscriber.error(err); } } ) ); if (syncUnsub) { innerSub.unsubscribe(); innerSub = null; subscribeForRetry(); } }; subscribeForRetry(); }); } rxjs-7.5.7/src/internal/operators/retryWhen.ts000066400000000000000000000074001431412030200214670ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Subject } from '../Subject'; import { Subscription } from '../Subscription'; import { MonoTypeOperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Returns an Observable that mirrors the source Observable with the exception of an `error`. If the source Observable * calls `error`, this method will emit the Throwable that caused the error to the Observable returned from `notifier`. * If that Observable calls `complete` or `error` then this method will call `complete` or `error` on the child * subscription. Otherwise this method will resubscribe to the source Observable. * * ![](retryWhen.png) * * Retry an observable sequence on error based on custom criteria. * * ## Example * * ```ts * import { interval, map, retryWhen, tap, delayWhen, timer } from 'rxjs'; * * const source = interval(1000); * const result = source.pipe( * map(value => { * if (value > 5) { * // error will be picked up by retryWhen * throw value; * } * return value; * }), * retryWhen(errors => * errors.pipe( * // log error message * tap(value => console.log(`Value ${ value } was too high!`)), * // restart in 5 seconds * delayWhen(value => timer(value * 1000)) * ) * ) * ); * * result.subscribe(value => console.log(value)); * * // results: * // 0 * // 1 * // 2 * // 3 * // 4 * // 5 * // 'Value 6 was too high!' * // - Wait 5 seconds then repeat * ``` * * @see {@link retry} * * @param {function(errors: Observable): Observable} notifier - Receives an Observable of notifications with which a * user can `complete` or `error`, aborting the retry. * @return A function that returns an Observable that mirrors the source * Observable with the exception of an `error`. * @deprecated Will be removed in v9 or v10, use {@link retry}'s `delay` option instead. */ export function retryWhen(notifier: (errors: Observable) => Observable): MonoTypeOperatorFunction { return operate((source, subscriber) => { let innerSub: Subscription | null; let syncResub = false; let errors$: Subject; const subscribeForRetryWhen = () => { innerSub = source.subscribe( createOperatorSubscriber(subscriber, undefined, undefined, (err) => { if (!errors$) { errors$ = new Subject(); notifier(errors$).subscribe( createOperatorSubscriber(subscriber, () => // If we have an innerSub, this was an asynchronous call, kick off the retry. // Otherwise, if we don't have an innerSub yet, that's because the inner subscription // call hasn't even returned yet. We've arrived here synchronously. // So we flag that we want to resub, such that we can ensure finalization // happens before we resubscribe. innerSub ? subscribeForRetryWhen() : (syncResub = true) ) ); } if (errors$) { // We have set up the notifier without error. errors$.next(err); } }) ); if (syncResub) { // Ensure that the inner subscription is torn down before // moving on to the next subscription in the synchronous case. // If we don't do this here, all inner subscriptions will not be // torn down until the entire observable is done. innerSub.unsubscribe(); innerSub = null; // We may need to do this multiple times, so reset the flag. syncResub = false; // Resubscribe subscribeForRetryWhen(); } }; // Start the subscription subscribeForRetryWhen(); }); } rxjs-7.5.7/src/internal/operators/sample.ts000066400000000000000000000042611431412030200207630ustar00rootroot00000000000000import { Observable } from '../Observable'; import { MonoTypeOperatorFunction } from '../types'; import { operate } from '../util/lift'; import { noop } from '../util/noop'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Emits the most recently emitted value from the source Observable whenever * another Observable, the `notifier`, emits. * * It's like {@link sampleTime}, but samples whenever * the `notifier` Observable emits something. * * ![](sample.png) * * Whenever the `notifier` Observable emits a value, `sample` * looks at the source Observable and emits whichever value it has most recently * emitted since the previous sampling, unless the source has not emitted * anything since the previous sampling. The `notifier` is subscribed to as soon * as the output Observable is subscribed. * * ## Example * * On every click, sample the most recent `seconds` timer * * ```ts * import { fromEvent, interval, sample } from 'rxjs'; * * const seconds = interval(1000); * const clicks = fromEvent(document, 'click'); * const result = seconds.pipe(sample(clicks)); * * result.subscribe(x => console.log(x)); * ``` * * @see {@link audit} * @see {@link debounce} * @see {@link sampleTime} * @see {@link throttle} * * @param notifier The Observable to use for sampling the * source Observable. * @return A function that returns an Observable that emits the results of * sampling the values emitted by the source Observable whenever the notifier * Observable emits value or completes. */ export function sample(notifier: Observable): MonoTypeOperatorFunction { return operate((source, subscriber) => { let hasValue = false; let lastValue: T | null = null; source.subscribe( createOperatorSubscriber(subscriber, (value) => { hasValue = true; lastValue = value; }) ); notifier.subscribe( createOperatorSubscriber( subscriber, () => { if (hasValue) { hasValue = false; const value = lastValue!; lastValue = null; subscriber.next(value); } }, noop ) ); }); } rxjs-7.5.7/src/internal/operators/sampleTime.ts000066400000000000000000000036211431412030200216010ustar00rootroot00000000000000import { asyncScheduler } from '../scheduler/async'; import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; import { sample } from './sample'; import { interval } from '../observable/interval'; /** * Emits the most recently emitted value from the source Observable within * periodic time intervals. * * Samples the source Observable at periodic time * intervals, emitting what it samples. * * ![](sampleTime.png) * * `sampleTime` periodically looks at the source Observable and emits whichever * value it has most recently emitted since the previous sampling, unless the * source has not emitted anything since the previous sampling. The sampling * happens periodically in time every `period` milliseconds (or the time unit * defined by the optional `scheduler` argument). The sampling starts as soon as * the output Observable is subscribed. * * ## Example * * Every second, emit the most recent click at most once * * ```ts * import { fromEvent, sampleTime } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(sampleTime(1000)); * * result.subscribe(x => console.log(x)); * ``` * * @see {@link auditTime} * @see {@link debounceTime} * @see {@link delay} * @see {@link sample} * @see {@link throttleTime} * * @param {number} period The sampling period expressed in milliseconds or the * time unit determined internally by the optional `scheduler`. * @param {SchedulerLike} [scheduler=async] The {@link SchedulerLike} to use for * managing the timers that handle the sampling. * @return A function that returns an Observable that emits the results of * sampling the values emitted by the source Observable at the specified time * interval. */ export function sampleTime(period: number, scheduler: SchedulerLike = asyncScheduler): MonoTypeOperatorFunction { return sample(interval(period, scheduler)); } rxjs-7.5.7/src/internal/operators/scan.ts000066400000000000000000000100571431412030200204260ustar00rootroot00000000000000import { OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { scanInternals } from './scanInternals'; export function scan(accumulator: (acc: A | V, value: V, index: number) => A): OperatorFunction; export function scan(accumulator: (acc: A, value: V, index: number) => A, seed: A): OperatorFunction; export function scan(accumulator: (acc: A | S, value: V, index: number) => A, seed: S): OperatorFunction; // TODO: link to a "redux pattern" section in the guide (location TBD) /** * Useful for encapsulating and managing state. Applies an accumulator (or "reducer function") * to each value from the source after an initial state is established -- either via * a `seed` value (second argument), or from the first value from the source. * * It's like {@link reduce}, but emits the current * accumulation state after each update * * ![](scan.png) * * This operator maintains an internal state and emits it after processing each value as follows: * * 1. First value arrives * - If a `seed` value was supplied (as the second argument to `scan`), let `state = seed` and `value = firstValue`. * - If NO `seed` value was supplied (no second argument), let `state = firstValue` and go to 3. * 2. Let `state = accumulator(state, value)`. * - If an error is thrown by `accumulator`, notify the consumer of an error. The process ends. * 3. Emit `state`. * 4. Next value arrives, let `value = nextValue`, go to 2. * * ## Examples * * An average of previous numbers. This example shows how * not providing a `seed` can prime the stream with the * first value from the source. * * ```ts * import { of, scan, map } from 'rxjs'; * * const numbers$ = of(1, 2, 3); * * numbers$ * .pipe( * // Get the sum of the numbers coming in. * scan((total, n) => total + n), * // Get the average by dividing the sum by the total number * // received so var (which is 1 more than the zero-based index). * map((sum, index) => sum / (index + 1)) * ) * .subscribe(console.log); * ``` * * The Fibonacci sequence. This example shows how you can use * a seed to prime accumulation process. Also... you know... Fibonacci. * So important to like, computers and stuff that its whiteboarded * in job interviews. Now you can show them the Rx version! (Please don't, haha) * * ```ts * import { interval, scan, map, startWith } from 'rxjs'; * * const firstTwoFibs = [0, 1]; * // An endless stream of Fibonacci numbers. * const fibonacci$ = interval(1000).pipe( * // Scan to get the fibonacci numbers (after 0, 1) * scan(([a, b]) => [b, a + b], firstTwoFibs), * // Get the second number in the tuple, it's the one you calculated * map(([, n]) => n), * // Start with our first two digits :) * startWith(...firstTwoFibs) * ); * * fibonacci$.subscribe(console.log); * ``` * * @see {@link expand} * @see {@link mergeScan} * @see {@link reduce} * @see {@link switchScan} * * @param accumulator A "reducer function". This will be called for each value after an initial state is * acquired. * @param seed The initial state. If this is not provided, the first value from the source will * be used as the initial state, and emitted without going through the accumulator. All subsequent values * will be processed by the accumulator function. If this is provided, all values will go through * the accumulator function. * @return A function that returns an Observable of the accumulated values. */ export function scan(accumulator: (acc: V | A | S, value: V, index: number) => A, seed?: S): OperatorFunction { // providing a seed of `undefined` *should* be valid and trigger // hasSeed! so don't use `seed !== undefined` checks! // For this reason, we have to check it here at the original call site // otherwise inside Operator/Subscriber we won't know if `undefined` // means they didn't provide anything or if they literally provided `undefined` return operate(scanInternals(accumulator, seed as S, arguments.length >= 2, true)); } rxjs-7.5.7/src/internal/operators/scanInternals.ts000066400000000000000000000043271431412030200223110ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Subscriber } from '../Subscriber'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * A basic scan operation. This is used for `scan` and `reduce`. * @param accumulator The accumulator to use * @param seed The seed value for the state to accumulate * @param hasSeed Whether or not a seed was provided * @param emitOnNext Whether or not to emit the state on next * @param emitBeforeComplete Whether or not to emit the before completion */ export function scanInternals( accumulator: (acc: V | A | S, value: V, index: number) => A, seed: S, hasSeed: boolean, emitOnNext: boolean, emitBeforeComplete?: undefined | true ) { return (source: Observable, subscriber: Subscriber) => { // Whether or not we have state yet. This will only be // false before the first value arrives if we didn't get // a seed value. let hasState = hasSeed; // The state that we're tracking, starting with the seed, // if there is one, and then updated by the return value // from the accumulator on each emission. let state: any = seed; // An index to pass to the accumulator function. let index = 0; // Subscribe to our source. All errors and completions are passed through. source.subscribe( createOperatorSubscriber( subscriber, (value) => { // Always increment the index. const i = index++; // Set the state state = hasState ? // We already have state, so we can get the new state from the accumulator accumulator(state, value, i) : // We didn't have state yet, a seed value was not provided, so // we set the state to the first value, and mark that we have state now ((hasState = true), value); // Maybe send it to the consumer. emitOnNext && subscriber.next(state); }, // If an onComplete was given, call it, otherwise // just pass through the complete notification to the consumer. emitBeforeComplete && (() => { hasState && subscriber.next(state); subscriber.complete(); }) ) ); }; } rxjs-7.5.7/src/internal/operators/sequenceEqual.ts000066400000000000000000000124741431412030200223070ustar00rootroot00000000000000import { Observable } from '../Observable'; import { OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Compares all values of two observables in sequence using an optional comparator function * and returns an observable of a single boolean value representing whether or not the two sequences * are equal. * * Checks to see of all values emitted by both observables are equal, in order. * * ![](sequenceEqual.png) * * `sequenceEqual` subscribes to two observables and buffers incoming values from each observable. Whenever either * observable emits a value, the value is buffered and the buffers are shifted and compared from the bottom * up; If any value pair doesn't match, the returned observable will emit `false` and complete. If one of the * observables completes, the operator will wait for the other observable to complete; If the other * observable emits before completing, the returned observable will emit `false` and complete. If one observable never * completes or emits after the other completes, the returned observable will never complete. * * ## Example * * Figure out if the Konami code matches * * ```ts * import { from, fromEvent, map, bufferCount, mergeMap, sequenceEqual } from 'rxjs'; * * const codes = from([ * 'ArrowUp', * 'ArrowUp', * 'ArrowDown', * 'ArrowDown', * 'ArrowLeft', * 'ArrowRight', * 'ArrowLeft', * 'ArrowRight', * 'KeyB', * 'KeyA', * 'Enter', // no start key, clearly. * ]); * * const keys = fromEvent(document, 'keyup').pipe(map(e => e.code)); * const matches = keys.pipe( * bufferCount(11, 1), * mergeMap(last11 => from(last11).pipe(sequenceEqual(codes))) * ); * matches.subscribe(matched => console.log('Successful cheat at Contra? ', matched)); * ``` * * @see {@link combineLatest} * @see {@link zip} * @see {@link withLatestFrom} * * @param {Observable} compareTo The observable sequence to compare the source sequence to. * @param {function} [comparator] An optional function to compare each value pair * @return A function that returns an Observable that emits a single boolean * value representing whether or not the values emitted by the source * Observable and provided Observable were equal in sequence. */ export function sequenceEqual( compareTo: Observable, comparator: (a: T, b: T) => boolean = (a, b) => a === b ): OperatorFunction { return operate((source, subscriber) => { // The state for the source observable const aState = createState(); // The state for the compareTo observable; const bState = createState(); /** A utility to emit and complete */ const emit = (isEqual: boolean) => { subscriber.next(isEqual); subscriber.complete(); }; /** * Creates a subscriber that subscribes to one of the sources, and compares its collected * state -- `selfState` -- to the other source's collected state -- `otherState`. This * is used for both streams. */ const createSubscriber = (selfState: SequenceState, otherState: SequenceState) => { const sequenceEqualSubscriber = createOperatorSubscriber( subscriber, (a: T) => { const { buffer, complete } = otherState; if (buffer.length === 0) { // If there's no values in the other buffer // and the other stream is complete, we know // this isn't a match, because we got one more value. // Otherwise, we push onto our buffer, so when the other // stream emits, it can pull this value off our buffer and check it // at the appropriate time. complete ? emit(false) : selfState.buffer.push(a); } else { // If the other stream *does* have values in it's buffer, // pull the oldest one off so we can compare it to what we // just got. If it wasn't a match, emit `false` and complete. !comparator(a, buffer.shift()!) && emit(false); } }, () => { // Or observable completed selfState.complete = true; const { complete, buffer } = otherState; // If the other observable is also complete, and there's // still stuff left in their buffer, it doesn't match, if their // buffer is empty, then it does match. This is because we can't // possibly get more values here anymore. complete && emit(buffer.length === 0); // Be sure to clean up our stream as soon as possible if we can. sequenceEqualSubscriber?.unsubscribe(); } ); return sequenceEqualSubscriber; }; // Subscribe to each source. source.subscribe(createSubscriber(aState, bState)); compareTo.subscribe(createSubscriber(bState, aState)); }); } /** * A simple structure for the data used to test each sequence */ interface SequenceState { /** A temporary store for arrived values before they are checked */ buffer: T[]; /** Whether or not the sequence source has completed. */ complete: boolean; } /** * Creates a simple structure that is used to represent * data used to test each sequence. */ function createState(): SequenceState { return { buffer: [], complete: false, }; } rxjs-7.5.7/src/internal/operators/share.ts000066400000000000000000000257721431412030200206160ustar00rootroot00000000000000import { Observable } from '../Observable'; import { innerFrom } from '../observable/innerFrom'; import { Subject } from '../Subject'; import { SafeSubscriber } from '../Subscriber'; import { Subscription } from '../Subscription'; import { MonoTypeOperatorFunction, SubjectLike } from '../types'; import { operate } from '../util/lift'; export interface ShareConfig { /** * The factory used to create the subject that will connect the source observable to * multicast consumers. */ connector?: () => SubjectLike; /** * If true, the resulting observable will reset internal state on error from source and return to a "cold" state. This * allows the resulting observable to be "retried" in the event of an error. * If false, when an error comes from the source it will push the error into the connecting subject, and the subject * will remain the connecting subject, meaning the resulting observable will not go "cold" again, and subsequent retries * or resubscriptions will resubscribe to that same subject. In all cases, RxJS subjects will emit the same error again, however * {@link ReplaySubject} will also push its buffered values before pushing the error. * It is also possible to pass a notifier factory returning an observable instead which grants more fine-grained * control over how and when the reset should happen. This allows behaviors like conditional or delayed resets. */ resetOnError?: boolean | ((error: any) => Observable); /** * If true, the resulting observable will reset internal state on completion from source and return to a "cold" state. This * allows the resulting observable to be "repeated" after it is done. * If false, when the source completes, it will push the completion through the connecting subject, and the subject * will remain the connecting subject, meaning the resulting observable will not go "cold" again, and subsequent repeats * or resubscriptions will resubscribe to that same subject. * It is also possible to pass a notifier factory returning an observable instead which grants more fine-grained * control over how and when the reset should happen. This allows behaviors like conditional or delayed resets. */ resetOnComplete?: boolean | (() => Observable); /** * If true, when the number of subscribers to the resulting observable reaches zero due to those subscribers unsubscribing, the * internal state will be reset and the resulting observable will return to a "cold" state. This means that the next * time the resulting observable is subscribed to, a new subject will be created and the source will be subscribed to * again. * If false, when the number of subscribers to the resulting observable reaches zero due to unsubscription, the subject * will remain connected to the source, and new subscriptions to the result will be connected through that same subject. * It is also possible to pass a notifier factory returning an observable instead which grants more fine-grained * control over how and when the reset should happen. This allows behaviors like conditional or delayed resets. */ resetOnRefCountZero?: boolean | (() => Observable); } export function share(): MonoTypeOperatorFunction; export function share(options: ShareConfig): MonoTypeOperatorFunction; /** * Returns a new Observable that multicasts (shares) the original Observable. As long as there is at least one * Subscriber this Observable will be subscribed and emitting data. When all subscribers have unsubscribed it will * unsubscribe from the source Observable. Because the Observable is multicasting it makes the stream `hot`. * This is an alias for `multicast(() => new Subject()), refCount()`. * * The subscription to the underlying source Observable can be reset (unsubscribe and resubscribe for new subscribers), * if the subscriber count to the shared observable drops to 0, or if the source Observable errors or completes. It is * possible to use notifier factories for the resets to allow for behaviors like conditional or delayed resets. Please * note that resetting on error or complete of the source Observable does not behave like a transparent retry or restart * of the source because the error or complete will be forwarded to all subscribers and their subscription will be * closed. Only new subscribers after a reset on error or complete happened will cause a fresh subscription to the * source. To achieve transparent retries or restarts pipe the source through appropriate operators before sharing. * * ![](share.png) * * ## Example * * Generate new multicast Observable from the `source` Observable value * * ```ts * import { interval, tap, map, take, share } from 'rxjs'; * * const source = interval(1000).pipe( * tap(x => console.log('Processing: ', x)), * map(x => x * x), * take(6), * share() * ); * * source.subscribe(x => console.log('subscription 1: ', x)); * source.subscribe(x => console.log('subscription 2: ', x)); * * // Logs: * // Processing: 0 * // subscription 1: 0 * // subscription 2: 0 * // Processing: 1 * // subscription 1: 1 * // subscription 2: 1 * // Processing: 2 * // subscription 1: 4 * // subscription 2: 4 * // Processing: 3 * // subscription 1: 9 * // subscription 2: 9 * // Processing: 4 * // subscription 1: 16 * // subscription 2: 16 * // Processing: 5 * // subscription 1: 25 * // subscription 2: 25 * ``` * * ## Example with notifier factory: Delayed reset * * ```ts * import { interval, take, share, timer } from 'rxjs'; * * const source = interval(1000).pipe( * take(3), * share({ * resetOnRefCountZero: () => timer(1000) * }) * ); * * const subscriptionOne = source.subscribe(x => console.log('subscription 1: ', x)); * setTimeout(() => subscriptionOne.unsubscribe(), 1300); * * setTimeout(() => source.subscribe(x => console.log('subscription 2: ', x)), 1700); * * setTimeout(() => source.subscribe(x => console.log('subscription 3: ', x)), 5000); * * // Logs: * // subscription 1: 0 * // (subscription 1 unsubscribes here) * // (subscription 2 subscribes here ~400ms later, source was not reset) * // subscription 2: 1 * // subscription 2: 2 * // (subscription 2 unsubscribes here) * // (subscription 3 subscribes here ~2000ms later, source did reset before) * // subscription 3: 0 * // subscription 3: 1 * // subscription 3: 2 * ``` * * @see {@link shareReplay} * * @return A function that returns an Observable that mirrors the source. */ export function share(options: ShareConfig = {}): MonoTypeOperatorFunction { const { connector = () => new Subject(), resetOnError = true, resetOnComplete = true, resetOnRefCountZero = true } = options; // It's necessary to use a wrapper here, as the _operator_ must be // referentially transparent. Otherwise, it cannot be used in calls to the // static `pipe` function - to create a partial pipeline. // // The _operator function_ - the function returned by the _operator_ - will // not be referentially transparent - as it shares its source - but the // _operator function_ is called when the complete pipeline is composed via a // call to a source observable's `pipe` method - not when the static `pipe` // function is called. return (wrapperSource) => { let connection: SafeSubscriber | undefined; let resetConnection: Subscription | undefined; let subject: SubjectLike | undefined; let refCount = 0; let hasCompleted = false; let hasErrored = false; const cancelReset = () => { resetConnection?.unsubscribe(); resetConnection = undefined; }; // Used to reset the internal state to a "cold" // state, as though it had never been subscribed to. const reset = () => { cancelReset(); connection = subject = undefined; hasCompleted = hasErrored = false; }; const resetAndUnsubscribe = () => { // We need to capture the connection before // we reset (if we need to reset). const conn = connection; reset(); conn?.unsubscribe(); }; return operate((source, subscriber) => { refCount++; if (!hasErrored && !hasCompleted) { cancelReset(); } // Create the subject if we don't have one yet. Grab a local reference to // it as well, which avoids non-null assertions when using it and, if we // connect to it now, then error/complete need a reference after it was // reset. const dest = (subject = subject ?? connector()); // Add the finalization directly to the subscriber - instead of returning it - // so that the handling of the subscriber's unsubscription will be wired // up _before_ the subscription to the source occurs. This is done so that // the assignment to the source connection's `closed` property will be seen // by synchronous firehose sources. subscriber.add(() => { refCount--; // If we're resetting on refCount === 0, and it's 0, we only want to do // that on "unsubscribe", really. Resetting on error or completion is a different // configuration. if (refCount === 0 && !hasErrored && !hasCompleted) { resetConnection = handleReset(resetAndUnsubscribe, resetOnRefCountZero); } }); // The following line adds the subscription to the subscriber passed. // Basically, `subscriber === dest.subscribe(subscriber)` is `true`. dest.subscribe(subscriber); if ( !connection && // Check this shareReplay is still activate - it can be reset to 0 // and be "unsubscribed" _before_ it actually subscribes. // If we were to subscribe then, it'd leak and get stuck. refCount > 0 ) { // We need to create a subscriber here - rather than pass an observer and // assign the returned subscription to connection - because it's possible // for reentrant subscriptions to the shared observable to occur and in // those situations we want connection to be already-assigned so that we // don't create another connection to the source. connection = new SafeSubscriber({ next: (value) => dest.next(value), error: (err) => { hasErrored = true; cancelReset(); resetConnection = handleReset(reset, resetOnError, err); dest.error(err); }, complete: () => { hasCompleted = true; cancelReset(); resetConnection = handleReset(reset, resetOnComplete); dest.complete(); }, }); innerFrom(source).subscribe(connection); } })(wrapperSource); }; } function handleReset( reset: () => void, on: boolean | ((...args: T) => Observable), ...args: T ): Subscription | undefined { if (on === true) { reset(); return; } if (on === false) { return; } const onSubscriber = new SafeSubscriber({ next: () => { onSubscriber.unsubscribe(); reset(); }, }); return on(...args).subscribe(onSubscriber); } rxjs-7.5.7/src/internal/operators/shareReplay.ts000066400000000000000000000137341431412030200217660ustar00rootroot00000000000000import { ReplaySubject } from '../ReplaySubject'; import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; import { share } from './share'; export interface ShareReplayConfig { bufferSize?: number; windowTime?: number; refCount: boolean; scheduler?: SchedulerLike; } export function shareReplay(config: ShareReplayConfig): MonoTypeOperatorFunction; export function shareReplay(bufferSize?: number, windowTime?: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; /** * Share source and replay specified number of emissions on subscription. * * This operator is a specialization of `replay` that connects to a source observable * and multicasts through a `ReplaySubject` constructed with the specified arguments. * A successfully completed source will stay cached in the `shareReplay`ed observable forever, * but an errored source can be retried. * * ## Why use `shareReplay`? * * You generally want to use `shareReplay` when you have side-effects or taxing computations * that you do not wish to be executed amongst multiple subscribers. * It may also be valuable in situations where you know you will have late subscribers to * a stream that need access to previously emitted values. * This ability to replay values on subscription is what differentiates {@link share} and `shareReplay`. * * ## Reference counting * * By default `shareReplay` will use `refCount` of false, meaning that it will _not_ unsubscribe the * source when the reference counter drops to zero, i.e. the inner `ReplaySubject` will _not_ be unsubscribed * (and potentially run for ever). * This is the default as it is expected that `shareReplay` is often used to keep around expensive to setup * observables which we want to keep running instead of having to do the expensive setup again. * * As of RXJS version 6.4.0 a new overload signature was added to allow for manual control over what * happens when the operators internal reference counter drops to zero. * If `refCount` is true, the source will be unsubscribed from once the reference count drops to zero, i.e. * the inner `ReplaySubject` will be unsubscribed. All new subscribers will receive value emissions from a * new `ReplaySubject` which in turn will cause a new subscription to the source observable. * * ## Examples * * Example with a third subscriber coming late to the party * * ```ts * import { interval, take, shareReplay } from 'rxjs'; * * const shared$ = interval(2000).pipe( * take(6), * shareReplay(3) * ); * * shared$.subscribe(x => console.log('sub A: ', x)); * shared$.subscribe(y => console.log('sub B: ', y)); * * setTimeout(() => { * shared$.subscribe(y => console.log('sub C: ', y)); * }, 11000); * * // Logs: * // (after ~2000 ms) * // sub A: 0 * // sub B: 0 * // (after ~4000 ms) * // sub A: 1 * // sub B: 1 * // (after ~6000 ms) * // sub A: 2 * // sub B: 2 * // (after ~8000 ms) * // sub A: 3 * // sub B: 3 * // (after ~10000 ms) * // sub A: 4 * // sub B: 4 * // (after ~11000 ms, sub C gets the last 3 values) * // sub C: 2 * // sub C: 3 * // sub C: 4 * // (after ~12000 ms) * // sub A: 5 * // sub B: 5 * // sub C: 5 * ``` * * Example for `refCount` usage * * ```ts * import { Observable, tap, interval, shareReplay, take } from 'rxjs'; * * const log = (name: string, source: Observable) => source.pipe( * tap({ * subscribe: () => console.log(`${ name }: subscribed`), * next: value => console.log(`${ name }: ${ value }`), * complete: () => console.log(`${ name }: completed`), * finalize: () => console.log(`${ name }: unsubscribed`) * }) * ); * * const obs$ = log('source', interval(1000)); * * const shared$ = log('shared', obs$.pipe( * shareReplay({ bufferSize: 1, refCount: true }), * take(2) * )); * * shared$.subscribe(x => console.log('sub A: ', x)); * shared$.subscribe(y => console.log('sub B: ', y)); * * // PRINTS: * // shared: subscribed <-- reference count = 1 * // source: subscribed * // shared: subscribed <-- reference count = 2 * // source: 0 * // shared: 0 * // sub A: 0 * // shared: 0 * // sub B: 0 * // source: 1 * // shared: 1 * // sub A: 1 * // shared: completed <-- take(2) completes the subscription for sub A * // shared: unsubscribed <-- reference count = 1 * // shared: 1 * // sub B: 1 * // shared: completed <-- take(2) completes the subscription for sub B * // shared: unsubscribed <-- reference count = 0 * // source: unsubscribed <-- replaySubject unsubscribes from source observable because the reference count dropped to 0 and refCount is true * * // In case of refCount being false, the unsubscribe is never called on the source and the source would keep on emitting, even if no subscribers * // are listening. * // source: 2 * // source: 3 * // source: 4 * // ... * ``` * * @see {@link publish} * @see {@link share} * @see {@link publishReplay} * * @param configOrBufferSize Maximum element count of the replay buffer or {@link ShareReplayConfig configuration} * object. * @param windowTime Maximum time length of the replay buffer in milliseconds. * @param scheduler Scheduler where connected observers within the selector function * will be invoked on. * @return A function that returns an Observable sequence that contains the * elements of a sequence produced by multicasting the source sequence within a * selector function. */ export function shareReplay( configOrBufferSize?: ShareReplayConfig | number, windowTime?: number, scheduler?: SchedulerLike ): MonoTypeOperatorFunction { let bufferSize: number; let refCount = false; if (configOrBufferSize && typeof configOrBufferSize === 'object') { ({ bufferSize = Infinity, windowTime = Infinity, refCount = false, scheduler } = configOrBufferSize); } else { bufferSize = (configOrBufferSize ?? Infinity) as number; } return share({ connector: () => new ReplaySubject(bufferSize, windowTime, scheduler), resetOnError: true, resetOnComplete: false, resetOnRefCountZero: refCount, }); } rxjs-7.5.7/src/internal/operators/single.ts000066400000000000000000000073771431412030200207760ustar00rootroot00000000000000import { Observable } from '../Observable'; import { EmptyError } from '../util/EmptyError'; import { MonoTypeOperatorFunction, OperatorFunction, TruthyTypesOf } from '../types'; import { SequenceError } from '../util/SequenceError'; import { NotFoundError } from '../util/NotFoundError'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; export function single(predicate: BooleanConstructor): OperatorFunction>; export function single(predicate?: (value: T, index: number, source: Observable) => boolean): MonoTypeOperatorFunction; /** * Returns an observable that asserts that only one value is * emitted from the observable that matches the predicate. If no * predicate is provided, then it will assert that the observable * only emits one value. * * In the event that the observable is empty, it will throw an * {@link EmptyError}. * * In the event that two values are found that match the predicate, * or when there are two values emitted and no predicate, it will * throw a {@link SequenceError} * * In the event that no values match the predicate, if one is provided, * it will throw a {@link NotFoundError} * * ## Example * * Expect only `name` beginning with `'B'` * * ```ts * import { of, single } from 'rxjs'; * * const source1 = of( * { name: 'Ben' }, * { name: 'Tracy' }, * { name: 'Laney' }, * { name: 'Lily' } * ); * * source1 * .pipe(single(x => x.name.startsWith('B'))) * .subscribe(x => console.log(x)); * // Emits 'Ben' * * * const source2 = of( * { name: 'Ben' }, * { name: 'Tracy' }, * { name: 'Bradley' }, * { name: 'Lincoln' } * ); * * source2 * .pipe(single(x => x.name.startsWith('B'))) * .subscribe({ error: err => console.error(err) }); * // Error emitted: SequenceError('Too many values match') * * * const source3 = of( * { name: 'Laney' }, * { name: 'Tracy' }, * { name: 'Lily' }, * { name: 'Lincoln' } * ); * * source3 * .pipe(single(x => x.name.startsWith('B'))) * .subscribe({ error: err => console.error(err) }); * // Error emitted: NotFoundError('No values match') * ``` * * @see {@link first} * @see {@link find} * @see {@link findIndex} * @see {@link elementAt} * * @throws {NotFoundError} Delivers an NotFoundError to the Observer's `error` * callback if the Observable completes before any `next` notification was sent. * @throws {SequenceError} Delivers a SequenceError if more than one value is emitted that matches the * provided predicate. If no predicate is provided, will deliver a SequenceError if more * than one value comes from the source * @param {Function} predicate - A predicate function to evaluate items emitted by the source Observable. * @return A function that returns an Observable that emits the single item * emitted by the source Observable that matches the predicate. */ export function single(predicate?: (value: T, index: number, source: Observable) => boolean): MonoTypeOperatorFunction { return operate((source, subscriber) => { let hasValue = false; let singleValue: T; let seenValue = false; let index = 0; source.subscribe( createOperatorSubscriber( subscriber, (value) => { seenValue = true; if (!predicate || predicate(value, index++, source)) { hasValue && subscriber.error(new SequenceError('Too many matching values')); hasValue = true; singleValue = value; } }, () => { if (hasValue) { subscriber.next(singleValue); subscriber.complete(); } else { subscriber.error(seenValue ? new NotFoundError('No matching values') : new EmptyError()); } } ) ); }); } rxjs-7.5.7/src/internal/operators/skip.ts000066400000000000000000000023041431412030200204440ustar00rootroot00000000000000import { MonoTypeOperatorFunction } from '../types'; import { filter } from './filter'; /** * Returns an Observable that skips the first `count` items emitted by the source Observable. * * ![](skip.png) * * Skips the values until the sent notifications are equal or less than provided skip count. It raises * an error if skip count is equal or more than the actual number of emits and source raises an error. * * ## Example * * Skip the values before the emission * * ```ts * import { interval, skip } from 'rxjs'; * * // emit every half second * const source = interval(500); * // skip the first 10 emitted values * const result = source.pipe(skip(10)); * * result.subscribe(value => console.log(value)); * // output: 10...11...12...13... * ``` * * @see {@link last} * @see {@link skipWhile} * @see {@link skipUntil} * @see {@link skipLast} * * @param {Number} count - The number of times, items emitted by source Observable should be skipped. * @return A function that returns an Observable that skips the first `count` * values emitted by the source Observable. */ export function skip(count: number): MonoTypeOperatorFunction { return filter((_, index) => count <= index); } rxjs-7.5.7/src/internal/operators/skipLast.ts000066400000000000000000000073771431412030200213070ustar00rootroot00000000000000import { MonoTypeOperatorFunction } from '../types'; import { identity } from '../util/identity'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Skip a specified number of values before the completion of an observable. * * ![](skipLast.png) * * Returns an observable that will emit values as soon as it can, given a number of * skipped values. For example, if you `skipLast(3)` on a source, when the source * emits its fourth value, the first value the source emitted will finally be emitted * from the returned observable, as it is no longer part of what needs to be skipped. * * All values emitted by the result of `skipLast(N)` will be delayed by `N` emissions, * as each value is held in a buffer until enough values have been emitted that that * the buffered value may finally be sent to the consumer. * * After subscribing, unsubscribing will not result in the emission of the buffered * skipped values. * * ## Example * * Skip the last 2 values of an observable with many values * * ```ts * import { of, skipLast } from 'rxjs'; * * const numbers = of(1, 2, 3, 4, 5); * const skipLastTwo = numbers.pipe(skipLast(2)); * skipLastTwo.subscribe(x => console.log(x)); * * // Results in: * // 1 2 3 * // (4 and 5 are skipped) * ``` * * @see {@link skip} * @see {@link skipUntil} * @see {@link skipWhile} * @see {@link take} * * @param skipCount Number of elements to skip from the end of the source Observable. * @return A function that returns an Observable that skips the last `count` * values emitted by the source Observable. */ export function skipLast(skipCount: number): MonoTypeOperatorFunction { return skipCount <= 0 ? // For skipCounts less than or equal to zero, we are just mirroring the source. identity : operate((source, subscriber) => { // A ring buffer to hold the values while we wait to see // if we can emit it or it's part of the "skipped" last values. // Note that it is the _same size_ as the skip count. let ring: T[] = new Array(skipCount); // The number of values seen so far. This is used to get // the index of the current value when it arrives. let seen = 0; source.subscribe( createOperatorSubscriber(subscriber, (value) => { // Get the index of the value we have right now // relative to all other values we've seen, then // increment `seen`. This ensures we've moved to // the next slot in our ring buffer. const valueIndex = seen++; if (valueIndex < skipCount) { // If we haven't seen enough values to fill our buffer yet, // Then we aren't to a number of seen values where we can // emit anything, so let's just start by filling the ring buffer. ring[valueIndex] = value; } else { // We are traversing over the ring array in such // a way that when we get to the end, we loop back // and go to the start. const index = valueIndex % skipCount; // Pull the oldest value out so we can emit it, // and stuff the new value in it's place. const oldValue = ring[index]; ring[index] = value; // Emit the old value. It is important that this happens // after we swap the value in the buffer, if it happens // before we swap the value in the buffer, then a synchronous // source can get the buffer out of whack. subscriber.next(oldValue); } }) ); return () => { // Release our values in memory ring = null!; }; }); } rxjs-7.5.7/src/internal/operators/skipUntil.ts000066400000000000000000000052041431412030200214620ustar00rootroot00000000000000import { Observable } from '../Observable'; import { MonoTypeOperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { innerFrom } from '../observable/innerFrom'; import { noop } from '../util/noop'; /** * Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item. * * The `skipUntil` operator causes the observable stream to skip the emission of values until the passed in observable emits the first value. * This can be particularly useful in combination with user interactions, responses of http requests or waiting for specific times to pass by. * * ![](skipUntil.png) * * Internally the `skipUntil` operator subscribes to the passed in observable (in the following called *notifier*) in order to recognize the emission * of its first value. When this happens, the operator unsubscribes from the *notifier* and starts emitting the values of the *source* * observable. It will never let the *source* observable emit any values if the *notifier* completes or throws an error without emitting * a value before. * * ## Example * * In the following example, all emitted values of the interval observable are skipped until the user clicks anywhere within the page * * ```ts * import { interval, fromEvent, skipUntil } from 'rxjs'; * * const intervalObservable = interval(1000); * const click = fromEvent(document, 'click'); * * const emitAfterClick = intervalObservable.pipe( * skipUntil(click) * ); * // clicked at 4.6s. output: 5...6...7...8........ or * // clicked at 7.3s. output: 8...9...10..11....... * emitAfterClick.subscribe(value => console.log(value)); * ``` * * @see {@link last} * @see {@link skip} * @see {@link skipWhile} * @see {@link skipLast} * * @param {Observable} notifier - The second Observable that has to emit an item before the source Observable's elements begin to * be mirrored by the resulting Observable. * @return A function that returns an Observable that skips items from the * source Observable until the second Observable emits an item, then emits the * remaining items. */ export function skipUntil(notifier: Observable): MonoTypeOperatorFunction { return operate((source, subscriber) => { let taking = false; const skipSubscriber = createOperatorSubscriber( subscriber, () => { skipSubscriber?.unsubscribe(); taking = true; }, noop ); innerFrom(notifier).subscribe(skipSubscriber); source.subscribe(createOperatorSubscriber(subscriber, (value) => taking && subscriber.next(value))); }); } rxjs-7.5.7/src/internal/operators/skipWhile.ts000066400000000000000000000045521431412030200214440ustar00rootroot00000000000000import { Falsy, MonoTypeOperatorFunction, OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; export function skipWhile(predicate: BooleanConstructor): OperatorFunction extends never ? never : T>; export function skipWhile(predicate: (value: T, index: number) => true): OperatorFunction; export function skipWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction; /** * Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds * true, but emits all further source items as soon as the condition becomes false. * * ![](skipWhile.png) * * Skips all the notifications with a truthy predicate. It will not skip the notifications when the predicate is falsy. * It can also be skipped using index. Once the predicate is true, it will not be called again. * * ## Example * * Skip some super heroes * * ```ts * import { from, skipWhile } from 'rxjs'; * * const source = from(['Green Arrow', 'SuperMan', 'Flash', 'SuperGirl', 'Black Canary']) * // Skip the heroes until SuperGirl * const example = source.pipe(skipWhile(hero => hero !== 'SuperGirl')); * // output: SuperGirl, Black Canary * example.subscribe(femaleHero => console.log(femaleHero)); * ``` * * Skip values from the array until index 5 * * ```ts * import { from, skipWhile } from 'rxjs'; * * const source = from([1, 2, 3, 4, 5, 6, 7, 9, 10]); * const example = source.pipe(skipWhile((_, i) => i !== 5)); * // output: 6, 7, 9, 10 * example.subscribe(value => console.log(value)); * ``` * * @see {@link last} * @see {@link skip} * @see {@link skipUntil} * @see {@link skipLast} * * @param {Function} predicate - A function to test each item emitted from the source Observable. * @return A function that returns an Observable that begins emitting items * emitted by the source Observable when the specified predicate becomes false. */ export function skipWhile(predicate: (value: T, index: number) => boolean): MonoTypeOperatorFunction { return operate((source, subscriber) => { let taking = false; let index = 0; source.subscribe( createOperatorSubscriber(subscriber, (value) => (taking || (taking = !predicate(value, index++))) && subscriber.next(value)) ); }); } rxjs-7.5.7/src/internal/operators/startWith.ts000066400000000000000000000051551431412030200214760ustar00rootroot00000000000000import { concat } from '../observable/concat'; import { OperatorFunction, SchedulerLike, ValueFromArray } from '../types'; import { popScheduler } from '../util/args'; import { operate } from '../util/lift'; // Devs are more likely to pass null or undefined than they are a scheduler // without accompanying values. To make things easier for (naughty) devs who // use the `strictNullChecks: false` TypeScript compiler option, these // overloads with explicit null and undefined values are included. export function startWith(value: null): OperatorFunction; export function startWith(value: undefined): OperatorFunction; /** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `concatAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */ export function startWith( ...valuesAndScheduler: [...A, SchedulerLike] ): OperatorFunction>; export function startWith(...values: A): OperatorFunction>; /** * Returns an observable that, at the moment of subscription, will synchronously emit all * values provided to this operator, then subscribe to the source and mirror all of its emissions * to subscribers. * * This is a useful way to know when subscription has occurred on an existing observable. * * First emits its arguments in order, and then any * emissions from the source. * * ![](startWith.png) * * ## Examples * * Emit a value when a timer starts. * * ```ts * import { timer, map, startWith } from 'rxjs'; * * timer(1000) * .pipe( * map(() => 'timer emit'), * startWith('timer start') * ) * .subscribe(x => console.log(x)); * * // results: * // 'timer start' * // 'timer emit' * ``` * * @param values Items you want the modified Observable to emit first. * @return A function that returns an Observable that synchronously emits * provided values before subscribing to the source Observable. * * @see {@link endWith} * @see {@link finalize} * @see {@link concat} */ export function startWith(...values: D[]): OperatorFunction { const scheduler = popScheduler(values); return operate((source, subscriber) => { // Here we can't pass `undefined` as a scheduler, because if we did, the // code inside of `concat` would be confused by the `undefined`, and treat it // like an invalid observable. So we have to split it two different ways. (scheduler ? concat(values, source, scheduler) : concat(values, source)).subscribe(subscriber); }); } rxjs-7.5.7/src/internal/operators/subscribeOn.ts000066400000000000000000000040051431412030200217540ustar00rootroot00000000000000import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; import { operate } from '../util/lift'; /** * Asynchronously subscribes Observers to this Observable on the specified {@link SchedulerLike}. * * With `subscribeOn` you can decide what type of scheduler a specific Observable will be using when it is subscribed to. * * Schedulers control the speed and order of emissions to observers from an Observable stream. * * ![](subscribeOn.png) * * ## Example * * Given the following code: * * ```ts * import { of, merge } from 'rxjs'; * * const a = of(1, 2, 3); * const b = of(4, 5, 6); * * merge(a, b).subscribe(console.log); * * // Outputs * // 1 * // 2 * // 3 * // 4 * // 5 * // 6 * ``` * * Both Observable `a` and `b` will emit their values directly and synchronously once they are subscribed to. * * If we instead use the `subscribeOn` operator declaring that we want to use the {@link asyncScheduler} for values emitted by Observable `a`: * * ```ts * import { of, subscribeOn, asyncScheduler, merge } from 'rxjs'; * * const a = of(1, 2, 3).pipe(subscribeOn(asyncScheduler)); * const b = of(4, 5, 6); * * merge(a, b).subscribe(console.log); * * // Outputs * // 4 * // 5 * // 6 * // 1 * // 2 * // 3 * ``` * * The reason for this is that Observable `b` emits its values directly and synchronously like before * but the emissions from `a` are scheduled on the event loop because we are now using the {@link asyncScheduler} for that specific Observable. * * @param scheduler The {@link SchedulerLike} to perform subscription actions on. * @param delay A delay to pass to the scheduler to delay subscriptions * @return A function that returns an Observable modified so that its * subscriptions happen on the specified {@link SchedulerLike}. */ export function subscribeOn(scheduler: SchedulerLike, delay: number = 0): MonoTypeOperatorFunction { return operate((source, subscriber) => { subscriber.add(scheduler.schedule(() => source.subscribe(subscriber), delay)); }); } rxjs-7.5.7/src/internal/operators/switchAll.ts000066400000000000000000000041131431412030200214300ustar00rootroot00000000000000import { OperatorFunction, ObservableInput, ObservedValueOf } from '../types'; import { switchMap } from './switchMap'; import { identity } from '../util/identity'; /** * Converts a higher-order Observable into a first-order Observable * producing values only from the most recent observable sequence * * Flattens an Observable-of-Observables. * * ![](switchAll.png) * * `switchAll` subscribes to a source that is an observable of observables, also known as a * "higher-order observable" (or `Observable>`). It subscribes to the most recently * provided "inner observable" emitted by the source, unsubscribing from any previously subscribed * to inner observable, such that only the most recent inner observable may be subscribed to at * any point in time. The resulting observable returned by `switchAll` will only complete if the * source observable completes, *and* any currently subscribed to inner observable also has completed, * if there are any. * * ## Examples * * Spawn a new interval observable for each click event, but for every new * click, cancel the previous interval and subscribe to the new one * * ```ts * import { fromEvent, tap, map, interval, switchAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click').pipe(tap(() => console.log('click'))); * const source = clicks.pipe(map(() => interval(1000))); * * source * .pipe(switchAll()) * .subscribe(x => console.log(x)); * * // Output * // click * // 0 * // 1 * // 2 * // 3 * // ... * // click * // 0 * // 1 * // 2 * // ... * // click * // ... * ``` * * @see {@link combineLatestAll} * @see {@link concatAll} * @see {@link exhaustAll} * @see {@link switchMap} * @see {@link switchMapTo} * @see {@link mergeAll} * * @return A function that returns an Observable that converts a higher-order * Observable into a first-order Observable producing values only from the most * recent Observable sequence. */ export function switchAll>(): OperatorFunction> { return switchMap(identity); } rxjs-7.5.7/src/internal/operators/switchMap.ts000066400000000000000000000125151431412030200214420ustar00rootroot00000000000000import { Subscriber } from '../Subscriber'; import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; import { innerFrom } from '../observable/innerFrom'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /* tslint:disable:max-line-length */ export function switchMap>( project: (value: T, index: number) => O ): OperatorFunction>; /** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */ export function switchMap>( project: (value: T, index: number) => O, resultSelector: undefined ): OperatorFunction>; /** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */ export function switchMap>( project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R ): OperatorFunction; /* tslint:enable:max-line-length */ /** * Projects each source value to an Observable which is merged in the output * Observable, emitting values only from the most recently projected Observable. * * Maps each value to an Observable, then flattens all of * these inner Observables. * * ![](switchMap.png) * * Returns an Observable that emits items based on applying a function that you * supply to each item emitted by the source Observable, where that function * returns an (so-called "inner") Observable. Each time it observes one of these * inner Observables, the output Observable begins emitting the items emitted by * that inner Observable. When a new inner Observable is emitted, `switchMap` * stops emitting items from the earlier-emitted inner Observable and begins * emitting items from the new one. It continues to behave like this for * subsequent inner Observables. * * ## Example * * Generate new Observable according to source Observable values * * ```ts * import { of, switchMap } from 'rxjs'; * * const switched = of(1, 2, 3).pipe(switchMap(x => of(x, x ** 2, x ** 3))); * switched.subscribe(x => console.log(x)); * // outputs * // 1 * // 1 * // 1 * // 2 * // 4 * // 8 * // 3 * // 9 * // 27 * ``` * * Restart an interval Observable on every click event * * ```ts * import { fromEvent, switchMap, interval } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(switchMap(() => interval(1000))); * result.subscribe(x => console.log(x)); * ``` * * @see {@link concatMap} * @see {@link exhaustMap} * @see {@link mergeMap} * @see {@link switchAll} * @see {@link switchMapTo} * * @param {function(value: T, index: number): ObservableInput} project A function * that, when applied to an item emitted by the source Observable, returns an * Observable. * @return A function that returns an Observable that emits the result of * applying the projection function (and the optional deprecated * `resultSelector`) to each item emitted by the source Observable and taking * only the values from the most recently projected inner Observable. */ export function switchMap>( project: (value: T, index: number) => O, resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R ): OperatorFunction | R> { return operate((source, subscriber) => { let innerSubscriber: Subscriber> | null = null; let index = 0; // Whether or not the source subscription has completed let isComplete = false; // We only complete the result if the source is complete AND we don't have an active inner subscription. // This is called both when the source completes and when the inners complete. const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete(); source.subscribe( createOperatorSubscriber( subscriber, (value) => { // Cancel the previous inner subscription if there was one innerSubscriber?.unsubscribe(); let innerIndex = 0; const outerIndex = index++; // Start the next inner subscription innerFrom(project(value, outerIndex)).subscribe( (innerSubscriber = createOperatorSubscriber( subscriber, // When we get a new inner value, next it through. Note that this is // handling the deprecate result selector here. This is because with this architecture // it ends up being smaller than using the map operator. (innerValue) => subscriber.next(resultSelector ? resultSelector(value, innerValue, outerIndex, innerIndex++) : innerValue), () => { // The inner has completed. Null out the inner subscriber to // free up memory and to signal that we have no inner subscription // currently. innerSubscriber = null!; checkComplete(); } )) ); }, () => { isComplete = true; checkComplete(); } ) ); }); } rxjs-7.5.7/src/internal/operators/switchMapTo.ts000066400000000000000000000057331431412030200217510ustar00rootroot00000000000000import { switchMap } from './switchMap'; import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types'; import { isFunction } from '../util/isFunction'; /** @deprecated Will be removed in v9. Use {@link switchMap} instead: `switchMap(() => result)` */ export function switchMapTo>(observable: O): OperatorFunction>; /** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */ export function switchMapTo>( observable: O, resultSelector: undefined ): OperatorFunction>; /** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */ export function switchMapTo>( observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R ): OperatorFunction; /** * Projects each source value to the same Observable which is flattened multiple * times with {@link switchMap} in the output Observable. * * It's like {@link switchMap}, but maps each value * always to the same inner Observable. * * ![](switchMapTo.png) * * Maps each source value to the given Observable `innerObservable` regardless * of the source value, and then flattens those resulting Observables into one * single Observable, which is the output Observable. The output Observables * emits values only from the most recently emitted instance of * `innerObservable`. * * ## Example * * Restart an interval Observable on every click event * * ```ts * import { fromEvent, switchMapTo, interval } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(switchMapTo(interval(1000))); * result.subscribe(x => console.log(x)); * ``` * * @see {@link concatMapTo} * @see {@link switchAll} * @see {@link switchMap} * @see {@link mergeMapTo} * * @param {ObservableInput} innerObservable An Observable to replace each value from * the source Observable. * @return A function that returns an Observable that emits items from the * given `innerObservable` (and optionally transformed through the deprecated * `resultSelector`) every time a value is emitted on the source Observable, * and taking only the values from the most recently projected inner * Observable. * @deprecated Will be removed in v9. Use {@link switchMap} instead: `switchMap(() => result)` */ export function switchMapTo>( innerObservable: O, resultSelector?: (outerValue: T, innerValue: ObservedValueOf, outerIndex: number, innerIndex: number) => R ): OperatorFunction | R> { return isFunction(resultSelector) ? switchMap(() => innerObservable, resultSelector) : switchMap(() => innerObservable); } rxjs-7.5.7/src/internal/operators/switchScan.ts000066400000000000000000000036161431412030200216130ustar00rootroot00000000000000import { ObservableInput, ObservedValueOf, OperatorFunction } from '../types'; import { switchMap } from './switchMap'; import { operate } from '../util/lift'; // TODO: Generate a marble diagram for these docs. /** * Applies an accumulator function over the source Observable where the * accumulator function itself returns an Observable, emitting values * only from the most recently returned Observable. * * It's like {@link mergeScan}, but only the most recent * Observable returned by the accumulator is merged into the outer Observable. * * @see {@link scan} * @see {@link mergeScan} * @see {@link switchMap} * * @param accumulator * The accumulator function called on each source value. * @param seed The initial accumulation value. * @return A function that returns an observable of the accumulated values. */ export function switchScan>( accumulator: (acc: R, value: T, index: number) => O, seed: R ): OperatorFunction> { return operate((source, subscriber) => { // The state we will keep up to date to pass into our // accumulator function at each new value from the source. let state = seed; // Use `switchMap` on our `source` to do the work of creating // this operator. Note the backwards order here of `switchMap()(source)` // to avoid needing to use `pipe` unnecessarily switchMap( // On each value from the source, call the accumulator with // our previous state, the value and the index. (value: T, index) => accumulator(state, value, index), // Using the deprecated result selector here as a dirty trick // to update our state with the flattened value. (_, innerValue) => ((state = innerValue), innerValue) )(source).subscribe(subscriber); return () => { // Release state on finalization state = null!; }; }); } rxjs-7.5.7/src/internal/operators/take.ts000066400000000000000000000043541431412030200204310ustar00rootroot00000000000000import { MonoTypeOperatorFunction } from '../types'; import { EMPTY } from '../observable/empty'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Emits only the first `count` values emitted by the source Observable. * * Takes the first `count` values from the source, then * completes. * * ![](take.png) * * `take` returns an Observable that emits only the first `count` values emitted * by the source Observable. If the source emits fewer than `count` values then * all of its values are emitted. After that, it completes, regardless if the * source completes. * * ## Example * * Take the first 5 seconds of an infinite 1-second interval Observable * * ```ts * import { interval, take } from 'rxjs'; * * const intervalCount = interval(1000); * const takeFive = intervalCount.pipe(take(5)); * takeFive.subscribe(x => console.log(x)); * * // Logs: * // 0 * // 1 * // 2 * // 3 * // 4 * ``` * * @see {@link takeLast} * @see {@link takeUntil} * @see {@link takeWhile} * @see {@link skip} * * @param count The maximum number of `next` values to emit. * @return A function that returns an Observable that emits only the first * `count` values emitted by the source Observable, or all of the values from * the source if the source emits fewer than `count` values. */ export function take(count: number): MonoTypeOperatorFunction { return count <= 0 ? // If we are taking no values, that's empty. () => EMPTY : operate((source, subscriber) => { let seen = 0; source.subscribe( createOperatorSubscriber(subscriber, (value) => { // Increment the number of values we have seen, // then check it against the allowed count to see // if we are still letting values through. if (++seen <= count) { subscriber.next(value); // If we have met or passed our allowed count, // we need to complete. We have to do <= here, // because re-entrant code will increment `seen` twice. if (count <= seen) { subscriber.complete(); } } }) ); }); } rxjs-7.5.7/src/internal/operators/takeLast.ts000066400000000000000000000056701431412030200212570ustar00rootroot00000000000000import { EMPTY } from '../observable/empty'; import { MonoTypeOperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Waits for the source to complete, then emits the last N values from the source, * as specified by the `count` argument. * * ![](takeLast.png) * * `takeLast` results in an observable that will hold values up to `count` values in memory, * until the source completes. It then pushes all values in memory to the consumer, in the * order they were received from the source, then notifies the consumer that it is * complete. * * If for some reason the source completes before the `count` supplied to `takeLast` is reached, * all values received until that point are emitted, and then completion is notified. * * **Warning**: Using `takeLast` with an observable that never completes will result * in an observable that never emits a value. * * ## Example * * Take the last 3 values of an Observable with many values * * ```ts * import { range, takeLast } from 'rxjs'; * * const many = range(1, 100); * const lastThree = many.pipe(takeLast(3)); * lastThree.subscribe(x => console.log(x)); * ``` * * @see {@link take} * @see {@link takeUntil} * @see {@link takeWhile} * @see {@link skip} * * @param count The maximum number of values to emit from the end of * the sequence of values emitted by the source Observable. * @return A function that returns an Observable that emits at most the last * `count` values emitted by the source Observable. */ export function takeLast(count: number): MonoTypeOperatorFunction { return count <= 0 ? () => EMPTY : operate((source, subscriber) => { // This buffer will hold the values we are going to emit // when the source completes. Since we only want to take the // last N values, we can't emit until we're sure we're not getting // any more values. let buffer: T[] = []; source.subscribe( createOperatorSubscriber( subscriber, (value) => { // Add the most recent value onto the end of our buffer. buffer.push(value); // If our buffer is now larger than the number of values we // want to take, we remove the oldest value from the buffer. count < buffer.length && buffer.shift(); }, () => { // The source completed, we now know what are last values // are, emit them in the order they were received. for (const value of buffer) { subscriber.next(value); } subscriber.complete(); }, // Errors are passed through to the consumer undefined, () => { // During finalization release the values in our buffer. buffer = null!; } ) ); }); } rxjs-7.5.7/src/internal/operators/takeUntil.ts000066400000000000000000000036171431412030200214460ustar00rootroot00000000000000import { MonoTypeOperatorFunction, ObservableInput } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { innerFrom } from '../observable/innerFrom'; import { noop } from '../util/noop'; /** * Emits the values emitted by the source Observable until a `notifier` * Observable emits a value. * * Lets values pass until a second Observable, * `notifier`, emits a value. Then, it completes. * * ![](takeUntil.png) * * `takeUntil` subscribes and begins mirroring the source Observable. It also * monitors a second Observable, `notifier` that you provide. If the `notifier` * emits a value, the output Observable stops mirroring the source Observable * and completes. If the `notifier` doesn't emit any value and completes * then `takeUntil` will pass all values. * * ## Example * * Tick every second until the first click happens * * ```ts * import { interval, fromEvent, takeUntil } from 'rxjs'; * * const source = interval(1000); * const clicks = fromEvent(document, 'click'); * const result = source.pipe(takeUntil(clicks)); * result.subscribe(x => console.log(x)); * ``` * * @see {@link take} * @see {@link takeLast} * @see {@link takeWhile} * @see {@link skip} * * @param {Observable} notifier The Observable whose first emitted value will * cause the output Observable of `takeUntil` to stop emitting values from the * source Observable. * @return A function that returns an Observable that emits the values from the * source Observable until `notifier` emits its first value. */ export function takeUntil(notifier: ObservableInput): MonoTypeOperatorFunction { return operate((source, subscriber) => { innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, () => subscriber.complete(), noop)); !subscriber.closed && source.subscribe(subscriber); }); } rxjs-7.5.7/src/internal/operators/takeWhile.ts000066400000000000000000000060661431412030200214240ustar00rootroot00000000000000import { OperatorFunction, MonoTypeOperatorFunction, TruthyTypesOf } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; export function takeWhile(predicate: BooleanConstructor, inclusive: true): MonoTypeOperatorFunction; export function takeWhile(predicate: BooleanConstructor, inclusive: false): OperatorFunction>; export function takeWhile(predicate: BooleanConstructor): OperatorFunction>; export function takeWhile(predicate: (value: T, index: number) => value is S): OperatorFunction; export function takeWhile(predicate: (value: T, index: number) => value is S, inclusive: false): OperatorFunction; export function takeWhile(predicate: (value: T, index: number) => boolean, inclusive?: boolean): MonoTypeOperatorFunction; /** * Emits values emitted by the source Observable so long as each value satisfies * the given `predicate`, and then completes as soon as this `predicate` is not * satisfied. * * Takes values from the source only while they pass the * condition given. When the first value does not satisfy, it completes. * * ![](takeWhile.png) * * `takeWhile` subscribes and begins mirroring the source Observable. Each value * emitted on the source is given to the `predicate` function which returns a * boolean, representing a condition to be satisfied by the source values. The * output Observable emits the source values until such time as the `predicate` * returns false, at which point `takeWhile` stops mirroring the source * Observable and completes the output Observable. * * ## Example * * Emit click events only while the clientX property is greater than 200 * * ```ts * import { fromEvent, takeWhile } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(takeWhile(ev => ev.clientX > 200)); * result.subscribe(x => console.log(x)); * ``` * * @see {@link take} * @see {@link takeLast} * @see {@link takeUntil} * @see {@link skip} * * @param {function(value: T, index: number): boolean} predicate A function that * evaluates a value emitted by the source Observable and returns a boolean. * Also takes the (zero-based) index as the second argument. * @param {boolean} inclusive When set to `true` the value that caused * `predicate` to return `false` will also be emitted. * @return A function that returns an Observable that emits values from the * source Observable so long as each value satisfies the condition defined by * the `predicate`, then completes. */ export function takeWhile(predicate: (value: T, index: number) => boolean, inclusive = false): MonoTypeOperatorFunction { return operate((source, subscriber) => { let index = 0; source.subscribe( createOperatorSubscriber(subscriber, (value) => { const result = predicate(value, index++); (result || inclusive) && subscriber.next(value); !result && subscriber.complete(); }) ); }); } rxjs-7.5.7/src/internal/operators/tap.ts000066400000000000000000000140521431412030200202650ustar00rootroot00000000000000import { MonoTypeOperatorFunction, Observer } from '../types'; import { isFunction } from '../util/isFunction'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { identity } from '../util/identity'; export interface TapObserver extends Observer { subscribe: () => void; unsubscribe: () => void; finalize: () => void; } export function tap(observer?: Partial>): MonoTypeOperatorFunction; export function tap(next: (value: T) => void): MonoTypeOperatorFunction; /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */ export function tap( next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null ): MonoTypeOperatorFunction; /** * Used to perform side-effects for notifications from the source observable * * Used when you want to affect outside state with a notification without altering the notification * * ![](tap.png) * * Tap is designed to allow the developer a designated place to perform side effects. While you _could_ perform side-effects * inside of a `map` or a `mergeMap`, that would make their mapping functions impure, which isn't always a big deal, but will * make it so you can't do things like memoize those functions. The `tap` operator is designed solely for such side-effects to * help you remove side-effects from other operations. * * For any notification, next, error, or complete, `tap` will call the appropriate callback you have provided to it, via a function * reference, or a partial observer, then pass that notification down the stream. * * The observable returned by `tap` is an exact mirror of the source, with one exception: Any error that occurs -- synchronously -- in a handler * provided to `tap` will be emitted as an error from the returned observable. * * > Be careful! You can mutate objects as they pass through the `tap` operator's handlers. * * The most common use of `tap` is actually for debugging. You can place a `tap(console.log)` anywhere * in your observable `pipe`, log out the notifications as they are emitted by the source returned by the previous * operation. * * ## Examples * * Check a random number before it is handled. Below is an observable that will use a random number between 0 and 1, * and emit `'big'` or `'small'` depending on the size of that number. But we wanted to log what the original number * was, so we have added a `tap(console.log)`. * * ```ts * import { of, tap, map } from 'rxjs'; * * of(Math.random()).pipe( * tap(console.log), * map(n => n > 0.5 ? 'big' : 'small') * ).subscribe(console.log); * ``` * * Using `tap` to analyze a value and force an error. Below is an observable where in our system we only * want to emit numbers 3 or less we get from another source. We can force our observable to error * using `tap`. * * ```ts * import { of, tap } from 'rxjs'; * * const source = of(1, 2, 3, 4, 5); * * source.pipe( * tap(n => { * if (n > 3) { * throw new TypeError(`Value ${ n } is greater than 3`); * } * }) * ) * .subscribe({ next: console.log, error: err => console.log(err.message) }); * ``` * * We want to know when an observable completes before moving on to the next observable. The system * below will emit a random series of `'X'` characters from 3 different observables in sequence. The * only way we know when one observable completes and moves to the next one, in this case, is because * we have added a `tap` with the side effect of logging to console. * * ```ts * import { of, concatMap, interval, take, map, tap } from 'rxjs'; * * of(1, 2, 3).pipe( * concatMap(n => interval(1000).pipe( * take(Math.round(Math.random() * 10)), * map(() => 'X'), * tap({ complete: () => console.log(`Done with ${ n }`) }) * )) * ) * .subscribe(console.log); * ``` * * @see {@link finalize} * @see {@link Observable#subscribe} * * @param observerOrNext A next handler or partial observer * @param error An error handler * @param complete A completion handler * @return A function that returns an Observable identical to the source, but * runs the specified Observer or callback(s) for each item. */ export function tap( observerOrNext?: Partial> | ((value: T) => void) | null, error?: ((e: any) => void) | null, complete?: (() => void) | null ): MonoTypeOperatorFunction { // We have to check to see not only if next is a function, // but if error or complete were passed. This is because someone // could technically call tap like `tap(null, fn)` or `tap(null, null, fn)`. const tapObserver = isFunction(observerOrNext) || error || complete ? // tslint:disable-next-line: no-object-literal-type-assertion ({ next: observerOrNext as Exclude>>, error, complete } as Partial>) : observerOrNext; return tapObserver ? operate((source, subscriber) => { tapObserver.subscribe?.(); let isUnsub = true; source.subscribe( createOperatorSubscriber( subscriber, (value) => { tapObserver.next?.(value); subscriber.next(value); }, () => { isUnsub = false; tapObserver.complete?.(); subscriber.complete(); }, (err) => { isUnsub = false; tapObserver.error?.(err); subscriber.error(err); }, () => { if (isUnsub) { tapObserver.unsubscribe?.(); } tapObserver.finalize?.(); } ) ); }) : // Tap was called with no valid tap observer or handler // (e.g. `tap(null, null, null)` or `tap(null)` or `tap()`) // so we're going to just mirror the source. identity; } rxjs-7.5.7/src/internal/operators/throttle.ts000066400000000000000000000102641431412030200213470ustar00rootroot00000000000000import { Subscription } from '../Subscription'; import { MonoTypeOperatorFunction, ObservableInput } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { innerFrom } from '../observable/innerFrom'; export interface ThrottleConfig { leading?: boolean; trailing?: boolean; } export const defaultThrottleConfig: ThrottleConfig = { leading: true, trailing: false, }; /** * Emits a value from the source Observable, then ignores subsequent source * values for a duration determined by another Observable, then repeats this * process. * * It's like {@link throttleTime}, but the silencing * duration is determined by a second Observable. * * ![](throttle.svg) * * `throttle` emits the source Observable values on the output Observable * when its internal timer is disabled, and ignores source values when the timer * is enabled. Initially, the timer is disabled. As soon as the first source * value arrives, it is forwarded to the output Observable, and then the timer * is enabled by calling the `durationSelector` function with the source value, * which returns the "duration" Observable. When the duration Observable emits a * value, the timer is disabled, and this process repeats for the * next source value. * * ## Example * * Emit clicks at a rate of at most one click per second * * ```ts * import { fromEvent, throttle, interval } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(throttle(() => interval(1000))); * * result.subscribe(x => console.log(x)); * ``` * * @see {@link audit} * @see {@link debounce} * @see {@link delayWhen} * @see {@link sample} * @see {@link throttleTime} * * @param durationSelector A function * that receives a value from the source Observable, for computing the silencing * duration for each source value, returned as an Observable or a Promise. * @param config a configuration object to define `leading` and `trailing` behavior. Defaults * to `{ leading: true, trailing: false }`. * @return A function that returns an Observable that performs the throttle * operation to limit the rate of emissions from the source. */ export function throttle( durationSelector: (value: T) => ObservableInput, config: ThrottleConfig = defaultThrottleConfig ): MonoTypeOperatorFunction { return operate((source, subscriber) => { const { leading, trailing } = config; let hasValue = false; let sendValue: T | null = null; let throttled: Subscription | null = null; let isComplete = false; const endThrottling = () => { throttled?.unsubscribe(); throttled = null; if (trailing) { send(); isComplete && subscriber.complete(); } }; const cleanupThrottling = () => { throttled = null; isComplete && subscriber.complete(); }; const startThrottle = (value: T) => (throttled = innerFrom(durationSelector(value)).subscribe(createOperatorSubscriber(subscriber, endThrottling, cleanupThrottling))); const send = () => { if (hasValue) { // Ensure we clear out our value and hasValue flag // before we emit, otherwise reentrant code can cause // issues here. hasValue = false; const value = sendValue!; sendValue = null; // Emit the value. subscriber.next(value); !isComplete && startThrottle(value); } }; source.subscribe( createOperatorSubscriber( subscriber, // Regarding the presence of throttled.closed in the following // conditions, if a synchronous duration selector is specified - weird, // but legal - an already-closed subscription will be assigned to // throttled, so the subscription's closed property needs to be checked, // too. (value) => { hasValue = true; sendValue = value; !(throttled && !throttled.closed) && (leading ? send() : startThrottle(value)); }, () => { isComplete = true; !(trailing && hasValue && throttled && !throttled.closed) && subscriber.complete(); } ) ); }); } rxjs-7.5.7/src/internal/operators/throttleTime.ts000066400000000000000000000046161431412030200221720ustar00rootroot00000000000000import { asyncScheduler } from '../scheduler/async'; import { defaultThrottleConfig, throttle } from './throttle'; import { MonoTypeOperatorFunction, SchedulerLike } from '../types'; import { timer } from '../observable/timer'; /** * Emits a value from the source Observable, then ignores subsequent source * values for `duration` milliseconds, then repeats this process. * * Lets a value pass, then ignores source values for the * next `duration` milliseconds. * * ![](throttleTime.png) * * `throttleTime` emits the source Observable values on the output Observable * when its internal timer is disabled, and ignores source values when the timer * is enabled. Initially, the timer is disabled. As soon as the first source * value arrives, it is forwarded to the output Observable, and then the timer * is enabled. After `duration` milliseconds (or the time unit determined * internally by the optional `scheduler`) has passed, the timer is disabled, * and this process repeats for the next source value. Optionally takes a * {@link SchedulerLike} for managing timers. * * ## Examples * * ### Limit click rate * * Emit clicks at a rate of at most one click per second * * ```ts * import { fromEvent, throttleTime } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe(throttleTime(1000)); * * result.subscribe(x => console.log(x)); * ``` * * @see {@link auditTime} * @see {@link debounceTime} * @see {@link delay} * @see {@link sampleTime} * @see {@link throttle} * * @param duration Time to wait before emitting another value after * emitting the last value, measured in milliseconds or the time unit determined * internally by the optional `scheduler`. * @param scheduler The {@link SchedulerLike} to use for * managing the timers that handle the throttling. Defaults to {@link asyncScheduler}. * @param config a configuration object to define `leading` and * `trailing` behavior. Defaults to `{ leading: true, trailing: false }`. * @return A function that returns an Observable that performs the throttle * operation to limit the rate of emissions from the source. */ export function throttleTime( duration: number, scheduler: SchedulerLike = asyncScheduler, config = defaultThrottleConfig ): MonoTypeOperatorFunction { const duration$ = timer(duration, scheduler); return throttle(() => duration$, config); } rxjs-7.5.7/src/internal/operators/throwIfEmpty.ts000066400000000000000000000033571431412030200221500ustar00rootroot00000000000000import { EmptyError } from '../util/EmptyError'; import { MonoTypeOperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * If the source observable completes without emitting a value, it will emit * an error. The error will be created at that time by the optional * `errorFactory` argument, otherwise, the error will be {@link EmptyError}. * * ![](throwIfEmpty.png) * * ## Example * * Throw an error if the document wasn't clicked within 1 second * * ```ts * import { fromEvent, takeUntil, timer, throwIfEmpty } from 'rxjs'; * * const click$ = fromEvent(document, 'click'); * * click$.pipe( * takeUntil(timer(1000)), * throwIfEmpty(() => new Error('The document was not clicked within 1 second')) * ) * .subscribe({ * next() { * console.log('The document was clicked'); * }, * error(err) { * console.error(err.message); * } * }); * ``` * * @param errorFactory A factory function called to produce the * error to be thrown when the source observable completes without emitting a * value. * @return A function that returns an Observable that throws an error if the * source Observable completed without emitting. */ export function throwIfEmpty(errorFactory: () => any = defaultErrorFactory): MonoTypeOperatorFunction { return operate((source, subscriber) => { let hasValue = false; source.subscribe( createOperatorSubscriber( subscriber, (value) => { hasValue = true; subscriber.next(value); }, () => (hasValue ? subscriber.complete() : subscriber.error(errorFactory())) ) ); }); } function defaultErrorFactory() { return new EmptyError(); } rxjs-7.5.7/src/internal/operators/timeInterval.ts000066400000000000000000000044631431412030200221510ustar00rootroot00000000000000import { asyncScheduler } from '../scheduler/async'; import { SchedulerLike, OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Emits an object containing the current value, and the time that has * passed between emitting the current value and the previous value, which is * calculated by using the provided `scheduler`'s `now()` method to retrieve * the current time at each emission, then calculating the difference. The `scheduler` * defaults to {@link asyncScheduler}, so by default, the `interval` will be in * milliseconds. * * Convert an Observable that emits items into one that * emits indications of the amount of time elapsed between those emissions. * * ![](timeInterval.png) * * ## Example * * Emit interval between current value with the last value * * ```ts * import { interval, timeInterval } from 'rxjs'; * * const seconds = interval(1000); * * seconds * .pipe(timeInterval()) * .subscribe(value => console.log(value)); * * // NOTE: The values will never be this precise, * // intervals created with `interval` or `setInterval` * // are non-deterministic. * * // { value: 0, interval: 1000 } * // { value: 1, interval: 1000 } * // { value: 2, interval: 1000 } * ``` * * @param {SchedulerLike} [scheduler] Scheduler used to get the current time. * @return A function that returns an Observable that emits information about * value and interval. */ export function timeInterval(scheduler: SchedulerLike = asyncScheduler): OperatorFunction> { return operate((source, subscriber) => { let last = scheduler.now(); source.subscribe( createOperatorSubscriber(subscriber, (value) => { const now = scheduler.now(); const interval = now - last; last = now; subscriber.next(new TimeInterval(value, interval)); }) ); }); } // TODO(benlesh): make this an interface, export the interface, but not the implemented class, // there's no reason users should be manually creating this type. export class TimeInterval { /** * @deprecated Internal implementation detail, do not construct directly. Will be made an interface in v8. */ constructor(public value: T, public interval: number) {} } rxjs-7.5.7/src/internal/operators/timeout.ts000066400000000000000000000372001431412030200211670ustar00rootroot00000000000000import { asyncScheduler } from '../scheduler/async'; import { MonoTypeOperatorFunction, SchedulerLike, OperatorFunction, ObservableInput, ObservedValueOf } from '../types'; import { isValidDate } from '../util/isDate'; import { Subscription } from '../Subscription'; import { operate } from '../util/lift'; import { Observable } from '../Observable'; import { innerFrom } from '../observable/innerFrom'; import { createErrorClass } from '../util/createErrorClass'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { executeSchedule } from '../util/executeSchedule'; export interface TimeoutConfig = ObservableInput, M = unknown> { /** * The time allowed between values from the source before timeout is triggered. */ each?: number; /** * The relative time as a `number` in milliseconds, or a specific time as a `Date` object, * by which the first value must arrive from the source before timeout is triggered. */ first?: number | Date; /** * The scheduler to use with time-related operations within this operator. Defaults to {@link asyncScheduler} */ scheduler?: SchedulerLike; /** * A factory used to create observable to switch to when timeout occurs. Provides * a {@link TimeoutInfo} about the source observable's emissions and what delay or * exact time triggered the timeout. */ with?: (info: TimeoutInfo) => O; /** * Optional additional metadata you can provide to code that handles * the timeout, will be provided through the {@link TimeoutError}. * This can be used to help identify the source of a timeout or pass along * other information related to the timeout. */ meta?: M; } export interface TimeoutInfo { /** Optional metadata that was provided to the timeout configuration. */ readonly meta: M; /** The number of messages seen before the timeout */ readonly seen: number; /** The last message seen */ readonly lastValue: T | null; } /** * An error emitted when a timeout occurs. */ export interface TimeoutError extends Error { /** * The information provided to the error by the timeout * operation that created the error. Will be `null` if * used directly in non-RxJS code with an empty constructor. * (Note that using this constructor directly is not recommended, * you should create your own errors) */ info: TimeoutInfo | null; } export interface TimeoutErrorCtor { /** * @deprecated Internal implementation detail. Do not construct error instances. * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269 */ new (info?: TimeoutInfo): TimeoutError; } /** * An error thrown by the {@link timeout} operator. * * Provided so users can use as a type and do quality comparisons. * We recommend you do not subclass this or create instances of this class directly. * If you have need of a error representing a timeout, you should * create your own error class and use that. * * @see {@link timeout} * * @class TimeoutError */ export const TimeoutError: TimeoutErrorCtor = createErrorClass( (_super) => function TimeoutErrorImpl(this: any, info: TimeoutInfo | null = null) { _super(this); this.message = 'Timeout has occurred'; this.name = 'TimeoutError'; this.info = info; } ); /** * If `with` is provided, this will return an observable that will switch to a different observable if the source * does not push values within the specified time parameters. * * The most flexible option for creating a timeout behavior. * * The first thing to know about the configuration is if you do not provide a `with` property to the configuration, * when timeout conditions are met, this operator will emit a {@link TimeoutError}. Otherwise, it will use the factory * function provided by `with`, and switch your subscription to the result of that. Timeout conditions are provided by * the settings in `first` and `each`. * * The `first` property can be either a `Date` for a specific time, a `number` for a time period relative to the * point of subscription, or it can be skipped. This property is to check timeout conditions for the arrival of * the first value from the source _only_. The timings of all subsequent values from the source will be checked * against the time period provided by `each`, if it was provided. * * The `each` property can be either a `number` or skipped. If a value for `each` is provided, it represents the amount of * time the resulting observable will wait between the arrival of values from the source before timing out. Note that if * `first` is _not_ provided, the value from `each` will be used to check timeout conditions for the arrival of the first * value and all subsequent values. If `first` _is_ provided, `each` will only be use to check all values after the first. * * ## Examples * * Emit a custom error if there is too much time between values * * ```ts * import { interval, timeout, throwError } from 'rxjs'; * * class CustomTimeoutError extends Error { * constructor() { * super('It was too slow'); * this.name = 'CustomTimeoutError'; * } * } * * const slow$ = interval(900); * * slow$.pipe( * timeout({ * each: 1000, * with: () => throwError(() => new CustomTimeoutError()) * }) * ) * .subscribe({ * error: console.error * }); * ``` * * Switch to a faster observable if your source is slow. * * ```ts * import { interval, timeout } from 'rxjs'; * * const slow$ = interval(900); * const fast$ = interval(500); * * slow$.pipe( * timeout({ * each: 1000, * with: () => fast$, * }) * ) * .subscribe(console.log); * ``` * @param config The configuration for the timeout. */ export function timeout, M = unknown>( config: TimeoutConfig & { with: (info: TimeoutInfo) => O } ): OperatorFunction>; /** * Returns an observable that will error or switch to a different observable if the source does not push values * within the specified time parameters. * * The most flexible option for creating a timeout behavior. * * The first thing to know about the configuration is if you do not provide a `with` property to the configuration, * when timeout conditions are met, this operator will emit a {@link TimeoutError}. Otherwise, it will use the factory * function provided by `with`, and switch your subscription to the result of that. Timeout conditions are provided by * the settings in `first` and `each`. * * The `first` property can be either a `Date` for a specific time, a `number` for a time period relative to the * point of subscription, or it can be skipped. This property is to check timeout conditions for the arrival of * the first value from the source _only_. The timings of all subsequent values from the source will be checked * against the time period provided by `each`, if it was provided. * * The `each` property can be either a `number` or skipped. If a value for `each` is provided, it represents the amount of * time the resulting observable will wait between the arrival of values from the source before timing out. Note that if * `first` is _not_ provided, the value from `each` will be used to check timeout conditions for the arrival of the first * value and all subsequent values. If `first` _is_ provided, `each` will only be use to check all values after the first. * * ### Handling TimeoutErrors * * If no `with` property was provided, subscriptions to the resulting observable may emit an error of {@link TimeoutError}. * The timeout error provides useful information you can examine when you're handling the error. The most common way to handle * the error would be with {@link catchError}, although you could use {@link tap} or just the error handler in your `subscribe` call * directly, if your error handling is only a side effect (such as notifying the user, or logging). * * In this case, you would check the error for `instanceof TimeoutError` to validate that the error was indeed from `timeout`, and * not from some other source. If it's not from `timeout`, you should probably rethrow it if you're in a `catchError`. * * ## Examples * * Emit a {@link TimeoutError} if the first value, and _only_ the first value, does not arrive within 5 seconds * * ```ts * import { interval, timeout } from 'rxjs'; * * // A random interval that lasts between 0 and 10 seconds per tick * const source$ = interval(Math.round(Math.random() * 10_000)); * * source$.pipe( * timeout({ first: 5_000 }) * ) * .subscribe({ * next: console.log, * error: console.error * }); * ``` * * Emit a {@link TimeoutError} if the source waits longer than 5 seconds between any two values or the first value * and subscription. * * ```ts * import { timer, timeout, expand } from 'rxjs'; * * const getRandomTime = () => Math.round(Math.random() * 10_000); * * // An observable that waits a random amount of time between each delivered value * const source$ = timer(getRandomTime()) * .pipe(expand(() => timer(getRandomTime()))); * * source$ * .pipe(timeout({ each: 5_000 })) * .subscribe({ * next: console.log, * error: console.error * }); * ``` * * Emit a {@link TimeoutError} if the source does not emit before 7 seconds, _or_ if the source waits longer than * 5 seconds between any two values after the first. * * ```ts * import { timer, timeout, expand } from 'rxjs'; * * const getRandomTime = () => Math.round(Math.random() * 10_000); * * // An observable that waits a random amount of time between each delivered value * const source$ = timer(getRandomTime()) * .pipe(expand(() => timer(getRandomTime()))); * * source$ * .pipe(timeout({ first: 7_000, each: 5_000 })) * .subscribe({ * next: console.log, * error: console.error * }); * ``` */ export function timeout(config: Omit, 'with'>): OperatorFunction; /** * Returns an observable that will error if the source does not push its first value before the specified time passed as a `Date`. * This is functionally the same as `timeout({ first: someDate })`. * * Errors if the first value doesn't show up before the given date and time * * ![](timeout.png) * * @param first The date to at which the resulting observable will timeout if the source observable * does not emit at least one value. * @param scheduler The scheduler to use. Defaults to {@link asyncScheduler}. */ export function timeout(first: Date, scheduler?: SchedulerLike): MonoTypeOperatorFunction; /** * Returns an observable that will error if the source does not push a value within the specified time in milliseconds. * This is functionally the same as `timeout({ each: milliseconds })`. * * Errors if it waits too long between any value * * ![](timeout.png) * * @param each The time allowed between each pushed value from the source before the resulting observable * will timeout. * @param scheduler The scheduler to use. Defaults to {@link asyncScheduler}. */ export function timeout(each: number, scheduler?: SchedulerLike): MonoTypeOperatorFunction; /** * * Errors if Observable does not emit a value in given time span. * * Timeouts on Observable that doesn't emit values fast enough. * * ![](timeout.png) * * @see {@link timeoutWith} * * @return A function that returns an Observable that mirrors behaviour of the * source Observable, unless timeout happens when it throws an error. */ export function timeout, M>( config: number | Date | TimeoutConfig, schedulerArg?: SchedulerLike ): OperatorFunction> { // Intentionally terse code. // If the first argument is a valid `Date`, then we use it as the `first` config. // Otherwise, if the first argument is a `number`, then we use it as the `each` config. // Otherwise, it can be assumed the first argument is the configuration object itself, and // we destructure that into what we're going to use, setting important defaults as we do. // NOTE: The default for `scheduler` will be the `scheduler` argument if it exists, or // it will default to the `asyncScheduler`. const { first, each, with: _with = timeoutErrorFactory, scheduler = schedulerArg ?? asyncScheduler, meta = null!, } = (isValidDate(config) ? { first: config } : typeof config === 'number' ? { each: config } : config) as TimeoutConfig; if (first == null && each == null) { // Ensure timeout was provided at runtime. throw new TypeError('No timeout provided.'); } return operate((source, subscriber) => { // This subscription encapsulates our subscription to the // source for this operator. We're capturing it separately, // because if there is a `with` observable to fail over to, // we want to unsubscribe from our original subscription, and // hand of the subscription to that one. let originalSourceSubscription: Subscription; // The subscription for our timeout timer. This changes // every time we get a new value. let timerSubscription: Subscription; // A bit of state we pass to our with and error factories to // tell what the last value we saw was. let lastValue: T | null = null; // A bit of state we pass to the with and error factories to // tell how many values we have seen so far. let seen = 0; const startTimer = (delay: number) => { timerSubscription = executeSchedule( subscriber, scheduler, () => { try { originalSourceSubscription.unsubscribe(); innerFrom( _with!({ meta, lastValue, seen, }) ).subscribe(subscriber); } catch (err) { subscriber.error(err); } }, delay ); }; originalSourceSubscription = source.subscribe( createOperatorSubscriber( subscriber, (value: T) => { // clear the timer so we can emit and start another one. timerSubscription?.unsubscribe(); seen++; // Emit subscriber.next((lastValue = value)); // null | undefined are both < 0. Thanks, JavaScript. each! > 0 && startTimer(each!); }, undefined, undefined, () => { if (!timerSubscription?.closed) { timerSubscription?.unsubscribe(); } // Be sure not to hold the last value in memory after unsubscription // it could be quite large. lastValue = null; } ) ); // Intentionally terse code. // If we've `seen` a value, that means the "first" clause was met already, if it existed. // it also means that a timer was already started for "each" (in the next handler above). // If `first` was provided, and it's a number, then use it. // If `first` was provided and it's not a number, it's a Date, and we get the difference between it and "now". // If `first` was not provided at all, then our first timer will be the value from `each`. !seen && startTimer(first != null ? (typeof first === 'number' ? first : +first - scheduler!.now()) : each!); }); } /** * The default function to use to emit an error when timeout occurs and a `with` function * is not specified. * @param info The information about the timeout to pass along to the error */ function timeoutErrorFactory(info: TimeoutInfo): Observable { throw new TimeoutError(info); } rxjs-7.5.7/src/internal/operators/timeoutWith.ts000066400000000000000000000110311431412030200220150ustar00rootroot00000000000000import { async } from '../scheduler/async'; import { isValidDate } from '../util/isDate'; import { ObservableInput, OperatorFunction, SchedulerLike } from '../types'; import { timeout } from './timeout'; /** @deprecated Replaced with {@link timeout}. Instead of `timeoutWith(someDate, a$, scheduler)`, use the configuration object * `timeout({ first: someDate, with: () => a$, scheduler })`. Will be removed in v8. */ export function timeoutWith(dueBy: Date, switchTo: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; /** @deprecated Replaced with {@link timeout}. Instead of `timeoutWith(100, a$, scheduler)`, use the configuration object * `timeout({ each: 100, with: () => a$, scheduler })`. Will be removed in v8. */ export function timeoutWith(waitFor: number, switchTo: ObservableInput, scheduler?: SchedulerLike): OperatorFunction; /** * When the passed timespan elapses before the source emits any given value, it will unsubscribe from the source, * and switch the subscription to another observable. * * Used to switch to a different observable if your source is being slow. * * Useful in cases where: * * - You want to switch to a different source that may be faster. * - You want to notify a user that the data stream is slow. * - You want to emit a custom error rather than the {@link TimeoutError} emitted * by the default usage of {@link timeout}. * * If the first parameter is passed as Date and the time of the Date arrives before the first value arrives from the source, * it will unsubscribe from the source and switch the subscription to another observable. * * Use Date object to switch to a different observable if the first value doesn't arrive by a specific time. * * Can be used to set a timeout only for the first value, however it's recommended to use the {@link timeout} operator with * the `first` configuration to get the same effect. * * ## Examples * * Fallback to a faster observable * * ```ts * import { interval, timeoutWith } from 'rxjs'; * * const slow$ = interval(1000); * const faster$ = interval(500); * * slow$ * .pipe(timeoutWith(900, faster$)) * .subscribe(console.log); * ``` * * Emit your own custom timeout error * * ```ts * import { interval, timeoutWith, throwError } from 'rxjs'; * * class CustomTimeoutError extends Error { * constructor() { * super('It was too slow'); * this.name = 'CustomTimeoutError'; * } * } * * const slow$ = interval(1000); * * slow$ * .pipe(timeoutWith(900, throwError(() => new CustomTimeoutError()))) * .subscribe({ * error: err => console.error(err.message) * }); * ``` * * @see {@link timeout} * * @param due When passed a number, used as the time (in milliseconds) allowed between each value from the source before timeout * is triggered. When passed a Date, used as the exact time at which the timeout will be triggered if the first value does not arrive. * @param withObservable The observable to switch to when timeout occurs. * @param scheduler The scheduler to use with time-related operations within this operator. Defaults to {@link asyncScheduler} * @return A function that returns an Observable that mirrors behaviour of the * source Observable, unless timeout happens when it starts emitting values * from the `ObservableInput` passed as a second parameter. * @deprecated Replaced with {@link timeout}. Instead of `timeoutWith(100, a$, scheduler)`, use {@link timeout} with the configuration * object: `timeout({ each: 100, with: () => a$, scheduler })`. Instead of `timeoutWith(someDate, a$, scheduler)`, use {@link timeout} * with the configuration object: `timeout({ first: someDate, with: () => a$, scheduler })`. Will be removed in v8. */ export function timeoutWith( due: number | Date, withObservable: ObservableInput, scheduler?: SchedulerLike ): OperatorFunction { let first: number | Date | undefined; let each: number | undefined; let _with: () => ObservableInput; scheduler = scheduler ?? async; if (isValidDate(due)) { first = due; } else if (typeof due === 'number') { each = due; } if (withObservable) { _with = () => withObservable; } else { throw new TypeError('No observable provided to switch to'); } if (first == null && each == null) { // Ensure timeout was provided at runtime. throw new TypeError('No timeout provided.'); } return timeout>({ first, each, scheduler, with: _with, }); } rxjs-7.5.7/src/internal/operators/timestamp.ts000066400000000000000000000031371431412030200215060ustar00rootroot00000000000000import { OperatorFunction, TimestampProvider, Timestamp } from '../types'; import { dateTimestampProvider } from '../scheduler/dateTimestampProvider'; import { map } from './map'; /** * Attaches a timestamp to each item emitted by an observable indicating when it was emitted * * The `timestamp` operator maps the *source* observable stream to an object of type * `{value: T, timestamp: R}`. The properties are generically typed. The `value` property contains the value * and type of the *source* observable. The `timestamp` is generated by the schedulers `now` function. By * default, it uses the `asyncScheduler` which simply returns `Date.now()` (milliseconds since 1970/01/01 * 00:00:00:000) and therefore is of type `number`. * * ![](timestamp.png) * * ## Example * * In this example there is a timestamp attached to the document's click events * * ```ts * import { fromEvent, timestamp } from 'rxjs'; * * const clickWithTimestamp = fromEvent(document, 'click').pipe( * timestamp() * ); * * // Emits data of type { value: PointerEvent, timestamp: number } * clickWithTimestamp.subscribe(data => { * console.log(data); * }); * ``` * * @param timestampProvider An object with a `now()` method used to get the current timestamp. * @return A function that returns an Observable that attaches a timestamp to * each item emitted by the source Observable indicating when it was emitted. */ export function timestamp(timestampProvider: TimestampProvider = dateTimestampProvider): OperatorFunction> { return map((value: T) => ({ value, timestamp: timestampProvider.now() })); } rxjs-7.5.7/src/internal/operators/toArray.ts000066400000000000000000000025431431412030200211240ustar00rootroot00000000000000import { reduce } from './reduce'; import { OperatorFunction } from '../types'; import { operate } from '../util/lift'; const arrReducer = (arr: any[], value: any) => (arr.push(value), arr); /** * Collects all source emissions and emits them as an array when the source completes. * * Get all values inside an array when the source completes * * ![](toArray.png) * * `toArray` will wait until the source Observable completes before emitting * the array containing all emissions. When the source Observable errors no * array will be emitted. * * ## Example * * ```ts * import { interval, take, toArray } from 'rxjs'; * * const source = interval(1000); * const example = source.pipe( * take(10), * toArray() * ); * * example.subscribe(value => console.log(value)); * * // output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] * ``` * * @return A function that returns an Observable that emits an array of items * emitted by the source Observable when source completes. */ export function toArray(): OperatorFunction { // Because arrays are mutable, and we're mutating the array in this // reducer process, we have to encapsulate the creation of the initial // array within this `operate` function. return operate((source, subscriber) => { reduce(arrReducer, [] as T[])(source).subscribe(subscriber); }); } rxjs-7.5.7/src/internal/operators/window.ts000066400000000000000000000057551431412030200210220ustar00rootroot00000000000000import { Observable } from '../Observable'; import { OperatorFunction } from '../types'; import { Subject } from '../Subject'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { noop } from '../util/noop'; /** * Branch out the source Observable values as a nested Observable whenever * `windowBoundaries` emits. * * It's like {@link buffer}, but emits a nested Observable * instead of an array. * * ![](window.png) * * Returns an Observable that emits windows of items it collects from the source * Observable. The output Observable emits connected, non-overlapping * windows. It emits the current window and opens a new one whenever the * Observable `windowBoundaries` emits an item. Because each window is an * Observable, the output is a higher-order Observable. * * ## Example * * In every window of 1 second each, emit at most 2 click events * * ```ts * import { fromEvent, interval, window, map, take, mergeAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const sec = interval(1000); * const result = clicks.pipe( * window(sec), * map(win => win.pipe(take(2))), // take at most 2 emissions from each window * mergeAll() // flatten the Observable-of-Observables * ); * result.subscribe(x => console.log(x)); * ``` * * @see {@link windowCount} * @see {@link windowTime} * @see {@link windowToggle} * @see {@link windowWhen} * @see {@link buffer} * * @param {Observable} windowBoundaries An Observable that completes the * previous window and starts a new window. * @return A function that returns an Observable of windows, which are * Observables emitting values of the source Observable. */ export function window(windowBoundaries: Observable): OperatorFunction> { return operate((source, subscriber) => { let windowSubject: Subject = new Subject(); subscriber.next(windowSubject.asObservable()); const errorHandler = (err: any) => { windowSubject.error(err); subscriber.error(err); }; // Subscribe to our source source.subscribe( createOperatorSubscriber( subscriber, (value) => windowSubject?.next(value), () => { windowSubject.complete(); subscriber.complete(); }, errorHandler ) ); // Subscribe to the window boundaries. windowBoundaries.subscribe( createOperatorSubscriber( subscriber, () => { windowSubject.complete(); subscriber.next((windowSubject = new Subject())); }, noop, errorHandler ) ); return () => { // Unsubscribing the subject ensures that anyone who has captured // a reference to this window that tries to use it after it can // no longer get values from the source will get an ObjectUnsubscribedError. windowSubject?.unsubscribe(); windowSubject = null!; }; }); } rxjs-7.5.7/src/internal/operators/windowCount.ts000066400000000000000000000111731431412030200220220ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Subject } from '../Subject'; import { OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; /** * Branch out the source Observable values as a nested Observable with each * nested Observable emitting at most `windowSize` values. * * It's like {@link bufferCount}, but emits a nested * Observable instead of an array. * * ![](windowCount.png) * * Returns an Observable that emits windows of items it collects from the source * Observable. The output Observable emits windows every `startWindowEvery` * items, each containing no more than `windowSize` items. When the source * Observable completes or encounters an error, the output Observable emits * the current window and propagates the notification from the source * Observable. If `startWindowEvery` is not provided, then new windows are * started immediately at the start of the source and when each window completes * with size `windowSize`. * * ## Examples * * Ignore every 3rd click event, starting from the first one * * ```ts * import { fromEvent, windowCount, map, skip, mergeAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe( * windowCount(3), * map(win => win.pipe(skip(1))), // skip first of every 3 clicks * mergeAll() // flatten the Observable-of-Observables * ); * result.subscribe(x => console.log(x)); * ``` * * Ignore every 3rd click event, starting from the third one * * ```ts * import { fromEvent, windowCount, mergeAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe( * windowCount(2, 3), * mergeAll() // flatten the Observable-of-Observables * ); * result.subscribe(x => console.log(x)); * ``` * * @see {@link window} * @see {@link windowTime} * @see {@link windowToggle} * @see {@link windowWhen} * @see {@link bufferCount} * * @param {number} windowSize The maximum number of values emitted by each * window. * @param {number} [startWindowEvery] Interval at which to start a new window. * For example if `startWindowEvery` is `2`, then a new window will be started * on every other value from the source. A new window is started at the * beginning of the source by default. * @return A function that returns an Observable of windows, which in turn are * Observable of values. */ export function windowCount(windowSize: number, startWindowEvery: number = 0): OperatorFunction> { const startEvery = startWindowEvery > 0 ? startWindowEvery : windowSize; return operate((source, subscriber) => { let windows = [new Subject()]; let starts: number[] = []; let count = 0; // Open the first window. subscriber.next(windows[0].asObservable()); source.subscribe( createOperatorSubscriber( subscriber, (value: T) => { // Emit the value through all current windows. // We don't need to create a new window yet, we // do that as soon as we close one. for (const window of windows) { window.next(value); } // Here we're using the size of the window array to figure // out if the oldest window has emitted enough values. We can do this // because the size of the window array is a function of the values // seen by the subscription. If it's time to close it, we complete // it and remove it. const c = count - windowSize + 1; if (c >= 0 && c % startEvery === 0) { windows.shift()!.complete(); } // Look to see if the next count tells us it's time to open a new window. // TODO: We need to figure out if this really makes sense. We're technically // emitting windows *before* we have a value to emit them for. It's probably // more expected that we should be emitting the window when the start // count is reached -- not before. if (++count % startEvery === 0) { const window = new Subject(); windows.push(window); subscriber.next(window.asObservable()); } }, () => { while (windows.length > 0) { windows.shift()!.complete(); } subscriber.complete(); }, (err) => { while (windows.length > 0) { windows.shift()!.error(err); } subscriber.error(err); }, () => { starts = null!; windows = null!; } ) ); }); } rxjs-7.5.7/src/internal/operators/windowTime.ts000066400000000000000000000172561431412030200216400ustar00rootroot00000000000000import { Subject } from '../Subject'; import { asyncScheduler } from '../scheduler/async'; import { Observable } from '../Observable'; import { Subscription } from '../Subscription'; import { Observer, OperatorFunction, SchedulerLike } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { arrRemove } from '../util/arrRemove'; import { popScheduler } from '../util/args'; import { executeSchedule } from '../util/executeSchedule'; export function windowTime(windowTimeSpan: number, scheduler?: SchedulerLike): OperatorFunction>; export function windowTime( windowTimeSpan: number, windowCreationInterval: number, scheduler?: SchedulerLike ): OperatorFunction>; export function windowTime( windowTimeSpan: number, windowCreationInterval: number | null | void, maxWindowSize: number, scheduler?: SchedulerLike ): OperatorFunction>; /** * Branch out the source Observable values as a nested Observable periodically * in time. * * It's like {@link bufferTime}, but emits a nested * Observable instead of an array. * * ![](windowTime.png) * * Returns an Observable that emits windows of items it collects from the source * Observable. The output Observable starts a new window periodically, as * determined by the `windowCreationInterval` argument. It emits each window * after a fixed timespan, specified by the `windowTimeSpan` argument. When the * source Observable completes or encounters an error, the output Observable * emits the current window and propagates the notification from the source * Observable. If `windowCreationInterval` is not provided, the output * Observable starts a new window when the previous window of duration * `windowTimeSpan` completes. If `maxWindowCount` is provided, each window * will emit at most fixed number of values. Window will complete immediately * after emitting last value and next one still will open as specified by * `windowTimeSpan` and `windowCreationInterval` arguments. * * ## Examples * * In every window of 1 second each, emit at most 2 click events * * ```ts * import { fromEvent, windowTime, map, take, mergeAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe( * windowTime(1000), * map(win => win.pipe(take(2))), // take at most 2 emissions from each window * mergeAll() // flatten the Observable-of-Observables * ); * result.subscribe(x => console.log(x)); * ``` * * Every 5 seconds start a window 1 second long, and emit at most 2 click events per window * * ```ts * import { fromEvent, windowTime, map, take, mergeAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe( * windowTime(1000, 5000), * map(win => win.pipe(take(2))), // take at most 2 emissions from each window * mergeAll() // flatten the Observable-of-Observables * ); * result.subscribe(x => console.log(x)); * ``` * * Same as example above but with `maxWindowCount` instead of `take` * * ```ts * import { fromEvent, windowTime, mergeAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe( * windowTime(1000, 5000, 2), // take at most 2 emissions from each window * mergeAll() // flatten the Observable-of-Observables * ); * result.subscribe(x => console.log(x)); * ``` * * @see {@link window} * @see {@link windowCount} * @see {@link windowToggle} * @see {@link windowWhen} * @see {@link bufferTime} * * @param windowTimeSpan The amount of time, in milliseconds, to fill each window. * @param windowCreationInterval The interval at which to start new * windows. * @param maxWindowSize Max number of * values each window can emit before completion. * @param scheduler The scheduler on which to schedule the * intervals that determine window boundaries. * @return A function that returns an Observable of windows, which in turn are * Observables. */ export function windowTime(windowTimeSpan: number, ...otherArgs: any[]): OperatorFunction> { const scheduler = popScheduler(otherArgs) ?? asyncScheduler; const windowCreationInterval = (otherArgs[0] as number) ?? null; const maxWindowSize = (otherArgs[1] as number) || Infinity; return operate((source, subscriber) => { // The active windows, their related subscriptions, and removal functions. let windowRecords: WindowRecord[] | null = []; // If true, it means that every time we close a window, we want to start a new window. // This is only really used for when *just* the time span is passed. let restartOnClose = false; const closeWindow = (record: { window: Subject; subs: Subscription }) => { const { window, subs } = record; window.complete(); subs.unsubscribe(); arrRemove(windowRecords, record); restartOnClose && startWindow(); }; /** * Called every time we start a new window. This also does * the work of scheduling the job to close the window. */ const startWindow = () => { if (windowRecords) { const subs = new Subscription(); subscriber.add(subs); const window = new Subject(); const record = { window, subs, seen: 0, }; windowRecords.push(record); subscriber.next(window.asObservable()); executeSchedule(subs, scheduler, () => closeWindow(record), windowTimeSpan); } }; if (windowCreationInterval !== null && windowCreationInterval >= 0) { // The user passed both a windowTimeSpan (required), and a creation interval // That means we need to start new window on the interval, and those windows need // to wait the required time span before completing. executeSchedule(subscriber, scheduler, startWindow, windowCreationInterval, true); } else { restartOnClose = true; } startWindow(); /** * We need to loop over a copy of the window records several times in this operator. * This is to save bytes over the wire more than anything. * The reason we copy the array is that reentrant code could mutate the array while * we are iterating over it. */ const loop = (cb: (record: WindowRecord) => void) => windowRecords!.slice().forEach(cb); /** * Used to notify all of the windows and the subscriber in the same way * in the error and complete handlers. */ const terminate = (cb: (consumer: Observer) => void) => { loop(({ window }) => cb(window)); cb(subscriber); subscriber.unsubscribe(); }; source.subscribe( createOperatorSubscriber( subscriber, (value: T) => { // Notify all windows of the value. loop((record) => { record.window.next(value); // If the window is over the max size, we need to close it. maxWindowSize <= ++record.seen && closeWindow(record); }); }, // Complete the windows and the downstream subscriber and clean up. () => terminate((consumer) => consumer.complete()), // Notify the windows and the downstream subscriber of the error and clean up. (err) => terminate((consumer) => consumer.error(err)) ) ); // Additional finalization. This will be called when the // destination tears down. Other finalizations are registered implicitly // above via subscription. return () => { // Ensure that the buffer is released. windowRecords = null!; }; }); } interface WindowRecord { seen: number; window: Subject; subs: Subscription; } rxjs-7.5.7/src/internal/operators/windowToggle.ts000066400000000000000000000106051431412030200221520ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Subject } from '../Subject'; import { Subscription } from '../Subscription'; import { ObservableInput, OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { innerFrom } from '../observable/innerFrom'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { noop } from '../util/noop'; import { arrRemove } from '../util/arrRemove'; /** * Branch out the source Observable values as a nested Observable starting from * an emission from `openings` and ending when the output of `closingSelector` * emits. * * It's like {@link bufferToggle}, but emits a nested * Observable instead of an array. * * ![](windowToggle.png) * * Returns an Observable that emits windows of items it collects from the source * Observable. The output Observable emits windows that contain those items * emitted by the source Observable between the time when the `openings` * Observable emits an item and when the Observable returned by * `closingSelector` emits an item. * * ## Example * * Every other second, emit the click events from the next 500ms * * ```ts * import { fromEvent, interval, windowToggle, EMPTY, mergeAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const openings = interval(1000); * const result = clicks.pipe( * windowToggle(openings, i => i % 2 ? interval(500) : EMPTY), * mergeAll() * ); * result.subscribe(x => console.log(x)); * ``` * * @see {@link window} * @see {@link windowCount} * @see {@link windowTime} * @see {@link windowWhen} * @see {@link bufferToggle} * * @param {Observable} openings An observable of notifications to start new * windows. * @param {function(value: O): Observable} closingSelector A function that takes * the value emitted by the `openings` observable and returns an Observable, * which, when it emits a next notification, signals that the * associated window should complete. * @return A function that returns an Observable of windows, which in turn are * Observables. */ export function windowToggle( openings: ObservableInput, closingSelector: (openValue: O) => ObservableInput ): OperatorFunction> { return operate((source, subscriber) => { const windows: Subject[] = []; const handleError = (err: any) => { while (0 < windows.length) { windows.shift()!.error(err); } subscriber.error(err); }; innerFrom(openings).subscribe( createOperatorSubscriber( subscriber, (openValue) => { const window = new Subject(); windows.push(window); const closingSubscription = new Subscription(); const closeWindow = () => { arrRemove(windows, window); window.complete(); closingSubscription.unsubscribe(); }; let closingNotifier: Observable; try { closingNotifier = innerFrom(closingSelector(openValue)); } catch (err) { handleError(err); return; } subscriber.next(window.asObservable()); closingSubscription.add(closingNotifier.subscribe(createOperatorSubscriber(subscriber, closeWindow, noop, handleError))); }, noop ) ); // Subscribe to the source to get things started. source.subscribe( createOperatorSubscriber( subscriber, (value: T) => { // Copy the windows array before we emit to // make sure we don't have issues with reentrant code. const windowsCopy = windows.slice(); for (const window of windowsCopy) { window.next(value); } }, () => { // Complete all of our windows before we complete. while (0 < windows.length) { windows.shift()!.complete(); } subscriber.complete(); }, handleError, () => { // Add this finalization so that all window subjects are // disposed of. This way, if a user tries to subscribe // to a window *after* the outer subscription has been unsubscribed, // they will get an error, instead of waiting forever to // see if a value arrives. while (0 < windows.length) { windows.shift()!.unsubscribe(); } } ) ); }); } rxjs-7.5.7/src/internal/operators/windowWhen.ts000066400000000000000000000102641431412030200216330ustar00rootroot00000000000000import { Subscriber } from '../Subscriber'; import { Observable } from '../Observable'; import { Subject } from '../Subject'; import { ObservableInput, OperatorFunction } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { innerFrom } from '../observable/innerFrom'; /** * Branch out the source Observable values as a nested Observable using a * factory function of closing Observables to determine when to start a new * window. * * It's like {@link bufferWhen}, but emits a nested * Observable instead of an array. * * ![](windowWhen.png) * * Returns an Observable that emits windows of items it collects from the source * Observable. The output Observable emits connected, non-overlapping windows. * It emits the current window and opens a new one whenever the Observable * produced by the specified `closingSelector` function emits an item. The first * window is opened immediately when subscribing to the output Observable. * * ## Example * * Emit only the first two clicks events in every window of [1-5] random seconds * * ```ts * import { fromEvent, windowWhen, interval, map, take, mergeAll } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const result = clicks.pipe( * windowWhen(() => interval(1000 + Math.random() * 4000)), * map(win => win.pipe(take(2))), // take at most 2 emissions from each window * mergeAll() // flatten the Observable-of-Observables * ); * result.subscribe(x => console.log(x)); * ``` * * @see {@link window} * @see {@link windowCount} * @see {@link windowTime} * @see {@link windowToggle} * @see {@link bufferWhen} * * @param {function(): Observable} closingSelector A function that takes no * arguments and returns an Observable that signals (on either `next` or * `complete`) when to close the previous window and start a new one. * @return A function that returns an Observable of windows, which in turn are * Observables. */ export function windowWhen(closingSelector: () => ObservableInput): OperatorFunction> { return operate((source, subscriber) => { let window: Subject | null; let closingSubscriber: Subscriber | undefined; /** * When we get an error, we have to notify both the * destination subscriber and the window. */ const handleError = (err: any) => { window!.error(err); subscriber.error(err); }; /** * Called every time we need to open a window. * Recursive, as it will start the closing notifier, which * inevitably *should* call openWindow -- but may not if * it is a "never" observable. */ const openWindow = () => { // We need to clean up our closing subscription, // we only cared about the first next or complete notification. closingSubscriber?.unsubscribe(); // Close our window before starting a new one. window?.complete(); // Start the new window. window = new Subject(); subscriber.next(window.asObservable()); // Get our closing notifier. let closingNotifier: Observable; try { closingNotifier = innerFrom(closingSelector()); } catch (err) { handleError(err); return; } // Subscribe to the closing notifier, be sure // to capture the subscriber (aka Subscription) // so we can clean it up when we close the window // and open a new one. closingNotifier.subscribe((closingSubscriber = createOperatorSubscriber(subscriber, openWindow, openWindow, handleError))); }; // Start the first window. openWindow(); // Subscribe to the source source.subscribe( createOperatorSubscriber( subscriber, (value) => window!.next(value), () => { // The source completed, close the window and complete. window!.complete(); subscriber.complete(); }, handleError, () => { // Be sure to clean up our closing subscription // when this tears down. closingSubscriber?.unsubscribe(); window = null!; } ) ); }); } rxjs-7.5.7/src/internal/operators/withLatestFrom.ts000066400000000000000000000113321431412030200224530ustar00rootroot00000000000000import { OperatorFunction, ObservableInputTuple } from '../types'; import { operate } from '../util/lift'; import { createOperatorSubscriber } from './OperatorSubscriber'; import { innerFrom } from '../observable/innerFrom'; import { identity } from '../util/identity'; import { noop } from '../util/noop'; import { popResultSelector } from '../util/args'; export function withLatestFrom(...inputs: [...ObservableInputTuple]): OperatorFunction; export function withLatestFrom( ...inputs: [...ObservableInputTuple, (...value: [T, ...O]) => R] ): OperatorFunction; /** * Combines the source Observable with other Observables to create an Observable * whose values are calculated from the latest values of each, only when the * source emits. * * Whenever the source Observable emits a value, it * computes a formula using that value plus the latest values from other input * Observables, then emits the output of that formula. * * ![](withLatestFrom.png) * * `withLatestFrom` combines each value from the source Observable (the * instance) with the latest values from the other input Observables only when * the source emits a value, optionally using a `project` function to determine * the value to be emitted on the output Observable. All input Observables must * emit at least one value before the output Observable will emit a value. * * ## Example * * On every click event, emit an array with the latest timer event plus the click event * * ```ts * import { fromEvent, interval, withLatestFrom } from 'rxjs'; * * const clicks = fromEvent(document, 'click'); * const timer = interval(1000); * const result = clicks.pipe(withLatestFrom(timer)); * result.subscribe(x => console.log(x)); * ``` * * @see {@link combineLatest} * * @param {ObservableInput} other An input Observable to combine with the source * Observable. More than one input Observables may be given as argument. * @param {Function} [project] Projection function for combining values * together. Receives all values in order of the Observables passed, where the * first parameter is a value from the source Observable. (e.g. * `a.pipe(withLatestFrom(b, c), map(([a1, b1, c1]) => a1 + b1 + c1))`). If this is not * passed, arrays will be emitted on the output Observable. * @return A function that returns an Observable of projected values from the * most recent values from each input Observable, or an array of the most * recent values from each input Observable. */ export function withLatestFrom(...inputs: any[]): OperatorFunction { const project = popResultSelector(inputs) as ((...args: any[]) => R) | undefined; return operate((source, subscriber) => { const len = inputs.length; const otherValues = new Array(len); // An array of whether or not the other sources have emitted. Matched with them by index. // TODO: At somepoint, we should investigate the performance implications here, and look // into using a `Set()` and checking the `size` to see if we're ready. let hasValue = inputs.map(() => false); // Flipped true when we have at least one value from all other sources and // we are ready to start emitting values. let ready = false; // Other sources. Note that here we are not checking `subscriber.closed`, // this causes all inputs to be subscribed to, even if nothing can be emitted // from them. This is an important distinction because subscription constitutes // a side-effect. for (let i = 0; i < len; i++) { innerFrom(inputs[i]).subscribe( createOperatorSubscriber( subscriber, (value) => { otherValues[i] = value; if (!ready && !hasValue[i]) { // If we're not ready yet, flag to show this observable has emitted. hasValue[i] = true; // Intentionally terse code. // If all of our other observables have emitted, set `ready` to `true`, // so we know we can start emitting values, then clean up the `hasValue` array, // because we don't need it anymore. (ready = hasValue.every(identity)) && (hasValue = null!); } }, // Completing one of the other sources has // no bearing on the completion of our result. noop ) ); } // Source subscription source.subscribe( createOperatorSubscriber(subscriber, (value) => { if (ready) { // We have at least one value from the other sources. Go ahead and emit. const values = [value, ...otherValues]; subscriber.next(project ? project(...values) : values); } }) ); }); } rxjs-7.5.7/src/internal/operators/zip.ts000066400000000000000000000026651431412030200203120ustar00rootroot00000000000000import { zip as zipStatic } from '../observable/zip'; import { ObservableInput, ObservableInputTuple, OperatorFunction, Cons } from '../types'; import { operate } from '../util/lift'; /** @deprecated Replaced with {@link zipWith}. Will be removed in v8. */ export function zip(otherInputs: [...ObservableInputTuple]): OperatorFunction>; /** @deprecated Replaced with {@link zipWith}. Will be removed in v8. */ export function zip( otherInputsAndProject: [...ObservableInputTuple], project: (...values: Cons) => R ): OperatorFunction; /** @deprecated Replaced with {@link zipWith}. Will be removed in v8. */ export function zip(...otherInputs: [...ObservableInputTuple]): OperatorFunction>; /** @deprecated Replaced with {@link zipWith}. Will be removed in v8. */ export function zip( ...otherInputsAndProject: [...ObservableInputTuple, (...values: Cons) => R] ): OperatorFunction; /** * @deprecated Replaced with {@link zipWith}. Will be removed in v8. */ export function zip(...sources: Array | ((...values: Array) => R)>): OperatorFunction { return operate((source, subscriber) => { zipStatic(source as ObservableInput, ...(sources as Array>)).subscribe(subscriber); }); } rxjs-7.5.7/src/internal/operators/zipAll.ts000066400000000000000000000014741431412030200207400ustar00rootroot00000000000000import { OperatorFunction, ObservableInput } from '../types'; import { zip } from '../observable/zip'; import { joinAllInternals } from './joinAllInternals'; /** * Collects all observable inner sources from the source, once the source completes, * it will subscribe to all inner sources, combining their values by index and emitting * them. * * @see {@link zipWith} * @see {@link zip} */ export function zipAll(): OperatorFunction, T[]>; export function zipAll(): OperatorFunction; export function zipAll(project: (...values: T[]) => R): OperatorFunction, R>; export function zipAll(project: (...values: Array) => R): OperatorFunction; export function zipAll(project?: (...values: T[]) => R) { return joinAllInternals(zip, project); } rxjs-7.5.7/src/internal/operators/zipWith.ts000066400000000000000000000030471431412030200211410ustar00rootroot00000000000000import { ObservableInputTuple, OperatorFunction, Cons } from '../types'; import { zip } from './zip'; /** * Subscribes to the source, and the observable inputs provided as arguments, and combines their values, by index, into arrays. * * What is meant by "combine by index": The first value from each will be made into a single array, then emitted, * then the second value from each will be combined into a single array and emitted, then the third value * from each will be combined into a single array and emitted, and so on. * * This will continue until it is no longer able to combine values of the same index into an array. * * After the last value from any one completed source is emitted in an array, the resulting observable will complete, * as there is no way to continue "zipping" values together by index. * * Use-cases for this operator are limited. There are memory concerns if one of the streams is emitting * values at a much faster rate than the others. Usage should likely be limited to streams that emit * at a similar pace, or finite streams of known length. * * In many cases, authors want `combineLatestWith` and not `zipWith`. * * @param otherInputs other observable inputs to collate values from. * @return A function that returns an Observable that emits items by index * combined from the source Observable and provided Observables, in form of an * array. */ export function zipWith(...otherInputs: [...ObservableInputTuple]): OperatorFunction> { return zip(...otherInputs); } rxjs-7.5.7/src/internal/scheduled/000077500000000000000000000000001431412030200170515ustar00rootroot00000000000000rxjs-7.5.7/src/internal/scheduled/scheduleArray.ts000066400000000000000000000016651431412030200222240ustar00rootroot00000000000000import { Observable } from '../Observable'; import { SchedulerLike } from '../types'; export function scheduleArray(input: ArrayLike, scheduler: SchedulerLike) { return new Observable((subscriber) => { // The current array index. let i = 0; // Start iterating over the array like on a schedule. return scheduler.schedule(function () { if (i === input.length) { // If we have hit the end of the array like in the // previous job, we can complete. subscriber.complete(); } else { // Otherwise let's next the value at the current index, // then increment our index. subscriber.next(input[i++]); // If the last emission didn't cause us to close the subscriber // (via take or some side effect), reschedule the job and we'll // make another pass. if (!subscriber.closed) { this.schedule(); } } }); }); } rxjs-7.5.7/src/internal/scheduled/scheduleAsyncIterable.ts000066400000000000000000000016061431412030200236660ustar00rootroot00000000000000import { SchedulerLike } from '../types'; import { Observable } from '../Observable'; import { executeSchedule } from '../util/executeSchedule'; export function scheduleAsyncIterable(input: AsyncIterable, scheduler: SchedulerLike) { if (!input) { throw new Error('Iterable cannot be null'); } return new Observable((subscriber) => { executeSchedule(subscriber, scheduler, () => { const iterator = input[Symbol.asyncIterator](); executeSchedule( subscriber, scheduler, () => { iterator.next().then((result) => { if (result.done) { // This will remove the subscriptions from // the parent subscription. subscriber.complete(); } else { subscriber.next(result.value); } }); }, 0, true ); }); }); } rxjs-7.5.7/src/internal/scheduled/scheduleIterable.ts000066400000000000000000000042101431412030200226620ustar00rootroot00000000000000import { Observable } from '../Observable'; import { SchedulerLike } from '../types'; import { iterator as Symbol_iterator } from '../symbol/iterator'; import { isFunction } from '../util/isFunction'; import { executeSchedule } from '../util/executeSchedule'; /** * Used in {@link scheduled} to create an observable from an Iterable. * @param input The iterable to create an observable from * @param scheduler The scheduler to use */ export function scheduleIterable(input: Iterable, scheduler: SchedulerLike) { return new Observable((subscriber) => { let iterator: Iterator; // Schedule the initial creation of the iterator from // the iterable. This is so the code in the iterable is // not called until the scheduled job fires. executeSchedule(subscriber, scheduler, () => { // Create the iterator. iterator = (input as any)[Symbol_iterator](); executeSchedule( subscriber, scheduler, () => { let value: T; let done: boolean | undefined; try { // Pull the value out of the iterator ({ value, done } = iterator.next()); } catch (err) { // We got an error while pulling from the iterator subscriber.error(err); return; } if (done) { // If it is "done" we just complete. This mimics the // behavior of JavaScript's `for..of` consumption of // iterables, which will not emit the value from an iterator // result of `{ done: true: value: 'here' }`. subscriber.complete(); } else { // The iterable is not done, emit the value. subscriber.next(value); } }, 0, true ); }); // During finalization, if we see this iterator has a `return` method, // then we know it is a Generator, and not just an Iterator. So we call // the `return()` function. This will ensure that any `finally { }` blocks // inside of the generator we can hit will be hit properly. return () => isFunction(iterator?.return) && iterator.return(); }); } rxjs-7.5.7/src/internal/scheduled/scheduleObservable.ts000066400000000000000000000006161431412030200232250ustar00rootroot00000000000000import { innerFrom } from '../observable/innerFrom'; import { observeOn } from '../operators/observeOn'; import { subscribeOn } from '../operators/subscribeOn'; import { InteropObservable, SchedulerLike } from '../types'; export function scheduleObservable(input: InteropObservable, scheduler: SchedulerLike) { return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler)); } rxjs-7.5.7/src/internal/scheduled/schedulePromise.ts000066400000000000000000000005621431412030200225570ustar00rootroot00000000000000import { innerFrom } from '../observable/innerFrom'; import { observeOn } from '../operators/observeOn'; import { subscribeOn } from '../operators/subscribeOn'; import { SchedulerLike } from '../types'; export function schedulePromise(input: PromiseLike, scheduler: SchedulerLike) { return innerFrom(input).pipe(subscribeOn(scheduler), observeOn(scheduler)); } rxjs-7.5.7/src/internal/scheduled/scheduleReadableStreamLike.ts000066400000000000000000000007161431412030200246220ustar00rootroot00000000000000import { SchedulerLike, ReadableStreamLike } from '../types'; import { Observable } from '../Observable'; import { scheduleAsyncIterable } from './scheduleAsyncIterable'; import { readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike'; export function scheduleReadableStreamLike(input: ReadableStreamLike, scheduler: SchedulerLike): Observable { return scheduleAsyncIterable(readableStreamLikeToAsyncGenerator(input), scheduler); } rxjs-7.5.7/src/internal/scheduled/scheduled.ts000066400000000000000000000037341431412030200213700ustar00rootroot00000000000000import { scheduleObservable } from './scheduleObservable'; import { schedulePromise } from './schedulePromise'; import { scheduleArray } from './scheduleArray'; import { scheduleIterable } from './scheduleIterable'; import { scheduleAsyncIterable } from './scheduleAsyncIterable'; import { isInteropObservable } from '../util/isInteropObservable'; import { isPromise } from '../util/isPromise'; import { isArrayLike } from '../util/isArrayLike'; import { isIterable } from '../util/isIterable'; import { ObservableInput, SchedulerLike } from '../types'; import { Observable } from '../Observable'; import { isAsyncIterable } from '../util/isAsyncIterable'; import { createInvalidObservableTypeError } from '../util/throwUnobservableError'; import { isReadableStreamLike } from '../util/isReadableStreamLike'; import { scheduleReadableStreamLike } from './scheduleReadableStreamLike'; /** * Converts from a common {@link ObservableInput} type to an observable where subscription and emissions * are scheduled on the provided scheduler. * * @see {@link from} * @see {@link of} * * @param input The observable, array, promise, iterable, etc you would like to schedule * @param scheduler The scheduler to use to schedule the subscription and emissions from * the returned observable. */ export function scheduled(input: ObservableInput, scheduler: SchedulerLike): Observable { if (input != null) { if (isInteropObservable(input)) { return scheduleObservable(input, scheduler); } if (isArrayLike(input)) { return scheduleArray(input, scheduler); } if (isPromise(input)) { return schedulePromise(input, scheduler); } if (isAsyncIterable(input)) { return scheduleAsyncIterable(input, scheduler); } if (isIterable(input)) { return scheduleIterable(input, scheduler); } if (isReadableStreamLike(input)) { return scheduleReadableStreamLike(input, scheduler); } } throw createInvalidObservableTypeError(input); } rxjs-7.5.7/src/internal/scheduler/000077500000000000000000000000001431412030200170675ustar00rootroot00000000000000rxjs-7.5.7/src/internal/scheduler/Action.ts000066400000000000000000000024401431412030200206540ustar00rootroot00000000000000import { Scheduler } from '../Scheduler'; import { Subscription } from '../Subscription'; import { SchedulerAction } from '../types'; /** * A unit of work to be executed in a `scheduler`. An action is typically * created from within a {@link SchedulerLike} and an RxJS user does not need to concern * themselves about creating and manipulating an Action. * * ```ts * class Action extends Subscription { * new (scheduler: Scheduler, work: (state?: T) => void); * schedule(state?: T, delay: number = 0): Subscription; * } * ``` * * @class Action */ export class Action extends Subscription { constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) { super(); } /** * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed * some context object, `state`. May happen at some point in the future, * according to the `delay` parameter, if specified. * @param {T} [state] Some contextual data that the `work` function uses when * called by the Scheduler. * @param {number} [delay] Time to wait before executing the work, where the * time unit is implicit and defined by the Scheduler. * @return {void} */ public schedule(state?: T, delay: number = 0): Subscription { return this; } } rxjs-7.5.7/src/internal/scheduler/AnimationFrameAction.ts000066400000000000000000000042431431412030200234720ustar00rootroot00000000000000import { AsyncAction } from './AsyncAction'; import { AnimationFrameScheduler } from './AnimationFrameScheduler'; import { SchedulerAction } from '../types'; import { animationFrameProvider } from './animationFrameProvider'; import { TimerHandle } from './timerHandle'; export class AnimationFrameAction extends AsyncAction { constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) { super(scheduler, work); } protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle { // If delay is greater than 0, request as an async action. if (delay !== null && delay > 0) { return super.requestAsyncId(scheduler, id, delay); } // Push the action to the end of the scheduler queue. scheduler.actions.push(this); // If an animation frame has already been requested, don't request another // one. If an animation frame hasn't been requested yet, request one. Return // the current animation frame request id. return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined))); } protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined { // If delay exists and is greater than 0, or if the delay is null (the // action wasn't rescheduled) but was originally scheduled as an async // action, then recycle as an async action. if (delay != null ? delay > 0 : this.delay > 0) { return super.recycleAsyncId(scheduler, id, delay); } // If the scheduler queue has no remaining actions with the same async id, // cancel the requested animation frame and set the scheduled flag to // undefined so the next AnimationFrameAction will request its own. const { actions } = scheduler; if (id != null && actions[actions.length - 1]?.id !== id) { animationFrameProvider.cancelAnimationFrame(id as number); scheduler._scheduled = undefined; } // Return undefined so the action knows to request a new async id if it's rescheduled. return undefined; } } rxjs-7.5.7/src/internal/scheduler/AnimationFrameScheduler.ts000066400000000000000000000025441431412030200241750ustar00rootroot00000000000000import { AsyncAction } from './AsyncAction'; import { AsyncScheduler } from './AsyncScheduler'; export class AnimationFrameScheduler extends AsyncScheduler { public flush(action?: AsyncAction): void { this._active = true; // The async id that effects a call to flush is stored in _scheduled. // Before executing an action, it's necessary to check the action's async // id to determine whether it's supposed to be executed in the current // flush. // Previous implementations of this method used a count to determine this, // but that was unsound, as actions that are unsubscribed - i.e. cancelled - // are removed from the actions array and that can shift actions that are // scheduled to be executed in a subsequent flush into positions at which // they are executed within the current flush. const flushId = this._scheduled; this._scheduled = undefined; const { actions } = this; let error: any; action = action || actions.shift()!; do { if ((error = action.execute(action.state, action.delay))) { break; } } while ((action = actions[0]) && action.id === flushId && actions.shift()); this._active = false; if (error) { while ((action = actions[0]) && action.id === flushId && actions.shift()) { action.unsubscribe(); } throw error; } } } rxjs-7.5.7/src/internal/scheduler/AsapAction.ts000066400000000000000000000040501431412030200214600ustar00rootroot00000000000000import { AsyncAction } from './AsyncAction'; import { AsapScheduler } from './AsapScheduler'; import { SchedulerAction } from '../types'; import { immediateProvider } from './immediateProvider'; import { TimerHandle } from './timerHandle'; export class AsapAction extends AsyncAction { constructor(protected scheduler: AsapScheduler, protected work: (this: SchedulerAction, state?: T) => void) { super(scheduler, work); } protected requestAsyncId(scheduler: AsapScheduler, id?: TimerHandle, delay: number = 0): TimerHandle { // If delay is greater than 0, request as an async action. if (delay !== null && delay > 0) { return super.requestAsyncId(scheduler, id, delay); } // Push the action to the end of the scheduler queue. scheduler.actions.push(this); // If a microtask has already been scheduled, don't schedule another // one. If a microtask hasn't been scheduled yet, schedule one now. Return // the current scheduled microtask id. return scheduler._scheduled || (scheduler._scheduled = immediateProvider.setImmediate(scheduler.flush.bind(scheduler, undefined))); } protected recycleAsyncId(scheduler: AsapScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined { // If delay exists and is greater than 0, or if the delay is null (the // action wasn't rescheduled) but was originally scheduled as an async // action, then recycle as an async action. if (delay != null ? delay > 0 : this.delay > 0) { return super.recycleAsyncId(scheduler, id, delay); } // If the scheduler queue has no remaining actions with the same async id, // cancel the requested microtask and set the scheduled flag to undefined // so the next AsapAction will request its own. const { actions } = scheduler; if (id != null && actions[actions.length - 1]?.id !== id) { immediateProvider.clearImmediate(id); scheduler._scheduled = undefined; } // Return undefined so the action knows to request a new async id if it's rescheduled. return undefined; } } rxjs-7.5.7/src/internal/scheduler/AsapScheduler.ts000066400000000000000000000025321431412030200221640ustar00rootroot00000000000000import { AsyncAction } from './AsyncAction'; import { AsyncScheduler } from './AsyncScheduler'; export class AsapScheduler extends AsyncScheduler { public flush(action?: AsyncAction): void { this._active = true; // The async id that effects a call to flush is stored in _scheduled. // Before executing an action, it's necessary to check the action's async // id to determine whether it's supposed to be executed in the current // flush. // Previous implementations of this method used a count to determine this, // but that was unsound, as actions that are unsubscribed - i.e. cancelled - // are removed from the actions array and that can shift actions that are // scheduled to be executed in a subsequent flush into positions at which // they are executed within the current flush. const flushId = this._scheduled; this._scheduled = undefined; const { actions } = this; let error: any; action = action || actions.shift()!; do { if ((error = action.execute(action.state, action.delay))) { break; } } while ((action = actions[0]) && action.id === flushId && actions.shift()); this._active = false; if (error) { while ((action = actions[0]) && action.id === flushId && actions.shift()) { action.unsubscribe(); } throw error; } } } rxjs-7.5.7/src/internal/scheduler/AsyncAction.ts000066400000000000000000000122421431412030200216530ustar00rootroot00000000000000import { Action } from './Action'; import { SchedulerAction } from '../types'; import { Subscription } from '../Subscription'; import { AsyncScheduler } from './AsyncScheduler'; import { intervalProvider } from './intervalProvider'; import { arrRemove } from '../util/arrRemove'; import { TimerHandle } from './timerHandle'; export class AsyncAction extends Action { public id: TimerHandle | undefined; public state?: T; // @ts-ignore: Property has no initializer and is not definitely assigned public delay: number; protected pending: boolean = false; constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) { super(scheduler, work); } public schedule(state?: T, delay: number = 0): Subscription { if (this.closed) { return this; } // Always replace the current state with the new state. this.state = state; const id = this.id; const scheduler = this.scheduler; // // Important implementation note: // // Actions only execute once by default, unless rescheduled from within the // scheduled callback. This allows us to implement single and repeat // actions via the same code path, without adding API surface area, as well // as mimic traditional recursion but across asynchronous boundaries. // // However, JS runtimes and timers distinguish between intervals achieved by // serial `setTimeout` calls vs. a single `setInterval` call. An interval of // serial `setTimeout` calls can be individually delayed, which delays // scheduling the next `setTimeout`, and so on. `setInterval` attempts to // guarantee the interval callback will be invoked more precisely to the // interval period, regardless of load. // // Therefore, we use `setInterval` to schedule single and repeat actions. // If the action reschedules itself with the same delay, the interval is not // canceled. If the action doesn't reschedule, or reschedules with a // different delay, the interval will be canceled after scheduled callback // execution. // if (id != null) { this.id = this.recycleAsyncId(scheduler, id, delay); } // Set the pending flag indicating that this action has been scheduled, or // has recursively rescheduled itself. this.pending = true; this.delay = delay; // If this action has already an async Id, don't request a new one. this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay); return this; } protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle { return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay); } protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined { // If this action is rescheduled with the same delay time, don't clear the interval id. if (delay != null && this.delay === delay && this.pending === false) { return id; } // Otherwise, if the action's delay time is different from the current delay, // or the action has been rescheduled before it's executed, clear the interval id if (id != null) { intervalProvider.clearInterval(id); } return undefined; } /** * Immediately executes this action and the `work` it contains. * @return {any} */ public execute(state: T, delay: number): any { if (this.closed) { return new Error('executing a cancelled action'); } this.pending = false; const error = this._execute(state, delay); if (error) { return error; } else if (this.pending === false && this.id != null) { // Dequeue if the action didn't reschedule itself. Don't call // unsubscribe(), because the action could reschedule later. // For example: // ``` // scheduler.schedule(function doWork(counter) { // /* ... I'm a busy worker bee ... */ // var originalAction = this; // /* wait 100ms before rescheduling the action */ // setTimeout(function () { // originalAction.schedule(counter + 1); // }, 100); // }, 1000); // ``` this.id = this.recycleAsyncId(this.scheduler, this.id, null); } } protected _execute(state: T, _delay: number): any { let errored: boolean = false; let errorValue: any; try { this.work(state); } catch (e) { errored = true; // HACK: Since code elsewhere is relying on the "truthiness" of the // return here, we can't have it return "" or 0 or false. // TODO: Clean this up when we refactor schedulers mid-version-8 or so. errorValue = e ? e : new Error('Scheduled action threw falsy error'); } if (errored) { this.unsubscribe(); return errorValue; } } unsubscribe() { if (!this.closed) { const { id, scheduler } = this; const { actions } = scheduler; this.work = this.state = this.scheduler = null!; this.pending = false; arrRemove(actions, this); if (id != null) { this.id = this.recycleAsyncId(scheduler, id, null); } this.delay = null!; super.unsubscribe(); } } } rxjs-7.5.7/src/internal/scheduler/AsyncScheduler.ts000066400000000000000000000025121431412030200223530ustar00rootroot00000000000000import { Scheduler } from '../Scheduler'; import { Action } from './Action'; import { AsyncAction } from './AsyncAction'; import { TimerHandle } from './timerHandle'; export class AsyncScheduler extends Scheduler { public actions: Array> = []; /** * A flag to indicate whether the Scheduler is currently executing a batch of * queued actions. * @type {boolean} * @internal */ public _active: boolean = false; /** * An internal ID used to track the latest asynchronous task such as those * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and * others. * @type {any} * @internal */ public _scheduled: TimerHandle | undefined; constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) { super(SchedulerAction, now); } public flush(action: AsyncAction): void { const { actions } = this; if (this._active) { actions.push(action); return; } let error: any; this._active = true; do { if ((error = action.execute(action.state, action.delay))) { break; } } while ((action = actions.shift()!)); // exhaust the scheduler queue this._active = false; if (error) { while ((action = actions.shift()!)) { action.unsubscribe(); } throw error; } } } rxjs-7.5.7/src/internal/scheduler/QueueAction.ts000066400000000000000000000032541431412030200216650ustar00rootroot00000000000000import { AsyncAction } from './AsyncAction'; import { Subscription } from '../Subscription'; import { QueueScheduler } from './QueueScheduler'; import { SchedulerAction } from '../types'; import { TimerHandle } from './timerHandle'; export class QueueAction extends AsyncAction { constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) { super(scheduler, work); } public schedule(state?: T, delay: number = 0): Subscription { if (delay > 0) { return super.schedule(state, delay); } this.delay = delay; this.state = state; this.scheduler.flush(this); return this; } public execute(state: T, delay: number): any { return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay); } protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle { // If delay exists and is greater than 0, or if the delay is null (the // action wasn't rescheduled) but was originally scheduled as an async // action, then recycle as an async action. if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) { return super.requestAsyncId(scheduler, id, delay); } // Otherwise flush the scheduler starting with this action. scheduler.flush(this); // HACK: In the past, this was returning `void`. However, `void` isn't a valid // `TimerHandle`, and generally the return value here isn't really used. So the // compromise is to return `0` which is both "falsy" and a valid `TimerHandle`, // as opposed to refactoring every other instanceo of `requestAsyncId`. return 0; } } rxjs-7.5.7/src/internal/scheduler/QueueScheduler.ts000066400000000000000000000001531431412030200223610ustar00rootroot00000000000000import { AsyncScheduler } from './AsyncScheduler'; export class QueueScheduler extends AsyncScheduler { } rxjs-7.5.7/src/internal/scheduler/VirtualTimeScheduler.ts000066400000000000000000000102571431412030200235500ustar00rootroot00000000000000import { AsyncAction } from './AsyncAction'; import { Subscription } from '../Subscription'; import { AsyncScheduler } from './AsyncScheduler'; import { SchedulerAction } from '../types'; import { TimerHandle } from './timerHandle'; export class VirtualTimeScheduler extends AsyncScheduler { /** @deprecated Not used in VirtualTimeScheduler directly. Will be removed in v8. */ static frameTimeFactor = 10; /** * The current frame for the state of the virtual scheduler instance. The difference * between two "frames" is synonymous with the passage of "virtual time units". So if * you record `scheduler.frame` to be `1`, then later, observe `scheduler.frame` to be at `11`, * that means `10` virtual time units have passed. */ public frame: number = 0; /** * Used internally to examine the current virtual action index being processed. * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ public index: number = -1; /** * This creates an instance of a `VirtualTimeScheduler`. Experts only. The signature of * this constructor is likely to change in the long run. * * @param schedulerActionCtor The type of Action to initialize when initializing actions during scheduling. * @param maxFrames The maximum number of frames to process before stopping. Used to prevent endless flush cycles. */ constructor(schedulerActionCtor: typeof AsyncAction = VirtualAction as any, public maxFrames: number = Infinity) { super(schedulerActionCtor, () => this.frame); } /** * Prompt the Scheduler to execute all of its queued actions, therefore * clearing its queue. * @return {void} */ public flush(): void { const { actions, maxFrames } = this; let error: any; let action: AsyncAction | undefined; while ((action = actions[0]) && action.delay <= maxFrames) { actions.shift(); this.frame = action.delay; if ((error = action.execute(action.state, action.delay))) { break; } } if (error) { while ((action = actions.shift())) { action.unsubscribe(); } throw error; } } } export class VirtualAction extends AsyncAction { protected active: boolean = true; constructor( protected scheduler: VirtualTimeScheduler, protected work: (this: SchedulerAction, state?: T) => void, protected index: number = (scheduler.index += 1) ) { super(scheduler, work); this.index = scheduler.index = index; } public schedule(state?: T, delay: number = 0): Subscription { if (Number.isFinite(delay)) { if (!this.id) { return super.schedule(state, delay); } this.active = false; // If an action is rescheduled, we save allocations by mutating its state, // pushing it to the end of the scheduler queue, and recycling the action. // But since the VirtualTimeScheduler is used for testing, VirtualActions // must be immutable so they can be inspected later. const action = new VirtualAction(this.scheduler, this.work); this.add(action); return action.schedule(state, delay); } else { // If someone schedules something with Infinity, it'll never happen. So we // don't even schedule it. return Subscription.EMPTY; } } protected requestAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): TimerHandle { this.delay = scheduler.frame + delay; const { actions } = scheduler; actions.push(this); (actions as Array>).sort(VirtualAction.sortActions); return 1; } protected recycleAsyncId(scheduler: VirtualTimeScheduler, id?: any, delay: number = 0): TimerHandle | undefined { return undefined; } protected _execute(state: T, delay: number): any { if (this.active === true) { return super._execute(state, delay); } } private static sortActions(a: VirtualAction, b: VirtualAction) { if (a.delay === b.delay) { if (a.index === b.index) { return 0; } else if (a.index > b.index) { return 1; } else { return -1; } } else if (a.delay > b.delay) { return 1; } else { return -1; } } } rxjs-7.5.7/src/internal/scheduler/animationFrame.ts000066400000000000000000000026011431412030200223700ustar00rootroot00000000000000import { AnimationFrameAction } from './AnimationFrameAction'; import { AnimationFrameScheduler } from './AnimationFrameScheduler'; /** * * Animation Frame Scheduler * * Perform task when `window.requestAnimationFrame` would fire * * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler * behaviour. * * Without delay, `animationFrame` scheduler can be used to create smooth browser animations. * It makes sure scheduled task will happen just before next browser content repaint, * thus performing animations as efficiently as possible. * * ## Example * Schedule div height animation * ```ts * // html:
* import { animationFrameScheduler } from 'rxjs'; * * const div = document.querySelector('div'); * * animationFrameScheduler.schedule(function(height) { * div.style.height = height + "px"; * * this.schedule(height + 1); // `this` references currently executing Action, * // which we reschedule with new state * }, 0, 0); * * // You will see a div element growing in height * ``` */ export const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction); /** * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8. */ export const animationFrame = animationFrameScheduler; rxjs-7.5.7/src/internal/scheduler/animationFrameProvider.ts000066400000000000000000000031351431412030200241060ustar00rootroot00000000000000import { Subscription } from '../Subscription'; interface AnimationFrameProvider { schedule(callback: FrameRequestCallback): Subscription; requestAnimationFrame: typeof requestAnimationFrame; cancelAnimationFrame: typeof cancelAnimationFrame; delegate: | { requestAnimationFrame: typeof requestAnimationFrame; cancelAnimationFrame: typeof cancelAnimationFrame; } | undefined; } export const animationFrameProvider: AnimationFrameProvider = { // When accessing the delegate, use the variable rather than `this` so that // the functions can be called without being bound to the provider. schedule(callback) { let request = requestAnimationFrame; let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame; const { delegate } = animationFrameProvider; if (delegate) { request = delegate.requestAnimationFrame; cancel = delegate.cancelAnimationFrame; } const handle = request((timestamp) => { // Clear the cancel function. The request has been fulfilled, so // attempting to cancel the request upon unsubscription would be // pointless. cancel = undefined; callback(timestamp); }); return new Subscription(() => cancel?.(handle)); }, requestAnimationFrame(...args) { const { delegate } = animationFrameProvider; return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args); }, cancelAnimationFrame(...args) { const { delegate } = animationFrameProvider; return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args); }, delegate: undefined, }; rxjs-7.5.7/src/internal/scheduler/asap.ts000066400000000000000000000033041431412030200203630ustar00rootroot00000000000000import { AsapAction } from './AsapAction'; import { AsapScheduler } from './AsapScheduler'; /** * * Asap Scheduler * * Perform task as fast as it can be performed asynchronously * * `asap` scheduler behaves the same as {@link asyncScheduler} scheduler when you use it to delay task * in time. If however you set delay to `0`, `asap` will wait for current synchronously executing * code to end and then it will try to execute given task as fast as possible. * * `asap` scheduler will do its best to minimize time between end of currently executing code * and start of scheduled task. This makes it best candidate for performing so called "deferring". * Traditionally this was achieved by calling `setTimeout(deferredTask, 0)`, but that technique involves * some (although minimal) unwanted delay. * * Note that using `asap` scheduler does not necessarily mean that your task will be first to process * after currently executing code. In particular, if some task was also scheduled with `asap` before, * that task will execute first. That being said, if you need to schedule task asynchronously, but * as soon as possible, `asap` scheduler is your best bet. * * ## Example * Compare async and asap scheduler< * ```ts * import { asapScheduler, asyncScheduler } from 'rxjs'; * * asyncScheduler.schedule(() => console.log('async')); // scheduling 'async' first... * asapScheduler.schedule(() => console.log('asap')); * * // Logs: * // "asap" * // "async" * // ... but 'asap' goes first! * ``` */ export const asapScheduler = new AsapScheduler(AsapAction); /** * @deprecated Renamed to {@link asapScheduler}. Will be removed in v8. */ export const asap = asapScheduler; rxjs-7.5.7/src/internal/scheduler/async.ts000066400000000000000000000030321431412030200205520ustar00rootroot00000000000000import { AsyncAction } from './AsyncAction'; import { AsyncScheduler } from './AsyncScheduler'; /** * * Async Scheduler * * Schedule task as if you used setTimeout(task, duration) * * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating * in intervals. * * If you just want to "defer" task, that is to perform it right after currently * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`), * better choice will be the {@link asapScheduler} scheduler. * * ## Examples * Use async scheduler to delay task * ```ts * import { asyncScheduler } from 'rxjs'; * * const task = () => console.log('it works!'); * * asyncScheduler.schedule(task, 2000); * * // After 2 seconds logs: * // "it works!" * ``` * * Use async scheduler to repeat task in intervals * ```ts * import { asyncScheduler } from 'rxjs'; * * function task(state) { * console.log(state); * this.schedule(state + 1, 1000); // `this` references currently executing Action, * // which we reschedule with new state and delay * } * * asyncScheduler.schedule(task, 3000, 0); * * // Logs: * // 0 after 3s * // 1 after 4s * // 2 after 5s * // 3 after 6s * ``` */ export const asyncScheduler = new AsyncScheduler(AsyncAction); /** * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8. */ export const async = asyncScheduler; rxjs-7.5.7/src/internal/scheduler/dateTimestampProvider.ts000066400000000000000000000006651431412030200237620ustar00rootroot00000000000000import { TimestampProvider } from '../types'; interface DateTimestampProvider extends TimestampProvider { delegate: TimestampProvider | undefined; } export const dateTimestampProvider: DateTimestampProvider = { now() { // Use the variable rather than `this` so that the function can be called // without being bound to the provider. return (dateTimestampProvider.delegate || Date).now(); }, delegate: undefined, }; rxjs-7.5.7/src/internal/scheduler/immediateProvider.ts000066400000000000000000000020411431412030200231050ustar00rootroot00000000000000import { Immediate } from '../util/Immediate'; import type { TimerHandle } from './timerHandle'; const { setImmediate, clearImmediate } = Immediate; type SetImmediateFunction = (handler: () => void, ...args: any[]) => TimerHandle; type ClearImmediateFunction = (handle: TimerHandle) => void; interface ImmediateProvider { setImmediate: SetImmediateFunction; clearImmediate: ClearImmediateFunction; delegate: | { setImmediate: SetImmediateFunction; clearImmediate: ClearImmediateFunction; } | undefined; } export const immediateProvider: ImmediateProvider = { // When accessing the delegate, use the variable rather than `this` so that // the functions can be called without being bound to the provider. setImmediate(...args) { const { delegate } = immediateProvider; return (delegate?.setImmediate || setImmediate)(...args); }, clearImmediate(handle) { const { delegate } = immediateProvider; return (delegate?.clearImmediate || clearImmediate)(handle as any); }, delegate: undefined, }; rxjs-7.5.7/src/internal/scheduler/intervalProvider.ts000066400000000000000000000020751431412030200230020ustar00rootroot00000000000000import type { TimerHandle } from './timerHandle'; type SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle; type ClearIntervalFunction = (handle: TimerHandle) => void; interface IntervalProvider { setInterval: SetIntervalFunction; clearInterval: ClearIntervalFunction; delegate: | { setInterval: SetIntervalFunction; clearInterval: ClearIntervalFunction; } | undefined; } export const intervalProvider: IntervalProvider = { // When accessing the delegate, use the variable rather than `this` so that // the functions can be called without being bound to the provider. setInterval(handler: () => void, timeout?: number, ...args) { const { delegate } = intervalProvider; if (delegate?.setInterval) { return delegate.setInterval(handler, timeout, ...args); } return setInterval(handler, timeout, ...args); }, clearInterval(handle) { const { delegate } = intervalProvider; return (delegate?.clearInterval || clearInterval)(handle as any); }, delegate: undefined, }; rxjs-7.5.7/src/internal/scheduler/performanceTimestampProvider.ts000066400000000000000000000007301431412030200253370ustar00rootroot00000000000000import { TimestampProvider } from '../types'; interface PerformanceTimestampProvider extends TimestampProvider { delegate: TimestampProvider | undefined; } export const performanceTimestampProvider: PerformanceTimestampProvider = { now() { // Use the variable rather than `this` so that the function can be called // without being bound to the provider. return (performanceTimestampProvider.delegate || performance).now(); }, delegate: undefined, }; rxjs-7.5.7/src/internal/scheduler/queue.ts000066400000000000000000000040631431412030200205660ustar00rootroot00000000000000import { QueueAction } from './QueueAction'; import { QueueScheduler } from './QueueScheduler'; /** * * Queue Scheduler * * Put every next task on a queue, instead of executing it immediately * * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler. * * When used without delay, it schedules given task synchronously - executes it right when * it is scheduled. However when called recursively, that is when inside the scheduled task, * another task is scheduled with queue scheduler, instead of executing immediately as well, * that task will be put on a queue and wait for current one to finish. * * This means that when you execute task with `queue` scheduler, you are sure it will end * before any other task scheduled with that scheduler will start. * * ## Examples * Schedule recursively first, then do something * ```ts * import { queueScheduler } from 'rxjs'; * * queueScheduler.schedule(() => { * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue * * console.log('first'); * }); * * // Logs: * // "first" * // "second" * ``` * * Reschedule itself recursively * ```ts * import { queueScheduler } from 'rxjs'; * * queueScheduler.schedule(function(state) { * if (state !== 0) { * console.log('before', state); * this.schedule(state - 1); // `this` references currently executing Action, * // which we reschedule with new state * console.log('after', state); * } * }, 0, 3); * * // In scheduler that runs recursively, you would expect: * // "before", 3 * // "before", 2 * // "before", 1 * // "after", 1 * // "after", 2 * // "after", 3 * * // But with queue it logs: * // "before", 3 * // "after", 3 * // "before", 2 * // "after", 2 * // "before", 1 * // "after", 1 * ``` */ export const queueScheduler = new QueueScheduler(QueueAction); /** * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8. */ export const queue = queueScheduler; rxjs-7.5.7/src/internal/scheduler/timeoutProvider.ts000066400000000000000000000020471431412030200226430ustar00rootroot00000000000000import type { TimerHandle } from './timerHandle'; type SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle; type ClearTimeoutFunction = (handle: TimerHandle) => void; interface TimeoutProvider { setTimeout: SetTimeoutFunction; clearTimeout: ClearTimeoutFunction; delegate: | { setTimeout: SetTimeoutFunction; clearTimeout: ClearTimeoutFunction; } | undefined; } export const timeoutProvider: TimeoutProvider = { // When accessing the delegate, use the variable rather than `this` so that // the functions can be called without being bound to the provider. setTimeout(handler: () => void, timeout?: number, ...args) { const { delegate } = timeoutProvider; if (delegate?.setTimeout) { return delegate.setTimeout(handler, timeout, ...args); } return setTimeout(handler, timeout, ...args); }, clearTimeout(handle) { const { delegate } = timeoutProvider; return (delegate?.clearTimeout || clearTimeout)(handle as any); }, delegate: undefined, }; rxjs-7.5.7/src/internal/scheduler/timerHandle.ts000066400000000000000000000000631431412030200216720ustar00rootroot00000000000000export type TimerHandle = number | NodeJS.Timeout; rxjs-7.5.7/src/internal/symbol/000077500000000000000000000000001431412030200164165ustar00rootroot00000000000000rxjs-7.5.7/src/internal/symbol/iterator.ts000066400000000000000000000003271431412030200206210ustar00rootroot00000000000000export function getSymbolIterator(): symbol { if (typeof Symbol !== 'function' || !Symbol.iterator) { return '@@iterator' as any; } return Symbol.iterator; } export const iterator = getSymbolIterator(); rxjs-7.5.7/src/internal/symbol/observable.ts000066400000000000000000000003021431412030200211050ustar00rootroot00000000000000/** Symbol.observable or a string "@@observable". Used for interop */ export const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')(); rxjs-7.5.7/src/internal/testing/000077500000000000000000000000001431412030200165665ustar00rootroot00000000000000rxjs-7.5.7/src/internal/testing/ColdObservable.ts000066400000000000000000000036371431412030200220350ustar00rootroot00000000000000import { Observable } from '../Observable'; import { Subscription } from '../Subscription'; import { Scheduler } from '../Scheduler'; import { TestMessage } from './TestMessage'; import { SubscriptionLog } from './SubscriptionLog'; import { SubscriptionLoggable } from './SubscriptionLoggable'; import { applyMixins } from '../util/applyMixins'; import { Subscriber } from '../Subscriber'; import { observeNotification } from '../Notification'; export class ColdObservable extends Observable implements SubscriptionLoggable { public subscriptions: SubscriptionLog[] = []; scheduler: Scheduler; // @ts-ignore: Property has no initializer and is not definitely assigned logSubscribedFrame: () => number; // @ts-ignore: Property has no initializer and is not definitely assigned logUnsubscribedFrame: (index: number) => void; constructor(public messages: TestMessage[], scheduler: Scheduler) { super(function (this: Observable, subscriber: Subscriber) { const observable: ColdObservable = this as any; const index = observable.logSubscribedFrame(); const subscription = new Subscription(); subscription.add( new Subscription(() => { observable.logUnsubscribedFrame(index); }) ); observable.scheduleMessages(subscriber); return subscription; }); this.scheduler = scheduler; } scheduleMessages(subscriber: Subscriber) { const messagesLength = this.messages.length; for (let i = 0; i < messagesLength; i++) { const message = this.messages[i]; subscriber.add( this.scheduler.schedule( (state) => { const { message: { notification }, subscriber: destination } = state!; observeNotification(notification, destination); }, message.frame, { message, subscriber } ) ); } } } applyMixins(ColdObservable, [SubscriptionLoggable]); rxjs-7.5.7/src/internal/testing/HotObservable.ts000066400000000000000000000034661431412030200217060ustar00rootroot00000000000000import { Subject } from '../Subject'; import { Subscriber } from '../Subscriber'; import { Subscription } from '../Subscription'; import { Scheduler } from '../Scheduler'; import { TestMessage } from './TestMessage'; import { SubscriptionLog } from './SubscriptionLog'; import { SubscriptionLoggable } from './SubscriptionLoggable'; import { applyMixins } from '../util/applyMixins'; import { observeNotification } from '../Notification'; export class HotObservable extends Subject implements SubscriptionLoggable { public subscriptions: SubscriptionLog[] = []; scheduler: Scheduler; // @ts-ignore: Property has no initializer and is not definitely assigned logSubscribedFrame: () => number; // @ts-ignore: Property has no initializer and is not definitely assigned logUnsubscribedFrame: (index: number) => void; constructor(public messages: TestMessage[], scheduler: Scheduler) { super(); this.scheduler = scheduler; } /** @internal */ protected _subscribe(subscriber: Subscriber): Subscription { const subject: HotObservable = this; const index = subject.logSubscribedFrame(); const subscription = new Subscription(); subscription.add( new Subscription(() => { subject.logUnsubscribedFrame(index); }) ); subscription.add(super._subscribe(subscriber)); return subscription; } setup() { const subject = this; const messagesLength = subject.messages.length; /* tslint:disable:no-var-keyword */ for (let i = 0; i < messagesLength; i++) { (() => { const { notification, frame } = subject.messages[i]; /* tslint:enable */ subject.scheduler.schedule(() => { observeNotification(notification, subject); }, frame); })(); } } } applyMixins(HotObservable, [SubscriptionLoggable]); rxjs-7.5.7/src/internal/testing/SubscriptionLog.ts000066400000000000000000000002171431412030200222640ustar00rootroot00000000000000export class SubscriptionLog { constructor(public subscribedFrame: number, public unsubscribedFrame: number = Infinity) { } }rxjs-7.5.7/src/internal/testing/SubscriptionLoggable.ts000066400000000000000000000013071431412030200232600ustar00rootroot00000000000000import { Scheduler } from '../Scheduler'; import { SubscriptionLog } from './SubscriptionLog'; export class SubscriptionLoggable { public subscriptions: SubscriptionLog[] = []; // @ts-ignore: Property has no initializer and is not definitely assigned scheduler: Scheduler; logSubscribedFrame(): number { this.subscriptions.push(new SubscriptionLog(this.scheduler.now())); return this.subscriptions.length - 1; } logUnsubscribedFrame(index: number) { const subscriptionLogs = this.subscriptions; const oldSubscriptionLog = subscriptionLogs[index]; subscriptionLogs[index] = new SubscriptionLog( oldSubscriptionLog.subscribedFrame, this.scheduler.now() ); } } rxjs-7.5.7/src/internal/testing/TestMessage.ts000066400000000000000000000002501431412030200213570ustar00rootroot00000000000000import { ObservableNotification } from '../types'; export interface TestMessage { frame: number; notification: ObservableNotification; isGhost?: boolean; } rxjs-7.5.7/src/internal/testing/TestScheduler.ts000066400000000000000000000613601431412030200217220ustar00rootroot00000000000000import { Observable } from '../Observable'; import { ColdObservable } from './ColdObservable'; import { HotObservable } from './HotObservable'; import { TestMessage } from './TestMessage'; import { SubscriptionLog } from './SubscriptionLog'; import { Subscription } from '../Subscription'; import { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler'; import { ObservableNotification } from '../types'; import { COMPLETE_NOTIFICATION, errorNotification, nextNotification } from '../NotificationFactories'; import { dateTimestampProvider } from '../scheduler/dateTimestampProvider'; import { performanceTimestampProvider } from '../scheduler/performanceTimestampProvider'; import { animationFrameProvider } from '../scheduler/animationFrameProvider'; import type { TimerHandle } from '../scheduler/timerHandle'; import { immediateProvider } from '../scheduler/immediateProvider'; import { intervalProvider } from '../scheduler/intervalProvider'; import { timeoutProvider } from '../scheduler/timeoutProvider'; const defaultMaxFrame: number = 750; export interface RunHelpers { cold: typeof TestScheduler.prototype.createColdObservable; hot: typeof TestScheduler.prototype.createHotObservable; flush: typeof TestScheduler.prototype.flush; time: typeof TestScheduler.prototype.createTime; expectObservable: typeof TestScheduler.prototype.expectObservable; expectSubscriptions: typeof TestScheduler.prototype.expectSubscriptions; animate: (marbles: string) => void; } interface FlushableTest { ready: boolean; actual?: any[]; expected?: any[]; } export type observableToBeFn = (marbles: string, values?: any, errorValue?: any) => void; export type subscriptionLogsToBeFn = (marbles: string | string[]) => void; export class TestScheduler extends VirtualTimeScheduler { /** * The number of virtual time units each character in a marble diagram represents. If * the test scheduler is being used in "run mode", via the `run` method, this is temporarily * set to `1` for the duration of the `run` block, then set back to whatever value it was. * @nocollapse */ static frameTimeFactor = 10; /** * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ public readonly hotObservables: HotObservable[] = []; /** * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */ public readonly coldObservables: ColdObservable[] = []; /** * Test meta data to be processed during `flush()` */ private flushTests: FlushableTest[] = []; /** * Indicates whether the TestScheduler instance is operating in "run mode", * meaning it's processing a call to `run()` */ private runMode = false; /** * * @param assertDeepEqual A function to set up your assertion for your test harness */ constructor(public assertDeepEqual: (actual: any, expected: any) => boolean | void) { super(VirtualAction, defaultMaxFrame); } createTime(marbles: string): number { const indexOf = this.runMode ? marbles.trim().indexOf('|') : marbles.indexOf('|'); if (indexOf === -1) { throw new Error('marble diagram for time should have a completion marker "|"'); } return indexOf * TestScheduler.frameTimeFactor; } /** * @param marbles A diagram in the marble DSL. Letters map to keys in `values` if provided. * @param values Values to use for the letters in `marbles`. If omitted, the letters themselves are used. * @param error The error to use for the `#` marble (if present). */ createColdObservable(marbles: string, values?: { [marble: string]: T }, error?: any): ColdObservable { if (marbles.indexOf('^') !== -1) { throw new Error('cold observable cannot have subscription offset "^"'); } if (marbles.indexOf('!') !== -1) { throw new Error('cold observable cannot have unsubscription marker "!"'); } const messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); const cold = new ColdObservable(messages, this); this.coldObservables.push(cold); return cold; } /** * @param marbles A diagram in the marble DSL. Letters map to keys in `values` if provided. * @param values Values to use for the letters in `marbles`. If omitted, the letters themselves are used. * @param error The error to use for the `#` marble (if present). */ createHotObservable(marbles: string, values?: { [marble: string]: T }, error?: any): HotObservable { if (marbles.indexOf('!') !== -1) { throw new Error('hot observable cannot have unsubscription marker "!"'); } const messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode); const subject = new HotObservable(messages, this); this.hotObservables.push(subject); return subject; } private materializeInnerObservable(observable: Observable, outerFrame: number): TestMessage[] { const messages: TestMessage[] = []; observable.subscribe({ next: (value) => { messages.push({ frame: this.frame - outerFrame, notification: nextNotification(value) }); }, error: (error) => { messages.push({ frame: this.frame - outerFrame, notification: errorNotification(error) }); }, complete: () => { messages.push({ frame: this.frame - outerFrame, notification: COMPLETE_NOTIFICATION }); }, }); return messages; } expectObservable(observable: Observable, subscriptionMarbles: string | null = null) { const actual: TestMessage[] = []; const flushTest: FlushableTest = { actual, ready: false }; const subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode); const subscriptionFrame = subscriptionParsed.subscribedFrame === Infinity ? 0 : subscriptionParsed.subscribedFrame; const unsubscriptionFrame = subscriptionParsed.unsubscribedFrame; let subscription: Subscription; this.schedule(() => { subscription = observable.subscribe({ next: (x) => { // Support Observable-of-Observables const value = x instanceof Observable ? this.materializeInnerObservable(x, this.frame) : x; actual.push({ frame: this.frame, notification: nextNotification(value) }); }, error: (error) => { actual.push({ frame: this.frame, notification: errorNotification(error) }); }, complete: () => { actual.push({ frame: this.frame, notification: COMPLETE_NOTIFICATION }); }, }); }, subscriptionFrame); if (unsubscriptionFrame !== Infinity) { this.schedule(() => subscription.unsubscribe(), unsubscriptionFrame); } this.flushTests.push(flushTest); const { runMode } = this; return { toBe(marbles: string, values?: any, errorValue?: any) { flushTest.ready = true; flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode); }, toEqual: (other: Observable) => { flushTest.ready = true; flushTest.expected = []; this.schedule(() => { subscription = other.subscribe({ next: (x) => { // Support Observable-of-Observables const value = x instanceof Observable ? this.materializeInnerObservable(x, this.frame) : x; flushTest.expected!.push({ frame: this.frame, notification: nextNotification(value) }); }, error: (error) => { flushTest.expected!.push({ frame: this.frame, notification: errorNotification(error) }); }, complete: () => { flushTest.expected!.push({ frame: this.frame, notification: COMPLETE_NOTIFICATION }); }, }); }, subscriptionFrame); }, }; } expectSubscriptions(actualSubscriptionLogs: SubscriptionLog[]): { toBe: subscriptionLogsToBeFn } { const flushTest: FlushableTest = { actual: actualSubscriptionLogs, ready: false }; this.flushTests.push(flushTest); const { runMode } = this; return { toBe(marblesOrMarblesArray: string | string[]) { const marblesArray: string[] = typeof marblesOrMarblesArray === 'string' ? [marblesOrMarblesArray] : marblesOrMarblesArray; flushTest.ready = true; flushTest.expected = marblesArray .map((marbles) => TestScheduler.parseMarblesAsSubscriptions(marbles, runMode)) .filter((marbles) => marbles.subscribedFrame !== Infinity); }, }; } flush() { const hotObservables = this.hotObservables; while (hotObservables.length > 0) { hotObservables.shift()!.setup(); } super.flush(); this.flushTests = this.flushTests.filter((test) => { if (test.ready) { this.assertDeepEqual(test.actual, test.expected); return false; } return true; }); } /** @nocollapse */ static parseMarblesAsSubscriptions(marbles: string | null, runMode = false): SubscriptionLog { if (typeof marbles !== 'string') { return new SubscriptionLog(Infinity); } // Spreading the marbles into an array leverages ES2015's support for emoji // characters when iterating strings. const characters = [...marbles]; const len = characters.length; let groupStart = -1; let subscriptionFrame = Infinity; let unsubscriptionFrame = Infinity; let frame = 0; for (let i = 0; i < len; i++) { let nextFrame = frame; const advanceFrameBy = (count: number) => { nextFrame += count * this.frameTimeFactor; }; const c = characters[i]; switch (c) { case ' ': // Whitespace no longer advances time if (!runMode) { advanceFrameBy(1); } break; case '-': advanceFrameBy(1); break; case '(': groupStart = frame; advanceFrameBy(1); break; case ')': groupStart = -1; advanceFrameBy(1); break; case '^': if (subscriptionFrame !== Infinity) { throw new Error("found a second subscription point '^' in a " + 'subscription marble diagram. There can only be one.'); } subscriptionFrame = groupStart > -1 ? groupStart : frame; advanceFrameBy(1); break; case '!': if (unsubscriptionFrame !== Infinity) { throw new Error("found a second unsubscription point '!' in a " + 'subscription marble diagram. There can only be one.'); } unsubscriptionFrame = groupStart > -1 ? groupStart : frame; break; default: // time progression syntax if (runMode && c.match(/^[0-9]$/)) { // Time progression must be preceded by at least one space // if it's not at the beginning of the diagram if (i === 0 || characters[i - 1] === ' ') { const buffer = characters.slice(i).join(''); const match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); if (match) { i += match[0].length - 1; const duration = parseFloat(match[1]); const unit = match[2]; let durationInMs: number; switch (unit) { case 'ms': durationInMs = duration; break; case 's': durationInMs = duration * 1000; break; case 'm': durationInMs = duration * 1000 * 60; break; default: break; } advanceFrameBy(durationInMs! / this.frameTimeFactor); break; } } } throw new Error("there can only be '^' and '!' markers in a " + "subscription marble diagram. Found instead '" + c + "'."); } frame = nextFrame; } if (unsubscriptionFrame < 0) { return new SubscriptionLog(subscriptionFrame); } else { return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame); } } /** @nocollapse */ static parseMarbles( marbles: string, values?: any, errorValue?: any, materializeInnerObservables: boolean = false, runMode = false ): TestMessage[] { if (marbles.indexOf('!') !== -1) { throw new Error('conventional marble diagrams cannot have the ' + 'unsubscription marker "!"'); } // Spreading the marbles into an array leverages ES2015's support for emoji // characters when iterating strings. const characters = [...marbles]; const len = characters.length; const testMessages: TestMessage[] = []; const subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^'); let frame = subIndex === -1 ? 0 : subIndex * -this.frameTimeFactor; const getValue = typeof values !== 'object' ? (x: any) => x : (x: any) => { // Support Observable-of-Observables if (materializeInnerObservables && values[x] instanceof ColdObservable) { return values[x].messages; } return values[x]; }; let groupStart = -1; for (let i = 0; i < len; i++) { let nextFrame = frame; const advanceFrameBy = (count: number) => { nextFrame += count * this.frameTimeFactor; }; let notification: ObservableNotification | undefined; const c = characters[i]; switch (c) { case ' ': // Whitespace no longer advances time if (!runMode) { advanceFrameBy(1); } break; case '-': advanceFrameBy(1); break; case '(': groupStart = frame; advanceFrameBy(1); break; case ')': groupStart = -1; advanceFrameBy(1); break; case '|': notification = COMPLETE_NOTIFICATION; advanceFrameBy(1); break; case '^': advanceFrameBy(1); break; case '#': notification = errorNotification(errorValue || 'error'); advanceFrameBy(1); break; default: // Might be time progression syntax, or a value literal if (runMode && c.match(/^[0-9]$/)) { // Time progression must be preceded by at least one space // if it's not at the beginning of the diagram if (i === 0 || characters[i - 1] === ' ') { const buffer = characters.slice(i).join(''); const match = buffer.match(/^([0-9]+(?:\.[0-9]+)?)(ms|s|m) /); if (match) { i += match[0].length - 1; const duration = parseFloat(match[1]); const unit = match[2]; let durationInMs: number; switch (unit) { case 'ms': durationInMs = duration; break; case 's': durationInMs = duration * 1000; break; case 'm': durationInMs = duration * 1000 * 60; break; default: break; } advanceFrameBy(durationInMs! / this.frameTimeFactor); break; } } } notification = nextNotification(getValue(c)); advanceFrameBy(1); break; } if (notification) { testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification }); } frame = nextFrame; } return testMessages; } private createAnimator() { if (!this.runMode) { throw new Error('animate() must only be used in run mode'); } // The TestScheduler assigns a delegate to the provider that's used for // requestAnimationFrame (rAF). The delegate works in conjunction with the // animate run helper to coordinate the invocation of any rAF callbacks, // that are effected within tests, with the animation frames specified by // the test's author - in the marbles that are passed to the animate run // helper. This allows the test's author to write deterministic tests and // gives the author full control over when - or if - animation frames are // 'painted'. let lastHandle = 0; let map: Map | undefined; const delegate = { requestAnimationFrame(callback: FrameRequestCallback) { if (!map) { throw new Error('animate() was not called within run()'); } const handle = ++lastHandle; map.set(handle, callback); return handle; }, cancelAnimationFrame(handle: number) { if (!map) { throw new Error('animate() was not called within run()'); } map.delete(handle); }, }; const animate = (marbles: string) => { if (map) { throw new Error('animate() must not be called more than once within run()'); } if (/[|#]/.test(marbles)) { throw new Error('animate() must not complete or error'); } map = new Map(); const messages = TestScheduler.parseMarbles(marbles, undefined, undefined, undefined, true); for (const message of messages) { this.schedule(() => { const now = this.now(); // Capture the callbacks within the queue and clear the queue // before enumerating the callbacks, as callbacks might // reschedule themselves. (And, yeah, we're using a Map to represent // the queue, but the values are guaranteed to be returned in // insertion order, so it's all good. Trust me, I've read the docs.) const callbacks = Array.from(map!.values()); map!.clear(); for (const callback of callbacks) { callback(now); } }, message.frame); } }; return { animate, delegate }; } private createDelegates() { // When in run mode, the TestScheduler provides alternate implementations // of set/clearImmediate and set/clearInterval. These implementations are // consumed by the scheduler implementations via the providers. This is // done to effect deterministic asap and async scheduler behavior so that // all of the schedulers are testable in 'run mode'. Prior to v7, // delegation occurred at the scheduler level. That is, the asap and // animation frame schedulers were identical in behavior to the async // scheduler. Now, when in run mode, asap actions are prioritized over // async actions and animation frame actions are coordinated using the // animate run helper. let lastHandle = 0; const scheduleLookup = new Map< TimerHandle, { due: number; duration: number; handle: TimerHandle; handler: () => void; subscription: Subscription; type: 'immediate' | 'interval' | 'timeout'; } >(); const run = () => { // Whenever a scheduled run is executed, it must run a single immediate // or interval action - with immediate actions being prioritized over // interval and timeout actions. const now = this.now(); const scheduledRecords = Array.from(scheduleLookup.values()); const scheduledRecordsDue = scheduledRecords.filter(({ due }) => due <= now); const dueImmediates = scheduledRecordsDue.filter(({ type }) => type === 'immediate'); if (dueImmediates.length > 0) { const { handle, handler } = dueImmediates[0]; scheduleLookup.delete(handle); handler(); return; } const dueIntervals = scheduledRecordsDue.filter(({ type }) => type === 'interval'); if (dueIntervals.length > 0) { const firstDueInterval = dueIntervals[0]; const { duration, handler } = firstDueInterval; firstDueInterval.due = now + duration; // The interval delegate must behave like setInterval, so run needs to // be rescheduled. This will continue until the clearInterval delegate // unsubscribes and deletes the handle from the map. firstDueInterval.subscription = this.schedule(run, duration); handler(); return; } const dueTimeouts = scheduledRecordsDue.filter(({ type }) => type === 'timeout'); if (dueTimeouts.length > 0) { const { handle, handler } = dueTimeouts[0]; scheduleLookup.delete(handle); handler(); return; } throw new Error('Expected a due immediate or interval'); }; // The following objects are the delegates that replace conventional // runtime implementations with TestScheduler implementations. // // The immediate delegate is depended upon by the asapScheduler. // // The interval delegate is depended upon by the asyncScheduler. // // The timeout delegate is not depended upon by any scheduler, but it's // included here because the onUnhandledError and onStoppedNotification // configuration points use setTimeout to avoid producer interference. It's // inclusion allows for the testing of these configuration points. const immediate = { setImmediate: (handler: () => void) => { const handle = ++lastHandle; scheduleLookup.set(handle, { due: this.now(), duration: 0, handle, handler, subscription: this.schedule(run, 0), type: 'immediate', }); return handle; }, clearImmediate: (handle: TimerHandle) => { const value = scheduleLookup.get(handle); if (value) { value.subscription.unsubscribe(); scheduleLookup.delete(handle); } }, }; const interval = { setInterval: (handler: () => void, duration = 0) => { const handle = ++lastHandle; scheduleLookup.set(handle, { due: this.now() + duration, duration, handle, handler, subscription: this.schedule(run, duration), type: 'interval', }); return handle; }, clearInterval: (handle: TimerHandle) => { const value = scheduleLookup.get(handle); if (value) { value.subscription.unsubscribe(); scheduleLookup.delete(handle); } }, }; const timeout = { setTimeout: (handler: () => void, duration = 0) => { const handle = ++lastHandle; scheduleLookup.set(handle, { due: this.now() + duration, duration, handle, handler, subscription: this.schedule(run, duration), type: 'timeout', }); return handle; }, clearTimeout: (handle: TimerHandle) => { const value = scheduleLookup.get(handle); if (value) { value.subscription.unsubscribe(); scheduleLookup.delete(handle); } }, }; return { immediate, interval, timeout }; } /** * The `run` method performs the test in 'run mode' - in which schedulers * used within the test automatically delegate to the `TestScheduler`. That * is, in 'run mode' there is no need to explicitly pass a `TestScheduler` * instance to observable creators or operators. * * @see {@link /guide/testing/marble-testing} */ run(callback: (helpers: RunHelpers) => T): T { const prevFrameTimeFactor = TestScheduler.frameTimeFactor; const prevMaxFrames = this.maxFrames; TestScheduler.frameTimeFactor = 1; this.maxFrames = Infinity; this.runMode = true; const animator = this.createAnimator(); const delegates = this.createDelegates(); animationFrameProvider.delegate = animator.delegate; dateTimestampProvider.delegate = this; immediateProvider.delegate = delegates.immediate; intervalProvider.delegate = delegates.interval; timeoutProvider.delegate = delegates.timeout; performanceTimestampProvider.delegate = this; const helpers: RunHelpers = { cold: this.createColdObservable.bind(this), hot: this.createHotObservable.bind(this), flush: this.flush.bind(this), time: this.createTime.bind(this), expectObservable: this.expectObservable.bind(this), expectSubscriptions: this.expectSubscriptions.bind(this), animate: animator.animate, }; try { const ret = callback(helpers); this.flush(); return ret; } finally { TestScheduler.frameTimeFactor = prevFrameTimeFactor; this.maxFrames = prevMaxFrames; this.runMode = false; animationFrameProvider.delegate = undefined; dateTimestampProvider.delegate = undefined; immediateProvider.delegate = undefined; intervalProvider.delegate = undefined; timeoutProvider.delegate = undefined; performanceTimestampProvider.delegate = undefined; } } } rxjs-7.5.7/src/internal/types.ts000066400000000000000000000231121431412030200166240ustar00rootroot00000000000000// https://github.com/microsoft/TypeScript/issues/40462#issuecomment-689879308 /// import { Observable } from './Observable'; import { Subscription } from './Subscription'; /** * Note: This will add Symbol.observable globally for all TypeScript users, * however, we are no longer polyfilling Symbol.observable */ declare global { interface SymbolConstructor { readonly observable: symbol; } } /** OPERATOR INTERFACES */ export interface UnaryFunction { (source: T): R; } export interface OperatorFunction extends UnaryFunction, Observable> {} export type FactoryOrValue = T | (() => T); export interface MonoTypeOperatorFunction extends OperatorFunction {} /** * A value and the time at which it was emitted. * * Emitted by the `timestamp` operator * * @see {@link timestamp} */ export interface Timestamp { value: T; /** * The timestamp. By default, this is in epoch milliseconds. * Could vary based on the timestamp provider passed to the operator. */ timestamp: number; } /** * A value emitted and the amount of time since the last value was emitted. * * Emitted by the `timeInterval` operator. * * @see {@link timeInterval} */ export interface TimeInterval { value: T; /** * The amount of time between this value's emission and the previous value's emission. * If this is the first emitted value, then it will be the amount of time since subscription * started. */ interval: number; } /** SUBSCRIPTION INTERFACES */ export interface Unsubscribable { unsubscribe(): void; } export type TeardownLogic = Subscription | Unsubscribable | (() => void) | void; export interface SubscriptionLike extends Unsubscribable { unsubscribe(): void; readonly closed: boolean; } /** * @deprecated Do not use. Most likely you want to use `ObservableInput`. Will be removed in v8. */ export type SubscribableOrPromise = Subscribable | Subscribable | PromiseLike | InteropObservable; /** OBSERVABLE INTERFACES */ export interface Subscribable { subscribe(observer: Partial>): Unsubscribable; } /** * Valid types that can be converted to observables. */ export type ObservableInput = | Observable | InteropObservable | AsyncIterable | PromiseLike | ArrayLike | Iterable | ReadableStreamLike; /** * @deprecated Renamed to {@link InteropObservable }. Will be removed in v8. */ export type ObservableLike = InteropObservable; /** * An object that implements the `Symbol.observable` interface. */ export interface InteropObservable { [Symbol.observable]: () => Subscribable; } /** NOTIFICATIONS */ /** * A notification representing a "next" from an observable. * Can be used with {@link dematerialize}. */ export interface NextNotification { /** The kind of notification. Always "N" */ kind: 'N'; /** The value of the notification. */ value: T; } /** * A notification representing an "error" from an observable. * Can be used with {@link dematerialize}. */ export interface ErrorNotification { /** The kind of notification. Always "E" */ kind: 'E'; error: any; } /** * A notification representing a "completion" from an observable. * Can be used with {@link dematerialize}. */ export interface CompleteNotification { kind: 'C'; } /** * Valid observable notification types. */ export type ObservableNotification = NextNotification | ErrorNotification | CompleteNotification; /** OBSERVER INTERFACES */ export interface NextObserver { closed?: boolean; next: (value: T) => void; error?: (err: any) => void; complete?: () => void; } export interface ErrorObserver { closed?: boolean; next?: (value: T) => void; error: (err: any) => void; complete?: () => void; } export interface CompletionObserver { closed?: boolean; next?: (value: T) => void; error?: (err: any) => void; complete: () => void; } export type PartialObserver = NextObserver | ErrorObserver | CompletionObserver; export interface Observer { next: (value: T) => void; error: (err: any) => void; complete: () => void; } export interface SubjectLike extends Observer, Subscribable {} /** SCHEDULER INTERFACES */ export interface SchedulerLike extends TimestampProvider { schedule(work: (this: SchedulerAction, state: T) => void, delay: number, state: T): Subscription; schedule(work: (this: SchedulerAction, state?: T) => void, delay: number, state?: T): Subscription; schedule(work: (this: SchedulerAction, state?: T) => void, delay?: number, state?: T): Subscription; } export interface SchedulerAction extends Subscription { schedule(state?: T, delay?: number): Subscription; } /** * This is a type that provides a method to allow RxJS to create a numeric timestamp */ export interface TimestampProvider { /** * Returns a timestamp as a number. * * This is used by types like `ReplaySubject` or operators like `timestamp` to calculate * the amount of time passed between events. */ now(): number; } /** * Extracts the type from an `ObservableInput`. If you have * `O extends ObservableInput` and you pass in `Observable`, or * `Promise`, etc, it will type as `number`. */ export type ObservedValueOf = O extends ObservableInput ? T : never; /** * Extracts a union of element types from an `ObservableInput[]`. * If you have `O extends ObservableInput[]` and you pass in * `Observable[]` or `Promise[]` you would get * back a type of `string`. * If you pass in `[Observable, Observable]` you would * get back a type of `string | number`. */ export type ObservedValueUnionFromArray = X extends Array> ? T : never; /** * @deprecated Renamed to {@link ObservedValueUnionFromArray}. Will be removed in v8. */ export type ObservedValuesFromArray = ObservedValueUnionFromArray; /** * Extracts a tuple of element types from an `ObservableInput[]`. * If you have `O extends ObservableInput[]` and you pass in * `[Observable, Observable]` you would get back a type * of `[string, number]`. */ export type ObservedValueTupleFromArray = { [K in keyof X]: ObservedValueOf }; /** * Used to infer types from arguments to functions like {@link forkJoin}. * So that you can have `forkJoin([Observable
, PromiseLike]): Observable<[A, B]>` * et al. */ export type ObservableInputTuple = { [K in keyof T]: ObservableInput; }; /** * Constructs a new tuple with the specified type at the head. * If you declare `Cons` you will get back `[A, B, C]`. */ export type Cons = ((arg: X, ...rest: Y) => any) extends (...args: infer U) => any ? U : never; /** * Extracts the head of a tuple. * If you declare `Head<[A, B, C]>` you will get back `A`. */ export type Head = ((...args: X) => any) extends (arg: infer U, ...rest: any[]) => any ? U : never; /** * Extracts the tail of a tuple. * If you declare `Tail<[A, B, C]>` you will get back `[B, C]`. */ export type Tail = ((...args: X) => any) extends (arg: any, ...rest: infer U) => any ? U : never; /** * Extracts the generic value from an Array type. * If you have `T extends Array`, and pass a `string[]` to it, * `ValueFromArray` will return the actual type of `string`. */ export type ValueFromArray = A extends Array ? T : never; /** * Gets the value type from an {@link ObservableNotification}, if possible. */ export type ValueFromNotification = T extends { kind: 'N' | 'E' | 'C' } ? T extends NextNotification ? T extends { value: infer V } ? V : undefined : never : never; /** * A simple type to represent a gamut of "falsy" values... with a notable exception: * `NaN` is "falsy" however, it is not and cannot be typed via TypeScript. See * comments here: https://github.com/microsoft/TypeScript/issues/28682#issuecomment-707142417 */ export type Falsy = null | undefined | false | 0 | -0 | 0n | ''; export type TruthyTypesOf = T extends Falsy ? never : T; // We shouldn't rely on this type definition being available globally yet since it's // not necessarily available in every TS environment. interface ReadableStreamDefaultReaderLike { // HACK: As of TS 4.2.2, The provided types for the iterator results of a `ReadableStreamDefaultReader` // are significantly different enough from `IteratorResult` as to cause compilation errors. // The type at the time is `ReadableStreamDefaultReadResult`. read(): PromiseLike< | { done: false; value: T; } | { done: true; value?: undefined } >; releaseLock(): void; } /** * The base signature RxJS will look for to identify and use * a [ReadableStream](https://streams.spec.whatwg.org/#rs-class) * as an {@link ObservableInput} source. */ export interface ReadableStreamLike { getReader(): ReadableStreamDefaultReaderLike; } /** * An observable with a `connect` method that is used to create a subscription * to an underlying source, connecting it with all consumers via a multicast. */ export interface Connectable extends Observable { /** * (Idempotent) Calling this method will connect the underlying source observable to all subscribed consumers * through an underlying {@link Subject}. * @returns A subscription, that when unsubscribed, will "disconnect" the source from the connector subject, * severing notifications to all consumers. */ connect(): Subscription; } rxjs-7.5.7/src/internal/umd.ts000066400000000000000000000011261431412030200162460ustar00rootroot00000000000000/* NOTE: This is the global export file for rxjs v6 and higher. */ /* rxjs */ export * from '../index'; /* rxjs.operators */ import * as _operators from '../operators/index'; export const operators = _operators; /* rxjs.testing */ import * as _testing from '../testing/index'; export const testing = _testing; /* rxjs.ajax */ import * as _ajax from '../ajax/index'; export const ajax = _ajax; /* rxjs.webSocket */ import * as _webSocket from '../webSocket/index'; export const webSocket = _webSocket; /* rxjs.fetch */ import * as _fetch from '../fetch/index'; export const fetch = _fetch; rxjs-7.5.7/src/internal/util/000077500000000000000000000000001431412030200160665ustar00rootroot00000000000000rxjs-7.5.7/src/internal/util/ArgumentOutOfRangeError.ts000066400000000000000000000016201431412030200231630ustar00rootroot00000000000000import { createErrorClass } from './createErrorClass'; export interface ArgumentOutOfRangeError extends Error {} export interface ArgumentOutOfRangeErrorCtor { /** * @deprecated Internal implementation detail. Do not construct error instances. * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269 */ new (): ArgumentOutOfRangeError; } /** * An error thrown when an element was queried at a certain index of an * Observable, but no such index or position exists in that sequence. * * @see {@link elementAt} * @see {@link take} * @see {@link takeLast} * * @class ArgumentOutOfRangeError */ export const ArgumentOutOfRangeError: ArgumentOutOfRangeErrorCtor = createErrorClass( (_super) => function ArgumentOutOfRangeErrorImpl(this: any) { _super(this); this.name = 'ArgumentOutOfRangeError'; this.message = 'argument out of range'; } ); rxjs-7.5.7/src/internal/util/EmptyError.ts000066400000000000000000000014231431412030200205460ustar00rootroot00000000000000import { createErrorClass } from './createErrorClass'; export interface EmptyError extends Error {} export interface EmptyErrorCtor { /** * @deprecated Internal implementation detail. Do not construct error instances. * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269 */ new (): EmptyError; } /** * An error thrown when an Observable or a sequence was queried but has no * elements. * * @see {@link first} * @see {@link last} * @see {@link single} * @see {@link firstValueFrom} * @see {@link lastValueFrom} * * @class EmptyError */ export const EmptyError: EmptyErrorCtor = createErrorClass((_super) => function EmptyErrorImpl(this: any) { _super(this); this.name = 'EmptyError'; this.message = 'no elements in sequence'; }); rxjs-7.5.7/src/internal/util/Immediate.ts000066400000000000000000000022171431412030200203360ustar00rootroot00000000000000let nextHandle = 1; // The promise needs to be created lazily otherwise it won't be patched by Zones let resolved: Promise; const activeHandles: { [key: number]: any } = {}; /** * Finds the handle in the list of active handles, and removes it. * Returns `true` if found, `false` otherwise. Used both to clear * Immediate scheduled tasks, and to identify if a task should be scheduled. */ function findAndClearHandle(handle: number): boolean { if (handle in activeHandles) { delete activeHandles[handle]; return true; } return false; } /** * Helper functions to schedule and unschedule microtasks. */ export const Immediate = { setImmediate(cb: () => void): number { const handle = nextHandle++; activeHandles[handle] = true; if (!resolved) { resolved = Promise.resolve(); } resolved.then(() => findAndClearHandle(handle) && cb()); return handle; }, clearImmediate(handle: number): void { findAndClearHandle(handle); }, }; /** * Used for internal testing purposes only. Do not export from library. */ export const TestTools = { pending() { return Object.keys(activeHandles).length; } }; rxjs-7.5.7/src/internal/util/NotFoundError.ts000066400000000000000000000013611431412030200212050ustar00rootroot00000000000000import { createErrorClass } from './createErrorClass'; export interface NotFoundError extends Error {} export interface NotFoundErrorCtor { /** * @deprecated Internal implementation detail. Do not construct error instances. * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269 */ new (message: string): NotFoundError; } /** * An error thrown when a value or values are missing from an * observable sequence. * * @see {@link operators/single} * * @class NotFoundError */ export const NotFoundError: NotFoundErrorCtor = createErrorClass( (_super) => function NotFoundErrorImpl(this: any, message: string) { _super(this); this.name = 'NotFoundError'; this.message = message; } ); rxjs-7.5.7/src/internal/util/ObjectUnsubscribedError.ts000066400000000000000000000015121431412030200232260ustar00rootroot00000000000000import { createErrorClass } from './createErrorClass'; export interface ObjectUnsubscribedError extends Error {} export interface ObjectUnsubscribedErrorCtor { /** * @deprecated Internal implementation detail. Do not construct error instances. * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269 */ new (): ObjectUnsubscribedError; } /** * An error thrown when an action is invalid because the object has been * unsubscribed. * * @see {@link Subject} * @see {@link BehaviorSubject} * * @class ObjectUnsubscribedError */ export const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass( (_super) => function ObjectUnsubscribedErrorImpl(this: any) { _super(this); this.name = 'ObjectUnsubscribedError'; this.message = 'object unsubscribed'; } ); rxjs-7.5.7/src/internal/util/SequenceError.ts000066400000000000000000000014011431412030200212140ustar00rootroot00000000000000import { createErrorClass } from './createErrorClass'; export interface SequenceError extends Error {} export interface SequenceErrorCtor { /** * @deprecated Internal implementation detail. Do not construct error instances. * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269 */ new (message: string): SequenceError; } /** * An error thrown when something is wrong with the sequence of * values arriving on the observable. * * @see {@link operators/single} * * @class SequenceError */ export const SequenceError: SequenceErrorCtor = createErrorClass( (_super) => function SequenceErrorImpl(this: any, message: string) { _super(this); this.name = 'SequenceError'; this.message = message; } ); rxjs-7.5.7/src/internal/util/UnsubscriptionError.ts000066400000000000000000000017141431412030200225020ustar00rootroot00000000000000import { createErrorClass } from './createErrorClass'; export interface UnsubscriptionError extends Error { readonly errors: any[]; } export interface UnsubscriptionErrorCtor { /** * @deprecated Internal implementation detail. Do not construct error instances. * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269 */ new (errors: any[]): UnsubscriptionError; } /** * An error thrown when one or more errors have occurred during the * `unsubscribe` of a {@link Subscription}. */ export const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass( (_super) => function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) { _super(this); this.message = errors ? `${errors.length} errors occurred during unsubscription: ${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\n ')}` : ''; this.name = 'UnsubscriptionError'; this.errors = errors; } ); rxjs-7.5.7/src/internal/util/applyMixins.ts000066400000000000000000000006261431412030200207570ustar00rootroot00000000000000export function applyMixins(derivedCtor: any, baseCtors: any[]) { for (let i = 0, len = baseCtors.length; i < len; i++) { const baseCtor = baseCtors[i]; const propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype); for (let j = 0, len2 = propertyKeys.length; j < len2; j++) { const name = propertyKeys[j]; derivedCtor.prototype[name] = baseCtor.prototype[name]; } } }rxjs-7.5.7/src/internal/util/args.ts000066400000000000000000000012011431412030200173640ustar00rootroot00000000000000import { SchedulerLike } from '../types'; import { isFunction } from './isFunction'; import { isScheduler } from './isScheduler'; function last(arr: T[]): T | undefined { return arr[arr.length - 1]; } export function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined { return isFunction(last(args)) ? args.pop() : undefined; } export function popScheduler(args: any[]): SchedulerLike | undefined { return isScheduler(last(args)) ? args.pop() : undefined; } export function popNumber(args: any[], defaultValue: number): number { return typeof last(args) === 'number' ? args.pop()! : defaultValue; } rxjs-7.5.7/src/internal/util/argsArgArrayOrObject.ts000066400000000000000000000017321431412030200224560ustar00rootroot00000000000000const { isArray } = Array; const { getPrototypeOf, prototype: objectProto, keys: getKeys } = Object; /** * Used in functions where either a list of arguments, a single array of arguments, or a * dictionary of arguments can be returned. Returns an object with an `args` property with * the arguments in an array, if it is a dictionary, it will also return the `keys` in another * property. */ export function argsArgArrayOrObject>(args: T[] | [O] | [T[]]): { args: T[]; keys: string[] | null } { if (args.length === 1) { const first = args[0]; if (isArray(first)) { return { args: first, keys: null }; } if (isPOJO(first)) { const keys = getKeys(first); return { args: keys.map((key) => first[key]), keys, }; } } return { args: args as T[], keys: null }; } function isPOJO(obj: any): obj is object { return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto; } rxjs-7.5.7/src/internal/util/argsOrArgArray.ts000066400000000000000000000004511431412030200213240ustar00rootroot00000000000000const { isArray } = Array; /** * Used in operators and functions that accept either a list of arguments, or an array of arguments * as a single argument. */ export function argsOrArgArray(args: (T | T[])[]): T[] { return args.length === 1 && isArray(args[0]) ? args[0] : (args as T[]); } rxjs-7.5.7/src/internal/util/arrRemove.ts000066400000000000000000000004561431412030200204050ustar00rootroot00000000000000/** * Removes an item from an array, mutating it. * @param arr The array to remove the item from * @param item The item to remove */ export function arrRemove(arr: T[] | undefined | null, item: T) { if (arr) { const index = arr.indexOf(item); 0 <= index && arr.splice(index, 1); } } rxjs-7.5.7/src/internal/util/createErrorClass.ts000066400000000000000000000014251431412030200217030ustar00rootroot00000000000000/** * Used to create Error subclasses until the community moves away from ES5. * * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123 * * @param createImpl A factory function to create the actual constructor implementation. The returned * function should be a named function that calls `_super` internally. */ export function createErrorClass(createImpl: (_super: any) => any): T { const _super = (instance: any) => { Error.call(instance); instance.stack = new Error().stack; }; const ctorFunc = createImpl(_super); ctorFunc.prototype = Object.create(Error.prototype); ctorFunc.prototype.constructor = ctorFunc; return ctorFunc; } rxjs-7.5.7/src/internal/util/createObject.ts000066400000000000000000000002321431412030200210250ustar00rootroot00000000000000export function createObject(keys: string[], values: any[]) { return keys.reduce((result, key, i) => ((result[key] = values[i]), result), {} as any); } rxjs-7.5.7/src/internal/util/errorContext.ts000066400000000000000000000023221431412030200211330ustar00rootroot00000000000000import { config } from '../config'; let context: { errorThrown: boolean; error: any } | null = null; /** * Handles dealing with errors for super-gross mode. Creates a context, in which * any synchronously thrown errors will be passed to {@link captureError}. Which * will record the error such that it will be rethrown after the call back is complete. * TODO: Remove in v8 * @param cb An immediately executed function. */ export function errorContext(cb: () => void) { if (config.useDeprecatedSynchronousErrorHandling) { const isRoot = !context; if (isRoot) { context = { errorThrown: false, error: null }; } cb(); if (isRoot) { const { errorThrown, error } = context!; context = null; if (errorThrown) { throw error; } } } else { // This is the general non-deprecated path for everyone that // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling) cb(); } } /** * Captures errors only in super-gross mode. * @param err the error to capture */ export function captureError(err: any) { if (config.useDeprecatedSynchronousErrorHandling && context) { context.errorThrown = true; context.error = err; } } rxjs-7.5.7/src/internal/util/executeSchedule.ts000066400000000000000000000023331431412030200215560ustar00rootroot00000000000000import { Subscription } from '../Subscription'; import { SchedulerAction, SchedulerLike } from '../types'; export function executeSchedule( parentSubscription: Subscription, scheduler: SchedulerLike, work: () => void, delay: number, repeat: true ): void; export function executeSchedule( parentSubscription: Subscription, scheduler: SchedulerLike, work: () => void, delay?: number, repeat?: false ): Subscription; export function executeSchedule( parentSubscription: Subscription, scheduler: SchedulerLike, work: () => void, delay = 0, repeat = false ): Subscription | void { const scheduleSubscription = scheduler.schedule(function (this: SchedulerAction) { work(); if (repeat) { parentSubscription.add(this.schedule(null, delay)); } else { this.unsubscribe(); } }, delay); parentSubscription.add(scheduleSubscription); if (!repeat) { // Because user-land scheduler implementations are unlikely to properly reuse // Actions for repeat scheduling, we can't trust that the returned subscription // will control repeat subscription scenarios. So we're trying to avoid using them // incorrectly within this library. return scheduleSubscription; } } rxjs-7.5.7/src/internal/util/identity.ts000066400000000000000000000020311431412030200202630ustar00rootroot00000000000000/** * This function takes one parameter and just returns it. Simply put, * this is like `(x: T): T => x`. * * ## Examples * * This is useful in some cases when using things like `mergeMap` * * ```ts * import { interval, take, map, range, mergeMap, identity } from 'rxjs'; * * const source$ = interval(1000).pipe(take(5)); * * const result$ = source$.pipe( * map(i => range(i)), * mergeMap(identity) // same as mergeMap(x => x) * ); * * result$.subscribe({ * next: console.log * }); * ``` * * Or when you want to selectively apply an operator * * ```ts * import { interval, take, identity } from 'rxjs'; * * const shouldLimit = () => Math.random() < 0.5; * * const source$ = interval(1000); * * const result$ = source$.pipe(shouldLimit() ? take(5) : identity); * * result$.subscribe({ * next: console.log * }); * ``` * * @param x Any value that is returned by this function * @returns The value passed as the first parameter to this function */ export function identity(x: T): T { return x; } rxjs-7.5.7/src/internal/util/isArrayLike.ts000066400000000000000000000001741431412030200206570ustar00rootroot00000000000000export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');rxjs-7.5.7/src/internal/util/isAsyncIterable.ts000066400000000000000000000003001431412030200215100ustar00rootroot00000000000000import { isFunction } from './isFunction'; export function isAsyncIterable(obj: any): obj is AsyncIterable { return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]); } rxjs-7.5.7/src/internal/util/isDate.ts000066400000000000000000000005531431412030200176520ustar00rootroot00000000000000/** * Checks to see if a value is not only a `Date` object, * but a *valid* `Date` object that can be converted to a * number. For example, `new Date('blah')` is indeed an * `instanceof Date`, however it cannot be converted to a * number. */ export function isValidDate(value: any): value is Date { return value instanceof Date && !isNaN(value as any); } rxjs-7.5.7/src/internal/util/isFunction.ts000066400000000000000000000003131431412030200205540ustar00rootroot00000000000000/** * Returns true if the object is a function. * @param value The value to check */ export function isFunction(value: any): value is (...args: any[]) => any { return typeof value === 'function'; } rxjs-7.5.7/src/internal/util/isInteropObservable.ts000066400000000000000000000005721431412030200224230ustar00rootroot00000000000000import { InteropObservable } from '../types'; import { observable as Symbol_observable } from '../symbol/observable'; import { isFunction } from './isFunction'; /** Identifies an input as being Observable (but not necessary an Rx Observable) */ export function isInteropObservable(input: any): input is InteropObservable { return isFunction(input[Symbol_observable]); } rxjs-7.5.7/src/internal/util/isIterable.ts000066400000000000000000000004201431412030200205150ustar00rootroot00000000000000import { iterator as Symbol_iterator } from '../symbol/iterator'; import { isFunction } from './isFunction'; /** Identifies an input as being an Iterable */ export function isIterable(input: any): input is Iterable { return isFunction(input?.[Symbol_iterator]); } rxjs-7.5.7/src/internal/util/isObservable.ts000066400000000000000000000007671431412030200210700ustar00rootroot00000000000000/** prettier */ import { Observable } from '../Observable'; import { isFunction } from './isFunction'; /** * Tests to see if the object is an RxJS {@link Observable} * @param obj the object to test */ export function isObservable(obj: any): obj is Observable { // The !! is to ensure that this publicly exposed function returns // `false` if something like `null` or `0` is passed. return !!obj && (obj instanceof Observable || (isFunction(obj.lift) && isFunction(obj.subscribe))); } rxjs-7.5.7/src/internal/util/isPromise.ts000066400000000000000000000003541431412030200204120ustar00rootroot00000000000000import { isFunction } from "./isFunction"; /** * Tests to see if the object is "thennable". * @param value the object to test */ export function isPromise(value: any): value is PromiseLike { return isFunction(value?.then); } rxjs-7.5.7/src/internal/util/isReadableStreamLike.ts000066400000000000000000000013001431412030200224440ustar00rootroot00000000000000import { ReadableStreamLike } from '../types'; import { isFunction } from './isFunction'; export async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator { const reader = readableStream.getReader(); try { while (true) { const { value, done } = await reader.read(); if (done) { return; } yield value!; } } finally { reader.releaseLock(); } } export function isReadableStreamLike(obj: any): obj is ReadableStreamLike { // We don't want to use instanceof checks because they would return // false for instances from another Realm, like an